From 4879a085034e6cf4068ef5117d933d80a1fa34b3 Mon Sep 17 00:00:00 2001
From: kwwall
* CAUTION: There are many methods that take multiple (or only!) {@code String} * arguments. Be careful that you do not mix up the order of these, because for - * some methods such as {@code isValidSafeHTML} if you were to confuse the order of - * {@code context} and {@code input} arguments, you would not be verifying what - * you thought you were and it could have serious security consequences as a - * result. When there are 2 these {@code String} parameters—{@code context} and - * {@code input} arguments—the * {@code context} argument is always first. + * several methods that have {@code context} and {@code input} arguments, mixing up + * the order of those likely will result in serious security consequences. + * . When there are 2 these {@code String} parameters—{@code context} and + * {@code input} arguments—the {@code context} argument is always first. * See the individual method documentation for additional details. *
* @@ -297,92 +296,6 @@ public interface Validator { */ Date getValidDate(String context, String input, DateFormat format, boolean allowNull, ValidationErrorList errorList) throws IntrusionException; - /** - * Returns {@code true} if the parameter {@code input} is valid and presumably safe. - *- * WARNING: Note that the only safe way to use this method is if you - * instead of using the passed-in parameter '{@code input}' (which should - * not be completely trusted as-is, regardless of whether this method returns - * {@code true}), you first sanitize (i.e., cleanse) the parameter '{@code input}' - * by first by calling one of the {@code getValidSafeHTML} methods on it. For - * additional details explaining the rationale for this, please see the referenced - * ESAPI Security Bulletin 12 in the referenced GitHub Security Advisory - * mentioned in the "See Also" section below. - * - * @param context - * A descriptive tag name for the input that you are validating (e.g., user_comment). - * This value is used by any logging or error handling that is done with respect to the value passed in. - * @param input - * The actual user input data to validate. Note that the expectation - * is that this input is allowed to contain "safe" HTML markup, - * otherwise you should not be using this {@code Validator} method - * at all. - * @param maxLength - * The maximum {@code String} length allowed for {@code input}. - * @param allowNull - * If {@code allowNull} is true then an input that is NULL or an empty string will be legal. - * If {@code allowNull} is false then NULL or an empty String will throw a ValidationException. - * - * @return True if the {@code input} is presumably safe, otherwise false. - * - * @throws IntrusionException The parameter {@code input} likely indicates an attack. - * - * @deprecated Deprecated as of ESAPI 2.5.3.0. This method will be removed in 1 year - * after the ESAPI 2.5.3.0 release date (2023-11-24). - * - * @see GitHub Security Advisory: Validator.isValidSafeHTML - * is being deprecated and will be deleted in 1 year - */ - @Deprecated - boolean isValidSafeHTML(String context, String input, int maxLength, boolean allowNull) throws IntrusionException; - - /** - * Returns {@code true} if the parameter {@code input} is valid and presumably safe. - * Any exceptions are added to the supplied {@code errorList} parameter. - *
- *
- * Calls {@link #getValidSafeHTML(String, String, int, boolean)}, - * and returns true if no exceptions are thrown. - *
- * WARNING: Note that the only safe way to use this method is if you - * instead of using the passed-in parameter '{@code input}' (which should - * not be completely trusted as-is, regardless of whether this method returns - * {@code true}), you first sanitize (i.e., cleanse) the parameter '{@code input}' - * by first by calling one of the {@code getValidSafeHTML} methods on it. For - * additional details explaining the rationale for this, please see the referenced - * ESAPI Security Bulletin 12 in the referenced GitHub Security Advisory - * mentioned in the "See Also" section below. - * - * @param context - * A descriptive tag name for the input that you are validating (e.g., user_comment). - * This value is used by any logging or error handling that is done with respect to the value passed in. - * @param input - * The actual user input data to validate. Note that the expectation - * is that this input is allowed to contain "safe" HTML markup, - * otherwise you should not be using this {@code Validator} method - * at all. - * @param maxLength - * The maximum {@code String} length allowed for {@code input}. - * @param allowNull - * If {@code allowNull} is true then an input that is NULL or an empty string will be legal. - * If {@code allowNull} is false then NULL or an empty String will throw a ValidationException. - * @param errorList The error list to which any {@code ValidationException} messages are added. - * - * @return True if the {@code input} is presumably safe, otherwise false. - * - * @throws IntrusionException The parameter {@code input} likely indicates an attack. - * - * @deprecated Deprecated as of ESAPI 2.5.3.0. This method will be removed in 1 year - * after the ESAPI 2.5.3.0 release date (2023-11-24). - * - * @see GitHub Security Advisory: Validator.isValidSafeHTML - * is being deprecated and will be deleted in 1 year - */ - @Deprecated - boolean isValidSafeHTML(String context, String input, int maxLength, boolean allowNull, ValidationErrorList errorList) throws IntrusionException; - /** * Canonicalize and then sanitize the input so that it is "safe" for rendering in an HTML context (i.e., that * it does not contain unwanted scripts in the body, attributes, CSS, URLs, or anywhere else). Note that the resulting diff --git a/src/main/java/org/owasp/esapi/reference/DefaultValidator.java b/src/main/java/org/owasp/esapi/reference/DefaultValidator.java index fd39858aa..a458f40db 100644 --- a/src/main/java/org/owasp/esapi/reference/DefaultValidator.java +++ b/src/main/java/org/owasp/esapi/reference/DefaultValidator.java @@ -99,9 +99,6 @@ public class DefaultValidator implements org.owasp.esapi.Validator { private static Logger logger = ESAPI.log(); private static volatile Validator instance = null; private static boolean alreadyLogged = false; - private static String deprecationWarning = "WARNING: You are using the Validator.isValidSafeHTML interface, " + - "which has been deprecated and should be avoided. See GitHub Security Advisory " + - "https://github.com/ESAPI/esapi-java-legacy/security/advisories/GHSA-r68h-jhhj-9jvm for details."; public static Validator getInstance() { if ( instance == null ) { @@ -379,47 +376,6 @@ public Date getValidDate(String context, String input, DateFormat format, boolea return safeDate; } - /** - * {@inheritDoc} - *
- * This implementation does not throw {@link IntrusionException}. - */ - @Override - public boolean isValidSafeHTML(String context, String input, int maxLength, boolean allowNull) { - // Ensure a message about deprecation is logged once if this or the - // other isValidSafeHTML method is called. - if ( ! alreadyLogged ) { - logger.always(Logger.SECURITY_AUDIT, deprecationWarning); - alreadyLogged = true; - } - try { - getValidSafeHTML( context, input, maxLength, allowNull); - return true; - } catch( Exception e ) { - return false; - } - } - - /** - * {@inheritDoc} - */ - @Override - public boolean isValidSafeHTML(String context, String input, int maxLength, boolean allowNull, ValidationErrorList errors) throws IntrusionException { - // Ensure a message about deprecation is logged once if this or the - // other isValidSafeHTML method is called. - if ( ! alreadyLogged ) { - logger.always(Logger.SECURITY_AUDIT, deprecationWarning); - alreadyLogged = true; - } - try { - getValidSafeHTML( context, input, maxLength, allowNull); - return true; - } catch( ValidationException e ) { - errors.addError(context, e); - return false; - } - } - /** * {@inheritDoc} *
diff --git a/src/test/java/org/owasp/esapi/reference/validation/HTMLValidationRuleClasspathTest.java b/src/test/java/org/owasp/esapi/reference/validation/HTMLValidationRuleClasspathTest.java index d7ac1ceff..9492c6b7c 100644 --- a/src/test/java/org/owasp/esapi/reference/validation/HTMLValidationRuleClasspathTest.java +++ b/src/test/java/org/owasp/esapi/reference/validation/HTMLValidationRuleClasspathTest.java @@ -47,16 +47,11 @@ * * This class tests the case of a non-standard AntiSamy policy file along with * the case where the new ESAPI.property - * {@code Validator.HtmlValidationAction} + * Validator.HtmlValidationAction * is set to "throw", which causes certain calls to - * ESAPI.validator().getValidSafeHTML() or ESAPI.validator().isValidSafeHTML() + * {@code ESAPI.validator().getValidSafeHTML()} * to throw a ValidationException rather than simply logging a warning and returning * the cleansed (sanitizied) output when certain unsafe input is encountered. - * - * It should be noted that several of the tests in this file are deprecated because - * they use {@code Validator.isValidSafeHTML} which is deprecated. See the - * deprecation warnings for those methods respective Javadoc for further - * details. */ public class HTMLValidationRuleClasspathTest { /** The intentionally non-compliant (to the AntiSamy XSD) AntiSamy policy file. We don't intend to @@ -177,32 +172,4 @@ public void testGetValidSafeHTML() throws Exception { } } - /** - * @deprecated because Validator.isValidSafeHTML is deprecated. - * @see org.owasp.esapi.Validator#isValidSafeHTML(String,String,int,boolean) - * @see org.owasp.esapi.Validator#isValidSafeHTML(String,String,int,boolean,org.owasp.esapi.ValidationErrorList) - */ - @Deprecated - @Test - public void testIsValidSafeHTML() { - System.out.println("isValidSafeHTML"); - Validator instance = ESAPI.validator(); - thrownEx = ExpectedException.none(); // Not expecting any exceptions here. - - assertTrue(instance.isValidSafeHTML("test", "Jeff", 100, false)); - assertTrue(instance.isValidSafeHTML("test", "Aspect Security", 100, false)); - assertFalse(instance.isValidSafeHTML("test", "Test. ", 100, false)); - assertFalse(instance.isValidSafeHTML("test", "Test.
HK}p%S<8{`g1XmSo{sWwLH&!Z79uo!rObol+PzX!`G!>D!kvSK~#( zqIHk$!@X-Q0r#^`9lpkjDiyaD8?6T;xXsby0OOXQyiS@fz(<>9cT zm5#52mN>1*-(ULC*GS(hq>S&gple8?Mu+v4J#R|uK7?qVJ?1=bv_z_No|9e#tt)Xv zE!DFn8m}V$z8){>%7;@u3%PtCk$66r`p*s(X9ZKY-gB(CE9uH>=5v^hkFJxVK7Q!P z%aYI6GQGT%a5_%7Q(l_uI1p^!c7e}q<8pnm(725Y2hW9 zZ=En>y$#+ky0x?9b }`T*nTSVdYARHG zexMhxr0?!wrW(iEII-z ~PLMBvMK`TdaG~~7jot&B*X;ilPp||Qd!sBDZWE;9zL?gKA67I?$ z0&4Y$*+dTLK @fasbe-U4}iju0F znO_TzH=moHH4kRY*VNG|sXaVhWBYX{n6c|?XvYQZ;Z0>`_M`-Uv+x{oUiOU;{g6V7 z#06QG1Ch=eZt*sM=t{etz_!LOuB{@a{s2V4tQA@wzV8Qyo)h t3V>DiZo)<|zMaC=($*d`J3H!k?tyEJIBR z#S;j^sqik6;SsVhGeH@d`~0d0>tpxn{bpTwks0;9xcUY7FS;ZDi0HNdj{;*8@ca+o z`5#ISg)A|#5(fgUBp{)RK|+D*6i`_pAOaJ7(b(a$!<^G2ynaWxB($T6K{O?R(PRXR zng)wIrt90g|8x#_bawx{E4ybJyGJ^^yW9VcG!8AbO>DJK?e$co4*ba;ZYl2WY@hBZ z?e6ZJ=&c`12t#KwA0Jqm9iE+=n_F0(TUuRSm|b0(Ut3!nS~?isxS3zyo7y;8-Pj)6 zzF*!sUOBowSRUG4o7-MrIog=H+8909SwGvEJKJBoJlecFTHe{+-QGXhJ3c=-*f~Gm zKRZ9$JHI=>I^Vx~*i9hCU<3Y9I4~HDWJfCt0!1fDONc7Ft(?Cjdl3$L(?-tLRu;LN zJ4&z4wQ4r*3?(yAn=_3@JB8!!#eZjn!IWsg!r8;XfQCwjMiZDpVTdL34Z`^pfIS97 z0wGE6_E^JTSx&f4-r>l 5CX={uTZ+97e*O$|_KU{P>Z(qkR7n>Fk7v+vl1^r3bJ#q&l|IbqQh&6vO^8YSz zJ;wgM3H {yU!ykfYtI=`oX;kJ1#t{Xa4>cFxfb{2!2X$YA@3} zU2z>3_VQ%kouB(yT>>{h2;)}S^FCxnkxJRLoi_@~yaI!?s9n)(z-eQDL&LW%`bj1a z@MM&a^La+o#(Tyrch*y7t_xiqt!57R^*ttj_ZYo5KO|bu D{yK#@VNsb+M&~QDL83+lr2to{qvZ`7`h5 z0MrC%@Y@Iay~zmn>8&ML`NdMv(&4EXWB52nrf`O|GiYpRQ~B-TQP1btbQAlj?ezi> za$0PfT I^Jvad7ub+vf11>F<4*5r*Xt1~gpU0O`01%}^R4i2^~T~O zAb4xj8@YM$>U=Y?!N RVYUfh)vA%aJU0McQC<7&OeSxbyxH!H z!tpmQM0%cY>s@YdN1j2}rr^yC`6}Y&fp~gvhs6smVX-vurtP}pp=a06=KGF%V=sff zRhF*yhw)BBpy7dOrXJYtD@MUIiN)PH^3)uA`l#FdIL!GCo=V^rblt1E1Qad=S|5&G z6M#qe=wr_(CZhrHY0JHiD@%3O3!FPDV0?d|$3Ocxf7t L5rRWNBc6>Gm0+ DcQ@ym0+D-6z z=VpP9&n?RaX`?Opk{b*Ruz0^^aOb!^Y!VASW_PW*T%DPZRC Hqm)m)6j6g=$F=5Q(`(lGU(%T239_83m zN2i{a=UWl*wkM_Q{^wHuTdVwf!-ISvZ |qd!y5qm;^T31IXrrsA^))? z-2T$Dn)1di{B{DX74y=D+VNWM()GGweV3%c|BkMSf;=nyL2G*q`dAmfdU!u5jcLC* z?u5t|1`gK$C5lK2aK5lNt-T|^?mrJ)#tyzBxnl(43-ex!Y^p8#{34u01$Glcx|Sau z1%R_jz+|xp=-hm&y7SX|@EP>P6duDg@w%LnM}BNbz3ysv6?A$k>|Avhx|(6Sj>+PE z8&24JV^1{R^aTH9xqly6Vew96+f^bhbap>F)DyhXJ**7GcRBn3AOGbB7dOb;?1p4+ zy1lJ~Bb*+ZIwKk*H)-a{z46R5yTm=%X7GkQ!L}rTuBG6Vyw_O}OXpK%gW6(e1;(eW zi&NpH$G&pXH~Z`u;PCYy7&jknZSUK cZ13Mc z{Tg8R2Jd^W=;a*0vTS;RuW?7J+wE?vm&cx7avrm^Gd^koGiN369cIX)&oO0n>}ig` zTNkiN>el}v;6D6s);%u0CAjiZ`29w1^Qq{;dL`xk<-2#x()t|uWmK!l`z^;7rCI}c zI)N3wJGy*-s=U*AJ9q^?PB+spUghhJ1@5LB9J$|jOCR6f0n?AY+#K-1I4$_{QF!g7 z=-cYAjoXox=|}HF`G{(PkBiIpGVk+!Am0_;q x)2=#Q!Z?o(&x}7q4fBp_+uKGM=13ZqHw| NRq%(UqJqTW-tysc+oG`_se>UDxVaB=WR^0C#`(0Kl~+}3p~|Jd;; zPWfNom2|B!Wc5L%&A8&-VRKt;(yHye1MGfowrT70_ ?}a(f$2o8n @SE@nCFach$#b6|)|p z%epBt#iiYKb;H*7qG;psW{K&t)%aBnh+sQilhb?WW-?h4c-Ge2Y_k!310LR2jvu{W z$NudO(y@QenP(!$9A?*A)4AzG=M9dFQnk;1e-|~W-p9*IIUouY{WRTp=hk}xzHQzY zR@c)@PQI^4REBM-efHFSD{r_2o^9d8$b>s3S>D#wjy7Gp-Z<0uM)k~{z4cyFE@zQC zzaI!}0@tVKj2{>MY6~A{45$5_veg~!4{CZ^ue9lBqkyE$>&nU~i_hykOUK*JX8ld= zcc14`ju4jVl~~}z^gQNhFG}~RuDaU$vLC2*%%}UeO10I|%}xZ1z$0~f@?3Z4>FdAg zqYs4*!g<4;QkY)n^SF8+`CYo6_x-lOspJT=!}cg}>-w*Vc2cS+r=(0+xJhh2=9pr% zQ{djT^jfdoY9ErS?-q(YER{N@48O+U+iJKS7-skY0@#{bO5zzm1X?-=cmSVs$DPGR z#lzzmT$-+13y!*n`056Wr|+hRG1j`&*$D6VE1Qz hkCheX3gOAqP zzdK^awz;d lryf3^#}7;$_r2J7m>xSSRQ0UMauHYd7r?p-D)rwG{5xKsl<{k+`t9 zXYJ-nvc@Zo@jy=dou6T~g2|ocz-iw#xA%R@=6hC3<2$sse%D)P!)D7qd$kYSm1}7= zaC@+tt)9O=x7j73HIV+e5V8me*^gpc27zT$Qf*p}PvtjW;(+Um_ZwKqf{YablXj=u zd={T5B tplL z8nyk;!<1)NZ8CW2vg45y{MO<0+s$OPx-#qKy1L5SA`XS%as77W`ziow*>zj@?zr0Z zQJPSfLDe>Cwc2=2x%pwsZ{ztwePg| 3+J1};b={>- zBMO?_iN)am|0Op)yKY~{)yrQ!=M?-&ZqJyf`;cm B OkwuB&Uv1q3cZW6Z7cSwvPGADKa-bJ`~Xdc z2<<_Jyx7=t+rKZwoTSV&?U%te0oJH~Z;eZ^KFr)3P2<)Mq%XWM!e1QBR%=Zg?>m~d z-={)?3H}vX9E6wieZpni9OD^MPOCZZj4Pw}?Y7vaK`TpUC$%_Vxe_;1fsIh3!|gBP zT`xU1XJ_o{jYlEtc9xWj)i$Tw!P6!bPLh}Fow!F|`F4hhdnV7 bn42Nf z?#H7}tC2?<|7+s6&F6XfHRmdp >!dA#<$zS0!GybQiVT5JyYj=yhM zx6s&3Y*1ZshcLAnli6;rPgo1 y2YCpRE%< zv}iN_ZM9#rpQ?Nm*DpD|k*GEj!f@1A0tVRcWa;E_im45#B^I%?X&BBB Gvu8iFTIft?VRL-4=UtmC2=U@FJ*GJM&$rD%4)V8>r-(wKx zv2bRjd?PEY?)?tz!M2!m9qVKJ9?*9 FO zc z<9g5a|W?m*sFZ?cQq|rtB(k2EEe!BobIVxB?9(O@)2w9{pX@UaQ>)) z+A<-{n23MuUmyEivhbui2PUlhh}xgtVwsuC)GQ@=)!UB|`*f`Ew)!R&ffczIY`eTz z$O-<;a4>pV(|?M8nC&a2VdFLlB=aV%!3^x=A4apjSj94Aqwt1n*oikq4dS$|v0X9# z`l U{~HhHM5gg4+31g7mf#+U1HU@7Hl3HMKX8o(6peaJ$2N% z045oRV_6~b=)fZ8#!|L08ei1qJJ}L~ieR8DH%WoMN%T~j<;QVC@@9Q$&2Q$|=8||k zrU@)VNsmM_YR&qBS))n=>0IJ)0pijp &`t$S6KTKYkn575>segk@VaX-3D32wlGR=_AQ p zG})3%(DGdk@E26js-@|6lIxHz#BT%wA)T2i9ISrwv-VbI4$-}$HnA*AD= #gI8Vm(GhLsuAe0w|L<%876=#?M=>_NU8BonK z2kGZ|84=Z>_^ knm-8+K!6>~GS-F;A(6#%jOF=%a-l`p)4y z|E7o|&CXkQl;V?`BgpPz@F`!wl9 6Eh(@kk<*LIldxZW#pWzMs#toKuh~--CIH1CmG^D zBYWzNaPvs(Q_dJs7|s4;4jJDd(`y on$ep65;Ceo(ybQ@O)gz@I(;o2uoa$m6WKwa zj#{Z%>-1BlEUXvWoUb`Hl2e)5Bx*E*z0>Wp>NkYE$;3Aw$#_G~>EhxEHC%%v__ZRB z5|UQ^L8mJ5pOh;#!&h2N2&%Yzi8G3$r4-Z-5RLgH>;Xl@^RncCxspi{n`5?w1C_L| zT>TfZT941wB{CaDsp#H(7WL8RM%@6p6Zu+ry->loHr4aqGtIa>#;)Ygj8$m#j78zs z6jAI+ZW{YR`mSl${WR8iSg<<1 v1={r|vEcQKA{!(4 z{`-MQmQFwVBrcF7a`*V}8ti%!_KmGMmta#zykZyCA ;YetQ!^20}^O?8Zi{t* 9%cq-(KRKyoAz{G8>DCj({mg#+MfyZyuOZ( zJ56Y$39HTyu*I|#linLy5d2a$NoLE>B|u8WmYV7TdVQ<>Oe%?ZU7UJg9)vlUsK{a= zl<+?h@kU&~?`|id3nJow5I1NVyC>RA7G<`_ViC^RbiB9rg#CsrR~VvGxcjlF*|` zgkEQE9U?mr!La9xEmQtMmL`IcOVZAyzrk#?$XAyQ85C8HlUR|1_gx&6Bu(~GXx=LS zp_o1jIDISohCNMI5Tj}B!B&I82(5yV-+~gwy;AUcVm%VV&!JL(-0q}X1N|8!hWpJQ zQOF}xn78X21>MN2QwBX1K3c_3stRa6j^eQ;EES1-r9`tvY2>n8oQBgn0hO^!9RF%3 zcdq#Y3Qow~k}Jg6UHX1|=##0Ym9K%IRVA8lKn%3R&tuX&LUWMWjtbcblBi^;O|eG5 z5}VS1T?0(Ig|@NIr)HRUKZbp8yYe~PQ3a?K4B^l#obFFeCXkE2$WQh*<1uw iMBCN2T3ztV}CIA+)<0`P9L6C-BoTH0@*^BqW{fuu3jpM@Asq{EPD zYu+oBj1jQ2uz$HKtz)pMuAb97pog;)*jl!bCBDHbjC5t)=Pz-a&@@bQgUP33jT_Gq zdHPs`N(&K!f>7I5`_$04JE- S%)~+ 7IQth1ANv=_Omk%sJ9|4}+z z`WJn3?&ugve-9p{_MC*8bC} cBMzt7f^jnXFKjL#_h`{GP^*t-Ml$KN? z9qqKl<#q<*kv7FDv#FreGD>Gp@>GZUgc-<1Gu8l=h=No9b2I8OE|nx?3P49QgNvFI zlTdlc`SbkJZ@IA3VU*H- k~uEMRGuhZ^oUiGVpLDz0SK3%)D%WfsfM1T9? z%UFUv|Fw}oKFU8ad6vEeXAzEPte0^}^ElJ0#29WL`nfbI4u8@ghfGPKfia&^A*#?# zo9lOL0Tkyi-^92n83e`3<}(1~u=b^ner|-Gk)upfW7c?y=DVmvh(!xuE`3zGg;A7$ zE|;?S02TfPm1+f-N(3=Q*g_c9S?scO`h0khjNezWQ<$a*)fE_1^XUdFCbb&GiIu>4 ziIl-eT+nY2L4ybvgzpqi6C`0FjvKkuhHD^~pAmv2{6a9XH2n%viZ$T2zJmyAOl-(^ zu|zZ{M+?MTixl6oJT=s&p$t-UBFeaO{w}^a@ldxEtu~BeE%~yTXsS5X(UPub_N&MS zF+~>>2q5J|5Ph _sw1BXk~_4Ji@>jQmmz$IqUCMTu`^2IPSwvuP4(y z ?t6GzgFcYFW*r4HMC(pC6huy! z*-(>QxD_77>qv!KqT(3pwXj?P!Kp(jZYEa?hsgO?5vjn~Sz85dW}~9$x`0yk_+h~i zO{1^de*(b|;YTm}tf(tO6zm{d$lFA}_i|6@>TZ0Z|0;hxL8d)K=4OV8>DL=q1~hwk z-Vl`F5s(Z5YB9jp-8Pgp>0#jS#}Y|qvOr7cuIA)qH78OB^%GZ=(eF4eA4 Ee016y)!oEL%5dIDy2?o17MIe^Z5(hJAP$RU6dPj3_pow7Vnw z9=!ySHkVK0QJ4PpgT$xhABcaFn)`PL`z$$ $41N_6 z{LQDH!G&0 +g>ovj^T z-8Hps? tYE87f@qlq-3O<*s;=&yo*ZgxzC;5=EG)W zR-Xo`WeaUn?UM#-$NNp|^gEI^r6#V*h&bT7>nR>EcT0K~{iR Yq8P3%7n Fka|& ztk2=z192ms7iseCd5<|02UpgFLgFNW9S|>LQwk#tJj*8?yz;1EnG-*6j-A*~nLWj_ ztVlqwGf*wTEDy7ApqAd1nOS%j+>Dmw;aoX~Xot@T?G~7up*cTuq=NclWnQEUX`U@F zMrgk@6op{M{{;1On&B)|a1mX}GrC^-Uu&JfHjX=&E3iIJlW;M2v +btrF;E(3Y zjF#!rrHK2dH#NyEP}h9K8k(UOFUv+e-#ywBG8L2>OsD^JqzHGyvXu7z^Y}wF0 Lu`!%_x>-J* zLd(G!|0KwA@Wc95^%?&7oS@ ^W}Fjf#5?U;+5E$ea74 zRop0o&`nCn6`dABOdS@XwB~-coUSJh&-O<^%A4dr)NaVn_cZT6qr1D3vpO?6+ cu(OOsqFlA13rG#pv?^v~#3Jg=cj)I;m}C6suAyhDUi z($m`ROU)#j1L0_=e|ByW8@sWKr3jr=>=J)GqjJ;~p?B|V%D6$HKi=iBrz#B1Mmoxq z%?NoJUoIm;ZO~Fg#D1Y9-YQ!A{^tT$46XW1L$eH-L{ojF*0=3QV*^N0r)Paqb_m@Y zKaQRc1p-InVQ_ieu8033ktFC8Sg{Wzs!uvN_i3ad^6mfZjoiof@0-_okHryW(I$OQ zstVY?bZW}r R8d8oF%`gF-;p4&2RE)roF}&jl1W0Xbe%sm}N4g zy@kHzM_Nx+&5n_1?r)%HM %ps-@ewZ`j*eCP?JQ}pAHgRkixj)B)&4N@HUp9QPl$)ZCtoI(Fa2?JR3DJ zHQi300sD1MDzVT35)v^^-3_23LQ*D#SrG;WQ6)rJu_K*EvgaT2v7SRYFkA&c@0z@Q z@7U&N3*8ksb>qht7CDb&ZAFcW^G6?{C4K$lUA1D-nEw1O@V?`tMqGe3XB}e3)N~6l zbNI#zS9 E}RF6 z&DCPnGbce4&U)6{oSM!e2|H&~%*;C@8#v)pG#ktWaUt@>>Ghm?$}YZ=D&16yf0qEP z#`+6(lFynDq&D%)mf!a8jb^2 +~?>Zme6{ zRDBo@Rmzt3RaS8eGqJvk%xSqem$iu!6&d-6{q(k<75*tioJxjS!BawAt~ey?OU+Ia z@P*_yfJXs9L@~cE?QxRC;S4>Hub`6a>T2|z#nzYcf$F0f0S!`m5}+0KQ-r>Zlv1 82(~R z#}S&@a4zXfN=9Vlm)NXxSf87ZP%clAd2<~sCH+j~3*q(>n4W>GObq%`3hJBhN!R G_n~zYO~N8cq^4EjS9t>LzeeMxEo77K!yE3Uo#%Tyqq+?q#o+cHtQxZ0NC3$$taY znok0hp=1jk4@)C3Wifn@u)R^|25g&(8(B1+7D>J^nW9v0km}7aH4YcA`F?-R+^2I9 z9Z`5|*x8Z$wAU{>bj)~6r*0|K?K?XR;U Zgi_J+g3-8wG2$Y|9-GRR7~7mvoqE18ddaU52Pktk z-T>v#DRY022EtR7u%Kts3+Eyloas6KsN$48*e66YjcD?+OXa7PCv$oSC@%rIjPon! z3f@ZT{ T^{=9z32t(o#pRAGOnz|@nWWu==it&gl z^O%AoefNKIP4SG^Q9lIUeIVb@H&(!b<}f@O`&+DQLN!&bwfvbd(&c Vcu$5v9GS`G7J_gT|28fsurgQgr8KCSFPI`1*u%$eLD}^ zo{Ib|@zpvOg6?lk;Qbft$2=+{mgS_kR-^GJCEbJl&ot;Cq-zD*%p<&o9G|UwL3AXgvrILG||~C943E3YC+^$6@m3^gO-1HF9b%7NeJRX zo?&{iZn7{@(P9s_lb)sEYzVauMq CpBFR@bpZpGo2tht1>N+PD~HvzHkni-LLF(cF^l-*qDq2Lg8d{y5GBWwuW$ z5ix(56*n^1p2}F!Z~AsCQH+&5&K?KWv9(F9X(S3<4DH~t+$8|gr-8GBDn+>D2jyp0 zO9mFuVQSqiKSK|7rvI9Sbh9WdResF*A@EVTeWi$4lQgT9N2d6iQs9TRO#ngcp+i85 zuT@kNLl!lKa{YlsRx&`z?qm32bB!V-rBAwL>hA8;e@@3cg{PBCZYI=jn~3-&DX~Up zEzOav*aOdA$+Hj8F()<1#2&Rv)(FhO&plm3N_=Y@aHU#PCta<4Gs_q_3l&;2hR!CT zc5K5|ZDtDT3FtSGu~$`u_#L&cIM??RC6SC^RL~`|jpzNdMD_>~=2wiaZ|a{0;9Z-a zF!B?UMaO@lXX-lRP28Ha3^aev^Rz&7oH6+2+bd*VTb0QNls2+H*^n{a1;oR|LD|dj z3dRcub6hU>!u2Xuj4|S@?Lk0Ix+9=LBp4EKW-&}gKq+{J2etDBJ|>uy?#ED?SZT~o z@c83t@-w&<4RtHkqL-jg^bK0!U&c6OO+^K_MRp59=3o)}GIvu%xqK)>MMm@_Zn+LK z%b{WUDv6B&)Vi|9U$Seumnb^7Kue>yqEi*GWa*P|(0(9@-$|e`SOouAEkP%jq&xjT zs1fweQh(KArGLy`8b~4=?xmp-uv54r$5J6^h<;O#M`OI&p`svaXdaPa ix;n3g|Y6m4QnDaAe#EJ;00)WC($yYj_eLbq4D>ED^(kr=ZQ18z~Vz7P~^ zvDNs61X^p(#9E}e%0}8*n#+ G+_6bd1teZW_MFjhxVlTzTRI)e3SF zTw?P%HQL%LlfRehZ*M9zFSKcjtnW@Z=D~LXyvaK6Atcw-JoUAA>4{+m5fk(?59)V( z?My;(2^3+V!gAUheX>u_2jJPn@y>6o=;u>?jIceiVwvCSi7>qbnG(v#uxi~mYwO9B zsdB~0a$^}{rLr(2hUAdcYWgFL{!spq2`(tW3MT}q n!Kr4NV(1uC3|7Q0L zXwxJGigcG!RYm+@8_mK9kH@QMHIX0 xItlziD1OgS%7CI{4EbLQlzObSlIp~U+Ar@ zH(%T ~i8XY+k63tEueeI!2>c>RFdt&Oc9LjD@f`rAYy zhenx*r-IL@g$x=xdkl=H)eJo!cMP%pv2#q77K35ZeME(A$RkzainSqm5WFD?tOnZn zh$O28fBRJkwH$D0=`;8i%BTkp2t7HynR{5K%O0-SIg0I0Zh@IOKfEMxmDFyZ>B}~5 zrP+JKM!FTx4x$rv`UdG47f^3pvt)h+iRyEGHf^|MgP%`8X%``zpC;^bVpJCf$Ik5a z4GqbjPk>k#-uLwf1>L*S4&<*Jz`Yeig_t@h2|q5(KCk=&ODdmtb;Vk|!r5xHk!kd6 zGCviDnY4k_JXeQ^8LOn3&NxoJ^_q(r`%xXHw$0`PEXe!IpC#w}A18V76!r7pQ-<{F zwrFBcXQ*EV3r*9lYg3U6te}?`;Hgrp;CtxngPaQJ6k-?SCw>~4Knc mEIXuoC{GwV7!*^CpFn%BSUHHq9md^P|#R0LwcB84x{Z|Y8KVsel zrpGfe?TO7V&`Mnk%Ek1XJb;ZqW94cY-=v43VT2sfvOCH4{A-E{QEL%dSwjK+@8r)= zOo)3G(k87ADCQdY=>*S|6{7|!!RdUMHHm~l_(46&DUWx8sK&ZIaw6}hWCJC{3a-Y2 z 8B-g#&asuL}P{aO1yi8z@;x~{(UF>R@j=tNO&(&4bpG98<* z5+AfN>z@e)V(F>+E~?}NS@uk5>!zHT6Yx15Ys1vmVn+)jV3R^^OB(C?dTaMXS2gy+ zi*Yod&Wa;KFv@N89srXYo9g&SUPp~Gq2)Y_7S)B3%6x?Rh{{x$QzMJkg)mKb@mV&+ zmFbl{Q;oXn#qd3SCj*9J7sYb#3TwqXsvs^+`#QRL?GP*KN!984XoW@<0qegNOon9# z^VkA}w}Y~cqfGhq&nyFedRXVycy0~JeVhOqkKxCF?3XNUe;}RebzfZ?p@-TxdI~+S z)%UIY?lsCuQt1To+M`!?&RWrtFwui=K2(p&s819LlVW-BWLPsVxq`Z!sw`c$G?h7C z0w*k%s$rqDEVkT*@$<1mS!UT%t+5GSd^_J)zvJ3ihR@a`aR!7g+fitZhy(U`Wwg@o zXWveW;?xURe*hS9?MKt$l#1dGk!tMoMj0i}ySH=QcK&bGs_m;Q g%Gsxiei1oYEK_#T&zzq41T s9Bd zG@@;OULl>&Jo%<7hkOPDh*KMQF`CH>N9YivOG`#MZ6ikJ3CXa}Mdsj>9d3~fCw)I> zmG3htS@TUf;_lDh; 81T@l2(rr9DuL+ypw zR)(+-umDK0&{2gd !q>*&`_jwoWlg1JSI zK6U#sZHvml!+2$zcA^H(9ev|3D8vN^jwBr%kvkU*e1{|E3H^TN%VW>n0#A6zMY^NE zd<~Wn_@DuYxS!1bx-wB&7%df+`z~LQYN^;HaR3RN3w1XUqdx($N==6f+keCOX%4mD zdIK=|X 1*D0mY%(~AV~T7$)1!$czmzZbkYcRBM@YxVH8cYjiTN= zp*~ghYiv;q!`^2JiSFI^yv5SGc?6;& L=;<<2l$q#M6jAg|LoKnT%OdDS!| zOokfq1aKaGbZ#%0j208cmTTkb`_}E~1e=A}+0|Yp^gA{o@(-|!6u)Hdj-FXf8Fa{W z oGz;&FIDttX_JCl^)&5s(*c$}th ~EsVp|D#&jNDQewm#5sG5>ha?Qi^$;pU8KgOwU%c|V`-z?uIrUzg zJ_fM@w}AxO@RI$hsJszwKd^eBBXQ^o>~OXtkLtWW)4w?B$>B{FCbn*}yc_`&T}sTN zX&T8AwNy_;K|%1bil4y}uJhsza&JBGDrgP{-hW7%^_4ik o|33h3 zK#{*%K8r@5NoXag1y_QFaDl|=@@5j@W-`ZxF6-JphwNc@6>R}c%_gA2SgLQkiU4(Q zLLF1KT#gd_1h|V7cCFe $$F5<)I!>3Zqk#u%orxHdI65WXDJ@ z?(CVQzEnt!nk`{(3y?}m%f1q<36W9I)}2lHJPU9WD6_3(+eV76YA&YbdIfDDLbR!5 zgtsDBv@WRJu)1?SY_PoIA1i@3(m5k7`-b~;RO=W$0wo1( Slcc*hZ8NE|5GQ@FIW-#J^di=Zn_oZm+Qw|O z@&;t~Bs=eJ76|J-v?|7~>3p|3d0h)L3X|BH>9%3|=l!L~BM8ShiZDc-I}Z?-)TLb9 zU!D xv7)Xf;5ET^?a~Kz5qEaJC4!P?SJ|ji-)YK0v zDKTmKW3aYkk?~IgRSc0qUNoG`NK4d17{x$64uM481g!cMRg4$hRngzjsMi2dhBD3N zItr%WfmL_C%b@RB9NkY|eKdBSPGjmUfOQAyxZt5o-d%F2%IxvTqBlu^2Y)=Mq PwtqQkQx8affVnH^h-g) zi~wLM3_f-C!HJ24D)0~@_T0nhq1+&qt0TJ1v13A7CS4Ivz#WR*LnfouA)a)M>If-y zda-)P#6-%y&o?0p6NgTwgwg69q)FoIj2W|!;Gyn ksH zH56lV&PtV?@p&i52cn~Mqf-m3n7deD z6fVw $P%C*L4kUP|m)b!y0aVYdQMSbdsBH=cya(dC 21GlhAwTxG7w=7fz7__CR6qwVKtqrTFkI?8n)G&+rKtsp$H?mRYZz9g}|-)${n YX=^dVl8i&x~h5iZ1m4nXWcbKhp&I zky%cAAxO2Y+IBQ;^$njRW;`BOkQ&b+Y$X7e ;${tzP=3Fvg#IyGnA-A-&vq7fBH6^Y?b;(e*gti1AAn1+E3KUhoFhZ>; z=_whiSpyahNWnN6)TwF1)M)f!gvfaV*ED)8#A6i%WEsc_>-5PwDOn|H 3~6)G2fr=PrFhhV}UWB_fdq#Jl5l>hO zj`_&*?vIS5M&{iq7hRXn`!J4#2s)__0+vk9 VJDHaRxTou3KW$yaWnk3ilvTsom!TR07I1@@@u9hXv{940dI^NZ=Y`EfzW@hsa;V zD-KyMLp{!9)H{Uj#-UL$M=egxpFqs1lbAX3naE-)Kv3Sc3S<%2@MK*Ws>c|xGUE9R z#C6wfxIX0JMK^f^Qlq4Om>)bzO?st$WPiryB?!~%$78(clj66F!!j@KtqViSLoQ+R zEo27iz`M L|q;$YN^L0I{nS zBHh$LsZ@@HYTmG?2xh}vOOXN3k7$m^d|LmJ q)Bg?8w3aheg zDW+l(s%karj9F6~s?mz1U!&BzOcE5eVk^oP=`CB49!;e~TDef6w0_Yh1 {7Pw;mmIx$g9L4S23N!o`Q^OI2^9y2umk`|Arl{uy0C*#*@N=`IW zjkKSP^5(>ZxM0O67SIv^W+FwW=wytZAN3bO++R*Vtrn}ff|5X~i%TE{(|Q8qx?=j{ zwv}5DOD&rTG~=%zC{Ku?njD96SuWQc&{|57sz8)LBp*Yq6eeWgPtIsDe}BcA@f&d~ z(W0uNQOc#BPCuPC5`^N|CX-xzDp{x6w{1$nRD)6+ClE }&x^ zLNjj>)v}fCXi5`)U7A?v_LxC{UDJki>qd*H0a{Om`eU)(!%(ZTwnCH*4Vx`Hv@K|c zS}<@OvE_rdpcc18n;ivL*niRrrGOC9J+E6}N=v9pP1d41-;&{V?A*4|*Cta%9rav< z+J 0zMFQ_4J74TV^!yk$?|?k(>Dmg8ysi!klb~I zz<;1+3H`Du#$|d5K!>k+y~m7y&8iO16F{f#r}7M(a@opcys*h^tbe*`2W5QA(}j@? z#IcQ2SGWwFf8?FA$IOZjLJ%G7_NuMih=d`^I;qxPogX5v_x>`Ji{nB`5JCl>&pkAv z@q&WzlsF2+G%rp@e9laP7jhBdU L_rWK6&PN Z_TT`SDIfXFxsR*anc!|s z)(>chmP>wDengYszGH~RqV6-}g(%M|q9N_zi=u%ns#cR`d6(g-n7l9<6{P;ukj(Q5 zOnMo^OgN zez6t3l}%=iEZeM6b+TjFXik}F(}roIQL9aAsBPXTxPR_gG*=fs?5laUcUcSli`33g zXVW3IH`E4L(1vsfwk3egmf#DhiRlw<2PXiuHFOa`D5`PA7Ft{1lek$!3T${hq4t7W z(lvlFd@b)IEhS#tBrRH3(cPp1yA`9^7LK-v_iT?So9rHK67oUx1DKX+**K#A8M>}a zsUj;Dx_` t6n|veiqUTQZMrs+_IQ1}G6A8>ik|18hbX|L< z*y`$Ig~65pHfsruO_eGnw^mXhBhNe9*b!1E0f-8fE-#_S%8@X@ai$D0U`vE076UB? z#6+bkg*bSh%JvSpRpr~)+oyZib zYr7KEN4h+lT8->3k_i<7eaPY_4pgXj!}&nor7`&dedw_h-pna7Y2^(@n+o-p$eihd zqbBDA`;CV(4;D|6Q%qq1>}(KJgkq)LD g6{$z6Vb1)#Lx&QCgklwm={Pfn%X)KjI!UU0;A zoul91iOis&FFM(Ev8&G+_JjDHzOvtB{SLY=%ei2cjrj`hrwB7v578ARPuTe@(_t<~ zMvj^g<5K}H_CUsV3mOy51F_p0cy)iu;eX$m-5uMWR-%8R1F%OsjWB-TkSTGXn={PO(rRD+alkh*m0QCM7AEG*C?t;1X~PNM0*BY&js z@^{(m@e4pJp&HOM&8Pv>wg-W99Rpqa50-wZWa{>|U}%;~P;Xc{ovPw$hNY)-9;F0y zdP}pWmEh`XNw1Y^dR$|4qXtVY0ve`NvdWeY%Jirkx<$w+L7Ip}Q0|aPE?X5-uNgJV zR*SVdy0i3tn@poawH8@5tB6{KXn$52l@Up5>ZYL^G*+!@JBKPRqAJ!<5$VXT0Ih>f zRuNaB4mFxRETSTbx~W?R$wjX=Xfj$Glr3mxRs(N>As0wDtD-GCK34(0Wb4?@*cRgf zmCFL#cCGDYw3(*cTqyXaGSwFJrH~p-(J{V_zu{IKyMBc2eXFf>2yb`<-GA7#x^ZlO zMOPQ7LVURh7q4S(c=`2?wc*P$--?kC?CfvtY@*%J_kD{I_%+unuB9vs@H;s4#I83G z0tYoJD+Ts8Yf$U>uas>AIoMwF2J%L2R9ghtS)Kx59qE~y>>kPXzyq Wfq zMUC#=yfW36P`ga0v-Z~5@qf1H|5NUE%aBA?0mwPw&> 5Q(EArF!ZAgfzt;DoR~q+4Y0vx*iZ7cu#q zd!%GxtV42s#YG0#A{lV$7s@+w&LX2IL7fKD=_^8B5K{QqBS@q7lYipKuv&xp Mm)3I&0mhjGyNxh7G9t02}e~ zMakz>u=Svy^RxOLeh8((#PGyuep2#r%hCj+F%tpg^be+7 FdcYj9)5q!7ef}Ul(%0AT( zxv73}5A8`9z%{(fl5f|Ap(D%r<5Z+Rh`DG0&iL*;??7I^50aKao$p2#gvsHm3o+Bd zL2MOVn1OgIAq4p99pXU+6J{`}VZX6Y-~$+s%OlX6bdYJysm%0V@j%*lr{H{KUfib) zi@BBCh5ZT6r+;^U1%@g 3e=cPx*A Z~Sn5*Kdy;SyrjO_=S5h7Yl-W z(Z5?}us1#eLXU?{@=vYo&p3UApG-9D0I`*a5er)9On(PZFXDpB+^rf@VXi{A`Fpbc zU@S)sTS;f q#!U&V zR)S55XtK@)Xt9 J_W{TtfDLF7xsV-1!rJ@*9Gib^ei~AwL z(}I%ESbmaJFd~_H2>DaFln}4Q$gO1jF{Tuh5(DI&5GN){ttzTW%{CC2Eru*V0UGl~ zf?|>@3#u?-M8&v&LP+2lF<2Eu&1a);LitRalz*uPB|nKi)TRr;4*pIlq-YwKTgeC+ zlLVssC`>2lyG=98ae~2V)CJQ1Bw@MRTLN10R@9!eG~1}p7Fo7I4*+dg1lt<4t^Jso zDs$4!nU~sd3fgkpW^=W*6Vn#Yf=!aAP4;3pY|_&5!4^FXv{g=O7i^1t*X6Vu+P)iT zuYV;@g>94ux7x_v$kZ0Z!cAxoZm8m}W6v$(- q~YOk=YL%=+Z$==6!Ll$XG8}82A(bt;Libpxrixh zIOB^7eArp$#YvMFg7x8vyAht |Ui09nYFTs>36n|K8 zG OGYig(7>p5S9FK(S{mz*H;>xk;p1BiG9e{YnJ+@pO zY*L@Od}VC;!Vpu5WaQWbxqhp^Fq(HGCNku|8{l)tJUMpd?%18@oje@-Og_NHatK$s zfr3H+f (l{Y9tJe`%c0 zrQNGcB%tLGT=CUe0tK}!a1J)c&d>Wwi31RNm&b?Clgt&Kk7PLIR9F(jd4HFdrGO9O zc{c#DI-_M(7bciKa wTL!XN7#ZY7x@>Q%3C2k`Rpoh?5g8If<7Iw)vcUV8 zEGM$CS$D)qH-(!j88ep2A>(O8Gak`1$z`6r3*`5VPuBSHAOX+;^w=ISE{@JDrb4Nq z@qi!-5EAIdPLeTW*}FKCk$=RAkqdViz%%Nrx)D#tBx#rrBZ+iVKERudn6#V|eB9Mm zwKY1 W;02Zb?w^5xUsHZOX ?ND%{~=5uVoWiOlCf`2{Gqy}%P5w&~( z;MGecT?;ZcsrqfpPEO09Eokf5wzf&yI<~gO+1AELy5rJzD%ygb)InWq;eNBeY+L0Q zwe~z-F6@K&Uo$Gx&I?_`;mYeVNz>M~r2z5Gv)&19X1va@n!l;iq|ErC!`n&C>dnI$ z=m*_B0l 8``sLdw(Of46sC61c*0Cw;cD!Y$LYS1wi5q0fRWTOi!4)|FUMI>#53A zN8=WhS{F<0UaJ-hZ2{8jrnBwDiME-yR7^ogi&2v~ei=Ygy8jAqnAPMKA2NvCn_kaM zD<~W8ODsPu_!Aa1 M6@Rf6`vJA)YYDpbwA*%V zn={)R5Jh(re2w;N={?l`M&1?ERCl@&j~l0hu?oUoH@6grdW_1%Yq2Dfm&T6C*&RxO zpow${%sNW31cB>2WqJ{V{n^wcR%4nb$BN{c8(biPt2sHIfVG&6#a5#6$*d=6GRj<# z%yvZuqX%;ZMt{@e2_UE9P$Qg@V_Ho WNa3z>> zAIUf?Ugb`CEW_o-mUT{v8Q63n5-o0mJY|QU`fYkp%Q8hzQd&H;C F zkALD`965 Jj?R|7WKpF;BBHnUQu3XV3L$D0{~4r zj7)j#5rpoaJQRd?io$}kk{=oZr!rAKaPAmiW #T0g@_Gk=w+vRv_RLZQl znt1vIVaB7*OtjcU2ek(XYa&6 x_`m! z@pEnn7&sfo_{{bvE{q&f#*Pzan0IEJ>4(#|8(xPs>ysCzPuBT_bqxXui*#q|0Zom0 z+%I>xWn2Q;MjDWzy9}@lR##UGA-N>Smg_lLUy2)rim6~&ixYko>+uAcd#Q0PAp>&8 zkU=VuB|||2&1iJYz-qESqrfJnqkl3g#EM!G$a*}N(&CV-05+8*1C9(=t1-F(5T)A# z_(eK^L%1pftd>nOus9P-K#OUBj5xKNmN4UF7$eV=4%`WhWs8hmko58>ozO@hS0)ch zf%x=EY*)gJlh#cuKt>6)L )Mvn{9wG=sdn zrHxmprgWA(TIbY??c{3H+fA+ef!ACtxh8 ^-p3y-~nG?{VwmMQ08Kz0MEOmj5;*s@`#@B zc P-)`IhCJS+7qT9@na%3(-b!{OvFAS?g z@KneJorD?2?4tlrFFK26f3tat;0@kzRyZT&;|0=(t@u`sM}HO(GsF8E62Aa&VOXr3 z$~2iHzjn?YlkWTsV>#weTo?o#KP2`yvG=USjD6-z030v{`1V_zL@X@$x-E8neq8*S za1D$nX-~p5K)oM~$^Bq|%IB=ih7pV`dNTzVz|z^3QLf^w94t-;vNZ>&MV^Q#^8wQ# z>)vF-Vj3m2l7Di~o~S#HEa% Q$Ij;;uJ4);>x~*H zflk~+wq7gUxu=^(t)YWjqowLvwlCW|_fXj?U%AE4q&x5Eo 1vg;*m`x~YO#mZ(Ab zRIwgP1ygiyzCI-;us?3a2z(Hgyy$Dph(X}jM6qm1VvZ`>MknH-XlUhQt55Bo2w78N zt{Q4x0#iOFRY?&X9&Pv=euKn~?XH$zTPQ5rn@tJL*=nwIv+2zFDL4VAsIwS*PiuSY zYdxlB?0>DVnS4f-W0hDXYR7100 b7pT*q8W(%!B*xJ8G@S8mZ zYyhezT(xIXRj0CgVFV!p6W6;Xi CV%X+y?<_K&O)@FytPLYbtJS1c4WC% zcpz!P3~&Wn*~n$nIk@F(M<;mQAkv!&`cND0for=9{Q q^2wWxt zy?<)(p6}RHkJXiT$hL5l_F1)Iq1!lPRod0Sz~68dA&zqu0>KaF!1S@|gb>1LY~<9a zkW)pULB8ieypb10eL|cBQ884wO{kdu8NZOLk$DtEejt!(nItM>K7nBNwCDqqr}vP# znDP!_h8cH2byVy2a!5Ylyhw)Z6$@Uw>|*dVdp|j&mQk7>K7&o(dOSjO+~qtg^xa zV2o&RH{gtTcDKc*Cg)EaT`Y`@EzG$f V-;%rtASSr3U0dXae7h8R9*W*GdYY1LgR7_n17$_ zhfd8A->tKV;SH*a%lYF9L=hn&x~0*0d~Er`#}PK8jv|u}c-^rCen&6^>joa~F6et! zuW{w6@($5gmM%tjj8*`M4oPfo#f=yY=SEJQe8we-6cKub3AW<(Idd#w1~au&*{_@$ z0bZ9UJnI@yLcH=m>lZUCtQ0sh%6~5)NOx;9=l06%RA8zy0oqgzwkfnicR5nZ&E=%V zI_W;EMH7Vub)BNc4oOgi?O30z`|AN3^T~WB-HuZgLQhW_Qxy@f(}hm4!FHiGP1!|~ zqtPjp&`MZcD1>RDGs}e9#hTKG{ROt$TaRA^(17|Sy;K7_)XQ|^62$_SfPaZhGJfa= zxlU~*5D=u70U%#5=~yS{Eud42&)%~-AXlhJker3cDwFdh7X)hNs(z^k$O#kDOYKN) z3?XU*!7w2u@`cpEz->YnGBGI|8 PK#VbO#n58R3*39=Ibx?R{#Wgjrf zmDF7)xshb{k>;bfqDj-hc7M^dSb9XXK%0<#-Lgorbbm7WX(zBixlBsb-<+v!8@INk zahDKW-7t2vVK8WuHs@*+tfF)fqPcaM2I|Q4HaS8e*c)68U~gCozCv{wUiJ;Hn;Y7K zn>SlaYOND|7UL^6xvpn*neE|qD@NB4OkU}p6xk+>uPY QQgtv16P@lHdoEX?KD32Ik$K z#d$ZQ#UPt^&$~6pk$|*#Ch(3LO`t^(_yNAlc5R<^CYU0?HJ%zcYaJ1N()u|!1M +S~2XXEkvGbwOzA#0=>^hgR`*}dc+B|J!uhbCn<@8gYVh>>rr(4A%h zud*`gO!$j XU+zz(kg5u;)fnuJq86Ujt)9ICU`&;y4bL0CgJKBDp4a z+(z22BOB{vw0|{Q&2{&Yl&D)vxlA2NrYmu{PG(|*G-ajjsWNSB Tb(;p^36UHsi6FA%l2qhOUZ0JuZWK&WdM&8ZXy!Sx_y; z6V3|7gG=huX3kuao4A<;tA(YqcOlV0=_JtN8j!7cLw{Z})CPzw!YuWeinsV%H5D_b zl{+p~3l)-}Ll#Mf>{!dym3pq8C7;=XVY^ptQ17kOowc1GmMvw2s#>+!BARSdj!4D{ zOcI-$5*Nw^T6p=gqAgqdmPXsBtI~=EBWtvxYLEvMhuQdZ-DSoX*EfVxPzRc@jd0pF ziB?-PDSxmkjr(kuplv6iEg2}aa67e(S1JBRwy3qeOExtMFEbX4+G1G*Y;{c7wl1^< z%w0tU1up|%XkC`tqA#Fz#0od;Fl{N@-dx*qKe`$6U5@Xz6uk~g*FEGQ^d^`%dYzyT zU20xq^B=mAz~J=)`fei(uC`uWrkb7Y?SGQymhEn(H?(|mmAf>srNGx(y)Le| zLhX%0HuyGa8P)9sKa2}(0~bc2ZH68f+-V2_LyNBmYnvo>euKMsje2st;A)Hud=Q#< zDlp>U*|M`Uy+yW5#;sw?sTH^NnxcdbGZ YKO{Gh zw0{>Bcz)oOF1HL1bCJAqI#&URHR}D;AD`;uHCEiMb3$NtS1RBXnW7{xN%ELOoM@Xk zA}=dFD~Lig6LGH)v`+6w`^!Ls(+e(0;Kr#%?r8)#SBmFzW9NBM1Wv(6f6z#t&nTnJ z@T|rQK7dzt39iDBXR$EMFGgHW^1P?`;eXKSOx5ibT;@)ZHO2)&W5jzQj_%413zHD9 z+!00`nMZTVur>F{lrUV{Jw6Drxf^2DNb^pG6YrI`%R47iL)`M%um6xM1C~bLh`BD? z4tX}3 BLy;D1ga zOuof_ZepM87KQ1P7#|`}^^z)ZA;`!FE0RMPYH$?{_Je~Ho`=WccTe0=iTQWU4<)Pz zeI7T2W5xLs1wR+&{2F<(BZ#ytaj!=Z9g)SVi|z`m577OD9-m?{*s1RF?GwY61K=m! zvthaed1aK(Pq?%x&+*eIJ^GzKE`R8NT!Z99hqpt%@eu}i<-w;MxG?2>WbB8Aptc9g z;ci< iJ_1 zM*IW1*5E~H2+)>s>5`cMVE4I!`1lFZGMcMgrHNR;6-%YD)L}Dw?r?2)sedK~$cZu_ zJx40QY2I*2b^u73;aSu*Z&KGHC#x=iPlxO5>67ZHrg0?)_NW7 i=Wkq|ix@T#}c1Oie?uOwB*#mO2!!TSY4Aty* tdObH^X65vr8+|pSAT }3j3&5c+v3rxy@9EvEr?bL!fP48MdTZ3 z?^ap`%}X?^%l0QB8h?PT_S%9{8~!~zP-|Vj2qPQz&D$`|cA{c$$+Q6&+K} 7as^;P3d)_p?P zr(C2bcD;dGMuZoZS1~z`raL}c3cgO)qfWm5Dd7^>Wb5|A?tkLetDY<8GX-9F+Xy{S zY809x-{^A7@MMYzH9a{1Q#nx@g;8;`;Kn#5Dl?)#@1v&r)8Z(Ii9SR(DB*%AgbKn! zS`>9M5du?U&=Mw7qFCDzmP~OxllKV=07rIdqL9psiwH=9CWz&+^HXA|E(p1TAQTIN zSV1^u%m%ROGk*!_n^S-fq1ZTUT&K)1<1CyHm|d1 AwH5R>5*jrB~Ol7+Mjk~6iHThFD<2g_s5qsF77;A^E2w6 zrMQ9fKE$MbXkUD((2tMEd*q!@4FG28&@u;D0@9iJ6BMkjxTyT~F#^;93m%LwDP!^e zrKN~_W`6{w_yu}`3VErjL;8*)nOk#IaeZa*`rWKgKp#?NS9jN@o|ObvX+lp9gUBKa zJh_9ugHy*4wd6@)U;fzCD4*jdIiF{OwLurm-y^y5lTC?W!tE0djhWaj4 krG|nj<+N9)bwn+`Cp+ZOvtD)#}hw9>oeKm&9bQ|>P6sfhM9W2lQwq+e; zLVtPyO<*EGlL6}gE$=fZ=mQ3*4_YLhNp7H5Eo%Cf-U_J950RhrJAsJgo7Kt~lCy*? z(m~PkEW;pIEKCxhXqdoEOE+mMO29sE6C&SQ1lP$vY@DK>G%Nc&Kvt_9*t)y*l_ZAk z`#P7}WV9p61=*3HN;_|wkNrV%L8eLX?0^2$cHPYjftagpk1#F2Ef94eDOiW6)nwbY zFSO#eQy9?k_5$erEf|ejwvo^lsg#YPuh3(qKY{9RyZ+pe#lmX< 831a?TwdU>9Q9YY%xBI&8!B&5-@58w!K^8LhfzP1}jI+K6P83;qk}I5JzvL2w4(h z2XiIOsAVmvDQG$XG>t0fknb3Xh23#~KQyyCndXu6ppZjmwv0ixWR4O>W;IZ%(cP^D z#xJ^&e8%O?z;o_e8ELaY!K-Cp=+ Is+0P1Up22f%H_Iabdu-e9ny_cfQWw4%mF) zlso2q`0=pC&OSo7&c3Y!VzKEF@9i!#z9Jj=GxBb8X)HJGjy&o; zStUKx*mA^8^)W_PrvvqVuzyq^^k%BEvnctN09RqkX{r-CrsUm6pHK FVaX)f-KG=`x{MAE7Mpj zw@ u6Yt`afm$x2& z@uBejnM1##J9FgKoqk_xo8hd~Z?E3t$#93KPkj3D<8BC#WVlhv3>RGa7`n5(uQoXA zo<9E2@*(#=W4Fa+KDA8ljRd@5&w0`^kahFI*hfjr81 `se###p8NQr^Ni`R z9H!&k;U^D2`S7`iPk){CW(biZSFx$=sP~%=v)}B`yU!dWbo{6?u6Rjg8iYvWVyXjm zo8|-afmssgf@8~`<+0_l&m4dUAp;LqKmN?et0T`Ge&*wmaEnOBPuo EY8SrIV-Z$Ti622BSMH)+F>4OUtHo^z6~IUb_ykcCTK&Cw~&|GBc>qvf0K(Tl)3Y zj(ieAszGb}^hAhSu5Dfdpb4oh+qTP?^}UXrz6ekWD>ag9+fG`wJ#A3?hiH>Q)s4-Y zz;+u0Hai*J1k *1iqaw>%#y-Xp{0TZY$%Wt0KNODDLuX>V-Gh zmpAc^=y#*b%zyYI?m08Len8(3upFYj5kWZ6K#v)(Thhl11YD+U&^Nc8Zn00XJiAFZ zBj0ue>NmJ+$>Aj4QNC7p2iSMQo=Z!*2fhhQ=nwh)WV|a;ox9f2IzSBvb3E08&9hwQ zp%IxUNW#1`$cfByL}1Bt=fnfWDS@3@jJQ|ah|DOx8Gl^mRX4z%WishPQ~WN7=l3i~ z0&B1J)hJHJX zQ~a^W;zKTBfS%zhk;OYj?gT b>(7a60Zla>J@Cz(c7=LKn~LAp08yGG+I;Q(NU$wV*`Y+^Wn!eT&4 zXCq;taplutt>#o5Kr`N+{S=GLT(=bxo=*vUS${O97``YP(tfHUpz*v9NCptbgDJt! z%e*EC8HA&O2_t3e* p1wS}}u8(24A(}Hzi6*QYI-zZIT z)2i+MWCLm8_U=x2Raq6>B-KKQE `qr8(r-;Z{j>w&&EQ3l>a;9Z^CQUiq8^3zF 9w#!9;(wbW zC_$-F4W`6D>~hN(Tc)D!DD|8O1f45Fbe|7LZ@;LD$y!`gsxpX!8L@coI2VIdO~;%H zg1BGzPZ*{&S=$$`PJ{ri?^|G_ekhA{6GxgHW1 #N3Klw4b*ahvZ#A@qejMYI}mDjOXH(nv2EsDW5Sml0HxB17cHQgsTcE z*oc$2r|{vJa`XvRd=o4g7kssQRaec`?d1@GQEYdjWNHFTmY@cf2Rzq^=}i7(bq4_< zY%N|L$RFoCibU|7H ( z^CPvrW5143R7ir^!zKefOD@myY#>!Uwdl~}D=v$Hx j!cbO(J `LAnNmGm;}AZm*V;3W1;a8hTg=aY0F57s* uyX7dy0`6QRQHxLjppldpESWdK Wj$L`kW7#TtSJSc88w+Yvepwi)MNw6Wi=X<4Xx1`g%Oa8mIkv5 zGG#NXC3IX%SnbKMC2Qnt*%p##O-)ToCrw!^YXFc^$T!1G==Mb=KWULuSvqcK&7x-L za-~+z!VW2@BY*48ZBSL$+LVRrI<=D`Qr-q>Mu*z@*i=g-lBkyGI?g~8Wv{kmq*U+- zsQU~+1*|QvpopStx@|NXv|2Jq*b#2Fuq 3(hV z9`33yb=k~Qr|DZaW=VUCU)c!E1R0cy`s ;Tnyq z<^VW9G#5zF-vFZNlXcmkH`PiBYs{BzXbKq_LAIu8gxz%}Cj)ws+{+U#%79D;vIR1Y zt0pW 77|f5%@0}Y^`M3+fTFnt3%@4(g<_Bg*Ji)OX6aT3TBbb@p ztBFhd%eysp-W792N1`tBFC$j {A1*w1^qaHc12=2!EeD zK7RtSr~1Vqk{N-K=+wzoX6}T=MlxgZV~Ba?Fk 5~?7 zCcwed6K=>@)F80n+huu%6>o;V-hW(!oel07b&^RKV>%Fdq0pE-dgeIhR2O0hk|SN| zaFN`{`N-F)g(1@6opHmrqGfzhDn?GI5IBn ytC-A*y$51Lo bhRAYp(d5-b--GZV|Sg{8$JicS 4@dYyO7H5)Jo0v4nS5d*LnEX|l+yMN(a!OpNJER4W z7Zoyi*;TA6aVQsOCTYu e6vPCbsN9R_8YPO6I+6NT zJ%Y~&rHq17O L%>Es2-5A6EnlFk1banYZA^r`%WV^} zz!uTkh>v~)8y?v~$FT@ijOB#U&bCOZ+1rGh{DP)N0DxP>sI5C&_;G!Urd?nYwiRNr zHP~`B+Nw_rNh0JFMmt_vT9~w5%z7 guKuQoA@qZi67I!s?7*lq1d$Y{Ji&cR<@7YJk`uY0 gd#pYe!$o-%f%aSumDn+;?r(-Q-3v<=O?Y9{N6FrO`XU)gi+E> z1xd+O9@ZQU&nW*NhVneW5D`QNFAg=P1ilEUrfXZjwQg&-(wJIIC0is_TC}bNTb-;< zwl!SaCS|YCvu$hIZqc(9Edj0 LfZQ&3GiFBwPAq`>?l6mVt@wO zW@@*rbyLwBL|aYDqRnDAxLMB@UZx>?RU kUGgp*`q?090^p4hf++qR9D@4Z#` z-KzIq{py{nvuf?$r~m2Qy-)YTXE7koBlne1W5S|dA7e{GiZp4UiGOWLAb+}bn-?`d zWUx^X4V2tG?D=t!?foEGa;iRMogYVWs#wa;M2^fHAMDHJ-G;Tw)o+!Tp5-{~A*d0B z^TnCoprSm@WCni9*;L92`MGTfzeZU8aPocri*hgm<&$2hC>(caxPd_EBH07MGVf2E zIHOY^o!aXpH0%&`MaPQ+PNP&Dg0}cMQFD^-UAf=cxT*)npBMhca;-(UNe9KB6bB0= zDfGOXR$b1ka#DA}Brz)2g~D=K)bPo|vDkqJukE(~%mr@WLhS@$3Jihg;dXmP v{m9)u)gMXkA!B_8yANA#0H*MS~o{s|i6_7_)yt7=ITuDyY$giRXB zZJI+yt=4&0nm$Dp |RWqaYmV=442s&X1E#0e0RY^#Z7^}+Lmh={bD`NaZ zodL*V{R+p~V~=Rj1y}yNCsU&qra+*4IKN&E>1dWT^Ho75ngI-9sK)xotBWRx;@{fr z7>0z?(BfYdY^7+~1qtj$zLtq4SRxFiyK3^1sfGz4oTFx(@MEzNg*EI%(c{Xu0UEQT zCL21lBo#@~ejH(YBHraqCIpt^<(P~3MG`< o!o^&EfWkYjMWv@0+4f$9C;tHSf|wu)$s-nH8!{mSptur1Xe0$)hd5W z3@J_e$v;=qeAtTC>YGDtN*k_Nc;7)?*OANzy-~ny60|~Re%hF7`YbY#*=!iDB(4Fu z^2v?oseyhTC#&NREM&0oe@;sg?hQu;8NW&yuBDSz$sc^LvISfS4(+s{e6&gKTd<}g zx3%Y3O %OsRgqb~01eNnY zxzkn+$s$G6KAmeTao(Mu`~W$fvfBkR>M`9IbsGaec9Lc3!TQ1w!Tt5W8Q-^K!3wEz z)i5;0ZS)B$pWb|J93%tG lgdwzMlqU@@GhZs&LWu>Do=aK`w?CPmy zHFJVe2^e6Kx;jgIBY|K1oiEtVn|;&}Lu8o0Pug$YC5nqoZ0c_zzRRH9E|yz6t7 eWHqn~*m_72waP17k{HOHZo zCF;kpCrp$a$1;T>93^|`JlglRiM)*Z1=Q)A_(vTFqdX7NUqQmLB%%Rl!#*PvJXkWD z2c ;C=)NglkC zvo%W@II4kJt-H7|RYoX o5z`&Rcp0x^@KN|})}Sp2Wx-+9lMdqz24 z13}fF6H-}5CM1r#c3ZQs=0dX&nK3{uZ9!lZT`lo32K$Wj$RChj0{wjsBT@^?rywIN z%eunyE#Qi_8#-AyK$ZcvupPcO0^b0dzTw@8lc`*}Tw!hnzd3Z}l~%i@+$M&4tt7CT zL^@Ero{h7hqX&nY0jJ@QWex(!s+nbF?!dD0b6|rrW8Wzr-8LmGBS*oX=BkGJ>$`J$ z9rr_;ySuWJyFQ>IEjzVd)7%FB_v+1Vs6Z$K@%Nlzi5IRu_t6$5Es2DG&af1jSQVgP zH{b*!I<&C%dwUZ4aBZXKhn^%p#2(N7LEqLPK?rq{)bm5n)KWy+KY3jBl-vx_!G57G zKHm1Gyzz?VBVugcq%aVXSN|ti=bqdIJQ|1oj=C)wH2~OY;?|LaZJP*7C8h=;S}uia zV`WsWDiI454O7Wgq+JkKLB@<^49l&Y2>s3wFfC%=w1XnUpB3+^aN@geAhzLi^4FAa znp^_u=|S o`x$fzGOuM0m# z(;w-p7*@cTJZJ-~y3~lLMCOYDD~Oz{GDqeQR(c8bD!L0=kt|d=(7b2s+Q-G=bG=4p zJUTBDwBjrFjUS_p&l_0dLW^wKaq&PU`vSrcZsj}7zDFEi+4hD@LPrY5JlZQ-?Z0<< zV1j-TV}fV#^F<< hody;@dJFF+8aW;O~ylttcp1+Wc zaw%V=KrZaf;+Ka(eqU8j^9X5lbIBdPO;25Y3voYWIVa7gyR~i!!+3+%@cBB8t8SZB z&xsM9$0bE?;$@^}n^nP}tKBH>QOeP2g>NjxtZugrHaEflu$%W29| ja$)g@vMPUfUNY1(bLyTsqre4tcQqyKiB|JdEtUyxp!JNX)hk+|6)0uRa6 zv5k7pCG??UUKC9((EpdWL+2q|3DbD(z9IEKF)maaw+sSWC(s@uBg|- z*cdtQY+sdD=|&DV`fvN|AmO8otPOjxY@|4|GzulY)Hq5@u#^+ OSV^2?%6Oe^Z(?k9h3 bOdxDb zwO+$&{kBgm Zi{R; zh{N5eR%whJkK~gn5r>~{QH*6E1n5OZkAvHN<1QZi40>($=f7>~ mkQluK=DQ1u6rF>G1^_bB7`oJsu*mjOmRP8+a8T_~AbK(5c48?KOG1{6GN#q
mtglwdX?1VQi*CGUX2-{0IiBM;XX?kEs-?YvNk0o0vcjH=!-< 4ZT6#1_0IKeu2?^v3U^IsU3H6QEw2Q1X1>Ri#DC;QQUH58gY4z zneT55N@Kb>(mZfv#b19yOb(>_It7IE!^XzN_GB63HOIO k>q zvCG$xKnjUn3meIt^GG a|drYDyd<^}PxLQnaaQ&t| zwv>KE&fD%QlVeAulJCR=egz65dqh-KU|~PezRKakP#IU>c1KN53)jh#Pt1HRqNwFO zBex2K<=^$pM#A(lAdnkI90g}Cya%#Gn*HOD%DDhMIEK|nfE>n`UvZqjMv-T#I}A&3 zg4lc)rv8-mbBM>qOYAEP$E+7|&&zMj@RUpvL)Zb-3DbRVRV=fLgso9>uV4yU@C!CR z=fEO(7?l2)&mm|J&2hy>0QEGtjIpRaqlobYr~3SrG&AW2^u`!q&T&JscmHI&9!sj5%!VtquJXG;w_qupl7Tnucfx20N5gQbXkdmTXqVuH?B=d+{JzGt zC^6UV9I?n |#D;3dynC4KqhJM|}14ivas6T8RRl*yX2GNZX6aiz? zBJ?o&DhgXS;NO4}V~GccgmOt)1KYl+^+o{{4BMKTJST=q1G-A}LX?_3UBzJT7r=m0 zo0Z&tmL){X )6ip8!XwqfEJM7^Gy0O0J{n?p&}CvwfM~ubhU=)?I5Ux ztU6ep#y7@o2-RY*9?Oaf4e8m+v7!~!Xgc(v@x2`ucZ8x33enp* _WH z+Q*Z*#J5x}sNx^IIoTA+H+YuKj8-GDDOIuRJu83c_h1+rjVrQaG~_s_DYgb!B2}m( zm6;>afZ#Q$D5vI%xxJDa5lf}=d^!hlhS56 7(;dp5|U zl$*8+<3uNjmtC{I{ Y@6fccl>;mtC`(2J#iM4+Me&!vH-Da`YR z_P-6}RcUKmZECTC5L>5z9W9*h2bP##8=`&5JdMwEFJ2amb?sJ?Bkx$P-#%yE1t4Y$$_XtB@H#D(fc zfJ_~AQmLO@2rz##yumWEk-?Ams0_6~xFw8mj-Yz(Mb`buVOfVD;iJj=3a6Nl5%HWH z7= r`ge63N_NxJvs)Uv z+z81ERXOQxZzAJ8^sx;U_E={il6E~`0V+gvLoW@2@yq)=*$PjPlvm6Fs-e5vVm?az zPF@He$A5JmJuID)yy3qMJwg-KAm;fF@N-+4$)A}!s$_Ac;Ek9uqGOSuNVeXL64I63 zNU#a;AKfS+y|O-q`;T45)^wW@SA&YvR2S8czFgnFYsR2p9ff{->zh;x^s3O;fX2y^ z1|(@k>?2FW8%xEuW~2$R!n$ob-@{n2xXrpzMYm5g+7S&j{wM-+I+rjpzU-qMSlvh_ zZ^*E@AoG`hx4o<>N#=(BK|};w{87M A31bm>YPzM!Rb*AoirK-7)fANk;MX z30zXPgl5MwYD>A>mdf79n$Kwdkj>N)x+2% (ycK zNz;evkQ0@YHP5|Rdo?bI@`1MSL-(%4C-CS59Q $pN{^cfE rLz1*9L}->8hq0jTp_dbTx7g1 zXVmV^290ba@i4k4BBf2pxLMaYwY?=llZ8OFZiGOtDEH=4K6^NO@}S+}Yq*>hn3U~k zw`K~QXwG@Xtc=?pya@Q}&co2NHMP^Dm638drTkCv=(TNS_?lurs2WHs5YDuMl2?q> znzqgVtRG#ppf^zfY8M?#_hH)S bYV~{N2_f`xL4Rz$xUggG& j$REwjYx+kzNG>qk8){V~ zPaN@B)$fCn0MuJ`m}@@<0?CBWG&6I$ATWd1IeMx1OdQ7>nO+U;V7+bIx!HvBQhY={ z {#5@CKchtJY7zDiQ-jn(y))RK&qFJ9TxA8;q&EhrR{ zywr{MXg++Y^+UcSr7d<6`P%}eP&T{o`}|ZOas<|Q03vXoy1>Dk%<>80)nZu{p_0A~ zIl8_kS}Rjq;g>yFZQ&L~x@B}2#1*8x-@crdT$-5_O7)GLDOf`>_|r)@f3dVyj(r{{ zT9LfX6qd~4L6V9yxp