From da8efcb2a1d12739f602f6f63319c2ecec121c10 Mon Sep 17 00:00:00 2001 From: remillet Date: Thu, 14 Dec 2017 20:58:18 -0800 Subject: [PATCH] DRYD-182: Added an AOP (AspectJ) around aspect to intercept the marshaling by the Hyperjaxb code and add the timezone information. --- pom.xml | 1 + services/JaxRsServiceProvider/pom.xml | 18 +++++++ .../aspect/HyperJaxb3TimezoneAspect.java | 44 ++++++++++++++++++ .../src/main/resources/META-INF/aop.xml | 14 ++++++ .../WEB-INF/applicationContext-security.xml | 4 ++ services/common/build.xml | 18 ++++++- .../common/lib/aspectj/aspectjrt-1.7.4.jar | Bin 0 -> 119683 bytes .../common/lib/aspectj/aspectjtools-1.7.4.jar | Bin 0 -> 10018548 bytes .../lib/aspectj/aspectjweaver-1.7.4.jar | Bin 0 -> 1850391 bytes .../spring-instrument-4.3.1.RELEASE.jar | Bin 0 -> 7244 bytes 10 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 services/JaxRsServiceProvider/src/main/java/org/collectionspace/services/aspect/HyperJaxb3TimezoneAspect.java create mode 100644 services/JaxRsServiceProvider/src/main/resources/META-INF/aop.xml create mode 100644 services/common/lib/aspectj/aspectjrt-1.7.4.jar create mode 100644 services/common/lib/aspectj/aspectjtools-1.7.4.jar create mode 100644 services/common/lib/aspectj/aspectjweaver-1.7.4.jar create mode 100644 services/common/lib/spring/spring-instrument-4.3.1.RELEASE.jar diff --git a/pom.xml b/pom.xml index 0119afe1f..4b4c781c5 100644 --- a/pom.xml +++ b/pom.xml @@ -21,6 +21,7 @@ 4.3.1.RELEASE 4.1.1.RELEASE 2.0.10.RELEASE + 1.7.4 diff --git a/services/JaxRsServiceProvider/pom.xml b/services/JaxRsServiceProvider/pom.xml index 9c8f180e6..76070e3e5 100644 --- a/services/JaxRsServiceProvider/pom.xml +++ b/services/JaxRsServiceProvider/pom.xml @@ -553,6 +553,24 @@ + + + + org.aspectj + aspectjrt + ${aspectj.version} + runtime + + + org.aspectj + aspectjtools + ${aspectj.version} + + + org.aspectj + aspectjweaver + ${aspectj.version} + diff --git a/services/JaxRsServiceProvider/src/main/java/org/collectionspace/services/aspect/HyperJaxb3TimezoneAspect.java b/services/JaxRsServiceProvider/src/main/java/org/collectionspace/services/aspect/HyperJaxb3TimezoneAspect.java new file mode 100644 index 000000000..34e2bf7e1 --- /dev/null +++ b/services/JaxRsServiceProvider/src/main/java/org/collectionspace/services/aspect/HyperJaxb3TimezoneAspect.java @@ -0,0 +1,44 @@ +/** + * An AOP (AspectJ) aspect to resolve the timezone related issue https://issues.collectionspace.org/browse/DRYD-182. + * + * See related config in files: src/main/resources/META-INF/aop.xml, src/main/webapp/WEB-INF/applicationContext-security.xml + * + */ +package org.collectionspace.services.aspect; + +import java.util.Date; +import javax.xml.datatype.XMLGregorianCalendar; + +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Pointcut; + +@Aspect +public class HyperJaxb3TimezoneAspect { + + @Around("methodsToBeProfiled()") + public Object profile(ProceedingJoinPoint pjp) throws Throwable { + try { + Date fromDate = (Date)pjp.getArgs()[0]; + XMLGregorianCalendar toDate = (XMLGregorianCalendar)pjp.getArgs()[1]; + + Object result = pjp.proceed(); + // + // Marshal the timezone info from the 'fromDate' Date instance into the XMLGregorianCalendar 'toDate' instance + // + toDate.setTimezone(fromDate.getTimezoneOffset()); + + return result; + } finally { + // No cleanup needed. + } + } + + /** + * Intercept all calls to the createCalendar() method of the XMLGregorianCalendarAsDateTime class. This is how HyperJaxb3 marshals datetime info from Hibernate/JPA into + * out AuthN/AuthZ class instances. + */ + @Pointcut("execution(* org.jvnet.hyperjaxb3.xml.bind.annotation.adapters.XMLGregorianCalendarAsDateTime.createCalendar(java.util.Date, javax.xml.datatype.XMLGregorianCalendar))") + public void methodsToBeProfiled() {} +} \ No newline at end of file diff --git a/services/JaxRsServiceProvider/src/main/resources/META-INF/aop.xml b/services/JaxRsServiceProvider/src/main/resources/META-INF/aop.xml new file mode 100644 index 000000000..c1069b698 --- /dev/null +++ b/services/JaxRsServiceProvider/src/main/resources/META-INF/aop.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/services/JaxRsServiceProvider/src/main/webapp/WEB-INF/applicationContext-security.xml b/services/JaxRsServiceProvider/src/main/webapp/WEB-INF/applicationContext-security.xml index 6587e9e35..5d7733340 100644 --- a/services/JaxRsServiceProvider/src/main/webapp/WEB-INF/applicationContext-security.xml +++ b/services/JaxRsServiceProvider/src/main/webapp/WEB-INF/applicationContext-security.xml @@ -208,4 +208,8 @@ + + + + diff --git a/services/common/build.xml b/services/common/build.xml index d631e5819..e62c3dfff 100644 --- a/services/common/build.xml +++ b/services/common/build.xml @@ -123,6 +123,13 @@ + + + + + + @@ -172,6 +179,7 @@ --> + @@ -180,7 +188,8 @@ - + + X*Ut(kfT%8c3g-F8|1N5(2DQEvnAS2&{^tfJi%kna&mk?nUw-8GO9mT0 zi8Ov$LIOb&zV20Ed>bc$2qIs(&E}!He4Wn?2ZO{iPV#&k?}j9jXR#UW#(?QjZUZ`3 z?dLJKs%{J4xhSsLuHQK%t9K&pBug8sBT_rqUrx<^&|V=9WbZ`2U$uXp30pP6jNs(@ zS#1xDYuMa&d+K_&NC988%t zZ-TQ_#4;qh`Rflm`uN@V2{2ked$fO!xjMNiyQ7!iM`Ps^%qT3rm58P;EZ&Zw38HsM z_egJ%RoI8gbVx1a8Gb%ssn5u{qbPc3k#mo88@1@!vg*e*h1qnJdML_P-NgHOthHTn zi|KYlM^?|LEIoy^aYSw|UO3Y0D|SWKmIiZObrDK|h{T}Z!b7tTPcvibg20!H@$IkP zzj{WHl`_$$K~61Jkb{f;|6=p^|9i;(S%T?<;sYOaA4pUj|BzsMYj6PS!@>W8)O`C& z`&&6*s*f=g99dkP4sQk{Y;|CR1J`CT(Jjgy-5rchyXh0K3;a?(v>G)`(eudQr(1`e zndr^QeN5J;r=_n`UALdu?Q6rdz-*1y2k{Bre5@H*GAVP{l!7%I-MY5mYlWF;#72hH z`nT2hy$s8~&qmj%AA-l0GU<}?va0~V;I^fVjQQqzG$m376##|WOC;E>*qF7#jwb12 zQByoM=Nj40Ok-oh`K>*n%KK@rV7J6Tbpp=dC|efP3kWrA-|RZPF%nwo5ivS7a{Rv= zii2Sz*mQ4Nk}}v1>Z~t>p+s0FA_Su~aRz5|vaXU?He1bME~YRI)axu#-qyk9!1Nd| zqVpZF*V^3jn`!uI>fW~$3RCk}o2y%QQSso3D~l0{AryFUeiHuPV+Y~wgbI%P;q0q| zo(WL=D>>?Ira`{f6F`fi7EZU+^d__f04IcTkp^}pdL0T-0LSPmfZUr_{3A|FCn;FCz@MO79Sib<{l8ewKM5#( zP<-Hn?gNPmqq4mWNO-dV0nL%;R{#gvZw5pMfo}+Czke%o_<3&alasrkTkqzHzo25$ zeRJ3Xf1vCmKLbNb5?v{4XRg)t;_KW1g~I92ixAAxnKGQ{Pjt5hdmk(Q>UoJ`l|-XgwZ*cevS=GM6hDANbTx2gn6~cqe-laL=Vo$ zEHuR$-VX~zcvQ(1k@PIhB2kowh1@W*^PJ7H!3wA1QvvJ_@R_)-8{%?aCu9pi-YZO* zn6nE|%cevM8tlNIk_A99|Il0uka|}P@gp7)r^Oo(SMwI&v{75~7TLTZy!uI=d5qKo z1nGS+_BdfpKA**XfxL`vjetZs3T$D5QM*pIQC|%T;Q5Husgbz){j>Ld-BEckj#Ff z8J-FkAtC&&s;y&OhLU5jkJ)xBQB&OJyi7lLRdSeXov5j&WhUymiMP;iGAq zOVqC7P{LdsM-rQLR2`s$II3>2^cdq!a5v?!(Z60Tif(1}An zS#JPcIV9^F8|pn&$P!RMsEu>sU|Y1kK{#y27M%F_o?#v=YGa}o`pYE6N`+hj?1KN6cmQrn6>o`?MyDf5CeBguZ0~s0~`U!g} z@4Ulf-puicpMU+?`L!*}1cQt;2lfj|z+a*ZN&eC>PFmld36%mBy;L1t%f_Z%6MbR* zY^9>ERo4$evFz5|rPRvJrnLNIA$P&`%;e(S)=kQH^4W(ug%lj(edxJ;(W!0n$}7w5 zdPc9~iN%kzhB}nieY9s)Fk!3wljmi0kXyhdR{){KO=b`w6mr+|%8PJXmgYm{w}CAm zSV9Pe3hKRw6gK|Feaw}YnVt}gpZLOLKT*5vuDD@47rP1T9*vNQUcQG)JY0NxgL*F= z&l0_7Tt4igg|JuM(If4JHKLV~J2pJ-(h^JK)@D%AEQnzb)JMV$*ePV{Lb; zF61xq1;bME_D*DWT3S-VI|4ZDZd(1PuEjK;d=UzMDt+ZyQ;C;D2}9jcgD+KD9wllz@%kjMKfStK1#6?h?-qsdC5axg3@ z5yJA$e45Qms4^d#!L8z=V_e-TWeS_x*()bB=5tYa@SIszq<|^jbSa6Zkl|@q-K8^E z(qr&bsYWCAr$y3(Vy$x=CyL-l70FheFcaE045c{873gMY!@mrn*hLi0;58eGuE}{vOJBSSt4zxwm z=14z-b|cUlL;kbLwp7iNc`iO!)YCtR`bmu04mrr&-dB!~kT+>CejUJ4?MC3`zcMYJ zS>aXOV7;Tq9LtuOBK3}5pq?hEV<%@R&^$t(S#6)fvhHB0^(fNIC;*%zvnb+So4Lpf z#l`f1WsPC-j=(iGe|dy_!ZTW`F69)X<{a^Q!XrJFLL@b!_IzeqO~Uml5j)7h$y}~X zD(tmcTQGkQHYeU#uS(7aecBG(;u|X4=J1%#k!3@yN&YQu0_0uIh?3DN_KFll zJv3`-vaf$=BC7sF&cK)zsgvQr)6GrUD154#hFN+3WqcDFU^Z;=Zvs72TN zbFXfBpx3<*P~^Pg4mr8ZFqGEmNN2_*X->PjiI=HK;Rk4Ev-ZTTicWkF6 zRI7iAo!*9rXk3OFNL-_2U#?NIZP-J#440#d&`NkxZ4(^BAy{q0H=AtOQm1Kk1#s?s*-G3Sc5&-&E>II4=OXa)0?#&_VF(k^ZL3sf-|a;{Iq}hvx;w8#78Ri zp3Eu>rdM`tt<3D4TJ@Pg$r(&$aKZVQ%0~o^0{5%ArvTGZ;8i&#+7pl1#^%oClm z&Mtb%GX__t{k#Ucj4Q?5$hP5g+9G=zC3Z^+o@taLwNzGlL6Vz-%B{j?Q2~Idle(_# z1S#E@=7gZ$mR6TYqpWacyw`XBzQPtb-sI2(CO_u7t71^! z(1IHjSR2#d!e{n$9`m0kVVRf3`iOn~kHYaOzEq~!DAe2+f zpNKWoWOmtKffY*b?#Dz2&u8ZUnqtni^L0*OW=K6nl3Uo!H$ks&EdgfW*$KxS>-M() zuWSkZ$Q5)wbaTRB29){)(cGp-XjAdlk(t16-xZ(eD8iRL=6CX98jPl=h}aGl$aWXg%p!LOrWcc?EXv{)36gIrlYF@UF+%)I){#~KJ0J&cSO z*>CWh*w*|5(~t=@P|EWJescsrh6lhYeLfSowx2#_`l(RMb#*R^Hv??GkbPoaUigDo zzl%HIl3tC^xAf~I+humpA%G+|k3cZN;XFVH+8T~fpsJoOqK1vlwa*FK$l2Dq@8oOD zgCo8a@tY9k;+{jS0OfCzNkebS-y$M?g;_AjQv9eSZ@e7TJu>lZ#}9!%910RYOr7J{ zD7+B162LiFQM^&&YdL7qctT51wB>QH=Lx&e@-tc(cb7vf@ML2ktc1Fsexno5NB(9P zu4cA+gb#dyVu-MUl9y4m!(e?DI0@p+mvSMxFyeXO(GHeXo@ukJBM4j)Me6zy*-tFp z$C(`2pBzNSfiKnUg>9Bvg){2Fr@Hl{jMN8~Gd;p~Vk7*OIdfWdPJq;Vy*e$ z=wX*z6@gtWkYdRk?@B|G14_w(#5Si*i*qF`E&F{iIYiDLPhPFbc4ngxi>?o>EkJIE zjmv{(qtA>(O_ElRq>)93Hzm$?5dTtf=fIu zyM~cdkCl-^X`M)OSVCc8B+!|>t?}3#K`sy*f_TG|HLBq7N2=MhV7idp8Rv`VtC47- zAWQ47fsWW@S5(vk)7%Ba@RVVQhp$RKqn}C!`5Eag){Ql*TeliYRKqdO9(KoW&y%`=mnbD9eviz zr{DE?0@E)D5}oUc(vO1d&umjSly^dPnUyZ>kVux!8i zB5b48Tt*4L&_W191 zj1w1wSd#4_tOBVDZ#5; zj8W^y&tSQs83+S!i?_3GU|Sx|!udd7Rn7)Zl-YU%RQw6zwl}e$%v8o~>J)L!PbMXshLPRL`$t+^$%;MHjmb!Ky zJFN-`tqzjDFV3JiFTy9w z#d=zE2@7pGRs49Xbx%r%jeS^%0bw;Hgd)mK-*%bVdjWUMq@)mKp+rv6OD-u#dOQ&~ zoJ?J~EnVDWnBp&*V(H8iFvI#skKKSBd-mF(k;bmXgfr6Q;@R89a_QBtYa7jh_dKmO zI=K0-$i~~F*+G82hW6d(ffIjM{K6A+1}+(O3EnFoHY!jVbk2;H3F^=V?eAxE8t>g( zzRVX@WCJ=~79mwBOu5h9mL>7+6|b7guCE?C?2CLq*>S;s?ibvgxpve*cJ6r|R{pDliBvDdXA|TPk^=b{|M%g(O8;G5 zL&e#`+QQkw#OWX2rH|ep_+a`#q8y`auK-fI3?6PIkpfNv6aKdZRMt?)?};Me0#CJ0 zU#;-XocV6(sYt&Pbmbyhg+zzzSky76Vq0`}@biIb8^jrg?m$q$3 zCR8)?9Sc^87fKZK;tx9~q&UQmZu+(W!z!+QXk859ZN(|nKc?`bHVVah>Glz50=|R1 z@(lmUNB57~DF0pJQ?p>ymNxh$H$wb+WU={hnKgP@j=JsQZ=gKJK^2>uB5QJy3%g^fktno@P|sOR?nkcDz>07@AJ979NX=ia)8aNj(WxlqTL;zu{kRLr}EO9JXcxd|-0w zl1~u0jvOoO$^b=)2RYZ{jlG_gE-5(JH~dS#qD(B$uXL*nX60~;F(0k6q^`-hMaI5@(ehxnk_UxEpOP<>#_M_tEBe^!zVv7Ps7hf~N? zT)R_ZB=MgCne0b@S5e(mt;eH2mkPmsh9Rz}UXTA7Cj6M%j-br%UTKaKpW6jU(jJS1 z&8*NwGhAv3p;o@_2e7M&Bx9BR(;?c&1l6Vsg^_{Q87ru<{U1({qn#TlAYItP$-vOs z#Q4AG>Vx3}A8a4^$6UFq_FUc^$l)^g_A8_=a`n#5&CS#}>8-VHpj#|2Z@BJU2c4hW zQhX2Y%iE>&YWIjpYN2$vy}ze8cA%H8vAmuyt3h9`aarvNf<-420aR++5cO6wE9NXp zY}p4-#O{YCQmdJon7FXcpG~s7{C#xt^n7}{Jt0X<#-!J1vD@r8K}A)o)YUPW(22+B zFdB@u4v_v14hTm%L!%7Li|8|~F>8YWu}o|l^~>W<+iHqp=e!c4E*bmRqTh_AOk<%^)8Ao6r|zeo@| zI(mm>nF3c^n{{Mi3oySw@csRLQUIFr&Dg+LpVD9o%t64Rr;D#RJFmDozrMUZw^oXt zRkFBuWI#k&hBt(;VpWu2`&-W(thnp;@JVq&%|V5^!?&k)!W z;H9lQUj=AqO^pr{oDCC8)njwDi}-Zqis7=h=YczHcn%1PJ78%NG;`*6`t z%Sc&+40{_6pOALjY!;>5gfrEfwZBQ-GXtWpX{j*8!X}ly_(xW^#;^5(u}feOEVt`v zkp%2!yV+!i&vQx7>G?(rDi%hw_ug^86u?zPvqG=4qp3(>8ZsI2z?vG!~eCMem?#;gM?en}p zzW2v_jIo9T$5`{4bH%JR*E;R3tQaZp&W2`*!H-8>jBmMzdN?1IzLLXQ$3L zcYzfNHNf)V`W<4#wYzr(A_03LDA>+YQC>0LA#g%068?FVF^w#CLQz#fMJG^z+fny< zaj8k?CuGUd>rR}BvW)lW8N$wx{rs=pS92`WWYxZ1hp%-kug>iKwB6n34k&4*5^ z$lx;$ExQedpUGVoEI3%c6n@&LHuxRzW+8>cg9VmTbM34|Y7geKbkx=IO#{q4q)c^0 zIve4#kbP-(1ZnVszQ9|Wg-ocIMST4x^bz90y%^~~FDN21WZhNYc*VMWOleYl3oI{Z zp#9I*>(7ssUFc4b00@v6h|BdV+t|GY3}Inm1TFA%j@beyH1rF3`LU{#o;NPuoO0MW z*dsXRZ(I-`6d`sRVpME!<5-`rjoN99W!n2`Xc4yHSvTVAp(!y-W9%f$i7HfojT!Bd zN+^&uf-u9lJt8#>$u#;wpbmoLeJ=w>3LQ8XHYc><(-LU{Ta{wCIAKD4< zjhPDx!G0h>8X$g`u-*7@A<9?yzBbL9S|_S&v^aO1@~LR3a%q;{FoAN3+^*R8MmsWh zSf0qNVMrL~%H(j6WFSXl(xABv=*ucc;qArjaR1V{tKrASQmwW|7T1!>FD zj%V5R^-B2oRvjG&BGHHO3DdP}qoS-VeiTZ_rZbJ`cNr>U*iSmE9pb_$YpjpI_Po2B zqg1wI)e*W1%sQw2Ar&+HLXC2=W7}#UEJwbU&j7vh2aK!7wr z{4QQ?ZUBGgk@b72AgRwQrNAuHQc*p7`NN^sM`U@%0R562y1=42oApFq=9}k8nHRP5 zk?spm?oux~A0N*|^A%?C*cUQJH%JxbmRZc)jXOTbsEjjMXCVd%Mb0NAWR^+4bFRbv z+hRv>Lu)VqIFScRU?~1<|7vP!t6AuqU&sXZ1OZY3aVgVbckLE%VM9=`BTu8{3>`}T z%?e-L6KvjR+r+mXLZdFdfftKaouY!M&iQYT^(AbVZC zU7YL|1rdEARV0RR-^kZSjSrc}`KUdDPvP!jUvXNyyO+`UOn8#<3ZL`~}bT35yKTxKUs$sx?%+2h?!=qnnit!RfqAK=0S zX#e<9*VVnGt)mZKcl#OTf*nDCL_qv5M*Ws?8(K`|ybA>kEe{289V zJgheDdnKzgoRO#ALi916MHZ1Rxv;x1u?6=AkZ+K&rsnZDop@tz+#1JRUq$X9sXR*7 z*4QMTeM!D(hzYCrxAhf}fWpBDb?q82(Ec#c($+EjWgft8AV3lzE(Iw)j+^F0?c{en z+3$#AjGL@HGCw~nI5~*>QgLwFJrQQLVPD~J(vhXmWAx?Nes`fjFzkzB<>AV=qp-#9 zDki)A(Fj`6o@i#XwGr1uzD;}%(}UiGaX6IEEXGr7&d`wk&6+%ilO}_4icA$J(~0s~ zz2SQb`R0=|O?Fu1V^ykk*+;upo#ACV$G%7dDOqtW787%AdbYNqmKNm8Yl@%x@^Z5r zxa8#{-4LNs@tBO?IHQVvYpZXqRjrSQo_X_at~PXyDx>y=2c<)I@WaQ55FFflM^E&E zxrL&lqxan@L&W=gg&1F`nsJv&ztHrrZStU8{9>I`y zBRSA^h%JZk2%)X{`AT*3t3fCWgx&O6^srJIPo}Fj+rCwgp&1y=0igZiHqkaRwNf+v zH7#II5Fiy0m(v2qzuU7V!`Tz|+dJdCSaES2Cx=^ot9A!*RraT|M;(+_8ywXRi+!^n zH#a%$ZFYyM1jBMZ+nw2O=W78m@8S7*azu4?j2n-Hy}dLq@9*)i|Ihdr*FU~LOnsU0 zso0cQLRWIX7wKDkqNHy7B-1ZM?XT>;KHkAncwPs^bEC1p@qJhsgAkL z#ZJ6XBp@Xamm?+H_y;>t>F+zyxMSJ3-guh6uf}0lxkpyLtwBun+_q^Jrq5=Biv$sI z=x_VaRNv4V0{kwho&T{I_Npp*t)r>MWoBlip`-TwJHZ#CTqt;u9EiV&;-9zd8ZTJ4 zzp@g6hzJ-j$eW+JATlr)1X`|umTcB@L=mra6Qgx0Uvw6x$u^rzKD-BIRl^=I?!Ubygmx1dd+F^M^S=P#zH@LoR_o6{KN*MVBkg<-ZHE zhF7piqDjjAlFogIA(AoLu%w-3J^e%JVpj)Ek>9!w?R7}^OJ&R6SCIZdVRW1;w#vu+ zL?{Fp#WTMmoEU4>l%x;yBMw4mN@G zBapzb1^y#~_8ij927MzTVeh=|4HUu;KXOVN^dq&Yau4rBe^p%9*dANRS7YM~THG&- z;rW37zHw)varqc;v`~+q%hhrqA$qk&jt50_nlem0Z5W~@yL`$>aOi1lm-<|Ashsp< z6=uY`I!0SNqKtYj?B5nEqOWA<=bPtMb_bRQWw~~%O-c&gpKF}XcSgf}g%DRm zqZO;Z&H;Z@#yM1*?T*q5iexL8egl#-;5N7>heX&03)t5;8^hlR*HK+HgN3RHRQ!cy z13vTu>91Df-7_}Z<9Bl;vCdRY5S%LMZC>4a@i1`!@8KI@*ZDg$VE8YRSfdEN>xSWfT&bC}_?eTL6 zqw}?7?G%bJPcnH_&tKjJBU{lFim)?~M7(8!xsGICu_-XYwG2i$5ZdTycDCC`U zz+LgCP(CQ*y90cIK{WNBxwxQse+^77B5;rph)W@58=HYh+zIfg#xpWtlx}L%P}!dz zV?3#^t^JX=b$-VM*QyN$Ci|Tu$yrt@Ed@%>T9Q-QrvZH2C^S7Y>Tzf$tb#{-)t$zy z2wCmc717cyH;|?|)y>%6JLQ)SJ)+4Oalq^dgib%A-IOMe(v4q9`q*82B?Kc#y)9%9 z@CL@ze`weLmT$O-#z86|{vxF@rHnYSk&U3BPkH$<=+V1EK|{O#h`ktK@gGD%C51YV zKGhhGajGU}lew8!EvrCgqm;18@AhCdU5f<=Vf4D5d?6MSiE=gPUhsCIWJf8-JX06F zdDVweqZT@X&&QiL6&5?!h~NmWSYw)`K2B+XBPpQ$VdQ0Gs(I-VgZ)5&G(cQR7T($j z1d>!i&R|Lk5fSl+FC30-{zf0xpA9-_CHO4lmO0Aj2s$|t^@L5{A<~cmo{wKSGl0+6 zD8IDyS!|aa*q|_mXkJlqK@1q-Nx*Mq0qq}OM7pZtj4aHJEzD&A57_9JatFJE07-$k zWPPNwc4}@ZIMi~XGXf%$Q|)y2ttRDF2OtKdJL&YCbC=VFNGakP7Aa@ zoIGPAV+-R8^9J?<0nz~RV+1rIsv56VHK}N5j?d3)eyl^@?>T@rDk_t`R>~=kGIrH| zqN`3sHSQA@Nx*Vg0qqYrim8@1Fk7!LI0Acu0I7huoD(1}scY+dN>1O^VUm{Ilowxn z{yE+05nbT$#z~L=v5NH!aj5Wl1jXs1XQ#IHX`GzG`{@%WKP^3+vvY{`x#DwYjn!f# zVv&0zRgjJW$nZUma{H-TXS)N6&!r{{Q*}yq2ZrNSb{(PQs|@}@ zFVq+Px=2GQV;GH;?d;re)zPRtT&>vtL$eF2 zFe9?GG((nj)=Pd^E=NOl>Om?V`XVWQaww>Y)KTT8$H^-Ku{`a`{r!Vu86V_BM&%fC zb%kRVTH5M}(341LLd5;U6s$`;T|TID>$y)cz$Wivu^iG^V=rX(Rcx$XO)qUZ!Unto z1{&PQf9Us_YU%&gfxXZHARQ2wlNR3E2}Z@goIaWFky>qMe8aUH4{TtG2ANMuMK>|# zo{o-KsSE1}EkZgxZnA%*$L@D2rvEITj<0A*wphmc@QUqGaQQ-D3jCBE(EiZ0nyFd- zN=Ja*K!7AbTyhLV5B{Ox#>asLJRQ~AD=|DA7&#opZAFs@Y^g5_OYnJ*o0nAJS?GN)UW?E{d8o$&5*bxLs1jMCOOoUCwQ?;XZ2i5o4 zZ8z7)DbE)liAEJye}pUtCZBZ2IxuJ~q!jPNgi%z%3l69o$+7ToIerCqR@` zm*JePh*T{|r-?3+Q=9ei;{9;zI)hvicItg&u}|<*diK@*{4#3LljEIyRb*&qIHU^f z3)rGj$$93h0c$u6GSQaNmN{t|VY>Q;srr&P#jaX7oU^H*U_jmkp#5PGV`dE0wESZb z0}=rN5(IHMh$Ed%U=Rb;WdNsU%YeSy{8Ghgwr~zuy*Cf&3ePyPsp7By$doFA;bto$ zEN0D{px6v0GUaihPri$^K(Aa$Z& z_jq(*^COKcSy9~fVC~{`Xty@kW<```*3uqr^j!-hlB=GjW2=UaIl!qk(Ed;<1L9I@V2c~uDxc1EEpE<}tjv)E+kz7s@kgMh`uzY`7bo0+UHYj$ z6{@LXj*iW6~0ZXd63-5w?Tk{QUZ+iqTmQw`p2O{>2T6@y!eL(BzMosYC zBerd1sg%x!s9kYeRK>Dxp zSgG26PkZp2D@q5_9E}Xe7~88v{T8pR46p>J)Km?q+3}-ay$@8>d@i1nPF#(S38Oa) zb0U|tHZ?r2xv!F)6}6u#+rVTevYSo|6xviX(wCV{FdzA9jS8EUhu*jMCpxAQo^#C7 zn*Wfv(9~fV!(lr+)IcgY-cHkhFKm^4tZM6cZ#*Mi-EJu6^k8#yUA?NQqB|-i%f@)K zZ-S7#An?^Y!S@|nIcEo(aW>1k^O^Gs@0G_*4((^XgBXn_s^k`PXGUE0*!zrp=8Qrj zK6l8JaZu~*ESPb|PE;Rnb;SrSQVO>n0cAT?EGHE$RA5ZY$i84OEKtfg>*%0eoMn3kH!O-ZCs&?_c!`#AD z>-QwcMbHA$0&%(MWE@AgcE zzX{JCZDa5k-;w=DP;t{_9$$0sWU)IAV8`hE+s8Z zZ!})$EP#gVK8p+bw!a<*B*c}4e#_0{+i()W1t+Ja8Bbyi=s-9XKg-}pX&}tj5 zEX%Pto%va;`o%HtIxY7*@V)<{P;)kScFO37Z%1Xekh0iwu2OXzTjy2x+?{}cV7RsQ z2|4-tk9Y|+5c8*7iT2&CM2A-JXlQi7ijE#VWOrGiM#5^Jta>zOx z+E2Y0c*I5I?&;j#;6QLMw&aq7x`#~NG;bEI6;7jRHCN7R5Tf&5hROP+PR_1cPGUj= z&54K`%hmLEnk@CsePHAuKzsJTnh!pGBXu?X-)97*1p=fC;`bTp1ZM=82Ye>u{qyL# z5~CWSsA9*qeg{YoM}^hq$>|B_a3=f0%#7)Bf0Rbcy-Wow`;&d2)#13$HRrqvCoaH2 z1DR6!=2D*>JG)>{^bsfEGDOfavOAq|5)d4$3?5+8AOeR{yu7?RIy%6lKvY%V_)Ee4 z2xNnCz(bul>=AinA+p1Sr-KfMZMT5;=Mu7aMX`LayB24(-rvbGpWnD;7HVJ`U}-L< zy7GAgCw#4w!1&>|WNiR6Gs`zEX7RLk0ev=8B_&@0LKqPNJpBnJW}3h(f$MnvYndOO zR|O(w8QAyN@4|$HcAAH3b^Ct_T-_)XFD6$u+2ojy={~7Kc6V>zV8L9u>f7&{zOV8G z2JIct{$+!hUDU=>s%dCwnVIRRgC(*ykg;515fdHw3xSWoW&JHng@xIYf zo26a?C8deLz(8WrSfOyLgyiJp{CpY~mg9~v%7B0XFe{4qqu^lcd%*!MwrnN?kQK!b zYO8=Wf9ihVEM3QF6;Fqw*Vx1FkMAFxs?>MHE80B#L<-8ubi5 z9eWC0JsUHne9)-`aHkHm|E=7nI+nmYmltw_lt6$~L0rlW9AEll;+rq`Cj%vHr|0K! z&dyNJumAKQr9lr8NZ!b?s}JKp4XO4(3!orir`)?P^XVqZClc&VYdi)@t>*d{P{XuC zRXH~25m$X^OdY8VN#G|XfX4OTch!HKL_ioo(?Kq42SH*WK*As{EYztoS=v?U%|llD!gsw#Dvale^G zp<(%fL0vcOJ7yUsd*lM9O1f>P2c`>k9FuSFPA1l5cqzg69FhQ4>GjufGLEp6v1zHV zl=3`zNl8ry@W%)=_W$J!TBz&mXk4sDkPrxvD2PkJUjyl1(3|~{K77y=4^8-t22seK z90;>(=2h4r9a$S)mYG*hvv6b(odN(#p+Nf=*YvmP(X`aj__amAt{^}%ATF7b{Ti1r z;(MT+J<~x?4p$qWkl=iw0jOxdmmDE?_F-0RJR&uJteNKBDP}&Tifmq5>C0uxztk9o zbSq;5_c|^nOnzy&K${l}Yz@a#qMgHp#> z$P4#@b}|pSkL)DZ13!n6{6l@!@dvk~i*5BUImEw9{QS3q<^Q&k8iB-a9w7J+bN=`A z=MIqm{5Z*hI#s&#FgXq~Si5;=fl64|EM>;mHx0&)^R0zrIcfcsTy)NB0+$Ajm*ENn=V#A*c}8&3dH3?D{Zeum8+_KZ0D_fY<}vyOf*{1X$py2 z?6!QWvLv6^T4ieT>~v?zuV}O8oAt@j$@@ts2T~#o5#_!T-Gdcq$a}?dhn3^gZ*8P2 zi$*Jx_Uii^X0#>vla9y76*-&-%9W?fEt@$tXZB}DCu6%|jLN`0zV(j9$r>JWi`pV2<_zrAs`9q&iDYkNM$?S%Z;U&s=3LF0JwQN;b^- zO7~*yFG2y342a9I2R1oZZ}KzX9HTh}rAfOI2nbZNb(oE(uKoQiW5{`wT4NYrZ;+#j z$bH?93*~0%C-r*;4AJuWuj_9sd*HG^7EIA&-#l9*4T<(h^{wc`7t=bg23R+iIvGA5Ma{%^C@VbLno4Vm zwOM7ZQ{^Yp3yCYrrt23UGG&?fhKj zd#xBWtt+yB$F)F+YJT`Y%}(K)N6;OKZa1xv?{(T?v?eyQQrE2vYL3Gp^Fidhd-SJO zPQ;B0W{F`tj)2=;Sn8Fwp$=yVbXW3z5hkC-oPnPQlal{Zr+X=frWP<4rdm9vrbfT& ztuC^fATbb^@&ILv{uo#XrotUnicMY<6DVP1PZ?%o+G@cw!yhTDHAEJ~XV)Y;YS$F= zR=Zgsb#v$wZo4$e>wa!U`*(TLZsdrU7X=c;Yv@w>WOSKZH4#@J6KA5Tr;Rfotb5(z zGBKOy??KUPANM+BoMJ)5DPZ(waZ}aEr%w>gU`bg1&K(>hg=U`DRmr2oRhc@b`Cd!-7Ycwg`i#u!$ z5$q6U1n^d}j5ubAw`L6cZlrm!mingP#f*h*u%!_$ZIrz-ih28&q6$!Tvss^SfC)8A zpt1a^3-fbA#Z0v{v^2F0FI@$Y3W$po-S4tCQ{`2#l2UBUM~2#!c>^zT0=nc!==F2U zHGg-|fTV%~WX<%5eL7xNWBSM=P34?7gQ-kj#1t`nHu=d;zJRYB@7VMt4Dpu%mtidX z_qInUbENvqcpk?9p(ZWUHC-_)1)!N<%| z-d1^h7{B7?MZ^kRUV}KqU`#b%Et$8qHk$(17I@ABe`R)(xAvRpif}k?`%wRJ(2-|6i-I!1YO--;%)( z1?WAX{juWIGPE$b(EMOW5Fil{m$Cs)MK5|s)<3PHS#zb#?%Y3zCPwS0+CsS#J3XnE<p#8Cl*81HdfIUHgR6tx# z6cD)@JMFEk4-Wn)zs>o6xz9O*%L57?j9hKaj%8vwGIBkgON5U{iS~v`$nt3Eute6R zl&Ck2hu>O_;bJY^h)K7HPI2qF!>P*Kd9<6*zX$nLv>0jucsVt*2U9C30dNTi} z)a1+!_&pb({jo&`YM-^p)xJA`x)&P-Bme>=2I5kHzj%PZ+`ro492FdF>|Zxbu8jhv z+{m39x9@J;fTzN#nekLTs?;P9R5kdvgMcgN7!ip#hO5NbII=f9-^_N@fbYaIm@e%R z(Np$9bKciYdGS*=cjVadqOH~TMr>(ha9!TKjafZ$ZZkip?^y#oIX+O9mlVFVW=9VZecB zyr3ukFGW{>6Hedkmx;P?<3U0o{)e*RlYf^@U3X^PF+us5VCAj01n;D#Fhz8DXx~uNH(}oWM=y-#by??C3 z!D+jgvHw;Q4Blyp4=Q2P81R6GLk8-|LZD!OtjV7#2*l2E%)1-d@Knq?1sp7qX$};} zWz+S(o!RX=^6z+zj9Rk#SXA!O+AS&zdidXYe-Gp89@C`4vJeHB7x|wEpkt_QbRhuP z5d=sC#O1X7sHN)d@Be-s92WM6!yxqI_DZZXzoWppKrvE@A+yR?jDfgf(p9yTMB^@( zPg)(1XNN3vb~LXZF zzcXI@vx3>_;!x;U@ka<){88h8-7D5Q^PpyWmTV)G4@Hks!M0m^Vu+c2H!<&YP}x!X zO3B*x98(%NMBuNo{;4zi8|Qz^gIqBGPow^C%wq)2-dxkL9yAzjRT=8Mohr@3MXgTQ zV>$pI(-9@VE_cNME^^3`gO^7@=kSkp)AtY7X{%j2&=;=dKVCyIo<3V$2J#g)Cp^8$ zQ(*Fm>Sw*=_sj%PF3GSrVzD^+_FhL5p&tR}-Rw3+EiLJ|*-VD6iYgJkJwF9b5#=3q zDU-7ti}U%#7kMVQZH^r!vP-5{&wSq43pax9ycy8`*scKbm>OvU2aP&LzlvQ!0w6A8 zgUcoK7rXLrnFT_iO48z{GO6g3!VNW}qs_*9w~Jm45Bd^MSZ_YxDEC4y+0iyEW{Rj0 zE!>H~twxOChTOm^g{T9hXUickAF>&t?TgxNBhVD>3OyfbB_$q95> zUlfRJecBj#uy5FN^ho@#mIVxN8i`gqK{W-YZ2vfjGyWBK|E{Y4Th_M|NLcsPeXjhG zv;LW|#xci!bL~-2Z4%o@r}^aylp8lFj$h8Jyeib03#oX-s>jcL4ubYWQE-X93wS(KmhWZ13lc$2RRjixpbJ zM*q^zM0fS84EnLb%86N=?LV9p{9Z=!=X=7`NcSJ|rnW!0|83>`|64*~w$fI0;j;Yk zX#!BPs|Dn){^|n!o9_a60S$mH`V|ULQ7?g^08j&Z^b~Xh)~%*cnZ)UxHe#pdhIr6o zO$N+vXunlnV2SOz8iytJWNd-H2FUuql*e7Fsb6gWZAo3&{eN;^zzX*N%(>fl&XqPB zjq8X>ocd#jJIUYE%`JGbc1`LN-LWiu5`Ohw@b4v&f1HH>e?^g?4wt$0%2iL$OK6!&eIiVu8QY!zlE&Oc z_A>$pM%&vsk33&*X!qs>0V$Kl-d#sd6kfyyewGw%Mlmn8sEM~U6=>5^v;8lH_y{GF zv%R%VvP|7$9&`~Y&XsU`m3g)V_T1q_-X%mAHxbb5du>H%aa^P}eD_;XqC?uGM|yPc znaC*V1TxuI{7-$VBgaM*4Ldyui1bEO^$ZR%{3>m#!DQ`-?c`))`hmEC3`@nQ5Gtnw zgl5X3Dx8uQ%BB}PxUcrvX$H5vG>y9ZvzXdz zhjm@2-!8_1GZ7#QvmT9b?V1?Ye@Nc^Z6+kNAizhoO>Hh`1nda{qyi!&9KjyF1*5qJ z%5{iWu^F2xtjxg7^MnQgBOmcPL0P{3bpn&2ow3Y-$5xL=!yh6X2={-DhhtCd|B9G^ zM_#BimLeRLvK(;lt58%5q@O`JDv2+0zbax6sxXC`QK4dvzq+@G46Gjrva}sPASeqQ$!r$M_ zw-;@oU7Lg)IlJG_KY!VPv43Ch5aC3W{+sXVBCccIS*E*6{<%Pd*;>ue7Tbvt-M7$F zD_qB(GY`e+#`|*0txYG}gdK6RXPrA(p<%LT?K?Cbld@;sJ2yKr$a3<&xz5LtovR-) zcC3<}tJ%2D*F3sT=8}A0&?yuz6p9R5PLWJLyA{KRg8B){9-U0RFa>M@q8d&lvAfqa zMZhN7!yB-C-v*~6J$qDS=HF%CZUsJ5VNgz-O&rNKsM8@t7a~cZLK7gc>SdmFuLt}3 zi}b_*T$Mtiew_Jq@3+Ip4&u&jbxDJBeUe$cWD{$BQFjqVo4;DGO6mx{PlnFZ{1EM9 z=dfCtae5uPYVZ|}q1b~vp0Jg5wM0(bwfOKn52tVHK14}o4gD?N=gz&lwm#jgXD{Ebnpi2zc#x)Lcm%)7|EF;Niw*2Z_fBg?tKEzMs+iAscerDLJk=6Ec;md@nuMnY8n5MD?q9Cw?9B_j38pJ8G|c zg|HKZ1gq3|_Kr*Ibb@`Cx8)~jj>f7Zg1)Gy+-Nt9B)py2mXv`k5<>Lii>X(DR2>U# zU+rkXOYBg}?2i(#gC!|*D>o&{W1ls8uIdEkTl$Q$ge0~L#ymBFNL zSr#M3iS4Gv?Ox#N%na9k1hXeK@QNa3Vmf816Z_{haR(IYJEy%TN>L7O z`Br7~cD!u6DRGann2>^M9hOHT23^1nUC}x_u|7*WKSH2Whvx3YA-qUM0C&c$DtqxO zBO0kK1*Y!VCn6YPYM35fmUl1{n=)J^@CsYS{Ucr~w856g^TfLhbhD1BCzU+9D<$jR zu)usb>`@VJ$B5C$kcYF*Yg&zc)?%{}G(I&XUb1WjUW`-0BuNr`g}4UBC21E^1ve|E z`)aJ8jpXD@MEk~hnez4Yre9O=X_W%|e_b2A*7#qCLh*$Vrp_!|vA?Mtr;VbXga z;>mC1b|@frBtfsxXWgGC3EeO9-k`vnJ=F4>Ay4d!pO}e6#Cl6baL6v!2kGJ z9TDNwU-L+YphJ(WqvLUhPTc&R?j1ykO@98jTmJL-?5mhOWEyhK+f|4i_d=`4PGrYq z$K;Ch%yac2qjhSt5tjLDGaU#*aI*UkSJBWXKFA7vn4Kx&T+E=+uB^+wkzze8edseh zAm`>d6p95w`?j#nkeD!%q_VEg!E>jgNt4=5D_ubdeLzXwT_M<0!Wr#j3pb0i#lZu` zo|+m8ao$NnM$W3TMj@63X67cvidG{_lElP}QwIXECn!f2eeYhKm1l5hx$jx4Ix!<| znq=%|5Z0`&63rYOksh*j=dEVc2fRMGeVVS8y74mk9VW}i0Y?fdiI~#Pq>tVU9w-^^ zU!D`EJKO4I5KLwb(~h1;4DaZ*XAsn=*^tLbl`JWw%pJQ(sdH1ZCsFIqXE4R!^6d}3 zIKF}7)WDA!ZXG1o5y7pp+jWg7;f<&p>g$9I$FDNAa5dShc;zVtcqUMBT}cYXAN57Y zWAm!I_ASRtM!%??SdLqbR1fSc6;B$RuoqA2ofwWEj8qTrI}~r0oW5CyGvL%bQ5%0h z;`nJ_qxgQw>D#YRbg<@0L=L16l)0P;JqNY02-#Sf@!fd(e-4}&HB*^se)TmCY=of;qOUh-z?^$ zQmWrpZc>kIcua`W!3`BU(5*}%ko&x|g=67sRMw3~y$&0WVBi_|hCvGtYm+jI-`-ViFdJ7F|AuPWcz#LVz? zay1z)?0I`odE7zKKt7mCzxPeM>8SH|lUC=TH-wrGqenYiT(MR$qtxHVb*8VgKEIO7FaQIG_xhy-XBpk#nM6&RCrIDeLUwG72j}?CTw4i zq)_!)itP={b1{b&UNWFdxU2J=vG45{5u5UeogL)P#+Yy)7P169C9ct#7wp1Th-!2X zZn_FE^al|gk3YYg$v+OEHF&3>6Xi32IrMy7+@(0`kx2i(nK#2YoKB*HrvST9nWG=W za7SSt2XE90`klQy1}QzgytZx(eGnaJhggOltk>+7+(lKqcNbPi$d5JN_vXqVHgUA? zpPD~ndEjj#)>%tHeaoZiI^JzT6RFHbYH{aTb$k&|lF!5pQ;vB!D4vMPx-$9R``wz4 zZBgYSGQTEM@+~Gx+^?@_^Le5qDq*)7cy6Nb

`DKKI7?-+VvT;VPC^z+=M%eCdC@ zE(rL3&%x)@eq2uH(bO>qico&J;$SxrAPEo#eq4I>&+fckOzTRK_7Pj*L?sKRV7HT$ zfWPw=)>b8mz7o~)MSj2;1IpPoC#mJ;=eDVv`$)Um3*Q{rpsbs!YGtSVP{#zK7%Awd zO^%dPT?3P8%7hfVh*a1e(3<;X(n(u}=&qwXr-h-752c-*M&&3_6uhIi>rV8I$xyQ0oA(D0%OAE6BY?jYaSuQG#&zjh4|{Xe`M@z+5D%k=dx#|Z2N0;B+< zNajTH?l8ug^b(YM9m8!yuNUuBWM9?`)TJ2+>EL-&GkB`{DpeSK<{?wh^KTU})jtSG z;vZnislK1IS^89X)v{FxdR99nNTuEUSOIdZ!Md&@aU4_8;i8$`mo%Vee(AbK}u zGuCWlC(P-5`u#Ny?@2ckcxh;4b!B%wHRMrL%$0y!58qT~Vl}+34|A`Fo*=aVXQbbT!~r5FcI_{95zqZX6~bqt?E!zO}Tny`1}^rnR!Nee!L} zsSGuHq!O+D4~Ud*Tc+?iZ@1E6Yhrq^=<#s7#v_u%W$6Z*j*_T3HHZYIck%*5VsJVa zwX=jsI5lEFp;F8VT8^<9XbB^cC+;>|JdB_>jhNHyD>lX1fZtbO&R~j9ptn6=&Gz}q z^imSn(pR3D_LY1%!}_h}LJf*IhI}lf@xUU|uULzjF7Dk24UD{rz$2^O;XHM=EJmD$ zcNXcQQ(+UEUpv4^6twhFVq|4zI1xB?b;^|pMJasqX&2Pc5&!%Sr-@ER7-k@Mz)Vtr z_v=~o%~1&cC)81G!=%?^ywsGIg!836;iEhQL;hZ8Sex`b;(D1#%go*q%`Vs5OIIJ$ z5GqbZP~a9vkg}}B3Secero5&msOg^SmMgfb(68Ag00Aq!Z2kx&%5fBK9Bx^y|8>lv^d#lVc^+)m#hhm zr08#5cOtUeY=qlp9%LqodKYsj<*x^~&j62II2EB0=0?73n=AIa<7N43l|Qp3-+&-J zM#f>&xNztg9)rQ+L(%OAhw>1dc!eS4Ys;JJDw84KbfIxGkTLE!l}MpPC)N7$gd|*Mjzq?1hj;ddL%$ALHwG?U92w5&^CpOY zg*f86F|FkjJ&G;E`EFk7bqa)_6p};JC4o;v`3y!)wi#23xW2XF31<{JkoM%IXfudg zm(F-(TXE za5kqtF4njgja7=q#6Dwyfpma6L={@kG~Q!Oe7m;ZaT?x*z*zD};#b*Q{1k;_z>^~^8CTJn5wl^zwu5Fk=TU$Zz#ok)He zzI8oHj4vT=)Ff=*#1@r=&K74z-la=I6q#%XnJ{d)mjyE@2z8_a-K9ii+CbW_J0aFn zo+@R_oXIw}1wIdXz>?iu9Y5i;Ab2Hq4)1ZIw=?yb1W6Z6U7Xj0*2U4og`Vc^jW zyK@F*JJI4|A02(e`W`e1``e}hWg!TLRb(W;IR|~v(n{qLUK_JO^b*k%R#6oZn#ZqB zp`iNZOG2)3J+A!lhKcujwj>f(r3lrOrHd*LG(71t`lqt;tS#4jYw!T~mJeuMWc8uy@W(PecZ$53844|aTbs~7DgEwZS_{h9saYClK*QVTY;18-Z> zO%`5{dpI2ucnddt?vlTc6^kIdI^AyLU(ax~!etW7tjI>ZsPC471 zi_7tmhN8}-wyX3hW#v;!Kpn&bazA^_<_KRlUDXycw@(Fa6MWlV6Q6j_1jUX%^TWdg zT(OT2$37;UB3rWfoGMoO9b2B`zx~#+H9WCCD_Ry@Y*vfZ`Sj@HQyago85@jR@$%s2 zfM#D8_O-fu`>H5*xgP8zDR3u#b|h7UFDEOiMv`M=%x)cSQW$-6MP+1m5{oE(Ctdln zTIIuZ7{VsT7t2yY{u|MvVj zn1oA5p-=|D3d;cdpObLEIbtG!kMT$le7EqIF9!Amaq(^05Ge(tyF7Q!h?F72QAqqT zy|;R2l&_6DQxu9lL4p}Jsm=ECVYHxfh)1`J6e%3dvK)RjCA0Mc^@GSjJmF2W8K^JT z*AToWU6^RUNM%8#J!y{~kKF_u3!L+v;ZwM4$_*_H3whzLZdRX6#PK)ft$TQ3!h*%= z#S3!vgO027IdjEi^3|sE1BGwhCn-};NS?z$zaR0MwzHWq@bjkUlTbC|qUy$4T*QGv zDo^x#kMK88xc5I>ZZ2{{s*k-0N)(NTI1Hp%Fkol%5swi?*x|XQ_H6Kc!V^9tCL)Ek zlyFmynjdMaltM2nVq)jC90bgR0b z49$H&)HDs4UY_BU6vV%tErH=4k%HLRuBxZRonb#QoLqm8y4_1AU-DzX=U{HXkhc%v z-H+6lCv77`w*!}s*w7wY(l+%If6{qmT|++8TSML~sjwQweIt3SXg#(xr1zc%`aKMV zwWDR!x6jGPm6<$k)#cLt7Fyt0vrzGaO}^9#K4E#1HVaevGV?1ReuS)rF$O*yu}OO) z?hD}a@?4BrT!(J5R$`@G=X+s!N zh!JR0L>E{rpI9s?uZ{2yn|Lm)P2QD@!8o-NPWqnu2R+5fx<(3`c{e3&EAwp`^K!05 zXcngyD0|Va(>DWi%uE6v89t=KA<2-pGRs(cQjLQQArzBt+j}os`PaXRH!vllNMO6u zGDQ*9h^Sy4eJ+A$dV;mFMrM#%XCq@3lk;mWm_~rHnJAnWRfJm0sGeduc z?a07yw)%Wr>}IICvnfBLvvt}7OrOFxQvDLIpGs`!3m3PA(mfp&Cij-VgTb-7R0|ig z?b`k1zIn6Dl5b*M^fuq2B;Mq~ns$&rqX^!|fdWVm^X4ww=DPmbx06K`C^j!vas3wi z8`PThtviyp)Cjy8^r%~2#KOgRG(AC*v5}rqOT*_0wl;`>3|l|(P~Gyz;ejC)uk;$E z%HHizAgIKzM?!Eeu%#yDx<`pwv?I$!kJ#mpswmwd-xr)qsYJ3Uk)D^S)!7tW9zH06 z!A>vVcWX3H!i1|wI5dBZs_xF^i*LJQ3r|xdQyKThYeb+#) zb^F|{4PLE4bCiF{55;zn+fIbGCHhWFy2nb8y?KNBY8q0;Xy%(R)b}NtP5I+Ap>3-6 zm0D3-rft1hAN-r!a`KC%6_Cnj^F6ugtG9JPu z*ZqV)Io~D0-nDhxB`!ZF9h&0nLfEUuR5>?a-QZ%|V0N<`NEN}Xo@>C@K&-IuN}Fp) zlP`^~q`%%^_Q@YRaX!SG-A9cUjIzKYRxnGleZ`xV8#i<$zhsHe(n!$;=mwhOT*>R2 zY<`Xi3c6Vq9~7l?%$(XrT%mAIOrG)LxzeD$%wPBSRT?3G!Q}+M*=~)ZN25*ESrA3@ zr6uyMGv=KR?3QU%4u5KI1p@mgvk&cswwa_3^Q`&W)_(GT5u$%_LlzXj!R3MPpLK(s|AkB!fiiH4x$k z<4}ZflmDh(Q>F<&#5FEQXlLbzWF!s#qMhB-}ArQ{&qe{?!FEpZ3YT3`vX|Ixtm-3av8H3_sfkJmDR ztNtObt0Phmy}Y1bz|Y_m&Qh_MaK9l5O+ad=MfQ25jfWiK$e5YndTTo?64Kw%z}qv8*;NA@YyoEKqKzJF%0v0NTa>a9rX}In1^D~ zd~ zB%_KsKB~Rj#7`*5iDDa>Q3%vZ{O`s-Pf5Mb{`T#}^P$!SZFB;AADV5L^tpG>?F|V^ z*xWjq@CP3>E@GNS>2J{8?uQJ2;_0+igZV5QhdT68IG4gpf$xLkc6xxY;l~Xd7K>4Z zR-zJr%GQMrqUU!MTJef9-7Mq_ANIC19itb2L1)MI++(XPu7HQB=Bjm?Oy103ad7af ze(Nf?srbp@ThT`|nWYV5){?~O0toW~`KbMHBlB4=&9n6WEO0XLUkOYVjNj)Pp zaa4Azgj@Ppxg#!n;#_qUKIW^lLG;3(lDrV=no0gY#@;zP^Db!{?T&HBwv&$Cv2EMz z*tTukcRIGw9j9a4w%I}FB=ddm%skJTdC$4l%AZwh<#*TKRl9IiI6VpLhUzuD@nH=}C($_Y8eO^E=!6wj3N=$1aG($SXh*wp=%qo^p z$0^7NVb}_#4N|fwEgJlCm)&&v?a#U!TI@S4Zw5E&ID?ttvcZ0>Gje{x_=}!)<@y23 zr7>ma9&QHbs)~1LM$9MsLiKCUH!H#M|sOW>abm63u}qQse6HRq>F0Uq<6!_pQFD^!^4q<@8zt z^O^K3lj!9^+Wnc7n!w_Rn4RWcG?oM7oKVw)$F( zel;lnn;rJYHvz}4kiFteyj^QUo)uFR@6lm*_bMa`yiqLtiC9X__kO5rx<8oATm8>F}%R@`F;B-}PBL7q^HKjBoTt~oxxbFU^iGl^1mr6vZB z@YbvrY}gJq6R8DhfJN~Q{>TzQ89L+uRVWKfj43MgJ_qxR#H@jsKnG1}&?L#zh(+um zElgh5YR7=b(Zd;5gWAa`ph#e}hfE&|rV)L4Oe&w-t!yX_{t#Z>RnfPts}Q}Z`vm=a z2CP)jBPt3}asqQ$rF9Ie6{vn5SaZCk_g7n;(ld=1_{c)P8{L2Ga(_><{vR5Y|6;8l zf*<%$@_}q6Yq=SDR3BL^>N6@rLP97dEQYU*7Cn%lSFq4#b(qM2jf>$im(=BicJ!W~ z)545bpnQG=Cfv>CU;~6REF3%sx9&MN4xaSBZ*8A0Ax`Kb(wrG0I52M9P7Oate$81_ zCyvVf;@(!hV^oSl)*hruGEb}L6l)Ua3FS(AQs~Y;< z8W$Oc>nfg9nnjtE52%-+=!-rU$E+01t{*Zv+~-~w*MQdCWG@#TDEwU@!NNSk{+lCh zI-pF}O`%inU_Q)9Vsx3x0?9OO35lWyL1gyYQ$w@`(!LC|wOqRV26WloL>wQN#-;R-R4b;|1np>ag7v_TgNJbq(y$_mr=H&@wPDCOoP4aP|xt%O=L0m?6z0! z%H?lhbH{x8-aC^4gDzR!UC2^2%=uA}xMTO5FV-NxxJjg5q_+*|j=wQ7XgA zO7Tt@ci@hmJa}xeQl@ZQF&qsfWgD7S)5t2 z-yL^C6`T9gT1|#}?C1no1RqEGxEG};4bBuJ25f-?=Gz25pZJoleoWT}q(K!AowYY# zWO=T)TKoQa`UBcU-jpC;TTB%GjE$_mzz_=8I!tb!EJc{h?@wgXwtDW`YUxgZ?8YD5 z8wnEVW4zKs>+D`l;Q?4d8)SuB=R%{cHo6?IWq3+axLNfXIcYC22!E*7K2UDSA@i^# zD#nATw1!S?ul#!FE`D@#le9IY+#p04Pt~4c?d}PXt7mrD#Rk+SIMQJ5Q>DyKQ1z!$cf zmv6%3h(N7Vz?GMO4+VjH@-}N9r72>e3d}&&>SL$kAzHs zQ74-g{S%6VZx%-4RY}}STimB0j*BJpvm5oNa^x4ZVfG)GJ>{Qy1qTza@aF`W!}$Nq zD#g7yprz)&Lj3h^`$`&~Is0yKpWlt|KQ>vv-)$0qxz_$ee&<8@10RY$@a~P}Py|qU zW^6Vh4bc!$kwk(DD*SA7fWa+_u=!y`1AY0~UGpZXr#A7A1Hp zjGK_Z9rU;!Rvjl!UmjnNsQr+36WIf&zzQ%E_p4YQidqSJd)e{HD7|QIuGqstG~&EL#C_QwrR?7=MU zokp~(8&9IseDBH2j3MdB8uQkB1T@1|H5=IZY9$4hb(f=w|M5sRu+EedF6R+C3yHtH_s}yZDQH)EB zNn(rCtTB&Az3Q^&XVAvPe4(I_yBw~&)bSL<YSG=a7e@r7svWPe$a zY1{fNL8swhsjD%n<=`?X;T%F%5@X5Wbh}v=qifz~FEU7`9YZw8-~^K$?jn+8eQrM_ zv8}r>6%y%`np2}Pwb9Vz>@=Jqs=aY|m|%Z$b!PTWrB1uB$VcQvN2vR}*I@@2={@}- z4jJ<2ZAU6o^eBF^pGX!}(>`XKr85U{9EFEi#{N5LnU~s3BGvAUBJs5ZWyY{)@mePCo@aYUyv9bpA(n4TE zsCe3Kd>cc5ezrKM5{qvJ`NU)v4f$0R=DGs6m^hL<^sVHTpDe|nzZIuf&qGXw-@SRj zyT$)U7U%zXZ2pxp`H=g-hmH><$1BM7FrWt8e#Qc!0*T<20tg%JFw2FQ)rn7v_joR4 zOaUz=RV71}thRVQLmyLae9iHy@ke+vbMVk?H5rCWhxeGDksbE{sS+e!`Tgq>ynpHcIJNch z3)#3BSeY9unmF1zI~bXWxEYz){bRuCpYMzh=?{Ep`ap7=j4X%%VzAzoB_g7LyhKzR z@)QFj9ix>z3c#Ld_y-o}qVXvaGw2nFZddYx9Z5JW!Y1^p2a?epKg(2$-IU7QT=fsN zqlMT5j8BkXz9R|^1Pe zD#xyL*3KN|A!Cv;doep`X4Il!O8KpH5ZSKamkSO^7IpK6@Z)vV_}n18oYJ76X=zr9 zG^$uZvmeOgsC<8~Hdw;C-M?2G$lrSs{$t1Z`|tKof28ye=3yBFn|Hpuf9w7Dko~}i zo)2WJ=%{IlpsppZ?g}~pDS?Z(N}8HCOAU+jf>e?u;>(C}mj+0cLQJF>wl;PSGjnvl zA#&c=Qwz(G>WhtSUfbQdo3{3)-)sz_NMS~v-$@`>IXv%AIlk>T^ZB~NZhocu3^0%$ zg#7HrFdxg+f|Iwei%78T!^gT~(IfonTO7P0A_B-GRO0Xxdzc&pup)GL80?C&ScSQ8 zhZ(P)vkveFve=q45wI@q6f7_@D;cn*Jl-JkLtzckA>3Ad7wf&PXjOA-T6rf$$&t!5 zn<&0~$RT2(S!8NS@~SdHoOM*WJ3hK#Ca!?6g+_J1Wo$&S7%L#NSSMpgwwCyq6CY{R z$bkVx*HBG_b1uM?&gdnT`d@~=nCL2V1yDiT7GTZU}Q6_iEDJK!>0 zYec;jHBG_BkGu}JfwymHdtWB-iSL%STN7PT^mo$I%gxg5eHHn%B_hIf;0R?Yojd*qBLPNAO^JR{2%G7^92``rj5+DfcJ zRzI>4+xl3OKC5b$;rd1nRw{BN9k|zT-e%nA3TLCxm~~chR4jXRsENWiQJzF96mM1y z0*7~}04Sx%nXttdunrckmzgadh~Lq8Q(6WM9SNWl)g=xhG%%qmR!I=lA&%GGGitid zHF%tSi)q6=y+@vasXi#ZU6pc^L5t;LrxB5&jhYnU1G{tYR-Ti8ri)gbWj^+<)v3uH zy4=KV^jUC6GO&o=2g@1+Kc)=4)TMreyndQ>yn)D}XusUo6I$`N6@<0)ykzbO`4RXd z^|Ds2HibGz{Jh{z#WUXkW0UjA4wR@vZW2jbWK`!-7Nw)HrcU&bz_HR2lPrk0Z2JWD z2)Kw85yMYHui_H9Nf4B$M8ESKHu!*;r}hm}U?R39X;mzY8$xJ$&n$=)`^Qc<)tI;V z{-<8vfy@DXSw`u{o*z6xn7Z3#b+XJa5#7+fi$7!i)faQcLs*wrj^%t`@#o=PFopb< zwQh5$=8eQR=?3f(U~i$ScX-zrcWUB9;S$fQzJ*_Lo>9m$zozA{k=oCw2sS0hIoUv~ zK_6Lc+tUKW7aEhuCBwDoB3D`jz5Vv}h|yE0-q`-?59X_}h!@}A;lhAVpD6xIh2x+1 z%3qUBA0i+45dT1>s*Vp65wXQI#= zOc#6Cz$c|A$Xj&pSzfoT9W;z}&oe%SZ?Y*S(BVM`SEl1jL!(^G7o!{$zAvvQwx4Xe zBMLzuGVPEM)TQemmc zRMk?9_|SUZ_A0F`CpTG&i|H3pO+sfG-9V2EWVoA4X%TuiofLeNj)6-IF>g@<+1f>% zLrz!tt^EtDIE((QLdsJ^k3ON8=bQCmzslOz#}y^fRocLWP9GQHh*{ORa|@C5^xa7g zSQ*6Of(h5M5MPx66xm5u9oOo#)UO9l*KFk^v%}d2$}m3PMNd9mY60sQXcrb=QtqhR z-Pe-c{Y{CDIT<8*GDFgHYpt|6+f&lnMtc;9KpfFNXJ<>NFwrbNjaw<4i_c`UL*^nW z`QPV;Q`$9}D#n`Fr?%Q1+YG*G2+kC%Fx{9q2!>Ek#;?pj+)59zMx<9zTdy@fCJDQa zd>tE?s0)3knHqVG6|;i=on9s0 zm{Hc7*HIN*6U|d(jm8*#zIjMdzvLW=f>Y9>Y(zcKISbyIO7jTpaoItyN^Koh<$Ilg zkIHnUQvyAiV{*70pc1+d$~}fW)wHw2Ok*bLURuF5>#gmFEDA^0A5p{!4k7Zd)OcCxLIA(2M7Iv1#vEZ2}9TbHw!nWW#`46B&y9~_uD#^;4 zoWAM$?39HXN7F;zP1%DX7k!iZDKMZ-vJOQdVGX7vJWms9pZN2gdmdPTk9J{lF*vBMAE5F@ zi{%c5_?cHdQ1Ko-tMJDS7iPsaZkZE)$*~ux#Dsf9g^*RYq>{#w_JaOcDto4KxSh-qB;io$!I%jE@GFcE~Q zQK{oka74=6G5K(=AW@CaQPEFM2i$F*(BxiW@VfAbDD1){7Z3gR2%3oG90DkIu@)T! z{O5P^%*ta5V+P40-2K_oKLw0T*y{Z=c6`R{x3_hkc={e{L+>aIu1L|RLtEnSuiF*Z z0dE1t3uc9}EnTtVUZG|lxu@h3g|%yE*ZZHwKyFAN&5+!psVSFr5Fha>dy|&kiYOey zLUMlnd3bw4`|=wbTY{IU4c**JHEdkvN$ojmJ@P<(5Y_`nw~Tn;ODAhxr_i1-gG}HP z{<@kI+Di|Nvif(b4nKqvVVfNtU#HX#q@!&lXh;vKrDkwXt@9oXRC$V)yHBAyJ|%R{ zNKk0{tFV_5FN^hDhKOJhrd1VkNf}6KfB3w;fb+v6a88Dgkkdq^WA>w=sM%Mdm`4qcNYlt*rm--X z7-Bd1SNLc7V}*QGiQiIBAyT>wtQ+gK-YO{@D;v3{4$==9drk$Qq^|YY?Fd`5~Chci>V~ zWLZu1RQbaGGLJ2?#RS0p7Sz3ZS=fbyV1g^%QH*%~3@lS=~Xd+)t0yVv`TM zhOU^_$PkJHVWZg+yaI8qo;DZ|+^*hWhwy+U`X?PW3AyjHz90=nXyeJ-99vy~blAK&EOPM?Z}b%sSkb^>+T z$6FL5b&1o?dIvq@ukpDzsi zEHhEX6$2E|CSHIBn8WsB=G!KaGup{285fmS=l<2~#T0{Dv|&GelEVG(dECFm3IDIx z$A{zxKD2xwTOHa9bq?>3Zrzf^S0N~(&mdb+gh5t(H3_Dg zrRe&00Sjwu>+(uf5li3x<&naM`7%Em;(0^M?v;7``=MDnHqnmq@UFiEgsp zte?I;{yBK&%W=Ew4*g7nawAm(u`n_S$E)qf17maB9msP%A_K#_6=-N{qk1Vp;I&B2 z*8JtM0U^<@93i*++un{NuNS^vTt)NH*;#)}A*$x!$Pue`Wj0tBj?J_PVYWNM+n7s#R~5}+HR*xn8ixSrBw&F-@Ybj%hKGzVGp z#{0YK2c-!QmD)x^?9R2lV2`&nFaCo8V@@1MuJUD)@>Rnsw^G2jt20F}NV(xTN0=Wc zy%wkOu@{t&KLQA#q-E3E){PF^=gFhR)!D$uts~Q4Wi-9S5y)Iv%(;3zl%~y?3ZU1b zEaHo8rfntDhUAIOO_{6EG(F2NN4SWtzB1p|S>8xHiFbOMmvl`t z3co6mQr5Itd_EsDPv;-p8nGQH(;W#|n;o6>Gs(wq>^SC`2*VC%1sORW5Steus9F%5 z&Mr^Ag>sv}0_B-A6~2qv)vva3vFt?hDK(1>ZV-<(#df&xx+TRF@PE3xYp_(P+z3#^ z9xFjr=VS~6nRx;zxhe|il?S^(2r`j@q3;<~T5s2&J%PK&!J0h9svl+ccAO`ygFWXu z)UjGZ24T!HAP@aWe3SQT^Nb-o&aVpgWb)D2TvP}5aoDr}tMdW1CMCRvtO#HgZ)&*Tj8+#_C* zdS^hia(bQzkVyIJYW4N#(D)Y4Bz;fUsfrVfyuhT*I&PIQkgY$#R6I4Ef?+cu3&o+5 z3()MMg)Vo}$h`uLX)bNYt)x-6?mcdv+`Lk$*-1nxrpIwnuKH;fpEqJx=bkETqS5stz=V^75^ z!KjVObhC)qw9GK2M4``0WfX}O>nQW1$hPH}P z2`JaDz`@8Z33|2`L4s4Aw!|S|-cdC1>K367l9_pFbmnbXNewnsY(Q#Y(IgI&D_9bC z)@(j$zQW^JJH&3^IjTo_8#=0VR#kJ_9)8GO8GVx0{T&+L>0SdCF> zDvQ@mX`Ri?WRp0tA_>sngiCO@hVUXs#C&)B%JmXviLVr18 zZo4YC%P%6m=@%gJh3$_BH$UENiqj@Zz2*Ws$zRG<+<_%-crHH`cx7lb%;6*ktLy&z<0e zTDUL^Y1G?BY#}yRvG;V#YSxA6Kzsq$a0|B3*!E|z57S{O*Wp4IASrdy*2IrNRss;4 z7qPThJM>HeV}Fj)l#gU>`Q#S>!(s2BLKG@`GPad?0m4Cf&7%a5HlOJTzM-_c`K>cJ zYx{Ba*V@=+9H?0(UsTUi;iVN%RDsZ?L#dsH7Zmv2Hlk$9gEg7V5mAY@-10GBRGkna zg1!UH-ra+cjKQ#v)a%M)R;(efn!+Qo^nhVNNv}3bPwX5!#sSJPwo|-eMkQ|MB%FHr z*dY;%KdoCk=oK>RHGPerW(TEm16x*?vedL+y*z}evcE-2QS10sE{dA;rvKJ))23z=!A&t@qi|yDSTi@;;R@Rs`GycLTj1V0yAT6z5Pl=z` z0EO$EB~&8{8sY&5P7bMkz*OLYR+Y!bwws1;= zwV2@oeKeVi&hj_9L$-@5%uOr3xPgG!4iXLOVq|$MyVNEodgZmUCw}*K=NA&N++8kz zABzeUc0V%8*$WZaW*>hQkvWk;d)dbCZC`>zRMwHyqpdDP(w*Iaif26V$xiE3WWm5^ zhR)@kRGO4exwLua8k-h$PdUAiSKL**BB#A>&;(nZhg72ctS0S0$%VYVe)~3;nd-KhQ#ja>D0co1ur_PF&^TMcnSj*`ni&j&!`G3-Mk{F zA<5mQZGKN#xMleS87n41FH2ijY?DNV%#R)xo&G8fp;%r=tZo&2J}Vk$ps(9nH)waJUVIkr}f&2EJ%mskU@ds4f$6 z18=zW`M0e*%)v#ogR(`Ygm;&b)7p;H0t$D0jv#2x01USf96__ZPNJIq!e#UT=e`dY>1=3=zv~ z+mXr{5RL08f}|KqGNb}q0IB7zofd8)BvpMX7B_PO+JTlTMqrFV%22%wLW`mCh@u9i zrqaEC5H;gfXLia`70fh(zasT~Uc`2gT!bcy4YYXTWcBV;WGc_p z4@-7DmGC!XvW)GES`A8f7%&`Itic-5s;wfb!ltBPw7ekqe;QLAaA<<6KvcprlFheLA)u)FZ??OHodGF6{Y zSka@I>f8iSuCUFAj1{AHlt+6(B;}!YMvfy;ueBFZ33Q^GApr zELwRu%dW%hj%GGZa!;SWm(L)MiPWYGh|mZyzHu2oZA67reNnnv%8MbYg$N~;?HNMG z3o~!g*hXKavxhvNw~OuTY?0e0K8%>#w{#QPR_P$W;#|*Te8ct)XS+)2Gr(04?I5|LTTfh!2?{AhzSsdJ zAA3rP(y_9}iC2<)Ctbk5&lVBdMSZN>&Nz9%eM; z@l0JJ0Zuu*V(m$H@ z(>M~5L(9C@B(vdw0(3K>j4D~BYXEqL3PMwxi?6eJp57;9tN zP}Y&mEonRW{2X?g#|{6wICGj*&(Lpa`x$$QC5g6y)otmM_Azf!UYX*<8&I}Rxiyg0 zMKRIq0nS=MuLEs?v$u|6V(C2h2gFy!aHhTHxiSmSG_)W!x4re)Bt7df$8T7r;H;yHR^cM|1gz(1Sakkg*gZOE|Tf(cF3)1|5d^bR%Oy zR!A9U0h9Jr)Rl5=s~lk&Ts^fF9YN1%gX!k_eMl9-WQJ0vFb$){(y5{0TglN1wE{K6 z6sHy5oU$amP7TkeHG5MLL1o`Smsu}V=Y*~%5X9dI@X-PxLFR`iKjjSm)&xBv_#yzc3eX=!H>?7kjWZ^YLO;KrU2t61-!>>`F9L zf!~T!Nx)BdrxXS@1=+Ld0=xphwpi0oC#|2AU)kcmf)*L@d`6z{%al#oej0MI4j^>`p93ZP?-a z45ClPRBjt<6VB(02|pGnD0pQLno)4bl9|G~=8CP(ObMsM6WbC7`*aarO$3m-#9)6V z7Ph8Wm}n)Hi-8PxY>ZcZ74*&=ir0CJXV>}#g|e~jWhD~0-Syrre3Mq-p`(4r2tQ)? zxhdX-S{Syiv^Taq`tkKx0Q_=9E$w+vDULr{yr5cmX++YzhFf!cB0RL#EklYL zfkfVQ*4IhbP&?9uVKQcxhL>K9&pL2r$hjtR;E*V)ud0XT#LO z;pK1X+|Y<6g2(qXtlE1@_CId4`uDo}Ut1JO#T*Q5oZlCHylCJrDlZUMc6hl$sciqEJ+`m;I@Hhw);q$Ih*PwY$IR9s9*}= zQm%uyBpd;Ihxgr?%|hOpR5wnfciyjCn(BJ{-XnKWO7~BN&oBzxiH6iOWhHKTp<*~i z4TS3^{U*aRLZ&}yA-*b$u|#I(93V3-Ow$h=|5mratVAwkIJ_gt;BF{BXe2OwPT5eAla$M8{~BIKwf$ zfDU^D7LVmzn8r}wIvT)XKQfxmynkw#LzFeNhe@~ol4}EB4HGiH3iESt=Bq1J z-J}DRQ>tBG8Q(!NZRiTXDr4T&*EF7Sr1pgx(4P1+1)eV6Zk{&LPHWtu&#F)pb)A@g zxhz?0`yLsN@Mcr~=0bfp^Sm7g8PJ{(_%nM5rK5xJxXN43%Ga!_MG$^c$lkG$)Z)h; z=iQfI!rm3ekUJrX4lQo$)^22s=0oc|zIGPsR5T=GCfWhW=5rv{v@MABWY}j$<{43i zV>(Rl0$b_EqS>RsOchbbhrQ_h-H$M~TZZy@zN%d?lj6JElv8GL2HJ4KKd4%bJhV>K zsM~e68T^*fg~JY+E3q#mi!$77EE5>nA?w!TyILiG0O@`W7fM?JlqP7fT%?0Lc8(%; zYJFj#;o+lA+gHcQBGNHa&rC7UlGTxQ_E>}8fSK>eu%pTJPY2jPFhtVAih;ReLe%@l z$R1TJ3U9g)VnWm@`K}G^sGdR*7aL0KHb#J+)@9a8QyYmfr3N@_nH(hZ7fA@flU@bH(#sH&M2i>|fI%_!8a}Pm|L4wJnnCFd_k45!^*O z_@S>!&H@ANf%8fe)1*$X5OzKjMLBgBAhxg~~!Ji7G5FK%!D5gQe1(y7;Q!z(cV(CEe6C z;*w1lf3^?OjEoff^%LK4%S1k+h<9A7H`ll7&ijm!2ZG$6pIiL*5TEQ=p$Mv=nMtG- z(@uOwAs8?UE{lI1fVPmm2!4v}*|^_<7kU&R&z3?{+Or~>K-6Yzsa$$``Wl$Q`aUs* zld)qLYC!aDsj+CErS*J1QL}S6k(NZm;Vk96$?Av2WooQ-`H=O(=J+hqxDJRU1}sqV zNuo7tjISVk=|!?QjrRNX5g?E)d4!RMmy5B@(Bl0BB$QibYS!havrd_&v2wy@dX3O7 zs`Soc187Dzo8g%^5)81@9|7v|JUz zd|wtc+G`ktu=9!oZs%TG!%dMR)c5Tq_A|%k%%80A;m2L}SeWF-Lp5#S1^tcDBqo@} zZ-Lz7Gt?VmdQrJWgbAq8Fr3o}&OD`pyu_r$1jq$LUeX@m__ZXMG0g`WSgjsH{#d&3D;-B5YmbyZ}YOl!ncT#jgDCR!L?7}C5CYi zCAM3e?{zbTyN7Xro65%?R?7C`xKz#H{zfWLJdV2;+86= zbN*@d4MdM@dqXTQFfU4o34TO9*}nRMnr!`R05D=&v_<*Iys&vzAU5?Dsf}TXNV3RZ zjpdE?>@_6pXFromn1SGR7I|ZzP@Y_}k0U75AF#isBK-VY*h1eey71k)|0CV;|8hu_ zY~LqC{@o3HDEYvL!VhHsGt}~UcLT2AA|Gx*8%&0jym5Z9=(8XW;HrP-2wIwXl!aNT z@8>iz(bOU2WAQ%%t+(Emi6e2SZ4w&NZ%4NtZr4@=$8S>b?;as$5mvRcZO<;#Klu>*!4+Mr375KMgdy#>qmxIV zAFNHbpXW#liK-?S>z0c9n5uHs&>7sh1{1=2-@JAFm+-DLeg=SX@mpIWg`2m|V^t@$ zEU#uI>!F8764iNn0hW5z&S0%@%}DWwNBFg;h}OK9zU@!;?h*2*qdq(WFCXIP>@Z%GLyRaTlM?0_*a&UWgcM#O?LJ{~!}rGe z;U7WwFHlUy5qfA*>+Xm>!iPUbjQ1`<+?S-9=DeK#kaooyy=TQXBRG=`kfF8vm0QGA z);^8?5Vc~);}bR{_-Kz`UAqfOFvA%dE}j>4H6hSZP!uZbiYdL!S>%n&B8cy0Ti(l9 z{t~E5#`fxz){RB#`?tu)TU2*%_dR7sg8ttpN&b?2`&Z=iuYl)6_yZq`K9H?$?m8oi z+Bs}U*+fWm>JJ9`xsHXM#y|puEDjMwHqRbPDnDZ$gyHr0W3ko)%M38xGFWm^Qr)J^-o0EC&< ztWT=KJ)O0>W*^2q-|&AV$K8)z$^jC_<zb#KpR1RsFP&|Yk`;7Z2 zuQ-=1oHQtg8zjJ*E{i2c;8?;@^sB5Wgo3h$*U8E0RQs*VUw^}FV{vjS{s$o(#P=d| zO2kCuDSmM^%Bs-7WFH!+!5#V3E7=oC8boE5Y%et(dBe7f;dlcM zUZQgEt(pq+;UHw@Uv%_Yc(S5Nuzg{9=osU;3dl&&Du;I>ypGZ`q=$CtEXRs5g~u?)7OY)0zPKl#Bz#ws`0}I+pG;f1 zgIfkqO2QPnoR<(MHXZdRjRh$&J!7Z_73Vv{y%oIbQ6da*USa%siP)?Te^|1n0qB;E ziNZ*AQaJxK+uVR&9an<(NMlpm&On%p8g88J<|SFN6k)eGt0=A&2^r#`pD0%L1(3UQYAwiE2EdXq|Z?onr$*-&<7Sz4W=6vi3u+hwlXpB}2iNws^D{$*) z?u{`Z*^oPq!)#yW<~@@k2Mgy=oLE23*a{lgkz=l&`QjW?HGj%VU4aOL( z)ysFFNKZX9zMg{_ZKb14yR{dm8a#Ct>X?-c0gx$;x`nrLGu%v5u6<;N8pn)bjq&HC zc65z84a?*H+-(jMpI=Ye5Bd7;yOc~|@Bs2&_<9)X_k^FMTA{ELDgtt*R!p9~j5pF( zAqnQJqv&D8YV93X%z-FV!FbBul}~Hm%cf0K`$QUcu#oU7mPRu^S#oOJpfyD}rRMKj zT4B_}t+;!UY-@2NUg6=#!FL`B2e^s7%-qTvHmr_&`)Y=Z7$?J&rA}RIb+mQjdA{yT ztes(8@%ZSE#Rd(V)(yHh=i0zn5qcg!Gkf+-z{5q4Rk>!+mXwWJMklIOEi%Mv?#H*+ zF-UT73wBCO-EA%(7B`u7#hI$U zg{SiSQBG=<7pcc|}9md6aFo*--mkN{TZ)<~pF@;*LL z2xn0boEl1W!{9!1j933Y+f)wNeOSsMzab8#Y*Ml&A@?9Jfo|7w#@NzCQNn(QnH(!` zl0KJmR4cvC6x_5Se*>j^>=jGM%d*}Wxg1@R?}AoV1Krry>Az@8c%R+Z5!!M_u`l$9 z(LN+KTEova=69-lN`yL4GtyPa2)k&+Zp#3YYC=B7Z)!b+65gxJZCQ++m(#D({OVt( zXRV*@PE+PcbDuu}SeIHq70GFGQ5-DTW)*E#l2*gVlZ%NNR42RNe#K;{eUhPxM>2my zfu*wRiD`l5?WsrX$1Mm8#AHE4XeFj|;y)$p;~_%~&AO>Cfm937rMQsI5}8SkP8H zDe5-}vsV+QsI5ZTjz$iHCdKPRJ~Lc%LZucdKOsypqi~2cv}q6PA9uYsM9T=DGe9n_ zsBWBT$rLMO5)+yT)+Mt2is2E!$$5Y=w=iMIxKdZIuK1J12zFFArPke)eqwQMR5!ks zXH+-6w)|I)NMQExD>oHUVg&z&>3vMycp4G-VGd)Y%1@&^p}>mZO^Ob4&^zR{RQ_+3 zeymP2SAnkwO-LuDw#7c6cQ~aR!mppb1f}$ZO#U!O$@>O8CC-YKe82iT+ZMdZSli6I z=lj@h`5%`}{5^0~G_f&$-|g{l<1hcS81qBT2cqM;EqeG7L*5iDSt_?>Exe#3T0tDllP>1YPN>?VYO5OG{ffoppJU z-gRaK8=p zB~vY~-6C_;B@DYf*#WpeA*dLLA${JO4~+GS9Y1jV`IR8|6F#CCd$ipE;&)>`# zPWbVFhjk8o9lVl%H8=jgFiUJ5UojL09T{qD;>(12;&5wrPbV68@B)O$p6Z<(G zxXf4aTDZ)2|AQpEr9HU&Z(|dHx#FK6Bpa3g%RA;DyUuJ3tmtJ8T+F}yWAVHA`x=J# zqUzuHW^g``Oq^{)`>Wp*|w4Ju0bX- z>bWSP0=-{~bEgPq>;RGd(|o6C+*Zq%Z28&nBw8uHWnNc;xUH6bSaXAHv|u;H22ndXsKSR2H=pFtZtc{pyTO0cdY;%9e|IuM6% za^Jb}KoT*CIb?JLsj!aR?>XRNg+GZ&oRqmL3p2K{Evnsmef|ls8kd97`wi}NRj5d%`9p#-K04E@0 z*<$EYUkdF48a?_lutu;sCa`&juzyoqrmM3W>X4N)r8vX0iB?pXF!Ot;g1quyqs}lP z;Sw+je1|+odh`x(-~2rBI7XsxzE;F3syBa<`S!O$m zR5Sk|J2P?k_h$AFMIZQ3`hjfajSm)&KQ;>rU&|1|(9jUmYd#kOeiKDKZsHF8Kcu}? zY@AWIEa*7KHZwCbGsVoz%*@Qp%*@Qp%rP@F+cCy=9J|fq+!@We_t!m|8BM7lTCG++ zw07^W_F8LK9a4g!>&b4|iKW+(wbS)s#x7ufBIkR2bvFrO-uu5Ww&Y@CRO;jjR(s9xNh>_x zxpW#{Ylj(kx*GeI3y$8GlVlrqzutfXb*z7cF$Zp5`vcd3s3v2E}B8LV4hMpRu4!#%v-FG871X_~anU1n&J zv2eb%v&2|#j1R+&?x;VU6laQ9KMHd(G5@EX64qCd64qvnQbbETkOK3RVL6z4+0!A1 zsrVU7)_j)e@fHg)3!M6W-OZZSs+P>x?I1-&>F?J!M*3RX8v8Uon>2Ok?9gX~68pA1 zwI#gDR!ZQWkm~n@lCfFgpHU9mjbI}mJ=A%_J|51~naQRLlI0jko!|3&W+^;s$x7ZUz$N}^Aot#swsM7p z4zWyf46!U+0ZV}BAKu}W@II_uvNlLa)Z!E3hRDNd#sn6N%`cwR`$NDxlIRhj`Iz998>+oaNDFRBYx2_Zp1W^VVFngq3{ z>mq_3YO}=Kf0Uod$*OCbzt*YJ|F6Z*{9gz2e?upLXN5l9}K_W;N#84MY z9II2~l00S3qt$Y29s1)p(IgFSw-Q38lP|sIRs%Qj+{Iw+*-!plwjY199HP9>%-uR* zaNO%Onr7n1nMSp-)poLOx1cqVI{sB_kmQ{y@Jyy2A>l5~EZVNxD(QD)tgzaUs+X## zymp#AFukGXW{TYFx>+&FV}MRI`Tbdhr+!nRM#b^lL-hbXy|e!W4VF|!#DE$0y&CHL zds&l;9m-JytW1WBI|r;xcE+GAN^^&)!R!bxW!;AIYI5O`gCb@ZsNxJpTq>-U?Q5P% z23IP=y~6QFA34s$oB^$0kkJ!?aG@UIl6$Cjfm$^~;}M)VT5^rJ{7~_)rKxHfYaE1C zCF#mm752;`Z=TBNX6io$s>?3GA?NekLMUe?)To@gcaV5^1l+kQj2|;bjQN%_1({~q z*eMXY#p#ToswuLheVm@EX@03-P=<#wk-9$j?va6=m}Y6L`mgc?;HlB5OVZs;}6juHbMV(doT0j#+f$I}_uD z&K!xx8-t=lSgDtUANG-jQqFyK$V*WAkUg$N32M1t&bP37u+h}{W*(YxM^Lr={^RjL zPAn@12L}SuPw?M&G5#MP5C8T5_($^(|0w^VRukGsWfbdk&Ws~_hZpof4iT(Vh@D8} z1Q0xc_|up9eA;~`z%sG)8{ZG}M`@M&5%Kno5XocL#+9>CKaSh> z!BB1oP5#Wzq6_yO9fwZGSgf~WJ`53Vf~&3&UW)5e_Z>)A=!N4EqL(gb3<>jVL4=!BCZK)(+%07{Q*Z0qjH3Y}kmyIpX7Vc){mv8|n8jok8@xOIJAmYJNRcnW z%6{dDZg3S!Tx@MrXmC8sfS1EbxN zLR}I=MLRdNP4-mT+ok}fLyN6FFJl_1=FRLNtkf}63rp#9Bq-)!<9Tv4GU@+lZkQO)dW8-dP?orpS|1KtP!IX$n6&oG zPN|0$+seJgQ>HPM&U;PbPA8-eOO3?9!iC8`)}jg$G%1UsaF}Lw09#yH!pvBw1N0vJ z)^K#4T{4>fAUAp}%A|5!>bg6vbAZrS**Dj?g)b`8s(+XCtrTHir4Oh^vxx%^w_*(|WVf@THri2hks-UgJJX^eoP*i|lEb^$rqRUNYDR0Zv*v3K z06LY7EY;0=!#o~e9#L7K#92y{WtF(5XSzgFLn|r5C)}yZ%AS*@R2=M9)cTfL*n)ty zL+*0w`DF<^6);&@)Hd{*RR=gXD-DvbQ%n}M(kQ_A#raq4 zSnw8EVpdkk?EJEc>Dn@?Ygt*@A+@Y*@+mEwt}@HAOnFvm#lMoxLRU4b%TlVsJ#%#uBNf`L+W|OiKDns2bgL?KqX*=T zs|;eg5!I+svE!ma3$kdkl@`p~b?WxXy;D(Yn2AwgTRbx5f7#RGv_`YHEp;``RhpdS zyze#uf8?#n8Y}h&!&d2Z_(Cd_L1TwvY-Tr!e5Ma=OnaaSGqpW!CUUy`{!j%K487~~ zJ`@Ve09b7->@2metu=R4X3l2CHcd9#nbGG``1?&7Zn-pd!g5#dhIl+B+225;$%$bf zbPKOW{(iqTo@c8k)z%XW2S>oYC=`~ zXDw-s9aso%X(yIc^78L0%oz;PD?C~5O?=&1;}#u)I5FAu&v|t-6)=QXEP8EA9%pp* zoGvzhcYE_#Xgjk=k8N#hTw6E7%2+q1*I>*%J9$g&VTwK3zE7vi3=Saef(@+-N2wQl zgJH(kD29w*jGq}433xK}^vB8%R4`6uAsL{ceL8pW!y#U?K2o&`>z|jA{Tl_h;=1y8 zB@i82#Mkxx{(}6uRB{+#hwMGoCFYkCD+`B#{mqHp%eT6R4R>iMQf7J*jzX)=U1DDC z<&smEa6JjSP&!O=;QJoC=YdEseSf!NhS0?FM8vu6X-0bbrU>yib{uAwSfb%Tf^uV! zc+P-orf4Rth7qs1@q!5>t@`9$a7{v16G$EZD*CQOiBY=;qW;h0j%f}>QX!t{*D76n z4IiHrST9i6=LqChS+A1cKeI1&8-Fq|rmwB$k&WQuGbmclRewKbxC^{Nbw;IxCQXxtm5Qw+02FDDIXLaM{nTR zI~@fB5e*cIMDNaq*9|6B)SYzc&+=3PmE;ke+>G1K6xXY-L?7)q;|6y^w+H-UXjxu* z9X1E*x@#~z0pC z0eW~NAU^R3^CEV9bx6`P`4$Nb>yGo#DRKE8R(s;4*fEo%(SS-aQ|)xB+9@+wG&4VQ4QabVB5CK6 zGc3I89ujK(PP4PK^sFxlA8 z%Q3CyDNBT*>!k%?r^evwi7_atYfQnch(3aGQ{d{7^~fXTH24j++rrJ_rwxx&zt${+Z~` z%IH{1ArNfXo?=aeRFaFbHmRE71hY6f&WwUgG{(YBY1eI2@rNZr=`^m?^x%ow1+c3{ zNqwr`#G>YmXbaPau2~<&U`ajNBC3~E8E#d>r8_tnB9|6Q%S!OK&-kNy6Ee$ z&LipZDEP;v(58NcVK3bBYHnwWZay@sm-5&ys~ytLkJ?>Z#{9Q%8BfBb{E zvSpMV9rKJ!&Gh~uzOmoLflZF|QmL9)cK4|M#AWk!M>hb;=80+eHM5cD*G;a=6aDna zPDqp-?N7e#swZRsd_k=DAv3N?EH3jlf4W@_#YhHQ>Xd`e;QFl#9bOdP`NgK8YPzi6 zn;K41fC=azJ=;+Fr_+R}fyp&woUkcsS3 zf69rmQ7n#dp?Qj%*hJY`USGkq-5?xMLGSoBV|@3!ed6%6f}LXB$&8mg!Id?{whVPs z`eX?-5ue5`Og`Lee1FC%i(JN0Jly`#ag?3PlR@dIpEh~LcqRz1pmKas0+en{ITYfY z0d$_JQ$EQu@7!^3z~!A2_8m>+BQkv8qVBoF)#1 zYbDb?V-1T^CS*k-`3I(%fIH&*`W!Dq_%&W822d(;VawAzGWjYTeP$s8Ex z_p8!|AUYPp-IpI~0>O?Mmcl(=Iy_7h{5_#G_J%o2eh!qT8K!X))ct2+uCPD#$HG?} zuMR2*2*-ajBKd!xy#AwXul!Y2HvO+t*FTDX_(%5-sT!}ws4Hk6VOKXc?8DYbF3?6l zLK`GC@Hd4(Y+<2Ak`jx*g5fc~gtjswxx`0FS!X#@g0{R-k37uZydF z1ds22{U2eQzo)+n!c74m2|Vtzy=OVU^L}qToBetD)boKJaC)N%%Whx@%Wl*k4aAgc z=ub)NHti5!g`d3j)8s5U+{H9nCm3GoV2FA>dH#lmAmYdwb`C6nMVP!*z>3>9T<{cW zAxK>-HsuUMsN}>K7Lp-#5F(AQG`h?@d4U