From f11ccdbd782993e7e8037b738d8da9c133ba229f Mon Sep 17 00:00:00 2001 From: Shnok Date: Sun, 7 Jul 2024 17:45:22 +0800 Subject: [PATCH] combat tweaks, user packet fix --- gameserver/build.gradle | 2 +- gameserver/conf/hexid.txt | 2 +- gameserver/conf/server.properties | 4 +-- gameserver/db/l2-unity.mv.db | Bin 1273856 -> 1302528 bytes .../serverpackets/UserInfoPacket.java | 2 +- .../thread/ClientPacketHandlerThread.java | 10 +++++-- .../javaserver/thread/GameClientThread.java | 26 ++++++++++-------- .../shnok/javaserver/thread/ai/BaseAI.java | 3 ++ .../shnok/javaserver/thread/ai/PlayerAI.java | 5 ++-- 9 files changed, 34 insertions(+), 20 deletions(-) diff --git a/gameserver/build.gradle b/gameserver/build.gradle index ef38dd37..cbfef717 100644 --- a/gameserver/build.gradle +++ b/gameserver/build.gradle @@ -4,7 +4,7 @@ plugins { } group 'com.shnok.javaserver' -version '0.0.3' +version '0.0.4' repositories { mavenCentral() diff --git a/gameserver/conf/hexid.txt b/gameserver/conf/hexid.txt index 275feb44..1b705521 100644 --- a/gameserver/conf/hexid.txt +++ b/gameserver/conf/hexid.txt @@ -1,4 +1,4 @@ #the hexID to auth into login -#Wed Jul 03 11:17:46 SGT 2024 +#Sun Jul 07 17:31:41 SGT 2024 HexID=81a8ba90db0e77d303397388e25ecefa ServerID=1 diff --git a/gameserver/conf/server.properties b/gameserver/conf/server.properties index adb7939c..97ce1d68 100644 --- a/gameserver/conf/server.properties +++ b/gameserver/conf/server.properties @@ -139,8 +139,8 @@ server.world.geodata.pathfinder.simplify-path=true # --------------------------------------------------------------------------- # Logger # --------------------------------------------------------------------------- -logger.print.server-packets=true -logger.print.client-packets=true +logger.print.server-packets=false +logger.print.client-packets=false logger.print.cryptography=false logger.print.pathfinder=false logger.print.world-region=false diff --git a/gameserver/db/l2-unity.mv.db b/gameserver/db/l2-unity.mv.db index 5bc753955e6896beb32dd7a52b1aa093ac0d62cf..267f1a5817090bb07ca0719135a6908b9db86816 100644 GIT binary patch delta 57757 zcmdqKcX$)YvNvq?%ou0MvN2$iNlOM>&SY3}UJyCTwoJ}p$+F2g*v0~u3=2!n6d98< zEMQCqlXG5jdaJuevb4MBp0oG6_j$kP^&kFqRrk#FRCQNX*NmnUG8-hMHTt1;IYX(K z?!98Wl?w?qQK@N{A?9)+!NI|$VmlA$i52m|GYS{Y9v@sPzPq`9Y-e-da$%<6n7FV| zv&RP0d~K4>BhP>T;Gk^z%u#9=45hl8dzK3+)x*@gTu4+L;-GS|)`UCy96v;wutWG~ zh>r~~)xS#*bGfkSu$XXDXjrL%=Dz*9^upuJQC8DSx3VDbijt+e)!fwvsv2 zUJA39!tEvdS1xlmO!90!#PF+~QK>MbfFO7-p4tADwOuqZC1(2%$&yOcrVY9PR_#MH_Q4Pt6K&4YR7jjTJTgY@gQ_`$;jeu%M`U%$6k)w}NAIsUMXH?$ zHBcv_tPRuM@>3{yun&=0VhLVi7mFEtl#S1s z(3tS#p34hbqN0U7B128KuEePwiQx(f35}0-=!iKgHaPSjcEs$^k)^hd#HtfV#*V}| zbtF8(){&54>Pe)5kBpG8$k?o&goZ|hMuz>fp5Qg@BPH106LY9gl7b?M4WXXU^o{(R zp5X2Co)}`n?1MDS6de{E^3QsL*UajPT{-5kte!+#H?;Lb?NC=jV(i)pS7j2-WrBk> zJZrjynM`4E(f_a~VGcd9&uVix4O|OqC-hI#8YSQ`t(`62-}N(0^fMyDp`S6~(Xsz# z3SkdWLdkD8=qxz1$jpbvM$=RdvD=uKxOkk#+~SaxF~r&I3<)kKJ~YNQoD6YMHra`3 z9v5p0&e9_GDc-Eg&cW1}BfPTawK*dB)dqiy**2}iB21z~IG=4sFWMAscI;4SNTh1` zs6){)5e8d_LPMf$9TIasD#YY4tk6UJt(}Q1>Chp^NuH$6t=KqKUWTZM)O>yy3dKbQ z^)#W|8PGGXSN&d{${0$;_BEUOo9*`0Y_Q&H?`N?37S+^(wa4`XG|a6f6gjE?Nn)O# zVbB?Uc}-c>;5&Fc2k({TUvbuighk*?+EBLPrmtl^8aK1M2$T{UVuLD=|Ar&5UohH` z+&b7?l=YCRjFco7C4v71DTxFl1!&}tOrsn_Uuu04<~KCo<|!9$k2km|>kofkFwS7F zy>?v`ey?9~t-HaS1Li7p}Ot)J$_xf?B({ z#8z=}DK}TA%cZWlf#ToquXWyN2{u;k2tGGJd_}|`(_D}t^_I#@!j%Rrl?q@;h9pT5R zX9AKFlQ?nfy=c+?gMeF6ep7eVDmK?nb_jQFfjzf?bDSTCkOLk zvt~3l!_9HQrFxnNVO$X!t@>$Oq+k$^AS5m}%Y+0+M;fBy?Iy%xpI&%<`^d#|mgS#s z?_sR1hX%9gAsSsZii$&bm}TF%v*rONb%Z=NQutxqDt&gzu2)Iy>$v{R*qH!EU1)oDe93TF_CzAMX< z2S-OmhQ`^&mL;_~haSdRXSDV6XVJmdc@_LhbyM#@Br@w#@qfCMxKgko+?3^aLV{!C z;%t5gL%9%)HN*bK=0^u-T{+r1y{%t%ujmk)fgYMwinBXkJ5FcmoiVy=lI5;NEVBHYp7g0DORE(#vu+ZR0FO>+7iHeH0 z5xBmwwyWaT%{sD*UkwY|iGo2vzV7lpNnRt#ON$p^$SNjS_XX>-n_v|ZtOtU%LJ}-G z@S!BHmE=|q$2}4pr{f+A)+ag@9_NA!r5rhKYBa9a)Ryigv&Xu)C>bZw_PV&ZYNzHD zf5oh)TDlkW^=0y8Nm+|_*yT<@*iB7NYiK+7eb%H}*>byS`sLhrQ&Y^v`bRtW=@xAH zo1|Qj2s2c?sNyA#DPUO?*{Y2 z8cDgQ;(Zk#a9k@X4^@1m;$!QKTG{f>=&dUdnbSkqYkv1b0g&G`4hB@Y>J%^03F+c9c&GAstMcyyZW z!I6;>VWup*VzI3rqfA+I3(HyNILq|?Z#WEEI{a52Bg^zTIgEce`z?8YbSc1R|501W z<`96{{Sfl(DUtB7cwE9nMDvg>`K!gFy*XaBb`;*)A~tm`5{_#T)xP7>&QT4KG2AN# z8=QjuI8#(;c$UP?@jTPfD#ionT^o((N9Ky5($F*Dbpq8jHFDIl{vDDi(7)*0C*Yf_e^q~z5nRl@rI=7g;KNo zbyPN;-+y;JbPM;B<^0ve{a;M4|<0>0%SDnrQh^ne4sMMf*327PCWQfr z_8`Y>4|2?Ano7y>@Yr6y1Qr&nAS%B1{@ zC6~i!iEx;obM3veEx=6iA~JDYe?^<390R7%kg&g7e_6z^{qHTn9405O1nt5Lw%a$e zJ(>%(EqQE_lg++$q2;PAa#Cj&W(sXH3+oO5`Ae1%ub0&aGg;C9a48(FSiDY=6%{d5a<`tG&U4#gayX_#HmDxDKsV|jGr58Ld+&Zj5r+< zhTv#JbO`UMAYwv8V@=7L)$6lvRNUJCqc?i?@(;;-9_f-#jLr*h)Abf6OV|CCO=U)3 zl~~RnHhGS}EFmZVflXx&CT1l+vK(X9(2CFUq~?f-u(%LPeprHnJRFnOnBB`d#vx}N zywGmeC=-c~Ey8hyim8$a`zjCu9ML?wCTaNCM2B-o%g zd>!ay!${`;Z{DzVY&Q4NQe=1}c)R%x$yUsk%r58XxWlt1ttlkJ5E)F9mWRKs{u=x^ z4&{HEQqG$65j^s3XWjkMEt}L*DrC*q*sX-MbQyO&NUz*B`$-WY5wJscZ!D>uci)yr zGtYXsu=@_pT5DnvcY~%pY%b#7S5xf6H4WwrT?Qw(cwfpXP&@jPK;J?{>oYiQZCKPj zhimvXjjv0vHGgBbTrj$*dy18%4OV}xGKL2MrWg2KG+=QzS>pO3{2(S zAGj)qu4%HnSR0$%O2E(6+{?OIcDDI;L*qji54bp8Tr@|`B*K&YL1ltV&c-UH6F*nW zbAq4i8eyQRiJ$}T>jmcSO8nd}2=fd`68t=$n+VKnA$~sjToqcw+x`bCTbXj2DfgN3 zjVY;oJ+EAql&_L9Q&#rL%57QsBr8dZa#V3~(d=p?->~Ls?3N#L)^neuVeKEo=KAjb zjI})s#~Zr)Fcz~Jt~7SnG1l={c-q9>n`L9V_?b5}Ia8at*8xj2_dOb1xG;U(IOMrl z>ojwZ@Waf2k|8M5mH%<_>;vNMdAghU_mmMMdu8qTrmO z+y|vYE(umvS_4mn?r6oI@+emXD=Qy@9rNqjn|F-M;F{#6T$hv^Jky|LO4hk6-SS)B zO3FJ)c`qp+B;})|e3F#UlJZ4z!3$g!XLCxyT$3oFQjj5f8f|SWaENDPexY z@vuzJ;D=dw5{Pc`mf$&E?zV*a569!~aE9~c?h2OEVgDe*WI-AJe@!vrJ-?OYqkq!H zJHc|2%zMFdx}f=kBp-85YJC(OC+&X{ET;oMOY(6^-miBUNM8gi>xx|aoqLF38NAM| zf<>8u17B8>WhF)C`u!@}J1Od$B%hGv4H}2DeitmK?j*>(mD7QVvV79{Hbx4L!?3o< zqXf(8RHFsU>CVQ;@~J=F*;v7HI&hp|IrU+@ET8_95+(>19cWR<*+ju}y5uBTKI1gb zCUb`KIGZ9^PKQmE<=>qSo5mT=hfNnOepqW9>6FNvA9Aj9IX!F0V2q1>pDTDyN6r&0rz7Xf+!#6~f)@yu(}4>G%SjGfWEpe8PNQ_I zV10J8ICK^S&*_reWEpeDPDgGREGNNQ9AhBvI|ccDHn$V!H+T$GhdvT|8guE@$&S-B=F*Jb5~tlX59 zOj)@lrt>~=8mC_Gm*uB_no0)*%W-rZ6dWg+9}+Cy?X0x@VOf6mC(#`dETt!E!qAgkU-K{(>xzx5&-|Bm;S}^9;KvSWZV?lI01qqu;p98P11Y5iF;} zuF5hR2Pd0qxh8my^13cKS?WR!-ViLOyS^#QXjPmBccx%D-SsWO%IXAHecz(OVPl|j zM^>yC_qkQIaBF>AmeDFXo$!ueIrZeOU}c>U54-(&>4J|1%jw7`vW$k%si#i`%jv*pg5`AJb6G}n=`=fEaF)e+QoR(-oQ`}Y z%V<=cF8NxpoTU9mu$&J3LzdC@I$iRuU^(`+iTqCRoW%NGMicEg#y)U{b5B1CR@Pyt zUVZOe!eZy#?^f8Nj8&9ziZWhNCMe28MVX{1lNDu(qD)nkX^JvkQD!Jy_n%}r#pzm~ zIm5~Nd=VVSUdvwv%jtH%$=p5IMmQPk?}F!aWP-w*W%V1okf@*=alGA;oZ-}kQG(+n z@zH|ibfPheY*kNWp{IXiImcOW;{?m8>*Ey}J(QD*CkU2P&nF6&(}9x|89kZfW5daU z!rz=huET;o!C^CA*tOL2D9_TG*H7-1o6(vPcW-3am zMNzgW%2q`IMcJk(+ZAPpqU=QT8axUPVb$lzob_Ur`Py%0Wdrq$r0K<%k#+ zN#Zh2okA)R|Y{6zuSKO({E1d?}F3xZoWV;2&X^`y^ET=B)RpeF9T~8AnrylIH2%b|9_AByg zryd;O4CldlP_Ue?cSw=f{Aq9=7A&WZ9ucgp11&f(Di1w=LlfwN%TeW+q8wM03yPAV zC>IswlA>Hzlq-sIRZ*@f%5_D#p(r;MB~wvuDavg{xuYm|73H3y+*gzbit)6d3g5}hMn~IEagk#S$1;^>QTY|;4o)z5O zR^*d^64o8Ta_akC!E(CdJw-m{e8u~M;}|eJ5FDp7Jrpd9)6jdQ$fy4_h8_!+(~(aE zE9*c^VrYhJxoJzl^svNDYFTQiGt$ z)F9{(HsJMNslGr2)febR^#y*T`U06JZK)T+K=Cp~LwplKyi9?JuR@4dACB`h4ASR# zE(Y<5r0nB3S;njkVhT^qApXMhGl*+tk)&~1F(i-mb4&N-Y{*CJ(pK)b*zhaXajg-D z9kF(8gJ@Z3ZP3>JW;T~QBc?dMwvpF0u_w~>(neW4<3D+6gTFJ8&yrA&p8yZF-NgUI z`x{&c|JmysHO2cJkNE*dCFQM(?^Jxx@fc6t5Pnqg6GxQxXBEHDy^P}TwD5beDdL2r zeB(_JzpI$Q6>w5g5>*_j;wTkIb37#}V^kcg;y8|{C1t#d6I7hY5ud_Ol6`B5!eo^( zh2!s%GF8QCDo*EkR>E8bVUmi;9C75N$kwwJv*opn^i^-hHkuGq)izd+=Oty9inCRm z!!cb_eo=9*it{*P&ThVn3shXl@u8$_QE{t^Aa3T7q-^61#O*5X;P_ZlcB;5b#oa3I z;fTY2uZn55n|ZC?jBQFhm6ZLw4dMY652|>G<13z zU5-;^<(`W7ReZp4s;oRz@sWy;IZl(6Cn`Qw@fpYIvhrNT7b?CKH-mYuSDbhX#}PAP?^XPu;z#vnMsHJZ#%7!lKl3(-UsU|c5wpwRRQ#@D0yko*vXZFc zNEJt^IGUqXR>r6}R>g4~XUVuM;F`h01eGz7<7^q1351hXoWgOAjH?F1X(~?Vh}Lw5 zLUU%^ujTI7~&EhQ1KwgH8MuLgojl;qRcSmvAi8S{U(M@SS7p!;W6F> z>Ej%a;*eJ{L&b|6kKvG4@v@3nI3C9lui`Zoud8^2;|Uz`DrPDziE)cFPNMr#@s5gj zIiA8{uHtZnP6FA(&HT8u|d@>?l$i&AZ;)P6n zMj~Fw%;e8Xu>CDb5iexkR$s`xBPrsA%)63um)GA@-^aW!DdK(12a+P*$3*`j-p52Y zf$w9YLr4E096COE5e^+6zX*qp&tQZ@#|JUOq2tpS;n4AsjBx1qTt+zbFZg_h?qx<> z^_@+Aa@2W#jkQL$36VV89qcl=hghL-CE5f0VmKEX9$Dk47^g+oUREF3yoT;b5s zirO6d^l0^FY@-P+r*P{h!6-7AoQHmlQ`e;QF4tw=$La74jmIu!l7gKNjP*&K?#SBc_`t~F&QNsI%cGVL&vm~aOjwuB8QF{ zD&f#EO(h)qKAx_^3+?AQE5rjlafOJfE8);FeZ%Or;`yaXPC z=@8-2F()D%IwnShL&xlhaOjvK5e^;mB*LL%vP3v^%$Nv=j%gF&&@p!+96BaYghR(H zig4(dN)Zkn^C{%eZ}G$mUidc8t{~pwDHcRbvIvKcnHJ&DG2J2@I_6x2L&wC6aOjwQ z5e^+wFv6if;i(vO=rS8Vvpigmb05mstYg;Zo!o;<&PuqiVf4<#5AFSh2QOM9U0|`$ zmN{~iRB|X~TwJ6Dzi41XC--?0TTlxccXQt?v1K0M+RHtEHp|jV4>Tp{93>`b#j%xs zJtMHmccMF6h#r9@@t=Pds8Kcxz9!EaEpM+0txI&h8dM*9 zN$XP$P4!tLGl(}c(@eSZ*vco*o)q9Z>M{d#9o(&{CnM_CHC$M zwBFAPZxdnWAuL!vRkLfZ(rXe#<$WZGDpQEA+KRB+59vZc)&B4o_@mmc`c$f~(T3`4 z7N`1}YP(wdh^{@=D2}VsCPiS~V(Bgox#sG=qXzX{i&(ldC$oq_umUhuvMm9F!G?jiKc ze8#JSov{HjLKsLaipS-H#XQW{2ki9yKIOy<&F7HLXW-Fc$O|@-eD% zYId6B)O;z`w-`$GEq^kKcCCt2eQS-1SJDN)&1QdrZKoIowu`6w_LZr=LoR<(T!%N* zu;UqOXj(-LV|8uj(4H@_za>ut>RNIw>5Wek9w@p4CtKOqlLtp zM8Lj$yzo;82rS48%|=7NBD~PDG@LBP3muw3ky5-6djLk1_2?k6_yTa#;L%=UT}MOZ z2#;8ab$J9!qp_fLZ}I?t;kF^!%@6Wd^k^Wl-T*zT@FqX!g!4c0!jRz*Rf`u!Jb`(2 zJ>n%cyfr8dJ$gwjaTN^wi5Es!h6hHE{t_F%8QQh<7$C7}o{-*#7m`Opy$-yPnhW;F z@WPxu5FO7uIQtnSb@9NThR@9j_qt=jvZ$n8gPl*3fVwOqfpi^60_s*bT?njueyZ>O zf%rYrje_5EJ@I=@P8W3VE>z#A2G#d1K=pm^B#HWd3kmzTKSvrIke96RfU9JM2hOGj zKesq14j2?bCmeKxPBd86@Q^|2qJC&isvqV@Q!ig1)Zn7A(5(-@)ukb@r#~;O>JGkx zcwyZFh#Sfa8$Sb#@aQP94Fe(9NG{ebM_}R@Uf5=Y&*OPv*RRlhGA|r3!1ZaoaAXuT zOy-5-U0`pjhpWVn&VwVfJzg_*YA)=Y>wz}+oEbJR;Dw7_Va;M*Nbd*Be&vPBgJ8jL zyl|r`%v!|@x97o(wH`qdyR`x~ZScTJeRmi<*vx0zlMu+WjTc@Vho5%x!s`Vvb`KUT zZ<^aRH@vh_2x9mr63~bvBpAzd5==r1s!z;E^@;bWe&iaeAJw1gN0+DiF&;#Z$s~I0 z)^u_HaZ~&Sj*m5x<|e3aYoeAKOuSDxX-|r1I62iQa7s^qfm3Tx{j|JPKkYfu(>KxF zTeKfF_pTE>-_LLLZ4?wb%nKhcL(5|x`6c#c2Mj*xf$l|G3aMv!!F3dDI>!r2Px$=; zFSs>;XP0R z!3#gMf&6cHp~N^C^vL}i;SX<5Et=724B)X~so`N)+>C=Hm!$DVA)n;>B$pH&$tC3$;mp0nPn~BJ z?X0R1oz;@+XGi%9{+vLnpYtU}(7)WE`nmh4e%?Z(OC#>>=J%!s3#w3qg}&5a;Vq*$ zaM1>;Uz|wwOWIQX(kQC`)t~BreVJ~(bwm!de)0FL$7Li>3SRafh@mIVk`87v~UVDac-L(wCUw@zKH+*O= z=uLja-<*qZOTOl$x~)Zs0U-gR;kNRr0=HKudWVtdojo!Hf7f8@;O-7aLGS6%T;Sdz zsieB5T~T%O87%DTX_45xjZmPc=PrpYdJi}Icy5x|uLmJzfahSeo8>?|*wa;JtHL11 za8ECpK{+Ur=ou`tjaQ(>7|(n%+w%f`p5PfOvmF~@^%T!SGCLd&XJ>fUlG*-l5SZ%O zU1rBN!T33z0W!NV0~XHr)XD7ZDA>5zGmp%!w};=Cd6tyfWe@ne(zBS%?iGWg>pX*G zmbn$`Z1Sukv!~}_5_rbS?BNJ_xsx}3GaK@zd0Hj*ayD!|;Q0*=#UHTsh-WvMeb7Up zlb(UHh5c?>B4<%^8WZ$A>$y|Hq&}3r;0b5}&%(n?p0g$9RTxHH^PC_tzgysw>3IeNNh{pE z<9SYEx$DEG2cBmomfr$npLkwC!xseYUU=Tb_^~WhdgFNt4c`;+e(!lnVr5d{!6(nF z5;JUogWo)_ODrNDmN2ge7&o?n$*x{_R3$C+@bJ1Ov1%2do{!ftiB)|A0eW7jF&S=U z_u4D5I-#&Qm)CBIHCPX(yk0nG8<&I|L0(dJu(W$ebtaYSV9dSj`tV*M+2$;F?vQm%b)y2{HIk?1pQ21cs>uH z5T#UEuX-#t340wcktwS?+9Ck){t&&(z2A#`!9Y!;^1cEE^sy<)fR#jdY z-~mZByfD2mxH;6W%r6=)UXH43d;ez;-wLZ3CeD^%>_H36f;&v3Lm@7Tg&(5kl=4yoni zLEqnNBL-17;qcF1ThJKfhv7rL&`xYB0Oc)S2XQUB3)iCjs2#;1X{=Y0WZ7BXuDKVr zNgyu^k$_%hBl^`n642|T=|WI%R#N>R1Bm~&CDHH75Wd%{_|;#u|8RrokEeOL^FS)?O+*Yqi zsJOkqL90n#-6XdE0UVyn#d~-ZG)wXtgiGshaAu|#F368nfwr@~M&r`j1h?mUmBgj> zHqb8Q;=Onc<}C4QF0m_@;Po=EkrKPn3kI&_QoWu6rPp$$+$sbcH}I))uQ~MD!jF2` z0KRPFQ{`z5=(Njgvc%qGhqrsZ>PqZ=NvL{&tKd^AWIN)8w&2?*ICvaYz*r|}dD?51 z#5Ae!`mEOpC#PaylO@;3^sXBmsm;@@HBgOl-R8N(4({W5lrE(hKTOo8zia$&Sp;n`iMA&GO zPYWU;4bU{}iPy8CA=>j#AiC=3HVeKCNqFtSM!n(DEwX8E26?f7dQs;W3 z!}`4|)L+OocyTN|SmJ$DVpoG;!*cI!61!=FZmam9zr79etn)^XbAJ+C*y#O6V$Zt5 z@vYuDWcGXy+}Yv%2QGmpz~w!B^uOy2OZR(Y@bSqL#vJB4{Wu3o9QPiF2{(V(bjo`o zE)efQ<+I)x5-KI3@&)gc7#^j7_hmi_y(+`{Yu+m`&sGN7WO_ftIO!zRz3W{;W;yG_ z_=ny%a9vmjIzROuh2haAc=p2kHik#9;Orak@e(U(fHv>FUrCnIhwO^0mqhnpe|UYI<8q0;x}(Z$F*odbjw=)qFt+U zM&af(t;6ZSHhHN*TRmYrcNIU-2|7rr;=qmy@lA@qpiR$-j=3ci7xo1eS4x4zFW##q z7W!sOS)aRT{S1&@_VJWi`Ik`8&F2GJzjBbr%O^@^RdPdfozESKRc{UD{e8Aetlm<1 zmxH%ybRAyi_CcK(SHj@@KG|f}qAiRp^})Emg9cJd`k=duH9)hnKIo?6 z??S;)pQjiTtpr`9&s>a&s=?ZFKIbIXcOZNB)ZGh=AypqeG+H4m;Qq8{(`Uvg*BR<7m4nrItO!^p95$Ddcn9QK51wIyr9lva=Mm-&Igu4eZY2FB6&w!4+L6SeV3B zdi*CyNY$dVI(7>N&e4{`wABjOIA2>vW*M8|_F}H5>viGgGA+)x%WdJwN-Zv~?iGTM zYqc2g-6{fKHfnL5@pvCF(B7BW^9k^Hhc*M_n5nRTj}~q6yWX&3Kfl(e8ZhB7@6WfE zFyc5rv$6(;p5`ZX#j11K*SK0+2*WeD3VnWtkyo_WF~4m9(+%xM%x|}Vwzsv($Y~F+ z?x8X*xqH|r+>r_-siU=1gd~prNRl}oX%zH{0#tvpP==sSl_5!<4k!K@b%Orhn(EJ* ziGQvqwL3qC=yWULg@qa9;xaZi7bm=Ulp0>TL3sIPhTvayr}}F}iM}40D)={43vjbJ z(V0C|7kA?^sxDU{DEWjdp-^#X^FsR&1G5TH;|*6`iJ1`aUb`F<_B~Ke(c`XX4W)uH9B(hSb{=`iD1KO4Ntp=&F% zdV8T!9$ifgT;_l^NLNT^O$)=W!n*1hxLAM{*EN$_>)Ft%w63|#;?Kc`5M3Ra#Z-YW z;ku48>#_&hm(vZB*?_8Wsgkau%=+jd$B#NR)Wd#->a}zYWH#tNB-himk=f{B@UoGv zm~0snYFFK@Ljgh}w=WRhxzk+GcmJS4eeW`<^8PBKAB-gWAtg^Vk7}fd_K$xcd=g+3 z^izr2J$*#@ES>QA(R8wvFZNQymz&bX0k4)2zMexJc{7JP^2e{KqWFTkOTcANRT_u@KoeWc2=^|w|u>>4$$7MNV33$cmreQ|vG|V&W>fnMb z2R!Vo!(`yx^-#4tFDwa%IlXk7FeB9u8uioR3VP*1I6qLg8!eb8Bn{D_uiH2PYK+if zXtLoETu;=k#Hb|(CXCUcliHpW+D_169JA{*L`>14X-s<#ZZmXyFlqrfnxeai!OD18 zG)wm#S7yJ$;<;Q)7hA%ag}Tx*OTPo(mg){+u#yIce$%bOcOjZV-_^QF_%1|E_`Xip zL9*O?YuDSy)D$6xPwHym^KcT^moe#r|8)e3=UZ25_r0}0=QEf3g3mNn1)s5Sq9wAT zOwLE`6g}0u>WI#U$RF>pY+s4t_QWVo=zg1Mk28dx`_l#Ai^5UnO%E%W&sO4VDMn&C zXinC$=4Mpg-J+1ZSvLotNg{Nb{^36jP5+X`cM=qpVytjS07%0&qW43+}(tU6xppbFl9%uPUAw27Kh_ zDeVf?zv^z`lI0;3)%c>-4Xp@T#TU(H)EV%1_r-X%d?@&M`(j8`t0V;Y`Uc3Bn)cTj zn4bIw(^E#7`Tb!O67zpd63l*$=zz-^f}i6mNiOFZ!dx_SSfGlzfsV_wQp^;*trT%w zzGY%au>7l4)di^y3T&W;1-BSQ!$QmGLWNh-iHa{YX>hB6FY2dR7g$-u7e(Ga5f&Ebf@${? z{8rlcw8TukU{HuJDigz*h;U!jM(2|d5$%i4r~4PkUeOnq)ju2IP8DAtjAtgno9evE z(h<(p_RWq~ZYeyf&qY42CERK3i;?Q6qWJjD*IQ=ezk*LIUyNra4TAKxzMe9hJ_~Mj z^u2~@nFQDy$5l6LAT009JNC;mnAhF6gv^%rf@8gXF^F1H6R!04%_dt`{%o6dti*eg zSjmSZky6h|Vx^yvq{>_)EPIal!M~>q$%UM0F3@n1BprH>=r9WWSU6c*7V#`qw2S;q z$47l6N5`VS(uvExrxTWcNm$`A9Z*p{QKdI@fy&>geU*Gw}Zqfz8DJZYXQS% zaFOqS1p{aL;uJkS4ra~v#mv+3csM=J7X$T-;qYXUZ+;ADZh+S^Uz{yBdcunpyv_BG zP-HDX&wW=2+Q=1k?-i8Y>Wd-dqYIF8hc6~Vo*joTyM1~1QXlT@sF3!H~ff?mikmT=qRDS+tGps;eGC5~)#uBv(`K zFC~w@kb>1$XKRCp)V?7luUVs)M$xYEeZrsalA~iy z)al&xBAwWH-d{9qcABvHUcwgiG?%s9VHEYP)&>Y{y^iYJtfaNv#v7CyLgIa2jOX(egLaR(#EWD?mFHY`Ka_{suYI{O+Yg1_`J#_0Qy(6G^u?80 ziGuLut1rfYAy2`B>CrkGYQr@}&tz7q31qtKb7DO64nBG7F{rFM8P56YQSmhv!^!M= zoJVzf!^&KGTs=2v2eb0(pWu{l1Y-*5Q7g^-pidF~eoQ*Qg7D&cwBK#YL5|XTT)=cZ z1_eX(Xfa}&!mBWTtw>5=;kG@*Ur$ z2)^kZ2`c7Fx}amX5gj*^(40X0_}COt->IolVCRxl-$fk>U0(W&5QTNUN*C;QlP=gj zlTOg%I$_U~bb?;HQpAaRucY>Uwlx=Y-=qEl`|Y7;s^hBaG1qK`^s0JPPv7L_P(v@X z5w&4^9eoj*4H*iV4fG*0OFRL7P4qYk$1DZk=K2}95PJnnTj~2rZ1PaZ)lT16V$=O$ zN=N+~G-aKjLY#gATCf{%q!WscE%*v!yXo6u(xp7y>!}}z8RizyuCE@w>#vFMae#g` z1~k)P`CvWjePs%48Lr2**@juLD^dR%XMRCgKSsX|XMTR@Izf*^3*S>JIYqw}Ur*`_ zcc$yZWp*G00%z(m+B}v6TFvHT+~7 zEVz6R{8sAGiCy0Wch>09jogoi%Nz8#8n`zR*j7EphtC(l+Un>@`Z?AYUjU`k*mtFnXw8eelcb!Z2zxmkof4!@h zDc<%0>R9`Z8d*Di#b$kq+P+KJ-|zmF{5Ly&{q;lDf8Gt^|Hg-^t+sEb+V}ag?eb;+ zWUBM`NNw8!{nOpQWWN0uZJB}Jk+gry5igtd;b;4IsqOoHnP?Y}sH_jTMn^gqw#Zyo4`?|KCpjhzZyVMig{%D41+=oT&iS66m zYEL5RGszLr4!buQVocHD&Kspg+k5696UQ-yJ;)kUw!H`}A-0{;%7x%=2F_mv{x7x0 zcP~@FxNF;R>ObC4Evtvx5T`Cislu{r3j>9g35o6%);P~D6Uw+o@|n;fQZRV8L&RST_4`=jOEgaNYl6_hH&GgB-32w^07;4jNGow;m;~UjpW~l?`UBW zQqTX3KlQa}c`D<7_@};UE-vDyz-cbJ+Ksr$bt&4Fuu|JIf;P@1>>BfNnqVY0)C#mh zBY|t9i9UFQ@M_^Rg8wQ))N9A zlD)uN(qLAC-qre}AQaU}k!ozy3O8rd}9)6YBk6Sj4e~Qoe8f{oI z;Uzxd-Lh%YADH88++x$T512GEhHV=BWhSOW6Sn9ym|*YV0VgHRAk2nNhnm?mark~( zZ&>Z2!DseetH5L*&2xM|ttAZ8Yu;hfuqyNq&{*-E{f6KjsOg2Ttm!FfmLMt5CtbgG&M1yxCH#eHM23H z_yeqq(rm|sVrS@DL4*0fUp7MFDp;`08?H_YoS))ZQ<_V$xg?0M}l>cd)yEP9$tctwA4KtwUZNKX~j z6GvT15%tkLg@>9ex0UGf%Lyy|k}miahf@~)V0BGBHg^s9*3hKjj}acg^4gl-_~$=*HC@+r$pDdN?3CZRn67=ZWI;uFQ*7>Al@WM zb7?q=4rtVz>Klg<{^X(JgA~!e$)R+CO*fL}rY=OyeJBlA7izlVud&8Mt)-fw_z3t7 z99*uMg^z%HL;F=IDUAod?yDJ(Pk=SBY$MmQz8+NA%BAZ21nzI=b0+%>SiD;kgFn{X z2(J6Ma`QyPq=TAqXyvwn|51$v&D>X*c|tQ7-~Ctvx-*)o`1B+{EIg-~j*o)-;sYm5 zCy9j|gI_LdYT>*4{&4r2rVSdqvL2-Ejh;sgHR4k>(Q9$X_&wRi|8>D>aCF zo-X+2gH#{C$SCMe2~^)%9SL1Z5#8079)I-xh>H8^H0=GTS%}Yv27&1-zvq@yz)!*fo~wG7qMb3K&uV++s_UVu{p3}3Jwm;r+V z8CtsmN8m|bhK6)x!_C5M2pYon(54uhiw}ug!^e^gl`&}#^eM|w@lz|n z1p~v`nA8p$MesAvaD$i8tSP=KG74%`WT>ZE`CvyChGT5*4v4JI+TyDs=`gbvYm84; z4#R`GysIl+U~ogWP_nGDy<3y!(yb;5rh8rzL=Tzh9(RcDxj$V9uGcK$_Z~%bpRWFb z-?sx{zlOx`U!HJ)Izalf;pFhHvir!fKdee(Q}FG#xlk^Z4aY|<3T&Uv%o6(}0fOeSNfP^z2i7d)*ZQ6WWtXzaXgIFJ z?&WN)WKo{m=Un0(63EE0Mj?n%{Rl_5C&7%VMD=5H_>1~+l8QH|e!O_5o8~fMBheF8 zg-qfx9x7;Z58_X$MK~30pU~Viy}xKM?JG5$uDZ1uJE>uk)hOzdJ5qg0C4WKB45Ip( zpNXG(k&I>2)u=f+2o|p9%5bX<4cBvtYsUcF%;oEs57q%gD;Hpa;GL`kK1X(k8GBG1 zEZ;b&x}SB&mtyk5x=a1lelUG$@F#I;dN0t>$Q0hLPvQ<4{!6P;j-|UZrLeE$a{B`$y zNP5W%WANk$+urcW*Tf2?-!nAh%{>4Emg(0WX3}aozy^Ly)s~#pHu}+Vgx)4;B5xBf!cu*YInd`c$-&R zgeFmfSp_7tpTovN-Xan{El!Z&w_;K<{+_csR4gSeN0Yb@?w949X%R3qloyib;?EO3`+SMsulmFNZ>ZgYOw!!<4yd_p_=BX5{8sn+z};A>8on*l28wl(>f!6Z zrC>l;2}6uSzrwd3yl~79#`TdF<5TpZP;!8Tv*-7_kUU6ghd*YBg4aX2Qm@W~CKf3c zW5c@uBP9$`Z;ya-V@E81}>QFzHk|OBi# zgZQV)5PiC^QPiKwP4w@cDt`7CeEyquG3U-*qlV{CQboFIwlB0LIwL4u9FXxeMc~D4 zMuC?`Q~l*GL|>^znv2|lnhPinqjyMX?y~<1u6rbm_i~ki)O`}h8hL+)s)x8(gC0WW zQR!E-gq>jANeN@`V(Xyg?_6_b??T#nKEpy=K)s9768u5?1bBHxN=Hk$3J%|puAwEY z2TN~DdoU&(2yyqNooER+LxINHp!4cop+rO^@&h6frM3vEk4fWiwMO;E#4#wpt=08j=)4owjUJZeMuxDMfyP@~{K^;7YWbU{Bm?=SHA8lqoJrTUlgq`9?z zay{0o3w-vI>qxBMbEug^&V`n6E|>!4CTIzxU`t-PHU6+u2Hyg5Ikbe+ph007ozSSh zkXBUAjjQAkxL!iW2{ExAv@Ro~%bD;H?uN){Kc@_aapCyMb2bBCTaCuginEk;P_m+o znwxb69#)YjVQ}aH1FGZBbZp5)C{$a<8MfR2OX|s6aWQFzHjQK)E^Ai+Ys#xOmW7ec zWn8LlXb5htWn2SnIRJ_64N@44Itj$ApW~kgzq6m)PGn&^v49kPci<2|G6CD7gYgYvr+xm zkE-Urog>Eg)hYY{jY|@tW~AV2Sa+f&GojonU9?jgP`zt);%BQwn){<0YVP1ldWf<1Cbagi5RVwLG`LgLU$4jG>moiB0%f zd*)Xc<^p~%pXKm`t~>F=$oz*;wf4$)F@|~rr4PvWB}-7SO>-Kz(IgOelDx))rh>+E z2=Tr85qeXMsPSoK6av($0@Q`22-=sw^@IxWeM7XK=AOoHEAjnj`-}SQLyf{(Y699( z!yJ{VLC%8IAeU?u4RbvvI`DLgpmT3b7nsLN^?3&qozEzKo%Hz#DlRA=)IN$|sAq+> z5OESeYtKr)ghIc|pV1ILg`jjUsL&H2U&2o#v&c{IF&Jbcr7bOXeUf#VA>+DRs|Z98h{6Rg_trBIvS1(**__2}8m~ z_EcjiM|5bkQPhWp6NYD3-~BCISgFT`b%8#G6^!9Wt%9P(lx?^;#&4;VRQ6#cD8tgS z%2-?+cZ5=*N?(iwOT)ql1$|j+EYv8cpii6`1Q#kQCX57QAgZc@({gSF{6><3>#-&H z;j7xbuzUyftf%1ITe$~LH&phc{nJBI69qF}8%9m7SHIRgSG@X>x}GHk#v3Crw-D;%7z zbjDx0c84-EmHsk&mkXB8#!qjvuM;79zVd(C`ws9Zs_*UWW_PkcP||4uDIyAi>~6Ls zfPhFbgranilCqJaK|0bxQ6Lb7upyV;Yv=^HAT3fus0pEkUPF;CA}H{^GiPSA3Be!u z{q*~P|3{uj-`si6%-p&6oqNvQ**Uj|M*Uyujg^uT71tI(wfJg zLxT0#nztNX*Q^7zRP#`3nNRB_NiFnQD79RR`c!V&g!opC2wT@DZ1XW;Tg!22zjigU zBy4Y_atCWmsr-2$*>$XvC4T3Us_G=)#+?h1VHZy_40rdHc8Ktx9U^svQSvAn^$V44 zIbV4N$=KY4*n@aoRBczss^0f{Yud%Fo}*XY~4Vi5uD`c-YN zd0W75yJOC9UoYV-9t;oiN4^5OrT=|?rKAAQImpE4lo9{`jZ zBld9H2LdE8ZV>;bnvjiAz{pz}gu568!gvF-0B4x+f@?#B{TKxjd1fu)20s0+%D2`P zKGwv}F6-#Ju60^VE!C|)wP5!)ggrV^3w~*%mikJ@n9q_V`<|W1?&}CD_ljvPZSUQi z%6*0t-#4DH--JYo?;l4YifX_pYWjiQ3BPGiIH<9=WH>lDQNkgW2#3m^bQn!}tA<^q z?Xj7Xqr1^SXsllFh?^S<-Wv6stvsx;&_JVJzJw<>6Yz2Dk_~)m3jtr3uj|kEwGp1< z@ivw3>mXok-7=NOb{48@)Ekrd>PP|KI_zr5w|^nvd#}_`ey4|k?@SJO@E1J=e5|%V zgIoIw`0VgRHt#x6zz^lKLU^Ac0z`7MI&U{z$U&sjhkx{~Fb((jcz$jS9#7Ocjrgqb z0!HmyeR=o<0ps|c)x4BlSc^z!A3vNVtU{#Y!-r23yZh-hUUQZ(6p_vxzIm>I5&2mL zk6kDXaE(<@&QVnmQyizND3@cZYNS_7sXR)^B78yZ^6dj}sr=n-Dv!<~evI_P{8ZK0 z3$#5ho3@WTMIAW)3~i66$2QgXsnnrA>`!t*BI#7sgd^0W6E6~xAm2liuF#J5(=DYF zCuUH2@?k0`rF%=;St{X_^;uGR>O$hD4NR2E)0+^^@FSe*mL+YUc`mE6^vA3%-V)B9 zNd|KU5zg&E+vi!2vvSEo8Fo+Ws%5p4g&4Kah_6Z(GB8p`@R2J840Ugn;LX0#nj|tE4mH{s^P6-HH42QYptbmV|KFsEk7ex(*T;v0<3UxK=24C~d zHw3uI`f)t-w(t<~(-OY-zJL+DNh?0@k#GXvXf)@8p9mPQTUmJTXX5SK&VzSUxgB>^ zcQkX8*6kRcAIEa{LT+0y;S|i%-Q6&4(W4FbE9UkYCY)aI9$s#hFs=;ac3(G4`ShR1 zTb6WdkH@ULe6_z@A3SC;{%$!pJl_nt%$HSk>y0oYj+d?M1_wRnDW6-#tsh=JUf{*6 zyIs(>o-pmYst`$U{)G&w1D2*FNVw_&l{b9*sZ`$TL*<=|shn=5@{x2ZpXfm4v$tEZ zrY5(pu@iP(r_9}{ss*9qDks3fGOiR?J3;xv0SOm+#S=Cle&J9VH@MUGI|n3O^jTE?kip`0vcYXKSW+oWI?$5N#4lmQFF8W|(n7>9{fPLb zgP6w%H-9$A?6yTc(Vca&xb09++{?;a-S(;Nlh|z$CoN?ggMpKy*r*U-Vnx=phFi8e z@iF_LrrSj|%VtGu0h2bddm>Jq!H#|ioHB}Ss12MR&8F4?POHy`)CJD0%sPJrobfjM zsGf)q*t;JCXJ;^7ec-Hh?3Rdgr?W#1fOCeiH4TCDJF>(^zu!UOY)?6!u??qF4GXdtS0fx`VqfurOf9Lzq~B* z%i9vaJc0P->BO&46ThNPJo)++v1G7fn{4n08LX@kFP(VhAmUeUB7Ws#;#W!Q;ialp z^&@`OI(HUcR#$>uZ{l`Xy>v9&)D%~`#KvYc11@XCVw(e#tFwqtfh#;&{m(?a&nmY7 zF3(~`S^`&XW_LtfIg4eq0nr@h-F^}6EB z(!uSCdR-1Pd=BK7SU^YMh8wJMC*Y=EScT5OjSpFwF2K#tS&4AqkGq+71aNCAdpi=i zBy_v^KXVvDV4DoBF1qM@9 zYugdOb_(%pPY|Etb3i&yN=xEX?8K*Jx>FCWD@F$Envub}AIMfC zIO5l*5x+qoenb6u>Y=OAZfDe~iEQT=xYC_=wyi60$1Jv~8*sOct?Lfl)rGC<0o>b@ zC4ULr)158+3b?Nqn-c>}8^Wgd1nwWqlD-C}H(&|9fCrnf_};(+jo6qzz{73W$iBcs zpRu9+fEn%B!2ZA^6RM8entGo<-~8iMf|4s ziQm+f_)Uw6-*k=mA1f07BNQRU%RkDJ_)(U`W?2%OWl3z7C9zqS#1>f+TVzRWktMO^ zgnSQG8G#A_9VlWl@IDlg1iS}DFyKQdVhZp96fqS&^h-ZS4{aSyExL6# zwdgi^RNM9uwdl4H#BWQL`4{d|&uy^4y#>G*k6HPJz~>K`|01C3 zH&%Qx&}BFCS^{+4!QNU5R3B!Al7ZSRrdbBmWUv<^x}9TBmji{|2=Ba{WfaR{R@cSf0_6L<%vJgh4=%r zi9c|T_=En$AM8NDJOx32)6PR(A1MH%?1YbWeZLNExp+6GeGk&Htj4h7>YOtv_cW*fi<9r z3&0R4;v%pX6mbby6NdQil5^iaLRjvmUWK`ol` z4Yg>-MrzTF$JC;kX5usZ5}%nueC7k25bjKJO{Rg zB3=MH*e0jwo~YYH5Gr6t2tuuU65BD%(LpB;P=lTkywkjQH%WGXDqhry&TbgHFqeI4vvUw5*6TvLepNiZ~-H;*6|_ zv$7)2%8EF3USNU6fIV)rDjvY@H(4c5;8zfY7w}66 z!W-BVg75*xKoGvbUJ!&I@M{R7IIs@{Q3BW-f)KGE1W^*$7lJ4S8~{O-Mi2GtdR-Mj z&%)=nPz#>>om%jGh`SUBoF90AkQ0CYSK=?2h`-Q>_zP=^zi^-Ui-E*nj3NHw3gR#R zO#G!P?lcW^sT&zwT0#bwa>(FvC3oq>m!pWkJfHZ>mx#Yoj`%B`iN7+7_$z0Lzgn93 ztL=%uI+ggVCyBr2=N>Da;94s(xRyu;*N&1wj;FiC=QJliX9Dp#hlsykl=$n7iN8LM z`0M+Kzo8@kMg!t+d`J9^UCrh7%URd5x(a-3S=~&PdNBM@Idsh+_@VN^q3}Z$fI|?O zR0PH%GIV#FA9|EU@vH04+ z>7TGMb%4`avypXyGh48s9|32yWdrL0XTQt(d<>jbp2gG$&aKY6H2}^DVo?o&^YyHA zBjCIbS^H0b3u~}ep}++$ta)SL;-ai^n26nZgC@GEs@Ns{Z>UO;_HTYeGk~|ow3d4O z=NW{zSJU=8yQzHl6qWBi@s;czl%VoMdAk3XHe~l`AZ`D3)^W-1@ovK3ZqoLrWskeG z5hsIw@6=i{_+tza&yszm^7BK-C4BKv+OAd=m&$5&2%&4|)*_GPRedGYE~c_@z9cY-h6mV9kP*P;&@S89WutH^x}^{*L{jb zFBb67aB<6zzwzld-4HB#F`Ad?t{bjVAAG^5$LIzi2}fP--AAOd@PoJkx=|YSk?GuT zh>mI0=iT_~;ks!Wb#@dF`%agjQD2+Q&&TPGVzo^hs=!86FYLwBf6!gRninPPZx>?-&r@q*`#3J2LjY`E?vTlq< zRg{-qC0goA@U-C6vxnXmatSE-OTpvz5_7c0|T_YVIf zT_@<&0jrqis4hODL)Dvz|tn1U^eRQswo!yq)KHkmlWVX@&vy$)&Rq$`3!@th9G*g+GEXsG zp3gKm&}xw@;v!bWf01IjBA=zfVzJu0bhWyw)Gl&eeEpXw)+_T_TTM7FtnHg;1^O&k ztkPT?L`8*0Md3SNGtO#NNf+<)>$nTlO#5Ws8e|mD6=KhtSX{hjf9;98qKS)k?0DHU zT{g9tg6+)~)UanJRP`CBkoy(VY{WO()DS9rMnZu1_ln5@XWD#9Fh%8L1v?L8vBP+11nCEXoxAQ=^{x?P~j0*ZHB8h z(^Y%aRhxx%tJ&&gonJ{Tu^gvyfjkboei9YlCn~&&^nbm{%7&Z0L>ak=l`i>keh#(I zkvw)tA|k0xg?hoP)NhJeMqV?M(VV~IO8u_bX6CUCGD;m|R=Lo&lvsE|BY&mB-9t2?`WX4DA-1T)q6aiq)|^R>8pr)5mJHy6ii3*^6I2 zjc{IG?^o64oDq-dqK#Aby6zep-6y(FRCE&pgW2G;TXp;B1p$?`m)6~r_F6YdM6~P; zWv`~RmtG%e5bI>G{)5!rMIkR=|1`z?W|Is<+*fwW-6w)UotgF)s_0Ag#GI|ex()DJNZq64M9mJ zuMpf*G*b9_pHyteY8v$J9ooCMRd0o2g6#)qSM$k-FMLVBb6?u-SLx zL>3}0-5^2|F~(7>{EaogvD`OS`o<#PSl=5C0jqjrL2s<(jitM>YBv__o+7T%EvkB) zd|>DRx2Q!PI0Ag)q+`QiyljB`hZ@8lW-DrMJhg()_lilpY+^84gQb2elT=b15z1(H zu9s@4ourt4FPjF-H@&Dk+!j8Q6@wpS1LWQb6x%<<-e7iBzbOhmLDR6;09#}HXEB)2no8|8(P0-9Xcq4SD@Ji~@RWwhlEgN`Y0Wf-lt~KoyR5Kw$G$;9W|EjxD_odwj$)MPFfs>O?42jqVumN4Ref(L z{A34jHJhZ-P8wP;mKFb5u}RW2>VMTVM_ld89{ejIz4}) z_Hcpo#tQFP++Djw!|HC-c~!>h=vWvXYocR0^aC30L5=p1q_$~JM>Ux(21&~C-2zGn zx@ey$r=IR)WHATQy=~uN4=nM!Vlu!lYvb2O+Z-Ts2g8IH7u}7mC&Xyob^UNzP2AVyl1gEFq5GB}Yz^&w3!w z0S&=H_AZla+KVixTIyTHZt%QgDXiQ5Xw+a_nd_>VQRNcpzhoin%DV-}ZJ@}pUdj=WYzB_+=5W@dZc zD*T(Nty|BSkUWXB@?>gTAq%Bwo=k0GFMTCvv2#x5^~R~#UbCAp`@Bi%;GHKsIhgGh|m!cVtBpou1_LoHM9da`tI&wrz7RO&s$=e*;?By2wc?7#5$5S=EHB!bXd)>vwV;yPJ z5X(?|{hQ3~RU^vZkjyRi|1z1IQ>r;f4&MT@dx;q)n;@-eaQ@V8o%9wti7$W8ID*li2fDMJvu|GQ^}?)hu;200+}B)Y@6@^ZU}JGFcG z8+jK4^QfW%h(7#5RL*n(`EX6KZ(k>aS@Cblr1XFG^L9{4NoVFqL82GjoR zJQry-@}R#Y_F0J~pOa&wep|LjwO7 zL>$3LZ0wZb+So}S^k0rRBAh(mzY&N0&?7}0FU3E9U&P@Q04;L_Kt-Hl1u55V4><(- zOV3hHF_07myc`2LD2#m}P0)q?)0*!JIh$$9jiij3~$d~8dlp6#pb1ceKko;tA zHai7@HhnY}TX38+bG>cjA8YRw8^aZYa^JmY@`8`;{4lGt$lEbJER;C8U zxhuU@@3cyYm^Hk>_a)BbR)Oo@6z~+K1WP!LzLcHKpH@g3U-GV^;amZ+LNwgG+$hfTiqUWCZQQe7`bn{ttvV;wyF&3@(jI*zrk>{z!Z9z9dAW35LIvBUE^R@B8cYf`Rb z9Z_^!!H)IMr_6I*Y}Efi$NIjbKl1$CV6G#|cC2@jcNi8IjLJKq_No<4lphs{gI%OC zFx*YlI`VpYZ#E;e1Q}3gE8=n9_GK{;9t|f ze-xsG&aa+7ec6{ecdz2$9q-|dK9Bs@CA}2xvrHBB$B^0efcp A2LJ#7 delta 35524 zcmd44b$Ap{vp<^cSxZ)vEJ1<<3r?H}PH-oL;1WkdAh>UE*DM*_-Gdd9;1(>%5-hj` zch_6fHRQ{C-gEBrKEHeJb1(mVy82TiTUA}%Gns0V54A|X+f3Im#J6HpLZ9efA-=N> z`I)c(Y|k>C*$+dsswV!u9p288$rd-H$3anS)42lVJ2 z8{+2|;2&J2N^r$NvHkk@=z}Nn^%o=GICV-n;GquL26;_yx#6JV5^8K|#_F_YH^)`sauH z1$bBSuQ)JqVE@<{$q;^lzTQ=2x%PmFJcIcDWgK7eZl;sP>g$(x3jy5zzWnDjL)%CD z{eAbovS0rF4g>$|9Y+5*clbZtk-_h;Tk=ckbod?f^-D=Q5}-;@KXdR%8PUIy*z%&& z)RY-V)7%52^!`EodH#pEQHXte`&8zv2pI%NaQ`RhWPPwo!c+N~WG2x9< zSW2>oN<8q!No}2zt0<2FRzKOHM7}JJReWc1Y&@0ZZhDdj^lriXCo4@Hm$WB-kCFPb zW>Np+NrXRZ^L~XTI7`x3l)p-HolBfobd14%D-!)5QpYs9pkj3r$p=Qvb`wXBPlSO_W^%cCal)AKEgZT^io>pF zabk8TDXu+6@_{fy`?i^!e|CiP3dK?0uPAVyWUqcCH(by{(o;lQ35QjiEf#<0blrL@ zS5bf)nI+7$ph`09J;}~7acnrpK7$GS4#?(ml9lxO^>pKM|6aro=t2DhBka6?P<bm>>}x`W=~Pone*%xeXuyq#~6(x#hZphn8HK7qlQJqzU9q~KXK z#K$KvFAG&kSyr+{Xkai;gjM4HNrcgInhBBj|KeWGG~Bjv=G@_V6s zfKTK<`2{c1w?|@VpMi-3LcF)-T{sh=pLpc_Oooe!3H)>0zHyN$6=qcX*Sm~6Sr1CNWn2GS%9Ro+<@30pp#SrfyJObRHwv#m-j0%gSkPb2iTWq+2Kxs^MS2GW zOL;ftr`4&WPmFv3+2PL;fqtt0pC!Vd0P&RrB+y@;9sbofasGc@HRhis!dxEn4Qk;M z!Sf%!!LHxX`Glow`y{2dvK?w%5~IFI<_Wgls}#RX9C|E-t*T3-11 zMg2WN2h;K*N?Kkxt<5`qN{hY)MC%M!SM8rMB^G(;l)tfmAh(V*lm0b+qJ86h{#r<2 zD5JS(Ve!{O!YBGK6Gs1gDEVsYwh5~p-l#>&;cKOKcwFh`l;`??JefD;qIdIFkuknO z(b2L0xZXK$oY3G5@=X~&y}It7V}m6Jb`~?R z0d-jEf{J;4NlqKlf**KRN%Dhil7BSfGRqfel6Y1*iTASxo-hqxWS=;eUS;egVG?I%yU@0XfdPYXWoB!R~yzGXgWzfw2X3 z9|h(d55tN`I{5}c+v2*H0xLKX>X+8N7FZDx0?X-M2+Xt1+R~MDN^6;6vZ-o0IC-?*Uc4Jovm=Mk#3*BYOjXH&2&QqR<9=HZ>5V7Si`O`GF*3CU`_i#=XSbR0&6Kk zvrf8C0tyoZ79Rz75_L%e>sb}T`svyV zth+yK9H{%uSno=(YKYY6FT&#Cy7~eeJPjU=(#;pxFdZb1(d`x3sFP52f^Lt%#$>?9 z$=I-teV6CB;&tr&_m?P3_9&?&x#S}o?=N+Zu=IZ7Jr|K&W;DrVd)c{OxiAaI@^y%> z;7fePqJ))H#8-M?b7&zsr1B{{Kfr4Tp?4~wk9=a^xNy$_5&6o_&=ITZZY`Pcpp08UXu-Ws#uvoWCV74SU zwoErxVDr8}qgA@u0$a2ja@OkB32dboOxP&7Wo-%++p0Sxu#KDG-gaGvz_xUQWxI7- z1h)Mo*_AW7lYWtx)g!!O@(jAbQ=Vg-T~H}(oGTAp(o&bRyy;sNsyDJ zn4aHt!0W1RtH3VX;qDFH5rJi^VAXA1mcVW(VBme-IDy>`h3}7aBLwT6 zNqMdd3Lr}an`L}W7759=aLZIZZs%BS9m&i2p8f*uFW?|aZ+qmL4puo$j7>Cw4r3v@E-Ct}tU;gPf6idpXk#O2cu#jH05?iJ9_ z5SZBvNrm;Z1ZL?Bf`>j{VD85tp`^Znz=|$}U7q@m0xOXSF6H%21XlbBbgiTxB(T!8 z;HtMiLSSVBz{_9XUtnIFU{#=gu)zFYK#{8YZ33&32w64s(*$eK<~+wWPb53E;16fD z99o8w+{&Bm66R*-_6hq={jHx6hG!DrCXM(Ac`UXaN_@Mn7Jgj&DkOKvC*u!0jk%6D z>|CLfJmxyjA%!l(Y`ni~3*x&~vT!+4Pkf{t2~m4Uj$UM^F&7%DZ^EhyFe_BQOkg$N zf^P%qM~5zhhmG|+1Xe#3<~P^lFlu}ee8VIIH>wTC+UU0ntXVY}(q8gUtEKR>lYS|t z!U3?Pn|?i}!h+B!MvwWfYfngz*JEyt4u;mfBqzjWz_vvFFieG)p<+M%B7yZtfztye zZ}iR&b%siw@4Fe+jL_q79PkD_lBF{bUkiuF>RSuU8U}6?B}a|92veu%F~%kg2JH-e zCxMMW4so;fEd@5I7woY~w>m8o8qdSuWt~$a&vh}E$TG3($r5q1NRIDAa`)yoZn++% zsK2L)t-}@wCqC7_Xj3K#iZ_-O@8cwe3SAjbEYs2}8`rjsbfP5nZ zr(1acpakk4T;Im!A>~LO>J-l9p)Y0EU0Q^$n{9w%izU0-JYmE#J?64`r6K<+$uLW= zfo-kSSUCWkH|oO$w#F0Ux9B$sY{Nmww_Wn;dUx2eOOG?uW<8AAtH)fHb^>Z=NbcP= z4n7{zCkt%PB^Z26-yKuoLAZBPzfoXEufU8ml7CLN1#OmoguqT8hY6STeFb(t8opf7 zw-ea8Mi6#gUshljd|^b6e!9TytwDEJKT=>f&%%@k`dES8nF((n>!%9resvi2OuE+N zgS%hhSYwZh!Hl>1ErRuV(>%`&_auXiaItVhjQCAB@);Rs)M?_aE9{(4oU^)jCZ$j{qbL^f5K(LiJ1KOL^o-%ohwY9Oo~(FiEU~FQk+)O!ue@0h@YNm z=kknA#Lt{a{j;LwY+33PdhS(4Ncto>khZ{p%hc3UP-2N8RbX?w!M^2EWBwNiTa69t(yDo`Tjxv`S@)T6{VBo? z3&}DYM_IU~HgyZS`Xovmfp?W!8iiQT2` z96@6t%q84&g804biQl)F zZH6WSTlW*{?=;{tV{1>y0;#d12DIC6SRpWofFB2>@v|=zVvZO(3^$q$zHDKDlHx1srFiaEJ!+tR8jWoia?1QEs43`A<;vRT> zk%sa6aJc+kYJ4sW6Mh>O2-dIBd9FLK)W$7#FqtfID2DKGb35-pA_x0Xk8my@v)Bk< z5gxxt{U`R3d~%zG^QYF5oGB8Xo?z$wX9n77)Sc~4is#xAabC{c=W|KU+GOJgTo@A0 z@nT&I$4e&SFMTBW@+H}ITBWfG`;rT7lt#>WKc>P}jS&}pLUD-K8F9U#IRGvuBihv| z9@1Qlt1%fihIVd7T!6cHK)FIjbe(erm|et(V=Uh{C|umQQeXu<;czLVU0{WkAeJ@e zU^1)=11lO2U^4s)0p7;_xG>CscYa1(mU<~+OQ7*2E(}#LxT+DeYv3rTQqveLu#oYP zRL3X?EI1Vg)iXL{GMosL8yYKNGPJ{g$eP-4wwup!Tp}b5L_WvhN6i^oQPsG zV0Mzx9Uqpr!Il9=91;n~pu!L%PCNbMVb^dYrqIFR(9UW+hbzRTP-d+0GOiHEz>f)% z>&6U(y;F=+afNsj>d!E4!bi%9@L{$Q$JpeWFkr56H$GB6fr|5`c$pOkmlsKt?Jl%l zX2b`!d695^r4gS5mO4S$T4N7^tr!Iv8>9eSQweHrF=7^2y$F`18EXpGjm7g^_uNPp zd44CHTjs@HvdGJMHZH%CR}rs!QvaLwgm2|%h<6o8ey^ADrJW!5;W*((*#nyGb2*KLUgm)%C3 z$2L1a_+BHf+O{Rb{&XWQ`gW#6@FC+7Tp=ESpGPIb95jOUq%>NNUWKY>j5vLroCFWg zOC$5NFO0op#8t)l&7jFPj>i?^Ihb+X*hOF$yThv-Bc@RMZfJeicwS)FW<$w`#^VCZ zNq}d$67@g_EuI_WafKKSdtMnafj`TEmhYr-_-ZPcK1tVlSq%1kHQvXClo1yFlm`FD zI?!8T!p!+~B~(?JZVK#Y1{82KJrtPY68zGe9t&1Yp6e9M%q^l2$n**&4F-iuP5r9h zgzB$kDa|8`WI=_NEU0iiMEy=nNKa=aSx=)+VW3wl3S%idKhA_xn)D7#VR}l6<}-Al z^JY?TnPuUMt^-N7bO`5iz8W@;ZY7D&uOd1BUGYLc<}RLfHZ@^RX;9F`^a69?A<(#) zo?|Zj2_FiYzT?910lY0@LQCaS!j-9(t8Cp%02bgsPQH3-KX2 z7Or`la3GX@2(A20IKz3xfIZNJzVyon?W&q4VlG?)_i9Lu5DoOKBQ`P2@!v^C)qTkA(qtD|YAz#<01#V%4$2X}~$ zGU1T#(hXk5ns69)t^n2G9-Nv5V(D|4tRIp||%JZDpK{AN9jSS(FKyTZ<~ z-U5>AFC%Oqdv4Mx^jvxxTsdWGiL1d%Q0A;;-;{pu0D%sD6@JMU^h}rHFxUiEp zj;#-p9DdBgMwHy2j2 zfD{O+E%gMi1LZL?HZfLk*&u1D%Hc+^rdYoq({F>DyvoQ(0eBe;I|XQbET70Ernx$*v9zew(_CqA(N zVITK!&iA$0$#Y32vV77f!hVkl`)Av^;(+7f90zVE93;=9gQweg|B&9)KeP)?bNgnY z=f;G9X13X)WHVf#$Xs)MrL@e8oo{wkvecz8Y_YkhlFhjT3znOI;S+8TSg_iRnRP)p zv|MlYQnEFBVf1FRLCIE3fmvzhN=mln5ggoQHYwSL9JsL89H?YzMZxiaxw4XF420k# zW=ADEAVS>}Qj{E71LaSfa|L!H9bC_w7YOXQ61HA6AHZ?m0Qy`pW6nPJ6MV0mF^gZ! zfEPLD?YPj1fn|5iTXCUt16naiP;2rad=fKF%!+Enk}l3)Uy?a}_0} z?`&!*hHW4N45u}qV#FLW%*d(KKWe0%>sg1AoJ_Ad6r+1(^Zqdj)IT=P#^rIbZXCyV zr~V1uEnJ@1G=k%#wh<0i>B5sckxQraCSs~QhNktU1E!2adQ^r+Ue2|ZtYQXC^K-`e(aRH720Fjz50dk$I%ED0 z>;V01I$sr7)y2>>)EU!t&3O>oz!`^c=q#w*#5o(EA9F$7!ubkjk+pCu%sE|P%~N4v zgfqUk2E?_tecBnIbc}Nce9AfmqvM_X<5SiI_|(%G zA8+E$!-zy@TtD<22XB&`adz(U9{LS*9w@M0ui@zs=ew$ifo+~B94Yb^C(P#dUsLae2 zggC0HIB_!K=ssf4DTv8a#AZ_w$F3H=ry-6xB)U#V9REQ4B;mMU;`JF478KKGB2M%d zm(D_*&{iBX8*y?!F?J5(r0HVA6vV0P#0oaVDQ86ET*T>*#kYvoY2kSeTDeL7osXt* zyR0hOl(4Oya3=AqP7%LaLHz0v;#c=0e)UF~e@OhABE+w0L;RW<#IHHql)p$)tksdi z+D4?Xb`mM9J=v6Bc%7Q~b#;kfH;oPrc&SD8I;=v_|wm@;kQbaLK9KQ@P zwYS)PIpX|DVv`k!^EQf=S0XOFBs#Bh{>TTq>4srPp@%4JdWuL`o8xU7M6CZ6vT=7!8y9sgiUGe5-3Ejo)EzV!9t3C5PwEi{y z;0=}O2X9C?%MG+aw)lo;#BVG|{Kk0VH?En+^)@~tep4ypH$@S@X*uzm?h?Pb81b7s zpCu1%UPKC;Z<4~6LZq;z-C2I(Eh6z-vWefCkNB;viQhVh_^lV4l85$gbH2{jv=?n@ z_)FJ!5@&8lT-R2dvIB8rV{!aW#0|~Fe`qUTA(gImPnrw|V;7Yk>ihYl^u^U$_r z`oY@{(huJDt0^~7T6I0)aN^VU5uf&z`0YW&Zy!Yb_Fcqp|3Lf>KjL>J5x-*_@jEag zq(6ZucFG~KQx1upa!BlyLt>X461(J(*d>R=E;%H2%OSBlN*+VMPosy9=88AY;4eK| zNW5|u@kkNz!a2m_X7S8<#A7<~L>A&nqj>lN;t7SAei1QKDZ(YhQ#Hlyml4nSikt0- zrvt=wR}jyY6<1~>o-HXZxr&(ODbBx!cpf9-I^so)h#QC(Fd}XuUdD*XLA-vM*Kd3_eOq*Xig@p$ zsDFld*Dh+FBR346Myg; z@rUvge<*_ZLpI_MT_*l8Mg;fJVL2oY%OP=C4v8ajNF0$v;)om)N92$=Du={TIV6sb zm&ef5-{_&wz2?Tbd}W^!#YhF>*GRDwL;MmWwiOV+FBQX-h~MUj%~Xg#=ZX#0h(9KY zp&G>BW5pU;#9tG{U`Is79?{5L{a5k58=~o*_$t54SF0&2 z&q2om$e_mtkU@`aCxae)O9nmeP5kjb#2?>G{P7pWpQu3miJrutSV#PcT;fl95`Qw5 z_>&kA+(9Shh&Uxj#3?x{3XZYqSo z)EpqLbw_lqEUqYw=u%Q#Tm&&+DREv=L`!=yr5IxVFmZ+lqFY;Wa&g3h4aIRK5DPRD zttAoN>x;umAr=}g4lIpWWQ5q)6R~iT*sBa;v7TaFS;V4!#K>}p#k+}}$|HKjift<( zmRur+RYWY2A~vgpSlT8wtc+M{vKZ=xSZ0h^!yD0aq8RLhSPmn?7d=#Ne4d9+pCF5# zQISQ@)Fq3a8A}#DbC~$E4#c0WN&MMS#Gg%<`R~M^3nBj8P~y)4@#j7fe;y-(d+59z z66fWRI4_4pmK+jUa!6#!A(17A#05DdF32HqVVyjL^82HQ%KsAI`QtCG^j>@!fLQT^ z_@oM=*HiI9AY$eF;_V*FvmPQ%tLk7>p572QdgEA{4PIMnql25R8a=h}AJ7>LXUeh-iRV6Cs7>W_m6g?Cgn&+X5?Z~2-p8520@d{b=l7%dKsWtJJ<`94B z0`Zqk#9wYs{N?GyUp_;;-HCX6BjW9oh__=za1ULPL*j}Y5?ADqxFUx{wj2`Ka!6#$ zA(1VIM7A6fS3~$1`pD{z6N6gdk8H44^lOP&f4f+@6=EY0%Y`8}Tql-ljo4(fSS%c| z@fxvE8^mTe#e5NnO>;zZTf`O@MO{0@=BGty!*BX-Xu1zH4T|0i3JL$S|8eu5$*T)cl{gBN6CjLeZ;%|&3{>FadZ+s*E zW-#$LhY){r_gQ)YbMqr9ODX8k!)1|zb;CKRC%PsY=b&DQQ8))B zAjW|0J;IUKQn3315?#C~PO`6Cer zwi9im5C?P?XIc>lM~G9B5eGF9$B#xF+Eh#)gE*wNID9PP@L}ShafrjLV$yiTk$uI4 z35X*Git!T>t%+jPB*anCV&}<-qhrK&QxKEqi>;?3j-4YmpN2R_6dO%P96w2{I|Fgt zbg|}4#EBEckXeWm_KN|t5htgM-g6KqrHK_%5T|YsJ#C0nwu;5)B2Hf>7EYD$IOG>y z<}0i-em_+dq}YF`qIZ9fT-~_GAD1P}tw#M%T9N!TmgHySvbo;#)g-?-n#$#u58ODu zR#N|)^3?yf72&%<)c<~CszY1p3FgByH-5k;S0X+KWOMmThg6PVtvPExXc`S-jJR(3yMqUyEI{QtHF!;E&)pQZ1qz`0f&^g7u=xw5|}OFD;3Y+%@`$lnzGb znxYiG8lH+LYAQ;LEk?U);iB4gtCBg+fiXH)Pe+yT^qIm{d_5n(sySzIRco1RH}Ohg z*J*tMT{codW-X?COJ?Tv>r!Fn1(*M^em&Ezu!AA5Ak#aqAk#bOPidxi@SoP-<(mIZ zA)D)pKLuspe@ZojsZdiY#v2k6=o8~D7f1Sd%k_6Yyg<`G+Ry(_ftgR0U>|QRnE$6z zU8*DjOGymLyFR#vw z3-HgYmFIU59V_2K%9iPc4Sy9OdQ)+xi+5hJUJSn$R-Iu<=$~r^`$t9pxt5=Ir2K1r zvD(nr+b=dcuN+mnmXG(J@;T{R*1xZX#iV)Fs7wF+$iE9=`K7Dmm3&t5|Cf6FfPbm? ztnwcf%6k2AgkQklm9l?V_Wk7spFm!!YW4YJcptw%6|#9Z6&39BUp7F9{g?ate^@>% z-C4@Wg&HH?Ltc3J1pRx(VSup1-3#V)aNWjK2?eVEmoipsAeOQ6dSUMvKW}d=V=$^MDLzpE{S|EiS?2#O30{-;*5 zvrp`wy4qMCJAdkAY0HMZtu%t-QEX`rm=ap`}|MQN(`@?IJ~(Rn#1M#?m}mqsL3gYWw9N@AnsvHl;I#CrcrNo)|6 z#K!z*C9&QA_ex^_8ruI<;^vjUihXCemgpgu#{K50rxbf1||PIjDhZM~7RU%==HB_h0e&&*+W)CxW8`tKgXN3*d#`zpRca z+J&wug=SRytG+iD8h4GOb4ik2vL#t;u2JMy zX67iI#nC+!?l4ZHu&GsjQFchVccBE-G%CW>s`ipB1}||b3Og-|O=`t@h;&!vs#U=` zihK@Y@r^F!VQ>kBm$r3_j-PHTRCHyx^jZ9h`76vJOp_`wlN|~K$hepK3s$%Dm3ev9 zZl*fVRF9eJ7gMF;P7jLo4&k@Om-AhU!MF;F1q#-61$b0aSQzVk9;$dLjEqI+Kz$#D znX$;1(9Ta`U>YGcZuo6Qc`+eC(MU9VxhlocfeK&P6`(kvfD?g=mI_A)2Z!!Ge&123 zQl6()(Bmz+H=aeekWxV`t44Z#kNRT!CW^JJd%Vb+D(c(vIr6o*q9&YLBMwNwGd5_5Sh9!0yTYKf#|pmHMzTYZXVM?MlO2j) zvT-bSs6hVw6;%0El^q;}r2{L&s2+;N0vq}miu6|ChYmxl!sWh-VjAms!~drnz~E;D z|JxhDB(sD%QZ4#_v;j;vuK54*1~6BxMJBbBzq7%8b~;_=@rC# z_P)gR%2cFrR_0kam&@+4aV$5E^zk<7+_gBazzTytzD_JcqIZ?Sjb$A&_!OL#v z{oac#9DSmR_bpGn?`PuuPEf!9TnpC=h~{4c7Zgpy6;;^OX3$``qBs`h&W4_&6ov5X z>3c9?w4y$KJD33H$0_hrYg-0%oTRA4zpt4xRe@#AOIyR(8B$~M6c{mE5h$=_S7Db; z(pgms9*R<9<3Mm-C^fcpfI3U0#^#NXv|MUz`vS{WNe%c8S!)&U0^45{UTlyW2YkSB zi`2*n2hTLAacD4v?vxrQr$9H58mGs@$bAYw{21pqY|l^x;m0^Z@Zyjn80*poLYZSy znNV1({RavhZ|Kuszq1qGTtM4Md zhOAe!8OgQWE&RAzPr^CY-o>k4k{#-dA%#%c*L91KLfvOJu2>IHD2cj-5sg%t`5|?FE!pyhk=iz#)o^b;fbQWz`j(1?B@z!{DP(cIK7rARtIXn zlNySdFyN!qP=0~+U!;b%G~E6!HB5=%`dezabcBYCVZ(VGj8sVt%Ujs4l^O*?AXg_f zip4`=lhi2D5?Z-PjpB=8LO!WcYA5V3!0HLs@|rx?HNHlcXtKr5E!0%DRI`p`spdY! zx6lyZ;~@% zgRZ?;E8N>agzbsguqGGEb78mkWTD8)WRWOF7K*xR;}(nFM10IR>W_`I@cy{!)E{5a z#^v~r#CN|$e2*=}_v{AZ4?{|s#{>%92i)CXgK~R6`XHIwnQwK?nDWPzCsMMJ320kOD#)-qf{7olAb$8M;zx)ikK|u}COeD@wej;?3)%_a zSjcg`)VSFlN}plHux4){)IZN~nz@w<(HEu0-HniJmm0ZeVewU|@$4S#yCF4R zF}Qk5YP?jyhr0}u@tdOH^-vlNpFhK-T&eNBDcpM|HGY+bkXKUU=NL$ND>W4D;Kc{2 zp{xS+zA*fzPd6Ese`lRBoA%uOTSAvJ(3J_;aNYz5R8k|K0g5nA_)M(!a9GgjvPL-i?OQ{ik52m)38ga|u zY=qS4*#rz7gm}!Mr(sZMp%3QJk&xR>YV>^p?P8?H;H8imj}7b4Keh464olXMVV3ez z%w&gUgUBGuqp5#Iod|Bom30YMHOS`j>Tr_RbRt~aBbE2B>qq?h@orq+u#EaQt|8pC z(T&F3=Izw6B_o?FZao#jaoYuw)9#VH{aY&U->I?_zOZoI^}>xKXd-C6;*o%^8zMmO z1i^}x%^C2jkAPphjvWA-`U^X-viT)M4i<)D+AIh;!vwXGP13-_QG#B{Yyt3YjNq+g zvwA?Oi2{E2y{Hq^ohtY#*}R1?bf!>J$yP0ZB`HD!C0iKnZ`i^WX6s7OxX3DA~c|aC(z~1r__;;lnloKg&N+5ZrbNwUq407ihOv zh*q-mcOWA}QofW5&khSB7WuA&vBw4c>ip7i7@H|zHOKXW@aCLQNNK(6l9w*`bRmFo6&C9}m z%z%^NN45Z%0V8484PicJz*o@nwt$62?+(MwdqNhjC-cFkN5Um6)WdJJp9&YTP_G5F zekokR#J2^?zZLFa;(GJ_qL^vYZmLZqQoTR}mZ58a?womz6_?xNw*Zb8&MxH^`-V zWSGlS2<@^#ugD9$?3UDjwI<=UU^_qVx`&L<32$T(e{*Lz=W}fGO7qqr3-7os=g~Xf zqnv;LgH6%WfNBYJHDAw&cr;o39kAp zw_=`Cz@#AMM$B_NAfTG^1a5yd27cC*sMh^qOQ_UnTN1i9P~wY*j=7Mpi4sd0x)|YN zbIBV~QLryexd7AKZit9b;?qKGFpO!hoQ~;jCpdRj&c=$~#;~fJ62Ct0n+2XR%CVT< zmcYh%CC*vHSA$b8djCe|#pDjm=nI!MeaH&vlRGC*s^~WT7X#Rw&uwX+N^ivoPeaemF9V*_mA!EHs|ZM$CE0gbMJQoY z4#C~8I>RDSiBIMmGojoJmDya+6~sluxD?zBcZkc*!CFcx%Al*@2WgX6IIxl*ZQzw5z{*U~T&sz9Ij zQj9xbA!w7s^ypggJDoH6*}Gzw>>MNLep2- z2kSjmxS>x-F1VLh;Xn_z!P!cxB)%T1=_8%6RvH}gSJlEi@eNpzDifbAo5H!Osx`PC z`U(SUs<6_t<>^13Q&=XD0rK@G!?@KT!{je&;fBfok@^eJgr+EXkopVFAw73m&MOLc zBDqLy(l1(&zEB53fJOP z-EjZEZ4lB^brKWcVh|ElX#yLW0lSk_H3T-=0G|e^@b%3&4R{VwHN=fx-a_BulEY?B zhx?;cn04orfl*_m6Q&*j^90pG+~_3{HcwWq!^g?_&~~~C3p*EVg$}b-{z|sIG0d8) z!lb?01ViVmu)2C<-#pJ%C}rV>sOU@vs`!NrQt6qU_gB77ve$9qy?0Q*PZ}B07l`-U zN&Wt7NiSe2$yFv>_;~_*g>wvQPT5isj19?iA+<@dYIz%%tL3Bq>dth58XnYNvw)0W z?Ods&Y@DUVyEgoX2PQ&?os7evQq)DEnW2iAA;4e=8zQr7a}3)m#Y9hXPs|m?jsww!ItqkZdt8h`6`xNw7Ralkwd>`DnA&tUU#bD%Z)p}eX zt%9=mRWEUU6a)DmtEws4w-M0hnd&w^7~;kxuT*1keN+VYy;a@E^-&jC@=-Mj*GGGy z>{r!W!K#bN^IT|AGC*CYaBh%#0)=#ajfKk%RH+;rT1akWAiYLENN)Vi#`z{WbX?Or z)ZdJDA6GPgNOFtIcCOd*q?|2V9iaomHjqN=rG(+Bgl)#tg(GG~@B`bH7-M1mw=}Y)a8_{YkROXRjZV&(>ic(ss1UjZa<+=xEg~az6Km@E1kL52$Af4xjbGb{3g=5!blDqXLIkLMO?~m$F28|wJ=W@(&!dP0_ zDB_|?j+dvg?hV7aUJsve{zRwf>0#j=J%5v8uh%3e+$F`{7pOn+0(r2{H5=FOdzIv* zd!*klCzYP)ns!q+VF?zP-%a|heY-$hjQRq;3S109-PKswJmfJHOHkvZ-H6R#@1w>v zH?{#x?5}<%u;e+=f3O;#siu8^Wy95_lx(IMPFU671eQ`Bj*LZ{G0_Z*CaQ6G-22cKQiZ5$s6ZTCvCa313&1LMV- zm7eFi0p8i%A_J?EMF!O%3k|M8@{mSuoFCdcoa3-MBoCMSN66H6=YmE@ z&~;ZnL+TMJlrR2-!za{EN_OiJoI9xT|-84Cvr^~@T z<8lPI&`deM&B{vU@@zXv|q4ixCZm*OcfloYH$Kh!H*ioYH%}(xqtS{N>;4Suyb>)kt2ESb~4Yp zHDs>!O9(eCa^rd%@%@#wu-F6^j+=Lr8Mo{u+?t-v`?qDJa!iv)%=W#czhkRB&+S}i z=L)-)5$;|>3b2??v`6mWyO>V6Po4+&r;>j9TpK?=V;F5lF>(_6%~ljnPm+G>yh?Cz zn&u`x*ePMrEKL?Z*u_C_o8;0}v!K~L4bE6wTSDj}O$fffN(SpP4enB~tvYO7CHZMb zCTv=#!4Y@xGwj)x#DKiB3%le5y9Z^lEz3(^Vi_JRnz<{duIB|_tCk_(^UT$rP| zg&80nD&N(7#rNEIpxi@E3O3%rfn4;Z^=sb$lcG3~NrpOjC7c`LP!<{H@G%RQk8C0S z=(bcYAKOQUJbr}wPsk(mWG?Zi-cf(%H_|)fLh{*Cgy$-y(mZ#*rW-$DRyZkM=t+2S zWGe5!luG>Nog~|jMezPBatg?PK=RdZsp9MxnppPB5x%^T?EiBmlzpptf=jda;PO%O znran1_@Y^huj)6$v>zHAX1Y(i=4vrt=6?bQlv-SGxU_^Et+tMm6;*(TL5p7<7g`5N z&RWd7o}XY*J}tgLEpxNv)W!^65-OwwTq z;M_>tOv$>OgKo{V9hI!ZEy!r4EvvM~gyf~k>#ef6Ep9{--t6nf<($zJ&9`F7iMNAD zzGEc$&La!gyL%~|yVGf>;&MUH6i;%oS1_DTi&EX%ZFObxbG98{u3=uh+l3%{TJHpxR4nO-(G9+ zDN!f~JKk%r=Ml-5Z<@?2M999gX70J2D_VPvt=!^l#eJqXKmq5iU+ZQOF@ zI=OKyA48U|(2wMbwCZD(DBrTm!y>qz*F-wrdqOJDm&|7ho!ECAozQP2q5ohyAV5A* zm1Md=;8fBNnm~N;R0}_G$OwA%l{y?fH|a1u819Jc?n&2SjTNJmrD)*5SjQij)fzzh zM8|!Y)gocYR7X2zwK>pyrX#KbRxW`?DU!vP)q+sb5l85z-4MIb5nn#7I|&PyI^rUI zXEy9v>4;@DJ3qtqwT?Jg($7KqMoB0A6TI6ho#&(mUha_mbnFuR07qOsp2A(u_B-OM zkSqZ*4?5z?#eNdD9hJi6!ZX-&QabaUs&M6uBTl9{mv>)q#7E2A0`TIpBYti9@C*FD zD!Kc)KODd5cuBCn%*}IL)dOUYYFo%|)tA`0J!;G)tT}`1R%;gVwI_yizRplLj-j-e zV0GoOT5llf*B?aKV5EiXHSAB=D9OgtC2K4X<|Z+8;-+2gT(MaP!sbl~Thxu<{Vf|< zIJOGO<``C$_|}2)qn!0FdhSJeID6OeAm*|jF#Vy__^=C_KXJsR{1@EF>V;(S?;c=y zBiYVj3gr9Xh`CIe32#0-;uNEQ1n}JvAJeqYA@jE*F8|EO;i}+-$BQgip_22@qS%={b)0WC$zi zgl-8;hZ<#^j^JKMw}Dk~!t@>F2oEbe;j>HVA^5-AJNwus$~caf>lW-|%VGxmL&Xgc z6DHB#b6nTXgiHsKmxMW}8?XVpcI|kTu@MobwgKZLgvD_iQ%O|Rhz612<{si?3?vGK zXf(vv2*W=hm>>)B1&Ja4?w-5no?F{>Oj&~Qujbb7db#_3p5Jq~eV*@Sj9|cc_%G7q z)4prY9pq@C_UrR%$^Pl+5Ik<~W|uBl-=d$1$5+!cRJNL)nR4UQFWeH;-(R$uo~gw( z^z#)n=yv4<`ntqJf4-zYsDFNG-&p;18KLi28Ks~+Z48&8<@5`~`l4HLp?VG7L1ZO; zjV_`)sF@wqceLCXURTV_(YIFyPwTI%<`{oh4Hl!h!h-2!cQJzN^VsWqo_iGL^p%a| z`MGFvhOqD&*;j(Z456xz^esR@Vf8k0rW`fHgQcrvT?ML#yRr4;{8Cis6zU!#i$iE1 z3}x>VR}^i9<;2&JmKAXBgpH@jf;DIfJcsEdAJn2J;qlA2B!4}E?%Ftye7XU>2lJSZ z$@&Ha7ygBAvN?v}woEN0TeqMqfWDJF(})fN`dy@88-m(;t%+Q1LS67o`A^cm1Ib{^ z`N@Ty2YS&{CUVj&gHSo8}7b$4S;(2u7vO z@5%3b5Zo6W{G9adMbN|!`$_wL1a0KlMe=qBg8PBbiec?>1oOjFJ*1%*X##3xpVQ zK`v7^rAhU~cF(AxL8lo$AtjGA#Q2vfAG&H?MmG!gfLJ zagVnoAjOh^0wJFaftuKqfR>3-Lt_(hGLOw?<~@qo6xmqfqpmU8BMmi0iVKAnqnc2( zP!rj5+i2orZ!(c>OirHK^KOo_Jflbb<>e_kytT$~jBx&1nk;DP)-ls!BW9*?n%pjC zz(%qLSd8k`+Itoo$=Jh@7!&ol2&czIEIkgZMHSMU@vmK?DX{UCXcceNDqckl6nK69 zuzDa?R)xK+aH+SLIx|}|6ik-ttxKa=4lsLIl5x~lx!9{!ZaGFEWZgfilg0zjf{nsg zpzZWJQp5vqaJl6#K`Ope3Z!bDLNhQNA*`^4!bH6InH3JDy<;OPtB6 zU+lpT2!=amjK63cP*|-!a)#NRp79A|I@q05@70Dy%`~Q4U_ReaW_rh=zH8uF+JwvF zn?~o`YMvniKV^}w5k-*#A%8VRL^KhRMBPzNjfgZ55k1b=j);V(g+=R(rzwih?~hP6F=JCo!=^ltO?^}8~i{|>3!P9j%AVXijN7?Hv>*x+g)6&phzX*o9ZtDDG%Z8T2OuWW31#wBIL>`=pR zSF6;gT66EEy-xHg{;;-4hqhZ$!LSsExe-!AYIp0(^dRwMSRi2wq(Brv3Y#EF3?w-X zNN_Ky)I{nF**uUg#9#-h0DHNmIIzTnL=2F6(}Ogd [CLIENT] Clear packet {} : {}", packet.getData().length, - Arrays.toString(packet.getData())); + log.debug("---> [CLIENT] Clear packet {} : {}", data.length, + Arrays.toString(data)); } - gameCrypt.encrypt(packet.getData(), 0, packet.getData().length); + gameCrypt.encrypt(data, 0, data.length); if(printCryptography) { - log.debug("---> [CLIENT] Encrypted packet {} : {}", packet.getData().length, - Arrays.toString(packet.getData())); + log.debug("---> [CLIENT] Encrypted packet {} : {}", data.length, + Arrays.toString(data)); } } else if(printCryptography) { - log.debug("---> [CLIENT] Clear packet {} : {}", packet.getData().length, - Arrays.toString(packet.getData())); + log.debug("---> [CLIENT] Clear packet {} : {}", data.length, + Arrays.toString(data)); } try { synchronized (out) { - out.write((byte)(packet.getData().length) & 0xff); - out.write((byte)((packet.getData().length) >> 8) & 0xff); + out.write((byte)(data.length) & 0xff); + out.write((byte)((data.length) >> 8) & 0xff); - for (byte b : packet.getData()) { + for (byte b : data) { out.write(b & 0xFF); } out.flush(); diff --git a/gameserver/src/main/java/com/shnok/javaserver/thread/ai/BaseAI.java b/gameserver/src/main/java/com/shnok/javaserver/thread/ai/BaseAI.java index 218f4fbe..f4b37836 100644 --- a/gameserver/src/main/java/com/shnok/javaserver/thread/ai/BaseAI.java +++ b/gameserver/src/main/java/com/shnok/javaserver/thread/ai/BaseAI.java @@ -46,6 +46,9 @@ public BaseAI(Entity owner) { ========================= */ public void notifyEvent(Event evt) { + if(server.printAi()) { + log.debug("[AI][{}] New event: {}", getOwner().getId(), evt); + } notifyEvent(evt, null); } diff --git a/gameserver/src/main/java/com/shnok/javaserver/thread/ai/PlayerAI.java b/gameserver/src/main/java/com/shnok/javaserver/thread/ai/PlayerAI.java index ea3b8e3d..8f8dee81 100644 --- a/gameserver/src/main/java/com/shnok/javaserver/thread/ai/PlayerAI.java +++ b/gameserver/src/main/java/com/shnok/javaserver/thread/ai/PlayerAI.java @@ -81,7 +81,8 @@ protected void onEvtReadyToAct() { @Override protected void onEvtCancel() { - // setIntention(Intention.INTENTION_IDLE); - clientStopAutoAttack(); + if(getIntention() == Intention.INTENTION_ATTACK) { + clientStopAutoAttack(); + } } }