From cbd1904b42c21c57cab2620780725bfe5efb9a49 Mon Sep 17 00:00:00 2001 From: arendst Date: Fri, 10 Feb 2017 17:03:34 +0100 Subject: [PATCH] v3.9.13 3.9.13 20170210 * Add FlashChipSize to Status 4 * Removed redundant DHT2 option and code * Add Sonoff SV GPIO pin 05 configuration (#40) * Add configuration file backup and restore via web page * Fix latency due to light_sleep mode even if sleep was set to zero (#50) --- README.md | 2 +- api/arduino/sonoff.ino.bin | Bin 460400 -> 462176 bytes sonoff/_releasenotes.ino | 9 +- sonoff/sonoff.ino | 25 ++-- sonoff/sonoff_template.h | 76 +++++----- sonoff/support.ino | 3 +- sonoff/user_config.h | 1 - sonoff/webserver.ino | 288 +++++++++++++++++++++---------------- sonoff/xsns_dht2.ino | 93 ------------ 9 files changed, 231 insertions(+), 266 deletions(-) delete mode 100644 sonoff/xsns_dht2.ino diff --git a/README.md b/README.md index 2627f6459..ed0a3d07e 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ ## Sonoff-Tasmota Provide ESP8266 based Sonoff by [iTead Studio](https://www.itead.cc/) and ElectroDragon IoT Relay with Serial, Web and MQTT control allowing 'Over the Air' or OTA firmware updates using Arduino IDE. -Current version is **3.9.12** - See ```sonoff/_releasenotes.ino``` for change information. +Current version is **3.9.13** - See ```sonoff/_releasenotes.ino``` for change information. - This version provides all (Sonoff) modules in one file and starts up with Sonoff Basic. - Once uploaded select module using the configuration webpage or the commands ```Modules``` and ```Module```. diff --git a/api/arduino/sonoff.ino.bin b/api/arduino/sonoff.ino.bin index 21faa3ebba145e7e294558e7ebc5bfc46bc84ab4..26e60141f323104f87502c39969a9b19a9c68605 100644 GIT binary patch delta 104414 zcmZ_14O|pe7e78TFeo}K?6SZjs5>JFDyz(*iN?zA>L@0@fSNCfxnyLeB}PwH*5b>U zmCuthW?5$VQd!xPFV)jiRxCQ^YXMnlp#hqrsR5!QFFXJ5odxUp{eFKwpR?!Az2}^J z?w$L3?zuz5+W49`;&*cqOxg5(h6sVCuj~_zkJBO47Jp{&7Uf;j#F)o=A1|>P#7kNT zOX07=W-ZIGstfn^i2R9;vczba5kb_vSm4F7Khun`dEX85gTdhgQ2Vj1M>VYbVCsf_|9?cevnpbmQae_1Va9bhdW z!+-+2!>MH8>~30SI*NP%@t*^}1bhPc0JP*%X0o4eX1D^-J1bhWJF+$7C0wlla&-6Zwz)%EU0(Js_2%HUk9Ju}+ zf96%-X?QjmQS`O`%n`tI@H`uM0dO&JQz}L63ZtlcghNdzHsS{Y7XwcKUIV-k*yO7? zy}ojc7P{xi)=SH87YZN0u|$U7;Vq08ML%;d$-v|RUx zx$a&3J}u)Q3*LPYg#5qKa?dcrd-n;`S#h_(i zlU`qA6s9lZwsE1t+=;^6Nn)wSZ_!prZ6#8B$=nI$lc$nW$on*Lv&O$cGTf`ZPIJM_ zH)-NiTH(L6lDXEruoK}n!=m7AJEq<9>cib1&iY_e{wyywXv~B)1*@)dh@bOTaDJ)f z9{GbcB{LDvg*~*P(e;wXz3YDPwEMj+?gxKyy`XUh_k+L2pLgd)1ot8!gcx$dgm(N(!)t8&Lz<=#`} z-dg3BwpF>eSGnJ*a=%xVJDo4o>K?4Fd+-dY)Te3nT}^yU;}>e~Ql3S4k;XqtYVaL` z#f78>cW6uLnY>bLzpM8g%|2&>J^L;D98`v*TT}MdrtED^+1s14cd&0OKiK)u*Ejkz zxtod3WlD!V&da{6MdyY%!X_GQoQisC(rg@C?eAbxrrN@!7qz6fLODjrrt|?s{6pgy z=@+E#?`sQ}e(89Qv096E<+?7QS>$mk_by&sRF-0uxA)@DY3kdSJjMaB6FGTXuaF>$ zLQ;jpS~JNiDO&f!!=6()^~!5$caNXr7k~99r-X{bOPE6sQsSRlQW_^z2XR66+zE$h z3|!(BMD-w1X?FMPV`)mPM??f7?9A&0{lYq z_vN@MFQh)-F)~G9gd|6gqoO^CLFVjAA~xfE=gV-JeAcjr&6vT)U^qXB;TdH;ZM0St z@$)+_(V^lIUZ@Hdn4)FR*VIK6OcH%JG<#_&8qT6#4g=n<1RO>hz^fJ;XD{6>C0fFSeJG=yLC+5C}9khTGO0N z(+#&Val{EpqpEAqqs2N5@(RCrPCLQS=g0)VnW-6NC3E3&KS@-J{U;b`P1g~&&x9f6 z$7vgva)7mI_pYGIx}{j{rO!zzO1BX_BP~+~j_7ANs%PMKaJDddPWx;8C_1tqMR{(t zbCDe5-to~RQ+rNFi%6ZmA}(#VFiyFK$(5pJD(gqYcxR&xCBJDUs|dbB3l;6957^xl z-iA~??6{j_P%uo?wEDxaXhy@-EnOTIy~MB94(nXMjEUAVXX)**=7`7Fu7wt&Zbujk z>>)PV!AZ$RGGi8^UJiTo_jw;^=K%6_o(3gpWOxtxaD*ca?@cr+&XEb;1z290d}T*! zPcXOlbOhPC;7h(^{MBG?M`+{eO7_v%%3Ino-Vr7*kF|3wx5GxO563#_V?67Pwb86A z))97$SG`CKahLXp;H~OIf#l~%awd`mAE!Qt^lpTiEznb?XOSv7Vvl)wNBBeo$EyF1 zJ;qBJvE3UF*Pg1Z_qFUX`J8&qW&D=t{2b*T3LF90jJdSoY@*ZEs$n`kvi0NKo3CB7HK_blgooLXPM zyrt0OONE-Byynkbt9*2K-|=lNXh;||llhDT^kX;hka56TWu6=SUe_?hYTvq! zE>WIz^o@Io#7<-oVKa=U>DA=1DU9VJbBdLZ9f!>FNzG340v*)zjJ03cvjX=7JyCga zRFYu|+ENx^4B*OHWgjRI>MvSR3b{RW7#s9vgRfYoKB>Kvjx2wi{3en1<&y zoAn+b-bN2N!Vd@%ThLME%yHr^jWe;pH#JU>M~#z)kHeH>AIGMRKN3PNC>J0 zD_d(3kLhG;qXnx;L^s|clWu}cJxg*pYY`8CtjIhHj=}0wPUpx(QIxYS(K+WOf98C^LO>C~44KP-(KbxJ-Ha!)++$LT zT_N7yvEmI)@I^@HEtN5T!I$g^llDfqeaUuT1ZraW*jxhG4 z2qfBlL)Cc89ftdKhVOKS6Be;XXE@u*u(yjLwu@mjr_LlC>QSBJs0D9?Wbtc&L*CQL zAxB%F5ORS|({+Y#b%t*(`~fA)EqFhP6@B1LW`81_pp}0FN3z>D6zy7_0+yj_Ig*m) zatp&pmh+}69{bTLVGZYxB|2B3YDxh+0T}#5V><>{#?uoe=OfzL4`W<6QS;mrg3qFU z6e~6(Cr+wEE3_lxJG4zNnqDhumHRE?H8cUK&B7;Wt}Eyl$8zwJ+399bd|~O1;g^hS z`#Uqb)plg-3Fa7&yyT-6&Wx!&NWKqkTt26v+hW*fk3jrH4l!fUlI71Vyg_sQ)FoG* z47t*$7G=TcBqkwNSwH%oUOd_2onWHt(CFyITX@LWew7)R!alFu7(Jdou4Ins?d4GF zX3~{MwxU7Ug~~vih)!dKsvv>svw55AmX`BdD~45CDv8Ca#DU(#J{yT8!?MUg4eHg0 z26qsJafV?ddovG-EqVGT0qDl!bWSMC2wEN;iz@8`6%ESigS_EWIz6wfI>sh@WkNbc*>ZHF>SKMB^WaAtv)mB=be=>DZsm*}=KF|(D==?hg|HpT7%lp4` zE4v+CM{V3s3EPsaw&GM_U3o48F<#f3TDlQhhvoM_x!R-)dyNR&OoZKQ3hwDhO>Mq8 zb;RFP`RMlA@{PNQq=7bFP)Po^q(>H|7OcbOD&3eL9bz+7O^LEz7i)+> zE@*g3ViujVN*iwO$ro#7Ic3e?+L`j{Ry$9-p3`!ptTltJ@}sf#QX2D4P+)-SnwBYQ zK3>@1JX?sxu!Ck-Sh_c2POJ^AX_o#i zukVnTG&{z7Co?ur&y4l{ADK=2D>L5L8rsOt2q>5`8Vb$|DERFEWJ6I?LUfY@+72-| z1QtqkejBRQ!SMID(ep^KHuLrwW_I1#Ai=PezE4jKqh}Lrbz23)HY^UNcg9X5xPuW4 zrM^oVJ*6{tGQspD@{4s(7HtcrCj=g7G>a@{XVy?}-0jdty~FNcn>Fz}j7t{Q6eI5G zKus;Oh>cpZhi)eCn@%OH*3@Qh2L=q;a?C~gvvd*Dku(bf7dtC3vT z>KEWDB3$b8om}cUGKt*_F0VR0FyE>L7V(spyqrF*vqk-lO@6j>?v`uF9GMF?DHj#m z_13V4!cZ^;FcZ-5Pb?GK6P*hXUI;jiF{%i78Q==Wta%tuFkp$}TkAX#*8A(MC~;uu zYVw3vd5qFri_O3Vab_|DU(xGhv4x9oe7J4(6uce|ZVyI)tOa(mMvfE)4wwL~rHZYCf+cGfi zSQ^SV?GDHH;80zp;4X`Jgbe7Y0j&Euxd0>TF&CuDCrEN8sh3O(zpF*xhjzoR4QXtR z<_(FX#Ni#N@yV9T%-h(Igh`X`$Uj0f${+&nwups9>1@P+B)f}5{+6gPf{=``h>sAG zdvp@^9?XYWouM;mJR_AHr6|^mBtYxCX zL6aCCIN6~VaRZ@}msohZ!*!%1naTB8$l~UBB%)cnMXAV-X2+u6j8Q(FV5RevpC*hn z{LxI>q_xPw4WQ|{N}uc)dZuz$cA{lgD-zI`?ro)Kklwv>M(2mqA2Aa-TX%aYwGBg3yoEkM=o|)mlyV~5GGFdx*(si2Y(40^ z2;1wtFp;u_(rM&DAge`sZzsKtMA7vdc8Kgo*-#g&0l0O-j+V@I9rB zpNQSEvSecNjGMPk8$rbdLm&1?dsXRkJijKH5nK8S26Iloj+LrEy{${f!bfDR$Hkw{-d7E9>N&NBB59y|r6GNB!M&O~XfHVErKyF^9OcagM= zC9s0fX@8NipR^05E_&r1O=&tsS0k5xUNKHC@;-5k3(9g2H#2q<%P+d+t_reG%Mc&A zl^$fzuMTUl?*BS_4J;!YhylAhg}-OU1h&qsbxILG?^bAIGIP4}lJEAOhv}z{o9o8A zW{D$s`e|Y@5F0dlDG99Mvs?qZ&lItf|g{c&uM0n4EcUK7?36@`- z3A>#_L#bfAN1z2l-NDd<^!j;MqX&=x*!kQBFQ#|l0V?|b;ON1@(H%h$vA?9^Oli%K z71;72K${46%^9PE!PcD)Cr|d$`APd|TM!+sOEll6qe$Qo1(Bl~?0iJ`#sNWxYdO>Z zS{T+}(X`!or#k^PPewSG0u0OW@VU+EtXUf2utPqyO7PsTq zZlLJ7*P*Wvmdy22pGRD>_=CnJ&_9vBAdCqc!1a@!L-YXgdsu`Sx`M>>U*6;*VMXF6 zXgSA-=zrf_#FgXuvzr*$0s+oU@BvL~P~OT-^EQ7ClL{uPYT$#w2Z1YqcL7%e7muQ- z4G7mGybQP*SX+i>hj2T>(}06<6ygNtfKz}iz-HiN;Fhlvo$0_ez+-?90#5_p2|RzT zzh~w;1QsKr=qqLR)WrB%?I_2U5-juXZC|^C&uuU3T;w_UN0c|G#?PFf6I6j9ix7;t zLokY;bJK+lRTYyPHEIQO1C}jA;lW#;J=)kSl=vlCmuB1%J_5XuENl&|AT#-iO8B(+ z_`!FC5BgsMC!eW|n`ZU))d`j$_jr=~7OhJ?7oU0)_N^)gIlJD#Qa(4zb%>+H*Gax6 zovR64hW6-BD1QANHaFkzrfXe5X?K^>FWvGyt*zdRf#M~?%@FSP+@2YpH5M(^*_;!7 zbKG6#1vF=#mq0cHYnSllihr75Y$QvV_7y!dT>sFp#LZz9ar*GM-}G2_&lGXKhP_J8 z^&3fPhAevR27arua(c4&JCd%~_^~z=>D#uhB8}#MLnU?=X_{W7(IG1|sFg$1D%0hf zP^hokHk@D+ctkJZ`7gxDzjiK7Ys?g0OE2>6Hyc)wFX zd|jsii7)$0K)NnK3hAv27)At?-ckH5qWGpeijU>@DBgSH`<3W92KE0R^%a?^9!zuJn@^d!nGz9VB%+vWuR z;eawd_!n+)Y30+$lTPXVO9-V48DDturso&GGIvI(_kO}pb~txI-TT^xn|t6j#4pkJ zH}~+1Z@8NMddt42@bpd32|t<&IYSw2Eq-XFG!M&`|L2Z}Lff-QwvQgl zF(KnAm;zGl9G4Wygt*aQxQ!{@Lc*wllX8P8w_4$J7LEI??_$Y{K<>e}r%WmO?7<%W zALz?5{nL7_9-(Nnqk_sqZYeSM4Y5dUbQaUWmqJM| zS$aCMV9Z2gWrtXjIcyU{?8ucO1o9fCV$Kk6>P=GV2Z{TF>y(yrN~80yk{FS^24BzS zGfa7P5IulU3E4X^$U4I41oE`Nb%rdLtR#%MI(^aHH$Yd4e%z}wp;}L{1QNEwDrN3W z_=zMiG)$3s_Nd>l!wMGI%*yZj#Z9f)k{ndN&EpNX$jWj6iYfRa*=prxUjH7uP)R!g z8xAV{=MJ7J#adjA+RXJhSF;{2verBqkL^3#9D|cE%;cY54~SLY@beG1y6UwmhAL<1 zI)<^AnvqLm40Xm>eB5|+QTlQhx=?sTj2CcjDEYjE;c07S;;iQ_7?FC*HS~D0`K`iL1cv97qn+=od&7R+a{OH3`uc zQq}SbOQ4ThYl@KaJW0WUhVZ>cYouBN>#wJE22N-2Du3LcKzo#kdHJ5IKS7d92j$aL zmIsUcnrOilB5?1DpJ)SzxEU%r$Pql=Lmvr{1?ST=A(PI6tQ#Twpo`2o)av$x&|ee6 zEKe@Y=EI97Nc~m$VV;dqFDs14h3(83PclwU7J01nPs+bMu}s?^%KM%^URM*i#6vA7 zXd!3^-9{Gu*tNAZ)3-_RD#HaI>V-zb(c|Byuj{D>x{2ULjKDDuzd~Q@jJ!&49wMn( zUiwmJWIe(3Me+*+$bwhU)XoPU=-eUQrX*S?&^3W)ChP6HkH?L1I-7qUx<2`Sw8a^u zJl3)z&JYqsB~RX!D{gKPf_B2QVqm{=hDyIbb#QT+V+Eb9w?qy{E$j0Kb!Weisi|oe z*C+?`CwSGWnA(3f=?0t~^!p?ulenUnqw?hc#w_K?@(yGd{$FI$mob71g?mzPG0CnhkKm#m z!O2_}&3>kH#tjDN&;Kt@`9H{Du)H@$6q|$~hC4tXy#_sI7NW&F*bIS=BWhZ&t(XY~ zgzx;b3TdCxFyEZS?v2UvSksG;sog~*-zFE8%sGOyXmwW%A?`UCw0j9HBmG+`ey~@V zx>HZE8IZ6Y2~o)(#6SYr)1h-fdwZ7@_8px#j!4;{OHtn?QWB)CFR1Z1M8txW5$sbjao1*g&_sp!$w{LQCWlLRYlnB5{FSF-c8OOPaEZk7+8CIH`=#S0@Dp! zT_HPyiySPO+N!owr&Dks%aUE?#IOMwuyiz&HoIq^cf{ zkMWy{%L{wW>tafd>X-Kb`}hf#k88&iD7Xg@$#R9RC~i!LhX`SfNklD(x2f8-ll zR&G5qY(OgBXMaEfKmb?((Eu~R3g`of2lU!E{n3YLIzstsVLW|I`DLLvlDUMk;nZwk z3ijMWd3S39Pd`B7T+=S)%(_I+A>qII!cg_t9aAU$+7(4wv@2(bPTKcU&QBVh6d*O} z?v@la1R3(W{T<#844fP0B`K_QU4tJFA9+bMUFtMQ=>~dqq#`aMRFsvmkMWUq4Hlm& z4~@arUb=>D*D60zo_TEjK=mDX1#+gp95ulU_rV~XCZ9H5>LiyMv`SeS_V~ZN()*e) z(V`2fm0?fK3)92r)b|h{uZPdG?`c=bpl&byU3wSGlc8nTj5V;?l9&s1dEx9kf2Hq$ z&4d42`o+4u2zEPU2|9TbH;q*=rGm5BUHTu%T5?C*dOA=m&=&>8YvhLF{6WcIJiz!V_-JhE2TJjn-WyXraSNv1% z;}Ld_Tj89*D?JKhxjyxH$-1Kh9j6Q_OcAG(2-n#9oNqOH5()pk1)vc8B0t^`77q5( zR`rS|{;8}jOyTSNPN5jh$X;5EQGTRgP3Gwlx}*X1IUj1YT{&Ht=nW<>x7@>=HiCc7 z%HgJHd+EI4rieLHeU|#lCT)0$iTyx>Er`7V-<>l-2;mQhDPio=m|Z3ki0;FdB3ojD$uu@Zm6AtC~q5!qsO@Ncpi zr0S>-v4CbPqi|wkP%EOuvxsGXjpEN};u($pj+mC#EPs9d6@fE5LT%mifPx5uXEt{Bsm%Ch5deNIHI-?5zyaPk{`MMd1Jkk3U9vajInqn4AMATNx;I zTH1A-d^Ct1*c8b_$QT!E#(JD%W6c$*Ma5}GbOvibD;-U$+VyKo z&Yv0`PQr91SzmS+VZivSvr~5?k6j1g2Xr7&a*DlCox}wpwD1Iji9v>wbqn#f*tJ5v zrNNPeWTYOABCba`Z1|AW4JUsUg~hZt3jGOM98oI%5uMw!F&oauWCW@6Q0zcxX)kSO zy=aw3!0>!Der)FKAZ{o)5|Ao!=BrHcH6!ACnlYDIuUW|feh+g^8TKJa@28|cb(i;2 zLzmb~w9K0^zK}}z2N9QuN)W%eaPQvGct-8p8jvl;K{ngNd^PM{yA_%sp%+6u{&BkY1HLfm)(#|w`siA!zX-3^yq*+FF4&xIDA z&bckJkto4AD7XLxU}H!DiZ9$-9-1LY#?At$#5X{0i|hz1AO(<`BfAP9UyuA-0o0~Q zEG$s~si$9j{KBo08N`a~(p5i6HrK9dudaIG1@bW3PgE}=VLFp2YqeWRUBKz#g~ z?o<}K=LF*=2d3d^cxn;YKZ?TgVn-&M4LdrQA=*) zngU+nX3}RkdA;87*!593$V08X8HJtHn|~vJ<+k`6A>R}r|5p@xtQXI(M-gYLQ|k|J ztzRDS$f(B3ZTDGdjFsCdgnt6e!E?!0=Q?AV>xV1lo=HA5{fDo*%_plo6G>xaJd;`8 zu({6Fq~$bex?|4P6e%4q5ognr+MwSs1KEM%AkuYJ6Gl@wkg#u4COrcuk73bD-ZL@1 zvysI~WYwLVdxpaE3sCVUIpZuX+^ejACb_pfB$~%wlA$iz4g82d#jBdzmw;1!X^WYE zTlwi3VYWIk>KIQvQRYPH=a$kxqb6eIZ==Wir0l3HANppn{9=@Yv4yKM&_$&Ypl3%! zk>k7cC`^ahQ{w~-7T9DZ?PKA@i2(n>pK3ywlKbr7KJ7PP%K}sboN!_-**XO^Qsv3P zZk1o8Yf$r}m0gLYGZuDsCvVm&M1ak#$wD55jz_o@VKeZl zW*F`O)b1fp9F=@S?H=qb#&Z#1C}_?@!xX&JlC6uOU7crU?d3lh&wb^d*;SrdO`aLT zSvdUWM%Q(#Jg@m)xB~abMOHdbuuK&2Mi!swIa<@8$SMuDA|sIdd93 z-)e;iHJBE$Uxc&NjVN4w;7o2<5#dyKR(bUKUc;)d2`AFk8V-^6t?46&3MW$7DQ4Ga zn&$`q5`Ho`^KhIVAvHw72#L!C1N+HXlz;L3Kt{cyTzGzL%p9E8rvuD@lC6~frbhWz zDx1ja zgd+|r-xa5LJIJ2oN*yf4Ju_e}bC+t3Ee*qm8vpXQS?eype=_^D-v%Qe3}v}}Cm&i( z!KaWo7+oXW_qrK3Pj5cYGk*|+lWFoedt??}Fh3;On9fUkJCcpMJ&GbOgyD3po*``h z1@pOdew4JkgEuwlM^5O1INPq6Xl0Lfggj1R0QpAGh2?z{x7_5+?$Oi|W;@y7yS8g^78kdXyg$(?OF+3t8Mwk> z*rw}(V-a%Hu|;`uMgN|!lBnt`SkOz9cUK7Jmvk1lUO%p9^)r!GO7)5%W1c1n#M+*b zMK?a#Fx;F7y*MQ)t#?^jQTgQe3gQ{|#ddy2BMj@rbl>9^j+yQGlq+A$4S$bRru42d zc_km33ZEjZ-aY?No?bb#AG;-r@9_r)($#2~43FMKyU1x=zMX&XQj>2K4ES}vp>#Ph=7=Mk zXdemC(?})d`*JxmH%$GiMc`xU$$_XW5+(0PR1AF&iCPqnm_+$Y#8~LDdW^wcN^`@c zFIw__)?DLV&>O{pu{PfmuP%rZjKlJS`S`+SMSP)Ovie{Yq>Gj&dM;^+^k5R#v{k_Eys`xV2Q=p1!sl!KcXhAqT-4c?LD9prKHjHtj~D6j`Tf2T6_n(U66WIWxZ z>7**%(&u-o@;F}dQ02)rX^cEY`Cv^i?{Q2l`vJQEff=^klZ#1~@k}Mt+P**5uGObC zeaFVdW6gvimrQEC1ZhH)=d(*>qHEA{s@ey_L!P}Sip+G+T>eZ5&fl8StAI~#=y@DN z?(&*;igQ}a_7t9Jcm1yA{QFW_SuiF-t3DITW1}FZmw;hc9<1p>2Q4?Wy4vfN2VP7Z zREL@E7eFeSx&c#W&i8AS!jLHR+!zt`nO0i!$dWk=~>H>!qX#Vq>$XbaqIIXFBQd7}U)XN&#wi1Ff zTHuC(((;l(&sXAJ7W&9B8cvW2N7x+>_PnP1K#7sceJ}G&S-bN5%fq~tm&!fS4#NpX z@Fg&wm?}?HlP6Mgnk%s$#U4n_H0vI9ADJh@evWy!0w)Ws4L{ggkHX>|F8rI!9SjG2xSAJ;+BIIb0 zNYUnii<&`S<-tX*mzUHDJI&0$a3z@;8;QGYUc3}3QGX@ua%?Ff-ej)yUWp!T<5r<9 zG-O)YPtD>#K&A@%+mY6pu|npg&yf!sVa8F}&=xf3wfp&}FQa{YYwzrNaG^tHvfW&} zfCL-{X@=P=K79vmFEgSDH94<;n28%cU7 zDAn#}aXJL4v1SoI0<;usCPgRNZ6L`ZAe2MQ$zk#XQ5{Tw6SKOSN)O|L1uuN;hJ=eD zxGKR$n?>Ogsw%2e2@AWPlqd+i*!GG}qF^Ly6<(QApk}b?-FU5s_{}xsXfmVk6Hh)b zsSSFBPu3#SeYI)Y#+6u$;sj|I^m7>0aL5$*T{{#*+N|jK7`(Cp)lIzpmg%f^52v<) zcjHtrI>ObRIwSV?VBB%-P$&f-daQC#F-qT8`g&0TD5w6WSAj&n8HozL8OgtJv9qo1 zV^*hAB1ftvB%r?fgqaeI)*2Dy*CRJh;$|*?bQ1PKDD5-mWHgo*^4{5|$Qp9OCfBr! z9k}6;z^0l-H~^qijWmnb{m6zki{7h#)C+az#Vvyl(lzM7UW*jJzXCBD9`qL%b?3!B zOBm=iYiXcTMJxqGi zOJ40oh+;2Bia!zU)I_{!*TySwHp<157vq8DkcSd0iFn*OAp^<-fdNH57rAjr6k-hA zDrq%oy4^aPu6pTzn(mlur2J86is)jf7~XxY?zooAP%iJtYhwB}44YG??3pqpc*@X~ z7zWseu2M*kl6P_jic4oA#k;_b%Go`Nc)ngHp0DPMfl)=ha))C9sli{s!Tu5{4!TCf z{Xq)Ov07{AsKOSI3Oq$B(ED>FZ|Hi}#Pu~nUfQ-Ap0At!&@0Bb^&*B0PQ7qPem>FY zB$0nIQvBg6Dxduwk}ztW@1kMn5gn>PqgF($a{1)j-y8`>w){S{I`w;HD$;XKd>A2Fc-s+uFmgqbR z>qiFg5#R*i!@wNyx4_NcBsvcPR|BiS2Z74~pA(Gd&A=M~YDBFcgpi zhyZj41l9;*)+Hm5!&+Uh5gA0nTaW-{S6~|&?<$)?BOfidlTHb65SeUx*(ay~L1fd_nnk!_Y|eB{J08!rj<>7x_7pBb-$Xug25; zltHh?(ecW-SJS+QZ@Wfl@(QyEe=R~NEhL1DnyG)M!!=aP@!gh-&7vJvW0L%cKR14S z^p8CnFa7T3-F4wq`y~F{?{{^U<-Bg<7e2%asuSog6U;s*^SGl z!}5I*>bJM5&M+&&ZWIo==pmzQgv$`9COB8APnzN2h1Sa)_$f{NWU|krs6Gk*!rjKpiOx>|y8$Jo6}mko)ml@;k5S&(I5bOLWM0B2^Y>ox zxGvbcQ8oDrA9C@tez+jvx~S#6cDpe10Xm34s^ zFVx_2`IAcYYu3B&yB)os%9(YW|6a2n_owErgjEFv0K5DkM(PMUs}2Q)OETF_PvoRB zfAwDeDP`enmLS&YS4Mpq%~7}+1ItfM9d;SY`>$DJ_1M57=O`arnp~;%!iYvE;sktWW6&F9h1-pVKa+XwF zHn$8znLNQPlm?L%zQtepf#QE%;N|bkyww(lBaXG?oI_PjLTL{*SaEIY z8y$g+IY2O=y*AO=3}~oT{;?^6WnJdV%gWoEEd8ZS^W{aZKeYT1itH$g^XRy1SpF7# z{R8&NoiVIKIkPFDmpl^Dzrd2NlM&5Em^lIajSwa7jRDN@T4n4T$;s;6Tc>!}b&WJe zt9m=~1WYW@5VryJ56j%!1kZKmqG^J%@r^;=hzsfnQy$~`ja;;VSez}OtPt7SK@Pgs zW|LjO4P0Lvgc>a82UhU|>iFa)K53n?xR|1LqC_R7>rl1g&WntvUmp1s1I)I^bJ=f) z9O{Ps^DUw*9Kj%7O$x|Xn>+Z|E^_^_2@x2+ANT{!cLCZ#5$;!~pcM}VtojWnRlh0u zZ>D%%M0+DBaLYAO=--Q$$l~vHsXAGky$v`8L86 zvE#$qc|$}lpGe+Xt|wXDgok9;S=c#xJ?cb8eFuN#e6LJ$m#*jS zP{Jl}j1aSxUYqTi)i6OH2kZxsGdw30PhAwz*~rkceCg-WxP;JsU2r!`U(*sF2m6Hq%YlCu-FPjv*y`blxE=!~6YWT{9>C&fl~w&aW- zI|`vb^#weNiSK>~S>x@>AGO*S&k12%(^*=W zv_%LD!|iBc@&|nUd3@aCR0|yC`3MAA1W#yu`1x$J^m7XwLiujz@ns!3{ihb(cH*Nz zqW;(d$56gEp+@kK#zzwwCtJwJc65RtTHqea#}I-alyz^%dq)dgu^_ea|J8=?9WM0t ziJxouDh}U%4(&JBLrLGaz|DJRZuR?D0MAb3;XiJcf)ws>MDjN?cDK z#}30|tX;Zp=X%*EnZ>oro2C8fRZ4m35aDTPvk;S!bQ7P^;lG6b(B;b(gv25ZnyFtX zkz1#F=Ynjo-S(0DY>@r2YWo=`KXOj~v<%lQE$NeJd(anlsa>1_njZY>bK<@Dppd+` zg%o@m;;fj6g|J&<)0$um3OxwAWlXOF7@LUX>O-Mq>2yy>zfN0C@~V?sJYzZ zWqeOuB)$k7wb{-;a1r0Js)hXv9~Qt75hvh_M}N64l;MhbI>xyyz)XPHuD33Gpmj-K zYrd%$x!`o%WR@DkaOoT?^HV152WVBoStgd?s_EU{A!LEWKHobHuExfG_qQzV|-HE^?o zP3}`oY$Nl8dc(xqF1mieo$5SHS%;+=5W;?Cg4MGp`FIPp2FyD(<=VDBUTHVEmQ6Of zjV7FegIhjo5=WdvhDS|-{k%nz$X4P%CTQ{>6OQYE4?`n)bZZyEXhQHQA^6mUtBAmd zh{~fn_eB=TMF{qRfZb=}sf!rd0~hMNxJjOEK=$e$Q}@O$gYiu0cd7$J3@Kb0hD62_ z4rd;e4wUi*lX#pc%9feL)xVRC)yqA|abbegX6#aEB*_onAGEZ~gnRVBUlD~e?zWRdei%yN8&}dzuoqtm(88b)&PFM6c#Nc}>fhM%JPCngJY}GhByBVuM zG@d~HO7*1Gw0u4!e6>D&076LE3E1JAPIk6)yy4Ewy@x5r0Fm}J9*}_)eMaipMh0^2f+xY!j-qI>7tvKwI@LOkvaW72W z90}`)LEaoWfL7PHrqk-12uUO)kq|_t)AAb#u_VNj5Im2Nx(OlmUkItMlT?J}(<}+f zUPP`{aI2KFOK{pVQt*Pfe1@{YjYFhY6Ynp$htLO!8_w||-3Oc zNjTxx9Qryvn1tzek}52ugcM4Zl!kZWnYCq#;a%&Lr$_=hPG3Z;hii6I+bn!?kQ zk*FwKiKOM~j{o_75k*m}P+{``(*UCN+?~^W)aUc>#(34mk;ysqoG#HHdf2j?0Y8wV zCUR1*er%YL#-lxBF0|^6CBKkWM!uvaSBD@>0 zA8-(G5>O4O0h|Y10eBnm(*o%J3KGNmJ2_x8ARe%zM}KFj1)aYh{bM)j{E@gRj4xo+ zc_MIYSX!v*_kI&pH2zxBRixD>e7OSF0vSq^JGu!HjSe6^L3-p9Ch-?y_>=dWs!Azb zqd-{oeu<>UQ(En5&9|TyFR`FEb7&}4U}Hiaq~zr$IQpPJE$e6bZF!vuA2Oja7TLKiIqRD{80^ez;1!fsmMSUm{3avGQzqC#-9B9JO<=E^5W_wQ zq3V3(9CuBcZz`DkejK^B+TX#9J*XYZr{p3NW=Z5*)TOKZCmE<^4=E4%L3x&#FhfF2 zVHb^bm5|&|%5y)|1Lb0qSVBl1?7HU`hlr~5vplB zvnyv#GYaEcqFK|tq(F{fQl3Y!m+mai1yUSoCVn|}h6z;&7g=crO7u?1F$TR zQ$Qn6(F-zz45^;Zf=Ey41(CLN7371QL3%-)D9D|1NOSL$Lp@E(p-zBMc>;uDM>PS3 z*ctK$xj!OGXcOK9c7sVAqfckEO`@k3>dd~Q@{dI2ETYahlbAtT$V`(x{^T*9+adq; zf_@$o&a#0{Y-GbnaB(gIs^76L=bM7VyHi{F&LnQvfySr_+Gv0OkW0gJ%u^pD{4` z){%Z2SMKRm<%zBHSeiUBQYt>J2MdE!MN4WVR?&M*_-YVtPpRYK$&gHp(N0!1c@ZNG zhq~-=(yb9G6`P1#5G{=}@z2)yF4Wdl1y}y8*$uf9xzvezJ4!}P+>zl!nUdKwQewNQ z5es3T6ZV>Aq*p`gXcJb$Adua6IMlCnj#O~SL(sKxF^ZO*Ch=Mg5#+o>Cw)oiWEZj?1r8ATqIF_r6U-f0~Ijh z4zKj7moQ67U}lp{;`>D9biy-{>zSsr5Qe+{V%V$GClLAslemS@4)mf z4x5Iy?)D`UMLyQ)c|y;d_@tWh?Jsk^kCu;3LgS>w)tVPX^1~*4eT3+dYKl7}kk1F9 zNsTuJKG6dLbZf-2y@@P2-sD;VXO$!V1Ej-4XczDrz%sx*z%;;6Kr$c#5DaLkgv%A60`NKD6Tl9@n#x44a~T5j z0Mh{JfD`}+pa3-$a47?P4%h`)3n&K62V?;<09Jq*aO!*P{Q4hu=N1y0oC7mVJtx46TnWuGC&bv0U#TY0J-Z8jDv2s&PBggFqUMUPfdmgH*n3#B7Bp zb|^-aB_t%LnJUNs2HM^zV{Cwy?N2&ly-`1=v`EnNVO@TzDcwQ5b)}d9o!pPe{M{(# z>&b&LX^?<47|}RGxfCb{dNib+Gm7`=`K6dbBGIS4Gj*Oprnt%aoIBpfCY!M5B>d=o zna0*M91IOi8|kpo$I{e>K!MS%k^NbtI6>!5GG+Ok4MpOfS{(T&Wqu%z)%p9I^a;(P zCYtPFr9|VnG&Urlvt%I>eldDQhc2R@NeC--mzM6f8waM{gY4qcNUg+}#Jlu#-qbj# z4j)ym50!q!zLKQ%Hi@YujkTJ@A$o>=O`^4l#F$NDiXPL4R6)43Cp6g@-PBD?(&>An zF=5c(9f~4(MYV6|OAIF(RT{;x2zKZIIjdv{g<2V(g zz#Ad?u^)x%FB=URReszkhLc1&N>5Y=b}G|@M0zE&E?*uHkRQ`2KZM9XY!n$n#F|VZ zt;;tClk*CfCq@D&LVRrl*L2z;T( zv>3(zk^oeN$HAruZU-3|*k1$nB3(wkNV|;U9-a7xQQWPw-vF_^1;k!LEuHGD#fyac zeWSQjm)K+!-y;F33DoRcptg>5f#AnZ>hq+|-!+O`bde24@hzSDPol`?E^4_dK&{pi z>g`7HRh=4x)dmvq%2z)^B3|KFbfP9Gv|D=mrJszNDs|od6 z7$SA*i$-xd38)uvs;mth>@d{Ww{ttNYEK=>%ZEC1I7Jj1@P<)*iqNv>jp9G_EHFeB z=`rWX8&*GT!LRhX5npkScFeb@<_hKA7 zpc@)n2VilhZdHv$w~9uwvhn{%x3A9--KMoDwb1Pr@y4$^Tk)4}O(f=jb=$FvzS^Sn z-Dw$&?Ut@vMteHP^JkMHqoCu@M8}_DGi2p@aydwT%C8P+5k*}`@3dwt8~{#0DqtE` zFv-Bp*Ku63H5JxCR4FGgo(biid#XI+>pWRao^kBserdGdwfaouJ?Gpf8L{tKx0!|M z2dMdMpx9?oahJ7UZRf} zZDA1w#Wl}caUjC>=63DHaRRPps0;k~?kC5%s)>8OjmtP7&x5ezI3nRD8e~ViG`D?q zck&+%)I+AiDh*b?{B9J^X0hkRiJqE=%D@S)Ig=ekKRrpB2W&rGj_!e-P zZg=9g!G6R~I-`H8Irm=dfoHTI3Zp31=dYa9sQmkVOOI~nBo91Hr3KjYyl*w^#_De! z;B`PljpBdb=KZgq-*{HajldU+xM_3~xmMnYyf-eV<@zF8ualM|S*_-Q2}>A?@7>V4 z&{YPjT3msRjhl--9x4cqs^RU*x{od1&rzUie5C1c6z^QM4%Qe8?<_;y!GZX;0`M9e z?>r2=8TdHxDc}m=UBh_iNs>N2KvDs$e?s(<^+1sp6GjI)X zDsaknt8)zSN#H5KtI~O=<^QAWUErds*8ky|fjz>^o(mVr0F}K#K?7kAnwOxQkxiyz zf<{(a4k~#}Q^`(Nc80L+v7&R#skEXR(5_m?tW%zo=LDl0Z>WH%ctL?IFL~i6cbND4 z>=`ee_y6Pbd01=qx;^Vz&sytQYdz~(*!WJt0n7$hsdB!WP^aOhHZD6 z9*4yq1J%Q;n(WpwWn&xS*ld0btpCexL38~2G~#qt_%{|zU98yKCH%_+n_?#M60rru zOqiBbcd~MK7Y;8dK)Qec8A2wkSs*~{>cZ`G3SfSt6p%H)Rsy7sF4*-~Qk-WUNHW2@ zitA*V_AcQI=mum!L_-p0d@#4>3=HOgO))k1`G+0#o6N$Ze}dX(A11bT*|=e}p7Tfi zdWwH7~&3SQ$2zN7@d>J2`QU@4x0|Kbb2paj2+U`K{ptfBCc6u!zE zF8`{8KkrRmO~G*#oaYPvMG0Q61WT0^Je-1;_<|dh;KknH!w8mRC>RSuSAIB;%E{-t zVDASwpX+iE4WYP>kVlr{UJV<=lv0KqMjb?kyo{7jcrzByC>cMdWX$YGG;t^eXZwOr zDZw+n!FwrqFa^)>21~U{aE3Qnrr?O+$qrVS;tM~ngilt&#oZKsHziN=1=lFSHg9kl zf*}`AhJ)QP)Tmksz0Vu^GldQehAAPKNXQMI2Ju!;60rbd4CsdZwOJc(u8bq94lwA&|*3fJdS&~qilSgMRTtT7hy36B)OdyF2!Cq&{d7-XJq}WlIn%M*OvOTP{q4s5Yqx+5sTS+BhJA3jaS1)F!MxkN)~pQ z`Al7cy4D~Yf(~*hOnM>!x`LUOvd{zrW5Uj;+-;^c81s05qJRH`=a2TGu@?_Lg$01g zfEWO#s*{;jThH#d2d=ne?GjoHWcng|Xh7~XP5BU&IK97N^Vw7f9_e8A1-LU*Rd1Y4 zabu&O+je%EV&Y75-SYX7@tTSvZgK-z(1lF_Je?3kW-?tGC=WnENcIm*XYnY)P|4L% zSb}{tm=gc3Z|wjG(r4k9f9*rY<(PVMp+u(|n}(?$1# z#SGHPfN_{`aCrW8JBEM?;yZ)ni|W9agXW^?zKGns)8o`Q=HH5#%mFiZ@D$_}Yq`h% z_-TvH1q1&OBhW6=k4ndrUh5$Qa*W*XgimfT!(FVC&jxVs)f0oIC#x!c!LdGTlYZ)p zw4qkwNl#UM9eTiyfUXN+%nT(Y!d!d(`qu?e^PxRkLjxMrkvjk4k`=UE)HbZQzC`RpM9TuOb);jF~yOB&dds>ou4%N;<%TJKdF5?QS>>E}$C5<+d#-B?iKV+_` zE?g=!oWaQOE`&Vo(<-u|?FU_^^cPgahiKMjsrbbB?3Mto)RO}<6Q-R-KUiF!jt$nb z1?5iwAwDs|vSnNBch9mL${!`M({*WVFvD8b&Vt|M_=zh%oiy5-W9Jx`33rRRk4{_c zQQ}6Eg^SAJxUoA1@Gk%IhmepPL0DTfE9VW5%G=$&d=z!S>=Kn_cSn-qFWkXeaCwb? z_}>_N-|53W|H>{=i{H1~fRJk+_r7Ps1GYVmCiTjbrLbF&rcxn* z<#Sv+NlYI3z~baQKUIPI@#U+MBKW*Xuy51$pyfjPb!wyR7Gr}1I`2f12@fO~<>_Wi zV#3&9P5M|B4)uh0K`ybt%w|DXt8Bv=!B&UGaGObZi7@isq@ARik2>(mkQs=x4QivJ&GJwK{3Fmm?nPS&Osb-1~Xq>vR0QxXU|VCD?kgIO1Ic zXc6-;abLwGZn{UxHnSRL>Vwy0W6|UdfAL_6lZL~La{a|HeoLoh>!=~G-FCKKaek8FxP3q6PXvy*%={% zt2aDRejP6zgg+qvssuLZR*c2w?1UcS6K@P~kx~zHa=vu@ zW)yLeIlHeD1~$F;uY#&I)s^DZ+>FEInzIkJ1E;$>olCwSlv;`g-3MqpfU^NW4gB?R z&j2a`6@YC3ui7pymNwdxEcUpDqgRFMlg_388Z!FQu~Li@+=vXi<^LNQZG1};wj*rq zLZVM2v;+$5Bjs%!5H?=H&73^@J@VEL=g({pxa3g;h z@6QHnGgaLCrxKzs@MF-t-A^30HZ?zVTOMWYJoud8EL#s2b1+IF~)j7(s+!TQ-W?;8Q!b(#}Y+KEx~zMVJE|H6Bk zbi7Zu@HDz5H|`YaE)SqQiaeS7uGkl!T(SHlZ>J3macqzkt211sfyU^)&YpiqaOs;p zD(l~9Mu0tl(j~N`Atn1Lqv{dnU3HHAX|SUn?Q$NFUyjZRSOr)KxQK5_aL>a6{)S?& zLh+xf+B|OiV&1jAETN9{Of~jr8tsc(>`z~0rRipyYkMlReUie{rQfnr!jN&7H&2>q$>GjJcL~7?)IW5ZHQEyG%`jW zi@W0~ND>vD&%j@nB;RXBV6`j%R1LO^#+VzbXmJ1oS5mr}Zp9^K7?{~qx`|5XPj&$YO_94fG-q)L!%y%HWF!0f9sy5aUAtejqT4 z5NL7bcelY}LV}qMZgjmvm9o#f{EPJ;78e<0SKfrux%iZNAVMx32m5c34?i+v)0?TWZ^g-Mzq61 z)QG}_0*f=i3EUutC}@O`up$LJAN+69V7cEsnYD29a2>)vpNYDK0`7K*g7cmK@(xtv zj#}?THmQu9fO01=qrBx-K8ZpfpCY2nqM4{K@7g&sh6zBqdwk^%P|6)(PB2AWleFgH z&uY?7Kx1+n>NT64(kO)DzD1TjM+~E)@G+G^%f~7taE|%;u3#y|32D4@DJ}zYR>-XW|p8t?hV~jZZk5IjMF;5T8(Ehs*Ji zH0_QM@)D{j&1GV3ti68hc9#GA;Artz?{9HOw}yKL-Pp}7uIB#K$SrE&p7yFA2SAJN z;_h3L>8?voYiWd|=u+9qQ}GsFRK+JJuvrkwJ~T%9VXVTGg^{t?i21dTxzbV=cMS^{ z7=*&AhJ6n6*BLXeR^*r<>E+MGYFj>Sru}5*%WgI}9g+v+j5)}34mNVd_h5f5(oeif z85SAC_#STKrD_{?Ej8Sj|JA@(aNPtn*8|o8@&WSz-d%BQ&zHeWl(}r6;~&5At{0RW zES2zxA9X>j$+oHSVu8g~$-Bu4DnjKC>3air3D~mFfrZ3MGuCNy3SvX<=3y-@WcZw{ zSm$*4OT5y7dKsZ(iN&m3+l5t?#Wes4tfxF$tY^hvx~wN*l7=EN73QKrU&9iIul`u9 zGY7r(-_-5gRTeYk46bg~0O|qpZk%VA;rtu01yES#>@ORq={xQm=f<-Vufr^v8V2xQ zJBo=f(k8#s7PU-O)^r^9Fj%$PL0@6+zp4fRTX0XtTka{)WR;>^VrqvWOt9kjqLk& zC+Z{|09mkE zbel79&oD>O*d3%#&AWeRLt?*+Elyt@jT-gqo-wfY+U_GMP8WY%4eFV>$tnLl~d8ilu6UVBrDGBCX$eedU{U#-_zIr6{$qVW?CMu~P^QOj? z&ACCiTflO~p7EME12ZS6&=P0hmy!CW+ofWj2-+KL;1g8R<3Vgl)NW^K>B^1fz3NcS z#4=}rJUn+l72~y$B%W@CDyDq%!%{VKs?~Z8uZbqGbJ?wS^NJ{W9p*Hwxl`3!Ii|V$ zf47%*{tCSgz@M zP%sfP1DsEl4|iO~#eZd9?DTn<5k2Tk7-g^}Q936|ei=^(+-c}crCN+aD=xv{8(=bE z8gzjt!VLhZ0P8MdXaHQiFl=HyU=d&*;QVipJOQr(Rs&W7qEz_Ti5gr4oCnkbZi_lU z9&^U;<<)1L5ARKmxZX(@OfoR#o?Gp#>*Mg+yB+V43&f{Pox!fnXS%!~+V%IV2Cn%Kb0r{ISQ(#pRym|x#fF$NAv+%yJ#L3+oxH;J; z1DY$2Luh%~I2U%Hvh4Gu0$`9}0s_*bM#$HuJo{6k-3VD6lk1amjuBnRWU84 zbII}Q6PIkq;k1u|hxr;(6Rt2ziK0nqalA_KX)sSb@^( zIEzi1@wj!~V(apktnwpfo|}U!_o$TgK=<%Dny|mHh|p547UtFRN0J!Z00dczlVEG; zNT~R&F^9_(9!E%Aj@@CGrVPlU(6|X>-b|GKVa(&E3o{WIMR=zV*npX|INnkmHDP=> zFMVyaaZ`nfVdtTa0)>N| zoK%AZu){pFJ&VhHGm&+Kpvjn-?K#|Z1tm5b4aa1)=W$aNRM}*Zfyrz~6|K?4kcKcc zOg^vn)-5Vd@K%pngydDFdKtdzWteW(PMUVBcJfq{5aeT_nC_U&{(fvkg;|)@j;3Do z84~hP1LqABKWt!Eds0utOMi& zmID?6<^X2VZ^WAccQRm0?C^=B;U)nbq4>87fdOz;fVO6sj|1f6TMgWGaCgDo1lI+a z41_k}_e#JQ_`Lw`cDU7;2xh>a1lWb&QE*j&J@8*?!uA5(UhIjUfxia+eQ;|x;DC51 zeE^BKz^zBXdbn5Mb^=mRm>D%)j&HL7{)jgX?nFQwUSkX+dGK$8I|J@cxG8Y=z>R}j3D*p_9&YbdR1WSHxNUH29Pp^#0g2(VaJRsX zgj)zV9_~26I`~%s76BFjW&m7QpqvQ^1yuYFWC7~{3jnhKlL4KVvC{)M52yuH0QLY< z%&>c4@;vYyDC=xGJWFFd>P$ZpZDg*SuuXGL&Ft#pijO*9I1&}|ZF^41>cvk(DA2OT zoMm52m2J+ij)VtDoBHvVtoD?%;>b`xv7*g+?Z}|}qHAC?b3Se0vQTt*%Mi6@O+JMC zWuKoIVqc4G+*9{s!_~5Et8}!@lDHLW5|dOgg$Wao6Dpn7%7jokq!mleti-MSvd`$Q z9lgEe%i#~f;NZmNuPKm-v_nxF!5PAz`cRWYReGsb$lpT?wfYWW04_oMt#jZM>2 z=XckFK(6Yyahix^OO8r7+Rq;`tA`V21&LeSE>%?F8b0yUf@NF8z*c_Q7x2pgt%BhK zzwAqj89_1k;$gmWCE+0N&j5!l@e9?Spwd!7P+y>U!4we2Ye;bnKaI*yi(1&G{M6A; zlK$4D!;KW4xk`~3`dVZYN|ZQiB~CQrl&kQ^#{1ItkhpAd`5}N5#gML}w$wqN{OQvV zN3q~hw@{=)Hw+)suj}-y*HV!9*|v+^hsUtl@>k1n?yIBL5BlRn>Yt2~Wz%nS{89gk z0Jexv{H!!-C9|fx{6RE~O4xww{pz!n!~AP8F>8=5G*rl4?`GPt5a2AKzH!`7*gNxMzs7B``N&`Q>q`?Hu$T8=jN zzZ72VhlUa?AuRh+T}tV)vy_CpYQuIa;SHB;k4(kmS-!N-_GdW;PSwH`fJ#_G*nX!Z z3igMEJ4;2Mbx}Xr!uz^*?C5Zm&xYhHkA)Vxx#~;qM=~tIs=^R=mdZM>KWkuyH%s|@ zQ~E%q_D@iLpD4(?3Hc9e!(eJpz63Op(Dummu$ii+njo$k$1C2N%s@8NwbwnWti&&J z-^~?Xynr13UhB+0n&8-ZQn3n{5FqX8LTg0CVTCI`a06a`%irHvIx^SGu-1F~=LY0x zjo7vpMl0ldUa3)m7AS-bQVY-4f_@Ouxl#S@xq(2QH-r|JaITZ2u!zH*N!@aKPu53) zpA8GL9f62Y9~F~tjp<(k0|@dK6aP_Q=8WIM8daGYzkS9BWEI!v95K(x&i7RyqQCr~ z9+ePIHGfp8`34kQxQd#L*SIr6vkam32Y!P=1|*pAG@hDkvYPwnYSX{)Pzx9pgdeJP zK3g*+=<^$FwA;3lOROEQv2MAMsd0W(gDYn5n=*@TSbO?%n3di_=duyG(k4^+W`C8? zPKVU$QA&+1EW)j=eJF#>aJ*-#R*;2JkWc$dnCA>-vPN^zD_Aj9=kOx_Xm zsS|7cs9CKiZzAwFlTr@oIAt2`M`fgtyj5jb7 zAKad@+nbyCvMDF=YmB1^pv?Z(_ZW3QU~ZIOG_k?JJ!I_1?-y2E*Y$ZTFju2xJvVv# zwZ3$J?9{GNTIegPjw323DmzO{c{zMUBBYu*A01`MW30blX(+%Dybv(9quC2KBvK z-)8Tt&I_2Cl;gBM()TB|w>0rjrnSHM37JYQS5Rp<@5E(QzM?-Ws;#P}8nQVGXM^*j z*ErCFi!2ES%w5b11Lm&1!P*2rh`xzEV8rEyxymvS)Onz<{NMd5;eI94Ih1MP4k3l= z^BDcOvLiQgFfuJ##f|G@lhIqo`Whf}`LFiYD(zs8j}(?Z?H08lP|7JMN^w$qr5foh zuKD`7s!LU|$sxj}s)EE%^%daH(s53kYauhe&6jpqpY|Jc(HKg6pF&0p4f_oroZmJZ zRBWFgB@F4ys#9BsIKQsF%ke0+3)sVYS6`ML{k@cXGZEAcb!dcyBt zy$KGZx|9mV=wZ2|*x4vHg^I00v7=m6Y&{i=_7|S48aWEp9_PG|pB9SV&x|DbiTn6C z8=W=X1=$DDsnGg63UyJT_vLDz>n}+BJbM!(d_>hPIZpCL_70*ARkCUtS|y=js?sVc zNq<|D3dJh4OH3P_nM`O~VF4ZAprSJ0#ucDIuybLrw_6b}IT3DyF+M84>2r6r- zpmhpecML!|RUcJmuIUXM=TAJ9l{$fQ^p;Lrk9S3in`WfBQg(Oq?u<{Edra1sd$Wq0 zz@y!dAb)10Nxarp5nO&z!!1M&N13QW@iH)<`E;do;+a7Xa~r-?Hs-H*s*>OA zin^A6`DtIXJxCNhn450wS8-x5=HhLQLYh)g3RTW40TuRoXVWYQKt8fqQ+l(QUhUsO z8exJGKS?2mjfla$N(s2<+O`Agrf~f`ll=vhsWahRO1yJKz^xQSCRSLR62gnL_IMMlSUD)it9_^P9FooV8WUCx6U!iQdX_PHU5v><$j^W7! zw=K&yUzMlH0uLZ_YjcnGLrT{~=}uFw+113jnfLT=+sV}&a}GH>+;QWV@tOkWh7Xyu zJy`=+ub5V4Pd%BA!++s4CEcSW4fY=%8Nj>d$3_lH*QvOF98-9?rpKF-tWP0+RS(p~ z)ID5kmE6jvkHFM(vziq>&_xptQhwWS<)fE8L_@SQWSU4YwUW^*zd7fIe%;sNE4Q& z3A29NgC`R6A5pIet+EH4#1n}YULn%17!yjoT3TyQSN5&a7k zJkV$s15`2sqN2^rqP9Hv L`=TGy(yFKYiAht?yDi|$Sa%iOSyQ;J&Y>}GUzrc*? z*PYQ*v6@?7g$^Olzd3yWwI|Eaqy4#8SWCs*DRD)Mn zs0>&~TDfGUMSUeM>d|h;9R0LXnbcz;$RWGMk7krf_IrA;Cdqu$`F{OiN7S8(9tHO> z+I78HKYpGa=P%4sQpYKzu=t^Tn#$s;Y83=(|A2rbw{nI%^Gfg0z5xV8s=!@;tiS;! z{Q*k9NEz0t22xoo*H`0{45>lJ^=My024g9M0e{S3my*G*KO*p-R_^MZ=|}cx7bE=$ zO5aiA{HP%|=MnYtH1l8I(P(F?Nh1pD^DVL8)$y2NG{2~Sqcg0E9AV25Y6aEsNCbb% zeR2e2zx2;m?r;q{{_S4R_GE54q8;NU)y2DoKq}@~jdOV8J&w`pfGHL zuodrCqcj^z`~Db}R@bO5^Og4UA4>Z(l_qX$<-Yu5X_vY)mmSfXd%+zSx>3-#lp2bZ zK9-10eu_{0JidL-jnyy2k8@Tw2F(e+iGxYO!TA5f;a`pFk9;^}{{e?tN8&@xK~du7 zRv#*CFVc?*3buJ> zv_;rOJ%))NcujhOs&F;8w%cuMTRRfyX@{XOzGRX0*=}}oH$T@PZZryKDjWWB1baoV z7=PfIyb{NvrWf)Hit91s<-e0}KX=%=pgXg-Vf~1xl-&i(wrzme^NukyuX{t{RvXin z5D0s>%RB7{D+?00@mf`8bA$cpVam!suVhj83;YrD8wJ)`-3b9oYH__WbAC6XQqq7_ zV?-UZv=iG>_Ma+|_=H8Ht)1*iKZ>dg`wnw^4`aQf_NR&oTe`3Y%iP>`V6WBI9W`@} zavADPBR8WPbS%)cSyPElbJ-Oa8tlI{l%vZzKm0XZ%k;Ko7YuU#^lMZ|!;Nf97#DE( zmdV`oN1gxuHPRt{-9A;l5x-(bNB9;nB{5*e-lgT#^4{5a#|E+=a z1q9%)Cy-qi^~fLQ9u|wEScz_bcUI#CyZ!(00Lb#T&@X?F>%* zDm_A#HA$u23L!ZwO;vu#=U(@@CYn5sQ5Ip1m)3ra6A+=Us~kHsTv7vQRK_0390|*?Af3xDcxw@st$2%!Dguo0F^l5 zWIYrs-FDn^Pp-BLQc+8kJ1VRI8*+*Al-4M>(?0w#bf9oXk(uA{3LBmPk#eE2?9yRY zgX`Jvx8Ou~E{;Z=sRlEY;TJ#?L2Ww#F3QlPs>2iHCH)#M8O69cOEo8uaz)z-oQ15Rde1tL72 z$v05Yv{W^esF@x^c)Uoj-Y`oI!eyuqB9Zum0cRwNSNf+x_|H{uR{vDeId~{J;JFjn zA5=4s0c8pLwn|Zdf=bAPK*r6bdzDsZ1G(8ib{gC{a0B4>9w&q+3SBo5ei(1^;3=L) z`?MDOROX3pDY&hnyb7ccDl4A%2(SH)vp`VjU4=5Q{vIAL zJ!`;AAWDAnQUgLMyR`5W*kHWqO)Nida3J2}2GS^{)beHn>0~My!Ta1*#VeIiY7p|7 zHtQaRQc^mpnbdh>O4*>)!=Qqjn_kUjG;-5gxTy-sSSX(d02Y8+ivaaUz0^{gS1}6q z@WMOkB~I?Hdbz6M-uiK<6zlIcs^phIBQJ?&7>YbCuBLH@@I;$SCB7J7135_B76eKZ zr&F8P0HILf!NaJ?lTg)A?S+BUu_`XQe&dy4>LHF3o+vI~e8<3rH{mWC2m_7@i)Ms| z>mo=18!E+6xyqLwGgwgDWN5eTHQ;5i3=R3Ey@m+e>_iBh&?z)Ahd_}~^s?~ek(^ur zYT~n$Mr107JWP+Hh>uWWC8^tR4<(KDrj_>l(vIYy>F=PlC{>>5Z4z;!VdM7U>cNh$ z@IVk2Ji`4|O6L0v@^pi6AAV3bn2x-gl;&g^6v4__knJhpJ|8L*41#bop*YnbBzhA{ zQ~oER_^>yjG}fDt8EX)RQ9?&Jzt12&Xb_@(MLu{lWpa2L%RqZ-syC&Kk&!AUCL3U= z`twU!#i8a$^2ugh1uh$fqA7&`i#=5Pzz<8n7s~;w0N?u$S9%lp!x2>KWsp1hLyGQh zxL8@$db=}8slLv{JbaT;Ob9rPsWF7zZhmMD)V z5MzmlV7vdb%Y3nedc$0U@abixc0`vGzA@xpYUZ2t4^Kwbzoi`DMteyi^XO2ON;)YS z1D0<<0iphwPX5}PP993>2!o*paE`);8Try8gRt%jegKiDDJeJ%PuDBIBmYm5#^BD! z_c&490f>TsC)~L6&QTW!g%lkwYxB^$P$gY6K+=+@u+GOWF4K%_aUQrhM#G(RsxO5{ zcN^%Enz*+EXUFR?(?BH&j|s_%EGeEL6*Go)-hYXAEXR>Hbn%r5gXelYWj`H-9{vcH z+jEeO<~3?*S2Oob8+7NtNW!C8je6T|?voT?Gf*MPRHO8`}%2ahE zJ+N`6#d;Z+MwYU9TciS4T$U^7?Y|v###|ou*!qL4U!H4z{P!bg=839^a&TiR_I`g{vi_twqORkk>)KXQEsIUX zN?0R*)XW?G6~CJKs5#lZTh|{pzdh*?etmGi#ZRT4P_Y+tFXe~8 zXy$`vc-8Tw!YAZ=CftvM$%tzab-B|^x#0&Jt2Gv*Z)q$~YjvLdJ!;_O8;F7fP>H=E zywOG%Ti|yZuS7TuO2`fsxB9S!)nc{4yrk#Z0g#knVU$_juHi!5TyQlP)X14Tn}f?{ z7@8u_+mN)24gS)uu?wdL%{ zbkg5#Y33>#PStJWg~LsloY`oVIJRnt_L$&s>YXU!2s6=XJPO8$dN~rAPi(>xw_0_yd8ow5ljBWK&qd-yrhFHm=D3b;iS6y6Vw*~{(##GxYO%4T<0c9@f}s+^{^@q z{aPr+8stp|DAuO%vCepANjuCs93ov=th)?F+hEecrz%U5(|c%l40rQ8oC~hUq`U@Y zyaj+XKpY?vUd>GfC&0C8b-9U^YyZ$&KNvSDg>5X@)e{3@!;`u10!(bxvBzOto!mP3U*o+JFSH}tcSRe!Ib zAzOtDJ`oiR9>^?Ri4kD$j_c(uSWc)o)meSoIL%e44~)kU7|V6+=QaN5<6==8H>Z^r zL&5S3ZQQSlH&1HxFkkjEMZNss)#Hq@n>FR*Rd&D2)@`0eTGoI@!-SYsF?Xq=nsrGV{pB|du&rjpDFw_eIVP+g zp|%#n#E^NeCSqyC3rH9`601Rp4)TDy3(_Vj>RH!|D?&Pf>|twSzcm* z%{Olr*_h=1Uvlvb%*nNQrm7Geq`Kkp9L7|a0-e%Ba4P_-@O?R88gy6YZR~&G2)-?W zaqKjtn@!&VX@Jpy4aH;@LStX%wm(~Kzkg|?eMyV`8TE@Tr5NXNSK7S*x9zy%6BZuV z7S-c5xz0f0qZ6!Vgr8jH;m&zTX&_nQQ|_gD=k}H`$B<6$fx5DV`)yclwlUnwdPK48 zrpNWb%-Ki%v(ETIy&x+~mHBKvKM)%~9^&gqaIsb;37yJzaBe+2Fh`@Bk)32;UJ0G; zEE^8URQx|Y6Zxchym`iGCmsRDkRf)paM}AUngP5kXRJlT)ZM5)lj3hNtmIuC*raXv z!PESsC)bu{PsU-ZIx9>S_Rm0Ec7d>jfdcYUj(s6RVs;Zm#qeaA>u|o>I@o;QeyFSa zvo=geqi3l{RXM+D9TVggnZ5DCJGigTINMss$BGXbxL3WGOZnpEke|=>WArX8(bF>$ z?5K1rI!g2D!_HZ4;~ZHc?aH>KaXSx-pBln)(zti`3-9e$pEwLsXBXJC2HH53nAWfY z6|N`n%T#Oi(B@XL(PDo`IbGLPWzO-~_Vi6mYeHc_ACJe)NLw$bLb#)!ObyftF_xy+ zcrt(8huO4gSU#^|W0NPVPgK&u6)48r7i2eTtfHqW24NVFc|xi>m2)0uiVR`4RBrix zVa0y+4h1ROeQTSj*zun38(G|ftcNk>*Vm&H9n|-u8#OhpjD6r8c8GR3RKWM`Lktu; zgE9_?{Z5lURHgn`WhsITeF$={y)n=+!h7jL`CtP`uaaL+8U4WpW|_U1LAVXc0luxGuGV0<4oMXwu;TO{VNt` zX1C2|!p1O@{Tno%idojIHm9w9ltV6Q0r|6oHF)a6=Gq4y9&dWk88X7O7P=6co&h-l z+~1FYh@z{-`r+|7|6H3U{UOzFS=!-zsP+@gWjUI)d8*t3P5JXG?T4Uana~!8=URtj zh-E(u*2l5KvA%pq1wyG-hp) z-Z|MM)bHbqU&C@Cl@9PMJ44^X*_Upr7HeA$nMT#DBEReu&|r#rh%l9>!la4cEua;ePL zD5kqzJ6olyI@szw*b(cv_Xszu?ZGido2EOA!SBDkmbi~Tz6td^Z=#hqg@wFko)yB180SuNrq zqxQ#D{c;|nFE+c>+>S%?d_%T-0QdN1%(@kmq))pc$zaH{sn*`D;%3oHYEZ(!&M)K? zY}mOpVqvG&&!e&#Rr(lkBX)GP9sSzt{XDn8L8rkQ@r}-OGfkqfyA{pgrmexl#-O;u z>hySw{i#NAU8gn~5g=OmGdnx9NgfTi3`4b>d$yWe+Q=E!FhGlki18wEi~WH^nm)XriKmGh?Gu@fPQmaS@7j*T)3L0;{)QcoAQrDt^SEZn zix9wE+im1cH8rK>i*Mq0KDK+sK0PA#>BA~Ui;r|w{d|D+%YglHX@oyiyI~JJYM%ge z;mw`d)6}r?juBUC>Qo95_HX=$MjgqmRjVdiTqFDSm1$V6GS z@likZ$Z4_u_=4G?J9%WHXe5+@@$dS)#3bY$sj^`jQmSOgSvD?j*?1=Aj`&g<3yX{t zY+07fT-0wo^@^*PHQp?lU-gh1O=5BTMn8Y`FioR=<4AvXq+|L4 zT=XV788ZysynMGm5`qZ~S=_6~3(Myji{9P7#^G{$f3QRl_|3 zYxcu6%mrRk{(y=eOmJ;MhG?G`_wlYx-8}QV9&V};z9?2$_N#)oL%yVM70y3Z@iM>RlQ;4vL`_4^b{~pI^*CIiWr5ir z#&(A1g?JPEf&|D*80Eq73lY|Vj2q~qFk>H*llKp$GjqJ9Glvm^(xpRiw_8v(YAzkd zPw7QW=9|!-2PrM^JE$iWC>0r~bot4powmdz+a9%TSrVU^w6{c4{xQC97tEe0*xec6 zV1pAaiquOVSr5{KVtR@K%*-q<26)Rop%*gudI@pdi^3fw%Jh+Fw--qfYolI_hQODp z0kyp8#H0V44wkkYN|s`&H=+Eq9#;gs1y<^XBwv9?{x=~uV!WvA@)fvCFEsiJJfs(5 zd<9ngZ#wZoZ#wZ`zVdcD^kjHaq3nLWFvwTnzB>{s?J7^AgiYA%{HHf1L+*B=^*oxS zU(W>}MCZzd$|8{sRwb1dpa@rRgpe=xQe+TAZc$wETm1%C(+5Lgp5KAzi!WL`ghRt@Lp<}|fI!QOXikkNjw?ERA`gQ_=A4irwE5&pS1fjw9u{#)-j zQPfgK*B&IBKNnbmQwd(nJ$;g?@aKL!!0d)h=-~p-TU^)Y`scX1nd>@k<`Jokz2mi9 z1xx0}tyggJ4-T7HkKyzR02Y8@{I~4C2NKldSnqqQ;sq@x@GC8KWGk~+?_f2tgEi@K zDxn2e6UFyBaYVtFrO4a$u&@X7y!I+O7p)D*ab@GP)+ zS%(`Th$j86$Gfd~lQ{*W>kcj1ko-W8C2I&GCW#*)rx^Kt{7;eI*9*_@h5aVhA%3N| z-v0~U3@ILktpv*eAh%IJj!N1cBaXpaUNVb+q6vFk8tyJP7go&;3@)2TZ<`gt3{@Ly zsd^U|AONfJdl6s;z#q_i29yAt0qg;62fPD#jecXYK@Ec)W!uq9z1wuyufxV&S2MG= zQ@Y~GE*R19mjjT;axDX-m(=Mc)Tbw%CzF^mxE)rK<&X7rLq#oqtcUF>+!z}q-A$(* zZ|Y$|`Axkr{yf|wJ?vJ3)J1ylE2OYgOZ&L5BaZmGzREFgAJ({GJ3^bY4+sUF`*1uU zzOPTk11}kB`73Rl;D(fe*9z9^u^lO{)o&{jUhM2N;fMSlN=-E(n=cSe{^B|&el}Vb zI)K<3qWT&=uA5RDROs2r@-a|mqhCyg-eSPWw?JL=-%==%dab5PTlHQe$^Su08J%)F z#TEDK$#!rmD}UwWI9H#A*6QdeYU0DdXVD>eu(gnQbHNBq4z>TYDB{g z>F)`F=k;Ej(h(KlO5ZL4Y#r_O_^e3(M=zW!2N_<|bDvztz);u%iU+hQ@8tZ0GFYMK z{w!nZ0DUf8x1>i6VV)(>RK-%5I>6R+qy^(r6*}(&ZPE0+1 z(j%S1Uw=X2;(K~wEj+BWOpn0=m0Na`rKQWLpFD?HdX64;I0@BH^<0STGoh4+M?>&U z+M-vU78u09^Jl!GGf3JTMU@ekkfmaIw*K~WJe?;YU7}B~+{l^LcUiXM=RCk7e42(^ zUrXRFr(nP;z#xRJhMNy~4X~$n<6^Tq+_9<_ccK7G0E+;#0KG`>LYz?eS-^(P%OP`C z+fP z$()86_Bo!_##tL(`7P98&C)}da@ONaig`$1F*N;0KVdhhsicw~^QH< zo5`Mt5+O!T1tNP;RMfD127c^trg&55N5R5KiXNM^GZ{m3VSx}Q(}t}a(Tub$n8({- z$%L4w{HKy>r`e(xo>ejxCs804Kgd#=b*uc& zJsrWZAVZ6*t-Dp2?=63#UdjGqR7^hJQU<=6K;V8L@cW)=gn$tUphzATK8A_$K%fmd zfDY0<3Ig{~a;54(V5A-ogI#3dyHB5LbN~nBH|IK!(2=A-rX(dH2hOc*i1Fb<%=he93~9_7PF8I zEShMk6iG{YU?jPG9&O6#A%i3rpK=U>WB7qUwXeAxQ!pvWRn%Vg1~S-C zB{kk|FO%GQ6AiNY1X_yKW z-V0oSh^(B>BRn3&%Q8-<-` z?|w9R1oE<#go2&-_uWM2xI!4*rX{4_@g##kh5R zNvM}RVwr+r*-dT+b(m73&bK~%D(}Rn@g{X}iw7pL&?dH$c#!8a-~)kz=yOPijQL|; zgm`z9d=^wHWX^#~818t-+?t}9NXM5%jf|H51w`V#q>^_MBGS&=q%uiA5+duph=}{{ zKtwuu3z6b@#WoiZNdsY|TZoAAos{9-8R||_AW^tF!;wUp?9y!faO>?)n@~i9o`HU3t9cASp0E`sfX#6Yd$QutbbnZW8w? zOc}~&d{IOb312b;b4dv*=$L~nhzIZk_!d)Y>X(onWtUEvfXif%V!u_2H(^|7c2oI^ zLAr0;zUj4O<>f{p5i!x^3}}S>k7_Wl0E0zLDH!l$2rK1o4C^LowQpW2Sp;ibALw{T z$x4(+{SrTb!29%{5TI_kiP}5d+uqWbceJH&ll3V4sL6SlrMc@ZQ>u)k3QRMH0PzUbP&^Y0`jgV3P z_7*~K6GBL7E7<}DywaQCk7hwnkUml0}4673)=~!VGyf7 z1xDL}ko`77_S^DY$#$ZU0|@Q%Q3!q@^cU(CKv9wBs^nL61%@o{VfTvV$1LyNsKi>r*^ zd}BL6i7* zsvk|P34RXmXw_13Wim_a6D79zGR0QVuZKv2BupVHxl1afN@C4!om5uYmT%i4P4wjB zRJUj*3gk=bArIuDrdN;>wH6mrO__ztL`~NB#06C8M%Nz9qf@~%;@3LXv4xN_NN*5x zf}uW9n$)hty*NbJsvRc5M3FyIB0QywsKZ6-!5Zx@kMJzEydZHDP34uw1!R^WG$Mo;%<^8q*6y^v@{DR)$#3>Y+s)D?u+l8bvKpd0$&53p9*rfAP7-0|EM1r>5Y=;U_CK&&n0YRN zWnR|_S?3TjM~A1x(W*H*5|xon9Vj6`tV7VlI>FO}sP7a0md%k++GD}SLQfC2deI$) zXIl}vQO7+mW5CW$9>CJ`^;*cp_cu_CcXe6!C}oz)umUU3ZRS2Jr~5+iKcpkW67t1< zAcd6=G4bS${ZZJkn1x-L?bw{yj)SsNxRdca1uzH%i}m4H2f zU4Wf{?*U%`HUaSVBc6T40}*<$#zH0c0r?#n5lZH$znBlXgplc>lTJ?WYv{$F(1wZtx}I7dgjmTA%oWGyD^1egOx@M>K|g?HbQnd^-p zE~5y74hF<1!b?C(sn0SUo(G`}UepcWr71t{anQr&h_On?n{EykNvVoS_V4v98~@D# z4nxBQSh0qEh+>M${29ogPN}Rolj=&jEmA5uQU~i{l-YB)Vr1TofsR}@PK?vx@m7kl z0;4{CDRto4gok~R(4p~(8Lm?v$xD-#>6&Zyu!inl;jffPdKTT+Tp0yr!2n?meG!-H zl$Y|-WMCU5E=CM28mNHDH>1qe@z3D*P@VEb9#zA7^7qI| z6En6GJFr+t5z#<&Jo-Th!*kxfP*9!6^LP2owALYB0ZuLmX$)@!2YrHaFg=> zagrQCabPr`iNLrKLpH(6QpES@qZEMuNlbtaCj#WTTPHl}D5Zcwx1-8ViYhY{Rbq6? ztEfp*m`?cdXMDFD)mTFC{+m4Nb_!{|l0ri%M2$}AK1pJTPMA!2%fYu}GJm6(jEZ8) zou$$n)>2HdlVZvpfr6(F15S!))d_fR0cTDV5u73gf<020_CTEW_|AD$ zXzxHlT;E?2%)HVOfU`O;4+IL#-| zK_JC4t%1V#KLgd4Td|iSHdBw-@;OJK@YXrPb%cU(OA}Xgp72%v6TWq~@l~3ESw$p& z{w68UAIDq+SO-`MNCON4oIi%S2(S*Y3NQzd0*C{g#|4{0Kt90HiGLfEm!j}C6kdp` zwkP1JC_EA+t>}+(M`iPo)Y))F@?bl&risgKz{V&L6z0_7KscP=Z({U1%=*G(b>Ru( z`9R^DW>DgnKnhIFP-Fl7DO6Uh3JgzRs_3h54A)e|a9!E_^H9YJb2OUh9t~wh{c&0; z;?)O26*o5oNuUm*oXzJ(WA`^750`}VvPuU{9sK1cr{>MY+iB!4I`F{V~;ekFpKCJow*m@7JsE+S{cxRRiEG|_< zMAW?()I~wr6%ZA0cV!V35QrM=U_p$%MNKSN*4UER#~wtDJ$6@P19YvZXpG%hLJS&v zZ?NxY?xNr1_x^dF!`?Y_rq7%?bLPy9>orklwIBQ2uE6Ch^IhQDZBM`{sa?n%LYm+4 zOyP{t8rwq@0~ox^LwKtn;iZBA79cg(A#-A*QixH-!wbVuJ_0i#<63^pKW5{+T=O-sROT^GX6be++a%3}z*}4^WY&!@lWSYVb5bs$zssy~s`Ih`?c7Y$Sr4sOC{F)D_ za4a9o-8q~Tfz5)OUQKuo(FbJ`si8Oln2e z-t*0+a;NU@lk@CJovYYkGML-4ApG5wrxWL}!6Bqd^)5}qQ(w0JNl5CE06Ps>iPjIg z;QZ0f=7x~!6JbkK=#QsZU#k)e@dab3`>L8ek~fD4wlLI+H}j4b-Yn8RE;=n+3bnu!M0w12Mn71C;cCbjH1!r@s zKe5Bx#qzbY;BCz+I$dzqedNq!{%c+C4PJ8>Rl12c5bYL~?jo%1%vb74)1Ul5x<%I8@RILU<`m9xYh7;!uOnG*r|hiDt^)Q;_RaT^LjCQHXgwd6cq`1 z3Y?IH+&b;GF6jo+549Xu>Dr-SzP3D-u9VBId8ll>2PGATVopYhzQ?@dYx!Qq?Zpa1 zh07|uX@R<3snX>hf{%HH%2epf<;hS8Cp@B==)9JhDoC{WU8d5F;bg)x6()C3g3j#6 z>CDqr6A{mJm0CTm3Fi#5R2vF*qdU%1GMA`y$M}csoJv>cCUUY!RkIiY`Np*rL> z-aIzT6r^gNqSE<+(!4-b@-R=|s01Du`I|q}T0A(dEtlsoSEb8VgV-`xrEhdmrZjK- zObKZPDDwn95XY-@Yf%>44=QO*ddZDB4Q}ddVNycW=5?r?P)ETy7eG0`FO1n z|KT9aT6Irvut^bkx7$+0D>By8GD9wgh8M$}kM)(WsZfJh1Sf>o2w!t5+bC7C2bPM& z0wM4ZG>=A@CWj^#3(uln4gt2sQyc*wjb%708nwkMLR!`4 zOh%SXG`1l;I`a_KKaX)2uJdKPESrX!G2#aBSj-bu7j7!`wU99lWNaHlsv1YHu)O2x z*#^iF3{dHCB{temVG~24_^V zfliic_INHW{qgo#N7*_a^3yQ%?}^B3uw|u6ABs5vaaktHPYnm7hR|x=9eq65yj-PK z$&vZle2B^9C7TPLW`)6Rvjkw5`P>fj^EtjN@r6 zj-+=kRfWUFL} z5QVe#RU!L0ncf6_K#$@!K{Joz{f~!2$3+!|s_yK$j&}19VpZqAJuKzjMttsOS4Vrm zfxx5D9v3Uy111}mJ(YE=FAx-E#n+{}TrS-$)nnNk81}`J|R7Rn-ifbX{A|`w) zmrd^|7p78M=BI+0Q+SGA_y-Gh5i!dJvpxJ*!Gv!ADHyn$oW9`B(^so>EqQy?szfgT zPhQQ79cZ%~Xl*K$E)uj8Z2=Cf<-f$1g_UR*5DPB6U>JCUnh(4e#Mm0;$>r}b+g^h1 z0Jq_B!p8|N81oPGN1IYLjUR6VA?`EhV^MgnD*WxNToF(oy+@ZkppS5jM_Y*zuqeqM2pu?i@3{f4=kE#Vt2ijWUh}AYor8%e5gcfMd3247Zu6!ZO|NGk>y86MwfouAL zg@-IFmf$7zH&4Xm&pGr9QV5UjB(byrqS)?d(aNTJfol_o;k;bB-(-d8QpisL7b?Ze z2k~L?ah+}A{>2}}J~&aRu+4)pJGbA3{va3arHFxQDG=Zf@B)ORPU8Xd)|6oJqI)|L zs+5!BRqy*ar~pec+vQh<`wm}NvpHIQO@tMzZ35A%b-gc17hLtd!tv~>wB{(rn4d~_ zVZZ!|k;||9;82`@=}GJIVeP^&xFtD;X8~H5=7F-Hu5{f`{0N zS9XDkQcb5^gE`z}qBW(a^B$YlYz{yt5V{iNh2KGO(NzLUvLq3dda1X={Fm)pLxsMiF{bYA_HF9q^ z6XS3$;pT3Z7)L^CJv@jwxr#4d;ZXbKD)=Ao%YPkYKg5wxPcsuw>(oA$nL%f$IQj}Z z8Ami>=AU$$GgGAe5}}BHsPXW&Mlx#DKEgrnwtX++zrGObZ(<(L{8|zN-Eoj*v?Sq? zZL9@&L*_;OCVwtZh7~HTM%_s~$4NzR^?6O}H#r@Pt%-r;=uY6m)X$A)NQ{*oY)P8c z-65lh`IrO(j7nlI08OVNs8$C`M<8%&h_QgxG?3cO%~Ql|pJ1FeL%f9pEpMa*!asz! z(is{`Nv}OT;Oz2gN9_t>jHu7M0xgJFlU$UOjWD2s%714|`R|xLtk6K3))0CI;rUUu z`M!(mFc^1c`N;3XDij6G+eoTaA$t*@zED#8*qF{p>eP^q0TIS+uPhr~U7sPy9eJTv z#`+t{ak7}{OgME}cOM&QB1ut6iK0QY+Z}CTnH}`sws;yIq(K|mf-3Q{YF4GQvBxG- zJKQ!zEHJ=gqqR>16zmRfZqbduoCsC_>{hlp;xvWAGFL?Tq&yATu$#rSB6W#{^=d`h z!3zABR-`%IWo8drk%qwf#gjOaXzdtJb`t8kn7Jj8=FTN%(J-_PYnwnWIR__*hCul{ zkeOPOmyMS0;wc^}$C#cy9Gq<*Kggrtyy{m`cqz)&oyBQp4-$v$XMGZhww{H%F)Lqk zc&Bmazl>%pJ38BuNTeF(I})#X%Ygr9&8yvbOY)kh!XxINIh!4$~xf} zWgL&6&?25ls8S76WM?G(QB0;t(y7u;SAjmcm@{#%11)3c+K?Jm({Z+T{T~WQR0=R0 zDJxP`u@7xX9qEW*$;8^yIcuLN?@GZp`YQ>cv5pah&F$O=X_3{OtUZe zNO|93nByU362yBve|1-1*biMdR!uxPJ=&_s_}%iArow)B_QrS|HiAd9OnJ_vx=fFX zRopddVAC(O6R{*I>_-+KM6gbh8$w{6r9Y}63l6e#ZAqhvLPrtZv4e>0*k+5eE&-pM z7k@9Jr)=kg3BR}auOvp{VNdwk4sgGX9H$o}ssyQz;39NMjIgYd#Gm=us!ozZxS)~5 zNXtEYIX%Yj5J!NsJb?I`-v`=BdYkYUlx=KWJAw(0{o0Pyj}f9pJ{U9>;!4Fj^Z0{} zMPhCFsGD5n!YR>JhjU_h{6l7Th&2thKRZ=4q_SE`q?Yg4U$JK^46~yj`|YR@U)t4G zEi5I8G(r1LP9k+vgb||U7g1O%ir3)>Juqj7*(O2E_|^9Q6SovE@R5Pj7*z!k3Q4NK z35N_M)B%9o6iIjdb_4WauaZbF`qduRIhpjMWvQ$v8SK*iSKPqS$u9gXs;lBkt1sry z{!1$Qpoy6>ySM1fTvJG`+LqDcaUY$y-410wG^q09MOfD#_kpBg8_im!kYtShxhbS6 z4PMMnrI75X1N)+lvyA3;_T?rpYLYQo%($5B9zwLb5brQ`fuL}_dgN0W?*6n7GI!+* z(XhBP%WhBVd75LI757q8`QAE(Igc%CPXhfc4WcmB;d*4DVN_a~J(eWnLJ12y)1Hj* zYtP>T35n6Fqb0`y&wyIHBvnmB&`N!;V$w>3yDEUw& znq88J-#mp`!&1^n!|G-anbzX?vAH`!dayZZq=~EfL!=Z+%um_rG}5%LO@Jp(v^hI| z94;9t#6@9m911PoZB>-!_Q+0W%eCsOKIRCpJG)4AyieJ#O!Jrb2-DT!cl>7)kx z^9wSb&fU&>bs(qQ9(E87M*-bBvZ#(khXZDj*hN;Y$S9C_^{yPA*_Eb zY(__Nm`-2Je))#@vCK}SV?)c!NTlEGfBR|*#kQ`Z0gs;3ESHm6SJUohIo+g|k9HxH z-R?wcnawjId5I-1vO>_s1sdl0k(#@j;>nn69!KI<1V~qqS_TQ`-H}Kf)wVMd2dd=r zRE{}l`dw!FlHhf`jghd9Rhxf_giZ#cC#>bXVQue+{w~9lXUv!PPVo)iHR_ei72Nz zK3BToy=keIfF~CI-a)$4=vraU$wFsB44fZi;N|!(y;2_+blOtRW2)ALH1-h&G(|f? zI>~)ZE|}b4IKn!0A>*hpon7ogdbtXdB6!E`%;LHdJPpR?bR}nN2%Vd1yIob!9&Sm9 zxZ3UNz^miXpCDvf*ywJgc@0|{ylrnW$a(F5=IGmcuv6VgT$m-fDIZtK9)j4^!DG}_ zU59CYn-b>!?}}8cM{mnvk=;peT9(O{b|*Tpuj1}RTg4XVh{4nB!|dHj8@hN&Wvllf z5yE1u0$y5|^dLXcMwv@+Y$BwdAp;N(hyVlw`~j|jw_0qR0*(T9X<2p_ndi42-^&3D z08;_{N;KCcR*zofn6gpHGN{0SEQ7jhAkO#>#CJD962Jh61~>t@I_zP6E6pZnNi{Wc z;R^@`gacv#sqC+QB#LHSWwmlheVTIBnvg>lkg8=@&{Xhm7=_24L-~eDVU=3jJpQ2$s z5}Fgj?hYnx>A~%+(GZeMA8)meA3`P&udpIrgCb2(!7)BfinF$|D#J*y$E2-z)!V$- zi9hK*VJnLrMmo`)t!&{iGL*Dn&cn%fv}q~(aX3k>y6zIH;t_qm?i@e2+KiCZm#oi+ z6Oqz@ORU-`l0ls=u_2>KH@fE(J2MKhhIuo4G>WY8+y6U4N`ted!Tl~Ev@_xvO>$|o4eZot(vpU3U{%JD6*Tg9ws8#ENn2mB_8g1ZflOyx zz9E>|S+#FTZ?c|^{g&KvuIv;&#t~;F41Q71fMUQ=z+S*&z-+)cz(7C-ARZ6{2nT2Y zz5oT_WoSJ^DWC*!6tEYt2Cx7y5|9b#07wGF0JH!#;3eAlM#Fk_3<4WCYSkj2)zGe{jm3Yd8&8Acjgtusj&4dBbg6U&hx zAmax|qBrpEy4G4ToBZuWH?6n+J(pxDMXpf34WBZ=Q@~5WM*z>F7e<)Bwf{oWQb`-H zW*ZkH>fqJv>SA;nkJU`Kgf#QMU)D+TpVl4O;`g4BkNMVbmyo`M{KD=mB`wix;xcq` z4ePj!v?4jyCCiAC(mr$8$`z!R`kz%O)|CTT^OUV($5)U+^vo)2)Joz_=;Kwa%}=Bw zc+O8hk@_kjAe=K`b2K~m6EV^QtC&w7X$_9pC65I8t>W>F@y-yhxPLQwXvcz1uJ2=vlv{=WQ ztRaV*S<-68;<-wv*(NpRtAXmhah``@#U|9QC5Z~xVUDS58-$trz9`3T(eShs^KU+D zuoff6T*xxllKNWnDSdQOi2CaCleOPBX_ll@JWf_eE1Rv-oq8l3g_K~tY1bEO&5Uhb zOZNMl_v#&!gl%o(&y&RL;SdjhCbz}Te}@sWvI3cvhWO~ub&}3CCrh|f-?#?8Enl)J z>qr9aypo+>N2b%Lm8|1>QbAv@U>!G*%d}txYqXIxp*vTw-W$n6LfN~GWSMFl`paU# z8taNpB!JKwYuUcdhL#TS+Lj zonn2ql9s+b)*vUHOx5(OD#Q;J;ksPXWeu}(%JenXOIt}Pak2R~=Ce90+)jQA&f6#& zV)8}9F8t==SAIDTnj|HE!Str`{vf)SM}VhH*hN|kr|@}_rR~CUv6!vcg)Y9A-P}bYY3X0gcQ?_~ zXMeH8-J}C~$X4to9qF~d*vs8SM_cEy`g=&k#IJbSbf~?*R^kID;vR(bm2n{($!(51 z0~{rpGA?){xz2HqaCa<5$#vene)jQ3(XnGfE^}u|x#pe^Bx8>FjU&p{_k2jX2Wa@x z>KsR1x~sq|qVA-4-9)%z-51GjH95gOV?8u6tHV6WG49YkSQvtB6;i+*v+tsN;t6!} zE6>9*1?G`I7luF=w@^!nl~eec@D>ER`Y!HxxC4o(9pBM}Y;hD&#{DA4z0Yo(_}fBF z#Lh7H1iW$wQ%g_sGxxdC3wDqmj&FqgiHFpkT!=I zjoT3BL|*43ENLQF1pAZH;l< zk1HEd&!_(9oxs?s1Eg_{um0uTgXhW-IzsjiAek)eAc=52d=G2DZkC~}|3M=99Jp7E zX~Y>TBq@|1!4i72~?oI@V3%mBr9o2%DiJa>i|1m~e2HOQ>M(#r`-*qDU62 zb_kK|a1f7s(QF{b7^c-8Eb$OYuWPv%oz!%m)41oh+b?PPafn<;F z?zXSk;X@?I`{#R(rgwju>yMi&ny+9l4nfTnzJk>}Ou95m+S`n(mCbxG+J?2+t2a4~ zr6!Y*ZgTEraskd5zqgrB8!C@Qqj4`=eVB-l^lXPokTmXRq{-VvD8$_OKlS2Xo{rtF ztG}1I6+mWhxtKL6fP^@XO)4ODXv)vl`~u=ZJY6BVV7NPYx_L1>Tu9={0_Idi66vjZ zETsr5nb|D2hzy~ti`cUwQjM-CVy;I>CZwtUM+hZ!?P50QC<)@KiKCEFXDnq^ZKPgx zp(5bn8FBnlA;+F|usp3~uFikUB>yce)kcDjZ2vR z6l%HY64vz;iSlnzsT;Ta^q)!c2HS8719a&ecJmZg0LvD!@>A#rbLHOv*77t7r$ZL9 zVW-Iix@!)5cA7M%K?|5v4B<9y0qb2%BD`nLL4#{UL&DTtgGRy^vGv7RJzky9+MFQ< z@PL_TAb7s}lkGc08qtbB*?s&%=I}p@lt5)T3&ByC!?vC!t?8io>@9v>ZvP1hr^|en z01?mSCU>OFXQR%cT_(n`psX^ zJU}I1R7}icS?lxYJ;(R5x#!83^vp8;>$m6vNuq8=Ead_TBN=Sm1tdRWF|%DDeQ1}( ztl@9yXp33*-^fz0q6H}8+tByVac8$D30lltE|So!og6zI=gw#LN(>EiCR@3C5Y>jF z6J%=}y$u^<>>|B?6Vix>>aRnWfd6=!qwAFZA_bHDK2 z_D4?TN^)Wma-n-;Co`AvkCtyqtwRM-nBk6c53+)%dWQP-Qo>dv=&xk;=`;u6Ad93FZ65KPtw6b0i%Sr4Ah_zwmK}xtVv0Nfe<>YtUqm`JE z>K~vMuFU10+B@NspY2E_1KWeK+hTEyrcNu}&&0yGl;FX_n7K5aW+C(|(*u z{@}sy`6!*g059;ognN^Jn8|WWi7%ZtlPxMG&FbXJ)FWr6jhIP_9Mm+SDTsge@zM>= zXOBxsEbTv&h5bdESLq@Xr_4-Cp2>#)1-(Lpnaukh`H?!$Wcl|%_<9DrbB|2+3i=-D zE*510TSXSlU?ctpkC;A#ZTOqS`w;G%Xzb3#Z>P>888L&||0dC1k7olfV?BV)n!#F^ zVX1lZ6Bfc)I{Hfc8SKY0(#ZP^$0zeRaB|Cuw4A}tmXTFHc^sXS1)~@DFz2yp#AgPZ zbf2{LnaS~E(pGT1%My`%oX)P@C;8$?On_s;@woCzD82xBfQx{kz<9(C#IPU8duh~g88F>Z!z%@*`gEWs2ubJ%IM`W0D z88Q&woIQU875`r|Si{F8jT)M>36DuO^?l9mJ;nsFZU*yz0&ywx36yEbsPA!%LR@AX z4G7G>}$tjSXn9A=&tspjt#;13T=fLVb@G7FYq3#EE1|EbydEXpUS2_CF6WD zc2%_eYcg~?YtTx7%;wDJ8PQTu8PZ2mJ6L$A$Z=bsTj-&fO-u(-EEx4)vY z>Yh$#AD)rAnjEwfn1G6q4Hd2ig(|q7##_V*m)&;Ls_Ep=EM|C4w9Z38HK#cn{2UzJ z#X{a=ud8naU~^Dt#B?v4!euzef-h!$uRVq4T)ZZubtTG$^i zNaJclrlAo3Z5pS2n(U^1-m$nhq$V9RlXZOqMU@vTd_yji zZEVR~(xRy^dYfbG8MWS&cZtuHqws2hp#u=#VA8r>ltnIN(fc~kg?-1Wyu)lMNM{#LvQpy(2nL;ZxMO0ZvUVY&#Esb1J*= zj${OtPD8rl2D`DBJ(}QZvkp}4ME>ANS8qp4MX==em~(!g#`?b}!SwVr_TzgJQT3oq zQ`wq{c4(nnuuJdBaMkTi6)iW}MZaCZ>DJ2? zSXsJLhF&&Zp+h-_Veha3b5^ z6_stQV-`0$gw(UXa-)Ah1DVf$SJUP+JC}L8(>B%LOa(Rinem)G$4Bo|CC9IA6XUUo zY?wQRMF-pNP6r6GbXV~zO<=Z z!Y?r71%6HoR^&^kqHL|J(KGm|=0_igW{sbm_Y|XTc#vhzXs_JS8vfnelJ)m^e540i zGCOiidT)#I)_B&qI^9zD+wsU@P3d!&U0he8$OJn|y@p8ukO&B87z}aLXFN0d(-nel z()O>%TmST@$%K?JT>x!IPvx=+0rVc}W$jy&wxu+7qIG*MI)>2FZ&|}Sv>Q#DWSvom zUM9|lyO@Mpuxydurp0qvqC}U`pXXZtlIS|(?)3n?4+Pu(#wG<@5=>KQ*;sZznEr?{ zH?}UVgI>6#F0D;ljA#4m(z;Z*!*185or#$>uSfULZ7taIdNj_X02NdMc=-?umk<_L zpMF){@+}HVCcno1`olS4YW{A46PfTWJ6xYO@*2rKExQ%R-q~*>+;Uc4pN^*K-?Fc@ zv|*$)LGDiRoalsjMaPE}AB2I&WW`QPjyJDYB)qjNo+9*HKp94nmcGV%{7eXKLQsPZ z=xO1t(%v$coo_%}U~%c*5L#xlQ>4W;@^kG&_<_)!jNc6wlbNy2GM?=~eeZeD?27<9S45gBHPfjRLQl`*o%u+ViBb0`OnUCl& zOYMC6|Cpu1!~f4L^*!4aO6O3alqH1GjzN~}$allcI6oWe6CJ1tE3nbwzzNU&ZH+Fp?)L#$0GVL594z#et_jExD-Nmjb&wxXgpmr zmNjY&>)aJ%SwdslyvC258bTH(Ot6NdcHI|G^r;FmeJopoRu<&5dEb!f7K@J5H=6>eXteVNE{foKaUBnyu-7 zhQxC`EU2V2sUhCP$X!xcRX%?i{}rD%X+D-+2&cX1>=+iMqk2-x`s?VVi7$D}p`6d< zre0lU3iZiIl0vJNbS&s1p_a*$uR-9*70Ajs*)*u8T*9cv09OI zC{>SPKSt6Ubk8U@D2hIyOGdNKP3ivRuXqJlHp%9XlhWSj99LJ%MXMYqy|@=y_YoKB zhrwiyH%$+Y67xTzX(XvC=`jk<%GUNKokp{)Xxfx&V%gGY8bL$Hv65)|48yFb8NFb9 ziwrGBhPGl6nG9P@EWobn#P@cUcN;>E@D@7n{8391V~Rq%n#qU5GU$x+&QSPV(j zGplS7`@K0`U2O@Xs0=P1bp)RMHT%8=y+ywq$p**JcV5+aWLgq4LT*g&ui5BWTC1)i zQZgKcmEN2<$uO{`WGFFUQUfFzB}06)WGFLBhM{a#K5{HiYZ^C^jOFj`7*Wv6AQv^FlfCt)p0Z9BmVDV?-Joo#>0f zuXRe5yuu|uy@WVzzc7MjwxmyMgrmhindK>n^bb#W*?V35OxE9kP7xi;<{9W^+Wu=c zz(|{sIc%+wwg&KgBLi&+JadO3H>u2<6>{(gD7 z+DBd0oWf4Fr48uA5$si4nn}(7urJ%uAUbC_jKHXdbYm;p;claEcxW-&t`Ak2@)Uf@ zG;%mAYe$>cvP3r$yF7_r-b^I@hJt9)HT!f|SFwJyyPDcq%Ou*-y#&QdLhcd)Ic!xD zJxWtYuztz31vQLdYmzB9*0_{R-#gD~FBx_vu}dj5n3{iJA5&;M&lSTEYnZ!Z+FU%0 zb!rdKABVAV?YZ?e+t{8aRv$G4Gzm_MaWBHd!<$QZ*L+np89IciQX$ifv}UCu2z4E9 z{VtteB~8pF!6CZMMOsWErobxERmt}}iD;dvs*5(OO1$X{7fVl??W5M}(tTWNc1%xq z!R~Aa8bXhL!47qxU1{%OtY$}Avw_G9tR=cz_CzBIbU5_uN*pUs*=Zd3YFz2C-_a>M z(j4zVNV&H#V(tMl(VRKfs~zc1B~2L0e&|eB(ON^9t_z(--w&}K>O$KPx(-F?MxWG+ z2XQLeJ00Mk3t1I4>JT3@<52zkWACOX@F zv>dr1I}7fE;lPRc=;|Q$We>WP?ij>g^q`&TvOz4RCj=aG6E>RB{d-A{n*~v7YKhHxhD@jp_pq zGGaE{*az}$-AU|TA8K+f9g^*ZXa0t;@V>MgwlBZ$O9#_&=<9vy_cUW9o1G1DKVl@S z)sJ?fwMVj1{ivRLk7OJ03nlH1el$aM1*53ku25WLu{oH5s}5m9a7ny#b^#<6e4pt^?Sum@vksMI?LsZV=hk9CrYebvFFr|f?6+1)jV zMUSO1^oQ~6>#_8!<~r`LrU|d@)Hz_b zOucigS>MpTB&2uFj_OtNtGh}4T()h@U0i+p>OSD&(^ZP;UfZT~hCV};Rjt&xv=1|l zLpWg|n=y`VsoAw3(%BTM?h{=|GWd5ik&1bBb?nE|#?u-#QyfT6LfY|f*&Eb}{g`Du z9bL1*zXFME{iD_XS#iwn-(`8}2MCbcEt`&-=0) zlW7S()R+A-1%=$)m%W;TM*gWU(@v%B17`66QXrQ0*CZ}M$!qEYwB`xx+^N);1eklx zwfAkHD9|XzRQbI08e1i;MK9}N3$iIBqMNU=mQSOCl4|=frwVnzBc&X-+-xt1 zn)vMRW_;4q`s4@NhX_l0PWqxZ%a}uJ(eHa&N6*3daE<7N{Oh87vTJjx-Mzz&ZB1u-Im2l=R>F(n`JFpfP4utJtn=*V#Nz-O&Z>V-Cs!CsROeR zp?qpV2w;Xq=toc4yG2-K3yk$(82y+y9x({kHs-yUe(UyfvSh%iYon?+TeKJ)#CRU|0sZ2^T{aWhqr+;jAld$cZGh-@st0IFWSAWD!efV~t-=q=&t;Hj*Y;oymVpT@$FAry8sJ9KA|1j9kSkmeUEsNE9KHO~RdltVy&IxC=A=jzSf47o@(B=PRSGu19sFM4CBHz8fS zvleUVGdicGwb9S?9`&;QUB%?-oSyd~HQvkA-r2%}H$X!Y%{FYHHKAIuZJ^6MwjuUB zKrLil@qrEANXy)obV0mWL9s3@a}ymI^$mBoy8)wy(frGDx=OZB&~~R=I~rcUu?aHJ zo)4(AA#x!1Pm}JzF3fE+ZR)wCD?;eDylxj3>O>ZHWvQEK_bTz6Rx0)<#x88{W*YDL zl}t6^b-PBO>erQ3*+RQi@%uzowF?`%g~qx$aRfKgAk4aj8l6XC26261t=K}RDd~-) zY}$4zhM0#ScXitpL;XcN^R&(HF(jNwc?KN+(}lgyU?tmWWM^}KkRO-H|KSw6FbDa) z|C0a7ozwodtDC5u%v0<#{VfLxe<{z2T>CHmoCNwROVhl zn+UhjUvrtcfPxv1W7i9)1V&O(KuwS?jfFJGZ7MQQ0-~oa+2BGN<72t5>P0fM{cr?S z?K0e$X%1os3Xx93PV8MF?TgSoi)gJ-Tb5h4&o4z{fZV*r9UQgk@fx*x+~N3Cn@2ma z^+k|9W*=wwis%l~&AQ|W?d^nfPUXkxccfM#Cs)6cip`1Sgc!XhahLhe_m#_f4O?}R zcA*VAu=10T2Aw;wA5PJ^$b;rItsb{3-I3~_FOceThvQSKOStoY`ULqVUZPJM} zsmPx+<~UcQkIcn12Jrv$%;O9ViW9kq`KA4ndgQ!hFub(ndPvdG5ZIX&mYCtRx zZzIRPJb*TdN9vo-hMb}PqMDuG_~H9G=uL^5r2iX{hiii+b?1P{Z@8-L!CabW4MRc!OK1{k4u<5>!h)eOOWxZ zr&-%v!i*PuE_v9Dv>iTG@_pRqNd!VE#FY%y(2iaX{dH$Ncav;gb(uCKs!Ze{7vRNy zzk&txfK>LL|Mp5{b*|EV&L?h2hCHM7kE?Vbp|g6kr0cW;?D1D!N6qbR&yHTF2D-jI zbG|_*(CO{jv>RADjB3w*yFvTWF6~*&O{k&TwrAsR(iT1~+M_;a7tj7B)?-sxvYIq) z&raT?UELHWBo8Pxu||JTEv?#~W&DBlPI(I3_6J0!HJ#X*KQQ_VS~0g<^bqWZPu{{} zY(vVP+jJqNPAQDtrH#DbCL{V!of0;ht=OfzbQe9A%x3>d{lUQ2{)tRmli7(svA$fF z%v7a_{B|o=uM~@_`N^zHDYU*8HoBCKb$i+hI*q>d3}gDT_oZ}HlVl#bRH%tAR8Q3( z@h5E@Zmq-ZMaCk{pqrup1|v zYpdh+g(Jy74qSMsQn+eg)JrM;1FPcHKqm|H`I}zx_=S5%lXjs=N6Drn_V#Z&na)hI zjw_>^3C(zJZSa5=5c*3y_V6EiosMqDPCkUXt$#a)H&h`M?Mp~&)k=pz;P#=I1(AV0KaL!Ls48rPQXc}gRi4d#T}TA@m*C|Gc@N3ROQ%h#ko z$D(!uo%ATLKon4=z*81Qr1bvG8Ke+3HM6_kUKZEvqR2r-KoZj%9p8(>U z6dVzfXY(}X`~n^H_crW{7tp1gZo|gDKvm6tVBPV8o}$#P4V&;9^GbL;OL&9Tv4xF% zLqE{(6WOr0Sc*D)W6(IE{L0^dxOs*Ct&h(l(xrS1AL$T5){z zTy0vY({+g$;@LWtav05xX8~@?hSdBUYwf0dNw2kHu~n2!Xp*OOcoij10FP^hU>F?w zVhuXV7>7%%FV?~}sujDSRvx0}R@Qm$${nQ96%&ZN#%a^kQ<3sT?#fAfnqf>&=$@Ds zedl?6kJ&r5Y5d~rp5%;)4fj+Iq}xr_+n&k~sCW~*>8-RiQ1D=UtW83HIub!X8sQFg zI=+iKU$yJc_DojaJ%fvI$!jAk_EE0$D(3#56Fq6PPN}N=meBsjMb(s3swZ+^+@pDe zsC`WX<6w_~jJGnfrPY+dw3(3=R6`wVj4aqssrB;X#QHN4a$hDsM%K+wsSz|EVD4v~ zjO^{DxCRdy80+^&z7T?6kjf zK&)+pQW8lH(G9ttmekWYWpAj9DR>fjU&`3B3?eYyV!9HASRj;}_ z)CnUo*}z8BP=4*-n8&N#{%&wc59w^ZyP|h89<3lD21Wvu{XB}1ffztU?I1&NZT5A5 zvPH;BBheNj5QM^lIQbVg*O(;tS2`}l$@AV`s9pk;LEgVqqHPZJra0zNQ~3+cg%YWz za;FphK8}shCD4@&{wh_Y{TH!FOI21rBuI1CC(ijsw@A7 z@Ehv^M~3X7#uGG7q+=XQ7nM=YdGR>n70-SUmBAROJ4Ge-pW>{gqB4WPJ~cK-*@jrG z-vucxN?H(a^{B4|x66yM*4HZCNk9n#JB0-q2-@v$SdKh}dpUI3US^gOqBPX1(gLY# z(_m|^b|TJ|j(zjxT2Qi0AxaI6ioxEb(m?CQFwX|c>a73kiM-@CP=+K8fTCfLp&Nb=Gzv1P>#*kylv8MN3pTnT;uE^EeGM^K zm$zU|LzQvSvw7;cQ(BEqIYZ9Lomi4ggk&taxDhp(A``%{e}{*Qdg``=;X6`X$b=Tw zEuqS;PBh$Xb<-(VDnq#C!EC_52-yq?#uV5og*CMhd~P`v-`a5_rYY|(324F2M<{Ed z7*8UU^+NT{kh{S>bF7#{SU%XhB}H|@apNR1Z+m9=)fB|%;UVcMeSSI){Y(gKwpx=k;C&wAiu*0+0=f$k_<(jxwyPy z&eM8ZlNM&r=;*ibx!BNAjB30X!|L1B+5KH` zw+U&$8zrI0z8>RcBfzv~DwKmN!tD{>8Lx`v^ro`KkvqTbL}$ER?1c%aHZScXnyfZ7 z_Qtdo&pXoQgU_HYR6jrWHZ05YRGeO^AXhg5Uo**Ih%X+A8I=4kyNe47ULId@t&rL= zx=9Jgnbyp?BEB_pOVAVEWjf-_e#VRJ!tZe9=8i^e22-V*hfII%0Z4pdtm{}Pj+AP&@O>H-7$~#M{FpvcP zrd~U@$ev6?;Atn<*?zOKhM(C|ZF>Q?$n>izgn5{~yv2ida+p0ZE1SD*+kjx=FR)W! zjS`g2s$E~iqdB5pn>CL|<0me+lTB<~g0jX$^Vn+BaL)!R4-*Nd6TPI@6lrdZ&{Es9 zYPwvzn2V8oA9kLyX*dj5byMwVx!F~P0B^0Dn{Q67ru*71jt1E?twi?oq_pbUcXh*n zc}1+;jRP&}|Cvh~y|)zi(#GG=tEoHlZLRdr)SraxON>){ZqTcWZ-C$A(-U5ItMr^2uvpw36_U}8m- zHb@d}yvRGA1$Dgc;06p)DQJ>G-tw1vPmxtN=DSQQ5qG za0Lt{l7kF}BpkcO_qZNj25ryExtxX&mA8=cpcvQxJTQ-ZvUxa8S``(4q-w^bn>wB1|JrVEND<_y+EWV907}t4`8@!0>JepKPov&917%$r0 znzU6m&0m&COop+}_w3=wKq{ub_4sYUmb6hyZnnNpiie|BZQ0C*Xdpm5z>i+=CC6Ub z&1yx$OS^c>u2&B?|40&^fsc`6xIE)`lJMAWN^hU2&D>l z8sc3~?-b&l?c-#=`P$XHUO3Ix@TDq_+N{xq)>ImbD_*ye^lua7Kk zM*gSIqV0G2D-6<_sk(CX?>r>J?a9ek3lR$EF7!^g!NW9h%~aBk7YQn>Ur#_pln)N* z4z7<@YO6*!A>DYXV%6ZqQc*c-(&B-$YuFevt=dF7@t8i3I2;NDzkV7^R3iCC*3}VL zQ4<A=Lp0zu-@W?U>DFG^ zk|!&;byi%=WZbhDl4im<98K}kU0f$+ zPN;0+5prUuj(^Uea8Y6T6&bA5D)Uhv&Le6sH! zHNN%#LZ=NEFWX67Ijut*6JW*<%x`ugej%gw$;lr<@<>}94|X=~rkxkPhU~qadndfJ zT;DYR8K?P-378@#{BGv#R_5zxyu}~sbEU0lb zmH@G&s8N%+8chNiY(WLmG|>c2q9(Cm#{&ER&7!{V`+eW@{CS?k-kCXf?$mS6oH=ub zr41EZlV|Mhp`t?Wv28=e)jiaWu&go@P4Na=znVSL&^aZqJM^&zh4?+T!k5jkm37|5_9O zwMN^e4lg5Rwt`|86c;>j+90HVSv1HgxHgK zvXdjk5dT>pbGvBny|2EBbbPT5%MzigR(6N~vD-MQXuj=20+?rt=s#+l4O0!CcB_fB zc~MvjOgKBQB(B8k1#Hwenyb4HIaMI3rh_uG1Egb|KLGx!@rUklvD5cQ;%C^3q-u$H66wz`>I_`+fCXIArVYoJD|yk*Ta+#%wJ4hi0=O{Sk6Mmh~sklVZO!yVgZXNR$WgMO}iZ(-7e|>Hl9&#OY_q>D-D(O7oU@l zcx9ag?+SZI0&9=z7x}AdF>_AvZH>ZG1%6fqjuGbyO;lvsAZPOR%M`4!V@>)lY@3+BOYIQ#8#j{NUkN4EiU@OLoaWLwv9xDcWCGEs$iWD7*ZK%{g z2AaMftOl`$GqLXDM4y%p{ME=T*-MFJZ;TV$3f4hv!8kE2VAS)>_ELF=Z(k0*-3v(N zI{vyE9rJSNee;-|A1A8AyK%ios7t&^y6`8H{E;jj_7{@kKMHj+RJrOXG1`PG7tJ|! zJSDJVd_(khkK}QI?cs|+-x-x$M@m`T8)7fV1lVV!0LHM@Z-_m6*X^z?o>=``&9jCU zSCHNBqTxgoapv#Za3*YifJB)KZq17VsdS* zFx=J(d)b0ikf?slk}4{37q~# zbwed8cmNWhhatYJCVnoNxZl{4wNDduZijeEv=eNMe#16Tf2@K=r-^M^&PEYz-}iXT za?(Wq_`e>aZyeo%3Ay_z-XIfp3+lW~m8X{I`jB^QT9}Y(v}rDXBpW}}s20iMVU1vj zS)@;Sm080hBOj*WJOb1VZCWWqy8$jB&W+Rp*TY&*R;5zxq?oL zB2)GN>9P=+h;HREW5@&^bG*U_x}7ASNfDpg3sb(-bHq5{F&d7zli(>XaA^XOp=mP!)B2U1H2n`h4Ej zCcj3mMvUPqMT1|X@~AvKd`_mPoBUI^!|h~I8uQ3b#I%BUP+5%UylOOWJDiCENjHyr zgga_f2f$QNC>TxL-suQqzJfrj_cS}QWH;ye)e>ny0TaEiQJjk{aK|7Pma0|8KiJn3 zMc*9D-n`Mg7}=8=3nn}u7k4_utXI2jo2>k}lPf_g10TXmiAMEqa_KX0Hz(CVH8F4j zNjbMuYvP6&VLYTiyVKxD4St>319xb!3a&ST5a4xLlI;ra{tG_zpEIm{bi0wS@F7Q1 z;L;Y>#(^65!uwiMct|2j@>!wm9wrP^s-ecEJG`DvyF{u4D#T^Py z$by-jnk2T1R%5xh8b)!|jz!A7$K+Il7RUFt8H^29Y;r}cLFq_EgYloo&<&vl)JAaO za5V|#35kC(WwPky{QF~*otR_?6=u4fRKQ{-n7EiYCuSqvDxrNMaOu~Lpq zw1Od4h3s$h>_uDl>l@O(d@M^N?Tm1Jso?e?wWflQ#?`!GK7Sl6?$zJ~X-#7=+^jy1 zmbC(T!js_r(Y-K1zn4iEpotC zmKG(iDbhy|nEzC9xJwZ4J%i$^sp5Rdk1d}njH|=V@Yq&vnj> zqlt<5B@zF05}>(4G!>s~(%dR%vBA^C%n7}B31V`ltE()WHeO7;nbwfSCpf$j$?2Dr zg0jX;p*3h;rzfW3Y2+N2VD!H{)hf8P)hMP3Hmb!p!>j~c4@;uCS9Au{$Z!#(~DeV2{S}*e=j$*=m43y!a)(slLxv&Jf%89?id!xbU#4!{SKAG~AHs;e=8Sdt#hzB^8B8OY88# zq~vXfvySY{wok6I$b#g57lYmDE|l&?li7_K*lruZq?s5rAG1y~MejCJ$P*t^@{(&Q zO3UHNZ~lbr!k!ohS;;mwZl>7ZzU>oZ4=a54?4K#d1Zxl1{8TEa4qP0&X`LYZHo{oi zc9~G%Hdxz2Jh10&yX`({&sxnAjUA4cI+B~?%c5u%@0ZxyRRy7@;7U{N<@(!0(tKh7_;1`I48rL5waCe?9dO`snmyIRd1@>mP zsF`TKc?WwRHTbu*-s(LIS38jGVpVo*a>4aGIQDbl&dCO=s>-nNA^J%_2UfS5@xGxH zYZ-mk7Z4%F`|@Q?NK2KfBcK7S+y}oM01Ds*!YY{K(tE5aTQo#OKHjU+x)#D;n-Qv~ z4_2Xs4%n7AUblv-NHGt>b*xj>3w_g5D9JND>=OsD@v}w$7OKyo7_Irqs#mk3*;r?< z;<&+1-iMy(TR*Nasf_303z!t}*m+LDtsI;tx!&^DyFE6Z;W;nn@h88x)||91{g?l@ z`^Q>SXa-H25S{ zyfFAPzd0DLb<8+N^yxDE1J00Uwb1{$*Whut%^|Otw zs|t4i`(K&`&a2=^j}3fN42T=J9R*V6l$2GiQ&$yNRL!eMA4vM~NGypnAO2rVju7#K zXaQB0g+N!~q>E~OF)`M$!*7aRi3C5aqSE1J=@F7HCCi?fT~pyR%nJ;Q%eK<)f54LU z6)f~Ev5WKP)dl8%N@`1G$Mpk}B{u6V(aWhVM_d1C6VQwwvGs3>`j*E^`5C2T^YVWr zcK$7qd&hsqf6`dsT!?&YK8sX!m$k0&>!x0c71{zee6Hv(6*Rmc1KHxaVp}qWZJ8@} zBGcI!B$&+iUN{MRYeONn8_FVx9T%(PD2ClqSUo!F|2~R|MR+8yceCIGi6mLqgv378 zNPNmV%@ZS~%D-Re4Q$#xYythlrB(0yEmBBk7Z>H!QS4o3kUwpa70>uG55Zr#ST;%V zzU~k$YfeTW<|iIwc7ABKe<=OYWaq2GO|T$ExIGZw6P3e9;cgzj{JytkV~`@cXBj56@`YC&V(0m(VL-@uf1O}8sWXtrEF}-szy$dGYIVteXRrBII zTwgMgPx%v8<}d2jApRo8q9S*0(Cv^vQCn-G{Nx5C35#DmDHx$1JdZ$I=-%Ng6Y_08I%xT8FW||RK z%xT6vPBSnFgW<=uzk)jyo;Q--EdFgVaH2H*-okpgI-WKB=bE>(fX%U&qvzH*K^F!Kx+5%Nk@$vdF^|F!8YJOtfJpAM(nVsD zcer5fU5AF)hW*Fou`1O@{MHXOFD%RWF9+HQY z)Q@ZG;Me6BIX6?Iy*8#;UJoOR;#y(a5MtmNXr>KL793zfC7X(WAZM2&>Le^5+y`lN zgXKQlS}oBqrnu1d)^$?B)8%}g#SNl)`Tk|@(g?46{7t^JrE@2RxI7rULbKU}#bOtY z)aQk(qLw$1ATBB3QU~O{gmkeL@E}YWNhTYRBSw=Vwmb&{?FzOhM;uLlWMVEN$1`It z^xgVUOU1YB&o4!B^^4g1OR=KSY&R)TNhkI5 z?5H70?A%hZd%r_Ag!BWN@gCc1`}vxZz(>eQzJX_Ku^rcy`48>q3+x`84?->(p?*Er z)I*@F1E>J{5H@(37^Ho)O{27%*H=@~Jw3=%ljeh(rBC!Eu3T}}4{1IfJDVth;$ZtS zv3-s=&s3?i8WbNAw*}AWQOS7!EFnZ%?*vEO1o^CW)Em8`e1LDHh;1Yna;=S zKuq55CfpI=RgVyEi!xMYndF1StvNWsP{mn}6Aukk3Kln#&p#-Yn+_)LP<_nzYfGm# z4h$t-@A7vqW07#2MDS;52P&%mMDKOtq0s-F1Jd!Z>;!eEwvW;0QxMS%pMe?@_+J_L zu>pl*f{z<7GB7{0PTB+e1dP-JfFpo1_C=u>5FJ$j1Z})+_U@8NcUy2wbI_S|u?2O_ zL01BAeL$Yp9CRn4tkr7R6H4jN4d+v9&xeLOnQOSEC7*N$S>kFjIcFOGesC1z*E@En ztT5k_Mm^UQyTX5|Y3B_xfv0Mw(W)eE)WY9Re$8E6Nhz-pZj&+12$Buq{L;f#{eG*I z{2Ji_8P<#-*bu&s+i%5{;L@Ndo z7JOOHU~+B=D=8K|*xogwi>u#OtqEsVmjT6_{9IW6-V4@w z;~FS+QdOUViB@v;J(GH9m1kv^wRuzpE2K9swpP)f<-7df-$uZe^k=Z1ME0_!={Z@Z zr0R8Ab+C~bY)M8qL_<;~PpXZ#`U<>2i^*i(THssyb)uCi+I5H+II{kaeYNA=HDNpp z#9BzGE#oUpT_pMq*6={>jJeH)Cv~q2dz@T({aj6c;m;0(3sa$9`q>t*YgK3}_|958 zt(Ddn%OK=jgRPdLB9zC0?Jp9$3dKX%^&-(f;b%_apjLqsUrj|8$>A;F6KdM^BE?z% z@L8?-AgBVOZVP)2uxyseTO0v4VA0Oyx1W*Sn{02xbZ$2s0lk9&%eo|bvsvp!JBToI z*NYuo*V#(<7YyHE6e`s;<8`C~6=|>U=ZA*>i zbPr14leb{hVt31`a!q*oQI#|nA9XGm^8#0!kTF}a(#dqCSRk~(sAq#WiftX+^DoM^ zP(EaB6!W3QeYjB^)anb~2({yGaEV4=YcwUYj8_gt0@L#Z>6{Jhq6_$C`VbQacz!onY`(+5MCz zp6I@ZsQM87O5v4Ag5Y2>iHLc0Hxm8a45Dut4p4 zN>*v&?fIhUKPD@l?8+9HnoF$fd*D`MS@C;fco+5VrrtWh96)D4EMOR5Gav&n4d9?w zsTT6z7&x85?@o)fRn!S2gc-KOeB6_*#E;OF%l_CdCX<_%9y_pyL$+AndSCpFP&N9B z9Vih!*|ZYTLF1i^CWLELOplV5#Dj-yB>(hC5sYzoF$BRdW zU*oN0cR1cZJOw0*=hubYu;GpQZ@f7yt`vAb*zi8L;SC@)HoR&7jW>?%;CNr#@OIen z-XO&G6KiaHX-{5}xR^{x~i28U{NB5q4E3lB9=4eBVK3kaSmd}`ylQiW$p zqqD=a#Gman=X?!Sz7SclKHVvHF^=M2(MEy%m7I{BF6l@zkGKSbJswp_l5D|v?HC?B zMF!h~W3*_fkhT13!#*6HlaRpP+b2dSm1~hwx$95az2=Q|e3cSfpjPpjrztKLrWatu+}S6p zLx-&cTEWgg(G!j;J}*NHRIz+jW13!|DNZ2qw)E0J6;v`RJTgv?xNcrGJbBg00ha(~hnuW^2$G53?0ti&I6H{$A z>G(Esf`ubrVq~6nBSEawQOv^@?1Q6_?KZN@N5!_@%l-sX?YUjxC>@;MMV{GAJRDkRs$6|Pj&}^KsWsCCQ%Mj871?1+jV?4vh5wZ* zno6`7W@M8sbr4cl{#PnBl>}qp5u5un?bv`qlX>}nB}=A~5R65#jK6$SubqBTK?dxr zV`3L_i9I-m1x6F|IWBfoD)a82zI{o*_l4{uk7RF;+rs0R)2-o{eq4B3j2v3Eaxk%a$v>q zm8fxJJlAc8!V94;pG4u64VG)b707kwQzm|a4d|LO&{rL6S1$Ini#g*LbMpopS1$G< zGTV+QvV>hK7X!v7bG;$fuSvA-C2l zO{Gob`dlCdFTCuIJ@13CR8oQH6LK1@C=AoP_nk zhbJ&rTQchjaTs~bhJ6ca_zT9Y_C<*_Dc!-W45yH1k!9s6(N2Uiz3422kJD`b zSuxhl@+QZgHrPA8DcY$YA+b#S4ySM`*IDwu6W554nOrZ3Z@bUk2(*5(M$zG>LzBNN z)au(Vh;!g#z^xiOxk~fBP3!OKJ3rIthM9J+!6c2T7Ke7K`wef!^W()D+-Xx$KrZtL zK{s5OmL0d*Y6y%xE}8ftym9R1m^NH>>P}%*c#$J6-gljt?0K5&7?LYE{h0ldeqgj-70W$0*ir;9q3 zqMijue@`zaiTf9F8Xr*bN*V*PFD83A0>A8;uS74J^V?{q?PyjB=anwZ)^eYucq@BS z!5D#**fO*H4)4UIX#xB9g;+vXT2?oT3QfIvfpNiC^>B;{^gq5ch|}$s)Q5Csjxz1aN4`vb-Rkjz4Otqif{zo@j!l`^{0?W58}wa zcBS6#VslpJBUXs!DwS%EJG<^m4c-S(ojQOj3FkpLEX5fTPZs8eo1d?;F>W-_@bg>9 z*6y)Y%6*76g7T-8e9vQ)YgXf`COEoFS72<=GBdTyJBHZSaH~MRW1qXxln^c2|03Wx zKnM5`Fb(}N3E+U|Tlk#?h)H5y-D#(`+s^S^|G@>M5*A!qO<}2iII8d%o9j95)X$^P zmOi(Mth7D+%6BQhaHm6j=h(uhttK@MI12PrKv}O5OW3WdYvc#hATUPBwy~cji zTvl#CGV!&ckxG?|jEY}pR?_I8ZqBS6nY~4Z*fQJJ80_~lvwb`lWpkregFy{9PhSFU zA+G#0dBa-qBAez7!f~E$^rmBsF&GEc$hi)16HpIOp`BI3FeCxtfEYkOKms5Iv$6Gj zm1-8AqwsD&rf)_4bHaIdrZ`>w%bFy$GC9j5jhUVuVMuVzO2*i#BtwhYHj1C|O5tIf z-B0GUzj3QB8O9@|tJc%)supsIIDv;p>$rAV_MT_Vj;HDIty7$2Rl2#oFq{%E{;gv= z?s6xCxbc9@erQG8(0Oi)3WXH{zWRs@$leBf z#3k=-ax6MsR26laO>0dZjIFDX#E*xadsH*635!nR!DH~C-^pplp6?LC=36NO@H*ne z6KnCsb}i6cJFF0uzGzK@Lh8`IHv#p427qcf#y`LnP>gUHpc=4l7_)0b6UY~q5pC!+ z62FW~7P8}(EPd9Cep!*C@{V;tgh6y8c|4(Cmd~(+m^uBkGKc-9EV7b?JW^R`CG%~s z?Vg+!nWfCP_J}r!GCYE~_)u>$lLh+FSrFBk4;@RK*&`p?5gTU^ZzJ0J*;_S0%ien z0qX$8fDZu&0M&pPfOZU@ed^tgOt7BfqKUe3TAU&vKc3;CjW6`o z2%*z^@>Ea^6O}VPTPi)R26+gi9ipbmAsU{eU4%7jXQS+ppQOsRmor;ADQYY6wSCL( zxt7~(#gZN@PfgpvFY;D3ZD&`HwsB3ie66Od2&~x$XlSR<_p*_d90+emV_YZ8aH0U+ zL^7Ha5DrKM%mTy!5|S;uH8h7fb>ie}5j0TRL#imHf)NpLe!B9{V&$%ec9O_~#%R zZ}j>v)U&*i1iAI)16nt3g$ntw(Vuo`{jDvF(w2#{UnEI#rdJDP6qJJGU)DJQBkUR* z5kTjIeAWa|AH!E!$iuF|T8%2z@oJ6048pG(zpj87fC?}R5DrKkVQC-8TWm1_N*W%azL?D&bGTLS~23dGJhpE0p@%?L|e(MlkO%8VV0*cn#u~ zAmPwRG|_0>G2=CSaTrG1wV7zk{oe-A&^c132r=q|r>0$R!*r)8jCy*W9m7A4TTlx5 z$6@ylLduSY(aw-x?}SnButOYyI6RY04rl^Azht-7XwKs(g$^>5YmiFyxxqii)xZp$ zXis#`j86FU1D<8@ZSzI3-);RL)?iQVZ8`Qk4e@0=J5m33eNG}7<+;d7^v{*H06(n9 zFK~%we|4fG-0ScW*A(1n3n?K6zo{u~a5(k#KW58W#?n~>pP6lW2=`DY5C(y20Otf&pGlK0m`gd1ZTJ4tk+aL4=!MPV)1g|X2hh!~o z9^a;kG?t-OAjVS7c|--yy=dO9e#afF%` z>S<6ytr+6u*onN$RvW0|@djrC-q|kAJX6Vjj9FA}psiwZ zY|ZVYcYTVs_h=3nr#8U74-7fD)4LkP&*kw+E`0ujPkv@4b8O!^WF^_Gbp-9ub4qhT ze6Bp%{+sfl^`fyMjZENirm&-0M#fkT!1T}H9!r}0ulhJfJuN^fOUWafNDS;pdO$ajduaAfN(%A;);=H z8K4eO4>$k_N4$Iafoo|k@2ANXY4(n3*pRlY9j|h3Nk!Im03%X*ksU8Ig2ssDte_+MmC6 zqN#`NtiH(O`qeZG6g8O{e<)uyT}yL=XmBTznmK*$PN(7=S#ft77j*0dkii}+4?i$; z67itv(^|2|Ju*CAksj;go}iQaGp8Q3b%%XCGEx7;M($fG)3K5tLOzgThAhvy|u%3EIKlj*a3MbYHExtpq$u}x^Ee2%d8|BaB)gw;z~542-G`?&}0#>JeT zw2jjYj;?jFvDVeBOHUfrKKNT(lwmzhyz^C3`1GaD8~^@*))FA7rQi<3f= zN)>}alK?0NR0HY(u46Dcv3jcqp^L|_8sSv@hVytp0w4vD3*6MvmY<@)&v2<)STDMq ztYns6w8CZ7R1_~VTIq*zKaeC_miMM11QO?GF&Iw@`-A^rm&J%5N7je`G_u)7I-z65 z6ucNGfMsK6?i(KXFxsaoy+t6*LMKL@lf`>`ap}@TaP&(|G|^tJ*GB+n5PaE(x)@G` zz*;8JM6;pw{nkX)&~E=_qK5IkD}bX+Y|>9`A~SiON@f#$dQ9Vw#=8$~!cnl2-b5zx z7+F?QoBjb~J4iBk_%+QL-9%D(1op}*wGWiN56H-J1eFgTkP+#YI*X3z49f{S`|)<`|k^PT_f0 zh7k9;|L4m`d3JFHO+4$MX5>j6`D6&O=g264(i}aH7vNL~+53ML;6omhHumB2Xt`B( zzk%s?a?8x*z-{Prw$@DT+I&Bme`6Ykm?{-xWfou^;J_HmeluM{U^y1immbH?O?_Xw zq;2amV3$w250eQm{s;!S`vK7sPE8r}^wNo|t6f{4fy$-56^4Q!P*K0rYEr=DBtqxmX^VJ6-0M?-p4qd0YddVp#y z=q?}zFbl8_Pz)#o)B)-Ns&SYafY#$I$^Gdh;xjXaahpYJ04@gk0r;`SQyi6jRz5E$qN}7 zrL?!rM0?ALcsiNS*3iM2bSKzY{$pXQ`OhcpEB^C7yFHkW?wC0dFY=k_3`t--52Qr- zTuGM#tE=ZsjINT!s|nBfOmqgro;`#{x~>`q9L&V1P-i|9z1guLbOyGYLJ}|&@3VpY zryZM?K>Z9?zXqzJYtlR7J}92G64Io{-B8Z_*;sVXHY2;FL?uZBZ~dtFH(`svJb`+I zh&=t;c>)KdnKN!EzD=Yl6EQeVk#JubSWg4NZlD68oo@m6gmc1(NnKW=f%fUQ0gYTDm&e z-8*KTNxPKzxACdo%oe54&MtkE@G8V#8McE?qz@}gq2@M+cz)62D-)U03nTo(D0;PJ&gGLlJS=t8flB`1Sao8`#Ffx&Xd z{E`(#Tk^2MwrLFH>nrTY7;x|(*~Kw5AJ-y{9!p0$+3}o!-3e>ecUk#ZI)&@m$3ZAC zu>|~d`Y8bjc5i|(${7PYttcWH#}J`>*ton1L{ARxtu;nF1P?j$hMbSmhq2OeP~5j= z_s2o>>&3dfff1_3O&4@DX=SN-gPtJJzPy`8Ce5}i)>2-yAmD+9Xqg>3Q!S|`+fzGq-26`&`NpG2du)3ag{#QUEtUrnMa%)(+i zi51MEK`lJ9;hrrAn*X`%@GLqCheO=5Xy?`iTwxIGGF|Z2H0q13I$@A=dKv}o7@I|- zvD>jVi`GK*KO-9w=t=f@Hq}WwLy=5O1W#h5wC4!=d;4JhW3liX5Bqh0ca#(PIz z`1XPHD3?>-MDi_mZj?%na!HKeaF-hmc= zJ^Sk&T1L_>yO)5m34f+C@1=Am=IYX=*bY0+dM%^>a(=g*9>z$%x||LpaF@|_B|T$* z=o5TLe}~zvqV4TJvIYKR9aqu89yQ~GjoRbE`l{MUqjsCx&lQJj3s=!|Q2ZZHhwLXlQ<2t7Gz)t`(iC!j8WHl9dt(1*y43`jaRD- zTiwpAeqB4Lh?r7@)(K#dMOcUuHlYa9f>_oR(Ut_84eza|-;wQ>%neurLXM#CqSGT; zmv_;wSN2SMmlEOPS~g=7?S)m_zD;PSJ?#7@2%aCa8=Ghr=GRCDe)Ygo$iT0#qxaEf zD9%z?)nWjRp40?#HE zg)a>4PFhLMvO7Bw{D@`kq7OmzGk0Sx=fHOCMu8jIsomgP57@okm2MPnZjy$dB}{RO>#`$+NZI%a8?%ST>9WS5+&Y71kP4e7`~>JA=cM8V<_!XOwP#h# ziTc}M?hw9Iiiw@y1F8qB;18)r`T;EOvL)+7x_~;y;rRb;xbJ^Nmh>3g?TvY9+);qC=eYAJ@p4}*c{xs$t7(!1TkUhsz?&#Qw zl<*+Dj$E+9QBt&^d}GA`o4B9$Z=HJ3RPE&j$AkztIz4fcubIm|etTq#F;>4R*1R ztp|>?{BnqPC&Kg+=Jh#Mgp3jv`8nMKN?Z3ib{*7~L0{0%1z~m%_UU5k#abVs;X>;# z*?=S9og>+_BcRO#*vCic0MBkcY~S!sa^Pm)2l#MlZE-kCJ99P_eGF7>6PtGoe1A1- zIEMK)%5w5J%_R^;`hJb>9?H&sjs5ISEae--joLNp|gn}Y=upD##9-CZ2 zw_=1yC+NozoDZC!eFbScdx~EWP2;z8I&4Ni{T7PfDAuzQRH`*QSBdJ}VQ-$KM}&gz ztkWs_Em>oEcnTVJq2E$As~pwxKSO=Qg4S&;rZd!wh?0F9HtH-5L%~;^#dOEyJ44W^F_|Ej@=zr(z1sp57$!q#Nl1OpcZ{Xt9n)nXzqVH0XG8P8d^)Z*h#-aCL5 z?J`vdX~ct_`JTSl?$&lhrI7n($<7f@ci>Z#7^bQ8Z*vKCs3rFY>Po;hihiV~*mWFL zf5(ag#yF@&3T?r$i8j;o6+AE%nn&cklt1%3jeH??ykiT%uS6i1uW~G{exip6)GB9x z#t55gQ7(d3lckopOVpXT&)SAJ;kh_Ck)P556N1ItFLb6UfyYOtX^qHm5P#<1(VSP4 z{;vX9%f#{L<#{+D<{)QWaUiBwX;Z^+(5lt1v`j2$(VG48D?I}bVr!IWDApSKz7Tuq}`x@6Hx4df78vv(+%veziFZ<-TaJo|A!tV581!};KN@s^S^YZ zuy})|=3nZ=XT$B=7z4Lh`#UtqEPhHq6G?B2p^>JGWbnK1N;gpUMMPRl>Mc%!BoTbT10L!j zvfdV@R?Y|dJ2(mIcKDc_1hu?7mBL6FGg4^`bVxg>G#wfeS(1XBGx|HI1a)L60V>We z8YQVWNwnliQcvRIjqAoW#aM@Na}sMm_MIJaX<*OnBtO6I-O6A#srmWUDX*WoYcIPv znL8-|GG}&_d~OLMcH3|6S|ef_EH>* zSZObJE{^RhClJ#c5n&TgQDIHTyb+`_kg^ z*NQW0*7b#Bvx988EUAgJ1%71wNDH%jK+Fe#2_EbxC>vl5+|F4Vjn(#iXK4~R*EMG; z5XTQ3U8D+f%2MS5*A&kAUI8&n(`1!H5)AwmCb&si*btcGCJi6jJ8oX0gKFhmw8*Sk zT$!#Zo@*Npk#YaqRIlOUpdcVYF1TO+Zby0;aStE+tnM-%RgY zB`^GVwUP#b7mjZw1z_y2XeD)MSs9a5Y+dE=pfb*3pS6+>3eMD$*;*P(=!2fHVE?L( z)D}M%+u$2HOlm7lgw|$yTZwCJwzriGkVLB6O6x*rr9+7YP~}4JhF@2}K54rhl>fms zj)_l;&ZKp}_jlf=@2PlF}{-7zE$Tk928%}3Vo#{dle5T9_%k)DOJ9~ z2k&tir`%Az#CB3^2%1ycN#C^C&lAcLJZt<}M0=@7s7|+>Y%ggD)|7vDkfy>!a=047 z4Q!rTGTE2(Hl?{;&12Ep|L%RJ{BR#>D07ltU8=;CV z!2}GB;HNPga~iGr`&HQ`CjCZM?=MBQE$CHq&w#!VbSeE4Th;l8isYSMC=XUCaRJf* zQ2n9+DF$q(HbBz14>t-xRl6CAbAeNEzDZO3YEKV~Fs1}bdaT=r2BO0~*xW!V3UlG} zKxurde`7fLG4PCU+8*`%@j43&k~#@nm#{a2r1dbRy&ojSIc~t1>;Z_e7`2iUL2C^O zmbzn=wIW#RD0M{2Nz2h-+%$)%V;!ZjP-L{xNk^bStJPt6WNiw?c$mZjL#0Hp&3U1c z8~6ING7K}_j(rk_u5ZgOhDjq)HbW;VQs}&^t>XJpRjz{ zN$N#FzMqCmK4=mzy%YkYycj)*#0<7fF9mp5x}p*DgHIPP=hlJwlTVkQW8ZMJWcH6< zGSL1#%fDc11IiG?j0Pz#%B7csD8Sdo&<2XXd2$3#N*Lsl4aj(xnnx( zP`q3X-`pcQ!{wu9dxtWcb^5^$?1TZdE`&WbNJ9nHcs4jfYSV697&3C;GhFL*YW)+q z9eBiLHwPjQQ|_`Q5mHC!^AALTv>#=^M@a8r-(`GfX*SeEKX;Y}qQU&SNL>Plpb=1g zAx$JH(GD@eO3*A9eR8x~v(9j0Y7b4pfJUui{EaQ{B6V;Z5bYrFDy-*K@V$mC_IHuu ziNW%`i$p}2tTskU*wg4~8Qz2co@D!aO2;7IO^%Y(bY^7vKDHW9uq)ml1wMDtvME}! zBQT@g-b*s_LiUncc|GXi;N%c43;06mrx$dNdc(amcT3COQVww_aJ--?&cF$m^)b?t zHvPMlz+t;uwchXMfi14ZTR0V4KmKN3EbC;H`a2Ho;Yc*}3c1Ykj2JWDvfqtTn-&N7 z(uW-HXw+K-6G#oc*xh)UP3|N4qX29ANU3@Q$AH_NcjP6qL^|=%$)BysCmwO1T-a}x zNQez1A6h_;5y(2kN@04R|A}nHLw04>rhzL4=_8mp$>WegXR>R!Z<_q2sj*y8g0y6R+o8V$o))13Gi8S!#u;@TOTB;gyG8 zRL$e(*6V~cdL~gB7gFAxT{VN7eb1ufqzU-Y2XRtoL6yfY#Yv;>67YgdS&zOL=ijsW zeIXV&u`l{c({rkV@kNuSpg&po2c85?!7EXK8^E3pM&WQXL3tPcyKG@(T1hUjk^-x9 zhr7-i&if!Kvswei(-9lSKtz;m$z2~(y)az0#q~gQFHNaN76&*2lJy6IwL~+%z&_mp z=D4opQ~rt9y4Wr3U_WVuV=>BG3fO6J>o0vEv>nbXta56uuuzLS>lfZH?;l+AwdMRk zsWXArK^!D~Oyb!7L6SFQs>(qi`roiegQQsM*A4!#q6cHp?PWQGF*ug9D}$vDbdk3F z-lieaHVF3Hhe(k=V{u$KtI_7LJ}`G+=BS}_H{DNh^Yc- zBLZS}W(UMHxCF$+w-1O(03?AvsX)9(Gm;3xI-Lb1N`ukUa}uR=Osby~rCj=r*4T@U zPLi}3hi6PAM3YM_Fi!6d$;uvofQT!7mYI(rDbmHSk@uo{u(n%>vgT*7I`XfXQEEYC(u*#snb`dD->&Ss2-Y#3&d$4M@P{A2Nb zL%K`AH03nuCy4uhq@g|4EG}JYZ%0wW)bVUey3`MB;A!$N8X%LlCV%zR48(x-dz9D-Iav`O9?L7xou7(I|lUmEG ziOB6NDMJboW{qcyGo(oJj>VFJsR^;PU8WRl-zzM4KRM{e24zY|eCxyK)_2hqPvIgr zq(oVc<5HqM@+sQFl!?+U?A$v~k~+C3X^ktI(pBVeG>xkG`H*9xnGKmFh1d_{5@?!^ zroX3lVX+Zhm^XQhbS=gT_4T_JFjEs zXJTZnV5PI9-F62uu+5&q24_hM8O~;9No`=uwlYgf@r?|#iPpSv7CGU4Tvw+lo{C2E zCkED(CAIeq36onnsAer%_gXB69xpr_l3+`=IU6ep$_{6vU0$%CvL*kn*h_`0hIuu> z&bC(}$CI~V=2VXYxR)27DY{hh_ra&-^V9k#cE9SFH?k%@&0Ut#-euvlrDVqop^jP5 zK0y*#I~$Gjm*wbeEE%9?zBUIGVJd6;rqoslpJ3_wru2ZocqC-5WKXc$ZkQ*PkcE~X z=1GkN5^3$*5WukPTOiHtww4Obf}%Vxu?7>yg`2mB|?dFo4Rp>R#UT4%&` zu~Vg{vhoEWcN5sX1(*jrS;RsJCb;5uAsX%rHg6#qk7D^`Aqb<-J&mB6kg2vUB#dww zf7OZ_@KuHJM|OFU6yS696@q}czpUmfHUu81WWI~h*Pd)Su6~umF+lW;-&bYGq)$!1sT)&@ChHdJwf9N@s&Sk zZa-M@XUXr(GY^%JS#lo8)*ZGe4>a*GE6I~ay9^6L{bl*;Q)|u5fO}_I%Y0CQ0W2^d zWBCH>pD(4xEa6j6e#NYFc?dUzW{X`92W@`Mn%}k|y<*LCc?f=SIGx(V{?3=y<|O=2 zF7Z5c@>gqe+2hw)^!=YKVr^M`ZxzI@nXc_$BlY?pq@Fxvch;JmaR0Sz(bb0Ws<;Lo zT3T*xr+S1T0Di*Cn7kcX z=~5{Pi?ByarHD2+wEyQCb^?5%P-p{;%Onp-S;Ln}ns(-fkK|JFFaY^w&8?ecUzh1R z**1d z@ice*rBUEVUhP`(Yi#&scsS&|Mhe%Mb-zGO#UsY?*;7&F>T{>|oNG!^sMClY--fzW zc4UXvNYQAh`ZW;#O-x>k6+}1IeXZ0@sMN6RwUQZ$N7hP9gyIR7UhAY46dNC>H%gxp zvt{19m=UfeoF^ERaFe3fl&i6hc(6$t@4DoFV|A8H2J%Dxv@F>yeIk(Vmhi38JW(i{ zVEK55^z8pD>kOcxs?s?A%{bhMRYM&Ojm3EgSfnr#wuDpM3Y9`P^5BL>!pMw44$L%+ z$We19(Ohbe29padk@oig2H3T;bNutW z-@V_v_r81YjCbC=cW+o&&7oNS_Yt^>>O=Yc{UK}O#2jD9vtq>AkfmehJ8X8dCDky~ z>9jiyQw_1DB$l5InVI^ey<|zzi_4s5SCPHMu%yUlHMs0{gU#%G(MotdRZ?cQ6&vJ}+3Z^}p2>KHMWC&MYq!FxpB7^c@+Y{EZ|MX)E#1xuGX#CSc63MSw; z!OP>=_`3$PQxhhN3wjnI&(*Wf!Zh)6_(XO<10FN5e-C$4avWFs0u*>Cj$gXoPnD{T z|2M9|Zc*IS4k}83TEO<+UTOjxuPNk#pW0CMu$!?KLAiPy>>AitAKXCu!1(yRv`(R3Z=w z{$_0*g@gO|?u5W;qjEV_8spr-Ksh2h8f(Y~`q9}r>KUTX^I<17Cs7XA z8R(}hP(ebLnob@v!G5=S2`2ieFvf-fJU{;^g@dh*t+@6V$6r2dqCjFC?4*?XIK zuq!-N2z%0|rIe!DdlkxsO*0kB1}{3=C>?zFyDmxrxBtAI?gzWNKA;FU0$UxeG#tFp zjZ+3cZd0f)A&#fL)=UBL%LawM1HZ2Rn%come+?Of74gs%wLr9p5AmBf*Ha^SrRZ_0 z1INs)q8iZY>8Cwl{+=G%4n9|vKpVj>?1AjAKw#>;YKlQd4Gj&n3ifsMkppaA_!3z_ zug5_-gUkZ^F*edcylW{1tX(sUlEIC&=O|LG7@BAb?AA|PDF&Qfpil(p^K%LZyVi73 zD0sM|_de3&09=`+TT?Lz@c}bjJtNqGsbW?V+aNb3v5Zh=?1<(EI^+p6SlOhgh(E>h z1CRzip&JxH)tm5jbdz|05o^=9&oV!e)nP z{PK=9?4(A+Wpf2PtQi@J^*0^Z*@D7urlsiR=(X&oMw>rFjH^T-S-yKc6IwX`rHU=p z;Vy^~URE$d&95B7XQWaizv5++wfKUzcMDsGN2sT6Ws^tbe2*MaPeu7z3CQNHEblIS z13JEwrD?a%khO2J)jC{h`{P?IbF2}rSTh07vJD@7un)FxJ);2l_N7ANnK&N$U^=Gza{^2oMADya53U@_WXouB%*g67#Q6|BdGzlAM$0&Yd&W?H6saY zKG$ORtW)vCuPu<{PoT>uNz1>aA!uK>Zgny!;3rTs#xQJs-z#-H8|;I3bU2W>08X!&@=D^0ZiZn#F5F zzZGj$8h408r&$7P5pZ54IuXYLm?E2)7JA?&#;x6UGgX&%hZjk#r(Gh`ULVq z+eC2-dv4SL1ouHlp*>Kwe4&NS)`S@DRnj7bbdlLZ<{+3QzkZQ*Yotdal(ZBm+=zle z9R<>QkZwUZ74pe@TUmid8@gMBwXwxo<7`pV#^QCpCns^?{|Z+t4!5xpT8&LU-i`s7 zP;&@F+N&YluRud@!t~Z?ey93i4@j)N%u=HwB4T;Z1JJlwo@OJ!58kZ9fRT3 z;QV)D_@4*$&fbCWw-n1KXk+ z4=sB|Jop2te$+qan#S?RPZo;neBVQDDFYWj2?=VRmBP>9RUYiR@ziP4-Y|mVLR^X|R`wjR7`C+~{V7ch5B! zl^8HpT_$e-!16?SfJKX|0ruFqp(*39rp_cvZelLzzsYWh?4Ou^mf7L36%_>Qm}tid zxTco6oK|zOdUlZ`C4MAK;`Pu;=nS-Dg2c;zi#UVCC&oy8G88{q{P-`nC@FWQ#BGqL zP2zj}0}Qs(;2#UpDxk_)65j>Z`^DNG7UizHBH;-+3C{sb{1n&%yXg-S*Plc_28B%?qg9A`}R2gs%nRaQL_8iABAv#C^gl@ng_O(0kC^(3{X!s0w-& zS_zdxcUHu-7?p!^p%mm-K6P$7J`ick%M#xJt$|iRPUt0QF|-g$D0CIu;HMIhGk;`X zX$0?MzO?Gq65j`vUz7MM$OBbCa0|X{ZnQmQf*Ro0x*qMYLE^@8qY)0`#h=*s538Qu zIylM_&jXgoUiH|)d@$2AC=ytulwx5-0-In7L@A(G~2KApwJOFYvJlLBC zgztx9mn97S3)XDtPx$8&x0fv$GD#gxYJMv3)KGpyj=PY*;gobQ-`**4Ka5(nK!gVz zEPZ^pXr=~xOF2$+%QQIDr?m3O_hhGnTJV+T44(o&ualJg}-W> zwLHzL+IICe{Yr<2Mrs+Me$=!ugmdKX3^U@~uB+x5{vm%w2a3juP(w3i0n)5I+&6_z zR@U~F1~f&>C!@<2@E0_?Su3ZgK=A;7G|Wd!Q8BydsPFyyjzgxUA(Ue)z*y1DF$eh| z@mQF&O=;|R4_jc-GE$ZF{v*Teh`orCLzA_P;RJTc{S6FL5u>cMmeSLdaDFj8eb?Lk z{WR0LcGorG3_U7qV|T{(L@i@0U=yGKzh?o;0i}JljA?))h@S>D1I(McGhzYbc7?}H zrTwH#`&%XZ>2RfN5YK!cz3Y=f0sf;-i2QYJzurSE;#al(4CyVwOG))2-=fh9wSXve|z=NGn@&?CFh&HVQo7nx{4ARf>X zZTx<1Zeh^e9P`|q2$y%pGhxyJk0$QZ_)0CwEQ6NihKiLMU#{ilc$;$GOETX}OZ&Bo zZ#DiKEuG6YOR6UB)%ZOiSCMUxp2+Ug#624S6%wWIw2H4a{!5L^NavEwEjjC?N^J@) zY+!`KBSJl$=lY<@^Bi63bERzmOyzet!i0hag12{zml7Vx5gwQzzNhhPwYk|hTCzKn%$4>2 zdD(ZhJaDJ_nI^uY@v8~L&oqu%xLOmR(n?;_S{|?#8ghcIMb-_Q@&~{9aNxsPAG}?3 zFEvECb7}FSiyX6IQ^8uM$ZHuaf3S4L6r^*8hgMwSU)H$I!i-}cVat2MjN|+gjSCiL z{2tRJN8TCc^G#qpv%RR)@``P@G?mF)bDrpxT4fEvJw1~Wbbo7dilh$Zri)Q2G6Wv`* z(p@%#`l=ScHi%<{Y)ao5#J|v+Y8|k92G~N>I_3G4$bsxbQT!=QdeBnHq=QKg#}-Eg z_)%1OlC?VB+AzVYzNvhXGS*YvE&kD+kQ5}2T*2(0L5Y{O_>|s4oge3C&$}~|ro;IXo|x29iI}06g#uJcwq29>8FuyAe0;Jc{%pH2_$y|VaNa6EuQE`mt4>i zlEgYB*+CX_%APk-d1kmhV^25VK+sDxv7wtkiKry&QIbi1QR7ea{il z_uc&QZgjuANcnU4uF&VZ6O+j1-?R14R6ZIJ8LD;Vv6N$MvcOm-4Oi$g<;VzuKD+Ds z2m|d|hK&u~U+E68md^|2t&F?ZvE1`c>7sTasb*_eMVnT8D6Yv{Byd#xm|mP;XqZ)c ztvkBvw>1|6`eQpTjuAMn)>|a5?HZjVFxL3=-am+TKMHi}E1)YbI2~Z7ij$1|$}T(D zfFi|dr>Q0W$eU)qpMS%b%*Uq;vD38tQumTTsyKUqkLgmKsnEle0aIBfOw&#WmK<;& z%{}KdR#*+qD=~-0VfX$NyD?6-V`0|ndHiF_iIM#VNn%ubFh*NVj!HKmWbd`uIJxY2?6N*~Krvz3f`_q?{?9?Qt>J8=D)L|a!2DjS zj?|)s@|JQgxVgDClciGWKaq`+$7+9OcZ`c3BaEYx8(I@+x}zN%XS5JMrmpccre=CD zD|d^hv_lMiik#7Fn1(S{oM!6cZi18+cOPOuvWm8GN#DuCw8@L8@?J?+ zyZ3o@s4{F6&!{gbd7}mfAJGeNrE@j|UEKLrn2R={SKXTO&Zz#LNf=mO)9egYHrDQ) zZ+B6sB+kb?r2D^XB@zJNr3Hz0?}NaRVO=+(%Ed8g5zbgzT{R+t(QxWYAB>2Y+pTUI z(Ib1LMQ9nhzDaY?UD2rpm7oJVLyPSJHaeYC{|e>Xw7?QUWT*pfeQ@pqaX#Q~JyY{R zzT&cWER6H3XKY-M$d-ks8?d^shAJ~h$I?@j*GBjA$V2a zebeb5dD+$1M$7(v(+xlJ(pVq^T;AT8x6%+F+Ck6^&_V?#If3s*GRuiNRviPZO7#Wj zkepzSmF6Ot&2O5vooU3TtVXSZ%nmw4;*5BhC+tE}D!q($)jx{(Xk05k*XgDYj zu0OV%9F9Rd>X}1+E$FU4`!;zg{%uWQl(>a`! z-_7;c=e{f0`KRU+{hFs*)iZsgwc^X)*bEUrQ8w`pEr*kHyO$7&$JwM2@$htChVN6! z_ddG(+`_gJV?{E?a^73r8QID&{~2&QOQr&L!UR6;J9_?A{7C!GT5F}XHa(qA`wnwt zE=iABT+h($zGNn5F_LGI7PGG|qAVlk2)5RUxf=E`>b|iq ze`@@gKKAcu$EEV(jYpCXTbhxvF!%KxKjDtU`bw}4nUlKo52Bix$rHoHc4_is* zdKO*P)I7{;U%!lAro5RxAbKfD&0&yW3%;GEUnDDcPjrK6Ca#~S>ynu0jiHHC&pOlt;+Q=37(Jp+PHLD{n-+@!^Rz0@9Uu9 zpz>nmwgbum+4wzujXwFsc1-?*e4?M&hQ-M;`frUSbVvFs= zmHL$h#}Ag&SC${e9PBdc2*PqJSjt;0;;%Sm*((Fm&KaaHEMhGw z@N?9KV^N!6^=lItZ9-OdlSTYdCsRMQh(8eipWY&qzXX}Oo|LfO0znb0v&lwDJ1scI zfY_l|gk!<)bHZ;O;kV9`U~qoz(F(C&ACOYbfjbVYC$rx-w512)u!oU@>kz{~)frS$ z>t>Uy=gBWcI@`5EX12jb+r6ReE52#*p(POe)Y06YJ&B^I(CcxIf>$8=0%if`0b;;& z0Yc0TW5ssHZK`w|6|XbE(_j&=qRyex7E4Wdw@{IgZjhb~byXzTD?-tId|xE7D=naq z6$=Cr64`{G!?A5Joki9VNvJw6t_*l&ed5HNj z7lX`N%%FH4OV~HYdwL4GdgI{wL(Gpn%93BRaAus`esX`zaru;nWsB{fEd%=;4k^9J z0q_heq&a`R$yYXluQcDHEFBxqoV6%B#@-P%fT%Txn207!I@)#}Khic{WCka(rAqj? z+v%T_spI;2%xLumvXosNm=JcM#y2M-QW&AuPhk45+2Fjc<<@mzd!?nj`&L}l(y^S_ zF(#a7875y3>fMJ4w-1d;HE0>D_s2PoAieKYWMlwPRLi7H(U`G-n zp}`c@rp7sjD?w65%#Mye1FhE9n7`vwBE?TS`c#zbdH*ge_8s6d(1G4$8uMqkCwNwnr?YRuxdmHg9Fok>uH4TQG|I zKnn<^#Q&1)+x6_Vd%h71eA!d}RnkFac4nkyjg}gQ>KTd#9a&;T|54&NA%02 zRL*bYinuH~SJpd?N*p?e|+&O*OCHL{N< zC$}Q~ccX)DY)0ogf=Z;=NaqbKh8RC=tnvCD#NMv& zLI3PP)fLJI7uy0o zPx-+{RHeKl=!z8O%ab$~Rq5xeO2$8>cpyhmlp}yh&ea%aqWAlR8`^yX-IdPp58R-q zl4xUAdp*;1!cPcZPv58G4D`Juw7RT9@CKaY`8}z3k+6#qg1r^zHF{!C>I4$fIpjY? zl`PukPv3E)xBiR9$c|U4vW9zN+k>v?i)$0xs);{g53xwUM2I`Pa7-jy#4B2Yn{FlJ zNDm{7tjVq1CM^3b%a2a7_Hf|gR}3~8DaLm?N;ZplMoTE6&*-@XU#@v17whWD#cn|^ zsV{P+vVAS$?>Lj#!4~nTmavdMre`z%E1Npz<~h3&+0<~dqlGJ9+}_W#yDiQ!6H9g$ zpa%QKJcJ7Xt=LDVVU1%G5wkj)+@aPcD;nn8Of@5(h@}EYzst05}9lfLa6vXfnpQ+*_*x7A~s@URb!OGJNkRnC|za% zhFwK^B#<1df#mc+*w?Z>Jxti>J)SZ+h5x#3aLSJMLbA0S+o?A zGp80~m;2EPuIe&^W=Q)P3;$W0uHf~8_C!i-&^!Url$hFuo;6x((%YdQ804^9{9hwA z(jvj2J5nqml@37)NJ4IssIQPJbP1I{Rj453b|yc8*F2WaGu$mpu_ z@_FbGtmlA_G*MbhI)xoeh*`HLUc?-dgDg40=`=}^kyE-JDXt_`>Ie(ZbUA`p6PtaRKtdQfXCnSa)K>0BaBKXe5@rtntB zyy)pR7Mh*Q%}i^aN4u5#vg0gMI)KGWy1Rp(OrjT=1Sm`N@5)=*alvv^Bz=fXGUUP{ z_#r#Wz&1qE-;t#BU^-p7g5g%{Be#l&7+Y_81Yxk67jh_D5N#(v1R}%HJA3GpND`f- zjLwPb8`Tyh3Jlqp>8+%;HwDiF%Ius3y0@|_C&8m#KNbcm&fgBp>W`hZ-sk(&S69!A zIK*-ST~Bla;Cw1;guNSa&ZHjbB%vR@kT4b2U!V{7(18d0eP_}l`sbbm&Ojd_72{0S z!;6LWo4}bqKyZPg%|MLQO8NxDn7ZqF4Zyjwhx5aPGiRs2zRAart?1-7&|mcYroSOv z4>4(Z^iE~zgb7o>ypHYJn(U8?ZCi|L(3yJONV8~lH_5u{CMy%2L2zkvGlM8P?H@Af z^G?C*q|18fNUx31tC2^)q>Pw2FJZxT&M(U~(#+V6EdSJXSFN8tKTUk%da9qjsLs%A z-Lp4)K1>iVDm4=$vL3!3bR~f~R&&0heaFKvmaS>J-FdG#il^rjT}^D(=%-0!DWBy` z44fhc&=kL=Ingg-Mj-#Emdea#_`>T|8^tNgut`?Wr0Ye(F@E&b+nv_pMf`;8_lnlI zMGy0IVKZ3F z*60KhA(|&eP2%rsP7MP zo}2La%h&Bi$Lw3)vlkr~UqbwM{@gW=JBWi`t2uWK;rVNge~|DGjWZ!Qd#!Q;rH3Sq zAkL6~4{G@LGl~6t4T_{-h?f_2;=etZqG$e%iV21UZlJVKDakWCR1Z*z;?Jb!c5Gr>~BXKT4X5>~sf&E_icyZjno%ZkcE&#I2@q`VGP0qgcQP5gy+7D zbBse+g)krCc7)T*y8C3TMq~~W7JR8Jx+^aK{!X;x!V1VX-TjP~xswuKA$k2t-p;%}Y3`*KE!okU zYrQu9HuFrHGf#^pf_T|nzCsyvw-EL>5lK21^+|I+r9nE)4N>mBdt`K@p6cq8Bu>|$ zC**crjZX>AqRUqDUgg8P6Jn|fULS-*H&C^MH*OBXSpK|n`Rdi&cOYs~!D zH_DS+N7{q94Nx@(D#G34_~XjZ$^8cIyhZm3q5H6hE~cr6PU3%19-G|n{tdSZTt^Cg z_f~k{b=bwjqEGPV5```5#&u>%COy&nJzC~9GI#gD8 ze;w+3s~%bWyUO5u_}IC(=pMhZCYFEHSC8KO@~d1*<=wZFrS-D%_&wGEy4Xv!gxgSd z;f;~z-sqy3xw?{Y2mh?{@jWq&I#8*)$KnaZ1TVz|cXn&Jy0yorC8$M90eQzYz3?VEC9>`WC2nE)sdkNard=b28crpJ0=n;`P_=6yo%e3Du%l% zQWK$4Cv%KPeOeRG5i`xaNPAcmw+Ti8HJ{i3poBhzOrdH*Bm_ceqjMt@cF^a^Mp9G} z!;OH|>iru;&gIlOppOBI8Ih28@%!;e@i&s=aj=ZmS;`ZAELFG8a$uxbO$cU3dJ@*t zzue?$=Hg`U4VZwy>ro$1X<8(%3-SAr$b<^|hkqzXu=L40K=R#rt9d%8&Do zBgd7G@3T+M=a_&yC>$q#RFa+J;!VsF7nDeDRZ_1d25RtxJb%iiRy!Q?#(&Pwk*tX1 z?OQi#(!9@SaDyJ?Ic88wOu%U5ckTNxaHB=nSV)4=(BbF(W-niIP5ICL!$!yl!n2qz zrZ5=mfu-#3z&v-a+udqJSC)G%$5KmV0tX!|zz&AgkNm5mdZ*G_Fw8UTS~&*fJ97K( zJgVg$)#yhrl9Xi9j}_+DdZx0@k4_*|LiQ$Jz(z?AB)?`l>xrB)fW(p3qzkJ3eRN)| z_`W@eIvo+|L#&5+#?*uOl^_^8OxaXu55M#`%t1a)QQq7wzTE*m;3eg+LO%E!5#SQh zE}_CCty7{N7}WbyG=CdlO}TQ%149SMb&<|1+LYzEC$b)xXKi>g2FkJYMPxt_g_Cx# z^40_Wqt#C%srsrCmOipcnPx;_eLo1Le;L?0!;hq%vUY zfBe)RB9+3a14EM0)kh*iVWET~UQw#NF*WY~S4p)lGPqk5xUGZ9oe{l+Btc>crezYN zBT1*KlEt@Dtqt>ld7fZk%NKsuXpMA0I)iHipOK&Lqi1j_A=6^%N0i~yic){S43a$B zuZX6y+?*e~DMD}t2;64zQ*H1t7egiZrTgFRrfYp<{zWuR$Z#q9(=Fw>ntw1ilbWuKZg5`K1}xDDJ7WW>1>)n$C9d9 zFD;saB88v2?=7LrmE0L-MtV}YJlz5-dL+U084AP>Aj0VqW$+9r%Cq!zTQJf$kPM0H z>_}_sJiC)lMHPLOwL2+alcbqCbu{6k=g(G7xHw@iY1jnD!Qz{$^eY}1u zi($sUIXknjGJIyzf27fo(U+#UF-e7(iSc9hC4@--(K3xFHz6d;kRBX;NlGPCSjYag z)5E&}7aenQzo?q>d#)Su+r2Eys|U27^K;nHBt@PR{QjmV79^RX19XY)ol=816T#Ypu!2^Uf-#`P*7K6Z@5N z&m-T`tP=U?h(s&KGy-4-7y*HR0DwOr6c7yH0KIoT`RGG5?m+8j#n6Y8j#=X9-sjOa zTn-IRf+8za23liz`cabREI6O*K2J|4@qamQP)DJQQb)SAI%US}ZJv=jY5e)zUp0D| zkJP9;15(rg6o|Wi-5`yvL-0=V|QMAeWl8nirMa$6rV9H9Q{qki10`a^Nun+-Y^Qc9CrBcJCkTW>jN% z`K7Q1m_X* z3v&`ZTf2#iLo0AOerlPPB(Tdnbi!+DhbFR`HO`skha-9PIPtx1NB*KBg+gRf0Y4WJ zZ@1&=MRtXn^E^K(Wl?gnIC|uel#(bd+0M^NDJ^-kdu}8(CuLE|TiwYS&be<ab?n|!?B}Bej2P|EIVGRV{ZOMvDOXG49`YjthLJlK zhWrJKM;asT-f1I^VFh6Eo=-lt-Uf zPJg6yJ#i#_{@L7l8eMw!X0~}}#V5|*vZj(|-l5P>CVJdwMfcfT6SR46oTCa*4zOTe zQ?KFD5%HCPd4TBvarR{hR_7~%u3TgeHXf^C9}VY+5?fS6OKkp`1W%4NIP6}Y{Bfh@DItYwi1rZ zgkV_-7f&EnT^r8VYq&e74-rGn(uJ#+Ul2HRdXO!!(EmfXRNYQgreNt^Ju|y3oZOuU zOYekpW`ZXUF6>Y3L~9CW-}V*oS~%`D@N;#z2NyoUKK~QnrB4!Cos#l5E(@B)E;5>A z8?6{|1qukPLC|)j7IME>XM!}%slS`5ljoJDgkeQv{nGtNcRP=^G#nzcD;#SFwRkoBf8DS9c7wnx+0d%Uj?m<$)C;J#-P@@;BkbOT;NXnF zzviK)Y(H)|c$@*6{n>PpDZLa1#7`z1VAe}kG*~`lYAAX6=x>z42of7zQf0xJptZomFc2kv)u|VDu}Sv6U}j-sk*w=YO~^` zNAdei5J(_ivwge8?Pt!em@If1t1TIwM?XbGNxC=joJn>5j$2=i-f;#$oSV<&9@pqk zNt~WX&^3=Q$eAhWr@YO{)GJiPLGMvR1ow+XVW1oieREH?5m~j3AxU z&*YBore~8lZC8dq6XkgbhtrYI;Uopv1b7iJA0W=Uq&r9j?Ks4cdqj0`IK0Tn+O+p_ zw)U(|sTbC!dJz*#Ith`O4d}i|%(k0IxxO_cuWW~hC5CD$SugOL(kGpIS2!-d(EbNJ z;ZTiM|BHTkyLgh&7x?IN!?9fP^Zsz+4|H_-f%WHl97m2oGFy2Zn+YVdYQ%p6IPiPL zddIS`a_8|2mF@`@nD#R+y39vv-8p31G46@#DZ`p3XN#8Gq7mN`qkVl6dn26O*{Tz7 zpn`1%Wy-VtM@ntsoRE(DFnFd<1j|Z(LM@;3PMD!N8D&(VtUzpN4MA}F25ftm+zEP1 zzEnPXHld%?63#<8WT>5sO=F)@|lDD=p6o_sOB*Kl1RVkOze8_k8T6 z@Ei#9Hv0AoHY7Z&0t?e$$_`IwY$0+K)+gIZ94c;@ag!zEKSyQX6)j+=fYKDdi-q$c zBK(%i@>x!K?75-+tFFX3_5ij49Pp=Hv3?S|q}H7a^^>2ceDz%aoWvHm<8p<;^4^d& zD;8eRN`ANq{|&f!tWPR5%;p;AEAVuJ8m*@|&uE1P;_YVl4zn3p`iAqA7M%xD8$Fwo z>%*0}1rtYkQ5gE55QkPotvmdXKa}zuR;Wme@nhVP@~`3UYg+DAE$zGN$%~y=HFwR0 z(IsfvFX75Z3kJl_NAAPu$>|6S04vsqqRN$SSFPL0xW_{EtNB!EUJxC~{v0kCD7Qy3 zJs)e>d7*s%V&WjwEdLm;jC(%TGYNUeVPvupIsmDFNthv7=!Of;agNo9pGLS9-~~|I zhdFTH@GZ4{sACd-j{_uurVe$9!6>g-KL_<_a!+Zz@)zU2ztVkQt^3{<_dUW1e}T!1 zXzEpSTB}%m0nUB1xk5u)z;{9o%~mKEpO5yi--cJLxni%uCaZ3NkgIMDfh&vqsSBXf z$-W8qA>Rj*-4f!g*4)+TXdNki?L)GgfRx@3k&8O7{GcU-MC|1F;tS3LTJHVL?(emd zeHv_tPzvGGv^yLQS)9>@=t)gDp}h1$)QDr3ghQ$FMh=Pg^{JzW3x|?aquKen=04m# zm!F87g}9LpWp{18;J>~wn2|qG7*A&8bliA505O0S>nVLq##FqbO!Wwn zp_eenN7|W8EOwJnhYp$7=Wt_;vf2|10pc4^^k8-amUpOVmA==Y50@YEB7^goMj0H| zX*=?gYEZt7o;J;2UZ*gnchVD;38m?fvdc;>nPug;gup;f0Zaod!0(v|XCjb6&>Ec6M^h+MBOk4(6=UC-~T>+0%P#eD09axU&WiWm&p1M-qyk=9mwUyj* zr5JfyIlM4-;y!}!gw33I_;nz}P1|1kQ?m3hr0&2gwPr^Ki9!$p1N#4W`*qnCE_8?NB4 zl^EayujA&{UPL*Iw7iflHkd=%hm}Vc^FgWb!+}cXeqMQV@sxq;v~WJ)uXGx&@|=<3 zvDhfG!rPzf7FVbxjt1Ux!m|nzHsqd#;?<^*m04XDaAli1mguJMyhX6;X0S z+x&`37~Ol(Kl{=P{bzIR$u{hN?lW)+K1kaPg@(DHoDhyT7!!1Njwskx$*U*xJ#G6) z<*?5h^vYd1*m%C;kl#grX+S4@8J}m)(}jleS#TJEZ@N{!oh&&{Q2){0ePSb~F9fE||g z?G3T^#NvyqDuXh73KS-}n z!c+_m<*hIhq>_%b%SX|XH#@Nnw;!u_D=U_ydgNuD{Kw~8D#pOf-&8T2{+5`2#MBmg zFNx5(qzj8G@;Ea$LjJZ*;QP|qzN9RYB<)2~Bt4!a%??3Iob(M+Ec94CCD`Sqxe@H1 zwxSAaUf6A@H=1Mjnv2{q@{n*LY($YiA5(Hg$$4pDe>ou>+{K6%x`516dI;gbnTsm2 z3jNv7mDgVq%=1z0nSg1473-6+jqy(?`(BDSv3z)?w;9StUJX1sFf{4_rTe8pvnPQt z8vywiTC=lLORjEBHxN_EAx4f4Pv>$B&`M5g@EasUQOHSA;s1WEci~o_>Kz)04#krU z)V)%wD-*1bIvwV@Ax%1#mWE+0KUV#(w&F%oN?bp zPR8vkUXC8b28X+Mo`-=DjmfR;91IU~mDA74r~mw1@Gn}Q6jjU*Qk*YGBz$nbyxjlh z$teYeBU6-sZCW0x=~2i+mphz(=M~S(aYK&dB&-D-0UQPV3h0pxeg0*r0hV;xHhzKf z^UE$6mW{6r`Hy_GgNS$9pcrQVFba3$95d1o$R9eVZ>M((Q>lQ#6rPTx%ogA26#S^< zyR7lAB{>gi;!$P(D7m9D>fT18 zQSrRWGt1hP4X=*yRG)_slOBAC5h`LKyg;03ahqg6a}7jUqB{ARbsx1k<{VhpQIuka z4%G~gXZRD-Fic@fD>Qd87*_pAwCU}sI@B+#&J zrhj>ZjXc-m4R-BTj=9Leo<lNz?-7reow8$NHaSoLutY&N1ba-)eC&;83A zESCNDh6e_J@zV?N2D@Ua`SKiTv)p`(|146Y6NG=gNxXOo;U&FWIlj2 zCh-g*fkH`o?gBiuVu>fa{18Z>K*1U8n91i17EGMMmcSV-%0v1@iZt^}FC;LTM!d@M zU{K_9CS98yXNCqsv%i{ZN-so=v2ibAo-}7zrTJ#O&I5udrx5G!GDEiJ9#gZn zq=OEc5)A5~@GfSMky-LPm1^Mp1rNO0T7tzu@=)NIN#xI?tB&?m!Xo997VSq~cE3q< zkP7}r{NK=IU(d+zLz+Q`bO-7n?J$Ye7r>>``dK_u{@BW3^{GqABdloZBc-v0HD_$OB0g-UN;Grb#?>5#eSNc0KYG>;0Q^P2xc$ zDIj7M(%or2-7O`BWcH%OC%ciM(nhHpOwJJ(U@Ne%UsXuUgYh7YT}F7QZeZejVrd9N}q%pCPP5cmPli*pAWnsuhVI`KKF=Utg@*dz&p8M`bqtgX1i`HuGFBLS({rS5y`V4N`>aF zXYQM9k4blhz2yEHFRi4P%x8@Q=R#}zjb6bpg}rRO7T(`ca$kq@GtK=M#<98IviXbI zhs|7nWL*TAH)agU`w2w-`=-c?mE}r==gy9j+dFK2&dsE>LIxSs>B#U;aT%_#C2lV% z&ST!T=zo;v{^@MV3T@%&j)sSnlGG08TZ9MUFzsJOI!KW#^dhC_%n=(H$lN8e=Kl7q zaF|{Z#W2XcaBxRS0;$Ezw`w65D2|np9`@<~Q|Pv{B_-OzzIve%9nNQa3YDh(t5BEw zNtBoqa^Dnnu6f%AQsla`?guqeBq?$6!k~_lUZliXw@SpuO>FrQ?_pOBbv{JWts!|< zHP0;005cbK^kb8dme>L zF=y;W!Jk?qh`8rt;JPV}*Mzb9|GTK%e#+x-rg(mAcaGB7OtYBk z7L2tn{`Pz9S)2e)Hh=m#BHiP?=ZGS-{fFzd^~@r})skUn-DDdNbsBt~S^Cgoc9dD{ z15uVDUF=~PtHKlW#&=Bh+I1Jc=b2zoUyKX06sw{iU z;wL-0--6SPr8iXoue7)RI`r`Z!flpa`q)A0YkVtkvclaoIFyn!k$f1l=ptLsV|tmes0l=BjK z$AB{7$|E!8KW97t(ux9zvC>;wNaNO=HW%+b47I%{MWPh?o!BU~%T&DgIE?-}8L4ci ziCB42gN%0)neFw;Bkv?6u3Gr`8N~KsL4(6O=r#;?@+#a zXGmPg8MZ5|ka3>usgT-iLi54$Mix9@{g85*?0y9_-mZaK@i2Np8K zf;*O~%2Qt+w!asY^XsHya5+QG*uQ*yq^n*0scd)OJF7a4d(ft8Ie42GPqH}O)}nf}cFXiD&|j1q|LS1Jf?@s{d8 zqcUQ~sps1f&*2DCz9%$~k0WE2=T2Y?@gu=`0tSqz$J5Cp=o6?Kn6Q_PoUS#V>*D`B z9hKqo;$2635Xq+A8!Fzdj9FvPD2KItJHQLjG>u9{#gk`;_DnI%s|x37Of4ZM022)} z&c5YjW7#>ly7E)bs)u_kpRBPmYO_+aCc?u;bcoNLbHxPUt?vmf!7tUMnmfe#=Mw$& z>OfxY*8$@qsW~j^>Q6njJZa?YM7KTK>IIB?Q+5osJg7H_s*pCmP~+6^P7f<(0M8@H@{nq=ZdjlkYCS z$DUB0ALfwCbH^*+t{oD~o@}>c^={PS7xzxcF3U?b@aIpBV(c*i!j_$IB`XNv?^J@{ z%krpS`2;()%V!p=MO4-Ja6<5FoA{kCRsBWzdR>giC2*yJbOWEE8M*T|p{6#V1vI_+C8xxD@C_d6vo_N3yOCzaAuAZJ zi+5?l1TX(IX|J@a4H0n?N^r_M+f?Ps`pDZ(AJa``#M9)dv$*O`;MNHILuV5h_I=pN z@H9V>;{>?^v-F?$^#=|pV>ZNi)V*58FAp5!erIAlQ>pTp9$U+<~2iRzEQA>?C z&7sSXcm53}Y9pTLZ6`07i8B4E5jX9~EWK_NN1Z}}uNi&Hzl9AVYRGd&)Z{rMZUqsR zp+@Yuj++F%2*ERi;29&H2qJt11oD_3ZOOv2gy3lqs81Przq8nteec{n-UDh#Fp8I- zGzMO|X-J-i`fY9RX#;ZdRxp z#Y=NYh2|LX z;uV40%(5nFZ6C2igRNP4VN=A6WnSFtz_TF%mv(g^FW0j)z_X#^FMO!vST6ERHu{T` z|9F*GUA_5MaKRTbJA_%Iz6m)R_oM;v&AXtn zZz}DZq64a-l+bH&>4#8U`ufzYn?79wiWe09h zRi(q)WQE<&AWt*Fa1ty{GbPf}ijGuTo{E^d95I%}z%rGV9zaZ9hL~DNux}77iAf|T z7ZB|09jVi4^?pRzQY4lsc-qO?)t9s-VHCV5{;a2La10UYrNmzhdnLV}C}~y0$R!l5 z5UJVO>+jrNf77FXC-Gsw=dyp(qez_YB3NM-B_vUDkP@>whFQ5s8NJ!+nNJYpl72QU zDc5kNPYefz9Da>5p`-9Dk(TSb{>S%uC`dHuu$h1YfXJV^+9@%<35}qSg-| z5Xc^3*FWeY4>u*`(uFq*`_QdcUL(FH5{HFBTms}p#&jBD61&IXH=c(Pg z0CoIsIo_ln_+nRT5`PT-#^Nz-%q%-!gU6LTOOx6D?Kp-N`isc^OHo-0uipT3dMZ0t zuk4(wVu`P^Ga5-{TWMprE0yC9 zpr~+E`ZrSP->{pr@;L*kH9M6Y&*INFNTofoxbn6DLID&Y8`s}$m+{mLfV&cG-sp5r zVBB|By6>oU-`?cTYH^R3Cu{0p&1q|_Ie*4=gb}}PbeUN!iTS47##Z;YjgZK(bke?q zoEQqpX&D5)bGZD+_=cFE;d`sZ=&Q~hjk!B#G@hpqhS?0E#ib1|SX;cM>i68XosjV0 zvLj8>@P!kOan=#F)yAcLC-nidDhR1uPOu!;C1rNuJ5$6@ro>cIt6{4y>P1=eh{+d< zmK=!QfcmW(yWT1vM_Z<}{bY5l#FLP10PObo@KL$GpKu$91I5(_p_bh0PcEY5jIR9# zic+^~HJ4fi8?{-8$H#!uX>2mhTB1n)@%-j9EC)%GHJOxIyRE@nA%`yoECU>=Q{LHa zo8r~@lqR+-6t6_Ne7c3G4~LkVKTlQFVhh4Hla6f$ruSEZ$Zo>c1#u<>uLMC?GO0@t zu&0Bnifjhls!9z(72h;`K9n6aw9kHjWyqJ~(p9dv&CtYo<%L18!u^?&R}tFrH<>z; z)oLCbJC~vO^1nM~Ilsf!7+q{*qaTni8POX!h}$}qlD&~0YCEc0hd0rwH}K&34ZH~K zwmNnrjnk}-JqWXU@s4tY1qk;cT#fJm!e%?~s6yxs;vLlp=NRzJ2I00)-f&mSeIuxsw`OPS?6^^-MxA;~rM& z9@^p_Vt2<*&P%B{c{+icyvUAE9D3CC#sa@ChP}aw8$0lniLjEF10kO^ zig>F?a-8hIR|{<+IkZQ80~q# zK2kXQi;jNHhn5NYcY?;_MuL_O>*$w!=*0wmjG$laLD%T$MLJquNYK9#^b0-cpMmzo zi3@yq5Afy^fxtqdn|=g8zx&i+p%?zmA{k%l;HWR}pkU4|<=DzE4L> z^9cF}f}Y%iuGG=E&cS#|bAgr*5cJ?4bh(bs@uBA!JizZa3L#sIjSqk-%SWYtqf=!P z(G^XV9tInBA7SI_A^2J+z~v5^6|)GslAzOi&|m84(LVGeq>kl!Awqu;jqnl4Uw{bx zpQ2N#4}nVkhA$!Ht@~yoeOA$B5g6E-oSXHzRyjZdCl)0DB|f((Uq=CRZwU zJ~k?r3|T-Ja^-qk(*5W1R%bu>M4|M}zG0F-55ta53`5&H%M8bY8D4o}Z@7p06w7uc zARo&Z;zXspcg3qs$CksXa>x0FtT(70AH9mP(Kx5sH-Zwv%HX($OI|y6M|?yi6W@TO zxPeFzgCOH^cB!db>aS%p@`J{UjI=YD^RH<*CC+b|?a#q*f8HSd9f(K8?AzB844mI6 zI^9FFy-jI(@WK;vd)w%v26a!^k30&Kdk5i`H5Vccw&A@*?*DI?ezg!3M4Td2T;czZ z?^xkkTs4yqp#@(9Au`v@L1NI&7?EY@$z490j zyAR)^pt!%|cLmxZpyS}hr*4~|+2WI+kZ@hVnez5s;h0GS7lT)o-7#=+SrI3|`wCb6 z_>b}Umay1X6mx3i3OGdiNzZF`WNV36{Lu{yi0D57&(x?sLV*4$V*dLR0<%uV=T^M5 zGO8jvb_%ASbv;fWw0RR?HDEf@{;`ENH7fHf5k zrRT%0SWd1PgDGZ^mjX$-RsyQo+Ii7nyC@*vCVK zQZ(|8Akf;ls1#{|#{bX`3yJfG_5zk=LLjzE$Ge+Og!&7?TelTSep)637fS9{hJJUO zCl-q3ZhSqIs)=)05wEI_b1VbQ0*nJB0DL3K&%FXmBMgr)Hu`MZWGDN!Nf6K-Ou!PV z=As6HFJc45LqvmfSy;eAitB$Zg}%t}Tbpo)e1K_55+-ZC#EYlWDq)K})hT$!Lcbb_ zj;Jc)jG5EP{AF9Z`S24yfihwd#s7Q?-{xd#&iR{`mo$*Hl9uj(<^vC~{7(L{lhWg% zV%4t|_)U7q7P7y> z!duv#VDL2z>G%}gPsDNbbMpGMXAyR4>mzUWOHxmsa z*GMemAA~|05eDMxs)>FDe)Ro~<*=_af!NMJ4<(<1bMZM1 z(x;(UWIS90OHOHR8<%6@Q@R80(9 zwHE4{G@>hD7~#9Shp#${5SJ%;tXSc1-Xv$^!^)n=n4i=34+QbYgc$9{7wmiLu;M1A z6pNO0K|JBQu9<*+h@V4v8gLYF1n?=qcbNzeTihqw-3g6b zu814zm176`58rpJ9BYwJ%pngXqKE?j8WXWIVhKJ{jSs^nSr@qn%j?^4f_F@^nHiXxPlq^<)hSOOjPs}+VMTo6Tz*LL z(D}qr$4RT(d|om9;X0r14Dk5&wYaZNIE*)Go6Z_v=PT;$&^!F*6)Pc+2=-0OMhgNH ze0Bx1q)z*PbiEH;R8{&vJ~PZ6Vdl;s5Rn9R?iB$Egga28Niw6COvMDvtQB*}$o{QL z?$(wyL|wAYT5~L`rFKwrO|3O+Teo#vK`)Y`!hnj33HT@TFCeJ=o!|SpGnl)-?}yjx z;hZ`5Ip=xKbN-+6oab;;PcMtc7zq=`g9<%GI7xkZxeez)TYWiSwmPSuqBZw*x_N`8 zwtbV!S7|{(bLD3cL!~42Zm4zt{Glcb8~FF0rY<(*CptkLL}`@za!OmB6HYD5JjFX{ z_0C)iwZkePREP3R;?>X+9SklPEW~-{H=3*;d|ChWMcZyd&-@?0%Jn{#{XII{!hH(A zF0FVely$gBK%G588YT(YDPT1kE)``_!P&f=(88s(bIEjmQiEcv2du2X`7fXdumaG4 zuynYW%W2EQfB5-yZHKSI`3&#bUao4UQ!$P6*%s&GcIQ(USeod1wr5~}GiBHmX($`- zDu=apY%H2jK`DYSdyeogunc;^@)R8VJIbB|as`lOoV;@L*b%isrxG!<6fHMP7dU`Z zmXZ)7U4sh#M8vR;Dw40l7HEoe)q;;+Ptl2bY^_|eG}roW;dl*Jru!|VG? zIa^>R>g|m;!(tKYEsHtfCA4;IgZEhcJn$8fu$F9;Sul{xj;uY`s4x(Gv-EM$;L9Sx zz|UYHCcwaXg@N)SJPxOmUsO{%%8wy59l1XgD znd3tHyFS=+Fw6Txr?Su?H#?k9h?j`~QPpDqr_X?_2RSf*3K|ynm~I2lWl7_~hJyq3`iR+TB2QoCdJB)+rV0b_mZ!*dU_h!<7>2yyz zG;Ff`A5hpEpa4H8{9s8k<5>I$OYCnoS;u@1&o+e4W2dzU;ZW=gNC{+YzFeuK` z?$SfiF7bdR!-S0rR&GS{f*9Qil??1fRh$aq=UXG5P&-J5YppRw;y*yq1BwZwr0hBgl$!os>v+I0PUC!XfF`;}?y%R3SN7INsMkq|Gr8w)UwP3cst%px) zuwQhKJM1tppZWvEzxKEforo9=gTK3>C-9%!)4A1G++QA!axJ}5zU8Mx8!xI7QBkF9#*T8JCt^N zVb=x|IjlWYyk|ZVosW%6W+txUL=my=m1M+H_JNuqE)Tf+2(TKk z60jKH-vzF4#+FaQ{h>H)T(>x5+MT0laS}E+Ro_;8k@vi)Xv);U!>sAXe0i=z4eN(C zPYqvz3)Rc<73T*CZ|=MdX4w}|TbPxhNMe3*9E|a!`5nB4C{pdjUX^~s(&;GkT?)ci65!KK?+Y6`x zr2Q~DQw3=HH!hX|*8bc5Ol`WW;ROE#J=%h4l+B^FIf85sjm<%~KwuPvHZF@g;eknj z$B$vmi*`uMJ4rd^zzKFR!qtyaDC`VwYk*6Lqr_J`VdQT!{f379)?24E<#m{y3U$6! z2VvNI3j!K>p_V4O-}P~iRQr@7sJsu+%Vs4sd!do$QHh&x@y|oT@?UR_8UD_xpFh25 zU5Mmp_cQ!U%^FX9;V8A|G3(MfG`B4trJDP&s%Xv|5%;LE--mtKulw9DdB>`^yZ`D< z){9S(OpMa99(R*BIYIhs9|)i{@L$8dxTdVBg8RLf`&|pS+BMt6DLP}dv^!XCbQXfr%xjM=css(vt3T}MBslCeCkx{kJ&)jyrZ|D3};DTK0eWa$NuNsSB0F##3Tr zSer>xl&U`Zf=YP0E`?7S!^W$(<;Sz?|0priF6E?MQWsDJ`~12b+a>jrO5_B8a;AgN|~X`SyqO6E61Gg`QI&@(q`PN z064K^TnQID9g4l(6UW^zAGteLoIta5+HcBZ^PzJ#K9s9Fu1u!1Fpi4p3Wh$W$9>>P ztm`!Hj?z!*O2EU6=tVn22ZUw*?)g?JHFUtZ$iV4rK8Ti{Lqh^Y0%qW}GX-Za7Wf;^ z!hjfH9$*%r`V8irfEj=(fT|XpiUJk`76Rhu;on*0pb=0Fr~>Q)q(Kej*BQ;~;HJ;#K`XE?i#kKy8nFFSdBj4+Q;H2zY=;i0h2qr?@b^jyBi z?K~llG(WH5zB`fcTqq4U!-#awLs#;-g|BM-F_>YY!X`xnF-5fZ#7TpkY&lFVR0Hkn_Auh6+biZr9~m~GBHW|;YP;fg)^ijB*gHZ^ma%l@F+ ze)pAJ?(w22yECWR!D}J6;K9(833h9O9Tuj?b7KTQ@3S7WFMP(n^kq9%jyyLX+889W zdwOE$Ya(7_!CbpnEu=Q`hf|pDLHJ}VOTksl!{O4?=6o(kNWzzR;z|>oOCRGW-1APd z?0U*v$juaD@e#{`1ycW@Vw$EU+RCgG(ueW#lV%4uT^P~Gmsx4QJWsqi$ie0D+|&ov z7-3JTdCgY)BRHnwjep4*a@o&)yQek7>=##1s1i{cjQLk0R$GIWX<}J0M({9Y>~@vm z5J?WTKxNcl2jY8TpVLJA6qGa5$1}OR91wnf7{fJQwrA4eJC5a_KMu-etH*H5o;}XC z4@gJuwLrI2Nkbmh6T3naF*XEQX>U+N1lVDD@MbQT^G-6h_?(Z6Q*Y*TGZl_p>?p`Y zeBfpwH(g`VVPjUfT6-;xLufvS@@49K=(>T~fg+9UanCvt?bM{#T77Tyu@i42Q>pKr37$c5`~KVs{<>3ve3%>F{qxkGU8A?SLux zT?%&=+?^w0Gv9=N9{kJUJ_lGxzX7uVnSgXaA|M8^5O`L&k$@^|Y^K%)j|y=13c6W* zY=Bz>*bCSNScdJo_oKVF!mk2s!|&G1NDuHW z{JY@pg4^rD#y9+X;dgxmPZc~XDF7l~4z~us7s73XdjXIJVrj@}Cc9SDntYXRK4 zgdJ=U)gta$_$_d^!Tksj4gX5GF_bRc6u67vro){BH*-zDYtlq`W+1={*8=Fch*KK; zu7SH5uo^HQzgNIr40kcy<#6Z0ErL4*?n=0;0V(j8!nMNP43~xbE!|7ny-{Hp~!F{g1O zsGEE3nETRC*1>0Qx~(;AG;&{kRNiTe4N&-)T$U z8g&Yr8L(>t8yQ3E-G4uwl)xA|un5ad-pVi8M5=!(?2FsrH99QVT6z|Go<@YVnfjAA7y6)-`C8dnL5sEFX{Asng+9HfP#@A^anx0cZLl*^en=hto zqEg3eg!+E|utnWVbI#)AjTIi1b=4bu^5?}%Hp;3Fe#vI|MOBAz_9DOJ3&Lz8%za@) z@roJ!yz2iM>_~QPR_zVly;~3(F4Bh!^dW-R2tO!zXO*8eweY3#vx$DveD94cxY0sp z8^t+Ep`{LCgMxER!5IadN)`Ut#6a9y3b%QJ@Im-O!8}MIE}KV7L2nlQmmg!fotvGqpwhP>njc>-(1nLbxm8l&Rw?So|mh|Q6_ znf1nnCkYb8{#=ROj@UV6jjLWl0yi9*3h^Tp4GPHqYJV>Ck&aWT9LZk@uk>eTq7pck ze4$=P(dOoAD4x49VyE)`pI00YPsjC+K-{JMxkIMwa2>&=5`Igx{-{I>)8b~ot-8wQ6uhuF9T|WU~E9O3zy=qm`WJQF_0p z^e$Hr4~2~pFfs7y6|jkjj)!MP%vQD5hkA2~nJCIhE|Qt4yXI5nCT}kIpg_pEgcJ%I z-QJcY*L$ZFI|)g_()ZmciKuuiccru&@bVk~^vCBD3jB4|p5C7qoUb!sms+@2DZLp= zjtX^PAtF*Oh>egR=Hy&Te??vhnCFe*tJZVBKPBuYds6)5ZgFC7?x!J}Mu$2MV@lA3 zO$&Q$e=060i(~z9_ixDlVoY5CI@xi%eP5Fl{v*s2B#5ugb5*ney6}n>^-Cv&> z$`8G`Z0JRNp7j)L)VJEh`tx*In|&yG!J?p98{HSrjBsu2Wk*#wmUFts@fv$sZ;rN~ z*DkjmwrqEVR+KgE-;*$9nn*fPQm!TE<6e7TUp}+kPc)B>DiCulSzEO#;Z`5jS4PRP zgT;4yCm!2tg_;xdkj1Mo+u~85I9jPz*{}8GY2<86`5*eX&kS{4oHB9Gv>8c8d4`3e z{X)@RHPNd|(sWDIRX?eMuYRCLKo23w{?|apRm~)8|BZ5+NSlnm({N(J1`m&}$PzU=^4Qfb7 zF;6phM;MAcTJzQpjczJx^k(7vzU?ug`RnIRYXRA3;x48_^Eh|OR_bDpx#yqD3okuM zN8-fGCO?zRc#Hesx#6x){XeC9E&N8Q>G>jSK@pNbnLhT2eO+H6Ziz6N4{V>f$DbOL zW%4`2)pP&CcjgIvZF3{{HeOdiDftHjK zdYv-kvgTXo=ISV|*8@T#rjv*a%Dnin<%({9RqgNk0+Reg07<&rQZsWq&XlIZV2H!hJub~4`~vIP z%PS_&hKWaeLtifL>1aE#5%&6-9%sYR!r<8{`EGk&-_vS;s?sQnt|LfzRLRXuN)@Mt zb8T9_x*vm1?ZKlrc#b-Zup;FgzSIWQG>kQOn=n-E3)3Y9;pU|)winyl38-X{4@u#H zzRKPGDinAY@v11LMpUST$@J?UqH)<<5Iq9PmagO`^|2U#?Dq#mos<2Gv-(I0e_Pz+ z`?5Ab-02iI)*lxU@${h~zP92>T1KMj~r|@xr!wWMbtBt1!AR_mtW`+MRJ>s4JApfXaA8U#>}&Z~QE)w_hbhQS2Zk zwjyw+t1l<>!nUc@edmwdjmqUkRE40@rHRy8vHmX4G z++T)izCGdo?Jv=;#@?uhOTO+GP7>}v6RfmSRgbfS-;>jdjg*gTr?8bmnZ#rAQ+sT02q z@K@2Bo4iT)LBCK=6kVSZN%RtqJBU6Cq7#Ye-$69VLqwa1C`w;QKawyOnND}#$Il2y zJ7-39qJ?v>oM1=g&h(7e0GlW_-9d3PQM|99@+HWmIQg%0H#5RUMY6A**o{f~+#Mtv z%4F?mluA-_j8ZBSQ{H9ODhzAO?2KTGD8NC>Hx3vh<6+)4exy$}ZORs;j zlZ(ktKrHsjy}3-UZY@M3*cE(M5r%_=!L6hSWCBT3;n>P+Tw5b5w8EjD@a74ARASIlGnty9MLR@?e{-F!+~5tC@LkL`7)|6G{7!p|i(hzJBT${>7w+yNqvT*nitLQQTUURRIq6HG_(rX(WnBr5ohEnI^`G6P}DLdYM3@QI)wK;5f>eq zrN>e4s^d!4ZtU?(qXg4Um2kWV3TU@_xX2^SSH{YFH3$m`tG-94R|$2L-n&YA8l5A}Y32rx)O z`LNEtf%x(g}ORrL_~K; z9hF$s!C91|3kY&)kM3&>Y)h2P3_Cs;Da>sTqLE~>GqnfnjvTi;sdc!kuOTquA{ji6 zdcx@5>s9*7c&#vBiOndYu#qTe2#c@Xp)j!HzZj5z=-@8inbyo6-8*0)n=;VR@Lw6& zsKnn$@fRx{I^{tAzJoh)X9Af$G`0$pD1oy|0@Tqc68KO_;KToB;JXfP|DEw|J-TQ6 z1)GwE`Ubbq7MDLqy>yD@t+g6mu9^%jcG!|P#(i^&$Jo+zUcHBCRObt?)nUdBHLPfS z{+#}07{G!@?mk>&9?r3m--*)$+RP|D~<*ko3l_~0i zJ^A&1PbAZ~nM~K?L&Z|EQP&|(wP8UJd>smJmz1QHb zZBKkIbbt_6ULa)r{}EbuUj1@_P|AN18e5kbPVaS>b_D86ZFkO?y2|T4D&a5@c#dL0 z|1Ti%xYWno&F#^yHdP>JS5-vt3XZw{J7>Q;ub!t6bO@%pEH$KfgQUoToVa#?){gF+ z=sI0p4|21;n_BvGg_=fL_RUjdGK5!EUo-^qXvL>NSNX+@EN*uj?+s`<5S4?vfka zKVFYGuAr72Kb?D;yoLfW;2ijYbvX*Dtoe*v)R}=JSklj#=1Q-~3J;HiBL? zeaAC}>s^amUo0vvYr@c0w6@6kz1RMHch1RktH)R;?kQffZOxLc(oA#CE8T07w>p@P zq!5_iS={CPYdvzeD0$eKYS z4h-_$ImKNtqG*rl&UwAdABg#0(R{Zw!7PmI#tuA~advU@>YcB26+&+*^;VASrLJPw zwtR8vT=%lrI_K}ZimR^MBPf#?Opu0rFU_#*VHAR`{CmyZ0j2l$5>>m=A1tMrx#Ks{ zsjs4L+#cc&6;sXJ_XF8UHPV-$0KT9ks_wSty66l+N-+z*F2`w{E69%oI2ScHgq|)x z&vU!DR!Y8(wFw>98eP`SA#N+F`< zmy*wXDlYUKBvXFTn{)3yU9j|QKhlL>4U$6QAR)(@h1xFvc7Z&zOSpKG56X=wzF6`( zjzWZnuB>MF@S8(j%dwxj6aZ~3VdvS^WYZOQY*W2Xf%)*dwZa-vjD5RgaY~1^!j0!l zpzDNVjGV{My~++t!gVjJxm@5IuUl!&#DoJHVC6nhH-B0%| z(Y$@#eWLFk&4RP;(EeegSTm_jOA%c-ErI5RhJRiK#ZlRA)CH+jh{Zf$bkFSPT`%E` z#&6r9!pY--@bViCu<$U3<$`P3QM^Vi8Lx9gZ$RI3a|&$Vjwj1-P&kpaX5}t{smrfI zTEX#wTmCO$-+nh>1z;QCIe==qN`=>?TAY^VpKI{asK!a}T6eX1f6}_I^+zOsb!)pV zG$D0DT9O(!**`FsKX)WU9Sw_ka#9E0sAq$oXA3t<#h&t~<_+PVI`>b$nXZku z9FtWmUP!T73MPjMpZoBj-gr&zXFe9{tNGZkZ2rvGUTyJu@(b2P)t>dXSC4M-+Y;shgi((_JSeiMR}$G;5@*?Yv2=_|@{2_Nc2jKWoul!ghht5;tiGJ6O8h z{{9LtetmL3tgcT`n-8M8P=fe4O1{_*uezWCVYrtx;ePD3M_r9NRWNfm_jFB*S7S5v zu*H}FGJo#);GEhzWcv+ZU|U~)?1s?ZiS8MGaosSrI?DPx<0?Y!W;p}2Ht|A7*kM@Da0kzTQ_ivza)K+@aP0@Q< zhK+!Jkuw#orrnt=4>z*w<(hWv=*=>=y>O;H`7Fz$Y@s297m8WD2lgSmPp&m_W6ugn zXYFIpCZs0Bq)c26>o9TdK`tEPL4#&+kG!o%{B1|MwFX*3^CqGqMm@}zTOOS#9x^HS zC1GvB79GO1+{6xsV7SGvpGSMk>}MduH>zzok54@V1s_|Z))6$DOa93LzcXIO6JbW_ zF5^7YBVn1)Un(tL)_W6I5%Pzkg%^Q1WeTNk)H884I$< z?4j&AjJ0ppB+kZG()sIckJUCuoY|%kifTw@QR=v!WM+1=Id9ik7w%0A!VA&aR;j{- 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 diff --git a/sonoff/_releasenotes.ino b/sonoff/_releasenotes.ino index ef9fdd6ac..14ffb96d4 100644 --- a/sonoff/_releasenotes.ino +++ b/sonoff/_releasenotes.ino @@ -1,4 +1,11 @@ -/* 3.9.12 20170208 +/* 3.9.13 20170210 + * Add FlashChipSize to Status 4 + * Removed redundant DHT2 option and code + * Add Sonoff SV GPIO pin 05 configuration (#40) + * Add configuration file backup and restore via web page + * Fix latency due to light_sleep mode even if sleep was set to zero (#50) + * + * 3.9.12 20170208 * Fix compile error when webserver is disabled (#30) * Fix possible ESP8285 flash problem by updating Flash Chip Mode to DOUT during OTA upload * Fix hostname issues by not allowing user entry of string formatting and removing from user_config.h (#36) diff --git a/sonoff/sonoff.ino b/sonoff/sonoff.ino index d03751cb7..641d39dbf 100644 --- a/sonoff/sonoff.ino +++ b/sonoff/sonoff.ino @@ -10,7 +10,7 @@ * ==================================================== */ -#define VERSION 0x03090C00 // 3.9.12 +#define VERSION 0x03090D00 // 3.9.13 enum log_t {LOG_LEVEL_NONE, LOG_LEVEL_ERROR, LOG_LEVEL_INFO, LOG_LEVEL_DEBUG, LOG_LEVEL_DEBUG_MORE, LOG_LEVEL_ALL}; enum week_t {Last, First, Second, Third, Fourth}; @@ -59,6 +59,8 @@ enum emul_t {EMUL_NONE, EMUL_WEMO, EMUL_HUE, EMUL_MAX}; #endif #define WIFI_HOSTNAME "%s-%04d" // Expands to - +#define CONFIG_FILE_SIGN 0xA5 // Configuration file signature +#define CONFIG_FILE_XOR 0x5A // Configuration file xor (0 = No Xor) #define HLW_PREF_PULSE 12530 // was 4975us = 201Hz = 1000W #define HLW_UREF_PULSE 1950 // was 1666us = 600Hz = 220V @@ -93,7 +95,7 @@ enum emul_t {EMUL_NONE, EMUL_WEMO, EMUL_HUE, EMUL_MAX}; #endif #define APP_BAUDRATE 115200 // Default serial baudrate -#define MAX_STATUS 10 +#define MAX_STATUS 10 // Max number of status lines enum butt_t {PRESSED, NOT_PRESSED}; @@ -410,7 +412,7 @@ boolean mDNSbegun = false; /********************************************************************************************/ -void CFG_DefaultSet() +void CFG_DefaultSet1() { memset(&sysCfg, 0x00, sizeof(SYSCFG)); @@ -418,7 +420,11 @@ void CFG_DefaultSet() sysCfg.saveFlag = 0; sysCfg.version = VERSION; sysCfg.bootcount = 0; - sysCfg.migflg = 0; +} + +void CFG_DefaultSet2() +{ + sysCfg.migflg = 0xA5; sysCfg.savedata = SAVE_DATA; sysCfg.savestate = SAVE_STATE; sysCfg.module = MODULE; @@ -537,14 +543,16 @@ void CFG_DefaultSet() void CFG_Default() { addLog_P(LOG_LEVEL_NONE, PSTR("Config: Use default configuration")); - CFG_DefaultSet(); + CFG_DefaultSet1(); + CFG_DefaultSet2(); CFG_Save(); } void CFG_Migrate_Part2() { addLog_P(LOG_LEVEL_NONE, PSTR("Config: Migrating configuration")); - CFG_DefaultSet(); + CFG_DefaultSet1(); + CFG_DefaultSet2(); sysCfg.seriallog_level = sysCfg2.seriallog_level; sysCfg.syslog_level = sysCfg2.syslog_level; @@ -1300,6 +1308,7 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) } else if (!strcmp(type,"SLEEP")) { if ((data_len > 0) && (payload >= 0) && (payload < 251)) { + if ((!sysCfg.sleep && payload) || (sysCfg.sleep && !payload)) restartflag = 2; sysCfg.sleep = payload; sleep = payload; // restartflag = 2; @@ -1877,9 +1886,9 @@ void publish_status(uint8_t payload) } if ((payload == 0) || (payload == 4)) { - snprintf_P(svalue, sizeof(svalue), PSTR("{\"StatusMEM\":{\"ProgramSize\":%d, \"Free\":%d, \"Heap\":%d, \"SpiffsStart\":%d, \"SpiffsSize\":%d, \"FlashSize\":%d, \"ProgramFlashSize\":%d}}"), + snprintf_P(svalue, sizeof(svalue), PSTR("{\"StatusMEM\":{\"ProgramSize\":%d, \"Free\":%d, \"Heap\":%d, \"SpiffsStart\":%d, \"SpiffsSize\":%d, \"FlashSize\":%d, \"ProgramFlashSize\":%d, \"FlashChipMode\",%d}}"), ESP.getSketchSize()/1024, ESP.getFreeSketchSpace()/1024, ESP.getFreeHeap()/1024, ((uint32_t)&_SPIFFS_start - 0x40200000)/1024, - (((uint32_t)&_SPIFFS_end - 0x40200000) - ((uint32_t)&_SPIFFS_start - 0x40200000))/1024, ESP.getFlashChipRealSize()/1024, ESP.getFlashChipSize()/1024); + (((uint32_t)&_SPIFFS_end - 0x40200000) - ((uint32_t)&_SPIFFS_start - 0x40200000))/1024, ESP.getFlashChipRealSize()/1024, ESP.getFlashChipSize()/1024, ESP.getFlashChipMode()); mqtt_publish_topic_P(option, PSTR("STATUS4"), svalue); } diff --git a/sonoff/sonoff_template.h b/sonoff/sonoff_template.h index b664637c5..0b2a09944 100644 --- a/sonoff/sonoff_template.h +++ b/sonoff/sonoff_template.h @@ -17,41 +17,41 @@ #define GPIO_SWT1 8 // User connected external switches #define GPIO_SENSOR_END 9 -#define GPIO_SWT2 9 -#define GPIO_SWT3 10 -#define GPIO_SWT4 11 -#define GPIO_KEY1 12 // Button usually connected to GPIO0 -#define GPIO_KEY2 13 -#define GPIO_KEY3 14 -#define GPIO_KEY4 15 -#define GPIO_REL1 16 // Relays -#define GPIO_REL2 17 -#define GPIO_REL3 18 -#define GPIO_REL4 19 -#define GPIO_REL1_INV 20 -#define GPIO_REL2_INV 21 -#define GPIO_REL3_INV 22 -#define GPIO_REL4_INV 23 -#define GPIO_LED1 24 // Leds -#define GPIO_LED2 25 -#define GPIO_LED3 26 -#define GPIO_LED4 27 -#define GPIO_LED1_INV 28 -#define GPIO_LED2_INV 29 -#define GPIO_LED3_INV 30 -#define GPIO_LED4_INV 31 -#define GPIO_PWM0 32 // Cold -#define GPIO_PWM1 33 // Warm -#define GPIO_PWM2 34 // Red (swapped with Blue from original) -#define GPIO_PWM3 35 // Green -#define GPIO_PWM4 36 // Blue (swapped with Red from original) -#define GPIO_RXD 37 // Serial interface -#define GPIO_TXD 38 // Serial interface -#define GPIO_HLW_SEL 39 // HLW8012 Sel output (Sonoff Pow) -#define GPIO_HLW_CF1 40 // HLW8012 CF1 voltage / current (Sonoff Pow) -#define GPIO_HLW_CF 41 // HLW8012 CF power (Sonoff Pow) -#define GPIO_USER 42 // User configurable -#define GPIO_MAX 43 +#define GPIO_SWT2 GPIO_SENSOR_END +#define GPIO_SWT3 GPIO_SENSOR_END +1 +#define GPIO_SWT4 GPIO_SENSOR_END +2 +#define GPIO_KEY1 GPIO_SENSOR_END +3 // Button usually connected to GPIO0 +#define GPIO_KEY2 GPIO_SENSOR_END +4 +#define GPIO_KEY3 GPIO_SENSOR_END +5 +#define GPIO_KEY4 GPIO_SENSOR_END +6 +#define GPIO_REL1 GPIO_SENSOR_END +7 // Relays +#define GPIO_REL2 GPIO_SENSOR_END +8 +#define GPIO_REL3 GPIO_SENSOR_END +9 +#define GPIO_REL4 GPIO_SENSOR_END +10 +#define GPIO_REL1_INV GPIO_SENSOR_END +11 +#define GPIO_REL2_INV GPIO_SENSOR_END +12 +#define GPIO_REL3_INV GPIO_SENSOR_END +13 +#define GPIO_REL4_INV GPIO_SENSOR_END +14 +#define GPIO_LED1 GPIO_SENSOR_END +15 // Leds +#define GPIO_LED2 GPIO_SENSOR_END +16 +#define GPIO_LED3 GPIO_SENSOR_END +17 +#define GPIO_LED4 GPIO_SENSOR_END +18 +#define GPIO_LED1_INV GPIO_SENSOR_END +19 +#define GPIO_LED2_INV GPIO_SENSOR_END +20 +#define GPIO_LED3_INV GPIO_SENSOR_END +21 +#define GPIO_LED4_INV GPIO_SENSOR_END +22 +#define GPIO_PWM0 GPIO_SENSOR_END +23 // Cold +#define GPIO_PWM1 GPIO_SENSOR_END +24 // Warm +#define GPIO_PWM2 GPIO_SENSOR_END +25 // Red (swapped with Blue from original) +#define GPIO_PWM3 GPIO_SENSOR_END +26 // Green +#define GPIO_PWM4 GPIO_SENSOR_END +27 // Blue (swapped with Red from original) +#define GPIO_RXD GPIO_SENSOR_END +28 // Serial interface +#define GPIO_TXD GPIO_SENSOR_END +29 // Serial interface +#define GPIO_HLW_SEL GPIO_SENSOR_END +30 // HLW8012 Sel output (Sonoff Pow) +#define GPIO_HLW_CF1 GPIO_SENSOR_END +31 // HLW8012 CF1 voltage / current (Sonoff Pow) +#define GPIO_HLW_CF GPIO_SENSOR_END +32 // HLW8012 CF power (Sonoff Pow) +#define GPIO_USER GPIO_SENSOR_END +33 // User configurable +#define GPIO_MAX GPIO_SENSOR_END +34 /********************************************************************************************/ @@ -108,7 +108,8 @@ const mytmplt modules[MAXMODULE] PROGMEM = { 0, 0, GPIO_USER, // GPIO03 Serial TXD and Optional sensor GPIO_USER, // GPIO04 Optional sensor - 0, 0, 0, 0, 0, 0, 0, + GPIO_USER, // GPIO05 Optional sensor + 0, 0, 0, 0, 0, 0, GPIO_REL1, // GPIO12 Red Led and Relay (0 = Off, 1 = On) GPIO_LED1_INV, // GPIO13 Green Led (0 = On, 1 = Off) GPIO_USER, // GPIO14 Optional sensor @@ -237,7 +238,8 @@ const mytmplt modules[MAXMODULE] PROGMEM = { GPIO_USER, // GPIO02 Optional sensor GPIO_USER, // GPIO03 Serial TXD and Optional sensor GPIO_USER, // GPIO04 Optional sensor - 0, 0, 0, 0, 0, 0, 0, + GPIO_USER, // GPIO05 Optional sensor + 0, 0, 0, 0, 0, 0, GPIO_REL1, // GPIO12 Red Led and Relay (0 = Off, 1 = On) GPIO_LED1_INV, // GPIO13 Green Led (0 = On, 1 = Off) GPIO_USER, // GPIO14 Optional sensor diff --git a/sonoff/support.ino b/sonoff/support.ino index 0fd393e78..9e9dcbf52 100644 --- a/sonoff/support.ino +++ b/sonoff/support.ino @@ -436,7 +436,8 @@ void WIFI_begin(uint8_t flag) WiFi.disconnect(); WiFi.mode(WIFI_STA); // Disable AP mode // if (sysCfg.sleep) wifi_set_sleep_type(LIGHT_SLEEP_T); // Allow light sleep during idle times - WiFi.setSleepMode(WIFI_LIGHT_SLEEP); // Allow light sleep during idle times + if (sysCfg.sleep) WiFi.setSleepMode(WIFI_LIGHT_SLEEP); // Allow light sleep during idle times +// WiFi.setSleepMode(WIFI_LIGHT_SLEEP); // Allow light sleep during idle times // if (WiFi.getPhyMode() != WIFI_PHY_MODE_11N) WiFi.setPhyMode(WIFI_PHY_MODE_11N); if (!WiFi.getAutoConnect()) WiFi.setAutoConnect(true); // WiFi.setAutoReconnect(true); diff --git a/sonoff/user_config.h b/sonoff/user_config.h index 435b352d7..d428bee39 100644 --- a/sonoff/user_config.h +++ b/sonoff/user_config.h @@ -117,7 +117,6 @@ #define PRESSURE_RESOLUTION 1 // Maximum number of decimals (0 - 3) showing sensor Pressure // -- Sensor code selection ----------------------- -//#define USE_DHT2 // Optional using Adafruit DHT library //#define USE_DS18x20 // Optional using OneWire library for multiple DS18B20 and/or DS18S20 #define USE_I2C // I2C using library wire (+10k code, 0.2k mem) - Disable by // diff --git a/sonoff/webserver.ino b/sonoff/webserver.ino index 554993209..9784eb12e 100644 --- a/sonoff/webserver.ino +++ b/sonoff/webserver.ino @@ -110,7 +110,9 @@ const char HTTP_BTN_MENU3[] PROGMEM = const char HTTP_BTN_MENU4[] PROGMEM = "
" "
" - "
"; + "
" + "
" + "
"; const char HTTP_BTN_MAIN[] PROGMEM = "

"; const char HTTP_BTN_CONF[] PROGMEM = @@ -170,6 +172,15 @@ const char HTTP_FORM_OTHER3[] PROGMEM = #endif // USE_EMULATION const char HTTP_FORM_END[] PROGMEM = "
"; +const char HTTP_FORM_RST[] PROGMEM = + "
" + "
 Restore configuration " + "
" + "

" + "
" + "
" + "
" + ""; const char HTTP_FORM_UPG[] PROGMEM = "
" "
 Upgrade by web server " @@ -319,7 +330,8 @@ DNSServer *dnsServer; ESP8266WebServer *webServer; boolean _removeDuplicateAPs = true; -int _minimumQuality = -1, _httpflag = HTTP_OFF, _uploaderror = 0, _colcount; +int _minimumQuality = -1; +uint8_t _httpflag = HTTP_OFF, _uploaderror = 0, _uploadfiletype, _colcount; void startWebserver(int type, IPAddress ipweb) { @@ -341,10 +353,12 @@ void startWebserver(int type, IPAddress ipweb) } webServer->on("/lg", handleLog); webServer->on("/co", handleOther); + webServer->on("/dl", handleDownload); webServer->on("/sv", handleSave); + webServer->on("/rs", handleRestore); webServer->on("/rt", handleReset); webServer->on("/up", handleUpgrade); - webServer->on("/u1", handleUpgradeStart); + webServer->on("/u1", handleUpgradeStart); // OTA webServer->on("/u2", HTTP_POST, handleUploadDone, handleUploadLoop); webServer->on("/cm", handleCmnd); webServer->on("/cs", handleConsole); @@ -508,12 +522,16 @@ void handleRoot() } } +boolean httpUser() +{ + boolean status = (_httpflag == HTTP_USER); + if (status) handleRoot(); + return status; +} + void handleConfig() { - if (_httpflag == HTTP_USER) { - handleRoot(); - return; - } + if (httpUser()) return; addLog_P(LOG_LEVEL_DEBUG, PSTR("HTTP: Handle config")); String page = FPSTR(HTTP_HEAD); @@ -527,11 +545,7 @@ void handleConfig() void handleModule() { - if (_httpflag == HTTP_USER) { - handleRoot(); - return; - } - + if (httpUser()) return; char stemp[20]; addLog_P(LOG_LEVEL_DEBUG, PSTR("HTTP: Handle Module config")); @@ -585,10 +599,7 @@ void handleWifi0() void handleWifi(boolean scan) { - if (_httpflag == HTTP_USER) { - handleRoot(); - return; - } + if (httpUser()) return; char log[LOGSZ]; addLog_P(LOG_LEVEL_DEBUG, PSTR("HTTP: Handle Wifi config")); @@ -686,10 +697,7 @@ void handleWifi(boolean scan) void handleMqtt() { - if (_httpflag == HTTP_USER) { - handleRoot(); - return; - } + if (httpUser()) return; addLog_P(LOG_LEVEL_DEBUG, PSTR("HTTP: Handle MQTT config")); String page = FPSTR(HTTP_HEAD); @@ -711,10 +719,7 @@ void handleMqtt() void handleLog() { - if (_httpflag == HTTP_USER) { - handleRoot(); - return; - } + if (httpUser()) return; addLog_P(LOG_LEVEL_DEBUG, PSTR("HTTP: Handle Log config")); String page = FPSTR(HTTP_HEAD); @@ -760,10 +765,7 @@ void handleLog() void handleOther() { - if (_httpflag == HTTP_USER) { - handleRoot(); - return; - } + if (httpUser()) return; addLog_P(LOG_LEVEL_DEBUG, PSTR("HTTP: Handle other config")); char stemp[40]; @@ -794,12 +796,33 @@ void handleOther() showPage(page); } +void handleDownload() +{ + if (httpUser()) return; + addLog_P(LOG_LEVEL_DEBUG, PSTR("HTTP: Handle download config")); + + uint8_t buffer[sizeof(sysCfg)]; + + WiFiClient myClient = webServer->client(); + webServer->setContentLength(4096); + String attachment = F("attachment; filename=Config_"); + attachment += sysCfg.friendlyname[0]; + attachment += F("_"); + attachment += Version; + attachment += F(".dmp"); + webServer->sendHeader("Content-Disposition", attachment); + webServer->send(200, "application/octet-stream", ""); + memcpy(buffer, &sysCfg, sizeof(sysCfg)); + buffer[0] = CONFIG_FILE_SIGN; + buffer[1] = (!CONFIG_FILE_XOR)?0:1; + if (buffer[1]) for (uint16_t i = 2; i < sizeof(buffer); i++) buffer[i] ^= (CONFIG_FILE_XOR +i); + myClient.write((const char*)buffer, sizeof(buffer)); +} + void handleSave() { - if (_httpflag == HTTP_USER) { - handleRoot(); - return; - } + if (httpUser()) return; + char log[LOGSZ], stemp[20]; byte what = 0, restart; String result = ""; @@ -903,10 +926,8 @@ void handleSave() void handleReset() { - if (_httpflag == HTTP_USER) { - handleRoot(); - return; - } + if (httpUser()) return; + char svalue[MESSZ]; addLog_P(LOG_LEVEL_DEBUG, PSTR("HTTP: Reset parameters")); @@ -922,12 +943,24 @@ void handleReset() do_cmnd(svalue); } +void handleRestore() +{ + if (httpUser()) return; + addLog_P(LOG_LEVEL_DEBUG, PSTR("HTTP: Handle restore")); + + String page = FPSTR(HTTP_HEAD); + page.replace("{v}", "Restore Configuration"); + page += FPSTR(HTTP_FORM_RST); + page += FPSTR(HTTP_BTN_CONF); + showPage(page); + + _uploaderror = 0; + _uploadfiletype = 1; +} + void handleUpgrade() { - if (_httpflag == HTTP_USER) { - handleRoot(); - return; - } + if (httpUser()) return; addLog_P(LOG_LEVEL_DEBUG, PSTR("HTTP: Handle upgrade")); String page = FPSTR(HTTP_HEAD); @@ -938,14 +971,12 @@ void handleUpgrade() showPage(page); _uploaderror = 0; + _uploadfiletype = 0; } void handleUpgradeStart() { - if (_httpflag == HTTP_USER) { - handleRoot(); - return; - } + if (httpUser()) return; char svalue[MESSZ]; addLog_P(LOG_LEVEL_DEBUG, PSTR("HTTP: Firmware upgrade start")); @@ -969,12 +1000,10 @@ void handleUpgradeStart() void handleUploadDone() { - if (_httpflag == HTTP_USER) { - handleRoot(); - return; - } + if (httpUser()) return; + addLog_P(LOG_LEVEL_DEBUG, PSTR("HTTP: File upload done")); - addLog_P(LOG_LEVEL_DEBUG, PSTR("HTTP: Firmware upload done")); + char log[LOGSZ]; WIFI_configCounter(); restartflag = 0; mqttcounter = 0; @@ -984,28 +1013,36 @@ void handleUploadDone() page += F("
Upload "); if (_uploaderror) { page += F("failed

"); + String error = ""; if (_uploaderror == 1) { - page += F("No file selected"); + error = F("No file selected"); } else if (_uploaderror == 2) { - page += F("File size is larger than available free space"); + error = F("File size is larger than available free space"); } else if (_uploaderror == 3) { - page += F("File magic header does not start with 0xE9"); + error = F("File magic header does not start with 0xE9"); } else if (_uploaderror == 4) { - page += F("File flash size is larger than device flash size"); + error = F("File flash size is larger than device flash size"); } else if (_uploaderror == 5) { - page += F("File upload buffer miscompare"); + error = F("File upload buffer miscompare"); } else if (_uploaderror == 6) { - page += F("Upload failed. Enable logging option 3 for more information"); + error = F("Upload failed. Enable logging option 3 for more information"); } else if (_uploaderror == 7) { - page += F("Upload aborted"); + error = F("Upload aborted"); + } else if (_uploaderror == 8) { + error = F("Invalid configuration file"); + } else if (_uploaderror == 9) { + error = F("Configuration file too large"); } else { - page += F("Upload error code "); - page += String(_uploaderror); + error = F("Upload error code "); + error += String(_uploaderror); } - if (Update.hasError()) { + page += error; + if (!_uploadfiletype && Update.hasError()) { page += F("

Update error code (see Updater.cpp) "); page += String(Update.getError()); } + snprintf_P(log, sizeof(log), PSTR("Upload: Error - %s"), error.c_str()); + addLog(LOG_LEVEL_DEBUG, log); } else { page += F("successful


Device will restart in a few seconds"); restartflag = 2; @@ -1023,7 +1060,7 @@ void handleUploadLoop() if (_httpflag == HTTP_USER) return; if (_uploaderror) { - Update.end(); + if (!_uploadfiletype) Update.end(); return; } @@ -1031,82 +1068,97 @@ void handleUploadLoop() if (upload.status == UPLOAD_FILE_START) { restartflag = 60; - mqttcounter = 60; - if (upload.filename.c_str()[0] == 0) - { + if (upload.filename.c_str()[0] == 0) { _uploaderror = 1; return; } -#ifdef USE_EMULATION - UDP_Disconnect(); -#endif // USE_EMULATION - if (sysCfg.mqtt_enabled) mqttClient.disconnect(); - snprintf_P(log, sizeof(log), PSTR("Upload: File %s ..."), upload.filename.c_str()); addLog(LOG_LEVEL_INFO, log); - - uint32_t maxSketchSpace = (ESP.getFreeSketchSpace() - 0x1000) & 0xFFFFF000; - if (!Update.begin(maxSketchSpace)) { //start with max available size - if (_serialoutput) Update.printError(Serial); - _uploaderror = 2; - return; + if (!_uploadfiletype) { + mqttcounter = 60; +#ifdef USE_EMULATION + UDP_Disconnect(); +#endif // USE_EMULATION + if (sysCfg.mqtt_enabled) mqttClient.disconnect(); + uint32_t maxSketchSpace = (ESP.getFreeSketchSpace() - 0x1000) & 0xFFFFF000; + if (!Update.begin(maxSketchSpace)) { //start with max available size + if (_serialoutput) Update.printError(Serial); + _uploaderror = 2; + return; + } } _colcount = 0; } else if (!_uploaderror && (upload.status == UPLOAD_FILE_WRITE)) { if (upload.totalSize == 0) { - if (upload.buf[0] != 0xE9) { - addLog_P(LOG_LEVEL_DEBUG, PSTR("Upload: File magic header does not start with 0xE9")); - _uploaderror = 3; + if (_uploadfiletype) { + if (upload.buf[0] != CONFIG_FILE_SIGN) { + _uploaderror = 8; + return; + } + if (upload.currentSize > sizeof(sysCfg)) { + _uploaderror = 9; + return; + } + } else { + if (upload.buf[0] != 0xE9) { + _uploaderror = 3; + return; + } + uint32_t bin_flash_size = ESP.magicFlashChipSize((upload.buf[3] & 0xf0) >> 4); + if(bin_flash_size > ESP.getFlashChipRealSize()) { + _uploaderror = 4; + return; + } + if ((sysCfg.module == SONOFF_TOUCH) || (sysCfg.module == SONOFF_4CH)) { + upload.buf[2] = 3; // DOUT - ESP8285 + addLog_P(LOG_LEVEL_DEBUG, PSTR("FLSH: Updated Flash Chip Mode to 3")); + } + } + } + if (_uploadfiletype) { // config + if (!_uploaderror) { + if (upload.buf[1]) for (uint16_t i = 2; i < upload.currentSize; i++) upload.buf[i] ^= (CONFIG_FILE_XOR +i); + CFG_DefaultSet2(); + memcpy((char*)&sysCfg +16, upload.buf +16, upload.currentSize -16); + } + } else { // firmware + if (!_uploaderror && (Update.write(upload.buf, upload.currentSize) != upload.currentSize)) { + if (_serialoutput) Update.printError(Serial); + _uploaderror = 5; return; } - uint32_t bin_flash_size = ESP.magicFlashChipSize((upload.buf[3] & 0xf0) >> 4); - if(bin_flash_size > ESP.getFlashChipRealSize()) { - addLog_P(LOG_LEVEL_DEBUG, PSTR("Upload: File flash size is larger than device flash size")); - _uploaderror = 4; - return; - } - if ((sysCfg.module == SONOFF_TOUCH) || (sysCfg.module == SONOFF_4CH)) { - upload.buf[2] = 3; // DOUT - ESP8285 - addLog_P(LOG_LEVEL_DEBUG, PSTR("FLSH: Updated Flash Chip Mode to 3")); + if (_serialoutput) { + Serial.printf("."); + _colcount++; + if (!(_colcount % 80)) Serial.println(); } } - if (!_uploaderror && (Update.write(upload.buf, upload.currentSize) != upload.currentSize)) { - if (_serialoutput) Update.printError(Serial); - _uploaderror = 5; - return; - } - if (_serialoutput) { - Serial.printf("."); - _colcount++; - if (!(_colcount % 80)) Serial.println(); - } - } else if(!_uploaderror && (upload.status == UPLOAD_FILE_END)){ + } else if(!_uploaderror && (upload.status == UPLOAD_FILE_END)) { if (_serialoutput && (_colcount % 80)) Serial.println(); - if (Update.end(true)) { // true to set the size to the current progress + if (!_uploadfiletype) { + if (!Update.end(true)) { // true to set the size to the current progress + if (_serialoutput) Update.printError(Serial); + _uploaderror = 6; + return; + } + } + if (!_uploaderror) { snprintf_P(log, sizeof(log), PSTR("Upload: Successful %u bytes. Restarting"), upload.totalSize); addLog(LOG_LEVEL_INFO, log); - } else { - if (_serialoutput) Update.printError(Serial); - _uploaderror = 6; - return; } } else if(upload.status == UPLOAD_FILE_ABORTED) { - addLog_P(LOG_LEVEL_DEBUG, PSTR("Upload: Update was aborted")); restartflag = 0; mqttcounter = 0; _uploaderror = 7; - Update.end(); + if (!_uploadfiletype) Update.end(); } delay(0); } void handleCmnd() { - if (_httpflag == HTTP_USER) { - handleRoot(); - return; - } + if (httpUser()) return; char svalue[MESSZ]; addLog_P(LOG_LEVEL_DEBUG, PSTR("HTTP: Handle cmnd")); @@ -1147,10 +1199,7 @@ void handleCmnd() void handleConsole() { - if (_httpflag == HTTP_USER) { - handleRoot(); - return; - } + if (httpUser()) return; char svalue[MESSZ]; addLog_P(LOG_LEVEL_DEBUG, PSTR("HTTP: Handle console")); @@ -1170,10 +1219,7 @@ void handleConsole() void handleAjax() { - if (_httpflag == HTTP_USER) { - handleRoot(); - return; - } + if (httpUser()) return; String message = ""; uint16_t size = 0; @@ -1201,10 +1247,7 @@ void handleAjax() void handleInfo() { - if (_httpflag == HTTP_USER) { - handleRoot(); - return; - } + if (httpUser()) return; addLog_P(LOG_LEVEL_DEBUG, PSTR("HTTP: Handle info")); int freeMem = ESP.getFreeHeap(); @@ -1302,10 +1345,7 @@ void handleInfo() void handleRestart() { - if (_httpflag == HTTP_USER) { - handleRoot(); - return; - } + if (httpUser()) return; addLog_P(LOG_LEVEL_DEBUG, PSTR("HTTP: Restarting")); String page = FPSTR(HTTP_HEAD); diff --git a/sonoff/xsns_dht2.ino b/sonoff/xsns_dht2.ino deleted file mode 100644 index 5b885625a..000000000 --- a/sonoff/xsns_dht2.ino +++ /dev/null @@ -1,93 +0,0 @@ -/* -Copyright (c) 2017 Theo Arends. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -- Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. -- Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifdef USE_DHT2 -/*********************************************************************************************\ - * DHT11, DHT21 (AM2301), DHT22 (AM2302, AM2321) - Temperature and Humidy - * - * Reading temperature or humidity takes about 250 milliseconds! - * Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor) -\*********************************************************************************************/ - -// WARNING: To use this DHT library you'll need to delete files DHT_U.cpp and DHT_U.h if present - -#include "DHT.h" - -DHT dht2(pin[GPIO_DHT11], dht_type); - -float dht2_t, dht2_h = 0; - -boolean dht_readTempHum(bool S, float &t, float &h) -{ - h = dht2.readHumidity(); - t = dht2.readTemperature(S); - if (!isnan(t)) dht2_t = t; else if (dht2_h) t = dht2_t; - if (!isnan(h)) dht2_h = h; else if (dht2_h) h = dht2_h; - return (!isnan(t) && !isnan(h)); -} - -void dht_init() -{ - dht2.begin(); -} - -/*********************************************************************************************\ - * Presentation -\*********************************************************************************************/ - -void dht_mqttPresent(char* svalue, uint16_t ssvalue, uint8_t* djson) -{ - char stemp1[10], stemp2[10]; - float t, h; - - if (dht_readTempHum(TEMP_CONVERSION, t, h)) { // Read temperature - dtostrf(t, 1, TEMP_RESOLUTION &3, stemp1); - dtostrf(h, 1, HUMIDITY_RESOLUTION &3, stemp2); - snprintf_P(svalue, ssvalue, PSTR("%s, \"DHT\":{\"Temperature\":\"%s\", \"Humidity\":\"%s\"}"), svalue, stemp1, stemp2); - *djson = 1; -#ifdef USE_DOMOTICZ - domoticz_sensor2(stemp1, stemp2); -#endif // USE_DOMOTICZ - } -} - -#ifdef USE_WEBSERVER -String dht_webPresent() -{ - char stemp[10], sconv[10]; - float t, h; - String page = ""; - - if (dht_readTempHum(TEMP_CONVERSION, t, h)) { // Read temperature as Celsius (the default) - snprintf_P(sconv, sizeof(sconv), PSTR("°%c"), (TEMP_CONVERSION) ? 'F' : 'C'); - dtostrf(t, 1, TEMP_RESOLUTION &3, stemp); - page += F("DHT Temperature: "); page += stemp; page += sconv; page += F(""); - dtostrf(h, 1, HUMIDITY_RESOLUTION &3, stemp); - page += F("DHT Humidity: "); page += stemp; page += F("%"); - } - return page; -} -#endif // USE_WEBSERVER -#endif // USE_DHT2