From 7bdca9b1565d3b7ce093f5e757078aa9f0f95259 Mon Sep 17 00:00:00 2001
From: Christian Bull Gjertsen
Flip display orientation
" + "Flash System LED on Service Calls
" "Use OctoPrint PSU control plugin for clock/blank
" "Clock Sync / Weather Refresh (minutes)
"; @@ -368,19 +369,19 @@ void loop() { if (lastMinute != timeClient.getMinutes() && !printerClient.isPrinting()) { // Check status every 60 seconds - digitalWrite(externalLight, LOW); + ledOnOff(true); lastMinute = timeClient.getMinutes(); // reset the check value printerClient.getPrinterJobResults(); printerClient.getPrinterPsuState(); - digitalWrite(externalLight, HIGH); + ledOnOff(false); } else if (printerClient.isPrinting()) { if (lastSecond != timeClient.getSeconds() && timeClient.getSeconds().endsWith("0")) { lastSecond = timeClient.getSeconds(); // every 10 seconds while printing get an update - digitalWrite(externalLight, LOW); + ledOnOff(true); printerClient.getPrinterJobResults(); printerClient.getPrinterPsuState(); - digitalWrite(externalLight, HIGH); + ledOnOff(false); } } @@ -397,7 +398,7 @@ void loop() { } void getUpdateTime() { - digitalWrite(externalLight, LOW); // turn on the LED + ledOnOff(true); // turn on the LED Serial.println(); if (displayOn && DISPLAYWEATHER) { @@ -411,7 +412,7 @@ void getUpdateTime() { lastEpoch = timeClient.getCurrentEpoch(); Serial.println("Local time: " + timeClient.getAmPmFormattedTime()); - digitalWrite(externalLight, HIGH); // turn off the LED + ledOnOff(false); // turn off the LED } boolean authentication() { @@ -462,6 +463,7 @@ void handleUpdateConfig() { DISPLAYCLOCK = server.hasArg("isClockEnabled"); IS_24HOUR = server.hasArg("is24hour"); INVERT_DISPLAY = server.hasArg("invDisp"); + USE_FLASH = server.hasArg("useFlash"); HAS_PSU = server.hasArg("hasPSU"); minutesBetweenDataRefresh = server.arg("refresh").toInt(); themeColor = server.arg("theme"); @@ -501,7 +503,7 @@ void handleWeatherConfigure() { if (!authentication()) { return server.requestAuthentication(); } - digitalWrite(externalLight, LOW); + ledOnOff(true); String html = ""; server.sendHeader("Cache-Control", "no-cache, no-store"); @@ -536,14 +538,14 @@ void handleWeatherConfigure() { server.sendContent(html); server.sendContent(""); server.client().stop(); - digitalWrite(externalLight, HIGH); + ledOnOff(false); } void handleConfigure() { if (!authentication()) { return server.requestAuthentication(); } - digitalWrite(externalLight, LOW); + ledOnOff(true); String html = ""; server.sendHeader("Cache-Control", "no-cache, no-store"); @@ -578,6 +580,11 @@ void handleConfigure() { isInvDisp = "checked='checked'"; } form.replace("%IS_INVDISP_CHECKED%", isInvDisp); + String isFlashLED = ""; + if (USE_FLASH) { + isFlashLED = "checked='checked'"; + } + form.replace("%USEFLASH%", isFlashLED); String hasPSUchecked = ""; if (HAS_PSU) { hasPSUchecked = "checked='checked'"; @@ -610,11 +617,11 @@ void handleConfigure() { server.sendContent(html); server.sendContent(""); server.client().stop(); - digitalWrite(externalLight, HIGH); + ledOnOff(false); } void displayMessage(String message) { - digitalWrite(externalLight, LOW); + ledOnOff(true); server.sendHeader("Cache-Control", "no-cache, no-store"); server.sendHeader("Pragma", "no-cache"); @@ -629,7 +636,7 @@ void displayMessage(String message) { server.sendContent(""); server.client().stop(); - digitalWrite(externalLight, HIGH); + ledOnOff(false); } void redirectHome() { @@ -695,7 +702,7 @@ String getFooter() { } void displayPrinterStatus() { - digitalWrite(externalLight, LOW); + ledOnOff(true); String html = ""; server.sendHeader("Cache-Control", "no-cache, no-store"); @@ -791,7 +798,7 @@ void displayPrinterStatus() { server.sendContent(String(getFooter())); server.sendContent(""); server.client().stop(); - digitalWrite(externalLight, HIGH); + ledOnOff(false); } void configModeCallback (WiFiManager *myWiFiManager) { @@ -816,12 +823,22 @@ void configModeCallback (WiFiManager *myWiFiManager) { flashLED(20, 50); } +void ledOnOff(boolean value) { + if (USE_FLASH) { + if (value) { + digitalWrite(externalLight, LOW); // LED ON + } else { + digitalWrite(externalLight, HIGH); // LED OFF + } + } +} + void flashLED(int number, int delayTime) { - for (int inx = 0; inx < number; inx++) { + for (int inx = 0; inx <= number; inx++) { delay(delayTime); - digitalWrite(externalLight, LOW); + digitalWrite(externalLight, LOW); // ON delay(delayTime); - digitalWrite(externalLight, HIGH); + digitalWrite(externalLight, HIGH); // OFF delay(delayTime); } } @@ -1044,6 +1061,7 @@ void writeSettings() { f.println("DISPLAYCLOCK=" + String(DISPLAYCLOCK)); f.println("is24hour=" + String(IS_24HOUR)); f.println("invertDisp=" + String(INVERT_DISPLAY)); + f.println("USE_FLASH=" + String(USE_FLASH)); f.println("isWeather=" + String(DISPLAYWEATHER)); f.println("weatherKey=" + WeatherApiKey); f.println("CityID=" + String(CityIDs[0])); @@ -1137,6 +1155,10 @@ void readSettings() { INVERT_DISPLAY = line.substring(line.lastIndexOf("invertDisp=") + 11).toInt(); Serial.println("INVERT_DISPLAY=" + String(INVERT_DISPLAY)); } + if(line.indexOf("USE_FLASH=") >= 0) { + USE_FLASH = line.substring(line.lastIndexOf("USE_FLASH=") + 10).toInt(); + Serial.println("USE_FLASH=" + String(USE_FLASH)); + } if (line.indexOf("hasPSU=") >= 0) { HAS_PSU = line.substring(line.lastIndexOf("hasPSU=") + 7).toInt(); Serial.println("HAS_PSU=" + String(HAS_PSU)); From a20eac341b4c8ae1b859d9645302879dd167a92c Mon Sep 17 00:00:00 2001 From: kg4iaeHXTY48D?~bzKZ3cU{yja2 zHB_A!)0+>CvOfPj59(V%DgnVBA(r0~%3v|ig;5>t(KjnC2u8GkAj9%4{KI?heb9%X z2RBJ0gq&;OG?3D)w;}j*U#<+tZD+%FuJK3jEzO8TKF)t7HSQYtKHJxKVc`4f#yg~^88WZKynzkj6Lgir94noR zJ*k`~>o;;?KqCsVjg>G3B_US4m9o@wdM=aCZ4no$rG+dO=K&gJ3+YOewy4QUXBZ%l zfY)~xEyXM19U7ZH8{6+Fq3bf_7Qe4uMyv?G$1Z29D53K*A|LphO{DkR=cTstN vqy5j78v7)?|-qo+XsNS=y{cyx QC&;Zc` z#0@-tlh1EVZ%PBsH92<&1S9kuI9QWf)8%EX5RyDGUh~OrG2ehNyQK+{`3Fc};X#Og zvvR$kFr&6)g43NmZyi3+zc+MNcc8ZWQxN0ay}w;NHoyyR&XAZMEgieWTb1?7yGR{a zuN<0a2tE1>roNThUmIJjFLY`entp8M?H9xnRw_|nE%%rV_~ZmvqU~y$ZuP7w-(6`k z6m2MdFyJ}JK$g$jqNFxWT?O45@b0fA?^=_sn=!ZT4-p&pJ67QU?TJ_U;x(j}^7FfN z8h9J1v?xSw)HP1Gj%R*LrQDra+vrx$sxrNbW197hmG;G}(6sY>%@)(XEj+O`vs&eb z+Wk$O>PZXvDg;^!x0Fs>g$&LXwM&!LC2LN}RAov;;eBkG$>2+2;iG}_yuzC85rp{o zJF{-3TRT@^YK0bdf2?R>^m1rn_a}-Lo~FcusuSbs;sUx*T;9EwvLs8dUx^ee{n2zZ zVPd5a&8a-E54ha!)l!V~I*En4#30R)hnTW}FCV8G1A>-QH@DF>#VrWd#9mMfd6%Sk z6{p7faCI{PmNOH_ARc~?)r1uy*xc$}YS`i<`8upzwjPr3Innb-Laloy1;1D*yDh6J z1*s|5_+rDi7il;;U6081*t8_ZW46 SHcU@wy3gDY}Ycm)odf& zkNo 9iy84_`G#FLhh z&06bbYcc|z5bFK4&fWVg!G>Yau`4y1!JM(xkoU3u!&h%;Xy RI|MxO5A0ei($5;& ziIiIuDIXv)m9-+Q>m-|Kro?>CW8#Y1ZBc7isQ-Jq)wjU8+h^h|8|(#v+r|CEn|x0e zC 1AMyUH``aZG*Js^F`Y8G4J!yfK@H})yjifl|?uHp% zOFYW1wSW{9zou}{T_XimB-t>(ppvmC8}`;V^m97Ig!&H*2L$u}{wFO^?S|TB!DwxN z;wanD5!-OAq1Ms_ok`k%Ao;*%&*liQHufKiMwJ+v{n6^8>DFfBw`!5vNw 1C1 zXf9Ec0wvnIyy;d(_pJ?Q*m>;sUj_V0NxqK!2&lKsZkutKKA&Nd}EK`)R}#M*LJ* zh0CFu8Qd-dl127+@Yd%s&X$hwd?ZYU@t2 >qyODW*H0!Z@GQe0IYOWF9ch@ZlUjH^lAIbydkHMp(^NQm?naXxL^z zj%k;3x^*N2K^f^F19bG(R`pwHPJ<8ZB+0G56%Dl IllYZ(kSoOUumI33 zk6c&+kD;L-K10 ;BC|_uo-;|DCYz-z?rh#~z750btEL z&2z$7qfv~7`4^$mx%wHbF>q?2jrtt0UMhc>pw0Sg6Nu8J`U=(RaWvG5TE!OngVN*= zmJ(a&kEF@&KPpZ7mWuP~ci>R`foe8IHv9Dr{rfuto55z&z-BF`p3SF*oe%GCA3t_w zUrLZ@Q^&rB;NH-qz?x9cD-BKiYxgOzffZ1UOG6WZjic(d79vT_aI&vy>oF2>6FXVJ zHUSR{zylouu=$OEr0Q{iOun``Uk9Z6%)38y@c_@6148uv4l7+ABFNPqhAqRBMd~xt z*e`)OPasAb_6A5jY}Or^OGVU(&p4 g z1c7hjQWgLg5a!%2Zu0%O0NUQrK@cuPe9Rv|)O7)l@5_g}otTz6X(`(*%;7UpoVz`B zdFJx;Co_NCLadU53||yzz&k(A+*Dk8PcZ9#(#(-bWPDH(9V0$BMZ8#djM894`Fg$} zuyzYE5)kW$y&p@$py$z2;gJZq1Q5~*(#H`^&(!{=hFXAPjddR|6-%BJ#;_@@H`hSD z=}S=GOvYxdxW5)7L$K6Ju(V@;2w2+DFs5MX*n#$d5CeE6SQ-!_n+3DA>4~FE?9<&1 z9nFfgJZWj@w{C{;#GYk|j^W!*`a0Eg>wp#tRn ^ZQRkt9V4=Prh^ z?CixbmVI_HjAfr*oWZiw7a3tub6ZWPuy8 +M}z-ZDa6F8*lsm& zvvBccXSI#P_cWwqUvxDiTVgVMF)a%CI=1-SQPFKITDM~-qA#AOm>(9v9fD;GAGPZk z)p{h`T{i}6Yb>WDy;k!Y(lj|XETK8IiQk(`gmbB4ar~6f2VmzXthJU7XKh+DqsgG$ z4~(rgZ}XV+Mc7G~p;r%1wKlsYlOAn!9fQodEU;qB7*&8_d<%#~RhsnN;&kMd)okIr zKA!e=Jo~n#zfqdBVGfi8eVL#KW_T8;d<(GNNLhtR4047Z25+oEpp&!=0Z^zv%7RkV)a@l(X0{|pN@cd8Fjt${RW6ZZRJ z3drsc W6Vs`%SH zEUbIXRL(HIAYW81b`9{blwXZlyA=A{9YIN5ms|?(Fv33nT>5SjS6eIkgt-_z6md2s zB>;Y{!)uqW{+{t#>2P>*t>|qc0KK^SbD)5w{ryA0miKS ~tcdAnMMp7qh#!33G4~RQQr(KoCwMb|yFzCY5)Mk)Fq^5uz_fGN z#?}3LI(B3#dkr;oK6pFH+Q&!tEMt?lIB~MXI#$0DCA}!NHlxH)M^6`;jn(7c_M&!h z9gqk_0lMeV;W+{MY $|y(}j$VP^o@;y08rHYz%VJ6)?6``>?dME{w$( zUnTZ}>~(-~Rx4F_NbRj1H%0b5?rgFz-8T;OodeOHf! S*CT`2$_cvPD0!>qPWGQ_w#i}r|TuKR7^HtDB<;ZUK {H^OqQIc z!>YL5u**<4i0+YG#yQlat)Ae0 WT+&we+uQ1t_%FrV(2I vlZ-l-o!0l%`n~B)M_93 zEB*rLV iGA???)W@zP9K8dfhJDzA`w9#6O$uTf|yh zH{ttr9b6rjZKoS(!Y9;}nITH>xR(Z>4|-m^f*|xO406*UvpMZsvG7lSmz4LmAMNKC z2g^gs^Vpkoa4f% H_8p`WG+8>vh<8Niu&Wb *Mk?rzR~*^U{46|UBGOIzhT*G`W&)l$uDI7rFr>(iSu8AEwS12 zr9I)TED9(Fg{2I3!yvxNQCzE74_LN3afWof2}>m`SVa$zOJ!*qMuQy8lLG)YO63|I zZCWmmBDL#01F#gtOI#E}$&>jbehoC51SL&6SKCD2Z!mJfK(Zk%X}e9!sk)wAN&-2? ziuYuzDMNFb-YRT$K<_jqny$VnhYM@kWa+QGnp0J_$;gbOET1hGeGK*BT%Kbo)|JP1 zU`uV!fX}4el<7)6ER|5*DG=SvEsqSvrQXx>rcimQ{w4}GW`5x>ksnEx$~}G^pAf|G z?yaSNLHg5B3pB{*R5k>?mU1dW&rvxSs8gcau9`GW3X`Cz>-8yj{6$W+y7|`nx!{4W ztW7S_X;^AgRb>Qq&r6!^5si=L{hW_0SpD-)OLS?mkL2AN+T`o0_aUQK1E8fS#739j zjEIjfUn}M7@@@@o{0)=+uH5}1#tA9x^)zKurTb$$Kl_#d>*?^?H}))!`y&{CB-u2V z4!;%FEZZ2PZk_VVJ^yG B+icsM8`aMRE1c8Hf|6lo_K1w^aQ^}Pj;yE_3jJy znEvuw>@Omm2NPSid*WkacWSE00%ycXyaq|mmDnS`hH!K{lL5c9%umzV yw8ioE)P0umATb8}mP=v_ zwlQG6<5pB;eO^B*d@ke9IR1cHv+w!v-i=> Al~Y*cqz2i#>M5YLKC61ldDWMUK<{FXB}!Tr%`_I4t3Ga}t*SU|=(KNq{L`=R z+w+OBsM2|}_ePz=waT~)WTriy)vN| uHQF z!k^F;1MOW1L|gdm5odLdS;Qwuj>YhDz_Nb)&6vyM7Gwei>5oWEBx$7=DN=Q-mU2vY zG7|M-wk$H1W1pW#pvm`)H57JClRX{k^RiVy#W4{1*h3MVi0|T9)`0?4^gGh7cn8~1 zZCRJ0#hrj(MZZaEZ*WLawC9Z&duHI7_4_%`YcUzxHEU2JsKciV@V2i-L;=v23EJ>@ zjmNUC*o^`?4*FG6gV&L?%wqD=b?Hls-1s`93VWE!Ij_m42W?J)PuTOdWp3opVn;D_ z6e~iSGQultdyTN~2y<(zfYsBEQ%!k)=jq*Fvg-=6Kg)$GQ*5U?{x#QXV|*Yn#wV%i zo)>oPh-tjX#$`=Y8Y6ZKS=Lp)7GqBfRArNWSPz0wU^PG!+;1V|R+%ykNr~7KyL4%} zP()i|v9TalQd8Es95e6EIYsgKs2uiv1=ZBo6I#OZ3lEljN5lRWkI$Kc-BVO!r}SJ6 z(j#HnN }+|;C_Yr)b^TWt9* z4@Z@C$5__6vICqdD|M-5MNut$M!vvqNyb;`ij$SS%+6ijb!g6x?|d(-5m(WO=YK5X zLy6y-!xa903HiJcS^cZq3uQ+_5vSJ>yruY*5T8*4{etvn9hV1sY0EZeHO-KYBxVd@ zm$u=X-!W10ax4L|Dj-;Pr@Os^^PglfM~&$iYyywKp!9sJBZn?FWpBVr2P+D6>GuOW zDr?}({gWi2#IM@hq3)7%83eJLwN6J-zWu(y=zo~-r5sqMJ4ir`>M2vUYQrkc|LfU} z%{t^7y0IGi`Vn1hg8D2z*@q
inV`y z?+t4!x L zIu0P-U5?|p!C(rC+yjh_^d;LgXSpRjefVRLA;TiUhSJJaYi>xY0GDftogQL4(-T-q zC7J)d9jZIEl%uo~`Ae>hH}0emYyc$OUt0O#_Qcmr<=S0@#gT<`D3btQ_f1MP2L`{n z?&SvK>+}J<`_T9i_k%I}^t2@~@!9C4+)rE);^@ds_rd1c=B1HoLxdlE1s2j(#gJG! z`1+KLEL?Cox-!#QXrw(1Ht+6=V-^_jXbE{F#Qdc%Es&U)MZf
Str5niNQPLB%@Yg`MhQ876Ts~%bW&d9==m+5Rx11`q$9-O@VPB(6kEM H)JP5|ySU*P0nTeT+aIk!Z(|ki(CF~(Irl9`|mzLfK6(KVegk~CV;<=GC+iaZA zGa_5z@`X+zajU8PfDg+6w7N2(%9Gw+OFbIazBD48cWU6JH=Vi62UkPZLhh67ZV5 z%|Z7z4{+?gkqH{5}~9w<7Y%n^t^ z^<6747LJlKlKq;E?xFJI=Dut#32sF *Z1HsT)~5I}H{cx2 zy!_)+V1BW8d?w(IO+)5D|FCG5p+xjtFp;9=OTyoUD>9~Df9_=|Gj~qYid|kvXRsht zsopB9VelPQ*Bh#K^}ICbzX4DccJ1m(eDT BAi&&jmmlS}03V;Rh znMq3qFHX6BE@<`Wu}tXoXk&Fd#wrfHd!dPbI>@{g%ri8R`5v0?!CWdi1zmz5A% @wAV9Di^N>iHX2+wm4nFKpyX#>UGM&nKr@`($= z!709K5$4wI7s^wO788II!7EsdOQ_coN^Zi!VF_}%!|+nwD|7@fL`)0pIJ KRkVa58`=x+5&%4eJ06sAzNUjMVk*;fAD6Om6vg z>G7oMoL= I@7O14)%>~^1 zURal)mO=KDHK%jc-;<^<`{&xyds6P8PAH*HzzA(g3s&Z#Uf5!2_y%NKmliCn=tVok zD`AXDoH;ZvETZwd%r-G>XnOv7arQ70yJg;^?do?7oSKhYKjmh=txwQfIg^kzRYW^+ z@n;TYo+6904dv-b_ib73wP!#FmT*hZxE&^QDnwf7jjpx!S=1l%Zn6}kGvt}RO$$e9 zpt%HqW(inT#{pXq0=VScdp8xOE)0uU5jK>L b-a5JDi`UVQ3; CIr(nG(;`ow#MRQ2x%uW z+6hfht({agnyl 48erHFl_)76iWWOcFy$4xe!FcoX_+jtbg||7q0Sc z%8Smt2ME@%IffmUG9((`qxv9x>Nx8(b%1vLx9ZVlMIOV#x|FV&gN3ACsqxIXjS&zn zf{v~w=BtZFXm0s6hD|HNQ9ZCzlokj{H}ZkpPSeFgCBsKtS}3RrvhMa|Qo^b>4Qn55 znO0jLda9?eO$-ch1)9p3y41OiiJ%{-5tNTIIPdK=j{#S3Z)X9CDxLRq7J#G-&efd- zqv-eU&Vp1}4A08lPkUuU7e+(a;4U{NqyaOVemVE#h& Qp2IX>7_1oYS@< zEPSC5P$kfLZ{}%;Q-h}uSwA-(=Tgeey`*PoaV6){Z^gA>N$WiZdNRReZt{ZFg{UD2 z^z^^U9!clz_zJL`m^>F| TTV z`n1USv$bMcc KrZfcldu>7Um zU?|%YFE;w(Q{&@D3!>XR$DI~DRe}wNJ3%wSnZ~0Lg)^N!zkZTnDv%&AF%uFDV1m2C z$u9i#+0 9aSv2GNE`S>)Ta5u*#feBT1orlNt|E>)3xpfQ%}zlV>RJC_@+ z6tqOY`^c*0@oOJ@W1qKdU2Rob#I^_5ZcK~xJXnkKWpKG`)@=zWbRRu7_)Oy{GbSKF z`Mb;1aL^|nxEPz2>{o*_t!sRGYzZo*2mHDzKJ<`Lkz9>-2=B|NodY7{LU~Na`e5IY0K?N0TXr^_x*r| zOSoTfjR8^&%*8k#iCQu+(~|p(Z>I6bw1D)9l93q#U0_PGgVSCrrHr`2g-zLQ8RN$& z5F;M*xv<_?>VEL0WWWRqBnX(= e_MEuEc-yTT z&4#k4jGOivHbw=Gd&- zd9xx^*MJLW4y4DexB$qt67NU$fLsOEn%~K{} zkH7lY*6-6ZQ(M0eJ&{V|0cfD^^V{Xh6QkxNj1 _nqVhF@FcFZPi-39 jEWQ(}B`yy#?Y`%sIcb}KvM8i+uV zZ#e}&(BcSQ^?iTbObWiI#pNO(yyuUTDEO`x=R`n$#~&9)!MC+IBLd1>Jix8A?1*EH zmsgJXv)Ni3yP#s~f*?uVj?Q=~B~_;1Eh(w$HvFPPW%@;DtFIFdWct5Ep#LSxYxqA~ zrvHWNtN1@bq5tUu{ZCN0;(xTf6;vZ^je}tBmAHN~Gz+6Q4;>TYQdbF12XR!`LUJ4- zxhdO{7MSN*#PzOMxGg2W6SkD(cxe1LmXfzNu5FgDc}Yxj<4PbL%o0ATY8*832zzQ+ zeDNFRG?;UuKy93K%opmUB(g6qvyOgy; 3$`#ql_`GH##K#l9&Y#-$neNtQ^8 zzdIfjM4hYBSIYbx5>oitI9`PCY+O>4IIRper1qOw65*LR5_S87TL>-tO)Q)IG|>w} zJhS{C^bM6Z7g+k^{T5wDAsWk|h|(G5!_JUPB}8}Bd=r>paY;<}5OfRnh xAl1^wPOKY4Sze8!bN#v`_<>26 z6S@I*O0yOIq1b!Eue=fm&3)|ol8vsqF_692B`vJ8LlK4I+Udd|JZc5{hjI$!q2iQ> z;h{Q&hvUeq4)p=06dvLvO<|Vd-+f`$j0gL|Ec-g%pRDc5=RP*Z(Dj6SS<&KX+$s;~ zeeGmTyPx;9a1HwU&vlkUK$llA+GKY&>njVJ-t&H1e_~B`Fy;bF&~}K)sm0HM78tDo zCiqxoC*v@C5QPZ$#8o^8d+7|ZLPMPRSt+I}YTWU-ij6plVG+viINaA`xc@N@i&-RY zgy9jLa-6nkWTdRp+M7AzPh{U;hc#{Vl3{!d)9hdx!pajgbjdG}? m!W!5WeMIah8b2s`{hG zJWGC#>wcIrN8bhb`>rze(lUi*mz0@TIq 8;@#iy)=gA^D$Ju4=oAZvCQwWDj*xRW+WJ}rdby!kr0nW6- z51X 1)xl!@IZH(1 zo2K%ShH{f(Wc`3t7=IoD1s%~MG*1)2&o%t&qX1{|WUo`iSJ?aVq>Kw^iLYuHW K^CM-Gi#DuTKeWGqBPODtQ z1MG)|6^hvV99+3`QD#DEq;1v>SB`?Q)GWJsfFbIiu)S!SF(O`Bp1OeKKNWvXN{t^; z)|_XUYfnmroHVrnOQS2*1REyG?><*5ZaWp<-c#_K4;*`bbG{`hb>En%@QdcNzJ3RH zg=}n+{VK@oU0*j%J$eH2Ckw6t2X%J22cN(plL-%vK^#}$bJc&_i -tF+0 zk9BsB3G1r`Pid^BgXRm%g;ZZuI8<%+nzF*De!Jf^|4nEl9K;yGjlcPys|U~{X_n$g z&CpbbJ>LsP0c5u}Fw *IeEiN%exlEZj7|#+X zhtK~UUAxcM_(ocA>MrF|Uvc=w0tlEawE8NEno)Kk(O2*t$?7j(ec5=bX9lwQ?9zh0 zV5r4%IslJs6o`hw;?!PodMJdF$~(TaA*$Us|IKmX16`iGVeq105WP1ncd*AeXJI}u zmj}=n1qK~p8zlo5s0U<)B*$9p4Z-X^i5Q~jE{}1#MXdii{=og|*WF*c8(b-@{;POb z(o|6a86GlVcW$^4($L`}#ws`z*JP)M>Z?rO3yjou8b|2#I<3>84}meHM*5 ADAxcqd_uMIHYPnYB$-AWWrql7P>?{H zl6Z7 =!ggO{JwwnoToyeK1OY=0 z0R|<^R{&UrFrWDghMr4J7(<@{GDsI)*9m}zlrd<#D|etPHz+SR6umxhyY`&5;lT*J zjWZnY&w+;TfV&s&A-Mm*Rl K_cQm(*eh__7`5X&NkCKO_icTz*- zgS @Qup7YY%KAz}kEGl)e4Vj#XGT3fYHSr?U#@P18mD0(Jj4M|&<9hO>|7u+z zUvzYNPDwBLx>@_bitTpteVeG4qIexVZcnWA3}!(B!RL^k=3c?);M?-^j^c%)=s6^9 z;$5LOqk*kx6|Npp7J%V7r1gd1h?5plUkGv72<>5gk>?qN#01%K^hT@1yw*58Y)jwl zXpM6f^Zw>wAS)lEz*gQb>PNhAD)FOOykJY7UmTq0FYtlg1tLZFG-;_%^lVEZNYy=P z-p-S_`AKQ_ApbU$#j6z};-srs^M;~%HE15jS6} !Clh?I_icfJilw#`hR7f*?yxB@E+OSz`gG%sJ_}ickij%C2Tr6lq*=22zzl_C% z##<{7q`r};8S3}EZ`4;&)@ELbK>iBW4tZ;=Gm+BCExd2!F+M5P*IrpD)|H+-MU8(a zR;*je>HKYYOI>xebrno;((f0^6By@jiC8zEa_py;xVYaJi?x|n0;B{u?4$5J6-g;; zsKACq%;A=R)Ii3ytKKVcYW4YaW08k4DWS1a5a;LB7e_`l50D1%kbqE^8PADIfeg1f zqVud5>kU=(l>;oelyQ-dRp1}!mM(f>%cCwI@$$>4b_SCgDF1~w-&HpQpVhO}R=!7& zfgko!{tqRf*r#F}RvBDPMsZh?bi!+yO$D`F;i^nZ3r=UGDF?d!=?SB9*-k zsm;rJG8IxSDxwNyWpeT&Z>p; 2`~ zoAp#4G798Lr4k+mW_zTw-6<4OUW+wPqt&J|kRe-nB({KU>nrU%T%m_UVc44XE$8u! z9sQodtA+Hthouu9($aZadHCOY_>eh*rK{oPt<%4AB3H`w@HTT0OIOD8EBg1%Jp6zj z22sLpFKXt*vo;o-0Shu}SrglUAPbi=X%0t`P}cW7pI5}Y=ia{W)Jw`eePPx;t9i9t z40p=H<_7ty1e5aytQTbGsJPjAeY Z;O>)? a`_%8mWjG<6;d=v&j&=VPUEYNq-k5?#Kg$; pGQxl+sL~R-A})T zC{r8mlc;!%;9L2c_H?fX!z>i9uW1Sa)VHQ7&%{c9r8X$fA<^Y)ns961nkGDrx}B@3 z8Opynnw1=srLAe|L@Jk~W@4;!1*H>~Y3uzbUg?hBeruXM1@k3e)0D~ZYHOPMc&wDm zI%E?~#C(P4Q;}TKx2DM(`{rU5IAL>@I*y8@4k1q|uDA4C)07RDtZ8z!Lz>;o<=V>l zkx_V{tw;}Mjf@H((3aPWC59tdX?B7~W9yo7D_hs@xxmN0G6Tb{P?CG~bxoass`R_nV;k<`>)IG8qnE8~>Qbz0WAt@R-Q+0VXm>h#C6&!W z^BvL^yf?LVO&*J~_`0Tyfmd7C)cazkGZ(0?HJ7ey%2fZlhB?_!_d+)EvUP7bm4}Rq zNTpE;PGGl3y7~fJ*M!_y^R=`LR3@3PV87b>7N@Nv`uY~DhyNezn_XXjwDrxVhc8>- zV)XAC!AI-i%htDH`uEM8Afxo~W$RnyrR!USmaML{e2BKr5vqjnzIE%8^)0mTJL|0> zePOn~h4AwDJb16RzU?1wa^8sbiq^Mz&Ca>)&N*Gq8?^PU25Z{;a7W<2h5H501li^Q zI15}DTpU~yTn5}#a5CI1xcP7k;ckVKAM;LJir;l`JK$>JcEjz1Yl1rh_Z{3_A9*L{ zKIfhIBm5gHL)jXdXL4WD?9Od>=XALz?l(~ftno&5-A0eBdk$Gee2_yhS?qCn4z*&f z%plfEwu4flvn?lcTfZd|Qsen9NcLj=E0ngKPe~Qsj8(cVHp*1&Z0aV326wotrWhwP zE;r0q D&82{`5|o%FpKe{DsybJXXg=Ze_#ehQq)1l`w25+r3|8V zVHOgxxwM`32M76LZl~Frr&O+`d29;XOQblC&>Sk9#kk(7O_smH&-Wur7rdYt&Kvj~ z&7RFDj_;iWz(sLKXdfw0j+G*)a(OB$r%4pTni^KL8X21w!V(FS*xbzs#T?5bl~X80 zpFe-*1yXa!+aukKKBF=R#g+#d+wP`yQ`_Gj_DXj$=H-YN%K@E2BAq%QmdyUar+n#^ zR 0v9191% z(gId`Gpl_EuifYHm#KW_m5N!4gS`G)t^Qs|=S(29k(zK7Y4uQD`@GULO04W>iJe!$ zFI;r!(R;m80gK+pYCFs)pbP$ZEG-jR{9YD+jK`nz$E#i`lf{3+;yZZ!Zw{@maCuu| z`!so%w{5g0Yf$RFQkt)qopkS}Y?bjWo6_lMO9B8SgAm Q#Sm;5-c{itL>Cq?ZPrk+LWjzIz*IL0WuJ8^B*>O3mlU?~09b#X8Skzz9pOgB+?& ztlFB~N!y%sivAWB1zbmsNjNXfY&+{Mt{22>@^PRg)t}?t)s8_NDSdp7<56fsFje}1 zN6M{wUka~#r61YO>ou=*j6Cu-)_a*6{#zUkvoWtqUuk^lR M$=5I^zogOQi(Y9z%luzf*+AB0^-H}~>hnCE{JgjG zV=c=IEM+81DId~P3e{feZPuPDuk4}h?SmVUxZlD zjDu)K{T62YSYa=LDyVk^@(> (!-Z7t#YOQoiDAjM-O8%gwUV1jzs0^vkpAwrXSRXSoD1)k*4sB z1ICv4K9Y6C7Oe~hj{LM9BAA3CuYb=;pb0bk!UUl@(4w^)%s;~NlNvi-jAiy3ENS)5 zyk=)^yECWDIgu~2C$QFqJcKnA&TrQON&{%RsjT^^F-oK->!|GU-s1MChB-vCzhWfM z!8heu2bspKn?~`^pyRP>(Rb`4adz)w-<4OiF`84vkMpCDVGL!)o`)fbHa}PuPyWtn z^}M68NSrPg;D)<%(1mPcvKwP`jaWH5c>|46f>WvSW||src1@RY3l!~XqIp8Tiwzg1 z1Awj7U|^m6>aUK9BHX@1I;KD=la!ar*gII$TTsvrDpj7~ 1oOLAgJqU0i^zVTFTuB>Uvu0U5@s~Rm6!f zbqDoM$ax>=?t!q5X-KH6u #>ICY^G7lwea&>v@{pqs~Wc})r5 zpsR5haDTW|$IjDemU)~hU@QQD(3KMK+qg=ZPhBI^{}S~^{GYAR|3ZQOPf+LKf4WTn z69oDnt;_}H v0z;Kv?eJ4+95xoCQzI>aMR(fLe+qFLi)rLe6?e z#X{*k9SX0!tc-r=@6oYR%z0zX`C5a)7)}4R^Y>NA(x-co&gPF=*wqb?7W(K7J9@Tm zzX>9zc8`Jj_a6>3)OZX@!7qgW9hOQsX}|9{RYXfTb>yuM7%t}{@I?nCG4xSggxQ0B zr?6Rs%318l4BqGDyzx?e-A4!$s`MO++rd<)lu10NFv(#%GqvU1C =Yeuso70!I zrle$Lb_kT#pqjQH=9B1gi^&`2R^C~6>vj$ihF(ZA(Vj4cP>R4z1mwwtWw29F4yRzD z1FuU`aEV2193yg-qDhYC#+=?@%e7pssSbRYXD}XyT^w>cb3 &V>BazH_#AQ3mwTQh3YGd$bA59>9ZJneeD Qj crpw#C?9zJW374gVP6e7s>O$Mbgps qBwiB#6L^-n7;87eEr26ktef!bh8v4>R$IQ_^wudEU(ei^(L%He z{Vbfq6J?3ooU+G(4ZV{wH-Qf6BtI{d!yIB&P~sMo`98xZxaBYbk9Ukhu;6aPC*t41 zK$8Do@JpiSQ}W*qKi>S^L;htrKHH0Rn?#Py_+VZF&*$(!3R!+9{6CR@F>-{6o)+@o zjE_I!?O5y~DE&gJv%CZ!kC%h9sys_+<|F-;(3B(pT$Z=;O7i1H*UE7q7O`?X<(*}q zTdgw@%tf%^I)ixu+EICq;-(?n5V7(%@=wOc-^+i8zEY)+!m>fE8VC<=t%#N93p#va z)h86Z26 d?mq8>>4|W3uPtM`ndZzZ@^Qmq z%U3G`jW;~mRgRk?0fyqC-b}oRmK6>F3d66+N8N?tl+8@9m;3c;NMEPUUomT^;^q1~ zH*5Mk7kd2ZD_$j=I>;mU_`n315+5_cGIG-J-xuDSd%>5J=P3;IKqbatel0#{JJOP? z(cFLWo0MT52GjWQ@g?S=_>Jlcbm3-;XXT`btkfNoA_k`(n)KK}n~2-_bUzNZ+yg96 znoS1WQSr>kSZ^b{I7RBg86_)kdFSW!_>!FA_nQO2(*rk28OAPph|u3uL)oV2sYf4x zoKW#j>@5BM!MDyIyZS7Jp _f#$@7pWu800c!DAe zrA_rlXl sY6IR4f{o04bL)4 z`w!zii^G)Zh44~%za($&0pH96KI0+&xu6{CDA*tE^R?!OO>t%7N-8XRd`6Ll(wA=- zr8*GmlxtiGhK@6}#@+NC4dAtB;&Bz{;NeguOExAM%kqplh0@}{H{0jq;;!){N;=(? zY*}FHe5%W`2^$;O4X&OHvx{?`#)l6hwihalgXTE#F2=M$F3%un?->>PUK&=2ODs2B z`5E-_(HE~$NpzlOe1&|(xf@^de|wI63rr}pipLr&>35D3IRqn%%{CcV6Hbj!QOprB z* FdYv&;O{Wbu-qF9slE vCddXWx#MNN+~eRX+jSO_-bQVs#{ AKYx}0VdS6>%dzRhR& zGq#ZA`pbaJ!Z+e`rbC9#Z2XWxAKIJ@7WW6dz1Gx_VZaV3UGyZGJeX<>?;!2Va2Mcq z!+ivIJKS?{rEr;%K%erhkCvYVBQzqLMY3RFuXtu^8tlJc@Es0ryeG*HaP81q;GXjH zzNAP*4loo% +^Lz71-O>TGFVK9Beh-*Mjw57w6?F0X&kXG4rxIr z7uWYr#Z4qk?uMcSqtxKbZSaYWfiuS3uXw$9MfY;s6(lD}-xZ%3@pYIj<8XM8lx5#? zPo{%FdCHe$&$du|A5K$F_isMTtZ_Jg>#tmkM*jZ>0ZLg5Mmt-|#*BVeiCzxM^^+;pV_CfV&y)7P!B`(K*jQ@Vf%;F1Y*P z9)O#+**ozO{BDGM=V|Z6&G@Z>`!C$ 8IbM*L3xO z$84_3X=%aZCB(_=ZBoTWZ2#aF?y|d5A=k!%4wHP|H7IK103^j1mR5PhhNDPm!f8i1 zi|p-{V=^00vN~?IBTiTNdySgG&N$_VY%E@$&Euv+U9%5Y;jE_#vD0u;v#Yvhk0? z{kC#g0+JNY6Dbec_<743oB0!%fM)p;;u^ynhH8}vD+e`(mk%+OhtWXut5_*7B_nm8 zj+OjA+8-({*V{h_?YBd@f;LCW4QOAe-u^1IU(^4%S8IPE#cTaK$u5;>ce#Y=30qc3 zf6+MnALF!JTJk+M^A;?-q((JIy1~bfn;%T>s*873&Pf}>`cr+~R%|j#Gj&ysf7;BC zVqS87|EsI2q1|%`b}d|PyoGl1l#~DqtwY6W2bo+-xe2oAX~}Jn<>lsxxw)1q2t>tP zsIp~V=)_$tLgkcR(LF~L4aN0FDNC 8RL?Rh!+XnqjYpPRwB6 zr$lV(1pB94S5tTpnBoUqH`{nzn!VsEBl1f|HX`QvMEA|2XSX@SD89ZrCAF!?E4t?* zUb_ob?BmKcQ+;i}dzt>H5YsFD#*PE5s9to=CGdd$#s@|BJY?iT#3G(go#f+6qeFY8 z kN%5LHSP1FE_;^hmJSh<=m+mk25Cq2iq2e9lnQFaNn9&OqHT$SihqM58-CEX`I z$x86{NKcSQHn5B(@TzI3_c*K9&FYmic`iB4Cp}1sg>hQF(C?SlvFtrPgl9KpPe#3G zn{G$F3-x-1F&ezdK4}#zAp=GdsH7yHbO$ToJS$)!6)=Ku&bv2VYwrl3bQ>j8M)Q11 zg7!f@i+orr5hsfv{#I$RH&iU6q#+b^Ip?M@dY=m_ciwT9(v7ttf@uc`J{uih&hzp~ zez4u;oX3}wVoLrumfU4ypX45--6PH5Y1M&P7$EpVdBSW;TS94-(LAkk0cm$i1w5@_ zM!7fgLT1{Vu0QJ^#|o~|_>c2{x3zn=N#nh2vR6&WGryJT1PIrn0zUASWImTFzanuB zl=XND)n{`#7ig)cA~he+BY9%A1Bo|FBecXqFB1QS)q*jpr4 wc-X@(zS{j_nFZej0s~?ZI`} @c8!bs^G zn>m+-$MEnGTLC+Mf{u~EzT4S%`D^_<7DW^;AGVoCvv{t9B!8vFLzk8vM|w`-U^3oN z?ld&S8{jF3GvK|}28RL6Do)(WZ3f6n%vM7|43*+(E&r9>AUp(N6ovQTJvjQ^S$>-R zZY%$p{nnJ9V85Hoe`3EC hxR6TfzHszpWg1;UTl+hiwn^Xdq5w zpeXyart=QEY7mpI$PYO!;RI;+Zv{X0O4ueawF!f*;OAZpCUA50&fA)ux3)V=yPUUZ zdPE}lJWJr@@LaDi%QV?FKX7s$vvCp0?Q;Z4WT68MIUH`hNc)n^)O4{Hc0P;;4k0v9 zIwJPJ9p{z}wJ%L7n`ty`g}i{tL%4+x`J#{KZ!t-~`;xG^yNK*W{KmbV@L{89{DeHl zc8U;YCmX+|3ZQ#y{A&+9{jRVXB(ym+1a>&UQ)}{ww1CVAy7ScdJv*}@a%`}b!xoQ$ zI^>)Wrb>*ns2r;3J}TMei8fwGUs_C-jbDjZLyW=B1B6|+ea`G)c7~#SW7E!1)L ~V z2nTJK3EIY>&&I)_uDxz1+C^o}Ze~5=XYFL^Ryz|0Qv;s2;UJsK?B1|h-uS9&6fWiR z*6*@G3aK?qs7BolCX!$<`CgUA=enKxeW^Y wFUumVQ?_8R6x3c@d(w!zRb zHX|$%dN0Jqy(es-HA?U^5|EOZlTC9!A_dpb`H7%ma?}6XpkJu pdkYNk5<>=e}cTuHn0=2*tWw>$LqrDaxm&IA4{K0 zBQ%_Eu$9NNp`_OPfSEOfA${D$YSi;+A7+G?bj-*{bj+w*IA+xQIA-MgE*&>&O}}xY z+|v&+>S~R^CtQXYZfAudq~0A48!Onx`^~J#AN8R{c*559C -0(+mzYf2o!?3Y3p6$^KFh_%sOzug| zZn@o^-{rmrl`76bnG^Et19@W~3To_fMs;!Olb^GeH-UbdJ;$UIn*Nx4JNThSeb2K7 zOw?iAuhTRmm-mm`iMU#+1qRhLEup10U3>8Z>M1r>&2gNWD?!e~Y~d2f+sHRd@=fp` z MEL+E?12Kua)+$s7pR?*t;7&JsVSZJD;(kodG| zyd>7Gvey)O?3Cd+y2@3z3SRjo8|Uy}?n}2M&*Lca#1V`?u!KwCRi8(vI$xw6t-Qu6 z*3mb4Du{+kQKz8Q5Agma?|Q9&CsUzfUCDSU&oivZ6GM4gk*9?646>ib#KF7;Jl$+c zXXR~FiTRpM83x*Wk&b!udAdSM=dk}qvELwBAr&XsMfU{FpNo$Zz?*Ya$hRPv?y8%B zWXgQ<^S%+Dwu$a+T-2^h;0e`5Hqn{Q=TUVN?-+G6_|FL~CZyoAoU#xrjAmTsaq5$W zY?r?beZuD4@u+}J#934mwJZ}Js$0&q)s6~lZLh7pI;{2k+S-X>qH{v+nXrzG+SUvY z%${A>=~|+Zk9@z?Slf#^E*ZA7IGwG+O>%-@ZqN(iCi5a+`ArbB?qHp+y7-KyRt4c5 zE;b{3YB@S2Z3fWEKV1)FkfAhTv>rZYPNbRK^O89Pzek)*C641+O{ICC&GQV~SLk^- z%GDG-ydLZ;V}R>QG?sF<#!?cB i_2412(|+DzR0?Z@N^8mzZTP<4=j0Y5Y{Z5 zx$SjMH`Sf;xdOBD0>@)FDpbY5E(X%qAiX7Ax8t!p-Zzof^3R;UiDUmcGAC5@O?(J4 z*NvX_c=pwBeHdoaoE&M!49PMa4=>ldMfUb`o;#+<9o_DZ$9v2K(}LKh(^yOrG&)|? zx6UY|Y;DK=>x}SsT4$h-gG|CQeVu{qh|6gH#$s7l$`2xzt^F7+*%)tZOeJe%W#J2_ z3_&y_a&@pq IE8oZX6*i{+;%}0IV;dH&z)mlt8-YATGO`IC8fU7}hWp7}Bp^(U6`e7- zpWIxZV`zb0B+EgF#?TvfTb?r-X|jWhI8XF*H18&_6?c<0c>*peIl)&Iw%3Q@fG*95 z(?O~z8tW+ZK|&U=@%U3TAD7*j0a&kHu;ScRXHPF!8NITy~j395D#b@i@R?W>+Km z1oFH8E4A}CYXgQ18+!z#a8{3 %76r7U~4_?XTSrjB0=Qq`|otVWqk9^Z H1q+k@sD=-Ed8C zt#H4 )2P?Q$|SphBNGOX95ZxrWOPyh9d}v6l_AN=7Bh*+4Ui1WN)qyl z9z&n4K=vlVAM**8{`u53|JQuV!2bE
v@<-TGD8*}Q?i(oZ0B`o!hi+s}Bg&{|F20`vD!4mlM7)zo2 z6X}V!5bCVJxXZ)t1`Udps=RDeC_%B m~RqD6` f!lyuWpB2YYd=ixhu^E wEqH+|@!P}XTn8 ))X `fS{ovPvL z(lJ=i!DfnKL*0UY=VuDt(5vVB&!4QC3`5=(!xyYa_y$O=u%dYp#xF?z)+bw%ALbpz z*T09f{+SZbbvJa|EQNqOA1(*32lI}zM_V+YUWBu%sK<;Dm}LgQhHk|%7~U-m#5`0X zJAd;D9YMOrP%ZLZgT9&t_dMKAI3sjHCc~|O+W~$m55MogB|i!|6I=z{n{Wy1y%X2K zy$rVlW*!Vo2gUFcosv1B#_TLbbs^h}fF^b=V2K5p)_hc`U&& zK8A)VkDY}knrIwFv -M?o{|fd7B@r-5$J zK+txQWB`q~S)J!-xHY JhpVnqk5f( zykOINxx7*-#q>-Qs(c>6^KGzDLl6 C8sI>0h;_ItF(e&-SGbNoEq zmq*CzZU3y;a5eJaF*dDXaw^XwPqdoD+2X;6+tq#ZKLatFPj7sIn!p2Sct4K&DvhAK z U!)iI@oNJ{MgvqeHz$ciAerkJ2r#4{ A1^;=bPCW(e|jcHMP~dt mTDF{i-kXd-fXf>ny^;bg4dWyRAer@=k2 z`3hR*A#5#F|7De;dI+9XND!vi4>Nw6eFb$TI#y$|#_^t&tr~g9==4q=s$Gq?{`?F0 zBux1(?1mXfD~zGBqVFPw0NxWq6tWN_qYSk+L>UY)v8V0slt@l%!l5|riyYCPKEp5B zTPk6Gay66ugcEqE{xQAbB*@iP@3b~MW7?h3UCv?Qb<2V~Ui?4fS-##O9k|HH+w9Bm zEDXC0&+>1>cmoDnrQJM}GSeYl=wV;gDvoDmua0L`;CTLWKgaXM=6-lSPXX8p)bPBY z()jT#5NEF8S#?;Y=dlf7V|jjmJgfV3Jj-*e(iXa_D$nbOXLYY1&lr?Co`FT)-isP{ zbTLLFqHcKDeAXTF2Rs9j{qU?D<2|9ALl(xco{PB@&%*E6xe@`qrQ=yW8`HOj3TI== z4V>R4xP)JM9P01Gv)ZYD{Qtvq668)!w)e+cs}357{>yv)8SG;x4G+zG{WH raOAx4`}zTkwW9*U8+>HvbMU*_wa;II~unraKpLy)`DFPm+e zVz5N<@6-zQU`&DEhOux^k7Uc5aDYffXV*T9;Rp7Q#6e*f4?R1F);puxosnJ6i14}+ zem;jC3Z8+*8?a>F^R!9%#)pSGESC5OB?yk!jW! z|Ls(Nv_I%vWh@P&=gwA^EileVlI{@q*&0Vqi)@`1R=axr!rd!A&HvjSIcGh1$MD=A zpH?-Td2nQo!LTO}&|R~$G!$~vZIC0lJUF+$qTZd->`rcXC+# RRwFuq-=p|Qfs&(>CqQmeGuXS|1aed%tWarv+C7;m6QE;T+{sAOG|`goD2 z%(9r85HJkP2xCK_<63iY0pp(<7#yiP7O>J)9@@=9%5EMy#6!CfqBh};3O;{7jpj4L z_)m;EjV5MJ9#8d~v(?Rgb9Q+=lSwdCKgow8$u1anH}!>=XcFN (%voQr6x_(KFN`*I}? y)%oQWjQ zP%(G!XY+TfB_e1!=QvN~QkIwP(!mSbT=j(=9!-9A$nM;Gp(*fUyU9>|^#E!21wM{i z>AFD3gh0-)uhdq+b&S$Tj-(vKODNQ-lk8jSrFKn1v60b0>RFacSU$`ggHca2JJG4S zp2g;QMu*NM3<^t!(Hnrc4n~oAcBV!W^`Q}xI*R=tqz1ZqS@M!$^lXwr+Cy=21>&-U zwK(NAt#$XX98{Q28=# bsy%{J`PR33wbC<7VQRb-_3l%Z}dC74w6&6 zTKb-dJsHWyX)my+D9f}pHOW5Mm1SQXZcVblyqu*rz>t)RFR6>e2jYv1ed#ZIUo_G; z@eAPPJGjpGVRPwm@5Bj^tpwxOj&(f>zlm@XTs~YNzRkd|8*Vnz{SCi&!JWtc_W}HF zggXWQ7W}>pmx(m*;I|p>Te#D37vX}Q!2M0c4a2V!E){M+@@3+;5Uvsa8Tg$Gw+L<} zTr0kn;rCIvX~_E|em!t6!@UJ}5b+=5m+1t3J+p4FuW7Gu *1?HVlv8EL-MSace(ETH(zUEL~ zUFfH~8$N?Icf@i9rO%^_SVC9Lp_CEh$5P(a8Uh!@w7u*@!mgS<-NQA8;no 20prhI|Kymr)aJ*3L(Ks402K!36psTu+(Anw>DbPQlqRNGsNCPT_UPB~(XqO^s`` z0U7eRTy`DLvpHqN!LcmY%P}~pe)j}5LZSXSGMwtVE(Qf5dkRgz%C#|VOMP866{xOz z1P5RquMB VqksJW&LS&od*mV_Jpd5&aICErn79%ev)fw#g} zrt=oP>TSE;*Ics_rIC?|F%0-cl$Lj=%!?^Yp_Z!oF }3!KUt_^dIzxEt0{eZ1A@I43drP2b)^xhfPS~u*Eaj oh(_0PoIejkr2Hafcsft4 zeko-*Y6jR0kHSB_ZTESbt6xH1okrzU%FD-JFl7^~ckuCN(Z=7NnC9v&$RVxJ@F+*~ zEZX?Hnc#eu;1nkI;ZYqJ)3z9(t!JQV<1f 62Y3v=vAZw_ A){5box>Q-@!787^BFb>4+XG#)YGh6z6fBHBxDhMXMdvc7|Ak!PAYx!x6w_z zdb_I5qMmL|xkf(8G6E)ACw`%&L%EIP@+7Sj!Z*=a_uH$EBhN{``w@QfXE{mhgs_y- zcU2wznb6riTpxn!1e$ZYhcn|V>QgbDV=tf(@jAmvwjO`MN~t=|5vd$v?X233g`e@b ztqhM<2VFx9M`ZS$6AqR8k1e_X$qHO!*le)dSID)oxV9@F*OJZdwPR-=(&V zU}Xa)q-8u5)_n%Ed?WQH49-x~)P2#L9v$3OwUuSjHq>8Hp7xs7li(F7%}s=#Z}Lu# z)$DkU;=oeWCpc10f=9kTrtQLc_%lQDJeDGM;Gj;55vv|&jbm+*o1>enJSZwNgio4H zydNG<8GcZ+=1DNFAsE$j!;q1W1Er4l#p7D{)oOJLwb4z}dePLbst3D=^R^3()R#JM z$Khq{0pO*@LETC4vOKHxJnA0GL-2whq%@2X=?8CIAH47C@UDz$`{;6bGXd|Se(>%B zyvzE*ThHNL mEW>(Fm40-jzH1B?466 v
ptF zJj!6MJk$rX@U%Y*gIO3(Ft=Ck0jfX98$XsaOr1njt;01fWp#Q?+dT}=8qCVSdHWA( z^!Ol$c^hC}$<9?C=P>W=2ea~Do(FrQgKU?ed`mDtL@*2Q`(ak^2h7`an1%bJ+e!d) zO&`pF32oEoFHYY>`oXN;$6?-#EE=BGhy7U?%xVO|d^f{$Wrem^Q`>r*D=Sbm$Fp*E zOxrd6VV3XW?cdB{mha>+uLR8F31;lQ(CX&OvVJhj|KWL7>M+X(2 $H&v{9^| z!N;`R47g|b;TA^6v`s&Uw)pA$HV(sljlS9T1QwA1x0lXVgnx0k^ZUWAKE(56>Ts(c z6Wl`>eLwAoTlg#B&eY+S7e%+7yx3Kl+6TA1%nyT~zB{Nooxa`Cv`4LkdX^t<;qU%D zoWR+-sWBY@JCcK~*7vp@yx3eBiPHRgRDt1`FGXytBEsM<+c3`Ke1{Mf(_G2+I`tPd zmTWPBs&~4)o#6c92f}X!!Ko2badg|;7rQ(}Px>BJS;+c`c#jTkufusAZI3F?ie`Hq zqsD#T6b<~dzQUb(qBq8fw0rnoX8@pLLsx!_hOV~Pk;7x!p1O!k+FnPvHd^GFr$^(W z1R5?qc2OI{bE(^KBLgk=?{$>r)Y)`rL)+`f)db%&48D7ZAwTOYrI1QPcGg$wr0BML z0c^j$jylT^tIjhEjOEc_Rr1-G_3S`x`hI+dKMUiTmBZA&cF#*}OMcSNXUQ-0hc_Um zZB2jT#YP2 RjndbaeVUEwC4WxY zp ZHtS0z9l(@=#sM@M!4-iX+xbo)}$s#qaF(T1vZD|LlyGj>Au!rjQN&Ul(UODV}kk zanX|RcYF>oP_}QnrLVdnaLn`2&=K}`ORsc0BhO~?je!+tq{)@Bzcw_20blKHNHsz{ zUvmgoB5{n1M7TOZX_S~~oU2jPPT(hHL_-wPxu}d9K3fcnE{6!35^Qd;8F0TBk;qFk zi8@rzTV~E-NlMKLdVF~x)R6n?5hC=oGtBH#Z%t;wEQ9$y18UuGI>=;(YN(zj-uwY8 zkEW-Tgn}tN)sYbezd*gWul``YZB2m<$B_Z4#p=U+w_wrAVq%b#5d~R>hQlPU)Zi8d z>G3 N&Dz?~fOY^T zv3dd O1~Bs~W0kjq@cCBSrZ$pjNk4=9OCG>P;OB)AYY zqJlbzh%2su?5ZoSh;+m?>mss>ikb;{TX99i>!K#Xj$DF57FR&f5RrQ%!~h8->F;-{ zs*|AmzW?ug{_{LFUDs2mPTfvbojT=y=$!I8?XW)35-6yp?uZHZ?xOP%qO)$Lh&re^ zR71og_!ZkY{En`$&w&-IGrc{f<~2_HBST6nh>{hnOCLi*#84~BStRL93a@yvh=E*n z=`$R=BSXV~=XG8&ADWsuT`Oku(cx5Ae$#;l!vRtg;l)T$TI#5IxCf2RpS$7~)!boc zKaywPY-b;Ims$?@V?Ai9H+7{;ta(F}H`>a}`;#3OJ?7qE;Yku;fx4hE(LB}_wgW0m zINs6qygeKh`9;^bAGF*hR*$x+AMQ%Gye3!R8C}5eG!Ax!&8xY|a!>7nr}<-7*c23; z*GqH^!&BOC=a(IR&ZbG}6@)EhkwkmnXU7SkVulZ{8AVkUjjPGG+*kI ?i6ZOs^~W{{m1(c@bIzkHoLP81987O?$$X}2A=#61k^S`jS9-<>Hn zs7vGmoYW2Xmy*VD46W`vSrj%b{>P3Y?%aRf?WVy`-yvXEO?UGP`y<8eDjLp=Ivz@$ zRSZ=6cDoRKxSGsm-yvRyBbMire(@%3=|?z^!C6cL%+lyK9K2|^x8>j7Ht7tBs=6Zg zR!8R6MdlzY>F<7i2zNt&t>TBONLy_Kl<=KkCvC2j((5on!Tl3+J5$u?D((6 Jr8%E@I3bZeK4#K2^jHsYz{ajauN#Xobm+?80F4xAkiQAsrQgFwE+oe>b z ^BwLdOp3e4s@E=I%)lRgEGQOXpJ=_BR z8`JD=h0{pdLQzECx}z&^^IL)bD-_PtOR(dCk?(DA@1$sV16&*{3bmCr6mHY|Y>M56 zq;CW|Q3@Bhl*7JX+bUogt5dX_TI$N1Y*@yd6fR(yr@CP2bsUzyf`?OYdjZy3?O(0@ z7Uk Q(shwpYVLw%Y~`?wXL&eana{wwPWuOkrLRoUT2IuKS9Zga z&}QhS=WY_P)Em2CnHvSYmhy0fN@QK3J;z}gFQsVD0 7NODJx<}A_Qv8AjrclZTBX0I zXb%XxUY|npSL{sxUw$5L8Y$Yn2)~t(Sel~EfqhnX49^qI%ND6I_H?C{K1AAC1bZQc z!(u#=qTP;!h2;5Uingc)!Zg60H$k%k(XfqvErsqRFns7S-US@;G#;V|6#7t#b{*hk zk>}$n+BL9`CjaG#AZ|HIJ5Y932IFm{r(oj&3Z{4uq-fbl(}z4!uuEYd(uIfqJfeX! zXT#xF-FQfE0uFgff1n7IR>)20SNh>H ^dY#iGKQ-j_{pqs^f10>2t(< z5naXSiRg0N&%KewD1%a4#(G5;xX;iG6rIOg^6%|5Gx2IS`A=~-v+qPEU#MapRtTHB z?0DJkBP=|_eTaPnJp4{O-0N;&{&5`sOyOVN4t@{t%bR%o8Mgm^Jep4aJ9+%uZU0*L zHs;UoH5<3t{_EVEnLjSt121Ws?Z3kPIrGPzWWx8>uDP^)QRycXQguJ{-O`tujd8O` zS9NP?5@*tQ+nCywuBy<@#co*j-qh`%CGI@4>bkMppK49Ify3n$M1nBzG*bq+lzTD9 zRx5MslsWt=vSTFVBib zACmnL>*p%u%uiDq<&uVexD ZWVO<8%1qMHlFG+&e=%QcsG$=;w$TNJDmD~s4 x6vJ)!k*2o=?HGIm&oNiZ+@a8ImxTz0?GY`Fu+LZ%${& zlJ#Xm{vJlBdwIe2+!Ts@kJZ2S^lDf5GmFG68SBO6(SFmTZjH-Q5YjCSWaL1Al2W&& zLYa5fla{u`%3lJ(&0=;f-TX4X!?jl~Nj_NmEIQ(UxjNub{y EM^%8??Wa@3ukbyu0_mhOqB6Ael z1V5PiCoX65`(z8Lc8Li3&Ac_}L0)raT1rhShhfg`r|l8#afA)S_=gQc|FaE4x>2;K zA)-YMPEjsy&UPu4R*nnzXB=3|b=Qrd^r#y%!0SS nCGCvA;|sx3#> #s)S}ZxH#W=3_=iDuS@u~Cf z-i1lGR?fRS_TW0$@t{PZ^UkEev_RTASKjmhxs_=V2Rz2E6&}+fI4N-!U+Dm`Lj%qq z6?(DZOQ(_4r@nrkI^cr9;QX{tV`Ud^i>c*I`TK>ALT75sg+l^)BLhQ}tWaQ_mXjYQ zWktdGQ0 VMtDiSuT>2LWFFWuGkdC!NHF z%IS6Q`LA;*YmZAW`KoK3rql;d*B2 )K)pBpBJcKNzzqOwuduTL^9M-0G z%O1Y7F}m}qLyxr1VXb{IXg>kw4wyKM0|6MBzMBGh_kSJ8%fS2-gegV%Dwt1Tya>;N zAG;&D{pu5RIgS*qtMQJij+3=(RoPKCjj4Q-{$;__?;5mkQ4^QFf9iCJiU$R$Uf<|j zGIs#t`sb#U-U|gfMBalOVe<=1Nvx+5rJRtNFzEXh?nx>#`RN1vHIF)wu%x(`@_QPv z^|I6cx `yjHH;GOWc#gpo67LRUdK@ycOjgNbk7p%7U z^a1%VSQ>UZa5tZtnlY{)9+tb>fhQk$nq_#uv1D!U?N9(5? 30&>5Xx?2Bs0$A zq|+DkdN-F?T7=g-bYyhZyWR@XS3GdQItjr&(^q@bYA!E3qY(U${iLL-*Uv|o>m&ae z RKhcx0Pd&8PaR(T!k| z_;S%)>sOv+jVIUF99^I5N{ww|s!+`@{fIYQIivA6iw
I<${)y68tGGxe@8xFHib`s9n0*U`UCl| z_HsTaso#lDI!P%QZ=UaYl{+nMZD)FdGSkX`w=;c^atF25^oy0%ojEQIf5`~uX?yo$ zU-K2Owyp(tFly_xx0+ck8ejNopjd;q?8d&~HiqDr&aLydaX}6 z-HuLFqB?N^u8kM8lFI!xMbJ&+QX^0`1iW=~h#I+A8DmxHP~03+3M}ZNMc{7Sy` &qT3@qlUsMqwR^qD+;71Cd*j6$;2YUCp25^J}HFplWw^r8o)U5!HvmKJiv zls28EH9kSwG-Wu_u23Vxl^{!-&fDVmcG?xVE5y Ie5RPk(dxHWluqNPpY)RI0pyNB*m@w(Rkl^kA+nssDD zlM~8o+(K`yD3Vq6?eTrF)^>^7dMLUE`CkSqoyl*A46BRK?zb`HJl1xld^AwLur?n= z8(gKe+4`my`<2t3q39|k&e9fS%1!wTx|2^6$#an$d!2x2-iPGNwWFQPr7!X;hmm^u zud_C9=4tgDq{Z5u>S-R*mO+e`xr_yVWe?JVTE9eFx{0SXE $K)?&+B(FAvzpsv4=|Kz1^?8+1c+3M8 lCqnHH8md`b4Sf$GzI)wmO%mee}L;smT8h|A{xSceetYqk_-8A{J-y z>V|B-cXu7d4zYbzv=l1p8o$ z->@_kx!sy|d-wp-!3N^bxV`UVwyk&k!8tNm5?i~IM+ z&~7H%e5S9aHnTpXKhw7X5A9CqJVG^NPUa*2sw0#3GNI{FUgj@dg}I^~dJmXOFJZA# z#~hg?)ESQC(TuTv?XzPHF7EPxWO%%RD%Q-1Z76R#BKA59e2nwnFY++6cw+NPaKbya z47&qP^h1Z_Ze