From 33725209829d161a7ec2663607826dd2ccf4efd0 Mon Sep 17 00:00:00 2001 From: Qrome <32021227+Qrome@users.noreply.github.com> Date: Tue, 1 May 2018 18:19:11 -0700 Subject: [PATCH] Initial Upload for 1.0 release --- README.md | 96 ++++ images/Thumbs.db | Bin 0 -> 39424 bytes images/printing_time.jpg | Bin 0 -> 145102 bytes images/shot_01.png | Bin 0 -> 211547 bytes images/shot_02.png | Bin 0 -> 161914 bytes images/shot_03.png | Bin 0 -> 223503 bytes images/shot_04.png | Bin 0 -> 159257 bytes images/temperatures.jpg | Bin 0 -> 163150 bytes images/time_remaining.jpg | Bin 0 -> 158748 bytes printermonitor/OctoPrintClient.cpp | 254 ++++++++++ printermonitor/OctoPrintClient.h | 87 ++++ printermonitor/Settings.h | 76 +++ printermonitor/TimeClient.cpp | 152 ++++++ printermonitor/TimeClient.h | 62 +++ printermonitor/printermonitor.ino | 775 +++++++++++++++++++++++++++++ 15 files changed, 1502 insertions(+) create mode 100644 README.md create mode 100644 images/Thumbs.db create mode 100644 images/printing_time.jpg create mode 100644 images/shot_01.png create mode 100644 images/shot_02.png create mode 100644 images/shot_03.png create mode 100644 images/shot_04.png create mode 100644 images/temperatures.jpg create mode 100644 images/time_remaining.jpg create mode 100644 printermonitor/OctoPrintClient.cpp create mode 100644 printermonitor/OctoPrintClient.h create mode 100644 printermonitor/Settings.h create mode 100644 printermonitor/TimeClient.cpp create mode 100644 printermonitor/TimeClient.h create mode 100644 printermonitor/printermonitor.ino diff --git a/README.md b/README.md new file mode 100644 index 0000000..22bd953 --- /dev/null +++ b/README.md @@ -0,0 +1,96 @@ +/* The MIT License (MIT) + +Copyright (c) 2018 David Payne + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ + +# Printer Monitor (OctoPrint 3D Printer Monitor) + +## Features: +* Displays the print status from OctoPrint Server +* Estimated time remaining +* Time Printing +* Percentage complete +* Progress bar +* Screen turns off when printer is turned off or disconnected +* Screen turns on when printer is Operational or connected +* Sample rate is every 60 seconds when not printing +* Sample rate is every 10 seconds when printing +* Fully configurable from the web interface (not required to update Settings.h) +* Supports OTA (loading firmware over WiFi connection on same LAN) +* Basic Athentication to protect your settings + +## Required Parts: +* Wemos D1 Mini: https://amzn.to/2qLyKJd +* 0.96" OLED I2C 128x64 Display (12864) SSD1306: https://amzn.to/2JDEAUF + +## Wiring for the Wemos D1 Mini to the I2C SSD1306 OLED +SDA -> D2 +SCL -> D5 +VCC -> 5V+ +GND -> GND- + +## 3D Printed Case by Qrome: +https://www.thingiverse.com/thing:2884823 + +## Compiling and Loading to Wemos D1 Mini +It is recommended to use Arduino IDE. You will need to configure Arduino IDE to work with the Wemos board and USB port and installed the required USB drivers etc. +* USB CH340G drivers: https://wiki.wemos.cc/downloads +* Enter http://arduino.esp8266.com/stable/package_esp8266com_index.json into Additional Board Manager URLs field. You can add multiple URLs, separating them with commas. This will add support for the Wemos D1 Mini to Arduino IDE. +* Open Boards Manager from Tools > Board menu and install esp8266 platform (and don't forget to select your ESP8266 board from Tools > Board menu after installation). +* Select Board: "WeMos D1 R2 & mini" + +**Packages** -- the following packages and libraries are used (download and install): +ESP8266WiFi.h +ESP8266WebServer.h +ArduinoJson.h --> https://github.com/bblanchon/ArduinoJson +WiFiManager.h --> https://github.com/tzapu/WiFiManager +ESP8266mDNS.h +ArduinoOTA.h --> Arduino OTA Library +"SSD1306Wire.h" --> https://github.com/ThingPulse/esp8266-oled-ssd1306 +"OLEDDisplayUi.h" + +## Initial Configuration +You will can update the **Settings.h** file with your OctoPrint API Key or do it from the web interface. +* Your OctoPrint API Key from your OctoPrint -> User Settings -> Current API Key + +NOTE: The settings in the Settings.h are the default settings for the first loading. After loading you will manage changes to the settings via the Web Interface. If you want to change settings again in the settings.h, you will need to erase the file system on the Wemos or use the “Reset Settings” option in the Web Interface. + +## Web Interface +The Marquee Scroller uses the **WiFiManager** so when it can't find the last network it was connected to +it will become a **AP Hotspot** -- connect to it with your phone and you can then enter your WiFi connection information. + +After connected to your WiFi network it will display the IP addressed assigned to it and that can be +used to open a browser to the Web Interface. Everything can be configured there. + +
+
+
+
+
+
?CV(L=WcZg^#@y4vQ5l7Nq$)5R9$t{qvaCQCG|K zs=bh}CWo|DUCR{mO6ZEOtkNcV541b2u%2D68BSr9XNg_HjdKG7ZMiukA-n80glCMZ zMphi>kz(a)%4ZNQHDC+fJHZkhc77_a7y&>w!4(C&B>wPHlDXf{SK1~t-88H*4Go H%D}mD#>>&y^Nm$O_v(iNeUB|aAx*c^n2{JZNwPeX5~~$2+)g zwcM$E$<|D(8u5ARRM9^=Sb)2&SJWUJ1K9=k$JFt4M*}GKjHzDs1|r?B|}Zl2HN4 z>`$C&R&DJ%8&HtbZv>A3XyHU}t
c8Ki-OH19*YbIV4AmWi_O 7LxO>lScvq=!(3K;qCrY_FoJAFOWEG!*)$6sC^ zm8PApE33wgp+#9pp-ICb(@ogq)eAU?{FUq%HfBqTWTMd#> y|2TULFQ@ftmhqG&w4{7wt@xmD53@RaB$v1zM{J@i~DENHqtz#W?~ z+~&WM{t-UA|9Nk&(BqwN^aaJ|y2dxr`Mz3m($PW;SG_emi(%HzYY_ v`8fA|S*oXyw?V0beY7M% znOPGk{6y9sDeg$X?WOlx#HR8Ts6DjO9j$SQ=9=9s J=%qGbfQuXIn|&(b*P^?ecnn>V>KPgKO#W3`??+shd= zb;O8w^e934YL7)Mc*p=+v;MQu90%V;0jVK;IJny;U!QIs$G$9wEss{FO_iph@vp}L z#jBj)k{s;H^dJVbfH%}!Fd-$WT-4tX6Uywaf5U;|S5LBk)bJKfwTTke%d9@Fq~)>n z41tRy1YlqPIdcF>!E`j z59z9m-isn{dN&nJz|yzhSaOw(OFZ_LI+dPJmRH}8{6&&Q$&T62jEI?{np`Tn_%4>m zWI+-5VL=sdEjcSJ8dC5c9z+g+_e?63Sq$&`$egE{e<~`yc11XGwRQTsNW)h u^G5FE8p?Me)%bc0ZFp8VQ<{uSo#<_R-@* jfz=#Gin5tYUHghVkEawMW0PSGvCaL^8v z_6>DjrGJsFRAG!_2;fPyk`@S&gT^3gy`Ee#nPgHx`VCu}1ex29BoFuAGR{xyWDPUV z $Lwr7Zw5mK=^_6 S$b+5 z?!F3|G+0}u74aML;4*JJ{z&S}!tb12TG=s3pMl%=)QSP5J}&Q}!W#NKr+`y!s~r*Z z99QGAxj}i{yZ0xN6becm33S|>%NickVxWI<&x5Vc>0dcsy)o4@^1r8FwMA;^z}LMM z6Zf^#kauFoP@_`W!NivTv3Es=aG8TA9%ZuJMoDBM$G}BH@&!f;mS8H8vIOdH&~V7h z- zdo)3U4P)TsMNveGxIodwYr!A~2tBjZ}>j{@5ZL^gk z#ZAb;%MPCy8H>3yJJoD&!P1S=Q6x>5@KJ>u z`l6z|R%;QZSPzH1&_}1R?;Wegr@weL_5bjY0=H9qkZ6>uCMo z8>aTfz+v~m39Nd>bSv|hR%5L}_ouqBY%hD1vn|_ryn>cXRW6@&?SqTtYGX+i%zO+s z^jEt&?*P!d^cysw0q-#QF7=CN6dB}K`f-(zTMBs%4>u_I3MBz+i@o|M7Ekp`LI!Um z`(eU&)b#k;qe(>EinOv+GE+niVtEyPtDZ$>Z g>P2I zT %wcT-^&xIDZ&o85WcTutS)vyp ifH#yYIsDb$2b ziZv$ju}lE_RTv$GwSc{)bHlCgm zw6)F~`OG5c7!`&rLikTQ4dXC+A5y2iM*cAC6tAHDWUIaDXBNU;tT~e!YplxHL%M{J z-j&C9S7?IpSAq!eu$!rqI{(~j>LpYW0VGrCUmn#jN>H0EhGJ}1;T#E+6?t6n*>|W0 z=XEM+MNcP5Ff3Komt2lN{EsiDOpgjlhWI6G1k7q&?Ecv6XJX_CuVmpG4&Lea;2AI| z$=;uslv-RaE|)^5jedZU^Sdx_T!x4FNo7MXT4Ex2t$Bc-sUp$^Lj{WWBP FYd<~d(Kky?IedX|hPJ0%sG(F+ z=!#F_^uuwZF*4;L>)pbZDP5SW5hOIh^$#GSihJLdzMos7#EGr HnJnNR9D%D0 znv+VUq?w$bFPARK#&$AyXIYr^8F1d;a37@%6~ro@dn0v=^b^#Jg5mRDpkBdn}f~!g4?BE zDq_Kkt1xTZy7mFkq2&?h`s!oFE-{&*GhzCNl|un5^jQWQAznX#S8Vno^`J&7cu; zaKy5s;BIGd)yl$s@a9dx*c_{AkF_tRR^d!*h(|_x%B=vV6pZ{#Eqqz&@Yu4i_qp2# zOhP=9n*z1R-o3_OHnPYM4azzaT>gT-pI-4^#P37~7YT* 6Ela&Dyp1WljUKX@OwNv z3DmTuCC@`(Zul`eZ1S)E@$(Q_J3qIMq~mqjp-w1`^12t{kd>792Dzh)FQf<1gip z{15uS<)c-NSp*Fr+oS#~|KnfzAOA41<^SaTk8EfWZ}J7|By1k^dV=%*PnGk~;|S>C zF8FBow7#}?5J&r3cMk6uf^Co(Apj4OE2dv6;9is-T)crkr!%DE(TOwifXnqudT{rd zq8D?0roWf^OXb=y^y=~owtzmaX|V8ybvOA(FeBW{LH~3S1{$$H9sivKh@M`k*SCT? z*q=%Kg Y`BU*p7tHRYDZF+N`M&gSm f7}V$s;Q zAl~;22ftMQ%FbyUeN)yKhAQ=tM9O}9{11(G^qmZ}hI4vPgNube()fs!8_*b6*9Vd$ zBbUx&I7us >1%3n|`3iH++*t9*Vu#cW58Ve_ zF2v5O_x1LamCw6=BBvaMP$h4bl2R#hz1iF}NgjVfRF@TE_MoKElV3;qkB4k4KY` >aRtZqX^CW2p$?e8!5`Dx2QEgjG5yE9|kqV$}W0S`f6EahLJG z2>F-FpCz8Q_sLd1PpWW}IlByu=Se$Y;!)YUvzA>FuU`|oLa#977OuqZ1-ZnDf3b14 zvMMdUm(}9A9HgmyGLL}(23%Vqr$?Y8==1GHmD4z#)6ng^J Pg%DCCjB+b=xk_PA=};=jn^}y 86FdKOoj#kGj2tcYOxTf^VmtK>yW9NCkAssPh@*`gZ2n1H zrAF%gc}Cb7g_fnVJ5J2r57*Q(`Ah*;u@<{T@0VJhoiA(^MNP>1->NG}ONVrg$ ;= J$s>a%# z3eWbm2?3BPF;$bOGP|i@3ohQ)WqwoS?73qu>MceC!qIg?eWTrp&G1{H2*B-f*d7NH zDN7NXht#ceRbDF~x 9Le9JS&V#UmOcz}BnW;4tf1;kRS~0U%a8 z_H$dh*DGHZo2ZWMAa&R0A{sV3*H+hDhmQ+AsL-Iod?b&I@d&zt$&^G}I4WpXjv6=5 zMjV9|f^6 {spa51&)P$|n5ST=+|3)H9! zR@RW2)Zil3^dTiir@137D0X{A<>a%gZp_8zh~~%F3c7OeULUvZu)~skFJkfM%rs@Y z-N?l8su-xz+`D7f{Fy zG>c=sKlzuRLw{Hpz`X>(geY7Du&DoVQ2L@=5$*x45KpU47XOv6Ux#r=mxOH1LeJ0O z3l|YT-OjIrb72Eu@)Ni}oCnQ&+Zc3%5Dbxf?!t+WsEA-W??4upFTJ _ zu<7I}t({G9ESzPf3GK9@N1xIXLNWjyX$~RJ(5#V0|1Ik9hs)Yl*-d6IH&U+YK-q-y zmQ`uIvuN3xUV~eG^Gcarh_(V$70&57Cpod3ifR$eb)rNiLoKz15kC=hq`b$PA9i z=m3?*U)|Lj_tTepAqsU#QwOqPPdcg37M$&9kpdQx=rQ*r6d^T~$Jx#8btFCU$LNwl zca6=RAEZbzbW_!HcFj_t(*zlN3M>2(!;t!;?|fSrwUf@giYr#4Oe4z-`*-d~i!UDi zj8|Jm$Dz38g3Ikpe6PU2r1mwydrqyzSjN-H6&z)xZk-Rj#G{Bzc)3g3&x=(5xA?_x z0l1qu3~}#vTt;&0rrjG7{?+AB)7wO^5+^^iWQVL20`6~o{g)EyHAjLI^U^+Zkr~8> zi&g?!vG2oL_SdC^kRxmol+aE7U5|ZlT*@LdYU5s@1{YXrjLl$R{S5b_aZ6eD5lz4q z9y|H$XjYavMg%@ABmw!qUQGmgs{^SixxzntN(&-@-+lDzeC+(~DxuwVWg+h-Ha|j| zw$wi^rG>WT4N8!ah?5OiLdVU%7aoc>G}A^k%QSkS(|Rk=qS#^)h^WPQKn4rwz+l7v zb7p^9aZ9aF5{(ZTBU?hmnjZ*t<_R+)-@6j{+Tmkds2wQv+9YanHU?+(bA)2g%)01^ z?U|-ToQ;imQgIi(sdq1ZheHwR^e$mHbEDWZG&?U{H6^s?Q)n?_SL2b>x2ct?qv|&3 zk*%rISdf1NZYtG(xDp(kk(!b$)D1mu@cy_=2?sE1_)uSBPCt9NVVeND(nj2?;fW?! z;B*W~!Q_V%4_K^)n7);h3$Bp4AL%TT*tcBG9vvQNB2wIE%|&uWU*!;w)7qA7K@--b ztZ8G*{qQwUgzS{(fm1Nh#;Uk8f3yu kUkyW~zKhqowdQzDYz7;zTEP$Y==lhTf%Op#A&&qAj1<8gB`%$9oh#v`SD zm_HjBD^>T)l1ri|?2sLcwGtsUN;8JA mI%zjXQY+z-(L-q%BhY4O zE!JY1i?1H*=FxR475lKO)9G&e-x2}7Gc(}d*N#)zYB!y3;}#NIB|_?xw(%QrL3;5D zmg^=_S}rWyBsn@;C~qbhAr<+fp6Bi%T5nMZ1}Q_r@_Toq68;&7xtAuM2K|sk#uG5d zvVQ?|5$IpL01L?)`*}g+>8(q;HOd|DNmv5z((>fUq&l)0V6N~mp@dp9>u%2za`0|b zbX(kSdTjId9#>bLM*9Kn%Upp7?wtqQZD2sh%SH3gy+Xgw!(r&x7YJZ`0G(>lUAiq| zuF1YzSIZ*yx$xKEE|*k8uAN5G?Z|eyt-9e|RRr*={tAwFc?_nAr(WWK&x}3Td;z=` zFxHjLPV{&z)*5dXd}3ok{-nt$()kdp&?4QYm=w7Fu^zB(PKQI(E^5m+wh%&bOVk8i zytLqN4p-3eYF9_UPj99Zp~YUK$nbT#i<4uvO*iVpf_2Bym*@mZv;k$Tv!1#7XJH-rXiEbx^6|vYf>8%v6A~ zsNvbdBp2+??s&m1Pa!J$CH|-^{mm2QO`R51ef(lKrYCO E66Nj=(ixNj_`3JA#M<@-gT}Ima=vI69(*tuqoYUX?D78J} zz{h4&VoCsICVGcO4P2Yv(qaA_e+i}#xIy+)31RNgU2ixqaPj}}B+COs0v}@)%*dwY z;rY3=lv_D73`NeJ*llE(9FzRMQ?{ DsO_Q4wXglTCfh{^lSE6%>2e5x;oqd#rcMd~IZxwwi~IDb~=~`LjGvEG2%k zML1!O4e2^5a`r#S3;^7TdjH*XFa>?^>Hp5Q6xS}Ws`(z(%|J3-%8nihdUVL*j$+EK z%1~l+^0vgRR@C5x;&!I;gA-j*&*T!O&v%s^mgp44KLjlk504n~JZ*Lbh^)mkJO#0! zlulo_bY)Z<1#C*Tsn72p-WBZb8zk^}x~PUO`tGF@WxP&O<&vqJ@z?|1=M?v e?-XN@8HWgVf0DArb`Ar$-THq9 z`HZ^BFRkspb4gF~IuV&nuMYiDB+XFtBnx|uPT~cYEIICnJInc!j#wBft$JPt(e#uF z21#N-`a%EI5v&JPccZ0(JN%`nQRBWp?=o{5mN}~%G6e(?$>8=^&6LS*h;er#pXIc| z-c _{htfGXJp&q?%y`S#LZVww?-q9m)opPU)*wz 9w1r_MnWNnL`eP%y($Pmy{slushs~nn)l_C z+1K+{*g+o_40B|f1u2n|>~u%Tn}}ZNeKJgXASC9ha&7{5fvzzj9jX4&iSvJaM(rhc zPpa!3wLOoo;5;fm?j{*In!Xkn2`w&dt&e74qU3PIRXe7h(eU9*)v#!{7Hr3s1e{mP zn>I9@l6Ez8(`4Kt3e2NfFOwr}>@EveZV?t53kl`mUkP|o?dSBa?u2%Rb}f i^wS$|&lI z4&TT$HpE)xB~Uf1%F1ix1LeD&^4Zt?7z*XQ21iziUpmoTkQZuA?fSi=qFbdIwTvLs z6ZrO^*vM8|3D4T}mdW0U7d?;o#|$2>d;TSlWbbt{hOBAJo`!?TWwu$1*Jwf-YJ `?8To6z~6I$n`7SOo7C}Ns(?MOCOZPSUGELspohSb zL6_rAw)ijg0d!SK+xcIw`#-yzcfIgh=&aQm^Ksx8r$C9(pHtIvRkE2{-9>)d)|Eg) zm`J#;8lV~O1}?+H1Nz~$=y2cB?b0SUsXdRZC3c;;tu|dXnFajsQ4^Fu8NZ8{AT1wh z+JK&o<`(GTekN>w{3c->bTzzMf}EcX*Y9qFN%*`-&4YUFSFCt );h+zNP=Z=4=PY{n zX $OT8VNBOFNR23By7{8Ilr(=WQWkW9Xe3@l2fL6Va}sr~ABlOiKJw=btDo zA^cA3K+@>;e>MW881W3O>H9w3)s@-&DY)1?i-Rs|IemnC@a|rMi`6Ry!1{lTW#qcs z2%uxs4gtL2L;zpfUo=0*YX;Lk>!`=pYU`p0mtBqhFcSScjl>$3SNZ0D3m)ABkp5Rd z@2hf|mUSg~Av4&}gIpD~LtQUdD;g(TWk2~@13Fv8jFOOmoZvt&1mD$(l>A=#{@So^ zsNe-o+Jj4GtAWtN9Ssu2&}&*)kv$M38+uI^$RV-J@D3eJ))b#lR819Es5^4n;%Mbp zz<&CuTj*iQ3K;Si4Kf(|QmM!EWbR2M*@Kq5qV}XzVmxP|&&)OS=;lO{**2@ZnOLJ` zp1 RZn9kH-$g;;vbzRGl-n#Fn zyAbl;)th_1-^L#b@+5w(B7J)@>3Ko5n84`jK$GAu=6vO{@N%er=;zczZGMbf;dgYi za;s0L#Gk$o%Wdn|Jj3q(Uj#{ssoOFS>MNfA&qY96g;~~5G_pXy*L45o-aP2E|8wQH zz%8!kM5g3(c-JU&gTfgMlTd(uv_Dr)_@GhOja`?JM}v~Y7iK#?+)Jhle%(AD9(pC) zS_8)n`vLC!T0>e>Lil>5FLSWHCGaO_*n8e~Q-<%nP7`d*%4XGd%1h;HB4vKvZg*Gc zA}-qV#(zmymH1Nf9<`M5l;7uW$ipPzTQE#^6YW7i>ENicDsk@2f#r}7khbV0jGy$A zG=eC1)ct5e7D6QN?nzrwcQiIKMD%DyxJEehBHg>mZ+UEQ&EDj(vua|IofQ=M-Ze}Z zSyfGwfB!j4?w2}^ne^vb=%ia1V!goK$UwiEMvAt_+)-|ZcdT6qSad?BFm{#>mas|g z)fuzNGBQT?%Ko;8gZ!gl>R)23{|wbX;=f1q;Op=p!7+F{^#bT}eE$UTU!d&fz4(8< z{}29OgMa$>|BoynORx`o6!zivGIXznWGT!bUU{G0)E6(KuIJJ%Cy#8NLqgyrrXI}0 zaWZ)XV=MUvMx-?3SPOZavU}Hyd-DOgE4~_UA6qMeZ&p8^xYX>?6Py)O)R; >j zj`5TPzXLk?rZ(WfVb8uV$#=UsZlsWzB8sdiBX@&Zc% `I=fsnRjYYoB4&kIO8M?7SFUAo#OK@G1f;xDTc rC!Za&@lBY+;}WjWJ(pGsRC&w#O!{l#M&lJX*PC#nUdW!XXr^ z_QC0Fb$wzpSqurcQ<~S-mM4>?dxTeNar{iPGI@-njOz$1NB>7hj0cADSe}CO8~@65 zB{78;MMLjOLvQgxf;GpEaJWwu;^u80bxE*H(3P1@G+o51Zbggbe+4%**;s+yHjvLo zdbM_O`}IU;{HL<=AHB7zt=Rn`LZS}&D*DvF-NriPJBqWJT91jn}R0pC9j$Vl0_- zGpBF4_SDf0DVLS5NPr7l=GS9Kog}t%lA)(QZY`W_RvbM=`f}Bwk4CPo)C!A>@pWFv zGXzhPMn0hx67l$$uFsq E4ziZhq9Tc#AW)aDZgE#5(bT|Jmr0>B=Ns z^LgBM4e~xo3;9|hw&pE9&*WIIbd@MMW!vbEwfE}xx(TOC&v%B}!2Qc-p eD3CC*Qau^7_xTgO2ZBOZ) zj%yN?l>y)IxoN#lC8O^#no^-~XdCF&eY 7I}V1^T0V)r;($!SP1UEI*Be5`h| z|ITqH6;9C%wYDIvbhP*YY2jL)+JIjEX!n^gD=L2Pn-04f%~#+Xo75W$1k!BN6qLTi zso%_X#3rcK!o{5z0#=-^o)~qj#EUswmtmGTf3NreUvrK5G5fO2gHSJkh(wHa@ d{xBhj6LO(H?2CSccIF&K{i@mXTXw?LYp9Ti;Jtc>Xmw=ofpybp;P zCA$ObFtZ(bxf0)YjiL%4zIZb4HlnME)06zn27MAyo_r^lv8AOgR#$IQg0^*3-C8&2 zrFydb$|ctA%{W>5xJRmvr>+{$d~z8`@(3#NE0?FL#|UhF^Lq}R7t&We-cO$uH}ixS z!6(+Q3pIvS1}ueia~v)n6nIa!=o@{ae=dCCHkxX(RQd6u_R&M|ZSj1^kNH*c1%?;N z2HLY=KD_EsWr5!d0!5+;qEF5$nZ1;Ojp$=Fef>)$A#N-v9yEJL#ZPLDKKxwXFi#t< z<2%z=@snh4*6DF#rHi6J%-1*J%N`%dH?k9Gc)?sXU>_^WzNGtp6_@tYeyyu!uD0%G zRrrH$B3pXgik%nw%N8Uu`wjtCY#aucuW|M}f)A0WN<40zeHHmUFEwg(` q^ zxu{RItA`W=o5vKayJ#;0cSPK(T+4Uqw##SK^Q>AQ%x!j_-0zHXKFOOW-qQHK*-x<( z_Ps&pP$9e}^NkM~ %I zn@T80e=p$75$^RJu3j*@dezQTpqQq3XJq%Kxg$xrMD%5Auv2@`!r)rH>AQ-cV#3ZB z&IQGmZiI^zUj9e&vd}p>i+V3NDytrG>fzx{j65^t6U$S`*v?n!<}x@|Z6rZI=O?_q z0v+8Q7ApKFNg5~6mYMNc @j*)!TEYU%1(nY>D083ZtFPg= zPFZQyh2#42sxbD}?C(?^`8mzPRv#@N*Np9FVGY$aDWab7xj322Lr#9wFKW>5mHQZw zhDr>px#||2X^QTZpBWGCNc(S=UUsqQJDx+Zw#$TX=?Ml*KL5FZq-PoV6$kq8FgMRZ zk#5CisIDZk@dZ}6w}5X+(Zdd?@rzQSy?);^A9#DolrZr5)~CH;8|C%-tZx5)(@{7T zF+?81dPO=?+A_AAXa8Df!oBT{qTf_%caB0v43?!`1K%+r_#*2(4@anFT8IpaW;>MV z*j4CCHcQgz?Od-s0EauVE={8?*g3VY`y?um;V@iJo-5~}j#A~$$l?q&-=T6| zw@0*e0G6|~mLX)1oHou>E6Vv!z=eor`QAVY8bkSPh&8H>qr(ODVZ2l50?T5eR7ME) znj3`%^^tibKT>_`eTgWt0w(cGNhg4s;`oHPFRa2RRCOF9rR|yhy~~SB_bglthxo zBt=a=s*1FbYLAV7nTV;J$uiTkKBo2Qhy8l3E|#eunSsS@uvA%kKB-)_`*zOIk%fp- zxuk0-y;pGWTosE(kbo$r+C5cs$|IF#k0gcmj^&@Fnn{BeE7R-vXXB3UdsA!XM3M5J z6ltN&Q{RsvINRh8v2wNK1|7nfmoiA>REOBqAB>u9Ex9Ky$=uNvn64>j6W=5&;2f!g zn7TANR+MX 1si(d7O}`V6;ZVQ&wuuACu94e{D?IEKatQ#+@VY#r&aaocuK}la zU31WNNcCtTjA#MEm2-4UT }_1n!pwTNy_3rb 96)Wmm03$|LOh=*Cvy+-Iav%Xj<>H zfB*HdR&Qp;0k`6^&eGVj6+;pW>5j2k+2L4`&$#MfmJa8aB;M%H7Ha5oIkRTmx<+Ll z#GAsn5npNgQU$X;=!S=#kpqT^ryMF*U#km$jF-eF6dw=zLbcV~=8ZDwP4uJwvCe6n zi*#f;pUxCF#R}Bt-KCkBD(E_RrDz SRh|?*1BMxV^!=F z`8ayKaF*2ms@3U8?u+%7^HFALnjHrf@yN-WM&0<>uh~i;#;f{Yj_^`ZtJA)l03bg! ziI=Ga9{Ns9=O^EeIs@2Uo~7H6`AT`Cdk1Nv-;KQYGk;t&b_%Zx$5#2<>D%VW_$NWT zC{C<$h2i$h?4M*uA5yValVAuEBm1af)G(2Li_&zQ%gPc`i(0X7!c4FrI8ESERuE=d zOO?9HW}dWuqb4PN;xpeWtQ#7Wu4ybu_HFi*xiM!I>vP<7{~V1*Ov84<+0lKjx~Yd( zIjovWT@9oCAF%1p{Een@;j;df_@zoHiSh*hH+SPlvv}zd2@~r*q&x}ZYQs|E2K7kY# zTKM8@kA(7x^XKF%f7x#y;HzMyUn&E}+!+;0;@jByubDM|yeo_c} JH`lXX>uI`uBn^5IgW;FZJ{}!5)JN_$ zuE|b6Z+SM=(G>4zw&xi muVX%{36<%)3%+#Mc02Gd8JON$FE&7oA0RrxdtzQ_7 z)C{F1TKzGR0DBs^dgh6qIitxbnY&By)SABYY5wYQx=Pxfq=(fuwcuH-IgBqPXK9z{ zp&b@+G?~?!hU$itQ-R`jnA^jGt$8w9Z rzht4 z)XK!CLx0AdCF|C?23`jDhOZSuV!`)wK)O-?ulC;ZDefnX_9T!%@E}8Q2ol`glMvi> za0ouQ>i_`)Bm@SB;K7~2-Q5WuBseoT3@!t|JGW~0<-Xaft-5#X{s%qN-OsnX&*z*6 zOuyvFR3}5hsc~fDow6Axi-Ay_iI!u`NS5?Fn6#5~>sol%VzNZ_ a znHCNaFoe4C=?jiFjkkMi)c={)TV7jHOz1<~i7qI6T`Z){(K&ueiI-XTal2mk*lyAT z+iBC9e&?c6qT=;t%Ua8z*NZgjg}`L_m)BK{Uhl_JD=@0p*|!Z8=&9tTBkR{Ob&_>- zRwo6eJfzrKd@NzzvVR1BmJXJzZwyP$ll*gukLQ(oWe0K_b+nE~j>u~?8mt%}nfNHx zl;ASRy7!Kj#*RfEWhlf&hudRTe7ZOMord8o%XvQyz-cK~?C}zud&{cCBRKc27naW) zD^$25uJ>N$hlZw8xDHr2et74JH%EZYe1bCapqWk3Pp%`E;sEvbsKF{D5WOEcq^Gkd z-8@4jt{c2eSLL^Hl1Z3;Znmv1fdABvvN|}rK2MtUZ|!6Y5^Tj?LIs|xxMGKUCfyZu z9et6-vStuK;EW_Y)N{*}7=A3i5PM1T-A;*+LWTpw{8R25hqoe2lqnnET#IL*X99(j zLYe9|8*ULbHdC`RVQA#=k}B}^%a;=!WEfZ_4iDoW5H1nLbSICKF6(N-7fULUE2Gp6 zO&0?*_c2z_Z_s6=Zt=XKO=DIZQW~jKMjhr{%To^Ptmb$d*&O=k#U)>u&IR4&xfo@c zRNvv0U?p_YEu94{nQk3P1!#~Ma#s|sfnN0_uIOfCFv!=|_f51C#ijhJIKlE|@-z|o z(O410qJ9p`1VN1tft1dJga6jz(`+){X1rJY$T1F%sQm-9D!lvodG72Q+sT#ZY^v5@ zYL}!qlcOpjk)Krg8~8sozc5S%3V2aqLgs?V9i5bZ;+~oU@X$ZII&(XSXDIhPb~rE3 zUueD);>mmAFHi3u&JkACPJad1U({bmNr>OVk0*n+pxm1si#kePm$LrwV-0RewkgTP z!g#c4q42VG)7Ejfb6zUM)qiV3NhcKe&~Dpnuha JlJC)?go%eH 8g7q{;NMe7Xr1& z6FGivP*`44)t>UDDX@9~!jV+T)DKG=0ljPmX3a(Ixk#@i_?5$7$yz9GDne?FvEF8e zcX*vND6jsjL-~NOZSLMEQp%CXHcm+`v0;`ZdS =xlTVCyNMu0 zJ^qp?K(xgQX;Asi2IGt}bHY4ebe2s(&xUT`nqP$uoG~7zN#Fx33QT?8M=w|w_&ig1 zIfM!D)Pn{6ht_X+u`d3!h7$@cxh72^llGk1rP!Sd2$;9EIs{3=hF(B95BC6nALlJx z%7C!P34Gqfs*CM1KG8hMjsRT``PXH*d@KwZ#&PYs>B1a<6^VI`@OjEq5aw&51U;r? z$Rv<#S+c-xsP8wmF6HM)x;F+&PpjXjpC#FBk`p!n+F~8;BZX`IPSGJo>zqS{UeW{S zz5guwXC^)98a~@^V0C=5{%}Oo5?>}dwWRaJQFiW>W1BM}5g)>5g7Q07__W^1ZhzNP zA)DLn!H}w0?A1usvYQ0P&M73{c@8{d`g!@Gc6iuBpmbsEjXyVY9AUk^t=JT%ft8d8 zU)Ee@Ft0tdc-_G#1Q*F?<7{hrNox^$)6O1=Q ^ojbcro)ucaW_RgOwIDnnS_*7uXF358zlJN3t>&P)J%t4plzIt2@9ywO8)0HZ z+g>bNl4@B;HNIM>R~t`op8`B|V|ySgLevTA)t 2>U*m5#IRuKMi_%)9slghmlA=!K)d z)$DOUe+58nl@7}zM?88t CYvZhE7AduI3CI>+=WXx2LMw-Nl}X2K@~t zh5+{LfnB$)2U~93u^?T2r7Pv(O24$db6D|uYGN+ZZK*e*Z#N<1aeQ#t_1m@2RoySt z=_j&_srjo9+B0BJJ5Er;A*OOUtLcs!mKE=LWOVcz4Ot*qy9yUWql8-flouPxCf%wT zK+wg|8+IB^yeTU9meHke4>S)_%gN(h8EN@nsQ@Y `2kq}~L&I~8(q5D? z@^S5&J18+Gku&MfyR(Yg2%gne1pVzTyODeR>>0L@DZ^LjNGlWFre(bb{za$k-sA)x z{}fILB2n=q290M_M^RU^Ya#=H6UTvE{PGEHy3QONL9-z^YKLNi8@zU%+Sa0p6k-xd zSH%)|b|Cclq+Ffr;(B2>|KfDX7>GRef}wn%UNJmo!Jn!b;BKEr7M !=j4^%H{@OMaBMZ$Yn^>coqX*q9nxfI% %Nko5@P7$5E z<-y5slL#e-44)T&;95S)o4pW*Fi1@p2qJm=%8=}T=T_-YwC?mT6bQDO@%0m#xf*y5 z4BLX`Yb)CXGSnn%S3XQiJhJ3;7kSUD$osFzu%~dn2_ZbtF3Zoh`?IT~Oij?pI=dXa zzm2-=LZW5Z{hIIPfpJA5FO|!u3_#z))x;e`yq@(Ig0jV}D2jwz$Z>VPJj(mm6{`Fp zxtkCDV&bNFHTjwJbQj0bg$511iw-#d$dkaCqlASPstJ=G+sNkonbU`w#CH8ABKCWf zE gE z6*H{_=L7JD2C=OxUKPI5;Ru|?iocpPA&UE`QsYBvVDk>ncc#y^Xu81r>6KzQW>HMu zjzDuCB~;_?D(OG8k3yS1nH19dLTA!q5@4Eg6hv9^9~%3)igTBu 9Ti)kcaJyyCf%TX3ZbpK!`wn^0gi5$% z1sElL9%-Kbf*0xAn4r(TIFO}PTzd_T(vn`;ZpZH_6+~j3Xr^g)2nUrCmuMX6Z@ z`!c!_Q-Pn@mSXs2Za{^51H^Ao84S_L9)TADe11c 7#L?G+l( zurUx7Z!Cl!-2~{QVU@#-XQoAHX9;RbiJP%<-deYH?0&XbR2abwb(9J;Oz4%e z0<0+dq>Ft)<;}rA%9x2wNQ%1Y*!{FdfR*as-R+8YOv(D%YtkaVzE=xbzcE-6hKn>_ z-ft2UcG^~KTA#`oeIN6^VkpQeQHKM5^^D+rIF=J}qlaUimv#(ZW1JU171q4)=x=%j zPE^a)^NR58J(j_VnS zU6$Vqlka~R)U}CNjSA6$@EP$4*wKEZhZI*xFk}r9HY>L`C@W>dkJpbJ5%>lA9xP2# z8hKbq$3ve3b9yj+x1&b1I2*mCVGPs5=}X`e{1oTPZSsOnBI6_b${P_Q*;_TK2%#v{ zs+*J%4HhzLMskOc$u`R%1b#g`>stKTToJ$_MjK_iu7>XD)$ Y&+6N*EQTHd4*@z2tBozJlg~= zgph-4{F?!mS&0KBF!$Ult910Tem2ZZ>U0;eVX*d|=@>jHw#-E@WbZeC=jNLt8lLA> zHJApzAx2R~Y50Pw2`Z_*rwG2VopY!S+V~X@GS)IV)fJ #63xbY?eYtd=2&i=b4nF1M@5l=lCPa^W#-pzc>jSXQGqlwvHmt6O zUBP52kYzxF+I01mG<^&8i)1;CdAuc4%5q$t$)QcSnbKgcewrS2O}R*0Q<_7`iBUu) z-Sw 6nq;M z2z^>b BTP?h zSh_(x>l9v~9#t2`H5RG&S0RnXENIfZn-Hw!zZLSv$dOEcTj|RyWnrHh#+TGU*4&O4 z1}MQ;M{eX7-sNIhp$+RLhg95`d1+C<*=@C^n |suWxBKUxBCPjKTj1>~%)=W#w(gxXH@x@b&DD-&VHX>m>e zFe`Lr)8>6!N!Wmj^_D6N{_}SycPNd4V^z?ly09Y#9ZT7FH6_kw^s3q&mJ&Cv>YwSl zKD?u{ocCz!bz!Cu`ndKG5FO({6n@Dc<2!8xiaFRk#LNQVnw|G`9d@eK`m9eFOl)!0+u+Jlv-CxPJ3knAR|p_ zera}3KHDe-4JheT1UBQ|=)qz%n^J==L;A?!O-;iIqst){wLaHEAw9Lr(UBZrPFbTB zkVoajFUrVX8UFHNG5ebXh2KyRYkqUP=!$$=awU4Ax*FpUK=}4R4&WB>OII$IpSM)` z++e<5bllo{MlRs|j%ZWYyu(I}X@y_`J)hqNEv}d~zv^|&h GQmyC>A0=+M;LleXx_ZVAXtWel%v>|4)FX{~e&K|Aof* zfAe3psD3>ElmFu1erB@n;qCZeXo&x3DE}Y+1OHF+|GxwO*Y >Q;cC)=(3t$ZLlg% zPH DA)>$;cDQo7Dl>qH=ct|ap5)Q}VK#Nj#xITuE9M8X729VxdTKC6 zJK`+7;a@uAExlIRuiWCCcv0NhXB6dYfr;-Sl1Abv9+yV9Ha%{rUcz3tHv0zVyKkB~ zpncis_pl_eePS8dPC~_sma(7Ncbn@aVl=S`rYTi&@u?Ao(>A6t+qDU57ejvbVYh#3 z{twMdzksFD`p)t3(~`Q1KNoc}`4sz5Rhh}M!KgQLa%F9pqTXor;OU?V%;h*k4{bqd zLF0=F9*S)DlIjukWSMN{{HFI$WjMe|p8@uMBV`K9sISOi*b_<^US+yM)H>JTewl1O zR>1pVBLE;1;V%pR5?gJ=dUd~wMU4}5HbiAi^@VvbW<1v+Lipy#f@F0AV9z?hW+>f? zUZQI5qMUH6^S$h)aVe4`bWU2>&*Sh5X`;VVNQYx#!(HqaXegwSp6;AaH?yl&tmKm$ zu=9z+XQ%f;R&0P>24}ME&cA5n*`i0t9qGFj7Hq1Gf#SIUdBu)R;)Qa@wuZn3bq5FC zSkYD$S=O@AWjYyT(0LN530J5sRs9b7uD&I~IVHfds~B-o*)}+Sa7*>7i{Ep8X*#3p zC-GgRBNc#$k}kbn{}*1LQ2zFV1L#MuGFj@a*!~#>6St>o+d^T|-Vf~RJ_#;%qCFK# zvV9LnbLI2XI6w8jGYX9$$)RMrj`S0qEox^Y2RHY}Y0>B%%|v1%WrW$&Bi*u@aFw^O zkJ7!g*1@Fv?K4hulYZhl*gYOU0Dinc)A?=b%_KiI&R4M`!^NT5D)m1>TJUWTNf(@p z3Vewx>FA4sj5Q8-GZF;PC)cQF!A3+=@{j~>`b+U|R>iZyw_9f0Ni4|(TXTzDMo$G@ zEJ|f&>vx|PtjG=qAR5e_6^czOiWj;rL2TCX8-EAAUHQe8^HM@b#7GO&;^{gQ%*nyR zcb(hL=)GQAKFrYsjKm(F9)KZsh)ZMHAHRQ~Txsd$H9qdGZpFpb=~q^uB{XEq@M0!& zO5ep>nOMJ|l9LynUu|k$1`0W>fI}LrepFHi3*|NhS&rQhpQ6yBI-9s3oL=LZYI6D# zG{cs47aVhvLFbohOJ9tS^o&jAF}m1N6wE`k44#P*JW)FwfSeMXu;9}zv!BjPzMAOG zuTchV?+P(>?aU;7tGehq$?iUB?&e2FKl33npV7d# sQF`yq#jZFQGT z@zj|d;(dKVo6%h&=YaY`i`MXt>AX(AR7;KsJ_W@~%2Fqb`G$H|f8x5DQ;x7yQ;mLL z63BfNw%qbwGDl~n8Sb^Pj3aqE@&{pCY1{tDiRTm7At%tc^rpY8LcJGAO=9veVq`iw z%95m$s!i~rT1fBmlBPOQYfnn3ag{lZ791Fyp9nXbOO?$0Rr`DnB}cqGB4vWoDetUo zKWb$j`|wV>OV~NNhbbXBIxY945+<)jt9FApK-*FxUj_$IAtHXdz;(_Ua2mw;`v~Jp z5;KX-Y`Os@$EF~%C-o2r14p6rTN4-g1douDY#ET@!I*4;n#}hBL|1yTxuL04M2AH! z^J}x~Ey~@8=S)VfzLbwW(hFyl3(#0bOfH$ev`Z1Ih8GVR+oz}iE7>I|{#1Q|dV(DT zGb+-Gl1(!W*#U_Pe#@Im@qFlGmt=TX4Wp=O+Sb1@O1&{vF^w0Rt16Vu51kB@>h9xt z^XaSXR-~#gclxt;#I|`@_nYc!z|{#}#98L|;p-|flr-#%OIs*lzc>fb$&i9t4V-pR zg)pyDIVO8c;d)nSA!U}dM^A V#h+%y*=|e9-n7z*baxYf;e?h9fe-!KFv59;9{vt3>w?3# zZv(R cHJAmHI=OHb zH8;nwbBwf5>~r+L?}$h^u2ux&Q3Gjle)f-!Lhr2FUwtcy`<6FtH>Wes13fML)zGZg zExCD%lINHfoy?zTuMs&>87G;&8B$kKqwzxnsEb{5?_EigK-CVK)X_hG2zIsMGb=oe z5H83(t!ysDm=w3o-MDuT#7QL7>aBS29l-r=N8HQVG)E9q6)i*;#qqM;s)IhxC~~z| z|EBIf4ft{1r%Zz QUDjDq?)Qy)$b zc3aY$B}nEMAr(cS|InP5o$1jC9EpuRZ<45;|2!<^MMba @I~l-Pt0yUsCD>j zCM(){`GWDf;ua{9RGKqusrWdq(f9{?S_M2tq#Hoo{;?(P2f$K)dfq7MlFU&|noCkO z&Wy4PF+go)37X6MHbi71RKaRN>p}qR*y>#j&yOPB?$J#-H1mZNa)wy5$tgk=q&6b? z(zWwlcz){k um+;*Cx7$ztG6wo0i$Rvh(T=x zFs4Idn~e+kF@LJ5ttvB$6-jbf(iu?n5BBR1dDiMg%f6fAMB_BtU7-2=ZsH10y>dVU zID|dJyR_9zYY(MPGh~Y$H%f(XH4i%S5cvgq ZaCMbtYM2vVR<&f)3u`^n)lSk1pwYFzsPbj-m9_)$WL_-jd+Q&m^UDLP>^yx* z7zgHFIBjrg-iZWT-lf^}P%X-#L^+2LV*Y#l)M-G(`J!&zws7*HdwTS<#ZoZYq8I}A zpLADkQczoMSxi{z0aqpf8Ir9!)EU@t?6>%N-E!7Hzam3*uBCzVK0kg^uUVUHyQqdU zy$r>}1(d5%l(me@*q3m&miw16O3t;=+CA!0WNt|wp`XS7>;Gy@GYL)t6`3>?8-Lfq zdb!mKMd>w;9ENAoL~8i0@rthR#ME10T?(^;rk~b>F8-PD-{S2qs8?Fy3N&NjWF2bx z0I8j;$ 1v-ul~VPYQm$>k7P5w;yU_vYydXz zwYpmtn3B^eKHgNW{&FeShQ5Q(Hn|w-TTpo3p<=CyshVFUU6p@p6;d>av4&+NFT;0K zQ~x#dGSOZW-Z+t{w3=XZEHpj=7`{2j*wLm8t%0OXia%a7SNUoWHpQhuzkSP|SPgV` zREst0ozFsKTy;maJ*PVL-3_h9h^!lozqkhyx-uR5khD4~|MTVHf1^=lWBRD^13ZkQ z%s!K(P-p5#xWxl;3i%`S)6b>$qQN7=BB&QCjxg_szP%&cRdX>mnf1)&r^k)Br8!D# zo2fb_*rpUYMr6^=Hh4ja{7~Ufwa&ARWjvh2$o7B12={|YM|t -M#< z`Iblw_nV(_WTyNN6c7%Evn{&smL6r>6mi|Z9QUDh^#haLxYyOb1I @ZJNzitAbO@t4ucC(K0lvvzrY9$od8AC^M3|5&r0Z5QUpu9nuR`rYDO za;EL7of}Z5)|s26%GF@?9-1~mp<({l(!w|zF8PjA|5 5BEdac7Ma_PJ^Yu%wLhu z0`)SdvK;@R?Xx;8h;@CtWSkRFGE?w;Q~)#nlmIJm4up6NxgO@%bIUjoMkLTB?&xPe zjWa$emfw&Zb9)5_F@v9cAAv|I)q6^pPM*boZ~sHHs~pc=+37=>h-sh67m85(=CcN( z;P6@kOI$j+WO%VlzvT&9iSjQfoSQBo2@oOqOLbthyHr#aLJIj;2`3BAxcWJVVf&u; zaoCB{trxNLL#ptV_?J$wyqa ;rR!=Xrj1u%O9p*Z1I9 za~?T E#R&arC+gvV_0O(YN?+At33Qxb12Y%xSZ1(C2zj()Si< zXQn=(cv>H*(17@WQOD3fn@d_YK~2nNk@;SGjxUccT^x>ZsYja`TJIZLc3;vuep34B z I+A)9s4QGjOBk-qiv?RwFfco zdl@x?_bI{lw>TwsL4pcdi+eeROlZO!VxC+>l{XSWj)NFe##DOm>M!XWAm<-_9q@bc zLrrL#%isoYRxgm&OCRc$ZmeT}FvVoRv$>58b_)nBx7DZ_t^IIw!hYS-rhJAK#E%}S zG5Hu~D7jHp;LR2OvO2S@vlNxAom3o1$VyTlF{#Wk{QB~=e8{QELk*a6?!fi;P_aS@ zyZGBYHLrBa_&Pu(!ab`Z^2sr;)y9Ug%JU%+kHl24K_I8}k)x0QKEpvNx0A9N#*y-r zzx7t;6 XoCDcI)T(7`BoU`CYr?CPrZC_aNeg(6WA)F?;#{Ut zN0fzMLe8IYB#(0b^`GCIy}7=(AK^41;)o-V%ey#hPsJba^erksIC)Lab`_k{MS?{t z>{ry|N)KXY)ru4 WE-5D3%><_Y6%u!~o~?8Z^OVSU_}kzEbzlO@jWuT(0LuUA zeM|4P4 4KWdDStQy2uyp<)Km6&C^71k@);}MeElJXCsmYM|WGVYnTdv6t z51Ss-n+5U#s?aoB=-7Up`>}4$Td}0I`46nQ_EX g3^0E9!qxT&4)?JOZqaZ*V`zGAhIKaEz$G#lOk`lBAIyC-$+ z?#(n}BSr{c2x-o8Qxo AP>bOQXo7JP$lLmO= z$jH*q%Ilu}iD!4=qSBLB64q7t1SN;|t5^^Slq#SKTO&Bfw}w73=x8`gtTOOU%m_1W zMe$5cBsR<;QNEu>O}XNoOB9{*@N%IqTir>_lntI=)joIAS6tiHyLXb*m%#jcH@vWX z-BUrAqAfbFOAW(c7slwdsdCG=v1%{JG}s69xs!yn<@-h{hG3&*c#DVKzD$ccYwj1r z(bml|6&Ino0lC)8;2A;Y1afdisGd!t-eXl$snGRsDS&ES5e{<*9*k;GaLl)dv8`O3 z;lC3D)C|BI-z5McyjY}*DH=uoo>_&blLuOwu~DgLy8JSYYzf9+8%TGUtPln1shgjH zf^T|)cA|sN-;y(~XBc=hZC44){?M1RSe^!umMlaVCJ+Cc-qS7ee!11H+%V$K;Pyhy zVYmz9r8h+tTd@gkZi?MMVR>1eZI1j*{w$5sU>ps&pMa_p{0RWO*m(dd?HIh8{?_=@ z=YT6_B!rZq#dY~+XY$ FZSJTM4d$g4LR9TU+A1ntnEWsU-^MC{5F*?E5sCzivP!vo=R63~CUWf!t}%K&~Vy zCcKhcqExj*?iu&}>IfAOrPN|>`&-RJM|T(SZ}-^VI``EW3?mf;?(wrQf}qNd=4233 zag$g>-uK3Id1nfH
?@of9762*@9nZ%n1f||2fy5f7@U{<5V9BS B9@seK*%k#xF%_YP!e5s46E2_c-bhLG3P#ik;Hk#Fvg{Id)ce}y}br|~BzTkXK z#e;W9Wb)BdYQlyy9SANYBbT(Ix6qN4Jzv^+8zVF-ey#K4xgjE+95n?bD`Dh$L~-<}WCZ z_dGGndwh+0pTg mM FIcSEXLZz=qaoS _0YyUGzL1pW8m0R#$7bKwUOB?FP$p#58Z~2wbvt%B7B(CpNS`&zieY zm1 $g3qJ@=($7tp%}aJ33eYS5?r!TDhUunJrPC^Q z$Y-RJ`%(9l6d=Wsk2j^1v-c>vMtCP*5GUi|4}4gvUQ@-C^9wmX;)_$w#(qq*yVf!r z X<}~{9 z&hazRj4tHcask~$%wpB`><101Slgze_rbd8UBx++9&rQDmzOd9kP9S@0#?O^d`crE z&cV~U(4a5mZz%8{rzMSu=U=4I18XH~BQ`}3JNuQktC@aXMcPNCdAc8gME~}`vVjHT ziASBq%|;u$jCvO}cil1jT*Ju8Y`xmT#74u2R=_7o1n}J`y=_ZLnogX~9OPYBRA%t( zxzKQUWrCZ=>I?YOoEa{tcw!6?PjnRhz_HVZdA<;Dq4A(Og!TBoBV*YTBI$L#T^q|G z`zgh`+^|05r>eE6H^5ekCF|Vt#F&uN_@1KTM*d%t)Ki6sT33{+JJAa4Go`V=RRpqJ zZ%za4LONyUQ!e*sZ=ZF5Ye#`lR-To?V%IRImyPuACw4_IgLyB@ph52=r|eJBzVUp2 zwf8<8D(*$bh_b&%vdhf|$$1^Q{N3mK_(Ne`6C{DJmeo4zA$=mhq9|6~e0&&Sbx|x- z4yRHF3I1wb-h;a2_Dw3+Rtu+jo_(}M1uN-%kUX6V;@E0L0R`F#J1}3-(n4KwiJV_5 zaa-H@wjLY4p=X~|1({bVWP*Cml);VW9dJactX0zRj xzn iX!N@lIOxm|(#H+2L$dV5G{&}N)RMc; zsM){9Dw6z+_0dGA9xSKcBpn7pkD!Yn-60{Fg)SF_2`JY->YkUq1ab_`2MBwWyDQ)# zCY$bp$Dg}GZgk9yD2#}10|J1hNS|RO;|={~X6{q+QcCUTI0Cet#kO~P<%*j5C0ca? zlwuOPm=AhKtYgABP?|xTe0lX ;rB!l8v^* z?!=o4?HKC~?{b8Drj45QVah2#B@FPmUkUOJYvS`ZSa111%>SGR|BTa8s!I-pJbqYB z{StbnJ>W~2(o1KQ=Z1I-58aoTU%X`9ms80p3Y5a_uuShcRpVn`3z*AML`+f-T+pig zx;s*V$>jzV6QE6e4YGIs8Z$b25`FiR4iv&L5lc%DFwZ*Pf-IoDrmBOV+3m9xYb7j{ z&nuMK;b!FomHCF$NFA2s6r$^f=9CCtvQXe(-`l&hDS8d(kXn|HOqA@Q=O=<&*EF6k zC;4D8Nv*q#PwOd#pvG1L5G2*~cPc~KSZ|u><_uHnZt8n=ndMTOMB TbhPwlCw09a**C?qG0J3fn_1EWr9mkbfoNmh~} z!D7`ZCPDI^CaEQlAHYm=moUG!bxR53Ud~peo+30+#!(cU8<)diV&xusM}CAucVuQz zdhDkig0m>719ak^?x^|?4dfctoYWw0E#7$)zTg~&`UnQ`$`tu_p(EP->VU!zCO0+g zPxmI&xvDtG>pQnJ>>Vy?I<7vGiJDr*(3VZQsqRl*G$6MF{Ticz->=MqrZ`gDb`!O1 zYgN+p%9bs&vh9N#zWWz`>_PgdJ>Y-cd6sU^y;1WwR9xg)Kf$7Dh3ehydgdMUqrr~4 zAB#IOwn0=JwI8mk8#e0YlZj#0tffU=7JMiAn>IZXU0Hg7RFm9vg+DqwsJm89)I}ws zl3|8>U5;CCRHG?GPLGaTy114h4eiWh`9z;sae-Ih8nt3tGG uV }Y7 z-9*%aSkp~1VKXVc-CdMS^m_k64E{cyd7fRMh2%sN{?{R~b)a%4r@VVdgTK_IbQp 5R^yEnJmpEDijdbfJ39-LyjE_aaAl{_u1K)oB|D+sx;5dP!0 z1DiClAh4Jfme#fOoFmN#{faMDmtlXI2zXTs>CtNcGD;sTc=F}a6vqr4Qb8X$&%7)8 zw0L|)ailFcAx{d0YYFvR$*>^<^eS!yf(vy7%l(=+AEWa;>wT7*q(lM1Ae&))a?wKv ztVI2zn%py-S?+(>Go52K@=do*OB}EDqjlXhO2we9S7l_*-0O1thzi01U|$;dmdv8( zF~^BU {v&Hh`bd5*+C{XC+Eb08J$;Mr<@4WEzq`la zjmwoq6t;gsZhm0mTovOsRPk=LQQnW@eW%3DXv6fdqDgq %L;Bs{e%<1 ze!NE|_SHzg$spWErn`iy>xyoI>30{^sJTJ+17hIG5XC*hT2toaTlU%dj=X{t-oY}m z9U`VmY+OW4O#4wGaG;(_$7$L-`H=+oZ5pZ9Cvfx-<^9&}(&jpTY4Nt|sFG7u=3AoY z!9~UeR$DWiCCeAqE)#7gdVc$(;mA>nL`$XBA`=`+x`{_LAAPCvGq%Kzg2uzKjw9oB zxpSYs{Y>J;i>FhmQpb^DTcPNs@4Vy@G-dc#fla4aQb*FVwR)E#uMXMJs{KZKNu__I zqt7Jd4%K9w1iq2Mn=`xM1;~=zY42*}DOYsCKe~c@4a3S~5IGG&Z9xT&^ioHpYeOWQ zl^Tum-0?Ba7~N6_9@T@FU9j6#m teNgX|V&J=%jFkhB|I)K_W<|in!tH1*QT${N-G} z;c6UnD2)U{I}_*wV_d4@wl67j;IGw8k6SkhbSY_0Z^jDiDz5rY^Lnj>b~r=6(ROVx z;PDTfD)sjmh4Uu 4w#)EaToxglNRDfXY z75;GFMc?2d@p(x0KQsue^%2$6)C@mVDFVtJBrN+ige3ZYVzr#OWeAJ3$ViC3Y)D3Y zW`}u(x^|3>=SRK7O*BGKn*S~Wv-XQKa|c_=u=C@Z^@*<&;`vzy=W>}?hYa`kEn4(J zho+~nDpMF=mKR`3)vdZqC!u`~ZDFXeq(VFxio>@D8GQeiikC^>eCytG(8VuUW#10s zXgq3>B7HP8sQ5rMY1>PMjvW_s4S*I7&5X8`p b7;57oH{t&Q(S< zWMcWa0E*LQ0rQYY`E%@@n!-eR1IPlrQMsK&EA)?_s;o;=x0ut5NrTRGzWBz3f{6py zu@ktIeQSm`!CdHHAXHwmM)90uJf|S>ed69*=D2{EbuvxO8{}cq>D0-1l9oV7 j`8?a3MJK`(Li$PPwSg1-w}(2?ljdJDSZGDBpD<^~i56bj+3;o!(P(Jjn7P zzp5;5)x<(Mv8b|kQt6b_NQGF|PX0``sz`h8cj$K6PPbKRfC<>% }E+lEsdeGq_Po+ThihU@5$+X7Gv;*2f v$TEG_6XEZnAiAhKZ3NWlfi+2h9*}PoqS2_Ns^usLmi|jO}&=X zL`=vx9rFi0jU6N?6jTx%<9??@8KSVW{#(Yo{M`rz>|1D>Tpye|>uOMB+Gz)~TtrjC z8s!eczE_xyCyVK)@xLu@=>LNerwnB=A1aViSWM98O8>FrMscRb?>Sl? gt}U?!Nb&)BiU9?E~;t6qFSJ2#5fH)$0ZLcL^Yn^R{&K2Ot2D0RVvb zYtc0TSK7+e!Wv*T^jd=OZyOK+Kt)DIMnOhJK|#epeZ8^JQBl#curV>QFfp<5vH#cb zv2pS6@o=#T35kdZ38^S4DXD1x&k)ei&~UJE$nf#WD2NG&DgLkG|JV691Ry|1(n4-Q zLLdMj5+EQEApC;@CIA3LB!vI$wWt4UuOmZ3MnOeG$N1mk|EK14D2V@6;R6tm5Rs8k zP*D((5z&y5@elw6i1bMO(m-Sla}@Vb213--($--CwC{@tGDMo_w~T_s79L@rN3@to zNYlzZ-^iwyw^=d2T?&`e7LsSN9E}hrBR~Kk0T2Pmh_9ao8STH`AP^t|k?8pek)<`v z-5CUkP(uG}RAy20wW%~l;_nBa1#innWVJk*EZ_Xw0$?K{yp9Tq0Pqg*Tl6{ELr0op zb ?Vz;4pE_(|D2@LQfK0({HlrS|g94ByMy+8$k3nZZ521@e z3 lLa#cbr8c<80*$}dfwbfZ!C*m@IHastEVckHg {H;&y(_FfuLg^7rTl-EiZt7DJK#D_UTsm@9y z1)&fD(J2cDJLqfOYNH__r3lO+FTG 7~JJV)Ix{Y>QmSio;)o*uQtpJ(Sd+`RVLj0~pk8{PVQi>>- C%CZWa83bPRRD6DF)kKxhiBDrO;M7H+FDK|D>S0kc$27dMnz^Y zn@EP79RHyn?QmFAS;7U$uWf?DEXFQ8h5K?2CCnnkudRAmMT@e5laL%6xywTZgY$8e z>UWE7ydLK*&jT8MBXisQLq(we2^ua~1ADeEb2v!^v60?eeYHMKoo*6|?hY9?H-|JL zkiEqIvz8O<&_OOVG2jpUZMB#|9_$&pwdmw4{vnmrC=E}8JzKaVzCMaS(Sr%4brnCd z+YRT!CO1^F^enOTzD&sp e~P77#Y4lda@D{M-HTmA^~Qcm?-Yqr!#3n)7YrWbblMN-z2!pbs`@ z?o@#I!Q9h7K&Oe7i_h8+UCJtX=G~uh2a~o#yoO8LI;0#EPiEnmMI*pA7^~DsMrGzG zgp!^p+DS-Ehl`f(E#?NnwgRs_*P8}Zam_JWDDIUumao$-S6I&FJ*X!GW%o;@B1DzZ zE(OFT8izi~AQcxALWd&tnMiY06*dt!TN}*A^98ORKaLp_Mi;}-!GIn{haMBgDa8z^ z1ZYaJ#HrM$&DP1&nK)-F$sg!SW$2LF4At OP=H1CJ5v3bA@8~TT;LEv z+=I7I_f6xzXl7PMxL`o`plD~B`9x+`ZkDF4)7n*@kwdgD6;Y-k08MZ7JBguS2*6zH z(NYdmX$1jC!AjmE9+4klp6yWfCSm9kCE{5aBg?|3Honq0gTP_DMOdw-jN(|1#B`iB z$BF|Q+5U vE|ojlIKvY3e-Vj#u@I(}mH43Du1MC42t*Tl{iPO^{L5#1I}aWashZTA%2s zpWHJmhr3)(1q*o*%}_IAiU33U{d4TlEhe;n3{qY(@>rWyPWlI^I22^Rc!-tF8tQ?y z+z%1;8oz74s;;eE{*|)%F*{6gl<@}PgXg-tTOs5&IO9x0VeU^K6IK+qU*rLFPE1t- zr8kwo3=W(fnZS~dmPac_@xC~gwy zr+W6ezOhk;myG*$hM*uz=^!9W5fJDjXb>URu-K8PsMPa(t|1~dG>Wng1}oJa<**Ah z2;cAt>E}AoPwlxx>T%n5MU(uw^5EUkWihcJPGXkw4^5)K(;>uj2_y!DDhwqEN@Ea9 zLb2Et-&5adMtY ns7Y3!j(3}+4Rbz*M6&_c>EBaIYc=}WEDA)K#A5`L`A`-uDW zB2<8# 6r9N}*N-nZ}^tA3x%G5_`+ zh+sBhtuAsh QMEObR#eX`ogMWWJMfp4EYSyZ0hIAeuY zpY#({V? ByistZ!%br!4S?3Icv|P^wyq^NUYNLJjrb-f@8} zbZy^{<4{NBV21Hov%2kgDOa|2vx*{sQWFsiwjP-Cp5}vDh>(bDwh5QHPODv%s>p41 z2HYmf*=cg!l4&EphH+4S+bgPIE$8HZm}+Y`k{n}gd8oME_y ve+m(RkJ@YqSTKS zi4~|yAv!8hb#5UtBMZ@-7FPmD`eAcq#B=ijgd;4C6hrU@v0u4pA{*5cs8P`#YhaY zeJJR@#2 zkWD7sn~>&swK`fTS>}x=eG8d zGA3AITZiKtYx9=V@ZHa94;(%%tc|+2ce-3o 0QP0qsCf3g%fTV{Y}*+~3`y5j$1 VLP^8&Kl6k>JpEo8!P?a@ASOJxP+DL{}@I zWd*tVyvOBGkR)LDxUKku_01tC z0`i6N_j&rGfunl!<^m!6JnT zaFf%c*U3tu>)2|EXJ)~ioC=0>skY-E-3W_H8=t 4@tZb>4a?t zi?7BgXO22E8u!DEHHWS$c0O|~83e`#+sjAaR_p+?Q{N>sn4~4i7p=fhsWJ+(s*H?6 zNO7Opp`T}*-&XsnF@OHJIU91LMpjRv+TD3+3}g)V={W~Z?^ZCAho>A)Bokvml5#&O z5uY5p&@ZU{-S*n&9?iEB7GG`o2bes`3h_nY!aHIPe@Q~&V&92mk@wgQ-Kb_RquyxL zwFS$I)!dd9ti}0i1Zp2?;9l@d-?63b%HP%%WJOWN6dip|Ji)W*SSR)@1bG^C9CFwO zg?}Hmv0ma^@btyUBG_sZ^-gL>3!*SrmC5>6)$oYE^3F`ZQ0N^0k!}CIRz~|d-G%!b z-@vYVkD@r5QmRA~qmQb$7X-uKjtbJ3O{kBQk$s8%1 L%*aWi =2Zy9k?+c%&u5p4x&r;+wf*QhGf?l=X~LvnJ&v_rwCyjvtR{JCW$~9v zz~sK(zdg_5?L%?QOh>#EU8IyGK{5rMonc130y1ECuuKJNTLHY?B5MuEfZsKV3aK;o(`b73=k;}ou6mQszjWqgVR7iZ(!g^TxyDG28B#i zDXOK-gBuks1uxP5wBV?r*#etuPTyru%2r{fu{o*;tk)b%j#$oqyON5w!MJFZgr=Y4 zA;Q9%^HzMi9XI9#OwW#>A?U2wLne&v$LnobAD`+|LB36?n|PA_Uxr!Rdl9kx0*H@} zn`* jI;h)h~j@M!>9zn;hv6l9{; zxOrDet^`8kPdjexvE@zpby{cG&6#I~?P$u`EGN8Kj5gI10j*~61i5|G;w8zK;9qa@ z`df-s(&v^f+Tine7cN>G)V5sI)9JBd<>E&6n{?(9UNEzn8ynrc^{WXwim~EpEL0nr zU}Pon-g?`JboMp8z0Pr5vg^FyWC{w(+;1;-OJC>4hp&COzBWqwZ5z=PZS>h_OupHW zFrq10H*`cgeGSwYt=*v@QLnL;p8LAGAQf8-Gz2ck4X>F0(biiHj~nifCT>zMP!)EE zHM6me`qFTWAFw~~1xI}|z_U`}F8GM&$Xj{=Z5>g^9bB%(w{~C&7ogm06XGPra{e>4 zcNKCkBsbLQ>sB}W+b?}3TV`Shp5q_Y2&+4lTx>QNnArKM?}(=BQt?|pY3(;npD;#D zacqG?yZ(!qX?eZt>UN3{ImoG|Rf4azs$R0Ci*lA#$Nrg9a20Es(&^XShSKuW(|5gC zw}EdBrS;OOXv~G)vkj`E0UxxtQqlAelCY?lvIA__xs{TMaUJBA+ Y{X@r(N? *efB zg~`*JEs_~+IbAo8rNbR-P(T&?!ph;6o;n!eh5%Bw5yKSJi|ZpyWnCVIYJhl|J F<=LQO5k5hfiD!bBWiSz*$>y&po|na0qez8U4dS_b5R8r|CQF%lIV76e=O#m zS5n#TZW8;{vV^Kw;)`tdwLxc~*GziPMQcK$-A2t#Q8uIJx>D-xZ?^g`UM)M1loYf9 zv=Dd4 ?~Op zNXy(aifZhlYb>Oi$kzJLRX?cmcCI7f)a9aZ=bqcQufhz=^EytOs dZdoEs5wn5D&Fe>W)naAQE%aY3wzC|+zIu{TFcVs61woU3%R5m zg3aCbb_G*X5yi9P+gi`Y^?mio2*&)I_7X-Hyd|JHA-Zk2n{m+v-JIzKT|Ez)k@bWE zh>TRzN~;nv8E#kRVYANm6Bj0;1SsL19*^EW;AC5)$wx6!)k!Y$Al!aQUl(KcmUIbu zfuGIV;%U0bEf&utRa`Nf9iP!rzTD!ZopwWdM6Z@wtzozb{=S{tPrFq4jOf_#G5@NM zj?GmJBp3*4A`LU^36%P- OV!CzZx*AZ9DP;O(olnAZU}x59n8V6eu{Ow zsnrTN5^<-u;=bN)PboD! X#2lx-A!wd%1Uvw|DC#Q8kbgc*uU`{w@^;ZPu zx;)gRM|zqF?%X{EP+IjamAw;M6Wfzqu*6;$bt5J)!-_T$+`4t$ <3E#J+Bh?=NAaK_@#P5m77%WhTg-`_Svrh*slc%=f7cdxU=g+`jxXh-atfdMz&i zqo~$u1uNp=5AI_7(;qEAa{&-$yQCxGA}!0$4x>l!OCfd40*U&J2VOS&==$o)$Kb$~ z2XIurWNXjixQLDogr3s**T{PVpvtL)M<0bHoDaaF`b^cTwVVN4cU{9Ln=dCSkJlO0 z9g3R@d1j4+IP*Q4w9u*tMt3uK73Iqh>KLRTzn@-lRX%UM4idJnMNrMb3wwlii~j>? zKlJCP@RLB@YpCoxDRT_{-l;=?b906kOAak{50>2v`knJV)s;VjB##oL-wyjAOkSGK zKFM`C5}jPZkRRUhf1BiPx%T?gcVr powiIW4(7^#gbV?5DDmJ+AN{%9qx8 z_!DYYkEi3a-_|DmsQQt$gF(v3N{gJBG3Ht2dL 0ze8M=~f%DjFC
PW*d@1JYYT0d-KpH3WLSl3)DA>%^OtVF*32h7EW_Ya3 `H!v@*zCJHks-(N6$#AIb!AR|LHmjTV{%NjtvXtNaJx zFB}H3gQ8j`dF5N+;~Md# NOCLplai6^{RG;Rt-ue?Cwbykfab2Nm7eFfJwIC-F zP*lpmKN9Pz05KokyE!%CRpmDkgsq$u`34Q I;4 z3x+L+liY4mB2(kn=P-$j?@_D}yLQNBLEHe7JEp3vc%^rJeu~MSEOL$VO2_uj9x{Qh z1J`%2#A(wD(o&$B^)n~6+kCGL)zyMtANy#y=sC6evE->LAw1jSFDq}fxYlCSCvrYV znzAB9IeZ5og!DFT*>xq2cug*fdPXu_<0kL&R~a3DzMx*%?1OM|0B+LyN=3_RQcyg_ zh1Wt?tWU>484KgsocqIWnT64n_pM@fJ7~G64W~o&5(AGn@5}uS-=<^ZsECMRLSJ4~ zevrjxQloJp`?PLSoBcqOIeVP&@BR)nb$Ua&e*oXmKN~1)C9h5t6D(eV+H|w2j(J*> zrqv-_{oRu0QQ1F0@93|bh;Fv0Ul~>k=}CS)>9rh`PA(= )!Gqkc2SE)Gaxcdi{K z_c7FFQP#(WMqlLlZ@59+VY#bdxBG3lMy<)N`Q)8c_qUsqPD`IXD2`z{%7S60fybon zej6djzPDpmgw^o$lUM5?YZyEr=J^QE>;!)CFnat0JR7^$@2RR#I>UVVJvw@BY3t#q zaytk@p)m~WhP!mby|0`j%oxz@=lnZ+gFZM%ZoO$`ET-#Hm0XZp4BSf1rplJ&txq(> zI+(HgQ>Q9+IEQoj4}juXUB!~M-SfS+`U`Pvw6V&wsxYrbQZy+JMRl|Tr^{mN1fIun zMYb9fiSbnuH$V$pbF)BZ$`D2t?5I&=;i2V%J AZ=?$r5#CEXLP9pcw!b`*=q=0-KF8^yg_ zt6e~m&}(7*h^xIXcSIgK(r#kROiz#11Jmz!bD+C+@(rd%FL`copqQ^+>V)izcQt8c z2cDbl7_;Q+{LTW2dhqQk*+YPC6DWz^?Q?c}q?Sd*2T_j273+fk00PpZDR#6SUtrZ$ zeaSEIR=>&DOx#; 36e+=c((_F_$GjfuxVh6Nq25{*Z({ReBfFHu z@6mQXa%b@O4@5}7#ibhMXn-2>6QKgM9L_FbJt(cR+CBDM>&l4>uO5OfuGu@E{)(1Q z2>t$p$=+1931YYlm*2;z7l0>CvvA-21E@npeR%S}CZ$Q{q9R05k#;us>DR8aaS~k4*p`ipL5x|4E<3nW(|HB$&RmjUm@l*{`(ZM-6 zb$y${|I|-Xx43q`SJ96I!0H}?b 7JIRHX*kmdBmiF6&?%;TUl>Zjj!1dd Q> z=}Me2*&}4>P}xY8
z8$mQ#(i*C)KMMUq*%I#voxbSj71>kAgFJsoV3Fd*b1S5W7xLsdO?^i&SURNPSy1K1 zhedpCerI|4Tgm6@5swQ1pQs5+>XRFqsRK2HT<(8{Q*$)kL`33 noI`Go2a{a|bE1|pF zxQF~2!#>g3L0+(Hr!+ScPhMIZ1BH4I<{CXkT4rHiAlgOqAybTJAzRkneHw;s?K_kv zE>GvJ$AHufQ~BS);G&lEq|Ip4^_n-@lRrGljwRkcO!TIII)R~E$oc2hKKl%kb6Ubh zkd!H`+Rp?fFRYsu8pk~t^9B+`K6nNV8imkm+^WO$-bokh{{#FyVc=pq-sn6l3cbjI zTx`ZGxN?zkp3&4E!tJ_H&2+zLef_9m_gI;RmQ1mn_WF`^IUFos}HcU2hg*%N++#qrrc#g{zvaTU5)3N X__Hw1$A^JMRe{rRnSAD}lh18} zKJMs5tG}2quPNX9F^RhhtlMaPov7@k9AI4}u3HQ)S3foGL!iTd9C|m)KK3BEiC=Mj zTfbInire}P`LC5Rf*SjIJIx8jl`Gxs_4Oh1jLB@?%t0m~Lz@oW!_G!nBV&^80%Z zzi_oNkT7*BPsh^!62Pf;tLui-B{4tMTqSa1%3;gghba Ntw9z;4jvoX&;q$Oh*us27yC>BxmnJQ%+WY|Himw%;9La z0}bwtv#aM<(FR6z=nVbTuBAbs%ip-{&htMq0x_bkhT{XSxtr^1yM?c;-5T?0LHo#e zSSRpQ#F!_tCd)2xaZI~njo_83*&_(O)U>vsee;;DfjBlNU=J`#JJsVJ-5)6X=D3%g z%LNXf3uw)Y5~>zh-Ed50-RRNc=RELU5O++*WPh)}LpPK{b+3!z(aF!C3Bcb-xcDTr zMJ0r7V|gxQuJ(S)KI*!-XKACQL9XSBQxK`$(nHnm+T9g$D&jStjrd-fHA{Mpd5ww5 z0(|oGsB9xQ1ql&@>%sCT*Q}5oE2#BPRr_-!yR#J!!a)-Md{enD!vPb}+XGT+$1|M( zKJp_fTa&qrMVKit_B6=RPlqEad?BM 1)2zXogY1yrpTpZzV9{1trtj4>){pXG2^Ow!e z<7rr_6Wsy)+rZ-nt~1H%{ )hnWSwWSb#R4Edw-`Uw3YRUF37g }nN(`Jt<=I=hA432bd5WX%sXs!MOM1hX1vcOE#cXfe6_PIVq$(6e&B 0zD`5a`f9>9uVKbwB;so@?I~roPJ=y)ywpKR*O XDYjiX rN=+=#eXzV$kO{WaL0%2$dot0LW>0g^<`7 zM&Zm2jd$^Au7L9Az9NSvDW)9@oZ}yx4A{P_i_}vJ>A>-H($IB4OjM|qqn0k-sM%gF zv*uat8>NH R_VQ?_2LX7!e)oeWaij O+bjApT5e|?BeuxaVSiOdbhOz^VXWhe@G0I`waYK)dshIEL0ak>4 zb+`Yu`Nez_d6U;hP8Rk-dS18KKp|NceZJ7r8}S>Rtr32vU>(jTYo5x<&hEFznzERR zVUBNq{0?4i`_?BP@RNrU9<<=NNr*ZB+|9d%cqs89&;{e~{wT>wbv3s~SmE!e;G>6% zQ IBRiydO+Waj#^fyLLCz6%>#3$^?G)7p8LgHXGSgyLcHM z^71_5`kcDkIXGCs8)PT?W%Ijs 1(e)t%FE *0{jR>VCVZEy%}bx!p-5WjN>aK~1(F%b}+O!Z2Qns)cpeDrkG| z#ha}6J3Yj6ZN+z`TUgjHMKzjvNp$xg0DsIkfKFZtiQ>BnV-s1iH(!~Fe4^u= {)w0=ZHP&{IqUc`QoIl(?qAhD!Ef5~VGsv$${{Zpr?H5l8 z_HUCciI2ajj-EdTbY&a4u2`0n?)PoOA@|!jZ+kL3SJ0~*Y0^zAz}Af~EMye-`s>D{ z8hl?|EEHF$p19NuV=+uTzzrQU!4H;&Dtm%X7y8#ONNtM{&usFgRIj$Sl*glv$wX** z6sPWK->B|#gGno$H#H+n_W*WvHeXa+@oQz9KjLU71NO6jZ|d@wZGD3=!pXcKJvb+@ z>6<;@gON+Og*y&kgZ<&U>Zlc@zl>HLbAG3N9gL>k;c1xI?Jf=}Y`)OT9h-m`I*?q= zK&R&$5(cE l#0#O z<|8A0q|DF (ScHpz zfFw?F-B}hTr;mUP{c*W<#DJyf^WbC)1%yBGr#2MJZIl4*Tb<0-67#ebB(`z$7+o_@ z;ay3=c!AS~#=cL+4=+5>XAhsFDjV}=;aLgrIr~;dH5zcNd?D0yZ(zoA&DbS#U06c$ zd%Hi3FVfv;%{gXOGWYx+Knp81WbHKB;ocSZmY>&uSrlqZ7Tsj+-lH7tvAZ!T4$dQX z#^w<|$^t5|63CGW8;SW^Y#``rW-*_NW-BM`*gvu3$n|xqpW*(cNWgV$@|7Enm&}CB zjaVjQ*YtRH*q7V)^xM1_jzx{MF^h!+XRo_Rg^IkY*k*?w{|Gk9yy8nc_^Dj861eMr zOel7GN?F!Dg2>$Txd3{^&j59%coZhfK{wph8O_)EvO5{W{CiD^ClybuXNNpDz{IoK zF4FDr(lFA50uW;>aIMYxBgsJ>?lt*`*=r_iuh or*~R9OM18t@oJ8-sJ?^l2TAE>0gQ5p}1c zJHuqvZ%qsdld5Tm&)~Kn7*}|{#L~4uo8@HvcSXL XWU-xbZ`|Ufutxok98W5-CHM4^AAwHmsoEm z0eZ3;P_&I-RLkr?6M1UV!k#yDzGir@UByB%4D1-`)2`AN_Sqqs@}6zS#l3N0vJ*MT z+W|MI#0Qu$UCyPcwmVnbh?lHVUHqvpX6j_Exk9!8>-fOeV|nRU-|mwGk)l6>n*wQ^ zM`v$-MfNu^Ls2f^(DReM^OH`R@||g0={F)T*=-W|x9|a-(G}83{`BrrruwrHMX!pU zjH>Ia)R**S@1zs^YvbpluD^&Y) 45PLsOx+xQL{3A@ui!7^=1mJVO;TSo=Yzh0*OTX} zBzcmyS6Wf4sT2je9Jl)WKj!=O fpz#yg93cN!e6Gj2i8qO)8WWw@QB~GgEW6x zVcRtA7*cQQ&>Rk)A=yn5Yc}F53w3h6_#cIqL^sw016Te5-l%@M=th?2 zQKFlyiGS^>D=>SdcZa~k=bj|*9phd|zoVo)E}jX4&e*IsU2~-%SD>0~Ry=mW`FZBI z*Nl2)(qHLKcy@MMIk)UJ${FAK7R|sTW7$XEK>|d{Q+uLZE)KrqJovMJ;FTlir$-e4 zqD#QV)EQW?uWQ%wI?xxNFCjb|vE4Lj(DmN^n^hpK2z;-uzrUb_@nH3U_q*wix7J+$ z_ChYH_y?3ds$-NXa?tEsle2jFO#+p-jJ?ckO4r!(@+z8J)QkI{c$A^-nmtE+wL?8$ z^tbxF2iuvcajGsA%;L=U*2|#v-Iks%mZJ*9XcP^zLO@a%o%|8Sex>Pc;;T^!$4e|@ z%}up?)dDk4!tmu>t^zf%`5?^wFmCpsX6v9I6)-Wuii;|q<<~ytw%0xNoh4L7go| SBU0#)~GKK#T}Q4Qy$bl_iNeQNd}>2z}R23L+oBo zN~Sav_X~MBowN$opX+Hs)Fcucv^01>#m)hp1=1@NsJSAkcai-5JUf>RQMMTK$@_X^ z&-7E}BX}EUB3nStLKZ3PykVQ5E{Jw{uPUO>iZk?0-JOqj?|9=)&quw4GI0ZU(*PFg z0Hc~&_20Us>A3|aVPE2^-44>yIkDHJx~bUHP6d{U|K?Lhg;Qn5axV;ijVK |5tLP&J+$D)Dq1x#Nkg_=ZU({MHl6_n9|t zxy#SCj8RlJ0iYia(`SA~sD1WUH)y+><)E`P{){e~&yIHFab+0IE&J7(r;S&EdE9(8 zYTw@atdl*Gv^jEJ)WSUHTBLrmB +p@+MCbW6P|Lp(tni#wcAU@TF1aD^n1AMj?yo~ zV_-Ji2kfP3J&6Y;TQGaHXE(CN=l@cUnKU$i<42y{Xi(~__PJZM?He!QaE1eoWrK5U zAV;r-y(wjb(?V?6lZAdxbzy%;5Bo@DwvnT#7N;+urplpL(W;(BZRdBU>nfWY84OsG zG!;fZUA @}+Ky-DRp-t|orh72Q?WY-W zHT$*RiAiys5K!(m-Dqp4mzA#F{SS$)_IXn7a&5Li_JSU;gx&@{=tTxSET41du =(N-Wq)w6*et@B zEsDhoAa|rAb@=RIBWfM^w)2pSEO1xtRTno?*&dM)GM4D~d(Fm#vGJlucV$*CrxVau z*i+ryO!6p3hUKI;f4SQ4KT}UrSzHEFn>b!K2fASII1cq-k*RLgk8+;x|1w^%tL*Y-(g}fO$fC`8v)YFMRfJtOc9l0A zh{Aqt^6PGS)VpzVmA(jk;jI|Hu<_l*MwoXm#RD+;v>K$=jP4iUE&wxWWs4%Hrs9md zq42kD(mqQO!qP3kL1DH4n#HB(C8`1trPZ13lgN%5z=CONn* HlAVvl19JQs=I)&teivHt+Wo<-TsG*_;_ z!&7j W<;x#sYZ^=}4IoC;8p=3-Bbz r-;KlAn*z7q2o#bDV2aeH|U zS$n|uSE)wuW``v{nZR=@uR+8}>Btfle#pg1D65;GbzVAS=1RwHH=;jrtiGRV|FY^1 z`ZCX|dynhfJ+Jx$yMtgSP~ =YP^+S z2P8$(-yTg(9(xsvepGmey5SLqPo&+?YJE_&IL*UALyl5)A}5uI1ce^~hz}9bv4dh& z26l61@aqhOsRed+LasB6a(m87lB))p!Tv>!U#p#RM}!dj7A=hZOnW=JZoj8$BCc}v ze~^W@=ES60=ID~;1mHxyg8ta{W4b1O#y~6$HfD|Yn=J;J(PExKp~jEgP!RP82!Q^! z?3AZ_W?@(K u6)mOgKCb|;Vc#imv--*b2NYCCi89Clh zyD~_?9);Qo11D--fM8SV)+sdof*%Hd)hJ~OTo456{?Xo-9gK%n*SQ(cl;YEB&OSAx zv|P9!$`y^q-L5pYIp9_c!IU4xKCQey%T6_;A5n5I^=HI?6}D>ep<1ii5`Vg0ME3hF z)0ad~Qw =-WI zxzx?`tI1Pf$J(*Wb4Ob@U?^qi^NgDA(@q8Ym{+U=jc?FW;sn>ry76^h0ko^PDGDK7 zaqz*UZL26hwdY(j5?}@j%vQQr3`_N*j7jS(TOqj5{kturxTQvOI9#bH@HGm#knf z9I<2bz+7@{mC7i*$6U^?Wm)w;lQe~v1u$Fp3Rl_3801Ek332Q81Qvk2W48xHZHz9R z0JgXw9*WC=Uw`_9H@CM#@S=%F4ReEN`sChhV}snOJ{y1e@pwW4O}fl=&&{r4KsCe) zBuZ2sAy%7fTVSr)>AtCA*8AQ#br%e-uICZF@?;YY>Y%|Rv57bR()!E>I&THZ^vA-d zKYR`!tr$v`dpv%Jf}< 8O(kwI~3g7kwf)jt3Rrf?9D%k+(|*g5Ma zv}-#l5rGw x z)brNiR}cB@Qk0EJ3E=;VM|9Z+&oj`3+b&x=srxp+{q1~ORK$JPUP6Q5@!5QC&jqCf z+=)^X?^!5*a=IeW>0QntQu}%;;Ox8my0hpmYZGOI_hDi%R< (~q zpWLc;*prx8YB#Qb1GH}|WM>O$Y>e5Hhv)99*Ii(^1-q5J+dH~w_YpOf?hXZFiPN>c zd)rN@`}&*ByJlux%f+Is;&@$vkOJ=U5jhI=f@j#wdeH>NnP>CE;b sG)~yd*n_{{>pRBJ@_J#S@e=63!H3z*IqzX&A+<8n;}K zvZ^aRs7(-t$hZ^I@{+2e42vlY>m%Yuu1wRs%WUcAr*boZT@`J{*md?57{r4t+CUKZ zYa7z73kLdF2&`4YRYBtT&GrQ@e`!UwgttUc@KvDjP#TT`6BV^*Q8z^J+Co?68StgR z>H`gyxZ$Jhg4x1sXw21XRR6?x?MuHw#i4SOFkstt+3k7#(L(vrqQ;Mz>r`i=jR? zA{j!`0TQVuoFn#PIKt2_8XqQF> NcsNS-64)nhRSx z4k-i6x;&t~h?U7Y+PytC(6kGU=OW4bPe+=pp!r5kximI9ck&$38$yb&bacusqx}fT z *M+tVMr>4gvr@&N(VYeUdMzQi?mMA4{xdy4K*N3LZ+y=*95)R}U ziktzh_tM;RDh|v?zXoN1Xd~! z|so;-f)%L9EMv^izRYlHjSn )T7;dS8hg=l O!-aNPE;7(7;S8Nc)xc6dNkL!SW+n|q`uTr3=Q6}FJgY qayo*01vxLN@G^m z6ROa`bDanG=iNep*quQx>DWfJ#fmqI9>a&TN=}Jw(ZXA$%vh`b&ZO)gjnGcuv8%I` zB*MswsO-W`WUHZ@)4INq|J)0VRw-DP_#3W7UNyzfj9A`8wqB_Ca(9-25fkc_cvkLF zF*JX5Y1O$YTg1|oLv3rpc*eOX>EH{j`-9^E#Hi7$lz 1t+f>y0hL4hweU z<@Bi1uSt6Vb@sV&^K@TykxBvZs|reDx86OKPUD$duJ?qDXGBPHc&Eo!vn|IqC!8ns zE%b!E%8c{cDAs+=%xPSh2bCzWP1kxx`#}tg@dL`J=JzM(wNB?~lxgduy$#_X4~VFo zRSbLYosS?*CoiXTeB_x|a45*Z^kc0IB%z?ImKpN>-Z|NF_4?{&99KVU>1R{^MVH5d zGZ nAq=9<8~xRExUoPgCG37xBk!>sqox4J38x z>ph_nu60$)sE;yhR^x*gbnp3hNsY6HU5ytNm|5GYNOUvzi=12acf?a5DqR~U3Jz2Y zd)g4pV2kiPFHiMp#rI{lfRjf0MWPq3^4xs$qnIN_ntnz{w>bfKKxRrNjJ$82@OQDa zC*F_>VlH_ixmoQjrKgY&P63BVMQ|M|6W=juSZSfk%T^CEVM@tyQX$eu1YLkNP?sq8 z%NA|e! Hj(bA~P#KkITo1~OkbPLV{AUClJt2+CWFRd`r8YJX zzO3f^WJHln9qu&Qylyu)&`XBCeY-}TKGk