From e3d1dcec5d9284dbf65d018d3effceb9d3bfb040 Mon Sep 17 00:00:00 2001 From: sairajzero Date: Tue, 9 Apr 2019 19:06:15 +0530 Subject: [PATCH] Update v0.2 --- app.js | 8 ++++++-- util/websocket_chat.c | 44 ++++++++++++++++++++++++++++++++++++++---- websocket_chat | Bin 172064 -> 172264 bytes 3 files changed, 46 insertions(+), 6 deletions(-) diff --git a/app.js b/app.js index 78f5c9e..02a1cae 100644 --- a/app.js +++ b/app.js @@ -252,7 +252,8 @@ function initselfWebSocket(){ var selfwebsocket = new WebSocket("ws://"+location.host+"/ws"); selfwebsocket.onopen = function(evt){ console.log("CONNECTED"); - selfwebsocket.send(senderID); + var pass = prompt("Enter server password :") + selfwebsocket.send("$"+pass); }; selfwebsocket.onclose = function(evt){ console.log("DISCONNECTED"); @@ -277,7 +278,10 @@ function initselfWebSocket(){ `; disp.appendChild(msgdiv); }catch(err){ - console.log(err); + if(evt.data[0]=='$') + alert(evt.data); + else + console.log(err); } }; selfwebsocket.onerror = function(evt){ diff --git a/util/websocket_chat.c b/util/websocket_chat.c index 7e25f20..d439d22 100644 --- a/util/websocket_chat.c +++ b/util/websocket_chat.c @@ -8,6 +8,8 @@ static sig_atomic_t s_signal_received = 0; static const char *s_http_port = "8000"; static struct mg_serve_http_opts s_http_server_opts; +static char serverpass[100]; +static struct mg_connection *selfClient = NULL; static void signal_handler(int sig_num) { signal(sig_num, signal_handler); // Reinstantiate signal handler @@ -33,18 +35,42 @@ static void broadcast(struct mg_connection *nc, const struct mg_str msg) { } } +static void unicast(struct mg_connection *nc,const struct mg_str msg) { + char buf[5000]; + + snprintf(buf, sizeof(buf), "%.*s", (int) msg.len, msg.p); + printf("%s\n", buf); /* Local echo. */ + if(nc != NULL) + mg_send_websocket_frame(nc, WEBSOCKET_OP_TEXT, buf, strlen(buf)); + else + printf("No selfClient is connected!\n"); + +} + static void ev_handler(struct mg_connection *nc, int ev, void *ev_data) { switch (ev) { case MG_EV_WEBSOCKET_HANDSHAKE_DONE: { /* New websocket connection. Tell everybody. */ - broadcast(nc, mg_mk_str("++ joined")); + //broadcast(nc, mg_mk_str("++ joined")); break; } case MG_EV_WEBSOCKET_FRAME: { struct websocket_message *wm = (struct websocket_message *) ev_data; /* New websocket message. Tell everybody. */ struct mg_str d = {(char *) wm->data, wm->size}; - broadcast(nc, d); + if (d.p[0] == '$'){ + char pass[100]; + snprintf(pass, sizeof(pass), "%.*s",(int)d.len-1, &d.p[1]); + if(!strcmp(pass,serverpass)){ + if(selfClient!=NULL) + unicast(selfClient,mg_mk_str("$Another login is encountered! Please close/refresh this window")); + selfClient = nc; + unicast(selfClient,mg_mk_str("$Access Granted!")); + }else + unicast(nc,mg_mk_str("$Access Denied!")); + } + else + unicast(selfClient,d); break; } case MG_EV_HTTP_REQUEST: { @@ -54,14 +80,24 @@ static void ev_handler(struct mg_connection *nc, int ev, void *ev_data) { case MG_EV_CLOSE: { /* Disconnect. Tell everybody. */ if (is_websocket(nc)) { - broadcast(nc, mg_mk_str("-- left")); + if(nc == selfClient) + selfClient = NULL; + //broadcast(nc, mg_mk_str("-- left")); } break; } } } -int main(void) { +int main(int argc, char** argv) { + + if(argc<=1){ + printf("Enter server password : "); + scanf("%s",serverpass); + } + else + strcpy(serverpass,argv[1]); + struct mg_mgr mgr; struct mg_connection *nc; diff --git a/websocket_chat b/websocket_chat index 95ac81ba3ba56d7eaaeeaba1b0edf0ba5015c99b..2bd833824c7eb994529ff8158b7e61b585e1bbfd 100755 GIT binary patch delta 43608 zcmd44d0dX!|37}8(?&|6l-9dc$d)CFP?Wi4%N}DXWS3C3L7`?;GI7a?v1G=~SO*ib z3z2;?)-h%##+b5Ayv@iA_w{|Ab6r>Jp7;Cn-|zAG^>}nYU$5uub(ZVw=iFDFyh7`; zQ`Xte^>qO{@e`_mZqm9{{$E+Aw4p*zX|w8X2Rg5=RG)n8b-t1a(iB_NQNp&64wFkE z`SP>tTkJYSS*-thw{zs*TY3~XbL5f5;+KcF<${Mw68A88-LTokq_OJ@=zLTnPBK_Z;5 z_?#!06Vgnp)+A1ZED_8O@%bC~kt(P&@eukT@tGt1{6yTPh}&1N14MjRM2K3ook@uB zdLTZV3)>$;-pIXK$tG$p4K{Ni9Yo;q!l90kcZ$!E!a1GGQZAx9EIft_TRrhPNqjnq z&+Wo`T7tR?9b{mi@O~)b%dX=r>CMa=*3&i8>B79xcyzj2;!~%i zR61R!wdL%@S>qDsOBHpZ>W&#RdG?HP!NFr@kBg0;kl)S5%S;+=H%r=OXD!{aYbaIN zIVb;t)@hFzoF-4U)#)sBZ&ZEFsNX1cnnp5!vQHqz8NL+3vM?Q7;n z*GA!kO!z{r$0>YrRrbf7QUVxE0>rC)lnFmy<)cmbohlz=!XH%mNj3Onoo-*Dl5j!| zgHBhZ^7BmiF)E*8!e^-baufcx%4eJK&pD6ub-5-63pJ;CCcK-Vt=eO2MhO!&nrUtz+ht9+#izeeSCfmLlqq_6Y)PD!BF zdxIc$6)C*E32%2+;hjzRL+S(QP59Gi6#u3s{PeR*`nmuU!x1%sAQRsCoDxx}37@X= z1{2=5Sn-cC;oGZxbh3%z_!T8Uj0qoiSK(7kc&%!doA6rIWSj6>)#R#tvNn2Xb(3cj zK&zTlJmPRgK<+fA=F1_5c%}-c$G>&hz%CRe=`3@IL}XneaAh zL@_43mcS$v-d^>eSB)3#Uki{@&A_wns0PS3;WhtU6W&$z-)6#ls{CFPzUe)p^uIzA zLvuC2c@sWdRNusl48V*ZiBB z@N-rFAdOd^U#I&>HH2yg(R6gWG?kAs;nP(<+Jt8+KgopuOyv_y_~frtLyC#v8V6 zm4Zk4Yu(RQHRytB*1fyR+nexSD(`Hm|C7pB)ZkJ7 z4^%^C4TDbiOyz5Js@W#A1nf=tm#V+sg#SzBo0{;Jzo1R<_7`Mgu;vE*gqrXUDj#LS zJF9%O3GbuwlT7%gDxUyew12JpbyN*0CILFD{Bje%x60?5@cmW3(1dTO9-)-H=RL)f zx~YcJ_XffHR7x2ht>~m%(h-kV$$zK|s;JPK6|(oGQeM&jgO4%c-CrpFlT7%^|0sNd z319f9;FEPJCWbFxD*=|9@Y_{B+l1e(^0_AbK9$ci;SZ?%Ho>E+w2C^c8upq5IIi-C zO!!kOUueRgRr&KK`~{USsm_O>O0KAeJJk)~uc>^g2_L1^xU@y@B$erHdbJi6t9+Dp zQ!0`liUn2U%c}9w)%c2P{7A{x%c)UpHLG4d53v9@HouEkM|09jO7cBPI_3xZeMcJ& zt>&Ap#$*Ltx^k__Xs3g~atqJY;#Pj33_}T<6WGyhP}qb3K`IqEHa) zIl&KE%J&L=HP_9#o+tDSuJdOu&ldVpuJaNtPZ9b8uJh+CPZ0VnuJeXe9wYQAT*pz4 zt~^TUW1%NcvgSmnAVzQpe#luKAoPJ;x8b^8=#gB<*^#c?Ug+JqUYF}Sp?BiC9oH+2 zAbi_$ogX=smkQmV>-D%^B6RQiSQSjF&xt}oxNwICT;D77`doM5dY;g&x$emIY@t)G zH{^PX(EqLn-HGc7LVwA1XRgNx{V~^Zo`w<-`h$AOAY3>RDu}z>!IkR)LjRuYZd}(3 z{UX=hxo$7?(_Hu9x=!dvxXwqq@``u71it0Ep6jJT-@$b+u9pb?^JGr&zENH%i1l1= z%=NuOU(IzNuIC9ogX_Lr&ldVpuKRI4Md%B--h}H3LZ8L;rd*E^`V_7=<9d|PlgDzx zpA(^i7{T@CTn`ZXK(4pox?bp!TyM#Bd!cvddMmE$gx-nkyz7@&ycKPL>-;3Jyj1A^ zT<0f-ow+=pDJ9 zAoQ19=VMNJjL;u*J(%lJ(354~2b}1{iBREim+PIm9w7AZxz2~ga=p+ma=i=J?S+1t z>s`676Z#RZcjJ1+KcWqAJ(TOELf^slFs_&UgY;$J&pFYZ6NSQIJ=c41eXr10b3L5v zc|ymwm@_B9arK!eIp0 zdviTN=mWXlhwFNwM{>O{*X@Pgo$LL$t`mAEuJ`A9#os*swp@?mda2O;xjumFCCP&D z=EOiw6bjvi>w~zySLpS*KA7uyLbvAn5UytnopPOz`sFD?|Jx4wFs>&E{Uz7={8Anx z^v7Hu&h_LdK|J8Z2u_4nMKB>7y7+1HtXKNA(T4N~hGh>cq6YWLvatS&=nPr5(w7{% zoWh_iJAQ*WUfFq~qCo9Kj)oYrEVcs;!Ig&e-x3>P+E@x7K5f{Jl1nGFvhz%pF12>9 zHIqAK1x}HkwAPbel1+eLvsh5Nq}GOIT|5y4Q6T~wLuMC$Xl1r2)G`A;&RGOY9|m-^ z&OpPvd9c`FMEAr7)zI_{oI926 zLoC^b%!tbIhIZz@d^Ak7D4T{DlqVU4N8#mzM~OzErXLuLPeXbRFX8cqOeKUNJ)*2l zVP+b)Evp=FmpU7XK}fE&3qbnDmKjPDnev4;vgC2c-+0&FK?W;0hT$Y9L z4rQoEdFCRpAy|}AlD(nWA{9FSNq%CM{e)!m_E%QD{k`~;m+7cVwKpw$8k4?gmmxhV zuX>ZKY*V;w(JqqQ97T9PkLZ+|wfu|MY~V?rxvVY^s(2%6_lXM<$}=o0#3~h8KW9kJ z>cZeyw)&L_bO1xZNxnua8z9<8;8sqcz3R$BIgx3RZtbl*%yWK(cc-dB;ele!{O{Hx zrLh%OxetjIt*K9Kk;#ZcG*R|edfHCk)(!bZE1HCe3|SWTinf$%nHFZX0myV#m$#d> zrx*^nuSDy!e}!KDID;~JpYp* zOF|!+NuLJ0+m5L~myM`E$8kJn20v%1L8to8O;t8C;_0$N5*%@PaYr~TFq8fX_IG~t zhY~~>DK|Dp?t;vuE}cB+-an*KoqTEfA5v?hBzTY+&w50qVcDWGU7{ne zZr*H0A{jhwAgoX7pjkA9z<*%JtWaEL^F*2%(x=`D>a7b-n}!ayxFJ$HNu{eHZuI^W z>1oJM^yO3OQkMW)_(XcwCE3G{AfdEEyVO!dlW9?*^VX%OCGxJBY4IPOw7%>2VNT%S zl2jMe8KW03ZgWtXB7t;^ZSO#3I=+wrSrMfexQ{p^uBzd)^r^JFn-gtPE}iSPIoU(F z<~l}XNF-ZXZ<6cXk`Gk=%HhV7&) zzme>^e?^|>AM9S=#{EA(Vmvv=OJ~R{LuTJnC03E=J3mUl^&3i4ew4cOA8Otdj?$@_ z4W-@v`_aN5q<8(p-530TPSl83d|9pZ(+FBo)uzY%AdQa7q37@9{~2}Af!Y^IyW`qY zn=|?MBO0t!Wl zy+=Z;hj8I+W=@G1g0t>$!2I~W7XJP(_K3X(WzhVoFu!ziD4~~*O96))Nu8&DNPjyj zAu|dC3CB=-L-6T2o>=v` z@-VHHFq@SyyLp&1RbeoZ1xJ(!=jY4d9H2PQQk++F=e5FF`e)h<8hb*L6qkK}2rb~n zqlS{%OlP{cKyshikH!>8(`UA)oeoN0%nYIx2c@589-#9NNo!{5snwzUgR_=U8vd;m zoHU-U+%IiTN}%@+O7-S+p&Jk8N6qo1bm89one*-uyPhM6F4LSE#$l~v5j-M)gYMWWwOiJeS|5>SFKa^YAI{&fEP&9~ zU*%s-%^+0zTpICl3|+NFI`*+Y&B>F>K6a;;TcwSk=%pr~bfS;*q;a1F(S$F+eCRPK z4~vqae@TX=84dqT zO3&&{Sx@O)mIs~tLH?txG(sw*X`lAA-V=cZmKC0Ar*!O7J!KKn&!4`gANP=MXZP^_ zAY3)}fMCc>Dho@06PA8ntPfA4fz1q;LRNi43Cn-FY7wDJbEK(K6LLY4q-NBqyL3YO ztnSzxrLuU*G?bX#5#lHmh?@B~Rw)-lWRZUNJd~jv!{IgVF%jjNF$#Vy<*yS1Ffub#q*;^q9<0hh>#=B8J|G zJCN}J|Exkby`%=YJL&P2Qemz~{f#RXU-YT~{)kyC^DA=Q360N^?AAM)6|a=pA7e?p zl(T+XWK`=b7Nb(T8gSHEv{rqF&mq=)2~3&;e%gc zdXzcFLc4-OgddTqu@lmxXn9>E4;NHyahYAFbYi2oS4NOXNr|f~a=xsRCXKC%;BAIP zHnpSOgQO0d+VpHx-MIiME~_MozJ{#66^5)KPesgGfq!?b7UOEgDTxoyN|vHBq}`jk z)3;gDi%p$qVY<|Ea~nD;LyFn_lGbi74bBUsw1bqHr>CLIrQLa6G^?FdlIPJND+9~x z0t{;rrJ14Tcz}hUNMwtv=SP8R+nobJX}f4I*x2xfJ0UQ?^OnVwd@ddN!h_t(|KSS@ zLTyu}(yh?w*h%3FG|-;MV3mh27;rpsqbaR*M(oJ6VVK|gwBmK1fciHE~XUPx(Wzxwl@?X7DkN&s~@;jW0M!&nHN}hl=PdSLw+iSGvMOs&&|p z9-o0Jd3nb#T(oTNT`IDfggGvvl+S*poiY2_2vtmhV)~0H<#XU!>5s$R>16l(c1Pj~ zb%~e0INFicn=aiu8bW)-=erz>HKP@iq(vv)>9tAHhLhvy+i4Oh98GPeNwI}(_+VQY zOn#BB6n3M3OqJ@MN~AwbkWx>DQNM{&@u>UJ?KM#{ zFX}{hkC#G=40K$alu_hLd&Ws$7e(q_Ci2OqXxXA7IjK+CCTuFuID?NY!&U>sY#%$R z-dQiYzP{A{Y&)ma@v9X40$0FLMeCjK8 zD7iqN4$mjoX3!=d4XHM@*lX+WOdU!lW+)$y<)pf0euE`;J;Xi;oB#BPx62m2<>cK# z(y!O!>rX)h6N)2BsF;e9%OZzJ<8JuU+0jzQ4KG?TRN8&RmChb2UA*Dy(P0?Rnq3+O zeO+e6{v)V)UHUm?=lS2eRk7@9vmta z+`LK043t*h>Pr6@C|$kPsMXd1s8MXSu*A`a_|0dn0NQ4R^VZkG7}@ST`I#9s-`?C=9fA2&)(9VUy|t>gEYMKYjRs6 z_j{2;Qt$hH?WVmJu_^QB!AR-r`(M)55mLVgO{isrH1|OWHT)$Vco0Av|0VtYU@-YY z3i)-txnl&DarLl-%>U1?8wkA|F0J})xXZro$Pt>?5k1nc+ISr8Ar`t0lJg_aR^eg7 zr2^{@Xa2zL-|Kp=`)E33=P)Vm(eJc%sMPQG0NOW9O8I>g_3bU`%UaV{k zlvWndaBZX)hJKW3I=1^*I`EiisC22U1r3js-jsRL{BDvT%p{*XF9^P&EKNU_g+ z@ap`>&qmVV5b5Ew<<$MT6#u*j&FCWKKaZpfo=Ng^gM0WhrIHeqp*4^XBsdz;V?=8C zOd9`31oaNi-}y%vr86E#&tJ5ovmZ;1U$&zb52Waq{vc4)jTBwkm`1ge7F8}cf7Dv+P8;OAy@@cV zbAFM=z4N89zepMHk{b@Zh2@{JZtYst<*!Sg#`)xow9eR+hW;#_F*c)Zf6jky>_}+c zpAIx3j+A*yuubN~m~4MXr+YF5YXc`P z#6oc3LNtVWTS#;!rH-yeyXavE)1$zj+xxn`jLm?=e zeVnhM{Vl3Ym%ckItR*SgN=v(Y=E#gX-UT3dskuJ2!CDx%f@#^x&O`Uos7uP{_DRJgA8nI)= zn3<#u^I5hx;l_KzA7T@)91I0}vNg5IRJ#<#raWLbPgd8Oc+q2Ctc^8kP$xnSIKxY3 zB{^6p<()QXQ>}>&U8867tw}5Dpl92yNn?-Oc;c#Z8mQ-kwK~ZZmq~8yu{D`WEibTP zbx1Jvy1`c0K_hs>&eb7_^poo>#D+xCudII>5^U}2%9F-f&r`O!9&svoQIB*WbgLt4)&MP{OG8%LfPCc;a2XH9zh2%7VAu$Xny?yaEnPD^9yR`br;wfC$iDS)lRga zf1PK|wr2~RNg#EzXZxJVcDkf)!N^9$kJ8Du7)0Dyo+}C0vpVVm=!qGhv`lvAHyeF@!%t^*-Q^oMpxG^_|TIS6MDgl`FNrE zjsK3V@*?^Uk>6FTg^f7Y#~T#(eKKwR!S~6uXw1!-UEBoNIttRg?sx2WFXCgUz#kTb z4Um%z@&SGZ78Zps!Rz0!Z^i=9=L z?RGZEn>3{fmTZwXnN`0C?RvJAvdH$}3#EKU8k5EYFC9lo^Y4q4-sx<~%QVfI7cCw% z-GYCQbP#eK#ovbVm_lm<5~Dm^7_F9rVDkA-&Qs^i3~C zc1B%cdm9svZtu)_jAs#Jb0wg?8t|bo6d?_942#6S7Yq_l3sQXw&6%waX0hrECMz2CmZdG4pw`2YHb7E1gNl?S~`;d(+ z$4z^9Zq6yW+4F{NYE4eo*|bd^y%ua^lLE+K2TM5D96}aVvXTJe<#)G8hvV1L{CnCM z@c@pe_g3>2Cr%wInNu6$k-X_&zN!E6efiobKM6$F@=psze7tkb_*bw&{|a^#!O#+% zc@~xxM)TUJ{1a3<&SBE>IGcX0J|0(JEo9kiOlWP$mo#M$o8FeVI{gRxeZCK<@x5EW zzu4xsq$i!Th5g))Pu(8aIVjP@kNefMq*W?2>|0qBDPr~u^FNkCu$ zJKr8_jGS70856j+7JH2d=*->BCy=zUsViu)y7_{|24eLw?hBS2NT$#SFWHko%#eP6 zvJX0t(RK%TQ_5+hyEmpU`%-39Dd?1L`kbL#Om zd(s8#8MCjMYgdxdDfKJyY-RP^iEU%*k0P$LJn{WU;8fN6s;!vtBG4%IDi)hf?3b>j zaY$FiL+J-j*esW))QF+I8bgi}gUkCEyuM;xyOADPGA`{#Vrb3=_OKfn=p6C8(wJ(z zM37fzl^y+h5q0Q1T}o@;l27BjsdU!P4&J9HGk| zvdD1altUNmEm-GT{Kl4tqm&0eVn@TV0!aCdb%`J^$z>MMlXRvr zzp?2($tof8BfdcPRuBPmL3zp=Rn@&WbEW`zdgOU|-K2GW>5_=VN! zMVdKIe5FUrbD+F$s9$gU+-JRdk;8U{pCKDsn{vC)>P3amO4+?gGMnsTQN7798vYa8-kY?hA?w-Q-lQM-n>Fi0`qHF(Y+fJY?a*ku z$s}BByH0v>*u@sxRD3hYU-k%`w2s~EL%P*w>qME=U(MY6k_h)XT*VOaTVt_uam91t zdswm0tNUp|a$gLgwAo#@wI69mQ`6WF{YVS)BeU#JhS24Vjp|RP)8UL=?oV83&TUrK zpM=x?w+mWDk=uk0&tX;rNq=km93>6gJ1k}(nMv2JVb=$eAq@xJ;N2~P&ze>5mh8F7 zx(*^?)a?hhWDwbqT$;+mM%cqo&%c+ggQn3_5*%jSh#-ygQn(;+2^!Z_;S#`wYMhV4 zg@SX|IDduXUsCKfWJLuCTvmwh7jCf)gUM1l>U*XiLL8l6XDAO+-%a!#eCy2v1YTr) zhoCVPu&G0^0U2|>VC4{kqvWVn1*?aWhJ^OYW;=#qUSGbD-5iE-(=wa=GmLm+=j9Pi z=DIw(DvDtn77%>6ty(~IEn$12Npaoq%=ZIA*G!f=oJ=DX?8R{6M0L}ix$O2x(nsGD8R2bZ<#CbRHhfdLJh1^17E9$$7g>){ zn5```+0;=OrCwZMD@KvU^x6exGny8nURc5pP7!`YYEmCz$-@_y5>?#II&+|rE9Oj&?hoPm+=>j_#OWIQDB6}Q5+9bzZG|FY4okbM<^lmjY ze!95qcp2i;@k4&cFXku(=GbEa3P80a*2YZ1eZ)pQ1ul5^rWCp%>$rGJ3~xIR#WIz@ zuEjf`V`UmpPsCQcgyl{oA!G-; z2`gQ+gw>x!qUno5Hf<6ag0blIB+`>?W3?xv@39otVlvhn!&BIz$t2LdO-i-=wSH4A ze}Tks73CYgk$^D2q&A>=J@*_54263&`Uor1vi)N5S{gm9gQ@o+)_ErB?J#^k`b3RgKz;#RKa-55n-4ML zOwxjqg9R;Skx0@t=^*+B)@D~kUSsB}orzb-417JjWbVC3J!;?+~tEi0{5S#G0nvnQLzx*?zKOCru4dR32Oh!RI44ggJ(3aIYZ>Hw3I zh-Xu~f5qyGykh*|37=? zXZ`0AXF7f#n>?2+Yq$riO@qnC;>lh{=aE5lj!T=JfoAH@T$VhD?h=C)nrnNiSDt#kcmqd~fe&mJ5)NwR>2T1(@Y_9WNNZfY=fL zkB;f_-q=>enuHnOaT-)4Hi`pwpzjmwy^F2>h_ohG+3Anac9!gBBNt-r)qNMMI7Xc7 z8q)g~9{JK2<(3t=Vi>!&5JhvCRV>7w{|K{Kgfqj9yIJTW%)ettvZ0Ik(k7m*TSP+4 z&+Wi2bjEVxUhvl<5=Uslb~Y-R{OR&05ldTl{3QZnd^d=xGa6H-j4^-_GKpd$$B#Ulvh02iD=@+KKqo|v4Rz(9&NXe zU0gwiv=})?6q40IfHr3T2S;#xOp`?i{g`_om*HdCiYdg4P0PXo@YFGEK^AeZJyi)l zc?`?TB2HK?9m+!WG#kVIft6lgU*NKmG@vA(waO-K$#oW+jaAX?!E9$XhJWjk>_?!> zt>M)Yx5sfI%4IofZfI}TcoqCpSi$sFq$9S;ABt_Q9nWl*ZRH3Kj#dNN(bZ%b-JQci zB@C2p*YdSj06Qw7%Q)xo4Y4WhL41X4*z`46m3_JMEO^JdzsBEgOtdnc=Bk`ibTVC(hYj=YC48=i>}plPv~u`>2}b42C@U65$_>p zf-f#xu~H0D_86qve6B|>#WMZL2WXs8O5^--0MC4J+1U4{9R4QSHH@(0qJ+o#6WM( zU$sU}*4U)agGGJII?JL#v`&Zj>Qf8t))d+uEL6scGT#ioa;_RQ^!$u8sdPEc=Goqj zB%AKcVBI&7Fq;+q`NKw(prp##r<<@*XqdqYHetW$-=DqPgmeFO>8$-`Y?D@|voV`V z?>dY6sZBAhA3Lxai<-Yyu-BW(eDVXEnMWFtQ!FzN+C65mg>*IF_K8uJN|Id7Fcu^lVU zrz~bWR-7l<#_i}~ts)A}Y{#hSl-UeR9y7ic&s`;!Jp5e&zi{^Z4${{A`$b58=F|oj zC{M$}g20_*Fu?*mV;6SqzAf0%U1SN}^AYR18)p(57Zw!mCWM&zFEC1N4m+|Rz9BX) zx3cwkdH%fkJR&}KiO)^hO#X(# zMe%(!j}6>QLTE-;md*9<^H{5W#Krb-g%R&EMf{8mx+)ZVyB8zEcXPQtgsu|k!am-I z(WbYmT;2x{c@8t~!&Ocq=~QfaH1>|_C!pFbur??a@u`T7LR zw8@8vJDYWg{7iSwU;_`6N#<>4sC2=Phxu&SX9k;j6o-YS)7ei)iCYUgT_p7!C4C<6 zBPy?-J)0&-G5z5k0EN6Wjrkr!LJUU!Ry2!0Mo!azrn0uj$r;+b4SRi@w6Hio1-*%R zeu#WToFEfv|0(R76BwGj1-h_5Pw-{;6y|smfqf=(qYL}bNqo81hh&xB}TB2uV1>R#Rg$SS8iscm&&w2|N>UDTKKiy(BgiMR+3t34a8BI4% zWC5pmnNDQ$Pmw66Z{z;U*_`df0#rj&O7r8GbrCUmG@FQ7g1^*w9+Ii zcUkDmzPUig+BM^gCvEz!8_PT|lCF0D@u^1MAI+v+B+XpD8iU8@Z^Ga`4L-^9?KdAl zpO0dDE@Hy;8O<(SB*C@6ZYUBM|Jd{YURzwT_L~IQzKcQt7IBI6U~lXB`)S)N26V4 zUqLhZ^D6nC?jOc3e1{dR*>LvwI}C%XhO-tWz~pEaUqVLFY%_MHg!s4~!Ku2ka=#Rh z6OSNs?KRf{!}JY4)4=bMRB|%*r|rX7cxVj;JAQ^mXEwj4bGa z0s;bbzODRc>-x>m&yJfmp~tkzaq)@z$+Pw2X2i$GjZ2Ih?*%`fu=p8?lj3ISr_Go+ zIi8#2;>XQMicgH21qXf9w7A&War$x7X3UOjJu7a)thm{e^of(;Hg|IT_!)B%e%!dY z*|YT@%!)-AMClXOOku*~;wN(=g2#m{%$fs8h@Cxq?u=RE^_}!O-`Q;Qb>b!6Aq`mJ zbrO_(`Aeg0|CRDvUDmk&FA?c|AQIOS*06e_)w$|&O`n1jH%Nw=qZyIq&G-$b_+v@@ zUNn>Cjs>Ic5ZR$&(QaAJ!S9#&O~P*)eh=(sv!0P7ekai%PVATEIR&zO9>2Rye#gST zyMPURPCj?J{gW(5l*)48&$7G^zY~6u<*WGp{Fj2de~_-0$^8F@j>pD(QX8W@4|3Cv zMmY}{1T+A<2ciD~rvUE&Q-PJh^T9^h*+!?^)X69Z0o}V8<&nURU5#=IuunI{1FREj zlna5Oz*68@pw1TW)Pxyjy)FLnNBtf~ITXa+aHAXpECHqfyZ1x{z)yjNz+ZbI0^oy4 zL{L|!s|4zSb$TN_Fc}yFywL~Yfj#>oJa9Fz5ZDY|z6|&+dQ&Ysovy)$M!BgSy22y~ z1`w8*!lnUZfGdDGGmY{t;BS}?F9W+J8Re(I6+jz&1y>Ag0gRYql=}du0;d7zVD+#9 zxDB`q*kb|01NQ-+0?z|&>gjZ~KSKCq2t6V60Zs!>1KtC!0QOmk2!Q5T_>=%U0xN)1 zfcEuux{JW}z)uz%<-x!P$woO5I1IQ3_yo8g_(h6QzQOHFjPfgB6wsl8PPcNYQBH0T zq1Fnc91Sc7&I2Z88RcBy8{i>e53HW=051dI0-pfg9FUPuQS`vIz!>1%Y!p4P4R$Pf zz{S8qpywJ?9dHyg%I1z}13(|((p+P*91g)}olzbS9RHb7P6gJ+zH}>a1h5FWe4|l* z2u$0A2r%B|x&zJ!J_Ww}26czI_2#!mIRHp;G!q51$B|ef z(5(O^2Yhr0B?laL7$pbnehj?^cnHYf%3FF8y$1MoGK6Rd-xi|ifwzFU!0x9J0kH2G zL;&0XtOR~uga|N&{0IyJI-Ny$;K#suz&F5LV8e3=4;%};1FVnZ`br=JI=kw0r-4Dh z@1Wp5P0DccV25eS>#s_SA4daHVPIvG+#tq<~_-ZWF6a9b0 zO|)Ka0Hy#>0rP;DfrY@^z*6AoTZll90qG}10K5PU1={|M@W7p=2oG#~AK`%;frUUL zuoQUq0m6Ifbi2zC9ysSQ!Y4!c^BE!lhCN3F!2baAfG+s1yb#z0SPEPM#2-rPegNu$ z`U*qYbjyDJoT=X~ke<*}aMnnL_KZcQ0 zfIgUr@_^@og}`xm|E3gpv@X7{!K%^LPL}mRe_$xE3El*X0UiRT0G|T$fUD~xJkT9) zuap9R1?sRAZQ+3Mz-bP0vK$J*+7S@|e`|yYfZJVUc^mLLz6HDtjQ5b`r@)4uvTWmr zC)3Mv3n25BPmd_Bi&N*G!fJfMLy( zWjPAMrWUfC2sCRg%Nu}efyaOY+RO4o;8DClY2OsRAQ%CGwK^djurLJSfGfJn@*3c& zZnC@|xEjmn8^Gcoviu6jUxs$T=5|V?EVl<9?=8#Gz^2KAWO*KhCBR%@3Gfi`BHj|e z2V9R=-F5yLcz}A~c)X|{3fvEj;rb|9UJl$j1|hAc(| z!0W&@z$QzPap3unW%&-U-f~&41a<~Gx76w4fI+}qU^LJ*9S`0T{l7niToC(#hk)ll z#ghYn0=@-CtdeE7Ryy5XU>+>|pUE=+A24#R4U&VeDo z1YkTc8@LX*7kCa>0(=In0ETQq_%_%f00V%Hw<0`n7%%~7^(De5Ls<{06zz21Fr-30^N5ZJn;5DJUKAv0G_;^PB#b`0(=V` z3H%W2#f89cfXR6fj1UTerC2zY0$UtLqic_Kz%evBAUlpm2lPFOMhAQeOaTr(g?4|GFBe2R;Xe0-etwJn#o#3ecQ z0^mttC~)>UL;$ocMg+j_=aB(m|BDC@e0K@qfw!+9d`HX~-yu9O)0$>?16d3&zx*Kp3FfV5^Z9>bM=d7l!EXsT_ z*5;h0jgwQFV~wGE|ARSCHxj=~TVTz>>9D%?AJZPTmg8)!xF5GK#BT=dn4sU=hrG9M z0G$du{$%yN-K-no9z6Up{BCP$ly9MNymz42L=1Wu@8NfJD-8D(f|dcpGBdMTw8}?^ z$PWi#3aOFEMT1dJvb8O{h`;c%Iz$SV6~*njP9l!x#V(+ZkKRTc76 z*qzx-bL!c|-W**&#wd@d;i}X+uhan8FUJ@e{!Fe>&nPJOW3kw*k#6s*bQ55&Hx7~E z(W}xm8zO3#N0tqH?>JGM$$KHsi!;idt0z21WKmRd3G5Q=i>uq|eBr?3s(}3k?3hsB zrxp7?yuF1^_Zs#(c-HrMu{7fz2wzJV0EY*YjO-&{+Q>2r%BxB2u`_j^7CT@F4pk51h(6Sy2zmJCIjS zWuw7cR6=gf7FogF*$PAJG`5Mm2SGkMjh)~w(U4oSpSa6Bh{e-ICMr_8VMzMfsx62 z>e!Dz%t8?3uqRE2Tvc5W%gku<`-01Z58t<98T{U7gksl&Dulgw0qa>C1@aKGH=A4= z`82Ps)3svh5G{Qm{_zpp!SfalIen4Zw;>-~#2$mUNQK;y)wZUdmfIi>Sjt*i!~Hzu zbxW1vD}&sDO}9pjwX88mFJmjYOH;^q(%3g#Hb5TrF}uoT{tpCKe$1Y8c{$__pRl@h zAa8>_e>rOf+2TB857xI1qAY_rJ)OnZ!DHCe!5V?B0v*TCNK#f{WW$in=1P>*k@-M<)3QU?^M}Wz#hO}AgSbC5TC6y%4=)5uBvjq4EwlGjdDSa ze*SG$KYt4Q->d%nAg)K8Ha6JsNJja7_4s*Z-xf(Eivb`2PEOdfM^tyBp;eiPf;|NG z_!@)J=`*m8QaD80?s?z>U3*1vQ3bELm)52*}%mb5uUBe&`8+**nL~-I&mSyWqC&V zml_3lx2ga)z}_9l2Xl~(s=U#eRnLA5_FUL6)(C&LD*Qbj{wpJM#n|Ti7Rm=WYp7Er zUzSz*a;uB&BHL0IT_pr!2X+c#@<@nFxBc%>3t^wW-6;33k;TZWEN*~(1MHSHQYBTX z9^>)vFv`Kz!zWf%PZQleID7_&km?R|s~mK1VK3Oh`qiNgYxDN+W{1-=w#5!TC?ofK?s2DG>>>hK zzJ;8=OPSBz>`}dnoE!pq#;*T81&oA!!vA4k2>Yo2!@dFb!La|gkq*!5r#l9RL2y9+ z-Zv1X@I~Xk2YYw6r5@_^EyR{=2^Zb!Vavl#)uWySB?ZQ6B$yW{5k3i8EQDevc*_kC zpYIfl7vE!$yCbdo)zj+xz9R0y-k!zQN27TQaRgkk`hA}*rP+!u<%T#CV7IQ`DA4iE zbfR5|tcSv9=x(F@xOyD)x2lE}1H1kkqdcyLeKfbTZl2V_F9ixN`)A$2#qmf~pjGTXu3`SEJ+D@van4|(7f_L%djkcV7RvbGiS{431g ziAN84-xU_g<%f{*%JUS+7Uo#9wPoo}NXiFd+Eum#v{g9dqN`Zs>Ur*=d|JXD^RTIq zzrDt+u`IOQ3VGOd=FjCK$V+drNXQlsAqTR_&U~fe%!ki(h?YJO58Y!sxOX_@g}<w3137?g zZ-i*VA%;I?7kSX}kS{)CkGV@K{Al zyi_Bxb5)52z-}x5?^RS3?9*W%TO<4^EqoJQ0vz_hp?i! zL(U_tlN(C)2INr6MsWERk8T84&+vBln3>U&RT z%+eDNvK8{`7R=uhIV*yEvjvNUZ1E7X8=LIO+cIX&J}p^>C-shO0r>|0e(8f6&853& zEXVORp08nM1CaUEH;Wd?vntYw;kDEJoz<{!#Xh+J(AxK`I}Cx6PIs5p4o+s z(8H$^a=)%@F?b7SM9_k5)FWF#5L3Ic6Wl!-a{n;)GneNc?)*P?`vj* zxmGg^VJ{nwKcgkp?cr7Zbp!16SeQ3v30LOjjlA3gtt_jW1pnILVXQ1;K6vk=oLYz` z#lKGY0e0~(;>C}G>skf zL0cRQdG~bDUM&)Z%NuxGu7UVjJj1`}^q_h1%*7Y2=?1tjX2JX_E0Me%F_ z=i2+?D~@<}gv)~=-&cIC5+Og2m)WI;m^{}&`4bWPp-JwC?8Acnklqc5pCqsmpsij( zzBEf|HkJ;4I^8d`*m@W&+e4l)n;qfuV90lq*j+9sLjFF9{mlcffqXJa32e0=%5^AH z&9HdA0i_8W-UMaw3Zf6257Ek@iB9);p3Hi?z@KkcN6NDoCleIqY!IWtsR<;)Q*mHg|Is;mH+3?vJ`eZ*tgfH%&k?8L5CX6g?&to z#xO!O20e~{b$U45UdFy^iuoZNvL(CF6wfstVh4tQ3*%~)3b8U3Eg6Mwu@#CBYt{_U zRRpo`au(SP<@OMA|8zEm%jV6{{xVnwmwg~l$z(gY91i)L73?BptMQN>vSfDB3Kf|O zWqB6!_eTp@oy8(KZpdO&IDVDIto?bU{+M90SO%AUAP-o{E^_;acm>A zTr9^!{zPJrxqB*PM^?K9+_ysfZY}d~0hc1ki*i{cWQ&K8gVa`*9qE(dLq3el6*ZpkBuxa@N!{UXQ-TUlgFB=it+-c~lHCGD7G{b^ce-U`wEY!cI`ew?fyaSDoE{mLG?O8GhN)>|6k=pyM@qP zc`TiF+28--wOa`Jz`=hsf9y3)9&Qcc6+u{1om{s`?4u8c@=q={b znU1ElY}kU%n3N~8b)9K9vYh?UnR?dC_ENmG_;Ok85Za#x*|QNLaGu5HhtTALfG#wf zhD~U#_|8%BV-?q`_?3zWRXnHSEfpWJ0o`c>hMBO1b*)fu5!s|$tbQo%P<5@Dc8!^a z+BId`wPflwWJ*Txsog%N-8QD(E~eckrrjQH?}86xmE?rwhHMRDX4=8U6w^=D+gwbm!IPQq#Y_uF{NM>`tGvvL4jl zi!Tr;mI(Kv~|{2P$-hVBYqOXVxnD6HEk z1XilzN5&_Qx~!Q_WtUVw8tGNg^uZ!ZZ zSA&fc{`Ppg4g!8s#3x<}5qu+Ef=M~eSN&5|f2}6|Us>lJSXGfO@VS>>B@vcf1c4}J zgOtz_fdB%A-n)d*gGvjafa^^}iXxr$0HFw?q6iB_gar}8(o~j?1!NaQF%+e2aYbF; zH}n1Gy+@pX=HA~|rq7upd$P( zeC`4TyWz#8y{w=13l*$|mxEu2C(*9)%A@9yC93%*1~o7^0q+KH3hxvsH~>$E?^vh6 zJzbQKJ>j`4m7hm{4E(?<3!-v=0l{8WR1{>ghx8?aR_!JVTO9IE>emCazFT?%rY$EBKekx56N0gDzaR4kGvI!I zHXi*fxZkg>fNy~>KcqnZM9PJ|@aPLi6tqC_If6b+%#W(rT!Sx!KMpqqw1(2ZRKRp$ zV&DhQDkptY1-|>T<5ANQM~MiEe5YV5yajw0yc)bC{A>6_@DzA~Tm?R(V}#q8|A~8M zei?rm7$jrR7e@j7%oPPG@IS%Vpx+LD1fC0b6Rya9fDge>I{GCGO3js);k0bB*8Nim z5`xMdWoB+?*$$549t6>j_1r`0qki{Vw_r9CgnqlxMR+LTLGH=8CH@(;0Vfg&V zly}z1T!hzUaP)xx44=Vz)IAH6?3F6w>My}8_)#_86AcmkUIezHZgx=K&lX0)W5Gq6 z-%f~=JF2*gN=*uUDf|xUPtp zAh3UgWP@Kv#=*aW*OnHrp&q>0IMwe=hT6dMKdU@Yb<+o)1@CF~?PJR{1UIItfqRH1 zd}^?;TexiGB@u^A8RP%8TZ-z!;vh%F(bZUgnW5GRh_}G=W!}p_hS!AGL;nJNFnl^Z zpDaCW|G5OO506tGHDzDa1coDc7=!2G?(v(*nhUoLRfmQuhkhUQ7uX$!1mAJf;BUf5 zsn|?|mw3ej`SM3+ChwvI7rRS^1juJCSA$`Uz;(iH`p=O*7ZI}o{n6`GKM{9Z;aTwZ z@IS-9h3}+;?pGc)tL+X)f_s)D@d*sfCgt)Z-h~_R2jK6(?NLQr;|DjZ{@3tI!tKsB zgB@FScmn$Cc3ORL%D%(23FP;%%67M>7OlSn`_0 z@eRj+d*dK1OVyAmYcAO5zyB}TbCI!9%t|CrvzzMhom`C9U{l9&6U^!rjtR93GJ8p0 z2B4b}XkAo6cNl!gF69aEba+|2d6hs*ni=qT`erQ^n+5RDAO&;rW8e3cytgt9m#Ux! zf-M;MrxqjNpTeIxtor9j;A>Y7`T0j%oWz2%EwNQnpO&nEbvgKc@|%Knli);eG3$zW zP<7?I7%HRTs}CwairKTyEbmx&75t_H>ox`fRv9+NEBGr0lY?%3W%iwec;i#b-FpV|acPh#V)^x48zt{SYv&GiG7RUZ;Kx=fm_w($ z0#9HLNg~l7ox8;1GIVTVuRN$`Ll8d%_s`4*!fORBQ^I9~as9&i%h)Qmzou!!8nV$f z7~fAaJJLmwsdy=t=f1*As+HxUXf|3^*gtK<*M9iu-I_)djm&Z3HtpsU6x4;=W1+Sz z)ov*0;IG^8@;S;YqW@pVP4H|#8J00Yw*ld@snuiDM^e0I;$!ksTX-pH>)bqT-4Ol1 zl~u)-=y!nMU7(;dX^wKqBxfR?dro;SGy6RF>Z8hMVYWiJEpj$}bq9RCa~Jwhqf;)5 z=HlcbX7wH@7nV(kt)IVBpJU;1@JLO~>u9=8yc_wyz5iMh{mJ<6il0`FOMMOu$0YZb zFE+>Lo>l4ND5b*RZLPpBqQ>L&7T(<3L81~3#t)PZwa7)$O=$T?vPG%xLwM~%YOj*o zN%Z}r-9*_F*zgU!AkpwW}zm`J?)Qqrv4pwgPuSN$OI zNg2m&5&Or>#qcpu#bZQlE2bXR?_S{%m8niFbIY1BGR)`UBz>J)x53G4SRa|BpdS2n z^lSX8ps%d4Y?$GOSfc%>Zrk*y8Y^y~k=X;Uo(88rk7`~oA+E@zvKh0hLFOQ7lpCs5 zq_jFe$)&6=TCr}f2-S2^a*}A-au-Wi@ffr^V*U79P5Uxg7z97NM-^wFKi0X6yokFJ zRAW`duR3w6{cQwW;5*!EVNNxFf-fDQ$)wSCe}TX8s`A$4;ylTWo1p&ve*LzVtzeKd zSSsQj9e9y4n&|C9YE4_18p3VSD>8bQkkP1X@};XTm*=@kW?;7_Z5 ztVv@Q&p?prvX>m-&mT;<5AkOB;4_+E?{6R6AA}f+{#kYRJ>q$+AgUn_%UHH`K942G zCF-^eeAzrr<~aHf2U}95@)~Q@$3>B+MA_C=A^L~U(dwuZldyWn2ilmhl<&B@0D8jqiinxY*W== zr8zdMoLM9rapOGe$=|zqCbAFl1;jZddcs+Ex+-Furwy%?-$nc%c-`3w9)ahJ)B5p8 zZ2a6;M!2q>q|t{-X_}xo;kH_y!a+y)na>ogqT>4pnPL_hiTIJ;T1t2FRWzk{h&VbM z@v+@1-htOO@RQukI>$2eec`rvcPFW0J@ogX|0Xk9P53A9Z;Pq_gYfgpqh`&AD)6iJ zA4Cu%3kUzGl61|lIQoM5Bm+l9B67x4HeQ3-czONb3Ag<&`nvkBkA9-#d@;e85#gfA z9nsAwaPPP&c-Pm|+Rxi#;6-;Sr`631&Rya%#93uDwJZ{S zM|g~^6_b+Uon2wIHrdWBatO2W_p82p`#@CAIC1o7al6utnDul4jLkL77QLb5A_DtH zyRDK_trakPm==s||5UvO`h_0Qs=Bs9llNUIR=D_yHAP#frk{DM2dQZ?wwhy?u}#J9 z?L7I|UhT|xv~cr$Dj$e`>{9*iSDT~Y$&AsNDmK&L=bLH1dKFN?Lgle06Gv3x`Md0xGs2mrPD5OjzBn22 zbm2BLPfbzaFQKoYpUw2?$H;r|rOi}-0%hCnl8K&1{6U_X@f-O2%&>1^c1O5Pz8S?} zQZxA)uzX@J3F`!v68H8P#yZ|qj^7<>r4 zKjoIIjtlAVrX;)^{<3gefSzvg6_uZsL9iGDe+2d_{5^PjU(LFE(?n!B@KqI*e~SL+ zBv79g@D22L^b6#uq8pTUX8H$$qB-iQ1cRw?Ma}7amWeNrKxwzE2~~Gdw7F>63hw-o ziW%~zJ-j3p=&xzL;hfkt{<8Bl{3t8*{-ibqKDE07hOU|ExC!1KBX<^-YnHNg!F3pu zV<)vhzK?vVTGuq=1uALA{n2E$i*WKEkEK;?3M9N|5AZTa^DHh>QzYXX`Z>Thw`?jJEfX|!B`C1F;bZF%{2JUk5zFV-E*FBx86-&FQ05p zFQD(W#N$>htE~w+!ay;H;A3~FqF-~I)-CsUE{gn&)})K7^|3mUH=Axvkh=%fq_u5* z%=$?A`y^`bV_V)IuXEtZ!fhstaleVxmFX2Eio4;@U^b$Px*Hx=yZP`l?004Qb72#_ z;%?RVtKl4YMrGxD(LW|U-riYFOn0N>w?r-RR7U=3rK1YY?6ozEax#NUQygR`Y*985>-g7_Lxo(wMZNsp;GE zPYN$9SulO#grVc6Y@a_p{Aj62N=jP#*r83Dq@)i`9Wx>+sa?n9R;^R&)@ro<@ZxY> zfyEa>`L|zK8m<%yJrRVKhik|9lb$|K3tCz{fm;JUJ{V*QF50-17DZ0X?pz*jSY#>R zmj*vA4>$VX^R){qtJ>_KWtLd^W1w*f!PKm9!x(@3)5m**98oJ`e+bNmo54?6;YP83 zz3Stnw}MtH!nKMfeMVb-7EE0cZW!ygR6ZURAM6vo7=QZH$BzV|l~S_*%n!)|_uTvLl%2QD zDzMFPsTbcy5}!~Nq^!(!%|Ep*X+?!z(rVpz9cZPUT#u~qiTslY(j0wjsbPKPQ{-Bg zm^<4Ob}w&u^jzMYvhS8`Tf4PY#t|Obd-&twt+_K7hy&$Z9R8YltacB1ndUCvA}(aA z9An|U-pYksmBTEZ$#VGxbtZvamMd&rNE4yI&z(ps@m)tgYT+yg*K{F$g>9wyZX`n6 zi|_G*$rj&B1T$8I%oofC@%@$HFA3R(f6G%XT!=yVd5P~a!e%eNI}7hT@jXE>LBi*{ z_;wQfw?h6{#8ry8yoKKYVf$0qHVS5_JkF{O$rsFSVeKjSe*`l~$V8rN*@hex%n9M+ zDEQ{$+Na{$(}n(r=FLlv3GegbJD2lv0m`o{*X6`oF61Y{m7t`z3!g%{u5B9Rs-TvO>rAwgx>7?)3TuQmB1tylTaum<`DLv(a?{!ab63>%wve;! zxnX>O8f|d`>{sRk+0j9;qp%gp%CG=8NS|61cS%y>I3Lz#j%ysIZ) z&5&glptHtjoADzxKF5rortv4u_ymnFsLCUKsn0pJ3QDUQK!sgX`7$$po5oj|@!1+* zX~ySjycATu0YqGvB%Z!xV`jK^UQO7+jBkBGf1?YHDjVRQN&(`=zGd{df^^Z2=2Wxz+iC5E??q5{{#F-4Lo_tTmWoEoy zH7m_{y=pSdc)e;e&G=k{RySE@23|M(lWoT9Rg+`J>s52ojMuBCz>L?c#!zHt(Ceny zjMuBC#EjRgrqqnrtESA1*Q=&NHt6 z@xj%2)W04evYJ7X^Z?Oj{Aw+tI5S@NpK8WuX#R<2yzuAkZ<(24qZS~;jMo#$G~++f z{IkvY9U7lw#%F7M0eI2=^%>!SW+*ZXP^j@GW_*#xmzwe4Xnchk|E#LjQ^*^pf;9JGlSK)Dj#je*VOn}Gu~O_r<(C@ z8Xs@Q`)m9%gPEbVW>{&)_tyAKGrph3XPNQCH9p6TAEogpHQu1t{S?hmWENnC#uuCM z^EJNIj9;knWoCS;##dJ74N|&hkbyo(usLgSm7@%b7bV8&k*JlbEV znc=b)AkvI~pz*P0{7)JmXU4zM_;@q^Z;emnJa7Mc71aDrZFDRDBS3~3Z>RZZneloF zWt;I1n*Yfvyy$<9nxUYIfe)cgG``r3Z=vxeW_-BDmznXA8ed_?Px_9i{a*^HUiZ_q z05)d)VvTn(;|&_`ZN_iV_y99LQ{#g}4Am3fuNflE0vyu#XfytT#>biQmo$E=8UK^U zC+fU*{nD?RVVQ2=<&Tf$_iCHSFyn1BKGTeM(fDjL-d*E!%y>gf%}`)w2+;Tkhv%Jcfq(+tb18o+;{@hi>vYZ{+v#($;p z1!nxFS85w7HsiN~Z@?Q_shMHVEBUr(YnuGEOubqg=4g{=bZGSo33#qX8~Y!8oEg9E zch!HY8J}38^6_ST=u5#Hq-ACXKka%}n(@svKEsS}rSX|&e4xf>nejmypDp+*EhI!U zzG($;M1Naz?FE!(fHNK#`T4j6_%NBq7 zr>F|wS|@?URrrn?UzcM^6~i#u&d0goNX;xj+wri1@}4})$CbtCHFGAh@}y>M+huEU)fj`1rYUoj05EVxiaLI^}wS&~3SH!Sx)W zQ?6TbJxfsxh~P~<5d1pIGlauSuJht6Uncb5xXyE29xwDqT<0T5d7RL{<2p89r1EH? z-{v|m`tnerU*&o&t_KMH0@rJE-J7Sc_~ml~yFXI7gK+qq>vgy;34K4;?YUlI(3 z&Nqq5ONG9L>%7j&i-o?P>-D%^AoNvSug~=yp)cpUBiFMGf>^`}Cr)Gt{e7`@f5~-!t}he%Z(MJ}^?0E_;(AlA#|iyAt~cX)w9s#Jy*bxIg?^Rm zEw~;a^b1^X$=8DA-h#;IL@Vy#AoS0<&iiS(B=r4U=NsYW6>miw;5y&sD=!uL7On?! zy;$h$x!#uR1wvoN^>$p(5&Ckjx94lo@+?6t;zSU4$PoJbT<^g3WkR3Mbv{6p#|wQt z*MqqpC-jkA58-;W&!m_><$4&`i-lf~>pi$$Aaq-<_vCtx&?(mq;he}4#2W_?5nRs@ z`b)0&;`%b7|Hk#+T#py}Bd$ksJx=J~alH@MqlJE(>wUQ%D)g&d@5l83pu6GG}lXozJ=>CTrU>-dae)RdV$baaeXk? zbA-O!0ef*%hj1cG5R16OP_AbP{e7+v47@P{R5iV5YDCty^$9Oc#|vg)&T!zFA!Rq-zGAt>kfNJLwShWk!fA? zp_SR8l*%IUb;;_A{3M{G?H078w1~HMmi7-b&@Kr?315ED|bg0k}Bg9 zY?CVICbTHG<2g$28nKf|WxLQ3B2&*trhXln7Eu(LdXpzV0@*A76(PZ$j7*Iv0pbsi zhKN#C4z&Sa7MT_WeJIcr))Qef$`6RZLr-#p66B9EQ-WN?x2^boTZc2x#CNIqzAe5B z#rFyEoh`n%i0{?ndubg54;C+!@#1?3z9Uob@?5v~Mk7diy6j0?H9MEf7NT4+_xs>t zCuZSd^Dqkh&&AG$Q$|K)+L%hUToFa|#K<&DKRycMA}a$6&@`;!b3ZhmPaLZr7?dZ;=s5 z+NqvsETUopi$d5XOQCl1Neis+HYv*S4a*f=novjJI zY%Rxk@vtj+sVGSi6(lmvX`8jYrAu>{RE=K)sO!6LY~yM8U5;5ZbsKs5^~InXFZ}aGHFSfl;DI)EaTOB2r=Pm zH^KU(R^(-?R0#Y7JG$}ZvL(OEgSz*x>jgR_WhVOM(gsM$+e$vt-JSM$Cg14(10DQa zJ{TH6eV)k=LJgkr7DyVx5>l7E6@$$=P) z^#anaFg4kN@8#};H_~R`=iVKB!jaCsB(Is;md^Sz_rg>MLR(yt?@U`x_kEcgJKdMK zd~^}lmmX1(&lkF;C}v!g$DOKAS6q-kn{jdIx(mW5CqJ~R&tlG|Z7k;9AuYXxLwZX5 zyV4xRV>Yu#f0(_@kds8D{MJ~V zqieUH!l#q2!GN;Zb39f){6*t_f@7#dWXOdDUYKt_|>oROhcJiv<1vl>K#BSY6y8= zt(TGZEep^^DxNfcY42cX`7vRYP4HHL+uT-k(mA>B+(6p)oV;Z2INIi%i0Snix#s&j zs9(Ok|NY_g`YG9BUaaNkXHdHV^Bm=Q^TJ&FoEDc?skUDfw`jlZzJN>J;QI2zd2Y0B zzHFQ~fSx}k4@hWF51f>f6M|{XDfw)|ar#}pJb%77otmG^=6^)#@nf=U;zauVguE;< zp0+wAzf9~(pPkGNTD(nN;FFP^d*tI)gudD%cTSC?FL%q^ zQkzrj-SU-G4?5*jdFd)|*=AKI+HbcUzABjB+6!is*RfrSk{WS8E#iJ;+LFqNk?p#O z5kA4HtkZ6EE4d=NVQ$^DC_G;jLH#RIG^d}~d>sViY zZ<8ZwE+=eiMiay29h*L>bCIbv$j6t%45TfX?7R6$E89$d<-CuVM5aauZRbIHI zoBM(dBF80Zp^izFN&?2%2reW4qc(yDO`l8zf@GCTC$`xCkESj!USn(t>TVAkjX5)Strr|N^sW*m5%pdbh&lV%g=lIB6wq>1cwLO>a z2$A!*&!xN4By|WYbSuNMu6-dwGU6)-i>GXDT(C#2QAxNIN+nerO zC9m1-L!Y&kkM8!Y|7^9Q*ymx`izrPCwZsMdkSaGj;^uX~z1Di~K~P&ST8q|nFSpNi z-?Nkw3;B~zJxRyh{7bJBN4OTAS&ZxpR697(OT z&kJp?=6l8pJ^htwp)HaA$Ryr6&!-LD${oW}kt%OzDXnuq-0w{2mgTt{57-g!f12s> z?prV7bxRxi7$G$G*xU;TDWTJr$(Ig!)4Zl~*&)x+yybdYXpj6_KQ)M+khJ76onI6E z>o0jr&tF;mN5<@~pGkM?`z+%XJBF?|k7L#bU-17kSk2IZm&M}72F}l^2tF=07p_LB<5=FBhNgL9e>! zI-Z$L=;C-e`D{n}{v7$t*)DWXeC|JI$63&r8S>Z*9<=QYdC7$dG-{6g=)zb!X13hp zVjv$!FNTm%`S8W=G<3H7{9*#_G)CnQciMBJ{PfCu zWRTqdYBb$xFK@rPk&c`w2VMJ)uCbNtUhhRb<=E@q^!PY=(e<9xJ5D}#y}47uIG(wb zvL6*C-_}7C!Oohp@wyvbWhcAc*h&|~i8<~14S$~lHhS3%pDW4+{q+?tt5UtF{k7%# zHyhI_HgfPy4?44U?(mz#D3!*_M~Yk5i5`mtCaDP=vyz__`_YRv<$AZ8G=4P(mT9Ub z)=E#oa<)i;&tGXZb4TAgMC!cqRTo>lSylMT&R<`lQKNGoeLaUZxj($hwBn$zywfC< z&iPnA%qsKil(AuQ;@vI|n@95cf19-AEhqa8lMC<8u6GR)OuigZOvN;0C_6A*4!`F| z3rET`?)lJ|5%QXQZuCy9eBhp&CmX@DW}kwoMoNn~mXF$(QZK3Znf*q}kMFgmACHh- zN*dE$v2xcEPfAC~V@f<|;}PP0Rzpy$xSztk zdiu~;m=V;fUpic@xkHA?ufLr}Zw}5K_uUX`A8$m$`s!?gQ7*h+V7u{O)EzE&=fK=G zKO|97Tdr5yftI|H`Vv+b3=5<|ujclYj;vMEPK@K#`{6b{-1_9@B&#^1&x9 zsb7@*-4ieB*hBv3i6;lQr%ma15xEghGYEZHA>aGmn_j4p|Ni|3ef?Z6de)fU4wZj@ zmP}W7m*+hnNBi`U?>-NwN1w^=6}~j>ncSnomkgGtRE(xuy2)QwtfWhSmj}M+NuP9= zH@xUezke#1zKHbL`&6x?c+7VgpMv=45t&rrjk;R%RE~HVL6bV?u6`LtY4Jn(t5@yl zopRao&vtb3LpkKn<}|fDchaB#5X&1KP>0$Brp2gpU&zi@A~^=*H@MBYN>iny)V4JehjbG?d6_tn$lez z9SkQ%Zjuko!MY3 zl1k4PvjJ-YMTyzbVd8=*P=%us_E4Rh~F(v#^}4J2}59EAB?h=uSz7Y6D~F9-`c z(-p!ZF0_a65f@rO$mBvJ2wS<(5W;6%aDZ@-3;ezz4}yAck8LTm!6lWc?5z#)@mT=_ z8j{*Eevo;)b$S)T8yZH;^q|ChtXoaenha&LYLeshz+L8ROFGsXdq<1+Y%!Z`OCm^L zcF>j#qF?!JsztifH9lfQ__mQe?mHJYyB6`Uc@_nV`0jkew$&o;^wc-(i(15u{&bs_ z)FNH!%B#$|Hu32i4L3C}lh7!T39)r^&IfYpg|zwVK%Q>bfyajC{~XH=-D!&tn_rvE zuz!fWnXV|yhdoEU-X6Xp1}wGEDfwJ*3#*V%RnM~G#tJ){NnBW@9bTyavk@Cqv7?0Df8Mhw1TZ^~a&Pd3GYOmLj>KbE5&?12OEvd{A3m#FUarUyl_+I5LP z31sc+l2)V+8&{X?uN8|s6H&_(idlntq&sQKhSei6bcGxHtR87aJG!xwdSoQMRK(iX zC+q2OPgYc)bf8|IxCb0SpS!VWN8)Mwl^egdr)B#*SfV2dv7PC`QQm%LTpQ zdVP6K&j!@dDG%IIQfpF?miKW*Y>zA1MpxGr4tMIYQEnuNE~&@XyOGc6ONYF!?!=#3 zUbPp4g)2L?irBLZPZH#9Q%76mJh9-DlG$B(UwihmCuu_8USxH=$TGU}BEtf*D_!Qm zzVagd9qC0}Kxowqh^xcecoVmP#(3I^wN8!85qlJT&~UPOqnlZq-}~;t>YCsEJL-4; z$L-i6Z^ZkH9XsVs{C(mu=W_Q;$Q=g9r3hYx9?(ytkJQ=ZgVCb0HgonNKCa&&(#VjD z2`#ZrP$~g%pTt9-sm%uYkTUv5t-LOc$YnyC+cGO(G9&iOn}|MbNj9>PgJyja6Jf!0 zNtvJ3C-v_>xcg7HJHS2kuD$JF#Gh2?&_B&C4SfGJt7H*D*Chh%76{T~&P`V2OMD|^ zpoYaL^COkxd}k~y8V^UhaxPk#AFLct1UDQ*adS|^mHADT`O9LEq8n5Ma_N)$Z4~aO z((PS0wLF80;G5;@0I<-8 z7kP>cFL@NiZ#5L94{j~eJX~(@D^F4PKQEWv5{57Pr}-(@g~3}3ak2&*?oXQ5y9s(w z*w8+ySE5o&k*TxS**bsX*?p`U5HYS+1ERV`QW3&Xh%^E;rk$R6O0dTG)L_pLdEF2M zjS0gOp{Sgg!HC?RHEBY|1Ybk1h>1!)-zQZYYqGznQW;OIMP+#7VL=I+kh|W5=2^4T zO^7dXVh@`TMJ+nSPJAgl#aeSrIF&b~Ik`dn4&qTgb~Q_QJ4jCvo1Y;U66|r2f48HlmglKlbF%K5EP?C~{Vfo(}}gN-@JM!J)7 znCIq_+Hf7-GDBN(u9mV-8`{3#$NID*Lma2Tx%x=+;0-(4j`;X@E|joEJN7&-AWmF> zQ{$?>V$+GeVU_KOr$NDZRo(aJBUR!RzJuQwl_x>yXw6eX5g+er#s3rR*#87`M=;*y zcovchVtJ)Zs|1ybZN!u;&Zgd~hs*t_O31R5M4V~mU#vz4GTE^n3h*qcTBmg?*+(77KpORi z-R?jdIrKqBp7hLr>B$Q`=#w4HvLk6hhOvN-#FPH`nniacT|DX>!qAp((AhQZ4fz6-Wn$|p)qB6B5(dr*@)mSlz8z>}P zxQoRFlj*eQpX_=t=G2e>VogKHSo;P%Nqw+=^D1v+2O$%z8`hbWQp0{0+yxW+o);{w3+YEM zZ)PQ3aQWq*Y{QkG;;Et(*giI^JI0pUY<+h!uu)5x z)HF_0UfXA;VksrfADO>b&EM8d%pw%-HCWS7vWpr%W!FQoD4O^wdmD<5{qtV7GK{#p zU*9V(yX;k4F;zyOo#gN}S$fc{ZLA=SH14uP^-$At9)$Op#9Z8@O_iKDMSVPEzjgPc#4tL=+VzNYp?p0L(ENvLDLJv=|SH@X~AR70d= z70QEr)UqJQ+{I2`;$}lKA-T5 z&>G;9pV-U(q=WtQEmg?ipIFBzkY}ore>`FzMv=Dm8>^C^KVoO1$UI`l0tb-cbnlOB z)d13lZrjYh7(fP)QOtHAiK2HOun_}Eqxy@o%_it+*?fZbr&luBiGieh&B{z(LP7J^ zG2=iI;c<_v7$tsgEY>(~yr*b4fOFR5#YJNjrK|3vH`5Rc-5Hiqq?gllD+266Sp=2(7BeP>e z$A4aws!jgH|2nYD_{m1#Wa4WQLz2GqUMg;5J za+M1P7q4@vDi;qfROeDuE)<-L&ZVgwe^ikZnI0V=FsT4f8Sb(r!^v`b^A01i#K|Rg zm3krd+(lo(Lv9`*s0C{six%X<`o|IG{ zS;}*g63d6Bq%&~<2~Vi;Qj5xS0+}n~SLlfT(3O!f#GP0%&oQKt%cCU-jB*c4qa@}V;44k1F6f{I4rDR++c^tk?9S;{7Rj`L^q4(wdBoP?BTES0>_gCLSwJ7eG|~3 z`(0&^Cy+k0_y%h;k$BUaS6IwM(jefMD@G+Pr4VZr@l+l`@0b`U`>q-lu?cjpE{2=3 z#A}RAByH*A>+IS@64?9bb)!;Ny9iP6ZN8tN@omVYGi8WR;*SEHEElK+=Co%a%2l%@ z)I`y8A8}jva6aofiTLy#k%CE*zXqfZrmo0`w(8N}1Ns;#sk1d_)N04BpI8%o0h=nV zyUY$xLLtT#<$X1Y)FL$Z61zW{ZD4xUvp~EOja- zgaPdERNP|LVb7q^%8!`iG}74c=p)g#)r_U#jTYozES}TtO1LTA>8^kvq3L7W_^OUh zU#lL!e^4bV{%W2nDyM6z$F-^+p4_9Jo|@AI)#bAfSkW}x;LTa%Su+j(1*dNnLEFE-_Ma>{XF+%O0L3)vz?6(={k(CB!Hxmnyd;=Rh zlLUFJ$GbbG(YcLyWka%s^LRxum*@g8Sc+d1TG+VpH*jd;?B(D{qmpt)qcug79h5@nw+Lpa>xHbG5I z#iI(;b}ep7586D3mCVHg;6SN%_n@f%J3CPekvic3a?> z&lV?;@l^VP{g^;n((xzr?BE*3E>w} zZKbg#k8NB)CR2Kn{kwo<(##W#eLzOqht03jEasftlt`L74xeeBrNJjymqg;y<9R|A z@7hR)KV)qanZB{~N1msYQgyM7l6*1MJdS^l8U;|o5xBMiC5G3|B3lS#H=NLwhe|eK2RneXH6E8mhSn-u(DB$_v^@J7fpG* zT$Xi=%~?o1B7T~}Lp)H&fLCyTf(EfsE@gBOG;c;Y-}zX&7O^W!XF5pkhk=CZzvNKylbTwbBoZ#nwsvY!@_!F0|A z7Q7fYaFJ~CV)B=N?0IiYUv_;2q@3j0QeUFV!@?C4UcbmRtM=zv(ubsv+usGk_csAm zeIs+&uOA{Ge;s8uOE9~o7vyzXLhMQN(dWGJ_Shc8Iv)!GrzogMtQ!a1o4!lz^kFt{ zDQQF6u-!}1h#nnbT@6@=?LN$Iog*%-B2%LZ^7r~lybt|8Oz$0=&xzjQjxC=eTy2Tk zJzUu>12zlX*e?d`KpKxQpJfD_TBBIUW$1BBX0b)fNEgc{hj1?)okl$J?kyve2)%WH zbz4sUbRCJ7k?+w&q%;<<-eS7{b~=Xp6tB5>vYGUgnlcnm5RXTWZAPw1~%eQ3**Dp)qdQ%SNS= zgVcWytGS9?rZ@Vr+pDms&Y!^kT18gSoLzZ_G~$U@dv@mSSdHBg3#%PQd2LT88kNOw znOxc1bh46e@6T4OAwSq&-Hw}i@x~k5F^age)U}xS9gndCYst`-XU2*`;qNP(hWkJG zE*%Crg?G}RU%3Zz6+WKLnuWmTd~lvHQr!5)^US8(jev%sV`>cBx)B>EbuyXHCXAeNCSQ96u&tZWbrv#y z%iM^SY$DC+48|-O;`3o_03$7}a=S^=6*+KaeKw2XHGlz`Y$wCbvd`vCnP}~XjT|h~ zH={|tmx)3hkcs;&7?`kShkJ)nrd$Ad}$mch(Zd*uCdQfIbTgX298$);iZKr0K%tAiF9n<=%q?61ReL@D> zcdAO}t!E{lkaZ2RL>F;V!mGsMu$~#VlJ52)+@?o;VI8}%mAF_&t}`m~&NEKTxRq?D zVe8oTZ79fz8SL6N5|SwhEWcNDVcU0*jlOEGEql0w1h%-g8|j9Kbn(tnn$`DJbUaiR z2HqxiryJ!%hn)SsP1idot|wu*B-x*kk_+rN6xg3AP=}4OO{>|$ERs!Yr?bX8Nm%XQ z2k;t*C`N$3EPf~M7d}|cGI!#xGHn2RuoI6H-lQ?7UAUQgp2k9Vk$$xvL}?A~mngPr z7Zy9c*RqmbWT9Ip7?p-h59|3=w^w5 zvrk^{J?Jg=$I&QFwVK^GZ^EbKAt57JL^ioZ*Z0n|`;7cbXwBrj*ZYYRq3fG7yMtJi zMzOGiSd@CRr3bORSsR|W=OD&U=ci3E{##(MEXzb&Lhs?P8+_c86&=ETM!RL~?IHB$ zQ%mz29412uMxhx;aDTs|1>1Urd_*0VGOrx$UKp3=?aU#BSfzc)_b;`cUBe4MZc~Cf z%HDVzzM1%T6W?~?TUpOakCHj`>|z%4IT>7U+G3+JITbxuyN4QqJJQebc&o-@W|NCT zy}yXH%Ozdtldfzo*LN>s_Q!~;-Kh#b0z^DOaek;$?1x;85CKBzLSHTver(Dy3`GYu z<dD~bs`Hnj+iqO*$2n*$SN_B)jffM=izY-maTlVrMf9?QzdTD8kOX7L4SWBJef z7$W1oARcV+7vur0{XT1VnoPA^KUbskPM_v8ggGLmXDH|* zywIq=z&2nGdvO+1M#vmyeGYL~&PL0_%hhb)IdXxHp3UkPkc)J604piL2;OWK>Uq;x zr0jp5Orbe5+1m3Mc#;IVvb*Q`s(dDUeI8*`W^kh`yK@1LuiR&_`WH!{$B3DH35LFu zhClvHA3xv7&uWEUksj2Qjk}2OKeu8ZT_j$0#~8dNyt$uhH3UMM)c^xKdXbE!#%Zi> zAxi(}X>4R6iFR&`EyfH)S8X{xds-ffy(y)RQ`wVCB+_%$G)xKnMW!OW@`&*&q5|*m zS*k@adm4+mj6J!|)AEuplWvrDo}5>Bg~StjWdiGP4GXCJ@hs&U9v3R(Sip5MtmY(V zp5d-P__DRv$$0x!zM@yFGs>I^n{JS9_Cu<2J;t%98>E?Qjq$j8{{Bo4K02!R;(Rz5 z7{@YhpueTWvHdqlNKKmtBK~8I+0z?jw*A1yRpPfE&!*kP({QVCZ2wL4)w*%)!A;y9 z{xX*ReUk*(ufgvR5T}}%j^kMHSENz9#&KH02l)0V5*D{Xm&<01H7X~O7jRL$0Bh^d zjCPG>>0hA zQD}&Bi_uE%-XgcD-$=IqHkP#$N3mjbN^K$Q}~R&fOtSj?F!A59104)8+0P!OHGnoH{X_ zHT;HzS$!R=4NJALfvCNr8#A0O{Ra0HJx24E$eRS7r9}s1T)D`9XB##=Y*?SvdtpPv z@WU;?0pq;+&$3!^92}PVZ=clH{hR%acO7gZ&;M&twqqFk@f%z~&T!W4F7bB@4hRU4 z{8~4kC$(tdJ$=r!*^?$pty+1{oHRLs)xL*8H1r+`Hq7|cs2tJ$s>(X||0N>5-Xd{5 zVI8X`T9vCRSNF;5Rzg-;VA@lZZrJND!QUhcMVV%)D0lOI_?{?^4JI5`l=k=w$Dbqq zeDOErFnd`+^8Lr2Qj{^r6~zh7ZwmhUoBa{k`=4aDUyxm{3mz!S<5ESr1C0JrQLG@( z!e3Zv-kO)Bo3(-epTh}gDv9llN<3tjPDUjY*c2EFY}?tWdm0rNJN)cwV1!W#wv(he zz*ykJUWfqLx;G*KF7Jy7fFJck1V9F?1nvjA)R835{s<487lrV^pMi}`*YpuO=%B^-nToCs`>DIyt|JkO}?0X~>-R0@GDFjqYW zP6k@y!PsM?rU^4I#a1StgF~S3<03QRhftGcVQJ}8@LM^NS!hwr{ z6M;{F$-v!9j7m1}F0cq#b1AkifzyDs>q(M7eu~`^_&KmY@HKEIaMd!SvKrXqBcpPV z+kw}C&w)>Yt&$MFz9j8iZBz^a5LRMg7Y%e=gEj!n1ZDsq0ds&e)*6*Nz*WFkz?xW* zx;RQw5HJ|n0L!3QVDWksJ$Zn$&2W+#)s4N3M z0%ifv;f}QcxD{hYDX{H6)IBDk^3PEBz-b3iWT6oH;_i7Oa4j$y`0pXq9nj@4>JGT| z2<-h=-;S&ha5Do+5fnNeMfcJqpz(0V+zN%z#L#Yuoy_NEnfkw4|KrnGXfakf&RZ1LNtiY*NjR6 zFzLEc*#P_ncnlbR1C0;34)_ZA9O#JYF774<9^hNx5MZsZ5FR)exB*yHjK&ANd<)|S zaOfS38^8_Upz-37>fgX%FZBPRchP!5!~qk5Gk}@E1;CTQe}N^y)(;Q?a4OKnTapd} zgMob?B0TUGFcH}05yAtv0Z#%a{)F(r{^bY{bb5mDSPN`;hVTXmr4V9)>z^Y6;3;4x z@ILS)(7OT=026_gz;i$sELB2YAOhe)U@WlKON0l${sZB;{ZE7k8ebzku+JNW2fF`* z@K_ghRnY%~A^a#QN-XdqCZR;&6ih^!Kx&28xPT+=F-ZXr0xN-6fG$|1UBdf0!NB2l z5gwQZOaunvRgz5LY2ZoVaz}&*UISJFYdIl2_R>CcQVdEkgk)Dlz&F?M!rL<7`yPt2 z2WaP|D22e|z{kMX-il)BkJgNRN?+i7Kg^K8P=7_42rK|50~<9#c;HaHl2iyB-VDF$ z20Axa6dP=}sPZ3BVvcBG~|}Xs;-zfg?L2An=b61jKFMzD@`T ze6K6Q0b6uel$pS|P(@h{4D6{W2Z58r73DhcScIZH1=j4RD7Ep=9!B?9lmOu6!I+ML z-UhtE9S>m+FatPkn4%m5hTzTe65v)~CD0-kMb=!B1_OhE7Go794%jyiB?g=`0apwx znWQL1z)6#labV;$WV{9He!8Nx1oobRj04XBX95lTXCdbhrp-alfw{ozz(*e-=fHr) z$azaiieHKdfZqfA1K&r<%>-Urj*J7Re5@!rz?_weQVjeKSOK(5RTPI-lGG6x0L%wQ z1D^roTcQ6C#;;K_KupQNl>`Z(FUx9fM@VrAORS^ z2~`FRWe5+vn~Cs1-^~aQY_LU9yxZX4F>h6rP~c(UM4;t%MOoR#fPn=I;J@O|J);AvnsaKY!e za^O9z4POCY0v+2)(kCZSa=z=Ob8;KL$B0DN{8831m*j_|+*HxV8f zUX1WSuiFUU5d+R0gaCD0{Uk}835 zK$`~$$X-~`CbYCQbG4+ct)ymHYp^Iw+SoO*HC6}GyAP&2X*B*8wPC9)sV80DhV2JV z`>+ibd<2HDIu0vnPdjUi?xc1N8_65gY5Zjc7?ojF?GZ^97X5{b@F|7Q?Lec_x~h*w zGt~h$o~|Wq_gRb;b?b#6z(_ON;aM|iQ<5~Frzl)`R&3iF6%_b8d%Q3U`$X8i+OwpB>f?Lbqq7Mn#bc@7_gw-3fbtZG!F-X&{E zRr~wZ!p|~=_l1322s>*-T_=Y_UK4_afJN1`23qjgcv=%-ztF{~C{@#SbL4al|;*4JBdiU@1xRI5w8c0g$uDv!#%&q9K>CZ8p@+Iv!%Z$)ez_Gaz@L%pP#} z9LOUlGb5LaA)lPgJZnO(fP8i`es%!a!3qQ7G&YvY0g%6##+Gt98ghr}Y&)0ZAtz5~ zXStjKdGU1ifXg|Mw@zn9E*C>SHC>Az^111(n=N<;YgGCSHkQl$C-v{mU`uVOr_~V1 zf3Tgl)Xk6p(R!v)!2tEHUCmbO${W-M*c-wg2ier_!jdfL$anR55yGTeVIRB07aP;yMX?!+2(0n|ju`4|&c)BeQQp8(P1G zg6-YDwNbF{==fU~vFTjy!UwFyY!#PBLvFs9?MGniWsuh{W;Z#X1$oV4_6)pLA>?va z*N(bbJ%;!v3xw!zSrfM;AL4m*wQL=K*H>YWUMiZLUpV9?ON|QtNzJ?ZvDj+5go&^l z*-<;{HF+gO7u>B*g{P@1=>$_LWy2l^`+rqq5$ylMzN=dJZKm*Lup5$@(UZCwY-}ZI z#|opex0-L3$+s!&z8@Qvm}>U^CVM38Lt+2F4a$57;{V@m!b+p^Z?*81didVbN;rh3 z8kH}rITYv)Qa0>A!#<~)eY&uFgDZl){VLYL9<}ro@?92UkKSIp7FK=fY^)b`t&0}|ugKo8g$2P75%(PAT8>VPoOkYhHn?OcwB+!t=8R6l6vl7)9Yfy z>jL?AmRc9t8V#}UPPQMk^@osa?qOHCycP0$d)RMWKF#@k%(fon`;hDGW6dF3y@mWY z>r)R6-n|Z*6PpInx(mcUp9v4^(U9BkXZv}`4 z_aQGmz?wt0dJFjm>r)?5y4zy`bdXKwE?ppd9AvAwJQ{MJgKR%{{}A%G>r1?SVKH+d!H~GWLa7%0(}7jm-rZP9WgN)dDUz1x$vw2lk}`G4h)d zwrE*{JMaN%5A3ba8kJ5}!_ODNg}o5=NZ9{tihJyc|CKZo4%@K^dY8av(Rq0SmQIrN z8^iw~a*ObV7=taY8CBDwlTCRIhkYyTaaG^3!c|>u!tM_Hf0bM^?4hv7Rt--Fo6_0?dm`+;tJ!<#c7Lf54m;qmsG5UX zcf8~u!~Qo5bfa#)EuB#uUm2D6s=2C5A@1r6dm8LdsukBSrs4{Reb_A{8;B`m(nKf= zZ)1w8=3HQMPKMp{j#24{1?juG>1A4m?}5F~J)`nVsZwJ9#khM03%j0f)? z5NrKzR6ea%t~*WT8V>uqXZ)RIeDrCOt}sP45%#z2D5CO9hPVqGhkdHKhMQdXz_7h=V-{6 z{$ks)fU=H<9QHRm3)w0I@)h<2qPEI`_#68dqIEGu+kcrSmLk>_keey28)Pd7>?_}4 zW4x$ajR1)4@pChS7j0N08p;AFJD^y{LrEpqrv#w zu-V?Yno!7_ZP*%bln?(mwJq(~32*A}w*m5W?3Qk>8i~aQQ`0>L`%et-G`sb?1M!1; z*oLU;%JXzUc#Gy)2_L?BdcA7CEiRkdiHip|TN>aUFdN#iNidY_&WduYYJ?WoO=-u% zzQk2^j!1;E9=opts>R&L6mur*1@4M6wA!c}Ek<2lq94xDoDHk|B?1rLeUPXhXj}P`0+hBThvB zuF;P-RdONhKe4)v`9Kb_erwjYF^a#o7k0ebv5}3DWJ|~wg4m+Qys1LI7|gaqHY7l{ z>8vQ})uLW$ih2X=^I`v~TG8Qk5p7v|4EEq|ibATE7M7*-FA;^PEB?s9sk@>WtEKTb zcQB}x35P%6kXX%Oo+%S9-jdWW6z_ypO~m5e$Q%rNgC6)-mDTL|rYehto&Vp9zSZK7 zK>P-E-zO0cKf<96?&C}aY|-3?=Ku{&%7pzHHm(O$8_oNeM)Q-fyAM>9&}#P1CVL6& zT?Q%tJL$JXf;@prID8BT2HBJWx?Yq3Op=QazZ0C~hgQ-BV(VdSl^<$#G~^?AF#@vH zhmcFy6+a9#TOmH;q8E9}YWjn@4@P0lAX>kLIDRzi>(3ivBMd8}*>o;yV$ZhE0+6rw|{qkfykF z2MoYHX0fqNsi$9i$O*ImyW#RzXCAVhh@nOT#PM?!R;wOH(hX3iXiAe~P-bGAzg5*@ zpDIdSRLdRM7sC0ynh5y{N}8@X`eD}?%9HvSU)n>-{(nR>1oq=RO-FR*1SqHBJdjkW zYKy+6#<~IaC+uM}>gIn8;()o>q^DI~-!qL{cVJ&XPgG@%SCBuQr?3Oa&}2t{>_H{q z*8R@=0XP~SODcNvug?eQi$&*vDPhlD{LxB+mqRVmbfYRg?xj} zg^N`<#DCd3h&3icJeQ)dG?bTBGL$Fm7I?!Rh>mz7)2LeYc$liE5cURmP_w3*J=J7? z4102#qTHx@t+Ys7Ebr--&G5WqHR`ll`1kbi{*o^o=BF#lifR#jWQrgh_V3xcR=Avr z5C^h#t*JYYbp$)ANfTI1YnTf`&Jv>kV~8KDQIzx5B0X)2)Ur9on6>OGA5?rHH`3&A z$SpN_BIFLLJSiD+=-U6zHBj9ZU}S*>B)m>PCC>;pC^%He9I`pC84BE(JiI0BBrGBWTeu$-hXr+EgrFJN#q@O{l zpE;?YF{z&^sh=UK9~r415vd&sSzpr6fYi@?>~juh#d;dTuBrLaj|tR|1=LSy)KC4> zPx;eN_0v!Bdsv``*AMCY_JXSGhwx=zRCWE3y}^a5uAQN0Atm4Y|5ZNpqxUS;Y?_YT z`!8NUde6elUq52cJRbcdJu5SR?ZiBTq(`J5m8Tz#r#CqLL_GZjJl$VE`A$FSPUrO# z?(_rgbY4H0PCvL#%_vrDx6@xRKc`JSm+c*|AIGL2zoyr*e(ail%$m;Y$E)e5sp$#pynbpLs#v5i={eGmN7Do7 zr=sbnpy|AR`k8*(na=B{oZ(b6QTRHqA7-W>UZ(Sg?+mJ=eoC2c&`&4R41TiGynZB?e#Vzx z1=`tOl75tz&g=gAkzEEoBK@o`{cJ9s*N^1VkKodI{pckJ!>r)Y5tVBrW~q zERDC6aAXz+M89VG5n1{`!H>q`AH5sx(R52zH;X!N>P&6wWnl@zKVnS@jQg6ocBW%# zNiDXhGxa2c+2+o)JBelAcBWo+BYlLkDZ*%0vkM(aE9}|GE^uzi7IvYAws*BSf6?%@ zhSpd<@J|B`{Wa{+Jnv-}x{0#b9<(;YJlMt7CbW@oP5zqI3#A=Qr+4Y6b?K;|#-*RW zrJc4V!tyWukS+aCtyWqI1Zt=slBJ)CrJsSNpLwO7apflIhgwBx0b?{Qe#IVz(n}3X zYMIhB2^J`)mh5~OPExPn;ABx#isqBOb057RO}-E;q*{_*9o6~TQh`>4)pYsq z^zj^=`rD)W)Ecku=O8Wnzw&h@{Z#qt{`I7IiCyhMpEb*BQ`LfpPEaYnOU-y6cC;sT zW|ci@FpUpjZNurRG2CyFwsgVrTYSp3@Vhh~n{48<6b*~}pVs(r?K0eLRbFbV`iZwr zAiiejhoBhw{ss@0++H;wQ9*Lj_;x`maZcm$zmp{*xk%Ak^Rm(ScI3ON>Mv2ZkfjO%_xGi(ksH$)~ZK0O7oYrGvTz0lBR3%f6+sY;C(Hg1uAcl z7WPybhRfz3{O^5{p*PX0K2!y1wU$7DmOyQd->dnz(_$72eb`QDe8&$|NAYwX;u#T- z3tkW87l4UGzk*9zfYKy2KwlLkzAWbjo|~)^UK;;U;}52*#2Jm}hvjkqX=_wsm&U)< z_*!dKB9sF8L}m$r2k0kurSbB+7J%PcaK1w0V>I4F<7aMAi7z$2g~s38sS>l1ApdmG z_!^(6`VT5d(cld{fybI*lV;%CtDIl7RVDJE^Unf}f4oQ4OSI8=xyHxsR{3Nt;WZjx zzF+0*X#7@YFtQjnzLvi9Rx{|g4|x73KJ{>gJOTao0S`dL$6w?1+XtU>MC0}QA3Z?2#_RV(I=@Zh_4^}j?2wLXyner=`xj}vLBD}Y zP}7xoo$?Iz(Z-K@8vjD$cWQhGjsI8U*KJelM4wb`v2@_^I9yU470th~#%ni725GEj z=&Tv^JESO$kI{Jjj!E~QqVf72)LhMfiN@=9R9YLBWQ{*ns5%Z8`9=TRr5UzeQ4Qju zF~n0Ezd$@0!+RN80yi{1N8`ga{*lJ7zpD}-Yy2M?|MNYSxUBItuwkRHnaX zsLu`Hn?6>F|5MhPfLB#qaeUsDEg@7nTGl%{edMGHTcgi`w}IaTA1K_82)9TN7#{2&B*pJVIS%Cz zlvChmPbnAyUkKlg{$}`kczyI!;dW)2-J=rtM0mCGxY;^UThD_SlIqzaHZke^-uP0f zL%VelZUYVaLjQL6;pJm5cwal%$|k?@;kMi1C12^^?jfmsv_A}Ki z>#RD+Z;H7sgtt4Vf4k?N^6?en5qaT9Hlvb1UG|{ga9;KFu%;5eaD)bSPa-6La~eb4 zd1~0Ae&z@GY&-tR_FD>+RA2XCZ5;)-qi+Gw!nSvXnOSRi8@Rco<2k3Xe+h_1o(!(*>SJK%k9YU4*@%a#Z zB%JuhE~&Hnakca(;YGFd)$j@Mx_%HiF9zEvzG|Z-S*$x?8b}E&|9L0nZ@^RG-@x5d zLb0`lztmav?#ZC=9`K1>m3Py`6odu&G7}pmW_wx|)tab1hTF^N-LpdpHwQk&zP(;H zAMRE7`ku<|jLmNE!V9t$41#~6JZ@gdQSzYFgWYPxU@JD6dB3d8a9hI!t&hv|R6i7+ zCfx2oF*`64-UA5$wY7M3FjV%iw0WgTif16jPup6q_UH>&H~@yQ7ovntPSM zqlx(jzG;*KKgGNt+?|BqV{niEB$FnITGg2ktAl&&C%hfJ^(5sX1?mak4tHy>#nvBw z*%PW?Lw8pw-1f7(d$rP;M>2uNgl7t*O-{ysoZp%D<`UxlYnsN(#BDLW)%5@8>)-?6 zUC{4=$Kf;JCzZ!#fYd-;F}o=j})Il3I)Sh`KSr3<%5ZX-v|UwrjMzhRcf z_iejBe6QouCf#omOQ7KxI@;?K*-G92#*B9vG&9F*owZZYzZk0CJvkGfr=338{EGr{ zAk4Gq=d4kEmW^)*h9wxbW4P5CWLple!w|LIHe%UcgztJu1I1{=Ti{o%Q+}n&%^`R% z_$%&~pfCpD~+Y$6?867PemY>BGcqUr}P*{VDfJ{aD8xAOIxn6dDjMJl`w zJ^`L?FW+T*R?X%q<+)~XsT!`quowsbd}0jzb@(&Pu(&^I_Ui5&bxGEj-kT#RD^c8L z*Yn!SI6)g6LGi8(V|N8jvpP%PWX;psD&Ij98UWw*uJS+PHq^PLK7{%4=QNisCLDHG zkQOZ!-b%t1Fby54W>eUB@$MDTNX(wiFb1KftVa7|2hR}D8C{xJH3;}i^| zX-y5QB%3_@D@Lw?5ss0?tbw0irrEeB^Ae#Po<~2EO*X%G;j%u)+@OWJ-HZ7Q+&>^I zg#Qr6hRfM>iJV=wu18a9f}6DP&``N~wt8q#Cp zyad%vJygZMnMLq9+m-jE6syR7_#+BB!(T<;?`s8aaio0Q3ipo%uR?#&aT6XJ8l*%% zb!Ca2Lp$Ostr6O^xhOnYra@oQ-x0#t_Y2rPyx3UvIhvR#Jnc6Meu+c(uws}T$9&AM z{aLwNV=EsE;kynf|21w82)8wUc(Q`6aCvi&gp178WQ|MWZxJMyK7J75qws%IpH!bY z1;0L1%lZIqu8uo_e|j(Wd-SEmA4vRUxlWRQ;jzLXC9jQqvL(JSNv$^_>IC1Ht-#N^ zZg9?WYk``YLq*;e9+F=Vlb21~B>p5S{{)uH8&gWu@#OXlxvfU;pX9nF+G5)bAIxEU z8U63!6-)@K;Ga0IyB4iRv=c8sA_aPOG;X9#!aq%xA=ho0YVIv&TQRpkq_`nN`7O>| z*M4(8)%G}fg~VC3Muor7#MmYCHo!k7DChzokN(yR3f$6L`8de6?5ydSYr3hK#5@bX znO?se6~97@y9u+rO3wLhRBy8?thz^z%iF3thUyGMT4z+pojLNoOY$yjtR>GZQuBCJ z&4t^O=)N+|;}k{c2tU75g|pE233EnBH#CrN9jVEyF%NU**m%67+@g69^E7z*5Y6U( zn)^cd9-5xN-LQ^q=5xOItNz_Co5&GO9@lg43xcH7)!-M&^gKcOasn@bU(!UY!flldU?zdtWT0re}BF50TgW; z{GR#B8_`UT!S8=lg?{$-spBU6A{L}XzeUuV3xyd3tsiFHCv%_1O?4L%??<}BfM z&);5de8-D(Jbz7w+HV-+smL-_)sx`0t&UZD@1t@+*Q9*gi zT!7oQirE%x{|(B2#QYw-fD^ML{1D;%x*FdDo)GS4Q;{0oq593V9u|J1o*xpRIs7cZ zeep$X?Zc{3a^iQx+<%bn=*=9O8^e^*GDzHs`Sf-*Zzbv@@H31WZVkTJo)T_%FKwa< zyP&u4m$40PFP+-8@TKrN2^#-B_&VirvwNEw`~-fd7*gz=h7Xndi=_hu`fjO4C??P` z;Tba5JkDIx>+KgEY=PuOnoijjy$N`wk;yu()I4T(Cyh07X?d3&nz<(MBAo+2~G?Ce&~uYr1-66Y2z#ce^d z>N9D>&pUH`W0IY3MooLJ$8k2>aND$6Nfm|k6G}>)VuGZ773RwC)Ipe>-u(; zD_3+2e&4Ore3Hm#uQO*I6|=3*$xo1gT})sQPe| z$v1{5eC9EY7SqIZ4G&3O#quzBpe;Uzxj?ur%v^vUMMt4OO!w)}k*V&I z6JLw@qgp-VX84EnurK2F2jMpRLI(Yr6zeejvEB;&ZQN7DIlEH>bR*7r)yK^R_M;Dh zF0tdbWN`O83i`qA_kJwjvt0rCn4iI?u-`ITxGe`hjEtAT?-FizV4|CU#pNajh8PZ2 zyA^x|p9)_@hufCMHXr_WbKRu_=zm8BgKAB4UPtfO@w$`pdU2}2&|#Mba_h5&A0^Ow zS5o=1HyM0p_4XpF?m7P{ZojT%YvKDo;xk!miqQAxE^q*AgTgpq$9N&i7FGp@jPKSltS&ovUMc#(}^F6Gi{a%tI#)0cQuu1USm*SilK!X%m?cgOoO)z zHxYMpn2u@r~$@&}rnO-zz*N z_~|{EO7!^!#%-$_Yx)`dGEUHiip>T1SGA^T^)uXl=bA^^0qVuHR)ZN6Y6Q%t6a4b` zmD{B;cFPUdJSr27LNVLpw1EyNN3CWIZvB|2w~VOaSMc9(W#K0pv-MJYxl5uOP%Zhp zdigt4a!XGx$m4&-{NfIc`UaU+!>2S*J`a9TxGiKRjc*P-LE1`+JVYw)rj3T{O_L#i z+S6zjN6~$2Q+#ezo@>t5(F|G==w2N9)*5jp!^_fCzZ?CGFk@oSv|EmA%s*X7Sccn# zN_F#H!5fy_Q$F^de6oAAi8K6d0$0MXeN@5K@V^nU?-d#`J5WOn`~hx`c2Tow7*edb6)JcK-PTS<*%JLPH zgYdGja8b~pJbz};CON!nZg6S&vL!)c-SU^83(_O0g$c_Acf4G) z^y!{3PjF&2SQfcHwLIvaFfdtV1H+2tL683~iM=I5@sKcKg?RaeoU1#8xhsP1DSiQ` zPgjR?M3ykJlX{H|D^>(OQvGz(r`6Agi7SKa68*AHS)H4^GU%S_uZVp5hm3Hp=u-T0 zPM@|3_pOvYD>8a)d^)Z?VU;ZEjWh`J%H*M9`*5Emml~#4GWU?LEDl~BT$7MINgZc~ Ub5;jE5|@PfXTwOi|G6OTKjQoLSpWb4