From edd5670b453e1231fa0f989dda8b94180cf1283c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BF=9C=E6=96=B9=E5=A4=95=E9=98=B3?= Date: Fri, 28 Jun 2019 09:39:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AE=A2=E6=88=B7=E7=AB=AFSD?= =?UTF-8?q?K=E5=81=B6=E5=B0=94=E5=87=BA=E7=8E=B0IllegalBlockingModeExcepti?= =?UTF-8?q?on=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cim/sdk/android/CIMConnectorManager.java | 28 ++++++----------- .../cim/sdk/client/CIMConnectorManager.java | 29 +++++------------- .../app/libs/cim-android-sdk-3.7.0.jar | Bin 94820 -> 94767 bytes .../lib/cim-java-sdk-3.7.0.jar | Bin 88368 -> 88320 bytes 4 files changed, 17 insertions(+), 40 deletions(-) diff --git a/cim-client-sdk/cim-android-sdk/src/com/farsunset/cim/sdk/android/CIMConnectorManager.java b/cim-client-sdk/cim-android-sdk/src/com/farsunset/cim/sdk/android/CIMConnectorManager.java index 79deda1..cee775e 100644 --- a/cim-client-sdk/cim-android-sdk/src/com/farsunset/cim/sdk/android/CIMConnectorManager.java +++ b/cim-client-sdk/cim-android-sdk/src/com/farsunset/cim/sdk/android/CIMConnectorManager.java @@ -78,7 +78,8 @@ class CIMConnectorManager{ private Semaphore semaphore = new Semaphore(1, true); - private SocketChannel socketChannel ; + private volatile SocketChannel socketChannel ; + private Context context; @@ -106,22 +107,8 @@ class CIMConnectorManager{ } private CIMConnectorManager(Context context) { this.context = context; - makeNioConnector(); } - - private void makeNioConnector() { - try { - if(socketChannel == null || !socketChannel.isOpen()) { - socketChannel = SocketChannel.open(); - socketChannel.socket().setTcpNoDelay(true); - socketChannel.socket().setKeepAlive(true); - socketChannel.socket().setReceiveBufferSize(READ_BUFFER_SIZE); - socketChannel.socket().setSendBufferSize(WRITE_BUFFER_SIZE); - } - - }catch(Exception ignore) {} - } public synchronized static CIMConnectorManager getManager(Context context) { @@ -149,10 +136,6 @@ class CIMConnectorManager{ return; } - if(!socketChannel.isOpen()) { - makeNioConnector(); - } - bossExecutor.execute(new Runnable() { @Override public void run() { @@ -169,6 +152,13 @@ class CIMConnectorManager{ semaphore.acquire(); + socketChannel = SocketChannel.open(); + socketChannel.configureBlocking(true); + socketChannel.socket().setTcpNoDelay(true); + socketChannel.socket().setKeepAlive(true); + socketChannel.socket().setReceiveBufferSize(READ_BUFFER_SIZE); + socketChannel.socket().setSendBufferSize(WRITE_BUFFER_SIZE); + socketChannel.socket().connect(new InetSocketAddress(host, port),CONNECT_TIME_OUT); semaphore.release(); diff --git a/cim-client-sdk/cim-java-sdk/src/com/farsunset/cim/sdk/client/CIMConnectorManager.java b/cim-client-sdk/cim-java-sdk/src/com/farsunset/cim/sdk/client/CIMConnectorManager.java index 0fb30ce..4ec39e5 100644 --- a/cim-client-sdk/cim-java-sdk/src/com/farsunset/cim/sdk/client/CIMConnectorManager.java +++ b/cim-client-sdk/cim-java-sdk/src/com/farsunset/cim/sdk/client/CIMConnectorManager.java @@ -90,23 +90,7 @@ class CIMConnectorManager { private ClientMessageEncoder messageEncoder = new ClientMessageEncoder(); private ClientMessageDecoder messageDecoder = new ClientMessageDecoder(); - private CIMConnectorManager() { - makeNioConnector(); - } - private void makeNioConnector() { - try { - - if(socketChannel == null || !socketChannel.isOpen()) { - socketChannel = SocketChannel.open(); - socketChannel.socket().setTcpNoDelay(true); - socketChannel.socket().setKeepAlive(true); - socketChannel.socket().setReceiveBufferSize(READ_BUFFER_SIZE); - socketChannel.socket().setSendBufferSize(WRITE_BUFFER_SIZE); - } - - }catch(Exception ignore) {} - } public synchronized static CIMConnectorManager getManager() { @@ -124,11 +108,7 @@ class CIMConnectorManager { if (isConnected()) { return; } - - if(!socketChannel.isOpen()) { - makeNioConnector(); - } - + bossExecutor.execute(new Runnable() { @Override public void run() { @@ -145,6 +125,13 @@ class CIMConnectorManager { semaphore.acquire(); + socketChannel = SocketChannel.open(); + socketChannel.configureBlocking(true); + socketChannel.socket().setTcpNoDelay(true); + socketChannel.socket().setKeepAlive(true); + socketChannel.socket().setReceiveBufferSize(READ_BUFFER_SIZE); + socketChannel.socket().setSendBufferSize(WRITE_BUFFER_SIZE); + socketChannel.socket().connect(new InetSocketAddress(host, port),CONNECT_TIME_OUT); semaphore.release(); diff --git a/cim-use-examples/cim-client-android/app/libs/cim-android-sdk-3.7.0.jar b/cim-use-examples/cim-client-android/app/libs/cim-android-sdk-3.7.0.jar index 768d00ece1b3e8be7f0aaf61696fe71cbb28f8bc..4e629a4e9807ff44a91f9d173f8224328e81e753 100644 GIT binary patch delta 10738 zcmZu%1yodB*JeN($)QuELm0ZH8>G7%q@<;WmXaD_knZlG5h>|X1SF+IP#Q!U{sDZy z@AY3FYt3Trv!A{9bM`*x+*$XYZ{Luszac+VQ$l(GL_kABL$Fd_NPK956rnL&>s*F- z`yWP*bb*4DuQ?0x$CiQ^VK9T4qn|+*L9<@mNU%1dn`AM0i7x8pc>FzOM4dq;qf}vU z?2RnplacGo;~mr>N|F6q@tLS!0+%$(Iwi{A&ELfKu!*6EN558Gt!ewR=TK<%=J{u0 zMXW;m`T(D>x!O~vZmkmY=BENSA@N-1pL1oh3d{?%wMZUoQ&Gjm0uQRdH7wa^>;7-7 zUiUA&W3Z{4|8X?uRy<4a^LKHw9iCh9EpoR z?ik7LjA>Tgf7T$F_}x5+7ran^v_M;L^E0al+YM5Z3k%0GwTyweG#iAJ@3d0!-IE{(-V3WsRF3^J8Z(b5 z7^8oqd`-g@;Z!BJ(fO(XR50Z&(mR<<%c*rhm07rVw|0dpp-HzphJw;k?QiF{z#S}p zv75&SUll4;?KIKT7yBr^yB_v;#Hf4~U0Cy3;(e?;y5yp!go<`$P^CBwKtKpULO}R$ zr~h;m%4q~Z1!rm)KPQj?iZ;#Kq&wAvrW*slkkQ+Jn$ih~+LWqMlLtC7pVGnFEV(>y zn;w0mNL`S#jI%En<;@2u|3?30Bvbg6`*^0G4fy)}H&Q3n?ztY#cCQV^djdXI4~8R7 zoi$FSudgH-r%ULzDY1NIpObF%VTTb(*&DWriAb)2rTuZuS$=W)6J~OD$tBll=gCw} zaPkQ~sYn*WiI>%hwlWn+eir5+rlG$D;NKfxY#&~KmaKEe-3|E-p7f4GHyNj^L+Nf2 z@@GRXF)NHCBMVcU$J04i9ESD^B>k3`E~VqSU?BQYTQihdoU?)QNF?iqtkRgOplH26 ziZ{#)+;-Fd@k{u0l~j{EN(N_}7~eG)7?EQI!yLq=@5Rw6RMlc%MIgkjJ#O}@McY>| zO){lMC`J_xTgBY6rF!8bId@;n-q1`Vv5=}tUo_I&c;(f686SZr!LW0{<3{LR%g+i~ z-VsT>j_~8W1{3>C;c~W)%sv(qrknYC7R_<~n|Tb(EJ!S%bK7%>W%~${(Fc~jFeSZo z7LixFENtNZ^YqN`>zYPam+{hC5D9ErQrgCq_91v%{r*Q=4ZtaTh=Ol|IJKoYDls%3 z&?faDPa=i%Oq--3`w{O5$zQV3so|jpB0R-7t~AV%Ur8{iJK5Pz|FkV~b9sD)8bsxc zn)>J$mnMTtxTocgRkBr?veC5|o=}tQx&oMUo4nFmhg2A7Kp{W>1KAFj2;4*h63rR2indYEBNXqJa%1MubS2V~ zw!$wya7v*Y@3S{F2Qvq#TfN; zPQ)&@Pi8kpsBerr(9Isd*GcHBQRlw!H!id8$1)TUQ`tM3T`|c9JA|=o;#^z?%XZk4 zNV+SRtMg7en-l6X4VVoqmj5n)AL-z6ktTeC9~z<@aS8Oa9pRiDi!>YX@bzf(5oN|4 z(=#NL(&->$-UT_m`hco=C>2*ozPPrf{yEQ+h{kEEHCLDy3$VvFxmZP`HZhd2!rwzn zj`flPqmJ$uf*hX+7(cBagt`#w!L~dg@kpvw*Ex-R^5G}o))r7lNd*5)LR0f`Wm%z; zh{Q<3iunwW`|}vqfh!MI8=o2qR>BH1rtDhWIBh12)cpASB7xN7=AE6J zE>HV<2^?42`V>^2&#u)GK?_F={f4_qMY7r|-Y5m7sDj|HZ#Peg6#V1Y0w@&mN?o+a`U3fv zk53cU9#a&3Gn6bWFZ(E5XgD#jeww;QVE^p*=~aV?#?y5HFU$s`E?X>2NR(=c^GtPA z$uEPhL8}{uX^EJxj3YDBMW5F|bef2x1Vm$T-l9!Ns3nYsI&6ykPD!ughzPaWBnhFV z-sF>DR8k_;Jv-dR3s%N2>sEe|wkEC^?vd|l1=@K(BoVl2RW_-=W-wvSN+5;t)T%(` zSAakC8D%Cuxp3B_5ypI4WXho8X2W^&E)nU2)7j%PCronI&8au4Yhnc(--l2M6Vf@d zHFuTcnSFDMJ`HqTec*-Wkact0Jz+BDj$N2&0QU@V7z-(H@{UluwGdD6Lz;u7^rTI9 zyOH%`>3O)>WXz3p(qw!Ugr2iqQMEkQ^TH>U!l#e{shsg($S%LuoL+a4rzJr{EO8u-3zh$1h(ISH~;^|qmZQb@s>D;tly5_>Nc*|%)dVn)-LHGK8?{Iw;gz^=#rh3_896Va`$*50mg_)< zg}R*b?kK#u9D{@jG~cJ0udY#VZyiP#=uT)T2ncBp|HqFzFz*vfM{{@gLTzJr0&S8& zRs2>S$9XkzhjL_I2Yd{rC>evFx|WG{8ad4BTj7p;#iNbsi>=iDM#3h3E0o+uLZ6gu z3b;%*+dDpB%E@J__v5X?(k&z~8$jHG8}G(nj$dS)ti8L~S*(7KlF;vmVS)Iv$KFAy zbql$XF<_K49h|0XI_1%}D`aEL3LHl6Z!BC9cGhn?w*FDX2&8+U!Fq0O4D;~Q7uGe* z4GEzN?o#m(t8r?#Q3$5$F!%kjM#s97x>Mh|JKUOFC3yTCk+Bi<(c|aD#8_M0-egE& zLgt2Fk;?opQzAR7*5xHZ%SM(2CfvR7&L9lrww@^yLU6l0175!vps!?70fL0ZKyLB~9jFN1~@#O{B5fsI&%xc!MJ1;5GtF+9jL*B|i z&a#}}2+fzPCm|XwXEBMv=uS?VY%ig~U@^e~P1R65(;>nB9A(l)O6an@9gy4|l(|zT zd@0PWjqLK(on|hz-C=+?dt{`PwY~EYSvpaY-A!q^Gi4C$gcLTX{F{Is>!VERkm z@0=X)A;P+3k7t#~xoq9)gQ`d4skxl>;W+)>mX1;tVzN;ncBPJ$N$q!`-m_jJ_Frbb z8ZpPD&T|at-Wt|;j6ADmVJ2jw500uib4Zc)IrYUx(Go*myjH+ShjZzBsq_PNgd`_} zpC!v?rwT@q0#EXW1SR5{Y6rBF49p$QE~qeXw+M^m2E;@7FUuyh|F=azuXF$$Pzoae z0c4a69qdoB?s@Z+lFD9m`o~3*i$b|&fTdwyjwOBdyCg@26m|mK^2OSQ-@9>jubl9@ zooK`<@M+9wg1_h4FQ7=(bG=AU;Csma&&W)5Pea}Iy6#1P zAotQp+x6aM-@EIhYA{kKk*}--z#L+V(-wE0R|}S=E9y1AHk%>D%y2!U4KAU=YMv7n z-SMT%J6rRu?{G5jojYilXz!*@Kz~MGB#qXOzP4K4XETg8^Z&cYZ)w-jt!Lne- z%(l1{8WL`bW2Y|hp`4ogMG0U1 z()`@8(#^oKiF#1YWP095%c^#N%89&COZ8DOv02hYD$(!P@jujG*RV7tA(ir<9=`-F zf+b^`;?HK#A9XuG=x`R?VJvXYMe&xAO}$eglUD=7HFI2TJs9SGi_%Bui3E73I{l zzy|J?5S#ARw+qH0ueV*%qZ!bFsA)C&y+n@dIrB~+LpzzW#B8Jky9CP#&8J#J=yk@u zv}{CWlq_C(!D=J3gw`D?exZ1k{CHH>V1@Uea9?R8>z-UlO1-yJ+pQd3_vAkB2pkBO z+{SYvlb(Lf0(>)|ogUrtUHet^%kSF7(QZc$)zOM?m^QzwHMe59cOq2}{4gK+*{bsS zTuaOHJrXKsPLO8xk2J1ly)@Wdb^Z0tEnN+@Ro7%N-ARE03jh%d2}8v@Hx?mR5`J(L zA+-g^2ob`=1O2^;2bRU*PlT~PN z_BEWPDIK+{U{mzG_;mE3|CupWuQB3dEMo~P24xKeN=;B4j{Bxey=G?DXM;|x^Q+b| z&$8k%NSj6~hv&KUcWI@osbm5`L~kXyj|@5LUC`{dI7NT>xIN+X@NuUw%Ci(2RE8S4 z)Bvqsp$c7BTd|P}jBlNk3@|?}NAb##i^DqC7+~~;wnz}FW@&Cbc|)dVk52B$4iV~Z zuM|EL4uQzo14ZmC8x4OW8OopQKM7cL%;<{){Mks>;(8R13sB;}vQ8F>)Z@JX$Coqp zQJ|Uz7+}qhF1pj~9%XMHyf#Eu7s~%AxX+WNy^odqLP!0ApcbSQ9X-AbquB4#t0sbu z*_GxZR~bEzXY$En4fyRIUn{Ur@mpa3rN4R?FsUtY}J+nY+6OIQ`r{Iz77K%`z1IIcd&!9`R8uH5hNy%X42jAwy9U z?^lr*Wzobk6yy8{I$)6!xerB9t#`52gCzMfh)(K@#QPT(3!Nz{a>Mv6$FCB!K;bbH zX_kDkEeBk0OvhP88-?~U0<~9HzZ^b1H45;3@;=IidAZATaY~Deup@4187wdv>*O^+ z+a`5RkQn*EAqHd``y)ha%A@wu(Fh7MQ~lT(D?FrZS63256eD+xE^+Lw<*(a^Hbp&Q zIftP8$O~dMwpXSXv5tKy_P%=AFDy+zLYWY37W){5dgbyJ%hx2z->|NFW2y(hOPVQy zx5>rh0dv)_mF$>K&3^`)lYse=uiofAVWFE9LnrQToLvBZKPPqDiU0W`fak?zh-z2% zH^N8r6h6dY2E4S+d_|!)EE%NX|t}lsEr1LQ);Ucj@i39 z4&{A%EkLd{?TezEG{>t;2L#ABU7th)Jai7SPdOUd%EFH!X;UngT*AK6OGu}sALcH& zJg(xSv)90{1t$F$G|RTO-IE115B#KA2-O~qn*}a4k5k7!BVq7SEb(bPpWfZE3~0gD z7w|*G&qpnhE)>iQeMJFg870iXXyGK5x+X!LaN7!-s6K00R$w;4+`npo@6x%4~dwDo#_h_i9E`gfUcMD)pJz+3srrZNtmvTm(8Wo~Xm5mht zjAE-wjLfVDr$&XrB@&5cdaib(r}71JfjCCuhds46URDLE8#kSIzEc7JPT zt)%yzAWqtEHt7x>FH;e;$n%puA&7hyb)+&s$H5(Ih|-{t>A*Rf!*9BtCZ5US`N^bD zYN$h4geqJ9+0dhWpH@{D+mQ)YFj402hk`6h3lsse? zy2(>9f!8{iN_*lq6&>%kzWYTi<72`61{=Oy*tSiwb1t4v;^%2uVscwe{q#&&7I>5< zQ+AGaB!J}_4Gd<}4g3Vlkc%lHQVP?{$G|3kyEs9F;nA-}mQPds=u6Cq+FSA{`=vLE zXYcH4^KfN=81BX6O5VvH!B$VCRzYGS=e*&k(yhm2E&9vE$o?;~GbXPBvD-Y!k>kUF z=Mf_e8wNDhmdCtcLuG{p$Bg8|M1iBG4&WYpSm@b7)-kxpTJeKUckX5J4l6bX>7#ix zDeBHR)<6}N!I>v3uJMZeb3H3Uk|(G@e|_hI(_LJ1oRWgs@EtlMXgsH-Gp(;4eY~Np8Ggxi)-#hO&gLH?XB~hU+L|*!@L3o#IRE1)-jO1#d-iMR{$X z-WP){p$h)#hb6qzLX$_WDTRWcI`PTRc71`Q#y(wOdY*^6Ei4q8GrzbR+ryj`jJ&&O z=6gG=BR+|~qq1FB&FS@_y>aSth7f9V(bS!gZUC#ibyCdm`2|>GeC$1Sl2!5+_4N%w z=uNOP2Yll(rF|@@s`(O~Zzgdq7+>n0r%!W<9flmk3m9i}WTJxISe}vq--vQ3FgJqXi2IfG)VQ||0URrbddomFSqO)8!hF`hL5 z*s&*cChip}Y>8*mGcB#)(`H}O89J%%(#j@;$u#cEzTt>zEVHBpta}_ROqp!xlYA1R z-|>a}i8~2r$Jm3Vh7}D*blS5{bCA!3;^&7J%b$yaUFZ({IQCnD)xk%|Z;l7%PF2p@ zJN=ae*vt3%s;6YrW>s#eice3@1`RLA!1I@vl!0rg84-J~HJ1sWcPS&*5)af zI8rlORp0l5hIoIMf1vzAFI{oBp~8q}C;)Z6DDJ7ytJS=t@Qu$xBOnvslREitz;YSf64swcu>W9sFyV&>hJ1LcZ@%eN6K*aw)ltx0Bhk&dvyxnaUIKJKGiwj} zZjPLsn>AFM$Wjwp=GeMZ?_p>jj(@OgXrKJvsg$RimWo+Bn1}7RPRRJ#xTGT)39W(wCa6c6EmIjdO8m}Z5}zj zMpV{7%4I=1(N~ljp+~bP89b7mA|tl8G#bonk11~+)LTWD>~N$Ia7oHk>R_DgZdl>#-&nAuZua@cO1Vm)gS-nM*3)q9X z=U#`%t0YymNkZ()ii|IZc9okHw#?_iz!*C$UXKi?r@`z%3uweARXp%^{)_Z06QvHB z8CmvipVgN(?Nd)NtQeX+oSQTXCIn?FWmm_Gf77+#SdW5$wg{?jX>)DQt;rrxy*XBJxU3iRrZ^>Zo1>>DDQO7f{x+?Uf3oX-sjYUN49G~N-@-_ zK{{&1iArKCOCExUZF=nBk8*0tP5Ez{$0v-L^8H9MF9c@xY(1#NDMiC7f1!DO*7x|B z@A}ztvxw1=X-7$JPz-~FVBMf7$p@7GAy~41yhc)D#f|ToQodJowi2aV;ZHL>=XH!t zmHBBiF#%sDW6qZe6I`iJ2y1`wY;17rDUZ7)pRs+}-uS3IK0lN(4A!WoD4$v3k|iEE zAytYBP1$nb3h2>kaTl0ib27E6XfFH=txbAw;clZc_qOR{Bz@kjVpLv?$7(MRb$-i) zu2a2?{oG>@h)mmOJB|$IjLWqRSfpvAzJ7+6BuIu{n^lpi@2GCjCP0X_m?`j4j7oq* ziA@rOB5jtALQUTR1|H_7E4HUa9h`Mc0+0_nQMi9ra2{j$0ZUvMTd_}atm(FilkOqc z?^_Of{T;iN`&BA`UGI#-?hyLy;%tJ96Wxhhoia4fT8XqSF=LQ<{o0ZF*{nQOLA*-& zLsGgFl}}Q$lLUM}<=ikXefShQWe=k==;Cc43l5LZfY1ngG3B(pewe+lBTse_qkE3G zAD^!rH|o;}nZWTEt4ihU-!&7@7@aFm47OOO&#PK4sc#=`Bo-&sCgLI>%rO1?(FXj~ z0%R~nyAKW2tCpjQaLTIo-aT|0z zI7JoVUw_;Xb(=@fB@+M|%wF*+%6~%OngIx4`)VzBrzGxz!VxTJ;BC?aP4oN16WThv z_x3+}uwkM4?O3-lps_#z2SnTz7537m2=G6%a>C5)s!(sqFg#a8q`S;`u9DDm3&2B| zwfpRy7MO%D`h6}Hf0g?IO881cpIHI$VMhUv?+_R%*x}wp3YLY91WDhc1R>4$U&cZU z?qhjI8zA4MAxGkX2H65opsh9ldK34jF&%D{$ay0Iuiit9V%`DM=u2-x#CRFa1#I-4ZJ$4#I7;P`VSBgY%mZI zc>W5SEDVuQWP)IeU_*x-09e$wY*-5R4_03@izz(Mz5?8v z7iw<^xLNY{;lg1sDb&Pa=6^002>I%jsx0e4xqlHF5ZI6ws4Ra z%3<+GrI-aA9Cv|(jL=;;2#vG&Q@pZU%cR>s7WzB+KX#V|-@*?NyoW#LmHA84%}Y3w z7D{6cAb{Fg0;uj%Mp?pRVEX^pGH>}u%+;;MFyOxy_&##)<7x%Bd-#Y~8YGXfo_%C-&$So6sornod zv<2L6R28=H5V$E2^Auj_we6p{5AEO}QU=6)LI@InxLHG2+FxtmNi z&*7ft3sCdt072-!BLEq)zi>Z{yV@kJJiq_jzWoUQSrZfF@9@NBE7TRHRF!2-~vapIPcN_6#h;S zt-Dl|5g7u)Pxwy>>AwUeasT1N+i_Q9gEJbp9e9yf;6?s>KQV)vx&GNtI$YtY2Gnj{ zg`h+)0GxI49DyicsLs6{{^36; z_YF@Tkee99`{0l#9Zz5};QG zfAC2*MsmAbHbkads3aAKb)@ej*V)-i@l-X`jP{vS zzi{^;IAMRIO^XcFQlgi_XRh01+nRZbs2#6V?$7(0>!ep}p z4YFo)%X7?fNMB8Gqvxhs^peyP3n;QD*@Rk^*}7R9G0*6{q%6h7X?1d=~DUWU-@~i z+Cri`ar9pKlRth1!K{9leUn$OnP>OWfi=h<=UjBrf4I-!_?$vp4F#38q36jU01hq$ z0S@keU4LlvLr0S^34nXfHkEF-)k3O23o5Fv@PEWu<|ngG>mDj(>?ZY(4`UAPv)^%q zB!`DfchE2`&LCE%f}45$_bErD{P#0&FL&l};DVZWY{F_uvb|0;rz^i_4iy?D7IMC% zLCZBNOf3!ien4JjmqRf}VuD%hwtsbqdP;EgRKDzc_twO6BpUEZd1Mtnmv@?C-48FT zs_~aE1nYGfue-{E>Gh9O2C{IPUwZ8CQ*i^!8wT?5-Zk76ehE=OY-LUn!X1e^tRs9M zo`x$lj+U0rPW;vd1OaHzP!kY9cIWVwYgySF;`vf~r zkgdq&?}WnX*8^Ce`D}8ot6#eX<*$v~R!)O2`xu{OMaKAK%c0_s)-CAUW)9W%^BAmr zL@l3Mh&Z}$>!^r+^}}w2`e=r(^K9f<%GgCCl&E@{woKu@vh$&952vj(7@4EjGhX#&J~g7HfmzDpnPc|5Bw zB7JH%()jh{A~VJr_pER7g|RZNHqH%PsQyHgdl-F`oOAzT6U0Lia(uIMvBmO=dLJo+ z;e=n0Ii{;M&aYmT-+-C>J{dLFwD3=nH0fF5B!9(gDs(QzpMHS=^2qfit{$eE7VaV@ z!HPQX++NP?kxF3O;E983#cwgI+7Li!;E0a%kW%#i0RedkXb=h4gpWI)%!)dJ5B@oG zrQ3ZB>pn}P@J`e(fYZAWw!Vh6Lv3|SGw8q@lvEq$0uV-%5Xg@6q7p&P?*sBr9f;-J5Mz}0 z82)PiC+$zan>t>=iFq)7&aGN5Q4gCG`GB*lx2)u{;v7$;&rhoaC9zQ;@5i~&ch859 zC}?ei!z!c}ua6DSJ4NIdVwUiLW!dQ$bHA9ilZ2;SgzBO=jF5jjBUQY{tNt@nHjQB( z@@)DxehWoz@}6CR`hy&zp!f&kI~@!!f+pvRCYKT7{lnR1K7hZ=lb1YqVt|Jua%3Dx z0D<-q^ndhG4m6L83N&@O(kp%>YKBz!i8 zGJU=rX9xscwtIX*szp0+WVM+tGL1+HwUT(Ztt?VN5rM}d1jNO&A8357&q%H&&o%b8 z)nx|FD!!qCB1=f0cbpQhSDuk$=tWV*0V^E4IIp5hot~r&e50!abvYjA9q$=Z_mV+gzNm`_ziUIoH9k z^pMx}o%n3Dy?6Wk*%0pUI@xaTXe>R$E-xHI{vqC+n8voS4bpU7T6K>#}#9 zs9kSNVlR{(?X#Y2w33ix-E7%QPfP2vjg9m`Usb%vLAq=5Y*-CTy^lQYIJr6J3aCyo z=R?96c5gttB&BkD`h>!2%vO42}(Aycm)$I@LuFQO<{ z3lT`G?@z(S4>0=p`Xk-0Qd2aeP$HVDDE6zsxDp^q{7aR9g4|Dy?~DAG`I4xm!yAiQ zJ#SE-j2t0igXx~B!oTI!| z25sl8lU7@0hStQF2_X040o6#v@+tPwkkbALiY^{i#XEWZ@@)7z-&5-=esTNiAgp_( zt56Z>uJ*Karwi0tEHk<0l(e>XRR1acWdNn+}qu3eiKKzx?lONX34n;fEhqreqRCgrH{A~<+NVj5lR zCk4ErviNxgWO;OPJf0aZiVlf<6v*%2 zAE9%vu!nZ$U8Gf-^$6WWw;#3TwF;{;7PI8FhVJ&Lg^I`Up*S4z>yU)}rqp>BV)~n? zpc=0S5|CCpwKcA)KY9V?zSP}oWfw`D7R)Is0mgqBJIU3#r?ohD*~I#!;)C=tx(QWO z8Sl6vCiEWR;T-E|K{PIe1P9lF@qc{l0rQ#xP=Lh-OFje!gm>=v^=_?ha)7c#;_*@^ zR!%pz;^I4JPFxLiK_=&rSHl~PGky@$a}?=!RCytXiDcBds|*6VWYmWX(mg0NIbMW2 zP1)8@F+TDMw4A>?co#GxwIp`Fs|9=#jA)6O#}SM6noLvA^rsn5t<<(l^vw9DtMZaL z-zgy9j!C`|w`e05){@s?YZZ^0h(t9lU9$O)nw_lTxxv|Qv*<*Gj7V3FKQ22OPqUbi zQbW5>>RGlc8yq|wki@HZ3>!DbJINE7v>T>Cp-^;yN1JbRQVcIg(d>uFd3xBebiW@8RUme4kL!^Lk7v1oS# z-zm&>E?&G;R^Bh?xbBGJreeY&ou=D zDanXDXWP~jMoHDHD~LEjBJ5)XIK#7eeb<|OmCG3&nSO4iqDcgtretyOaxFilmu3m5 z-Nt^{yI*=U8=1uCIC$!QLse`N@Kt?(CCyJ1$V)CR!lhLq+Eadl!IiS8xzZ5s6~@q3 zTAtBC78WA%e9S@SwuQ<=T3_7?eGJ_QSdHSRt$l=j5kC>VKMX;?DBWA%!sCioIQ|lk zQxNW1%;d|%9vdEyBd0FJ*$X22X(j%HL-fO{B)6mi8v{Ja>~HM*5p{!3B`x?^VS5j9 z@8J&)8{=u_mY47a%K5}mOrDNP;-!rDi$RmP=dB!H+$+;hKbA_dmP)R9=dXy108K&| z47}i{k~fF6x0dLl30C+T=?rO%=|9+Qi{!M%YaNlzC9&*@&yBeMlKg;Et|0D%k-q=( zXSYscr|A7PuG)w0FQ`S=UDbU!y07oKOXv4CoKwAXd_3-^Lr#9h95CeG147Q}zsXU8 z^btcl)hH(%7ZSR+HaQRZu^WeCJ%CP(Pj}lcUfczpNOp7}Cp8*+c&mC?mVQdQ%_J_u z^03^U73}Sw%a*RO`9eAOwFE0ZK57CiD?^I7jkZ&XsE^r!u^^$H3xxYrE<7LBVjb$9cK=J_=Ab=HE zs^dwk@hs@v32b~JqmeX6vR(Dbd@W|JRY8&#l_v^)>7Qht=JCzlOcdxK`(f#p4G8jR- zxf}M97ySqN1*{46|9^t8qEG_{=ui3H;iQuCNg}3BpHp$s zW=`1iHR3XmlB&?6g&oqrQN$r79qxm`(Kp)knyyX~rw2=JF2!CPPa52WUR=|TGhOLtop7AUp4nnAp( zwUUH8<%>X)*DSg}A~P$oquR;|a%0LPevAZg&KsNU)YK#@6xy?rB}}0dcHY|0M+A39 zMs#*}{#NE~ZEvkxqXi?q;|?;b<@fxdJ_WJ^)!6%7mzeqbeknP#zcVyJWpd}o6|W#y7BK&sxgw(9=$WX# znGIH$(F^HBGAhUU`fpQ=rPRm?+LdFkIq1WtLn&f()vl|Auqd-;O&iPM!?(jQ6*zT1 zr;XwP1s1(&-H|0!_?fNzklJv*u9jH3yEA1ANHm8$rzaM-Wp=?q+>VU3e5Zkr)mtui z_Pn5V=5v%F^&izNrR`0pFu;PC!s5p>eE*jQ`5I***MgYLShWk|Ai+H+cXo071RDOe zFVHf6L&fDBsq(g$gOEv6VwbHdDsiTezUTN29Wp;=n%6+iu1aI4?nfN`qiLmFYnVy(v0vjRo~38kEMi!yltx|I~Ovd zKxg5iR&iFgX*?^|G(_us%OW9CoSilSG01Mt9goK;Jr0FIwrZMhF#res)Cm+;cQ$5^ zu(ta_9ARzmLltto&Q_;zbXSyJ21zKQzNQo($DDokq~m)+g3r@&_Ba`VgWT-Lm<^UB zDGMIVduWqA^?wqE%nfXs!c;PLpJrR00WbA_BuF)@RyAjtvmPIO9B!WM5L7>36@L+c zYb({4qJS*BWqX6jfY-{Z(xlFH4Bi|Pv1=Lapd30~hI2Vq0B=MMex804QNBsnqcwvX z--fJ6VofbS8l}QqMu6PvB_+q>OkIXSBP6l+ehDw3PICf$>GKRdNY6~$?yQoh9a!sK z(4jpqIdo1dL~m&rkn;8Ey3cqA{JM|2=ZvyiGKti5>5#i%EpCG3#V_RyF`~YNY*+g{ ze(3in$!0fs;_7i(ub422qiuEPudP+HBjcV1tU-aFNt#x|dClq@oOF0~=RRwY zfW?SSqi_^1vH$?j@0V`Orm_oIb;I_I(}hGHHTL6>i_|c^*3RYVy^GY+Hwgx2b)VrPeQRa#i$i=aesH$kh69;o?aX{y1Lb7<1K7{6FJntnO@n26eKK-<#d+);>xKw;HybaHtRhLg zi-|;lxk)DX!#mPB7;RDL@ZHAPv?qN+9STsQz@%Xy;rs|8@fA%{L+dZ+_?}gSo39Zx z7{um%bymvwx##G|Y>V#ZXGgo~aL&i~ruSnVH7}yMA$}9T;XChZ z)J-7XmlP1Ez0Uibv;#?98>Ml=^*e4N!%+-FoR}aItvuz^qySE`9pycr+Qa202JcH} zo+tSEgHa+A2+#p)LvbBdo#x~W5sB9D(8%&|dgPB0KYht)LS;H2LZ$1pT!a&YIiDo| zS*3)Zj~2a?9~r-9yisNDcULt3%+nQR#+=%bGB?+FyKuU1vxJ*EOR{Wsav_VKJQfX1 zcU;`8=Xo2|JyAL zT{#N=ZSSfH+^x;RTCW6t?T_&yWw#dVZo*`d9`OFC|UTGqEj;g@o0)htCqronp} zUrh4a4LZ%3TqNtoeL767T^Ks$yOPyT1rN2Yq>znX*;Uc)0Ob#&7s`qb9Qj8mI!Y)f zo+S5MO%{9d;yOleL|jwDnU86z03bSV!-i&z}^!^h2DjZ^YX(>g|M7 z^)7X8Oe{54m_weDEL5CTi?mXCq%`$Jd#D_qHMOBLY3L@F)4*v_iO8?pM4`TxALE-7Q$ zPxBlj61)@F==RZptOp_+&Z%A6Fr4haIBso8UaxgVfCH?${!+bft92IMNv#ix6`6Ef z*Y`*rp766EIIzMtU)-HZ)h3Iu(@N_%wTg|R?e@bw7vZLM%iC3iG$Gw zEpF+`oPuAL#9UZZykI-u*U% z1hi`f`~Yu0aa=#Z^a?oC_TNwiIn*x9_;mbjI^ z_&(7TkFaxNnjrXeYjj6$*d9OO^nBJOrD|=IesC)=$%@?{cc+Tzwh5oY)sR2&)z-Wo z(QWgmf@a*1=7IvzJUI;o6&)I9j(D*8RzyufQ4x+Q`$)%=MAa*3<&17%Wf zm%z*0>A4t}x1CN6=be>((h;|Aw&YI|m1$P5-i@DkPhR7to;IAW5ri~{y%9M&+ITYG z)oVJ(&MD!3(CcvJ>91f%lLXrR0)RB)*)8MpHHVwGrFvw?p4!v5MonMVQO7s#*Km z#H$%2_~af{7(crA%CqZT0Kasi12VORH+7sUxy8t*U&qDgFMpu~_ES!)`dWPWFy3(a zLIBsnlgUvx)mpkAAAn>Kyl}WA zLdh+Fh-xFtT&;ghu?AnTCpL{;jO^Pn0n>Xdb|*9KoPukb=o8z;;%*i>qp44MmXdNh zuic2!1g?+#J(iUUzh@hGB257HtqT@`8vaXiX-Q)f=hkHVEKgW!$#JZ)sO@=kY-uGG zKLDrr3%VwGc4nn6*zSJtyW-r%WjOsF`6|6;!K$ReDPx}IKq+$LGI`7)#{LvAaW^A_ z8(8HT5OdSM8D7zm!g%HM)#@-=FPOMu;f?LyUDM`Et^AeyBgy#RzR$0)ZfDfK0HZjC znJ$uT$_yl3G1*xO0>Du_Qq?!FfeX3fk(JG+5*Iz8F#4fDTke1?*LB0Ulv9ZkXi$9mh zUFGk#3%tR6QUJO}iU@vgefis=0eG<4Z~)HWUNhSkW7z2?OJ%v*@l~SFEhRx#TBXYQ zxwpewHo-5e=;J8LW%HANF>XYrm_wXHt(cMET^jj2W0KJlcIO{PnUN~|NDy200b^e9 z;ET$%Oz!nbv4P=L3oPa;s`i23C+UTH5(@LV;Pkligag6q$x-sIe8kFR+$r9bpyFx9!SA#Nj%m)%IR?$58ziD# z2gq07e@bHI889JixC0^#PP{@&h^w7VOXv3~(0>>3)_9Nc_2B3FEXQh=R0>`#;npt4 zyBRCNH>&|lo?k=y*oNQhuZsYSuNWsq9mjcm^XnS)(>cf~E5_>U|7cKgLpqFAJ(XKl z=HF6K4PXhcBa5uRLUPHFNj3@i8grzpWYmN^S!F~Q+C?stDA+N2eabx(=3>i2|1+|v zp&4C=o#HE7i>|ZdVt{qI%$wDgw3oV=fB2jiOu}o~FuK@KBDu(hIL35=YLMR}Zj*++ zmEv=it@HNA4oMB2$rak{&&DcUYUQgHgswLdy{Uc|b@N+Qb3JkCA~s)}h$M4hGl#nr z`dxZ?hEe{$%O=PFD4*!XTj3V$h)vOoLnLO^5U=eIqslg>?Yo@j=bk26;vOP3`tln^ z#ix=nqxHH@Yv~opn)#K~z{cB!40^Aj6h=2Kt76I$wKwk#ldRh)eP(DpPqM=&>cOmN za}5e3X#A=k_%6E&GBehT=d8737Di2r8tt8i%XX2C@%$^7Tt`;lSJJNeM_)6*2E1vWF{L` zgI3NKX2SdLzEgI*XpIM^Ib`IGT9-@qvLC~{oF$Z|f}h(}&+2$cZVWh7&ULch(*9zt z8}wSp35)19Xz>yK$?e8NP+|VI&n1H^gxg`HU;J26e2!RWy-5DfsbwdPlV;~dn#l8p zOXFE;#e9vnNpbTGHubw8EiC%GtigfsN&@s>p&AotQGejB?X!o01+Io?gPVaUb;g-3 z9Lc|)1_tt?Avh<`zPN|i%==xPSq1rG5#W%@#}rUFT0oD=*Ygm4taiHnYF;3HTCP1a%+K?RLW=BePI4a zp3`;=bvDv8&b8K0G7sOL^V}nbpbP1T+dCoLJJLCLaB%AE|Gm3I0)6O>XDkdpFauyg zvN&C_9$svKpoymgU~f2}iSvVaRFNPv5@Coi#!My`4YqNs;`jIx1XKdfvjkv58nine z-<9}($VWX#7y_X++<)A_Grq!vO~In~D>6vscrYvoXvLcc zRC_`O@tM7VB?QhB07!tPy#OeX+Ig2p8|o!XBA89si3H5A2^xGKCU2_61{6IyVcS1g zV}fyY0N73M2?2n|h@`>)f%k|3kBtFQ{gi+y!B7YVP?K6F~Xs{*XR2XcIIjG8zK(^%*dk2|(^)2H3&`5CYp+G67hjLJ`e} zw=clTrT`1r=-~-IxCS~xd*EQtfx#rt0p_$1!~Z_A5QF>gUmPx|PJ$6kYX-mt_df>^ zz~oLI|GRwtL99I7%ByI&|h3&y!HUN5%v^_02$P<7GE6%UeZpmL(pxBNK2S~06Z zhXs^*kF%@XNdjK^|>N7Rvst*qb=K*yV|4TZQ{3zYF2hhXT zhV1}dMJ(tswV7lL(0dRj*zw==I$|vaQ=!iYOQGrg-Fk)eN26Bgd{|7H3C_rQXq5rb zn9_g66wP^%ih;Qu0fey5VHyW;OF`3{f;#`*lrXTBBS0VKH%tFnc$yFnZbJzUPVFy0 zzWhhOe@?O3uss#F7(OTHV!|8$M}rfc0BkU-<$-$H@;?fc*Mgi5-Nj)nyEBwk`1$`> zI#`~F9k1q}Lvwry?WNRTDZB=EI0MvSQ*m6NQ}t#argFm0(4g9RWU!sfKSyHF1D!tq z7fk?ObonRn-UF?;^dH)Ci43+NSO&^=aB#XRaB#AJWl#nVa|P(YMAVAn*8$MV zFGEZEccnJLN3H-9Selw{&_L7JU_OukrHKSCbo*zw6^8$=umtr$f_6{luRuV;hdI#8 zg8M&bRS_)e0~u(jC1_>-KJJEyAEZygQ~xeL%N-i@6&VbLUQMw6w=llVrg0aj$uQK! z^sjhhU|tV^Gc4y^59st>frsfbf3*w86H26M!U(V{bO4jbKcKhT52!ep8hYtThgKPU z>1kqNgE6jOzm8F&wU|j{jb)*=*yL4+kNSqE znFzv#DX2*Mk({m&100Tmwf zlc|w0_%}m-yD%e|l<1L52Js2CQCKuJVICYSTg>iVj9?IPZ_e8C;TQuspQiTcXIt~C zt@F4|uDh^$i@K)`(+OQanqHNqw^oGj6N<&M3GO@zIQVe>Is7>EAT$E{>*y(l+t>1F z8p2OE5GxDi7KgE9RIR3y=beW>k4%&IpgoP9GSKAl8-%4Fs;0|m-IUBA;`o+?apzN@ zX*%Q7#I}Y|CK2v8j@)CP_jRb_=NTY`&jX(_KCR}oimKtQb9_UmR}SfPTIAe~N;xU< z+*NT%VH6W66O-ksnYjd#iWHn1)`cq|mmCQCDASPUMy0+ptXgnuxGMMe3GY<+(nWB0#ur z*5h?!v|2Cq^Amp!)3G)3X0 zl`*_ooUN`atH*Z%jkBl1r1?E7@=W*TDc3|!N+6#qo%N_oIc!es!bNw_f+FxfHd$G> zqV4_!8=mG3m87Js@zq0rCkSg<1yqd~IEk>bFoIxC8zSCGYyNIzUoEqZ|LT8la!Ss;P- zyFmN0$Es%X7bS%ej8Fr)*mBcv5HcG*>NP@mbT}cw`{R>c__G=o`c`g`7j!4_?a)h$ zw<1znebvX$nrIr|h)s-7b$?`^Bi{SeZuo>!Stpes|0DJw#_}lp^LX1{|E$kOBg}*H z9RQii#ldeVWKzoIagW-~a||Y4DJ7awg{_n83F`MpQa-hM(T@5592Qf(DHEvnkk(Lq zi7`8uaa&4c`Ae$b5&Pg{shkhc#lA*g+AZk`ubypsn^n!X9UMkyAF>}bKj84>?=_{j zNtbj+EdGk$SU4=W3l19;mMz-IUf;rcn5Ygw3Ux_}{qbVIN7!->h=t2i%8B-^NTm6= zdMw_A&w9`GG?R;*8CHc<*Hssj>+`l+-m!a!;b2A`Tr2;5!CIn;ooikZdiy?>`AF$S zWz+B@G0-b1GQfYQ@7vzZT5)p7pb}7=NhxrO`#7 z=V_VSZNYUjji6%s2agnWY)d=xL_gO1L&}CX2_Fy$C$~FM80oer&t%o+km#AU z?15l)l(Nj;zl? z^j@pjpAKJbN`g{cp^05(5C?Op#g9vNhw*AU1xIoj;gp|~?=tIrpj?^ue&$lqx&~#F z{Eq^rtY|MhQ*OoPzE;|OoX~i4!ReHuz&T#neR1oK#;D)z9{a)^zJi$hV|(2=&P(yh z*{8~H<(H)=-Ja0tE*@bkc1{IRni`P|H*qzJ}He9?eXyTWW$rBhnF%s z8!Y1AnWSQ5)fa4He?zq`7&GJb-4J1xoL@}M@SZetw5w2BI_I=^&unm-`zB9sNGv2t z>qJc%KG!3w!2c*?MJFh&ECyq>>^2t8Vl8#YHoo;PAbM};n6F(vOmf%g<~Qfdn3o<+ zqP)o#rJiSnL_AWe2RILe-rl_sc&y-UpJ+lg`bhdDin;A${LwE)0zFOK>-MfAvp;b# zF!YHqF#g?puC^3S=#n8Fa*J4EcVywuct69cZz1lc=1PSREvAJyhn z!*iJVe)omb?s08kWvj|H90tq_=^eX!3lB!KFc~5yzx$OxGhTk$bc9*d=Few(e=i7U z;5gU&W`L`!snuYRn>^by?ZY(lNr{UfY}(U{yDM#-YmQMynZZ=pXGYvRgt`gF{wzf* zA?e|RtXFpY2g@gcso z;n&*N@0JUB{cJHIODFuoRx~Qd@i56us-5}c%+8rx8SqdjjJm$A4#HNZAf27x#+I>6 zC0w?e{dx*yTrHI<=3z>ciP?Ml4QewNNbWf~v9*8ZC+Kp6b-_HPmb&*t5pODirEGAH z0+x#5cIBq4@t_$HA;RhEfw>LV!Y>Rau7mM(aQN)Bx}T*uGry`k>aD!tBwQDn`oMwe z8pJy$-P9Ahx6CRX>HWbv)p}fGPWYfESk~>DsfEGMGAHiZ6XrgnUccMsjuKj2d%p>I z1=kg$_Du>;coED#9&NXU_}ZU+(e)RB4rb8FK$;Yue8)`ADpM+>3{e+l-mp2~uay3_?F&wE$EAs~Im9#-zx8uX>RLNNM`C#s?V)&1MPfL- zP#`RM8G0bno&-PK4e-j>CN!OwDokbZbfDOfbbhY0vT#`d+bLLJmXw4k)0^ zQ`|LiQog!b59R0peJ2Y<1)mwSX#WBJ6TeQCG@1$~`$U-2gI2Tmv6#1%ns1otH?}L+ z7-45(yuUjIMyv*(jJJY6w5K`l^UR-I=eu1w1j)^P^$LWl2HyKM>DyQs7$Miu)d2sm zzoLKr!-R*ha6x&EcAX^w@ulNtf;QlnPn)QzmrCv;Y8<86OuTnj)-5g^lc8ToqifVYX>6x3Kl?o{ETNb` z&`FbLs40|fa;n*rFz_u0sGhpb41P(^6Qf78wo!H@n83|;eRWME5#I#Qx>vp~ymGT( zD3}@X6AG^Vq0RapE0ag^5pJ@MM9=a2hFR&3AfbXCj5eRaK~Du|vcdiABGY`bUZuG( z8%_glM@s0r;652ITmH{yqj5UzPq$OIdUD4eFZdEIksM->;5n9W`}S-_ADyaxSuM(U zND6Bx)N|iT0hnMs(>~2PQ2rikr|)B z%xT{pMk>8T)*zh7>McPG*;dSSd)hfew7X8Bz_IjE7e8A;zLZ0tJA0-T+|5%ly0ay*y?lR+=S9N8;#4Y6wdaHm z*hb1<=cmt@rS1jC=C7f>L)!`qt+D9 z8`A3UaiP2~Ix=0LHr%!SykSwruxe;foDlUpg(ld8Aj5De@cXbPpNb*6Z-MS)I1*8d zR?D5suoB5BtBJ+u$xm^z88H2nNHFbM7r4L#Zld_uK}?-2Tsj?St9 zbJN*mltfqu((X%>-g6KTZz3HsT+KnEZ_h~|a1g8fgV=rJa;k2YctEzN#_UY`! ziwZIPEbIVWyN699+7!oeY%g09-Cu2eDrdu{q@g>vi(>w9{q&5Lti~Wrv4HXe-B;HN zBkA4=mn=cm1?X`2&}n=1%*K}`nlu;8`|poDk`FQ-e0Q1PwqM2H9U!Q`%}2EhubNa7 z7@2XmcXG7nS9#y+%Tooqi`Yk<>RXE58d2lOtTWDgS@Rspc@BN3jP}=zfnjRtH`?-h z)%cZ=xwAtHj*PW(JRT18IMrY=#%L$QT(h)4Nr&)ch7emu2GV4VVw(5wdvY*jMI^&^ z^Gfg4y@rW6m10rZb$$H72oV#}?B=jvb>u`MbR8YMW8EH6NyTz%3sbX`HOljyMe=qM zrlefHQzwR)szK)HKHvpVc1kL=^X!nX`PBtI?Kl zH``?Ta4rE0|CoSZiteN?SZG<5#N|vhTx5DLYNkt1?M1bTP!V$8^HQdTo5E)4(!MSk z1ww^hQCc!3o~;Y|4Rx_z{A7Uu_QZ7QLeyz)p0R4o^yGPh>d_Bf7hmXn6G>_=`TfI~ z_r&a1eaYQP4VX_lmg&8&U#GD!-F3rfEEQkUpDP;m4v_EU_MeOK$|R3BmFMl<2*&D` z`S9MOpHA}@IIKA5GR5nFB{Bx$P)p|v*;;`560s;f{D!T4)Aj8rTg=Ol$>aC{uXOj$ z#qb8$Cm%iUs-}RhJTGr~+SnZbIbW>g;7C8#&`x>Wu9T;|C-@NE{U5Q4OT1ovvo5>V zAt|o=cA6y&#gjj$G=^66d?~urb34O5_L>rbQGwKZx_hAdnb&8dyk6Z6-xkZ_eg$Mg z8)pxW-p&E(kp^`y{YMg0KfeZr3+mm%w~HFOmb<5mMLrzm{z~^#PFD)A6umd>v;Y29 zADwFt1MhyePXVcThROI$iL*yk_pFpxOS4U03Wv)r2LywWFE~hZC9WLA<^tC}s8Ny4 z3Gh_w|LG(2^Q>2;g{=fO8MuJzO_m+1AbBh!ql=w0oX-ARWVx-oWz9tG^@T`+iXN+9CcVyCS0`z`Hy zni_n%QhF70zL4K?{S+rG7XnQjd}kjT-I8MM*T%X85!C83y6Vu29fo@5@6Bu$&}Tx` zHavt0#nvxIiun2KX~{Q}^wbG&m#=RJ=lcE#3GM8X`y6S#yYy{Z$oLojxbN81diU3q z2_5sCkFWF(Z$}IVej#{&M>HmZEg2HC&1he?+TU~o*d#9O(QJO+!T(M?cT4oFTDYpn zR@SP;VX99QbjdDu3^{JdToWYNa))+&E^H!h^L+9&sHNrk%%^}6Zp`K%CzXwoMjdIU zpHDuiO?NC$YEj}}a<1Mcs2eFyXZTH;Ct2uA0kN3fnP1+k4SFu^0Gv=Q8+`Sy3MYT~ zL*6?ZclGz`D{LV#A9$N8T)f&L7-VW@r`ldf{h-CIvl}ZQCC%#V3mNBjr-mm`%JG?4 z>)4?7`&1;-PW#VxFP<7X)b+&ULTsJIWeIAsMo9P6_@0fn)ZC%rO3>@aR{q$?ol^Ot z+ODkLd}CLnEn?xPD=d$_(cgb$WZmT`)c*5B*dv76Nu(l}xgwDVGmb41F5Q2_SPK~C z(vtN$?$%F&_A8Oe%2n6)`gEOK|mF*i8`Q+m0QzwO!mm$Tb! z%#=p>{%M<+lJf_gz9E{}^MmZ(eI!)Ac*d9v_A=3rnhZD``5|++1Np{Inz#k+^84oP zAS*dL$wGouKEI)Uy60P9=eq)q#x=q7yzX%kmNYH=8)+Q1#*1;6>}|Bqq3s6!2@R|! zZ~Lct1>wmX>(^P>Lzl(Xs($Nix)A(S4zo~{TV{D&xn?cM@P;nEV3@44)?I(Zwtwtn zCnqj(2*;*j@vqCiY2UE1Rkz|__&IrXh1+IZ6jF~8Eidv_Rl`RH9m4rvgTo8m(k4fI zZ#nI-J^gm}#$8JF^p)PMvmo?Qaj8V~M&+3N$bFsWawdX8xCcGuO)kjhars;bcr3!` zZIG(|bUN*0&+B!qe!ut1rJgbg-t^AC-zKxdz0G)YrDD9GNU{B1-Ka!jYlOd#-`b44 z$EQK%u#UX+h4ZG3#3wdf&^p(aUoEzf3w=#Z)5)~^HQo$`X5-VTzh91S)S!Ak{Awtu#z`hVF31ZuE6X)G}d8LDaWkP!O#<6mF=7wm- zYb^lFY3o=-T6eFJxlHGyE$H=&U4#9RL;@fk;3#VaE39NIuQ6%e8ZWI2m3Cxkm0}Iv{J>LbAt{3?J0c^#Q#kW+{8*UGW}e(wxLoaCl2f6JL!}4%^a+ft~kBH99UVn7nb=dJg-63!1K;nDoI644#bhVE`djhcS1^RLuD>tW#Zk# z5fGurS}*ZUn%8%<9l271O}_nZY6dMHd>mKAExo0Fw1dGY%Su(O6+bKYg$)diK0V{k z2`&6^iXDE)zO})_|5_KSH?^Tx_d)MFfdfg8e zx1lT=o>X%r`t~r?s*~qhs9|Rk_!s7I8X?}n{VMVZTEU>v?B_n6&^75H^DHDO4tI%2}{r{DxkHJP#*n+E@jBKJL$oOh$&Ves@0k^+t5 z8;45<59qxa`@#%ks+v1q8OAhsNaB7Se}8^hrL`(r+w1Ag)EC{?8piTH+?(!vIqg8R z)@rPbu!$O0{aQ&s39||NNC^V#^UF?#R8xu@g>y*2j9n<}0-zLy4_@CTkMbnTj}o9%N4H=+8?{j(U`2$Gd{@dR?if1 z&0xc`n&AFTLGTjgG^M%Guzc=P!|Jh$^2poVFI$w0ZoDB~=H1_FERQns1o(hFc(tX8 z?!HR#oIRdK1S|Kcir3bBe^}FNhYn#fu!1BGwU+x)qI_1I)~_{oh8p&}{OrnQbL{30 zCXYSL7tufry$78qk&zjYbPsHquPY&~n7CRUR6FGukTx zJQ^T!#0Q%#Gy?EQfKc}7fdUN>1%lcR>#8fGec)A({gf*@QWHdq*mH3D6a9)ptDMBH zIxRX6UNx#*U!fa-rVNM+DA55CAqw5&uu%B`0djvsX5MT#=v*WGF|W)jm2u_jf~WyK z9S|X6EWrJ0q>wjlfUFL3lzf7}Uv+Sfc!{Pmz5Zg%qq?qP-9_HLrLb`UdJ-T)cqEJn zSkVRH!UcM+BU}^LKxjHj;fh8?!jQ(19T58|h7fc^sf>>rt*LVT#{@Y5(+80t2419~ zyCaM{QgP6lMQ1J`(hx+8;OzN%MKSk1LK}pmx+5uOK*$i8HsxS77;V0LVgAZt@p3#B z+6JRNTF3{CNE;#0Y;hOoJ#pvA%M)Pmd0W4$j#_f-t(=MeADRKxJ1BQFcg8 zK!RY8c>T6k>2;23%lB2}Foi|Mw8&PxUbiN)2!;gDB9-|2}l6Ly>ei#)ucLLS>`{^3Ja4lOTG1yRC> zkP}!@19739;i)4*eUrbz>j1U_h#bwhqL_Ls_=N2ZIKMRs zFr<#03e>QX89mw_L8b&j4xQ2;p{UxR)Tna8h&G|2fiw|kiv(4HCmMgn)`7u!F_^BfDUBoL$kvumN(*WmJFcQ1yP|rq?|!}a*=7JlKlUbyc7Ai{2JUmiujMH zk#zyc)J57{N`Obb5J4433MM3|bGh{Lkt8x;0D1Ft`;UN00Wv+1CaPWlHhRdOO)1Ep z5&%CIh!}XShl~@&jH4LbGBm?xihK}IHm#41E&PyE^zMJANc;s-sSL=NAlDa4`D{2$ zPY~%Dj9ltB{_sxSfm8|uKlG7H6y*rt0O_c@8$K~03YZ&!DA1rc3f$;Lf>MCG-e2H6 z3XB^-g3ABKscDD=V;9iM5{0m3sz`WU!CCc_SVr3aDxCwL@-g@plv zPb{zjjmCe)w17gZG5#!yrw{S}3DLksYjf(ThqLp-Pa zS$Y?l&jd0b`>F#dnp+o8J0YQ)f6p%hR!q6$*3?(2f2oe$^(jmrd#^XN4x^?HgFsgk4V?@H8yg$N+TueJffbsX#fMstOx&Bl zP%9%IC?6?0To&&h`V9bg2igOW3^%y~oRWC+pMPMF6aiRpP0~dq0_P^@ME$LUW>Dfl zEZsoLWLHI&LDrIToU#82eltwoX$+%S*W~U#hI}*h{v0Ao4+vI7$lrti`%?#b^Ww6rB>Bl?@fOaLe13 z!xHnhOP*K|6d5v8?`qMpVqlQte^TC)|I9b3WX1;)HHrT31514ML)30h z@$R(G`4Gr%*T{E0i7a|Ev(yZvrRMUJWG6Q}w(k9}haQL)i8T|_y?`BGR_1;v~#k?UqDp!jHOh%i)u zTfX$mGi{7SzKRS}Xo2Pen)0WFH!Z9zeX8OuwM{Q-)0RJ8^3$|XPwI2wO!)ITxF~kx z*u&6$Wa$m$vT{8r3=_~^==Rh|vsrG*El5}oxHNKZTANrdMQ%Zp!G!oGU_#ma01K-N z_YgWI3;8&nDa^o*w!{V!;37bAxSZ`@7nfh7+7hXM%j9>TAJgjD5w(7! zx*@h5EhJpv(&DSnRCu32NBTs2KuBCb%*bxfW?C3{W>tUMv+lK|&))c41Cr~C%BsW4 zKeddJKx(kOn=(WxZk0ahW_TdbQ>KvMo6xG`#KfFfv6QUfN1?%31;m@kD*Nst6N=6< zC#mek0|C6XA`+pqHuZ>n@>o8qEPZ=G%b?b9Q~g;Li=z8iS-_ZLo%IuS?S4gxdrYiL zM3AR;4nnW%IMz#MbV0*ktsv5nAuzYr?x(f}jgnl-meUE^TzS7V6Tb@`zrDBgBn z^&nouhvZnuaKc0;p_8T2xan1*t+CPfk75#aASb$u5V?BZYRRyL!i<3tQjB-(@X4gQ z6JjB|t&P4U4&Bo714l|lpR%myNrINTwLfO6=g!4>@5l=Y%>Otfu1~S?Xp0T>L60rw zQ|0_C!;9dv_h1I3+u0LxMc~+W4$Lh4`reC%Olk?Wa7{~NkQH~?emnrE6~OTJEYxfv zYBE_y1=X1G0Ow0y(uSsefRj&yLv>K=|a6s|*%!`O* zNI_zy;of_FgBMyk29vuw6Jm<16_=-v$I3G_12P;K{31RCL~(RXMxI_!>S|(PlL&wn zc`;B>0`X8#{t^lin`LNeKx;@9qW#k0t{Y=;!z+$T8sXRVco;Fd zmrUa{T27iATvqiN!#JkXyDK5zS7#1q@b)DpG^3t;p^i;*yJhh=j{C1vj4G*Jae4Z(bs(EjH@8j_{*^Z2JwZn7P)-2Hd@rD zTx8$~cnJBtS|L$?ZVWvHAE);y&*kBl`ZbM@W$KSBdp^m1;Rm}~J|5N$!DUlG#c)Wl zkn>2v@15_|z8h;y-p0fi2x8#s^NO6!rH%aFHutJ?hCh{#S2c_Htf-JW!5zJdw#>+0 zbJ1C%sx7nIH9)az2h}#pwd{QaI#1A8i;b7LWhE63 zd1T&j-JP%p?V&gr8|do^TMF+2Egm%us*zER!mfilv%Q@%5*opaFirUa;&&r9`tQhi z_DDOohF3lHsXCpuE$XEzx2a~wdHt0zGrCwY;HZvP`DHeQ``DSyJLxhz)B_BumjRp+ z827mz6=B`*CKz7Tt=FRQV4mf5r#+JWeU#y{#GpM{>($L(tn#5BkXNX93F-c%A zx9b7tpLFD}aLG_?I{Uq-eu)vb{4BuA_+S7YoFB0k6ghXe^+NKi25*fMrv{meUJBUv zkss*gb%pf)3)ii(YT8-yr|c4IxMiae7OpKL^CO2khFP7$Um@gzWGaNy&3Jj#o}?!v zv24oZTcTMlF{6hVoEy;YTl`fEaYJ#+TY4mj$|^su~ow+sJ5Gl z7bn!ir-6s>x*>_1KdB3X#Aegp4%~%D9S-vRfZtKenC|)hw{pk^L;dyiI~UeQ&y$do zyW@HFQH7Rn&*2GCYnHE!t#YR>cpHv7egX^o@AF1FTPQ@YN_p^~2Y?PJR7`a4(VoOj(OA9v#MfqVOSCJC zB-aUNXe+>IS(0LAeY`s>*)M5&cx05*>K!d2wCVRx0y**ksv;^UL&LI&!*1n19&tyx9^=n3OVC z(NItVuz~;2o&Z&5Vux^mwj4ztyS5zHVKu=RH*-iTVi+y~R~+6VnC3N9J~g6n_^6cN z#qQqd!$kaz8#gq|iQK~i@+dKDMC^fOB;R*h|`-4o1tkSq0?vj~w{oSo5r zGY3hyB0sq`(|3+waVfjdSdu({y7>$z?#O7CSKrX=x6LieJ0Nbgcfv)<)h)L&iJzZb zQ};RFht`Oq`MPXHk8?pZ0wzq_zmX)TUp%*gG20WB$yj7IECe#x2hh`59O!j%bvc_j zHB{FJ^HT%uPktmSG=$JZ+dZ@!9NFl~PmZs73*I><+@Bv{o9Pjr^YYI6XxdvVX}@8b z5+g>!wg^oE89>s`o1@L252~$8yZhuZ@9lUOys0Ui*z$K%Yumr3(&c>#;CMk1zwtePz)LHAT$_z$Nq3C3}ghl^Uom-Ib# z9!zmbm^;BMgo%P2=wWYB<#gecp$z6>su(iWRW+wCHV7fJF6B?3`&Py?qgPg!JWU7i ze(UI!`xs!MF|b1q=DQ%9vV#X zEG$f)US08dIkLl808Trx8NkbwH zSgo@L1FwmPi^k`Z?7rqFO)U{uw2{3ban?|JNty8^iubTVj<#U|&p(Rd9z2=k0+n4N za%RNeAM;0KcUM=aTzI&^ONY87JAcNPRH88eUi7t%AK^a%qWlj7AZIrAL7qA~xo;sQ zveS2{wxwrBkMG>WD9l@^s*=meJv{lCUz(a^grZm)OHonxfa}SZ_l=24FU0OPv)h?v z#}%jNPni{Q?y}uYSPctPDo$^qtke7C=QBs^6}x3{XwdNq}n9V3=xPjg?dDfgRVe@ zt%nNzWzk{yv&UbVe8;7uKCxExnAGuQBzJ27`=N)sdh*`x^P!y+BYq4qwTAr;pv8Ay zo}cr&%Cr49O&p{@ZE-yN9Q9;(@*|^@$%9Tmq5No`HYdAEj44%!`}~TJO4xLvEr!vL z8mtQ;BN{Heub~MPyOaUU(Mnu20|I6{F37yZFhpnW{%Yc_(kocPQo3R!JaoU`m5!Ll(j@4>MZw0aPiYIUM zyxlYgh~MKVB_Nz4;JEUYn6iBqc@+LrvqFJkug8dW$55iIMz80Y=3n-dc|f2^9h1af z9~(nXzJyJQL-Cz>3y~))oc+|{))nkS}=m@ZD>Dx zV;FOeZXev&k4loM+f)||%lUZVVg@_a=yyGMF~bn&1_4*Ff3jv_B1PAeEOD_%l`UQM zi;-jRa_*s$ge1Lq$UhnTdFPC?O}-|E_eWewmwowA&!O?X(;A#q)P>ip#pIUaTiq%G zBATz49eudp&4rzI z9^4ar4lEKYX-*^JfQIOMqd&6~9+#m`6hwpiu;KK>omIy7ae74ddimC-AF%RW_hkrQ zTJJq_FoR5}CQOz9_q&abkNPF9&~+vvUwd=YK5(c6;gw~5o0nL4cItD{xC~ZVi9W1P zi!0v76nfxo{ZHmQBr`C}&Xz z@s^Cs7*eKdPLv7BR_jF5sv?kub4hpy;eIX8V8{MIpf$Ry(+0+@1?AdgmN z<~oVTvn!pobQpQh`RVh}o7@oMAvb0to`z9%7K-)>G65QyELY0i7hP5x@dC@9;9#S| z*>7=>Waq!Sd6@&+@Cu=4TI7CzOLzryUQ}z z5kh9=@9Ht@-{Uwti?-~Q+v8?#G+ds=R`kknTc78{+qx%t>+|&6h1gnCxR;L~B|okB zKKP_7xydTc^3gTJ^SZ_J_bZwz2*>3>J7u@!t^`!e*^9^*twh2T@* z_WG%-)}HC+isSOOU>^yodt8EXKwW8eVg;`k8+f7X-FIz*hbyIhRarG(h4u|bDv21wyqtQ9(D`s_NGz#? zsH)EWmuqaL@5D5V*(Sw*@L#Uf88t9P(wU$w}_-nSX^qOWH88TyKK;1D}kpl z)I8WnDWM#7UHN++g8`sb#KDt=#=fFS7%vj$<8HOPQIy$k8GgmOWquH(qm5>;v^y?5 zcXDB@{f<5vs~8-tZ?EFvUCnrQ4VjSK5H!=?l_@MY?mwMxF&i@I&i6BYOog*^X6^_0 zpgvnofd!uPDi_P87~KhI4LZzy^u0fYJEEiQyu0)eJh>THZob%pI!>E>9Z-qwBkq2p z&-~0Kn<^$SkmH%o{J|M0uf4?km`8@vyFuZpvG2OXhJDq!&xrA(!t9O|p1Z zAC0etYvRtXx3oyAExAbg>il%CH))PYM!??kuBH+*-NXHyJ_^VinCh|nl@BnA26CQ| z3@tfc42O^mZ_jh@X7>U*95JItpjQXnbQwx=!>yB2P9r*{foj7+LxI&0%+u`CfFk1T zUKIAzten0jmc5Ntv|ze)NUtIbeY>-b&{@!nsc=;@U`|S2@)Ug$w`%kof)KFRG1+xi z7vsn>6J(;9A#q7wD(0>QW3h*6@8iOvp;X(y8N7^oYiF;m;-sPkgdZ%AL&Y@i^|SHY zaN9{6G>crEnO!8&r*;>-iH?GbE`+j!CqR!$iVqzkO{i-k!qD>ZA)vS}zMAA38k}Ns z=GU!pL@JhYt?s$9c*nzUn}Zb!7$=uE4vs{2Lvd(Kjy>Ae0$&ZwZ8kj&1}=1;Pgpe7 z^N5n}S`TUn>h)<6C^yd8yw||JV7;v4{-(uZ@HOO`EM!eWO7xDg6BkuxR(jX!#?NEg z;=`%aT7WOMiBWATh2o5}POeZW3n??#akS0$bXQR-T_mGB5F0JrScfjacNZ4nD$PP?nW8 z4B3q4ywux`@AEeM)E0;<>c}@hIUy~1&qHhZr{q1E`f~~ysR+o%rDXA8cg2cUJyF|v z)jL&F{!tsO>>h2Y#Gh@0^nG|d=84mfrt&dImsYn0#ihUDT#_$RlvWKbc0?Y_vgf2b z?l^vP|0#wetM}2UaUd{1yO0DUzr1YI{UE))AP+01_~4CiaDbXt(Luysq?o z>?>@UF|r(Z1Sxy|I)1y^$u+opD!|RiHeywO_SCBFS=PAoHIH2RT&P8*&L#S!oLoHE zjr6jPw$&a;IA}$eOhMUfE7CkqC^pL*BJ<7Pz2Gu6YkB!c;`{WSX%EFskCIn@&pWM$ zU%8cB^I=hVqXCj?p71PF#MaC(Rg4giFnNBpLK8=)e+{WsNO%-a_fAASQo>mg4qggH z_j({P#%;L?&2^4gjC(R2?UA|%iOx0V10+i;SH#aj=a05ss6+owa88^pYWRw(E6XaZ z^iY!W?V`d%*SzYi#D!hMaWu=3kNc+rqd#htyOkCap9(CM4NzdY$C^fW?}BY#pPqUj z?wmyu)Q&+s471J059*KfXw4jh=#S8<9&mW;Ci59s z2~2?Z@BEEV5~do72iDYM=yM0Ky93HA;~^2r+ZR;@y+@!!g9J)$i%89Bm(S}DMnOJ@ zS%ei$Gf^!x#!AS^p1S7bUyJ=f#iYG?V;#p2_j?h1j+83@K!S?Dqvn51kQCgt8#s}a7F zmBj3DA+cW1+r(a-r(m^%t5Hb$N~2uL_(`GGjC54d2n-sp&h-lMjWtpPtX;E;Yt)n<-h|&jU4subn_#Y8p=LMBE|NYQ zIjmE&vcHmH1S=3r?7#A>@XelutS$D zaiBFI47isD@P9z4mj*seR}DY_|EO1qvfv zd*ScgfxLjx$^h75UfPK0+*~8jZW4ki%l(EpJee_&S!;t)Z_SeBBVORO0aP$XZ2&$z z+t2m3RERzu45$sjgv$kdza1eO(u$;#Jbp2pVePjS+>YYA9i*qg4r3HSn9+^7H3M&t zGayI$Bg?->g)FYW^Q{J|8$$v!(*pqEDJ^lgDX_N1BV9o&5GM+{1^^oPN!RHub*8iOf?|YS>mxE;?<*lgnopXYLGo~qg-A-IpFJC-kO3wqf~c3)$;xfI+F&G14fi>- zx^>1)jtqzvdeQ}ivs`T!*ytz|vef;q9 zz<-W7rlLfgQEL9-%!|td8@R7#ut0Ihn6@IfE$XIFZTLR`VQBckZ zP*9}*uw$hGP0|y925S(&2GxF<0H`5M6zU-eS(xQ-(Cr2+03kp&ShX5}9qH`L4H#zh z8^nf9$^%G{jJP_2nX`oESqnigErGB!bpSpx6k<@$#t0YF$BVuM4n88@t1$ZwVywy6!EM0$w( z0qIUbq!o`i1pjj-Q-%GOV?sH@2>&N)YaN75f)`M|7JgW@4uBL{sjKW_fsV9PoHO=L8@x`>g>afp#3uuD_`A?z>RUvcK#FrxWL=E&&RjbL?RXy${MqL2SG zMfNQSr811r=-2wH{}8OpgYZm-Sn5K5cvovfDEVOT^nNYT89juf=`Ltqp8$+gA3%zX zOI9BNlJ+7%F&MS(FR<(eZ0JLP%KwRz)&K$4&mxsx1^|xRBHw^X3kXp3W_P^3i%FtA zaRv~<`y-ampG%(R1a=n$&_~XK^MH<`3?gu1#FJh4kH8Jjpz>#;u#d*SD)a?}aB}h! zkqyhuE(`ou^o9UhG(i*qG;fv}7Haq_sPY?h8ucHP{N^!&+_GVJj1bfq^}ncpQpvud zYUpk$gc};zIikjQZ*G`r wgT??pG#Qy&gwX^bie@4E4~+whG(pf#ayQ65Sg0HT6Si#vAi}hlM|ej0KSaH@Q2+n{