From 2f75f0b3c4c44b32b0718bea52d6d0ecadaffea6 Mon Sep 17 00:00:00 2001 From: krzychb Date: Tue, 15 Dec 2015 05:48:43 +0100 Subject: [PATCH] Troublehooting of OTA from IDE Update ota_updates.md Update ota_updates.md --- doc/ota_updates/ota-ide-network-terminal.png | Bin 0 -> 18013 bytes doc/ota_updates/ota_updates.md | 73 ++++++++++++++++--- doc/ota_updates/termite-configuration.png | Bin 0 -> 31771 bytes 3 files changed, 63 insertions(+), 10 deletions(-) create mode 100644 doc/ota_updates/ota-ide-network-terminal.png create mode 100644 doc/ota_updates/termite-configuration.png diff --git a/doc/ota_updates/ota-ide-network-terminal.png b/doc/ota_updates/ota-ide-network-terminal.png new file mode 100644 index 0000000000000000000000000000000000000000..9b9bd47f406662dab5e0cb6b25c45c5ee17f0d0e GIT binary patch literal 18013 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 <49XA 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 W@**}%C0dLC0000 Examples > ESP8266mDNS + - Start Arduino IDE and load sketch DNS_SD_Arduino_OTA.ino available under File > Examples > ESP8266mDNS ![OTA sketch selection](ota-ide-sketch-selection.png) **Note:** This sketch is available only for 1.6.5-947-g39819f0 (of July 23, 2015) and 1.6.5-1160-gef26c5f (of Sep 30, 2015) versions of platform packages installed in Arduino IDE using https://github.com/esp8266/Arduino#installing-with-boards-manager. It was removed in [#980](https://github.com/esp8266/Arduino/pull/980) from GitHub repository. - - Update SSID and password in the sketch so the module can join your Wi-Fi network + - Update SSID and password in the sketch so the module can join your Wi-Fi network ![ssid and pass entry](ota-ide-ssid-pass-entry.png) - Configure upload parameters as below (you may need to adjust configuration if you are using a different module): ![configuration of serial upload](ota-ide-serial-upload-configuration.png) @@ -155,6 +157,57 @@ Instructions below demonstrate how to configure both [Classic OTA](#classic-ota- **Note:** To be able to upload your sketch over and over again using OTA, you need to embed OTA routines inside. Please use DNS_SD_Arduino_OTA.ino as an example. +#### Troubleshooting + +If OTA update fails, first step is to check for error messages that may be shown in upload window of Arduino IDE. If this is not providing any useful hints try to upload again while checking what is shown by ESP on serial port. Serial Monitor from IDE will not be useful in that case. When attempting to open it, you will likely see the following: + +![Arduino IDE network terminal window](ota-ide-network-terminal.png) + +This window is for Arduino Yún and not yet implemented for esp8266/Arduino. It shows up because IDE is attempting to open Serial Monitor using network port you have selected for OTA upload. + +Instead you need an external serial monitor. If you are a Windows user check out [Termite](http://www.compuphase.com/software_termite.htm). This is handy, slick and simple RS232 terminal that does not impose RTS or DTR flow control. Such flow control may cause issues if you are using respective lines to toggle GPIO0 and RESET pins on ESP for upload. + +Select COM port and baud rate on external terminal program as if you were using Arduino Serial Monitor. Please see typical settings for [Termite](http://www.compuphase.com/software_termite.htm) below: + +![Termite settings](termite-configuration.png) + +Then run OTA from IDE and look what is displayed on terminal. Successful OTA process looks like below (sketch and free memory sizes as well as IP addresses depend on your particular s/w and h/w configuration): + +``` +Arduino OTA Test +Sketch size: 346664 +Free size: 700416 +IP address: 192.168.1.100 +Update Start: ip:192.168.1.10, port:48266, size:346672 +Update Success: 6113 +Rebooting... + + ets Jan 8 2013,rst cause:1, boot mode:(3,7) + +load 0x4010f000, len 1264, room 16 +tail 0 +chksum 0x42 +csum 0x42 +@cp:0 +ld + +Arduino OTA Test +Sketch size: 346664 +Free size: 700416 +IP address: 192.168.1.100 +``` + +If upload fails you will likely see errors caught by the uploader, exception and the stack dump, or both. + +The most common causes of OTA failure are as follows: +* not enough physical memory on the chip (e.g. ESP01 with 512K flash memory is not enough for OTA), +* too much memory declared for SPIFFS so new sketch will not fit between existing sketch and SPIFFS – see [Update process - memory view]( https://github.com/esp8266/Arduino/blob/master/doc/ota_updates/ota_updates.md#update-process---memory-view), +* too little memory declared in Arduino IDE for your selected board (i.e. less than physical size). + +For more details regarding flash memory layout please check [File system]( https://github.com/esp8266/Arduino/blob/master/doc/filesystem.md). +For overview where new sketch is stored, how it is copied and how memory is organized for the purpose of OTA see [Update process - memory view]( https://github.com/esp8266/Arduino/blob/master/doc/ota_updates/ota_updates.md#update-process---memory-view). + + #### ArduinoOTA 1. Upload and install the following software: @@ -183,7 +236,7 @@ Updates described in this chapter are done with a web browser that can be useful ### Implementation Overview -Updates with a web browswer are implemented using ```ESP8266HTTPUpdateServer``` class together with ```ESP8266WebServer``` and ```ESP8266mDNS``` classes. The following code is required to get it work: +Updates with a web browser are implemented using ```ESP8266HTTPUpdateServer``` class together with ```ESP8266WebServer``` and ```ESP8266mDNS``` classes. The following code is required to get it work: setup() @@ -222,10 +275,10 @@ You can use another module if it meets “Flash chip size is 2x the size of the 2. Prepare the sketch and configuration for initial upload with a serial port. - Start Arduino IDE and load sketch WebUpdater.ino available under File > Examples > ESP8266HTTPUpdateServer. - - Update ssid and pass in the sketch so the module can join your Wi-Fi network. + - Update SSID and password in the sketch so the module can join your Wi-Fi network. - Open File > Preferences, look for “Show verbose output during:” and check out “compilation” option. - ![Preferences - enablig verbose output during compilation](ota-web-show-verbose-compilation.png) + ![Preferences - enabling verbose output during compilation](ota-web-show-verbose-compilation.png) **Note:** This setting will be required in step 5 below. You can uncheck this setting afterwards. @@ -315,7 +368,7 @@ For the simple updater the server only needs to deliver the binary file for upda ##### Advanced updater For advanced update management a script needs to run at the server side, for example a PHP script. -At every update request the the ESP sends some information in HTTP headers to the server. +At every update request the ESP sends some information in HTTP headers to the server. Example header data: ``` @@ -329,7 +382,7 @@ Example header data: [HTTP_X_ESP8266_VERSION] => DOOR-7-g14f53a19 ``` -With this information the script now can check if a update is needed. It is also possible to deliver different binaries based on the MAC address for example. +With this information the script now can check if an update is needed. It is also possible to deliver different binaries based on the MAC address for example. Script example: diff --git a/doc/ota_updates/termite-configuration.png b/doc/ota_updates/termite-configuration.png new file mode 100644 index 0000000000000000000000000000000000000000..faa885fd18a66659fbc9d5832119d4eee55b1767 GIT binary patch literal 31771 zcmZs?dpwij|37|h&c`i6h|QrW$3hOVITRfo(#dgDl0ztz%t1l>?!V9hx2M@@GXOp%3o+e!pksl6V-A4;h}LgE zVa@)zR{#hvI)23LY>4Yzb!e)b)f3JJn`F4W<=Or`!?2ASsei2GiqebWt-4=C4_Jv1 z*XuuRmxN9}o9A^nqoZ@Zd_ymB5H72|tHy!8HbLr(y&#pWG8S8#bF5A#uS$ z>Mu?QZ(K}CnhASPI%tzS+rRVqG3U~-=;pBC;rFXE*)M`;ltfW`+4xDL)hvnG9=`bX z!iygYTx!m{RQrCdxcS#RxbfGyna_JZ^t?TJ{{6a!Yu<=Ol~32r)pqve%!0bOqnQt4!^fI2h9J!AxI^|Lv@VsJIXNA90m3j5`t`nQ&Gp94>PG!zPuQGkP zrCkJKXhuy){Fvg8*@GEM4aXdRW_;R9~1FgH& z5B+rdXdP_eF`^j!1N96ae2}H@HW2XZ^3f6IZ}a+WkC6#_la*wy{+_6+n2q+J=lUix z$F&ZSTNY>^9#3H5>qFAR~@|1?i)MQ=J@I_si>KcEqjB-d4v@F-TH#LbNe0msyRaH81G1_@WWSpjTetePi3kmM$ zH2LgiYrUyr@q_cZiFxXAoWWdQE*bevo53LWuKqfkR+lc%EF1C2v~%z5-thjCVueK^ zBHTUqAEn&;!OsI~t|53NBS>LXL>=^inQF540&VI7H#pBY2?GMJWWhDM7B{G2Xq{0B zg_&AV7X*SGG83mGlz+_|DU8@YRM9F_XEQig9k0TP_g>gfUkn1;g}8LMy>E+dZ% zyeC9)5d&fAHfwsK@Dafl(nY3pjijbBhi`sWToBHX3E~2B+_r;6Fe-N!#eMDAv_hGB z(?!v5c)qunN$GEC@j*lEncr<#((q1Xp$b9H|CMLZlh< zx}!G8T;8FgyoRx4YVC37b0708GM3`p1W3uqwAYM6+Y7ek7k<^a9&Nr0GS}?*+a0^V zRNuKPWU~HJAdcmEJcx7W2y@vf;|wn3rfFn6<8%E5;~@{jL8ZG(=cDHcUMKZ%AM2$8 z)OSYgDml7gEEoPT|3wE(P*K?CDTA-oGf&iIucxow<9%*`^ry&hyt|<-NOTj4?ldgF z!`Q_G>n|M0v=Y?bzX+?)MshnJeGqP_$DP(G5Q(5`di#!;!3!EmWzS@`67z0c>e8?C zZy@Z}bCx+}kC6kmkqWD1sUB98B{C@jmRraZChN|&o9%>;M7|@sG*iV;P??JP3>|N5$Oqq72M!=2U zPYb%oPF`-W$!SET_*Xw+%1yiV!?InCz~Z)&M$yE^i+rGGFVL7q-cm#WZ5LsnP2vL^ zoA1_1LYRW^bwZ5`x8PMdeGtb3I|l=*e6U6^DyFEsreLlF(!Bd5;lz_(ik$+;!@EQ&Lz7!vB@$CH|~qsDBI)6_S$Vf28@cF}!T+>&1F1+F1;vj&Z`SdWrP zTRHqa#^>fV)sU9ZgX2OwwIecSI4EE3#eLlHTX%sHe3ytRk~j!oP-$-bUY`#P(&b^9 zF-^j(>~$L$&^uK=Evxy)k`4DR*5vM4#FY`J_EGNj5M9brmh8cSj2}@9+>r-2cNm_~ zTzW@8kYuO1S&{X5v2&8AI3wmquGZ$Mi~pWm@{r6d{^jsw-Gu26S<=hzcD7XnF3t4HRBbjN=DENYmyw zT)?Qk8wqTyU&RCBj7TY97`t)Tnw0*-EuOy3O^gQ4T#Y{U0ss^o2+uFSLllKLz+=fP z-iV8}3blBoTag9pz64>SIm~#d!vkJ3Tzh4(djdv8aSNM(B5KEPkogIXmLgd4fwMJQ z>`Wy1UHt0Yi_fE#cN;KAyn(GGA%=^XGOe>4eFX-d(AL;K({q=nWh{nCd&W4%0#ad} zr6~sZq`P8KoYP`6gM7E%dkx;sJ6wWwxsnOTYSA^MesuG9^WM^HJ3GLE2c23iOMhU( z&m%^8QvtIV6y8~u1m{U}a>;%0O~1tW?S@S6)&+h4x4`|wrXmlV)UCw5llx=ywOUIP zF>QftFws*cv52n-I1m(QXgCr6_ioKg>-odSghQrrl>VHi;W+jsjZG=znijUowLd&P z0ZEMnb3UNFb3FI{jkA3QH&f}#72|pT=oLF&b0%~(dB#+nyZ9O{+fw2&nR8b}6x?g9qs ztO9!ypp}2b*aC10*lO{s@_|V-vGu@o);5Sf7K9O{VFpPLo^SyjxEl#pWJWCKaf9Z+1l;>A0uMrGcK1!$%FsN_JhRCBoog%CqEBC5 z0<|B-Wq4{!SOA>mffX>eU?7nYhIDI0b#AJ&vof$mh9``8y7d5+AkfQ~tHut}6k6s< zprR1)AFmhA*f6E_fp#_LT*W#rdXXSg-_xVUQe1T!JaKbaE{!u*v~n(C4UzlwZA55d@YNJj*cSwAAQzjD;Jd~Jt#C} zZ3c8Ezvrm#3ONxOnJ8^&id^I|5i_O5!i#MRhTmZB0H6dWe(!?SY7o`F+iAH}oLOhn z7fEXDT_d;e5k5Bk9Oqnge89P!OP4vh@r_4lAOCa?n)riD>Jdm*ioL@KITZ>ZwOH;q@+nUi_Q0sZI5VgBs3) zF_&pS(jYB>mBi{>-SAyWEI{BHPap@xtws@jcS6zD^X85|lL%4xXI*Y^RVH*p0Xwwd z`4Ec1weJD}Qidmhix_5RstUjYk8%$l*%<^(XRlImf`H$MSCYWhQ1cvslv?}nG&>~z zojSVAih> z{`~Fv-DkVyv{4gdd11pJ6r8_qi`v`Vqys`1D55M2CLM{=v-B9ly=gN2m-kJ^B1tMlt&RLd zMoSKK8X56t9&CD)>uj3Tb8o^x%JvWPmS5cc(Zh9!E|nEl*o)iW!wyY^6iinpky2@tU;t3%k` zPavRyY9cvw32UhfT8>mD6ftPV1v2kx^xs{Z2^;g(-WakA3Q_JoMzp?P= zC?A~uqTU!Utn5|@H<2C<#KALkt%RpW(?fKvlt+f8{Dg-YpHW#Yp>Fu;i2U2eDB?fZ z5kAp_G6L{Zz^#G2VF%Qsrz>GZ0k~$?l3p=FeKB7Ee5~y@ybnRpnuZLFU!dlsCVL9I z&h{ahEr?mPDIc0%9d~71Pb9o)SKd*%QmT9t*&xBmYENI{k7xMlMK|a-{1m+U4;~IT zepm2r&iOPIwO_|_UnjqI`daT|oQQVF2)AfVPGaY$iipyNh2AG;`<{?3GK)?|db+)> z7+ZQ_M2l4u`t}Wr`1b~UGq39iFkQUfCc1iE5WWiwYOfOuQy7)i1Y_a2F#=N&khvLX zLv8%$J0$n2?vMpT11Y~1h`AHIV!%Zj!IrgaWlfM4kL!?ieUi1T9} zkjncRO#CV1FHC(= zx#@vHpd0uW6L5LLR0tdJBZyGf3M0xwVCz=m^J6)h7`7b|r=5Uuj~^K2g?VkW>D{1+ z5eODB19$^)QGy?QWN^Jt3_y;?8K;w>3-4jk5aicNg_9;{&MfW2tw<|v?gqa{uuq)o z#iv7VvQ8==D$VTA3uoEq_TwvG7`w%^cPYhOGY|26loIWrJYqpR5G)e^R}T^U^xn6U zU~RK4F}|%I#+SH+58J#(QLV)|ss{MBh0|y=s(%!h5}WpjK}b77+OWQp{(?{fGkqvG zgF4RmR$6-fLU-=`SB7UjXDX|f5OOJTQ#gj5<Y|m^!BNo8-IJQBPTqj0Z~RH4lASF{Y9T66t$2ktNo*1#6ffM z=r?^Yg)Yx+4u@6#cdo2XdS^Ilpk~na!r0VxokU4rP#wQ+rzGhWi5a^Xehl^K%@?*}C8dwcIqK2@7PXa9HClAVCj-tchq zzzsrfp7NT`ZKf-qu)}65rJF80*0DTNP@p*0F}3gFrum_RMD(b;PUPTRXvUy?yCt6= zYfK_^)8j(!7oW5bvr;ck};?K?q(9dPXCyLENf0>W}K zX)}wK%(tQ4fZNH!2V?X)X$~v8Z_}+r{%oYK8+$jjlWfdtqxLkMx%50tP4D96mQN!m z+Uu*uP?F*7ZVm$v1e#q%!KrFRU>do+!OsJGuJzX^ zDIZ+&;*6WY}O z@#1#CC1M3@x7}M;0@$)6xN8N#wMu?)bF5GhzDQPOLO#4B6v{Du4dWy3F`|oi04289 zHi&y~;<5Ocr^5@);&X?4OEVnvFjpJre#GXkpENi0p~(d6#LsN3f9!>`OlHb)CtC~O zW>oGV{IK~}yI$n$p~()*XkdjaGbl>mnvH0j<_h0UM=?URbD9_9y{Mw^AKk)e7`KRV zWaDnVq<05owC6HDT>Eo&RYHv8g(NsGRE76-9=vb+%#G(xy}DRL+H=S-Xm+EWrBP9U zTmMDx`{V~(RjB-uZ1}B-Q3aj+aJFue+qCtMaPcrU*74kKX~vwU-f#k0RPfk8@|F`f z>_V>W(}#?~zc%VRN^nx8$i{t!O?tTOY05jl&+9Dm5gILUtp>Z!T(ux5vqQwu^BXTo zOuG)!t8ux+pC$z3f3XS#d8%hu$2~&UTU`1Fnp9rkK1ygZmni%`gM3e>pmc2<%L9}@ zTK*GpusHhHaYdtGn${!5dd)9dor6+TT~qjnxu-hsIh&`?#7Ra-9frFdrAQHyB=+e; zDJca0B5>oe4menP;>=7RBiO7wzZFm5jStcuR#0EV9Hm>mz%mg5rwq>T)}M)LL}jZM zFlNzEh8_FQ6G>>2AmAB#d-z-KKF>PzjT_L>#PBJsnjSx)e9b7<`yYoiB2tcnX3_*6Wh5TO6Ar3sah(tkXtvV<(lP%(>jCy=q!P zAJ9@E8tk5W(z|;oMU*7x<9Z<%F>j_-ovp@>o=V&jL<$c*S7l###PBpBm|UMK%-m4B z=9*|?2|LEnJ4r}gW!|80N+`A<;4flDR)SpICA>AO!j_|R_ziWji+pse4jg$d*?N=P z_>+x@ehgEANweqTxpDg_$CB;THC>s3xf(I!NP9|bat8HDfMsCt?a}k-$ zMZ+ML@aX2~r~v|)%5Ntv^IyQcDp3H+e88oT_eR#%k``s@{na7N9OiB??TXE!jGGPC z--39`Vl>c)iV|o^z%T=RzyWC*HAhV(1Op_JbBZD2$b`*#Iszi6e0pnwYHj+@VtP_} zQ9ucx)i*WE8L@C6iPvENDZ)0O$cLLv2x0_gJ8MwcG2}DrFd{3*=v?ISM9vfCT4UzC zaIX_2(kj)y@Sf73j@=flRQ8Hv@bVKR=j)_9!L47vo}K)wc)0JxNQu%^s$Yg#h;Dd5 zr|=f#!#hP6p@fA2NrO`kO`Mmsgc!bc%P7_AaeRbC1_SFGz_lGGe;b)rXVzGk20MxZ#vvk%*0ruT`XHs8 z+R+e2j8b)S?^~bCiwv-WIlEhel+%MN>L4>%Vakzdr^)KzBF>;q)7+z>VpFaZciA=< zt9r>jhyXIOuw%mD8fPY+?C$ZF5nVwoRB*T1Nr0+=?^M}%U^~4bCC{jjzN(BV9lJvw zls`jJ>@r{A1lr%%#s|{8dt<}@Ml8HKGGKhy>LQ)<`Si=9RDygwN98z^d?}nBY7{fs z|0{xdhpaXGFiPzlsXDEYmY@65qsJ*HveqJ^l(Wl%we!`Y?%eELSWAt8uYcI=j>SY? zjm-~1{;nu30X$s_ww8hKd)Yx+Tj#-$ree3`&!=@WCpqO7ku1KnZnkRyrer6U6@JXc z^6xXU-wqyE{@Q8h(R*0jW^aBfTV&OJXaPt5UNx5-#zGR7-(dsEC=~PC0+Swtts0S9 z-)gJI&y?F|H&|?Wbm21FUt6xJd;9A3q@*9+Xy@%IBb}ZlofhF3o*gmliAz73^gHw{ zdtSTJBZ`BIWBMtbIuriET;M{nxHc8>9u6){T<#Gk$is@VL6C8UyscKQ znk*omV#3<*VN^Ck>q37r+YHwuM4qEFcZ0i8M4@BHO!xli(JWF;iw38hZj>lqpYnPx z;WuQ|S!a`JEbp$JEwUE`ls1R5(6u6(Oi(KVhaj0@YIlrj0W($Q&y`^}7m;I1Bt(HZ z6`=|;$3MQVVQ`799ifwT#W#`43}S?eB=;3+Az{Xf%Hf$|5$=U?a7y%V76g5YpxGtA z3#5Lk=aJ6_>Z0G2cl1?z@)t!?M@DS=TW=NE>4zdl$1<40In91}(QEyCYF1AFxZU`q zy=3Y0g8Gx&Z!2!x+mNQDqNM30^Q|A)zujIfw6`|>QKYnJ(&AsziiXy^Y^LnfmpGFv zh#80$Ry^V6kXBgX6C3X~o%b$IcVRysWgUER2s@{vNciKtteDwhuo~W%Z{Opf%tpB! z3Fi0=Ez>;G-hY^)RpTSTG0xBA1{7**48a;zBP_fTPjJP$&Ic;!8CCRSJK}0~;JJ=a zB-lE7LLx?ToE_ZiXFTo3@sfJiJnb*XfKg`^V0zg@MpYlQ$mZKd^Iq&^2JIEEg6Bgm z17DQVl~6B~`PP8n=keR?jr9_b6wgupx${)FGc3%84SqBcsy?E_GDbbGyhb4jrkD$R z*h#!lyC4=afQic?RR8z{Z07j41KHN6YOlbFI=LBl2Dff=fpzB!+DP?N#+tMxj0rLi z@}tMxZysom23+wv+yixg_mazL{y#=lvUX5sP#0!;4w-Urn~5EULxC3x z!RT6X0#pJiIwLN|QdC~trv&z;poI5;mIjp8#`F8JKaTy!B}(NjIHlJI3;a~N>Z%Dk zO#g<3%0v7u=x-u5aXDV6p5yK^2+I$BGw8Spu9@nx9C?m&)Pw$U6yLE<7^2t5tYcpl zE14lF|DyO*eFtOLdneW{?BbhAeTLWM+8)$CxK+~Yn=rCVbx zHZzrs?@X3KFl$g)dZk;<#xOfHIra#un(55wQ2k^Z4MtCS_jEvQp^we`_%oN<-+k`b z`^_M>q#iEN)zR?dorGx^aBbd`inuHD+!~V*Uis3jgmfdPmn^0{E;ldo>xg>eFCgDA(4F@TvMfJh%4J1?I(bbP!L?T0H z)7gkNC_#u8DB3V2UPRVzdyku49}K)ZUiBFb>Ixg>IdeDbBA&Iz8T~j|y6ayhrYK!K ze-}3+8yJBivsznA*y2OQI0D4Yd0<_D_>?D{b7XUoyo0j|15abQDUISAVJRpG%%3s1 zM8VJ5NV;zM`Y5HJJ}MnAAE9}}c#!?Y;Cw0z-US`bBIEmQfZMsV$ z2rqel&c!47on>Inf60C8PBvq(mRDY2_0n_i8x+<;4F|PzWGmT8ZI`=Q=Fy=Q5u?77 zgv`B<7sto3xFgz@v?H7<8zGJ*>pM<(eS8)_)r$YH?~!gjE2ITs!x*=(W)9++z6cX` z)HIj(o6gpbMtqIY@J$)Lt2y=qe=k~x+T=9-3)=LLA~x;>DU8R*OqqH;anioyN4f8% zu63xW2FUv@eC<3|lJcvjsc35=Auy+NP;~Bbw3_nKUl8~)XL*1ha+I>g*O#! z&M-RD6(9xSLpzAf5rP~&=W-`^11C~>9;$rNF;9yYxvYNMcPjc{JHmWEATqni+RzYG z0%bhJEe>ua8t_YVKY(%txQy6wWAPMm_AZ;9Vsra3Ty*lB`wv;RtquQrw()9hZVUqB zwsLwVPxj{ln=GK(a9w#ClpX_?Cu_`Bd1|bq=A)eU;gsAxYX&%6!H$QD5q{_T?b8Y0 z5-^zc@Gts3h2&|g2Vrx9Iz5DaE*BTF65EZ3JL*}M42pTugB=91a9d<#lSJgzJ9pq9 zNfaRYS3c;{Y zfz`CVY&yvFW?-3%s6>Jt)bK*INPTFa*zRQPFK)3Y3pJ{vT!r+Z#8hXmkcYN9VmXm? z{Z-50TrS{53Bnivx6gs!X@hkbq#(Ft1{!`N;KkaH8JQ{zf`^5^Buc|FC(l=fw%`(L zGzNY72HPlG-(Y|bMzMxvXkPv+&S4DKR8Ih#0WXWQVx2|AH7ll`{RIra{owtqIo-w|bWhTs8|OHEOa z^{!xw$?8mq%O^$%Pu%z+qv-5<^Z6~Ti{1Rrs_Un(QTW$G5}s`eB@*xpSVkp51p;oU zaaF*Gt=YU#n}CN1r77qXqpNUM8*6?>$blXNyb5HZ*^U3H_>9*d$d)g|Ut|UY(^to7 zjR+7>@Ok;~D}Rbq1U;DtrrzS13KKX9u?c(;y0XZi(hIrpvESe9c~$zqN!MG0e#p#H zkL{9yi~x9V2}84m6A9g=FjWl$rp@5KMDo2gtO4Au5xX0p+suQzA3@Et;T$AL>1fD} z3~CeiroKq>7ORnor92!&k6s-TML&FTD&lE_&;qBqnSex&{sFusPH&1^4CCfqTh}x# z`2NxzHKwnbJOerVF$;7Q7*;ektpA4oHZRjkZX6=P0lrb$wZ_4aXUeoJC-;VO#%8LBLXnu0JJsAZ+={l}reIbr40O~9_ z?(}slFtGfcf>fVhjV7joT5%4P(6#Xqhr&7P5K#cm&HV7`-JKgZAj;p76WE?uV>{2P zEZg=9w`VozAIheF$dq9*;xVVJsUUICSy8fEGHh8)am4iil(2!>zjJ>8fapC6;`oq9 zWr11=4m53GjwE_1iWBx@9hhcEn5|}}4$OKOh!5F+mZtEifn&iiAA)9utQNO!2*L~c z6;t`(`e*!C_KFo@#EM@kc%L6d2g!(i?*L*yZNx(kB(+X}mJeC3pYQzIjX51Ee0J}X z^tv2%{l~i~r?#Hdsc@|vFt|$H8_DGD;W4cSJr7%(<+NWP6fl#RIm>rZG}ouqN@1me z;`0eth&kq5c}YV6Ln!DsND2){#bZWBt?H6TFs_uujwR|Ch95i9*^FSAt*lyv_mpMO zFCJS-Dx>tqfT^uv4$Ix$o!gZ2;CZJxH7>A^Xt*qM)1Ve%@;q3k zF|~0r=ge{IiRH&QZ?CQbQ_= zZz=$wtckqbBm%!UE!25%ISA|CT3dR!EF$TP2~w7)b1?fR(m4R67zvK@g3m1k8#}C%&rxj2PkFL&${`NS-fa}*A3ZR`Q5f!yh;P85@t0|Fh81#LXY5pN$5~1 zpHHve#FYyU1R~j%JA* z-BY1ZF=TAsLLw_Ty7QjBU+Q6t*+vxn%28Euylu_8{}C(#IMbn`m0E};GjL1`!P1A& zPG#PBGgC>Ri{ze;1$lEH1p!nI z-3?MY$KA0ncwe~+f@@pqYzIJ;$IjjU04H8Tn!-o;&r)tEQV9}r)4dIP%GUhc=rjFi zv={OGyY31{S(>k}H^d%a!94nOz;o{1tKgTtR?)r*7K%(eF^`Y34I0=xh;GaQ!UA1k zU|m@7W-XryCi9P}Sr_jr-bL!2pRn>!gI+@~_e^s6O+&PTN&z~j{O7&h(`WcAV|EkW zXrTzYAJrx37v*?WbjV?DlFXgNyl*wf5DSBdRpjP!w|VS|ck0 zD(skM(`CZ%Mg(bfkN7~0F#zQZD619W-aUrk0hWyF5iAYeZ@aKpkjQvt@U9>Xu{eBVt>`Tc0L za`FA=$(Q@gYWSa{r9ufrAJ`nCtZCePU_sbuZ@`oKC-N6;<%q3$4}^Vm)u+=ON32A> zTI9w}WF%M5IrcdG<~*=|8e{!)FkT=?apY=woaQFI!GLNm#u7TVa-g__G-QH$olIGn zU0*zmSoK=mV!ocPq~ataqqR0i+YsG^%rxi%%55GO?b zyZUk@lD%wEeSJww6od?B*@4C%TuO$d9l++{ir0J=xV6^i*p0&#K5sjT@&bQr)-vPHVg2 z8~h|av$>Fq88h&gVmsLObG2pQ)-U2No^-csa@mNZ8jO6_LiEb3XpQmPNv6Rv)SQWz zQ1D;A$I-!7S+Q`Wvg1f@Gvr75q4=vbsAp(@Y10k^$K zSfVrYMhDan_}Y4Y*O=6QziT9WyTp_`S@>DvzaO|}tFv2O=xO2qS+mn8jv)jsUZ-mD z-!HM0Hlu5?d;C*5?F2v4`(E!CHRX3EqqKkhHnvET)wj4Vsv*wpezulMkdDW6AE2W= zkM?%vOz|$A{k3N4TQKt>$zJDBcaVzAsoS!@Oc966{ip7~{ABp7H2>_zQ60RPlV>hQ zzi0KH>Pyf2K0}D%Wd)k$B7XvBQmt=4FJ;pIC8M%EPX1PQ`yanp%Z)bfJ#C6o*VenP z(;6tGt7}>%?Y7BZ2WQ?}b=Ki>F9e+sg9Ag9IgcZA9i`lb%hJU8qUkuRI)4bsePT<@ zg>u?nJF6rubxe;Jw|O^}y+8Kb8C~U!_|vb^|9v*UaEzsqdb#_$;UD^9L{`L?wo5zx ztt6S_e`i};)qD#_@Io4UZo1B9bR;a>wMf_b`U5-LsAFHy<4MO%%LScV%06o zx`vbGQ|q$kHv-N!-##0Ub%hpv99dP>J$Yzz`rQ|sX-@e9828Ngu{pv1v4y^W?I2yH z%L)L;{p>-K$=RqhkM?5|UHM+lf)D!j^#d9)E=xDjg+lFHgRRg*OJDw8GIXdQ zYxz}>DVo3K*SNaHnDyS#`kobaHvDq>nUPHY@NskK_qdX%;Ac27u^eLwEnWU_Yl{SSc*H4Jvs z*??xcm2BeAHtg;eDN!*pS?8K7yd`sY&1n~gQS}D7lcRQQ<#|>d_SW7jRlD2IC#br_ zPKMsPsc({6y5Hoh^KFc-Tr25Cd+Ur`xNl^&UplK~<-Oj_#DSTOoV{5YZHDxA&mfa- z##NCZcZVxRCB~_gVZ?}auaV|Hk3Ut8x~ln|^~tG+2R_xmen%8M?sw^M$Vr*njBu}+Rx>Du*F_{r6domh2}R-oT! z+QA_YKU#wc%AtlDnm?G)$$3QHyc5@{S9>N>ON#SkgNvZfv?!;Ms69NMfnCgOO zhLne&F3~`LAaHgY(%@HU*?-rRM+;wBO&hu8)$qCKuQL_4!N|p{kvwd|$pA?xMOx>< zEREVTa>h-$bepX4+B2-c7W{N#iT3+DZ#P{((a2|9%z}J>6W-Ky1u5K=G=kLe?efZJ zf?&N6q?p)$u@D$?srRlQq~pw~{&_CtH`6a2VczrO+TKG0_TDYn$yFP=Mb;BYKpk-$ zh2X|V=cJX{v&R`C2svhU9J%w{_UbW=oK8)*JoY}kYOxrkT%JbGez8c)2Hf zI?I==z}{CZbn!hQ0VS9Z2{F8LHTF2OP_fJN2=j35gLIn@>_)YoAqr;y5mQ!X2D2ji ztx`R(&Ug!g+WOdu9Q>Rc=T7!a%ZKPvV*$8OUpBT96px_t@PO!`l&KjUgeekc}!`7-=jB@;P zD}Qsc5dU_bT}tS7lkvJJ>1c%nkOnT}`413QdoMiRL6?G#*O?h)NsbRRgc!3rvmSfp zH(4%@k@F`Yjx$yt+Z(w~DU?)q&gJFf>uuE{fBdHVt4KK1eD;>eOV9W8anF*qHvc)* zFMN>dJ%1t`n1uD|C^W*P#MY$5?b8hIvvUKkg$S9&$a3tWEF>Lb9N|TJ#Itwl$%lGsav(J##glnz%Phms@B&rmItQXCvRP!d@>pvSmBu=Nk)Z6W#yQ6Q8+ zz_qPbm%mTOV)`^_wh?)dpF}1%a%99J-`&y>z?uTI31`iAAA5Q4VU(!i-i|Lq$Amp? zRMlTTcQ_p96ESv$FhGEHL(yT+)-QxHO6K zLwC`TeRop{#4vX2F@}aCvwWT6P1n)|Z4o;F>{H}_#582 zGj}+ON{S5a;S7bG8y=6i!Tud&+2HvaQ#1Y>N*;MH$Xk@0B2DV#7Af+hKk+^{s#=q{`?5PDTUgg~taS zBNg_8=;z|?))#$4ej>$w!RwDYI4C7%GG?>3;?Q4O2LB9wjPq=*-Y~C_H9pHDGxzml zmcXb}P9sMOVVt=(Km4J@H}b@F$|p5(ylzop_1cRtdZSeEg3z`FlMU{Bx5VgKh&Vi9 zNd3~l8~*RcM)Y#idY!N(Lx?3-#Q*M$eC@AbaP0%5tQ^EQPaM?P*;>DlNN)1+ET2Cx zmymbc_5SqX*$M{DHtpz!`QNO-xpz5F_fTc5rW1JpBXRZu}7>B^vYTH0l`P^j4<{FX5#M0aRf8pAzN~7{lj=O&i3UY z|E?spUtP5|E5A<8{Qh*g0tSsaul8$=sO`DPh#=>u&AW(8o)Z@3cS(@3(u**Cfz zFKl>9dr4?QF6(YAi#1a2^Uy2L z1n2#a``0;Jtq11*y=-dhzx-dIRAq zYDcfxGKY8kVwz!~S*qhbUp%?AaZA#)jVJ1D3KKf#Fr#DhR>dFH+m1`UhLE)IKZ#K! z@dyd>t=QcP6WRt{3e5s=Px>76hO!h- zBSm&zJqCE0AYn}ns432?!kHZWpVvF-xAEq`Me0bG>J`|aI!t(W{7KEVi!l5^Y_V-J zSu@+2IV^v*aDDW@=(<*Jx!AgEzk%o5LF@D*4P?u{w>|2dX*g4uXeR+BDu_bL=%a~N5jC!lLQ8#vmljDBy7DRjq#BdeC=hNRo* z>>#+m`9I7_YhgontdvTAc$aY5DU2Ou)_`q;Sk}XBSZGAtI}cG*$Z*!R>Ql%P9E2BL z--KgzlsOm$#pig2kdny%VK<>2l%WOAsGtVhMzzg*2j`Xom2_2+U3Uy(Y!GS+n{-}4 zkcHh>wrz2GGaH)JxVz}&jdJv9#D%f1b5RKsWrhxy+$~tbX^hz%R)0aS&DQu6GUz_$ zGvh^Y?*acYfAgOf*uR(Avt;&3);fVxitj>99cA)B|1?ozLnYS!t3B+DBcvU4e?;?x z>Ri#?h6+8f)ro$&ZF+fjLj_+?ps?0wJJzVT*-ZK1Q%WMOGVF9h&O_315m|@`-rrD2 z#MaEvzTn3nd$$)p&D*Cl_1>gIzNc^#%ConLP%#5#{1J2Hb;lK|mI)zC_723_?mr{E zzR=;%2p_vA)%#-gWe-YHv-e~8r7vM)jZ$iqMb9Ei<}Pb`z8HaXJ)CJRqJMfMYee@y z%VnvtnI?oH`gggBXsx_>5-D4A<2N~v=On48nv=qqU4LspE1tK>b|HCLEnZwYfX4T2 zYqy!2EKe|Fdi=&spZ`z(F-6+dXSKj?>AF1AwUO9MmGJ4UI6c_2*=F?zK&Y?{Bz66Cv?`X=|wSh&IY= zP3Q)+pQ(I3C=Mec;5Uv$tJ~1mI&%`Qf1-g9bL8-koq~|hAu8B$5(H83hDL$i`WNB2 zs^ywB#a^>hfY0##kMtXu;{Nn{pNOxWh0cYt!)=4NX8hkTgiaZ*_S9PI6-8FIM^~{o zfru7a-^9l^xIUJMURa$j&1w77-<%c>`Jce<(>Q zw)%oeB`0O=TN*C(+%Thet9O#bAbEHFklS4Tr9emESr0ls5eiQJ4X(*Zh@SUv`D_IzTz|5WN*7GmP7~CzH=^KT zGuPeOlo}4}*JdLxZ&LF0)Dt4fF6UQG2;{6&*UN^3GLqkxw+>xzToMTWA2v@4^&@RA zVcC}JE2YB!E|6GLg+0BI*t5x6!vzbg3lNR)Y{VA(oqG;N>TWmkM?#>Zdf`Y0E$3}j zaDhT;l{|zH;h`Obq|MP2YV4&j%9;`c9qE!Bobe)Ypz?O%z~|L{Un83fPBFS_sd+O} zdF!jp<&N2Hd&cd4sypr8{hoLKzF}%w{qm=vjQ-!B%VQ^~Q_Vri`j6(ev)66TMk)6A z5O$TaBe+q7Q&3R#m(P)b-B`utayA#Rvy)qE3y1{5qH+JS1ch(N81H%;;zS(=W~RQ8 z>tzNu`~1^=a$}+W$_L3Utm*r&J7r@4oqVOyh-btqp8WQnB0Jv-f=(k1Hp3f*84PDK zguJ__G%9W!HIn(A<{EZf?(nTs$-?Mu@|hO1Ka|n!pE>h(Fs4ZN-(OnCRAOC0G*X|` z$gOhJ9f4U)6G@-ixU2hL)0X7u%^u3lZsxpUFQC>xeDK@Ms+f9=J%iBt{esnm!WxRi z6E>KK*>?lyUJa@j&T_eCyn2nB3AVtwt|377&R7Z&lWb+1Y$@9)TiHfaOx7{Rm|@1;ziYI- z&-1?DpMS@_T=#Wd=X}oRe9pNdHyX*|G~QWjJxv~9#&YMNH&AXM0rzA!B<_ln3*lOg zexv=2OONL&Y&Mjbq-rMoa~6PbITW$pf59hbM;dM8Op*x-dJs7E z$ba>)K&i!e*fVS$2RAa<5rRZNHY7!;W#_IGtrJBN(wa~xIumiMr=tB+)G(Mvmc~QT z>VXvh3O5zLBALN-Z3v-PZ;0YjS*{hT^#b`oR-wEF>syW zbaN?$t>V;Ecg1fpi zuXTO$4Y(_nqBW+xAIH~M3c^sEnYhT^lSLtC}K4P!$PDi-*Nz70vmaO&X#8Z7UFOI#F>bY z7e+jcfksCq80p34oJTm=E)gkW-tGBP_lxHMwt3fu@e$+ma7oyw?q-wZy2x{%%t)RV*eLjaB-_2Wauc?_LuXEj|9r$#48 zm~Ml(m|)q)5c3zddhh@1MvcW(J?f}DW2|c^Y%YH5%RTk^S%3GE@=kO|)m%~<*B_B& zXf${_R!7rFiNziItcPnqs+CI9kN!eL09r>b&J4FI=1r0QA0jP=%Y{L zQ7hZg*5#DUTekF=&&p#CQydIV^t_PqLBoAToC|6Xrl7qESXwI+K(@4A&ofQJnY z&8SY_6R)%dY|X2511@jo8N=@YkKtC6Xp&oN@H8 z-xmKC8gHwC+8z3%x1%sX>pS9kfL=c%kfD^<#dU34-m=|V+EpxrjFO%P|S_yYW}W;MsW7P6}y#&2Gk> z$z;khzMTbC!Nt}MH5jJhy{MkJ>T5^no*#@T;= z(rg>YW~1%ko2K$ksi@5pQWlKropXH*PL*%Dr;!}OE7%pj^49ko0cGmAH>(3gz(ynJ zAtuKEv92J&_zM((4#->D1#V2H9$@IEZn@yQv_}#0LCg+&g9o~IDH!cJ_RHTODzT)b zb%~fPq1VyKHmu)H$^|)>yoPemh{8s%{JA#)f3H@jDM+SB`;5P)Y456;O2JQ)ht6px zZiYUR4B9z*s>2p-ca1jWo?8DW>r+|+h`joHOw4~6dQ4d3)&sM<2{0TZS2Q7y)4}Me zpIdt?C;D_8{DEy7y0JS))5;+I*y(YvF1av{SvIm@iOSWI@Qz|U^2Z=^)86_C0l(ly zniUG>1hAf}U@E=aVb@+?PcNxhvX#MMm2dTCJX>s{d2B3wwuRQOG;bq^t?Ov6`EoEv zk3;H$m--X?aabcJzg(m1@a7}F;+}}S!DGcd8p-CqD?cug@o>ljt}V4or!hCw*eGrVSL#~v9_1;b&T%ll2QhR7e=Z$o(gayaEr~uT_pjeGf1u&x`b+ zj|y$W$2Y?%D2469E2bfWhE5-`RA4NgYdLp;i$z59&7rlZFE_+p{EK-T&-T1iAABt< zBT}?D=G1>iu^0&mgqkjewPp%kSl+s9keZi6(vr;phUM0Oe>D+6DIsc$j zzKkzRxHbO3&pm#HzV@i8`;pPYCtGSOM^Osuny4`JIY7)1{UZNMh--&pb=}3<2IU-P zLdpSWl#kh>oe%+|=V#;ivSM#zHJ+$w)ksv&__vyzMA{b8o}bN>9yQNCHtJ({?JAwg zN2Y6eWMwopUxXo+^v(9ESi8UM(mw(Sh(!t=nu>y(I$oP7DyI&p3{v?F%soRXddaJYC?5jgG(!z|N zs-!9J3`XhEI5#&c<{TXZP}Wu!Z5*ZrN->N^hc4XAP1YGG!5%c|H`|S$wttA_+P)HT zk38;0cXouWoVF_(Ws8GP?B=VYqEz}jhK#NNGc!Eu(5NqTlkGMMcsLUH&axKI3>&|* z`%)xb2S)56N!$ps;RnECGuIdIEY4Dg&9ZffDI8^KEHN0HKsr6^=`IZ_7vUND;AM0w=zj6n*8Nnq ztQ(0Lk45{h`gZIzBpAH%#!upPHhe6ZtHqCwhMRacu1hHe(Ik9ZryFOxk?v+t2W6-P z{bq8z?{Fh}AVB{+g>J94i1(w6OIy|;4AuQKeFcAGZ^bWNY+Rk!#+Bu`<#@Z@rXvk(7vhq+@rXVtd?CwmRlnX<&dxuLZ-%!jWdhZzy) z?`BDxSOlu2BoX^p)GnuosxktHE~$TXs-S+8ICh&rR`T6wOtX1fn2;Cpnla&Kfx>M+ z?X-3~7V^7=y`YPDqqbJAG~44{Q-WUmXii2O*cP-yQEW@kH%9~ zJc}M<h?< zzzHn1JrSN72&yT8F~ZE*mWMK~skdWKW+VnTobOLau(AkVGFwYC76bCUW3*Q{q>Avj zhCMlC8TEdIq4>SW4alQ2S z%GPb0D$O@ggx5NaGuFeUMHGz!Qv7Sen)eq8>|K(5T}cJk6Vb7WAHQQ>+bW+3wR@=Z zVygK;>-@n_NgW|}SQ08IXM<#>hA(vA5$h0bk`oOh-PLt4cjFi~!(KaVs!-dy@mH3_ z!ux6asrF@{ty~63rlW!m@W%-l_w13^4T`{E;$z_)EJ{L*nrKAc4OulAgz_boG#f(8 z##1{pE#AWz`QcNCl@uPeVL#Zu#tuk{yS%>Vw=nW7{p@JAe^UBH_4N`F)6C+<3Sg9& zMifocgkVr`d0?x$bP0N|-;;H?Lc{sS4G=ny$^jAx|L9VTxicM(sgK7EaaX)=Jd^F&b#lBbaCUxOG{wS>#)VE_B;Wc#=Qu{vXY0D|T8_hflVCRBX5 z!qcae7qa68-12wiNYsQty2$1B?W8~ttd=h|332%hQG1^Ftzru$AQ9Z64g$Qp$#wzv|j+K*>b7%wEEGb;vo49?8|)+ zr0m)L8#Eo3AQEJ79o9bqGiC_1=D8=r4X36@Bdo3yu{G|Q{9DM!H-pqvfPs2`#T*!= zFkAgI0`SG{V1=Yo=&3iEUJII!=sHCoWj)2K_ui`3WA}mF(EkZ5r$D(d6cFdjtaxof zq<~Q1t=}w#fJGrH>m9m;Ho*=EBmT`e%Q763e{2J~H6cc&kgO>sj#?XGQF-fm{bJn( zQ4N1%%I$~)#lrtz$kKR`j#v1=92k@i=skyb@q6nW{eHgvtODfy_ z`wGoPx?RD!bCgF^S#9Lac2;L;}S@#M{V`>#>OK3tNYx5ne3foO%b%s9WM7 zpiAHcLa&H&4t8j}+=bJdq67U6(~B>53oV!JvA`f0CjGQ1YUNTmEoT%&B~rIAIc0?x z(|7J)6$qot~(?_AD{`d-dQ}8qTWe)HIw%k9L z*LJ2wWp0hzT6YKd0R1z_b)D{Um7+l)AY1x*VH`BWAG#fkM4dIV=3^@_7xMZq+M*Am!)n_v0=>oEPVAolE@hCg=LeMuQ7e}z^elc$?a+23omF76EDKrARks1>Qe=7=(*%2 z`kAwO9XOb!)SkN2%*1qFjXSpNF0WR>s#d+x0{pgdnMFMi(s6DTBnsDw3LzxvQYE2hs_f+C)g4s;vkSueZbi&$H=T%ylk{Xqm2FTj@b!D(+0;t zUTYM&HF}?l`*~p~3{#I>lnvF|jbzA%Mh=FyRCN|@G~{_XW{@4#km5Z}yT!&;0CNK3 zliF`_@IDYD!y}wP^V3zw0AzGtg6ql%-vl%wFj1r_ciff`93^bc*n0K;n~VZ zj#k59I=v3$y#Fk}d~W{syZvTqk4IPyk6;*8cqN4AQsN)sKw!l#G_-T5J7Ld%J( zV@Ey~Y^iBJymHoO+i=l(R>QM*m5)0JnonxYez-po`Lg;J$ER~c`6A45^~RV_b@Mq` z8Gz;(f^A6@l}}9VDZ=+&GAHFmn`RL5oFLRq$O@oVB5khb(27<&jBVgZDU)*KJ5t`t zB>B*ZtuGdE=zvHO6%YL{2v&(?=KlLAxe@r;mK%}ThLGpeT-S`()!Q|b{NvpR(9DeQ zo#%@NjX-O39;qn%*z~GzArW}myYp9*!RpM~5!ZF7X@h2^zz9tLhRp(|-YD)F&AGx$Q2__PdA)2GbSJ{KEeB~HgJu;dNC~5k zM$r?fkCu>Q>_kjoi$QO<&b?9oc9DZ{YYwhOch=0>iMj|4slFd88-~#%b0~BJxN9KKXZg`QgDP&(gQlV9{}M~IZx z#K7%ES`3*2>+taK(?SNO_U|s5#?e>A+IBPgmcQlEpcRW{v}i?Q9HN3ZVF#gp>h;>V0K2rz zif3HpFUjI$EVId%EM2-<*Ted0%@PNBE8j4g7oy zfDlB3>u~u2?!v#RMrPdfl}ntnjwjpDm*~eHeB^y00Nu1*Nl4`gB9uGT=i4Y`7mnx9 zPwphm(g!8;?ZzDvsG@Oj50W1Jz7T>Fq27i#>%Ud&?;AvHh5ea#^wEy*!m4-1lSmE) z$pF3S>^Tg)=|y5|n9OnVshpt2P&Eu~ro!u0Lw2Lw;S(I2D0!3lVzN-;E_;;4_Uz#Y zzVSD$3ABmjPU>M<<3fFQnua~^LsfBcZ&DW({65iceXl+381LP=t8NDfGS+Z>byw&? zoI;TMXbqPD^LkDYn1kz0s+`qM#wTge;|>>=WTk=TC!toMLY$oA;CIR?dK6dm$PrXS zevQXCQ-THr!q}40u(e`X)Ry zjAr=0ci`0Jr0%94sp>AuUU*8Yy!7S@T09w)Kz6r{ToqTy;3S%$bEq|#%>6yS-z1iM^ zG8Ub7^~j68KZ#4`f8RFRhmGlQbR8$OakCF_&lXu5(I`9&LS=+NL^S$pX_*C);{ZdH zMQ`-S*T@G(M}ILdY7&fgLUAp%=T_Oyg{!K1a<*Zyi9jAcbAd>3)D=y(13clz#okVd5}K)wj)-V_V*(`?xt{vb2d_ zfW>lewq3%XHgpUkpm&uv0Io z$dh+;qx-msXH>NsUWhXyP*2&mZfWd}zO`zwQqu56ZQ8&sf&hAgzkFA7gH?S^eIZcG zJSBUmt0Af8R44CXs&QKxDo`8_{QV2Fl-Y2=Y1CoAp;|Udu$)i}>=Z9wb>mVCw=U~| zk$O8aWI)A6Y{A;K*(b&MeX3qq`rpF=g!M5k$D6qmf!9K{pK{MsymGT)9KDzq1v_-* zMUxUPb3Xh4!>;VrWoWK}S|666kFwZ85FmD_&qo|x*af8_>UOpFb6qxNtvy`!IMGI> zvq-G2zUQ&~)9-OpH*Skc#iEU2fDC#Ci>1a@cbbHF`nO~ECXQ)%H}oIbi@G&Ckt9G( zU*ER-2l?fsr}^;??}-c%xOaIDCd%qkxt!#vxnDC5G5=Yy=k=Zb!Iga=<|67m3U%A? zDH^_85cshF@8u-Z{^8LT`7ny=gG`ib8_enccb2#N0x{9NG>+v!T$cmz zvzRD6iBKD~W*j=cG3B7VB%^ud?HqRk0MkaRdIE?FbBhuJZzu-bd+QP#>qzj(9ibKV0J z2mLO8M?RhYe9TuX+XG)8{cwpEU<|jGWIWg_mc-NLZKGgK^N>;aG`6f~w{J9Z;dyuq zWmJ<|>Y!%!ir+!(-d`*xKFeEyrvpOWWXc&HjAG zzK1q_Q--2_;q%jX18;vkaU27UuZ)mqCydqbesjipYpS-XUl$!gXdj0bKLHfJ@GpF) z!D4pU)HJB9-)+Dn^CGZ&3mtEGo~2u?ki_rx*9!7;u9Np1O3nfq)-N-a9FA& z2qYcpk}RAE86ZaGmK6Bs%%XzYu;(xy90P*Tr=y2HE%9hm_)K*NY=Rb)s$GZWd(sq5 z2e+y>x;9@{ME*iui^fk(C@fKmwz+v5spVI^^`7Eem6A)Az17lqC%pt_A- zuj%h$YGIg>IaAuqT*83h1vaiG7Gc%A?LzWo{^-5p#`W1!m+RNHqwlQ)*{!|^@E|wg zyNJTBPc~D}>%BO>V?@L^PC+PnDHqm?L%WYEON0S(b?3k4<|-Zg9fWy^r!mmkt@*2+ zM^MFOR<+v&jNt|6=!A@r+B)CPh1ss!U;`(?V%q`lVulry%KbADzk>TvAQrw)7$9KL zpplM8SISTBy1$&T=9h`+O(QF~td3)^VBk;#<8eiwm@&H8alr3~Min#H^=F4+gc0I6 z?3PEZKs z1K#e@hVf5>5_Evk`W{dwJ{TdrQC$IGX{9fFGNslZ-5D_w&MO!7!VXpm4IH0U_Yt!M z!Rvp9lo|)wflS{`7A9LhK8@s;3~r%5OSRcK!ZT|DZhl3M=@BCYfM0I5_sK-OqDG}~ zm7NB^q;CEamHegBvGkB>A!}6Q8Fi-rE1vkJyNMuNaLNcatAfHx)HW?>J`aLbrmA~N zWsL)|9x8ZMOtP9Trt|AoSLu1A{VdT`zkBJ-P?gYRm9v-#+UNaIfCDX&@`2A!PDn8P z_bfyR+sITB4R_+z2jBI*inlGzbon-ry-%-eb}|K7RhG>A=jEA{8<0((dArSh*~f2x z=;8W)I5}>6&4$OR8zJ-|h! zgah36YYOsJnLr}gO!{8W9u$kZ}O6tO^!iJ{2Udwhn&dd$2+zC+q zR*1q-99bX2Jol;~e?9R@J2Md|eXscIg#8cao6YyuXI@jISVx7uZHyH+l)8K~a_s6zRuW=f+)0-)APOFj?nHlxL);G&GQwy`18I(L==s zD#0UAmYaA97%yJs$JQ6Nbu@2Aj`{^ug4kHW-s872W^4QFg$<6AsJ1(6=LQk41IB#E zf*V3#Tr;GQ;+{1^}4ezFOTJ`AYIcr4jFoRvau)#Nwz=0`&?nt$uAh z;3BDV3)f33yfMgl+ZG$ABIKe(2FT8?g8` zHJ7o#u|lz>&Ux!!zvr~7weVT@bIQ(!e=QJ=w1mD?7Lr5qjL0xct8@N zl`Rfh6;i6uPn|jBw(ElN#sNVB3pO>XcXsAd-{bb0FuhaY7anNijs-%d$hTEN; z4DjDjDR|EKAc@j$8dol`@h0TkV0RDIGn`GxN_0PKXUX|*UV1Ycu*}4ssLoQB{K%lB zAj;xk{K2o8CpsbxxTv-$XpuLU}?w`lXlQD zHA231IPw{}=bUQ+-Pq4;d*yY4cL%NGlxRP|5L2!nK?go}%Hp_4v>!Tq!X5c~5f6C; zy64xaJQnMOZ@sq^^{LruCnDH36k=?wTSWC(p#GYY5Mq; z#=^(yd`rRA|APgX7jMNr#~0Ptx_vp|zhwF)n~?(|j@|!senxGGv@|8xl)Aa{`tLJ~ zoc|Xa`N!*m_l@sPQ`DolDOSmCre}4@?Egsa{s(*gaa3(|k}aXG^u}iV`cHQ!4WP@( zU;c^To8BqDTL96_@lWs}NQ6oK|CO4L+9AIrdCp~!EFHAx7Aj>N>{16dvq8sX4@lhp zW3FKu{WoW-ac!k5)BoWsSngF)DM<7I}S`ZQa-*>FCKbfExZeH zWsKNdMEpinI$s}LjFZE`4*yL`wW@YI7NY8lg>&ny^SfWlm&S1 z4pFTaIS58T^_~90Tq+b6IRe!NG@hUgy&Ij6sNC;n;2%$%Ghn` ze9`&((l$$=n8KNJ0 zWXsg#@!>DZ4{I+Max^8TyN}XbZV8>`{CB7jLk+)PFk%A)EpC8+3WZEG+Yn2A63nE( zFRqP?yxgVW__L;?TA?Bh2dBKPgp`x!JT3j5Eo2&9CRz%31D|dQ7+Z)M(h*@}wIIN{ zF0AoievLW8`TSoX3`BLh1qCx<6Q_&syB!B5Q_9zHn^hK*lM=q)-wTZQM@>qKBKN*y z)>?pb0D^D>-n~JqA%Er9NGEDEp`8^yZ0Np82>DdcaGr_K+g6Fiq-B#Y2N*s7+JU|{ z^lb^lF9n@1kH!GKIVgMiSLMUWVCwBtbOWRPeCu!YexzX*DXupXcxYERU-k+wn_8kU zhhWX@kq|jBG<_o2yb#IP%E)uy6s`Veebk+yf22|Y0jkp}X7065CL25L9eLT;KIMu1 zK0|cYr`6~kDn2?ySXP)LDM>L*AWzH)f>*Lh# zx-+ep;E@Sh2rgWanj}e;ip0>w&u!e44!OO`YSwzuArurwxjpQYTesDKP6q?guhGH3 z7?OYAc+DR8FH40|4`hV47PM!a(&`g8(;9nRHpjVrh|=|31-qprkdc0t6f7f(vw4Co z+m;~6<8yyErHB93SAIyJ*tI8_r&X!1^j}LvmeIE+Ai=2XuqEF%?QFeBo>tc$ZO0lA zOn~I>CCK;vm!U+dx1n7=V=+d~&-qjwC^i?St_N}PnN%kO`IyURxCBDQ>d8{;Z))t1 z$s9h2Gt$mI$9d7HZ)}*4@;^SSsZ3+iJaO%=+xfEjLL_Vi5&Bv znG{`iy%_jS-DzO6G~{D6q1udoKkaI%+;_*G15!gS+-nw0R_=xbHumG)&87sbdG)_r zAAtNAvoS*av8#0AA#6%4JhbirvkihS{%j+Kz|1Dg2_O_V|0;T|&OQnmk=krzAnqgm ztBXSC64RP9n;PiyZL@~BW@wpWznURj(vfFe_}NJT1UoqB)=tFYMjVy9AW~EvX}%G6 zrT7gxPA9(rGZ_!Vfy-;Ge6#=!heZwVbnn5)g#~fno zrc$i**+467?_zn&`vZ<4xpVM?A@Fl;wtEt^>EQb~C&WVC7L^0ze%LamC)qHo`N)#E zyCdG7Z}5Zh!*!nFxTGVDF&cPJeO_kRU!&g+4Ow}bfmqiJ!5|@-<+2)w-&Ww#?#$<@ z?cHvI{2E9ENq_*x-?A*=+x@u;)>`wUF+zlF!~V~k^Z9IO$uU4ik-K}rwA#|3Uq$6* zgM~8Y^0yAmf?J=-@=fL9TSnr@EDcPr^hm>p?;U~z^HmAaydN_J zAf{kz76ip2W|L{72N@a`YL#0wh+}u_ z5TnFL-zpSw5pUi=?WD4|A#Sfeco%`>-JRDcoju5zSXVW;|r>sje=#L2GTuhRvUoe)*)K)bN zI5*YNdFUC(Y9oj9S-SiB{D**X2fJ7Yi*bRg$gVq`{f!juoa^c3YnqgnRX1bfB3ZYf zu=tJI@eBck#!GSwx55bw%Cocg&2*t{6sbBk!S8P>_PKIo%E2&uk5nq(8!f@l{`l9r z*-7=@1s2o837RS@8)~+-q9-hoePo&hgFEF`BeWWe7D@wU{Hqm{YB-zs``+Niy269V zoitZ67T?%uVt*A)eyKX1lZm zh--K#-QUzLZHGYJCCwjCHT~`HG)=js8EyrVGETW)vryXSYjctr>3`?`R_G}+#9Qe4 zZD56Wt!^P7+#sa+m?$`Di(W?E6}WtL`r1WyOPhn*4c(Y;y|n)4qnuA>%A*`A$Ya4G z_>-zeZb;p!<=}!Djq$T<9ySTJ;LVR~LbBt#$4ge+-f-=7k@#9uS>Z0+1`9Zk?_}R; z=5V@G=t8Ak$Ufbn7gU(~-4|R#r8D2oUK@%^5jCCjz5bTwN-9&qo!EFsKj{(ta9Htx z`PnlJ*|Mwe0zHEg`aFny?v+ZpiCcYpeQ^xFDObUs*q<4DLw7XQJ42B5af*fA%;GV4 z5|GE<<$6Y&Thp7qYVO&%XL0?|)N+G*e)8WiNN=hr<@kB07;04HcSQnJ8)twKZ9jvEIqv_ASE-s(; zONY#hx_p>8IGb2uSa&Ni<9kYyZ*nT+xF*8UF(yy+tkW`$7OO8i(iki|NMuUI;6^m3 zDy={g3^?Ol>2k-ekv) z5_<4L-d-ZKHwH@QP6bD*>H(XAkUL!7dQj=mG5y`#JGaAdFW|XUrHm#xh6c{9n?;j z=*mpkOoK*Ohh}KFkeyNP1yVZOR-U34V27sISu9r}ie6X{Vf**Hg#`_g0Shyd|Mu1C z{((Jyd#5`j7@2*?!^HrQ9-GK{tA9+t}34OPAXqE)O2 zQF!FSDvRxP3(2aIEP?aJ^e7j15t}m@>rgy)11v^nhV#(6#L?=QSsUqviI@{u&r`+N zo~QtY5IxZ|pbZ|&d6!a6)(~1)E?p^Ord+yR4_Iw(SBJ|pi9CE~IPE}bJ$4k9c1m_AwSt1Wn zeaq*zcb)h3PU7Mzlz%_u&XF)A9S42+i}7Ovc?h5&sgX}4;eCV5;ekr#%O5xQPwL(b zDmWSjU>+CXv|Ou|BpIlt^%9Xid-nYCCHKprF=oE@G(F-{I5Ud?j0=zwjTYzsvg9wQ z$VV}d7x2m}EC3JDjcUFK3GT~iP6e*%icP?2_whR4%lDb4^FqkbnK-EF8vQ==iNC>- zj?>-swKMYMjl(_8fD& zk$Mw{MQd>XY|o^&$vLBVTWboo>_3vIdRe$kd$v*wbW9gOfaXm)KW_ZO9*-~aBjSDn zot2}q;3%OVzyIUT@BaWK7!&ps#Mj}V#v)2dQZU4!RT= zm^qa><^gWHk2ES#>Yr)X^v33T;jOHl2Sar`EZU8t?)QbBU>6lmEOX9Uca3!%++TOn z>O*6=Vh%Bv{#GG;bxyj?XomVWwdN=}P>(x+vi+hLYO zt0d_|;80qb>^V;Ov$@C($p?spT`w8!k5MuD_c0>q1U*KQYXR5tT>fj`Mrb{4{?1$= z*MRV#YI*wOIVqnB6B%mMH$8qvriw>G9HMsVU2-o>$a$jAWPNa-nCrtc!cwGKAx&sc zKWgH~lGF&_(k-=j@g2=OegE$GVAk!J!hU=CVCB{9Q?z3@e|+ZIxHNH*%>T{cvZH7I z`jJX;yg=)|@a`*~^v18eXoN<0>kNINl{A3W+J)oWGW}6)@(x*Fo3#4Gp{-~IB zu_Lsz;q>g~lDYokUZWy!w%)5RU$8U@+OS}E@ZCejKC{<4)q*e2dz z%fCLOFBE(XhpUCEalPRei2LORv+jGJ8y53c>#bnJ(@tdh)#)3O?-^z34)bh-tE$pG zPsWrdWJUOtU44(braNp%RpTN>-kdH)AH+m*&(GzJRW3Ug znONuO`*Ir=1>Oo9=FKjpl9TW9KA=lZqYp3^!uE^H;`AQueA)@=*jk$@%6K|a_ z7pbwZfNOlpTZTXIx52K$y*AFbp{*ZoV{H#Ae(0^lqk3yQ8<8W2icXfdQ(+6!cX*1IOn6I6nRtgMT?P2)eh8WyJhKAoSL`uannmdqE|IZ$z5$gPaNJ)67_y4x~*ey`l(>$^YHmf5fe!2vc~h(*vFFdlJ1gf6V0 z3>@es#qvH7x;Hz<$6_}eLx2o8Sca0k(3a&41fdxI<3y)JEI81c<=kn*Q{}qX!~P!} Cabjiw literal 0 HcmV?d00001