From 4285178c24c647c48b8f97e15b5296aa7bc67fe8 Mon Sep 17 00:00:00 2001 From: Jackz Date: Thu, 14 Nov 2024 08:55:05 -0600 Subject: [PATCH 1/4] Add state checks --- scripting/include/randomizer/rbuild.sp | 16 +++++++++++++--- scripting/l4d2_randomizer.sp | 16 ++++++++++++++++ 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/scripting/include/randomizer/rbuild.sp b/scripting/include/randomizer/rbuild.sp index 2970678..082ac36 100644 --- a/scripting/include/randomizer/rbuild.sp +++ b/scripting/include/randomizer/rbuild.sp @@ -37,7 +37,14 @@ void OpenVariantsMenu(int client) { char id[8], display[32]; menu.AddItem("new", "New Variant"); menu.AddItem("-1", "Global Scene Variant"); - + if(!g_builder.selectedSceneData) { + ReplyToCommand(client, "Error: Missing scene data for %s", g_builder.selectedSceneId); + PrintToServer("[Randomizer] Warn: Scene %s has no data", g_builder.selectedSceneId); + } else if(!g_builder.selectedSceneData.HasKey("variants")) { + ReplyToCommand(client, "Error: Missing variants for %d", g_builder.selectedSceneId); + PrintToServer("[Randomizer] Warn: Selected scene %s has no variants", g_builder.selectedSceneId); + return; + } JSONArray variants = view_as(g_builder.selectedSceneData.Get("variants")); JSONObject varObj; JSONArray entities; @@ -102,8 +109,11 @@ int BuilderHandler_ScenesMenu(Menu menu, MenuAction action, int client, int para FakeClientCommand(client, "sm_rbuild scenes new"); OpenScenesMenu(client); } else { - FakeClientCommand(client, "sm_rbuild scenes select %s", info); - OpenVariantsMenu(client); + if(g_builder.SelectScene(info)) { + OpenVariantsMenu(client); + } else { + PrintToChat(client, "Error: Scene not found"); + } } } else if(action == MenuAction_Cancel) { if(param2 == MenuCancel_ExitBack) { diff --git a/scripting/l4d2_randomizer.sp b/scripting/l4d2_randomizer.sp index b7b6ac6..26038fc 100644 --- a/scripting/l4d2_randomizer.sp +++ b/scripting/l4d2_randomizer.sp @@ -226,6 +226,10 @@ public Action Command_CycleRandom(int client, int args) { if(client > 0) PrintCenterText(client, "Cycled flags=%d", flags); } else { + if(g_MapData.activeScenes == null) { + ReplyToCommand(client, "No map data"); + return Plugin_Handled; + } ReplyToCommand(client, "Active Scenes (%d/%d):", g_MapData.activeScenes.Length, g_MapData.scenes.Length); ActiveSceneData scene; for(int i = 0; i < g_MapData.activeScenes.Length; i++) { @@ -389,6 +393,18 @@ Action Command_RandomizerBuild(int client, int args) { obj.SetString("model", "decals/checkpointarrow01_black.vmt"); g_builder.AddEntityData(obj); ReplyToCommand(client, "Added sprite to variant #%d", g_builder.selectedVariantIndex); + } else if(StrEqual(arg, "fire")) { + if(g_builder.selectedVariantData == null) { + ReplyToCommand(client, "Please load map data, select a scene and a variant."); + return Plugin_Handled; + } + float pos[3]; + GetLookingPosition(client, Filter_IgnorePlayer, pos); + JSONObject obj = new JSONObject(); + obj.SetString("type", "env_fire"); + obj.Set("origin", VecToArray(pos)); + g_builder.AddEntityData(obj); + ReplyToCommand(client, "Added fire to variant #%d", g_builder.selectedVariantIndex); } else { ReplyToCommand(client, "Unknown arg. Try: new, load, save, scenes, cursor"); } From e54f7aa61a24f00586b5a5830df6c4b21d59bdaf Mon Sep 17 00:00:00 2001 From: Jackz Date: Thu, 14 Nov 2024 08:55:49 -0600 Subject: [PATCH 2/4] Send some data even without viewers --- plugins/adminpanel.smx | Bin 26772 -> 26906 bytes scripting/adminpanel.sp | 27 ++++++++++++++++++--------- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/plugins/adminpanel.smx b/plugins/adminpanel.smx index d6db31d6380f1d1a1020383f4fc7b8331e1cb5a1..f2ff07bcc6643030f7e4a35278245dd14b20aea6 100644 GIT binary patch literal 26906 zcmb68cT|%>*YFF22&gn0(m_Q)rT5-MKsre8LMYM_T7VD;A_6K^dNEWf(tBtDMX7<% zLJt8cp%bZ*5;)xV^FHgG?_2Bqak8$x_HSnPp0y`4bFDqsXlNK3Un3`Hbt5CY11BeY z@Q|F0?C~|S|Nj1~E6K>Hu1b%q$;eWGWMs5g+{8gnCPG0*#(2f}D~E?y_MBHt#Z6B3 z_R62{ih)na$WxX_TCZ1Bq0 z_KHET$;lM1w8xc{U$MZIhFrD6i|4#|v>EP%0e>b|gIeY$ZcmM6d-xmz{U)%q? z!v6o*2{}2s3c0v>{wKcwpr;$~f6)!-0{WlI|Bdm#7OtKkM+eXUH3tFy!$Gs#NQMwh zV5ss%%ad>UdXKz}vzwlM^Kv)VR=YudEmG=9I2GH&NW&L8beg+KHZ53Ng3xU%jK%2K z=Yi+X%_Q)hm}j^X)GUvey{ zlfX?)P*}LU?7)TD5r|s{uv}#)OUfyzz=d}Ht$Zqh6H_(h4KPOvL)qO;${oBYmdXYj z(AvD?=Oe$g6foGm^DSnsCT32S2@xX%lyLIn_wgzB_9^%A@$mNX@bj5lUwRPeGxuky zX|CHVH)c+i3BfG{?6tw_w>HzYHN*XU*uXygeSU6%Oo&@d2v#Np6%!(W31P>C*bxG@ z*<$INo9SAb;r>2sK0a;hOJ*s#^Oe}{%AW4Z?ryKb7;9{|S9HuACli7~2&g6mv> z*<#Uc&6boi^V+u9G8^oJmgdHm=A+hTud6_omzoy3cM@afuAZArh;bp{RX9vG*b1$g z`2id3b6c$Y|9CVvH?}o<`TNlPkKe{pQ*XCdXUyCqCdAdVECejE!D`rGg<6^!nOYm# zVyxjY)-f@2SJ8irnWJYyAccU@HrV*9&;xwr2}@=naj37$OJ>VUliN#^f0iCx4aomL z;RK9y?_|WxJ!3-D3jqs-fZggs9#;i9Cd30K1f3Aj=YP7g#p*lzKvlN{z3dE5!-Ib< zqV^?+&AuP;M0HFrTJAT@-!p_;E{T%Xwi?`s4`6KKA1p!NQlBxnd)cO7pmi&iDhFS8 ztYpU>nvH&oGcq_Fqd8M?wzR@!sD5D z{442|(>;E(jm=lH{X$OXg&wnwU9=0pssn$odQy)Q?(g*YN_Y>iQ1xFvDwVa#o_G2i zEJxpl7VDOt$m3|5plIa)g}07tH~pEY>C{JLiW>;8AM;~E9ZiTgT@_CRT5kjrw`v|gGSus&(?VgIb*=`{+mtw$Y-f(E}IIsttBeCe7|vwowBsDNAN6l z{#YLdZ8Tf;tP8u$NXL&}0x@nGtKuZPF)-=&*@)hEKqkC1i*}=@+Od^Q+s`1d*Ho8y zC^I$>WgPcH$`bt;x7MpKF{3td@DlT3@$YEVe);IxjQK7NZA5cgZ8<%8>N=4M{mG?HFB4)PJ7 z4YvR8|Jyhhpg{C!gEo-n4o?flom;o-3=#S-ssM7#sKquP( zX!sN2lj2&_{+t*BB(&8(xrDMd5F2g-X?aa?BX}T%bN*1>iHkvz?qDQNHa=vxg$EI0 z)>;wh>c_AtWg8awZSnvr%bQxV_UDIS3sJqQaGJ9_@LR9n%JXi&^D7Ddx)<9BWJenY zx(bU|4|_m2GjUOKJlo-OMRCImLLRfNzWJBqEVI5()iQk}0U=|!#6b|Di^29)*T1gAUh3l?cFW4fw(6%#hmnD#Fnfch z&iCx3)V1~M$C_cOvZv((qYH!Vq=}XFY9YRBxTLZ^;qFwt~xya`_g3f91!=PB`X5+G-b? zw{|X}o5$v+px%WXo3QEQ7QCo6GM)KI=>WHv3JFaMFkQQ&(UvNYHrPH~BF1wJPXJN& zt1^zefmMMs_K)pNWQRf%E|Y3|!)8kpaQi08bMJKgJAlI@C2F&|JGn<&<*f46z%|!E z=JUomyS^%x{^o(YuL&~>MC9yX>$BXXEb24b$EqdbuOZyvU3o!8m^hj=#rI3@;OjGx zHq6lqfAHjheNd?yfb4PomZMfRe(>^rNe(`TcRAao0kyjOXy!380HKn9?yhJ=EJz*}vL$a|iw=JKQ_9WvrKMccjiC6IT{7*A|RukzNL6IvAp+oB_z7rX}sN z{~8oKJoBSH$d0=3j(6yA+I{4D)33$Pv>UEvnRG``N36hED@s~xy1>c5YHLuuNA3Xg zb>;Mr?gN&jUw&fgh_1v@=1~Xu7OyxOu_gJArG#bjFs!=j-f?A`MKI@1-6+XBtjzk= zmRHM%OsY#g-52>+M1H>aYUucw1ATlCQyUJM!=hQ3uD^c+Kh%e8~WVs90 zC7bIsZ)CK#W#gdhOEB?YK(+3w&)0K|lOSKS(fDQ*q$RpiVzQ!m5KEF%Mp!Jz@Q
!S+EwuFhE^Qm?bzieAEd^@-0Y^)Evn~vfyE|>_??jDe4oR}HkP_&!LAriD-AMdYd zhTltE{`rY|oOtaZwjn_|qjl;{@y<%8D~nq#iRviJsm(4qE6A z_)f>rnOOlH7hXmjye>qE8uxmoO(-EGiLZqM>7)+OhvI(~8COX{H8gTV!*sMi?RLQCtYio$@f)JYlmEa1a(sYyWC30I7h!supJA z*#L)GZ(0>KKbjC6m!>yv%!V@{z|TqEhRt?`OQ_fjkZ?_JR&I;N^mw9Nfao4;FZ3Bl2d1QT#2C3>w*TP?*$7*x9j@#qpU$iTfGCQmg2$o z;BaMWIhm0Zp}BOyOLw}%1E&scv6U@HKVPiauQE~e4UeAW%8;h>)cUX87f!NavS>M! z6mWFh!ZjEO6)41W>iFS(6rB@_Wamk85g-}t*A86M@QI7e61^J|d1*BMwY7&+Cth-# z(>PN3;PlBHEW&b)6KVb?-6OtM`mbYJ{S80+x1ni4n};EZpKxsF8+%R#M0M2bUkeo* z)0x%KxIG{+>SQ!6v#dWUH;w&Z{Or~7d4|8$>{p1Qh-U@$b1tppHitrc|9`!Kylz$b z@KtsY2jhyN`5yb0`&)<{l5^s)bv`##5$;+~%)x1Y7qOmqck+3n|)`tjV}eGab$t9rRb%8GWzgu$&Z0-?or2lvoE!&=qpa}0Gy-}esVjAf7GCK&-!9H{n(y(iu> zz5db_gGyXt$jDaVGJ>8N?+%y$;b^_=ASAOxeb^+vV0W*(Q7QVglz^^OD&y3-EDp)# zEM#pJ4>R7C(wL|msDp`}PImaj8=b`}c_#x1?>7kGT}ah{{_xa>ZyaLB)AIY(Zp!td zRlue}Xxp);-n)F6e|B1HehK=1H43)DTOfQ_<$AN+%;nI+x(I9ESJK99jkc<7rmfh~ zpP^G69<(QYKq6FT&>z#1aVOx6@x#0yr2~VV>NLRo_VFR(2gN{22Vq-{>9t0VBV|h4 z2C}doKbpni@Dei`t~Tm_G;ey{|6HQXX*l8(cma#yy;$Oo(1y=pQfRWm7hQEoXyiNiDZ{r_cVB*zkqI339K9dv))abv z+So%<7$0AqPuX@bz=xh6SvpB^`To5l|;yG{2&po~UyK1~SXd*K(F8;{7V>#pw)^3^9gRl!=)r%64pWDGK7guaV zY8;$_*D{@J_zrS9=U6@(KbTEfW!7nGw^-X7Y{kf$^*?7l*bNu(|DuOpiBAb=uKArQ z-I%bzy{zq_`CKn!BWEb7N;6t|m|;7}6H&27t=IzZCv5e>cym9YhfWpd|G+fLk9FjG zgw+hO*)2*!n)o+sr=ly69tU=Wg3F0I?;PG z%VKL-AZG0->S9s=5LB-wC6tcbwMEVlgL{%7A*v`B=j1zzm~6J(K%ZaJM@pXmWXG~0 zinY4qEWPgz*u=)OlPTmf*_@X_ z4SSwOL(sb#$v;(q5|+DQuCwM6+m6xZIk7}FuGtKw4oEEc=es)#cOotVG;YDolSZ*LB?^O-vG5GWP!k}D0peaS5Z z2h_bOr$n8((%$2-62D}fxwnUx?E-){mdifj`Q^?j9>J)_BUf6IMj@v-ykyPevfBzY z{?aI2G@fOT?o!N>7e5}yJ3T2V`&;~Aqt*>2P`GrK6F{KZ{JM~=4FYbZlPurX?QCG* z`gRHY8NQqG9E6j+`A0)Pmgh@t+pb|d+Fo8`}ERt<)li3*_* z(yS~MNAqBi*nD*A2Kz51Wwv#F+XbinY%iR=7!`8vV15q>7)n=b@l}Kl4|gfUL*-cT zUqt`43ELGB(znlLARq)x8YA8TbKO4%ib1zHAlAxwX#qwzC=Fn*Wck_J1#T~0oK4X6 z)C?a2!o!r!Y&LUx1P-SiF{2iBWq3vMHj2zu9bxB0VMWQnZBkK+d|%xP7!nULJ)1CR zj;?R#%h6wu7hi2#@4!V$t?wQqyH66F)1CPTYH<}q=5`?U>}nu#f^vQDo9 z!zRjwve@)}N2)CE<8n_DI(T)!Eq~u!mu9P1mD)uX9W{O+=XWpxr`C_^&0#W#s&2Q( zzsB3FLK4))PzN2qRe9Kd7>2<lp2Xy4@ z&@r`f3VCS}L204>c0i9bb#n-ZcZdi6 zrgHzFaB#zLN&4JA82v?jvGiY`>lduyk)e^173GOXeaPUc6m?V)HON4!;AatA(mz}IBW{9_3g15E?^Ue?}pOr(0 zr`Lc(gnm8XI!40n%y?XUA$q#ia(}A&AWKGm?yFE(F%H7)-x*^BUj?BBKuUAkq01vD z@EX}@0<-RA{IhY}rnx8aMC{c`ENej~(;4BMJ=iKW-fv<)v+{yUYAwJZ5t7iAvzB}^ zz43y(4VMjD({F0y5)UOLd9`EraM&pf`kd3ZAGCS^SYX<KMG|R<Z*f79sA6A$oI%(_@x|@-7qL|fB z75boE`RGgsAw8}Od6%5+2j$o959v@Qu`8uZMD>2@=_k5&^34gx9W1{p#8dQ3z%n1j zdG2^ybw)Fac3nEM|Dj$;pN%hkwm{jQIUY#9rkvQS5AFb^aDspefCHM1h2qsy;OhaX z!A~qMv2Y%tziXegGk5a<-dej)2%ulo4Qs6B1Wsq}cJx>Uq~!C~*xdyu7;U@~iTT?my zaJy&_l@gBUV5Z%-eR-y~hit<^2PzMyBjZAcyiYR*Wwp92D7ajK|2><{d z@q2=&Z%%`f1kuOr%UIISLrB4sUrH)XkP$s};7Y{q!qW_~_O?Lh&NiRkDib@Riggk! zfcX!71J8-mrfY`pQYavdh_@lk?9sDIi~_g4Acu0QJ6@qrwFn0dvdOx&NBM(d-Q8RR z9n{HNvk_vNx`o_oHklm+)C1+6+0(*l99P4-VdV*GRjG@Ab?2dyj_Yz zSYO4xqe@@<)4;#QTxT75TJcg(Cl{VnV0^NV*4q~Zj88r*rJv|NOy#SBsdTc@T@q?2I$ zJ%5OQ53#d9m;YV#4pqx?-sc)X!UN;Jq-WZToCc`_VMFb-VZY(9TQ;+A6eLg=^=2jV zxKm$L;fbJ`5EPYpOpa2@I)jB2*VTI_$WJ1G5>h##e`{yQo@p+cmEfgw@Uljz9F+Vx zp3}(50Jw%v?lqEb+1<0Jhs$sMuw$SL^9*qvlvl=gNXaNi$qyIcS2C(j=23r{_x3A* z6$mOJM6N`L0y4Mxh+-_O$f~aYQeOZEYTS&g_moodLy)=5IrFrec2vGUyJ&!#HwaM<{du z)Y&87ph4ZUXD%FPcBnxem)YvMi*76q&jJw)Ess+lR z6&Y5a_HOZ(I8XZV&a~Aop&O)wtK$#4X6%jDJm2ELpfuOL4V^lWXu zx3qs2jgw{`4m!F-oDQYg;bg}6TW)QvCU7I`%CTHxqpyoYoU+$m<7l62mmv4PISfpi zS^>u0oT)NzWxJTiFGFX`Wut68wxP2-zKydF)1eSJu_(TTo-jPJ)|*t=JiFW}*qe>Y za`$Zlp^8fe{2AD_Q>mE;yp?jB)$oSy3i@Hsd~e44$FpmLQ4fwO^`g@Rw?d!F2KdbT z9UCSQn^1^*F@;|ilJhgFnR<7Z;j+r_l@X-&NJ*LpXnZo&X9h&) zr9k~ynBJe#V8KEiK>gm()3Ahp%cyf)P#C6@m;U1@u<*TqXRpgM+X>7vJ5CSwE?bLJIlTrKUsHFX$O=)=$AVk@&*f5d-w zcJ~tMjUVVJFf-RE}- zq;X-(xV!d9AbzrZ=`HfU=3&`WtLo1MN3ZYiEC@wO@qNx8dQA(DM++Z)+U6UQJJV>+ z_#H8+zCY+wF|oj5kX9`>qpdG*+HNBM%%uztMBbNw7ElJiuRNiTcG_s7^xeI46cp;JtbVkxwHOt*f|O(pjg#pz2{_Y}tDzuwud%M1u$(UWhhD2Cg*jH89x z++3$rTj7{UuiTdYj654_@y?RU5gLkq}b1}6La+f0K>E;fri zX8Et>f0iPc0gWt2RbE08ek|nuVcKi@@GE;K2>KndJWmrwP21_3r%VIp+w4XdLIMw0Ls61i#@u<)X}+E~NWbQKSu@FQv$El@Mu_I+Xeu zGF7Ki!ur8wUURQ1en=j(-aid^InSw5=Q9BdcNx(J>9!m}sIAU%Z`zqoD{+Pjlbk@B zV8k;-GYc)=H5p=r$H4?Nr(UWI+Zi6tW+=C|&kQMzEljO32z}~B+LlGVom!34K=4#7 zQd1bFD^D0Guy1YsqUpSRg z@w+#u0C1(S^gwG@O!=hy)7-L}o{L>zagIBX;qas=;YhRa!jQel{=LkvN98BMBlH-J z(ubIb7|v1(L(P1BTVc?--TUWoM@v&fIzul*rBd=zxZznIy&6Y^93_~3^R7w1$%pW= zX!pojGRE-Po8a4<*D*IRl%>~1TAX=&n{Z?k^b<6V9PZK>^3q48$%fp9Yk5K{acOoJH@1- z(JIB}fK&>mr+T5Gcyc};u4l9|Q9czn3)5*9z8yBprdMe|z_*@gWWIR4`l&rK!VaUZ zfHnoyagwZmjSksfUF#f^zT`aJA7T%n8p(TPuOg|%8+fVmggKtFDdSJ%u1LqxhYx&W zZ@&qPO{r4X=Ct^E2vTzdAv6R^Y%BP&Tn2P=($zg5b1TPZ7++F+8{_Z#>{SPsIgcr7 zN`A&Yk*mu`FQ2LXx@&+eZL@lKZX%|~#J2x6U5~89U6U7I=)PtvnhX@MJ%KN-oNi0LSdC*2%d^UVZ`hU>m4{Yg#9j|9H7k|DD3vZ> z&Fp6#!E&lHis$r=Oq)+JqNR6Am$F4CRVLI<@&Z&jqU6ZI^kx6Nn4x*^4WW7QDs*bL z@5|aLm)T6jO=wK`P1sE2O{g(crEyma&93yJ$@S;-l4Mtl=e9dF25tTAYkgBe!rA%H zX@T!|^7K5j%g#c6dcs}>k%p;K(qnhU`kcTB>K=4QtA+BbQ9(hyjQTZ*M}3JaLqPtI zZ8;9hrVywtHck~gkxSc{BsmqV&GDhPOjz=1TlZQR72q2~M1u})U9-n)FQuEI*Oz|P z^5CU1Gi+icr|+KTzQx)&DSxQmDY5!{W+nfC|2TybwxyFPvgE!pmM8Ym;V?J#E2XD! zmJnD96Z>v(T0C5*1)dyn$F^yoXYB^@R5w$)=WXs)O!95DRoLyjuD1aQhsU0*pbW;xI+3`cMBd=55Zp~Pr4e5uHVmv&C832IyY6 ze13rHPWUYK)h4}xxqUS~_Y6z&(JJr=*2w40j0a36EGbAs{Iwao=~)^FH=0_#Ow8VR z==5Wz7dYX~g}c)Q#A`d<4vt0{hq)FEbsE=TT+m48YU|kUR36v+iWlLZizs};o@&_f zYS+7Tp}r6^5xkJUpX~RieAt3Ylldxpy!b1kq7W(bccwWCNnXCnU6!Q>hD`ZFs*Kq9 zBYG2A6CM*f%;VArr2$t<0BPt`x+XFZd={}6Xo-OqW?x;jj1_(%&cFZBf^^+18Qa^XcC?5DZ4I&=K>G2+2JvqGmgZ~5x zW(@n(!Z*f3gq}Ud(pfLhPsWc{9lNK__qP$jJximExEqMRwu10iAw`~O+`W4cYU|2B z+fl00#fDUi6ypM0BNBkllomVccsZBNZoI3vX&_$KQDym4 z&VGmD`80(RsDde!$&E=booLE_Jm;H~l2|EgOfJLyro28Mw zE=enS%QQe5n=h9~m3RDtPL)nA?nSC;7e^U|JDI!i)ru0qJT;k7^p4(q_y6!X4ro>b ztI(o!R|<*|yUEpGP)% zU}-$dJ%5qC?0TycKu)=v8h|YYP7D~Qa>B5yWbb>m`;B3W|><> zsb>1xO2jo(c*yh;hl&#G;nTlH(TUr?K}*vAKf(TgFOro1p>j*#|7WECZ_cMv%pc7K zXo8`R6H{nAEc-`@G$o1A8cNFlY}o9m^P_Wu%apjWZ(L_#U(#BjYPqe3 za);jZ-+A^a^m))~a(iatrg@9i4)Wr2P>}f2F1;pyJIUwCJqCZsL{Z6UI%_=4fU~6kDPM-6@XIV)c&Rd{re6B0T3j&V5 ze;+RxZb8A44T5q3@YK0}OUa4bi^ezdW>jU3->tA*8ihc(2Qz7Y)zaAw^Ng}eCi4H;dElP)aU z#UC(eHY}7yGbx>*>1x|@TEot44LT00N?fpDu1;V>jtNs-DO4k;EKx`IdD?!?@@Hts zzuZmSXP1V4G9EsozED1K{sP#X-7Z4=CSrDBmBDlGY>~gGt^Yjc4n*K@MVDT?mGZ=8 z(v$Cx6I+*_;1hs*n*9DT0YvJExqpnsje~4Ax)^*NM-Uwk)c2cemU5=2!SJkw3&R_$ zDnBA=v#m7eUf43WzW*Wuot!8Bb1{2)ZnS=85yEu&?82Y#HKA9GgY@}Tw=MDaZrR^R zl4$JBy<3+mWN=sGu!kR88z-ZrqPwg`t^N)WUgs+Gc%J+}T10robg2s!z7#+#HqxtsJ$EO#JfCEa%;P6<|XC1xeX%8ZE>I?=qKvL7GG z!}z=2<^)xzM|9Yqr6h_)Ie%N=-S|8v{OWf{1u15OjYD993tu86|2$wX$e)c==tMM` z^5?!`6Iy$CIQ7a^UHyZI^dDlKo^OaIs+dDh)=TM1~;Wb~crUkh>sm!5CERE!Q? z;#Bziou%H;!|#6s0Gy@Gd`9mx8F4|_1ty~t?O3N%eLffN+q3V}h^r%9+co^oDoH0y z+@=pP9A*t~r}(0Z^pcIK+5Xe1fm7y*^tQ3) z#`9D^+I8Z03Fe#Bnw_j=t_9WIEnTCwowsl<8x!Sdg!x4$_nbdOegd|>A{xU; zz{=xZ5q}{kZnJKL`V)t7T)KN_nKI|blwbI6+9d07k>(piFCjvA-u=<$s)Mq#2WI}z z2+>Yamu``-)@Hu6pHLH*5BR^KN=sL!Sz`d1UzEDc#4Ej@TuUmis%jD$DEA?cNqBlw zPoW&F_E~ANbHi;ceP>uoerE&WV+!r^EQBzbyW10?qr!+Fu)MG?A^8zkTl6p+kvE#L zyxK3ObIT`81k3ml1g*nAQ(xZMEcze?-$}8zUn|DL5)%zJC~8;pg@lW1Rc!cl+a7>! zcr@oYuMbzk>=Qbo_2!c*vow3_6`G!7aBLsT0#&3?^B1+epc-N0&O<1`eP?+YIZR;-0OGM0Hcwg&u@xZih+u~>8D)?6gu&a6(Sx9IWk zAr0yC?`7t+;Pkj6gQ5H^%;~kafZJZaPn+sS8KKqof|@22~9ha z^S=GhbTOPG?Fg_K#UxPP#C&wqh8i1&bl$l>iFC45>)xO2VR#p<^ifRJUWsy*+AQS8 zQ6EwEU2cmV?zS=v*-m-Ey@;FNSL&rNJu!3^ww|PZry1T!uW%`f;SgpB?XD{}P=^s! z$%j>t)SHLpX-928l5=Y-`gvZ3b+-R9+GE8tka#s4UgC-``VVZkPlPjcBvjJaR zyyKQe!AVLubK0*Ewt<_7ogeYpD^;_$?Y&`H*!eK;C}+~OX|mwZcY#OBUX~2x3{)a8 zat4Kj6Y?Nt|2@?=D7p1d%tak2YH38F(gqG>nH{8GJ4JOD zwa8DSv8n{pkHVS-It9A(22EVF@^yvl=eMqAo35DVoIjyGQ+DY~ptSJqJC~A>w2$XqBer+wk##?apdjj$j3Z)jZF?G|B&XHRQxodgSe^ZuQBM}22kGVkgi zqtBa%u~|?NtFO|og=1nSwhmU~ zPFz~KFHG5)!a07h{+^@6BJWC&VcTwz$SiK2rH3n1#o3%mePaMiW7ta>4dGWu57ny= z9bA#Y9Gg0Z_K~N&7-HT9M;S9%lFpqM6H=;~H@QyaE-)NcMPB8tn{=hss-bL~ZHAl; z1piWK{$}2!>d_12^&{C(&41E)=oh4y3pZi>CL9>wQoj6_-TKs9!T2X+IN*Yv3F}mq(bGGzZ`P7(Wl=_m~ z{5R9Kg*k-6$^pX<;1FKrL&Db=bGtiVI`yyx#;p?Kr#%JtDtcJJhvYODul-1LS}MjbZl(8Y?T| z9<%1c_9q|Lx$I{#9qx@2GoNVvSp#=IM+W=rG;Cg7?{a;73n#s|94qD2u8->~4G7S9 z55GE<2>UO}PNZ(x*gVB+Zp=)@jDd-|e0?3O<=Tnce_ z=s%bg81=t{2?%5j>NhJ3&7@K0)v&L)Hk!`>EjUNBq&fmvxmzehl2$KnJV=CD=4$IY zs^$EU>dlPYoRI_{tnGc*e6;D5T(O~6&}bHrUil@l?1|X1HlX|co0G#P)1z(Kg9n4< zW}m=96x3+jS11Qeb#D0FemG#mIq#&8?s<7hFIVbzwJ8fiY=-j1qLhghSn|MQ=Zyfs z{oyYvyS2egbL8_UZ8zL=XS5|Zpbf};uYD{|djeZvKD_P5`qISDb+{bAsc4jUpF(V^ z@by=F>-1Mf_u#7%#0_)ipN|5MPRw|Z&353bLy8Ehe|MjJa%{wD*KI5EpxAb5`=m>$ zMll##@j8)eddnZ)18@&TAuD=-iI??sVX>!U=~5XfvSzkjMfYIKeM?KIRlFhzIV%xE zCWfoda=B=4X$%;P3%2fdz_ihPewf{r--|SwkxA9-VfKFbG5ph+OaQRl!(%fN=#0{m zoOiF8epnKlW)!|@C8a4DIm6W8bRe!#?ec3w@hQqJ3PI_Yd_NUi(;#LM zDUvAsB~D2P^zYGoEA_)NkBS4}v2|2aYk(!>hslwK!t!Nl`9<8f zs?4b134Oocg$oqU>_@8Y^*r4ljTEqiIY-~XPfoGj5ukMbmbK_?7aDi`KC@a8@;0rX z9=CPR@@|U%TACkG_+95gSqpPfaF_?XAs0A1r`h zIb5356I-*gQnss&G@~}8{>m|YpuD?JCHl$H^S(J`MLMQY5y}1cn&RP1a>4iN9OGY6 zwv0)#g@PlE5U=09%&S4ku&uk2LY!HUrA!y{goDkUQ#0;h0V9T++zNs!lohuc3lAiq zXCehndyCRTT_p{+q}rfn1GYE9FCS_&@>d?Y-?%S`7>yu5@~xhNIr+!5-!M^hl{$+$ z9BS;L^>nUzzb5;&o|b8*Mh6i-)$(_M)ox?qd3|lFds&XLbxE-#r-bCu{tjbqs{5@{ zO8>r2Qye}0T*3{&jXxIFimvorkzLc@`BuNt>mT4Jc&JH|ca)d>m=WuA7W{8O-D2#T zJs&ics0TF%D*Us5>--FDDh}4?;EP`s-J9u~VhBz9b;IC*sr3GKD%{Gtr^27DQMjM% zh&{eQCwGHLRr!G`;&WJ>ecZK-7{K0J!OOv@%ND;853WBCfz?v!IyYYnHoqz+KtA0G zc*dXyFe|&MgfG<2YJW6gf7rJv;y6mLpFb4yjEfvUWLEij7|qA!ihjd0?!@r1od2m5 z3{q~V-sQ+AZDSl@zmfj{V7VDz0frEJ&c8!#ow=s%YXH>qjS2O_!xcOkN|@Cmt)*j0^rH^a+Io&PK2zG;4>XH*ryc7@ zzaa{c%IqI(Z9*FR;&|EmRpcKKf`x`%xD4D+_FdT`ky$4;LCIM@YeUsO0Rt;Bi@;;8 zdrPHE&+R#_2e@^@`0XG6zBOU);applW3F7SWRyl0^x^kkN9U$geIv!(2p{7$*06Tv z0t8+l+UPFS2BdS6+HZAtPJp1{6Hzp2H8%N~{v|9+UZcyroWxWPvL58xZjz>Hk&vFk ztXJ+|D9n!73^zspd3+Sfm|(Tj=iL!?9#~?v3+AVhyjJ_M`~~XY3xutT8JZP@2)mi_ za!)wtgMpjYfZw{_bz}DHT4i_MQ&`B{LeG^PFWxC!JU4{T$je6)6hcNn;Nz6*6AP_TYH69GuUV%O6)f7br6eD$F(yZYi+3 zt7GwA>e~EV*5Z8eU0P1t&^wKzPsBgn)t~TFxWQl0d(++dcq%yr?AT;5`)@hn6wzNX zexJ7YJlNxt+XwEs*jKeFDU%kQuc^0C0Mw61>!V7w8{MRZ-vxf3lG?SKH*(+>F%{n^ zfGL?1#l7A$-V;;G4hcomK?Og19zW9IJjAEmGSJr6B+^oWh8@X`O_*BT(wHG zUwN~gCgVQpes{}nbZ^`=JbF}OH!@eK=j*8_CCA|Obt_&H<{Y=g{qifrA#b@k^0K-3 z#7KRfm65!#O?&E|e7_XcZTh%`vxyu^ftORybu%jNq(wK6PGPnPv+Osi{pUul^pc~H zK!KE}T1iXhPXpa5P;5VE?|4lYqSNkXPO8Ce_32eeSZMrp68p8o_MEqCi3Yv=oTgLo z37TSiT*B80_T9}jw5sPMD^CGhvC^`(13d$;cMWu`v?N|#KyGqnFx~)Do`qgme$6d& zSPakycQSx4;-B+-WuVx5^Hlcd$-N-hwHD4aN{hAM!Ak7wYa~N`aG_^@NlKS&f!Af zAF?{{Ts`%?jKTunkj?7pp{`M!k{xbb1ig#?qWJT#nX|KElFXoWlFYl5qsY~Rt?i9* zt$$4n{AY!#{3lioR#IJ>7Cyif28Ndt0}&)UFnNt8EH}PM@Kvy3I5WH`4X|AL{oCyz zuz;f_Wn^SzeaZb`)=CWnyKf`QpYA_+$$Id{L%lSUBm1>Q2G_IeOP!_`Dz*)^WDaj* z5*zvei3&YGJ84H=dGuJwu$0v_*VOPTo9U|eYTbpG)QlL%O3)lA&UP(-={(_N4E$Ex zHy)(-sKBj#()j&XMyWE|pvQgdV*Fg6Sq3Te|Kz@yz5l%aGpAji$w?J|g92sTl=Ndt zCk{)~y@$dg;<+NWyM#fomO{u>+L`YlcH z9)B!j+KMDz5;yYUbx&T)oj9Xpa|y^>ZnBd1ekT3Z5q;ppjozzkcP4(WB z=jPq^>(2}+xo|0sP%_8=cj=)>p z)9Xe~8gpVRMTy<~Cak91joa0 zD{X&O81OuO)pc#8XF|@mqfEWXLR={PGVHO%_?34CtPCp5_i-d22wA5IusY;XWUne2%HKe`LJmpj0u z_q=~fwWU^m4SOw`GKK6WlZB+76+#L_few$1-_pMiL-Gt8Mx|g{ht_lBy5FownUJZd zxHlD`OABGgS-kXRVwV;IkIQ+P%Cs*ncpumDvXudduRkUe(k{VBwuRSZWsG$!2(uH_ zaR$-~U#J*+=2XkT$11R;hI7)eTV8~wTmQH(l%3`4zp2oc&S<#ivuMebGuC0qoR64T zt)A^J2P>YLGrzJVX06UjB^E|kTt$}0nag{Ui+K&o#4dl0Z#2IQv&=8Tj&;A|)-G)& z+H+Wz;k>1W8YiC@M!#q2a%TR|(&gUg>Np$e7GrQvbHlkSFk3s+0ZJ-@scx*pp1ILd zEaTs3b)18=w$aB=3lq9k+<|e8dw#N;#yXP+-5O=K|G2}-B28+4OH+*Ty$QV0WyC8# zk+0)ir9sR-8(F;1%fw{X*F5aiav-(su7x3;Efxyb;r_O>+Q@mT`zOqrPM#=%G;K?|A=|Y0JY* zL?^pDxi`yNQOt*yzybG$1M{)vXzq4bRUAf|WO5MTy@+Buwbb5|vS-MH09ZJgRh6b< z;EaKsB&2VKcWIOV-u-cnol)~sLz)6C){Y?W>FUbF^qqQO@0q6?e|2*HLIe|Ak=tqG zIYn5)NDtbanae6I@3gBV?z!}>p(AP>uUt7%9_B6Wcw054_RQ~Dnqpk?^qM-c$?LV- z%(o6BX3_c)$0d$Mw-ga!<*C#7Mg^t5t4(X6jpjHg!f+;#vd|u*Hv5bPpom^ZD*`5H7!U)*Y4~m1a7jWGW28mC3NdV|0Wb~8fuEm zm?*;@9z^JQ?pq-^3Zi~Ubk|o$>f!c_4P!l}=WgrFxFI;o%L0{Q-e=tsx{Vc@; z51A%Un+@rFX#(eGcQrT~%F>kM{5E#=h)vRFvHlDBQqj#n!^P3Fxl)i8?%?us{u*X< zL0)FAjz=Zh+f5oAUw)=bMYoC$b1lx9tvl4pY|=2Tp&jhw)SC)wdtOY_{^+cf38Gr<}Sq~DSvgbobFt)?Kn!{Go_y*^3eNq0eRSR#%(LUSQW1uq(WVXf|@P z`@7XGHu4oVavCRATTQFDB{s3)Y9P0`2M zVp~RbbBNg4Wf_0j?-xYYQbQ)aU+6zedzqnr2KkAdciq6GkMi8EfAX2pN$HaxWBdB| zP0IW7vc7_UxsTn4gtGnbbvH`9Zm%$Z{P}vbq7~!XRkFMDqHC zhF4J1rc&Bcfy@+I4gFZ^dILjQ-^8 zPMu6nWisXAza58+ZHxSnAA--^h9_x%5Q)@3a3Vi3=}kgj_%CePt-zQVgh_%@-H7z5 zmG9_r3t~GUjgNmBDHT8_fOK2f?VouEa@QQF1yN*EH~^%FU+_@VgH4Z_c0AT=AYK;x zIf#wow|fovUa8zLiE>bC3jX?;-TE|VNhNS9gWZY%or6*3Cba=&$HCRX7d~{91Db;b zOYAce+vccZWqy!6VJ#*q0K+f9x9JLD2+*nW1_K336cF=rY0#cwvFp))ibfOmhWInEFugO#neJ3-mi6kM#I84RcK=K)mGK`Kd%F-$;UW@r z?Mhhx_UMj@kURippeS=2V0ONL48?xjho6pRu(KV08{hYdbvb}&Qo|VY;2N+Yc%jq| zqYMOZ`peJ?&~>?)UitGHH=`d5NGdWmblK209zO{-gCyeDoeVr zbOWav_>-=KqeUo;i^j~!D95QnNB*R?t6jj z5{g7BL5Jy@Afm)02HUTxea~0i8cqN~jH9*8MxU#TEJ-|&ttM7OcrqMl1$c=X#q4TD z8^%P)1XtjBGHltV29EE5Eo+d(kG{Z&W;h;xBnDhbNBErDRetMiPDTG{fgnA0wr`ex z8v6M8Kcvt5e_ik2jqUK>$;M17+&gl5@P6CFstlWao99U5#=YNl^w80OI%j;>*L`|~ zYd8+|FfzB_@G(^I02)8#3@o^Jy2?tz4FB92v#VppIT=oFax5Km&2!r!EI8%>)ZC!jMX+h~e?8v z{7#m^2OcQ8ENTM2q%C{fmrPN$Ve|n`)naHkAFzxH;!O&}r zoPwyKsc6R|(W9k%zg$n!FC+a=%$~we6PD1hRgn}Fkhoa^h(Zs**zTYPT?&B=SfoUT zMjyCf@JKf#-D$x(SU$)Zd>XwZNy;sNZ)d2i4YfZw`Hso0%x;2`ZBs)B>|JjySr9J} z8EVot%Gy^-W&~Y0YM^TQi}=a9PTXYBe_)x5qVxsbf2%EPnAEbjSY%v}!2zIc==?3M zI!ns*Bf!#SK(pASNtNU`Bwv%Xc$Ezluw>XO$PNxzvtLCl#v9^8)8^+>!V@0T7nnwb zwO7W4fOjC<^z&cQpey-UVrS`%WIo)z(&|XXoiu;EvK>1Bzf~=$3i*(abYUgK3%-Wo z8)ZZT*_JwODCDurhy1Pdw(P$2au2ld>~$D?qCi)#h+rs0^gb4HO#urm{0eiBT#7o3 zQks_^n+hyK9N@cpo;>aSelS2mK6;vTrlS0SnhM1hJ*J~xUJrSSzKaQail#)dwB&3c zT;Rvey~@hVCFEbn?xGc7%7w{XfVDshzq8!-4>RrN|5DoL*Aj5YF;r75a$rk)9#lsL zt4FG_FW>Pj`@uihBDW-|?U)Jp;@Ns`=G`C8&P;#+Bc+A6-)FMX#sa77O~hqHr@(|UUVGey)Rcd8ca+z4gu3&lyv ztmbjy=Dh$A!X*lX?Ay~IksX_d423e~M_W7zj&e0_giRe32qBKNl#d+M2jssYNeW9p zS~w^#Wu!>WQ-r;4305#Rexo#EvEJZnA&f0Z1SOBQ`36~Rzs$$5@S{VUQk4Sh4*1N+ zP}KMcPqJyhy6r56o_Gf9_IQO7Lt78%ejJPI4p5QLdNOB_OrVi|lWHyIl&YW1aXT|z zG@^vr{ikY&`9xHSpuB9>9_nvQ-RXx2^9k%0JJVU?hK?N^fi+AaUp_ng+dave%(3jJaxy~?)NIn4T--f#4ax%N2> zO>!IruVc=|TsBXQ7ClONy-94qdoOOnyDAGx`K=Pt9YdiwR9opcZ%)Fyw?>rmYed_dtYA6J7c$(z55Rri}pR|W@XUhf%T+2C11Ox zoVM^&xDIZ~+G29-jes@{B0)=&L*q9abF0r!GgTALGpw zF~l1J$Uuq7&?|Iz&~&#|*8YA6g*$-5k5XO{;fo<3$ssuT50s?IQR3;`_-^<7q16`=QD zyw2T{eK_jbIDoKL4is8vp~wtE(ZdqCjlPq)pF0va7Otsd1z?2uy}$gcHZ-#sRXW+X z?09iE&r!Tyh$4Q>NRr$~65&RwfYV$m2$Oemtf-EMX|${CimRc}2J{yCL-q3a}Q@i^66W3Q#aBpK2*{BL3aqrGu`@oaX2@vO_Dggq?! zABai|n)81^fHEQ(DiX}r#6_7bwIV94 z>n(8*L#GhHPMssLQ(K6~8n!`Cq3iygj=Xp2sfJ_hB$>X0z3!bxpG{kNGz#5Gin=k$ z+|?Y=NeVxnWG)JITzW>UP6nN^uf5#sUgOa`Pj&js)xB`ft1?`d(m|w=tXk)(KMSQ| zi)N2wNsr=H3emchHfA#hlnu3%^h8CFPg5HGlRmlAj0vksDkX(h;0`s|(Uz3fM`lb& zn>rmz>ndya$ku4fqZrZ?xGDomm8GMQN~T|2`%}p2_%DmbEaD{i|C3(acu26Kv=MK_ zRp0n$y0{_NK`Xs_)jdg@DV$-1L1!ZiL(P|A&jC^kOG}kjxeNr z`dC=038kA^P(FkaWxL8HbHIpI<5EjpE7V%#lAxs}S~@t6MGAiln~*~Pk|b(O#G`7! zYDI^8%x5j&7Tn4{vuNvreB=q7+O1j$(i#eZU#p{H)J5gCcxB+%>I?BE1C!8P#X|p9 znGLl-^+Qu)$&hGG_7BIyhjY=)}Vy}~)?K&L*3K#uaA zs|)zpeKeq(uALyLh8iTZHGgdd5IZ*19`1`0jKrVcehHE&H6bdO#^VY;pg_G-W`#M* zIhuk8kmG!IBJaKl5j4n%&e?*ZQ`wZA%nQ{*NRd#!+jnt6Oo=|ZuiWfKEMi`I>k z%1|PFcUfte@1OgF8+Ka6#350V)7(-KoO}-pSd9Ipy(A{UPJNR0J zmdtTHUr!xY?R~AdxGf_(=EP}fIAK%15JVU_O7188^3>bsk_TgB77IBlBMkQW9IiHL zNgO9}B>(kzP!uFeYPKyJ>BlS`dgyI0b}QE{*z#nb^j;(GWIDeIR(A}zyDu85?|w!T zzbzRLt=~PX)+~)QjK0PqAqXV2XnxZ!asD zLe2^f=}uuA9F$yPRE@E1# z+cKn`>3IjbMEn^LM6agX2E`Pu`=u-Qb^@X`qTrEQQ9q8uRAqqKSDuIsMo(W}lPLp4 z>pL7)IwY%tK$Hbx8(fKuDk-^WSHhureE6?|4)l6e7uaMV2#_H$d9m_j* z=?>FS^bJx&uPY7FB?6aSzCFr|=SPGgYoNAYsUQzxs4YmEcb$z%^n*Z#~dwn{vRw3$}rN!1+uK z@1)oNVI$g4u#1!EA`)tAxE}EVij8tLrU+_mkqR>!$ zF9V4zvj*3jAU5=p0r|93=X1XFgnmWcAIKDzy1Gq|Njy1<5x?}9?)PGNMK6a70+tZM$O|HeZ@&xTsKKpe14aN1+2qRZ za2}ri1bhTeZ$^IxHp1AL3%UpM@K)iN_q9;lZn7hhH3=SeC2%cXuh74`Hwu`|M-fGa zcH;Hewq*jZlMh{!5;dw%YWf%ML3SPz@BtnKq)e`Uv$yYYP5;s!!~@jqBTP3xLY`z# z)R;GNQCT`<=+!S2g8JkkiN33F+rdZnMBy(7;I%pgo}8EZlb>CHttDX(<~T$G;%((z zpn=Fh#u1;;!B7ql{2h&o6O~bMGP~m!DkN7?n8Z=e>~?&+`8>Cj1Q^MHy*^F$b=C1>lv;-eDr`UJEF$`7ydP@{cUWI$^AG}7Gq zf3~Hr}DV6KVaNv?(Me&yY#gd2CBo@Gx^X zFu9?dfz;JdHTBOYle-E-A$^T zY*$3Hq{l+X=qr!;1KZ%$uK{~uy;0SY9y3|^mHfS^I+ogp{lVS861_Cq3%v&N_n_vY zE1_XI1y1#*lvbHJH?~M zo`l&>o*&5y&!V_TebXGt$@R?tX&_ra`)Nn7fkl2KCD&WPX+m=(>2Ql!^!r*d%XYBI zFlNDZz)pTP)}w<;zdhUL7naj*jH+CCIAA9?``n{7t6r@{e(DVVGeo03YA&PR4ijl; zXZyv0YTmq#^_*E2kZHz*?;D3R7k2LQ+Xy z-uIbx{>}{Dx-#uPo1t{6gM#`=4LDkUn%_n!LeY<9yd$sENt&kDP(23@4xMo`Yu8*JNY+i=`H__*2In6M|Rq z{+)~*tvzD&jE1W0p?!3O+{dPldb`4F=9@Kshw~4^19T9M3cCY+{Nn}{cH#tFaiO+C zl=a)iFPYv0%>v_Ed9*Woq4CuMuK}A&#9n!hd|u*2Aa}uy$zYNO2Fr!f+(d7Z)Uj6 z%1_Py{AH0$^Ep~J5&AR!tzr3*&>zo{hUJ&y#wnM*)-BkRF1bo6n-JEIK0s#c=r?It z#o`ymXwY)cIpI2)HlV3zFL2}i#j~&Ei{5$|`I`8o*ce4H-Mb(YU>;EN_OH5Yc&OJe zo$M^NL;L3$+R8CxX&#lKnH=o2%ueOo+8NSe6sEcSBG>HhaM|vg=jhL`Wv`@!jn`i> zzWQZ|bHUPL_fnJOplQByxVogP-8*L$3n_2myIX39|DJQQFOq!VYwa?|^q(7+mt>5A zo`&T_dGFOk(77CO13Q_HGq5#cBNZlB@b!p1ts;X9*8TZJ&~Q zD(TJNq_f`W9T)!~D6B$%~l8&ujGd!CoCY4s|a-5FPm@FUSlU z$c<%4zDctt_i&=KavT}0-uT2f-L;zm+%@a0l6tG(es@1G6M-0nq<6k zV(z&B3$0kJ5R1CiDv?gVQ9tF5?R>YTP^ZQI-$l za|&vPM}rY)Yghi6!@N)G_qm{PJt0~bgWgY|-zs?Jdw#7J(&EzGe(O50YQEPx&M<5& z*SJ*r?`ysay`qBYY(~&~;>Zp3<)aIVHDNtl211?SqOzH~PyQu0a#V5bxgEItUj7lbF}8KK1m@qNybPS2n`EmZzO+v zde2ZX&B;uyS8_H(>t2tDfo^IRs1k%nbW z53mcK&Bs9jW5J&;3K>TyQR4XTYNetw8*U4L?hMA7F>w}b)9ysc@+e;AedY-SrqapQ z#{Y{g`>8t1QpBSrp(Y9b6Cv`EE9YV0tdgV}492D&BPH|ofBiz$#T$PCZ?dTw>kUG| zh6Ri!%BHhQ9BU)bmy-%p@0Wiv8m!m(e|APt%1qD%KG%yuKw=7-xl*&xbo+wd;C`CK z>)5jVG{5|ea0G?@#!~4@xX1rDRF;w0^V`JLupmpApYg`8+qN%)W^$e}EvA|3;FUQ_ zbP0-frHpcUIsc5(L5K~h{^N3=72!6|4>28g2K83M#iP(4B*+cI^MCr$-D5)?e)*Q? zHU67dC1Gc;zf8MSa*4&p?VP&u=@7#kPGb%$ZiW@pH~NXuVtjIrdiTw3QU6q& zaUzy|*ET;pKiiH$pI@(qfiuI?bzC>PG|ojQHZJje+m7afCV9B*l}172NGP`J(a!O! zZy&e+Mx)ODYKEhCt(+{^%+y{e=L9j7{p3_0Y*|ZeW6D$B z;FoLtwdFAsRBw2Fns?zG?>C;Bx>wI{$VGb5%YxiUoXehI|Oi&l!eW+ipRy+SvBE#Wj${35fu6ao! zS7F%%Bct*UlXRqW`6!=<+>5FWw(A!-c{miJo<(4~@R<~z3dr-DDF%|S_-b~a;~&DR zJX4K_ch(@`J#yf3hWDWw6){HzUC{M_H>oe4DMk}iu{;O5R}I+y&<(0S`LQn)_DcN2 zeJILlP<;KO&n7IvYa0`#Gep;R)eVR);_Q zzk^m?j-v9X%hxSXX!8uhLdmZy&xe5X@jiJk?CxE#xAeB%e$i+Ox2R~Gv%c`haz1LL zUAHNA{_gc(c9(~ktrcG|u6SW$5saS&yo2I48M^Q8;yvD_iRipB*4PzR9RI~cj;=b6 zMJXtYDH?zNTYo;S*4xmlUN;DC;dnl_vex1~molBV^{%4dd$p^I<2N&7+Wz|*6cj=S z^ZmiE-YvwtzF#kSx@xAdWG&1&CuDNcUsT*kwep>40Y9q)INt!fdCU3G)eg$c)R@kL z45`76JwnwSx6{oO=e`S}b2_ra<_PJF89L(Ubz_`%YFkRHOv(2w)pazdtQ8-pOmOK9 z71xT71+Q_Ha)<)GclBid*sJZ$@*{H8pzBz}vt;2RyZ66A zS|NU_{aNN#rO!dJNJ^D7cNquE!IMdOIr#Qcehds6o=yO1WoV|f|OFA6f5plC>~scwiGDt4oPtd zQX~ZD=6&z?tt)HYA2%z{dY;*5?|t@}GiNe$R+N;qb@6af+;_&0+;5@}@O=eu2M_4~5thRWLi{prmXUFQ^ z7q~d~SR*f1bIIf47~aFd5y$F}inutg*o2B$eV~SmvxJR(kJSU3xHv=DSaYmS(ZHDv8v-frc+5N}-U)O(+*aLms{$uxs zxZB&=JN$1gFMIF*v}|3iy}bU{K?f&$*Z-#bH-opQkL`bb|Chn?KYqM+HUM4+C)a=K z`$xJu0skwVfDWMlY5Z@E|9SviK{nQ||8)o1{-gaC_S#7U^!gyYK?W4H)nV~&^K6a$ zwLGr#y>IU0;)UX>SXC4Je%9ei;q={H#l@f%wfywHa%^NlulVx^k<*{V=bn?PsHoE? zBq%vKshLbnq!iZcn=VWkI0cw4j3s53H@?(ayOKT`na`GKh1UNpyt_TrA}#=Q$RRKM z00<$kZH+)&HiorxtTj^=+c%1wQ2kPV)lQ%$H`Gn;Wp- zmSzI;rAzarvzBI3cr&A~ht%e(==!SfLeGBIzoBVSrXKnK6h94bhIx1_uB=jdc+k6h zNNxXfmi?rEPr*vvw2Cs@WcasiCF&+@+1P^Hd4Zw4KxOlPd&A2EI{0r_c*GBy4D`Te zdfZ~77Rjianxhu6zH8V{u5E5FM5l;?*l%73j{g}v78y0jN3(`^%>6Mwu3y&Gh8eF4 z+-#xhoiL(7ZnQsL#U=)lh#DGsRd;2Kj}7u5BUG@g9sZ@Kzv><}2gAoli`drEY<}hD zk+Lw`D#>ydvz-Wp*Uo!9*=^IK@v(th7EfBWfF^*Aom^u=!H-#j8*~$$90rKjxF=RD zMRy(HyoU_?z!@~D5>xiZfI+9O&yAgn93X2$>~ql7y|q?kp1$s=XV#k=^|h?~*A(3d zE7l;^Sa&8Ef>X697;l9Mk2j*MRq?vRsebZ7L3ZWr3blKTpDz50bgh}1zJ4@FVZk!3 z=TKPLY{ZxU22rwX6#H~Zs72*Cn8aCj)}e`}Eho0SvQGU-L(DP44P6cFTg*RbOmOq# z*#nKaZ4OPU!EYY=%bqlW3?B>qh z0jtlV3-%P63S;ekZ_9)V={v)B4qgq*EQh$H9sIpFA>&6n=>`|Uc*j|EduzodR;q*& zQ0DzeoaK*OZrZRA15{bVSt#FOeu}7r7x!C=p*wU%P$1q;ta-Qh?2sQoxMXu-b$uae z?dUIwEnkCpdX;Ik2u1fgMUE4oEOfvIBl${X^LYknI`I3?$6DsGN79A+4lY-Vrv_@ZG2w5sOxlxPz3pW<8I%U`q&(E?J2M&HOb+lBlXMU*y z%JfS!H_J4bYc0jE#~h693z%OCbw5F&{ZaRhCH$bkiwbw+!;v+nDMt9ML($C1l>}Sz z_pO!R`z;v7%7Qtj9-+xK36GdniNKgu+8itCH5mOUpro~_Qm~588M>Q}h?Qd9i$fYvc-sU1{h?dCGsUgB_Z1fet#=2x_Ivm*v`k|>)7Pf<4d9^&P}+n`?YTTRL1 zrsbZv^d@QQUMtsB*B6#HDFQK_}Mkg0*KbTnz>TESvkciK!2>8B7sQfmGX<>p_N!ie-yF zO6E;Nx51s2Ctek(w(<(pj#6Mw`{*C=f$A36^(4DDXzljuc57;Xv>c&{Of?IhJ8Rh# zFl|qzLCbF4MkYg`DZct!kCj@JB}TONPFFE;%%cs!!Q3rzn*%TqJa75JQqLpxis>$` zrccgwN*QcimMhbhENKaL*q(g8KYBKLiPn$JHEcSmOD7E8Z=|lh`(bA$RGSqyFO9ib z7=m-O3W$)O(Z2nt$*jH+Gu3ivzH^l6!IYCif*SHFYU8+wY!%F9Pv5dSgD|2*Zmo7D z)(vE|Ui$5}E=}46fNA$V8=&ue+v9oTgaM#6v6%BBlO22eAcvhs2Q%eN-5tc4rQ_b> zSR7-cbT=f2(LpuVntM$hg7P&eD$o8ZOU75P6ye^s!{V}5C{MH&#k{Qr&9feioHhu2<7tcem!fv zgZeN^Z1_zhdMbvjIT--JrxGdlvGH4s;j(G0cM8VGa_b4fUIB6vTwZApiD2`$Nfn>P zWTGW<%={2vCyyKui88=-D1THgWq7Ww@imDZ$K40D3l0ByF)l9}z(quDVX&~;rE*;% zXv9m(B1JrQctDy=+G=~0W@prwR*FdwGwn$tG&&ZyPUFx45skM^BiL+t6KicicbRY& z8No3qFyvWBzDeT{-_n$8n-(#AvdhptByzgwNphmEfXuc{t4ce8rtlj|MIb{lufHv<1IywW_#-Z?SKoiH+@~W`;)15S|LYHg6+*Dgi^{hm&4)w8gYD zr`YjEc?R2b^k>?y9S?k!vr9GMZ)(wHn8?fL-nLBBy(m{0 zn`|bM`ZAEy2{Lb(AXpY9C!!Z!PgckuFuIw3mE{wjZs}_Z4&*#sS@$Y(zGxTKC@&!P zBsaCLVAU{gjPMQuHnC9|7I{4gH{bY*ZzsD*^<@z}l4Gs}KeR}LZwjLj{VssA;vb}x z<;As%EfLx8WHu-a8~y#c!wA_e$R|mdoHK0q4Hx2v?i6~BR@R-iwrf4AKu*i&M>7tQ zVqty3&Z~h%uATL|N2{mjgmNj;w*KOSw2AXG)VmX-jl=b-aydCl^DEv`T!ObjKQh;T z|0zRnG@kl+-)%*sw;E3`n*)T6mEtzj_x!5_H#>==gqr5l1hxq3>S@=+XR`bonIJFQ zEhvF%6PVywk>Ue;Mp3^Fg;;MHgUzF_Yx0XMJ5X6Z!a~-D>aihfO;N0EF$BIInO1UPrnxxvs#x8P~2j(~*c$n?eRU99j z*6j>z%%iNh)fm%Uni!A%kyJp?{zXh^PEjdh55EdiNg8}JRUv@@Gv@mY8 zXUCensc`9UivfMdN2ut1@wEfJyCT`ioSzj*66=2-ZZRadETo?aYs`O$iYpo*6yI*nZ#0$>;uT_CD{Q`p|<-KAo z6|`E7$Mb?ZBc3^;yB7e;iaOUdDw!DY$Yx`wXV0AFk%$A+$Z?89oo+Kx~Mj#O8 zmfJ3~{TaJBI79U9gioQ-ezo7z&r(OO1gkV^_eIit4#uzU`L=A*U*YiqBqI1RpBe#? z#Rj89>DxD7_+)a_PlJH^&gZ5gj8Z2)odO6R_q{MEiA2#Z_eFjli1&ilG+RcFEt|>h zcN>*BsDdEefck>$wvbY0uf%d?`qsA1>S|NW#3Ozz4=a#R&b zWUdsnT62UE*V6pJrg68)K!r?d*$*E&ViSIHo=nXs0JUl;e%`cESVW{8P zBT8RLTdSe%-CqiNrO=uxmrf#9*jM$1VY`%7*?$)}psBT3`7wu+=`L46%T_B|ORGE1 z($pU=Kk6}3&9~!~E8Qpdi@^B!>CjgUIHO8BwWebg{E32g6nGyUBB(K0&?_4_WE2w(!(h`&{yL1jRD-4rUu(c*7Da>;Ec3f^QPD zl0M+!{L#a0G+&l?%ZQmhbF%Y9wy>{+>vjkUX^qhV%m7B>E;LT_AH?cJM9aEI*&;vg zFnjNT3B~M+x9GiF*cN;nuix9Iz(++1MMVKj_*IRvSx^-RzgFHocQwYXM5a`U8JJni zNR7k7)7U!V$^A2iiQy@rVzwa?yBokbxR3huvf19%PTl}XgcyCOTtC4AiL5gb@^g*g zM~#P!pO){)eli6SS!9ySdBpvx@HQ4>1<$2J$b+F&5(CPN(!Y$h z&ab*|t|s?K+H!8pJfJBc?O`wO;-$k&hGSIW^oEmX#>~Sl@J}uV2auzm5k)$i20CERWG7{9n~s&D!?eUcj(13s;zL`|-JZvsI% zc{&s8YXjM>WRiKeV$&;S7qewkg-)AnDU(pui*sgjO)~aNklAd1wu2hM$zBHA3c2g4 z^R27Ktj3cimHm9lW0wJG@zGDcg6BT5quATNrCA_bOnV8or|qU^^z>-i^AYm}AW^hh zh$B{>)MO3Wso8A$+$K=pIhslM`d+J06}y3pq%N3k|F^n}x75~P7V?(i1o}s2Cve5j zOEAZFIDN6NsM|Hrq3gTZW{~F2azDQi$&E+qU$&~`7{tgXP0p_b7zqon$NJW@wQaV+ z^e9V_vuItitDtIEZ*7X-F=U(zOMUccm`k~bGSDgj&giDWtSjAX);9b3FiqZT8W-aa z?$v+`j81CRe+k@KF1-Ox4Ry-9u#q<2^DM{=lt_{@%_P~JV+-9+$AqX>tl#(n7NUK| z#36zhI@gQkT@p_#H-BlyhwE%aGY-+k5aV85q1*V}mcHOlH4_pS6d%o{XaSQ@w)K|F zU5`obS06{MV_S!Stzd`Wx-klruBc6hRf$x5w{&|waA@o#_0&9^JsGhyL!w+aw(b}! z45?>n@-egQ`!&<^rD`Z&i&1of55h)tXFOnfp$^>O`D>p7^@(bg>}y^OnBR~YZbs#_ zz=QS~LTAkErPB|>2E2W(a*g-V#g!a_7sH}RH)wA*V*lcx0@*w&9pSm*kI2pq1I%O8 z1&3_c{_24&3J$~euEj6Rn}Wb)UN$!)>&46K>y1*!je$!brGd%wizC0Ekx3_xv%dz@ zV^V|yGX)otTaa-q-t-$`-;`SJ~^pOLCwZomlrNeaADi^Pz z@&(JF2#>;LExLEeDna|QZCR$kvA9JsGHRl_!LLs@jKIp3^2>~^y*{(elkErFvKGtZ zT17rvPpN5F_t(b0XI6Mrq64ovuaYxZGI~3iyCGt~-(HT7N$s8N23*ob(-*1xdueS7 zi~s>}Kv^!A#1iwdCt-&B8O${hwD(7ow~qE6(f*nmx$} zBiOw-K$V{LfbR4SM`p3}1Y2vc#G?AaX0tDM0NS&$XJyE^IyY(Wofvq4fk^d?wJ?=K!*A)G1^kDYG%w7#Tarpnx9wge+Ob`O zx!9&ukQuvJ8>Inn$fZFqQ5EYlCJbvIYfeuHeSB|*8hFZEI)&qs|w<4XX7MUScK5IMD8A#8ZxM{S5tcy>k*B(FR{GoA52rwHB|DjVws+30Lb$`vb zD0`oWvX$wf@AoUQ!5}MZpi6SRi}YRYax#Rs-yl}~HhUxOw+Uudgm*N4nUX7RKln=I zPnZU+*i}wQ*1E{$#Fk*Iw6|9!fh%TX;U;?|OtU2=Ny_r98KVyed|@#SOm+BsXm;oY zEMe@kJOM2A;d^Q5ta=)LI;rfrelVle?{$Dy05^Hstyu~#Lp*o}bh7dp%^o_`+j_(Yh7>RfpF{$9t!{N3={&8>iTBhnn>u?2!7qdREi~a&p zjfpoqE)^v;y`BRr;|N()UAN?H)7oKA5i;Ae0d?NH6)cO{Q9td-s2jDsx^k|C#qU9H z1=}O_t7mVnfR_>{9Y>=Z9}fpLQnr@NC(Zx>`;OddtK#)4!z~dHgGM29wrJb4IpPB_ zOIb&~P#wv+G#8rZ^;T2sCPVOE*eNJVaQOnRyy~~|T%lv~`rtQrD-XzSrXgLk2tL5Z z_r6`I2?`x*CDrVZOOL~)rjw`jWSTtnJGMv2lY#NIBPer=@nsQ;w^f?uQCYc6x)MW;4fZfl}WQ$Bf6&M&>OOq{OHwU|Y<==n^ua ziV)Ki9PuBl7!9Ep>Rc3@&Ks4$FGaqExAS0MU6Je!?Q5{IR*8KL(#%z(BVzm7yZ!p? zs&IKiTrfnq@#c+SOs@Sq7E>t_6u5wlZspDeZzZlHZ6Vh1y&bwUE3qPIhe&s}bOiii zVr@94m?Vh*23li=q*jHbx&we9*!Y1IfV^txOeXXqXVLEhEXCqp)H!ZM4(?1k=;$}1 z-iLCWv;*j2Lx%?vPRDz1w`CPfay%vkktek2uT9*p1UtD_)wxi9r}8{R@y~Od5Mp1QMhGAd_f${X>-O-tF=S zjy0*%l|3*A)0I1C)nMym%IlAh58S;Hw2E%!6PX{z-tm|yhJ&bG=?pgJbB$yD_OO%A z=cqG)Z028eD;aqSmZI^5=auTnar>xTUqzXOs>TUIeDUc+cMQoF!+^J z{LxUyto0S&wny9i#M+4NBIGRa*H^E-{#(-M?>Ec>*GT(Q;yU#+rtwIz-aCuhvx0DS zKmI@-izMsOz6wgThP&1!X0wR-$|8p&R`k^jlDT5mBNM&drp&E-5iXm1!SE^(xjPE* z%Pi{47VA$^Zmkl`-83!Tgi35)l{O;3kRX*ZF6#TL>Xau=ob2;pW}{r{bXB+S1hqE6 zt+TWFd@pZOG`bFJj9VH)`;M|>GA+HN#VU>~2+tv%oey$1xZ0NFUi?tjqT9Rf|4B#BO;ZXte z6VucckJXKfB|prCrJJ1bWz_tvRr+NJ3SrQHUK__AB#=zq**`}<+S}=aQQvcOiA!12 zL52hi-XJ3I+9LuJ8`YMoY`!CL)r~*jYO!Hjm0}>Zo$NOqu3HkujUEoJSt6g7!N-hF zv0_wq&eX{0rM?8$w(S)ydr&UEL?iiC?_(Awso_CG9ogPi)`%lW8=NDMqe+0<^t_JQ z53qu=7~*O3TB^I~&h1MZyWY7&2&@bh*Tp^9T=Y7u=SxQx<<3H>BK!q|Gl8>B7ZyyD zbfO4vzAN?1z`Xep*zn=fDE-xX_u5h^v{djUyI_9vozTeFnMJ{m8dXJ=qeA0)8{)#r zcU~rPEip3o5w&qL?Ckt!NzAIu&|c5=joR!!#iz;#zR4c zTYc9lyZfk@FtouXqd&(j$$Tn`RD!j&W2wWo<+^1`%Eikq(G@K>EskM9GR+*@0yp~W z<*t#*jqtj6xkqRZ4Am>eKs;nw~pDPMK(pb(3RAef%84N9L(-Z@v(=)dQGm@mJ{BNJMLFV z^;mN=3`s}&dg}f$tZQ}q&uroKN!jLbd0C}Nv!69gq{<)Yv%HkCn_)6oR%-k{=B_P4 z>1gB(oFP_^((o;!DnA?VSdFZed~i`&7CVvo=+&_R=(6Om6) z|F-9ry3eRE5!X7GI}Z+zi;Ydu*`@^{&7HCgWNfF<)gV*k*nZ5yrN;7#&+!1=hMxu)tt-a;*&VSH|8oQW!ln@kcq-oBt8T;;dkNuESecj=Tg5ooh+DR&-_AD zSYp!zL8s8bGV#Woo^gMD23YFqXN#wbD1DuJi!a}97JJ4v-wMd&2W$ROvaHB1uDTdl}?4Ur>*16Kg8EDFtYQ|&jn(?>P0Ws5(vgoCVKuF zld4s9d8Y|&+djh_?V5-&A*VEfUDk;Yvhjqck-~Xeh51S<+5eI8V<=&}CmI~9RG{iv z&}@%nF!$#EG5c=snbQKxNa471Z1~#B8DgZ&PU!o*wWLZz-Jrw5yuI-LUTuc2Z@Pw5 z>t0c|Inj>qd+Nr(O*Sn!stBBBT=+z))i&K1{*J>}G&$p6_5}#-yAEhH=_;x&xV-mF z(>=+0S@Wc|UYcEnw}+Q!RE0vlMs3iGQzc_RF-BN-k)MA5d!n;yMtH;YB%R}Zf7_a` zO?{w^^ELmXGGbgCl1?&Xw|UB=;$1Nj+3}CNx?a{pO+uQ1$(>s0$frhnq8b{A;Gb8U zVwDS1@0so=i$TF&Q3GEHUkpI+-Ja0}JwD8E_bX-uiJ^Vlh*l0iuVC;_LGtDw>B8tj zIlF#}%}^rx33Q?2OA330$&_HCRmL_l$pcajC+lEgy4c1>Xdq0ZA?76KA*P<_x~#VF z^9-;Mj-a7Oz-=&8;mAm> zSz>#+U}@EXKP^{nQ!%|2TEnpX1Xl(sKb~oOyS<_vYP_DIVj|YpoX+i)o+5c6dG5hA99qaH?F7 z2;acsU-Q$rpf9A_pe6+t4F(DqdSTNTUtdAAo|jr)A75aF7#%ud_0^5)FIqC=n90{t z+HTtNCGFaw+RAyFZ?ZGl4w13)$%y+o51a|~gp$b1$eo#|o|mj?7w3)0n}5Rgb9yYl zwvV=kwp88=?W?@lH`yU{A#f6X95%30WL8Ag2j`I8@ZAVW9G`p6_jkFc?oTO}3~C#y z+D*3JFT3YVs3$SSQ1V^7^#<`ye2VU2#C4-A9#E0AY=Hr_qq;rr7;gj?M@-YJ&OxAS z*2U(+V;nAgZVst<>BaLb2Qx;`ww2YcD10dlU6jGX6@=14n)TczLOFlwAHKaFpUHX6 z{|KXmF&YuKc?=qAM3KC;Ju(1w&BBEqi5-uHmOf`fBy+QTb9GZ56}Wz>!sRr(5#!^h z5T5HOzDjywuQ%qq(jjA>$3gpQ@AO)})0l|H053lc41Qsuoj~h&Zrl3g7wz&5XFJiZ&0DUhLHvZYvgOU?% zTkWS!wgI8epG@$l?@g0T<28^v6Y0@o2O2%+{ih*c6wvZ$h5azP4-4SdB(DSDsYk9H zO(vHJUVS92y{wOVXfxu|?3LMTNdGo(sJa0dYUR3L8iW4$WO-uZlLRQgi4E$1W<~vQ zsC+u!ez0k_XPM@g`Axqzm$4VDcuL-{?ecwSt!cn5KtSn||6S{POpx6Ym6q|fJNK4$ zj)>N2=!zlfex$U=%eV&FN%{o|L&A&QT?qV}x|qzL?(8e5j-TpLxB1U^Ky`ax)1m1ii3aOOGze-dEnO85%+)> zdOQ4Jlt(V@R=u{RsM9;Ay9EfYMCr~Rt(_1Y91+}PADQIZNN5D=R}_zOW`{H!lJHpK zFA+5`J3rceG^JBQsjcwO6a1P~!TbaKz7Ij!AM>=%Jcrlw#P+;j_rqZAk5U>REhecj z$}LCmcs^gh`F3j_V(!m3X2HNl6{d0*iGJqt@(-rQ(C7@_V`OIRsWiTE$YnWAjft>X zxBn*W!q!Ft$vvrjNiKV#cH6j&%e1>^Tplzk>C*G1DS7$9T=uscMo+CDrrN1_O8LEc z4-bC%6P1ya;g!)jb4<~dP?d<5087NDpaKK_*okwCXSaPkTc=ZNXZ-i=*vSkuG^FyN zS#%8H3nD+e%!h!)KaZr1@qG&czjn%sEL)wg=81w zz9>*=Lux0#L5ELBi15x-#HD2Baup#X@}vsc5pWz4JTw({7^`Wg<}2k_zK+pxY$HJv z=-<;P(Z|y_Ve?Ka9=$v!6;T{?wJ07|ylks`n;VD78$El44=%Vd&p$dbO7sqb1u+qI zBqA4Q|E8uvU%)&%o7jIYS8E_-cxd*WEA{8I+n`!5+)U^er!US=cTLx=mm+kjb1!qlv==7<#pUdC}cZVaBJD3{q>5qwEeFAfGeSvFM zAZqTlm1CUd8Q$8BjaK}l1J9~s2A!N~2*l?pE%Lxmn!;2N45Yq3Z8Y@x1l^SFF7cP# zBy z#CixX&1nk^m4MbeMBEcFZx0ZXIRZ-+{cd?RcRJ*vOYY_^ zg1HfNQ4uT)pp9cztxkaQUJh7pDtL7Auw`qR9C3n^dr+NYK>exYN*-a(n;Mr?wR-bw zqb~3~cNg)=p}rr7m0jnz46D~bLC~Vb!FSaMP2q7lB~KU))|nsNr+Dv$<3vQbW(ueD;~ssfp?bMtekD@9_;^;)|Qph`6#i0@LNJs>RhNs+gol{U zgyqqPk?(#Mwew8}DS)IW%KHMB31Av~VsSt677P*I@*Lle91e4==1}DURw|HUF`5(l zHC+;gCVSStsAjWKP|X|3=r5|V1vTO+Pj(8No=!ege(|iTtc;VG1x|-wJ@z@Fu zOX0R{`~K+H6xZO!c_*z-G`$Ih1HEw{>ZX-`Do;lOD#O*+rp(n)b=AI|+S&%+Pc6js ze~nx2-im=Hc7K_kgbyNXdYDPT_g0}fl|fD4j;PQ-%mnntd<{j1l`JVm9l1y2aL6rH0Hc0yY_F6s;N4FFtbKA$vQ0#VEC*d219ZHkVjx zdD$+|;JbIGx=7^zVkON4Y%=p+T{Q-~(OAs$o8|xw#A26)3qO|O#gybyw>%O z(}w(!x4FiQU7QrMvo_L^#*q@{qzQX(fBD=tV@&?yIoV2X$3-!d7(I4^l^v(JH!mH= z5MsEsNL?mw%Q}w9Kwk$-eC1j_F3P@w3U*nO$zNW72`lfLubHp$oE8-@mkOA8U>Ejq zlEtxQ|L4(z{qL4VGGTl8Qgk-&!Q4fOy{>3EFx1Pq{4c+ z?DIY+^WnqF{hRfijBhSdL~KLsZzQVe{Q^Vm8I3+m>E#qW%-38zqHO|%ElKD~i z9A?`XE7NnMH2!ob4Z?A_gC}a8iRA&AkH~18YAUpFo7@^Jka!132V)REIZ)Yb*4Us& zH;>)w+G%k2o&{bH4FD7PouFTh0tZd*MPrO-9{hRcKZE%o zl~Y%-O0V6x#pA+TeV{n#Pv!Tdnc43QKgEYm{IC4r@e>wADmO~@&x%t@!_($9`$7K) z;@8gyFa2xUl8@rLYHw2X?*+>J#kHD`p$RSShb~vCCxV+gdzwUL9gLA%i*(FQ6>rXI zKlsx)-`@=CC=hTowp=l#BjQ0t1c29s(rk-OXIf?-A-y4(Tc3`CBe;F`Rwi9;Lq#s$ zAerfmIqPxCscJ_)F3C=lh%BDZD(RR)WZQ#VmX31Vwhgu<%>6xJ0%j|>O$G54`_2PW zb>L^}bpPdO34lNxGUaNzV0=WWbl&4eS{I~#O!y+iL9urY=EZURo|Gu8d+JBwy-PHLn;rDmpv4P4*f!XyehIWI zTIw|MPHnS=P&jlxn14 zKLfLE1^}@WLO}N8 zuAs|#3PZ^RiSrctYgA|7;J+?&iBnAy7C9a*e@IP3c1HAJ>q8Y}UE|EQtDp;nL-e8Z zFkX!JZi(g4?v^j(@ga@--F``dbW&@7?ZNLvu^HxjOrf0@U4dQx7XDG#|2DhRFMx!q z@h<-2a)o&OdHjhU=km{;ZI}4MPGZ;lW@f?>93~>F=Q+BNW8Q0UNW|j;vzIjp{>!972uj zr&Hv4LHClu^t+GB9+u%c<4+ls_?7_j5!j8;u6_xhLiVRi`jX(VOAfu~yC~5TXdcr? zlLu(=DXJ3Q5{r_!H|@A+))FsmxlfnmB?0yOf!a}djS4;avN&j!63ehl(W%@WXxj<; zW|{oWaD)k21MaSj_UM~-JhbFgDt3K*!#id9=7xAmE59gI7Vu^n8gaTTS(2=c$|rl> z{t%lQ^g26Sk_b(X-ELGW~1d8g-cnZ}GH z3&D1J?Z|VD@ejzK(#X7)HFRcXhKX2%t6A%p5dOxw zw9w-7?$_D;83>Cr^S5c#iDC;iN4VWBe>`T#?hyaGhr1{t+hUNmoO7Rgkax@5d_lNj3|=b%Hy4L9SAmq16Z zL)AxHgE9Ijl$)&n^|Js`Yq!X^{%5Z?Q>6?@5wXC|r@Q;|X7rN#(u)qm2PXbUWt5r% ztPI9kX`3lb8FaA04ePjwy4&}_b63tK4PdsY$Ss3FA66chgqPqyC^ zbkF5YC$|JETg{3fQnW8UtPC>U5Jh!7t(d=Phwr*8|4qceH+4DwYuU@=Lsi?JkAL<~ zHT9<3E{LgS^-6!47>15-_I}&o-;Ma)_4=aglef^=PsRIBNWFb73KDLHIoAx>T3_EM z`Bd28XPwO$ZLdyhH>WpT4okPxZFv4NlfW4@rz*0;1#8cjIX+(YpI-WA$cJ#Ed#l%Q z;#}7JOzX+3o)1GlrBA45^w{4|y#+`N%UsI8<^Rbj(}9lMe-EwG66)8$l^uBZZLS0y z!41v)eXP{VU5i&HFDxSRGn$(_OAciHR7oAEgvuZFq$zL)|74=EuX^*;(2eEOG!uc1 zi7;~*uFm#IwS1%HBsbn~zbfYpMPg@{{X!J_AhNqe?C}$M(N7AdZ94PB$${N8)qJ08 zA{Iq_f#uF+)cO7Km3!Q!MT_?WWe+>*xQ~#zch1Lrih4C9yCACYb9j-k8m=RWJF)h;Q55DA4Anxlqp?28th^+ZRA+GPr-y}xd2+_KDRbg;=1>Erx((upRkTiYFC)!&p3Yi@dnYdCG55O$ zO-tGQN)?e*YU*}8{X$jhzJELT<5}}@&?MiJfx7y2C5@E^(2YlSo3c)gV(>qK)-S3C zjG6boFaFKa($_Ng@yUK{1M@gdou`uDM^`WT4IY@-wSK-}e#OCY1k>SUK)=85pmoSy7W=Q>6wqm zzbs-9HE(5JM*ppM$Bj6q@=j6$kt>ZlgIh*6Pa9P#(U?*A$g&1kS71%KP% z_2bWD8bU9Cpa%&Neqa5}zgYrB9Zb1G^{1~PC(h2g(t|;!aMHGsh}k6A*i?*;Uumfh z<-^fPI{3wUh6%^#HV7OUk17)drgY!eBHq<|c*dy- zqq8-D$1E7weSk}nD39xpp81Cwya|=>>Flpk!X0X@@v9FH-u!X*5t2s7wD!TRihEY| z!F!(O&F_ZU-Y+at@@K4k}Id%v*w%;Hz5UlYHc`NnNW-T>hlU4<$sZ!;l5$O5!+ahQM zZ=I{A)tS{t(*NA3-s(AX(54k^`Mrkz3H7i-*fFDP1AF#ql1))lSpO>PXO87wzJ`I9 zQ=BE`3b0uJt`+aFwe5%5A-qZvHQ}WXYglzP1k`313wO$Z7BK@Q8ovFn$><>wv$bOJ z)BVcR*F7(Vy6bi?c0AH%?$b#WNB8kJ1_Ka9`mo z3b$M<1iVYl@8Id!E!cx)U8NQZU8)=wPqVzD=sjY$6^t#0-Zx9u2KbXo)?UhcTkTx7PM_f zjCjlUsLm+j`iM+_6=!cx2ky%RD29!{UK+I};3`Gst-au$P13(%8q<5!z>8@$0MA~R`(*iWdu;jyqQ=Fl3-yj<3iJ)&DR zQn7uSVp2BJE}MM#iID7s+JK9QaRU3ihH!V{*8tV^Y;F=PR!6a ziX>{Plhm^w(x9kXt~<5$H?AnBnz7oR)Zn3Y{PD(obYp&RO@)Vf$+f7$fW>kLs4aBx zQ*nAkGb!Nn;;^jK8wQ^@=`ObAeyiJ{Rs0V|`IpWW+%x*b5(RS*vJcGfNcapKOrNip zDKgm8n}}VkwLfm3bdZQnn4@YRTsLHMv3D(&p8YkPMCW4fMR~~r0UQuKAcviqROHAA z1XoWYuGS`&%ybJP`s)rI6})5?DZ-E(0#RlTh1f?dZB)_j%aE5Xd{=E08Ap^?Mx`ZMenbo zmIs&WD)FIJ1A$0N%o5GvL>xD#6X6BoK9~H*m+?1vXhQ;(?HLa-ahQ~=B3<%U)`zq|j2WaXs z))t@yo`002E=icgU8~xAth#B>u74}aqD51;mrY*!@$KRJVLS2@(%NYtiJ9-poM6Ah zbUaOgsxEdK)lvG0+sgE^{~lMqP)95jz!fU*rZ;H@wRvOEDq3E!M^cpkgPx@EByyUa zA2Byn{BV+D^D-Yn?|DWy&;5s{>=)x~ujrTPLO!P^iRWUaQ7s(f;r=Yzji|ljm%jn_ z^@F>5+44GmwpOVPW#qytYy{m=wfFk1j7*m6t?kuNwmdLcY+2KLQ540mQm{GYrX6GV z7kkvo_@iAmilxxoLNP{NXA?)5Doj!@@b`17(=*3J2Ghitk&~xeaN9&nZuXX_LG7ri;&=dTL2foYu9XB&5fS^4}^eX|Sr8 zPb74ep+@!zC;3K2N8Cujr=DBSM8Sy({98FQOGa9#wi(EY3H3*oAaR=e=(AzcPm&+o zW$(;JwDkGiTUn^c7S!Fin4c8!d-RQ@q0fs*QKqx7r5U(y;941)N20LU;>W!}wgiD3 z%bA+8x5ku$-Zp}ymqrO?{N$;5wpmbyI zo--#$xB1g3BLjJB>y^0)eSGEhN6~@jMA7n?yYv}8@)EK z@4&HkjQU#t+xDw;?~hIrZ7r8xBk`wY)y>t_l5z&>ihUdu*~Qgky3xYKCo&6fZu0su zCCw~o#hgpj!^avoXoB;C_n4$ETv~It4F!QvNEiJ@@mJBXfr@Vt)UWhA=pXWE$=}rb zzm2P4Dd*%|Cve!LETT`Fd@FiUJ`(kuXS0|;e(k5f^P>kZvLBj+?V z1nC~o!*ZE;);sYQ`wKX~I`=_^s3_>Jk8&fj{0bpa_& z<7J%$=_P#jrN=CAh_l`r)r5jV4zK=7(xvHxzcjE;o+>3Bd6k$KB_I8@JXkWg4vh&p zj`E6*xe0V1db{7_`cR$})zhp$J>{nRXU9P4i?m5RomSyXzKJx$gu4poQi^2%6`!29 z8)fIjG6ZE-FAHC6*yel%Pj!FXO7{B_b&}`&uIhc%-%rlmg)Ry~3i9~))SKn6hcxnO zP%>YJ9HsCf9Ck+!la;35k?t(b6q&pwb}4$*)oDZXg+$@WFG3Tp%JhsM6f1>mQ%@u$ zwKYuQ-Yk~-yZ^FCBO!Lfa9ckC9IP_<}}+ z%1@g^w~V?kuc|}y23CbYtssx-%R!|htu+g}*_OYXS~$379-vJ+ew)3|i2>2xy&kl9 ze~=*PP)Gb$>q4z#>n16sr;uS&gTK>q(C$4`-IGnZiQ4p}!S%`2yGnauj$8@K&1K!U zS`x!oR=4Inbt;hI7XG_;gTVK|#N)}~uy4iJoA1+*#r6^$ea7S`RsW-fE02fr`~EWq zW6Rh@A|%O9LdHm0lC2^;LrC^5`!r@MQI?4qiKuK9*|VE@qU=i%l5I4Wd?>?MW*Fu- z-`DH+&w0J?xzFo9&poeu&pqcn=iIw_HvN$ZPHLR$v_+i3%g|OEAGnfH&(Y@; zWs048L6vF|XS*CzjXx}zSuuN&cxwQ2^XU09akTDrHl&nU#44-3?y5BAemcHCX>{g| zuSs$P9fKDwEjTqa|3j-dTfCHxY*;_LWah6{bS}OhH`;DIkmWJ4EZ$(Hv}BQ2R2?ui zI`E6(=hB_MRr*mQp-S9v$x4E-7609C&i-q)udPzdH9D{nAYtEMR7XI+^}V5#e2qG* zn^L%yR+4O{ntzRM-Y-gc=WDN2w2yc(|E=yrwq26=TIi?2b4#~Y(FwJGl$x%^eOYpO zoD)%TZ{tT@WwvY5ryXb2v1@S-qa!l@Qx5(0(w^u~Y068^NNh{c%jTWHy(O3BoQSH* zYPG+)5g(ymM{n`iQpVbv2J<~WsZ>hk5cyrJHaodAZaMvJIb3DUJ0~MGqB;~{JjLgf z7OabVA&PzPD5+aAzmA#Owm84cwP8)m&!6Al*`&cGT-@zDJbfW2YHnZc)rsV*e9si3XTtJ>@Ke!$-5-{c2|M#YJwABDtWZI#vrOzWJtt6Jh}Yyv*yFU%m;Xd zeu-+T8aSvixMABcxXBk>HmKRd|I3=1vaUJMsgM1KR!z0i_jzgb&NmAdK+XLWq;+t1 zs37oew?KuD-NsG|>fH2Wtq(cUnRZJ~HqPU5(wUC#%ipysq%&RJHw34~)1@7_whOWw?%@>+FW z(wWaY)&-rXnA<7s>#A{b+OBxTi28b}Np#}{+eN<v+ zVVtw8!tZ8(EH&z%{MRQe;o7fZH@sUMCl`3I3eRl1uWjoSqSR&8GW`ag*>U(0o=H5k zDeNWH*+v2{QU)SbKmm?Y&Abnz|hO^1{^^iVs7LM5~3hp<`a{t=2%(?QIH11`v zWo~q|UGhOm9C4&)@A$@@-LTx(`V-_R_INwsb<{a%Pj!^KvsPtaY-m&aD-jyEBS(<9 zO0}RJ9H%7gIZd<~BRvG1U=&wi<=?pz+&CJiDGuda~=QaKdy1eJdJv)E; zUY`K7pypt~%7DNu$dis7MULiZHdzSI__oazeG?UZTIIBo3%9U*^3N{Lp|h~)F5LQn z@pj{V=%VGl%D7RnQeQ3TVZU|V(X_{zwbsKiAH!wU=TT#q@&-5Jw0)&FUMfZID6>FO z@!Hmj);U6-PQ5~)LXFZys8iNIiz;6gXYKGoda&h$ce#r5Bx)c_lN{q@hC^A}f#E}; z{+M~rf0W*rA7HGCJY$jsDV!uz6NO3a)t`|MEN9E!QHf(G#WXvxqjTZMC^%J#gS=fZ zsR)DvGqVG2hD8~7pn8KBuOu9{D0nMRx-wR<=hnQoT`F}ZI?hE#~k(dij*1(O|Fxti< z9m52}?au}_$dW{>USW*D9-K$n_n;o3X@6l1^+qF#Ul4O`F~9t1?U5(F<8|`9G?=Ql z0ij}ZF&u!Lz#kDbm0g9s>TK4h=?u9y=?IcN$ukpmB}yt5LQ$zX9$R~L;tt1gP{=kH zPVZ#1h!fikXFKMh(b%M4-ezLU-9|z+% zrU$U~?F5nH7>43sk4#3) zg55xF5I3%Eu=wT)Ez<1?;V^Ehj&<$NiSPbTa~jpa=HDIFAWVo;#wM9avp!Al$>Yv(_{P&-u9a^I_89VMET@!lusxc{k> zgnV;!t_G043D3p7<1k3Sgxp@;u=|oQs)0qLI3>SQH!X?yH5znu;Sijdd=JcU?}mE( znFcP9Hfqr!_?-ZDT5<_7-Tn8qx2iPKC1ST2VgDp}PKtJ;S<_c7Y4}uFp9)w#2)v9huKdzsAj59SHv^6(f zwnX7r5t=KY4b0!6hdi$hVvm({%82^XgjL26d$z(4M|M{J*4ai2#ER*$Gx!Ifj1Vk^ zJCR3aVK1CxD}7Oe#fhANQQ%Z?L58LpSG$DXB?9)qPupjG@#U%m$)6O=8haYs1sGuE zo$|B66`IVCkO?+j(B4*penvHLrNoaESh8Z^16yRLL`wN#Lor9{AY2X7Go8vok|L>t zCqX#2d<>H9U$Y(UseDYo+dXdD0N^tC87XUY{mj~-9;E_!C~2uF&XlAdC+X6TouTB% zZ4IqeNAl+@q595Jnp(_&fpL*IVIRRNXA-&FGs(y# zPld3H(-KadyO6mrp)Ocmh^-@+QG%cok4oOLR-Xh&s5cs`ecZ--KIkyGs@oedXu;>H zGAN=XtI_HEFOskN0nR1K2R^C|GO;jX3&-353Z(oZk#tyMke-XpDXBit+;|p(jdX$m z$rja;)0kU>GBq#hkYVq3KoY-!rbp984?Bx;Z)2M=o1isJI-oG9ND-V+50fBI>b(w^ zq1@P2B=Ic6XgV29Ia+hMhNsAfH`A4+zmXA?$>!m2dJIe&Gg3Nxleljz!K9~eg+9x` z5G`6cs>u67&4p_kB+jY?>FkbwR7rLC+4&4{qto*-)u51NR&NsZbl8c>QdnQplEJcP z@bHdo7<9$ImubeW-6kbB^K+tEWp$q_aW(fbGV;utOS@GAm?F;(wPziF&C&xg4+q65 z&)s4mMng35-e$BtS(D_~Y~yi?d@z@!MS!uvp5vU)k{SBxUA(@qwjjZ+-YqZ@po3|a z1u_`()x^x1lNuj3d7e$G+E4Tq?%X7)*Q2pW*&;C9hG6b(M5%Ctf{ER+SYm&a{VR&S z_W3Z3Pqc&?)8OJtIeGfdi9j`8cgLT9zRiyXt{t9)nm-&m80 z)V;Dqb`iD^v$DqC**R^e@e`wxccRC6Qe>{AeRMhZN2kcE$)oDWpobZ=;l3N+?jYX z-kw%HhT~yIZQfXDQ!`|Be2!RXi&hao`e4hFKu-{EsT29iMGZB+y430D&H}eqc|P}x zb|U|dH76!f9L3LPR0<#}d`c;fQIfe;B8ZC6Qi^lABTrG(9Two&>Gac?` zInOgM8YF@UOf06{f=VV;O9qG#0xECNK8RL4s{U0G?wLbzd|2^_DCwfW7;m}NiOi`K zQ*l>CIeZOZy`xGD5t!WFINlk0(nXaq@hxDX$)-vSz1GPB-447(pSCqWi{iM6hk4Z`c<<`$(l=aow)|`=n zO9ijFo1d=w!$EFCD2NP8mjpV^^{57_PDTPfdA8}sp2A&_NlhYdpylBX`?Bd{$b~T( zip9j9aD=ob=Zs0Bbwsj-Y8WpW8sf_U{w{W%mk!LLralMCovY4F9Vj6coxmtvGMJFO zH2SmM=AYRVILMoh@#y9a@@oh9@sY0zBHcKnBaV>jPQ2^4V?A}LM2~+?`ViFPdt5Vp z=o;f1uH!xi;Di@2&y*$T;}(8Svlp=R_S8k^t$E<=YNhkPkoTZ&Z2C~dTped~>VXI_ zTe)#(ih7Y7r9OS)r)@k3VuS%#TG18-#HVaAGM>zYo5O*4gi=h`7p!`1B4n?29&Gew zM~l+shBQ)IxtNQU@r9pQQp?i^aFMS%ZVbn@>h{k~dyy1dWIzm&HBp*B>*T++KYu#r z+cp?h&kW6?7Rdu6+V@F<6Eb4fNKdp*BZ%0`U?YB^0P2x5Ac6&=&2%_j4U)*=l=gMP z@v2O|uX;^%{W_#_N@cChqoJh zTf=-(*LmANnGRQ&>3D$AsoOQTc6rY=_M?s2V_z=)Ja@pE(9}=({N`g_s7A@=X$l{C z{@el7becW2sSj~^>cW)yJI*8SRTJ{d;JWH>#~9l9!2E*T9SHNmJt*9^6>=oHDnpwr zks-}TprA)5S6#>oq33;i@TW%RWN;Uka<}=s}^_Q8m+lftdkUWz5sdlbHFnS8DiPz}#A|&;Szu0(1ATz|lrp zccj51nA?8H5R~9b1D<^MmNq8h9HSYBN9LlS>yW?Z0OyM`ZU*}M_ zP4g*F5b3kQo$CL_nu*r5ZgOy^ZXtMXn8IQ?Ja`f-PQO}BNe%W`5XZ$QA>m|EbZv<{ z?aLj~EbuvcK{)w*VURd_^J#Z&^umb&19s($i&BkZu`=`){ssAii;r;Y8v=-}vlQ8_ zHc9m;E~GO_7+rURELlX!2?knJh_ASy5F@gc}+#b$pjmi@TTK3Lz82;!@E$BbwlVhV_ph=+9C_GVhaSGR9^ zY%^aO*eA0?`=DLTL}2AA3_y=UC~;*_l+2nijcrw^IrlH;^4=l9+Lg{o02XF+nVk2! zU;_s>>fL33-i})W69)HL2j~uXW@I0PesoxAz6e&^>z%#BAv=g0RHq1+z(~p^yrfgB zm&jfub*;l^Gf5ZN;Jy1GLjOKH`Z1mJIXY!CprE)`k|xyEbLRC_F z(cU*qc2893Ot2Aq!!MB=Q`WES2F{$wJnWShoWe;x={+LfHQAM^Ht}KB?mJJ#%y2R! z*PyWvb|8$4)Sb$8bLlvTUHOp!_+DkNMH*cB;CV4H?};cTU2$gKm?~1i^}h;Jep_cd z#l|>URvr$e#N;8gqZNCqH6eCnO&&Dhu->LRgqNwW)gP2(dF&%O%g6v1friqUK8V$gV zgk5=(Q5}+v`Q&dS?|G|z@DXMQ-2P>YjhRCqYZj+n$xv=HvGF-h+bBsSC2Ao7<&yl_ zh!~IO-FHYM$45f+bM-m57mHB1jMwP6ylF(BB#%=#Z!fIPVJxE@-i9t>4}(EuH$+LxR5l$ zzysqrI)_tvxKfy47epLFmOQ{%z96Doo>NX!ZjeONy@4g5d*ySvrXfqd@pHahK|c3E zG7tiXTUSK8ZO!p!e9Xy!N=^iS5GMl6$CiIwJ?tcfE6k9>7X~3iFK8EvYs_o3ce{|x z8aH?&VtyN^_h9n#WJqFjpPR*_zHaL{K$`0BV{B`sB=^8Yci_OuAQ@7^Pc=z%%*RS` z&lA%thYyx6sgpSxA^8}@M0Gb|Z{SsiIo7=r>51900bT{EdkW~W47Hl%zk6~tZO^6D zh&x0P8hTWpV(Mu^_8>u>LP$OTbKE@J5<%pPt1!LZ2ykNNDjQ78om8HuM!8j{drA*V zlUQ~ogGsUz54*pEGqsVMybq=^)!H(WFgBxs2$s2sK95HWkP)l4-U2kvwUac_IV?Ba zCT@q7P3h=N1cU(|(qvqW24(V(4DHx5l6*ESg+8VDlaq1g&>zmjh#Jl8wqz~hwhonM zw%Du%3~^|mt?)J)Gygjl%s7d^;@y|5kx~CjXCHC8PB>YIA564%<|TR0Y?B?ZDlf--lMN+4R-C3YqKS>! zED+O6T@46g!&4c@V_`M_v-LbknYi9PE1X1e!4mSYBr}&yypsu&G!@jHQzrNgntO`Qys6nIu>WFM9zq zkf#>LF_H=EeKpP@)6)zs00%AZ2>`eFU~Vk8u*azy(1AO0RxQP8P`C?Y0^!HpdUg*U zc`AiL))s{2yoJGtzAzviKEfIDo4%)f*KPt5rcDtFQy$Pf`@ay2+lO$DFoThK=u!d> zOk(MW^ee#0G}zB>8s@KxddcYq-_C5p6(VV=^gUX;o z3Ax+*{w1Gx*$^Yt`1Bz_+=*Bu*7EqX?LdsW;`u^)L$AIYgGI6l=OXx(Jw)}B&C-q2 z1xc1cxsIk{|IJjm@c-79W7hnSd}Cv9t%}fYcrvu*%;Q-^{6_fIMY)%-CvIP!T#*yk zdfCWPXal(-JQUDj#;ac_)N z+?B_n&+3XuNGA{RKH`OqJO3QMZM#I05z@PcbB_ML5u6krbJ;< zzu)b1)$oI|yIdnx8=n@}U+#URro}fZ_>D2da9WhTD~Av8;Y-fvWqe6mzl{rpFK-&x zogbmWry-{=FdWz9x@E7eVMOFQWrKm6Se=ZcO zs4U6HE?=W_^|xI5#-Ac=e5HkAF&{uymWcH>*&X$nTXt3cq*N@jYp9R}U-0HWW z4Awi1vGR@BZ!CZPbV*xO_ooBq_ZFd|H2;13yQ~ZB0|$hztltH3Mx&qo>8eiBAlYS| zArW34v)m#x^WxXrVya3XRa{Meo%6Ez?(cGQ@!W>Ks-?B>60vl#b_@NvrsUF&u?yit z>Bsk#^x*#{P@haYZK*UR@%vi=s3=`R@cYFMfBK^?MfGV%18IiPGrZL+^%L*Pj|t(c zvr$E^837xa^Y-8C+U@@>I-cMe%((XMlG>uZA5EH1NTm^TXVTs_HvIc|cBu>Wv_eOf z{tFWya>{?z&h}JFL5`P&gzTp{Ki9e0vpD{Dj?kciJ>7mwt^k9vLB%4A>j@Qip3p8} z;|qZ8zT}fXR$sHeLimSRfxkt#-cH#A|GvFbKi(kasCRGk%)J*LD)C+7LO#9TbMMKA zz|0kqA9G0(it{elPssO?=IvlM@9ZvX>mhTlo12s=d}aQ~7cNuqg^Zse0p(@z<*cr@5 z%sa4>zw-y_)$58IWeUjSH^z7l+Gf9?LQFb1Zo9frJFX$@TF$73-h^enyP@k97wZ38 z^m(=(-Q>wW=M>-Yp5+gczw41jF+Ak0nP=C^9zEj8OUa;tHpf2gGh2U?8dZ!IZiK!% zYpkGci2_V4l78Y<3>3nbTCyJbCdJ=0nGqFo_;uaW?8U* zD6QjgcUteHELlNhoO ztD6?FngQR=l35Y0CZ~Xn@-2yA+UV@^(o;)zGP{DADT6 zgC7(d%ZX8*;J#%&V@veC=%aAKMGI~Zdh^wd683T@K~)LHDOJk_>Uw-8a^X6vch|W> zRbSWr^->#&dRoh4x8#fdZQ(9(aG&0-z&ZC94OR`yf?a-Zd+txv_(ZO;>r$$3Vi2rjvXW2&I z2giSUDIJa0O?^KWJYb^B0RM)wrH;A!$W}jK`n|c@Q853TE5ubR_IAUY01zQxYB$f^Q>ykvhc1L;8^8Rs6Hz)+67yVl02fyRje+5Si7X@3oWc(Dl zoSB}A@Q=wUb*!>!+7R;s)-yKKT7oMw zB7F<{y*B0r4N|kKDcWBC-Ttmx!^+VGC{kTZ&+*Fcr;FKhjaH{kERi_*H;+p5o(1P+ z#TEWQ-s`p)(DeKNaZ0lWF2CM+CT}B6NAl?ZwsLwI{tN$vXW`F~@KLH)@nwYmtuLT% zE6e>wXT%6uc<~Tsw*+eO$$i*vJ>awK6&{@{Pi>HzTIxl0jt;g5=iQWr-$B$(3o5E6 zM;jPC2+kW7Y)~LChFGAdcOuwNu0GdehPti@3*8b)3b%L&b=~o=*XhIe;_>{QH~oZNV!|HYq1wOaYEBFp?e)86 zs!&L@_UqAy{kk~K^{ZTXSkUC#6Y2Mnycr0Ifqf6}DdmOQoud}}#p}R>TRj>pPjNGv zxwUOty^VTWj&HKqCK~L*p}hY+LQ8Cv6N=JOQt~7yDiXiIEkc>wKX%TlehqmXaw#5u z_W&U*I3BS|aEti36kt-)vv}(3oLUe!Fh`%}>6*O@3Y1^HcvG`zKpak?6( z;XsN(sw|h9;rT0*;{3fX_V#U6<~}V#*X~X!o>!*#jq1r@&rJ=N`G~ zWkGvrY9M>^SV!rZH+ol8tDc=ScIG)_XqmLmB{|k_Fe1p})tr`UwLskt>Ian0Wo*P> zO5Qg#JrH_okn)@7jmfL~wo$i}E@kkP`P+RxOnEbhllpP8GAFfO{;E^`*dmvr%GSc< zxsIH{u<66!&#-d^+bR++1EEWIH2AnaT(*RdBhTfUgaHp8ZV0(vOtIg{IJdD!NW>|* zSZ7F|KHV~HtU7%CW%e__BjZ!ou(RxFh0{&6BhOo2KM4+Lh|dtIlZWc0 zbj}J?$CW1Bjnlog==J#?$@I@#UUqZk)2U>S$L(Y)ckI{m(>77RW(^)CDSu)2Rh}it zd+#i~1R6T}9r^?7S2F!v^8+lv4#GkFpE`fLz<&MNdkqcV&fk4)M&t|Lb{(0sE(mg* t)r9?8)ms?%hnDm`{AK+(u=PLwJi5(T 0 && StartPayload(true)) { PrintToServer("[AdminPanel] Sync requested for #%d, performing", userid); - AddPlayerRecord(client, Client_Normal); + AddPlayerRecord(client, Client_Connected); SendPayload(); } } else { @@ -519,6 +526,8 @@ Action Command_PanelDebug(int client, int args) { ConnectSocket(); } else if(StrEqual(arg, "info")) { ReplyToCommand(client, "Connected: %b\tAuthenticated: %d\tState: %d", g_socket.Connected, authState, g_gameState); + int timeFromLastPayload = GetTime() - g_lastPayloadSent; + ReplyToCommand(client, "Last Payload: %ds", timeFromLastPayload); ReplyToCommand(client, "#Viewers: %d\t#Players: %d", numberOfViewers, numberOfPlayers); ReplyToCommand(client, "Target Host: %s:%d", serverIp, serverPort); ReplyToCommand(client, "Buffer Size: %d", BUFFER_SIZE); @@ -617,7 +626,7 @@ void Event_PlayerDeath(Event event, const char[] name, bool dontBroadcast) { public void Event_PlayerToBot(Handle event, char[] name, bool dontBroadcast) { int player = GetClientOfUserId(GetEventInt(event, "player")); int bot = GetClientOfUserId(GetEventInt(event, "bot")); - if(player > 0 && !IsFakeClient(player) && StartPayload(true)) { + if(player > 0 && !IsFakeClient(player) && StartPayload()) { AddSurvivorRecord(player); SendPayload(); } @@ -626,7 +635,7 @@ public void Event_PlayerToBot(Handle event, char[] name, bool dontBroadcast) { public void Event_BotToPlayer(Handle event, char[] name, bool dontBroadcast) { int player = GetClientOfUserId(GetEventInt(event, "player")); int bot = GetClientOfUserId(GetEventInt(event, "bot")); - if(player > 0 && !IsFakeClient(player) && StartPayload(true)) { + if(player > 0 && !IsFakeClient(player) && StartPayload()) { // Bot is going away, remove it: (prob unnecessary OnClientDisconnect happens) AddPlayerRecord(bot, Client_Disconnected); AddPlayerRecord(player, Client_Normal); @@ -658,7 +667,7 @@ void Event_HealInterrupted(Event event, const char[] name, bool dontBroadcast) { void Event_PlayerSpawn(Event event, const char[] name, bool dontBroadcast) { RecalculatePlayerCount(); int client = GetClientOfUserId(event.GetInt("userid")); - if(client > 0 && StartPayload()) { + if(client > 0 && StartPayload(true)) { AddPlayerRecord(client, Client_Normal); SendPayload(); } @@ -678,7 +687,7 @@ void SendPlayers() { for(int i = 1; i <= MaxClients; i++) { if(IsClientInGame(i)) { if(StartPayload(true)) { - AddPlayerRecord(i, Client_Normal); + AddPlayerRecord(i, Client_Connected); SendPayload(); } } @@ -805,15 +814,14 @@ Action Timer_UpdateItems(Handle h, int client) { void SendNewClient(int client) { if(!IsClientInGame(client)) return; - if(StartPayload()) { - PrintToServer("SendNewClient(%N)", client); + if(StartPayload(true)) { AddPlayerRecord(client, Client_Connected); SendPayload(); } } public void OnClientDisconnect(int client) { - if(StartPayload()) { + if(StartPayload(true)) { // hopefully userid is valid here? AddPlayerRecord(client, Client_Disconnected); SendPayload(); @@ -1024,7 +1032,7 @@ bool CanSendPayload(bool ignorePause = false) { } return false; } - if(!ignorePause && (numberOfViewers == 0 || numberOfPlayers == 0)) return false; + if(cvar_flags.IntValue & view_as(Setting_DisableWithNoViewers) && !ignorePause && (numberOfViewers == 0 || numberOfPlayers == 0)) return false; return true; } @@ -1209,6 +1217,7 @@ void SendPayload() { if(cvar_debug.BoolValue) { PrintToServer("[AdminPanel] Sending %d bytes of data (records = %s)", len, pendingRecords); } + g_lastPayloadSent = GetTime(); g_socket.Send(sendBuffer.buffer, len); } From 247dca008769cd68d82da799468ccba72199dd14 Mon Sep 17 00:00:00 2001 From: Jackz Date: Thu, 14 Nov 2024 08:56:04 -0600 Subject: [PATCH 3/4] Minor changes --- plugins/l4d2_randomizer.smx | Bin 40046 -> 40429 bytes scripting/GrabEnt.sp | 10 ++--- scripting/include/epi/director.sp | 2 +- scripting/include/overlay.inc | 53 ++++++++++++++++++++----- scripting/l4d2_hats.sp | 62 +++++------------------------- scripting/sm_overlay.sp | 48 +++++++++++++++-------- 6 files changed, 92 insertions(+), 83 deletions(-) diff --git a/plugins/l4d2_randomizer.smx b/plugins/l4d2_randomizer.smx index c21bbe7d2e0dbba871989c54332a84b146e273b0..a88885f1d10b370587400659f19b19edde039256 100644 GIT binary patch literal 40429 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

+UyzQSI^~8R%1C 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 H -1) { - GetEntPropString(entity, Prop_Data, "m_ModelName", buffer, sizeof(buffer)); - for(int i = 0; i < MAX_FORBIDDEN_MODELS; i++) { - if(StrEqual(FORBIDDEN_MODELS[i], buffer)) { - return false; - } + GetEntPropString(entity, Prop_Data, "m_ModelName", buffer, sizeof(buffer)); + for(int i = 0; i < MAX_FORBIDDEN_MODELS; i++) { + if(StrEqual(FORBIDDEN_MODELS[i], buffer)) { + return false; } } GetEntPropString(entity, Prop_Data, "m_iName", buffer, sizeof(buffer)); diff --git a/scripting/include/epi/director.sp b/scripting/include/epi/director.sp index 2ea94f1..c685f93 100644 --- a/scripting/include/epi/director.sp +++ b/scripting/include/epi/director.sp @@ -4,7 +4,7 @@ #define DIRECTOR_WITCH_MIN_TIME 120 // The minimum amount of time to pass since last witch spawn for the next extra witch to spawn #define DIRECTOR_WITCH_CHECK_TIME 30.0 // How often to check if a witch should be spawned #define DIRECTOR_WITCH_MAX_WITCHES 5 // The maximum amount of extra witches to spawn -#define DIRECTOR_WITCH_ROLLS 3 // The number of dice rolls, increase if you want to increase freq +#define DIRECTOR_WITCH_ROLLS 4 // The number of dice rolls, increase if you want to increase freq #define DIRECTOR_MIN_SPAWN_TIME 13.0 // Possibly randomized, per-special, in seconds ConVar directorSpawnChance; // Base chance of a special spawning, changed by player stress #define DIRECTOR_CHANGE_LIMIT_CHANCE 0.05 // The chance that the maximum amount per-special is changed diff --git a/scripting/include/overlay.inc b/scripting/include/overlay.inc index b448d99..ebf2068 100644 --- a/scripting/include/overlay.inc +++ b/scripting/include/overlay.inc @@ -2,6 +2,7 @@ #endinput #endif #define _overlay_included +#include public SharedPlugin __pl_overlay = { name = "overlay", @@ -25,19 +26,39 @@ native bool IsOverlayConnected(); // myplugin:action_name // Handles any action for actionNamespace and actionName -native void RegisterActionHandler(const char[] actionNamespace, const char[] actionName, ActionFallbackHandlerCallback cb); +native void RegisterActionHandler(const char[] actionNamespace, const char[] commandName, ActionFallbackHandlerCallback cb); // Handles all actions for namespace that were not caught by RegisterActionHandler native void RegisterActionAnyHandler(const char[] actionNamespace, ActionHandlerCallback cb); +enum struct ClientAction { + char steamid[32]; + char ns[64]; + char instanceId[64]; + char command[128]; + char input[512]; +} + +// Utility to get arguments from an action input. methodmap UIActionEvent { public UIActionEvent(ArrayList list) { return view_as(list); } + // 1 indexed. 0 returns full action string public void GetArg(int argNum, char[] output, int maxlen) { view_as(this).GetString(argNum, output, maxlen); } - + public int GetArgInt(int argNum) { + char buffer[32]; + this.GetArg(argNum, buffer, sizeof(buffer)); + return StringToInt(buffer); + } + public float GetArgFloat(int argNum) { + char buffer[32]; + this.GetArg(argNum, buffer, sizeof(buffer)); + return StringToFloat(buffer); + } + public void _Delete() { delete view_as(this); } @@ -48,10 +69,11 @@ methodmap UIActionEvent { } methodmap UIElement < JSONObject { - public UIElement(const char[] elemNamespace, const char[] elemId) { + public UIElement(const char[] elemNamespace, const char[] templateId, const char[] instanceId) { JSONObject obj = new JSONObject(); obj.SetString("namespace", elemNamespace); - obj.SetString("elem_id", elemId); + obj.SetString("instance_id", instanceId); + obj.SetString("template_id", templateId); obj.SetBool("visibility", false); obj.Set("steamids", new JSONArray()); obj.Set("variables", new JSONObject()); @@ -68,23 +90,31 @@ methodmap UIElement < JSONObject { } } - public void SetVariable(const char[] id, JSON json) { + public void GetTemplateId(char[] buffer, int maxlen) { + view_as(this).GetString("template_id", buffer, maxlen); + } + + public void GetInstanceId(char[] buffer, int maxlen) { + view_as(this).GetString("instance_id", buffer, maxlen); + } + + public void SetVar(const char[] id, JSON json) { view_as(this).Set(id, json); } - public void SetVariableInt(const char[] id, int value) { + public void SetVarInt(const char[] id, int value) { view_as(this).SetInt(id, value); } - public void SetVariableFloat(const char[] id, float value) { + public void SetVarFloat(const char[] id, float value) { view_as(this).SetFloat(id, value); } - public void SetVariableString(const char[] id, const char[] value) { + public void SetVarString(const char[] id, const char[] value) { view_as(this).SetString(id, value); } - public void SetVariableBool(const char[] id, bool value) { + public void SetVarBool(const char[] id, bool value) { view_as(this).SetBool(id, value); } @@ -376,6 +406,7 @@ enum AudioState { Audio_Play } +// List of clients to send an element to. If empty, it will default to all connected clients. methodmap ClientList < JSONArray { public ClientList() { return view_as(new JSONArray()); @@ -449,6 +480,8 @@ methodmap AudioResource < JSONObject { } } +native int FindClientBySteamId2(const char[] steamid); + #if !defined REQUIRE_PLUGIN public void __pl_overlay_SetNTVOptional() { MarkNativeAsOptional("IsOverlayConnected"); @@ -462,5 +495,7 @@ public void __pl_overlay_SetNTVOptional() { MarkNativeAsOptional("AudioResource.Play"); MarkNativeAsOptional("AudioResource.Stop"); MarkNativeAsOptional("AudioResource.Pause"); + + MarkNativeAsOptional("FindClientBySteamId2"); } #endif \ No newline at end of file diff --git a/scripting/l4d2_hats.sp b/scripting/l4d2_hats.sp index 137ae88..9e761d1 100644 --- a/scripting/l4d2_hats.sp +++ b/scripting/l4d2_hats.sp @@ -10,7 +10,6 @@ static float EMPTY_ANG[3] = { 0.0, 0.0, 0.0 }; #include #include -#include #include #include #include @@ -399,35 +398,6 @@ public void Event_HatsEnableChanged(ConVar convar, const char[] sOldValue, const } } -ArrayList GetSpawnLocations() { - ArrayList list = new ArrayList(); - ArrayList newList = new ArrayList(); - L4D_GetAllNavAreas(list); - for(int i = 0; i < list.Length; i++) { - Address nav = list.Get(i); - if(L4D_GetNavArea_SpawnAttributes(nav) & NAV_SPAWN_THREAT) { - newList.Push(nav); - } - } - delete list; - PrintToServer("[Hats] Got %d valid locations", newList.Length); - return newList; -} - - -void ChooseRandomPosition(float pos[3], int ignoreClient = 0) { - if(NavAreas.Length > 0 && GetURandomFloat() > 0.5) { - int nav = NavAreas.Get(GetURandomInt() % (NavAreas.Length - 1)); - L4D_FindRandomSpot(nav, pos); - } else { - int survivor = GetRandomClient(5, 1); - if(ignoreClient > 0 && survivor == ignoreClient) survivor = GetRandomClient(5, 1); - if(survivor > 0) { - GetClientAbsOrigin(survivor, pos); - } - } -} - public Action OnPlayerRunCmd(int client, int& buttons, int& impulse, float vel[3], float angles[3], int& weapon, int& subtype, int& cmdnum, int& tickcount, int& seed, int mouse[2]) { float tick = GetGameTime(); ////////////////////////////// @@ -492,12 +462,12 @@ public Action OnPlayerRunCmd(int client, int& buttons, int& impulse, float vel[3 EquipHat(client, entity); } - // If bot is commandable and reversed (player reverse-hat common/survivor), change position: - if(HasFlag(client, HAT_COMMANDABLE | HAT_REVERSED) && tickcount % 200 == 0) { - float pos[3]; - ChooseRandomPosition(pos, client); - L4D2_CommandABot(entity, client, BOT_CMD_MOVE, pos); - } + // // If bot is commandable and reversed (player reverse-hat common/survivor), change position: + // if(HasFlag(client, HAT_COMMANDABLE | HAT_REVERSED) && tickcount % 200 == 0) { + // float pos[3]; + // ChooseRandomPosition(pos, client); + // L4D2_CommandABot(entity, client, BOT_CMD_MOVE, pos); + // } } // Detect E + R to offset hat or place down if(buttons & IN_USE && buttons & IN_RELOAD) { @@ -682,12 +652,10 @@ bool CheckBlacklist(int entity) { return false; } } - if(StrContains(buffer, "prop_") > -1) { - GetEntPropString(entity, Prop_Data, "m_ModelName", buffer, sizeof(buffer)); - for(int i = 0; i < MAX_FORBIDDEN_MODELS; i++) { - if(StrEqual(FORBIDDEN_MODELS[i], buffer)) { - return false; - } + GetEntPropString(entity, Prop_Data, "m_ModelName", buffer, sizeof(buffer)); + for(int i = 0; i < MAX_FORBIDDEN_MODELS; i++) { + if(StrEqual(FORBIDDEN_MODELS[i], buffer)) { + return false; } } GetEntPropString(entity, Prop_Data, "m_iName", buffer, sizeof(buffer)); @@ -726,16 +694,6 @@ stock bool FindGround(const float start[3], float end[3]) { return true; } -stock bool L4D_IsPlayerCapped(int client) { - if(GetEntPropEnt(client, Prop_Send, "m_pummelAttacker") > 0 || - GetEntPropEnt(client, Prop_Send, "m_carryAttacker") > 0 || - GetEntPropEnt(client, Prop_Send, "m_pounceAttacker") > 0 || - GetEntPropEnt(client, Prop_Send, "m_jockeyAttacker") > 0 || - GetEntPropEnt(client, Prop_Send, "m_pounceAttacker") > 0 || - GetEntPropEnt(client, Prop_Send, "m_tongueOwner") > 0) - return true; - return false; -} stock void LookAtPoint(int entity, const float destination[3]){ float angles[3], pos[3], result[3]; GetEntPropVector(entity, Prop_Send, "m_vecOrigin", pos); diff --git a/scripting/sm_overlay.sp b/scripting/sm_overlay.sp index baf0390..ba71fc3 100644 --- a/scripting/sm_overlay.sp +++ b/scripting/sm_overlay.sp @@ -66,6 +66,8 @@ public APLRes AskPluginLoad2(Handle myself, bool late, char[] error, int err_max CreateNative("UIElement.SendTo", Native_UpdateUI); CreateNative("TempUI.SendAll", Native_UpdateTempUI); CreateNative("TempUI.SendTo", Native_UpdateTempUI); + + CreateNative("FindClientBySteamId2", Native_FindClientBySteamId2); return APLRes_Success; } @@ -128,8 +130,11 @@ Action Command_Overlay(int client, int args) { ReplyToCommand(client, "URL: %s", managerUrl); ReplyToCommand(client, "Socket Connected: %b | WS Connected: %b", g_ws.SocketOpen(), g_ws.WsOpen()); ReplyToCommand(client, "Auth State: %d", g_authState); + } else if(StrEqual(arg, "players")) { + SendAllPlayers(); } else if(StrEqual(arg, "test")) { SendAllPlayers(); + // TODO: server can send: steamids[], steamid, or none (manager knows who was connected) JSONObject temp = new JSONObject(); temp.SetString("type", "text"); @@ -276,38 +281,45 @@ stock int ExplodeStringToArrayList(const char[] text, const char[] split, ArrayL } void OnAction(JSONObject obj) { - char steamid[32]; - obj.GetString("steamid", steamid, sizeof(steamid)); - char ns[64]; - obj.GetString("namespace", ns, sizeof(ns)); - char id[64]; - obj.GetString("elem_id", id, sizeof(id)); - char action[256]; - obj.GetString("action", action, sizeof(action)); + ClientAction action; + obj.GetString("steamid", action.steamid, sizeof(action.steamid)); + obj.GetString("namespace", action.ns, sizeof(action.ns)); + obj.GetString("instance_id", action.instanceId, sizeof(action.instanceId)); + obj.GetString("command", action.command, sizeof(action.command)); + if(obj.HasKey("input")) + obj.GetString("input", action.input, sizeof(action.input)); - int client = FindClientBySteamId2(steamid); + int client = FindClientBySteamId2(action.steamid); + if(client <= 0) return; StringMap nsHandler; PrivateForward fwd; - if(!actionNamespaceHandlers.GetValue(ns, nsHandler) || !nsHandler.GetValue(id, fwd)) { - if(!actionFallbackHandlers.GetValue(ns, fwd)) { + if(!actionNamespaceHandlers.GetValue(action.ns, nsHandler) || !nsHandler.GetValue(action.command, fwd)) { + if(!actionFallbackHandlers.GetValue(action.ns, fwd)) { // No handler or catch all namespace handler + PrintToServer("[Overlay] Warn: No handler found for action \"%s:%s\"", action.ns, action.command); return; } } ArrayList args = new ArrayList(ACTION_ARG_LENGTH); - ExplodeStringToArrayList(action, " ", args, ACTION_ARG_LENGTH); + args.PushString(action.input); + ExplodeStringToArrayList(action.input, " ", args, ACTION_ARG_LENGTH); UIActionEvent event = UIActionEvent(args); Call_StartForward(fwd); Call_PushCell(event); Call_PushCell(client); Call_Finish(); + + if(StrEqual(action.ns, "game")) { + if(CheckCommandAccess(client, action.command, 0)) { + FakeClientCommand(client, "%s %s", action.command, action.input); + } + } event._Delete(); } - -int FindClientBySteamId2(const char[] steamid) { +int _FindClientBySteamId2(const char[] steamid) { for(int i = 1; i <= MaxClients; i++) { if(StrEqual(steamidCache[i], steamid)) { return i; @@ -316,7 +328,6 @@ int FindClientBySteamId2(const char[] steamid) { return -1; } - bool ConnectManager() { DisconnectManager(); if(authToken[0] == '\0') return false; @@ -536,4 +547,11 @@ any Native_ActionHandler(Handle plugin, int numParams) { actionFallbackHandlers.SetValue(ns, fwd); } return 1; +} + + +any Native_FindClientBySteamId2(Handle plugin, int numParams) { + char steamid[32]; + GetNativeString(1, steamid, sizeof(steamid)); + return _FindClientBySteamId2(steamid); } \ No newline at end of file From 863f5d1ce6992e57ccd25e989cf22dee404f9a15 Mon Sep 17 00:00:00 2001 From: Jackz Date: Thu, 14 Nov 2024 08:56:30 -0600 Subject: [PATCH 4/4] Add missing dep --- scripting/include/l4d_info_editor.inc | 94 +++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 scripting/include/l4d_info_editor.inc diff --git a/scripting/include/l4d_info_editor.inc b/scripting/include/l4d_info_editor.inc new file mode 100644 index 0000000..14a1fcf --- /dev/null +++ b/scripting/include/l4d_info_editor.inc @@ -0,0 +1,94 @@ +/* +* Info Editor +* Copyright (C) 2022 Silvers +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +*/ + +#if defined _info_editor_included + #endinput +#endif +#define _info_editor_included + + + +public SharedPlugin __pl_info_editor_ = +{ + name = "info_editor", + file = "l4d_info_editor.smx", +#if defined REQUIRE_PLUGIN + required = 1, +#else + required = 0, +#endif +}; + +#if !defined REQUIRE_PLUGIN +public void __pl_info_editor__SetNTVOptional() +{ + MarkNativeAsOptional("InfoEditor_GetString"); + MarkNativeAsOptional("InfoEditor_SetString"); + MarkNativeAsOptional("InfoEditor_ReloadData"); +} +#endif + + + +/** + * Retrieves the value of a specified key from the games mission info keyvalue system. "N/A" is returned when not found. + * + * @param pThis Enter the pThis value from OnGetMissionInfo/OnGetWeaponsInfo. Can specify 0 when reading Mission data. + * @param keyname Key name to check. + * @param dest Destination string buffer to copy to. + * @param destLen Destination buffer length (includes null terminator). + * + * @noreturn + */ +native void InfoEditor_GetString(int pThis, const char[] keyname, char[] dest, int destLen); + +/** + * Sets the value of a specified key from the games mission info keyvalue system. + * + * @param pThis Enter the pThis value from OnGetMissionInfo/OnGetWeaponsInfo. Can specify 0 when writing Mission data. + * @param keyname Key name to set. + * @param value Value to set. + * @param create Optionally create the keyvalue if it doesn't exist. + * + * @noreturn + */ +native void InfoEditor_SetString(int pThis, const char[] keyname, const char[] value, bool create = false); + +/** + * Reloads the mission and weapons data configs and forces the game to reload them. + * + * @noreturn + */ +native void InfoEditor_ReloadData(); + + + +/** + * @brief Fired multiple times when the mission info data is parsed. + * + * @param pThis This pointer used for InfoEditor_GetString/InfoEditor_SetString. + */ +forward void OnGetMissionInfo(int pThis); + +/** + * Fired multiple times when the weapon info data is parsed for a specific weapon classname. + * + * @param pThis This pointer used for InfoEditor_GetString/InfoEditor_SetString. + * @param classname Classname of the weapon being parsed. + */ +forward void OnGetWeaponsInfo(int pThis, const char[] classname); \ No newline at end of file

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