From c99ede2996fea3f172ed6bc07d5966174afac8c8 Mon Sep 17 00:00:00 2001 From: su530201 <olivier.kaufmann@umons.ac.be> Date: Thu, 27 Oct 2022 17:53:46 +0200 Subject: [PATCH] Removes self.run and use self.status instead. Initialize sequence to None if not specified. Fixes slow execution due to non blocking TCP server. --- architecture.pdf | Bin 0 -> 45702 bytes ohmpi.py | 41 ++++++++++++++++++++++------------------- 2 files changed, 22 insertions(+), 19 deletions(-) create mode 100644 architecture.pdf diff --git a/architecture.pdf b/architecture.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a1025d0dccfa2174568c747a27517452214cd4bf GIT binary patch literal 45702 zcmb@s1#}(BvZgC$X4V!nGo!`K%*@QP#mvl%7Bg7P%*?Wd7BgAW$bGxd={K+M%$c=r zsn*`PGpn>JzxpGxA}YufM8)Ws=-FV%`iuHI`kVW6VVD7o0DB`V7+zim8B;rR7YhK( zM~@PNn5B)2sS|^kjiHOFsHw5Ni77unjI)cAsi7^5N7k8+bnM<xeAjZ#&T5as(`TSS zh!S%zxEFG3AVLgpoNfb`i@vqM_qWgbdx4VdnkJTYesCHAUn3Q<<J04>Vu}_jOTTQr zF_lYBjulav@q}8CANHMI{<_Jv|MF|{R-c3KYCHGcOL?Dyu%u<(iV;wQ--+aXX7W@O z+x~iXpSqpIb;V%8|K-~%uedD*syXWQ?V0>MqCQi8W^(;}OSg~8^YQw&J;S!0Kv(}w z!?^n8!l{l50W8dr7d?|DKIri;<LBM|7J;YZns=7h%QJHh-=~Z4AJO&cKWq@FQKmI% zuMoSF$$p`}zY@?s@uVOf>`_z+Dy|efyW6c>RL*3KWtH6`6vb|%cxS)4y+~r%i@@l} zuoAqevMisc3=X$HUXEkfSLMj+`n>2((FVvmYW(z;AnYb<rsX%ZqbD9Oa75uojGA^m zJ5H_IJYuY9zrWA6K4ex}qjdp4Dr_lAN%pp{M|IOiwmwv59-nKfwqE|3O7{kO3re%Q zcA`%2%k}1tGDl?l7^0;8tR-7UsPPG(+RBJLJCFEX2>*%@J>?aRpSrXIMxGETjGC$f z&tKD5X?p)*TK@g%?7=%?#VpJ)W~O=)O<(Y_c$RVOa(bCLT1}qta*t^<(reefifQMK zl^jjGKApU5dJRf*d&J(Ym*GCB_1;a*?i-}-_)me+pG}FX-{3oW#D+pRy*VslA@-wC zTg*JYviGQZ9KiXxs?3w!fNX!I;KjanDmIBm)P~wEP4ceoZtOGCB4!gSOzAeG$!qMP zK-poFit<AP<L?2CeRUd+6htZqbBNt6d&J9dJ&I0kqS8@lBl^j|aEnreX6J&&-QW%2 zX-EqQhWRgOGq29x`+>GU!U~IJ{mg*NibyXgHyfnBUXf+;j{*o`(>-S3#bmmuL)}rH zpCwv_>C(LnFf<HJ)ts>y68+#eL}rd{yBKry*SM;^L6_Ss4P3^*KOSL_nQhs3SObPT z#nmUux^O1p=F|-}^<uFmZ0So=!MH-k_EF1S#2lN1UEmCh_xt%Bla9FpT#Hp#naWTk zX0J(ZOknCk@-C}^Ug-qTLf9x#`9`^|`Xmy}7`Iz$@#M+upI@?-nOBBc!bMcH>youj zq;i)SsT8UL*yN0L7%<6pS;}SaSU3m@k3PaiT^t#Vt*{*~ExK^1n{*iZq>8xj@_wj8 zn+s{e3kR<HIW_uO)ABWa?in2CS7q{>QYD`6#x4f#=sSm`4JzLCWde{8mYH+w4d$z= zh<tg$<(w?yUB0;O0>SF7n!~wWyR3u#{K0K2=+ZDNgxsWF>277{7ol1^WI{7U*q`a1 z8uEeIWMW;`!}u7wI$mGzmyLj3U=5p_SF|D4!`?0<Z{%dI!<5fjA!mT{wVh(&NIr2= zf_{;bKCi>=znx+UATx+og5JE*lp?W&?l;>_HCONG51!Pj1aR`%Ebp-fZjNsatPb;@ zeu-T8)xe%+aj7%p0WJM}564>}{&g0+R_OSJZ%n2ZHj7j_2#yJf;iNVNxNjw2SSfNc z8&q0sq)G&%5`JHNv+UC;IK?#7O1rM5tXTNZjv0%~ehbAi%naHmt0*kYCr}!4Df5`K zFPSLpL>JUha6r($bSiXB`zP2;K`2`nR+W{*oKLV$Z&4@%pTHYhXhl(v3-j+YdIMIV z_(W8SK<}2XY)Itvh^iFg_RHi=xd2i1l0~%I;mVFUf)M_k<{}{M?Oa8|bIE0nfv(hn z{z63TW(H{yV}dC}OR!*G8-P(1!Z<$(hL||*P?t)&eR0znkuE+6;<YT@nOG<y8=fu- zE+ZO@rig7+IcnIQieE=p{qd#N^WG&V-XPHVPe_rZeV@AVhIF7@Ri#j)Gwn1hymJBY z<yUdTc-fhfpAQ%cc8O;Bg;uKc0X52@GfEQv6I%I=f_C`z2DX#}cmdx4;p6x}@*(l* z)r@%au1}T{qC!NI<K2m`n?qifMA^7%RmrDD{PU;IH2uxQb=YV_?~4+>7V<Wb!ST%y z)yW~v((n4AC-nvqdh^*Ol-QCvI6VY_?BHv6Y>xP8p<tF$4d-`>@W3J`$_wv1nXkw{ zL0}LIqxqK{H%hQHV6E`dC|lvv!ph>DFaKm8Nwt8)poL^A2-_!(jSd^~!3Wa=i8D|& zg;LVVW&(@ZMB}kVJ^>3Z1HPyCtUJiy$7~>ji?KyR7)3^ItGrKG6sJ<Pel)JK!7jE? zV2og6k2;_<nF%i>zCZa{hT?1m#;90~GiI?uQd}YZ4h_gbGQ<c47@xuo0U`BdX+T;| z7!OE-QGsRz!SN6y_bDE^9E1(1MfD~3;UO{1!IPmEGaJ^5%^5E$5a**$CHF8i2!B_m zd)D6HCGl)UdPt)Y@9_>*1RgdTqhzDW{v=m0?%L8v*1n0N<R9JujaI_yy$K;C3YN0l zXo40KRWG*->^)Z2u1I$-U!W)<DwBjxV2C@&SP7NX#0<0D1CGz~nevn^o*lgig|m7L zKxZx(4pS1-=TzCV!&Dg6$L@p7oVgAl#zL;&F^L<dN1`J+38`IHBnS<>K;tbPr=&#f z*SREFXNNI5rt}aJ){YWxH7@s3JvC8b)8zianHYu*B1h=bM6HSuj}2k{38Szq%urCa z&X3Wlf*Iy(wq+=QR|3%_34(zrM}c7f>xgg*Hm{;!IT&15f2A>U-Ph&^QMFJ-gZPl1 zBAG^UcJJ_w{FA6mgI%4u!KGItp2OWEUSVD<W4q(i?>oljJ`~Bj>(S4RXpC31pHRp= z`5|XszZeR^bR(t+X#MKvwl8U=Ay*Z{G0kbJpU?rq0c74yV3ucddidma?0L5(p;qyV z*^E(t4bSZ&sR?Wpt}4^R2JHb;4M4y5<F&>s5%`?TI~hBT|6K#q<XU$IpETLLbH;sv zxO>9m{+Dkak+fTQHZ2~;K<4m|G7+?xc5@lvU}q#ZYJ%hyqPdV~tfTq~L5@C?FpRv3 zT7N+B&p68U))y#{89mWQAWlsqZ6G*}5Yjs`uXbWOow7^^MliodJ|*!2>>Q#eg6VBY zs4VD?*;ST94H3PUT`U;jvgUpkB$N>&p3QqGL(0<aFE#bER~5InT-!o=_Od%`Q|*Gp z@RvKXn5#pXqdY6iBNDjYkOSTl9vE9@crl?=fzjus?(0B$Ji>ezay1eCYLZ>ufmu9d zuKH*C3TJv>;H~bSYro4N(oE&x{L*HkrykPNPNe`8VyS!IRBy!kHM*!EvKVlQi1MM> zbyy>RSBW<1JwUbI6gh54Zt}4ws3W2IQ~&^;(>y~Z@+FEp83Y}+f{TeaEC$mp!m8-; z42N%)IBfRU(Ubo{bRHvqB7Jpel1&g_plO=~rqmp4LJSO+H?op0L!?t*Ox-ZlZZ;62 z%tT8-R0+!Rst`=btXN**^U0wgH`UniHGRFQvOGkCW)7rRKcvWf-L`)fqpH|sP;@|x zG(t&2PH9OiXBn!Bc(W%=ShrXinN7M$OaXQuxK`|^4o}C+_wpJ!@`w22M3IaTn<`)n zSs0*Zfk-&dpcjP!gjO~|@l_;W&OH^fsAeR!pj_|4a`UAgsn;SkIcd}H4M}oVo%^+= za};@fr|hbLu;7rdi-}5J4RZ$^`p;ls{JC<V<p?i)ZN)#wy{1DosKsn(QL01r)#-@E z;gtr1i7yZ9h~S~osIdy?i(0gS**7bW1@GgI{5x6SEqFRMa2Yw@C?$VlRKQ@CN#k!z zVq>Nt(Kb0LkB~V=NXWE`Ss#NJ`*Z_bW;xLmmV(h|<4e<(sKPD_@`3eAAsj~9U2LBL zgJ2xodrJU(OOg9s43L;53koTuUwWx%Dd5D<VQ7YaSGei?U)NiXEy*@>Tv-@Y?S{HQ zuB+<^G`cdi6qlOX)f<|%gxQ0~Qj4$QxMZuKIt`Y!N>qx^9C3@PGVl3MtGp}iTF~q2 zl+KqI=BzRYD>1aKzKVc1*`OV|dtiR82~`YVZ(vQ%QMt03E>*c58%UXlQ(by4w|@0C zka{XkE3Je0MZ94RZj_rMExMu9kwhteSj;i{91?G3I5LRLI&!i=r1U`3f|w5imGv<b zB7AG<Cq=&SQ%|$-xF6L-vBXN9gZa7I{yHjq?@N0YiQX+RXJRx0Ib%q>o#qyS7SN$m zgsWq^`QT352TLdBuB^0Vm#FK#wSwH~Qi_0_I%%x)$|fqgz`O_e8i*%VS{;N^C}=(& za-BK3VV=&@MXdXDY)`JUJt<3Yhin0YJYorxXlud2*_+d8M@`NUXe<X{!>V%_JIjpN zRydS?G95ZhR52YrU1v-O+Ykyh&z>f@xvb8h@iM+D2TyHT{k}z~Oxpp|p3lM4`_Fj8 zOb(tW(-_qP`aQ<(EASrqE$J6OOf?;ce{4otOkW|rRn+&tofdxc!`w633OUrN=zq9k zE;1ByRv7T`&mQr_e(HvwX3{e#HNM(L@Tj|!Ixp~SCjAu<V$OiE12-LE^)bw)yF<=m zm<`bpM!A^#g9wxzRQ(cb-q)^va;UmGnfN(Vu&7g==pm_Z#G3%rZZfKRhZv!rX2H+? z3dKq`4pPTWY7Sf{^j4uA8-Mxg`wZCxV7Wm|CM=;nBy<05-fz4*tX|#0a5qtwMn`*$ z9@8OEX9362`r-h@F6BfSv|4dLXN;@5E&(RGRSl==<4Ex=?cE_Ig>QbD#mSsIYfhFg zAoQnrs1eARUAp>;U|Dn?P2X7<z<)~ng!C%Y)EV{5e)M9@MMx0WMt+xo4EuIS@+_EZ zu-P9512x}I(@H=vSml5Wy7BPpTa+SpxejBr!1rZVygpTvnjOEdpog!bJ<7#7r2>)! zOl=pXddS`~xZ=c{rL;ALfv@s$;sO1djQ?g$^pZx0<HTp$nvR66APPN~jv++nJIigg zPBj)0=BK&V)tY8&jr4BJ&kE<xTEX?#LxaT%DHAdk3QKbqIxwcA6OAyY`Hw>Se>Q=c zo~0<I8_b3+l2RCsY2s<CEMu&7w5jJY9g;16g;j|Ds4>CqK>H!CBTJaZ-ntwq>F|tZ z0$r-bG%EWYPo!Mf$5eObvr2gMox;}J^8j-YkB#(<@z;%-(N2o5s-F0=shO+ks>32i z62#c>*n9m|2JPf#IX0e&qWh&IvH1>;8XG@~5%l=$jD$y|WE<E8^-2+->$*@^WrRXE zxJ`Q36h1dP<nwtOYEp|hKIG(nR;x=PpHQlzBZKWCE9L(=@y+ge6(M=Oi{5RDw9z(> z4F53OwyohaozS)+vHilOsxU$7avuW2MOI84e4rIuD#PrZN-m9|R6FTC{#@ca@{f)z z++(kuYuZfrn3q@^>snGBqK}6}Q33NdV>Hj)5e7ePP+Cshc0|mtQJ6W}LvSy2z<RFn z#K}@iRo0)zq&zcQN~Fpq8jwdj+Mlm^hFkiPyFyS_nT+07M$cEMSU|3vtS>e{k6+#O zsa74wV-?snFOgm_l$|1uUDrDs$Jbzj5bohGA?*x!E;3%+T6>U$(XM}a?=Y??<j}!6 zl*V1Ee0F_lY;6f_$&)!li*`LLmgqjR^w#d~Dz;hI9y{o5Ns2z$?B3ZY*wFUG+fpXz zqG#|O&)YA)L=S&$Nkl(*&bxxzE<!SBTt@5e-1K6}cyMzBy9m+JYhpRc->-Ui7s1DM zauZ=YLok(?w0pF&*usxM+7_u;hF#I8(O=!CL8SR==1$3=-%7Vw%ae4`Y7<7?!jsU} zwazFwC{z#X!avg6N(mkWRqSUPHFx}m(6QZl{QNGyGNxg{d_d@n%AX?rn4WL-ZOk$* zNu}px0SM=*5)<mh8yopc=mt&^iR}nM2PUGbbO+K`YU`M-xD*<HF>A7m;$}B!!6-{O zZQfolA1k1CoHx!_2HBam5*SlElRxt<AFbah8kpaincodoRyLO3!+&%#vHm-QqvGjc z%Ag@{WMyjX!l3MG<nsHsq^+U3DTBJD$wzL7iG>xwAYp20Zs7vp;sP)TTe>(am^z8r z+dA0WncBGkH~|bI_BQrT$_|FcrVOH{ZkEQTO5(zQrGrF8RQ@X&^si(Q2P+eRL0Q(& z*&4va@jG(__;;S@edT=z2uVszQVa+f7#K+6;}7V49Y_QS6a?h={;`35?BGz~;9y|j zFp!WCP;fACaIi42u<!^dNbm^A2(Yk77)Z#dXz1wZaEO>#7-(21Xy|Ca{|PYY$2nl& z(BR<EXz;M`X#daKdmj)o6p%4c2q-Wy5C}3bC^GQ-01zG!Fc1jn@5}wy1_=cU4gm%X z@-d40G4L@2`nORCa4-;1NZ|K1Ah?fi5F}6}ARyo-fYFl3s#m>Q48PpmL(b#+&F&%B zxpk>yT_jbPZ+;dK5SFvUuUF)QwtBy3`fG(dlUDy<*RRT@8C_4NWhn&r(s9<euaXQe zxEg*y5vCTIgyvD_kCGT}8RD1<Kn68x%<VD@zp?>sEwi)T=yg3n(WIT2h%Q9ySNtpA z(w`z3W<EO**3kJTe-Fn+dj~?9c=a(>7iVj<cFLK78c(et^;|#NtK^tVcDdkbC4*P* z>i%i!MWENN)Frz93BSt5{gbv$vg!QzXz1n>tsfHW_4G`2B*y4Ub#_+W&Gu2RKCO05 zOgpVMhg`eVW<^6dv}{$SC@Rli$UaC>AOQjYzP}$V|Lg?=1_cKKfj~kAK%$_rp)!#$ zvM78|gZkhJ3=XpNKxZ}Q<cM8Sf70AQ=ZRj~Jg7)E$Z<C+$$>LE$1tK_u-1Hhr^tmq z@s<8~a@p3jaI)jt3I|#~zt=!TTTw}z5bql_&J{tWk#yIVr=kE>G9E>iX$py(bs|V? zs4!9is_m$2NB#JsT%~OFcMtwK-l@2ApE{rVZc~j=vX?TnHHs9i>HSK@^L|d0hZuf; zmLK6`CJekdP|0x38%^tMqmyDHWk4$Zx6}#%dkhH?l|XUCpkKrfDqwT)65oz|A{EbY zbPtgLb{V%87~+T}x)`j>Dh)ow9N0lWnIcIr^V6wBlI=7;;W<MbN5p+kx~{6?zT4AV zTT5+-2Sit^sR~PQk<yvf5C|xn^h`KIc$M%NF%{+3tu<Fwpxu*xfv>PyYpzsYUTE}` zb5(0E#8U})2MYZl&5R5L1P%-e0}A~Yejs3w5352(K|?|X5D_y8DH`sg8|RadGO`Fe z`p;he0sTYb0>DVe=hAB%aS<vi81;?#%*0*s)Nv(aFOc@KSZC&&(mq4|@YlpBC0tZm z)9QfrDdvjF>;SY%W%b7^bc?<5<@q)(w1kHObe4MJcc9k&{M-qK+A7RC$-9|=D<&cu zzCLZud$fRYF^jpmEPmp~D=JBgRtxc{y<{A1q$^nr+r2fNL8+WfbRwL#2p?Lls0FVu zZadb<`1ofca=eg{EpK784xC9fEnesGyHirthBI7uj=NJLx!$eS=Gh-P`Zb31r4jZV zPSewa9~>C|-~jgFO#XKcsAx!kazH0B&fjHZW)*h)0|Llz2q=dI^cU#h3wt&GD=>vr z0=3bqWZBEjRwM4f#auJ?9bE?`B6iGf7+d*6amTuvTI6D5-<;!$yX=}Ab(G6he;LZr zn3BkvboIYQa6NscUrW>)GL$63p1@3Km{)hZDGJ!5JWVH)%jJ_qQN*gDl^*Bzi2B-p zL^Z!?$=KNm_LQzfENRO)%l`eMs}4uU9WLEk$wX&Ol6{32cj5jCPN`Ohg5mO%TzGPG ztG;(<tF&b#Qf{0p+-tkyW70eyX7=GoA)%lk|FpA@pFm*9NGL?$sDR)1o>5rI$kExq z4g!sYnZ+<ZUqnIKDWLaH6#xT42!J$}TR}@~8HIIR{X7kH(*V8Ev91l^E{Q)QTZms& zHHvPlnpJ~L?CMbQU2u$OujC-L!T3&PVP%nA==2cQAEzAAONGu@s=C7o3tIiN?m<Pd zBq633jks3Y60UO&mq?bAvS`H=!%>b>fF3UZn=s7r6oY;0yW^=}QUoasaDEQx8r#0H zJ%V8+2ot1i<2n5Dh4GY&vi!?&LG#ogX{2eaQmzc^>}D*B$@bOT6ZGf)!;=0EA=wy? zdAZ1H7bV%sMz?$*9Lp-uZJg1wy3$bA*L-TpuM%b4*nX}X*LCC>(bj}NXTrmq$(BCZ zweLt4Av3U!?|n}6SBQE!Yw(%n8Vp(%QkH>PM$hwH{dtkWF{ut~&*^wj>KV*^F#jzG zVolZ~yARZI;7qAC(}^|fhv%_58T_6eapP3>W?W@W{LEg^Ucp>m5qF_h8T{Q3f(Y4i z4%l;|^+H!+*&5a)Hc{Fl6~cQa%fh>WI+_fZGbMHZ%i>70r%9cvZDd#y3naDgV+-zS zn7v9Kpb~9#lp%>XY_TEBGw(pPrFhU_^yf9f=|mH0edOjr>64ASc>*ZkhJN-jyD20l zk0#J)C{MB1N&=leM0v6IOSaED14H8h6*usG@3_U>BxFMPJYR6=<rAEaVaq)ARkcl( z%svP=oYmd(3d2NRHO0%EgT>RcWUM-heg0bhLs67SAO08w3=HyLOCT^Z5E0Uck^qK| z@r?fYbsyr{75vL{3lI&x{!ZO_&WJn9t^{)Q%CIx$TAhqwE~P^X%+{oa3NZU^zB-r7 zn%~xBIY*ZDsFFZe2@slgt2-}+C6m<njg7NApiS4Vw_r(@XhVMIn)Q%t;W=1<g3p-H z0B$?*Sy)QG_uMIyl=!86uLs)L@jBdLP(SOsqFb<{z>ENeIic~b^64UYRx#wDm_?9O z*5ei-G~=0(Ps4i)JyfMrVmN{1_IM|3x^JU`r5cXnvh@dcS|`1CtHgS#;#&u4^?C<Z zk)zQ_{%4K{t7zWqo1$P`GJWA^`*<E%WMTjE9zm1@8)xq!C^p7lx9;~AeJDF6cEMwl zW=6uG4LVOd_~Fxjam{;2Pkron-Bq*u3Z!j;-dl3^)OwA;aWhnLEd}T8Y9|KM-uRJ+ zVVELmOHDB}LoB29Z0UtPwF#8dIyk}*k_xPdB_anI6Rs<pJr)4dW_<VtONpSuea+i8 zvjjHL!b5nFwMFUnHA~x&Ks^H(WLWhaWZ0Q&PkPbxV-bRcA_GiUD0)no=wO1dP-94H z1nJjgx{Q=bX|n(+g*S-B|7sUEsO`d1@7WZ?A+{QB1wkWe{D>k65SaeBlYcz90D*q^ zO{AMc#Z-CTn=SZ9P@kKrTjxorn`wsNcObg)Y2M%s*9LjgE7tok*3+A5-amGM56Ms< z|CS6m7%=!>YyEG@{9bn)0sis%bx4f8v%CLZc91F!+iD<ucGZXO)UUu%EzTLvsm7o) z3D&M|<_-?-a=(shKEim_r2_0LI+3K-Z)&_qL}B4SR+t&TaDoGVo2Mf(ypZ^i;rKh< z%r1+p<)d3On9z`|x}t$mJL#M;QNw2(th3%%eY9dLPlvmk8Hof`H)?(^1JaOi;%j{? zBPV)hcUIS>5I~H~Y8Go>#Dp+xXng9cS8RxO18pa4*nlziRJ2sU%4K+ajF>cMSa!CR z3a%d9W~lM`JJ7$T``bePT4?^9t|Q>Xzasg67|8A=<G&UdqzYwY*)=Co3&@Vfv%^*& zSpp`mG|%JiQmFjIF5MIM@jER_&|KE*nbIG4??77dpwtK3D#zr*iJ>yw4x~aE3dn~m zKJvNd#q5cDK9^J#1DUDMg}wd0wcZNh6n^aezT0_uB0_bsU*v%5`v$|yS0N}3U9rxB zfh^cHv$CZ$`!r_4PNIo}Xq#1!gq{~ENim3_I3dB)`<yn)W?-+CF}!D+(#9NP%#v{+ zJW0c%e6~;ias!|r&un0SJ;41jNu)n-Dr4Q{m0*7F?7!Rq(!!7q?M8)B<m_k)E~8JN zsC48mfkNiMT#(g|SZnvePoA}eCND?zV@CHv??6)6!*i1?q4pin6ej0+1x$&F{cT-J z4_^(wIT?L+VJwos5=+&@1`B=~nH=_jBnrZk&qu0b5>5^{i$b#r=ZaG!O!ris$yY*! zVGKoyKZXP_`H5y1oF7`vli`KMHu0aYs!QR=XF(4c;o=*?1xVlzw7mnlxM{eVyKitS z_2efmgOc3~#wOm+u$P1y)TAMuQJ$4K5Cd_7&NMr~IvdG>)2D@*g;-FkN+WaekUkXX ziSNM=xbs<c2(9QsX!S)mbjRpRQAVYM$v;R$(ss-{g%yy!*a---6$x?Nu2M-)Z02#n z#m^mXFO#-y$00urg+c(E2BXK=Y;7fyN+zO+QnW@StBwnnVY*Qn5{1E#j4@P7X)9vL z=mbYnVA@IuiIOD5vLSuf8gp0pX|?MLBrJM=OG-4qi8>2#_vkMq7xflO_eRB20L(}# z8lgd@2yw=L4{oMOBUZ5(y>^xfdE~qv)v5FTned5^om9e|ZkS|zLSc}4omur@oQH+o z1|&d7Omrp?Fiv8Ehaw#yC%K)@mfI)Lq<ieD+S{m2L;GYS70i3m3I^0~)PoCgTAhPa zy5bqKA|ql-xk}F~9yXQ^i1Uw7W@DnKi8JK045rEfvxF9u!BbKTTX)`6pXiS+IG&8( zcS(DD<dX0yo7k!%&q@=GHY-DDhwib#phUfwr2q-sErg7`b;4|aU5GpCyAAW5g^r3E z-;QSJF(+66%eNhJ81--F6%<AWlNp7Wq!#q<Ay_jhZtZUpKd!i4e6|u7+@Su&K~3}y zME%P4Iip)v2!^E9lE}ip7M3=M@+q3WpI@pj{2O>SiWN0AH4Rl!hQFesqM$(R`|3Z$ z*M9`Czk}+JVu=4Fl>T=l{SSfkUlB4BC*UJ0hWRUk{#!xC|3A_ecQW*Z`G~rIms<d| z0Zbof>cadxp8lx2=w<rtbo%n{<ZWRY^8WHazrX!*fm!B&fd6S)zpvo;v{=~xl{NTp zk_IsU${L8-JK4f82n*YLXn&l|#K=g`$;=7h;9{ZYVCDiaGqKULe&iB#VHlK5o$Xzn zj7^;ZOkDppQ*kGISBDRT$_y$_hIY;lhEAq-#-0o!%74ozNCRA)Tz{98{Dp~~`JWK| ze<sh;%sSt|sLII72&7~N)20LA;1(0$9}u5ko)cb&9A|51S!r%(5cUbII%gbfu@)~F zjy{-`jvi>&8@1yfu(16}<>N|4gaC{mRWSenfWg@CkLJgf{gq&0|Mzi!7sY>viiL%V zp80R6SXnvfIX^`3KZuI;KSssQzQDrFraZFG?APFo28SjiGjT@?H|cNVEN#r^3@SoP z>~N<uR2H&NY2rXtWa$VDbOemL@(-|nr*{6djQ=C7zohoRS<rt6i<ya?p7C$6e#7JB zWcr_k^`GmCnRT9p@o%uAqT%moY5ipWWF-UKYDI6XQs{)n+=@2W*b3AojcV}^sD4|) ze}amM@!tpjC&Hp*{6NL^FBAO3B-uFrCs8r|r@ES9n_*#ORQW9{rr)xHgNO4=FcWNU zE3V7oQb1D%E6Ezi8Z7#k1qL6YeEkPfOurr6e}w99RcikasF<1P*+0bfheiI+lKKxs z#k|0x%*e{J$ih;u@Bs?M(G~s{4h|082@NhTeP}4eORU69kX-{g3w9Qig;<;@P?|_K z5*Fy11sUU?Q2mwr{l9rDroXwh|2ryXPG)*$4psmc2R#=HJAjp)?c<vXz{JEw&&JO7 zKdCLQ|GT!>Ic8aEYZYo)mm64FR6m&2GtRLvbNEB=QTBkr!PDKz^b(Vsm3XB<h(RIK zr$Ol?GJUP%g2C2-vDDH58h*sU`6qCHbKn0*&&B*VG5%Qz$^2V(|5OV3=c4riij#$r z_3sPxrnk3`vTF0C-eJ6WVxsy@0o7hmBe;yEw1_{<98@DlBno9PL=gLJ)yxpNUzn6< znS$ty5FT1_;Uf?-hzc-rIYO7vi8tQ4glZPg591x~BTnIY`)uEYxdNw)i_hEo`g6`x zTh>*b_iKNAycESBd}0%o)`F7uQH2f6_r?vJhb9_^23B7D9yXHVljOfoFPz5Kl;0kV zh~K)4N2J3?G<M$(E^WP>tI?W(WJ^t??y|THRxy46H%)4?0KUicl>pd%NR1jAn-As0 z@(z}yMRc-4V8DxO>Af+poVwL??}%1-XwRV2(eN@w0pFW1@Q%GQGP*aI%{9XmqtYFz zARW~TMw~q{hCrCSSn5&1S@tMr^aat#7mw&vGzj=}aV$n8O!-tTUX8-n1xcK$ym{QH z5|f5Os|G{~$07v0Jv80GP0M3!kr0G$eTiJWG(6^_)$S$)Pwz+lgom+->rdzd!YOm! z-H7gFOo?Pcw>~tB^jpRaZ`)G&34~{RP^%(q&-qJnJeOS+gr}5GB%UED1mq_S{r5<# z*bKJB+9R9YlI|p$!9LB#@0bF~P`Xl|WBCY4<?{>SAQ<kwl<~Y1I-X7{cbq*EH{^4~ z#$HB&I|QOwjInR{+H%w7aMI;h&`roRBaJs8;7vg1)DzAaLnlPaex-|BNz9YUXpf3r zgSDZX8(xI!&)&!r>#W2k)O_O4lmu<VrYrAeEIagOPI#d~HX=+YtVA{4mdz=YRU=)a zj$Fk}Kg2G1ao1>zUD!nrl2@F%J6%kjJ$SzpuLJoJknXL0ou7kfG_H7`XpxVpfP3*= zozB9epvPY5^33|aa8i@0<aD<8-8uq>LN?2xsm9=!>W?A4bOE#5vJPafRn2~uP=rwl zd1pj7t~0Yjp&C?HNvmX~UT0cRQspRNQ^O=#%;---?)f|#yu8Y^jmz>lIhsfGU!x*~ zm?9AA`*n3>gw73AD$xqDAEEAn)x~@zG`*pV<x6hwlmdkC#D^qxTL+KACGD;N6FF)z z`*(>OAFo~U>GZ|Nbs(ysG#uM%!IPyD)M%qH=&J4MDn+pkYsf7Nyp3d0LPk3!acHe- z(eQsFoCW9q@W)8Y4^}@n4U>v%AB@L<s3?51+z(E~qgOZZIM^$j;tMYr5glXxnuevS zlwuS}%B@LpK6z@<d6?%vQFCiivANibJ633ewBB4FTvg>R9-VW<_)v6It1Z9oxW_gt z^H9`RCjMQExw9oVAyQX3NuHy1aETBKVfb~k<&~(HQ#9W0(O+Val7$Ioeq48MSTU&G z&X&$8@>5lERc|04-OXk}?`FGtg)KaKL3?;No+jR@r(rgUmWw>Vs;n}U2J|W)Q<fo| zTs~8oz;rHh;29u%S<`cd^TPq#+wxa;FnJk<3WC+je!@cSd0y<quvDX|R+|pysLwF} z_wjqM0-55VV+jLVQ<M@i|6^OdW3ly=q?8u1w%gIgbK!-@c7sM!ey`=|1jCJxvUBm! z@l7k{h^JLxDVhS6#0uO2%3Ob`J~dz5yln|tE%?TQ7sby$hdl_)QRGb9(Ke*~!RLKr zkK5n9c$kqCX9o#Zk<F6CeG_YUV29|`S~)0iwZUj+4d4^Ym<m_V6&6l&W~_B3EBiv` zoYqLUXsvRv$dXmB)MihGxoZacmc}IOp->ne8m~nL*5{kti;h+<$Vem&5=3pX!}L-V zSG4qWab4B8zdCL$M(iV~FJKD7LT>D{0gs+3i1fGPEpUM>sGB9FCbdhKOwtpgVv34M zoVMQfNw2hy<1^#B^psKSlBKX9u=@o;fQ5b1aFE9eeJEqr4Ne6{m&;H1A%{hg5*SEY zrWkd^SXXPNlqL7|!FWvioVAX#SC&XMetN(tlx8PEpq~X>H1aB@E?7#*$`K^k5C)n0 zb~=0zjr4eqo~u*iyxI|R<IZT|kRf%5ygby3s~Ya>O>33eZN;4;#@Fyxr0g<@u_z2r zJl|y8&X6VViow)83W^z{iZNZKHEJgJVQiEnAEzV<`cqtEml+L!tOduA-mIT;hTPFo zCx0$$`bkYvS}TQmOS|;=u%cBIMGKEz@-uTh3S~Nzp$B<LGqm?+t=XC$VI@_z?&lG| zwv7zz{TD0)ay2=qQ&|z6C!%;H!eC|;6%Z+O#jg@sCB~mV9pi`k1T`wqiUT+5xgtRY zm!mKOR3Wjk&Ej~*^6;Oa0<q+V9#IzX`c#-JgZqxm8RAtAq`&)8=dP8Sf(_MSlFsl4 zb@;WF;*5NzgW6e%tSV8y6tY;YxaTs7z$m&LMX9Fxw&J>adi|;uFnNT}lL7FZ(LKGh zu+dS28MGQzw1Zt}QG+NN6|1zs`4vdnI$W5(@k0?Qm_1{!Ivr`Tl|teY1X>T!kB*`f zP7kBjb3kX|{RNE_F-`frkBX|K<Jf}DheDIuPpEkDa?t_p9L$WkEsdjIR5FX-U-7as zK()dnMMR-D{1jCTb?*?jQ|uxv%OrI+*~SH1-hu6qFsCnPNBvhv)-;d(k2iWUNVxRX z8#<1-Z#ksMG*tJdIOsS90QPTEhlpixm8*mXRkm&`7NHnCL8l6qklpxBrw(HX&h{w+ zMLi;?;5q!+0sfANW>FC8)#3Q*y9AZBX;oVriW@z-?^l}-my7cHgl#wR;>$JOJ9VxT zc`L^&%R3+>iKslNFC8am?(aW-$a9me`fWtMgnlvjY)X;bRfkbHTcnhc1geyPY@?*5 z0UXTYQX(i0BdWYZ+xbu=s19=rvaSS30&(7-p5*x0#{0ZvpTIk>mBNPuIhL)M+M`Jt z1W~Z0^$IofgDR?he%&7_PwOgbHv33>e?wV8=TJNIEak~u-P~YheinR?dh<AqsZb-& z@33ZEcPgY0?ZxjRcwrRQu}Za2D*x1U7_s2;1+Zwqff5;f14#=}wN*@>VuhIGk=FxC zfXK<0_t3*Zz`5_=Pv9{Gdcs>f0V+#?C0&PuxDj^LLgj_{iQ%CK4^igMuOIY~&mn~U zoNQ$exD6DMY=_rj3X}r1vhM8T1WCme$2ZT2{uJ9r)1Z2K$*_`q{E<!jQm0W3NYk}r z;F7@RjU#_4N#a}xC*HU-;P1eT9j)L8Y7?@Y(I$}trI?$Mr{WICd>p$DZEfHQ{qetk zMaEEQ&XMwo@3ltNFH0Waea9bI=~(Evf&?G;NSS~OzF4bS3D;H%>2$gYFvV3`Wm>n} zdh6**&mXKv+l<{nu|3h7P9bOun4ZYR$>Do12~K|5N~wGwq4R#5>CBnRU#!#Q46P<% zPY^qJ7F!RWFH<TH=O)=4(Zq@rX>J+og}aBuvStN^VKy*^2x9I@2j;_`Ne0Hp1|Tx* z=7(S1d0F}xwLu^{YI{SP<&z{(q$8j-&@TPDk;$=EKZS@nbRy8b8nPC*>%1u`2Dkor zmmGz?@wycGb=U}4?`nb4PSn=vZeyiwMZe3#^nR9(u=9=@e_AWcM}4;=@w;?kO`0k- z^l<q?M@|C}6+F<fqDU%^TzS3-yds;8vPdM3u$6;Ro@)Ope;GTQjY_{tM8*s3_;4t7 zG!uW%9&b(X;BK|8z5U^!?zhk9->Z4wai*&JDd+K9oeje$QwP42r&C;B;tALDIh`PL z>DhQa#!|?S)dj{*8Zqq1t-+M~@{Lk=&L$P9HF%+#x0EN`jj|VN$$Nb9<2-Nam*NpU zRj>^`c1tq|jdzo12pmO-!k=2*ZN%Sd>8EkCXz6$3xh>9J4c(GDKG}mHe6Xy2s)v7` z6InpOvf)@YbR}Mys_iGmvH!%AcGk1HTZ!L(dYO+Ov-&Q6Tlnp?Yt`{t@4McZUcFw9 zuO-%(0L(fOaU*O&gJyg<w6d&ab2GJHPF4@u9o<>q(NmS)Iq1Ik^6)SBVjylOY{L;G zgih%L?Z^&2@pG@javvNuwP9<@Pjd`O@yOk@Q`yYAGYnEwh%F79S)Qx?8t>nCy;y*M zlJQ7h^?qwIcTZC4_QWyf479d}k$K3jOGFFIlb$W+ULo~PAUF(6Urc8&>HDbyRV?gE zEh7~iUk)e<;6k4&7B;8GlMX&h0wlmBmoo;UU@7@a2e;3oZRWsaQm)B=ymZ22e~T+n zd)TF6N#?39lr?da5Ww;5+zd^fkVrIe;p{CV?LG3L&XT*dk_0CgeR(Jr22Rc`x?ig= z$X)tkm@+<i*oH}GdV?`AiH11kq(cxb{S~*q7kUl`Hn4}CKrC>1WLhN_3uWC!-KHN4 zbNq}KQF`JSCK<DT4DqzO3in}I=duo;2RAcDC#|=pHIDE8Tu6klrS{^r1JCx}V!GuQ zW1}W>`sp|toYYj0<^*>RnIt-J0<BhFKZqi1qh{V92obD`R*yY!(1TRALuDitoB$^s ziM$kWQJfSkObpkP4XxY7tZ}H`^G@-L(L3|D<GrNYU@$yG_tp7{&0X+I&XZ*_o_9T? zz)c=6j>40kYB@S@KMMS~v!qqD@C<hlioYfW9!3|kh8!a-Nw6e{`wzH$Ee$#wl(k^v zKFi&#JRBOq3?LlfDQE{JKVuMHk{)v46leuHL4-k+h_j*<_6T^zN_oF{5G=4Au#pRt z9TDIH5F5<APe3egn8+)vh7kA5F}_zy%bB&(2$@WxBgkoFQmx=Xt)yh3nq<;4t=};` zY@eJDL3I1Rte@9w0}jjzshIf4T-z6R)B;oA9QW%4C*FaLW3dJN*c@IU>x800$}isd zZU`q(H**>L+Yj9lla`3GB7OLND)wx+q%hz%u9>(pk2`U*A%n3Eubpa<r<X&KQlRE= zsDc%Nt&kp;W7R8AOWL$YtvRLxd_}}~)dhQdf@6-xKE(=6Ct)bbq&XsYQn-DwxmG;r z{Q~5@gIIf2T1pTe9gK>|-z#&@-&6B=R4mRfclHMQa#oMNDNvPak{#^Xi0>?biY=J( z7?BVSvkxTPs8t;AT11H!gfI9D*bpeK4H$I6t8<ZX26v%SAg|etJFg$u7GdSc4+Am? zPvID-8`KHUL2@S&vDj#9!=rrLkC7*DihFISwP<gB4?Q}Ch&59+;3;1=atYCc70dhi z^y%hHXm>~6w#UO)I+(|0So=vDf-MmT;u1d$2-j{Kd*6e2KJ7BXmhZN_lb{$cCA%5p z&aJ8SS^N2sp~}22mq`1DxQKMTK^_j*d560;getg*xSnZaB8awglDnM)uY9HUN(wXI zihi_etv~$`h$V%_4^<qtOAtA~n?wtRSEi=p_Qe?gNk^q~9_D{<>F=)=kCohC0-hvA zLN(*Bw_Ie*S}AAFYV`}a(7$N6!2WC`xLIc<4VJDAX)Jh5=kib(0eq@c<#0e+H3lI& zm+mCHB+HjKJR~xzBfby@5KEpiMns;PWG;1&Wvkc<X%6RjVjywu(F&8q4ROQjaeH<4 z<>@LnUps}}N^c@yad^AU$R@&ij&0EyEus&!p@IOWquobUG1znYpmZI5V`Xu2-W-?c z>~c#Z<x2*$i3QZAn)}14xD+T}qB37qhf)mB6W@0Iv@_WrjM5oysR~?k5jU7H9tQZ~ zC>lhA+c(q)fE#G$9wMb?1re$QdDdi5wan2-(3p(HXi$KRpvMMn0$m3y<NZOw>t=L} z%`G5KcyA=iX2eJVTB)Eai9^v0?jlg*{^|YH=cLFw)7E%=ZGZnpowwuX8sgU4yU<VL zXVvHyF{cB**4>y<k=};=QJ!TUbJ<L${zG|e-rIJu_ma>H4RiXg^R<LZNA;poU02(< zgSENO=)Q9ydVX#90KHPwQ!JvnIZqPfcxPLGQcWz($)@>y06u$(2qk{j@k}Cu?(t0g z+xGsNOI?DKZ6j_7cuNNm<qPS0L}c52{cvYg#A=nrVe1Bk9pBY;y!QFqYdf3v5^b{5 znP9TB=Uf^7hI?Jl;{IKO@%B*H<F&>iCSm7mNr%44Ql0<>YRhz952aY6S)^XP$<FOS zz`UTAAVal;9@T!!7<Tt0@rC}m>Zyujj)JY0*IMh0k(-b6N$;&|lcYRp=f;*VZ(X<f zbY54b31j*(E>ql*i&v&_jf8V1EqB0pf)v?Y)#r%D#qBhRd{&1NA$c5^Vj*!Y9cAC| z@}GGPyUWU4@CV#qTKjQ`EyoU~0(iM_Mo|MM3%~k%r`k@NrnwE$tF68sYM*b-tv&B# z6n{H055zv5C|kWr?HfN#bdO>dt@fKq9p>k~8^uk?Now7F=Qy~QbO^kl0KmASj59`% zsuilTc!6sWEcIE@saP3?V31o1Ed*%7W?{59Ugl%OSmw*ZW<Jl4fVnbj4c&dpDso7_ zz=LtW4Xr7>M1fhhFk~g(I*+A%%!QtlzL5qQstLBC!)g?4yxOb$&b+?2JvH;0Pv{0i zCqd-fMjEfSEqL6isTF?&-SJ~6;}GB8aN$PsW><a<z1BoWKyz7tRcgw%3`G1DKU4D2 zE%mryWR8QJV)9p(bk<!z$?#E9$!M^!Y_wYlneS|O(S&nuw!FDvDc8*#mHj(VQmMsL zFW-inn`CqwSbzCB%>1fR=YRfcGVi_17MP|yj(OI7(Y(Gi5!JZyxxsN5*PbBbZN-@9 zkWZsA__>|XI1tx#-oORxCrc)pRsq0G$F3i^DWNF{v=!?8Kr>mAyHYC2F~j-%%ll34 zVHfE2#RWp;m($Ug&&$oWs5eeF+NT5-A=ItVb^~yRuu(wDr!On(b%@6LBGf<4X?}{w za!I3HJx*jr7_w^R{Lly%1_wjo?j-|1bZh45x=K#kWxn=2)+-#ZNB?P5)8i`NS4p?g z%HaOlb*qc4i(%JDNlw!2(aEzZgS4)dW*MgAD{-xVD5i(TSj|4Rj=w5xthezFHAoK% zn^_OJqF-C88PX9nraBW<Yb$N_;~gu<ufA8C^I-QC$R~7d<BuXE&1R)nr!){5aqOf4 z!GlLJ!?$u%4e%Ob+Trq~%F(hx6Pb!)$oP^n=wIZV)&U5pHmpL$&`vUOwgEx7b4dx+ zWh!Ah3xQMugzq!RnwTdk%%6&d!v~{?HbMkkwy##KWqL~|%Feld0+Xy^e-!YP*RrY6 zWt%&_Cu_Acvx98WWPMuhZ99S#$R~swrtK{!16AHs1E1DbhEB~cW+T;(q_75EgP^Ne z4tOz`*3{<@h}dA+Y_d~x2uzu8Uj+soh!C6?gn|o7@Gl$o&pUub*wI)pF9s>0F-QPG zvtgbh#)H!(RxF)6O)@SjGC-`-ssAY4h?k{J)0~K-Ww$rUI7t9cJp3HdiThIW&HI_C z&iOr`12%)O%ID|mPu^M}XZ8c%*|wK_{1+JYE~mSQL04s7heJYvkhR-==@bT<EH3i? zjL&CT+NJ#Nr|#am`56lHi>AhWUZsa)*pp8DlfJUP^AbZ(qI}cy^Lonl1lgZz4wI#H z!Ob8#BxN9eB{qM;oIm_rT5L9jFQ1tlVrbwJzOh_)qg(eRo^H7fyo}6)^$k_cKlb%D z+WwpTH4Q%x!q7P)+4`-Ebob}D&$~e1eEIy!GlVOa>qf2UtW74Vi?P+=lVMn?VJoD~ zRJ~?!G>c8^(5<Q%`(Zw*VVMTA(r8rmXzpgAzgYzvtF4#^pQ)|b1b;(GN~9zs*Mgy8 z{bdo%P<fe;uGi3alVsO~PMp-pApR-f$4$~E`B-%?3=8UM+)g7pe~B*fWTKjeb+8$Y zAlVs9Gz{AT-q}yA{aN7`sybnWPlddPR9|I{F2?;$)yhgX#I<@2gBuzHTdHQ{zUj-> zfvXw7sR7iy;<T<J>6Xc81P6;BrDHXo32SfH>()EOE~hfBZ>N%*?Ol}a&o?(uk??D; zahSMQGif(lCok|NmCf;fMs>Da_%TmD4vvf0XHgW$JjCqsv^zWOI;^_uk53&FT+VT` z2Tx7%FcCgMoaG8r`xwhoCqqD3KooJybR<7OR;u+DkUvkU97zOQP-hiC<ft4Kh|@6F zM(1?iO3Ay!-EyXRyzrFI(#kh_i1kTuagtYhinU%x;DXR_v<%1k4hwX-Y@<@1+-73L zZah$;c3oEbtl?&Sd*Hmu>Bv1?D{h74>XP^0#UiUvLykEtqN7MlDbE*$H(rb@3AwTI z(1s6PysX7pDmQGyNrUlvOD}}z#Q7;#zN_oS*e(RmES$^9`00_rD+Q;3l8}#uPec*Q zrl2Qa0Q<y3)Mc(=5hLQJf+&-in<_QB(Hc7@N|X(20g$^!Ad5GqrlbNqSb#L9kJq4o zetCGHf5o{P3G;l~NJe6iG~%q8HkE2rzM;FJeu%%JuH7>BlKh-w|5S`s3K{3w<+Eha z@O8n8#;gFL6CP~ItUn5i;{i_*TZKPaze#bi<fn>jxr&yIR+AQZHQQ)GAiZt4?AoAG zw+<)->c*4jph;$cGoqaFH5`~oDw>Pt%W@rT-n%^3bI+1yojQ*|MCTJHtsiu*$P(Lh z^kdQs*S*l`p@#dZszmqOQ|f)+-n1dk2C}c)Mt$=2OM}6w+Z!rgV0KYFh<?U=(6`U% z6)acB*eMGUe!=tb)ldes^LecqDR4-|fu9rTF1|`^R~02iAn7@+KBh2{5S2+<0_;4Y z+JfG}oTCXtHZ^&?Ha6-Z-#Oo!Rt^!3#GKA37|+WEhTeSdUsmMvp3d<uCr;{Ojp@#L zg!^=t%(o=G5Xe7+&F|iu8!`AmNR33jQr(N3>eq1?az>Bm4&$^gt#Gt1w>&Pu$vafM z3j-DXaLuc)vk;|dAz7+*D(<KWn>3o<(Ni8+t(#Oot1n-ai@~>It(Rk`;8C@gW<HrX ze)C(+yLklVrcwMp6$J_oi4()gcpc7lX@?-{Y(PSnh<BMg<{yKXmH}$ZHIo3k%9S_m z-@r8^342SYv~hQ!D?@xRdSbu*D%q`?nxVf{95KY}?o(q_P!lK?gL5{ho8%weeVgb; z`@>&y{pBt1P-gtAkU_^wO2_BNNz`3@&8P@(vAS*#Rm&6nNRFf``j|<r<pd>W_@VP^ zdmwbqBGk!{ojlnwMIMF@9Nhk{=4XpZT;1GGCEv8?_J%{+K*iuR$$SP`#!NP^&Ws<G z82B}PJ*B<SWu}Y#$vI4tFKRmM-?6pFpk2)DiCbq4vS?OG@O4S2kEU*7?zK8FT6`9I zbdb|tO4rp7H?N0qw*nd^sb3H$UMjlYKdZX0-hp#_POUmH+_4Sm!%ti`AxBGP4;W?) zve1sxEaK?RRAU&_0VRSRtHj}dip8$F1zd>(%fVhU@!9y~<dD;2oTISA+B5;d^irEZ zed?3(uTh>U4f2$I)Of7OTO;<NW|Ux6HiGrllsX~=zfT(gh+qZ7x6L;7CHCE*O~FEX zbNdulXDDPb^cVp9K|%O)Q3!_4P`N<cd~?ZZQ?x)`2?I(7nUKKqG3t`eL||WyTt7-L z5xRsW5-L!mbnMAWFjax!Go*FF6_uwJ8r$aeU7CnEFq6OO;Agr>y`W;qarFAKpOxr3 z_=dvs1XCHd`M`Z7_+oa--wLZ2C2Pctt!sn8JL_Bh;yX&-;2`T0`HkR*K~+s0)PYH` zQaY^x9_z|4;8M>v&%mdobe2qb2t{P2MoMmUU6>q7xCkk&GeJM4Xzi#X(j`KPdhVCu zflSzr)mP@(NXTGcioh&?;p>d1WSZM)?RGa`&jXv~L<(iZ;|yH(M#jMR1<h{3Z+GA> zHzte$&dY)As~lZuvHn=Y#aLzis(iz#MvBMb5u8eF<ZzyN<~2|bqja}q{TprF_3z9q zzDCz%`F7%`D-^jydcM~jARGEdXD<Z~o95m4%SYJt5)ZPI{Fw=+TpyMDa)szgt?E}a z`O?s1fqc0y^$8RVs@1B@USwrSQf!-jVF?wI6o<CAd%U8Z6Y{SW)0v>{(fLnrlfDfm zKjFnNU-A868R%E4IK7gdo+ul-cqVF&wgx92J==IGmL<BK1z$?z^6axDtK^8OB&lLl z5|d|&MgT{NVf$aw(F{dTQ_<U=fA!>Fd~=M9pL{n}8#pcDnjPfWQIcE8j%JpIy#4Xm z5*BQ8xd=O&2NY80fH7qzJ6DMMJq+zAY7~Y~BdghFT}3<Cw#_!sHdD5|1>L|g_N?qI z=`2c?s~JQ(D$4jyqCK?FGt=J8wQiDwv_YeBe}&q%ayo<u1<?xoFh9xMW8ar`(X;y3 z0ikhWmXm=_5k>qp*Q(&9R$l(=L$|)C`sm2+dEXUbEhN2+8DeF->%7#Nmg+2guWI;> zUCe%LVNK=3V);T`P;a~itJKC8j8>@vfN`!$_z0P^6M&ft>(jMEll{LKdk5%BmVSMB zCbpeSY&$!giEZ1qolG#XZQC{`wr$&X@@3BZo_o)|>;13$?X`MURd-c&?_R&^y}KTi zsz&fszGM_3vbUHU1JMFI#qBOc2cSkAKvfhEqXQ#%WE);TIN$-=;1R}S!UDgZx|gjJ z#YR#P1RXaUZXz=jyw=&${!PjYAr<E0_jk1Zgqs065KMxEwKp9+Z}gyzM9G*K5R!o_ zpvnbPo6Zu#rp6imK-?TRlNtU{Tt2s=SwC%fh>M+BE$fY*0e_6EM5o(64ARf(p^YcZ zn_4GybXXq8>@;oLjz<;t*7%OtRN(Yc1ycVf{~2Rq>H%POoJFt;pjcRpp<3ivLASk& zno%G7$))*#GqEXq-0nM3*c(rDj9*AU6^j6pF}{0~nE-C`d<kC_p4s0Fuyy7-tzfLC zI`v?LSVjGclE6H$VY5GrzSe@-q;nSf(8A(-4p>i0=iHiNZ8F<%bTx#>)W2dSC(A|f z2p1c&H^@iK#RcVR-se0!Q6LX;XG=(sp;C&uuN3)2fxRl&#I;CsXkBf*Q}0hRb!l5X zAq7gkt^0}&Na2$lY}Ujv+P7*O!mdR!Y}H%zx74G*w@F1vj_B`=<^sqZ45}uwh*O9Y zdPKX9VMXB*1}n{IE2xIRkVzG$L-g#8>HGI4+M8Z3GmIlod8Wscx<Cgu&ch7*J0d)h zN1itUX<v-FBDq4Vr8zP?M%a1^7_nf1Re@9YSpjumij2~aDBeHW5M<q~cf^4iVAm!6 zOt38S3}XUZiMWe1Qot-tCu6{tOtYl@YE3_XRys4-wD!4DFSth|4g#%qOh&O|U(#NB zj+{9**9|Rm>8U)Fmc|)!aXmZly6PLL+s(yGG0Sueg~m!SZ#lhA8xMrLe9qX$bo;$+ zULT9;BHvV}kGd8os(jOk&1Q?EcY;HdNlYO=ZgEguF)A&jH|`kL2s?dj4!T0ZvPbsg zGd-UB-7B^1!QaxMp_TYhv}ZQ@vTQ{XCQ4)}*pD6<D3z!#vy_VQGW<BnW6tugrdKAk zD!3|1Y$*ad?6!Uk{5p7diSZ(4uQzd@5L~GRz(OVxFJ)9kh+D#gf%P$C!j2+T&KVeR znY^MqU$9eSZXj@?Vn5x#T;eWXzP!5+=&vsx)OdgETCu!s410L=y>;gPjT9Rhh=VJD z3xmPtGWb2!B@<&iI|lqaJWmK<<v=kPhM9QN{cvQU<CYLUQ7Ylx{wRhmQaC~^F!ZW+ z!6GhtK&2qoAZ{H6S&2g}{u_lAZFBO-^{wnaEKEQ|x&M(X87tMhIwkN^qBXh{Uc{k; zP^?zv>?5#P;HzJWv!u-|2)4uziAjfkkn}n^9ba7JQ-&^9HOm~b5+1iG%9PDG$Q)9W z+`>|M3R_l7Z`1~M{;3N&D1pW#d;_3D$lJKwFb*-*k#NLCLHDym{#9+|MAr!$dpc&G z%56%~vcc)dmayrOZUR?UH{9BWw*>Wyk#E`nq4)5GQ=0N)$B=EebI2t!`g)A2JsGq2 z3#!{4FMO$|kGS>Ax0meRk2(=GMUOFY>m~&Z{$2RbQ4*;sO?v-+0<CdfNuP`2pSIa; zK&tgX=@i5Ar~z9UTQ9-GPW{b_=+yMx@tXX5tN}ro&XZ|g@-OD{X=KyueAcj4C(`-& z$FiQ0$OR>f2WBlCEql|ay9_J;jUi9bnkeOV!c356n~4KC_1%l!d)781(MuO?a|9j) z-Ez5aFI_|8Vpq*v>-$+DIu1*sbt*i*RfSu38O}Bqn8bV$J=hX(_Eh%YTT|709Ip{y zJMuA#n<R@B*R#3GYf7wSBb7IDy@cQFr<?M^QxwLy&bZEaR}b3@TKU*`AB^Ad-!@?S z0>%P5G08BTlN}0<3i@|thw6tkjefc2HP3rYzE+c<ES!=v0=28Hf5i}CZT<?qf*E0h z!U=)pe)qj}0qw`Fik}M=NpX0h>Zm7r{|L_X>NmQZqydYFL{yAG+{ncEU8Nc}EhR)I zmu*9qDPG>TG!R%D&9*Xv;?bM-k6%fBZFqFh#F3JN0j=n)@FZWQ!t2*gXI(G{@f$d` zjDjNUdq=1-hhRe!*%^aUvFUDzf2pI<QHfAK{Aep9K4@ycstJMF%M41KBaZ)$NJqwS zapN7C$YKz7Y|~ao!dCQ-Ne8_v<jBYR4YQbsxj4ImVA{r9vR>s|7)W19!Q}LQK+AIw zpw28QDfN?b)>cqlY{eT6s4ixooy7_JR23Tqiz3tIkDwM3MQ-a5%crfX#Ixk<dWB0+ zCxBu1%$Oge(Lk_jf2$}lEvqm^3k*#}(2z@4oxw>MZdN6#v7_Cl&9;CD<z<-0DXUP$ zu;>uAC^@6^Thx$WK!})SCaTJor5>RiLwf5Hk<=G}VO0uca>JG?FSjfz$^KoEvM+)V zoJx2{z8@Z%g55m_t0-r^Ri<_HQk26iSKB1iMvD<V>z|562GX;LF6QKD-_u<nVJqs% zuh`y1jDc2a-VN&*9+cLpaJnHRV1Y0&y|`G1p-NjZB+zW0YTkVZ8}6uwAxs@$o`P+* zL)|OlNlzH=p(~l!oK4xJ(<R5e+>OAR9;u`@jZmEE22Z<~Od{@MRxD^40t?MQCK+1n z($k|j#=;W5C|$(?=+x!q2XUPRPxVtQqMlXZS4^S=cEk_x4ex<QXJPwgCNrqIAki!m zq&E}-!$zZ`fm|>f&cZUMJA^O?=mlMb;MAI&b%<q-TP`p{spOFR-WJ(bFBy(#u}lnB zT53C5R8&wR2u*^V9Y6%R<*PU*83auOArv*zZKLE#jMT!&={^)gqT1D@STaejI>`QF z*EBdSBe{w)hLrdVx*%&0o1~N`ryw3omcum!z~cW*!MD{5;4MhH970qj+Sbg%!sd&% zQEJlVRg$;Yyr0dXFhDZJcXScFY>A(ZG9%nZ?R7&CSIi6cAC#MxC_YA{jLC-h7BHa^ z<HySYF1~=Th`f!i<Bph^N16ve<sNlyNf=HH%^-^6?CRC5l7gF<o76DTJ8iHl^NXuM zr}Zi5Y(%x!QUM`Tcex^hnvdOA#FmAx1YtU;Ef0+lGh$(nT?3ahR<FDLQX|d;M2o$1 z`TUv-8-Ymfn=rXhj4eU@3#mWLmYyv;caVrO{~4N)1Z=sYd<D`4V;*_Fg4eR#G_U{t zyhyRpt5~Fb^?;g%wxDHFR#{FPiFOn_n{G2t#Td5i%$S0&*)lCd1O5H0_}WK{a-7@| z+6+%+u1zs+K@+43{J;Ro$*I}$249(Ii;8cI$lLskUDR=HN<)H2DZ{!Qk6WtCl2@<G ziq0x+_@gDCnyOf_q>;u({Vi_68>=23VS*ucsDhkm%d&VLLUF&Z!bi;*Iw32cX(>X- zmrn5=CQE{2;d4hX4_caRrrHkYQ;`cS2^x1<^qR)meoy(lNrZ&dqEpB-*g~}E-O6k^ z(R}>$qnqkJpyfzvVeY$N{CX3~)ow&eOFr?rD_K#b0CEEWMcz98*m+75sj;p`(se10 zq2=A3$Pf~AQQH<z8+LKs9LoG`scNtpZyT9wFSN;PbMXRY{p^UrnWDT^k2im3y#iab zOQobjj@j$5Qv!Dh<O*$$Qmk?GX-~Aa39ZQ83W_y)jx0G+q9H*#>fP)G->#SheyuFW zQL12j<%LFZ$V6OO)9BL2iBpUQK}lCfZBDat!Y}fjxW_c>({%ID=h0<<5;2BriELRy zl!wfmru|-VfQbFxG=SZ=f9O3os=fN_2_mI*(lKLbL^j-&e03lNafW?t22m2`$MAs} zx~w=m{cbEH2HvN-36BApOe0*HjAsCeP9yk|;ZcC=%16#kSny)y=gpaagw^5<Y#w$@ zK?e90*Xt(U@oR@k(M@Mag-r&{HGpcI`g_megao&|tx-=hx3SBZav?Z-=WEVj@duEH zHi~L`rZX!0#u>+)V?pShqpL8gBkEH6$7997)3?|1)0J)O;f`?<L+_83jp6s&q`0^E zTfm3iTyc&3?*vaLRP}p2i%9v8=o_Mdbr0*MZ-N&cK*AjT?ArIn0BsM`qS^z5NB97^ z1{{NYbZ%~N$!5Xv&*_2!ToaC}*WV4m?r`L16Z|IHD;<YCN}cemJm6CYKR$4ZZeO79 zGnXbB1lWX<P3k@;Vhw8_P)>E1Gs1aB9Jp4VsAJnpb<k_iFb@}(nq!k&^n2h)-Gyf& zayi|cY}E0j?4R)h3dU?4m@H_q4n1^Y$BH+0SL-}x0wlRpAJbku9vEmIcun|6z>Idl z4i_hzeUjaz`?w_^s+>{p0F7&qrOM$pLfxR_^l*8_wrRE1<P*t2_cdR&+>@tA5-4mA z<AX|np9JI}j<eT>rq^C2r<qgk$Z~7YsyF-urQwW7@21tU)_-D}ar2m)!Puy4V-V~x zJ>m~tzw6m0oKg)-tL!qDMogpRkngQS@nKnzGXn8UCQ#Py|FWF<bEcSXQu#3PguR_d z{k!5u-bU8<{EI0nXapyr30A};u}^LMr40h>dAjWJRUD4Oy#!q_<(qv@6={kV<(lV= zkua)xPM*bm+I9Pv2e5OE&I}0*6{Im5nn)!$m^gvb>djav8Wnn&RdW(#pe+$V%^;EI z589}p0c1FFk|;A=Okwd&NFuDEDnup1P?1ICh#!EkSQ6h$`q3Uc41U<|o+cszLgL_? zi#`8uqx?cHp@W+KJ&Uwq9^F^xr#FKiUmXj^G5-T0`7cuOAJRJm10#UpPlZ1PD8_#f zy#L~D3t3w^2pHPy+nL%pSbrL^eio&4Ek8Xuc>jE;Buw=T?Q|VXt*zugH8!8*Y71Rs zd;CAjkk5*L$#!U1n3?ctnCO{4T|emQKPleqnslNLx)!GTyjI2*hWPYQbiDTZe@s8v z=~@1$j{a4kVPyE!0r2bE{B0A$_DS8AcQCY6!Uudd`P2QUH>@G!rv~T`JNl18=fA$g zKU78krcg7pF#iYT(?1#0nz3V6rSu3w4_v<z+e1G!N|Pewaw*JmXm7GJFJC~?H1e?h zaB2ou7ML<u#56&^je7J1V;-EW865<&dqe9tI@fZ*b-<r9YVjY;cBO-5qUJqkr_Q8n zwAynTx{jV(CoZKszXMn$6FLWs6WLd1*Gll<&!rPO1J-|aWzMc`-0`emRL<OPq^D=b zk0*%Fwd$YVtV+?HE$zj$Y}{R4(QlmV?-p+Eu(Au<Y5&N_c6Ux*9{)9;sWETTt}y1* zI+}Lj%}oVM7^weH30qwkl&_{--82Q_rNg=jTZ>x3Vjp}5YEL2|J<4Kc@W#6+=0u>8 zFiKT*>n)(<R#7cAihY~-Om>;#3QbFhj&;E}I+R%p`f9$lYn>eH-3Q}M#B#}YD)W0o z<YRXN4)nFWjLh4W?p1uKyR#yBOIsZ6Js<FU!!BV{+fLfod+0^l^rIQRt8<^4#Cx4h z?1j#A)0za@n~LSK^05`+mFoQh<l{IR^IgeoQ~I@?{HZc&OL`jlorM$o5!oBP=RGg@ z<uf<&)29<Ppfmn?w=-r-LVi$x_~6j|RnZxiAff|@HQ6=ezN_`(1`v*1xcdMJ^mZWs zpThiq>k$3~&VQ-P6h6gYe?>W;uD#)3NB&=7ZE9!lz;B{!_a|H>bpM_Iw7>b6p^d#d z8w))?3k&OC8-R)Fuaxm~j4`sY;j?^({hxhopJi57*1z`s$^WVUr_N^z^{39CGSk1? z{$2jN&p++{x&7Uq^;5p{nTPr$?)}yNuRi~M&Od$p+5dOlzpv#_`LFYQ9{>0Gp#B{D zl=A#*$6poyeQ}?9u|GHFzaIhke?1~Tm4ph`idLq7Ndy`H47mR}1pgs-_*=#Bmo3kK z7={0>Vxa%j_Wg5A?zy>ppeQC>HY?6mIuy3fxE97bkVv}h$r5~n<RzBGmDEF;7KL!| zi()>4GZmedYys|u06{hM`)MLzJhhcw3pFf*sFA}-SzF6=3>Og*`84ke!E^!`rIxz4 z?{gFuy<c64N5JTRd+XSE*ib4g8Rvdzn`k~*mqI$jgZTLs%m>`qxRUNPtu_nf%Q!HC z_(4Gtpz-Eb&z}y+rnR;E#Qo#`^jjt{#M+k>rW5xD2T*6rMG&1qkRa(}xX0J*jW$h) zD6KHYeP^QWft^TGo3LB@+*UTXh1!%6aobn?h&AqPsg0530Y;lwDx8V4yERm)Z8Ddi zFf<W;JlfXyRjemS5yrrW&i?$-hrHL@fFJ9%4m_)P5YF$%;FLI>KCEk@0AD;eOaz4) zh5=~GdZE(L8SL$FQhQ$##CK)QlADr9om4Y2;vTg7wsRyjJ|qjUq$UaBg^V4lj}Nu% z@b>ZFR5nl%zbAA-GW?CV@VUOU>T>F3bQ;kiZm~QPaDDoE_7E&WlUW@vNa^_`%BX#B z`!b-5(Gkw_x^Q^z4}8fz+ku6J59M`DuoT=RJNrxy6aB@5w~jawuqpotZ1zsOd@JsP zy)Mv%b3N5!iv9%aii|6?!nS!s%>yq>{eTH$3(t@DVDCkC{D{4)8hZHAqmn^dYU==R zR<NK3@#7GT$T>H0<5&3t7sf}r*+H-OkJp95EiG1e1m7xIM_dVQV`&et{BAOY@9#Wq z{VS8sKhZH~#zn0pX}rlE9&nuR5OHvR-nqOC2Ab??c|p2OikS`SUshHLK4N|_jg?(7 zs045*`Ql0Gd5vE>|3p0Jqlx5y`G}gwroEFog%<6WHi4CFW9tC6{9rM<FbwNo8P6|O zcICDlQCCk{lN`aqKDMqb)jTdKt|-yiE>rPX$x%m7pd(N99%<7nE~?VGFH3f1I&Efe zsLKPX9m1%LoH1oFi~ns80ws{_Fgxgxk+gZeWPaMQ+znJsTHe}HmDPWK93_}Zz9XJw zT3K#L-YSj8Dd0-l;W0D$tp=H*)hf%OpFCYYu9uqDS5V=XX52<eLujsnVlDVq`<zoH zx%cp<5EwMm5<V_CJNsZ)S<ZY2OO3hwgN!8jvWU>Ft>S&j4-MU~VZBF)vqZ!b4S~Xg zr+xlkS5H%Z5#gBZ6sz6V^&cdzjb)^mnM*}9R%J=CE|)H$C@@6Vw1~~qN9#qUz`6HE z``YuvN2KU#3U_o_KfIh@4z|I&20o@_XM^whd$>llt7X*Q?J(bR;iE5>n(um0)^`|+ zNx!kg3n=X+pKVW~{%}6c)at<9k*7cAx<Sp#8dV(1>x<>5D}~nQX5Os{t;mib*f{Ln z<Y+Z%fDgxj;ori7VQb<h*K^q3<5pU_%Ti`_c8L9@)#s=z-k!GDwoGL2N?W}Wi1Aun zbwFLUPb@Lj^s&sWqe2hB*h<5}3gFI_QV9fhty)6H4y_u01_I=JRE|1MCfmm{4Ou!E z+1MF{wD&|bms{V#4Do5DZ)o`;ZtTQ@FX%e1i6ZN>jr7x%vELJj`>N2oVwMLf%{}?$ zl%)jo@>LwcsIbKu4vvEL)9F=8mlx?6`3h1u=3-D5_G`^#zgiqi@qZ-*YhnGa1Tn&0 zQ;YSrP<lvZOr+W$rvpwxr7DF)KH*fCeMpNvUeioTvTCkJ1%;KpSS%ny>X&$e*<uTl zc>qU=KB<iAz0rjDW>OPCj#5pUGYh3{E)I|nRcc{07B#Rzvcgg3rQxiZGmt{W*`B0Z zxrTf>UDE?G)@)+fw`Evgvnsz~R%xxZr<#R<l$y2e-<E>iyU0DCghBm7HMJ0xJ1zc! zFdGvw2l}h~9-+r@3Kz|~5e%Sby1QJ1*ewW^w0H`}H9`fsNa^tKkt3T@O-ivoc6!z! z$gae!oP9lQQBmdhR$URf5F8Dx+1V~i14Y`To~P0rBTBd-7LD7KKKx?)y_Kv}3->G= z7A~402?q7PSVe+1TM8OA4D#;g?e0%7d8a+~LU3iR;ePp^W$c0z(!xH1^7anLAgD$v zpszHQu|5e^_PoCFcR(#!XN&HFOthvAS%E@nQY}fX=yC-293N5bbG1RT`rns~*2ElD zvodDsDygY|&nvO(k+r4@rx`e(P)>*&agCg5oxA!FX($TkI~#zFyJ{hQO@kScr52p_ z5dl|_gNCaMTYrv0)`=Q}g6Zl{&jrDd;tVF5WFPLc*-y$zmWW0Mq#^1tjf<LnwOz)r zirQLa0b({72gJ*t%(BC3a2bCiK)D0b)9SA+jQDK|985NkxND|+D9Z@Qu~*Ya@e|n! zQ*CNJOF3>(%$NcD!Fn$s7=PPsCwkIvu+tz%^lX~FdUl3;d^z0*Mv;W|O2Al6*U!9! zo=afnhhq${Fzn_|(x)urAqZ1h-~yXKE=n-S6V&WH;;;1EOd5_>lwn8mB<e{%g@TSX zp5W#Jia`(c%j<xPl>%?Xj6b+Nm$<z@c*hzvTG3!&9h9)|ued}qz&<Kxkl)0VLX`i) zyPrFedi@R63G%H8h$3?0FQjZlY1Cwy?Yb0vRp{kY>Oodxd)D=+&3mlT66Qwbc%;}Q z>E(qA(JGm21!~dlu-**Ln}nx?r-&Go@TH8>{g_xe9FkD>?B2J-PMEiufo?zT49|z$ z#7>XRVnsjo1#5M8s)tqXoz9Q!i)-oeSiu3WCyt?YruQMwo<K9)r=)KSKQOc@9w$jT z<9>r3lyk8W5m0e*YNy7={=SNkBaatv2GJUwx{gXWoZc(Eq3DkzY-H;jy%C}xw{s64 z%Cd9sDp^d^@wsLWZkHcnpiG#(PQore4Csm8lu1K0j?dn^p$b|Xlr0pa359fvKUR?# z#v$#-hRm)QYh0D%n8`3F##!R@vU``mUwGgq*tZK^VPo@p!8^Wibsb1Bo(7D;%-IJo z35Ry#coQzp5xs!*l%AWZ(sx{+G)wbbpFXsW>~}mlw~8FOYJZfpaknIRYJVKoX5K8R zJ8_9p_pIEnzNcS(g!JWr-7tx(fSKa^E~pY004Gh$*KufuP>_%*mx9JaSXs9vk=Tj) zl4Btu*RHM$)P7xK%hNdE;VAndCQFVd&hAz*Pd_j$r@us9Kl-CHHkP?|xTw$!_A5*0 ziPwfRRKT&9{q7j_3xxA+dE^WnG-u<gH*4f;q32SC=eKgyhjquT%nf2xqVI2BliwBG zA3P_xMdA0NLL<Vm;nAALOqq&qu{<@>)N-qd)nXLXfUT8M*&7!uBA85Phh(;jWRT*2 z6xl*XBt_4P89`Y~m*K;O`xTJJznJpMUb;AKB<mj~AUkE-*|<(|y$ifnW;DBHXmibe zoM>_j-S>S_Ku&zhgubJPPGCPUo7I!!GRQ0Bk5NnFCezxLm#<A}k3t;Zy!8+gDoKts zzc*v%5}G8a{>6;iVHc)#tZ;h>C8OVK6mOWzep5|rglgLuH|`u%oI(hb&%sWSnrCGH znnCyR*xtC$6;o@h^I@~#3=UpO*DgGd$`xPZ__o%%&w92|U7N7#bUOR{9u&9HdTd*1 zK;t1GA3P&X#M+K!Zd_AE1<*<|`nm|PRlTb?#;=%HGxlK+1Wq}nZqHvcXA&hHH<*Tw zG95=@T1$pE#2r$=ejJs^khXrf4pxDN+|)7rxh|uvf*3cs3w^(esX=|jH)=)D5M&%z zoM4If{oy@yNBO=@9E|5FY8O2-`RZOjcPA0<eH*+7WIlTT0`L0|m}_){jX*jcO|%Yc zgV%cJjmI}4_`Yk}yiJaVZaHJz%!DkKe$1U6M_W@{)nv7pY-t%1envF2nk5YDn*O6p zXd6LMQAnkqa$gvb<6mcV4v6)F;t7+q_eJCehJPwiPPEsr*}1*2+s-6+ii>eYmu;zM z2E%+$Y4cmzQ+*w6F091eQD1RBaUKhH!NawCt`yR9tTx(aWGkZleW$oJ%5dm_2BQpS zki^tPyq-5-oZ1eisgX7gBDyFY2f7!9gu|R9MrD9DPNg*ED4$?LXCJ5QXm-lAzb-3R zARF7unrZsd5caLBHII#PebGpT#aUO+SZ?9E#?9)ZJ=4?aV$PbT#yzZcx`><ovB`IX z#FgA}Ur!oc;Tt7mk(+QIOL34SNikfhRI!%4WYH{$smX83!IW_9m*j6{W3f1d8JL|} z93KaAr+5pyrkhTMxFEcx&?n<ZfVIP3cH@Y;tOh<|364~&&hx7CI4g<5h@CmgSRoP8 z$>Tn5rhQvbdnf&OAwl?ieppe5%iaWcQfH5)R^xT~;EC@a2cg~Fm0qLUYJTSLkwt8v zX;KWL;jK96nOK<xqO+xUMvcmm>WL}V_oT&=IJ%)3f(oWe!_%3o`t(c8C86vZmsr8O zC6Z0=L(p{Tu18m41M>1G7x!ygF|sNOvhi_`T43JyCmipm?dm<*c0C(K%_Qj^?xuJ& z-8^bR+$L~wyn(fKDw!#)3&cUSz0B=ZS*uAKr>J#8xr!%JBn1jN0|7eqdc)=Ws;+S5 z!1k5-?LU_X!xWT|Bs&c#CY0TL`Hvv$P=-&%sM4dASw9j~(9>BI%VO)h%)>k^T8Rx` zw^%GG9Z#TF@VEpWh#%y()6Lne>pNszwq7RMGhA9bmQwV~xNe^J*Y2J=gf@^h_nZ2` z4(@-~KD6DI{H`2PYp=01oF{6H;M&w+^76hq<&az)-GlPbdK&J#GgrT`?oHd&n)vWJ zBdH%>Dprd)7$YsG;O>b!yk8#ewO~#9Dy{tu$9k7tDj&#jrBii7hHH$9LVV9|F@pEO zJO9Xb$mqIDeI#>{k;m=45WK&``Bm7K=s06;B~zvPF4lFY@^xF-8eu}7EMUg73%uXE z+WQr1<=|Zs5OEg+#Z=8dk=#XQ*moraeIE(}ZJo@r5))++1|HIzK-SWZ#gwP19xc!L zG8-Jo5<Yuf{0oz5LN<V<bbe9X)X8WIlOzFS`E<~SOxp9Ld&v45l43HAafQKAhP2Y$ zx6;$qR;#XvaP^0BmDJZ^XK%iSaHmRcp^RrrTkFu=M$f*C{lbdJhBJ10FQ<dX^NiIK zf7HXkuMHg7=r;8@%0dY-@&4Lbm2>X59_-2kw$MXo2B=%?Wx(}feb55%V18Pg)olHk zRAG|+P7+_H4nZ|P2`WHZ2r$*_<m^SEE^ey)J=V#qfdx(?Dz!$is<otnI)1&t+L*S7 z5D&Fi6Pe}Q;gVaou1K$k$C*K?9<~pUZzVU{)-Lh0VdBbop-bfz16rCQ9BJCB4h4YN zDU3ook%K3`B-2`-47wQH1PIKyK|2ac+Z=%yy-m;QnQ6=;&m()$Sh_VzTl{1atG5HB zX7cC<5<>Ajtm1%ZF?w-<ticJAb39_C_(8K^6mf$9fggl}R}lj5qJ$IG#c;uKVk0C{ zbkU4y&-nrYBsIK*R$|&?mm{)lbFU0g3Mcs<!7pNjc;dTJx5&YvqIB^=sz@Yo<=sgJ z<F@WhV@GJ3Uz4Ntt4!qZ1tlZHh2$&Na0?gErG%2f-0YC;$OG5!S*oE^El<^2ji7oe zOief}Hj=W4O^(SDh#P{(+J<NoIOcFq7et!2T4%781f<p2(v|M(TZCI0PMI2T&%8E& zTt}cUp57#<HkGgJ&#}Ed4$c+EdscYQ?T0@&^xd~C?!rfEa1W2ixpctkRLop5&z>_M zTm_?rQg9BLFkclc+3#=m+q6u|if>4nn;BW=^qDcH#MCZLkLZfiy%l_}W_2L#bXL4G zb=xN_JvDk{t>Nh=>&fVNo;h9@%(qrul3LdJ<o9fd=f#ql=J`m6hX3{gl=yyD=zaM< z?lhA_r4#yQ^%8E#soi#;I(Zd;?52^8V{)bBWeby~%GCi=QV{gY_R7i={NBYE^aFHV z(FNLN!G;W9`S*op$$~CXgnhH!=YkS}I39l26}%pZ(=r)Y9tR~9(*Ea>E_;0N9zqGR ze!CNCshs_9(E~;UbUW}+rhJK)6D7&V5_dAAJR-iJA?-LxyuO?^(Cwk$eKvj_S+E|- zzqbHY@oi;EBS!>v=Lh@*x{3OVjiT~f;#^J#wYP@=R7oEsLs19T;+Hat3bbgRgpZ>R z@f{S7uy1eaZ@0nSciZDiZoySyC>;34OE6GYKCn&@8UkN9;fb44)TAE`S+Y8CFnk$6 zJHaAJg};GNAijbs@dnuZ@R_4mc9HU7xop1l0W#NZIF<yR=Pfw?ptQkxsNm4@xvTo& z&g%nf6G*G*v$G|oDc}<>Q}W{IXyZwbwTg8a>ZLtP<`mGa{_J<sn!9~E&aNkV)uv}_ zN?zANhOhMNxhLC8n;GMnDx|a}x=g@=7qPy>#7AXeL3I{E13hReq`ad;M00il`BVex z2<G+)_)Ra{rRNovpFyaTa1t-OC?>~Mux~+xTu?Vm4@;Y#@VVEda{}-1?#>#4UvmMQ z_#S*7oM`IDcS1i;J#|_0=)-$KU{Bepg#+|NX$DqDM^H{+m?g}^$mb{k%9&8^1<oP7 z&})}e35^`{-bh_loe*#;kX|kw7OViDXM6|5G2ckSEx0>B==T1(j&Wnt5<23WkBE&Y zo>avOq1FV^b{V|q(FwFAUvw%EsEM<(H~#duQ*}Ba6B9z8cb!B+zA&ekoY|Z8A9dds zk4}!3d?8O^iB3317x#7QQq3Oj(#S(peRPkyvqHMoZM;p8nJVe0m+&BNvvD&w8fh1i z!*ar`v^y)2{eB@rI|-@K(}U?PE-0%oP2xd;PY%Y5V^<*Ns8;_F;^R&QLKIp<hj=7n zM)Y#122Yl;l_szAX_-bn7QT6%I`1~Ucl!05Gl+%c>Gl0N%m>O5?sghQ*FQJ5|B2&; zAAo*-B`7Oqoma$(1xpu~H<rqV{uEc{peGk1Q*$e6KSi_kGbY4~GQY9#E7OK>E$eSN z@pO}NbA;4x3_Nr!GD;B8Z3EMBs+7W_-}GQTQzEj&i}EPP+H@?<SXo%URk#=A>+02- zPrSV=f%<rS=?K2`7Cv4=bKxq8Mnq0<9pYIS`&%^Ka(Pf&9`M(pi_`ofct+BAvDm&m z<h}sbo3Uvz1T)#PBEwZsh&cjpGBJ}M9gYA_%?gNez_A~MoNTH)!Um+c&1!I*CwcI6 zs7%lU+l}{4nM?XBY8Wk}prY^mSWoL?fgGtJiWb?<{<E(HdbnrYn9Pg&)mr3AU=XwB z1_lA*5fF7IVj5&sbf##2%}P{GylgWjS-5nZ>50C=h;>diB#RS+JMauSXR^hyxP%?V zmKDjgbN81K8xRVLjXdinnhjz)w#o!0qczfk+UTt#K=(eSEspGKNS_7d%t9y;R_K@s z<lM@b4qj+srtM70i9BFI_glzDk+6b`r<m6BB{JV~QhZ$Dk6>qXccG+po>>AyE>#x9 zedDM-%NA6^(4@$|?+G_rY2l2^Qc6VJqkJtu?hHH(<tK404awz;=M)>!JY<Q6_iEI7 zbJO_>C4*JE{`{l&Lx-p}VKOhkqm)ojD&Q)CINYDGMue5pr}zET&zLRpS|>&^uRba> z-6UP8t3{UI4gtv;CAuW{p#iC4VS?svg3}VW^zKA61`iD8Z!qX7A=LTDvdn#4=enMz zJqk)KD)D_e2gcJ-A7UP@Di%2*^9Z$rk(nwP`lzUU>t7S<7b!#LY;NfY5A?5KDLi!3 zvRm{TZfg{$#*S%Wps%7RvK?>bdrPdJ)s7UD#G>_TZ$Czb&!B1{q_k1r<Qr~t!eNI~ zE>hLZfoGJ?3`o_gZ<woS5tWVy@&%;Yc!4yj*qp{(%gnVd1k14e01=GtgwzRwqk(sT z4Sy`GLsu+Po`Dxsz$5yHi_by~XciIb4-xjd=)U3B7{HZ;HIewGWzR$TCO$M`=a&rt zykGC<%&xcb1gS?xcd8!)Ys8ph6<JkbtjVRR{zQ*}O+%Eu@=$RpNJUIjL1oY*YV&r6 z<;y6`%Kb%!hx*H61j9J<Jo7wHgZJrdlGsOUWUb}LvwGs#t@`$BIaS|%YAEfBIr>J2 z%NF59+hNj0%b{3pyBOmZtDYb-(`EYkZQa|^4CG4TYJS5={m1<M0Fuc|PrkTiB1GL= z2ih`^59CUvb?c;)&!r{aT7TnPNM=<s4}JkWDbFS;4}RbV*+qNn;QjLV7`!IqWezRa zPL4;)3!F0y*vRYK&_d@~xoyVua==KklyVv_=hz9yZq+C^F<!J`G9K5{r0Dse=o4|{ z4!hmww4`rrL|}w{!H(nrJYJ`b#v~qlnzcRdJW11L(Gz*&r0c9_Tx?_p=kvHMsU{cY zxQ*w*B+N>z%Xgo~7X()i#qzUiKPHO{oHmyz{v0Oo9b}CHS)>CEUWv$ampF4gIM_~Z z4_y^{*p&chm<zlN3?=UCOTyHfty${C8{PCSLyjNI@Hjj+$G^?N`{5*TWH{js_M0P4 z6Cdmk?mKHgw!OSIv=Yl*D(&gmniBoBNN!6f1)tLZ!Z72VETm1n+1mtG3!bzq<Li(s z_yMP9KG4AWz^{v6f`uq85W^HZPtaC`+S0d@L1`H@aQ68C$32{WdG-06)62|o9g^W~ z6Spz!?Rnq?+N}mBCY5#dL?6qFBn_MzHx{K+8;Xxo)YWyx^rC!_8))0X!Ihh-j|iQ9 z%HM90n)ftDIBA%T3e};+HJP0P)##n{$B@U;YM&B7X^rjIEf!X+2x(J^n(Ia^nrSul z-H4P|4ozPZ`^CexSxa!OiA`adpfpWkRdY_R0*tYn+?12c$4QpWrVjI6GVP+FD;Ut( z4hbnphAbg_XN_nX>TOlTK!V1MO6coTosvLeMHyL=`3l|&pbH>l3xI6(NqIo>AP04z zWTR!TCkL<RUtgbP#{|UN%WNwXhOF2t<9X7@N)7I;Fqf6e@52ykCR)uew2DSc62;ZH z?SvB=weE>F^M2z4?UzNP6x|BtL?8a(X%~U{`6}YY1DyK=L%b+@1fm;z8zOM6zheS} z7(6Wtvhh>rG*FKSF=Px}2p3Z&w8ujQJ2(a+M4;VV76CO=`bcLwqBxXdP#c?<BrZ4^ zjThG-8|X4bswS`e*9VwQ>UsNr0w({qGGqm?u>Uu7{lAS1|0nkL-|)NOe}dm>{)Mam zjl#16{t3ggvNHb-!?Un|VtowE{}YG*gy{eOA@P5j{y(7jKd9gT!~y@|LileSkcl4f zA3(r=!hV`lV^)6jFkd#^GYALHWq3`XOZ}tN)QI6;rWSF3k`{zA^Px-wTXzD^Sxvzw z6MI?vMUU@ivCd+Z*@ob_@akmY_K)_7FQGN+bqROG#J#oq8gbl5Vxm@PY6GiTdK40< zU7?L@ouReA%{usiC$s@TrBbQ1J!dsloY~AfbwGAphf6}JF!<67*Lfa@h#Ab+N^HvB zYTzimzg~obX7tr(DedOzG_->(q*7HeN>XXDO7{IO@;26!rby)Vx~KIIK}acBX@MHg zxdCe@KtH5$4O|yQ$K)Who&=o>_R4!?a+79IzxBD_X^fas4XH5oj^v59zfGo|gvC4w zjSFJ|z01U#dU%&MIqpQTg?Q-fv)%N33rikJwb$*vlH0McEm{73(Y`XIr{vM`)!ZR* z@IS;C)Bm=0{6B#2|0AIOBmT|sNy+$YL6`rDfB%hH|BW&K6Mz026aPE?t1dk~)W6fe zaPmL-{{TDx+rai8u=Br+UjM=T`1B0?FDJ*p!|nez&tqU?V*F?P?YVxM=NUE}Hr^9e zvR)W9n*KaRc&?Gg!Ug(eC59bB(~z%#jgUH-mp92;4T;Yaz&MVRA7ofDei)W(bAHD` zlpB*H;>qMJ)P6uIJZl@58xh7)xdXh9lVmSs;<oT$*ofk>x^eM-?(JOYesNb`-%&r` zsI`$u%HG7nS2KjL6+FF$7vfB9X-e$hCiJ<IXd}tq02{a&B99=1v#_*>{D*XemU99E zfmqP}kfbN4TaDd@B|fn`7(oJOPPEKpy0=?NSQI9Fb{MFvfQ6X1a_G*3Ef?8xX4{p( zJj)4Waxg#AX{cjhzgUX64NkAEqxWI|BhzauSHwkEH5bBhBn}4d6V8A%Qp_A)BuUK0 z7YPJ8#=z+vzi0raw*z9t$y9-75b*0H6*e#IH~ThxvpSA;0;&}gM)fjQ_Xz%Bl8+6I zZS!sOT_sy|+o*4+u0tf$r0fQq1jw0FQ+>wI%fTOy-lo4IxVs=hcX6H^u(lF+X|7>J zqZbP8`9CK}4}HQt_{L)rJ4Gpn?fIF2zY|+WB@RYgZ|)2d(Mzp^lI=gq`jb~Aw1Hz! zX7~lIh~0OCE`G(e`$8SYfo_=k;}J_$oZ&+%+wmbveiyfhtgsj4LZG{KReZPbmG&Iq zifY-BvJ%<^c@5_ZTax8NJQ%yHON#IFd@q$4bo8!0<hk1rs&aL8YrkD_MX8tmi0vA} zHNaIB3lqCJo5yqsdfJoX;0s5p|J+S1yE16KpRwI^)oObQTmyN5kS1{6{(3!<U{C)| zT$q>GITsX<7aNn8BC;@3>bpP%SzuG6DEJfGb=Bsij^b4(8QQtHp411}yW{r85Jqi# zszG=v*|?#<sT1T%Fh4-l-ef!fR_gY|_S*XJt+A`POrw)_a;dt(Q&Qc0WUe$dwL)#K zX?jDZGsmh~uGPYHET%8CLZeCNeYIpb<ho`%r`wl(eF@iDD`HNM6|)w`EnSHSiVHkX zLW;MFpbvde$$M~R6P6_*aR}CR>iN0`tnzzO48I+eHeYsQb#!)Hb{tNe{I5qSNq%s7 zD7$-&{$c|_JcU%%AWL3A$>nhI&YhMk%zV8gVO!%mc9eW3lM9RAFFscK?cY0Hn4^?t z<*QNG)}e50AX7pZV~k~&6+sxoBZEZ*&|TF2a((NM<S2B&U^acQp~CDrOmg*2(*ZJo zx#jsKnTu-|pgqG<IZ|tGqG(hJ1F>4dd_%%LEi;ZKqR51A*d6wxe5_#NwLR-Lhb`kM zc-_rC9zB<rXB6h9CB5pIl+8!6TpF&#iu>i(BJpy?lI8`s%$f?26xF}C;{zuUH6k8v zCTRQo6~YRB+eOIG_mzuurAWcIYk1w>T~=*Sy#)I8WLF1ghiffuf5ROc$BkgiY85pn z3&BWrF^Z(x>tu?m0m-cbWYMm57El;kt8XN4L%rHD`(wP8-nmscxR%Ltm2U`;9-=wG zxh?KwTP-pbM1=!HVCx-?`WcrFIV9qSr+<V%%MDkHhUEIm1&~t6&-iJDS<1T~*ocv< zpx(1)4LtbE@nbWzvd;W=p`n=B(7?T@8l$8ufuYyJELTH4kC)dY;D9ui%>3!fUkIbV z`1`hT^u!*WlDuwtS5OOue~;M(+xK{*!2}m7YHBJxKUqL!C0XtmQHIZ~7fYy=(pHE( z=<7+jahHUm+fFf#^_qf1u_|o)S-M3C2Tgn}p`h>DahZZ4a4A)@E<h!d!Dslo!I4MO z1G!M>V5ox3!vGg@R^G@I)JRpg$HuscY!9xbTg92%u5ct)4hUoGXCo6*mT4d^CHtP< z5TZ_VO+#(*+RAK0#f{ip6pT*@G87gq^3IuqVXqEQfdeQ<bFBT<SA#lyzRy2s<)vN5 zV(M8vE52~XDk)8lEOul~gT!np(Uj5Hgm;v9-?Rx8@{a0qY~@k{;AF=`gc8X%hcxyK zabgS=8OA4N3t6RNsw4?`1D~36qO*(WZcL^}($|C7Hp7Q0^6O(O!dn7eRUN@@nz2gj z6T=GFq1ObsL^5z>j0;}#D~`q`%MEslb$1MR6=MxtRSqo8@Cv%yOMdt!REi;{bPvZX zp`U=(WwkH58$u^AQyp%}3TF4=XiEHYQT`S9dH-0#uwRDCD^iPSu}yso>K*qC7nhHP z+HHhaih!K!Do;GH8a19G>eB<+H<dt6fO74l=AY^$g1W14`s9ee4LbZFDev-$xN6N% zg22>M@F7@ia)*KFIU=?F(K65kGae(WFo;6o&mR(%O&+@nwC#YoiqKPS9w(DX0VX>| z;YO0mWLF`ZRn!yY3g#@z9Yt2t1yLcJRv(Z(pkty?*~Ey$KbUPm-IlwPa~$EAE^UCE z)}K*S6rq(w>naPwYDEQWmqa>D<8x?3|06V91mn|G55*->H>qu85<${wcr$!9zoyL* zMO*x;9<wcAyFTf2QCBIv?#0G}pGLo*rQj3t(mtdsbVm-D<-S@__9T3d%e5W2VwMX( z5XvwKR%b8+L?5`cOYMRR%;8pYS=D#t2!5_&&ek}5UhQ_O6nWQ#!0zqM<gKxKw<l%$ z{-m)*ce*KHmGLO?X`Ze+M43Nof&?0?(})S0ao7sfi(AKE`VEB>W{JQmP~Qol6G+K9 z=(PBA0hSF04lZU{E=KtzwLm^D7@2DxXGpnShv&Ef;k^77{75<5<U<;l3qtUSh@BqT z;T0Ag_kBrU7<WsZjw^{Lm1pSGH0@Es2AU=>35F6@Eu3s1-kO;ByD(9l#umf=b#v`9 z&_@p_FZ!iX;z}PTNFvojH}*0R`!c(lROw#+JQcnpsDkF#VN@AcP<kfO@=814+S;0v zXIM>a);Kjwkh6MTS|$#Cz%Io4(l0@1<FEA|TDr2JY~JfY+Vydz<zFr=!ij{3)BB*$ zZ+i#uytHodA|&}&o-4w=t}g2fH(vG%nLaW+J*5F{Zg1m>4VC^W;2DcAJ-%~d;f&VB zxiyvxcMsq1b6c-Z5?;(G(U-5$S*-^E4clrXze<C{0iqJB(dJbu`DN4@jaV+q9dY%f z_^#CRLbV{IvN1tI`r62oDnZ3GRWm?n&%$|cv_Z{TBcL?2MGn<j7WnmZ@z{%cON2Lv zA>!h6>Lq|w9Sx5;*3uq+;Ch)|od%(k;xFeVwMTSaHurSi*qvtP8}Ok&GDYwX*SmZ8 zTYPXXe*)L=N_D2Zm!Efeug0goqkB0#CahTHR=0kWt~Cuy7f7H0<zP-uy0HsynEyF$ zf;iS&{T<$Ezblvv5C^X5DwAADidbA;eitt#j-QF@d65hXx4}5BoPI){*U=ae#AR>; zmMw5proLI6xzHM4329MT^(~#HDSP#`_-S*Z|GP1J9X1|?5+1i0aK<huqKh6U2_X_( zP?fYl0iv3qi~v4i8sgR>F$FE33`irypobn(<R~^{K#jRf`=ptfUB6bOBOA)pvfLZK z{}jAyo?tPtD_Xfy;mC-ynw{O_{ErBdl`^6T;HN4&yzyOrN<2mzE<CA&9xz34uxhj& zVcL0AMgRI<jjiTGd<n%N-Mv)rC42K{>5@P+?v}SHh6-pS+-2@}oDCPtveEaAwZ>lW zn`Ia5`U&<c&<EfvvDfuxfn?K(aaIgRA>Jsv@EjovNDO9<^nQslny)Yh1r1c?9isAO zJa{j;m<oW6<Ma#lL;FV@Eu}N)E6ySQ#@C*6cTV|%$c0(A1R=}Di~WupK90BU$M22I z$+($g+dF++t~i}vIX~YlBBtQ5HUWW~2zDfX%``e$Uy;>-oTgwR(Cu}}(bM@<0ub;< zOjQ&t>kX-k`*Q@XvoOnKn2H&ZJ>USz?>Bz%?+)JL&Z43_F^x~^v>uV2d%v*HJ4WmT zI*Y1-I}>d4z)q|oPAa1wMLOj;3yVZb9g{{4xvZToZw^dDs@Iu`b&gqV_ef9KNE?G^ zph;6{N@;Xz0aT)f;yMw5B6Q<{2~VSg$H$^X!E`gm7AoF}^XqvR`!q$Mrwk^Q4L`#5 z`U6QbSP3foD_CsdLe#)+bRU3=AEaLQO6rv>rwcdiJ)e)SHsTeAYSa4q_G(#$VNxu8 zJh2zzDm3I4I;juPA3nJHAfef;)tdWnH@#o9C-NH0ttVFt8BF|5b}gkQAlLg-<|M;8 zm8VrEaqAE~qlAy+*xBLy)<<vLz%wsqF&I!`7Om}k+0&vYh6v;-coRiZp-B60^EE9f z<tjv8^5=Xl9kNZfn^?TXGeKv(J0A1X-ua!XZg#=TJ%t9@F5H;Fq3B<iWZX^><=vg1 z1CO>u7BSr0Lia?+dpR|}?n9zo$ft>bJZt9-t5MNwHgEdjTzW;n7YT4Z7@~zAoE@3} zLd*`|MS?Gu-R06tEnYB=roONc_7eZSUzIcphECTA!rX@P0MtJsJo6H>AG-ujjRWn| zOGzVdlBCI6Wx)DXyPn?edap}(m?h;l(?JKdo^RplKss;Zg}%e{<@ZJN(otuDw3Bs` zqc#We>q(?v!`O{h*V_g4?Hh;Vp<v5}k=w`G;RAJ<FD1!F$q*@44As#X&DZu{6Q+<^ z!OaMxpv$;(T0C=jU3^@lbGXT03Zf*Kgwf8WIy0pr3#ENvxDLO%-#A;P;Wt_VXQalz zyFXi!^J|C7q`cF=Eok#(ymv((Fg1i_)q0P=mXR!wL%WnGK=?}0rGSD*-G3p4#Era- zn(q0^eLBl818>EhHs1rujidia@K%S$?n+#gevIw{lYC)2$@lH6@w4<MO24-E8y6il z&j;gNC#z?D72HdHU|dX84ZymgYZL8}Fg4uyX3vneHaCkT>ZB@3Tn%W+2z;smv;xu1 z-xBD%dJ!4`krSK@LAfnWsLqYw=;TI{o0fv-m@CZU>&jMQH(zBxXKJmQ#Uh8t4I1^W zj`bL#i&{LjYjZu_ha(tZY^_}V1z^?Fdqd{+vTS@J*bV_E`7F-Vk42Qx@x0E-JyN;s zypTgvIcX2uqV*pCAmqNGiSG4LIPtjgcDi)ydGt16G_H>Bd8RyUYmH>8#L1W{YXrZ{ z-VC1pUch}w<qq$r=y5jUI-2N`@uKpIIMg3vr7(P|Mg%sOY+dC53bVM=3gr8(F_oZU z4djM*D3G!NcIb(|xyMtoV^3!$st^e-6c`)%d6d-a)#bU_c}BXxIuJV>^gHLYb^A+c z;>O!%U*g7=mg{#<7Zj_&`boIPyuj()%rBW4k2{$&2a6w<i#+95n>^{zZ^Qn6yJ}$t z8nH~$^d@J`_k^64OuLvNux;x)&PlGZ5sUW#-B9F|w5nc6TCz0fZd0<?WynsOZZ9%? zmLvZ=DHGdnE;0jl-5Gym9^39xDVKT3z%-jkWGg4WQOG+fa!21(hIGencPW?jD-Xr4 zQi*3=R$J~KWe#4O?rv$!Gf}eDiP`Nmb_tyEr?I?_3kF+FsZA8JS;k++X*MCIoSXii z{sFxsQZ7J|qsu335?UAm6(i%=i3oHgnqo?rhgJ$F>U9v1^F#6i1wd7WG%ACpuGVN( za0k_`x&*k3g6N0J<5Hc;>oMVEzq!%#O4KZfTc6C0XuZC_U8K@^bgk&TWTw*Mpg3zj zmOVX1K9VHgj7yywE<lFbTK~R@fRyGGm=<+yZj#-09UwL2tn2l_hri$JO6C&T<Nb7X z?K*1v=y3&CL7l!pU~kUoe$qldr*t{~`4Vxr3MHlaY|-Gdr|&Y4h!**w|GdNB+WZWy z-!tV&WgXFZhvh6X#$ZdauYz`d=|wXE&B0gWUuKb;01Z}Gv(s97^|dr}s@qddr3|!O zNxD;b$ydmP#aGXtfT%azW)uQEOvVso3GkK*?`T7E2FTB!IUP@%rS$?aeI+}JmFd0P z^jv%7|9ppDXl|Z$F4OvTQiUh7_?AFnM{8ZXWPE(~yrhLa)UP>`W;xYl%Qh*}8@*IZ zYiSwFQ9KNl<XxR9+T207&!%Gx1MWz?L2UqeLYDDy5L-#?r8I6k`wP$dTbu5t-=gIH zx4up=uG5``U0<CA-9>vXxQ#AXcy908=GzYKDYx`Tq!UMqH%FihS<;^>l0v+t3>Y9( zm9+=EB5vv941`^9kPRYLyuN6V37ZRQkQzuBB#*5inPQhdAeG{mLAQ0iYjj;&kWNxH zY@$_h*9l@ccEV)D0E#!kZLRoCS4b~{E?}h7giRyJXNn8AVE%JC$TTDaQ5!Aa2@)4+ z-yI~bu|;p{F5F@F(%$k!9n?KdLR%)1FRy%eWw#l(#l3hrEe|3Zp|d2mH%0h~y_&&F zUgTeoJ>`5~ihYQX(2efrYU;Bpq>1wr?Apk?xTpD%0+srT0!V}Tk4+()^rs<%v7_Nc zH8g-k88EPeK{#4vCzH#;{Lq{|sijLR=MQeadU5yQ9Ji<}Y8M|D8(q$|bk<!LItLCJ z)a^;7FEfaX{iLIwzQ(;=H19gE7H@_=!<~xtI+(J!Xd9Th$oqh4=^;JfCHG$3O}Uas zXmTGGmJWx92&HRtm{U4WxVjiyx#2!1*X=yA9mo4v_N<>ZtY8;jP2PxoKPWNT+J(nN z)-I@=r|vri%jwZj_AVn3Xr=aKQMJ7~NFDL|7@R?{)A0DUN=+<6v|j!yVaM4BF-Jq# z`YRHVM<nh4tL!S^s@T3YQj#K_0s_);3eKUWMN&d3k#0D2$ECYb8l^!61O(~sR2o5$ zkPvAEMUXcKulHTl_x|sl-yCMno;7RMUbFWaerwkEjk{O;U8(i3;cWK?4v~QEs)G`3 z=?SYV6@tQd=zYq@xpO?C%)ejS!-chron*W>;q4Lapxl%HuKb-jTPqB&nN-P0YqaQV z{7URwn){7bru3<WrGd;8YVxJbK@SGYZlLE51^5?N=|QV_8O`YYg%lWx$yemX)-?_N zm*ZwMv{+;v%kZqjGDY&*bR0<qpSB4-Z>{Bg&c<q?YKU<lS&wHPPd)3T-rR84e*5W* z_<>b^P8+7LCnPU1F-2qOKL~43^>B+Mn;68bVZOrKH_1}XYeVOtn0WT$)?P56UJ5Vx zvWAwz5MHyI;WZA5*rzYD2Cj;07-Ae1xa$X3_B^ax;>=Jg9gXC)VM+gdom?Q^<M`f& z7yL7;7cwH~gFQQSLcQ_swZO*o9QoRsdg;>AG~F9zQJn&xWtPdyTitCyNuQz#HK^|D z4c+A_lOT@HHc4%;dQzWL>t@W-&h;u3o5ZEOX=hK`&4iJTI;sCde^D}_X`hdh2}pu? zoZN})DKA9TQ!rm8eKb8z%Fz)-7IP4a{i>%tOF=3AGIP2oX>SiBlh@_tn21BXTK=Rc z0+tW2Z))ia^Oxrr7QPa0i+dN}YJ!t$+{;eW;IUzVWSX5(s=C2hFaaLCzS-MT9o8U} zq$o>L?q8>h?vicVf7$DsvFYBS1=3Apj{bJf!mS*)Q8W_xRvcd@Gc$jXH8oY3tyKIB zlc|N<umKD4=Cvsnwjy1U_|`dk&7h2^kOb!sr}4`MNVlRg<mHf3@fdZu(evsf)?5v* zqHP12E<9%iqB@PO%~+zYYVdv^>AS%A9<-0R!BVtd-#io9nQ3SUTyiU48#lhgT_HH| zrz0Xvg4<k+>SVT9uHs7PgXCya%dr~y%rN10iCzs4B86Qw)H7mGmhAK?pQ5Ns%9>(K z18R->3#VsDX>To#rO@GpIt;EAX&p`Y(l8y^JC4+-9vKi=?l!5C<R7qc=Jc9)JD7er z+??T(w9=>pvy-#e?#)>AUfT_$iICvTZ!V)|7QdNW{V@0uZ;p><<t&NZ*_Ss6ZBzC{ zHc}_MPCZSmx^j4yq6UlSH%_C#bWYuq!904}5!Qx8_xYe`PDPUjDa4iQV@gIW%C2z| zUF0&)6(fjs1GcTyWL6e=5+C-EOL;O3C71Vh$B7SRU1x=dM8684qWUnCugUyUwkjun zkXOord}v!1cMySORx9j(C@&m?eJfyWp@ztuSFVP(7W-;J1B9dd+svx3ux3_*58;x$ zqJu`Rrqgceu?}wHet+SLUt^YjLEy1)FZ<Y*uQyQwPgrDp7V>jMls7R&JEj_w4Vjr* z@uw@x7Up^-Hmsi&5-e#A^sJj@jq$BMwSIlaot2pJPElYmGHRKs?ap|6dhcC|aZJY% zk3?&QCo5%LOB>L<Ozl_E>w1Gb&KU+Th3MGETui;IGuAh{i9dI`z6|;p4MB9AP@7d+ z77!Le;YM4%^H1gOu7-@&5WHs#X`tp>&wz~2i+)Nq@Vu-V8nt6m%`zqAr9E4qdmS1Z zoN@*QZ_8OF?7A{H5s3?rJ>8HyGkFQz^sR)SjjWBmjh~06%N*wLL8eD?&58$JI0P9F z9LjG$tPE5A#talF1Z#~WJE(mWRk~u>`@^qBT1ZFRCuj?==f9}qv@*;v?32gn$JW^( z9#5P!inaKz6Hbj(8t%b-_Rw|!Noh(1vTi4!OyA@F@KK%L^zLl8=bJ~xMF%gq``!5l z@*esH`gx@w6P`{`RkBAtR?L7>legFEYL7uQlX@4H?}<<veUC2QU%ZuF2dO@&d>U5K z5SiHNp7&gOW34d2bpAkR{VrF&WL53nnJ0Y}*N_OJkrTVnW?hapeLRgJ<!M#P=u=k+ z$>x+tns##7v#(3{MA;s&`cL$IxaP#Wk&;}>lo;KJP=<Js3?!4=5T?h?1<<5HS62tz zqF^4O-h)*Q7*@C~Oe2^2$K0;5yAQdxJ9^jeHU@n$056txz(;zezKBG^FOQpWWR(f8 zQPXnn-VZiD<_#o)_(K)0`eDUH5<dvqW^&OBTSE7yEHdUBFgvLnci<S=Rnn1&H2-w_ zPy{nz1dpw2q0`|-l+-5?_Ep2R*(RsUL%V*W(E0lwW@pr;8!(NmEum||jb{g;g`MKQ zO!a3wy=q5tg%PvO;#Fg(3nN5AzOTqswiz^hT71yF<v#3jrvz8<d`a59yR*U;)5@Jc zCD?u@CcePB-P(-9zct?=*nT>Z9=!FQ_S+od5L@K|2c~l4^%x~OuSLRDMe(M`-t7hl z>D@cl&#CpjvtO5p=vK^@i3r#Ch-1^|?-b|TL9olgRKiyFiMcmp`s5zww&w2UGWl!@ zdoHe}<}On8M3fV2$706XUyjK@v}K!gI<xdI!x^@O2BP=)?X0R3#}?lOz*S^-a4j0t zIe58u>xne!pNhUbi!%_z?7N=0%of|pK<gPL{&_03yXFC1#<tj$&YCZcUYuV|h)&WO zSqj6Y{ow_{9xUPFRs<qx`{hIpLql`VDcYQPr`MWq&G3UybAH>|UbPHgSL+9lYPJ`) z=I*V1=M!glPM4cyE{_MoF~Hv8Mp37G81PkDb!!0fZLt1beXZY@rs;Q|eYAG&pSjiA z7I|^a$v2R?CwH`xUlzM!zO*y*g<(k#cEukNrIc~UE;?7(7$bV?l3$fD!=6w^Q^S># z*zMN_dXfnEl;-AE+tKF@ns<|5BWE`z->vDdKHjLlHzOn+RjNAZ*5MA?ukyxcSaRDl zx+l!O*=g#V?=xZJJ+*(LJ2Bf}HcZo0Vj5CUjx<-0$EUPdw_WIJDM<Q;Kl|)N*)4Z| zNk2UDyNbBbB{Nu^P@a`sDEYv(M^;XkFQ=57w25L*wDXEKao-kfdbgtEl<ZNc4NB)4 z<XK7a=s3ytXnS5FGiwQDV16xWa0{Kd%V2)(?cvBs0eG_`tstq|#RqTe7WvE3!jWp; z{90xip^1`hI;<M5ozq4y`F8^a8ZKVuoCxUaBs}IPss=ch`UmcWk71GYN;_H?drC0L zKL~0f!C@gu!X)GGY<nFp4M}B5<p>|a<j7ZHK@*b?05cJp7F3LhKT(k!2lKZeNag!F zSdsZE0y$coVfTx!gY&cGhZ^?2!x`stZ~f`9@XuG+!J+W~M*Rbz<A0u;{;#NisXvw- zNFr@aeij{Efd0dPcPR2e;Q}b=KY;%SL7^9G4*t&-2T%ZM{U`AM`2*hz6$ilEK>z8= zKaYR~|5L?5!Z51hple%1CgxpsfGS=|P@E8|;2^hL6pf`oism}rLCXwZb-mJC|24{Q zPJ4!I+#61|Ave5T60Hn~PYqrMdejMG<pgdRpi|?E7JX>S)r>A7lzcGrd>`G|_LyTh zaA$CJrL)AyX+-@pk;IopSWT;5=Sr^4NmH%%H!S898EJ_-IE0PjtHo8rn>g1sZLK#) z+bisRdLO^{sbVyGt5BW8N?2)2UNfP0y(hQms)r`|C8|?C%I%uGjdAmh1`SV3vdyF5 z)fB|c_3beA2sXOd_@fSopbQc=x#g(Ol*<?!q|40R>dT~+(!M4I^|!?;CB>Y0GW`q* zJGsmn6l4deA>ULKOb#DE(XTjLj`BW=J!6{obG&JG#&MkVNxZ+v@@UK8n|+hGG4aQh z3<g|L^fWAGL(tAQ<xeK%5lu*>aW?*+#@qiBfB(M@us;?dKrVvte-;~{iU^<x;1#g| zupRY90p(Ez34a6L&%yFP+fn;~ZM?tN=b(8MU?24xrSE(V==i-T;e6s;z`~!8zl$UC zcPu>gKVsqGV8M$u32<9`+HM!*HX6wZ$xZE%o)8{x#{zB&mYcULxO#K2;xTVUB;okB zV6#uQ5hJd~U82KwW8tZ#&&@0^@z2q@qgz-p?jV$DCPF>DW>CkId56a=;pN~#yZnr} z{Bv2TlJ7WOaZILJg3hOzMhxjU6{4F550Ymak51>Bjt*ZGCa;iN1Vh5EDz1E3q>x1G zp2vtA?8VAFj7Iv9Eo`8*iRVW;eZ6<K*BgswgT#O}i6#p_#1_+m+6=Ng-d^`zxsLD0 z5*W0gTS!BEMzcs{ws#Cg`*tnN@3MoOvQpn8vE#syh7-lz<mynYjx#I=ow)rzzO(l; z935}WBkyYPi(;8ipjAV^z0^{RFfJSNrQC(0Eqde;GZsi-(jvZ}c~1?u-leKO@+Xb( zZZr-<wl&%l8*E~PywgWUmz;h)gW!dJ{lff3sDW_xedvxZ1v3G0Pn(F^L@ctED6UTy z)9gL1>Q{nFWE*5psTQ+gz}0b**uSie<Ye%gK2uz%Irx!yC_{q&7y9Z5JO+}>Cs({F zOMJs#=DI;|*tB(iIzABk7`wo~z)eT&8_^@vMT{PR--MCeqi&(y?UVIv`^)>ns3y$e z1tBbIt(z%CUh{sZIB65UG4-BTVp_J_40}pOYb5n4)60EFcZ60BbTcT5z_g*AiER&X z+Sr<7d+r%rDO9xIZWG+yF*jNB6X{@o8LwQ9k+#)Eei*PnQ5N*hnjxG>5-L4uH(_C& zYb{RsK^JQVcjoj^Y-ZjkD>kHTYOjdUTD<=Ar;?=8l+z8Z5;$6bRJZwJ`P#wQvb4#` z)SL1*%*^dl3$NebJX?65-F<vT%+uhkY2JHzVJ_>h=6dT%DPdvyq^9N1HuED}j&@eo zmUfOXfhpUZn@=KXScoAVSKiV;%8z3qa&vq0`f$L&?cOasHUds{42J5=ksT15e1!z* z*i<-?$2CDi%sY@q35dmQ?2UvD8KO3c70H|~ae~{<sRN1~SH<A$oyFyS3%PXFo6EOo zne_Rrc8auK!c2lFArDp2jakMYtz5FaX}Pr(VC94#z=K0wpJ(*&lV_Cu%_(vrRq~cM zU9*eIQjUFLiXD=Hc4hFncl<^+3D|=8*fsLGhAkG$td@_0ub5j_S?BM4Fr^$|^)BJy zxFJprm8N##GAdH@=(RYa&K!C2#^bnf#$h$$%?-j30)|Q<A?+im=gbZ8r)#|7cg3)0 zV_qJ&W|B?kz?^Huu(4^{{*qud))$yH9B|1ed1O(OP}I|J{XsjtF7I|#Rh1fnVcm5S zDbjxHd65l)wg)k^rP3jEVY<3RDls%iigdBml5#0#CVB7AuJ_gtZ`zjiON&Jkrcfwe zF`L>jwM5j@1!+r1?MV-Ga17MV2N<+a!h<lEo{u4PbEDKt9X@`<#kCd|B7a6z9TT5K z))w{nVe}ri>!kc$s$Nr@<KP)CO@UXVr~ZiKe5&zVoC<{Blod&=O768Z8FG?S$_bpd zc|Wgv(>ioG=-eD+mXaAqc3bNVKXudMFQc4LA2Vjf?x^>S=n~UUwTj-7-Xs+C$Lhbb zXGC+U*up0Mcw^kuFt|b;TxwKIt&2@?i-m`W`Rd|oL<ncN1QgRuAuX&C!)v1S-jUkT z2>lfPt^{j?En2;ec@c?1KA}omW}8!T0r=G<PFH!G14luJ_KabOP+7f)Q-?>HVz+Ez z-kb2$DKW0AiLC?ELXxxtx4^F~v1wo1J0mO<?IRt?oUi+b5XT)8En2}`5%zVUg^WI$ zS7(gT#PG2^FhOo&NRos?%z_(LRi!HpRjIbM0sC8ODp#*1eJ5u(+@69*#$)y`@~%v3 zeMyrH!T9E6kdmmy`>L{_5G)_Rs1`!gdMj!(IzQBW`Zo4(t>&|J;TJBwZ7_ezY5t%a zqd4DYHxjK092#P-APr*2rd}?_$rf@B)R<6XMtOIjO|-T8Y}$S2HMp$P=Emo;5WjM{ zPK^+I+Hi=@KsGO4LnbZa+VaR3F^?giw6AXoa!s7;n(Of&*q&;JXQUQk_of!7P6_ii zP-dmZG~T#s$oPh#Of0NnN|?+KhR`(7kTt<E#i@jahXwZ6&*P#e2~Kw5(y8#0zK6+0 z%QDt-r@)feE!f=1FfR!TB$7UtpNU%mS(+*@<>GOhwwigpCbq$=#<LBmzfHByljlu} zELFmMq$5x3aPN+FLSnLf?OQVEbQ04foHXLB@Hy9Onc+NDi)EGRWot!`32l-$sksHd zKM%5q;O|3rLmx_KToafI$#3;Dy1EYLPCTH(9(ipAQ@GvyhUqi(_`0mP$p|e~Be8Ch z4Reux*IPM)Hlg?K1CeqGb4Q|XomG9D<lV`)J3m+2`I1s@HGV1dYdD(4U2TnRHJ-yg zbKUuN=AQi6_p)6VUD4!PBY6PZ$A)M(&ul~SvCa*WSGedkJ9Y;w=<^h3G|f&_ZkIX6 zHbwMb$*b-;;8Q#y-gaQ+4xmLwvf4<cLMd!Q1sX=v>@ns_&IST#7hrQv;Z=z|9mrOt z7vTrG_E3(vFsxTCr)~A0`6!!rnDOlbLuEp-kOAL1#3&l0-_^{KJ$_+;KE|r^0xjJp z0V{GRtYk94mK|!|>RK~=n1BUuxdK2B?U}tz>aAL@Oqo8Yc+Xlh|J@khj$-cBSs|cX ztXo{yo=aqU%&67YzM^==n)H+HajStV?=y21E{?PWmsHmA#bPyA-rUjqy~=g<g|9-d z6o1rH&c?7RE_!4l`i$aa5QDbUbyOY(=H9sPoELWxYidre{z#c4-^NodHGQ}@zg<U- zBQJ?$vw-%7z+x=djp*z3r;XpUW(J}wv<Z>^p1936`;P0DPYbrA0v{#SJ}=<9!D5CF z`}lZoH0(JSR%Tx?S!O9$OyTHsUR$_)eqKNO^N-X~2g}|Z&+;qeSCsZA;V*b;)$1yr zyw0sC<x108OXfcaj#o0re>x#U37s|x;q9YQ;?Qv|{cB)a{XqFzgdX*g8ha7Gg`>oJ zTg~VVnSK*|Ck<oW>X*e?@h;Wt4LQjb@`B02!8iIT?^sh<zf2j2t|7`S4pJ&^v5hzA zeF>Q-z;a6L${4X}(o&;zk9wz5k;jhZ%v!iSZNvL4w<=06Au$E4s4Gys8)d*`afjDA zbVb4HPV245R5bNGVVBaT$Hr#SJ<Ue2WaPoIREGfxQa7A4)W-{_eMhWtF_hL*w_M^2 z#{*)Xaz0e&m_?W=C=IP@XMzSjc@ToyYVr35dWCd)t-nW=QW9aJM@B~aPID@ea4pI8 z`wuUz7e+*A#*$Pf3`ZM&#eeR+-_T@3s?Kce+z|E^*VulHWG$y^=+oyT9bQoMbWZ8l zDx0CQM=R({3t*}am1V&Up`p<yH}Tk&sU4`ZS&CGH)KwSNsPojOg2$A-w?gRGI^_*< z@->!MRUfyZwcQvqdN#26R25C!H-OMPyXqZ|lFl6hr%m1<Syl0HiY`?oMeW9>+R1y( znoihcMxaNOlx&~jYgGk_RI=nJucP-PZM=!k9IjZp4B16Jqck7B&)?i*N5OL^%QDkR zE6;=ebo7?`o$dWSi95;*<D+r8_S~H%keNG4DT`{vrM-}BCnOdxzYk^X(i%AWSYE$3 z%_L#Q?3$s@UE(1vLDBH9yt_DRdS%scLQ%gubhqtj4*GZKM;=L|)TIvk;)`ijd{FaI z5j^r@Zpuh1-2L>07X$mLi*KKI<2_p8cD;70Cq6dvu%wQxCKik9cEPCW2jRhc(cgHU z5cMrVpLrJ|`}SG(pQk?@V!pRpA)mLpvz_G9x0gabI{DlshT?1SfR^x(Q$1PCf>XR( zaNow=9pCWDFRph7n&fqTZr9oo8$R65dDLyEPg_kIEZ4`F`uIe9tjA&A%!YdI8l<em zXk2Gixab3y>1LA5{pBP(oZTja)%)d+$CyoQU0YUf2Hqdfneg}Sx>vbW<BPo2@QF36 zPSqINGuc9P&&#PyZX~Xpnwh~mOI-Y9hek!<bssc85a;g<Kd+hA<@`9b@0qgN`^oH7 zJvGt8S5u*^Xa05_xkA?CSbz|niLNEm6fM`-&v!0#Lq%ys2<pqV(sHH~+o`!st>-6p z`?J;_)l!PfG5%+Dc=OiD1SdFn`w94a6T8kSX*EO+u4PbYwj^Ac+zj2G4W5qH?r@=x z?Q&XQ^-7WYj_{;1cC!$h&~J&`f;?4<Z?BZTBndIOvUQ0_z6I=vp0f-(h-Vbr&Bf;% zz61FS;dLy}kaVY%Xg&72@749##rn~}jq4dphzDJk?UuI>o=BrTzJ$Lm+knqM*Zy#) zw<t8OFH7z!L)U8DX98x?py9aSSjHHYTXC`tK@5u<nnw7%@f(lhj>N7XknWw7$uCdl zoh*DM3O=iuUa$4u|EOem(iKjdj0_WnhwWoKv^=%uuSnD4DfP9j%AWpu$uiiFZS&04 z=kY3=&t%To+aq7H(uJYY&w7!1To0h7(`Cfq<EEOyC7o<8QLfI1dwoauO3P;T9Fpcm z&q{ah-9x8eB_Aelt%NlloFt^U2O{Qo8m>$0D>SfXG)reBizK5bciiJU7Nrbzb#FTE zlgipCoAs8_(%04Y%r6o34vtC$ueH<B>yk{0BoiTT$T{dL>xm*T5Zw+>0gr^wi?DCC zQZpL2`YeWvv+z*PQhHNnHQFBrG=4Gq+PTjc@qu!vnNd%_rjF4fUO850#{*BQd7;*A z_|RgB9{lz%yVqX!Ce_CG5DrXhg8q`-=AI%@smv^|Lz|el4($SD&JpyxaR}b0i~Wn5 z<!`{$(+jCB9-@v=CQN3f62sLRa}f|PZ`pk!&RqSMu6gcx-qLiqZk{2bhaMSHS=lYG zy`;pc>%e37Mqv#xXAAuc&kVs-TLeLY3)cV=?)I&<YEj+X%?@gpO$S-5fZ#cdH-9+| zav(C<fcM(Uu+gDsH$+eMLIfXVX6=2IO{Se>l_Lb+geoyabxqxdP<eog(3~J_h%QzW z_iN)9{M8|eGmPA>t>Tn;cSbR*ysJ2nCsBWG_<s~wi?vSMS_=H)jWfK2*W|%K@_0m% zbL{K;(Xfy*_Gm6*22zkiz_ZxhxRwJPEAjkGx>Td)oM78QNcY3RV2qi^$H<Tc5s^RT z8GgcPpa_0`)c$ieOX&X<P9ynSUdz<c((I2pt^cO8M5PY|5#awRrG*d#2rU0aXDM)j z&Jy6<{BuU@Hw+E*cMJ^#0{%}KtvCsl4#um&+b0o%Tl502v(j1323bYdXr77x)%G%B z%3pCk`)rQmu9C>jJ@@TE_?q?6)SaH=;M@&xJ5>*q*TFOt^q%aNCjXcBd)a+kX6Z>3 z)$@;{oaBscX!0L)>OzqAo;waLl_PG4J^rkS#s^++PSZx%hHg<uS?TT|`b1R(L}#d7 zvUxKpg_k#(dLF#DRlsq1Gww!CDazX`WTHU&v@3-oZKg!?*7wJ5SKHUbxD_fA^1xLb z(@V~UhvmL+|I$s(mrrffm|`FbYMxItdRtu4gyy4d>+*-I5Bq<DUH-?*{l^RwaHW2t zTu{j*fa&oMiJ;%mDd(5%LLvzEFLa75nDN|bH9lE@j1iS21Gb=m@*i6;#&i76g~P%B z8V4va597H$Ao--FVq|4%>?|U}CvOXeF#-!pn}#Ehy#kiMw;_z+A4nLWou3g{eze0F ze@X-Vl7F`$7|%NcKw|i0+@0mroeiB$0p&7s>R>P<u%M1a{Xj9g{__LK@%}g-*u&5G zLp`twuuuLJ5oA2a>!8%CIwFnLO`Uc5RHbG4G)&!{0m}`|O{IRU<bSLr@Bf?B^<Ta_ z&rquZ@_ed>jws?-$d6vCnK~g|9F0w#7|&g$#;0UzVreLebk{}ghYLb^;UEwk0f&LW z{BV9o7)*c{#xEcs2oVHBp$LKdd~%LR7ki+m>VWeAHd}j?c4H4dDRp2PyILBXs>w<6 z$ul|wq@iMBd{V$A08Z}2c<xr9S3iT!xizTp18DlkRDc@ySM%`x+dja&a|2N}p$3<N zrHPX+<GH6%Kc$c^Krg}nItT1$8vo}xqznN{U8FhS5p$sbKOBO`r($nvCt-|Y=hgk8 zj898jhtbZ(#^%Q#&;=I*JiY&<&ZQhp4FSGi5m^~oSr7;&2m%R61I_~&Lg5f#8=w}2 z18lx<=#PtO;$m$2kE|51A0-dS{gj0PIs^p%{-X8)$D(uqA|NQx4v_)YFhJM&X#sPk zfg#5(Ed&7pkq!ibgW)g)2*d?~uz^5q9RKozyQ8TY9tdz79-!&(52FA-KQN=r7=N_E zU?2oA#!(+eyT99jZPXCC*akyI_Fvi%aMWzND2EV)|0X90LQRE>a)J=}Z^sHkf7d6- z{|9{nf6xaQ^V>NDQM3BOc>#DP92ia)+CacK|J4@2uc*0vK@JRpA%5!z0tWxhR|o;Y zU-iMD2vp3vpbrLv@c$|Y2Jxf#VlT)+zzD%#`vCz9qN3DAIl$y!ZH7PuQ1SDk92A6# zd>7jU1%XEbzqP@ESa(4VI27@#92E4s{{S2-=vTi$5fA|&-d)rOklOw(2m7tRPz3M~ z!>`8zF8H+{FevCZIT#fD+jxONp}+Y6228eJ&jACT&;4pM3<mw}y1{_PfAz!J(GZ~D zc0>g^bxTiEU<&f7A(6mM={y|b@yXknAsNpj3UG&#muA#u6oE@hfg}aMvQh|Hevkx6 zN(u&qVkrSx2m%63a4<v+?>~#6!l5+MSjxiG*xJd(mXS|NN){rBkO0GE1mFUIW<g-K m12IEFRzMOYiI9b$?jcUjhK|nXp#q4nU<BTc8!{@gc>e{=N}rhk literal 0 HcmV?d00001 diff --git a/ohmpi.py b/ohmpi.py index 9e4c8f09..ea73fa34 100644 --- a/ohmpi.py +++ b/ohmpi.py @@ -62,7 +62,7 @@ class OhmPi(object): self.sequence = sequence self.on_pi = on_pi # True if run from the RaspberryPi with the hardware, otherwise False for random data self.status = 'idle' # either running or idle - self.run = False # flag is True when measuring + # self.run = False # flag is True when measuring self.thread = None # contains the handle for the thread taking the measurement # self.path = 'data/' # where to save the .csv @@ -96,9 +96,9 @@ class OhmPi(object): self.exec_logger.debug('Initialized with settings:' + str(self.settings)) # read quadrupole sequence - if sequence is None: - self.sequence = np.array([[1, 2, 3, 4]], dtype=np.int32) - else: + if sequence is not None: +# self.sequence = np.array([[1, 2, 3, 4]], dtype=np.int32) +# else: self.read_quad(sequence) # connect to components on the OhmPi board @@ -274,7 +274,7 @@ class OhmPi(object): role : str Either 'A', 'B', 'M' or 'N', so we can assign it to a MUX board. """ - if self.sequence.max() <= 4: # only 4 electrodes so no MUX + if self.sequence is None: # only 4 electrodes so no MUX pass else: # choose with MUX board @@ -374,7 +374,7 @@ class OhmPi(object): self.exec_logger.debug(f'Setting gain to {gain}') return gain - def run_measurement(self, quad, nb_stack=None, injection_duration=None): + def run_measurement(self, quad=[0,0,0,0], nb_stack=None, injection_duration=None): """ Do a 4 electrode measurement and measure transfer resistance obtained. Parameters @@ -527,20 +527,23 @@ class OhmPi(object): """ # create custom sequence where MN == AB # we only check the electrodes which are in the sequence (not all might be connected) - elec = np.sort(np.unique(self.sequence.flatten())) # assumed order - quads = np.vstack([ - elec[:-1], - elec[1:], - elec[:-1], - elec[1:], - ]).T + if self.sequence is None: + quads = np.array([[1,2,1,2]]) + else: + elec = np.sort(np.unique(self.sequence.flatten())) # assumed order + quads = np.vstack([ + elec[:-1], + elec[1:], + elec[:-1], + elec[1:], + ]).T # create filename to store RS export_path_rs = self.settings['export_path'].replace('.csv', '') \ + '_' + datetime.now().strftime('%Y%m%dT%H%M%S') + '_rs.csv' # perform RS check - self.run = True + # self.run = True self.status = 'running' if self.on_pi: @@ -611,7 +614,7 @@ class OhmPi(object): else: pass self.status = 'idle' - self.run = False + # self.run = False # # # TODO if interrupted, we would need to restore the values @@ -654,7 +657,7 @@ class OhmPi(object): self.exec_logger.debug(f'Start listening for commands on port {tcp_port}') while self.cmd_listen: try: - message = socket.recv(flags=zmq.NOBLOCK) + message = socket.recv() # flags=zmq.NOBLOCK) self.exec_logger.debug(f'Received command: {message}') e = None try: @@ -720,13 +723,13 @@ class OhmPi(object): def measure(self, cmd_id=None): """Run the sequence in a separate thread. Can be stopped by 'OhmPi.stop()'. """ - self.run = True + # self.run = True self.status = 'running' self.exec_logger.debug(f'Status: {self.status}') def func(): for g in range(0, self.settings["nbr_meas"]): # for time-lapse monitoring - if self.run is False: + if self.status != 'running': self.exec_logger.warning('Data acquisition interrupted') break t0 = time.time() @@ -786,7 +789,7 @@ class OhmPi(object): def stop(self): """Stop the acquisition. """ - self.run = False + self.status = 'stopping' if self.thread is not None: self.thread.join() self.exec_logger.debug(f'Status: {self.status}') -- GitLab