From a53d41f1c1d2543306f22bb54a6440aaa168073a Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Fri, 24 Nov 2017 19:51:48 +0100 Subject: [PATCH] Fix bootloaders for different flash configs fixes: https://github.com/espressif/arduino-esp32/issues/867 --- boards.txt | 81 ++++++++++-------- platform.txt | 2 +- ...{bootloader.bin => bootloader_dio_40m.bin} | Bin tools/sdk/bin/bootloader_dio_80m.bin | Bin 0 -> 12304 bytes tools/sdk/bin/bootloader_dout_40m.bin | Bin 0 -> 12320 bytes tools/sdk/bin/bootloader_dout_80m.bin | Bin 0 -> 12304 bytes ...tloader_qio.bin => bootloader_qio_40m.bin} | Bin tools/sdk/bin/bootloader_qio_80m.bin | Bin 0 -> 14128 bytes tools/sdk/bin/bootloader_qout_40m.bin | Bin 0 -> 14144 bytes tools/sdk/bin/bootloader_qout_80m.bin | Bin 0 -> 14128 bytes 10 files changed, 45 insertions(+), 38 deletions(-) rename tools/sdk/bin/{bootloader.bin => bootloader_dio_40m.bin} (100%) create mode 100644 tools/sdk/bin/bootloader_dio_80m.bin create mode 100644 tools/sdk/bin/bootloader_dout_40m.bin create mode 100644 tools/sdk/bin/bootloader_dout_80m.bin rename tools/sdk/bin/{bootloader_qio.bin => bootloader_qio_40m.bin} (100%) create mode 100644 tools/sdk/bin/bootloader_qio_80m.bin create mode 100644 tools/sdk/bin/bootloader_qout_40m.bin create mode 100644 tools/sdk/bin/bootloader_qout_80m.bin diff --git a/boards.txt b/boards.txt index d461ad0e..c127c4a6 100644 --- a/boards.txt +++ b/boards.txt @@ -23,20 +23,23 @@ esp32.build.board=ESP32_DEV esp32.build.f_cpu=240000000L esp32.build.flash_size=4MB +esp32.build.flash_freq=40m esp32.build.flash_mode=dio -esp32.build.boot=bootloader +esp32.build.boot=dio esp32.build.partitions=default esp32.menu.FlashMode.qio=QIO esp32.menu.FlashMode.qio.build.flash_mode=dio -esp32.menu.FlashMode.qio.build.boot=bootloader_qio +esp32.menu.FlashMode.qio.build.boot=qio esp32.menu.FlashMode.dio=DIO esp32.menu.FlashMode.dio.build.flash_mode=dio +esp32.menu.FlashMode.dio.build.boot=dio esp32.menu.FlashMode.qout=QOUT esp32.menu.FlashMode.qout.build.flash_mode=dout -esp32.menu.FlashMode.qout.build.boot=bootloader_qio +esp32.menu.FlashMode.qout.build.boot=qout esp32.menu.FlashMode.dout=DOUT esp32.menu.FlashMode.dout.build.flash_mode=dout +esp32.menu.FlashMode.dout.build.boot=dout esp32.menu.FlashFreq.80=80MHz esp32.menu.FlashFreq.80.build.flash_freq=80m @@ -97,7 +100,7 @@ esp32thing.build.board=ESP32_THING esp32thing.build.f_cpu=240000000L esp32thing.build.flash_mode=dio esp32thing.build.flash_size=4MB -esp32thing.build.boot=bootloader +esp32thing.build.boot=dio esp32thing.build.partitions=default esp32thing.menu.FlashFreq.80=80MHz @@ -137,7 +140,7 @@ nina_w10.build.core=esp32 nina_w10.build.variant=nina_w10 nina_w10.build.board=UBLOX_NINA_W10 nina_w10.build.f_cpu=240000000L -nina_w10.build.boot=bootloader +nina_w10.build.boot=dio nina_w10.build.partitions=minimal nina_w10.build.flash_mode=dio nina_w10.build.flash_size=2MB @@ -178,7 +181,7 @@ widora-air.build.board=WIDORA_AIR widora-air.build.f_cpu=240000000L widora-air.build.flash_mode=dio widora-air.build.flash_size=16MB -widora-air.build.boot=bootloader +widora-air.build.boot=dio widora-air.build.partitions=default widora-air.menu.FlashFreq.80=80MHz @@ -221,7 +224,7 @@ esp320.build.board=ESP320 esp320.build.f_cpu=240000000L esp320.build.flash_mode=qio esp320.build.flash_size=4MB -esp320.build.boot=bootloader +esp320.build.boot=dio esp320.build.partitions=default esp320.menu.FlashFreq.80=80MHz @@ -264,7 +267,7 @@ nano32.build.board=NANO32 nano32.build.f_cpu=240000000L nano32.build.flash_mode=dio nano32.build.flash_size=4MB -nano32.build.boot=bootloader +nano32.build.boot=dio nano32.build.partitions=default nano32.menu.FlashFreq.80=80MHz @@ -307,7 +310,7 @@ lolin32.build.board=LOLIN32 lolin32.build.f_cpu=240000000L lolin32.build.flash_mode=dio lolin32.build.flash_size=4MB -lolin32.build.boot=bootloader +lolin32.build.boot=dio lolin32.build.partitions=default lolin32.menu.FlashFreq.80=80MHz @@ -350,7 +353,7 @@ pocket_32.build.board=Pocket32 pocket_32.build.f_cpu=240000000L pocket_32.build.flash_mode=dio pocket_32.build.flash_size=4MB -pocket_32.build.boot=bootloader +pocket_32.build.boot=dio pocket_32.build.partitions=default pocket_32.menu.FlashFreq.80=80MHz @@ -393,7 +396,7 @@ WeMosBat.build.board=Pocket32 WeMosBat.build.f_cpu=240000000L WeMosBat.build.flash_mode=dio WeMosBat.build.flash_size=4MB -WeMosBat.build.boot=bootloader +WeMosBat.build.boot=dio WeMosBat.build.partitions=default WeMosBat.menu.FlashFreq.80=80MHz @@ -436,7 +439,7 @@ espea32.build.board=ESPea32 espea32.build.f_cpu=240000000L espea32.build.flash_mode=dio espea32.build.flash_size=4MB -espea32.build.boot=bootloader +espea32.build.boot=dio espea32.build.partitions=default espea32.menu.FlashFreq.80=80MHz @@ -479,7 +482,7 @@ quantum.build.board=QUANTUM quantum.build.f_cpu=240000000L quantum.build.flash_mode=qio quantum.build.flash_size=16MB -quantum.build.boot=bootloader +quantum.build.boot=dio quantum.build.partitions=default quantum.menu.FlashFreq.80=80MHz @@ -522,7 +525,7 @@ node32s.build.board=Node32s node32s.build.f_cpu=240000000L node32s.build.flash_mode=dio node32s.build.flash_size=4MB -node32s.build.boot=bootloader +node32s.build.boot=dio node32s.build.partitions=default node32s.menu.FlashFreq.80=80MHz @@ -565,7 +568,7 @@ hornbill32dev.build.board=HORNBILL_ESP32_DEV hornbill32dev.build.f_cpu=240000000L hornbill32dev.build.flash_mode=dio hornbill32dev.build.flash_size=4MB -hornbill32dev.build.boot=bootloader +hornbill32dev.build.boot=dio hornbill32dev.build.partitions=default hornbill32dev.menu.FlashFreq.80=80MHz @@ -607,7 +610,7 @@ hornbill32minima.build.board=HORNBILL_ESP32_MINIMA hornbill32minima.build.f_cpu=240000000L hornbill32minima.build.flash_mode=dio hornbill32minima.build.flash_size=4MB -hornbill32minima.build.boot=bootloader +hornbill32minima.build.boot=dio hornbill32minima.build.partitions=default hornbill32minima.menu.FlashFreq.80=80MHz @@ -650,7 +653,7 @@ firebeetle32.build.board=ESP32_DEV firebeetle32.build.f_cpu=240000000L firebeetle32.build.flash_mode=dio firebeetle32.build.flash_size=4MB -firebeetle32.build.boot=bootloader +firebeetle32.build.boot=dio firebeetle32.build.partitions=default firebeetle32.menu.FlashFreq.80=80MHz @@ -693,7 +696,7 @@ intorobot-fig.build.board=INTOROBOT_ESP32_DEV intorobot-fig.build.f_cpu=240000000L intorobot-fig.build.flash_mode=dio intorobot-fig.build.flash_size=4MB -intorobot-fig.build.boot=bootloader +intorobot-fig.build.boot=dio intorobot-fig.build.partitions=default intorobot-fig.menu.FlashFreq.80=80MHz @@ -736,7 +739,7 @@ onehorse32dev.build.board=ONEHORSE_ESP32_DEV onehorse32dev.build.f_cpu=240000000L onehorse32dev.build.flash_mode=dout onehorse32dev.build.flash_size=4MB -onehorse32dev.build.boot=bootloader +onehorse32dev.build.boot=dio onehorse32dev.build.partitions=default onehorse32dev.menu.FlashFreq.80=80MHz @@ -779,7 +782,7 @@ featheresp32.build.board=FEATHER_ESP32 featheresp32.build.f_cpu=240000000L featheresp32.build.flash_mode=dio featheresp32.build.flash_size=4MB -featheresp32.build.boot=bootloader +featheresp32.build.boot=dio featheresp32.build.partitions=default featheresp32.menu.FlashFreq.80=80MHz @@ -835,7 +838,7 @@ nodemcu-32s.build.board=NodeMCU_32S nodemcu-32s.build.f_cpu=240000000L nodemcu-32s.build.flash_mode=dio nodemcu-32s.build.flash_size=4MB -nodemcu-32s.build.boot=bootloader +nodemcu-32s.build.boot=dio nodemcu-32s.build.partitions=default nodemcu-32s.menu.FlashFreq.80=80MHz @@ -878,7 +881,7 @@ mhetesp32devkit.build.board=MH_ET_LIVE_ESP32DEVKIT mhetesp32devkit.build.f_cpu=240000000L mhetesp32devkit.build.flash_mode=dio mhetesp32devkit.build.flash_size=4MB -mhetesp32devkit.build.boot=bootloader +mhetesp32devkit.build.boot=dio mhetesp32devkit.build.partitions=default mhetesp32devkit.menu.FlashFreq.80=80MHz @@ -921,7 +924,7 @@ mhetesp32minikit.build.board=MH_ET_LIVE_ESP32MINIKIT mhetesp32minikit.build.f_cpu=240000000L mhetesp32minikit.build.flash_mode=dio mhetesp32minikit.build.flash_size=4MB -mhetesp32minikit.build.boot=bootloader +mhetesp32minikit.build.boot=dio mhetesp32minikit.build.partitions=default mhetesp32minikit.menu.FlashFreq.80=80MHz @@ -964,7 +967,7 @@ esp32vn-iot-uno.build.board=esp32vn-iot-uno esp32vn-iot-uno.build.f_cpu=240000000L esp32vn-iot-uno.build.flash_mode=dio esp32vn-iot-uno.build.flash_size=4MB -esp32vn-iot-uno.build.boot=bootloader +esp32vn-iot-uno.build.boot=dio esp32vn-iot-uno.build.partitions=default esp32vn-iot-uno.menu.FlashFreq.80=80MHz @@ -1007,7 +1010,7 @@ esp32doit-devkit-v1.build.board=ESP32_DEV esp32doit-devkit-v1.build.f_cpu=240000000L esp32doit-devkit-v1.build.flash_mode=dio esp32doit-devkit-v1.build.flash_size=4MB -esp32doit-devkit-v1.build.boot=bootloader +esp32doit-devkit-v1.build.boot=dio esp32doit-devkit-v1.build.partitions=default esp32doit-devkit-v1.menu.FlashFreq.80=80MHz @@ -1061,7 +1064,7 @@ esp32-evb.build.board=ESP32-EVB esp32-evb.build.f_cpu=240000000L esp32-evb.build.flash_mode=dio esp32-evb.build.flash_size=4MB -esp32-evb.build.boot=bootloader +esp32-evb.build.boot=dio esp32-evb.build.partitions=default esp32-evb.menu.FlashFreq.80=80MHz @@ -1093,7 +1096,7 @@ esp32-gateway.build.board=ESP32-GATEWAY esp32-gateway.build.f_cpu=240000000L esp32-gateway.build.flash_mode=dio esp32-gateway.build.flash_size=4MB -esp32-gateway.build.boot=bootloader +esp32-gateway.build.boot=dio esp32-gateway.build.partitions=default esp32-gateway.menu.FlashFreq.80=80MHz @@ -1125,7 +1128,7 @@ espino32.build.board=ESPino32 espino32.build.f_cpu=240000000L espino32.build.flash_mode=dio espino32.build.flash_size=4MB -espino32.build.boot=bootloader +espino32.build.boot=dio espino32.build.partitions=default espino32.menu.FlashFreq.80=80MHz @@ -1168,19 +1171,21 @@ m5stack-core-esp32.build.board=M5Stack-Core-ESP32 m5stack-core-esp32.build.f_cpu=240000000L m5stack-core-esp32.build.flash_size=4MB m5stack-core-esp32.build.flash_mode=dio -m5stack-core-esp32.build.boot=bootloader +m5stack-core-esp32.build.boot=dio m5stack-core-esp32.build.partitions=default m5stack-core-esp32.menu.FlashMode.qio=QIO m5stack-core-esp32.menu.FlashMode.qio.build.flash_mode=dio -m5stack-core-esp32.menu.FlashMode.qio.build.boot=bootloader_qio +m5stack-core-esp32.menu.FlashMode.qio.build.boot=qio m5stack-core-esp32.menu.FlashMode.dio=DIO m5stack-core-esp32.menu.FlashMode.dio.build.flash_mode=dio +m5stack-core-esp32.menu.FlashMode.dio.build.boot=dio m5stack-core-esp32.menu.FlashMode.qout=QOUT m5stack-core-esp32.menu.FlashMode.qout.build.flash_mode=dout -m5stack-core-esp32.menu.FlashMode.qout.build.boot=bootloader_qio +m5stack-core-esp32.menu.FlashMode.qout.build.boot=qout m5stack-core-esp32.menu.FlashMode.dout=DOUT m5stack-core-esp32.menu.FlashMode.dout.build.flash_mode=dout +m5stack-core-esp32.menu.FlashMode.dout.build.boot=dout m5stack-core-esp32.menu.FlashFreq.80=80MHz m5stack-core-esp32.menu.FlashFreq.80.build.flash_freq=80m @@ -1235,7 +1240,7 @@ heltec_wifi_kit_32.build.board=Heltec_WIFI_Kit_32 heltec_wifi_kit_32.build.f_cpu=240000000L heltec_wifi_kit_32.build.flash_mode=dio heltec_wifi_kit_32.build.flash_size=4MB -heltec_wifi_kit_32.build.boot=bootloader +heltec_wifi_kit_32.build.boot=dio heltec_wifi_kit_32.build.partitions=default heltec_wifi_kit_32.menu.FlashFreq.80=80MHz @@ -1278,7 +1283,7 @@ heltec_wifi_lora_32.build.board=Heltec_WIFI_LoRa_32 heltec_wifi_lora_32.build.f_cpu=240000000L heltec_wifi_lora_32.build.flash_mode=dio heltec_wifi_lora_32.build.flash_size=4MB -heltec_wifi_lora_32.build.boot=bootloader +heltec_wifi_lora_32.build.boot=dio heltec_wifi_lora_32.build.partitions=default heltec_wifi_lora_32.menu.FlashFreq.80=80MHz @@ -1321,19 +1326,21 @@ espectro32.build.board=ESPECTRO32 espectro32.build.f_cpu=240000000L espectro32.build.flash_size=4MB espectro32.build.flash_mode=dio -espectro32.build.boot=bootloader +espectro32.build.boot=dio espectro32.build.partitions=default espectro32.menu.FlashMode.qio=QIO espectro32.menu.FlashMode.qio.build.flash_mode=dio -espectro32.menu.FlashMode.qio.build.boot=bootloader_qio +espectro32.menu.FlashMode.qio.build.boot=qio espectro32.menu.FlashMode.dio=DIO espectro32.menu.FlashMode.dio.build.flash_mode=dio +espectro32.menu.FlashMode.dio.build.boot=dio espectro32.menu.FlashMode.qout=QOUT espectro32.menu.FlashMode.qout.build.flash_mode=dout -espectro32.menu.FlashMode.qout.build.boot=bootloader_qio +espectro32.menu.FlashMode.qout.build.boot=qout espectro32.menu.FlashMode.dout=DOUT espectro32.menu.FlashMode.dout.build.flash_mode=dout +espectro32.menu.FlashMode.dout.build.boot=dout espectro32.menu.FlashFreq.80=80MHz espectro32.menu.FlashFreq.80.build.flash_freq=80m @@ -1394,7 +1401,7 @@ CoreESP32.build.board=CoreESP32 CoreESP32.build.f_cpu=240000000L CoreESP32.build.flash_mode=dio CoreESP32.build.flash_size=4MB -CoreESP32.build.boot=bootloader +CoreESP32.build.boot=dio CoreESP32.build.partitions=default CoreESP32.menu.FlashFreq.80=80MHz diff --git a/platform.txt b/platform.txt index 9cf69321..829c236e 100644 --- a/platform.txt +++ b/platform.txt @@ -96,6 +96,6 @@ recipe.size.regex.data=^(?:\.dram0\.data|\.dram0\.bss)\s+([0-9]+).* tools.esptool.upload.protocol=esp32 tools.esptool.upload.params.verbose= tools.esptool.upload.params.quiet= -tools.esptool.upload.pattern="{path}/{cmd}" --chip esp32 --port "{serial.port}" --baud {upload.speed} --before default_reset --after hard_reset write_flash -z --flash_mode {build.flash_mode} --flash_freq {build.flash_freq} --flash_size detect 0xe000 "{runtime.platform.path}/tools/partitions/boot_app0.bin" 0x1000 "{runtime.platform.path}/tools/sdk/bin/{build.boot}.bin" 0x10000 "{build.path}/{build.project_name}.bin" 0x8000 "{build.path}/{build.project_name}.partitions.bin" +tools.esptool.upload.pattern="{path}/{cmd}" --chip esp32 --port "{serial.port}" --baud {upload.speed} --before default_reset --after hard_reset write_flash -z --flash_mode {build.flash_mode} --flash_freq {build.flash_freq} --flash_size detect 0xe000 "{runtime.platform.path}/tools/partitions/boot_app0.bin" 0x1000 "{runtime.platform.path}/tools/sdk/bin/bootloader_{build.boot}_{build.flash_freq}.bin" 0x10000 "{build.path}/{build.project_name}.bin" 0x8000 "{build.path}/{build.project_name}.partitions.bin" tools.esptool.upload.pattern.linux=python "{path}/{cmd}" --chip esp32 --port "{serial.port}" --baud {upload.speed} --before default_reset --after hard_reset write_flash -z --flash_mode {build.flash_mode} --flash_freq {build.flash_freq} --flash_size detect 0xe000 "{runtime.platform.path}/tools/partitions/boot_app0.bin" 0x1000 "{runtime.platform.path}/tools/sdk/bin/{build.boot}.bin" 0x10000 "{build.path}/{build.project_name}.bin" 0x8000 "{build.path}/{build.project_name}.partitions.bin" tools.esptool.upload.network_pattern={network_cmd} -i "{serial.port}" -p "{network.port}" "--auth={network.password}" -f "{build.path}/{build.project_name}.bin" diff --git a/tools/sdk/bin/bootloader.bin b/tools/sdk/bin/bootloader_dio_40m.bin similarity index 100% rename from tools/sdk/bin/bootloader.bin rename to tools/sdk/bin/bootloader_dio_40m.bin diff --git a/tools/sdk/bin/bootloader_dio_80m.bin b/tools/sdk/bin/bootloader_dio_80m.bin new file mode 100644 index 0000000000000000000000000000000000000000..7e4e663c41666c7d1c32f8044860aaa1b42cd6d3 GIT binary patch literal 12304 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 literal 0 HcmV?d00001 diff --git a/tools/sdk/bin/bootloader_dout_80m.bin b/tools/sdk/bin/bootloader_dout_80m.bin new file mode 100644 index 0000000000000000000000000000000000000000..7ee7fdc418f3c4f97334bd804bf67679852fdcc9 GIT binary patch literal 12304 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 CyFfeu literal 0 HcmV?d00001 diff --git a/tools/sdk/bin/bootloader_qio.bin b/tools/sdk/bin/bootloader_qio_40m.bin similarity index 100% rename from tools/sdk/bin/bootloader_qio.bin rename to tools/sdk/bin/bootloader_qio_40m.bin diff --git a/tools/sdk/bin/bootloader_qio_80m.bin b/tools/sdk/bin/bootloader_qio_80m.bin new file mode 100644 index 0000000000000000000000000000000000000000..12180e8031e306a597342e4a9d25f7acbe6df7cd GIT binary patch literal 14128 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 TE~?-^KS$NFe)?m-i#@6U&#Td& literal 0 HcmV?d00001 diff --git a/tools/sdk/bin/bootloader_qout_40m.bin b/tools/sdk/bin/bootloader_qout_40m.bin new file mode 100644 index 0000000000000000000000000000000000000000..67f8ab51974899e2aed1dab3c3a2336e04b21468 GIT binary patch literal 14144 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

Gr$ozEG|D^>?OV|E?y5)cB zj{k=iEZDSwVbMW}#_6B{1BKiY5M$zeP>`vv79EsGJ^H_C{oHmb z$wLcvoI1FdYtcc8rx*YC%u4NGShQfrs)b9Rf=U~+Mg|$5jm>}8GBy^1T*AY_#>yZt zW5Engo?i=I1{f$XEXWLCP+*Ym*cS0zvFa}mN5dnKXhRZ6R6tQ-V)@_3vcK&+`7W0I zJy`a4(}MVgWq(yonI@L~Z7c1#%uJ#2i5k z9;rrqFwF&}r5bIa{5TM;=nM+J8BC3le;YbMm2oE%k5pqgNa}zB!wjazkiQL`;E-lo zXbx7&mGh%vCP-u^7gz;Mdg)_uI5{#b^aQJ$)u;v1s-OWfRdW^(CyzuxXY&CCh8zb+R~FAvXN9-FA8&;B>85?lbb1zf&^^@8l- zk$Uw4A z7P@!I@bI4H-OJ09weCw%|C9Oyq-;5h5D(WRbp z=E$&c+8@<#42`=%Mk{GB86E~Pj50t$Wl=G4&z}jCK|wpS0#v+KOx%mc-}Pt0WKd** z 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 A?*IS* literal 0 HcmV?d00001 diff --git a/tools/sdk/bin/bootloader_qout_80m.bin b/tools/sdk/bin/bootloader_qout_80m.bin new file mode 100644 index 0000000000000000000000000000000000000000..12180e8031e306a597342e4a9d25f7acbe6df7cd GIT binary patch literal 14128 zcmaFK!lZwpi{0TJ0}5c2VEAv(!oa}r|NsC0G7SIi_b@XsFmV23T!T>7z`($;fPsPG z00RTV1GV_1;^O$?lEk7C1shuh2sbq^1*BX*v^ce>SU)W@IkhBT-zBv;yClCr-!(YE z*a%9d78mGdrljc>lqTh5ChI5X=N9DWrRJ3s>nG*sm*nIprlc0>7ndd#6y;~7CYR{v zCT8a8>mf-(Y}QL=P>WAVEJ=iLAr1la!7eE-P_Tiz4D3*l+n{1#MKHnS#GD+63GvAV zr3MVX5uVNO!~c?Ac87#sb_Y%!#{c#w7!r^~K<0wN`oBjnyMswDy8|NwLq=j= zN=~YRqOF2osE-c=19ieNzPPlYAit`4spHx|rT8t!Eo?nzw9G{U`oRONMpsL{H4S;*3NiQ?vNA%)HFv43K%4av+~EFzlJn?r?uTyThUR><%a9vpbxd&+c$_ zKD$F&Voq_Yf|{CwQfVGEfKpQw(uz_GOH=cbE0sWIQWE~f`N{gJ#RbMj`b8zl@yR*a zddUn3J2Ugj5_2+B6u@!?rSTwp<4Y9E5_3vZl^B?ovpX0sXLk@-&h8+(oZUftIlBW` zWllCIfkIS+)iN+(h^MEPfZWc|!0rH}MT{93I1IknJFtAPcVYQp@4@oH-iPIbeE`b` z`w*57_7N-}>|_+THy@WKAURFK%`{r~?Pfr_64|Nq-FFz_%ifD%+s!xwvx4`1#7@BjaQP6mU6 z3Ij-zL4kqczdfi-vjCNAjQ{OJpnQ;94>0_BZCkF zBLm1@28JS#AM6G%TiB$#I4m;j*#1QNd4*EjtCFOl%g{{Mf5{|pRVAcy|l@ZpQS z{RgnaSyp`bV$bp6i~a5Y|9}7g|M@=y0|&zqh7a~k3JeShhd^QZ1?2V(EFk|gFfgtP z00rlN`A!sr(|>yn zrvLUnO#kg?fYc~3Fv=Kwu~#qv`wdik)TkJM{J;>yz`zh7pzy_>LE(%221Pc99|~XW ze;9nR*HQRl&!X_fUV-B;KPX)=Ffcf9fYgDUs35?=pwPg;kifw3e}4YI2TcF%Wk6~b zzSyfMe6fGcz)-N8fuSIqfuX>ffuVq#fuVqzfuW$M1!N~1!~g%5&;LUcWkJIidzpqW z_Vx$<|F3EIV$Wc~z_7%T!C?c4o$$^62h)H11I+*JWtjil+c12vZ)lNYVAyhmg(0Jp zlR?IhZwm8&dj}_eh8*Vq_A8kG+iwBI-*Is1{hXoUi@gBDe|v+5FZTO?{r)e)@ZUb5 zmBB$_Av;6!J!$9vAWQ!<{`=qm|G&!vP!+(;@PGf`{|p8U3?(4@!9HY=U|?Wi10`sI z1z+t!-nVf0V!yeOf#HKE6GH|leb0xc%>N7x|NsB5&jE?O|6l*V9u(*Q89*r^VZs;t z|DXT=Pnqz=K4Zcc`;ZA=>?0<8v5%SX#hzzAgTtM93=U?F42^&P9Z+EC;E?^mz`y|F z{{rz>a7GR_p_;hf~i&@e-=X~q8)j164^6FL++8J~V; zT(CgIp-XV$!G9|lC#(`^Sf#L%QS}?+f(0xAU4j$$Ac^h}d}_l4b!+1ekQ*AegUR&} zTOn?EYR+_Em0;uge+|19ZP@UYhpTZtND)-uq6G|%Ye4)3S_+F6FgC6Pu{Rz1&LhLa zVau_>rg_q#pA&kT8=4jFaHus2^XzCB65+W4B6!?b7GCvjxjPY@W_DtC!=)g zJC8I-tAcg2F7u>QKPPm9G@p5))+NZZNnJ{i=aTv?kz*iTFs(c?Z44m&Vrv){EnrxB z?>~=J>b?I^Dqp=($!^72B2Bk|uwCo2n zM+P3By-bVN|8Fb=iRf~H#X6YOIQT7!6c#Bw{ri9UWDXu7*$)gnOtK$9*z6#~A|(c~ zRh*lY7!6bZZ8v6WQ(<^Ifx(tb>=%a)>si*lTx%H{<3YxqW!-dHAZlS_42ZLqS#=tN z1!EdBpG9LDGpB}Pq{sjgYGY+!SaeWf=~svthtrY&Ji?$5V4l;gq@<>x@<{dr$XuoMb7en( z36QHnBH%pQA=Go@Ec0F_9<8UJ8O~&Zyatj7VFm`XM21-AHg<-9tqLH|Co`>N+$q>0 z*t23U%UVX&KmT*N!gjH6hdyJyD;>q z8u|V;v@e*nkO5qRNS8M)_+P%_W#iw!T`mp-qWj0S5y@1e7tpfP@@B z{5_z+V8N1;q+kpx#VlD2--1Lum=#n&d`)IhetG~>s&ViE6SPd=;rPq(mg6qRS&qFN zYdP2i8MJ38%-mpMIq|{YS(6c;y5P7z`(GfOR%eX5(iU{r<$bKF;Rv|9LznDYA5-Ru`)2skm%5usnlu2 zCIDqSbq2BVGSqNy*eQ^X)w)X>J*Y*)xp@VHDN9D({u*p6lK=P{B+fS)dHraYyUsp@;`OQ|3eEFY+Asu z=%7U73{Zf9LT)LDF>wJXNLO$+t^VK81q#(p&WUp%LXETk!h}>k7*+EbQmq(xWMz5; zHYzNv{hOM?5LU&!mQi*3|Fw*%d;TvvD6#b2|21BV4oajR{ok~HZo8D^p#?im9o);c z=%B>Yi~oCOrFJkZTCii)!lh3^rHxr5gN)C{mcMHm8;d|L;o)FoWe}LLUXcn-(N3O#7Q^z_c*o@43(g$i;coN>IS&+KP9O%4RHFl!=7Q2v zjdoCeJcw3w0R`U-rpBnh4V|FMxRZ%Tsxbm2bwGh(22*3`--b?bNHZ<804wFn`Oz>F zBr=l=tO6#z^f5S`92pjRfz{1w)COr)&;XgLIg5vrMN(U4eB3cv-N|e?!D5we;C@I7;9Z+DVMU|>+> z2kG!AG8F!6U;+vf%c27c3?5BJ>lvW@CPQ|x5@to7zX~b}zF^JFjf^0{4i5DnUljlU zIiSFxq@)09BRDc#TEK8<0f)jS1skc<*U<31w1DH#0)_*76l|hYU;PJFK9F`4SgnA< zCIud;r7uv_?&aZ$N`3xcmy4&Dhi5O3P1Mq7{~J~bE&$sCF5kg=LH6)SJ$-_r_rM+n zo~Wgdk?d)__vZlzLoC-eE%w9(AlGKFEnM~I=`V%{OboePJQ55d4h$X(-MeIXc+c|g z<>kp*djG$}GKB}s3=0?hN&Nv*wwy(Xhij=Q<6c&ts>ahG<3KeDsJ1b4WLP-;kLovu z#yudTl{AH!>Wc4vjiV5`!nHP!z4MT2`d~o$uV!3P|`3{aKTK44Lckc@o_Y) z65Oy$VZt1P>D;VMCm6SRZ236r&jky?hQ%Pg6XrK8l4M!1!*P)$D@f%kg-w!d4X+tD z>~K6J$=+~AaKj#jOPm4?cNrU+8$QesoHhRtr{IRY3JcaLEPe66C(Ez`6cU=spvuq8 zkwHyJtj9@BiKC4P+{$2JP;C4Isl*j)|A5sbGFUS5u)0YyFfb^jE->`|V_+uGSn;QW zqg~jZhpW*J9Plt&-iPll^TDD&;9AWYB-L|@hpW*7!~(?(14CohA4?7%u0~^!kb&8O z#PmN|#u_1_ovI)zyQ=J z6#(hu;c5iaf0;p*@j-WpyG21#J*#-Q8o59$kV|;D8ri{Y5ks3lPRAqm5vb|kl(5Ca24kM)HH zkv9^JVxS0~q``3D6?3C7h~2@_Fw>yn74w0P0}BQIwC{Rx>(YjP!-jRDtGXK+L>6=$ zxX>ZUz~L~VVPcangY@pZ+~(GsKv55B3r}PPnXrPh@!Ic(E>M=})#V!fwXjT!s(Y#{tGDm97ONnY<%{+p&MjNC+EZ`P@%^Np@&eR2XLXrdtf0B z9?uE0LHfWQ#vL3JZ~dOITVT>62AJr3{XTG4 z;LuWr182bs`9Owq9NhOC%I9d@16IgU^9H8%fC9q_4kU9=a4c8@(z_C5$qJ4QyFi?s z9F6Ni8dq?@;s_S63nzobJGgRwPUrx+rIV|1F-T+wN6o7Rt3e`QgLZH%T7Q4RZV-Pb z$lwzkHPsvTz_~j(CP3vHr$ThY^e$`$^SK%mem8W3)OT_%Y=8eWVJ*|r-~Z=$ zIXD?OIDEOI0yf|0x9kT+uiucugn>cP18QF)Lz9Ym(g}f}^&bMl1Qw|WN{I{w>IyuvJUx3^)-tQE{T~*^*HaGWv8Ng{G^sE& zB{CMNFm@Z?Wj)Khmt_TG>WlwjQ9K0>B0VW$Qam7I7{snIEK+0yb!BHU@QAcAGVri~ zT5>FNOfm$k!V=H@3OD1*WlXx(5WbCxO_gCU`&#Cuv;W(2otbq^iGink;qzZhSN;!t z`YVD}?CZb4$G;*(#Y+EW2=cJD2{Bl=2DEN&Xi|KzLU7gQ8{97r&fvQ+(_kjwoR(F~ z*fTg9Z~W@uXk%nxXuS5TNrUl1he1;o!yKUl4O7mXIB@(x(-MY;Gs$b2mZ~v$hn{6E zH(kG$Id%4bP>g_F4#J9ue}NL9;-O!VdKpyLEMy2e^e<@vBM*Bodq7)rLqJJnBXLtC>!`s9W*g>o^bwiJd8;lgdd(zi3Yg)qSS!C|1-S;4%L#XBW)BB)=J zuub9VG*DMNN;ru{dXCsrX@*)Zv0b7vJv%0*$}k*bU|=X(z>uWEkd(+Bx$rFOj)`m8 zo}K||cqI_T!YacNzJuwQ14G2dpraCz6M0yV@iH7b%H(inL()NkOvbxck3hP*csnL`&uBWT;?S{RriFH^L&t^=kFL(niPE7>EUfLS2P0TICW6e=W(bHl z5R_tmmSu zGi+MGP_SI#sT4!lG&VIQFHp!bFen{ma!}e(q{LjXTp{)9|24OGnAq4E7z&aWSg^4t zu{UP_>fm5wWN6I%)gfVEVPMH7t)y-0V7$S?*}%xr+~}HgC@B4~DzUJtt8M}r$-|zs zkjagSfrp)q5j01@!+u6AG4vP0ej#|E|NQxYgFzQO_@K0qN%n)%LPk*hg2pgk{oEnJ z!#R`X7$*b6hEBn*rWG7%T&y!$KsFqbU|8t>Yxx}U6%xy>B|9{_y4tP9rDw+cn7-q( z(n4mCIm{q)loqmp*eoD6$V?kh94lJ>;^F9ojopP^Vz_Aj>!A5BpVte`e=QAUbWjix zyTowO^w&Y7Up~JV8vRNQV00*Qbdv^kN3?%sFeN0I$gn1a9ta3eR@D7Wn7fPAgvT`^z?uNgQLtZ4Hhj`O_r#%fbs(drVG-x z$)s)K=Mhnq1DWB;1R6(UVBir^l!oxb*nfhY4H^py6Jor`_v@hOuT2Z87xMiQ5L8fg zXB2zP?a2PigTFYR9Pf_9xi?YC>OlL=-=PIG#+3 z&q1^X6G)J$jfLUCB*9tEjgNnJb*|u8YQngZMOtZF)5`-24B&d9@!8LYNdoONOBA1i zw9Q~@ocTE)g!P*z-UTV?;8eWxQ=vmZ@%B$>*OwDC`ppUIKz0ZycKlRg zVz5?HP$+3o0@Zt(oD(lWwZ((9DJ^&n(HnGbRn7t~ovAZJx0Ig3m714DU{ z&BPTD%}`|#AZ4hoUkp*8XaF&NH_UX|4-C(fY$nctNJI5|fb=6M1i6LNWaY{ zB<&0nJ0WsV&6b#&n;{Am1wfj4kTo|}f~00}C~E&y&;+$9G&vMCK?dA00>vALqB>mM zjhBIep)nV#p7*DMCOBd^CT4Wc=C0!MI1lO@M)ivoQdqeo_X*M46wBejxTt zjz%94-N6y&@xRdn#GJv=5!BEr(8<`r$o}F~8#4n>^jgM7XHcmH68WIPs0nTuf$E_| zhP6zMwjfh|&5!UEA(IyVZ`1~vFq5O9S#Y8zh}p?G@#2q0B@lBaN23CW2D=wDl*lkq z>F2B&4`vF2B7k!yi*!drLy5Nw&(HRqPlApfFgomTOq>B^k~m0PCnv~!VGwgB$HYB9 z8hIehMlKKyHZ-6?Ok&v;mui838K53aO9 zBamP}F8upL_1*tX3rr0bD>Q!j@qmM&NtvOcL$H$>RHuW&&XHj))6>`g8(;qb4H{)I zOg!|X@g;~oDTAT$8HmxO!4PKgUty6#>dXI13qWN@B7@@dA8VOXU;GEP%9j58AI8OM z!Kk!|K|xtSlX2mLA5WkCH@yEt@j6JmB~#;75DoU0;msdwnV&xS-*^)wG=oF&#t&GM z+`+h(S@rvWU9O%eu=BwLsPET!9HbUhXsUqbmX09v7J}twa5bKS58O?Z04Z3(2^%r} zmZZ^m_(y}%0u81GObiQG{y4_YuyD^0H#QJ?jD=xg&<{7zL<-k2Mo6n~;g%nb8$o6$ zX)q{gf%1z|216q=iijr1)79XRHgjay%XF6cE=%JQkb(}5i4%TISRpWdR%YXJkiZI# ziH<)|i#GQk@S<%#NXZPY#x{`aK_q0D57Z(3muny#lm7L{2nAo%! z8s$JH{sE0St>A2w`2h>4g*6}pW^gqogI$yK16ufVO|1OUSO$`t$#E=!fq`LSA&9er zv+?J5SZ91;E=XtwS7QiRZ!lahC_lh_!T_?D8`&od6QJ6ze{Yy6(6nGT%*tbK3=9nJ z6}%Ipe>8@J)Xd~?V`q4t!9OwLM`JKV09!PTe- zc9sEFXWjbV#KBmN>?}8RhKUv+ohvvSFMWrFPvZrU!aEkA&KhUqIk-3*A1F+8Kf(B^q!)&9~sP+8; zXo6btGDy;b$%mt%8RUgdCdKn0kr_;&Sez-)w3Gp6KFn>3$3O}?n0%N(H5wC-WP@fi zTy8%^PH8~{s-&4CL+YRZPyhZ8o5jE*y_Op^sqyjurUhJ!7BD`Y#IT@O^};H_h7QIB zD;yWBP*|||sL}#abt?fKq2-&{buKO6#C42;L1q!82d>iuZlg_H0SW;&+8;Mf5YjbJfs{|=ooV3ApDE@Z9KY%atu(`-IT5mYA|@g(!G=d$at z#Imz-Gw=xUFxN8ixH&C&z_XQ&oq>nRmI=l`3Yzyul0WKW%d>~ad(ncl#sW|@U0Tq> zGY7)Y0rB0G7#JMWp>9ZnyMf25aSO=pxZNUi1kEiI2)Jbe&(TW@4#OPd3$pyuf)bcx zJVE>k*98x>2{znSSfC_mprjCRSAjYl6^%i@Q&IvoK2n<)#JWH=aWey`Vg~iJ!1Z^d3P?={M?<%0PlcL< zo|`bJTc@ZB64hW*P?#dNi6!;-{{;&j7oGaQT*&33!uNv;-#0CMv{2#u(i#Rud62>m zriKQQH9OQKbk#KUE{cCYDDi#M!uJcszo%9)Ton0!P~`ijh2Itme^0H148HR?$$kLU zzC56zWh1a#zXho_3Vw%Gq715E{wwl*SI}w#=Ltp5@3J2hIlhB97rDM4I zNlttU5oucL04sPWEnsMT@NFi?!W-WfEN)8u_P-HqO_K&gd4=%An-KMlf!`qNn=%>1 zgap%^ye1w3$t==jfLLu{=xB8Kzk$IN0}D`DW0c9jqt$p0GBq0*1WbAnGhRj~Osb+z*ml!P$5K?ytQ}28$Jz9{Zmrq}sR!Bs+tn=CFY!sNl2Y zh~aA70W!I1p@ZS3Z=K9+;tULFN;(r4ffROd)*LqI5a1DpSpZ6XYhcQked}a)<7QxB zNHfxyI1O37GDN*mCc~ly9~u`xG(0ez^{tb6VgpEFlO}`V6tLrUp^i7oWO(Yvu(0i$ z>f`^0lfG#(gX3DU6Qp{P5<_YjgTpGp#=dV2s~W)Mq6LetD%O2d&}y0hO3sk+HKRnv zrx*VFaw(>Rv}rIYXp5!^vG8!I-v1w%3KB9>Wl*gDreG|fq{yJ4SgHWdil7Ng*1#x` zyalUb1z4Jq<%1HV0i+Ac3YuACRV)TcXfP`1sW>3CDdvN;MKBrWeS;Qppn16nCd2G+ z2BzQ;W>R8gxbsNS6Qphh(^Gebo~+a(|8=?AI2cqH{@3N2)5XTdz+mVIl3%3E@YIzd ztczjk{Qsb_LzzX5-CsfdP!7m~q_s>>&;MWO_-(Ozy1JHC_2hpAtwjopt}47@UZB)upma##m9UW_gQD9v1!V!p#;@*^SV0v^ z$N%lgJW7`y@JR7+E9`21+Vy`0%e6-4KP4uuITL@uln%qfDZNC2x?C9+|apwjyJ5J5$5u!TAz6DA2N zt*eLG$iSe;3$k+s6WBr>CIu}49!VZ9g_X@n<~JxgPMBmcL4oDNB#1k}t_7E;3I|vg z++kGM$ReqyYm&bi*OU9&|tz7286=Kg&;#ZI2!sy)s!@NWO%sdaw*Jdo-m<= zd&h<~&C|PNjteO^o%qMY)v%^{I+xtR!(WfFF)$qD`pU-2z`$^j<14tmd~n}a@X+AF zyx=jM00E(8ovdN z--O10_yyv*Nf`{FB~Noe{sHy7d88U=g4m74Ad5OUzGu7vRdJv;Q^O=ig%zcZC0{43 zQkYoswV_F%p+j+kl0ZY3LW7c^0w{NY*OH|%b6F^97+ErE3bOGq)Vye)%w^%E5d`LQ zF!1~^w-9YoQfuGLuWhVgyrDx`!?=@CQ_zi(frm+xQBzQZ(LxYhma>6XrkXi2C`|aG z(D1c=CO5ZI%?lmhyc~sAbEu^VD$o78;O%?jZ=1b208w_pmlVBucH#>lYf)W2OF0UZYvEFLLz96E5|3xl#?gG-ab83p$} zf~QWq?_t`$hmE@fobZ}X{9{-p*r27r!{t`Nz`$_Egh$$8_n`^D9nRd`V0>VM!q*KK zzVJw~DKjwWuuO0{z#!?suzMi`i-W;~i5nWeGO#!(I7|cy8ZR_3QP^9Y)+cY6m!F;RmuF&nKOy;I++%90XPDlRj3T0R)XkdE4VU>a|hr;AX3dZ0-aQJ#5 zxM@O*Lii40Xdtk08-w*29fk&j2PhaATm%ms_;TS!lfxN>>wAPwo!)N4blrxXyTc7U zG!F^~Wx)m|g=1z6;hUM;^g5 zpyBI=H%${d6hOLM7Czr07}fE72UGYC7Vh0_j0~Gj|BLE)&~f0xj7Jwb!0HXYG@NOg zV61R_vrv?AxG~dlV^)Zxn@;?TGG^E<*wC%u5V7ch@c{>qrf_2+khw|=-8V6X3$y8R z@Nl&;F>q_}fI2fgT)JGgpwU)v+1tqQg-3Ie2g4)}#)Y0=kOl^LB47=>#{HimHD;$u znubB+e2}UY91~lhg0>qh zdIT;i`ynmDps^LICkrgQ0xk>DQwJ8^4i}aE(0JkV0}h6;ECC+gv%EafJi8jJLFELP zC(TpUSOMno@POE5U^YmdHcwY$A(+R*17hcc*&rEjo>h(6U>*+-h@A;$gJi6EW;LdO zc|1HIb`praF&gY%?nb*W4XXquF8VxS6{xAXl6zw)M51Ap09+^tQ^*ff$O|C^S+>qS z(H<-W8b(`~@_7MdF&k(^X$5Da70BMkqR+5;4_qoTylj#PzxlXis?fWJi+k5CmkRZH TE~?-^KS$NFe)?m-i#@6U&#Td& literal 0 HcmV?d00001