From 2b6811ba67fcfcd4021b919244882d1a563d2a02 Mon Sep 17 00:00:00 2001 From: Ar3h <46180221+Ar3h@users.noreply.github.com> Date: Sat, 4 Jan 2025 20:01:40 +0800 Subject: [PATCH 01/33] v1.2.4 --- CHANGELOG.md | 9 +++++++++ CHANGELOG_EN.md | 10 ++++++++++ README.md | 40 +++++++++++++++++++++++++++------------- README_EN.md | 25 +++++++++++++++++++++---- 4 files changed, 67 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2178617..2e515e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +## 1.2.4 + +- [功能] 同步更新 Class-Obf v1.3.1 版本 (https://github.com/jar-analyzer/class-obf) @4ra1n +- [功能] 同步更新 java-memshell-generator(Jmg) v1.0.9 版本 +- [功能] 新增 XmlDeSerPayload @unam4 +- [功能] 新增 OpengaussJdbc 链 @guchangan1 +- [功能] 自定义web登录密码,自定义是否关闭鉴权 +- [优化] java-memshell-generator(Jmg) 优化报错提示;支持自动生成随机字符串参数,用于减少特征 + ## 1.2.3 - [功能] 支持字节码混淆,集成 Class-Obf(https://github.com/jar-analyzer/class-obf)项目 @4ra1n diff --git a/CHANGELOG_EN.md b/CHANGELOG_EN.md index cee00c5..4636020 100644 --- a/CHANGELOG_EN.md +++ b/CHANGELOG_EN.md @@ -1,3 +1,13 @@ +## 1.2.4 + +- [Feature] Synchronized update to Class-Obf v1.3.1 (https://github.com/jar-analyzer/class-obf) @4ra1n +- [Feature] Synchronously update java-memshell-generator to version v1.0.9 +- [Feature] Added XmlDeSerPayload @unam4 +- [Feature] Added OpengaussJdbc chain @guchangan1 +- [Feature] Customize web login password, customize whether to disable authentication. +- [Optimization] java-memshell-generator (Jmg) optimizes error message prompts; supports automatically generating random string parameters to reduce signatures. + + ## 1.2.3 - [Feature] Support for bytecode obfuscation, integrated with the Class-Obf project by @4ra1n diff --git a/README.md b/README.md index 52ebcb6..a5bb2ef 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ - 支持生成 `JavaWrapper` 格式 - 支持生成 `charsets.jar` 格式 - 支持增强魔改版 `JMG/JEG` 格式 (java echo generator, java memshell generator) -2. JNDI: JNDI 注入利用模块 +2. `JNDI`: JNDI 注入利用模块 - `JndiBasicPayload`: LDAP 远程加载字节码 - `JndiDeserializationPayload`: LDAP 中基于 javaSerializedData 字段实现的反序列化 - `JndiResourceRefPayload`: LDAP 基于 BeanFactory 的 Tomcat EL、Groovy等利用 @@ -85,12 +85,18 @@ docker run -d \ -p 3308:3308 \ -p 11527:11527 \ -p 50000:50000 \ - javachains/webchains:1.2.3 + -e CHAINS_AUTH=true \ + -e CHAINS_PASS= \ + javachains/webchains:1.2.4 ``` -生成功能仅使用 `8011` 端口即可,其他端口为 `exploit` 模块使用 +可通过环境变量配置鉴权或密码; +**CHAINS_AUTH**: true为开启鉴权,false为关闭鉴权,默认开启鉴权 +**CHAINS_PASS**: 指定web密码,若该变量为空则随机生成密码,默认随机生成密码 -请使用以下命令获得随机生成的强密码 +备注:生成功能仅使用 `8011` 端口即可,其他端口为 `exploit` 模块使用 + +使用以下命令从docker中获取随机生成的强密码 ```shell docker logs $(docker ps | grep javachains/webchains | awk '{print $1}') | grep -E 'password' @@ -104,9 +110,24 @@ docker logs $(docker ps | grep javachains/webchains | awk '{print $1}') | grep - 访问 `http://your-ip:8011` 即可(使用这里的用户名密码登录) + ### 方式二:Jar包启动 -使用 `java -jar web-chains-v1.2.3.jar` 即可启动 +使用 `java -jar web-chains.jar` 即可启动,每次启动后会打印出随机生成的密码 + +默认监听 0.0.0.0 ,访问 `http://your-ip:8011` 即可(使用这里的用户名密码登录) + +可通过环境变量设置web登录密码,例如: + +Linux: +```bash +export CHAINS_PASS=[your_password] && java -jar web-chains.jar +``` + +Windows: +```cmd +set CHAINS_PASS=[your_password] && java -jar web-chains.jar +``` ## 详细使用 @@ -130,6 +151,7 @@ docker logs $(docker ps | grep javachains/webchains | awk '{print $1}') | grep - - https://github.com/Whoopsunix/PPPYSO - https://github.com/jar-analyzer/class-obf - https://github.com/4ra1n/mysql-fake-server +- https://github.com/jar-analyzer/class-obf - https://github.com/mbechler/marshalsec - https://github.com/frohoff/ysoserial - https://github.com/H4cking2theGate/ysogate @@ -142,14 +164,6 @@ docker logs $(docker ps | grep javachains/webchains | awk '{print $1}') | grep - - https://xz.aliyun.com/t/5381 - http://rui0.cn/archives/1408 -## 交流 - -交流群请扫码 - -
-
-
-
+
ii+rUf3}K z*S-77f)I$TY{*?@c#ouZL|f16`t_NC}Zns7mih@5InTF9|IWlJ~)V_BrSK-hJNZ2V8K$lT~KTnz?7@9*HVm zd-2N S9KI( zKni}ZPDXRdJ|GKC9Ci0svRfsJiV*he8IUR^=3sC1S|;wX@` M2my>?+;{?WLJRGdJNmXS?QIE`Xa*o-9n84@cP zu-~SmUm|+}HW3&s= ZY;rTMji{Am zCn;+0zv1M4gfMqbT0zp2x=g9J11v6YFY;3t(ZH7)UdH_Qrg1~P?7JN-4MfTtB#WSY zY5w-vAzOhJ&|`nV{Vc>vOMFfqI_hR|A@~N~Ans+pZ>j)lpiy1)+fzExE%m)F?#&C( zaNP5!S2`|#^)*5QW?)R4qSd{=FZl^w;tD60bI5FmD6oOdz&>MPyZJ%n-c#rAGIL_7 zv5joGs`pJ_>bkCfS|*QbEY6X*bV7!?o3=7`{bA{NlC|w6@x$~Joo9`Q$B&(}@@nW; zBjRe9CYGD@$ya{pfC_fM>goM`@ZMy(=Dq(E_bIK$ed+4V?CjvDhZo|1Z(A6*VTsww za6S!zK=`%29h)KL!g2rp&G`6uAoIS7_UzckUH>*!>s3Ss7GK_kh7JxL+ ^LEel6Mf(GFZ|uiokoOKYnC!>+^rPB#+ax~m>uhvRZ%F|rgFl~VbQxTe zasK$pTs>%S<$~urg(u4%y?OWr)LuhO?PfJ+kx++Ol} 9O})q zITUCiXOqF#9&rt?OjRN`Hx96@_rPZZ`)zG9B< `H=UB6;$>-CQ0MyHs!!Cb{jo1f^ z(&{{Sq*}w(>&P6l*$a_j@zZ`G8Qy-0A6-wxZcjCCy%_C_FNoXX`wcaP0mgsmg|-Wq zE~;HTV}1E_qo4WE11M(TH7?6xq!`h+0~BJ!;y#6`Jz##a@#to?0u`J3TFzH7)76#h zgI{?80-vuL(MK$wD8Q#D56`S_7qP--- {}O-(*fY$5%d37_qNm?UQ@+Sq-c^ z;!vt1=e?igR5EBQp(rwpkMIn17p$~8MwoFwE5WfHeXsrakRP{8Lor`otMt8ODP+;q zS!+n?zirH`V1+>%$_1YCwhEsb@%~U)2#E#8GyM7ai%BQu{(&V6u475wkI}ip+}|E5 z@|ZsY#fZ&(n;C}ua&KQBZRs$YbgCWjtI5h=7n7&y#w?EQfBq{yR$p50KENq)HR98! zJKVg&W;K7HaE(Ug-c&%DGn{`}@nl1Mv~X14_4i7Sa=FaauhsW51;2@TJzc^A6x@@6 zKp<`?0@M^^TK$?`P;diz=0O4kHb0;H%L_mq-@EE;FMbPq(zr!$KsIo#pN6s-$@(+5 z{{;avjQ!UA(J&eX&5`hK_H#~-3)~*Q@kYcag2#QzKy!h#4FA9nC%%JhUJu*N@UnzI z5gGKpU3S~$ wG#>$S)37T6~7gL8y0$AA3RG!<#4S6?sMYB@YYT-A| zty*v);((Z3Y`b{rk^po7rbNTW#>TARcau{+TD9+^#IqV#w5q$x8F>@puHRwAtF{l> zKMbjM*7sIjJv{U<&Q-&<)mNz#uQ4-6?d-VDAU$~ET~l^50Ad{tjnHzL#1@m2D-Yx- z`2t8t;26)Uui(|B3zK12>Y5?( F2b=$;n9(Kjy3!e|T7LX`<9>;+y3K;_ ?NQ|n%qma=z>f~tomVrf^A@rsEWdwGHq+ow zS6T`j3}D7_Tx8%3pdfr$VagE?GqV{)#$5?pZAR(?QL0=0l|At9n6b@gg{>Ep_{Fbs z_rxd{0Qg=h*7K%-(hVd<<&Qe#7Aae1qWT5uu$v4d44_B^|eITnE z%}aY}>fF$s{=z+}pOux>)yKzh)I(TU*wx$H;9W~smuB1Gpy)GzXonqGg@pU a{(v}GE;p66+Ml+$I`;?1cQ 5mY(%_4HKu zeiq}0N4V`Ty9DX`W&t#y(^E1pTMOm>tIpO0TdlKVw143R|E^7=9_9yIp`B(7GByp3 zmwHQ~#@rpH5BM_q#CaunrFAl8lT~H&xnSI976(>Tu?Y+9*&!5BV21N`i`HzrZ6O=B z4Yld!0uv3&Y)t^S6hO{&tH4##|0;SmR_jytscjT5HKi~)B|in_*PUw@_?6l}eSCnL z66Lk<3^|zM;SA)9r>z_jj`DF&R@OOb?=-BH`|yG-W?n-5i~j5`udxgBhY{A$fgbO6 zlGEBRA?Infn_t7ilrDW*Dh{_JnBHgXkAB#4N%Y9!*?mSq|B%9knEBb6+ynzntzO!{ z$!nA^tA*e){$df*4)t(%uAKCKfpE9=Vm5VLA4(Ss-ZbIM;*&Odp+5QJX~3BZYpoY8 zv9raHH$+Pg3~XpTob1gAmG&;TnC;!VmA6^pOB|Q8II~&UIX{Kq0P{EJ_wI%tD)L2q z7#kk^GNMLVNFV$onJpVs$y-slLg|>XH5E{$abFQ9ZZ-3K`d$f64*8fv>&Mhlg(}m{ zuQM!aO~=>Unm&feDlxZ84YPfkjFP^8tiTwJY5%p3zu7N( Yt&ku2BDU*sh= z9iQ_bZYBo68FzVoc0(^|Xi8^PjoK!Q7tI^7bc{_U^(WCMF<=H@hNJyAnQyWr4N$g) zyYc3nZD>MOT9&DA<0v;kgJ7uqLVVh8y)0ddVmFU{PCmy_im7_|FU9r#YswS{ROq_F zwdr5MGs*D+F5-** %x7B8as&bJ^^r}?p9bPvU%G&@=BzI^ zuRY(nmNaoOf{Ne#DGxfJMLQMzm$k !t_U0X2Gz4;IuJmD) zlo#;3b~QV!j3higs2|(Wv1Ho9FCYL<6c!LwnFCUUR|bb~gZ?rQ-^IzYa!Mc6ru?Bg zN1??b!HsZi9uZwAT@bx_@rM|_7I=XlsP+-h4OPr57tZ37 >8>- uqFkxUG^jB#Xo@xLHSOnLms6x{k#yl(7tE*S% zrr!&3mz(p*X?@AxOWnBhCC&B8fkv%j1CX8xaBrpGVg4c$u0R~9l_e(TLm5$%{B_Pl zc&_C>CJyMfBb^dWlyD%K4Q`fxbAIK=7b!8fU7BmGw^BD)9w)~9u|#)nH03duNJ^mz zzr%LsXja}f|C#J|*0;*n1ZRj63)RXO_i18p#irjOOX)C@&Ug%N7)mdDH>8a4&U=&h z^XHN{cR1@~8bEU6)1;1NQZX;HBKJSoW_{T&w4J+`#5f7i!CkYU*;^Nty&h-~n#!5o zY#f5qx|_jLtQc@fsGxj8zK>K)b&{>Sux%Vo)OqjiRPGoHuGY2vI9O(uzq*jH*L60N z**b(dnZi>a+zOpyu~XpAufE1Qb%pS7O_)k`--CUnKc|8;xkR$Mwf=;~e*AkQ04gh$ zR;8%q`g7>g8$ft&SANyWY_m8Le3j}E-Ot*Plrx=;{{r*zr5@uhw-_vrw9TqklLX-X z3rew`?4BH+oXtJ#%`!q=w&DDsN_C9l7s10?H@V4;!EDSu0@9t+pm;j0po#Q0Aa|Xy zwYo~z>!a7hQ-fK(xc&hR15^FiKdCQtXt$fnL>g_$*yPm%?-GuoQ$3`jQ%-*%9aIhY z8H-CQXnB0vYTe_%A|rqRdCBX_GDU(vP+p}nf3TjtaR$6Z*t`lLj&kG5Rm(eVAHIR0 zJL0KBV8ciL%u|b5tAfh>rN3Q2OllwL>Z^&PRq244$)^%d5#z# QZbw}TDfQIRlwZdh#|q18e~Gj|lZg5N z?E!eZyD?pFt+nLszV;V=92u9;`)W ZF4Fe zFd*mMq|B(uzEGl)=vOv1QIRY$ZMY8qMk~~@o02F)J-HFzS9_iyj294f+TWJ{cKqp& zxh~_2`7;WlwpeDPh7*Rn+8N;m9x2Uh4f0|8=~aZ~S^(hWnHHNBS-?w2pY&JFMy=M* z1VN_4#qRET;DGt1(OcYmc2DV^*|i8Dy!JfmZyo;d+Rz2PRVeh$*q2DEg_WV-7W{I= zs;?nkuV0kf@68Z@!w+TSon)qE0?S6mJ*E_@>?m(W0xzYDE^zI)4L?*82@Tuy%XVxU z{5o4qG1vFPOyRXDT43>85n*qCba}wEkh-`BQea|CI>Zef)jI1sBSpVXe=f3=(L-j8 zQeWyG(`!b0!f)%Ux!-1@WFiUpQKf(4+B+)n5cOGoJmN4zZhjo2JXtG5H4RDdQREBz z7~P~M+@i+tL}4IA&0lTpn^!gX^5K#(UnlYY!KpmYr^$GU1jQEtE2pGT^l$(Eg?z zm|FZ#jj_&sMO_8T!>r+a6|d01x`ET3QBZ1;;^7nIavrQFGgh9bsbSp>xmJ$iW$)TY z>CWzO;&B%Sx {jCcE0BF{lN|E@|N9x)hOgIL!esn zRrs#(O*!w4dONcxYVTmKjn_1R+-!3m(q05p?)Z1Kn9H*)N`_ z4K5K0M_LOHID|k$IsoE&mbEi}+r!w#STmkXKk5WEt<;{lct2G4dAV$YBIkSBfnZnS zl&($Nnlk=4) ~&^66xmnWNrpLMDK*E0h{Z6I+AkC+h$zkU>&KJXfs|c zE>$bJa5UF$vv$vL+rgR~ ;7Z&9FPS#gm>a;21z^Y6*r;y}=w(z_;k!!g zB#D?#An4L`S4>hYUVsrk#8-lj=UlAOLrdOk`01vo!_)5?DBYm_{Dda==$WHnRB|B8 z0RtIkgWMLbH~R=~{qw!s*Ni(~yFVe*zCHlwtMN4_6M6NbD?=GpJ1F!(*0vo9;z8`A0Y!ayDH`BVB z&B}IEF>^YB6EmMa(uLKa_l75h9}1sCYrn)DGr^Ze+xx6Z#0#s40g5Xdhni4VVco!= z&lYVPh~X@{q%E_>a0bmFi#Z8!-N9yOXv(d1uk5Azj8<~+nPmPJP&dA~y8`{HK<**% z5S+Q4i!$xJrTH%lUqWm9%BX~CjygyXOEfT#Wn^RmoACkMUd{L~;{jTY2MbD50%iCo z%QVCeLmPC$5_Xn^)SD|psk9S+1#OF#9sB^VP1sxNFq4|rn`k?2bd>bA)JsxjC{jB6 znvimYcK3j}bTW)nrlKL1sh{mQYBbc)X8=^uYk@lbp*xr6+jc Q zq_1}ONrqJjt~$^yW3 >gI_%!OG8yI#wd$H(`aRr$K4#{X7 afyho9i7+mHXFG6F$m|qnD0j#sI{A}3n2v| zAaQ$MLAvuH<$td%x+X~@5y*`No^2;LY35s3dW|`uvF7s4GV|Nfo(Hu3F6wv86S-WD zrJ#tKM~(Zq=^TF)`%usdy}!+Vzqvm^c0wxGKkm@g{F1_wW4zvvZ7eEDoZ%DStj=P8 z&z{U4S9j1Af3Bsy`;P`6fa1 _2 zWz *OFDge*d360 zeS+~-ezQJvH@bwb`Fbx-`%^1tvaxVr|E$`UJ1!1)SG`+u9slBR$Nc!XoSdiDUTM>! z>dDE26U)c(8gMss-3QM#WPNSQAwK>8Bi_ikyAo$w!)%UW-c_3aZdz072iMCg#25`Q zCv<(RV1WlZaF?w?(c=dGkQ=f$088$!WW3yr|KJ$)b4e998>=KDHAnEr&mp!GZWWDp z`ULvcH8dW}kvzgr=XU#=8r5xkjd|G`4on~Y4BT2*N<>oN7U%LEx(q7_h|@&_ ?gUD|8A+9dC4Qdy #pYo7GJ8EN8Cv%HP@Qcx7kheZ%53G87>|+sD9MGH5sJ3hzM>z zjH`+3gdQ!Sj=G(7=utDJi#VRJ0!kVf_x8h@l%OlZw-_n}(w|89WvNPz3U~- zbKW#{GKsh8_)j;Gi)Az|kgt0p37N$z^&+RfWg=EGleIS8%O}=&Fh`8c>JzqBKecQT znHR+2-qlTyTRc#f- NZ^sn)y$RdTI7t=i=ZBpqFVNh%*e*iJ HS%4Fd8OE!3XuHwJ| zNVw8ryzfRo5KM`Gd*O;!YKek%d#|xOhst@(l2GDOk6~x4W@4@$=Jg}}?HQ!jW$JFx zcaWv-7n5Rmc^+`u{#ovA84N}aoJ!91!}s?y?qVy)I8c59P{plEqs4;jZx;zRQt<}j zYLAMq*^8Pl(wVCuD?1|O#Z(uUG&!R4KFG@mLXDPLb)NV F6NSR#L`gll&Zr={CTVctC3dHvom%dI;EyV#a=rwHKM9Oi`5Eh z4t5IsvApb)u)!wB7^>4h9u7pTZ&6%GC#Js57I~w%+0X#u#o-6htQs5f$AockNMp|H zq?U+HMZePrn=r80=@HK+?DCZEp+ov?1;O+rDd+>!bKeIRZxj!)3|>nNBaw-}?8T0? z|67&+ZOrM*n^8A2P% ZE$clNMMqzsP;D=AG%L8ijy7 zY@*VPV}6PfzAa<3G2=Bpabv1My|J%rg$rG5g`)vPSB_=2#1Z66YFY!c5u#@HhD`wq z%vbmY5KQtszOCKm@q(0W3I~)<(Bv)&pA4JebJ9S&Jm-Oobu{fL@bQ|71ocB*8yC?0 zVhls_D$)byH5E6}@-J76d<)wJ4xlNUwLPEE3yTVIJyUE=4JYJXrllstO&rRr87Yq> z3&CYI_%9(bj*kzs8iqmU_sz)AW?z;m#N0>hIK#h0F-o+PVE_WsPN23ir`BS)8udrI zq;uE^f>gG*H9N4iUEo}30 ?g3W$ zyK)7V|Fy XsA7_-G_my?glkS?at v*y^>d>*mBCH5DNsV&*4~%eAgFC^vUzF+#E?hgS7vj?Bh@ zr?657|F4c7a36HZz1smgOe+Iuf%ABCRy1Wg<+DC<_M=Jp@7r#%MhqHT*ewBFsH^vX z>B!%vNX&=u9yMu~iEj^CefKoeB_WTFi+rfcc%Y|J(1C{~wFX;3$CvncO+#F3>au_cn0~F#Hg~41 zPv2aNJqDn$>j9Xqat*f|hf4KQH+&HHodg%!F;gglt%QxoX`1K)V0W^^4mYQHfFMzF z?Y>1qFxc%fpkF(No8r0>BUQ&X^Z|{=#RFOdPeH+tB5rP8y?ED}NA+HaFd~Z;$w62a zMYxB3+Nx8{K|PO$d0q`!6EZ( SZM>IH{3O$PWIske z=((lzW^egWh&T_dU?2s;p&LtfI%pqAj_&2#uoP%+aI7Sx-VO6REzrFKU4 MJ5F*f_C%6H*&Vai3^U{Y!bnw3WO(GfsPvM!-u;{ zwHvlc!vjtGk<;Rb5MAP`9*EBi#D|<`#CJ-d5@5vLK+X^NS#VK{x{}K{ZsyEGLt7*V z5e}I)ti?%FU^e93dzUOV)47vUQUVZE@+#^`hMhjTlefQ3<1mYit)2APpCi@mc3?%u z1LcxDMk^mdJ(M$uH3v*hJ17^$3^T4~h6l2S{w2%Y?3p4VuFI9zcBP<5njHrx9cebj z0HcrhAx{7fwycJ5$2$oWSFh&iqKFCN) 5 sj3lbYL)2B5i)r$mFt5oL z1rbrpBO>Duvaoe6*ZSkNm#xKlpdAS6*42+JOSJv+spAiIO$COmp50ORy|u^Yf9brx zdv>R^5EwV-dY;}rWBi2&2NRaQnL+F$ZP!Q!$wM|nj5uRx{bkMvOmdY4@J;M0-5Sc$ zVlo7GC>MsRm~*=mx2dx4%R(FCF@6! >3d^*pWFE56WL5uv2M zN-~}gGP6(si;JR^F)NhcLeCxf5@IlqhNS0G1GZkI*S3*xKE>+CCaJ?`{?47aehKT9 zZ`W55!en%hrA7KoP1bPrxxSNz4%Ple!40f(?`XR#EPGPmL;1Q&(@V626~+|l;^2}~ z7IF;0Nvzc$mpzni1?K!FGg@!eL2X?BCPIOvEe&dBP`>@jbF<%-gYNSUvE)SLwPf+J zNO`G8);6V`+kPQ>%}wik*ybbGtEs4mfsQ(NOgPaq{+hgzhL*UD4y7Tm{C%!#wQ-a7 z&FO{?Dn=e6h}1mh?k}v@#_Fk$gZ#rtD&MiPP8zmkFLk8##@{rjAMc7FP|J+(4FXMl z7qWIThAMb8rEzlIn$0qE9XMpFUVD9EhTatPL7whw2inF3k_v5zIAT90L_EJ0KfC-K zsBa0u(K|0lO^3-oP O3L8guW;-J{WUyIc(fYPuTew#fo_(EuI%YvphPxaP_<; zYs6kP=YIh?f9nDDww7EjC@HJc_GL&pDGUI7Y!V{1&s6l-^!8m{sOK&{f`T1dqz|#U zEo5P~=F#~wFo>a9MkxrX4>wS;?aShHyc(JFWV(7|e}ZREX0~=e?i{(;@#v!`He yi3;Xsxdb3}I=*-{|k8kqaAcfnF<-<*%PZ zj@9hc{pib!AQWre(Uu#a!xsgP`+48dXNMvY3-vdeeP3Eg$M@QUEN+>r_4vQhIHFpa zT^rciLZC#*5xy}^XfrGAH%kX|Eoh%l0 -jQj0pou@2*76a$S>5nL{N58 zpiqM%*ZQxuG_CLtd74NsX*0yqP&C1z<$~8r2r>6_+_|9aHF97b=Ha~To_$5QE_^qe z;C!M6)Q9pEvX3E`pE;Xm&iqsas2-^NTMAr{&z*-gez6F+V&Cf`uEI4eMNsrgEU $)=zth$6r^o-XQPaG)5q+nrpr;S$)wpzLSrR(h)BV%%82 z`^eE>&4&lFoTcDjc9 Uz{o6sPkcu0acY=n%K^)wlPz>hu@m+0m2b6&v;@2fh1f zm-qcAS0Z{X*c2CDOkW!w9uK4aPEZsDuEivFJsF87a$h}gtLR&!9+F{x51O&vt`?-z zjn1crI_IlD-m+kzK1apSyRF1oKgCo=hh^c&Ja7dvcU*_>>QGmwu@8yiraM(qA_-nE zSHe+;S5>iWe&O4^!Rs>I3NP)YD-{CNzOscVAjI<(M=~T;?&H?nkHZqXE2yv; AD&-9i(cAxKY`C-OE&s(wBS5FfG@5U1D7W>)to*2Cz#{7c6rLhqykv!!DEAv&~D& z^FI>2kwTy{?jgCXGIvMXOl@=Vbn6Co?8g;ft0S;P^zTUo=*a9=$6sGlMv|fQs9_%F z0k@ajX>8n{1lV|T886^?1&CC>y^zu aO24W#}+Y2Uv zK8!;dw8Pb& *zypg`=0~PQgzF&hsxVE=r>}=G~EtH*WOP(GrBQ=$;4Cpw|G|6Z546u_p$3O}ate zcQq|Y-rG;+d=!^*w(E@C8*Rj>>vf>yidNSbSE$wE=Qnb|KX}XR^D)&DsEEO&& zS{Xp-Ie?aRI-q%Jb$v$J5x`_=TPo93V+WAy{%id_Vm$9NUA>X==NSm$7936M_=5;k zQ!+5XzrDwQTjsZDxI=K{Ksxc#hP0AC<2}1?BZXAxfO6V?Vc}F0elm2FrGoq7S7xPi z=zzz7Nsoj!ukKdk9 b3kwM93-Y*cI7NGw8@x0u?S?O$PWOCkJ>!%<4 z(h<`YL5ud9`ZcR9jgsml2dCob$S|oqxs~02FY$kdx$XJ=?f1~{5r92>|Fm*}`B?!d zhzDwJCY+&vtr?%jIJUSg6|8U)1CWpKJU298{uyKLPo1%#u~2HsfwB*hjbE8}7smE^ zbM)os|MUB~f;#XMr3 v{r ^xoQ|HG(#Oabh>|*7N=Y*_|gRswuaw%>Qg#+U)EPws&^__ip|B-cox= z5CYd+@4)}~z4h*of#D|dWc**y)S25g*XL@n*!&b&xS-rB;DZydsz~Q60Wk32Z~Hd_ zkA8F5jEu*r-+`VcPXYU{4($K`Ei%9V4NAek&-ClBov C;UY6d#k6OXBCs44Ws{%eu~jQ~&rZv9O0a zN_8Dao7w<8d1YSH-jfFPDgdpSARb?2jh>e`{#b2hfZ*%C_V)+8bG2x4%W#^}7X*m8 z;%5Px+YPERxz3VV|KDirKYk(JEwjQ18&?NL-h`tBr$1Ep9PcyP%n{VY91rBvCBTin zS#{q5 &(#)RlewQ9^+Amg7OLf_I3x~0tCqqJMn zxa>Y?x!2S#r@ZT3n^+J!q1Q!v-1BU4$^e98&$rBKTv5jL*EguVn{o`B(iYHk@}D1U zOd>6hPG{rkmE3Q3i2z&Z-hK4w)L)9Y>qh^TMc|OQuZ?KR_zwN!(w_ZtDU%0ieU{Lo z9y8@4tNu<#DEWAwZ4oiz?S?c<;DW}o(#GpaKKmX0`p1Qvvp@f<;_CQoNq67D1e<)# zTp}T?9OerAyL 4%88F#WDa@=7t=3 ze))gNV!htE{1+9kwNhT{XaP#;_h9A!$yPrT`7h_u#UVhe&)>@;`QPEu|2`1U-U60} z@Ao^u1w8eiG~L-L`1(NlO0(~`k>bBj^!0x*UVh^qx5xl<^yIg+{F4>>`~2}=>jwyV z4h hUj~Q`*FW4=e^2bOG|*IJ CTcPiJj=L_m2F>QB8*jK+yH(k(sA-e~6xT!d^Ia_`>IAOxj;7 z&Hx60a8jE{r`I@$XFRCy?8CK$Q_}!OH*C_zr2hj+=Se;$NoNtgDyLZ?&PUOyw}ni) zOeCn8q_&g#jwjPfX_ul6oNZ3SUe)E1{$wA@>2fT4-6Gl5m&s2Ba^?^)xNSVC0l?n5 zriXKY7GkZ#>`R&SK#`G4aB6ew-n57^_#1?vsl^?DJU9_gk=ivjuK*x7QVbGz4fC`! zg%)_UlL!sW@}UHg$5r03R9OO|F3hLVAAQ_i~*?D}M@)qd#t zbY-AbDL_}QJXNuIhe>Ml-emE(=k}nX?8-iYr6Xbc-p-SZ%8}iSo5#;>I)6SJ+JfsG z2)2`DXUg}i6+qNbZH susdwNu!eRnEH?ZZVD^y|hO)Mn>;uz)@w}C;J2OtO_TZ zJ>#YsI`xFdoa> W}Z3yo?GpR z%g>*CRzE%mtdo$q6l<>#*`J3|Kfa-@oO(N=GOQ1IPOkj8t8Jj*S4!-W<)Jfz4FNn~ zl=qm1vHMa$LafGqeM6t_aj0a~problN~)1XfHx{I*janU(DP53&U!(UIyL93&H-w- z9cCF)Cq3wl%`qaq!!mW6`=4_AV77>c*Ir+Xs%%ESnq|~^RAdIk60=2IDjdMFqJF&> z9hHDgzA)h`yUE8Lh|GN&)G&2>c6L8Nft@$RgS#zQDf+2tP-#t4ZC$I*1PB4Qghf{c zHWP>Lwg)X2UmC+uG1l|<7+y3r9lBCy^Xrr4f#6#3lU(=+!f5*2t0j~2x431YN)oQv za37x(-M=H~dBOBillC}1HZxm(FT(Gc%f^tYtj`e>>?!Evt#`v zwDP%y_wB&}4~~nDPF%hU4(bHJ+a=%Sr=kX<&uQ zAUU5^`vDb;p}_A4Kj)G!t@jCMPp{}bN4+DZIc}O{dq=uGGE7rSirj2%L_C|0&O+y} zxHw_H4kDK+1`8Gmm8B6l!;>`ZjxXUfWsSVbKGGr)-Xcj@lO6`QSER1_<@e79(+s-h zScuySe+v{n`Q)|rvovFGRjxDZ7U8i+x-6t*{}~Wg-(c)+tCBQOz%aI#YYyKoERTdY zRxBkOGG0;8v!q_oD&X0tX+%axjS`nF%14KnL&{#v%m0Y^BBeP^>&$lAhuiTFUF-RF zt8awnXHdodo}=Wt#Bka8Pomd)^&~+Z`~_tG1()FVLl?_n6>ZL@_^P-*kC^43e$rF9 zZQ)$(7ShkxzHZ|zQmcV47gG$8O+(Bu2H5DG#t=Vvha3+Yy!yzod1XG NPQ_MXTj+r_x``J~_q=|1ztWZSUMq2SwDh2 tEf<+lp<=Qsxd$qFN3tIKqOK&WtFL9(9&X5vY zxaZ)xb6q}GbY%=)efp#>7-eT=rDl2*@avalULDX~wc1x(`zSA^O@4_1@pVgZkUm0D zP=Zdp@y=0mKxJrO?}3hig7~bcIm+G-D5@@ybe1z|7&`3&i;s9OX!Q=fI@HI6IkJGj zloe4CiMH1Bo74`5b0fPBR;OYwHZLy;cA44_ <#P5tm%aSG>)wAb?bohx`h5t>b)n~67QlIbo=WlzXf+!0ZoiDOax18MYZgim zo%zEb+s@>?DMRKg4k{>RbIzYTT3cF_vK>(FWwGLHhe=0bsMti?w=lKVs3BY8rjqOX zHv2(@sO=uD*Lx4%7|zC;_$i6wt0&=&pZt%0<@5o~WP U;TuS*#+NX>-l)q*$fR3Y#0PM>;)y zgUWjbi(yfl#wAC}mYRD&k2=tPnPP^h6e#ytR0VR&>Yn8gP?dKqb09#%IvtA~djv#9 zC$Bw|EE%l2;nPqk+sd4`wZ} {0S+2!MXUTt$ozGz z)^Q3Us$ObYcQ9-yWl^HFb#S?VG| guy$FABvI_!-0^)9A6{lNN)&K~pU zTNQCBa*Clp{`m6`P1T3`jrSIDX2DtaQd+%Q?<{UlJfC{)ZPwI*IegZ@21gAFkKI}k zpMQ6^P^9%pKC-bL>`LW!d7Z%<@*}Lc 2dE;ZGV zT%d$|h>?V7pzfaD4AP5D%hyvJ_u|@iU|nXHovJd=cY5s%fgiTkyd}2N30l++9ec<1 z>$#f~BzHN-)lA1K9Yt1^?A}+5rDaIKH|1!IEMAY>HxvkXN6Ng-(qmP;r0`%sS$n8= zo-KgSs=GcH?p!%Hqh36z(!(_e4zO?u6>+k&>ewH?ZxIX0jDdBX8_ZALJ2nJ4+j>M0 zqaXtk#gQZayEZ*VpW)v{s(Mzm+>7bemoM(q=Mh6N K?1}n;kq!8hI3`h= z)kuKbI6YRPVPN790u3ZSfHla}sleujhZW*y_$O4IGj-Ebj9SL nkJT`b>$_95eyEwa5 z%7M1|SY=(6^4mx^4{QnFt9KkrY<=`pa%m6 75?Svc;7 z!6mNscu;M=eDc ?ObzItu@OGp691;p^z*`AP3p3TTSIbVyZ3di9c{uN>(mpuX+2f~I~R(x z+x^08w =wrLYO^0E3;<$S2i |S=HsjFFpw8{ylC-`_A)s|~Ird0NG ?iy=YkqwZFIyKMz%H}u$ z$+&sdjUC6&kUzvWVd>8G$`wntEWEBTC~SjypYqTwY{010!Te3ufo`wdpoG)#-AjG>HZmPA;>_u%8 2i+zF^8U-p_x7Et0G4_sQ-B0YBQ zZk%T<@XYO2FQITBtvsH@G=o>y&CTYV-O0(plw=RbY$c+uP_w20mT?N7dJL;xe!an2 zK%dGXr6-=VLqEoJXEfg>=#*GvUT!~pyOQdK#OemuSxN=%Ubg$uJsa0kQHgHOMf_Uj z($8#8M*W+UsA-=E{QKf%TN9 )qx~3;8#vL0B$*_XEi9EWAEOI`M4X|e_C^Nr DKp!Jx% oUo@l%wa~J4%K1y79ZNu{IU^E_R^V;Pm p0P<)V(s={^TH2=xJVbK$A_6q%R?&`}Uv4L3?Br zKg?_QlaRREVeb32kP~VnSbgDX7;TXG1p`lx6_lvfW43@JQLhOK8;tN1yLR0;x$Q>7 z;2(iy5V`)qj5Q;n(ZO?)K7NO*2*_T}b#ZCytS*#qkAcyw-L@?Y4nF V)czQ*}eD7q;d9JK6=G3$>c8?UL*KjN{E&aSny_mJ3eE;RMLeh8U z$p$cDR>eFkpzuR)rW~r>=lh=zpEtBq9B6l=@<|3`zSvi%VUHenD24=N$a;k-lxvN% z-VR}vf5TP&Y3~Ej($x55K13nB&E;KjpDb%{xn+yGiIUUg^WuTPv1J{%UF!ANtts7V zlw0iO_lfX^qyfSg%JX^&PPd;@vtC`GJ$Z|N*n|q~02K$N(b= _M92oZ(gqkD%pD9os!s#^VP 98?;q`j|7ronFadHKU0{f>ieC2J3?kn{E! zyv+ge!Ar2NVAFqYExP|(=YxjTRG`n;blT=rL&x!A;|bf)AJS8>8x8Au9&4ep`*61T z8t11hpX&KvIBIn0m>0w7g8|Rq2xJ8+jivCK8^{tzy<74Vk&K(IJM0E(kKv#Xp7kqM z$De^D70~O8jxs+D2OGf|KIbSnYMn>QPBiQrcmx;z3gXxY}_&?d?yo%n}A;E)%@E zO6F}FLO3QS1p|zjmE_A`FY!GfwhFhF+w#O#@s#>uo{CHJOY!QkxX`I9D?mqXiZV#8 z`-`{oJHM>T{Jg$tt;$5e16I%-Huw)O#GEEH$}3l%eLM6jF7chRIJW)uiG32UV7)?y z)IEu4Ymg4QzRV73m536tlCsC@mlptuUxT}Tb9+i-ZyWuyUqcwa;<99b0%B&!@~}g2 zl`-nkbhB3+4oIZ2-ESUv%0uY>;_$_`DB7q*@+dnTMh0;V^o*HwEt$+6Xe9}biP}Vc z0|DtcmA=s>Xhe~Mq29rokGzyFME-zD0WH%@mmodNmK;ivn#Ni^+FGQJNI2j;(#;q) z3D^1f<`q*~{>oiHasU4M4Wp;t`8qb{;!0*;YGYiKG020Xh(xhBo%e7oM;;{whyz63 zR8;0vKR641_w>roR37bAUdPgY(RS;vF_Rus?LfAQ30te|C#!|_C-+Gbx)9yxx}RZS zOIXt?4WYwqv@{3OY;gDF4;YZp5wd!H>E2;PWZn~){X!HC!UP^R8cbaF50E0(>j!*t zqbYsnq~x81R|VZFYG4n1_sgvMb?~U=d=8&MezE|?Vph|P%l=%2eR(o0LvGMhK`AJ= zuQb0>vA6tI;Ysgku5XXFdKeX3a%IuPJ6{}~5o%c{&F-MYKi1;FY1w_Bu`)M5M#+nF z%np@ZuE1u_DEg`*nHIxHj6KL!I^swOY-cjgw-U2zXU-^^;O<@@$_;P#_X^$|@qIGA zRf7|`%_eGldQ5d+DQ<7+=%?bb@5=a>WzOC7mhkYJFr)@k>FA*0#&pmfvoHHXkUrs} z!xhm5XV&d!pbiDos>`Ufrhw3?{{#6z2EVP%79)(&Yv^O_7;z5$wp-^MeS7yk_uGa$ z;tFEjQKQG$SX->5?Hr|cljrT&vD?bWCOynJ>3pUin9tauIdkUPIILb>V7gOH1zUyf z;(07AK!zlBaHT#Y>T!4N8+;jUqW#o+>a>{|8*^Mbs~$05=)+hBfA{S_$YKtB1bRaq z=_l+8 iGOs@9Al=3vom5-hJh%%2mv_78R{iJN|%euGy+_8S}S!^OhFZ z@%-7d=b3)aQoFTN$9vuS4W=X58Djh0yZ5PnJZkX_eObJHhxIjmvs7bW>@9ICeTz 9d$qw(#1jt@RIW7&A84bdI*-cW%4=ZnGQo7k2W^)@`Mx<{;SP z!GnkC{CPebk728L?i$M<)=8nZmp-6v{0tdm#6~LOix8*vki|>#?Ago>7M_Dn2ED}J z4Hz)kz7O^YKX6!@G;L` !v7y G~(9)9F; z8_%VA`5HSsY(5ndkh&3v6X#JD`iK4#2k+gtKdXOJG{z*adPsdO@kfl2$=gC7gd7Tc zOF86OJag6RLYXmhwmhu5wt97uwU4}`is|zav$2mp{*=WRj3G9zqxvf1A;zHHTOFjT z#x0D|#EDZ)Kkze2KMYAmEXn7TPn`9@gOA9#@sqM~&D^;Q%np&)F>b_yPY~W@GL# z*NAnP>-c-iAJjGx17q7Pzfc +eAKC)-e-bVKG-I68C%tl~eo_oHgEYNr}>L&}I_%LiW1WVM ssC`zOJd$f z-67Vn1B?l_fjN(!@;$Z(J2qp+?5zJOEujrui|-_MUAuN&*2mm+_g}L<4PR5WT6NXg z0`rlJ7A-b=gPkzDsWL(5Nfn(ROvu3S2wuy{*h +CyS| z(;*dnB{>D<+xM#L6DCfv?--A2I_}sm%1-y;frE#v?|N#RtPQq)!Df^`R)6Lkbz=^g z?b4iz^^58?>Xh %)^x{S8IPgXZjZPA1N$aZ#I> XAMF-4cdF)H z*pX!#TVTJ*2hh9N|Fj*uXnAtal02Edhp@s ^K-6ksBsts684L_4OCyp zTG_ 8EG`~{ndEsx?0*H%=aURogEYfkJA6W+? z1|T-(|I3!Gus9T(z_onW>dm)G=?Ci>tJP;j{qLsn=PL~xSv!fv9(&?x%U6T`AJ=@g ztLaYC9}o)-R6WLLOjEnVJ?KL0EAsd3x}WMR|EH`01BY15nKNX##k}0px=lON4SX&7 zg+CxhFD?#iM|CvUhLEDJtOq=<&my))FIKHutua##wQtW_Jjt`rlg{b`@NcZmkelIO z3)U2x-lC(dhcX|rbuk7?uAAW>SeL~{;){Cq2{s;~FR|CO6@NnvKS}KzeZFzyCX1oi zz{0iUfy7*~U(m008cQT&8sa|shHL4^Wd4VZD<~+m?;&l;A>y1ed!q5;B#qIc&Eq@b z &y#O=V$}^ zN8Ey)$kP~Zr|QZRPgYjjGPk5HjDyB{j62U_jq-`7o+&lI7(a4N+RK^&_XJ(&Y<7>o z$ i?3ihpDiZ`wc7 zF3K_6qB;Sg&l(&tEVk$&?YGsewPnWKY@1!vGjmO5Oax zReq+5mbb(N=dnwjPz0m{0U>oEnQx)(jeWzy6Hfp5@#EUAqn3nE*1!Z1P(ql{t_a#r zU@(39Obv(*S+K#5q_*waYr@Ql+_swRy=0%QUAxxq8LN(o|MN^7V7qqVM8Vp1>ogeK zYfgm)WUzVjW=rnrJKDHc`vd0=F&RM;#o|&~;5jTXfc*UB7Obq(M2fPuZry6*G+Fx) zEMBt20*)O!b|j0)V*UCJ@`#b$YwZ6yLx!63-KUO}@>sOyega&ud-rY|8we!&BMN=O z!fFzfO<>1(?AW=p)OQ5xEcirFJ^|R~EnBjmwbfv&OV{r9_n<*JMozV9`&RauBoND% zxu(?33k5HAn?2aw!1u)jk+o-9=llDqERduH_& z-6G(n&3v|UB|+>H8h9+X@6khal^w&$J|uabIBBw7LlWM&Niz%HN!Zb$BsOgh2@a$@ z2}IQO>C z8+4U+CDC5%1-YLD^N^$oU>``5$|^UBt=qO`-hfbFlgI7Z&(THtkhwz=el%mVScGH2 z8r_XpzI=r(VAyzQ@`zs2he h7+D z4dFQihg{F%F>`WDMz>jTXy2ie{hen4 ojPf|?+K~__o9b;_Ux4tCs+X7XrI%6*n1XQ*oYAEvd;NI zgNK-XMDL zGS}eZ0gP;75Xwip-%+`1xD-^78co9V_&%kKad1tH*(}?vt`Uz z5*R?a=;(rl3+?}mX-&0F^eu~{*jTPPeB_Az&3NQ3TW0qp?HAXeLvik5he+ h{gVSRGKCf-h%Y#A`@elll^IMB9K3ee&sN zOU+46Z4ncId8(r h$@PjAE9|=&GiI8OCFcR4PtcLkW5$*G9PHnJz!G2V zX{;Y{4T*aMo3`*d$v(iRu#qhG=M42D_^<8TcUZp^78Yg5@Fn*BL5)i& {#Cs9U59*kV z_pr@uTmaO&Yu6t3H@1{ (NyLqtr%pm@tu_6{ccyg^au6KR{y;~@sE(t<)Q!2zW~&H@0(7!%sy~UH(s6u| zwyR#fmux)uXX5Q?(`ML0>i+%vv)3Ixa@1m&88c?tf-G~hC==@f`VwD`%|_>mU6LTS zr7yXcI@{t}B346}lkshs^Uqq$$lOE6>C0rlK=xq^0K^0HGUg2EJ46~7tUd}qlC&3) z4cNiL!XnEzh$Z6pv;lui+{l6twkO8o#6J%{^r($Vtj8OzTB}Yiw(rqtHm)VX0_@OC zT_T7ZS-{?~G5FYs9XocK&y3?eO7#-o4$yu2o%jylL%c-0@Y(qCRjXH ny^> z_zatYEyB+xft_KTLI3^(jbuqinh;8~Yqj=c68K+qA3{0KW%`hOj*WN#+sSxDkT(&> zkqeZX%dG<;H*Q>rKR~nQEu=%o&NeTQ{;F&A`%$%>XS)Xb3i|aMU@;GKmza=w9_vP& z#av=ev5BNpr(ox|>2>rSbD>}V0Tw4jFn4O#t|$95dEY|q18md!^(FR?+=5sHU&u9u zh4{iJWXaN{_C5BNIu05%#QK$3F$wGoz5?43eKH#X*@ytB7tdU>B$QVk&?Cl&^@=3$ z!Nkn;1>du%n*^I^8ob;v^S@J;U*XSU9}|PsP+g8T6a7L*nNx8*$!Cb;*bEYV6>%`O zg @#0f&E}Z3{oo ?gU!(W6If+~&*;`8Ch2 zS&PkBY%&gYr;f}?aQN^MYybG%37L{lhrR6}vmO+3@5*MMsT+Qcab!UsFlUIJunDE+ zstTJP0$CH{9BeiuZW7~jC)&Nq{1DQIISx@z4j6MI){xK%ayjO1TvK2y@ZFTbM&J>d zxsHvCaSXtw^Zleu9?g0bwmS*tH+G7(9eg=tdjxZayorq$5o}_3{f)3bfUid}MNJ{Pni_Oq?{y=0S38gF2z>tot!;#61Apj~`3M0N5?! z5bXW(d^RL$&c3^3-2)#@t_YYP#Jx#CII f zv`yTJ_R)vY-i=isK}bSO6QB^ljKf%9u5~B&N5RDYMx**@u8whFq8&9iVR=I&`+bmuOr_ z>`&fDOv9%6s#UAo+CmceD%K_Q^78Ee^ga4RE>0}7e!~XKrSV7PdJ)X+JMa3d#RGBO z0WfCh!-Py9a4&hv-aUIQe+V0)i)D2I>)dQ2Em<$cp3;wT-2xET&?n6ObY2?#Qw_^$ zv1>JJ)wR#CEtEsuiH})>KcZ#hH<`0BPl;em$RPl+05&=~W(c-{b)N;99E5t2^Gwkk z2p! KzlD!PaLCDvjSXYzTpH#c{pl>-kDVz}1X@1uVt z_sIIk&G^S>OwXf#BxWQIkI4Ga%$j((rnc6n USy;)$#nerVufE z4jZB$Ewz4=1ooKq>_6Xj*J&{W|F?CuT6MGQYWNQFEn- f`cJz_Vt7u~) zHgDcyYZ>Sf^FJ9Y5-SmtL>&ujZ?$c`?OegVoQB@JuVg-444jp4?mu9#aLW1GuYCW~ z5zbe9PQL!*TcvN#I9ZgpMmqP=p#Rm@@ RbWofC0x~u}A=6oF;k* p8vCREa@z8()0r)4govC6C_9y z^kd`3yuu^&BP23}7C|kJe9oMC7Ua{{B=4Noh>I5x-~>gqo4&(AvnT;sbm(vx)A9&s zp38G$KeH&pE-%I=mc?#UTM#;V%G!>ziwjz5P&a~n5)~XT4jku9U_^N&Pi#WqBp;yP z(q!J5K!6>SfFwu~38Eti!UzDjZQYjrj6R5jGf8YDeaiz28ZXp+F-saI!Qux&!3NcV zG)VSXd_H+Hj87WjwaOv6>f3KXxyc$}A+V9QnNtm6JZjq5(1+~c1vZA|%(DoBF-}-P zp3&cB1xp<}c9C2E?{@tzkXC>N?KDXV*uBd}jx-4LlZzfnkT4O5vsgzR#*I6jOd}ws zeJoO>!T6F;L@-ZS3}AkPNI0kKngrJ}7txpGf_Mbu`ujip**1AZK%g?mNgg6NMaq1G zC}YkuF6r{(Vj+M?nLWE?K`S?RqU}VFb2!dJcC*f$Ioqy}i-Bp-ZW34mWZKFci;M4& zCfKsFg4JHVSRi}V?m4c{P1-~LCSi{@0()a5x(4nfU #5+H3UL+2%plfr4%3#u%Vo)HBnt* zce&Ys%zZ4D-F45s3Ay&%k8{*V1<(SwZ&=r6tp zf56{s))X0$M&gquks{D%7B#W=(S9@b*q&%>mgO(EM4rXn^1wna?d9IsHpT)UO5FiF zs>`~D1+iq=EI6^Ch90wnJ_7ws63zg>$ (F^;PY&Xwf{>25_G| 033L)HK4K>T{+aPS6Q~>dmF)LyT$7o+@fsGr z_?~~c1{)TyVN*dQG*~2#3)K(?En1c=b^> )03F89Fc0w=(e^RkoC-S= zcpi(e&)S;=2C1(Ki$Q=zjk@*fXMG!>J o?V{{?8*$7`n-xH%V&*^*YWqH8YG7pH+iPstXxB-e&U&)1RKt1U{2n>8g z80V7wiMW #_EUCwD2s3=FGv#3#1X{Q<;BeS75oW(PG2S$z1Wn%++lnN z4bHK}C{7Uq>;@-_sdpNb#XO+j@r}f+2qX?ZoehTQ5&ahtH+Dc^j@4L?g;&OcKEbY| zuK*tqH!wo9uy}~CV>2Lj8yi5}mL~m^fFOYsJ$m$XUq;N!Nf(eL-mr ef*0#I2&Wk{i_U;Czbg?l5Tig?v(U_#G9J851ahG)FrMSb=bHY}H*6eD0#cB6 zv4BsRyrm)u<`ppmZNXO1UUWS6F*fd=zdVqQIniP4Zd!*63yb7|haSu32aLmA8f(yJ zv2Qq)PdpcM0^Z;d+8*K&+D@Dn#wlzRND|HfqK&+ibrZ^tYY@bT__^Q{YGr)_n@{k` zmT#!N;FNb+pr09on1^AziD{DcXFY;g0NsebAia CXCj;_pByA^+-9C8iGP6Kq`x@T%0>}lya?)O zC*xO@=nl4-xemy+88h^?EU !M4{74+@Bsle++ 5{ zlMsH)g$OoSKn9`n _`5eThybHyg4sr}=9wZB3MQOx6{Wa}ZE(%4e+s5VK-0ld%lz z7}$!K*PsiGFEKyQOxgwPFzXqSbf=Cyze9)4+SeOwU78K^91tSbi5p-5F$e2)F~?)h z(MPpk;Iw?{JS~D;gUt}cM=^I|Y=|u enEfP5CzC#(nKXdx5&3* zY{`a9=6}}5J|BE6elF(j_;mUwjYW%>*xTP$s_jF6=&zBZO6P(}aGIPqeWusF$YHSu z@z4*kTJSGny&Ic^f1&(1|AuI8QtFzxCSI%L8rDBvFdYxiAvR|Wlb}!IW<|i}9PCWo zj9M13cRaI~-e()L6PrjTOq^tM5`9Duh(WQx9XfQjJdU}6&$TxIrQ(qY;yU~d8xGj) z$r~rj0(!-`aL_FRyN-R2^E#RLydCV@e@J8d^4EOM2WKUm`R#^FN;v=X=j4Cyd_v|g zUL~);)mv`({_mvH2d|bd-~2myr9}t(`-7jnQGRp#V=`stVrkK?mwf0yzFIa({C4E3 z>*P~6{78BX7$uc!H4emc_PcAPdi|F2r~9g0npb&iAAacSugjOUt?&QDjTgU9T`I0z zLc*E%^YhAta|K2l v;P29N%aIPfdB;4^t4?#|D z?!;1ySOiEo$K{!mODrbfXw#=uNjPoyS7K2NLyObL7_&%WugUHicIc+TLLzmHiDFEc zcm)_qQ*`uzdh#mN S`V{ @ZID z;Sf!131$e2xfflIi%?~O#D(OGc0oQr`z)_uE+KUxI+-J!E<>B1?e6!a>|!2>6=> zG`)KdG$iQm*g5^N-2=fI7lk=_L%^Rrp~I_&NdOBAi?W|3ajt}Odb}b?vS~|sq$7*d zBp46?1lV!YN|tb5T{hv&IAe#>Bro$f2CF2+$y0i{xe&E4XYE-eoJoRtivTuaUxL8q ztp(%9Pq60!7RpFAIHk(sU<}eXZrWt?K5YX5gffdz0HT8v!%1*TkHrW8!HS-yPw$f$ zC&!4sL2pPZUV6EqEnWeVX%a17J%?QYefspzJ|AEg&^3}ElDY_XTapN3>ta&Om@>|h z1c+dM##6B65zY_|VbSbWyQVB)KhUK}LguJ#hp?nP>>ms2EM( IMiNu2>hZ9_JAvOZrMj7ZW{y0fE19S-@ zgx4 Us5e0e9wxu!{z zaGIHWV>xjVJ0_smb#^ N2>;BVro9CnnXA(K=T(3TTt$&k*Gd?Vq!I)FW z@Cv!o$u5YAJ-U;uA8`jZc=VWHcd>hACGip1IyNaWmdSC3RAjE9V~{l1l4Oz?!9r)P zT6OL3^a2?36&u4`fI#B34d4_ZWn&kTz!qRjX&btcn>(@8_t=7X;*>eST!@H-Gvr@H znsAPO7J@vvPy>h$AZP&_jFP8o(?Dn0z?X~ %B#0BRl`Kr6H|d2Z(D2p9rB1#O z7ZMw>i4q^c#={8aP 50Wz&`T4}kVo+}4t5}t`VrI-J;u&N!kMv%Af`+b zfMpTR$v2FY1>%3^F!q7D726N_2Z5IC5A+55#R(hyKI6>1PJ?F?Q*_Im2xC!;7$mvb zB?;n%G~o>45#J)h0wy*jed0NZ#Tws0?l3mwXwiqWV4PfB2N2w`-y-46d?*Xl3*sCb zMVV|!Vlge|1#F1nw|dJ0i>25#Y;Kxx2KZ>mGl*fxUi2Um&h#&Hi7`BKB P zNvCj4-P5k&b+?QueMBGgFXKau#e71ii80t*O#RTG6KZFuH?bJ?X08A>Wk EjBjrCK CMPGzePn+1|_StOj3YXND(Ic#(}eS &r!UV|6v1Q2(f%qwGUv_Om$CtUy9Osm01U8*D8~ibSLypSpkdt~we}^|q zg}GlI;motxgb_(m`l(Lc7i~R|jfVV;A8|MOO1!~%fTE&6FvYdMG^iK$lMNw-g^7G& z &GJ-Wg^ak6EzA^@kSsJWG zqJMECDS1SkV`YJLv?Sq7{6=0D30KxT&`H)e%ftBGi8iOvW7a#4XV$-oXCm<#VW(1i zm)^{hCY-Ug#ILNU5X-RELOH~lmKUB1C$6#S{GaD?>VE!$u;!O0oWZ*F>n*Oub~BdL zjWufe6u%U)W$PB}zi1O6Y XnMEi{T(zc}CB>pA_ zV7&q`{?SGz5$hY*5!mF)x@ywLqU*FXzFm#_6K|%0&!(OD3FZL(g?}#(tcgBTg~JS` z4{qQe@mJ)ew40N|L_m; z9zMU~bMloR{XyzBY7+?GtFDz#eeq`b*{u)CsN9+IeEk;kKCZivy8QEJ<=&_2$jrIR zWaPLR^6y`|xrD^lXSVOI2Bl^rsr2E`SUru9F6()`<~#o8bn^4EPDsbkw0&Rt?*Gcj z@iXM(U;O^1A+=p9ro4j)XJ8AU>S);gigQWhY=kqrM%m$vQBDSGxw#YUbAq(Ezz|Q? z#-Id)$u2b(=U8N55ragHo%Dc3gSY_6Vn4sZMvxIf!j6-VI|@lQ3695)&&`r+)CniV zPH+OM (p0)1SWso$b8{!!|LJ=Yr_y~GUNZ*>_#@fJH7x4I{$lPjzU){% zu4B#aV-~k*2Z;>}{`}r#1PL#@i#geoMtOuYi8y*67w9>$M*tm9>a!4mPVgEiHine$ z*F)C-=R!C`-eV7veaSd6U)W4RLIL8K#yQQLr=Lll`HY1)>c)7IkerEdW^o34m3-wW z3q#neNOGMk;mjgkcwXs57_v6J{ws_p$q|7f^C7;j6HpHApl_2q*I7u#zQxx#5zI!t z1LzaMX(WOmc+ju(&U*r0=4 6Ddf=@3kEF`lC z%WGWIK8-oZ^U(#K$KTkrlDZtU1wZCbj1Q88b3DmF0?q3(N$le*598|z@tJX<+kWHw zk;k*-3JEZCpT!2izxV@QvkEBdZ4=I!m}30+31&y4AI@hE>R3ek0pZLBj`BcXu{eS+ z#ulOX5Qpquk3=mbM6Fu ?)m5Z`0J$ye|X z_yguWW04-4SSJ6Xd&EW%$`LFoVJG6kCW~A2W8BQaCWkW-&g2WkC~*@6eMyeNrU!t} zMBjOX4Za32$2hr$o-^kBzbwL;K4tu9Ydl#M31|E-eaZci7y^*U@huGK&)XrK(~G;b zCI0LYfW&29#r%-XK*R%mG7H(*a&(-9J;0b_kK#sJHVUK9F zLHPNrIA4i>7z=D?j313~&YT7$_eq~H18lb8b@JGL@`1A6O2PP%ladF}cj#NR1DuG% zcR;kEgVdeZz@~vuLHErju32MtgM2Q=qRbECvLx9SHom`NcH@NJ2f@hrqRRk+j568e z0Qjj6<`Sd}I?cGpjb}+v4 SVpHPDT-t^(&sj?#KB3PcM6l6m5(SWtu-MI8wJ0+= ze %qs&7cE$@$YOBpR#|VnB1gt2qMw|+V?JPe;#vdo3igAaf{A1r zzmZCLWxeqRyBarqo-5(Zb>#8U=AdtkLx&EXZ7xB;5U0kR0RMu{M6xAGICDKD9=0dG z5|%eTB?)IpisVT-;>V=z=dCczi`5yuBe#rs3FTuKE-vBB@0?f7zHT+ u+fQmPu-q< z_QD8f`Z=AmB 188LBUqy$FNmLE6GNQcz+zt7M;wptCi5QRFZ$%qx80rH z^mI1Dnf!salA8cx!8`8!s}X 9lsw=xQKjD_2 zA2uAt`5BQWoY{OrOc+n{(q2xa@)~ylNs3L5z6Y?`uCm&EY&rEx6V8D30M>%=VLXFP z73e%9c=YA`t~{H0XfLrY^BKKD50dRiZ(}TpZ{R0OcvW_Cg9tu=n2WZMr$(?gz&wlo zinS-&LyQZ~MmS? >DU{)bVT)=wE%MEWKO~O#@HYd&S_GezBawh%r)i)_l2D0hzYg?dqXU?wkT}I z;jJjd?D0P8h5d{1?z@a|9<0IaB_N#t lSD06$jFR#Q770@RfA;PJ+_K`j6TK&VGk#+mTQl<} zdF+uaEC)G_$9nRNZOu5nad@`JRs>0a$T`!{G|)}XIg5rS=L}8kOOr(sK|*BC6+r=6 zLI^~ZV88m+zU$mNb@#b_!9ZiN|KE4M?t8-CRjXEBt7`jyG*Q$Lq>%#-oFpdaupE;y z;z0qCgpkICfa1%#$%!Kaix;;6LnJKiqH(Qd6W8RwC3?t 4f zkR2)LO)ug%$N5Kr*{%{iP#2u(3i>RP%;4zQHP>7>ciRTY|AGZ*ymP+3gp3`!t|`$K z(5NC{dggnh_Yn-`_oo6T(0NTqS+}fnlJ1q{ji5}zS~q?GZ6#aFqs$a!t%XJ?&sqz) zEsr|~ztxnnV8Jd!9YJT{udf%o#00$YID?XJb?RQ4=#h_