From 37f7975416b8fe97682b34876e3417638efdedfb Mon Sep 17 00:00:00 2001 From: Scott Ehlert Date: Wed, 13 Feb 2013 01:16:41 -0600 Subject: [PATCH] Rebuilt compiler binaries and built new binaries for OS X. --- amxmodx/JIT/amxexecn-darwin.o | Bin 0 -> 16356 bytes amxmodx/JIT/amxexecn.o | Bin 13040 -> 12896 bytes amxmodx/JIT/amxexecn.obj | Bin 12638 -> 12621 bytes amxmodx/JIT/amxjitsn-darwin.o | Bin 0 -> 24434 bytes amxmodx/JIT/amxjitsn.obj | Bin 40212 -> 26143 bytes amxmodx/JIT/helpers-darwin-x86.o | Bin 0 -> 365 bytes amxmodx/JIT/helpers-x86.o | Bin 688 -> 592 bytes amxmodx/JIT/natives-darwin-x86.o | Bin 0 -> 708 bytes amxmodx/JIT/natives-x86.o | Bin 1232 -> 1040 bytes amxmodx/JIT/natives-x86.obj | Bin 899 -> 788 bytes amxmodx/zlib/libz-darwin.a | Bin 0 -> 87176 bytes compiler/amxxpc/libz-darwin.a | Bin 0 -> 87176 bytes dlls/regex/lib_darwin/libpcre.a | Bin 0 -> 186312 bytes installer/builder/builder.exe | Bin 19968 -> 19968 bytes mac_support.patch | 30767 +++++++++++++++++++++++++++++ plugins/amxxpc | Bin 122088 -> 150762 bytes plugins/amxxpc.exe | Bin 101376 -> 101376 bytes plugins/amxxpc32.dll | Bin 261120 -> 261120 bytes plugins/amxxpc32.dylib | Bin 0 -> 173104 bytes plugins/amxxpc32.so | Bin 221808 -> 207368 bytes plugins/amxxpc_osx | Bin 0 -> 66960 bytes 21 files changed, 30767 insertions(+) create mode 100644 amxmodx/JIT/amxexecn-darwin.o create mode 100644 amxmodx/JIT/amxjitsn-darwin.o create mode 100644 amxmodx/JIT/helpers-darwin-x86.o create mode 100644 amxmodx/JIT/natives-darwin-x86.o create mode 100644 amxmodx/zlib/libz-darwin.a create mode 100644 compiler/amxxpc/libz-darwin.a create mode 100644 dlls/regex/lib_darwin/libpcre.a create mode 100644 mac_support.patch create mode 100644 plugins/amxxpc32.dylib create mode 100644 plugins/amxxpc_osx diff --git a/amxmodx/JIT/amxexecn-darwin.o b/amxmodx/JIT/amxexecn-darwin.o new file mode 100644 index 0000000000000000000000000000000000000000..6821de60c581597547010060e33328f0cfabf85d GIT binary patch literal 16356 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 wx1eByc31$5paaTKfu*nL>?jouMP7uv8ZPnu7OI zw-J^iCPgej8mULkIhT{ER(QIrJQ*3a(Tqu{y9ic5Ohra5%gE-O+v&W}Y=5O)U*a*W zXo(u-i1=~7=dDJVZitoZ;{v;aovL!7NYWtNiM9Jp&=4N6C@rFb23V?37H^#yE5J+Y zUr55rKG~q0Ge^PAbgC9JGKYbYW0rc}h)ODq1jP@S>WzY2dvEP;u@bk+yvIvM<=ej#|;#PuKQVODfg8e$sT zW9(Q3tiVJSk0my)vF3kmD%%rYxlXDX(x))|Gh zzRq*zjn{bqD{Dds#d@Heua{oYBbB# z(Vi5Z(RD6e6}_sncMgHO6-TX7SC2VjzyU{XpsxO%!--jt#a=u(ic>_weh#5G5_WM2 z(^RoQnCqCp4a9FajLIbsJ1#Yt7Q z>%dV*Nd>F8wvGcadbGYq>Ojgk;sL4Zj3ck#@A9~PK5v|`hFTER!I2ISg(JNngB+nC z!yFj|8Ry6okXar6yJ9`M{NDD9{uc6GM@`nojm4+E?si*F4s%8#*q-2JYgQs1vF#J` j=nvbW9d?_$smbrXaKUx{EV0>&bL~0*k=$U}Zjf2TxkEf0t<_f)y6YEt>rn_ zwG~v5(S!v+TF!4&I8#`n!?*ICNsv(=$r$Il_JIm88IVy=Gi(ZH30cHPN+)%(C5Ayo zO6(2pX5KCO$Fz9rK(yR|BJhgXsj9+d*;>f1hPC_h!GiFx5cD!ZXn>}Ac;-^;umxUR z-!BcU?BNZ;~XPDU+y z#&BXTP=V0|FH>Xn&?Bp(Uf2M5C%7&f^-iyQixpmh{Lth%|0cxN`A$`&&gZDLT4x4S zY@IRcmFwICl{bo~qdg2NeAh^acKep2l*w~G2&!f+yhagTPCjT4aaLe37#ND>3wQo2 zsn9jy*Q8%}c#{t<9Ly^_Xyk*{Jdgi`1?e_1B$Z0LS3dfJ6{CH}DtB9oZcnqHllHgBj^nCVX_!MY%BKj#?E3$=I64IM-llVZN zt5RuLvXGL67sQp6PiicP^J$vY&W8|;VF9`cgtSm{QbBki?-isJ$bwAv)H*8b>=nB- z(AN4oc8JMRkOm<23epUusZ&NRKA)r6>G8D5gf`@bpn!s$0n)D^JwS#OgaCP|AlHF> zRFFX+%WUde*A8Dx`)QvSCF{x3W|!D%HYX;RSPGqPx38tG&2i!w=`Ae7#pFfdPHZ6? LicDffkzVy5l0qvM diff --git a/amxmodx/JIT/amxjitsn-darwin.o b/amxmodx/JIT/amxjitsn-darwin.o new file mode 100644 index 0000000000000000000000000000000000000000..0b21d6d5ec31a489100b53dde3c3e6097b2da816 GIT binary patch literal 24434 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 Q1OBp$9JRA*cyS;8U-M>Ed;kCd literal 0 HcmV?d00001 diff --git a/amxmodx/JIT/amxjitsn.obj b/amxmodx/JIT/amxjitsn.obj index 24682e0009dcb7981401fd089f48988f6f5bdd99..4981755744847fb0e5389254cde73c5001a0fe62 100755 GIT binary patch literal 26143 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 Yx2&jYqRlPr;5O8uqehE*T{?pOA5^$h=Kufz literal 40212 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 diff --git a/amxmodx/JIT/helpers-darwin-x86.o b/amxmodx/JIT/helpers-darwin-x86.o new file mode 100644 index 0000000000000000000000000000000000000000..384475097d776857738e7e7993025b7fbbc87ab6 GIT binary patch literal 365 zcmX^2>+L^w1_lOZAZ7$&CLo>y#2^6T*MM1=gac4$0}z8~kbV#bsRx1h_>$C$5(pc@ z4{?nMLGVE=2OtLNM*%Dd9>^UMK>PuSLBa|^!+n8tXy?=59YC6ae^K)f#v1J%AWQid zsWt!|aPS3t^AFY%@#Y^aB|-;Z@i#wWZ2rYi!VXsRn#u4$bnIazpmIK-9%~?N0cG0) vX+a?7hk5{PB$UmNm|Ia1?_5wCTv||&UsS>nPe?#7Eip3(Lz!M`UJ3&MJflWMqH=Mh0dE1doBi0V-hvrZpH?8JJ*7Nuoh!f-oCYmjICC0A+(H0Vtat zNHas(ASwW;P7#R@G6Mtzff(5(4M2$kpco4fvqEW*nUX+^Y~BZ;x>%qX48Y8T@k2YG z2JZlI_!l+*V64&J0aC!fNVNgzu!Aqyn}4vDh&TUWDG@sOiof|0WAiVD5_Yhf*Gz^7 zqGJy;=#`{alrZQOXB3wdl_VwsS(UjE8p4NJgo8$Q4-3P`|H#TfF=GT2u!ajVGI#*l zwn%(XxWIq_P`x6I1EfKGhK$slg4Cj7-3kjcy~N^NhQ!>8ig@RO(%{m9g8ZTqhIm2( SdTEK7IT*_HQu9(kRsjG`{7onT literal 688 zcmb<-^>JflWMqH=Mh0dE1doBi0V-hvrZpJYfb!%3keMLN2Gwi;r@=cwg8YkYL1Hx)J3tiwBGm?<(+|F2w*{G8qGSs)xJ3HkEB?kuAO(%TfCNJc z7g+U6kc$itM8_UxUC}Ge` z&d<$F%>y!uGm1-!N)nTRtjb&n4dH{##{@8UgJf73KK@5m!HmIYWH16M@PaF1Wbgp8 zeUSKqa5gC17#S4N_zW4TIR&Xj#kv(1W_pRmxeST96&3N$1*O5I1qJy80kSfUE)l7oJ%s diff --git a/amxmodx/JIT/natives-darwin-x86.o b/amxmodx/JIT/natives-darwin-x86.o new file mode 100644 index 0000000000000000000000000000000000000000..9ad779d29ebf8ac2a2b709718302802ccbd40bbd GIT binary patch literal 708 zcmZ`#!Ab&A6n)izE`|glh=RVLWxF7lauPu?a5Oje7<2@S#>g?Iz?CbRRo_tb4bvt9 zg?6p`ftIam6_K4YzH|b+aNa%VzI*O{yywri?}QLy30MFYffs;5{YWw=>ZpAH%=8oV zGNkkz-<$A>w#=$E(@_lv{fsIWalg=bOhU?r?b*MIGc$%|#55?|OMK)%!S}2JXXw${ zgTe@@Ja`Svt{8f!xwLgWFg)7Fu(LsS2w^`Mtg;G%2AcaZNCFC&NKFmv`XkU~G}ImPKs zDUKvI6;C5q6=#3cr*Ie}w>0W&)T^F&AWi2;0*4=}Mz%;8~8U}Rv3pIED0e*nl}VL$*Fn-?g=j1XqH z090p)#0PT0KpaRiLD?Wm0K@@GvH~d%AO@Ky0L1b@jBK6&kaLBBVX`};psqSljuVJs z-~&)j0>}aB1=$0lL1ux$z{@4&>sz`=k3EKnvdkOr!O zg8-m9c{mRtCk7N_MiMUosvtj4ahu>$+3({lM@&VO&LNmQWgACOUg4-QWYGF zi&Jxxa#D*F4D>85^o%WmO7%)oD@qvjQW8rN8T69#b8}PkN+#c7v<3#4+-5zdpTfrL!^p(2^|wIaQw9bGk%_$GM)5#K3J@O#Vh~^kVg-hP1ih5Rl0>iwgkS+u z4}th8!^E)M$x4iJlam;&SV6j(Cog1_XJnatknuO4Lt1KLiJpN0BT)SR|H(U;P6GfD CU>R5d delta 135 zcmbQj*38c9!^p(2?-;Xl8Y2UP@I+p5qkRkv3@JdY1QY-PHXv4D2uRRNNi0bOvO)47 zzyZW@Ks9NM6T@;Rrqn8?0R>oqn2n(dNHT$0tKnim#>5BKtRUTNlNA`{89639F#ewG H%XAz7cElBO diff --git a/amxmodx/zlib/libz-darwin.a b/amxmodx/zlib/libz-darwin.a new file mode 100644 index 0000000000000000000000000000000000000000..03964e8e745100720d199fbdcfabe399f3aafdaa GIT binary patch literal 87176 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
  • `@j(mR>7Nhsa$Vw{=KUP)+->|UOj zJ*xGY*3CDgkgc1`@U*eQKs616eF`oj6ewHM$Toa^iUc&894{7K(+nh(>HT;{ch(^x z@yA%7xImo=7v;MO5dDb(45d2K+ihGvDHn`5*0&FNT% zc!6dT&uDIjZcpOxh4F&x-hmSL=i=$yhZx(4{1bB153YCx4By5i`9}Q}UR%)WzX*X0 zwOmXr)^-@gpl7DdmW}yq!JGvMu6|_-q!3@twI}8mBpTbJPmd#LO>2%l^xe+~-|20B zvh{wZ)aLW4`ZReMPB}+zoA($J!Tp+&L1TO3Hk|(4KI!^#dEdY6_pLrZhX}1-0t`zW zKC%M^I81h4$zjoUz1VHqSF&Yz*8=I=7euj{W5m@o^N6``b*6Ho?S*7*EIb< z!t##pTn5G>5LIvr5-@@sdNg@6!ucH+tz3}!^-{&UD9)KUzvg|wa0Do2uq z9(^YC==L%u@Up>+oz5&Cm9xsyiSz6+CetQ~WtE9}nKIFtx{HsMy-{;WsG&ks*^@8P zl4Xd4LNFg9w8>?+{p9mS=7V&+)DNKIY}1XM36CZ%VwevD04c9yYs<-=UkE{01Ds3D zSt4l=`K|tc6LX!4xrC?190!v3E#|NPArKLWIa6wr^o$(wy0_FKQ zet*Ke*ER`;X$V3>WBa7*#_^C)N7e;bzS7K;^&c}0xshxK*``v0c$2O|3bXQDxd)BJ zZu9xn+}nf(hu(xwsx#!CylnIN?5FN-2a2u#B6BsZufu+-8dL`4oEl&2gk4z3zm$Ga zScQ5nWD8q~O~#wSj@aI~O6Isi36PiiA|BD5D*>W6#6@pw9uVKAdMko=kObur6iGZ; zL^+UWXKF}dGt&^RZzdr6JjaOf~EPjL_x97TwK>)GoFQdUgx?| zhzqsD{taq}eHwKdmj#3!7MbLRT9zVMLxQg@^}s`%LAuGYuf%x|RnJnb6;W7)8Zt!_&ZLDwT$v3wek}(? zUBy#D5r!`9R2ruywu@rm2WwXYq5B0?lAa(M-8m11;7>m@w-%e;m8FM_V)*+{h~SzWKOmisF|m+- zY0;p*u(%-9@-;VPz(&OV>Dx_KAb}JgnXFPvWYX2+^mz2EgKXprME3U+ASeF$3@3qN z9)zSfvCosyFq%ozyLBag36&sR-I zl#WX@h7)VXBo!kt#GarM^ql5;%b2K^^>b z;eeQ8OmwwH_K*8pE54>I*^9{%9Ln(RuYTn#=f(HLH!na|!FUnw#Aas1PXq5u;7lIgiOeO~kpC14)+JhqxN@}K z)p7XClT8|;2Qq6kJqM4`$xMQwk<_vUG>! z@Iai+H$2ob%qG_zFCN}U$=K^9WY)7#?=8KD)r8X6u1~5^@57OUo)eMQpie4kEsX39 zB`-$|DbpmyD0zg}B|Xwrln($@0Bwm$k_T=Cj2Gj)!AFL&|AoAm<%=UScli<6B`Jv_ zb?wY}OJUL6`^+JFx08?XCjjd8lrz7HFf6sQaLW@|#=O98NvJ3NIRi%oX{s_DK zbc{sf{^i8ufGFJ%SVOITp=6n>@hBu$<55Vi#zRP(q?y%tqMc9*F#Q&?yglolJ+mV% zLu49;)$B?@FZF#(t;FSsG-z&4yV1EQ=8g>baXHP_Q0#UPBGqW>a$gsMiE}6(>F5#@ zhyE_HkOU%{Qr90Gt;vfMaZ(7h7WCNTP+u$^CZ5bZDeAo-`ZDDy4uNgQNBHsLd@8&W znLXzzemf-gBZ){yp`QKTqSIiUhhRhiKz7`pMT*JvE-`mWQ|}kTOO`tndn#a@xE_ahbSIw-4<)~er>=%Xo6w;mXhSoDdRE>Q z4AwOlsWHg{;x5fJU(>+kt2u?Buco^d1V?vHvoyrmw=1v7h*V>Bpdm=7S?5Wz1o+k; z7(kw9A}7REC~OHO)euqoO43!s2{$GRg05v29;cH`WZ3 zP0HKM+CZ3#1n$~|p;9|oh z8IE=DGaGf?yDM_!C8U#j5lqpgwV{(itCmy-1twG$D5U_YYa}^lKeQ-~OND1}SEfUC z?n7|zN{5P}2z=GSraiFq4C|8e!Go$`L{7#(C~+rCnI=e?Xd7y)_Zd8!Slp}yc@nI! zVEw*|L}|$xj*`Cv{k^RCOT3{UqV12f_oiWaQ6i3(h>tlD8IFio8kVL0MPRIs!pPQ8 z%-H$qp0Hhd!V5r*HYkxWHGfKWP#Ny9-C<;h>HKzNbbdE~lr4y5heZlCw~|Rk+Ou;g z3UWv!RXFr?Q6nilU=-urfo1t3%9KKSUaAwUrW(U~;Cjiybe`zIjXnNZ!7yE_H&R1m z+LO>|!2u{kt{ugBs5)TU(Nc0OQcsVVvEV7z`~6SEei)k7iQ6^gvN4Oj;VfV$A~9{9 zkyz)UJl-l}4)LX7sN`CFb2%{vfum4cYA#7E4M<4v6y~U_hS8m)!Cod4T6Y(ormH?+ z`tXqyg4ksaAlga&iRIqJcE;>{;W&3t$-aE(bC4u|II};GsJJ;!qF{w0{ z`(Eh5xL*Kt%ZhesEIjlXb{`hTC@LL+hdqwrd7hot;L1Ii#DfUWgOF$iA`DY47!`_F zSI2F?YUPAotGHp6%G;vZp7kk|F^9-aVTP&{WehT4`AU$Uy5*Lrp2Dp2T@>TM+Jx|U z$I@)xi#%*O)QlK#ac@Dssb?$6%^uB+CT(V!(+&Dq$ZJLE-yC`VI+D(V zegiB?ZK`k>`G2-3hf#{ucVTEr56~R)wd)bR(+p;t9$>B0uwF-VNOUF!zWJeb#|aoJ6cZ^}p~JymSY*J#UgLz|ised@quExWs*E3s4Qa#(klENoNlrUtc!HeoJat8EaP#>NQdib~zKoVyFdo>D6p2Hfhdum4vUqO= z5)-~(K%jc9Kw`DDex*K)R2<1maNW5(nC&gpJY=djki~N)FfEI}vPhig zwen{y*$$(@(S`~_YoXh6NXvCLy)YaY2g&GBWc@ht%ha-rYn=vhIzT!UM=9X4<02z$ zJ?4^n$o+t362_uRv~rM%mwIDyW(}#p4N_j)Z?<`D&dkOikG%VBWIQbbFZb#EEK4229hg1ew~}}W|^!`i{;=pK%T7W z)bZ#=X=Z~*Ge8Jrl1EKC+#Ohz+>{w9_IoXQqG-(cFq|go^Q9(wZRT&TqMq9S|6fII z`Uom2Pvtg4t#n(yVp=v>&yD?1Lu~`_pRj(jvhy(g*=pr}Cn;=N)+&<2lhdK5*Ntrd{xYy%&CR@vN6%`QF+f4O0Z$c4uMsGSS3Zgoy4L(;=#ajghZgm6DjZE>2 zyJHsD%QGXz_9FvHIzwDXA{T^Owr2NAFH0oXOd3e9blMLy#g&?)cfFF-JTmo4lTsU4 zNV)ZjYV1L>iiUvq|DOwFc;PV!`XmMuPJ7(26~Y?bISWmk zYoMW)jTBy^i?;Djl|+&=c8SfLZ45oyeqs~We#c^(g`xDXga5)kMm?!e50V*jen9!j z{SYm7+CK)-cYsvw!#})$>IpNB&7pO1Q3)MpkIHZ|RCZRwjFh!ZPWlHSSkB}YGGYb$ zmZCe0;AIuH`X{g^TEY^Ap}5Y46*Yb&LbM*Z2ai~7f@}7BjRI=wMBsG!bi$D#2(*21 zfkPk)t^V;&J`|AL`4Fp3a7{iV)A`WJd@xT5SE1}g53bDBso;EoZP2s$#$j+Rsuypt zwecSiO}pHK4;?sj=}wmRuZ__qc>|sQvAMbpEhc>$>x-2g^0k+E`$r|OLWa_{99qle zO_i<_NLMTz_=ky~Ql)TC%igq9sNRc^-(ZXte=T%o zS^H{fWNH#=Vm;I!Lwl&ddxck&EjTa*&+(~>c^Un>p)As_Y5*&)SSWb~$XsU?i4 zg)@g~_g(4LFv+|F)MlW?<&kE|x@HhrhZ$k#IlrR4Wk@BBrO6lJ% z<*~Oz%0Jr`NICaX4u+KPrOa^P>yBw-kBTHYI$gKL_Uz!toYcM#?HiIPk?F8>FS??t^9n%8&@yM!=R`l{eNGn=4$gL=pRj#+h@IK++gI4r~L25-G%GrvF|E^Xv1hG|> zmqU2^ROQFi);@&Pa@>(kQIOot_TDfz2zi(_h$r8;2ZN~f8!Y(=37!&zA76$G3{yZ_G=;TvpNQ|m z35h+M1=;n-mTqh!e2Kudn7q!6HUgi8OSC0~TrR>!8m9R0$Ng@BjU!CeIblN&`~sJ= zcjv|Z!vwEC9~HuEj9p^W(=9~a|+K0{eJ(Bko>zuit+aXqBQeAr-s&;Eqejr`pfFl7$NmuxOg4c8TL!x%c z*#}ZpT66hMmedI?hRvqEW+761w2nEPXd?-$uhBv$HQ zu6+Ay@&=o=Taz2nq1l?mK^0K4aep5wBA(nU)xm9-rY0FY<>oLk_6Tfx7VLb1?G_k~ zRyQ6Fvp~FE0(*)j#~&F>nj=ON_PD^fxZ}d^K8>&)0>dn?3v1~f7WW?^B=$l!Bpmm* z34~*DH@&U!$Nh%{wvDiF<6-D%mb@Mm*e1e0pN5?*GaPS4Dr+kP~M9ebXXU(9eu7~qWY zOl0adg`a>GU2<>=(f~hafuHHlb0g{@o@{4rxSc11P3PGvup1HA2pnP3dBzBFJ5Pa_ z&a;_7xAW9!=sfR|XiJ#jg`h3rOJ+X&alc7m(s|0do50e#w1MFDuLrc)?Y^0v=OMz6 zrSs&eGN8n%D>VQgrWDC{=jwli{=Q~jd-j!AAX!nZ30XrQl4O1NTtk=o>AT0g1>2Ug zd(7hZza0|wGIDVx>N2S{l_T3t)}dzN$!gZm+9JzJd}xjU(@m}TCuw zb?eN}(IGAY%j3yK!g!}cWU%QF7YfYj5Cx_k;sSv=9iqUrL!2itr$ZE&c8GHY=5&Yx z(++XAz?=?|FzFCy5#n};3JK#=AAvX>qNKMKl7P69Q9f;()*$Yl1MbCiWBJS`!L^HL*`1jx{0a zZAB&E@En0T)`Y;+n%E;S$C?nBS`)hk=2#PirLBow1iRLRL{)3zaf#|!69Q9fVu!%S zQa*HeEiknv9wE%NCb~15CcTJ=N~Eh7Ya-n=zx#i$XS;HNc)PTX&Ukj9e_QB++k zi^0aqdQf1Fl|`6XSsjGLK25&kkE8`+tgNjBx>lA(gOzokM0=RgST2obtgI~p6DunP zc~@Avx7$SU`X2zIIp(&qzLAFa#ZzDnbTPFaoJ=hwL77VdYgaRkp3>yh+%e=b0=Wch z5y2+{CnAgVCjzPONsh7u$SgiA%S}Vp&>{L}zZ|$7g&Ev$pT;vq5Z&YPrwN$?`#4Kx zCd;hFv=JhJ$ubJU+9I0<=C2T7WT=%e*J2_pEkiMa*ORMCgD#y7lAv5W(I$)Zz0~*t z6sQ^W;M6QqwYG?n@JFc`Yzovwm|Gyi(gkWDn77WEsDmYr9|!TNEK7O;whp)|r65D4 z=p26?=)p9UP~{jQ3^qo{N`W~>h``hcStc;Y2oabXAxi}27$E{vBV>`l93wI%(+Kn5B57ZQHBF}> zUpl^j;g||~;>pRRYP};I3^u|sL12z>2uy`zoWLC65SR)_SYVED2uy`zjKCb>5SR+b zXn{GxL6``~C_-G}PzZ!$q(B_uko2~K`ItlymdBRJxvevhisGqdu9Lt$`e$_P01u%jLWLc4YqTBrQ$F^SiUWjmlFe(nUS#B2U(9w%$ zhx@M5p1bG%o;vG7Zfv@-d5cR-cKh;IF?CSb`kLn^87J*xn1hx5m_EB9MPzhQ+ z7@1^L&(-wzRXsgxqZiH$Xk_%Yvoort^{ltETBag%w_1itweYy^0aOdova99g9@RoD zsTP9Td_McAmX@Ge&daJ6&ifu?wV>xm%jfWUfMe#dV7}8t-Wbz&UG%=Gx=Q%Ce_(th zS~eeF>cK~12_Fe+^ZD$9kH3_nQwvZUs$(y<7aWjBcTSlb8m3;>m8*lw2CKgDp{w z4!IkE2eySCoqJ+lVlxd6dpW>i;Opf8bOo0K1h?Y&Oc2wvL=*B;bxhZsET@U~ILwd- zpYo`7w*b>58naf#pp!AWl$O}sfND+z zYPDnT8BRdDDnOg16jRAH9B3?!#WnkM;%1Oa^NDwvT-_oq5yoVz_MT;Y6DHzVn_uc1 zoI>fTH{V>PJabxRrSv(u#j6EOjSt9vT7|^5W?o18%F@aD(MuvpS;a|V+V81{M||>2 z7fw;-DCq^l<$#!>`ScI$JkXzE5Fr$~wf3r{r&$*bk>mOdQTaR>eHR;3w&pFA;LzF? zh#TEW6gZ%tl;j?hgSkl_5ECbmbQZ zo?eMzY#!d&k-AhusTO-Rf2bTs{*D#EC-j#dk!_Ah)G%|vqk806`Xt>v1C(z$B5?;A zjrSPuI7x0Eg}~(YM_8CO-HH2|f80MntrzKt`}?h9pE#PK$m#IujVJfeon#1iH0+6A zJ}$m!Tz+CFW5w?pR}jaMsW@_PB<|Z7#VmRM2HazqGj8PwcQ5}ub9)?_M|bl15^@je zF|QKJLr*UTU$*5b9BFu=`#YPT!(jGV?FnyZx|??+$5#JIJartcusevpX_o@p1T3Zq zZUX`4WzU5CGGOFrRF^VXm@F2gHuGaU4E5uuTG6`s6egzqU6128!O$O&p$0r;2K&g6 z|3Og^(gn3{{TTcIF<=cqUKHEn*tXulGwE++WI2^O@d?Fai1gpvHObrZMgLGk;C!kC*zrr;!_&l z3uYRfWjPYsFcc`MS3|^8mTdvcphoNTKyBQWAYTopxePM^`9*i~xt_V0Ewc2t(r+#_ zJ@Pvcn)=s~R11V91g5rRkFL|T)mf>I=nPCBe*pQUYSA_{vv?L^ZIU@hzCl6c+6w!5 zq}*K5j*O!_`6NF>=BipP$BX0;kBFLzlmJ_VXAa?4bBm)5V71(Vb+7s?KTSpfK~HK2>Qh zP^HNnu!_qVv$9m@q|Z=wwj%TBPCi}LNk1FQUoi7Y)k!~j=BUm+2vXJg5K?dTzlx_- zorDFdlYlk>8`VktepM%#l&%(QeGkwsnF+GrG68yFxD_CgB6&Q164~4YiSM)PoxY9r zCr_MIlo#^RUUh?1-0uKaQfI@j2>7~9Z6{(w2E}$FPC_toIR(?=0{m2bP5@@%QYk!1 zO(^yONk%Y|43%pQFyn*9+L16J1%Zls0c58}+EOJXHC_|Jn5i!VxI^Xia^#rYeDL4# zY}}aG$>if}HYL_{#Mf+L*MIla_?nGy#BZNU)x1;6NkQI9vS|$5Ck_bm7AXk5@#H4D zlMLx!kcrzvkeA+zK!2+6V1v9&5xAKPnabLm4b=|6Wm^4`lKQ(3~{2td?`d^ z#6q-j#^qX~4O?l6jsnE7L^o2rB=5N2PB#UyRU8n+m_X@;UZy+AkW6Egu?A#}{`6Cn zhdNM!>jv>8rJjatUj3Y>_Tb4cYGu5p9__X0 zW=1Yr#`*u6fU#}UqJ|5nB;f_fL`dU3HSMcN$QoKm5P&6knyTSNJa$qs$H+`)F(ko( z?FlPB0c>q&`mF9{LJ3)go7luH&m_Znd6uxW=Xj6{U(#eJX<4$emS_WLq}z|TO#$h7 zsf{o;U8&u%ky5*mWTnSXcTpBedXsfDhyx;9M~6=@DuwPOLo!8{u?8fv=gM5yBOoEV zlTT6@YCl)31{IHO2*tg0Aa9aSBJqi(gfKi181<;Y&`p8ShziLR7=h#vmm}hi5*w=H59KSlQV|m43WOk4#o50 z+Z%|*p?H%xFciOw4tFTtED$>skBQF?#ajj048@Og$J#?U*52ZR^Ih;zg6{*k%Wub% zWOex);o{E@#Wx9jE1m%NI~2bUi3lsvH6am3F`Yus#y1^6%R~;&6Pr1{^_FrU9xsdsZYVNq0RP?(O4Zq?L|dNN^^AQ^nfeIcsEC2 zteqt(@Gxecce;*);^2Ouu>!-u05{1v% zoBwn0pN%Op{$GZj%Kv3>^MB

    A!{B@LlK=di!4oy~6)F=pFdK5^nz2%uN3++=lm- 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 literal 0 HcmV?d00001 diff --git a/installer/builder/builder.exe b/installer/builder/builder.exe index 1dc67f9a7586e5ebd936faf88868984f37439f25..f9a44acd1c8e5fe1a5da4fc8feae9f05af6a1193 100755 GIT binary patch literal 19968 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 literal 19968 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 jP%{D;b`1nG1OyKI^Xp%a1getCommand(), (*a)->cmd->getCommand()); + +- if ((i < 0) || (i == 0) && (strcmp(c->getArgument(), (*a)->cmd->getArgument()) < 0)) ++ if ((i < 0) || ((i == 0) && (strcmp(c->getArgument(), (*a)->cmd->getArgument()) < 0))) + break; + + a = &(*a)->next; + } + + np->next = *a; + *a = np; + } else { +diff --git a/amxmodx/CForward.h b/amxmodx/CForward.h +--- a/amxmodx/CForward.h ++++ b/amxmodx/CForward.h +@@ -139,17 +139,16 @@ public: + return m_ParamTypes[paramId]; + } + }; + + // Single plugin forward + class CSPForward + { + friend class CForwardMngr; +- const char *m_FuncName; + int m_NumParams; + + ForwardParam m_ParamTypes[FORWARD_MAX_PARAMS]; + AMX *m_Amx; + + int m_Func; + bool m_HasFunc; + String m_Name; +diff --git a/amxmodx/CLang.cpp b/amxmodx/CLang.cpp +--- a/amxmodx/CLang.cpp ++++ b/amxmodx/CLang.cpp +@@ -30,17 +30,17 @@ + */ + + #include + #include "amxmodx.h" + #include "CLang.h" + #include "format.h" + #include "amxmod_compat.h" + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + #define _snprintf snprintf + #endif + + #define LITIDX_NONE 0 + #define LITIDX_BRACKET 1 + #define LITIDX_DEFINITION 2 + + #define INSERT_NUMBER 1 +@@ -103,17 +103,17 @@ int Compare(const int &k1, const in + // return the number of written characters (including the terimating zero char) + size_t CLangMngr::strip(char *str, char *newstr, bool makelower) + { + size_t i = 0; + size_t pos = 0; + int flag = 0; + size_t strln = strlen(str); + +- for (i = strln - 1; i >= 0; i--) ++ for (i = strln - 1; i < strln; i--) + { + if (str[i] == '\n' || str[i] == ' ' || str[i] == '\t') + { + str[i] = 0; + } else { + break; + } + } +diff --git a/amxmodx/CLogEvent.cpp b/amxmodx/CLogEvent.cpp +--- a/amxmodx/CLogEvent.cpp ++++ b/amxmodx/CLogEvent.cpp +@@ -106,34 +106,34 @@ void LogEventsMngr::CLogEvent::registerF + LogCondEle* aa = new LogCondEle(cmp, 0); + + if (aa == 0) + return; + + filters = new LogCond(cmp->pos, aa, filters); + } + +-void LogEventsMngr::setLogString(char* frmt, va_list& vaptr) ++void LogEventsMngr::setLogString(const char* frmt, va_list& vaptr) + { + ++logCounter; + int len = vsnprintf(logString, 255, frmt, vaptr); + + if (len == - 1) + { + len = 255; + logString[len] = 0; + } + + if (len) + logString[--len] = 0; + + logArgc = 0; + } + +-void LogEventsMngr::setLogString(char* frmt, ...) ++void LogEventsMngr::setLogString(const char* frmt, ...) + { + ++logCounter; + va_list logArgPtr; + va_start(logArgPtr, frmt); + int len = vsnprintf(logString, 255, frmt, logArgPtr); + + if (len == - 1) + { +diff --git a/amxmodx/CLogEvent.h b/amxmodx/CLogEvent.h +--- a/amxmodx/CLogEvent.h ++++ b/amxmodx/CLogEvent.h +@@ -136,18 +136,18 @@ private: + public: + LogEventsMngr(); + ~LogEventsMngr(); + + // Interface + CLogEvent* registerLogEvent(CPluginMngr::CPlugin* plugin, int func, int pos); + inline bool logEventsExist() { return arelogevents; } + +- void setLogString(char* frmt, va_list& vaptr); +- void setLogString(char* frmt, ...); ++ void setLogString(const char* frmt, va_list& vaptr); ++ void setLogString(const char* frmt, ...); + void parseLogString(); + void executeLogEvents(); + + inline const char* getLogString() { return logString; } + inline int getLogArgNum() { return logArgc; } + inline const char* getLogArg(int i) { return (i < 0 || i >= logArgc) ? "" : logArgs[i]; } + void clearLogEvents(); + +diff --git a/amxmodx/CMisc.h b/amxmodx/CMisc.h +--- a/amxmodx/CMisc.h ++++ b/amxmodx/CMisc.h +@@ -337,17 +337,17 @@ public: + while (i=0; i--) ++ for (i=len-1; iI;li-nLj0V<)5d8u^{ +z&N2j*OsKGmiYtRS!>YTY=nSLGkzI=xL4292a45<-A_F_T>EZ!}L749E_dMU5doMVD +z?qA!U^XupHyxh0vKDoKiukg{iul_n*Q4}kMg(8PyK#@OO?p1#H=c8gpISumm!?7*@ +z1Okb0cS7$Q2>4x1e)IOjisbhE(|4VsT*jgrw+RIkL1WqJ@H@=g@1*|cie$O)dPTX( +zVm=0+4>#LyRg@o7+sScs%*z$UmvP$jGJbo0ro~>6aoYK(>Xp`lc2YAY3OJ?hfzP`@$4IGX=H +z0z+M&sZ~EcK-*aQn`OsGO&ynL9cf3jJGlXM|MWn!rGN02|Ktf;Dh^t9#9Tb4olWY3 +zk{m`8tdK9vl2p@YS#m_3%4$tsmWj~3qr;19r!G5La+A3kz9Z?ArDAJsceH65n{wZ6 +zvhVQpJ89LpX^2-Ak;!RC6PjiM4?lIu_B>3_4lyE&ibchW +zk~}fli|u^sE#jEz@6-8q%lp}FUK=jE@R2j+{CiTuUT9nT7S)p#*;2nJOBag~y0qJx +zY_~_XZkf@x9`|i@89g0&nJzVZtvwxT`duq+r4L9K{jzq+kJ5!5>wHA^_}uvg*}ZQ|}w@8ItOy;v%X+YS^_zinrWNDm4e#+=`*O5-frzsYbHgw +zbrQEmMC*sPrMGkI9=-KCQ>%?in1GEld&-CROdeUk?P$)ae``*CX+5=JPM}#km%~=$ +zx$L!S=klS|crI^Q&F8YoYCPI=RJv`uWshuo+|>4v)pRB!dnOMr>pk^+BKPXv)WD!P +z5j>F(pHDdDvFlC8uB1|pw)63(osZ%J?{U>PrjODU@&&%cJ4`LM=PQZf^zh41yTmgv +z?eeD^n$k5T^jf0Q6EIy6Z{1)+UaGGkFlV+rnmct? +zu|2er_D)}1#q=02q5bei;sHAc$I83-SgJUdtB?-hr@rTC=d|ljQ+;{7XP4W!a}V#_ +zyyK(mE&R~P*PpkdAT0eZKfCC{x2u^NC6iP~yqCyNZO^NoFhVQb+q01%_e^BbK2Aaw=FMqLfuzvZ_?`$KTzlVfx3{n?sKX$mhV;4 +zho9N^pptPZbz={CGk)rR(7NqlPTuY%A6RKJ>|3O8f7QOTs6^D#V=jQ%?Hinsw+)Zmvfao +ziDUtt@|@;-X3d#1C)Jlfdrsh69*RFvbW*IO_=e&yyd7W{Nu~CQ&>~@iN7m6z@??qnJ;zm*O1vrFmaUF_EH*qLJcxijOGvQ0%8TNbxnr +zIf{H5x@#%MP&g=fC>trdDW0czkK!c7^)yoa^!+J?lY&QX76m`YBNR!BpHns2oFDQ;td`FQ(H{=S6Ybfj#H&fJ6G*d(8E;uDG^6bC8(gJ$R^ip>;TDc+^nMRAPc +ze<;pVjG(p4wG{Q_+bAxOmr#^bR8h20L@Aa~?4cN%V?%T7|9Xzm-MUKrty4V(o&etj +zU(c81i~{o{cof_M{!aeQRP9s6>{NTft>6}LGx#dF5quHc0Imnuf@{Fl;3{whxEx#t +zE&&&V-CzQYf)Q{57y{>lEnpMq2kSsLSOq%4Dd1#q0$2`?1xJIUKs#6h7K24#Ay@$B +zgL$9|D&TpmTSSO>bnD$of|0VjhKz;bXbI2s%U +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 +zUxHGIQi*b6_qdVS(lNWzcTp$ue;F +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 +zfu0)#dU_DT0mBc<(8G+AJNpxfSZ8WoU* +zLdMt_xvxLk(Vs}sV+yYbuLhy7Y$ly#N`%vSFW!HPgx*+hw6ha#x1v+b)@S_A0vH|^cm9UNM9g*iS$*{*GWf6H<4~7eTQ^A=?>D}q#u*+CHL$IMbQ0+l(kjyFq_aq8lX^+( +UN&TeFq+!xl(uJgpN%`;p0C3oGl>h($ + +diff --git a/amxmodx/JIT/amxexecn.obj b/amxmodx/JIT/amxexecn.obj +index 70edf84ae043da56d677b8adaf47ae82f99bb890..059c2c833f384e96409edfd6902f17edd206ecf8 +GIT binary patch +literal 12621 +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 + +diff --git a/amxmodx/JIT/amxjitsn-darwin.o b/amxmodx/JIT/amxjitsn-darwin.o +new file mode 100644 +index 0000000000000000000000000000000000000000..0b21d6d5ec31a489100b53dde3c3e6097b2da816 +GIT binary patch +literal 24434 +zc%1EAd3+Sbww`1r3lJbcHdf&RN|YT$FsKa4kOZ<%0ttdcmVpdrV`dVA7Zn*0#v#fT +z*DK-zUQxMER8SCYgJJW!TvQP7iXx)2yC4z}$UCR%>*)^6Jl@~$_xMqK-#PVFb#--B +zb@%isK0SZ(QiQ=^Fj5Mk6iR8ILH=R8(Gd90pxy?!?-I~^B%eNHf +zw=O@or!3EZ`t>mw*6_hh`Z8t3?qa>2V$L_WF29}*SlLV3WrGcd=Pzp`wk$kZRLxFY5WM4|Z7+-$B1mCoNJyzXMmHE=5eB+|M|2DQ~%NWN0hJ5Soc@N<# +zKH843MLlJ`-j7=P_y)1Sv%~25>B1D>jV$nG#@vt@eR{P|l({4E8?P%m@x!F{T+G$O +zXKL%4*Vg3O66x7t@);7Fy{Q*up7XG=GRl|SBjgCV_uY^jrp*z-RO40}YKeV{d({*{mHJGJxT{tj;kv)!VjZrmyS#O={%V6_X&@+FLUqT|6&i6# +z*DvB&t1PTf4x%?+(sfNtJnL&&?+T*-;-ap1Wc@F)epL|ts*73&q5j>h|AO^lSL$6t +zzfnC`p2$i|5N)c^zN2afvi1i0XH&$L+U{Dt#t>FdWpz;y^~nqVnvI=U?Pc|1W8gvX +zzEFGpWAQB(uMZ-AM2h`m@p~437es8AV*gl-rX@w`U0+GiuW{|+=Nua; +z(IEQiLhpNxPt9u@!uswsAe63Qf%Sv*`WT^~#QO9g`itj<{#9N5e`WpLAo@@A`j{cg +z^Q?=yvbSFpx(3q%|15qm+4RDfT=nj-z_Z>diflR9Ib@f=kPD=lBLX*XyU_VUytk|&h4NBF;I4eOS-+;qbNM33 +zxwzz^`CLpSJ0C=rA!H3BM{@)FD}5pZpK^a$Taz~=1etWFHVpUwA{ENjV%uQzA8Sq~RmS(6XyU(?6S{uRQW7q4oZD|8_ob;`x@? +z=Xn94VwqelHAu0RGvW}rru)q%F4z+LBKeg%mbbsMMZ3>cJkoj68$A&7Rh +zthyJqp8k5fhWy#2eA-qwSasTZp>65^I=6YyBH41U>H3D$w%(NMO&;;U8mY8z7kD&` +zIpe>u{1|zJ|50vkr@KbFV@0(Vx9no|&0Br9l0Nr?R4*YJR- +zq4l9n`hw@UVC0nrGeyBRjU5+q>;H!eZjK6EL6lm-qN`N!*B}*qbeby|v+JrYcsED| +z52_Vhtpyi@RFJM#u;3~c+}b{H1(9k64_u{!`+`)k<2O{W_$n1N2C3iywF1voDhTNi +zxB`n>!P2W#Fg{2HCbfcxu2O*~NCi#5qJoF7Qo+_B6)aFIXb=;3GD +zgGEYo$H1ade$kO4<;EbQPJU5y5kEGSkxnV;82CPW_!m4jvGO5SE)Al5M=B2qp2W{vVqYfD*)xg~ty{2l(j`*5&AUq{ +zJ{}$T;p2884%wwdbqXxFSqKt$DT6u%ZhTiEIJ=MP$O%%%AE#K-XO}W3h+vNpwArOR +z5=5|G2!`!a-s}|kcE0?SY(>|`amwBxl~hBcGzSr6Nx?3@v;ULh-d>iB4*;tL|&+)DUZqq07T@R3%+M;es_L4=N0!p9qx@R-2Dajk?;G%7=a2;*A` +zmp3YfL4>D{>xC;CmHUGTx3vOWD6Oc6@2xWH{2AQWlJtwHi5MgBx? +zPB}@GnQ?)ebMUA*(!*-oA7k|4l<~}sGPuKi +zjwr9iAYSoX`u`IzUGH(}cjE((!3Ra@_v8V$p~TNz;#80lg-859BecYR$oJ{f@j=!< +zq2$M~q=sq6NdNp7Zq`Qmpa0+@tzLQZrz@0S376ta2)ycV7TGPm8&bp1?(-Zpdbg}w +zcKQ`>l5!vcZ9Ki&=Q7a=dA6H;9n5%A41d)(fgcv>U(fbP?>u^5+!pz2dhL&1k4ITTA1-$GGcflUi};i|D%kz>ofm +zWlZEkgOx{FYPhoYH-1FluX>kj+}t(r#q4|(bxAI4||4piEs&Faox&?mG +zP7>MsCz$qSMS4z{_V?&lsN57p+tIJB^J`0kXutnK)lTqh9}c2@+pnGJ*KY0>c%AnN +z?SJU9LwJ~lSyu{6gmAXO`@_@w?=ko+hMb{?^L&#dJ%@~24uwYUp8v6tX5Riv16MS` +zwCHnp=<(=%jr+oWpyL0bnm=nk9=`tqv#Ha)1N-eC*l)U$+no;9=gNbfIV{g0l4|;Pw_hJD8{K5Re1Mjp?1*ovk%O_^L^)qi{QW%TRqIT6)T)1##(ASjTK2SBL)dvd)cbL6uFnze{WbBN +zH?wzWd_ZAcuCC-iXZ0&dZ^gC=#8+nmE{?SH$vOm5xX-?#Qzc+2< +zXT0NYv+)!E=vmogjKehVXwyc1PCWi>k~z}#dy?7YjA$4*ddwN;k*1{FNY|mHT;aKy +zJYP0>_YC{ssrraEC*AdDFE$a(IeW3q=Wb)jv9zXT%fzobG@HF$#ayD(Iz|1_FfyWH +zY<%vPqoJo?Eb@G3JiVIQ$L{!su@S=>PyfRm*0s^IuZ6uNWZkQ_CQq|rUf7r;_k}cx +zADfR}ywuV{$0L*H&e2n3=1!)wNWA3D?cuHM?VDrrb@kRJc&EoS6eU=53R()NGotP& +zqKY~$dY|MzbAm6ohmU`8x}szVm$bwbw0z;&8d*e{o_jK=*b**=GELKSeVK-aiccaJ +zedunRWNCJXc}_+i`lHBLd7gNDoUFuZKd=Rr9L#g3MftPDeK_6LS&VzKK-zfcsMnfK@7~*3oEg=3+N{1+!Xn+o-R7`0( +zrL{D?2Ggj@rc^^|8Kw1<_EBoz#$dRGQZ=RLDQ%;4lu~b+`%@@+D7{8$H>K`$O)Zo> +zlo~08(26^rl84e(N@29NOrW%w(oRZk=;d)DB_E}aDg8<*j$WCQDA_4J%&*UszNZvU +z?~gZ7%BAF{^em;1DV?O$fnKMEQOcv_qVy=GjgE1G)QY|IE9c`zy +zpVA3R3ACK1P^zJ{g3>lh!@G-dRMlO?5}0NIX8}Ozm +zV9$X)1-1qD4Y0eyZs{uRlU=2K5cVg)4}h-$pMma4;1c-jU{8lV3HAiw_3$UaZb`s# +z6Qunu?7hIZfh&=JAM8rlGhk-|M*;f+qk!k*rT$F3v=0Gy!T%Ak3I27!mGD0W{2TmE +z;0*Y02j;)y01Dpzf8ti1? +zaQJ(}?hM-i``t)HcaipyF4F!C_WQ8cz9% +zU`N3|-&xwIrJ{;yzv +z1bY+gmta2z`vKT)*ml@f*eS4w!|nsSBWwfgQ_+~u(O5@dZ-@N`@HzOOg1s163x65x +zJlL7AZv_s7|2o)Rff4Zk(NWrmJ4$;u>vq+Y597i;;gj>@?tTU~lAigB=0>QQ8Ir&?CrpHz?H~<680isHE=rer@&4D +z4hHr>ejIEg@MJrQ|7j=l_rU%DxE}Zd@>jrK0(1grAb%?CRN!D>59Eiy{<*ERkG92n +z4%`L&0Jsji$6+soJsWl*Y%A;}U?TkefIZ+h0e@>F{U?F@+MwTIuZR5t><3}j!*&4+ +z;hzB83>*M|9PCcO(~;8uU8J{|4Iwdk*Xp*g3Gxu!q2og>8g=Dni;{ +zN8os{H^6=xwiot7pd0=Y*cq^IhW!`V(Xjsvm-f+cj3?Mlu>TA83fT9_GI8K@ZSLYT3~zl|1@De +z1s*U-|3|R512@C}PvFz=KLUFp&vz_;Lk8Td5Ni~Ks+Ww33)bog(AJsj8r{=91MCD;`*$sH4RAH^Ip7N5lfXxT%YaLP +zOMnY6yH4|f^*}eU23P?s2bKY60H*;9f%%tR?+joXFaI1)G%I1o4h*zdA& +z(*u|Qi~&Xiqkxe>6VL#>fa}`~{Qa`=cLI0>cvv?s#ry#71MUXy0)7nK3ET=)$ML(s +zjllK5b-=a2HNe%t=YT7KPXZqWE(0zFE&(nC&Iir|)&t$Z8ej#m9H`Et8Ng}4LSQ~H +z2bcj&1Ev7S0mlMI14jaf0tW&I0Q&)ZhiLOvTz_B;Fd7&Ij0Bp12H*wE<7VLRz+ZqT +zfJcCbfd_$KU$!3X2JQlW4BQFa3TyYz5I1V@#I2t$-I21S#H~`oW*jsl#q4??Zd2sR@ +z{tKMbdqDnu`crWJf%gD7{}zq)+YpZ5I+^ni*`2`ockDjk9MCx&oWClV!TDF>9B}@A +za|bv_J63}8`aKVv;|G?4(`&Th8E|@aH@pfSYmnbfna5Gu4$hwf_k#0&oFm{}DV+uH +z#^)pNn+E>XEiP2+lm4MvKa2|1&M`GqYjY8}fi9Lql&ST{ha2{8C!FddR1J2{}7&wpB +zpTT+j{tnJ#x&?d&Ut{?!WGLh70bb7I0lb2b4bJo8CZpCTW*tv8YWxZJ4q;opr~AFeWLeYn=B_2Jt_tq&W)c@Ay| +z=Xv=VIM3CCy7M||)aKoJqc+Ccn6!D<&7_@sqDh-~NhYlyGE7=OOgCx$P-)WU-MuEQ +zPZ~_xyjx+?`sWps)<2s}+PvFo(&pVhlQ!>;nzTMVYtrUjSeQ2NI)`cVu5Xyu&m+UM +zd6yif&AYrXZQhlHX?-#$OzVdQVcIz^57XNGVwg7XHmH2Q!LXHh2kK;ALq7+vHOS8- +z%sGVg6!_nWUjpC2=N~Tlzj#c5^Sx*QIB#(q0nVRxZUg80>O^q<+*1h78`tdM{0Ybf +z&U@76gYz@RgW$X^Z8s1LuuM{|4vJgI|O5wxc89{K@bP +zIPWgvJsiyWGhzpD-bB<5oX2KgaNaL82>d^ +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 +GDE|%fW>kCt + +diff --git a/amxmodx/JIT/amxjitsn.o b/amxmodx/JIT/amxjitsn.o +index 4b48453124d28e161a199b2a8e920c6d8f682a03..5f4b0e404c62d025d4b8752936943172735656a6 +GIT binary patch +literal 25728 +zc$}S_3wV^p+5X?%Y?4i~2}wvG98?gfL=XWHK~M?Fk_2+z1PFpl4hsZxVt0dBX+`5{ +zT~hIY+G5oTZT&n{Y|*0FZ8QkBYCkF-z=|SL1pyTi2?*x@%slt(&L+E;|Lf!G?EU_p +zxo6(fyz|b?8+)_8XqL%jGSokl5o3hNFlIm}$=}h2mGb{D|4c}6;57s{o)^kbg~r1d +z+{*=qvBeznS)j?fhyHaAH;ie$_9y-gq@)!$j0-8zeq%{?n7F=F-c9(KU1Jzy`uDBx +zB1#FGZF~h?qhzkfgyXYPn$XMF>ZEuq=bJTOm1Evqf8NLpf91$5|H6?&H;SOYz~-Nk +z>igfAWI-{p;@9+v?>tdxqo{3XtPS=0-s~CfzeE_?cgD1Tadw{nauN0yXN)OMJ+a9z +z%UqZJvCos5{f}wMqL^o>-;(HGooH!))!M$(;y1FpefeiO&wVha$>z@;YC1&WJ!5ih +zzTBbyn}%h7@1HX=`}7jOCo$n4-b}w`TF5}#r?QXVaAd34?{&^=7j^k_EgR1f1b(2O +zm&6_SO>6J6p4c=^-td0yb9(6C2>+d{=1xi%=8Ngd1xA}9o6l$SL&`i)n5&|gkN+sm +z?aF+cFy9)*yq(SW3v=L)!ju4$C1iR`ntC#aiK}Xfr%L^n+r_2Ycu3U!u_%_(x9(-( +z#YU+E%A}hg=x^5cr4_pDNA0@EeQmT0e{K|i%#Yfo$rvd7ZNl$~;@^EvyERiPG73hiL&6nPnm3OT0j-j8I;`@4sgzAkk3HJiw +zu8!h9b~adZOqy`}g!|5z$c^Cd((Mbj#TSKnOBC~cY!0@?&xHBYC}tO%gKaUD9>qY4 +zC9-)6o4GAsW{KPu`=8}THBw|*#QkXRHnoio)LA0mzt4UM`R}p}Z11*svjgjdIkB(# +zMa{f~Y7e{=rPhugdLPBcBjVH!NAWL`e*bgg)O?mpg?|V&h`^xO$o@-oe}?qW5&ps` +z{&Q!f|7orMn}q+yDE_x~f5xSO-wB_s@74aj^mSNn4L-$p=USe4UsU~WY~-ijEsMOm +zKi#w|SSVnk+x=2Z-}>#Ueo^fuaiaalMSfO>gsR;t`tvb#ii<>ng;5H8d0G^>T%2LB +zz^_Dsj=0Fp?++dQKgg_}5rJZ>b~0L9I(IGJBr5>^b8PBp(#Q1|JKNlO1|`#za%cKto6X@YEfvaC^RV{@}rxscCa%}^{NfR +zUoZSgefin{O<9ri*C$gsoo`~Yz#8sb9M^FFr4Kn@E75G=8)>t*~D(USRHANir +zB{n{CpXK6?{6t^g#g=wCV6_I4lOnf^<0mS( +zIZ6dPzeNRi{zL_xQ7X7YRnYzu6_`>YS728ato?}!W=5&NqAK{+PgKwzrGl>GsNkNT +zs9<}P3T{;ubjSzxNJ`|+;aX`c_x*eK{^~$#zsRP^LDQk?z~xa)X+cwWwHP+llP^%) +zFY^vl$2ZVEf6z39lewiLHr)nb=?PT(# +zqvF(;3j(83BcJc^Z+NUdU0mMTsoI1`GoAffzPjORjk34*zvjIiSP-~BHS&n}FVf@7saqe8Yb)t{3R{&>-_$&_$UT-&Io)ErIHqS +z0^LyzC2ZIw-s~5q(+wM*9{B|`N*ZI;K&MQ2i_;@Nh^LRqo7>PS+zSHU^vL^uN7}MG +z1M8z0o@c{5Vuzh#hk^9Sv&Fllai^R%8{BPdJT3}+9i_lLF3_$D1hV=^Zt~-f@l%`i +zYIj!Pswk!eHXX=%^-NZvw!gMZ&2;c6_fB$Us^0^h0e=+ZwlL%R&cK!^#{0sI_jLyL +zMKLyn86WHn#AQS_&ImI;)ET%mig93=@&3-h{3yn+j_AfmIs>;vF}@yVe6%z0R21VQ +zVaCTg1G}RbJz>V*c8W$3n@RWDlBta_wMH>h7Pv~zQ*o0-ndzd;l+4H@^pqpqhHp6| +ziiz7=n;CgZbMQ;yoDsM+O8$14KU3`S8L`KwG9ypK9+AGD;1bbZVg4YBxrNQLod?cl +zMxOf5W|Jj8aQ=YE$2M9z3IbP0$+yb<+2U}PktMKXK;*;Oe^~D69(C;Nh57y{=D)Dn +zFOPlefXK)GD>m8W^5H>I-GKp-?{59!&=jvHa|Xra3@>XSl^HNFa+&dAW%5*+B2i{` +zlrm=z>17I38NVp=OHpQE-!gB=GVM3o3~!vj!RE6Ya*E$GY7#oLzlqYX42;|c@0O+i +z#yc!RiLXV8ucDNge<-+&(34pv`o9wcqx65$DTZOwIu^!QgU`PV3$HCW{zHhoy7Sl< +zeViZ4P{5xRx!2z&vwMbhw+`@qDK7nTat9jpBHE?j_j&MU#bk>@;{p!|tI@aiKYxyEzws4OC?`w(-rZRQW2m>2r1cEh@A?h5|{0BTuxa$?UzeEPG0dxFU+TU(mZU +z=&g(5{p`QWJ1gkDCyMv4LGO~FciZ5|{k&g#|3kMO#)HCG($`okjmr(+e>d#?h2ggw +zW#bQ4_~%;N55&BBz-)bY&08__k^ +z)`CU8u_O169l0n_K7@8QyzkCV9^^ByQcWKo{$&4#NBiZ)){CtC*kwXy#x5q=D%$gP +z&gw;7^X67L^lxweqLIVekJ@@#hxW8)RXECfS~L7*7XLD^ +z9%<#J2j8bX?}hatB6!5?d#k+M-;nA%o_*R^JgnMZXz>+i`SuFR@YySURr9N}Z?v{= +zA9?Mf>zrL%MJIdY&8=c&e`Nc#71o=->)I;Dct`#!;0v+n*)()&gJt#MuB~F6c;vBZ +zIabei({e2C_>Qqtrk->k>Y7$=^&FU1E+bb`*T5qJ!zO`iibc$E5g<=>yAOJ#0Sl`|9>jV@_u9_<9cl+PT?$62cmk;%e6{kKWO`@bd +zqpD|j`*v$JWw!sKh>G1MilI!`qH=$+(b4#}_4a>w6Q|j`y|L}btOvfYj%hmE^WUwa +zp>`RO|MiH}gKhdZd8lC&P)eh8KBYaBKA;A;igW>`wUjnedWq6@N?%YKP7Sh((%kd7 +z4pA4rA7A69vhNC}z&J|RQaVa$D0Rz4lvY!^i+D4oXJ~s5B?~o>iIf&o>Y(&8r7tMG +zMpye=N*7Y2sGyWV+tVrCO54v;Iv~C`Q#&0`sfN=1l%AnhHjWxsDWz6Q>nLrZw1-l1 +zf?-@msfE(-D7{YUFr{JC1+7E1dlrP0VOmr@<2c1oKm?W5E~=>i(>Ttlgm(yu9Pqx3bU5%fl%M`=B!)0B2n +z%Az;urIcn;s;1OPse{sIl#WswNUxZgl-ekXx6%$udnp~IltsO29;H@Fk5GD@(!?RX +z8tgc)Yn9g+S6}0;F~)h8dAx3KO)YKR*u)BUyBgsXThblzpZ>QW7UOu2o)`X?A%e|D +zN?7E0Pev~uY=r)1L+}WL|L#HYCG>04SPZ{XHJ(bp85&#prLC#>MnI +zQsW9k{1r=xtLb;F#&z^NUE?PDEz;OazhxS)q2Ef4#e(R3jqj%4g&MD?-^Cg~PQUdU +zKTW^OH2y37HfsDD{kCfSwxRz!-t$2(-e-hg|AR*8Z*T;EYw+LPC>A$dzdu&G<%t@n +znZoba08{w=8e$5+Ul*Ff?^m`d{CrDFJ3mxxy%%uNa(D9zlrts_ecN70Dk>Y=w!msZEQ~32g +zVG6&#F=qYmgy{J(hhOgz#7P=YG>2dR8RqcoUrL;&@pZ)M8aEU7*Z5|0`2Ff2&eV7V +z@c@mVH1pq7DHhWS{r>)wc#y_>i3e+Zh +zEOiY3Gtm6$0@#-_%e-u6U$>f#hZxhG~P_ysBwUJoyPwp{*A`( +z#bUu7{AnzYD-|CjKCE$fERQ)Ai}B^4*bw)N9)Yj>oTx +zi-~`yab+BjZ53Zf{I14J<9OVw*iCGT3-RhW9uq6}(e@aP*JHe__zBuxsPUgLmR7ut +zwmUT5iE*~#U9|nO#vju5-!wiz+n;KDl(s+9_&eH;j}P&W#EBZmiSfL~skA*w<1E^q +zuknSny-?$eX?u;vqU^02Pp9oaYCJ2R=MaiZX?wTE)wKP-#x=BkM&s*g`<%ue+8%BV +z@h^xk()e!7R}?=;T&(f$;(0Ek_*vp+jm50GRpUr;ymJdjptZ-zNUC?FJ4Ui +zpvDbWp4%y2*^6%>?$p?C<$0ju2Z;}A{J53ph>HJ*I5jcE&s%x^s91cw%GbD)xLo76 +ztUT9L{4ViIjsIiid8pz8#7}5^$jWn6#orMBOXE{kp1&#<_bNFl#Bp>k12j%e;JL2i +z!NgZ;JR*VT!HUNa|5D?L2|Pzud}RX9mle+>KCN*fvB?(VGO<66=O*wxTk#^|n>4OV +z;5oSB>xo~{*qy-hbHz6ipVPQKf#>du{lr&md|v|3>lKSXrn*_i7(f9L?W+gC>~E-tMT+iUhhy`NW50#szhE3QCv&>qQ=dM +zyiTI{CgS}X-eR1h>s`oT94vxaep-aF_G7S6vxuDV@nHhQWCEbDHhN2 +zB^nP);`JlN7ZI0fd`S|oEh)Z?c!kDOl6c)o@ioNvX)OAJ2Q)4s{)@&HNxWXAxSIF_ +zjh#unmZi9XxLad)60dV9zKM8vdWc0|^D~V*h>JCTFp1a46hA@i)%e*YUOQ7PK7Xv& +zczY7Bt0{hqIH2+FBwlk`z~JR7emD!z{R +zQjP0vyxyp|iFm%oZ8lzuRQwC#TQt7S#_N=dJBXjsc)g9+Fctrnc(=xzY`ngycr&pj +zGsN3$y!NShC-D@G-?8z!sN#L%cs2gQ#%rdEza_p^kSW +zA80%{nb%{mHzRtatK;t!K~{aW!s;#V|2mdxwgicb@NrLl$HohLL-PT{q1#Y0kfOE<-mabCT`I9^%P#~S1iUN4`}>OFaB5@zs84C_#1)Z +z6Dj# +zU(|R^8h`s#d_@|62UTn*{+GsLthGmDC-FXwm#6VJRK=@^2b`x}zcl{78oYjK{H;~- +zGim(YRq@NjbsGPJxJlzvp~Z4Tu0*Hn>(6E*C0$>CHX8%d_4RkNF)UqQk2V|G#KSb6 +zlCFQxFdO;l`u7a8F)v;Jo?$kYr0d@^%tl+f{yoENtV!3uXP6CNy8gY&Y}}WwEr%0t +zNY~fD&Bi9;0*#+d*S~L>jjieW_bs#0m9Br^G8?;S?W9J+7sOv#zGGv9_k}dJ4H}+eDzD)o?CxHyO@l +zt{VDjyuomKyw{5#kqWG&rOxST_&FV1T}!=-H{~%0H>pg$I0be!)hunOqa$i) +zbU9bL+@6M(X4)AQ2*NUTxb?0j!J6f{i#$F(KCNYZ+O2K1jSY2Fpt;7|u+l{vjSaQ# +z8h3-(q|B8yZrb1zZ?0)_d24DLwIkyL%PF4kv{zI(OG-=ZL9ov+tPDbq!(p!op`$V< +zcMfd?12apjO7a{*EVdWtEW~nHh=dg#k!d_IGYtZxLbhkB&Lvw1|vf(au +zH9PBDnq3ArX&Gy5X=ycXa5s2e+|czr&5QQOb`Hth(lTdJX-=NAtfJ6ZPPx?B#G|Fc +zIYpH!EFLx$cIbXjSP6$-#uHX5SOV_6nF!U_Qb=t$sY4Oj74}(bFK*Y8;66kcdk|q& +zzX&^YzbCAOLoX9Ns@zg)>L^s#((Li7GMvFhI0Gee^71NBpr*dwt^6{~b{U4-QCX_o +z9&by~EyL`VVcqS}{hqKA4!w*gtW>ZB+!Zqsa*GQ(q1KRF%`M&uwKsZQp`3}xnG_zL +zR4c0q-2snw2OOb0;L+}YL%#!_ush(;?|>)l4ipvU%@?<&p?;M@=S&2g@+c@Gt}ewW +zBrdKNlvaeyD-jGn7~-WQ+O!yhP(Zx6i0Ose +z3Xww;SwTgqJX$yPpM({5QJ3501(Yx~%dUZ5ccNDiC0U%VDJnxgbuuQ8Yj#z!*yHlH +zCV5q6Qx7k7fnBucIvlDJPp}pTs_~#6M}cgy%NiLfBuJ|Rq_CjKnX9^l +zWsP+IRgWMu&>_eSb<+wev=VN;M1@wut(7RQl1J0j#)m`04T1FyD;26z6jFt%xKJAk +zRdJy<6sigpYSRi)kHh`Dthh?_J)X8&fZ9o0ZO~pK?c8ij#bs%c7iGTOUd2Eo8UpH= +zCD_G-+3b?fB@M*HNRIlqW*T*>1CS3D9fGq?ox6;Pv*!>stx{Y+YF;hs^2snCq7360 +zMHr!=%b`57fjC0_sYmNh9iiUTqjjdTop2-Jri+$~cBfh$w>h*pv^Uk-xUH#{hJwNN +zisq_Xt7@#lwu+{zTB^M~*qU4`LXAm=`RHXBM_*W?%ni*!uL!bL1Vc^^D2D_29u-iv +z$U5@us^WTAuwoJ9ibW6=Q;-A7;XuAe1yn7ni+6DMF7tDX%LLXnwMv{-D7z|}#>iG) +zz3UCZE4n?IiL-Cs~i9uguAp7pB6VGe@2vjb|&J +z+=(oqA+6Vmo`f^FJK+rUDV)Jw2xp)p;SBChI0KyuXH=F3b$+8p6eUvtrsy%O$T@fx$@1$`E~sIq8^DxQF(Ia>{>-laCw85r^P{{mt>o} +znT}Mx1nKqGI}mDdPGr#=o8Qm~7&O_(J3F}5*m8s6%q^HxoKulsSb{gZ$Q3W~UYYVO +zFY=mPO*M6OqTdkn$ii9G;`UQ_;&j!lGFH;hggzPdBBP!%XvXDKFBAFRSkh2mPxEoP +zy|ksJSvln30Ne6m#I}4A#d8>}OFoR)#semf5|5ZT0iGz!E?MNzt{UoH!9$U4Go0ui +zH+vhJ+j^O(0jvGU_Np@Z$)W)gKTiB`g;0)Cmb$#fHLG%I^5~GO8oihXVRB|k)6u5Z +zhDH|%%M_SbHn%kyaw;d@ee~{XSaKsZb~mnj2?RO4RS(9Cx{#B!7-kS~LL +zLs1J;jRc##Az$`lL-vDWL-v4TL-u`Q1J_yFxz`G9(qk?yZdc9q9OnLJDKGMfhP{*@ +z5_+H2xLqEvdpx)1U1!9PHgV>$k_SmrU%s}P?Hz82bqcsqDK_z%$M5q}Z-2IBvLeunr-ur&_H +z0lgrO<5R&`L(33f4sL*bBZ5?1OGV +z`~~n%@JHaUz~b*41!r2BF9qj-%fPkZ72tO8z2J@D7r;BgAAvuGo*Fefgc2K2EPX0 +z1$`fS82UAQrX=h?iFq72AG!d#82N7SUC>9MPauB__%-Nz(ElL+7&ykpIsiJ +zzlJ`J_@BW$pl>7o3HU3p7;p&gm&QCCJQ17+c7R=AFZd4ddhj2?FM;0#e+WJb{t+CL +z&YGFd@r%KiLURzG3tk4k0qg^B06z}>GvaT7{|)^N@iSmsf94DNGfx2Lf#-soz&C>* +z1V0J>JNVz=L*O&uv<&7E8O&FLi@|7JHelVKZkZBo|(x!7&8?g9~*aW8!U>*jZ2+jo;Ko=n13T}hmiTH28&w&39 +z-VS{q@h_n#5buU24&?ax(2EA*dO)v6yaIYH;)|hf#P5av8u3S=n-TAVzKQrQ=mEq} +zLeC&>%VHh@oeV98E`~N`p}m101^*TN0rV5-G357vvj#C=JcxM~cn)+C;w!;-fgc9{ +z7Wy3GuR-62?uQIIng6@L83sv*RkD&XZ2cd_cN1@+9zk_x| +z&q58%?<`O&)CNt3WH;!lF){fAniHfSm|1DXXL3RUX?BcY?A +zW1-`rlb}!Hh_jnG!87rF|%8miVOZiC(hT?<_Y +ZeE|9}^bzRe&`r=Mq0d0oI*0oA{{YwJoOJ*I + +diff --git a/amxmodx/JIT/amxjitsn.obj b/amxmodx/JIT/amxjitsn.obj +index 24682e0009dcb7981401fd089f48988f6f5bdd99..4981755744847fb0e5389254cde73c5001a0fe62 +GIT binary patch +literal 26143 +zc$|%#3w#vS+5acWCfVE|Kth6`f&sAVKJo%L1#pvAe-oX}!eT +zx}@H3m3qUfulm07Rq49*r96LzGA*Q7eSUw3wIb%c$)qoLxHGR?m)p*1~RI3{jC;hmET(?f-0 +z!q<$=`!0Oh_`GAw!-3S4KLxYHj@h<>^!IsRUv+R3ulMJk%a`_r3mxlE(L&?|{qu4X +z*K&4upY!k&v&Bvt+I?9+{hb}YrEB5z;cWgX?X<|mxaj6Hr1^f!yok-UG0b28Ak5vC +z`9?P15W~Dhn(taD +zK6DZ#Ck$hEh~2j&L~jJI33mu>@g+8IjA6b@n$Z?NW%DO7%wB0mTg;?WF*3vv-8@s8 +zWm~+!5xp&rI4K*|cusQg@#sDp*EuoLbAu=U7dIfW(&6gQ=ji+|pd3L0ZosPlIFOG`Uew9ZnPNeExmmIx%ZwX&GE_BJ$ +z46C&fB(KmU5EUhmT7k5G= +z^`9LncPbmBw54O;3-7i_TMWZaX?P=YI~(E#8~z{+cSW9eD*Hi6zh9*HtUeh^ifoVJ +z3BWUw&%(GAzWzI-pDM+|TlF&USW)WUWA&VA7H68C68+R2ZmnQzl66(}vA>!9X@mWH +zzcc;j)np3ic!+b{7bC|8paE6n5Ry!j5Vt5**XC!%e%~^EWjbze4 +zFJ}&3^9XDykgU=Q}uKfA(bJk=1O^7+j-m +zN38A33rz`43mwjz6?r^{_X%0_8B}}vFElFdL|^1DsY+v2yj{ZEKVc@<`P_6_^N{1G +zJ;kY^qMtgtMTgZH$w-Ud8fG2Afn~6t|A}0jrW_+>UFo{Hf1AF-ICX`;N{fD4zx^$j +zalmXvvVfkVT<8CP2{(%p^i@05jK?^mb8yCTkujxr=#9ppouw6UaeDLu(yan+`jG;z +ziBZ5ihq-`R+kUhLuf{0gHmiUitHG%l1(aF^-0&j>T$&NR0H;;J%|BAWwJ{3V`i)t@ +zEk9B~Z;S$NwhHL}kpkj|L@&T)6|nY43MhzCfWs=_*FRD~cZ>r1zBUWE{YMJe5~F|{ +ztO9z(343rz^ozsg!d4af>-IhMk<6jdO*3HHUmv+JhG`f~N9(!U)J(oex@E_r!26m(I_IN8&S;o{F+DMZ!`2{b!3K +z6EdT3@3^mIUwaPk-uaoz1CL@l`K7pZo34%+Yy0p^xwgHFBX?&;@A1AMETIqb-tW(z +zO62<^kw~U;!B(udO6!}UZHoC|X7tX-<-#1dEs{Pgy5VAB$lDeV6#!>~~prfrM7Ff97*{O&JgEk^aujeHcNkap7(IU2*T +zKpM93o&Bugbil?9kA8!hAdHDtN2ij#<-?<&h{q0zgX`;M_u@!!c=UC@FKl_ek$Ynp +z{#P2_=N0zy3M0d#KP}!Wj9bNHvmq}V>%Zm +zkxOEjQlx2b?(4^MBaI`JRVt=^pUbP07?~P+Pj4g~!?;;9-rF157{hp%X1uF6vO9*+ +zry1|-jU;77H_p|J_xDE5i($;sjCc1&>S7qbIH(%e^+v9bVSH0FKHM95CWdjHW_+YK +zvOR_|pc#ML%Z(y2n~t?3Tj^mcjiNwgxI{dsng@yV%;7vUv!nOWha8k``1<3VjSp*M +zcJxP@eV?&&Zsdj->03m40k82nUgI;_(I3Rt312^kh<360qZsCPX%_7~axy#mqyKzq +zawJF27#Y286NRHBa%qfor%0dA)mcfF$nufVtFz~TSkvuR-S1`d-7(BBNOM@!ebdP3 +zb^ov#Vf2P+|uGfj!y!&YN(>A(NCx$oD%$|Y_d75!j_g>ADu +zm^D_qmD>7mYyUeev{;}>+G)`rv}cRtUGp3}7dX2=ckCK7zAkc64DV2QSHs&B!~5yK +zEblycZ;#>q1H8-O-F#Z~>wH*v|4xV9H11>Lg2Bc{VZ6c!{p+D!zcj)wqjKuL>hMBm +z_uhop_r^PST=#AQoq4-j4K8S&XrH4B*!*y9Y8JLS+r +z=#%~rv}*{%gYltvtE$4j%+S|)$3o>}>%*mvP7cXUnTs5KEy867Uo!wi;U%vF` +zp1w_dkv;g%ChplE+%kKW^V)CwHgO;C;2(J5KRoE!I%by7vF1SEChjL5d}MaMGw|)~ +ze1|`|XY$NhNBsNyW>+}_duLY(axsw)`$8W~d*i{b4nINlW1Q17CwW@$;U|NM +zqk6k{_A@0T`=0gmbssg>B+lA@ZCsxiY(8-6hyH$AA1(5^bKnbFtXfE0k@rKWYD}ne +zYO|OwXoSz%68WZLbr$IU6IHxPCwtsu~ +z7H2&rcK@=Bvfawr%shQdtHR|*Ps@AGoBk9`o$WdrOzb}7-1}X9LhH%?e{JH1+DE-} +zgKL{)oC!4n>RhPvp=LtOgK|SPK(#}Kp?1>0@j~r}`Vy&$aTZI38WV>afL#Ptic}9+ +zGt_FNhQJ;I`!A@MpfV6hCSGZU=T8DO)a%8}X(=7YKhsds|i2lX^kBVc_{A0YK0 +z*jG^T4l6a=VX!!coq)|3&IcP;Vpk?@*s2^$3_V2{nZ}Gs#Mw1$HS^B~q^d +zYlpfXsq4W02doe51F!>NC%`h3Ep}G2#V!Ub18W2eg53xff_ez4FM@3a`v=$;U>psCKpjTvuoR1pgqoOQrRIapgQ`Pn0IUn@ +zHl#idwh`x*bK{eK3ECV!2QoZzI^B +zp>{)k3f~d1v>}!{18V#b%Qpk849WxLh3_h`9;ip5o`i1`*n40fgM9<$7;3Scp*RD; +zeg;+qwGgR3ur{dcka{=R15nQ(^^ah0Kjb+6>_MnUk@|bEx1iob>c?PTfEmLqHguT9#(|v=Rs`k-^MVDzZU(y->?yF9!QKJ; +z8`$SyKY%3+$Gu{>mHJb#^PuvPx)5w7*i~R5u!q1Nh59{G-v#?C)Tc;24wgQ`VrP!9 +z*fg*ru!Uf)VAq1(2lh1BYhZr`+YfdeY*?1X&d$R99IOni39J)rE!e|gFM@3a`vmOY +zP)CuPoo%txpeAQyAAl_cYX(~lb_>{AsE3id5$t8CcaZu|u&=<3kro?164zL;^T7(i +zN}v`awF9gZ>K3H_2JAVo*TA+weTdZ0pbjJTC{$_=uDej@cdbQklF|J4pO&4?M3PlsN+aY&$ZauP&1&)p_W0l=Hgrcdl>8wU>`w!40Q;; +zez4q87W?Tai_HVO3~DJ-SA*RO_5j##p`J(T8&K~-?SVRk9Q|OUPP5pg(=6r!TLiWW +ztQ+jNV9$fS1-26`XSAg*7;UAxz?MO+fNFyp_}9Qmm(VnPLmYe<;SCZWy%`3s0A2a9QSi>_78U-W|M5U<$?M6rWR!p=y^=tf9D- +zmN!s5M|vlPgPv5+r&vbOL-7j5e<p`OfqiZI2y6kk(}q&~xJ3NOX&Je^PRDMb?9 +zp(jyPQ3NR-p?H_#5XBI>J5HmhrU+2nL$Qfs7sYXkpU~Z@mSQ!<{SnPr&IDa&M=wP+-@lX??CPPhynhrG+Y7W#~s3NEms4}QZs2Zp`s3lMxP(i3J +zs5Ma6LEQ*-E7V%3JD~1?dH`x2)T2;OKs^oh9MlG=jZmAQUWMv~+5+`9)VomIpmspn +zBai=p+5@!@YCqKHP+viP3w0FgB$R=%KnIi)Djg~lDhn!C8}XECEYx_YiBOZFrb11J +znh7-rYA#d}R0&iWR3%gmR2|e3sAW;cTvtN1Ky^R`p}L^fKwSrQBh;->YoYFdx(Dh3 +zsC7_}LOlWXG}LoY8=y8qZGw6=%9!vLsJEfsh1v$S18OJKKcMzN?StA6^*NM1+Wall +zQK*wp{A0F1C?`}pR3=mwR4&vQsIgGvp(a92hMEdB9cm`j9H_ZaMNlPBWl;7Ac@0z@ +z)Doy=P|Z*)p<19ipn_0cP-~#BgSrvwR;aa5cR<|(^#Ig5s7IlmfO;D0IVgKnf68)S +zi`S5UKTtnqMO;H`*A>2CplwP+pjC49(>w0PB*gK@cTbxg8q=eEb{8)^{NdeWhURH# +z479g&ilVqrlwi=hJOMLR5>I18z^fB3IpAI40O3Dgaw;BgW9JIPNViFok8eUorcIXn +z#r9;`WTjVBIaeVqS1}o5lR)rFCSz41N*=G2+|sauHe;ezLw0wPA&?Ngg3P*ENQ?UMM6)k*w@_xfiu#x||D7RgP&pZ-9D~scj56$}8nj +zRgbbfV(L+rtwTA=9i5FWzNUb3l-nADzSZ8qc&*O&8R}8yT&o-W0sAO>f}$aaewUq# +z&w}Y1;hxA$jcnHTA^&kdBTge981me*3HKrrG;+ikxaYZNkf@Q7aRZOVIdST-;6J{b +zJ2k@h?G%mF6G_zw-;2{Ua#fsqy!h{?IQ4k(AKz1lX=FW-;Tm~?$Ow(_9WhHIJa3w< +z5x(Dz)W{(sIU4yPPHh|fHkkjbrghnPL$Y)-gOrxKP8kv(IpNVZUpMGjJvM515Guy;VKR0N^pCF&1 +zCAq@W(%#VQ@jaz^)+EShY}?b^=<)qi^W4nO*&4YkK|Zb90kjuI$Ghnn1WjSO|jQ3RWeA=0mri4Hl+ +zV3X-YCTZkn4mk>8lgo(IYhTDlsfqS8}V +zT2v=Si*OeBn(0CPF)dfSIhv$;JdHav&(-E=lX3)kDM=;2Hbz6IzGW#rUMv>bja%QV;)jEmv2P9KTdr9g*iXa(j{--&9&1?+uMSnIy+Ql~zZj +zUn8#*NlejNU6LFzwQAVW8K9o!bj|Zok{nURc2(B8OB5n=QO{h9Ot#kPl)VO>+G({FTCu4vi3l*q3KG4Kd6PL#Fbwu +z#)&Ntb;GHTU7V_xJe5kWQgc;SR}_koWo(zfy~!|EtDb6CjU0KlJbo{C`X3+QSs+HH +z6;B&o$5l^Zep#6qxwbq_4K4Jr!(YbQHJn2=9I26c$#Se)&E@f3oTijKzqY(mjD=gC +zD>_?g+kd5bs$FGbtlTDxUDa~r+{*O}FFg+)(>x0n8)9S~p0;0*x;S0+xT@sHJ3L-~ +zM!QDyEFe?2Rt}q9)jVY`w|k4~Y4HXE#;F0GDlxLJc&MC9GgMD;bxrj=)w9AM^c&ae +z9xCS+&BNvNW~h6fYYCTA{i7OdoF<%7DXTFz|P9y+83e|l+q*fese;t{3`hpKgMPL?wxHd#fa +zQ6s-hmNO?dxsAwLjoglj%oWzv#_Ot7Jr&e^#LSlE;SnM__Nu3jO##KzB}{jzo&^;(a%Rl(w6*g!^99Z0 +zDwZ>6@ObG4YkZ__MVeF2tXUpk+iI^rcyyS)4?Ts)hiUuJ(`4}1l}azgDQD)?_Ty

    !QnQI~{i|7xzcr9^ml=zSKO6 +zoO0&SCQU^6^GTaO^-h|9B4 +zH^5URW>yss6?DDk;R=OSkEqZyx`)cysCl@Y?OE!czsV_QZf(Nv#_}hSHd*JCGrKl< +zn#fFzyx^2Gzcz^wY1GKuPB}Ad6Yf#okge3YbU~qe?934Dfi|8+4B+V0<*t +zQ@VSA$7h_>*1p>*XQpkkpIhcgm3-rrGuJjbMdZ?v%DReNg>q)wT354|>%4q`$K!6% +zJyhqr2YN~$9N_U8n^aGE#X`53Ik!Bm?W?Ih?^Qj8<&|zRvu=5sT06+YA2Gr+uax?A +zXXn_S%2D@5GWBq8(@4%BGA>2V?px(Fws*EQ2VT`Y +zlTzf&zfCS8@`aKsaCN}%U3FOV6r{*^2Gs3xiMI#rv%7SGOT0^9=c-JRZx$%MofP?= +zfzp>qk#8N?q=QIUBiE$Jw-S`IiOA+$rOsFRf=w%TYo0q(V{GRz{jT}vp +zZ(X3|f@)X(WxF&_e5!mS!zM$C@OOna8J#NM*s#e&A{S|7da8V*!zTGenl!@y+o2AP +zEGBZhMwX|_H$rUUC$d>1zf6^HjM!u?k$oEZ4UrL}Rl@JXpRJL1h~#PHpQ-Xa6q_6* +zQl*jaiTE`VPfs>$Od`jqhYljA6L~|+#qZPqMI$9dJ^BApsJoF?Bzvq^uNd@Ic+Y3cGEHA(my%4>f~^W>zS0o}MPuH$L>GG{Pn}pNlJ9IYTuMZY#VHgLMy#zgCc>p|xwJx1m|g-Pj)fq9Gkb%pXvf +zK2!6YAj4RVq-Gd+YfF+*83x|ok|Zy~z*}6B%*-(GHkTyD83x|!qN|@TD8@WyYJ{J_ +z=4gcPv2!)Tt)WOGeE%%b)>WNh;4LsomSz}u8%&aw83x`8lcY1lz}sPx@EE`njoe0L +znMvf)xi>@3LEGea83x`clVp=dT>M~V$p6)^EP3v7Z$og(RDMm#oHcuwa)_auMjpBH +zbOz`thUaR967Mc}IvV^9txa@45Aro7;0=noe^c_LGT*kv=ub1#mi8t&`7K(Hl;V8` +zNNzIJG2;E{_0VHez}Mbpc-Vu57GI;k!SC}1c*42W8*FH7QL@UC^2_TyuIg&K-_hOQ +zT5#2s)?gvu?RHh$i(~`7mtRx5(5@dnpO+Tdi}W1es#GgbQC*M4c@@>=`F8aex~ko!6$_N@u9?Rh +zpwza=RcEisRZv^3q$&HQmUc@~eoelX>Y1-ND)X!J%kBM8R8gK^YOlH2wZK)KUnZ94 +zmE{*J>k^BF73G!rg*7%PsIPHVR2JG`K}BJStMD?nVyUiJhX8B +zan(GE7A8@`;x%7ukamegD)%KT@{2r`)uq<# +zD8Ff9VeTxOn7hdqcB}q?mcy;)323=Wr79}$lwy{Z9{&ZccFnWO^m~`1M8;-$jIGib +zyH$Tc%i&h@pbmu<)UeG=P3>)gpp{1^$Sg9!%#mMIRBdKxXm0jfeu1T3VAJicsj%E) +zZqalLEZqXDZnx?WXgShL14?Uk+l@6~wN)_~h^_UmvNu*>=@uCE +zw9Gu_V|p1%D?`)C11{3ZBQ2(rp>#4d4=er9<-)VNp{3JnEz8TX*-hZe*VBnzCEAx9 +zs_--^nAang$_pyWOGHBoc+rLn^WCnR0$IYMd@Enz +zss<%rzSS@VR?ZRgio%WCx}=!ZE3#|dY}T_TzgUc@&<&}^!_x~_c$U+xin_y{Ep`IW +zDOd?SoqzfD!_y7Hm(-^7%RokV@LYZl%{sS-`f-%Km%9$ +z=v<7NWZlo@3JS|Bkxm_Zv#ryWvq;=fZbrsr)|DY +z$Vp(Y-|rcqTH3ENJcT8fmFHI%moAWfNs-EzlmUri+L+T?y{!#RO+0|i9l+9g^?ZQo +z`r@I-=|QNu%b@O&$C`8!mx1NJ=4R?V3%#P9I@hK{Obwe_3^|%w3@w^k3?Z7@JPWu^ +za&S*nSN3Pc)B>l_N__OlXjMWqJbj6dWLwbJ);YjLtBQ9o*;DbmBVcE9I+S0 +zgz^e+u)LwGkotIT@!TBRm&F7=FUpM-vnb|cCXctUG+L^w1_lOZAZ7$&CLo@|00AI=4Fh)I0K^-hG&>YCLgnJ)OHwOJ5NhM&LtG<5 +zuMlf5o0qB5(FW8%Zu$G87 +z|6nN*I{1pe`4MCDFNP9!u$tFQh6kc!4=Vwgd_cZ6khXxbZGp5P$QVY1zhP{K#N3LC +ec;|xB;L?JE{Gt+uctQetX^ELRn4+n9DGUJRIzk@+ + +diff --git a/amxmodx/JIT/helpers-x86.o b/amxmodx/JIT/helpers-x86.o +index 1727aba55a4d0134eb1f0e5ce91cfe50d45d4300..1d7e9590dfd2a57fb6712cff0ae3340c9fdf2561 +GIT binary patch +literal 592 +zc$}+u^>JflWMqH=Mh0dE1doBi0ZN;INeu>81||k_03#H$LHPoV2(!U_D9sMU%t+z^ +zKy`{}=74}85F@*!0Vq)bq*;KN6-tB5lteS{15jNo7V}^rwDW234iJNXQS%SR8tom7 +zV76)l&|wE(us8o;EfH`2!BQf0@D+daBgW=m3?=MfHLsZr4@AcvX3#51ttes8E6yk` +zDJn@!0Wq2~Sj +z&%lt*n30-OkXlr%TVY|Qmsp&O<`$4vW=01FbfA}*RGgnv3RdnPe?#7Eip3( +KQ#3U%g#iFvQ&CL- + +diff --git a/amxmodx/JIT/natives-darwin-x86.o b/amxmodx/JIT/natives-darwin-x86.o +new file mode 100644 +index 0000000000000000000000000000000000000000..9ad779d29ebf8ac2a2b709718302802ccbd40bbd +GIT binary patch +literal 708 +zc$_=;>+L^w1_lOZAZ7$&CLq4S00AKW0S4?K8Hm3?X?7@Pg386mm!wvdAk@akhqy+B +zpz4o@>IZ=cMu`0kEXaCN5=#=1`7Vwjj;Q)U%7YnkI1uU{2_P;2s^NhO905|Holm=6 +zITnMA*a6ZWdl)DZ9@bsUvCkUF-6;hm{(N2n2~GmWRHtSDBMvIW+L>zl;?jb +zN5FqkkRi=Scpx%TU^QU7eIVAcNJGMr1sXmqwLqE=C;+l(B9v_hq?bY2p&&gABsGbH9#RK&Yf<|TUOWtK3+qjKRq +z-^A=xBuOwA&T}ixOGc6ebKyMa{FKz<%qnEvScE`&f=d#MkX_)LUzX~hmR6ivf~L?l +TFNML~$KT1(C*IvL#FYU6FY|?U + +diff --git a/amxmodx/JIT/natives-x86.o b/amxmodx/JIT/natives-x86.o +index 45cc2aeda2e8fc664a4559c3ae387899da7bbb62..b8f58393cb700a956067ffb864952febbaa976fe +GIT binary patch +literal 1040 +zc$}+u^>JflWMqH=Mh0dE1doBi0ZN;INeu>epgcK%5sKNM`~)B;9!XvRO0z@N!E8AI +zVS-4q0x1rtc_6#x(aaM7a;{)8PaTLkk;Fd$ +z)k#3jVT95gNb;ebPrF??7K4~OK=QGNfg<5y-L)M1tbyE}Qb6L*=OsXX^Kq7LSDsGx +zxOjxZ9Tj0FLjOy7{+DtD{1*io(tLymA|nM>!+-(wN>VFI81zySOA;CMiZhB!ib@ib +zfUL?~2o2>IrRG3X5&+0)fra7Ye`Gn-lmg;2F=PN~Yb4z@K++D0KM@orNcTF#J54?dn4Ho;zy$K7bDpZ;%`OcGvpsDBp=_MBDG9>0! +zRK&Yf<|TUOWtK3+qjKRq-^A=xBuOwA&T}ixOGc8!!VNA-EJ8NiH@_^^KP{~|wFFI} +wYhDV%T<83h)Z)x4WQ*ZK?mqrbjz013jv=lnAq>u6z%(ljqJeqA2g-*509r1PT>t<8 + +diff --git a/amxmodx/JIT/natives-x86.obj b/amxmodx/JIT/natives-x86.obj +index 67b0b0bb6c8ab4c27eb8f96b6aafcce70e33c677..60855c6ab7206c8235be58de78974fbd33623d17 +GIT binary patch +literal 788 +zc%1WLWMbI*TOjZ$0|SEy0|e-mq*jzLAV542rvUL`D4!XK6&L~%^imQ_5|Pxg0P#a0 +zeu^aKz+iA7wDW1VE5~9GcLyVoh&>Dx2@mV8<=AHph#kpvn2HDNb7!UO-0w8;s39N>N0UhWiCKc!Bl!A@={~u-o +zOdTUsCj)~JhKM3m6d|IIAz}x_)+i!A7$VU~A`sj2p*j&FEkGQKA~Fq01Y*t#43XW) +zerIq&1 | cut -b1) ++LINK = -Lzlib + +-ifeq "$(GCC_VERSION)" "4" +- OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden ++INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \ ++ -I$(MM_ROOT) ++ ++################################################ ++### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ### ++################################################ ++ ++OS := $(shell uname -s) ++ ++ifeq "$(OS)" "Darwin" ++ OBJECTS += JIT/amxexecn-darwin.o JIT/amxjitsn-darwin.o JIT/natives-darwin-x86.o \ ++ JIT/helpers-darwin-x86.o ++ ++ CPP = $(CPP_OSX) ++ LIB_EXT = dylib ++ LIB_SUFFIX = _mm ++ CFLAGS += -DOSX ++ LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5 -Wl,-read_only_relocs,suppress -lz-darwin ++else ++ OBJECTS += JIT/amxexecn.o JIT/amxjitsn.o JIT/natives-x86.o JIT/helpers-x86.o ++ ++ LIB_EXT = so ++ LIB_SUFFIX = _mm_i386 ++ CFLAGS += -DLINUX ++ LINK += -shared -lz + endif + ++LINK += -m32 -lm -ldl ++ ++CFLAGS += -DAMX_NOPROPLIST -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing \ ++ -m32 -Wall -Werror ++CPPFLAGS += -fno-exceptions -fno-rtti ++ ++BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT) ++ + ifeq "$(DEBUG)" "true" + BIN_DIR = Debug +- CFLAGS = $(DEBUG_FLAGS) ++ CFLAGS += $(C_DEBUG_FLAGS) + else + BIN_DIR = Release +- CFLAGS = $(OPT_FLAGS) ++ CFLAGS += $(C_OPT_FLAGS) ++ LINK += -s + endif + + ifeq "$(BINLOG)" "true" +- NAME := $(NAME)_bl ++ LIB_SUFFIX := _bl$(LIB_SUFFIX) + BIN_DIR := $(BIN_DIR)BinLog + OBJECTS += binlog.cpp + CFLAGS += -DBINLOG_ENABLED + endif + +-CFLAGS += -DLINUX -DAMX_NOPROPLIST -Wall -Werror -DHAVE_STDINT_H -static-libgcc -fno-rtti -fno-exceptions ++IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0") + +-ifeq "$(AMD64)" "true" +- BINARY = $(NAME)_$(BIN_SUFFIX_64) +- CFLAGS += -DPAWN_CELL_SIZE=64 -DHAVE_I64 -DAMD64 -m64 +- LINK += -lz64 +- OBJECTS += JIT/natives-amd64.o ++ifeq "$(IS_CLANG)" "1" ++ CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/") ++ CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/") + else +- BINARY = $(NAME)_$(BIN_SUFFIX_32) +- OBJECTS += JIT/amxexecn.o JIT/amxjitsn.o JIT/natives-x86.o +- OBJECTS += JIT/helpers-x86.o +- CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 +- LINK += -lz +- OPT_FLAGS += -march=i586 +- CFLAGS += -m32 ++ CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++ CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3) + endif + +-OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++# Clang || GCC >= 4 ++ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1" ++ CFLAGS += $(C_GCC4_FLAGS) ++ CPPFLAGS += $(CPP_GCC4_FLAGS) ++endif ++ ++# Clang >= 3 || GCC >= 4.7 ++ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1" ++ CFLAGS += -Wno-delete-non-virtual-dtor ++endif ++ ++# OS is Linux and not using clang ++ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1" ++ LINK += -static-libgcc ++endif ++ ++OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++ ++# This will break if we include other Makefiles, but is fine for now. It allows ++# us to make a copy of this file that uses altered paths (ie. Makefile.mine) ++# or other changes without mucking up the original. ++MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) + + $(BIN_DIR)/%.o: %.cpp +- $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< ++ $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< + + all: + mkdir -p $(BIN_DIR) +- $(MAKE) amxmodx ++ $(MAKE) -f $(MAKEFILE_NAME) $(PROJECT) + +-amd64: +- rm -f zlib/libz.a +- $(MAKE) all AMD64=true ++binlog: ++ $(MAKE) -f $(MAKEFILE_NAME) all BINLOG=true + +-amd64_debug: +- rm -f zlib/libz.a +- $(MAKE) all AMD64=true DEBUG=true ++binlog_debug: ++ $(MAKE) -f $(MAKEFILE_NAME) all BINLOG=true DEBUG=true + +-amd64_binlog: +- rm -f zlib/libz.a +- $(MAKE) all AMD64=true BINLOG=true ++$(PROJECT): $(OBJ_BIN) ++ $(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY) + +-amd64_binlog_debug: +- rm -f zlib/libz.a +- $(MAKE) all AMD64=true BINLOG=true DEBUG=true +- +-binlog: +- $(MAKE) all BINLOG=true +- +-binlog_debug: +- $(MAKE) all BINLOG=true DEBUG=true +- +-amxmodx: $(OBJ_LINUX) +- $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) +- +-debug: +- $(MAKE) all DEBUG=true ++debug: ++ $(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true + + default: all + + clean: +- rm -rf Release/*.o +- rm -rf Release/$(NAME)_$(BIN_SUFFIX_32) +- rm -rf Release/$(NAME)_$(BIN_SUFFIX_64) +- rm -rf ReleaseBinLog/*.o +- rm -rf ReleaseBinLog/$(NAME)_bl_$(BIN_SUFFIX_32) +- rm -rf ReleaseBinLog/$(NAME)_bl_$(BIN_SUFFIX_64) +- rm -rf Debug/*.o +- rm -rf Debug/$(NAME)_$(BIN_SUFFIX_32) +- rm -rf Debug/$(NAME)_$(BIN_SUFFIX_64) +- rm -rf DebugBinLog/*.o +- rm -rf DebugBinLog/$(NAME)_bl_$(BIN_SUFFIX_32) +- rm -rf DebugBinLog/$(NAME)_bl_$(BIN_SUFFIX_64) ++ rm -rf $(BIN_DIR)/*.o ++ rm -f $(BIN_DIR)/$(BINARY) ++ +diff --git a/amxmodx/amx.cpp b/amxmodx/amx.cpp +--- a/amxmodx/amx.cpp ++++ b/amxmodx/amx.cpp +@@ -43,17 +43,17 @@ + #include + #include + #include /* for wchar_t */ + #include + #include + #include + #include + #include "osdefs.h" +-#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ ++#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__ + #include + #include + #include + #if !defined AMX_NODYNALOAD + #include + #endif + #if defined JIT + #include +@@ -431,17 +431,17 @@ int AMXAPI amx_Callback(AMX *amx, cell i + { + AMX_HEADER *hdr; + AMX_FUNCSTUB *func; + AMX_NATIVE f; + + hdr=(AMX_HEADER *)amx->base; + assert(hdr->natives<=hdr->libraries); + #if defined AMX_NATIVETABLE +- if (index=0 && index<(cell)NUMENTRIES(hdr,natives,libraries)); + func=GETENTRY(hdr,natives,index); + f=(AMX_NATIVE)func->address; + #if defined AMX_NATIVETABLE +@@ -927,17 +927,17 @@ int AMXAPI amx_Init(AMX *amx, void *prog + p = PAGE_EXECUTE_READWRITE; + else + p |= PAGE_EXECUTE_READ; + return !VirtualProtect(addr, len, p, &prev); + } + + #define ALIGN(addr) (addr) + +- #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ ++ #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__ + + /* Linux already has mprotect() */ + /* But wants the address aligned! */ + #define ALIGN(addr) (char *)(((long)addr + sysconf(_SC_PAGESIZE)-1) & ~(sysconf(_SC_PAGESIZE)-1)) + + #else + + // TODO: Add cases for Linux, Unix, OS/2, ... +@@ -1009,50 +1009,50 @@ int AMXAPI amx_InitJIT(AMX *amx,void *co + + #endif /* #if defined JIT */ + + #endif /* AMX_INIT */ + + #if defined AMX_CLEANUP + int AMXAPI amx_Cleanup(AMX *amx) + { +- #if (defined _Windows || defined LINUX || defined __FreeBSD__ || defined __OpenBSD__) && !defined AMX_NODYNALOAD ++ #if (defined _Windows || defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__) && !defined AMX_NODYNALOAD + #if defined _Windows + typedef int (FAR WINAPI *AMX_ENTRY)(AMX FAR *amx); +- #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ ++ #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__ + typedef int (*AMX_ENTRY)(AMX *amx); + #endif + AMX_HEADER *hdr; + int numlibraries,i; + AMX_FUNCSTUB *lib; + AMX_ENTRY libcleanup; + #endif + + /* unload all extension modules */ +- #if (defined _Windows || defined LINUX || defined __FreeBSD__ || defined __OpenBSD__) && !defined AMX_NODYNALOAD ++ #if (defined _Windows || defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__) && !defined AMX_NODYNALOAD + hdr=(AMX_HEADER *)amx->base; + assert(hdr->magic==AMX_MAGIC); + numlibraries=NUMENTRIES(hdr,libraries,pubvars); + for (i=0; iaddress!=0) { + char funcname[sNAMEMAX+12]; /* +1 for '\0', +4 for 'amx_', +7 for 'Cleanup' */ + strcpy(funcname,"amx_"); + strcat(funcname,GETENTRYNAME(hdr,lib)); + strcat(funcname,"Cleanup"); + #if defined _Windows + libcleanup=(AMX_ENTRY)GetProcAddress((HINSTANCE)lib->address,funcname); +- #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ ++ #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__ + libcleanup=(AMX_ENTRY)dlsym((void*)lib->address,funcname); + #endif + if (libcleanup!=NULL) + libcleanup(amx); + #if defined _Windows + FreeLibrary((HINSTANCE)lib->address); +- #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ ++ #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__ + dlclose((void*)lib->address); + #endif + } /* if */ + } /* for */ + #else + (void)amx; + #endif + return AMX_ERR_NONE; +@@ -3690,17 +3690,17 @@ int AMXAPI amx_GetAddr(AMX *amx,cell amx + + assert(amx!=NULL); + hdr=(AMX_HEADER *)amx->base; + assert(hdr!=NULL); + assert(hdr->magic==AMX_MAGIC); + data=(amx->data!=NULL) ? amx->data : amx->base+(int)hdr->dat; + + assert(phys_addr!=NULL); +- if (amx_addr>=amx->hea && amx_addrstk || amx_addr<0 || amx_addr>=amx->stp) { ++ if ((amx_addr>=amx->hea && amx_addrstk) || amx_addr<0 || amx_addr>=amx->stp) { + *phys_addr=NULL; + return AMX_ERR_MEMACCESS; + } /* if */ + + *phys_addr=(cell *)(data + (int)amx_addr); + return AMX_ERR_NONE; + } + #endif /* AMX_GETADDR */ +@@ -4089,17 +4089,17 @@ int AMXAPI amx_UTF8Len(const cell *cstr, + int AMXAPI amx_GetLibraries(AMX *amx) + { + AMX_HEADER *hdr = (AMX_HEADER *)amx->base; + int numLibraries = NUMENTRIES(hdr, libraries, pubvars); + + return numLibraries; + } + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + #define _snprintf snprintf + #endif + + const char *AMXAPI amx_GetLibrary(AMX *amx, int index, char *buffer, int len) + { + AMX_HEADER *hdr = (AMX_HEADER *)amx->base; + AMX_FUNCSTUB *lib; + +diff --git a/amxmodx/amx.h b/amxmodx/amx.h +--- a/amxmodx/amx.h ++++ b/amxmodx/amx.h +@@ -19,27 +19,27 @@ + * 3. This notice may not be removed or altered from any source distribution. + * + * Version: $Id: amx.h 3006 2006-08-28 11:08:18Z dvander $ + */ + + #if defined FREEBSD && !defined __FreeBSD__ + #define __FreeBSD__ + #endif +-#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ ++#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__ + #include + #endif + + #ifndef AMX_H_INCLUDED + #define AMX_H_INCLUDED + + #if defined HAVE_STDINT_H + #include + #else +- #if defined __LCC__ || defined __DMC__ || defined LINUX ++ #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__ + #if defined HAVE_INTTYPES_H + #include + #else + #include + #endif + #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L + /* The ISO C99 defines the int16_t and int_32t types. If the compiler got + * here, these types are probably undefined. +@@ -185,17 +185,17 @@ typedef int (AMXAPI *AMX_NATIVE_FILTER)( + + #if defined __GNUC__ + #define PACKED __attribute__((packed)) + #else + #define PACKED + #endif + + #if !defined AMX_NO_ALIGN +- #if defined LINUX || defined __FreeBSD__ ++ #if defined LINUX || defined __FreeBSD__ || defined __APPLE__ + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #elif defined MACOS && defined __MWERKS__ + #pragma options align=mac68k + #else + #pragma pack(push) + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #if defined __TURBOC__ + #pragma option -a- /* "pack" pragma for older Borland compilers */ +@@ -437,17 +437,17 @@ int AMXAPI amx_GetStringOld(char *dest,c + #else + #error Unsupported cell size + #endif + + #define amx_RegisterFunc(amx, name, func) \ + amx_Register((amx), amx_NativeInfo((name),(func)), 1); + + #if !defined AMX_NO_ALIGN +- #if defined LINUX || defined __FreeBSD__ ++ #if defined LINUX || defined __FreeBSD__ || defined __APPLE__ + #pragma pack() /* reset default packing */ + #elif defined MACOS && defined __MWERKS__ + #pragma options align=reset + #else + #pragma pack(pop) /* reset previous packing */ + #endif + #endif + +diff --git a/amxmodx/amxcore.cpp b/amxmodx/amxcore.cpp +--- a/amxmodx/amxcore.cpp ++++ b/amxmodx/amxcore.cpp +@@ -175,17 +175,17 @@ static cell AMX_NATIVE_CALL setarg(AMX * + + hdr=(AMX_HEADER *)amx->base; + data=amx->data ? amx->data : amx->base+(int)hdr->dat; + /* get the base value */ + value= * (cell *)(data+(int)amx->frm+((int)params[1]+3)*sizeof(cell)); + /* adjust the address in "value" in case of an array access */ + value+=params[2]*sizeof(cell); + /* verify the address */ +- if (value<0 || value>=amx->hea && valuestk) ++ if (value<0 || (value>=amx->hea && valuestk)) + return 0; + /* set the value indirectly */ + * (cell *)(data+(int)value) = params[3]; + return 1; + } + + static cell AMX_NATIVE_CALL heapspace(AMX *amx,cell *params) + { +diff --git a/amxmodx/amxdbg.cpp b/amxmodx/amxdbg.cpp +--- a/amxmodx/amxdbg.cpp ++++ b/amxmodx/amxdbg.cpp +@@ -457,18 +457,18 @@ int AMXAPI dbg_GetVariable(AMX_DBG *amxd + while (index < amxdbg->hdr->symbols + && (amxdbg->symboltbl[index]->ident == iFUNCTN || strcmp(amxdbg->symboltbl[index]->name, symname) != 0) + && (amxdbg->symboltbl[index]->codestart > scopeaddr || amxdbg->symboltbl[index]->codeend < scopeaddr)) + index++; + if (index >= amxdbg->hdr->symbols) + break; + /* check the range, keep a pointer to the symbol with the smallest range */ + if (strcmp(amxdbg->symboltbl[index]->name, symname) == 0 +- && (codestart == 0 && codeend == 0 +- || amxdbg->symboltbl[index]->codestart >= codestart && amxdbg->symboltbl[index]->codeend <= codeend)) ++ && ((codestart == 0 && codeend == 0) ++ || (amxdbg->symboltbl[index]->codestart >= codestart && amxdbg->symboltbl[index]->codeend <= codeend))) + { + *sym = amxdbg->symboltbl[index]; + codestart = amxdbg->symboltbl[index]->codestart; + codeend = amxdbg->symboltbl[index]->codeend; + } /* if */ + index++; + } /* for */ + +diff --git a/amxmodx/amxdbg.h b/amxmodx/amxdbg.h +--- a/amxmodx/amxdbg.h ++++ b/amxmodx/amxdbg.h +@@ -44,17 +44,17 @@ extern "C" { + + #if defined __GNUC__ + #define PACKED __attribute__((packed)) + #else + #define PACKED + #endif + + #if !defined AMX_NO_ALIGN +- #if defined LINUX || defined __FreeBSD__ ++ #if defined LINUX || defined __FreeBSD__ || defined __APPLE__ + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #elif defined MACOS && defined __MWERKS__ + #pragma options align=mac68k + #else + #pragma pack(push) + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #if defined __TURBOC__ + #pragma option -a- /* "pack" pragma for older Borland compilers */ +@@ -151,17 +151,17 @@ int AMXAPI dbg_GetLineAddress(AMX_DBG *a + int AMXAPI dbg_GetAutomatonName(AMX_DBG *amxdbg, int automaton, const char **name); + int AMXAPI dbg_GetStateName(AMX_DBG *amxdbg, int state, const char **name); + int AMXAPI dbg_GetTagName(AMX_DBG *amxdbg, int tag, const char **name); + int AMXAPI dbg_GetVariable(AMX_DBG *amxdbg, const char *symname, ucell scopeaddr, const AMX_DBG_SYMBOL **sym); + int AMXAPI dbg_GetArrayDim(AMX_DBG *amxdbg, const AMX_DBG_SYMBOL *sym, const AMX_DBG_SYMDIM **symdim); + + + #if !defined AMX_NO_ALIGN +- #if defined LINUX || defined __FreeBSD__ ++ #if defined LINUX || defined __FreeBSD__ || defined __APPLE__ + #pragma pack() /* reset default packing */ + #elif defined MACOS && defined __MWERKS__ + #pragma options align=reset + #else + #pragma pack(pop) /* reset previous packing */ + #endif + #endif + +diff --git a/amxmodx/amxjitsn.asm b/amxmodx/amxjitsn.asm +--- a/amxmodx/amxjitsn.asm ++++ b/amxmodx/amxjitsn.asm +@@ -298,24 +298,16 @@ + %endmacro + + %macro _DROPARGS 1 ; (TR) remove function arguments from the stack + %ifndef STDECL ; (for __cdecl calling convention only) + add esp,%1 + %endif + %endmacro + +- +-%ifdef WIN32 +-section .data exec +-%else +-section .text +-%endif +- +- + global asm_runJIT, _asm_runJIT + global amx_exec_jit, _amx_exec_jit + global getMaxCodeSize, _getMaxCodeSize + + + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ; ; + ; void asm_runJIT( AMX_HEADER *amxh, JumpAddressArray *jumps, void *dest ) ; +@@ -431,25 +423,16 @@ reloc_code_done: + reloc_done: + mov eax,0 + pop esi + pop edi + pop ebx + pop ebp + ret + +-; GWMV: +-; The code below modifies itself to store the arguments to the Pawn opcodes +-; in the compiled code. This is fine, but the .text section in an ELF executable +-; is usually marked read-only, that's why this code is in the .data section. +- +-%ifndef WIN32 +-section .data exec +-%endif +- + OP_LOAD_PRI: + ;nop; + putval j_load_pri+2 + GO_ON j_load_pri, OP_LOAD_ALT, 8 + + j_load_pri: + mov eax,[edi+12345678h] + CHECKCODESIZE j_load_pri +@@ -1047,17 +1030,17 @@ OP_RETN: + OP_CALL: + ;nop; + RELOC j_call_e8-j_call+1 + GO_ON j_call, OP_CALL_I, 8 + + j_call: + ;call 12345678h ; tasm chokes on this out of a sudden + _PUSH 0 +- j_call_e8 ++ j_call_e8: + db 0e8h, 0, 0, 0, 0 + CHECKCODESIZE j_call + + OP_CALL_I: + ;nop; + GO_ON j_call_i, OP_JUMP + + j_call_i: +@@ -2586,9 +2569,9 @@ amx_opcodelist_jit: + DD OP_FLOAT_MUL ; DA + DD OP_FLOAT_DIV ; DA + DD OP_FLOAT_ADD ; DA + DD OP_FLOAT_SUB ; DA + DD OP_FLOAT_TO ; DA + DD OP_FLOAT_ROUND ; DA + DD OP_FLOAT_CMP ; DA + +-END ++END: +diff --git a/amxmodx/amxmodx.cpp b/amxmodx/amxmodx.cpp +--- a/amxmodx/amxmodx.cpp ++++ b/amxmodx/amxmodx.cpp +@@ -141,17 +141,17 @@ static cell AMX_NATIVE_CALL server_print + message[len] = 0; + SERVER_PRINT(message); + + return len; + } + + static cell AMX_NATIVE_CALL engclient_print(AMX *amx, cell *params) /* 3 param */ + { +- int len; ++ int len = 0; + char *msg; + + if (params[1] == 0) + { + for (int i = 1; i <= gpGlobals->maxClients; ++i) + { + CPlayer* pPlayer = GET_PLAYER_POINTER_I(i); + +@@ -492,16 +492,25 @@ static cell AMX_NATIVE_CALL is_amd64_ser + { + #if PAWN_CELL_SIZE==64 + return 1; + #else + return 0; + #endif + } + ++static cell AMX_NATIVE_CALL is_mac_server(AMX *amx, cell *params) ++{ ++#ifdef __APPLE__ ++ return 1; ++#else ++ return 0; ++#endif ++} ++ + static cell AMX_NATIVE_CALL is_jit_enabled(AMX *amx, cell *params) // PM: Useless ;P + { + #ifdef JIT + return 1; + #else + return 0; + #endif + } +@@ -1000,17 +1009,17 @@ static cell AMX_NATIVE_CALL get_user_tea + { + // SidLuke, DoD fix + if (g_bmod_dod) + { + int iTeam = pPlayer->pEdict->v.team; + + if (params[3]) + { +- char *szTeam = ""; ++ const char *szTeam = ""; + + switch (iTeam) + { + case 1: + szTeam = "Allies"; + break; + case 2: + szTeam = "Axis"; +@@ -3838,17 +3847,17 @@ cell AMX_NATIVE_CALL require_module(AMX + } + + static cell AMX_NATIVE_CALL amx_mkdir(AMX *amx, cell *params) + { + int len = 0; + char *path = get_amxstring(amx, params[1], 0, len); + char *realpath = build_pathname("%s", path); + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + return mkdir(realpath, 0700); + #else + return mkdir(realpath); + #endif + } + + static cell AMX_NATIVE_CALL find_plugin_byfile(AMX *amx, cell *params) + { +@@ -4701,16 +4710,17 @@ AMX_NATIVE_INFO amxmodx_Natives[] = + {"get_xvar_float", get_xvar_num}, + {"get_xvar_id", get_xvar_id}, + {"get_xvar_num", get_xvar_num}, + {"int3", int3}, + {"is_amd64_server", is_amd64_server}, + {"is_dedicated_server", is_dedicated_server}, + {"is_jit_enabled", is_jit_enabled}, + {"is_linux_server", is_linux_server}, ++ {"is_mac_server", is_mac_server}, + {"is_map_valid", is_map_valid}, + {"is_module_loaded", is_module_loaded}, + {"is_plugin_loaded", is_plugin_loaded}, + {"is_user_alive", is_user_alive}, + {"is_user_authorized", is_user_authorized}, + {"is_user_bot", is_user_bot}, + {"is_user_connected", is_user_connected}, + {"is_user_connecting", is_user_connecting}, +diff --git a/amxmodx/amxmodx.h b/amxmodx/amxmodx.h +--- a/amxmodx/amxmodx.h ++++ b/amxmodx/amxmodx.h +@@ -27,17 +27,17 @@ + * to your version of the file, but you are not obligated to do so. If + * you do not wish to do so, delete this exception statement from your + * version. + */ + + #ifndef AMXMODX_H + #define AMXMODX_H + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + #include + #include + #include "sclinux.h" + #endif + #include //tolower, etc + #include "string.h" + #include + #include +@@ -81,17 +81,17 @@ extern AMX_NATIVE_INFO file_Natives[]; + extern AMX_NATIVE_INFO float_Natives[]; + extern AMX_NATIVE_INFO string_Natives[]; + extern AMX_NATIVE_INFO vault_Natives[]; + extern AMX_NATIVE_INFO msg_Natives[]; + extern AMX_NATIVE_INFO vector_Natives[]; + extern AMX_NATIVE_INFO g_SortNatives[]; + extern AMX_NATIVE_INFO g_DataStructNatives[]; + +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + #define DLLOAD(path) (DLHANDLE)LoadLibrary(path) + #define DLPROC(m, func) GetProcAddress(m, func) + #define DLFREE(m) FreeLibrary(m) + #else + #define DLLOAD(path) (DLHANDLE)dlopen(path, RTLD_NOW) + #define DLPROC(m, func) dlsym(m, func) + #define DLFREE(m) dlclose(m) + #endif +@@ -102,24 +102,24 @@ extern AMX_NATIVE_INFO g_DataStructNativ + #else + #if defined AMD64 + typedef __int64 _INT_PTR; + #else + typedef __int32 _INT_PTR; + #endif + #endif + +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + typedef HINSTANCE DLHANDLE; + #else + typedef void* DLHANDLE; + #define INFINITE 0xFFFFFFFF + #endif + +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + #define PATH_SEP_CHAR '\\' + #define ALT_SEP_CHAR '/' + #else + #define PATH_SEP_CHAR '/' + #define ALT_SEP_CHAR '\\' + #endif + + #ifndef GETPLAYERAUTHID +@@ -134,17 +134,17 @@ extern AMX_NATIVE_INFO g_DataStructNativ + #define SETCLIENTMAXSPEED (*g_engfuncs.pfnSetClientMaxspeed) + + char* UTIL_SplitHudMessage(register const char *src); + int UTIL_ReadFlags(const char* c); + + void UTIL_ClientPrint(edict_t *pEntity, int msg_dest, char *msg); + void UTIL_FakeClientCommand(edict_t *pEdict, const char *cmd, const char *arg1 = NULL, const char *arg2 = NULL); + void UTIL_GetFlags(char* flags, int flag); +-void UTIL_HudMessage(edict_t *pEntity, const hudtextparms_t &textparms, char *pMessage); ++void UTIL_HudMessage(edict_t *pEntity, const hudtextparms_t &textparms, const char *pMessage); + void UTIL_IntToString(int value, char *output); + void UTIL_ShowMOTD(edict_t *client, char *motd, int mlen, const char *name); + void UTIL_ShowMenu(edict_t* pEntity, int slots, int time, char *menu, int mlen); + + char *UTIL_VarArgs(const char *fmt, ...); + + + #define GET_PLAYER_POINTER(e) (&g_players[ENTINDEX(e)]) +@@ -271,34 +271,34 @@ enum CountModulesMode + }; + + int countModules(CountModulesMode mode); + void modules_callPluginsLoaded(); + void modules_callPluginsUnloaded(); + void modules_callPluginsUnloading(); + + cell* get_amxaddr(AMX *amx, cell amx_addr); +-char* build_pathname(char *fmt, ...); +-char* build_pathname_r(char *buffer, size_t maxlen, char *fmt, ...); ++char* build_pathname(const char *fmt, ...); ++char* build_pathname_r(char *buffer, size_t maxlen, const char *fmt, ...); + char* format_amxstring(AMX *amx, cell *params, int parm, int& len); + AMX* get_amxscript(int, void**, const char**); + const char* get_amxscriptname(AMX* amx); + char* get_amxstring(AMX *amx, cell amx_addr, int id, int& len); + extern "C" size_t get_amxstring_r(AMX *amx, cell amx_addr, char *destination, int maxlen); + + int amxstring_len(cell* cstr); + int load_amxscript(AMX* amx, void** program, const char* path, char error[64], int debug); + int set_amxnatives(AMX* amx, char error[64]); + int set_amxstring(AMX *amx, cell amx_addr, const char *source, int max); + int unload_amxscript(AMX* amx, void** program); + + void copy_amxmemory(cell* dest, cell* src, int len); + void get_modname(char*); +-void print_srvconsole(char *fmt, ...); +-void report_error(int code, char* fmt, ...); ++void print_srvconsole(const char *fmt, ...); ++void report_error(int code, const char* fmt, ...); + void* alloc_amxmemory(void**, int size); + void free_amxmemory(void **ptr); + // get_localinfo + const char* get_localinfo(const char* name, const char* def); + cell AMX_NATIVE_CALL require_module(AMX *amx, cell *params); + extern "C" void LogError(AMX *amx, int err, const char *fmt, ...); + + enum ModuleCallReason +diff --git a/amxmodx/amxxfile.cpp b/amxmodx/amxxfile.cpp +--- a/amxmodx/amxxfile.cpp ++++ b/amxmodx/amxxfile.cpp +@@ -37,17 +37,17 @@ + **********************/ + + #if defined __GNUC__ + #define PACKED __attribute__((packed)) + #else + #define PACKED + #endif + +-#if defined __linux__ ++#if defined(__linux__) || defined(__APPLE__) + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #else + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #if defined __TURBOC__ + #pragma option -a- /* "pack" pragma for older Borland compilers */ + #endif + #endif + +@@ -122,27 +122,27 @@ CAmxxReader::CAmxxReader(const char *fil + DATAREAD(&m_Bh.numPlugins, sizeof(mint8_t), 1); + m_Bh.plugins = new PluginEntry[m_Bh.numPlugins]; + PluginEntry *pe; + m_SectionHdrOffset = 0; + m_Entry = -1; + + for (mint8_t i = 0; i < m_Bh.numPlugins; i++) + { +- pe = &(m_Bh.plugins[i]); ++ pe = &(m_Bh.plugins[(unsigned)i]); + DATAREAD(&pe->cellsize, sizeof(mint8_t), 1); + DATAREAD(&pe->disksize, sizeof(int32_t), 1); + DATAREAD(&pe->imagesize, sizeof(int32_t), 1); + DATAREAD(&pe->memsize, sizeof(int32_t), 1); + DATAREAD(&pe->offs, sizeof(int32_t), 1); + } + + for (mint8_t i = 0; i < m_Bh.numPlugins; i++) + { +- pe = &(m_Bh.plugins[i]); ++ pe = &(m_Bh.plugins[(unsigned)i]); + + if (pe->cellsize == m_CellSize) + { + m_Entry = i; + break; + } + } + +diff --git a/amxmodx/amxxlog.cpp b/amxmodx/amxxlog.cpp +--- a/amxmodx/amxxlog.cpp ++++ b/amxmodx/amxxlog.cpp +@@ -30,22 +30,22 @@ + + // amxx_logging localinfo: + // 0 = no logging + // 1 = one logfile / day + // 2 = one logfile / map + // 3 = HL Logs + + #include +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + #include + #endif + #include "amxmodx.h" + +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + #define vsnprintf _vsnprintf + #endif + + #include "svn_version.h" + + CLog::CLog() + { + m_LogType = 0; +@@ -132,17 +132,17 @@ void CLog::UseFile(const String &fileNam + static char file[256]; + m_LogFile.assign(build_pathname_r(file, sizeof(file)-1, "%s/%s", g_log_dir.c_str(), fileName.c_str())); + } + + void CLog::MapChange() + { + // create dir if not existing + char file[256]; +-#ifdef __linux ++#if defined(__linux__) || defined(__APPLE__) + mkdir(build_pathname_r(file, sizeof(file)-1, "%s", g_log_dir.c_str()), 0700); + #else + mkdir(build_pathname_r(file, sizeof(file)-1, "%s", g_log_dir.c_str())); + #endif + + m_LogType = atoi(get_localinfo("amxx_logging", "1")); + + if (m_LogType < 0 || m_LogType > 3) +diff --git a/amxmodx/binlog.cpp b/amxmodx/binlog.cpp +--- a/amxmodx/binlog.cpp ++++ b/amxmodx/binlog.cpp +@@ -41,17 +41,17 @@ bool BinLog::Open() + { + const char *data = get_localinfo("amxmodx_datadir", "addons/amxmodx/data"); + char path[255]; + build_pathname_r(path, sizeof(path)-1, "%s/binlogs", data); + + if (!DirExists(path)) + { + mkdir(path +-#if defined __linux__ ++#if defined(__linux__) || defined(__APPLE__) + , 0755 + #endif + ); + if (!DirExists(path)) + return false; + } + + char file[255]; +diff --git a/amxmodx/datastructs.h b/amxmodx/datastructs.h +--- a/amxmodx/datastructs.h ++++ b/amxmodx/datastructs.h +@@ -210,18 +210,17 @@ public: + return NULL; + } + return data + (which * cellcount); + }; + // Shifts all items from this item, and including this item up 1. + int ShiftUpFrom(size_t which) + { + // No point shifting this. +- if (this->count < 0 || +- which > this->count) ++ if (which > this->count) + { + + return 0; + } + // First make a new item. + this->Push(); + + // If we got an InsertAfter(lastitem), then which will equal this->count - 1 +@@ -249,18 +248,17 @@ public: + return 1; + + }; + // Shifts all items from this item, and including this item down 1. + // This deletes the item specified. + int Delete(size_t which) + { + // No point shifting this. +- if (this->count < 0 || +- which >= this->count) ++ if (which >= this->count) + { + return 0; + } + + + for (size_t i=which; icount - 1; i++) + { + memcpy(GetCellPointer(i), GetCellPointer(i + 1), sizeof(cell) * cellcount); +diff --git a/amxmodx/debugger.cpp b/amxmodx/debugger.cpp +--- a/amxmodx/debugger.cpp ++++ b/amxmodx/debugger.cpp +@@ -609,19 +609,19 @@ void Debugger::FmtGenericMsg(AMX *amx, i + { + const char *filename = ""; + char native[sNAMEMAX+1]; + + CList::iterator a = g_loadedscripts.find(amx); + if (a) + filename = (*a).getName(); + size_t len = strlen(filename); +- for (size_t i=len-1; i>=0; i--) ++ for (size_t i=len-1; i + #include + #include + #include + #endif + + // header file for unlink() +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + #include + #else + #define WINDOWS_LEAN_AND_MEAN + #include + #include + #endif + + #include "amxmodx.h" +@@ -779,17 +779,17 @@ static cell AMX_NATIVE_CALL amx_ungetc(A + FILE *fp = (FILE *)params[1]; + + if (!fp) + return 0; + + return ungetc(static_cast(params[2]), fp); + } + +-#if defined __linux__ ++#if defined(__linux__) || defined(__APPLE__) + #define _rmdir rmdir + #endif + + static cell AMX_NATIVE_CALL amx_rmdir(AMX *amx, cell *params) + { + int len; + char* sFile = build_pathname("%s", get_amxstring(amx, params[1], 0, len)); + +@@ -812,17 +812,17 @@ static cell AMX_NATIVE_CALL amx_rename(A + { + build_pathname_r(f_old_r, sizeof(f_old_r)-1, "%s", fold); + build_pathname_r(f_new_r, sizeof(f_new_r)-1, "%s", fnew); + } else { + snprintf(f_old_r, sizeof(f_old_r)-1, "%s", fold); + snprintf(f_new_r, sizeof(f_new_r)-1, "%s", fnew); + } + +-#if defined __linux__ ++#if defined(__linux__) || defined(__APPLE__) + return (rename(f_old_r, f_new_r) == 0); + #elif defined WIN32 + return MoveFileA(f_old_r, f_new_r); + #endif + } + + static cell LoadFileForMe(AMX *amx, cell *params) + { +diff --git a/amxmodx/format.cpp b/amxmodx/format.cpp +--- a/amxmodx/format.cpp ++++ b/amxmodx/format.cpp +@@ -24,16 +24,21 @@ + #define is_digit(c) ((unsigned)to_digit(c) <= 9) + #define to_char(n) ((n) + '0') + #define CHECK_ARGS(n) \ + if ((arg+n) > args) { \ + LogError(amx, AMX_ERR_PARAMS, "String formatted incorrectly - parameter %d (total %d)", arg, args); \ + return 0; \ + } + ++template size_t atcprintf(cell *, size_t, const cell *, AMX *, cell *, int *); ++template size_t atcprintf(char *, size_t, const cell *, AMX *, cell *, int *); ++template size_t atcprintf(cell *, size_t, const char *, AMX *, cell *, int *); ++template size_t atcprintf(char *, size_t, const char *, AMX *, cell *, int *); ++ + THash BadLang_Table; + + static cvar_t *amx_mldebug = NULL; + static cvar_t *amx_cl_langs = NULL; + + const char *translate(AMX *amx, cell amxaddr, const char *key) + { + const char *pLangName = NULL; +diff --git a/amxmodx/format.h b/amxmodx/format.h +--- a/amxmodx/format.h ++++ b/amxmodx/format.h +@@ -1,11 +1,14 @@ + #ifndef _INCLUDE_FORMATTING_H + #define _INCLUDE_FORMATTING_H + + //Amx Templatized Cell Printf + template + size_t atcprintf(D *buffer, size_t maxlen, const S *format, AMX *amx, cell *params, int *param); + ++//extern template ++//size_t atcprintf(cell *buffer, size_t maxlen, const cell *format, AMX *amx, cell *params, int *param); ++ + const char *translate(AMX *amx, cell amxaddr, const char *key); + bool translate_bcompat(AMX *amx, cell *source, const char **_key, const char **_def); + + #endif //_INCLUDE_FORMATTING_H +diff --git a/amxmodx/helpers-x86.asm b/amxmodx/helpers-x86.asm +--- a/amxmodx/helpers-x86.asm ++++ b/amxmodx/helpers-x86.asm +@@ -38,14 +38,14 @@ amxx_CpuSupport: + je .fail + + mov eax, 1 + jmp .end + + .fail: + xor eax, eax + +-.end ++.end: + + pop ebx + + pop ebp + ret +diff --git a/amxmodx/md5.cpp b/amxmodx/md5.cpp +--- a/amxmodx/md5.cpp ++++ b/amxmodx/md5.cpp +@@ -180,17 +180,17 @@ unsigned char *MD5::raw_digest(){ + } + + memcpy(s, digest, 16); + return s; + } + + + +-char *MD5::hex_digest(){ ++const char *MD5::hex_digest(){ + + int i; + char *s= new char[33]; + + if (!finalized){ + /* cerr << "MD5::hex_digest: Can't get digest if you haven't "<< + "finalized the digest!" <::iterator a = g_forcemodels.begin(); a; ++a) + { + PRECACHE_MODEL((char*)(*a).getFilename()); + ENGINE_FORCE_UNMODIFIED((*a).getForceType(), (*a).getMin(), (*a).getMax(), (*a).getFilename()); + } + } + + RETURN_META_VALUE(MRES_IGNORED, 0); + } + +-int C_PrecacheSound(char *s) ++int C_PrecacheSound(const char *s) + { + if (!g_forcedsounds) + { + g_forcedsounds = true; + for (CList::iterator a = g_forcesounds.begin(); a; ++a) + { + PRECACHE_SOUND((char*)(*a).getFilename()); + ENGINE_FORCE_UNMODIFIED((*a).getForceType(), (*a).getMin(), (*a).getMax(), (*a).getFilename()); +@@ -726,26 +726,26 @@ void C_ServerDeactivate_Post() + { + if (g_memreport_count == 0) + { + // make new directory + time_t td; + time(&td); + tm *curTime = localtime(&td); + int i = 0; +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + mkdir(build_pathname("%s/memreports", get_localinfo("amxx_basedir", "addons/amxmodx")), 0700); + #else + mkdir(build_pathname("%s/memreports", get_localinfo("amxx_basedir", "addons/amxmodx"))); + #endif + while (true) + { + char buffer[256]; + sprintf(buffer, "%s/memreports/D%02d%02d%03d", get_localinfo("amxx_basedir", "addons/amxmodx"), curTime->tm_mon + 1, curTime->tm_mday, i); +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + mkdir(build_pathname("%s", g_log_dir.c_str()), 0700); + if (mkdir(build_pathname(buffer), 0700) < 0) + #else + mkdir(build_pathname("%s", g_log_dir.c_str())); + if (mkdir(build_pathname(buffer)) < 0) + #endif + { + if (errno == EEXIST) +@@ -1078,26 +1078,26 @@ void C_StartFrame_Post(void) + if (g_memreport_count == 0) + { + // make new directory + time_t td; + time(&td); + tm *curTime = localtime(&td); + + int i = 0; +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + mkdir(build_pathname("%s/memreports", get_localinfo("amxx_basedir", "addons/amxmodx")), 0700); + #else + mkdir(build_pathname("%s/memreports", get_localinfo("amxx_basedir", "addons/amxmodx"))); + #endif + while (true) + { + char buffer[256]; + sprintf(buffer, "%s/memreports/D%02d%02d%03d", get_localinfo("amxx_basedir", "addons/amxmodx"), curTime->tm_mon + 1, curTime->tm_mday, i); +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + mkdir(build_pathname("%s", g_log_dir.c_str()), 0700); + if (mkdir(build_pathname(buffer), 0700) < 0) + #else + mkdir(build_pathname("%s", g_log_dir.c_str())); + if (mkdir(build_pathname(buffer)) < 0) + #endif + { + if (errno == EEXIST) +@@ -1280,17 +1280,17 @@ void C_TraceLine_Post(const float *v1, c + pPlayer->aiming = ptr->iHitgroup; + + pPlayer->lastTrace = ptr->vecEndPos; + } + + RETURN_META(MRES_IGNORED); + } + +-void C_AlertMessage(ALERT_TYPE atype, char *szFmt, ...) ++void C_AlertMessage(ALERT_TYPE atype, const char *szFmt, ...) + { + if (atype != at_logged) + { + RETURN_META(MRES_IGNORED); + } + + /* There are also more messages but we want only logs + at_notice, +@@ -1324,17 +1324,17 @@ void C_AlertMessage(ALERT_TYPE atype, ch + if (retVal) + { + RETURN_META(MRES_SUPERCEDE); + } + + RETURN_META(MRES_IGNORED); + } + +-void C_ChangeLevel(char *map, char *what) ++void C_ChangeLevel(const char *map, const char *what) + { + int ret = executeForwards(FF_ChangeLevel, map); + if (ret) + RETURN_META(MRES_SUPERCEDE); + RETURN_META(MRES_IGNORED); + } + + void C_CvarValue2(const edict_t *pEdict, int requestId, const char *cvar, const char *value) +@@ -1366,17 +1366,17 @@ void C_CvarValue2(const edict_t *pEdict, + + break; + } + } + + RETURN_META(MRES_HANDLED); + } + +-C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) ++C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) + { + gpMetaUtilFuncs = pMetaUtilFuncs; + *pPlugInfo = &Plugin_info; + + int mmajor = 0, mminor = 0, pmajor = 0, pminor = 0; + + sscanf(ifvers, "%d:%d", &mmajor, &mminor); + sscanf(Plugin_info.ifvers, "%d:%d", &pmajor, &pminor); +@@ -1530,17 +1530,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM + Module_UncacheFunctions(); + + ClearLibraries(LibSource_Plugin); + ClearLibraries(LibSource_Module); + + return (TRUE); + } + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + // linux prototype + C_DLLEXPORT void GiveFnptrsToDll(enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals) + { + #else + #ifdef _MSC_VER + // MSVC: Simulate __stdcall calling convention + C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll(enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals) + { +diff --git a/amxmodx/modules.cpp b/amxmodx/modules.cpp +--- a/amxmodx/modules.cpp ++++ b/amxmodx/modules.cpp +@@ -24,18 +24,21 @@ + * L.L.C ("Valve"). You must obey the GNU General Public License in all + * respects for all of the code used other than the HL Engine and MODs + * from Valve. If you modify this file, you may extend this exception + * to your version of the file, but you are not obligated to do so. If + * you do not wish to do so, delete this exception statement from your + * version. + */ + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) ++#if defined(__linux__) + #include ++#endif ++ + #include + #include + #include "sclinux.h" + #endif + + #include "amxmodx.h" + #include "osdep.h" // sleep, etc + #include "CFile.h" +@@ -81,17 +84,17 @@ bool DirExists(const char *dir) + + if (S_ISDIR(s.st_mode)) + return true; + #endif + + return false; + } + +-void report_error(int code, char* fmt, ...) ++void report_error(int code, const char* fmt, ...) + { + va_list argptr; + char string[256]; + *string = 0; + va_start(argptr, fmt); + vsnprintf(string, 255, fmt, argptr); + string[255] = 0; + va_end(argptr); +@@ -101,17 +104,17 @@ void report_error(int code, char* fmt, . + AMXXLOG_Log("Error:"); + AMXXLOG_Log(string); + } else { + AMXXLOG_Log("!!! There was an unexpected module error."); + AMXXLOG_Log("The server may not work correctly."); + } + } + +-void print_srvconsole(char *fmt, ...) ++void print_srvconsole(const char *fmt, ...) + { + va_list argptr; + static char string[384]; + va_start(argptr, fmt); + vsnprintf(string, sizeof(string) - 1, fmt, argptr); + string[sizeof(string) - 1] = '\0'; + va_end(argptr); + +@@ -335,21 +338,24 @@ int load_amxscript(AMX *amx, void **prog + strcpy(error, "Failed to initialize JIT'd plugin"); + + return (amx->error = AMX_ERR_INIT); + } + + if ((err = amx_InitJIT(amx, (void *)rt, (void *)np)) == AMX_ERR_NONE) + { + //amx->base = (unsigned char FAR *)realloc(np, amx->code_size); +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + amx->base = (unsigned char *)VirtualAlloc(NULL, amx->code_size, MEM_COMMIT, PAGE_EXECUTE_READWRITE); +-#else +- //posix_memalign((void **)&(amx->base), sysconf(_SC_PAGESIZE), amx->code_size); ++#elif defined(__GNUC__) ++# if defined(__APPLE__) ++ amx->base = (unsigned char *)valloc(amx->code_size); ++# else + amx->base = (unsigned char *)memalign(sysconf(_SC_PAGESIZE), amx->code_size); ++# endif + mprotect((void *)amx->base, amx->code_size, PROT_READ|PROT_WRITE|PROT_EXEC); + #endif + if (amx->base) + memcpy(amx->base, np, amx->code_size); + + delete [] np; + delete [] rt; + +@@ -636,17 +642,17 @@ int unload_amxscript(AMX* amx, void** pr + a.remove(); + + char *prg = (char *)*program; + + if (!prg) + return AMX_ERR_NONE; + + #if defined JIT +-#if defined __linux__ ++#if defined(__linux__) || defined(__APPLE__) + if ((flags & AMX_FLAG_JITC) != AMX_FLAG_JITC) + { + delete [] prg; + } else { + #ifdef free + #undef free + free(prg); + #define free(ptr) m_deallocator(__FILE__, __LINE__, __FUNCTION__, m_alloc_free, ptr) +@@ -715,17 +721,17 @@ const char* get_amxscriptname(AMX* amx) + return a ? (*a).getName() : ""; + } + + void get_modname(char* buffer) + { + strcpy(buffer, g_mod_name.c_str()); + } + +-char* build_pathname(char *fmt, ...) ++char* build_pathname(const char *fmt, ...) + { + static char string[256]; + int b; + int a = b = snprintf(string, 255, "%s%c", g_mod_name.c_str(), PATH_SEP_CHAR); + + va_list argptr; + va_start(argptr, fmt); + a += vsnprintf (&string[a], 255 - a, fmt, argptr); +@@ -741,17 +747,17 @@ char* build_pathname(char *fmt, ...) + *path = PATH_SEP_CHAR; + } + ++path; + } + + return string; + } + +-char *build_pathname_r(char *buffer, size_t maxlen, char *fmt, ...) ++char *build_pathname_r(char *buffer, size_t maxlen, const char *fmt, ...) + { + snprintf(buffer, maxlen, "%s%c", g_mod_name.c_str(), PATH_SEP_CHAR); + + size_t len = strlen(buffer); + char *ptr = buffer + len; + + va_list argptr; + va_start(argptr, fmt); +@@ -766,17 +772,17 @@ char *build_pathname_r(char *buffer, siz + } + ++ptr; + } + + return buffer; + } + + // build pathname based on addons dir +-char* build_pathname_addons(char *fmt, ...) ++char* build_pathname_addons(const char *fmt, ...) + { + static char string[256]; + + va_list argptr; + va_start(argptr, fmt); + vsnprintf (string, 255, fmt, argptr); + va_end(argptr); + +@@ -870,29 +876,31 @@ bool ConvertModuleName(const char *pathS + } else { + *ptr = '\0'; + } + + path.assign(orig_path); + path.append(PATH_SEP_CHAR); + path.append(tmpname); + path.append("_amxx"); +-#if defined __linux__ ++#if defined(__linux__) || defined(__APPLE__) + #if defined AMD64 || PAWN_CELL_SIZE==64 + path.append("_amd64"); + #else + path.append("_i"); + path.append(iDigit); + path.append("86"); + #endif + #endif + #if defined WIN32 + path.append(".dll"); + #elif defined __linux__ + path.append(".so"); ++#elif defined __APPLE__ ++ path.append(".dylib"); + #endif + + return true; + } + + bool LoadModule(const char *shortname, PLUG_LOADTIME now, bool simplify, bool noFileBail) + { + char pathString[512]; +@@ -1174,30 +1182,26 @@ void modules_callPluginsUnloading() + (*iter).CallPluginsUnloading(); + ++iter; + } + } + + // new functions + int MNF_AddNatives(AMX_NATIVE_INFO* natives) + { +- CList::iterator a = g_modules.begin(); +- + if (!g_CurrentlyCalledModule || g_ModuleCallReason != ModuleCall_Attach) + return FALSE; // may only be called from attach + + g_CurrentlyCalledModule->m_Natives.push_back(natives); + + return TRUE; + } + + int MNF_AddNewNatives(AMX_NATIVE_INFO *natives) + { +- CList::iterator a = g_modules.begin(); +- + if (!g_CurrentlyCalledModule || g_ModuleCallReason != ModuleCall_Attach) + return FALSE; // may only be called from attach + + g_CurrentlyCalledModule->m_NewNatives.push_back(natives); + + return TRUE; + } + +diff --git a/amxmodx/modules.h b/amxmodx/modules.h +--- a/amxmodx/modules.h ++++ b/amxmodx/modules.h +@@ -30,17 +30,17 @@ + */ + + #ifndef __MODULES_H__ + #define __MODULES_H__ + + #include "amx.h" + + #undef DLLEXPORT +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + #define DLLEXPORT __declspec(dllexport) + #else + #define DLLEXPORT __attribute__((visibility("default"))) + #define WINAPI + #endif + + #undef C_DLLEXPORT + #define C_DLLEXPORT extern "C" DLLEXPORT +diff --git a/amxmodx/natives.cpp b/amxmodx/natives.cpp +--- a/amxmodx/natives.cpp ++++ b/amxmodx/natives.cpp +@@ -30,18 +30,21 @@ + + #include "amxmodx.h" + #include "sh_stack.h" + #include "natives.h" + #include "debugger.h" + #include "libraries.h" + #include "format.h" + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) ++#if defined(__linux__) + #include ++#endif ++ + #include + #include + #include "sclinux.h" + #endif + + //Written by David "BAILOPAN" Anderson + //With the exception for param_convert, which was written by + // Julien "dJeyL" Laurent +@@ -474,22 +477,26 @@ static cell AMX_NATIVE_CALL register_nat + + regnative *pNative = new regnative; + pNative->amx = amx; + pNative->func = idx; + + //we'll apply a safety buffer too + //make our function + int size = amxx_DynaCodesize(); +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + DWORD temp; + pNative->pfn = new char[size + 10]; + VirtualProtect(pNative->pfn, size+10, PAGE_EXECUTE_READWRITE, &temp); +-#else ++#elif defined(__GNUC__) ++# if defined(__APPLE__) ++ pNative->pfn = (char *)valloc(size+10); ++# else + pNative->pfn = (char *)memalign(sysconf(_SC_PAGESIZE), size+10); ++# endif + mprotect((void *)pNative->pfn, size+10, PROT_READ|PROT_WRITE|PROT_EXEC); + #endif + + int id = (int)g_RegNatives.size(); + + amxx_DynaMake(pNative->pfn, id); + pNative->func = idx; + pNative->style = params[3]; +diff --git a/amxmodx/osdefs.h b/amxmodx/osdefs.h +--- a/amxmodx/osdefs.h ++++ b/amxmodx/osdefs.h +@@ -34,16 +34,20 @@ + # define __32BIT__ 1 + # endif + #endif + + #if defined __linux__ + #include + #endif + ++#if defined __APPLE__ ++ #include ++#endif ++ + /* Linux NOW has these */ + #if !defined BIG_ENDIAN + #define BIG_ENDIAN 4321 + #endif + #if !defined LITTLE_ENDIAN + #define LITTLE_ENDIAN 1234 + #endif + +diff --git a/amxmodx/sclinux.h b/amxmodx/sclinux.h +--- a/amxmodx/sclinux.h ++++ b/amxmodx/sclinux.h +@@ -15,36 +15,40 @@ + * + * So we stick to getchar at the moment... (one needs to key ctrl-d to terminate input if getch is called with a controlling + * terminal driven by a tty having -raw) + */ + #define getch getchar + #define stricmp(a,b) strcasecmp(a,b) + #define strnicmp(a,b,c) strncasecmp(a,b,c) + +-#if defined __linux__ && !defined _snprintf ++#if ( defined(__linux__) || defined(__APPLE__) ) && !defined _snprintf + #define _snprintf snprintf + #endif +-#if defined __linux__ && !defined _vsnprintf ++#if ( defined(__linux__) || defined(__APPLE__) ) && !defined _vsnprintf + //#define _vsnprintf vsnprintf + #endif + + /* + * WinWorld wants '\'. Unices do not. + */ + #define DIRECTORY_SEP_CHAR '/' + #define DIRECTORY_SEP_STR "/" + + /* + * SC assumes that a computer is Little Endian unless told otherwise. It uses + * (and defines) the macros BYTE_ORDER and BIG_ENDIAN. + * For Linux, we must overrule these settings with those defined in glibc. + */ + #if !defined __BYTE_ORDER + # include ++# if defined __APPLE__ ++# include ++# define __BYTE_ORDER BYTE_ORDER ++# endif + #endif + + #if defined __OpenBSD__ + # define __BYTE_ORDER BYTE_ORDER + # define __LITTLE_ENDIAN LITTLE_ENDIAN + # define __BIG_ENDIAN BIG_ENDIAN + #endif + +diff --git a/amxmodx/sdk/amxxmodule.cpp b/amxmodx/sdk/amxxmodule.cpp +--- a/amxmodx/sdk/amxxmodule.cpp ++++ b/amxmodx/sdk/amxxmodule.cpp +@@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta + GetEntityAPI2, + GetEntityAPI2_Post, + GetNewDLLFunctions, + GetNewDLLFunctions_Post, + GetEngineFunctions, + GetEngineFunctions_Post + }; + +-C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) ++C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) + { + if ((int) CVAR_GET_FLOAT("developer") != 0) + UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", + Plugin_info.logtag, ifvers, Plugin_info.ifvers); + + // Check for valid pMetaUtilFuncs before we continue. + if(!pMetaUtilFuncs) { + UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag); +@@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM + #ifdef FN_META_DETACH + FN_META_DETACH(); + #endif // FN_META_DETACH + return TRUE; + } + + + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + // linux prototype + C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) { + + #else + #ifdef _MSC_VER + // MSVC: Simulate __stdcall calling convention + C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) + { +@@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... ) + return string; + } + + + //========================================================= + // UTIL_LogPrintf - Prints a logged message to console. + // Preceded by LOG: ( timestamp ) < message > + //========================================================= +-void UTIL_LogPrintf( char *fmt, ... ) ++void UTIL_LogPrintf( const char *fmt, ... ) + { + va_list argptr; + static char string[1024]; + + va_start ( argptr, fmt ); + vsnprintf ( string, sizeof(string), fmt, argptr ); + va_end ( argptr ); + +diff --git a/amxmodx/sdk/amxxmodule.h b/amxmodx/sdk/amxxmodule.h +--- a/amxmodx/sdk/amxxmodule.h ++++ b/amxmodx/sdk/amxxmodule.h +@@ -15,21 +15,26 @@ + #ifdef USE_METAMOD + #include + #include + #include "osdep.h" + #endif // #ifdef USE_METAMOD + + // DLL Export + #undef DLLEXPORT +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + #define DLLEXPORT __declspec(dllexport) + #else + #define DLLEXPORT __attribute__((visibility("default"))) ++#endif ++ ++#if defined(__linux__) && !defined(LINUX) + #define LINUX ++#elif defined(__APPLE__) && !defined(OSX) ++#define OSX + #endif + + #undef C_DLLEXPORT + #define C_DLLEXPORT extern "C" DLLEXPORT + + // ***** AMXX stuff ***** + + // module interface version was 1 +@@ -61,17 +66,17 @@ struct amxx_module_info_s + + // *** Small stuff *** + // The next section is copied from the amx.h file + // Copyright (c) ITB CompuPhase, 1997-2005 + + #if defined HAVE_STDINT_H + #include + #else +- #if defined __LCC__ || defined __DMC__ || defined LINUX ++ #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__ + #if defined HAVE_INTTYPES_H + #include + #else + #include + #endif + #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L + /* The ISO C99 defines the int16_t and int_32t types. If the compiler got + * here, these types are probably undefined. +@@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t + + #if defined __GNUC__ + #define PACKED __attribute__((packed)) + #else + #define PACKED + #endif + + #if !defined AMX_NO_ALIGN +- #if defined LINUX || defined __FreeBSD__ ++ #if defined LINUX || defined __FreeBSD__ || defined __APPLE__ + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #elif defined MACOS && defined __MWERKS__ + #pragma options align=mac68k + #else + #pragma pack(push) + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #if defined __TURBOC__ + #pragma option -a- /* "pack" pragma for older Borland compilers */ +@@ -390,28 +395,28 @@ enum { + AMX_ERR_INIT, /* AMX not initialized (or doubly initialized) */ + AMX_ERR_USERDATA, /* unable to set user data field (table full) */ + AMX_ERR_INIT_JIT, /* cannot initialize the JIT */ + AMX_ERR_PARAMS, /* parameter error */ + AMX_ERR_DOMAIN, /* domain error, expression result does not fit in range */ + }; + + #if !defined AMX_NO_ALIGN +- #if defined __linux__ ++ #if defined(__linux__) || defined(__APPLE__) + #pragma pack() /* reset default packing */ + #else + #pragma pack(pop) /* reset previous packing */ + #endif + #endif + + + // ***** declare functions ***** + + #ifdef USE_METAMOD +-void UTIL_LogPrintf( char *fmt, ... ); ++void UTIL_LogPrintf( const char *fmt, ... ); + void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage); + short FixedSigned16( float value, float scale ); + unsigned short FixedUnsigned16( float value, float scale ); + + #ifdef FN_META_QUERY + void FN_META_QUERY(void); + #endif // FN_META_QUERY + +@@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict + + #ifdef FN_AllowLagCompensation_Post + int FN_AllowLagCompensation_Post(void); + #endif // FN_AllowLagCompensation_Post + + + + #ifdef FN_PrecacheModel +-int FN_PrecacheModel(char *s); ++int FN_PrecacheModel(const char *s); + #endif // FN_PrecacheModel + + #ifdef FN_PrecacheSound +-int FN_PrecacheSound(char *s); ++int FN_PrecacheSound(const char *s); + #endif // FN_PrecacheSound + + #ifdef FN_SetModel + void FN_SetModel(edict_t *e, const char *m); + #endif // FN_SetModel + + #ifdef FN_ModelIndex + int FN_ModelIndex(const char *m); +@@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m); + int FN_ModelFrames(int modelIndex); + #endif // FN_ModelFrames + + #ifdef FN_SetSize + void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize + + #ifdef FN_ChangeLevel +-void FN_ChangeLevel(char *s1, char *s2); ++void FN_ChangeLevel(const char *s1, const char *s2); + #endif // FN_ChangeLevel + + #ifdef FN_GetSpawnParms + void FN_GetSpawnParms(edict_t *ent); + #endif // FN_GetSpawnParms + + #ifdef FN_SaveSpawnParms + void FN_SaveSpawnParms(edict_t *ent); +@@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien + int FN_NumberOfEntities(void); + #endif // FN_NumberOfEntities + + #ifdef FN_GetInfoKeyBuffer + char *FN_GetInfoKeyBuffer(edict_t *e); + #endif // FN_GetInfoKeyBuffer + + #ifdef FN_InfoKeyValue +-char *FN_InfoKeyValue(char *infobuffer, char *key); ++char *FN_InfoKeyValue(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue + + #ifdef FN_SetKeyValue +-void FN_SetKeyValue(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue + + #ifdef FN_SetClientKeyValue +-void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue + + #ifdef FN_IsMapValid +-int FN_IsMapValid(char *filename); ++int FN_IsMapValid(const char *filename); + #endif // FN_IsMapValid + + #ifdef FN_StaticDecal + void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal + + #ifdef FN_PrecacheGeneric +-int FN_PrecacheGeneric(char *s); ++int FN_PrecacheGeneric(const char *s); + #endif // FN_PrecacheGeneric + + #ifdef FN_GetPlayerUserId + int FN_GetPlayerUserId(edict_t *e ); + #endif // FN_GetPlayerUserId + + #ifdef FN_BuildSoundMsg + void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t * + #endif // FN_GetPlayerAuthId + + + + + + + #ifdef FN_PrecacheModel_Post +-int FN_PrecacheModel_Post(char *s); ++int FN_PrecacheModel_Post(const char *s); + #endif // FN_PrecacheModel_Post + + #ifdef FN_PrecacheSound_Post +-int FN_PrecacheSound_Post(char *s); ++int FN_PrecacheSound_Post(const char *s); + #endif // FN_PrecacheSound_Post + + #ifdef FN_SetModel_Post + void FN_SetModel_Post(edict_t *e, const char *m); + #endif // FN_SetModel_Post + + #ifdef FN_ModelIndex_Post + int FN_ModelIndex_Post(const char *m); +@@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m); + int FN_ModelFrames_Post(int modelIndex); + #endif // FN_ModelFrames_Post + + #ifdef FN_SetSize_Post + void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize_Post + + #ifdef FN_ChangeLevel_Post +-void FN_ChangeLevel_Post(char *s1, char *s2); ++void FN_ChangeLevel_Post(const char *s1, const char *s2); + #endif // FN_ChangeLevel_Post + + #ifdef FN_GetSpawnParms_Post + void FN_GetSpawnParms_Post(edict_t *ent); + #endif // FN_GetSpawnParms_Post + + #ifdef FN_SaveSpawnParms_Post + void FN_SaveSpawnParms_Post(edict_t *ent); +@@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake + int FN_NumberOfEntities_Post(void); + #endif // FN_NumberOfEntities_Post + + #ifdef FN_GetInfoKeyBuffer_Post + char *FN_GetInfoKeyBuffer_Post(edict_t *e); + #endif // FN_GetInfoKeyBuffer_Post + + #ifdef FN_InfoKeyValue_Post +-char *FN_InfoKeyValue_Post(char *infobuffer, char *key); ++char *FN_InfoKeyValue_Post(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue_Post + + #ifdef FN_SetKeyValue_Post +-void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue_Post + + #ifdef FN_SetClientKeyValue_Post +-void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue_Post + + #ifdef FN_IsMapValid_Post +-int FN_IsMapValid_Post(char *filename); ++int FN_IsMapValid_Post(const char *filename); + #endif // FN_IsMapValid_Post + + #ifdef FN_StaticDecal_Post + void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal_Post + + #ifdef FN_PrecacheGeneric_Post +-int FN_PrecacheGeneric_Post(char *s); ++int FN_PrecacheGeneric_Post(const char *s); + #endif // FN_PrecacheGeneric_Post + + #ifdef FN_GetPlayerUserId_Post + int FN_GetPlayerUserId_Post(edict_t *e ); + #endif // FN_GetPlayerUserId_Post + + #ifdef FN_BuildSoundMsg_Post + void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -2111,17 +2116,17 @@ enum LibType + + typedef void (*AUTHORIZEFUNC)(int player, const char *authstring); + + typedef int (*PFN_ADD_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef int (*PFN_ADD_NEW_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef char * (*PFN_BUILD_PATHNAME) (const char * /*format*/, ...); + typedef char * (*PFN_BUILD_PATHNAME_R) (char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...); + typedef cell * (*PFN_GET_AMXADDR) (AMX * /*amx*/, cell /*offset*/); +-typedef void (*PFN_PRINT_SRVCONSOLE) (char * /*format*/, ...); ++typedef void (*PFN_PRINT_SRVCONSOLE) (const char * /*format*/, ...); + typedef const char * (*PFN_GET_MODNAME) (void); + typedef const char * (*PFN_GET_AMXSCRIPTNAME) (int /*id*/); + typedef AMX * (*PFN_GET_AMXSCRIPT) (int /*id*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYAMX) (const AMX * /*amx*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYNAME) (const char * /*name*/); + typedef int (*PFN_SET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */); + typedef char * (*PFN_GET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/); + typedef int (*PFN_GET_AMXSTRINGLEN) (const cell *ptr); +@@ -2170,18 +2175,18 @@ typedef void * (*PFN_ALLOCATOR) (co + typedef void * (*PFN_REALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ ); + typedef void (*PFN_DEALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const void* /*addr*/ ); + #endif + typedef int (*PFN_AMX_EXEC) (AMX* /*amx*/, cell* /*return val*/, int /*index*/); + typedef int (*PFN_AMX_EXECV) (AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/); + typedef int (*PFN_AMX_ALLOT) (AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/); +-typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); +-typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); + typedef int (*PFN_LOAD_AMXSCRIPT) (AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */); + typedef int (*PFN_UNLOAD_AMXSCRIPT) (AMX* /*amx*/,void** /*code*/); + typedef cell (*PFN_REAL_TO_CELL) (REAL /*x*/); + typedef REAL (*PFN_CELL_TO_REAL) (cell /*x*/); + typedef int (*PFN_REGISTER_SPFORWARD) (AMX * /*amx*/, int /*func*/, ... /*params*/); + typedef int (*PFN_REGISTER_SPFORWARD_BYNAME) (AMX * /*amx*/, const char * /*funcName*/, ... /*params*/); + typedef void (*PFN_UNREGISTER_SPFORWARD) (int /*id*/); + typedef void (*PFN_MERGEDEFINITION_FILE) (const char * /*filename*/); +diff --git a/amxmodx/sh_list.h b/amxmodx/sh_list.h +--- a/amxmodx/sh_list.h ++++ b/amxmodx/sh_list.h +@@ -14,17 +14,17 @@ + // MSVC8 fix for offsetof macro redefition warnings + #ifdef _MSC_VER + #if _MSC_VER >= 1400 + #undef offsetof + #endif + #endif + + #include +-#include ++#include + + //namespace SourceHook + //{ + //This class is from CSDM for AMX Mod X + /* + A circular, doubly-linked list with one sentinel node + + Empty: +diff --git a/amxmodx/sh_tinyhash.h b/amxmodx/sh_tinyhash.h +--- a/amxmodx/sh_tinyhash.h ++++ b/amxmodx/sh_tinyhash.h +@@ -49,22 +49,22 @@ + val = other.val; + } + K key; + V val; + }; + typedef List * NodePtr; + public: + class const_iterator; +- THash() : m_Buckets(NULL), m_numBuckets(0), m_percentUsed(0.0f), m_items(0) ++ THash() : m_Buckets(NULL), m_numBuckets(0), m_percentUsed(0.0f) + { + _Refactor(); + } + THash(const THash &other) : m_Buckets(new NodePtr[other.m_numBuckets]), +- m_numBuckets(other.m_numBuckets), m_percentUsed(other.m_percentUsed), m_items(0) ++ m_numBuckets(other.m_numBuckets), m_percentUsed(other.m_percentUsed) + { + for (size_t i=0; ikey)->val = iter->val; + } + void operator=(const THash &other) + { +@@ -77,20 +77,16 @@ + { + _Clear(); + } + void clear() + { + _Clear(); + _Refactor(); + } +- size_t size() +- { +- return m_items; +- } + size_t GetBuckets() + { + return m_numBuckets; + } + float PercentUsed() + { + return m_percentUsed; + } +@@ -117,17 +113,16 @@ + delete m_Buckets[i]; + m_Buckets[i] = NULL; + } + } + if (m_Buckets) + delete [] m_Buckets; + m_Buckets = NULL; + m_numBuckets = 0; +- m_items = 0; + } + public: + template + V & AltFindOrInsert(const U & ukey) + { + size_t place = HashAlt(ukey) % m_numBuckets; + THashNode *pNode = NULL; + if (!m_Buckets[place]) +@@ -224,18 +219,16 @@ + } + } + //reassign bucket table + delete [] m_Buckets; + m_Buckets = temp; + } + } + public: +- friend class iterator; +- friend class const_iterator; + class iterator + { + friend class THash; + public: + iterator() : curbucket(-1), hash(NULL), end(true) + { + }; + iterator(THash *h) : curbucket(-1), hash(h), end(false) +@@ -299,18 +292,16 @@ + // Remove this element and move to the next one + iterator tmp = *this; + ++tmp; + delete (*iter); + hash->m_Buckets[curbucket]->erase(iter); + *this = tmp; + + // :TODO: Maybe refactor to a lower size if required +- +- m_items--; + } + private: + void _Inc() + { + if (end || !hash || curbucket >= static_cast(hash->m_numBuckets)) + return; + if (curbucket < 0) + { +@@ -449,16 +440,18 @@ + } + } + private: + int curbucket; + typename List::iterator iter; + const THash *hash; + bool end; + }; ++ friend class iterator; ++ friend class const_iterator; + public: + iterator begin() + { + return iterator(this); + } + iterator end() + { + iterator iter; +diff --git a/amxmodx/sm_trie_tpl.h b/amxmodx/sm_trie_tpl.h +--- a/amxmodx/sm_trie_tpl.h ++++ b/amxmodx/sm_trie_tpl.h +@@ -29,17 +29,17 @@ + * Version: $Id$ + */ + + #ifndef _INCLUDE_SOURCEMOD_TEMPLATED_TRIE_H_ + #define _INCLUDE_SOURCEMOD_TEMPLATED_TRIE_H_ + + #include + #include +-#include ++#include + #include + + enum NodeType + { + Node_Unused = 0, /* Node is not being used (sparse) */ + Node_Arc, /* Node is part of an arc and does not terminate */ + Node_Term, /* Node is a terminator */ + }; +diff --git a/amxmodx/strptime.cpp b/amxmodx/strptime.cpp +--- a/amxmodx/strptime.cpp ++++ b/amxmodx/strptime.cpp +@@ -5,17 +5,17 @@ + + Localized strptime(). + *-----------------------------------------------------------------------*/ + //#include "config.h" + #include + #include + #include + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + #define strnicmp strncasecmp + #endif + + #if _MSC_VER + #if _MSC_VER >= 1400 + // MSVC8 - Replace POSIX stricmp with ISO C++ conformant one as it is deprecated + #define stricmp _stricmp + +@@ -331,18 +331,20 @@ char *strptime(const char *buf, const ch + ti.qZ = /* 0 = STD, 1 = DST */ + ti.qU = /* week in year (0...53) */ + ti.qV = -1; /* week in year mode: 0=U, 1=W, 2=V */ + + if (0 > time_int(&ti, (const unsigned char **)&buf, fmt, addthem)) buf = NULL; + if (0 <= ti.qS) (*defoper) ( &tm->tm_sec , ti.qS ); + if (0 <= ti.qM) (*defoper) ( &tm->tm_min , ti.qM ); //tm->tm_min = ti.qM; + if (0 <= ti.qI) ++ { + if (0 <= ti.qp) ti.qH = ti.qI % 12 + ti.qp * 12; +- else (*defoper) ( &tm->tm_hour , ti.qI ); //tm->tm_hour = ti.qI; ++ else (*defoper) ( &tm->tm_hour , ti.qI ); //tm->tm_hour = ti.qI; ++ } + if (0 <= ti.qH) (*defoper) ( &tm->tm_hour , ti.qH ); //tm->tm_hour = ti.qH; + if (0 <= ti.qZ) (*defoper) ( &tm->tm_isdst , ti.qZ - 1 ); //tm->tm_isdst = ti.qZ - 1; + if (0 <= ti.qy) ti.qY = ti.qy; + if (0 <= ti.qY) (*defoper) ( &tm->tm_year , + ti.qY += + (ti.qY > 99? -1900: + (ti.qY < 70? 100: 0)) ); + /*tm->tm_year = ti.qY += +diff --git a/amxmodx/util.cpp b/amxmodx/util.cpp +--- a/amxmodx/util.cpp ++++ b/amxmodx/util.cpp +@@ -27,17 +27,17 @@ + * to your version of the file, but you are not obligated to do so. If + * you do not wish to do so, delete this exception statement from your + * version. + */ + + #include + #include "amxmodx.h" + +-#if defined __linux__ && !defined _vsnprintf ++#if ( defined(__linux__) || defined(__APPLE__) ) && !defined _vsnprintf + #define _vsnprintf vsnprintf + #endif + + char *UTIL_VarArgs(const char *fmt, ...) + { + va_list ap; + static char string[4096]; + +@@ -152,38 +152,38 @@ void UTIL_IntToString(int value, char *o + + *output = 0; + if (value < 0) value = -value; + int tho = value / 1000; + int aaa = 0; + + if (tho) + { +- aaa += sprintf(&output[aaa], words[tho]); +- aaa += sprintf(&output[aaa], words[29]); ++ aaa += sprintf(&output[aaa], "%s", words[tho]); ++ aaa += sprintf(&output[aaa], "%s", words[29]); + value = value % 1000; + } + + int hun = value / 100; + + if (hun) + { +- aaa += sprintf(&output[aaa], words[hun]); +- aaa += sprintf(&output[aaa], words[28]); ++ aaa += sprintf(&output[aaa], "%s", words[hun]); ++ aaa += sprintf(&output[aaa], "%s", words[28]); + value = value % 100; + } + + int ten = value / 10; + int unit = value % 10; + + if (ten) +- aaa += sprintf(&output[aaa], words[(ten > 1) ? (ten + 18) : (unit + 10)]); ++ aaa += sprintf(&output[aaa], "%s", words[(ten > 1) ? (ten + 18) : (unit + 10)]); + + if (ten != 1 && (unit || (!value && !hun && !tho))) +- sprintf(&output[aaa], words[unit]); ++ sprintf(&output[aaa], "%s", words[unit]); + } + + char* UTIL_SplitHudMessage(const char *src) + { + static char message[512]; + short b = 0, d = 0, e = 0, c = -1; + + while (src[d] && e < 480) +@@ -237,17 +237,17 @@ short FixedSigned16(float value, float s + if (output > 32767) + output = 32767; + else if (output < -32768) + output = -32768; + + return (short)output; + } + +-void UTIL_HudMessage(edict_t *pEntity, const hudtextparms_t &textparms, char *pMessage) ++void UTIL_HudMessage(edict_t *pEntity, const hudtextparms_t &textparms, const char *pMessage) + { + if (pEntity) + MESSAGE_BEGIN(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, NULL, pEntity); + else + MESSAGE_BEGIN(MSG_BROADCAST, SVC_TEMPENTITY); + + WRITE_BYTE(29); + WRITE_BYTE(textparms.channel & 0xFF); +diff --git a/compiler/amxxpc/Makefile b/compiler/amxxpc/Makefile +--- a/compiler/amxxpc/Makefile ++++ b/compiler/amxxpc/Makefile +@@ -1,46 +1,107 @@ +-#(C)2004-2005 AMX Mod X Development Team ++# (C)2004-2013 AMX Mod X Development Team + # Makefile written by David "BAILOPAN" Anderson + ++##################################### + ### EDIT BELOW FOR OTHER PROJECTS ### ++##################################### + +-OPT_FLAGS = -O3 -funroll-loops -s -pipe -fno-strict-aliasing +-DEBUG_FLAGS = -g -ggdb3 +-CPP = gcc-4.1 +-BINARY = amxxpc +- ++PROJECT = amxxpc + OBJECTS = amx.cpp amxxpc.cpp Binary.cpp + +-LINK = -lz /lib32/libstdc++.a ++############################################## ++### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ### ++############################################## + +-INCLUDE = -I. -L. ++C_OPT_FLAGS = -DNDEBUG -O2 -funroll-loops -fomit-frame-pointer -pipe ++C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3 ++C_GCC4_FLAGS = -fvisibility=hidden ++CPP_GCC4_FLAGS = -fvisibility-inlines-hidden ++CPP = gcc ++CPP_OSX = clang ++ ++LINK = ++ ++INCLUDE = -I. ++ ++################################################ ++### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ### ++################################################ ++ ++OS := $(shell uname -s) ++ ++ifeq "$(OS)" "Darwin" ++ CPP = $(CPP_OSX) ++ LIB_SUFFIX = _osx ++ CFLAGS += -DOSX ++ LINK += -lstdc++ -mmacosx-version-min=10.5 -lz-darwin ++else ++ LIB_SUFFIX = ++ CFLAGS += -DLINUX ++ LINK += -lz /lib32/libstdc++.a ++endif ++ ++LINK += -m32 -lm -ldl -L. ++ ++CFLAGS += -DAMX_ANSIONLY -DHAVE_STDINT_H -fno-strict-aliasing \ ++ -m32 -Wall -Werror ++CPPFLAGS += -fexceptions -fno-rtti ++ ++BINARY = $(PROJECT)$(LIB_SUFFIX) + + ifeq "$(DEBUG)" "true" + BIN_DIR = Debug +- CFLAGS = $(DEBUG_FLAGS) ++ CFLAGS += $(C_DEBUG_FLAGS) + else + BIN_DIR = Release +- CFLAGS = $(OPT_FLAGS) ++ CFLAGS += $(C_OPT_FLAGS) + endif + +-CFLAGS += -DLINUX -DNDEBUG -Wno-deprecated -fexceptions -DHAVE_STDINT_H -DAMX_ANSIONLY -fno-rtti -static-libgcc ++IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0") + +-OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++ifeq "$(IS_CLANG)" "1" ++ CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/") ++ CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/") ++else ++ CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++ CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3) ++endif ++ ++# Clang || GCC >= 4 ++ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1" ++ CFLAGS += $(C_GCC4_FLAGS) ++ CPPFLAGS += $(CPP_GCC4_FLAGS) ++endif ++ ++# Clang >= 3 || GCC >= 4.7 ++ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1" ++ CFLAGS += -Wno-delete-non-virtual-dtor ++endif ++ ++# OS is Linux and not using clang ++ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1" ++ LINK += -static-libgcc ++endif ++ ++OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++ ++# This will break if we include other Makefiles, but is fine for now. It allows ++# us to make a copy of this file that uses altered paths (ie. Makefile.mine) ++# or other changes without mucking up the original. ++MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) + + $(BIN_DIR)/%.o: %.cpp +- $(CPP) $(INCLUDE) $(CFLAGS) -m32 -o $@ -c $< ++ $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< + + all: + mkdir -p $(BIN_DIR) +- $(MAKE) amxxpc ++ $(MAKE) -f $(MAKEFILE_NAME) $(PROJECT) + +-amxxpc: $(OBJ_LINUX) +- $(CPP) $(INCLUDE) $(CFLAGS) -m32 $(OBJ_LINUX) $(LINK) -ldl -lm -o$(BIN_DIR)/$(BINARY) ++$(PROJECT): $(OBJ_BIN) ++ $(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY) + + default: all + + clean: +- rm -rf Release/*.o +- rm -rf Release/$(BINARY) +- rm -rf Debug/*.o +- rm -rf Debug/$(BINARY) ++ rm -rf $(BIN_DIR)/*.o ++ rm -f $(BIN_DIR)/$(BINARY) + +diff --git a/compiler/amxxpc/amx.cpp b/compiler/amxxpc/amx.cpp +--- a/compiler/amxxpc/amx.cpp ++++ b/compiler/amxxpc/amx.cpp +@@ -37,17 +37,17 @@ + #endif + + #include + #include + #include + #include /* for wchar_t */ + #include + #include "osdefs.h" +-#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ ++#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__ + #include + #if !defined AMX_NODYNALOAD + #include + #endif + #if defined JIT + #include + #include + #endif +@@ -810,22 +810,22 @@ static void expand(unsigned char *code, + /* when all bytes have been expanded, the complete memory block should be done */ + assert(memsize==0); + } + #endif /* defined AMX_INIT */ + + int AMXAPI amx_Init(AMX *amx,void *program) + { + AMX_HEADER *hdr; +- #if (defined _Windows || defined LINUX || defined __FreeBSD__ || defined __OpenBSD__) && !defined AMX_NODYNALOAD ++ #if (defined _Windows || defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__) && !defined AMX_NODYNALOAD + char libname[sNAMEMAX+8]; /* +1 for '\0', +3 for 'amx' prefix, +4 for extension */ + #if defined _Windows + typedef int (FAR WINAPI *AMX_ENTRY)(AMX _FAR *amx); + HINSTANCE hlib; +- #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ ++ #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__ + typedef int (*AMX_ENTRY)(AMX *amx); + void *hlib; + #endif + int numlibraries,i; + AMX_FUNCSTUB *lib; + AMX_ENTRY libinit; + #endif + +@@ -960,47 +960,47 @@ int AMXAPI amx_Init(AMX *amx,void *progr + } /* for */ + } /* local */ + #endif + + /* relocate call and jump instructions */ + amx_BrowseRelocate(amx); + + /* load any extension modules that the AMX refers to */ +- #if (defined _Windows || defined LINUX || defined __FreeBSD__ || defined __OpenBSD__) && !defined AMX_NODYNALOAD ++ #if (defined _Windows || defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__) && !defined AMX_NODYNALOAD + hdr=(AMX_HEADER *)amx->base; + numlibraries=NUMENTRIES(hdr,libraries,pubvars); + for (i=0; iaddress=(ucell)hlib; + } /* for */ + #endif +@@ -1024,17 +1024,17 @@ int AMXAPI amx_Init(AMX *amx,void *progr + DWORD prev, p = 0; + if ((prot & PROT_WRITE)!=0) + p = PAGE_EXECUTE_READWRITE; + else + p |= PAGE_EXECUTE_READ; + return !VirtualProtect(addr, len, p, &prev); + } + +- #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ ++ #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__ + + /* Linux already has mprotect() */ + + #else + + // TODO: Add cases for Linux, Unix, OS/2, ... + + /* DOS32 has no imposed limits on its segments */ +@@ -1099,50 +1099,50 @@ int AMXAPI amx_InitJIT(AMX *amx,void *co + + #endif /* #if defined JIT */ + + #endif /* AMX_INIT */ + + #if defined AMX_CLEANUP + int AMXAPI amx_Cleanup(AMX *amx) + { +- #if (defined _Windows || defined LINUX || defined __FreeBSD__ || defined __OpenBSD__) && !defined AMX_NODYNALOAD ++ #if (defined _Windows || defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__) && !defined AMX_NODYNALOAD + #if defined _Windows + typedef int (FAR WINAPI *AMX_ENTRY)(AMX FAR *amx); +- #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ ++ #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__ + typedef int (*AMX_ENTRY)(AMX *amx); + #endif + AMX_HEADER *hdr; + int numlibraries,i; + AMX_FUNCSTUB *lib; + AMX_ENTRY libcleanup; + #endif + + /* unload all extension modules */ +- #if (defined _Windows || defined LINUX || defined __FreeBSD__ || defined __OpenBSD__) && !defined AMX_NODYNALOAD ++ #if (defined _Windows || defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__) && !defined AMX_NODYNALOAD + hdr=(AMX_HEADER *)amx->base; + assert(hdr->magic==AMX_MAGIC); + numlibraries=NUMENTRIES(hdr,libraries,pubvars); + for (i=0; iaddress!=0) { + char funcname[sNAMEMAX+12]; /* +1 for '\0', +4 for 'amx_', +7 for 'Cleanup' */ + strcpy(funcname,"amx_"); + strcat(funcname,GETENTRYNAME(hdr,lib)); + strcat(funcname,"Cleanup"); + #if defined _Windows + libcleanup=(AMX_ENTRY)GetProcAddress((HINSTANCE)lib->address,funcname); +- #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ ++ #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__ + libcleanup=(AMX_ENTRY)dlsym((void*)lib->address,funcname); + #endif + if (libcleanup!=NULL) + libcleanup(amx); + #if defined _Windows + FreeLibrary((HINSTANCE)lib->address); +- #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ ++ #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__ + dlclose((void*)lib->address); + #endif + } /* if */ + } /* for */ + #else + (void)amx; + #endif + return AMX_ERR_NONE; +@@ -1661,17 +1661,17 @@ int AMXAPI amx_PushString(AMX *amx, cell + #define CHKSTACK() if (stk>amx->stp) return AMX_ERR_STACKLOW + #define CHKHEAP() if (heahlw) return AMX_ERR_HEAPLOW + + #if defined __GNUC__ && !(defined ASM32 || defined JIT) + /* GNU C version uses the "labels as values" extension to create + * fast "indirect threaded" interpreter. + */ + +-#define NEXT(cip) goto **cip++ ++#define NEXT(cip) goto *(const void *)*cip++ + + int AMXAPI amx_Exec(AMX *amx, cell *retval, int index) + { + static const void * const amx_opcodelist[] = { + &&op_none, &&op_load_pri, &&op_load_alt, &&op_load_s_pri, + &&op_load_s_alt,&&op_lref_pri, &&op_lref_alt, &&op_lref_s_pri, + &&op_lref_s_alt,&&op_load_i, &&op_lodb_i, &&op_const_pri, + &&op_const_alt, &&op_addr_pri, &&op_addr_alt, &&op_stor_pri, +@@ -1841,24 +1841,24 @@ static const void * const amx_opcodelist + NEXT(cip); + op_lref_s_alt: + GETPARAM(offs); + offs= * (cell *)(data+(int)frm+(int)offs); + alt= * (cell *)(data+(int)offs); + NEXT(cip); + op_load_i: + /* verify address */ +- if (pri>=hea && pri=(ucell)amx->stp) ++ if ((pri>=hea && pri=(ucell)amx->stp) + ABORT(amx,AMX_ERR_MEMACCESS); + pri= * (cell *)(data+(int)pri); + NEXT(cip); + op_lodb_i: + GETPARAM(offs); + /* verify address */ +- if (pri>=hea && pri=(ucell)amx->stp) ++ if ((pri>=hea && pri=(ucell)amx->stp) + ABORT(amx,AMX_ERR_MEMACCESS); + switch (offs) { + case 1: + pri= * (data+(int)pri); + break; + case 2: + pri= * (uint16_t *)(data+(int)pri); + break; +@@ -1914,49 +1914,49 @@ static const void * const amx_opcodelist + NEXT(cip); + op_sref_s_alt: + GETPARAM(offs); + offs= * (cell *)(data+(int)frm+(int)offs); + *(cell *)(data+(int)offs)=alt; + NEXT(cip); + op_stor_i: + /* verify address */ +- if (alt>=hea && alt=(ucell)amx->stp) ++ if ((alt>=hea && alt=(ucell)amx->stp) + ABORT(amx,AMX_ERR_MEMACCESS); + *(cell *)(data+(int)alt)=pri; + NEXT(cip); + op_strb_i: + GETPARAM(offs); + /* verify address */ +- if (alt>=hea && alt=(ucell)amx->stp) ++ if ((alt>=hea && alt=(ucell)amx->stp) + ABORT(amx,AMX_ERR_MEMACCESS); + switch (offs) { + case 1: + *(data+(int)alt)=(unsigned char)pri; + break; + case 2: + *(uint16_t *)(data+(int)alt)=(uint16_t)pri; + break; + case 4: + *(uint32_t *)(data+(int)alt)=(uint32_t)pri; + break; + } /* switch */ + NEXT(cip); + op_lidx: + offs=pri*sizeof(cell)+alt; + /* verify address */ +- if (offs>=hea && offs=(ucell)amx->stp) ++ if ((offs>=hea && offs=(ucell)amx->stp) + ABORT(amx,AMX_ERR_MEMACCESS); + pri= * (cell *)(data+(int)offs); + NEXT(cip); + op_lidx_b: + GETPARAM(offs); + offs=(pri << (int)offs)+alt; + /* verify address */ +- if (offs>=hea && offs=(ucell)amx->stp) ++ if ((offs>=hea && offs=(ucell)amx->stp) + ABORT(amx,AMX_ERR_MEMACCESS); + pri= * (cell *)(data+(int)offs); + NEXT(cip); + op_idxaddr: + pri=pri*sizeof(cell)+alt; + NEXT(cip); + op_idxaddr_b: + GETPARAM(offs); +@@ -2383,47 +2383,47 @@ static const void * const amx_opcodelist + op_dec_i: + *(cell *)(data+(int)pri) -= 1; + NEXT(cip); + op_movs: + GETPARAM(offs); + /* verify top & bottom memory addresses, for both source and destination + * addresses + */ +- if (pri>=hea && pri=(ucell)amx->stp) ++ if ((pri>=hea && pri=(ucell)amx->stp) + ABORT(amx,AMX_ERR_MEMACCESS); +- if ((pri+offs)>hea && (pri+offs)(ucell)amx->stp) ++ if (((pri+offs)>hea && (pri+offs)(ucell)amx->stp) + ABORT(amx,AMX_ERR_MEMACCESS); +- if (alt>=hea && alt=(ucell)amx->stp) ++ if ((alt>=hea && alt=(ucell)amx->stp) + ABORT(amx,AMX_ERR_MEMACCESS); +- if ((alt+offs)>hea && (alt+offs)(ucell)amx->stp) ++ if (((alt+offs)>hea && (alt+offs)(ucell)amx->stp) + ABORT(amx,AMX_ERR_MEMACCESS); + memcpy(data+(int)alt, data+(int)pri, (int)offs); + NEXT(cip); + op_cmps: + GETPARAM(offs); + /* verify top & bottom memory addresses, for both source and destination + * addresses + */ +- if (pri>=hea && pri=(ucell)amx->stp) ++ if ((pri>=hea && pri=(ucell)amx->stp) + ABORT(amx,AMX_ERR_MEMACCESS); +- if ((pri+offs)>hea && (pri+offs)(ucell)amx->stp) ++ if (((pri+offs)>hea && (pri+offs)(ucell)amx->stp) + ABORT(amx,AMX_ERR_MEMACCESS); +- if (alt>=hea && alt=(ucell)amx->stp) ++ if ((alt>=hea && alt=(ucell)amx->stp) + ABORT(amx,AMX_ERR_MEMACCESS); +- if ((alt+offs)>hea && (alt+offs)(ucell)amx->stp) ++ if (((alt+offs)>hea && (alt+offs)(ucell)amx->stp) + ABORT(amx,AMX_ERR_MEMACCESS); + pri=memcmp(data+(int)alt, data+(int)pri, (int)offs); + NEXT(cip); + op_fill: + GETPARAM(offs); + /* verify top & bottom memory addresses */ +- if (alt>=hea && alt=(ucell)amx->stp) ++ if ((alt>=hea && alt=(ucell)amx->stp) + ABORT(amx,AMX_ERR_MEMACCESS); +- if ((alt+offs)>hea && (alt+offs)(ucell)amx->stp) ++ if (((alt+offs)>hea && (alt+offs)(ucell)amx->stp) + ABORT(amx,AMX_ERR_MEMACCESS); + for (i=(int)alt; offs>=(int)sizeof(cell); i+=sizeof(cell), offs-=sizeof(cell)) + *(cell *)(data+i) = pri; + NEXT(cip); + op_halt: + GETPARAM(offs); + if (retval!=NULL) + *retval=pri; +@@ -3587,17 +3587,17 @@ int AMXAPI amx_GetAddr(AMX *amx,cell amx + + assert(amx!=NULL); + hdr=(AMX_HEADER *)amx->base; + assert(hdr!=NULL); + assert(hdr->magic==AMX_MAGIC); + data=(amx->data!=NULL) ? amx->data : amx->base+(int)hdr->dat; + + assert(phys_addr!=NULL); +- if (amx_addr>=amx->hea && amx_addrstk || amx_addr<0 || amx_addr>=amx->stp) { ++ if ((amx_addr>=amx->hea && amx_addrstk) || amx_addr<0 || amx_addr>=amx->stp) { + *phys_addr=NULL; + return AMX_ERR_MEMACCESS; + } /* if */ + + *phys_addr=(cell *)(data + (int)amx_addr); + return AMX_ERR_NONE; + } + #endif /* AMX_GETADDR */ +diff --git a/compiler/amxxpc/amx.h b/compiler/amxxpc/amx.h +--- a/compiler/amxxpc/amx.h ++++ b/compiler/amxxpc/amx.h +@@ -19,27 +19,27 @@ + * 3. This notice may not be removed or altered from any source distribution. + * + * Version: $Id: amx.h 3736 2008-08-16 20:13:12Z damagedsoul $ + */ + + #if defined FREEBSD && !defined __FreeBSD__ + #define __FreeBSD__ + #endif +-#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ ++#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__ + #include + #endif + + #ifndef AMX_H_INCLUDED + #define AMX_H_INCLUDED + + #if defined HAVE_STDINT_H + #include + #else +- #if defined __LCC__ || defined __DMC__ || defined LINUX ++ #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__ + #if defined HAVE_INTTYPES_H + #include + #else + #include + #endif + #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L + /* The ISO C99 defines the int16_t and int_32t types. If the compiler got + * here, these types are probably undefined. +@@ -183,17 +183,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t + + #if defined __GNUC__ + #define PACKED __attribute__((packed)) + #else + #define PACKED + #endif + + #if !defined AMX_NO_ALIGN +- #if defined LINUX || defined __FreeBSD__ ++ #if defined LINUX || defined __FreeBSD__ || defined __APPLE__ + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #elif defined MACOS && defined __MWERKS__ + #pragma options align=mac68k + #else + #pragma pack(push) + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #if defined __TURBOC__ + #pragma option -a- /* "pack" pragma for older Borland compilers */ +@@ -411,17 +411,17 @@ int AMXAPI amx_UTF8Put(char *string, cha + #else + #error Unsupported cell size + #endif + + #define amx_RegisterFunc(amx, name, func) \ + amx_Register((amx), amx_NativeInfo((name),(func)), 1); + + #if !defined AMX_NO_ALIGN +- #if defined LINUX || defined __FreeBSD__ ++ #if defined LINUX || defined __FreeBSD__ || defined __APPLE__ + #pragma pack() /* reset default packing */ + #elif defined MACOS && defined __MWERKS__ + #pragma options align=reset + #else + #pragma pack(pop) /* reset previous packing */ + #endif + #endif + +diff --git a/compiler/amxxpc/amxdbg.h b/compiler/amxxpc/amxdbg.h +--- a/compiler/amxxpc/amxdbg.h ++++ b/compiler/amxxpc/amxdbg.h +@@ -44,17 +44,17 @@ extern "C" { + + #if defined __GNUC__ + #define PACKED __attribute__((packed)) + #else + #define PACKED + #endif + + #if !defined AMX_NO_ALIGN +- #if defined LINUX || defined __FreeBSD__ ++ #if defined LINUX || defined __FreeBSD__ || defined __APPLE__ + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #elif defined MACOS && defined __MWERKS__ + #pragma options align=mac68k + #else + #pragma pack(push) + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #if defined __TURBOC__ + #pragma option -a- /* "pack" pragma for older Borland compilers */ +@@ -151,17 +151,17 @@ int AMXAPI dbg_GetLineAddress(AMX_DBG *a + int AMXAPI dbg_GetAutomatonName(AMX_DBG *amxdbg, int automaton, const char **name); + int AMXAPI dbg_GetStateName(AMX_DBG *amxdbg, int state, const char **name); + int AMXAPI dbg_GetTagName(AMX_DBG *amxdbg, int tag, const char **name); + int AMXAPI dbg_GetVariable(AMX_DBG *amxdbg, const char *symname, ucell scopeaddr, const AMX_DBG_SYMBOL **sym); + int AMXAPI dbg_GetArrayDim(AMX_DBG *amxdbg, const AMX_DBG_SYMBOL *sym, const AMX_DBG_SYMDIM **symdim); + + + #if !defined AMX_NO_ALIGN +- #if defined LINUX || defined __FreeBSD__ ++ #if defined LINUX || defined __FreeBSD__ || defined __APPLE__ + #pragma pack() /* reset default packing */ + #elif defined MACOS && defined __MWERKS__ + #pragma options align=reset + #else + #pragma pack(pop) /* reset previous packing */ + #endif + #endif + +diff --git a/compiler/amxxpc/amxxpc.cpp b/compiler/amxxpc/amxxpc.cpp +--- a/compiler/amxxpc/amxxpc.cpp ++++ b/compiler/amxxpc/amxxpc.cpp +@@ -1,10 +1,10 @@ + #include +-#ifdef __linux__ ++#if defined(__linux__) | defined (__APPLE__) + #include + #else + #include + #include + #endif + #include + #include "zlib.h" + #include "amx.h" +@@ -24,57 +24,58 @@ static PRINTF pc_printf = NULL; + void ReadFileIntoPl(abl *pl, FILE *fp); + bool CompressPl(abl *pl); + void Pl2Bh(abl *pl, BinPlugin *bh); + void WriteBh(BinaryWriter *bw, BinPlugin *bh); + + int main(int argc, char **argv) + { + struct abl pl32; +- struct abl pl64; + + #ifdef _DEBUG + printf("debug clamp\n"); + getchar(); + #endif + +-#ifdef __linux__ ++#if defined(__linux__) + HINSTANCE lib = NULL; + if (FileExists("./amxxpc32.so")) + lib = dlmount("./amxxpc32.so"); + else + lib = dlmount("amxxpc32.so"); ++#elif defined(__APPLE__) ++ HINSTANCE lib = dlmount("amxxpc32.dylib"); + #else + HINSTANCE lib = dlmount("amxxpc32.dll"); + #endif + if (!lib) + { +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + printf("compiler failed to instantiate: %s\n", dlerror()); + #else + printf("compiler failed to instantiate: %d\n", GetLastError()); + #endif + exit(0); + } + + COMPILER sc32 = (COMPILER)dlsym(lib, "Compile32"); + pc_printf = (PRINTF)dlsym(lib, "pc_printf"); + + if (!sc32 || !pc_printf) + { +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + printf("compiler failed to link: %p.\n",sc32); + #else + printf("compiler failed to link: %d.\n", GetLastError()); + #endif + exit(0); + } + + pc_printf("Welcome to the AMX Mod X %s Compiler.\n", VERSION_STRING); +- pc_printf("Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team\n\n"); ++ pc_printf("Copyright (c) 1997-2013 ITB CompuPhase, AMX Mod X Team\n\n"); + + if (argc < 2) + { + pc_printf("Usage: [options]\n"); + pc_printf("Use -? or --help to see full options\n\n"); + getchar(); + exit(0); + } +@@ -238,17 +239,17 @@ void ReadFileIntoPl(abl *pl, FILE *fp) + //we get the full name of the file here + //our job is to a] switch the .sma extension to .amx + // and to b] strip everything but the trailing name + char *swiext(const char *file, const char *ext, int isO) + { + int i = 0, pos = -1, j = 0; + int fileLen = strlen(file); + int extLen = strlen(ext); +- int max = 0, odirFlag = -1; ++ int odirFlag = -1; + + for (i=fileLen-1; i>=0; i--) + { + if (file[i] == '.' && pos == -1) + { + pos = i+1; + } + if ((file[i] == '/' || file[i] == '\\') && !isO) +@@ -334,17 +335,17 @@ void show_help() + printf("\t-H window handle to send a notification message on finish\n"); + printf("\t-i path for include files\n"); + printf("\t-l create list file (preprocess only)\n"); + printf("\t-o set base name of output file\n"); + printf("\t-p set name of \"prefix\" file\n"); + printf("\t-r[name] write cross reference report to console or to specified file\n"); + } + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + bool FileExists(const char *file) + { + FILE *fp = fopen(file, "rb"); + if (!fp) + return false; + fclose(fp); + return true; + } +diff --git a/compiler/amxxpc/amxxpc.h b/compiler/amxxpc/amxxpc.h +--- a/compiler/amxxpc/amxxpc.h ++++ b/compiler/amxxpc/amxxpc.h +@@ -1,24 +1,24 @@ + #ifndef _AMXXSC_INCLUDE_H + #define _AMXXSC_INCLUDE_H + + #define VERSION_STRING "1.8.1-300" + #define MAGIC_HEADER2 0x414D5858 + #define MAGIC_VERSION 0x0300 + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + # include + #else + # include + #endif + + #include + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + # define dlmount(x) dlopen(x, RTLD_NOW|RTLD_GLOBAL) + typedef void* HINSTANCE; + #else + # define dlsym(x, s) GetProcAddress(x, s) + # define dlmount(x) LoadLibrary(x) + # define dlclose(x) FreeLibrary(x) + #endif + +@@ -60,13 +60,13 @@ struct BinPlugin + { + int8_t cellsize; //cell size + int32_t imagesize; //uncompressed image size + int32_t disksize; //compressed image size + int32_t memsize; //memory image size + int32_t offs; //file offset + }; + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + bool FileExists(const char *file); + #endif + + #endif //_AMXXSC_INCLUDE_H +diff --git a/compiler/amxxpc/libz-darwin.a b/compiler/amxxpc/libz-darwin.a +new file mode 100644 +index 0000000000000000000000000000000000000000..03964e8e745100720d199fbdcfabe399f3aafdaa +GIT binary patch +literal 87176 +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 +zT*tA;11$Q-Y| +znW$HmR)6HK?3&3P6lBXOxjm}!N;T<pXs;CfXNoIzUPY4+@6H! +z(9K>CmC|#ylKqPHS4l7U$AmV9#Zt)Jq|UrMDtWoXmFPfqxiX(?iM8$zl{%_i +z;_p^!jf^k4c=c3y-k=#*mPRUGonYj2BlR5bdKNSoDOYapXTD64+Fx>sZ^(W0_JXkF +zkjm(%bkV?PA^jCRUqu;t?V7n_rQ#{a6=4d6O0|b1ay!SIr^sJQkPSE6iL{g)WyCE1 +zKpobVBje}n;PIuv*L%Y%ecs?VGX4Rp)yleFj4MSQ!=AA2&wcJ2SbeRdqd9YnX=du6 +zM_Vqs)gOKQIAUk<;oO`GgM}ZeZCZWPi+vq3PCS=Mo;6SZvgMO;iWOFB@)thOmC|<$ +zqnq4ncB{6p_C3|SC4du}>1VO|ihIEjkxxcaN#H2`m&+IK7BcTkaTU_94Wx~nI9l31 +z)9Cu`u?jaX?{K_2j=tiG(@9Br4yUjv8B3@fKlFUnvWq!h2S$JJY&v*!g+PAiO4?}| +zxr4Lxl^UacWrGJeP^34`y}4UCEbZm_ahKK_sHHFuY$@5HnEB{+YV)&oBdVV&l$Dfj +zn*Fk@wf)NTpNx2A80vL +z+1>Q5)R++Fb0uxAdoE3Fx$~}Zf!b3u6|NrM!n~zcE$t|7rorugiU~(;@J0{)Nw*g1 +zjHBP?d6~Bf!#ACDT%5PZ#D)=9nLj5zr#P;@xwD|M?G@7|`K)!s`Q$A+qJ%H$@-oHAPjoyf5E=^3Qo^=f*?} +zv$6O61O2`Stv>J1F>H3!Rv#}XtFY35-T$M$MfGJ_=R2$Hg5K$R`?r1hsGXjY!#N_@ +z&PFFE$!`0akvQnOI7%tB>hvgs=F8J1p&vssE$df=tKBx4u3fc6+9tHcEW)E9M#m=S +z4%_Z2HBM!hak`RNRIhO&r_$i2;_V~@tG4tJTTkwhf4E0HK#p?X$&yoUj(Kzj+*?#5 +zv~y0suEI+?`goQ&cCXT&?F-_|tNNY3pI6dZ)3mdo^OIA#NAS?PQ2(lAJLAMCo25(o +zD-9g1p@KXKGSEC=qA}y7|99^?$GUZ+yobO%hwii8`kyLQMQ$J3WF1vmI8oP{3hTbPn&5IWq$)AoN +zdABoJF1Fx2%f`9cRf*ST@nBZv%FRkSeAE7pA88sUZ?l7V*&9rR72IkQWekZkS+y+Pad~{b(6q9W=QzwpN5wTlpLtM6ZOn5vWoCa${Ix|KQPMV#^H}ks +z@`gYtG$uGN<{`p32V+8M5b3iP@?CRh)y`&DzoLLjCWZwG1i^RC8{hplwl8 +zqhIBdBzt?kr(M0>Nbir2RG_;~I2`oawV +z(;L1!UfwrTF7fhugQznXHQD1^Rb;13vd|tDBIL+ktqHRHROD}~FR};|UUv4JU*1`O +z)YX*SPrlzFjw*jKxBs3C3L4^+{Gg;ms7ZR1g|mi~EYDy_?kp8fw35=;+3_~MQm5@A +zvN}WUBMUsNhTk@bbZOIwKXg**%CkKx|EN*yUORGZzU}kyD6d!)`f!j<&78#%oeOsB +zl&>vg-}e|0C)Qb*zGw3G`t;#Nl}R#9A0u4O<#=-gwp;QhCM^=w>-V2_T2@YDg`Fm2 +zocFALwV@~X9JkEa>Z7*(*ck1&8!s{nJ{%SoHF{Ki&(dhFtGrQ@q5Q4rq~a`5+~|nQ +z+h<+VEDCB@DeyD0sGA)o{Jt#N-}_mcW5n&La*N)tHn9A1>AYN8OJe`SdiQ6=1%KCs +zkL@T^SL9Fw%A%x}W?ImmosyGn%qft$yiQDy9%v(-W;;M>t5GrXIC`&QO|w1It7C}V +zqMa2Cd7T9L8C)lYprfPN+`F|yhY61i*Ba_J?5x5>wFB<&hU8SAQT>$cH#q;pl>U)P8!~Ui)jF+rPeVm2cH?39jGsm{ESLxhZeP#Uq +z{7)0k9ho{YOT0hm%bO*u&MzGnvQO_>FniQa;W!)H)xoWU_~r*53D!JABWzOUtslrx +z3?Jc9xb7H#L+H+7v)9~9qKAFIcW3Rz2^qW?vxt>dod$so+d2byo09#PH3?VH7IKzP +zG5F}mSbxD|mdZ*`pEKj!ZL=HP%F0i8zq;Y&bzN$tkJ#^puX;hb<)FhVbLJ0UG%r-J +zeeO5UDw_g1_WT{Gj#kH?$6Lqm&$YPFBE$VW-`G4`bEBErqz5J;OAur2x;e9lZpKU( +zEN`{*rRmwv%n&%pJx*P`Ijen9`ajbazEobf;88@TZN1@3$LdAu%Qn69S$Zkv*pkWH +z8=a-TYB@QY2fD1Bc+Pc$+LW5qRbO7bFTC`!@_5KArz_Lz{42ZOO!7^8Ev*<MDK>4^{l=ETqjHs4=4i>GuOyt^*jw|@oxm*0@fyCysoAa7VhpE>q +zl+bTa3}4NBn(=8>6_$9Vx@5$s=db5YeOAHrFK_la{Wztfxh(Rs&LjFUk0QN?NyRII +z>Pnr5XqK?LTyBrqbuc$V`^lX-#;SSu7dzy9oxc0lk&UI=|Hi@Nj77A(B^&E54%<-tZZsm!MjE*o7!u6Q7GF4=oy7nhGL +zPj|Icxi0g0Q5xsq_G?$;sxm|`*f*ZIINp3WIX)APe{bK6G%R24pZ6D%`#bFQ*gC1D +zYU(pr|54Wr$`3V^YPs06)QgI39DZ$W_d12bQrv#Q}=ki +zaw4m9Rr}f5`B`hL&z;QkHDv?~Mh8B85VZc>ZWYyjI$u+d%}OXzjTuv4IAr$LkRxZ+ +z?_9jg4P(r_FezzS{ub3_UnBV>oZ()f{T +z*0+`OixQ`dOVtqHR^5}Bv|fA6VD9(p>(otXJGQp5zSLWunz2Orz>-;~G*Y$=<&=Io +zjIJnLt&E(yceX}$eP)!~Et!&_B$w1d?7F3Cr`x7it5`+9$tixZA;M2-V!>K}OW~~} +zh+;wB@=GCFd31NHq_oOU@quRBB&FXX7WlkZoBCw2^_Xi)V~wR#?lfOKb~KjB9&+(% +z&Fm^iww+mh%6i!K!qyW_)jPV- +zv4(P5%+MU(Fv4Vw{k{w3FR*(To%D=SmcDZ-err`#l8@CG-^kwdO?sl%oI!Kvf4cB-^~gzk`X$7z$s89yv~sWdyt{2{CY-m-%A$TR +zIqqY!g6*>BOQ@l?&E7qU&L3JeUP}-5w|0vt|Fosp<4t2qmFvPSaye5QlEW%3D9bZO +zWE8#SRL5>z?5XSC@pvRXVa5I%CvM1AWK(bI2V6b3NRFYhe}3>#iPpp8{Wh&l<=5mP +z4=PzZPGz3ew&*w5Kx6gs4FaD#6)b9)Ti5x*-~)F_&g9s!!;@%6YSJV9n%*6ZB7?nG@H~yl$41dZZ|Q_4XI9 +z27Go}_I+u?ocNjcts`VM^32?4mi_Y(yHj|2YJ`Ew`p3?rZv|XISFd~g{$6h2-Z{DhEDR(H>PCHL|B%Bwjf=Rn?#7!m9ocO+hi)I5%JN!qQT@ZmYpX1yGEJ(6JShub`MkEVtt{DA +zR2rQ(fET~m%l}l?caM&+IPben%2X#CPZ?fiCo;oR%uxJf6ri4O<;QY)H`tE&cH;yA?X=w?r(y@#?%*xA`6dE)q2Cj=) +zvfQd)w)@aCDLy(gRzEY@Mt!Hqxlg_d)1|AR3;^Pc;e04yuEdvPE>z?+cq}O-6Pstx8j2bWj;@4_d7M}@wFQn +zZP}lYTnF!qm3R85HY~t0)82l&7Q4>l`Os>WCpvRBm#+Kxwam)f`m+0yY00(^k7iK# +zW$C&v=T;v#nNhL3{8(}B%F@SeUrqfQR!k14{C3Va*5Zj<$sqepeB}FRbC6j-tWdGYoT*E^p!VC1Lqg6tl4HUid +zROr9U%P2~5<%*eMD;!VNDitd1l#?8ir<@-XE}L+v1=(p9!#G+pjQU}@pG;2I7Y_&L +z4c@*5gL(R^0{ms(bd{;CMoY)NU_A+Q^nE_}e#f=yz%7~09fMLcP2DbTdGz@4(fY&1 +zJ0lD#a&m2|KP)Ux_ia6q;ov(fS?0OrW&L>-isPPKkXN(Pmzw+8gdXNr?bdwjly9{? +zCtypng?&0c!+#M{@6GB4jy7(4E& +z;|`}QE9g1pl9S0rg`Dw~3D~l#^Ft4Ks?{4iRu;^;xz%AN8D*io|O!0ShuitC;=rz$+H9td$B%10GeG$CeDR98m5&{t8CNU#Osz0#Ih}ES +zQB``vZSLj5^}5NDh8s6NuZiCc7Kr>^GJqbIHx=}SK-m)U7o<)Ece>3j2vPuPT9 +z_ql1#%hhPwf#Y^vRmhxri@D{nqja^J4y{=X$Nyk8j>#l_kB#GW7TxmV-KK{N+sqd` +zp4?<(vL`RUGLBK4lRl@jxjybyTV=u7WE*Dk`3UO-kdgf`Ndux5oiTaO4Z*EnIG@snQ?CtD){vR`o#Ku7X`(sxJefKlu +z_@7tTc5GIVl^frmZLqT1LjU6(XW7f|g6vkc`Frc8Yk&N5gp-qkvbPJi$tF!6l$h~V +zDN1~O)ak0w>6e=gLOzB{R@7T&n%q_kUs9z#y(QE}y1^sDEXPJC=BXX~&MuWWs#q!A +z_=HBi=%ztsjzQ9G#S!UkR`PpJZXF=r^U&!&Mb5mOV;RutfeC9C-MgOdYMVvtVbiN4b-KXx&g_yX2~+Hc^QKmHID1R5S)_8U#I= +zp~TlMQ?I%eh;0>ST^nl5c0IMMbSLi5s%q +zF@2e-us+_AS6Qi|V>67YAK^MiP3PcD3j6uBcuM~y5oZy0-ecR2NW4ck>eYFykM%UgxpZ2{fvE%W_`_l^RzpveJ+CO98WykNA6Xj-} +zi85F}o~?OtimXcOFl~!TvK(QEWl+skTmPa@VHP5NPv^_Rg3j{!B{g+O$Nl8{FUq6D +z7xwg@nS*bG|G8L@b6xz28n`|L6uaom8( +zd(syUPp{uDlT=yc67jK#>z#9sXSqE)kO0+sgJ +zbrwd;z6-;idHW~dj&N*yzesNC7fXZHX>#W;9qyml5;yC<-cHT$!EpRjb5=~1iYg1B +zS!6Dil{@uJrXZ)0E?#$8+Gb$1(g52uq}XVy;@;@TO#9{5j_EUAh_r)3$^S3ahm?u(o(%xOIHF(cK+erYW>vn`QQX`pivH3e&TuEu2AH;H~d6 +zXvx%r;ek`0+|r+{dYZ~{xEZCp`_Yw2rT%aA`ca>2`oG>b>h#u=W12Z#qji?u)$p*k +z8ksa^t$N+Qks~xes%WpdI(FRks^MDS+$_ek +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 +zQO0)l47*O~u +z(RyPFUtYA{jKZgbj?~KI()YvuhW(iddJ8jFMJ-g($(r>GVTI-`qTKQL`9$=d=w%l* +z2iSaEgOxA1%W$UO$M2(VJLA;r|G0v@}uznMIhc@LTeao&b2B1+GcgzJq3RvH%x|S+*#biOceL^1#QZE9T5V*_!pMrJ>dW +z(L^Ugc`RdNrsJtusOfaf)C`+v<&$S-2^*i1deScv43!E8;(WEo`sm{x;#@JZdFX32!LDdJkeEB^YTpB&~V^JfaL_y64$Mk +z?soOMr(;F*uQda9>Pt8@ZQ1Yue>py6nG_`I0VIZj&ZQwy*^nxsq7Mb~qAKmx&F%t99oEe1SOO}6|Vux6-*E@oYyXF`}LlktWXtL4$~e6#`! +zXEx4_mVmHeI$DTv&A=f0jr2BwGV-{D1h|9*V!E4-amS+_TDL$+)M{)XYM+HIrla<` +zs0AIJi9W1XgUrq6VHSK*yA-l9mGbkwG}OB2CKQ=g9yZ??wXVhHPe!d@VDk-7>t~pY +z88+VzwXVSCFF~!#u*H_5tS;32J|-yg`H?@o2{V6&q?qZ_Fzd3?mz*38`wBSb7FeQ{ +zJ{aBB2Q~iyY}beu%(>PF3;*DQPB+EEn|#p8wrGI`SCEOB-%AyFY}1e!d(c^6M9=4;^PSL5u<0NvE(Z&u<1L7ex4=6d%tV-V77D&{QA;o{nF7hPPlA +z2A~n>I!%U{Y0%wEFWMy%t%x9)xC5}N72$+gm|=^pe!5qfx^6)i=jpicreG-_^s5i* +zw4iIQpaHWm1``s{&p*Y7w@3j=55#8E;j9=2JJp46*p67VM@t0q97zNG@dS{cS|H_O +zpw$la5}i%QXplqP27p0p(he2A9y4JBBMPJ{(7;S|@dU(NfELsb14$Z3_vTmBP8AIK +zCEe#QKt7eIi7wTU8p;5ipw1Oyx)Exgg<9~jEwF#YbOx?)X|O*QgQWiCMF|VLkE_<3D`@_Vmh`3&UuE} +zAud=1Un+uU*b$=%ZwQd=HMQo~LE3e}Y(aX7*plQU1*zD4mK<|)LGz}z_E5_`B4#vSSwF1!5$PCDJ!{mTcd`rb`8q2Wyi1{%Ew+s(lj4NPeyW(*94!FjzMPTkWe_)HE4bOSV{ +zHuT62=(z!6IFpVxU7MIB)Ne+i3QuS!FrA5)37&F^%+ +z@B_{nu#*^9S!_u~ZIm$^#vM9!cpn_=gEKH2+}qp?mfIpj3bH%rB25%Jo+6;>W-*F% +zOGKe8%2f)Vc9qU}Aqr)K&}9Ze*MwmfW}_@#MMZ_mj3Uf|5lfc`<%1&Q=Fr6psHlT7 +zBr<8;MCsoVWqwDL{fW30b_rmtLyoU}kuJIkdyKkX4wz2lU{=-(8sx&ZJADri%%4kU +zi`K9xeC;@67%%%;RjBy!oJ^*jn+N^}>jJ?X1(A5FQZ5#woS7Z#x`=2B4$ +z{G#NoxnU5Du#iUDRQYM8AVeTP_<~ItuJ6B&rY}GRkNt7N(9q +zMp73j8V>eVA-S=Ffgtz=r0E7 +zH@weIHsf;x6bl=j4(7jRILWdwS7pOn2)82oDSryy-Av4e1-xJUz(&7fYt_+vfI;UL%$OBNH-O_LL>UVK +z5>WziTy(8ETxkW6gD +zMy;DfYuKRMRdJFsnhm7KRW{;+?%j&dD@|B`Q5dKicr&ZnWW9@Zf!j&ctE^dn=N(Zm +zh;U&;Uo`n0(Zg$%aqlNu@}r06v2a(DWLON+Q6retwJd6cvQ`8OGgSu8ttsqbQwC~^ +z_b^vE9Zs--AvBw>g*m8;gMsN&2Obf&nhl)IfjvWyO^betM9;*3-~zL5!sMV)(meQK?6M%P7P)1?UFobq)C6ODn#qkF;W% +z{!Uu1P5)6^<9eheXu|Zd)tbMP*Yy7)ucwVa%gYx`k(3|uk_CeD?Ge;?AgD{kxDsX2 +zAWz{fs~5sT2}7`@@$U?QPvgHE0yuPNz!nIBAI6BAuiJZ8iL>DRrE&cB7H=MD*G21< +zDSUUh9{j=b)3?8}{0qM+Z~ui~3s!U%U|L|@FqDC>XW{BYFbOlS6}8jFz;8*+MpEvI +znRm7FfnO(P_7`>1k;EJ%r9`Y;qE&2|y*4+hG4VCf +zI^fM@!7$N!K1Bdm%=kt~6Ic`yxsj+6;6Y;eE*f0iMX$oQ=0IUPM!~D>_#P{lKSK&= +zSjbegqdoylC6EA@J3@J)xU16mdLn9u6dX2g6uc~&5W%>-hN;vaG&tYb@POkE+#q#0 +zmew1@nIV#CbVT4h&CHN0Z~)&lfvwoikS0E82y2*ThDZtKf^WKj3%;cV7T{Y(U=F@z +z1!mxzAut8sa)Q}nAp->D1&ZQzh`cC=VOWiR3C^s3^*jZe)mZWE!PJIkH+$B6DE1K$i`35N;93hB~;xi~jk+tFV|P=*Mq` +z%Lbo3x(Ss64fj?^jLd;QP>A8Xld;NFBqaxTOZMO*q*Hw)Q8Dp!SZpl}#>&C8cwu|t +zhAGB%)8g`_xIC20BSkgWu(;6*voV0VF?|1%$N=h{3%8}I=w2c}UL#!|7P|{)0WT1b +zl-Te=2N;7w=NR5Yc0uielAi!?gF86ETkmV6K^4?ut)d^MYWk1ggQeCXGAB4>0FPV)YCh(`)4GSx|7JhfgvP&KzZaX(dJ&we +z{|%>KU;jI&NE+N%fQu9)ss?(<@Tp-#ITSCk6;JMtPS^C$Vglut?4k|>+TV~&>E3+Z +zO8vEcw<&+!zQwP9*FNLdf6+d*|I|LdG~PC`WtXUfDwHLkRzUOi0Jm#YBY3E*%3q1WK<5qb$OzR~S)?+7(n$H{`*h}*jNhu{+!v572d-jZD}Ma>tl +znw9-t2D4{Gm+(EYFg9?ZoiGPg&QpK~fUnfse&(9u;x!V^yz^U%^xAUMQdbJTSQq3ji#bbsz4zff8q_+?*eIJ +z18%)8A{Z%JzW@=i(fsUsCT8D4&4D2$u>5ZrOwFcNqWO(7Vlx?OYK175@w@##HYp?g +zSE%%;_!Dus<24orm$Kon@WE%B9}t#_?gykFR~LrH!q8Y4QimaR7*d5HRTyHy5cpzI +z!QUJPz--``EZqE}|MJjU;-HS+Ny8sgelYbRV47_|j|z})BAGKjr}x_~tT{s>eQfj>@;z#k_+6{tXs9t<=Z +zXT1COrKUcvhGi*M5yz_I^Q#^`+%?Ar3 +zX77j`7-7R22UdI*4EQXIMK%C`a9xTf^gOuU0-X}^Cg_i#n^YBG7`lPzCQUrNP9BDJ +z6`E%aH?Gp<=Ran&S(q!n&P~KgEG(p#t>NN}++MaO3?!lonbZ&#Rj8~b +z#22|OKP_?@7y>Lh?tL^<30`e@TG^Px_)PdJECp?5NjH-@KenTKamf0W!|%`j +zg2Reuf6rm`TEJ0*$H3J7iN3nvwtz$VDZT4<;xxZ;mhqMm;;q+ +z`)s^%)uD7Z^0bQQ2Qn%Re3JvI(ft`Owi(kD!YJL!3U+!2NMemvmsTmRjbG_ +ze>LbLq=xf<32Te20Y9a%*d{nm8RhP;AI%g<3HGhG*0z++wnm@z1 +zK=c(rbZ|lS)A<7dsDp=Dzd%y>R2pVoQTmeeLBswT+?KGlM5}$U$qqhXKE?#KBko|% +z^*)$2kR~$($QC34a&*|^tI(KzYH^Ft{i55#mYIq@|(Fq4)@iXDdv^riF#r$_@xfNKe7mjb}eVqNh6}=1(m{lih)<;zkhR5ZH*NYpT`9FERt{@TBl}UABQC*d_T!EJhyAeBxW+A|A992^gT8RC=q-N9sL;&)?^?#!+a#>8~n+}e%-@15l|c2h+&I4 +z@Ie=gFG8z7PUwXtLYbhQ*mYw5n7mf(N=5hMn~>S~1hOBO4ATfnxr>G8V>cf&;GDoj +z&~hNFt@spjhnPYhMt0zHh+KAqY-Bb*iGZ5SSl^*_2U@(L1kXxm{FqLJYjD-qY9TrW +zwaz6r*Qi{+*rE$e2cV-xcfQX-t+U`DG`}ylltQh`#Ku(Ayoggm$OFs|n0XOA>ciz3 +znLiWS;0kV8S_g);lyw>4Ri4vI>bKAsP832jQ~;)l$@9UqQ3s#*O&*a4)EhqvWL^if +zJOZu81oarep~i#xN4RGGY(x7B!A>yvi2Vm#@8A(5GZqz2Pv%*M=DA3;-8U#@C&IUd +zb|ss%D46wqt!%MbKPt2`KQyJN)kH?3tum(_`kWM|3~Z3`IXIKf5T=+(SLVI +zt@@rnos3#P!!4+k$#`rPk0U`pYTZICs!`_(%w#fjQ$r2V@LJ4d4Qk#bX6u4gHRjwB +z=QLar>--Xi*u!I;UtyufXm}BJ4eo(pOV=4iLa!%SD!UPQQnlhJCHQy(KO^@HGv=c} +zi{ax#G#u!)5)Di};!RXMK`vU|xVYQ?)Y}N=Ho#W`aT{Q)D38|A0o#x#)zFGVdP4&a +zr5kE+DAQ1hL)nI63UQjcw><~k(`j+euMF5!B>Fw{_`>VsoL?F^Q6)$;EFg~FZyKG0 +zL_dOIGkNMXGY%C#gULstb0En|S8AFSOA3kRffXCT=l}!C=tW@C0Fy?dT?kADU@}Pb +z5(1M2m@E>#kiZxKV<6F11SSVCIV9SGz~seCV6?nINo=MoFUn&Wfi-JIut>a4k2Ws6 +zMH~YKX=L6Mp@&&NLv4eM%xkcbmzLHd(!CfLKyG>LK^Xb|*M8U%f} +z20_;(>5`EIy=f#t-#C(>JCpReB>m|KqMm6Zi1-mClp$fGIstE~6X`f4K5!TTTZa1)F +ziS&a8_Vg2^-&3I+WB0->R7iQL5aq$f0+A^0Q6}gC$^?CcGC@ByfS?No5Ol8r1iiIC +z0R#IJ@!bAIygo_K>_p9QVI?BHjv@hFm_2e$ +zP@qs2^ucHM!6)~@)tH2wzAF4o|Ii2LD-it7lgHnkp=c;i@T(?I@Zl{-=!qc-Wf(+! +zl`IjTE=#nVO~U0eM7@{Dd&2NW3CuT1n#i|`-cx@UnBzVB;P!oRZXeu$PVzw~$}c4E +z8^@7w9j!;MF5v4Sg>r0sFZ?XP$M(W!Q;2+g0@9b0(20Z#NN7ev0}_rWp*jhbNys1} +zbVa}rW8bbk2A(ykR)rS9tgZjkqTW!(`ij+ +z5#}8n_@}q|{diZ+O7E4P@XdPU?c$!7#r^Spe}8zZVBh!9{r;7Ne|SG#uXow~{DQjQ +zy<_lycvE8Um+Afa?Rmex*zU(W?>qwoeEfU`!R}B}-B+Z2fP>@;-yat!?5T<1vj-<$ +zTgVFx@bw1Ou5{;nF7K6?2eSV6_qk2&e$9`%o4j9ukB7Ub|G(a=hL_5KLxtm(RLXBZ +zmSD2GPbFaYz3T3}z<+bEn#UsY!#v7hLLWn+{HJ@>F#ic)tPJ}9`8{r+j1Yb>RJ7lh +z(H~4C6F}ywAwTEq{l1=myAy3Zgm@1SlTGBa8v5(|e!A~OI}Ii7LB9YHUW@5{Ct9l4 +zAAC3~P5JMipYLESO~bD*+bhHCgz!YmhG}4R1LhO3idHp1qT$%-fllb52Ve$(l%tCwsEeFi}qy +zPFT1l91t_f2-uX_!O1pdeh?~i@!3#W=E94mISV0K&e0Qtg!bgJ`;)meVTp(3sH2vu +z2)3%Fr!}t4ohn>{9(EP1BBougg5|`t+x0>kZX%lAb`>ljroFC$xhRbY1vE8D1+a2H +zPR#YLinj#(W&?O&!X&PBfRd|XTr&FCQ2%7~n<`xu4^q#Yu8N)1v%^*4qn_=qioa3M +zHdn>-)U(r7VWXa{u8Q>0=-J|`xQ=?9u8INrs+`oN*TU+J?DyX-Zw`8U(1_c4DKmi> +znCC4Lm6Kh*M6hsW564=h_H +zW24x8ov`_4;PJ%Te~I0(!sf;CcxqEGm6ydpvH8Y1K!ZncpnyAyc&^F78prk=p5K*o`;`tGc$4Fd?GC*2_{c=I*Fhe+mF|7f +z2+1@;5^>WzsnEh4b{&(5qOXs`YeSci+i&<#$nC@1&)#*=z +zY!uy2$$iZ2ixNK?n@I{5OXd#uXG6q~1+h*;<}VcYUvNLwG4y`qzDlFSp0UMuP+8SC +zNnWxi=6Z@%Su}`~g>fvN +z?A%p2QY{s`hZlb$8Q;cpxZHeC?p&OpB;#Q~E=e+;1t&o=?gmFE8FwMZIARUwf)}jc +z>BT$9f@2>J3$|8L*dExId`v1>%)5p1<#_A3C|`nM;m8L#jFH}!k7tfIcL-J4FY!~2 +z?W>=b?5&Og+qg)o;KjUgczeQwTVl!NoMh_64N)@?Cs8VF2l{*r?VWGJ?tNa7+Z$Jh +zcbxO`A^8{i0-zlrWoRvZo!DE6vCWnJqRJmbJuj)Cnk*7$5xWIQt@H+|U@5&-wbVkg +z3sy;{HvJ)p3mw(>GNcWkB}leb6l`pBtx@@Jf(MDV=`^JF7ha*_41Fa(f*Sv5@EV^E +zJhuO@G>I4=6*#z3DuTF;_0|6#Jf$9(Uj1&0Gc<{o&!A{fzequxyM^lP+!a72aeqH) +za(h)!e(__qSf_^a`N-AsEy=zz_72SRuQgxO*`-b2$hYEAGUkq%sA(oKcpdx3nx4VG +ziJ{*-C)UN$F&dFBS`2uriym|75)7xL!nV~>etSs6@1PBRrmcgvwhr3NmP+#%^L2Pl +zWET?mzfkh#!*OlL_x^dHl1a8TunR_Q~U +z33TJVq>J?(eH7isC%JPxxeKBLeFxH}$(Z+olOUOQgM$}wwJzwraynQR?<6@Lp9W`f +zT(XM&(YS{xj>fK+OS_(_jrP5kPYcG|J1X*Pc%iDc84y=89d{!B-$0k!>9z?nyr$1qH79L2Rq?1>9WFz;b!gq%KC0Rh>>j$TB8SV_^ +z=7o;TI4tvKHh%0cu9tu&rZ%TrX;6UCxRYu-P}NJ;W&qLj`<-r9*`Hz4n?FZFKC+E? +zT0SLB-?6#Q`Nqw)R*g+$@0FWtMWRr3@c&#B%}{@vCOYTaH&Hb-&|sq!s_LMbK&u=D +zjh439Y`MK8l3sGuzlM%{PT#$#GXikGYUP)!u3h=rSFZeQta(=HX0Mbr(U5hkWNIo_ +zr615Y0_VD^jZRE}&K6*)$Vs2`k~~ar^G8#6dw>zco>21TzyR`D_g|UVE&SCuEJ&ny +zzsw!-Bv(Tko4sP28gEZ+z8`tTW?-hI@{M;OPv11q=81`?odgrbspdF=l>{s*>X7~A +z$qV& +zZ;}I-Z*0Pf;*?p(KgJV-niTxQB*z*WRZFtu`XL9AH+`x@?fX3>CU&RTra*z^5vs{> +zuwM?e5%2(-^pgCgJLrAfvtR7dv +z>@JT35;_Cx-4|sS!LJJX5iS7#`v_F35&S;_C?3jmR)`%*K@C&Z@l?B%HAR{?0T${b +zLKHO}ll3&=iahDj!u<(cB8OMgwOkAr%SCfTxF{};({MUY&Bb#nZYald0{0kl-P$<- +z30#u4gc}w!7W}}WYhjfiTgxTH028cz3?LQ4Z?dfvEi6v884zxR_b}yZ7XZMDH+CyG +zJZ38R*8og`a1)mplL&rb%e50BybD}NK +zgz(35{XYUQ8p1!3>whhP0m8@R`d +zmFpkl42SaXm+QX-0O}#OL9TzKDLjt_ZbpmWivUp1vHy_k|AzoT=h#=|`hOMx=n#8C +zuKyncK)GV8z{T_=fLRc}B-j6ZfKeg!UkY$9ygwq>|C0bWL--HiVt$(eav}V=T>nJ? +zP;arX%k}>p!1p11POkrz0CzxmAGnwvEcdhp5bnQ5|9409|F^jC{{K-#|9>%}|2IeU +z|983Y{(t@&{r^Bj|Njja-v50O{r|Oy{(mZ>|HJ$g*8h91(f|J%(f@zNh4=seiRk|? +zNA&-{NA&+cbK(8}U)SjWe~akn(-qW`}X(f?Z_`af{7Vg3K&HTwUdi2naOF1-KyBl`c(BKrTCi2naR7vBH-uF?NJ +z5&i$yTzLQgG@}2%8qxnxM)dz`F1-JDU8DaWjp+aHaN+&`i-`XJMnwPrFrxo|z=ik! +z0WKkm=SD^G{P3tm?z$*GAu%e78y&@KMnq+D*GKUg2~lb;If_>$MUCT9qWIKdQL)^Z +zC|)}l7LX-yMtCOPAF@D;xsCbO88yV%M +z@t3Vwy=eKe#i{ftFx9$t)sny?cK9a0VP|_KoOR{O)Tb7$SSvqBU0IxpM}Uh~Jh3FT +zWbIRruUuXdNB|E4m58Z$gc`_fnN^8jykymqMb_{rx80Wd)UuM2Whizl*ciehfR +zhO5MLH~77USMUx-gg0R0h40iVrfc2DbCsQ=gYVlQtQ!*ypM>y@A>ktswuF5DR|r2B +z65b2peIemLLHKk?__q*#EhLOO(6d6q+aY{YNO%i`hlPYUK=>!g!Eh;tL&~=vb$HA8 +zqRwKNcPcYN!g#Z>VAUPC&?$KtMixR?hO3r}FW2NDO*);IiXy%d#~~ +z7SoSQZii+F!SH9;;ON7Ulx|;HjF$qwo4)Wn)9wvD*GBBGd9FP%e%fpHq$ES+Y*gE@9&u+%$Y#gBNBG3)L6Jj|E#Cv3XH& +z+}PoN0ClW1m5jnogsNwGr@Q4-wY^iU)lMgc?S8dn@60CE38@e{$&T9PiA0Lce2{g3%x +zauPB$oGKYh?5(H4EGW&Qqkj#f#)@nq;hp +zP+wp-@y?bVUAhE)4>_qn?<(ab^WKQ_;tI_WXLL@ct;?6m%Qx)x-TF?xDg6>TPfnr~ +zUikNOwf)Yy0uSy0xT=aIEjVh|+`GOO8@?9ZYOz;UdfITv7Q-L)?ZS?6v0^SyqlkSf +zVdHC%r;j_ +zg1(QOoK(1rm8L>72GE~w>jF9et{4Y5rX}-s*W^+B5f;tfNcLC6IHPlOX4$%EWluuA +z#kDStmT!{mhxu-`sh&UTe*_TX@t(G=NirYzt*6_4JN*SvrFmB+>YD*7?xCrhSnA1q +zBP3l|&wmK0`31?i1GiJl^^Iy{BRPp%hBTw%Nul)3 +z#r=*7}dxlCg7KgHYYVUkH3?>Yxo) +z*`97YO`#nI8PeeXTuoJ>(fZM!=bK5dWY-eGH500@ofPO?x_@Ez`bHqeC$q*wkqbNZ +z7bMeh!$EzsRM;fCqey{9G95OY(jO|@PY?f#5+FCp+({msLNcd`^=p`h0U4*eF2@OV +zo7fLShCY;NVEdr14I`rI4lv0~hR*HbDDr^$N&F7gv0a^^ygCy)7~9IJqq)lQ%qRur +zsZK|6m6;*o90<=32_wzMDid5dGxOc-kiffpf_%j{vP1Gs?#t~;WB1+A{Vwg>g=quC0<9(a^ay!%L8iBLk$>L?-edYUd +zbMK~i>bWhz^seH=`5TQ4csCe%=m>V{8~p-0o>3i(P!7v}PMV4P-|Ib@bh8_8sZoci +z63UX*=A&hVXgo;CO7l=!dNSGFvP`CWD3ji8^JJ#7&=lrOL&sG{Zzr(>xseoDnU95iNreErSs)gApx*5zR@7mbaYb%^`XDo(%z_ZBU3NAMj8E +zA}LqUF`dHr?|t+>rzrtxh}Sqb7}5pDFFCx=nKVUkAon5_YWLCmoM)K$p=UZP#H>`u +z0b7FP>_sCMvr;|N+0D&o>CMdz{nWI@1ZldWUnlJ5W;5~ZV^(0S2Gl(LY>FqBQdrjK +zpMJ?ZoQjckLY<7lMAoq*qlYJWrc=VAY-_N1*D4>?B=mcwd{lkBJzero`mP_l;%xyO&cN( +zq?X>SEEmQb6P(R0Z9J@F)=%>f_2jT7l|!2pQ!f>&Q>3f|*;IDrmzWN-{0g;5q9;ZH +zZVyv?A`8%4qQj$N6JAp_9hTyNW<$hhQTh0N_*Nx$$Jr7*Ds0wL9DH1ZK4RNTOkP(7 +zy&h}Y>6*C;ud>cuj<;ef*!9>qT{9QpZPuA{iKzzlUCrntrft&9Da6!H%x9&U)9}Q< +zS$bAO>|3RW6Nq`2$GDqP*<4HdfbH;W@qVuqP0owmHwc^m3-vo0w|_LPN(g>l#}c-bw;R$^8TU+wX-IBqNx>;3+ZP_VMqD^N_!W!`Qv3Y +z$3nQ2qWOyvgQJ-WXaZU%7$QAZHObRp_Bn|vYr50a>3r%us_RN{8ZWqg$xhS7%do+b +z%A2HMqaFmCF)}s+VsmTw{aHXQ<_f4KgrU}J9V%2EBzam&DUzq7C|;FB&vna4A&Tk8 +zlv}Vl376_Mf&;e_A!%|R2kr}~p*4eU#QFY#il!OHsex*KJn3rm6ONJ-WPLJP30RZn +zi5?P~pST`X7rdWzMcw(Ni=6Pb;FXaJq#y8QYVE`$xsibyAfOFy{&)y&_D_z%W<_lLJFkEg(#zhCB&+t29=9){ +z>^!||-6%NlJ|~bdC&LpxloC+1>!M{M3g!Pb9I+B;k8UTO(y9!{B^XL5$0p$#$CnCt +z8O{m07bSbGpw{i)H)1c!wJ)KUVb1DTW$?DW`YvLx6k(y6l-;*E5%1>XA}!H){t;IVHZR$ERUj!p@9gKS=g +zZ@z{;@_m7$Wv67Kx`fNH>I_Bwe_G;$v^VMNTtO*1I!KVd!;*K2{iUX(C6 +zi9<%|O<3NeiMV|83RNn($XUef4XMR5l6e&Bd9aXl(+m@Uv-ok1OnUk(iTW(e54JA~5PFu(jnDv(dk;o^K0=J_$-LQa#5xy0@b +z84_9`A2KgPnw^R~6L~O+s+dS0xKyvQ-pmFA990J!4px0hhXZn+^vbP@9Pvcs6&x5! +zG`1LW-bXd2sTq~C!QRGMHHLG=ZpnW3QZ5X% +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 +z%fQ2_1Pb?l3DofR)4lM +zQ-|^Nrvf$&vGzTLdk(K`jOSy(x +zU#1rbY&t1Md`^qjNVm +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 +zB`nr*pzZW+$(xD!ErGMP2EWq2P +zLg*_x$)*+eQIZPJ--Y+(qe+*z=2n$$>7M6m2QH=`OTR?>*CjV^jkAb*U&W!Fv*kAX +zvc%rhbzY13K@EM92EM)2_dW16QeVm*RJ)me$@SowvR=G6^_*Z4r@g?rX7E-&TX?U! +zmGrw_!I^@b_nw5A%k|0x7C49^Al0wDg5=wj5=U?5SUlyMP*=&oz#ddlf(B>trhoP+ +z;bpf_<%UW^S)LADl=*K6YcGbA!pr-Gsxz+XYVlAsv3H=-z)o^9{nAuZr|`l~BtZ2x +zCnlbmV>o9Q3@5Gs6B2)_&1=6-sNPY7BPoB8G+4-vedza_nY_V(Ek*1f^4uNpW?&PJ +zYW``V`A>x$8?0K(Ksk*C-{27FPo|&a*cWmChHB({9}8)590PQP@>#exz8hCM4M3KP +zSR~8DAX%P|{bpnt#m38TNDoZ)|9N`2U6gh3Ziks;4_+bK_aHVJ7z;PFk4F|E8&z|V +zLt>wL-3_kduTfQHVW&`)oClKywCOk20&KJ%tH=ooiNQV_X3`3C)CnB3*c^49^jpaD%BVG6%1I(!IBu0DNu_k$3d|)>D-Sh8Nx!ry +zbmaQXLS9iuE>t2&=v&Fu?kd{|JS)*maJ`5^0pz^z4BfFxqJl_ho^Kr!-uZnu5Vu|> +zBdYnofoK#WdQe7nAMNn=HtBiV#7$n;3uw|;sD>Iki>msB>VvVTWCSF0r|Th}m^;L7 +z-MVbR#5IQ}^OB@_fQPDL6UAe85*nLf4>d!=u#n7W1Bj55V(q^Wl_+vlp_&(RRTzn* +z$VAAc*1@FmZS%rO<#kqKIh#XDHl1beuW1o`AhQdkA4z=($b2G@Vf?zRZ=c~8#NKHk +z`&gb|;zXt)rcRcrXzzew|JT@Z-Pm1fjzM=Jjd(v;s1l(6KaV{F(Akf|%Ps!^B!%h& +zfKvl$C5M!fK=nU}c)>h0J4u>NXE6mYauKV)BuOfv)qn1a)lbZw{=`swmW7>xhMPNJ +z>JS`1qPu8q*m(ER^#w{W{GFP%^y0(U>Ehx%Iqj{Dr#hzS2VZLGWb(I*c*!)0v#yk$ +zXB?)e^pI`uK8Bsg(@>tcfQs`SAUZ|eCU8SevXE0~gy5IR{q@PjJhoR$- +zH1(%3b@HK*-%s{#3?^NJN#7?YePp15CcP13U{bZjyqB1EqDW<)Ch(Xv3tPtH74!!8 +z=VSSX=KhfOW!oj~cy}Svr*O9`=^jI!@IosN%=TSuzOdID>gkd)p}CC2fqQlCE8RBb)-vp +zJ`d;jk!*gKZ1tqaA4~e>J$=Fo%RZNEyJkBs2`_Z@2hKdC7in8D?{duq!~DqtYU{k-nu3=VJ^}ep}WTYpgY#0D5g>G&S!=d!Rrs-Bt@R)j)k81bV&7=v7!_ +zF{C&ty~<^J?Y@us$VG)-Etk>jBGBt%D7}pJP#hSMdOO7d=wp +zF0$jr1(&}dg{<48 +zf`6~8$R3&@?ZcG9l-A;aiqr{PP;&&1&rmIf{t$ZCAiWRC^sWUS{wUDF%WIl31p?7Zty$_KKK<^7-^lqf|-u;qH?{|UTr?7njy&D7cPM7Jun>EqN!&pfS +z{iG?B-sXC83h3P%pm!r-eJz6+8(A}j(MfpW2^4S{tO^uL!!VkqMWHoYrL;y%>^0I9 +zDMLeyyQMLt@J%U8gDv=irz|5*8B(VOe0c$1cEC3$;L8vA76g2AWuL^FK{+KqjKZP{ +z1xfh(r{U4S3vE1dz(P6leZ;;aePAoG!MNHe?WRMrP@VlJVE)#Ls$Ag13woj2A^e7M +z*Hl~ma~Z%BuSFDLB)&MQux4Gf1ZB}|C&ssVk5u@kP_6ls@J=_shmL^u9YVFWTBWwV +zExgmozxy^-%4ggK?Fv4&)#jA-BSy9j{%6w%!s_=M<8vE1eFcp8Zqg!DCjmB1{EHMD +zbLC)}zl5Z~iyW@<2OpqAO6^w3SR2OQTclNAiM9O}$0h5Rvn^y*zeVH#rQHu=zVLu~ +zL{GnC;JN)M3u1>zAK=93A4>TZ`1C$ZyAG3hRH$xgM9QRO&by#wY(QxmWd +z7GgCu;bL3H_oVnKAKT@c{Qc(7W;hN!_l1Q_6Cs@pLz8X4WZbT>4pWVtu!65&NSO@p +z>d$~T2-^=!MS1o{v4-xK3FWKRL3NfL&?18LaBjy6+*(N+&}4&9t$QXHSVuG)xPkWn +zHo){}TQ)+9m4bfyUM=FplX +zR}oJZBuNW^W11?}1UbTPt1TR7zg#V@{82JB{iEdZ +z)&kRM9N(iL-6Gk%v&;H%YoA;wjw2V`pT(5b(V)#M*?{oy9d6Rw@#G(docC131|*;M +z9@^yw)MH!Zyy(pg{RKnw`g}wfnCLl4(j2J%ApwL*Unt7tw6r~l^eJ2vYz+{4bf-U# +zwr5Ju)1)PYqF;%;ANk33& +zFm8~H!OG7FtNawD@)snzN&=L;fzeTa+Sv>%;s708`C~i%Dy6E$`qaRBgl_0=MI@zN +zm6YN-3(?KP%GpJq7A8o$a9D7rjD(>ogAN=&7}&6jjuE@Zcw%tlrhFIfyUZx-!PZh7 +z>-NQzxzQ_BZ5iT;qF*?1Y39exp6yi8pmPVLFvH-a^r3QrkN)rq`mIxm37T1!O00_} +z=HsNU2DgCrC>vajXpr?~NT5?}PSL<4(78|3f5fhZOx1FVC +zyN^p|uWQ=YeHfKq$swK4j9k`{{8XD(c)_E=n#+Gx`aUvYEvhnXk`fW +z_KeT1#yz*-d|>QAO))Q1&U1+H!rQDULiJ|c%R_50GO +zRSs!-Eo3trV@GzPPJRA-u*hFusmQ`QQ;i6mR*NSenUoE<0Sg!kUm)v9Q +zte}%(n}we4kw&3B0k0x;qtaV>{O5R;TBC`IiiTed{Iv2fR{jl%_{By1bl3RBU*k9Q +z-~0*x=8xkN5{C^NK0FD2Bj7hu{*97<$q~QN5x+6l_+596U&_DvyZ+z&(fW^yj=>to +z+EwaIp>2ZvOO$`Z5M;{}dgk<+cFi0~`jp72s`v +z(3$04jiu09gQa05<~s0^o6gj{$}O`~=`3fMWo60{ju6 +z7~lfH5P%ARnE(d?ZUOi$z>fev0~iDFQ-B`;oCdfL;5~q60D1wU0X6~T05kx658%H5 +zECBxi7zywSz&wBx0QUe?0jvhN1TYlfd4SmfM*waI_yfQSfX@ML0C*kXQGjy*4*=`~ +zSP#$-zyp*4WCFMW#sRzqun6EIfJA^70UiWs21o~Z7vO1t^YlKVmLmW&01g1?0e%Cp +z48R948sIg6M*vO%7y$MFtOe)+hyri`7ye*v%qd<`%hN-&&{Nb}0#^ce7Pzy(Jp}F{a3_H~3Eba- +z`#W%d4DOG?^@HmN_d0N|1NUd({tVn7g8M^o&wzUd+^OJB1^0b$-v{?uaGwRY58OU* +z@m6LGxSPS<3~nyCx!`)h^?-XbxHp6QYjA%J?vvm?3GS!hehTg=a7TgrD!8wLJ0INn +z;GP8cB)Ip2doQ@v;8ufM3T`R5UEp?sD}XD2`vSNxfLj1=0k}uOJqqp};NAi5JK(+p +z?n-c1g8K!yUw}In+_B)k0qz^%7J*v??uX!h2=4d6{XV!KfcpWs&w=|KxC7u0@OUjM +zhRXm*1$Yb~0bmY58o(-gV>X7%1DFV~6d)O30l*Z1H2@lbY=8*>ivf}V<^oIxumY$d +z1rcC6z8E>u!5Bkt@kT+Pj)Hz0 +z1${FL`d<|Eu_!1_6!euS`Zod~9^iTaHNbGHK_d#<3f{tvf;x-5VR-qEj{sE!s3SlV +z0Z|bUnyxA&4!(=#*xgN}2A;s9&>9**K$Zv3dGOvMs=P@BKz%qUYleDjGB|d3@iBl^ +z0JxxflVf&A+pbZr$Z|yD9UX#~f*V4t3`1mylR+m#ybObtHCj$XCzmZ*E>oIZmdE5W +z)XI@Je1`;po8h!EvC%`K;xsySylN;fT!9kb{HLIRbl7zx$L&P>W`G-7aKO~lAiQ-V +z`xZ4$DLHP_GdI+B*vK*5FYw+h{ND17=D06MLwH;;yfvAt)UtSQ?HU1mE`;T@Y50>- +z!T1<{U=&xG67oJB!ib*|{?W)_`WW6cg2`hRkAQf$u;;f!h20w;9)3f|Hm$x1~%#ALjpjIz6oWA022 +z=po~URevXhztjiAV<6lX626tymnKG`F<&>w +zWJ0lj{Z00#0)0@$BHn4ovV0=@v7F~+Khj`8{(cT1IYgE%-3s&{!?SO&o^F=?Scj8k +zKh}4q?8ml{FZ;1QAzj9**xlNDIn)K4Y^kTYeQef^Q<{i87Wbr-|-&k@MWd1?4<NGYK;G^+;2jE +z;Wi&5Wf8*V2(WB83~o`ec%fNR4= +zj$X~aT&LK}T-cp$_Wd5rZIVeVl{*iIzZW~Sk}*Me$EZVPkUyjP%CwR1>AUBYcPo}G +zLER7macHQ5C5xUyH5D9ZS+;yh>XPE(mBoR_G(c5FFz>PzB{qv?*%Ql_tgxm&wdARl +zki_HgWJz)01MCRUM;?c?Rxc?=T^}5k$ilK2bG<` +z6Cs6e`c$PVB=(skl#3ROR)PSFiIvHJsHOxAs4m*MOb$Z>| +zamhACwi!vqot)U!yLnq8-g$|EH{R9sJO427??dgQj#|Ok>3xhI+O=M#%Tr +z?@_G@rbW%VbHToE;DY))#&E&DKR(2-<3h&-r5E1G0do?nAVUrXJXE`d@^#RcwbBMJ +zt~d@%9()|Q=bkBnall4L@8WCPo&F}{z&jl4$LM~Sao{&xa2)uO|MvU?#>Y7SjNoqu +z8wV!Hga2F=8}kPn2b4AP|HW~@wE?C5!+O4!_WZYLr?AZk?MB;aFBkiHn-J(o<#^aT +z9(~WCpgdKp+pn@Fiv4}IA)nkB7Eh`5RWW +zfGu>T-CxHA+w_DGe>@l3*5#H)+wY*-V8T?nTvh+c725UWw8?>X{p2%GEMHl2ZF}nN +z_#%~s*Il75srn_Jxk|fM%Jog!wGtmI4f_#ok0I?^X_HgfI7Q`A0i~<9$?wRIGSwPF +z*_wm`;FxUjg}zU*nemea!AHjvzuT1fPr>HpSEmi7s +z@b%4=>NEZBdxG@|9Me_SH{WD@dOePfFX(=k@u@s6I6k%O7@zoU#wU!A^FpI8Jl#RZ +zr=iTv7MR|t(6*qo0o-3g{#JX1@?Py1x>kSziC*&XB0<=CB0@f{2ye}q+SAXVmh&kp +zs<0hxLwNrzGbBR!jZ`>BD{GARf{fq88EWd$4q<*q39Q2hp(t{11qIkKv<-Y9WM5j+D1XV +zch^EZ{O3OlXwd{(#J*zN5qO7v=so=BuLWG`yK2CNdj0?&tW5u}DBmLNJGH^xw4o=q +zbcDFSi9DL^cZID5#Xh63c@&P;eUk*o3cP{Rz@haz+E0gzb}uJ5b~Cck^tE{D6D_i% +zQJrZMypy00XW+u`#(rvM1od}g(y{?@ZyfSmDBtq3TY5Ah{a9HarfmJ*duWB>173yF +zFP)rV?5)A}{T{ZdvOX-gklhs9D;e7ywUE=AD3X)p&k?HJ?zZIEI%+6j8l9!804wi* +zq3!aVB(ZzIHWuxhLcTBIqsbGz5?Y&}O81!n2q3{wu-(s$>`}G+k%j@hb1^#Vx}Q9* +z36o6;m?)>F)BQTJkGI9h_2i)(L)m&ZxQ&p_m@5`YbC}ln9NHtLoP{tDju6)`_{yq9 +zJpEr`%aohz0_HGH@i`2m9Gnt4a?v*hDrYOU$&W+eM!Th@!Dw2cb##4XcYaT%-%^y2KtR-E&XNzF?s=+ +zB>DmL*gpB~5Am%@e%!;er<;u`cB9a)L)~7koVjRtaQ$4)I#SA+qh6n%xZkgvv|fAN +zqdN9ZGIn@q)j`&b#K>oh>(h9_@hjS*b<#X7-<#M9UEhg&+N66@G&v=nqGDNSQiB=# +zQ2Ls;y9X)G(CQtKi;GvDSU(EyK7s5n>pAcCT;6jijiq@y^?EH?uT4Bn=IMN>V$pF% +zAUL)wG^8Uaqte|xEd#_z+)rOS&agMm>u_%Y2EfZH%hNbX((K97yg?h)h{1|@h*OFf +zQmKjQk +zKU*W$;XyJ_D>iW?N2fn3o`HIdZAB|29ZZiJd2|k0pU;R3ll_kIlAI_f{>_ +zPyDEs>D_%u%g%%IWEZWVWByq&%>6W)@n-j7+21xKsOJ}TUA-gw-;534 +z3%OtRKc;49wCK-(yk3_5O+eQY*`E-_alcl+fpmVZc$&w!{aqpRo +zzQrt=qN0*ju=cfD@MIRBvqK{E6;rLY=)>47RuMZqqQ|+#Pb{)3v6S?!OO`KZU!srZ +zXt9(mv9f2(kG>@)(iqz$l;eF3a+H|8p>iHW +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 + #endif + ++#if defined __APPLE__ ++ #include ++#endif ++ + /* Linux NOW has these */ + #if !defined BIG_ENDIAN + #define BIG_ENDIAN 4321 + #endif + #if !defined LITTLE_ENDIAN + #define LITTLE_ENDIAN 1234 + #endif + +diff --git a/compiler/amxxpc/sclinux.h b/compiler/amxxpc/sclinux.h +--- a/compiler/amxxpc/sclinux.h ++++ b/compiler/amxxpc/sclinux.h +@@ -27,16 +27,20 @@ + + /* + * SC assumes that a computer is Little Endian unless told otherwise. It uses + * (and defines) the macros BYTE_ORDER and BIG_ENDIAN. + * For Linux, we must overrule these settings with those defined in glibc. + */ + #if !defined __BYTE_ORDER + # include ++# if defined __APPLE__ ++# include ++# define __BYTE_ORDER BYTE_ORDER ++# endif + #endif + + #if defined __OpenBSD__ || defined __FreeBSD__ + # define __BYTE_ORDER BYTE_ORDER + # define __LITTLE_ENDIAN LITTLE_ENDIAN + # define __BIG_ENDIAN BIG_ENDIAN + #endif + +diff --git a/compiler/libpc300/Makefile b/compiler/libpc300/Makefile +--- a/compiler/libpc300/Makefile ++++ b/compiler/libpc300/Makefile +@@ -1,46 +1,108 @@ +-#(C)2004-2005 AMX Mod X Development Team ++# (C)2004-2013 AMX Mod X Development Team + # Makefile written by David "BAILOPAN" Anderson + ++##################################### + ### EDIT BELOW FOR OTHER PROJECTS ### ++##################################### + +-OPT_FLAGS = -O3 -funroll-loops -s -pipe -fno-strict-aliasing -fvisibility=hidden +-DEBUG_FLAGS = -g -ggdb3 +-CPP = gcc-4.1 +-NAME = amxxpc32 ++PROJECT = amxxpc32 ++OBJECTS = sc1.c sc2.c sc3.c sc4.c sc5.c sc6.c sc7.c scvars.c scmemfil.c scstate.c sclist.c sci18n.c \ ++ scexpand.c pawncc.c libpawnc.c prefix.c memfile.c + +-OBJECTS = sc1.c sc2.c sc3.c sc4.c sc5.c sc6.c sc7.c scvars.c scmemfil.c \ +- scstate.c sclist.c sci18n.c scexpand.c pawncc.c libpawnc.c prefix.c \ +- memfile.c ++############################################## ++### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ### ++############################################## ++ ++C_OPT_FLAGS = -DNDEBUG -O2 -funroll-loops -fomit-frame-pointer -pipe ++C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3 ++C_GCC4_FLAGS = -fvisibility=hidden ++CPP_GCC4_FLAGS = -fvisibility-inlines-hidden ++CPP = gcc ++CPP_OSX = clang + + LINK = -lpthread + +-INCLUDE = -I. ++INCLUDE = -I. + +-BINARY = $(NAME).so +-BIN_DIR = Release +-CFLAGS += -DPAWN_CELL_SIZE=32 ++################################################ ++### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ### ++################################################ + +-CFLAGS += -DLINUX -DNDEBUG -DHAVE_STDINT_H -DENABLE_BINRELOC -DNO_MAIN -DPAWNC_DLL -static-libgcc ++OS := $(shell uname -s) + +-CFLAGS += $(OPT_FLAGS) +-OBJ_LINUX := $(OBJECTS:%.c=$(BIN_DIR)/%.o) ++ifeq "$(OS)" "Darwin" ++ CPP = $(CPP_OSX) ++ LIB_EXT = dylib ++ CFLAGS += -DOSX ++ LINK += -dynamiclib -mmacosx-version-min=10.5 ++else ++ LIB_EXT = so ++ CFLAGS += -DLINUX ++ LINK += -shared ++endif ++ ++LINK += -m32 -lm -ldl ++ ++CFLAGS += -DENABLE_BINRELOC -DNO_MAIN -DPAWNC_DLL -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall \ ++ -Werror ++CPPFLAGS += -fexceptions -fno-rtti ++ ++BINARY = $(PROJECT).$(LIB_EXT) ++ ++ifeq "$(DEBUG)" "true" ++ BIN_DIR = Debug ++ CFLAGS += $(C_DEBUG_FLAGS) ++else ++ BIN_DIR = Release ++ CFLAGS += $(C_OPT_FLAGS) ++endif ++ ++IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0") ++ ++ifeq "$(IS_CLANG)" "1" ++ CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/") ++ CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/") ++else ++ CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++ CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3) ++endif ++ ++# Clang || GCC >= 4 ++ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1" ++ CFLAGS += $(C_GCC4_FLAGS) ++ CPPFLAGS += $(CPP_GCC4_FLAGS) ++endif ++ ++# Clang >= 3 || GCC >= 4.7 ++ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1" ++ CFLAGS += -Wno-delete-non-virtual-dtor ++endif ++ ++# OS is Linux and not using clang ++ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1" ++ LINK += -static-libgcc ++endif ++ ++OBJ_BIN := $(OBJECTS:%.c=$(BIN_DIR)/%.o) ++ ++# This will break if we include other Makefiles, but is fine for now. It allows ++# us to make a copy of this file that uses altered paths (ie. Makefile.mine) ++# or other changes without mucking up the original. ++MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) + + $(BIN_DIR)/%.o: %.c +- $(CPP) $(INCLUDE) $(CFLAGS) -m32 -o $@ -c $< ++ $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< + + all: +- mkdir -p Release +- $(MAKE) pawn_make ++ mkdir -p $(BIN_DIR) ++ $(MAKE) -f $(MAKEFILE_NAME) $(PROJECT) + +-pawn_make: $(OBJ_LINUX) +- $(CPP) $(INCLUDE) $(CFLAGS) -m32 $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) +- +-debug: +- $(MAKE) all DEBUG=true ++$(PROJECT): $(OBJ_BIN) ++ $(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY) + + default: all + + clean: +- rm -rf Release/*.o +- rm -rf Release/$(BINARY) ++ rm -rf $(BIN_DIR)/*.o ++ rm -f $(BIN_DIR)/$(BINARY) + +diff --git a/compiler/libpc300/amx.h b/compiler/libpc300/amx.h +--- a/compiler/libpc300/amx.h ++++ b/compiler/libpc300/amx.h +@@ -28,27 +28,27 @@ + #define chdir _chdir + #define stricmp _stricmp + #endif + #endif + + #if defined FREEBSD && !defined __FreeBSD__ + #define __FreeBSD__ + #endif +-#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ ++#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__ + #include + #endif + + #ifndef AMX_H_INCLUDED + #define AMX_H_INCLUDED + + #if defined HAVE_STDINT_H + #include + #else +- #if defined __LCC__ || defined __DMC__ || defined LINUX ++ #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__ + #if defined HAVE_INTTYPES_H + #include + #else + #include + #endif + #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L + /* The ISO C99 defines the int16_t and int_32t types. If the compiler got + * here, these types are probably undefined. +@@ -192,17 +192,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t + + #if defined __GNUC__ + #define PACKED __attribute__((packed)) + #else + #define PACKED + #endif + + #if !defined AMX_NO_ALIGN +- #if defined LINUX || defined __FreeBSD__ ++ #if defined LINUX || defined __FreeBSD__ || defined __APPLE__ + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #elif defined MACOS && defined __MWERKS__ + #pragma options align=mac68k + #else + #pragma pack(push) + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #if defined __TURBOC__ + #pragma option -a- /* "pack" pragma for older Borland compilers */ +@@ -420,17 +420,17 @@ int AMXAPI amx_UTF8Put(char *string, cha + #else + #error Unsupported cell size + #endif + + #define amx_RegisterFunc(amx, name, func) \ + amx_Register((amx), amx_NativeInfo((name),(func)), 1); + + #if !defined AMX_NO_ALIGN +- #if defined LINUX || defined __FreeBSD__ ++ #if defined LINUX || defined __FreeBSD__ || defined __APPLE__ + #pragma pack() /* reset default packing */ + #elif defined MACOS && defined __MWERKS__ + #pragma options align=reset + #else + #pragma pack(pop) /* reset previous packing */ + #endif + #endif + +diff --git a/compiler/libpc300/amxdbg.h b/compiler/libpc300/amxdbg.h +--- a/compiler/libpc300/amxdbg.h ++++ b/compiler/libpc300/amxdbg.h +@@ -44,17 +44,17 @@ extern "C" { + + #if defined __GNUC__ + #define PACKED __attribute__((packed)) + #else + #define PACKED + #endif + + #if !defined AMX_NO_ALIGN +- #if defined LINUX || defined __FreeBSD__ ++ #if defined LINUX || defined __FreeBSD__ || defined __APPLE__ + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #elif defined MACOS && defined __MWERKS__ + #pragma options align=mac68k + #else + #pragma pack(push) + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #if defined __TURBOC__ + #pragma option -a- /* "pack" pragma for older Borland compilers */ +@@ -151,17 +151,17 @@ int AMXAPI dbg_GetLineAddress(AMX_DBG *a + int AMXAPI dbg_GetAutomatonName(AMX_DBG *amxdbg, int automaton, const char **name); + int AMXAPI dbg_GetStateName(AMX_DBG *amxdbg, int state, const char **name); + int AMXAPI dbg_GetTagName(AMX_DBG *amxdbg, int tag, const char **name); + int AMXAPI dbg_GetVariable(AMX_DBG *amxdbg, const char *symname, ucell scopeaddr, const AMX_DBG_SYMBOL **sym); + int AMXAPI dbg_GetArrayDim(AMX_DBG *amxdbg, const AMX_DBG_SYMBOL *sym, const AMX_DBG_SYMDIM **symdim); + + + #if !defined AMX_NO_ALIGN +- #if defined LINUX || defined __FreeBSD__ ++ #if defined LINUX || defined __FreeBSD__ || defined __APPLE__ + #pragma pack() /* reset default packing */ + #elif defined MACOS && defined __MWERKS__ + #pragma options align=reset + #else + #pragma pack(pop) /* reset previous packing */ + #endif + #endif + +diff --git a/compiler/libpc300/libpawnc.c b/compiler/libpc300/libpawnc.c +--- a/compiler/libpc300/libpawnc.c ++++ b/compiler/libpc300/libpawnc.c +@@ -25,28 +25,25 @@ + #include + #include + #include + #include + #include "sc.h" + + #if defined PAWNC_DLL + +-#ifndef __linux__ ++#if !defined(__linux__) && !defined(__APPLE__) + #include "dllmain.c" + #endif + + # define MAX_ARGS 100 + # if !defined UNUSED_PARAM + # define UNUSED_PARAM(p) ((void)(p)) + # endif + +- static char *argv[MAX_ARGS]; +- static int argc; +- + #if PAWN_CELL_SIZE==32 + #define EXCOMPILER Compile32 + #else + #define EXCOMPILER Compile64 + #endif + + # if defined __WIN32__ || defined _WIN32 || defined WIN32 || defined __NT__ + __declspec (dllexport) +diff --git a/compiler/libpc300/memfile.c b/compiler/libpc300/memfile.c +--- a/compiler/libpc300/memfile.c ++++ b/compiler/libpc300/memfile.c +@@ -5,16 +5,17 @@ + memfile_t *memfile_creat(const char *name, size_t init) + { + memfile_t mf; + memfile_t *pmf; + + mf.size = init; + mf.base = (char *)malloc(init); + mf.usedoffs = 0; ++ mf.name = NULL; + if (!mf.base) + { + return NULL; + } + + mf.offs = 0; + mf._static = 0; + +diff --git a/compiler/libpc300/memfile.h b/compiler/libpc300/memfile.h +--- a/compiler/libpc300/memfile.h ++++ b/compiler/libpc300/memfile.h +@@ -4,17 +4,17 @@ + #ifdef _MSC_VER + // MSVC8 - replace POSIX functions with ISO C++ conformant ones as they are deprecated + #if _MSC_VER >= 1400 + #define strdup _strdup + #pragma warning(disable : 4996) + #endif + #endif + +-#include ++#include + + typedef struct memfile_s + { + char *name; + char *base; + long offs; + long usedoffs; + size_t size; +diff --git a/compiler/libpc300/osdefs.h b/compiler/libpc300/osdefs.h +--- a/compiler/libpc300/osdefs.h ++++ b/compiler/libpc300/osdefs.h +@@ -36,16 +36,20 @@ + #endif + + #if defined __FreeBSD__ + #include + #elif defined LINUX + #include + #endif + ++#if defined __APPLE__ ++ #include ++#endif ++ + /* Linux NOW has these */ + #if !defined BIG_ENDIAN + #define BIG_ENDIAN 4321 + #endif + #if !defined LITTLE_ENDIAN + #define LITTLE_ENDIAN 1234 + #endif + +diff --git a/compiler/libpc300/sc.h b/compiler/libpc300/sc.h +--- a/compiler/libpc300/sc.h ++++ b/compiler/libpc300/sc.h +@@ -58,17 +58,17 @@ + #define sDIMEN_MAX 3 /* maximum number of array dimensions */ + #define sLINEMAX 511 /* input line length (in characters) */ + #define sCOMP_STACK 32 /* maximum nesting of #if .. #endif sections */ + #define sDEF_LITMAX 500 /* initial size of the literal pool, in "cells" */ + #define sDEF_AMXSTACK 4096 /* default stack size for AMX files */ + #define PREPROC_TERM '\x7f'/* termination character for preprocessor expressions (the "DEL" code) */ + #define sDEF_PREFIX "default.inc" /* default prefix filename */ + +-#if defined WIN32 ++#if defined WIN32 || defined __clang__ + #define INVISIBLE + #else + #define INVISIBLE __attribute__((visibility("protected"))) + #endif + + typedef union { + void *pv; /* e.g. a name */ + int i; +diff --git a/compiler/libpc300/sc1.c b/compiler/libpc300/sc1.c +--- a/compiler/libpc300/sc1.c ++++ b/compiler/libpc300/sc1.c +@@ -30,19 +30,20 @@ + #include + #include + + #if defined __WIN32__ || defined _WIN32 || defined __MSDOS__ + #include + #include + #endif + +-#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ ++#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__ + #include + #include /* from BinReloc, see www.autopackage.org */ ++ #include + #endif + + #if defined FORTIFY + #include "fortify.h" + #endif + + #if defined __BORLANDC__ || defined __WATCOMC__ + #include +@@ -416,17 +417,17 @@ int pc_compile(int argc, char *argv[]) + int retcode; + char incfname[_MAX_PATH]; + char reportname[_MAX_PATH]; + char codepage[MAXCODEPAGE+1]; + FILE *binf; + void *inpfmark; + int lcl_packstr,lcl_needsemicolon,lcl_tabsize; + #if !defined SC_LIGHT +- int hdrsize; ++ int hdrsize=0; + #endif + + /* set global variables to their initial value */ + binf=NULL; + initglobals(); + errorset(sRESET); + errorset(sEXPRRELEASE); + lexinit(); +@@ -1243,19 +1244,19 @@ static void setconfig(char *root) + #else + char path[_MAX_PATH]; + char *ptr,*base; + int len; + + /* add the default "include" directory */ + #if defined __WIN32__ || defined _WIN32 + GetModuleFileName(NULL,path,_MAX_PATH); +- #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ ++ #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__ + /* see www.autopackage.org for the BinReloc module */ +- ptr = SELFPATH; ++ ptr = (char *)SELFPATH; + if (!ptr) + ptr = root; + strncpy(path,ptr,sizeof path); + #else + if (root!=NULL) + strncpy(path,root,sizeof path); /* path + filename (hopefully) */ + #endif + #if defined __MSDOS__ +@@ -1917,17 +1918,17 @@ static int declloc(int fstatic) + constvalue *enumroot; + cell val,size; + char *str; + value lval = {0}; + int cur_lit=0; + int dim[sDIMEN_MAX]; + int numdim; + int fconst; +- int staging_start; ++ int staging_start=0; + + fconst=matchtoken(tCONST); + do { + ident=iVARIABLE; + size=1; + numdim=0; /* no dimensions */ + tag=pc_addtag(NULL); + if (lex(&val,&str)!=tSYMBOL) /* read in (new) token */ +@@ -1943,17 +1944,17 @@ static int declloc(int fstatic) + */ + if ((sym=findloc(name))!=NULL && sym->compound==nestlevel) + error(21,name); /* symbol already defined */ + /* Although valid, a local variable whose name is equal to that + * of a global variable or to that of a local variable at a lower + * level might indicate a bug. + * NOTE - don't bother with the error if there's no valid function! + */ +- if ((sym=findloc(name))!=NULL && sym->compound!=nestlevel || findglb(name)!=NULL) ++ if (((sym=findloc(name))!=NULL && sym->compound!=nestlevel) || findglb(name)!=NULL) + if (curfunc!=NULL && (curfunc->usage & uNATIVE)) + error(219,name); /* variable shadows another symbol */ + while (matchtoken('[')){ + ident=iARRAY; + if (numdim == sDIMEN_MAX) { + error(53); /* exceeding maximum number of dimensions */ + return ident; + } /* if */ +@@ -2858,17 +2859,17 @@ static int operatoradjust(int opertok,sy + if (count!=1 && count!=2) + error(62); /* number or placement of the operands does not fit the operator */ + break; + default: + if (count!=2) + error(62); /* number or placement of the operands does not fit the operator */ + } /* switch */ + +- if (tags[0]==0 && (opertok!='=' && tags[1]==0 || opertok=='=' && resulttag==0)) ++ if (tags[0]==0 && ((opertok!='=' && tags[1]==0) || (opertok=='=' && resulttag==0))) + error(64); /* cannot change predefined operators */ + + /* change the operator name */ + assert(strlen(opername)>0); + operator_symname(tmpname,opername,tags[0],tags[1],count,resulttag); + if ((oldsym=findglb(tmpname))!=NULL) { + int i; + if ((oldsym->usage & uDEFINE)!=0) { +@@ -3040,17 +3041,17 @@ static void funcstub(int native) + if (size > INT_MAX) + error(105); /* overflow, exceeding capacity */ + #endif + dim[numdim++]=(int)size; + } /* while */ + + tok=lex(&val,&str); + if (native) { +- if (tok==tPUBLIC || tok==tSTOCK || tok==tSTATIC || tok==tSYMBOL && *str==PUBLIC_CHAR) ++ if (tok==tPUBLIC || tok==tSTOCK || tok==tSTATIC || (tok==tSYMBOL && *str==PUBLIC_CHAR)) + error(42); /* invalid combination of class specifiers */ + } else { + if (tok==tPUBLIC || tok==tSTOCK || tok==tSTATIC) + tok=lex(&val,&str); + } /* if */ + + if (tok==tOPERATOR) { + opertok=operatorname(symbolname); +@@ -3161,17 +3162,17 @@ static int newfunc(char *firstname,int f + if (firstname!=NULL) { + assert(strlen(firstname)<=sNAMEMAX); + strcpy(symbolname,firstname); /* save symbol name */ + tag=firsttag; + } else { + tag= (firsttag>=0) ? firsttag : pc_addtag(NULL); + tok=lex(&val,&str); + assert(!fpublic); +- if (tok==tNATIVE || tok==tPUBLIC && stock) ++ if (tok==tNATIVE || (tok==tPUBLIC && stock)) + error(42); /* invalid combination of class specifiers */ + if (tok==tOPERATOR) { + opertok=operatorname(symbolname); + if (opertok==0) + return TRUE; /* error message already given */ + check_operatortag(opertok,tag,symbolname); + } else { + if (tok!=tSYMBOL && freading) { +@@ -3507,17 +3508,17 @@ static int declargs(symbol *sym) + error(25); /* function definition does not match prototype */ + } /* if */ + argcnt++; + break; + default: + error(10); /* illegal function or declaration */ + } /* switch */ + } while (tok=='&' || tok==tLABEL || tok==tCONST +- || tok!=tELLIPS && matchtoken(',')); /* more? */ ++ || (tok!=tELLIPS && matchtoken(','))); /* more? */ + /* if the next token is not ",", it should be ")" */ + needtoken(')'); + } /* if */ + /* resolve any "sizeof" arguments (now that all arguments are known) */ + assert(sym->dim.arglist!=NULL); + arglist=sym->dim.arglist; + for (idx=0; idxparent!=NULL) + continue; /* hierarchical data type */ + assert(sym->ident==iCONSTEXPR || sym->ident==iVARIABLE + || sym->ident==iARRAY || sym->ident==iFUNCTN); + if (sym->ident!=iCONSTEXPR || (sym->usage & uENUMROOT)==0) + continue; + if ((sym->usage & uREAD)==0) + continue; +- fprintf(log,"\t\t\n",funcdisplayname(symname,sym->name),sym->addr); ++ fprintf(log,"\t\t\n",funcdisplayname(symname,sym->name),(long)sym->addr); + if (sym->tag!=0) { + tagsym=find_tag_byval(sym->tag); + assert(tagsym!=NULL); + fprintf(log,"\t\t\t\n",tagsym->name); + } /* if */ + /* browse through all fields */ + if ((enumroot=sym->dim.enumlist)!=NULL) { + enumroot=enumroot->next; /* skip root */ + while (enumroot!=NULL) { +- fprintf(log,"\t\t\t\n",funcdisplayname(symname,enumroot->name),enumroot->value); ++ fprintf(log,"\t\t\t\n",funcdisplayname(symname,enumroot->name),(long)enumroot->value); + /* find the constant with this name and get the tag */ + ref=findglb(enumroot->name); + if (ref!=NULL) { + if (ref->x.idxtag!=0) { + tagsym=find_tag_byval(ref->x.idxtag); + assert(tagsym!=NULL); + fprintf(log,"\t\t\t\t\n",tagsym->name); + } /* if */ +@@ -3914,17 +3915,17 @@ static void make_report(symbol *root,FIL + if (sym->parent!=NULL) + continue; /* hierarchical data type */ + assert(sym->ident==iCONSTEXPR || sym->ident==iVARIABLE + || sym->ident==iARRAY || sym->ident==iFUNCTN); + if (sym->ident!=iCONSTEXPR) + continue; + if ((sym->usage & uREAD)==0 || (sym->usage & (uENUMFIELD | uENUMROOT))!=0) + continue; +- fprintf(log,"\t\t\n",funcdisplayname(symname,sym->name),sym->addr); ++ fprintf(log,"\t\t\n",funcdisplayname(symname,sym->name),(long)sym->addr); + if (sym->tag!=0) { + tagsym=find_tag_byval(sym->tag); + assert(tagsym!=NULL); + fprintf(log,"\t\t\t\n",tagsym->name); + } /* if */ + assert(sym->refer!=NULL); + for (i=0; inumrefers; i++) { + if ((ref=sym->refer[i])!=NULL) +@@ -4034,17 +4035,17 @@ static void make_report(symbol *root,FIL + if (ref->refer[i]==sym) + fprintf(log,"\t\t\t\n",xmlencode(symname,funcdisplayname(symname,ref->name))); + } /* for */ + /* print parameter list, with tag & const information, plus descriptions */ + assert(sym->dim.arglist!=NULL); + for (arg=0; sym->dim.arglist[arg].ident!=0; arg++) { + int dim,paraminfo; + char *outer_start,*inner_start; +- int outer_length,inner_length; ++ int outer_length=0,inner_length=0; + if (sym->dim.arglist[arg].ident==iVARARGS) + fprintf(log,"\t\t\t\n"); + else + fprintf(log,"\t\t\t\n",sym->dim.arglist[arg].name); + /* print the tag name(s) for each parameter */ + assert(sym->dim.arglist[arg].numtags>0); + assert(sym->dim.arglist[arg].tags!=NULL); + paraminfo=(sym->dim.arglist[arg].numtags>1 || sym->dim.arglist[arg].tags[0]!=0) +@@ -5243,26 +5244,26 @@ static void doreturn(void) + ident=doexpr(TRUE,FALSE,TRUE,TRUE,&tag,&sym,TRUE); + needtoken(tTERM); + /* see if this function already has a sub type (an array attached) */ + sub=finddepend(curfunc); + assert(sub==NULL || sub->ident==iREFARRAY); + if ((rettype & uRETVALUE)!=0) { + int retarray=(ident==iARRAY || ident==iREFARRAY); + /* there was an earlier "return" statement in this function */ +- if (sub==NULL && retarray || sub!=NULL && !retarray) ++ if ((sub==NULL && retarray) || (sub!=NULL && !retarray)) + error(79); /* mixing "return array;" and "return value;" */ + } /* if */ + rettype|=uRETVALUE; /* function returns a value */ + /* check tagname with function tagname */ + assert(curfunc!=NULL); + if (!matchtag(curfunc->tag,tag,TRUE)) + error(213); /* tagname mismatch */ + if (ident==iARRAY || ident==iREFARRAY) { +- int dim[sDIMEN_MAX],numdim; ++ int dim[sDIMEN_MAX],numdim=0; + cell arraysize; + assert(sym!=NULL); + if (sub!=NULL) { + assert(sub->ident==iREFARRAY); + /* this function has an array attached already; check that the current + * "return" statement returns exactly the same array + */ + level=sym->dim.array.level; +diff --git a/compiler/libpc300/sc2.c b/compiler/libpc300/sc2.c +--- a/compiler/libpc300/sc2.c ++++ b/compiler/libpc300/sc2.c +@@ -22,17 +22,17 @@ + */ + #include + #include + #include + #include + #include + #include + #include "sc.h" +-#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ ++#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__ + #include + #endif + + #if defined FORTIFY + #include "fortify.h" + #endif + + /* flags for litchar() */ +@@ -193,17 +193,17 @@ SC_FUNC int plungefile(char *name,int tr + + if (try_includepaths && name[0]!=DIRSEP_CHAR) { + int i; + char *ptr; + for (i=0; !result && (ptr=get_path(i))!=NULL; i++) { + char path[_MAX_PATH]; + strncpy(path,ptr,sizeof path); + path[sizeof path - 1]='\0'; /* force '\0' termination */ +- strncat(path,name,sizeof(path)-strlen(path)); ++ strncat(path,name,sizeof(path) - strlen(path) - 1); + path[sizeof path - 1]='\0'; + result=plungequalifiedfile(path); + } /* while */ + } /* if */ + return result; + } + + static void check_empty(const unsigned char *lptr) +@@ -403,17 +403,17 @@ static void stripcom(unsigned char *line + *(line+1)=' '; + line+=2; + } else { + if (*line=='/' && *(line+1)=='*') + error(216); /* nested comment */ + #if !defined SC_LIGHT + /* collect the comment characters in a string */ + if (icomment==2) { +- if (skipstar && (*line!='\0' && *line<=' ' || *line=='*')) { ++ if (skipstar && ((*line!='\0' && *line<=' ') || *line=='*')) { + /* ignore leading whitespace and '*' characters */ + } else if (commentidxCOMMENT_LIMIT && *line!='\0' && *line<=' ') { + comment[commentidx]='\0'; + insert_docstring(comment); + commentidx=0; + } /* if */ +@@ -580,32 +580,19 @@ static int htoi(cell *val,const unsigned + } /* if */ + if (alphanum(*ptr)) + return 0; + else + return (int)(ptr-curptr); + } + + #if defined __GNUC__ +-static double pow10(int value) ++static double pow10(double d) + { +- double res=1.0; +- while (value>=4) { +- res*=10000.0; +- value-=5; +- } /* while */ +- while (value>=2) { +- res*=100.0; +- value-=2; +- } /* while */ +- while (value>=1) { +- res*=10.0; +- value-=1; +- } /* while */ +- return res; ++ return pow(10, d); + } + #endif + + /* ftoi + * + * Attempts to interpret a numeric symbol as a rational number, either as + * IEEE 754 single/double precision floating point or as a fixed point integer. + * On success it returns the number of characters processed and the value is +@@ -1205,17 +1192,17 @@ static int command(void) + case tRATIONAL: + outval(val,FALSE); + code_idx+=opargs(1); + break; + case tSYMBOL: + sym=findloc(str); + if (sym==NULL) + sym=findglb(str); +- if (sym==NULL || sym->ident!=iFUNCTN && sym->ident!=iREFFUNC && (sym->usage & uDEFINE)==0) { ++ if (sym==NULL || (sym->ident!=iFUNCTN && sym->ident!=iREFFUNC && (sym->usage & uDEFINE)==0)) { + error(17,str); /* undefined symbol */ + } else { + outval(sym->addr,FALSE); + /* mark symbol as "used", unknown whether for read or write */ + markusage(sym,uREAD | uWRITTEN); + code_idx+=opargs(1); + } /* if */ + break; +@@ -1639,17 +1626,17 @@ static void substallpatterns(unsigned ch + start++; /* skip non-alphapetic character (or closing quote of a string) */ + } /* while */ + if (*start=='\0') + break; /* abort loop on error */ + /* if matching the operator "defined", skip it plus the symbol behind it */ + if (strncmp((char*)start,"defined",7)==0 && !isalpha((char)*(start+7))) { + start+=7; /* skip "defined" */ + /* skip white space & parantheses */ +- while (*start<=' ' && *start!='\0' || *start=='(') ++ while ((*start<=' ' && *start!='\0') || *start=='(') + start++; + /* skip the symbol behind it */ + while (isalpha(*start) || isdigit(*start) || *start=='_') + start++; + /* drop back into the main loop */ + continue; + } /* if */ + /* get the prefix (length), look for a matching definition */ +@@ -1941,32 +1928,32 @@ SC_FUNC int lex(cell *lexvalue,char **le + } else if (find_constval(&tagname_tab,_lexstr,0)!=NULL) { + /* this looks like a tag override (because a tag with this name + * exists), but tags are not allowed right now, so it is probably an + * error + */ + error(220); + } /* if */ + } /* if */ +- } else if (*lptr=='\"' || *lptr==sc_ctrlchar && *(lptr+1)=='\"') ++ } else if (*lptr=='\"' || (*lptr==sc_ctrlchar && *(lptr+1)=='\"')) + { /* unpacked string literal */ + _lextok=tSTRING; + stringflags= (*lptr==sc_ctrlchar) ? RAWMODE : 0; + *lexvalue=_lexval=litidx; + lptr+=1; /* skip double quote */ + if ((stringflags & RAWMODE)!=0) + lptr+=1; /* skip "escape" character too */ + lptr=sc_packstr ? packedstring(lptr,stringflags) : unpackedstring(lptr,stringflags); + if (*lptr=='\"') + lptr+=1; /* skip final quote */ + else + error(37); /* invalid (non-terminated) string */ +- } else if (*lptr=='!' && *(lptr+1)=='\"' +- || *lptr=='!' && *(lptr+1)==sc_ctrlchar && *(lptr+2)=='\"' +- || *lptr==sc_ctrlchar && *(lptr+1)=='!' && *(lptr+2)=='\"') ++ } else if ((*lptr=='!' && *(lptr+1)=='\"') ++ || (*lptr=='!' && *(lptr+1)==sc_ctrlchar && *(lptr+2)=='\"') ++ || (*lptr==sc_ctrlchar && *(lptr+1)=='!' && *(lptr+2)=='\"')) + { /* packed string literal */ + _lextok=tSTRING; + stringflags= (*lptr==sc_ctrlchar || *(lptr+1)==sc_ctrlchar) ? RAWMODE : 0; + *lexvalue=_lexval=litidx; + lptr+=2; /* skip exclamation point and double quote */ + if ((stringflags & RAWMODE)!=0) + lptr+=1; /* skip "escape" character too */ + lptr=sc_packstr ? unpackedstring(lptr,stringflags) : packedstring(lptr,stringflags); +@@ -2048,17 +2035,17 @@ SC_FUNC void lexclr(int clreol) + */ + SC_FUNC int matchtoken(int token) + { + cell val; + char *str; + int tok; + + tok=lex(&val,&str); +- if (tok==token || token==tTERM && (tok==';' || tok==tENDEXPR)) { ++ if (tok==token || (token==tTERM && (tok==';' || tok==tENDEXPR))) { + return 1; + } else if (!sc_needsemicolon && token==tTERM && (_lexnewline || !freading)) { + /* Push "tok" back, because it is the token following the implicit statement + * termination (newline) token. + */ + lexpush(); + return 2; + } else { +@@ -2413,17 +2400,17 @@ SC_FUNC void delete_symbol(symbol *root, + root->next=sym->next; + free_symbol(sym); + } + + SC_FUNC void delete_symbols(symbol *root,int level,int delete_labels,int delete_functions) + { + symbol *sym,*parent_sym; + constvalue *stateptr; +- int mustdelete; ++ int mustdelete=0; + + /* erase only the symbols with a deeper nesting level than the + * specified nesting level */ + while (root->next!=NULL) { + sym=root->next; + if (sym->compoundident) { +diff --git a/compiler/libpc300/sc3.c b/compiler/libpc300/sc3.c +--- a/compiler/libpc300/sc3.c ++++ b/compiler/libpc300/sc3.c +@@ -924,17 +924,17 @@ static int hier14(value *lval1) + if (val<0) { + val=-val; + if (lval3.sym->x.idxtag==0) + exactmatch=FALSE; + } /* if */ + } /* if */ + if (lval3.sym->dim.array.level!=level) + return error(48); /* array dimensions must match */ +- else if (ltlengthval || val==0) ++ else if (ltlengthval) || val==0) + return error(47); /* array sizes must match */ + else if (lval3.ident!=iARRAYCELL && !matchtag(lval3.sym->x.idxtag,idxtag,TRUE)) + error(229,(lval2.sym!=NULL) ? lval2.sym->name : lval3.sym->name); /* index tag mismatch */ + if (level>0) { + /* check the sizes of all sublevels too */ + symbol *sym1 = lval3.sym; + symbol *sym2 = lval2.sym; + int i; +@@ -1119,17 +1119,17 @@ static int hier3(value *lval) + } + + static int hier2(value *lval) + { + int lvalue,tok; + int tag,paranthese; + cell val; + char *st; +- symbol *sym; ++ symbol *sym=NULL; + int saveresult; + + tok=lex(&val,&st); + switch (tok) { + case tINC: /* ++lval */ + if (!hier2(lval)) + return error(22); /* must be lvalue */ + assert(lval->sym!=NULL); +@@ -1242,17 +1242,17 @@ static int hier2(value *lval) + error(72); /* "function" symbol has no size */ + else if ((sym->usage & uDEFINE)==0) + return error(17,st); /* undefined symbol (symbol is in the table, but it is "used" only) */ + clear_value(lval); + lval->ident=iCONSTEXPR; + lval->constval=1; /* preset */ + if (sym->ident==iARRAY || sym->ident==iREFARRAY) { + int level; +- symbol *idxsym; ++ symbol *idxsym=NULL; + for (level=0; matchtoken('['); level++) { + idxsym=NULL; + if (level==sym->dim.array.level && matchtoken(tSYMBOL)) { + char *idxname; + tokeninfo(&val,&idxname); + if ((idxsym=findconst(idxname))==NULL) + error(80,idxname); /* unknown symbol, or non-constant */ + } /* if */ +@@ -1288,17 +1288,17 @@ static int hier2(value *lval) + if (sym==NULL) + return error(17,st); /* undefined symbol */ + if ((sym->usage & uDEFINE)==0) + return error(17,st); /* undefined symbol (symbol is in the table, but it is "used" only) */ + tag=sym->tag; + } /* if */ + if (sym->ident==iARRAY || sym->ident==iREFARRAY) { + int level; +- symbol *idxsym; ++ symbol *idxsym=NULL; + for (level=0; matchtoken('['); level++) { + idxsym=NULL; + if (level==sym->dim.array.level && matchtoken(tSYMBOL)) { + char *idxname; + tokeninfo(&val,&idxname); + if ((idxsym=findconst(idxname))==NULL) + error(80,idxname); /* unknown symbol, or non-constant */ + } /* if */ +@@ -1457,35 +1457,35 @@ restart: + if (lval2.ident==iCONSTEXPR) { /* constant expression */ + stgdel(index,cidx); /* scratch generated code */ + if (lval1->arrayidx!=NULL) { /* keep constant index, for checking */ + assert(sym->dim.array.level>=0 && sym->dim.array.levelarrayidx[sym->dim.array.level]=lval2.constval; + } /* if */ + if (close==']') { + /* normal array index */ +- if (lval2.constval<0 || sym->dim.array.length!=0 && sym->dim.array.length<=lval2.constval) ++ if (lval2.constval<0 || (sym->dim.array.length!=0 && sym->dim.array.length<=lval2.constval)) + error(32,sym->name); /* array index out of bounds */ + if (lval2.constval!=0) { + /* don't add offsets for zero subscripts */ + #if PAWN_CELL_SIZE==16 + ldconst(lval2.constval<<1,sALT); + #elif PAWN_CELL_SIZE==32 + ldconst(lval2.constval<<2,sALT); + #elif PAWN_CELL_SIZE==64 + ldconst(lval2.constval<<3,sALT); + #else + #error Unsupported cell size + #endif + ob_add(); + } /* if */ + } else { + /* character index */ +- if (lval2.constval<0 || sym->dim.array.length!=0 +- && sym->dim.array.length*((8*sizeof(cell))/sCHARBITS)<=(ucell)lval2.constval) ++ if (lval2.constval<0 || (sym->dim.array.length!=0 ++ && sym->dim.array.length*((8*sizeof(cell))/sCHARBITS)<=(ucell)lval2.constval)) + error(32,sym->name); /* array index out of bounds */ + if (lval2.constval!=0) { + /* don't add offsets for zero subscripts */ + #if sCHARBITS==16 + ldconst(lval2.constval<<1,sALT);/* 16-bit character */ + #else + ldconst(lval2.constval,sALT); /* 8-bit character */ + #endif +@@ -2030,18 +2030,18 @@ static int nesting=0; + if (lval.ident==iARRAYCELL) { + error(47); /* array sizes must match */ + } else { + assert(lval.constval!=0); /* literal array must have a size */ + /* A literal array must have exactly the same size as the + * function argument; a literal string may be smaller than + * the function argument. + */ +- if (lval.constval>0 && arg[argidx].dim[0]!=lval.constval +- || lval.constval<0 && arg[argidx].dim[0] < -lval.constval) ++ if ((lval.constval>0 && arg[argidx].dim[0]!=lval.constval) ++ || (lval.constval<0 && arg[argidx].dim[0] < -lval.constval)) + error(47); /* array sizes must match */ + } /* if */ + } /* if */ + if (lval.ident!=iARRAYCELL) { + /* save array size, for default values with uSIZEOF flag */ + cell array_sz=lval.constval; + assert(array_sz!=0);/* literal array must have a size */ + if (array_sz<0) +diff --git a/compiler/libpc300/sc4.c b/compiler/libpc300/sc4.c +--- a/compiler/libpc300/sc4.c ++++ b/compiler/libpc300/sc4.c +@@ -230,17 +230,17 @@ SC_FUNC void begdseg(void) + stgwrite("DATA\t; "); + outval(glb_declared-litidx,TRUE); + curseg=sIN_DSEG; + } /* if */ + } + + SC_FUNC void setline(int chkbounds) + { +- if ((sc_debug & sSYMBOLIC)!=0 || chkbounds && (sc_debug & sCHKBOUNDS)!=0) { ++ if ((sc_debug & sSYMBOLIC)!=0 || (chkbounds && (sc_debug & sCHKBOUNDS)!=0)) { + /* generate a "break" (start statement) opcode rather than a "line" opcode + * because earlier versions of Small/Pawn have an incompatible version of the + * line opcode + */ + stgwrite("\tbreak\t; "); + outval(code_idx,TRUE); + code_idx+=opcodes(1); + } /* if */ +@@ -714,17 +714,17 @@ SC_FUNC void ffcall(symbol *sym,const ch + stgwrite("\tcall "); + if (label!=NULL) { + stgwrite("l."); + stgwrite(label); + } else { + stgwrite(sym->name); + } /* if */ + if (sc_asmfile +- && (label!=NULL || !isalpha(sym->name[0]) && sym->name[0]!='_' && sym->name[0]!=sc_ctrlchar)) ++ && (label!=NULL || (!isalpha(sym->name[0]) && sym->name[0]!='_' && sym->name[0]!=sc_ctrlchar))) + { + stgwrite("\t; "); + stgwrite(symname); + } /* if */ + stgwrite("\n"); + code_idx+=opcodes(1)+opargs(1); + } /* if */ + } +diff --git a/compiler/libpc300/sc5.c b/compiler/libpc300/sc5.c +--- a/compiler/libpc300/sc5.c ++++ b/compiler/libpc300/sc5.c +@@ -20,17 +20,17 @@ + * 3. This notice may not be removed or altered from any source distribution. + * + * Version: $Id: sc5.c 1724 2005-07-24 20:00:55Z dvander $ + */ + #include + #if defined __WIN32__ || defined _WIN32 || defined __MSDOS__ + #include + #endif +-#if defined LINUX || defined __GNUC__ ++#if defined LINUX || defined __APPLE__ || defined __GNUC__ + #include + #endif + #include + #include + #include /* ANSI standardized variable argument list functions */ + #include + #if defined FORTIFY + #include "fortify.h" +@@ -127,17 +127,17 @@ static short lastfile; + else + fprintf(fp,"%s(%d) : %s %03d: ",inpfname,fline,pre,number); + vfprintf(fp,string,argptr); + fclose(fp); + } /* if */ + } /* if */ + va_end(argptr); + +- if (number>=100 && number<200 || errnum>25){ ++ if ((number>=100 && number<200) || errnum>25){ + if (strlen(errfname)==0) { + va_start(argptr,number); + pc_error(0,"\nCompilation aborted.",NULL,0,0,argptr); + va_end(argptr); + } /* if */ + if (outf!=NULL) { + pc_closeasm(outf,TRUE); + outf=NULL; +diff --git a/compiler/libpc300/sc6.c b/compiler/libpc300/sc6.c +--- a/compiler/libpc300/sc6.c ++++ b/compiler/libpc300/sc6.c +@@ -25,17 +25,17 @@ + #include /* for macro max() */ + #include + #include + #if defined FORTIFY + #include "fortify.h" + #endif + #include "sc.h" + #include "amxdbg.h" +-#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ ++#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__ + #include + #endif + + + static void append_dbginfo(FILE *fout); + + + typedef cell (*OPCODE_PROC)(FILE *fbin,char *params,cell opcode); +@@ -890,17 +890,17 @@ SC_FUNC int assemble(FILE *fout,FILE *fi + bytes_out=0; + for (pass=sIN_CSEG; pass<=sIN_DSEG; pass++) { + pc_resetasm(fin); + while (pc_readasm(fin,line,sizeof line)!=NULL) { + stripcomment(line); + instr=skipwhitespace(line); + /* ignore empty lines and labels (labels have a special syntax, so these + * must be parsed separately) */ +- if (*instr=='\0' || tolower(*instr)=='l' && *(instr+1)=='.') ++ if (*instr=='\0' || (tolower(*instr)=='l' && *(instr+1)=='.')) + continue; + /* get to the end of the instruction (make use of the '\n' that fgets() + * added at the end of the line; this way we will *always* drop on a + * whitespace character) */ + for (params=instr; *params!='\0' && !isspace(*params); params++) + /* nothing */; + assert(params>instr); + i=findopcode(instr,(int)(params-instr)); +diff --git a/compiler/libpc300/sc7.c b/compiler/libpc300/sc7.c +--- a/compiler/libpc300/sc7.c ++++ b/compiler/libpc300/sc7.c +@@ -452,28 +452,28 @@ static int matchsequence(char *start,cha + start++; + ptr++; + } /* while */ + pattern--; /* there is an increment following at the end of the loop */ + break; + case ' ': + if (*start!='\t' && *start!=' ') + return FALSE; +- while (start=0xd800 && result<=0xdfff || result==0xfffe || result==0xffff) ++ if ((result>=0xd800 && result<=0xdfff) || result==0xfffe || result==0xffff) + return -1; + } /* if */ + break; + } else if (follow==0 && (ch & 0x80)==0x80) { + /* UTF-8 leader code */ + if ((ch & 0xe0)==0xc0) { + /* 110xxxxx 10xxxxxx */ + follow=1; +diff --git a/compiler/libpc300/sclinux.h b/compiler/libpc300/sclinux.h +--- a/compiler/libpc300/sclinux.h ++++ b/compiler/libpc300/sclinux.h +@@ -27,16 +27,20 @@ + + /* + * SC assumes that a computer is Little Endian unless told otherwise. It uses + * (and defines) the macros BYTE_ORDER and BIG_ENDIAN. + * For Linux, we must overrule these settings with those defined in glibc. + */ + #if !defined __BYTE_ORDER + # include ++# if defined __APPLE__ ++# include ++# define __BYTE_ORDER BYTE_ORDER ++# endif + #endif + + #if defined __OpenBSD__ || defined __FreeBSD__ + # define __BYTE_ORDER BYTE_ORDER + # define __LITTLE_ENDIAN LITTLE_ENDIAN + # define __BIG_ENDIAN BIG_ENDIAN + #endif + +diff --git a/compiler/libpc300/sclist.c b/compiler/libpc300/sclist.c +--- a/compiler/libpc300/sclist.c ++++ b/compiler/libpc300/sclist.c +@@ -233,17 +233,17 @@ SC_FUNC void delete_aliastable(void) + + /* ----- include paths list -------------------------------------- */ + static stringlist includepaths = {NULL, NULL}; /* directory list for include files */ + + SC_FUNC stringlist *insert_path(char *path) + { + char *extra_path = malloc(strlen(path) + 16); + strcpy(extra_path, path); +-#if defined __linux__ ++#if defined __linux__ || defined __APPLE__ + strcat(extra_path, "/amxmod_compat/"); + #elif defined WIN32 || defined _WIN32 + strcat(extra_path, "\\amxmod_compat\\"); + #endif + insert_string(&includepaths, extra_path); + free(extra_path); + return insert_string(&includepaths,path); + } +@@ -439,20 +439,20 @@ SC_FUNC stringlist *insert_dbgsymbol(sym + int count=0; + #endif + + + funcdisplayname(symname,sym->name); + /* address tag:name codestart codeend ident vclass [tag:dim ...] */ + #if PAWN_CELL_SIZE==32 + if (sym->ident==iFUNCTN) +- sprintf(string,"S:%08lx %x:%s %08lx %08lx %x %x",sym->addr,sym->tag, ++ sprintf(string,"S:%08x %x:%s %08x %08x %x %x",sym->addr,sym->tag, + symname,sym->addr,sym->codeaddr,sym->ident,sym->vclass); + else +- sprintf(string,"S:%08lx %x:%s %08lx %08lx %x %x",sym->addr,sym->tag, ++ sprintf(string,"S:%08x %x:%s %08x %08x %x %x",sym->addr,sym->tag, + symname,sym->codeaddr,code_idx,sym->ident,sym->vclass); + #elif PAWN_CELL_SIZE==64 + if (sym->ident==iFUNCTN) + sprintf(string,"S:%08Lx %x:%s %08Lx %08Lx %x %x",(LONGCAST)sym->addr,sym->tag, + symname,sym->addr,sym->codeaddr,sym->ident,sym->vclass); + else + sprintf(string,"S:%08Lx %x:%s %08Lx %08Lx %x %x",(LONGCAST)sym->addr,sym->tag, + symname,sym->codeaddr,code_idx,sym->ident,sym->vclass); +diff --git a/compiler/libpc300/scstate.c b/compiler/libpc300/scstate.c +--- a/compiler/libpc300/scstate.c ++++ b/compiler/libpc300/scstate.c +@@ -46,17 +46,17 @@ + * Version: $Id: scstate.c 1724 2005-07-24 20:00:55Z dvander $ + */ + #include + #include + #include + #include + #include + #include "sc.h" +-#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ ++#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__ + #include + #endif + + #if defined FORTIFY + #include "fortify.h" + #endif + + typedef struct s_statelist { +diff --git a/configs/hamdata.ini b/configs/hamdata.ini +--- a/configs/hamdata.ini ++++ b/configs/hamdata.ini +@@ -256,16 +256,126 @@ + weapon_shouldweaponidle 92 + weapon_usedecrement 93 + + cstrike_restart 2 + cstrike_roundrespawn 84 + cstrike_item_candrop 63 + cstrike_item_getmaxspeed 78 + @end ++ ++@section cstrike mac ++ pev 4 ++ base 0x0 ++ ++ spawn 0 ++ precache 1 ++ keyvalue 3 ++ objectcaps 6 ++ activate 7 ++ setobjectcollisionbox 8 ++ classify 9 ++ deathnotice 10 ++ traceattack 11 ++ takedamage 12 ++ takehealth 13 ++ killed 14 ++ bloodcolor 15 ++ tracebleed 16 ++ istriggered 17 ++ mymonsterpointer 18 ++ mysquadmonsterpointer 19 ++ gettogglestate 20 ++ addpoints 21 ++ addpointstoteam 22 ++ addplayeritem 23 ++ removeplayeritem 24 ++ giveammo 25 ++ getdelay 26 ++ ismoving 27 ++ overridereset 28 ++ damagedecal 29 ++ settogglestate 30 ++ startsneaking 31 ++ stopsneaking 32 ++ oncontrols 33 ++ issneaking 34 ++ isalive 35 ++ isbspmodel 36 ++ reflectgauss 37 ++ hastarget 38 ++ isinworld 39 ++ isplayer 40 ++ isnetclient 41 ++ teamid 42 ++ getnexttarget 43 ++ think 44 ++ touch 45 ++ use 46 ++ blocked 47 ++ respawn 48 ++ updateowner 49 ++ fbecomeprone 50 ++ center 51 ++ eyeposition 52 ++ earposition 53 ++ bodytarget 54 ++ illumination 55 ++ fvisible 56 ++ fvecvisible 57 ++ ++ player_jump 76 ++ player_duck 77 ++ player_prethink 78 ++ player_postthink 79 ++ player_getgunposition 80 ++ player_shouldfadeondeath 66 ++ player_impulsecommands 83 ++ player_updateclientdata 82 ++ ++ item_addtoplayer 59 ++ item_addduplicate 60 ++ item_getiteminfo 61 ++ item_candeploy 62 ++ item_deploy 64 ++ item_canholster 66 ++ item_holster 67 ++ item_updateiteminfo 68 ++ item_preframe 69 ++ item_postframe 70 ++ item_drop 71 ++ item_kill 72 ++ item_attachtoplayer 73 ++ item_primaryammoindex 74 ++ item_secondaryammoindex 75 ++ item_updateclientdata 76 ++ item_getweaponptr 77 ++ item_itemslot 79 ++ ++ weapon_extractammo 80 ++ weapon_extractclipammo 81 ++ weapon_addweapon 82 ++ weapon_playemptysound 83 ++ weapon_resetemptysound 84 ++ weapon_sendweaponanim 85 ++ weapon_isusable 86 ++ weapon_primaryattack 87 ++ weapon_secondaryattack 88 ++ weapon_reload 89 ++ weapon_weaponidle 90 ++ weapon_retireweapon 91 ++ weapon_shouldweaponidle 92 ++ weapon_usedecrement 93 ++ ++ cstrike_restart 2 ++ cstrike_roundrespawn 84 ++ cstrike_item_candrop 63 ++ cstrike_item_getmaxspeed 78 ++@end ++ + @section dod linux + pev 0 + base 0x154 + + spawn 5 + precache 6 + keyvalue 7 + objectcaps 10 +@@ -1742,18 +1852,122 @@ + weapon_isusable 82 + weapon_primaryattack 83 + weapon_secondaryattack 84 + weapon_reload 85 + weapon_weaponidle 86 + weapon_retireweapon 87 + weapon_shouldweaponidle 88 + weapon_usedecrement 89 ++@end ++ ++@section valve mac ++ pev 4 ++ base 0x0 + ++ spawn 0 ++ precache 1 ++ keyvalue 2 ++ objectcaps 5 ++ activate 6 ++ setobjectcollisionbox 7 ++ classify 8 ++ deathnotice 9 ++ traceattack 10 ++ takedamage 11 ++ takehealth 12 ++ killed 13 ++ bloodcolor 14 ++ tracebleed 15 ++ istriggered 16 ++ mymonsterpointer 17 ++ mysquadmonsterpointer 18 ++ gettogglestate 19 ++ addpoints 20 ++ addpointstoteam 21 ++ addplayeritem 22 ++ removeplayeritem 23 ++ giveammo 24 ++ getdelay 25 ++ ismoving 26 ++ overridereset 27 ++ damagedecal 28 ++ settogglestate 29 ++ startsneaking 30 ++ stopsneaking 31 ++ oncontrols 32 ++ issneaking 33 ++ isalive 34 ++ isbspmodel 35 ++ reflectgauss 36 ++ hastarget 37 ++ isinworld 38 ++ isplayer 39 ++ isnetclient 40 ++ teamid 41 ++ getnexttarget 42 ++ think 43 ++ touch 44 ++ use 45 ++ blocked 46 ++ respawn 47 ++ updateowner 48 ++ fbecomeprone 49 ++ center 50 ++ eyeposition 51 ++ earposition 52 ++ bodytarget 53 ++ illumination 54 ++ fvisible 55 ++ fvecvisible 56 ++ ++ player_jump 125 ++ player_duck 126 ++ player_prethink 127 ++ player_postthink 128 ++ player_getgunposition 119 ++ player_shouldfadeondeath 60 ++ player_impulsecommands 130 ++ player_updateclientdata 129 ++ ++ item_addtoplayer 58 ++ item_addduplicate 59 ++ item_getiteminfo 60 ++ item_candeploy 61 ++ item_deploy 62 ++ item_canholster 63 ++ item_holster 64 ++ item_updateiteminfo 65 ++ item_preframe 66 ++ item_postframe 67 ++ item_drop 68 ++ item_kill 69 ++ item_attachtoplayer 70 ++ item_primaryammoindex 71 ++ item_secondaryammoindex 72 ++ item_updateclientdata 73 ++ item_getweaponptr 74 ++ item_itemslot 75 ++ ++ weapon_extractammo 76 ++ weapon_extractclipammo 77 ++ weapon_addweapon 78 ++ weapon_playemptysound 79 ++ weapon_resetemptysound 80 ++ weapon_sendweaponanim 81 ++ weapon_isusable 82 ++ weapon_primaryattack 83 ++ weapon_secondaryattack 84 ++ weapon_reload 85 ++ weapon_weaponidle 86 ++ weapon_retireweapon 87 ++ weapon_shouldweaponidle 88 ++ weapon_usedecrement 89 + @end ++ + ; Sven-Coop has no linux binaries. This makes disassembly much harder. + ; These offsets were contributed by ts2do + @section SvenCoop windows + pev 4 + base 0x0 + + spawn 0 + precache 1 +diff --git a/dlls/cstrike/cstrike/CstrikeHacks.cpp b/dlls/cstrike/cstrike/CstrikeHacks.cpp +--- a/dlls/cstrike/cstrike/CstrikeHacks.cpp ++++ b/dlls/cstrike/cstrike/CstrikeHacks.cpp +@@ -1,15 +1,19 @@ + #include +-#include ++#include + #include "cstrike.h" + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + #include + #define PAGE_EXECUTE_READWRITE PROT_READ|PROT_WRITE|PROT_EXEC ++ ++#if defined(__linux) ++#include ++#endif + #endif + + /* Utils */ + unsigned char *UTIL_CodeAlloc(size_t size); + void UTIL_CodeFree(unsigned char *addr); + void UTIL_MemProtect(void *addr, int length, int prot); + bool UTIL_GetLibraryOfAddress(void *memInBase, char *buffer, size_t maxlength); + +@@ -60,17 +64,17 @@ void CtrlDetour_ClientCommand(bool set) + const unsigned int DetourJmpBytes = 5; + static unsigned char *FullDetour = NULL; + + void *target = (void *)MDLL_ClientCommand; + unsigned char *paddr; + + if (!g_UseBotArgs) + { +-#if defined __linux__ ++#if defined(__linux__) || defined(__APPLE__) + /* Find the DLL */ + char dll[256]; + if (!UTIL_GetLibraryOfAddress(target, dll, sizeof(dll))) + { + return; + } + void *handle = dlopen(dll, RTLD_NOW); + if (!handle) +@@ -97,17 +101,17 @@ void CtrlDetour_ClientCommand(bool set) + /* Copy the main trampoline function */ + memcpy(FullDetour, DetourOps, DetourBytes); + + /* Copy our detour call into the trampoline */ + paddr = &FullDetour[DetourCallPos]; + *(unsigned long *)paddr = (unsigned long)Detour_ClientCommand - (unsigned long)(paddr + 4); + + /* Copy original bytes onto the end of the function */ +- memcpy(&FullDetour[DetourBytes], target, CS_DETOURCOPYBYTES_CLIENTCOMMAND); ++ memcpy(&FullDetour[DetourBytes], target, CS_DETOURCOPYBYTES_CLIENTCOMMAND); + + /* Patch and copy the final jmp */ + paddr = &FullDetour[DetourJmpPos]; + *paddr++ = DetourJmp; + *(unsigned long *)paddr = ((unsigned long)target + CS_DETOURCOPYBYTES_CLIENTCOMMAND) + - (unsigned long)(paddr + 4); + + /* Now overwrite the target function with our trampoline */ +@@ -137,47 +141,51 @@ int Detour_ClientCommand(edict_t *pEdict + } + return 0; + } + + unsigned char *UTIL_CodeAlloc(size_t size) + { + #if defined WIN32 + return (unsigned char *)VirtualAlloc(NULL, size, MEM_COMMIT, PAGE_EXECUTE_READWRITE); ++#elif defined __GNUC__ ++#if defined __APPLE__ ++ unsigned char *addr = (unsigned char *)valloc(size); + #else + unsigned char *addr = (unsigned char *)memalign(sysconf(_SC_PAGESIZE), size); ++#endif + mprotect(addr, size, PROT_READ|PROT_WRITE|PROT_EXEC); + return addr; + #endif + } + + void UTIL_CodeFree(unsigned char *addr) + { + #if defined WIN32 + VirtualFree(addr, 0, MEM_RELEASE); + #else + free(addr); + #endif + } + + void UTIL_MemProtect(void *addr, int length, int prot) + { +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + #define ALIGN(ar) ((long)ar & ~(sysconf(_SC_PAGESIZE)-1)) + void *addr2 = (void *)ALIGN(addr); + mprotect(addr2, sysconf(_SC_PAGESIZE), prot); + #else + DWORD old_prot; + VirtualProtect(addr, length, prot, &old_prot); + #endif + } + + bool UTIL_GetLibraryOfAddress(void *memInBase, char *buffer, size_t maxlength) + { +-#if defined __linux__ ++#if defined(__linux__) || defined(__APPLE__) + Dl_info info; + if (!dladdr(memInBase, &info)) + { + return false; + } + if (!info.dli_fbase || !info.dli_fname) + { + return false; +diff --git a/dlls/cstrike/cstrike/Makefile b/dlls/cstrike/cstrike/Makefile +--- a/dlls/cstrike/cstrike/Makefile ++++ b/dlls/cstrike/cstrike/Makefile +@@ -1,78 +1,123 @@ +-#(C)2004-2005 AMX Mod X Development Team ++# (C)2004-2013 AMX Mod X Development Team + # Makefile written by David "BAILOPAN" Anderson + +-HLSDK = ../../../../hlsdk ++########################################### ++### EDIT THESE PATHS FOR YOUR OWN SETUP ### ++########################################### ++ ++HLSDK = ../../../../hlsdk/multiplayer + MM_ROOT = ../../../../metamod/metamod + ++##################################### + ### EDIT BELOW FOR OTHER PROJECTS ### ++##################################### + +-OPT_FLAGS = -O2 -funroll-loops -s -pipe -fomit-frame-pointer -fno-strict-aliasing +-DEBUG_FLAGS = -g -ggdb3 +-CPP = gcc-4.1 +-NAME = cstrike +- +-BIN_SUFFIX_32 = amxx_i386.so +-BIN_SUFFIX_64 = amxx_amd64.so ++PROJECT = cstrike + + OBJECTS = sdk/amxxmodule.cpp CstrikePlayer.cpp cstrike.cpp CstrikeHacks.cpp + +-LINK = ++############################################## ++### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ### ++############################################## + +-INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \ +- -I$(MM_ROOT) -I$(HLSDK)/common -Isdk ++C_OPT_FLAGS = -DNDEBUG -O2 -funroll-loops -fomit-frame-pointer -pipe ++C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3 ++C_GCC4_FLAGS = -fvisibility=hidden ++CPP_GCC4_FLAGS = -fvisibility-inlines-hidden ++CPP = gcc ++CPP_OSX = clang + +-GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++LINK = + +-ifeq "$(GCC_VERSION)" "4" +- OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden ++INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \ ++ -I$(MM_ROOT) -Isdk ++ ++################################################ ++### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ### ++################################################ ++ ++OS := $(shell uname -s) ++ ++ifeq "$(OS)" "Darwin" ++ CPP = $(CPP_OSX) ++ LIB_EXT = dylib ++ LIB_SUFFIX = _amxx ++ CFLAGS += -DOSX ++ LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5 ++else ++ LIB_EXT = so ++ LIB_SUFFIX = _amxx_i386 ++ CFLAGS += -DLINUX ++ LINK += -shared + endif + ++LINK += -m32 -lm -ldl ++ ++CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror ++CPPFLAGS += -fno-exceptions -fno-rtti ++ ++BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT) ++ + ifeq "$(DEBUG)" "true" + BIN_DIR = Debug +- CFLAGS = $(DEBUG_FLAGS) ++ CFLAGS += $(C_DEBUG_FLAGS) + else + BIN_DIR = Release +- CFLAGS = $(OPT_FLAGS) ++ CFLAGS += $(C_OPT_FLAGS) ++ LINK += -s + endif + +-CFLAGS += -DNDEBUG -Wall -Wno-non-virtual-dtor -Werror -fno-exceptions -DHAVE_STDINT_H -fno-rtti -static-libgcc -m32 ++IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0") + +-ifeq "$(AMD64)" "true" +- BINARY = $(NAME)_$(BIN_SUFFIX_64) +- CFLAGS += -DPAWN_CELL_SIZE=64 -DHAVE_I64 -m64 ++ifeq "$(IS_CLANG)" "1" ++ CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/") ++ CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/") + else +- BINARY = $(NAME)_$(BIN_SUFFIX_32) +- CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 +- OPT_FLAGS += -march=i586 ++ CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++ CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3) + endif + +-OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++# Clang || GCC >= 4 ++ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1" ++ CFLAGS += $(C_GCC4_FLAGS) ++ CPPFLAGS += $(CPP_GCC4_FLAGS) ++endif ++ ++# Clang >= 3 || GCC >= 4.7 ++ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1" ++ CFLAGS += -Wno-delete-non-virtual-dtor ++endif ++ ++# OS is Linux and not using clang ++ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1" ++ LINK += -static-libgcc ++endif ++ ++OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++ ++# This will break if we include other Makefiles, but is fine for now. It allows ++# us to make a copy of this file that uses altered paths (ie. Makefile.mine) ++# or other changes without mucking up the original. ++MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) + + $(BIN_DIR)/%.o: %.cpp +- $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< ++ $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< + + all: + mkdir -p $(BIN_DIR) + mkdir -p $(BIN_DIR)/sdk +- $(MAKE) cstrike ++ $(MAKE) -f $(MAKEFILE_NAME) $(PROJECT) + +-amd64: +- $(MAKE) all AMD64=true ++$(PROJECT): $(OBJ_BIN) ++ $(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY) + +-cstrike: $(OBJ_LINUX) +- $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) +- +-debug: +- $(MAKE) all DEBUG=true ++debug: ++ $(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true + + default: all + + clean: +- rm -rf Release/sdk/*.o +- rm -rf Release/*.o +- rm -rf Release/$(NAME)_$(BIN_SUFFIX_32) +- rm -rf Release/$(NAME)_$(BIN_SUFFIX_64) +- rm -rf Debug/sdk/*.o +- rm -rf Debug/*.o +- rm -rf Debug/$(NAME)_$(BIN_SUFFIX_32) +- rm -rf Debug/$(NAME)_$(BIN_SUFFIX_64) ++ rm -rf $(BIN_DIR)/*.o ++ rm -rf $(BIN_DIR)/sdk/*.o ++ rm -f $(BIN_DIR)/$(BINARY) ++ +diff --git a/dlls/cstrike/cstrike/cstrike.cpp b/dlls/cstrike/cstrike/cstrike.cpp +--- a/dlls/cstrike/cstrike/cstrike.cpp ++++ b/dlls/cstrike/cstrike/cstrike.cpp +@@ -44,17 +44,17 @@ bool UTIL_IsPlayer(AMX* amx, edict_t* pP + bool player = false; + + if (strcmp(STRING(pPlayer->v.classname), "player") == 0) + player = true; + + return player; + } + +-void UTIL_TextMsg_Generic(edict_t* pPlayer, char* message) ++void UTIL_TextMsg_Generic(edict_t* pPlayer, const char* message) + { + MESSAGE_BEGIN(MSG_ONE, GET_USER_MSG_ID(PLID, "TextMsg", NULL), NULL, pPlayer); + WRITE_BYTE(HUD_PRINTCENTER); // 1 = console, 2 = console, 3 = chat, 4 = center + WRITE_STRING(message); + MESSAGE_END(); + /* + The byte above seems to use these: + #define HUD_PRINTNOTIFY 1 +@@ -741,17 +741,17 @@ static cell AMX_NATIVE_CALL cs_set_user_ + if (params[i + 3] != -1) + { + colour[i] = params[i + 3]; + } + } + + pPlayer->v.body = 1; + +- char* icon; ++ const char* icon; + if (params[6] != -1) + { + int len; + icon = MF_GetAmxString(amx, params[6], 1, &len); + } else { + icon = "defuser"; + } + +diff --git a/dlls/cstrike/cstrike/cstrike.h b/dlls/cstrike/cstrike/cstrike.h +--- a/dlls/cstrike/cstrike/cstrike.h ++++ b/dlls/cstrike/cstrike/cstrike.h +@@ -39,25 +39,25 @@ + #include + #include "CstrikePlayer.h" + + #define GETINFOKEYBUFFER (*g_engfuncs.pfnGetInfoKeyBuffer) + #define SETCLIENTKEYVALUE (*g_engfuncs.pfnSetClientKeyValue) + #define GETCLIENTKEYVALUE (*g_engfuncs.pfnInfoKeyValue) + #define CREATENAMEDENTITY (*g_engfuncs.pfnCreateNamedEntity) + +-#if defined __linux__ ++#if defined(__linux__) || defined (__APPLE__) + #define EXTRAOFFSET 5 // offsets 5 higher in Linux builds + #define EXTRAOFFSET_WEAPONS 4 // weapon offsets are obviously only 4 steps higher on Linux! + #define ACTUAL_EXTRA_OFFSET 20 // actual, byte-addressable offset + #else + #define EXTRAOFFSET 0 // no change in Windows builds + #define EXTRAOFFSET_WEAPONS 0 + #define ACTUAL_EXTRA_OFFSET 0 +-#endif // defined __linux__ ++#endif // defined(__linux__) || defined(__APPLE__) + /* + Offset history: + 041029: + Confirmed (pretty much) ALL offsets for 32 bit Windows, 32 bit Linux and amd64 (yes that's all of them). + Found out that weapon offsets are only +4 higher on Linux. + Also backpack ammo offsets were all obviously 5 steps too high since unknown time... + + */ +@@ -153,16 +153,18 @@ + #define OFFSET_SILENCER_FIREMODE 88 + EXTRAOFFSET // +14 + // "hostage_entity" entities + #define OFFSET_HOSTAGEFOLLOW 51 + EXTRAOFFSET // +21, long=51, int=107! (must use the long* offset because pointers on amd64 are stored the size of longs, 8 bytes, instead of the usual int 4 bytes.) + #define OFFSET_HOSTAGEID 516 + EXTRAOFFSET // +29 + #endif + + #if defined __linux__ + #define CS_DETOURCOPYBYTES_CLIENTCOMMAND 6 ++#elif defined __APPLE__ ++#define CS_DETOURCOPYBYTES_CLIENTCOMMAND 5 + #else + #define CS_DETOURCOPYBYTES_CLIENTCOMMAND 6 + #define CS_CLICMD_OFFS_USEBOTARGS 2 + #define CS_CLICMD_OFFS_BOTARGS 22 + #endif + + + // Ids of weapons in CS +diff --git a/dlls/cstrike/cstrike/sdk/amxxmodule.cpp b/dlls/cstrike/cstrike/sdk/amxxmodule.cpp +--- a/dlls/cstrike/cstrike/sdk/amxxmodule.cpp ++++ b/dlls/cstrike/cstrike/sdk/amxxmodule.cpp +@@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta + GetEntityAPI2, + GetEntityAPI2_Post, + GetNewDLLFunctions, + GetNewDLLFunctions_Post, + GetEngineFunctions, + GetEngineFunctions_Post + }; + +-C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) ++C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) + { + if ((int) CVAR_GET_FLOAT("developer") != 0) + UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", + Plugin_info.logtag, ifvers, Plugin_info.ifvers); + + // Check for valid pMetaUtilFuncs before we continue. + if(!pMetaUtilFuncs) { + UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag); +@@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM + #ifdef FN_META_DETACH + FN_META_DETACH(); + #endif // FN_META_DETACH + return TRUE; + } + + + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + // linux prototype + C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) { + + #else + #ifdef _MSC_VER + // MSVC: Simulate __stdcall calling convention + C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) + { +@@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... ) + return string; + } + + + //========================================================= + // UTIL_LogPrintf - Prints a logged message to console. + // Preceded by LOG: ( timestamp ) < message > + //========================================================= +-void UTIL_LogPrintf( char *fmt, ... ) ++void UTIL_LogPrintf( const char *fmt, ... ) + { + va_list argptr; + static char string[1024]; + + va_start ( argptr, fmt ); + vsnprintf ( string, sizeof(string), fmt, argptr ); + va_end ( argptr ); + +diff --git a/dlls/cstrike/cstrike/sdk/amxxmodule.h b/dlls/cstrike/cstrike/sdk/amxxmodule.h +--- a/dlls/cstrike/cstrike/sdk/amxxmodule.h ++++ b/dlls/cstrike/cstrike/sdk/amxxmodule.h +@@ -15,21 +15,26 @@ + #ifdef USE_METAMOD + #include + #include + #include "osdep.h" + #endif // #ifdef USE_METAMOD + + // DLL Export + #undef DLLEXPORT +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + #define DLLEXPORT __declspec(dllexport) + #else + #define DLLEXPORT __attribute__((visibility("default"))) ++#endif ++ ++#if defined(__linux__) && !defined(LINUX) + #define LINUX ++#elif defined(__APPLE__) && !defined(OSX) ++#define OSX + #endif + + #undef C_DLLEXPORT + #define C_DLLEXPORT extern "C" DLLEXPORT + + // ***** AMXX stuff ***** + + // module interface version was 1 +@@ -61,17 +66,17 @@ struct amxx_module_info_s + + // *** Small stuff *** + // The next section is copied from the amx.h file + // Copyright (c) ITB CompuPhase, 1997-2005 + + #if defined HAVE_STDINT_H + #include + #else +- #if defined __LCC__ || defined __DMC__ || defined LINUX ++ #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__ + #if defined HAVE_INTTYPES_H + #include + #else + #include + #endif + #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L + /* The ISO C99 defines the int16_t and int_32t types. If the compiler got + * here, these types are probably undefined. +@@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t + + #if defined __GNUC__ + #define PACKED __attribute__((packed)) + #else + #define PACKED + #endif + + #if !defined AMX_NO_ALIGN +- #if defined LINUX || defined __FreeBSD__ ++ #if defined LINUX || defined __FreeBSD__ || defined __APPLE__ + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #elif defined MACOS && defined __MWERKS__ + #pragma options align=mac68k + #else + #pragma pack(push) + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #if defined __TURBOC__ + #pragma option -a- /* "pack" pragma for older Borland compilers */ +@@ -390,28 +395,28 @@ enum { + AMX_ERR_INIT, /* AMX not initialized (or doubly initialized) */ + AMX_ERR_USERDATA, /* unable to set user data field (table full) */ + AMX_ERR_INIT_JIT, /* cannot initialize the JIT */ + AMX_ERR_PARAMS, /* parameter error */ + AMX_ERR_DOMAIN, /* domain error, expression result does not fit in range */ + }; + + #if !defined AMX_NO_ALIGN +- #if defined __linux__ ++ #if defined(__linux__) || defined(__APPLE__) + #pragma pack() /* reset default packing */ + #else + #pragma pack(pop) /* reset previous packing */ + #endif + #endif + + + // ***** declare functions ***** + + #ifdef USE_METAMOD +-void UTIL_LogPrintf( char *fmt, ... ); ++void UTIL_LogPrintf( const char *fmt, ... ); + void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage); + short FixedSigned16( float value, float scale ); + unsigned short FixedUnsigned16( float value, float scale ); + + #ifdef FN_META_QUERY + void FN_META_QUERY(void); + #endif // FN_META_QUERY + +@@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict + + #ifdef FN_AllowLagCompensation_Post + int FN_AllowLagCompensation_Post(void); + #endif // FN_AllowLagCompensation_Post + + + + #ifdef FN_PrecacheModel +-int FN_PrecacheModel(char *s); ++int FN_PrecacheModel(const char *s); + #endif // FN_PrecacheModel + + #ifdef FN_PrecacheSound +-int FN_PrecacheSound(char *s); ++int FN_PrecacheSound(const char *s); + #endif // FN_PrecacheSound + + #ifdef FN_SetModel + void FN_SetModel(edict_t *e, const char *m); + #endif // FN_SetModel + + #ifdef FN_ModelIndex + int FN_ModelIndex(const char *m); +@@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m); + int FN_ModelFrames(int modelIndex); + #endif // FN_ModelFrames + + #ifdef FN_SetSize + void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize + + #ifdef FN_ChangeLevel +-void FN_ChangeLevel(char *s1, char *s2); ++void FN_ChangeLevel(const char *s1, const char *s2); + #endif // FN_ChangeLevel + + #ifdef FN_GetSpawnParms + void FN_GetSpawnParms(edict_t *ent); + #endif // FN_GetSpawnParms + + #ifdef FN_SaveSpawnParms + void FN_SaveSpawnParms(edict_t *ent); +@@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien + int FN_NumberOfEntities(void); + #endif // FN_NumberOfEntities + + #ifdef FN_GetInfoKeyBuffer + char *FN_GetInfoKeyBuffer(edict_t *e); + #endif // FN_GetInfoKeyBuffer + + #ifdef FN_InfoKeyValue +-char *FN_InfoKeyValue(char *infobuffer, char *key); ++char *FN_InfoKeyValue(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue + + #ifdef FN_SetKeyValue +-void FN_SetKeyValue(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue + + #ifdef FN_SetClientKeyValue +-void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue + + #ifdef FN_IsMapValid +-int FN_IsMapValid(char *filename); ++int FN_IsMapValid(const char *filename); + #endif // FN_IsMapValid + + #ifdef FN_StaticDecal + void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal + + #ifdef FN_PrecacheGeneric +-int FN_PrecacheGeneric(char *s); ++int FN_PrecacheGeneric(const char *s); + #endif // FN_PrecacheGeneric + + #ifdef FN_GetPlayerUserId + int FN_GetPlayerUserId(edict_t *e ); + #endif // FN_GetPlayerUserId + + #ifdef FN_BuildSoundMsg + void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t * + #endif // FN_GetPlayerAuthId + + + + + + + #ifdef FN_PrecacheModel_Post +-int FN_PrecacheModel_Post(char *s); ++int FN_PrecacheModel_Post(const char *s); + #endif // FN_PrecacheModel_Post + + #ifdef FN_PrecacheSound_Post +-int FN_PrecacheSound_Post(char *s); ++int FN_PrecacheSound_Post(const char *s); + #endif // FN_PrecacheSound_Post + + #ifdef FN_SetModel_Post + void FN_SetModel_Post(edict_t *e, const char *m); + #endif // FN_SetModel_Post + + #ifdef FN_ModelIndex_Post + int FN_ModelIndex_Post(const char *m); +@@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m); + int FN_ModelFrames_Post(int modelIndex); + #endif // FN_ModelFrames_Post + + #ifdef FN_SetSize_Post + void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize_Post + + #ifdef FN_ChangeLevel_Post +-void FN_ChangeLevel_Post(char *s1, char *s2); ++void FN_ChangeLevel_Post(const char *s1, const char *s2); + #endif // FN_ChangeLevel_Post + + #ifdef FN_GetSpawnParms_Post + void FN_GetSpawnParms_Post(edict_t *ent); + #endif // FN_GetSpawnParms_Post + + #ifdef FN_SaveSpawnParms_Post + void FN_SaveSpawnParms_Post(edict_t *ent); +@@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake + int FN_NumberOfEntities_Post(void); + #endif // FN_NumberOfEntities_Post + + #ifdef FN_GetInfoKeyBuffer_Post + char *FN_GetInfoKeyBuffer_Post(edict_t *e); + #endif // FN_GetInfoKeyBuffer_Post + + #ifdef FN_InfoKeyValue_Post +-char *FN_InfoKeyValue_Post(char *infobuffer, char *key); ++char *FN_InfoKeyValue_Post(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue_Post + + #ifdef FN_SetKeyValue_Post +-void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue_Post + + #ifdef FN_SetClientKeyValue_Post +-void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue_Post + + #ifdef FN_IsMapValid_Post +-int FN_IsMapValid_Post(char *filename); ++int FN_IsMapValid_Post(const char *filename); + #endif // FN_IsMapValid_Post + + #ifdef FN_StaticDecal_Post + void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal_Post + + #ifdef FN_PrecacheGeneric_Post +-int FN_PrecacheGeneric_Post(char *s); ++int FN_PrecacheGeneric_Post(const char *s); + #endif // FN_PrecacheGeneric_Post + + #ifdef FN_GetPlayerUserId_Post + int FN_GetPlayerUserId_Post(edict_t *e ); + #endif // FN_GetPlayerUserId_Post + + #ifdef FN_BuildSoundMsg_Post + void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -2111,17 +2116,17 @@ enum LibType + + typedef void (*AUTHORIZEFUNC)(int player, const char *authstring); + + typedef int (*PFN_ADD_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef int (*PFN_ADD_NEW_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef char * (*PFN_BUILD_PATHNAME) (const char * /*format*/, ...); + typedef char * (*PFN_BUILD_PATHNAME_R) (char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...); + typedef cell * (*PFN_GET_AMXADDR) (AMX * /*amx*/, cell /*offset*/); +-typedef void (*PFN_PRINT_SRVCONSOLE) (char * /*format*/, ...); ++typedef void (*PFN_PRINT_SRVCONSOLE) (const char * /*format*/, ...); + typedef const char * (*PFN_GET_MODNAME) (void); + typedef const char * (*PFN_GET_AMXSCRIPTNAME) (int /*id*/); + typedef AMX * (*PFN_GET_AMXSCRIPT) (int /*id*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYAMX) (const AMX * /*amx*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYNAME) (const char * /*name*/); + typedef int (*PFN_SET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */); + typedef char * (*PFN_GET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/); + typedef int (*PFN_GET_AMXSTRINGLEN) (const cell *ptr); +@@ -2170,18 +2175,18 @@ typedef void * (*PFN_ALLOCATOR) (co + typedef void * (*PFN_REALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ ); + typedef void (*PFN_DEALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const void* /*addr*/ ); + #endif + typedef int (*PFN_AMX_EXEC) (AMX* /*amx*/, cell* /*return val*/, int /*index*/); + typedef int (*PFN_AMX_EXECV) (AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/); + typedef int (*PFN_AMX_ALLOT) (AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/); +-typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); +-typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); + typedef int (*PFN_LOAD_AMXSCRIPT) (AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */); + typedef int (*PFN_UNLOAD_AMXSCRIPT) (AMX* /*amx*/,void** /*code*/); + typedef cell (*PFN_REAL_TO_CELL) (REAL /*x*/); + typedef REAL (*PFN_CELL_TO_REAL) (cell /*x*/); + typedef int (*PFN_REGISTER_SPFORWARD) (AMX * /*amx*/, int /*func*/, ... /*params*/); + typedef int (*PFN_REGISTER_SPFORWARD_BYNAME) (AMX * /*amx*/, const char * /*funcName*/, ... /*params*/); + typedef void (*PFN_UNREGISTER_SPFORWARD) (int /*id*/); + typedef void (*PFN_MERGEDEFINITION_FILE) (const char * /*filename*/); +diff --git a/dlls/cstrike/csx/Makefile b/dlls/cstrike/csx/Makefile +--- a/dlls/cstrike/csx/Makefile ++++ b/dlls/cstrike/csx/Makefile +@@ -1,78 +1,123 @@ +-#(C)2004-2005 AMX Mod X Development Team ++# (C)2004-2013 AMX Mod X Development Team + # Makefile written by David "BAILOPAN" Anderson + +-HLSDK = ../../../../hlsdk ++########################################### ++### EDIT THESE PATHS FOR YOUR OWN SETUP ### ++########################################### ++ ++HLSDK = ../../../../hlsdk/multiplayer + MM_ROOT = ../../../../metamod/metamod + ++##################################### + ### EDIT BELOW FOR OTHER PROJECTS ### ++##################################### + +-OPT_FLAGS = -O3 -funroll-loops -s -pipe -fomit-frame-pointer -fno-strict-aliasing +-DEBUG_FLAGS = -g -ggdb3 +-CPP = gcc-4.1 +-NAME = csx +- +-BIN_SUFFIX_32 = amxx_i386.so +-BIN_SUFFIX_64 = amxx_amd64.so ++PROJECT = csx + + OBJECTS = sdk/amxxmodule.cpp CRank.cpp CMisc.cpp meta_api.cpp rank.cpp usermsg.cpp + +-LINK = ++############################################## ++### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ### ++############################################## + +-INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \ +- -I$(MM_ROOT) -I$(HLSDK)/common -Isdk ++C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -fomit-frame-pointer -pipe ++C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3 ++C_GCC4_FLAGS = -fvisibility=hidden ++CPP_GCC4_FLAGS = -fvisibility-inlines-hidden ++CPP = gcc ++CPP_OSX = clang + +-GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++LINK = + +-ifeq "$(GCC_VERSION)" "4" +- OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden ++INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \ ++ -I$(MM_ROOT) -Isdk ++ ++################################################ ++### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ### ++################################################ ++ ++OS := $(shell uname -s) ++ ++ifeq "$(OS)" "Darwin" ++ CPP = $(CPP_OSX) ++ LIB_EXT = dylib ++ LIB_SUFFIX = _amxx ++ CFLAGS += -DOSX ++ LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5 ++else ++ LIB_EXT = so ++ LIB_SUFFIX = _amxx_i386 ++ CFLAGS += -DLINUX ++ LINK += -shared + endif + ++LINK += -m32 -lm -ldl ++ ++CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror ++CPPFLAGS += -fno-exceptions -fno-rtti ++ ++BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT) ++ + ifeq "$(DEBUG)" "true" + BIN_DIR = Debug +- CFLAGS = $(DEBUG_FLAGS) ++ CFLAGS += $(C_DEBUG_FLAGS) + else + BIN_DIR = Release +- CFLAGS = $(OPT_FLAGS) ++ CFLAGS += $(C_OPT_FLAGS) ++ LINK += -s + endif + +-CFLAGS += -DNDEBUG -Wall -Wno-non-virtual-dtor -Werror -fno-exceptions -DHAVE_STDINT_H -static-libgcc -fno-rtti -m32 ++IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0") + +-ifeq "$(AMD64)" "true" +- BINARY = $(NAME)_$(BIN_SUFFIX_64) +- CFLAGS += -DPAWN_CELL_SIZE=64 -DHAVE_I64 -m64 ++ifeq "$(IS_CLANG)" "1" ++ CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/") ++ CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/") + else +- BINARY = $(NAME)_$(BIN_SUFFIX_32) +- CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 +- OPT_FLAGS += -march=i586 ++ CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++ CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3) + endif + +-OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++# Clang || GCC >= 4 ++ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1" ++ CFLAGS += $(C_GCC4_FLAGS) ++ CPPFLAGS += $(CPP_GCC4_FLAGS) ++endif ++ ++# Clang >= 3 || GCC >= 4.7 ++ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1" ++ CFLAGS += -Wno-delete-non-virtual-dtor ++endif ++ ++# OS is Linux and not using clang ++ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1" ++ LINK += -static-libgcc ++endif ++ ++OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++ ++# This will break if we include other Makefiles, but is fine for now. It allows ++# us to make a copy of this file that uses altered paths (ie. Makefile.mine) ++# or other changes without mucking up the original. ++MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) + + $(BIN_DIR)/%.o: %.cpp +- $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< ++ $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< + + all: + mkdir -p $(BIN_DIR) + mkdir -p $(BIN_DIR)/sdk +- $(MAKE) csx ++ $(MAKE) -f $(MAKEFILE_NAME) $(PROJECT) + +-amd64: +- $(MAKE) all AMD64=true ++$(PROJECT): $(OBJ_BIN) ++ $(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY) + +-csx: $(OBJ_LINUX) +- $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) +- +-debug: +- $(MAKE) all DEBUG=true ++debug: ++ $(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true + + default: all + + clean: +- rm -rf Release/sdk/*.o +- rm -rf Release/*.o +- rm -rf Release/$(NAME)_$(BIN_SUFFIX_32) +- rm -rf Release/$(NAME)_$(BIN_SUFFIX_64) +- rm -rf Debug/sdk/*.o +- rm -rf Debug/*.o +- rm -rf Debug/$(NAME)_$(BIN_SUFFIX_32) +- rm -rf Debug/$(NAME)_$(BIN_SUFFIX_64) ++ rm -rf $(BIN_DIR)/*.o ++ rm -rf $(BIN_DIR)/sdk/*.o ++ rm -f $(BIN_DIR)/$(BINARY) ++ +diff --git a/dlls/cstrike/csx/sdk/amxxmodule.cpp b/dlls/cstrike/csx/sdk/amxxmodule.cpp +--- a/dlls/cstrike/csx/sdk/amxxmodule.cpp ++++ b/dlls/cstrike/csx/sdk/amxxmodule.cpp +@@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta + GetEntityAPI2, + GetEntityAPI2_Post, + GetNewDLLFunctions, + GetNewDLLFunctions_Post, + GetEngineFunctions, + GetEngineFunctions_Post + }; + +-C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) ++C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) + { + if ((int) CVAR_GET_FLOAT("developer") != 0) + UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", + Plugin_info.logtag, ifvers, Plugin_info.ifvers); + + // Check for valid pMetaUtilFuncs before we continue. + if(!pMetaUtilFuncs) { + UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag); +@@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM + #ifdef FN_META_DETACH + FN_META_DETACH(); + #endif // FN_META_DETACH + return TRUE; + } + + + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + // linux prototype + C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) { + + #else + #ifdef _MSC_VER + // MSVC: Simulate __stdcall calling convention + C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) + { +@@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... ) + return string; + } + + + //========================================================= + // UTIL_LogPrintf - Prints a logged message to console. + // Preceded by LOG: ( timestamp ) < message > + //========================================================= +-void UTIL_LogPrintf( char *fmt, ... ) ++void UTIL_LogPrintf( const char *fmt, ... ) + { + va_list argptr; + static char string[1024]; + + va_start ( argptr, fmt ); + vsnprintf ( string, sizeof(string), fmt, argptr ); + va_end ( argptr ); + +diff --git a/dlls/cstrike/csx/sdk/amxxmodule.h b/dlls/cstrike/csx/sdk/amxxmodule.h +--- a/dlls/cstrike/csx/sdk/amxxmodule.h ++++ b/dlls/cstrike/csx/sdk/amxxmodule.h +@@ -15,21 +15,26 @@ + #ifdef USE_METAMOD + #include + #include + #include "osdep.h" + #endif // #ifdef USE_METAMOD + + // DLL Export + #undef DLLEXPORT +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + #define DLLEXPORT __declspec(dllexport) + #else + #define DLLEXPORT __attribute__((visibility("default"))) ++#endif ++ ++#if defined(__linux__) && !defined(LINUX) + #define LINUX ++#elif defined(__APPLE__) && !defined(OSX) ++#define OSX + #endif + + #undef C_DLLEXPORT + #define C_DLLEXPORT extern "C" DLLEXPORT + + // ***** AMXX stuff ***** + + // module interface version was 1 +@@ -61,17 +66,17 @@ struct amxx_module_info_s + + // *** Small stuff *** + // The next section is copied from the amx.h file + // Copyright (c) ITB CompuPhase, 1997-2005 + + #if defined HAVE_STDINT_H + #include + #else +- #if defined __LCC__ || defined __DMC__ || defined LINUX ++ #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__ + #if defined HAVE_INTTYPES_H + #include + #else + #include + #endif + #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L + /* The ISO C99 defines the int16_t and int_32t types. If the compiler got + * here, these types are probably undefined. +@@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t + + #if defined __GNUC__ + #define PACKED __attribute__((packed)) + #else + #define PACKED + #endif + + #if !defined AMX_NO_ALIGN +- #if defined LINUX || defined __FreeBSD__ ++ #if defined LINUX || defined __FreeBSD__ || defined __APPLE__ + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #elif defined MACOS && defined __MWERKS__ + #pragma options align=mac68k + #else + #pragma pack(push) + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #if defined __TURBOC__ + #pragma option -a- /* "pack" pragma for older Borland compilers */ +@@ -390,28 +395,28 @@ enum { + AMX_ERR_INIT, /* AMX not initialized (or doubly initialized) */ + AMX_ERR_USERDATA, /* unable to set user data field (table full) */ + AMX_ERR_INIT_JIT, /* cannot initialize the JIT */ + AMX_ERR_PARAMS, /* parameter error */ + AMX_ERR_DOMAIN, /* domain error, expression result does not fit in range */ + }; + + #if !defined AMX_NO_ALIGN +- #if defined __linux__ ++ #if defined(__linux__) || defined(__APPLE__) + #pragma pack() /* reset default packing */ + #else + #pragma pack(pop) /* reset previous packing */ + #endif + #endif + + + // ***** declare functions ***** + + #ifdef USE_METAMOD +-void UTIL_LogPrintf( char *fmt, ... ); ++void UTIL_LogPrintf( const char *fmt, ... ); + void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage); + short FixedSigned16( float value, float scale ); + unsigned short FixedUnsigned16( float value, float scale ); + + #ifdef FN_META_QUERY + void FN_META_QUERY(void); + #endif // FN_META_QUERY + +@@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict + + #ifdef FN_AllowLagCompensation_Post + int FN_AllowLagCompensation_Post(void); + #endif // FN_AllowLagCompensation_Post + + + + #ifdef FN_PrecacheModel +-int FN_PrecacheModel(char *s); ++int FN_PrecacheModel(const char *s); + #endif // FN_PrecacheModel + + #ifdef FN_PrecacheSound +-int FN_PrecacheSound(char *s); ++int FN_PrecacheSound(const char *s); + #endif // FN_PrecacheSound + + #ifdef FN_SetModel + void FN_SetModel(edict_t *e, const char *m); + #endif // FN_SetModel + + #ifdef FN_ModelIndex + int FN_ModelIndex(const char *m); +@@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m); + int FN_ModelFrames(int modelIndex); + #endif // FN_ModelFrames + + #ifdef FN_SetSize + void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize + + #ifdef FN_ChangeLevel +-void FN_ChangeLevel(char *s1, char *s2); ++void FN_ChangeLevel(const char *s1, const char *s2); + #endif // FN_ChangeLevel + + #ifdef FN_GetSpawnParms + void FN_GetSpawnParms(edict_t *ent); + #endif // FN_GetSpawnParms + + #ifdef FN_SaveSpawnParms + void FN_SaveSpawnParms(edict_t *ent); +@@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien + int FN_NumberOfEntities(void); + #endif // FN_NumberOfEntities + + #ifdef FN_GetInfoKeyBuffer + char *FN_GetInfoKeyBuffer(edict_t *e); + #endif // FN_GetInfoKeyBuffer + + #ifdef FN_InfoKeyValue +-char *FN_InfoKeyValue(char *infobuffer, char *key); ++char *FN_InfoKeyValue(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue + + #ifdef FN_SetKeyValue +-void FN_SetKeyValue(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue + + #ifdef FN_SetClientKeyValue +-void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue + + #ifdef FN_IsMapValid +-int FN_IsMapValid(char *filename); ++int FN_IsMapValid(const char *filename); + #endif // FN_IsMapValid + + #ifdef FN_StaticDecal + void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal + + #ifdef FN_PrecacheGeneric +-int FN_PrecacheGeneric(char *s); ++int FN_PrecacheGeneric(const char *s); + #endif // FN_PrecacheGeneric + + #ifdef FN_GetPlayerUserId + int FN_GetPlayerUserId(edict_t *e ); + #endif // FN_GetPlayerUserId + + #ifdef FN_BuildSoundMsg + void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t * + #endif // FN_GetPlayerAuthId + + + + + + + #ifdef FN_PrecacheModel_Post +-int FN_PrecacheModel_Post(char *s); ++int FN_PrecacheModel_Post(const char *s); + #endif // FN_PrecacheModel_Post + + #ifdef FN_PrecacheSound_Post +-int FN_PrecacheSound_Post(char *s); ++int FN_PrecacheSound_Post(const char *s); + #endif // FN_PrecacheSound_Post + + #ifdef FN_SetModel_Post + void FN_SetModel_Post(edict_t *e, const char *m); + #endif // FN_SetModel_Post + + #ifdef FN_ModelIndex_Post + int FN_ModelIndex_Post(const char *m); +@@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m); + int FN_ModelFrames_Post(int modelIndex); + #endif // FN_ModelFrames_Post + + #ifdef FN_SetSize_Post + void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize_Post + + #ifdef FN_ChangeLevel_Post +-void FN_ChangeLevel_Post(char *s1, char *s2); ++void FN_ChangeLevel_Post(const char *s1, const char *s2); + #endif // FN_ChangeLevel_Post + + #ifdef FN_GetSpawnParms_Post + void FN_GetSpawnParms_Post(edict_t *ent); + #endif // FN_GetSpawnParms_Post + + #ifdef FN_SaveSpawnParms_Post + void FN_SaveSpawnParms_Post(edict_t *ent); +@@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake + int FN_NumberOfEntities_Post(void); + #endif // FN_NumberOfEntities_Post + + #ifdef FN_GetInfoKeyBuffer_Post + char *FN_GetInfoKeyBuffer_Post(edict_t *e); + #endif // FN_GetInfoKeyBuffer_Post + + #ifdef FN_InfoKeyValue_Post +-char *FN_InfoKeyValue_Post(char *infobuffer, char *key); ++char *FN_InfoKeyValue_Post(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue_Post + + #ifdef FN_SetKeyValue_Post +-void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue_Post + + #ifdef FN_SetClientKeyValue_Post +-void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue_Post + + #ifdef FN_IsMapValid_Post +-int FN_IsMapValid_Post(char *filename); ++int FN_IsMapValid_Post(const char *filename); + #endif // FN_IsMapValid_Post + + #ifdef FN_StaticDecal_Post + void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal_Post + + #ifdef FN_PrecacheGeneric_Post +-int FN_PrecacheGeneric_Post(char *s); ++int FN_PrecacheGeneric_Post(const char *s); + #endif // FN_PrecacheGeneric_Post + + #ifdef FN_GetPlayerUserId_Post + int FN_GetPlayerUserId_Post(edict_t *e ); + #endif // FN_GetPlayerUserId_Post + + #ifdef FN_BuildSoundMsg_Post + void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -2111,17 +2116,17 @@ enum LibType + + typedef void (*AUTHORIZEFUNC)(int player, const char *authstring); + + typedef int (*PFN_ADD_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef int (*PFN_ADD_NEW_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef char * (*PFN_BUILD_PATHNAME) (const char * /*format*/, ...); + typedef char * (*PFN_BUILD_PATHNAME_R) (char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...); + typedef cell * (*PFN_GET_AMXADDR) (AMX * /*amx*/, cell /*offset*/); +-typedef void (*PFN_PRINT_SRVCONSOLE) (char * /*format*/, ...); ++typedef void (*PFN_PRINT_SRVCONSOLE) (const char * /*format*/, ...); + typedef const char * (*PFN_GET_MODNAME) (void); + typedef const char * (*PFN_GET_AMXSCRIPTNAME) (int /*id*/); + typedef AMX * (*PFN_GET_AMXSCRIPT) (int /*id*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYAMX) (const AMX * /*amx*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYNAME) (const char * /*name*/); + typedef int (*PFN_SET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */); + typedef char * (*PFN_GET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/); + typedef int (*PFN_GET_AMXSTRINGLEN) (const cell *ptr); +@@ -2170,18 +2175,18 @@ typedef void * (*PFN_ALLOCATOR) (co + typedef void * (*PFN_REALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ ); + typedef void (*PFN_DEALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const void* /*addr*/ ); + #endif + typedef int (*PFN_AMX_EXEC) (AMX* /*amx*/, cell* /*return val*/, int /*index*/); + typedef int (*PFN_AMX_EXECV) (AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/); + typedef int (*PFN_AMX_ALLOT) (AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/); +-typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); +-typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); + typedef int (*PFN_LOAD_AMXSCRIPT) (AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */); + typedef int (*PFN_UNLOAD_AMXSCRIPT) (AMX* /*amx*/,void** /*code*/); + typedef cell (*PFN_REAL_TO_CELL) (REAL /*x*/); + typedef REAL (*PFN_CELL_TO_REAL) (cell /*x*/); + typedef int (*PFN_REGISTER_SPFORWARD) (AMX * /*amx*/, int /*func*/, ... /*params*/); + typedef int (*PFN_REGISTER_SPFORWARD_BYNAME) (AMX * /*amx*/, const char * /*funcName*/, ... /*params*/); + typedef void (*PFN_UNREGISTER_SPFORWARD) (int /*id*/); + typedef void (*PFN_MERGEDEFINITION_FILE) (const char * /*filename*/); +diff --git a/dlls/dod/dodfun/CMisc.cpp b/dlls/dod/dodfun/CMisc.cpp +--- a/dlls/dod/dodfun/CMisc.cpp ++++ b/dlls/dod/dodfun/CMisc.cpp +@@ -62,17 +62,17 @@ void CPlayer::Init( int pi, edict_t* pe + void CPlayer::killPlayer(){ + pEdict->v.dmg_inflictor = NULL; + pEdict->v.health = 0; + pEdict->v.deadflag = DEAD_RESPAWNABLE; + pEdict->v.weaponmodel = 0; + pEdict->v.weapons = 0; + } + +-void CPlayer::setTeamName( char *szName ){ ++void CPlayer::setTeamName( const char *szName ){ + + for (int i=0;i<16;i++){ + *( (char*)pEdict->pvPrivateData + STEAM_PDOFFSET_TEAMNAME + i ) = szName[i]; + } + } + + void CPlayer::getTeamName(char * szName ){ + for (int i=0;i<16;i++){ +diff --git a/dlls/dod/dodfun/CMisc.h b/dlls/dod/dodfun/CMisc.h +--- a/dlls/dod/dodfun/CMisc.h ++++ b/dlls/dod/dodfun/CMisc.h +@@ -27,17 +27,17 @@ + * you do not wish to do so, delete this exception statement from your + * version. + * + */ + + #ifndef CMISC_H + #define CMISC_H + +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + #define LINUXOFFSET 0 + #else + #define LINUXOFFSET 5 + #endif + + #define DODFUN_VERSION "1.0.2" + + // DoD Player +@@ -48,17 +48,17 @@ + #define STEAM_PDOFFSET_RCLASS 367 + LINUXOFFSET // random class + + #define STEAM_PDOFFSET_SCORE 475 + LINUXOFFSET // score + #define STEAM_PDOFFSET_DEATHS 476 + LINUXOFFSET // deaths + + // DoD Control Point + struct pd_dcp { + int iunk_0; +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + int iunk_1; // windows only + #endif + int iunk_2; // pointer edict_t* + int iunk_3; + + float origin_x; + float origin_y; + float origin_z; // 6 +@@ -77,17 +77,17 @@ struct pd_dcp { + + // 19 - spawnflags ? + // 20-int , always 1 + int unknown_block1[19]; + int iunk_35; // pointer entvars_t* + int iunk_36; // pointer entvars_t* + int unknown_block2[52]; + int iunk_89; // pointer entvars_t* +-#ifdef __linux__ ++#if defined (__linux__) || defined (__APPLE__) + int iunk_extra1; + int iunk_extra2; + int iunk_extra3; + int iunk_extra4; + #endif + int owner; // 90 + int iunk_91; + int iunk_92; +@@ -124,17 +124,17 @@ struct pd_dcp { + + #define GET_CP_PD( x ) (*(pd_dcp*)x->pvPrivateData) + + // DoD Capture Area + struct pd_dca { + int iunk_0; + int iunk_1; + int iunk_2; +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + int iunk_3; // if def windows + #endif + + float origin_x; + float origin_y; + float origin_z; // 6 + + float mins_x; +@@ -145,17 +145,17 @@ struct pd_dca { + float maxs_y; + float maxs_z; + + float angles_x; + float angles_y; + float angles_z; // 15 + + // 16-135 +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + int unknown_block_16[111]; + #else + int unknown_block_16[116]; // linux +5 more + #endif + + int time_to_cap; // 127 + int iunk_128; + int allies_numcap; // 129 +@@ -258,17 +258,17 @@ public: + bool ingame; + bool bot; + + void Init( int pi, edict_t* pe ); + void Connect(); + void PutInServer(); + void Disconnect(); + void killPlayer(); +- void setTeamName( char *szName ); ++ void setTeamName( const char *szName ); + void getTeamName( char *szName ); + + inline bool IsBot(){ + const char* auth= (*g_engfuncs.pfnGetPlayerAuthId)(pEdict); + return ( auth && !strcmp( auth , "BOT" ) ); + } + inline bool IsAlive(){ + return ((pEdict->v.deadflag==DEAD_NO)&&(pEdict->v.health>0)); +diff --git a/dlls/dod/dodfun/Makefile b/dlls/dod/dodfun/Makefile +--- a/dlls/dod/dodfun/Makefile ++++ b/dlls/dod/dodfun/Makefile +@@ -1,67 +1,123 @@ +-#(C)2004-2005 AMX Mod X Development Team ++# (C)2004-2013 AMX Mod X Development Team + # Makefile written by David "BAILOPAN" Anderson + +-HLSDK = ../../../../hlsdk ++########################################### ++### EDIT THESE PATHS FOR YOUR OWN SETUP ### ++########################################### ++ ++HLSDK = ../../../../hlsdk/multiplayer + MM_ROOT = ../../../../metamod/metamod + ++##################################### + ### EDIT BELOW FOR OTHER PROJECTS ### ++##################################### + +-OPT_FLAGS = -O3 -funroll-loops -s -pipe -fno-strict-aliasing +-DEBUG_FLAGS = -g -ggdb3 +-CPP = gcc-4.1 +-NAME = dodfun +- +-BIN_SUFFIX = amxx_i386.so ++PROJECT = dodfun + + OBJECTS = sdk/amxxmodule.cpp NBase.cpp CMisc.cpp NPD.cpp Utils.cpp usermsg.cpp moduleconfig.cpp + +-LINK = ++############################################## ++### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ### ++############################################## + +-INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \ +- -I$(MM_ROOT) -I$(HLSDK)/common -Isdk ++C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -fomit-frame-pointer -pipe ++C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3 ++C_GCC4_FLAGS = -fvisibility=hidden ++CPP_GCC4_FLAGS = -fvisibility-inlines-hidden ++CPP = gcc ++CPP_OSX = clang + +-GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++LINK = + +-ifeq "$(GCC_VERSION)" "4" +- OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden ++INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \ ++ -I$(MM_ROOT) -Isdk ++ ++################################################ ++### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ### ++################################################ ++ ++OS := $(shell uname -s) ++ ++ifeq "$(OS)" "Darwin" ++ CPP = $(CPP_OSX) ++ LIB_EXT = dylib ++ LIB_SUFFIX = _amxx ++ CFLAGS += -DOSX ++ LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5 ++else ++ LIB_EXT = so ++ LIB_SUFFIX = _amxx_i386 ++ CFLAGS += -DLINUX ++ LINK += -shared + endif + ++LINK += -m32 -lm -ldl ++ ++CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror ++CPPFLAGS += -fno-exceptions -fno-rtti ++ ++BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT) ++ + ifeq "$(DEBUG)" "true" + BIN_DIR = Debug +- CFLAGS = $(DEBUG_FLAGS) ++ CFLAGS += $(C_DEBUG_FLAGS) + else + BIN_DIR = Release +- CFLAGS = $(OPT_FLAGS) ++ CFLAGS += $(C_OPT_FLAGS) ++ LINK += -s + endif + +-CFLAGS += -DNDEBUG -Wall -Wno-non-virtual-dtor -Werror -fno-exceptions -DHAVE_STDINT_H -static-libgcc -fno-rtti -m32 ++IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0") + +-BINARY = $(NAME)_$(BIN_SUFFIX) +-CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 +-OPT_FLAGS += -march=i586 ++ifeq "$(IS_CLANG)" "1" ++ CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/") ++ CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/") ++else ++ CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++ CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3) ++endif + +-OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++# Clang || GCC >= 4 ++ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1" ++ CFLAGS += $(C_GCC4_FLAGS) ++ CPPFLAGS += $(CPP_GCC4_FLAGS) ++endif ++ ++# Clang >= 3 || GCC >= 4.7 ++ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1" ++ CFLAGS += -Wno-delete-non-virtual-dtor ++endif ++ ++# OS is Linux and not using clang ++ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1" ++ LINK += -static-libgcc ++endif ++ ++OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++ ++# This will break if we include other Makefiles, but is fine for now. It allows ++# us to make a copy of this file that uses altered paths (ie. Makefile.mine) ++# or other changes without mucking up the original. ++MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) + + $(BIN_DIR)/%.o: %.cpp +- $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< ++ $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< + + all: + mkdir -p $(BIN_DIR) + mkdir -p $(BIN_DIR)/sdk +- $(MAKE) dodfun ++ $(MAKE) -f $(MAKEFILE_NAME) $(PROJECT) + +-dodfun: $(OBJ_LINUX) +- $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) ++$(PROJECT): $(OBJ_BIN) ++ $(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY) + +-debug: +- $(MAKE) all DEBUG=true ++debug: ++ $(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true + + default: all + + clean: +- rm -rf Release/sdk/*.o +- rm -rf Release/*.o +- rm -rf Release/$(NAME)_$(BIN_SUFFIX) +- rm -rf Debug/sdk/*.o +- rm -rf Debug/*.o +- rm -rf Debug/$(NAME)_$(BIN_SUFFIX) ++ rm -rf $(BIN_DIR)/*.o ++ rm -rf $(BIN_DIR)/sdk/*.o ++ rm -f $(BIN_DIR)/$(BINARY) ++ +diff --git a/dlls/dod/dodfun/sdk/amxxmodule.cpp b/dlls/dod/dodfun/sdk/amxxmodule.cpp +--- a/dlls/dod/dodfun/sdk/amxxmodule.cpp ++++ b/dlls/dod/dodfun/sdk/amxxmodule.cpp +@@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta + GetEntityAPI2, + GetEntityAPI2_Post, + GetNewDLLFunctions, + GetNewDLLFunctions_Post, + GetEngineFunctions, + GetEngineFunctions_Post + }; + +-C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) ++C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) + { + if ((int) CVAR_GET_FLOAT("developer") != 0) + UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", + Plugin_info.logtag, ifvers, Plugin_info.ifvers); + + // Check for valid pMetaUtilFuncs before we continue. + if(!pMetaUtilFuncs) { + UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag); +@@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM + #ifdef FN_META_DETACH + FN_META_DETACH(); + #endif // FN_META_DETACH + return TRUE; + } + + + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + // linux prototype + C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) { + + #else + #ifdef _MSC_VER + // MSVC: Simulate __stdcall calling convention + C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) + { +@@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... ) + return string; + } + + + //========================================================= + // UTIL_LogPrintf - Prints a logged message to console. + // Preceded by LOG: ( timestamp ) < message > + //========================================================= +-void UTIL_LogPrintf( char *fmt, ... ) ++void UTIL_LogPrintf( const char *fmt, ... ) + { + va_list argptr; + static char string[1024]; + + va_start ( argptr, fmt ); + vsnprintf ( string, sizeof(string), fmt, argptr ); + va_end ( argptr ); + +diff --git a/dlls/dod/dodfun/sdk/amxxmodule.h b/dlls/dod/dodfun/sdk/amxxmodule.h +--- a/dlls/dod/dodfun/sdk/amxxmodule.h ++++ b/dlls/dod/dodfun/sdk/amxxmodule.h +@@ -15,21 +15,26 @@ + #ifdef USE_METAMOD + #include + #include + #include "osdep.h" + #endif // #ifdef USE_METAMOD + + // DLL Export + #undef DLLEXPORT +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + #define DLLEXPORT __declspec(dllexport) + #else + #define DLLEXPORT __attribute__((visibility("default"))) ++#endif ++ ++#if defined(__linux__) && !defined(LINUX) + #define LINUX ++#elif defined(__APPLE__) && !defined(OSX) ++#define OSX + #endif + + #undef C_DLLEXPORT + #define C_DLLEXPORT extern "C" DLLEXPORT + + // ***** AMXX stuff ***** + + // module interface version was 1 +@@ -61,17 +66,17 @@ struct amxx_module_info_s + + // *** Small stuff *** + // The next section is copied from the amx.h file + // Copyright (c) ITB CompuPhase, 1997-2005 + + #if defined HAVE_STDINT_H + #include + #else +- #if defined __LCC__ || defined __DMC__ || defined LINUX ++ #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__ + #if defined HAVE_INTTYPES_H + #include + #else + #include + #endif + #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L + /* The ISO C99 defines the int16_t and int_32t types. If the compiler got + * here, these types are probably undefined. +@@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t + + #if defined __GNUC__ + #define PACKED __attribute__((packed)) + #else + #define PACKED + #endif + + #if !defined AMX_NO_ALIGN +- #if defined LINUX || defined __FreeBSD__ ++ #if defined LINUX || defined __FreeBSD__ || defined __APPLE__ + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #elif defined MACOS && defined __MWERKS__ + #pragma options align=mac68k + #else + #pragma pack(push) + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #if defined __TURBOC__ + #pragma option -a- /* "pack" pragma for older Borland compilers */ +@@ -390,28 +395,28 @@ enum { + AMX_ERR_INIT, /* AMX not initialized (or doubly initialized) */ + AMX_ERR_USERDATA, /* unable to set user data field (table full) */ + AMX_ERR_INIT_JIT, /* cannot initialize the JIT */ + AMX_ERR_PARAMS, /* parameter error */ + AMX_ERR_DOMAIN, /* domain error, expression result does not fit in range */ + }; + + #if !defined AMX_NO_ALIGN +- #if defined __linux__ ++ #if defined(__linux__) || defined(__APPLE__) + #pragma pack() /* reset default packing */ + #else + #pragma pack(pop) /* reset previous packing */ + #endif + #endif + + + // ***** declare functions ***** + + #ifdef USE_METAMOD +-void UTIL_LogPrintf( char *fmt, ... ); ++void UTIL_LogPrintf( const char *fmt, ... ); + void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage); + short FixedSigned16( float value, float scale ); + unsigned short FixedUnsigned16( float value, float scale ); + + #ifdef FN_META_QUERY + void FN_META_QUERY(void); + #endif // FN_META_QUERY + +@@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict + + #ifdef FN_AllowLagCompensation_Post + int FN_AllowLagCompensation_Post(void); + #endif // FN_AllowLagCompensation_Post + + + + #ifdef FN_PrecacheModel +-int FN_PrecacheModel(char *s); ++int FN_PrecacheModel(const char *s); + #endif // FN_PrecacheModel + + #ifdef FN_PrecacheSound +-int FN_PrecacheSound(char *s); ++int FN_PrecacheSound(const char *s); + #endif // FN_PrecacheSound + + #ifdef FN_SetModel + void FN_SetModel(edict_t *e, const char *m); + #endif // FN_SetModel + + #ifdef FN_ModelIndex + int FN_ModelIndex(const char *m); +@@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m); + int FN_ModelFrames(int modelIndex); + #endif // FN_ModelFrames + + #ifdef FN_SetSize + void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize + + #ifdef FN_ChangeLevel +-void FN_ChangeLevel(char *s1, char *s2); ++void FN_ChangeLevel(const char *s1, const char *s2); + #endif // FN_ChangeLevel + + #ifdef FN_GetSpawnParms + void FN_GetSpawnParms(edict_t *ent); + #endif // FN_GetSpawnParms + + #ifdef FN_SaveSpawnParms + void FN_SaveSpawnParms(edict_t *ent); +@@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien + int FN_NumberOfEntities(void); + #endif // FN_NumberOfEntities + + #ifdef FN_GetInfoKeyBuffer + char *FN_GetInfoKeyBuffer(edict_t *e); + #endif // FN_GetInfoKeyBuffer + + #ifdef FN_InfoKeyValue +-char *FN_InfoKeyValue(char *infobuffer, char *key); ++char *FN_InfoKeyValue(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue + + #ifdef FN_SetKeyValue +-void FN_SetKeyValue(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue + + #ifdef FN_SetClientKeyValue +-void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue + + #ifdef FN_IsMapValid +-int FN_IsMapValid(char *filename); ++int FN_IsMapValid(const char *filename); + #endif // FN_IsMapValid + + #ifdef FN_StaticDecal + void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal + + #ifdef FN_PrecacheGeneric +-int FN_PrecacheGeneric(char *s); ++int FN_PrecacheGeneric(const char *s); + #endif // FN_PrecacheGeneric + + #ifdef FN_GetPlayerUserId + int FN_GetPlayerUserId(edict_t *e ); + #endif // FN_GetPlayerUserId + + #ifdef FN_BuildSoundMsg + void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t * + #endif // FN_GetPlayerAuthId + + + + + + + #ifdef FN_PrecacheModel_Post +-int FN_PrecacheModel_Post(char *s); ++int FN_PrecacheModel_Post(const char *s); + #endif // FN_PrecacheModel_Post + + #ifdef FN_PrecacheSound_Post +-int FN_PrecacheSound_Post(char *s); ++int FN_PrecacheSound_Post(const char *s); + #endif // FN_PrecacheSound_Post + + #ifdef FN_SetModel_Post + void FN_SetModel_Post(edict_t *e, const char *m); + #endif // FN_SetModel_Post + + #ifdef FN_ModelIndex_Post + int FN_ModelIndex_Post(const char *m); +@@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m); + int FN_ModelFrames_Post(int modelIndex); + #endif // FN_ModelFrames_Post + + #ifdef FN_SetSize_Post + void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize_Post + + #ifdef FN_ChangeLevel_Post +-void FN_ChangeLevel_Post(char *s1, char *s2); ++void FN_ChangeLevel_Post(const char *s1, const char *s2); + #endif // FN_ChangeLevel_Post + + #ifdef FN_GetSpawnParms_Post + void FN_GetSpawnParms_Post(edict_t *ent); + #endif // FN_GetSpawnParms_Post + + #ifdef FN_SaveSpawnParms_Post + void FN_SaveSpawnParms_Post(edict_t *ent); +@@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake + int FN_NumberOfEntities_Post(void); + #endif // FN_NumberOfEntities_Post + + #ifdef FN_GetInfoKeyBuffer_Post + char *FN_GetInfoKeyBuffer_Post(edict_t *e); + #endif // FN_GetInfoKeyBuffer_Post + + #ifdef FN_InfoKeyValue_Post +-char *FN_InfoKeyValue_Post(char *infobuffer, char *key); ++char *FN_InfoKeyValue_Post(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue_Post + + #ifdef FN_SetKeyValue_Post +-void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue_Post + + #ifdef FN_SetClientKeyValue_Post +-void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue_Post + + #ifdef FN_IsMapValid_Post +-int FN_IsMapValid_Post(char *filename); ++int FN_IsMapValid_Post(const char *filename); + #endif // FN_IsMapValid_Post + + #ifdef FN_StaticDecal_Post + void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal_Post + + #ifdef FN_PrecacheGeneric_Post +-int FN_PrecacheGeneric_Post(char *s); ++int FN_PrecacheGeneric_Post(const char *s); + #endif // FN_PrecacheGeneric_Post + + #ifdef FN_GetPlayerUserId_Post + int FN_GetPlayerUserId_Post(edict_t *e ); + #endif // FN_GetPlayerUserId_Post + + #ifdef FN_BuildSoundMsg_Post + void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -2111,17 +2116,17 @@ enum LibType + + typedef void (*AUTHORIZEFUNC)(int player, const char *authstring); + + typedef int (*PFN_ADD_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef int (*PFN_ADD_NEW_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef char * (*PFN_BUILD_PATHNAME) (const char * /*format*/, ...); + typedef char * (*PFN_BUILD_PATHNAME_R) (char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...); + typedef cell * (*PFN_GET_AMXADDR) (AMX * /*amx*/, cell /*offset*/); +-typedef void (*PFN_PRINT_SRVCONSOLE) (char * /*format*/, ...); ++typedef void (*PFN_PRINT_SRVCONSOLE) (const char * /*format*/, ...); + typedef const char * (*PFN_GET_MODNAME) (void); + typedef const char * (*PFN_GET_AMXSCRIPTNAME) (int /*id*/); + typedef AMX * (*PFN_GET_AMXSCRIPT) (int /*id*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYAMX) (const AMX * /*amx*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYNAME) (const char * /*name*/); + typedef int (*PFN_SET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */); + typedef char * (*PFN_GET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/); + typedef int (*PFN_GET_AMXSTRINGLEN) (const cell *ptr); +@@ -2170,18 +2175,18 @@ typedef void * (*PFN_ALLOCATOR) (co + typedef void * (*PFN_REALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ ); + typedef void (*PFN_DEALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const void* /*addr*/ ); + #endif + typedef int (*PFN_AMX_EXEC) (AMX* /*amx*/, cell* /*return val*/, int /*index*/); + typedef int (*PFN_AMX_EXECV) (AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/); + typedef int (*PFN_AMX_ALLOT) (AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/); +-typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); +-typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); + typedef int (*PFN_LOAD_AMXSCRIPT) (AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */); + typedef int (*PFN_UNLOAD_AMXSCRIPT) (AMX* /*amx*/,void** /*code*/); + typedef cell (*PFN_REAL_TO_CELL) (REAL /*x*/); + typedef REAL (*PFN_CELL_TO_REAL) (cell /*x*/); + typedef int (*PFN_REGISTER_SPFORWARD) (AMX * /*amx*/, int /*func*/, ... /*params*/); + typedef int (*PFN_REGISTER_SPFORWARD_BYNAME) (AMX * /*amx*/, const char * /*funcName*/, ... /*params*/); + typedef void (*PFN_UNREGISTER_SPFORWARD) (int /*id*/); + typedef void (*PFN_MERGEDEFINITION_FILE) (const char * /*filename*/); +diff --git a/dlls/dod/dodx/CMisc.h b/dlls/dod/dodx/CMisc.h +--- a/dlls/dod/dodx/CMisc.h ++++ b/dlls/dod/dodx/CMisc.h +@@ -32,17 +32,17 @@ + #ifndef CMISC_H + #define CMISC_H + + #include "CRank.h" + + #define DODMAX_CUSTOMWPNS 5 // custom weapons + #define DODMAX_WEAPONS 42 + DODMAX_CUSTOMWPNS + +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + #define LINUXOFFSET 0 + #else + #define LINUXOFFSET 5 + #endif + + #define DOD_VERSION "0.1" + + #define MAX_TRACE 6 +diff --git a/dlls/dod/dodx/Makefile b/dlls/dod/dodx/Makefile +--- a/dlls/dod/dodx/Makefile ++++ b/dlls/dod/dodx/Makefile +@@ -1,67 +1,123 @@ +-#(C)2004-2005 AMX Mod X Development Team ++# (C)2004-2013 AMX Mod X Development Team + # Makefile written by David "BAILOPAN" Anderson + +-HLSDK = ../../../../hlsdk ++########################################### ++### EDIT THESE PATHS FOR YOUR OWN SETUP ### ++########################################### ++ ++HLSDK = ../../../../hlsdk/multiplayer + MM_ROOT = ../../../../metamod/metamod + ++##################################### + ### EDIT BELOW FOR OTHER PROJECTS ### ++##################################### + +-OPT_FLAGS = -O3 -funroll-loops -s -pipe -fno-strict-aliasing +-DEBUG_FLAGS = -g -ggdb3 +-CPP = gcc-4.1 +-NAME = dodx +- +-BIN_SUFFIX = amxx_i386.so ++PROJECT = dodx + + OBJECTS = sdk/amxxmodule.cpp CRank.cpp CMisc.cpp NBase.cpp NRank.cpp usermsg.cpp Utils.cpp moduleconfig.cpp + +-LINK = ++############################################## ++### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ### ++############################################## + +-INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \ +- -I$(MM_ROOT) -I$(HLSDK)/common -Isdk ++C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -fomit-frame-pointer -pipe ++C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3 ++C_GCC4_FLAGS = -fvisibility=hidden ++CPP_GCC4_FLAGS = -fvisibility-inlines-hidden ++CPP = gcc ++CPP_OSX = clang + +-GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++LINK = + +-ifeq "$(GCC_VERSION)" "4" +- OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden ++INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \ ++ -I$(MM_ROOT) -Isdk ++ ++################################################ ++### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ### ++################################################ ++ ++OS := $(shell uname -s) ++ ++ifeq "$(OS)" "Darwin" ++ CPP = $(CPP_OSX) ++ LIB_EXT = dylib ++ LIB_SUFFIX = _amxx ++ CFLAGS += -DOSX ++ LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5 ++else ++ LIB_EXT = so ++ LIB_SUFFIX = _amxx_i386 ++ CFLAGS += -DLINUX ++ LINK += -shared + endif + ++LINK += -m32 -lm -ldl ++ ++CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror ++CPPFLAGS += -fno-exceptions -fno-rtti ++ ++BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT) ++ + ifeq "$(DEBUG)" "true" + BIN_DIR = Debug +- CFLAGS = $(DEBUG_FLAGS) ++ CFLAGS += $(C_DEBUG_FLAGS) + else + BIN_DIR = Release +- CFLAGS = $(OPT_FLAGS) ++ CFLAGS += $(C_OPT_FLAGS) ++ LINK += -s + endif + +-CFLAGS += -DNDEBUG -Wall -Wno-non-virtual-dtor -Werror -fno-exceptions -DHAVE_STDINT_H -static-libgcc -fno-rtti -m32 ++IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0") + +-BINARY = $(NAME)_$(BIN_SUFFIX) +-CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 +-OPT_FLAGS += -march=i586 ++ifeq "$(IS_CLANG)" "1" ++ CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/") ++ CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/") ++else ++ CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++ CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3) ++endif + +-OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++# Clang || GCC >= 4 ++ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1" ++ CFLAGS += $(C_GCC4_FLAGS) ++ CPPFLAGS += $(CPP_GCC4_FLAGS) ++endif ++ ++# Clang >= 3 || GCC >= 4.7 ++ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1" ++ CFLAGS += -Wno-delete-non-virtual-dtor ++endif ++ ++# OS is Linux and not using clang ++ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1" ++ LINK += -static-libgcc ++endif ++ ++OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++ ++# This will break if we include other Makefiles, but is fine for now. It allows ++# us to make a copy of this file that uses altered paths (ie. Makefile.mine) ++# or other changes without mucking up the original. ++MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) + + $(BIN_DIR)/%.o: %.cpp +- $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< ++ $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< + + all: + mkdir -p $(BIN_DIR) + mkdir -p $(BIN_DIR)/sdk +- $(MAKE) dodx ++ $(MAKE) -f $(MAKEFILE_NAME) $(PROJECT) + +-dodx: $(OBJ_LINUX) +- $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) ++$(PROJECT): $(OBJ_BIN) ++ $(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY) + +-debug: +- $(MAKE) all DEBUG=true ++debug: ++ $(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true + + default: all + + clean: +- rm -rf Release/sdk/*.o +- rm -rf Release/*.o +- rm -rf Release/$(NAME)_$(BIN_SUFFIX) +- rm -rf Debug/sdk/*.o +- rm -rf Debug/*.o +- rm -rf Debug/$(NAME)_$(BIN_SUFFIX) ++ rm -rf $(BIN_DIR)/*.o ++ rm -rf $(BIN_DIR)/sdk/*.o ++ rm -f $(BIN_DIR)/$(BINARY) ++ +diff --git a/dlls/dod/dodx/NBase.cpp b/dlls/dod/dodx/NBase.cpp +--- a/dlls/dod/dodx/NBase.cpp ++++ b/dlls/dod/dodx/NBase.cpp +@@ -485,17 +485,17 @@ static cell AMX_NATIVE_CALL get_user_tea + int index = params[1]; + CHECK_PLAYER(index); + + CPlayer* pPlayer = GET_PLAYER_POINTER_I(index); + int iTeam = pPlayer->pEdict->v.team; + + if ( params[3] ) + { +- char *szTeam = ""; ++ const char *szTeam = ""; + switch(iTeam) + { + case 1: + szTeam = "Allies"; + break; + + case 2: + szTeam = "Axis"; +diff --git a/dlls/dod/dodx/moduleconfig.cpp b/dlls/dod/dodx/moduleconfig.cpp +--- a/dlls/dod/dodx/moduleconfig.cpp ++++ b/dlls/dod/dodx/moduleconfig.cpp +@@ -425,17 +425,17 @@ void DispatchKeyValue_Post( edict_t *pen + } + } + else if ( pkvd->szKeyName[12]=='p' ) g_map.detect_axis_paras=atoi(pkvd->szValue); + } + } + RETURN_META(MRES_IGNORED); + } + +-void SetClientKeyValue(int id, char *protocol, char *type, char *var) ++void SetClientKeyValue(int id, char *protocol, const char *type, const char *var) + { + // ID: Number + // protocol: \name\Sgt.MEOW\topcolor\1\bottomcolor\1\cl_lw\1\team\axis\model\axis-inf + // type: model + // var: axis-inf + + // Check to see if its a player and we are setting a model + if(strcmp(type, "model") == 0 && +diff --git a/dlls/dod/dodx/sdk/amxxmodule.cpp b/dlls/dod/dodx/sdk/amxxmodule.cpp +--- a/dlls/dod/dodx/sdk/amxxmodule.cpp ++++ b/dlls/dod/dodx/sdk/amxxmodule.cpp +@@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta + GetEntityAPI2, + GetEntityAPI2_Post, + GetNewDLLFunctions, + GetNewDLLFunctions_Post, + GetEngineFunctions, + GetEngineFunctions_Post + }; + +-C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) ++C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) + { + if ((int) CVAR_GET_FLOAT("developer") != 0) + UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", + Plugin_info.logtag, ifvers, Plugin_info.ifvers); + + // Check for valid pMetaUtilFuncs before we continue. + if(!pMetaUtilFuncs) { + UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag); +@@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM + #ifdef FN_META_DETACH + FN_META_DETACH(); + #endif // FN_META_DETACH + return TRUE; + } + + + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + // linux prototype + C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) { + + #else + #ifdef _MSC_VER + // MSVC: Simulate __stdcall calling convention + C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) + { +@@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... ) + return string; + } + + + //========================================================= + // UTIL_LogPrintf - Prints a logged message to console. + // Preceded by LOG: ( timestamp ) < message > + //========================================================= +-void UTIL_LogPrintf( char *fmt, ... ) ++void UTIL_LogPrintf( const char *fmt, ... ) + { + va_list argptr; + static char string[1024]; + + va_start ( argptr, fmt ); + vsnprintf ( string, sizeof(string), fmt, argptr ); + va_end ( argptr ); + +diff --git a/dlls/dod/dodx/sdk/amxxmodule.h b/dlls/dod/dodx/sdk/amxxmodule.h +--- a/dlls/dod/dodx/sdk/amxxmodule.h ++++ b/dlls/dod/dodx/sdk/amxxmodule.h +@@ -15,21 +15,26 @@ + #ifdef USE_METAMOD + #include + #include + #include "osdep.h" + #endif // #ifdef USE_METAMOD + + // DLL Export + #undef DLLEXPORT +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + #define DLLEXPORT __declspec(dllexport) + #else + #define DLLEXPORT __attribute__((visibility("default"))) ++#endif ++ ++#if defined(__linux__) && !defined(LINUX) + #define LINUX ++#elif defined(__APPLE__) && !defined(OSX) ++#define OSX + #endif + + #undef C_DLLEXPORT + #define C_DLLEXPORT extern "C" DLLEXPORT + + // ***** AMXX stuff ***** + + // module interface version was 1 +@@ -61,17 +66,17 @@ struct amxx_module_info_s + + // *** Small stuff *** + // The next section is copied from the amx.h file + // Copyright (c) ITB CompuPhase, 1997-2005 + + #if defined HAVE_STDINT_H + #include + #else +- #if defined __LCC__ || defined __DMC__ || defined LINUX ++ #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__ + #if defined HAVE_INTTYPES_H + #include + #else + #include + #endif + #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L + /* The ISO C99 defines the int16_t and int_32t types. If the compiler got + * here, these types are probably undefined. +@@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t + + #if defined __GNUC__ + #define PACKED __attribute__((packed)) + #else + #define PACKED + #endif + + #if !defined AMX_NO_ALIGN +- #if defined LINUX || defined __FreeBSD__ ++ #if defined LINUX || defined __FreeBSD__ || defined __APPLE__ + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #elif defined MACOS && defined __MWERKS__ + #pragma options align=mac68k + #else + #pragma pack(push) + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #if defined __TURBOC__ + #pragma option -a- /* "pack" pragma for older Borland compilers */ +@@ -390,28 +395,28 @@ enum { + AMX_ERR_INIT, /* AMX not initialized (or doubly initialized) */ + AMX_ERR_USERDATA, /* unable to set user data field (table full) */ + AMX_ERR_INIT_JIT, /* cannot initialize the JIT */ + AMX_ERR_PARAMS, /* parameter error */ + AMX_ERR_DOMAIN, /* domain error, expression result does not fit in range */ + }; + + #if !defined AMX_NO_ALIGN +- #if defined __linux__ ++ #if defined(__linux__) || defined(__APPLE__) + #pragma pack() /* reset default packing */ + #else + #pragma pack(pop) /* reset previous packing */ + #endif + #endif + + + // ***** declare functions ***** + + #ifdef USE_METAMOD +-void UTIL_LogPrintf( char *fmt, ... ); ++void UTIL_LogPrintf( const char *fmt, ... ); + void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage); + short FixedSigned16( float value, float scale ); + unsigned short FixedUnsigned16( float value, float scale ); + + #ifdef FN_META_QUERY + void FN_META_QUERY(void); + #endif // FN_META_QUERY + +@@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict + + #ifdef FN_AllowLagCompensation_Post + int FN_AllowLagCompensation_Post(void); + #endif // FN_AllowLagCompensation_Post + + + + #ifdef FN_PrecacheModel +-int FN_PrecacheModel(char *s); ++int FN_PrecacheModel(const char *s); + #endif // FN_PrecacheModel + + #ifdef FN_PrecacheSound +-int FN_PrecacheSound(char *s); ++int FN_PrecacheSound(const char *s); + #endif // FN_PrecacheSound + + #ifdef FN_SetModel + void FN_SetModel(edict_t *e, const char *m); + #endif // FN_SetModel + + #ifdef FN_ModelIndex + int FN_ModelIndex(const char *m); +@@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m); + int FN_ModelFrames(int modelIndex); + #endif // FN_ModelFrames + + #ifdef FN_SetSize + void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize + + #ifdef FN_ChangeLevel +-void FN_ChangeLevel(char *s1, char *s2); ++void FN_ChangeLevel(const char *s1, const char *s2); + #endif // FN_ChangeLevel + + #ifdef FN_GetSpawnParms + void FN_GetSpawnParms(edict_t *ent); + #endif // FN_GetSpawnParms + + #ifdef FN_SaveSpawnParms + void FN_SaveSpawnParms(edict_t *ent); +@@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien + int FN_NumberOfEntities(void); + #endif // FN_NumberOfEntities + + #ifdef FN_GetInfoKeyBuffer + char *FN_GetInfoKeyBuffer(edict_t *e); + #endif // FN_GetInfoKeyBuffer + + #ifdef FN_InfoKeyValue +-char *FN_InfoKeyValue(char *infobuffer, char *key); ++char *FN_InfoKeyValue(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue + + #ifdef FN_SetKeyValue +-void FN_SetKeyValue(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue + + #ifdef FN_SetClientKeyValue +-void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue + + #ifdef FN_IsMapValid +-int FN_IsMapValid(char *filename); ++int FN_IsMapValid(const char *filename); + #endif // FN_IsMapValid + + #ifdef FN_StaticDecal + void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal + + #ifdef FN_PrecacheGeneric +-int FN_PrecacheGeneric(char *s); ++int FN_PrecacheGeneric(const char *s); + #endif // FN_PrecacheGeneric + + #ifdef FN_GetPlayerUserId + int FN_GetPlayerUserId(edict_t *e ); + #endif // FN_GetPlayerUserId + + #ifdef FN_BuildSoundMsg + void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t * + #endif // FN_GetPlayerAuthId + + + + + + + #ifdef FN_PrecacheModel_Post +-int FN_PrecacheModel_Post(char *s); ++int FN_PrecacheModel_Post(const char *s); + #endif // FN_PrecacheModel_Post + + #ifdef FN_PrecacheSound_Post +-int FN_PrecacheSound_Post(char *s); ++int FN_PrecacheSound_Post(const char *s); + #endif // FN_PrecacheSound_Post + + #ifdef FN_SetModel_Post + void FN_SetModel_Post(edict_t *e, const char *m); + #endif // FN_SetModel_Post + + #ifdef FN_ModelIndex_Post + int FN_ModelIndex_Post(const char *m); +@@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m); + int FN_ModelFrames_Post(int modelIndex); + #endif // FN_ModelFrames_Post + + #ifdef FN_SetSize_Post + void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize_Post + + #ifdef FN_ChangeLevel_Post +-void FN_ChangeLevel_Post(char *s1, char *s2); ++void FN_ChangeLevel_Post(const char *s1, const char *s2); + #endif // FN_ChangeLevel_Post + + #ifdef FN_GetSpawnParms_Post + void FN_GetSpawnParms_Post(edict_t *ent); + #endif // FN_GetSpawnParms_Post + + #ifdef FN_SaveSpawnParms_Post + void FN_SaveSpawnParms_Post(edict_t *ent); +@@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake + int FN_NumberOfEntities_Post(void); + #endif // FN_NumberOfEntities_Post + + #ifdef FN_GetInfoKeyBuffer_Post + char *FN_GetInfoKeyBuffer_Post(edict_t *e); + #endif // FN_GetInfoKeyBuffer_Post + + #ifdef FN_InfoKeyValue_Post +-char *FN_InfoKeyValue_Post(char *infobuffer, char *key); ++char *FN_InfoKeyValue_Post(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue_Post + + #ifdef FN_SetKeyValue_Post +-void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue_Post + + #ifdef FN_SetClientKeyValue_Post +-void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue_Post + + #ifdef FN_IsMapValid_Post +-int FN_IsMapValid_Post(char *filename); ++int FN_IsMapValid_Post(const char *filename); + #endif // FN_IsMapValid_Post + + #ifdef FN_StaticDecal_Post + void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal_Post + + #ifdef FN_PrecacheGeneric_Post +-int FN_PrecacheGeneric_Post(char *s); ++int FN_PrecacheGeneric_Post(const char *s); + #endif // FN_PrecacheGeneric_Post + + #ifdef FN_GetPlayerUserId_Post + int FN_GetPlayerUserId_Post(edict_t *e ); + #endif // FN_GetPlayerUserId_Post + + #ifdef FN_BuildSoundMsg_Post + void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -2111,17 +2116,17 @@ enum LibType + + typedef void (*AUTHORIZEFUNC)(int player, const char *authstring); + + typedef int (*PFN_ADD_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef int (*PFN_ADD_NEW_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef char * (*PFN_BUILD_PATHNAME) (const char * /*format*/, ...); + typedef char * (*PFN_BUILD_PATHNAME_R) (char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...); + typedef cell * (*PFN_GET_AMXADDR) (AMX * /*amx*/, cell /*offset*/); +-typedef void (*PFN_PRINT_SRVCONSOLE) (char * /*format*/, ...); ++typedef void (*PFN_PRINT_SRVCONSOLE) (const char * /*format*/, ...); + typedef const char * (*PFN_GET_MODNAME) (void); + typedef const char * (*PFN_GET_AMXSCRIPTNAME) (int /*id*/); + typedef AMX * (*PFN_GET_AMXSCRIPT) (int /*id*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYAMX) (const AMX * /*amx*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYNAME) (const char * /*name*/); + typedef int (*PFN_SET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */); + typedef char * (*PFN_GET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/); + typedef int (*PFN_GET_AMXSTRINGLEN) (const cell *ptr); +@@ -2170,18 +2175,18 @@ typedef void * (*PFN_ALLOCATOR) (co + typedef void * (*PFN_REALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ ); + typedef void (*PFN_DEALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const void* /*addr*/ ); + #endif + typedef int (*PFN_AMX_EXEC) (AMX* /*amx*/, cell* /*return val*/, int /*index*/); + typedef int (*PFN_AMX_EXECV) (AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/); + typedef int (*PFN_AMX_ALLOT) (AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/); +-typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); +-typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); + typedef int (*PFN_LOAD_AMXSCRIPT) (AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */); + typedef int (*PFN_UNLOAD_AMXSCRIPT) (AMX* /*amx*/,void** /*code*/); + typedef cell (*PFN_REAL_TO_CELL) (REAL /*x*/); + typedef REAL (*PFN_CELL_TO_REAL) (cell /*x*/); + typedef int (*PFN_REGISTER_SPFORWARD) (AMX * /*amx*/, int /*func*/, ... /*params*/); + typedef int (*PFN_REGISTER_SPFORWARD_BYNAME) (AMX * /*amx*/, const char * /*funcName*/, ... /*params*/); + typedef void (*PFN_UNREGISTER_SPFORWARD) (int /*id*/); + typedef void (*PFN_MERGEDEFINITION_FILE) (const char * /*filename*/); +diff --git a/dlls/engine/Makefile b/dlls/engine/Makefile +--- a/dlls/engine/Makefile ++++ b/dlls/engine/Makefile +@@ -1,79 +1,124 @@ +-#(C)2004-2005 AMX Mod X Development Team ++# (C)2004-2013 AMX Mod X Development Team + # Makefile written by David "BAILOPAN" Anderson + +-HLSDK = ../../../hlsdk ++########################################### ++### EDIT THESE PATHS FOR YOUR OWN SETUP ### ++########################################### ++ ++HLSDK = ../../../hlsdk/multiplayer + MM_ROOT = ../../../metamod/metamod + ++##################################### + ### EDIT BELOW FOR OTHER PROJECTS ### ++##################################### + +-OPT_FLAGS = -O2 -funroll-loops -s -pipe -fomit-frame-pointer -fno-strict-aliasing +-DEBUG_FLAGS = -g -ggdb3 +-CPP = gcc-4.1 +-NAME = engine +- +-BIN_SUFFIX_32 = amxx_i386.so +-BIN_SUFFIX_64 = amxx_amd64.so ++PROJECT = engine + + OBJECTS = sdk/amxxmodule.cpp amxxapi.cpp engine.cpp entity.cpp globals.cpp forwards.cpp \ +- amxmod_compat.cpp ++ amxmod_compat.cpp + +-LINK = ++############################################## ++### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ### ++############################################## + +-INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \ +- -I$(MM_ROOT) -I$(HLSDK)/common -Isdk ++C_OPT_FLAGS = -DNDEBUG -O2 -funroll-loops -fomit-frame-pointer -pipe ++C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3 ++C_GCC4_FLAGS = -fvisibility=hidden ++CPP_GCC4_FLAGS = -fvisibility-inlines-hidden ++CPP = gcc ++CPP_OSX = clang + +-GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++LINK = + +-ifeq "$(GCC_VERSION)" "4" +- OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden ++INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \ ++ -I$(MM_ROOT) -Isdk ++ ++################################################ ++### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ### ++################################################ ++ ++OS := $(shell uname -s) ++ ++ifeq "$(OS)" "Darwin" ++ CPP = $(CPP_OSX) ++ LIB_EXT = dylib ++ LIB_SUFFIX = _amxx ++ CFLAGS += -DOSX ++ LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5 ++else ++ LIB_EXT = so ++ LIB_SUFFIX = _amxx_i386 ++ CFLAGS += -DLINUX ++ LINK += -shared + endif + ++LINK += -m32 -lm -ldl ++ ++CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror ++CPPFLAGS += -fno-exceptions -fno-rtti ++ ++BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT) ++ + ifeq "$(DEBUG)" "true" + BIN_DIR = Debug +- CFLAGS = $(DEBUG_FLAGS) ++ CFLAGS += $(C_DEBUG_FLAGS) + else + BIN_DIR = Release +- CFLAGS = $(OPT_FLAGS) ++ CFLAGS += $(C_OPT_FLAGS) ++ LINK += -s + endif + +-CFLAGS += -DNDEBUG -Wall -Wno-non-virtual-dtor -Werror -fno-exceptions -DHAVE_STDINT_H -fno-rtti -static-libgcc -m32 ++IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0") + +-ifeq "$(AMD64)" "true" +- BINARY = $(NAME)_$(BIN_SUFFIX_64) +- CFLAGS += -DPAWN_CELL_SIZE=64 -DHAVE_I64 -m64 ++ifeq "$(IS_CLANG)" "1" ++ CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/") ++ CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/") + else +- BINARY = $(NAME)_$(BIN_SUFFIX_32) +- CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 +- OPT_FLAGS += -march=i586 ++ CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++ CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3) + endif + +-OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++# Clang || GCC >= 4 ++ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1" ++ CFLAGS += $(C_GCC4_FLAGS) ++ CPPFLAGS += $(CPP_GCC4_FLAGS) ++endif ++ ++# Clang >= 3 || GCC >= 4.7 ++ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1" ++ CFLAGS += -Wno-delete-non-virtual-dtor ++endif ++ ++# OS is Linux and not using clang ++ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1" ++ LINK += -static-libgcc ++endif ++ ++OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++ ++# This will break if we include other Makefiles, but is fine for now. It allows ++# us to make a copy of this file that uses altered paths (ie. Makefile.mine) ++# or other changes without mucking up the original. ++MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) + + $(BIN_DIR)/%.o: %.cpp +- $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< ++ $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< + + all: + mkdir -p $(BIN_DIR) + mkdir -p $(BIN_DIR)/sdk +- $(MAKE) engine ++ $(MAKE) -f $(MAKEFILE_NAME) $(PROJECT) + +-amd64: +- $(MAKE) all AMD64=true ++$(PROJECT): $(OBJ_BIN) ++ $(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY) + +-engine: $(OBJ_LINUX) +- $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) +- +-debug: +- $(MAKE) all DEBUG=true ++debug: ++ $(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true + + default: all + + clean: +- rm -rf Release/sdk/*.o +- rm -rf Release/*.o +- rm -rf Release/$(NAME)_$(BIN_SUFFIX_32) +- rm -rf Release/$(NAME)_$(BIN_SUFFIX_64) +- rm -rf Debug/sdk/*.o +- rm -rf Debug/*.o +- rm -rf Debug/$(NAME)_$(BIN_SUFFIX_32) +- rm -rf Debug/$(NAME)_$(BIN_SUFFIX_64) ++ rm -rf $(BIN_DIR)/*.o ++ rm -rf $(BIN_DIR)/sdk/*.o ++ rm -f $(BIN_DIR)/$(BINARY) ++ +diff --git a/dlls/engine/amxmod_compat.cpp b/dlls/engine/amxmod_compat.cpp +--- a/dlls/engine/amxmod_compat.cpp ++++ b/dlls/engine/amxmod_compat.cpp +@@ -11,18 +11,18 @@ static int gmsgDamage = 0; + static int gmsgDeathMsg = 0; + static int gmsgScoreInfo = 0; + + //From VexdUM (AMX Mod 2006.2) + //This is not exposed, and is only provided as a compatibility helper. + BOOL is_breakable(edict_t* pBreak) + { + if (FStrEq("func_breakable", STRING(pBreak->v.classname)) +- || FStrEq("func_pushable", STRING(pBreak->v.classname)) +- && pBreak->v.spawnflags & SF_PUSH_BREAKABLE) ++ || (FStrEq("func_pushable", STRING(pBreak->v.classname)) ++ && pBreak->v.spawnflags & SF_PUSH_BREAKABLE)) + { + return true; + } + + return false; + } + + //From VexdUM (AMX Mod 2006.2) +diff --git a/dlls/engine/entity.cpp b/dlls/engine/entity.cpp +--- a/dlls/engine/entity.cpp ++++ b/dlls/engine/entity.cpp +@@ -1465,17 +1465,17 @@ static cell AMX_NATIVE_CALL find_ent_by_ + int oEnt = params[3]; + // Check index to start searching at, 0 must be possible for iEnt. + CHECK_ENTITY(oEnt); + + edict_t *pEnt = INDEXENT2(iEnt); + edict_t *entOwner = INDEXENT2(oEnt); + + //optional fourth parameter is for jghg2 compatibility +- char* sCategory = NULL; ++ const char* sCategory = NULL; + switch(params[4]){ + case 1: sCategory = "target"; break; + case 2: sCategory = "targetname"; break; + default: sCategory = "classname"; + } + + // No need to check if there is a real ent where entOwner points at since we don't access it anyway. + +diff --git a/dlls/engine/sdk/CString.h b/dlls/engine/sdk/CString.h +--- a/dlls/engine/sdk/CString.h ++++ b/dlls/engine/sdk/CString.h +@@ -215,17 +215,17 @@ public: + + if (len < 1) + { + return; + } + + if (is_space(v[len-1])) + { +- for (i=len-1; i>=0; i--) ++ for (i=len-1; i + //========================================================= +-void UTIL_LogPrintf( char *fmt, ... ) ++void UTIL_LogPrintf( const char *fmt, ... ) + { + va_list argptr; + static char string[1024]; + + va_start ( argptr, fmt ); + vsnprintf ( string, sizeof(string), fmt, argptr ); + va_end ( argptr ); + +diff --git a/dlls/engine/sdk/amxxmodule.h b/dlls/engine/sdk/amxxmodule.h +--- a/dlls/engine/sdk/amxxmodule.h ++++ b/dlls/engine/sdk/amxxmodule.h +@@ -15,21 +15,26 @@ + #ifdef USE_METAMOD + #include + #include + #include "osdep.h" + #endif // #ifdef USE_METAMOD + + // DLL Export + #undef DLLEXPORT +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + #define DLLEXPORT __declspec(dllexport) + #else + #define DLLEXPORT __attribute__((visibility("default"))) ++#endif ++ ++#if defined(__linux__) && !defined(LINUX) + #define LINUX ++#elif defined(__APPLE__) && !defined(OSX) ++#define OSX + #endif + + #undef C_DLLEXPORT + #define C_DLLEXPORT extern "C" DLLEXPORT + + // ***** AMXX stuff ***** + + // module interface version was 1 +@@ -61,17 +66,17 @@ struct amxx_module_info_s + + // *** Small stuff *** + // The next section is copied from the amx.h file + // Copyright (c) ITB CompuPhase, 1997-2005 + + #if defined HAVE_STDINT_H + #include + #else +- #if defined __LCC__ || defined __DMC__ || defined LINUX ++ #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__ + #if defined HAVE_INTTYPES_H + #include + #else + #include + #endif + #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L + /* The ISO C99 defines the int16_t and int_32t types. If the compiler got + * here, these types are probably undefined. +@@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t + + #if defined __GNUC__ + #define PACKED __attribute__((packed)) + #else + #define PACKED + #endif + + #if !defined AMX_NO_ALIGN +- #if defined LINUX || defined __FreeBSD__ ++ #if defined LINUX || defined __FreeBSD__ || defined __APPLE__ + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #elif defined MACOS && defined __MWERKS__ + #pragma options align=mac68k + #else + #pragma pack(push) + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #if defined __TURBOC__ + #pragma option -a- /* "pack" pragma for older Borland compilers */ +@@ -390,28 +395,28 @@ enum { + AMX_ERR_INIT, /* AMX not initialized (or doubly initialized) */ + AMX_ERR_USERDATA, /* unable to set user data field (table full) */ + AMX_ERR_INIT_JIT, /* cannot initialize the JIT */ + AMX_ERR_PARAMS, /* parameter error */ + AMX_ERR_DOMAIN, /* domain error, expression result does not fit in range */ + }; + + #if !defined AMX_NO_ALIGN +- #if defined __linux__ ++ #if defined(__linux__) || defined(__APPLE__) + #pragma pack() /* reset default packing */ + #else + #pragma pack(pop) /* reset previous packing */ + #endif + #endif + + + // ***** declare functions ***** + + #ifdef USE_METAMOD +-void UTIL_LogPrintf( char *fmt, ... ); ++void UTIL_LogPrintf( const char *fmt, ... ); + void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage); + short FixedSigned16( float value, float scale ); + unsigned short FixedUnsigned16( float value, float scale ); + + #ifdef FN_META_QUERY + void FN_META_QUERY(void); + #endif // FN_META_QUERY + +@@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict + + #ifdef FN_AllowLagCompensation_Post + int FN_AllowLagCompensation_Post(void); + #endif // FN_AllowLagCompensation_Post + + + + #ifdef FN_PrecacheModel +-int FN_PrecacheModel(char *s); ++int FN_PrecacheModel(const char *s); + #endif // FN_PrecacheModel + + #ifdef FN_PrecacheSound +-int FN_PrecacheSound(char *s); ++int FN_PrecacheSound(const char *s); + #endif // FN_PrecacheSound + + #ifdef FN_SetModel + void FN_SetModel(edict_t *e, const char *m); + #endif // FN_SetModel + + #ifdef FN_ModelIndex + int FN_ModelIndex(const char *m); +@@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m); + int FN_ModelFrames(int modelIndex); + #endif // FN_ModelFrames + + #ifdef FN_SetSize + void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize + + #ifdef FN_ChangeLevel +-void FN_ChangeLevel(char *s1, char *s2); ++void FN_ChangeLevel(const char *s1, const char *s2); + #endif // FN_ChangeLevel + + #ifdef FN_GetSpawnParms + void FN_GetSpawnParms(edict_t *ent); + #endif // FN_GetSpawnParms + + #ifdef FN_SaveSpawnParms + void FN_SaveSpawnParms(edict_t *ent); +@@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien + int FN_NumberOfEntities(void); + #endif // FN_NumberOfEntities + + #ifdef FN_GetInfoKeyBuffer + char *FN_GetInfoKeyBuffer(edict_t *e); + #endif // FN_GetInfoKeyBuffer + + #ifdef FN_InfoKeyValue +-char *FN_InfoKeyValue(char *infobuffer, char *key); ++char *FN_InfoKeyValue(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue + + #ifdef FN_SetKeyValue +-void FN_SetKeyValue(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue + + #ifdef FN_SetClientKeyValue +-void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue + + #ifdef FN_IsMapValid +-int FN_IsMapValid(char *filename); ++int FN_IsMapValid(const char *filename); + #endif // FN_IsMapValid + + #ifdef FN_StaticDecal + void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal + + #ifdef FN_PrecacheGeneric +-int FN_PrecacheGeneric(char *s); ++int FN_PrecacheGeneric(const char *s); + #endif // FN_PrecacheGeneric + + #ifdef FN_GetPlayerUserId + int FN_GetPlayerUserId(edict_t *e ); + #endif // FN_GetPlayerUserId + + #ifdef FN_BuildSoundMsg + void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t * + #endif // FN_GetPlayerAuthId + + + + + + + #ifdef FN_PrecacheModel_Post +-int FN_PrecacheModel_Post(char *s); ++int FN_PrecacheModel_Post(const char *s); + #endif // FN_PrecacheModel_Post + + #ifdef FN_PrecacheSound_Post +-int FN_PrecacheSound_Post(char *s); ++int FN_PrecacheSound_Post(const char *s); + #endif // FN_PrecacheSound_Post + + #ifdef FN_SetModel_Post + void FN_SetModel_Post(edict_t *e, const char *m); + #endif // FN_SetModel_Post + + #ifdef FN_ModelIndex_Post + int FN_ModelIndex_Post(const char *m); +@@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m); + int FN_ModelFrames_Post(int modelIndex); + #endif // FN_ModelFrames_Post + + #ifdef FN_SetSize_Post + void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize_Post + + #ifdef FN_ChangeLevel_Post +-void FN_ChangeLevel_Post(char *s1, char *s2); ++void FN_ChangeLevel_Post(const char *s1, const char *s2); + #endif // FN_ChangeLevel_Post + + #ifdef FN_GetSpawnParms_Post + void FN_GetSpawnParms_Post(edict_t *ent); + #endif // FN_GetSpawnParms_Post + + #ifdef FN_SaveSpawnParms_Post + void FN_SaveSpawnParms_Post(edict_t *ent); +@@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake + int FN_NumberOfEntities_Post(void); + #endif // FN_NumberOfEntities_Post + + #ifdef FN_GetInfoKeyBuffer_Post + char *FN_GetInfoKeyBuffer_Post(edict_t *e); + #endif // FN_GetInfoKeyBuffer_Post + + #ifdef FN_InfoKeyValue_Post +-char *FN_InfoKeyValue_Post(char *infobuffer, char *key); ++char *FN_InfoKeyValue_Post(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue_Post + + #ifdef FN_SetKeyValue_Post +-void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue_Post + + #ifdef FN_SetClientKeyValue_Post +-void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue_Post + + #ifdef FN_IsMapValid_Post +-int FN_IsMapValid_Post(char *filename); ++int FN_IsMapValid_Post(const char *filename); + #endif // FN_IsMapValid_Post + + #ifdef FN_StaticDecal_Post + void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal_Post + + #ifdef FN_PrecacheGeneric_Post +-int FN_PrecacheGeneric_Post(char *s); ++int FN_PrecacheGeneric_Post(const char *s); + #endif // FN_PrecacheGeneric_Post + + #ifdef FN_GetPlayerUserId_Post + int FN_GetPlayerUserId_Post(edict_t *e ); + #endif // FN_GetPlayerUserId_Post + + #ifdef FN_BuildSoundMsg_Post + void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -2111,17 +2116,17 @@ enum LibType + + typedef void (*AUTHORIZEFUNC)(int player, const char *authstring); + + typedef int (*PFN_ADD_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef int (*PFN_ADD_NEW_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef char * (*PFN_BUILD_PATHNAME) (const char * /*format*/, ...); + typedef char * (*PFN_BUILD_PATHNAME_R) (char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...); + typedef cell * (*PFN_GET_AMXADDR) (AMX * /*amx*/, cell /*offset*/); +-typedef void (*PFN_PRINT_SRVCONSOLE) (char * /*format*/, ...); ++typedef void (*PFN_PRINT_SRVCONSOLE) (const char * /*format*/, ...); + typedef const char * (*PFN_GET_MODNAME) (void); + typedef const char * (*PFN_GET_AMXSCRIPTNAME) (int /*id*/); + typedef AMX * (*PFN_GET_AMXSCRIPT) (int /*id*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYAMX) (const AMX * /*amx*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYNAME) (const char * /*name*/); + typedef int (*PFN_SET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */); + typedef char * (*PFN_GET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/); + typedef int (*PFN_GET_AMXSTRINGLEN) (const cell *ptr); +@@ -2170,18 +2175,18 @@ typedef void * (*PFN_ALLOCATOR) (co + typedef void * (*PFN_REALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ ); + typedef void (*PFN_DEALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const void* /*addr*/ ); + #endif + typedef int (*PFN_AMX_EXEC) (AMX* /*amx*/, cell* /*return val*/, int /*index*/); + typedef int (*PFN_AMX_EXECV) (AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/); + typedef int (*PFN_AMX_ALLOT) (AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/); +-typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); +-typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); + typedef int (*PFN_LOAD_AMXSCRIPT) (AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */); + typedef int (*PFN_UNLOAD_AMXSCRIPT) (AMX* /*amx*/,void** /*code*/); + typedef cell (*PFN_REAL_TO_CELL) (REAL /*x*/); + typedef REAL (*PFN_CELL_TO_REAL) (cell /*x*/); + typedef int (*PFN_REGISTER_SPFORWARD) (AMX * /*amx*/, int /*func*/, ... /*params*/); + typedef int (*PFN_REGISTER_SPFORWARD_BYNAME) (AMX * /*amx*/, const char * /*funcName*/, ... /*params*/); + typedef void (*PFN_UNREGISTER_SPFORWARD) (int /*id*/); + typedef void (*PFN_MERGEDEFINITION_FILE) (const char * /*filename*/); +diff --git a/dlls/fakemeta/Makefile b/dlls/fakemeta/Makefile +--- a/dlls/fakemeta/Makefile ++++ b/dlls/fakemeta/Makefile +@@ -1,81 +1,125 @@ +-#(C)2004-2005 AMX Mod X Development Team ++# (C)2004-2013 AMX Mod X Development Team + # Makefile written by David "BAILOPAN" Anderson + +-HLSDK = ../../../hlsdk ++########################################### ++### EDIT THESE PATHS FOR YOUR OWN SETUP ### ++########################################### ++ ++HLSDK = ../../../hlsdk/multiplayer + MM_ROOT = ../../../metamod/metamod + ++##################################### + ### EDIT BELOW FOR OTHER PROJECTS ### ++##################################### + +-OPT_FLAGS = -O3 -funroll-loops -s -pipe -fno-strict-aliasing -fomit-frame-pointer +-DEBUG_FLAGS = -g -ggdb3 +-CPP = gcc-4.1 +-NAME = fakemeta +- +-BIN_SUFFIX_32 = amxx_i386.so +-BIN_SUFFIX_64 = amxx_amd64.so ++PROJECT = fakemeta + + OBJECTS = sdk/amxxmodule.cpp dllfunc.cpp engfunc.cpp fakemeta_amxx.cpp pdata.cpp forward.cpp \ +- fm_tr.cpp pev.cpp glb.cpp fm_tr2.cpp misc.cpp ++ fm_tr.cpp pev.cpp glb.cpp fm_tr2.cpp misc.cpp ++ ++############################################## ++### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ### ++############################################## ++ ++C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -fomit-frame-pointer -pipe ++C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3 ++C_GCC4_FLAGS = -fvisibility=hidden ++CPP_GCC4_FLAGS = -fvisibility-inlines-hidden ++CPP = gcc ++CPP_OSX = clang + + LINK = + +-INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \ +- -I$(MM_ROOT) -I$(HLSDK)/common -I$(HLSDK)/pm_shared -Isdk ++INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \ ++ -I$(HLSDK)/pm_shared -I$(MM_ROOT) -Isdk + +-GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++################################################ ++### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ### ++################################################ + +-ifeq "$(GCC_VERSION)" "4" +- OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden ++OS := $(shell uname -s) ++ ++ifeq "$(OS)" "Darwin" ++ CPP = $(CPP_OSX) ++ LIB_EXT = dylib ++ LIB_SUFFIX = _amxx ++ CFLAGS += -DOSX ++ LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5 ++else ++ LIB_EXT = so ++ LIB_SUFFIX = _amxx_i386 ++ CFLAGS += -DLINUX ++ LINK += -shared + endif + ++LINK += -m32 -lm -ldl ++ ++CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror \ ++ -Wno-invalid-offsetof ++CPPFLAGS += -fno-exceptions -fno-rtti ++ ++BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT) + + ifeq "$(DEBUG)" "true" + BIN_DIR = Debug +- CFLAGS = $(DEBUG_FLAGS) ++ CFLAGS += $(C_DEBUG_FLAGS) + else + BIN_DIR = Release +- CFLAGS = $(OPT_FLAGS) ++ CFLAGS += $(C_OPT_FLAGS) ++ LINK += -s + endif + +-CFLAGS += -DNDEBUG -Wall -Wno-non-virtual-dtor -Werror -fno-exceptions -DHAVE_STDINT_H -static-libgcc -fno-rtti -Wno-invalid-offsetof -m32 ++IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0") + +-ifeq "$(AMD64)" "true" +- BINARY = $(NAME)_$(BIN_SUFFIX_64) +- CFLAGS += -DPAWN_CELL_SIZE=64 -DHAVE_I64 -m64 ++ifeq "$(IS_CLANG)" "1" ++ CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/") ++ CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/") + else +- BINARY = $(NAME)_$(BIN_SUFFIX_32) +- CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 +- OPT_FLAGS += -march=i586 ++ CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++ CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3) + endif + +-OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++# Clang || GCC >= 4 ++ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1" ++ CFLAGS += $(C_GCC4_FLAGS) ++ CPPFLAGS += $(CPP_GCC4_FLAGS) ++endif ++ ++# Clang >= 3 || GCC >= 4.7 ++ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1" ++ CFLAGS += -Wno-delete-non-virtual-dtor ++endif ++ ++# OS is Linux and not using clang ++ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1" ++ LINK += -static-libgcc ++endif ++ ++OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++ ++# This will break if we include other Makefiles, but is fine for now. It allows ++# us to make a copy of this file that uses altered paths (ie. Makefile.mine) ++# or other changes without mucking up the original. ++MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) + + $(BIN_DIR)/%.o: %.cpp +- $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< ++ $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< + + all: + mkdir -p $(BIN_DIR) + mkdir -p $(BIN_DIR)/sdk +- $(MAKE) fakemeta ++ $(MAKE) -f $(MAKEFILE_NAME) $(PROJECT) + +-amd64: +- $(MAKE) all AMD64=true +- +-fakemeta: $(OBJ_LINUX) +- $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) ++$(PROJECT): $(OBJ_BIN) ++ $(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY) + + debug: +- $(MAKE) all DEBUG=true ++ $(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true + + default: all + + clean: +- rm -rf Release/sdk/*.o +- rm -rf Release/*.o +- rm -rf Release/$(NAME)_$(BIN_SUFFIX_32) +- rm -rf Release/$(NAME)_$(BIN_SUFFIX_64) +- rm -rf Debug/sdk/*.o +- rm -rf Debug/*.o +- rm -rf Debug/$(NAME)_$(BIN_SUFFIX_32) +- rm -rf Debug/$(NAME)_$(BIN_SUFFIX_64) +- ++ rm -rf $(BIN_DIR)/*.o ++ rm -rf $(BIN_DIR)/sdk/*.o ++ rm -f $(BIN_DIR)/$(BINARY) ++ +diff --git a/dlls/fakemeta/dllfunc.cpp b/dlls/fakemeta/dllfunc.cpp +--- a/dlls/fakemeta/dllfunc.cpp ++++ b/dlls/fakemeta/dllfunc.cpp +@@ -2,19 +2,19 @@ + + //by mahnsawce from his NS module + static cell AMX_NATIVE_CALL dllfunc(AMX *amx,cell *params) + { + int type; + int index; + int indexb; + unsigned char *pset; +- char *temp = ""; +- char *temp2 = ""; +- char *temp3 = ""; ++ const char *temp = ""; ++ const char *temp2 = ""; ++ const char *temp3 = ""; + vec3_t Vec1; + vec3_t Vec2; + int iparam1; + int iparam2; + int iparam3; + entity_state_t *es; + int len; + cell *cRet; +@@ -100,17 +100,17 @@ static cell AMX_NATIVE_CALL dllfunc(AMX + case DLLFunc_ClientConnect: // bool) ( edict_t *pEntity, const char *pszName, const char *pszAddress, char szRejectReason[ 128 ] ); + // index,szName,szAddress,szRetRejectReason,size + cRet = MF_GetAmxAddr(amx,params[2]); + index=cRet[0]; + CHECK_ENTITY(index); + temp = MF_GetAmxString(amx,params[3],0,&len); + temp2 = MF_GetAmxString(amx,params[4],1,&len); + //temp3 = GET_AMXSTRING(amx,params[5],2,len); +- iparam1 = MDLL_ClientConnect(INDEXENT2(index),STRING(ALLOC_STRING(temp)),STRING(ALLOC_STRING(temp2)),temp3); ++ iparam1 = MDLL_ClientConnect(INDEXENT2(index),STRING(ALLOC_STRING(temp)),STRING(ALLOC_STRING(temp2)),(char *)temp3); + cRet = MF_GetAmxAddr(amx,params[6]); + MF_SetAmxString(amx,params[5],temp3,cRet[0]); + return iparam1; + + case DLLFunc_ClientDisconnect: // void ) ( edict_t *pEntity ); + cRet = MF_GetAmxAddr(amx,params[2]); + index=cRet[0]; + CHECK_ENTITY(index); +diff --git a/dlls/fakemeta/engfunc.cpp b/dlls/fakemeta/engfunc.cpp +--- a/dlls/fakemeta/engfunc.cpp ++++ b/dlls/fakemeta/engfunc.cpp +@@ -29,25 +29,25 @@ static cell AMX_NATIVE_CALL engfunc(AMX + // float fTemp[3]; + int index; + unsigned char *pset; + edict_t *pRet=NULL; + // Now start calling.. :/ + switch (type) + { + // pfnPrecacheModel +- case EngFunc_PrecacheModel: // int ) (char* s); ++ case EngFunc_PrecacheModel: // int ) (const char* s); + temp = MF_GetAmxString(amx,params[2],0,&len); + if (temp[0]==0) + return 0; +- return (*g_engfuncs.pfnPrecacheModel)((char*)STRING(ALLOC_STRING(temp))); ++ return (*g_engfuncs.pfnPrecacheModel)((char *)STRING(ALLOC_STRING(temp))); + + + // pfnPrecacheSound +- case EngFunc_PrecacheSound: // int ) (char* s); ++ case EngFunc_PrecacheSound: // int ) (const char* s); + temp = MF_GetAmxString(amx,params[2],0,&len); + if (temp[0]==0) + return 0; + return (*g_engfuncs.pfnPrecacheSound)((char*)STRING(ALLOC_STRING(temp))); + + + // pfnSetModel + case EngFunc_SetModel: // void ) (edict_t *e, const char *m); +diff --git a/dlls/fakemeta/forward.cpp b/dlls/fakemeta/forward.cpp +--- a/dlls/fakemeta/forward.cpp ++++ b/dlls/fakemeta/forward.cpp +@@ -78,20 +78,20 @@ static cell AMX_NATIVE_CALL fm_return(AM + + return 1; + } + /* + * Begining of Game DLL->Engine hooks + */ + + // pfnPrecacheModel +-SIMPLE_INT_HOOK_STRING(PrecacheModel); ++SIMPLE_INT_HOOK_CONSTSTRING(PrecacheModel); + + // pfnPrecacheSound +-SIMPLE_INT_HOOK_STRING(PrecacheSound); ++SIMPLE_INT_HOOK_CONSTSTRING(PrecacheSound); + + void ClientUserInfoChanged(edict_t *e, char *infobuffer) + { + FM_ENG_HANDLE(FM_ClientUserInfoChanged, (Engine[FM_ClientUserInfoChanged].at(i), (cell)ENTINDEX(e), (cell)infobuffer)); + RETURN_META(mswi(lastFmRes)); + } + + void ClientUserInfoChanged_post(edict_t *e, char *infobuffer) +@@ -256,28 +256,28 @@ void KeyValue(edict_t* entity, KeyValueD + + void KeyValue_post(edict_t* entity, KeyValueData* data) + { + g_kvd_hook.kvd = data; + FM_ENG_HANDLE_POST(FM_KeyValue, (EnginePost[FM_KeyValue].at(i), (cell)ENTINDEX(entity), (cell)(&g_kvd_hook))); + RETURN_META(MRES_IGNORED); + } + +-void AlertMessage(ALERT_TYPE atype, char *szFmt, ...) ++void AlertMessage(ALERT_TYPE atype, const char *szFmt, ...) + { + static char buf[2048]; + va_list ap; + va_start(ap, szFmt); + vsprintf(buf, szFmt, ap); + va_end(ap); + FM_ENG_HANDLE(FM_AlertMessage, (Engine[FM_AlertMessage].at(i), (cell)atype, buf)); + RETURN_META(mswi(lastFmRes)); + } + +-void AlertMessage_post(ALERT_TYPE atype, char *szFmt, ...) ++void AlertMessage_post(ALERT_TYPE atype, const char *szFmt, ...) + { + static char buf[2048]; + va_list ap; + va_start(ap, szFmt); + vsprintf(buf, szFmt, ap); + va_end(ap); + FM_ENG_HANDLE_POST(FM_AlertMessage, (EnginePost[FM_AlertMessage].at(i), (cell)atype, buf)); + RETURN_META(MRES_IGNORED); +@@ -288,17 +288,17 @@ SIMPLE_INT_HOOK_CONSTSTRING(ModelIndex); + + // pfnModelFrames + SIMPLE_INT_HOOK_INT(ModelFrames); + + // pfnSetSize + SIMPLE_VOID_HOOK_EDICT_CONSTVECT_CONSTVECT(SetSize); + + // pfnChangeLevel +-SIMPLE_VOID_HOOK_STRING_STRING(ChangeLevel); ++SIMPLE_VOID_HOOK_CONSTSTRING_CONSTSTRING(ChangeLevel); + + // pfnVecToYaw + SIMPLE_FLOAT_HOOK_CONSTVECT(VecToYaw); + + void VecToAngles(const float *rgflVectorIn, float *rgflVectorOut) + { + PREPARE_VECTOR(rgflVectorIn); + PREPARE_VECTOR(rgflVectorOut); +@@ -502,17 +502,17 @@ SIMPLE_FLOAT_HOOK_VOID(Time); + SIMPLE_VOID_HOOK_CONSTEDICT_FLOAT_FLOAT(CrosshairAngle); + + SIMPLE_VOID_HOOK_CONSTEDICT_INT_INT_INT_INT(FadeClientVolume); + + // pfnSetClientMaxspeed + SIMPLE_VOID_HOOK_CONSTEDICT_FLOAT(SetClientMaxspeed); + + // pfnPrecacheGeneric +-SIMPLE_INT_HOOK_STRING(PrecacheGeneric); ++SIMPLE_INT_HOOK_CONSTSTRING(PrecacheGeneric); + + // pfnPrecacheEvent + SIMPLE_USHORT_HOOK_INT_CONSTSTRING(PrecacheEvent); + + // pfnGetPhysicsKeyValue + SIMPLE_CONSTSTRING_HOOK_CONSTEDICT_CONSTSTRING(GetPhysicsKeyValue); + + // pfnSetPhysicsKeyValue +@@ -595,27 +595,27 @@ SIMPLE_INT_HOOK_CONSTEDICT(CanSkipPlayer + SIMPLE_VOID_HOOK_INT_INT(SetGroupMask); + + // pfnVoice_GetClientListening + SIMPLE_BOOL_HOOK_INT_INT(Voice_GetClientListening); + + // pfnVoice_SetClientListening + SIMPLE_BOOL_HOOK_INT_INT_BOOL(Voice_SetClientListening); + +-SIMPLE_STRING_HOOK_STRING_STRING(InfoKeyValue); ++SIMPLE_STRING_HOOK_STRING_CONSTSTRING(InfoKeyValue); + +-SIMPLE_VOID_HOOK_STRING_STRING_STRING(SetKeyValue); ++SIMPLE_VOID_HOOK_STRING_CONSTSTRING_CONSTSTRING(SetKeyValue); + +-SIMPLE_VOID_HOOK_INT_STRING_STRING_STRING(SetClientKeyValue); ++SIMPLE_VOID_HOOK_INT_STRING_CONSTSTRING_CONSTSTRING(SetClientKeyValue); + + SIMPLE_CONSTSTRING_HOOK_EDICT(GetPlayerAuthId); + + SIMPLE_UINT_HOOK_EDICT(GetPlayerWONId); + +-SIMPLE_INT_HOOK_STRING(IsMapValid); ++SIMPLE_INT_HOOK_CONSTSTRING(IsMapValid); + + int CreateInstancedBaseline(int classname, struct entity_state_s *baseline) + { + g_es_hook = baseline; + FM_ENG_HANDLE(FM_CreateInstancedBaseline, (Engine[FM_CreateInstancedBaseline].at(i), (cell)classname, (cell)baseline)); + RETURN_META_VALUE(mswi(lastFmRes), (int)mlCellResult); + } + +@@ -720,17 +720,17 @@ SIMPLE_VOID_HOOK_EDICT(SpectatorDisconne + + // pfnSpectatorThink + SIMPLE_VOID_HOOK_EDICT(SpectatorThink); + + // pfnSys_Error + SIMPLE_VOID_HOOK_CONSTSTRING(Sys_Error); + + // pfnPM_FindTextureType +-SIMPLE_CHAR_HOOK_STRING(PM_FindTextureType); ++SIMPLE_CHAR_HOOK_CONSTSTRING(PM_FindTextureType); + + // pfnRegisterEncoders + SIMPLE_VOID_HOOK_VOID(RegisterEncoders); + + // pfnCreateInstancedBaselines + SIMPLE_VOID_HOOK_VOID(CreateInstancedBaselines); + + // pfnAllowLagCompensation +diff --git a/dlls/fakemeta/forwardmacros.h b/dlls/fakemeta/forwardmacros.h +--- a/dlls/fakemeta/forwardmacros.h ++++ b/dlls/fakemeta/forwardmacros.h +@@ -70,40 +70,77 @@ + RETURN_META(mswi(lastFmRes)); \ + } \ + void call##_post (int v, char *c, char *cb, char *cc) \ + { \ + FM_ENG_HANDLE_POST(FM_##call, (EnginePost[FM_##call].at(i),(cell)v,c,cb,cc)); \ + RETURN_META(MRES_IGNORED); \ + } + ++#define SIMPLE_VOID_HOOK_INT_STRING_CONSTSTRING_CONSTSTRING(call) \ ++ void call (int v,char *c, const char *cb, const char *cc) \ ++ { \ ++ FM_ENG_HANDLE(FM_##call, (Engine[FM_##call].at(i),(cell)v,c,cb,cc)); \ ++ RETURN_META(mswi(lastFmRes)); \ ++ } \ ++ void call##_post (int v, char *c, const char *cb, const char *cc) \ ++ { \ ++ FM_ENG_HANDLE_POST(FM_##call, (EnginePost[FM_##call].at(i),(cell)v,c,cb,cc)); \ ++ RETURN_META(MRES_IGNORED); \ ++ } ++ ++ + #define SIMPLE_VOID_HOOK_STRING_STRING_STRING(call) \ + void call (char *c, char *cb, char *cc) \ + { \ + FM_ENG_HANDLE(FM_##call, (Engine[FM_##call].at(i),c,cb,cc)); \ + RETURN_META(mswi(lastFmRes)); \ + } \ + void call##_post (char *c, char *cb, char *cc) \ + { \ + FM_ENG_HANDLE_POST(FM_##call, (EnginePost[FM_##call].at(i),c,cb,cc)); \ + RETURN_META(MRES_IGNORED); \ + } + ++#define SIMPLE_VOID_HOOK_STRING_CONSTSTRING_CONSTSTRING(call) \ ++ void call (char *c, const char *cb, const char *cc) \ ++ { \ ++ FM_ENG_HANDLE(FM_##call, (Engine[FM_##call].at(i),c,cb,cc)); \ ++ RETURN_META(mswi(lastFmRes)); \ ++ } \ ++ void call##_post (char *c, const char *cb, const char *cc) \ ++ { \ ++ FM_ENG_HANDLE_POST(FM_##call, (EnginePost[FM_##call].at(i),c,cb,cc)); \ ++ RETURN_META(MRES_IGNORED); \ ++ } ++ + #define SIMPLE_STRING_HOOK_STRING_STRING(call) \ + char* call (char *c, char *cb) \ + { \ + FM_ENG_HANDLE(FM_##call, (Engine[FM_##call].at(i),c,cb)); \ + RETURN_META_VALUE(mswi(lastFmRes), (char*)mlStringResult); \ + } \ + char* call##_post (char *c, char *cb) \ + { \ + origStringRet = META_RESULT_ORIG_RET(char *); \ + FM_ENG_HANDLE_POST(FM_##call, (EnginePost[FM_##call].at(i),c,cb)); \ + RETURN_META_VALUE(MRES_IGNORED, (char*)mlStringResult); \ + } ++#define SIMPLE_STRING_HOOK_STRING_CONSTSTRING(call) \ ++ char* call (char *c, const char *cb) \ ++ { \ ++ FM_ENG_HANDLE(FM_##call, (Engine[FM_##call].at(i),c,cb)); \ ++ RETURN_META_VALUE(mswi(lastFmRes), (char*)mlStringResult); \ ++ } \ ++ char* call##_post (char *c, const char *cb) \ ++ { \ ++ origStringRet = META_RESULT_ORIG_RET(char *); \ ++ FM_ENG_HANDLE_POST(FM_##call, (EnginePost[FM_##call].at(i),c,cb)); \ ++ RETURN_META_VALUE(MRES_IGNORED, (char*)mlStringResult); \ ++ } + #define SIMPLE_CONSTSTRING_HOOK_EDICT(call) \ + const char* call (edict_t *e) \ + { \ + FM_ENG_HANDLE(FM_##call, (Engine[FM_##call].at(i),(cell)ENTINDEX(e))); \ + RETURN_META_VALUE(mswi(lastFmRes), mlStringResult); \ + } \ + const char* call##_post (edict_t *e) \ + { \ +@@ -170,16 +207,29 @@ + RETURN_META_VALUE(mswi(lastFmRes), (char)mlCellResult); \ + } \ + char call##_post (char *s) \ + { \ + origCellRet = META_RESULT_ORIG_RET(char); \ + FM_ENG_HANDLE_POST(FM_##call, (EnginePost[FM_##call].at(i), s)); \ + RETURN_META_VALUE(MRES_IGNORED, (char)mlCellResult); \ + } ++#define SIMPLE_CHAR_HOOK_CONSTSTRING(call) \ ++ char call (const char *s) \ ++ { \ ++ FM_ENG_HANDLE(FM_##call, (Engine[FM_##call].at(i), s)); \ ++ RETURN_META_VALUE(mswi(lastFmRes), (char)mlCellResult); \ ++ } \ ++ char call##_post (const char *s) \ ++ { \ ++ origCellRet = META_RESULT_ORIG_RET(char); \ ++ FM_ENG_HANDLE_POST(FM_##call, (EnginePost[FM_##call].at(i), s)); \ ++ RETURN_META_VALUE(MRES_IGNORED, (char)mlCellResult); \ ++ } ++ + #define SIMPLE_VOID_HOOK_CONSTSTRING(call) \ + void call (const char *s) \ + { \ + FM_ENG_HANDLE(FM_##call, (Engine[FM_##call].at(i), s)); \ + RETURN_META(mswi(lastFmRes)); \ + } \ + void call##_post (const char *s) \ + { \ +diff --git a/dlls/fakemeta/pdata.cpp b/dlls/fakemeta/pdata.cpp +--- a/dlls/fakemeta/pdata.cpp ++++ b/dlls/fakemeta/pdata.cpp +@@ -1,10 +1,22 @@ + #include "fakemeta_amxx.h" + ++#if defined PAWN_CELL_SIZE ++# if PAWN_CELL_SIZE == 16 ++# define CELL_MIN SHRT_MIN ++# elif PAWN_CELL_SIZE == 32 ++# define CELL_MIN INT_MIN ++# elif PAWN_CELL_SIZE == 64 ++# define CELL_MIN _I64_MIN ++# endif ++#else ++# define CELL_MIN _I32_MIN ++#endif ++ + #if defined WIN32 + #define WINDOWS_LEAN_AND_MEAN + #include + #else + //implement these with setjmp later. + bool IsBadReadPtr(void *l, size_t size) + { + return false; +@@ -19,71 +31,104 @@ static cell AMX_NATIVE_CALL set_pdata_in + { + int index=params[1]; + CHECK_ENTITY(index); + int iOffset=params[2]; + if (iOffset <0) + return 1; + #ifdef __linux__ + iOffset += params[4]; ++#elif defined __APPLE__ ++ // Use Linux offset in older plugins ++ if (params[0] / sizeof(cell) == 4) ++ iOffset += params[4]; ++ else ++ iOffset += params[5]; + #endif + int iValue=params[3]; + *((int *)INDEXENT2(index)->pvPrivateData + iOffset) = iValue; + return 1; + } + static cell AMX_NATIVE_CALL get_pdata_int(AMX *amx, cell *params) + { + int index=params[1]; + CHECK_ENTITY(index); + int iOffset=params[2]; + if (iOffset <0) + return 0; + #ifdef __linux__ + iOffset += params[3]; ++#elif defined __APPLE__ ++ // Use Linux offset in older plugins ++ if (params[0] / sizeof(cell) == 3) ++ iOffset += params[3]; ++ else ++ iOffset += params[4]; + #endif ++ + return *((int *)INDEXENT2(index)->pvPrivateData + iOffset); + } + // Float + static cell AMX_NATIVE_CALL set_pdata_float(AMX *amx, cell *params) + { + int index=params[1]; + CHECK_ENTITY(index); + int iOffset=params[2]; + if (iOffset <0) + return 1; + #ifdef __linux__ + iOffset += params[4]; ++#elif defined __APPLE__ ++ // Use Linux offset in older plugins ++ if (params[0] / sizeof(cell) == 4) ++ iOffset += params[4]; ++ else ++ iOffset += params[5]; + #endif ++ + float fValue=amx_ctof(params[3]); + *((float *)INDEXENT2(index)->pvPrivateData + iOffset) = fValue; + return 1; + } + static cell AMX_NATIVE_CALL get_pdata_float(AMX *amx, cell *params) + { + int index=params[1]; + CHECK_ENTITY(index); + int iOffset=params[2]; + if (iOffset <0) + return 1; + #ifdef __linux__ + iOffset += params[3]; ++#elif defined __APPLE__ ++ // Use Linux offset in older plugins ++ if (params[0] / sizeof(cell) == 3) ++ iOffset += params[3]; ++ else ++ iOffset += params[4]; + #endif ++ + return amx_ftoc(*((float *)INDEXENT2(index)->pvPrivateData + iOffset)); + } + + static cell AMX_NATIVE_CALL get_pdata_string(AMX *amx, cell *params) + { + int index=params[1]; + CHECK_ENTITY(index); + + int iOffset=params[2]; + if (iOffset <0) + return 1; + #ifdef __linux__ + iOffset += params[6]; ++#elif defined __APPLE__ ++ // Use Linux offset in older plugins ++ if (params[0] / sizeof(cell) == 6 || params[7] == CELL_MIN) ++ iOffset += params[6]; ++ else ++ iOffset += params[7]; + #endif + + edict_t *pEdict = INDEXENT2(index); + + char *szData; + if (params[5]) + { + szData = *((char **)pEdict->pvPrivateData + iOffset); +@@ -106,16 +151,22 @@ static cell AMX_NATIVE_CALL set_pdata_st + int index=params[1]; + CHECK_ENTITY(index); + + int iOffset=params[2]; + if (iOffset <0) + return 1; + #ifdef __linux__ + iOffset += params[5]; ++#elif defined __APPLE__ ++ // Use Linux offset in older plugins ++ if (params[0] / sizeof(cell) == 5 || params[6] == CELL_MIN) ++ iOffset += params[5]; ++ else ++ iOffset += params[6]; + #endif + + edict_t *pEdict = INDEXENT2(index); + + char *szData; + int len; + char *data = MF_GetAmxString(amx, params[3], 0, &len); + if (params[4] == -1) +@@ -147,16 +198,22 @@ static cell AMX_NATIVE_CALL get_pdata_en + { + int index=params[1]; + int iOffset=params[2]; + + CHECK_ENTITY(index); + + #ifdef __linux__ + iOffset += params[3]; ++#elif defined __APPLE__ ++ // Use Linux offset in older plugins ++ if (params[0] / sizeof(cell) == 3) ++ iOffset += params[3]; ++ else ++ iOffset += params[4]; + #endif + + edict_t *pEdict = *(edict_t **)((char *)(INDEXENT2(index)->pvPrivateData) + iOffset); + + if (pEdict == NULL) + { + return -1; + } +diff --git a/dlls/fakemeta/sdk/CString.h b/dlls/fakemeta/sdk/CString.h +--- a/dlls/fakemeta/sdk/CString.h ++++ b/dlls/fakemeta/sdk/CString.h +@@ -239,17 +239,17 @@ public: + + if (len < 1) + { + return; + } + + if (is_space(v[len-1])) + { +- for (i=len-1; i>=0; i--) ++ for (i=len-1; i + //========================================================= +-void UTIL_LogPrintf( char *fmt, ... ) ++void UTIL_LogPrintf( const char *fmt, ... ) + { + va_list argptr; + static char string[1024]; + + va_start ( argptr, fmt ); + vsnprintf ( string, sizeof(string), fmt, argptr ); + va_end ( argptr ); + +diff --git a/dlls/fakemeta/sdk/amxxmodule.h b/dlls/fakemeta/sdk/amxxmodule.h +--- a/dlls/fakemeta/sdk/amxxmodule.h ++++ b/dlls/fakemeta/sdk/amxxmodule.h +@@ -15,21 +15,26 @@ + #ifdef USE_METAMOD + #include + #include + #include "osdep.h" + #endif // #ifdef USE_METAMOD + + // DLL Export + #undef DLLEXPORT +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + #define DLLEXPORT __declspec(dllexport) + #else + #define DLLEXPORT __attribute__((visibility("default"))) ++#endif ++ ++#if defined(__linux__) && !defined(LINUX) + #define LINUX ++#elif defined(__APPLE__) && !defined(OSX) ++#define OSX + #endif + + #undef C_DLLEXPORT + #define C_DLLEXPORT extern "C" DLLEXPORT + + // ***** AMXX stuff ***** + + // module interface version was 1 +@@ -61,17 +66,17 @@ struct amxx_module_info_s + + // *** Small stuff *** + // The next section is copied from the amx.h file + // Copyright (c) ITB CompuPhase, 1997-2005 + + #if defined HAVE_STDINT_H + #include + #else +- #if defined __LCC__ || defined __DMC__ || defined LINUX ++ #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__ + #if defined HAVE_INTTYPES_H + #include + #else + #include + #endif + #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L + /* The ISO C99 defines the int16_t and int_32t types. If the compiler got + * here, these types are probably undefined. +@@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t + + #if defined __GNUC__ + #define PACKED __attribute__((packed)) + #else + #define PACKED + #endif + + #if !defined AMX_NO_ALIGN +- #if defined LINUX || defined __FreeBSD__ ++ #if defined LINUX || defined __FreeBSD__ || defined __APPLE__ + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #elif defined MACOS && defined __MWERKS__ + #pragma options align=mac68k + #else + #pragma pack(push) + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #if defined __TURBOC__ + #pragma option -a- /* "pack" pragma for older Borland compilers */ +@@ -390,28 +395,28 @@ enum { + AMX_ERR_INIT, /* AMX not initialized (or doubly initialized) */ + AMX_ERR_USERDATA, /* unable to set user data field (table full) */ + AMX_ERR_INIT_JIT, /* cannot initialize the JIT */ + AMX_ERR_PARAMS, /* parameter error */ + AMX_ERR_DOMAIN, /* domain error, expression result does not fit in range */ + }; + + #if !defined AMX_NO_ALIGN +- #if defined __linux__ ++ #if defined(__linux__) || defined(__APPLE__) + #pragma pack() /* reset default packing */ + #else + #pragma pack(pop) /* reset previous packing */ + #endif + #endif + + + // ***** declare functions ***** + + #ifdef USE_METAMOD +-void UTIL_LogPrintf( char *fmt, ... ); ++void UTIL_LogPrintf( const char *fmt, ... ); + void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage); + short FixedSigned16( float value, float scale ); + unsigned short FixedUnsigned16( float value, float scale ); + + #ifdef FN_META_QUERY + void FN_META_QUERY(void); + #endif // FN_META_QUERY + +@@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict + + #ifdef FN_AllowLagCompensation_Post + int FN_AllowLagCompensation_Post(void); + #endif // FN_AllowLagCompensation_Post + + + + #ifdef FN_PrecacheModel +-int FN_PrecacheModel(char *s); ++int FN_PrecacheModel(const char *s); + #endif // FN_PrecacheModel + + #ifdef FN_PrecacheSound +-int FN_PrecacheSound(char *s); ++int FN_PrecacheSound(const char *s); + #endif // FN_PrecacheSound + + #ifdef FN_SetModel + void FN_SetModel(edict_t *e, const char *m); + #endif // FN_SetModel + + #ifdef FN_ModelIndex + int FN_ModelIndex(const char *m); +@@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m); + int FN_ModelFrames(int modelIndex); + #endif // FN_ModelFrames + + #ifdef FN_SetSize + void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize + + #ifdef FN_ChangeLevel +-void FN_ChangeLevel(char *s1, char *s2); ++void FN_ChangeLevel(const char *s1, const char *s2); + #endif // FN_ChangeLevel + + #ifdef FN_GetSpawnParms + void FN_GetSpawnParms(edict_t *ent); + #endif // FN_GetSpawnParms + + #ifdef FN_SaveSpawnParms + void FN_SaveSpawnParms(edict_t *ent); +@@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien + int FN_NumberOfEntities(void); + #endif // FN_NumberOfEntities + + #ifdef FN_GetInfoKeyBuffer + char *FN_GetInfoKeyBuffer(edict_t *e); + #endif // FN_GetInfoKeyBuffer + + #ifdef FN_InfoKeyValue +-char *FN_InfoKeyValue(char *infobuffer, char *key); ++char *FN_InfoKeyValue(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue + + #ifdef FN_SetKeyValue +-void FN_SetKeyValue(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue + + #ifdef FN_SetClientKeyValue +-void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue + + #ifdef FN_IsMapValid +-int FN_IsMapValid(char *filename); ++int FN_IsMapValid(const char *filename); + #endif // FN_IsMapValid + + #ifdef FN_StaticDecal + void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal + + #ifdef FN_PrecacheGeneric +-int FN_PrecacheGeneric(char *s); ++int FN_PrecacheGeneric(const char *s); + #endif // FN_PrecacheGeneric + + #ifdef FN_GetPlayerUserId + int FN_GetPlayerUserId(edict_t *e ); + #endif // FN_GetPlayerUserId + + #ifdef FN_BuildSoundMsg + void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t * + #endif // FN_GetPlayerAuthId + + + + + + + #ifdef FN_PrecacheModel_Post +-int FN_PrecacheModel_Post(char *s); ++int FN_PrecacheModel_Post(const char *s); + #endif // FN_PrecacheModel_Post + + #ifdef FN_PrecacheSound_Post +-int FN_PrecacheSound_Post(char *s); ++int FN_PrecacheSound_Post(const char *s); + #endif // FN_PrecacheSound_Post + + #ifdef FN_SetModel_Post + void FN_SetModel_Post(edict_t *e, const char *m); + #endif // FN_SetModel_Post + + #ifdef FN_ModelIndex_Post + int FN_ModelIndex_Post(const char *m); +@@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m); + int FN_ModelFrames_Post(int modelIndex); + #endif // FN_ModelFrames_Post + + #ifdef FN_SetSize_Post + void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize_Post + + #ifdef FN_ChangeLevel_Post +-void FN_ChangeLevel_Post(char *s1, char *s2); ++void FN_ChangeLevel_Post(const char *s1, const char *s2); + #endif // FN_ChangeLevel_Post + + #ifdef FN_GetSpawnParms_Post + void FN_GetSpawnParms_Post(edict_t *ent); + #endif // FN_GetSpawnParms_Post + + #ifdef FN_SaveSpawnParms_Post + void FN_SaveSpawnParms_Post(edict_t *ent); +@@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake + int FN_NumberOfEntities_Post(void); + #endif // FN_NumberOfEntities_Post + + #ifdef FN_GetInfoKeyBuffer_Post + char *FN_GetInfoKeyBuffer_Post(edict_t *e); + #endif // FN_GetInfoKeyBuffer_Post + + #ifdef FN_InfoKeyValue_Post +-char *FN_InfoKeyValue_Post(char *infobuffer, char *key); ++char *FN_InfoKeyValue_Post(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue_Post + + #ifdef FN_SetKeyValue_Post +-void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue_Post + + #ifdef FN_SetClientKeyValue_Post +-void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue_Post + + #ifdef FN_IsMapValid_Post +-int FN_IsMapValid_Post(char *filename); ++int FN_IsMapValid_Post(const char *filename); + #endif // FN_IsMapValid_Post + + #ifdef FN_StaticDecal_Post + void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal_Post + + #ifdef FN_PrecacheGeneric_Post +-int FN_PrecacheGeneric_Post(char *s); ++int FN_PrecacheGeneric_Post(const char *s); + #endif // FN_PrecacheGeneric_Post + + #ifdef FN_GetPlayerUserId_Post + int FN_GetPlayerUserId_Post(edict_t *e ); + #endif // FN_GetPlayerUserId_Post + + #ifdef FN_BuildSoundMsg_Post + void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -2111,17 +2116,17 @@ enum LibType + + typedef void (*AUTHORIZEFUNC)(int player, const char *authstring); + + typedef int (*PFN_ADD_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef int (*PFN_ADD_NEW_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef char * (*PFN_BUILD_PATHNAME) (const char * /*format*/, ...); + typedef char * (*PFN_BUILD_PATHNAME_R) (char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...); + typedef cell * (*PFN_GET_AMXADDR) (AMX * /*amx*/, cell /*offset*/); +-typedef void (*PFN_PRINT_SRVCONSOLE) (char * /*format*/, ...); ++typedef void (*PFN_PRINT_SRVCONSOLE) (const char * /*format*/, ...); + typedef const char * (*PFN_GET_MODNAME) (void); + typedef const char * (*PFN_GET_AMXSCRIPTNAME) (int /*id*/); + typedef AMX * (*PFN_GET_AMXSCRIPT) (int /*id*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYAMX) (const AMX * /*amx*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYNAME) (const char * /*name*/); + typedef int (*PFN_SET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */); + typedef char * (*PFN_GET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/); + typedef int (*PFN_GET_AMXSTRINGLEN) (const cell *ptr); +@@ -2170,18 +2175,18 @@ typedef void * (*PFN_ALLOCATOR) (co + typedef void * (*PFN_REALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ ); + typedef void (*PFN_DEALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const void* /*addr*/ ); + #endif + typedef int (*PFN_AMX_EXEC) (AMX* /*amx*/, cell* /*return val*/, int /*index*/); + typedef int (*PFN_AMX_EXECV) (AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/); + typedef int (*PFN_AMX_ALLOT) (AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/); +-typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); +-typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); + typedef int (*PFN_LOAD_AMXSCRIPT) (AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */); + typedef int (*PFN_UNLOAD_AMXSCRIPT) (AMX* /*amx*/,void** /*code*/); + typedef cell (*PFN_REAL_TO_CELL) (REAL /*x*/); + typedef REAL (*PFN_CELL_TO_REAL) (cell /*x*/); + typedef int (*PFN_REGISTER_SPFORWARD) (AMX * /*amx*/, int /*func*/, ... /*params*/); + typedef int (*PFN_REGISTER_SPFORWARD_BYNAME) (AMX * /*amx*/, const char * /*funcName*/, ... /*params*/); + typedef void (*PFN_UNREGISTER_SPFORWARD) (int /*id*/); + typedef void (*PFN_MERGEDEFINITION_FILE) (const char * /*filename*/); +diff --git a/dlls/fun/Makefile b/dlls/fun/Makefile +--- a/dlls/fun/Makefile ++++ b/dlls/fun/Makefile +@@ -1,78 +1,123 @@ +-#(C)2004-2005 AMX Mod X Development Team ++# (C)2004-2013 AMX Mod X Development Team + # Makefile written by David "BAILOPAN" Anderson + +-HLSDK = ../../../hlsdk ++########################################### ++### EDIT THESE PATHS FOR YOUR OWN SETUP ### ++########################################### ++ ++HLSDK = ../../../hlsdk/multiplayer + MM_ROOT = ../../../metamod/metamod + ++##################################### + ### EDIT BELOW FOR OTHER PROJECTS ### ++##################################### + +-OPT_FLAGS = -O2 -funroll-loops -s -pipe -fomit-frame-pointer -fno-strict-aliasing +-DEBUG_FLAGS = -g -ggdb3 +-CPP = gcc-4.1 +-NAME = fun +- +-BIN_SUFFIX_32 = amxx_i386.so +-BIN_SUFFIX_64 = amxx_amd64.so ++PROJECT = fun + + OBJECTS = sdk/amxxmodule.cpp fun.cpp + +-LINK = ++############################################## ++### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ### ++############################################## + +-INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \ +- -I$(MM_ROOT) -I$(HLSDK)/common -Isdk ++C_OPT_FLAGS = -DNDEBUG -O2 -funroll-loops -fomit-frame-pointer -pipe ++C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3 ++C_GCC4_FLAGS = -fvisibility=hidden ++CPP_GCC4_FLAGS = -fvisibility-inlines-hidden ++CPP = gcc ++CPP_OSX = clang + +-GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++LINK = + +-ifeq "$(GCC_VERSION)" "4" +- OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden ++INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \ ++ -I$(MM_ROOT) -Isdk ++ ++################################################ ++### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ### ++################################################ ++ ++OS := $(shell uname -s) ++ ++ifeq "$(OS)" "Darwin" ++ CPP = $(CPP_OSX) ++ LIB_EXT = dylib ++ LIB_SUFFIX = _amxx ++ CFLAGS += -DOSX ++ LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5 ++else ++ LIB_EXT = so ++ LIB_SUFFIX = _amxx_i386 ++ CFLAGS += -DLINUX ++ LINK += -shared + endif + ++LINK += -m32 -lm -ldl ++ ++CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror ++CPPFLAGS += -fno-exceptions -fno-rtti ++ ++BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT) ++ + ifeq "$(DEBUG)" "true" + BIN_DIR = Debug +- CFLAGS = $(DEBUG_FLAGS) ++ CFLAGS += $(C_DEBUG_FLAGS) + else + BIN_DIR = Release +- CFLAGS = $(OPT_FLAGS) ++ CFLAGS += $(C_OPT_FLAGS) ++ LINK += -s + endif + +-CFLAGS += -DNDEBUG -Wall -Wno-non-virtual-dtor -Werror -fno-exceptions -DHAVE_STDINT_H -fno-rtti -static-libgcc -m32 ++IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0") + +-ifeq "$(AMD64)" "true" +- BINARY = $(NAME)_$(BIN_SUFFIX_64) +- CFLAGS += -DPAWN_CELL_SIZE=64 -DHAVE_I64 -m64 ++ifeq "$(IS_CLANG)" "1" ++ CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/") ++ CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/") + else +- BINARY = $(NAME)_$(BIN_SUFFIX_32) +- CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 +- OPT_FLAGS += -march=i586 ++ CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++ CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3) + endif + +-OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++# Clang || GCC >= 4 ++ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1" ++ CFLAGS += $(C_GCC4_FLAGS) ++ CPPFLAGS += $(CPP_GCC4_FLAGS) ++endif ++ ++# Clang >= 3 || GCC >= 4.7 ++ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1" ++ CFLAGS += -Wno-delete-non-virtual-dtor ++endif ++ ++# OS is Linux and not using clang ++ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1" ++ LINK += -static-libgcc ++endif ++ ++OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++ ++# This will break if we include other Makefiles, but is fine for now. It allows ++# us to make a copy of this file that uses altered paths (ie. Makefile.mine) ++# or other changes without mucking up the original. ++MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) + + $(BIN_DIR)/%.o: %.cpp +- $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< ++ $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< + + all: + mkdir -p $(BIN_DIR) + mkdir -p $(BIN_DIR)/sdk +- $(MAKE) fun ++ $(MAKE) -f $(MAKEFILE_NAME) $(PROJECT) + +-amd64: +- $(MAKE) all AMD64=true ++$(PROJECT): $(OBJ_BIN) ++ $(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY) + +-fun: $(OBJ_LINUX) +- $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) +- +-debug: +- $(MAKE) all DEBUG=true ++debug: ++ $(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true + + default: all + + clean: +- rm -rf Release/sdk/*.o +- rm -rf Release/*.o +- rm -rf Release/$(NAME)_$(BIN_SUFFIX_32) +- rm -rf Release/$(NAME)_$(BIN_SUFFIX_64) +- rm -rf Debug/sdk/*.o +- rm -rf Debug/*.o +- rm -rf Debug/$(NAME)_$(BIN_SUFFIX_32) +- rm -rf Debug/$(NAME)_$(BIN_SUFFIX_64) ++ rm -rf $(BIN_DIR)/*.o ++ rm -rf $(BIN_DIR)/sdk/*.o ++ rm -f $(BIN_DIR)/$(BINARY) ++ +diff --git a/dlls/fun/sdk/amxxmodule.cpp b/dlls/fun/sdk/amxxmodule.cpp +--- a/dlls/fun/sdk/amxxmodule.cpp ++++ b/dlls/fun/sdk/amxxmodule.cpp +@@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta + GetEntityAPI2, + GetEntityAPI2_Post, + GetNewDLLFunctions, + GetNewDLLFunctions_Post, + GetEngineFunctions, + GetEngineFunctions_Post + }; + +-C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) ++C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) + { + if ((int) CVAR_GET_FLOAT("developer") != 0) + UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", + Plugin_info.logtag, ifvers, Plugin_info.ifvers); + + // Check for valid pMetaUtilFuncs before we continue. + if(!pMetaUtilFuncs) { + UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag); +@@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM + #ifdef FN_META_DETACH + FN_META_DETACH(); + #endif // FN_META_DETACH + return TRUE; + } + + + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + // linux prototype + C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) { + + #else + #ifdef _MSC_VER + // MSVC: Simulate __stdcall calling convention + C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) + { +@@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... ) + return string; + } + + + //========================================================= + // UTIL_LogPrintf - Prints a logged message to console. + // Preceded by LOG: ( timestamp ) < message > + //========================================================= +-void UTIL_LogPrintf( char *fmt, ... ) ++void UTIL_LogPrintf( const char *fmt, ... ) + { + va_list argptr; + static char string[1024]; + + va_start ( argptr, fmt ); + vsnprintf ( string, sizeof(string), fmt, argptr ); + va_end ( argptr ); + +diff --git a/dlls/fun/sdk/amxxmodule.h b/dlls/fun/sdk/amxxmodule.h +--- a/dlls/fun/sdk/amxxmodule.h ++++ b/dlls/fun/sdk/amxxmodule.h +@@ -15,21 +15,26 @@ + #ifdef USE_METAMOD + #include + #include + #include "osdep.h" + #endif // #ifdef USE_METAMOD + + // DLL Export + #undef DLLEXPORT +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + #define DLLEXPORT __declspec(dllexport) + #else + #define DLLEXPORT __attribute__((visibility("default"))) ++#endif ++ ++#if defined(__linux__) && !defined(LINUX) + #define LINUX ++#elif defined(__APPLE__) && !defined(OSX) ++#define OSX + #endif + + #undef C_DLLEXPORT + #define C_DLLEXPORT extern "C" DLLEXPORT + + // ***** AMXX stuff ***** + + // module interface version was 1 +@@ -61,17 +66,17 @@ struct amxx_module_info_s + + // *** Small stuff *** + // The next section is copied from the amx.h file + // Copyright (c) ITB CompuPhase, 1997-2005 + + #if defined HAVE_STDINT_H + #include + #else +- #if defined __LCC__ || defined __DMC__ || defined LINUX ++ #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__ + #if defined HAVE_INTTYPES_H + #include + #else + #include + #endif + #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L + /* The ISO C99 defines the int16_t and int_32t types. If the compiler got + * here, these types are probably undefined. +@@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t + + #if defined __GNUC__ + #define PACKED __attribute__((packed)) + #else + #define PACKED + #endif + + #if !defined AMX_NO_ALIGN +- #if defined LINUX || defined __FreeBSD__ ++ #if defined LINUX || defined __FreeBSD__ || defined __APPLE__ + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #elif defined MACOS && defined __MWERKS__ + #pragma options align=mac68k + #else + #pragma pack(push) + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #if defined __TURBOC__ + #pragma option -a- /* "pack" pragma for older Borland compilers */ +@@ -390,28 +395,28 @@ enum { + AMX_ERR_INIT, /* AMX not initialized (or doubly initialized) */ + AMX_ERR_USERDATA, /* unable to set user data field (table full) */ + AMX_ERR_INIT_JIT, /* cannot initialize the JIT */ + AMX_ERR_PARAMS, /* parameter error */ + AMX_ERR_DOMAIN, /* domain error, expression result does not fit in range */ + }; + + #if !defined AMX_NO_ALIGN +- #if defined __linux__ ++ #if defined(__linux__) || defined(__APPLE__) + #pragma pack() /* reset default packing */ + #else + #pragma pack(pop) /* reset previous packing */ + #endif + #endif + + + // ***** declare functions ***** + + #ifdef USE_METAMOD +-void UTIL_LogPrintf( char *fmt, ... ); ++void UTIL_LogPrintf( const char *fmt, ... ); + void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage); + short FixedSigned16( float value, float scale ); + unsigned short FixedUnsigned16( float value, float scale ); + + #ifdef FN_META_QUERY + void FN_META_QUERY(void); + #endif // FN_META_QUERY + +@@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict + + #ifdef FN_AllowLagCompensation_Post + int FN_AllowLagCompensation_Post(void); + #endif // FN_AllowLagCompensation_Post + + + + #ifdef FN_PrecacheModel +-int FN_PrecacheModel(char *s); ++int FN_PrecacheModel(const char *s); + #endif // FN_PrecacheModel + + #ifdef FN_PrecacheSound +-int FN_PrecacheSound(char *s); ++int FN_PrecacheSound(const char *s); + #endif // FN_PrecacheSound + + #ifdef FN_SetModel + void FN_SetModel(edict_t *e, const char *m); + #endif // FN_SetModel + + #ifdef FN_ModelIndex + int FN_ModelIndex(const char *m); +@@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m); + int FN_ModelFrames(int modelIndex); + #endif // FN_ModelFrames + + #ifdef FN_SetSize + void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize + + #ifdef FN_ChangeLevel +-void FN_ChangeLevel(char *s1, char *s2); ++void FN_ChangeLevel(const char *s1, const char *s2); + #endif // FN_ChangeLevel + + #ifdef FN_GetSpawnParms + void FN_GetSpawnParms(edict_t *ent); + #endif // FN_GetSpawnParms + + #ifdef FN_SaveSpawnParms + void FN_SaveSpawnParms(edict_t *ent); +@@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien + int FN_NumberOfEntities(void); + #endif // FN_NumberOfEntities + + #ifdef FN_GetInfoKeyBuffer + char *FN_GetInfoKeyBuffer(edict_t *e); + #endif // FN_GetInfoKeyBuffer + + #ifdef FN_InfoKeyValue +-char *FN_InfoKeyValue(char *infobuffer, char *key); ++char *FN_InfoKeyValue(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue + + #ifdef FN_SetKeyValue +-void FN_SetKeyValue(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue + + #ifdef FN_SetClientKeyValue +-void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue + + #ifdef FN_IsMapValid +-int FN_IsMapValid(char *filename); ++int FN_IsMapValid(const char *filename); + #endif // FN_IsMapValid + + #ifdef FN_StaticDecal + void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal + + #ifdef FN_PrecacheGeneric +-int FN_PrecacheGeneric(char *s); ++int FN_PrecacheGeneric(const char *s); + #endif // FN_PrecacheGeneric + + #ifdef FN_GetPlayerUserId + int FN_GetPlayerUserId(edict_t *e ); + #endif // FN_GetPlayerUserId + + #ifdef FN_BuildSoundMsg + void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t * + #endif // FN_GetPlayerAuthId + + + + + + + #ifdef FN_PrecacheModel_Post +-int FN_PrecacheModel_Post(char *s); ++int FN_PrecacheModel_Post(const char *s); + #endif // FN_PrecacheModel_Post + + #ifdef FN_PrecacheSound_Post +-int FN_PrecacheSound_Post(char *s); ++int FN_PrecacheSound_Post(const char *s); + #endif // FN_PrecacheSound_Post + + #ifdef FN_SetModel_Post + void FN_SetModel_Post(edict_t *e, const char *m); + #endif // FN_SetModel_Post + + #ifdef FN_ModelIndex_Post + int FN_ModelIndex_Post(const char *m); +@@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m); + int FN_ModelFrames_Post(int modelIndex); + #endif // FN_ModelFrames_Post + + #ifdef FN_SetSize_Post + void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize_Post + + #ifdef FN_ChangeLevel_Post +-void FN_ChangeLevel_Post(char *s1, char *s2); ++void FN_ChangeLevel_Post(const char *s1, const char *s2); + #endif // FN_ChangeLevel_Post + + #ifdef FN_GetSpawnParms_Post + void FN_GetSpawnParms_Post(edict_t *ent); + #endif // FN_GetSpawnParms_Post + + #ifdef FN_SaveSpawnParms_Post + void FN_SaveSpawnParms_Post(edict_t *ent); +@@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake + int FN_NumberOfEntities_Post(void); + #endif // FN_NumberOfEntities_Post + + #ifdef FN_GetInfoKeyBuffer_Post + char *FN_GetInfoKeyBuffer_Post(edict_t *e); + #endif // FN_GetInfoKeyBuffer_Post + + #ifdef FN_InfoKeyValue_Post +-char *FN_InfoKeyValue_Post(char *infobuffer, char *key); ++char *FN_InfoKeyValue_Post(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue_Post + + #ifdef FN_SetKeyValue_Post +-void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue_Post + + #ifdef FN_SetClientKeyValue_Post +-void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue_Post + + #ifdef FN_IsMapValid_Post +-int FN_IsMapValid_Post(char *filename); ++int FN_IsMapValid_Post(const char *filename); + #endif // FN_IsMapValid_Post + + #ifdef FN_StaticDecal_Post + void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal_Post + + #ifdef FN_PrecacheGeneric_Post +-int FN_PrecacheGeneric_Post(char *s); ++int FN_PrecacheGeneric_Post(const char *s); + #endif // FN_PrecacheGeneric_Post + + #ifdef FN_GetPlayerUserId_Post + int FN_GetPlayerUserId_Post(edict_t *e ); + #endif // FN_GetPlayerUserId_Post + + #ifdef FN_BuildSoundMsg_Post + void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -2111,17 +2116,17 @@ enum LibType + + typedef void (*AUTHORIZEFUNC)(int player, const char *authstring); + + typedef int (*PFN_ADD_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef int (*PFN_ADD_NEW_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef char * (*PFN_BUILD_PATHNAME) (const char * /*format*/, ...); + typedef char * (*PFN_BUILD_PATHNAME_R) (char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...); + typedef cell * (*PFN_GET_AMXADDR) (AMX * /*amx*/, cell /*offset*/); +-typedef void (*PFN_PRINT_SRVCONSOLE) (char * /*format*/, ...); ++typedef void (*PFN_PRINT_SRVCONSOLE) (const char * /*format*/, ...); + typedef const char * (*PFN_GET_MODNAME) (void); + typedef const char * (*PFN_GET_AMXSCRIPTNAME) (int /*id*/); + typedef AMX * (*PFN_GET_AMXSCRIPT) (int /*id*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYAMX) (const AMX * /*amx*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYNAME) (const char * /*name*/); + typedef int (*PFN_SET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */); + typedef char * (*PFN_GET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/); + typedef int (*PFN_GET_AMXSTRINGLEN) (const cell *ptr); +@@ -2170,18 +2175,18 @@ typedef void * (*PFN_ALLOCATOR) (co + typedef void * (*PFN_REALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ ); + typedef void (*PFN_DEALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const void* /*addr*/ ); + #endif + typedef int (*PFN_AMX_EXEC) (AMX* /*amx*/, cell* /*return val*/, int /*index*/); + typedef int (*PFN_AMX_EXECV) (AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/); + typedef int (*PFN_AMX_ALLOT) (AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/); +-typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); +-typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); + typedef int (*PFN_LOAD_AMXSCRIPT) (AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */); + typedef int (*PFN_UNLOAD_AMXSCRIPT) (AMX* /*amx*/,void** /*code*/); + typedef cell (*PFN_REAL_TO_CELL) (REAL /*x*/); + typedef REAL (*PFN_CELL_TO_REAL) (cell /*x*/); + typedef int (*PFN_REGISTER_SPFORWARD) (AMX * /*amx*/, int /*func*/, ... /*params*/); + typedef int (*PFN_REGISTER_SPFORWARD_BYNAME) (AMX * /*amx*/, const char * /*funcName*/, ... /*params*/); + typedef void (*PFN_UNREGISTER_SPFORWARD) (int /*id*/); + typedef void (*PFN_MERGEDEFINITION_FILE) (const char * /*filename*/); +diff --git a/dlls/geoip/Makefile b/dlls/geoip/Makefile +--- a/dlls/geoip/Makefile ++++ b/dlls/geoip/Makefile +@@ -1,86 +1,127 @@ +-#(C)2004-2005 AMX Mod X Development Team ++# (C)2004-2013 AMX Mod X Development Team + # Makefile written by David "BAILOPAN" Anderson + +-HLSDK = ../../../hlsdk ++########################################### ++### EDIT THESE PATHS FOR YOUR OWN SETUP ### ++########################################### ++ ++HLSDK = ../../../hlsdk/multiplayer + MM_ROOT = ../../../metamod/metamod + ++##################################### + ### EDIT BELOW FOR OTHER PROJECTS ### ++##################################### + +-OPT_FLAGS = -O3 -funroll-loops -s -pipe -fno-strict-aliasing -fomit-frame-pointer +-DEBUG_FLAGS = -g -ggdb3 +-CPP = gcc-4.1 +-NAME = geoip +- +-BIN_SUFFIX_32 = amxx_i386.so +-BIN_SUFFIX_64 = amxx_amd64.so ++PROJECT = geoip + + OBJECTS = sdk/amxxmodule.cpp GeoIP.c geoip_amxx.cpp + +-LINK = ++############################################## ++### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ### ++############################################## + +-INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \ +- -I$(MM_ROOT) -I$(HLSDK)/common -Isdk ++C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -fomit-frame-pointer -pipe ++C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3 ++C_GCC4_FLAGS = -fvisibility=hidden ++CPP_GCC4_FLAGS = -fvisibility-inlines-hidden ++CPP = gcc ++CPP_OSX = clang + +-GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++LINK = + +-ifeq "$(GCC_VERSION)" "4" +- OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden ++INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \ ++ -I$(MM_ROOT) -Isdk ++ ++################################################ ++### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ### ++################################################ ++ ++OS := $(shell uname -s) ++ ++ifeq "$(OS)" "Darwin" ++ CPP = $(CPP_OSX) ++ LIB_EXT = dylib ++ LIB_SUFFIX = _amxx ++ CFLAGS += -DOSX ++ LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5 ++else ++ LIB_EXT = so ++ LIB_SUFFIX = _amxx_i386 ++ CFLAGS += -DLINUX ++ LINK += -shared + endif + ++LINK += -m32 -lm -ldl ++ ++CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror ++CPPFLAGS += -fno-exceptions -fno-rtti ++ ++BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT) ++ + ifeq "$(DEBUG)" "true" + BIN_DIR = Debug +- CFLAGS = $(DEBUG_FLAGS) ++ CFLAGS += $(C_DEBUG_FLAGS) + else + BIN_DIR = Release +- CFLAGS = $(OPT_FLAGS) ++ CFLAGS += $(C_OPT_FLAGS) ++ LINK += -s + endif + +-CFLAGS += -DNDEBUG -Wall -Werror -fno-exceptions -DHAVE_STDINT_H -static-libgcc -fno-rtti -m32 ++IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0") + +-# Strip C++ options for compiling *.c files +-C_CFLAGS := $(shell echo $(CFLAGS) | sed -e 's/-fvisibility-inlines-hidden//' | sed -e 's/-fno-rtti//') +- +-ifeq "$(AMD64)" "true" +- BINARY = $(NAME)_$(BIN_SUFFIX_64) +- CFLAGS += -DPAWN_CELL_SIZE=64 -DHAVE_I64 -m64 ++ifeq "$(IS_CLANG)" "1" ++ CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/") ++ CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/") + else +- BINARY = $(NAME)_$(BIN_SUFFIX_32) +- CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 +- OPT_FLAGS += -march=i586 ++ CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++ CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3) + endif + +-OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) +-OBJ_LINUX := $(OBJ_LINUX:%.c=$(BIN_DIR)/%.o) ++# Clang || GCC >= 4 ++ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1" ++ CFLAGS += $(C_GCC4_FLAGS) ++ CPPFLAGS += $(CPP_GCC4_FLAGS) ++endif ++ ++# Clang >= 3 || GCC >= 4.7 ++ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1" ++ CFLAGS += -Wno-delete-non-virtual-dtor ++endif ++ ++# OS is Linux and not using clang ++ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1" ++ LINK += -static-libgcc ++endif ++ ++OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++OBJ_BIN := $(OBJ_BIN:%.c=$(BIN_DIR)/%.o) ++ ++# This will break if we include other Makefiles, but is fine for now. It allows ++# us to make a copy of this file that uses altered paths (ie. Makefile.mine) ++# or other changes without mucking up the original. ++MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) + + $(BIN_DIR)/%.o: %.cpp +- $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< ++ $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< + + $(BIN_DIR)/%.o: %.c +- $(CPP) $(INCLUDE) $(C_CFLAGS) -o $@ -c $< ++ $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< + + all: + mkdir -p $(BIN_DIR) + mkdir -p $(BIN_DIR)/sdk +- $(MAKE) geoip ++ $(MAKE) -f $(MAKEFILE_NAME) $(PROJECT) + +-amd64: +- $(MAKE) all AMD64=true ++$(PROJECT): $(OBJ_BIN) ++ $(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY) + +-geoip: $(OBJ_LINUX) +- $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) +- +-debug: +- $(MAKE) all DEBUG=true ++debug: ++ $(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true + + default: all + + clean: +- rm -rf Release/sdk/*.o +- rm -rf Release/*.o +- rm -rf Release/$(NAME)_$(BIN_SUFFIX_32) +- rm -rf Release/$(NAME)_$(BIN_SUFFIX_64) +- rm -rf Debug/sdk/*.o +- rm -rf Debug/*.o +- rm -rf Debug/$(NAME)_$(BIN_SUFFIX_32) +- rm -rf Debug/$(NAME)_$(BIN_SUFFIX_64) ++ rm -rf $(BIN_DIR)/*.o ++ rm -rf $(BIN_DIR)/sdk/*.o ++ rm -f $(BIN_DIR)/$(BINARY) + +diff --git a/dlls/geoip/sdk/amxxmodule.cpp b/dlls/geoip/sdk/amxxmodule.cpp +--- a/dlls/geoip/sdk/amxxmodule.cpp ++++ b/dlls/geoip/sdk/amxxmodule.cpp +@@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta + GetEntityAPI2, + GetEntityAPI2_Post, + GetNewDLLFunctions, + GetNewDLLFunctions_Post, + GetEngineFunctions, + GetEngineFunctions_Post + }; + +-C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) ++C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) + { + if ((int) CVAR_GET_FLOAT("developer") != 0) + UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", + Plugin_info.logtag, ifvers, Plugin_info.ifvers); + + // Check for valid pMetaUtilFuncs before we continue. + if(!pMetaUtilFuncs) { + UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag); +@@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM + #ifdef FN_META_DETACH + FN_META_DETACH(); + #endif // FN_META_DETACH + return TRUE; + } + + + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + // linux prototype + C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) { + + #else + #ifdef _MSC_VER + // MSVC: Simulate __stdcall calling convention + C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) + { +@@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... ) + return string; + } + + + //========================================================= + // UTIL_LogPrintf - Prints a logged message to console. + // Preceded by LOG: ( timestamp ) < message > + //========================================================= +-void UTIL_LogPrintf( char *fmt, ... ) ++void UTIL_LogPrintf( const char *fmt, ... ) + { + va_list argptr; + static char string[1024]; + + va_start ( argptr, fmt ); + vsnprintf ( string, sizeof(string), fmt, argptr ); + va_end ( argptr ); + +diff --git a/dlls/geoip/sdk/amxxmodule.h b/dlls/geoip/sdk/amxxmodule.h +--- a/dlls/geoip/sdk/amxxmodule.h ++++ b/dlls/geoip/sdk/amxxmodule.h +@@ -15,21 +15,26 @@ + #ifdef USE_METAMOD + #include + #include + #include "osdep.h" + #endif // #ifdef USE_METAMOD + + // DLL Export + #undef DLLEXPORT +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + #define DLLEXPORT __declspec(dllexport) + #else + #define DLLEXPORT __attribute__((visibility("default"))) ++#endif ++ ++#if defined(__linux__) && !defined(LINUX) + #define LINUX ++#elif defined(__APPLE__) && !defined(OSX) ++#define OSX + #endif + + #undef C_DLLEXPORT + #define C_DLLEXPORT extern "C" DLLEXPORT + + // ***** AMXX stuff ***** + + // module interface version was 1 +@@ -61,17 +66,17 @@ struct amxx_module_info_s + + // *** Small stuff *** + // The next section is copied from the amx.h file + // Copyright (c) ITB CompuPhase, 1997-2005 + + #if defined HAVE_STDINT_H + #include + #else +- #if defined __LCC__ || defined __DMC__ || defined LINUX ++ #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__ + #if defined HAVE_INTTYPES_H + #include + #else + #include + #endif + #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L + /* The ISO C99 defines the int16_t and int_32t types. If the compiler got + * here, these types are probably undefined. +@@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t + + #if defined __GNUC__ + #define PACKED __attribute__((packed)) + #else + #define PACKED + #endif + + #if !defined AMX_NO_ALIGN +- #if defined LINUX || defined __FreeBSD__ ++ #if defined LINUX || defined __FreeBSD__ || defined __APPLE__ + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #elif defined MACOS && defined __MWERKS__ + #pragma options align=mac68k + #else + #pragma pack(push) + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #if defined __TURBOC__ + #pragma option -a- /* "pack" pragma for older Borland compilers */ +@@ -390,28 +395,28 @@ enum { + AMX_ERR_INIT, /* AMX not initialized (or doubly initialized) */ + AMX_ERR_USERDATA, /* unable to set user data field (table full) */ + AMX_ERR_INIT_JIT, /* cannot initialize the JIT */ + AMX_ERR_PARAMS, /* parameter error */ + AMX_ERR_DOMAIN, /* domain error, expression result does not fit in range */ + }; + + #if !defined AMX_NO_ALIGN +- #if defined __linux__ ++ #if defined(__linux__) || defined(__APPLE__) + #pragma pack() /* reset default packing */ + #else + #pragma pack(pop) /* reset previous packing */ + #endif + #endif + + + // ***** declare functions ***** + + #ifdef USE_METAMOD +-void UTIL_LogPrintf( char *fmt, ... ); ++void UTIL_LogPrintf( const char *fmt, ... ); + void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage); + short FixedSigned16( float value, float scale ); + unsigned short FixedUnsigned16( float value, float scale ); + + #ifdef FN_META_QUERY + void FN_META_QUERY(void); + #endif // FN_META_QUERY + +@@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict + + #ifdef FN_AllowLagCompensation_Post + int FN_AllowLagCompensation_Post(void); + #endif // FN_AllowLagCompensation_Post + + + + #ifdef FN_PrecacheModel +-int FN_PrecacheModel(char *s); ++int FN_PrecacheModel(const char *s); + #endif // FN_PrecacheModel + + #ifdef FN_PrecacheSound +-int FN_PrecacheSound(char *s); ++int FN_PrecacheSound(const char *s); + #endif // FN_PrecacheSound + + #ifdef FN_SetModel + void FN_SetModel(edict_t *e, const char *m); + #endif // FN_SetModel + + #ifdef FN_ModelIndex + int FN_ModelIndex(const char *m); +@@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m); + int FN_ModelFrames(int modelIndex); + #endif // FN_ModelFrames + + #ifdef FN_SetSize + void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize + + #ifdef FN_ChangeLevel +-void FN_ChangeLevel(char *s1, char *s2); ++void FN_ChangeLevel(const char *s1, const char *s2); + #endif // FN_ChangeLevel + + #ifdef FN_GetSpawnParms + void FN_GetSpawnParms(edict_t *ent); + #endif // FN_GetSpawnParms + + #ifdef FN_SaveSpawnParms + void FN_SaveSpawnParms(edict_t *ent); +@@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien + int FN_NumberOfEntities(void); + #endif // FN_NumberOfEntities + + #ifdef FN_GetInfoKeyBuffer + char *FN_GetInfoKeyBuffer(edict_t *e); + #endif // FN_GetInfoKeyBuffer + + #ifdef FN_InfoKeyValue +-char *FN_InfoKeyValue(char *infobuffer, char *key); ++char *FN_InfoKeyValue(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue + + #ifdef FN_SetKeyValue +-void FN_SetKeyValue(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue + + #ifdef FN_SetClientKeyValue +-void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue + + #ifdef FN_IsMapValid +-int FN_IsMapValid(char *filename); ++int FN_IsMapValid(const char *filename); + #endif // FN_IsMapValid + + #ifdef FN_StaticDecal + void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal + + #ifdef FN_PrecacheGeneric +-int FN_PrecacheGeneric(char *s); ++int FN_PrecacheGeneric(const char *s); + #endif // FN_PrecacheGeneric + + #ifdef FN_GetPlayerUserId + int FN_GetPlayerUserId(edict_t *e ); + #endif // FN_GetPlayerUserId + + #ifdef FN_BuildSoundMsg + void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t * + #endif // FN_GetPlayerAuthId + + + + + + + #ifdef FN_PrecacheModel_Post +-int FN_PrecacheModel_Post(char *s); ++int FN_PrecacheModel_Post(const char *s); + #endif // FN_PrecacheModel_Post + + #ifdef FN_PrecacheSound_Post +-int FN_PrecacheSound_Post(char *s); ++int FN_PrecacheSound_Post(const char *s); + #endif // FN_PrecacheSound_Post + + #ifdef FN_SetModel_Post + void FN_SetModel_Post(edict_t *e, const char *m); + #endif // FN_SetModel_Post + + #ifdef FN_ModelIndex_Post + int FN_ModelIndex_Post(const char *m); +@@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m); + int FN_ModelFrames_Post(int modelIndex); + #endif // FN_ModelFrames_Post + + #ifdef FN_SetSize_Post + void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize_Post + + #ifdef FN_ChangeLevel_Post +-void FN_ChangeLevel_Post(char *s1, char *s2); ++void FN_ChangeLevel_Post(const char *s1, const char *s2); + #endif // FN_ChangeLevel_Post + + #ifdef FN_GetSpawnParms_Post + void FN_GetSpawnParms_Post(edict_t *ent); + #endif // FN_GetSpawnParms_Post + + #ifdef FN_SaveSpawnParms_Post + void FN_SaveSpawnParms_Post(edict_t *ent); +@@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake + int FN_NumberOfEntities_Post(void); + #endif // FN_NumberOfEntities_Post + + #ifdef FN_GetInfoKeyBuffer_Post + char *FN_GetInfoKeyBuffer_Post(edict_t *e); + #endif // FN_GetInfoKeyBuffer_Post + + #ifdef FN_InfoKeyValue_Post +-char *FN_InfoKeyValue_Post(char *infobuffer, char *key); ++char *FN_InfoKeyValue_Post(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue_Post + + #ifdef FN_SetKeyValue_Post +-void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue_Post + + #ifdef FN_SetClientKeyValue_Post +-void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue_Post + + #ifdef FN_IsMapValid_Post +-int FN_IsMapValid_Post(char *filename); ++int FN_IsMapValid_Post(const char *filename); + #endif // FN_IsMapValid_Post + + #ifdef FN_StaticDecal_Post + void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal_Post + + #ifdef FN_PrecacheGeneric_Post +-int FN_PrecacheGeneric_Post(char *s); ++int FN_PrecacheGeneric_Post(const char *s); + #endif // FN_PrecacheGeneric_Post + + #ifdef FN_GetPlayerUserId_Post + int FN_GetPlayerUserId_Post(edict_t *e ); + #endif // FN_GetPlayerUserId_Post + + #ifdef FN_BuildSoundMsg_Post + void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -2111,17 +2116,17 @@ enum LibType + + typedef void (*AUTHORIZEFUNC)(int player, const char *authstring); + + typedef int (*PFN_ADD_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef int (*PFN_ADD_NEW_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef char * (*PFN_BUILD_PATHNAME) (const char * /*format*/, ...); + typedef char * (*PFN_BUILD_PATHNAME_R) (char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...); + typedef cell * (*PFN_GET_AMXADDR) (AMX * /*amx*/, cell /*offset*/); +-typedef void (*PFN_PRINT_SRVCONSOLE) (char * /*format*/, ...); ++typedef void (*PFN_PRINT_SRVCONSOLE) (const char * /*format*/, ...); + typedef const char * (*PFN_GET_MODNAME) (void); + typedef const char * (*PFN_GET_AMXSCRIPTNAME) (int /*id*/); + typedef AMX * (*PFN_GET_AMXSCRIPT) (int /*id*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYAMX) (const AMX * /*amx*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYNAME) (const char * /*name*/); + typedef int (*PFN_SET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */); + typedef char * (*PFN_GET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/); + typedef int (*PFN_GET_AMXSTRINGLEN) (const cell *ptr); +@@ -2170,18 +2175,18 @@ typedef void * (*PFN_ALLOCATOR) (co + typedef void * (*PFN_REALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ ); + typedef void (*PFN_DEALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const void* /*addr*/ ); + #endif + typedef int (*PFN_AMX_EXEC) (AMX* /*amx*/, cell* /*return val*/, int /*index*/); + typedef int (*PFN_AMX_EXECV) (AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/); + typedef int (*PFN_AMX_ALLOT) (AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/); +-typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); +-typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); + typedef int (*PFN_LOAD_AMXSCRIPT) (AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */); + typedef int (*PFN_UNLOAD_AMXSCRIPT) (AMX* /*amx*/,void** /*code*/); + typedef cell (*PFN_REAL_TO_CELL) (REAL /*x*/); + typedef REAL (*PFN_CELL_TO_REAL) (cell /*x*/); + typedef int (*PFN_REGISTER_SPFORWARD) (AMX * /*amx*/, int /*func*/, ... /*params*/); + typedef int (*PFN_REGISTER_SPFORWARD_BYNAME) (AMX * /*amx*/, const char * /*funcName*/, ... /*params*/); + typedef void (*PFN_UNREGISTER_SPFORWARD) (int /*id*/); + typedef void (*PFN_MERGEDEFINITION_FILE) (const char * /*filename*/); +diff --git a/dlls/hamsandwich/Makefile b/dlls/hamsandwich/Makefile +--- a/dlls/hamsandwich/Makefile ++++ b/dlls/hamsandwich/Makefile +@@ -1,74 +1,124 @@ +-#(C)2004-2005 AMX Mod X Development Team ++# (C)2004-2013 AMX Mod X Development Team + # Makefile written by David "BAILOPAN" Anderson + +-HLSDK = ../../../hlsdk ++########################################### ++### EDIT THESE PATHS FOR YOUR OWN SETUP ### ++########################################### ++ ++HLSDK = ../../../hlsdk/multiplayer + MM_ROOT = ../../../metamod/metamod + ++##################################### + ### EDIT BELOW FOR OTHER PROJECTS ### ++##################################### + ++PROJECT = hamsandwich + +-OPT_FLAGS = -O3 -funroll-loops -s -pipe -fomit-frame-pointer -fno-strict-aliasing -DNDEBUG ++OBJECTS = sdk/amxxmodule.cpp amxx_api.cpp config_parser.cpp hook_callbacks.cpp hook_native.cpp \ ++ srvcmd.cpp call_funcs.cpp hook_create.cpp DataHandler.cpp pdata.cpp + +-DEBUG_FLAGS = -g -ggdb3 +-CPP = gcc-4.1 +-#CPP = gcc-2.95 +-NAME = hamsandwich ++############################################## ++### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ### ++############################################## + +-BIN_SUFFIX = amxx_i386.so ++C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -fomit-frame-pointer -pipe ++C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3 ++C_GCC4_FLAGS = -fvisibility=hidden ++CPP_GCC4_FLAGS = -fvisibility-inlines-hidden ++CPP = gcc ++CPP_OSX = clang + +-OBJECTS = sdk/amxxmodule.cpp amxx_api.cpp config_parser.cpp \ +-hook_callbacks.cpp hook_native.cpp srvcmd.cpp \ +-call_funcs.cpp hook_create.cpp DataHandler.cpp pdata.cpp ++LINK = + ++INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \ ++ -I$(HLSDK)/pm_shared -I$(MM_ROOT) -Isdk + +-LINK = ++################################################ ++### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ### ++################################################ + +-INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \ +- -I$(MM_ROOT) -I$(HLSDK)/common -I$(HLSDK)/pm_shared -I./tableentries -Isdk ++OS := $(shell uname -s) + +-GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++ifeq "$(OS)" "Darwin" ++ CPP = $(CPP_OSX) ++ LIB_EXT = dylib ++ LIB_SUFFIX = _amxx ++ CFLAGS += -DOSX ++ LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5 ++else ++ LIB_EXT = so ++ LIB_SUFFIX = _amxx_i386 ++ CFLAGS += -DLINUX ++ LINK += -shared ++endif ++ ++LINK += -m32 -lm -ldl ++ ++CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror ++CPPFLAGS += -fno-exceptions -fno-rtti ++ ++BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT) + + ifeq "$(DEBUG)" "true" + BIN_DIR = Debug +- CFLAGS = $(DEBUG_FLAGS) ++ CFLAGS += $(C_DEBUG_FLAGS) + else + BIN_DIR = Release +- +- ifeq "$(GCC_VERSION)" "4" +- OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden +- endif +- CFLAGS = $(OPT_FLAGS) ++ CFLAGS += $(C_OPT_FLAGS) ++ LINK += -s + endif + +-CFLAGS += -Wall -Wno-non-virtual-dtor -fno-exceptions -DHAVE_STDINT_H -fno-rtti -Werror -m32 ++IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0") + +-BINARY = $(NAME)_$(BIN_SUFFIX) +-CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 +-OPT_FLAGS += -march=i586 ++ifeq "$(IS_CLANG)" "1" ++ CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/") ++ CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/") ++else ++ CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++ CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3) ++endif + +-OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++# Clang || GCC >= 4 ++ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1" ++ CFLAGS += $(C_GCC4_FLAGS) ++ CPPFLAGS += $(CPP_GCC4_FLAGS) ++endif ++ ++# Clang >= 3 || GCC >= 4.7 ++ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1" ++ CFLAGS += -Wno-delete-non-virtual-dtor ++endif ++ ++# OS is Linux and not using clang ++ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1" ++ LINK += -static-libgcc ++endif ++ ++OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++ ++# This will break if we include other Makefiles, but is fine for now. It allows ++# us to make a copy of this file that uses altered paths (ie. Makefile.mine) ++# or other changes without mucking up the original. ++MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) + + $(BIN_DIR)/%.o: %.cpp +- $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< ++ $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< + + all: + mkdir -p $(BIN_DIR) + mkdir -p $(BIN_DIR)/sdk +- $(MAKE) hamsandwich ++ $(MAKE) -f $(MAKEFILE_NAME) $(PROJECT) + +-hamsandwich: $(OBJ_LINUX) +- $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) ++$(PROJECT): $(OBJ_BIN) ++ $(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY) + +-debug: +- $(MAKE) all DEBUG=true ++debug: ++ $(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true + + default: all + + clean: +- rm -rf Release/*.o +- rm -rf Release/sdk/*.o +- rm -rf Release/$(NAME)_$(BIN_SUFFIX) +- rm -rf Debug/*.o +- rm -rf Debug/sdk/*.o +- rm -rf Debug/$(NAME)_$(BIN_SUFFIX) +- ++ rm -rf $(BIN_DIR)/*.o ++ rm -rf $(BIN_DIR)/sdk/*.o ++ rm -f $(BIN_DIR)/$(BINARY) ++ +diff --git a/dlls/hamsandwich/Trampolines.h b/dlls/hamsandwich/Trampolines.h +--- a/dlls/hamsandwich/Trampolines.h ++++ b/dlls/hamsandwich/Trampolines.h +@@ -41,20 +41,22 @@ + #define WIN32_LEAN_AND_MEAN + #endif // WIN32_LEAN_AND_MEAN + #if _MSC_VER >= 1400 + #ifdef offsetof + #undef offsetof + #endif // offsetof + #endif // _MSC_VER >= 1400 + #include +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + #include ++#if defined (__linux__) + #include + #endif ++#endif + #include // size_t + #include // memcpy + #include // memalign + #include + + + namespace Trampolines + { +@@ -108,24 +110,24 @@ namespace Trampolines + const unsigned int codePushParamReplace = 2; + + + /** + * Takes the "this" pointer from the trampoline and + * pushes it onto the target's stack. + */ + const unsigned char codePushThis[] = { +- #if defined _WIN32 ++ #if defined(_WIN32) + 0x51 // push ecx +- #elif defined __linux__ ++ #elif defined(__linux__) || defined(__APPLE__) + 0xFF, 0x75, 0x04 // pushl [ebp+0x08h] + #endif + }; + +-#if defined __linux__ ++#if defined(__linux__) || defined(__APPLE__) + const int codePushThisReplace = 2; + #endif + + /** + * Pushes a raw number onto the target's stack + */ + const unsigned char codePushID[] = { + 0x68, 0xDE, 0xFA, 0xAD, 0xDE // push DEADFADEh +@@ -405,34 +407,34 @@ namespace Trampolines + return; + } + + unsigned char code[sizeof(::Trampolines::Bytecode::codePushThis)]; + + memcpy(&code[0],&::Trampolines::Bytecode::codePushThis[0],sizeof(::Trampolines::Bytecode::codePushThis)); + + +-#if defined __linux__ ++#if defined(__linux__) || defined(__APPLE__) + unsigned char *c=&code[0]; + + union + { + int i; + unsigned char b[4]; + } bi; + + bi.i=m_paramstart+8; + + c+=::Trampolines::Bytecode::codePushThisReplace; + *c++=bi.b[0]; + #endif + + Append(&code[0],sizeof(::Trampolines::Bytecode::codePushThis)); + +-#if defined __linux__ ++#if defined(__linux__) || defined(__APPLE__) + m_mystack+=4; + #endif + m_calledstack+=4; + }; + + /** + * Frees what is estimated as the stack usage of the trampoline. + */ +@@ -526,17 +528,17 @@ namespace Trampolines + + /** + * Takes a parameter passed on the trampoline's stack and inserts it into the callee's stack. + * + * @param which The parameter number to push. 1-based. "thiscall" trampolines automatically compensate for the off-number on GCC. + */ + void PushParam(int which) + { +-#if defined __linux__ ++#if defined(__linux__) || defined(__APPLE__) + if (m_thiscall) + { + which++; + } + #endif + which=which*4; + which+=m_paramstart+4; + +@@ -603,20 +605,24 @@ namespace Trampolines + //void *ret=(void *)m_buffer; + + if (size) + { + *size=m_size; + } + + // Reallocate with proper flags +-#if defined _WIN32 ++#if defined(_WIN32) + void *ret=VirtualAlloc(NULL, m_size, MEM_COMMIT, PAGE_EXECUTE_READWRITE); +-#elif defined __linux__ ++#elif defined(__GNUC__) ++# if defined(__APPLE__) ++ void *ret = valloc(m_size); ++# else + void *ret=memalign(sysconf(_SC_PAGESIZE), m_size); ++# endif + mprotect(ret,m_size,PROT_READ|PROT_WRITE|PROT_EXEC); + #endif + memcpy(ret, m_buffer, m_size); + + + m_size=0; + + free(m_buffer); +@@ -670,27 +676,27 @@ inline void *CreateGenericTrampoline(boo + { + tramp.PushThis(); + } + tramp.PushNum(reinterpret_cast(extraptr)); + tramp.Call(callee); + tramp.FreeTargetStack(); + if (voidcall) + { +-#if defined _WIN32 ++#if defined(_WIN32) + tramp.VoidEpilogueAndFree(); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + tramp.VoidEpilogue(); + #endif + } + else + { +-#if defined _WIN32 ++#if defined(_WIN32) + tramp.ReturnEpilogueAndFree(); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + tramp.ReturnEpilogue(); + #endif + } + return tramp.Finish(NULL); + + }; + + +diff --git a/dlls/hamsandwich/amxx_api.cpp b/dlls/hamsandwich/amxx_api.cpp +--- a/dlls/hamsandwich/amxx_api.cpp ++++ b/dlls/hamsandwich/amxx_api.cpp +@@ -74,18 +74,20 @@ void OnAmxxAttach(void) + MF_AddNatives(RegisterNatives); + MF_AddNatives(ReturnNatives); + MF_AddNatives(pdata_natives); + } + else + { + #ifdef _WIN32 + MF_Log("Error: pev and base not set for section \"%s windows\", cannot register natives.", MF_GetModname()); +-#elif defined __linux__ ++#elif defined(__linux__) + MF_Log("Error: pev and base not set for section \"%s linux\", cannot register natives.", MF_GetModname()); ++#elif defined(__APPLE__) ++ MF_Log("Error: pev and base not set for section \"%s mac\", cannot register natives.", MF_GetModname()); + #endif + } + } + else + { + MF_Log("Error: Cannot read config file, natives not registered!"); + } + } +diff --git a/dlls/hamsandwich/call_funcs.cpp b/dlls/hamsandwich/call_funcs.cpp +--- a/dlls/hamsandwich/call_funcs.cpp ++++ b/dlls/hamsandwich/call_funcs.cpp +@@ -109,181 +109,181 @@ inline void *_GetFunction(void *pthis, i + gDoForwards=true; \ + } + + + cell Call_Void_Void(AMX *amx, cell *params) + { + SETUP(0); + +-#ifdef _WIN32 ++#if defined(_WIN32) + reinterpret_cast(__func)(pv, 0); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + reinterpret_cast(__func)(pv); + #endif + return 1; + } + + cell Call_Int_Void(AMX *amx, cell *params) + { + SETUP(0); + +-#ifdef _WIN32 ++#if defined(_WIN32) + return reinterpret_cast(__func)(pv, 0); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + return reinterpret_cast(__func)(pv); + #endif + } + + cell Call_Void_Entvar(AMX *amx, cell *params) + { + SETUP(1); + + int id3=*MF_GetAmxAddr(amx, params[3]); + + CHECK_ENTITY(id3); + + entvars_t *ev1=&(INDEXENT_NEW(id3)->v); + +-#ifdef _WIN32 ++#if defined(_WIN32) + reinterpret_cast(__func)(pv, 0, ev1); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + reinterpret_cast(__func)(pv, ev1); + #endif + return 1; + } + + + cell Call_Void_Cbase(AMX *amx, cell *params) + { + SETUP(1); + + int id3=*MF_GetAmxAddr(amx, params[3]); + + CHECK_ENTITY(id3); + + void *pv1=(INDEXENT_NEW(id3)->pvPrivateData); + +-#ifdef _WIN32 ++#if defined(_WIN32) + reinterpret_cast(__func)(pv, 0, pv1); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + reinterpret_cast(__func)(pv, pv1); + #endif + return 1; + } + + cell Call_Int_Float_Int(AMX *amx, cell *params) + { + SETUP(2); + + float f3=amx_ftoc2(*MF_GetAmxAddr(amx, params[3])); + int i4=*MF_GetAmxAddr(amx, params[4]); + +-#ifdef _WIN32 ++#if defined(_WIN32) + return reinterpret_cast(__func)(pv, 0, f3, i4); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + return reinterpret_cast(__func)(pv, f3, i4); + #endif + } + + + cell Call_Void_Entvar_Int(AMX *amx, cell *params) + { + SETUP(2); + + int id3=*MF_GetAmxAddr(amx, params[3]); + int i4=*MF_GetAmxAddr(amx, params[4]); + + CHECK_ENTITY(id3); + + entvars_t *ev3=&(INDEXENT_NEW(id3)->v); + +-#ifdef _WIN32 ++#if defined(_WIN32) + reinterpret_cast(__func)(pv, 0, ev3, i4); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + reinterpret_cast(__func)(pv, ev3, i4); + #endif + return 1; + } + + + cell Call_Int_Cbase(AMX *amx, cell *params) + { + SETUP(1); + + int id3=*MF_GetAmxAddr(amx, params[3]); + + CHECK_ENTITY(id3); + + void *pv1=(INDEXENT_NEW(id3)->pvPrivateData); + +-#ifdef _WIN32 ++#if defined(_WIN32) + return reinterpret_cast(__func)(pv, 0, pv1); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + return reinterpret_cast(__func)(pv, pv1); + #endif + } + + cell Call_Void_Int_Int(AMX *amx, cell *params) + { + SETUP(2); + + int i3=*MF_GetAmxAddr(amx, params[3]); + int i4=*MF_GetAmxAddr(amx, params[4]); + +-#ifdef _WIN32 ++#if defined(_WIN32) + reinterpret_cast(__func)(pv, 0, i3, i4); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + reinterpret_cast(__func)(pv, i3, i4); + #endif + return 1; + } + + cell Call_Int_Int_Str_Int(AMX *amx, cell *params) + { + + SETUP(3); + + int i3=*MF_GetAmxAddr(amx, params[3]); + char *sz4=MF_GetAmxString(amx, params[4], 0, NULL); + int i5=*MF_GetAmxAddr(amx, params[5]); + +-#ifdef _WIN32 ++#if defined(_WIN32) + return reinterpret_cast(__func)(pv, 0, i3, sz4, i5); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + return reinterpret_cast(__func)(pv, i3, sz4, i5); + #endif + } + + cell Call_Int_Int(AMX *amx, cell *params) + { + SETUP(1); + + int i3=*MF_GetAmxAddr(amx, params[3]); + +-#ifdef _WIN32 ++#if defined(_WIN32) + return reinterpret_cast(__func)(pv, 0, i3); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + return reinterpret_cast(__func)(pv, i3); + #endif + } + + cell Call_Int_Entvar(AMX *amx, cell *params) + { + SETUP(1); + + int id3=*MF_GetAmxAddr(amx, params[3]); + + CHECK_ENTITY(id3); + + entvars_t *ev3=&(INDEXENT_NEW(id3)->v); + +-#ifdef _WIN32 ++#if defined(_WIN32) + return reinterpret_cast(__func)(pv, 0, ev3); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + return reinterpret_cast(__func)(pv, ev3); + #endif + } + + cell Call_Int_Entvar_Entvar_Float_Int(AMX *amx, cell *params) + { + SETUP(4); + +@@ -293,19 +293,19 @@ cell Call_Int_Entvar_Entvar_Float_Int(AM + int i6=*MF_GetAmxAddr(amx, params[6]); + + CHECK_ENTITY(id3); + CHECK_ENTITY(id4); + + entvars_t *ev3=&(INDEXENT_NEW(id3)->v); + entvars_t *ev4=&(INDEXENT_NEW(id4)->v); + +-#ifdef _WIN32 ++#if defined(_WIN32) + return reinterpret_cast(__func)(pv, 0, ev3, ev4, f5, i6); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + return reinterpret_cast(__func)(pv, ev3, ev4, f5, i6); + #endif + } + + cell Call_Int_Entvar_Entvar_Float_Float_Int(AMX *amx, cell *params) + { + SETUP(5); + +@@ -316,32 +316,32 @@ cell Call_Int_Entvar_Entvar_Float_Float_ + int i7=*MF_GetAmxAddr(amx, params[7]); + + CHECK_ENTITY(id3); + CHECK_ENTITY(id4); + + entvars_t *ev3=&(INDEXENT_NEW(id3)->v); + entvars_t *ev4=&(INDEXENT_NEW(id4)->v); + +-#ifdef _WIN32 ++#if defined(_WIN32) + return reinterpret_cast(__func)(pv, 0, ev3, ev4, f5, f6, i7); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + return reinterpret_cast(__func)(pv, ev3, ev4, f5, f6, i7); + #endif + } + + cell Call_Void_Int(AMX *amx, cell *params) + { + SETUP(1); + + int i3=*MF_GetAmxAddr(amx, params[3]); + +-#ifdef _WIN32 ++#if defined(_WIN32) + reinterpret_cast(__func)(pv, 0, i3); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + reinterpret_cast(__func)(pv, i3); + #endif + + return 1; + } + + cell Call_Void_Cbase_Cbase_Int_Float(AMX *amx, cell *params) + { +@@ -353,19 +353,19 @@ cell Call_Void_Cbase_Cbase_Int_Float(AMX + float f6=amx_ctof(*MF_GetAmxAddr(amx, params[6])); + + CHECK_ENTITY(id3); + CHECK_ENTITY(id4); + + void *p3=IndexToPrivate(id3); + void *p4=IndexToPrivate(id4); + +-#ifdef _WIN32 ++#if defined(_WIN32) + reinterpret_cast(__func)(pv, 0, p3, p4, i5, f6); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + reinterpret_cast(__func)(pv, p3, p4, i5, f6); + #endif + + return 1; + } + + cell Call_Void_Entvar_Float_Vector_Trace_Int(AMX *amx, cell *params) + { +@@ -387,19 +387,19 @@ cell Call_Void_Entvar_Float_Vector_Trace + MF_LogError(amx, AMX_ERR_NATIVE, "Null traceresult provided."); + + return 0; + } + + CHECK_ENTITY(id3); + + entvars_t *ev3=&(INDEXENT_NEW(id3)->v); +-#ifdef _WIN32 ++#if defined(_WIN32) + reinterpret_cast(__func)(pv, 0, ev3, f4, v5, tr6, i7); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + reinterpret_cast(__func)(pv, ev3, f4, v5, tr6, i7); + #endif + + return 1; + } + + cell Call_Void_Float_Vector_Trace_Int(AMX *amx, cell *params) + { +@@ -417,55 +417,55 @@ cell Call_Void_Float_Vector_Trace_Int(AM + + if (tr5==NULL) + { + MF_LogError(amx, AMX_ERR_NATIVE, "Null traceresult provided."); + + return 0; + } + +-#ifdef _WIN32 ++#if defined(_WIN32) + reinterpret_cast(__func)(pv, 0, f3, v4, tr5, i6); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + reinterpret_cast(__func)(pv, f3, v4, tr5, i6); + #endif + + return 1; + } + + cell Call_Str_Void(AMX *amx, cell *params) + { + SETUP(2); + +-#ifdef _WIN32 ++#if defined(_WIN32) + char *v=reinterpret_cast(__func)(pv, 0); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + char *v=reinterpret_cast(__func)(pv); + #endif + return MF_SetAmxString(amx, params[3], v == NULL ? "" : v, *MF_GetAmxAddr(amx, params[4])); + + } + + cell Call_Cbase_Void(AMX *amx, cell *params) + { + SETUP(0); +-#ifdef _WIN32 ++#if defined(_WIN32) + void *ret=reinterpret_cast(__func)(pv, 0); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + void *ret=reinterpret_cast(__func)(pv); + #endif + return PrivateToIndex(ret); + } + + cell Call_Vector_Void(AMX *amx, cell *params) + { + SETUP(1); +-#ifdef _WIN32 ++#if defined(_WIN32) + Vector ret=reinterpret_cast(__func)(pv, 0); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + Vector ret=reinterpret_cast(__func)(pv); + #endif + float *out=(float *)MF_GetAmxAddr(amx, params[3]); + out[0]=ret.x; + out[1]=ret.y; + out[2]=ret.z; + + return 1; +@@ -476,19 +476,19 @@ cell Call_Vector_pVector(AMX *amx, cell + SETUP(2); + + Vector v3; + float *fl3=(float *)MF_GetAmxAddr(amx, params[3]); + v3.x=fl3[0]; + v3.y=fl3[1]; + v3.z=fl3[2]; + +-#ifdef _WIN32 ++#if defined(_WIN32) + Vector ret=reinterpret_cast(__func)(pv, 0, &v3); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + Vector ret=reinterpret_cast(__func)(pv, &v3); + #endif + float *out=(float *)MF_GetAmxAddr(amx, params[4]); + out[0]=ret.x; + out[1]=ret.y; + out[2]=ret.z; + + fl3[0]=v3.x; +@@ -503,19 +503,19 @@ cell Call_Int_pVector(AMX *amx, cell *pa + SETUP(1); + + Vector v3; + float *fl3=(float *)MF_GetAmxAddr(amx, params[3]); + v3.x=fl3[0]; + v3.y=fl3[1]; + v3.z=fl3[2]; + +-#ifdef _WIN32 ++#if defined(_WIN32) + int ret=reinterpret_cast(__func)(pv, 0, &v3); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + int ret=reinterpret_cast(__func)(pv, &v3); + #endif + + fl3[0]=v3.x; + fl3[1]=v3.y; + fl3[2]=v3.z; + + return ret; +@@ -528,114 +528,114 @@ cell Call_Void_Entvar_Float_Float(AMX *a + int id3=*MF_GetAmxAddr(amx, params[3]); + float f4=amx_ctof2(*MF_GetAmxAddr(amx, params[4])); + float f5=amx_ctof2(*MF_GetAmxAddr(amx, params[5])); + + CHECK_ENTITY(id3); + + entvars_t *ev3=&(INDEXENT_NEW(id3)->v); + +-#ifdef _WIN32 ++#if defined(_WIN32) + reinterpret_cast(__func)(pv, 0, ev3, f4, f5); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + reinterpret_cast(__func)(pv, ev3, f4, f5); + #endif + + return 1; + } + + cell Call_Int_pFloat_pFloat(AMX *amx, cell *params) + { + SETUP(2); + + float f3=amx_ctof2(*MF_GetAmxAddr(amx, params[3])); + float f4=amx_ctof2(*MF_GetAmxAddr(amx, params[4])); + +-#ifdef _WIN32 ++#if defined(_WIN32) + return reinterpret_cast(__func)(pv, 0, &f3, &f4); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + return reinterpret_cast(__func)(pv, &f3, &f4); + #endif + + } + + cell Call_Void_Entvar_Float(AMX *amx, cell *params) + { + SETUP(2); + + int id3=*MF_GetAmxAddr(amx, params[3]); + float f4=amx_ctof2(*MF_GetAmxAddr(amx, params[4])); + + CHECK_ENTITY(id3); + + entvars_t *ev3=&(INDEXENT_NEW(id3)->v); + +-#ifdef _WIN32 ++#if defined(_WIN32) + return reinterpret_cast(__func)(pv, 0, ev3, f4); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + return reinterpret_cast(__func)(pv, ev3, f4); + #endif + } + + cell Call_Void_Int_Int_Int(AMX *amx, cell *params) + { + SETUP(2); + + int i3=*MF_GetAmxAddr(amx, params[3]); + int i4=*MF_GetAmxAddr(amx, params[4]); + int i5=*MF_GetAmxAddr(amx, params[5]); + +-#ifdef _WIN32 ++#if defined(_WIN32) + reinterpret_cast(__func)(pv, 0, i3, i4, i5); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + reinterpret_cast(__func)(pv, i3, i4, i5); + #endif + return 1; + } + + cell Call_Void_ItemInfo(AMX *amx, cell *params) + { + SETUP(1); + + void *ptr=reinterpret_cast(*MF_GetAmxAddr(amx, params[3])); + + if (ptr==0) + { + MF_LogError(amx, AMX_ERR_NATIVE, "Null ItemInfo handle!"); + return 0; + } +-#ifdef _WIN32 ++#if defined(_WIN32) + reinterpret_cast(__func)(pv, 0, ptr); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + reinterpret_cast(__func)(pv, ptr); + #endif + return 1; + } + + cell Call_Float_Void(AMX *amx, cell *params) + { + SETUP(1); + +-#ifdef _WIN32 ++#if defined(_WIN32) + float ret=reinterpret_cast(__func)(pv, 0); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + float ret=reinterpret_cast(__func)(pv); + #endif + *MF_GetAmxAddr(amx, params[3])=amx_ftoc2(ret); + + return 1; + + } + cell Call_Void_Float_Int(AMX* amx, cell* params) + { + SETUP(2); + +-#ifdef _WIN32 ++#if defined(_WIN32) + reinterpret_cast(__func)(pv, 0, amx_ctof2(params[3]), static_cast(params[4])); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + reinterpret_cast(__func)(pv, amx_ctof2(params[3]), static_cast(params[4])); + #endif + return 1; + } + cell Call_Deprecated(AMX *amx, cell *params) + { + MF_LogError(amx, AMX_ERR_NATIVE, "Ham function is deprecated."); + +diff --git a/dlls/hamsandwich/config/hamdata.ini b/dlls/hamsandwich/config/hamdata.ini +--- a/dlls/hamsandwich/config/hamdata.ini ++++ b/dlls/hamsandwich/config/hamdata.ini +@@ -32,17 +32,17 @@ + ; eg: If they work on non-Steam CS 1.6 this is coincidental, if they do + ; not work on non-Steam CS 1.6 this will not be officially fixed. + ; + ; Mirrors: These take the name of one mod, and copy all of its data to another + ; name. An example of a use for this would be cstrike and czero: they + ; use the same binary so all of its vtable offsets are guaranteed to + ; be identical. Mirrors should always come first in the file! + ; +-; Version: $Id$ ++; Version: $Id: hamdata.ini 3687 2008-03-04 18:51:35Z sawce $ + + + @mirror cstrike czero + @mirror ns nsp + + ; TODO: check these - all are estimates + @section cstrike linux + pev 4 +@@ -256,16 +256,126 @@ + weapon_shouldweaponidle 92 + weapon_usedecrement 93 + + cstrike_restart 2 + cstrike_roundrespawn 84 + cstrike_item_candrop 63 + cstrike_item_getmaxspeed 78 + @end ++ ++@section cstrike mac ++ pev 4 ++ base 0x0 ++ ++ spawn 0 ++ precache 1 ++ keyvalue 3 ++ objectcaps 6 ++ activate 7 ++ setobjectcollisionbox 8 ++ classify 9 ++ deathnotice 10 ++ traceattack 11 ++ takedamage 12 ++ takehealth 13 ++ killed 14 ++ bloodcolor 15 ++ tracebleed 16 ++ istriggered 17 ++ mymonsterpointer 18 ++ mysquadmonsterpointer 19 ++ gettogglestate 20 ++ addpoints 21 ++ addpointstoteam 22 ++ addplayeritem 23 ++ removeplayeritem 24 ++ giveammo 25 ++ getdelay 26 ++ ismoving 27 ++ overridereset 28 ++ damagedecal 29 ++ settogglestate 30 ++ startsneaking 31 ++ stopsneaking 32 ++ oncontrols 33 ++ issneaking 34 ++ isalive 35 ++ isbspmodel 36 ++ reflectgauss 37 ++ hastarget 38 ++ isinworld 39 ++ isplayer 40 ++ isnetclient 41 ++ teamid 42 ++ getnexttarget 43 ++ think 44 ++ touch 45 ++ use 46 ++ blocked 47 ++ respawn 48 ++ updateowner 49 ++ fbecomeprone 50 ++ center 51 ++ eyeposition 52 ++ earposition 53 ++ bodytarget 54 ++ illumination 55 ++ fvisible 56 ++ fvecvisible 57 ++ ++ player_jump 76 ++ player_duck 77 ++ player_prethink 78 ++ player_postthink 79 ++ player_getgunposition 80 ++ player_shouldfadeondeath 66 ++ player_impulsecommands 83 ++ player_updateclientdata 82 ++ ++ item_addtoplayer 59 ++ item_addduplicate 60 ++ item_getiteminfo 61 ++ item_candeploy 62 ++ item_deploy 64 ++ item_canholster 66 ++ item_holster 67 ++ item_updateiteminfo 68 ++ item_preframe 69 ++ item_postframe 70 ++ item_drop 71 ++ item_kill 72 ++ item_attachtoplayer 73 ++ item_primaryammoindex 74 ++ item_secondaryammoindex 75 ++ item_updateclientdata 76 ++ item_getweaponptr 77 ++ item_itemslot 79 ++ ++ weapon_extractammo 80 ++ weapon_extractclipammo 81 ++ weapon_addweapon 82 ++ weapon_playemptysound 83 ++ weapon_resetemptysound 84 ++ weapon_sendweaponanim 85 ++ weapon_isusable 86 ++ weapon_primaryattack 87 ++ weapon_secondaryattack 88 ++ weapon_reload 89 ++ weapon_weaponidle 90 ++ weapon_retireweapon 91 ++ weapon_shouldweaponidle 92 ++ weapon_usedecrement 93 ++ ++ cstrike_restart 2 ++ cstrike_roundrespawn 84 ++ cstrike_item_candrop 63 ++ cstrike_item_getmaxspeed 78 ++@end ++ + @section dod linux + pev 0 + base 0x154 + + spawn 5 + precache 6 + keyvalue 7 + objectcaps 10 +@@ -1742,18 +1852,122 @@ + weapon_isusable 82 + weapon_primaryattack 83 + weapon_secondaryattack 84 + weapon_reload 85 + weapon_weaponidle 86 + weapon_retireweapon 87 + weapon_shouldweaponidle 88 + weapon_usedecrement 89 ++@end ++ ++@section valve mac ++ pev 4 ++ base 0x0 + ++ spawn 0 ++ precache 1 ++ keyvalue 2 ++ objectcaps 5 ++ activate 6 ++ setobjectcollisionbox 7 ++ classify 8 ++ deathnotice 9 ++ traceattack 10 ++ takedamage 11 ++ takehealth 12 ++ killed 13 ++ bloodcolor 14 ++ tracebleed 15 ++ istriggered 16 ++ mymonsterpointer 17 ++ mysquadmonsterpointer 18 ++ gettogglestate 19 ++ addpoints 20 ++ addpointstoteam 21 ++ addplayeritem 22 ++ removeplayeritem 23 ++ giveammo 24 ++ getdelay 25 ++ ismoving 26 ++ overridereset 27 ++ damagedecal 28 ++ settogglestate 29 ++ startsneaking 30 ++ stopsneaking 31 ++ oncontrols 32 ++ issneaking 33 ++ isalive 34 ++ isbspmodel 35 ++ reflectgauss 36 ++ hastarget 37 ++ isinworld 38 ++ isplayer 39 ++ isnetclient 40 ++ teamid 41 ++ getnexttarget 42 ++ think 43 ++ touch 44 ++ use 45 ++ blocked 46 ++ respawn 47 ++ updateowner 48 ++ fbecomeprone 49 ++ center 50 ++ eyeposition 51 ++ earposition 52 ++ bodytarget 53 ++ illumination 54 ++ fvisible 55 ++ fvecvisible 56 ++ ++ player_jump 125 ++ player_duck 126 ++ player_prethink 127 ++ player_postthink 128 ++ player_getgunposition 119 ++ player_shouldfadeondeath 60 ++ player_impulsecommands 130 ++ player_updateclientdata 129 ++ ++ item_addtoplayer 58 ++ item_addduplicate 59 ++ item_getiteminfo 60 ++ item_candeploy 61 ++ item_deploy 62 ++ item_canholster 63 ++ item_holster 64 ++ item_updateiteminfo 65 ++ item_preframe 66 ++ item_postframe 67 ++ item_drop 68 ++ item_kill 69 ++ item_attachtoplayer 70 ++ item_primaryammoindex 71 ++ item_secondaryammoindex 72 ++ item_updateclientdata 73 ++ item_getweaponptr 74 ++ item_itemslot 75 ++ ++ weapon_extractammo 76 ++ weapon_extractclipammo 77 ++ weapon_addweapon 78 ++ weapon_playemptysound 79 ++ weapon_resetemptysound 80 ++ weapon_sendweaponanim 81 ++ weapon_isusable 82 ++ weapon_primaryattack 83 ++ weapon_secondaryattack 84 ++ weapon_reload 85 ++ weapon_weaponidle 86 ++ weapon_retireweapon 87 ++ weapon_shouldweaponidle 88 ++ weapon_usedecrement 89 + @end ++ + ; Sven-Coop has no linux binaries. This makes disassembly much harder. + ; These offsets were contributed by ts2do + @section SvenCoop windows + pev 4 + base 0x0 + + spawn 0 + precache 1 +diff --git a/dlls/hamsandwich/config_parser.cpp b/dlls/hamsandwich/config_parser.cpp +--- a/dlls/hamsandwich/config_parser.cpp ++++ b/dlls/hamsandwich/config_parser.cpp +@@ -235,18 +235,20 @@ int read_start_section(char *data) + { + if (strncmp(data, CurrentModName, strlen(CurrentModName))==0) + { + data+=strlen(CurrentModName)+1; + trim_line(data); + + #ifdef _WIN32 + if (strcmp(data, "windows")==0) +-#elif defined __linux__ ++#elif defined(__linux__) + if (strcmp(data, "linux")==0) ++#elif defined(__APPLE__) ++ if (strcmp(data, "mac")==0) + #endif + { + return 1; + } + } + return 0; + } + int read_number(char *input) +diff --git a/dlls/hamsandwich/hook.h b/dlls/hamsandwich/hook.h +--- a/dlls/hamsandwich/hook.h ++++ b/dlls/hamsandwich/hook.h +@@ -59,48 +59,48 @@ public: + int **ivtable=(int **)vtable; + func=(void *)ivtable[entry]; + + // now install a trampoline + // (int thiscall, int voidcall, int paramcount, void *extraptr) + tramp=CreateGenericTrampoline(true, voidcall, paramcount, (void*)this, target); + + // Insert into vtable +-#if defined _WIN32 ++#if defined(_WIN32) + DWORD OldFlags; + VirtualProtect(&ivtable[entry],sizeof(int*),PAGE_READWRITE,&OldFlags); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + void *addr = (void *)ALIGN(&ivtable[entry]); + mprotect(addr,sysconf(_SC_PAGESIZE),PROT_READ|PROT_WRITE); + #endif + ivtable[entry]=(int*)tramp; + + size_t len=strlen(name); + ent=new char[len+1]; + + snprintf(ent,len+1,"%s",name); + }; + + ~Hook() + { + // Insert the original function back into the vtable + int **ivtable=(int **)vtable; + +-#if defined _WIN32 ++#if defined(_WIN32) + DWORD OldFlags; + VirtualProtect(&ivtable[entry],sizeof(int*),PAGE_READWRITE,&OldFlags); +-#elif defined __linux_ ++#elif defined(__linux_) || defined(__APPLE__) + void *addr = (void *)ALIGN(&ivtable[entry]); + mprotect(addr,sysconf(_SC_PAGESIZE),PROT_READ|PROT_WRITE); + #endif + + ivtable[entry]=(int *)func; +-#if defined _WIN32 ++#if defined(_WIN32) + VirtualFree(tramp, 0, MEM_RELEASE); +-#elif __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + free(tramp); + #endif + + delete[] ent; + + CVector::iterator end=pre.end(); + + for (CVector::iterator i=pre.begin(); +diff --git a/dlls/hamsandwich/hook_callbacks.cpp b/dlls/hamsandwich/hook_callbacks.cpp +--- a/dlls/hamsandwich/hook_callbacks.cpp ++++ b/dlls/hamsandwich/hook_callbacks.cpp +@@ -161,19 +161,19 @@ void Hook_Void_Void(Hook *hook, void *pt + { + PUSH_VOID() + + MAKE_VECTOR() + + PRE_START() + PRE_END() + +-#if defined _WIN32 ++#if defined(_WIN32) + reinterpret_cast(hook->func)(pthis,0); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + reinterpret_cast(hook->func)(pthis); + #endif + + POST_START() + POST_END() + + KILL_VECTOR() + POP() +@@ -187,19 +187,19 @@ int Hook_Int_Void(Hook *hook, void *pthi + + MAKE_VECTOR() + + + PRE_START() + PRE_END() + + +-#if defined _WIN32 ++#if defined(_WIN32) + origret=reinterpret_cast(hook->func)(pthis,0); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + origret=reinterpret_cast(hook->func)(pthis); + #endif + + POST_START() + POST_END() + + KILL_VECTOR() + POP() +@@ -217,19 +217,19 @@ void Hook_Void_Entvar(Hook *hook, void * + MAKE_VECTOR() + + P_ENTVAR(entvar, iOther) + + PRE_START() + , iOther + PRE_END() + +-#if defined _WIN32 ++#if defined(_WIN32) + reinterpret_cast(hook->func)(pthis, 0, entvar); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + reinterpret_cast(hook->func)(pthis, entvar); + #endif + + POST_START() + , iOther + POST_END() + + KILL_VECTOR() +@@ -245,19 +245,19 @@ void Hook_Void_Cbase(Hook *hook, void *p + MAKE_VECTOR() + + P_CBASE(other, iOther) + + PRE_START() + , iOther + PRE_END() + +-#if defined _WIN32 ++#if defined(_WIN32) + reinterpret_cast(hook->func)(pthis, 0, other); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + reinterpret_cast(hook->func)(pthis, other); + #endif + + POST_START() + , iOther + POST_END() + + KILL_VECTOR() +@@ -274,19 +274,19 @@ int Hook_Int_Float_Int(Hook *hook, void + + P_FLOAT(f1) + P_INT(i1) + + PRE_START() + , f1, i1 + PRE_END() + +-#if defined _WIN32 ++#if defined(_WIN32) + origret=reinterpret_cast(hook->func)(pthis, 0, f1, i1); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + origret=reinterpret_cast(hook->func)(pthis, f1, i1); + #endif + + POST_START() + , f1, i1 + POST_END() + + KILL_VECTOR() +@@ -304,19 +304,19 @@ void Hook_Void_Entvar_Int(Hook *hook, vo + + P_ENTVAR(ev1, iOther) + P_INT(i1) + + PRE_START() + , iOther, i1 + PRE_END() + +-#if defined _WIN32 ++#if defined(_WIN32) + reinterpret_cast(hook->func)(pthis, 0, ev1, i1); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + reinterpret_cast(hook->func)(pthis, ev1, i1); + #endif + + POST_START() + , iOther, i1 + POST_END() + + KILL_VECTOR() +@@ -334,19 +334,19 @@ int Hook_Int_Cbase(Hook *hook, void *pth + + MAKE_VECTOR() + + P_CBASE(cb1, iOther) + + PRE_START() + , iOther + PRE_END() +-#if defined _WIN32 ++#if defined(_WIN32) + origret=reinterpret_cast(hook->func)(pthis, 0, cb1); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + origret=reinterpret_cast(hook->func)(pthis, cb1); + #endif + + POST_START() + , iOther + POST_END() + + KILL_VECTOR() +@@ -362,19 +362,19 @@ void Hook_Void_Int_Int(Hook *hook, void + MAKE_VECTOR() + + P_INT(i1) + P_INT(i2) + + PRE_START() + ,i1, i2 + PRE_END() +-#if defined _WIN32 ++#if defined(_WIN32) + reinterpret_cast(hook->func)(pthis, 0, i1, i2); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + reinterpret_cast(hook->func)(pthis, i1, i2); + #endif + + POST_START() + ,i1, i2 + POST_END() + + KILL_VECTOR() +@@ -393,19 +393,19 @@ int Hook_Int_Int_Str_Int(Hook *hook, voi + + P_INT(i1) + P_STR(a) + P_INT(i2) + + PRE_START() + ,i1, a.c_str(), i2 + PRE_END() +-#if defined _WIN32 ++#if defined(_WIN32) + origret=reinterpret_cast(hook->func)(pthis, 0, i1, a.c_str(), i2); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + origret=reinterpret_cast(hook->func)(pthis, i1, a.c_str(), i2); + #endif + + POST_START() + ,i1, a.c_str(), i2 + POST_END() + + KILL_VECTOR() +@@ -424,19 +424,19 @@ int Hook_Int_Int(Hook *hook, void *pthis + MAKE_VECTOR() + + P_INT(i1) + + PRE_START() + ,i1 + PRE_END() + +-#if defined _WIN32 ++#if defined(_WIN32) + origret=reinterpret_cast(hook->func)(pthis, 0, i1); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + origret=reinterpret_cast(hook->func)(pthis, i1); + #endif + + POST_START() + ,i1 + POST_END() + + KILL_VECTOR() +@@ -455,19 +455,19 @@ int Hook_Int_Entvar(Hook *hook, void *pt + + MAKE_VECTOR() + P_ENTVAR(ev1, iOther) + + PRE_START() + ,iOther + PRE_END() + +-#if defined _WIN32 ++#if defined(_WIN32) + origret=reinterpret_cast(hook->func)(pthis, 0, ev1); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + origret=reinterpret_cast(hook->func)(pthis, ev1); + #endif + + POST_START() + , iOther + POST_END() + + KILL_VECTOR() +@@ -492,19 +492,19 @@ int Hook_Int_Entvar_Entvar_Float_Int(Hoo + P_FLOAT(damage) + P_INT(damagebits) + + PRE_START() + ,iInflictor, iAttacker, damage, damagebits + PRE_END() + + +-#if defined _WIN32 ++#if defined(_WIN32) + origret=reinterpret_cast(hook->func)(pthis, 0, inflictor, attacker, damage, damagebits); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + origret=reinterpret_cast(hook->func)(pthis, inflictor, attacker, damage, damagebits); + #endif + + POST_START() + ,iInflictor, iAttacker, damage, damagebits + POST_END() + + KILL_VECTOR() +@@ -527,19 +527,19 @@ int Hook_Int_Entvar_Entvar_Float_Float_I + P_FLOAT(unknown) + P_INT(damagebits) + + PRE_START() + ,iInflictor, iAttacker, damage, unknown, damagebits + PRE_END() + + +-#if defined _WIN32 ++#if defined(_WIN32) + origret=reinterpret_cast(hook->func)(pthis, 0, inflictor, attacker, damage, unknown, damagebits); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + origret=reinterpret_cast(hook->func)(pthis, inflictor, attacker, damage, unknown, damagebits); + #endif + + POST_START() + ,iInflictor, iAttacker, damage, unknown, damagebits + POST_END() + + KILL_VECTOR() +@@ -554,19 +554,19 @@ void Hook_Void_Int(Hook *hook, void *pth + + MAKE_VECTOR() + P_INT(i1) + + PRE_START() + , i1 + PRE_END() + +-#if defined _WIN32 ++#if defined(_WIN32) + reinterpret_cast(hook->func)(pthis, 0, i1); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + reinterpret_cast(hook->func)(pthis, i1); + #endif + + POST_START() + ,i1 + POST_END() + + KILL_VECTOR() +@@ -585,19 +585,19 @@ void Hook_Void_Cbase_Cbase_Int_Float(Hoo + P_INT(i1) + P_FLOAT(f1) + + PRE_START() + ,iCaller, iActivator, i1, f1 + PRE_END() + + +-#if defined _WIN32 ++#if defined(_WIN32) + reinterpret_cast(hook->func)(pthis, 0, cb1, cb2, i1, f1); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + reinterpret_cast(hook->func)(pthis, cb1, cb2, i1, f1); + #endif + + POST_START() + ,iCaller, iActivator, i1, f1 + POST_END() + + KILL_VECTOR() +@@ -615,19 +615,19 @@ void Hook_Void_Entvar_Float_Vector_Trace + P_VECTOR(v1) + P_TRACE(tr1) + P_INT(i1) + + PRE_START() + ,iev1, f1, MF_PrepareCellArrayA(reinterpret_cast(&v1), 3, false), tr1, i1 + PRE_END() + +-#if defined _WIN32 ++#if defined(_WIN32) + reinterpret_cast(hook->func)(pthis, 0, ev1, f1, v1, tr1, i1); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + reinterpret_cast(hook->func)(pthis, ev1, f1, v1, tr1, i1); + #endif + + POST_START() + , iev1, f1, MF_PrepareCellArrayA(reinterpret_cast(&v1), 3, false), tr1, i1 + POST_END() + + KILL_VECTOR() +@@ -643,19 +643,19 @@ void Hook_Void_Float_Vector_Trace_Int(Ho + P_VECTOR(v1) + P_TRACE(tr1) + P_INT(i1) + + PRE_START() + , f1, MF_PrepareCellArrayA(reinterpret_cast(&v1), 3, false), tr1, i1 + PRE_END() + +-#if defined _WIN32 ++#if defined(_WIN32) + reinterpret_cast(hook->func)(pthis, 0, f1, v1, tr1, i1); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + reinterpret_cast(hook->func)(pthis, f1, v1, tr1, i1); + #endif + + POST_START() + , f1, MF_PrepareCellArrayA(reinterpret_cast(&v1), 3, false), tr1, i1 + POST_END() + + KILL_VECTOR() +@@ -667,19 +667,19 @@ const char *Hook_Str_Void(Hook *hook, vo + String origret; + + MAKE_VECTOR() + + PUSH_STRING() + PRE_START() + PRE_END() + +-#if defined _WIN32 ++#if defined(_WIN32) + origret.assign(reinterpret_cast(hook->func)(pthis, 0)); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + origret.assign(reinterpret_cast(hook->func)(pthis)); + #endif + + POST_START() + POST_END() + + KILL_VECTOR() + POP() +@@ -694,69 +694,69 @@ void *Hook_Cbase_Void(Hook *hook, void * + void *origret=NULL; + PUSH_CBASE() + + MAKE_VECTOR() + + PRE_START() + PRE_END() + +-#if defined _WIN32 ++#if defined(_WIN32) + origret=reinterpret_cast(hook->func)(pthis, 0); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + origret=reinterpret_cast(hook->func)(pthis); + #endif + + POST_START() + POST_END() + + KILL_VECTOR() + POP() + CHECK_RETURN() + return ret; + + } + + #ifdef _WIN32 + void Hook_Vector_Void(Hook *hook, void *pthis, Vector *out) +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + void Hook_Vector_Void(Hook *hook, Vector *out, void *pthis) + #endif + { + Vector ret; + Vector origret; + + PUSH_VECTOR() + + MAKE_VECTOR() + + memset(&ret, 0x0, sizeof(Vector)); + memset(&origret, 0x0, sizeof(Vector)); + + PRE_START() + PRE_END() + +-#if defined _WIN32 ++#if defined(_WIN32) + reinterpret_cast(hook->func)(pthis, 0, &origret); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + origret=reinterpret_cast(hook->func)(pthis); + #endif + + POST_START() + POST_END() + + KILL_VECTOR() + POP() + CHECK_RETURN_VEC() + memcpy(out, &ret, sizeof(Vector)); + + } + #ifdef _WIN32 + void Hook_Vector_pVector(Hook *hook, void *pthis, Vector *out, Vector *v1) +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + void Hook_Vector_pVector(Hook *hook, Vector *out, void *pthis, Vector *v1) + #endif + { + Vector ret; + Vector origret; + + PUSH_VECTOR() + +@@ -765,19 +765,19 @@ void Hook_Vector_pVector(Hook *hook, Vec + + memset(&ret, 0x0, sizeof(Vector)); + memset(&origret, 0x0, sizeof(Vector)); + + PRE_START() + , MF_PrepareCellArrayA(reinterpret_cast(v1), 3, false) + PRE_END() + +-#if defined _WIN32 ++#if defined(_WIN32) + reinterpret_cast(hook->func)(pthis, 0, &origret, v1); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + origret=reinterpret_cast(hook->func)(pthis, v1); + #endif + + POST_START() + , MF_PrepareCellArrayA(reinterpret_cast(v1), 3, false) + POST_END() + + KILL_VECTOR() +@@ -795,19 +795,19 @@ int Hook_Int_pVector(Hook *hook, void *p + + MAKE_VECTOR() + P_PTRVECTOR(v1) + + PRE_START() + , MF_PrepareCellArrayA(reinterpret_cast(v1), 3, false) + PRE_END() + +-#if defined _WIN32 ++#if defined(_WIN32) + origret=reinterpret_cast(hook->func)(pthis, 0, v1); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + origret=reinterpret_cast(hook->func)(pthis, v1); + #endif + + POST_START() + , MF_PrepareCellArrayA(reinterpret_cast(v1), 3, false) + POST_END() + + KILL_VECTOR() +@@ -826,19 +826,19 @@ void Hook_Void_Entvar_Float_Float(Hook * + P_ENTVAR(ev1, cev1) + P_FLOAT(f1) + P_FLOAT(f2) + + PRE_START() + , cev1, f1, f2 + PRE_END() + +-#if defined _WIN32 ++#if defined(_WIN32) + reinterpret_cast(hook->func)(pthis, 0, ev1, f1, f2); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + reinterpret_cast(hook->func)(pthis, ev1, f1, f2); + #endif + + POST_START() + , cev1, f1, f2 + POST_END() + + KILL_VECTOR() +@@ -855,19 +855,19 @@ int Hook_Int_pFloat_pFloat(Hook *hook, v + MAKE_VECTOR() + P_PTRFLOAT(f1) + P_PTRFLOAT(f2) + + PRE_START() + , f1 != NULL ? *f1 : 0, f2 != NULL ? *f2 : 0 + PRE_END() + +-#if defined _WIN32 ++#if defined(_WIN32) + origret=reinterpret_cast(hook->func)(pthis, 0, f1, f2); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + origret=reinterpret_cast(hook->func)(pthis, f1, f2); + #endif + + POST_START() + , f1 != NULL ? *f1 : 0, f2 != NULL ? *f2 : 0 + POST_END() + + KILL_VECTOR() +@@ -884,19 +884,19 @@ void Hook_Void_Entvar_Float(Hook *hook, + MAKE_VECTOR() + P_ENTVAR(ev1, cev1) + P_FLOAT(f1) + + PRE_START() + , cev1, f1 + PRE_END() + +-#if defined _WIN32 ++#if defined(_WIN32) + reinterpret_cast(hook->func)(pthis, 0, ev1, f1); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + reinterpret_cast(hook->func)(pthis, ev1, f1); + #endif + + POST_START() + , cev1, f1 + POST_END() + + KILL_VECTOR() +@@ -911,19 +911,19 @@ void Hook_Void_Int_Int_Int(Hook *hook, v + + P_INT(i1) + P_INT(i2) + P_INT(i3) + + PRE_START() + ,i1, i2, i3 + PRE_END() +-#if defined _WIN32 ++#if defined(_WIN32) + reinterpret_cast(hook->func)(pthis, 0, i1, i2, i3); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + reinterpret_cast(hook->func)(pthis, i1, i2, i3); + #endif + + POST_START() + ,i1, i2, i3 + POST_END() + + KILL_VECTOR() +@@ -935,19 +935,19 @@ void Hook_Void_ItemInfo(Hook *hook, void + + MAKE_VECTOR() + + P_ITEMINFO(iteminfo) + + PRE_START() + ,iteminfo + PRE_END() +-#if defined _WIN32 ++#if defined(_WIN32) + reinterpret_cast(hook->func)(pthis, 0, iteminfo); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + reinterpret_cast(hook->func)(pthis, iteminfo); + #endif + + POST_START() + ,iteminfo + POST_END() + + KILL_VECTOR() +@@ -959,19 +959,19 @@ float Hook_Float_Void(Hook *hook, void * + float ret=0.0; + float origret=0.0; + PUSH_FLOAT() + + MAKE_VECTOR() + + PRE_START() + PRE_END() +-#if defined _WIN32 ++#if defined(_WIN32) + origret=reinterpret_cast(hook->func)(pthis, 0); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + origret=reinterpret_cast(hook->func)(pthis); + #endif + + POST_START() + POST_END() + + KILL_VECTOR() + POP() +@@ -985,19 +985,19 @@ void Hook_Void_Float_Int(Hook* hook, voi + + MAKE_VECTOR() + P_FLOAT(f1) + P_INT(i1) + + PRE_START() + , f1, i1 + PRE_END() +-#if defined _WIN32 ++#if defined(_WIN32) + reinterpret_cast(hook->func)(pthis, 0, f1, i1); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + reinterpret_cast(hook->func)(pthis, f1, i1); + #endif + + POST_START() + , f1, i1 + POST_END() + + KILL_VECTOR() +diff --git a/dlls/hamsandwich/hook_callbacks.h b/dlls/hamsandwich/hook_callbacks.h +--- a/dlls/hamsandwich/hook_callbacks.h ++++ b/dlls/hamsandwich/hook_callbacks.h +@@ -125,25 +125,25 @@ const int PC_Cbase_Void = 0; + void *Hook_Cbase_Void(Hook *hook, void *pthis); + + // HACK: I'm too lazy to fix up trampoline generator to deal with + // special return values. this is so much easier. + const bool RT_Vector_Void = true; + const int PC_Vector_Void = 1; + #ifdef _WIN32 + void Hook_Vector_Void(Hook *hook, void *pthis, Vector *out); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + void Hook_Vector_Void(Hook *hook, Vector *out, void *pthis); + #endif + + const bool RT_Vector_pVector = true; + const int PC_Vector_pVector = 2; + #ifdef _WIN32 + void Hook_Vector_pVector(Hook *hook, void *pthis, Vector *out, Vector *v1); +-#elif defined __linux__ ++#elif defined(__linux__) || defined(__APPLE__) + void Hook_Vector_pVector(Hook *hook, Vector *out, void *pthis, Vector *v1); + #endif + + const bool RT_Int_pVector = false; + const int PC_Int_pVector = 1; + int Hook_Int_pVector(Hook *hook, void *pthis, Vector *v1); + + const bool RT_Void_Entvar_Float_Float = true; +diff --git a/dlls/hamsandwich/pdata.cpp b/dlls/hamsandwich/pdata.cpp +--- a/dlls/hamsandwich/pdata.cpp ++++ b/dlls/hamsandwich/pdata.cpp +@@ -52,16 +52,22 @@ + // Return -1 on null, -2 on invalid, and the the index of any other. + static cell AMX_NATIVE_CALL get_pdata_cbase_safe(AMX *amx, cell *params) + { + int index=params[1]; + FM_CHECK_ENTITY(index); + int iOffset=params[2]; + #ifdef __linux__ + iOffset += params[3]; ++#elif defined __APPLE__ ++ // Use Linux offset in older plugins ++ if (params[0] / sizeof(cell) == 3) ++ iOffset += params[3]; ++ else ++ iOffset += params[4]; + #endif + if (iOffset <0) + { + MF_LogError(amx, AMX_ERR_NATIVE, "Invalid offset provided. (got: %d)", iOffset); + return 0; + } + void *ptr=*((void **)((int *)INDEXENT_NEW(index)->pvPrivateData + iOffset)); + +@@ -82,17 +88,24 @@ static cell AMX_NATIVE_CALL get_pdata_cb + } + static cell AMX_NATIVE_CALL get_pdata_cbase(AMX *amx, cell *params) + { + int index=params[1]; + FM_CHECK_ENTITY(index); + int iOffset=params[2]; + #ifdef __linux__ + iOffset += params[3]; ++#elif defined __APPLE__ ++ // Use Linux offset in older plugins ++ if (params[0] / sizeof(cell) == 3) ++ iOffset += params[3]; ++ else ++ iOffset += params[4]; + #endif ++ + if (iOffset <0) + { + MF_LogError(amx, AMX_ERR_NATIVE, "Invalid offset provided. (got: %d)", iOffset); + return 0; + } + void *ptr=*((void **)((int *)INDEXENT_NEW(index)->pvPrivateData + iOffset)); + + return PrivateToIndex(ptr); +@@ -105,16 +118,22 @@ static cell AMX_NATIVE_CALL set_pdata_cb + + if (target != -1) + { + FM_CHECK_ENTITY(target); + } + int iOffset=params[2]; + #ifdef __linux__ + iOffset += params[4]; ++#elif defined __APPLE__ ++ // Use Linux offset in older plugins ++ if (params[0] / sizeof(cell) == 4) ++ iOffset += params[4]; ++ else ++ iOffset += params[5]; + #endif + if (iOffset <0) + { + MF_LogError(amx, AMX_ERR_NATIVE, "Invalid offset provided. (got: %d)", iOffset); + return 0; + } + + if (target == -1) +diff --git a/dlls/hamsandwich/sdk/CString.h b/dlls/hamsandwich/sdk/CString.h +--- a/dlls/hamsandwich/sdk/CString.h ++++ b/dlls/hamsandwich/sdk/CString.h +@@ -239,17 +239,17 @@ public: + + if (len < 1) + { + return; + } + + if (is_space(v[len-1])) + { +- for (i=len-1; i>=0; i--) ++ for (i=len-1; i + //========================================================= +-void UTIL_LogPrintf( char *fmt, ... ) ++void UTIL_LogPrintf( const char *fmt, ... ) + { + va_list argptr; + static char string[1024]; + + va_start ( argptr, fmt ); + vsnprintf ( string, sizeof(string), fmt, argptr ); + va_end ( argptr ); + +diff --git a/dlls/hamsandwich/sdk/amxxmodule.h b/dlls/hamsandwich/sdk/amxxmodule.h +--- a/dlls/hamsandwich/sdk/amxxmodule.h ++++ b/dlls/hamsandwich/sdk/amxxmodule.h +@@ -15,21 +15,26 @@ + #ifdef USE_METAMOD + #include + #include + #include "osdep.h" + #endif // #ifdef USE_METAMOD + + // DLL Export + #undef DLLEXPORT +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + #define DLLEXPORT __declspec(dllexport) + #else + #define DLLEXPORT __attribute__((visibility("default"))) ++#endif ++ ++#if defined(__linux__) && !defined(LINUX) + #define LINUX ++#elif defined(__APPLE__) && !defined(OSX) ++#define OSX + #endif + + #undef C_DLLEXPORT + #define C_DLLEXPORT extern "C" DLLEXPORT + + // ***** AMXX stuff ***** + + // module interface version was 1 +@@ -61,17 +66,17 @@ struct amxx_module_info_s + + // *** Small stuff *** + // The next section is copied from the amx.h file + // Copyright (c) ITB CompuPhase, 1997-2005 + + #if defined HAVE_STDINT_H + #include + #else +- #if defined __LCC__ || defined __DMC__ || defined LINUX ++ #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__ + #if defined HAVE_INTTYPES_H + #include + #else + #include + #endif + #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L + /* The ISO C99 defines the int16_t and int_32t types. If the compiler got + * here, these types are probably undefined. +@@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t + + #if defined __GNUC__ + #define PACKED __attribute__((packed)) + #else + #define PACKED + #endif + + #if !defined AMX_NO_ALIGN +- #if defined LINUX || defined __FreeBSD__ ++ #if defined LINUX || defined __FreeBSD__ || defined __APPLE__ + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #elif defined MACOS && defined __MWERKS__ + #pragma options align=mac68k + #else + #pragma pack(push) + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #if defined __TURBOC__ + #pragma option -a- /* "pack" pragma for older Borland compilers */ +@@ -390,28 +395,28 @@ enum { + AMX_ERR_INIT, /* AMX not initialized (or doubly initialized) */ + AMX_ERR_USERDATA, /* unable to set user data field (table full) */ + AMX_ERR_INIT_JIT, /* cannot initialize the JIT */ + AMX_ERR_PARAMS, /* parameter error */ + AMX_ERR_DOMAIN, /* domain error, expression result does not fit in range */ + }; + + #if !defined AMX_NO_ALIGN +- #if defined __linux__ ++ #if defined(__linux__) || defined(__APPLE__) + #pragma pack() /* reset default packing */ + #else + #pragma pack(pop) /* reset previous packing */ + #endif + #endif + + + // ***** declare functions ***** + + #ifdef USE_METAMOD +-void UTIL_LogPrintf( char *fmt, ... ); ++void UTIL_LogPrintf( const char *fmt, ... ); + void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage); + short FixedSigned16( float value, float scale ); + unsigned short FixedUnsigned16( float value, float scale ); + + #ifdef FN_META_QUERY + void FN_META_QUERY(void); + #endif // FN_META_QUERY + +@@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict + + #ifdef FN_AllowLagCompensation_Post + int FN_AllowLagCompensation_Post(void); + #endif // FN_AllowLagCompensation_Post + + + + #ifdef FN_PrecacheModel +-int FN_PrecacheModel(char *s); ++int FN_PrecacheModel(const char *s); + #endif // FN_PrecacheModel + + #ifdef FN_PrecacheSound +-int FN_PrecacheSound(char *s); ++int FN_PrecacheSound(const char *s); + #endif // FN_PrecacheSound + + #ifdef FN_SetModel + void FN_SetModel(edict_t *e, const char *m); + #endif // FN_SetModel + + #ifdef FN_ModelIndex + int FN_ModelIndex(const char *m); +@@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m); + int FN_ModelFrames(int modelIndex); + #endif // FN_ModelFrames + + #ifdef FN_SetSize + void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize + + #ifdef FN_ChangeLevel +-void FN_ChangeLevel(char *s1, char *s2); ++void FN_ChangeLevel(const char *s1, const char *s2); + #endif // FN_ChangeLevel + + #ifdef FN_GetSpawnParms + void FN_GetSpawnParms(edict_t *ent); + #endif // FN_GetSpawnParms + + #ifdef FN_SaveSpawnParms + void FN_SaveSpawnParms(edict_t *ent); +@@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien + int FN_NumberOfEntities(void); + #endif // FN_NumberOfEntities + + #ifdef FN_GetInfoKeyBuffer + char *FN_GetInfoKeyBuffer(edict_t *e); + #endif // FN_GetInfoKeyBuffer + + #ifdef FN_InfoKeyValue +-char *FN_InfoKeyValue(char *infobuffer, char *key); ++char *FN_InfoKeyValue(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue + + #ifdef FN_SetKeyValue +-void FN_SetKeyValue(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue + + #ifdef FN_SetClientKeyValue +-void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue + + #ifdef FN_IsMapValid +-int FN_IsMapValid(char *filename); ++int FN_IsMapValid(const char *filename); + #endif // FN_IsMapValid + + #ifdef FN_StaticDecal + void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal + + #ifdef FN_PrecacheGeneric +-int FN_PrecacheGeneric(char *s); ++int FN_PrecacheGeneric(const char *s); + #endif // FN_PrecacheGeneric + + #ifdef FN_GetPlayerUserId + int FN_GetPlayerUserId(edict_t *e ); + #endif // FN_GetPlayerUserId + + #ifdef FN_BuildSoundMsg + void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t * + #endif // FN_GetPlayerAuthId + + + + + + + #ifdef FN_PrecacheModel_Post +-int FN_PrecacheModel_Post(char *s); ++int FN_PrecacheModel_Post(const char *s); + #endif // FN_PrecacheModel_Post + + #ifdef FN_PrecacheSound_Post +-int FN_PrecacheSound_Post(char *s); ++int FN_PrecacheSound_Post(const char *s); + #endif // FN_PrecacheSound_Post + + #ifdef FN_SetModel_Post + void FN_SetModel_Post(edict_t *e, const char *m); + #endif // FN_SetModel_Post + + #ifdef FN_ModelIndex_Post + int FN_ModelIndex_Post(const char *m); +@@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m); + int FN_ModelFrames_Post(int modelIndex); + #endif // FN_ModelFrames_Post + + #ifdef FN_SetSize_Post + void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize_Post + + #ifdef FN_ChangeLevel_Post +-void FN_ChangeLevel_Post(char *s1, char *s2); ++void FN_ChangeLevel_Post(const char *s1, const char *s2); + #endif // FN_ChangeLevel_Post + + #ifdef FN_GetSpawnParms_Post + void FN_GetSpawnParms_Post(edict_t *ent); + #endif // FN_GetSpawnParms_Post + + #ifdef FN_SaveSpawnParms_Post + void FN_SaveSpawnParms_Post(edict_t *ent); +@@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake + int FN_NumberOfEntities_Post(void); + #endif // FN_NumberOfEntities_Post + + #ifdef FN_GetInfoKeyBuffer_Post + char *FN_GetInfoKeyBuffer_Post(edict_t *e); + #endif // FN_GetInfoKeyBuffer_Post + + #ifdef FN_InfoKeyValue_Post +-char *FN_InfoKeyValue_Post(char *infobuffer, char *key); ++char *FN_InfoKeyValue_Post(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue_Post + + #ifdef FN_SetKeyValue_Post +-void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue_Post + + #ifdef FN_SetClientKeyValue_Post +-void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue_Post + + #ifdef FN_IsMapValid_Post +-int FN_IsMapValid_Post(char *filename); ++int FN_IsMapValid_Post(const char *filename); + #endif // FN_IsMapValid_Post + + #ifdef FN_StaticDecal_Post + void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal_Post + + #ifdef FN_PrecacheGeneric_Post +-int FN_PrecacheGeneric_Post(char *s); ++int FN_PrecacheGeneric_Post(const char *s); + #endif // FN_PrecacheGeneric_Post + + #ifdef FN_GetPlayerUserId_Post + int FN_GetPlayerUserId_Post(edict_t *e ); + #endif // FN_GetPlayerUserId_Post + + #ifdef FN_BuildSoundMsg_Post + void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -2111,17 +2116,17 @@ enum LibType + + typedef void (*AUTHORIZEFUNC)(int player, const char *authstring); + + typedef int (*PFN_ADD_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef int (*PFN_ADD_NEW_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef char * (*PFN_BUILD_PATHNAME) (const char * /*format*/, ...); + typedef char * (*PFN_BUILD_PATHNAME_R) (char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...); + typedef cell * (*PFN_GET_AMXADDR) (AMX * /*amx*/, cell /*offset*/); +-typedef void (*PFN_PRINT_SRVCONSOLE) (char * /*format*/, ...); ++typedef void (*PFN_PRINT_SRVCONSOLE) (const char * /*format*/, ...); + typedef const char * (*PFN_GET_MODNAME) (void); + typedef const char * (*PFN_GET_AMXSCRIPTNAME) (int /*id*/); + typedef AMX * (*PFN_GET_AMXSCRIPT) (int /*id*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYAMX) (const AMX * /*amx*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYNAME) (const char * /*name*/); + typedef int (*PFN_SET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */); + typedef char * (*PFN_GET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/); + typedef int (*PFN_GET_AMXSTRINGLEN) (const cell *ptr); +@@ -2170,18 +2175,18 @@ typedef void * (*PFN_ALLOCATOR) (co + typedef void * (*PFN_REALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ ); + typedef void (*PFN_DEALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const void* /*addr*/ ); + #endif + typedef int (*PFN_AMX_EXEC) (AMX* /*amx*/, cell* /*return val*/, int /*index*/); + typedef int (*PFN_AMX_EXECV) (AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/); + typedef int (*PFN_AMX_ALLOT) (AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/); +-typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); +-typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); + typedef int (*PFN_LOAD_AMXSCRIPT) (AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */); + typedef int (*PFN_UNLOAD_AMXSCRIPT) (AMX* /*amx*/,void** /*code*/); + typedef cell (*PFN_REAL_TO_CELL) (REAL /*x*/); + typedef REAL (*PFN_CELL_TO_REAL) (cell /*x*/); + typedef int (*PFN_REGISTER_SPFORWARD) (AMX * /*amx*/, int /*func*/, ... /*params*/); + typedef int (*PFN_REGISTER_SPFORWARD_BYNAME) (AMX * /*amx*/, const char * /*funcName*/, ... /*params*/); + typedef void (*PFN_UNREGISTER_SPFORWARD) (int /*id*/); + typedef void (*PFN_MERGEDEFINITION_FILE) (const char * /*filename*/); +diff --git a/dlls/hamsandwich/srvcmd.cpp b/dlls/hamsandwich/srvcmd.cpp +--- a/dlls/hamsandwich/srvcmd.cpp ++++ b/dlls/hamsandwich/srvcmd.cpp +@@ -38,17 +38,17 @@ + #include "offsets.h" + #include "forward.h" + #include "hook.h" + + + extern hook_t hooklist[]; + extern CVector hooks[HAM_LAST_ENTRY_DONT_USE_ME_LOL]; + +-void print_srvconsole(char *fmt, ...) ++void print_srvconsole(const char *fmt, ...) + { + va_list argptr; + static char string[384]; + va_start(argptr, fmt); + vsnprintf(string, sizeof(string) - 1, fmt, argptr); + string[sizeof(string) - 1] = '\0'; + va_end(argptr); + +diff --git a/dlls/mysqlx/Makefile b/dlls/mysqlx/Makefile +--- a/dlls/mysqlx/Makefile ++++ b/dlls/mysqlx/Makefile +@@ -1,92 +1,131 @@ +-#(C)2004-2005 AMX Mod X Development Team ++# (C)2004-2013 AMX Mod X Development Team + # Makefile written by David "BAILOPAN" Anderson + +-HLSDK = ../../../hlsdk ++########################################### ++### EDIT THESE PATHS FOR YOUR OWN SETUP ### ++########################################### ++ ++HLSDK = ../../../hlsdk/multiplayer + MM_ROOT = ../../../metamod/metamod +- +-### EDIT BELOW FOR OTHER PROJECTS ### +- +-OPT_FLAGS = -O2 -funroll-loops -s -pipe -fomit-frame-pointer -fno-strict-aliasing +-DEBUG_FLAGS = -g -ggdb3 +-CPP = gcc-4.1 +-NAME = mysql +-#MYSQL_DIR = ../../../mysql-5.0.22 + MYSQL_DIR = ../../../mysql-5.0 + +-BIN_SUFFIX_32 = amxx_i386.so +-BIN_SUFFIX_64 = amxx_amd64.so ++##################################### ++### EDIT BELOW FOR OTHER PROJECTS ### ++##################################### + +-OBJECTS = basic_sql.cpp handles.cpp module.cpp threading.cpp sdk/amxxmodule.cpp oldcompat_sql.cpp +-OBJECTS += thread/BaseWorker.cpp thread/ThreadWorker.cpp thread/PosixThreads.cpp +-OBJECTS += mysql/MysqlQuery.cpp mysql/MysqlResultSet.cpp mysql/MysqlDatabase.cpp mysql/MysqlDriver.cpp ++PROJECT = mysql + +-LINK = -lgcc -static-libgcc $(MYSQL_DIR)/lib/libmysqlclient_r.a -lz -lpthread ++OBJECTS = basic_sql.cpp handles.cpp module.cpp threading.cpp sdk/amxxmodule.cpp oldcompat_sql.cpp \ ++ thread/BaseWorker.cpp thread/ThreadWorker.cpp thread/PosixThreads.cpp \ ++ mysql/MysqlQuery.cpp mysql/MysqlResultSet.cpp mysql/MysqlDatabase.cpp mysql/MysqlDriver.cpp + +-INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \ +- -I$(MM_ROOT) -I$(HLSDK)/common -I$(MYSQL_DIR)/include -L$(MYSQL_DIR)/lib -Ithread \ +- -Imysql -Isdk ++############################################## ++### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ### ++############################################## + +-GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++C_OPT_FLAGS = -DNDEBUG -O2 -funroll-loops -fomit-frame-pointer -pipe ++C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3 ++C_GCC4_FLAGS = -fvisibility=hidden ++CPP_GCC4_FLAGS = -fvisibility-inlines-hidden ++CPP = gcc ++CPP_OSX = clang + +-ifeq "$(GCC_VERSION)" "4" +- OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden ++LINK = $(MYSQL_DIR)/lib/libmysqlclient_r.a -lz -lpthread -L$(MYSQL_DIR)/lib ++ ++INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \ ++ -I$(MM_ROOT) -I$(MYSQL_DIR)/include -Ithread -Imysql -Isdk ++ ++################################################ ++### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ### ++################################################ ++ ++OS := $(shell uname -s) ++ ++ifeq "$(OS)" "Darwin" ++ CPP = $(CPP_OSX) ++ LIB_EXT = dylib ++ LIB_SUFFIX = _amxx ++ CFLAGS += -DOSX ++ LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5 ++else ++ LIB_EXT = so ++ LIB_SUFFIX = _amxx_i386 ++ CFLAGS += -DLINUX ++ LINK += -shared + endif + ++LINK += -m32 -lm -ldl ++ ++CFLAGS += -DSM_DEFAULT_THREADER -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H \ ++ -Dstricmp=strcasecmp -fno-strict-aliasing -m32 -Wall -Werror ++CPPFLAGS += -fno-exceptions -fno-rtti ++ ++BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT) ++ + ifeq "$(DEBUG)" "true" + BIN_DIR = Debug +- CFLAGS = $(DEBUG_FLAGS) ++ CFLAGS += $(C_DEBUG_FLAGS) + else + BIN_DIR = Release +- CFLAGS = $(OPT_FLAGS) ++ CFLAGS += $(C_OPT_FLAGS) ++ LINK += -s + endif + +-CFLAGS += -DNDEBUG -Wall -Wno-non-virtual-dtor -Werror -fno-exceptions -DHAVE_STDINT_H -Dstricmp=strcasecmp -fno-rtti -static-libgcc +-CFLAGS += -DSM_DEFAULT_THREADER -m32 ++IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0") + +-ifeq "$(AMD64)" "true" +- BINARY = $(NAME)_$(BIN_SUFFIX_64) +- CFLAGS += -DPAWN_CELL_SIZE=64 -DHAVE_I64 -m64 +- INCLUDE += -Lextra/lib_linux64 ++ifeq "$(IS_CLANG)" "1" ++ CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/") ++ CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/") + else +- BINARY = $(NAME)_$(BIN_SUFFIX_32) +- CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 +- OPT_FLAGS += -march=i686 +- INCLUDE += -Lextra/lib_linux ++ CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++ CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3) + endif + +-OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++# Clang || GCC >= 4 ++ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1" ++ CFLAGS += $(C_GCC4_FLAGS) ++ CPPFLAGS += $(CPP_GCC4_FLAGS) ++endif ++ ++# Clang >= 3 || GCC >= 4.7 ++ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1" ++ CFLAGS += -Wno-delete-non-virtual-dtor ++endif ++ ++# OS is Linux and not using clang ++ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1" ++ LINK += -static-libgcc ++endif ++ ++OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++ ++# This will break if we include other Makefiles, but is fine for now. It allows ++# us to make a copy of this file that uses altered paths (ie. Makefile.mine) ++# or other changes without mucking up the original. ++MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) + + $(BIN_DIR)/%.o: %.cpp +- $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< ++ $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< + + all: ++ mkdir -p $(BIN_DIR) ++ mkdir -p $(BIN_DIR)/mysql + mkdir -p $(BIN_DIR)/thread +- mkdir -p $(BIN_DIR)/mysql + mkdir -p $(BIN_DIR)/sdk +- mkdir -p $(BIN_DIR) +- $(MAKE) mysql ++ $(MAKE) -f $(MAKEFILE_NAME) $(PROJECT) + +-amd64: +- $(MAKE) all AMD64=true ++$(PROJECT): $(OBJ_BIN) ++ $(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY) + +-mysql: $(OBJ_LINUX) +- $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) +- +-debug: +- $(MAKE) all DEBUG=true ++debug: ++ $(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true + + default: all + + clean: +- rm -rf Release/thread/*.o +- rm -rf Release/mysql/*.o +- rm -rf Release/sdk/*.o +- rm -rf Release/*.o +- rm -rf Release/$(NAME)_$(BIN_SUFFIX_32) +- rm -rf Release/$(NAME)_$(BIN_SUFFIX_64) +- rm -rf Debug/thread/*.o +- rm -rf Debug/mysql/*.o +- rm -rf Debug/sdk/*.o +- rm -rf Debug/*.o +- rm -rf Debug/$(NAME)_$(BIN_SUFFIX_32) +- rm -rf Debug/$(NAME)_$(BIN_SUFFIX_64) ++ rm -rf $(BIN_DIR)/*.o ++ rm -rf $(BIN_DIR)/mysql/*.o ++ rm -rf $(BIN_DIR)/thread/*.o ++ rm -rf $(BIN_DIR)/sdk/*.o ++ rm -f $(BIN_DIR)/$(BINARY) ++ +diff --git a/dlls/mysqlx/mysql/MysqlDriver.cpp b/dlls/mysqlx/mysql/MysqlDriver.cpp +--- a/dlls/mysqlx/mysql/MysqlDriver.cpp ++++ b/dlls/mysqlx/mysql/MysqlDriver.cpp +@@ -37,17 +37,17 @@ IDatabase *MysqlDriver::_Connect(Databas + if (!mysql) + { + if (errcode) + *errcode = -1; + if (error && maxlength) + { + snprintf(error, maxlength, "Initialization failed"); + } +- return false; ++ return NULL; + } + + if (do_timeout && info->max_timeout) + { + mysql_options(mysql, MYSQL_OPT_CONNECT_TIMEOUT, (const char *)&(info->max_timeout)); + } + + if (mysql_real_connect(mysql, +@@ -62,17 +62,17 @@ IDatabase *MysqlDriver::_Connect(Databas + if (errcode) + { + *errcode = mysql_errno(mysql); + } + if (error && maxlength) + { + snprintf(error, maxlength, "%s", mysql_error(mysql)); + } +- return false; ++ return NULL; + } + + MysqlDatabase *pMysql = new MysqlDatabase(mysql, this); + + return static_cast(pMysql); + } + + int MysqlDriver::QuoteString(const char *str, char buffer[], size_t maxlen, size_t *newsize) +diff --git a/dlls/mysqlx/sdk/amxxmodule.cpp b/dlls/mysqlx/sdk/amxxmodule.cpp +--- a/dlls/mysqlx/sdk/amxxmodule.cpp ++++ b/dlls/mysqlx/sdk/amxxmodule.cpp +@@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta + GetEntityAPI2, + GetEntityAPI2_Post, + GetNewDLLFunctions, + GetNewDLLFunctions_Post, + GetEngineFunctions, + GetEngineFunctions_Post + }; + +-C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) ++C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) + { + if ((int) CVAR_GET_FLOAT("developer") != 0) + UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", + Plugin_info.logtag, ifvers, Plugin_info.ifvers); + + // Check for valid pMetaUtilFuncs before we continue. + if(!pMetaUtilFuncs) { + UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag); +@@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM + #ifdef FN_META_DETACH + FN_META_DETACH(); + #endif // FN_META_DETACH + return TRUE; + } + + + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + // linux prototype + C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) { + + #else + #ifdef _MSC_VER + // MSVC: Simulate __stdcall calling convention + C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) + { +@@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... ) + return string; + } + + + //========================================================= + // UTIL_LogPrintf - Prints a logged message to console. + // Preceded by LOG: ( timestamp ) < message > + //========================================================= +-void UTIL_LogPrintf( char *fmt, ... ) ++void UTIL_LogPrintf( const char *fmt, ... ) + { + va_list argptr; + static char string[1024]; + + va_start ( argptr, fmt ); + vsnprintf ( string, sizeof(string), fmt, argptr ); + va_end ( argptr ); + +diff --git a/dlls/mysqlx/sdk/amxxmodule.h b/dlls/mysqlx/sdk/amxxmodule.h +--- a/dlls/mysqlx/sdk/amxxmodule.h ++++ b/dlls/mysqlx/sdk/amxxmodule.h +@@ -15,21 +15,26 @@ + #ifdef USE_METAMOD + #include + #include + #include "osdep.h" + #endif // #ifdef USE_METAMOD + + // DLL Export + #undef DLLEXPORT +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + #define DLLEXPORT __declspec(dllexport) + #else + #define DLLEXPORT __attribute__((visibility("default"))) ++#endif ++ ++#if defined(__linux__) && !defined(LINUX) + #define LINUX ++#elif defined(__APPLE__) && !defined(OSX) ++#define OSX + #endif + + #undef C_DLLEXPORT + #define C_DLLEXPORT extern "C" DLLEXPORT + + // ***** AMXX stuff ***** + + // module interface version was 1 +@@ -61,17 +66,17 @@ struct amxx_module_info_s + + // *** Small stuff *** + // The next section is copied from the amx.h file + // Copyright (c) ITB CompuPhase, 1997-2005 + + #if defined HAVE_STDINT_H + #include + #else +- #if defined __LCC__ || defined __DMC__ || defined LINUX ++ #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__ + #if defined HAVE_INTTYPES_H + #include + #else + #include + #endif + #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L + /* The ISO C99 defines the int16_t and int_32t types. If the compiler got + * here, these types are probably undefined. +@@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t + + #if defined __GNUC__ + #define PACKED __attribute__((packed)) + #else + #define PACKED + #endif + + #if !defined AMX_NO_ALIGN +- #if defined LINUX || defined __FreeBSD__ ++ #if defined LINUX || defined __FreeBSD__ || defined __APPLE__ + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #elif defined MACOS && defined __MWERKS__ + #pragma options align=mac68k + #else + #pragma pack(push) + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #if defined __TURBOC__ + #pragma option -a- /* "pack" pragma for older Borland compilers */ +@@ -390,28 +395,28 @@ enum { + AMX_ERR_INIT, /* AMX not initialized (or doubly initialized) */ + AMX_ERR_USERDATA, /* unable to set user data field (table full) */ + AMX_ERR_INIT_JIT, /* cannot initialize the JIT */ + AMX_ERR_PARAMS, /* parameter error */ + AMX_ERR_DOMAIN, /* domain error, expression result does not fit in range */ + }; + + #if !defined AMX_NO_ALIGN +- #if defined __linux__ ++ #if defined(__linux__) || defined(__APPLE__) + #pragma pack() /* reset default packing */ + #else + #pragma pack(pop) /* reset previous packing */ + #endif + #endif + + + // ***** declare functions ***** + + #ifdef USE_METAMOD +-void UTIL_LogPrintf( char *fmt, ... ); ++void UTIL_LogPrintf( const char *fmt, ... ); + void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage); + short FixedSigned16( float value, float scale ); + unsigned short FixedUnsigned16( float value, float scale ); + + #ifdef FN_META_QUERY + void FN_META_QUERY(void); + #endif // FN_META_QUERY + +@@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict + + #ifdef FN_AllowLagCompensation_Post + int FN_AllowLagCompensation_Post(void); + #endif // FN_AllowLagCompensation_Post + + + + #ifdef FN_PrecacheModel +-int FN_PrecacheModel(char *s); ++int FN_PrecacheModel(const char *s); + #endif // FN_PrecacheModel + + #ifdef FN_PrecacheSound +-int FN_PrecacheSound(char *s); ++int FN_PrecacheSound(const char *s); + #endif // FN_PrecacheSound + + #ifdef FN_SetModel + void FN_SetModel(edict_t *e, const char *m); + #endif // FN_SetModel + + #ifdef FN_ModelIndex + int FN_ModelIndex(const char *m); +@@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m); + int FN_ModelFrames(int modelIndex); + #endif // FN_ModelFrames + + #ifdef FN_SetSize + void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize + + #ifdef FN_ChangeLevel +-void FN_ChangeLevel(char *s1, char *s2); ++void FN_ChangeLevel(const char *s1, const char *s2); + #endif // FN_ChangeLevel + + #ifdef FN_GetSpawnParms + void FN_GetSpawnParms(edict_t *ent); + #endif // FN_GetSpawnParms + + #ifdef FN_SaveSpawnParms + void FN_SaveSpawnParms(edict_t *ent); +@@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien + int FN_NumberOfEntities(void); + #endif // FN_NumberOfEntities + + #ifdef FN_GetInfoKeyBuffer + char *FN_GetInfoKeyBuffer(edict_t *e); + #endif // FN_GetInfoKeyBuffer + + #ifdef FN_InfoKeyValue +-char *FN_InfoKeyValue(char *infobuffer, char *key); ++char *FN_InfoKeyValue(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue + + #ifdef FN_SetKeyValue +-void FN_SetKeyValue(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue + + #ifdef FN_SetClientKeyValue +-void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue + + #ifdef FN_IsMapValid +-int FN_IsMapValid(char *filename); ++int FN_IsMapValid(const char *filename); + #endif // FN_IsMapValid + + #ifdef FN_StaticDecal + void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal + + #ifdef FN_PrecacheGeneric +-int FN_PrecacheGeneric(char *s); ++int FN_PrecacheGeneric(const char *s); + #endif // FN_PrecacheGeneric + + #ifdef FN_GetPlayerUserId + int FN_GetPlayerUserId(edict_t *e ); + #endif // FN_GetPlayerUserId + + #ifdef FN_BuildSoundMsg + void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t * + #endif // FN_GetPlayerAuthId + + + + + + + #ifdef FN_PrecacheModel_Post +-int FN_PrecacheModel_Post(char *s); ++int FN_PrecacheModel_Post(const char *s); + #endif // FN_PrecacheModel_Post + + #ifdef FN_PrecacheSound_Post +-int FN_PrecacheSound_Post(char *s); ++int FN_PrecacheSound_Post(const char *s); + #endif // FN_PrecacheSound_Post + + #ifdef FN_SetModel_Post + void FN_SetModel_Post(edict_t *e, const char *m); + #endif // FN_SetModel_Post + + #ifdef FN_ModelIndex_Post + int FN_ModelIndex_Post(const char *m); +@@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m); + int FN_ModelFrames_Post(int modelIndex); + #endif // FN_ModelFrames_Post + + #ifdef FN_SetSize_Post + void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize_Post + + #ifdef FN_ChangeLevel_Post +-void FN_ChangeLevel_Post(char *s1, char *s2); ++void FN_ChangeLevel_Post(const char *s1, const char *s2); + #endif // FN_ChangeLevel_Post + + #ifdef FN_GetSpawnParms_Post + void FN_GetSpawnParms_Post(edict_t *ent); + #endif // FN_GetSpawnParms_Post + + #ifdef FN_SaveSpawnParms_Post + void FN_SaveSpawnParms_Post(edict_t *ent); +@@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake + int FN_NumberOfEntities_Post(void); + #endif // FN_NumberOfEntities_Post + + #ifdef FN_GetInfoKeyBuffer_Post + char *FN_GetInfoKeyBuffer_Post(edict_t *e); + #endif // FN_GetInfoKeyBuffer_Post + + #ifdef FN_InfoKeyValue_Post +-char *FN_InfoKeyValue_Post(char *infobuffer, char *key); ++char *FN_InfoKeyValue_Post(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue_Post + + #ifdef FN_SetKeyValue_Post +-void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue_Post + + #ifdef FN_SetClientKeyValue_Post +-void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue_Post + + #ifdef FN_IsMapValid_Post +-int FN_IsMapValid_Post(char *filename); ++int FN_IsMapValid_Post(const char *filename); + #endif // FN_IsMapValid_Post + + #ifdef FN_StaticDecal_Post + void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal_Post + + #ifdef FN_PrecacheGeneric_Post +-int FN_PrecacheGeneric_Post(char *s); ++int FN_PrecacheGeneric_Post(const char *s); + #endif // FN_PrecacheGeneric_Post + + #ifdef FN_GetPlayerUserId_Post + int FN_GetPlayerUserId_Post(edict_t *e ); + #endif // FN_GetPlayerUserId_Post + + #ifdef FN_BuildSoundMsg_Post + void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -2111,17 +2116,17 @@ enum LibType + + typedef void (*AUTHORIZEFUNC)(int player, const char *authstring); + + typedef int (*PFN_ADD_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef int (*PFN_ADD_NEW_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef char * (*PFN_BUILD_PATHNAME) (const char * /*format*/, ...); + typedef char * (*PFN_BUILD_PATHNAME_R) (char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...); + typedef cell * (*PFN_GET_AMXADDR) (AMX * /*amx*/, cell /*offset*/); +-typedef void (*PFN_PRINT_SRVCONSOLE) (char * /*format*/, ...); ++typedef void (*PFN_PRINT_SRVCONSOLE) (const char * /*format*/, ...); + typedef const char * (*PFN_GET_MODNAME) (void); + typedef const char * (*PFN_GET_AMXSCRIPTNAME) (int /*id*/); + typedef AMX * (*PFN_GET_AMXSCRIPT) (int /*id*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYAMX) (const AMX * /*amx*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYNAME) (const char * /*name*/); + typedef int (*PFN_SET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */); + typedef char * (*PFN_GET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/); + typedef int (*PFN_GET_AMXSTRINGLEN) (const cell *ptr); +@@ -2170,18 +2175,18 @@ typedef void * (*PFN_ALLOCATOR) (co + typedef void * (*PFN_REALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ ); + typedef void (*PFN_DEALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const void* /*addr*/ ); + #endif + typedef int (*PFN_AMX_EXEC) (AMX* /*amx*/, cell* /*return val*/, int /*index*/); + typedef int (*PFN_AMX_EXECV) (AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/); + typedef int (*PFN_AMX_ALLOT) (AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/); +-typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); +-typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); + typedef int (*PFN_LOAD_AMXSCRIPT) (AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */); + typedef int (*PFN_UNLOAD_AMXSCRIPT) (AMX* /*amx*/,void** /*code*/); + typedef cell (*PFN_REAL_TO_CELL) (REAL /*x*/); + typedef REAL (*PFN_CELL_TO_REAL) (cell /*x*/); + typedef int (*PFN_REGISTER_SPFORWARD) (AMX * /*amx*/, int /*func*/, ... /*params*/); + typedef int (*PFN_REGISTER_SPFORWARD_BYNAME) (AMX * /*amx*/, const char * /*funcName*/, ... /*params*/); + typedef void (*PFN_UNREGISTER_SPFORWARD) (int /*id*/); + typedef void (*PFN_MERGEDEFINITION_FILE) (const char * /*filename*/); +diff --git a/dlls/mysqlx/sdk/sh_list.h b/dlls/mysqlx/sdk/sh_list.h +--- a/dlls/mysqlx/sdk/sh_list.h ++++ b/dlls/mysqlx/sdk/sh_list.h +@@ -14,17 +14,17 @@ + // MSVC8 fix for offsetof macro redefition warnings + #ifdef _MSC_VER + #if _MSC_VER >= 1400 + #undef offsetof + #endif + #endif + + #include +-#include ++#include + + namespace SourceHook + { + + //This class is from CSDM for AMX Mod X + /* + A circular, doubly-linked list with one sentinel node + +diff --git a/dlls/mysqlx/sdk/sh_string.h b/dlls/mysqlx/sdk/sh_string.h +--- a/dlls/mysqlx/sdk/sh_string.h ++++ b/dlls/mysqlx/sdk/sh_string.h +@@ -191,17 +191,17 @@ public: + + if (len < 1) + { + return; + } + + if (is_space(v[len-1])) + { +- for (i=len-1; i>=0; i--) ++ for (i=len-1; itime; + } + + void MysqlThread::SetQuery(const char *query) + { + m_query.assign(query); + } +diff --git a/dlls/ns/CString.h b/dlls/ns/CString.h +--- a/dlls/ns/CString.h ++++ b/dlls/ns/CString.h +@@ -240,17 +240,17 @@ public: + + if (len < 1) + { + return; + } + + if (is_space(v[len-1])) + { +- for (i=len-1; i>=0; i--) ++ for (i=len-1; i 0) ++ --m_CurrentUsedSize; + + FreeMemIfPossible(); + } + + bool resize(size_t newSize) + { + if (!ChangeSize(newSize)) + return false; +diff --git a/dlls/ns/Makefile b/dlls/ns/Makefile +--- a/dlls/ns/Makefile ++++ b/dlls/ns/Makefile +@@ -1,98 +1,128 @@ +-#(C)2004-2005 AMX Mod X Development Team ++# (C)2004-2013 AMX Mod X Development Team + # Makefile written by David "BAILOPAN" Anderson + +-HLSDK = ../../../hlsdk ++########################################### ++### EDIT THESE PATHS FOR YOUR OWN SETUP ### ++########################################### ++ ++HLSDK = ../../../hlsdk/multiplayer + MM_ROOT = ../../../metamod/metamod + ++##################################### + ### EDIT BELOW FOR OTHER PROJECTS ### ++##################################### + ++PROJECT = ns + +-CRAZY_OPT_FLAGS = -DCRAZY_OPTS -O3 -funroll-loops -ffast-math -s -pipe -fomit-frame-pointer -fno-strict-aliasing -DNDEBUG -fmerge-all-constants -fmodulo-sched -fgcse-sm -fgcse-las -fgcse-after-reload -floop-optimize2 -funsafe-loop-optimizations -ftree-loop-linear -ftree-loop-im -ftree-loop-ivcanon -fivopts -ftree-vectorize -fvariable-expansion-in-unroller -funsafe-math-optimizations -ffinite-math-only -fpeel-loops -funswitch-loops -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wno-unknown-pragmas -Wno-deprecated -fno-exceptions -DHAVE_STDINT_H -static-libgcc -fno-rtti -Wpointer-arith -Wcast-qual -Wcast-align -Wconversion -Wsign-compare -Wmissing-noreturn -Winline -Wlong-long -Wunsafe-loop-optimizations -Wctor-dtor-privacy -Wno-non-virtual-dtor -Wreorder -Woverloaded-virtual -Wsign-promo -Wsynth -shared ++OBJECTS = sdk/amxxmodule.cpp dllapi.cpp utils.cpp amxxapi.cpp engineapi.cpp TitleManager.cpp \ ++ ParticleManager.cpp MessageHandler.cpp GameManager.cpp natives/general.cpp \ ++ natives/player.cpp natives/player_memory.cpp natives/structure.cpp natives/weapons.cpp \ ++ natives/particles.cpp natives/memberfuncs.cpp + +-CRAZY_LINK_FLAGS = +-#-fwhole-program +-#-fwhole-program -combine ++############################################## ++### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ### ++############################################## + +-SANE_OPT_FLAGS = -O3 -funroll-loops -s -pipe -fomit-frame-pointer -fno-strict-aliasing -DNDEBUG ++C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -fomit-frame-pointer -pipe ++C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3 ++C_GCC4_FLAGS = -fvisibility=hidden ++CPP_GCC4_FLAGS = -fvisibility-inlines-hidden ++CPP = gcc ++CPP_OSX = clang + +-OPT_FLAGS = ++LINK = + +-DEBUG_FLAGS = -g -ggdb3 +-CPP = gcc-4.1 +-NAME = ns ++INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \ ++ -I$(HLSDK)/pm_shared -I$(MM_ROOT) -Isdk + +-BIN_SUFFIX = amxx_i386.so ++################################################ ++### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ### ++################################################ + +-OBJECTS = sdk/amxxmodule.cpp dllapi.cpp utils.cpp amxxapi.cpp engineapi.cpp \ +-TitleManager.cpp ParticleManager.cpp MessageHandler.cpp GameManager.cpp \ +-natives/general.cpp natives/player.cpp natives/player_memory.cpp \ +-natives/structure.cpp natives/weapons.cpp natives/particles.cpp \ +-natives/memberfuncs.cpp ++OS := $(shell uname -s) + +-LINK = ++ifeq "$(OS)" "Darwin" ++ CPP = $(CPP_OSX) ++ LIB_EXT = dylib ++ LIB_SUFFIX = _amxx ++ CFLAGS += -DOSX ++ LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5 ++else ++ LIB_EXT = so ++ LIB_SUFFIX = _amxx_i386 ++ CFLAGS += -DLINUX ++ LINK += -shared ++endif + +-INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \ +- -I$(MM_ROOT) -I$(HLSDK)/common -I$(HLSDK)/pm_shared ++LINK += -m32 -lm -ldl + +-GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror ++CPPFLAGS += -fno-exceptions -fno-rtti ++ ++BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT) + + ifeq "$(DEBUG)" "true" + BIN_DIR = Debug +- CFLAGS = $(DEBUG_FLAGS) ++ CFLAGS += $(C_DEBUG_FLAGS) + else +- ifeq "$(CRAZY)" "true" +- BIN_DIR = Optimized +- OPT_FLAGS = $(CRAZY_OPT_FLAGS) +- LINK = $(CRAZY_LINK_FLAGS) +- else +- BIN_DIR = Release +- OPT_FLAGS = $(SANE_OPT_FLAGS) +- endif +- ifeq "$(GCC_VERSION)" "4" +- OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden +- endif +- CFLAGS = $(OPT_FLAGS) ++ BIN_DIR = Release ++ CFLAGS += $(C_OPT_FLAGS) ++ LINK += -s + endif + +-CFLAGS += -Wall -Wno-non-virtual-dtor -Werror -fno-exceptions -DHAVE_STDINT_H -static-libgcc -fno-rtti -m32 ++IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0") + +-BINARY = $(NAME)_$(BIN_SUFFIX) +-CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 +-OPT_FLAGS += -march=i586 ++ifeq "$(IS_CLANG)" "1" ++ CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/") ++ CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/") ++else ++ CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++ CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3) ++endif + +-OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++# Clang || GCC >= 4 ++ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1" ++ CFLAGS += $(C_GCC4_FLAGS) ++ CPPFLAGS += $(CPP_GCC4_FLAGS) ++endif ++ ++# Clang >= 3 || GCC >= 4.7 ++ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1" ++ CFLAGS += -Wno-delete-non-virtual-dtor ++endif ++ ++# OS is Linux and not using clang ++ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1" ++ LINK += -static-libgcc ++endif ++ ++OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++ ++# This will break if we include other Makefiles, but is fine for now. It allows ++# us to make a copy of this file that uses altered paths (ie. Makefile.mine) ++# or other changes without mucking up the original. ++MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) + + $(BIN_DIR)/%.o: %.cpp +- $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< ++ $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< + + all: + mkdir -p $(BIN_DIR) + mkdir -p $(BIN_DIR)/sdk + mkdir -p $(BIN_DIR)/natives +- $(MAKE) ns ++ $(MAKE) -f $(MAKEFILE_NAME) $(PROJECT) + +-ns: $(OBJ_LINUX) +- $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) ++$(PROJECT): $(OBJ_BIN) ++ $(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY) + +-debug: +- $(MAKE) all DEBUG=true ++debug: ++ $(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true + + default: all + +-crazy: +- $(MAKE) all CRAZY=true ++clean: ++ rm -rf $(BIN_DIR)/*.o ++ rm -rf $(BIN_DIR)/sdk/*.o ++ rm -rf $(BIN_DIR)/natives/*.o ++ rm -f $(BIN_DIR)/$(BINARY) + +-clean: +- rm -rf Release/*.o +- rm -rf Release/sdk/*.o +- rm -rf Release/natives/*.o +- rm -rf Release/$(NAME)_$(BIN_SUFFIX) +- rm -rf Debug/*.o +- rm -rf Debug/sdk/*.o +- rm -rf Debug/natives/*.o +- rm -rf Debug/$(NAME)_$(BIN_SUFFIX) +- rm -rf Optimized/*.o +- rm -rf Optimized/sdk/*.o +- rm -rf Optimized/natives/*.o +- rm -rf Optimized/$(NAME)_$(BIN_SUFFIX) +- +diff --git a/dlls/ns/engineapi.cpp b/dlls/ns/engineapi.cpp +--- a/dlls/ns/engineapi.cpp ++++ b/dlls/ns/engineapi.cpp +@@ -44,17 +44,17 @@ + #include "GameManager.h" + #include "ParticleManager.h" + #include "CPlayer.h" + + + // Parse log messages here for any desired information (structure_built, etc.) + // The following logs are needed: + // "sawce<1>" triggered "structure_built" (type "defensechamber")` +-void AlertMessage_Post(ALERT_TYPE atype, char *szFmt, ...) ++void AlertMessage_Post(ALERT_TYPE atype, const char *szFmt, ...) + { + if (atype != at_logged) + { + RETURN_META(MRES_IGNORED); + } + + char *MessageStart; // original pointer to start of the message + char *TypePointer; // pointer to the structure type +diff --git a/dlls/ns/natives/particles.cpp b/dlls/ns/natives/particles.cpp +--- a/dlls/ns/natives/particles.cpp ++++ b/dlls/ns/natives/particles.cpp +@@ -53,17 +53,17 @@ typedef enum partsystype_e + PSYS_TYPE_STRING + }partsystype; + typedef struct partsyskey_s + { + const char *Name; + partsystype type; + }partsyskey; + +-cell PSKeyValueI(char *name, AMX *amx, cell *params) ++cell PSKeyValueI(const char *name, AMX *amx, cell *params) + { + if (params[1]==0) + { + MF_LogError(amx,AMX_ERR_NATIVE,"Invalid particle system handle provided!"); + return 0; + } + KeyValueData kvd; + +@@ -76,17 +76,17 @@ cell PSKeyValueI(char *name, AMX *amx, c + kvd.szValue=&StrData[0]; + kvd.fHandled=0; + //printf("\"%s\" \"%s\"\n",kvd.szKeyName,kvd.szValue); + + MDLL_KeyValue(reinterpret_cast(params[1]),&kvd); + + return 1; + } +-cell PSKeyValueF(char *name, AMX *amx, cell *params) ++cell PSKeyValueF(const char *name, AMX *amx, cell *params) + { + if (params[1]==0) + { + MF_LogError(amx,AMX_ERR_NATIVE,"Invalid particle system handle provided!"); + return 0; + } + KeyValueData kvd; + +@@ -101,17 +101,17 @@ cell PSKeyValueF(char *name, AMX *amx, c + + //printf("\"%s\" \"%s\"\n",kvd.szKeyName,kvd.szValue); + + MDLL_KeyValue(reinterpret_cast(params[1]),&kvd); + + return 1; + + } +-cell PSKeyValueS(char *name, AMX *amx, cell *params) ++cell PSKeyValueS(const char *name, AMX *amx, cell *params) + { + if (params[1]==0) + { + MF_LogError(amx,AMX_ERR_NATIVE,"Invalid particle system handle provided!"); + return 0; + } + KeyValueData kvd; + +diff --git a/dlls/ns/ns.h b/dlls/ns/ns.h +--- a/dlls/ns/ns.h ++++ b/dlls/ns/ns.h +@@ -58,17 +58,17 @@ extern edict_t *player_edicts[33]; // St + + + void PlayerPreThink(edict_t *pEntity); + void PlayerPreThink_Post(edict_t *pEntity); + void PlayerPostThink_Post(edict_t *pEntity); + void UpdateClientData( const struct edict_s *ent, int sendweapons, struct clientdata_s *cd ); + void StartFrame(void); + edict_t* CreateNamedEntity_Post(int className); +-void AlertMessage_Post(ALERT_TYPE atype, char *szFmt, ...); ++void AlertMessage_Post(ALERT_TYPE atype, const char *szFmt, ...); + + + typedef struct tagAMX_HEADER { + int32_t size PACKED; /* size of the "file" */ + uint16_t magic PACKED; /* signature */ + char file_version; /* file format version */ + char amx_version; /* required version of the AMX */ + int16_t flags PACKED; +diff --git a/dlls/ns/sdk/amxxmodule.cpp b/dlls/ns/sdk/amxxmodule.cpp +--- a/dlls/ns/sdk/amxxmodule.cpp ++++ b/dlls/ns/sdk/amxxmodule.cpp +@@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta + GetEntityAPI2, + GetEntityAPI2_Post, + GetNewDLLFunctions, + GetNewDLLFunctions_Post, + GetEngineFunctions, + GetEngineFunctions_Post + }; + +-C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) ++C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) + { + if ((int) CVAR_GET_FLOAT("developer") != 0) + UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", + Plugin_info.logtag, ifvers, Plugin_info.ifvers); + + // Check for valid pMetaUtilFuncs before we continue. + if(!pMetaUtilFuncs) { + UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag); +@@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM + #ifdef FN_META_DETACH + FN_META_DETACH(); + #endif // FN_META_DETACH + return TRUE; + } + + + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + // linux prototype + C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) { + + #else + #ifdef _MSC_VER + // MSVC: Simulate __stdcall calling convention + C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) + { +@@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... ) + return string; + } + + + //========================================================= + // UTIL_LogPrintf - Prints a logged message to console. + // Preceded by LOG: ( timestamp ) < message > + //========================================================= +-void UTIL_LogPrintf( char *fmt, ... ) ++void UTIL_LogPrintf( const char *fmt, ... ) + { + va_list argptr; + static char string[1024]; + + va_start ( argptr, fmt ); + vsnprintf ( string, sizeof(string), fmt, argptr ); + va_end ( argptr ); + +diff --git a/dlls/ns/sdk/amxxmodule.h b/dlls/ns/sdk/amxxmodule.h +--- a/dlls/ns/sdk/amxxmodule.h ++++ b/dlls/ns/sdk/amxxmodule.h +@@ -15,21 +15,26 @@ + #ifdef USE_METAMOD + #include + #include + #include "osdep.h" + #endif // #ifdef USE_METAMOD + + // DLL Export + #undef DLLEXPORT +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + #define DLLEXPORT __declspec(dllexport) + #else + #define DLLEXPORT __attribute__((visibility("default"))) ++#endif ++ ++#if defined(__linux__) && !defined(LINUX) + #define LINUX ++#elif defined(__APPLE__) && !defined(OSX) ++#define OSX + #endif + + #undef C_DLLEXPORT + #define C_DLLEXPORT extern "C" DLLEXPORT + + // ***** AMXX stuff ***** + + // module interface version was 1 +@@ -61,17 +66,17 @@ struct amxx_module_info_s + + // *** Small stuff *** + // The next section is copied from the amx.h file + // Copyright (c) ITB CompuPhase, 1997-2005 + + #if defined HAVE_STDINT_H + #include + #else +- #if defined __LCC__ || defined __DMC__ || defined LINUX ++ #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__ + #if defined HAVE_INTTYPES_H + #include + #else + #include + #endif + #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L + /* The ISO C99 defines the int16_t and int_32t types. If the compiler got + * here, these types are probably undefined. +@@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t + + #if defined __GNUC__ + #define PACKED __attribute__((packed)) + #else + #define PACKED + #endif + + #if !defined AMX_NO_ALIGN +- #if defined LINUX || defined __FreeBSD__ ++ #if defined LINUX || defined __FreeBSD__ || defined __APPLE__ + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #elif defined MACOS && defined __MWERKS__ + #pragma options align=mac68k + #else + #pragma pack(push) + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #if defined __TURBOC__ + #pragma option -a- /* "pack" pragma for older Borland compilers */ +@@ -390,28 +395,28 @@ enum { + AMX_ERR_INIT, /* AMX not initialized (or doubly initialized) */ + AMX_ERR_USERDATA, /* unable to set user data field (table full) */ + AMX_ERR_INIT_JIT, /* cannot initialize the JIT */ + AMX_ERR_PARAMS, /* parameter error */ + AMX_ERR_DOMAIN, /* domain error, expression result does not fit in range */ + }; + + #if !defined AMX_NO_ALIGN +- #if defined __linux__ ++ #if defined(__linux__) || defined(__APPLE__) + #pragma pack() /* reset default packing */ + #else + #pragma pack(pop) /* reset previous packing */ + #endif + #endif + + + // ***** declare functions ***** + + #ifdef USE_METAMOD +-void UTIL_LogPrintf( char *fmt, ... ); ++void UTIL_LogPrintf( const char *fmt, ... ); + void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage); + short FixedSigned16( float value, float scale ); + unsigned short FixedUnsigned16( float value, float scale ); + + #ifdef FN_META_QUERY + void FN_META_QUERY(void); + #endif // FN_META_QUERY + +@@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict + + #ifdef FN_AllowLagCompensation_Post + int FN_AllowLagCompensation_Post(void); + #endif // FN_AllowLagCompensation_Post + + + + #ifdef FN_PrecacheModel +-int FN_PrecacheModel(char *s); ++int FN_PrecacheModel(const char *s); + #endif // FN_PrecacheModel + + #ifdef FN_PrecacheSound +-int FN_PrecacheSound(char *s); ++int FN_PrecacheSound(const char *s); + #endif // FN_PrecacheSound + + #ifdef FN_SetModel + void FN_SetModel(edict_t *e, const char *m); + #endif // FN_SetModel + + #ifdef FN_ModelIndex + int FN_ModelIndex(const char *m); +@@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m); + int FN_ModelFrames(int modelIndex); + #endif // FN_ModelFrames + + #ifdef FN_SetSize + void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize + + #ifdef FN_ChangeLevel +-void FN_ChangeLevel(char *s1, char *s2); ++void FN_ChangeLevel(const char *s1, const char *s2); + #endif // FN_ChangeLevel + + #ifdef FN_GetSpawnParms + void FN_GetSpawnParms(edict_t *ent); + #endif // FN_GetSpawnParms + + #ifdef FN_SaveSpawnParms + void FN_SaveSpawnParms(edict_t *ent); +@@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien + int FN_NumberOfEntities(void); + #endif // FN_NumberOfEntities + + #ifdef FN_GetInfoKeyBuffer + char *FN_GetInfoKeyBuffer(edict_t *e); + #endif // FN_GetInfoKeyBuffer + + #ifdef FN_InfoKeyValue +-char *FN_InfoKeyValue(char *infobuffer, char *key); ++char *FN_InfoKeyValue(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue + + #ifdef FN_SetKeyValue +-void FN_SetKeyValue(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue + + #ifdef FN_SetClientKeyValue +-void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue + + #ifdef FN_IsMapValid +-int FN_IsMapValid(char *filename); ++int FN_IsMapValid(const char *filename); + #endif // FN_IsMapValid + + #ifdef FN_StaticDecal + void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal + + #ifdef FN_PrecacheGeneric +-int FN_PrecacheGeneric(char *s); ++int FN_PrecacheGeneric(const char *s); + #endif // FN_PrecacheGeneric + + #ifdef FN_GetPlayerUserId + int FN_GetPlayerUserId(edict_t *e ); + #endif // FN_GetPlayerUserId + + #ifdef FN_BuildSoundMsg + void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t * + #endif // FN_GetPlayerAuthId + + + + + + + #ifdef FN_PrecacheModel_Post +-int FN_PrecacheModel_Post(char *s); ++int FN_PrecacheModel_Post(const char *s); + #endif // FN_PrecacheModel_Post + + #ifdef FN_PrecacheSound_Post +-int FN_PrecacheSound_Post(char *s); ++int FN_PrecacheSound_Post(const char *s); + #endif // FN_PrecacheSound_Post + + #ifdef FN_SetModel_Post + void FN_SetModel_Post(edict_t *e, const char *m); + #endif // FN_SetModel_Post + + #ifdef FN_ModelIndex_Post + int FN_ModelIndex_Post(const char *m); +@@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m); + int FN_ModelFrames_Post(int modelIndex); + #endif // FN_ModelFrames_Post + + #ifdef FN_SetSize_Post + void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize_Post + + #ifdef FN_ChangeLevel_Post +-void FN_ChangeLevel_Post(char *s1, char *s2); ++void FN_ChangeLevel_Post(const char *s1, const char *s2); + #endif // FN_ChangeLevel_Post + + #ifdef FN_GetSpawnParms_Post + void FN_GetSpawnParms_Post(edict_t *ent); + #endif // FN_GetSpawnParms_Post + + #ifdef FN_SaveSpawnParms_Post + void FN_SaveSpawnParms_Post(edict_t *ent); +@@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake + int FN_NumberOfEntities_Post(void); + #endif // FN_NumberOfEntities_Post + + #ifdef FN_GetInfoKeyBuffer_Post + char *FN_GetInfoKeyBuffer_Post(edict_t *e); + #endif // FN_GetInfoKeyBuffer_Post + + #ifdef FN_InfoKeyValue_Post +-char *FN_InfoKeyValue_Post(char *infobuffer, char *key); ++char *FN_InfoKeyValue_Post(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue_Post + + #ifdef FN_SetKeyValue_Post +-void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue_Post + + #ifdef FN_SetClientKeyValue_Post +-void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue_Post + + #ifdef FN_IsMapValid_Post +-int FN_IsMapValid_Post(char *filename); ++int FN_IsMapValid_Post(const char *filename); + #endif // FN_IsMapValid_Post + + #ifdef FN_StaticDecal_Post + void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal_Post + + #ifdef FN_PrecacheGeneric_Post +-int FN_PrecacheGeneric_Post(char *s); ++int FN_PrecacheGeneric_Post(const char *s); + #endif // FN_PrecacheGeneric_Post + + #ifdef FN_GetPlayerUserId_Post + int FN_GetPlayerUserId_Post(edict_t *e ); + #endif // FN_GetPlayerUserId_Post + + #ifdef FN_BuildSoundMsg_Post + void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -2111,17 +2116,17 @@ enum LibType + + typedef void (*AUTHORIZEFUNC)(int player, const char *authstring); + + typedef int (*PFN_ADD_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef int (*PFN_ADD_NEW_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef char * (*PFN_BUILD_PATHNAME) (const char * /*format*/, ...); + typedef char * (*PFN_BUILD_PATHNAME_R) (char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...); + typedef cell * (*PFN_GET_AMXADDR) (AMX * /*amx*/, cell /*offset*/); +-typedef void (*PFN_PRINT_SRVCONSOLE) (char * /*format*/, ...); ++typedef void (*PFN_PRINT_SRVCONSOLE) (const char * /*format*/, ...); + typedef const char * (*PFN_GET_MODNAME) (void); + typedef const char * (*PFN_GET_AMXSCRIPTNAME) (int /*id*/); + typedef AMX * (*PFN_GET_AMXSCRIPT) (int /*id*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYAMX) (const AMX * /*amx*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYNAME) (const char * /*name*/); + typedef int (*PFN_SET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */); + typedef char * (*PFN_GET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/); + typedef int (*PFN_GET_AMXSTRINGLEN) (const cell *ptr); +@@ -2170,18 +2175,18 @@ typedef void * (*PFN_ALLOCATOR) (co + typedef void * (*PFN_REALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ ); + typedef void (*PFN_DEALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const void* /*addr*/ ); + #endif + typedef int (*PFN_AMX_EXEC) (AMX* /*amx*/, cell* /*return val*/, int /*index*/); + typedef int (*PFN_AMX_EXECV) (AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/); + typedef int (*PFN_AMX_ALLOT) (AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/); +-typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); +-typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); + typedef int (*PFN_LOAD_AMXSCRIPT) (AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */); + typedef int (*PFN_UNLOAD_AMXSCRIPT) (AMX* /*amx*/,void** /*code*/); + typedef cell (*PFN_REAL_TO_CELL) (REAL /*x*/); + typedef REAL (*PFN_CELL_TO_REAL) (cell /*x*/); + typedef int (*PFN_REGISTER_SPFORWARD) (AMX * /*amx*/, int /*func*/, ... /*params*/); + typedef int (*PFN_REGISTER_SPFORWARD_BYNAME) (AMX * /*amx*/, const char * /*funcName*/, ... /*params*/); + typedef void (*PFN_UNREGISTER_SPFORWARD) (int /*id*/); + typedef void (*PFN_MERGEDEFINITION_FILE) (const char * /*filename*/); +diff --git a/dlls/ns/sh_list.h b/dlls/ns/sh_list.h +--- a/dlls/ns/sh_list.h ++++ b/dlls/ns/sh_list.h +@@ -14,17 +14,17 @@ + // MSVC8 fix for offsetof macro redefition warnings + #ifdef _MSC_VER + #if _MSC_VER >= 1400 + #undef offsetof + #endif + #endif + + #include +-#include ++#include + + //namespace SourceHook + //{ + //This class is from CSDM for AMX Mod X + /* + A circular, doubly-linked list with one sentinel node + + Empty: +diff --git a/dlls/ns/utilfunctions.h b/dlls/ns/utilfunctions.h +--- a/dlls/ns/utilfunctions.h ++++ b/dlls/ns/utilfunctions.h +@@ -119,17 +119,17 @@ int UTIL_FindBuildingHive(void); + BOOL UTIL_CheckForPublic(const char *publicname); + BOOL UTIL_CheckForNative(const char *NativeName); + + class CPlayer; + + CPlayer *UTIL_PlayerByCID(int CID); + + // Converts something such as RESOURCES into OFFSET_WIN_RESOURCES or OFFSET_LIN_RESOURCES +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + #define MAKE_OFFSET(Offset) OFFSET_LIN_##Offset + #define MAKE_MEMBER_OFFSET(Offs) (Offs - OFFSET_LIN_MEMBERFUNCSTART) + #else + #define MAKE_OFFSET(Offset) OFFSET_WIN_##Offset + #define MAKE_MEMBER_OFFSET(Offs) (Offs - OFFSET_WIN_MEMBERFUNCSTART) + #endif // __linux__ + + template +diff --git a/dlls/nvault/Journal.cpp b/dlls/nvault/Journal.cpp +--- a/dlls/nvault/Journal.cpp ++++ b/dlls/nvault/Journal.cpp +@@ -1,11 +1,11 @@ + #include + #include +-#if defined __linux__ ++#if defined(__linux__) || defined(__APPLE__) + #include + #endif + #include "Journal.h" + + Journal::Journal(const char *file) + { + m_File.assign(file); + } +diff --git a/dlls/nvault/Makefile b/dlls/nvault/Makefile +--- a/dlls/nvault/Makefile ++++ b/dlls/nvault/Makefile +@@ -1,79 +1,123 @@ +-#(C)2004-2005 AMX Mod X Development Team ++# (C)2004-2013 AMX Mod X Development Team + # Makefile written by David "BAILOPAN" Anderson + +-HLSDK = ../../../hlsdk ++########################################### ++### EDIT THESE PATHS FOR YOUR OWN SETUP ### ++########################################### ++ ++HLSDK = ../../../hlsdk/multiplayer + MM_ROOT = ../../../metamod/metamod + ++##################################### + ### EDIT BELOW FOR OTHER PROJECTS ### ++##################################### + +-OPT_FLAGS = -O3 -funroll-loops -s -pipe -fno-strict-aliasing -fomit-frame-pointer +-DEBUG_FLAGS = -g -ggdb3 +-CPP = gcc-4.1 +-NAME = nvault +- +-BIN_SUFFIX_32 = amxx_i386.so +-BIN_SUFFIX_64 = amxx_amd64.so ++PROJECT = nvault + + OBJECTS = sdk/amxxmodule.cpp amxxapi.cpp Binary.cpp Journal.cpp NVault.cpp + +-#LINK = /lib/libgcc_eh.a /lib/libstdc++-3.4.a +-LINK = ++############################################## ++### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ### ++############################################## + +-INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \ +- -I$(MM_ROOT) -I$(HLSDK)/common -Isdk ++C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -fomit-frame-pointer -pipe ++C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3 ++C_GCC4_FLAGS = -fvisibility=hidden ++CPP_GCC4_FLAGS = -fvisibility-inlines-hidden ++CPP = gcc ++CPP_OSX = clang + +-GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++LINK = + +-ifeq "$(GCC_VERSION)" "4" +- OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden ++INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \ ++ -I$(MM_ROOT) -Isdk ++ ++################################################ ++### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ### ++################################################ ++ ++OS := $(shell uname -s) ++ ++ifeq "$(OS)" "Darwin" ++ CPP = $(CPP_OSX) ++ LIB_EXT = dylib ++ LIB_SUFFIX = _amxx ++ CFLAGS += -DOSX ++ LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5 ++else ++ LIB_EXT = so ++ LIB_SUFFIX = _amxx_i386 ++ CFLAGS += -DLINUX ++ LINK += -shared + endif + ++LINK += -m32 -lm -ldl ++ ++CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror ++CPPFLAGS += -fno-exceptions -fno-rtti ++ ++BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT) ++ + ifeq "$(DEBUG)" "true" + BIN_DIR = Debug +- CFLAGS = $(DEBUG_FLAGS) ++ CFLAGS += $(C_DEBUG_FLAGS) + else + BIN_DIR = Release +- CFLAGS = $(OPT_FLAGS) ++ CFLAGS += $(C_OPT_FLAGS) ++ LINK += -s + endif + +-CFLAGS += -DNDEBUG -Wall -Werror -DHAVE_STDINT_H -fno-rtti -static-libgcc -fno-exceptions -m32 ++IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0") + +-ifeq "$(AMD64)" "true" +- BINARY = $(NAME)_$(BIN_SUFFIX_64) +- CFLAGS += -DPAWN_CELL_SIZE=64 -DHAVE_I64 -m64 ++ifeq "$(IS_CLANG)" "1" ++ CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/") ++ CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/") + else +- BINARY = $(NAME)_$(BIN_SUFFIX_32) +- CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 +- OPT_FLAGS += -march=i586 ++ CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++ CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3) + endif + +-OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++# Clang || GCC >= 4 ++ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1" ++ CFLAGS += $(C_GCC4_FLAGS) ++ CPPFLAGS += $(CPP_GCC4_FLAGS) ++endif ++ ++# Clang >= 3 || GCC >= 4.7 ++ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1" ++ CFLAGS += -Wno-delete-non-virtual-dtor ++endif ++ ++# OS is Linux and not using clang ++ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1" ++ LINK += -static-libgcc ++endif ++ ++OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++ ++# This will break if we include other Makefiles, but is fine for now. It allows ++# us to make a copy of this file that uses altered paths (ie. Makefile.mine) ++# or other changes without mucking up the original. ++MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) + + $(BIN_DIR)/%.o: %.cpp +- $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< ++ $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< + + all: + mkdir -p $(BIN_DIR) + mkdir -p $(BIN_DIR)/sdk +- $(MAKE) nvault ++ $(MAKE) -f $(MAKEFILE_NAME) $(PROJECT) + +-amd64: +- $(MAKE) all AMD64=true ++$(PROJECT): $(OBJ_BIN) ++ $(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY) + +-nvault: $(OBJ_LINUX) +- $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) +- +-debug: +- $(MAKE) all DEBUG=true ++debug: ++ $(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true + + default: all + + clean: +- rm -rf Release/sdk/*.o +- rm -rf Release/*.o +- rm -rf Release/$(NAME)_$(BIN_SUFFIX_32) +- rm -rf Release/$(NAME)_$(BIN_SUFFIX_64) +- rm -rf Debug/sdk/*.o +- rm -rf Debug/*.o +- rm -rf Debug/$(NAME)_$(BIN_SUFFIX_32) +- rm -rf Debug/$(NAME)_$(BIN_SUFFIX_64) ++ rm -rf $(BIN_DIR)/*.o ++ rm -rf $(BIN_DIR)/sdk/*.o ++ rm -f $(BIN_DIR)/$(BINARY) ++ +diff --git a/dlls/nvault/NVault.cpp b/dlls/nvault/NVault.cpp +--- a/dlls/nvault/NVault.cpp ++++ b/dlls/nvault/NVault.cpp +@@ -1,15 +1,15 @@ + #include + #include "amxxmodule.h" + #include "NVault.h" + #include "Binary.h" + #include "CString.h" + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + #define _snprintf snprintf + #endif + + /** + * :TODO: This beast calls strcpy()/new() way too much by creating new strings on the stack. + * That's easily remedied and it should be fixed? + * ---bail + */ +diff --git a/dlls/nvault/amxxapi.cpp b/dlls/nvault/amxxapi.cpp +--- a/dlls/nvault/amxxapi.cpp ++++ b/dlls/nvault/amxxapi.cpp +@@ -4,17 +4,17 @@ + #include "CQueue.h" + + #ifdef WIN32 + #define MKDIR(p) mkdir(p) + #else + #define MKDIR(p) mkdir(p, 0755) + #endif + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + #include + #include + #include + #else + #include + #endif + + CVector g_Vaults; +diff --git a/dlls/nvault/sdk/CString.h b/dlls/nvault/sdk/CString.h +--- a/dlls/nvault/sdk/CString.h ++++ b/dlls/nvault/sdk/CString.h +@@ -215,17 +215,17 @@ public: + + if (len < 1) + { + return; + } + + if (is_space(v[len-1])) + { +- for (i=len-1; i>=0; i--) ++ for (i=len-1; i + //========================================================= +-void UTIL_LogPrintf( char *fmt, ... ) ++void UTIL_LogPrintf( const char *fmt, ... ) + { + va_list argptr; + static char string[1024]; + + va_start ( argptr, fmt ); + vsnprintf ( string, sizeof(string), fmt, argptr ); + va_end ( argptr ); + +diff --git a/dlls/nvault/sdk/amxxmodule.h b/dlls/nvault/sdk/amxxmodule.h +--- a/dlls/nvault/sdk/amxxmodule.h ++++ b/dlls/nvault/sdk/amxxmodule.h +@@ -15,21 +15,26 @@ + #ifdef USE_METAMOD + #include + #include + #include "osdep.h" + #endif // #ifdef USE_METAMOD + + // DLL Export + #undef DLLEXPORT +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + #define DLLEXPORT __declspec(dllexport) + #else + #define DLLEXPORT __attribute__((visibility("default"))) ++#endif ++ ++#if defined(__linux__) && !defined(LINUX) + #define LINUX ++#elif defined(__APPLE__) && !defined(OSX) ++#define OSX + #endif + + #undef C_DLLEXPORT + #define C_DLLEXPORT extern "C" DLLEXPORT + + // ***** AMXX stuff ***** + + // module interface version was 1 +@@ -61,17 +66,17 @@ struct amxx_module_info_s + + // *** Small stuff *** + // The next section is copied from the amx.h file + // Copyright (c) ITB CompuPhase, 1997-2005 + + #if defined HAVE_STDINT_H + #include + #else +- #if defined __LCC__ || defined __DMC__ || defined LINUX ++ #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__ + #if defined HAVE_INTTYPES_H + #include + #else + #include + #endif + #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L + /* The ISO C99 defines the int16_t and int_32t types. If the compiler got + * here, these types are probably undefined. +@@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t + + #if defined __GNUC__ + #define PACKED __attribute__((packed)) + #else + #define PACKED + #endif + + #if !defined AMX_NO_ALIGN +- #if defined LINUX || defined __FreeBSD__ ++ #if defined LINUX || defined __FreeBSD__ || defined __APPLE__ + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #elif defined MACOS && defined __MWERKS__ + #pragma options align=mac68k + #else + #pragma pack(push) + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #if defined __TURBOC__ + #pragma option -a- /* "pack" pragma for older Borland compilers */ +@@ -390,28 +395,28 @@ enum { + AMX_ERR_INIT, /* AMX not initialized (or doubly initialized) */ + AMX_ERR_USERDATA, /* unable to set user data field (table full) */ + AMX_ERR_INIT_JIT, /* cannot initialize the JIT */ + AMX_ERR_PARAMS, /* parameter error */ + AMX_ERR_DOMAIN, /* domain error, expression result does not fit in range */ + }; + + #if !defined AMX_NO_ALIGN +- #if defined __linux__ ++ #if defined(__linux__) || defined(__APPLE__) + #pragma pack() /* reset default packing */ + #else + #pragma pack(pop) /* reset previous packing */ + #endif + #endif + + + // ***** declare functions ***** + + #ifdef USE_METAMOD +-void UTIL_LogPrintf( char *fmt, ... ); ++void UTIL_LogPrintf( const char *fmt, ... ); + void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage); + short FixedSigned16( float value, float scale ); + unsigned short FixedUnsigned16( float value, float scale ); + + #ifdef FN_META_QUERY + void FN_META_QUERY(void); + #endif // FN_META_QUERY + +@@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict + + #ifdef FN_AllowLagCompensation_Post + int FN_AllowLagCompensation_Post(void); + #endif // FN_AllowLagCompensation_Post + + + + #ifdef FN_PrecacheModel +-int FN_PrecacheModel(char *s); ++int FN_PrecacheModel(const char *s); + #endif // FN_PrecacheModel + + #ifdef FN_PrecacheSound +-int FN_PrecacheSound(char *s); ++int FN_PrecacheSound(const char *s); + #endif // FN_PrecacheSound + + #ifdef FN_SetModel + void FN_SetModel(edict_t *e, const char *m); + #endif // FN_SetModel + + #ifdef FN_ModelIndex + int FN_ModelIndex(const char *m); +@@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m); + int FN_ModelFrames(int modelIndex); + #endif // FN_ModelFrames + + #ifdef FN_SetSize + void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize + + #ifdef FN_ChangeLevel +-void FN_ChangeLevel(char *s1, char *s2); ++void FN_ChangeLevel(const char *s1, const char *s2); + #endif // FN_ChangeLevel + + #ifdef FN_GetSpawnParms + void FN_GetSpawnParms(edict_t *ent); + #endif // FN_GetSpawnParms + + #ifdef FN_SaveSpawnParms + void FN_SaveSpawnParms(edict_t *ent); +@@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien + int FN_NumberOfEntities(void); + #endif // FN_NumberOfEntities + + #ifdef FN_GetInfoKeyBuffer + char *FN_GetInfoKeyBuffer(edict_t *e); + #endif // FN_GetInfoKeyBuffer + + #ifdef FN_InfoKeyValue +-char *FN_InfoKeyValue(char *infobuffer, char *key); ++char *FN_InfoKeyValue(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue + + #ifdef FN_SetKeyValue +-void FN_SetKeyValue(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue + + #ifdef FN_SetClientKeyValue +-void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue + + #ifdef FN_IsMapValid +-int FN_IsMapValid(char *filename); ++int FN_IsMapValid(const char *filename); + #endif // FN_IsMapValid + + #ifdef FN_StaticDecal + void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal + + #ifdef FN_PrecacheGeneric +-int FN_PrecacheGeneric(char *s); ++int FN_PrecacheGeneric(const char *s); + #endif // FN_PrecacheGeneric + + #ifdef FN_GetPlayerUserId + int FN_GetPlayerUserId(edict_t *e ); + #endif // FN_GetPlayerUserId + + #ifdef FN_BuildSoundMsg + void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t * + #endif // FN_GetPlayerAuthId + + + + + + + #ifdef FN_PrecacheModel_Post +-int FN_PrecacheModel_Post(char *s); ++int FN_PrecacheModel_Post(const char *s); + #endif // FN_PrecacheModel_Post + + #ifdef FN_PrecacheSound_Post +-int FN_PrecacheSound_Post(char *s); ++int FN_PrecacheSound_Post(const char *s); + #endif // FN_PrecacheSound_Post + + #ifdef FN_SetModel_Post + void FN_SetModel_Post(edict_t *e, const char *m); + #endif // FN_SetModel_Post + + #ifdef FN_ModelIndex_Post + int FN_ModelIndex_Post(const char *m); +@@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m); + int FN_ModelFrames_Post(int modelIndex); + #endif // FN_ModelFrames_Post + + #ifdef FN_SetSize_Post + void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize_Post + + #ifdef FN_ChangeLevel_Post +-void FN_ChangeLevel_Post(char *s1, char *s2); ++void FN_ChangeLevel_Post(const char *s1, const char *s2); + #endif // FN_ChangeLevel_Post + + #ifdef FN_GetSpawnParms_Post + void FN_GetSpawnParms_Post(edict_t *ent); + #endif // FN_GetSpawnParms_Post + + #ifdef FN_SaveSpawnParms_Post + void FN_SaveSpawnParms_Post(edict_t *ent); +@@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake + int FN_NumberOfEntities_Post(void); + #endif // FN_NumberOfEntities_Post + + #ifdef FN_GetInfoKeyBuffer_Post + char *FN_GetInfoKeyBuffer_Post(edict_t *e); + #endif // FN_GetInfoKeyBuffer_Post + + #ifdef FN_InfoKeyValue_Post +-char *FN_InfoKeyValue_Post(char *infobuffer, char *key); ++char *FN_InfoKeyValue_Post(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue_Post + + #ifdef FN_SetKeyValue_Post +-void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue_Post + + #ifdef FN_SetClientKeyValue_Post +-void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue_Post + + #ifdef FN_IsMapValid_Post +-int FN_IsMapValid_Post(char *filename); ++int FN_IsMapValid_Post(const char *filename); + #endif // FN_IsMapValid_Post + + #ifdef FN_StaticDecal_Post + void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal_Post + + #ifdef FN_PrecacheGeneric_Post +-int FN_PrecacheGeneric_Post(char *s); ++int FN_PrecacheGeneric_Post(const char *s); + #endif // FN_PrecacheGeneric_Post + + #ifdef FN_GetPlayerUserId_Post + int FN_GetPlayerUserId_Post(edict_t *e ); + #endif // FN_GetPlayerUserId_Post + + #ifdef FN_BuildSoundMsg_Post + void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -2111,17 +2116,17 @@ enum LibType + + typedef void (*AUTHORIZEFUNC)(int player, const char *authstring); + + typedef int (*PFN_ADD_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef int (*PFN_ADD_NEW_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef char * (*PFN_BUILD_PATHNAME) (const char * /*format*/, ...); + typedef char * (*PFN_BUILD_PATHNAME_R) (char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...); + typedef cell * (*PFN_GET_AMXADDR) (AMX * /*amx*/, cell /*offset*/); +-typedef void (*PFN_PRINT_SRVCONSOLE) (char * /*format*/, ...); ++typedef void (*PFN_PRINT_SRVCONSOLE) (const char * /*format*/, ...); + typedef const char * (*PFN_GET_MODNAME) (void); + typedef const char * (*PFN_GET_AMXSCRIPTNAME) (int /*id*/); + typedef AMX * (*PFN_GET_AMXSCRIPT) (int /*id*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYAMX) (const AMX * /*amx*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYNAME) (const char * /*name*/); + typedef int (*PFN_SET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */); + typedef char * (*PFN_GET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/); + typedef int (*PFN_GET_AMXSTRINGLEN) (const cell *ptr); +@@ -2170,18 +2175,18 @@ typedef void * (*PFN_ALLOCATOR) (co + typedef void * (*PFN_REALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ ); + typedef void (*PFN_DEALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const void* /*addr*/ ); + #endif + typedef int (*PFN_AMX_EXEC) (AMX* /*amx*/, cell* /*return val*/, int /*index*/); + typedef int (*PFN_AMX_EXECV) (AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/); + typedef int (*PFN_AMX_ALLOT) (AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/); +-typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); +-typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); + typedef int (*PFN_LOAD_AMXSCRIPT) (AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */); + typedef int (*PFN_UNLOAD_AMXSCRIPT) (AMX* /*amx*/,void** /*code*/); + typedef cell (*PFN_REAL_TO_CELL) (REAL /*x*/); + typedef REAL (*PFN_CELL_TO_REAL) (cell /*x*/); + typedef int (*PFN_REGISTER_SPFORWARD) (AMX * /*amx*/, int /*func*/, ... /*params*/); + typedef int (*PFN_REGISTER_SPFORWARD_BYNAME) (AMX * /*amx*/, const char * /*funcName*/, ... /*params*/); + typedef void (*PFN_UNREGISTER_SPFORWARD) (int /*id*/); + typedef void (*PFN_MERGEDEFINITION_FILE) (const char * /*filename*/); +diff --git a/dlls/nvault/sdk/sh_list.h b/dlls/nvault/sdk/sh_list.h +--- a/dlls/nvault/sdk/sh_list.h ++++ b/dlls/nvault/sdk/sh_list.h +@@ -14,17 +14,17 @@ + // MSVC8 fix for offsetof macro redefition warnings + #ifdef _MSC_VER + #if _MSC_VER >= 1400 + #undef offsetof + #endif + #endif + + #include +-#include ++#include + + //namespace SourceHook + //{ + //This class is from CSDM for AMX Mod X + /* + A circular, doubly-linked list with one sentinel node + + Empty: +diff --git a/dlls/nvault/sdk/sh_tinyhash.h b/dlls/nvault/sdk/sh_tinyhash.h +--- a/dlls/nvault/sdk/sh_tinyhash.h ++++ b/dlls/nvault/sdk/sh_tinyhash.h +@@ -427,17 +427,17 @@ public: + { + iterator old(*this); + _Inc(); + return old; + } + void erase() + { + if (end || !hash || curbucket < 0 || curbucket >= static_cast(hash->m_numBuckets)) +- return true; ++ return; + + iterator tmp = *this; + ++tmp; + delete (*iter); + hash->m_Items--; + hash->m_Buckets[curbucket]->erase(iter); + *this = tmp; + } +diff --git a/dlls/regex/Makefile b/dlls/regex/Makefile +--- a/dlls/regex/Makefile ++++ b/dlls/regex/Makefile +@@ -1,80 +1,124 @@ +-#(C)2004-2005 AMX Mod X Development Team ++# (C)2004-2013 AMX Mod X Development Team + # Makefile written by David "BAILOPAN" Anderson + +-HLSDK = ../../../hlsdk ++########################################### ++### EDIT THESE PATHS FOR YOUR OWN SETUP ### ++########################################### ++ ++HLSDK = ../../../hlsdk/multiplayer + MM_ROOT = ../../../metamod/metamod + ++##################################### + ### EDIT BELOW FOR OTHER PROJECTS ### ++##################################### + +-OPT_FLAGS = -O3 -funroll-loops -s -pipe -fomit-frame-pointer -fno-strict-aliasing +-DEBUG_FLAGS = -g -ggdb3 +-CPP = gcc-4.1 +-NAME = regex +- +-BIN_SUFFIX_32 = amxx_i386.so +-BIN_SUFFIX_64 = amxx_amd64.so ++PROJECT = regex + + OBJECTS = sdk/amxxmodule.cpp module.cpp CRegEx.cpp + ++############################################## ++### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ### ++############################################## ++ ++C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -fomit-frame-pointer -pipe ++C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3 ++C_GCC4_FLAGS = -fvisibility=hidden ++CPP_GCC4_FLAGS = -fvisibility-inlines-hidden ++CPP = gcc ++CPP_OSX = clang ++ + LINK = -lpcre + +-INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \ +- -I$(MM_ROOT) -I$(HLSDK)/common -Isdk ++INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \ ++ -I$(MM_ROOT) -Isdk + +-GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++################################################ ++### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ### ++################################################ + +-ifeq "$(GCC_VERSION)" "4" +- OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden ++OS := $(shell uname -s) ++ ++ifeq "$(OS)" "Darwin" ++ CPP = $(CPP_OSX) ++ LIB_EXT = dylib ++ LIB_SUFFIX = _amxx ++ CFLAGS += -DOSX ++ LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5 -Llib_darwin ++else ++ LIB_EXT = so ++ LIB_SUFFIX = _amxx_i386 ++ CFLAGS += -DLINUX ++ LINK += -shared -Llib_linux + endif + ++LINK += -m32 -lm -ldl ++ ++CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror ++CPPFLAGS += -fno-exceptions -fno-rtti ++ ++BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT) ++ + ifeq "$(DEBUG)" "true" + BIN_DIR = Debug +- CFLAGS = $(DEBUG_FLAGS) ++ CFLAGS += $(C_DEBUG_FLAGS) + else + BIN_DIR = Release +- CFLAGS = $(OPT_FLAGS) ++ CFLAGS += $(C_OPT_FLAGS) ++ LINK += -s + endif + +-CFLAGS += -DNDEBUG -Wall -Werror -fno-exceptions -DHAVE_STDINT_H -static-libgcc -fno-rtti -m32 ++IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0") + +-ifeq "$(AMD64)" "true" +- BINARY = $(NAME)_$(BIN_SUFFIX_64) +- CFLAGS += -DPAWN_CELL_SIZE=64 -DHAVE_I64 -m64 +- INCLUDE += -Llib_linux64 ++ifeq "$(IS_CLANG)" "1" ++ CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/") ++ CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/") + else +- BINARY = $(NAME)_$(BIN_SUFFIX_32) +- CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 +- OPT_FLAGS += -march=i586 +- INCLUDE += -Llib_linux ++ CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++ CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3) + endif + +-OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++# Clang || GCC >= 4 ++ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1" ++ CFLAGS += $(C_GCC4_FLAGS) ++ CPPFLAGS += $(CPP_GCC4_FLAGS) ++endif ++ ++# Clang >= 3 || GCC >= 4.7 ++ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1" ++ CFLAGS += -Wno-delete-non-virtual-dtor ++endif ++ ++# OS is Linux and not using clang ++ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1" ++ LINK += -static-libgcc ++endif ++ ++OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++ ++# This will break if we include other Makefiles, but is fine for now. It allows ++# us to make a copy of this file that uses altered paths (ie. Makefile.mine) ++# or other changes without mucking up the original. ++MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) + + $(BIN_DIR)/%.o: %.cpp +- $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< ++ $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< ++ + + all: + mkdir -p $(BIN_DIR) + mkdir -p $(BIN_DIR)/sdk +- $(MAKE) regex ++ $(MAKE) -f $(MAKEFILE_NAME) $(PROJECT) + +-amd64: +- $(MAKE) all AMD64=true ++$(PROJECT): $(OBJ_BIN) ++ $(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY) + +-regex: $(OBJ_LINUX) +- $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) +- +-debug: +- $(MAKE) all DEBUG=true ++debug: ++ $(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true + + default: all + + clean: +- rm -rf Release/sdk/*.o +- rm -rf Release/*.o +- rm -rf Release/$(NAME)_$(BIN_SUFFIX_32) +- rm -rf Release/$(NAME)_$(BIN_SUFFIX_64) +- rm -rf Debug/sdk/*.o +- rm -rf Debug/*.o +- rm -rf Debug/$(NAME)_$(BIN_SUFFIX_32) +- rm -rf Debug/$(NAME)_$(BIN_SUFFIX_64) ++ rm -rf $(BIN_DIR)/*.o ++ rm -rf $(BIN_DIR)/sdk/*.o ++ rm -f $(BIN_DIR)/$(BINARY) ++ +diff --git a/dlls/regex/sdk/amxxmodule.cpp b/dlls/regex/sdk/amxxmodule.cpp +--- a/dlls/regex/sdk/amxxmodule.cpp ++++ b/dlls/regex/sdk/amxxmodule.cpp +@@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta + GetEntityAPI2, + GetEntityAPI2_Post, + GetNewDLLFunctions, + GetNewDLLFunctions_Post, + GetEngineFunctions, + GetEngineFunctions_Post + }; + +-C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) ++C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) + { + if ((int) CVAR_GET_FLOAT("developer") != 0) + UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", + Plugin_info.logtag, ifvers, Plugin_info.ifvers); + + // Check for valid pMetaUtilFuncs before we continue. + if(!pMetaUtilFuncs) { + UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag); +@@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM + #ifdef FN_META_DETACH + FN_META_DETACH(); + #endif // FN_META_DETACH + return TRUE; + } + + + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + // linux prototype + C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) { + + #else + #ifdef _MSC_VER + // MSVC: Simulate __stdcall calling convention + C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) + { +@@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... ) + return string; + } + + + //========================================================= + // UTIL_LogPrintf - Prints a logged message to console. + // Preceded by LOG: ( timestamp ) < message > + //========================================================= +-void UTIL_LogPrintf( char *fmt, ... ) ++void UTIL_LogPrintf( const char *fmt, ... ) + { + va_list argptr; + static char string[1024]; + + va_start ( argptr, fmt ); + vsnprintf ( string, sizeof(string), fmt, argptr ); + va_end ( argptr ); + +diff --git a/dlls/regex/sdk/amxxmodule.h b/dlls/regex/sdk/amxxmodule.h +--- a/dlls/regex/sdk/amxxmodule.h ++++ b/dlls/regex/sdk/amxxmodule.h +@@ -15,21 +15,26 @@ + #ifdef USE_METAMOD + #include + #include + #include "osdep.h" + #endif // #ifdef USE_METAMOD + + // DLL Export + #undef DLLEXPORT +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + #define DLLEXPORT __declspec(dllexport) + #else + #define DLLEXPORT __attribute__((visibility("default"))) ++#endif ++ ++#if defined(__linux__) && !defined(LINUX) + #define LINUX ++#elif defined(__APPLE__) && !defined(OSX) ++#define OSX + #endif + + #undef C_DLLEXPORT + #define C_DLLEXPORT extern "C" DLLEXPORT + + // ***** AMXX stuff ***** + + // module interface version was 1 +@@ -61,17 +66,17 @@ struct amxx_module_info_s + + // *** Small stuff *** + // The next section is copied from the amx.h file + // Copyright (c) ITB CompuPhase, 1997-2005 + + #if defined HAVE_STDINT_H + #include + #else +- #if defined __LCC__ || defined __DMC__ || defined LINUX ++ #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__ + #if defined HAVE_INTTYPES_H + #include + #else + #include + #endif + #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L + /* The ISO C99 defines the int16_t and int_32t types. If the compiler got + * here, these types are probably undefined. +@@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t + + #if defined __GNUC__ + #define PACKED __attribute__((packed)) + #else + #define PACKED + #endif + + #if !defined AMX_NO_ALIGN +- #if defined LINUX || defined __FreeBSD__ ++ #if defined LINUX || defined __FreeBSD__ || defined __APPLE__ + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #elif defined MACOS && defined __MWERKS__ + #pragma options align=mac68k + #else + #pragma pack(push) + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #if defined __TURBOC__ + #pragma option -a- /* "pack" pragma for older Borland compilers */ +@@ -390,28 +395,28 @@ enum { + AMX_ERR_INIT, /* AMX not initialized (or doubly initialized) */ + AMX_ERR_USERDATA, /* unable to set user data field (table full) */ + AMX_ERR_INIT_JIT, /* cannot initialize the JIT */ + AMX_ERR_PARAMS, /* parameter error */ + AMX_ERR_DOMAIN, /* domain error, expression result does not fit in range */ + }; + + #if !defined AMX_NO_ALIGN +- #if defined __linux__ ++ #if defined(__linux__) || defined(__APPLE__) + #pragma pack() /* reset default packing */ + #else + #pragma pack(pop) /* reset previous packing */ + #endif + #endif + + + // ***** declare functions ***** + + #ifdef USE_METAMOD +-void UTIL_LogPrintf( char *fmt, ... ); ++void UTIL_LogPrintf( const char *fmt, ... ); + void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage); + short FixedSigned16( float value, float scale ); + unsigned short FixedUnsigned16( float value, float scale ); + + #ifdef FN_META_QUERY + void FN_META_QUERY(void); + #endif // FN_META_QUERY + +@@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict + + #ifdef FN_AllowLagCompensation_Post + int FN_AllowLagCompensation_Post(void); + #endif // FN_AllowLagCompensation_Post + + + + #ifdef FN_PrecacheModel +-int FN_PrecacheModel(char *s); ++int FN_PrecacheModel(const char *s); + #endif // FN_PrecacheModel + + #ifdef FN_PrecacheSound +-int FN_PrecacheSound(char *s); ++int FN_PrecacheSound(const char *s); + #endif // FN_PrecacheSound + + #ifdef FN_SetModel + void FN_SetModel(edict_t *e, const char *m); + #endif // FN_SetModel + + #ifdef FN_ModelIndex + int FN_ModelIndex(const char *m); +@@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m); + int FN_ModelFrames(int modelIndex); + #endif // FN_ModelFrames + + #ifdef FN_SetSize + void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize + + #ifdef FN_ChangeLevel +-void FN_ChangeLevel(char *s1, char *s2); ++void FN_ChangeLevel(const char *s1, const char *s2); + #endif // FN_ChangeLevel + + #ifdef FN_GetSpawnParms + void FN_GetSpawnParms(edict_t *ent); + #endif // FN_GetSpawnParms + + #ifdef FN_SaveSpawnParms + void FN_SaveSpawnParms(edict_t *ent); +@@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien + int FN_NumberOfEntities(void); + #endif // FN_NumberOfEntities + + #ifdef FN_GetInfoKeyBuffer + char *FN_GetInfoKeyBuffer(edict_t *e); + #endif // FN_GetInfoKeyBuffer + + #ifdef FN_InfoKeyValue +-char *FN_InfoKeyValue(char *infobuffer, char *key); ++char *FN_InfoKeyValue(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue + + #ifdef FN_SetKeyValue +-void FN_SetKeyValue(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue + + #ifdef FN_SetClientKeyValue +-void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue + + #ifdef FN_IsMapValid +-int FN_IsMapValid(char *filename); ++int FN_IsMapValid(const char *filename); + #endif // FN_IsMapValid + + #ifdef FN_StaticDecal + void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal + + #ifdef FN_PrecacheGeneric +-int FN_PrecacheGeneric(char *s); ++int FN_PrecacheGeneric(const char *s); + #endif // FN_PrecacheGeneric + + #ifdef FN_GetPlayerUserId + int FN_GetPlayerUserId(edict_t *e ); + #endif // FN_GetPlayerUserId + + #ifdef FN_BuildSoundMsg + void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t * + #endif // FN_GetPlayerAuthId + + + + + + + #ifdef FN_PrecacheModel_Post +-int FN_PrecacheModel_Post(char *s); ++int FN_PrecacheModel_Post(const char *s); + #endif // FN_PrecacheModel_Post + + #ifdef FN_PrecacheSound_Post +-int FN_PrecacheSound_Post(char *s); ++int FN_PrecacheSound_Post(const char *s); + #endif // FN_PrecacheSound_Post + + #ifdef FN_SetModel_Post + void FN_SetModel_Post(edict_t *e, const char *m); + #endif // FN_SetModel_Post + + #ifdef FN_ModelIndex_Post + int FN_ModelIndex_Post(const char *m); +@@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m); + int FN_ModelFrames_Post(int modelIndex); + #endif // FN_ModelFrames_Post + + #ifdef FN_SetSize_Post + void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize_Post + + #ifdef FN_ChangeLevel_Post +-void FN_ChangeLevel_Post(char *s1, char *s2); ++void FN_ChangeLevel_Post(const char *s1, const char *s2); + #endif // FN_ChangeLevel_Post + + #ifdef FN_GetSpawnParms_Post + void FN_GetSpawnParms_Post(edict_t *ent); + #endif // FN_GetSpawnParms_Post + + #ifdef FN_SaveSpawnParms_Post + void FN_SaveSpawnParms_Post(edict_t *ent); +@@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake + int FN_NumberOfEntities_Post(void); + #endif // FN_NumberOfEntities_Post + + #ifdef FN_GetInfoKeyBuffer_Post + char *FN_GetInfoKeyBuffer_Post(edict_t *e); + #endif // FN_GetInfoKeyBuffer_Post + + #ifdef FN_InfoKeyValue_Post +-char *FN_InfoKeyValue_Post(char *infobuffer, char *key); ++char *FN_InfoKeyValue_Post(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue_Post + + #ifdef FN_SetKeyValue_Post +-void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue_Post + + #ifdef FN_SetClientKeyValue_Post +-void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue_Post + + #ifdef FN_IsMapValid_Post +-int FN_IsMapValid_Post(char *filename); ++int FN_IsMapValid_Post(const char *filename); + #endif // FN_IsMapValid_Post + + #ifdef FN_StaticDecal_Post + void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal_Post + + #ifdef FN_PrecacheGeneric_Post +-int FN_PrecacheGeneric_Post(char *s); ++int FN_PrecacheGeneric_Post(const char *s); + #endif // FN_PrecacheGeneric_Post + + #ifdef FN_GetPlayerUserId_Post + int FN_GetPlayerUserId_Post(edict_t *e ); + #endif // FN_GetPlayerUserId_Post + + #ifdef FN_BuildSoundMsg_Post + void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -2111,17 +2116,17 @@ enum LibType + + typedef void (*AUTHORIZEFUNC)(int player, const char *authstring); + + typedef int (*PFN_ADD_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef int (*PFN_ADD_NEW_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef char * (*PFN_BUILD_PATHNAME) (const char * /*format*/, ...); + typedef char * (*PFN_BUILD_PATHNAME_R) (char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...); + typedef cell * (*PFN_GET_AMXADDR) (AMX * /*amx*/, cell /*offset*/); +-typedef void (*PFN_PRINT_SRVCONSOLE) (char * /*format*/, ...); ++typedef void (*PFN_PRINT_SRVCONSOLE) (const char * /*format*/, ...); + typedef const char * (*PFN_GET_MODNAME) (void); + typedef const char * (*PFN_GET_AMXSCRIPTNAME) (int /*id*/); + typedef AMX * (*PFN_GET_AMXSCRIPT) (int /*id*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYAMX) (const AMX * /*amx*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYNAME) (const char * /*name*/); + typedef int (*PFN_SET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */); + typedef char * (*PFN_GET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/); + typedef int (*PFN_GET_AMXSTRINGLEN) (const cell *ptr); +@@ -2170,18 +2175,18 @@ typedef void * (*PFN_ALLOCATOR) (co + typedef void * (*PFN_REALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ ); + typedef void (*PFN_DEALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const void* /*addr*/ ); + #endif + typedef int (*PFN_AMX_EXEC) (AMX* /*amx*/, cell* /*return val*/, int /*index*/); + typedef int (*PFN_AMX_EXECV) (AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/); + typedef int (*PFN_AMX_ALLOT) (AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/); +-typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); +-typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); + typedef int (*PFN_LOAD_AMXSCRIPT) (AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */); + typedef int (*PFN_UNLOAD_AMXSCRIPT) (AMX* /*amx*/,void** /*code*/); + typedef cell (*PFN_REAL_TO_CELL) (REAL /*x*/); + typedef REAL (*PFN_CELL_TO_REAL) (cell /*x*/); + typedef int (*PFN_REGISTER_SPFORWARD) (AMX * /*amx*/, int /*func*/, ... /*params*/); + typedef int (*PFN_REGISTER_SPFORWARD_BYNAME) (AMX * /*amx*/, const char * /*funcName*/, ... /*params*/); + typedef void (*PFN_UNREGISTER_SPFORWARD) (int /*id*/); + typedef void (*PFN_MERGEDEFINITION_FILE) (const char * /*filename*/); +diff --git a/dlls/sockets/Makefile b/dlls/sockets/Makefile +--- a/dlls/sockets/Makefile ++++ b/dlls/sockets/Makefile +@@ -1,78 +1,124 @@ +-#(C)2004-2005 AMX Mod X Development Team ++# (C)2004-2013 AMX Mod X Development Team + # Makefile written by David "BAILOPAN" Anderson + +-HLSDK = ../../../hlsdk ++########################################### ++### EDIT THESE PATHS FOR YOUR OWN SETUP ### ++########################################### ++ ++HLSDK = ../../../hlsdk/multiplayer + MM_ROOT = ../../../metamod/metamod + ++##################################### + ### EDIT BELOW FOR OTHER PROJECTS ### ++##################################### + +-OPT_FLAGS = -O2 -funroll-loops -s -pipe -fno-strict-aliasing -fomit-frame-pointer +-DEBUG_FLAGS = -g -ggdb3 +-CPP = gcc-4.1 +-NAME = sockets +- +-BIN_SUFFIX_32 = amxx_i386.so +-BIN_SUFFIX_64 = amxx_amd64.so ++PROJECT = sockets + + OBJECTS = sdk/amxxmodule.cpp sockets.cpp + +-LINK = ++############################################## ++### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ### ++############################################## + +-INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \ +- -I$(MM_ROOT) -I$(HLSDK)/common -Isdk ++C_OPT_FLAGS = -DNDEBUG -O2 -funroll-loops -fomit-frame-pointer -pipe ++C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3 ++C_GCC4_FLAGS = -fvisibility=hidden ++CPP_GCC4_FLAGS = -fvisibility-inlines-hidden ++CPP = gcc ++CPP_OSX = clang + +-GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++LINK = + +-ifeq "$(GCC_VERSION)" "4" +- OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden ++INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \ ++ -I$(MM_ROOT) -Isdk ++ ++################################################ ++### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ### ++################################################ ++ ++OS := $(shell uname -s) ++ ++ifeq "$(OS)" "Darwin" ++ CPP = $(CPP_OSX) ++ LIB_EXT = dylib ++ LIB_SUFFIX = _amxx ++ CFLAGS += -DOSX ++ LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5 ++else ++ LIB_EXT = so ++ LIB_SUFFIX = _amxx_i386 ++ CFLAGS += -DLINUX ++ LINK += -shared + endif + ++LINK += -m32 -lm -ldl ++ ++CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror ++CPPFLAGS += -fno-exceptions -fno-rtti ++ ++BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT) ++ + ifeq "$(DEBUG)" "true" + BIN_DIR = Debug +- CFLAGS = $(DEBUG_FLAGS) ++ CFLAGS += $(C_DEBUG_FLAGS) + else + BIN_DIR = Release +- CFLAGS = $(OPT_FLAGS) ++ CFLAGS += $(C_OPT_FLAGS) ++ LINK += -s + endif + +-CFLAGS += -DNDEBUG -Wall -Werror -fno-exceptions -DHAVE_STDINT_H -static-libgcc -fno-rtti -m32 ++IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0") + +-ifeq "$(AMD64)" "true" +- BINARY = $(NAME)_$(BIN_SUFFIX_64) +- CFLAGS += -DPAWN_CELL_SIZE=64 -DHAVE_I64 -m64 ++ifeq "$(IS_CLANG)" "1" ++ CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/") ++ CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/") + else +- BINARY = $(NAME)_$(BIN_SUFFIX_32) +- CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 +- OPT_FLAGS += -march=i586 ++ CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++ CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3) + endif + +-OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++# Clang || GCC >= 4 ++ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1" ++ CFLAGS += $(C_GCC4_FLAGS) ++ CPPFLAGS += $(CPP_GCC4_FLAGS) ++endif ++ ++# Clang >= 3 || GCC >= 4.7 ++ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1" ++ CFLAGS += -Wno-delete-non-virtual-dtor ++endif ++ ++# OS is Linux and not using clang ++ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1" ++ LINK += -static-libgcc ++endif ++ ++OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++ ++# This will break if we include other Makefiles, but is fine for now. It allows ++# us to make a copy of this file that uses altered paths (ie. Makefile.mine) ++# or other changes without mucking up the original. ++MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) + + $(BIN_DIR)/%.o: %.cpp +- $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< ++ $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< ++ + + all: + mkdir -p $(BIN_DIR) + mkdir -p $(BIN_DIR)/sdk +- $(MAKE) sockets ++ $(MAKE) -f $(MAKEFILE_NAME) $(PROJECT) + +-amd64: +- $(MAKE) all AMD64=true ++$(PROJECT): $(OBJ_BIN) ++ $(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY) + +-sockets: $(OBJ_LINUX) +- $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) +- +-debug: +- $(MAKE) all DEBUG=true ++debug: ++ $(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true + + default: all + + clean: +- rm -rf Release/sdk/*.o +- rm -rf Release/*.o +- rm -rf Release/$(NAME)_$(BIN_SUFFIX_32) +- rm -rf Release/$(NAME)_$(BIN_SUFFIX_64) +- rm -rf Debug/sdk/*.o +- rm -rf Debug/*.o +- rm -rf Debug/$(NAME)_$(BIN_SUFFIX_32) +- rm -rf Debug/$(NAME)_$(BIN_SUFFIX_64) ++ rm -rf $(BIN_DIR)/*.o ++ rm -rf $(BIN_DIR)/sdk/*.o ++ rm -f $(BIN_DIR)/$(BINARY) ++ +diff --git a/dlls/sockets/sdk/amxxmodule.cpp b/dlls/sockets/sdk/amxxmodule.cpp +--- a/dlls/sockets/sdk/amxxmodule.cpp ++++ b/dlls/sockets/sdk/amxxmodule.cpp +@@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta + GetEntityAPI2, + GetEntityAPI2_Post, + GetNewDLLFunctions, + GetNewDLLFunctions_Post, + GetEngineFunctions, + GetEngineFunctions_Post + }; + +-C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) ++C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) + { + if ((int) CVAR_GET_FLOAT("developer") != 0) + UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", + Plugin_info.logtag, ifvers, Plugin_info.ifvers); + + // Check for valid pMetaUtilFuncs before we continue. + if(!pMetaUtilFuncs) { + UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag); +@@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM + #ifdef FN_META_DETACH + FN_META_DETACH(); + #endif // FN_META_DETACH + return TRUE; + } + + + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + // linux prototype + C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) { + + #else + #ifdef _MSC_VER + // MSVC: Simulate __stdcall calling convention + C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) + { +@@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... ) + return string; + } + + + //========================================================= + // UTIL_LogPrintf - Prints a logged message to console. + // Preceded by LOG: ( timestamp ) < message > + //========================================================= +-void UTIL_LogPrintf( char *fmt, ... ) ++void UTIL_LogPrintf( const char *fmt, ... ) + { + va_list argptr; + static char string[1024]; + + va_start ( argptr, fmt ); + vsnprintf ( string, sizeof(string), fmt, argptr ); + va_end ( argptr ); + +diff --git a/dlls/sockets/sdk/amxxmodule.h b/dlls/sockets/sdk/amxxmodule.h +--- a/dlls/sockets/sdk/amxxmodule.h ++++ b/dlls/sockets/sdk/amxxmodule.h +@@ -15,21 +15,26 @@ + #ifdef USE_METAMOD + #include + #include + #include "osdep.h" + #endif // #ifdef USE_METAMOD + + // DLL Export + #undef DLLEXPORT +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + #define DLLEXPORT __declspec(dllexport) + #else + #define DLLEXPORT __attribute__((visibility("default"))) ++#endif ++ ++#if defined(__linux__) && !defined(LINUX) + #define LINUX ++#elif defined(__APPLE__) && !defined(OSX) ++#define OSX + #endif + + #undef C_DLLEXPORT + #define C_DLLEXPORT extern "C" DLLEXPORT + + // ***** AMXX stuff ***** + + // module interface version was 1 +@@ -61,17 +66,17 @@ struct amxx_module_info_s + + // *** Small stuff *** + // The next section is copied from the amx.h file + // Copyright (c) ITB CompuPhase, 1997-2005 + + #if defined HAVE_STDINT_H + #include + #else +- #if defined __LCC__ || defined __DMC__ || defined LINUX ++ #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__ + #if defined HAVE_INTTYPES_H + #include + #else + #include + #endif + #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L + /* The ISO C99 defines the int16_t and int_32t types. If the compiler got + * here, these types are probably undefined. +@@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t + + #if defined __GNUC__ + #define PACKED __attribute__((packed)) + #else + #define PACKED + #endif + + #if !defined AMX_NO_ALIGN +- #if defined LINUX || defined __FreeBSD__ ++ #if defined LINUX || defined __FreeBSD__ || defined __APPLE__ + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #elif defined MACOS && defined __MWERKS__ + #pragma options align=mac68k + #else + #pragma pack(push) + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #if defined __TURBOC__ + #pragma option -a- /* "pack" pragma for older Borland compilers */ +@@ -390,28 +395,28 @@ enum { + AMX_ERR_INIT, /* AMX not initialized (or doubly initialized) */ + AMX_ERR_USERDATA, /* unable to set user data field (table full) */ + AMX_ERR_INIT_JIT, /* cannot initialize the JIT */ + AMX_ERR_PARAMS, /* parameter error */ + AMX_ERR_DOMAIN, /* domain error, expression result does not fit in range */ + }; + + #if !defined AMX_NO_ALIGN +- #if defined __linux__ ++ #if defined(__linux__) || defined(__APPLE__) + #pragma pack() /* reset default packing */ + #else + #pragma pack(pop) /* reset previous packing */ + #endif + #endif + + + // ***** declare functions ***** + + #ifdef USE_METAMOD +-void UTIL_LogPrintf( char *fmt, ... ); ++void UTIL_LogPrintf( const char *fmt, ... ); + void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage); + short FixedSigned16( float value, float scale ); + unsigned short FixedUnsigned16( float value, float scale ); + + #ifdef FN_META_QUERY + void FN_META_QUERY(void); + #endif // FN_META_QUERY + +@@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict + + #ifdef FN_AllowLagCompensation_Post + int FN_AllowLagCompensation_Post(void); + #endif // FN_AllowLagCompensation_Post + + + + #ifdef FN_PrecacheModel +-int FN_PrecacheModel(char *s); ++int FN_PrecacheModel(const char *s); + #endif // FN_PrecacheModel + + #ifdef FN_PrecacheSound +-int FN_PrecacheSound(char *s); ++int FN_PrecacheSound(const char *s); + #endif // FN_PrecacheSound + + #ifdef FN_SetModel + void FN_SetModel(edict_t *e, const char *m); + #endif // FN_SetModel + + #ifdef FN_ModelIndex + int FN_ModelIndex(const char *m); +@@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m); + int FN_ModelFrames(int modelIndex); + #endif // FN_ModelFrames + + #ifdef FN_SetSize + void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize + + #ifdef FN_ChangeLevel +-void FN_ChangeLevel(char *s1, char *s2); ++void FN_ChangeLevel(const char *s1, const char *s2); + #endif // FN_ChangeLevel + + #ifdef FN_GetSpawnParms + void FN_GetSpawnParms(edict_t *ent); + #endif // FN_GetSpawnParms + + #ifdef FN_SaveSpawnParms + void FN_SaveSpawnParms(edict_t *ent); +@@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien + int FN_NumberOfEntities(void); + #endif // FN_NumberOfEntities + + #ifdef FN_GetInfoKeyBuffer + char *FN_GetInfoKeyBuffer(edict_t *e); + #endif // FN_GetInfoKeyBuffer + + #ifdef FN_InfoKeyValue +-char *FN_InfoKeyValue(char *infobuffer, char *key); ++char *FN_InfoKeyValue(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue + + #ifdef FN_SetKeyValue +-void FN_SetKeyValue(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue + + #ifdef FN_SetClientKeyValue +-void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue + + #ifdef FN_IsMapValid +-int FN_IsMapValid(char *filename); ++int FN_IsMapValid(const char *filename); + #endif // FN_IsMapValid + + #ifdef FN_StaticDecal + void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal + + #ifdef FN_PrecacheGeneric +-int FN_PrecacheGeneric(char *s); ++int FN_PrecacheGeneric(const char *s); + #endif // FN_PrecacheGeneric + + #ifdef FN_GetPlayerUserId + int FN_GetPlayerUserId(edict_t *e ); + #endif // FN_GetPlayerUserId + + #ifdef FN_BuildSoundMsg + void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t * + #endif // FN_GetPlayerAuthId + + + + + + + #ifdef FN_PrecacheModel_Post +-int FN_PrecacheModel_Post(char *s); ++int FN_PrecacheModel_Post(const char *s); + #endif // FN_PrecacheModel_Post + + #ifdef FN_PrecacheSound_Post +-int FN_PrecacheSound_Post(char *s); ++int FN_PrecacheSound_Post(const char *s); + #endif // FN_PrecacheSound_Post + + #ifdef FN_SetModel_Post + void FN_SetModel_Post(edict_t *e, const char *m); + #endif // FN_SetModel_Post + + #ifdef FN_ModelIndex_Post + int FN_ModelIndex_Post(const char *m); +@@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m); + int FN_ModelFrames_Post(int modelIndex); + #endif // FN_ModelFrames_Post + + #ifdef FN_SetSize_Post + void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize_Post + + #ifdef FN_ChangeLevel_Post +-void FN_ChangeLevel_Post(char *s1, char *s2); ++void FN_ChangeLevel_Post(const char *s1, const char *s2); + #endif // FN_ChangeLevel_Post + + #ifdef FN_GetSpawnParms_Post + void FN_GetSpawnParms_Post(edict_t *ent); + #endif // FN_GetSpawnParms_Post + + #ifdef FN_SaveSpawnParms_Post + void FN_SaveSpawnParms_Post(edict_t *ent); +@@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake + int FN_NumberOfEntities_Post(void); + #endif // FN_NumberOfEntities_Post + + #ifdef FN_GetInfoKeyBuffer_Post + char *FN_GetInfoKeyBuffer_Post(edict_t *e); + #endif // FN_GetInfoKeyBuffer_Post + + #ifdef FN_InfoKeyValue_Post +-char *FN_InfoKeyValue_Post(char *infobuffer, char *key); ++char *FN_InfoKeyValue_Post(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue_Post + + #ifdef FN_SetKeyValue_Post +-void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue_Post + + #ifdef FN_SetClientKeyValue_Post +-void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue_Post + + #ifdef FN_IsMapValid_Post +-int FN_IsMapValid_Post(char *filename); ++int FN_IsMapValid_Post(const char *filename); + #endif // FN_IsMapValid_Post + + #ifdef FN_StaticDecal_Post + void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal_Post + + #ifdef FN_PrecacheGeneric_Post +-int FN_PrecacheGeneric_Post(char *s); ++int FN_PrecacheGeneric_Post(const char *s); + #endif // FN_PrecacheGeneric_Post + + #ifdef FN_GetPlayerUserId_Post + int FN_GetPlayerUserId_Post(edict_t *e ); + #endif // FN_GetPlayerUserId_Post + + #ifdef FN_BuildSoundMsg_Post + void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -2111,17 +2116,17 @@ enum LibType + + typedef void (*AUTHORIZEFUNC)(int player, const char *authstring); + + typedef int (*PFN_ADD_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef int (*PFN_ADD_NEW_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef char * (*PFN_BUILD_PATHNAME) (const char * /*format*/, ...); + typedef char * (*PFN_BUILD_PATHNAME_R) (char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...); + typedef cell * (*PFN_GET_AMXADDR) (AMX * /*amx*/, cell /*offset*/); +-typedef void (*PFN_PRINT_SRVCONSOLE) (char * /*format*/, ...); ++typedef void (*PFN_PRINT_SRVCONSOLE) (const char * /*format*/, ...); + typedef const char * (*PFN_GET_MODNAME) (void); + typedef const char * (*PFN_GET_AMXSCRIPTNAME) (int /*id*/); + typedef AMX * (*PFN_GET_AMXSCRIPT) (int /*id*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYAMX) (const AMX * /*amx*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYNAME) (const char * /*name*/); + typedef int (*PFN_SET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */); + typedef char * (*PFN_GET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/); + typedef int (*PFN_GET_AMXSTRINGLEN) (const cell *ptr); +@@ -2170,18 +2175,18 @@ typedef void * (*PFN_ALLOCATOR) (co + typedef void * (*PFN_REALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ ); + typedef void (*PFN_DEALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const void* /*addr*/ ); + #endif + typedef int (*PFN_AMX_EXEC) (AMX* /*amx*/, cell* /*return val*/, int /*index*/); + typedef int (*PFN_AMX_EXECV) (AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/); + typedef int (*PFN_AMX_ALLOT) (AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/); +-typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); +-typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); + typedef int (*PFN_LOAD_AMXSCRIPT) (AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */); + typedef int (*PFN_UNLOAD_AMXSCRIPT) (AMX* /*amx*/,void** /*code*/); + typedef cell (*PFN_REAL_TO_CELL) (REAL /*x*/); + typedef REAL (*PFN_CELL_TO_REAL) (cell /*x*/); + typedef int (*PFN_REGISTER_SPFORWARD) (AMX * /*amx*/, int /*func*/, ... /*params*/); + typedef int (*PFN_REGISTER_SPFORWARD_BYNAME) (AMX * /*amx*/, const char * /*funcName*/, ... /*params*/); + typedef void (*PFN_UNREGISTER_SPFORWARD) (int /*id*/); + typedef void (*PFN_MERGEDEFINITION_FILE) (const char * /*filename*/); +diff --git a/dlls/sockets/sockets.cpp b/dlls/sockets/sockets.cpp +--- a/dlls/sockets/sockets.cpp ++++ b/dlls/sockets/sockets.cpp +@@ -13,17 +13,17 @@ + * - code structure renewed + * v0.2 + * - added socket_send2 to send data containing null bytes (FALUCO)(AMXX v1.65) + */ + + #include + #include + #include +-#include ++#include + + #ifdef _WIN32 + /* Windows */ + #include + #include + #define socklen_t int + #else + /* Unix/Linux */ +diff --git a/dlls/sqlite/Makefile b/dlls/sqlite/Makefile +--- a/dlls/sqlite/Makefile ++++ b/dlls/sqlite/Makefile +@@ -1,112 +1,146 @@ +-#(C)2004-2006 AMX Mod X Development Team ++# (C)2004-2013 AMX Mod X Development Team + # Makefile written by David "BAILOPAN" Anderson + +-HLSDK = ../../../hlsdk ++########################################### ++### EDIT THESE PATHS FOR YOUR OWN SETUP ### ++########################################### ++ ++HLSDK = ../../../hlsdk/multiplayer + MM_ROOT = ../../../metamod/metamod +- +-### EDIT BELOW FOR OTHER PROJECTS ### +- +-OPT_FLAGS = -O3 -funroll-loops -s -pipe -fomit-frame-pointer -fno-strict-aliasing +-DEBUG_FLAGS = -g -ggdb3 +-CPP = gcc-4.1 +-CC = gcc-4.1 +-NAME = sqlite + SQL = sqlite-source + +-BIN_SUFFIX_32 = amxx_i386.so +-BIN_SUFFIX_64 = amxx_amd64.so ++##################################### ++### EDIT BELOW FOR OTHER PROJECTS ### ++##################################### + +-CPP_OBJECTS = basic_sql.cpp handles.cpp module.cpp threading.cpp sdk/amxxmodule.cpp oldcompat_sql.cpp +-CPP_OBJECTS += thread/BaseWorker.cpp thread/ThreadWorker.cpp thread/PosixThreads.cpp +-CPP_OBJECTS += sqlitepp/SqliteQuery.cpp sqlitepp/SqliteResultSet.cpp sqlitepp/SqliteDatabase.cpp sqlitepp/SqliteDriver.cpp ++PROJECT = sqlite + +-C_OBJECTS = $(SQL)/alter.c $(SQL)/analyze.c $(SQL)/attach.c $(SQL)/auth.c $(SQL)/btree.c $(SQL)/build.c \ +- $(SQL)/callback.c $(SQL)/complete.c $(SQL)/date.c $(SQL)/delete.c $(SQL)/expr.c $(SQL)/func.c \ +- $(SQL)/hash.c $(SQL)/insert.c $(SQL)/legacy.c $(SQL)/loadext.c $(SQL)/main.c $(SQL)/opcodes.c \ +- $(SQL)/os.c $(SQL)/os_unix.c $(SQL)/pager.c $(SQL)/parse.c $(SQL)/pragma.c $(SQL)/prepare.c \ +- $(SQL)/printf.c $(SQL)/random.c $(SQL)/select.c $(SQL)/table.c $(SQL)/tokenize.c $(SQL)/trigger.c \ +- $(SQL)/update.c $(SQL)/utf.c $(SQL)/util.c $(SQL)/vacuum.c $(SQL)/vdbe.c $(SQL)/vdbeapi.c \ +- $(SQL)/vdbeaux.c $(SQL)/vdbefifo.c $(SQL)/vdbemem.c $(SQL)/vtab.c $(SQL)/where.c \ ++OBJECTS = basic_sql.cpp handles.cpp module.cpp threading.cpp sdk/amxxmodule.cpp oldcompat_sql.cpp \ ++ thread/BaseWorker.cpp thread/ThreadWorker.cpp thread/PosixThreads.cpp \ ++ sqlitepp/SqliteQuery.cpp sqlitepp/SqliteResultSet.cpp sqlitepp/SqliteDatabase.cpp \ ++ sqlitepp/SqliteDriver.cpp ++OBJECTS += $(SQL)/alter.c $(SQL)/analyze.c $(SQL)/attach.c $(SQL)/auth.c $(SQL)/btree.c \ ++ $(SQL)/build.c $(SQL)/callback.c $(SQL)/complete.c $(SQL)/date.c $(SQL)/delete.c \ ++ $(SQL)/expr.c $(SQL)/func.c $(SQL)/hash.c $(SQL)/insert.c $(SQL)/legacy.c \ ++ $(SQL)/loadext.c $(SQL)/main.c $(SQL)/opcodes.c $(SQL)/os.c $(SQL)/os_unix.c \ ++ $(SQL)/pager.c $(SQL)/parse.c $(SQL)/pragma.c $(SQL)/prepare.c $(SQL)/printf.c \ ++ $(SQL)/random.c $(SQL)/select.c $(SQL)/table.c $(SQL)/tokenize.c $(SQL)/trigger.c \ ++ $(SQL)/update.c $(SQL)/utf.c $(SQL)/util.c $(SQL)/vacuum.c $(SQL)/vdbe.c $(SQL)/vdbeapi.c \ ++ $(SQL)/vdbeaux.c $(SQL)/vdbefifo.c $(SQL)/vdbemem.c $(SQL)/vtab.c $(SQL)/where.c + +-CFLAGS = -Wall -Werror -m32 +-CPPFLAGS = -Wall -Wno-non-virtual-dtor -Werror -m32 ++############################################## ++### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ### ++############################################## + +-LINK = -lgcc -static-libgcc -lpthread ++C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -fomit-frame-pointer -pipe ++C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3 ++C_GCC4_FLAGS = -fvisibility=hidden ++CPP_GCC4_FLAGS = -fvisibility-inlines-hidden ++CPP = gcc ++CPP_OSX = clang + +-INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \ +- -I$(MM_ROOT) -I$(HLSDK)/common -I$(SQL) -I./sqlitepp -I./sdk -I./thread ++LINK = ++ ++INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \ ++ -I$(MM_ROOT) -I$(SQL) -Isqlitepp -Ithread -Isdk ++ ++################################################ ++### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ### ++################################################ ++ ++OS := $(shell uname -s) ++ ++ifeq "$(OS)" "Darwin" ++ CPP = $(CPP_OSX) ++ LIB_EXT = dylib ++ LIB_SUFFIX = _amxx ++ CFLAGS += -DOSX ++ LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5 ++else ++ LIB_EXT = so ++ LIB_SUFFIX = _amxx_i386 ++ CFLAGS += -DLINUX ++ LINK += -shared ++endif ++ ++LINK += -m32 -lm -ldl -lpthread ++ ++CFLAGS += -DSM_DEFAULT_THREADER -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H \ ++ -Dstricmp=strcasecmp -fno-strict-aliasing -m32 -Wall -Werror ++CPPFLAGS += -fno-exceptions -fno-rtti ++ ++BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT) + + ifeq "$(DEBUG)" "true" + BIN_DIR = Debug +- CFLAGS += $(DEBUG_FLAGS) +- CPPFLAGS += $(DEBUG_FLAGS) ++ CFLAGS += $(C_DEBUG_FLAGS) + else + BIN_DIR = Release +- CFLAGS += $(OPT_FLAGS) +- CPPFLAGS += $(OPT_FLAGS) ++ CFLAGS += $(C_OPT_FLAGS) ++ LINK += -s + endif + +-GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0") + +-ifeq "$(GCC_VERSION)" "4" +- CFLAGS += -fvisibility=hidden +- CPPFLAGS += -fvisibility=hidden -fvisibility-inlines-hidden ++ifeq "$(IS_CLANG)" "1" ++ CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/") ++ CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/") ++else ++ CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++ CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3) + endif + +-CPPFLAGS += -DNDEBUG -Wno-deprecated -fno-exceptions -DHAVE_STDINT_H -fno-rtti +-CPPFLAGS += -DSM_DEFAULT_THREADER -Dstricmp=strcasecmp +-CFLAGS += -DNDEBUG -DHAVE_STDINT_H -DSM_DEFAULT_THREADER -Dstricmp=strcasecmp +- +-ifeq "$(AMD64)" "true" +- BINARY = $(NAME)_$(BIN_SUFFIX_64) +- CFLAGS += -DPAWN_CELL_SIZE=64 -DHAVE_I64 -m64 +- CPPFLAGS += -DPAWN_CELL_SIZE=64 -DHAVE_I64 -m64 +-else +- BINARY = $(NAME)_$(BIN_SUFFIX_32) +- CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 +- CPPFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 +- OPT_FLAGS += -march=i586 ++# Clang || GCC >= 4 ++ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1" ++ CFLAGS += $(C_GCC4_FLAGS) ++ CPPFLAGS += $(CPP_GCC4_FLAGS) + endif + +-OBJ_LINUX_CPP := $(CPP_OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++# Clang >= 3 || GCC >= 4.7 ++ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1" ++ CFLAGS += -Wno-delete-non-virtual-dtor ++endif ++ ++# OS is Linux and not using clang ++ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1" ++ LINK += -static-libgcc ++endif ++ ++OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++OBJ_BIN := $(OBJ_BIN:%.c=$(BIN_DIR)/%.o) ++ ++# This will break if we include other Makefiles, but is fine for now. It allows ++# us to make a copy of this file that uses altered paths (ie. Makefile.mine) ++# or other changes without mucking up the original. ++MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) + + $(BIN_DIR)/%.o: %.cpp +- $(CPP) $(INCLUDE) $(CPPFLAGS) -o $@ -c $< +- +-OBJ_LINUX_C := $(C_OBJECTS:%.c=$(BIN_DIR)/%.o) ++ $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< + + $(BIN_DIR)/%.o: %.c +- $(CC) $(INCLUDE) $(CFLAGS) -c -o $@ $< ++ $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< + + all: ++ mkdir -p $(BIN_DIR) ++ mkdir -p $(BIN_DIR)/sdk + mkdir -p $(BIN_DIR)/thread + mkdir -p $(BIN_DIR)/sqlitepp +- mkdir -p $(BIN_DIR)/sdk +- mkdir -p $(BIN_DIR) + mkdir -p $(BIN_DIR)/$(SQL) +- $(MAKE) sqlite ++ $(MAKE) -f $(MAKEFILE_NAME) $(PROJECT) + +-amd64: +- $(MAKE) all AMD64=true ++$(PROJECT): $(OBJ_BIN) ++ $(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY) + +-sqlite: $(OBJ_LINUX_C) $(OBJ_LINUX_CPP) +- $(CPP) $(INCLUDE) $(CPPFLAGS) $(OBJ_LINUX_C) $(OBJ_LINUX_CPP) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) +- +-debug: +- $(MAKE) all DEBUG=true ++debug: ++ $(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true + + default: all + + clean: +- rm -rf Release/$(SQL)/*.o +- rm -rf Release/sdk/*.o +- rm -rf Release/sqlitepp/*.o +- rm -rf Release/*.o +- rm -rf Release/$(NAME)_$(BIN_SUFFIX_32) +- rm -rf Release/$(NAME)_$(BIN_SUFFIX_64) +- rm -rf Debug/$(SQL)/*.o +- rm -rf Debug/sdk/*.o +- rm -rf Debug/sqlitepp/*.o +- rm -rf Debug/*.o +- rm -rf Debug/$(NAME)_$(BIN_SUFFIX_32) +- rm -rf Debug/$(NAME)_$(BIN_SUFFIX_64) ++ rm -rf $(BIN_DIR)/*.o ++ rm -rf $(BIN_DIR)/sdk/*.o ++ rm -rf $(BIN_DIR)/thread/*.o ++ rm -rf $(BIN_DIR)/sqlitepp/*.o ++ rm -rf $(BIN_DIR)/$(SQL)/*.o ++ rm -f $(BIN_DIR)/$(BINARY) ++ +diff --git a/dlls/sqlite/module.cpp b/dlls/sqlite/module.cpp +--- a/dlls/sqlite/module.cpp ++++ b/dlls/sqlite/module.cpp +@@ -55,17 +55,17 @@ void OnAmxxAttach() + MF_AddNatives(g_OldCompatNatives); + MF_OverrideNatives(g_OldCompatNatives, MODULE_NAME); + + char path[255]; + MF_BuildPathnameR(path, sizeof(path)-1, "%s/sqlite3", MF_GetLocalInfo("amxx_datadir", "addons/amxmodx/data")); + if (!DirExists(path)) + { + mkdir(path +-#if defined __linux__ ++#if defined(__linux__) || defined(__APPLE__) + , 0775 + #endif + ); + } + } + + void OnAmxxDetach() + { +diff --git a/dlls/sqlite/sdk/amxxmodule.cpp b/dlls/sqlite/sdk/amxxmodule.cpp +--- a/dlls/sqlite/sdk/amxxmodule.cpp ++++ b/dlls/sqlite/sdk/amxxmodule.cpp +@@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta + GetEntityAPI2, + GetEntityAPI2_Post, + GetNewDLLFunctions, + GetNewDLLFunctions_Post, + GetEngineFunctions, + GetEngineFunctions_Post + }; + +-C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) ++C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) + { + if ((int) CVAR_GET_FLOAT("developer") != 0) + UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", + Plugin_info.logtag, ifvers, Plugin_info.ifvers); + + // Check for valid pMetaUtilFuncs before we continue. + if(!pMetaUtilFuncs) { + UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag); +@@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM + #ifdef FN_META_DETACH + FN_META_DETACH(); + #endif // FN_META_DETACH + return TRUE; + } + + + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + // linux prototype + C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) { + + #else + #ifdef _MSC_VER + // MSVC: Simulate __stdcall calling convention + C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) + { +@@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... ) + return string; + } + + + //========================================================= + // UTIL_LogPrintf - Prints a logged message to console. + // Preceded by LOG: ( timestamp ) < message > + //========================================================= +-void UTIL_LogPrintf( char *fmt, ... ) ++void UTIL_LogPrintf( const char *fmt, ... ) + { + va_list argptr; + static char string[1024]; + + va_start ( argptr, fmt ); + vsnprintf ( string, sizeof(string), fmt, argptr ); + va_end ( argptr ); + +diff --git a/dlls/sqlite/sdk/amxxmodule.h b/dlls/sqlite/sdk/amxxmodule.h +--- a/dlls/sqlite/sdk/amxxmodule.h ++++ b/dlls/sqlite/sdk/amxxmodule.h +@@ -15,21 +15,26 @@ + #ifdef USE_METAMOD + #include + #include + #include "osdep.h" + #endif // #ifdef USE_METAMOD + + // DLL Export + #undef DLLEXPORT +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + #define DLLEXPORT __declspec(dllexport) + #else + #define DLLEXPORT __attribute__((visibility("default"))) ++#endif ++ ++#if defined(__linux__) && !defined(LINUX) + #define LINUX ++#elif defined(__APPLE__) && !defined(OSX) ++#define OSX + #endif + + #undef C_DLLEXPORT + #define C_DLLEXPORT extern "C" DLLEXPORT + + // ***** AMXX stuff ***** + + // module interface version was 1 +@@ -61,17 +66,17 @@ struct amxx_module_info_s + + // *** Small stuff *** + // The next section is copied from the amx.h file + // Copyright (c) ITB CompuPhase, 1997-2005 + + #if defined HAVE_STDINT_H + #include + #else +- #if defined __LCC__ || defined __DMC__ || defined LINUX ++ #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__ + #if defined HAVE_INTTYPES_H + #include + #else + #include + #endif + #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L + /* The ISO C99 defines the int16_t and int_32t types. If the compiler got + * here, these types are probably undefined. +@@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t + + #if defined __GNUC__ + #define PACKED __attribute__((packed)) + #else + #define PACKED + #endif + + #if !defined AMX_NO_ALIGN +- #if defined LINUX || defined __FreeBSD__ ++ #if defined LINUX || defined __FreeBSD__ || defined __APPLE__ + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #elif defined MACOS && defined __MWERKS__ + #pragma options align=mac68k + #else + #pragma pack(push) + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #if defined __TURBOC__ + #pragma option -a- /* "pack" pragma for older Borland compilers */ +@@ -390,28 +395,28 @@ enum { + AMX_ERR_INIT, /* AMX not initialized (or doubly initialized) */ + AMX_ERR_USERDATA, /* unable to set user data field (table full) */ + AMX_ERR_INIT_JIT, /* cannot initialize the JIT */ + AMX_ERR_PARAMS, /* parameter error */ + AMX_ERR_DOMAIN, /* domain error, expression result does not fit in range */ + }; + + #if !defined AMX_NO_ALIGN +- #if defined __linux__ ++ #if defined(__linux__) || defined(__APPLE__) + #pragma pack() /* reset default packing */ + #else + #pragma pack(pop) /* reset previous packing */ + #endif + #endif + + + // ***** declare functions ***** + + #ifdef USE_METAMOD +-void UTIL_LogPrintf( char *fmt, ... ); ++void UTIL_LogPrintf( const char *fmt, ... ); + void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage); + short FixedSigned16( float value, float scale ); + unsigned short FixedUnsigned16( float value, float scale ); + + #ifdef FN_META_QUERY + void FN_META_QUERY(void); + #endif // FN_META_QUERY + +@@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict + + #ifdef FN_AllowLagCompensation_Post + int FN_AllowLagCompensation_Post(void); + #endif // FN_AllowLagCompensation_Post + + + + #ifdef FN_PrecacheModel +-int FN_PrecacheModel(char *s); ++int FN_PrecacheModel(const char *s); + #endif // FN_PrecacheModel + + #ifdef FN_PrecacheSound +-int FN_PrecacheSound(char *s); ++int FN_PrecacheSound(const char *s); + #endif // FN_PrecacheSound + + #ifdef FN_SetModel + void FN_SetModel(edict_t *e, const char *m); + #endif // FN_SetModel + + #ifdef FN_ModelIndex + int FN_ModelIndex(const char *m); +@@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m); + int FN_ModelFrames(int modelIndex); + #endif // FN_ModelFrames + + #ifdef FN_SetSize + void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize + + #ifdef FN_ChangeLevel +-void FN_ChangeLevel(char *s1, char *s2); ++void FN_ChangeLevel(const char *s1, const char *s2); + #endif // FN_ChangeLevel + + #ifdef FN_GetSpawnParms + void FN_GetSpawnParms(edict_t *ent); + #endif // FN_GetSpawnParms + + #ifdef FN_SaveSpawnParms + void FN_SaveSpawnParms(edict_t *ent); +@@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien + int FN_NumberOfEntities(void); + #endif // FN_NumberOfEntities + + #ifdef FN_GetInfoKeyBuffer + char *FN_GetInfoKeyBuffer(edict_t *e); + #endif // FN_GetInfoKeyBuffer + + #ifdef FN_InfoKeyValue +-char *FN_InfoKeyValue(char *infobuffer, char *key); ++char *FN_InfoKeyValue(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue + + #ifdef FN_SetKeyValue +-void FN_SetKeyValue(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue + + #ifdef FN_SetClientKeyValue +-void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue + + #ifdef FN_IsMapValid +-int FN_IsMapValid(char *filename); ++int FN_IsMapValid(const char *filename); + #endif // FN_IsMapValid + + #ifdef FN_StaticDecal + void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal + + #ifdef FN_PrecacheGeneric +-int FN_PrecacheGeneric(char *s); ++int FN_PrecacheGeneric(const char *s); + #endif // FN_PrecacheGeneric + + #ifdef FN_GetPlayerUserId + int FN_GetPlayerUserId(edict_t *e ); + #endif // FN_GetPlayerUserId + + #ifdef FN_BuildSoundMsg + void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t * + #endif // FN_GetPlayerAuthId + + + + + + + #ifdef FN_PrecacheModel_Post +-int FN_PrecacheModel_Post(char *s); ++int FN_PrecacheModel_Post(const char *s); + #endif // FN_PrecacheModel_Post + + #ifdef FN_PrecacheSound_Post +-int FN_PrecacheSound_Post(char *s); ++int FN_PrecacheSound_Post(const char *s); + #endif // FN_PrecacheSound_Post + + #ifdef FN_SetModel_Post + void FN_SetModel_Post(edict_t *e, const char *m); + #endif // FN_SetModel_Post + + #ifdef FN_ModelIndex_Post + int FN_ModelIndex_Post(const char *m); +@@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m); + int FN_ModelFrames_Post(int modelIndex); + #endif // FN_ModelFrames_Post + + #ifdef FN_SetSize_Post + void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize_Post + + #ifdef FN_ChangeLevel_Post +-void FN_ChangeLevel_Post(char *s1, char *s2); ++void FN_ChangeLevel_Post(const char *s1, const char *s2); + #endif // FN_ChangeLevel_Post + + #ifdef FN_GetSpawnParms_Post + void FN_GetSpawnParms_Post(edict_t *ent); + #endif // FN_GetSpawnParms_Post + + #ifdef FN_SaveSpawnParms_Post + void FN_SaveSpawnParms_Post(edict_t *ent); +@@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake + int FN_NumberOfEntities_Post(void); + #endif // FN_NumberOfEntities_Post + + #ifdef FN_GetInfoKeyBuffer_Post + char *FN_GetInfoKeyBuffer_Post(edict_t *e); + #endif // FN_GetInfoKeyBuffer_Post + + #ifdef FN_InfoKeyValue_Post +-char *FN_InfoKeyValue_Post(char *infobuffer, char *key); ++char *FN_InfoKeyValue_Post(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue_Post + + #ifdef FN_SetKeyValue_Post +-void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue_Post + + #ifdef FN_SetClientKeyValue_Post +-void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue_Post + + #ifdef FN_IsMapValid_Post +-int FN_IsMapValid_Post(char *filename); ++int FN_IsMapValid_Post(const char *filename); + #endif // FN_IsMapValid_Post + + #ifdef FN_StaticDecal_Post + void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal_Post + + #ifdef FN_PrecacheGeneric_Post +-int FN_PrecacheGeneric_Post(char *s); ++int FN_PrecacheGeneric_Post(const char *s); + #endif // FN_PrecacheGeneric_Post + + #ifdef FN_GetPlayerUserId_Post + int FN_GetPlayerUserId_Post(edict_t *e ); + #endif // FN_GetPlayerUserId_Post + + #ifdef FN_BuildSoundMsg_Post + void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -2111,17 +2116,17 @@ enum LibType + + typedef void (*AUTHORIZEFUNC)(int player, const char *authstring); + + typedef int (*PFN_ADD_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef int (*PFN_ADD_NEW_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef char * (*PFN_BUILD_PATHNAME) (const char * /*format*/, ...); + typedef char * (*PFN_BUILD_PATHNAME_R) (char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...); + typedef cell * (*PFN_GET_AMXADDR) (AMX * /*amx*/, cell /*offset*/); +-typedef void (*PFN_PRINT_SRVCONSOLE) (char * /*format*/, ...); ++typedef void (*PFN_PRINT_SRVCONSOLE) (const char * /*format*/, ...); + typedef const char * (*PFN_GET_MODNAME) (void); + typedef const char * (*PFN_GET_AMXSCRIPTNAME) (int /*id*/); + typedef AMX * (*PFN_GET_AMXSCRIPT) (int /*id*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYAMX) (const AMX * /*amx*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYNAME) (const char * /*name*/); + typedef int (*PFN_SET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */); + typedef char * (*PFN_GET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/); + typedef int (*PFN_GET_AMXSTRINGLEN) (const cell *ptr); +@@ -2170,18 +2175,18 @@ typedef void * (*PFN_ALLOCATOR) (co + typedef void * (*PFN_REALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ ); + typedef void (*PFN_DEALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const void* /*addr*/ ); + #endif + typedef int (*PFN_AMX_EXEC) (AMX* /*amx*/, cell* /*return val*/, int /*index*/); + typedef int (*PFN_AMX_EXECV) (AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/); + typedef int (*PFN_AMX_ALLOT) (AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/); +-typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); +-typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); + typedef int (*PFN_LOAD_AMXSCRIPT) (AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */); + typedef int (*PFN_UNLOAD_AMXSCRIPT) (AMX* /*amx*/,void** /*code*/); + typedef cell (*PFN_REAL_TO_CELL) (REAL /*x*/); + typedef REAL (*PFN_CELL_TO_REAL) (cell /*x*/); + typedef int (*PFN_REGISTER_SPFORWARD) (AMX * /*amx*/, int /*func*/, ... /*params*/); + typedef int (*PFN_REGISTER_SPFORWARD_BYNAME) (AMX * /*amx*/, const char * /*funcName*/, ... /*params*/); + typedef void (*PFN_UNREGISTER_SPFORWARD) (int /*id*/); + typedef void (*PFN_MERGEDEFINITION_FILE) (const char * /*filename*/); +diff --git a/dlls/sqlite/sdk/sh_list.h b/dlls/sqlite/sdk/sh_list.h +--- a/dlls/sqlite/sdk/sh_list.h ++++ b/dlls/sqlite/sdk/sh_list.h +@@ -14,17 +14,17 @@ + // MSVC8 fix for offsetof macro redefition warnings + #ifdef _MSC_VER + #if _MSC_VER >= 1400 + #undef offsetof + #endif + #endif + + #include +-#include ++#include + + namespace SourceHook + { + + //This class is from CSDM for AMX Mod X + /* + A circular, doubly-linked list with one sentinel node + +diff --git a/dlls/sqlite/sdk/sh_string.h b/dlls/sqlite/sdk/sh_string.h +--- a/dlls/sqlite/sdk/sh_string.h ++++ b/dlls/sqlite/sdk/sh_string.h +@@ -191,17 +191,17 @@ public: + + if (len < 1) + { + return; + } + + if (is_space(v[len-1])) + { +- for (i=len-1; i>=0; i--) ++ for (i=len-1; ipRight = pRight; + pNew->iAgg = -1; + if( pToken ){ + assert( pToken->dyn==0 ); + pNew->span = pNew->token = *pToken; + }else if( pLeft ){ + if( pRight ){ + sqlite3ExprSpan(pNew, &pLeft->span, &pRight->span); +- if( pRight->flags && EP_ExpCollate ){ ++ if( pRight->flags & EP_ExpCollate ){ + pNew->flags |= EP_ExpCollate; + pNew->pColl = pRight->pColl; + } + } +- if( pLeft->flags && EP_ExpCollate ){ ++ if( pLeft->flags & EP_ExpCollate ){ + pNew->flags |= EP_ExpCollate; + pNew->pColl = pLeft->pColl; + } + } + return pNew; + } + + /* +diff --git a/dlls/sqlite/sqlitepp/SqliteDriver.cpp b/dlls/sqlite/sqlitepp/SqliteDriver.cpp +--- a/dlls/sqlite/sqlitepp/SqliteDriver.cpp ++++ b/dlls/sqlite/sqlitepp/SqliteDriver.cpp +@@ -22,17 +22,17 @@ bool SqliteDriver::IsCompatDriver(const + + const char *SqliteDriver::NameString() + { + return "sqlite"; + } + + int busy_handler(void *unused1, int unused2) + { +-#if defined __linux__ ++#if defined __linux__ || defined __APPLE__ + usleep(100000); + #else + Sleep(100); + #endif + + return 1; + } + IDatabase *SqliteDriver::Connect2(DatabaseInfo *info, int *errcode, char *error, size_t maxlength) +diff --git a/dlls/sqlite/thread/ThreadSupport.h b/dlls/sqlite/thread/ThreadSupport.h +--- a/dlls/sqlite/thread/ThreadSupport.h ++++ b/dlls/sqlite/thread/ThreadSupport.h +@@ -1,10 +1,10 @@ + #ifndef _INCLUDE_SOURCEMOD_THREAD_SUPPORT_H + #define _INCLUDE_SOURCEMOD_THREAD_SUPPORT_H + +-#if defined __linux__ ++#if defined __linux__ || defined __APPLE__ + #include "PosixThreads.h" + #elif defined WIN32 + #include "WinThreads.h" + #endif + + #endif //_INCLUDE_SOURCEMOD_THREAD_SUPPORT_H +diff --git a/dlls/tfcx/CMisc.h b/dlls/tfcx/CMisc.h +--- a/dlls/tfcx/CMisc.h ++++ b/dlls/tfcx/CMisc.h +@@ -1,17 +1,17 @@ + + + #ifndef CMISC_H + #define CMISC_H + + #include "amxxmodule.h" + #include "CRank.h" + +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + #define LINUXOFFSET 0 + #define CLIP_LINUXOFFSET 0 + #else + #define LINUXOFFSET 3 + #define CLIP_LINUXOFFSET 4 + #endif + + #define TFCMAX_CUSTOMWPNS 5 +@@ -100,24 +100,24 @@ enum { + TFC_PC_HWGUY, + TFC_PC_PYRO, + TFC_PC_SPY, + TFC_PC_ENGENEER, + TFC_PC_CIVILIAN, + }; + + struct weaponsVault { +- char* name; +- char* logName; ++ char name[32]; ++ char logName[32]; + short int ammoSlot; + bool melee; + }; + + struct traceVault { +- char * szName; ++ const char* szName; + char szTag[6]; + int iId; + int iAction; + float fDel; + int start; + int stop; + }; + +diff --git a/dlls/tfcx/Makefile b/dlls/tfcx/Makefile +--- a/dlls/tfcx/Makefile ++++ b/dlls/tfcx/Makefile +@@ -1,67 +1,124 @@ +-#(C)2004-2005 AMX Mod X Development Team ++# (C)2004-2013 AMX Mod X Development Team + # Makefile written by David "BAILOPAN" Anderson + +-HLSDK = ../../../hlsdk ++########################################### ++### EDIT THESE PATHS FOR YOUR OWN SETUP ### ++########################################### ++ ++HLSDK = ../../../hlsdk/multiplayer + MM_ROOT = ../../../metamod/metamod + ++##################################### + ### EDIT BELOW FOR OTHER PROJECTS ### ++##################################### + +-OPT_FLAGS = -O3 -funroll-loops -s -pipe -fno-strict-aliasing -fomit-frame-pointer +-DEBUG_FLAGS = -g -ggdb3 +-CPP = gcc-4.1 +-NAME = tfcx ++PROJECT = tfcx + +-BIN_SUFFIX = amxx_i386.so ++OBJECTS = sdk/amxxmodule.cpp CRank.cpp CMisc.cpp NBase.cpp NRank.cpp usermsg.cpp Utils.cpp \ ++ moduleconfig.cpp + +-OBJECTS = sdk/amxxmodule.cpp CRank.cpp CMisc.cpp NBase.cpp NRank.cpp usermsg.cpp Utils.cpp moduleconfig.cpp ++############################################## ++### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ### ++############################################## + +-LINK = ++C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -fomit-frame-pointer -pipe ++C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3 ++C_GCC4_FLAGS = -fvisibility=hidden ++CPP_GCC4_FLAGS = -fvisibility-inlines-hidden ++CPP = gcc ++CPP_OSX = clang + +-INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \ +- -I$(MM_ROOT) -I$(HLSDK)/common -Isdk ++LINK = + +-GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \ ++ -I$(MM_ROOT) -Isdk + +-ifeq "$(GCC_VERSION)" "4" +- OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden ++################################################ ++### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ### ++################################################ ++ ++OS := $(shell uname -s) ++ ++ifeq "$(OS)" "Darwin" ++ CPP = $(CPP_OSX) ++ LIB_EXT = dylib ++ LIB_SUFFIX = _amxx ++ CFLAGS += -DOSX ++ LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5 ++else ++ LIB_EXT = so ++ LIB_SUFFIX = _amxx_i386 ++ CFLAGS += -DLINUX ++ LINK += -shared + endif + ++LINK += -m32 -lm -ldl ++ ++CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror ++CPPFLAGS += -fno-exceptions -fno-rtti ++ ++BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT) ++ + ifeq "$(DEBUG)" "true" + BIN_DIR = Debug +- CFLAGS = $(DEBUG_FLAGS) ++ CFLAGS += $(C_DEBUG_FLAGS) + else + BIN_DIR = Release +- CFLAGS = $(OPT_FLAGS) ++ CFLAGS += $(C_OPT_FLAGS) ++ LINK += -s + endif + +-CFLAGS += -DNDEBUG -Wall -Wno-non-virtual-dtor -Werror -fno-exceptions -DHAVE_STDINT_H -m32 ++IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0") + +-BINARY = $(NAME)_$(BIN_SUFFIX) +-CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 +-OPT_FLAGS += -march=i586 ++ifeq "$(IS_CLANG)" "1" ++ CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/") ++ CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/") ++else ++ CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++ CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3) ++endif + +-OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++# Clang || GCC >= 4 ++ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1" ++ CFLAGS += $(C_GCC4_FLAGS) ++ CPPFLAGS += $(CPP_GCC4_FLAGS) ++endif ++ ++# Clang >= 3 || GCC >= 4.7 ++ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1" ++ CFLAGS += -Wno-delete-non-virtual-dtor ++endif ++ ++# OS is Linux and not using clang ++ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1" ++ LINK += -static-libgcc ++endif ++ ++OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++ ++# This will break if we include other Makefiles, but is fine for now. It allows ++# us to make a copy of this file that uses altered paths (ie. Makefile.mine) ++# or other changes without mucking up the original. ++MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) + + $(BIN_DIR)/%.o: %.cpp +- $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< ++ $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< + + all: + mkdir -p $(BIN_DIR) + mkdir -p $(BIN_DIR)/sdk +- $(MAKE) tfcx ++ $(MAKE) -f $(MAKEFILE_NAME) $(PROJECT) + +-tfcx: $(OBJ_LINUX) +- $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) ++$(PROJECT): $(OBJ_BIN) ++ $(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY) + +-debug: +- $(MAKE) all DEBUG=true ++debug: ++ $(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true + + default: all + + clean: +- rm -rf Release/sdk/*.o +- rm -rf Release/*.o +- rm -rf Release/$(NAME)_$(BIN_SUFFIX) +- rm -rf Debug/sdk/*.o +- rm -rf Debug/*.o +- rm -rf Debug/$(NAME)_$(BIN_SUFFIX) ++ rm -rf $(BIN_DIR)/*.o ++ rm -rf $(BIN_DIR)/sdk/*.o ++ rm -f $(BIN_DIR)/$(BINARY) ++ +diff --git a/dlls/tfcx/sdk/amxxmodule.cpp b/dlls/tfcx/sdk/amxxmodule.cpp +--- a/dlls/tfcx/sdk/amxxmodule.cpp ++++ b/dlls/tfcx/sdk/amxxmodule.cpp +@@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta + GetEntityAPI2, + GetEntityAPI2_Post, + GetNewDLLFunctions, + GetNewDLLFunctions_Post, + GetEngineFunctions, + GetEngineFunctions_Post + }; + +-C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) ++C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) + { + if ((int) CVAR_GET_FLOAT("developer") != 0) + UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", + Plugin_info.logtag, ifvers, Plugin_info.ifvers); + + // Check for valid pMetaUtilFuncs before we continue. + if(!pMetaUtilFuncs) { + UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag); +@@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM + #ifdef FN_META_DETACH + FN_META_DETACH(); + #endif // FN_META_DETACH + return TRUE; + } + + + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + // linux prototype + C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) { + + #else + #ifdef _MSC_VER + // MSVC: Simulate __stdcall calling convention + C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) + { +@@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... ) + return string; + } + + + //========================================================= + // UTIL_LogPrintf - Prints a logged message to console. + // Preceded by LOG: ( timestamp ) < message > + //========================================================= +-void UTIL_LogPrintf( char *fmt, ... ) ++void UTIL_LogPrintf( const char *fmt, ... ) + { + va_list argptr; + static char string[1024]; + + va_start ( argptr, fmt ); + vsnprintf ( string, sizeof(string), fmt, argptr ); + va_end ( argptr ); + +diff --git a/dlls/tfcx/sdk/amxxmodule.h b/dlls/tfcx/sdk/amxxmodule.h +--- a/dlls/tfcx/sdk/amxxmodule.h ++++ b/dlls/tfcx/sdk/amxxmodule.h +@@ -15,21 +15,26 @@ + #ifdef USE_METAMOD + #include + #include + #include "osdep.h" + #endif // #ifdef USE_METAMOD + + // DLL Export + #undef DLLEXPORT +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + #define DLLEXPORT __declspec(dllexport) + #else + #define DLLEXPORT __attribute__((visibility("default"))) ++#endif ++ ++#if defined(__linux__) && !defined(LINUX) + #define LINUX ++#elif defined(__APPLE__) && !defined(OSX) ++#define OSX + #endif + + #undef C_DLLEXPORT + #define C_DLLEXPORT extern "C" DLLEXPORT + + // ***** AMXX stuff ***** + + // module interface version was 1 +@@ -61,17 +66,17 @@ struct amxx_module_info_s + + // *** Small stuff *** + // The next section is copied from the amx.h file + // Copyright (c) ITB CompuPhase, 1997-2005 + + #if defined HAVE_STDINT_H + #include + #else +- #if defined __LCC__ || defined __DMC__ || defined LINUX ++ #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__ + #if defined HAVE_INTTYPES_H + #include + #else + #include + #endif + #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L + /* The ISO C99 defines the int16_t and int_32t types. If the compiler got + * here, these types are probably undefined. +@@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t + + #if defined __GNUC__ + #define PACKED __attribute__((packed)) + #else + #define PACKED + #endif + + #if !defined AMX_NO_ALIGN +- #if defined LINUX || defined __FreeBSD__ ++ #if defined LINUX || defined __FreeBSD__ || defined __APPLE__ + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #elif defined MACOS && defined __MWERKS__ + #pragma options align=mac68k + #else + #pragma pack(push) + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #if defined __TURBOC__ + #pragma option -a- /* "pack" pragma for older Borland compilers */ +@@ -390,28 +395,28 @@ enum { + AMX_ERR_INIT, /* AMX not initialized (or doubly initialized) */ + AMX_ERR_USERDATA, /* unable to set user data field (table full) */ + AMX_ERR_INIT_JIT, /* cannot initialize the JIT */ + AMX_ERR_PARAMS, /* parameter error */ + AMX_ERR_DOMAIN, /* domain error, expression result does not fit in range */ + }; + + #if !defined AMX_NO_ALIGN +- #if defined __linux__ ++ #if defined(__linux__) || defined(__APPLE__) + #pragma pack() /* reset default packing */ + #else + #pragma pack(pop) /* reset previous packing */ + #endif + #endif + + + // ***** declare functions ***** + + #ifdef USE_METAMOD +-void UTIL_LogPrintf( char *fmt, ... ); ++void UTIL_LogPrintf( const char *fmt, ... ); + void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage); + short FixedSigned16( float value, float scale ); + unsigned short FixedUnsigned16( float value, float scale ); + + #ifdef FN_META_QUERY + void FN_META_QUERY(void); + #endif // FN_META_QUERY + +@@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict + + #ifdef FN_AllowLagCompensation_Post + int FN_AllowLagCompensation_Post(void); + #endif // FN_AllowLagCompensation_Post + + + + #ifdef FN_PrecacheModel +-int FN_PrecacheModel(char *s); ++int FN_PrecacheModel(const char *s); + #endif // FN_PrecacheModel + + #ifdef FN_PrecacheSound +-int FN_PrecacheSound(char *s); ++int FN_PrecacheSound(const char *s); + #endif // FN_PrecacheSound + + #ifdef FN_SetModel + void FN_SetModel(edict_t *e, const char *m); + #endif // FN_SetModel + + #ifdef FN_ModelIndex + int FN_ModelIndex(const char *m); +@@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m); + int FN_ModelFrames(int modelIndex); + #endif // FN_ModelFrames + + #ifdef FN_SetSize + void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize + + #ifdef FN_ChangeLevel +-void FN_ChangeLevel(char *s1, char *s2); ++void FN_ChangeLevel(const char *s1, const char *s2); + #endif // FN_ChangeLevel + + #ifdef FN_GetSpawnParms + void FN_GetSpawnParms(edict_t *ent); + #endif // FN_GetSpawnParms + + #ifdef FN_SaveSpawnParms + void FN_SaveSpawnParms(edict_t *ent); +@@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien + int FN_NumberOfEntities(void); + #endif // FN_NumberOfEntities + + #ifdef FN_GetInfoKeyBuffer + char *FN_GetInfoKeyBuffer(edict_t *e); + #endif // FN_GetInfoKeyBuffer + + #ifdef FN_InfoKeyValue +-char *FN_InfoKeyValue(char *infobuffer, char *key); ++char *FN_InfoKeyValue(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue + + #ifdef FN_SetKeyValue +-void FN_SetKeyValue(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue + + #ifdef FN_SetClientKeyValue +-void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue + + #ifdef FN_IsMapValid +-int FN_IsMapValid(char *filename); ++int FN_IsMapValid(const char *filename); + #endif // FN_IsMapValid + + #ifdef FN_StaticDecal + void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal + + #ifdef FN_PrecacheGeneric +-int FN_PrecacheGeneric(char *s); ++int FN_PrecacheGeneric(const char *s); + #endif // FN_PrecacheGeneric + + #ifdef FN_GetPlayerUserId + int FN_GetPlayerUserId(edict_t *e ); + #endif // FN_GetPlayerUserId + + #ifdef FN_BuildSoundMsg + void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t * + #endif // FN_GetPlayerAuthId + + + + + + + #ifdef FN_PrecacheModel_Post +-int FN_PrecacheModel_Post(char *s); ++int FN_PrecacheModel_Post(const char *s); + #endif // FN_PrecacheModel_Post + + #ifdef FN_PrecacheSound_Post +-int FN_PrecacheSound_Post(char *s); ++int FN_PrecacheSound_Post(const char *s); + #endif // FN_PrecacheSound_Post + + #ifdef FN_SetModel_Post + void FN_SetModel_Post(edict_t *e, const char *m); + #endif // FN_SetModel_Post + + #ifdef FN_ModelIndex_Post + int FN_ModelIndex_Post(const char *m); +@@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m); + int FN_ModelFrames_Post(int modelIndex); + #endif // FN_ModelFrames_Post + + #ifdef FN_SetSize_Post + void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize_Post + + #ifdef FN_ChangeLevel_Post +-void FN_ChangeLevel_Post(char *s1, char *s2); ++void FN_ChangeLevel_Post(const char *s1, const char *s2); + #endif // FN_ChangeLevel_Post + + #ifdef FN_GetSpawnParms_Post + void FN_GetSpawnParms_Post(edict_t *ent); + #endif // FN_GetSpawnParms_Post + + #ifdef FN_SaveSpawnParms_Post + void FN_SaveSpawnParms_Post(edict_t *ent); +@@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake + int FN_NumberOfEntities_Post(void); + #endif // FN_NumberOfEntities_Post + + #ifdef FN_GetInfoKeyBuffer_Post + char *FN_GetInfoKeyBuffer_Post(edict_t *e); + #endif // FN_GetInfoKeyBuffer_Post + + #ifdef FN_InfoKeyValue_Post +-char *FN_InfoKeyValue_Post(char *infobuffer, char *key); ++char *FN_InfoKeyValue_Post(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue_Post + + #ifdef FN_SetKeyValue_Post +-void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue_Post + + #ifdef FN_SetClientKeyValue_Post +-void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue_Post + + #ifdef FN_IsMapValid_Post +-int FN_IsMapValid_Post(char *filename); ++int FN_IsMapValid_Post(const char *filename); + #endif // FN_IsMapValid_Post + + #ifdef FN_StaticDecal_Post + void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal_Post + + #ifdef FN_PrecacheGeneric_Post +-int FN_PrecacheGeneric_Post(char *s); ++int FN_PrecacheGeneric_Post(const char *s); + #endif // FN_PrecacheGeneric_Post + + #ifdef FN_GetPlayerUserId_Post + int FN_GetPlayerUserId_Post(edict_t *e ); + #endif // FN_GetPlayerUserId_Post + + #ifdef FN_BuildSoundMsg_Post + void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -2111,17 +2116,17 @@ enum LibType + + typedef void (*AUTHORIZEFUNC)(int player, const char *authstring); + + typedef int (*PFN_ADD_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef int (*PFN_ADD_NEW_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef char * (*PFN_BUILD_PATHNAME) (const char * /*format*/, ...); + typedef char * (*PFN_BUILD_PATHNAME_R) (char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...); + typedef cell * (*PFN_GET_AMXADDR) (AMX * /*amx*/, cell /*offset*/); +-typedef void (*PFN_PRINT_SRVCONSOLE) (char * /*format*/, ...); ++typedef void (*PFN_PRINT_SRVCONSOLE) (const char * /*format*/, ...); + typedef const char * (*PFN_GET_MODNAME) (void); + typedef const char * (*PFN_GET_AMXSCRIPTNAME) (int /*id*/); + typedef AMX * (*PFN_GET_AMXSCRIPT) (int /*id*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYAMX) (const AMX * /*amx*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYNAME) (const char * /*name*/); + typedef int (*PFN_SET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */); + typedef char * (*PFN_GET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/); + typedef int (*PFN_GET_AMXSTRINGLEN) (const cell *ptr); +@@ -2170,18 +2175,18 @@ typedef void * (*PFN_ALLOCATOR) (co + typedef void * (*PFN_REALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ ); + typedef void (*PFN_DEALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const void* /*addr*/ ); + #endif + typedef int (*PFN_AMX_EXEC) (AMX* /*amx*/, cell* /*return val*/, int /*index*/); + typedef int (*PFN_AMX_EXECV) (AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/); + typedef int (*PFN_AMX_ALLOT) (AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/); +-typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); +-typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); + typedef int (*PFN_LOAD_AMXSCRIPT) (AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */); + typedef int (*PFN_UNLOAD_AMXSCRIPT) (AMX* /*amx*/,void** /*code*/); + typedef cell (*PFN_REAL_TO_CELL) (REAL /*x*/); + typedef REAL (*PFN_CELL_TO_REAL) (cell /*x*/); + typedef int (*PFN_REGISTER_SPFORWARD) (AMX * /*amx*/, int /*func*/, ... /*params*/); + typedef int (*PFN_REGISTER_SPFORWARD_BYNAME) (AMX * /*amx*/, const char * /*funcName*/, ... /*params*/); + typedef void (*PFN_UNREGISTER_SPFORWARD) (int /*id*/); + typedef void (*PFN_MERGEDEFINITION_FILE) (const char * /*filename*/); +diff --git a/dlls/tfcx/tfcx.h b/dlls/tfcx/tfcx.h +--- a/dlls/tfcx/tfcx.h ++++ b/dlls/tfcx/tfcx.h +@@ -44,17 +44,17 @@ + #ifndef GETPLAYERAUTHID + #define GETPLAYERAUTHID (*g_engfuncs.pfnGetPlayerAuthId) + #endif + + + extern AMX_NATIVE_INFO stats_Natives[]; + extern AMX_NATIVE_INFO base_Natives[]; + +-extern weaponsVault weaponData[MAX_WEAPONS]; ++extern weaponsVault weaponData[TFCMAX_WEAPONS]; + extern traceVault traceData[MAX_TRACE]; + + typedef void (*funEventCall)(void*); + extern funEventCall modMsgsEnd[MAX_REG_MSGS]; + extern funEventCall modMsgs[MAX_REG_MSGS]; + extern void (*function)(void*); + extern void (*endfunction)(void*); + +diff --git a/dlls/ts/tsfun/Makefile b/dlls/ts/tsfun/Makefile +--- a/dlls/ts/tsfun/Makefile ++++ b/dlls/ts/tsfun/Makefile +@@ -1,67 +1,123 @@ +-#(C)2004-2005 AMX Mod X Development Team ++# (C)2004-2013 AMX Mod X Development Team + # Makefile written by David "BAILOPAN" Anderson + +-HLSDK = ../../../../hlsdk ++########################################### ++### EDIT THESE PATHS FOR YOUR OWN SETUP ### ++########################################### ++ ++HLSDK = ../../../../hlsdk/multiplayer + MM_ROOT = ../../../../metamod/metamod + ++##################################### + ### EDIT BELOW FOR OTHER PROJECTS ### ++##################################### + +-OPT_FLAGS = -O3 -funroll-loops -s -pipe -fno-strict-aliasing -fomit-frame-pointer +-DEBUG_FLAGS = -g -ggdb3 +-CPP = gcc-4.1 +-NAME = tsfun +- +-BIN_SUFFIX = amxx_i386.so ++PROJECT = tsfun + + OBJECTS = sdk/amxxmodule.cpp + +-LINK = ++############################################## ++### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ### ++############################################## + +-INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \ +- -I$(MM_ROOT) -I$(HLSDK)/common -Isdk ++C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -fomit-frame-pointer -pipe ++C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3 ++C_GCC4_FLAGS = -fvisibility=hidden ++CPP_GCC4_FLAGS = -fvisibility-inlines-hidden ++CPP = gcc ++CPP_OSX = clang + +-GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++LINK = + +-ifeq "$(GCC_VERSION)" "4" +- OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden ++INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \ ++ -I$(MM_ROOT) -Isdk ++ ++################################################ ++### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ### ++################################################ ++ ++OS := $(shell uname -s) ++ ++ifeq "$(OS)" "Darwin" ++ CPP = $(CPP_OSX) ++ LIB_EXT = dylib ++ LIB_SUFFIX = _amxx ++ CFLAGS += -DOSX ++ LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5 ++else ++ LIB_EXT = so ++ LIB_SUFFIX = _amxx_i386 ++ CFLAGS += -DLINUX ++ LINK += -shared + endif + ++LINK += -m32 -lm -ldl ++ ++CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror ++CPPFLAGS += -fno-exceptions -fno-rtti ++ ++BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT) ++ + ifeq "$(DEBUG)" "true" + BIN_DIR = Debug +- CFLAGS = $(DEBUG_FLAGS) ++ CFLAGS += $(C_DEBUG_FLAGS) + else + BIN_DIR = Release +- CFLAGS = $(OPT_FLAGS) ++ CFLAGS += $(C_OPT_FLAGS) ++ LINK += -s + endif + +-CFLAGS += -DNDEBUG -Wall -Werror -fno-exceptions -DHAVE_STDINT_H -static-libgcc -fno-rtti -m32 ++IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0") + +-BINARY = $(NAME)_$(BIN_SUFFIX) +-CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 +-OPT_FLAGS += -march=i586 ++ifeq "$(IS_CLANG)" "1" ++ CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/") ++ CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/") ++else ++ CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++ CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3) ++endif + +-OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++# Clang || GCC >= 4 ++ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1" ++ CFLAGS += $(C_GCC4_FLAGS) ++ CPPFLAGS += $(CPP_GCC4_FLAGS) ++endif ++ ++# Clang >= 3 || GCC >= 4.7 ++ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1" ++ CFLAGS += -Wno-delete-non-virtual-dtor ++endif ++ ++# OS is Linux and not using clang ++ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1" ++ LINK += -static-libgcc ++endif ++ ++OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++ ++# This will break if we include other Makefiles, but is fine for now. It allows ++# us to make a copy of this file that uses altered paths (ie. Makefile.mine) ++# or other changes without mucking up the original. ++MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) + + $(BIN_DIR)/%.o: %.cpp +- $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< ++ $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< + + all: + mkdir -p $(BIN_DIR) + mkdir -p $(BIN_DIR)/sdk +- $(MAKE) tsfun ++ $(MAKE) -f $(MAKEFILE_NAME) $(PROJECT) + +-tsfun: $(OBJ_LINUX) +- $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) ++$(PROJECT): $(OBJ_BIN) ++ $(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY) + +-debug: +- $(MAKE) all DEBUG=true ++debug: ++ $(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true + + default: all + + clean: +- rm -rf Release/sdk/*.o +- rm -rf Release/*.o +- rm -rf Release/$(NAME)_$(BIN_SUFFIX) +- rm -rf Debug/sdk/*.o +- rm -rf Debug/*.o +- rm -rf Debug/$(NAME)_$(BIN_SUFFIX) ++ rm -rf $(BIN_DIR)/*.o ++ rm -rf $(BIN_DIR)/sdk/*.o ++ rm -f $(BIN_DIR)/$(BINARY) ++ +diff --git a/dlls/ts/tsfun/sdk/amxxmodule.cpp b/dlls/ts/tsfun/sdk/amxxmodule.cpp +--- a/dlls/ts/tsfun/sdk/amxxmodule.cpp ++++ b/dlls/ts/tsfun/sdk/amxxmodule.cpp +@@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta + GetEntityAPI2, + GetEntityAPI2_Post, + GetNewDLLFunctions, + GetNewDLLFunctions_Post, + GetEngineFunctions, + GetEngineFunctions_Post + }; + +-C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) ++C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) + { + if ((int) CVAR_GET_FLOAT("developer") != 0) + UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", + Plugin_info.logtag, ifvers, Plugin_info.ifvers); + + // Check for valid pMetaUtilFuncs before we continue. + if(!pMetaUtilFuncs) { + UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag); +@@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM + #ifdef FN_META_DETACH + FN_META_DETACH(); + #endif // FN_META_DETACH + return TRUE; + } + + + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + // linux prototype + C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) { + + #else + #ifdef _MSC_VER + // MSVC: Simulate __stdcall calling convention + C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) + { +@@ -2543,16 +2543,24 @@ C_DLLEXPORT int AMXX_Query(int *interfac + return AMXX_OK; + } + + // request function + #define REQFUNC(name, fptr, type) if ((fptr = (type)reqFnptrFunc(name)) == 0) return AMXX_FUNC_NOT_PRESENT + // request optional function + #define REQFUNC_OPT(name, fptr, type) fptr = (type)reqFnptrFunc(name) + ++C_DLLEXPORT int AMXX_CheckGame(const char *game) ++{ ++#ifdef FN_AMXX_CHECKGAME ++ return FN_AMXX_CHECKGAME(game); ++#else ++ return AMXX_GAME_OK; ++#endif ++} + C_DLLEXPORT int AMXX_Attach(PFN_REQ_FNPTR reqFnptrFunc) + { + // Check pointer + if (!reqFnptrFunc) + return AMXX_PARAM; + + g_fn_RequestFunction = reqFnptrFunc; + +@@ -3037,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... ) + return string; + } + + + //========================================================= + // UTIL_LogPrintf - Prints a logged message to console. + // Preceded by LOG: ( timestamp ) < message > + //========================================================= +-void UTIL_LogPrintf( char *fmt, ... ) ++void UTIL_LogPrintf( const char *fmt, ... ) + { + va_list argptr; + static char string[1024]; + + va_start ( argptr, fmt ); + vsnprintf ( string, sizeof(string), fmt, argptr ); + va_end ( argptr ); + +diff --git a/dlls/ts/tsfun/sdk/amxxmodule.h b/dlls/ts/tsfun/sdk/amxxmodule.h +--- a/dlls/ts/tsfun/sdk/amxxmodule.h ++++ b/dlls/ts/tsfun/sdk/amxxmodule.h +@@ -5,30 +5,36 @@ + + // prevent double include + #ifndef __AMXXMODULE_H__ + #define __AMXXMODULE_H__ + + // config + #include "moduleconfig.h" + ++#include // size_t + // metamod include files + #ifdef USE_METAMOD + #include + #include + #include "osdep.h" + #endif // #ifdef USE_METAMOD + + // DLL Export + #undef DLLEXPORT +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + #define DLLEXPORT __declspec(dllexport) + #else + #define DLLEXPORT __attribute__((visibility("default"))) ++#endif ++ ++#if defined(__linux__) && !defined(LINUX) + #define LINUX ++#elif defined(__APPLE__) && !defined(OSX) ++#define OSX + #endif + + #undef C_DLLEXPORT + #define C_DLLEXPORT extern "C" DLLEXPORT + + // ***** AMXX stuff ***** + + // module interface version was 1 +@@ -50,24 +56,27 @@ struct amxx_module_info_s + }; + + // return values from functions called by amxx + #define AMXX_OK 0 /* no error */ + #define AMXX_IFVERS 1 /* interface version */ + #define AMXX_PARAM 2 /* Invalid parameter */ + #define AMXX_FUNC_NOT_PRESENT 3 /* Function not present */ + ++#define AMXX_GAME_OK 0 /* This module can load on the current game mod. */ ++#define AMXX_GAME_BAD 1 /* This module can not load on the current game mod. */ ++ + // *** Small stuff *** + // The next section is copied from the amx.h file + // Copyright (c) ITB CompuPhase, 1997-2005 + + #if defined HAVE_STDINT_H + #include + #else +- #if defined __LCC__ || defined __DMC__ || defined LINUX ++ #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__ + #if defined HAVE_INTTYPES_H + #include + #else + #include + #endif + #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L + /* The ISO C99 defines the int16_t and int_32t types. If the compiler got + * here, these types are probably undefined. +@@ -299,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t + + #if defined __GNUC__ + #define PACKED __attribute__((packed)) + #else + #define PACKED + #endif + + #if !defined AMX_NO_ALIGN +- #if defined LINUX || defined __FreeBSD__ ++ #if defined LINUX || defined __FreeBSD__ || defined __APPLE__ + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #elif defined MACOS && defined __MWERKS__ + #pragma options align=mac68k + #else + #pragma pack(push) + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #if defined __TURBOC__ + #pragma option -a- /* "pack" pragma for older Borland compilers */ +@@ -386,28 +395,28 @@ enum { + AMX_ERR_INIT, /* AMX not initialized (or doubly initialized) */ + AMX_ERR_USERDATA, /* unable to set user data field (table full) */ + AMX_ERR_INIT_JIT, /* cannot initialize the JIT */ + AMX_ERR_PARAMS, /* parameter error */ + AMX_ERR_DOMAIN, /* domain error, expression result does not fit in range */ + }; + + #if !defined AMX_NO_ALIGN +- #if defined __linux__ ++ #if defined(__linux__) || defined(__APPLE__) + #pragma pack() /* reset default packing */ + #else + #pragma pack(pop) /* reset previous packing */ + #endif + #endif + + + // ***** declare functions ***** + + #ifdef USE_METAMOD +-void UTIL_LogPrintf( char *fmt, ... ); ++void UTIL_LogPrintf( const char *fmt, ... ); + void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage); + short FixedSigned16( float value, float scale ); + unsigned short FixedUnsigned16( float value, float scale ); + + #ifdef FN_META_QUERY + void FN_META_QUERY(void); + #endif // FN_META_QUERY + +@@ -824,21 +833,21 @@ int FN_InconsistentFile_Post(const edict + + #ifdef FN_AllowLagCompensation_Post + int FN_AllowLagCompensation_Post(void); + #endif // FN_AllowLagCompensation_Post + + + + #ifdef FN_PrecacheModel +-int FN_PrecacheModel(char *s); ++int FN_PrecacheModel(const char *s); + #endif // FN_PrecacheModel + + #ifdef FN_PrecacheSound +-int FN_PrecacheSound(char *s); ++int FN_PrecacheSound(const char *s); + #endif // FN_PrecacheSound + + #ifdef FN_SetModel + void FN_SetModel(edict_t *e, const char *m); + #endif // FN_SetModel + + #ifdef FN_ModelIndex + int FN_ModelIndex(const char *m); +@@ -848,17 +857,17 @@ int FN_ModelIndex(const char *m); + int FN_ModelFrames(int modelIndex); + #endif // FN_ModelFrames + + #ifdef FN_SetSize + void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize + + #ifdef FN_ChangeLevel +-void FN_ChangeLevel(char *s1, char *s2); ++void FN_ChangeLevel(const char *s1, const char *s2); + #endif // FN_ChangeLevel + + #ifdef FN_GetSpawnParms + void FN_GetSpawnParms(edict_t *ent); + #endif // FN_GetSpawnParms + + #ifdef FN_SaveSpawnParms + void FN_SaveSpawnParms(edict_t *ent); +@@ -1252,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien + int FN_NumberOfEntities(void); + #endif // FN_NumberOfEntities + + #ifdef FN_GetInfoKeyBuffer + char *FN_GetInfoKeyBuffer(edict_t *e); + #endif // FN_GetInfoKeyBuffer + + #ifdef FN_InfoKeyValue +-char *FN_InfoKeyValue(char *infobuffer, char *key); ++char *FN_InfoKeyValue(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue + + #ifdef FN_SetKeyValue +-void FN_SetKeyValue(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue + + #ifdef FN_SetClientKeyValue +-void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue + + #ifdef FN_IsMapValid +-int FN_IsMapValid(char *filename); ++int FN_IsMapValid(const char *filename); + #endif // FN_IsMapValid + + #ifdef FN_StaticDecal + void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal + + #ifdef FN_PrecacheGeneric +-int FN_PrecacheGeneric(char *s); ++int FN_PrecacheGeneric(const char *s); + #endif // FN_PrecacheGeneric + + #ifdef FN_GetPlayerUserId + int FN_GetPlayerUserId(edict_t *e ); + #endif // FN_GetPlayerUserId + + #ifdef FN_BuildSoundMsg + void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -1405,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t * + #endif // FN_GetPlayerAuthId + + + + + + + #ifdef FN_PrecacheModel_Post +-int FN_PrecacheModel_Post(char *s); ++int FN_PrecacheModel_Post(const char *s); + #endif // FN_PrecacheModel_Post + + #ifdef FN_PrecacheSound_Post +-int FN_PrecacheSound_Post(char *s); ++int FN_PrecacheSound_Post(const char *s); + #endif // FN_PrecacheSound_Post + + #ifdef FN_SetModel_Post + void FN_SetModel_Post(edict_t *e, const char *m); + #endif // FN_SetModel_Post + + #ifdef FN_ModelIndex_Post + int FN_ModelIndex_Post(const char *m); +@@ -1429,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m); + int FN_ModelFrames_Post(int modelIndex); + #endif // FN_ModelFrames_Post + + #ifdef FN_SetSize_Post + void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize_Post + + #ifdef FN_ChangeLevel_Post +-void FN_ChangeLevel_Post(char *s1, char *s2); ++void FN_ChangeLevel_Post(const char *s1, const char *s2); + #endif // FN_ChangeLevel_Post + + #ifdef FN_GetSpawnParms_Post + void FN_GetSpawnParms_Post(edict_t *ent); + #endif // FN_GetSpawnParms_Post + + #ifdef FN_SaveSpawnParms_Post + void FN_SaveSpawnParms_Post(edict_t *ent); +@@ -1833,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake + int FN_NumberOfEntities_Post(void); + #endif // FN_NumberOfEntities_Post + + #ifdef FN_GetInfoKeyBuffer_Post + char *FN_GetInfoKeyBuffer_Post(edict_t *e); + #endif // FN_GetInfoKeyBuffer_Post + + #ifdef FN_InfoKeyValue_Post +-char *FN_InfoKeyValue_Post(char *infobuffer, char *key); ++char *FN_InfoKeyValue_Post(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue_Post + + #ifdef FN_SetKeyValue_Post +-void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue_Post + + #ifdef FN_SetClientKeyValue_Post +-void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue_Post + + #ifdef FN_IsMapValid_Post +-int FN_IsMapValid_Post(char *filename); ++int FN_IsMapValid_Post(const char *filename); + #endif // FN_IsMapValid_Post + + #ifdef FN_StaticDecal_Post + void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal_Post + + #ifdef FN_PrecacheGeneric_Post +-int FN_PrecacheGeneric_Post(char *s); ++int FN_PrecacheGeneric_Post(const char *s); + #endif // FN_PrecacheGeneric_Post + + #ifdef FN_GetPlayerUserId_Post + int FN_GetPlayerUserId_Post(edict_t *e ); + #endif // FN_GetPlayerUserId_Post + + #ifdef FN_BuildSoundMsg_Post + void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -2018,16 +2027,20 @@ int FN_ShouldCollide_Post(edict_t *pentT + + #endif // USE_METAMOD + + + #ifdef FN_AMXX_QUERY + void FN_AMXX_QUERY(void); + #endif // FN_AMXX_QUERY + ++#ifdef FN_AMXX_CHECKGAME ++int FN_AMXX_CHECKGAME(const char *); ++#endif // FN_AMXX_CHECKGAME ++ + #ifdef FN_AMXX_ATTACH + void FN_AMXX_ATTACH(void); + #endif // FN_AMXX_ATTACH + + #ifdef FN_AMXX_DETACH + void FN_AMXX_DETACH(void); + #endif // FN_AMXX_DETACH + +@@ -2103,17 +2116,17 @@ enum LibType + + typedef void (*AUTHORIZEFUNC)(int player, const char *authstring); + + typedef int (*PFN_ADD_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef int (*PFN_ADD_NEW_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef char * (*PFN_BUILD_PATHNAME) (const char * /*format*/, ...); + typedef char * (*PFN_BUILD_PATHNAME_R) (char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...); + typedef cell * (*PFN_GET_AMXADDR) (AMX * /*amx*/, cell /*offset*/); +-typedef void (*PFN_PRINT_SRVCONSOLE) (char * /*format*/, ...); ++typedef void (*PFN_PRINT_SRVCONSOLE) (const char * /*format*/, ...); + typedef const char * (*PFN_GET_MODNAME) (void); + typedef const char * (*PFN_GET_AMXSCRIPTNAME) (int /*id*/); + typedef AMX * (*PFN_GET_AMXSCRIPT) (int /*id*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYAMX) (const AMX * /*amx*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYNAME) (const char * /*name*/); + typedef int (*PFN_SET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */); + typedef char * (*PFN_GET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/); + typedef int (*PFN_GET_AMXSTRINGLEN) (const cell *ptr); +@@ -2162,18 +2175,18 @@ typedef void * (*PFN_ALLOCATOR) (co + typedef void * (*PFN_REALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ ); + typedef void (*PFN_DEALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const void* /*addr*/ ); + #endif + typedef int (*PFN_AMX_EXEC) (AMX* /*amx*/, cell* /*return val*/, int /*index*/); + typedef int (*PFN_AMX_EXECV) (AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/); + typedef int (*PFN_AMX_ALLOT) (AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/); +-typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); +-typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); + typedef int (*PFN_LOAD_AMXSCRIPT) (AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */); + typedef int (*PFN_UNLOAD_AMXSCRIPT) (AMX* /*amx*/,void** /*code*/); + typedef cell (*PFN_REAL_TO_CELL) (REAL /*x*/); + typedef REAL (*PFN_CELL_TO_REAL) (cell /*x*/); + typedef int (*PFN_REGISTER_SPFORWARD) (AMX * /*amx*/, int /*func*/, ... /*params*/); + typedef int (*PFN_REGISTER_SPFORWARD_BYNAME) (AMX * /*amx*/, const char * /*funcName*/, ... /*params*/); + typedef void (*PFN_UNREGISTER_SPFORWARD) (int /*id*/); + typedef void (*PFN_MERGEDEFINITION_FILE) (const char * /*filename*/); +diff --git a/dlls/ts/tsx/CMisc.h b/dlls/ts/tsx/CMisc.h +--- a/dlls/ts/tsx/CMisc.h ++++ b/dlls/ts/tsx/CMisc.h +@@ -34,30 +34,30 @@ + + #include "amxxmodule.h" + #include "CRank.h" + + #define TSMAX_CUSTOMWPNS 5 + #define TSMAX_WEAPONS 39 + TSMAX_CUSTOMWPNS + + +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + #define TSKNIFE_OFFSET 31 // owner offset in knife entity + #else + #define TSKNIFE_OFFSET 35 + #endif + + #define TSPWUP_SLOWMO 1 + #define TSPWUP_INFAMMO 2 + #define TSPWUP_KUNGFU 4 + #define TSPWUP_SLOWPAUSE 8 + #define TSPWUP_DFIRERATE 16 + #define TSPWUP_SJUMP 256 + +-#if defined __linux__ ++#if defined(__linux__) || defined(__APPLE__) + #define EXTRAOFFSET 5 + #else + #define EXTRAOFFSET 0 + #endif + + #define TSX_SDUCK_OFFSET (27+EXTRAOFFSET) + #define TSX_SPEED1_OFFSET (85+EXTRAOFFSET) + #define TSX_PHYSICS_OFFSET (86+EXTRAOFFSET) +diff --git a/dlls/ts/tsx/Makefile b/dlls/ts/tsx/Makefile +--- a/dlls/ts/tsx/Makefile ++++ b/dlls/ts/tsx/Makefile +@@ -1,68 +1,124 @@ +-#(C)2004-2005 AMX Mod X Development Team ++# (C)2004-2013 AMX Mod X Development Team + # Makefile written by David "BAILOPAN" Anderson + +-HLSDK = ../../../../hlsdk ++########################################### ++### EDIT THESE PATHS FOR YOUR OWN SETUP ### ++########################################### ++ ++HLSDK = ../../../../hlsdk/multiplayer + MM_ROOT = ../../../../metamod/metamod + ++##################################### + ### EDIT BELOW FOR OTHER PROJECTS ### ++##################################### + +-OPT_FLAGS = -O2 -funroll-loops -s -pipe -fno-strict-aliasing -fomit-frame-pointer +-DEBUG_FLAGS = -g -ggdb3 +-CPP = gcc-4.1 +-NAME = tsx ++PROJECT = tsx + +-BIN_SUFFIX = amxx_i386.so ++OBJECTS = sdk/amxxmodule.cpp CMisc.cpp CRank.cpp NBase.cpp NRank.cpp Utils.cpp moduleconfig.cpp \ ++ usermsg.cpp + +-OBJECTS = sdk/amxxmodule.cpp CMisc.cpp CRank.cpp NBase.cpp \ +- NRank.cpp Utils.cpp moduleconfig.cpp usermsg.cpp \ ++############################################## ++### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ### ++############################################## + +-LINK = ++C_OPT_FLAGS = -DNDEBUG -O2 -funroll-loops -fomit-frame-pointer -pipe ++C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3 ++C_GCC4_FLAGS = -fvisibility=hidden ++CPP_GCC4_FLAGS = -fvisibility-inlines-hidden ++CPP = gcc ++CPP_OSX = clang + +-INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \ +- -I$(MM_ROOT) -I$(HLSDK)/common -Isdk ++LINK = + +-GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \ ++ -I$(MM_ROOT) -Isdk + +-ifeq "$(GCC_VERSION)" "4" +- OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden ++################################################ ++### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ### ++################################################ ++ ++OS := $(shell uname -s) ++ ++ifeq "$(OS)" "Darwin" ++ CPP = $(CPP_OSX) ++ LIB_EXT = dylib ++ LIB_SUFFIX = _amxx ++ CFLAGS += -DOSX ++ LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5 ++else ++ LIB_EXT = so ++ LIB_SUFFIX = _amxx_i386 ++ CFLAGS += -DLINUX ++ LINK += -shared + endif + ++LINK += -m32 -lm -ldl ++ ++CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror ++CPPFLAGS += -fno-exceptions -fno-rtti ++ ++BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT) ++ + ifeq "$(DEBUG)" "true" + BIN_DIR = Debug +- CFLAGS = $(DEBUG_FLAGS) ++ CFLAGS += $(C_DEBUG_FLAGS) + else + BIN_DIR = Release +- CFLAGS = $(OPT_FLAGS) ++ CFLAGS += $(C_OPT_FLAGS) ++ LINK += -s + endif + +-CFLAGS += -DNDEBUG -Wall -Wno-non-virtual-dtor -Werror -fno-exceptions -DHAVE_STDINT_H -static-libgcc -fno-rtti -m32 ++IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0") + +-BINARY = $(NAME)_$(BIN_SUFFIX) +-CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 +-OPT_FLAGS += -march=i586 ++ifeq "$(IS_CLANG)" "1" ++ CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/") ++ CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/") ++else ++ CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1) ++ CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3) ++endif + +-OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++# Clang || GCC >= 4 ++ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1" ++ CFLAGS += $(C_GCC4_FLAGS) ++ CPPFLAGS += $(CPP_GCC4_FLAGS) ++endif ++ ++# Clang >= 3 || GCC >= 4.7 ++ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1" ++ CFLAGS += -Wno-delete-non-virtual-dtor ++endif ++ ++# OS is Linux and not using clang ++ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1" ++ LINK += -static-libgcc ++endif ++ ++OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) ++ ++# This will break if we include other Makefiles, but is fine for now. It allows ++# us to make a copy of this file that uses altered paths (ie. Makefile.mine) ++# or other changes without mucking up the original. ++MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) + + $(BIN_DIR)/%.o: %.cpp +- $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< ++ $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< + + all: + mkdir -p $(BIN_DIR) + mkdir -p $(BIN_DIR)/sdk +- $(MAKE) tsx ++ $(MAKE) -f $(MAKEFILE_NAME) $(PROJECT) + +-tsx: $(OBJ_LINUX) +- $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) ++$(PROJECT): $(OBJ_BIN) ++ $(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY) + +-debug: +- $(MAKE) all DEBUG=true ++debug: ++ $(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true + + default: all + + clean: +- rm -rf Release/sdk/*.o +- rm -rf Release/*.o +- rm -rf Release/$(NAME)_$(BIN_SUFFIX) +- rm -rf Debug/sdk/*.o +- rm -rf Debug/*.o +- rm -rf Debug/$(NAME)_$(BIN_SUFFIX) ++ rm -rf $(BIN_DIR)/*.o ++ rm -rf $(BIN_DIR)/sdk/*.o ++ rm -f $(BIN_DIR)/$(BINARY) ++ +diff --git a/dlls/ts/tsx/sdk/amxxmodule.cpp b/dlls/ts/tsx/sdk/amxxmodule.cpp +--- a/dlls/ts/tsx/sdk/amxxmodule.cpp ++++ b/dlls/ts/tsx/sdk/amxxmodule.cpp +@@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta + GetEntityAPI2, + GetEntityAPI2_Post, + GetNewDLLFunctions, + GetNewDLLFunctions_Post, + GetEngineFunctions, + GetEngineFunctions_Post + }; + +-C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) ++C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) + { + if ((int) CVAR_GET_FLOAT("developer") != 0) + UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", + Plugin_info.logtag, ifvers, Plugin_info.ifvers); + + // Check for valid pMetaUtilFuncs before we continue. + if(!pMetaUtilFuncs) { + UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag); +@@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM + #ifdef FN_META_DETACH + FN_META_DETACH(); + #endif // FN_META_DETACH + return TRUE; + } + + + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__APPLE__) + // linux prototype + C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) { + + #else + #ifdef _MSC_VER + // MSVC: Simulate __stdcall calling convention + C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) + { +@@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... ) + return string; + } + + + //========================================================= + // UTIL_LogPrintf - Prints a logged message to console. + // Preceded by LOG: ( timestamp ) < message > + //========================================================= +-void UTIL_LogPrintf( char *fmt, ... ) ++void UTIL_LogPrintf( const char *fmt, ... ) + { + va_list argptr; + static char string[1024]; + + va_start ( argptr, fmt ); + vsnprintf ( string, sizeof(string), fmt, argptr ); + va_end ( argptr ); + +diff --git a/dlls/ts/tsx/sdk/amxxmodule.h b/dlls/ts/tsx/sdk/amxxmodule.h +--- a/dlls/ts/tsx/sdk/amxxmodule.h ++++ b/dlls/ts/tsx/sdk/amxxmodule.h +@@ -15,21 +15,26 @@ + #ifdef USE_METAMOD + #include + #include + #include "osdep.h" + #endif // #ifdef USE_METAMOD + + // DLL Export + #undef DLLEXPORT +-#ifndef __linux__ ++#if defined(WIN32) || defined(_WIN32) + #define DLLEXPORT __declspec(dllexport) + #else + #define DLLEXPORT __attribute__((visibility("default"))) ++#endif ++ ++#if defined(__linux__) && !defined(LINUX) + #define LINUX ++#elif defined(__APPLE__) && !defined(OSX) ++#define OSX + #endif + + #undef C_DLLEXPORT + #define C_DLLEXPORT extern "C" DLLEXPORT + + // ***** AMXX stuff ***** + + // module interface version was 1 +@@ -61,17 +66,17 @@ struct amxx_module_info_s + + // *** Small stuff *** + // The next section is copied from the amx.h file + // Copyright (c) ITB CompuPhase, 1997-2005 + + #if defined HAVE_STDINT_H + #include + #else +- #if defined __LCC__ || defined __DMC__ || defined LINUX ++ #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__ + #if defined HAVE_INTTYPES_H + #include + #else + #include + #endif + #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L + /* The ISO C99 defines the int16_t and int_32t types. If the compiler got + * here, these types are probably undefined. +@@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t + + #if defined __GNUC__ + #define PACKED __attribute__((packed)) + #else + #define PACKED + #endif + + #if !defined AMX_NO_ALIGN +- #if defined LINUX || defined __FreeBSD__ ++ #if defined LINUX || defined __FreeBSD__ || defined __APPLE__ + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #elif defined MACOS && defined __MWERKS__ + #pragma options align=mac68k + #else + #pragma pack(push) + #pragma pack(1) /* structures must be packed (byte-aligned) */ + #if defined __TURBOC__ + #pragma option -a- /* "pack" pragma for older Borland compilers */ +@@ -390,28 +395,28 @@ enum { + AMX_ERR_INIT, /* AMX not initialized (or doubly initialized) */ + AMX_ERR_USERDATA, /* unable to set user data field (table full) */ + AMX_ERR_INIT_JIT, /* cannot initialize the JIT */ + AMX_ERR_PARAMS, /* parameter error */ + AMX_ERR_DOMAIN, /* domain error, expression result does not fit in range */ + }; + + #if !defined AMX_NO_ALIGN +- #if defined __linux__ ++ #if defined(__linux__) || defined(__APPLE__) + #pragma pack() /* reset default packing */ + #else + #pragma pack(pop) /* reset previous packing */ + #endif + #endif + + + // ***** declare functions ***** + + #ifdef USE_METAMOD +-void UTIL_LogPrintf( char *fmt, ... ); ++void UTIL_LogPrintf( const char *fmt, ... ); + void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage); + short FixedSigned16( float value, float scale ); + unsigned short FixedUnsigned16( float value, float scale ); + + #ifdef FN_META_QUERY + void FN_META_QUERY(void); + #endif // FN_META_QUERY + +@@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict + + #ifdef FN_AllowLagCompensation_Post + int FN_AllowLagCompensation_Post(void); + #endif // FN_AllowLagCompensation_Post + + + + #ifdef FN_PrecacheModel +-int FN_PrecacheModel(char *s); ++int FN_PrecacheModel(const char *s); + #endif // FN_PrecacheModel + + #ifdef FN_PrecacheSound +-int FN_PrecacheSound(char *s); ++int FN_PrecacheSound(const char *s); + #endif // FN_PrecacheSound + + #ifdef FN_SetModel + void FN_SetModel(edict_t *e, const char *m); + #endif // FN_SetModel + + #ifdef FN_ModelIndex + int FN_ModelIndex(const char *m); +@@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m); + int FN_ModelFrames(int modelIndex); + #endif // FN_ModelFrames + + #ifdef FN_SetSize + void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize + + #ifdef FN_ChangeLevel +-void FN_ChangeLevel(char *s1, char *s2); ++void FN_ChangeLevel(const char *s1, const char *s2); + #endif // FN_ChangeLevel + + #ifdef FN_GetSpawnParms + void FN_GetSpawnParms(edict_t *ent); + #endif // FN_GetSpawnParms + + #ifdef FN_SaveSpawnParms + void FN_SaveSpawnParms(edict_t *ent); +@@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien + int FN_NumberOfEntities(void); + #endif // FN_NumberOfEntities + + #ifdef FN_GetInfoKeyBuffer + char *FN_GetInfoKeyBuffer(edict_t *e); + #endif // FN_GetInfoKeyBuffer + + #ifdef FN_InfoKeyValue +-char *FN_InfoKeyValue(char *infobuffer, char *key); ++char *FN_InfoKeyValue(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue + + #ifdef FN_SetKeyValue +-void FN_SetKeyValue(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue + + #ifdef FN_SetClientKeyValue +-void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue + + #ifdef FN_IsMapValid +-int FN_IsMapValid(char *filename); ++int FN_IsMapValid(const char *filename); + #endif // FN_IsMapValid + + #ifdef FN_StaticDecal + void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal + + #ifdef FN_PrecacheGeneric +-int FN_PrecacheGeneric(char *s); ++int FN_PrecacheGeneric(const char *s); + #endif // FN_PrecacheGeneric + + #ifdef FN_GetPlayerUserId + int FN_GetPlayerUserId(edict_t *e ); + #endif // FN_GetPlayerUserId + + #ifdef FN_BuildSoundMsg + void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t * + #endif // FN_GetPlayerAuthId + + + + + + + #ifdef FN_PrecacheModel_Post +-int FN_PrecacheModel_Post(char *s); ++int FN_PrecacheModel_Post(const char *s); + #endif // FN_PrecacheModel_Post + + #ifdef FN_PrecacheSound_Post +-int FN_PrecacheSound_Post(char *s); ++int FN_PrecacheSound_Post(const char *s); + #endif // FN_PrecacheSound_Post + + #ifdef FN_SetModel_Post + void FN_SetModel_Post(edict_t *e, const char *m); + #endif // FN_SetModel_Post + + #ifdef FN_ModelIndex_Post + int FN_ModelIndex_Post(const char *m); +@@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m); + int FN_ModelFrames_Post(int modelIndex); + #endif // FN_ModelFrames_Post + + #ifdef FN_SetSize_Post + void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax); + #endif // FN_SetSize_Post + + #ifdef FN_ChangeLevel_Post +-void FN_ChangeLevel_Post(char *s1, char *s2); ++void FN_ChangeLevel_Post(const char *s1, const char *s2); + #endif // FN_ChangeLevel_Post + + #ifdef FN_GetSpawnParms_Post + void FN_GetSpawnParms_Post(edict_t *ent); + #endif // FN_GetSpawnParms_Post + + #ifdef FN_SaveSpawnParms_Post + void FN_SaveSpawnParms_Post(edict_t *ent); +@@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake + int FN_NumberOfEntities_Post(void); + #endif // FN_NumberOfEntities_Post + + #ifdef FN_GetInfoKeyBuffer_Post + char *FN_GetInfoKeyBuffer_Post(edict_t *e); + #endif // FN_GetInfoKeyBuffer_Post + + #ifdef FN_InfoKeyValue_Post +-char *FN_InfoKeyValue_Post(char *infobuffer, char *key); ++char *FN_InfoKeyValue_Post(char *infobuffer, const char *key); + #endif // FN_InfoKeyValue_Post + + #ifdef FN_SetKeyValue_Post +-void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value); ++void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value); + #endif // FN_SetKeyValue_Post + + #ifdef FN_SetClientKeyValue_Post +-void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value); ++void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value); + #endif // FN_SetClientKeyValue_Post + + #ifdef FN_IsMapValid_Post +-int FN_IsMapValid_Post(char *filename); ++int FN_IsMapValid_Post(const char *filename); + #endif // FN_IsMapValid_Post + + #ifdef FN_StaticDecal_Post + void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex); + #endif // FN_StaticDecal_Post + + #ifdef FN_PrecacheGeneric_Post +-int FN_PrecacheGeneric_Post(char *s); ++int FN_PrecacheGeneric_Post(const char *s); + #endif // FN_PrecacheGeneric_Post + + #ifdef FN_GetPlayerUserId_Post + int FN_GetPlayerUserId_Post(edict_t *e ); + #endif // FN_GetPlayerUserId_Post + + #ifdef FN_BuildSoundMsg_Post + void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); +@@ -2111,17 +2116,17 @@ enum LibType + + typedef void (*AUTHORIZEFUNC)(int player, const char *authstring); + + typedef int (*PFN_ADD_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef int (*PFN_ADD_NEW_NATIVES) (const AMX_NATIVE_INFO * /*list*/); + typedef char * (*PFN_BUILD_PATHNAME) (const char * /*format*/, ...); + typedef char * (*PFN_BUILD_PATHNAME_R) (char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...); + typedef cell * (*PFN_GET_AMXADDR) (AMX * /*amx*/, cell /*offset*/); +-typedef void (*PFN_PRINT_SRVCONSOLE) (char * /*format*/, ...); ++typedef void (*PFN_PRINT_SRVCONSOLE) (const char * /*format*/, ...); + typedef const char * (*PFN_GET_MODNAME) (void); + typedef const char * (*PFN_GET_AMXSCRIPTNAME) (int /*id*/); + typedef AMX * (*PFN_GET_AMXSCRIPT) (int /*id*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYAMX) (const AMX * /*amx*/); + typedef int (*PFN_FIND_AMXSCRIPT_BYNAME) (const char * /*name*/); + typedef int (*PFN_SET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */); + typedef char * (*PFN_GET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/); + typedef int (*PFN_GET_AMXSTRINGLEN) (const cell *ptr); +@@ -2170,18 +2175,18 @@ typedef void * (*PFN_ALLOCATOR) (co + typedef void * (*PFN_REALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ ); + typedef void (*PFN_DEALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, + const unsigned int /*type*/, const void* /*addr*/ ); + #endif + typedef int (*PFN_AMX_EXEC) (AMX* /*amx*/, cell* /*return val*/, int /*index*/); + typedef int (*PFN_AMX_EXECV) (AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/); + typedef int (*PFN_AMX_ALLOT) (AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/); +-typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); +-typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); ++typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, const char* /*func name*/, int* /*index*/); + typedef int (*PFN_LOAD_AMXSCRIPT) (AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */); + typedef int (*PFN_UNLOAD_AMXSCRIPT) (AMX* /*amx*/,void** /*code*/); + typedef cell (*PFN_REAL_TO_CELL) (REAL /*x*/); + typedef REAL (*PFN_CELL_TO_REAL) (cell /*x*/); + typedef int (*PFN_REGISTER_SPFORWARD) (AMX * /*amx*/, int /*func*/, ... /*params*/); + typedef int (*PFN_REGISTER_SPFORWARD_BYNAME) (AMX * /*amx*/, const char * /*funcName*/, ... /*params*/); + typedef void (*PFN_UNREGISTER_SPFORWARD) (int /*id*/); + typedef void (*PFN_MERGEDEFINITION_FILE) (const char * /*filename*/); +diff --git a/installer/amxmodx-installer.nsi b/installer/amxmodx-installer.nsi +--- a/installer/amxmodx-installer.nsi ++++ b/installer/amxmodx-installer.nsi +@@ -1,13 +1,13 @@ + ;(C)2004 AMX Mod X Development Team + ; Licensed under the GNU General Public License + ; Originally written by -=HaXoMaTiC=- + !define PRODUCT_NAME "AMX Mod X Installer" +-!define PRODUCT_VERSION "1.8.1" ++!define PRODUCT_VERSION "1.8.2" + !define PRODUCT_PUBLISHER "AMX Mod X Dev Team" + !define PRODUCT_WEB_SITE "http://www.amxmodx.org/" + !define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\Installer.exe" + !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" + !define PRODUCT_UNINST_ROOT_KEY "HKLM" + !define PRODUCT_STARTMENU_REGVAL "NSIS:StartMenuDir" + + !include "MUI.nsh" +@@ -144,39 +144,51 @@ Section "MainSection" SEC01 + File "installer\files\base\addons\amxmodx\data\lang\statscfg.txt" + File "installer\files\base\addons\amxmodx\data\lang\statsx.txt" + File "installer\files\base\addons\amxmodx\data\lang\stats_dod.txt" + File "installer\files\base\addons\amxmodx\data\lang\telemenu.txt" + File "installer\files\base\addons\amxmodx\data\lang\time.txt" + File "installer\files\base\addons\amxmodx\data\lang\timeleft.txt" + SetOutPath "$INSTDIR\files\base\dlls" + File "installer\files\base\addons\amxmodx\dlls\amxmodx_mm.dll" ++ File "installer\files\base\addons\amxmodx\dlls\amxmodx_mm.dylib" + File "installer\files\base\addons\amxmodx\dlls\amxmodx_mm_i386.so" + File "installer\files\base\addons\amxmodx\dlls\metamod.dll" ++ File "installer\files\base\addons\amxmodx\dlls\metamod.dylib" + File "installer\files\base\addons\amxmodx\dlls\metamod_i386.so" + SetOutPath "$INSTDIR\files\base\modules" + File "installer\files\base\addons\amxmodx\modules\nvault_amxx.dll" ++ File "installer\files\base\addons\amxmodx\modules\nvault_amxx.dylib" + File "installer\files\base\addons\amxmodx\modules\nvault_amxx_i386.so" + File "installer\files\base\addons\amxmodx\modules\engine_amxx.dll" ++ File "installer\files\base\addons\amxmodx\modules\engine_amxx.dylib" + File "installer\files\base\addons\amxmodx\modules\engine_amxx_i386.so" + File "installer\files\base\addons\amxmodx\modules\fakemeta_amxx.dll" ++ File "installer\files\base\addons\amxmodx\modules\fakemeta_amxx.dylib" + File "installer\files\base\addons\amxmodx\modules\fakemeta_amxx_i386.so" + File "installer\files\base\addons\amxmodx\modules\fun_amxx.dll" ++ File "installer\files\base\addons\amxmodx\modules\fun_amxx.dylib" + File "installer\files\base\addons\amxmodx\modules\fun_amxx_i386.so" + File "installer\files\base\addons\amxmodx\modules\geoip_amxx.dll" ++ File "installer\files\base\addons\amxmodx\modules\geoip_amxx.dylib" + File "installer\files\base\addons\amxmodx\modules\geoip_amxx_i386.so" + File "installer\files\base\addons\amxmodx\modules\sqlite_amxx.dll" ++ File "installer\files\base\addons\amxmodx\modules\sqlite_amxx.dylib" + File "installer\files\base\addons\amxmodx\modules\sqlite_amxx_i386.so" + File "installer\files\base\addons\amxmodx\modules\mysql_amxx.dll" ++ File "installer\files\base\addons\amxmodx\modules\mysql_amxx.dylib" + File "installer\files\base\addons\amxmodx\modules\mysql_amxx_i386.so" + File "installer\files\base\addons\amxmodx\modules\regex_amxx.dll" ++ File "installer\files\base\addons\amxmodx\modules\regex_amxx.dylib" + File "installer\files\base\addons\amxmodx\modules\regex_amxx_i386.so" + File "installer\files\base\addons\amxmodx\modules\sockets_amxx.dll" ++ File "installer\files\base\addons\amxmodx\modules\sockets_amxx.dylib" + File "installer\files\base\addons\amxmodx\modules\sockets_amxx_i386.so" + File "installer\files\base\addons\amxmodx\modules\hamsandwich_amxx.dll" ++ File "installer\files\base\addons\amxmodx\modules\hamsandwich_amxx.dylib" + File "installer\files\base\addons\amxmodx\modules\hamsandwich_amxx_i386.so" + SetOutPath "$INSTDIR\files\base\plugins" + File "installer\files\base\addons\amxmodx\plugins\admin.amxx" + File "installer\files\base\addons\amxmodx\plugins\adminchat.amxx" + File "installer\files\base\addons\amxmodx\plugins\admincmd.amxx" + File "installer\files\base\addons\amxmodx\plugins\adminhelp.amxx" + File "installer\files\base\addons\amxmodx\plugins\adminslots.amxx" + File "installer\files\base\addons\amxmodx\plugins\adminvote.amxx" +@@ -202,17 +214,19 @@ Section "MainSection" SEC01 + File "installer\files\base\addons\amxmodx\scripting\adminchat.sma" + File "installer\files\base\addons\amxmodx\scripting\admincmd.sma" + File "installer\files\base\addons\amxmodx\scripting\adminhelp.sma" + File "installer\files\base\addons\amxmodx\scripting\adminslots.sma" + File "installer\files\base\addons\amxmodx\scripting\adminvote.sma" + File "installer\files\base\addons\amxmodx\scripting\amxxpc" + File "installer\files\base\addons\amxmodx\scripting\amxxpc.exe" + File "installer\files\base\addons\amxmodx\scripting\amxxpc32.dll" ++ File "installer\files\base\addons\amxmodx\scripting\amxxpc32.dylib" + File "installer\files\base\addons\amxmodx\scripting\amxxpc32.so" ++ File "installer\files\base\addons\amxmodx\scripting\amxxpc_osx" + File "installer\files\base\addons\amxmodx\scripting\antiflood.sma" + File "installer\files\base\addons\amxmodx\scripting\cmdmenu.sma" + File "installer\files\base\addons\amxmodx\scripting\compile.exe" + File "installer\files\base\addons\amxmodx\scripting\compile.sh" + File "installer\files\base\addons\amxmodx\scripting\dlsym" + File "installer\files\base\addons\amxmodx\scripting\dlsym64" + File "installer\files\base\addons\amxmodx\scripting\imessage.sma" + SetOutPath "$INSTDIR\files\base\scripting\include" +@@ -327,18 +341,20 @@ Section "MainSection" SEC01 + File "installer\files\cstrike\addons\amxmodx\configs\modules.ini" + File "installer\files\cstrike\addons\amxmodx\configs\plugins.ini" + File "installer\files\cstrike\addons\amxmodx\configs\stats.ini" + SetOutPath "$INSTDIR\files\cstrike\data" + File "installer\files\cstrike\addons\amxmodx\data\csstats.amxx" + File "installer\files\cstrike\addons\amxmodx\data\WinCSX.exe" + SetOutPath "$INSTDIR\files\cstrike\modules" + File "installer\files\cstrike\addons\amxmodx\modules\cstrike_amxx.dll" ++ File "installer\files\cstrike\addons\amxmodx\modules\cstrike_amxx.dylib" + File "installer\files\cstrike\addons\amxmodx\modules\cstrike_amxx_i386.so" + File "installer\files\cstrike\addons\amxmodx\modules\csx_amxx.dll" ++ File "installer\files\cstrike\addons\amxmodx\modules\csx_amxx.dylib" + File "installer\files\cstrike\addons\amxmodx\modules\csx_amxx_i386.so" + SetOutPath "$INSTDIR\files\cstrike\plugins" + File "installer\files\cstrike\addons\amxmodx\plugins\miscstats.amxx" + File "installer\files\cstrike\addons\amxmodx\plugins\restmenu.amxx" + File "installer\files\cstrike\addons\amxmodx\plugins\statsx.amxx" + File "installer\files\cstrike\addons\amxmodx\plugins\stats_logging.amxx" + SetOutPath "$INSTDIR\files\cstrike\scripting" + File "installer\files\cstrike\addons\amxmodx\scripting\csstats.sma" +@@ -351,18 +367,20 @@ Section "MainSection" SEC01 + File "installer\files\dod\addons\amxmodx\configs\cvars.ini" + File "installer\files\dod\addons\amxmodx\configs\maps.ini" + File "installer\files\dod\addons\amxmodx\configs\modules.ini" + File "installer\files\dod\addons\amxmodx\configs\plugins.ini" + SetOutPath "$INSTDIR\files\dod\data" + File "installer\files\dod\addons\amxmodx\data\dodstats.amxx" + SetOutPath "$INSTDIR\files\dod\modules" + File "installer\files\dod\addons\amxmodx\modules\dodfun_amxx.dll" ++ File "installer\files\dod\addons\amxmodx\modules\dodfun_amxx.dylib" + File "installer\files\dod\addons\amxmodx\modules\dodfun_amxx_i386.so" + File "installer\files\dod\addons\amxmodx\modules\dodx_amxx.dll" ++ File "installer\files\dod\addons\amxmodx\modules\dodx_amxx.dylib" + File "installer\files\dod\addons\amxmodx\modules\dodx_amxx_i386.so" + SetOutPath "$INSTDIR\files\dod\plugins" + File "installer\files\dod\addons\amxmodx\plugins\plmenu.amxx" + File "installer\files\dod\addons\amxmodx\plugins\stats.amxx" + File "installer\files\dod\addons\amxmodx\plugins\statssounds.amxx" + File "installer\files\dod\addons\amxmodx\plugins\stats_logging.amxx" + SetOutPath "$INSTDIR\files\dod\scripting" + File "installer\files\dod\addons\amxmodx\scripting\dodstats.sma" +@@ -410,16 +428,17 @@ Section "MainSection" SEC01 + File "installer\files\tfc\addons\amxmodx\configs\cvars.ini" + File "installer\files\tfc\addons\amxmodx\configs\maps.ini" + File "installer\files\tfc\addons\amxmodx\configs\modules.ini" + File "installer\files\tfc\addons\amxmodx\configs\plugins.ini" + SetOutPath "$INSTDIR\files\tfc\data" + File "installer\files\tfc\addons\amxmodx\data\tfcstats.amxx" + SetOutPath "$INSTDIR\files\tfc\modules" + File "installer\files\tfc\addons\amxmodx\modules\tfcx_amxx.dll" ++ File "installer\files\tfc\addons\amxmodx\modules\tfcx_amxx.dylib" + File "installer\files\tfc\addons\amxmodx\modules\tfcx_amxx_i386.so" + SetOutPath "$INSTDIR\files\tfc\plugins" + File "installer\files\tfc\addons\amxmodx\plugins\plmenu.amxx" + File "installer\files\tfc\addons\amxmodx\plugins\stats.amxx" + File "installer\files\tfc\addons\amxmodx\plugins\statssounds.amxx" + File "installer\files\tfc\addons\amxmodx\plugins\stats_logging.amxx" + SetOutPath "$INSTDIR\files\tfc\scripting" + File "installer\files\tfc\addons\amxmodx\scripting\plmenu.sma" +@@ -522,16 +541,17 @@ Section Uninstall + Delete "$INSTDIR\files\tfc\scripting\statssounds.sma" + Delete "$INSTDIR\files\tfc\scripting\stats.sma" + Delete "$INSTDIR\files\tfc\scripting\plmenu.sma" + Delete "$INSTDIR\files\tfc\plugins\stats_logging.amxx" + Delete "$INSTDIR\files\tfc\plugins\statssounds.amxx" + Delete "$INSTDIR\files\tfc\plugins\stats.amxx" + Delete "$INSTDIR\files\tfc\plugins\plmenu.amxx" + Delete "$INSTDIR\files\tfc\modules\tfcx_amxx_i386.so" ++ Delete "$INSTDIR\files\tfc\modules\tfcx_amxx.dylib" + Delete "$INSTDIR\files\tfc\modules\tfcx_amxx.dll" + Delete "$INSTDIR\files\tfc\data\tfcstats.amxx" + Delete "$INSTDIR\files\tfc\configs\plugins.ini" + Delete "$INSTDIR\files\tfc\configs\modules.ini" + Delete "$INSTDIR\files\tfc\configs\maps.ini" + Delete "$INSTDIR\files\tfc\configs\cvars.ini" + Delete "$INSTDIR\files\tfc\configs\core.ini" + Delete "$INSTDIR\files\ns\scripting\unstuck.sma" +@@ -562,18 +582,20 @@ Section Uninstall + Delete "$INSTDIR\files\dod\scripting\stats.sma" + Delete "$INSTDIR\files\dod\scripting\plmenu.sma" + Delete "$INSTDIR\files\dod\scripting\dodstats.sma" + Delete "$INSTDIR\files\dod\plugins\stats_logging.amxx" + Delete "$INSTDIR\files\dod\plugins\statssounds.amxx" + Delete "$INSTDIR\files\dod\plugins\stats.amxx" + Delete "$INSTDIR\files\dod\plugins\plmenu.amxx" + Delete "$INSTDIR\files\dod\modules\dodx_amxx_i386.so" ++ Delete "$INSTDIR\files\dod\modules\dodx_amxx.dylib" + Delete "$INSTDIR\files\dod\modules\dodx_amxx.dll" + Delete "$INSTDIR\files\dod\modules\dodfun_amxx_i386.so" ++ Delete "$INSTDIR\files\dod\modules\dodfun_amxx.dylib" + Delete "$INSTDIR\files\dod\modules\dodfun_amxx.dll" + Delete "$INSTDIR\files\dod\data\dodstats.amxx" + Delete "$INSTDIR\files\dod\configs\plugins.ini" + Delete "$INSTDIR\files\dod\configs\modules.ini" + Delete "$INSTDIR\files\dod\configs\maps.ini" + Delete "$INSTDIR\files\dod\configs\cvars.ini" + Delete "$INSTDIR\files\dod\configs\core.ini" + Delete "$INSTDIR\files\cstrike\scripting\stats_logging.sma" +@@ -581,21 +603,23 @@ Section Uninstall + Delete "$INSTDIR\files\cstrike\scripting\restmenu.sma" + Delete "$INSTDIR\files\cstrike\scripting\miscstats.sma" + Delete "$INSTDIR\files\cstrike\scripting\csstats.sma" + Delete "$INSTDIR\files\cstrike\plugins\stats_logging.amxx" + Delete "$INSTDIR\files\cstrike\plugins\statsx.amxx" + Delete "$INSTDIR\files\cstrike\plugins\restmenu.amxx" + Delete "$INSTDIR\files\cstrike\plugins\miscstats.amxx" + Delete "$INSTDIR\files\cstrike\modules\csx_amxx_i386.so" ++ Delete "$INSTDIR\files\cstrike\modules\csx_amxx.dylib" + Delete "$INSTDIR\files\cstrike\modules\csx_amxx.dll" + Delete "$INSTDIR\files\cstrike\modules\cstrike_amxx_i386.so" ++ Delete "$INSTDIR\files\cstrike\modules\cstrike_amxx.dylib" + Delete "$INSTDIR\files\cstrike\modules\cstrike_amxx.dll" + Delete "$INSTDIR\files\cstrike\data\csstats.amxx" +- Delete "$INSTDIR\files\cstrike\data\WinCSX.amxx" ++ Delete "$INSTDIR\files\cstrike\data\WinCSX.exe" + Delete "$INSTDIR\files\cstrike\configs\stats.ini" + Delete "$INSTDIR\files\cstrike\configs\plugins.ini" + Delete "$INSTDIR\files\cstrike\configs\modules.ini" + Delete "$INSTDIR\files\cstrike\configs\maps.ini" + Delete "$INSTDIR\files\cstrike\configs\cvars.ini" + Delete "$INSTDIR\files\cstrike\configs\core.ini" + Delete "$INSTDIR\files\cstrike\configs\cmds.ini" + Delete "$INSTDIR\files\cstrike\configs\amxx.cfg" +@@ -734,38 +758,50 @@ Section Uninstall + Delete "$INSTDIR\files\base\plugins\admin_sql.amxx" + Delete "$INSTDIR\files\base\plugins\adminvote.amxx" + Delete "$INSTDIR\files\base\plugins\adminslots.amxx" + Delete "$INSTDIR\files\base\plugins\adminhelp.amxx" + Delete "$INSTDIR\files\base\plugins\admincmd.amxx" + Delete "$INSTDIR\files\base\plugins\adminchat.amxx" + Delete "$INSTDIR\files\base\plugins\admin.amxx" + Delete "$INSTDIR\files\base\modules\nvault_amxx_i386.so" ++ Delete "$INSTDIR\files\base\modules\nvault_amxx.dylib" + Delete "$INSTDIR\files\base\modules\nvault_amxx.dll" + Delete "$INSTDIR\files\base\modules\sockets_amxx_i386.so" ++ Delete "$INSTDIR\files\base\modules\sockets_amxx.dylib" + Delete "$INSTDIR\files\base\modules\sockets_amxx.dll" + Delete "$INSTDIR\files\base\modules\regex_amxx_i386.so" ++ Delete "$INSTDIR\files\base\modules\regex_amxx.dylib" + Delete "$INSTDIR\files\base\modules\regex_amxx.dll" + Delete "$INSTDIR\files\base\modules\sqlite_amxx_i386.so" ++ Delete "$INSTDIR\files\base\modules\sqlite_amxx.dylib" + Delete "$INSTDIR\files\base\modules\sqlite_amxx.dll" + Delete "$INSTDIR\files\base\modules\mysql_amxx_i386.so" ++ Delete "$INSTDIR\files\base\modules\mysql_amxx.dylib" + Delete "$INSTDIR\files\base\modules\mysql_amxx.dll" + Delete "$INSTDIR\files\base\modules\geoip_amxx_i386.so" ++ Delete "$INSTDIR\files\base\modules\geoip_amxx.dylib" + Delete "$INSTDIR\files\base\modules\geoip_amxx.dll" + Delete "$INSTDIR\files\base\modules\fun_amxx_i386.so" ++ Delete "$INSTDIR\files\base\modules\fun_amxx.dylib" + Delete "$INSTDIR\files\base\modules\fun_amxx.dll" + Delete "$INSTDIR\files\base\modules\fakemeta_amxx_i386.so" ++ Delete "$INSTDIR\files\base\modules\fakemeta_amxx.dylib" + Delete "$INSTDIR\files\base\modules\fakemeta_amxx.dll" + Delete "$INSTDIR\files\base\modules\engine_amxx_i386.so" ++ Delete "$INSTDIR\files\base\modules\engine_amxx.dylib" + Delete "$INSTDIR\files\base\modules\engine_amxx.dll" + Delete "$INSTDIR\files\base\modules\hamsandwich_amxx_i386.so" ++ Delete "$INSTDIR\files\base\modules\hamsandwich_amxx.dylib" + Delete "$INSTDIR\files\base\modules\hamsandwich_amxx.dll" + Delete "$INSTDIR\files\base\dlls\metamod_i386.so" ++ Delete "$INSTDIR\files\base\dlls\metamod.dylib" + Delete "$INSTDIR\files\base\dlls\metamod.dll" + Delete "$INSTDIR\files\base\dlls\amxmodx_mm_i386.so" ++ Delete "$INSTDIR\files\base\dlls\amxmodx_mm.dylib" + Delete "$INSTDIR\files\base\dlls\amxmodx_mm.dll" + Delete "$INSTDIR\files\base\data\lang\timeleft.txt" + Delete "$INSTDIR\files\base\data\lang\time.txt" + Delete "$INSTDIR\files\base\data\lang\telemenu.txt" + Delete "$INSTDIR\files\base\data\lang\stats_dod.txt" + Delete "$INSTDIR\files\base\data\lang\statsx.txt" + Delete "$INSTDIR\files\base\data\lang\statscfg.txt" + Delete "$INSTDIR\files\base\data\lang\scrollmsg.txt" +diff --git a/installer/builder/Build.cs b/installer/builder/Build.cs +--- a/installer/builder/Build.cs ++++ b/installer/builder/Build.cs +@@ -12,31 +12,35 @@ namespace AMXXRelease + + public Build(Config cfg) + { + m_Mods = new ArrayList(); + m_Cfg = cfg; + + CoreMod core = new CoreMod(); + ModCstrike cstrike = new ModCstrike(); ++ ModDoD dod = new ModDoD(); ++ ModTFC tfc = new ModTFC(); + + m_Mods.Add(core); + m_Mods.Add(cstrike); ++ m_Mods.Add(dod); ++ m_Mods.Add(tfc); + +- ModDoD dod = new ModDoD(); +- ModEsf esf = new ModEsf(); +- ModNs ns = new ModNs(); +- ModTFC tfc = new ModTFC(); +- ModTs ts = new ModTs(); ++ // These mods don't have OS X builds ++ if (!Releaser.IsOSX) ++ { ++ ModEsf esf = new ModEsf(); ++ ModNs ns = new ModNs(); ++ ModTs ts = new ModTs(); + +- m_Mods.Add(dod); +- m_Mods.Add(esf); +- m_Mods.Add(ns); +- m_Mods.Add(tfc); +- m_Mods.Add(ts); ++ m_Mods.Add(esf); ++ m_Mods.Add(ns); ++ m_Mods.Add(ts); ++ } + } + + public virtual int GetMods() + { + return m_Mods.Count; + } + + public virtual AMod GetMod(int i) +diff --git a/installer/builder/CoreMod.cs b/installer/builder/CoreMod.cs +--- a/installer/builder/CoreMod.cs ++++ b/installer/builder/CoreMod.cs +@@ -26,24 +26,27 @@ namespace AMXXRelease + { + return null; + } + + //annoyingly complicated file exclusion filter + public override sealed bool ExcludeCopy(string file) + { + if ( ((file.IndexOf(".so")!=-1) || (ABuilder.GetFileName(file).CompareTo("amxxpc")==0)) +- && (Releaser.IsWindows) ) ++ && (Releaser.IsWindows || Releaser.IsOSX) ) ++ return true; ++ if ( ((file.IndexOf(".dylib")!=-1) || (ABuilder.GetFileName(file).CompareTo("amxxpc_osx")==0)) ++ && (!Releaser.IsOSX) ) + return true; + if ( (file.IndexOf(".sh")!=-1) && Releaser.IsWindows ) + return true; + if ( ((file.IndexOf(".exe")!=-1) || (file.IndexOf(".dll")!=-1)) + && (!Releaser.IsWindows) ) + return true; +- if ( (file.IndexOf("dlsym")!=-1) && Releaser.IsWindows ) ++ if ( (file.IndexOf("dlsym")!=-1) && (Releaser.IsWindows || Releaser.IsOSX) ) + return true; + if (ABuilder.GetFileName(file).CompareTo("svn_version.tpl") == 0) + { + return true; + } + + return base.ExcludeCopy(file); + } +diff --git a/installer/builder/LinuxBuilder.cs b/installer/builder/LinuxBuilder.cs +--- a/installer/builder/LinuxBuilder.cs ++++ b/installer/builder/LinuxBuilder.cs +@@ -34,17 +34,17 @@ namespace AMXXRelease + chmod.WorkingDirectory = dir; + chmod.Arguments = "-R 755 " + file_list; + chmod.UseShellExecute = false; + Process c = Process.Start(chmod); + c.WaitForExit(); + c.Close(); + + +- info.Arguments = "zcvf \"" + target + ".tar.gz\" " + file_list; ++ info.Arguments = "zcvf \"" + target + "-linux.tar.gz\" " + file_list; + info.UseShellExecute = false; + + Process p = Process.Start(info); + p.WaitForExit(); + p.Close(); + } + + public override void AmxxPc(string inpath, string args) +diff --git a/installer/builder/MacBuilder.cs b/installer/builder/MacBuilder.cs +new file mode 100644 +--- /dev/null ++++ b/installer/builder/MacBuilder.cs +@@ -0,0 +1,111 @@ ++using System; ++using System.Diagnostics; ++using System.IO; ++ ++namespace AMXXRelease ++{ ++ //Build process for Mac OS X ++ public class MacBuilder : ABuilder ++ { ++ private string m_AmxxPc; ++ ++ public override void OnBuild() ++ { ++ m_AmxxPc = PropSlashes(m_Cfg.GetSourceTree() + "/plugins/amxxpc_osx"); ++ } ++ ++ public override void CompressDir(string target, string dir) ++ { ++ ProcessStartInfo info = new ProcessStartInfo(); ++ ++ info.FileName = m_Cfg.CompressPath(); ++ info.WorkingDirectory = dir; ++ ++ string [] files = Directory.GetFiles(dir); ++ string file_list = ""; ++ for (int i=0; i + + + + + + + ++ + + + + + + + + ++ + + + +- +\ No newline at end of file ++ +diff --git a/installer/builder/builder.exe b/installer/builder/builder.exe +index 1dc67f9a7586e5ebd936faf88868984f37439f25..f9a44acd1c8e5fe1a5da4fc8feae9f05af6a1193 +GIT binary patch +literal 19968 +zc%1D#3vgUlb?3c(`}V)m?&@brw%5N{k*&4t_#?|U{z!5xuw}=RV>=j>)#^#wXthtg +zT{&`$gVQDXX;+}Kv +zeV>)q9~fGuovgF>-E;0a=bn4cx#ym{yV1TI?gt+LX!yQx0pJ{n*ABS+>omUOi@zL) +zr$XOca!%R%%_Tz<`BHk?GRLj#R63U}7R_>c#7J8+#dN-y?%h9_o-#*`Oe_{&E@d3( +z1K6whV4&D^oh|oOh$|6A2iPqYqgPtKPfP8nue!tb6P^)xdil7m<^SBL^Waw#%Goa$ +z^Qu~9k!Jy-S73{|uUeEF^uVJC@A1HyvN2o6=lWg{YuWAUZNCtGW5z03Igq-cj=a!4 +zm2^Aszl>!R%$(HqtdzBP9^J0FdR|yjo8IB2NsH$VX%{z;7VD}08tyTzzFA{mHeZCP +zQqHstBQshkIFf|AD)`}PoM?6#fFjh>&+YK|?SJ95NNvNZ!|ka~KePkukx&~Q+PL?#&NA{GopzxZ2GZj +z-oa#>T(Sm1mL&9ALN|KQLa|bYR-+3bU?wZHDBnhy@CMJg_(}2HV+_`Zmp~`vYtmaR~c#Mk-qsOV$Q>gGpE!o +zZ0pt*a;W~%rD|+%>D1vy;CM^iiqzq7n({zfgt~g0pRBQnW^F^>a3o;8TSe{|DTDJu +zWAqiuSg$O^=Bii7`Z`N#ixY*;j5XMOxuHGSzH_~ZH$s!+w#zo__h%_B$tY9QK>pvCwNr?gue=%FVxxl6XcfpiExobubartPa}8L2>5 +z9gQJvBJePK4fz6%M^b@Az^2{)%7qIT5`K?5C`b2#dctqL7Zo=f$&Hji)r5YER*nPr +z%^T3gz$5bp{9@o!^9D3AaBki}Pz*dbZ-C6Kn@xyX5$XQyZ!TPDOa(a(UTL6UuwFtA +zp9oV5wpYlT4eg0wJM3(Ab5B_j?*r)iQL9>&#v&!z&yD5w;-3QYFa~Z{=qYmv55@JRuyG+uWTJFUqDJvS} +z00R1>D;lkJ$o=SwCW(zQc7e5#vCTs4qixOhZuBrSr<}LN9yifKda&_GG^lUik6v%& +z{8239NlB7B#Tyq3z +z&$cb3J*#;p)_CHENY@IAgTTWY3&c)aW5xO#sSV>6!z1dx{Pu67mD_R6Tj3|DQix=m +z?H)7H(qo~ymW+j1R;&RxFvXoO5inP?w!VOgQK?707U)Li;2bq@3;RXZT}nYX!15^= +ztlKFrPGaC`!o(sTg$jX_al*S&w1l*Q*muGR2~84{5bFazud^^$h-}XZ8vBc}pTK<5 +zmZpwOJ^J=`w2OBQ&Z&|LO0RL^3QEhYv=^5OCW2xj>hQ62KNGUYQsI#GkZ=C^MEhHv +zJ0u*MigZ!27qTA5!9+L_nd{J0$j4~&D$kNN^^0Uc +zk(<)+8a^W&TW!BZZ2389`4WEfYMHfKD71pz+YoK%BkMfpnnn>ln2I=nFbM@tVgl4K +z3#n$Sn}sT)sqPA*Dd>b#EvHoy=Ejq>uOID;5v^|@VB^wWJp^1=Cq!_B_00*e(+K-G +z(nTjapOv^Y?PQd6ah$K6jFE|&X)kM@Kqh6QL19-7sJe(zZ9-++W~$2;A45+G(Tmrh +z3n_n?OGRxK0$E~!I7U>qS-4DwJVjGfAV?q8`ZZ2^iZ)&Qqms!AYluqlXft)|xZ6(M +zBoVT10l2Pmu8Xi?*(}e&Q#F-xRG-zWNn4#_)B8@Pr2OMjXlXeO*3+QqHVA@6Dn~q>?ZE5QlSE7@KTLAoE?^(+op2eAh7pT24PKhvg4a4=E7Q(=4KAOb`BI%eKBwbc +zQ!N&8-oRzRN;;?QyTB7jQ$u^syM#uuz9y=;w-IY;FNJ)mj{?4Q9qkA8WTPug00A!$ +z^a3FP+)9OfH&u=kL!1f)EylTr6L*^zlJlYN>jcJYyGGXr0k#3wCpF@% +z(qW11e{UL{*1Q?+)B-17;(!WLZJj8!adGV_Kxq4iv6N}2hjoS`#(Gqfn}HGs<{LVG +z@F4CG#cD?CnCe^tpQtLgGO3Gv%ktHeq?Ef4#NAs5tEK!DlL^ogg2nQrDPF +ztHNBENnfZiV^@UlL=BGR0u`PJ+m|%q1Yzx1i$_`C$rS61qs{a5F9<6NyF*T&Lt`??GX!95n8Xi^X5#sr0*mg${^&x1UNk$6pD*up-uOY&a~Ygq?J@lWrCLv^n3)T&-1iCzV%%C%`;t!v%21 +zZ@WjEe_wmln=zz9$kc2-;um{x0M4MlQdhJG1JR)M1Q}p%rEt+*BEp>`?$V)e{Vh3X +zp5n0(D;^TozoZ1uhP;d%8SRuStmhs7vyye~)oWsmC+nAX$a85gYkW->R=D+rUZR)_ +zhxTQ&)u5CAP+@+jIv2qO +zxleso+7&_{xcS5uY18dHJe}fPQFVu@M`!3}nysvKLY^Xcv_ +z#BY6E_ijT>C>5}%f_;AL$8*TkK*eQ;F0z^x4^+Pa`Q{Gs+$goV0;^eD=SxMZkvUXn +zt5W@N4pnWi8r7~~CDp`yD)Cvt8W=!Z)=@oYJ%B_ehOmB>^=H@>HK5LDuBLVCFR2^j +z4_7^vq4jSzbtGWvAxSMr>=MsB3$(|^qAvuzt;2yI(Wxi>9L`4uGKdxCB~Pu&!E +ze-xHC3yH1e?ytl0l3{5PH185&-eg1)SZy{oYHhT;F{{_^rZj7>)Aw6PoW5?|x$|USCm+*L#X_2~`M51S_BlnUzCfS6nHdTs2*&DRba?KQlEQyZS!qfyd-qiPkRo>+3$dVt#jvDSN{VyzJva@P7t +zwEFs<^x(hZ^sN`7?ml;xTCutL-hGWcd%R!9@Fz9&S+C!EH7c` +z>MlpGBitSqdVO2!6^5-=}%^_N# +zGaEWLt=mKxA!0KhOOybN^X*9@|cZFekXZm)lpApC~9@ +zU8;uR1hzVSPX89(yndl4c>>xuCSj^B- +zhH4V5kw-MbIQdwV2=5GBnFjGi+k$4uo3Ke%lzjS3-RZJt(1mhCVEz +zy$t<@gsx-gGZH$)(B~v{l%X&2d@b-UgwFf^3D1qM`(DBJMQjyVs7+$q&g~{{d$~Qt +zZ4O(Fxperre-hhIa{DB==eRx3?epAzU!(TBqVLdX@Gt%kC>s2X+go*NNu~l1>XQ}i +z>uK`LolQ;bjW-$kAiU&z6`|Ff@b82l`IcfVHPM$jX!&3G-jKg|It?F8`?dc>=ruW3 +zr@eu5-?hw@slojMf}&PJ=!}Hk%g|W~y`Q1SB=i77PfF;c44sqE6AV2gp)YDWu56aR +zz=Yd*K0lmh=vn2wM$qjN`i8a?q5CCd_!cNS6s{7`kF+)=2rolN54W!pGkgeVXoRO$+4fwDd;CoYQZT~PtKG2$aC)^n*6hgq70%EM +zXIBf&6rG^QBox!{Q<~v%2`$%kWg$E%p-!Y+1m`5QO@Ajs&q-*H{*bZ=UY5`hjxC1Q +zB{YnDnDaXXbd&ywvKZ-iaF3A`!C?m#I^LCXl}Uj4j+>&>_;S_Ww` +z2ISjia6m$2vt{s@gviz_;Mf`gk#$$XsD#M!=*qRO%r*$Fb!E0e*IHL*8|+=@%4~;M +z*SRuR!)xnYnXBQR^{&hgILpwFfh^wvk4cE^*#VDBNMYzn36bSH;OPwlBClj1$mh## +z@DW`>l}Eb-^cX|uH@ow#h3{>4=UWS}Zuau6@AmTD)$Qdw)9vLu+wJ9hvV!t_1?4v? +zC|7TBwO$K_E$)2l;h8P2l=bl97FWu8czKH}Wj%Cm_3|Cr>g6kJ_41XsdikEN;H%x{ +zp|P@#>7TAv)zq}E;zg0jR|s>0zdFk +z`#QG~&Fz1O`!8v9N`IgGKlQXh`hpN5e)`O<#_!@g{gsp|9AwNfrWbRWjJby~VwR6G +z=BwO(-0#Y7)k*$&zpK?j-E9TsOPY)E%DnW9^GAhz@4TO!r^zQTBPRspodhh$8{Gof +z2r0N4jv;Od%)mm}43q%+>;Jl831|Crkk +zApX7l%d={gRR&*Qu8t1wV3+c~e8&kgw +zcQgKO*q|=Ob{DsYxi!@1@O-{a{U)~WSBd6BY6;tqA^vW7nn%B*zK9zBE8;&0Zy?Q1 +z_?7wq&KUF+;ZIre$GFYFUnw2x4)~g~SN$=(4*!8>jwnl%jIvX?R(Y3_RZ7Yo%45ps +zl&>q_QeIYGSAMBnP@2@m>Tr)6bNz_mtsuTdN?Pe6}ZESUuZ4qN%Mu{U2dVE?pXWy@G; +zOTND1@w{agr;K75#*Omu{=w@FtCTm3aG;PakD1mKmf195gU~mdGp5T#(VMpnn)ZZL +zBGbPgNAsm}2}Ctd^XIZ<*quim`itcQWeaXFEED!+tW=UqZH_ynnqDQ=G1i7GKNeTGG@zC3_aMGjsg0M +zVsh^y;b959ASSFgPG+54BWmZG7_U5zWMYB}S=SomQ22y1pJ7q9% +z*t8~bdRJFM?zF~dC=LYup^`B;VH65|vqo+P6_@h>PXvdv`SNc1eR*D}Q^|YK7-h*w +zTO7?=qx)yd(=+9&Lw%NoaZ4iR5R;LI%)a6%*`{QWHEnhCXw&}Us4=^L3`S=11@g(( +zedg#)!FZdE$QZL|&wWRZ97MZkkzYP7ipjD3IPBadIS&+O#`8rG{K#UC0uRCAeDRuf +zHWm7NX4VFJOv@lTeD|8Y^yn*%(W8glI!Rt09opT)j}o;5*k*G!`_ypH*f{i;aDq|u +zW?V~Y|KJheAL?fhUJtTAXCHpvXjRCX>=wU-6PQ>&m+y2 +z!T>UOMLB}Vo4YM@iZj9fqA;+tVE|(Sa%dBFo-jYzcM9LMdBobqMjF5zg!?)>0`xy% +zj2gIEYFaow!IF_v=%3=Zuan!rFAby;A6 +z1qKxGorMy%8C*jV#=r#Fxf^kL9vg);lo6K(izx}tAxxBc7{_`ijo1;ypeI?vI7)(+ +zU05BF1fn1FNW;th67LvpLzI`pF&dQ=C#uaq#?l3kiCh+Q(Wu4TOR(Pq6WGhaB=%QU +z(5*y_3Dc}2X`g0km1{x06UT7oDVW8#iF3^|#!FKIh#bR_0{$!U=rs0baD?O`=Hy^i +z?Z`^g_>XL8A)T22I6?*NjsAYLKYjP54M*ftD26Dq9%0isjfo;GUi^Gj$T7$9O$uM3 +zDzRQ(=*>I|kq}aZAx1y0_2IoHVQWIhDUsP?-Z>yfOE2R%wGi`~0%|J577|m~o5Y^b +z3T3T2giIyY`n15782ZToKC57k#$e7_9M7<@7OR>m&nu1Il-QgK8<*0TuiZ4L~7dY +zlnR9hGOT?;rq?Xn1Xj7J_83}+_Bi?f7+lN!emDRbNliPa3bti_)D?Ke<2+Mk-xLXc +z$$TDq<`_qL3RYC#k8`NDT~1Er9vOD_Dr>&;O6ItvgpP~txT@4^tIu}{jurFempNmU +z`B=|01Xov=TZJ-0`D03)7%8_uj5P0|$k=oU2I(Ub^z$(Gu7ka}Z`Wc>cc51D>Fulv +zEtgosri+iQxzyS{`q8duT*8Z+qAcK{n&90#&3neil{n`3%<@nkXPm*fB3o>X={T<> +z@<=7l%q;H+sGs7}g0wJs2hy$*r{Xl{MuYPVr0m`ppY|jf7EE!LFLQ +z72c1y7KIkKKP+?CxKl5H?omBHtgu{n^9U27`TG;!-)!R-#zVbJTb=jk$d)%PpBd+=$5WY90E+ +z-m{}pzJO=(>8)($pRkA7o;{drj=1&768C(%2t`0hhb5PrAFjSMg~uX+GTJf6`(>=s +zE+K(IX?})l%9VBqNQ*VPbCsPI@sTq7i2c=4jYf|7xmK*t%UWTQV{=kuoBASq%j8{` +zwWFcKw3&uimYtm0(ZcBq7X-I6JeDmWLfC*rfBxC^jAdjUI$t7$>BHbD?B>_|s}U7^K!mQd?0>D~S%adNo&6 +z9i{ds`%s7E2A`gcsyYf#P@F%Y#*;xkpeAdRX_TP)0=%YRlRw~VimS-2#$$m{asw)W +zv&VyKAg!v&Xfmw_e8FTZPOhlQRxLoQ#i^350aP$q8z<2V-xOQkQ+ugA1M +zjBOtt98{R@$I^6|3)J1>ukOHKYd`yqEyw%XE}#6jSmuoN^32!sm2kJby7k+i%;9S} +za}DwJRg{qKHI`oQgD17u=#Ma21^Gwr;|283}6V~H}4s8H!sF8wKC`*0_ +zkV7fgS6tP^pY&PIbUjW{T*TsOfD^jGdbl)|vgXo=`Sx;2M5SjBe~@#6H6O>~r!46@ +zA&7MST)2`pMW%M8xmR{Rl3+Ew_wTJNZC>N9z6O*i&(Cw|)WnO9V+ex+a53R^suRp}= +FzX7h9Y19A! + +diff --git a/installer/builder/mac.info b/installer/builder/mac.info +new file mode 100644 +--- /dev/null ++++ b/installer/builder/mac.info +@@ -0,0 +1,6 @@ ++compress = /usr/bin/zip ++source = /Users/Scott/Code/hl/amxmodx-central ++makeopts = ++output = /Users/Scott/Code/hl/amxmodx-bin ++devenv = /usr/bin/make ++release = amxmodx-1.8.2 +diff --git a/plugins/amxxpc b/plugins/amxxpc +index 58ac0e05fb44e4d53a5f48da59912dda2021e3ac..5f060f06c09d685b7bbbb49046e556191cfa3d1c +GIT binary patch +literal 150762 +zc$~Do3t&{$wJDRoyjdriKl%^);_u1dNf!KJe~Z(sZ-aj` +zqwV-xI@V(OaJq%Y#d<3w?l&ciyD-|0zvGa{U$i*}{%W9m4UCPyc%&zyE@l{f%-SRB +zi~pw1fAVL5(^b)S{JEeIf1&yrP;VLGzZkRrrrL$~-c&pPhT4UTeJgKVzU0Q6MY+?Y +zJ%3uM$?HL$d>4LM@JoW<9q{`;{1Q#Lx4`dm_>F?!?eI&3-vszgHtD(^em{WU6!_g> +z_PHqnuS_!qHd?NYD0jmz1AaHc?>hLU!!HGXmzwpS$hjK!pKPW!GqsPth;}&FR`dCLW_pF0PJ-W6@S6xf2mHps?`pH|I~E~} +z_}?{V8fOvwPk>)C{9w9BzVW}?;CJf?cs8K;_C5#C3TKMe34X8tse7csuwgm=*FKM9x<5B-zO +z`ZBY=Q4;k9P~R5O-)D}0*sR}e=Es})#nArMP0@Co_i->gr_6ehw^&x0d8bvhUlp1h +zlfI|S=f9fxF{sbXAEZw)@k2Spd3h1>i{NLeS)XU(^D7hHIx|1btbfsj--hEy!2cWM +zpNxRl3;DSb{5faB``GLs2ZG%)b+En1tj{p%y9w%_kEqX(hW5V$`)5ZH{7XR!e`ofO +zGyDI<%>UZN|3_xtWA#mv8H +z!XIN9{116FX;^-``CMzZpBqs}`Vn;e{ixf2V5z!mMb+I4ezb78x?ovO?Y!m77c93_ +zRsHDxC5x+;tMitrRaMw{eyy+s^J^C@Tef5wr1#Y>S-t?$?OO~n7rD`FJI8R+rwX|mbGU_o;wNx)( +zu;9m#nZIx`7Qz25zQtgPer#E`KygRch^W#JXzUe4w@Jo|3X@Daln;_pMwx@7{$g +zQf~HCRV`ftyjrlVN?lR~G~J6&4=!C$wQzCu5-;_bsisW67m!@A^1cO2)rCtIhta-o +z-s1Zf)S8Vv;ci%PClp{OlXt@hPKg|N=x{?3gy-c8tL{VjxM;(aTLIv`^Oi3d(yD6l +zg1V}jd5ckc!dNc>q(=rYZ`rbW4_-+AMG5&qRn>yUzWYb$HOQ|K2OE(l;B_*NhQ$l# +zn?-5&60eu5ke_zJY~-eRSB${8l&Y!~_y04TLl#&27T<@kF5Yl5HJm^1{soKGd9_2^ +zUNE~bv-dAtjLXdAKS8{6g`i=Or6Kh1yim-BK}AG;ix;e1y5K%_!Tdq6`Gt38=TzN% +zLnM +z0aI{jk}w5lG#OKHwo@?$r!);ya2PW%1t&8TQ!pO6n1XXzfGIfHg_wc^UyLajtrASZ +zQLn%hob%b3g0Y*6DNN{mOu^Bw!4#Z;T1;;jHZ=+y(p8X;f$3h2DbU=6DLBE+n1Z9d +z5mPXxEtrC%{}`s=Fh7YY7_4V71;_Unn1a*tOH3iCcpg)5u3x|u9Ox~Wg5&%$rr!<4n{PV7{30 +zI3qR1n9rm<&P+`O=94LpGgO0aNHCuAI8!x9P|!(voUxjvn72?KXRc-?=1&e_9%ry- +zHPKIboXMJIqM!0Oqctr=Kjm>|Yn~+fDUUN;^9!P%@;K8q&lCNW#~H8LLiAG}XTD|| +z(NB4lfSNXnv+C7 +zz +zyso~j2}ZN1j-EKJP5uujWQ>E)VZxpMgT9_UQCKfQC(-^nXJ)kB-=6E(DSN7}0{pw9!IfaDBDt8i#a{~<7c#Es<1QyM6 +z3ORyCZ~$7{9oNZv*>Q-0Y$j0T;Dv;e3;MNO7` +zQ3b0X0-~m@eh7$4_3vZ7s-0&$ug`Wc$$v~8&9hznE@$FiW=m=F_o@z_9n0@=B_3hX +zDQ&an;4rg@{yCkqhy!yviGPJ|m?tE-TI;i`4lN)v30S48-?Q-SRAsAd4d+oX05b=- +z@nSbGNKkfFj7~hj_C9s`9BT()PG(POyJuEsh`z}7@w~wOP1+~%g5-bL9?I-MfCC6< +z&5q8H8!zdi(23}r)tM39IDx~I-2;&B9u1s0gph!mS)D*y&&SYJPH964^2|t5Q#>=0 +zw_$hn`<@x8+t58wuky@D+lJdysto+=+=f0%g#4AP$-o(7PGAtplQZQYNP!)u+{J1E +zuUdC33Wf@Nu1fO!uUg5cC-1;9JbzGU@ch&rIEv?W)ywPBJYT7vl!GvnY5slGM!m`3 +zMh(>O`FpovaJ~b_S7Ujcn890@*m0^CF*h`t62L)W;5cE$ILN4Y-R1eiBBAG_uZ=u?ZbPLoKP +zCHvcyre|&9IptW20ouuta*XD-fXQy{xQzjLrHLc4`?WoC``OrCC@M_{8B9@gsYPkR +z%?1tdlU~6JAwP4lz^YDSZ|uT+`#ERRvF1uiX+jh73Ko&TX=iOpQ=%B(p*#MJIOiYg +zYtFsOvU=4`fM`?q5c$_SZ0wx&zK#0fCRap1(M_+CRGnF9{DB-BcW8Z4>NQ$l +zbc^E09W@X@IlsB&Dhqe*L|pv`m8Lm>H?jxHFNrMA!}44zkBTh65z9w_bNSc685kHD +z&PP!0S%q9dX9OYY`4a0AP}hNQQY-YifG=`$3GjNQ6w&`bp+=NiBT8GsrM8IDhr*?D +zMCtr+X;eh%v~X#3L}^;MG$x|-8Ym6k3WT@tv9N@2;RJKQOX9aTBp_0#*S!5Y~Vq3Xvh28KY=NFks>zv-*|RGHdf3=r~7eE|Z$)SoH_` +zl-8@KV=JX~nq<~DM>kKiLIdsZ^2KWrou+j#C^XX-_iLZY!`i|~{h{_stJl_?2RIbL +zW2v>d($-vL1wqjl_hA(@?Q72K8=?A?S$(QG@09j;C-GodBgOv^hyxfRQzsFd8~u_Fh4dg#VY&41wN;)&>a&vbG5pp`L97SDnY&R~GkTN=o8E=zR>DnEzl=a^nBsnL3|jO!xTovDL>kr4{$VQlPY!or|5t<`E_F9_MK>l%+nsFU*V`eh +zd-&B_hYVU#3(9O#&sH3u=h+ay;{YF*8E2s%6c2dC0+0msbo{Wa9B3tbccAi9n*I%G +zu1eT}=f&*EcP*f+s?mgMSgusBc@Ux^#s3cERzDbRS2nMqCy0(7W@CAllh1G^cCfNI +zaN@4da8BYG7i`bRqPJA03 +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 +ztii3Uld_1v*db{5<%J*Al(FMX^C~S)I +z;yXk9A83u6r?*Futs;xYjy!dmY~qxsP8*4b*jrd&TmUenmv-0Ex&AEHjaz@pi*L}H +zz?G6THl>#r-eyTLK;#PmKq2m;Nc&kWgfp<(f(Jfp++-2r7&GZ^G-E5{yF!fms_wU>O9A)2z*J%?^rodbUuK*f$QT}uaNM!KK(+v;HJ|AIGI0)$3r#22GI~Fzb5zqW(3>0 +z4^K{Nf^$w&e>^v;3C=i86Oc4UCU+arfnqH!v)o8`Px0hrxl^pf6!R?UUK{r=V1&9Y}%2rt-y1zU@ +zL<)-!i>DeK>0sSgf`w%2aplV6g7Y-((9K|qX-?n!Wb@8A^FyFzOKcP5HTL?Bl|yM?~l0Irai&ILS* +ziOPB>5E=h5!75}`@f;WN65Lv-2wDTgio(zqYjOOJG2+Ccm@SPBe(*72SSSk37@v0U +zi&=hbaQDZ^T8A&6ydrbCm6eEHc~DtwP6g0X$fnJvF&EDb{zUXp|48K>Y^uQK$Faec +zADft%+aNPTHH7CqSZf~hAd|9j6R4Oy6uSdgR50D7PT(2ZeF^J_ICE4y%*0Wbh>hf` +z*r4@eQ+rWIvD?NT6xBZj`ago|(AGu?^v+;QD(JAbZnj{;Tte@akIeI4aXuDD3n`IT +zy16ew*;O<;@h=RIOK4lbMVl#hWm6lvW~tYw9K#!+LELy_z4{y(&mrmHHOAkjmZLYQ +zfnXWRW4Z1t!3J&mh42$oQ;xxUrpp_-;$*buARelUt64blIb1%fXB-76mw=H^Ydo}i +zmHSGI?@dH#8y?0%M;8RUc-7MhE$nKd^hbWX-|&5c%NP2+Q?1pHwk!T>yrWYlOP}C5 +zZm`NAmE!V$>KlWn#A~J{;5!7+$EEF#qhll*Nqst4f=%(*PTjzwaonEG!|$KOLBDvS +zdA8eap3NqhXR=9jMhg*q7T&D9c2A7BR@vpXScHT*h97-qL^o#gEC+ueIq{^j>w(cv +zogVOX*5AytlG%Q622Uz4c2;Wxc0JCj=g8`JSO%Vl%YmXpfM_eUJkPUIdv?-g +z$DU`{UOrWp_V&Eh54h0i;;2t^-3fG3pG(KIfzSR7K_`$~+N=zF!WI_~(M1bT>@Wry9^8LG*6u0K&E1Ni=7~-uftg +zxzzI?P-b2~h`4WvvNw2_SX^>+@hkZ9B%YJ3?3yYL?&!eI)7Nk#+pE0TRjr+|>#nQy +zRI8pRt4VlsCL~mo58}0?l!L(NByjx^UiXkI#YgxYSvu15#!&tg0)OV}!hFa&VgfWi +zdzkoBFqA(9z@Hi6Ye}wX*4-WeJ~@F)xd+Y-=hKx2@o7HJTnWtF@;~9ywlsWCu&h7; +zY`{bR8e&)%ZLn#(3yD!GagJdKoYF?Rb#kbR*6&657teFt7x3?Uz&7?r<;By)LiuL( +zMm+qRZSpS;=C#`}fO{A4Ep*<#QkKrKBRy{pldlX^e!#yplYg;D`%Q<4e`!Pcmj?X1 +zGt56nG}}*dHX3*r!MAG#-%3J!OaEhtZ#n27rU^g|y8zP)!8aRT8qs!VMDXnqpr8U) +z${*@SNw7o>bDF59}4rc6A~X-H6B`~&+!I;&@l=94gntOM`ei`~IMxFn_N3UTk& +zWmV(M)?Z5J^o%iRNfbZce8a}xp^&IFIzyFPz?1I>~;3gl!iXcVKH +z$9S$RG--J(|U +z@AKV640_!*lxnC^{4SU=FQVXU1|?vs((Oci;RVDuS%(ro@l8Q|2au=Bwk``1pE*eU +z1U%XMaKA}>2@vl>;uX}YH$dm$eK7ns8ZGyN(XJUb+6!-p(MoVMhpkJZ(Xxh(w&H@( +zXa;scr{FO#Fkd&Z`0i_!D +zp0*67?bJRo+B5quwnTRB9nMLjEe1!s5(CQVGCL{l4L0I)6+RycE*o93>Ib8v +zlue(<&^?%~KXC*ZiZ%g=JjwZ+3S%jNNNlNP^E!UkCW8mu@N457G +z54}GMeD&3h*zrSwic_yQs4+XQw8loX0wGS)I%52|&yl1w{oZVjuZp0@6u0_8gz|H< +zxcLAKSz)jv+VRFixF6&kg(pziG0>FWw$Xxk`6CvQez2CtT{2)ISutRC8zqdEQ@?90 +z(g{#vwE)={9PGhc^d;w!IIZI{vu73NU0SW%DMx@ngo(!HI1r-V&dl)Z9!Zmw&DV%K +zc1gSN-rFnq)}J8%NaEXA-2R#E&~feK7zCts*tN6J#wtO=)_R=KfR(9n8xU^fC$j;=W1kfr;RyYaiW_xQAhkY4#?|e@;^8 +z;?<4ovEQB8sX=1r+RsgD?}1K}u+v{6JCTsCf+27hCu2MgaiIOor1l`R9t~ohj6MDs +zYTZilDWOEiE90O&BFqkjMwkfg?@auQe;*E_H2Ezd>gwx<4KqkdXqY`_%b7R;ld09) +z?Z%|`&!E*5XrX5fBo5%+P_yB62vX0Jw4e=uKGpuoM5$Xlen(K}h +zuw72C#r?ADZFmLsD)D|%Ds55B-d#**2&;DEh3Qm?hm*5Ie315Q@86M#S0YmZNUrSv +zRN4GAZm2bp1_M9!RZ^NPhQBOy+TvJNa!bFdGI^by&v5Y{Iunnw@;JUQmS;Ixd2HhA +z+NXFoaEY5OiC3DoSm}_fg#hX=xL3kMR}Q_0Z-R&6D4E2UJNU!SuFM4d231!keKiZl +zA{0v8_QcbmASr4qJxn`pSkar62!nhe(JI??E4py0llkRq&eH1K{0vmE&r^Qd{nK~<9A!6wt(li#?4m6Z6QQXI{KrX&e?UK<1wtOITiG-pz^35! +z$AsYDP&;pQ&p?mn1xf%z{blil7P-5_!1pc!D^Y<8Kf{T5LwAg&S8Q-@Hq~Iumj&aiiSfa;rWHQ|Rvh<< +zg^5i$Xzt;I5yx5NzsBz(v4!)4_5plpqiO(1`^>ftzgSj;Mgt6|uzl@+jTr^zZ}mf{ +z(I=gO5faY=wVx{fWBs(HmPXsUlY;$_rF-SU@AVl*SH3;@C$c@5i;jnDto}n;I>g=y +zrlP+gj|GY_6vs=~|AiA$Aki5nl*Q|DSF?6$xn28fj6Ty2RwEwb7W}x7f1i2}z6w%+ +zuYzP~XKZS+c1CVduf4ZlwDC~bC0rx&$bwdWPX)J?|vC^`5 +zX<34_ELmEXCN0YZ)r@U?@8U^^Uii8kTns#uQjv<_eKbGz;H-f`p|49=^AXO)nm?k8 +z#Oe})p8{_}?~9j+_nDQ}Y`IzD*$$Rv=h=3aC37pwa&&4Z96Jh*M%l^vFyGmj+lC=8 +zZqs4z3jj^;%CK&Hzw?6kwH#ftdn!N(Y~KmPCT#1=bwt_ZTQT@ +zb3Z=Ui|4p^;rRjaT!POF#PehL{6q2lCO#L5XXpRIbC!6{#pheZb2C0Cisu*b`6}`J +zE5KuvSmv+|Brx~gbZ~1*?6(%zqO=i5( +zng`ujuhR5Gv!mbaSdSg=R9Yp3dbe5mpjr7qWM!UNIbc@yQYDP3_?xY?r|!~c-)O~f +z;8!)I`(o*s1n8^>Ug&WN^v(^wu&oO9)d~dTTUVR*K!4ABihfF1E*C7VO#ygLJcoW9 +zi3@^f|64>mFg?FV)S5B +zYw^D4biD6*Gu`)eDXp`wGq7Xx71T9B8X2ThTxy5%+1AMReP4sZam&c<_kK$P +z%O{HR^b)sIyuYg7BV~EMG~cGdSCM8)(4{rkMhz#ab%Ox2u%|xL>iI&QXO>v0#0DkP +z%@P}x$WU^dSt3(O6qHR1%<6JcJ)qAV!0KDg>JqcM5M%9` +z=SlF-D@`lUqd7on^{a-EE&sz93_c_Umx~v7({M-SU_U*(*tx_*`Z7s>*w9N7tQZ0J +zEU<{zu^ecZV*{N#@XoQJ&yE7eD&ssY*JKn*=?l_t;EbGnMU1q0il~l7ID7}4EX7uL +z$;megh^e?KE(h9o(AZ&y;gOlYSMk>YPQf3Ew}{hl`%A-uvWSA0@c7d!-X~7OgLaRB +zBHDRL*|ZWAgLoOdT;7R2*xpy@+&OR>T;!P5Q*Kb2o&trk6We5Y +z{-87+wul$QeyshAFT_{FQ}88}%eiZ_9;YJ~1acm_ +z9DmFjRyudY(gh=y&L6RK&WNS=jaYiGC*}-M|KpBw(?O-F8o#!H +z^S+%Jg0F-Y3NK_WxOKr#2SNa143hVr9U_b0M56aue=YK{q5RV#A0NtZ5cvc%AFMM` +z3hnRuzlS0`FZ6z_XnkFHKPs3%y!|YEb3J8f`zOwa+fNwY{t;|14Qb!>1(1~`)*Cw? +zqVO?%3pe=oz_9-Ku6?k5V90ns9USk!hPU60?H>uXAABQN_Zpsd^)vE(cZQ{pKI5-j_{Ja~p2>>4omQFo-mv +zlIC9VGAZo4z`3u&7Y+iSR^e-dPV9Xh)S>*mVq%DwiyXX;>TZ9Tl=57TRN%G2-L>ZX +zxu~sN^!jd&9i^_&f$vl}@bM9V&6nHtnGTlYB4ATPE;3>r_5a4F2A3KFrBTlrmxYXwROdcB42q`+HW8b%Z7W89&6#VQH@nvDXFAmelC +z_DU-5B6V8DasRez0fOErs{JjQ*VOGxv9ORP96adK-(qn0AIK8%ZXjxX{0_=1PYQK_ +zqr8c1>xPF@Vg88^h-`XL43)GUuZ`{61zr02Ju>^tm;b3cX$N&z2ZDjTuR1W}OY-&i +z9Ss5DH{jRz(69ZU-%%A!$<6Tm8qruwqu+xx{^oarMq1ux#Y0%}@^1%w_WjoMHt^e5 +zF7fTFKhvx0x#ANqC?v=FLi+~z3Fz&A3$X*L`d*^@689^FUQ)$BG +zq1TF2MMS)^pH|nNTz7^XD1c_z-1(B&zlc9C@>?LUwb^ip*JjgFmRTp}K86n4Vvd=! +z1T9wx49NcO8jlsL#IZq^ +z8ur?9L9b@4glR08CfHH1#hm{a30il!L+}Kc1GXp7SVa3*f$xL;AKV|n*k5K&ao^yZ +z<{>twxx_h%D+8+4TT^36heJ2rLZ49lw +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 +z1*UB6#EOrj>^)Yx{bc=s>#er0}z4W$Uya|Pw= +zk}sl7dP>nBCxzqW&qlDTONQS3*$9TYVgPCx2`fs#-sQB^x_n%v=UtIYO +z7VCjWztLiK4O^@(Sgg(qmucjF&aid5-Zp%lPB+)7eNe`x50$a0C}YzjWb7_pUct(j +za`0O6XM-@&h9@rFRq5p`m)Bjeeiw|ievf|jHS715)1mbX0;}~!)qPLfMVl$=<)Y_t1S?`p40!%hjA+;WUP3ppLRtTUL^BOCueF^APh-RMr9uhJ&ippCfHOi1 +zT#EMP8)yP>XKS+oVbTLy+W^a7D%O9o1ooDE!MZ8oDWds_9h{%4BtAW2etvl2{Nyhs +z9k3L2!1G=C!aWbM$s7g0jI>h1Z3_re%1eYOj}f9A9k!R(UU6}8R+?fZ+6@bd^gzo$ +zT#|~PUQZ&)4!$$EztT9@BJR_nw}nKPI1Rpei0UbT=gpC-$9@sj<9leRo*65M8)fQ4 +zq7Qfe|7mq|%|E6sv|>Tkfx-)|+myB--t~o+q-Oo=%rOPwYxUSj{JD0*H&AER&EH6!IftpUuT^Cc`z<~@j5(gqiSr**9a=-Y +zMUB=P+!mj?&4T;uU3o5&_dL5uVnvc9LRG56>t8v5TdcpW9=CaNV&Qqm1ElQLs2%v1 +zv)N1;9d_s79_TaIf)_t_Fkg5L?enp`-eO) +zv_`u{9gF8|Qh6Xb07}%`@0qhoy@kzL#Y_97qwVj9!v5URR+a~0zdV|)6JdYuXql}u +z!~W6HEKlWLr#LtPZ9P1O5PJ?q4t+*U`zJPOzn*nRdmviRb&jFEu$gfXAY7(Bl%V(& +z?V$q2HwySMBXHY?`1eQxp>sUw56xnDcAUS>7b9rAiZ#EC;(K?Td4g1Mt=C!2)^52R +zr7h3YP#Bh4r2Btmu6-L?X3PF}Y +z&9g7obd=x+dSxfC@2~F4U5{7ks5X;%ceBzrZ_B{l=*{>i%6KXGLdV7ZpQ7E|_a=|q +z1igUm&syQ1^;U5D(tUx3XzmLb-VcHM)l7ZT3I?IEfR`SxHsoa~2h%H0tQy0PT<<-> +zi%xRa8Uo;WR+n#9UTg={q;#^5al27qHb37F4(jBca^Pib$T91;$e`Cd|vt{D?MTW+3^4RBiyw)y|k|} +zi5DUHk61k?)k*C0#CD=aege>i#UgD+QUn`XtW*8Re7m^sFa+Jtg<_F4C-9P^In5Bl +zzROD;pk{b1&vei^HT}(6nAEN{1+@4<3#`G(xeZ^&^y2+Ii|#wld@UaD;re@N_Gvmx +z?Q1%U@$YWbALib7f$(h>^?I6kgrl#N*iL)^beON3scU3j-@Qkk0Fk~KKYI^z-@70W +z>#WH0!$7j9{_v_TDEw=&rw|+V(^Ue$HSIVWE7}NStl2{X=xai!X%Tyi#JX4lhOj4S +z^pbV5R^Kf(jy7P*>bu#Lp6D+6lhfSFyl?VS7*}2^0q$?^krk9+qZt_q(=Zm8{fZTk +zNL-7;fC_0nf`pM8o~^UE&+ZOSf&1$EC^R>!SJZscq$}-0?eJ-zM5_3$?x8Hzw3} +z!iuY5aC1P%v&^>_&$%CJS@|Tl74y+{h|_ +z>FEL%)Jg33Dh>QRkK4i>+dyo9te*o}o5C#kWtau8QQOMrx#Jb?+ag%7We5vI+sly! +zFYwRju)?2P +zIq>Npi9vjZTCy9T*7>R$64f5}q2>v~D0sjE+XTto`cF{6XHt)xGp@@5Ww!w&Vd_55- +zCO`L)evEc19W%=V<@BP8Go?*jbSrA%zNTthZrOm;2K=0nt({dGPNW=5uk3D2=Drrv +zsi4ilO}P?Jexx=)KKX7i3(0}n2^hx6&jPp{Xy0&1|5XJHH@Ih$B({gUy!2PSL0u|a +zi><8mlzDlFKB-7wwM5I|8@*!#=Ftx`-4$Ns^nkA3d~Xz;AM(mmtg;WZHJEZ`>+J2( +ztn!rMJ?SYuS$|1BtN+kb*{3vp7e8TI-%ok(Nk#7>#n^{t(|baHoK7}M1ExJZp=^CM +zWd#&%qd%A0$2Xxn;AwA|&%FU&3e|B|{CY$6sCDQPn8%Lv9C@x-t+cLtX|QY^0@+Rw +z+YgHD +z0tHhdg9W&4S$}f0viVw!#J29-F#?nB0VZwxKVecVuxQ&qWYHxJ3%+F*eJREVuL>O0 +z4};m_KEMUcvYE^(?FS3?Vem@9qMcvEqF4XVSoG>YWYMUGdx=F~eQPW_ZL+ASKMTBD +z&=DqozKY;ajLDzM{v1~Mp{YgjY`Xq9Y0$BQ8nh=K?^~Yoc>8<~`ny-6bo8Lk1y7q5 +z_47)n=N)C!b7v#CL~#CtzOhiU +zL6p!R;x592cyLEIMH_~BZBy6ioY~v0^914H=)Xg?#e7FVNqf8}l+E}7Hl35oD%#7s +zx$gw|>m@Hm=cm`7thal*#e1ab^>5Z+!hL(IrHpkw>Gb!G+tj#p?i2?yT3>Bw +zs1JIs4(U&0bmJH(#1+spiuJ-H&U6Zd3#R~m=TP)}uJLqJS#(6%*r7xl5D*EpH{FdE +z?$LPS69#sIPkiktYN*|f^@AE-Sz8i<5t631qfKv^;+Dg277u$QlDcih_ +zm`2?2zRAFSd>7g&TMMC`_c%C{9^Y|b$zG)iLuXIv@p=aYZQz7gORn`jw*W^brh7jG +zj`-dLj;srDBu>2lQGa}N@6lgOmtzP0+wSVvFy3pvzJPu!zGSLstkyQ>H{8d +z88*$pFb}t04;Rl2bbVnM+wprJN^8{Z??>5r=@E!-)>?d*?@WU1o!S{|!x*JiPN7ou +zGyW)rlO1FA+&gVj2cs<88*wi;>|5}9Cx4vQL|_koKMW#IcV-T*r=xG?8LF3gFz +zFy{9 +z2iz?p|jQO@u74~GS5qCfJpY+1pAe(QQ03w*@3rY +zH?I%z7z}5nvh}J=tc&1nLnKyH5QB!HSWWp_-U27}Tx*0!7=^&YplwC{g0XaWaW6(B +zgrJ`N72ov25bLh^$4u)pnb!Az$F#nSGp#Rz +zX^)~tUWdFwH9O+nX^v)!0w%3-m8GF(bz_{>=b#P#%2DEK=K*xE)Puklr*!x +zK2GGXqkKFyA2?0BxSaODwD!^MK^uSKm&B#f?Vs2Hl4pP2B|W3ex1P(Q*a1CH2J^H2 +z35rkf1e0!@Zw@W#S)e44vh_rGm7SNnHmna#W4=q20MpjL6fRS?dR_d9VR~@An5!?@ +z6M|``{t1J|B}{`ZlFC5$09}6p(u4SSpgsE)|NnVuQdv||L8%%XgCMcouz+5`Wa_Uc@YSh=GrVPF|1kox& +zRQ{I`{fj_!h#G%(Bvj>*P(@e0n6F2F22&TM<$*PQqzUz{h;o_!EaE(~Jn%Tq{_c48 +z1v{cYi_Xe+{Mu!dDu?&5`|o`4tL;~z&}6HTMd%giIR#`-BFd|~)^CK)lBH`siXXX8 +z>wgh`dOrO0r1_-PyDaJ`65{jGgI7mdB6V}NolIV4!hu7hG +zmeQJGg%G3UR_Sb=@fb0t$Z1h-;HSqbpv +zS0dEI$sm4l1>)V-^>|7Q-Yad0JhmoUCR-~|><**&BM1Zt%V*Zg^0yW<@uCxhnD$&N +z_Gf6Arl)b32!v0Vaf|m9Zeu=q{CJcd--K#FHM=eIlPLRerk1h3Z|pn0JrvE5)zous +zAsojY`nY=3PKxQ?32jvLuc`0H)4;k*A*xbZIi9YwqEkKNDgNqj55y>~EqJ_+?p4t# +z2$z(ttGM-oeGQ%H$E>2N<%E2`&YqIe7TITZUdGkdiyD2WqlER +zEd`RkF=I>nBLdbD*m~Ka1^swlVq*4AD2VS%f1K_gtbGzc1%MK|-6~%g%2(3jdeZXk +zN#+pVp+K&+$Rh;wgwh&BiIIIBj4kZkYu8)Ib8SJZ*|jFS#yTudz8|;hOUl) +zQIEmr@RgBRx-z1PdkmU+WrU8%FMRg^>=EZ7+g{2}B2zV*uc>xE)3reh%~y^~l)!vx +zFNMpLt$X;R!z{ZNvg}mRbLpXvsz?1UWYW1X>4wi~_#86>qphZD51kFq+)`m^a+OWx48#Xy>LnddI$s3rvl!GZo%04=~@sN2T^`?QC?zDeY`y<5>136?H*TW5cQT&#dC(oQ;>UFC*HE!iLX1XOzd= +zfWGGJxUelVr6lDb-FH5s9hXLR9O#h_-s#`hc=Es}tb0~OJB=o)&))F8e>6KiF0p^o +zaOs6DtGhH)jJ1~sDIYe5)0h3vNx%rudQwCCGkq})2_qn20tkr;b?g&3gkHX-b@P8l +zZnvmL-7KajCZwrcWk)~)QRyT{99*bXA|Gn +z&ML|#yksEa0i`usYM0(nTJt0`wVJ8TOl33uf9$<|d=%C7Fut=Hk_jx#BCDdJM2!{{ +zH9^`Eh?+z;iAW$I3o4@G3)R*agqZ}Wfeo`O8OPNqP^slF +zDp;dN3^?mXTp%W!7_!ef=g#a~!t?Ftd48Yo=lOj;&p+ABeLeTybI;4Y=bkgf_%+L? +z8NY(@n{NCLHGYQ~zc%A{xbZu}_!aS2X|yZ#A%y9KlKMWqmbB)<3-w(K`ehtNY5H{-J6b2gTca0I#rlYh^yW +zHYnn&9NAuq#vy!ct#E=}grFrt_d#!$bXiw@igfXN8PIE0(?lzg+PZ*ny-g{YDGh;4 +zSy%t5^p6#vIsx4C}t2-)i +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 +z#ybltrx)-PFZXIX9(QOz=Lzh)gvFl( +z;zjW7XJ%KP-3~pX +zSFB75DR0-D89C0;qUX1$vqL(1Q!(~T8M +zaPcvEw0t{Z1w#Pbf=$}oI){3=E+XJqhGFoQk2qND+{rLe@^B5vpyX3D_ihF+R6)oD)4W$qWelTrR-2{{@AhcKUK7b`Fk +zZKztw?FKnu_74a`b_;G8nwEv=z69@R(3ZFrFDL5ZPgfm>_6V6>1$IEm#$o&h3b@<=8R +z8IZ4_8MAq7m)`+c9mNXr51ml3_>3_-zao06m1Hp1HHJ(~W-wk$EXx6ES)?>W^{dW9 +zfeXxPZy^&Y$pG~otGUJydoHOZSt+?@BkY^NVVIl`n7f5TbZ7YyB`k@N8N{3Go+WMD-C%D!@g;FOU!PD-WY&Fr)_q&`of^SDKGo*^3rqjS7Bn`u&A0xbF#^v?YA@-t34E +z7~GRgFoxMAb0*}@pd?)BghKD3h11R~qWf)HnqiG-i-wN%DG$}NYrX?h5gS9^TKQ%u +zN0;_(6qj%c9*=)l|IS47O^@4t61i +z&0ajP*(pY|Q=q*5uN){!6?R^O1Gfw^icLm^bgb|SR8V@Yl87mfAAyv8Ftx$2;gjTN +zeF3By2cH5(T2vbW;2CsqYuho*fXAmSFk0OS=I +ziD(e^FT({4 +zc5tsLpSc8Yi~LFO9pgKyPeAvmARN%IVztpFD-T;{M1t~Ajc>VNW|r{kashJ8^rZJ1 +z@$LP)pW3teE$0qaGim?1)Ovj`9*EZ+`JRkYj!9#bDOZ)B51Y_axp5CnN>ii_#AX=9 +z*T7E~X4mdnNXTNm=fNs!z4Rl^s)TtdbLl0Det{CUmY=81;k_-@P$|Ja5$gk+(>*Zi +zg>;3F`dLE!L1zCXXvH?MW~AC=5H@%3V^ywh$q5X(dqP%jdii{9mMyzW-0kf4Icj`T +zX|uY|myfEWS|`@b;i{Uk6jUh#F+K$AX6^o5X%GN4fYjuxvuqd)4%)_{R5`oNX3JjB +z?h1Ys2M@>w$L6Vx@=%b2#NGBh46@hzkn|&^w@eyxcXlnTMMy8i9av~1BgsOWyZ0XX +zm@#a~9G{SxU3>RJC;$WBW4woA_H;O6khDrV#TrX+if6ApE%#RWi3s#o(aBxVq7-JO +zDo4*K^%rIDRYPXPch`D(KgbljSGT1 +zJ$t2BlTt4XzLFimDGHNtl#H*9r2EpM;5_3n=SrYU$Ke)Cn|lR!k9?Ic-NdcfazGM*3|{ZDknKe#`l!Cernx3^$>U^2S8+Gt^1d%ph*z9$LmI +zy_k>Ijkp}kZJ_VzpEe`i*m(-Yn)7`{Y~;5|Lt&<}Ye^3gYi4o2A}eO}+#`DG5Tlw1 +zM;B(dB*AZFWceH|;_f=%-0Ef;w2;SY%U={sotIJZvQ{_-=1${*KMK?b)XUGkp#14* +zy}iLkmR9x~tx%}bQ{ZBD$Wqsfl)Bz0N(RjXxBlhFDQJzho +z{1KghhY&^W?%o+pl!pB&dd8qO*t<*~?q1FKgvX1X>&epZDk&2?`W%<0m=D&YzXxR`wP=;M15{`b7)*nI9PAos=ha9t!muj( +z#4zCLtGH(2Xxo8>A`Rv^#gm7BKEr=bl5B%#Phq{U8$_K6<|nrE4WtAXpukA$o!H*+ +zAMo7Pid-bD*OI8G!+*a@CAp@^=AL|uR0hvxl%t`Ph;*M#U+ +z22oZNqMsu~*To9=Fbwec_(Vw>-f^3?&068JSX5@zxij`$?GCS&bg*lnEM8nty@ +zz}hSN&w?+-HeJ|H_kZ6azKnGDE|rG5d*=b3_ueYs1ned3bA>3D2R-!>la>>@d<{pN +ziZ<$Dx*q{@@Nd{P!NY17vEAwAAL4zvN14{Zgeu=`PMr^AE}zQ<0{H?6zeokewI~L| +ztWv}lV#vgTza4)N8gA)g07#>t1hIu8WDBBaffdEF;0%M?hxO4Y&W=SLh_OWw5yN^) +z7cE6#9_|~ns41M@aO(G +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 +z%>AS_k}GM2EB+kp2f)LLB|@0&YhlW%$` +zcoB@HmNz`;>NQuU +zD-9?|&InX~fn7)n_Q8b)mB)G%W(WzwSiU@(us+`!Zb +zIF_LqN|7+kqsLlLh`9w&Mx;#e6EED)v^K!*(zvv +zwQ+dd&N8WG;dT;%nD+^U$UQr8&;=q!u;&WOPf=H1f+5ypGYe}yo2CAUQg^XTb#gvpD8?(+Wy +zbVI1c8)7XEp%%Zu7B3pmqKSnEPbXm^hB=I3p}@zmFmUFydH)<+@R77uPox=Z_0Yo) +zJOFF;;A0uM;Ez1KXc?>(qlR`|uaSY5dJ_G5OzDBTqDVaJv8ru@s}QSvj=B?gIO +z`)js<(DOryDO-m!X=t9gOmE=5$AMFWKzt!V{PB>);ocs<$D)J2F!1H6gt=mKePD=5 +zr5|1@!Eoh8kHCfyq=)3kV6K0WAw3?Q>uaNo3zZRes=+Au5+1{q{x@qSC(!9N*u!WL(V0L>Z-3_pUn5FS5sr=lc}v>|5It8cQ?K1Mz0iIaoO +zZaPiSTSEroLn9Cln38luonp)MHjvoBIBdw&AX%?*N+e#s4bUS&Jb5Vuzi44BKbk;s +z<+K>ZeK;*%X-s6CcZSSfwduH#N2(udbATtM&?X*{9^J(3EWRE$@x1RMbOz33sp{h#w^pZ&lRa-++*@!cfdjgVO3{3$gSDy0xmkQfj)H}=`$Mz;|-7cvFgRx!9M33 +zs<$+P2ac$+8U@Q&0#btH|FA*#+FAG7Pw*+nib$0888V`vb0?ycw~NNM +z%Av`xVCkDqpuUA5aAgxT1`E@2P=R3$oEM>R%K9&DsK`-S`AZ{@Em5&Ue-?!Mz{zjX +z$ih^Lrova?^bZ4B;2%05LKxF40SF+-9ca7@@JN#iy#! +z7%rmj!spV#@n|(z+#GRMYtHH%A|~Qfi%G9s&cNrIR4$b_9lm+Y!#A68__l!_gL$}m+=y|fZ`Tct#Gk&|kn8;L +zP11_&#V&URpvz~wqgf(lEyJuoVAgA~Ssq1MC{yceF)Q*-BuRHVV?7&L=5;Mx>h)=&moW%apqz}+8PI+o5Fqlj6k!23|S7z4bnwL>h~*VZ1zA +z3==s4`MWhxO-uVgR4N1R6F@kDATL6KjPL)5Aio~?Q4B-T@Kp~Vhvu5TP3+?-tAC>JN<$8V(1 +zdkB*Q^S(*Mn)?udp}KJl++|6=1~8CwJ66vV0(%278Kgs%Lnt{qJJjj+z~8@#+c3&x +zi|Ae6fxBd)=o!Jq32phu*;ZRy4gYAKZ8pDg#ZuD2N~p!4^8)2#wr|9v1Kr(;)Aq(O +zWMwB4=HSmK6K1INWa20q?Kx!+A +zU1LBCajpL}p|>Z(C7;)QOOGslShUJ!%>$OrkfaDSanLpb+fJL;#PRi(-C*u>T%SX+ +zi;0-nkD71!BoaCoFM4Dd0RA8WUUDoE#Wu9ZtwBJIHf3na9Y~c=eubF)g^>uwS{6_1^v^2*H0d +zu_~_G=U7dp?FhwoQ8DxDZ}@d&puI)BJ-zY5? +z=HW+3x(DAr%op(3z&!RSyAb|W!#IQS)!uB2L_k^(4Pb?BmWc5%fbqe^yJTp72_O8+ +z0DCR-#iL)d>S+Y?@m+Y|m7;_%D<7tLlyL@qR8J*6iUKdNy0~a9ZZAynzW5@kROCG@lFE+XvB+x%cgczq(=xd@9x_h|I3sl7 +zBVTQly*#e$`K;_!ST^3@N8;SEdfP3rdRrKux)SRJTjJrQ{HKmVz9GP#vllg&{=@;Z +zW3A0tYABVu2upq3Z?H>AVwa_a{^O+KIe-m|Vq-!%W@XY8rcjF*Z6)qRBj7<>sVmul +z;uoOfbA#7FOKqQ{`FVdV;Q%BAe@({5K|gV;haX+^Gddt%v=px^R^U~|(7<7nnce^R +zqf6*EV>xCBf!+N{@&r%YN45CDr3xkj1`!mzPFB_)E4NWaK|K?mmE#Z^gBK?p^x@Ek6oA&8(lhry)6pqZLRn=g=wrn^jM&x*I;xdWr}YdTwFt +zbCFmx!wOR5IH}CtbCrB+@Nv_g8tqHcv;u)pxX^(xM{yF(>;8;yQjnS$@*-;)y>iAe +z<_u|U4xSm-no>KGrb1fz4=u4<=np8{&Mt%o>FcJxh9Qg``Hv +z-43~d$)*?y2`_&_W`cp0aSQz%qy^WTUzPAx9l%Eh2qnsRqW3m*5rdB};`i6Q+w`Z_ +z>Ddiqs)tmg8F +zH3dTMwW8-msETjvp2Ocv(X*B!8mzbboydDEqNk8EoU1@3tz?rXZ&DxJs5Wy=TFH9V +zxkYnsQeCg8uC3~+x}#POM3wh_yj7{c#K(K_)s%8Hq_l;`H>f3V_-16DKmL$!TITu6 +zmzd~{_?Zj(}bF|PXg2K1ZRV-Z*>_saBJq+j}!Y4`-UV)MKBDn@OLTK+jbO6@S_U}Q7J +zF@px^txR^ry_~yK^!kxD4K;11zxdc3s&~ABrgF8K%H9^6{wk{dR$Q6vmcT?zR<0b- +zHQlWR*MJJ*w~$kvZxZ-3`h#`~XfL_>dBpP7+bk@kj19&{F78CnTeQTIfQCP-5g$rI +zWT~yUvUdW`HqrAME3?q>ce3*P{>ap{WjAWBHWmwx*WZER8o6WOUsZ0a)?^3NN!MHs +z=1K>$6JM`R%G5*OW3>>B;b65lB6ouP>2!E&={{CYH_#>ccWi_G@3)@8GxTj#3^WF3 +zG{Zs}FOi!YXO#CHCwfujxLfobTg_~pX!gN=Vtx4sQ&Xt{qy4M^VM>yMn32D+n{o? +zKLd(awv4LJf$INdyfP8nh{h|sYyW?1ys|%$v1?qsvRk4FuhDu@ys|&~DE`UcEdOD= +zvfPvXXN^}j&hSS)XuPr@KJ}$|Whc=~R}LV{ +zxtsmm!+sXBpS#%4{qSRJtbBm|Jji|)v!9=_pNH7bB39vE{8`voNh`mH%}1ub;TiJ( +z{a0jtAx5!FAP%}kyg~`M7f`tS9;beC)pO=C@gBrRT8p=5g=%JPzQMXnj +zhgT?`(N?^X)n?BScjrIAHRm*n${UvGJ7RjzBo>J^2i4{)P?m$GV6yuSZW0nufV-iV +z{zcby?w;$)S81Mg)dq%XavPc%XQ3g3+@?KMZDD57F5z8_m`w*125HU>0gWvY)HktA +z9KPpNw3c0rJ`i0;3|OZFtOXBnO#thfyOHA)#z9`? +z4^m7}C@0puwSzK_fHZgg85Z9v8a8VV#hAm!ob9apz;$N5v?A?k23(zwPgU1Y?#KvL +z5Z_5t{8sIGmS2zgtoBLr?;vQ9%@0z&g**`8qkg@Id=U`T`lmhADvSjnseFSq8aI~T +zM5~d#sY?JU+>cyiMm--`MX$uNyYOk}3q8^CK;=3VOhNJ^J(A^8y?juNtnb$A=R7$R6{#BQ;%( +zf@+|Zro97zI2AS*4_MS1>?82O8KVW73Zt2QVXC3mhuL`E+-x-2p;l5Y^$cZ@%QbBJ +zU3`74R#LIBuHiF7EY0}?_na|jK&H+^yYYkt8)cJ=-7KJPVDh;Gf$O5>odkqV{tOZ@ +zPG{XG1AQ(lS6Pn`>hld41VFT{2$%LW)poCENMQ`0{4BBwq-q&##M<+3un||X;`PS3 +zpYJoC*6m=v=0kQi80NPhR@}#LK*#$yumVmAkA>cyp|Z~cw^KhyfZ^2NtN()DvInO1 +znM1v^I}RI5x)~0aByTcTsQZYCk^+V^?bu3$AoC*Scqp*%2lIZy(1*&_B2{y}juKL? +z>TKG9L`ZctpzpZsTGME$sH2}k2$s(9=iN*4S02U(wxI030v}S>&Lz@X(uCyCH_b{O +z=K|xHCx-oo9_0d+r$LkVYXx^HjXc|onsYxs2WwQj6@R)aH=|SR^k9F)y(;}dpCb+5 +zhkA0TazkZ3jzqr=tu^rr2d!_wFS*&hO5pItIYrOKOgu`|$92&=u9AkvO1x5t7}VH( +z(@N2EL5it)v-3!xC7xPoV(tufe3?5(^jwR-rO-eA-X?l~hmDss6g5_&;>=ME`6I2Q +z4Ly#oW?ouxgsG}66Q+V|L=pLvQqSvuV}bg_nx~M?<$~7E^U?FC>mr4U%7tBu0>p{Dg1`ZWH^y_$PS +z^zK4h0DBGiK}myJ`998L!H~eK_&^68C_Re~Q^P!4bLL<1a-HFPadBlGkp{Vej)b(? +zV^lg<-a+QYPtn^mxk+u-Ruw~;@!<~yN=H)Q%bzg58N)1Rz)#_5U;a4!6@2-b_-ps& +zJMcHlmv6`4$-ey2_&d&*KN)}XvTOZ?Jb5QA9K(KW?8m`=Cb6Gf_A`O~Od~3@8<(l^ +zDMD0pezI!=f2NnN$c1cZULuEpoHnZRp}NbyC0dVx3-_&t%vlhSdhn& +z*)YOHKUljS0cvZNj?=+Z@LXEoT&r{m5V&d2+47a1QPO4F25d;1wy!UjtD2UxK>j?M +z62?-&Bh2WJuFcUpV6j?syXJJm&z*?6_$IVUE#iY~qV&}m8eRP`y| +z*|i`}Za}X`st@}U6?6;FSjF4>X#<^KRMian;e?djb>-ujf2Y!aFu~B>3pjfSpS<@9 +zqUS>^A}#DV^nntj*#)_2_DcX8!MfG9~49)X4 +zekcK}x}ljK12$0}c|G>{s2~GQ+kk26dP>uLSXh0ADwEF#))&&U;ix40VttAqknp#i +zHRfzb@%aKM0>Z{Q5i}yiLY(;QzYvbU5ak(L@I(^_y}U+OMLpNTx%s4$ys7zxW(aV?a!bDZ$Sh-X(xzv}5qk +zP~gOw_{nQNV@{sCcdR)9#>|DJ%f+?7BMeKG9(DI#VEP~NzC=DSMfDHx3o-|^x)D8E +zkkpM|PoFWD0l%J%%9k&kh=+IXnL**bf#4;lSqY$C5d}3c{Y>0C4nGrHI^Pjveuadp +z-;fC;E3&~{f@3IN6>e3+BgN#5$CjsEzXV^1`+bGgRIz&S +ziYut1R?^NjVeOUF6;1!+@b9H>zfWlKz5&UCKJ)9>-Tjz=uR_MNLK~=%D-`%iLLo@F +zBAOunEu>OuRSpG4KyrFg-QFL}qDad_fp5^OR~uEf+WXy}^M +z%laRPrctW6zLuP(QPNbF^gk%+vG}ClQPP6=q~B6faeUGyO8Rkp^BXAXGK8(m-Fvxo +zk-K+2I{wK(ecRg$N@zDtx8(=6Zn}P62isOU2g!k6MqS;#R_Ow9?N<2g-zR$ODVcE3 +zkN>_y|GwWFbpY{!DL<=+=MfjXO~39*BDuBUu`ck|UM(=OHh(XlqftP{N!vf`r3Qkesjo0xG#M2$;`oOk+ +z<9&~DezSwE&vPqreIDC{>(fC38*gYh8}LF=^^GBzK*#|7;|`c=HLRA;@V%Xd$*1%K +zr3OnCY*!h;i&bJhHzNN79Erp$LDeQbpVdq;4 +zJKs{+`If@Yw-k21rLglYh0eE(k;{*3UIP4-;a}hHY~tyMu7QmCD6*q}8zO=hG +z4ISnZ`V`A-HfEnPH=o^p-Sk;Mjq^&HV;q@9_65+*W3@i&v*hzr77qr`p$hE!H7jt2 +zZNEY75ko|KDoioP_a06P-UrOs+J}!n=5Fotwn$?@#u%M*P;!VhMHFk!h{mR`gpLY} +zl>T$%4?&#IuGLoBy%9+;gO6ygR&)6a?D8Zi0@%N_7?Q__wCVR!F^-(0n5By45ypfR +z*aHtEMil}1AKafC2x<2(r}$qlF(Hka?&!mj&i-n{wm&4evrrijNc$?uJOs2~DTt70L^V_8qtB50vBZZ~nEpRaEZ;BxPRO +z3f^&8XD-F}I06fpqfxHvD#DRZ)Hd8sYk>82bP +z2@jE&x&(U-fMyLUvi?n(T5!>yf+J(qenejUGKgiN;%^2DSM-;F{eCb1>S#KA7a# +z#5*X^gAmz(kieR4QTm5STj-QV%4ZdfRub#5l@fNC0TBpU)ke{S6ayBHxj9T2MH8S> +zATwh6Ypd)CTbRKUX?u7wPQGf;^X~`=vGUsuXwW0wVd5lGR>a9!J%+2a48)Twv-ZEO6g*K>0#21vB-CQ$qE}QPp#?sz5n4_C&@d;_@GP) +zuivl?2Q+2_4HyT5C;tK)@CSs6tTPD@XyZrqp +z_(8A6yQkv`gLlq +zSOEpyE3n5P|9c-B(eSe`&mY47=~hhk7xw?_`)lU^@)%4Q8r?Zuu>yemC^;1ubj(~Z9aa7>g-(gCg{sPeiscFw77b08pp%LQkzzG +zm)Jo}7Mt}zVYS=mcneAd@JWMdJ{@O&#NhYk3)(F_Et0M_9n{svnQBSr@^OjrO1e%oW%!wc2_!TtTL +zmiYVo&IA9w_xF9t_xI5Rc7M;}L&}2qPN7{rRi~%GZ0U3+R$}wHI+Z#>^-~@YnqDLO +zd(?v=&4=L*qB&3$Gmo%?KDz76adyIXYKaDPjK$j+qd)N|&S2?tfPBl--OJNgVvvn7 +z#?e1&MCAwj>F~zY=9`wrQ9KINrjO7gSb>us04ZEwiRTNhHnm@0@&jtn^Er3#9QlG^ +zF3qpIcZU2Yv1Xn%uMm>eF6jz)Z>b#c6?1sE0JGr8#L&yD^~>q7Yn~O0$)7@|>FYT! +z`1?ftgYfI^N67!_vxHwaMz2()%Mrg)q)|$kXZUrIKD(LltDDZb5qIw-X%haS%a&kA +zc5P6vPLzk0jx4l#D>kupQ>RFtrvaE(SXtOCgLbLhdTyccNN%qX@aku +zAK#cGw@R0R#5T2`T^6FBL;wf9kO1-lG=@DXyOxq8IGb{t4`?qCvsrXY9MX3iw~9FF +zY8_H;k?<4kEur0=5t4aQ%18Qaf5+AgV_08l#Ovx5y>$Pc2(Wh+S-&X_SuBi=VQ*{9 +zpKIX!efk3(%%UG_(et?_Hh(#6{$>dvDP4fmW`}KO2Xdf3xkkuS3)p&U=c5}#jJ}gc +zzScJVSMxROOu~HK^+VEpp^1g04l-9S{6O=fo%yflWhTx`B4FO1G5OGls+;isXP){o +zM(mxUI-C7YG;XJuh3Om`rWmtf8pTc0oXrvEksQ1DR0}dYJ3^SiFGi>#uF1E=oDVWe +zA#?g;zM1^^x}1Z+Fhx%dvF>*L3~knCu_mlKfm9yG^JEkY(dM#QD+cm+ML5l3S$sn{ +z&4{8{(k#A{Z>(RAvsD`5zQxYR>}6o*!@T)s3e0El!d}wl=Akd^r5TZ6w|EY`RV18`|!bVHDm-VB3SjCwttwRb^0*TGY-9cJIUH~l9%rCCS~g1f5FV~bd^<0X(emxSZCQ^Z{%(IA +zS4m3uDOpRf`|ZH^y)7y`VsmX2J-I^+7i?$bz!Rp#UN9iu||+C0XYjLqmm=q +zwC4mS9#xZgwB1{~9F*20!Iz9inpY8mE0c~29fbl!lYh^YqPsnjTqrQy?j!Tbd^vi`HY3T^xY%ZsF +z={~=6J(GLa$DM<^k6NL3&#hc^iOI|D5p-A3XqbS*Ea)Sc0X{4==iKaVk%Kg#&Du=+ +z6_LnT#Fe_XVU=G-0QB@a!b5eYJ;%9ON@t1i1;ue+pTet;dnxK>HFk+nmiCM96htX& +zvtEf;>LvTN6(D0aAw|ijIdArX=!t^7aYX1*j*F^%NOie`!_@AaiUv^`O_oy)Xq4e{ +z`zDD8PiWJ&f;zDtc!VPpqzbg*fF4$NkzsS426_^o2{c-Nw2MRyoUm=0s{^BeJ|nKd +zn5%`V+z|Xdn<(!+R<=w4J1lC+Gx`QP+g+bHtC(GC(?20AvTE3iY?7wi=@Au7mJhIF +zrVWVluh2taLm%D=06gRn1TdRU+JhHq97TLq4dHO_dLPM0o9O95sX+$qI23(&;8C6K +zpr}@$ +zz2@?ukZaieUDye1FitLRHh~`A`JA&D@3O-|vSi}vr^h{O$g|=;D +zKH1-APhDm6t-}u>`GpP)1dNeQ?*x%EByZCd=om^!?Y?;qt;_*A3Ey1p-IM%Ym+Z5hf_}~-oQjic0BK2-Bfr+hvCn7FG1_(;=kIu2!i+xX;jDi6 +zUaVRJRn;OM&HvNrFrf%L_7}0+GP;j(&$44I0IkSA9O=Jz?_#yc4)dnq{Ha9_^*#J2 +zVFi5KXtcn>A8G)elUNdypTJ4kZ;lt}3a#+8OdHybu*mV#qVewWDbwCW`{CR4(FA^X +zC0f@xKoLjxFZ!SM^he?=|@c7Bt|jRR3?x2gS?j!{hRWVg1bAIHXoL +zbblTo#b|SOo~iGTm_cec;&xsbHiHokyiY-Wxx%KE^S&Z}d`KrhXfR_j!cs;y5}hc^ +z8&su%tR?Jt%ru<`k_7bVWGK1XO<1VJ&NL(>Nm%pg@6N7GgZ_^5ffkjSG_VvmSyaMc +z6E}FX=)DTL!h5t+Bl4&KhHt_1o7E0v)#%HA>QCW&=?RJ_^5gFrk=idk3XB(}V)h7j +zKQfJB9O*n5t=Xy-3BZTMcZyID=qj@FAPlg;%VJH4o=g7x1c?QSgL?Y}4GNnmfECQXDLI4Dj*dJiTDU~5dSg!`E?9*^W04Sgt7Oa&n($1f1FB=vdMf%!Qd-+gb +zv4ebZ%clUNpffcGioMFl<-v3H7y^92}$*}khF(r@_v+1%;lSie%#PAy$=*k +zy3TB?M80|?QH3%*;>F&g(Rm}Z`=>g(^sMTq(-PgVSPjuvE1O$q8}fK(JIoP#lU)|o +zFG%l{f#cfstM0;;PhSNqUtt@orE04L@kQ_I2$OIM@Cnle?p>=18@zXMiT0;{=SKE} +z4PpcTlf5^AhwA(P$L}y0SretGrbsAzNt>m`5=EgTVlWuS%w)#aB1L6MB_(ZWMTcL|q_n-W&Uw+=;By<)wf-z3dPd*vl132yPbqGbwt|1$Om1dS?SJz-QSU7-+{ +zBruOe39%i5D`wS%RHTzMUp*mq6ZE{~*hp;P8wo87el`jd=PwJ2EUG;S*j4X87ewQTzEG^F==*b5|(6?FtZrl{+c+mSYb8# +z2I8!Qj^uIGP<&Wd!{Wb~8--SzgHe@lMNf-fnVBOPnksk@e}r`6%p8T-&w?(PlZ405 +zE+th|ze*;f@5o}L^NnWgw%@ku-i1&@=Tmf)K6`bdK7u2#W@ +z^{)9)S)^}COUMb8Xwg0U2%H;b1+5}H!@;_`#`Q?DgBZoACK)C-!3tZjr59XV +zpbtzaCiN#(C6lElN^&KWW*$M?G`QyD4?)9(VNCj(5GC6hfmYPBC`qBRNz)W3!*Y4{ +zmV~hQ1X!2HnIRDj{@LkCVJFb%;X{=Z1bw)57+N}?KhwqU`Mn$Gmgf0r4!snK&YrT# +zv768bluOWGosRPzV#yqSY!{y=3;mg|d}I0B(bWs+_k9v3cy+c04;zK$H){0U=N@X@C7g+pG?sKSOA;> +z^9#uoeSkUO(Qz`R17K7DwgHhKPX|;0ngCsZDIkvoWCQ#m%|1XSpbhX1KsiCC3w7pQDIb_PoTrx%d5cCDW2Ea5Z&s@MF +zRPKFb$_IeheljHycrzd$a0}1{>0cpz=m(Mz4)wttIXniN#hrxFLLxDJ1Na-s@ij5l +z=d!Ws><|uvNjEXZIKEz-PzHX;zFtZG$21Jk4+ +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 +z^v!Q9rB +zE9uG~t2m@nZE4;2X%{oTh2?p4*tTMyR>oF*)S4RizW)O24_mCH+xLyR{<(8&^4FVu +z$1mQVk@X8EoT-yf`0-%kGxLX~pO-WwWfnHpjQITch5dv_b+W;=ZT`9UPu8{FT~(lW +zkG$Wf%H&p7br7fdj^_}~8pW=~mqu^dbun7^!DTy3)hjpVFR1uFW$T5#tM8oO+S0!~ +z=h*D)nU^*~OI@w}&|l^%Pin@E=^<-x4!Ki)Tko{kEz7iHDG@(HHtA0rvw5&~Yw9lZ +zgK39d{I-33HFE2vn5HcqS4uN)AC1mP8(_9;PgLh_O?FZG0Evk0vr3G1uBiUB!*F~; +zvXqzo`o&M=HZYQIZ+x>mCh_6dX-TW?$O%Onm*eC8cEp~OcU#?@KP;yD!J}0!H&Ww# +z56)dPNp;XVxzKxSv#OrvZaYKGxkdIr^o_Ou@bbvldG<;=$CQq+kB+*0^oZ)J57`E< +zO%8^;hV8eqICbEnPDj?K>67*x`ni1H?rmjztGE}7UJjN#QI>6aGU4XxQ?d_l7EC^_ +zQ0Svzcifeplpi>DW^{)Hk8ITsh@qY*!|qwap`4f{L=$Ui<2s) +z54}59q_kk0&qm|-4HF)D1&=yyR=c}R`^2S0N6HGnrn79)I#O-%x%;yo*9CnviD+z^ +zujuQRxnQtUr{RGXSjRW8PoP+-9q5IMUs5LB`WB +zY`c}Il+RaIWLw@-E&mZRrz&&&m{S_bmsHa-vsUVk9&GdT%yO!g*yfGxieFo7bEdi} +z?{u@s(KxwjsL`FTdlG_fhbt@OTs!haYGqlR_XWusPS)a6gVdWB7U#B4X;g7o^RlA4 +zDJGgBZ*YBCux-SJy$W*IuLK_F>Rchy9I}e*Kc};2Y~tVf5$)vvPHn=2`Ljo#me;nF +zIC;4(fB(LCS@j|L4_B?M4Vah`Su>`6I4f2BtJY-yO*>-aEeulLx~1y4c+WUtB-J6? +zm@|9WncE)@zG>Xtl~Am29WZF8ix_A0n-bgiOBxIut{TRCd+7RdrthvSi{NipV($zJ +zG(8`xkQjA+g6H!*rzakke3v<+(p$c8?3Wx?!n7eTBhg64;n8d1_#gfj;{T@q1xx=>yr&$ +z^EOCVOlU1yT5pX7mX0W`dS%oYzj3~=A?@4!k>re^9cK@om8v^WI%mo{anxCwqOxO7 +z=up1StpoknE<440az){0z2fGavLm|I{Rf+Agdd0r^S@lDNLuRMm3KRI=T+{tkstOi +zut`&G%bj@i=Z(evXG*@C9qya(;a0NNj7Ke29e#7848DyUmTL9jxR&#|`#WB@UjA0N +ze$Px9ANlu#r5Fx-%I5Bz^3Zg2-1zOA)112W^|zmP(fZNQlA*N3bA80XC*yAEo8}(2 +zOYA?h*+QJUDz+p%rRmv#FCL42E^M_+H+TIoLUJ{82F?8Lp<79pZ|6>kHnUoJ-&5-X +zt1uya`Tcj-F0$_rUD)sVo+r-&W- +z4_gnW1k4?tn}1{JEm__c+G+m}k`m|zTr5J$FzuZ@ZR~dGxo4z8E)M1dwQp?oJup7Q +zZ|gq!hw;WykBav<-D@4Tt)@O+`lQ2{=;O=JzAV<0+H`Jc%Ft7aenI)vkDpF2v5hOU +zY8dk1?uwAd&tJFSEt(s9XU&xX%=Gzw!8zqWeZDPCq+flbO!9E_m1Nd;DopiFrpSGs +z%%WC0FccTx^R{}vH(*KV6!GWP_T;-ZHF9fy9_UvTJiaKWb6P<<^I^%=`$tN@SsK?d +zpUrIa2zzv2?)Ks8sSCC04Uf!iz$R7J&W$-&MH@KcM0?Tv!iyTW&uraZeD;8Xwpek7 +zmqa|}vTS|9ahX<41NQQDZh;Q{&(nq;KIyMFHT;p)Cep(tlIbG@UZBd^rvoLE>mb&&oExmBmmdQ2`q!#w)7IF`EOT;WOalTT%N$7^=H +zx@R+ScTL1G@_s~JZ67|4*U==$ojz%zy(aD6b-bO|e1@@3auweW;HW118nEOiffJnP1{(~ay6 +zWo_REohqB|oxkDU{rme`_Ee`vo7GiZbZq=Muev1Q!@<%80TxA)k8KM~?d#;mJUG@* +z&B0WB))y=CQtw9ZwhK7{jjl$l4Q1-Dlk7V%rpp8cqP?My|Yb788X=81g=&s3R8 +z+^m&Mb!k|jqfsAluF!v}{zclXV$VP|FcU +z#-={2$LKj<@MB&guZU=$Io~~dt)o@imCE`=N_9nvU1wWM;qm+lWsCBnXJ^Ff +zZCIDCetTAh(p=|y4aLZI&K+8t)n@&?TGt6h&C2TOMYR&KacQg7(iiT;a#i#7Iv?hm +zUfJ7Xo%H(aH)Xq +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 +zDf<5NU8G8JQTfiNZy3$erWreYxu +zm@fQfU?EH_Bm~pb!&o$oMUMdEEIKw~DmDURMW6_bJr7$x6=Sop<;yXS12$$V#$jR{ +zNMf#waX8qRF&Kx7ad;5MmV{xUv$0WAu~28s+#Dzb8-;~(!H;nnOX;v|z_?2>A2ypQ +z_(P|$F!WwD#$>~A@MDKT@5202v_#bpGrps{=dX`$UASk(UtbjKn~ +z-61bn2=%nV4P=M%uy8i4n<9`sFJ8~IxB-2A{onh+6r?|vDu~CEhSC^3t{~c+i2v1% +z@K~xjCTfT1DSv4QB@s=-{%@pV{L@5=PJF&6UjervXDOXrK0ce1=fGR-wy#MpyLq2Bn;aC7`JYd~N +zVDDm_oq%5gcK}Oz;W`M931~z7L_j>qW&`{I-#ziP??r57c>WF)FDmOxkKRW*A>IH6 +zdjId@u-E@C>i(CZ?1i_n$Ksy-CLb^Y>SsK_8sH8H_U`UqtHGZ}gbxCj0%`y)MBEQx +z1sb0}5-=WM3s?lGV)OY!IUr}_{`Y__y&wy6GN)TkQWKx7NXD>LFc+lry7=fD@3ygB +zd?(=e{ayU!z^b`j{QW3g(8YfPTnS8;z_6UcF1|W&U2zxR7KKZ@_&nhFvt9gjVAZlN +zekpJya1(H4MHhdpB!*Egbnz{Lwqr;o59+e3>UPKXpIdV59|S)4jc(w2fPJX71rM;fNg=RkUsDm;9_7|8K^H{ +zZD3WnPM87g2J8nM4;%wr47>}t1Gp4en+p9A=>fL`rvod?LV1A=fjfX5fXznm`ApzI +z;CSG4;QhdLz!!ljBVjF%^nib$cwluounTKzOW+n@Z(vopR>%UbMAr*P#aA-GDn1q1}`qJ{9U)34Jvj$_pHy +z2G;_>w%g$P1h_aI+6%aHI~*@?&JO4=1HjHsK7TB*_HIZA+ycx4b~^z51-SAs`56R>I?)HiT3@Fw6E;3L45$N2mk%J^$&$dQ&hVWj00 +z32f6i35qP498c?{FIS!9Zu8hEVaDOU2b +zR`QBg^2*cYV@RH&`Z-~Dm5|8pl?+98}lPTH~M10RO +z8j6;2Ie>GYOt~W7r!G~fi^_nuy@y3#r8M0!SG+E3VY6Ufk%NntD;%mvV +z5-|DxRog2PW}(_Oqox}P@EqirdJ&5OHIAv +z&=#YXPkY8?AwZm~NF4esBKE914wb1Al@sDIn&98bw +zSyP*MEaRJ(a*+0 +zdQ(*PbuvBb=J&F%))JQe*DK4Aw%@P3q24ikE}nvH|3T)47-Zu_%Z%aW;i0r3v*@Ef +zREd7-0rIhZ)N?*+>po=2E}B#0{=zQWPIvzw>{8Iizkjfc`st0ou!}Yge)9*r-srt> +z<-YAM2br?+pY84f`M5sPA{p8$)%Fi|?}E(ZFYLC1eEA>jD#Ap%=?`|tf^7d^*mVH; +z#Xr~$1XcK?n8#^Rvl!1ga6!brhq)|4|%$QEWHnz +zV15GGk-xCJ1XoAsnAoa4p@V&)52;(|vA0 +zpS6qunMtqyjBMXU^T~GnT1E7@=B$HjMxxvu=zP87ciX65l%amcfoxjOx#HKkbR5Xr +zLH?E`l9uS-C@f)}wUGLO_m{m9q=CE-(3&r#Bwk68 +zK1xY^mBLnu$Js4L=FwYVTRu@#_KH3a+D{p;85B +zy8j~%eN0f4dpmUBVV;U4MO=i14*iB#Jy4P&FT(eM(NDoXfF|(w7vUGcXiHV}F^iAj +zNBh>ds7g|-MPv*>7vVP?EGhUsSZ0tU1?_3i1`HmA%lrtL79m6TsKycgbdVVXPaA}n +z>95>e&~X6>_v2px{$_x1OIUaCdy2@t!M~W0BRHsbhmqVD{QiVKat!b@MdU2-FA+)4 +z1%J4R{V4D+2T%z48t{)B*sUKA;Us`05#9{`ts?fffq#dHz1`r?5|Qr({{azs4)}Fc +zyTgYeJVdoyKM%sIMf8t@|HL4?AE2-&=oX2{i@{$a5-tOOsYw3k!GBRieg*v3M8Y@0 +zUn`=%_g$oXKf#ZQ)So!``-{|{B>1IOyX#91{EDjG~96Y_uR%7|kZGIB+#`1~d0 +zKe>xU`Gt(;->XF1EEQ>w2denoEIeM6Pc`_JL>RTxbD}PV{C7@!mL$b#iUdUw;5|cv +z!U0rSNKj&c-&;!j<@e=~8wcs%L)v^~V{*^*oPUts64K|Rbd!J2-*EEZr+0w#o2E)o +zoThfC$L#R*NbUx5LvuJ5LQb9BQ|<@yDv)n7?>jvQ@8$#&4C-jC9dhZFn5rm!wp{Ht#hes27D2()U +z3B9p|o+Y7YNa$G-dM1S4ctS6b(3?o;1rmBw2t9K`Zxf+6jnLaf=*=YbYzVz#LeHMi +zD<<^j5PD98UK63`Lg+OSdJ71>g@hi(4i9@0dMJ$aya_!YLeG%U^C$ES2|Wg(7fk56 +z5qfMw&yCOvCG>cNUJRiZN$AB8ddmpC6@*?6p|^_A%OUjQ2)(t0UKOF2Na$4&ddY;| +zMnbQH&`TxsItaZqLNA@rqt3#^y9hlLMtYeL*0zWGk(H#Nv4;FvBK{`ut2^L+s$93< +zTg0Cw;%_4S!tr+mjlXFy{s2{0-Q%?w;uRsT$qJ80Y4<=`P<$Zx3yE^xMf1;em^-F- +z>zya`1pNTQ<<>CXth>kGCO{Lw(gE_F12X$R&l7LZvDm=4xA{H2H;m&ZfZ|`I??Cke +zc{k1cJv|lD=FfsM%2+l3>tH^@$ +znAtkA;M}hrOBS5RqsjR9s?c+HDn$9wIfgSEU!$m!@b5#Qb1M2xJSUkfIKNh|CkxI` +zO#t+}89MkbKA&v{@o?$FMmF99pG^Ae@0tE@J57;({|@S`3n0IdOc@5y2bcrq02TvS +zfM~!5Kn5TWPzJaKXaKwebOGcyL3)5bz#K3Kuo%DsL<2SeG5~piGQcfB1K=H?3m~7; +zU1zeEFs`3M-)w?4C$z;dfC9vqH$&fgg7-P}Jck0I-$cZrHbLtR^jNCmL6571HgjBcsN?jF^o^;;hK8m_Mn>ZW-!KfNGwC!gU5BbYgYLtiu>?9s +zdd5aN*uN?ND=CfjCyv)2hmsl@85$b@(iXAsf3^PqzgqL(l>esuH|4)6|F20YcxDK{ +zZ-d{xpu!quq{upItU#_r63SHmE +zZx#Ga0Ym}3>>RzgJU<4@D~wAQJPL`e=q?;dSh#5beSHIN6xWZ=;TkYZ%uEgFOn(C| +zj~2?)cg73?*&%cTS{NL)iLpTdli}lw|J5_rH_f@(oOmXJu_<>lZniMY}u_0gHpwgh-@7Ib?FG1T$J%Q2G4 +zh;dU#jTBd4HuUHb)U?tQ8KCvAjbL@y#ribjXH +z3~7YHh^g))0s;&S+((QUAt)yZ(WD`+0m7+b5_k-nKEzE3bumeZT>XEroUHD0qIpSN +zn)It^Xnqn`A_)tN`poqI;$%uxwqUOe!9E+mcE;$j>ju6dN4KoU)*Sy~SI6`2VX@b= +zD!c#{+;=n5H$=bf{l5{1>2sq(cr+hiUMS9iLZ4uxK@O(RV)N+wR@3bCc(edaKaj=^ +z#Pt25Sdb8BUMQv?zzWkBe%4Vm-~}?MG^B@nI7}Y0%z(c_i_X_k2?GAxSUteMiJTJi(LXg^r%f<8s+uuMja0>E;M97dJt5CL}e6$dTFBo9+ +z1b^@X;F;kT*db^;K!~IJgavrfLTRi3I#(Fvg!u@zIueEjThR$seSAXc;ldD;!J-TO +zf+|7PhW%5ghIN0((`6Nz;zGjjDF~hLw<$EMND+F0pchCy>o0V|b2(~T2|^Fui$c%m +zXOX()!tbq5!0`J~NDtkk(njwLk@2)7LI>TeLhpSDe`7=Uw9KUNds)59XM+jub+C~h +zx)*g4jQ@Hc6YKu&J9^%~i_k;&u*_uf_j4q$?$3}ShbBpBA`Q9+Rw;|$0~0+C)UTN$ +zdgz{6jvRh3jZ7S$P%n%qE4n9#rakl?|DZnVk0YX22YPk#_;c%`dI-xz^w8OW+8@LG +zW_16Os7UZC5j`}y#<`Myy~81z?>elzA7p`E7U*@@bn8(G-YBA%K2(yDzMF(8i?oN( +zyIVx>$OuWwkv$~rk>c-q*&=%ARqXfz5~fJ{T@SrCfa*~kMOaEwuyPV6dc#qucaE?p +z`2FlJ^e&6&Q9zIK2fdpjdWxW@2zul`^lC)(sGvthda~VmRDv5Zye*I(x+kf5gCyuz +z5+e3cIa);Qk!MR%$TvxXz9yP4!dnqNbT5|!dg*=WeGxt0IdHtUNLZkVp77Xz5PqZ= +z19}|L^RxQ>I7p>&xO?`03corKSmLKpw2=kW^dp?m8+ +ze&c;i!ry!Cr6(L4LKpd*gmFwT3|(`@lDg+f>0b6)28m%}WAI-~n81Kcx-vY!1JsqEC@i1O9mA}Gx>!W!S4@(QeXnw@Qg14jv +z^B^9^pM;>M2*daQL-QIQ#-C2e`W421y+`vD9>(vUqxlFA;}a5^cknRrM1iF+tkf%v +zpBX8?!uT6$ioe46FDukv;emp%@V5tXV#Y_~84u%c!f}3u2jlkV2*dbGDKWpoYM7`K +z?=h33@X%i2VZFk`dxfdJ!XtWxNA?P9^a^YC3Xkd)*6Pvk$k+$IY_G6(udqR{@T6Yh +zXbivVMqx2%{|&w5f_Jot`X@nqq4NvnS6CSasbSe@omMA7(H28tdF)azeY8izraAa?DMLOxZ=$4|;EJ>?bmXOTxoJ5YB2RQ}z(@6%d~BnM{cyLT71;bO?($udAzG +zbyrfGwe%7g4a=Z_kOl<9nnpnaG7?1@7zi|ojtGo#L>OdrGJ*(-Lljp=hX3!}dtTjB +zOOkf}Gx@;l_kDL?&bjB__wKDb!Sw#k%m4jT^}Dy#%#Tp|KhtYo#7|Lq!JBI|zc5w5 +z!}G$wO76cj@&BCMe`(y`1s{g?IE?$>2jB&QKZ<%fUGUs#I{$BQ`A!0V-m=vBJj8yo +zt52}(`CK2TfuHz@Wk1U9UEqAJW#7Z?(L0UKps?)gnft+aApDgaek1sv<1Kq5^C<0K +zooCsvF<%MpJj$~D+cJD2ZOaAJXFzsLMK_|fZ)Jp7jSLX$pd*G%^3INXn5_gQQJQi2Cy +zyf_oweyZ*t6yG}V7>P6s +zogLF)*(v60!MpsX{A1u_0)}q}|3$dp2Hqoh8~F2r?*Y#c;qRw&p9FsuocWlg&hVl1 +z-?M1^Hv05b2yXj&%RYtOPX}kfS2LeYf_=Vaukh*%90CWJ9q<_VH0Dj%@34Rp<9nN`EQlC(|_l0K6+^ +z*+1d@{VR9^;jiHQyiVyOKj(6MzXkWDEp@gP@f7rg-QXskIa+fo +z^_-h6`%he+9&l!hWk1L1Uu0ANvF!Ujc>#}IXW8@E|1fy`Cd +z7cBc#j_=Eq{(942AHdz+g1?HprvyKYyIq1G#oeCurSdd!zTus?dqnUvxO-OcKjCgP +zZ1_doJ?t3%A@2Sl_*LAk>NEWBxO-FZ&v91}{43mT6Z{+8)rs`}NcG!q_ygSiTDVU` +zN9hpm)4?l+`yt@33qBnDS;0qvFWzYQc<}uj49^G87Vb;HZGs!X@r2c{OFw6L4fykdd%^!L_(JgWf*m^Nbc^8__)CJ5lpn!)@Oy$U +z0nZ*Yd^xyH@YUcx!DHY%1%Cnjq~N>2ZwS5@{E-_BKM1b7-Pk{mfit%o`{z60?_RIJ +zc_;heHE`{n#{T&ec=w&g{y7*^{>)vlr|vR`8R +zwhtV7$g*$e@gWc1v%|8_W4;Rftg!cPCI4Ty?58=suY&6yHulW~@i#2{3Fe=Y|3@tQ +zAdc^S@a8*3{{_D&nAQXz6g(X~F8E+@r{G!OCj=h>{)XUVXhJbR +zu;5|v-Gcv?$|v{=@E-(U4Q~IE;VodlDF4miv~Z^*6}Jn%o9bWiec<2UZ}{)Qdj!*X +zIrG8N@p9rT!oGn2^B*w$7@aRH{67UA68vrO8sYzWI)_-q_XF_#f?uKYi$(aKP(4;JqK1^$t6rvq0m7VZavuljq#2Z4_gJPUlb;3L6Tiu@c0 +zenG@{61YyJw+MWL2p<67E4T&xh~P88-xJ&ceob&U__u=30Uz*H!{>o#3;sBGvEVRx +zncx9B|5^aOUz++Ea>OCZJ7`*2h%cgUmh|?6`3zmI7$9D~# +zpDpzFEp%S?7Q^>~X9)f}c(<6pKLrkbAM;NhFJ2>e;eQW!u(+N!*Y`dxDQ_|BYc+?U +ze}X5N4+FRF6#W}~o#11^3BmKgeS#N&YXmO=Un)2V&I@ii#H=q*nL5YUPD|Xpp6HwU +zn-9+|<7gQd4l(P`Q>Gs2ySB{zF7S@Udj33<^cVT>wA3Cq;#Uqa=l{-}iuneWr_EB| +zjFJ2FTD?DpB0L`R%|mF({fQcz);-BToj1N+xSs&-d(pCg&F&4gdcTh6-bV3#%(9y~ +z{&QeyVAl9-W`Q +zxx=y-b9}!8`-S^|f!hR6Jrw@Y|Ce!mv%q63O!zavwAbV$_8$YcFF(LOk@K^ac(rBI +z*?{DK3JkH#%{6MDBgJU;2u$bYruZg +z|FIlCO!55#>@g0137GaUoyh*b1g1TRUjAPIkKI&bFJS+#k)e2^rS`Cp`!6VdxG!e+ +zKg`tob7pY)4wyyuW{v&WRPBBkc=JlVUP|t#%rfVilY1-p7LormXPL9B$=w0d{;(Q$ +z9{{)CVcPRk;4Q-aD)2nP*UvKNk(2+2>AZT;KOU#^>_z)NL-D_j{yT-<5gzROK6tB$ +z?-eS~!z_=8?`=BYzT3q28!+u(I*aS;Kop$zKzj8{=ibvkCeM8ZAF9})*yp-x7L7`BaVlIJ=(?o)G090Mj129_9zYhl=+9`W$m^J%!%|9)HQQ*RcQH +zVDFrNa-WKUc!KuFad~GQVb0Sh_aJy|yH)hx38p>AUVb)$X-{4)^A+GGk)Laip!ZKT +z#s2dEc!tm?kAwX?Yt(upxqs&f^P2@q{~V$BIeP8&4tVzp(?0KkHw*oG6b(esFLfMW +zqkg5Uz7L`HU4EoFSD)OY;0yTu+wrLXOTl%hkHs9{yU`o}WzFY0F{_${G7&IQ+r`pV4J`;xu>I|LqsKG??bU&ZGpetL>7 +z-!0&YWhTE5%{A}yXZk+k`zCmosK1@yM+H9%t`+vfOW-}|uMcp3eg=*Uef<`dN96aw +zqo}`{_E^HN%wOXCodwQ3Z`lp(e?9oKb(Vdz*T2EEC-o`j?||2d`g;+4tl*cxJ4F5c +z8+aV@H^A|~1wLH(f0yzH`5I;S55Tk^^aOUF2SdGG)b~R0H6pzKXua2u&h@AKbsequ +z>w5mz^CtnbxV!`49nW)nA-yZWr;GZ#8oW#Bn=vr$Y4yhMd%#byeSIj|&tTe*@Aa>L +zJDSemw(L&kw<-L#8vA2xzr6>h{jpwuIPe&~AKuIFLEvSge20OrM104y|KpD_zokL( +zEj>oR|7+p#ryJaPqJIBM90Joh0iJwcLoC|o2JmKKzrM_$Oz84K7MN?N>iYZhG4wkM +zMqZ|fPbx^p4+e+6XBGAT$>1wR{VoQ#KWf>}vHNM@%pE*lfqTI#MEoBIkBRZ|GBE8^ +zUd#Lrc#qJ>a}d!5qWz8q)BfftyI%mNz1uT6{uF-#@*k{^J`K)_{L*30N1#3r~27uS5R-8{GGtWxvhtMizDe|_?clRT`#(hf1wT@!_kDZ%{W&o0VfXU$ +z<2qmQH&-aV_bGqfdVP@cw~0TQS +z;nn{p`ou`|r)~4}IUt_V7p@LO-z*jqV#6#OS)42FKS8_TOxHE%>uSUtKic{O%XIN5E$b`P&E{|DKs2UN>K# +zgW<`~!{9MtpS=JM33>mJ^M5p#cP13gX3-vV7ijkfSYIt(V18GM(mMw{A@tMV;HFmO +zKL*|^IJrQd{!aDeaiRIXbf)hh-*oV0!hh{To&Iu8{{(QIn18PZ +z)0s$~eYu5rPmTQ~+b_2-G`|f;>D{x?{KgjXvmF2TxV~Se_zyZj^(VDHw9x$aoRUur +zl$)Qdu{SZ#2JgoF<_pXx(m?vU(SM!bKCzzhaq_>?=!3tb_%Od%>FKvq^tnQw{EVMM +zsqtG`PZk^Rr>eei$VA{u{8 +z|M}t~T|Ymart4=Xc)O5?XTg3^zBkza8QflfBzM>|U*zz~_tdCcvi% +z&Vp;j`r=jfI=%Ir-qw2an{t$&$G~(>k~hEl_j>(3wKt#H1MU*>{{g%M_Q01p{=b0h +z#QbV16hlnN|8(#e`d2HbHwR2-5_$G_0ld4_Qu9&btzbHz$y=X&`c!=mn%5q0g7e4e +z@B7IAyWo&mAD-rieJ=7l-LKE@Dz2~l^|?-7d?)#7?6T}{bNB|{z|g?;)#=yY^WMVl +zYru4N8?7&#K=wblPmG6;kh|z_JHhve^}ZK4e$QTi2fXVJt0?d9gX_e2I|GL5I?>-7 +z0{UDfuRNUrTHiM5tpa<$0jbt!!4C_2Jp-mQl@4LP0=(xo{rxMYHx917rAFH~v>pVe +zbFRGdJqZqp`RyCv9kP`72_P +z-zn%A?a%Z2Kk|DFn9dDbz~Q^Wp%;w1)1c20^!nRpz;B`d-o^3V08R^e*$SS4@z0w- +zeF@yR$jk@6M(OuLzq0j!b7E +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 +zPO#q3LakCp3UUk1I}RdoVmE}=6& +zR3XPzq?42eWH?62W>nvGa@j~%9PJod)$4b9gH9DqGYJKMhqD#&R<9;cWcJq$0=gSSXnC}&Y;`C!w1K4|Dr;e_T25-CKU(1+ +zA%|9$ok*^r>=0VHY9#mN@dVXVI+O@CU_ujWrE@lycdzbZZD$gzOrVwiER9C9T`C_H +zlb%TkrdJ1YcxW6R4ClS!cvZ48-Hu?F$S0}u4!v-_JP{tqsn&p)t_u&S6-R0qDkZ7; +zcqkNMC2z)l-Qi-DgYjO+ou*JC2vw{qOeo;2ODdwYE0^`mHm_s0c7=VN=htW5Sbeqp +zte>R$P@-@r+o8&A1E>;h2l%Vm0nSCyM5uBg*h`=Gd+p|F>A0@lDnnvvE0V8K9tPCP +zl6p6gDdcly^;t0hYimNiSkRgyrvFBjdTuLfW+TE&$&yz2%T?)IfwF9^-@gt^s&*?K +zP*Mkge+4WPRbqjmZYnh +z=Ov4frh~Fku`CT`&qH-OG%Fh*+@H?o%SK;_?MTsVp(Q99?c6F2r94N< +zO!*>qy7c;0zF(l2H%!71o2()Wsw#+%rc@ool?EeKS?G5*A_qm?*4yCpHaS|uAvF#l +zRNSO=ThMEaXn_!1}rOyt_(ojFk_1Y`315bF-ba +zhDU|u5<^Zg!@_^kKM+&D@)%Z#7H8t`RhUPEAsgl(I9sqZLXr +zSY?v9?F~+THL95$6$-MeN`zI%lj35SL!T97;{$`<+5!)1tHQ;}i|!43pGGtUy(zv}HdA9H +zeL>+ZGfZZQEMUf93>j{I@)I$y>rhu+*}ZNrZ#k;zqcSyE?6;*RX}Rs!D;I+*M&N4g +zJc%hQC0%Oz%f%$6=F9`Gr%*OtWd(9Sg67}bm{8f#mEFzDZ(OInYPpoOQJH01oJcC0 +zyY!o+V!`%i4#taLwFFrpM^zL{6Y+smpc&EkBWrpTN{02SR4o$AoaOTR3me0$$Qmv#!LG+M +zj*I_Bs+X_Aa8ch#>7KEPzRF1E2K4%r5`JYV=}+8b-Zn*wqrRLfd#m(%wK-JH!u5Fz +zC2)`UP)m`_XnCpkuj~AKF=fl_qx~)Nuo~!q7WaAI`|Y*fwaql>i$xOYoNMwNs4}su +zGPbB0k+x4WyXI2lW-K`!yrVhje+wQgb=uOqIXtMmO3gcL8qXft83THdQq +zkV?J5Og78>U3zs~mte@}j>M}>J@w0qq3Y_a+Co0ssPY3f6-j=Q23wPP=t&@(m*q=6 +z-im8?$a@K^)C;9tGKhEU71=6A+Fo7*cI!GuiJRzsf>_w#I;--toy1fcIua; +z%KIL@a!3v9_T^>FoHU14texas<$u0hSDN#H=-EbgDqk({MelX*e;Sd`dMl@;c0IoW +z>eZb%;Z3Z|mMuKvl)ksj`C{peoOT9^%5PEwU=b&(>AFK9 +zRk8A5^dvQLxkXtmeWTM#G){NfvIuhHstI)mR|UUj@m3{DbVhHvfvZQqLN@EB@<)R2X;r8XjJ$dh8QQV +zKf!S_gL04x);FqVLOqvTnU&&OWep283&po`sQ6V%2gwsJPSGOwHco?&Vz*1eCt@7`PtpET3 + +diff --git a/plugins/amxxpc.exe b/plugins/amxxpc.exe +index 51f9ed04ed81aa3f988f6af481b3b7d2eec65ab3..760fe2d0e31c39b979c33bdebd6cbc89ac31e17e +GIT binary patch +literal 101376 +zc%1CLeOwgRxd1%7JHP-dv+AO#L`g$Z4JI)`Q*qTSkp)Zu7m-~l0=7{?sYwjZsA&bk +zVGYB{8hdMO+MBkqHn-_*?u~7&k|wb%Yd|y~sHrj4+mOU22iHW5gbzjLeV#MBun?2> +z_TKxx|GfHR&c{6Goaa2}`8pqSHusx5ITOcmJp5@I$2D>KKRfsL|8>J(+>AfQar>j+ +zxUtEQ^Tv%UD!#KJX?@ir4_1Bap`-`C_3*=wNJ-ybn^Yw~ob;WClQNbSBt7)Vnzgr& +z8yAxttm8+mSAKQ!SG#&be@7O?^!Qk~xaTDZ|MFf`PX~MVRL?dDd%iW$^Jn({o}SNH +z7}s-xh0!cr{+$OZu%0i&+3Dc8976@#roi0dHOY~Wsq<+#=3 +z4P4?^&_3w_!{{*rJd+Gx4u89}cC!RwWls?=Q}PH6V_sx{w|z6Gzo9qjuW2(OHW +zgLdt=>tNiG+u%`a(CaKUjD>5yy=p_%0~n9c`^-f``0y9t?6+5~UH1q8uAi*afJ=Z- +z`U2d&U*5z2|KC6JuaI0I4xz;Vdhj2lT|_pE2O{01T5yuL=&jKlNAiSxi2huFsEc0? +z(OnqLG$VkD(L4(R)IhYXbfmUWeFDi8+)jE2$e6dr>{O%Zvin%A#AV4}?slq~R{9yX +z(@!!jPI`JN$0>&s+cKHtcrR-!2cNv;Zj_X2=@O +zP#xXgEKQYrJk6Uk4xwat%?T-&8^_mPxm^~O>OoD8^d`osC4*3T?Ug&Eh}tWw!hTLC! +z^$uxe?bTIM!F@{~I~!Qpm~T{k#@Z`M(zN;$(&S1*MH6&BpB}oVY06=9uwVDv{9^r4 +zBx=TXzS5vH8yT3B{%8~!jC#s(L!p4<3C!W>QJPI483692M>3J4d1XkGCy;LPR!U#k +zfR6W?7nAPMV=Ca7-fGJote(ooN4aXMwlw|_+ikE4=}X|vmcZz7{NfOX4_Q1GRVN2= +z1(9hUHD(nviu+k;JESYxW?&JCzIe0+&0ekepse&zilMudeN`STPw@8gEJGNVh6ePp>>xi#J2k +zSuqD*(Njzf3NE@j1IBm}2X88p;e|_kry>DDa@wVqT+rUxi(1ihMyx*u4vME)toK7$ +zVFrkbbCaNnj*90eg_I{SK5&L|)mVLVMZ<7z#p+36+Lcbq0Y`zOT}zHVz#ZpOn*$Nknw8TU;&3zI@X`ua>>n<32?WJm +zpcP(l7tn%1(8=A(VUUncpp3O*P8f>3i{>oBA%r{^oo{D!@-$2F6+$=^^x+mU3Sw!P}5$=ey~z64QQIX)zQS$Kca%C3zwq3*q=}5zzfo<9JYol +zO%Nt0twTzkCMTgy(wcIrQD`t5@qKT_k$7x+_dP)j<*!#Xvz+?joOti|wZ<%vhGrCz +z_*ddlL?%}>L0G_;lHsgYpF^|@DxMyVwgb>^bTpCNW>WY{gX4AL*stck?e^wgPzyU$ +z$LTi5AhH{Mn?p`snVSx8=sTD|w;vNRKy__xt;lx +zW}zrTfxsJd3e;4wBCK0HeF{h(XblO&TvP$=Oj8MgeXozT_rwQkNfk<3c#fs>iNT2- +z5-Rz8N|?#EDE$Utj)t}AoVRdrc?fx$$4oOTI8xt8d1F4k|EtPB|98q8@@ec>m9MyN +zd30Aiy;2G>K);+WtmU;_R*S85xDqo|VrG@x1eKJQvSq|~!wv6Pt$R`la4~7dF-7V_!a0y89@-lnU7lr)XBmKH0A=lcPXL@ei2C(?a7 +zjQ%3nUqI4A5W5vnx8{VTIe)p6&ePC>S^fB)Cr3z!uPe@X-fTMJ&4`H&H|Q?1UT~Am +zR&v~TUTCl`CYuH38yVJHiPPF(UI3A@QhykHH_1!{cNGiS1~wYW0Qi^lh}}Z+%x-5s +z{r-G(Y!eMNX2WKSp~gC^#sbM%(89(<)SNX|PL3olL3LTMUYDC}Nj8IPP=6!}3T{gD +z^osSbVl*e&q73ljXQ8 +zlQoCrS;6-Pb3DUP3Nb5S-pX4@Fp-CE1eQo74_l#spoTpvx)d&-T`|3B_ +z>!AvzKN?z>BfLutfyv6D2FNm2M=SltEj()dCO*{6`0&bNA<>q}KMF6qUPDH6CX?*h +zeSevHLixbb_wLko<$a^^ILS`b;{wKm`MmMCG9PCZ;#1AWjt1+j5MGJmf#p2pgNK4y +zd5~Tjp<~=&wqO%4Q4TX_anlv|Ga= +z8<)n9YA_EmQ@%HwlW-LC$+9`Xp^wc&F*3v8wq+(UVa?&5}KM8$z!=! +z=zBlq=ao50GDBhoA=MV4DgX;PzgDtQ=2awhY=4VhL0G?SSq9&}pMTuD_wW@te5Gq5bQ +z03^povgVkMgZ7y`(gKX0E6J8`mE%T;y%f2ihF|)sE`q-bbt@6N^+PuH*5PjCB`S}x +zZnQun%jTrCu%5I)H-48I){V7Shr7`s-AMA1NNFM|1`bS&HNBxi64)|PFg$GaoRRki +zjO4#YbpY$m6QFL>QR1GHznr>;>jwB3wKNH^F4nOw7Cp~}5Kab!fA9|@YzRkq|CKO= +zzZOC`84*@|hA|lb;_qYp%e%rbjskQa)X{xVE)EsEANT~kMq8eFV-#R;myUtgX|%b_ +zo92lJ+;f7$`>+)fck057jHu@UL*8@Oh~zLXMr{tZs*U~)Tsx+C=e1?dM6+5_T$b7l +zY8Ny$n9v0IM%$`n>(*(?RbHCJbaP2@n07{xVO2f_3rSPRxFFcF5hV^U;B}3}$rI6E +z|2d$*%82#5a2S|=@mlSKe`+5X>H?S6fmXKPC`Bm!CPtQ@1YP_E2Gm4GvHnho*j|&} +zw*Qi2UG&vknTZX2Ll;38HQ%cHA6HHCO(ZXexH8JyGVU8f2Ec?jha1YTEmDJ7jf-*npwGASDZE(+}xFgS7uWM8SRF7424OmZCYNWJOyl%}}&rX{w?< +zD8(z8FBv3irc*l(LyP+A-i+&K+pnKJ|GL?kGa+lao=$Cs +z_Q3=~$Jh#TsX`4(=QaOupThqE*Sbl6$PtpkfR*`E+SE)QJpy|I_^q-?;)rXG8-(-@ +z5iH&W7<+jli3Cf7{!-v}@G~;!An!~9XH9T}{`|%rpmP@+Y6QknW&Tm^&DPn_ZE99C +z7p7|E>X!S4!kE#$oHjUyWr4Swn#F@paQ_bC00nl`GOMxkd30lUKfw|WFJNNFPW{b) +zLV{Ull=GT(YRxLOMpA1k)S7J7wMEU`tY)qbM@YF~CCj!D_qu{Y^2lZvIf(UuyKEuL +z=BrY&m28^r{n-_uoaw0T8kGiMNWLHe5$rl^i#J)vcQ7c?nZf +z7fca7FJkPQ2BpQYpvWM4p2c4IjF4l8B?2PTt-W@|giJGZ4bV0M$lk?TH8&}0>jnU26&HTNjAF4NM0)~DQ3<+@jk82cA<+rvM}WliDa!K%Vv9b#UlTtP+Ln? +z8OfSo;58@YJL$yPz~t^6l9e&5Z2hdVb-=H)%2s*JPVr#+kkVze`K$O8Ke}ehc|*Bs +zkUu8N?Bt}^T=b;?rU3Z{m`qM80A@3}*O50&?)l5v{MwKuK_0I3T`^T9F~sJ3=L+J1 +zNV06Dnw5RBQ#_DoNcG*6wE|LgSCGdyn8{@2dpJ|M4HZX8F?Lm-?~p9>A>1ugny=bg +zHyB|~l_i0y*kqxDLu{N;P5ul$FKlTQh*w*d#MZd^J0;%MQI(d`;b~XhlA5({OB6_h +z={R)cL?s7K*m5`h_-3F@);cw76^R1lMYBGGN=4-{3nyji)sd{(DaUU^ETOV(o_44t +zYre^c)BtPdbkkpA70cGK^6Iixl*cNdJE-@UL3fyS2i59EwDvY{f&GGMgI37>w` +zXT)tUSNSUF^G(a>ekO-g&uFfjiMht1C^yVr<_b)7=hO%`?N~B^&jFCKov_1JZpi=5--gF*_ +z7o;i>wDKzms${L!vz10NG2SqIVzJw%`ta}*zEy>CzPr#-Is-lt?q8o30$LmtBQ|FJv` +zID>dGW^VY}XlACLhQv$stb(FtrQj?T`~SXF+%u-4pMN?c72`uv0lI#)T$B_u$ +zJ_rbkM*`SVw%f-hRbf){n=7NFBvF@=;-HiWCS6K$|E`pPMY^t(@b{5r*~FcpLi^&u +zEErhGajz%KR;%tcWCbXQ6ECBtSC?&8%T`N|5}(ds8y*bGQp>O`73#8NI~Ee97W&h^ +z5m9F6LVaO#P(qOkkXHRjd(SWpkE*1=>#ni>34n;^WnNlL><8slu(9`}>uFDDm-fJ=+>B +zK3*I|iWeVuV)UvYN4y-3gmTX$SxK&n=1I7@vs~-I^?EaE&gnRN*_5b0oIsATKA!xW +zS~>?XO4hfjb2T+@uJ`_^lbvdw6TEG8v6`8KHZ*fZ({KL$-~YYu{p06@6HE2s*{W-$ +z-c+Tr5L?Nct!B;-<>a%R95vG(o}*@Fc<+y7jh*bQ5}WVH&)c96x^EYjt}0Y?F`VBqyl5k=H?K&vdKX +zk;&B^IEz$wqke78Octn@?TquK#o)LHS5x-%!<^p@lYVOH4!vx`{h1Pfu|9VPU;hdV +z#_U(%ZiSFv$yExKVx<7{-aoP0lSa*VbCP)+Z;P7@_%2%N-e+#}RfBvd)+8RVn2y#B +zT!Or+$hs~JO#^jWFntk2(&p>5l*Rgr{kRli_4LY7-b_PjS+QTaYT0m)=ZrKSym-?Q +zC16lm4Wb`hj^KE|x0yVw(>xWDG +zJ}e~XeV@dJ{H3}80yH6`vHgDWz$DXA@qi0jVxch@nt~x83?qVJWH5{hhC(om4u&zo +zFg6&PgWpuuD6{+ +z8M|r`w=s3>_fdZ5|EK){c^~Og6<~SY(fmjHNk)cr^nBFiWu1Kq#Xhx{Xyxi0rI}Z{ +z4D#pRZD_z>0v*nc%H0wJxf4+rtVs@kqyFv%6sg}m&z}3(lQ|h}+jfE9VBm0VDWB|g +zS~;!|nbksG*taSc&new)JF3DAUwrauRDacT$^M4b@PfS1fbYeF)`Q}~#23qLC#xpN +z6B~C$u7oNU?3#(eCKF7@$vTj@{UP8N0r(&S-zHlcb*Ke;nT;s~mnQb_L`WSIH7D6> +zYPTJ&Q9%@~#igp=W=RolO|taPU|Q9&EiEY;wLX+Y@9kfj1H`aq(P%z{`l$roJY +zQA=vO+OQCcsSS4a%wW%K_RL{VCws17&y}%k?I@Y-TmiU|U94?)xtjAsBWc1crOi;M +zEdsTqg0Bm>Cy3q#)csF1AtZL@C48ImmT3SINh(;D0FQn#_J&Ll4?<1wAV#2??ai7f +zB_lb(K;E=Lo2-?s*) +zLk-hLaJyDKWi*`n8m37HUz`Nha)tz<837${H`gb|D`I+d=*Py4f +zz57{9A$?-mWv@~EU$|M#rlcS^U2mf +z;fAv3gtQUplZ5){;N6~Hq?NSX`vRj8o;$-eC*>2~mXn+ed^daR?c%{L#Av(Xm55PF +z5D%IOIiGS-e6h>$Ja!RKpIxp_f?|mVq$McXm#~WvPg2esluwPG6WE^o1Ln?zYj`|N +zhO1WzF1L7avoZCAMHLtn%ve#VxwA{DGww +z!B_Fhm6)y3kZQ(M6hsa~1Tli@t#V8Vi@+pX8>G+^@jiMjAiNZ%$6!D${4Bsm^la3a +z4-8#3kI^T}g@l4a@nEIVmD=n1#LfDe$j-s7OSXFRqP#W3{jG-nich==szGUC9mR78 +ztCEwL*D=fw*xtcu$i1e|ZI@6s0LBW`wp0tYlVbf=C~xZ%y}!UJalBvISp(f74X?n! +zy^K@Fl=p1MYKp~!`*$KW$f=VbkZhqmdS?@JZlA^gj{+o)H&j?jwiU8oVp#%Yk)2o# +zy!fr<)}!SoKlSD;=q5~7_OWt+M!;H5o?%s&pZu^qn$>4|E9G;QVStE=o^l{S*RNnM +z>Nz3SKZmnH;8L;v8MY>UU4%h!6T^@mI{7g}x+xs#&46?o;1$I!*KT}y&u;H#)(3vMcDvxF<@M^ny&|Myi3G2G}WDgszrk0p7bZGuR +zqeJtT(P7;G79B2+rh~~aiVmi(3wobh$M*T~|5=|8U$@VnD+AHNK0E)XeeN68=fH%p +z4oB&2peq3Ss~yx$Vn{L8pkh28QjCucE5^rAF(&Y{z|x7H+^ZqQn4l}he4T@ofmrnN +zt%WW(Q*Sk;xT0Ivs^M}t(@55_8cEPK(l8mVV>A*}mlV`WO3UZ!&hRdwwNI#P!P-xL +z5Ug17MFcw+!lTnqu#U!T+u1dqy`O?=2V% +zYns=aP6a1g+<|^3o3Dg087Ch2(K89@T+J%fxi!Ov;(s`Mvh!)ykGbQ)_49m!zN6lG(No8Se9P~Re`GrT9q@*M40C@Uw3XKz +z7_^s)-D)q(4f@}X_&{2xH@V5{Rjz6Z*^7S8HWSAakUZb;SVGE(dNbiS|ADc +zMQa{_*FWOnHF@Vt%{XiPx^^7j=qO#p<9FT_G2QwAp?guTGIbJ|4wjKMF-i$pOm78Q +zci~erflt7VgMpU5mooRM^*5#m*=U4(`Cs8?{9UpoeUWT|*kL6VLIkF+b=UAKvklSW +zfmhiQteO1TcRory@JC#Mg&rn@U;dI&$L$cq?K9h(Ivvr8fg%3m{|26@Ek|e>!gwku +zm*jFX_fYu=>PLe#ocroNq+zdEU&Dp8LCWk`DNs_U;VGbDA^CHN{k|ZD{}6sbr|lDO +z&Rsyq=Yw?oTX{5#n%*4N^$9j6I^woB*(tS`jXd{-5#1mj{5^gUHzE^BL8JhiMut|1 +z_t1?L8h0|p0Ib0}Yb^V*p)J$f57J9K_(N>Av_##xe-aaMv%j4DkmJL(h3TzeA@Lvy +zLN^RUGkcTT>}^E7QLdzMaxB}d=9T{FEf?V-deEhAibJc_*rEH&<;r7&oPJb?6`2Pa +zJSX1+fxyX2Auw}tK{>7|%OyA=@g*qzNn4JP390Q65qJ62`)2!D3fdZzVH}%b8k@n7 +zWGKxMqbm*e$3-qF9~oj>VWM@s%hc>SvGvpAboiJ`NPk-jsf5JAU +z1;br8phv{w3t8ML6auR@9_u~cV7?VIDlm^6>pR{s8`CA8GtzXuM9O<;0~)8Jgh2#e +zn)*CvJ<;ZS+3?}@Qhc*nh(IoJF{gLXvu>xgO{d=2Qyai;=v>Ex?F`Q +zt+}RYKqvcI`vRUxFDP`A`NS@eY%`gedO|s-r8e7+ +z;yEE8oLSwCD@|?NaRCQcXKKDto@RYqx=GoN`3ACsEkxDtU`seqTf?q7xLQR{2O`SV +z6^|PMADGfxwzMmU5Ykw^96!*Bf;ltM4|rUsp7J*SaRb+&uX`!maT!CiotI*vj~?T! +z?YK%4tZmEh5J$E?Uc?ht)sItJ2t9sHxn|fhv5>UV%nP`_V!-nu*9_I4AP|B0)1xEa85D-EPo-Hll^0xBTe+1sOnkI0=>*WpTc9tuz>_EqmlfNq-*!iz|&Tc(t +zKEV8B6wEw;`SB>2yA%ql)KtCCn`0ku*ny*6>Q|^?bkaCFX$nt<HY{-zmU# +z+Jvug5`ro&=yP4)*j-5^68o@5Z{f~WjS4W1%*xkfzHFP0d}(`-5pE=w!|pD7~gr5uge7L +z8YLAodPVWv>RQZtE +ze2INT)z$a~th0=Obq5GNV!b;YYZvppM`P_`gTFfrYY=*h9JX7>dV3J-&L9bfv99R9 +zA)Tw(JO#f3rFUM^hv^i3@Nb&t(aI#V{*@TtwYyi-N{frwdF#(Sy?q_htf2kr^_ip_ +z!~^3~JL*2rAnl_!-m0W(-le5%#6`gT2*-;d>6eAL3g2=BqN;(@=W@_O;V +z1Tlf~{BU`|DOf(e`@hwAu;tYJp8r;x!3I;)`~SJt2EVekk#_W2L#_Q!Nc(BhKiR5s +z(I9$m!EX_U_^NDj%6HzVBhrr>>L0Vp7QU)ib~bfk5D~0wA*+lvm%1>B1rPHK(k8#^ +z=`AakrtkbJ*7~roW9)Hx+|L(0?XoGg8BLlQ%~eg0MQNO+RKbx(0mj +zr28l1$Ktke=-JA~%l@waf(-V)kX&%%2cRU^LaGJgBgajxwxNxJtzX>sEUWFnV4lsh#dCT( +zLX!opqeKUVI6VSmQ-qoER)BcDQlLTtY88mw!qf}VT=chzpd7nhv?>v2DkrAm^HuhI +zo;`n>fY0p-sHqZ4^~&+Sp48@m=xLTMB+k<=8MWg|D{qs{RToNw2q=r1nfjShfg#;~ +z6Ep}&#xQ&^tBAh*HL(Bo@nHXF;{6zV5M6+gSGe32m%nG{=r;hMDGA;kN`^-f>9@6R +z5J?nNW7Im7Hr_T=bxB!t7~3f;m8Ml-j3x$KGFNhy#!4U;=B756_$!ktn%4rr%K!i* +z7z7d*DQgGeojomL|C3-G>Q4iM?cE2_Mu+7WFW^-J)n-oru11^J1oe=42|!Bi6gjPy +zba>84723T0|G_f))#|s^lCx^{Y2_jhaog3Z`{{~l9G4a)eFBNa+BdKmO@}NsN;|37 +zhgqR2(n`+C5owOoQXJM(f_F2pT1iPq;5TiKa~VK`y6SUI2sVr-j&pS;_u2K`kjM9o)F03be2E +zML_U%_O_(!cNUIoGt31R?>c`A@Tkssm)asRi@pO{y$-=3MY-rPWE^l5@tOo345}rU +z=-&WF2M>R#T(AVjVY^RG(HTX=#6D3^eAMpmjW~>C`BM`-4`FF}wla=o;RR8HPVyFz +zav>t|F!Z3p#iw)XJOrkX&wxtY-rR0l2~Ag=#d{bW-A+~Rray-X3rJwaoN|CmyAhYd +zP>9ahE{jh!+x+q*`qvu(TW%7P;S@+4Edn6FDhn=}a2s^L-$loN9jY%Pf +z&2K4qm4c!TNt4K1zJUnRrgYBmbw-+aZ|yVbTp*&U+XIY!D4VZ+|5`&fPcqH*&5uPY +zor7woxuC#JEi>7{SEXN*c_q)B6yg%RjIC=k9@_xo#C~1Z7QU*x3gzmA_V=opGm`Ml{GD40rfg%jy`X$I0U&4Hiu<2@<#CyB!} +z{Fli(TK5nczu<|%n{08@LE#5hF=NIIcAbP-b({-PfE|)`oTJB~5kG=N +z+%ilB;31ML6p#|L%T1~+YHmM_ibs>CD%Dm_vV!|JnZ}La5;+<1EGsQ;_Y*k*urUK> +zsVDmS(j3-}H!4>($y`tgQ`X;_*?k4X^FaimxqbCs6 +z=IFt%0Pu2&zd%DlASr`n^1#cB#D>qX6IX4gtBjyLs|Ur$U&i^fcDE)EYH~l#n#*ys +zYIwt9Lv?@3doZb;RXs?mySqF%n=R?7TBTI?aMFyIfF4^@PuSkw7)^YAau4wZqKF?O +z{*;zLY!kk=o!(?5ew$-(Q?V1OcF}L&$_DUL{flZq=ld{((i(%KKjri+$6z4YMF$uc +zL+)~=dXSU8MsoW#M}LC>x_7^pI|yC$oB_ukcSIf5u2)cdRGT#k8AR7YwXv*n`irSZ +z>#rftK8aAk$fPaB4-}LwUG;j7C2#@wW>sooBFLLjKy~%s&R;Fb82szj7)B81t$N)lwo}S!>TiR8J!NDuS_a7`JI&p +zI_oB;DC9vJ1=)~CPr@jG{q#D_PS&@JH|qJn0tNsq>3e$GO*7di{0U=);B{bTKYi&& +zTvkZJCg!px{A}f2Ibuj{Pm4H$CUlpN_=Y_YEk2RCCK$tudT^y0EwhtOM%@dTm-x{# +z2Q~g{IM5*_gLkjttxmKxVYs`8CURVCTOgx1)2vAIU348tq>J>^rRnIST>3h$uRdlE +zUPtp-1k@0iz`n?qVx9EcxMW|R$kZk{)MdIJ*@r~_HP~b&_ngLbvZptsO>#zB&X}kZ +zdK@%um&UOwfGmH2f_@j>d}BzP(1mD=#*BO5ZGvk2wHul9Wv=MJHs?Xn)H7+^HMM#EbUk{KCM?0>6QJNY`ZHD#zcvmW1#L8c +zhMYtjhbyZbLQ7PE!$qfNFvbq-1wpmA+|;I%>^i#d&r^fCFZ#w|j;*u@nfxv-Xzb~p +z8A$nf2f}oH8XCp?0s{KK8FcF48gc{MDlq9+n}MSZs*^l4NFEr}I*Z#|1a4)~<9xE# +zsTa&IaJkozc?hase)#ma?ac3hcKfmEEqkyMGqLkZ=QWaRR@3=4WD%>nWKgxOQCV}S +zaG`3ZuLY@k$BYv_$dA;zk-+N(xL0z?Q6X;=iLerlgfJq79X8Q$WM*eaMTupPEJsDAeUIx|$Dl1_sW!Bawu&0$h +zb&|0tquQIx7}bzNHYam(ENTncOb4%p?uNnt=xtRXCFvgKIVKXvATrJaiR8OUS|_wN +zf*u-Tfn-_8CS*AB*FXwhSr|cgu>-%BJkt8zW~<3Dn3l~~N7%B3nh1O!t>v0Yi2!aE +zdivEsJ!_^q2L~g;R%YJB+b(a6p!sYsNH4A%agAMyYDPV!M$+lyk=A&iNX_J_1ybrh +zOrh5q^mVUVLLh+{BG_^TDF&zqTIMr*mtC$1ox40d?A~$>%h=Q;SaqD~~#tX!&i1^*Be$bA`L1_2S6B+&Hy#RA-Io9Q>G`O_**??YC?l(EEJS_rmiWk|2!RcoMvveH5ZF5m9r`(X+)Ib8adVX$hKr +zS{fJ3u+SWq;T_K`7_FIxFCG&rr%~<_F3QBu1WfimkLwj0ptJXNoIWo2W)MoCf9b~J +zzjp^SqG>y3fZz2jnAaj(s}$v=2QX{TE-1P8=_hd^XxQlTC$+gTBUz|#mM7I+VXM$_p;hRJt_O?po5%s>3SV_+-@D5D +zCdr&~ydesgce@O7FFE4t#0$J2ut0EB`M~7sGD?w`e*+cA=y2x|4jL%)h2Vd?z2RzgkaT=b{JlEV7aW=S6#EgmRISobjZ}pvzlGcX41}PUGiG;sA3p`v&@F<;AE^dv2zh#iM)eTu&%OLBKayvX8cEV%h +zYIxMFhZhe*-quGTZ|f$=+q!kV_W*LK_fPn|Pu>gWVJTh{iM%{HyuGba-i;RTR?B_z +zMdf`_N+v$!&2eOsI@!CC_ip8v%9qIzk=5Wu8{ +z$qc|pM^%w6UoPs31!7jlXz@8n&tI~I%dzXx-g~uTe{k;;&o}8ZS3pjK{NPE6z82gn +zkm4I-@Q$8i(p&ZIQof!k2VzgViQo63#T9#+#QaGc8mb{a(wBP7)NLA2E@?`)miks| +ztJ1>Pz0Vm8b#mg(7)U2EFvvpPM^H0=+Y +zKvq0torSDO$a*`lyR=Nl`Q9P?DAjxKH9Z)_fM_mvYVV)89|C_Y{Cq#KltI41%YVKP +znQMNa+X1skw~aF8X;wqQ#(2G{-e_3kgq3bb6-PX +zEq*05!KRLL(9AqM4iA)PsnzFF&!pXevJUF!hVe}OJSc|L&vz)QA8_ova~Z;E(?Jon +z1s$QGlx-YMrIA^ESbbxx9MMl*ODp(MfN@m&}Nbrz_5*t-4!_Uj=RA +zd|9Y)Vy7R2*67SgsMWq1NH+;5Ct61!3I+uYNvPdPZd`{mqs_P)fxuhz_2{ns$mK%C +zdaUa% +zmjP>}IeBoHFMYSyYyy|R*=%dAy71k0vnf|7wfQzg;AiWi +zpX}Xev|y$g!YPtCI@GK+;Q8Je!-X+H#i&u=yKZ!H{YX-`w4;9p!i`I@Q3Z5k0j}pf +zhlY`>%<+28u^UUBbUYp}V)jxufnLuX{WPC$231cdBvtQOd_Hv=pFe#YpMU7U=c}*d +zS<)w->SuxX0tBb969K1J|SG_$DZ)5GDl~z3z-z^PS-6*MU*>OhCfN6yr*e6 +z#RIqb&}6XEu1X_)P2at7jk4Im9YJm0`fv$0m1vz~*F@Rg4qJY4I%!+*_U7S{kw!*F +zn@EB2`{F5~E?E5PbZ-EFMU;x}7R +zgmp1ljEi<=>Ougu8W&&G%yp=j_dE|pA+Bv)N274e!Uc=o1nBsoS-=CTzh?j?397k! +zKv(%Lx9)g?TUv)+FFlM!I~ck0Dy&94E=vzP(L)7yxmQ}?(jm2ZwPEyuu}HwHL;Hu& +ztZDJJNSi!fQzHY>E;`VIN~ITC+G0WL+FHssnz!O40^7mq(UlMNsUMn@(@4f!BH6+R +zeh`8`bwV7H5Is<16`=s1x2jWaKt1qty6o#OsiWTrG5Q+9$SX1SqEira?=4I +zW07qU4wq!D(>fX;G~?~wP|3#puz|z-62z +zoV7&Lx!3S+(lWn`%wxX*(F6c)?Nr4J81CJS19z(8S(ezMC!S^rHl(MNMF_!>c_)Xa$Lj2s5JIv2>M)UJKjF+b&FXJ`Qqj?z@Go$D`SJ}m{Wy7i}wcWJU{(TC@VwHGKW?IKR|KG74lVqZe#n~-Sidwh<;9Js+eEk(oZ9}Lq`epg9Laq +zVNg3ox^0)mZTMXu8A`e8&El1QzDh2jm)!VS0i=s;r#ECb;Wrf!F%rMYZ}V4)xHeA3 +zTwD_Xv?h6%SRi*X%N@wkbEP|cn$hW<+Z6P|SmUxl7O|0hM~zfkd6)LiUWSZAz)hdv +zs;R4zuS}wASv{zaN6Ir`&ND*{{oAFiV{o-icQgV +zwkvKiqOW-aK#m-OIS2rKr>8adoi55o%DI}7)~0iZ@ZrAhfs!(&u9{{d)XcvFX3cV;mq9ZD!R+!5W7q3r^Vy;;t6b +zGV03EVGlNYq3MWtFx^_<5)VEanR>$Q%@A-ic^du#OSaiIP!&y93Z{2$SF2*~Rhnno +zPE}Dx`q4L#>YF%26-hwaita7;k)NRvLO(-ur=y?!5>0pLmuP74M?xxaiHzRLj5n^n +zt^mAlW6Ngx8z*~%w-_%V_GBNO(bu7L8bT{bx!r5jaac`J@V9)}LR9LBI$VrvW<3vc +z_fwm{SOD?Yan{)G5Z;iau1mIf;V-3g1pPrkAF$Tse&QGm)~7o9hkN7?uUfA=-ycpN +zyu<=`_sIq!bzU}`PDZvmG_cM+><+B&Ta^AGyk(g;y_IU7PYX^#|MJXu5jsmRImLEJ +zdhL9<=$T?*TM*ttsum2AV%*|Ub1x`Yhomy^QqId4lbr2VZ^m{DuFP||a@;Oi$vbq- +zERKUl4W8!B_N`gCFLfGPmEWwb);KAdM2<$G!5FM=Wmt9Nr*`kqpUmXAKjPS=6_~|(ymU2K?J@dWc-1u}w3Udw +zAlS^WW#@p}jj=2Jld3*tQpCTOlN09BqX7DfNAi{kMG(w};!NPU%u)@)bB`gQm- +z7$*9Tiyc6K2~w1v(dyC{{lM@&i)#^L{ii^+x*_C#vHorVs;JKexv|3B;ZF@H|T&2g*w+Ur{l5fDeU|zv~ +z>+aT*II#dquPW3@FU3P*S)oq$89}nklPZwn^k%3+UqPA1T+N^n#$Bv7?iJ`UiB_}u +zR=dFA&)bl6bW;SlcKeaJWa->5T%^wS~G>vqz4yI$R*5di$rAbl{SZ&>rtoCkPFFx +zZAiL-{u{hwm71Ya@)pJ8vw=vG$pbR%Oac^YGhk(1-yb;*aY?VAR)lSyoH~8oLvN$8 +zq2C|DrD;8S7<--tL+h%vmI9@sn()9?Akx-a9YtFA;v4+&p4T$aKJTslDf4`%SMn}( +z9=@Y5jCv7KITcJbm@ce05U~fdRkKm?CE@bn0G>PBa=vn?6d-C96zUdVe+1z@crJ}x +zQ9hpG`#6&DQRt}&wpQk08r3_Y_`P)lols!Qo9qT=Iv!>QwTtjDCMQKue*yZF*cSZ( +z9bU#l60`oR_h*4UTT*Hf6!#hv? +z*6K-0v&Bh2z>oeM=DKVh9_^GFkG<$cMoO@r+k90s7O@5s>QWRTJ49OpS3Al?LA6d6TKP)9%=?K8eI;h +zl_ZXSBfRadU2Jo6vtYYnHPlr#m8Jy2EW=<_z)hzU#1CzH7wW@*S#Om@iHD$Ja1o@| +z0@_m$JVisIdLh>!1s4wrXzx(ya9&_CJ$tmoxl>IfG%7S +zwz-+(@;dednV!XE5qo7)DF{+Jay8!QDGS&o5oE%<6aC`7h^smeduD6daJSMNp=4jx +z%G>N37o%pIATooCX|>-7iPVPdJIFjn&t|*Vd9|*UIo7AD-Y9UFr{#Vm*2kd};Gj02 +zSdUlikOZZf2ODMbA3{hl`nJDrF_OQgF+x^<_fPfD=or$w(}Qkzz7m1&lDrM9M3l|9 +z;m#mV%4!o=yLv{gvO1O1@q=el3?O$0M?^r$^d=x>J6?4HoKwAtEx!Q0!(wm{*O1Ax +zrD|^`@}s_5E!Mw+^T13&arE<9nq$y*b<2*_GvqQ>!N`VwgC@md+mW?-d~M*-)=a+6 +za|YB*@5(@ocL{UimFCZ#LF0rxF5L?=?Zxh4+)~+xJnCZn{Ryna9*D*plX-{=U%*M4 +z4fq6N5Uec{d1r}o)g(TFI#y$2uEjrX!3~(Q;?j0M%1y7n;TSvuOODjOZ%RE=J7ARU +zzh*}g((pHI$>J24mDkL6J6*KQzzz~@x|`V+TbnHE=Wj)&^BNw3jlx}j<(O6m1yOOU +zk)_06947TJBZ_uWbajgYcev;leQjQfKx}68Wt#B^k0q;%_M!t%C!heaJ#!TLQnnYq +z8U?u>^8U)p@BlyJRvvm&{m8-KwysG`&p +z_o{`1421CeV8YSsQ=~i63I%z*lir7z;RsIGKuD*gRSUAU*JqSOC%q&1N;XA1&O)mc +zzv9mf)Te4h?qtuwF_co!;*VJS9}g-@L-lajrhCpQ-t~xn=jJV +ziy=JOJ@UO-W`q9QSj5eHPRPQIg*{#D_nJ!jiQJ#!Gqw1xMnFs6#Gf+#1v5tzYZWxS +z^cedjLhh#tdS`5oK{<(Jfrl@cjs&7>=f}t<%^}#qs$K5OGIL4bAK0-3J1+boyO`X} +z&Q<~k&S(BZnnT!RAF!tjU2Jf9<1~Jf3!b +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 +zUyAX#Q@4%Xws +zW9uJ$TH1`?{N8ixUwQl1|H}80w^MF!hT}B7$JF}GI>=yhL^JMoVQXef +zZ?~m);Tf+ou6%}pyX$^ys7M{k72C;r1mk6 +zkEpjcN=Up+9aW6=DO!8o{LejnOE-U5<=+TJc9hdwt1bn{y5luC^Les>eUK-CtSNyF +z$4tQ{$eXd^v*DffiW;CrP5x({@u+KsGgf4Eiw98Zk{&ucCs5mwzA4=*w%eJTzk +z&EjNsQ32`GtR|w#sq#M!6$SNVZK2vy+F)J8th(ADS8d6ei_BjCjCZjEmGTX0mvi}y +zXf9v&>6K#!j}|gC&gIjeZ}5Ud6&i(eX0A48A$9ICc{pp)S*36qa(!|#sq>F+=K*|! +z4>~Iqy{ReKzU1ObcRx7)E%f)0oN^^q17tVh@u=2Jif74ePRKgx94;N*2&N#IIcy2K +zh$dTt#-_C;!2b{wgh-NC-hBqMiv)!b +zgDQ>^KExX4V(oD^`7V8NUwfS1OjL*HC9L%5Yw!K#_8)MDbzP6ryHlOnLUiZRI?nkt +z3Inw|SL8+#1D>4-0hC`x^O>=peSqFgyMjvWAJQE)wd49h0%XfqDD6uFg?#E9;`WFv +zDN@kspW+SgQl0SzJD_4Eci5JO@bmQUp^q=C35}%l6pnmaEd!dUZe{$T +zJpY1Fd}cHVbz!H>Hzy_Kl)vZZx$IT8uFbTKL>urLE-cjI!)+0RgaRGk(*s+K1)-Dp +z>piT-`1`u?_DSpPi?`_oe`qiM5siX7l0%Q2XKBfD=w7?&$_^had^kVNd=jP8Q4I}h +zmq*#+&R7kS)l{oH8-XIgsEOhrIrp&$lTS{tSU~kk6a^- +zCyWsv3K1U)79Sc-`pX{cG>Q~UYO?TaL=E(k;}IPZK;taJ$z1qVxFXa-oNBTICn(4nfq9QI{`zpbWu-FmeyJb^OJl-DIY2w#j9mJS)zwZ +z&r2G=cH_wtJy#mzd9H+p6O*`>$CNCCN@cn2Qucx+s)eY +zX?TT%Dp)keS~iHU)h5j+j|`B{cyTre?eJEyUL8JK_IJUg7Ze{T@k`0Jen72NY%`S< +z^$-M92#VIFqbB(0N3e!X7J +zO%xJ>Dy|v4o*l&ME3Vy%SX*&zIACrdzdi)jl!P3?qsdrX72Pt|)<@K!U{5$!P~vea +z$6#$@@0R(FhYPW&l4%H4fC7yQ**C+WB-eJjl?{-^5DH?6H0fZFU?EBQS1#3n$c?N- +z0!7_`FO_W63rQMb4piYpK^Le#q^@(-NoVZh{K%7Ep+pt@sWOQ+Q+t$8>AYl{ +zsmnr@*o44jF9h2QG)@C#6lMs)+YDV$ZR#?Ul{aOM2hQ()zCmMcE<5McAWyc4>QmZz +zQ8*U$5e4qUDDa=h(Po@3&V +zLJmYzi}QV{Mo?izJmmW{*}n^Ar(S5nvYoV5(UMltucJ~)D`wEHcQ0QG9eTPD7ZgqV +zb6_;>&OXt!H;3{iM-<#JDu)^jHB4f5N&Hs+s3(iueUox1p#m>#8y1L_h~u`DR-AVd +zG^qT2A&l0@BrQ`p4;Qxtt?>}2>%=0IGnLcP3JM2(X}!kIPSDv>x+9urB?EaK3v-@W +z98CT-Q<~VAN>tmIY$0#BEq=l(h!3`T3yE|VG?Ob-UdiU|IE+puK`5eL5L|f&n?P2& +zgZ)E_$Ktj?`c*8JJzI!*rljJgEJ!2007OOMH}Z|zROf3^sli+%87zloGa#Y>*T({g +z1bs;nkxZHyAa}$W5<7VmxiCZaItIdh=lTf2ayHJ86>oOU5;)Wxa%SozoAc3Q~0T#eH;AM+&mw9Xr%+ +zDv6Uc;3TkjByf{*mG(HT8ME@y4VrOi>}0Y5_MgsRm&?;0E=#xd&P;V*)0s)in6t(; +zDe)!23RFxOoJ?8GEuz$?OAL6M$*C<)wa6LBP>4vJDv8Bf$S!>9AzqWCp!9A?4A{e_ +z3UhqFq=E2{8yL%IJfg9f$@^RJg>e@v8%}@~Gt{(i;S-IivWU62)2s02yW1R;-XVte6cAkN&{rzXK- +zkSwGJ3$rwqR20yOcFja{a3-3gwIz1(*Tjt)<3U(%s}5ki+5pg1;(n!ZD?tTg0Xs|GP3bFm+!(!26k6Jqi|XX*a&ojwL$g+ +zzj95!xk?L6uH=+amZ$R~UXX>T8Qds35gDY^Zk>hvF(vTXydQd7{g>`VgsHS)V}1rU +z0<|IUeM!}`!dB)}`t5^4zLhoH;)v#`J4%N_*AnKcH90Yl!EkwP2cFDu0dai29vbIo +z5)RQzN_*#{@M@afq&3?Uk2IRJ8<9#I0<&9=E*JI095FYVj!@F=?Dkvh?_H%-e~k6j +zzpJ`OmF`Z&Y&wTm6Q&lFEHhJ0e$a)Yw^GS4+J#yeem8nquLmMoNbIu5x53gDrDdMP +z2P%y7+L=KOd@aFWwf;3q~x?E1~48PcV1ExuS(;Sx3@o +zq4iJ^WMwCwMFsPZ=oITlVGbFqi069p;O|QI82xY33CBR@)_Kw{NnhZzEN+%fNx5t +zN#`9+a*|uQC9HudsM|16FRbY%wyDTNEFN9DMED^c>{0}0#WkGaIj`MVB}ruERD4W+ +zQB$2xsTaDsCr30R +zQ>AT*<^w%bi5$Yh16sbN#};Ud!^lu8^FbAu!G|rqTjG@+OMW{nbH}hca^bLxGbR9Q +zckx}4Fc$33UPd*^opCzkaZY6_ac)J@ZH7HTX$uq{2oCF-V}q^Pjnbj1xY824kHlqb +z>UJhdY`Sn1o^1dJT82wXhErj=|QIZbqNKWizTVutB-1#om^B&H|s0clM{K3sU!ep$D(z-t93App;)6Q?})6x +zF%`Dt)=B@yi?K-hHyr*(mFPL2h#JQy-Z1Ypa(9qq9Ep)6s?NPnp0H2astew(Q{tXv +zdx&&OtCqx@s^>6nGq$BRdQ>Ato=P +zDJmhzZZ$xv%yYG7K`l=55w3{+ccEBA6H1~i1K-9gtS*vfjj1%F0`C5w;~Dttv`T2; +zh#H%9ELMt1&ukjug*Qks|HivE41}}RO6VTd{=)W9>bd-yAM+dp34t%cTiwX7k3@A; +z=1Em4?Ny0?@XI0<$Q0OacHYnIuQiiPqa<>0nqbE?!w#zx^)TFw2boQ{z<^)t?0@4W +zC3!H)rIC@Td`6>C%o1rvoI`Sz$&x2Cnd0FG8Guo?GS|zV*q#JbpB?=qnZ@l`EIG8; +z|5I6E2vZr29K#AbEv?ytc@(TzC_w>LCrL75jr-w^It?t?vA3veZC30%QQI*f^LPi4 +zW&A!YKTKd>D?H-NReDC+U}_JzCF0L$K=i3(9{&_RL@UNG(%2n16;4;On&~R;PG)CB +zL=)cwHC>Awnlv*i+jcCU&5kL{9_NeHjx^#GLAH@r5@Vf%>Ci}3az5EHxd98!HtJ4Z +zxy5q`%||572j&K-?kJib^XN5LNE}*ZN)D{r*fWO8>ebK1uezRh2uVbT?U-#qu +zrF=9f0%GE-^f7T2Jz_tFqVPMRO$rj$hV?yKYC~%C*UdN!lcWBWH0#C&=5Zt1)rZju +z!H7(wdC2ZF(w%h`WBvNpOeY`_`7YK6uyQ-* +zKQ~}ewk=qo*6If3c8o&$n{Csp8!Gmpu?I`G>;G!WRw@5nvJB;IC5y+B-A{c=V|}cv +zNF2SW#ZS3l9>uyQ7t1I-Pdoe0zDnBb)!$&z0;NLzZE-$;39YauqQhdzNeKW-&)(*Q +z0cp2mv|+WB^~5aHnk_O%G##0zjpv!l7v)hz%MQh8Fxx99W8lB409L2ojvkHY%MLqr +z(xsl%wZUewKnofs7dp~a9jJQGITP}NA(0_p+>SoPNs;bo`%87ozdM_DVjA|=_<6d9 +zD7ZX+AN9kI%k^3kMTa04L~iVLU+t;CKt^KcOnG?vz-O9sf~zbzna8k<)G+0dgDDGZ +zDA`NHhhX^ny%J|GEO$DAW+aRbibawJrzNEJc`9hF&q>HdjVb#*E+ik5!jinbo)?mT +z66IVbdo%UsI(o_T$P;J@QE&hPTzG-8!TuOU@E`0#`n(o&3FbPDUn_T9fCaMtsUbDTTKF1eePyT7r-^muh0ptG$Y#T8CuOR+?e67k^)q9{VpVr<@PisSk82NCkzqAtzq&qR#U81^P +z*jG;d6c=fv*mGVw5F@MUL~V|e-kH0&-JN~_>&brshz{*C_;6hdic^b-n24d>e!mx*hjvo!iC*EjA5o%zvE +zyT0*S-MJ+CS=TqdWZ`@u+V1+s4VH68^pmb{6bo^VkABAWjT=qpu;}e7`5WJyat20! +zj^94;jY1CMy3Aaycs$Kkn(6ex0w&?dl4Xlv7~xd|AN>XDyoI{X*5d;OlTo`bkeSvF +zE*M7|?)j!iv&wkbaDj(3JL|2)OIz;OTupo`F(I>BS6Z4a8g=_xMfR{1L$Wi%Lh>O% +z`Hbi^`$8o<9LOFr(2KtHfZAzhT7X8H738{bjprLR>Z|256x>0PMnIN+2!m`S8WsFq +zibk(b|0!v8ji^amv~)?mI2jWpQPkIS)E7)ItuE~pzkTL9>`DUCH94ZjV)GGx7gBVM +zc$bHAfUGahF($3X)(`0G@)^T9JwDIUy=^!UgmJhlm@fLjHcVUXU8TC$mZGa3#_Xs! +z$B|Lt5((H(^g+&V)(?6}wYO-}RVm{j0Z6X0nVm>wBR?#^VE_X9hA;Of#H4AsSEQ%L +zP)w%M0okbbo^Alj$CvYtb6$PG`7?DmN;i?H%K-)bF@t(h8PPloZ_MLj%V#WRuVHRS +zAvJyn)s3&S$0^GrhjSXC%^84~e^3mhYE9k895BW7okJ5>Exs2D)WluEvOo*6DKw8- +z$in^8ec5?nCwLj4&aoci*w*fA_Vto +zP${s+Fo50>NKZ($OBSJDm^MYFhd%a*W=m?+Q0#)x16u=JDoGB$f+|U>h905%h`+#V +zW7I!woBR&6w6UH=p8d#RPHp45g_Ld-+DT5fm$VZrNK?*I=5^JAGxdtgtFqk%O!i +zsBG{c-7*1b^?dCXRPyS2no*6Aj6!2OhW>vv)5{5~8t@4Y1a;zMV(6psHkN +zmIZ4??0=f73G9yGy2Sn`G2S*w>losr6w~vu{zqu8+9OPD5pBj!&S(ETh}o&PUgdN` +zLqMN+g`&1a@84#l`iVME*(PHuRJ1mmxm=T!j2mryqODA*<1due5+8P|tTs5CDN_Q( +zqQ>M{)R-KLN|a+!J8~>)M~+49$gu@>8*ca$xTDbjrsBJt8kV6?R%3Yk9DM@U!Czq5 +z5TP!jx%O8TtF;ZX&(Yim&D5f1y{iVrCUDmmEvy$#cQ*6&`mhrbHS>iN`~`GV#@@$W +zuXSP=h)Hul*Y%(y1<%Y!E(W4P*4~1ef$@Mc=pEGGlV%mUyP~{KL+!7-13Jn%)MvSg +zplGCIiQP$PLz$FAk{%0pB=XZCT5>83r&gRE|HpCF-xik~Q{Y%>l7@)JMwxW%|1h>% +zDK_%jhm@^Xn>&EK0mifruVs&+X8S(5%AEcRMNF=mSR@VZV0!r(_thr~y0d+GqOFMh +z;Rh5aHk0ZtRBMP!H^F37B8j)?sp2W&G1Rt)bA%Z`c6ok$?)g#E`(a;dZZv6;+oIx; +zu1v@j%$aK0jen#Y=jK@&*LS^MOw@7^!AbD%g;9bnJtw2t!EE3mCr_`TgvpguTiyRl +z*;=v)>b|$0fLPpwtX>h#sWADijqZ8^;>-~?Vb;K6NmMZRps;C|^feH^`kBccZ$lT| +z@dZ7e8BdkiZTkEc4?UaR9ulYraR=3Rc(K>Mc{5c7y{SeDI2!`S2%ElyuW>z?QL+a- +z2%C^MjjAONYc!Mhsnt>W>tz}lh9^&KrU#+ICM;-l4pz&MsFyHLn41UghG}RAI*}}z +zs=d@*iDgnH_7Qv_6aJ71=t(i?DQamq+gFI!^jeQWYrc`zX`_V<#?M>Y7$5&IN?mi3 +zMF=-`vZGUNkt7%IOHn_ah5Uxs=ra^)98=Ll^Nr(5*m; +zANdH0(9KkMEv|qa&X?vX*buTEtqby~4p9Ty@g!v)A>mu`T2M#A-gW6xos80Pd_$gv +zq>0k~xSL-E>1yYG@E!UNhUQx9$Grms6_SA2Z6HqqSX}~(Z};xfXkZ@N)tCO&Xz_0! +z4V{@RsX`lNUy2azaUrQ@a{UdYsF|Gyg<4yw2BiW^b+td~{cG)|`j0;PXg6vOg^>)N +z!@fCy0jqH|?bX)bz-xmQEet@Hgxg=g3>M6egUk-K@nG?Qu-X{2{kZ^i +z&o#^^Q{SMIP4z4#U#|j6^b|~)>vVQ&H_H02)0iP`^lGNhIFfsC*d&8J*h0&ux}8%Y +zP%?RSJd&WZWe?q+9;jFg^|X$93dMSR+=R&>_jh3VT<@X!>c_n>T4x_*0q>7i2DE~R +zsvh^o3Um5Yy+#dK)&tJ@QZ+VOTOpb^sg&FpY8IZyzxK*NbXFg=KWN}@3@Y|3pBp$- +zZ%;Bf1NiHMigoyDuqU-t>7D8Zg(BAYZDE5;5Aq|M=q_59^8xnFihn^53jYvSBdKr3 +z7qCP5vOIkCrZ`9LmUq~tZu#=Ruv-R@=iYYhPm6PGT&r<1mCl?317onoL%(c~q+ixT +z_Pmaae(1>-pCeG;5X^F`c3}Ff*b~rwA%O=syA`1TIRfNgGQL3h*;k@y8+z_lfb_Wn92scY26VABc;jlq2iWk +z`n`%bm8}rX>ZWiT*JA&yO==rwSaqBd2H6;9#|)H_g(_>QERfvg!tmN^jdNoqd+xZfk{z9?TXd +zWZS}F;}0b8ecTn{DpgGD_#Ape`CRo-O^mU2T?a;AidT-|C^9l@*lt`=%C*{bPF2qLqb6fJGu8z?^mfC|oL|V(fe@5)5C_8gkCBO~ +zMI#r3-oJb4l5E4tD^hN +zp>OU@V!@TQ(d!HM?!H$Ro$F85xuYQYZ_7%OZh5MvO?u!$MN+Eh#De^{we(Gq&}t=L +zi#`1T$%4B~8FgKckw{2T?!k9O)JO3#kvhIs^C5jggb1+P{UZqrS-sarP5^GvAc9iBFszMiMEq~bf4KW~=wG4Rn{_!N-MM7WZi +z*7;bhOuDhe?uYCgLNryCeR@7^1e`Re#v!VW8i>W5gXpjYBN4yH@6YLXxBL4g`mK0P +z{@$W}jh+zebIPR{(M|()oAHm3NF*6OV=WsW6@Y%(nPybjj7FggUx5Z1YOJ-H9gUe` +z2iX(PCFSa19#6_un#B`f<=tWGQgXf(iLfIzD4Y?SF)v0FVaHI#+U#)gDCK@&2W`e& +zp$j9qXhrT4brdJl@}Qlbp2yNRyU-D7F!xY@tW47V?-H|tmCA<_dC+;H-gRknnD`d5 +zuF|bhqTbqsr+z4X`GasOo1dm&z4W~VaSrtyQ>D;r7ldE9RiH4t4L +z1R%e>)2r3tAJQf#1z*+;vZPv@Ilc8br;kd}aeZY?#&{GWWu_nb_#Ibf-hGp*miPfe +z(0r(zM?G?-a-M`O@C}g*7Jd)AB4s8}&dgnq8Ru}}O4#qrPMvqQO^Zhi)+W|_9;?2e +zbD{#eh$gUxZH#pT)k=&J>4ijHt~uK_`@Wuq4qV|N5i+#5B#vB{@=oZW*@7G?_eYpX +zd#o!V{ckGw+!j}PzI(%6xh50|^TMkAQ8*QLl-a4xMlG9CF5Ojm607pHExlFwg-g+- +zwQ2n@{+g;($6r%(L7VXbwe)(5Yyr{-$=u?e5f;DUQky2X1hj%jjZbsuFoNdL86o9Q +zQ>AiVfXZ#F)>i4fV=8IRu0oJL4JrlEc;u_WEht5BA-U&06wa`vqYT38mnG4RT=i00 +zNsBQWWiv_^2%S{AAu8lkpjTwU3dT%gt7TSrHIfWs(8kfX%1*rKYOPtHW~53Ni;^e@J#6ApQ5I#O7ns_M-u(1Hk((@Qtwo}T +z8^#j_t4B$7u3vI)yHlH-`-fAVoZBJxZ^s$P#}?upQM1T7fc$5(`}X6H&92*=URL!) +zEj`II9^Saf7(nxoETCpl;mU2wx}+PHDg5+skqvh#&>b3fnAOi=wR8R^7rf3J`m(b> +zS=pP5wVP1`mvkuSsTZ|}3ns}@4oT!@k2@n6jy3DGQVkUjCilpGf_kIWy#{prcT(Ny +zXthZ~2pzMvkms)jjh62Gw5y>njKE`_5-n9NNtI0Y>X($?wTWnsTB7A9=lYSEFG_s{ +zzX$zEwIip79wo-P_=rh39#5yYvO{UyF4eO%X8Y_&oh(IzJ)w0Aa(6aEHXsq@3!dG< +zrJ6%72Nc3STd8wvYRwJK8I7e#-y(@mprFUOTz_)ndHFphJo(2vSg@;jL6YmRm7M0q +z7{+eI1!>Ygj216mkOvOvOF=_zyr?G8HimxzDVsQrl3T==!b%`UgmoymPLD>={p?UkoDz4H7f +znM}FqqA{s1Dv%4j}_biGdZ6*ette*M1^)J)jy +zx(8i#)7>#8VK{nDO&U>0H9qhfi$^g5{2ZOOF_vl@boPM{jXgF9oWP2*=EZ9H3=Oo3 +z>p6)e*MqkB*rz_#0@M}hLgu$`#WZ6h*M~&Ab0;(k-#hO^iT}jzBzm?^^$z3Vdn4D+ +zrQD14HIsXgn00>p_X>w0v6OCP=!LCC0XEZ6pey*pBJ^5YdW$^$gpiZ3NmI-2*W7ui +z7fwhG=Q#y^Ec<)f?T^@Cs&F2oQ;=)sZj&33VfN3Rpy7W~vJGbG$u!S9>yTTYbay?W +zdd`;8;v7Wo=}lp(l&F;DTU+g%kkUe)d=upsAdb&&cupu-GKT!}sw*B8EAl8zUvk9l +zM81T9?mYkJDF}L?5_(`vuM{pGZR#SLQ-u<}@haEHcw=3FfG>ozDqAp2_>V{*Y8Z4C +zsC}tyT|bifs%uqGe}S&*79f@I3}MZ7s;ob1VUQ&7nk|@ub|Yh5HtaU17_YJnMDL%P +zY$2TjJwGCYUUezVBZ0VGR!CVj5mr6-bYs)fGF +zTgs_-Bi+P+J5xDblx~vH58dJ>>XMREExAg2Vo*}DEnO!TXe6c)2pANVu4AmZ(laW? +z!|Xnr(z#pen|#;9j1_ryjaQk +zWyO4s=WDP|B(@1QR6WS-)WnWNDa>-bP;^y-Oj%1>&UVw|$y?v&u%P6ne+@SpHa#eX +zsf#$?c||yl0*!#%g!;}*uswF&w1BW3CLW3fj!K4L~uJdf?Y5uH2I3%19&R{xA +z>h$vSyO+X&Bqv@#h_~1#_*Oq>|!6fRPevPKnR54GwXg8fR +zla<3HUPbE<-U`JotP`tA&-Lvz=@l_P3eGFabdJ@OCyM1T^YAU|uzFkqYf$}9IXf$X +z9i6}$$g!6wbrL9&&tG!&*MB~X{nc?E(@$)74uQOBSznA+0nuKP9=(Whs%9yQox|q?}3OFBkFde +zGS^gk0Bfu*i(p4XhYK|}vIC>>fRkMit$=8_ag8QvU%vnh8Z_Jw2AaUV(Xg;9*h$d} +zZ`@cL>)0{m@{6t#9)HnQ!o$x1EC9m}Mqw7FU*-WM +zh{&@zjp1_S$kJd&T3i~!x!M11973CgY`|D(Fsc}$gZn3mc>&9fFUC0ElGKYQif;Ad +ziJ}&LPa(Bek>yo5iqo`P>oe*JPOFB_-K4CVtJ3_*ol=sj&~ih0RpQO^teXi{i6U3p +zQCrSbz7M?zDoDky%~d5s{QtpyF5X`nZ*YUi0hl){BJpyKod=FTBge3a2l`5s&=IFJ +zn1JHj`Myj1VGztigSmb}FO~GAQBVdXje;B2 +zVCqpigJFBV3spVPPT&W2DwM12QOIMLsr;B;us}XyfD&Y^uS*I}>AWzaHX4Vu^p;pO +zog^MI*24Z=DXG|RWH#laWJ;H6T_E43Sr^84c`?>SR8fSfCqhhMDulB6(y~g_a0Di3$fHxWwo3^WFiHx%%)X%>)oYc9!o{ySxSAiD|Mz46{|}* +zut=68>L4X6vLQLNlry7sqzFrLbPxRD27|wIdvFLm^{hOD*tjkS>YQM6HL8_TcNu>y`vGPO +z=+=MQ<-rCiv|2kcv8Vi}vT*I+`9N*N`dWv+<|m)>3uS(X%1dr4s1&N7O`>XsHkOd{jvY3j;1_WLb~&hFJ`I2zHI0)Cl%Lp@F1#$@01_o{vGI +z_-!MQda$7Ap2vMH$_Pc3w6de4N?N3vb!!EX%hOw8uPbg^m5PaZiV2cCsd!_sn+Bp{ +z!}df%j3427PE@*{>lc~cj<-Z@NUcTGI1bRkc`0h4mK)VeOr;N`lMwi2D(MhUY(pZ+ +z@igjaNe8c_@hSJ=)ByqM#NJq`&Ra(|%BBb`Y(Os)sO`ULS~1rn5Y*` +zU^vz>TQyW;OYCB^Fyn)m9Zbh;CD^2QG1e|h_Fi@11G++rwz}`M6S$@BaxSR-3Bn%F +z_CJJ?>}<*wu0Ryo#sYnz4*vEn_Rdxp1UV;wc|c(p{0%N12{wbBcQ89sy6ietN9<5N +z>&xu0(Hl*ba0r77To)t{d5V`a)y>9ZrXa~~=fdiNkmqS9*x%i0L&EXkDchJplTDz> +zCeUOPXtD`3*#s%s?!Qj9J6pggzTxi72I|}w(qpV=dTy;fd;$?@5Y$tzNJ7QMKkW`kFiR}oGSTcn +zh5h(KueF&QK|X)N-N+x?q^*PNI+8ZBb1CkDVA&2OwqCCl;8mu?J^fB(cKAcBGCOK# +zb +zezQle<=gm^B`LfVT+?$7I%DWQV=k=q>8?ljZr7(Wk*a!0=#Dr@9$!iIsptjs==p*< +zbUqcm=fBkcNu3HRiGiI%iaEC@=cw~`-7v6PgleRh_Q2O@)D44LVMKNszcF;I$a)*u +z(6Q^r*(a?NblYrmLv^SYX5%)X4hBkkVPY7 +z(F(P~F?EBnXPwsA#XR~J-eg}xlD#m5kA4Sl?AU&(7XBB8zsMMSmMrDG9M?->vTvl< +zYeBUR6@Nj^U(*(jx%#dc`utnJ#VCZvJ?O|gG=)0YE2$5Pq1Mm;1MM7Y{}h~`0z3)v +zmtfZh5Ck71j#YbC`BcX#tKyZ_aVm(mDqh7msQE@3`4M;I_Bp+NsV^nppyC@<=<7YV +zucstGd;|L78x`z6AIZ;5NW* +zfZGAL1MULc1-Kh3%%P`QD!pt2dAy}Y +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 +z2KpX1E+;Fm0PswOA_XRhaWk)P*88ZxvWY=^* +zDcyn%g{xNPuuy_Ah6zzoQ^!pVpAcb~v*2FCEGQCZ&VjjTtO2USkhnI}u+Xp|D`Slx +z4V#*k2c@QS1m?Ea3)IIfxh*l@6UIl5pD->W90iIBRxB+jgb6yErcM1sO#JJ%UzHDi +z1R5A>Lz--3Iv6_vx$9`uKYLdHHK} +z>Ht-slKIHV1-KUg<*kMTybZ7%-~s^DoZ=aP`2fcOCIV~) +zCjh18f3_184vk1@Im~ +zHo!%I0RS%mSO87|Oaa&dunwRDAQ0dQfCm7+0T>VP2|zx;Zvevp-T+tva2{X=ziFIcLHn%$N=~Wpbx;)07(GH044x@2JjHT6#!oV8^9cZCV(*j9|Eib +zZ~zPfco`rK;0!<%z;1vI0M`IeZqEu}0{9AGB*41>SpfeA=nwEbKnlQj0Fwc>18@L; +z00aQo0TKbe1{eqMPk=Q5{{a{Z@H#*`zz+b?0Q&$+0B!>GgA(*p`YN6U{4C&Pz{!A5 +z06qaY0&oQ2ZGg7{E&^Nx_$uJ5fc*jc0~P=afbR!4+K0A@QZ+71e^*u74Y|fzXv=O@KnG%0q+D{ +z47eC@C*V%N3}6QElYpNDJP+_Zz~2J?7VtfQ?*aTT!2bfg7VuiYmjPb}d0096)0n`Bf0Q>=l0Qdk5 +z#F<#BQfo9`Uf%HYfuC0X`N}`P+kXDH{dE7$FW|rV1^zF8%>VL7SGB(V`USzSKl}#B +zzk%{E__p7m+kS)po8OTC<`?q6{0;qI{%HGqdHZ0CW9z!w%vHB~`PWDO^_749B=M;c~poJlURGF!|jTjxEn;zA>??Iq;ob=Qa#;eAiNS=J<lx1e9OGMZ`T{URHL<3UQ4&0(KUoR{6Bkawz~TPVORaH~Fle +zbWOoL@qzCP!7l~=v^OBPY+Upj?TdMtPb(L%xY(YwdiC;*ypYr3S=I*>%YXmR^WJ%n +zysI2i+pc{y^-JcDhBKdLnH@X({<>?wu(4`)_m4w=SUzXm+5T5Io_IWK?#UYqGqxsv +zleB#rtN3Eeh48&6W8eMpzVDwu9lhquWAEH(KXoG4v1(TLnfys{RV)8_bl0-8MdLKH +z|2bWJ0-=cI14t~L0c%-;QGYsNQ$*Um3_ +zsp-s^;V&Ki^z#qCZyXrCEv+Kp^YO;T`*!{_Z%>VZ-}Rpz+YY>l20FXK(nF%zl<> +zJHAExSkCXtVLf%;tI|`KcOG7uRsPVFyg|Qsug+gLD +z7I1p*5WjzQ+^3$h>|sr8{pDppru?|_gUe6kPuQ@3Rovs-G7b;sv%h%j_}Y^JWDYPA2ptRkM*R~&W^7*rOd_7=)#iCKWJANwubZv3` +z&ftp=YO4xz8S#+OJA1LevXA&i)|0C~S>AO*T%BS1HgCZC3x03?c0Azw1-#~gx^3#H +zj8QA!?;Nn~Xkz@TInBlSGw#bh_Q|;iPo2s3|1qY`czSB`CtrN{)f;=ymwmf6-XU%e +z5BYuHzUsO?hr*xTmi*q9&qKYY9NqJ*_xE3qNj<;dz{)ct#y_0BZP$GnU#f=Wq(2w7 +z_U@_s{XgIQgsy(bk6sVjFRRAk_>Y}1WYD9_r%bF*9v7zhDlgO2UR<*2{Rb_LFT~E% +zR-ZXIXK&rHYI6Dd;WO<&>*j6$II;AT?N5y3-}pAue6tjJR1C=;??Hs<34@m@RSeJ(~B>L!_}hw2_&~<$XBt`?>@iKYu<*o*`>=JkBysG*ATLx +zSy|oxxtP6ycAkuQukK9bfq<{xik#cN_s%EZf5GpY7wr9f6-O2)O!(d;EWe(ADEX)2 +z1?hYD^v`>1%c+_6suu%ac-s8Z_vib3c%7}MWPHd7>1d~*vcbCr9CauN~O>uYblbXQWQ~HD$yfprKnV@|G9St)A~H$ +z&v*HJfB)}uu9vgC&v~Esd7t+=_uRSX-Wy+a$27UT;v;!|Oo2-Lo^a>FEGjQGZBAkg +zeNcMhq-!7Z)Z)rBH0?dwmuLvOtZuOC12<}vNX&=3bt>wypIsCQE=IG%>SooFcPY0T +zZ@!!d9f^(ADIB|=y>wB5n_psEn0bA@z-_#}vDT6(@{oPTI#V9#Ld@Y%;#ntLO!8K* +zj19M(^0tk--1WevtG#qbYDxQ@g!*?+3so}GHtC)TXvFO^YByT_G9uvm32RY}P{*Tt +zhLKfsGr7?xS>^HyZ|64WNxV+G$DP@VDJAJTzVWeGgXE;C`5Bj6J|s1Mrd4#_UH-YP +zvM?Y$`mVhBmad|v=kKhq +zI*rE~))JALaKyTBi;qrx$`qsZ=bH-4-yGaj_1vrRbFp4~YyJ7=!jU~ysp_nl^#)Pd +z@vO7@RibXKaz5Rvb>_0L&x`T`c=x;9qApX^oL+^(*6*`2)bcx$h94wUu-1z|>m%R$ +zf++qa3PHDH2P`bIQoNt0rt-X`Tsb>(lhW!@_5<@BM`&!J-x_*%^)B`1_W47&AI7RV +zZLd=uWPD(d=`8obqQeHdv#zy_8y|LP!qjn|<4+7W(b>y+Ikx2CaqYKx{4r&3NW;G- +zz8`VaAZu8>ZLsD@H-?rT_RGj+oAXE6wJaOmWMv1}PTxY^yzLtOZ1-Rq=b&inI(ji#_{Tm9`BDQ(Azhmod%*>lb7v>^SwIc`fx-Z%J>HG> +ztNKizW}tpW94p5T4+9}iSt)&kEqXdjAcd9~oc +zp%j~UCW9GDNV+@~e-^V&>%CJ1<8!?dZN* +zm{fT(>OjH>c;CT@kNfq7d5I$ihV7nRfZO}Wt;2x;(uradF%|F&8vkSG8u2kG|D#f2DK9_E_(uj;m?fqt~j7@2p9#dX&EF +z9476ilFzXZK`F;0!=Go&89w#Y@Dsw5ldqgSp}q2Ts>yT0(a`xJDQwo6Bc)TjlRM36 +z2akP@JiLEb(V?o~(!3{Qlyi$x%}%eovFgl_dpEM_SwnNYhT3G!=WWRJn^aq{#9Hf| +z@;j$|+`jm;x$7GXW14i&H!OC$@RFEVgp7ZlZ(;t1GPPr`PUQ`E+2yqb-_c09za(Jt +zS-5t8yJ7C-_4cZNaGTBx71k=$=3lrw`$3)m8$#H_rUjbbu1PLq96n-?w2e&C{J6CH +z#LTkd*AxmEDdepIS_1ayJO>eDT!^>@=J#e$%QpqwTgsstR +zdG=?R>pb#8PwOa6+GTBoo#bZka^TTBq0Nfzs&B9Uk!p5FySOKCZdDR# +z+8Mn~m$eg;l2;f_88hqixkwCKaod(I&G&8AX{N3t_qwvu^iFRbhpTyiaGif;=*XdI +z*H1L7tSE~0yrf($N?v?sv~KId{PZryLoM6YPfBhzMMv>9Ov;xBSchFYG*rF(s$W*{ +z)T>Gy+vNQEw~0cFtzT<;q8xl)=};OL*iAXBVQ4n+^p*C^l*4gDbjN1iTe+gvml_{l +zJ*{g((DniE4d^~w_r%1pOyXaGkZ~hZY?|sRvfDcz=YDW8!FN%k*k0_^jv}8CmyPJJ=o;x|Q +z?Okx(hKy0|lu_MgtCaRnVHWC7csh|CK7aSA+NKTHGu;XF(+giNzVW|YIMJ7Zpa +z6-=aisadUUc=8lqwrcZc(d`2-4YNKtZe6mVWfcwQN{dn3lG++Xn4o%bje6iwT3$-C +z+4+lWdIp+IwHZBo?%PwHp_A|l!w#$uFPfG(u6`G0&b6-a85!2a#R{LRkNB|tbr&bR +zkDwaa?@CDWc=KBC@xUt9>#51 +z;Em;cxI0Pdfd8KJN6)L&T~xS04$3|0q^7F1XRdhM*Qqy;3|q7OjHLPM&>Qud+tP|o +z7+DP)1M7tzi4O6(Qm3h~%=1e|rFieP;OmoKr?|{Y&~8tsp8Q;~c$lT~E4xtdb+2!3 +zGO)Pc#_r}iMwomcj^EC1$TD!caCgu1r&m7YY&>W=*h`~hj0)fOV3Ffq#y#?sSkmro +z2@YRo%-DU_*`TMf?ZEJ*9vj0(H4|^nAg3R|7a< +zHm8rxI8?M&#eM<*D}((gE(y!y5PE@Dca(Q=0BP9lxu(K2Ghl?X;+@ +z$n#I~ja9Z@7#Bb8j3(DV6Z59?>{9F4B6j20hTDGxK4^K~bvw^7re^ik5rV`8+<>&= +z&t4yvt>;~PF;cW2w@eor)MHOLHbS(rTF2-M +zRh&^1bGz~uv#}ex74UuG3?|F7-7IlAh*eRuZ23o=QN5%ZbCaodttu4Va`j>g@c11}2x!(TlRr4>p{Z>$c53$6u+W_G@Zh +zRV8kE{ecaO8Z*Z2<(6c=@P1>v&=3=}vS`$ecV`V2 +z2{Xf*wa?57i&J%L{W{cN){PIjRQMl^$%@K()u$s +z+X_>Z9>#gy)_kKmy73`fRg#ILlL|j+#BMq_IlVE0k=+gl +zcSd~mZ?i69U)K4y&+j^0JCoweDxRrv^%cezj}Hg+j{{a8P@f<@+GZHaDz`g$#6`|(4_ +zQA?)i81G|3x)07KLc^0|a84UCytZ!3bGr4Q>+-15_AZz9lGGjV>J#o{s1!auqq`|> +zAFeTAwNbm#^?-<%H6rU1-5xr^W-Fr^K8@t&6_-_#!R5cVT_^>`yIyb3NX +z*jm(_>lje=c9~TS+1n#Kto&o`-0J4mp&u&pDw=9zH=RltKKt}0y}|pFMP;!C>~#b5 +zJgmmT0u`JVtJF|KW3{h+;>;-L^a1lDJ{H@0m9Jb0U!IVt*R?oDBX$2Vt%UoJogtkb +zdz@RXm)Gu_5l(eB&Gw@mK1MBAUTeJ5t3vm-@uu}7hzSMrCKR;AD<{`iEspAZF^gAn +zQeYh)6ylU@LK{wQ(^FGPSJij+AI9QMOGu4q*-~hIBqd(Q=lpu3DR0UPo1Rx~I#~R< +z(W}0-U2kMz^Lh2usvd*&F)UVmc9f_}|17^;t9xdv6@Ag?ux0mo0eP3B+`3*lsZrir +z!=d?V8CeI1Cv~i6RS>r8e-@*+4odtf17dFnDOwdRR8dR2uUua8TxnBe_CWhlt2IVA +z<`2C^-=e;2_1z)!+nd$Ke&DLsZFd@Uz?ex5G(q%0|3T{5mYl;HYM>ZM+u4ZRE%=SiMpCo0pAV)?x?SSv66& +zOs}P1+qRiDxce;2;uV9rCU!8Rm^RN;(Sb)^Jld7A?++oV;S!msovwg$xe$xpc_#;7 +z6Yz{MOyPlkz~ilx)3>BfX~%srFkW;`&&$qsQu37LnAY8sChB);8HMK>PCM5)VQP=3 +zl_7J`Qsbq%UDITQUzj1jPuLx{eX?$-qy03==-1+q +zJ9{mo*4+3A}hTnMnp?e!e@@(zDz0k`tmE+KMM+HWCliAtQEo^8-qS> +zeHxIrM&KXzVv!$io+7^!CV8D&q3Ru|#o|mm?&JCNq9gBU?QJgi{GUFP2AuP4;%~C9 +zEyvhs9UMK!X~Nvu@gWiRjov+Tb=Ask-Og;YOMGy|s&r4{Eai?ZbvVg_dqhPMQQZlXRk+-Y-4#D68_-pTS4!TNyd-PrlR# +zJkIyUw=7d1*lsWze$|2*`r^=m1us3jIBh16TAsd)t9gE$y#5*A{ru+<`5isCs;_?8 +zB{=YPzH<7vDT=|1hZ+v`r> +zG0t9D<&~mzEBPj&rd8x$tv}Y|^5QR=rTcbFxzb=1byeHUro?4I#igB$PZw)e9V#By +zwzJ&sRND0|my^n_Ex&SY@UYhv7Ale(YXZ$Hi)+T-R6J`Oe=5OjYhX{Nz1h(eeL1P{YWIPtla>465efT0MjTAc6YB2{8#rPwu3+|_&Rc(M +zT1UceoU=q_vwHL5EtMPi>!bI-*f8_`y>&`9tKzQc<;Cpb#;tPIxDY))vvuYDhFh`Q +zE1Xw59`#;3TAQ}!j#xeYQB`sp=G?AhK1w%_rv!b-cpe^kYU=PgCxs`5pE!ACa_Z}q +z+D8e`O;SSUhaNe@VkdV`Ej>sx?>rp&`PiYNUHkJ&gR63t$2>W0mRfXX)s1!8H|`C| +z8Jb1UvKi`?xq&yopmvhqIW6lY`A+YY&&Kb=6*jKVJ+IpobHQzKLs25}B{Kf=3w?RV +z)XFvt&pY*Mi`Om}N@E9pa=?=N`)lE|mvar<|4_AGFFfDGtyNg7F#GO>{5Sq}51Jl^ +z5nR1B7dVV@NoqTS{rFKcY2?fk-Af-XFD~=FntC!stZIJarqE#L$rU2wVcJ@(lrx{! +zYF8Z?TiG_{Q1F(SnO86;RF}=VmW)5e)ZSdSXb{~uFMBOiW#RzycfD9LWc9+1N2ZT= +zt>vv*d+PzMDYtTqy;~T;koBxZbIm;0us_XS)~Rb3?dV1Z#_cbF!EB#MgPa9gaLZw;xl4tDVWKngi?&vdJ>G=z7wH`8Vl{{I^ +zkBV+uUT&gsDa<;cTz%-F;4HtZ9HpyM>+_RsErf}0duqOJedXg2wV;8bqj7eM-RXg5 +zhAEltS9FKO9bS1ab1c=jcEz;n@c8XP6T0XI?+3)}+3FK-!it-^-SuUzg{Sk7ZWY{k +zyR?T#Uss;{vhCpus~P$0ocE6QeKAF(xU|E%;F_&TO;(|v}+D9p^GV3m6PT4>4=>+}V^TXL2nrcrG +z+%vDgTzHy3|M9KGvmBx_zrGlA$BRBu(6H7@tqlM4iD>iYRfaDQ+}`T=A!}93f+aLp +z94&Q=TFeAOP^i6Fqk-qmno|b$thqSaW~#}lw{vIXCxv#dKQJsIaavJ0W>@{V +z@UClfimfwdRDV_|_GkMXd7rRY*WQR4;gOWE>#^SJH+BJI2EMJ0@_gcTYx9!E)6YxP +zHqTp@_mtuXS=Cn+PArUjh~WVMDJrOSWm&-!M8+lm?F(W)*!TRIl!ePl)F-1x;~f#+U2C*Y>)kyq?sq +zoiOY3Nou;~u*DUjcCVCgzFy~j-@;%Mx0~Je!6d?wy?s2<$snuY`JTHMaz0#nI@t2y +z#xWflUI%UYDvZ63MX^)J_Y$`4Ce4`f#lgV&?Ct|?jXfJZmJTO2j|xjC&$u~kz0L6f +ztX9i{n3b46o8m(kxxX7>^K{|o*YlZ)f>p{BZ!Z9wJ(uMi&}o>;o+9*OgVfo5oKsG7-!N&zkb +z;s4c2nX<#(aeQn%W%HLLHb+*1O-CDkT)cR#1Ic0GaxP`fRN3+72a%Ut(zHi +zEZPk6;&3q>0lE(wZ58sJX8ET^kZlskx0-w7wp=!3>1PJjZDB*$t!!uxWC_iK=7RsW +z5COu2S}Z`w7R_rV2(}XQc!=-BlPur}LeTImxiA~48p$h$LZBc>0`Y;=JO~3I1_vTL +z2IZv=Nw?`c1K#$K6FB7aNU2Vc4UlBkPbd(O${w{H<4Dc`z*j0e(k?_gF?F2^~w3Erh-rz5$o|r +zdq<4QBL1eN1uByrD9cCN+1uy6{f+PI?;ub@g4#zAsx4p8Rt%^?1j>5L`d7+b0DNg{ +zdwWVs36#_5_x0fZ!mfVoZ=RgK%>f^0S-*(;C{hgzQLQ0k{J+C4zHbM%uN}QI_3G_s +zE#Q7v9uL8N)jCL}pRa7}9gSz4)X2IEeb& +z{uYATcruBl<5?)9BeP&AYK=eV`>h=z(jc6?QOUS+HuL-W9w%o%Kj#xDo8|cEh!dk+ +zxqWj$z+dwJSM256nz*RGIWq3OeEY{CqEjJi4~FPG>W7|lkde;o)2-ARejJZjx&Hb4 +z@*z2-Hi-0DAR3o^BOg|-fBrsS4*2g2a`bWx{=t5+a`Uwh+6U6nBR%7YK%9@3#Gq#< +z5t<@K%rxp>1>6=yuSpz(;nt!@x&!bj)U>+d~t9KMY9+{%|DSh7FBC +z(t(d`9W?|#vRJCKWtCk_^QBP2K*Q1YzTQ7Sqt!y$IwfGZ-vGQ_|Rt}3b!1&eiYPyq{A4AP~Ls;8ePa1azO3I|RV +z8 +zX2cDIpyI)@@Hh}wl7$oG!ka)?RTkbX7v3Tl-YOT4mkV!`3vZVT=PLGx^W?(F8eUDx +z58dW$4GtRU1*9L4l_}!5vST{BUXvb}zLW^r0io$8Xu63k1=+i8hx%-pZ-LI9()BJf +zGa_y-=>5>|((Gkxw%!yc;EQDIqTVz%I$MOG=TF4VMlB+uFO1CB(z-?Hidulmh}g9^ +zguFe)3edgK^`b^^lL)jD2hi;yn9D(VSc&;)$k{JM94t$7;cn9la)cWi*%& +z2ds%+vnqPzz=2>!T)lcVn2500Xou)HFuNH}fgN0;!F&fMMF$7u#h)0%=(uQ53Ifxj +zpP!$qs!F&>6ebdVGasT47Yle29!A;>j4kq0flxdJr3pB}!5C{kPmJ_d1jd3F>@DVt +zWMl|46M40QG!t7a=0r^SHmyH9h9kikLKx==5$`)Dp2$xV0^|vH3Evwd@e}jFgzF2; +zfI9{94CDj>{ctg%=+pcdZ=omxeMN*s9D*kBB|tJMBTreLQ1o>VzsuR5_qY6d-*3Q? +z@WS~L442oJ3wh38%BMFEKZq~ka|HZlygsTY&kyr=MUu<=Tfx8Ahn!5`w(keM{equJ +zzyTu~`8A8nLu_D?2gX|<3=R?Vq=sH0#-**c7%(#>TVi!TYFeD)B +z+fW|~2l-`9UW`6Q-{t}FdCtzrd-pvpts&14t^_0Ifx#Wb4+52V{-7N>d4AOQ&-=AM +z-%r)|O<(-de)wWZ2#}h~5AIh{AV>5QJN#*X|5g9}RlfxTm2t#Ul_T$7=w~FeOX-Uz +zexWM4`hQVgD*QL8o*;~N!VhCsHdv8#2^il(9~lqCHjuV@$$Az^^XUsOHie)_00RI9 +z!xUmNO`*vkYyw~mFb%*6$rB0k7yutB0}usZ2-b+xfe(tHt5XKT1Nf5xOaP3TMi3|h +zR>mNV0Q{QsNFz&@Nc{N0z2RU9w=a)~gCtAq +z@aFQo1;9u8fQvjv2X(o!p%(y60Jj0k015#z0nz}H0d@eyxk`U0js|`>fCNAUAOP?K +z-~xC8xC1x<*aBDsSOAy-FaTfxA^;X(I)EX7J^%(l7eE_eB!DKs5CByGB>)JZ$At}b +z19Sm&0K5Qb184zg0=N%Q2XGsp44@Do7a$E_D?luO2*3dV3!sVcS-^&>08RjG1rPw( +z0_X#%0(8#@^#Qy9xDSvIkO`0iumd0*z!d-spbF6B4C(|(1dsqY0O$jBJAv{}QvHzw5rS0EPZT@oyge7Vw`v{;K`RF%lf|F?rhGZnCW1-^TxL +zd;8n{eG2kvBnXOLxhf`h^_sPD>(+1BxM}m2t?}Eo@7S5JD{=Rpz5DhbNJ>6<=y1xB +zqp4}>$Bv&knQ%NDtNEMDUIYx?rYKcZIryW9WouKz!+fA&ms +z3rnk6);6=}*xJptcW|8NqlOkO6N_b4PyX2zGb!7D^=U=0Yyd +z-A~}o2@DSua>I?i!PSqLBXIA1?U=jt-D2+Z!0H*SVP(-7BCgkWbvuB%o4otiR><%3 +z9U$HVpv`6X +z-}5_Oh#bW4(#+O^^)2_?wpD<5ot!L4o}aa?@H<}bf#MXnKsVqbDEcS_RXqo1VkHHL +zuA~6{%$doB`PycEynB85_9DQ7{+~2(`xrzC@l;@_dosw=-n<1wWx3UTN0HzwW#GzAiHR +zMxNW>(Fc0`o^HS7_w+%Yzo%Ppeot5M`aS)j@3-^{IeInU3~J^7zI>(dTe`e{risiT +z6Vb2f%K>f0cl7W3(_8%O@`#@k(%&~FA;0dYkg$H*O1bd&?a5sB>-rW&nn6L4-_onT +zD_;=%YkeaA#yBY*ajtP@zvQF4?f3OOKKOh3!y~`%w`pm=FJGN5rSAa#f%Kp2b=fg9 +zCvx!=jR{GIlV$@ewrtIJBxeS2xIBH_M0 +zwq;1HZ};sLB!()r9kc*&0wn@?T$>QA@sSNK*Y*?kou5#Z_^+lk|Hf6RU*`h$bjTQ +z?hiuVQobCqBt(Rmj|=2Gz%E1};m?ea@SKG%d@j%2k0XYP2h0P~qM|_aAaj8*SZ3SM +zuz|gqoP~WQp*>P7MPD#)?f^k2;g3) +z9DYWCZlKm}j=ohMf>H-KhVaA@4m>eB7=pZ|4F}5Dj@0PP_YRP0;^L2154s}))ks9J +zgcs<{2Qmetx&k36Tggelg1NI82;J0v^^SUa#0J{P%qbKv;$ +zpxe?h3M?Fg)*^i(*Ox8|R)UaVKct?S=q7kDBI6)wd!#dhzSI(A`g4J*QEu~iQX@4U +zU~6s%n4<~-`ru3Z6p0~y3{sqs8ZCpk_CC@coUPb@mmT4R?3C%R&*i7*kbm6&4JR^} +zuIXl2Ls0k_He{#`)}i1uIUWFc+jjRjHk7F?&4cW{>wN>a;TUNevVRZxePeE`SwYsA +z3l@F+SnLH}9PSeI`3SRM3D?XFlBf0U`}zqDxz)J@`7{AY|Je#h;XD67n*J;Le>DHE +z=>JalRpt3uGy_U#3N0IlMBd_q3zKvMAp6`8~r<%+kB%=+Mqm7c4 +zMf{;MzM8T$WPj&y8IbgevUHLx&X&c^WpM{tnR&8wCz6wv7vAP34jPd0N@9}1#ky&2CxM%10VuS +z2fzU60%!w_1keN+0-y?@1ONf_II^K`fG&UzfHr{p0Ji}u9Hse7fnNxa3y=no46p+r +z4j>jF8bAWz3E&K%rqn<0*n+qP00V#sFdaZ2Ko{W+(Br^{UI5eqlmg@eBm*P@Yz2q| +zhz1A;5CQlBcmlWrH~?4!m;qn`bOAI0lw|q4?E!Cq`v7GC`2Z;ZTLIz#q5%W|764d# +zX+QjTor}3^+5e^S-roS_9rE4pUKh6r=)x1Ul>>AJ%2vhwc#q}3-f8~QN$Hqhy8i*; +z{s-Kz?*>ZgzrLIJ@0I(%(*0kz0h#-M+!Qj`f%T=Ll4=S#b9t_cST#|We)OT#KX^py +zuS{w}9*u&`qM}hh4dlOgxZyD77kpQKk@{vbKkskmXUqK4Ab;hdmP2Eq$A{VuE&4V8 +zsDo(85nQM^HY{$yKua3@8}L8ouc>Qn`T#+=C~3*w-^+WQ{PXvSn;}C7m}_nK{WVs| +zTo=giu?ha6wgwKZh% +zU*LSW$bT!TXJKJmaRu=zDthB_NXWKqV_$qD$WRg27cT=Dkbk}W0O<-qXmcTb@&!C! +zUT_~#o@^NoiXvB4w!BcD03$&Dn@-{c+XRIQ19;*|m=HeO8~J(LbdnE85X_szWSIP- +zaDU|{zpkBO@{OzvlfFiSIK!k@pG*g~1KYyFX6`IkS6SfywKy{AA>VXQ$DYF0Vvpm~ +z2$h6c#314-;z8nZVjl4V@fxv)_<;C?_?q~MIFK}yG=`){GA2<-7Ni9vKT;%V6)B#y +zi*%fnNy;Z(CN+>Al3GbGNIfJ)vI<$9JcYcNe2kn)E+SWv?~)&rKawGeCq+z&r|hO= +zQO;22z>e@@I1-M7H^T?u6!;}BxkQ>;WX<+;NGxp@dZ8Y2qbf6)}{y +zk9M5))pRnG$V9$1gv{IXa2(tK*A;4&GEDGi|{;rBz_Hk8$Jnt4PS$Qh<}bBMu;MuBfKCe5eE}T5VeWAL=4e} +zC?swo?jR--_YsqcDa17531TMkBM~AgkyJ@TNMh0-q(o8@DTS0qIzhTYdQX~4#*&F- +zn9LxXkuAv9WLt6qc^^5MoI*|`Z=`Ia?4=x{lv1cL8+L}5z+5;Kj)qsm2jS!JMYsZP +zgP=lo-AX-1&7$6?M$zJF#k5Y^2ig~!GJO;sLpPw)=yU1$^b7O^ +z#!Y4f3qrryR1CcF*r`}k>?~{}b{_5qE*5V}m``vcTqHG<#FUQ|W0(eSg0tZZpuRe| +z1%3wiz)GOT1=K}U9yN)YLOl*@G^3rM-J>XF0I8vRYWkqQo8as}fcN>xSiF1F&1M3D~{ZbZiDT +z2b+&A!@kFU#ty{U;v8`sa9eS^aQkqFacQ{IxY2kF-T6b+0eUbAjEOAbd0>SV#A@O_Fe+XW--2Fs4MXDt! +zpd&z!Oeb^5_sCz!suVMdHL(0$l#`Tf$~j6g+4{#M}tNhOIz9(qj~_zNA?OpV31Nf`LIL3(;Voeb +z(Vln*XikANjU*z4kv5WQNDoM=WDJ=}_9AZswq8wsOa4SIqBK)pP=?^D?&IHUW +z>u^T+TZE57!#3i0(hQO-iBAdzqjwWJdIyq+k##ASlw)9Cs{wrq!*k#< +zR2pptJ&ZoWbQ|(8T_*CpJh)!My~ce4bICZOC)pRwizbw6${WffcrcYqt)`uzM>0+_ +zE-{o$^-POR-;YK+E^YE#waJR0^KL +zr1(-YDLr6D-VQ&3k5TKW4m5w-a#}8JCVd4xfv#*i+SJi>v8kVFsObvRb*AS{%S@|H +zpPRllRb@_RdNUK5$C)}Tn6;ACfyh|}K^4Fo3iP=Zdl;LCt-{t}o51MP#7)PMaCDpn +z&Iad-TLH%2SunT0#_hnL!I$96@OAhH_*eLM_#V76VF+OqL6=}aFd@(gEMPzL2p)t) +zLN=j-aFcWg^rtI1g1m~HPCiX8AYUUZP)1TFQ)W|EQxZW-swjG(2e@EvJP9|zkKqy2 +ziBu!1KQ)q?PklgrMjcMGpxM&a(=O3o($wkZbUQF3888S8TZTX5DB~t0*fha3i&=^E +zTN4EBK+ci4slcLB@mGM1&+(tZoajNok)6mJ$vNa2@&j@gc?^XCMsgv2BEy(*gmHmU +z#`wx`Gu>#KVtU*($28xx5cKF%)1gdbaOQ%U45k^=f@#gPWjZkTFq4@n%rxc+=5W?H +zphXtTf@RIJWd*W!v97VIShv9#yw7R^Gh7?%1)|>$={+zqmVq_HT41fgh&+nDj12_V +z@EAz<7Vk~q6G8|l2&IG_l%te<%5}-4rD-x9OrEEmT0?pU{MF!MEXG;5+bL +z_-@eO5J8E6B@hWPK|l}@B!qB+EyJ1N&fqcx3<)EW5zE-f*umJxNMW2{@Wth^jW +zP|c_oRBNg&)d9?)u2grbCm4f%Q~^~)l~BWhtwd8}sd3be;2gSxnn>M8O$Kvp8kl7> +zsky+83aQ1^Qfe8sf?7qr4Mxm;Y7@1E+D3gr?Vxs1yQw`?h^9nSr46BJ(niv>X}UBF +zO`m2+n@+>hh%}hSpqT+Hv<7zQKy#+Kf;roh#-;hu1T+y%LJOxw(xPd|IavYymZLkt +zlTb&v57rkQgf2o4VI){#V2Nf#3$zymL=iEZxD{Pvg!^uv;d=w|sLSWPSjtB-}T4p;%0hph>=1P6jM!IgltolEdT +zEhC(Or4Yfn)Q=*dh$s?DI3d}Nz({DKv{2fBRd!IifMxbjAXo`jg@*tO#lZToAv_(Ndy)1sU^8$AwuWtC2e8_5 +z1>?pO%qf1b02YDuWH?y4Mgx7s!5iVN@D4Z;-UoD(0?y4R;7m9d&W8(urb@vGGX&O# +zXvq)QQokM5nRYXKm=H^erOFxt)-fYl+ALj`Ay~~|Swt`kFj!`?dBB0?%KFb=H2&lM +aasRk~+&}Ig_mBI>{p0>||G59l?*9Ws9lLD+ + +diff --git a/plugins/amxxpc32.dll b/plugins/amxxpc32.dll +index 7dd0a44f0b2aad822f896eac29031e2ede6e32a9..969e69d08011f50cd04b6ecc9993faee55283086 +GIT binary patch +literal 261120 +zc%1CLe|%F#);N6Aq$NPw1Zbf`k*Zy-f(V8mEorep6RHwOQktO9g1^|9U0ql26A8#SKbLZ!oGjqmt2IDFE^yqqR&ANcxZ +zjk-CnUpC)=_XFAY-T$*6-+$XZ*>~J_@4Y{hvv0pE`+nu#?7Q#HE}mDKeb3MCylZ@F +z>YyC0j=Bl2x!!PZ*2g~Y95m}Y={ZgR4Ln<~o~l1UX}{P12gRr9Z=>f8`Zwu0U3=!! +z({uM7eyrzwSY38WnxjjW4*la2cP#E>De1Dox~lB7%>#YH>eX@Njj624j}48dec +zq{p6;%Ror8mKz|sNEEV&BH}3?mXKa5hv%9VdZ_>-yY$kMt1g1fY=hL0D@pYylBBGE +zf%65jzW>+&oO5(PoPWH0*K!%2LqALs0AXJZ=QS-!OUB=S=WX(Bl621#THn{e^H@^9 +ze9&&uc#%yiz6HMO0nOv!xm!&}1jNgqH +zIFKg5^WX*fX8v#w|Np=L$zK^e&g`ZV#mMZ&P5eE*r4c7n`5u#Wkp3XOyrVTDX|MRs +zoW_XVp51(meh({4XNE9L8jIT% +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 +z5R`?6pf}Ox89XK_sR4<vz5VJOZc6je +z9_Z(LxGPr1p{qvfYES22YqWEK275TFjEFdluE2P{?>f@O;z>U49fPJCFQ1!*LKAoM +z$vI@Z84qv-jC?94>jF|KADxXwbA**mFAokRmGY<7N~GG&0$tA(T2U;?DQsbJbXE?V +zf{V}xICG$5ixsu;d&ygzaRR_-?~<4=G0@<$(ycCP}Ko7tPJg00iD|uFuHvF +ztu;8VnPRLZ#ZX-`#kjbl{DS?u&~cNOI8$$aA#RK+LjpR!d9E-sq7_b(HsaQ4APK0S +zkD5RUasKJ-v87_FJlN;+@xn}DmO$T$OkkxE=P9>Zh#RN;{xniRSXX|~qFfR>r@+d9{ +z=>mdRMi2x6J^#6wU$9ijLm6%`sZ=Do9@Ylxi_6VNI*Ih|pk~H}&Kl*hK!WMxVkXlRF?GXH2n`S- +zfu)a=0o*T*r>ronP`Cob`otB^>*F{6N8e1zgqb4AHew9J_|~yv8?L3I8SV5)@_aC` +z8kh`wu}~^*d9w`M7Ke$UmK3Y5yow9vgYd7pYWa^g;$AT69Il*IpQ2`Idrc#WugaTO +zmEeL?ec^m^`yD#uwIt*41AmKI-*QV`h)skFVS5E97O(t18m0XF@)k0DE$lR5I@gbk +zZ7HIU#y>C7bku(Xw9Wwn4|F?ed +zmR^zwuRRf7>+*>)cyklsO&9P6OgtqkZsv}`ZsI3KooD;Tzl}JAYKj<2b*_Pr1u9n^ +zMt%i7O&f88zOd&Nz2*LNzws6LiYMn&!2;XoO-7M4+1M?bHmyyjisU@aRlVuZT +zXx8RGawu4Eu8i1?V)oy)lh%krw9U#U{*PKo(oE)%6GWTI*uR)q+bx&%$s>*&GJXI@ +zXK()d{8yfZrFPluD1*Q%4l9we-Mn)IQ+hoPzVbg}CWDk!Z$KkO55< +zEIkKUyr>SeRjJP(hgUUn6u;ND;di(T#aXEP(c6I=lv>+6hjtFqkcakq +zD#0RDpJ7#;E(Y37|tp{BM_&ph)ZR}VmoXtnVM+IVf4 +zE?Mek>LNGk3JO8s#{S-vArv-%taAqV(I#{y>DUjUyjykV@IO+}sRZ3s5b}=a +zQjmGzKD?X1LV~1$+)z5!LBd7Q$)3kv2TY(T?s!Tk)mE4~eu6n?A`Alxrpfx5oq8B_ +z0ebZ>bkmek=AA=5yc8X^c#(^*dlKk}QeoD4_!4rYGj!yNTKad!yi*ryIuz>Bn;#hu +z>Coo|&~;9e3*cF` +z5--fN({OBc6P4$lC)9Ak;o6q+j5#Aa67v%zX#|_%x4x~;`hz;%$!$mtC +z>+abnw`m|Hx~G(y!#{#*`25AX +z*nW_?<}!#uf1)wuaA>qO%le|uB-X;-Q^PoC5;uW5j_EHtNagEVcij_MvNElICdEu?|AQjcrlK>Ug-KqZ+~+(P_oS +z*>{3p;9G|u;;sAhN0ZCSn%!=Gk4Qb;Hma#;6UKJf3D_d#O1AbGaXy?}9<~-q(C79P +zfv%XTC&9L3B!XV(;tN#aQAlGClR?(l+Dh07X^N+gj6hfcf@i=OW{p<0gV?eyF +z7uEnV3%9ND?%MLx{4P~Y=XBdic??eFHMKF|O%#eMSoEh>*Be~1B#Jn&x0B;n41QxmY +zjEeynr|`J_I0k1x=TAS2`xy_tM?90!%335ASQ{*`tGD$;qYE{~HR%zdxblVX1FO7I +z8d@M(zOzY|@KnjNA3ml$$?^$&9-byyo`?8P;qx_oo`bYc;p2g{=ioCkU$Q(3pFhCo +z5PT%a|5y0D2cNU>xe>~2fF)QOalxOCzLQ4i4e&_ri%-F?0q`-77&v0Ypb>*jsqm6E +zVuX3b2+NQWLx-i0$Qb?*v|R(AC*bot_$11+rKDl{iwGO3{yu~3U|--)UN?r&8c0I5 +z`{|#eQ*p)psItI2YvT-JBC~)|NDrWMGfZz#3_%t|jeQ;!HDEI8xGrF2-qL{1$1ndC +zR&ymZ<*!HCc<=qfMJ6ZQP6daHg8n=L=_?Z7j5{^gtFaUvkW|B8`C&+Mpu^X>J1dVt +zn%SQ#WY{B@3h~;Wg}ceYOjefeax5shhq+%lUs^nt9$}|3+JC=Y$T&ZP)+I_e7X#^CC1Jx +zSO%tT#3U_&+Ec^5=>8dzKyuc+R1F^f$5>-Zwx9^X(_C(EsmSE>@Ye5KIfwyPjmoH=9j)3)!aG$64JaqU>f<408By_|LQ9&1f+Q| +z9`yl6=_qn9MDj1c*4`!m4t)RMYjV6KrAzWRVpQwbREreI_HV)W7qxfX@?7cPj8U6o +zQK&rm*JIS<2^AUr^%zwZt4Q+K;`_a^QshJW*fJR)xI|p^|*2&4F2+&~({}L?u^;cSB +zix53Bnn_+cPHRfSc@MYGk0-ELPfSH!{zA;1CYQ{U`9UMB?J0cQD9uiS4t&hsD+~>b +z#jt=X3rpwdZ!|M7D4)(=HxI5r`$I398))m0j1pvOw)Za9=qGf%pr1Xp)EjZO`P`~~ +z-_llln@-}nUYNvXZJvmIueIH!mbdXK+eoB~sf#cE0+#*m4uk|rFL-J1PqSq`(e +ziGAzHJVX7zyHzohitMtTtV&`Z;=X|LJae|8gcW%}$17?sP!QYt6vPFcq##C|N8FLJ +zLmpncRVcUU2qdR5`w>?lo!_C^AM8iiXgmuLDLXp$5R3NFbD)s_?0Fo`i1VPRr|GMh +zZNU3HV(=gxKB=S8$_9EF!wRt`|2t^8q)PesmuN$VZ_K%ml^ycB0g*>t{IGx$_?U33 +zJNzz*N`l;GRrl>LtvX&S_4jA@vG-#ROlo-zZ}@Yc@~!~q-0tBST~wKBUq@Wn8tpXk +zArE0d4X(3x$K9Xq`Ews?l&gdzR7^NPB-l*Wyw#7#D)|lZ#w<|d8mKXqsLj-w +z?@z`Im&P;X`Xcr%J{LdUiF*7NbZKa|PcmE}B2|bd8u50UEkqFvE-D+?>e|Aeh%gwlD +zFv#s4YvQD6Z3kkU-)FBudR+g%Lyu+a%{!A^NRMw+pHGj@^#PQ`i5~ZTK{MSNWgkXh +zasuLA{M57kXwtde4K(@YaE&In6EzBbIKDqnRv%cXmTl&@JQo{8e?Z6Er{bKdg*jF2 +z=Fd!}Ipw=V%&85~)@B!PJB`z-mX%e*QrE?AnTpeD)71F1vcR;OKU|wuo7Lb3m|5vi +zMWCGDLv0y>7ksuY*6MB0>Rs4sxDrqT4X<|dABl!P%oGhb!j!n3T3rp3S>$u`kEdY6 +z*G%m&QMcGdU>Rcb +z$c8lpGWZJd-m!|9{yOHY0WHxTFhVi_8L3R%LttGB&RpD_D^n|qfeKXz4CQ8KZ$LrF +zzRh}Aom;Y0_09n_42PVM*ywR%OD_KD=fW&!UlZ!l;d#)_I(uVhDik+wbvBx}?o*wO +z=>NDC9jY79O%CVPppKCsoNz^!aH^k!#DI-26AT*&DT9?YLc3noJ5F_!@ISv50%J(x^Sz<&2J0|MRKl-=>Xz1^DbAe?LB!kS$DrBZ%ChuR(Lo6`!Pa7=a|s)97!3> +zQps1cB&Rbi;x&2#^ZD^%1Vw0n)OJQ0r+LH6S1^Z*_R~yD^Gk9SVK_b&YB72PW&9;k +zL>TfzO&=A01K=;a(fmSn+s$MGJO~dG!1$$K5`Ju5@-_aWD2oSf;J={aCTmkO4C^p| +zn-+aXJeq`-X5cloP|p_lG{Z+q`oTXb>0c!NTYtL$Vfp{%Kje#j^M_2`tOW*R7<)_D +z^7CCeFhn>e|D=SBRY+>p$e;2{a8+@N;{`;NWuw@5%(YWaHL$^1$Ns%KjiwaZZu^!oQw*bHGbR&+0;ZEqMFVJLL@ +z*HQX6bu`ICbT&kiC-`e9x(%ZJG6i3UAf0UhS>W1*5Pc^_zd!}E{R`-=0rMA7@M#D# +zD=qXJ(9htfXxywq{~ize_W(yWhfB!UU`j)_xuy_;4N2yj$>eV^&W&6kVsCKqBczfU +zUH(j})`8W|EkFm({qhL@Ag1EL^q#}iT+t2oUAS2d5Bjs#WMFR^s +z9on>}2unjPE8k%4&VOK0)l@cX0W)j^)L#{9!ri0>H$UAA8fsaChwbCzK7ggqe;-wF +z8&#L-usyJ-az9(R1OS4j{FG+bnp!|_Q?V&!15WrU0@2|oQE4q-?=PYZ!&Na1TOPA5>=TJ;(+gc~Jf6>)x$Fobv23U=F`Ux7Gt0M6F+ +z!&&p$IL><7`fzqFmCKxEt3aGN@XV6grQvKyZ6eO}!ki|YI{v9)%Rou|kpyg+<1_ZG +z)Xyj8I9fIw8aR{AA`HjB$Kro_L_5pE()UV^1LehEaJHQmc2$*`~y*^CoANgTSeerN2rrv)z0aGV%Z(}>P +zzx!b{F|B7K5mW8vnvtMihgKk_QXo{l0zJ8Uac5`Nl$^^8fV#hdm&hy)V@cm>1Na)B +z`W|`^HMrP5x4)jMUW!$hmRMn)WmW$oTLK}|T+@P@S$8;EH3Wnu|LX72bG%T4ZB~hS +z=bQ=I`j#6*X9k%c2}yJcBJUPD1(5>}w!7nLAYyp@0nI&FLoL;CHY}8iQjok{{_5{h +zEcrrLiL6A)Ol@p4q#^8Deh5VIN=C5G_8IJ+lDz7iD{G0_hu$xO} +zM<%V@{g348%88;E;R5s&3vTwy)X^Z7DnJY#mfeYS@Z9V(<+^f_469}GrYGN>ED??dnvBz(r__7+oac6({cKF^hh85G=~zoGmydcu*A%@os^5w*AfU)oG)`M$j@q2u8A|x!F{zA +z9YMPyOt6E!IKl206_O+3KHA~`3(U9b<=IlJeFKg)EM>S~)NS3bZ-MB+pmM9u)ygm& +zlkL4YCf9|8GBcFs^7>w!m!mXsd{&9RMVQBy=dR3RB{`vdNlC9O$}UKfQwt38z*c)b +zw$hmnF!@&_NNTX2AN^&Fz}TD#xwbb~rn31HazfK2VcHFy(Ft;_B>?`c<-Qr{B)@WE +zuKCerTREUuE{p3felcu~N(CdFm1UegS6O|Kk +zD^-9Z1Tg4CM#5FMe&4e^lkVFe3`=!kn`4NIv4Eb|5z0#c4K~JN^zAh0vc7> +zx_ahZ#|%1jSjRdmso|GaX;>$&vYZg{`&BWlhwSSNvu#jEWpn2cY~el{mKsqg6s(tI +zf^P}Ich4#fKIF%Dqpln&tMNpfYuwPANLj5%|AyPY0J8dB)K2A_WFCdg1+1)w*;hjg +z9+$tE+Q`OU*w?VK+Q_6N-2Adcmd8nErLe71pRI>aAK3n0_G+(lO4NpmDND{}u`yT)&d3eG3{;fXHm0{_2 +zqEleXx|QTqq*iY2$aYkvA_@21W|`F80poIszzsOgGU*Ha;X0x +z+6xvY(*R+%6m!kTC?jQ?!)>^c${(94Tnk$<+dP0N;HcN +zLHiCh#iIsMcg2+MW{WaW__;g&U3YaQnaI1lIZ2+=-JGq=_VRNxguSmI6ik=oDIh&0 +zDH9N&&e3$qNDg*Grx;1u9tK@ag06x{Bfz=Okg)DQe@<)`vQ~2FKO7KaCHy7H3k#6m +zYCi?^8-;ODgFWb(Sh*1|OsURWA)CZ{RRUq)1W|u1=j}hV4M*M=aPQ +zN>(h4CZlIxAjo~s#C+Ip4He>THj+FW%3rk+Z^bFRmP~4e=6={q&_AgnmP%mj0+L&l&jg~|h;gi}7o%Mit!7|he)cXhr$?#K +z51bE4F9jKKH2Jcc13KPz1$B!Y_{_VK@h%@1A2y#FC*#J_O&AxB%7X&A{MS!Yf>+=l +z9avGV<#$|xKGYF=k4s!paooc<05Ju|u`d3_dhN`vY!SOleDYU>v(6@}^lEMwmBzhZ +zGnu^y7F;E{5xrksfy?+wo#2n>j1|hw{73VVJ9i1dnEjN?&G%fcG0@|ZJk*a?RK80m +z=r^j)ppyVt +zT(Ph@pQ;EB4-wr+RjK~>v4)KjVTTXIihB~~zD3N&fj*vgQj9hKQK#6K<6EvnfBNB6 +zIqtn&)IT`A-)2ihInM9GjZo#3mmmESD$?;VJXm>8Kq?izx$AqaH*>B-#`&vnfl>2q +zU(!@wRT#Te3EF#bK^$E?ywu`@Ew+e18KK*UO_P5UfiGtlW!(CHA)-{52i0v%Ze_eetdY7={06xA3@= +zXTZ4D-A&`F^ID_40-D)aLiG2xjV$7(6NryLbkN8yt`OCa__bgRxN)iDmt^buu7x=| +zM!0uN+RV%PnD#1}vj<4zw`1rC{eq`7a#Y$}yj^oWpo(`s6|XoEpMB@cgHI&vcU^~m +z6un$MjC(iCJI=#D>;jHFcS;gXJW=IO`l>|#??5`g`W)3ElINV)qG%5WE!JXtIoi8> +zVcv_)5E}_NcuI1J*Z+4MoAv!5L8 +z_F)mhFT02Xqw}|;Se=_kow}M!5=EbG6MT7j7gYou)h#~XN1otc-f#Yij(+xJd>85$ +zAhmZV)Hkb~WN-v4tM_pAc3^3$y`ER! +zPJLoM4%^A9)($)&$b!(y;yGB|^68}C&o05b*t}wO&hu-aj=?@&a=YkNPpI)2S&V*4Gm2ar`J*D%KZ2P8PARad~lb7jS~hjv-=-m;eGdR>i}BZmj}x +zIr16Mt!O2UJlYcx=jk{DHh5jU=cQ=02=Hj$YTpnsg>l5)Tu&^-&`E9@{BIqJ!zbs6 +zy0IzRU3`$EQo6U9HSm}Hc!?L%MZ~Zc+i>wQVpZqMJ|^}jr1-`q +zi7cA@?7fA^HkYLZGI`c_V(xc?c6?u#m}Yrv1*vq)<4MdB@(rJX4U%8~*fhLe#?7}L +zM+2A1!osvNb~f8PIA!gc34c>VlpjJD#}U +zUYD!a#Qg$R>v8}32vGSxH{ZPgS^JULy)Loy=5g19lggODH2#w(VzTZK+GFD%vYX@v0>l18UjFP0(@&9))E$=iugH))zPe5cKd9 +zpTla6wj@5ag4mbX{Yzp!iVrwKDIN}1oNP8)gdA)F3~v#O;#D&){tp}V*=BE3GN5Af +zE^n^e!zUEPT)#-CQQqz}2PE99@$n2!<0Ixv1D*}CAEK@=AL!zlp9-!NyNat@r?JJ* +za+f4u%8FdfNL!tQSd{I)2xO=$`dIMtu5<$?0 +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 +z(=Fr~LF79GONtewT2uw> +z&5AhJyCY@WydK`TU1KQQh@o8aiN;X20YfRMya+=nDp7$V?c3DiR}al5zM%$p@W)rg +zC+&lPUeNZ+jpmv!q(0u@OrZJx90K^ll|ufI_)|syiaE3+%tAXoQK&SK%>VV6UW!)Lep>P@Dt#LbV?Pol25@z*6)l#gB6YheErT6$z`A_&trU +zQ5FXw9448IpousSxjp*kK$5=6r*9H`qN+sji7s;KVC9w3L>BQY_L~UEd?$7D>Y4eBXQxa#d;ea&8_I?WvYn#C= +z6{ij8f0q0i#UNeIC=LbJY1_!^+&ntMXvB`2!|$UUAJv(|4${S%Kn*S10kYtshvKtp +z6AH0?yT1-8VfS~mw)?wV%oE$_e!IV&`^kog``IXq;4!|0z2DJIV(YF4{c3s=Zj;;m +zp_tqHgk9k!q5<6hE#>-wV*i)+gpCA=c9WO-x**u{CK|FG9*9jU1?5RqYFg~|x>kEF +z@$T}~e0mjn2-Uc`azKiCBuv|nNZ8`x8;#V$tx-hq4iGC#dDSnl>ViJ8^83GQAeqDX +z!G?oK>Ki>~7WQFu|FX_K!&H3q% +zD9J^(-Id+8-O43n59s%MV6eTs`6%I0m=`;*7R!+SZTzVT+qLxe(oqtDLQ_`jwYZuC*Mq1Kzt&uXQ?W#z8yLi=wTs%Zn;)KwMps2|rmTl4EQ+;Im@rgx +z4sY!l$N#Ft(cS>59bY6}1Ti1dPkxw~=rv#boOZ~3J;~M`Kf~LxUd3TuSve?hE#E4B +zAw*=S)wceE>KhuD +z00_D;wxT1lAR5v=jW7U35-oLHb1rc*)h3MLNP@%E8peDyY>mB?R~`hjr?*W^gT#Rd +z6Ap`}7|mf^H#9uop`NdhrrQxQkE6lqNu`o6qF+I5ZlVsa`U2$bv +zr$4y+(`3YkLB6t1U(@tZc0-YDq^#~vlUBDM?>*<8?`j1FH6n_N +zLd{E5dbbh&%&WWc+Cb2aV0mTlixq`Z;)}`^g?;y9^!xn~O}0TPMz~I@_G7A(^UYg; +zdOj+`>nd0e|JBdwoVoeuFM`fZ3a1vA0}9K-zOxgRs6@N$PhN+zF7B0 +zxm*db^FPuYeVmfBKr)+p3UU0go4*l7F^50WtvQ%h8PI!kUn@#HJs$qiE-KOIIU08x +z74F`~7Y{wwu!-R3^^6O^~R?~REEK?Zyk)U`dhX2?&2rY5cc;*NM0wEg7c@r;PQ +z(d*)=eBeI4maN4!SnotLsSk}mt4B)+&DyL&Z=|Q(^-I3=O*GaebqVgvMmSUxH_-M9R4G= +zcn$yZFxA*;2O;yr!~IPZbMnQ=YE@daDvhE_G^e44u-(m{|FPgAU8~NG#gs7-w!1l4kufJM%U9hVpdOVe%VHU4H^Y_nVQ>$`=!!%o#^p9iSx+!*eo5(~oK$Q&=kguC6+_n7zT1|B3$B-#i+P`dDxq +z%u(l2uKSpV8Bl8gz2F=vc)|Z5W&;Cx1y-jFgNbAIqfX5K@|M7x9Psczh%mKyC&()1 +zKq24rQ;Or)OvGCgx%H>9DKSe(nU{+QKp)<#jF@!u=@XH%cX;rO3}0oW>jOH6(KZr4 +zycsv?wxdqr9Vevw#af;1RhPqLM$1?!X}M594{{RzM)>-CVo&OQ24XkD*Rs#3#4&%_{*$+*zDvBHxl4Enm_p}P$irC%x}tk{ +zNh%)g;BUQ5b4L6`r0iIAj(EUyrVlqQzsi=3XAI;qp~5B9()ouCCW%%zVlEYw&Lvuh +zprMsz@?|&&&?Fl=XETSt!M&Lrt`kKTieC?%TtZ$j{5OHPT%1C;W!fl(Zp&PGfJR@G +zh&=oS%3M9yn;&@w1?v~;*FR3Df9Jr14sGNFq)sD+Mnd;I$3@}RWaN0boKZCaJzxH2 +z0w6r_Ml`Br%8g~>$#2FZC&wf2>x;ZB9?5#*kw1z@wm?XWw8k4w3@3l4w&%azXxJ|V` +zui9Ty?XRl#-Kza>VxN7fYJaQN{x&c2qc0u&1$2?cI=6|~M{;?|RJ@@=Eyr8L@Qfy1_%H4!d;K=C)bOCW<_b`{uf^X_k#7odgE<@} +zjS|Ff3;)$Y!TZilkt7%XTIJ*yp@nJu&p#Gp(Q02q1NP^$==|8T6W6>op}pyyPf!JB +zUZz#>>J+qAH<))N7t!suua6dz++pq4;5+rezN7XHFduIJ3K`F8(ACLhiC_K|UbM^G +z-w;j08jNeF+Q3`Jr;Zyj@P25rilvs88Ds?+@=aKcXHZFj}( +zez^DoF1*LlQ@0v~jv5!gu0k=J8b$hWUwnHspBKl@rNrbxAKvDw#~ANzyUcmIbNo``ds>O_=fUmRacW0e?L +zS%U{~#*a+W@YON8KfY|QCE#m%{=b1QLY6m2ovu!VHeygddOK={z{HPTMORwZ#q|QUycSdgC+Pz<|4n@Wz$w=B0j0J|50J1MY-g3fGG~o>=MbjU +zdK{chJYOZS*ObO?w0wA-xY06lpD<4T6#2=A9)O8IyGV#UAR}K*+fqVyRxGremkpRF6^oU>!-! +zPhYD^%#`Q6?Jpp+t+&Nw(AQ{-I~64z)mfvAK;T;KCY-Opf3M;1w1}w_tQErbWEDEt +zrrpDGkDl&a!E@=i`Jf-@RLDgrHp!+KdAgMJu +zdxu6A2Y7V{O0?C!QV)pVuoUr?M@Tz5-8QP*v5O9;+mF^6r}b +z@&8rk~tSYK~jD5lqA~bt9@9QiGtM<>ygvKQOM=tdqghQ%yXY3{rH~%O0_Nd-0oRZl9bEEjRJYI_sR2i=cG*sU)k&@ubPNxBd!cDjt5e94qSKiU>^{yHJ9=@n2U96z2Wjvrg0B5~iS +zkze_rk_5;%$d}S}L1n8w{O#xP5Y1|rIHLAWGogiFizuP-DOGQtz;{+_9%s0325sw- +zanSgSAXM?;TR>??Us2yR-o&x1Y*-0u@0BmY!J0XLexr@v+3`CNek+W0rutcDs3 +zk(tVq_>RjYN$A%z%SjY^mjSH#T-652ylr%9>VVwS8#6H`!>*A3&~-B +zZ4&G-H3#p`NRJ>MJlv*bZ0gHcCo=Mx9eDdZMJ?0H5`fHU^nVQ5ao^{7BytSzs(T)P +z+u@ZagzDLi!eUm4KcFH7##3I|#hykV=(QO3b}6;U|_ +zl9Osv8ZoA%?`+weB)z3B)dk=Ghr4%ykE%Kz$9J=vWJxyM4J14R1dIX(5M2TZyU}2> +zNfZK`gk)7D(H7Hms}}WMK_y}7W=n1^+fqwfZKZ{x67s^5Lx7n5&CI!Xvmx-Ue*d5U=l_7uX7`>u=Q(rc%$YN1Ca{=gU#YwYzg2lj;lCQ>h;I-vY>+>TF +zytZ99T7w+F#8uJ&u8ieZ%N_>YZ=D8%SeJ-FLzFmNvSi=0fP&h@$(WKzZcrSjoU;EZ +zq?!6nNHf>}ThlnkxbJ6sC@__g4vtFMtP7!?M;uzW+9NRNJZr~WfU<7`W?!}vJuxWV +zt-iKP{E&t9_Hqx178E8n>(B>6;z~SmqLX>FPF}&5@&H(sbD+dh_9(oDG5R5VRc?Z1 +zzLc$ipDy;BmHc$DQL<|H*E}dn`d9Sftra$LCA#LvhoVw;BW3vkWkIJK$6V~gA0pqy +zhGju}+o-*2<51G^eK&~nWfwxdg1u1^aRwmi9@64r=xZYu+*;F!mr;(!>qBD`n1cQQ +zuq-W0=ss*gRbA<7|3ZjOfsLW +zG(Kz?s!ROXk*(O-Lg%)(5M%;TN74gGr8xF}3Xp>rGDz(zXC{+8h6wTJ>q9qS#Rqm{ +zlnoB81i#t-sZ|0=SNxUYb}AZkrg^NfatIQ=zRh(8_+LQ*D|#!Tq! +z0s*8y2MPBX)Lp@6!G#3HDMB#sJ{!&bUSwoqNF1TYPsU1Vfa%rAejhDBL*u1`ph;^} +zrS1&6F}p5;`>yJR#e5D-^%TIQQ+aRmL6DAk8BPEM&8PivIwN2o$hsh^!j|6xE}b$qSx5vlr-RNcDT!~s&J +zz*BM@QEK_?Xyy^3)FMu)t&usJ4}%BY@Cu1_8%1Y$XY^n^eY69mZ$80)ehz0PC+TD$ +zU=2SS9Sb$vpvW*2=Qqp#S_JCJ`adYFe(h86Mq +z=*!Nxi^i#uCN{!36(0f?^4meIkKE6U>9S*;S1y@n4E%U9?-WbanONdiTd) +z6X)ydfG2A^vu_RtyWWA{?8#AFJM3)_vQb}#gx$ZwyRKjMQ3TH$KH+(POC?QKpMHif +z=dzdicB|`0@EF=tyY)_W%CjHEaJC?DbU0c3FfIr_eLGS(S7(&^{VRE&MWW&d77on+ +zUNY^%8`dyQLMMeOzyRho5CiB;#HekW5RTc@W2rx|M6Rz3O_#JCnq(d0j$`Lv;fF^^ +zjn)oZGlu(k_j}a4j0v=SW@SvEwn +zF=p9^0yl@Vy(!eJ0^;JO3cfq(_iXx&rwz2D>vC}NyO+1BYi@85`5Djxqd`9T7bHLb +zF8K1-A0z_t@1ddFyOZeTMWmCre;A^ZuP7uNLMpyJL@fwcq|_szlMV@WtmL1P>7@)HfA6+34?apw0MNec{6s?IA+6;KQ>mPD5MQAzCqPq0+lGOH~3i +zSEq2zjgp4jb;A*V!Y>rsav9#U9bOYh@ +z(#l4Vb=db-09(Z3oRwSf*|h>|CL?BbqgCm_^ji=P8>Hz#D(}JMX)CzT&fsH0wPuNQZxGGKf=IihB*lpA;1684r-obCIGqgA>nGS%C1CZKbJgJR!y4`H& +z%j%3n?yM7M0H!8?q3Le~jcK3j=Nmnefs5EnQGDsc-60RM^IM+6t~~~;f#nGNc^zX- +zhAGaTNE~=ZEc_r5oueGU#w62q%5*2Ylb3>uZrEVW08r8^B!d{X^)P{=xSB}vEP!7> +z1RR0b>0|&Gn>FxJ+`lfsUyQsQo+3vzA^esrz`rpB9--LJC>Fe#eg8ku%^cVbGXb_% +zY}_gM&8OLZ*3yH%O!j69}h}v5*&B^9Qpko~q +z>bK1M>m^ql}w9;jl#18oZ7^icaLM>N7w5*YdI!gU-qW+LN^7WD2a5s^YtnxVn*OASc{f5y2rR>UgYGxr<#}t5D?>61HS0~NG_+=-e)N$XzTmkEwMeyT6Ja;DDN_w6jVIHC;-?P8r-aqzYaT3&?VTR~k` +zZn2Y1N!4QF79udiZ4HG;%k%Y!Pla(}SA5v{LY>~8yvkeyt7qK;{Q`UPqvt#sI??35 +zj=lT`o$k)&D~vC>WX8bh$*V@7|K+%>ZK0G$zp678doI{9r1}&w`lgP+4e&##Z|;9H +z%k$}H8esFym^%U1f}!~>r7mILS)t*gwcXY)+F)BZY25|v>?5PIYB$AU2RXb2U>4Z= +zr4M}V)d?IiO3 +zP-&tK#^~_Dh=IX)?giB@#dGOqq5gnd&xakv;U~UU)n(GC42MaIS5e?z!5(^n+e~6j +zu>J{GG`!>XcIz^+M;rE`>yhI^%~4p(UHefdCs%1vDpminq +z+PMR@Mgl_&#D+msY;#`qjeXzM-mJW8o;mb4>nb_7Asa1S+`WirHT6QJidResluRdwTM!$b4J#svb}J-I5t|23nm3r9w}&{sw7bh4*5Fbc3I)BwA`F;1@DaeqN`k>IBug +zgYE9rY|dJvl9MZBYKXTbqU#dWZNEVp2ZdfQB~+q!SoX|wFuJ_0xa46)tG#l_mypP^XE2?Kfrt5*8uJhO9 +zn6yeAg}3doElrt$dA0fcGPPafD>`R2!04%~Ty; +zNMm4|{m+lIMJEQHTDfHZTEsv;YX^-648!Hfz&;DUkJS3#(_wgdXaE`tx}!_k_*jiX +zV}K1k@GLjIsE)Wn`XM&MUu{@bQ5S7bUK>yQDVjfd`aFAb^*MKpi#-#{Za@>2y@+_7 +zG&#KO(+9OZmbcx-&U~nvEg+RpL;29PM8)K`MCk&v?Nb0ZQ>CfGzP7qteXh{ZYr7yN +z3i~FYa#Lui4%#j$)K|#}qSwh>&&@C+o`D%r{tfAgTkf#$^M+vjHDvs3*k$)Iw^kxs +zK9vk&p&GKg+T@?pVCc!0dX*~ki7$nQ=ns~6JFOk;zBu(i`WM0=FaOOqZ%f;)2hDN{huw2sTZ9FXe +zrKQ8s_kpAPWSj@){)bJ_3%~i-{-pf8u3X4RIqrkW;4g$6y}RCq@i_l^hokocN9PBT +znB`>qi8nA?XVbq8C##rp#@hs?9)d<2P5@V*o{_i$SFy<%i8zMUV>3$nU}AoV6VvcJ +z)s&GKU|!cKBwGGJ9Uf;6IU#)srCb)^l3-iHo +z6;vKKGyp)U(%lk)kq(nrSwia*P&)}TH&2n$@WI*+b74ZU`hKLpJZO8f%2;cRUqGN! +zq^@Nx#&{jVNBVR1Wz8TsZQH`Bx}|JTh3E#%dX#oZAl1_vE+=O3C!BrTYVpqs_`|cc +zM%Jp+bHKi(%B17TI1FNfo1a9oBc#SLk+2u;UmgZciA%?Iy~He=w$6rMtr4^La3Fk7 +zH@UZ>-GZ%c%@QRJ)lre?Pi|WZxily>peAwKd0oixRH)p@_nUiv%VoAi?$*R4r(tH< +z_=_Ovq09IllF|}tdD;;FUEDb(*-ez%n$~2mYr?wyM$+ubl+N1(jhJ|)Mx^sbP&vE- +zie%>gt@y<*zxicnp|{Cc$R?mx1;?Y2_F!h-B-!{$y}eMtLq} +ziF!2-=}>vJxDNJDAcB{&&!e?`<1ybT%oktE-U$_FEL*m`xs311LifY!947nhHAZ_z +z^>F*W@Lf?IHDiH2a#b|JEpN6qUKW3$%B;gJ@^SH2uT3XrDw0XD`Ingdxu$P;UI`pD +zTKNdw2)2OS{mav#<4KJFyjis^0`>{mlT5qE;$-VR`2`kwOha6@_BMphtP>!UmLi>XxM8wg28>t73vFzRG4DdUds(5f?+LvFuIM<>OT| +zMM?;CDS1ZtwjB@?wEMN_YwM_zWwafT&ME@;Y!%DuAy+`mC`ph4(0h~kPiv3o!Z0bm +zE)U}gMVdXed2=B_jPamTTF(W8Wb}M*Za<76maXXE?{JbIWM>LKN$1I%ce1e0Wh!E` +zA~gaP>hesm=$PzTA{KC7`N(<{y6GE-V}ZmAO%O=BL?j444EEZE%ee1=&hjhx>{Y*i +z3!mDs&)e{E!cgFNmzb0TKqrIbffl7rinKPC;d*_O($v&xGPDQ{Vtf#O9l0PhnBxsC +znAlV{gnuZyV&$Du|3kby?p{0fkc2l4CkYLsmD5e1n+#`!hNT%n_(g?f7|viKM)$kZ +zwsM-Z*zYu{_m#)a9|!ZN1Ln`2`uTU^{Ar5t9*C&vfceu7^QYZ=BIs+Ek}~p*Vq`{v +z83S{fd`DN0RPvYl+E<%xZ>YAV&qHsPU1|Rc^kc>-vP$XQ)<)maYC&0iN5)vulm#5h +zc3{mp+kvWKAs#^xqX9yt4=-vPRLHX~Kx8()vybo_Ny`T;@)Dm37@vwTCgIjp+Yfmt|{3=Y4m})ptV?<#N)xL5yjjy>$g>2WZNl+tU;!j`OUZqmvT2 +zcNSl}7*ptE)9B{2N%P;PD#TES=hiuQ(J4gd_mp<<)5>akN^UTd!92Zysc}JOmLD&OmX!!E!)Qz;MFt1C&WEqJT83tfJ{OK~8!KzM;klK{gFeXEsAYGiIy{|cFf +zS9#C{Pl~tKC{A+gU8T;VLRQGleag#tqc*Bl!Il|>upYe5<=7xgn=+Os3qL8;tNv90 +zmFxdK;2;lI#1p^Z``yN_FLiW%1u&>I$&*sM2jj2pD)^f{fWHV0f5r%ozc!A)I^Gw= +zUkzf8+q##uDJ336p5tvmWQ*gF{)#xP8id2da2y^Y7qq588X#>)mxi?A=>J3ORAB6t +zutey=yF4XHiuq+ZKVKepgwkHq0-1jBcpo`~F4HK7y`Knj$(|-=RDU)O{5+`r +zgl`<6(9gF9ejZj1!#6y6I|bQse0L=tVU!%(g??NmnBmni`QA0YJv#B6uW|KQ{25cX +z)VF6%r00MuVDKE6T^qk3|FM6y=y{B(U6`L0UeaAfA4!K5dRn}1nJqowS*!n!^gVBD +z1fSp0_Sxcm`;FpUSXOh2>yC3tanIM9%rzP%#Sthe#+9E!LurdV +zHLa7U~!TvFxCzCT)-w9 +z{0SbRp~=4pHoLL8feqzK3p9D?g2o{Pl7^c!*h>njhvr8~3+i%i)aTYTN@sCzSL_ng>LwC0>Mvb^ +zOkAwGPwS4kd>IK%^rw88Oy$xtUKYN;P=r$8cm<~IdcpSy-VxYG7HY*p!&uutmI=Oc +zNLv8!g$6x{6s84Aw=6&be&>hYi>1Q)E<(|h=MIs@R~vloL$obWS_o{PDg0r4_=7q8 +zAtwAGF8pCw_(N>i18-D(k+p{%J)@y_keQ;$w2F*0)a8rgw?~Mh{Us(?pjI}iFeYuh +z9VQUqb~g?rtC^Kx+S@vd3qC90^ALQh;iJIkDfm1GpO@jYA3iq$a&$2RS=xi4f?kMLZ$7k^b$oBW0QJr^Ta6#)lwGN)#gF9|Rw3I7tmmZ3QM +z0nnd +zh6{AEjr&2Ui1C;76*<{w+5xg- +z7l)X&9SMvN{ghHvsL=>D0`rZi%a6bmz}{3TlKm1ycyyxY!vL5{a2B*|K78iF=O*~v +z3?H3w=s*1x(!%~l{Lim>pktCp?4(|?2Ca=0N9dr89{b;t9fxJdF%T$Z$4S}IiH@5b +zOgT#{?5Y1~G?qxK%E=z>ITBV^$(WZLcpp{+|D4f=OS04}SM{mV8y5x))Y%G2;I2jJoL*@h##{>Gj;A6ZLs@qvwwld=+?B +z=s4xi@xfr8qMMkpPWBQ%nFttyj&9|As?_Vx)jL`AN67z9QN%5ItgnOnKU28QsHC^F +zsF;2JH96gCFusvG7#XrA9B4bKZw9AxD@1%$T8z@mAY}aE<03hF*te+%{GVm +zQNg{Ct(Cd8>H@62IrVHfsIB|a2&Eg3gbim)i`fbtdabu8?*pzq^K~%oYGP?UxdrCR +zk9B;mIN6G`p?UIZ>qCRjqC9<6Su`c6VvsXn)e +zZSK}+ZXLb)8y%Kb?lR!zH$U-Ov@|FX_T@%9*$*{n$?k25rkRB&l1BS9$&efPiWu_3 +z?l1-oI|AG3K@7SqH*nnAq4aO0v#*Kaz(OG#9tM01aP#cE!23WNS&bUgn}7-mr%A~& +zrXDgBn2QQa*121qJjHdKF!;}4CVBHrX8esH}#T8e^sZwib9!fT6g +z`m0QA&N)0PUHmzQ^+C}PGe}3v(ckaq+&-nHOg+yjEaoM?Zs13dB(_cw*SOU4t2;yG +z-=;XsRQh{oReP^>{pi~9;TU%+`-Ddw@tZLSu_Fi&2CsWG(;X*T;agCDTIh +zrv_@ywsH(4n*hXI#Gd`9)+!$PL&u&RoD!~23yXjJdu>RQ+!?IgM^mE+a_9V>{IU4y +zy`^;E0v?-Bp{@DvL*%uEek-Cx!XgGriLwhK)HR4v$~0M{6JE?gtpE4I=h +zpRKui(o;R2Y&_Ew69@S&?*2CiA8=psp_(G6-9s1Ju)P@*aBY(2`u%JA>2ktqvafSI +z7aBJh;MPdZJW4HTlUkC?@2l;n>t!`$GB))DDm9>#{KKGP2yp{@m +z8XbE=Jr-eqlR6lJZ{BEv!gv09Y+i9ug-n^)`*`DMKfS^motyEkP~X_!Si250a|E$_ +zF}gfeAG#R-Oc(FBTJAvOpmymd_c-?TkI>w)73qu$!5evFhnBNcEeFP>t`4j0X)=mg +znHhK?-{{T^M7Ztj}DQ1s_m1bmbzCWb2D7CbnrU;OD+x3B^yrkQ;ezVW}zDb8y +z4lVkROr^Px`)ljMKpjItJt}C$*2{;cnTF<*bvQIH)`SmD|9eA<$OWDlN13Tw%O(9CFHCQw`SB%PK{D}s{>>zazUfi# +z`BUG%`1_E)O}k2yte4HbClk3>hkQNxm@%=3)RKt^_$5`fmi0qxIq>;FErX^}_eczW +zj`wQxLd~ZmHSEcLtQ>jOTI62CfqR8gs=wrIDlTLXTqK1tr#LBIsjsE$st>YbYx(|_ +zH>l^>kOtj&wFZ@s#PO`<+^UAS)h`ox*U4Rl@30wizJdU|*F<9I$#3YhNV>7O5^v$K +zU9i+{RY_E7V|Na1+@^o32NHA6M11oK1Rn*y95CM<3G4Ia_P3t&DN@3Iv{dt#oMeCc +zK&7(4ja(iR8gx$f{zsa?Jz6cTc2U~NTwad1Kl$MkwRfkTBnO*sy`TxOzQ4u7Vs?L5 +z1AOgXNdtrQ`VGhC7Qb%;w{!j#%AtOIpt|L_8Nb&?>V|iRjFkH`b);5Mjo;LNl;GPw +zc&If0S}h8PwaDG$&)STAvN*G&oeh{sFab)QH*D6{1ZHQT@DT@R=FZy~EK6J?2UIw&N|-EWvzZzFl48F^}b2@sNRe^6-Byn5@yQZDgsTAa;P@08EWj^2RQ^FZp^hu^kE@mC +zNuLJYtlz*z3*{X4WdlD&2XQpg+dHh<;?7}bc(fGWE~*HlhDQZSmZaz~_c(EvP|EID +z3;<}F$A^o`5l7luBvVEl+Tn@OZbui&66!!=n$jkxVHWoKp&?`0^N~81y~b~Yx|>6N +zdiAWf<4*8Qz&yTwnPg*EcFv+DRL^=kK_bKDihhi?z5Zmd=v`&QM> +zx1CCEAndm`f^I7B`o2@e_O(e-9dlVNixzvYGmIz +zsgi~?PS~G_CK|;>{8Tz$dm~p?!}ISl +zs?+nT_(OSWbV#0BeoU38y3n%D+Ov_)_13=^&JU$XPx?%0M4hE}=^%JZM-7%qOAYND=HERH2OXU$fR=*g1T(k6TQ` +z6gmC(D{$$ZmvQNx>C0b{mbhm!uQ(vN0C)92r0z#F`!(f+Gz+Ic-s8cE$$r#6Wcu&@ +z2cP~ej-BO!*Y>?=q@wEL=Z{iRQmCI_s+zF1aFm3Zu%*axNhF4`sY8qYj#@Nl@n~G9 +z$`_&bo%R>(^gpK865cT!GQ8=%FiBWH0=2n>ZGXw8aF3fXjg`adhRa{IDfPe-C0Msa +zpGW??+M2o|lrv|aQ`)>A8~l!)XP;Hth@a8bAOvqxPA}Ow2wsIg`>dyG(=B2tIyK%@ +z#4oRlIjZ_i@KvE*oYU{v|uIiZT61)B=leYa8kpS(fB +zUw7+}OsQ(7%6AZDzkPTB#{l0r6#mljLA$1b?eFv`ZRf^h$VS(m2JWQIP2svUwJ>=C +zzE+Fet`-?S&48GP8(PAq*_R+-sP_9nxwAUL=^N+MENL>$v_W{JaH{xtPR>Tg$kIJVmMp)RvjavKn;r3on-XQAqfD(K1szlT#r;*LU +zfC?>;K31qn#tr*mncp2XAoB|w8lbSu+wkX4FkqRwh1`OQ_`R5|ShExS^zU4yX|kP_ +zk}g|-S_j^V*>$;T_F-a-Jw}Y`$(^egZ&Gq+fH?TbT{@j-@!TkYN-vuujntwT#yCsa +zJmNnlZzOig73uFq6Q&inf=&@h(c?T@T!riJH}_(ZasN=+&|ES!7D=Up&%P +zV3cC?P1^v|x1=$A#wdx-pW&QtEG%;CnUe=lA&+nDyFU%rGTryLA*8kCJx&MK4z6X1 +zL@kT2eemY|fI%yT?s5V@ZWQCfvGNs~Kgh%c;8prY`!p$<`|z;%Iz*Fwx@59;1n>@5 +zl3TZ*)9VN5or9Nv2M{%lQoFJjOHfXbI(`3fO`U$7=azDDvio)>{SbM^<=UMO{?5CQ +zTguLGmzOf}71eEG)(^Q2TaQfFL2Z}BDI2v$7_ku~pVb;~!d7HVAlm+jx1_~5Pv`BA +zSd%R5%b5o=d&UXvz+t#&&Ak3={o=fS$PVcJW5K(tT?YyY>M0sb^FVH&^lSC`zlfo#1W#Vp3>7SDO$^jmTQS-?c~q +zw>PCq{a7LP_)JQnEZ-#TFb+&I`<@N6a5q`di!?;D88yv?PR?Z_B^Oi^1*u2MGR +zc|L8%@b{21PECnYQ;JL3s^6n?MQ;--B&(VRC?z38DSv(UD%z)ybwjjI6hltcK1u0Z +z#ibm$+#cOo#5QV&5rWV71l+H5c1D)mhQ~dM2Gdjz^;JLCxXZa0$KMwE@eZ+r% +zby{b^^AOdA6p!>(>e^37E3HgAfC0W(+27E|FHN{+JeunE^@wJ-jy=i=I*>r;G%ogw +zPq~930_EO*_0of?TQ~7O&6m~P80`S2r5Ne$kCqm1#aqVQDRI{fOKql{wGai>j9NKhxiDGTo=UC9Pt5)>mkQsk%8zuSuF)*F$yRD@<-9WKqo<2_zWazchoq9%3IjlW_iREf5 +zcjZBC<=e0q^cjl`Nzk_g=4*72sW +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 +zx%qZ#Z9d5UX`8OTl_2f-9 +zNdkZjn(}!$*de>(S_=DRKZz$UC%Zd|V`sBE=;j+kgT8KV*r3xPm$d_^;g~|Jfwhsx +zlTnw9C?%(EMzKm=u0m#naJ +z39Xa;I7yjhJ`CrQ6eZqIlNP#pH}X@AOva8;SChML3!;tL9qb_2O?dX=uJ%QjsY5icncWsI+zE9<*0S-OleBsqRr?O;`vyjt&5qo01dZ;RnR#v9?dZav8Whc`62;Snr +zJRY}ZHXzZ-s&<49Z=jSymZ?39k;+OtS}>Ke?~_G^5p{82rqhPqbpuD58uheo4jTBi +z(MkCjwaqXj`d4sBS~wj>3>}KRWWg7YR1m>RE3xl(!Yq$g!VDRBD-4BDml~B)KLM*K +zWhXM|ba0SDu;edSQV8l{>TgDzEAO8FhvBHj*Xp8lM8z2Y~k64hg7qol_jOfr0N&xi)1Fko#t84Gf%4Dx~;Z(A_6 +zIklCO-eWPX^i3BP8l-QI6mGv#PKT9*xsmo*AyU +z#0YxJyYTrKo~Mn_TXgz}NJAw3Glur7N!G?v?ydw65FOpJOO;H#<0!_ub^rl_OG8QmzW)8-Z_*)*U?E~V_Mfw +zr*2WfNGwNjB%tpKCwpfCzlNS|QmRbWo{V`w^U<(>_&7w=-d1C7MzqwWnY0Yxv<>#0t^Y&=$RB_Dfd7Vf$~Q%aZu +z?TA$hy5(Y{QgRMDC@(b2#TG*qjhJySj*pX%SPYt<9m>UVka}UTBiVK=MlxB0%6l2} +zVMwB!>~EdgkWBTq81pisq%L9K!Z^}S$_tImm&7eEp(b^t5T65sl}Cf6?O)lT^P*xH +zJ(qGp-plu@;d|2b;J{9n_BeaLM4`k_Y|p95w0ArQiSuy7PwTpSnfwZ^*OpMDlig3S +zh|tpr_cV6yqtH@XV8Bbh$$Vo*`wJHJoNDqVS=Q~vGPw@q=K$<?QPY_X)xGJb$8K +zE1pj~J&QDOdM03DY8@}2B~G(NMW>CmdNsHpUteL+G%u(?r38Oe&Lp?-ApEK*hc7#`RWsG}6#8QCvi +zAR$MNRn#NVAKj1kKsp6>CWfpw5;@%8;IX{B;QuxX22$kjp-?g}t$F}O!s#y&Y2nh{Zu!VYZJ8jfw^PCiN0J^P%JpT%1y +z7i@r0w06iP8~v})E`2SAMQyZoi!RSv^DwC}gLr_L>{Q-Y4zZiRPz|(0N2v3+tM;mk +zMk#pHLqSn6ccZs7JDZX=tyfE#lV199uA(ekOw8|_nz)htmdBq5sgl^ImcA8-!T +z{C$|kl_Vfxoc%r5^8CSVX02Ij@6__r)bc71qr;0N_Iwsf&F>bmLv(S|99DIVR&|T1 +z6dN{ux@W`82Sx@5n-2izMZ*Brml|$9P_m&2CQWZ< +zxcLB@6y&kbG6$It9PGc`PN4W2)lT47(`ot3zJ~7!cmR2}a~djcSmsQMCSS@@NXSkZ +zB(!hYb`_yro`5oV9jV%Z>8Z7XEHzQ9)OS7S7k`?9TzE7zp=+&xKkxop+rSKSv7pM+ +z*Ix$+b{Wqfh4mtA?o@A6z2dOz!gICrTvwy5q}QDJdZexIqCJpCUm2Xf*vV_rZAr!w +zBZ*eRrY1bqojQ`ssd?cuSGR4b@d?H+tu0JN_# +zQ>(a<#pEsM5jKpB%#&3M5LPr*`_-E~h?Ks69g)(R>s3-Zk&1xHgZF=1|3^{+I-(W< +zFI=sBBlV){==T0p%w1lS!4UhOd8HH5&TlVi*niu2a=1W|Opt?#gH6nWS6c +z<;@ur@IJgW{zRV9+IXV#MEL-F`(leq5Cy**BQ>UdF6Q +zdnbMyMtjSzLVHW64y8S3#!%X`XAGjf;ZPinLiTDBg>wIsUQi?c)s2Q&u>RGk>tCOWNXu`+*1w;Gt$*wOZ(ILxdspnD +z<*$ZQQXi@iFTs3z+=)r4*8)S-*twr8$LHLFuNil8c7{1%25KNp*<)mO`L$##r~ +zWp6SxZ6;oY@b;z(>#HK^xU6yx9hWVIFQvd!$bN4IGE=(Q%{}}c)~bOEXOBIjikZ`_ +zJ?uA!H6AufJ-={I%Vo7%s&v|4;(<-}YTD!;d1Ju7K%9j2xD(imw5u8@ewdr5kB5 +z4*Y5$g^y-DE1NTTG~fCaZv{qOGD$}F)W8j}Cz@`L5wGpZgE5nonhuLq^&Y6nb1$=Y08z+?w65N-1cm*1i>w{CZs~S9 +zCTI7DUS{wkcXUZeYLOrP9QU7VxIW}p{4C1s>yY9V4(E2VwIqw1+{@W>hfwd6%O)Js +zY+!zYHD%elt1aGElMA*=MOIaREsX)z7p*MI_jRo0S8agX$#)q86O>k8PxWx;Vm9hm +zyj4AG&%lmZDX5hf7y-!pxKSrvOSeE94ic)*CdPf2`t6k?V1M17-4N`Yt8v+Vm910A4vBMLeNsAO+-mSciJD +zfr5Co@$9o32UlC9RlCs6ZNTfYL$vY-PAfs6mE~_~U0$jB7ua9C$O`*Xjb7|;4bTf& +zooJgzR`fGeREaboQBU!?VD_OCIt~Z)vgAgMUZl4;y?pUz7`MZ6giKOMD<#2+rac?I0x +z^h-WIY~e<_8H?vdZX2-Ng>Pyd9>Z>ccjaWY#q}S*P}K%>3OGdrlum~8k01PvdN?xy +z`9}@<49^$u_OfW{B@!+tfN1A!GBkBXka(w-{Om76dJ|YUddKtiVm1z%fj!NI9kzAU +zAW3#*D34IHu6sZVk-D|5-*9`B7-Q{`X#fL>bo%4g@kf@OsBX>bcx_O1B>QtB8byXl +zteX6S66=0dc(G;Jx$u&}C00O+lO2P7RM#eb*v7nOh)vN?jP85Ya-C+XH^j>u0BlY$i9j! +zTbndgmaUmJRF+*iYmm@!4%dpR+AfA>*iif_)SU}G3lJ%tUw$K`{CT8`l>dw!K+4#J +zt0QHSCQ<%CUH>(~GE38+{CWzNM10pv_XqeXnwM9l%Di0d1hmD*Zn}zq8A9S8H6)hQ +z6w#p8o`KOtZ2slvVFKopP$9Jr;};`G;1VO3F;$6?5Sy(@pNPe|9E!`BDioo4f(k{r +zwx}{H;d{(beD|DI@jW4|MKxbt<%-5rF<#xAG$sudGwo0QR~-vkR}SocU(+g`%xQ+*1_@p9(72Q-dP`-B-ty&S +zz2(o7^p=&g^n>Cs{FnF(-~Qi!i`el0%s<2Q>3WOvdSoGbi+=jhanMHMD$O@srccEy +zq=?l@CyXh4-4D}*<$OX8E{4QQ3WwhU;=S8Y`RvaCKH(d{A4d4d$~9R2XCMD}cwHL6 +zn<_UT{LXIxKO5nPRc=D~nr{Gq55mV(K7;T}|7ZBhjR+fCc@F!UPkl8nQ~jM&d3w^f +zRW>4+Q28ttslQT@YP_z>P6Pz5Q@PRwM7;yy7m#R@P(I{7B88p~od^HpHZrxZw9G|p +zLB)9Wrg9gQpj={K(;}WUl#5qgE{x(QbMcRBHt34O(sUNG7y4D1O*H#UI*Zty +zyw19kQ=W?^5ceFPq1f$(S|JH-4ztw@K6C{ml8oum`fnIo|6v3>e!LyY;N7Mv#bjo%@it)#(mA(bllTOx`~b3Z=vHJ5x#cgf-4tv +zc40u$-MA9NLtyppWcAmByR$ezV8!lx)L(b)#zh`~Id|*SwA|gv>M#55M)lWCySJ#n +zrtS8qzb3-q6?9f)#Nq7;(Ng&?V*6qW9+Pz<1w!|tgc|fKrXJ9{fvCp2M{D}QkbIq^ +zXy;IL(-|*1kAwZBf&%-+1DeHqEEJn1{G}U2&|4M3+hi(q&tgi-;EmOVI`u%XYKM-_ +zyxf=7bzBAD^0@TDfK`SP4MQ(Gb}D&*u02W~p!y*6K`z;)xZrQ2TyC*P@@QMwuRiJ* +z$d&kQ1bLEAnj{x{U!Wl<^gG&i??~5MSVMa-*oBs`{*tyLRv9`S0cobq$+ioe{ls{x +zj_D<1i{n_dzo4y<-O~sHOu;ea9~boe4oP}Jqu`rBUQu@19Bo3)*R);V<98f(Dvrbc +zf}Mq`f!!m`$R2hUvOid`^dxUpr%v#pZHH2@Qz<#@YZq$b@o9nGc0j1H;meG?9U1a*oY}|8!I7TToA?misz?VR>1GT%2z`~(l#-pck~V3kGRkI=rYfaIo6`uJ +z>Qa-o6>jFKjKd-c`hpv(&I +z%WC-bo?Xv6e&F$--^ +zlm+>+<78kQ{He%zXptCC^qs{1i0Tr@Ne(aUzjKlDP>!!dLQBMCz+}dqIe`Rg2jucK +zJ|;jD&to{PjJtBA2x}1D3;PQf+1`aoH=Er%dGJJdXT7HR*kNlEHegUf*w~xk_fIiI +z39hKfzCBfqk>agLG`Hp04vFci*~}Z_EZZ6JdSAO_I^RNOGZPg@8wQ)ykU|#Br;@ei +z`#P#crD~@lwYgZ!`e3jWR_T54t+?{}<)Bh-EBzWjEefP5i*uB`od04fovT&krEI2! +z(pCkj{@^}-MCdrF+RGHNmxgm(p6LVB-oT2I2MY}z2Fc|AL7P84d=2sjXFDfP5%LnWp%UZI`(Q;y=x;{~5#cE~j{D};s5k5QN^9T5BhR+gM3UucG +z&;Qd$7>too(WYTBv6sn@3CKUXX$eL-4iGJrb-c!?1-0gK@6hjtxc|bQQ-KLcE!g^4n-r>Vd@E6G3b7$~i->6l8 +z!%SzTCMDMn8&Db6rg^NvO9oNp+zkv?NbWo(vJ#ajXReWLH1nmgCD&{UgG8rV(u_fn +z6&w-)l{h?IEteOEXF+#HQrcE>8{+75>+o8Jlg&1B?_33am^aI8NF|pd<#N7pATOB) +zjv=>P_|p4-czYZ8sEVs`csILA7T9nXOdw!{DB&|8-~tjh!SJz3Yz=G@vkO8JKj}7p +zl;XX7)Fdpu*_xYig|^aat*uns($+pw|B6@@6JirkD<4{of*LGsCtaQz1j9x`_J7Wq +zdpDa99^3bQ-Z#JB=H5FWXU?3NIdjg;nKOr@T6u3-$bAmT(N)4vFR@?<5SD7%t +zfGD~gND1v;$|uwS>zK*g_Ua;u6m;T_ +zNG+fLBB~oipJJpBq2(As^a1pdIHLa9<-KdFG*29X3{%?v{-Rq^ECYBJDj(=nsUs169sLT}4uM1e +zvmTy8&{74{`q{Qi&7B7O55lXm{9OQwk6t7!!}DfRIhn$?>@8a~>OYO~pXY!$RQyZ{ +z@1!kffj>WyLq=A*D_F>n_gzo!FIc473#nEU9{vcz`W1qRWf`PzViRzaJg!KYdiR%v%l +zJ@~yhmfkiv{jC`Pqszyy$M}txj}KtH_wx8OVElrwh#v#-qGjyyCD~e_{V<-+0}Y-3 +zrx^d<<>U8I{UP4J8{eL}eh_?${}IOT!?%ZqjNgdyP55@t;P``7|I3$ugzA6!_;#xQ +z<>Nc3{tGS}&#C^GkEg!6cY#6QXBG^?zl-XR@r21k_(r|s2W$T-T@vWDSpNa9mx@^1{ +zzaD-nfVyOz*iBb!?RZvzSjpYOY}pvEYF;jiZE~)NErwWsJ{GYI-gc#vQ-Vhc)^!*~ +ziKY>V)V9Q2UE+&FK)_3omx`np=Ru|-gm)I+XhO|SG!fLL1ogx`1M0DPaZnQss8F9L +z@iMC23CeIfLg(CVmS_7t2=d8!F%-YpiomwVfCUMdV-Rx^@cegT<~!!mWaZ(1q^vhn +z2D_SPCntIn{cADNVoa2RFiQ9jDBVnvPLwin-T+$m(;xY#r$}C0r1<=s5zrS-EY0rW +zr=5m}^G`9T81D`s!0$K>+z-)4HOy%K^_caKPQ4JnA3uNR98f0K=V=W8ApyoWjmokW +zoj>B?AJrl3O)=Q_I*oyH2fjUo=~v@h0N++Rg>@29EsKf}_3^SfjrsQ6L}jf1944IN +zjOYE86)m|*%C&xuQ6rpW(S9ct+;^Q(@VV>a8pMV<5|q?H-8{3B>~DvB;c@=A@G)8s +zdj&rd{d*APzUxRtgaSR>PH=w}gZooFbeZ7gk8GjE*M9i@?LoI$7R=AJ%Gc*6$WCYm +zY@V@2N}*oXG#iw49T6{_t%qe`*aW`=A7k|_!;6$uzsW|3A%1+Kel(|Grib5Oi-@Jf +z5VPorUD!M{Vgve19DO(2aQx35ioW+?)bHjJeXUg7&*mD%Ju>(5^j(W6XZbz&xT@Of +z<=-HjY#A6;D+sMDk#<1;6TQbP +zPb*UH1=NDw(8^CEtd7}(T3K|#Nk*baG11GHB*H$)pPr2;C;PsGNIW{*K;q%qgL(nc +za}Q>?f3{A~Hz?1Yu{^iT{t9~fU%~uNBYz|1&x++A|5f?PFK4R%2txVqYvXI+R4u8ZT?C(sk2>=34WAckLev5!0w +z6fD@CDb?@7?P%dRQW*!6O`2La(^Mm|v<%3ud1pow@x|YT2v56~28ow%-GT^@yH=k% +zgy26$i2Ign(J9q49{%MlnuGnPsQ$Bv>4#E7R$8OUBM9%$GV1r|S#iX4R8913A+Mh`KpR;Uj4GMZ{uQ%?w$GIEB|74S*t}VBdI}EgDpXWz3IR3qDmn=qRk%U1nW<$G!T$us=v +z2*))O2ii^oGCKxj^31^lEiS)*8fHwGNv9}jnPbZgefzeZNCMQe!}d$1>PNVLdabuu@8QdWMni(-}r#?K6zR-lk(2)AaHX +zYkw|+*gJzJJ&8d4CI;f?Gvb76N6TRP5Xm2yf%N%{f;qnx%X!y~%eUXa`FK47Suo?0 +z`B*r@6Y9xWgiES+3clTmSuFTQ5>d}|LcWwxI6Xa9e|%eoN!#&_Cik~R(y5fRIhORr +z>4sACdwe7H`zf*{Uno$TMiagi{BaDW`srdLHcrAyBngXGPw$`l_RCn%s#rlQVmK|Q +z{Em1DB9SBrK4W^nh)_rQ(_{HZ#?Z4)k0Wpfpr=Ff3?oQISVqURen|5O(%aJvNUu*D +zLf9CpeI7wbKbrPGw$G+%M*G}5&1j!HrWx(CdKwY^x%&}=n_?I&#kU4bx^SA&KG%w* +z4^q;rV@bzOGukI*nn3`|wEwYvPEEaB`@Au=zkMc9LHni}1^w4l1E;5_Uaox_r}k6z +z;|-X9b1eUTQw{X)oH}&-1VsC6#xnBbAU#5mu8l#;ntIvx@&AJg}hdF0Jr)#n|By?_-)Yl +ztQQj;VRI=zD0Z*~=$CPOJq-)j{kv%eS>~(on=PQZRrx84wQP>a^I(?Ivb9$DjQ+$cRkMI{O$Yb +z_#bqV>?6XyI3Ed+? +zPj}!+vBE45|Hge-Lo<8|k@EaCIF{RSmz0OEG3b91-d-d9Di6`-S3@q+HCPw_(>2)r +zClZ{OVmY3@#z-s#-=9;eo_jIX4{7Im-k?EJdre&XQ@Xpai5n!92$~d=o3Dwjs0poP +z*)?b)`2^*;{u)Ci!ToWv=*)^CH9m$E%X<=cd|uB4(fmH+{@vFKr@7omlvU7?*w;O5 +zE|B*cgS_%+=F57t6!;A}G(q#DJBgqlSK~#D=zZ`7ac7&${jQP*ox&6HSxf!s+lPOb +zuA#EC8$h&wOrWy;YU;4KBw^9q?YLi)dodbCEusqdSpV!d4gqF~N>*NtmE3m^R%51Q6)BTY)ID(b6%=QEA*_}`f^ +zPP>#!J&_q(|HGYg0yJQ4kx~d?2>&nk-GuW9QF6 +zRu8`;484n((Kj=7Zl=f27iB^|dHN227P9yPBT4>KLnc(({ppx)0^y7od$Z=p&gWr# +z_8TSq8+TLxk5%pbL}K7AG5Hj@qcTS5_s1v3i!R|ALc0FbMC$(p=cS3U{y#B(>iajA +zIqD|%%M!<`iT}rd-9Aw)bKJ5H2r~_9YN&NdNz8-U)P0 +zpk*HT3_y><_dY(UypTbaKw(H{nH;Z>)o6@TVbC_<6CwWZb8f|3Qj-hT_sg#r6_W*HSP4b3OLHvBZ=dAU~s<3WUTHQQ!04W^v@}e(PNN8cZf#PO +zqSZY7Z>bqxeK)^Rn4<}%=xnOwd++F9#n9L9BbH6`qglaux0@Ypi6?aU=>F-1eyvYM +z%Pz$2Da01T@riz6(6?3s`dX`{tfgXIl +z2!0V}yaa7*u)9*WoIjEu#~+}4pR?N;9Rh_UGAUa+1O|V%jyMzk`z07q@Zn1^px}Lg +zf#v*r1(w#pqHHXpv8pn79FV$V2>;uuam=dLj%tQabDw5C(!+R9SeZ9G%#i+~(PCWK +z`xRa6_Aj!TY;14l$&Cl`-;uz{t?+Cp{-W_<;M1*vzit%)Sz8;*yBjLbH58w3a7Xsz +z&8eaC2%QfN)LeJLq@;8&pZ|HjlC(nYGjBbu_9ZHgTuB+#-JCDm>Au@=BE-~<4Y|(+ +zYUV_@>KSA`L$JH<1|7o{N@7FB+3>K&<@3+k0}bx8to(GfIaGWW*v*mO<2bXUFUe@) +zIp`Dl!xDROD0Oc=xGO@O14Ci<%s%)Oeycr;Yo=72{ifGoFqYnqmX@cht-ezJy?#hK +z47JUQq?5KE?*jot=rvXRo?8d62O9VK3|wD9Q&8Xpp<)NWTUc}Nvr=~z_a~Oy%e)}1 +zHo-uJc>;aFb<5+b&0b9JLPJG-?d5YQtD|xs3X$>l&o-E1?PxRAyD&+LEshlS5UtumN;Wrr}%D*(l +z9$0Kr{=nS5RclZ@Ficv8y5Gwyp!z&o#k@S|!5?bIZqkYA<@GmGf9iKC~1|-KLedhey)^qgN_{ +zW<@yTYsKw&#J}2HhGer|M6$taJMZZgE;M!5K14kJT&2mlpA6~m^#P(y7l{6-w8Tmh +zt)P|n^5=SE4e{$<-8{=?82JnwZ#IG$sGl +zSp)9#^0G5(--Mb`XlF#~_InkgZe>2NhlunK@_=b?T|WPWxPj(n&7_~-4q07~WglQ& +zNBh{@%_ptw`=@r2Z$Zd)xK0<+>k>nC=5PZ0*ma@iFgrXb+3q^AQvSLPhs*gRliI4* +z;99w-;@@$eMDkRVY2bZIwlc34ycIot0y90XxdWQJzD#pBXzqtJ_l|X%`;j(xV2p__ +zJ^Jj7&87v{lFK|l{l61W@>%B#v4L#v-oSw%_(x!Ifg*>z387cfM?3#>Pc-VH-14>R +ztA0A2H*sCm-N@byZ87)XFVD&Y*@r_n4NugH1A1vM_~~#gf|2%*DdiJxGkWr9X@7ya +zz{Bmg#l{c&m=Rw29v#0s=k?HCR5`~o*Van-cWxOngXK)n~HU&>=GbQk{epY3spvO9M#g5PtYiP4UA93G( +zc3VhJvS>7VRR|H$RiC-$e`iM_LW3?51^<*R<( +z7sbBsJg!d`Wo^_&Fn=30D@kilP{ZGSooILmc1*gGb8&%$4%STlz4H3=hSz_+Z&nz6 +za|L^qO16e5!sFw|e>HfjqTUm0mwZo|kMF%Sk$$xRLSavcPCTMSbZTB!8P}D|%*#so +zlFI(JAJ~x}pBvYa=k#~vBKE=nOuc;WS7Yks_Dd3BcV8gv1H=diwC=!8|Fw_@2u27e +zb>mrhe03V0GtYj3L4<-WL~i;^O2zdMeD^O0mjT1(ojC)FP@brUw!2erJO0AJSgHPd +zpo!7_b~v8U%X&XDTfQ)m(daBR_hSH2cAXYnPoz%r@PDn1BQg!J6Ki8c#u>7pl)n*6 +zGtO9F5v=78{Yk4cy*z0ZG(tPOklhE9`!n7W?Fquj@N>WII`v(BMEc-z?83MOUd9V9 +zN$5P}>|W<0{A;I&Y9Fmm@|E$4kW6}Qr?_ciKz~%*l3btHd^l*V&AxVEFAUb9#5kWg +zCGiCiEy|@A3$m&cLLua$B|eR~DSzP?mtela%9_zJjLzU%@;xO!9)fhZ&K#dI*sc67 +zw#L0#deJ-00I%&NR$Y*V<)AlcUi=He3Srm_|JphXA9oT4>6c&t)JxB=KQ5>T7>pPi +zg9bLASai2IZx&mx#@dQHN-wTJ#OPfMp?62-&GPs(!h=7*OGgY)$GDOhVn5k+ImGCG +z`vJ(^w`(ZmBr$TDXPONEk!yJA%`y3M+v(lrLGleKw|I-qarKR88EGF{u%-{uz7=n4 +z)6#G;fX}_xm@_jOMVEQBt57xLZBO<^{peJf-%Acg?JO_0xTPAYvcF3c4 +zn`H=GD+2NHQrDLWj!>cP-(0g-rm~eYwGbi@&d4<@=~yDdO+vV`fQt_h#Mj6akZ9xko}?S10}(EeE&j#=naMH`@~H=Pu_y7 +zt>Orgi0p;MQL;qwUY(TaXQ7450!XGAI +z`q+jc>z}YxjSj?xtOr>LTR;mwL!U=j8ZP!~!998`9f8n-&(mi_3+{s#ON)hS1v2{% +z{G?S=?S-ca&LfnvA!OgdcHT)LkJ5jvV~GB1p`Q|#*uy;~+D>%qz!QH){3_=KgjhF$ +zy^66o9(~m&Uc13$D!>zE6kBtey?|)2t8fgctqE +zP>2L{iHbZ#7kdzYDdFGK?=8s75Nla@q?+a7aPRLP+N+z1oKpR>NP^+mzZiw7TeD2k +z!y4^p={0=jD{AO`d_WDCKTb8g>T&GH8ETuAwL$j){EhwrJ)?|Ic)Y)74Al1sjRC#n +zh8Vg*A6ArDetczQy)t-=F`QzwCj|$#&NoZJ$B5n206_19yOThS#UzC=076vDoqJ-n +z)Tn|X>l>ajy@n+}p&EuTyrhiZ{u8R9>nC~*ZB)a7^;`Ut%hpdGqJDY}f`wGSr!Ui3 +z&kd{}G1S5=7&Tf$T!T?1CIg_Yq9#l*Eo?izKHDA}&|*J$jOuguV*^@jV14d;?EiUt +z5wBz~5S#OID;5s22qrJ_ifT^88GQs6u@f0vsh58Y%yO5FHd!;;5^>3h*cvbh1`I-+ +z(zA(kNl#%c3{qqbzQ2hT{})i4@U|s(=?nV2@5dlG;B9)L&?{6h&v+E8>p+!eA%yP; +z?Zk*`S1Et)>xTG|xUS7K93=N3MtMRn;DgWh3|3#R^29{$#w5Je>~+#tj+F8R;<6ky +za*vV~s54)yOaNWi8RaWE&V{rRmWDWLsoOfY(;|(D^?}L*<5Ak5?BOjd4akXw3zL;F +zJDmNtm!CNujW%~!$tRooGA>A&l#$+Qe`~Udm!G2LP4#8I6HmkCN&BS|Ub8X|WuLjQ +zlvl6pS8LS{NXpo0`0s&PCVCW_*-WHkL8POg8r*M54 +zq=2wZ@18sKHsJL?8cg|L{3u5GWOHnNs-OPXeeE*zf0gL}?25R`tTY#v@F!OE(?1#M +zA2R5_*B_(*@W58{wNm{Cr1A|Wb{-ddL5;gDmN&6rVG>aI?d-!ozCA1`jB`)U&ykc$ +zuC#w-3BNABa8l?p`wM3e5+!N=V?QQ(dP}0mP)rT=6H-*Bgg?GBMo7FQaG81`L3+3q +zv!)?2v(u2S!DDs9tE>6ePxUE}y1G2f!+*ZOF#AO|FQ*AX*~7mes8%6osCg(7o0O}C +zrEP*N3FJz6U0B>CB@)Pz-#*^rsJ@Gj`BbcqlPJJQ%s@Y-D*- +zz32mnwUX4owrKF0rz49UoS&q?8-bUs4BJ)zblQ&nX@0t6W#UFG5T +zi~MbgMLHj8OT0;c8@RqKOiJV#yR5jyONnYmjcgs^$?` +zuW#!u@l_Y4nW27u{KtAk{c08(^}Au-5cPYgL$t(uTAE(N5m3W$l0d*fbt~beMiOdL +z12qXzlad0DzTt9G(Nh?KmII4T@^zsbO?q`k<@4M7^y&yujU%Bp^qpTonQ*`3Xn%6& +zz~oh})&!HNd}T!oI}lnwa6PmYH$qq!YZ;(VET3c6A*|0d@q^u8*Z{4J~&h +z@cpRYQ+cd~om~?TKlB}vhZ|w&LqLQbZ0<}r`%89EJ!xSF&OUt!KEbBC=}4R5$~A`F +z{}`5nJJO{kJn090dO3K~I{|vofb+_N$fJbfO2pB~#z^d6?Xru#?(rC(LL@4;Yc{f1 +z(Gn%Fm>AMnQ0rBa@5;Gapm?7)l*zYplA80ec# +z&>)l*YBG5L!N>BJi++^lW#?HGZ(~-j$|D+i_-%*AJ+HI(tn|xaFyXcOn{B=z^*lIGh=3foJrSQAMq{|aY +zbZJMXVkropZ8Rer#})8?`Mlij`dm_X6Kjuz3Om$DiuB+&%;d(nUL`li>*2Aa1d8I* +zN^l1dC&8LdgDD+MAR+OCFV*EvI<+-HT(+Y8ppI-A8a=&ZXEle8|d=u(sxo +zM2q{a*5zsKCQAe+j8JjAyp*;5+g5sE(*U2Dxyy8etoK9i_Uxkr{8M(m25GD5T>6p{ +z{(G4H&bNEGy^yxT0t-#@R2IqZllEJ$_wc{nhSeWg!rJ+Vw8>&~wJ1L>2;^RGQa)nE +z@7@^ROoX)MW=iBz*Y)}RiGjt#WcZh*c@Cv=~b}2XpvKBzmOMvdwZov|qJIY_rRu1B-kak`Fy(06M#(aMq +z`mWi*;dgMG*|8O#SF3m@S)4OG%O(A*1TPSYun&Zn=77t@&dQ6Sx>w7yb0^EzXmWT) +zftSw$(WVHv!pTHSF&@gW91N8pzcDYVZ-R03hFJ<*)MQHmvbh6z3mBa~I!GI-y}?7u +zD3BwiO5 +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 +zeh@y}PR|)^ANmr?YB?#mRH`hiClf%~<@1P> +z+V7pmR?J}qGfS(7m9Q1L9(3zf;t5Zb_OF-+0du7NN2mg&9#)VG0W&dyM^}^m9BNd` +zgR?+LL6})S{Zfm%(5o1~Qmoe$g7DO&M0TA*CZ4<_L~13@6}o(*?{BOqf+@+nyreW# +zpGeS8pbpNb&cc52>uF-XO9kGuUx#kw*Ws^YDebhY+jX8G4J~72$zIIk`wlwwwuDEE{aW?k%I7-QH4upFoiEy3W)kurm<2Ixf)A +ze~WD}WjMTLo)Z2wh&F^3E9!?nXVi7}{$Vhsv|1;a!YQoW-nx8z)TADcvJb0=mvR3T +zV-aUWYrff(-I|S70l}y|&p=h4!Is)AZCkEzHhD^U`~8FfG;|AqcQpfE%@Eu?AUKZR +z<@O=uE7pZa14}*ppZCX1|0lHq@mhg&l`#>hEeU(wF0}41!`rq)AgLT~9JgpZ2+zks +zcwTK@bPEd4%?av(g!nK)~6^H5{0ad-f +zl%O;~IF=!jjZx!X$y882%kn)wKNii8JxummRRgs|IzQ?b**%#3>rq`vik;6T%mHx; +z>z7lMrC08Yn7`R#J2O-FLLfO7WwP32)yzzyotF}Rix_oUvMzdWc~wZq7H2nbWr?M} +z$cDR$Q)?3oTwOJ1TwS#pY;1OG$Qne|J!F5*Q=&FoOL(d9D*T4Y5AWc_}>f85h}#|ATz +zqAAtiO)drm8GSogMX&mR)g%Sc!d=+qFEYpcOU=et$aoGvu0eZLR(?);aVdEZlIn3y +zU84ik}F4UczHoSV6kR$L2hqv)Wd-6#I*_J7<%v +zZWtinKb9jMrFI@n1Gym;N)MpD^n`|}hfXg!1Ew-A20vxVnnSf-XO2OH< +z08)MqtB4c|eu9f#7D4CWFGyz`+<|rf00sw6`H~Jd7J)8b7Ai1%s!cvWvR{5q>x+ge +z&AdN_~$4nPZya?+y{Inv_4Zq +zI_0?S(#|FTkjB3aacw3%w9Qk|VBugioC^~2e3NOldRH$D>8HtYS5!%jDvqdP_eRTY +zn!Cg6<5TG}wTw15UQ!?Bc3K+h;4cD{7N(r?^4SQag+-yRkg?hnRc!vJ&zK!t*jP9K +zLA&3B2rh;^&f{7IpaukST>#`rb5~d+yW^SyX!2akUw@dEu0`;-{Bdn +zP1xBWV+wzqGN$7a-Wys)@4|^nCVwynthz7c?(+CivgMO#zsDYa$^-R-THW9!$ysxs +zGAcHVDt3y04EbB24n#@4Ue)<@W~1hOiDJ$8Nh#1xzt~Y=YV7*+QQ4b3+$@A +z(91uyqC_3x8`mQ9{MuR+&H{8o68+310)+5rR*)eqGQU0oBGzR7ouECAX-Fb#Iafp?kXmT~nA7KR@t~1!=&GKQ)^`VBSp@kq-0IR2b +z%gg(2!GK6qzEX|!f!=zg`O8FHPo3C&GRb1!nc0rcsa^{F*5c@1lC@Qtj!DO1(o}Y^ +zxhGNWnAqHrWU+=s!hMu5KPw=o^89`z|GFG1cGoGBT6@YQFNy*-*F{%YHxFkcrM>1Q +z+Q@LSm;VEr6X@B28;ZkS7Ze9(2&Xh87izU9a)&F2T9Zu!htMf5yJ-kPy-v?XlEXOO +zgLE59M9Fd6L<6Vu=a@Eb7RQY&#^?yW?U;LXSk%9`I +zTZDGrSBV4gl#hI-ucqek@w=AbqNOjYoT@fsqQ6)$QHKvGvt$7ONE3(`pUNrjkRE9& +z;`c2_D%9G2{O@xHcf6OE#VTI8Oz(K8O~8Ol<3H<_`)*Zna7zp}V)YHR<1@9^Vb%)l%1AF~zzxi9yLy+ywA#yYqYkpIu5a36 +zQ#*PgO?b?1vpjmYO&<9h6C_oV+X~XrE?sBLeE2FT+r#;7sEpyMM3`H5Hiwo(1*bTI +zUFhAV1G*6K|E2x>f2lz0267B14_Eula-!OopnQnb``5JwkI-4(M8Wcg;FQlV)j8#? +z*|CNz)5*XN22NU>#{)eHO8#$fLq^VF1vVdBoE-^9>t^~qUcS^v^*BeTBkZm=MS^@l +z21)I>h-64sSJ*SvH=|XMQC(*>X-Pu$icuSS!7wj}*~hdxJlo6B&~!E3p$e6oc)q}H +z%7k*sMVf=ky>r$>~0*%wY|=6P3dsW +z&+oK2q>zd#(6kTGE9jn_g>oe`bwgi~y-rskjnEM2j%JGP3LAc%-Wl9Hui_Y8Q<;mD8 +zt6Pi~7>zxv)@FuQkS)x8f=`D!v;gv7e3KZ7-JiY@{X6I5mS&D(Lpr5kN#Uv3Uc(V( +zP3gt=|LPk!5g3j8e!kwgo>>Ia%-_P4`tUrB2dIhr$XAiW{jp5J<&?49mLKbAzqT5$d2ko+mMjPuy}^EqzEruU?0YaP%?b`&a$d$rng>=O{33(`T@3Mb<(oC7aR +zlPBAF;V^V~1UBn-bVT +zb8&C>2d=ga9#(rUJRKx2X}`(q;XnK)F+fN;JqlV*LHgH8Qrw!X?<=Aq&=M3H-Hy&L +z(5wPFG;7Ol0U9Xw&c7NV?sMTVG}%IIvMX;8O=g#`&QU=2he52Q;yl<2^T0EUW3*kl +z7-`Gr-axIC%CFBhnp79ysOfZ5j)BuWv~IW+^K8uS=eN+HD5N@%!`zk5m-QF)_dGG- +z+yxZ^xhYhJd>%@QpKb~jc+4&&+gDKD~)jv5$A-mnULLrUHtHvZe(Si=TKW%$SMcj=>C +z=gfHWM!nFn>04f(nz!#wJo%N*+wK8zd;%W@yw#5;6THBWLnnA#wz8J6#o3e(x=?gJ +zCXc3Nz*Ng%noy=x+beSto8Cmj*fM?*VBq-uO*onV0t(gU@W<(aLUK5@jGw>+{6QCz +z$WCI0ffH@c&x+!Oj7A}uVrEbGaxdCHc8M9@L$-{oVXBGg(>@e9aLuIF#+untORKAI +zqs1{n|a?EE&MbiNG@Je1Vt&II*S +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 +zl=oRpmO~iYNgYt +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 +zFL7cb8)nsaw<&bI+%O`B_W(l +z&ywceN*Tlc^Ps4XxGjl +zTl=?zxKXAv*y&uQHIuc>nguEj8=Z@>4<0tqT^`U;@ewlac6z;wcZn!tOdcv@@8mjE +z@dy$7Z}ApuDeTF%W#iuSjV-|N6SU{?VJ4>BkVr<)hm;?YPoKm0^;u-eZ)jkoizCn7 +z%5>k76~h_G6FQ9T{S;QeaBH3d9ls>M0OL2+Dk=C2{hVLmfeo){AV1234O_KY7qdoyj6&!!j{04JWT{et{wUOoLU~r6CIz +z&`bJG^afzU4U{sK=9&7(gQ$|T7#gXxp-*z4n2(iWS|xoUO136Q^Yuy?HZD~yD8!6L +z^Q4GQOmvV#_dv3|Kp|PK=ePzF2jhG_;y4*z<%{xnK<3~p^ci%zDL)+>$$Rjm1#ibJ +zolJrK=B?RT)OL>1VJ}xuP!&x!Fe!A1A+w=AECLolNsW@T`!GuC(}>x4OX;wclXVd1 +zaB<~iI656ui%h^6XjL~>r4z5m%oncEt4-ZCtRi9P59(Kuj3>KeW$RhlC=aofk&Z1? +zn_Ir0sNeGf?_Xj73+b;nd#eP^v&=s%kVAJ*UmR-hthkC!X@E2`wEoDzX2B;RKbUG +zg;93Wu~$)Qt4s<4RF%O=*K<;pk*kP1JlV$W(?w4=YR^v84RDbHz3;$lki>Gb9dReU +z+yM&?=bGpDp6NyLZyWip15NW|w9nh#i{acW%y5DCB#rF2g3gXl;`7;de72`&=SR4pCn1Kyau%LSx)Y{^3ytoiuYi!Bf^AdM?_-*&W-pK)wb6m+ +z(4+;mWxs^1J;v^t>@Llok$Ns*hYk3Cwl><8bOG;wmGo73G^H{kQxUanTB0X|N~L4) +zeZ(68&O!A!gEX@{hFH(!wOaHaaIfmj!thzr#mTGB`%Au&E)HFn>PlG*9j5<4|0?#J +zp$G->Q!6YjV*=L&rGT-rk>vk~62XL>PFNlqA+C{JAB|ecqD(5mC0|fe)5bENkvxVR +zhulftL&r6_@m7eP?sFRR3Wdt&(L;fi*=9fd<#d$W9dy9lYVFP2Z}Z(x6cKgC)CuOZ +zM*P;!708FfEGz9?;lte?SFxO#Y$}V^5ZeXd)t$V?m^al%PaYGRtO`)fF5Fi5A2s7T +zm?F>D>psdeO(S1^jE1pIap1S5vz+)#bpOGrE=75H +zkLD2Z(+cUF`A~n}lIbhLj_63rS$nz~uQ#OoO31cyu6C?;WKwY;uVa +z8u(iv9=ot_^2<%U=N<^C#lBDe0-r*oAf|hksZdCeHULG*R_5y0C(A?Yv69zu%rsF4$a!!>CV!ZV~BP~(Ezl#Aj$oC2+T +zpFD#HP*$TfLxJ^g=1n3mzyIb;Dv5_lYd!`NDH>oj`4Xd|Mzv?%+Ce0W^7DBCbmW8l +zx&M!GXSNT2V~ClVX-G%Sylr}lZD!8N8^%pq^UtIFssfS`N# +zoA8Abl4S2|Na%ofM`rJiWR4j}T4pDw0gV;AkTZ+p^N_`pJA-`&%I9sT?3-3TK$*PX +z#WQ)x;axPuF?m|Kff)iqVOzB4#Cv{*+6u!}s_Lgy)xQ&-b_fH@9LPocpcC0Y2f#`vtZdow+OI|@OwPLLU?s01|#|kpLa9lumt&E +zW)-dp|Ko+k@UHLd}@WvQiu|TaCnX +zVA@@w*Njp4&7l`#;jGXz5U$rvzg-;XepE9>%#a$jYF>9N?q*@jDu9 +z|Agb+cKus9N(TuEy~xo`DphJ&A0nL{{)m?4Vjl +zi>WqcIse2iJfE5;ky(Pd1l8A2<)ei6{s}e!?uM*pZ`~CpdB(=seE_n0fE- +zxd9kQz0Us6Vp9Jnnf9u5Q4tMv-va&55}L8?{UZT+8Q#;UN6`*3d8+_ZoG~~ueKu1n +zLXW@>>QP+>uy-wRQ~-BPPLTIt>k$4hGS{@!t5hW9@^8=SwNX(jzZY2?8?Y$&L#{lf +z+O8AEH&e1j4}tK +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 +z-XAaQx{FPZiDhS!d$T1g$_EAUV+v0}M;ZChWc +z&wgzBV`3tTw`Or%?IzkYVmdZsV27bdVyZGlFatib8 +ze(PH>T{q)BN1-cgnVn?ZPK_m_M4}O=6_1AtPvXXZ8#Tx}6=#>FVa@GQz#x@eR;ro{ +z6)wqFqJzMAE~%;T8hFX8E4f9UN~d_B&~Lk3+k^#JK3V-ixuYt-^eg73O12V9kXdGu +zGti}rwO7};2UGg25zA*Awen~AbTU^zxHlVq5JIwks(P7LCK>QsmcNeXNVEjk+^WJP +z-KXQ+_lJ_MjFhgKhkO&zOZ<4fTLnTGNd?}<&TsbdN3 +zv8C8m4p`9Zhv258v^!`NlL2LQ?5?Ij?g0WKH$x`^712#$LE|~u_95LAPsECqp23`+iDTU!7c$ce(pz#MV36lVx +za1thKPQb}ETe_^{H#_m%o%Xqs?uLY_GA~ZtZdtKA_EKmQA^+{HBcL0u@xvm!2_;MH +zO8S!sU82-fXuz-j`CXQl)n6!gkc9t+k$wYE*=BvMf)^PZ-=VHy=z1EYT65X;8YzeZ +zq4QaUc#bZ-QDYveKSa#{8PQ-&Msya+h~DNoBV;of(cx4^RM3V$@Xu1PmYiUte^y^C +zbR`z*RYP==?975GMSk<^0app?YI*G?+(si=eu11*l>B0}w_L1uX>7J~GVw{eO9Sp| +z_t|rJrP+CoS{O8Mgk92_B*0*DTj(gB8`0%RT@n92-se4oO7vXt?+Lob`jTvIYum-1 +zViOu_uJd1pPvS^4o9M^l(Awewxmi9GlChvv*=~|A=4>+hc6Y(o?gkz2S%S7Ec4Iyb +za}<|%INz4bdw2*QI_KNnfq>if;!xR(V9FHC&~zwnfwF3nvTCBT9ot4Ko^&je;eRFtgLeZ>%BeTHFQ$mY +z{XbG*7-slOH17N)(JTkUCVodNzsHyRmd>mT7Q#GgW1!^(^A78ph99HWmAVV{ZXsQ^ +z8^b0vYn`BYvEI9YPISu8BB03>IpTPkeh7`!P$SoWCp*4~t}vkq02@$!jp|;<2OwUC!&38%^b9D +z{XJgX!$J_QxGE<9?2p6b(^nWK<>+~&C9-aqJfB*;PLd-ro7bB%qMh4al%dxPnmOvQ +z5w(ZT-AKo<^a55D9Zq7xp+D1(q1XUCQm}_ppkq7r2X|5pYqK+g{J`g@2k-+U$;Q*M +zwRt=Qr2~rG5WX2#a^r_81As59dnxbL;afCF6sbdAbcTF*T3!9;d^lkBw-bktv9qF? +z3_BgiEQU)RQQ4;-g|I)!Y +z(BE{#Gpf%FW>o9dWDm!ZkzpPG9;5ns-5^F)6&WZe-F;D~5aE#|y}#tKtg@>yu8(&_ +z8P^+pQEdTA0?&+wj8AVKXh*;lwXy4+@+BS>PovLVc%qOJN?E-Qn<7iIIG()vIeeN% +zp7=c0*|&X8nZJ;n5Zw{7VsD9owO8a~-WJ8&C{+aM}U(^Z)6wtmwE;aWY +zf(2O|OYZ)hp)a?;_#>aebQ_z10@%~^Spv^ynVsCy*^7;mIY6C~{=7>6lkkp-W|sXpT6965 +z7spQicFf3c?nVo$yRrQo@A-g>D-&RdE40bll`^2jr}goV;ie#DL<6s>^}|`3x`q4{In`IhPYa#X +zqR==F&1pC^w`y@2$1%hC{H$m+TggURekqKtD>#zh&+E>i1Htbtfv2U^yyp7);j?G? +zUcgRsUrG{_85~VqN?~!Gxv;plPZ`c}t3Q@IS(cnm#P>wjhcxEu-8dVoqv4|NvNwnH6X07$w!firEz@vKzwvn7ntrOCtu_tq +z|8h;=p(guXEE$>6{_m~n$+iD%O@Am7x2DhPFL`eJKV8%R+8$lg%WG8+W{a^+i`rvt +z8cw>8#kXbaz_tt{$6}w!BM=OK`cK=CK-=(PIho^*YeNFG;ns3;poX0dzQ)c5lhv+= +z#^__d+eVRURO%@`<1>=`j{U1sw&Ta54SU4RPTA~^yzafmeZZbg|9;

    &(C#`1Rih +z@a}OM-R>&6QgcRZziTR%`m#43q4t9trEHoI9UGpPm2!D3Zd>hpFwP;*fNk|~X%n;} +z#i1N=kh^~e=)NA>*JP~i>-ZCFT~E@K%h8gxFa%SII-7E&|NB>XP^=yUDpU4j;+XcY +z$+;doWZx&S{3~-%U*JUkSoEAAW{}$wsZ*AXhNx4Pzi6pkw`lZFp#bNP6VTDi&s`a0 +zG}^M2BbLh|PbPeVsAG;4!ZueDS!LL6+mE!N+ZtP<$hliW|QE^G&;-wM?49iNkH=I)yoNGP;J6b+G1FD7O#P$1bx| +zt%*}#qwptM*splyG1wA3@Nul$(YqK7NOXGoN}-TK=F?Bqa_Ha7^G>{?5k~ly>0dE3 +zb)k>PV6{W +z)J?a8_qgeap;4XzJ4#=wJU=5RGS@d>Z@Ii_tOIpl$l=TC#Ow{1vNJ@aEgR7K^hK2G +zyNGgqL8)WBd?d8l8DWb+d-#7vjttp&GjkbyUI&Jt1 +z`MaFXdSjg_q0rMR=A)Ta1%S3r^P!bU4tX}EtSGMGvO6x +z_?ztAfE%i|erJ881&0LPW$lC%2VF*jx4}S^jO4RkHk9mSRVE%Z*vVFO$w_JsDG)cz +zgW)R@KEJEQ=ZRW+1GB7uw}201`lVIc +zq-MRPZ}oYpzyv+ZEng;#abk%4NUh1_qPu-19b?fcp)1Sz98Ue#!+>2Qd8=35@d8Q8 +zH`MJ%{RupY-iB%-^;YvsXdeNkU3u?|c$76&kK~sM^eCUm?Y_!3?+L-FOy%&f?i0M# +zJL;=E>8oy+&gmg+xxD&rGJFija#Sp_(#tv=(1pEW~)E}$1=iU{i&efX=%`Z@bo3|a +zpa~dN$)Z=&W=_1ZnYJ2l(EuF>FR{TwcH@~i+Bq~r><)}=Bqt6b^;c~HQ#+?`#B|Rz +zxYr|pVDGAGb4WGFdK=O~MoQ5%;z3p4O)fQBO#54I)R~2(LMbw0^|#b%q<;Uw8{T`5vXBun@_CC2EZIR#PRd1_uu4P&#UUT%xKo%+HUE(ov$E5fY2K)q>B-DZOk%BsrGoFf-nC>tSdgucBQX;Y5rRJgZ}4VGPxfZFF(; +z)Dq`tfNt{v?av0c;bJTY8>9Y=_Mrsb1nM`fUpMBx_hSP^nfl)QaoQX_rGnJ$B}{DQ +zj?^JHNgX_PY7m!}L(=J*;Ma-5{ow>ZTIk@a_=gkVZ@w8G_AGcT%dO&T65;P2h^lcw +zRLydTdbp|(9uL{zvGzWAY+3~$eg<(h4?|qdI*6;OS>@k>3z&Z|K7S-`1M)Z*)}gP_ +zB<0BX`f3vWYt8-|^N+-H(rI4EmV;iWg8iT_+4dYe~g(=88Rw +zmo2Ys+=WtgIc+%y%H)PdRdZ9#vi)3ju +z=Fc>y-A2|$W3aKLLBiYzePe}#Ku%G6s6Ec>PJ&cI_xtu&u_PrvGB2? +z(56hqc(Rx=^!Ob|By-od?|nsymYQNCr=G-CkHrXQ3msSo0d1CM-h&n-@>*y4Qm`Rg +z@!Nxe>A+7{<&RB;7$H?o&xGFx4^P)Mu;`y)^ysatSm8r`r6+R?GzsQw4<|5e`>k!Z +za@R~C*h;R$c@WAiSHy#I0d6RjV>qPqE8D~*O3>>T&kQHBP)1z7ReG1=%sR+&(mZC& +zlZ+_~^_a=11~ZziN2z>8^%*i1FY>0z)hEe#HPlYV&`@-(sDPCDl}C9m8q0I(?5;w& +zx_b;E(y0 +zEodJ148JGAXFUmM9!23)*6E2-6P3zN3Yqa@V-B=m7SE9BiPTG?c#>RCL*(*-==vs| +zrM7)h<&Zjb1;Qye^Imk|IRWUgdxN1wYUwTXS-V7&-0WI`K90PH#qs`MqI;4p?>>pL +zTo413uqoJ~mEU}FJMf*!>dR7U%EsjXWez0U;$N=prRf#disi+wM4vSxH*V=s!DDJ(p!`+Jk|_oCcjW!?Gx& +zCc!TxTnuY6>~6sX+>f(F7{9g^t>M +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 +zZX@%np&NH#E^<P +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 +zvoxs5n=A#j@Tp0c1WTgT9R9gtHM=koq9LF +zBe~H14k}!80;wO)?>M09Uwd1{6ykXq#}hh62|qH+(jw}0?cqY1?=HF(nlxc{-NIW9 +zK!`RDsUI%$bqiA`%tpfn(YNbo=d_21^|WtsX%^V9Wz%d-)!uq0r?T@9K^b`-nuAWn(8U%v5W+?to3MQg_v*lxhCU3dVu@z%3aq>uN?)ILR5NMgV8$h=md +zrq2d-0Vv2fZ$xgm3C2WnmGrL%1!eC5$8Q^@i!dyX;{>{xA`GqaC8OqHKnpz|+D=DK +zmlW)?1lNr7muRb`{3J1jTEsBBk|>eJL4+1=B&%7gjuI_$KmTl$ETN-hQFN3{tdgoD +zNy1-UDT}LoIvgnx94Q#M2!RQ5VpCDV^-1BIaO5Pi#9lgd`sg-qK1DE#AHoU&_@e`8 +zG!CFqFsFr7eRl#5pj2&mNR`a7WY8%<(n3$+8cyMJ8J1a^#F1pvwixAnd>g8CgU&!D&5A&^=;eY$@LCykUrM+YO>`1Dqnx; +z-_gfnu5qpAF@ZucoqYZhD`wwIu><Kd__sk0j&0aV}o5|hS7OI&FOnfR?sx7=6VVJSchWz`Gi +z9%|z&Kl4q&8Z|G*+er9c)#8l~@A{OqjS~l25qmOf91JapUAjNcg4mq!*1>{H-)zOx +zT@88XK6yD(eLMq>I|M*$$l +zrI4GUp%mW}5#M`I#y~X)_s0Y5s5Z_ZT=h?4#^9z21u{pmJ=JC>WBkZqt0#s7Oug~> +z>obKU8~J82GFR3!P$0o|yg2-7o+67K{dVH4w2a2V$Y1p$L;m#E0r$@i=HUqK*OA8` +zq>cfAway~{{f8KvQ3}EMOJo?lRWOjd@|PLKQ7|CO$Sv!zN=!2^dPzOIeki}A0jAMd +zy)brG{ZP+gVHm&TQ}lj?USpur4N5rKtAusS +z;=PyyuyzN~@0eOt*YBg_JUR$Rh +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 +z*ykvc_kV(sM$(#QFD9p +zs_7h;+*W&u;r5IXAz%6x772AsV0A1!4u2TeP{lhA@4BxLuSoYDhKkK$73ePb!v=f` +zf8Rp)rJL`gO+Wn|Ke-Wp&qG{F7L8kcwu)c%)wdA%c2^CcET_$&oYnvklkrEo#PPp6 +z4bbXZq>dWtw7WLwhD4CM1FD0f7LU!PKvf)rDx+Zq!i~BB`wyymF84l+pEz|D`~DFi +z{}5Dr0IIDx2CYzbxo2WiF?Qc2Xvt#Q-Y04Dhgu=k!fX>fo1x3kPllYWMNnLUn+=Gs +zp~&O#yC2XD)m3ytN*L%BIC}cv7Y2R>Op8@L-?AcBg)wje{{D`+U>d;>^zY(*@CONp +z!~8h~e?X-gqrE+B?0poNO)b!FfO6sc0Lq~(h-g*a+e@eloeXpkSiwwmqXek)8&K!$ +z)7l1{IFRAO6d1=x-npQ|w}*~n5ouNYB`E9Mi7NhE_`LvSuZ59)tU*2iOb%qLy~M`M +zHYkeDmjZn7UNn*zgAUO1PFJkdg((c!HHW6K(ua)=(1`xhX-V&BfZ5iyAj7B!c+IPq +z!6Z(`Qpd*Aj?neJiUKbiDOp*8&rO$bGGp^2atn1=UqF%Y*l*FF)Gt5Nu=fA*V+e#E +zkCF)J>A=p;*>t=Hbc0D0^v6CZ@CzvUD3;s-B?t@p3D-h{+NwAL_CKIqH8b>FXz68G +z_S%qpRBE7jaVtuf)P8}}4QsnKcsk{};4W-RavR_hX4sm}ETmzKh60}T-|@>1>>9(N +zs}E=w&47LG{Ubyj|F*Fod5%_q`6M75I^b9czJPl--bKKm@pJJV +zEZ+a`b}kN`K^;p=5Uz_ORa8U@;1m*18E`B#o-*vjpQ|L{J##eCru^_*4*Lc(Uy^XaM5Y9L5ej%^imvca5#WAU +zDVF4xn5x=z<60V4(QeoXq5p+Jw>K;Hj{p3%8Ey& +z1`HUb2Gmg0OJ5s(Y1!oA`5XtC&A_+-%fxM(Sb&6pm(c38U2X%4UmN6rMAUwbqBYVN +zZpU71Sorz^PTQ;SzdEn!Pp77+ZE(YS>p&wQKUgK??`prr)#LwZwZKJU(E4xy;Dcg& +zJ`G+0n$JNYVhBd+8M-YPyNhd3Be}E0K +zT^U@Io$#Oyi(R9lb4-g|@ZhnrOfBXAu=g(DQB>K&XunfQI;jQ%26;6kAQ~Cb1|@VN +z;n5@@jlqzY5FSc0*a9-7iibl(Vx`Aa%66DJIOB{uqeuM@j(Em%Mgbo{cN+7;14&>o +zkpzQgq}oDkgp&jkQ+KUh)tv;GIezy$_xsPi|IL@(wcmT~z1Lp*wf0)I|2U_b9|q@y +zx}t80Wi0~}vrlc$JU>YnL@jnCN5D~LBu1`N#<;N&r;_3y2mv4tOdVWKJT{+)-YEQf +zU;aW2^?N(qCI`YYBy|U6O|0YC`0jQa+IzrDp(})03 +ze84qCoc*2}&t~xKkNK9hx7N2_hCRLFao@MC-<+!#2^kd6`MW%@W0tjy0UVdRsxw$! +z>kl#CGP>4|;J@QDEPQ(v>thn``Ttu +zxxg^u0|<$-;W1AVF!P#P +zHzb<^Z)r4?hA|zALX2%QmI3$*_6qZ0%>i>fndljPyAFN0i!pH;jl7#*kZb~{5JSIF +z7wbPC3vL5%PCk2gGIuNnAJ1waG=MDAgYwW4k3dOzS~7wA?&L=UC4wQjBpsaNOJJsC +zM#A_Z7V{yzkQRe5e>@r>F>%NwBnyP3D!EDtH~TT^N?EHT8Q+EZu@l1?Cz6c0>*JUx +zQ6RaC8wUz$H||H=uE!QbI?*=nWpLx5J_OjQDXndb`xrc=qwU5wZiu)y91*$Aw*H|l +z?mdk78}<6E-9f?6*ktj4EyDMI`}VL)B3`?}3mk=?2Mh7?ZNby`Vo+P$c7xus3~&MZ +z8lx4EXgvebj4oY4eZc0+z#sKs3R31B!WL*fkD9??wHuOC9SQ90)LaYubgS6XglUaW +z(}=C@#*70n4|W2;=-=Mjb!;x6B<=YtA=#~$g81Ap)tSI%U~>CF@>pd!l6TVQTFI3m +zBxGaN9Pucx-IxVdTi3$ivm`gXnxC4QOR?_OOKrIpk`FCxgYludFb8H84sWR-)oEsP +zF>-dh!=kj(U!a#-FBL-MLZME9VpzBe+%+vb5$26?;jCC1z2Y%^4TMVu%og%*PZVmx +zckqHK)j_cf1=^*{wnKR-;`IL@uL7e`_9?mgbXaONCrc(nF_`1*W>b%tIh{^38= +z3p(bnd{omEa$QQY#TOyjVn!j+uyF*sl{Il4UvOenQ9xd7*d7gI2K6w-1RfFBzc9eN +zBIHuCN&FnI5?i=lnTe+l1hU2cLPcQic_FYOB6CtRM29`li12BvP3FCcs0hWovmZrq +zBcBxS&F)7Xw#o3j3g6uyo{qkU6Ugrdlup^rCW=wJA}ktzaw`n06*Q`9U^=@p%o#cC +zmTWQep8%L!YNl`T_bQs{Um2pAe#(#0OwS~WRqjaP)6~LEw4znfi?SZY)J3vfWvcP4 +z=tnW(hZzF*SR~3~unf5#hwpp24x}qQs*%^7ySV&gsxremva`Kx+e%BHI +z0`gl(ejg{lrR4Wf^7~{zPLe-|UoG#MidU>%Q1S%Q%Omm?u*VA|E16{bq%X$1AhA)& +zJ@^R{t=^^dFY(PZU2%Xo?_xG{y$k7zeZ;khv2eXhSf-zp5=8Z)RS#>+uHDa$_h#zK +zX3bzn$)seVhkt(-0{(s)9zSm^yJlm}B+7lPLFkcImR(!N{CXVaf#*FGGb(JQ0Gqq*2HZZ?cVCW~cmdyQL;_{-a +z>@dcJD)bY_<4TV%fDb!b@F4aI(|L~u_YFP+Pdp@@t*h+tlO*Q*8KfOa9&94?Qw|eb +zLyD2p=Ce_XRSONv9k=qYEWvDgH!+L3-p2tEdw^P^K%!ngP2=sRDsg@M7n9>Y?I?*C{pmBo>?hDf*WcM(mr_6gnTLD^RhyYh8i8 +zg|2uAm83uayb(iwx+|0GeS(6$FCUbj4dSupDnhah4v0UwDPU(mRdz +z{KBNs)DR5Q26vnA?vEoQcp7UKJUGm2G}Gow(TZmZJ5Kf@ghOh#qc>8!!&#&eqc{>v +zrVkKr=}8p{i7y~!Nfq%I2py3L-d7r8y&fbZ*WW**eSH@kHK%}}3x>_USX|@v6gQBU1!bMjQ=IX&&W3dXDN&!{Mko+%z +z4PA=>J3R&^fc%|iP+GXkyJ4Ui%=&+r^KS-nJ`;Tdte3A1X@+4rYBO+$mn%rM8jmeW +zM;0Thp~XRa7HMy8hnd8WbiYAg{0|{A3_!HtMu=8l8^HT%?A?(Zr`?#Nc%&ziOF!WC +z0K(lf6f~BaNZitGLkjBZ8L0YyTU*~X0F#Tlp=O?*A#MHUGPSLh=|KTrM%C0L&HLyS +zzn_b9L!>uGQITOvduBw18(j9_B&1AIs0AlOX)+CcgwVgNY_Y-2>KPl%{dSea$Uuqvy|}`NROBIivP0$~Wg-gBHs0J(WxKVjyxX*FjCY%^hEN>Y +zW%WARTpF0zmn)b44;HcJe=k~C)fTF(nIU +zH(!Xn)zYIsQ+}A9PqYuayMf=27l2 +z!m+)U41MxKcS;!7cUgZb-}*F!P{n47CH8BE_+D?5)sqN3gtrr8W=YHIO +zK`%{yQjU?VB-Ss~SP$j+FBrr(FW=M#YTdm%Cp7+@I`6qWsLoH_y3TR-L3L(y-Crm` +zErd1Un`Gh}nE$j9^kru$sH;!|6@{1)N;B~$!Go>BFEmJ&vco?oVFvy|NngT0s4SrS +z$u2HaS@TQl(k8Pe*krNV%pu@6g%Ero&zVXUl<4*VyNxu^pN=REG>$FcAn5v6@?1-jzDWkGt_v}s3C*+LMoYSdv9DKoK*bD +zep<_#<@a$#AkMSlHd8I|E`c-^YBrihs?DNIiL%2M(k_z)uNk4kCk~^-o-u-lcp`Hf +zNgQE6n&Ck9qp-9uqiA?fmh*&}VnAPD$Dojgfw3&J0CzSw-moaIpOcg%% +z8o +z7v@UNht1g9m(=F8)wgztr1b1goX)1*2mCK}&&IVb}^f_L}9MA^dOT6&RPZYGiGM!_Q1!&!>(< +z6a)->=HFyl(LT~~619(1j_Yj1)vg8~awX%_t(n_DQ8Xby-DV}SdY6b7dMg3fE8?fxzIXN!+~fO4G*?N^vP)#UpA{5;H{ +z{)cb|S+B4B1WR1=2{NcjdZKoI#URl0RL}N->nb3LM&8jfGl`@ +zV%j~5{O%liB!y)Hc1ElA2-9cYAuFr59KoObTWSqb*z*oe#aL7SaV&feD3-scNWY>h +z?!%SN(v?CkCHV7GEwF*~nY|zE(cppJmhZ~_#O5zGK#-!=HcH5*P#U$(7yM6hJZ@yo +z+!_iW@si_V?z&b{JOmh(Bdl7(FI^*K8Mtc{?ZKlcS8}1SYbCcXmC|s2bNMyQf9JP? +zM%cA3{dtYX$41vKT!$xD(ysJ9VRt#YH>Lk7?8c|8(yH`-3cEe%UYhO=yPrY#gXzBv +zyYZ2+^po^ohuz2~FO5%sU#Gf}hee7{e-GVJ;KnDj^44`ON^UOXcde76u!76bv1-i< +zf-UL^>!HU>H+JCJa2$~r@P~fook`>|Ojx7@SKLF$Lr(tDrC(=!1ZyIgbZVJ6Pk@Q; +zZhRdD-$=!Ih^_L-sYGsDpN;L2MguOkHUECgGw+8iNU$llFH9eEgX +zmMoqttXZgu8e}{=avOsI#Ix>m^+~g2GG#h%q6n-yv$oVMjz*4o0a#}t& +zP46$CmF+;S?6&3)Vv&O;H7k+cTP;)%k$4maRme)y*U<;(CgkMN2Y+U=HRpR5P>CoS +z5Sgd5%=T+rqJ;uV-)isO5;KqUO|_rdA}TK@12@6r>R-S4X}v{}CGr|xL1l9nsR02Z +zJ+@D>Bcek1VzJhNVn&hiRbvtFA}q5gC~`T#H4Xi;m5^)_LJ@Vk8OeTeLU$wAp$$vC +zafVcZJcVJ=LXL|9Wos@^RfOa~%~42>8Xc8N-IzeZq&lswKGi4!^;8AxM7ZJw)@(bA +zIzH@I*kShGt#JS!5L6wX2n6isibKy)ayc&Xc5fXark8}d<+#;R&BrAfzVcJ_W*I(;+LQ8{-hEwNCT0ocuhO +z*6U1ImctjBkzt%j0)d1HsYPbmVL_d4*e6Ke3Q +zZ;~>JIC6`ih+?O1A&xwOh$FW|#F3k~QCny`#N8UbGz9|2EKg3bodp{;2F1H8lGKF; +z;gryd<*Xti)d@;Whbg$rVJXWKLVQtMWl=w0)KlwdR8%ycW}^9`mKuj_kz#5cE!fnR +zMKaNV)N!AxE~MS0(HugS6OY5f4)1nYG#OF&Y{AjS7|NV-8NM{?(5D2DQO@@vZf=DD;c0Cit9gh*|0Q`7y4@B^gdTq&ysDDXj +zFA~W+W?aH_KyI61m4(bHzN9+XB&9%?X_?98#aEGnkmQgG(%zi#0pb3?r}Mr)EJfq1 +zwJ2lq;9BKXZcnh-fPi$!BP$gt6bt^#JW$i)D{G0|A4s+nlXbE0i0js3y^(lIuW~&) +z)&$s^Aw{DU5JX%GW8W|S3{QVe$Ot&Wf88h~5S^NZFsBt(0dm)CE0^dDH-$s6cY!Xs +z%vx6I{GqJ)hpbAc%2e_df8UK8D12eu%Z?Vmf~GH@g)1B8 +zVF>($fz7rIBn8E_^kvKU*T5trzIHIYYZ_hV?z^2GA=Liv5eO8|-c5Kp0C59EaL)bW +z^4+TPFXrF695NI?6^cKKBlH7J24I=n!qS4HEvc3@MmsH%KH34R1xr$`-OnsYN8DoW +zOxI+qd1Tm}t0zQ)n7l@ejCe@F`>fgnK)_~|4A{A$#(OIPeCiVgsd +z4Bp*IdtOn*o)Ef_dlYuE$7w +zP^}4l#L;h)v*?QP;K-sq$lqJ*=#=|WF@112>L=0V=R;F$iy^OjVyl@?^NB}EjH(3{ +zMOgh38(ELq-XJ97KtyHQHgW`~V_bk1vZ_=XY=vwRw?~jv|2h{u^6Wk;@PQqCRL-}I9yH!DYAd*oD4g6O?p54u(w0JBU^9? +zythiFAUxX>#Os`NtRy=o-=%{%E_Vdx0PJB%^FK&R$yP$7-$Sz?`v*-W#ZDx|d<>?#afJw}3}uvc2qD=;2+8)ys11`6mmVnzpblXiCK3-u +zBBcU?5|O?0PLVAC-Ex31+%Jwso7D;o2Dy%O~+ +zC9L0rLJEFfq>9jh6&Ran??#COwd@FSSW%eBzrT{Kl?s9M+kB~Rio{^frMky5FyIm< +z?*hdx_I!G8%T_%CiMif2hJvalm&6%7`87(7Y_ +z=f%_lik&jB0y>jIh!Di3E65O6g!Kh~g(|~}AgU;>h_GiozXBI`1Gy4OIKdK#iq92+ +zBu)_z55!(`%h(SPPHiVeABdKn7TE!ormh9LaR%Pm!xSUnqv-=QkxvL~8|6H@M7R<> +zgYB71RSlngiZw!rwA_Cl(l(dGHee

    q~^okVT1ovt^4Jeur-}mFPDoNcVz$)Rq+Z +zP24sad~TN}&h%3REAHi9kV-eNsWyZ2q +zq0C-bgN*TU9l9(G2&r8qUARfY!i66q5*F0QdH6QffNWy<1W!WZ-zKBff~(walkw`9jpmis{g>^VXaMV{og6h=Dv=Y>Nhx{ywmR^!G6rtM_$oq?#?g*QCk +zRpQ=9ABcrkr4RV$cP*GT&cLJ-Xsz@CldWFyDZJs`?5Y*3>jPE#3S`u(m*Plg_)217 +zGg&_$lF{ez1{R~o1Rcl?8a?RltDrIXB1ZLV1HhusQ;0)^-KYjH&sE52Q(2!2A<-Es!) +zwIijTaTv4313z4p@oa}+AU;Nv%4iSK+;70UYoS5QuHbgTFrNhwK86|D&d!IHAbw+R +zZVI4uZIT`u0}r>vspNROO~c;iU1iQu>Wz6aV{(*=a5WhcC%9V#wgd9N6M+wq1Yg%c +zG?@BQ6gd6;CTPqKqdvs5ot(Q=6$z%e%m@qMW1_RgPmte9I{Ei@KtBM56LR}dFaoSydJsE~A`by<15pic +zhdQ{%imv6#z!Z7MZEqxrrDg4FiY4J2wG>zzcWw!d!}5YtZo8 +zfioPGoNh>|8{_M4OsW%(P1c0)HgHRf;4j<@n^Hq^U>auT(MUm68dv)I1A0q8YZS*M +zX*92)1EsA*9l~`zbcF`{6%VGUWzeQk-ShcvPT;hh9co +zeF^F(#1jN{@?AeZd=|%!S5L<11Mv`RsBE+h={Oz>6LC|!UsI)FyHNy1C2noFYua6t +zQ=OKbR$DVH)#w+hAAwd~mgkBlM`s2CC&Xqgu)w#IBwMVrR>9B}%Jzqk;Y!Gvnli_u +zi>4lRxL%*F}y!<**HzlP^Z7qvd|=YZE2pcpX| +z6>DW|hgyvy8cG_aD5&+IBU8~g5fDQ22q4V*X|L#1F$S-P8ugX|MeA3=^?DEf^x==D +zNk3>#7UI^q^p?ETYy+(1FF)C3)&pVnne8=OE*^hj;R8oV``?MMbW^a +zL9*8Zlc0P?2-&aD&){v8(4W%l%`|X5hAnK4xMKqNw1B(N-cp)%h|E7Nr8*&?57+}+ +z=xn^_Tl|VLDA`fo`LLhe@*we@q53lS_+?$Tcg7(VYf0fSY|@E_kk61|&5$R5_BsK^ +zK@p8d>fNBr0CVE2FB6?mp}axqNn}`98(oP7s{-5W51v-U_v5I; +zhA+H@+TTAz#DMtX)8PihxCdori`(5&m^B~`YpBpK@@C1Lmk(KrXMdxJW98B<(AFB> +zA+qlEpSp1HOeOcMsP7F~0EBd+#Kq?#TF;Pu2%k_YdQ!6GGwa{QfY&h-`7?CCOxy_( +zcNuXfhTX4Q!G_x7*RNM{M8B~(5b#HEib`kO{jhI~!??_xZ0vHh3O&%@Ffy6DJ!hGz +zL<#+9ud{8L3kB~jL-{YKz{}L-=+Uy#yQf!NCt$z*GiA|hpo&O}dFSpMWlky#QxoJd@voIpdb +zpnM#>rY+%3QoC@bgqy8lOkB0@VfHH2>Ox8reNbD%8)7)WuEaxRQC_n7AiHWvAWm8` +zAdT`*%1FtjU<;A}`J=Mu284xSUU(=BjPMXSDQSlk1P-0lI0!18 +zbXut9dQptd_bHbZVB%F^?f_tN?l!QXWf`=kC3A(~pJAj}if|@D&pD7NisV9ucH#P2Uk@|eJ +zIMTQdviilQ{X#gC(nueqN_ewQg)-8Vr?DwNTRhN|ABT5ep8DsX +zF;pf>%|foleu`LIId_6A)UhLkP|EjJF_q>~^JX7sCOynvk;XyCgsKwaD~HXUeTtzT +zW{k2kfxU#8=qg9sdszX~vNUP-%9WH{5ZsP8c!}ayiw5fa%#i!n<;ezNNix-4jTb9y +znxLDlWq%UmW2Vert7Rw0z&6S+T4vAHv7^Cr*zC1>*24J>T(u#llWi8DqXT=!_?kL6 +zpEl54P53<%t8`qo7P7g(`L&R!t-Bf*d(0ap0t8_GC&0G`^Zx|$KMW`)Rf;_*Nvckm +zyTNWGDzPlWNTMrl*=AVU{rj(Qtzm#wB2neCB-s*MhuTosXna7}eZJbF$>~0?Uh|>S +zW5sq}e`-be`fb^=L3&QHw}_UAv4gclj2+MtVMQ$w2}DbTWk5^BSkw{$&5UOfyLY9P +z%OMo-KVz_Nh>O3ySvN$U`6l%WKwy~-rBNV5g +z?*Zg<5yucKDnb=4#EJ_n(MYU#IWJz1LF-<$en+e?qP3G)Uq)*yvA&Ad6U2%_U&H{h +z;)5{p5U~>FlJ5|!53T=9tf*H~{4KE}|El;LvEpk_u{=fv8Ts18QWAh?{Nj3I#S0X% +zh*;au`UtUhpf!_NkzGhkBUTZu_Y&(xQh#D4iYLbqYlzgJSg(@$6KfBte>7VANd1Ww +zZ#2bDVnvoSv6Wa+Yp!@AS_RpRE*}ZNg@^b)u_mDPPsEyt);|*KShVgXRx4V0VogTt +zE@GXE)>2}<8?Eb!bvjy$h;;^9A0gIRXw4*6l(D4p~xM;s-nTejwuvOb|X<+3hVs8P(%-* +z!ES6*eO^<1D7&#k_4%dZGu>{a4k$iu;bIK9b^-Y&Z6)KCOz+ +zEW6R7LS3u)q}h!Ls?Yn1Plnx?sQSFF_$;s+$ErTRQhc)PMyu+xoA_*9VxO6;)_!Bu +zpxTp(o*AR)#<^^Fm`iD~Zr*@``=S8-XQw$&xD2aw?Lt_@^ml9{f1nTL+!;&`lb +z%61=@?mLc}FvjMIEv3rYRI?%<*A&i5icy9RR`tK+GQmgftg` +zu;k?nmtngOR1Bpq4<}lf^U!XO32WA4671(nEh$&>TpIlsIpW%hWEw$zcLPjT*ySpt +zF8m3(X73_Rl@8|LXqcnvw++eCWxxooUIu@duB%KWs76b_Zb&Y@B>1^w)>VT=6#TgS +z1es)H4rg@PyHHkgiX6G9rzy9`;Sq)fn*=Yt2A`k=-`0e$v6AOTmR_|Px45$imT457 +zI)BYOf^PeXt;5CdG9rn74OVFm>bEGMa2iZlrXFqB63Df%bicgWfPP@8^;(OnH7k@Y +zHjW^A$Z%CRRDrrgbH4t;OjWB^+(KM-oILoNVHs>^ZC&|7ItqG6e%dH|4O1+PQ+ZbN +zTyl0^o_tDSR$Y#2&PV +z9t;6iUy>XXLsLlY7ZSmr)2M3nwjrrbP+8Wbzq1My9>vmMp +z!@#=9NqUr8TsA9}>F(E*J$Nr`l;;|x +z;rZgv3Q!hqex5jMGC@jpgA(T4H`52_nsS5|zoZB(%Oeu4lRnSq9cE#!L5QXg_8viY +zk;z1GGusCQXoUSbLzM?KX|T|pdKASBO3Aindo?@U-oVC_O`X%sXB&8nG_O2>?{xUw +zKFCLC@_#eZ-w_+z7@LcS6aMqD(g=YPTK&=leRJ$7eSLW?p5O8mB=($PIw70bldD&i +z@LALVU-( +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 +z(WNo6H5WRjgqN~TLn +zgq;6Ma*hq>91eANN*~=7fFxo}Gzv+p5mhxk|`PRcLa +znqj+`n)@PbSX=atcT;m;W%YVTVruRitUkptHXX~Ne>oALOMh2_)_ZOmSU-68px(j- +z*YJ-0_G-EU#SOXRx?4W5d;t4x$9@Pw9p)x{9pN~Zn!8_-LoLCOtgtl;j{Sc3em&=3 +z&UHlb&I-)oWe9%KXZDWODi>R+`YrLo6|egctUYAshu)$?LhcD+mw%0E2|JC~4Ez2)C?LW98O>QyS0`-6x!X{*%nwJ=b&`G-XYnIP +zQ7f7K#I`uhy$--7TDWXoCH6Dygt^_0Pmv(9BU9Nr){@E|V`E9BPLRXU5_=6hac=i~ +zip04swbZ~4Pqne}Jo_on*75AI;4v~RUi7+KY90HGWEu3Lkh@Rs<8xp3H1B%EyTEvi +zcf8@9Pw|dd1^CZ>gFZMM)^J=gAjO}nh5SD63>{37273tS(f4p3B|~IeAEPgkqd3PK +zI&R~uI@$R$=YCnU`y;MaCp%u0o%;~`cJC?o>wI_-Tfgf8!QJMOx2Fhfi{LojRD9Ym +zP7u!MyJAEBZzgyRb7HH@{e*Xj#ny!syHDVcQ}G4sj(K=@OCJpBPjop>YZ)BY_`22I +zBILF-ZEW**OlbNpwg)oze>tH^jICY@bRN2kZAxX|WsD`9^K`g(9jCVq6LL?Z>P0Oo +zh%D1;*cqJrjLgD9?hI7$bD15>6@RYzkd&R8dyb8QRzEjaiZ78J=OjvYe2!%0%pqC1 +zpxu&W^V#Yl<2}%c^j<&o<056ADEDj1z}OZdzf!LgU$rsMNX5s|lZFX2Sx +zU8Gsqq_eyT<|{A>%{ogVm|uZ;6HGstAefR)808SuaGAxrkeS>X_5hc +zt>j9Q!W;bu@SqrQ>1+ODECFd&pSW< +zKp7y^mSF;Hy^g*4CXj5PfHl11V_QA%JOrCO+|D_Ba04hb*>b-*LN}E$Zw?* +z!OU)l7$$<9NCZ1nBKS>kKOurA*b$lC843}MPTg!^4XM+a_a?IYz3kOmhmVjw=YApA +zr?2O8-vzRl>s=Dpfj1>i7_NI^ilh%xFcN_533+|=pX<2dH#A;DjJ+Djo*&8H8w%Nb +zL&Gm5WY5Go_5j)23uNzI&iyWsJ;CuYR|Ax9zwGpJZl7kix4c%NeDW@Pw*%i-l(EwU +z$5p`@YAOy1je4IyI3X4Y#Z|%40~Ap20|KZpPda)a)$RuTaVlP51?pFe)X%5y>2ib! +z^*e+otn5`-b~bJ7@t>d2bSd^SWRKJ@7~7D=v(Qf=pni@+g!+Xd)Gq|o&lxH|PpIFu +zF!lSMP`~e?o?V3cb!k3OsGsvXp?=ph3H7^<)UOMv-}fr@>!F|d7cvY91>DCwItc~r +zxPbzSC;rGsn;fr9F0_3Qpxg|PfU~}`qa!5g}5dG{-bSa1x+V&7mt(^c+FjYrnaDE@_ +z-d952)n4TtUkb>H_;m^I{)RlphiY_{q_X>f77wDsyh9AG{efr+fbl+VVHhVzq&hm; +zczo?0O)&Cvf{~4EBE)DRF(B|XprxacuGlIg3&wu0JA#&u{esg6v$69K%#aUxoh`87 +zhdH@JaPFfI!f=n~ia&;VxB=(ku`%|~0U=uvAwO0S@?#CZTAhbC?!#A;vhxty(5Vzbi4LKtQ*d@R6?ec2Nq;sLmP;^NkU;ol=f`|eCqDab +zfsVMZ`&{|g$YQi>DnwCJZ4_}GBw?x!>^z-jy +ziMh}YonE$s(EB%`T*2Ler2{gUHL(pst|)~3myp5xjNtdqhz78{=HWu_G5>cHV(Xxs +z*lur{&fY@~TN1qswYFw^%@!lqgNG{3^MsJ6nbFP_9ChA=>3r_T_A?N%u~a)(@B9=A +zUwv$Ycg7qPrNe&ABVkC?ca{043$;*AY^XAJKI|ZrU0G+1LxRl!s_U(qFLRPEZKgXO +z29UI%%$~|d*XXA|WH0iSeh=FU{2Jz$$eMorT`gsjo<4HCvOr(6Kx=>&elEiOpYu0d +z?UdQ4v&M&DWOZT6*3$og>7KWIsB~xUt2G&VE&W1ue?!@qab?xk%4}T?tSmC1M_=nk +ziqI9XFxrf+0LAFJIzv~$fM2RBpu?}FE1<=%wL3u6eu7me9RCm{r6x7x9U+2KlK}T& +zKr^H4Czx1!13MxPnW!Xl911{?jB&^kARI?T)@v9uu0dd+m||-rU2OF#%-5h{AeKd= +z2>>+J7RGo88H953@;}1-yQ(Qh7aQoRHZV$FUDZ0YQE1buDT!3q?rH*~F1A)^I6^=? +z!A!891i+31U?&i;H40!E3Sd^)i{a_b>ZGPsD~OtAEi;OIbxe%CiKXMP5d&OZMj$Q& +zZQ)y9fbFGLcVCH6)MslZP2{pXsx(~#r8H%O0UH*+x~_l~zglckQ+WfzNFO{d_>W*S +zCDj~7NSS2vlow^uLcJIYwnoEaKa=7iI&S?i8B{RoBx8a010NPcz>9={2YoQ02#6(a +zz!J9^*|KZ98i`FVg>76cQYv +z3f~TZc-3135B1y$>Ma5X*bHwGP{5{BCFgP{v~LkSHI<)0*oC@}5FL_^Gj{zLAj>J}&RjAei3khF?S+7}hzBP(?W=k`K +zEGu{ZD+DmhiYjq2cKe{%Le`pa_?q@85|}NT0A_p>m7_dN9619eyf~?@xfD{9Dg9tU +z@-n3tEJ$yrbb|%woGIT`6q1lH1TEL0x1CK1d?;U$W#*nNW_%VCo5fBok0&#XRWMDK +zdu5r-1-wbJpt~F0(Ad(YiK7IqU(|6OQ7HjtWEK;Z#oj(~lr%~(B~{0fQ4pNL +zN4y^jE9AcJ4*nX(Dj?9PE{DaySX>5itP;{2+^$6|qbq)|A=0BMx&j~dyD0HGk-=&y +z45QL=1(hC9Q0aESg~wVi2~Km{=r20jjoAnEmab#QpD&TJBEIOpTM3fx8|?e^c-43O +z5MN4Bku0g-){gek+}Hg?n(96sU2#Hz(4st3vULIK>x3&P&9yx$@*05_P_0mV6zZ~2 +zSn26TA~meN=prm;6?LEG*G@q1x#QY_OkQb=tHeh&Ijxu4iY_XQ{RZKbq{9=>@3{^d +z)*`UZ{QeN~{oCu@lT!Q@MHd;9r;CNsn>JpoC<>t@bbLxx*0eE{#de@-AIKWuFS-cd +z_6ZWiTv8~24ud*bnOK)qtRz8Se`oV~x>mtrI`Z_-O=+2t +zyT-#;zdKPh8N<)1iUQ&_L- +z$nGE)xpkv?aMWd0FmU`@Cg$w4JqPucvqjWPNC;7TxZ=}Z)bkQJkj_G!msKC6 +zpV6(CTE%mh+grc|gsD}+fO?dvww=g-G7tf6Mx0`qJZOjvCM(sr4>Djf@C@uN{@lIT?$h= +zpU4*&_yP)5T>Qd;XHE5dkp+*uMC3MT@}@(B7hVFu^3DA?&3?YSau*e%M2-J;V1_+PhCLddVv@Z%T3eU>6u@*H_ikMah0pOJZx<5-d;58O +zu7%I0WTzRLM20EOZAK`-i+;AcpGd$ipxC>FY=c0RJNiPfGZn52mtmXh|I*_B&JugZ +zf8K(RiYa?9(}ruC?NoOy?hn}MLY6^DghaT{7cL8@unMxWIqZima0B#LmVpn)XHJ!n +z9b5^Y6@vmEC(jD$@Xg%+|M!2)-&nU^bMYCyrUOhf7$2Bt!0*>!UInus%pou}U^>8j +z55}-duelw}6fhZJ3czdzQwio(Fo(dL0CNsZ2#k5RUUL_i2f-`_^B9<|VEzDRKbRw6 +zPJn3xa|w*8Os^RZCK=3hFbl!tfmsh`Cz$8K{4Yn4s=fFtfod2D1jtCNR6eJP+m%VBQ7O|BRlr +z-4bYv3@|I*`kUJI_0P4Itcg0yt{FPZS1Wav>{kayR^C#bCHkn&viz*}mZPol>(R^b +zi`PyiU|waQUDxY1+tzN`^u(s0YD(5JYd2Vnw`_T8i$?j?XeO6VoxJW&>ul@fQtRaD +zwso_us-Jb*H0wg9`^j@7HtfA#7GbC;|3Nt3f?Pj=3poHGgS +z8}FIC?w-koV1N9nb;X<4{~G!b?ug7>)H(f;Lq46 +zwyxb!yovcqjAq*t%zEou>*G&tcxsb%>ZI9|?zBF&#kzJA#)8U}KJioZPM>t=Ppr$= +zuVt)Hl-_M+))!l!+RQxh)TUC*d-|li@smD%QjA6u^RODAW()`TQ?LlO!1Z&%@ANUgYw5LOPRG>m~ct!)|Rd(uv<$vfYp98 +zm{!sl_pDReB1U5k|CR38m`*I~ic6l@R1B@L39{bASSLZqB&7faOjPGSG#&W=h;)7dK8+$_mDK-@BT@e&PRL+{YCy4I7 +zeV^+&*ZI!*<4YWWvu3R|vu0*ZyMX*^Y0xh@EN&0nVI +zDR6X!hLhYvPYYAbYjVjjy^K6nlGCaEmJ78 +ze>1zBu4a-_>?@lh2++u3BuX?YtrmR8OQw-2B{GPqRWP=|afnl^ppBtBfnx0}lQL_5 +z<*QvzSHU6@ +zjf_kq3b~dS6WBq4YK=-FgUYCsilATmO3unui(zCE2W8VFRo4D2J5cBopp?47C{{{U +z0RkVGJfHy51Y{_Q1xl5UI2=DPeW5^@d7(_mN-5X+{G6BUAKHel5X@@oc+k?mY9N2H +zS=xz@cjTp&$vQ&Arih*bnS-~3z{$CbGxdz|wA;0U +zpD-pTTB`SoG*E$KBfb-}PvNy*GZw9C2f-zV)Kd5BqriHo%`Wy5@?p+^29+siap +zDqu~f^S5bcB;G`32`TJ9z{R{Nlk_7=q*H?>V#}rr$#g7nRTs!pEe=phBmyBZlW&|! +zrl^C1!xX_JwtP;pc3Bh(UtD+GIcgxa@9$k8?s_Bgg$ME5^@ +zthLxz-4p26-Z}!PwSq@5RTBj0E0!w>Jr{z#UO7Xl3Q&^Y%v7jUYJrYS@(4Ku`YMQw +zgIMcJQH>DWE-(qO&!PskmF&Gp^&BK#-h^g--~a<2@iaI-pja6Mdn!8cRyu|7=RoK{Y(Y54PW0YnZr{ +zI&mPenEa%PB?z^IZM|vdriDGess6u~tJZtMgvXcrYu^1`_!c$g=P%aCiGTmd?`Qcw +z)RuB>Qcl;jB`v4Re5S13Y_-fry83I%vNd%B?^orNs6YIBKUfHLVsARRn%G)XJ^us4 +zS$Y4G#oy{a<~Mbh!GuXhPPwi?CUq?vKi)DWh$!613}+!Mqbw|Ff6{DNBA)~FBtJ<9 +z5g~p_vDFGY(g?}$2O9}tmJMKXmxN0n1DdqAyBKZ +z7U+W1prDfl>N*k{m+6r`s}^eGYVG6zhZxg}<7z!<^a%Uz-MjR#cjBcHBCSPko{0lU +z>CV&DnvVN&_7GYK`)(z_HHAr3<1N$iEFqbY-N=~|{D;ifWL}n&-7VSuX~@)!>{%xf +zg3O@9$&LsnbIZOer3{X1mT<})&u_QOP4G3vuS^8Ym$Yf^@ju;Qw3}hfen(LZrfmcpr@@z+h_F8 +zJ7%&P{wTMn0QIG7DdX_3pX}-b3-s^!17%_4GHfeLRD)QYfmH4C5U8!)J#O?7mB=@NUEay3@}w{+Ha8Y1N%pQA3*w#Ce|FQzM4mCOh6B)7YbZ0=syPjF*RDL$4l4ypL)6 +zgu3(RGya%lYDn@2J+c{wu0pW&MdXpXj--9jk9{odCpgWR)^Q?F#|#^|7BJsfkW(v( +z`>On94r+~@tVe3S*5{|VSfQhFm6|2v~g^D`8>OvHVnO66rIdZ$Hwm +zeS3}RMcbDSHWDLy2ntByK-#_)xQ-=37$OuE5(UU>iFXLP@V3!-XBwvqB5gNhp(vM5 +z9FI1iDXwJ{p<#_Lxm1nxgT|B}jq_3#FaegO(|EaZ +zwB>Bj{$c~H3uQJ?J!S)qv%JACwFGC%G%Ayi(YVPciGNC19&|!xc9W|ehB{B)S0v;b +zn(VLWC}KK6V3i-u!NP}?>8XNMN6Yi4^Nws%A@wH0tPl8pqRTmH6Edl=wu1Rj!25{A +zLCe!+V~374Wk78fYhAaotZB70yHY6H-9B-$?8q7m{Cud54_1y>PJ@m8GQ7ZA)^QV*^iX(Na_lc +zH)%_HgAjV_gOOb4=_0Rs>O*sn3GTfYOF|>>NnfRD&zz+CSq6H8cS|CUO(_nT7qLd7 +z$cZ(|y_d!Cdx-Dy_llC#Sg*ZVh9!cIf?Z3le)n3au=k{w2=EG96DUYMW&BE&>a^gCtoRK{&yhv +z?GbB(K0tqQuyN1a8V4CZjCxKNvh8|bjv~*zua5HlKHg50=|!- +z7{f7fs8K2NKe6@XeUfg9qL_4fY|@hzx{k>b%{S=9rvjr+6Tb@l!ZzY`j^s0G{H-Sz +zXjZxi7LmF>(k_Vg63Z1Q8GS^(%7--6y)|mFw;@@res$}^CNI@e;(OdT-xbRjX!i1# +zvzaL&21OXD(7pF^MI7CThEi8KW=IZ{`+{@A(QxJRn+7;kM9_WudW1gtE|5zE;2vJ@ +z0ru9(so^*t+do*_NX +zYwxZlY;2$Pf(@}Xuka+%%MDg8F=vuG6 +zFJM-POHk+d%5*0_G8+$H-MeYWlf1()G{eqDuZ;|)9!ExqT|#RC_|2Z6^~CqKW_qfQ +z39JcMd1FNcjXV=>(97KD-^+X#7W>AH9n;^wy8z~~Fz>5-B`Y<0wJr`?jky5YuS^XT +zKtG2Gjv3yDT-|$Qmt-MXXu@DdRD>D0Z;FsZc49Bx3D~!2!*%*7=vbR{gL>8HXV=!w +zBlF~oh3Yq+vT%ujxE#%M*SXg(670?ukT{)xzU(y~NwMA%b>r}bA8oYvHO!y$=%CqZ +zu-gUFblTDC)#{a@Fpf7xl4+Nw6(@(%-bm-?;Ui`9Q%abCjjadJxR*(5?1=GN5GgUN +zhyW8F6o4(z0hd|gxxHm}k#y+8H-)tSQV-dkvz4yr`{?uvZ^K2>iNx4lWN4=zO8T;L +zv*0zj3i#UN6;kSKw?dB@zN`d`tZnX)GuMr@7)f}c*YvCFIOqu+92^8Tk!fDgW7Jl#i1`LFANHWIHd7mN_ht1bvsZ%Tpy?o_kEC +z58VZ;zjOf|H`%A-B=5AZJU2>cK6Kc!Ax_qa)zKle51~%>gm}IuX#Q)jyNc!fG)X(? +z2=NtqR=v8_U_D7N`a +zOCHH?(8bXXx{LQ8GHPLEx=HGHT(^-9iuo!0+<9cJ=9L{?a9{|NC7Kq!9?9P8mS>d| +zp>r_84gB`NU;d<_`DXtCmJ&m4t4B +zj*Sz8*G5Jp-BO%KM_|A|(&~NV_$B8@zlGXudXcb~Hf>o~YTME^^$6dHE66(eJ^S=4 +z;=|;wn&?w6dX?towO~G-oY}HY{m9xgMm*!jUTf0dvKvNX?OEONB9uT^-O$(3??05S +zzpoXfrqD*Pwvoyn7O>F|792Uu??gy>n|6@KzmM1o9V=b6gZ3?*SD*)$rpFz=!uzWF +z12mv+KJ16Ixw_L}tu>)6U%zH2YpBGUEf2=P}qbHSpp7n+;) +z;cJ-V--h%Ql<$Ktd&x+Rp)=iUw)(u-6U5J}bb8=@9rhx|O=L;Z@pB^Gize+LTP?N` +z3lr?19luRQwx2N9(U}h1z;5r`khTKJ3o=s)Wa85T;>V-|kAu_e;93<$d1RRI6-!l +zp*gX*v|Kv9k1-w9%i=5#cC;pl_+uHp*J4MxvN)AC9rvgnJ+?74<)xd!->I;>3UV~3 +z>1D^ivN)d~J0h0JnDT+T605bW&h&WBqaUT&X{#)5(lcEtl*M@lF{A7{g3^j|JO!f1 +zeG>O(`Il>Bt*MR4u@BL^JbJ$Zh{zF?9ES-_kE2?K8ive9{;0~3Me +zUP0t`P^r>EP{SVH4}v!$M`F5;uq&IgILlK}uALR-+F4PqofYNUnZF9)@36}B%B}%e +z+@wdZ3K*L7<~z+#(^*GMXB{zJBcuHf +z$6pA1-%MwPOlQ6@o%P*x)_2nZ`0E+^Od9DD#E#$;<%}j(AXk-OI=#{GB`DT$J5QFM=_&`A;>>P(y}=`r%C$4-;~GFG +zFNHnk0)ZpBcYF0!;lA{mtJeHn(2$j)%^W@bN6_1G(WS9}=dY%R-+B +zKGIOx0un!)h4Kh0(rKFa(F+jILf#n{FYx}9L4_40-8%~@(p%DWP*f +zkc7U^Yi~=ww)lJack%-xDCN7r-qxulx)F5+rq-osn~7e*(|dO;M<0&TIqoFM=L4DS +zpkbL9(0b37G(U)+Ki9U@EtWFZY3|+#Nh1=o?WV!ACzr-$Q`-b%&w +zFzzTG$!GMry*!=A=(CLe#MAkOuoo=&M#ozLiRbh2Pb8kl$MZ=16Cckn+)CuP^731W +z{8nCmE0N#I%Woy}G=760LpO-?UFYN1Nj#H}XOj5t?XO{My{7)Td;436zoqfFQQKi$ +zvG|JZFs}G`$_HrceJM1)4dVCK5xo@9q +z^l?(Xmls(%ZRG-6x+cJi;-CwpbM<7gZ=kPA>Or3b(@jSGU2Gk@D*^@N*^!~9xMOF! +zCX{VI`H7f0ky1qI#RCse75x;Z+I +zcdtSoG$Y^6fT~XOnFcS|?5YFdRTU&q6;!oqRr1l{s;CMTf>&jOA;J)1fC9`T3=yG* +zdX*|c3E|=4l@M}tG`JfgLE5fOclYrI(1$|Y-N~os1a^i<185;A#>dB}YSk)%YIT5G +z{ZsxDi5Af-ABYol>N>O^DRb=bLFCUmsEnNojkK +zXTbE(IC>31}T^&?nlUJ<(7!0*!`uc^RHN8Vy3j(SU#8Ak-JMhM`_m +z;-C2BH41e_j;Is7Nvb`_^#Y4@Anl9PfC30A_+JloAT|!8B@TrcsgabXdC`1*sjLsw +zMhh`9{I8|CctTx+AVms!Xn?Ck-asiqg4Eof=I|pg!k1Hy81&?5CX-V^x+S!PDSsj- +zh5sd#FJom2pfo+rpYR1xu8NjQcxren$~5>K9e^{4){@WF7gDv9CXzECU*2|7FJhgB +zmPGuS$f%&^0-B$K%JVf7(~?c?WKZix+ENZOGO$?yW1=IZDj>JEwDpJ=NXl#~-=5-s +zY$+wRk$8`U_Kt?yqWMX)FSThH=*nq5O?__aZ|Ac9R)U6(`iGLXmN(Q@042bd +z<#Sg6^0hVf6wmQ3*P_3cLa?ECw8bw=I(%l-?XHT?ZJ`=|1{{ukvD +zFO~k6<#j15PfdG@BnE!v{FF%(grR^qviU3-ThL74&IqZbkMrR)FMrsS|eQR`l<-fMgTb2$1~V<%u@t +zR^&G@)qr(LI$$HfovqES8Us!MYy$Yg*4*k3z(ByJfOde*NqQ@Ds}^LF1xR){Cv42E +zS^{2fX>LU}lUo7Fv-XjIGXWKVUje0n8YAD1!L6fw05Usle25rp%_}`87&CezDD;p6l +zY2NNX<>rD&oyYtMdp5mtm`XWDFB>nDj`7j=*T_eU$wqy!SlM6ZIZUkSrPd4+2MyLM +z2kRBR^xmUo>Jbv%aFu^w8NK@(2yYk2k>shRPpLv1v3Cc$_u$`xvXmh9Ml`)6P4CE3 +z5ZF14VlRe$=}f@y-DLEW3J7+PD!KzHpEiQ+KTIj30o81cH>LHWp0B5C0eKCk^GZ-z +zoXkCZ*=o8wR8Sj9A4w3o@azwKPrBFn(Qkw44&X-$Z?DNllU*izOg5OxHkHel6I52V +zsa#W;rgBI=V!G;R=$ypc(4SiSgC;u=BB3ppHlB_)CEbOXQpbQ)d3qR~OMd8#rnZ%* +z#k4Mbd8Tqqd7JVx+8bbuS((7K`;zn0ul*=7aBIKqg2{4h!)}w-QEiV +zxEFo)oc6cMzbp>Ury^1CL!BuR+)_`T+651#d4RLhjs(}0(>@eyB((ozo*KPa!^?=3 +zG)mkU@+bL{JV{<8ACd>?1(7_6KG7vQ2u6oqBNfv;V6e~_j2n%XrNJ;#$`}EoipF4o +z(F7Q4Ji-VAU7|>F|^&c>B(BL6MhYcU$ +zK62FPF=NM#pD^*yNt35c^_V91lt^V>-ahi_GZel`mD*3E)#?2M0)uAGnmuQ3Fp{-* +zB)=B?%PWsQH)}|G&p$sK%A=t#k4aTndh$DpqGb%n^N5=BnDq25ueYDaqyUD!7*^*| +zbo&iYZ)NDmqXF}XYVs($|C*=w@o1RCa5#@50i*L@@pyqp6wA=}6)T@%119(8B~PE_ +z(Gbfc@?+@(8Qqf6#V>d|oyVlTjGoV;`MTQL{}LeVd)!qOp0W*mf=)}gBW&ZaxEBLjpg(CA&-w4rtl~_&12FIMz3J} +z5Qa*IlNf&>lkdW48^*8Au#`Q&{+374yDI}Mr}2c=vfeL_ +zL-~g6hZ;>Hp1iq}%`OMXKdENutwl+=ve}W^7y5Jox|7S&>@#?%&UeqEi6AdJ&}L@) +zbNG<8?AxY2RUm)e&~g6fv3hA-tBvQt{%O(Dfk_vzPgjq*85it;4t&40$|YR%tl7j@ +z5hI|yb6+M7y^I3}9~zlHxew&Ocly{RSFqK)acPlFJG-LX_U4W$SFvmv_n=cZ2hiVN +z*SSVAe)}lukg@&{ptG`y2VKW)?Khnrf0WeEe&Lm{8#upFjkHhg`hxzd$9;_{xZ4;n +zyW+nF0NvFhBQO=4O{`P3@I!Z36n)tCMx8YL^i;oEO~avm^BxCO+na{B%&l0>YBhF6 +z2X97i>vI!N$$0rf9|wH*<@?6pyNTV-F0}d7xmbwMio^+i>G;9N$Gy`UKzkkZ=sT}+ +z2KN10GGtR+e^->+Xj8`847@GbOxx``X|LLkCfR4=A#Rbiq+u>l|4{G8Tqgc=&MVi+ +z`awWzSIixmh0lAtSlcax{O^ +zpnkdyooD7?!LmCcY9;Z{~a`1Y2ghM~?FG7?TGpY&t$;Zu%B<2mL-Rr-fy3PC?FVC$7siB2kTnC#^EL +zb`@XP38&Ww`N~hi)~9phDxT@nAQ^1a#)Njre +z&g}YFZ%I>V|M-Cx`*vOC#{QWvJ+)vc*k`>}ka>x7-BvZV?{ugS3O;kJ;wA1~);M2- +z3-piZ*t%(*E^n=|K|A=pE +zd+g#lZZfwj^x)0jVBgK@fyHMzo2~=TMvm;6fTrop3hd8vu2bC4J|5@@_VpaINPLD% +z`{US_tP@}_YQ6dCswA#ZY;UvX!4Tk&n_O)j$Bpycc08;zlqY%@v!ZGu7ZIHKb-`Gu +z51R1wRG^VteP+ISvo7FoqQWmxZ%%Q2YrfiZtuAR_`Jls7PjUlp#UB3B2Kv_!-)nis +zac=DH&&Hy6!$E)fZsG7_+*P;c<~Mgc0sqy_0T+*O$45-AeZJ3Y@Tbiy+V}p8YxLOL +zWzZi`AJLyFdgCE(b=Zcwhv$GjhU}u9E(bZgF$Z3@bOL`fEd97dxsNkW@gFH{3;v0G +zZY8RAbFFU8zUS4H^k?XqZ-F~F=g|l97k29m{IS*!!CSfOz89AF?+yND=(=rC=q7H+ +z=p2t4e}KOt!MiShtmlU1AF)5)g80)+r#Zb>bIT8!5BY!w0Bu#{reqn1ACK@l`2xl> +z${X6E!+cKrwAO^qgP=SV=zHEGfNS;g`nXe)ehL4)2jI^KqEh}GAo|Ym8^f;*OBjA( +zSj@19;b(@03_mga$gqH6KEn?T^BBHo_>SRQhHn_YX84NXONK8PK4cLsxv-A5ktfffXQ5pWz%P_mGdrLf4>{w`FLB3H1cEFuF<7OY7a~F-Ya3!b0jfog{>sfug +z@e1sR(6lYxw)Mji2ik~{Z6CtFHf+WaoYiiFv4tl&UpO|nvc?^^tGchlo0+hmMOIR? +z*`smdkX>Wi*wh_r58D0yiO>bhMU$op6O)+`&X3vWuuQL9^o9_aNx8~K*z6N +zd{=^H&a01$zmxrIUPi=F8Fo$#<;+Hr^Uaz~QHfr-S7E0ni#=dJ4863@(Fad5hB?b+ +zupdPSza8H!#}Ar1Y2qspd*hen)SH3l8Me&3v4wo%Iq7(v`3h`&Qk)z)3HI|SHE3k9 +zFLpcBeD?V6#Jb5B>166?0@Q%t?D?>{_>0gX8DSb@94G&S&oTAB@&wE-fds^%9bQYEJ7KI^3ak +z-rCS?QvSh1x{EseRF-yR_!1G3AALDkkEg1!s&foEpH#ijvWGu@S9|=6U6|M-tP+y% +zkK0GsL=Tuq>>1eP*`5IGSEY|(!8xKI`Q2R>h#l)xYke;U_NQpVku%MM@CCD@=ewi& +zK-Uv?za4~IHnf}NdVL_!f>lSB&BUjq9R{>G)0^0Tw(F2t_~!cjSN$wV{wvNVR-BCk +z5<5jYJtzKkWaZGr*_bPuYBj;0^#2-RZonMu*fe@W%W%^E@yCOl=Hl7b=MR*OB>vQ@ +zO5@ja@u`9t3%sfj`{uPz+!~D6H9X}RHkSBbbWG=t2HbA(5RYp@@(Fa|+AN&`XI4&L +z99WI`M@{ELX$BlHF=d=>FY;;iuSb?Rgy6sy?X}&`lJ@OxqlyZ_XJqN`*Lx82-70=+WIsf3(Ty5RSW@D%v?A-UjH-i5UyRai6Q%Gv1sf +ze9zvupM~S|`Fr~{Qb;1Mz{w}ZkBw_W{O8yGLh`b! +z`~0~f$1hHb-_(sf@iri3q(3KX6{Yy{2ib4rF1h(h&!q-!$XNPyAkd4vGh+4J>_sOo +zZLx*(0a}rk;i~5n4`cJn{fChKNpku_9XGnoHb0A&0wO;#EnLUd8QOhzd>x`M4Y=M` +z$L)^ukF%*l_NR*0m#=HNkP5rp7KV}i&>F8Zep=3Z?&nM0!tH>*-R)$3Ew^Y@*GgOT +z#9q6#2Tp1@y}v{Ahy6MLty{cxiiUeOH0qpx$Oxc~wbxY8a9b{~y;V)!1n3v77jE<8 +z`k-*@E+wQsACqSe^5ay`)9*j8O5`)lr@vKm6?fJu*_lu1+1JJ|1G>iL{Yf3k{xR34 +zZx=N;qI6G6$4-RKYdrO^imMk|eNf_lvY(z-!|98Xt5|Py-$Q+feO0Y1^j2~U^o=d2 +zwj^}w_!|p+x%BchVmNx1?V3=H_$@yBqVyme^MsR?D07_0Di=y@%}g(X7tny}0k| +zj}5B(jqGO|HGH%|#?3i7V(Y1$y-0cKi=Iij0*}eYMWMrpy$3owNVx{*{@U53E9o!M +zo;!L87yF>%XXls1ABrx{O7P?!A02acd_r&1K4yPZ^5k+IR%i<5G$8x=DaVJ3x$9kr +zUD%)z5_@mCub9StxZd;Pwwgp={rJXl4{n!#%~wK$J>icn>_3&u{CH$lR1Z@A!OD%Y +zCUXfs*oXFK{UA0oSJ+aSy$)8~pIN$HLJBJS< +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 +zo88ly(8V%GY{j+K +zKl^g%kOQH)m$j@o^SS-MYF(&&L;@HD3?ckcP-9Q9Y)KdqkySLMPl4L-3tkk&8n +zS&ORNt($u?lt%RVfiEvwRN-RBt+`+Q +zG}S-xlB>*B_^Ws2B!6nZ=9Ncf?zv>sr)P&~dF@`8R^nE5Xi1s&ZWt+QTw;i`9$Z=XN)pY891&ACA@1G+C8MdkbFwJ_%f6nRWP+@UR@ALVgo +z-2V2{-}Jsq+kf^44>PXXv>BD2gi!yklV4havu&f*;%!-puX#Fb} +zcvRqO*SYw`Yyj==RRyJpdu-EO&L!IrTJUir;(9K8F!lCvI=*&(#E9!^H*Ik73hJ+u +zUvZ_0#|HLJXkNbyp{Knr{hm1O!Ru2FPIP{o{04td9J%vw)tVf&Z_L}^Z;AJXu8*buvonwTk~lVY +z^To?+==hlTp|m(r7d_ux^n#W@As-hfHY!-TGCqa+XRCtXqQr>Y1(K`+n*W;u?sH;L +zPFjtQYiRrK{a9LDLd)?@`}RJ +zkBPG)iqq`plfSnh;b;6YaX^HP0oSJX<$ew>NZdZhKH$zvN*ju}{KV=3hvuD`PW!J> +zap{M|kxv3kt2C$g(>sgths45!$aYqiLb_gj3C>I0`Q&Ak#TWAT9;E&h{62ARcH-EH +z0@_}U3WMJzW}HjAw)Qx!kJabWH;JL)ai!`L)W3^92ft4Az2Duc#EIsYT2%TnvCZa% +z+n@PT`{Rp)UnIspd$KO?F7*eWFQv~ChrE0@(J_h6Z-SEGr-{iM{m!SpYC+q-r1Wv( +zKL3}!y<~JeIDRdClxW-d@OtM5jzeHJ6MYeU#2GKfM~9_{%dR_&k0$Ub<@gxga;mk*Ib9 +z+>dfqddd6uameC$sUOc5bm>&G%e6rsK7Reg+P302q1X`Mwzfkao>Fzv=&)!%V|cLg +zMg2Z`Sa~I&anmi)MqPOQ^n(-gum%)A;e*2aZD*+SaBJbAM>)$D8864_8}*x? +zhfC)j9+DU#7KRmEyy~_g4|fqeH3}TKOjv6{v0}o}JZve>9_+AvjqvjTP5YSSJnT2( +zQG@K}(ZbDX>CSH+=iyPaF0^UrA`cT2xvXdeyq1^|3X`AA&dPheZbM1HSU)%cw-q7{KTCU@Ac~4_LqO*2!McA;wpW7j-XQ_yNzTwK~nlYMD`gP4#-xmJj%e&!AaDCoK_X +zOs+UD_w)x`rO=^E#OPS#?vp-F^D{nRp>#7+R@fkHcIT_L``ZsV>i8_PH95&mfg~I!@AIbX7$j5hHieft@gbG6>pC0DS%g1wS;6*M&*BT!_Xz^+NhI~A> +z&b|XL>O=^m@7zrdK9P^NH0hp|ZQ09M&HTys@SFKKqu0GL1I(g@<2t(SI`AeRhuLKI +zt98{+SpT?_<@d@3_(`bK&FLQ_gig1IepREWuv0=#Wv*Lf}5 +zEEj&*7~^qaTmiQ0KYa4L$x+5@yIi{M@GF4*bZ_pJ%POPS?MlA;7ZqS*#aQ9ul^cwo +zH$LrrZ$|-s^huo6^@-m2bZ6aj_U8)lxwccf6_sue0oD(ZHv1Lg-s26 +zEB5FH)wp`6`<+itAMu(XkH_~fg&6G@h^JK@ +z{t>4b-dCI%H&8epHGA7@`bX@)P?|Pm#X4cC@XXQ85g&1$XY{cxXSBix>9_LQZTX1D +zC8ia4UW*mBY1cLLF82{X>iy=x>OOOXHST|lJ)Hd!cM6Y7B +z-n95@g|W9+%I3QbKH+!E6XfCkOO2r;){kr7`4iqNJk%_4romV%X3EvABR}D_Pv5>@ +z=d;*&x6RS61606Y-mF50)3L&DmsV%gS^Nnby#L +zy#K_7t*?B-nXp!xI@?oVyJmA5&xZaPJ8^g!C +z9GuU)BSntLW}xlwQ~xpV(Mh1hw)dcAPqBBQPK*wF5tg}77GiSsRv#Tm7`hGvWn +zDa2B@&wclIpC-KCGuUfGd?6kyJzTf*{Wv3cx0=3AQX#Hht<-zm0*$d_6PfUEP9feM +zDfDqkoMD`|Vr220(n4HVGs3o(Fw&^=c=JNv;xmq&85uD^8Di9hY#X>1f5tsCWr{mH +zqm5U*dyjkV@foN4I*p&$D%yyrJQyK2e8wFbm|33iS|gla;kCBjrq8%zY{hp0_2(I# +z&p1|id*(CF9M&LhXq}Bh&*3Ru3m$#ObA#%iGMl0n)@kB4rcK2n+-|k6XTdZCG|&~ +z*xacESGhIMajL=7=rZx?V$H-7{Mh%@=^Vdx#sO1H^8JHLu*=>tb4N_j8wXe3ihD0|{F2VCQ*w0LL4Ha56zcuM>ehJpBn}M%>+hANbD*S$2`2h6>k&U1{*x@D0Dnc^h@6`7&d; +z^F8xtyS`!PqrP%vvraheNQHuy>EH0#MtOnb@5Tr{;%0SP{q-B3G^Ejp>)VzY+iv<) +zuYc?BcvZcbA#IMWHWuQj=ML`Q@zUg7h6NkKgkeK3m5iME9Y0)L{i=0ljPP#s*3AdD +ze#gu0)-|+Qx546$maj9m`BVJvk1yZx!DCw^K3-ZcTzzUrxAwNB +zxX+Rr+_p{2g`$4SN&fDoc;Tko_7Brzh4m8G?fW*X6kBwuoLcAfdgJZr4IyWCl;Y;g +zw-t;YIA8d|Z)y9p>81F2kZhIiwWp9@^}F{mVJUspLMHrqe*o(^{|YvtllQ{s!MDd^ +zF23Tesx$WDfZ?Z9dk%-;B^N?V6Sy1reUC5Sdppq2!xa$)#Q(j5tH9?MjDE&aR-l20 +zTt??IzUk+6i%fE+m!UMcELNJm>k!HYYzj +zVtQ4mhx~lZtbAvfS!p0_lK=9%*-53PUC#Qn+U=1B<>6p6 +zlf0XVZ>smd)L~5$L($J|z`rVy$8A}>8F@67#aES!FD8%7viOp6@ulVB(dFXH%Ee>K +z#g~_hA2It8KUywMei7M%&kt3HFhFMd9wq(<4@c|hSEQ2kv09mCgy(dbL^tTi&oYkZ +zb%u(yx?c2$7u{8Ay_%-+G@lI`#{VE@Z&l!UG!~7fp8)>#v%mlUi~OGAuW!4u_uqMc +ze-8vd{M~!rKfHgI2r2ij@E^X*>xY(moBfAxldjiug<1-gV9LPEplg-6Vf +zT(B@|(c&dbqnE`jU$Ju4>NT-z5-0e*&~ON2(HPVU(wuBY4(~Ob;Gp6C5s!T-j;84zN?D*z?4=`L^x^>-k?+Fs +z2vS0Dg5Zd}H2jv<3k)RXdH4jWRXRY4*pnEdkTO0`BCVfBXR_NFk>Ao&((f_{vnhhv +zKBk5n_}?v3^yR+Y+{#LCZbkNxqek}~ZQJmmt>%KN*YW<98*I1VaDq%^eOxA!eWP~r +zXo*Uvn@oNtbFz5%>T9g +zqTRpG|M1@5=kL0|LfHw%0^}#SMRNpG9M{-}aw>v!D4#e&J`?nEkf>gYAA_e$xNI*E*X0 +zb{zHV{CoW?-F|Q1$L?ljW6!+DkNB^0$6S8!&X$XpFYl?y%&J)Q`~L76`g?xRu;23w +zhyS?wxHkNs?VvV}{P%iSi!`%p9{KxrZ5Q+Vb~Rh`Gym6l=SP}9#DyRJd3|aM +zyf>ldC>O#_2uTn^AuR?%JcPXvPC&Q_As0eEgo<;`Q4KP}yLP>Og1(!4X1#2;(65K$s0- +z353lM4nnvHAp^oA2;U(z3IRO`LI`6ZOocEV!fXhU5LQ9h3SmElLE +zBD2CbOENSvEh;Q}wW6Z5GPS}>ua*|yf6X3rG_lTk&-u>x{Z5PDpJ&}>&6>5I^<37> +zp78)Ga1$^dNCO@O9tBncn}FZv_{TO5V-W?6b;i15;EmqwVd+UzeBQw@B5p~X>>Wr^ +zHxC+q%b++I4oT!g8J`6Vb#}DCJAv`(S=r8x6lzWg9PXWzng#pIU*lZK$Pt5vH?G$ +zqz0v7pkgvpvr{J~`bK!|51CSw5)|i6oa+5U{#&l|CZuF~6O)F*hJA;;lMtq0Jo%0( +z%-;ESt@O#06VsC7Qq$1ikAg?0r6A?=CJmZC(VIb9!=>9c@;cJD=8J=dX2p6ZOqn#v +zn;D@YaHZUz|L`G^_ +zO!^eGKb(s3rDu7E*gc}sN&ozDe=(J0&wF-~Q-M0(G?NK4GQ8A8e`#W7_LK~=wK|I0 +zaaT>jMtQ(LXI6s#z7+O-#Ta* +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 +zi4JS!(AExZI_VfE9q$}7+{qu|&{0nN +zcR1(vIr(HC#{-c4DYD0t>Gbt7r+$vp=h+UOJ%5$A|76ZhmUFoD(JN;SfoNt4Z +z|BBPU_nq>+PI;G>{;_BpGuZ>1!xMCN^^^NdIp;oO`kx8`7tsG`esksj(fZAm|4)WS +z=lP-w<2f1rel{HS=f#gm__xjzAN%he->M8YYFW@lw8DR72yHg_%RSA8|K5K6-wMtD +zIKp4v{KNbIv;F?B4FB7CzzP4KvqAx6ML=M1tF=(rac|D~U^;zO(uEA6#w6 +zZi9hw+oyMb>Y>Jcde5iqAM1a#?~D3hD2jQ|eqzixrKn^e+$N*A+(ZCQu1|on^fFkWj28A8~>VR6H8mIy) +zfO4P=SPQHG3W0oJ7LWpr1>&9hv49Np1;T+~py39z3)BMDz!snYn015m{oiKh{of7c +zFP^XK{@rwwZ{`mBHlM3=@Lr5_2Cnx$TqBP4yzB>AM~zM(^*k+>Ug>V*$mIWSo&0|{ +z{Mqj=11|_cPB?qKgIiw?4E-x0<4W$Cllz)Pa+3SAPXL>NTHrY4e-4HQZUH6-`0X@u +z47vA7?0VvKZp1SQ9xsm-yfNcI>hH9eu4)e +zjTAZ$1(AKy^57u*d4tldAp5@P3Q%%Cy9AWnXN}7avhNSYf)ah8gOcYN3QihZ$S3~TSWt5Q(OLfe%4|^Ew*n>imm*M~_*6+qlf}{vY2y2Y +zgOdJ-fD#`n7?j*UI)i%TzUV1XazEt+D7lZ=07~vR9t0(qS(kNot>us#bI$nYQ1nIQ +zP)T6a+4!y&=ib6$;lL;raF2aQ9op1$LwsPvun`QPX4zVWrCr2{MG-8=GH<&l#a^|PWY +zK7aI!U!FRB_`zpyi&_2c)cw`Rt{ad$`C$FF_k>0Nhyo|6{0`^hIfivov_ +zuj)f?O;hhxzgO)Kr>*;pHhb4(kbkGFF-h8&w?6VjT8FtmTW@|8>Amvn(O0~(=crZF +zzIX18U2iOVYr~IL)cSv<`d(=9x-|c=#TgaRGr#$`@Qr_dXYKgyxAzls!=_a~cfcAD +zcjs5bsdh{KMr{0vTaM|bvhkuMOf>;SJqv7=%Lc&I7w(bg-1x*6>bJdG-Gb4ry1saD|NQkq+RofT +z(JlW`JVpAfzslX$?Ze)mu|Ezi7^AFzcw6PDPuI;^|MX_|>y($mHVj`Cd&euGk$r|9 +z=qK{Gj@bDAy?q|LBY17)7dsv}eQ;-wmESEGGitH^M*Q4fU2eJAJK?vvkG*hN;R9g@ +z`hBtL{SS8qf4+X-zv<=w9sWB*u=AfNI*6MbA~#cr9HRU`f+ljU=xP+rSKc|`e +zf@bndn#tePOnzlE`8Cbt*OUBXK~yOQ_keTLp%gVzTAWLVUKUJYT+XKDmcdkMt8?l4 +z_QBM_z;o$c9fIw*+%%=bI|h@Vi=9mecMhh;xY}z;4W#1nH`MtxIeGqtJcBac?xpkg +zp4QYwLyq$=$BE=PiOR}Ks +zU3cAe)X0$|sbRy0QPI)Sl%goq?Af#JJxKCzwiB7{B*?Q?Oq3{(S+PDeQ)87Ky-fkvnE9FPnY1Jyty$-@OD1I0i!(CAzs=?VEO +z2C9KZ=b||v87Ky-fktN_I3O7)2CAKb;eceI7^nssox$ROVxSsmbOw(Dih=4za;|Fp +zHQIw%i~%Ko)%L7lWVm9xSJj}6lz*@}Aeqzytp*wq=WuK?IUcA68l4H@fMomp$Ojso +zN#YtwKI(&31C7qaan1-7+kL9GCz!)zCIiJlHPGlxE(athlYSr{XtWst`9LyI3{(S+ +z4ij)dGEfY_06<^-jKKlPjifKg2O3G9GYjOZ2{UmVW&|h(s)0s;Fcb$QPFHA=8?=xBbj58CgqLP_U+rLapT5O +z)22J-&@x`8Sw +zS&LLEDo2M!`$PC8>QkgEdC7KFr+&;O#-E(PUpYD~%sJvx-Jz(Xs2-E-4>9%; +zmu3jcmxs$msH-b4-nk;j-vZ2%AzfyfOL`e*mFIm7H|H=VAXT{?Lf2lu*(RLU) +zL0I#W^StVIAR^_j9MIA)eZu@#@aJ>p7yGvC!6AQo1xK5NRgC{4{%n$4y3`jr;?Fwt +z(^-Aw*GA1N3#WbPqs0h$jyyT?XZ +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 +zr5C^<71Eoq1EVlj2^UVVD>u +z6L!l7OdazTbCCHFQsXoe$hKtLvEgi2wkO*c9>O~IXSORBhjo&`jpoL33H)e&EI*!4 +zf(&_?ujBXgAwow%2jBaIEMbMPM%X2MARNN{{!8crjedPMDtABTVj1@&_X@Xzdzbr^`vzRohv)b~{GEI%cyuwp0^0OF%+G$l5&m{3 +zp*JjX9k%#b_8aLgc*AUy8lOuiVvXb$h+_8HgtPB68^wV^gZ-+`cZln +zy`BD+{(%l+!Wf^S&PS?p|f1w5%rb`K=Z +zF-ZQFkof%|<4tZPH;zk%eL9;f;?{5#uuto`0KPr%;jf2XYVsrbahUTQc#?(u)8Oiz +znD_7b}mK#0K%C*b(#1L#p2?WlN7pPeR^&ApH~a?GR?UwcJkbBKMZZ$rizXn_<=vc+6aX_zt)gp-`->-7+%=8Ghn?f +z#yqYzo-wvSs_rumzz#WW1i<3G5;NM*j55cX_rT*=0DE_x`I7mn`LX$(Nm=b6{{<@w +zEAUxs6MVZ$SWdfKAzqB9{kAExs$x9jLv={M*P>CfnJ +zrWBeR)#liAJu&IGfekVhWKBc7G9nxoiawv^q>?&VrQ +z3)k?UKo5TpDH<+F@EBT4snP~1K<+EglozSH)Kls}?G12ts{W{cOuxZOfQMA>-+#ym +zpsFZhOI=BipeMnWdXhduQ%rwm43h<0s)X5s9`s|sg9PuxP2!etC0rP|CYG<@UlR6+ +zUx?31dGb!MN9$ +zX3WQEziRBkSpR6Wz({vAJ6_`{xR(3uHME}I2w!72y`R2}xeGl<4sFXccbSy`t%ue_|h3%R^V-Ju3T +zZY(&Nr8s%W*B?*0okYi-Y(5 +zApFx8VD%rc$d81{JMPB7mwpCvcsI0TTRxo65G%xE;!V`LP9!92aj9l<#+hsDr^ +z?*`r*%BS;>Ku#4wKb7!n`BLcNO|U^JAy{Z7gb10!145CoN?0qDLO;C+E9*LuhJ=zu +z9X4pJI0X7>nYaSJ;99X%jFec(l%_y3jloK(QNK|e)TgaqNS`VL?EBdi{WkMCQzCpV +z{vZ}gcgy#HBM!@VEB7d0D?cg|)pV73SMl)oDC;U~7-Yd3>!0NKngHU?Q7j!z=QHiN +z*}@ojplhKIi9cTfFZ6q{z0?n~QI>Qm3YPB>=)`zwxl|&pl}e>Dse{~ImSszhm50c2 +z@?`l5dAD2xZ*-qr2MKuqmhTZ+RCFZ@8gK|ak5+1Xl~HANB{bbO^*!}d^;_t<-_#JT +zi`GXQs@SnTAER035Ob1g3CpRGjfJ1MjNity +zf+E~0Oc3@8--&%O#)YufUY8=|g>r%XlKiT?Oet0Bm2Z@vl-~9}TO4fkSJgMvx6tlwC(^n-EI2sWd^Gq*!R6q}pj$sRU)!lzzB#=9ZF{vNmwK4Ct+f&QJ| +z#Ef9?W1nD8vX^l^IT3SRDF;ED#4Eg(Zxk4XMv<|?C^6O=rLgYD!Xsa6y=jrVsX1t; +z2R)chp|j{`AgA}!C+GmC71ISi@c`y=W;IjBe$QS5A8H79A2jN_Twmc1F+=uW4e`T%wq5QLaS`JlcWh897F{+}yuF1wnM!i9qSDA5Uw)wkx +z7wq{!Tb@z0hYp2aSi(@S&YrdRj#yY5jH +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 +DdclS6 + +diff --git a/plugins/amxxpc32.dylib b/plugins/amxxpc32.dylib +new file mode 100644 +index 0000000000000000000000000000000000000000..d8281c57cb9e478bef0651fa5ff8d7026df0c2a6 +GIT binary patch +literal 173104 +zc%1CLdt4RO`ZzoTTR{@&it`}^bY`LJiL +zHS4~f`+C-zU8j$p3l{_-6#m2DKN9|@wi5(Jh!R8y?}4Amlk+ks#-#_E8=lc(KPH0!SW&r`>$6QXb~ggry-{b*!|NIt0tQ +zM&^yQy}-4cz@Kq~V8TPV)%MhRMN{p4XV9yJWrS*EYtmBU>VLm#u +z=bzOvefrE97pgKiac!=mqM)a0->p9X)PL +zrfakbQ?sDw1@N2@A|&RqIkcC%2>uh{Kc-ds4R;mYb;sW`io_Kz8_-8^oQ6VjqEUptu1hz>;Ol6hWQqtG{KB!lGH_YZ;|2H!w6wtGKRPh@j>=Beja3x=<+M?~}F^F5#~|J0LM|cu9-Di8tPSQ|T|i +zbP@#0b(^}66W((hK +z3qN5C*L4YoeYWsATezn!|2A9tkGAk3TliZD7uHhnKrnb$v=w~RR^fBD@NruuBUyG4 +zf{HE6a9g-Pg+&Ud+R_Kw!lP~B>CwSie8ZZtiI7?&+^#9@>Gf|k|NCq`dCgYrB3NUQ +zLhX4-Q|_Smp%k8HYwmhmShj_4qp*X*Doc;TaHcJfPT>d&&$p!ywuLXJjzi$HE+l_L_w`l8YShQR|tZ-#yJ<4XpPe$!DG2o +zkXT(Xp@s{xYB~;G6_qME64Fr>HS*>m9N_|MLiOPgsMolJvf^yC%-SEa8cSD+f;}-B +z69;V-&ok>aWzH2iICwsb&)PEQDv)#Uo-qZ3Dj61F-LxgGV*C0|sdx^K8gufT`U{wd! +zgO%{SYD(chuvrMsx?|1^UL%5?vFtDnFJ5PTrhc$tz|822sf@mqdTi9a4q+=_gqe>Q +z38NzF0ri9t_eO9{zu1foNM!>O;Jsh-BIbEh1b2k)9q)s_hUwls9~+0}#TkW4a5RWe +zMmQAWsrdfm_i;JXoyGy^weJ19uf_PO#J&Mo0vE&sjdWr`T;zpNL>r=e_aA{m%ZavP +zvht-!&$9=qo0$!&8-}x-twd~aUKL!4*x*V$beKV+d?`;IhN**js#Nwp!a)`^Sw>Ci +zE4t!h6+vfhm7e>WDm7xESWTG&+Z+VXH*o17UHt|trdd4kH7$IeXT%_Rd`(yjplJ98 +zYT2UHOJ##$%4`PpaqCWT!C<)U29NtH++6CV0WSPIUw( +zQ8+uWveU8M4iCWaOfH3_vl6iA@9?Y;8Py`LRV123kD}8=lQvRxsu%<*ScOw{7P1v# +z6R*oe5NKt!Dh5c`U=3y;Z|5LjLfao-Q#=JLyKXPei}@zE%3PYA5KTI2R#7nptH^aG +z=$?C6W$}QBJ)lE{_;;1myNqZQ%xNOd#MaLs(>CR(H5X{#G0wSRE?mw8nlD(DKhCPJ7~Uq(8hNmWU$EX{Rw4>ZCpe91dui3b!0<|VuR$L&F|uHjNeAx= +z1Oiw@|ID@+XGvtx+%ON=2bhZ$hoAuT-T_bl6)iI+np4z&Q*goO91^XHu!5a?kVZC} +z5=L$|j^K8))1w@N4Vd;0UcX}U_!gk|tSlPR<>;@`3o!}y=QPYuGcNFC-HRXMd +zz-K<=7}t%b*-9^f(!dQ0M3ZF|E>UZ>aA>LtvLs-Z#N4fT1I2Rzn0^@W7<~sPNEqaVEDA#uv&V>Qv +zpOnl0Z+c%rxlUd<*E!5}C*?Zxr@aSxhjKX@F5DuBMMgKu)sf{g)*^d+xHBpnqPFM` +zLLU8L3ExIK)oSmzqW5sH*oI7Y7E#m`BNomS +zx&8;(s{c+RLv1)UyO=i$=gn)u5R!JQwtCExx +ze*^-ir6EMHA%(GGrO5SGA{*PfvaVt#cTZjUf(xTT1^V$OkM^-t-4WIN|e_D$DlIan|$< +zQF3honIExE*~eX?3>{|yKOF4 +zAC##x(}C+vS2ve_hawQ*7s>UiDQ(*Lxz=8(bBCv1@05S{_r>+`n7JRt+)K2Jlj@Yc +zkmFjX`k8#(TkSxzrN)L}w)r+{0hu|dhFye3Q~Xx|B;^w+#~C>v7`%aHu2BL~*+I}=DKxllnX}vkMocE|Mhq)Y;AAY4SgS# +z<82b9vM#7;vFr +zJP*L!Z8ky&F%}5*zG$23Yq9Cf{Or`);x$@k0Svf1&-Jt|SL|+v4UoLN?ffGPH~Q~J +zf+uLx1waNxJ`1D30&5sTEb4N!4Hk97VkdS%`-_5D^ps8QuDJ3j>CAZ?g>sz}IR4~1 +zb2;+lI&(M{xSTF%pTU2YXu^NG$l(9Z^bkoIB%T-k`?rLDmov{Cw{w>X{I{JS43_*K +zu0M3vY@=!?tpF@)Zc<>0wVuPyx1Q(Xt@XTmAYV_HbAnlwywh6D57}Zy^DH@LmK%2R +zm2^3C&$ohA6 +z!dTi=T?w$X0$rKU((-kMuk0iX-@GNbzPI73W(|%ENe`725;e10uj=PlSo2e44t^rY +zvsxA|=k3;V>a>o3M!%lG9M<~_t>+}Ok%k?j(3mwO${ok&Ilt8e^}-1{y#u>~tA0b$ +zQTu$4gY|y{`Y?pAe^9VB1RPQ`to_gd*4U<*&CX*LW~Oc{{#eVhuYG};<)$6h+D|>- +z+86E!8h3`E)#njh_2o{)A;t@rUtqZtc38`uq6AQ$f-XyC%OY{rS05!Fl}sS;Gm9ir +zB+XBe1d4S0l_K#J>CYlgiu}l!TpUHhSOu{Z39vUY6j523Xo`HmB2g5nVUb9R9A*_n +zP-G8#+l +zm?Bv$@-K>HunE~uk@>8nUr^*17TH4)&hs^3o^$o0=XTjk1lClp%mDwmZ#7Sk_(Kw%t2sYPbM>5Ej>T&giu@Wf~ +zNR9B1Oe0yen1=eb@gqv!**U6TJ)0Ep%#8z(NE3w?^hF7j^y5m}_O_e_Wkh55c9I6} +z{iZU!4ZSF896*RVFalf}&bl>T14w0vGp0(A+F{eQ>^_cIiR^x?&-sX<#F-dt; +z5KR5Bs%_J>JCp}?_=`;axi8h|&-XSv)MN5QGr1!hWztb^ag0kS8Q#+V#u|ta&p)=4 +zwW5#-h0}^+T*aRw|Agr}t3fBT@7-PCDUOK44JX7%N%;)1kyV%2wmRBod9@aMsAU6* +zQxB;p-M6$Pb6EfX8GU2GW)hN%pc#OU6>*x|IoI8fO9p$|P9l*yiRX@TU&eEOae)r`#iIWxt|pU&s+!Unuy2lcHSz7 +zTFvL`U$(jWb{jUqWVS}o7Y}LUfx^FQm)OqOXnbrRqVeAVmB0RSOJa*N`<&o3maq!5 +zQfpLy@hZ#49^|!;Gi89SXX-h(%=pXSMLk>mI&u(=5f{)$00xt)aHCRSE`=K7 +zD*mha0{(FUsq%BE)60s*K(;mT%uw0$-i87|mdf13xUxE_?6Y}rjceuI*s2pvzB25*{Qpw#dku(K&y*;^6t&Y?$xnOw(VaO%6$UQ6OC) +zodZ9ViNi8aurf&jqPKtm2p!VHFCo}3(Htv)E~EyF{TcO@p(g);mh_r|w?k|L-Z7hz +zRA=R6r$MvDPx+IXzTFfeU)i#?U)sVlTA7S+r~ss?l{llt&N*W1azfi)lCffUHIzH4 +zJyf6sIJV1|m?ghaxA@lm5eQiLo>T>kg-wKx$x(N?Bam1+H<>|oaRX^OR{U!< +z+v-Fd1*BSmLc@eGeOf#Fe0*Lx_K!?YbKHV({YJ5@PX1M6auCso`Dgh4FCH&2HdB4_ +z^2$shy-%?teT4jIS(UqYdfb8@R{ttTiK8GfBE64#sQ3i*=#a)lDNf$7GGb*i>zpzg +zz@{?O0To8150?}Ka(%u7>g)>DboOooR$Q4aWp3=;pVH~)B9@q +z&SH1F^ef!rc(h{?0|%Phfj4y+7;L4ZH#FsPe4QREmG6cG>4U0uK$D}SSE?oNMo92q +z0aC^L_=favPJbCa;{?yw?+o;yG8}q{v+%n^RU17XmvN_@t2$3Ur(zKv_He2TG=bBtlr(ub7qA6o1PVbr{t>P +zIr=woNfNX6-v)Xh%9Ey6$l!Qw5RDp4F2R+ESf|E{>&f9p?M7zLS2l@2)Lp^#2!RCO +zyJ+jkwi_g3Y>ZpmXc;78+oBDzj;A4usSnl!?KNm3Qo?>`>MW=e)_z$_bJ8svP5WPT +z+ZnpzJ7sD@`v%jOPoGYX +zADWJCmmNhpPJ5sBO2cUX1*as;97czm5TTe$BUPK6Sf@QPn(x&{vZ}nPg0!?+`k>C7 +z)?}L2pc^DKjQmImxO*^PPu$vhq6)Z++0J`Z!hEIRAspuNS4rDNe~9E~w}Kxw;sSpR +z2!QocnJSp}f6qgM+sn5!jsl%0j}wz${hfpSyf!0+W)cU|#WNQ&|K|7G_O%-tpcO30O( +zhDfTl4_!?2p*^nB9=Em{@i?@b9{Ff$we%d!OOxhBPlHAwL}ODY_bL6@bb(#aRnLsm +zG%TAY&W}K=|3-n7ZHMmt%Ewf+>bGD*z3VLhA>G@^-@Hz5d|gcEOnTY%2zyycFV*N4 +zFO&Jp>F^R}H2iuDH6 +zL+%*nm1}uC-Ggu)KHfw^WFCp8tJ>jZgkVv2{0v#!5?>$uP~(QNMGLf&4Ptv&HCZ*Ody_M&a=js45p +zD{a%>tM3QfEB%YxGny9zP((ilKhje8dGjgw>G}fvOn4H0Ixe#bIRsAK-^cvVnA8h< +z$~l8Ob|di;og8IT1^Ir0dVM>hN2AxJNb~ +zJ&YoZZ(oO6;*>@?wsZp$25hQ0N>_Xwr>fz7QlojYA&s4EkS|snO1I+qhubILdfOIb +zy@K-8YSGl6Z@$URX8KRuVGF}?*3dhqK)o%){tP`HT9gkv!^65$lVd$ +zFJUx2YQhB5jKUcmXe0sS0cgg%HTw3+TY~f!&trIhiDgGNlIpcp1>cca6{A=Da~zKcfzq7NsB5Ozs{d)*H2P^d&6!{nv7992UK%0wgzeGM*nKd|Fl*)=BAwASR +zH@&@FTj6qcugn?(k8Udx<+ae?D4O&c5oq!`u$o9q1|&zChNo>TErFSnx@k8}N~&Ap +z9VU7Y1iYIaIr48xoh(&Cebh-P8RNeLqTSgp&5fwXWer&oB`G-&)W+qb5WNQjpx2F-PbzyQr3d8jwZm*VlWHAkvlT|!$4?q;BPa{rxiHcOEhoRleu{b| +z^^^GrwYih@d&Jb_r{rV)54~GsY3+$$viVP-`Jb%4u>UYDQJNr?b;GT4w=>q)5hgRK +z&T#esF};a}QvgqVzd(2$k>UOrJ%oY~^S+JHO%s|6z{ufTcO?o%CybF73)I>7L=vxJ +zwOnVMmgjV8MNq5=<{5yRiw{Y4z*|(RG~0@G`=6Kd%njdZ0b5^hE`Udi08zc0*7I)^MO$L5Hr0^ +z^W__$2J%E{%m&n-u6sV9LLswLjaPTIb)4j~a8lhzgnrleA~&5O{wN!Kz+$@xLPiv; +zj2E(le&ADfp)Xt$z(cK>QBuxfds`C-dZnvU0~-hc$X=>@9)6$bMHJfm +zVZBl_Q>4Y?kSJ`-9PDjs@4nL86v6gCyz9yF0s#Ipc;A>gBt$Cv1XnRyWb2K4=Tp)} +zxgXy*M-_8!2eM#YD!5JO^c^^3cVvk|aLU!#R4kRdD!?P8+ +z1VWL)Qzp@-$Vo=*f)F(?N*FOVz_ZlJvWdH`dDPsg!!YCqwZnkEX?8IHm9EH;PV!R6+OR_*yP~S +z?}6xClX_Abdy;@g{vr#MA%F#GV<)9StN-X +z_|CWzbqV0`>VZ<6y$l{y%yFxo531cC2F%7 +ztYtG;%Vw~a&0sB?!CE$hwQL4!*$mdQ3D#g~yOX+=Z8}I}va#$`c(|f$;$JwXnx;(=w4LnBy}(f3vlNxNqcN>maVw!_d%m +zEUU%PHon2n*JL>h)slGbMlK5oa*=#Y87<)L?^LlsKn8uqcAf8kYK$J=Z(>@=b6w!SJg4uYShjgbtTU6>L*GaJ^+h|yfkf)xM +z5BkFZlS0(5@gxrduC{g(HW`qfr~>M>bW7Y8cO=<1pc363)(%$lRsifS%xNeR>p%7e +zdzFP0|MoXTeyRy^qj8JqzJ(4E!K?S#w8ZG1rSDiyp_a(&T>)tRpgFGbi`j-l2ayIM +zDWVwkQN0sh`p{qu9m!-J8DZ@L|7jz=R-l7G0rpyhU~OgrR_G4}G2E +z$_4&dpp-FMIV}R$noxUDKg5*t$fG8G#lv90hPv+}Qdf-h)qN9C)b^6{jDRjsLsrDO +zyC8)$sp!8(h?E@Rj!rE}cT12?-l|)9x+p*3Etw$59W`$(9uW}KtOT_r-CtnEiy7x; +zdoc`kYVtwZDUMDkCM<~;y4`F`M2{=3mX&6+-Hxflj|o{4+=)qgk8Vm8nw +zwb(XL9F=nKN~XWUYEH1BlU4WiuM&F4ku;S8(iFf-I+Lc-Ulq?I52thd@HXrfnXN1Z +za0TFEEV9W7(8bQ$z49Aa6WbE|LQNc&=%go0!OLj9srHT|lmpYLI>SxVjDUUFE;T +zvbT;Ef%3;!juk2*GEnQnF+l%+X8mt;RStHz57uxo&0$q-&E37>@J+{qVVXp8fom +z{yvXmrVH%f1AXbse14*_p9Cr1>^FnU=R@xj^)zqK+qOLr(LtA=BRaySGB3GQC3*%X^0#^}Btz#|E_i!0@7wvn>hw#% +zQBpusHyR;SXrr%@1Z^ovjldBSr4RF+@i6sH(r>dJroCg|%LF80g{hO{-4VEPD1Qq~ +z^_-pIoAlZguFuXC+o;HI%p^uZ9tS(qVJ3<}xGi=@fVh*4Oovl>lgb*SNp>c-jVHeN +zhQie|gY4!h2z$>(xCcN2$-+OS5U&ZZ%@nu<6UO$qV0>X*-s2Y@j7g`mKt`kwsw|Qm +z)EA)L2#`$%a|uRWxJMLP!&8iQy;J>?(XG@P*ze09x8hfpi_`-eLXz|rr*_l311 +z9ch?&$Mjj=>URD?t9u9`^0J!Xd77y&Vu!d|*+$U;%RB~05q>el{WXpjk0Um4xoQnX*1f6+>nk| +zA~}kkoAURq4Ws9!rOjv`k}rm8nE)ExA8Kv?SpjMjHFEjzo}@itzN9*|tF&8pCH921 +zS;+8jI5pg3IJFxO`L40@u|AA|v=LSs>(7jlu5QwaF`03rVaI4@s#kbS%XIiyXvv`%1;b9L{qmuaDMbZ^Zo6v}{N1=Nd1d5VeO +z*~jS&NV<;B<7~3gVcVGeI!xeoIDyd`e+5NQMl*g$CKj4+vpL6Mdc<>RYH#6>+Ty*j +z+`2U&9W{cLTgV0zgWH&U@X|iPU6^zfCTUu0{0WuHzQSW}&3c|Q +z*NE&cF!zQ6Z?V$_6QOgjWT+OYi&1|ys_iQ$@MgTVj!fgLj|5>O;tGuBpPF~#PSnIg +zKpE-)qmlcfwE>0{CdaUM{AwMq`Y9JKl8uSoa5>xWWZK*e&AabY%YNb=h=(0gH19gf +z?~k|l-(1o)>oMm(%AskPGgPcT9Fny6)G1}Je8AW`QQ!@jwc1+1vl`42f_B^q93)WT +zQIBhR&UB+@0O5Xt_pB&8U|l8{?uo(n)aL%xN?plAbe{s=6U@KGNns@2ua +zy{mn(dTvM2`)x!2?c>!gtxTv!S16{`%Y8IFN`m*9OhyA%NxZQVUid$<`*WjbkmTa| +zZlin)mI1X&XgO(YvS12;$)zZDau!hBX~67aVU)<`Cm@?gTM*fSfT+``-LTlnK~`C^ +z4WOagA7_K_kqOqqjZE~69wK5H1}hGTMtRqh0}_ixKy0lQ%YfJ#s^pYAoXlY(^N=va +zHv|GE)P%}CO&|#g0!c1#@(91g?5zcCeMQkUSxkZ^K-8#`6zLBTPaIA>o@AVWRMHj) +zV;*M`0vMwxX^f)C9ZR<&;oVbb?M${l5C-WO{) +z+UFom??*JfA5Na|P*4PW)eqBK3vXg+_#oY&@UrnGJAsb16X;QcaDn%jbw`=+^`Kl& +z1o`HtsFC3q-u(eF+!&i$L5-LH9t5MeKCo<))@3}HXG6Tf6^UV~T!@{pBZAK_{F41N}w-l1yCu!aAj#=a68hSw%M_`uIgiRQd%ARN7>f|Q*IKFu| +zjn&8MnPVXEfo$*aj2{wbl9_c+kom7BXc^s|z+b}$PwP4}dhpZfKmS&u9-MXKk-JT3U5;{JNJGVAuAx`)GPlzm18A`G0 +zEEi-+P;)Yff#m=p$;gG|xeoO#P{epx=J#;fbB1I9W5iAN_zT^K^26h;&E2Q3{AwI7V?_(PPOz7P9uu8CjWbv!NTFQ +zK*`$~&8vc7a`asarx858OZsXzoM|;Xfuz#x9K_bw4VwR0VvR^XjmUfUH*QR$%bmn?>;S3NGn&X +zOw}OPJb(sR54uQu)cAdS1ytkbbuw`$`A5#qlR40lAJDjGQ5r5ihs@Fa_tJC7(&cOP +zHSBcxabrd#?x2*OMQ1Ikd{qd_)AObBg`pUTlgj@Y%7_ptAV=kSzC>X7rRPvble>X5 +zgh%oOccjU67eL0+bA+n{welxun1DBZI38Mfdvm;K(Kg?qFu_DrJfBNFv*GbSmVnlE +z)TFfo-w9GhT+0`+aJgQ^xn`VaJynn)_d-TMyOM2sdEg3>T?LU3g5+}6V64-4nW&F7 +z+D55tR2Vm*OG*j^0W+PTTt-G!WDS8@w^FU)=ncP5B+Lj3Uf$ +zC!F6Cw1y@Nj&-U&V@MCY{l@>4XgRD`ETLV&ZhCoxE%km%mAgaJu|f%sfL!*w!w5X% +zhJ*lPPSDv^4~DlV5(nj|I|}4(%y|RhPd_?rEV_H5RUZVcfZTH9@Uzd0)aU(x&U3^#e23yQbM8o8%hY-rLw&!JCt`= +zE(+#x2fdUu_{*gNe|e$r<}s9Vr7_hLu3O@Xgoy+5c6tY}Y0U6>VL6*CaT +zYULMIi`)hGl1Q8xpTz~V@_ANR`e4)$?_q~pe&1=#G##feMm@wQ@{E?^zp|D8Np=EB +zgxTggky&|B2X^_1eApDuet3gcE8Nf^;O~N(Op3^)X6Vw88BqH-EUynP{cfXD@-=h} +zj$ILIB>fD8wixK|ylBWq8@&(55hKsD7ag{OZNftFPG-KsI5eHAt~H54vs;!?z`CZ) +z4Uj;VYZsT7K8Ea!vD|E(PTF~!LhkQb8XyC4*U|tfb2p>y%af8JDXUo*h{K=i4cdRY +zX*%&i%=an!YnFdO)r8H7TXzQ{*DKYtyR~k(2Q^$8AWWg4x6527kS*} +z=-%ONVXG-J|A0wY2{lWb=Y+m;q +zdYrS0;vlOy*b53=tdBxIF{gvcBkq6B6tN!sAIs;&HTbD}HK?gw^cq!~ZyJ5hzDn`_tylT3 +z*KE_zd=T%y15bY2)JT(P5Mm|&Km*B9GZRe9%JtY*W63q7MIsMJuWaT)7R|>T#q0}~ +zcSNYY%5QD}8$HpEJp(6()aVWC1{7F4|j)nZ2dIVzal9zq6K6JAK*{YJq#%#=JX3)UyhV3@N-QT9;*u*K71`+2j=hPZ7Pu?D#GyMYkz0v +zk%bf&Ulaf12$d^cJ$*!Q?zh)1w0N1^Y% +z3+6c=Gp>kOM>0zc-UC(@w+rH +zUJdWXDm|nVQApNH_vn1Lsq{w{O4m!jVWC9zD|L@a+996rznm*+)^$;)F;%_P25)-s +zY`kvWn_|=~M&Fdn=X6%8)Z>y;4sfjQ@*Q?C-|!yZrhb?_3*vMj#M>;&kAfQWo?jb| +zvkNcFt1-RlAxXIo3-83O`4ZHs($CkW#!Fxjr$Eoez7)3FZ<$Q;&x^$1qD(?j_7V|_ +zF(iisJ3jm+x?+Ha1kqjlfDV?e-zr!ZifrQaV`< +z0Bp&dT`K<`eusA>^Lhijx_$y$Omdwmq@@yWFUkwId3?=!EI)V(EX~>AoRM +zrrRzTvulO;{7;6ms^52Q2)9~F3LT8zNsC7BMQqr0CUJP3Z--XGS23vDG4O45xMz&x6tGE~76XjPJQKfJC$pkfrXzDg84l(9l)1BX8%uh`cmiG*$kt +zK(nz9j&jh(#;&LmKs^(P?#$_olxded%y;=2exC#NUEL*>buoK_kuZ#OQdk{3w#!f$~#CdX4O#&skDKpvTYgB}Fn74Cof?nXzMvmq7? +zjKUmIY<#$KXaFg@9ql2D%jmYyrQ{87oIOQjMi!>A>qgbG#fYx~R?f7H?|YVr*t_P^ +zZiDzbls0hro+>~yokwLn&&lSa*2BE +z`zEsWolm!rt>le8AduH%uBN{I9+_zJty51%=zI&1MRg5%4AipwB*?Fe-TQ+}OMV-C +zz)BrV2KK82&sRwAgz)=;yqg`P<%ZOT`QcF28o}N_ek9w^F_MPhTf!ipREj6N04%=3 +zwk~i_$avxz2JThT2m7nP4+B~DHl1Io#%2SDXWwf0;Q+{!3>cxG>w^Tul=h6i{}jxR +zP|${4UuaVUIl+gjTQ2nn?UzD;}P%{V*dc{A5$1$uS_{H_L(5i +z6|gS-3%wFLbzDyCTEQMk^&m_}!+Mz_%@2@wRO(6j7*2snDSZ{}l(@Q+^ir7qs>7ib +zWlp3lDzgMv{~Uq}%!UU=^B!C~Dc{wZFbI>;k4XJ5!}AR6{iTU^+cF)?kgS<#hy-I-OcIn~Qe*>oR +zT@&;ncc?3k0g{}1Z=N$hM$dmLfv8>5(bS#uyK9cO(#lp+?bAi(!|DFn-v{8br=Isz +zN>Wwoc1a(KOC7r~Z8>8V8KT>#yN2c@)m287?Ug$thADLn+8zH>5SQ+1rE(kW3+;G!arO+lvqD(DYJkL!1w$fDig}e +z=de%v6k_#-ynbov7U_d6svlm=H2LDCps!U1CmSa@U6dm^d}rL>+uteOAzxy_yQEpv +z*I4{O5Z@s>{{hBg*Kzfl7CR~6J97$`duVIl)sLlanDWe3yfa9vMT|7U#y~;2xw_ +z6qBp2Bq?SSQhl|?UOqbw+M0hi;08K6<9-xW*39FJexnd?LRa&t#r=)9I)(^!| +z+!BPiXY2vu;whyC +zNB}lh+}YogH*h@`I#jsi-U9_Nyf^^)i}8#$OoM045bGA2uO*SQU8eh{G2K^|Q2Z?2 +zifS^mX-stU^Ej>cQzwz(CD$3Rc`kazIvT=61k-U4{Wb83uAf6fi1s?QdvYo>j)h=jRu-Z!QZR3zi%_1@XCGOiJMPL6VX~%;$EzNl`guYcw5B7lRF~i +zem+OAl8IjTWLpeQZB~wY`r3Ps6zI8E#fiUHmOYQFt;0_r1?3f36C>GOAT~&gm@zCxo +z@YLu}$p&xaE)&@G>i1NR8nQxkUq%W|v2z%5@!q>2lkG^T1WiD;h|D3(VLUD=VEKzn +zL|6bHjy#1}NPgnqkvl!^#(KuS!c3_vmvWs+rmOJ6XET;BLm@RYo-GgC_F(5vxDCIf +z&3^A+H +z;7NQD-Qe*w_awatm`@A)1}Y_nV~M~Hv|Ytbk`D3>fDzxb#L}`Hc3tz_EK%^!GQ~sp +z5+)vAEpm4yTMh9SsA2sq(n%9c!-wY)fqfstZMmmWzNL__#^szO_(v`=+jH>twg_$8 +zTl7KLdExB*8r#lSWdKQa^Wqv?)72b-(*EjrmI<{M?8Y +z><$-O`-e-LCdZR=06@+js6fjgPpk7>laN66p)Ao-@g9AciHY+VH=y+#_z14DM)!V{ +zbR(yqeC8K~j-xMR@#8-UrW>7qrYLYv7BuS8xp8jRy#Zbow%8xKUEQbd&=y5KZ|)6g +zi>8_3cvF)*qm$N#oL*xekI>fBM-rgP>%3<~N%@t5m79YPnk$TLI$MrS3^wV0%9q0M +zU^uqG?k9sXWGC{~py$AuP)TVHA!Ksuw*x{HLC}WLzuS3->tBQPA*y?)}1S~NL^`y%-8;4K->q?@ax{^-pN +zKZ&&n&^9pwo)hc{tKSn)cT?Bh-K`NDN10+yAFU9B6LG}&0{L%^{~~Mr09@#KbPVd_ +zRy;agiBGcL>FgeRbQW69$g8y(fif*pV9h+qZ~J&d&?A(O^&xcWJz8>IQa#%b57Q*2 +z4v1s8|1z{Ur*5B*3yO@@9|`=h1bcWf_HZGH45Pd?4sWevth`;R2QWiulLvEeyC~kB +zNZWGRmj_mqfvFL}w$Bpj?ke(Q`l86Z&*(pza|8_z<^DV!zYxbz)@|3o@BDq-{9`1iEaaMK;b4Lw%Uz(_TCofqX2nP!;4DYBRi6+ +z{GGMrQgkUaen5NvJ2hg1cWcD$ZSMa`;QVAKo+t$7n*n6D1B^09U6lxsqTe4-KTE1l +zJtvhtAksxG6SVvd4t?cp +zBQphbCpYNdb8%Mcx#DK^8!U%fe#yPmw_t}3`7dg5f3Q|TL!2k7YcT+QaOuUv1@RQ9 +z_Amvp+7LDUVeL969u^FQ=|vZTmc%AWOI|lB^0z0*jOTYB;y%t+?E1V)Dl64hV-O>ZT(PKH5n4Qbly|W*yJH*PeZGzaT8BF +zE|RZxvIxlTb|$#Hn7tXyGAzYyD>n!{_WSzr1_S(t1~HYzcnN-OQoV-xo2l +zQtoAP>+cs4T5mGD1|&m{X2_9IBUZ15uDy}N3S +zy2E(60%@|^keN0ur`W(gX+yLO7oH0BONF-ijZ11o8*yv<;df+R1E`M;(yp)11ufFw +zDQwPf!8?m5;WcV`P>IjD?kw3lY&IxX-(zNdF`(S!1C|_+lsycRv2Jy@`lV5Fj{F^) +zeIH_pM8(=BGn_cx_53=k7*<~H?R!KBW)T+=>9S=&j8ylirw8Q0BFCuv)vx;-utrUy +zlz9;6PpMOPxFb@3m6X?6J*0s*pXK$0^f%N4soPNrncrWmrS*f^6>C*L!2Op-MmhD? +zryjzrEMxK4Fc6={Ols=q?kkjlx@$pqe;=;@n*7*-=n<+`_dlN6TzteIqVDS7fX>OO +zO(oHsBZ}vY8PFB=YIs|Vf*d;-p1NOBZVQlzh`D^Z5N>mRUCpBfO*Y~G$1;MmNqQD4 +zoAG)U-aF|8$+E~}u1jGxL~9SS(b%(t_5eq}zMeS+0UG5R9u^r_o? +zrv%&nh~`@DptC*fbQc%G$WhBGnR5ocPY^Ev*^N&~v%%I;9#L!X>ZG7Q{1;P2hUk`o +z`p6krwNXscp!2Y`qZkDq#SD|9m|b!d6CFn}tK=wVlpMu$u2FI9!Q74m?(XCuF{*_> +z{H7_;@V(AL%EcN|d(rh2NTFb6VK_x%kuw25>A6#mHamRlLWYJn0vcx1c`uTtlFtMY +z!&t~pUulk2phfgZt)1WA6v5h;SS3Qv@H1NJt5Bl|b*wfauJ!rm(qHfc6#R(Tm!Lu@ +zJ0Inq2Y5r9rnGxZWSj}G3G_SRu? +z*}1+nfO@HWv=*vV%^j%eow1EnLGG*R8z7h_;?<^aKgO)+G^ztwJmEBUXal9Ip_+ol +z_=RhMVRQNdcKW5VJQVDYFn)raH5!|7`-YsXynzSj#Cij1kWZ<#W%(Sk_g?Puq*6IiAU0Px-Gewf1jkv*u(oX*lK+h*f>e2Xkrr4JWOfVxOrWUwI*&@HpBxrc46 +zUw~6xO*5&nd*6KJ0-dVG13s&7!|{e0+e!rCJnEn2!zD66#s?XD*#H*wp;Yqb@#t6BikpJK%Xgxe7g9Uef(7Bp!uuFp6{%qqT&917M7w%Xi6>TFm{)sX} +zjRl8UE{y>~R*IHI_KLInaa8Q}sr}r2H|2d|V1&NWfZJsv#xi%`u4W_sn|LE$A7p$S%h=X~CVBN>T*Ko=(mN&!sVThQ +zEw{m}VV)`lgroL-f5(gVyrob>qaaFU7j=Z!6_o0QCiuBs}he}|gP`mnVJE7g}_s8nW!RexD^e-fO_Zt#l +z%%#Tg+&K3dU|D816O;|ck%ksCq`37< +z3sa4m2ZPoDPIGd5Gp~UkeqyVZ@TJ*BU8f1$uKFKn@2zT3y_jgu<7*F@)6xg0<+4A_ +zRVcz$i2j4T2Rs7%GYeHc$X%z~x3wkx0MyX8wY{|(DcWjUpvVfs)^sBj1KTv}g|1n1 +z>}@^AV@^^XJLodO6ohzu}s +zd5jml+n&%0cmR5Evqy-k?K$7Z=Z@a<}wf5v5(3&j&KGmXR+{lA@XU+ir>@9mRT@zj+0 +zF`Bon^ziF(_?fqe1V$T?k{FSS!2Uk_0|TV*Kj$qSY^2W*_|n=lZEt=@eBqlY1_9&s +zxvT>T=K+iz-(aV{g|=2WfJ%A~5w3cxBKU>}%_OvU +zfbdE8e~mi^KL@6c*G!wN7Y@aSQFTe`q3Ss{zErIxa-+wSl;>O +zsmmI6Kmhga)anJO-~A2K?>$PIEcz+rpzf5Dx?OrCf|>oY(# +z@UA!2FE^-uNNqKvosR}*^!-wS-3iuWMr$Xwp3y_U{KYeR{%c;}%RAqU4pP&sSx7_g +zgom5hRvC5nhS`iS&1PB!p}?<@W{k$~FXR0%8p3a(Dw=~%+{F>(isL~9+3__=sPSl( +zL)=sD0_N`fww=kTNe(LXkQ_AG^PkBvR%Dzy +z#CXOvJO5nRAtH*>l<(S;fq)TrV^9q*>qDpe3R;otfqle(MU3tGr-Y>zPtzdU7AV?YGj|7=osFjW6fH~Y)^(`zm*IEg;Uc=1^v^@?LcJe)IGSckJXz! +z#kg=QFNp2iQ!jU?7Y5sw;& +zZH+UCpibgj?D?(Mu+604dDPB`x@OxuXChu7vJ|`N^H}G({N)5mV`;U1^I7ld5b3ea +ziJy>3e>^t*`OiUl%faL=vmz}6FR{pPZBT!7VatucM}Nk1jAy+8Q7Yf84BFMM7NM4KCF3^nz +zcrF2Xg>R;VY9V4$|08__^I-z-&T5p_9+W9;{jvR&o4#uHWo;0TkL(DBN5rBF#5%NB +zoYJiCEUoQK)Xsx9K(B-_*0!`Zh`4i$m>-Nu=6$e+Wl_QR5z{GLisg$~T_lKRuyWV_ +z@5#phbP9^IZx#ubt)o+C=H7(<>n5$f2M@&|xB1pbT$Cn2`AVSkn>%aJ_QP~dVA+W_ +zZo@1RX}Qjnk{L!U7L`u<2Jn88B5oR +zFi(qUHP0D^%`JF~Gh5Y;gm)5M>)hvhqHs}dDDjF%@Bf0R8MS`Mb(O^=ubBJov +zhlOI`Jq+toQ-+`GCh{=}SGEYlH8_rH^Roo$fM?_P^Dh$-cwDj5S_U0C`a$EaZvp|n +zVyAa8aSPblHBmup6MwrN2#Znvg-Ie%kM`|50)TsUqPZ}5IhL;)(sXarH0EX3EehCFqL^?&jZznne(^=(We#b&v{vN)wyHPgi*s +z;3ez$Q5E_=xKuU;gNeS^1@5Z`6~sNz!e|ooe;XZ?#Wd#QW-*yxwh99OpdIp&7jg8b +zpsV_Lhm9XmkE<~&UFu*q*n0~}4&y! +zsSLkSCvD22>)h@Dp)J*rf5Nyn#%aoVZ}y>^X?A;S9Jb3rsRu8>H2SBTt-rLHyF~qO +z6?cLfbTss7>>{TGeeJU8bkVta$;r*wT-@Ox-}~YpCT!1T_s?xM&qTB35+%i9T_a+$ +z^$8zyLr5pUxN1$rjYDbE-{VcIR*%tQ&;(^94P>Wdy){`-r0)iiL*nl_2+T+wC7we( +zmkCvUPkx9w=9dug%S=f}X*3ltPA5?DlQ0I5(RvBnOUjXB-3D%AV9c^reNqz;fed^4vinQfyEiZL2z-6=Vl#3G5pT +zstL$JHvsy?!DqI-c>fxXAEqaheYz*5zue6O_#xxTcjMRq0-YEOZ*BFcS@eAhW5)ni +zM>fo0m1bTQV9QvLWnJXfB0VRI@v_SPG!LC&4l<3MpcSNUlNNt`jtQa9LMG$s0d#UI +z!A73?g8Z{&8;m|06hj#RWgYy>5H7RDe`v>^XTk)b18B?FhO_wP0R0OiSh#n4_Qe0I +zc=%;_9)$k~I^B%qdeT4n(3YU1d +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 +zwZtS5p8B?ds?*;OLdR!}h=ad9#MrxmJUsz^ +z(WEXYb}aL3-1F+V^yiTNkw13<`p<;F(Khyc1^hk&fA_)nUO?8U5RXX^;{46d(W??? +zi;TLmkUdr1>}HzQyJ#C#^=JO{B0c?`KRrQDVgB?WJgpmnXsxQ6O_cjCJ}F(^MTd^0 +zi&mvi;QAYtyoNu`pr@z#Q!zaq;7{Y}$(hfdhSSqc{3(;3UguBU>FF?k66h)2!}s^I +z@aYQv^esL4`O_|XdYwOQ%0erKwX^x&BET$M!oIvp`P}^J8OpalF5i6qrHZ~xyg}se +zSMm3EPDhML +zUb#C*>~MZ_gZ^~xpF|=5={)#fxzDioUxNy{x=$)H4f`ts*Z&H0*pZ-;X;eQrv7;P6 +z1*RFRMXw$Y|JQ$Gi#iAaHqkT3`hXREghyrX(9>(!Br6zB)ajkUd>`4Lid5t4_~@o_ +z{D1(z_FcNJ_E0%SgxV?hLPtQA_@GxV!T-H0PFwLU(O-czeXgVcQgSB3av8wVNN6-R>+D_lE +zmw^gBT7T?Os6%=urEs2>qR()qHri-0nBh!=7xNkkDn_0Ay3+v=&DZ~fk*wZyy~u7e +zCcxTpm$iQt=tt64`aDgfjg4>@z&!fWF0(chmlNu6g2^;_ZjJ%n*sJ?ZFWQR61c +z{>ab{*^A8Wr^z_s2?9pSUq%?i?Q=vYTcoE9?X(}m@clz_^!)Z^@~)+;XRhH_dhw!$ +zu8x_>1+8xfW6+%UFfahypEuO^N6^Dt^zc^?J*=RI;*s<~Cz$H<`C>FYpSp!T1n42e +z9(?q0`^7}P6^448iG2$VwT-1@L$!M-b(f*0veW`YO=nHMPQ^>u>st(U0ZZL%s5i6J +zTtmHurOFJoKP&Vy6`I0c&oWded;L7UzKXq`VW>Im^*`wKO!j)Zp^j#+pP|>+v)84D +z>S3>+px1NR>k>oFX67DVL%oB&D=^f1SjuCl6)ZL0P^(xf&rly^sa!*Sl%;YE^(BTZ +za=oaY&k&Pss86yC&d_x|;?G~$$mw(%Pyk;-xcgi(Pg7sOFk|jbi;^Jy3fi}*w^GKS +z!`GT6RpW|P5NJ}4hEAc!WjCq^s=&NCp>hyvgEuvsT}^?V@))Uhr~8zAkuk#|>Q7=d +zTCZTbqvp|6vkN+IhS!C#Or$~{M`bG#^xdC|o3zd9&c)q~DEA=XK@~?D0_j)+ +zia6Y@l8XDjSXga^`i<73`*$ +z(w+2`%h{8BUU2dl`$>;YS~>_SZJs<-J(7qEyoQZo%uc` +zXVK|SX)O+O8V)lKm$mY1yUd#hgT9TG*DSM}(66Zl#lh|YV9HmM-ac3gpsZhfNjuQt +zl0)G=zOUPB9vy~ZP&y1Zr!zjXxa*8{7=5VMM0Ptsu?bbM7gykmy7!`#fK(is+lO>g +z;-~M@2()USp#3#WAZ>4rceq&O9;fVYfP|nPksiE=_Ou_J~p`_K(By#B+&3|iXWZ_tl_yEhsWPC +zV9EF4eHe}^ZinSZU7) +zw5SEBWIAdL>O-(v9Xw=@~@=e>fXYqj(u;?>B5Q0=gfXGbnO&qKw6w^UA +z@r5_viO%F)-)bl2kzM-RQ)be^GgLhhb(jEs!N>Yj@S7O#8~e_8&T6|n+V<^`(oO^u +zU`A)bEYF-|5lbcG9>Ii3)?~j@dz2i}x|&FO4%Cs;CGAUjoF|K7qLn+0^sXTI7VR>; +zT}7D1R8cKelo*6pg@HP4m$Jj~bS>1jX*)oQ0Wqhj)qHLsEk+*-9i4jDV$fhql3?Jt +z>fCMI`@4L>urFP8MrnemwQHa2D=9;Yc1k-LOiidswH3G%Me;Aj{8#`C33Jp`r+aU7NoU^qnfsvCO%C+13EXrUh+bi0H&IY3oQ6v +zKA)MCJ}A)4e4WFCpB|!5a=GQBnZLfDy`HNxNzQtG6MKC*4?hs?KYM+#&LlbO^%(ZL +zf6OByy&k}zQ897>I2(r)d@a?re&yw%#1mimE(+qh=CpiCM +zeVQ)2JHe`1pGxHco#4I0`s9_osE)oxZWT4=n)<&G7L*$?bi%I+3eN*e4;^63P=VF< +z@%{`~dqrA?P<}8clwh+>Y#I8LEkgl3uuAw(m!XP&G-0xF8M*+Mp#iWAb&Feuly1CV +z8NU3H%K6qquxrgS5B6Y^mciGgAg)Qzb33iMd_(wAA$kfz`!-ilFNh0~yZ*8`#f>ry +z`D$PI$X3n1KyK;Al_DPkM{tq|=zmw+ +zBCYMO?gJha#S8GD4k)>`?>ScHq46tozj!R<)i5j+``feb{#!$Up3xLm!(XMmkw=*M +z5yNSIEz)BBd~C6nZ-OD0=g=bkQ}`R5S((#_3v6tzg^96U5V#6L4LgFOs~IS2A)rPs +zjCN6kSHCYrDhtnPV6*9l(4CASKObetR}e#xc&taF(|~pLt>nGlUKsT8$jZ~d!GR$mWaZCz6kkRvz1~18nI+vSVSxW +z(E4){?aDI8`7J-8M^L-PSB43@4Q&seunu?4D&BR +z8Fz~!>#91FdqP4el$&$|LDSs2p;8}0m8|xgt=iu?k7@^YbYBdFGFyjB1?I!&F#>p> +zaHGwPp0kc-nkpK{h1N60WHnbz?u9bi27{3r;7n{YZ-Q6iZhy-_sT$*F(}nc6oVSQk +zHjst=JHHQ!YlNjvhUBMv)2Etqd^*^hY|OE;OBJ#wZ@Lx62*&D|9EpU2jHGj{9@X`s +zZl_oy9ljg7@iA6(<15gY>p6J3`kR^7<}y3=@!!Loexs%ipxnYiiO<;anCR=QxnbKz=|5~A1oPLv)Q-VRx^EUaQc|`&Aw9!<%zzg#F~<^ +z9j9VH=uMxvJ{DLj*bgPX)*LBt2KR0|3fn2iEn!l!NfBk7~<&(I>qR*&2s=wVj6CDrq(Vt-PAObWxkgF}0>xX&TO4^grR^oOH +zMTVCGGjTMhpJLe{ml?u?&G_>juZwD~vp$5-7r-k*GMk0z8LEWij +z>HcBZ_eKF|e*e5i^`(b!cQ`yNYL5+AXxARGu+XBf8pd#??N_?S@@HedGcj!a3~0hn +zlDZs*tpmKRR(l-VP{|8a2_#;j1mTvkHZ4t8Ng*Td`ASdh8Fjcx8N$9a(q=Xtcu={p +zr{jHyO(hzkNPn9!;(hS6z7or6Hp(t{Gk()<4c~(;TvFE!90IKeHu@KI>J|q?zZEb^ +z)!)zJyXbtdqJeZFM@=Fd5%k^Ss)JE>$KVO3CPfMRgug|U&o|^GI(=UZohz_x|8a$A +z!^^zv(1Z*kF6~KEI4jyDVuYF^#SWuWn){y@I+W?k%J4X)_HOv@WDlGMKwYEVE%%P< +zL{CA7yTvGo+}p+1I_U1>zSc6O+q}jCF^Snp&RaniZW#5*Kq88W!!|6e5F63{peJs% +z-^KPb*>cd3B+RQ^gM%vwiwDHKlA{f0c6ca!)>W!S2#<%1FHuH$WXFuoc-_DK|2oH4 +z392oRh(ZJXFXV|eTx_Pfu7$&08YZ`AO>-UL>J^=Abc-)P%_vXsH`=6k{Mh`w71G*i +z?RY})5129YkYDR4;3tZ#{!Ri3N+yRohK +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 +zog= +z?%w_`qmP!LSh#8saK*z??NRqGrB}^{@Ryy|TWuLfYY%Cy37A#q<1G0ow=S?#QrF=u +zvT5zc9mqqxKL%&h0o{ZQie87*4D&)#n@*#VGOR15WL=)Edjl&_-=PWJ2EEG)_he}e +zee0P2Y!jI4oblR^!#={0QD}FLFB{3wyaI~HU3hMKm|LM(C$k=>dH!iM-5E#V1cl%f +zVSK$5c>fgcFQ&x!sM5!iuk`dSP7st-y_(n-Ze;;q0uCGcGh`3!Q*M;j&WWh|V72Eg +z>G8a^#FCDNGviL6FgTuhBbrdPV(+!%C{qS$zzY~%0b7y+3sGi?V@qf)@CWQFdMiN2 +zj64Q7?Z?`-aH2F&5RXpQ8iEpvIq12DM$XqdMEPF(M5>)8LQe|xhgns@F?KnFIqT@5 +zmo8hOHp$78@!qAqjnwA1q_usaALmhP(Y{!#bq3)(zCY%p7=?)X@uH3Q<5^1FfWWdl +zufPLqig5dcDhxt@oc21?7O0~&2-cs_P>h>}2(NHv!qDht&hf+Ah8-~P09=U;`LZ+p +z-oDoMemh3yT|jvY=oT&%0LF3IZXekaI%!Bc@}EhNRw#Q+4GcW;XFgM>+Ma(=Mgy&0B^_2Dl8MyK`!X}3~sS7ZVqDew|Z +zd?d-gx0Cuqs_!ZDu3mIOf@Mu`n^M4!`RbG}Lib}vx;9#>mjP+Q$~m!}+*fGZ%$qSL +z6M6i*t|fjn?Gth0e|nM+4ZD6|uEp~z@5?Lj+wc~oAv8NG&^Cr<;zkxy4+yJPK;r8t +zw{wQ|dLO*z+yc^QmTLD`q_(X3uw7&wJUkY&~yo +zMmPQ#_fzu9&J2?7)h)+y0x_j4pDA6a@1a)4^u0dKR{TbG5vkEvj#q>PJk;>{=d#lc +zU$vD`Dbe85@VCJi#GelSa@c*Q>ku#iP4G7U>7;Y(MuzI2n5-`%*>Mz)1%`qI-*^pleR +ze)NyoxH~LSt +z>UD$Mj5;ENK@295Km=v~8SXL-*kYN!)Hfs=u&iaoQUn9*aM`a6Tu{A +zlZ5Vsy}ECi^IsUfRnsA#G72T^;b>qn1X+JKW)Q;*({d&STErMU05AH=vqmPERLr4X +zb`>6GPt-mqr*3{W!rCgNF5RCtghmyHp55%)g=1VK{nl}RaCgGX^9m^M~V+$qKCB`}?b)*OC +zCiO7o?q2Zww5LmX&-nck0AXL)0bka667LyS|D8P^ik`@TKQTW$h5~{iC%zDV&5#Fd +zFABc^DDk!4AU_ks%e?;tFV~(un$}kCo67_~vf2S0+pc_UPob;#T4FE*aY^WeSn1gR +zfLOYmN0M&-(9R~C>xip4+%H~#FB>Js@)bcwr7KqdUAQ;yUl9I4XrBL3iXn^J +z!yj{mfKCKr+%PtD=ur%>NfAzTd|-IVy}?0RNI3C +zROZZOohtFUFH-tQwcb&pwuQAxTPNBcWu$sU9yY91dlR`a@V4_Ab>n6(*;wbYsV6!@ +z#~rkgrt`VTu9Ys$KxW5Wc>?!KoF7RkQBFb045=1mK>bey$c&|V%?*ITgE-yMP2~Ip +z>9;L-Cy=kynPol;S{Kv-No_CIN~cLD!w(?V?*%|B;`=#31k)k;2mDD@Y1_Bj@d60mby$Hy)UaWuCCSTj{ +zC6%rQPKju{$i9au1dAdgCGUEv2=x4G1pPr)-$TfYF$MyxWGCh~r5L3t+u^%dq_1Kb +z{sffuz4Y29XvU9-^|vNydl!$;;Kj8|AH^4SZT^;oB}e`Br=dB-fVS!6*Y$^OhW%mf +z_^|rR{jK6+r?v@5A`{CzL1o(gEh3aTD26lq8{6?)_+t7$8S@~5FIStEoPY;tXx7qy +zSVKB}KmLJ&E4^0cEYX+F<%>XXHoBO+Q2Pr>CcDBe^xi0tn$i@&3*4440z}!HXydy2 +z6H3+Hp2NF1O}K2A>}oaXmfsQ5U2%YlcW`Gte_Ln{YI_FYx|3 +zFPz>{O}hODrY2zpN_U*d$vA>4+Dfv!Hi;o^8-ph^#;&ZDdRVl+c+k*;$1ecj)-VF7{fMq*VF_P`AXX#Q +zFOBgUPJXvX@IujWlIOHf)Mk(l)8q^~7U|?WyDana|f+proOF3F~wL +zu2#KZ5mCCs%M|wV1|fzC-}niVI@=E9yHK1U1+Iov<@;7iSO)QqVbD1QkJ#LToKwJR +zpzxl-gjh9Ftpn60WuhJ&k88_k!M@=u$wYN&U`PiORlvl75}0?W(FP8&z#M3@5!#O1 +zb-?PV{4c?N(%MhlJCr*Btij4HjViW^`$xbKb;HCqlQjeB3i$V3T8eHE94=#~tyo&S +z57brfam__S?RH%)W0WhY{}gGLVwQii4J5=|LoH2VGN%>}y+TU;ASE4}l!r^TcZu#@ +zN}_L}ZLpl_-XW>zX#~E3YL`nX+hFE1Fdn$vH=vN5EY%i>?(Nc}^}1>@Hm^ouwdpFs +znrqBV@Hf~%04+MMJm%_|DSrC75cRvf4Ahn?eS3Uurjwmf0KHd +z7?TO0bDz9VzNFS8)$i4aLz1TiQBU-ZA1dea8&x5+o;XLZ21I-H2Q5g`mGLl54AG_g +z|D>m5&0p*3>BaxDr;T2fu}vmo=K3ZM*7ho0i@A!J8&2bQ3t+Opv6%64u1sj3$yfTkezF1dKUNufk%%(#Oa6 +z4%+KNHWWKPOrLZ8S@F;<|C8waFje~q$Th=q8oCZ`#teVODQ0gP?t;Xe!HD@2PRv_k +z#GHY?HcYx<&`{Zq@ZF8utmvl3ym1lKl!^y$!YAJ)%g%Ik#OV`ArcBcx$pl#S6#b

    IcfYK)lYLpY{&UE)v>V1Fqj|lk +zT!|V`)h)f~jL5w~$v1v00)=D*CyV2E%TDc>RJ+^XHn;o^WBvjEnJ!ZG3sA>eJm8W3 +z{-fmoD{AkJ==VG$JWj7#-3u3Dkiq&kueZtR26q&VyPw&g0>~S}J>%cK^$EU1J%V~5 +zqTgoL0e{==<%5j*PeYUC6ZDr~SODBe+!i^++d>DOLb$=0|FHi|N_k(%P|zs@+NXw} +z)8AO#6UCON#@OX6Yd-XSxZSnScRIOzB-$D8i^@auH>6-8srI)KqbzNEFllnldf)o( +zzEdf8e>+V(<$;yqw?H(PA!0&PSk!R3PkPV&C`*PWpa*N-FiH`jVR0{rO=iTsz#A^1 +zq_`JokREDokG)977l-0rbj25+vKOv>+DGBE4&y6sn9Sf$vf#eQRsW4${}b!|QV`+E +zpHa`RF@W9+I*!(s`2C`~?coow=+nMaiFa?r)H>g(F86+bJ)aHDQuU#$A+-YC2Oo+1 +zL;Gm_eS-hK!hg{Y4{vbK5@UI9g)~}_v;D~iAKqyeH_TfR^S{(k^%=@;pq!-%@&LW+ +z|I#e!jM;@1Ko9f>m*ZQJyfD#z7?jUo* +zGRohYFORNl#myaggkJSh8ne+oPp|6Fl5)Rb)t>;GJn?x^?%q(f5}`$JKpAs3@F(*2 +z89u`Lqu2Dml4K~mmSWTlWN8P;e!hWIL?PZ^6u?_z`I{OoaW&gZFf-V3C&0Y-a6IhO +zLBtE7Lc-y{6yTQv0A@~Sq8^#f-0e2I%|7)2~t_1zV$FH)d4?)X+6f@iVv +z6mEDd8D&%*_?dVrhA6~yUTN+6bNQ|?U;GjcZuG#Pp6(`EfuF2%Ve(1xSBwp9wJm$} +zsxXM2BsU#etC-4@UZze0sM|tLoF!&jrwq15tpgUq0Rupp^;% +zRD`=ZP9yaxEMt^DWyb&%R*VkwI;bE5S*odefx#V(yu}f{)7+bt77S$=!nn_!);ILm{ZX)ZjK`t$Yc3v} +zB?TVBT8hc7*^*JP+!vRG@AD)pi}b}M{>IX9W~cjOlS#(AdOt2^bAyvV^@wu+K%G3y +zV^_ZMEjcYHy~6wA_e+wf8ijvj`|NE0*H}pU8h%qw1ZR%H7Os@m7CTft#y|;H +zOYPdx4lOO-2Ca@RWGETIVuzp|>c4g*Z{E=&)!Gx2 +zx1+l>zTidq5mb?-&na`^rjk=z&$fb)9^88uW$Jg#a#ySrjH^WDXn1iadyRVco<*rf +zp{UQC<@W>yyz3$r~v`IDMiW1H6}$^(20 +z$#af2$-!*IL +zukhwcNd6oZ6y4`YBHY;sUl-;t?uf78ZiX+6p5R+N#vujJhXpISH4%p_8?!yIo8e*I +zza6kx!(S!hVQe^=+b`+;)qV1W{0Ff8NmkeZ@-LalU^sw*RJ-bvaJ1}hQ~3z;r}!Qi +zJn#x9-w73w`*b-+-Q+*jDO?aHwY +zo$aUf>Pwhyd1lmp8rEF0s%zaP@X(5~NLn-SZ09qAb#PApVi!2M=ST-K8guwAGJ$dJ +zGYdW^Uh?l~N5h@-sMnTKR0s6x%e!znbUJqf153yZeHpoZsVQ|{1IgDJYbfKFq~PsL +z0AiLP#LRus{Fg^vte}}MI~Q89Lg05U{W2?lS~%)tkLBPl@|o3hP^!q$Yn-Vzi*DM{c#DgFd>StwqKE7fqwow&p6P(oQee+sG`;e-h*I^-jMQ;< +zIgz@x7U@AE{{?{03g?VUcpr(NHtE{wYVK@bH^Z5YDgZ^?#ej3AWXR^_lwH8qu5^-Z +zSKwtSNh>LV0wA>Yo2QkO>Qe-*#0%hMYbADdpX5Dil=h4GH`@J;_A4t}v0a2+TaQLE +z%0s}YvM_WU5F0hcT|-5i7>v4|#r&23hfsI{m(32^& +z-VEnlZHND$L{06e57}8d71IuuPQ!F6OQ&Nxjioa%ozBvkn9gA7top;5fGp=)oHXGs +z`i!?6Q`MbHk}*|Oo0c3k-aUiEGrfm~< +z)JXpJi1MBGC0^Jj*gaYtpP#WhoCM}6ZL=fV%sGD;m5rDVB +zpMZgc{2yikkQ-L4Si$(w%R-E^y&^Cdox0^$6za&sZ`RdkCCi2Pw9u3r={b;Xr*C-5 +z0}5t8d(<_I{sdi*gKwDEru+`gxLy)akTBjn0+ePfeGWr(eQrF~EmaiA->kniO{&IL +z{dIPKgT2t*&$!C2gmg=>vw{Z`hs@t0u$XAM+9|Seg)cZvP;m$+N{*uN@DMK)o~Xl4!*+Sbc&8srELHt?v>4Au*hyEx^`c +zfj{Dk_$mNXQs6vh&Yhz(q|g~U!xt*JIF$f1h)NzUl04M#h?yt{whUvpj&e`JFR?+C +zSU|R8_=Mb9!Q!#b8jnLRTWtk1#e+cV92=gpK;M>kp_3jD6k_jVLr3 +zU$6TEuIXripjWPeVb9N%0_Z!_sC)>Dxi?6U))`tQCbxjt@2CehKNLEJV=JE@oQ!A? +z%cECzD`(Q;V>V5vU7K7%9?n07bKGrOtF~83az#Sq^ON;N-KYE>-h3~jjT>DhBc?Kb +zCO2GF_vwswByWp9VpA?4YgH+*T8M?H?>aL&Jwj;l>W_$$x=M(>{2ODpIr)#j2UCWL +z5_$QLAA<)OUe@EUGyn08_?wyk_!|68&wm`}mz1V$qplZwEDvWQjUNm@sCo7P^QXc1 +zJv2?WAI)CpP*Kk1Go4KdMhld$%QaChfDq4{jvQ(Rfyg2yKF`+BmdX!bj;^6|x1rf# +z$MvrB^GxVLDsHB^H_JJE74cnhM!>VC?Q%c&Cb5WJZhEE(ggKj~`~ +z%O^=|OHeD8^Yq8I1I+n0Ik&mqu8i>4S@VB5&Htf5acqX~z;W1r6U@FuUy~i(3w4*) +z!ny;C)k2JTR>6=S-qOK84_gnuu-1dwy87fPf!*yx=NcS8cf|>A)?Kf;_yF0*v*n|a +zQiQ{|ceD!3NmXorkm3%F*~;HnI6XX83cWvnE8WjHiWSaD11^!EElx9HS7r?!a2GIN +z_GdQb(s3iJF<6}HaVY2WfV?`lH0BDU_-AB-sWtV!`Ziyy?d}1M#S~8vO7zl;?eU9g +z^K=qBt@xJ|C-nHIkqGTwmgoChE>Q|yO}ctbo4^h^P*lY8F>?XNL2g1g66KriXJAeg +z!H7gppPFlD`H{L^v45%9PM>Hc}>Bd2L5q?#T +zD80k|wU71gW(e)FT5$)c7qZgC=7O;fI)&|n0EB->_a6ALU>oHkK$u*dys0l_0 +zlOrg32$NZqd;F6XSZa~u?}vC +zji2ExlT=(-P_)mV;k-*y$vt&$zDrV3!P4)t=l{{pjJfmzM}DD0Qju@?*E{f1Xb9;X +zSWkthbZG#6D~X$w|0c#kiY*Q@PG9-TDdHfbk%L@hagf;Z_520Vo6W>T9={>RL|7wE +z_$d=%q5*;ALsLqx7{?!FX$VSSLQ8`)^juu02Svvqm;JpaN{ +zAkbH$bfDsj9fV%s^pUFh&cJkidI?Qju^e~AXQ)k!lc=a{({=z^I-$7=U;P=J*@K{> +zy97B2eq>=u9BhLSwx&7ElnZK+aX|jTN8&BUD@qwa0bG}2B{PZMc}X%{upp#G50wk^ +zF7|mLR6NU=;arFU1JJ{C+@Q6B7B+T@mR#{O6BWFdM_C@n!V2DR7{+V#5>FW8Y?lI@ +zHK=>L>S!xBM2-YYO7N3j;+59jRZ8!1yY=s^TPmK*0z}jO_jv_rWxZ6p$JG?7VlOd3 +z$U=9$JXBwK1o=)+SXKMG*URUrO-d3T?-t0>c*_sZj>2Q@kdkaU;Rn2YUP;VEWH57% +z)=->^0^eP2k;utC1R@moFGMivq}tuCI;|eGYP{9D?*3BuNlB%t0qU~5!s(QjeS;m? +zC#TR8s^t_leH)|nvMzGIe!tiKF|3GB672omZF07Ii|hne>0qnAoB`uow4F~9=*S@& +z|1v@l)43~vu*z6imO(#~FUm}(c^;-V=#xwGCzU8;^hsWQnisG%E)Gj0082w-Sjyy^ +zOT3M65+o>=M;SCWRe1&nz|2ixyDZ^B@Db*91}>KudNZ=5KcBi=NNM>{(zs`8L610SaAmPnwf +zhI(@+6n#bn@^xqqeMD0;m4?>9z#cCFjut$*w9z)#G@S~KR~0@WM@$z3`1bn +zK8B1QYhfGA=`vW^09TM7Gy0~MT_N-R#49$Qb0)gIU>4*)LtSRL}ci6E*^z+*Qc +z%cfdF8P62ox)wS!l|0b_rDy6Zvwr53o(7a2Wdg>v +z)Mx7dv-u=XdF*m`PlA#Nv)vxH)10r<4MN1nQAD(An@;YQO6%Pll&;$DdUK$-dq+#y +zChis+Sq|4ewD|B?Thj68;|~3gJpAqeyq$PIorRm +z$771yZ$*=*Z0#f6zwIX>=CQ)y4o$gyY9=ig&>j3U$mNStK?nT@6BB>ac>*1HkW}6X +zRtlK&Ejib`&>ke7o(*ftgCbLr|5=D(u*KLiP&ApK=umm(e^PmlRk@4-d(A0@cqEw$ +z(gAYM{8f97lD505$1wr5-Bkzi*_prU5dLQ7uiB5l>G`XE!Qa&URiUFOEM8=%QO>2S +z3A~{V1|E*uT}`}FNB*i~@T>IlElN#Ly1AO5*#x=Ed$_oL@|6}Bneqj67F>i9rW3Dl +zV2Gz{>=anNU0>wT_UN-yQ2;GUiR?2=Tf4x`g+2(XaG% +zjhEJzz~AxWLy_>SO57v+e>$fUH=gXH`gK&|GG@l)FT@+)u-E^`>YMs@tp2@gV$}n= +zqfEm|zPt0*rdQi~G(vu8*`4)kKQaU7WeLMrX2Q~g8hd#}rwHu4jC^9`RP;<7{ +zF@8I3O8COW0n-|aQj;2s2=$@c&|Y~F67Xn|ab!syCZ0`>c{-{s4qYN{^~m|h&c&_1 +zoI$$~gsc*~zK9^n_Y;u^vY^&{|1Xs8PwD-X?nCK=l0^{0N9i7ve+;Et>3trhyV3j082dOM +zJKB6TT>>w%he!Tfq-=(~$WsvO79Zq?8j^|ona;rAQ9^T`kpPhr~XN&t|>Cw7y +z7x-b(i=fqaIA@?)(v9W?O%a=`DLOxBW<6OLo3aNlgYo_t^dzY1sk(44_<6D}oC-fr +zumrH#&>Agi4oc1CED9* +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 +zumU7Nq~X4 +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 +z5OT!t9=!GB24lVY90kV)8?zBbmG9yY5pN$B!s +z-8H4!_JVxxI4^N}>RDnAZp&O#iUW^EX>`vP7Z-K&%dZt0QjWk$b`akqWga%7-x)Plig{H$LKy-I7026CfUs1Ku7nn +z?Ru){7u5Ihq{!9m+UIK(73}!r4jl(}I9~R4>U#la58nTP5*GC#Dv_;0M5UKG5x#fa4~2T0l`D0>x|tg&Ukau0w935EYBjL&B+$UnxY(KI*kM>w +z`zhQ*JKixK{blnH&kcGAU6 +z^z$=aN!1;qjvW+BodrhTD7|!)*AKJlK5~=b;CFaCFv=?r0iz@zYu-^#$~J>zEDFr? +zy-}ZnuijB*da^OYIfF!l*p0YziUv1=N*T_F)oYwlG0F=J?TGGuH7Ab$#6bf*Cv4V# +z+aAduRk5e@R0;L|^{FzuyERp`15ggc#Y_?xeHEaP_-8mh=<@hP=w949L(OGNxMwH( +zrVVo^2PcuZhHfp9C=bzc>fuCL3M9E#Yl%s(_g@9rm{jU}phUROBdxn~x`hafgWUQ< +zdt?n${^UveEl%}_;^B1q6~df+A=({=(Y)1M^EQdOJ)lB-Y<~;p*b%(juit{P56w%C +z5KoQ{#rf$m1n)@yb-WaHqe(J7;zQgtu-+h6N*Pu{cINt&wuPVn4Q(BG3_GgWBm}&j +zPQ*1mQcbumBR^6(mLFp*bTtx1HJcUatROSC&1|lUM4Bg!&5~2}NtUC6`tNLb`gSIR +zOoTI8;9;uhFW6MIYfJS0VfFsamSup2(yA|kDKEbjr&#sn6T +zIHCGGvoR0)th!a)p+81bVTX1mc>UPAa2MY}9&4{s?9z +z7PV^x=rFD(ahFtbOk2fYJGEoO>gx~MP#<+eAGB3iDx!03lKDhH6&T|6OwR-OF48!*8{{MnLr?ynKv97V8UcFd3ijDh$kqrqKM*wi-;?Pg!@nq +zT~I*;S&tb<5JVw>kY81GznM2l(B1v~zn{+^&6|Gxs;jH3tE;Q8YWIx0ne;7wc?&n5 +zT~a-31=48rEaCltWGo4UIM&u8mbZC72@Cb6A>* +zQw6HWw49Hd)%Sk``qT{-PcyuAAw_wMa0^ER=>l6S{JNgNbB>_118r2=7VhiJ>7{MM +z<}tKu2^IWcD|+7S>^baQhq}+*-+;4CQa_Nrv54&3(O4j@G7paCh2~W`c`YwS-DsZi +zy3tq+Y7g8lQ&Mok_*R@2_Th|xT9vbqPZ6sH)(6z8Hh-tL1huLi4_Vc!^{-IKqE>C? +zp)P9GULML;T^$z^CkD7?_lY!n_C(NJZG^dE3mWO@HPc*yr%04o^TsC<+>MRS809L@ +zPWcNd%Di!Ag1jRTA%B6Fs3m7Jlr$mdY_l$x%c^`xZqg#YQ{P9wW6K#qvbhb +zHacR&-0q49a%5;P>>~%;h(el$hcnzIn77p*efiJjCd8WX&e`F}tRtQ51{Je`#ZIgehw<#JI +zRcMNK=}5kqd56HTU?dA}z;ut~D+5pHuoiQyd{S~big=m_Cp*&26?+*DZH6Ue0E^8Y +zbld~XQ(^-V#Gl7B{+w3EShe;3c8^k*__h3-GTo|?6g`q;Rz8W6=zHlOoUpTZg$Vl* +z!a@>`-W8(lv%7-r9z-KuR8x$uFZ5ZUx`4jn&d$VW^d3ydd$1?|9s%au1UUMmU;9)( +zw?dd_-o?8Rv*)Hu6bsrG(CD46OsmxP1CV--;d7(PKSsO{4C{wl_@k56oYy^(e7AcE +zZ@4!iZgqve<(5TI4WzZIh5y4%+d6SEf41?yv56uVZ;kO!zVDqR@7bvnfb#xoNYL<%_PjUWaTQng;(Sup>j2;?;cpvWIrd~ +z*-9wgbw;_Bl1$JrLNx361~}6 +zmmI+J)|F9$=Iz7C3Yu^FhbBMwy~AmLYZ%eY{TmFUg&!0mwbCa9aNe*`-giJT5_vIx +zdtUh8MfxWb4EplEN;P_nG)hKb=W!%bt!#Ln;~Ic)mGhAG#FqX&_M^SH^KDK`H=?;v +zRP1%bNJ_<#i?H+Zn!K6>jlQ9X_vd#>ocIBGy}xWx_mz`ZV=H<+0!D!&t>}j;<8^~{ +zhg#X;IgVx-qN%NW7pH;nJyp;p4@J5js}%JQZ|=5`4Z5!u{tq>Iuk5j!Z$cTVRJL0! +zCI|*#6Hscm5?*zF+se=muL;vBuW|hCp6MLo8XZK|^k9qD>C*w4d#`WaVcfk}rsDnZ +zU7q)7#k=fXk@q0%0pN3t>K*kg<38`lS;c)_rUZRwu)&4a>wT0`qiEwaM2}sVv#oo} +z0HngV*cIkaE3Ev`5xW~Aq^oiAWTaa8`7>b4j|MG}Kwi}=k3Pd$m^OsB^OPaT*cSw2 +z|lI5AX50~?XY+| +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 +zuEN*)^R3Kl=b3R+sH-6HQ;P>V()XK(oJP;; +zGQV~>L3m{IJ@^pcazZ}%Kd>Q=Ht4`l)*bb4J&uWM{uJ-k&yo<}H##GHI1gfa2&eK@X+v!1VH8~sd*V6bOR`-2^e$$-CD|< +zwtF$ei-S<+4^mQh%KKz5BF&QtUPwvXfifj?pKnDcfTmJ?^Nkc;f>#HbJuo(7sdc*R +zgHSu;p582-VBpl3>Rl(;q2FmLezg;|_~Wa4;K~&uJ=9`_(2~TRc6hv!iz~i#AsmoC +zy)R$oQsz~`;Dj0K8^77+T7<`eH}hY^W~FNWQzUIwFTnfe?JoR5!P$(&;fZWKqS%v# +zuZKf(PpwnNSz|!EXWz?T^44sC-&XF% +z2{8}galaSH?PLhnMbP%11jXI%DQ*9z{#4?p +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 +zJlny{l%_e?H&`xv&V?S1)f +zXwx!_D}#J@+@smTlAc?>e>6)W+I}s{a=;|?%`ocBpg&PH@$Yu(O8wWOFhR&We_9FvqPFyv8dOPJiCg~RIgx~G_bJq7@$AQ +z9t&^xSf2x`V_X*^r3Tjpi*!aEZg5=y=I=(O_;pv<>?-hr~Ut**uTO2HPcUC#J#GT*dQk$k(T2%_W`cY{PkK4sXw4{FQ&!ad-pC+4W7@ +z|NqSI)>K}3+qthPgHxb5k0HC8(DQ%BZ;}6=b6+FU(|M5px5)3yP3*(Zd4sw^nICLW +zzCg#kmfBM`SUc+9$Q})T7o)S-u;f>0k48v8jO;sZG+VIxB1cgNcc#Zh^vXc~dn&9C +zg|1c_jX)>wLXT%%Fq$pYZpTk5C5_Hx`9d1!#SHn!@BYwJGO +zrDptt=%ubpA^ySpMtm3iI|%iMD1QO|ecwX;{a>|Ll15I%`Y<8FTVVoGc_H~}r^|mJ +z&%Yi-NXsAPhsyuI$?tBVF21Z(IiBB}>E0X> +zhza9gb*sU__Wwj9f~=&b=x5Q(@B4wYi@rGHP?3dFX=aX^YNYvD8mL-T*(qPO^Q9mwWu1N +z=-0HTP}gw%0sY0U;W}dj=M_gagHAo0=U&f63VLVc%j_(D`OAW{u(;ali*AO%y}iv) +zjl1dF%JzVzkxQM`J*m92%0G`6(rXs5m_?MP^7fgh47H+UZDO>fu}KtEOe)fZ-t$?_ +zO85vB=BHudlcc`lW{_l`E>=8Oi`?Y^KaCu$AILvJ%O6OQ`8^9)pv0`lPs^Puht~m; +z+4Oy8GeABQnm#OiCe*jS86= +z+7vM9N_3YGZ9=#43UrSHx_#bc{d|DbL3O|2WtyLHJ7#p?D<~dcc?w&-;!DfZGs4!l +z^b1?_@N9)x&(7fM+0LuwQ{`K5$(tY2SedP>U;X`t56cG?_oEILI)RgxTIareqj|wX +zMiaW^8dIDS!M^t<%&{~ZuW#+$i7(x6lv$YlDxlGqq6T{st7j6UCH@*R5L73sayCwa@VW +z^+DdhemOX`QT{RziT&FT#>k`4zdzU*>|n$Dw?FA$FP%F=D1SEiTo-#vPa+p!SlR)J +zmQVW<(RrUE|R2KDKJQDA|y1b#XuIrG(#)=qqW=Ksu| +zjU#@kShp}*e04Ikp8>e`gjcWM4IH~YaFYo23QaG2qw##av4)P+qmQ@KzQe7EqcITN +z$M5TlrejWN&Z`A?g`iCwh`z3L`z;?J{}?D5y7{wV)i>zmV+@y%y{U~s`%B2j|2lrS +zDD1DJXdMS4YQp7lCeQDD6MGNrg|7cwe!#v&dGEQS9IfJd3lHcU*O4OvE|H5Ph=0)# +ztceIpr0`)fK*%G%Bl1CLO=Z^JuKvtiafsTgBL7rG8*FHUSnAn;VOX_UXFm=j`!Tyg +zozMs-JlT(6zi%3hqyDO`LHn^z*S@v}?Z-MQ&(@&*Scm*O0PPFy#~%$Rhh<{>lB_rv +zogx%NtZ%o0c63PA_S8DWc*dk;S7IB836uZ+-2OR?n+pq&KvL+)vC>C-~Z^o5K)$1ao8EHPHC(j*Z%sm +zn+HgK_l4F@E8Vr4X?Au#TR(s-gMIE@#-{5(pSdqal-=Pf>(XJ4Gef<%@oaXN>jyY} +zfn<4XaJ7kSsK4K)voO33Z-C}@&=xw+VR`fHk)YE%06o>&T{^fg8l;G57ZBP(>}WtF +zv`uh)GbD=F^d{Oe^mCWz@SF{SHat#QV8kQ&^+uTjJ$ASo`pq(FqOE%0eIqy=Al&~3 +z6R1Xap15-9O6niTQ`g_&<93R{f7>fx5g~EFLcf1dOTKEVaQRU^4zzmhyYQ-*Gv?<) +z$}-bHUmVt-8HTuWTcz?*h^*>j65fMaKF^2Mzw~MVEWd0(r+{CSby2;ZNkKy_4+}B! +zGw4XX1hoxa>Bt|ngXnoNeB +z=P%#rdY!Xj&cn*mG6-+?VvGT|8XlIe6{qL%)%O`>Ms9cMZI&+UU-QDVmOsU;5u3=G +z9N2hwOc8=lM&<_}!>e+Q`+P*%4T=|mU1g?5=8STc87@ajtwzY#WGp~h%r9=LZdFky +zr46R`e0GyTx@w^BRa_~%rh0HAp0VzrJc|gbj8Td{k@~Qq0!F*83kD}tmxEGZb+zI7 +zZ8MsfA9u+r@8Bz1)jg?HIF#vz7VpRu14mbOt>F}|gVg&H5etVO7u+6%n*e<~@n|ZQ +z8ms0T+C(%v*;SU(80Ab*yz8j+5zbDEckC3}{3)t)ak7?})e=R3I;}2EFB8HE2lSVbNd8Kg&nX*1MeT<@V@&cqQg>NF5tvkOP4}?nd}= +zCW78i^X!}vsSawCvv(V-BLaIwm`5UWz-oLkXm_46?w!tpPEi}cD +zjpdO~XBwnV@*X7kb6*3blrJE`8Nk)jWAbU-;I6orO-Am%ZiKfqv*+g4I7-?&894@0 +zK!+L7AM*~g2mNsdIx2X3Ck*3O;-TKMG=tm#1&9TGik4t$jOT1EF>A-1pZ$l7)ZBV0 +z?k8VE|40vUVBD +z`IF{pG*=Yj0SAcNE-s$e^%v`Dpt>#Fnu(9`_?V5?bD*niTvX}x2lJuT=8B!>igZvQ +z8R+EDJ);#GIQ4XOHlCMpH&`HVoR@0oX0BLBG4W;(`hArz4Ut#zF)}pNN<4bI`L5K) +znrdS|FrzwTCQ8=||G~S)(5)WV!?S8Jsm-(E7tM86H1N$oRII@1_v0Y#4xD8=1ND;`Wv;-PmQ0J;vl0px_`1n{-iAcy +z6S~p;Ffn*WTfuh}igE4>%&hf9^hD{(V4&y1(!)Rqzq|WD@~!6D!F2e=32*6JfiaNb +zP)G!t&UsMb>=`B4M5+zvBPso0OuredR(!b~lW#VA&O_mb26AbKkqHan!-#PDv9Pf_ +ztJ@6Cj5IIWRI$r>5{6Pg29n&{B3yF}xNiQRz>k(Msk011cB)4iKny(RadS+UCQN^_ +z4|R5*`p1iJFh4oIy&Nx+7Yr9x_enuCoJZ*1%*W8$RK%y;qOTp2pdI +z#G=SnH9Lz5=dHeq+h|tOWC#dz0q-F7Nf_(%Pq^6FXqF$mNbbSOlZw2#M+0(x6aswV +z?{|@|cj@B4Z~-8@vUJef)9%#mry;G0J!h=qwvkd5vLf&CO-R5EYy9@9V#Ie^9ceP) +z1WoC7oNWoTuE8JF;pVwQl%NqP4@ +zba~rBaeewI{L+~<^moCBmP+|78#fm%%2=8Nh*mxwrzYr0!v7_R}fMSdV^%bodcRLVj$nRn3dI!<@iUqRd +z6s-_i?b%%}Wa3zohe@gDylNr(7aG5XtQ?q<3W6@1C8`>)n}Y +z%z0zr*6{Hxkg%4Hx?*xA8jL_`H%2ZCMg~5jo+b&0f%wj8!U4*-vbRTz8JQa1@}9szb}B#=R81a?ezf=-HQpB +zaTiyw)Wbp_;yx|DWa4|D*eA_4ZycJC{)Kte7ql4m^t!`>3;@TXwL_P_Ys>NW +zSX?|%ToPsxle#kypIvGW1m!`4J|us5_d_Btg7X($={_f} +z0Wm|Z=|1x)U*G@$8s$@gE<;cd1cPz1+`Mr!&foe{ftuh%Wee>I$ob|$9Fc(JHcH)5 +zgz{>HhjFZBJI~RC9>$$N1R~_iST^2bg7j+L`Ll>=EYJ{1iZIH&abQCFK6!`pWVn3j +z=SP5mMIi$El9f~dM1ERn +zJT11NwVyJpCBxwCrQU6n+bMWAISw7f0d8LwN_t!U;fSm1X^&$s<(kwwc~gyiApMhB +zNlNdw?mDA-pCSFGvJ+~16(y|4CdEw0p~o72$GJX3J?YLK3|$I$c^xgq#?XXBIDd5V +zpL$rS8jg;7#reZXD9u>qo@ixY3<)_5i_@Hbyw*JZ9+UH!d?fX3n7;l60D8~5R(Z^* +zba_TCHK4?0ba__#J{@mD4>;cj!@whRvw^N*j_4t5nP8D)>u5i9Z#9!2CIe|af|lV> +zBVOo<(=p2vC_O>{xDlX1Zp)~Jq-bs9g9K8pz2%{(_tNB{(SzkjVyNdT$MVT-ojtvLWB^Y=~GrtlA +zFKJds;EHiVn0$eVnl}!>%M#2LxM2rvu`v2l4^#Ua7$fg?o<-=C +z*re|eQw^j)p{4%>(hrW#7!ob@Qt*NZ-gVN26(8PAI-$K-*G1#|UgX|*yu=tiD$agJ +z83OFD@zl{w&+Oh>{oG|#qCZsbGiF4;NB1vk$;V>yn=tth)6n#7Wd{Mxu=KrUwf+$( +zK|1s)xe_DTOAzytr^PSed+40nIiruEiytA!BOXT;v!n^H9+&n9r90%-exU`{^@wJ*@o}T +zR~MW_$Ed&fy0NB;z>K%*2|{$^5zwddXYwZiMYAsTR?P-6SKt61`;ydnQL^Rual5vG +z#e`YU4q66RX;8BXilRmL_cg}M<|fn7Xa!Y|G!PhYYt!|XpOs{=U#?Sz7`4&Vi&m74 +z8Q;lC@*U7$cEh+c-Jxn`!&qE0A@*;(^J(R;x^q)iTW}xHr2l?yeGN^*^+w?FL?qY~ +zvG@@Nh~vz)w<}YPcz8nIC!g-IBW;)S#`Gtmow1}0QTd53EP+UpqUkhwyr*vVjzCw> +zVN{pW4GQ;&ik*eOI~^m9H3&fq_U2dc4^?|(4PD=yqLV*OJ`7mmVRW$NY#bMrlW{^+ +z4sEaORzu)mvfmgC^$3RIMX0&ILOp-RW8Xq|*L276BKeb96Q`HtSoolNt{csmZm34n +z`#*N09)vanyD$wNVG9c0Gau5`)4m_$gn*1kkj>gIuX=o&U<5lTR()&L0vc&|(9%8x +zX?619QxZHUoDJLC(pws0{a%;1F^&s8bn&sF{5t>+yw3>hE>EN3%WfpfV%{h#jzn2q +zO!+s4@;|gLEdMX?LMF(cTBV#4G8gl7{S|ug7^v3d%tvty*C%M7nnrkb&iPFlWZWEn +zzd>!{e5(KWmg>J7uk`blpnj-Kov&4J;{5OmZqZ&Fuc=2(Q@sB#mFB)J@@e^y@AO4+ +zX?l=tM?Yw6G}pEYqyP5QonW{|Dx-~Q2Klt}XL+9I*u190iI(LH*^*+eO;wh>`{+F0 +zGDOQ82$j=Yc>BBC}P8#*A?=oeN;e0bw_jU +zMP<#pV~UOnao(6H84Z-QllS##NIL{{6g8y-n)b~a9cb@Q2Re2K9s{W>v$mJ=)dlFp +zRroL1p+N5?^-4eO{8hO|HYxmE%57b7YaF%agsxn7S-O&vNU4rhy_jC13)g|u!;NVj +z<$CAO=Gx8jJg-J`Q=KC8dAK}%r(98=tiCCzPhPu;i`Gjwh4cwckCSM97Yv;ahE9l( +zTKSt2Tx2HCD!Xpf&3I*p%iqIVBb|U5Zo{#HzIS>IZ^eQJy7eZ}K+|s0H_#-zJS+Gq5Y+UI8FzigkXa>e#(yOA^T!5c&E^T{B?ROLTtpF#fgzp*9$ +z+_Q%B=hYhpe`0Uc^QY`a!JpnrIDa~>`Cs|-X7!))C%B*B0rlPK)nq=#g!SjA=-5_U +z&rWqj8Z_Z|eDxLieY!K}x4(0U-#w}|e#ck;H~ik)xg~yo +z^B(7SpDu#muXon-JGzVD_s4QLzgNEZzw&#q{9nrB)$$ejv%eGP&(2OE{}AxZ&_Y@w`7mEYzAkxQkcuJUK!fokd4zN`>`N1XKOPX;MF% +z?rM!uJuyR>c14awyCTP^yCUa>j-h@$vr|*!^{;qS78nb!brRLlv6J2uoz;m~$BV10 +z!u#(|tN*C~Ry40*STepd7YolPU(FqxoiF6_Gg4zt-LN2Y@UCdjbHjt2p&i;DX}I7F +zIv#<{9#zzjhY?$lCFoX~l5fxLPdFX27*XlALN>$AB5tgh#&GJ~mn$2*Ycsxj(|9kX$L89DzeU{FS9 +zEB6l<_ZG+C6~td1Ar{|s(2K>88-!StSCUvOm%}=8S+Zu?Fk6`H`QD<%29Dv^-z@_LQaA$e5d2Kd{SbH@y!Em&C +zoVBxg?QX;Q)VlKXXK+)87k#`zo}F-JQLXgd859JDs`u~hNm;bdG&p0nRV3l(Wcc;p +z$(2ZNoZ2S=Y?g8&q;y@RWc@_4ev~Y=QGMxKH?Hw~3mPWUlxf=cqE6x#En0X?M>g +zqm=xkJ>QC`dg2BMIR}yb`8p;%02Fh0-%5VxbQh}IhG?@_!R_Imr$>keiE1G;#Epj# +z!MI?fp|}CpVTxcjAVO8aY)m4XLG5t>Y;-qVW%l-<9O4IrH9x|1_S&YH`UNr7idNTf +z9UW^WT8~EPY1LzTk1*ZRLLLjRZC--e&GOxLt!Vsr(rzuvvkm1rHR4Ltr!~Xk5?IU? +zeJItyL4vEEC+CJs+4^g#8u*!ik32WDkMtq@LNO#z9#w>(gZoRMG#obR3b2G3MYc{= +zG3PLQ(%`N)4#*-&Jfo4|pT&2>SmX+kAOsI;^qF=jERE)h5qPM3r@J9aYVB^g+Id}S +zBMi;j`xA8j4XU!E69&qAG1&y3Oo}dVY{aXJ&zEk^tJ#*FnZR%hSOocH(A>%zyQ37J +zXh#l_zLX-j0sNOZ|5QEDFtBRVsgqPJXbr1Tc*eX@mrRZpT;9Wcav +zim;jIr#I4W8f*D^NW#pO*P*}82IxyIxPD)bK0mWAT}Gv1hG6*yjg8JUJaUcI^>YlL +zkTF-B!2OxTa;$*2Fn$BRapt=i8SqvPkq2fv1!#GGxY7SEB;E%6Vg6Q)7_uf1d*fqx +zo76_6)IDIscbd_9DBsd6Xi(Lfo9+h+ZYLfKY`D{4UfWlxsC{rYV_C=`=grF6duCIQ +z+NJ&nlX-1q2P+F%UpryMCE<)$KWTc4moCaAMZ-*lz3Ys3(SO%xOpw>nD}V^2#=j@V9?_R#=%EC +zke_u*d~EwsEBXi$8R!om@wj|egZS9$BP0K4VSzY#fB831VT=|t%FiR9bCmnI;iJ|Z +zhCz|cYj2Q0FaMz~2-b)sId882rj7e}|HxhLZ4qwJ^QQD4<#VMm&^evMVp0*)ON!0YD9sg)nPh0(wMT-b6DyhXbs;|b|R&&G$zGq%k1|DlR}Zc3S6%{ +zFNRJZ+WL!t11USJb}QL@mxxx9@e$-9GlogMD-Ju`Yjd<9_@l5v-t;Q8kZkMqx+GW_ +za)W$p1fR9yotbO_g)GoZ+rPGUXZ4~n +z1|ZkG@kG_wUZ(1KW3Yv)_ZiF^Kdl@$#>`;AG#ZDzg%wA +ztxxzLhWGIEb}BbbOoAyi&8uF`_i%*UN8;d3E|hctjE*y*IvKP6PyszHZ +zwf;hD!zQKTnUC*BSF$s@XqGh^xZ1L|S~({k+DivAe6jvCzX6rc#dAG0iEFrQsy?ya +zcrlt!wSlKm1RJziaznvS~Un +zR^V%o_%g1LzkmyMD6#ot5uM*tfV-meFAC;`uV8i&e`$$-R{?135=CASp +zqie$X-!7^Jel@@Uds`&a?)_FOr>1doMlzAKALwj3d!_L3>75LcPfAw`b`lhggU>1N~Roq## +zt19~N;EU$x%+bjo7{4jbIBiqRmv}bTL4mX_9Z1rs;IOze^v#3wVaDE|@Vh8C> +z?7MkflFG#v)j$_+bS&1Tya~%*X6-V)4LoC~&p}%5g_y44LOCU=$u-osLwxvKJz8B;(76jpxxQHUmP5sN9=Nzly5SklFxjCbhbjDicpHuwmijX?8wV~ +ze`y;$uO3=o#X+kDh_#|EcKu~O5|^?u`7lP5Kxir=Y6zq#Rk!0Yf=IOnulteFn5p@e +zhfJz#>TMybu3KBK*Z3N2_#J9-v*G< +zV|u8?9BQ0-+t4X1;NfHlsqPM4xFrAHrlt9RZG92CV4&_nXwJQvG!fy~|BgLB_VWBd +z16G!gn2n+6He~yish&Qf&0ya1+K{h6=q#kWwYXeJ8@N;PeA|ah0Z`;-Eu5>&61o|fWkDw#q`!KdlINHL!X~wGn*s#}^*&0t{W$3onG}*7m +z_XDWjgTkqq>h08zS4U4gSmV8UI)B5nG$drgL*iS;;8$UY8Co+I+98n5_frCRYk#>B +zFOzG!{{SlIZoT|Z2T!&v)PfN +zHJcZbLxg1_VTa`}fHZezBq!~7tCrT^L-S*DRgRO!S|+(_5`>!H-#Q)J1lb8?&m +zT9I12My(6_(6{(DrO1cTdZ$#jfkoXep>M!VHea9kjY6#z`N7r8; +zQ={$2!!~XULDlY#-X5LNI*Tgg|Wq +z5vXp0Yb3P3gd4Klv%vspO?fMHV&^mt`S~i+_XbXt|44IxfC_gkVU!1&sQoImKiJgd +zd_gMuR8Iie=!;u#;li%&a!)yX3E>o6t^B{$|837$kTsuj-|c +zr(wD&w6(Iu^>3VFR0f%p(ipU%)#x;675&sM{S1edK}L0o(fv3S4~H(X$i@EHj_c)7 +zd{g>k!bXYJx{zLY4B#e6B_9j~kF(tymL?0zlcF*Akr-vDNf|}T1veUob~7G_&#h*g +zG6JuB#0MbCNktfA*3 +zdOkomp3CX^Iz3m>^Idwbq31e!uBT@mJ-5(v2R%Qg=RSJ=i=JQ5^DBBDqvyBu +z^wIMtdY+=^uk>u7=kN4nariXS(?ri`ddASRJw0RT*@d1KdRpn3K+j(EOrd9QdZy7c +zlb!?UnN82(^c+dgyXiTWo)6G-96cY6!?}jZSONa~JK}W5WUL1Noji<{;qS-8SS9{j +zc^E6ke=`qb_4qsSFjkWP8Xm@~@<;G6R+#^6EQPV!{6F$AR-XTB9>yy4f6BvHk^XHw +zjMeG?Cl6z#`rqbZtXluyc^E6${|pafHT$c17%SU9n}@N={iQsN74OgEVXS`tLp+Q^ +z;2+JyC<^{TJd6V2znzCsEd00dFbaqNCLTr+@n6fsC@B6mJdEPvzi};( +z^aFFcHb>;ImIQGES}co>D)zlVoWl>M7{7zNtDmWNTS{crFv3b+3y9!3%O +zFXUkqbbloeqqzGY=V26je-RI(==&!^IH|xPu_T+L5FUjyScz?V5$m3pUtqVeDAv8C +z)HbQmX33FC3vwpgN-Zff;!|#&5v9eK*m9;?;vK0fy2&n?Rhq5fs~YAl*6V^WW(*YTzjbnA^TeRzxcF*T+76nlHC!-1{der +z!#;+8&bCRmKlpsF1cW9}w%baAK%vhW7FKARkz{c?Y?JJke22wZG_|OBdQmS+uG4Oj +ziY=w~9A~K`zqlxh*&R}Tp-r;qT0%*(;sH~Ry`aEhNr=~w_K0F*izQnDB!0}9UurM3 +z7fFu3dYYo*b1g$kON&e69Z6Bl!6@Qyw$h^fqDd4Lm0et9hu_SSL$uharo|hGevXWbzlQhFo5NDBQme{l6 +zB>N008Q&=xe6%=oIA|o@4Y=!oI@s7-73PeR_CWk&V +zcfP?Ruh>ewo+T6 +zhz6?TT8IuZPDJMy5U#VE`$Jtd4!y2T+Rgud{`ksOlt +z%w%Y4@OyKCl)-MEgb%`<5c^6D@+PtSP(`D{$C#WPOD6Vhq;4z^YeA^F@s@{+OGsqL +zgC-fngMFh|uscZ{mfDlF#C5r)IL{(Ywp((k6S7aDkG7&*iX;it +z0vuO(&^C~EJ>cMndnPB2w?KR$^s`b>JzMgMOSRP0Q74G5G%G%*haN!= +z*RK|hDI|~bK4|ml4$DYrU`2_kdQ7<~JWx~&t+sGt +zF|>CJiYinFGO8DTD0LPkLg#3=x$^#DzLdQ1+?sX;1VOVbEfjnnHfrYAF +z4@nHqoe4z*41^U}6_)(AKT6)KSz4kAWuh?u@n*Ex1#2D98FH@XS?t)EiyDDGAHHDC +z!E0EhdIgxaRKfP@a-93}P~R7APW@ZBpKmm}Oz!zLyytDubMh85SLC7haH0xT+m)|gjX +zTu4nXzo?~hN+QMBfr9`7btBIz0rLX=0!->iydgiYM01FzM?KmXo3m*!6K++2Ua*XJ7IA^L8lexaE)*UT%c#N +zz#6b%#Uht9tH}}vU*as&^PypqwP1;ZpSUI|De$K$Q=o?yod}P%i4TRgnHJvB*a`|} +z0z0rE(1cK4IYdx=IT%QlBw>9EG@N+}aed=@V5_nfS%4!@8VB@B5Ss4gMg7wmo;)(j{`WG&DD)c~W8Bry3|QVA<%mdLB4m>`Dt +z-f{7T$?>_#@ee}Z9zVQqJlJ#h#zCi?J#g%h2@@bNcEl(QK-nBPro%?fXrPxw9-jNN=Qe8W%h2Sy?5+m~T?St_xKpcALE +z9MErM9H3PLot85=s${%|a#?OMv*TzJ#{tYfBVS@5E%*nmDwj%u!&smoO4ndIEq$Du&WIpn7s9GccGF)4hQ3@$oh54hC=VixV_j +z9?Jl$uSl{_0_KxYC9*_51_D9RA_{C1?FH})Is>#zB8$&qiP#`P?PHFKtN>Iy4!n4s +zCp_^m48ny`2eG_w;|+~hu&r-q_?9~X6Cf;0WH=+iw6e0Gwqartf|2#c +zoJF9*a#7c_oZ2K2X+(56Qbg3bZB3kLaQTY*GP +zJtGtyri~ny9B5eB-)W6{dTBAJauOg70ZWO@u!P1UEQLiPKaxsH^DPWMu@no7x_9hd +z_l|gIh=mOvlRX3@p{)(X-$-f-7$T{lS(bt%7%bqo3@dOZ3V)#~(r-ad0mP&A0J&iO +zSb9S|DY7IYCK40_#5jWAc&Ja5pemmNxf7F+xB}?&lN^FldJ#c{bcDYM?76w6BA#c; +z!xYUSpgomRE+CjZ7l%F>{?r +z>6ok!asUeEAlr&dw6752A05+eS|ry2STfK{(!_!&9zu#{0@;rtj;Kg#ECfU}fqntY +zGIC-uv|J>0inFl9!gA>uge?fx0WgY4ArlDzCKn{-P_b`~(%!J-{H;{?jRap~P@xlv +zbL8ev6QuyO7~z~K-e=@Yp2QL26EJan@GQp140_rhgGUiPi3@@uV8%N5FMXL*DpBf5 +z9K2YfM2H=_YS51qSwgQlRPR(D92Z7$-eL&Z1HbUhwR2GX<=-*n;9ro5MUUeXD%rxg +z7R|HaWE>9*gNoT0PLAbT5)+}-^sw}`#5*kUDYxbJweSz&QBi|+8qYQn3|xC|68p}w +zUMhY0nZ+9|@s%GP%{jM~E&MG1`MPfxNy#7QlwSIk{l2d5eaV|!d|=sEA6Y)jSEAT^ +zmi0yUY3r7Mcm#vC*C!P%Uh$ICwbnK_7{4%gLGG!;&-Jx@d+NmA^^eQNQ9MerzaZj@ +z$`dJi!PF7wM0S3ri{-TiD9^7RTh` +zLzN4mJNq8;+rmnUUw_rL+*S9U1%ci9o@yBAC`Ty%sReGS>bXiJ?%4)?42;WFd{=g+*K0$($d)29ke*A*px8*S5JUw&i^I +zBUsp9MgeLnXz?_;G(Xq1+g4IyuYfX0)9qE3l8UOeU=(g;(7k<$;~1BQWZ!Cd+k*A6 +ze^S2W{UFEwp?9hB!|&_1<>c3t3kJu1YX4_kU(4oCUF)l-+h%%GEx$7NbLR@(&$u>x +z>T+A~`<@efe`O06+CKW^@N-dY#n-$FH==R=Wgfs6K26LlkiBbtRn9`o=U?UmIaQO^ +zTIwi%9cBHgt8T4Je2#)VW>^G20mJ3|p9?PTdp>W~L7+a_vU2{e%X!rWi4$oi;h>8~ +z2A}8Hp5J?ZdPU`PIR!_bU!One$%TN2#&&Z*KfN9YW>VFziO#vetHVFra^_YY&i!$} +zqyEDvma}NtLR%$uNuL+kkKj9kyEgJy=@Z~=-pT1lnA_pZ`#dMVYHp#u@adURY|U|p +zeM!MO_Y0-Yoag69vEK@17@u(HU0A9gVJu+Ffw52&JN$Eg!D6yx=2Cgrx;~zfUkK$z +zTu*)KN{BD0q!G!BY~!WEMNi44s|rDJ*d`s=Tka}wZ()a@E3r*-eOyxVzw;6*9JvdnF99Fw5!#nsvlNqcgRy8>%n1;^(?fPb+Zyx71B4|z&XBY+nq +z7h|EY3qD)?-cBZ3`}4Watf1NfYAP0gx`i!Uf$io9Tk{@oJE*Oy7us^4`V6#Epa9fV +z0%#u4ZZEP8q#Wi3YJNT~)I{9Gg|?}CR>f_S+)n$R^~KJ)b(^FQ8rVwctU&hi@?K3bGT(+(Bp+Iopm~o!gb^Rg*l#STi6C{VMx(LkR)%y*Js#<07Nau&}P)mKb>6x +zoSKUz+#H|#BHIiUx_E=+5%!;@r;w>@UMT%Bfm9xF0yV?p7fRieUSuCgOD)&~c=w|8 +zetYUY3n)NfX|5A&+MH)xC~SL3Dz4toU4q8s&$QqlNZ!-rb-fUDX9xaf>NtD{omVQCNu= +zD27<_PY>i?g6?S7s^?yS+%~M=c*#*%4L$va{m<5vd+8gHQs8!BO`@t_1Nm+VRg1K1 +zxhw8r%lJJPp7!qjc*-hFwiTr<5ko(`Inx`+J5=x#7cyuOq#8u?NBv9S3%>ejF;v)( +z6PM;}VJ}q7ty?*8(TyXeXcs_0zu9T+E2V9V-^*$yGV7&8vJH5;mV8J+?BBM45RMt +z!m9Oa_Qt)U?0FAq3~&m%f95KA=G^zYp`xHe@l}`nG|}$KA%Tb93;G<8mW`JR%2y}Y +z@}zYrC?3g)`s(eXeKRbe+})P7E@-u@NXtdB!s_#di|-pdG%?Kr9g};~u2nftmpV(N +z#n1(jHeb2?02Vk7?UkZEiz+GbedbF}dq1cQ_okW`s^(G@+7AgEZni*cd~@cDT+rX! +zwQAW4Y=XZc&-YDrt=PBP=GAIFZ#EO+v +zMH9a)U%k;n)ns#S{0h4NgRV_^AY)QrOF8!A2M??#c8eat_T<`iybFiE{NRBK*Jq3K +zR;`>btTjYYzLSTsgU?$fVsi5xQ)zmdK@Y&l(r4Phh-m{SK7!>@nn{n7IgF1W7!E7w +zK_A3Ogyj^LIB0Q%1&4YpIR0X|Z~^1z9Q>nCWM4C3UDL0Fh9u1X7{hT40Z{&1I6PtbxigSz?Kf#6F4N#2B`0&A2@9Wo9gL3%*c8AuWfDCQ!`8;$Y+kK`a2DCIv6`XQFXs1pB*7>(W;j`Wx|++)Nw&NLX{vEZnY1xJ$*!f&O) +z_);xilRbwfdc<|kbR1UF0|<0z%+bc{%n@QvXh6>#loQP#IV4)CW!mta2lAOVvS(tv +zAN(XR&@=%9mBYmNm1(0(1&)6ijB**y6EJPEfN2v5 +zJm6r9K3KwDUGy4L@K;!>h0KnhCz#FfffIt8P0p@@1`0p +z&>0LJgTQZ)8)gQ1VOEe6W(4^xX9pJj$_^;-xAa%`34}j^@Fx)71K~Xo{;KZZ4eX60 +zUw31NF|-szUt!dCjKUZUd{y`V+B+NQsH(f&?-PPXMI9A2D(ax1LHQUEHBz)wrJ7n= +zrxtBgbTY|Il7abhW&**Y9X<_$Fh$g8ql^_bRn(}c(PEt{YOG*`qD70ZvBio?+xS({ +zQhlHQ-p@%k)c3u2t^3}!?z)Rv{PTOBefHUBpL6y(XYWZkyX$kE?cL9jPxMNyw{$(I +zv%dSF`lHB|TB6LSkoiqr=2OV}rj&`K7bHniL`a!B8_U!gO_@5YDN|>L{PQ2WRU2x8 +zwcD`rZ*I{3-33sR0$m +zE5VK6hXoK-eGd&1OYTJy8ld_>eblMGTA)6{6*p9U`)k7IYZ?J@C24Ts#f1~ +z1De2#$g)h`#XP8=_P?k9YQa}a)mQUR9==39`W$ZTud7FKcVD2Uy{-~SNEjD;bto1# +zysl!BsbN!kfoj8e>zAR#=LFb< +zF7uyt3pT96&xh0o`SH)~3tofW{*Zc2ete;qej!Wc#}|6(7qV1-tel5Kg421!Dz(1f +z<;CV7QXiTnA2LZVRv)UBi-hZ!$=$9&|30s&z8=q|F`;;KJQ)t^U-M_jsB7KfGx2WHm;fOk*;USpArI2t5mLdQ@`?HHbBjLU@(@>Ma(@M#3X@FEMC-quf_; +z-(vZlb|ewrb@@oISw2GPUzfX^?^`L-tbgGd3`f%yx;yi4`74-URvi8Bt8#n0uHBal +z50?an6D(z<{*7udJ3<~h|6ckopJ9H(-fwHPJWGEG+4F5HbMAi;|JxsDxA>;d*I(}% +zl5Yr?*_6MH_6$;LyfQKRBU7Si`R~1hu%_pmw&LkoR)*LmZBmIE;zx;92+)rhj3^a9 +zxdcb6L|urOj0hmA5ap6TP@-zUETS0^hOasS>p{;38{vEAIVuKrBfOF>>rKHrSUyp7 +zHS&R#h!~<3>61Voq78aJq8Tv@u>_GrOu@22i1COVq6KLqW&4OOXmx3c%7ZHq)kyOo +z$`Df#Ly%ShrVzyzN2L&+`Hu4E995j-s9uD3uA^$e0@6~5JaqTZ;IS_?2rr^%uDr?v +zX-Mw@y~s0P_6MJij~%rZ(S_KA=s|2p>_C)$g6$!OASw{!5q`vEL^UFeNFin;S`aG` +z1;lDZCt@9<8?gnk4e_bGN#s*U4MLP7h9P{2iHIu16hsXohG<62N8}N0h<3ypL=mwb +zu^F)y(TmuLDErJ&gArcDNJJ%K5+Z<@ifBY+5jn&XL@Q#|XU;BdU5<(T_x$7HXvA2=sfY=Pvk>1wOhTN8I3MxMKOOZPq6_g7;s;0zAf_PJ!at2T`%6dt1pZRQ +z<%lq18X}3f9m})e)rbX%>k)axjfh(jD-m}h?n87S9zi^b_zmI(#LI}+5L*y`LTp3) +z9q}1rC!%B^+7-fsC`TNFH~}#daSGy0L>1x!#6^fp5VeR#L<%t*F^{nTaU)_G>U=l& +z0AfF0zJtj9!2_rd1U-m}&}Z>7o=sjsoG9D!|5a5r2gZ% +z5S~6^Z^mo>fOo;1;hE!>Tz_0sA`?v{(~();5D?17Tf&jW-b^;KFkU-i-x=4XL(A%Z +zKG(anzR;AZjU{6tZzg}|EzyPZSKjEo{oc&1rkfvVYw&j5-SFVN`{zHBZHzQ8@01j6(1*>X5_MqvisKG_~)AzoKG#Aw=|QTH}qS>7KW2IrhbvQIeA;% +z?aNzJL!0l2{PLDNSKPE{!RWfHBJJs0@sNsKc|+lpp}7YdhAvpu*irXz^CPQ=PW#pU +zcilQPc2CoNnFpWzbzA54PbAmYJ{=8b8ZxopHb1r?J@oFoelu^;())&ne)p^7;u}`p +zu=u9v(B=0;GOuLP*%ddeUhvdn?~?ID*WJ7F@p~VCp%_~idj8p0M|VH7scUoU?a{R} +zBDZW!{w2O``Lgw`b@`Pyg>HPQt!L=UyPtXV*+*Yo^QY(AUdp}khj+q}zx_R$$jsdN +z<*oPp7muX>9b`v2N_l)O#kzkDA4PkhGwUo3miXU}KP=l|``lWQN+ +zvlJeVXZA}2&<6w`+^a-Agm?t;DB`Dx(?55%A=V<+Azntjfp`z`1>zu2i8={Ui8vckhqw~4 +z2yr9g9>hb4=MjHEyp8xAG4P-gbs%B{Vj?1dh$9vwZbaOHcoOjf;#I^Oh#iQ74=zzB +zBE}=mM>HblAleWQBL0B*9I@{qCF)2-1>!8kj}g-mKSSgZs}R3NtVg_t_!x1(VDvE& +z=OV(0YYM=OHdd)F2Xw +zzwV3v?7n7QFXCjxIf#o9al|adO^9|x5%CIQ8{#9xUW2gzh@%iEAkIaE5DO8vBOXU| +zBi=>)4WUqvLlNT2+UaJ&jM#!%jI3V((iVcj|H#c^4tTC8VAm^)|byT=I?pXQS!dFCD!s8 +z;0mjJ`P_17N#Fj;f1bbHTD~9HzFYo>t^8^5aclXN;IFOiWx;1Hp8{XBdt76h%UUk)UO1cH^RT1GBwppH(T46H+kG<z%gfXf0}t=_GLyOI@c#M?1&^@2ycpv+EB{5( +zo~-3H;K`O>2#&G5OjUD=(gM +z>xl2R{CB|Bmj5o;VU<4#eA4n~gX^sP^7^JOYx%k0E0&k<54KqOF9+YXyi5!FH_J!B +zPb^;reqs4)@GGl)c`L`j@_v5^c!1>(0}r?Sq0+uAe-1dRyubXB;5ci!d@9TP@Bi|8 +zN58fFaPWK9`UipmYx%+8C6R^c$?*~lJ;P&FJEpyWO;e@<71ZpKKQid+ +zE|vCSEx!c(qvfZ9Tdn*bLjN5h_mxk;&#C_@=i~^ZOTm4p_Xj=Hhk)hOL%?IHj{{Gn +zJ_#H{eF|7fJrVp4^>@MZsecGgK}f&hVsI+;6=0aU9-PknNia*@3|>t=2V6*f9k`78 +z2C$X74ZMT;F7RIJ2f#UJq`hehqvBA@}+%U=Q`5!S|>?0RKk)(GljD +zi~j5gbDTwg!DA)*Uq_g8A=)|89DmURk2J?n^gc(LV=j9CBh4`veGv3v2)TBT0=?A3 +z!4cG>!Ew~5gJ&Y-+B*mQ9`yy_6zWUCAaw+sMx6w+)U&{=spoVP4 +z`Zn-R>UQt}>PNuGxvjNek$N52MZF&EKFZubUkBf0`rF{2sow>+QGW=2M7;z2ntI?6 +zY;%awgTTSmL%?CwBf+slOx;cgCougia1!--mj1q#=R)u&)R%!l>IgWEIsvAsXM$Hz +zUjxpeUI;Ftz8=g|uK;hM{snjk_1)lV*15ydkAlCZe%jLOz~527Z0T3QH>lsT^q;`L +zQul&8snyXYUFxv+(I#E=fzXE@ZS>*b(bV>58OE$PBJS9?MD6+P`Rw`Z`Rw`Z`Rw`Z +z`Rw`Z`Rw`Z`Rw`Z`Rw`Z`Rw`Z`Rw`p|M~HKq<_C$dKx*AJe#Z{e@IRtFC}ZpdNM|) +z$!78zaz1$-nI~@|+sI#%?c@XG8uCf9NIp-lCto2qlm9_(B|jj0$$yYL$&!x^%g6)B +z!Q_#ompp+SNsc2c$+O5w26g3OXvkvVc9xrAI!wvxA#tH^uFhsdYM +z7s=PicgVkzUyuVoF+7MonjAr%N`8m@0eJ}-A+IE_CKr)6l6R2zlTVP(ksHak$oI+5 +zNas_-{mCQ9;pABIO!9l=MP!JKle5SL&aWlyGWT%VSuzVGDfDzEZI!XCUfL`vV~ki=E)UgE7?XC +z$W>%Jxti=C*N~m$TCzy4BfH4;WH-5q+)QpEd&sTiHgY@JOMXi3Aa{~7Wr47iEF%Yz +z9&#{QP7Wcx=97+1f@nj`Ak@S<3$SQI&86c;S)#OyNh72F4e@|bUI!^!Ivb6np +z{kx*lRb+u|BU{N8WS(3?wvhA5966h8CbMLUjFF9Gn5-eElGWrCGC)oytH?>DpPWcm +zlH*AqIg+d(hml@#2w6@JCOzaJvWzSx6}j^`!yV+OWG}g$+(vFCd&n*1W^xnRO|B=q +z$aQ3qTuXM6Yse0AHQ7$CA`4_2*-EY;^W+k;g`7|3$k}8wS$Z;$54rOso!d$!X`ay;oHN0JrfFw#p7A +z4cS4iCfmtXWPxlWTgeq(N)y`{^s`ee@OdUixx+4}BTEqTg{U+t;baZ=>&_-%Q_4-$h@f@1*ab +zZ>KNNx6AUEQ^quq_^zHNo`d0cpeG7e#zL`En-$-9WUrisNucG(USJM0FE9kxS<@6r< +zGI~Y7;}q`yDcpbh9{SDn-Sl1bMfy(q4*GWb0(~oep1y@XN8e1JqHm +z=_~1d^cD18`f_>?eHp!?-!YE+KaTrP-$TEdzMH;_zDVCm-$CC_U!ZTL&(pWi=jfa1 +zQ}m7WHT2c=0s1O>KYb;=kG_K5OJ7d!p)aFX^gG6K|HpFw>3irm(|6N%(HH4E={xA# +z=?nC&^m+Og`W$^TeTu%3zJ|VGSk0^f~%w`V@U5eGPpzeSp4--cMgi@1w7v_tKZsd+5vP +z75$De-2XA$fBGK!⋙$UGzozPWle|cKQN+D}A26g+52$OrN4}q_3f`rVr3p(fjEu +z>3#GS^j`XMdJlaWy`tYSn)^SR`%m9PznQ+9zKgy{-$~y=-%ekkZ>7)Ex6tS4o9R>Z +zjr2A2)${@SDtbSCCB2Wng5FDCPVb>FqgV7h*x%?K#r>!6q2Em3O~3V9TuyE#H<9bf +zF0x3jCD)K0WIMTvY$IFAJh_CNPv*#GGE2tDMzV&SN=_jIWEDAyoJdxZK5`^EjP#P_ +zy=LEw~$zF0Bxs}{PZYI0Q_2fFTNOqEI$kk*!Ss>fU6=a@lA?K5`$!0P| +z#>g;PLspYh$jM|C=_e+I`6SlS|0?WR7emvt*2H +zBx}g2hMRGuch9C)bfh +zvXfjxt|r^b0@+5cAoFAkIiH+OHj^nbMuy26vYMPiPA02JKRJ;cPx{CTau_*;EGIqW +zAhMKH>yW@tH=V`O0FQ6kS%16oK0rQ6xm3I +z-EsLuwiiA(cDT>M@?k>?wW-{I!ocEyoD=A93In>GVrj3_QCchwbUXfnQ*?Su^80j` +zbeHt*)8XkZ%R9M};xUDRJ*CCHeZ>KJr?7Vq9-K(tKR2MKw0l4RIHQ!wE6oq|_;Zf01M74+K3})fGr(VzjiQVaf6stiiMQ7&IQe}%9)F>v`@rHr +ze{oR9UVeXJK<@y*{^UmGjxFq0lk%s$fxOc_z*m#PhEaew@ARUo-A;{^SCYrZ1Abr6 +z0AHXc5Wt?L3fQ906A1Wxe*E*}2R_JSWUe$<8VKa~uE{(3vw9qlujurYbd+FE_5S;@ +zv5o=$jstvtIXpSX>q&V6K2O1c&pQEMjTiMUK}j{(Jrvu6{m41pCBB***o!=<5ei3j +zL=;N$C52L7O?OGLtR{yI6&;VqD^>J(eCCH1eoyy+RF5OusPW+BI9`8Ejo;&`QRZEM +z$2jJFfJae}haOEGfSy2|I#cQYe=P42>w&(Ey5`$T|37y9ezCKaekXwBFP@|H`x!+0 +zCn>d@IuBiN)4!|KebhbYDz%on<2P+eabd{SQ`p49{gB^7lwdW8= +z)l(Ot>q?x=^{bm+Bieaap6oSP2)GIh-nj(Wqb +z&ykLL*R2EeU)}nn!GG!Mqa8eqm09 +z`=JBOQ#0IA)zrRGj;e9j9pk7g-E^O$W>Ke3bJWkM3uid$T6eq9%c#8*9CZ_Q@mr3% +z&8_p9j#}lG4}G6oJ}%^k-SVNIaPvbK-TcrmxcR@0&$&GQgy^;1V3N$rC^o;n9Tin<57 +z(#LPRlbk^d=eT*Gm$>zWzS%AFXO8-%TPE~s +zYIz^mqtxUP7UA+*;+12tsTxxkY?ku;QMUKk3+gjqN>!{_S+2+<6`tH4Xe^`y{np)n!(Mc`u +zig=n@-V^b>n+Ffp-&4!`pf*#>yOrK?^}}el)bfsu&)hN}!Lco4eICWLgW3=6En^;N +zAJe^$;oeBy{kWsfW*!e7=s$4ReHzD&It6_>bq92WI# +zR#yk-F4SF>M=Jz^l#j4K|k--|2fP1KWgt`MdLfr$MruO^}`|jq4&b#G97pMd4@vNlI +zK|kki7y8wGc>Fgw>Mu<1h5nQ}|FWa@-k00@y`u(G*K|AT80tKR#ykT>U4s +zD|fqF9rau49_Sa`^miS#(XA)+Tkg8hAG&$|f_6pigC01D^@l!)It6_Ubpd)LbvN|s +z)IHGWQ1?OysJ-vuTB8m?Pou7Zp5c}cJ=ZNCdYM~3bQ`tW=BQt}b%TD~Efe|~cUvDg +zY7=!H`aQS&577s6*WHeN+@Iw`580pn5On58Fx?M*2Ge_?zsvOe-*As*dI$71ZXW1c +znJ4gf)RVdc`bp|u=q_s2>!{bMJH +zFa1brd6)cY)bgJBbExHg@)uFdJLl`D<(=|LYI(Q(PpRdd^^2(Go%O$Ok%< +z^rNmmsYJaf8rPEi9o+lW^0#Ou9;4;&&W@y(zcKSs%inpON-cjgb0)R?eam^&@;4p< +z>UGdlspUJM>D2PQ&unP9R^^@lE!6Vv{yeq3GryHu-nV}zwY*P%HMPtW@EEns39yb@ +z<`a0CTHgErCbi5Z@F!|{5C4bM^8WtMspZ}O0}e7;-tm7RwagK4G_}kfFoIg=-@qzrnZw{w +zYMIC21!|dR;8kjwC*cihnJ?kb)G{Z+`_wX@!47J9cm9Bbd5$KPsQq1CRiX}~mN^=Z +zanmQ4s0vpH&}OJ*UWN(OGADzdTIOY_qL%p?e(0_{1;@wL)wn;n`qC0L4f+7wcgmof +zs0TsMrS{0&3)F+5e@R^qeJ}M8=ohKI(63MrgMN#;0(vX;Na$_Ut1l~2z0@7hJE+${ +ze@)#9U3Q4kPeLC|y%zdt>fc-@@0KTC +zK%Yik1?{Jv4E+P@70{PZw?c=g+n{6A1?U;ntDxslw?i+YUJdJI2O>NU{!Q+Gml +zQg=Z=Pu&f@k-7)^EjLfFM1A1qf&K^eW@vd4pw16Hh$_nt2s^(J%TLwL<^rxBXtrEq#xrAF=c^mfmFP_bmOfrT=B= +z{SNEbM_9VT(x+ScY)hYS=?g7gZRr|IH(EMj=^2*3+R_UxeZ8e`v-I7TzTeVMS$dtN +ze`o29mVVRH?^ya{OaIH#dmY}d53uxMmOjSPCt7-prN3k8i!D9P($`peiKXwb^gWjD +zuym)TifvFbq-{{wNH4)SCzlb7Xj<DBdXciNqyA-Nbq&bBHfS<{9R&P5V +zY7Xj|OZB91=}29Z-nZs>ERxVu?FJjL(O4*xk*U08KkH%*v05W!lQTkTW6TDqBZ;QC +z3ML{mO>O0;oC-;bgk_e~z8x@im6by2hD?8YC_Jr6io@nnKOAcnj3%PlXh@EBT_}b_ +zlun0c>B&}uCUa2EGj>4^mOcku$NZdu1kyQwhfPIv(?~}$se0;UN@|1bq1t4Voc5+nVxi$#!6 +zr^K2P4UsFGLa}IlG!m}YjnO1hrz0|Dq0CYnl*y^Hp;#=1h7w8324azBv$GJ`TrAZX +z(kDUYS;sNYrf~^iVKgh#{pnnKQeF{tv9z=VEXgLPN6^qTqKW#XIblr2x-zG;Fq)8g +z7jZB%jj}biesgSay3>(eTfX~ +zX%_V*h1E6D4x{F}LyL)pY9lBznoTzL9k!r3n{|zmy6M3tR6mL9UKo@KosE*|qj@0Y +z;*d3PwDq;u7>%UIjwer1JoDKkP6AJT3@2(F&dl^^oY}^bJ}x!(41-F8(+y5DIMsmL +zImKX{ZfyE$Gxvd+>1Y;5H58V+S#6}DE)!|c_bu)>TAIG(u_&w;g(LMc*|0gd^_iK{ +z2t>)u+AJ=cmf15=ULt8OLA@m@Gnz0rMQMcQ`szz}t(-e^c+n`+S##0j3>l%P_^wau +z3q6gBHR&rhoHh*^^@L{Mf9B6Ku +zpzI))XXGMIHj%Z#q(L(&lc@_MS8B*9Oh;nL6sHPxU8bpCI~2(6%M}DP7$*%TCX;*z +z^$$*MZmt-8u}q7nu*hdbPOk0fcVxJ#sy +zGy5~>1$u3*^sO3n@0yTdX&hifgp2g9HRArxXN=K(8;aN0r6VCJ4=R?-Xkls|ugAl+ +zA=@Y_6NyM8tLL`kXriI8P@a3jRFg2&luhEkluVfRpdVaD_AilRxx0_{Wj0Iub^nsu +zrf4i2i)OM`xwbVoaCT};5-L}p3AwHgS5aT?Xu@7sG2oGWDioEcnC`#18CZmNyOtm`>FOr~6?2N&HKTs6vhPIgR_x#1 +zZmTAn(sg`P%a&~KuGN>c>#FGIxrag4v@BQrZ&G$UR5<j5iS0qyxN@y>wB#q~Y +zzInw%(S*5qm>UWd9!!Z$y3Tah_0`qqsy>s={Z +z31#B_<+?_f>l$5F|B_JH)v|gmtFBjfjb7a~dUe;B+ktj{b4**Z@1Ff{Gd}C2T_>H^ +zNjQvHQOj(jR8E%^b04-Qhwi5BQfOE%ss0J0jmEiRHR^FEu0?M$Xddg|SU7Kn-@FW0 +zRa8IVrL~ze*l%?QJ2|UAfwxAwtbUTZj(15q-aJRcXUruoed2MxU3+_@ae$?3gGc6! +zh<=Liwt^WlqT$swVytL-S9splCNt6OEE$<(r5|aYM{*IdXH;jp%Ndh6b{sjD^ckLE +zP-$?w!D$Ak8jLqMML#^{1iANI3<~f}i)7pcbWWugEml^k?Kfsri6nPbw83mT=3Zxg +z2HgcS7{K^XF9=6!n;J|OjDy)Vt24v3NIY7XjOp%RogVA30|SRHlIi`*Q3%!cX&j^E +zOjOg9(*I1-mDKA=gVL@J2Q`^Bw~PK}Gd(gZn8ZGRo_eI}(U +ze-jNnCpc>f96DWNJU=)fk`X_1#G7N$xLm)w8=_aNH?6!LTdI`{q8|CvddQ3wq6srN +z&P2nJ2>MZaXpoI#lVP335IsAot6swlEYLxg@s(?E<7v=iZ@1<2UuUwB3?B~Bgbb_Y +zr)j?ErPb>k@z8XP9a6eeFIPZfmM$KRq27GGfI4$bl1`(;r^!V);<_11u_gs)>`Lib +z)S1gGl}(#XnWd?|t6ti0Q$`Q?Qdqkw%QJz)>7Eu;O6+LU=y&@zCx%W+Ci`E1c`>?H +zcX%;o$<9hi{}_il7MUUa(3w~2TFtyt4)=7nuj$#O?%<*+V0Y@76_;+@e8nO4WTGA_ +zMZ!`q8UH6DGi9$_tH)3xbc+&!8=QO(l8$o_Ed%S(@k$D +zbC^p*&VMY_AQh9Q8IESm{Zij}L(-1qHYm?Tq;Oopen_k~X6{?KIHi5d6L%IagP?wV +zYvm3fbW_tKj%Mqo!M?CunsNsm?Ng@58e}`Hi#3HKazAvx<}qDeExEz|ex&qz-JT%F +z3GDE>T{5K3Os2zpAoNLdtCsrqe_h$vCDKO4PaxzVC_}7|B8r*GSkyd37wcR>);kWU0Z2ZVzAw4Y}b^A +zrcgR;lJKBTrzmmgDWwP0Ur@R(HOq2|T^A;-r8t1enR2HK)tRr_aITu=o`?rn)U-hT +zjT8rU_2@auR|zrwWtt4z>I}@`GsC!g=@bsT=!f5{9_RDn`CjiH8yVi!8D#9`rhj8P +zXdEK~EYoy_%#hJqN%yp}QGE+bCK{&cp(bl9U#c{w4O6C%CEuTDp*!fi_JqcwW0K;T +zl|4vB>hSQb>ra%&vpc@E)696FKaG!Yy38&`={-lfsbM-|Dug_`<{23k=*uT91AqOX +z72TLNbbU&HkDCsg!F{@34uEw~kQ9^eF7-*~Ith2BzS7L2Gn>};In9{d@8T)k^R2?n +N!JW}}_GVDv^Pej-a(Dm$ + +diff --git a/plugins/amxxpc32.so b/plugins/amxxpc32.so +index 844212940d5cfac2ed2b59a1370261f8b4fe8046..c6aa6b74db6f865995b363f9675ec4e645d51d44 +GIT binary patch +literal 207368 +zc$}o&4}8t#|M>rNwu6=FEDgib)TyTC&lp)o!>}?@Ml17w8#4dT{2iuqhSM>TRg_9m +zc}FFr`9C&)Q~8&K3Q=c`lDwCYeXr|!KF*9!zwht!yZu&Y_t*9MbG@$XdR_lsuk%_> +z@08TpYPDMYKY{8W9cnhqVu{f!ehe_{V=NICnE$s%+OWhN|`c&q)>5AHChCK2M!>rdj^w$G^R!`aI3LC)KB>`oybGH+`)7 +z+|NGs*{6g0M5|9*!VdMRS1I1k_@MecUTOVZx*XJ}k@_@MpH}MANqv$k?bBR++N)0w +z^?9t)`mXqdMar=a;kaA!)B^9Vv@RSIZ`rrI`Xs1N1NC`8ePY$8vHCQz{Qvu@{=e9# +zhWdo5Pw2mFyR*`A?SI*R58jP;{L4Od)aO2yANrT=wJ<_`?CKL$XX~=T0`aG&W +zj}Welt<@)z@0>W>Sry*7euV(vD +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 +zRjvzm!tOW*qFj==@^0UpQyqNTc6 +z9UEW_cEw(piMjX^zJc%ID%^u-@prt6RfB2o7=vvv5qn}k9EMZy4P1sF<67K`NAXAe +z3#~P%4;X`wVQ-v>Gx1&g2oK{gSmzGn#TM8Rdtn-8<19Rcx7kS#K8Hgv3s>WB7#Jen +zg()}zU&MvD6xZM({0T2%?487edH5cFhCA>m)~`vu!hSdoXW#;S3s>M5_%mL@DtC$X +zuqC#~uGj<9aRO%JQv3ur;D51BsMs9aVOM+x2jU2vj-j=v54a0`s0Ki3kJteZVBia0 +zjql@myoi^vT0P1c@5QFr3KOv#rr;nPgV{I_-@>)H8N=(-t}zLF<3xM~-^1_1xn6gR +z+p$Fh+8Jiy6#N`F<7K>#kKQB3V>Z5kJ8>W079rZP8}`Kc_!=I@V;I&@Y=Ega2;au{ +z@C^Qn7qAR%_YxoW!1)ewFV?+Z9EPnQq+VjRNZJuTj;WZ2$1tvu_ym58#b|j*ybIgl +z$G91HVCuu-s3@^k6Y+Iij&qudGn$FpqQzZ!3d=CRx%e)Ail5^l{2edht1UPVm*WXM +zjeleH7|IzR#Fy|Jw6qk1(TVeM6Yj&uT2VeY3m4;m@Fy(6yC0!l#F8KU6Q@5aUd0F6 +zh&i|dAB+>_@C!)@3*O?)0FVJ@ZUN2v_47EXC+iVjFCaU2qT%8zbI5R&0ikU>AH22jWvs@{jqr*1tYW^x*LE +z;%q#OzvA!MeFE15f5bD`V4}DI%dyQQF&;bNw8>m|EX51>U;p+g;wij{wrtUk4otxA +z*dLuZ7vIHC@fe=PCQ~^c1Ez_0U?Y4SpTwTH9=Bi-J}_N;7RO)?=HgrEp2zjUIXDmV +zaUm|oCAbWi<4RnGYq0<~VIdadZrq3a@h~366L=EOpbyXC1-yip@fup@bDc2=gE0g{ +zF$}{o0v#BMQP>P)urLLvF2m)x5?A3`EWk}z +zh{d=Y_u+m#j7RYVp2Rcg!*h56FX3gphL%^Tw-|)M7=ob~hT#~24vfSoY=$w|8sjh? +z6EG2zum>h%3Z~)!Ov9m=iKEep6EPce(2cWk4$i}TT!@Qt2`3~(fewtsC~Sr?=*HPN2j^iv +zF2u#S1ef7*T#2i&5Q}j)?!*0f7?0u!Jc(z}hv)DDUc$?G4K1%xo*0C|7=k(I#@RRr +z=V3lB#KpJ-m*H|;iK}oe7T_i<#Q67Vf0&3#*aMR>1ygYVrr}V`#L?))iI|N!=*HPN +z2j^ivF2u#S1ef7*T#2i2Ef(M=EW~2mjr(vv9>$}10#D)@^x-+YfS2$xUPH?V)E5lG +zU<|=f48w4YKnF%*6gI;cY>jakj|rHFN!SCEF$Gg`0H)zk%*4^?#EF=VIq1gOI0xrp +zJ}$(?xCEEsa$Je4a4i<#CM?8a+>QJ2B%VPZp2G`x2`}R{v@GZPVh{#n2!>)9hGPUe +zFcPD%8OC61jKg?Lz(h>K9+-?Nn2H1N+zRrE*U+|-{9q`CqXVNb2IDXRlQ0=mF%2`( +ziP`AJIhc=&aT%_}wYUk3aUUMW6L<#C;U&C=wvWg^hGIB6FbZQZ4ihj5lQ9+3FcY1a +zjc%NS`M4OD;YwVKo3I%7;bA<1XYd?e!fR;znEYcXhNAUczf=TSfjc6vNShQ5b`9n1D%`jH#H0ndro9bmJV% +z$Hlk|SK?aSgvGcI590|ugXi!PUPIfbiF&Kvln1sogifNdMPRvF(&cS?K +zjLUE(uEkAQjQj8~p1?DB4lm&~w5=xp7>eQOz$lEtI84AKOvY49!%TEyHo9>R=Hp^q +zhAVL`Zo*>RhllY5p22f?39q4T4f)4V3`Yk>VGPD$0w!THreYdqq7$>xjdL&`7vnNq +ziED8a7UMoVj3@96p2JIc4Q*@5KZasBIxq@jFb)$i36n7u(=ZdAn2k9FlmpJedAJZ4 +z<1$>1t8guD!b04Q`|vOx#gljj&*25UjMvb%UJSwz48?Gaz(|b37;KI4n1D&x15+>+ +z({Lz`Mki)t4$j6on2!r_2`eLx1fE16p2JIc8TEe{-jpi_V+e*} +zI65#An_&#bVLT>c5+-8`4!|_b#L+krv(b&SaUSO5VqAjDaV4(B0xZO0+=u(|D4xJG +z=)((m39q4LBlQ%6F%-iv0v#BI&9F7bVFD&%4@|~X9DqYH6P-8_bI^@*a2_ti#kdTY +z<0@Q>o3Idf<32o$NAV<{!E<;4FXJ_|ZK7N;1Vb?#BQO%9Fa}#=JSJcg_P`WO#WWm> +zqtS`kn1i!%4(8)RT!PDRC9c8(+=Rur8~5X3Jb@?Chv)DTUPjAi$`yk#1j8^K9TauPXq<@I=*HPN5A$&`F2Uuv64zn@7Gg2(!~J*^Pv9B!;RU>e +z*U++sdV>Qn4KEc^Pq$I77>@~_P|U>9=){SbjXCJX**FL1VLmRz +z#kd5Q;c{Gwt8gtA;3h1@V%&}Ua6cZ#qj&;O;u-YeIlO?E@G@RQ%XZoW24OIUU?_%R +zI7XlYBQXk_VGOp$IE=>xOvEJYfytPHsW<@Ba42TtXxur^VhKpFSiW2+MlZq@Vtbrg +zDsK5hoP1S`xYuf|*Is-Wf5DlZ#XFP4RRhHAf#P+nF-WY1?XV9{!9}*_-ubM4M$?NfnrUphi|8gT{6VpH~@z~FRmCaK0HdiZ35|?D6Yl7 +zapGigcDDG=G%shh!IWhiE +zu}VX$#1ktn=pcTIEqaUh_YqqS6rUU^&YC6eo-HOV75hd77>`AZjpN0f4&nhk+);e1 +zleqH<@pO_n{~7UpJTXwLIY>-N7r(=!BgK9b#OR6Q9h1bo$($F*P7$Z(;0*C29HqRZ1K6+YQ1>=H}P6%fU!?4aS^`RSUiJobP#{T@4AW$lf#C5V#gdYWQN%1CGp_vV!<5& +z#@E8dAMY1me?T1299xKobh?_TdhnXK`(3fsQt`|(aqN5I5)54~4#Lj=5l6;YjUUtw +zFs64A`z4A&N#b;j*X=FJVi}L?Fl>?dA@0Y>0x@HQ=!>u#2Q?ID;VJwb`*ak4ND#~L +zweI4lxaK)=Pny_yl=w8(8!bM9EwjWICWw=!id#J5+Ly&wOT>sq0mi^6@ji@cEGA>y +zrea@g-b{QN>qLu>;ISC-)t2JGR^p{c#7A3;Kcl6Mn2Sr=ig$J5c>EUcP9hz+1hbzM +zXX3{=t~=WYiifaUx;PT|Wr%w+#kwQJX&5k4+%ZNxj~yq7J*SXf+%;A7>3Y;k&4*qW +zzt#0XS!aQGA1=}9RbI^$&x{b0#){$k_(#<^uuQD|zPNq4czUJSMb|Io&IB>HyBLur +z?wKa`*W;D)Ma-Kd7EBde==0s7#)Wsqwguvt_2P%R-&PJ8AugLBMo$(uOclSuuuJ0L +z2Lp_ITZ^~Fij8nZoH(b4_|NlV(@e4ZRPjUn=WUgq#%dl|H^BH|eeqR?c-s=Sy^ZQ8 +zu^~3bBuv3H9F5sH8}o4quEYW?#{Kv+Uc_qeh<9TnY>Dl$8)l*xU&E#N32ww)*f-v4 +z9EV<9h9~gh4q`@Ean6(C^WDX>m^VJa_#H0R^`eWKhb$Gpd{6B5zL`xdPQUV!PQNngDe<{6Vne4GkB6sR&z=GdGFV^tchN|2yOX +z#tAw<4K0?rdVZt)9zPx>E|?(p(d|cBx0`tVSut{pIzCd}=Vzi%3Tx0*;B-~v1X3= +z25!T(?bPv)t9T;=jKTW3(7md?b`$&QcCK{m@jF~??<9V#t*z!Ks(-fLr`D_fSNjG= +z>-qVe>ON?UI2-@KdSk`papIGD9v`BPn;|}r@8J*F@CET%oR3-Wi%EL^u5BTn>MZ7V +z5es#HUPGmOxw4+ca!%L32h==dyto3->HhsOHQ$RA6CPG}RQ-qU$Ai^8JyTquZLh|Q +zsp2)=ZtJLeuj`#%wcDwpTZf-e^;g@-V!3~+cuI%E)OewEezV;%$07xnIrqwAIyo0-I@@s(u)gwawK0 +zMH{2$$vVD=RXZ&VuvBfQ@~eGP&6l?+d#HA&tX5a`t6H@^Osm%S@|<;@3-UdyAN8Km +zzaG14wd^Ufl&{hM|LpRm=9#Wp3f50U^dhtlO*mAC^~#b$6|_|P +zQRnFCI%o6g`$72kHXkkV&Q(Y%Tuy}xgc+IdFN8){#5XwJrP +z)u&jpT6-5klce=B|BaENNY-;zD1t0 +zyiE`K)8mUW@wbuqy{=##ZK1Q4cfn;jLG?VdPMx6q;IryzZ@9ys#OOWI2cru;HEe-_ +zmgqg6T0M>gSfURuP1dN@DO$C9-*K~g|8ZG;__(Y-DyvVh`XsB*$Z8*}gHFimkP~Kg +zsHQN(QzOi*&+yc$XEtOk4L>0VL@3u=b&=F^$T5-rW9IFs*pznKY>MHaOtr;R%c4R{ +zZR%H1-a1`A_H{k1d5PAXD{Y-YIaeNa26}cEADi=DRZ`W +zU9mZ%U013&8@jGko#zbkK4aUW{|D)L-Gl6(Y_}G9V>`RH+3cU}Qj2%W;{V6BvA;RH +zdhc}Y4DwFWQRamPdY@HWioDMTTeqv7y^}(;DjZ5UjBvPXTZCC4Uj`r!- +zzi(0WaTcUt{PjzfhU=UocaJB*5#~vDgnE)3Az8P16C80%Q&r{gCOJZ*52_6jkH@Ml +zcK7$Xx+XY6yqS)$yzE>{-UOS+=?M4sx8)wU&;3Ggt&@9jS{H9ieR%Zoyx`CDdFJJ< +zeL$-Y3-9dhq-~w3(rEp)qjkTxmPJ+1Z6^afwmVfJc#vW5*MCZ=)H4V*F+s(beS%#@JO{B(#e0m1V{V^-R3*1ofA|X +zHm}ZPxI^VP$gA_5w&$_Q7n!xWX;H$lhXz1`a^ch9s@dF{(L +z=(^%<lbgG=<}XTM?~&H`&_HagSW9M +z(>;0NADK(2&Zkn>x_zfWmFAm@v7W2Q=I!n9%6gTHM3vu&@&Iogb;`Zd_jpW9B`Z~~ +zDJbeg@1EY#skvqLxj*RSCZ^&{Lp +z+a~`pI_nRrtUK$eoX>LxyC&JJCiCi0SKNFZLx=yZu@{}mdO5Fy)f_!TEd^981y(HC +zDwe8LELE*os>YH=74*fdmAWO+Ac}6ze=pCMszrE;R7YE&tBrR`Yfq>nx7<12J1%us +z$JVA!O-aZtoAz*YS>AYyw_}Rewn`O6ZEw#6RgX5AzIkF|?B!`T&n{0{=h$(n(~p&P +zY!%|X&)YFE`e4q)2#fQsivHbIIG}@Gl~oqo%aUEkYjapH(?GZC-_M$Q=;>uKTS_l@ +zb+OlK)5DQITAw1b +z{|wz?bIc~su|B0sda4E&lzV(yBUPEyIyEc>mEP^Gsd~aX-X|QM-S_LbVvDlQ&Df(4 +z^gQ9{Q&c&<@0|QLz|wYrs$AoPT)vQ{I#{GntzajJW1rW$^{C)*L@%~p+AHFed*6FsSpsJv81q&iqvPT%~`td_h4heH~- +z&DU_1)uOiPs^_aR+p32s-PSW5K`JJjC&u9`R})m#I2^iL@D!=W5~;`NJ)fB4^x1uF +zRh+J?LC%NO3iB27Vii$tnX~Gys(QPs7gcvvGfU^4)pm6{tLZvKH@2XRG>TBJ`JVnlqIa68&Wi@IuB}$Dy +zA!>JOOJnDvR;JFY+% +z+6J8|)ibtMB^IiRAxI@6#1s=nv~sViLq+fCu~^ly1vy +z)o@|PZe6mb%!5?q!MZCl<*Z7$nyN(R^seIYTk5MBjzUz9BD_^qH4X8G=>yCJOf}c6 +z3)eh^xyPN2{HN(@GpUFp(!#8&8L{Ic +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 +zb=cqB%=y=vRXb;zQMwxRD)VL{>1lac7eEWO +zMVCH=Oie-swX3w3WwySz{_e5Q{s;a=wDx=k6zmh9g{L85&zg^L# +z6kWLScIldfrDroWYX8Zbd$+kwRU}LGSX%P=6+Nu#kzb`?;ooYtUM^X3 +zuP$kP<^Q2uS!1cxtw54_3}f>@8z^a}GZd^EL&?v7>+Wz%MaRPP$?q?yz4oeY+k7Fe +zZ2=|6bO%sSrdE#m$Ml~Ew^S6Ilgtvir>LY%Melo2@139;3)jwEjtMGCd2PXe|1d&T +zs)2vsXkL%2DB_yWb3Po`!k)WMZP=hEp`Kdi@YXuDW&T7K=wt6!tIULMsoA6U-*TI; +z?x#FEdv2WgVSssbtL|7->(Ya?!+ck*?qW;_C(mxf)%u9aclvgBP=LNCE--yuw!;=( +z7Ja_*a9p8IN~R37yZpCSm15dqcOSA^%RysG&b$`8hWxK0<@U*_}gKGZ!i(G9z|IN@n +z;P07MT}LAH6FU8El)5z!Hv@5!nS|)Jp<3xNolIZgUzKvNZt>Kup&r%ELk$&qfycJ7 +zB9W><{GBYxT%?k@!E8>}n*(m%YW^K0091)wLUme!SW$JQpMZUIH|JQV=U0eT;B-Fh*2?@6(p|!V7Zh2Pil1?|C +zhj|~2td#NsQdj61X*N<@%b*=hXm76y*_k7l~B}?^UM|D4KRrk|%b;37J +za?uZ`-sn(OtBf(-#g-cWB1$&ddRcZRTO%yF=k4z9D$cxQ$MfF4j=U^gz`BflO;kG9 +z&z@^aJ=kWkw#gkmsWi498_vmxI@d-Mq1M~x(pMH?ar}ogVOHLRV-mTmhGO)KKpM{Z#FEEnxu=q;>)LwvHen~Z}D~>ppLHVKiS3& +zE~>Eqtg42Z8P4X4_9=C5LFLL>qPrcr|4|L0Ko^$j5&U1E=v!ThIN0CnTYDSm)_8}N +z5(|;rEd9vO?!K&-%s1-4^If_vE->q-ym2y+t31Y>C2PO`OV+#{O;P2jn>YRKyFIsS +z6sxH^^V-YFG3LOkQ-4L$Iu)go)2&~@;q +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 +z-SzbLwBV+n)4UrkfSquNWl8%$Zd=*HM|a8 +z*z)A9iHTqcD?;t$Wx3qD1r*`YZ$7}i^}s5^Xz{gJa%8c&;u(jdI((_fzEr|bb6&hA +zxNx>7_B4+ckM%uqU*)Ya`|f9fZmGDg^*=a6rA2%P4ZP|*al~$;!RH@SmsBbYhD!bQ +z&H@PbL$5l-Ri}xKqLqS-vm8b#fP}DBWP#*Fwmc{k7Vd+k?R!rGOKgh?jgU!E%bG|b +z7$J1c!4V9#wrKu0e6GutRwE%;x8M>Q%u-l}tBYY5MEFS`01RW?qTsfa(zO)N<}jwM +zFv^QuJUB6Nmmwx^akFNhR(_z<8_a8;;rWeXo5~ahwkd+XIkHuZFgCv6WC6nY+Kt>N +zu41{EN5)WIw&2#dSvwZM(iyoA=}S)QAb +zPt14(0sTt%U7n~~llakdPAKG|Q9A#3Q||p$rS5VMAo0Ca>VauZrS2KbC_P9}6$?Bw3)UIppBCcD#Q=oPkU1kHTJ3 +zo9T}_wekLFf;QA2byaHv{86~lh<4CaSvxeT&HNw~<4%T~Z`(g!v41SFe=M?pXz>qo +zI{hB5Jz#y_ZOa;A`#s3^JID4r)AqZU?e`_N---0wA4&GU5(5Uinm$J9tLK=Lq!U|Ey8ID!=^Gt{zWw4R8cK0> +z&KzLRoDs{+<;+R;%wNe&;*XZz#o7Js*X`tbFxctgTlQthUa&(AL!*Vu}_L9)w0KM(GP&cnTL@Mum@Y +z;b|T4MmySR<>$uoYdJq#*@@)NE6mty(LIKLLU +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 +z1?U@$0#m6#*e`0Z)O7T9u2OR{VhWiQF3G# +zZws9u&0VH0-2>CrwLe}s05*C!bPb*{sWXB#E&H@S&2}e>bFRkp9*G;Ec;Z2qH0Y!0v_(mUQZy#M5Ue +zh2KN{XOre!^0rG$HEyE|>2Gx5Zssv+Ja_WV_moRYRt-jl6Y+$Bz5Q0Z7vwm(eR$D*+{};&rc)>WCLuFZNy?QZ|(^PEPVx|eH +z?uNy$%N|!R{&Ot%?N}~W!e5_E1t^D-@;_eq4lVW?F<~rFzWAD-B$MF*jis}n5u~(E +zmcRuiI0LQyK>rnB6?U>84ZM-n3YQ@59C6OQ(bq0nOoG +z#is9H0`%V1!ngE2#y)gl8DFKu4GheeSmuvp;YwH>?U;WZ!c3=Di>97C8-M9XxbEuk +z!n1sboZ(l_aW5G{!s52*4ywHS9$x(nN$NcDAo~#%S3s-qH2Ye8)9Aor9@+qbpo2T8 +z+2rNC6yeQhS+8ZaBW7h&JWUthX4b#rLXhfzGV1v>vR>{4!9%lvMj3g<7XME8BSph( +zGJw~$K5F2U!WMvAb)l@L3z!V!g +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 +zf92BJ94H%HzP +zM2iJqAa9{lGSzbO)KeFnyBc^~k#P{U-W+pKyNsg{YH7@Zdb`mfn(oUh_TEe#ARM5% +zf+(FutvBGd2fES>7qv34+QsOWCRzR?3KOU3FpJ|##5^Bcr;EsYGxJq0m0`KCdg5to +zwL7u*L#?}7QfE-z;GQ5z9AXtNZ&)}TQ|*}VfJU_ +z@=eKY<50QxA7MW{z4XH!Th!oDu_ZrXCSP=l#XqI)dIC^fsl*AkGp`8R_+wFpX=80U +z$Q-?S0T_@BoRW2tIP6J-C}#?;2kRSVv9xrSE##|&xGP3d`SC7KH130rV2nj27fBM5 +zu^*vO^U^Vn*bxx>bg9^<&LUc5@DZGStTr5lN#SbIGXR6(G2-_88nZdv5%z>)4_Kgg +zIZscU8!DAY1C-S~_T#m0FiX&;Th=fO#w#M~oV7H+qq^qXRLb)9!rH0Npom?{x#?xbHLql5qez> +zya;+~G|^KbMUvw^B10rS)lm)LX*?j+A_yv{0V;DGbwzlVf7_{LTk;+bF?k34!{nFb +zRSsfr^U2<|#ws@xwnw#n%_X@`@9xlO3v%I9m@gzNT-CezLVwGp2*@}q=FfxUzI$Kh +z?uV*@I&}YQ5oGl34(v}8kv`$i`!VT(aow+JF&~IZdl|KMbguv4lsmM0)Y=DgPj5ze +zVy&O0?9jviT|fVMry9(WmFJ^!27R0h%}$Pc1V8zf_p`{hP)R%5VF$5U;d3}d^Wg5W +zw}nx^42n?34sEd%kn)t@Kyirpq!)fG{n;cDzC4^2<@iJs-95t1ZR|=_(mkJ`*c7W+ +zVmtbr_LrYVA?^&;Njgkp61RsMc!}n@VmjRhU*0^e6V{`QetBC$qZGBKSZUi*c-7-Q +z+QI+9YE7rMt-iBY%{iri=GnXGXkFI?ypQ*C6O2-q3CSqfF?C$sgPPhg>&5qv +zG>a17+D+oCNqjYkuh+%bN3wPCwOM>+i?2rURf1)kt%UAQ%8z)T(sQtw(L_*;>_93b +za!nB|3AD1J-uQ1&e18QMddv*axPaYQk?0REGL<&aC}PYJ)p`f_F8FK(aCA|BARp*O +zA3(|eiJ+FPdOuOUMMWrvQrfM8XkEkL(tjcvjkiEJ?K&Yy?f;b!hxEui1%o7lkuRTs +z+bACVR<0|l8)Af(2yfv%c+>{VPnl+pgJm4)m1xp@>`sRx%0(=nM{vxt1t;HimEQL9 +z>1gKX%1LVp`LPKFJ`e>cTR)SzJv1;O{FcmFctO?h!!l$1g&Acs!*gLqUzySA!i<*l +zB4ay%wCfh`oz6|>cBRoeI>F7d%!jrzG{T-8!vByt3q_887R~NZ{u_Q+W{kTqW0=gi +z>B5YwWJc138K=*QjBn0eknum6@$U;W{vtD$UYM~^W@N$Q;f!2_@YUzUdmZaph?i=k +z7tWt9G(Y*-4sX=@7y2rphC!%iu@Yy2>%f;tZx2$rUwR~MT*x*^MAcnkq_WRJLZ&-L +zD%R05-#i8KLAy&BZfLh7%<|j;1&O#w+6_kk3^oSz_T|8(!MX+DBA}gXW;qpyonJM& +zp^Dy}uwD)-EoyZ$LB^4Amq0alQR_{day{EWsY^dqkjBsaY%ldY_-|Rd(}mP)xTL28 +ze&fCXemw{UevZYqeuTo*dk)@g%zxe*6IKxm7V}|jMJRBskt8zDH|M*!STX;3D$om8 +zQ!heGkztEkujG!em?C+6WM}|7cvw_3e+8pMymS19uCVoORHejuC74 +z>Y~=Gn9e&VM&E_Wdh<$RLc@@jENUIVi}+7o#4zu2Hm3x6Z#`l^gV_Qm1fJ?3pUu}_ +zk4bbzs8imRF#FkU)`i5?n&io9u}&bEc9EA{m +zZ+c_h>J4U7HCv8m+wsE`MDm&KVhK;?F)1)#a)d@Q8lD}^L-cbkTGdmz=Rcj7)J$ww +zJTz=3a$?Rq87XaBDi-P?7E~5+p1Q2g?01^z-McZkmoB5GGvZB`BJre3i38$^fRu|` +z`|<{E;tjl-cmGicqj_l${F&}RIEl-#en_APmt#|~AUwv0#G(>;EnXX~m;_0;#LuJ@ +z3~!bpkUyEjOwwiYWs$PJmT=8{|2%IKA9H?tA4TWan4YCK;GEAsX339);GWL<{=*K3 +zZ+NbvGl~x1%LZwe^GF}%<9P*-^iPPQ`15T0hIL>1%MJVIVd||w;P1@y5_f-1T^Pet +z(A&)sI?8BKp5h-{(cSgj-84QU{kgmB_zMU0i>_QE&o!-GbK-caDdR(hmc`W?0oX#~ +z~eG+#qkq@a@^7LG*c^3@C?{&d5Q-VD8g1qRDvi?+2M)HZq +zh(gRQcd3*xxcK=>efm*cUM!1er};9%;^gqkfA7S7+7gC*mR4pBX1tPDV}DCD+MI~c +zk;L>IgA4S3=2*`UJ87_PT!(Iqs_5`vTc*Sm3hp?}Vqx?5KgNN`1(K8Vja|sx9Q~H*AnCUKV&_YHx~2h%fsUL5bgu`R6V;`Y{)ieT<4@iNX);V +z5_>r(0R6h$0(QntOk?&yR*{s)+HJi|*cDp(i^c<8li7n}F&6joTdcUamnK7UIX%Pb +zcBw4=H>)E}bksC}(F=Dp(5Bb7R~r`+>aP60HY%4JZX#MbNy_YzUvB{h<$IFw=78nIeQD?_3psM*WY@oXi@lRw}ft8_%%@_64UF2Wf#P +z22%Opzz>)$Fp)qP9dEXrI)d6FB<&JjO!CZ!O)RiWARm?)f33^+N&+sPI)I87>+qPg +zC{bK0Ljb=!8GoFHzuG4dj^n6Z0p@Nq2CCHH6;x5cq_i+9ONeDwz|Y92EFzNW6#e@< +z2Ru4B!}Dy9Z%>^Dy}|K~DQP5<9;T%5p9v5!SY$9@6ptcwlV+qvocbnsYxSN{H_n8F +zsMyFyMCU(nMCUL1wp^<@JkMoYBWkw{_xA_)DYtAl4A(W8Ow{ +zfIkCu@%c8P#>vNSeXEcjExZ+D@II&S3(w%V0^kQY?wr7l>c&as>c%I_^S@DpSqbb` +zu__zU(OZe+xKr^TN`O9w&WZ{@;o3e_M$|V1ClvdgrY8Yx%v;@{TR*80J +z*xDUQ?dE^eZXx#eZ`bN4{duS~E@Q0KlE1;JFB6U3Wot~a8j~oIHgrk*#ummKqq(k< +zjU`w!9%5^3^-0-Sd=Uq=Z|r7n%un-m$qE1eSilEPUSt7}WwmSYK$bPS61ZT{zgB~_ +zbV}Dtc8pnvq9cq)4_n$~{ijBwl9umBTtXPA%Qw&E2$i_JiEG{nvif4Nr5R778HZY5 +zoS>pF3v86(C!*@8>ADFzoZ-wf?B0h_I$J7^Mfty={1?#1VC9ogC6fjIO(M3~JCDRP +z!giqa6DYl=Md=6ahWn +zI?aXy;wsO>TVRz3-k|PO^ftP+8UF7R=w8CORG5StC2%HQtS)VFG8RM{jPNgYN{hXM +zS?&y#Js$w+Y*B<0k%@33aw9cE*H9P!bBx)gh$E#g{lUp-m7Q>H6^7`10gc&Z`9JBa +zSH-$rMcr1Q@G?$=NesLe54mVTcBT?92y^WrJhmW5KJJBGZF|z9Nu%RIvqh^W@9;f81o8+-B60O!A;|1unE*?5!3&T`dk-t +zd2y}^8VJ^b84uQJbXmx&e;Jp=F4V2iE0_LmsBz2PUmC( +zH9d9X*n#_4&(6^vX+GfD8$z({S?+YtQKQnGe(vPoi1veKaK5D!R>WEygXsJWk)GVC +z_y{88D&2R%ZTlGZq>;yRq}v-y3C>C8%Urk6VQE-83boa(LOq3&-nmOkI1oVx2D;BXwf-Avn +z&Ab-Sv#1&pltMQLVEJthR&|=5ibSv!(!bsiCKbV0&^q2cMd%2_kg*8U8SExljAHo> +z3%i92g_^K2%$>hm4ZVixv>3Mrqu!(X=N#UGpnLQhq~hJYUMle&GYh8k-dzS3=vVUv +z)&I03uKs_6Ov8&JbjK{tc;$RSB1EpXR7Wyk2Q*FZCTC_ow~y6e>dY-B^Mf4yXTz6t +zx}j#Jf1cl<27eQcShrn9g84PQDW7YL`)>XPja +z#tirvlrLN>>*7;ge3OXpFmOn4r}kv~_}zou`CBS44KH#Cc_7wr%lt`l?T(AJlOw_s +zZgBr{3C~Pph`~JtAtvQn<(suOh~bDc5pH>zUJ-XZAqz=i$3~?_@WQn9hacG!`0^)i(`CZ +zK;f?dZMg67Zv{t&h{NWwF!fq4hJklu^BYQt1TLcAl@&tBDDhNQ1QDG1?QY^k7hdhK +zz=+;pJ~}TRLhZ9Bg`@;jfSEBFKJfVE*3zUK#RfS`zhFfxmVlIe6_-5x!S;J^HzjV- +z!YQ|RWB%F)p-~b2MoWob#rwWn_6^Abr7c3aZlVrDuzZ<#ctM}sm+y}A`Ym)!P{ND;0++MRAg7@-NGY{7vbOL4!{`}(4 +zie~;d7JL#5+@GHnOXDE;pitvB`wRdGw7)3o&C*gQ#j`gS^>|%e9%=J|(C~2_hBrMy +z8;@|dIsy!40Q#E)c5^?!g|qo)G>hytn(Bes!fQxrw +z^IxA3S#aR|h4Clpu=NOmZT8a&n!WonR)s%}J@VX75DzUZxr)wZ43LK9P1qCfdE6ex +z2I-dMYMclTW?uD~NJoRaz68FyH~t#&&$-a2>0v2mTJbPP1NiZSwprZ=U|dYL!E}Bh +z#bH~;lLlmw=GTw2?#zq=uCd^k?{$^mJKDY1nFW2o)!1I9Rq-;-mSYcnDuD2{U&4PQ +z?b5x6gxzB|N*F(3QbRRzljR5N7t?*!cZpX_#_4X)R@ygK`X{W!4sZGCL=B8{vG|MK +zSHkR`(B-}u!ern#&;nl_9v4CIgdT)=!t`z6s>N_bsRrCaLM|I)>|Q_F()0NXo)l|F +z<*K!tpvm%5f~8Zb2H`iHfE9o{lt4$o&sXjIT>lT9IPAzM`qoX>Q85?&oeh$?i^Cij +z2;TC{mIeldX{^n14k~+yaQrR&f$d!Y1{3L~3nHlzxlYSsXli2&+rCihzR6cfe5l@_ +zrO{rcSejAWiDPUYlB=kJ&KU6!=DdzN#l!D+5+8e^CK@=6cq=1D8J7?m=pKH<6$|@e +zTnc>t9HzDLv5fqa-XD!Sc;bIY4fgk`Kj!wgM!h*wW~*gUPmwON{xtvGjHvf=19F#> +zq4|~waty|o{cRlRP4x;i4rgI8pR#{*NuRQLo~U`^3v9xe+^QYEtxDC1T!Ct|4!&&( +zRbz4q+p@oaX11a&=Jn7n1=h#-u}k9A61`MT<1^A|qMd2}k=rmsEl=HeM@Ig~1RstO +zbOSO8-QyB=3^A(9iXKasZ|vu>Tj1q`{=jaB@L)uR*4`9{!662k4yiv_pCIh}8BF#9 +zTvThvycD()u-3meyn +zCUKKFXki+Jv6jUnEzH31;8qdeRi9sBgD1iFAhI4)h%^0Wt3tUf#btc(Drq6(Q+1@O15O8@KGo2?-asNyvwIoEw9z$EOCbpaF-KRu(P@7a(e2 +zLtCr|vxWE=wo(+Hm(`68>oWY3;HY4YTs9VYej+t96;H8G81(BXt*r2(>^W)a6X=U!t_q1IoxqPNwN$Wn|=aBI)##q;_0_p!kdTC4CkE(n`7&3~$=KN7I +zt}k)w;cw5zU5U)6T9N(i=-jgJ;P|Hc#~j@h?qZt|+f@I|8tC5Nu=PqA?~RCVN~`Lf +zATN-Jp(d^p=eBFm?-GcU&qJ%+w1XkCyrV)ev-4PNH{MlF8T%histSUs&w}ZK^eOpKgcRw +zgvFkqNv4M&!;m^!{qBh^DQwagKHxtyAM)36NLmWwjpG~F`p?W$1Fecf_;WH+xxKC0 +zTXN{;A8pLbKQgTz>6|l=-|KzGBHp>a(A5qka3|0llY972htyvQK?y1Z?xTh7%o-5m +z`f&!LJ0=NNG?{|=%>Y8@u)YZ7OH?`CIzoH2)`U|}y+-HXVF^Oa=KosqCU%2S#Hu8L +zQ~+YuxeBO??($j;q@qgGZ$J%_50(1A=LOYCzxL_|CY|U6TzgY?{!hz +zlh@=^Vx#B6J;r|oNXq5?B}OXzn>Myrk@NJ#=NZ0N%yUp1J3Y(*>4=EQEbjrm0IybV +z42zLSaE9>M;il>>Ymj6)l6qY>bcU{c_m@Ck_?`21eRPK4<2+HgXz=V^bYxaGm3#4yXml+cjWX+0bcRlX +zP?pL$M?Zx{Mz1nfm(^1>;e5W^5ss3)@)-Rm98mR#(%pxSG!}%>PpIBOgQGT?>;Jr0 +z)UTBFeJpHR$-eCC^!`=&|EOM+@|CCw&V(qmURhs>YS~|jYK32MwQo;|YNcO^YBJ17 +z4!p6{P6mhCOYpjSszY{IO#iQhHn!fMO)`p#scvK9Ba}R;G0}075PD-`9kql1y5e0h +zhb`q&%fOZND*fCUqx-zO`4X`zzzq6rreDeleWtb}nG6NCb3kve6(XEszO6_V<##0AO&o7mw(mzrTEErd!7>uTE^(LD2DyyC3$mJKb;)t~p8mACNf<}r%1JjIDJ{)_4TNm^*x-o%h8oh9E +z1Qu4dE8lqbhSJyM?@(WB5b8rtZ>pb9qoOWZnkudlZ4_+u1@7Q>C}q`B@ifkPv9Q%B_k~t&mlw61}N>rZk1L4;?X2 +z;2>4YQK8qjyzp9<1)G0=B|n9AF;bCZ86pwofiLM|h=bx-X9@{s&o&$&L5utFJ8Is2 +zmBVIwI5F-$1f<}szLH$DWF)LCE(vP(Y;;Fop+OAu^xk(eY{5k`FBQLE$L|i}_kR3t +z8A-#qhR9I!k>2!Y0zqjr7k_s2R2Ot-)fTcRVe3lS?l82tZB5hpzJ%o#P9!tS-EfqwTo|cIG>x2H7Dc +z0}!D3r*4Mx0lraCRFb-$tB5bxH-~46P#l15l8|Bmqy`>MfhHV4qSWw{x!4#rkW0B{ +z=6S(=JWbnNZQjsRNbRbYxhG^Zvk;*F)=zz4+Wl1l_XO%-t#_7owjbN_0gh +z^kLENefTfno^%KmJhD +zFxQP!rv0{YSh8ci^d<;jp%dbjy`GR9A4U^e#)Ap1=2>u;y9qF@!+<&3Yu9N^;bU?H +z26(Cgw=bLdBDBIT1U7IZYq`>_nEn#lHwR3LBj#s%D7=Da_@XeZBnWlFQV3r6-(b7b +zfac79jfqCrsMYmTmNDwJ2^9FqA&?}k +z(aswc_9ED1ZsAH$4P4^jXD{>f8!Z*aiPZSo1JcGE=<07!WDxw$1bn|j-y)Wew8ejx +z5+Z%q`5Z#FYn|}tWjz%6?M>o@Uv(32)2<=-*x8@QW8P|wMp&#-aj2aVdr?LV=LsRo +zj`;(VT7(R1Ig=)KIS+m%hzFs9DL^M%ky@wk1yQDy%XG(4VxlS-C1l^94=}On1xXI! +z%pz~ytRR-sBfQk&7z+k`mOF)?NRzFnMux&Kjo=ukuv@kql?eY5R)NPyu#_Q%We>^R +zg3E*3WKuWg?PaKLImAe@yy18tOFxPN8D%VAB}@SiZVQDj3HWa+a1sTQP+;fUKH?6! +zWKfJ0?&35Gd_Rm^&?v1L=R=4gFgyV2EtCt|+{dgr$#83q0_j3=0E;Vd{8X_MCp +zZ$T*IA13CA8A3D9a>a5vGN%m_fimp#g9sdXcktL)ZL+i-KJ1I!EUvlMkswc3c}!#a +zdSs^#W2of8?*pSjJ%Gj#5kNkN`bk^D%5w*t4lPmN;Xk0T{$mAiPrRWVRQ_lvPmv`X +zma`c#J4UD<42PONDDL3i1w&~0Ec$%~j@{ZQZC))%)R-$H+S}){5S9y~Z{m0SUq?&w +zxdEM%7B&jNDO9(MSaF(V7QwxG5sGPZ1w>ejGa{Y^j(QW<;y@TV02u3#5p4D*u0xty +zTf`s*D1sJwUEWfjNSX{*md?-B5_br!YFTi1A_g*cmqu&_`ox@I5LEoRK*f(!5q)!{ +zFZA7w8wjp6!mD%+6+eV7%xjFpyI{Ajy1OvgOcgBlvqji`?` +zvx(SPStOj(z!{NR(+dEQZhNWDz;Pv3qN*2WC>Rk7z|H>zv>nE)v+W-P3uZ|`mEUv& +zsCwp;w)zBalMh{~82d_=5eWl}06X{)7=10&cFt`qpmU+`JNcIPNnzI$^KgfCbY;S! +zc$=JN?blC9cjQ_eKw<0@kPYG?IBa(!uUewSaM`KY +zh|uG&uN4w|#P5`dT3)fKSc%bSa#EWlxp->UO1}i-VrH6xTeZ8f5NRygK+kIMT7IC= +ztU$r$U*Q5|k6zDvY0jF=?xeYf8vGxXwdlk&Ps}Z$UW7D*nNu(|D^Acb_$Wlp&O>1L +z5_k7g$#*AW&%qnw1mHC2MfP*x-G&L_ +z9N2(AABJ9h7-;?aWzspvSy+h;H%}%=_r-dueXUkC;sWq>po3p~nc}bxjv9mooM~j> +z{2!$g+jk?*H&ZS=S!*mW*9)=5E5dJlD$+in@r9o~9upPvmc5R|rDx*OzNJW*A$<7G +zLc#(hq=^!B7AqS*)f{W*cPKR;rQSYGXAw{Sc9*BZcTG=N4pp6w({D{(6v^ONJ`=dz +zzd~7YWS@dmFi2|XHz$NA_T%(_cntknKkR9C-^JvjRLSA(Z(uDbi)_37T1B|l%~ON_ +zq9)fPRqpu%=>F}kQeD#Mc1$uCGvaJ8Ur;sJbds33|C7NOA7e03I{Zf}ycT5hhaj5i +zHcgJ;f3J@Mn&wCpKuRM3JT&W7u_Cyz}zx-86+-NiN5RdVUKP+kQH}MMsdZ +zmbx={j^g-N=YEc5vVXjfQQ*mw{}(V(gMS4qIT}|mlES8c(bj}t6U&%l!2oK1Fddq8 +zpj|;rRCJJH+lAkyHgV}{{$=g>}FRrE@DVJ>sy+jB@o@@BA}c>8D%Ru +z+x3*L=vydNZyv4Jt2K_oe%cj<*J<4g`)WhgT88Ut&G!5~TG|9pUBd)k93k&iYX&Ky +zyA-MrrV8H`_Vs?P)(oa^bygllO0GO^Fiu +zq}uWiM36ic)k!>#+{+PT*Fq0m|9A-a(6`R_(^D +zUCTh9CHc>ERF}-4T-Uhu3gy0mB6p}&B9f;X7^TQ?MuvmK8R^acS3D!vGHMI{FqY<^ +zx$LThk~>7Ay7cm2q?G(3<+@*_bpAyOOcL6s?24tR`k%#}^?y{n2D6wjslhd_Dk1b( +z)Nrj14Oh7Q8xAgy6K<5QK4(vJ4yKedzexG{7b(Ynk#gi0DQ3Hr&^?NN!hbkPt(pjG +zP>!AW`zXfVZiGuXbzHj7b(Ynk#gi0DW)xj##iMG-yLN_Abnk;*!{^2~g;bNiyZ9EMik7F1b+Y)}_JZ2m} +zXyM@gb&7kHO78rv{}DWV!w{XazBmzT7v+qNkB{2;8mdg{Tr({j@Cc+A8`?# +z5lPUSOVpaqRa@YAWX{jNv;DM72?k#SMC0E?_+j@wbZn?d0>QPb0(IJzcX+nuZ(HE1 +za&;LblU;#2?-6}V#ObMPbaim}3i^3B+*1Od#teVpuW*xElPvmpJXNi^Lm4bPJQ>)^ +z78QUeX4g$nXG&?fV7&e#J%d|W-KP<{>iTEQ<5jxTwLYOIlOs-jpV6DB$F5RoA|B#m +z;dd69BgG^G)-v*Kh`H&pLgjSVyXw8!>0BCZZweHaiTm&2|EOn!M68~@rdChuwMWF0 +zr8%*SdCl!M?wjaub*M{JDBO%2Z(N`MqZ;@l_P2!CIsg77ZG6FFE~e4cz*7!>deVmY +z&p5SP{bv#oZ#c_;#-;W3pGnlZ`_FW!);bkDmdtdaHg-_Kz-P5l{Pzz2TgrcLK +zK}vpuc3Z)~r?jjB?J1XbE&WZ_`q1AL?F#yvrlr&0bgc{h?V%-y%95y_cMF4iE8IB5 +z4pW@A;XYu@6vIW%-{gQtVZbFcV1jo8G2ZJi-Ya;#DaK$iURvS>gN&?agGaSFgACWR +z^!;no4GE=O8FGEiEDpa9C&#EweUqmSlpj9>($3vCF`tl_x`bn^ +z%yK7-ASJ`bXMP(%=#t(pO*>PtaRj+;nJPP-5WkEjMJ@c=q*yk{%Fm3p>vJfU%I +z?cTouE~yDu^5ERJJ7|4;`&%BKxXL +z#M|Xcmcon28h#kDZallI>#X-e8W&&p?Q>2mFep2qi3KX*4B3ESvOKZ@`=Bpzl#@%6mua5BAv6TE9O{A?WDpU4I~1 +z*%WeJVt2vH^Nq)2kkJ@qAa@y(!Ls6xMP_itAs)o3U-Qnn`@nBBJ45VY4?By|AvA!D +zrlX%Vma#+HDtLf{Rp}_UttgdFFRCisBlwZNSSW;5xTmvfSA~#LYV5AJ%m|1GCKKI{ +z=;CF6d{wD?qzLp->Yhalf&b@vMHoT-uweANwlH?Bv|>qIERF=-FBr=Se+mZ?FX}%Q +zU-apEmXI_@*0-lm1-veVwg?@y3b=G6*ga8)*KN&>P}KxH&sMY_$3@qjU$TkC>^>bX$`uOtU`t&mO-x0lm+UQ|OtCV6F1HnC0y(DNiKb8sTTsc +zJOZOwD1i(Aeb^9QSJTl?=st`n4WZ{CJcOQW%nvW|_-D?E>A|b9;d*(RKC@gOjED}@ +z#mo9*E`2b%sBq``o1FTte5lcQqw2qZRD(APWuQFE>#kU5jrB30myv}4lUQRcFjE;7 +zF)KJ;+4<*~#Oq^>bxqT!m+PZMw@@+;^c;W<6GV0MQ0)GtUF??Gdb_I{l?QE1( +z1ncIy@;7@wA|N4SN5u6_BcN#UWoh!MhS;-51X$Rlb@0v2N!I$S8&g@odXFVO +z;wPOutWv4OAwHRtOg!%C-F-I^pwzcdXfRk!X05!;F773KSu~~=FY>LHQ37p;Pqj(- +zJ-Q11iFtx*?JmR7Tslf|c`x_1-lwHgf33yTop3iS+N0khHjad{fcI)GSiIfld(?=a +ztn0KSIX*$s(E&>zk7nu*clIAt^z9ASesKMoWTO}KJ_1|4DG_+*R7!{xO)b8)bG3Gy +zs(I=rGz52g({wH+X$l&XTAP4FF<0!)=K|?*naDTRc#ov4faC!_Xe@lg96!q=R%Y!M +zD8uG2xu?OxfPz%yF?Fl4uTA*e?4jL+dlj0Y2ziF?dKM(A-k-%98izWH5v#nu!L8oP +zbr6=WDRxMSXB_KoCY+2tDnfPru+a-`hEhJ{ft*d!_svN=y%~VQTV}1-IsJ?Ju=C`b +zG1)y4Nn*fye;!dU3_CnFD)%?!>c~2DE_k|iM4mDRgvPiKJI?C}&2~lJTYKWU_Wq-< +zq-_n)j9U6#;7^D#^`{=uf +zE$J00t8Uw(-DnJV`x_=(^%1L^Sefe!UEYHn-D}qIHbN_{)2gyPpUPeb9^lwAHP|x*%WmLr!S+;FM-6XQ+4D~qu2$%3{aM# +z`FoE6bHw36FzT(Ks@fc1i=qaep%h0bBHzlfb(qV|f#br}##(G&aDPVtlyk+~fu0Px0&|7?CDKh5$RlFApU4U8TgH +zmD~i_@gK=*-h|K!8Tw`&mZEg*s5>_yr!V2^)Z0a^8DNPn8@2J%{6%?)Z=xkOZ*qD) +zA=t9Yhr2~^S%>dN{az70peG;VN{X@f@ +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 +zCFexpQfx +zS?zh6y0@2=6IjGo@-Dn$H7E`qk1*_CC8i!u+=J_RQG;TcO?vE`OBg2$thb8@D|SvR +z;c5+IJh9e_4>&#O{{%wsdPQ0AoIrzDp^Kwlrbae3m~;MiBjcsG;6yO!Nwmg`exzb7 +z{bPnDLa3>6H7vM$hxeH~S!zBhzK4^TJQRl8U4OwnGY%Sqz0I(V@+LNdlu>%NoT3ga +zqz;6g{=?7PWIy@pf;uawL0MQz1?s*b+F7imakFss!p!}1F9B`@-^xxxs2H6%pkge_ +zqOXZ6+t}_on`P}~&q*KiBcjgwM&a9^2@Y5(G+kNTo*MF1;6CyQ2gswj75IGaWpZve +zK&@784aL6_GDkj}l=61ke#WCSI}~a%NebY8gYJ}#FytPZ)?V31>bfk+%XHgltL<9N +zd-Fv2K7J}lxisp-N9xo9l +zt^=vaCU(c>evwtK7?><)m>ZnDS76QxDjO`J^`2hw`pz#o)H=7ZtUfv)aWo$gPMXQ_yUyHuu`)hs3uBEP>RQ#An{-jIyOY +z7`Gi&d>_L59(Unhr`A3Pnb<4ylc0()`}6E}>6fC=5&9;JL=ZlmHWPXGa^`2Lx|KBWb~ +z7MD2)G31D{7b)eHxm#5Sk%>w38(WCMo$;N&cAipqxfu@^x}M3w!mww(9bc!P~vX85qm4KKvVB +zo#Y_h*al;-Q0wnkosKTY`si{Hqwh+IEXR5~udAd;Qst4V|L`1)^-hZwzDQO{{PQR{ +z#ph+9qYeWUB8|PebqAYLGS$GRqvE^%^w}Ona5RniCMv7)C&n0`J&YzpA+vs^{4&8U +zwvVj4NSN_k>tTKlgFzuse3;KO)U!Io^C3={tCYp#tt=G7TLFFklGq`U^I{Wlq+Ach +zKl>y^l49eSMBMj>u+@_Bl~+ur^|A`Pt!#eZy%PQC4}C$z8doGpU8BcI(D_W;15uwK +zP8NsUru64pd7$7!?vZDK{85C-p0XJ4Yzcb=(X%`hO}n{0+s`cu!TvNT=Dlng;~^^2 +z749Rxqr)GI{dJ8XC47|jX^pv^yz$VowV!WS`F1J(10v=Wr~v(i8k0JG=0D-EF@eC9 +ztyIim4o0u95o3yIUM*h|A$<&QOSI#;Ux~rYiLu!HV+vI}4bVC?a&ZC+K)1t$jp0;V +z?n!xI`ygw{t~HP4h2Mt5W%fRWeR$Wpb>a?d>{nUlb_qJJ3J8ab%Eo@-z%3zHu{B9; +z>v_E8TDQHXUyCKsiU63|K0*<+lSd$BX$P2S#HBMVjI_Pkp*kfyR3KoSd4M@Y^Upl& +z54jI%HFdv)s%+|&4r>`7*v1pWy!CPnV$ountO@mC+HiD(Kkevjkp=IdbTEojSsZRc +z-Ge$ye_KIat*6>n_Bz1MNUH~Fo4MZ~3J$co<8jSb6ElHZq7!)WVrVeu9uOl`J8Q?Y +zcV+HV%I%kz*{|;(?9qYPD=~j{+O`^d24NOCcLCxbQ*WcgN%`1*SM&zCxK1~*Ny1)< +z3Ht|z+4%@bjVPIR2n-VTFp*xVDH7}xPrn5Gji +zl8*WEH)gE(h&|(f`vmjR61}xI8LqfRuvk99C<~_pq10f1tG@D6Y$s-J +zWyWo+Iq`fo%QOYXLsLH*Sf%;RE})gARc(mxFq(wqYJ*+uLADNhH5eg7jq9klAKq5B +zjOz{FVO2JYCQQ1kpH +z`TF(0(AHXhJQ|a{O%Q=!PVvdlC&ManGDr_Z*SD1?|Ln{1;eS+F1%{m;M}n0Sq*P4FW_TMWHN*Wa|5 +z_zC!Ew>SWNg4B%mn09^j +zPrNdC(>lZZoN@IrzU5;uC2+oUw=@!Y67kcs+T>Yh6ov|WTHX19RjmLOQ#F>FH6CkV +z@d?&R1S7)+n@)$FMB>Js4Q80K!0;?&4yR0ZglaN`Cq5&_QkHf$wAwa*+hv;4PlEy} +z2Q3#9xHcU%9MiAeCbj&G11%W;@YwOYFAuanKxTF`*X!^GkdB+iQ*i=K&7i_J5MaUp +zUw`&TYAcDh1WubJOewKnpfYwIWE?$;hVJEt@S&Qj9oRGtfSxF4{Z)%_Ah-buoYe%T +zgQyWO5FkqU!%c6Zj`bY$R(Y{Xd9I>2ZPs1ZbKy)`NXu?9`~GWiSt~+T-Z{5TjHQgB +zjHiFB@ih=il_hiMv#Il&9%}_8zB_1IH_eWWNAVRP!6ypIG5HWLbyJ}AhtN@AGy6?T +zpOaShKBxvZiGcMLW}+XVi=$we{X-ZbR~QVt!MlX<>JeZL-X<^Fqr2l$_7}fX+!Lwx +zNC^3E?n{(%i^+8G-r%jWm8KkwmrOH}(0X2ELv&@cRaT>vchYKnwd!>OIadZUmGa#o +z*GOx+dQq`SW?$*6b^pS}Ss9jr6DBSb;`aa|41IZqtA +zvFWd|D_@~JSJ``;xI5={Sd(Oy`^R}8#CHIGEDgCp8~*tm^u`F2w=M)5-PrZo@ZtH( +zJ&Vc?L|1X`YEf=!v~$(H_bR^osoVzk(j#gx#x!H0QT3)Rk%j)s@am`+R?NrYiSf>uW#Y= +z602@;4<~%XjxCMCI+JA2-c`0#ay=2`JvoBB1y7X1N2|deSA0Ly{|_h8k%;8F6@&sZ +z{%o_{x|G{c{9kib@tH{TIoohrwS}eF`O~n`wjE+kJ9RVwW>Z_}_<%F|V^d3bd6u~3 +zbLLjNl|T;sdG=YwbEUSYom+&R+w7+)_8p3D6n6iqbwgoe+964ZAxHn=0Mik8F7ehU +z&FDyVxKPI$KYI{$rK^D1&wG-77D=KP&$AXR|_9EeA=7|WaG;B1-|m#)8)hk +zu6(sm3Bv#)EEV3`xXebZXNo1_r%^j@tqx?OqUX7yueuz%;N3Bnn_r`JUg57{|^U|JvNb*d!BFQiww{35&9rGX1P{rZD`( +z8IsL4o@wL=r;(#aUs-7$JU-qC5OHq$kK73Eoapite#<8$FCuHu8Sm+W-TZr!P@}!0 +zp(Sj*q@xx-l=hmnq(^aP^EWX^HyrR7_wfhpQT(9!fg-$Qu%qq)$d?Fw(=WWK&8>#b +zU)_7Z;#WYW3aLP?xhZc_Hnzp$1wQ4Sc!P=HE^S4Ys2#+2bvuI(ST)|Pbss^N&zlS| +z|LG^voT`^nKCq`!J~pRpTg#^oo2N0Ztbfm$37+iSLH|pKLHb0iV1!}{%=iJdxoK^+6WK@RA3|OJU0OGUE>RXu +zK>F!GH$cVw-;fs^8uosl=*h=(8yI9NzT}IT`h3z#fH~HhJD$=OAxJvzMsWY^J!4g8 +zdC%C?d%b7kKtHRcaP86CdnR6Wde0;*Q5DZRu21ouBBVc{F!E|?+v>Gl>(@WFe$8wB +z+M)I9A+A~U&I3-z%$SOd;2^7KjZ7GxOj9+9-Ydm>H!4u*SyLt6;>BCFc>6Yq-!_Z4 +zkHp&+@fH+sHRA0vItFQuf_EjN5A!@)KBhR3TtL`q9n?!V;fdBn*_fHDE52Lc{n3ha +z7o{6GGYSKa*O(D_7y-jdG-A{*Q8rq0>8QOgp4AF2F-y#`%Zvx&+473Ce5tx-t*M=piDEMN>ez$5#vBG +z0cA1dj(@^C9sIiibqxl{;Cs!L~K?9vMv?yP%7XdW`g|Aurx{~C|JBjKtZr= +z1PbECK|RfLTX)6xc~aD*Vmt=ln{OB%Rl$=yjhe8|y(>uHP)Wr-di^J=1!g~)UdRwg0tqD8`67Y_L +z%FZCD?A!*GotwS&cF51JF4VqvYKG +zP`WyblDw5k!8B-iSSZc@U@&zHo`Y%qgIVm~Bj}o7`Ts~vv$+33ljKs$vqP?#G;R0M +z;hP=WcXVIHzWClRU{hCxTmvYhS1bKdSbSXX)w}om=96KycBk@wwRf{Um{lI^G4((- +zUoDBx+Z{ +ze!~}1XK@DJ#w*JLIDO|PGS;ZuQdn2TxTsCFSn}No5h$F~Ao0`@QKSFkXxUqBVNaoFp=6TG#mu22P(LAr2H%I0Th~_OY^X`^;H$?L^L>&&*c$vmf{I_ykE~Ys0 +z3KU;6Ok5@@J~b&q*War6pT{cAvfdgTW|b~l@-eRk>bxmlj&eyL`xPCG8wLUWbeqcV +z)|k|q2>W4^5MwSJ4*etk;Z6h}x8@!YzK%T&U5FPXni2^!IH9ZX7w7wt-})%Nu5Ey} +zxqe>607ts_hZX;$%)>)G{Bnrc(*Xbh{L{FnhA$LFA*Irpo7!A?vZk6ZE*@2ks +zi)6MVn!P_J`?m^_eI!1TeLN<6hs^#@H2dS2>oqle1RlEa9Adi)J8ar}YbCp3I3mC+EZ|kyC%_?3`a^&XH(Nq0IV5W?ghn +zbo#PhCbf+j&fE3pxb +z!4w~~X7=gX+rJ&}oGk3@1a4FOmslASDt^$+MRh*}a$x$rx)f+^m*iGG>=5{BMrv9P +zcm?eiqWpQI7Wj8D)2Jp04qUh(hdR}KQ@o`=S|d42PjA|ZC*mU4v%2o4?*6k0&e`V+ +z#L$A+SOwtucmw@Luiun9Cwm(Hc%V}8^#=5J%o0J_dmGkCPqcp}8=0BieH~hQvb&3(r5DVS +zM!);8F5QdhUph?;1f%*FDw{8j7rv`*{nq77r@!v|wj24vj%=FPVVMVtTYI5@xRGs} +zril}uh=6ItkY_fq;`%f*)J3Ut8m~;|wi_y@(GiMa0Nqin&6 +zHh7%u?m1&s7Q6x`Fig{fpiy+}F=lN5Ns_rR(TYO=NzMmS{YGB8uKVTqk<{L4=7lV02_=FO}KPMYCUv$#$<3Rzk^<+#|Uy;>MW|hTcIYriWGHZTJRvVGk&OF~?YQ?iU`CL^!04g!>>N1z}LA9e& +zuIJVfs-RTQ06|4e#X3*?h~fR1wL)%fDslfZ1}gU};^C1ju@d+?GQn7yWIBMDo1 +z8Io+vf0rQ*=QWxt9bM?~G@fXb9x7O;$oiG{$Y{{h#uech^fQkDe$Au^kQxu4M$fEQ +z6TzVPcS6Uaa|AyM=Sl*mSHyy}K#XF*zcfhYUSrHDwjLwy;6ZEP){yIApx+6!gvJ2+ +z=jq#p=HaxM2SI=MA4O--lIV;;&7xH)MwG}{j69A5>#~G!1c=*)&oy$ubN +zSc?wkCZ6#f7Bq(65>f +zwLwrjeRxr#w2}#$ogbzW)ge=>56;MpwKVW=_li*%!y6bgjSu7+yHCI$$XY(&W=Dg6 +zK$Kaov$)guxX{n|235aBRcj$*N(i-4VzGtYKLj2&XUI5BJE4e|!86CwP4O*bVYjqm +zA4;sjob2tyV=3jkih`y6cf=l%?q8Mn_pPy5oCU*)OCS~@#`umfb`r2QgB5V}zS+(v +z_HN%7pGQZ*fvSDmm5;|epO`ZLQ;TB?ozk=RO>@rrZnkqe{XRiRdb;xdX`|a2^je^6 +zuxG|!Pol5T(PhV_5&0U&Cmz9`Ez^VW!!L~lf2s?IbN8z0^Bar#s!U(;H$VXg6!zBl +zabFtoztpLf|D}A;sj3l3W_{f4?yUhK=BuSDCjU)(f3I6DB^vH`>WtR*58lJ2G^PUT +z&M+({EmR3kkdfjjs&PLwzY%xW^JXaz6^U7ChT$-S*geKnG~aeBi=VZy +zVf&iMWj9=n#Aw@cXonbmp5=eC2)88#aP$u&Z13jM>OiWHN}<`js0EtYq&v87%Kg*+ +zxVGCLAG&vS`omMwVR^|d!4{Lw_bFRlPG>hu-Lqo8%=_^1!VOBq*ZIR?;l%oEe}-qj +z!+R{;T;x`&*9AHvltk`MH7$3C+KI4&!@tWNmt9d!-8xgLUwL|m_n@`fbY3m}U1_^t +zKHV6!ccA~{v>nyL5ukJjx3vI*c1ulxgZ`4)zaIQQXkWl0GsO=pOoy@v0K&T#tm|u_@V$ +z{FVEGvm0fdm?uQ$;IrG~IKUG`X7{tdbl}SZk=X%~ChCgY>)o6pWqe* +zejNG3=to&vp_E5lezSkeG(SSSq;f>hPTC%L6mVZgttP40uvPK#7tDdUq?{e!=?Dc)J7mcW>jxtE~OCoAYg{h8N$u0wgh+FA|QZF|R6 +zXV=!9S_1oK_+r{ky@7pm8pjZg*fw{5mMPBg9?z4GB&|kG;SKCWgnQv{h`kV%I@3)j +zMV~E^n>BQj@GP~Pw!6*|P6!m*Y2E0(Gur*Afp3BI?2uULoF0S?#*Ld; +zJq`;R<9~1D>VqFzEz;>ELZqJ1GsW#Q8tmPBz(*mU(HZa~DqU@ZWC=vqKkqo9aZPo}zJ8`b(p@`s}biWE}BM=vVF*Rms#} +z*1pc(n)$WHT_qHU7#;`#pX{imezc+R2L(o*DA& +zs=cPzkr?QR&SqESex)kf4jM!Dj?5im1i4!k-*QyZ8E@9T*|ou}L~XCgG+judoteUu +zM8?{HpXK&(!C@x3(FMaFaGyn3Clfp-$U^Sgx^D4gfdtzEa4LIkAmo!%(gob=u3ahXbEe@N$?-!54*&C^Ev%zSxnJU5n@mTCqJKmfL9>`aT?pZ3~6k729d5l=7W4SH>6YAI!0ON23+{ +zHiaRt6aW;zMbnRrCb^R{{Tkuea^8fl!lwTuf+P->rRfHwrPq0w>Bl458&zms; +zB3;zBN_l^wy65n29ux5=N~t}SjoU(%R<%c;joS{$*DLM0v>~24r2L0THCVI?!?Q3#@L8YHXS?A5(mYq~ux8FZ8yW +z?-Xdx$MfFIAcl-h)K_rXH|TkMBi+R@25DPoX^Cp;HUBz8=sn`t&P%-4;LC3f4@Tv +zPAX>7;wFwZ&6VTS_H5&1>dyRW1$&oFSK9^(UDy}l0_hG}_z%!JrsHDl!8|PkG(|f) +z^A!Jf8-|CWs_n%vWelP07FH|W!EiT}wq87o!gh%fupSahCL4k)zGpcBgepe}6<5*JMItlT +z#dE^LobVm5M7ETl +zBX^I5uy+vRd){iQWY7GzCG2^!r$s3PX~o`2{l7Owf@BQSiotB-JdLFRNgVv2n~IBIJ76^eb`7+DgY_ctd{B3#c9 +zYQ%i5gZljx!q;q#yIt{xn%OtLSb$=&01Llwj)u!b`1cXCr}o7x-l0;ewR2N+YVShZ +zx67~x@CVK@SauVG5QNwH+0J1^@ANiL{60R2n?RgDVvY8{Bh>+tLjUH3pr}t%s%IXG +zwY5fO1Mv|bEQQXZb_o6{r4O+=5C$6XGo`;Klg3!3eE`^Vj>4+zmG!)+YgyPjK~hu7 +zf`N?dM>{-+;^0Gg0pC^cVx$lpEKZCOOy4;I1CrR~=U}kLjCu~#GqZE67|;%@ +zpt_Nf>V7~K?@<-{O9P_*^o>`M^7eqp3S1$2$DaM_zFZPWybuXyBVNn+vyg|w)njjF +zY2n{%zA45y!$5OPJEU)c2ID03K*7BNLDO3_BAlnqTTo8;iQ215~|!>Nr1bC|9r8e5yA_g%aQ +za23lj3QDP)lI6H_z6`$^S?wY=ioE`am;i{V=eGc{Q^x~y?22y?rvUdWzT5dZg`Zvg +ze2kHEKYkX7x<5bTBnXa7R(u8gigUnx?rx1f?}$l%(-wW6&d+^C8GgQvpVRqREEY}h +zb2dMV<1$Bl8yD?T0Y6_WHX}k?X4mR{>15X?*o|({`J%~}3$FOv!3A6!ArEJ!P@(ch +zLzD1#WgE`&=><#<5b$7H0YLkYv|8#1Z>MkWZjM&+2~LC+RBM|?;P2Tu{TmH8{d8%h +z`d~ql+o&w9Qp)!mlf(-s_I=E-(#vZV={BQSJilI<-qyHPJimeT8^!Z7q{IJT*}mOj +zt&sx&(Bp6P=n#*;(j&HJ=6Cc^Prb1=8pq)Q<^Asr1N&@0p_)l`9K3O#`9751Gq-B> +zFQ0Ctan@&SBM%t+iiASJRxe5>Nv^aIXHgU^`m +zEqR}e{W2WRw?iu8TTIDwC*&vcOBJdPDT~Jv>dB8c@wMVhrNb>hA^KjN6f57Fc58KN{rvrCHYpad=!xSqN`A~jT5%PY9@{z-5WLl^iBUe8yNO!OnC|F#Vo8@ +z5Vi?ccLgYss|2<4B2at93P{BQm*PSqFw~A&7hAs+sD)-cFd6|iM&LA|ZsA%<5X5|# +z!7cq!ey|I(1OE}WXL~h~rB6g}jnR)1VYK$xCM!^%4g%smKCDJKhne^ml`@07;29wA +zL-BlOrSTay-g&Qis2xdQ&ZCrSbum3n2yQYw_OhHpWopF{!%*n3o2N@K~vF +z%(}b$wQ75|DKz +z$@Xs@;k;Mz-!BdaS9YimZjf1aITC615Bk_Y6cTB~;o)`2JO+ng{bc5eb6R6YG8;7?`C^N-?@N39>?nVge7dX<4|CP;1X7A@PC33YyzXF}I_DtE-JS +zXjB_;C>WnK$@$xWv&L8_#9b}{kAb^N2+VpY3ku`KMBQuBRybCOIUWPl0v#JDOF{1g +zG#>o3O6R{*yib-=r*-z&^;juH<$>X@HhUER=YqR-Wp57@gMW<|I+~k`OLK_;h@4N| +z(dp%Pa;Fao|D+{e>cFC}Wk;uYA4dz@#8~|mtQ+KV-pd$ZVHHX}QbO(akOg}}ib>S0 +z(Jjmbiwkf7x{@lJ9K9TYkdb(2no8%-l1OWco?I!^A>-X9xucD2ddkPhH}K7czYCG? +z#v?F5>1W19XF_S;9b$6OWTrhbX?}>G0)tAVTV-Qc3y*WM2;D?T$#i0a9sB%GqC3Ul +z@Nh&*@4hr^J(Op50OM^}+w$AuDw~i^)O)l#Gh&BDyr-jLMjsEP@98#puuo5s# +zMFRZb`%(XT7zpcrxuqOZDNXS;3Y7|{=~$7V+-X(s!;ej6+dWsL+FM&y`$kN)o?)!W +zk%scAk@9WvR2?WT=~Gyu_Y9~M*oC(SIspPm9kO8S&={oCWB<^f4PB0hQ_eqn%?Xa@}s +ziSl5UX;<89ReUdDYWC{)AL7^%l;Xdpi64j2W2Yu@D&R~Y{7bEPE6i>E1M@#a%u_6* +zK6ZZ6koogqvFDAZ27$f&yOhP#fgn~29aES7)Q{}u3A_fnJ1clQGa;E_RLHBW$B2bv@;7o194K(1zkwkxka5Egit*Prvv^3lJK@Fb +z4FN!Pv+3Ln{O>RqV~S!IIHFGSQx%^UCdFcjW(X6;H(wBhzWq*on%sO22vy74O&!>3727i=|I +ze)`e5t)2jX{aWJ%7hu-`sVUuf&H{XlPj7A%yXo{^6Do$dAb3t@?|Upj#(M7nuoWj6 +z!)V>14}thh;67^SABJo)xYBt{PpyQ|-IJ}-hwX~<-n*NT&t^HYcLNL%9Vf6xo^0a|TEKQ(=>g!|i +zo69*u?Wx~MP#EmtXCX>8_Q~>IQTfR8w=#*`!^&5qR59*?MrhZITk7C!=Obt#9RHX7 +z>|>@N@L-Ag>A)H2|Jr$S(PBf~(RtS$#AA~<6yOz1(yx)_uCVh041;wRbn8>%;eB+jviKxrlE +z6V?50iw?HlWR5;j&UX?yXc7_A$G5@8M7jYjjmwD}o{$}}i +zuxRockFXoc(za@KU=jikgR(zQnK*2y%0 +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 +zZ<7XlnKaaF3Ds# +zgvPR{<3;Au`r9IPtV^4a6u7fQLYOwv-e;&w@%N{^fy$yj7g-{d(9#MiU-n%~srtyN +zAjh3~YvA&Xmwh%PTxJXS>PxgAc%mfGzkmoxCi)R>7NVH*^#s2)Ri7)&+8ioITj*M!*V*_Rb +zqfH&_ZH!Y(yp6=K=Xe|A)oZ+s3G74|-*3YCse3muTp?kAJ|p(!{@9oCu`feoU;5L_ +z0JBRuvP+l225oDSnS5pR1O4Kd=Y*K&hKb-V@W5_lEQx=R#okZMRn4mE;(ye-`fzgLT|>t{5kezLF~)pu`km$ +z#H{KhddY23e1(mzR<$Jhfu0xh+&$*m8S~sJ=GhVRY>9dPeLb4uRlV#~IIR1K2RJ>! +zPOoiGiLGwCmgT+o)r;3^Mcn7C`#p*TJ2i(5v=YcT3xY!|NHuWzAk31Dq>$gjD2}K_T}Z+muJ?+tna*aqDydb +z6tlilqaWzwW1fe_JiB6^d&fLy#XP6SJg2UU?AqLuxbN&J<+W9iT?$QL9>Aeh=kduZJI8(Y5H`5{6~qH^yz{(*YD?Kgxdw_=b4p58$2CQQ$(v*kV8jb +z;L$wIourfxjBH~Btz+)ZNIAwNEy#WlOzR&u;pJQOsURym%zP0<@EjVtll1z-JAP1} +zHo>9|j;K-INQ8~C@i!q^y#;|?CP;I*>rQ|sIftPhWQ&r0*_{OG)aGj3*IxR+8R~;3 +zLp@VEHGTh>*efp*sbjo#jOP@T0gYe+B&M{z(97PPME8x<->@X3g_om7W{QL88GTg +z)(~*(DgN#1Marg`rL@{CSh9a03DZa8m{$3nX_Z+QG32OShycpnG4t}^Xp{U-#{}-U +zE~c#F-wp6ue{m~X#|3v%{Q-T8a!=vLkZGM8kt%4Nfh9BxMrVnG=BDG~K+ftT>4>kg +z;B5 +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 +zykLJXMgIH?=XXZ_-2bJ*W3XqmC +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 +z8+xg&;X+Sy*O;gJ$$!S+pDqDX(J;!Xj?3 +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 +zEUE#BQ8*im<;AzllHKQePPziw$fH^}d}mPp +zs-le!qH%R%cr3exzip!CcRj9{NNE(mYls83$eV*J!{Dbic-glfNkrTGV$@Bvq$ +zVwUvd>AOgJO!`akN*T;1^z0i{W-`oT{Q_6CZZTHfhiv?H_}wffZrXNrerH@a;x=!i +z`*6IwB_7u1sQ2aQ<>|-W=Pox^{R*xNK1bwABt`38m3nsaZD$u0#6ufHvwe&&Q5vh7 +zP&0LIq;H97hb~l|1^vVe$p%tNPC=rUm64`o->?`|beBvy@|2-(PwOULu1`^QY0m+| +zg%PA553bL1O`h6GclaEJ!QP*h4EF|u@8!1E*48t7)oGp +z&bu>xSH`FK*lz8a{l57od`u{AoA=O4e5~>0`yWSs6gllh6F#k|T#7UN`ollBwN0xs +z{guRwbegBgyT*jdINXQzo~=dRD$@dR$d|ac7*vOHDdKsyImupR>q +zKPf3FKnCy4;MSc``l7^Aw@t~xy=CzJ6ule4@+O6^qu68LL5*f84yrOO=2`3Ki(cie +zHocFLzi9e9f@-QHK*47^X{`@!KNHVtt)bZZP5RSnjBchk!!Q_EAHK&U)$YA< +zDBWA7m?rWqho6VCpt1=y5x#>tfW##)X~KOI`{|6!d7cJf7of~xIXo!)6A#c%AEKvL +z?jdx93)v37@>2C2UYzZQRpQy@GzM-}$Hx_(UGhz?XP_QV8P|=4dWd&ljCcB#LCK!l +ziX#eYR*Q8bmUDl4ZTfNFQW~0S7MlM-G6ds#Udw}_h^u)+_TXwTwN)3rpVyfCOscRd%Te|;+#NcL(II-*2G&DX2D^TuhHpXWL#f#dVdM@F9 +z622wf+=@)4Bht5q(=R#nGyv(crXvV3#;Ugf?VZj-Ki?}{Z*w9Jz2-gm+6N~y$BEEX +zy^NZZ+5(rV?bX$@RlZw!#N=t3aMJg*VW{_{5&=sI-%O%vjd6ADsG6~A6u+*8G_5Hj +z>7-A-lG8MZ$ywv;gYPl0<}|LhvQMynQ;51AH&*S(RQn=zP2Z|kB95OrY|7Kh<0f2O +zy^m9b=mhD=) +zyCy^}vhfjn=b&KzSKh#=6)*-hCP9R#7*T_$t>|^YrJ)?bI7!2^VgJM_F~>l=(8lTb +zYKhS1#EI{l7-FpYF`6P7si(V~-B=T`d%#@Y%)G3H@p?>_uqRAB@w`$S2f9-c%`iSRAKJyX;x!Z8L%jPh@4SkRDQ^~uAYl?BZnGm +zZm4Q<{)mroCjH_+c?wr58@@IuvymCaZO@iVVBTEqf1kAap?WxPi}H^jz^TkT48Q)y +z=HUHvRo2$FN7o4pNBUd2V#Hnab|tQz?(%j+QOBDk30X?z#A<9F$U^tkez*JsdHG)v +z6ah&`H;!XS)Zd>5rI4C!;Q}vS +zs5PMhlP!kus{TRQSfFbP$*X|oIDJarH+Th*E^_7Z#1)#6>*EO`H-`{+l6jmY1gtjU +zBPsqT`vNw^ +zVrRk3-FgH%O*w?%qN!fr{2J<~qwX{f)ng6Or|$7RK>&LX0ABMDh{7h;c@TIFJs8*DiuSG?x>wo&0 +z9!lGbtANv=L;^`~0_#VSuoRweIz(#&FJEA$AIAj~ewp5eGve1^n^tW?^`@{K+r!r< +ziF!V-UXg$m1`(%$hdjpBZ-^X`8~D~;s|UU%8T;R17}r@<{DTHL)zc>5h-?|{1VZVGsKEKAi`hG0H_BNiwV`ul7T}-|Ol(LXH>`IAUBr-*gZwHCrZ^MkHEUYMx}~D3m!E3S<&H2|Mz%eb)~Pa@+U;-c*bd+|ABh0 +z3L~#J9Z};X4wCejBw^%pDDp4jj{Td+pYEbt8W#ECVB{}SkAujGg+cp&o%2rNIp@@G +z#Z|<>h87`td_jFjhS(lSZ!*^GOh3&@MEY@PLhORP58WIe))f|0SD?OrMAO$#9S-&N +z&GJ~7GoA>o<>a&X+14^s!Xvw=al1>hk_Ik>MB;vq0rV_W$KPd)wc`soNKJ{ +zb2=YT(%WDjq|{+mSt*6J6CPHiAv=`X$$QLy{~=ULu}Pa!R?1oH+z-oq{c7e +zFj37k8n>qp@fQQcK<4MsE~qPGj+L|z`U}(&%tfd$IXKLDX!GNsTeF){4 +zf9+SKD5J{st0w7pRL`>-&)MV&WcZ@SbJACs@%g4UPN7>hLAi&5`FHgjWvuF{3r?P^ +zui%~GC!JVl&F49W0)j7Dp=-q77UTrlbq#e6mNl!bQ+)WMy@v9|jMFFJ6O5-J +z8NEKZ!dcZ>sOkZd(1hbc@w^;*+qT& +zYYfh~gTI6s_ryt3(o>t>wifx5Rc*XOkXji$%jC7v@yUM8=3^oCK9}H^x|1P~bNj%< +zeq5aU6L*2+ScRT%f$F)m5eGY6iK&P6Xg5OGCF3rXLFq<;G5lO8={$*~80y3H8}!`B +zPZ-~?T)L44ZQxJA?nypM-X#Xy5()Qp*GKzeuTk_c%`_^50Ks`km7<{-olrJLrq_-N +zzfZidmKWh_H8xuEbVJ`a*EI3lJHho0fA4{G+NZcya0$zwB1k1QT|-kUUj*NQ?z(75 +z{+EG1!(I5~g=R_Vt$UNoREsOLU3xkM+Z|8>+Yy{6-fDwKE7+en{~MbAb4?v@DeX<5dn$scyNbds~(EuCk|H*6k+ +zar1Tc%I*|%3{L=cb0g;lO^v#YSgu#T+~A#fd8B(obo%l1+Mu@;yz{vC{~~tAXj6A% +z74EXoBc&5BH=s-n1Jm2w^^v}T(Ox+QRVYr30Y`T{c6K?$rS&wCXZLW=H1afsduEeo +zTDa$(Z2FdG!z4457O-pcBu$4Dh%nU +z=vbA-(7>2d1re?aML4p3gx6t&^ttZSV1&5_o`#aw+t49O8lB!>lqu67YTbS%$~!0$ +zw^VMzl?Up}n7k3k2Q5&!mCk*To3`RsUA9tsfS>p|K8jLl)gaRpOLDLtR* +zb2B|EjHK}>k5Uy1^W9k>6c2b#dwU|X+}XV`cGTnb4H1l6R=Aex)pMmqNWQZEiDwQG +zmq$ubdUiSA51lXP(FPW;qHjlrzHQsx))uG^KW_*0iYS=4fO`Wcaar9k+UKq!+Ty!g +zH?4=B6Gnc&Vvx>%B~~Tj2KI;V_j2`$;?QtsZzItkC;`6)0r?w~MmxV=U@q%}`@?Ty +zCgeT}C5+^*k;*kGm9pUK$DCan_=d6n6%=luukg^?si{a`PM`s^#pxX?D$i)7I}RgF +zJ&bPD^N4#?;4{G0PuyBkCc@mRzN9Og2Ix-s9@b@`ZsyUZ0pmKmDs(z$6BmUToR}ZJyE=o|5^tdi`I!6-YaCMuA)>xy@*2xcN>*cXkwG|JM2DI4VYrv8(PlsFmlIOT{ +zr>Ci+EAA59_R!_9adz%|iyyJW1wM{@8!DHqD!Vq7PiZdW1|!@F6AkBy$?jI;2VDn2vG +z(>K=Kt5f5g-U;J0PVtE-GpzE@YDEyi|7Mq +z_Mz>uC=?jRcsEt;nl{pO8-KZk57=fUEpX*bW6k}#+<|K70DPzhGY>As@L`r=uKX3R +zVQ7NnX4D~-n{jAdCs$Ti`LwYnB3qJw%8qg#aM$Zy&**?Fzb1H)MvPAt`%+hy#NQJ+ +zjgbVt$FIA>e0y28HaPPywWh46#3fhTjZ;Z>l(4EK65o!SLZ}7v?d~VT2=C1oLI2(%{so(YFnP4Q +zRWGOTIC^H^g711U4ABh+yNxSr$p#Lysq1me3lML;R0W)g2X?L`Wr*TkTWHhkB~ +zXYG8*H8FVv^Nma%0Rv1&BGA1oxE&IF#CJJZn#YLu2Xm~b~~s^1VEZ8@&mIu9Nqg5ogRhR#ug8;0nZ>p56L +z8ykk`ySf`9ID+#KYCg;uX-YJ{sPK~miQZPIyu75wq#xZau+VbzQw@2rKs}MPk5;3} +zm#A9?g7W9llFx9}I^5s_Bw53XK=zXkr8nVQ*pSaW_5GLNCa8EVZ)J5zLB~^ +zzP#8GYPvdn8QIawUxw8d%a;ce+GdC&&p0*qT<{FQjALgZ;h$Q>eGlJYAQPml5U4zm +z1?Z#NMJOfP#}rC=G^DH^LQ?akYiPc!Rjq;Me_W(#DOou28BS+*dQGtWi`R~F9 +z4ts`}tuX$Qu7}1bJ=gGawi0fBla}jCX`KpO`FtG7oL4)mn`Gy_qIZj~(N)pLocXSb +z)+l-OU7Wvi^=Hlp!sdspONsHjTgf5L?`d6wA%l7Q^4!GG<&A+l|5bQ+j$$y@Tt9@0 +zFs+AfU@%g71&?Rq;Xotee|Jj754_D|R=Esp{Cd7;92)_Qrbz#O?b!u|SmV%9I^%SF +zQPMRrqAkkkDZ)th`Kx|a+2RK16!*6Y^%Z_Aq}+T6&#Dg6`=7vUQ1XEVn)`mrfRH|- +z=GAHZU}}gz#?z3Acp4I$Tze^zrPK0tPMv#WcVkW6nSF8fbh0m8e~Nma-$XZ+dW1Ma +zv9sfCps8|p8^5fd(SQqTV|A^2V-I6ZZAX0`q%s#3oZ~u3#2W(x8YzPnGJ0RMXREWj +z_XJ)tR8UC@qC+6Whwno|okpVM{-RF4)qPPf_f02eV1x+~{^0M04dgNaN +zuctS`0!1S)>9K0)6uSG?T~uNWy-XiV7u>sqME#J_-gL`M9D9vap1>=q1|Zk>1?hX% +z&}itv#_D?a*E-&xF+Zfu2%ql6yo8V6=J$Jr^)Fm6u^6ssNWBEMr59hzQ2*?PdjTk% +z^6ZkYHLf3&n6beb9f%>@7U0)9)7hvKu#}?qScuYn=v}z%?Ups%cCB{ElOxk#aODV^j4bzcrQidC{t~FL6`|le9%!&JO7y15y +z89iPwR!wFkCz1!@)!f^;d?*p+Lp@PGbOp(WIwPw5DE*G4-+SrzPW%P@0p!XAs+4g; +z&dTUfDW_(Pt~AJr@EZx?62NHrTKJ8TW8pVez6^f5%aOi2yTF&uhEdcZ9>5a)Nw>gn##`VSC!D|dMi{6Q +zBnJnBQOPxBb(yr!+l6*m_Taji>q%DiRrSCN-@aj{?zHrL5yv+4I<-CUavUWd!=-V- +zJNs7!{zUvdq@2}xlHS{ya&o0F*Pvdt6+2!Bf$oQ{?O}S54xZ)qzai3U|DLS-hh)gp +z02E}RCTM5RW|VOY{RA?QsLSZ8UZSxoU9eTk!v@IG*Qm0XeY|ECg3cs=B8 +z{7DSFn$iQWmg9waV-?<3_GjbG%}sczUFqkc)5P+8nvr3AaI}{Zts63^_e5vi8SSl? +zuSN<>_xK2E}kSEGL~m;Pp>b!#WaMWCN}J{IlxX+5q+WFT%!;cy!v7;f#F#O{_^&4}d~! +zqh~Om7kVf+d+^Dp9!5_zmqdgr%(H_ON%KoJsL%$|93d#EKMoRX?$_3l-%xte5O0$I +zH7G0e@%o5P$R +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 +zU4Huxn>&YEdrAWM8;BE_nBHQ991G +zYBi={WO$&_n}QkPdCH=(Xmrbf;z40yqH%g>el$Lj2J{9x{MJu*0?%T){gHH%0LZ*? +z`TZ?fyo(#B&<(ro-o3tiTinNEAg5`h^7I7CD(`~kJsN=`U9P|pPYmfAN!2rI!Wx7O +zOH7eB(>uuEd$0xfiYN)I$%K10#^n=ExQ}abkRJ!)SM3jnnTwE(PPfPDjhZJ%HEG7mFn{!M6~D$P#?!K2F{ki*b2I +z@XI6Y_rHW}CF+b-h=P%fH1+X4*J50L56gN{eEp`V4XUR;P$v&So+G`(4Za6X;F1fF +zTLkjBXRv7QA8|jV50q{wU`F|#^8?BWNK3^UiNRi|Fv({>5v=G~h*kNE0U~x=O^LYS +z1+907D8x8C$_wB4p7uBQ)$sbw&jEwv-2=@}-N5^+!tr&RioDO^j7gNtX=u(ohc|Wt +zU;47yhQkOcvuU5NV8%bt5%Wk3+|T|78tR(W_U()VKyb +z&wd;*t?e+O9|0qJS%aHnx(QR&n)~^gHm;UZ!DH2pxNgE-E +zImiTeo_|JuW#gFnBpptk(>qrzJWSp%`BX3UYR!1U>E=&z*1=w +zKcEOph1y*F^!ZI~29vv0H|d>eUG5zk_*+94224DixkR(dZB&eor +zAQUEgp&UooL{mQ)PW`=GR^8wU+<)encMB?mKi4U#&eNnA=8T4Btr$+ay7Nd3#x?wN +zwU4OETO~DlxcjGE%9uFzHCl6?b~Ifwz*Hx4nnCKd^MrzK9@j!OuD~a>A4T`{y8QqZ +z{N{-xsHa~eKf!uKsfAi!9qT_CC@ac$8j$jOzd*W6#Gg(mX;_VV=LlC0?gcXWTJ>QP +z!7kqb>~i2*>L2Q1HiH%gsbL3ND27diPLwK$oe}VE_U;?sEqHuai8M= +zqRp%q146EmDzED$N~k%oNw?sV_Ic~P`~2^<;zeQRt(PlS^kU(s|GfL5wnhlV$*o*k +z)xd*(!NaPztJ9sxn{#lx_UiC941HTiBKJl$i)sakNaStW!qLIC9o{-BTA+b?I*M#Z +z<2!RbsGm>;Q{ApKKrOF+Zk>4FMXluEMa;mIj_;`x{l$v5pp>9}74W*n2g87ZyH_&2 +z6blpLM~JrXOrx$5&%=$nJ7c%ejeCi%ObDdw5iL5}pB#W&mbc=TC7z6%Dfhtr%FEp? +zo#oDV1F~~0{T9;i;jMEFgmj(R6n2}dqP3TAc&jtTRdEq4 +z7o8?o#Rafja9-!CI1iTd&MRCM=fHB#+0|8X7A$Awnxy^SeS`d~F7WoQLm6CmZ{w&A +z)h~6Z{ykLrh+a3!+gRV>@pN^LqAO&soYX3e=F9e7RGtCRq_V&?-d@;BD``N)t=ETM +z7}4l=NZ-}`NL#pkRh)ODmX+x#fLIUe6Y9=SBO>g3zbmr;t}FyJ%`_-J&kpAF&bMj$oB +zAr^cxV|3VbGi7FIJjK#{Q!A%&>DH~Pr2Y!Tx10^5{bAddl-_DgZ{;9$j!QrNTN7OP +zcQZBTSMk6%jkD1-rn}=DHJy?4@-fU$n}3A54H0Lo>4tPFGe%BSr?u~J_hfUhu3Ly> +zl=&$tOv+f(DIPz`)j2;?+uFN1@VWQ&itXxt9q~8o(tg@p{7}X*}`!3y~WBOr6gY#ruIU)yTb-2P2gs(HV8m-ImmtvG2LgQ18j!dgWf^ +zjj$3Tb=$NRr+Yk-HeJ+NuRgtrb{h7nZq0cu_58mSJpYe$63>ABIZ_!B<89Gx$!Hum +zKzS~m8Y~~)?9rcLgr>ukNM^KCPK^=0)iMuyu*VFp9*8A-Ue^lqz +zw#oI^+`%{CW}m=>cgcE1k4z+g1zQv6VS8 +zqgZN1sgWxSmU2s3p{1-~LdURjv)x=Oydhih +zzv0ab)-~u|QdVT^&!lIWL`7nw5(*z?w>| +zjHQU~k-}1(Wlxpa#+RkANz7`qm8-oKhe&^xE!)jyjuO$0?Zp9vYgrx7KI!TlhnVIf!Q$3`b(18 +zT2fqA3e_o+h_loi^>JEUPiPs&o#qr&1UOyia^o8*{Kns2j~6iC>G +zp`ozSk}<&UEK89~Ac=x878r|BVc(~7%P5iE$J%2j|6bJX^3j`Hikw!fM7=_bOLbp3 +z0m=z+P`prO;rY1rUwxn4;bY1cc8t=JXM)+$#Agw8?6An9dW$3r_DRt?PdiH>1X~fD +zN#SKF5#N@ZQ48=D>j5``gy~bF~;_0Hi~mJWpp#W!BWS6Jde`Yf5% +zIxCRIbAkudNCFZn2DUaY5395*-yvfGq*8Oi7^n_jGAnfJ5H-_&H(FSnkh4FH{u6ai +zi=)6?ZV6R|qg|apuKnim|LmJALFeois2V$!%>v`kX2nUz24t^LvOtcp56BiGuk8t5 +zD6YhIap4SF1`Y1O#>WvUSPdxfI9mZH7~!!6;{rmI1AK&pO^mgr@;XvHgv3kZOJKwj +zpCQEqh!4vLeoK~r`)wM27bUnz9$*$hrRE6|pO4H|>jbD2EDVe)?7ti%*qsHZX|>2Q +zw!MgkS7Bm&W_%J3G;^5*wE`t_z#InNIq^xU(#SDpXnp9&p=caZJka|1WCS^BSTH21 +z;K)pim(18eKsT{|ArsIVFu!Ks0lY8vbq9Q&6Q7<6i0W*W6Mxr;`%?P#>zk319)CxF +zYJ0*@amW*Z#*MK6X&D1FA}1baXJBnoD;(B%NuE#+{Do|(kb9wU2R7j;3HWo>9U4a(Phjw9 +z;3pJP+3vKM3n5eJl_`2}LO*MvN)A{q%n)Ir?ZWej@A>`k5#f|OGb}tyV!-940=Yom +zq{JZ!ZWQP$bZ;2^c1wYidKKl>;($pQhCrbd`YH$NU!4mQ)OcYWkF?3q)dd|us^Q2C +z%h!x|7#sfP|BR{lowx=G|6BeK(>k@dqu*8S+=g08|R@B@b9jPW(M*~)^WjESMe +zXqCX6WiSgCvV;P5a}Mj3!xD1XEjcVDhh=Byu>Sq~=dhb{*yA~DBK)7oZn}x(_()q +zcA4GCTM?QJmv{6FEq9{@TZNhtIV`d{3hX82XhoiwFAdp^h%0zqcB7Rd;`E8#2uu24 +zh!c3QB3Qwe$(Ca1KSXk2(W=&c(8FrZw^#uJhXZp?3QNVgguPmzWAR|z0!D&K)0pvK +z7JzxFNXO1txKZs|zyCiQ8C6LoC)^Ex)w +z#Z3Ur(n?6Pikm4O9lH`tBN&%k#|}eSx|`c;A$-sjJ=d$Uw3ICof1^<58qhn8fp<^)s5AM>j3IF8qx6CVhbYb7ljL@@kFay9yU>KN2 +zy`H@RrW{NRm^3iMQDLzT{290bHUd0>5KPeuJxiReXC^RznyvpYavuJtYiItGzX#{) +z8SXAT3@~9f&j)VV{gz=6)(On@VB*1C4dz-fUB^BH0}?>lGw@qzDM&2=CaB!$7?WCV +z4_eJu8LXwYaTZ~<+6wbiOT-r(5ymX{Dz}vjEVS`JD{zLX4s=Mu!L1Ihza!+2(Kdm3%QIrp@JkY9UO=J?Y +zn`MHDm>{qg1g!;DiCI&DiO#}&oZVIc +z(N2IK^fYEQsw*)V5|#^AIoMy#h0xDI6;cc)8h7MA>EJuj~W$7iz_{&0Gkyom+O?-ZBKTQB+FpAf~) +zEh(s8xMkLEzz8h<=EU*IS<+F5vvl4wURxAfx^|Z<5k{lgb9xDQyv~-syX2Ju>mdb# +zY)*M*q3ca$6L=Q9VBNNG@dr@XvmBdP>onOuyWHlkOl&Q8zEx5ny{S0h(>>?qENP)z +zavYXdN3r;I=Kb>L1xHSveJQQ#EhbMz(Mr_j*;*|A%awtdKmAO$78ajB%ly>mOXBNfx6|_Z8k@7SwoYE&!rp};TX<|| +zQIU5lH70bC^{^h^$XXAqJ{AwW6Yf4hRjfW#Ag}nQx`i!0K6zWH_L_czX4rGSa$&)b +zj(O(F8rQTbwR^1_*^H-N8votSSp}YP8`)a-D-{wZm~Wd=I5qLBlWc7Oyyl^;zR>ms +zG}&UPh)OI#eL~^utR6DpDlKswSS@i6%TMxbth1%B*^ecb+unI=HWc(sseA6c*X-`% +z*V%G;fdm;mGj)g6y^(!$;uGnIsjX0Bg-&3+3+B4w3yxYo$I6ouArXvm>6g}$@|lip +z(D-W>LSBK;ENzi;mJ4 +zfVi#Q`SQ%kQz;CxVs*Q)q0HC`A>EDGTT&3?`}ZeI4HWIS&gPv2dNk(k*k=_brOs06 +z!iri%f+P>Do(C;*EPp}4M)q1&W$nB9w!+zmYoHaV!M#!J{Rxh3KNftyZ^IYWQy`mD +zaftA)jQN~V8BFw3elKql`eyh?torczoz`CW1f5%(s{R@hF`EP +zAsWcg*VTnnv61&e=QuY9#^@}^{>sLWYtPO3n-qXP4C$_hnr+xU@7$bC6vt%iY>36- +zF8;akW8VH0^OnW4ioDYbT=h%*YZL2Fvac}5`L-HK_*YK>e@Jub0_FP)D;f$)X6|rH +zHD{=4;a`$qUBE7l~_cl3*0PKjC%W!9LlxWZ`1$`lm!e=1i@gQU+A*O=T*z%O1-n +zw)kDD-uy2of4p9zDmFXUAJ}nafhWu5iC*cNV+~3IAH^h5pB}w^7F~FvEZ=kpY*+6VzELutVnJFLq3J;aG2arQBTX +z`mDVC*xsKP!ju5B+|u&7V-B*T4)3c)<`V15OzA~v+7({=9I|~Yt�-%!R2TVG1_X +zCN^t#$*Z+MHG6$lV83_@XzH3W%eWPbfTn_#rjfObBwX=pF+(G>1||4 +z=AZ}Gej*{Vm=lzP@D*g~heF%?|&krxLLYj={;IZg3REXG--zZ(kU1o-j2X`lg`RhM6tzRtr3%WiR}2Y2=GhiP(4_^Q)~RwfZXlg;*#T&lcWNF(c3?cmn`Ph5>6o~pQdkW7i0Z=YA!FgR7q}WG0lQ+*)WZzILuKB +zQJJ{Vzjg`rTGdN-B++f?Adb9kkt=?b^w{SxSa*Cjb_plmoHdBQ@k@v0bE3LmVz9Fo#cn$}e4F5b4JV2<5c +zF3*EuNrM6YV5~MiwwB|u9(LwfI32rOUz9;K1iTUNx=8;;_&?H|w +zIacodc@0t}c^Yz$5OLE_=7LJ7mt#8}Nd153Z`(XQOI`%)YcPkwejLmhFoyYhW&{%l +zrZ<>uFhjvS1f~?sL@=*{`2fs6z8x +zr@=%l(6ej6+zw_qn5V!j1)Kw5CV~AWFbl!_9n2;$`@#GIrt=$+CYW2m3<5I(%xEwZ +zz{~-20lr@Xa2uF!z({ZD*(rdRE!49-u>T2QA20*J`~^%Q7#WNkj1SD~U_Jm-4!BzZ +z9s=_Vm=-Xd|JG4<5d(hlf8%kb1Iz|95==3eNnl<8vlz@uFgw9~4dyHu{hLq@FgJop +z1~VVhyB**ffPVov7K|JH!F&v66`0S!d;{S}0R99f8p>*T8_H1Pc#5|88LSQ%t)Q8@ +zeq-w5j7w^{m%6sb-7dzLy$n}W^g{t+(aQ=-%N=yqg$0+eEV!sXxZ%TNYX|v(SQ=ak&p82@VAbkqr|9o}eE`S0zSF6{w)a0kdK;E3=h@k(rPd +zF(E5rC~aV>(1}|Lm@1Fr7CQ$H0#vhhi;Sj>kz|3P=!L2B7v>maWkJCT3kp>j7rk&l +zyXvR*BZu0JP#y#aox`5ymn75HzM^sEx#a!vR+fa^8!P4Za=VQBC;M0Ke0uCjP;?}qS85Nh1x0bZkV7Xr-Jd|v>tSmQ?Bf!AyBQvlwmabE{8QG?$DV45bp6kzU@ +zklP9{Q-f~Y=CBsI}2cu#*I&~S~czr +zfKO}O_y+ZOjr%r$6E*HW*shxV3;^iSgyRN=qH*^JI7{Qs0r-l>eJj8P8n+AJB2D@F +z0{lP|j*q*4qDem=V5tV*jN?z^z6Rh5jr&@FYc=0vKia5qqpq>-8hnKR)P$pQgM%73 +zYKie{+{oCS)VT3<`8kanRp3Ot7jmPDxM++yglKe%u8 +zs0JSo@fT>q@gDnFO*mc}aA?Al06wE}djL+>xba%g3!3lK08ZDqC4jRv_;&$(RTF+U +zz`ttT_&VkkO?{zqs~0tH+@xEq!5<9peNFs%0GDapg8*Lpeh7ak!1bE&Apo~(+>Zm? +zt%?6JfCn^ge0OfPCO`Og_p2KBodCbp;6DuTm?nO_{_(TMeI@o!jT>JYj(9)h?gsEO +zjXM|MHJb7y1I(HgPM@!TKScjgciK&w@2>{fOY^-E;BA_4eA@L6jT@g-yj$bOdm9gE +z-1h+-t%+|qLX8{m!Hm(kQ8&la8uw&??~4A;fWAD7{Y?}9RDf=c`x)#Hn(v1Jd|Bg0 +zy-xEr?mq*3OXEfbK<{bXsBQl58aKYC{SQrgj{;nw34a9O290|(z-=0QhiopUBa_ae +zB4BQ-m(OQ!Rlm&?gv#5j`hy+w*$(s|3-}zE&)(b2-b3emZ|`7DfcG<7K%qYa`tkYf +zIH98j(BDJLdv6~HO8_ka*8IvFU(Cnf?ezQke75x0i;LKa(~H>B6JYrjEx&-}Bw9{_ +zY&K$;W_%wtBSvg0`b}u$@HPVX*v) +zDPbZQ|04E9^(pp+0%pM}wjJ!-!M+{rpM(8#upg-Xx`n-W@T)l1gti4}JAhuB(F=Xh +za-eq08AAK^4B(-C0of01`8%P0`*+ra)&*pRIM)L5eu{G~pzg;w!D};mp$}RxPC^rL +z5+aY2PDA)fgV3wzaCV6B?|GH&pt +ze7V5=_m^$Q12)LS8J279YjN=ZnM!)%dzhj6!gTBozts#_9XWM#`Xfq|u?hgo;WZGxrc9%fyJ +z@Sk=MEB{o#Gd)O}k4tv;VGsf=0pRzsde1T{C +zBDVc}!N=_U51uceTb}>nV|JGNo(12t-1jW_E^tE;p-E;hVxNUvGtoKoV;0~c0pUf# +zY=IYlKbyhY{modaXS0`bzT#zo^Mri?z(vCT4!{qD{bPVjg?%}|HNsvCuwK|30Dda$ +zp99=2?0W$o5cb0WzZLdofIkZRFBoSHUpKUXy;j&;!M;)04am2Pm2QGg8iLkeD3}L;3vYq9N=nUuLZbK*tY`Qv5e2XUjS?p_9Fnl6ZRhf{w(Zg +z0A3Jw9kfa38g9R&2Hzv&_E>=3g}o=h8%5hC0qiC0eF0_)`v8E0h5gR}?-TY2fFo*n +zJwF6+w6L22T55QC#{w)9{!asR3VQ{>86pp_0{l?Kc?#-jmH74?*w+a=gEG|#djr62 +z!u~nH-NL>PV3V+a1@Ie@Rx`k#g#8r2bHd&Ru+wsGj{+DY?A-ufC+rfyn}q!qfa$`1 +z8^FxvJgqwb<_h~zfPWVD`v8tu&iSWD06r%C^8uQKy$E25uv-Dn5OzDj3Bvw7z)E4C +z0&u#p&jt8bVSgLo`yy{&0_?Pc``2Ll!v3+wzD$F&2J9O|JevS+74{tf|0(SI03Hzb +zBLKe!~W(Ci)QDctDvCA^^vz7-N1hB#IX=~Kams1659D3KCM*mx9^uxI80Edt}3hkTx0ip!A_>8$+C +zNz%O!3>(Jis#OPHe(enX$=M4J2K91StVO*_&E*az*;6XYC6-{VNC6`;yfk99$d9k@sDH|dJdlyaIAn%fJnnWgM~TD +z1`8{B|5*wKWd&)_`A~)s6TwKfun+K2=7uy7We?6ODL~4jOzrzNN}G6xIFqlFSE2Ee4iw?Hsn4B`G|r=)U{JX +zxY4zIy`uY#xK6-Y@+6qkV9tWM0HzI01gy~vU?Ra>0_HL>mxGDboZD2-bM^!yfr-s%!6Pa1(OdZqFT?2 +z0hWQWgLxKAB`QP(GZV~QF!RB@2?p1dAAzX>vj)sYFrR_h1!g~(Yas2z0FQzB70d-N +zdWgR>7$cZ&V0wZ{0@G5(O&Zt-fGLAK-w*JSYJITZT_P$pTEI&IUMB2DfH7cDKG +z^+W+57w{$lF9*CU!CWD}MHx_v2t)Y~%3OZ$JhDZy(G6lVkcC3YA@Ljjp2-Q0_!oWg +z&N4?ynaysQAejM}<TuZqT!|s>A6k +zf647pW|q%zPj|@fxGd9@Lff43d1Wu#UN89TtXIn8Di&J)_UfC}bG@F_f@du6*k1$6 +zX?c3~8@I-}J}i#&EE@As!6y~}SQ0n(-4EV+EzY{w`M%@tt5(ln;ah22lfS;C&{6EL +zZm6j7*yG-QYn|IW{rx!ews&pH>;S_7cxpMS8JM+{X77EPrqL +z=347Ub3^^^)W*7hZrN9UC^dha<<)O&-GJK!)^-#Pd^6fRoR%+>G +zc0zV;?cJ-`T9RMDe^Yv=-kN$_YM~>&SH82vT9_i+EtXy-xAwa&g^&sy&Rzv}xg>SO +ze;bD;2xDPTL(;$zQt#CC+nLVAGZ;e|eCK~4gJu8I8Pr|QVme1eUKg1Vc_r>Vws$Y0 +z0^oT>o$mZ)m%^`32;6o5CuLzw)HXF+Cp~tEh)Z;Fz2b5njVmth)$7r?xH!EIl7m3( +zB@s75V2-{M_rd-WajQVrcLvYO|HXWkh4P6VF`}z3m^JK>5m)GfnN4*}D3#6m0A)Le +zV^rH1vttZPEu2sWC>+XmmRelqOcishImF;5iPQR8xIfo!uoAOQ}>7T75XcnvAA38Rt2Oneru(P{@0%&y3}}ak +z#-hQ)p@pW;`OvOdjDSyR@Ni6_>G2!sJ}vMt-!8yGb1*xECkZ$~gZJcmJsB;%R_$(q +zhjq&E+(0cqZ_^&{1r1&#;`|QYOB%cwz(Mm{>CP2pMLayOfab884;E^V1)BIy0S=m& +zcJZNEq`|{88ECry2Hpo6JUk0QXD7OKtiOMV^a*c|p3EC}bi`Z1!uL24?}DblYS@PM +zcuo9nfcmG_Wn(+M3cwqr@ldV*Uu)+cCs$SF`(2fUG)aIa4+02d%WyxSgKc-`Jy)b5 +z4+%ulf$&m>)74d{x{Fj-Rq9mb0V=Jcz=+s)L|}Z~s3?MQXuXIy*TDt>QDJPoh!_%X +zi#R&yTzdo+F);J{t+mcMyNY=K8a|q;@7eq8$J%SJwf5;cd+%?{_mBItNt^t9&$Z>- +zhkV_KD38BYndRl{cslETe~9v8or?dP_!-9SR44Dvy)~QKgTvd(8(%QX?K<(*lXe?o^h;vQ(2)%JK<|DPe2_L2XOIS5~al%K-=L-ohl+W4s$E=ZBSHg>xpNQF0 +zY~f?tcxf9S+s4PW@$qf^nl?V6jZbVD=h^Px|6@TL^L>$6zI=OYuq~Z-F_vEj@}phr +zNcbpuKcq9^PIr^j{%gpw#PK-Qlkbny7rQ(0Iq20l$>RS%^*_o_ul}FlbAea?zqoX~ +zGZ^m|+Ss7c>DqIH10p% +z?*9nOyFQ-B^W3NSyCm?ejPjS*UKsmqR{3G@WnOtx;GP?t`>owSP5zMjX7caBQ{a<~ +z=dtTII(aXQd>puTqncduN#N-pr{$jt9z=a(8RfqMkKd?k6y{$6?uV0^w)SoScikja +z2ww!A0dF+EocX=>^LKyiJidzMf6TdGSb5j6eykNfWA}dy-1#ZzK5Tp&cn|mt%l~Dz +zA5LnJjwfAMV +zZ!g++w5A``O2+!I#bG2lI&8CS9Xy%wLH +zOET`t#U_7nS8vAcweq{c)$!xO`bkn +zh%aMnGH$)KC&&DMo#7F7!oyxHLVGgG`kwUc2fm!@@s;?}Kai34@Oc0A;K3*LH?BUU3icm0grg;Q>=eWCb1{a$Pe4~y?v(t +zhV8vD9q&JaC&01(&VioIfMfg63GRfEz0CM8z!R5eKAdrnSb7K^9LdOg>f{D^3Veg{ +z)l4sC+^shL;|yuGr}uvnyz7C~zI>kTyIJ4M$l%|5z>NoDf4JC9f=~9^|0A~VNsS%J +z2j;Zu%g@-JJ2Q#D_%-|M@$bMrUldQL^93PRKRC88M;ylYK{Mi~WWIo>_h#fhOp!mh +z6He#NvHZaUUrOcI2c7`GDV`6!A3PMxoB97CBk%Ewyuo|G(Ih@rU4m*q2UCe-V6} +zmp%u2^97HOWyt$<#+`k<$satqFCG8ag9l#BxD_^DZvyW@|GQ)V3%>OMeb0&g{qMa0 +z=Cu81fXDxc@wfZegC}0f$Zwd*=Yppnh~=@^Z6UvumVYt$@dsl4UF`k_-09Vy2S4cD +zUjp}g=~eJIyzyv)YhLAnNxud%wD3Z*Ehkx_VPal{-wtUz|ZbW?dz{N9=Gdz_PqZE_W$!(-)EHn)YiTX +zIyUi|toxAle;&C11l`wxyr@Ip6Q5;#EO`8cY+`Ru0Z)SWnf+M-?szI~Uq86h<8#0Z +zJieeq*SeoD4mxz-lfcR!2G92LSL8(@-PeWbyE=5=iI~Sabl;KKUS8Ls?_IAqzOh5! +z%Z}TBQ-|)u@>Szcu)I@rUjy_7MpGic +ze10~uw`YSl?T_d05_b`J@B)2aEAa#CyFlNoC)e7_+YPS0BkO)(>DPeA_s8=G@d3-b +zO!uJ>{{$Y}AJ5k%?so7b_?O0C0q^qezmMg6{2lO!$3JBG9v=Yr2l_09^}PVT)vNCn +zrVr{q9U@OI;fHkJ2J#8u$uR3aZ`?hvwZE&t(+Bjy2Fp8>`46Pyc`o=tk1qi~;&GAZ +zgFT#ex)faOwzrl4&NhC38;`U8pT_oRiTfm&2hYd;{f@T$Ujg$3+$6pN&v^XL%)e9j +zb&&X&?c1r(-pD@(^Q86pR{kqso(aCtcqtNi-1Je#Jz$=|e45>VF8BqnzRSTcdRzwc +z5aoD%b}g8v?9Q|D_JDZ`?$O3PuD8dl|A+Hi`@5g%`>p)!68CHHV2AEAlg&aOz^8iY +zSqN@$cACBbJaw4v`$Jv?KF!O25_mGF`}#1w4?KbO<>|&}@&4InPr>J~e3zDg9(Yfr +z_MiL?a1Y|y*Bj?}zteqJ$iqy(BP07lk?Y{q`_2BNJ&XhTv538VuBKlD9-nLW5&S`> +zW4*bY{vf;9eH1*sL+3lwzYOLX0&)B9r6Qf7@ih6HOg~)rbs>M7{U6kQsmPDByn0sS +zQ}ENwzd7yS&%t9`^w~A}|FQhdI$z0upnNv#J}%@}Sl;FOH%Ic~Bhdb_tb5$}BtAm( +z#^X&#q|e7P*?<3!)!@mZ?u)|w>%j+~O7jnZYj4wixR`!1xbx_&d%`&2{a*bI@Khu1 +z&(+{DtOt%WzLxDf-24rA9DKt=aea&3$B%GwCPO@)pJskf-|k|6g0#Me!2@ULzA_?T +zaM!%7Jf|ifVEf;#`=W?E$q!jPkNRE$PkZe>>`0V1NB5~B9|7(;U!R4Oj|X=m7~h#u +z{%_#v3w2*A@+zhumX80K;3?>9ZkF-}@Ufmgo_C~^b0^~dZ3Rz2-W#p_zX5l3X5G&% +zJ*?2&!qRi1YYiyHy?&^ +z;xgTLj`@#0O3(C&<tKXH)krBYy_m1^pj1-b=nJ>;BpJ +z9`L~F8TYk?%J;K><4)IG;Qzz?A93zau|Bi?UVr`-T!TM;+T{BZ^S>vR&pi0eS|hb5 +zOTZJuS$WP${!8%WmW=o#ktew8Kqj#ttH=j4vQHcNEzIB4eg4QB!8|`D*1yfnAEx6s +z2=4U8w*($PDyz>EkRCDppsk0&?*h+Ul}+^bBjBk^?RfBP2BN43uk-r1h2?qn +z<6_o#wZ=E(0(k5hi=R;5D0tv}-4~1LyV>4GYTw@v9)G*;%S8S#xN{(#-#3$&>b{QT +z|H<|p%p~*Uc5uHp-V@;CJ$v_c=7)a1EB23UkLOPxV|xZQo+1BV@C)AfJ_lasmH!*| +z@3*Nv{5|WRmFnZm;7PRa3pU;v%(EHzgL^G~5qOWMzg^%-^f#8rsSEi$O82#r`2ZgG +z#&aF-_vYh;;M&}@Kkrz`=YbXu~e&$9h!?>sB-i{O(zeY}VHpHJu8H^EPO?fEvi7G;zEJ_^XX +zr9TUvJ~FF+PhtE5-tNUOudqKCW##WaB5w$4#;b2JcoOmO0&DMIfcJapr+~*`-~QIh +ze-pR{`|y3^H?zFA+xicD4tQ#N#`Rl$mxHJ0+j<0C1dl%y&-cYH0{_yh@7*l_m2^J7 +zm*vCX#rA%j<=w&`D49J0cX{&p3V32xx?cF-;Kg40{mk#ppU1#^ym;a%@F40t%lJ8P +zkEcHedH?2Y;(uquP)@%m_2=_xIA_gD>gxpel(KHF_2+nSEtkgAr-0w=weK|WY>!ug +zr#$(*h3Q`T8(7}%tp5E4}W*e*o@6|2|>m +zKM6kg)3pE3@cwnFe|?Vfy)45JQtb`vKRS(vUuJpUdf-U--2u;Dp9mg5T=&Hldk!A- +z>|q~xj~73$0sk)kdp3CBnDqAoTrU;DGgxn&Z}I$g@R%o`_cDEf?sLfW8(9CMtcxuF +zt*k$j`rFSP&)4yLZJ_JudUq5KPkN3|{ +z{qr;6&N=CPd5-ddJ-x>C>5uIH_N+dyrhi=OT!*Kh9pJ7r?0FQ@j{@%r^!Y3Kbxilx +zPj3W|VQ>$`{t`TMXX?jMSdr +zPx*N3;U6=7k^J#f@*iM%i?T`ke+3@*;-}{+&q5}N4>NF_HBUb~$ez9&Mc$Iie<}DH +zPajVPPaKx!f5WjHzl{9yMD!m#wl0nL)_})7`JD}(_U6l0`-uzpX=Nx889!=#jq$z4 +zw-^s+lcjQ`s5f9<&R_fQKF)%}yDKW_QIZ+xlc|C#Y3OMk)m +zLzX_*elm2i@o~l+Uq0jet2RE}xZBFR(D+AZDwm9ZYUN#N+-dx`##`+Ej~j0=-fR2; +zf;|QJszL=2*hWwKH~2x +z7S5XIj<%n4-Q)B(J#RFQ^?$7~f0rTSWxU+dhfiqjZ{>tmdA!#+o^O8#o?J33$$yKb +zUu5Zb7=PCI8^+6wA2UA5csefM`v1J~0^>O+wzl_J<9NQm!TZf(7ykbi<9NPb+?HNE +zG5s$3!XJwB2jboN|B`nicw$H}JX);;Q6pDx@JI1cqggDX_#jxjb@Tbbri~YD4Fb@* +z7CL8b0zBDTc9`p4v9hn%)$q}~23ZQ#V7Ocz%9R88$$F4$?sD=|_Mp%l9o-#Qu>QPt +zY56g1IRDJItxt%R#oyCX^GT`y6)#^z`QC1xHXVfxEkAPQTm)&jN*FcD;f}D(^EVp1 +zYoV*wxJh0hM>;#)kk82lN;4ni>h;`iJzTqRMKfvyrAnbx59Q=bIbu9=L%Aq~lzRFg +zyJn>k)Wc#}uZQ)BXUqq3t|to!^i28CVZaN4oZEsbgQ4B{SFbg4!-j>htfyY@++J(c +z@h=*iE9j+qSZL-$ua;7U`}`#(^3?1;zO)eK13CVj2X*6np_*^<m6gwW@c8N>J)kg$qY(&>@J%?!o14!En90Gr)js_e;aT)<$wr +z8Fn8XX;f=4K4BOqOR<>Z6pwT}zYPkbbu}w3$S%fTn?n#nxm?RN8eyG!3K>G30~y|O +z35J5bMc={-U-pT*m#Hp*_xgeZm8t*vY3M? +zw*%rT@#1oANS~Iz99bGWOHn8$MU0}jrlbPeU`VZdIqxJu8Mif~+;GTC+JQbb*gC$v +zutxq}Elpm7$=R!Q%GG6ZRc~A_-TK87Tnh(sYOhAQm-C^%$tynA5nfK +zsu>A)^_8noMNADEGFZB5RmQ6Za{(=Y>Y~0nz6NTK3rc#PvYee4P%rdbsUpUM+qWVE +zEJVPg!(15(1&aer3`ihnZQ)Z61Vh!Mz4C95-c;5pRf~-Pr((5c{(v78nH)uigb+q0 +zzlx#@w>QyBSjea`Jk%`m11>PV9^_G(OmNM>Ll7t;=@N6t6O+a(lED}aN0CFmia8WR +z#{Fj@F*YKgf0Qdi?5EldUed40Io2qHnNS374r0?+$(Ngjkh|$d=HsnTv<|ggsjlDb +zVzpV%hio(5fO#R@hblxQg`wg2nr_r<)vz217wDpLk>AcZId*PIyFAineLS<{!sC(J!6@5-O +z_{I00)$#W{)VN&c`I&)uorJ{Y>OR5&?Xth8a1acfzkci1OM?v;p0{@E#?9vi0ZayL +z&!H1muKqI#%X(O9V}y~A>^WQxcnVnTHBpyI;RQkhU%CbEmGY0$m0`} +zakQw-!xzMV$plHJkt(uDFff~d$cix?9h?i+U3%V`Z`-&wo*Ocin1xeM>_%f)oFwGQ +z^8~Gecyem_HAYIgLM|GW3CI9WR3R2ZZb&8#B^Rc{6X=18+RwxWScxNua|62a3eEv+gOKP*SfVr+HQo9jM5NZxgsLu +zAy`rjPPm;ih|MW_<?kF{2^xr^(9OwEQ>QQ<44d46ilz1D{RM$N$R1MA{ +z4Wg*8L}G~p(pio1ibho*v6SRX7jl-P=<@ruzJW>gO(Q7Z=3I^>B3e4X)7T!UCP)>=(kCPpb~7?&PgAz{dh +z)JmC)(C%tMj%t1N2K)7}T&=|b5s7n4)kj8vtrwFj;>xE1j_4ZC-0X#op!)S(eYXfsWDj2h +zMX5w(`hoPw0PB~ACdsfTEfx16OC$~pgds<*woY9>?P#B7i5;P9$PKZL^sag&Z@rI3 +zJ$9UdoY87#M#P!Ks%G4q+!}(`d9Z=n2RyGr)HqNlw_Y{7CDwqNr2|<#>2;t=g8N%weup!g}&VsZ~+pyfoOcF-cq} +z6ja?5y0nW9ge(3ipQ~taQm$6FHEZVKsYWairHe@6;`k&3iYA7(?a&Ha#GCID@eU=f +zpX;n@#DTU`i)lGSUFOw;WZIT0vI0k=xPBQe$|^}8T5uhY5F0Z}DwkfzK|jmkx`*{v +zb~ApH6;OQ}<%T6qNy@M5df(<2m0#;kXSv8${F`nT!iicfnxT(!^s}Xvt5xIo>5q0=W2W_&Ahc0BEY +zOnP}BDpEpMTH?rL#Kcas>pGYes>ZW9aV0_WbVeMDxJs@|18NAG$ti_lRN3+y`yz5< +z{l#K#h|?8ng%2saTHtg?F7E$=zVi@b79fw#Y|)wod$E0t6~J08%@(JjQHFR6q* +zt)>>HM1~Wi$|H~wDYLWUVX>gn0H;{wS<#%Qd^pK9a@f%IYdV)=FDYU&r%v-<3-d4s +z`TqX5ZrXU(+Muty$I&gcT;MVd#<=ZLex%-V7u3(^0G4cb4MrDAv@;ZYo+fj7RL||? +z>cB6h*R9p4X<46>h=b31+p8U|wNwl1Txqn_3=dO-qP65ImSLn@u0%4;(@TA9@vdB; +z#>Q(C8e6OGY`K^I(Z7(()0VXKUgpv$jcU6ni|w6~5X`>-v2ZEqU#f@gSE5D%UZ(8| +zwAsHB4>Z@h{`DP)keW=&7BRLrlj_nc`ey3|bPoS(yMhIse}#{-u4o;?fT0@HL`-TO +ztJ*_#Av(0K*1Q$H20X7)+;)9wwkmfJ3`O>&yQMUpg{@<7sNrmz82Y$?ie1~?Qm@Qg +zU)6DM`y9d~)qzo&U}f*8Y9OXsidr!DuMAuDRGJfoZC%d4y4m!it+O?h=QF{^%|W|> +z_^_rmtHxg#kypvOt#@OwYL2~0Z*v`tpET3 + +diff --git a/plugins/amxxpc_osx b/plugins/amxxpc_osx +new file mode 100644 +index 0000000000000000000000000000000000000000..d0cd8f805779a3a8b07c4480cce87b226b331637 +GIT binary patch +literal 66960 +zc%1CLdwf*YwKzU!W=JMs;0!WC)KSJdwTVGYB-RW;n~+Qsh$OsyFBr^mw +zPfjLeXLA5sDz>F)Z@u^Hz4caXDG5p;lf)#T#RQaxcm1av +zOS9V^w>_Gx8vGbk*Zp956BGvHMA|E@D?t7a>c4a~K^%U@Td=qRbf*A0`uzO69xVu<#>E7sGu}UPh)@8EN@xAsGSH +zpl%r?y+Rm~1Gty2D_I&!%gFjBl~n)wJXlepsMacH=?EC6fJB067!1^>y9QvCEdF~i +zCIgI(_&W>+w&Qz)ZCUJGeEqgG1B^WU{kv@$t`kFH=+3KDT~Jx~$=`$VL|NI8_)r+# +zU#V1jIUEXu8&YS<%4eQgx#D^-KKg3V%v=w~ppD9&IcK&lV`hFxj#kW!Ngu0{bPIWLpR26& +zzLMon+$XE!Z88nN`s1GGR$fVRHrS7v+pfG|v8d#BkBSB%L^B(iC)59T%xv>S+FxQ50I|hwI9m#m`Kcaosv9cf{~I +zXyMAHBq~)Hk69Z*F0a8)oE%3v{p<6u&%ZwZ`uywjug||e|N8vD_<2f2{w$mg2F-J$TEn1FLEn9?hy1Ylc +z2&s@Z+|dJh*%m!*aCEbf?ymi1F}=0oma8ru$-kwSWZZHU@J@z; +zv7MRONCxtRBw2#pB$8%k3+;vl3x5O%QdI?jp!VEGa2KUkk_>2mP33z)tBTZF8X%*2 +z0#d%w@-l=krp48`Qt4}!S0Li3t;9A=mfBDm5m9k>O=YC6+U%gVXot`nA^v#OqpHl3EQ`!z6;x>Phr +z4~;R#9dcjfH*Ll=n^DY<>nHh^$#GqY2O!hXnPFk`OZbgtt#?`ypkZbZPJ+;)NxZlp +zrzfP9pQIwa(0iu0ldW!b$hxs`295NU;! +zl0QmCE{iibPwym;_f|1O%?YPlE*%&1)m$*!66<;ws4yu_@oO;#P|f0us|ct%Iwju{ +zeiG6hA^O?ic{2z<*j}MUC-j;tKKG?V +z87OTa86PDR=SS1UA99|{lRTf@D&~*pgflIdJ{0GV=b$&CUd9L=SA#$tBHh{#6}K}* +zA@S4})0q)_l{MOCjJFv`x{2n*2%f9)IR-M@LegW%Y_ss3PURW{g3*gL&jVhPuIo%^ +z3p8{ptjRl5c<%=-r0KC2+syzk+mb|y +z3F(-<6y%Vg;y2;^Nz^_pWR0qw9rmH-AMNUO72AP6Yd(Pog%dA$OkDU +zmV}CAe+hSu>Zgb$(K`R23V}+0pd5SeiaLuJ>n``baBkYGRA~Fu!T%)nG93us;&A`KH;?*bN9Y +znBVW?U;j+3cu3n>XITV57eBLBRN&u!h6L@va#cN7@GMUjZ9nvy~yfrVI2f!(ycP%mTBth{p2!UC}fr +zmfB!^`Prp@$cS;b@SA=KH4=m3e2d9HF2ug)KsR(n^ZPIIuV3O02^9~hRL-Y5VDQ1w +z$b_9l%+xxBO6VtAnlVbnd1Z6v9S0)_{@%6)M=q^-g=-c5n$k;(7t@RfRA6wm=(%j( +z%(_Pun4d+gZ?H_rSPB_-YlS6-ce~Jpvv$B3k>!d`Y!TYC*|_RWhEjv{%Kk;R#o|7| +z*VSVSz}INL1p?5|tJv6&gTAwjj+1;AHYmH64mvK6F~{YHWCERGjGtj3nI`&djL>;C +z{#gU5vXIOeQe_sZz|2R`G#$y*0bQ{|l^)~k^aO1Dx>!;bOER@|oz@+6j-!to{NouG +z*-wE4YUNJRS;n{%=#-&l!S;4-0&1b!980H`jRc7;{&yYhGtj=dio>CEA8_W-C`au& +z^jXp+^49_R$u;YM{QH3_16UV5I8-{i+7Q25Pwt1f5jYKTWBh6ZNkEH>v6%SPMsoiG +zaG;pKM-BY`SK;H@*yqOo+=Bnk$?S|m^~iUDTr2AKbAX$b`*Kj +zEh0N)20Di8`*cO$x4g~t-N5uc89?R@BaV1rpwti6Cw()~{cz}I2#Eda2(&_nf +z64%)ilwk1tAB(1|EdVMm@Uu%-ti7NJ$H8e8Ga`W6D@d)D<2>k=!iXM&6yG5-?&Py! +zNlw#38u7RfR5yq#fkW;Cz$@cg>W|(J`d!^TUJ`8~vBJ{;zGSu~*`*WOr%ReXXX7Bh +zE%9mQ8{@Z`W?H^IzZY%1A%2_N!|^+WxPOY@W&m}={QfN+$?vW7pW*k%jf4D7h);LRh|yQLZo!5)9~dExh(<{o{N^>le!C(MzM&kQ +z`^dzLg91rpQ>x(t$su6shw?*`Ph(od^ih>ji7k834EkfHM^ulZX?nkgrX|IvCCI!; +zJOH|{BWlvs<`~LPNq)(V_6Ro5%(ui&*H#-k)T&Ol=fjMve-Svn7J#hh_b-g5c0Dam +z@JF+7c>=X3F-4U{ZuM2&&+mVSf88f$JfP+NhMb}}_W`wy|0>%kut;-~0lT_f!~vV@R9FKZ$GW +zxxx^{HrgVf;iDmv+yVXnfd3Jxy_M0_rl&5}UI@DqU0 +zxpmRd>nwvKOAwtk^v1eTw@WNpV3D&e=ENZBbujrszKQe-53BYgk9b=z?X>9n_ZHVf>eX`W2B}0ZLuz`9c&xSN?hLBi;@!|5CHvA9#sxM?T^Q%e_u6k^eYlSz;(YR7{E$enP1?$nSR70gc2{hO?G +z=m=n~{y^0w!5b*J_>DoHsdAJ=5Dc|R4jC;4+bZdXNyJ=d%foq +zwY7_%(d~Z-etz7_a;wFeL4I3@?kI2Tav!LQAzkEx(msCQByy|Js!S?lRhzsG*4&cuY;Li@=&ko?v4&cuY;Li@=&yN1t?vvFg2OYI7 +zlDy}$ZnXeZXcc`Nd#m$eXR4DI>r37Od|(NEzvY;furx=Ze4o{U;rIn7Ti%PE2EI<@ +z!MaEkJ{o<3^;Q=t*H(?GnbqV`t!nI3nF!t@A-{r>^SQ|Rk= +zO@)@l(o7>keeqv^9|I>QpzOZ?;m +zob7%_{>Rz{eI^S*GU)s!M9RPJw5;X&srLR*;znWs)mW9X0KCzv$Yxx1^*@P#Qs!Vk +zOs$M;#)+H%hor=kgiBYTL~Hw9JP0D6yzNh5`1}vhIeDN?4C31)|Msh$nGAeqMtm^XS}o97jt!Bcw4mOJ(g(H3{B9Wh{Ba*8N*9M$?#wy{W_4Z4}3%&a+LIUTy7&%5p9Dpnr~qJnQfM9z&0M|3f9&No%J(*<1hNzV$Z6SJPR*u +zf(S~iPwN~n^r>AF9SG0?5G7$q(7|Kr<6Qbih&9ML>>+89sBa`k2UJOC_3<0q0V}8z +zFT925hp1E|5>t5OG}q1A(*+g0{KklW<|M94NrOs#SV`7qplv872~sGW;qoR&p%w)& +zn(EPSVmFREn3zAHg9CYE$WbNtD7nC}$axXv6`#URDF) +zZPpTMj8`HwlJlY*#F?p9PxZ~RPE}73a}gtqPj3hBWCq_CeHmsMIL7!?m(jGa5h2?E +zLqhdLrkqgGRH0Oa4y07<>4SMh`teGSy~L +zn=CVoMlvDCSAbGg#9vhuAruXhqogL0Vs^4l%t&VZg+aAY<%*Q^gibAJO0`x=j~+~r +zOISf~!W3u8;Y*i=FTEyw={4a?mxV7~8NPH?_|jG3OIMC8O?n%8jw~JMI}j-ejZ_R+ +zB~~azT_NSnuz1Oc5}%E*^o9KE2M25&>31J?#(^7M2>tNL&n{g7hY*)Tdg9(Ay%4}I +z#jIczcHg_h454^%))#XL)U_YMxP#6QNjHKDf{Te0=t&5{*RVQA?CT7HQN +zMUEyOzI2flUZ)M-N&2v-yDvIxNcYf;UT)Cn#0>^XPrPKTl!QA6^P&cWiGx9=g8Wtw +zzxzN)wM+8{gGyO21H-+53~a{;2ZHp1J69;JMJQGgW-td4M5k86GDaAtFd2$VMGn@U +z!Kr5LWqg)K*B(&eKK0=EhwYXVk4i;_%hfQWvG>RXpaPC)BTM{gn8aHS2%m7n3%(Gp +z_O@_|KM9w(JzV0BaEUL4OZ?@KMC5x)B)_$V-`z5t`6&~_r<2}bM(8j#0~sIGhVhez +zB}y^~YDdd;gV~{AW-&0~+^u1WG8nxK2K;>bAZrJV0+PQn_itdnasKzH#oEmac8C%m +zv^k6XO-zcl9^$vRr8r?y^-^cu72X{S+18`{2J_#Tmy?ao5|)7S{4YCor)q*6@77?U +z9$vWeHMnHXF)FB^H5AMzUrS(4z%Ps~IvDg*xO)?0{dP7tao)Rv1P76m)>dIKiV8 +zTCNJcn(8lQgrAYGaD5Q;<3Sh-aEk9f;EZ5ak7GD-0+42832FJ{kwP}ot}~D>p&xzn +z$u3;$OdxslN!FrfJZkUz`FYl6NHc>)CIKHg&m3{+9p(CAmTI{9MnBc}7?ejrl714v +znJF0ZRm5&!`vCSBMv>h}R+>e9Jfkbyq8B9tt7F`qZVArQxm#T0z_t&W!`?0Q>WK&B +zknPg5n)ZCMu+V=qn@`xK`Gh@&boq`27{!n{UrLmlwm%?I2HHo?qa(|_sa0f_fw{!9 +zVwj6G%SfI=;zkf=v;-ezgaPMA64vUv2Z=(i1FIpJP0|Xbsg6WNnoNaNqHY-PNVm@{ +zlLvh!D}+SmimoEFB_d}_M9wynr-8_O$OmlW$b^UB5c}+G_W>7=s^Le)kjd-QW59K% +zOdROJP{MG<-S?|6Wx6Eclc_^>wAv%|Rq +zE^wyl+!w1%Wo$5mCBUhah1&?ly`(pK1#A!+P^Z1l390VvwE|U|3#!_*#kFqXe +zjEDX>XiPDK`P|Y#Db2dWcbwqL5xy_L +z_t)_K0_Vx_dlP)`gzr@NJ`CTS2)6&FW2@(BY-fJUU|c^ep3UO8zFc83(0OQKjBI^$ +zqUKRluo!E3OjU&Y;<}ssx3igf;z?_{xjM#uajnr>ZmH677ZO{@5r1UjNtR7+VP_d| +zizg2?Q)fL`rGZwn0|JBR6@+s-z+?cg>wY?+7G?@T)tW>+6{TGPj>YM#)EJR?p!PDZ +z?3KnlwxoK_=%iBRU;A%MY}tb+H~cr@lC58d=M(blwW&b%C0riItvsP!w_w&|^+)uHh-b)t0(nokrU52I2pw8c|2a!)J8}j0B^ylEx|7Z^VlF4V +ztr7mLvG$bq*!_1W2Eovp0iG!_$oOk)&?nREeOf!D>#WC0&-vA)(|Syt7362U=RU9& +zcLmnzmLtdem|w|HNca9G6pM?+HYd0J-e_oT)YV9f}z{()5?Bq-R= +zKc!;ll|($Y2PpplC_BKYu{L~&nE>%&goyNLrTBLsF0^QnLo1(RYrPc`!J4PBtqmc> +zTzg8kCiR;_QvWKY@>u5s2s=76Myb|9)vZb)$avx@xg9)=9?*_$kmpMY%HyDPN;p|w +z9LBZcm`0$xA;U6JZci)%DTrXCquv!3=A?Q5eK3wE(Y&t6fjI7ndu=+Eir8wvbBOx&{n#$$aSQcxNV=5LqCdV!;!`MWrlY7sy*pqVXD2r{7V_huPDaYPi +zHqhB2_8N=X<=74u+a|}hu-GvE(`-wApIX`>v?OPc6i(rJn6S{h_0@Q!{Kq1sd9N4|aC)vsDRBZj_ +zL*Sc%>RdR)PLZQyok}$LF2Y6VU}|TwymvQ1^rsHCwWbFEh7bx6IPRx;n;>61-YSAubE+adsol)+;BFzFdk*4`}g_ASV2-7!Rtm_i5c1 +zUHWEDHE@U#4~mH!c046@#BDkMHrRLCi}5(d;Q5@!Je;5C8phE)J$Xb&^K|49EmeVw +z(zXT3H-b1U{O$;LT%-bQ1aSMT2G2q&(*p0!YIZbIiAJ!fUWs19-N{UY67_OOr4jf1 +zw_Xt$XLvJM~s-kp<;UH +zFO`nwVqWi3IZv-+VrdhCL8qF#h87(-V#HP*T8cuz!vSlj!Gu*`ImLaT>K-b;KOkx! +z1fV1kcN`{OF_%tQyZH33xI>rN0aNb^sN11^Q02b^AvG?=p+p-wMWxin)F+UhUggw{ +z(q5&n7m78zpOm^9mGs){TOu86$M7)-@8taI1Y9hE4%!y-K9S^qa?<-h!{gG~CNq^z +zv1LGalrUIA`|dV?F7$HJQVdYoHpIV-kvF@s5*`sA04E}Mhju`mrh2m^aIR58d(471 +z&{~#y_z5VYVq)L)i(ibiMeUI9*z%9yJN`sCd{2bniw}b@e;7UoB6I+r2}3YW7>1F( +z*x(3@F|c?L<6A!;iSf+hP=00po!&ei6Z*~}br9<$6TVg@CWC*s2!>}=RXb6k# +zrVwl=e>M`EcJWYt-Z;LPu=xIM(ICF3!{FPx2=OudCMygK8Q_KEM9~6Wz)Yi9Ums@O +ze*@L5y{-t!fGNlx2tjuF#gWLqw+KycnEv$-^|zZB-B^G72E9MDP~uw@PJo8+&ap5= +z_ro-&5b~w-THglWg6rbDxFAIHw~fT-UGNR~!fO2&3nYBed=r!yg3uj;aCR7kS_*a3X#=?}s8??oZX9|qsHqJIG2jv@u$zTx;D +z2*G#dr(yJ8!8gnwibdDLebV`zLG1Vnt^5)g!x{@!t;bzaBp`b>3Qo`b0i2sj7@WU{ +z{4E9K&ww(I+H|DV^O=Ef3eX}0t<(!wIM;pr?nrTC0uL~_z(au`kZAXa*#@3#t-UNo +zdpu_hQLUuMX9o%IL3-RlzHXWt&-WS1W|1DCePXCT4IsG=?!0}r>u=&dgk0OtAZ7Ny +zxw;?=$dkivo!)jDP&@ +z`H>vITOY}t=icFWJ0sQH$6OD0f;-Re&X3e^7q}iw)pAFrlu=4bgpv}er0A5CC?zFY +zNg1uA=#`W)Qp)_uvD^{v1ZMGo_`J|!cxWdOP7d*jaos-d}EkfPxZ +zvba``kCNjNay(Lw>*RQp9FLacqvg0>j*pS!W2JaG&mH0dLZ?A!3jj^T!*5u{$Rr-; +z&0*!eUl#CRhqgT=+JW*uk85ID*@;t0`iWLQ$H-UE$8j=1&hxLo6Hc|LP4DpzN))JtDI;s%y{(P5me6-}~7A-}JNfJ@RM8e?AUwMA7i` +z%u@RjTWF3RUsx-^iA@3E(p~CyALi@Ql^59;$mfGEdNh0;&cpcKxA41r6Hj@(x~X;h +zUIf@_vs|C}Zh{I^p#%5wyFa4acf7b9qTBbqi0coXo-fDN{`IN`QyzX1W+NVN%+&4m +zSas@ST7LHxes?FWt7lc}q$;NdtJFzV{4rDOcCadGx^Is~|Lw6DzC9M>x5pCm?Xj4? +zEf&FJ7FtgWmnZQX9`A=~`DM+T8Cy_R$NAk?>E3+|%-$UgOq<6)w)Rs7X73#e=Dqb2 +z7_HEH6>5{-at|&wlV0~>=k2n7gjI{rE_H|416+}}8JXW_!-*Wt(a{3E7vFIa+I5nK +z4%5%tb0%)!MunfA#`Bd2X-)hlpwxX955}p8EkIp5_eJm-@kRsjTtDloFM6EnhOW96 +z-hBZ8bh-nOY!;e7XDbQBsa(u6*<>wIF%@b`N*vO2ivF8&fj&fACNU-WQJ +z_0$xhP21yhA8-Z8UN@T2RH4`GYD;X{0`-|$h1&SLAL}@8{k!!Mi&P)@m3UwnJrcd{ +z7Ks`O-YtXquMU9ox?5c5$zBoBvc|QOz^j~VEa~yzGgvNOT&}-d$`(0C+IJ +z=QHalcbgW!3)3qD;Fm9^d<(Qy7@Yoa=`q8*8P#SuSNU={=OBKo;!pNg`Vwy +zM6&Hd5ax>7ai^s`%IX)SjT4un6fQhoX9U +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 +z5pKGjouH-VMr#Le53m$s83>u~=XX5PMX +z4bv9h{d@G#QBB8znmvfG_&|iO+c&5{)Se6q1U%9Gukgh6{EhJ8e{LVahiKCc@F8c~ +z4f7!ad+JJc=n|kbY58~Nmd(d512o!`xh^`dB<>&^|1$>2WM^)^A3`QtFNxAcx7`4x +zzqWoerF=84E8rxBuloc&WOl*9F=Vf_6fduiPPaVWq6g&C|#k>%10{haH&h~+q7@joX|{80rz +zybug_+GFuJi0{w^c051y1W4$(>HW<_+*i}MQm(tWeg6A$SB|;f68De+_RW|Z7+|k` +z|HcMbzV44IwhF~GObuaugxuFDE +zR0kVp=4z1w392*Cnq0f#-_|TA*_u +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 +zGe>N*^Sd`j(?nLH0jFkuTrdxoO9$u=lhcX +zlyjQqctK(DY7p@`E~WA#Uc^glpexhOlIXXgI23;e`c%{QCY)d6S`-A?9@xh?>pvWI +z!9lhS^!|8P05o9Ekfjvp{+pQw%rk~gKk2q%-Tx)2Ck4=CLI1(dB%lAv2@pnBD$j0_ +z^LaEw{$HKi&beFU_n?E({N~rBrtnQ0a4iqdPO#cXPRq@TYUP`nTBF&)2bp;Gck^)p +ztB2q8ob*!Z;8uq*WK$&cJ>gLLsp})`Z%wQTHfVw&z+SXt{7$hQ=iThpX4}~zU5i}t +zjZ!PLwqKvtj_c8y@xMhYJ8ObuY}~-ajEg6`HlUa#dPpFIqEI^GZH$nFe}s?`R0L#U +zAC<&i+t$w(nU0Wd#Qt$qo3fMDHF+)_u52-f0W4t6vIEJJ{|X +z>Ei1Qc+#f#GQK-t9=cyI){Gw={(jkJ?EE47t5SJ(#wI>TN9!5_4-Ls@_c0py*KO>d +z9oWSs>{`$v`796rQ)So{jl<3t;!P?!%{0eIa`xhp+MIS=ZRbf&SEubbn~B*zl73F( +zk62TQQpP*$ZS1dv#G+ +zZ1&7!&wTbQWY78RxrjZNvgb1PEMd=8?CE6Bwd`5Jo;B=Q$DR%Bxsg4$u;*6xe33o3 +zv**j~`3if!%AT*W=T7$A1QuPAdaUg2E6*jYTy{N1u>Rk~DW>iw!!OBSvwUB1HU2v@IU`HH8Z!m26Js(HmF +zP@ou7oy&^NX*q@FoRv$>g#gYhLo0=1iBpoNB;GqUApuaVT35RK$z@J+?2+ +z%8D?v*nIB~%qvUH_ujj#xMUU5Q&wDTcDPDP%yKb+aqkaQQobs$w79Iyym-Yr^V7xa +zu=J9Zz=##D;wi`lSIJWIij_`t$;u_b8`iRwF6Szj)6B3(tEMb2dq$O3R#yDX6UZ7l +zv&^+*NpbPg;-yfc^ofyhLSP_&VrACKoQ-2}L1?Ne(D*`C`4cKzX(=?xS-NidiYJlC +z^3vr1My?OVS^ne@$w&pBSiWL$>AGlD#>y2)EQqnVbj9Klb1?&VuNm=T`++M;T?{QR +zEpwVzEiNkq*)EMn{ZZvgteb}V6m@Uf^cAjW9yXg7mn?sB#WTe#oS;GGC)PQO%gies +zj7v)wI~N1vpJbVfS1e_Tpkzy)#`=rR(nsdQ;sO3GS-G?r^3#75f8V`DW=7xQB~Ekk +z3dq2wJ64tsVP5RgV#i`viSwa*;|BFV>fR;OS1f*}_+bWa6=;hYqo@=>_7laWDdyrS +zPfjr>-v7Y;4C1`yE0(S-FEeK^2Fc%>s2cW(x;JChV&^iT7id|&1{$}#w0MbgW$8LI +zrbGVH1gSkMK-tzk^Tf)M1=*~^l$l(iH>Bw~iaFpPamQlwJ06xvV{T4W7bQz}u`?AelNqo`2w +zeV>`*&fVv}@6Ye?`+WcS{&8RT{p|g^mUEqJKgXGw>o_XVj^B?}$M*Ns8~!e9?07}m +z@zhc7NF?|kf5#wb12~qNA2j8k&#&}P$8Y$LgQ>+qXOlZA_>W>N%8!V(zYozD +zYkDVa%+Y$y%Z~&x*r;ER{N`9?47RugcsOc^1yDOi%mpeyCeo%dR0WStC6W`#fmS`wM<0KCUvY#Vu2KoGFdNMXX9lVL?bS0B~7RDP)7f)}B +z1G;8VJjg-oY3V78>PvuC>yJt=8mo)*_xy|YSq)h`kpfr$mYAB}dq0}W7Ms-$-V``J +zq$Ya9#2|w5q+TaE~| +zZqyF?Bb4f)&SIK`ON5^jv^fc#(C$Qc82tzVLSWJ^B%sb#UlL4YF@K^rx~RZ%uPCd6 +z)?xl)dsrAkzZ=yD>9C5S0{sTZez?`fNx(lA3snvRk2u&%=uLPE{DbZ;coR*Q4*zg2 +zB*XpDMv3yw0UPjKAMcs6o?rIRojG>O)pJvZ!&v$`#}vgAJzUpHdV^Msy%;#r)siG_ +zbeFXvBrlX%rsPe$XjPmePqFA{v0PUJuhPjr?aGKlZQaY?4Zn0ZEoz&3e5^HmZ!&pF +zb(WiB@C;$@eH}5%*ao+>i_GNUu$6oE3nxqT6EP3<13V<7VQu>t-d@gEn}_MQ=(jQK +zoIA$Z;#S0#F`HGiiJY9jt-Y?SM{B11)+=(SqMuE_ZX;)V@4l_gH*d*zNp42^Ov6k& +zo(SNZs*0uxSBXC?*n9rmy+-bgijtHPx^*lk813@AI37uivF9BRp~&$Xxmev4#oym5 +z<8(JpyVsw|s|Qyu){-p6^J4tuu{^JpMR%DphO1JQ+Db;R)-eZeoI$u_vRD&^lDP)U +zI9(6RY;|WzB0I+8Y#c_WOx@fFc(O>RJn`6Wgz)*pIVSSK44m-&DVC#_54pcQ>dGaW +zj1}{}EvY;ea-#G{zvxSXp-eabWJv32qEXv-D}4U0=cYxQeUb9?A^Ea4?Tr2%9p^f? +zx<72b_I;|o)pd-t{YRI_M!gfxx0_1ryM1IBbY6?nE7=*b-KY!Ue7VJo(d33U-C7Ub=;wP4>7&O%vrn~LJw +z*d1O)s5_q3aCPU*vUUw- +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 +zl72a<@@kXM!=g9KmM4w8po!gpH)sD;K +z>k4b5j9Csj4pdNZ$8jAcRqZ=ocDjC63g{o$%i~~`YPrm0Rz72NX)4dG*YvGzPpS|0 +z-_CsOyq(3{Pm=Qdndjl#=lF$qWxf|*(@bd+I=*(aarw4bpR2dT9_7~Q2eWA0QB2$a +zBu1#nS)Hv3Ii62aHId`6d!IBkvG3UNq}N-Uk4F*<2R6U7HjZu7T&ENe$us=+Re;qV +z&dv{7E>)(}SEi*W9;PN4NXf6ZHnvO|`bsf8oWSzs@u5tu7eduP+;=ynZjvq*kFFI; +zOiep1wRV~Q+`SMnZMrkDQ#{{B4YIacExl-^nI(QVPE?`w+m(~9js8oyv!31>WIkLO +zVgG=s#WU?dv7pGvzLM;zE&cpP$KKR54}^u1xa8^&x)}sKxXR60|JWtZXZ>Rayir<7 +z*Oz39PTYL!k5Ch*kHRY5dv~oZCY>}Q?>5)MH +zO;X({?n3wpO}Y3FRtf9P?R5$jn5Q}Vvv#ex*ZArB`~EXOPnO8)ISXDir}JFg1zwxxVnmp5Y?XSa9w=w=10&Ec%EnIj%bD_QPGa=KsNTy$+vtKxp-4@SB5 +zhJrhGf4MX1zgjVoHzg{tQaV|*D@kl;-Bh4#jzM)bZmuQ6N!wNAK;pL`H7Vny#8lhQ +zpTu7?E_2&uAKLLHrkU{O-Q7OBJu$2`Dq}^#U3!R1`Kt1!w+j6yV)r`8<7e7eGo-j) +zsJLFi+<6~YrR-67+l-Zk|H5u>(fReyGk7Bp7W)o9=6=@2b0(|umXsdvGF5T^j4(f^ +zN1Z&lVEdmrjougQe4eiUbj?yfQD{6{?e<*50bX6EkGuRGPJVhGEveHxsy*#!8YDNf +zaYcf5cb=qKRr`f^V~=JEPG8YwCvZ(HV0-}%APMZm;BK; +zn!@L0dpba1aN~1XQ2VO1tYO{ZC-B*z&Fn4zE}`c_b)nX9uZ%Nj_J=O`9t< +zrD~5tabZ8RFTFm`FTt*yrtD!V5|b(56j|fdt+Anxvca&l_3XqE2G(;UC3y!8In!6j +z<_Q~Uv}~8z=kfi)*PgNK@y@0zvvV7QpL6)0#g{sLVq)w==YIgReBwtg{D$+aruUfL +zA1?EBor)cE$k>$PcrKl*=Y(QVZ^^ZR7h@}uTDnfK-ZhdA%?qh`QzFA0S0x%RTFm3< +znk)8svee5UqEfqWd3W0(_m{)(rrL^3!&{F%UP4aZ>*$tMJx7=cjw05*Uy8Fac3>iR +z&2n#bh-TsZqV6H~#E8Um;Dx>R@Kt9o?=AGh%{v*|^jkQO&1J9^xos-Sn%$P4OztVG +zYrj=KqovqMex=)QpsaY`CF!a$mS;3V9*Q^KJ9oaM +zB7=J!T}g@^;|Z2W99{W&>|+vgl#t_AE=Iif@uD~HI>~JH@70dO^>{HQw}_RGzu=Mb +z$~$(F>2A@=)T-f((ULZ$K<2uu+{nzvMAodBL9S$>!>*iVEbd!n;vLCJBMvq=H#gHM +z5i*`|j40pvnSksjGoAY&jLSH9lx6Dv7w(6a#N4h&e8poXrz%U{{wO^WLU<|K&)+R$ +zc)B%Y@_U;RaaTUxYIBk4^Yn7Wx2;TmXh(mB_SVjG9oL#4y0^AZecw(RbKU6C_2ahl +z3B7Lnk|rGn86PEj(bqTFjO<==hSZrbdTm)tr+uT6orkB6LoCwLrD%;9F*A4_~x}- +zc>6+M?Q%=N9flrBexF`}@K+A(d}kfiBRJh%HG*BOvxd1E*%MgjFS8*zYY#D}_TFy`T31tX&Xj#u3tu0_VRFJdh@eQ*#Bg!^Z-wHu(k8c9St+3{gjx> +z@fpG5%I)^KF)!NN(?_o~CxohY);u)s|GcNU%=y#xa!Y5;BBqxH`N}&xIi<;%hQYrB4YpLXZN^ZcQP_cf%2^Q;-d2UxvCnoi$yf}87SYpcj +zG$DtCcbjh&AUEo!u?+=waJGEh%@A&`Mqf~q=`4wFvKRPfNYdY>;Stc2)9kvVtKGU+ +ztDoITrBi((yFACNuPmijKfm#?e9`<^Ma5^4r}t{2%nB0ZB?{B8-)mB4eAdB~VBTlB +zUcAe>s=z5&_91>piLHw;ofJj-Y$1E4$^(v=E7pwt!ZLK@)R)IC6IRexR3;pimN9$a +zNUmi#6fmW`*E%!OSUd6YlddS1=9)6Y+40e+S5sZ}w~CB8igH4CrG(4G98VT$+)=}4 +zYStyr6FBABiXYcLBb(DVT+j%ls +zq)l71|Cu#c%DD)MtEW@>UuEX&iB)C?;6IHHULT!odh?(!T%x-+pJ;2Fb3;cj^&Q2n +zVV%F{97#>VEk{hsdYqk^bpxM>s(Zhl^5i31=KK$y=3Y~7MENqQ$!}K`YVMvCiT8_R +zPTMG$TK=6YBKqE%?7pBa`QxfSlR@*YqXw1QwZez2`lPl@1Q|1q5khrpjAf4Zn2S6* +z%O8b{<|@;=Enl~nnh{cVZCJB6A}A5;0l +zWg=Pg$#n)2H=E4(-+m9(TR%h$aFNpt`l>8pP%O$S?90F>wP~kW`R6?b(FH-oK2Q75 +zafLS{lRtmX)l|J`iVtb1Pum(Er968fp1CZq+&nNVlc=U1p1gB)ayA=l(QF-0PW=hH +zaa&`(DKeLPm*z9y8m`lm)_mLFYKzm|Cwt!S4A2fsQtr@?kr`piK#FS1g(D)ow4;{0 +zSeNbJ9x$40P44RAmoZ+!p&V+rR#@he1|ssZG#TMb3s*2Zl|zU-Q)Jfsa;jF~;rNv0 +zcunTnuU&~Ra+u4PRq1Dsi*0ilKWl&E_)~Qc<@Ng}28vOb1 +zuxpaInl69xwQzRLHTj5m=k=*+lEbw*C3AhLGwqWNn;S>x4u)mBm7mYIp36^V)wmg< +zdU%6~MD8YL{!c5U^c0yD0(=ZS2MbNzn!W_z@l0u5O$S0J-|G`=Zj%k-J^akl#2`stSa9ORQ*d>bMmh6rA|a?HYg=X%z0Bk38-;Zp^s?upwp||$IP15 +z%T!94#RuwsS1=z3u}_FKz8;4cc@?5|lyD*D2=>GP8%-;(Ef^CYkH_!!0WZ?Rsw^ryVI +zKuJunVDRuR)m?f6YOxzS)a%Z~Y-XP>)zta8MI$nTeM|M`JzMEah{^{9tyC@@qHOAZ +zpuABi8>e7d6(N7_MS)_g+gl}G+)D|!*KupIV>8!|EBus{*F&j7LRuoBg4S2ubMPUyeX;O6);m%c?8+6o*8S-Bd+-bIQ_l|hKAmcuVAG<|Z>y507&+JNmnW6XaLb5*7 +z#2sC&-CuQ%O5E3erl_OEZRNAga71eRsneq7pIl5Vl<1r-{mM1=7PqsSO;?}Zv-w7u +zNyyS6)5_2n)~fwB-#deaXHp(+o3_dEn?%M8KG%dFo`~2g`AN@` +zcZyZ}?3a4!^l#DUX1^NGKkEv#weP&AV%h!UBv+5dE44naFXjCOsi$6kS=G|3vh#I^ +z8%Jk*w$pgqc<0?0GWkcE2-g^z)1E7}j(EDZNG!LlJ@Av~;ia={A9YKGJ{Hn4tg+nN +z@Zj8*@Aq4eUajUGJy*Z$PS(@d+SDg?2Orh3^L}d3VfK9%>AtA|=JBeCx +z?mq&~NN;*oe!_yxxkN3FQ3 +z!dB#t9O>Mb +zZt>l^{b)_*rz1kwmEOr+^Rw{JDAv?Yn_mC$%I58p=^=ABu2v>pE_&$GRLHdK&0Vd` +z%HpHXPUb)B;V9tFQ_nNxCgh$XT9kFHcDcuIU{_-Hm8mrTl0tc3RAGh4KzNn)f$qxW +zjUUkYUsCQ&yute96kpMukFkU#OO?I}#Wikry_Y*wOKS_)jUQq$j-pfyICkKU<94)H +zm3(&Xd^yk`pk(F1v)5#qW$I{#{Ol}G>e6kuroH+PRzGomoO#>Nn`Qg6=M>3vw-0;D +z@Cxy3UMv27T&O8!dE@BXt3I*YavzD^VhPr-OH;g~Ar$juKbyL9QT}nHNzO!-l=R+? +z__!r9QM? +zEiW~cVrhKXkn;8M7nXzM&4&B+I-!;LTm6EgIlxC-Of!(f`p=`=61C8SQbjcNh9> +zp>26E$BQ{W%q_v((%&5aZ%*JhC-|HDy?y^%d;ec}2H1coUEQVkO6K3?!X5?6u1o70xyBBKm~9Jm;;tT4VK_okp!>_V9mgqfo%ob +z3RVfM64(N;1z>%^`hcATI|-H@EIZg!U{8VF33eygda(6irNK&ry$SXvSU0e4VBdj# +z2UZxYFxZP=FM{0WRt2mI*kZ87U<1Ggfc*yc +z8(40z++btD#)35lYYes#Y$I4XuySDUfV~5j0+s@H9PBvQm0(wbO$D0@)()&4*nY76 +zU^T&Nf~^8u1@^Pb+kppwIFJrF0Iv}AbwP}9PDbiT76KT6r2q#Y0?+|`02{Cz +zU;+dHE?@Yf&Wsk-|O*vxtSJ~YoTl?tQc$<>=+yvoXD@QY5rbUCM*vQtZqVBo#e5) +z*kg65#tshq|B(UQ%^)nytW0c->u*l`p5vF?h=L2{95V=axIsZF9(cVPim`D`wgdsLpbE2o?0vj +zyA}j%2_S6pQV22ui(#4^^szj`Vy}QO%PS(dCPfHWMCeVF5T>||2xHSm@NYyItqBK8GeM^@%7mGF*hc*|_b}q3)i+ +zl-tCJT5{%#b8sG>h4Qb%&dG9Mem)l(p24AYe*SOH`FCv~fwh4zVSc{qKg%q(a6H;p +zI%wZI%+Ejnt*tzpanIGIReT4lOtOV?hR&`FXd$XfO2GX|y~L +z@A?<{E`|EDkp4Oj{V}l(=~upgsz1c#{!JYERtE;xzmAK5IIF*iL&ruM#NC28%HNC) +zgl8a@1wcEjcM|#w7zRcskw3XC@Y|QbTmu4u2p|r)1Y`k)KsC?+bOOV`1n>i3DTOux +z#DEQeDxd?H05*UN;0uHSr-5YP8juT=15bc9U;uazOao|nbq0Y~2+~vp=K^$w5oF64 +zj76yP3iJo+knG_ojPJL!I;=owVW?a8j%LxN09}*W3=t$<1?CY@2Mht<0B#uQ;(#V# +z2_ysDY6!9lkOOo9OMna<0uq6nzyqKIm;~52BZwZ53bX>Ou!af)n*cL_0?Yy?TM%SF +z-~zQAb!-H@XUXaU9mxS>M? +z0a-v7umOC4C?E;A2IK(`fL7o&@C86$54{IC0we&pfLfpl=mFjX-vByoxPAlTfGnT} +z>;wpa7Z3u(12=$H;4{Fy4dxvn59k8c00oEu&I38X1E3%H2GDJXJ_CdSc|Zd&1WW+} +z5C9wl3}69e*F}({z#zb@2mJ#K>BE=-egJH6VOdy%NNzNG+rdK(U(jLjA5Dv)_bfP6qlylP +zFwis|4m1y{*H$Bl3cylPkoQwKnee{_I`geWYO8C1E +z(}kdAG2H}O9n%9VY0pbhJptMb)AC{nf?vo7v>T?w)*?vYLOAGS3wj-ZY0vcta(Urg +zpl@RukwTCPOpAeTSjZD}@4~Ut@b~dTo}j-klnpdH_Pkai&-LwGp6G} +zM`Ah+bjCt@(6yMJ06l_fdn*KCWW>$|S`yP*`w&DI)48A>F)d~dZH4JL(CMJL(7MA! +zD8RH9OoVDoqt7;)FpWOL=)*Mn9OC_gPJl7IP=<3*9wscGLjXwW7gQkHp +zU8@FAjegd1A3^S*X_#ow3(FStD+H;-(xA@`J1~ttFMN$@^jYF(Oy`20$29spk%O70 +zFM$@s^wM_-vI^7a^F=vSb0A2`1cGQ|x&gEarUyXVVR{NQ1=XAg!tx10VlXW~3H^m? +zE~xJ$?VUoX?gaf5H2Uou^to*drqSoO-Izw7;f{c&N8gnT|Ieb~=)BtxVJtMAW((!U +zwEY1DS&QlFy9lCyX&%s9Fzs24AUiRwWrrYpFr5oy3BM5Th`uYFrYAfR +zH+dk)#sz&8`UTbKIDxTY&Pr=H^!c|fmPQQfNXB$7j4@wSbJCuNhhpJr5FUr=FwmDV +zZ35SwbXMx;d+0}WNC8cwH9#IN()CnL{iG6UU8K8dX{a9yzFL%iZjt6;`=wVc(z1)R +z4%@FX>}LCwr~M-Bvq*<5(#IC*=tcVMB7I?zzPd=~FVdxpbk!pLXp!z%qz4x1(M5V< +zk)B?p(GQRpG}9u@wMYvr(km8e$wgXrkyc)$(R+Y10J>oSx*sPjb4U_^e&&XLu86)t +z7QHt>x57LE8gJ2d)9=`)1L%QK283M@$N(;qKC7u3+DH8-;GDNX2Z^;PxPhvu`)m< +z7W*N&i64PXa`=^;=Kqy^v7eTFFW&o4$-)1pdx*{?A7A1^zSJ80Y6KHMAD3TB+uIu-w9x)!itn!&Ghc6Xzqf@`EcWUK +z5*_}C_;dF_fDXD5oB{MQRvJ9Xhe+LM@Q?CqJ34wV6czf-2WwwA1@z7zsTR)YjweB& +zowb^e3nhR$qWn>>f+E^5dL%Lt?N*YBi32rs;~pZO8fxg_OEDpvDB%fY6BRobG>0l;rN1~kuErf0$^n?!tqd~j>oW*tp-9HuV_h`j`j8>x>v?X;-{N4W|fr0|n +zT0lD}DeAiZRSJ2kr6nN!a~2B9y1xII1tjqK`vhnfs=6+JTMue9{_l_9?gG)7tN^qE)e@ +z|2md>FxGfz+c|hUC@I=GP~2gGCfXr(P9!qfj<#JQVuyVn9#(LQH_`Ez-wE&IyC{~7 +zriB&OndsvSlhfA$?N(oJI}&weM*p=VkSXYbfQHgCTO8sBL5la>906`Q7R5+ml`rEhL5d$5Fp1zQnKqksl +z8-S+KYZA;&JL=YrwKXl}ud9Nt0(Av5Qv0=Kuib7dZEt4>%%bB8Vkpk& +zW|E-YU7#XF2R|4K3kAoczlNY*x@lrzg#AZ=^2T3%`AaGOlG`YL9*)>J{cX7Z=0&r@ +z#^fIYI~wz$zv%eGqq`^qy>n2s`;+&V&jjy{clY__B~tHXe)+vg?!QjBhv-A}{j+Z; +zk?8qH2zojEwRPsAPy?*xun==Uk6)QW4Y8l1z>x9qCwWt#hn$JNiwAEoc0~=gBYJzg +z`#|}E$s_`{V={L0gofP~TVBq^bay6>-@gNvITy2> temp.txt ++ $pc $sourcefile -ocompiled/$amxxfile >> temp.txt + echo "done" + done + + less temp.txt + rm temp.txt +diff --git a/plugins/include/amxmodx.inc b/plugins/include/amxmodx.inc +--- a/plugins/include/amxmodx.inc ++++ b/plugins/include/amxmodx.inc +@@ -197,16 +197,19 @@ native is_user_connecting(index); + native is_user_alive(index); + + /* Returns 1 or 0. */ + native is_dedicated_server(); + + /* Returns 1 or 0. */ + native is_linux_server(); + ++/* Returns 1 or 0 */ ++native is_mac_server(); ++ + /* Returns 1 or 0. */ + native is_jit_enabled(); + + /* Returns AMXX's version string of the current gameserver */ + native get_amxx_verstring(buffer[], length); + + /* If player is not attacked function returns 0, in other + * case returns index of attacking player. On second and third +diff --git a/plugins/include/fakemeta.inc b/plugins/include/fakemeta.inc +--- a/plugins/include/fakemeta.inc ++++ b/plugins/include/fakemeta.inc +@@ -94,41 +94,42 @@ native pev_serial(entindex); + * Example: + * new model[128] + * new ptr = pev(id, pev_viewmodel) + * global_get(glb_pStringBase, ptr, model, 127) + */ + native global_get(_value, any:...); + + /* Returns an integer from private data. _linuxdiff is added into the _Offset if it's used on a linux server. */ +-native get_pdata_int(_index,_Offset,_linuxdiff=5); ++native get_pdata_int(_index,_Offset,_linuxdiff=5,_macdiff=5); + + /* Sets an integer from private data. _linuxdiff is added into the _Offset if it's used on a linux server. */ +-native set_pdata_int(_index,_Offset,_Value,_linuxdiff=5); ++native set_pdata_int(_index,_Offset,_Value,_linuxdiff=5,_macdiff=5); + + /* Returns a float from private data. _linuxdiff is added into the _Offset if it's used on a linux server. */ +-native Float:get_pdata_float(_index,_Offset,_linuxdiff=5); ++native Float:get_pdata_float(_index,_Offset,_linuxdiff=5,_macdiff=5); + + /* Sets a float from private data. _linuxdiff is added into the _Offset if it's used on a linux server. */ +-native set_pdata_float(_index,_Offset,Float:_Value,_linuxdiff=5); ++native set_pdata_float(_index,_Offset,Float:_Value,_linuxdiff=5,_macdiff=5); + + /** + * Tries to retrieve an edict (entity encapsulation) pointer from an entity's private data. + * + * This function is byte-addressable. Unlike get_pdata_int() which searches in byte increments of 4, + * get_pdata_end searches in increments of 1. + * + * @param _index Entity index. + * @param _offset Offset to search. +- * @param _linuxdiff Linux difference. ++ * @param _linuxdiff Linux difference. ++ * @param _macdiff Mac OS X difference. + * @return -2 if an invalid entity was found. + * -1 if an empty entity was found. + * Otherwise, an entity index is returned. + */ +-native get_pdata_ent(_index, _offset, _linuxdiff=20); ++native get_pdata_ent(_index, _offset, _linuxdiff=20, _macdiff=20); + + /* Registers a forward. + * Returns an id you can pass to unregister_forward + */ + native register_forward(_forwardType,const _function[],_post=0); + + /* Unregisters a forward. + * The registerId must be from register_forward, and +@@ -212,27 +213,29 @@ native set_es(es_handle, EntityState:mem + // Use 0 for uc_handle to specify the global usercmd handle + native get_uc(uc_handle, UserCmd:member, {Float,_}:...); + native set_uc(uc_handle, UserCmd:member, {Float,_}:...); + + //NOTE that for the string offsets below, on AMD64, a byref (char **) offset is NOT the same as an int offset + //In fact it's QWORD aligned rather than DWORD aligned, so the offset will be exactly half. + //Gets a string from a private offset. If byref is false, the string is treated as static rather than dynamic. + //linux value is what to add to the offset for linux servers. ++//mac value is what to add to the offset for os x servers. + //this cannot use a default value due to older version using an awkward default value. +-native get_pdata_string(entity, offset, dest[], maxlength, byref=1, linux); ++native get_pdata_string(entity, offset, dest[], maxlength, byref=1, linux, mac=cellmin); + + //Sets a string in a private offset. + //realloc = -1 - nonbyref copy (static + //realloc = 0 - copy byref, no realloc *(char **) + //realloc = 1 - reallocate new string with free+malloc + //realloc = 2 - reallocate new string with delete[]+new[] + //linux value is what to add to the offset for linux servers. ++//mac value iswhat to add to the offset for os x servers. + //this cannot use a default value due to older version using an awkward default value. +-native set_pdata_string(entity, offset, const source[], realloc=2, linux); ++native set_pdata_string(entity, offset, const source[], realloc=2, linux, mac=cellmin); + + // Copies the given infoBuffer pointer into out[] + // An infoBuffer pointer is returned by EngFunc_GetInfoKeyBuffer + native copy_infokey_buffer(infoBuffer, out[], maxlen); + + + /** + * Looks up the sequence for the entity. +diff --git a/plugins/include/hamsandwich.inc b/plugins/include/hamsandwich.inc +--- a/plugins/include/hamsandwich.inc ++++ b/plugins/include/hamsandwich.inc +@@ -310,46 +310,49 @@ native bool:IsHamValid(Ham:function); + * This requires the mod to have the pev and base fields set in hamdata.ini. + * Note this dereferences memory! Improper use of this will crash the server. + * This will return an index of the corresponding cbase field in private data. + * Returns -1 on a null entry. + * + * @param id The entity to examine the private data. + * @param offset The windows offset of the data. + * @param linuxdiff The linux difference of the data. ++ * @param macdiff The mac os x difference of the data. + * @return The index of the corresponding pdata field. -1 for none set. + */ +-native get_pdata_cbase(id, offset, linuxdiff=5); ++native get_pdata_cbase(id, offset, linuxdiff=5, macdiff=5); + + /** + * This is used to compliment fakemeta's {get,set}_pdata_{int,float,string}. + * This requires the mod to have the pev and base fields set in hamdata.ini. + * This will set the corresponding cbase field in private data with the index. + * Pass -1 to null the entry. + * + * @param id The entity to examine the private data. + * @param offset The windows offset of the data. + * @param value The index to store, -1 for invalid + * @param linuxdiff The linux difference of the data. ++ * @param macdiff The mac os x difference of the data. + */ +-native set_pdata_cbase(id, offset, value, linuxdiff=5); ++native set_pdata_cbase(id, offset, value, linuxdiff=5, macdiff=5); + + /** + * This is similar to the get_pdata_cbase, however it does not dereference memory. + * This is many times slower than get_pdata_cbase, and this should only be used + * for testing and finding of offsets, not actual release quality plugins. + * This will return an index of the corresponding cbase field in private data. + * Returns -1 on a null entry. -2 on an invalid entry. + * + * @param id Entry to examine the private data. + * @param offset The windows offset of the data. + * @param linuxdiff The linux difference of the data. ++ * @param macdiff The mac os x difference of the data. + * @return The index of the corresponding pdata field, -1 for null, -2 for invalid. + */ +-native get_pdata_cbase_safe(id, offset, linuxdiff=5); ++native get_pdata_cbase_safe(id, offset, linuxdiff=5, macdiff=5); + + + + + // This is the callback from the module, this handles any fatal errors. + // This will in turn call the "HamFilter(Ham:id, HamError:err, const reason[])" public, if it exists. + // Return PLUGIN_HANDLED from within the HamFilter to stop the plugin from failing. + // Any other return value will fail the plugin. diff --git a/plugins/amxxpc b/plugins/amxxpc index 58ac0e05fb44e4d53a5f48da59912dda2021e3ac..5f060f06c09d685b7bbbb49046e556191cfa3d1c 100755 GIT binary patch delta 62368 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 delta 37013 zcmdqKeOy%4_CG%7aDWjf4<;%qDjFG-nWUu?W}pt@13sjfny7Wl?A{*CW)d?z=zwuL zj#4K**~PL4%SuzjgnS&31Pznat7KMWUYiLkG&5B4{N8JyGd!i;&;5Nr-#>modo9*} zSbOcY*M3@i?R};nSGDqe5}Fs?F1(7f(7*ncXiF=|N>>{-y0OXj(#f=7dPbDT|$3+~5ThO5(qU*#gyi@{Ix-r?#KA$|CmhwBKzFu?JJe30H>i(>c2kFj-VpxKV^7X`_zBBnk3RT#pQoSfb7z4k^q|0T z1?e^?&)1ABINW9m-zNOaVC(Fe_%nXe?8F1SntDIRMqGZ}+SDiZi`Zy`JZ0KkzqGU$MQ8Ds!F@ka{kHkr%$%BlWweRm1WFWk@MpAM#mO73S(Ks?WA zlA$81BV61)By5(u&gyLK_6agat(Pw-L;8z_0&hg~iwutVmfPHAX-U@xn_Z@(DznS`u<0HC~1Pxf~`YB1_@G| zGB%1sS<~-NSH+0Vj+&EbNzD(Y7Cbv{qRvT+_hQ7PS}`K*<9j>%+Q;|BNXNM7Wgp+a z2m{38jIxg(Sk#e1LFsww%!u}qBU}zA-Hg}vV#VEuUm0-X~dswp3duX*hTI;PqreWHkcyG;-77e5cVN=qq>2EC^6JjmO#UHsn z{YC#fd$9?UYMrp1DpHanmGRMTZ=$_Y>a0u=6dFez^rUg_9|d`QG*xA57ys1+xeA>t z?+Kb5Uh{pPIegM=@;G#R`kp3nTZ{N;Gwwdqpr|yfl5WGSP`9?fF$ir_ziA(N7flMI zb#i%7Qg}^K^XXGAY9CL69&!#F z1l_ARFfqmKiD? zwYfp)psc$rVs;;-xHHdi+bPEw3o{Vsojv8x(CpnbfQm1NXMdGDMZK+K2dN#awAN$$ z7cwlv57&VxSLl@WoCxW%4lXQ2 zG5ci{O-PTB(|uz0YY3xwpzxE8g(c)DnLd+&-Ln7;P_uJt6Y?>Qegt+7~6qloCgeorUUSWX6U5c4{ z|MVH@d$0`W=+1+fq!<*rB2&FGN$?ES-PNIBLJG$yDs*4w#3dgS7xZZf65Vy2nEeV1 z@XiJ9x*+Ftcb!1X?O?Z57wqiet_u-!UPTGT;Tw+L&5a0BB6dN}oI_&v!w^|XMY;p& z*2eVIKswR4ZcM*}(uoiHF@kGM?@H5o7)J zO;fAuk!sGK-0_?;$%+ogSVM=4*?U3hABI}Z<*>=>gnhwf!#L|y76M{RQ72NRu@KXOh&i&c4)uGG%lDR-c!3I!Vk@BDzUyt(`uY0gI(^z^ABV^GP)YDzA5|^kn)Ul53 zDX!r?{Z|wFG9jK2Sqk#EvMt8_Ly$Zy#_AgdE<~DH>sg?4XWhCkZf)y%s$Sfh6qGwY zNZdM}%jLwaQWBp#p3hCfXtmN{OsmCkUf|BG<($Lum(O$d^eng{ZkT{={{B#sc z=5r?nh|zV-1oq4SC&i$55{OXW=h%C4nT%_Mi#o79?)%=KckR#-PSY z20N;JdVOx2+)2D=Qa!keTSo@vj)5#A5gfwjP7TT($>$E?Jd+^HR8Wtp%biX^BOAn1 zjqLMO63ou$jydoCIoz#FP)iFYV$QP|Nbb@oa}8kXm&7FkP4BP7WwdgLyFxvqbhiIu z&2WDgiUmLp5wk0hm$T2A;l9W@A97#hX>>Tpxi1De6WtdDXJ7Zl;5=t{_r(yWDDJwC zQ&J_XJYHZ+wzx~U3%q1uU z*o%U=%Xt?sJ72U?3I@lEHcAnY5-#qNhTRp6qzFn1K~f|Ug(4-&U1GH#c5T8Q6Ynh( zUPZ&OE=I9c(f*D2{COJt({(6h`B?;Oj(H+JCK~%;aq)Ca4$lzXKZ&qmE|9&OS#KD+ z)XMbpIq3Ef&IWy5*hW)C%zjJ#qI<^}1z|;;wP-%fRWau4UI zjEN}|M3l$AdS0$$PyFD(?L@3B!EG`}mtYlW$Gri){6)?Ub zx830tJu-#UDyfP0MQ;mck{preMY>C$lPlSX=Jv~JJN%zxAfriQ_ETtE&Q}>-mCP;5 zyl8Rv*f0tWkBO^Y_4`Hp9&zcx2#aLdM#gr{cEy!%>?^K(lH01xx6#;s61hrdxr}k> zDwUs#hDK%BmTCD)dQseQd3-n)YkfS1uk1J>W+#E#U1t+>ZY3SlIH{GVPE=f8dG2H- zwNf5AP02hWKRa_9CX9vcbdr*p?{?(d++|iJ6ct00LGC@IQAE;qD4C_O)woMan9M^$ zY==#Rbd)NoJCrmpSFFU#ZJQL8U0$Yp_v594l2%SlKB9#E7X%T*~bpPUQy)D!N# z)`Y=g_P0od$>f~vuH&6kU@plQoGCDvoOifkEcJx3l;>>INWKZ=Qe*T@L>psdgf_-# z*$Bj(&ozYRDrqN1<{XmKPB{PWNwy{ol=nKPH{?$A%)KJJPI%^oCuD>>lRZ=aKvO(( zA`>zqodZ2{>nTr~6P=I|?Y!AD^)kzhO~{CKMtSC5Vg>sqWb}2masL>K8a#6bCS(kB zEmOt_p82pvpi`(SoqErT9#eu4LyuE0N3&jz+(wpz|3R`wpjas1kxzDvl~fD;qdU`T zC8lr;C-fwU?!tPF4pIcWoR%*;yyzh|CLHKF){m{-dx(H5S0V;tkbnatF&LyX5|ama zQ4u;d;qs?CqU<1$7=^(E;u%s5bbFZ;por)sJ5Y-u2u4gM#4M+_umP2p&y^{{0C$O? zz!pl)mtD0AZww$1V&nw~U5v0JH7$Y>nj9TcEfxTA*+#6^SQ`?OV?_6S3Zpn`iwc#~ zYpE(2f;1r@VL0XkD^eHUSmZZ^-IsVVTgRg7z9eAb#7rD1W+&40O*8rkLYlJK<qn>!~P6Lb17@iLy)w15h!_a?#+CRI)M+mf7oQ^)r&rk1y?Nr&y;LBxl$K==ZH$Ve(pZFXrX30g!4Y{> zq<_IB40Z^SR$)gE_Y*zeV}B+$7HUcJitgc*@9=Weg_*%v_9dyvUNU!!`$~|wEQr>a zR4Mj%5o&cvq zdVbCYrJb04h^e!d+%cSj=?pY zn&LPj51r}%vJRa<%Ry~Im?SMYf)#7J*kBVV$h6R-q17RB& zLQd#Xgetjm&p4W*Y&Br3y$v&t)k@PlUujE3&34aPjBxZ=oUu+c%xLg%d3(?biP>sQ z`pkSuN%yvbW*b#RT)pv7Lc_8b{}nA^nY9-2HkNng|BiUm3I01agl4=@D=pQW zqn2s~bGANUhC<8vND-Gq#g)O^#4)hGiIn|w{{5_B%GVH+DHu!4P= zK(0g!nGsYAbv70v47748OBCGRGNBElK_<~iX|>|kbVs@k0%4-+XjAB_xYVTPx9_v?Y)cfn4a;;Ux+lYNMepZv9MRCMD}Ey_u?@6EZ&<8;bHfXlbX>L>pa+ z&eL!rvxj(Nufmp;uXMvu;PzuYamPV`92!vA$y~MA!LWfe3?n3?xC9DpnAot|5?^%2 zpmxNTLH(90;S*t(quRpo35Wp#EVf|Lk;M1{RuSr<^+{;kAPiIkX<-jw8}COA za^!R8l>T>Nd5~@W7#Z2tjtX{|S%m{5)+vmCZ^C^rdR9^#6{Le_yJoY1)R0LC9mjtr@ z(KHJzQ}Zdu9wIIoj-0^Z6vZ&8kj+spDM~>j#N~w&6v{MsR~V>AHms1)937rmHUJ9YRKvdSX55had`5d#{!-Bn7wAb`*h-610r8o){? znL7d7nn?e)4vM!slTs4!!2 zYUHSnOyeAg6T8xh`^J-;NC)kup9V_80U#ZxqUD$wIC9fag_2>cIICl4Apf ztJ*mEpB0z7i3OxJC6rUksbg3hF)K>wG=O8mFsop9REbL-XVgW^NG|2-8aGt;;}Vn% zO<;my&ll`8jvCjTOj_c}o^DKnRf*A)T1x}UG?t+$s@x0hno2cwifxVh5G>ItAjaX0 zPQNfG1B+rB_TSD--_>MN9>LB;x`Q+@pD)Ve>)~}}?m_ntq4wkCBh7vXG`LK7)U9*Q z``kM39O2f3oC$87T?^do)`OijJ4%q|22-oY)T5Z3jO*iCdEt4M0&4>)XIP4lrJQpA9Bn`DD)aPTL0fGc z#$IZ*l3oo1*IcoUj`cz>k}*z6sf}lkRO(3ib46%PYaEUm!`c`fc|@QwR|H29`Ibr* zXKSnHSu*Y1UK>{{BLx$bF{f1(bXXWl{0O(>P4 zIAV{z;+(;k*$Ch@&@+#DCk*REY0G`#nL>7pk|dz-Gi%|h$@z%x!)W|?QjB3tqoS4^ zZXU{^7B-GNtW2~~W=o5yNe(nXXj;sh;6Uai%KK9}JIc9VyIN&lJ4!vDan;(W)RKGu zR7#?eOT`xVzG^WNa#_fqicu*NacMQ(CHzT5D&?Wk_a}X@Qp;a%C?z!*x8hc;IGOo} zA8ukWu{2ly;m4cUS1c_(|1c(JRqB}D4+4_0-VK1#_NHE=8 zpvT!&vVu7kKpUt4s8N&-+lL?b(#%8xE&4EXF~ec-ZERufrFrQhr<_(8&|u-JTJ?J- zcDcJ&{jSFymcO7lu7%jr(6CyuWwADAANv0pDhbw^`EUw)gtqt_m*$m^A`QVNd!gY} zqa}&HqadT-R*;40BDw!JoDV+d!JnI5@eEz>De#xRA>X@3Ftuj~m6bQt2cAEEHAZ^YoaH z6ORX5KS4_@acARGz5XRQRc>d|U*pqj{nHSo^L>{8yWdeFwGs#WAJ< zs14~`lm#|f0<#|}nre$bRK~425p4Az_vv~9nz7_=k}%+{F`V>4&>*>nE~ACCtztih z2@Xf36OMpmu-}Ho2z27b4d{wv@WY!Y^aOPNk|)5I*pU@!`ux9=NGWjo9|lI-CRUV&B0U9o>9m;L&V_>x!D_QdWHcO6#JUm?!S2+*sy!O*k#Zv=O^nZ@ka z5reB4J|QvZZq{4ah-$gx{=SH8gSlhzU;KedFBV2g!>*RhM*9pcsqjt1CfBVTq@__zNC(#%SEel)pX zk|OtE;zM?}^RVwozjfz&%j>r>m`EkO(-ITypDbF<}*hX{T z|E9s(IS&&_E|KT4DKsO}{{j`j+`_2@3$;~#nw1(ADfypjn$vXFO=fijRxei2SiSDK zRz@$%pouvV!%R+^tUy6irYWu?@>4TO>Ja4PjS{=Y>rL9WWBi{|X2dA-@Q`h6SefGt z#IwYGBhw9$;lx_D3n}i*aCFltTt$j6JAU=_Zzpa|{}qyC5Q^mAp#GnAUg*fjP` z!tRHa-lp)l)Et(Tc@D2dd8%(*t+@NC zuvNcbvG2+3uO#)A_e&7A7MuDk_Z6!riuVi^oHtE2H3=t2q*Q$VLL9=Z(v0+y+CsPRi50m7#b*I4X?Y__2#Vd)>m`a=Ey% zY?k|?)f3T8-8nc^x>ZTV6FQ?$_8vy1gK@d+ih#-8;$C?xwN0*4rVCtE&Hl#MV^^;| zS{aJxjxB1x5tYiH!+c-@2)DyeE#b6?+i4OYD#n)#0Z@JOnw1QJyDV4Xe!k%%{wmFl zQHEk1|K|#u)pzs|)}a4bA)7O!Y0kte$+61x-s0{tVR3uNx?&S$hqz3G`yMxfL8gCD zb`*)(Q`oh%7ccM@#)=#FOU79J*dW)UY5ufY4aBHr19maKEibd)&A z9rp|hQ$oo>n~9Ny5=4A;f=?R>{NJIY${hP1csyfgQGpJDKaC_zsIdhAct%19-tK&vl zKF36ADehQmI&#m7yC;RAF~h};$G9&&gW4LcDFch9+3qqP1X2TqD+#&ovLGCP11+vK zRZ>Mt>F|DD#wk`UlT!p1q%}N zpP#Fh!=h4m9%vyW>!(oSm~t(S)0=aA!Q^=R=ji#4_p(M#46tq1{jY)2Plo4J1@+Tl zXdF>JOt$+DG_tL!xZ0??gV-K|VR}`zuQX>{1j(rVGZ|ZnNxS%}Y%4(N??|TaSV6Ak z%Kgj?zK_C{eud0uGwh?VN#h`UZU)g*`CHS@VTM;WNuP#v^HuD02uJUSu`Db)vlM+# zM$C{{_Qr+1cELjz*PSpbjTbZzEG~ zj@RYSW3R{_ zVvv=A7rF9$3_tfJ&N-BBs&n!|r|hI$-9zlft*nf=wYxiq3WrKMD=Qy&pOg-tY_)=z zXGz2;9*hjx0}`;JV`bJJacg9=G74*zyCgKnY@nE33lSB@eT3{;3cf}pYd&$Ow^}5U zL^4g$b8&)pS4(iuvI4DgNDj}CP?<@ozAA7ydxJ5!P`J9Y@~4_E6)u2D`&QwAx8J zbeDvaZo#_5YOp4n!#_}z2qdQZYi9q4T*xRrY4Df7HT6;D8EFmFE`RG88Gg9BF(3tv>&^dhYsCC$G4TRGZkXY)_=?4cyj8l;TC z^Na5>llIU!$^NYZNy<((0fmm9Nt|3+T-UwWCw2Dp=iR68iQ6l)QZ3lIz>eN)XD_4< zxXe2Tn5;(Nm4#;^CtohU+`YI4Ou7@3Z?4LuFUhpSkbo^FxP2lCz9_!fT`KmYaG1_2 zCl;T#kl;KjHjMzY5ymPav;_;JrSjo`5S_tcMBFzy`wTh6Y%(QVFno)W8l<7|Z;E3m zg!IuU&E95(Gyh?>9=Au-fMdma_u^kr;x5$dNxA}uKn|(Cd7(Sa+B|sS>kmR@tBQZ@ z%vHLp?}@9FCDw2m^?cf-8<$>>1qNyu)jI!mKrSc%y-{8c=()+#F~S3W4e ze1OUiSJ=8L*Rjs+%$3Rc2dL-WKis1;(c;SFova+==iVUgK(2tnw0tH#8gaotLH?-$ zN^+z;v2Q*07G+AfGCm^iIGraaL@7^O>8p?V;W(n={ew@)xgZaX!P68xNu>?SWsN_C zw*_U%bWXJ>-N=@G+NLZBFH4HGB*I!udWbUc+`vl4VVv~4VFUU;`WLECwO&Yy1FLF` z7|6722HNTA-%shV=n`8smajyHd=^`Yqju3HnQ9R7WX>~6m=~(Yte6I08KhtINUXk_ z8e>KMqhgf>z2gp&!7kSsW^~TWXtTKNG4P6)ymHPfi27^549*M^%H!C#3*W?9=o#$G zpJE+O-N(+62(r5d*%`bKH0;R)NFLZrW{14jc$vM8jA3~Nbq1NlIi!79#S6$P{)Jjj z735GhvA^Rw;_sm-xiHnPU7{Z><}F^_6;%b5Sw=kZsMEuE?M)O&Y4k?JcXUs4J4YU% zvo0(&O~j+*~XB zj?FV69Kl5FEdK*!x8+bxa52oqOGPz*Y-fojxQ;8UNm3<;0SHnI8EGycu{n9vxSO$zFHQGjr%oR3|JB zo~Tgx6sE%+5Dqm3E1BVPMUN;L%bz9+TtaIZXA47#jD!c`%yc+xP_2 z+M-N~R1%cw(b(SX$EA*nGzs_T_@E-rGqgT_pPU@6Cy$c{@pMGTgUi6DoLG(I{qQnQ zr5;Y956t%0eBS7u2sb|zb=8rRVglZaQk&kR>LApDNM&fWr$2o_VPP$ctBb3pW<3no zkR%U;B@9QsJT#I{!)f6VCKyP*OTL6JUffqg<+E@b&PyqVA$APcXZ63XRfa|?gJ7&SW+J;~ITq0#!#tF+}piQp_y2DtqK-PuTZ-iV8sS~!S|cKJs&X=9=B zT_|%945FugeU;?C%0f5@ro*9DPA!VV@^%^D!c_z;Z@Z&hlA62}ryB_NnvMHa{K;WH|>FyGaT?}J7ASQUB0Y{+mG`3sqG8*4wjC>aL!lMjR z&1E(|gyuz{DbDt28Jb<;PiH+WaG$~HB)y5ThL2@$50G88#WBjl=>L@#H@M9L4VL~x zi$|ezo42^r&i}I(H*YXLrEb>ZC>rJA_+%*r&*Y#deUPxQ%b*Z(`B&&^Wr$6g3#a2$ z=5(Y{kJk;grf0diU)7#^MjD``one=oR=jTdqS%k2-&V1Hfp4{#XLS&kuf0;JB_7}N z*)qGc4m^V^oQ3-W9k@57;e(#Mg|kog`5PxfK^Vy+iN+=*6<;E;KSN&<=+Hb=__h{eQUh*#2jve%JFfu z*LfYy=rube?5nT`Ec@h2bi|fkG@$|vSlKcm<}>i|&B7v&@S1NCo@#`vDLlpqTdENr zVuS}$_)a7I9EEQ-!ub^LW`vJW`1EaP)FV^sdww_p9PMg|BAtvM9Y;-jj@{?PB(E=o}x^ ziCc%=rRQ>R`ugy8VTk=4JPR1}?1U>7QomfrGryNvAjs*WXYP~m%-uNvuiW#nTcs0+ z&fq|$lc+dzy*DH`Wqc19Hx_7`bK_NWBx2Y4s#%nCmRfMtijFmF8$Mx9NUQb;oyBar zQ}ayalI*{V*&h*+gTxPl__*J~S7DwB9MgbNUNV%E#2L!*OyKS3oKl0*lK4P+5YiuM zOb-gA3rHW^n2tACq-4*8V5H+aJX85euoaE;5Tti+OqW93#i4<`PzaV2huMUscCTQC z=(T|xH8vJ={t#($K5Z(uq#zs~-Ug-O>D4o912;5mh^yhKHFc&m`D)?cAGozl-{ot}}n{}y= zGcxPaZO$H9m!>(RQbxGzbk`4fa6#>%X1LDab9eeJfm1Zv=HUBXY{94EO5|f>J;Pe_ z$f0R}_rn;Mw9w)k0j#s{eoR%J;r8I*DP~_L*)y&9+6P~3)1y0Fko*h6`p+XHutx>1 znr&`S(r{Y#EUgLY)=w~(EHKKz1Frb;xGMH;=65(=LbL9=6~8!u6>AsKB-vAOIFBTk zEWKmffHd}#1aBb$uU6H{Nrg9oBIhI#To9Mh1$tn_e;WC z==^;K{hlQ;4rH_D)$B0XwIy~Kk2UL!c&9)---!1J#FrXzn!9ZL&PRZfOp8Lyxd{pW zzu^xXp9b|UM9r>!{UZ>RniZIadFAidynu!@vj9objQ&NUrx!Gh6=c&F*h$8OkdbZF zN`8_&|CiL_rUI&eNMNuB$&CzhRy0=lUdsZ@sX{eC?=Ho!vamxA_OTRuvGZqRAT|sa zOgUv@cfno4(}?$6K;ii$iK(HqPXQvaD0d}^gGUhIET_;rOw8#s&6vQy`m1N%#->J zMzIyE0WlPM&_w$X6iV7R@Tbh6%6uzlLa5>4RQPY3)H72%-#(8hnm$2bKV4+}gbUtK z4P}fHd>l%GAWCPnY`ja7@TP&{ z(4^0WxH7>Opq@q1p?Gv*l^rAoB=FyhH2H!DbKHHZR-ap6M7FfC=G^N(Gh6Ab;5j>Z zL$E4Z5Yo5EshfN+Lp8LPyiIEik10nJtUD5Ar_?~}J4gxmFxXKK8b`OPA!8pqrZpFDiLr} zfGN+NxrGy@WecdHv`x%cvHKpBs8{fH`8U75;|yo_YP*LJ7sOqoeE&Yj?C%jsF?c9l zvrr`sh;tiR7OJ-Ro#U7O@V65DiiJOWGGq&T)vH<5C# zyU5&hWn%UPsOyu5&4y6cRJ0Zf%4r9=x3i-R4dOvDzId=TJg;A&j3?bo6_aRr*n{>u zN}2Z7qcjmaHyATR8ivV62@%L}dxNNk7t_&0r0qQv8wIvS&yxVe4wT1HlzQlQGUq8~FqsTu4b#3!d!>PBx zc0brsm(*g_BSlagc12`{#s4*ue8-JyV=?sDU8)5d?m zgc#RQ!e2p+Ec5jxLJ(9{;WwYmf9xo3qXSF0@oQytH2>?k)SSRr+_Bix%POU<@kWaD zjBh>3cPh}Te&v0fSX1!9nYfjHGK=k$4JTI=mDB6UrQoWkU(@*tmL1+3!tKj`{0?kc z9ZFm10=t3uD8YcLVl=NEweWH?onU!ppSREHe(*1#13k_cM6HyOF zEiIf6|04~JK`qzN5ZiufJB=l;2`{lHl#tFC%=oC*q^WVes16Q!(sNc886qXqP zzEMopPe|@20#nzZ)UwHc5}4{jZ_;nV<)+rN>J{FY(WsSeOqdjbYFDBYQe1pPo$>|W zS0mKc4|hrH_TRE*v$K(NuRnAChr#*7`~FJkS#qP)SWalgX{oD^nXVdz&huSPVKNW? zKjrNB6K92SmOh{KCz%_17O!Q|vsdX@HUdwqYp&sdrRD3ALWA%c9Xq{wePolR{SPaA z>{=CmF#Inn{5kE~4UEMnjMPHxGA+7;tzk>wp%#XSyBu(AnPZn0bYH?>Rk-jkD{N68 zEgNiTu?nNi3b(eb@U!H(|02rxxyZTxs6I`~RxK*CzgzN?8l9 zQQ@GqMty~W`l$bzN^2Z{(ZW9exk6fLuQH=5-lht#vidAA>I-kV{HOzGP2itArFv$q zA{6^bNr(K{U~AdXSX5wfFNm?YLd%B6Y>9no_P2cEzt!(%zs^_vqAq^)dw%R2>LY*O z$yfeT(CZ%p&%f}R+WYY-{E1)G=O0hv%TKBMAI}XfSq+0}hKb+THT0c&IdZ0dUpl=H$4gf3UB+1M7Vl5N)>(S?^LfzmtVNe~%RHM{h)>tE zyfwkrnl`hFYeLQV8MXJq?gdHD-pg@4)SIN9;JliDV7a<3{v1&L^ZM!kQAbjS(gRS&66+P{_rO5lU>dRl+ks2(gp08;Kr!;oLVqd7Z zHP3rSRaUPFuQm%TK>;Nz@t1;x*L3biQ|WF}I)1bhdGlI{TNg3Sg%$fzev$V~!HhL) zgZT7XHRSE+TfM&oTldk=nBqdhU3#9}k{cc2<9thIkzc+cU3b}h1&^o`-oDId)vDvx zb|UnTwN8Fbt@_>CUai*D23y$%trox2F>+0Pu(e;_nz~?XvA>O6eq%i>YQ)d0Z@hcM z|6ejsyxT2=S}kAr>n7i}t_vw?^t$w*HI@){{kogO*4RRAxceqyg~z6K6d5%ojq!J; zt8>;*;O~i2KV5$VA2mb$as7}^zI2$`7mIMj&<}fixKpSsj%R15tBwu5c&&^2_=bM` zgI&}&H@wD|bXJFa_#WS}v-;DA-T2=-sn>1n#vkicaO=jQT+mCAoc8@7?gnux4s%<2 zVIJbypS$lKb?v5Ad}&8DadRyH+!Xcin;+wQcT}r3f5ngOpnm+(4ZLl#di`1FW^cejKJ{KRl|Q&Bg*f4Ev%)GaI`oU`a@xPu$7))n2r{~)SeKk364ifZa7 z-FQt@AO8eWit3x6Jk9^qM(wz506*ufI&ND(UTUM}Y@5dSXrq3=Z8g96I(6}OJ3st7 zb?5dze8=n5pSJhoPukR;JM8?sHZ^@mAAX)q_3Y@!53#8wNDQ^9e<1N#YxUNh{rERq zs}Jt9^N+MvSMTh@4`{6(KqB8-<#*ZnvM}}TU43{hOnrP8WC>H>MB+_h>eop8y_I_1 z?tXkpD|N_jJO6wuHFI|#{=Qb~hTSLl`Bqi&9&PgmetRw8kkUq~PZrgp0m5~3a`iRXoom-a;SCxg|Vd(fO< zHGL176Rdjn+}ZA)V6ea73T6&x>fqXB^(crxPcEq2g{EAUgOlq z%lhz-aO&!^e*Ep6dI*WXTh!~y`|xEJ_3rY1{7V*fZn>Sm&!TQX;!PIy>++RB%XLe^ zGyA^ggErP%3MN%_wDK#?t4|(zqNi^!Mkj{yi~-oA=`(NFPzAqu2@j^Dn$mB&Q`L_| z#aEeRJpyFT_P+E}C=yCXO_2M3fM>d9msx7to$Ba+^%A$4rS{(mkHN!tsEhv9Q;aGz zDqKZr{qIme`q%KAzcT5DBCU~QdvH`jVeE!sq_aBu-J#xaG`-8>b1;7{-45TWe3afj z9mM6ryv|CtI=W2#=TW`GY+R+mYxHmYg1}uj&+Dl0O7^12@`6prtU>(9p9{7fpTu2% z4xgyuI1M*tB0J@sx=rnQq7VPk8TH;18GQc=wc^AB{M{AmZD051->p&8zrIggegN{c zy^D8UFK%_`9Z>gtJ&u3zKtcO&p5gd;e%15s1AJ+DLG8D30`EUn(B;&Ap6`0H;D^&~ zc>ci(^>^P?enN#h!LRT!->TJqA78t#VE>OF2)yS@b>1)WZBKL|kBh4szgkI(PmNMP z`DGX%{H3b@(wmpNsJGUxd-toI&)&+HR1}Oj+lS-t?o=@UTu*_YRZ+0| z!ak0lTcOUb8_g>f1zYO|aQw6b>Ms{Z@(&(R6D}3=K?e%1T#9C?(e*6#vHEfRj05Vf z`U1Y=0rlxWe&VYt3Ld=Di{pFS)ED&M`5^~Bc5{&&pM0QjHOIZm53H&{->s>EUpw+A z=p<(});9Ls%A;2-`-9%U6$)(&_uO&Qv=tda`t?qHODjYt*|$&yAAd@uo7?nPhv z=o@VRs7no{$@%6{J08%Mp)`N*0qwnDZZy9;So=MgyMZ5ZK#K~2_`ecY`bydVF8zY4 z(Rg|QV9k+qwZ{DUIZ^QjPXiohVZMeue+CK9MM!PS_UDtD7YpnO{ zKGRl<+}-@V1KJ6Z>wn`Sw4`P~9+u#ho`_#w^$ZC~7;Y1n(9fTL62in%4rq6TbMNpk z9niiG=VJJO9?*i?a^v_R2eh=doX&r^Rhx7@cLd`{>)npa<;Q%iZEeS$#)v6=ErNTJ z=YQL*i5)>&;y zXU@fkepvWNXYOr|e_*}#RutD`M)c2D8gEg||A#`F&G*qVJdoVeV?C`3ZKV!yR%PvI zHyQh^fXBnG5XD0OCk5a4_&IN~^P4_-iN&Rh?`c;2Koq|G<+6=$^0-MDmKd0(5~jmzPM_g8l3hV$Fs(?)dX9^=Em&mu-{GGJdU5dMq3}t zb>_!>ua(Dgd-!>;Yo0hRiLd-ZtBm7%@V{0U{u;+U!12*X3MbvdwGsH&R%x?tsTpoWUVtKx|sY2 zIsLfZ{Nb0i`2O6xooq)9MZ>znTfTe8`QCnp`lsE?+S&dX3)x4t+wb5G@E`xHkh_!1 z=J?DPwdV(LLp%R?7$adt1nNc)`kXMB+;ySOu0H;-c4`1OmtUW!O&-Xl^oSrjJRO^3 z!+zV|DB*hq7sf>1-go06t#}~!Fn?mX7HfytBM%imX6HWQ`BO`^XqZoTzky%2#X@_X z@qgG*h6pq~+;!p3pK&Dexsi*fRyE%n#x$9T_+NGS+CNEc$TnCcCN;2_Lf+9K0-**L zH~fhOT$41?3Z5V)J(n6I?b`!QN1F3UVf(we>$tAfFJLLjXqA=G>RD%4;|npeM?(*2 z_YCG<=VM;bst2QIzWb~&_#VzG@W16~;!v(HpHrqK4aGeCN11m2Q0{Lrm2Px++LjAR z;esm)KVaY~So0K8TwC6&!*^58Rvz~nr*?8Ex0jz*R`~uf?n8lJTC7bSfjPcZ(lSPH zQ}}kp+Tju0sF(}hD|$_i$34d!IUyy8uT+vF@Qb?1%nMgqtPL5--4nS8=S_v))`rtQ zwiEqH`0-+G)kw&kyinUUlAGSCZa4JoeucOVkC3;s0IVjiSi55sm)!RGOw8sp5!n4{ zRrcMrTU$B`%j7+o+NYzq$2*olwu6@qVE4sfugllZly*sqhFe0|?YmL1 zw%#mQzuhEQ&jCsR13nV0iAd`PNJsu+zy?4CpayUgXdVD82TTO53fKlX2{;P~DiEw) z0RsRN08ap9z}tY`fa8GQ0O4COnr_*G76YaNo&YQcybAaTupe*|a2e45W5N0;U@>4F z;2_{6;O+O&D!@U&Nx*M_Ht$1tKp#Ld;2}T;U@71Oz(GI_AXxf9u=W590^A3f3-AEe z0rmjC0bB$`K*e_eCITJ;I01Qp&44e^4c`II0!`qk~OFdxb9uSnz~M~{vA*P zm<<6XfCq5%$u|V+gKvT%pcdgj08t1h0RDk+B#2gHY-GGqm^_u+Bk+CiENnf4yPK2x zUKXr^MX*=_8GleX7(aDkHNzp6X#8iS3rG*QM03GbD`EQ23};!g%y2Y97LL*>gllKP z2=g4m;S`SVb9extg8evzHc+;}4Bc1A_v}j<70&_a)`cH@q z1s-W;HZ2q=&@?R&{s{E{6CnDQbV!pLS{BI6y#~W+J$3y(yv8Hw&?Ia}_|Y30^8z$2 z@lw!iH0h2u(4+rb5?(9rZ&GQ1rf&nI|2ZEjy9vB@z|WH=-HJbenYZZr$2aTxIKTiv z&%U~T^ftWh1HK112=HznU7vnC`Yl%1pF?3gpgZFKibuKrx*iTly;IkJi))1C2>%sG zw}BuX3>O358>s8mV2}z-@H`lH0oIWA&jGsrB!u|`&m7mFQo;l~Av}Q<D#Npk<|DDY`ym_~@}i zl19(4#6IxElTQ@hzJhyIkg_J~`T@Xt0EO28hP8klh;IP|@-6r2`YON|fL{ROWL@tA zco?wQgx7(0PQtxM~dyCtzvvW>`uH zyaHScobk~WJsi&!V{w1gAGmJ&6@4;r`Hm}k7Vu=8qTdEC0;V4iwZbb939n-caDU(; z;EBMocx^ogcsB4-;40vCz$v9y^itp=;OY>3q7?fn%sC{y0vrh+g>^3&0cQY@1NH$w z20Xd!ik=Hx4*WLo!161)7r5>^U9SiBiRcEr?9C0w0tP(!dT5Q}?cmx1j*P(O1DpXD zKozhLxZa94AifS*ncyTI2zPu6@ND4Oz^?$)&xRKPuLJf0p8}p7g)YDiML96tRK#}G z^@o6G1Fr$j0Nw$d3tR|TUumGQW zIj|IiKpg^!z_C4beHvu|KL?z016l-J1?&a3_QDSz;QRj~;6&hZ;Ay~Bz!|_k;Fp01 z-UL+xuLG_CE(i7j*8$W2cPtXSWi;@>SY6TwA&`NDX~64%Gk~jrUj~lE7QF>H1-KG8 z1NaPZ5wHz!Bz(ZJz>{G^3@@72C8Ics6h~a22oxcNDMmkst{I z>#)BkQUVN%nZQNZ_tyZYWTF6Y`9ky^{&ycKi_mw#vzMUnfPF8Z>nL4?%7Lp^Kw#jE zmAZZec%X*;0(jjk=rUXx6s^KXufVUoiZKH`Tl%N2FGV17H3|Y(0UrTQS&KmfT=W4d zjsS!8=xg9|;EBL>z;l3K*#J#ZI`Af7>xWP|Fg-A@1+D_N;gY0iBNiQC@~zQ7?%8n` z?m25P#=kw-Y7_9$sRhS61L*e`o+PTIHr5<|$aTTV?%?F-gOZnEeTYKxFhJhxIKOsj zPP0UKK8W%k0*u=wSXY3)DUU#YHj-;g;2{aa{BIx_;SMH(CK8S&5wSEtLJJd-m`4NV z92Ttcz{KAuKm0nZMNGIv;7!Os0^FF7Mj##ymh(;1gn0Oq{ z5j;6*#>AwFLH;^G_&0*}bKpiA2m(EgatDum9%ZAER|%*F-I8W>5Xj*cmPjVid1TJ{ zRskH@tV_+;oN+3cxd*&#+Nh#o-y0)5@It0^xU zkRE+Xu=Ycsr5XnzX(sX>Z^&cgKuBH^#28OQdL{B7Y??pJ&AKlGX^H;^UyWPGwQKb< zqFIPOXhb(5TFats*CV$A(V3?ymqmSuRyIcI|2moYLql#fqMKNhaUO(dw9n)mLH`HO zyg;m7D<`5Be?zr-h|Xz@u1B=GAv&ZS(Q!Y57-d?jf|8)a(f87D4E^T_bbgmEO{NSD zhV#MN;I&-OR^Cuue;si_dl607o?FXVxj|aaTJ9$PR4eU6ko2exgOyAqfQGRL%@La_ zz)bBd$b(<8>G~7e=C$C`_Z`m0pR#F#-{E@kJFe4ay~Fk7eQmWD-od?6U0dyaV9u)T zdxz@|o~n9glslv>f6FVH>4W$E~FZ*Io{>E^ZD0nv);v3(swqLg*)@>uGc!R!_`&A_1ZFEZQMFe2tI?Ix3_lo z9j;w4^|eKNY8}^wi_kplAYXrqwbQ)oAVLa-J8IP^#7(2@E-T+d@Hs}Z@?Ef+iEhbb zR3Y@gf_=N4HuycXwbWoT=RGi~GMMC1$uo?Jwu!j*iszF%4B>(HXXcO}#v%Woc(ol0OouwOP+~4z2>J(H&aidQQ0O z4C1KGVi|3&83v*PrEo{B5`6hVoebU8 zB7*KDBBuRKC_9IuUAS!R)(z19+Xjc38^EEcfl$lZfF8HO%Ie6Lg5X4GI$V2$3ij7_ zZh)fmkXcNk1~w)KE!f7ozXsHa8uuaiXK6ivdQ`$d+kFjc3rfw=9w6$O+9E=IwKqOQ zC#~&#l}-xRzWWfJ^dRLm>!g`lkBwZv;PsEeA7KbR5EX`NPi=(I81Wmy*r{#Uh-_Ev^PG$R4roKKD(J|`?`;~8@g?RvC^xdJcc#GG#DbFyV6zKn2#Vr zw)Xf(Ty*4ZK1vfFIvC1*5c~=_9S`k%G1TJL)_%mj-mO0#v0@Nd^nbSJ!V*WR9Jh*t zIZ1o3C9;F|U;)>MuWeuWMgg}hbfuSzkq&hVv4Wu`fQgX)JpdTrCBzC_vH?#*99FsI zLBLFeVXZabhY^RtYk3+l7hxFBFw;Y<$-sfUM-g6V(rrQ>?25q_1qqPQLRQc!GxL;@ zX?e%YdkA@3%y4A45bN!TmmuDT?q#}5Um$n{0A*MRjv+iNDugyE7C(;o*G=-P5&i~1 z`2-c94aBMZ_sBbK(j#i|BYeiBr~IE0K5NENUb6g($OS+^fQty%190|X6$GP#Eu9-H zv?AUb0E3I=UypEmKtSM*2zLeq_;p1%x=DUdgl}xfN9V>O@?Jv%UL+&@Dj>kH59Kw< zk4LyafO?)P`5NInn&b~eIH5^=Fv5cX0e(pc4-4ee;2Ms|$Up+(sR-W(2oxBHa6ki8 z;RM7d0Vqr~QxKj8pn*^E2N8bQ%qN-!&}M)i<+s8JnT>o3OZ4aOh&&FU7E$~ugq;8? zOfV1OXPd;+!EgcML`(UZ2xm3PcO(2_ll&zJ%YcB!JP79jP*!3Us)z&%5Yv^2uQCW& z1^Eak;wwAKBPOpS{$`W>wFs{R1S(jM@J2vDz|9D60R$SPV>}fi9%{iUjfi$5!V=W3 zd`Ib5#Apr%FoKp6q>(99#)?@iILcctnP~@2Omtr&OhYq(X&4_t8u1HYN~=a1byxsX z+G(WW1b$B-fJ-imRHRW}KssVQ9%(p)HegcYLr5dZAL^=g+soY?W&tWwg00nn#9_hKTHu+E zU@J)w9o>Iqh;?QXuJ-_0_cW)f2DL$z2&!oCsRl($UTcuXsHD-LvJ45fdci9|H7C`m z5kgreBYzF@X96fc4<(!CKZN|mp*R)-u2y~y@~e@z<|_HQ$sv+8_j+RxuNfX1LaBpO|zMC%PRb-7b?ZkLV;+Tw)SZ0ug>{ z5|){SMJB_~Ogf4a-RCA<%O242UE*%Ov7YMcmS!J z{uLoT3-NJgI#t{Q!ch8bg!`F-9zooT@>u{XPjpEp9r39~yzeMX>yeGq)G{L28a@tx zHjP8Y_abwwu_{Eyo&k9!$nyY!Sxw|bU5V9U+!$09pqA=Dod?F_S}-T-JWxl2(u*(& zLjMG4YR>3jYhOUq#)cz39Q2hf(n)LK;9X6%o2z1A4MIc5SZAW8Bm}j3O_Ojn!U2`@ z5r)=?rmY#Cjc`|lX)Fa`v=(0hQ~vyyh4)r)CEQ5wX)J#DIEw>8HvqO%3w`lLA8b)$ z=m1A)^lv6;3Bz5;c2Dw`W!)WYrQWHWTsZx6ZlG1$bb=d4e`2-puer;@6HhuHrlt56 zuC*qA!`*}f-DW~Pv@Z$$KU1I1cppgVPuB!d=F#}@C#@<=pJWDD{gM$PHuw0wy3%+FbbChn30Dc TqU6-+%X}FPw%_n&)UX2px-~4+ diff --git a/plugins/amxxpc32.dll b/plugins/amxxpc32.dll index 7dd0a44f0b2aad822f896eac29031e2ede6e32a9..969e69d08011f50cd04b6ecc9993faee55283086 100755 GIT binary patch delta 44920 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 delta 44877 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 j)MG@o``e;#CC1D@!ym%eCMK3Q7 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 AzyJUM diff --git a/plugins/amxxpc32.dylib b/plugins/amxxpc32.dylib new file mode 100644 index 0000000000000000000000000000000000000000..d8281c57cb9e478bef0651fa5ff8d7026df0c2a6 GIT binary patch literal 173104 zcmeFadwf*Y_4hvm0|bpuP|&DRqmCLhYElss2pS|eYgBB}(u#tLh>A#cMoP$)Ez-@*JA@;iM{D3lHrg~Ftt6?5sy$6idlgQd8b5blTq*n0zkLxz_WpY~q-P`tq-P}5n#)d|dg_K|f z&(x{YFP}Btrfq)v_64e-{WnpcI(0U>v?`qwzhpZe3TQh82KCIxAwAX#H$PLS&N}Pg z;h4T3Ey1B@J`VNcrv`)R%USWWf{el0w=dK89}v2c&ghwsqql`{^w(!!9RE6GK&W6? zD5U4V!*S6?7thY&-A*U9*utK+c844gPrBFhGj;0OmtNYF6JLG#DEPsE(7%RS0O>RL zlaE8`Dt@O)f+0J@<&S zE}A!Q&N)YZ>u^lx{If$w4uXB@;sK#TP;Ft& zG$8b9eieMKq?3D5COY4J`*%wlc0Tg2KO1x2?B9Lwq^o0;6$yS2(k$4)__8|txC)&BNE4{iWwIWEl=|P077Sc`Ml$Sm~FMWMpdQA^zH=W5#KaiK+ zI}d(!Uishi((Cfl?~tA$CfxMvy~%UI5|mz-hwzrX^e1^p##`_(NYZ&A8|wcJrX;W($3JCZhEMx{@lp_7hZ&O`m1z z6*9W%%X?tm^eK7iL|*y~lh)G3O*^)nn8!`m=fQX;O=L~^{Jip`^3n&A?i9fDFl!QD z+@hn>BT-2CdBQvCa@mm-?1omnJpjD^9tKp>=nFa$P=D#& z;ZT12;VL|0m5}t8dS@!OOaqeV&-Ls|#qJ&)3Y|au93}4{nV1znoa8c+)6bo8mOD7z z5ltz6cIsjg@1fW-Vr-`-)>RiPFr9esZTf5Skt4+XAUI8T#7jGC!yzwy&<1L0nBU?L zw8-uQ2X|}nBeFaXKWD~yB1>}4S#xIx7-e?;O~BK=GSBjC_^{nTGTsu?##?GQ_Sf7N z3iZMjkW_bbP3RL%oY$RC{ZhJ=)9Fi(i9j@UXgT#+H>r`AtO~^oyyVFlcpdB|C-D>( zHz|pNME%#$@`unUC{_J~e~~(CV*cxJ?Iph-v6ai#KDVq(vrbd2~tDkzPn z-Xq)D0Lhdgr-Y(Sv=e&g=q@|GmDUc|BQtL5C zBu?%e+{Y+3yakq(>9x_+Q4FKb2>~5rHr9-85FNyJFOdD|WCu8(Ioq63F@Frptj>Ww z9JlVBGcW3PUSrIpNYX*G7m24GE~9(7SxT;RF$3=VJQs!Cw7iy?wPtCArsecZcBaY7 zH=68pvR+_%XyHpsMuT;hNZgh%4#8;F?XZS)tS|&pZ9OwEft!}izAD=Sh>s?&G{#ZHnLLsIMURWsV-aEgRh0!a${hv!tkN+s*DyzYF!@l zXYxerFDZQo^)5WrE3@!X0E{0zx4XMrO*~cSlp(L@hTJ%E5D&;=**Y4)eS~NB;J$zr zIT4K%R&@Ztxd6Ipi%1BbevZ5+r*3>?aZerav^PT7e5u;lP(UiP9#XCE5_g{F9@Bca zpvJa6SKWWuw3TykLzNp{Pm}eI;lv?s+KhQ{Y>|L8;%IHk@>(yXHM7AqnMPVu){JYN zE_VoyZ4=DlL_+?kzXi>EW`b|isH-7DWvC11#ovZP`_N=dZn%Az-H)z@5}VV$2X!&~ zD7B9=J!XJxYOab5g%+=Kbih;}d+NvE(zX5h`~4-`@%P{7sBcdUf1M2la2GlI;)`d& zzZBG$N$-}2H2{o%Dpa+ZhU_zNma_3RJEBO9txQZ-$cc{XZJ0>^DOJ z6!I4tsL#F`YMY?WHc(r>84B)+cMMcSKKC2sMOftTW}tSoQ2ugq?lr@-*a*8u z-I%8T$ES>^EO6V`0o5I97<<1^w5+iO%r))GyX|QjcZFolZhH`lL{rzAtfsK&BM{K+ zl&lUpuO}jIb8L?LQ_Wtj@@0T)t_orrd+XZo!I8$Q9Ff$y#S>(0PvIC>gyEm4G z298u5-XLksX zq2aYBzciUTlexxbnoQ;reagbI9rW;{T&ZLCTXn$`WYZFz3hLn znLfOIKjGKCu~xNauJB$38PC;za*MyscV zs1xoQ0!YYRVoWv|yng0!0cu=2gFDlIlAU)A6kIDdqZt_+(=+~E6m3kEK_o+a=_M15 zmRNHsP?MhV_4)5Zq3r(5|G;fp#(8WIRDy#rIcVZTtQJFOwM z*f5alh^9aNS9f=Ar$N56XHfXd?hwOTx3YqXrdE%ztO_W;x0im&j{b<(vw-q1dr?Co zi>UsD9NY?)uBl6CmXpG-^hZrr020=_=tfhZ1 zh(JmqmF6v39w(pf@M^=+x|PKI8k^~dbMSgCI zwr&rxlOXN}f>2HBonoWVD|*`O_#v(P_Lbou@>_Z!_S_yqM_&F9dLRzk9%2tcR2jN* zWNuk{eKfTbLjeP7L8#uMS~Xe{`z?UpqQBeBttK;gy{Wm`WV&t5jV80eW|o@Ft2U!4 z!&~%-%`7pQ-`LC|Wm=~zlZvIt*!e3tKN58WJA z`T}WA#>4s#;rO?se)q(3hD)KeMIXerQ7`J+Pce0U4eNu8oX6VURS3lRQZHS{gus2* zFYeIvn)s0FQ(}oPvinOvtvTrH1bwZ$OXZsM3qTwfbDmFpl3Wpiu4t+YIhuDqCz?%K z&+jBcRoR2FB&+~9Nu-}jjTzjoHpiyBqp3Fp@uoL5B74Z|=L$t2C&%*oDN!4m4B~3q zYlZWNjg+y>jeG8dI(mKH*Y`TNzWP7zuk@Fr{qVE!KA|bODI87hs+E>igY=yP`57RY zFSp?`>ZhbT7EG$_4&s#)C%c6YAoFp_6$QrQz3KIAEBMbG0*2R--DCbhc6I{1x90HD z-Qz^MeoA9?SIfO_{WLnfdjKV)G}M7A0VB3n}tP0utRf4g+_ zuN@Fq?<%wJI}&$OvrnIa{?)ys=%>rs`r7bEpy)m6UnERi*;Q0=F*Klmqz= zAVx8DvF3jIFls!T`uz1{pwHi7d8V0N`v<26Uizf|}JGB%eN4&~>p{ zUfQ_Cy4XxFZS+|eo9?BJKI>xBy!3nvH^oaE|5g{9jIql>u)jjac{|){N7IQ>4JQ)sc zY#3b>FAd~8rJtPlk==gBG}v+t=;b*N$WSqG=|j9OW*tr z>MmDHtM00Fx8f=0mT2lG(0b{6)F>4jWlZ3oHdA3TW3#5F++=qA$Yjb)W~9x;OvV^X zDpqPT#$Hmf5|c3|lZq9ajAPpjH<|lvrpRPEZKlv<-nJYlob%Gp*_w#SylgXCwt4Bz zHuEo(<)z=ZnN241fz5nwG9TN_29sH1Gas7Ftv2JE%tbcyzR8?rGjE$rgU$TSWNNKI zUNadp3R1C`Oy)z&^>Zc@%=%B6%*(dsag%w?W>%TZdp6TS2Khf^AIo{<*&FM>D*BsT zsA2UMT5DZ+)X-@9Wm1b96*iPcQ;(DJ8a2S?8B=1mOvJ$X348E&$RiOo@~c@~N)F7; zdDH*9BJai~C+lpj>~5V`ib;$GAm6{FyB8d!_Ow+G`kAFdUjJEPsc*XQt!dFmnu|-5 zn|GL7&5CVQ__gHbaQy7#<^hR|pegd|caFuGG;==A{GnfeX_(x+qw{ezeVu?U=?*3P z&Q4m`_>;hqodr;YT7Q3oF*_x>IpTbrI5k(iqxfrVs$8FJDXt4G7^i@!$DafQ3M7}l z1WeyP>k5bJX*_mTab3%cnm-ZORu?84FMM`dYfC|?4xAKiMbpn~G+KT&eEOk_h~M9W z&iUAF#Kk%5oX_Gv=(a!-FR$X{2=2~QZdy|~Uj84v%b{D^H!o{ult zkEWZQxA5|(9B8nJXSqIukWKk(Ey9NCPAA)Pcg|nu&9y&)de3}Wy)B-w^UQ4TBn61E z%C&v$^JC38ON|q#9)43|yjvHGiIjJTT_8YlQ7P0jaP+7~y_MqoK^I}pOb>|U%T@HW zVakN+mCn|d+gxT4*E$#0BLuaT9h?o`O*5^pFlsf+9vN7K+$>^cd99IRmf6f5A^$~i zCT+7~NZm_WExt_83pY$-uq}5bL-|E6GsFHH4F4ZXyVPQK$tzCcYLBh zA7mzSE{TOVsC)il>Pcgh+gwqGi&?mrJE`t$VUeiS?uwVS?t{~SwM7bE4DNGGbZe3Z-jV$kR2mM!YJ^sr0haK$t?OXVZ z?U!(JZ+Y_TyPgwit?3G5{^y*?iZVTDtbR7Se#PGz*Se8qY{gXfHq*@VP2M*FrtG18 z`V*LUM2dlC4iDyC3~)UiY8;E3Z~19?LKp_oR;nmMtfq9T+6qdm6-?FNa`8yl^s~LNDMro z$$2JTp#7hIVN#ksw2K{P3gkDdiYyB zAv}S?f|~uDbuFL5(K_&b9^m85Q69idWeLk%`gqJ{aeV}Y1vTTM=~h6!`4MoA0L`%E zYNq1Fjp0TLBB_qV=YlDwNnirxAEAJ~h>tUWQH?n-2;yby&jN>+IcN(U zEFJ=flEN3>$>Ew~qV>-nzj%Cje2!C{oixX4vjg*0a(V}<;@CGn!%GbGP7FI6oM&mh zc=y(?q=7l%)C-Ah>sLo4j&V8{PYpM=Zc%YVIJLHqV)C_84oZf^O^X``(X#{L=bG%k z$2-pglWosUAMAu8Sho&-su%CmkXjob)Vk%E#OGc^H_vEYCp{Cy$W1{cDbSItSqCbf z46tAlvVWD3)V#I9CL@8nXMcr41)|=lA%52*^cC|=a~@o)2048Updj-nB)=r$NtO~QF`zfb~(%P^J5V8op{W4(hmXx zUV8ZU5ZYY#tANlBvK%(!j9rqa9>(LDok+Oe1+4zRD9OKz6dVP`cV%B>9(*I!X*@EG zM4SF6Ln*K)BXzMF%anSe*|29;RNjB}ZT>v=i$13#7mHz}c^f4EJEtQ<1#hFtCM(zi zZ~N1c_k^wGYfneMbF)G4b*CdoQ}uu8>BueSbVR}Z|F@?j51Z2w848m4|KW6G`e{-@ zzta(O>cRXlSqisDoBoq`3DBO7_>Zi@+J?xYU2B5=9fzyB_snp~t=8%_qXkCnF$i>g zGJ&x@#hQ}tiuu<+XhQelO27Og9hYU2jiddyL=8MJSmB4%|IWWx9Y4Z*d4RGIF1xS^pN za(DSWjl>Jf^PLA?U-3VV(JC-qF<`N1L}gU$}dv*Cu{uF=vN>%`hWu1vzYv zLIk;8Z`KfQeYwecNmik1$AUv#_W`MA=)fhhR+_p$aa6gBdylRH58TZwysmmh^cLi@ z$xWU`)yB{O%uJw({n{SPU4dOV!mBTJU9}w>o?oC{|3?7P1mY!M)%h4|T=56gm^9?f zyx}D`1~s>t8d0>DGZo4tN9e{L%@&(V!M{EZpy3ZWSvIUe zs4I=SNF^QmZ{K7FSW*7?9I!kG%DF$ix#E81cQP7~l2kT>GXI=K{Q1Qd{MqcvoJIgb zB_mFYlI`c5b2wHB4C>!NjWbZc%8?s(ty>|ApR@m)-so&dY_M09x@zsPh7hD`?JQTz zs8?>deH7V8iG5&)s*Bl2seP2`;ikhma=Q@!8+xfcdaC`;(mQcGdc*VRsrElhuWdVe zzvVnPCr{P>C+Yc{mtYjbf6SlgQvUp&BN>0hFZna^2L9}b(e(s5#+-JC8GrcCR4nf$ z*Bi_X@sdZ(T;iFFvelu)CC2K#$2C+Aa?`)db!-g52%7AH`?iI9U8AEg=6SD>@UGXL zTAh)dtQ$rJ{yVpUrIf2eC2bGOF^E)45l6{th0(2`o;!ZQn+;=A=FNu0F3yIwReJy7 z%&DiJvC@Ai%|Lqf9-Upa(mwRP(~=(!cUxkmc7}=^PMQD3yxIVKN z!pxml=)5HH24^KToGrFcUo$X1uV!eXYf)Wn_r(pPdF-~VBC#BPi;U1`7wG2a>##~s zYAM#Cu&$8$t8H1i-A>xgJ#BL3nro9|!pYaWlaEE35}&8nB%+JKXPBgAarP{-yW3Nm z?`j>_FnU>0G~GnfJ!y(|F3OdhJ-PCQ9)9PC!pS$fldB`gCq7HR5KZp|L}rk{nkIKe zv}YTdkT+k++M=nAEEbaN#^GO@rt~>aaXzSiV*VTMyvg1L;p$O8O?;faKe?*J=-$ki zR{rHi{!`swzVznYFQ9y~1C19SrM{?7ZiE+$ZM@wK;EI2aSqhNn& z-0`YE%4>a3D%><;?rb;JUV-q#o4Vgd?o)95nO0zvo8~9J0|s*wWn&{l|01vTKGSHx zrPcm#pRscmkoi%gvXyK8iurW=r?4B%cpaTB%CjGo9X|}TgexKcm!Qo}uIGTzZQq1F z*Z@vek=`bHtICb}%((VCSpWQMesw)0SAJk#x{`D)zr@9%8}rI@u=i2+62JN5+uG+W z>mRU?;qJAeH}M9OSZeEL;7oTUffd(JW`ne{8zL-E|@^e1WJpT(*B;xk5XTv?RZ9kSM)aN7hcSxjt;=m)W|r|En9w{GDy{!gNF z1Ap@S3)G=7)k-l;U8BE`)Q?^kP8=C9fPT!ypwH?tfgkF)KXIV}X-JIh1rbBpLzfLm zoZPp}e@M;7Ec;Gk*WQY!0QP@Fg~2m8zE|??(!_3ZdCy#LPQ&x;CGR|(J{G#6v7BNj zc5pT&SIx3B%Hlg|)3cxYz0)S*nv3)bPJCDC!@M)_J}`uPn-UwiDGl}i%+2uRs)*(m z{q)dhaw#^(b7s!4zs=}#um1Vpa)wPe$}pBfo-vJVp7L5<1h(SL*T^8K#8y@npSd!B zzB-+GvVsZDpZg-tq!T|jipgkam5jiS&5T*uy5OjS#O~Fz%j4&0BLObf2roL)1p z6oiHDwGZ(^(DD$h9#FS6wvWAi-)$TIx-ri92)C`wB*Tdv+_s6k44_X73Ikze?)T_Z zbF3I0N+$lnOKp1Hu@U~+&TFDEb&Hm zFe7Pz^Cm;G0-lTA<&#CSn;i${ilr+{SH=r9Om_f@7au$bZJv%{?`kg%6$<~ybXQdk z^7v1A$W6gPC)a%NXWYri`u( zauUC*VF@{mw9Ui5FrFbPv!5FcK>pe7!r+}u`O6_ke)mn9cW3?+7SlO?Ypwvf|M?kuRu zPV33H*qIx;blZ9bJe9g6F$`7L4t`GjfO?v8l4XM9Q0_)&#~g!XxDW<9C|on`1}dg7;<)IKsWY1e%MR7a!I7 zPNX9sT2bSKBB0evDA*ASbA=;c6^h(~LM=7U(8%EGN z(Nq=D6t+@hqp2FI^8H`Fy`1hQH|P?!u@%M&c5$Mn$%*Jb<&FRr3#_IQl5x17}+me>i{vPWd_ zmEGAgj7f2nmddg^O{D%aAmI%`YO2{xVSo4&XEkt#XZOghcXh_s94lLVVrWr8Eqy3c zAK?F=mj8`)i;s%L-{>@UUgp@DR;YVqccDn+E@r#$zi0#2p7`%;?)&^iKsoyT?laovm^??G9pA}{&9fVZzRtFL~= zj8est&EH7M?vGphQLtO;R#k3fMyQD1KP6U%=woJmOFUzh=)e4HVt9gYld{yt3E^oGq}r~ zanZlQHVgw)CH@I;KwI1hXAeCtxyN2kgKhz_$x+55f8TYkdQKMAQ*Z34*gYlYykh-U zb!Q^m_5_$)ol|1D^?}{Xc=8dA^5m85S^tnumUd035_j&Ub?yXRh+^e>t$RXne|>lN zyLCvxe~>2Wj(NvacSf5x0H@2$Z*ZPb6hF{Cp{cT?_43kCe3xXVwX#F{s%@71~+LxN=`jxbnO9?1?Y>&IX{(t>O3zw2A@K%$xC)J1(B+y*)(;WmGe1_ zQBonl@e@u+Ie`&>?#@f+g0%leKkXP90 zbo%GO0Jl|`Db0+CQ=g~4)v0gnjN3bWRM*kuba8eZ+trop(;WbfA|Hy+s9cYbX7(RH z1EZ-|@tw|QZ&Iw;FJv>)TyL0`Y>Cw&2xMb!C4*Mp#b0|Qe8lgV7?4SJMe6-m*`$0# z-jAOB(M_KEv=(IpSPbnzZxZ_>w<@|cI8kity3E&BIkU6+g+Kq)-K5T;reP>P+fBYq zU6#pZoiWJ@!z-k62_RblJCiH+-Gc$QXHfr}< zr&;}m!w9b&7=JP(2sJvQ=_ptAC}pFRH=igqtHq-P6T>0qJPJouH&T|^v2B$cj}3&6 zyeZHBHydYkhVv?JD7~S}c#$ z7>VGgA!?l4KK<~c;(eg-5c3qH@=Ua@pe&z*0OE?T@aD&i8;Q&kJHv#*|HToQ-AMnB zY}!#Im+1eRK9H8b@&Ai*H{JAj&uC(8XciYuiGt*+W-HNmIM}?_&ZkzMryG+?-pXWb zWhtM2kn!mU(K$bKr3vI9z)kxs;_X7LB}TkNHws=J`BhH5a?qvGzV06k z&4hr8h>vLZvT)pUI96jyOVM~CBTb>E9c7j!zvu&nV)o8J40Cb=(GZ*D%kicgOmLkN zSrebMeYivvl${LDQn&TQ)y70i%xt-ca(Y!2*kzp~e{w5=J3%Ve(Sg|`KMv}E#LRS( zjrxxIV$k7}E>QW7%@2l!QCYKRr_xJJDd#ZEGt}rB0*H*hcp7Kw zKl_={+el&k40tL;L5C?bLysyIP5pwu^dLsp%_@bboc>IU&*GWu%lL@xBdsToE`=}S zW*$)gI-JhlP2XqB5xeH(vaVXw(#|daFE3m`?@E~TD{T*IN%y{QKqVns$e(_X^&C6n zB`Fh(KSykL_Sf8EdfXe-7^|Sca5ad+e~&ipj3Swqs_uxTrfw9ys{!7G6d(WDXi7`* za?0iPf_s!k5B|xY8u_20_LssS?aVm4-?r0XY3G>)A1gERs^0k1UhGbUL&CBGtT0ZaqUj+_%Ul~d<6 zb)!Ju?~Yz`A>hu6FJC8+s&G2PFPxO#xNtKeenqlln>jdUNpbvh6x3yE0rh{+v2Sm@ zVb=$DK*JZIsm_aT`xzZ(0leM4U9C8jj7JETiO3nb@3 z5cPMb2b^XOU}7%!mY5#+$-N=f#U@V?akn79BgplHC%kMNj_<8qeFCj+4z}&P(145( z$P<9*g5)S^Ut9mPsVP^@q94Iu18=`2bWCubif#eeZJ79Qhu7ZybC|~T58zW2)vrZU zkD1a4%h-$t8Aq&mUe`HaCZnNL(sw<%-Fag28u0aTus0p}pLMX9M#*-EhHqxiNp4*b zO%H_qhZn%OuJOL0*r9y~`hwY**CEi$v69Cic*?vg$5#JVa?{??_9sa{fPBjIUdmN} zM@E_D6hW)pZ8e<_Ipbr=?(W2~w(O`CTJ(nF73d>xKgV2@9y%jAudF-%SvJphSU-mR zYZzj%VBGVM|DYimZ(yBS?zSIj&~g8nYVLe;pA=BHeKlf7JB%{9965o4;A#Eu-uURu zlUQOeQ*6;x4M-e@6%SyUj^l|L4YrBlU?tvmleAgnwwaExy;u1H{@OQixsgf+K6OR6#BJXR_6c_Z-2+j$?W(e~ zfZKj~Pda+vgwe^jBToAd@hE&Mj0&ficcQEyxA5hYL;BjU+o;HcyOrifdi#|+0k)sK$wEd*W7j>pDG zj#Y$8$^-hmcrDu>&==K(_P}!M&9Ud*Z)4DA`ZV0^bzN2S zsk#BZs}@meS;|TEuyu3=^yE(mq;jLb%N%JJ{48E8|H)>3OKei;^5LK#N*n*0QW)UOlC=DQX*z~Z(!)ti8;VX0 z+zj9CnCR`T_CJy;>UsnH$`pwo!hFs<;G~~6vWaf&&b4wpM3vgWH zrMvYfyq6)|)@?$iQOIkuv)OOJ@j5Hpw#Yu_&P;A0Mp~?1Y#~PaGYOot*#pU(3mMBA zjFrdtc3Wo}&EXh_!OsrB`rj8nH2{kDpwE+?ypSi}jTeS|U$YfPM8_m=&*iL{ljwV70P`uKpDi9=ND}w1~N_ zb=F4f>j-d0NMP8^PS_*01{sL>*3buj^)A$H_Fo_rL@WmyY#cYSeYg{ctwZ7CpYXxU zBS8!^5{4~Ms*MT`uO!NG;`N!|@n_9%jpj|kP85K23IMVXe=Bw5NA}n9xxm4f6@Pt! zgHSIy3%MK+*qdV31Al#>j*2V?L(xe7qmEf|9N$Uogc6Ze0 zBKiypqCkVH0IBq%e22NtnW=9(mb-1eL)mS+5kbO{8bW9LNmAdFg8(A8ZUIx6r+upy zyKglzowwg&?yEbmIM3Sg&H3%%;G82Eu4{h-7b`e>U6c3$+!w;NF&ENB63bYwsUiKM zyitE+i5c~p5_?8{odms+8$zH!;5)KkUK$_d);2kVDJn{uYwhfR8h(7Woa#JdXxKqt zC|bYdKIb?y#<&nXe{Pl6^j327-gC$Ob=Ya4s_1W?xa81mrPpc)MZw&I20qmO0*Jc* z+1a2E`41j9Zuw3KEV~caAQAKE$S?1*g?`EJ%)DRL zEoKMDt_N#qVuUamaW^|p;$|na3-)K@%TX0L6Xq8COlHElu*HbVC2!A96 z&PSPdnS0D__GtTiVeFg}qfj)xfq8%)Ow^7E2OVZDZDxrh=>h>;5%2VgoPHjqMTnzr z?q=(>3QM>!9-A`FyQYJ3S}Rud_qvL%PvF~ly^A)#7`vL#)KxclI)M0-!PA20tl%k2 zRe3yk&Iz6^!E>H@rUs|<>yLO;Oj3`0L8e``}p z-rAeIqc^#%H+gSw5(jF2Xr>bg{gC9`#Qf0Z&bo@y9qqHpilCxdbw(N$W?+$YS}Mw% zbzaHCs?uWoN396#M2x&L#)pO6x{4U$+!cME2Y`Rm?$p|1g-6~JqoADpr_$ERW{yLz zX4f*BZbog+(?-cHu_+5%v?MxAh$aeA-gvp!e5lGsq6MXbxL_d*{fA6(ZO@n9t5h?b zwqIu+#(wSDAEUQmnqXsK>9oNo@-bh3pjgRXsl|F!U;{Kp))X(2E(8wFtNeR!u`XpU zoq_*x!h5SNOT{DRpG`oHG%dY(atme{tTGREn65wC(t6%;5;Ld{yQ(QLCccf!8_~)4PK)xGm^3+ z@Y%uv&l+;jc!U-lnNnu_&fH=0OwT07WDbO`iI)xU&NF<6F~^BAgO$;MR_0T>(X*cc z?s9PZaSUHB`EQ(7WuCJgt*u7L3!@kEcN%wBT3f=UI~oUIZe)H7Ub?BmX;)>=$K5Bl z4(PFg3Bp-q`zOum!`i7cVZd9G(zx=L#xza&Tfa1Y))eO2&y6~%B})M4P8p5Ep2Bhe zWtIon_@Brd)vhN00BRM_sT@tcqPr1&Wf*fjAAc1ci2xwr)VP2Tl z@W+TX-ZdSPly88neIFs{aC!~G5MK-Qens@I0T2@$@1z}{*igM;{t!^9pqIZcaxj-= z0>O1!L1eBag?P-8;)Y$Z#or(n3Pw@xU;i^BD!s7%+KTrE6U&}~2sFF`Y22Ztjq!!s zfB$vjNo$PoX#i~}HEPubfB!!kmB?GXZ1T`_i4!txI)olkhh-4^LPk7_43NhOa?>t4 z3QmzU43_a|@ISlBp!*mg6B+-+a-3qh69R{#u7FjMhgE+(5U^-!$i91Oo}PNokX(q( zK=jrZw{2+!UwrTEp~3x_85o+;QxI;JfD{&t(M_`~{Y|$LcHZ%3vpQa6AKY%=7$1(l zfHfh_`@l}9{w(paL=fo3$t+qD6Fui?BGgHGU%un*fs0bHHkH|(;1&NIpasmsR~Y6c zlYCeH%rN62RLl~ozbjv=M(jt-{FPB|`qu&@zwB1!;|J-5_IRml%=!!&t4edPJgo)T zpKbB4A{|&Gwy5#R%D#kQQ_SRHhKx>E6>xKd1AOL?3rg66q#yF{`z=zl@6t=@5l)5% za45+A7Lzo+kMBllK{iK!gxYQf{X^}dreRsc@}U?U3oWah#PnWCn7KkA?| zH>0h&95M8bC~lw`z>L!=;{ls;;hJe(b>_P~D6D|CIQD|V;F-%05AsF9vm|&H2hUjW zEDfIJ!Bh4te4~PAMewW%o>jrKE_l`k&*tFS6g(#d&xyfvO7NVl=fEqQ9uOn!K~4MY zcUl#5X;-t8Dl;FjKZ9P3!;b#w5^670!WEY-J5hYA6uhcicIyB^Y?cTacA8U8e4v&cX~MfQTD=g zw~5=M*WC6wlg7K7;Gy~GI&feOp+xhAlVVefy(vE}Uv9WvU;Xs_-QCC^#-{Et*e~J| zxbASq|C!wnyWHEG^iwX(S3e&0j+UxRt{Qu@ohoX>@r+k@bW`P;#YKERXqZMAXIjSG zGgm_j3#y8!G_eooPjlV6qbIVLrBR)@fXpN^_masDr}q1;U)5g9D)8uLO7Ec5GLaqU ztgBc%W~to)J5==y2-WATtewb$p;5u^;$l33nHTqDy|%bl*b*}D z9~K7oU3P&?O6UUP91&pLNjaWmgh(n{u0d3`=sl(#?6*T!N~=AW;yFWEUw zTQ0}YDdhDJ2`2hzT`}i3ZcD6b!HBU9@3#~MJ3$(I{&P5&)&(6Aw!c|vM(+zPYmFbV ztTs`D#6(W>0o{5F*z7KWKgUCA(iq|W&QrC1 zmLn~5TX(V-CQHp75-A6T1}-CJT!yZGj#en6cd9RFT3laR`2t@~G2hAaPAui^vyYrN zvimr%a^Y@HO~k$qAN2Qlb>{-bi|p1UzX~rr(QW<(AO9QBa=3R~I1to$fSgzT%Q*&c zzM==^i`k1X>h3)c*3xzd+QxMFw6p?CDO(U<;=EcDX6CT6HFNkVkhHe^qDlVR78`%P zH^pF%xpSJFua3L$gK1v#;icg(7N>sE3i0I1Vtoom_gmeYZJ@?J)Hni%&|Ee}_G1?@ z7H9Cq%95K7OYH3(*X_KbUDb;0{$A^c7;$n_STJ)7vx9hnCNYSfW(Ov}8sNNQ;?iTF z;r~n<@!TV3^-(JJ$0Zc*jK~flGs+(L)C%qr!D-823Uiy@l3_B_B#Uu%P%oKz!9g^0 z>hPzqY@W@`^XBvF7q9`cEX*fCbuiGv!2q-PzRv*Ed#lusLISV?b|B4#@zTofp8Mia zG!@Z!_~54+h3204yYLc$rxNT<)`APTV=44RB4Iv-H{?<~it}c+1`wv-|hK<)%5ef>T8GcOIs%iOWCdTFo$uc=aV8N{w(&r1VkL zr;7Av=nW$-16)rtWO$Y<|Db@FtR}OQUzO(%K&0i79|4iM0(7`%S5(?rAEh2&Kn*g` zDogkHKxo&R+vc!aHiz~mJd6V+=8gnee+*^cfZ-u9U=`XR9RrJgD;r^WB5jOH6Froc z0>_Q2$)W7{YjgC(ujs9$VSjqd!PCQW9-d~=TYGt->}FCOLhj1eGFMFw#mA{=yeUer zoyT!rV_EfU@dH3os%}H{yJGO!A;hlcr|12J=%Z81WF@kk=Rn}r#%NIpOWM!XO)KRk z%yJ2H99xWFlS=&S*u9k6F1NFR(dS{Xj#1K@_ZfD>S(bymKp31t_B&~9UjHd)f-Vrg z?8Ro#=q8IcblKe z=>#abg)gmdCV{eJ-VfL^zV2Tk_MM+LD}|wIe-`b*uO@sg_EY~8K@V}XA~9u~x$e16 zWh=A0<*%Pr=`Tf)C#2Ud{Mh+4+456RZ+0OROj#G)Sn6pO(4m0 zk|D|_Lhv*L*1MqFdDgHV-@T{D{(6LsTBHyDJ57%uKJZ_ng8$gEQ&8qF#kh3y=wt9t z5AaS4o-_5tB4;54T^3TmNcJ2?D5iyPT`85E^bN)vElBRFzYqj{y^_6&^!f$gu3T&8 zTX(P<*uEjaoDHwEzXELaQnJy{4CDG1ATVq5fMkmuUo6o}C2QIgr(m zjXQZO@Ux#Vw^zlE%KdL?paigiw}KDmyI*K17&A8O@SkzX)BI1ropZzOP<3cXZXotM zjrsY7@-aRBh3_qBg;!MlTq43N6T{q5ZMCA#@ltp6uFfzo^c0-A-S>aWeK_H=?9`r;|;?r-7OcyT?JIj@ThdQriTqyh{OM666;*NG|u5rIj_hJ*f2Ya)2VwGft8TKY}|afv!2S@vE}V8o%(h`xd{l6Xpg?l=bMU*`c5~;a5>);INB+T zj3+)Y*&R;kuCVd6M~CTW@_`%imu5T5p4es0ztO~ubykKOD3DF~KkqVTyfb{L+`o{6 z>8x_444=Waz3P&yieN7IK8Jmudb0d87FFUdFN2nO%S}97DZDG&F(l%8%>r-98A+ww zfU8_fP&8Q==qer+1CQtr$5OaIw}Kd&a{l*BPyZ>8naN2L(tJSu3qY)Cavex1+l_~R zT2S^086tyGVFr7g^KxZa%C*D+1fvx> z0$;F>RanWrz+kq1j}nIUqvQ=+Nhkz;!;;G5yKxnK7b@Qq&;QkJwsh-g!o5IL#(gw% z+OkfeiM-9>PUcXV-NdHq=NF8i-TMGJtNmHDbbN||*bGF4zQ(X6TBjqwQHNrZ)i2LK zAkSXH`tB|-Fg@x28Zw-hZ>S$Tv#G@wPwr^9wvHv#sBE-%JfUblV#W@HiFd7GAjOdX zE|D}#Kh)dnyWZSpWNyNhchgo6KR{yH$qt`Un*@@K|7~uZABII$cZ;5aj(_DfumyEKCy2G@%4a&0qF~% z5$QbVe03Ba%xB0VS#W|ANE`0#Vz8KD> z#Pk`skpL>wOuE;e?fRjHo=c&l05bOf_mr`-$$ZKguT3N z<1F;D0nr86rt=)ma~e;1%qcv3rgvkHe9)O*pw%jWf4R<#vpVx7wDauuo(Nd=eu>`h z3W6{~3HqCB*~ICJvs&YV!R|jnuw;Vf>551A>;<1r>iz$^FHL9m(m+>~avoUx54K=p z6Cxye)zti*V57qc#({QC7;X!T>_a;vz-up%hf#Ldgi@O;(*rHEnL{fGmce9GvtGa8xF3Fe>Y^b^FYg!DTh0#UL-8{+%M()X3T)sZ-{>k6Ou{v`G zQ^1q_Yy0bP|2lE(tmE34d zZ?#A$zU_Du=^HonhqpEG+lRT{Fwx+XkNdmc!z9Os^=Z>PNog0| z^y+m{E&oak2?G8Gx@k4*5i`Vs1&Y zdn|D2t~`(z0mt0b$KPab?neYln{N#aK?H3rZ2aSd_EfuBB!7` z`S&LQe=EoM#)X#gqv&tt+J}dQ3PRq!hHtmMN7>qkAYRz~5XT{8D%H}&9F z##Z>X?zd^Pv)WGtmkAfGZ6pr$dbV|CVbf$`4}sQAuAuX71tEPa?J~Gt$_`sf**#}S zEQ9^k3s62zh?@N6UqO&J{sgjO+idpQ4lLZym<+4%ke`H5S5iGck*tll+@u{CY)fij zMANqy(zjI_Jtol8|1gOkrBFZ%dN!yYnIRfJ+#g$uczvgoDdKG|L`JV?6Jd!I@cOP zLzT;Cd=TeW`jM;t^0nalZq*0u@t-t0Y`d>vni*gxC}Z{KBU@)n+k=wLVN~MKYT~0@ zS0?6{Fy34vHhbN-#9sFuks~s4Q$Qq{0q`ek1GhPSh-vqpqol)6{K~rsJj@Vscv;#Q zu)5uQ4A#@lFWVS!hJNPz*q57Z1H;A;R|t065h*Mp1U8=^l58B^@ZD`caoOvj2G<)0 zg~2mF{1YIyi{5>eemBydZ%xCcmt4vp7`uX@JC0_cC zi%qGMTG2A+2%^8gzrPXf)~;k zOfTkG4O&ORsXvgOYEYa`C1n(a{EOc(X_7rYr+Ht};CTNZJkeS?;JJ<%g+1bSyq&D76_QifQ9Iz9aN-vP}k zDgxbCx%ZgyP^ezw|NVhVtfp4BU7GwuU1F+wCXz} z=%P!Bx4m2bVme$~cO2Yux*9;~Z|qe(&8Og0BFDz2u8{P+b!42|q)$Qq2g>b~JF%>_F3ywoxQR&BfF<3)}^khz>`@@wp}EFk~b*N|_9 zd?u@kK=oVZ_M9lhkMb{KNro)$IT43xKjxAX_-4lA$9vIku;fqaNO5%$qzHC(m;MBa z{!XyzSRtD7p}{2GWV#g?2>z##25zpn_a0iQklj3)TQgCvT1l)2@wATcaty+bP1$0m zopWxp%V+3UrNA13kUw~;)i3)K0p9PA} zZgO8IsM>}KTY(OXXa z-?`KXIen>JRhS|05oP}Icp{g@nd{1aXE@-Z*GRE8^<%r|R+Fh=Xp+()vFX2Wifk`?MM5SX0P%?T9DYGwIFTE$G+D zyp1mSFV|7YoN+Ae{#~$R;&4S%ndA79gkSny695@9DdHYXcbbNz*XyniqxgT}B>mUZ zP_<1kIm_+sWTz-A(zlu!`U9g_{?<4Xff6wKandgQ}NvtZ!}>| zk(vKa5_>1X9#*MaJUU|6^qH^2obGyr!c6_-FxczL(SG`3)D*;6sL#KM&``_=@mGvU zW9bU-dt14~68-UG6;GHg{gXxdMHWiAcq?M#tsEk^Rv)pL5*RvyvK!#n5!qton!L5) z?Oz9mWY<&8VK;98DiUE&o=P_vaQRNP6|!#I51I z&wZ2&Mq}Tu=fakp2q0+f0uelp;&K9bYIcvE=9_Ol90peX-!)$_im3kvmT%R0g!H!Q zBjcjYrI4u*(|J%-Y}>ge-`PgFvj1Izu!M#=X}e~02LHb;3n;kpiBhXr3k?P&f34Diw^f1vtl3S6mbuWH7(SCtP!sW01U5mnFd1YfAC~)`WW7PbFY4YX~_A~ z)wZC4SU${nyH@s0{5wbs+fs|c4BUCMjNz034?-?Kpu?2ap{XxG7Sy$={Va>i1mCr` z-EsLtRS0B}!82zb;v>&({MXI~qrvifuz=l2Y-e%D*wp>?fE)h;y%eX__&a>_C?|mQ ztMJJcn5R2=vaKkO!<1c-x3so95?uYOS}@xmfuC|8G%_8+nZ&4(ey}yM1VsOS+h@!z z_=_X{{f5tAT#Pj7m~A0zod?qA%nv@KG2_gPu6ZYWi7+>68wrALp5~rh=QQ8kRGpn~ z{^P)R6ZC{n?cO{s-LX&~k(wN=$&kb0NY8)lJ>4+RF6ekr!ekJi{3cMmWNBA$9N{G& zD}6wMPp*ixjtP0+nU?s%omj(pWD~J>32YPxH!X&9d{ZR%ArfX%(a17-!xBUOKZ)#3 zwAO>&X^3RcfRhSUSHTJI|DGs^!atN%XQ~^UjMqFu^~KcFtv%HV(EIZUPjM)drP*0Z zcd8#NOh16BVaT5R8kN|Mu^0bf8-IW+6C|QxY4fM#|grcQVGbHKFG)vvGyp-b+Q$`)Iqk=jRg!~Uz(f;08 zD{0LmxAMf*G{(G>BYE=?r6GTXK+Q)Tas>BXsaEkT++!qxUqXiSk!^_$*_o{iBkaTc zie_BT$^3?=_O7F;J4r z|4YP})fe+kcYpO5xO64ze|O<-tVS0NGp_xRQ@OYNCT&G>TT~>mkngF(rEeQgX2Qjn z&NFhxw&!Vx@jr}Bo&jam#l5x&E)U*%#+X|>(cGG(Gdpvbw89PR;4u2=_w_w6DahXo ziS=wj`IQ(q>T61NHqd1Mhov7uebGdDm%L*%fCz7^2i1EL`Xp7F?XNWOmFvZTx9C>& zhJ8D4(Q=!r@)o^hQ=_~^t8J>nYkff}o$uO6y@=L&zg0IJW$;W8iXp8H*EFJ+weuQf z^qO(bmchf`V&3F{J$Pw`7u1ayi->1*o?IB-0LXTzK0%}inf`_RvE@>?{g;uD*Nv@U z58jaXpU;EU_tzvL#8YoxscWqonb@tB@xj`^hW`<9s4<;l@Yr$N+YR3Vk6@kzMmQRg zUmpn;@Oa%fC-r1Rp*}lk#u#p>`JU{k}NAZ<{~#Kcm}P_hD1LJNH~}->gpY zrR?XJ{axoGHLG-<&+e1={vb4X-*`GIhzjy?Ao(ouM&6Qm7i>)~RJ#NdBJiui(bT%Z zSKQ>dxb2LtCk4801qxmBRa!om=U2Q)!1+*2g_>47=?xc>6GKtlBon-FEd_K&R?*Z| zfI+K?e+};5sScR$>E_HTj`39|LMUythT(InR!{JR%_?t-Z;toJXkgAmo>{+V_ z1cRgZRMUT*0NtpLzU%s(MvMQF-i%4#o>Su}5LLJXb7*qYqG9m%4%%<(InCYkDdaS; z*7c0N4y_(vH-DfrzRr#FnhhQ2pKvk+oQ5jITCVp8`L9?;!pOEZYW}S-7pxLvvF>I# zp9n+a#LzucWops%{bZ007TPW_zoiFn5uQ(rb{iVRWI9y%$ z*Z8N^o1$r5Ae0u-X0uZm8@VA+rC%uux~Nj&tjml7N({nA{tiPfF3<0dSqx1F{{La^ zOyHxcuE#%<49NrnFG$pYQG$*dHcb>TAwh#AA!V z+;h*}R`V|<$VSi^Y)ibx3-t5@>YEz4k_ahH-Uadt>kyYGaeNiyq&V}>@Q)hLk#X0p zRq+Y~q)V^W`DC@KOte8~Pmitv`IX*qg5H&yQhWt2Cj)~SeZSKjk-@G7LF4IIb2xUoE)_)-m}?z7jiBG9@2i&hMi+Ez@H+Fb6%qQNnCq8MGV z&rU~v2^b?K;jQngW-x59YeI$%IV&UMi#{u}=yY}DqO*KG9_szgmoRNAf|P}&8?8t& zy0r*1xmQEAcWtg$PjN|+Z!I52yn2K?Kmyed?tG7$UkDIxM>0f{lTB)mZ9=6=+s{TT z0~J}pLa={GDolL|3Ng;BM#xTJ+0P~n;ODE97-(5+f~U1IJy=KAsq%yh?Q#3*HM8?c zRG^r_7Z^kt&b3UJNK)kC+R|*Ol?SlU$>U5WLiVq<)<|8FrjX0(iB;IHovJ(AL=--v zIOqFs0e%eJl1)YeXE7!WlIQFFxH7$Q9?$IJq;M~g(zQ!jjaM4~`hIIJCpF&y_Y0S? z-M$;{YsslbE_!G&_#b9HJBKu|e-R-8y{1$`b2 zWKCqBJk?Shs&pQr;fNvLf0H!|SqhRtK+U4=LHnY{N@ihOsESgUW_z3ol#=*0E`(hb zQ@6=>>@w;S#9X$R3oKiLXHrrXvve7$gDo z+{UV4Pm>u!6*VXQ;%dN^O3t^N9J=^<;CjdCYza^^PRPJS9UkWrZx=(IERAxnODA4r zzjG@^OBLggFv)f9c_qEyT<)_|{o7ig=Gf9drI*SIsw&)Cu;J(Q>N3#==(aMZfY@&O z3)m^6T$D&@Z@0Ap=i$3iu7LEt z89=NqH)HJ_5voLvWPVf(=Mr+LV>P37EhAI3pN9A6DM}u#;g*W zKqluoN@1o$xWcpZD69*Vs(adKPASa(h;+C`EIBdBqmQ~tF`apbH>7$t( z4^_!zvg>hHGe~ovViAiJHC$dC?AuWl5cGA)b1@k3R29=BxJ`sM*|^`oNfiq@F!Ghj zU1EB#vhzWi64zb%d9ReWWp1vU8M(RMGjBKpuG9V#U~NWQsBt0(d0feA5nRoa0ikGT=N56lzm% z>iF^%q;~plqF!wYlE!!9=m|*;U7wck%WeuOzcYnJ45mWV5$6#})NP6M`8O$68#1GN5hfC42KUzetY?}r$-1(+D2Jyag zJc$GczmW!j!MpiJ+;^?J@q?cKRl=Ey1TqB6m6OG6%lRo;tJUd^DChqfS=uw0Sj!w( zaFEzVkQIr|q{I5-7i5I@jt=$+?;R7$j9-vxtlm|+C30YRuxI4J&`_OP%QEv4*ONKY zHqMAG#$iQ%@?YdVE|vFGvS6`_T`u2^>an!V6j|s7|EPO#54@3=Gw2)6*`wHs!{Njc z1X=3_ItOq2l?tse3gQi8t~E-Y1$;0^(_3Q6cUXz)7@oHtQGl%Di6%E z3$c57=<5o)WvTLHywrd{>_*+sR|9vR0`9gh;P&=NL7|%3WOYK8kgZPR&TMEKL?BL zss80ipAo%>FiD?7dLwo#J}LhuzG>y}a-rFwzKXinpx8&+#u|$*rJ0uXE7}ctv+%g& zKPQ!7oJw$kPVlMlGyH+=3~TEYdKQBh{~0? zKP>SY=lVNN4)$!R z_LZH?4@U+Nv_-7mB!;G!Ka$oY`=qK{5tu||dNmhHH4PmK(p~(L(uxKqODeG%DjmWv z0P#T6kgl|BsHI@d+~!Vh7z~}78YvbX4uaJNu-{RhD-%zq70%96r3rSG*QjnyOoMQ? zHCwcBtpEvbN##jguSlzC_tYswN1l6#R$ZWhlm7Z^LM`h7O{XzB9A#14|MZZEJ&pT) zsZT^;JSVy_I3V0UG&DpvNQ>xypp7IBP?;Nui~B+)Fo84NKAiUkx?%-1=P8Mm%cljQ zK$556>whKi{gqIqkJ22`bB9^O8hISDvWn+KqMCn10=u~N1!}OZ+@r|h3}BOMLQIS* zKhHu=)$6|_cum|JX&Y@Uq^a<5u@Rd?s`)P*O@;D@^5%A;9&`%2&;;bi=BK@py~Ek) zEMV>(%9HaXF4>sa&qtky(b|BTvY#aIw=lf$EUXd3lUg7tb9rPR*mX`J0#-Z~E@0v` zS4c)vQd~r!LYs$1$x?l?px^j^iz4CUvjx)jfKH9*xhp1Kmd zs5R1dp0V(E%28oNPlqxhJ7QPjNE0*bBpm6pny>lY;IAVcMRSX#!w3@(BsZO5gS26B zD?ke~2vZDeTqAK}V34%TWy-W_maBUFW2~mPR9BXH)Pu=?#i!7$$d$4}s2<`xw}1nA z<0DN^MA`zguVjoE?v4>@ARb`;Eg-h@jcsXc4%HYdo6U%@&O!PfpvnC##m1tsvKL$p z=yJ^pXdJ}CK7ZCfWUOcEaFIr&*3KTpcfpXKM}lenw;0R-OOgZ{rH zHa(2#r}Fo8zY-_=Amuxn?~nM8r^QLQ3~H$|UQBcU4fj{BzX$wZ$p5MQOWL#f-p&8b z#P@@(1N@KVzw5r)=~hG5G+0--tB90#!xiNa0R?>(D_mI7U7xIX*$uyUefKM0()Hbe zZ_QAeXf-rY7M#0Ee4!qzhVv1E+70>=<-EZ4O;)~#Twks7edzkilrJEignUDk z?{e2ysC-YkzCOzLh3oSuUp}|wNWNXH|JV&@yS{%aU&Qsjt9(znz76=ShSfAcO}~KI zGe(#37nQEu_5D_*Tbq{dYB#1q#hiXAxm25%yW!WV{9bH40?`cR8{_)UQ@)Vvt5&{0 zy1r5PtcE{Rlb9WPtWnsMGjNBZU{=m8*UqdkH3|;4!FqhqMt?To=EL50(6qeGw0h z;5T%$?K|ovnUJ&QT;tfjCvYk>j3t|TL88!Jc!xBH@=|*Igmv(eD#cn@Mk&qz$Vk}} z5wFf+WYrOZ&o_pW`B_P3J}Fh|jL9rZg)v4JK~LX<9Sa4jh`Yd}#6j2m%@L?BS|uxq z)}6DLBDJ>!`^iN>^TlJ$zg>Q-mwdm@U5}9a3RE7t&pDF3DOf15oCz$gDntrwZ5U6S z{6*CD1zq*&`Q21igv{>>Uy^k8eUq-Bp1Iu2z#!3fj3CI>C8Q81C@pPeDt;U$V$db2 zt|82l`x&UcMdctqvn5+*?7brEe3AW`_O;#{{w&MdGpK~pd1hhRMU=!8N^$xW@=uZc zqnQ6%4?RVkDt{8;lO+5Y311kLaLH9ixH3{@5pJwmm`fuGt|GWfl7B4{b>Y;DRcO9` zt*4C0GKt(mBzgMiJfbv|Nbn0P&ms+0p3YNDWU)j(s3Mo>$Xo?O5phKlw?N|D_FssO zV{(vE-LU^N!I-a^7H4AdWfzKhs&(%@lwmyEbL>pBCu=Ratq434uq}mvnXL*c&7Ir& z(AXM})G*^uP;%jhOW3 z4@goYOPtsKn4Hs@e z$~n19NICc`Cy3v!F7b{L#a2wrp4sDSQFHXT`*@&06k2y+#p#q3lb?Mjc65Y_qNxL= zNL0LORGZAgY?HyButk9~fRby%=22$2;$$Nl!U0&nKouz{-68jXk;%zY{orE7neLK? z)Z5{Vk0k9vek(G^H{oH?76#XzqZfY zvFD|?={x-F*l%Qz&^tKnSnY7-Swx9;Y?%x@dTGy&y{bJ?6_e1Ou<~3hS|`i9c5Igf zbB&Q5+oxSYJLZ$(;bJ?Mt6kUFF*Sne3kB_1oesXzj$NZ&SJ<&Dv}=YPyHdNR+Oea= zrEm7LV-s}n6gw8s!OIjV=jmXKs>5{fBP#ep9X!d7ovMR>tAa1l!S!~mQU~9!f@kR9 zIy+V@*uZ>k$F9?1Rd(z~?W(k6bG56?jx}i42s?I%c9qz%d$fy393Ioil4V9acC&{M3|_WoIK+MNA?v$m6M-X~rJC6HeeVlWg2i;I?8vhs2gA?hm)~ zDus+#Rnd*1or%44{W0bAStI7b$;cyr81H^ZyX0&b+1Aa;GRfJg$fwd=^r+|Fvvf|rySU7;FK zzT4bu#Qs7)Zp%t!(H>-ZYD0q)SLJYl7V$37CGjkdhxg}2jKgbnkV#PL$oP(lr5%;W z8fuRdGGqh!JQL#+y|oaZGvymYyLkz{odjbr2PH0s?%`LwiML5bvn!?9Z(-)gjgvP; z(eo3c>oc4BCm(6rjc4-}!)PDz{q-#E3m%Eh-S=H(hOuA}h3*+Yij7uB;&M?Bhk6n> z;~&$3%f2Td^8sVA7=#e7jZ(H;7M&l!5(b&`WJV?A5*>>VH-?2gG729oQ zVw0Gw18A(rX(GT)FI=3MK^$|^CfwF4)h*i1w`Bh{9mssYv3iKNru?+f2Q4_bGRwH* zB;Ybu`-Z>~yN$+U@zG|L+iXV~@2Q?Imad+JhvyFIINpeL2s=~{>F^}J6~ZGbh4lsB zH-iM}@|#I)FA8i01gDt|GFI$i>E$}a^e1}tX8Odv0LJRA(WW{5Snn0FUwz+*=RA}+ zXam;)D+{?#yiO()26*_W@V+W;3*L8Wuy1tRoFO{Xp6dHX`gpL$R${~(&uhG=QrN1B zJr3u3Bkcokx_5j_R0SbCz&+%V_)hYO%}$Z$1{}4KwqtJpJjq^MId-0+uJaWlfhS3` z!nbod4@Zi7E0M*Rm#Z3%mRDITjm#lD;_)RrTt*^-O(|v9cNWnpmuGj@eJw6?cRZ6` zUPLc19G7C2`HIyF;+f;z`yqCmW8R}KqAlI1wC8A(^i{5R2%c71L^nqN@!R>mP<(6N zwX1u1>BUV1S}RpSS#g5KMw`rcL!0f&USqlXW;0q0YEDhN^9Lq6jH2sFo(}lRm1Iw8 z5*i$?4&H}JOHu}p8~jmelU<+b<<^+LSxZ%dp5|WjyLfJ9V{S%Od247pAWPa77N*t+ z^N|-Z&61wlFd9rT`Vs&TMrWeaolJ?mY3Vl1J0Y7-OW*I4O0g|5-ZvUS&(KVnc@Qr1ZnQ>|yUan$Tq9Y|dv5_d} zlD`t~E(M)@K)L-8Ol5O}3#1nM!iNGD!r)!L>2hfUQr420fGaHORW(LT#4G!gz=^XI zftL8nkMM|UiB3|SjsOS9qfSIZ*U@-22p=VIt)s)lbqdS=17$RN6Hib8aI5a{d*V~w zfszE*QqpUFO+VQWNz!X5D$zGv!FNpxzQ=(d8b|LC__Usvin>!pai_FAUGdMMNJBp9|WtJimDGDa}d1OrJ|~hYMG9% zP}eHbX{9^4lI_1y7DAVyC@ho49#TQS>lBU!$Ej@Ruc{`fdA*ZZt8Uo}=A#a8V; zUBfdnsN2Z=a|!_^-A88joNB#6M&<$OSQsHp3l?f42a0a^T}xE?Wh<;Hu!m;T6UBt) zeDxGW{e&pbkz~gY?(Qe}FpKI-wK~kEYEtgZdReoVguq_M`$WspI?jJUVxZuEMq-+JGop@aQEx!vz?*&x62+hDQF_J z?wc^d#9kLX2xr{l7N3YvETt=%Y*4yOh!T5+>fAD3Oa>21b-$kbvM8XHEbzfca5vc3 zYcnJ}T%+rH8nJ(Z}C(e~LR6)~8*+)M%&gsD1F>QI4mmr7*BM2WFtrb;M8NQhaVR)SVfVy#53P~uKn zcN2Md=~}ZIIP>mvE+@#lHPSZFSh!aZ$v6r+t`w&h14R_!9DRgR*Op1J=5`SPD(d^g zRaE04qP7!7$CAR%2vrLJ8+nXJX!T8yRV7)w0I9=L&2FL+$ko&BG@j%QG~-RF{xS^0 ziA$sgz_VgMqOp`BAP~#_Q#Xq7$B31a!j5X-MVzH2%$0{U|*J5I{7K? zFWn>az@BJOSxG1EH{Uf@zZc#3p9GM@aQFiO^zWwzBZ{R$rUnqa%c5`HD4anh*xq>%?+3GdCEofY1g z)mS$wg+s0T4WKngq_wdsHP!vHF5EuMi0&8LZTAU(PfmwxMc;!&*OScMp;ao# z3Oq)QT1~XNvJA59v&hcnc}GfSgUkon`>mKXLrPpgm$D~yxS-g7AlM4d|2}d6FlQ2H z>c+A2`my1ZX@*!D2o+h8!FXo2ViGn#nAsY8jBIjWXzF}`VBvsycM4Z+)^e5JJi`1S z)T=9fv83DIg{^;qEh&nvK#;8)J`}E{J{Q{*B6uZLt1@(TbST_v(Z>1R*aU?@Y5x<4 z$xy5syfJjVj**f&I@E%P%9pI{WoLqL`_@|1v`C>k9~aQ(8}9kuyj@e=ADyhr)=eO3g^mku)DH zgV1Stdg(mwJEcCX2_EM=%H?^*rr@dNZ8x2K5I@EJDe&!MZ>}?9LY+<4f@8ETF=6YGl;r$QhyUAJFo~efeRuE>+e@TeT<6NTl-iJe4 zXt5lUJdtQCrb_W7%Sb5v!i;5j_k;nFyoeNua}NATIv0PP`^)38HY`Ie>en;E%i~Z= zZB~8VOtOkG{y@>W975G|U@1hdpYFKVnup`7+K~_od=xnJ zwHtHmPlef4)(lUiC1YkQKo$W-H#lcn8YCX@;F1$~JW;|AprA$G-Z3O}2}n_Pqr@K( zSsMN%_Q4^cvBaMos+dX6(4dy+Fh`o*Y2q;KXs1czBsNXBkcdOTNF=4hs!A>Lv68c% z+;rs2@VRJ|fcg7n-efEm-7Y@SPFCLpk(e-e*i6KK-#&)#>b1M8$!{|&H^tQ$X^l0ujJa;z zLd)33d4+qT$|}q=SZi6}u=AHP(tBL9l)dB?Fc#Ts+*D3Ck$pSPT3}4$N@I;0ZP>p& z)mRxV7W;DKW3TP2a?NGQ8ta~=!;fS4<`*5G0Dy=w1Vb!`>M3#nMJDc*SdOw&ups};}?H8)_$N|Jl zgXCMJY^sSc?wR1XPbYq3ry+RUcDnPXA1?A-{yQmCD?6Q9i(hKHh@}D@(<)8%sE4+s zhW;+Hd<1q?CWIR!S`>8cUg>|(5RH|LRmTQ72YeWCR;*Z zl4#B8RQKGm{20~kb&2zzdQMFK`gu++Mu7p*c z%+r*x6gP*OCc297brMzgupmGckXpW*^m$5it;Lm&j2`6ZLdHvUbT=yoV+531FdC+b%+IYO;~8e6viK$8&QM-I>2kS|+ldapJuDWYQv0GId93Qv&BTOb&K5Ai+|=OL&Q0>=dWV}0FY&+Iw?OWY73f{EvF7d|IQi>7S0GO_>#`|sw{Mc(85`b_NK zqLYYx{9?O0k0(;cX@5{jAeHzwdR<~Wk)6Qi39k=e)t9-Hw%m8?0CflP`c%1lovIOO z*Gu8|Q+Q%Lfd{2KoCdmelwbx@D#an~j1K^LVhBx3fgforntMF$j8eQ?(@d%96lyY_ zRf64kR<*P$wd^g@-B`2H6%WXxv>x%;UW(RB;;F9Jc&f+qR0f)g?tB?fd0lzks7HuS z+~}qAjl6iTXN_xcNjrO{I$Wso&_w*qNVli^1^gQyP@E%GYF(H!Vcq-qHJ$Zb=GK!Y zQvb=`(?i#Fi_|6dG$Z!#*C1U>91s|$DnXzq59NA_5xZANZ!bkQISWpKa@)9t>mbVA z@^5R(qb9d_x5D3itaX!JJ(zm9RbBO|9-X-qpU9LbB(YXgQVT2-_c9iB(?4XminM+x%&2$3V6l=NFtUwC zcFE{%G+92;j*Ys>9!o@@)UxkzYvIjOOtsjZAvcS;hcUlO6M-YJ`o#Mn`9`z(H{3pb_OWW~ zM<7G3b;nBiCI>3?bj@eN?QCC=1$$S272(vJ3s5Y^yA%}*6Y7M=ISee7ZlU}k<~Q~) zvW?Yav&~nzaAlyiSVK0y6SB_x0?ggXfo9j@nzJOsEh8rxQv1_)pJ{%`D%%mtvi^f| z4qBKykKAfuZi8ge)#`=0XIYqA&S53tcJD6M@Gk#E*f4aP`C;PoUeY{~Ck$%wEbzXx zxpGj!mgwft&dTCYUh<1BeEe_lz22)P*smEYv(iC%u@aQtNS(=NnB^Ck-&)*_T_s1d z0;wxAJaH64H#z{RuX z7ht2%9(Ia%x3yRpY?T6*n;*hk`IJ&5wLVX%C$XO&X7It0q7_YJ-V~go=L^=o z$CKAseOUP>BX+$^IBLC>Ck97X9vd80IVgBs;u6A)m9?B)I5rp{rl?zvF)Bv}sr{AA z#ZJOoYb}%_&3(+qN;}*KF+1ny#>!X9o1YVy(6-`zYM&V-U?q%|o6FaRe2uRpKSZWX z0^{Z`WA!)5BAfR{&Am|2w(diR^WM^Fs51dTq zViWFoinL@>>KrqX3{c)2(SPXv_Jv+!WuNk9bMq>|k>V?jnoUN{8|J1ielgdU?uczM zqFWL26g4M)Ox!CSyB~U4cwa^Elqfe&^;DkYLsy%-?QwF~-yCD*)!x!3?!8bPzo+`q zkv{XA;4=yI3C~Lv{4B2s&tnsDmHE20xCV4tTs3JXR8(jvdR=aOtamJ5HPJ+M%Brjg zat%kVv?Fl|`nRz<$tv1W96hLq5h_!{W7&x3mGIb72cOKyALc`Ca5}rpk%H1!uzmThxhdi zl_mO0I-m{jgD=DTjt!n4-Zx0-5h_fv-dI>~jI~%ZYfkxwP%wF%Znq9%;{R%Sb7;C| z-+nNpQ8_4dZoF1_(^q+7sM_UA&6NcydBJnOY5aIh?bCy(TKG{)^EJMw_;D`$Xsq6r zyjmV7rgtJdWp6K7Rc~NB7l2W)nccWmZDcZ5uZy(t3JLM`gP}ENeS#N7+A2e1B;<5L zl4nQSZq?q~#9IMd&V|jV_g7pd_3>;_^lkcyFxzW4jGrL zao34EIU~A-{dZxUp~E3jjEvp;3olIVb-pX0niVRUvGR!WFO29^scB1Sd*XZ?jcXJ2 z`cw0R{PsLAC^l9)6|j}w&Wpv$;=Hu7_F#T{Hof>V%O{*DnlmL&1%Ug5J*!e^xr+lcj3p;BeANTQBv zT$`Nej+aopeA6n>fV^spd&e#xgjD>(Sh=(O-B7>Ab;*wo8gI=-fv_ZA+1FU@fZ5p9 z(o5bbY2qMcY>o7y4D*0}oyd^tuj12W93C;cz!EJ&dNKXNh;2lAC9@b;@DX2ZRY#Y= zUb(76@1u1^$-}f8Cgeq@KkkDI#WOAi2uAOSG9i)p1tY3*en1Pq435zi0_}{pO4}a|4b~Q1^avg|WIn?Ko1^=IUl$ z8|?}dzPmQtu}AHmcJirq{27Hywc}ysxKx1EXI_zkjWzI_MoyefcmZFNlM!uFV-Vv{ z;zVMVWaB&o)^%%YpltBI!5=!;fh%uIMKF+mQ-5Y>=g>Om0Ml6O8u$hbCS=nk84w(2 zZnbj<0-ta2)+)q<-)RD}^S@YiB3y&dC7yi+>>vT`Xc<}%&kKi19)8V1A&K2&52mmt(bjojU|Mt8f)Yo zGF%AhV@1+kOHZpjKJ>D&a)MW*Xis$`bXuXFQfIVbWUWDIKEW$V2Z}1hIZ_0``6`t2%PE`knFQF=yq#ImW8{h2 zYU$W(%Qtk&gUoTyxbk2VR%ah_<0D`Uu(T%HsIjt_2!VtVeTZOuqmODn2#kmf&nZGA)k%a2nU@mcjH5oZiCy4%IzV2Mn2J+R7e;4EGB$Dkr9ojf= zvp%IrGgVIwSIc@;_2WwrxDRqDXxl>cn)pOW&A z)_$Ie)ai$4|BRG>fc9UJ^7qvKD^vcxdjy)mH7WlW+CMAhe_#89DgP_@V>>MFTQ#aV zlcBWx*sHAWrY2p?_e9Xkd{1U&dcJoAxiq~T!aP%2!?S0I3@5ZT98pdj3sa7ma!?zr=MrK7{G&oGAsQ2nI!Rsj%`^W4v!VD=41A;<8|`&ThG+7I+6&}AzK%S zQ~p{PNFw=bSs=;Wmp4**S{96xK;Cv-upyupjF4^8qvcky1>X~7l~p{Se>}>%T=KFZ zo{cJYx&7;UiXY#luc9jU)yd7Wc=mYK4R$0e*~z&6b+~75TG{`gvQ)X{=*==m)G&DC z*-Akt?;n#r&P6OvwHAb_Set9jwxJ6I31+(y31*Mn@XD+c+T)470CzQ|Q zVtL;8u*|*ttMB$PFWJTXXKW2hLD}4`x@?;k zy?BhUBs5Yw5T;|#ID~jv(y!?=?#$6=cZB-Kd&wU7#D_$8*LNZ>`)cPOVBe8v?(+Eu zYWW&Ai(H-aMP6JmR`)elZY_Vyh}}*Ema+k9>w#m(kN$B-=;!giXh*x_%!y^+wOl7$ zZG{&JQU2ZD>xF8OFLbhK*h6H~+wmg$dxPb!%xVv|5p5Hw-1#f;(!A;vW#ZXDub^IZ z9x^F;I{R`O={{Oa$;-&O6`G#P{uB z)}zTM?cgz+YLbtF5=~Ehq?Sxa$NPJDSkn-B}FH{ zl(A@;)~ufizg#AjO`}*Op5h4ZOw`;`7cM_3bcC_8`eZN9T`G1_W+d~y&~PqH9Xz<* zd`6@(vh8Ti-F2`GoHxsam8EZa{fS+EHIU}JeNni(z*`co)$2;UAnv66Ml83@#Br$@ok{K9Oz0^L#j{~<{T#(;P(>_Lvdfs zE@McO@nq}O+j@G}?J_R9BYK?Iv&)#WA-T5lBqL_4PB7ts)gV~| zFyS9_*DfP(!6KElFFh60)Gh-@iMcL0Ce;j1u6!_WsJihh6oBzWewuHQu0BxYJj|?% zGH{yjOQ~RpyQ!163f6C89+{L1G;DcDhd+obV%y*l=%EVep zt1#$1xyg&oifp{^OT$z{X_(Gd66wgf$qOUwtx%4r=n zX&n-i6)^zBmL?pOOiL-5W(vZ>`+jP~mI1asp~HOlc~W%f3Bhe0!;R{-Mh)})3p~~x z8j*L(X&vrq;C6g-_thJF+Vwp*5$~CUs;k!?ozsRtCcbU5eH=o5i&%A)S0hRy@7cID7I%7RA-P?VhX0eag9OmK}Sr*d?8fgnr-#o?N| z;yl6pwbD%9O_oC4S|Q-O&PH_8)`pZa0#hEYc;n*c-9}%fqnPi`H0G@v%Dc_Mz9%8I6V8YZ_cR1C#kE{OG2u@#gnkTEZ=OzMw6L1rgkODm2s>QLz`ruUKemBPm?LgT5^>a+xI=qR!qU_F=L&u zW>_%=Yl(efCRQ#K(3)Ll3AXAkIHQ>U{wdWUu3cFmNaID6;a_HJJ;UCx($P=I+k?U z7r43BFqF?|qzpUIYbFplTf<~lnN03^(-qitUh8ggnmx^6OibHTAWum`w9IgOg%L}T zQ=_W_SCyuk>7`7(+z%b4wl5NI02ijGr1OXjKP`!S@TawS2T7&HpYrW&@y#&m|CbgQ z0pp=t{27}3|E|R+nqP!wR9Vjmz0EA$bwnqiac@0O+t@E8T>rkQBqTb^EY^3k!eu80 zqt1G6M47t|h40y_KC6eY6UolKbT1kY8Y<={5A%l7wfMLak^`J8leJwwUh zeVyA}G4;GhxZ7bogWFnsS!!4KIj@qMSg*wXRob7payQEtt~@`V3rF(RBz?NEdTO9Z zjURWM#3uZ%@uSBc%GJ*95B^Z@scuP`G}H@21Xpo115t@8y>Yap`RiY0bQ1bDKCFf&#M>Ar6fCCp5N zQp{XHpUHKW37@pgKOi%o8{{zPP*OOTVRW{0_v7@u^;r&PJGqE6j1S{Xo^^L2uv$H> z#|q?I!-g#B@I~S&O;&5BpsT;2Lb4C)>L-E&b;HaNouJBw4b|C`bBQ~R66xXQ1P`2= zZ{{|n+Q*oi7irCme4a^>qpKkOFpsmTe6N%x|y~ME1>?eVu*v zhmrj~jD?Q^`D$6$c;((^-GIoxYiAF#uYQOsXOFfXfAkupk@xkEPu;rYf=*Ae#lHHk z$o`(Q`;(yRpail%HTehY=@;4iy{Gy?tf}WTt`D!@RJtwvea`IRvd>r^qd=hZclElS z(gI`Uk2~zCd7CgHHLeY>-4x#2^M-$(YwoRNWcV>mbEY6BF#(q={hS+bL2=%e7)?+L zGUiX7#Nf05B_<2f0&*oqc3J@2B|M2eOlwnRR>rnH3R zOtW_#dsI5_UutQ1M|3wPXL%kDi8lNxkCDmU9Y6t26)mvtSS+F5h}^=Y?9=2g(Bc&C zQae2O$}S7%lq9-bvy$jYt)lYH!K(Rt#k3SUInrJcJavA%7)&!n@2H?91v9-x^$=jciPxpNV4sAF7nKQ#3;!9wZ$!%^K()b$ z%3RfI*hhKN4tn*~+G&W2>xnmf#tcK+Vnh+R+?e?(e((IfV(_^AWV_+Rf6*Da3ZCj^ zo!3~s7T*uUaW4)xP6j+hpL6! zF;D{w&D?)?Lxxi=wN%YSf)@{$y(EE|KfmUue2a>%pIOAWaQIKJyF$QdNCQK7oH%uR zf|E}PG^G#_<#7&m8jo&E%RSDEH_>gItUDC$bGSILI@B++zD~%hkfO=@k+c3o#2oe= zEkE^pHq)%7f2ZY)VlQo#Z?+o5?2pA=njF_D(jQPE2age#0hK$5#VRqD3IbDu*a<+z ztybAGh8YONB8IST7o2tSPdYr8TKCp#c%H12uRE$Po}>Zl8dV=sAqNArnI^gbEqomF zWI8}gLkgf8vE~Hq+y_PJw(B4CLASwM^#c@s=VA)zAjv{iybQg--TCs4wpYi=$oaRm zo1XHDOzkIbC2DfQ&1=H#S;k!$_nTz#LCa$b@k>8S`OQsM9!pJa7Ec)_*srI}-Cg}j z?(2RdUOTeV9~!Wyc2toOy^}=psvOZ$w=e?%pS#c3(JpONqs;8%ETUPR`;d z8d@GBL5q@q=6e<^>gBcE7=N{N_1ck*)qx|8)te%Fb7o)mg7CcQkgLFYajEES-mkeb zd{@Wk>YvM<^ubp;2R zYnwko1L@PeJuinFIwqHNG=JjHd1Z4Od*`xpHpz8q?ts@Rk0_$Znm!dtHkakswb~RU z>$TG^;QXX*h@-*JO?)+{xm%n#gu07UkT{tCD8TW*~Dt|R}F6?RN!oV<# zJG)*19^`iW;OTb$QD*HFYvR=M&9@zAPd%z5$r3{+J;#!@)z>IlDd-!LnHNqKZm(=q zK*>G$xmqz*{Ca+ByuS#(%`;X`8AWf;&v~nH%BVeSvx3Kj=ct==%yE8*Bm~Y)L6jkC z(|W&}-gMQUE)TiFF_&z{nlhwT5tc4zh@$380$p&Ri{@S_G#7NCd01x7J61!H)LD}3 zldfOMGlIcWDy}OIeQVb$&0flV{yoJdpG4;QJfXkOjCIU8+Nxy@dCp-RCV$P`sY#~W zjqhLl@6_@z9o}gWugF9}j!>MONPM9iphgPNvMxXivvc0EV)tbOXtCP=VO`5|aj>Xj zT5;%Kc8vy*68mcaw?}RRz-{JNGCy$1(48OB;h7=>W(sv*Zv`f~uJ1qLtuiy`Z_v?i zh5Z6jNisv>>x7DV-SHKtFs87dfXklYc_TTNd=E|4IbX{Xk`)VDZk4&%h@mSA@I**NFkDVHH+vb9KE zP19H(xB%x<0swDD<6I#L>H`-dGN<6|-0q8CcBIJzj&s$p!_H0I0XNMI^^FF?^5qX; zD{1)^IGqlb_;kyeREg?VB)SM9lKg&^A|Z=_3;!U1`prJraW1o-y$#y<(IAC4a6e6z{;*qmu;@@FFP4(C%`Ee@WFK<;OyIfq8sS422O_2RTl6+}rti3T zR&wL4$jdD>kd?tJYo6nBAk7d3xT2(kjJrPCyPSd&-yCvwm~n?q5o zD($pa?dK@2`OVllrS|`WW#LVfJ86cusb2XgM(f^xd#e7TUjNcHtg%r{^-Wd-4@X5kP1Rx$oC7_FS*os+Io ztfA5nMi968kS68+3vTD;Hy~@|9X7{nV*6CGQZb;k&TP%TT~tU2UZ($#+=T(@yNWuIBz-#*J1+Ii@LKLPyG9c3DUs=5-GSuZg>rKj2im2CZD zCbV*Rd#NoAbr_Dr&#K z88Lq%jS|`hkB*NQG%fBN)9XE$Bz5=L)oPriFWwU zZAolf=%<8yP6$ei6r|)<83idjO>7&r3GcA?IMR_3I*wwCK=6wMr4sidv0F{zS;8Y7 zUL&?#C*aqU_#Hn8vtbqYJx7<(s>Fzj`@X>wB(Pb&fr|THmTzIjeJ{y3zv4dWU%}jp z`!@2`&oe;MZgdpmIdbX{1U#)+6Y%nf5YC|L5~n1lIUG!(zM6HtS#z6&M2m_DR^Xg;PY01;5=5A~(( zOLUej0M2Jiq`vI~1j|s*JSK}q6qtPpxIdLphV(q5E`*SI)HX3*H!|G(UAWyldz`Vl zPG-fy5!St%fVmVTrbqeSk1V@ zU^PcxJe#YLo_tkoD4p{+(f{X*SwfEo)3{G(uOQcq2GEyN_?g8~)G%K8OP%$aAs&)r zhXkL+t;!`~_Fp%*gB~;oTO_qM%;gf{jHGX?a2^T-dSQPRel+2n&)6viPR~P1WSaBx z?5-oTI2(zhC}--g_#!Lwv-!5hYjZLD$a!yx2e(m4=1yU~Bqc#(bGUh5xIN>BV_IwT zi1v`9pH(Ys$N->w(;oO0VC!gz09`LN?RuM2oD5o?*%gttF`=psc_M8+Z(`Li!9Xqt6g1MN=Oybb`#Isr zXw0NNUWa$G?Ck_3|H1)=!;?puZ(4nvgr7FGiv@@!7Pyz!nf+=N_6PwW`4d4zifm}B zifpmp^&ptuCX`i#=OzRSZpBL(wW3STU|&xb{}cUc1Jo3~$;O14=qiCp!i0mdS%NvD?4{q(T#-7?4S*e=9GKgtFwYXQE1qH8#(lgXf5+H&z!+hjoopyQD+%zK>ZPMGN8|;?S=h|A93smn zfa3g=EOF+CjT_*cj2q72i>_cS6n=x+lX+S1MVyjhLh)?F2dbY|M%;0|C`apo{=7yX1OV1ue6|+3SY(7EH?P;(LqAX|Q zbXDLiN(l-<9wAUDA$X>sdJRzYalBovDwLdy-JELULJC5q0LkRSnWdxWQ1BFcGN%Di z7~qFV;4+Vbm7qq%bbBp%E(5dhNHsj-iagyLVoNAe+6@^mu<9z4@|1Tya5g?gL}`;U z2lbt34bHHdek@x-rq91E)~IobqN~ zdtbT(F18M1R6VMEZSct0#!&X7q^VL`**mzLyQX!*ld_PCuyjU$N#}~qC%dagbV@Xy zloN$-7PlvS_nrcg=0xTQ7#R7ta%!oWS+$&MU2{u)`FBQ4Mp=vLaydp!W6?kGi7`g` zWLmCXO-Dx%PM_K%SYh2#UH&E`;sXlyqssRMi_2dP1`w5gJ?aMwpl{74x0Aq|Qh~E^ zDkbf4=iEGz%_Lnt%QEOINYN^Grz6F+&Kh4=F|IB&(i&H7om&l-=sBHO8VZ(9?7|Wc zB5U&MI+EE`cCu79mC7cDek%lUN@QNZXp$U6YzeW6i5wYoQzp*D?Mz#*kX-NT71QfT z^eJ=fCG(MMub|4k!~e(pC;8vQzn3y|`IkAzvHYJ#Iy9(m<9X!EN{8A!(-6$+HcY-{ zCPUi5yQobwXfCf#F!lnT9IO<=rbMxA&)P$>rEjxFlMJOA8Iau%L^pxn zZRWb~wi)$XLCa`Bb^3r7BtntYE+bK@_Fs-u5^or)hyWV^*c26 z_4y{tR)~1B6A`?B``uQfzL{+$z09r6&OqDRx;170cGGuY!fI=tttk6i|)g&yb88gkZ%h8bWlXLD1K%~p{0QgHQhj;mLg$qdbq;NZp1nFJ)yS0w94!(4~~m>VGx23F0X+DaQ$ zTcwCYwe=-(ipBo-pn=BHzYjf$yZZz9?+}x?G9hB|0OX}M(!9mLbGCx-aJ7sl1-^VPM94zU?{JpCO5ma2A-o+Tm>~D5Da{( zxEN@R*kD|g(TyEPScKL3EkjAGyN`yye<-a!noOvRtU8}{oA6L^MMN=qw1`qGBEtCk zX3~m?bOs~JEj5HoM=_#(m0LQC5ye7Dcn>P#MHc1Wufl7TJ4c0ADYsX-E0p_i<;E^d z-u}uh_ScHY4wYA@kxptvu_h2MeaeW+C|(hfPHRL*DtEgIAEDg6Rrr~>LH^NT&DnFl zsDx&XFFE{wM9M3q6@evKPsu@dQG*wgC^T(ZBd6V*;7h(&syaY-PkD$guKoJV-?WU;&Ha03BBKBoOiQ3Ft*^^Tx{gOp74zsYG)`-4GHQnuZ0??IPrJtiPW?|9CkyN)<==PDn%nBD# zkv2tWIQlv(xUrCS7X!R7J@(;HKsEOSd5I)VJvs+{GufBIqS8jejZ=rNMY$q#z|$~Y zMIBWb&r%MPXy`suw9|)h#K$S&W-Po5kHs5nUWbp_pFBZPWHu)*6|c7LbJ3|l zQ`4SZuVqPNot2(@^=z>>?A1&ofnXomeY#ZH6yZzg z^l>jr8Rutqbs}^7mT|d$hz#siprkUzT`$Cdv=@=tt#aZ9-rZq3sYS1uOCn#odzHvj zM4nu`v5Z8x)VxA<3a#_ljk%D-T5`qbG+-%WAhN!2T~~g)v87q(b4&8sja$iXstdtH z7<=r-w-a3OWZ-lJ6e&RWS3Td671n(EYXKG{ZP)FbanPN*=~{==Dmv+8XhDM~b!_4i zjd5a2lnvZ+*GA_o=LPu8$`~;jQ z<88sj7fegi;2{T%EfN{x)|M%|zZU(aicv%+-_CoOAR@14uzfm|)uD=G`o#J)g&G3f z#vD2Z78i4@-^x}C*53vPb@n$BG-4SAA+bqF+EklAmyHvh>UGZkuf1=9m5kS=Q zQ=h#sfKCNGa6S`NC0qUSwHN0(a6wO;yjP^8M&Y3+s2(Y9;rH+xO)Eu&=bO7rci7L0 zsoO%Ji#(GCuX;<-ub?I+u)atf4Xq_fLYBQj4wT&V&rV8qpnTJbH;qK_j_d7ZNlm1D z<3C9Y;}_bEQUk66v*qCXz^sO@a-i;{SjW6VtD)*xMbpDlG(7@cRm)4_2RY+w6c8om zIMJD*F2AhkqcNW&YIA0a;KI#|{_+~!2cZj{om?A1{vJAigNuk0OLvT?<^o;5YX25Z z&l%9O#>$MW6QTVX&7Wkf9^cy>&ojlJtWmUZo?!F3Io@B&IGRrGE_xp<59q~89_U^y z^n;$7j*S8OhNj~vR~-CMp8Ti$Uw%sd9N~jKn4Cl!{O|Iwko*FRv-1Cxf3D>3A^C6m zKjp8N{34f~QU9m>1?1;$H+dsn8n5&Ry`FOooCphgJeRQK%$4k~e+)~=?Dt9{;Fc;8 z4}7bI{5dbujUNw$iPG0#E?h*;NZT-D;a`-4V}V8XZ$$w%}3(y%T%!=@m_BL zlNFiS!y;|-n1GA8qCUCGCRN{G7*Y z^>@`Q)d^k$zf$n}lc|4*0dmw1u1IlF&dJ1Y1h)`W9vq74iFxxHe!DVoW#?_j1iSORAcT-!E&qD zS@)WTR^x^tx}+K4VE z%vv7X4guC=A$&d-zy82{&YkmV@e4mu(ei$_EL;*TABnz!Xl1-*j}v>#BGX8y=M3rg zLcx96c98(oK8&o+7q6;@eTILq_~Sr>8>h#)gE;3ssn?QvG449ADxUy}FCnkQwQAEu zYmH>#0;L*I&{`wogvX8szT~62U^I1ewXfPi6%P1QnHshVX_1&lj! zopCc3pM8F1Z5H%81L;hZFf7(|^N|RHVLV`R#zFdad7GIun}eL|KKc_9%f%76;765^KR^ ziVJD?-#2MlYDDFc_4ve*YzxzSOpJw72wBD$Q<;{9)`Aj*tjD=?EaIa`$0=s4@ufq) z7Kta2TM;#c0-ry56*ceFfH=RS1tP_RBdywDpeH?VLn?1=CE0k22__Si&=Wk)dv9{_ zQxQ-cExukrk-`>X1bLkCWG|KO@;E-1wKs{=7tnj)M>tn(pmtcv3VD*_)A#|1d!&kK zq8O1M{vlN1+LbGzhtmpglTbD^IQvvH0I^hfQ1QLt!(sfQV$;{UI@VUqiBX$RaJdgtks(S5!feo;MGYey2+ppNjZ%G#H52Q3aCZf@oB55v zAue!b#1`RTXMZniVjat1$CNkUKET~F2@FLhfq`sFZw)-kzL zSE_c0x3wmZB$%S>RCN#F2A~{etJ@^J^Vq56dyrsv{w7cJDp&?JZ_g-io_#PlL({F5d z$qm~VlaWCvH(WrxkJ7+~s-u250e>5zuovv%*hCr6s&b9Rn^2adl}np^JsN9rQ=~Ft z&4K~VB!a?c@Cr!A9m}NMiY;S;nS%gR!V01a(^O1ELD>ih^3u|xCLBPdde@NkN;*d$ zC(L<$9ov}ciO=;X4|^=?%)jmagIl##SH)#JW`G9g;6^tvZWDZP#-;f2eMh>Vosd81N8 zfnjcwvTD`Bhy7w;0MRCEI+NM<#SkXKRE7_yng!#8^eT(}!**;QnvC>Tq6;PZc%r3q zC51>^X*4#4$JLZ9@d)ve7WFDxD)o02on7&9omOUfI(>4sz{&ei+sRhu4V`bN=^=U~ zyYKr0N;11Sy594Ch;q{<@wp6&)Jc=%UXU-GfeZ$it`8?HSD?OL(zm+B5Qx{~T(wq@ zuF@q56V2PX&<&H$2HvZbpmL|5@h8x4cmvoI9H*4^(1o#%;8m`29{P#-VSHL{c-_A6 zJ_fn55R)<~#p7fkwMBZLjn{b@Phu#sdTOVbqQ)0#%4~Kr=n?=uT+OyZgDAXrO7mA2 zPEsBtw8!}!R%FcKJ)Dc0MHP7cV`wF(KV&Aw<}0ME?5C5NwOX_m=D<+aL4`TIbdM^b zRaBWXMo;d7GqIK^Dpj+E2alto{`5gAr9j?KmHxO@4QEN~KkFaoF}BbZQi{hSrK1e> zn=EAr%e)+??^1?=LFp7@q|WZi z)tII_o$UTPk-RPosye5Fu|%E(GC5T9BW(*1tGqPMl6AsxGaze7;ZOm|$%i7brsu?G zM7an8S;XO+gearJG>0Ec2&l_;+)@^=c|>#AGHV1-vc8!-?Wa=g-Yl zM^mL%=du%Z%0Canb3DXLyg+az`ql+xBNg!;XIL2#6D6QVatVb~YoqR*gOv4>GDA|% zLx{O@L*a9WXyL7iZ}t$J8*m;Jm7?3s`R^?{#E8l|BwNBcz;P-rYhva9BkoPWqpYs~ z@tH6{fanB842Uvdu%WE6sEH&HNZ2$iRxEH0o`QL3PIdB+h2sVpw!|M{GI-^m-mrG1{?^N%v`UC%w|+;h)8cUQ&) zczzmX8%zHv>3Wv5c0ERT=wUPW$GAvIaz6}w2fw~+9%79e>Wb8_#jFdOZ_CMnH!lFx zLuTZO_dqulDzr+>pnirAAa|If)BkA3sDorg=q3V_MGZarn2-t zV42P~%ATY15nCdY*_{1S=ygQX&a*E=EPCZF(1TfSJ@{9IqX^lkRl-_p!p64yB}8=; zlUUFVM(Td);5r))4??p(Rpm)(a#V6AHOMq=n?{$dP^g7F@1;ESRgm4s*L-&F$E_x*u zfD64Tn%)uFFD;vVLN|B-W{d88(2)CMH#K$H2%w47{#$8*oRDKZb37^isyV@@c2lZu zlK?{Pp{LuJ6ARFkaLxR|ua7tX5R0*bszxp-%VR$VtwI(Dhb#7?t9P^51B!*kxYF%z z9K8$m7okI;KQ+gURql=ciCg362qBA*1klIZi^!eEn*Gahyn3ug-6Z-#Lj7gG z2eKShjb?(@0OGk@3QD-87WXmcIhv9ac#%UB#0nuE`)DtsjdiB}ym%$pA`=szYi`cZ zepkzc4J|B)?WLo=$HO_1`S`~<^hf+?Jw2WGf^sP6gw6TqNx1qR+%+TPw@YhQC(Uqd zz?pnljf9wd_#HFgj|U9q^JfME>r@!yt6Q95?d0yWrqM!$IU>h^6$T|Z4hAF}PjIkt z%zpSSc(z!+N0@`6_7~_L2p3And8l3(n*U`SIt6ZKGlrp$>4CY*fEi&J8fSWQBm@_D z*xy_<7SRPx)(590(C4Iyzi+inyYPDep!waWzdQAJqy9dQZ)0^jElkWVRjZ3eNni#; z@CT>hrPu+=>Ffx!Z7I^F-lv?auSES|h$x+E*{i* zY#*q`iwWUlo%}U-A+3|;Mr4s|+N+l#Urr}nO^YvHttgDmg9B=w>(X3pnL=WA08vnV z4ft9Js|yQh#+Ldq0baEBw$A@5z7Rw9dXc6Xgk+Dqlbv7a4Kz}W`Rg7>3Y4Eql>ZEX zYGegMV~@ew3@>Sq!C1`=H0n^-Rvw?|p&1DEmxg!d}mI12q318mg!( z3R_ac^77a#VVh#p0w2v?4L>P(D~(lpNxI4TygLwRtx+!psToe5JYZTyh~h_ZZ_fE{DeLrK~DgSm%C z;p9$VRd(-FFuNyFO(Z{ElhxK=^D%IUEV-lrM;-lef`gbN^;gsFBntLIZLC4DI4I%6 zdqHPlDa-f_{v&T;am)GuE=T}s(-V6QKN?${S{lN&lw({=`6X1HCK@*gIZTsvD7n#6 z5LfGDE^*k7(NpYYfIJ036VRSx*)T8d>RxCQk(*Egw0i9i!^P$IAuPKp5M2`B=z z`;-Vg3K!@ajPmV$P%92Q{M8k(_%>VRNg{*jPN<-!Uromc@$1Gp<-+B!A zeVD&eZ4GmCC!J)#1gugI9|BOzNrqqb1IF$B8}^_JPZ8GP2_oofhjsRd7>0xW)ARis z4%x56v@y1r1y55hf74JBSz71;e*RTdLh)&+AsU_bFuMnf*kSE9S6{t9PjT&ROVq^>vzl>BH?3N5e_Ar739R2oA@D^m>k?PG1(`w zB^hHs>P8Z8-v_XAMJU^ey&673As2Q)t0^wD79e}5eVkSiuYD-^5t6X9t4IM(-Fy-} zJNt{^nXGwR-a!@)^+1`zAq^6k0TtXo+f9@yx@!4~?m--+3iHtzjwISvPQp&$X>73* zc0Z1e|5f(J7$dQ@NcUU$1VV8gMJOkJvlI3xQX(Dq3m%XQ(#5VAihWOU= zp@4fhbh#O+*$!S&!43y3u2$JIol>i}9Dxk{ggqMKICQcv240!38lT5Isi>B=L;fAUXdz z@?69mO7Jx=#%m69e8wR^Ph6v4AH;qgO>)p=e1{lE%_SL=>I*V@0W-|M^+Dej$w~@A zDAEftDYSSf90lf-j6xGy3f51+ ztp&(x1v7fpV}KL>HgjcPSy(X2i7c0-!5M2H>r~r4ihZX}mdva9SiHh=aTuvFg4P}CGm;gvN zS#vDWC9Xwl1*CL@Pcb`S)^;*B_K5l!XC&hZv-!r@yg>v zu?62koq<8d4!lXqzr=ceWb=$M_4#71?MFrmB{fHVb&eLwLWtzsSjI_MuQ&f3+{iBs z-!j&-ILE)?@=4GnYPMK)L3Zh<$D5yrM6vbcn{(2!*)&JX={|(o9WFp)*^lR?V0%6P zcQJE210cP}pF|tpk9=*+Ieh!j&fPCMIZ+koqUIgG?4tWS_%iA=RwyQ!fIIQB3aTklK%|!Fk=MQV&K@(~s zCN#EZ5S{2=DCJe9Y+|(>%9$O!4gX+SP$~gz7W4(%{(~GhpPtGzyyL6XyUYBoG=*Kp zxAoUwj4kQme|y7+@b=%=M%?>K_OgPdeq$M)q7i_Qg6Z}h_$CUcwj4gc7K#@}=> zZqM!8fCV3pN3%hL@i*pbHuY#y-HE^2F~)&4iX8(E&Y@ z{?dKozdPG{Jh;{+@u&7%I`aHRFLwHj%_>nA3G zfwjGVuWIxU@R_y$VtT3JpJB{L)|v=s>Il9~xb%m4?s!1usSpT{XkSqR0x*~q@g!r~ z9Xq#Mwy1XjLuNHgvyVJcw!7Q(E*J5=s~&s6vrdn3b>f(4}J?@UwkQ%(E-F-=Vh z=4&y=u`=-OCvOZ6(hzGA&s@v#ZKBb};o4-gWQLP8C=+$qyn1y4w2tm%z_@ zzWO)tb5iILfsGjAm#v{?;v2pN_qDZ!&c>NN+4pXrgHYfr+lKvgkCNre{B+*DiObGH z&rqpHhI>r_4h}Pc2vPfB0ts>|^9}e&w5rNE*ipiQHzJg2pTU=VY>-A-x#nQ5Zd?cv zG;H8M*s7cLE4VR~2^&zYy3Wd#Zq=>(gMSAiAo#{4k+ zarqloOI`-cFcqETuYLh8xi!;Y%~K?1nt#JB84*m4rJ9{^6Tt3ZNB@S!8OBx|_S?L(+{nS`?WlMJ%l%Z3O0W;!0z$Z-5Wt&D zG=xjnCp7}S7$-wOaIsTfbDQlxA z;oiO^;m=JDe-4@x`EHhvC3K!4UE;fV7<6GeUR>ym2F@A)E_VV*k%y8ao zpQ+|n1oC1+Mi=6*IS*z7vO?PejQi4+1yN@|fZPwp4eXd3HUBp5?_k(4YT@TTgJ6=^ z{fK@fg82s$b}nH@a*<3m-ADea2yTmTrvCOa;Lk}l9EM0mAF`R}X9fB+D>_aC*^NX% zOHNCdX#g)UEczVFhh2Pu6)n_>{~{54pL9wbsx$l=;Z}5Yy~3*oz6g)rwv^|T&{1cY z$t2iw?+Ko6MPXYDJ>#8x&Uu2?{K!VJkzq-}%dF?#H57&CAcqyX+}C2^m4f`7|(f;*7F zp{~C!s2X8bbdsUaTEG<1`~L<&9$d8}my=hsjy*2=rkP7{A{IB3f-4!G;MrF6VqL%` zl6|~n$7cIH9UMR~Tj(~5R?_2j*B=2OdpMkQ?LB`fQk9^BVW>*7qGrAR#Yz5dx5G=4BoyQ{3;teS<33H%C z3T7=V3c5OLG)ob}bVZCoc5S8&GCM(8ChIbAjRT^r$6p7nZv5CEWe7-I+Geyd2MI

    C!DGWt=X99il~3XZp;f-f~PaC?0Wnbc9^+yo!2 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

    i>)ypJ76Lv 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 SeNg?3{07R8kz(A2W&b}vg@Z)9Zb` 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Ƚm4&1 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 diff --git a/plugins/amxxpc_osx b/plugins/amxxpc_osx new file mode 100644 index 0000000000000000000000000000000000000000..d0cd8f805779a3a8b07c4480cce87b226b331637 GIT binary patch literal 66960 zcmeFaeSB2awKqPK49O%8oIyv38fC0go0y1+V9gM;33-_S35hm=XbAy@QELQDW(a6r zJ(-Z5%>itw*p^~@YwzQ|^;T>t2}&UeF^OoAfFg)hd}%x5pbcmtyqI~uYo9sEN*{^G_z4qE`uf5hjd-k9EbRbfv(}m+N41W^-Hbv-k9-UsVM>qw4rKJVw zj;wpL?#@R<`)Aeyqu*4o7{E$P3$uy~L-MK4@n9TpYIhv|jKQSRQrEK8u3!YOk@X9v z=yZ2HtsxfXgGgWhe{?#+Q~PHO!a zE>$jla9P>PW#uA1ydR5Ob-MpR<;BmbG}B-V$K(DASNTKB9|&fS?2Gv&o$g6AX8!Nt zeW5YX{*{(KaR2?K%U0jNY^AHzwdB5$FrIDG=@z2!v)e}Cp#i|VwDkTJ%PWS6IueGi zU8i&1gn}>rBN*=Gl@BdnTKdp(=L!LHI6Yi`o$h0#yN=;;k$phgy63=z#qX-TI2IThFN@%-%=E(akP>|eYrKUw@fGniz3E?R>C!c2OVzL%A6-9| zGLHWv8Y~A-sjRiqRSuZLVZ;IlLLqhp4C1F7@JIhjOUsu0BN&N*u@2=Dj}OO#`tdFN z(LeNMiED`(R^!9*Xa$S{WV9Y14r8dsSUfQthVi6M*8@5mKln#5?yIN>0XmW%2R_&7 zOu_t6o~AL>{t<6J^2mziL-FBwybBmaQ~Gx?7z9t1QMt3{&CSZ3Jt%LGV?`$DvGGck z7ed=6cro~U9{In=yWpHomv)&>hyQ|pc8p@@OLBrF7_|(tWGy)jLZp0BijIBeZ}{wbRcX`{3LPi!Kjqn%g zcwfptl9yxsBV4BAkJ?u0N)(J7!VfrBxR&0ZkTCVzQ-SM4_o?^~s}ufTsG}cN=euhv zT+1GrI_si!bRJBH;dMyDRZLCRst6j3KK5a3&_X=^C{E+_?|=WMz`rT*ZwmaI0{^DK zzbWu<3jDuFf$!_spXHDH1~9W&Ux`A_R~Uu@hcpD-5O<)xk#^QP;1k(X;T@h0a15i;IWyw|xgm|Zs)iGkxA zhyCN3Hp5=0bE-6@L6B!uJlAG)c0-eForrv1Xft>Yx@`P%XZ>S_<0su$w_c9qy2m1n zwNl+;FIgtKUswGGaMiH}TN5%`ClTiBY(Gc%bb5T9JB>eYdlnIAeKqwVQSC!@ zL`2n%b=8r^TC0<1MLXsG7}pFujqb~M)^w*_HBL8WRlG_DqA?SVM5V41jYytzfLPy2 zm;kquy>fMoO0$~Y(^*D?)bL9Xk-K#~&xFoc;`e(_OY1jKT9!pAj2~cyw#4|J&=!w%NKDW1CmcG4zO1t-JB{NJfA8$KzL@5l@ z2Xbw3?$?1utkxC3fntDaRc2ivK(*1Sg|--XJ{WwiVu@j{D|HQ@N}ln7K)_!i_fHvy zlC8W8(A7-5GJZG@Y(HV=1L7nYQT| zN}B2*iII}x&tlAzytiT|@r=0BomRlhwN2+N7QDpfF2y(`>7@0ve^Ly0D!I3lgh)*O z)PJw?eFOSw;_LWMG^sxt_(1=q-Y`|}FtWE&%WO$iDgHA3m)tZ}DT_AxKb1R7>@ELa zkdipn^Xcl#i5C>pM5P3#JGtFB*WHhrO4%m{e+T`KN8te%iL&WBrAVsZ>GGU*J<43R zxUL4sCK1TcQ$tmHO3x-T{S{(KZnj2KUwwEkxRlpIhN+G70^hv1>0)Z&ho_MDbpIHTV$ zSKS6X?f1K|_~id|Zj(E6 z#k%TEL8&2pgZf3T&E|PkYG_2CFbl1%S0R9TUL)3iTJ&8Ne4?teh!xzubVzZzM<_1e zWs~?UOTsKO%Z}xb#mLznK1oadoaJ&9}KF1P&6r$Tml7$G-vmV%@+B{pgL97JHZT{D> zxP`87^EHLT=y}zZ$D^F}Ye;9wP|;rly(^_|4fL*Cft4B3#RP@Q$R9N)JZfUMB5nbt z5w|2fYGz3!aVZv)@Ti5|x(EuC4%H0YEbW;SjgV13Yjj8PIn$*UQ?x%EOC2*pkqgB~ zlsEG9xP)|@v}blSq&ddX7*zPuG<}bh70B?KXuinCv*Y5A{P;|OwYOSmd?5Smy)`yK zij!V=Tgklw>=ZCU>Y66#_mdoDpv?gV+=)RKieAWiuk!m$jo&xEBKX}b_&o(63;1y4 zSUVO<(-6O~v$HV-7N@4~+W%Nvp=6HNvF`T2P0@Gv64wESwCA2^{-_Q8jPLvLne+C3 zFv1Zitx9GDusu)M8ua>hfHGi3k0Fe&1IDOaNYg<}Ga!w%dtR+=QdU4E_Ph#OSypp@ z^d9hcZR-_8j$B(Yv*T&zQK`AM6t_|CoT+m9ymbPifx2W%NVi@Zy{$ak_Vww#7;Rkw zy{(;N(K`gWe~I2!^z)MG{Tn`--kXs2&(r(8<{^3~C8Q^gMQ@e=Oc-dv;LE|_i99=r z2>zwU;Mm{T&(_?6GGOp8mE0)?{rgV&%OH!NB&H#T`IMS7+=-!2r0FAfn#8aVpZ_EH z{pTHm{-)vl9)c|BAMl$)`5n6`v*3A&_G9)pqzy9IPBBOjL+0UZkEJ3nnwKQ91W zjgf`1p1p(fJ#_q1njH~DeUyruX{a@Kh3ROgiyfnYx)@5Y4UkRJp3-RUF!9PHKNd!W zE0efmx?t4cklTGVw@Q0nlV0#CnYS7AeR7;%%$d%lTA{1$3+#E1{> zzg7HV(aj{$&E#X~sDZubPaM0Ctjm9SsC;JcVMh=%4`S4!j`!!%hNr}MPs92f!}hlO zr|9?go)-I>U~fn- zoL4e$H|WodWD0`Cz}*t{HTMn@_tWjYSd=Z&hEj}s2DIN^Y28v{0h&hCu;2r^Gjh(ICJY{bV!;~ho_DWC^dRH5MFzQec^AD+&4k*j`^q+{pZf1?JYnd_xQ zmiyAo!6rwHXCgY9Mytx2Xv{j>(8>}3Yha0%)*nD$z;8KN0dsBEEf(8>+xJ z?EdO21UpW*Wq6lCU&6lon17=DWx(a7{fmF9c*co(nMW>o+9*!ccUf2jQms-;S~MWo zzyr`nsYz*1o4yNy*fc0>7Ri$XYIy=sI??I6oOmgv!F-f3L1p20S>>*@R;a}~`{CLtfNkcF8a$`n<9KrTDzoy~1-8Z-NH1WS zlP=IO(3A)LwE0d3sCfpAc9Q2+RGAPy+uZ(P7+(~_Ypn5a$G_id24FdmR$huxh$9mf zn}S@$a0L`V{ZY@Su5gy8!|s&SzeGVnOy~#?dN4nR&$G%MLEQG$Udto-e3;45%%t$U z&B~e!P#^=@z$_Y=X<|Oezu-r7kh%igEQ8%4+}6bKd#v$?;?JwNolh&b5Rqwqv()fM zV_1^@u9zUljo>#EI*`a_Lf38pg6O-jA-Ifko1xts=GUk3MF!6?Ab4H)_ss3b!>A9- zt?{qKzqM1);mb7Xi5?IHsKt>KWJT0X{Q;uIAt<6@>?(qu4CpH4eD+HFr(xZOU!xK+ zr>f(|+OoVKVYLa--*aFZL?0iBjaf9R6 zoVgYB*$Vn>1%0-HK3hSbt)S0V&}ZwwT+gxEV?&DCMwP!83VnDHSZF1`mu9Q$ba$Fd zQX0!%MthKizTaSBgOsqfMgar)F(U-WPmv@f@9A!{)Sys|ETyNr>!gNS!~kYBJIp81 z7Uf2aM@Pt2e{$ZP~=9p0M=NUx(M2TO=K%sUHuObpwxLZ57Vk6TaA?VU0715qjQOv z4XX#-5(c7>z2Z+2?fGxx^9sODD5ztvu)=FEbZ3hWbY~{?Q=&3+gZxTA)luf8L6sOU zq@3KjP)JOGEd&9QS`8?g0HT8iRwd&CUZf_(D60*i2%X5FwKg|kh4?XqBez(|hp`M( zp1mOwE#box!fA-cDk(BXmPW}j3sd^YvO&mWme=xz*I|cQKj>PF9Z(^0ah1XDtGXg} zj;&$>H(iD$u^8QCr_c{5Mr;;pGTY&ey8q@dndB`IT6X&Rfc3e&)h3Hc)BgJU+Lju^2* z`#v;5#97211%lvi38K}exzsjzd%XQ@(fssK0QilLT(gXruK zoRQjLV8UxJdx@rT{J!KuTQT4e4-V#yXNR@i!|ar3C72gcSp^1%;e@Yi?tvnx z?+ttaBn5ISq;^4QPJ2QwWDTGPQQ?vhCUW}##-?)C zAU@j#KIjNxRE!FR>d*tS8cDWS_A^z${iVB`X%_YY>wz;F%2T7S`zax7a%*$%*B} zWLJgf7_hWSFuEPEf+>M0C2#}VBf*lOMR=s%i}nkZ*=hFn+A9$xo~oUs!2tka~ijZr@l2AKYFefU;R%sP6fwYRfXHk(BB40N`f-^Ccq7Pcj zzS<}tgyAj-Sk>0HpeWD0)_@Xm&~4-^;f+xHQ9vVvYXZ_xM1uLvPHRMHRZsEA+z z6bds0>+#$K_>ab$u-L1j+Nu~*f&;@N(SE?1Pz9!{O1MB%Ze%kU)nF;Sa#M^-W{Oz5 zu&5U6+>yaNx!b_{m0G}3)1!wHf+gTxDITM^NFKX%#c1GEdezvaSB+h|V(ik@W0$TO zyL8RirK?AmX8ldQhn5b`9YnMlCvreDLGWft6bexVkn&;ZG(ntd4lnUZXk3+b(hK{7 zOb!kofF(JeqY=!*L$HuSA;gpQ#=pVf;X6-LN=U&P1E%kdB;CPKp-bpx#I7-Cz^(%X z28Q!@*Z~3+fQm`h;@XTEK6vJ|D7?lHxSpM*nGQEV z9Xl{QqhF8F735+4@k2q@o1h9SE${lFyr`id$?jlf!GhAJc4-GW?zPl23x|SQS%?AZ zLmiADz>lw!#Y%|KS$5< z==xW6*w+NHrFn`G>*7R22$(qn%t)rg*uIG7KRLtu{LjkU!HTR~dTA^4h-d998aY)U09 zbKZ9=u=#lhDCb~f_DbMJtnIl%dCnQ$jSYYl(v3Qb0x4y>(f--+wwDFlE>VkUU4XJT z*nwG81Ra<`MS#3AeZoj6Q-V+?Q;|YoM;0Ck9rbtt+pid=p%dQ8g#IbPEkaRXN5Kf6 zp#yKxB5i*QWAJxr-NDZVwxna(|0v0O5oMp#1{DgRCC>g1I$%E)9D)BtrhT8Zb}Qa; zKb;*&tFkDjseo6^Cc@w$w_T9?!)yPhY9`PVJ_mJkz%aLC!2?ZPu)~l+u9(rGo|Om{ zuynEz6|?k0c2}`jY1f!x`WPUcJkd?I&Lmc_kmW3HH9-{kesWUu8EIB*YFM9-Q33#@ zMpl}J$(YgNo3vQpJt$8D$p%F^es5w?GW6I~uVL z_f3QpK&%9*5zJ-j#R9c-6^ryB7Iqc85lbIC;IjtN!<@+pK~bopE7@EX$+;?$b1m#) zAbAse3uuy~9f#nk^|`sQWJ;t$`iU_xxVeEF<+COVxXC0&$bk=rBZgRt?-zd)R9mSs zgcYwuRzT!zq73L>k)APWbV%ls=p{vyHbTYBl7RU*Bupto=-lc; zNg{NN9f6SDfI}+BO1N~eKOk>R0m~;gMW~SF$EXa$^3C8+b_mpdM`Ho7>NmlvBp=4q zX(DJ+WPU~y+5{s|kZ~6j`|hFrBk4c+stF-K#&<1>!T(-|IxpZ)!QWH(`z8K9BdZ49 zm*ekx{7u8(o%qYcAAlMG$-vTuXP)f)!MKS$^&#7GS8X#iq zl`%CDp3`eC_g^dQD9Oj{mDbuA&*{|`d!?<$s6Pd3*dh4oj)`n`6}eN;o`Dw-XBzGM zYQiBm!~uap`y~#e7}1g$TGy?7QayGG0o|%(hEq`ne77YZzrZaK$*nWYSJi)m! zt^GrzTB`C3|21&v(a8<}re^5{|8c*So<*l4|_xYG8~5Q2)WCkm_9`T9ou{8Jo;m4inTW!bB$N>_3|s> z@}I-)z2&_Q|BcB32wE%P#U=*?eJxF<6rQ`=;6S?3{&x8Ze;Dhwzpcy(NVDGXytK?eWZ-=fob02T}VMtTWS0Vg?uoz z>y*aG6>1{HfY(6A!*Ynt#RFR@aqIzbHLu&Sbl8E`o&ZRY@@8VQ;1I8D2?Bz zpurY+ipoQiU97LYO=z%$FBr>X-Z=f-oZ7+`*XDoo6>l9Na{@lkVyM2wKGLjGeT*+jml_L z&{{wFeI%ker3{l6P5vHDc45madiD-w!h3KhK_q;z7*hNjh~s!JfO%I?kyof8DiDqg zrLidlnJWulBY^iFVh0WNXR zs)z6fP2a&=X*^8**Tx9V+7R*HhAeHo(y2Jo!s(6bx6>Qde~LF3^FdkPLO|5>W-5R$ z9vlLoqY7Q#SCK@*>LEnETM;37<|RhQWPSJ%WTKH+WGao7!Po>5YYD~(j?(ycFm?(M zl*Y;GB=>$SVh;pkhed2{FxDet-ND#PA|@s~+IwEa9Kp#)SYgzIv5g}3b};sYh3xYAHh^-CAibYJ21TD-FvA+iMW+EoUEaY#{f9fR?l#qyp6}{@=Jz%%MZp>gE z#?Kb&Kj#ZyywDsz^JaHM-Q)TduIb96z|5Patn*5?-hP;MRlV;C)Fg7lPDNQtqKZ~B zA^wcifcH*-^h?bdVJ7QLt9yd|lsk6FV=C_rQ#_)UDq;LraKnp3aOAeIASl7HpX2H8 z+$j8gi?Kq`30;!{PZQVzY;UAO#Qx+s@md}LP2tv}(LJ{xsv}tE6yAKHP^{BfI7iLX zm|$V96fvvCsbUrBkDTZT0f$RE1Ooz2{xok3^26z@&ErOK^gs>_Ncr8=)NHDmVJ3## zk03`7Z~)(^!ZC=RR3c06Tr3VVsQodE;V1=mR-Qp+y>BfeNT!`ME^||aA4BT!Y;9ZMy%LN7zoU>I$c+$DlNLP#yx>*TqFzMhP7C?`gZ|K19+cY~hyvZ9 zDD6h3Q=h9T1tYbaNaYEzGd1&&l_H|RI%W^051pTCUN}BbcYdn0sY4zJNSnGE;PgGI z+=aATT;uA_FLWD-cAkT*xAslHA$~u51EVsXM34my5kMtVPmJkZNW_L_KzaQLi#!tv zJ`>w32Li4z{g))sK@kg4WIxJyPNS50^$hI1P1RH3Yo?9Ibn3TaxE(-QU;L2-NZ~U_ zVZqJliQj)l95D4RN8K*N?K=N;1gRM@XSX48s!pp-srMn3&Sj{lZnW`}PnZOA6)SZ+ zFe#`hR3g6i`tGMS%VnbQ+X!#d`@@pRhyvgGppt{asy?b$zyBE-mrsz>(kjlc(bg_5 z*aAs(ZCZLa1G?O=S4}a%Fht)2`@{$Y7ooC^=s5%q6VMU@h9;naCSZ;V&OJ`fhIC?=)(T?qOX>dvnKVuY6d0P)ls2mJI9N z5H%kjqrFYYcdGI&$e>s+>!YO>%*tUM^n^4xcZ>!rkuS#UBK;e)y_&)H_Ka-r%8>SsJvF+6kzdi?nDcDH zV0)zL59{BrN`?sf@EGlFM*ctQ-A#(-_qJs&vS_hNBU44 zsTQ7Nu5S!+54Jr+bL|TU`?!IP(dO@vzp;q@8BG@O zEF7kC3Xf3|I{R4B(9S%CE9N!JvS6y{oaC4px>7CCAW$3l6EYN)Z@%c zr2eG-HED+{GED!TzE^)#e-dAmMuzK8>3b>Fpg*jpjMGvgw3J9K#i*r3X(`cK%4J%L zNlO{8rYww{pg*KPN=-;;_@vxszGE8@XZs}25-iQE=Vj{VnU6v`$@)U0UG?2mftU2D zT}I8dlTp)iOltTO=qsO>q{jb50AHT=IyVwM`=lKU^!g5ckN$wPBR>q??LkVoexHaN zg7I;|ctkKB8H^i)@u*-tIvBq!7&isue@F!_mc^0wTptEt%Ht-EA*i_wS3r)*} zG}-_eiF2fu_q|p3g6v)Fr1ZjTW3d(vgtvRm?SC^X4UvM``jkz^>vRJFea{^q1oU9_ z4kbrYxjwrGh@pbi(xw!K2b6|z;@M!{0p$t7$Lfs8?uY{VnhuKZx&LYWcir>N?H+@)RFyDu75;-XE&cpjPq6Ol#OGs-zpgek-Q0 z--`L`w_^GFt;Br&R${+yD{?yyDIb^5O_A2#i^F8{x$sr9Hquxfk#=0*yLJo0@7gK| zkIynD)PE$#YS(qzSnU#HMXtb(3#iTdD{+VzyV-siqpuC}$CzyK$(aKo@_;PzS#%)R z02#mxHlAnXMJ6wO<05w&RSq4r->dvteX6Z0`5BdTT{|rQbi3XaHZ2u5V)Xjp|LSAAJS0Zb@a4aIZ*tp4)E8nE zwduWwq@3&OA^AE+eQHIm5BZt=>Ii&Pd_8R{HY&WUhTuInh>jQb+>>mVLd}ZKb+W$a z^zI3)*MHMc`Q%qU2Ni*$3m@pD=}vbL06Li8`w83}ecVHo#DVeOd-0Z@JvF7bKRFO} zKx)921N#f!@CVVqHs$y9#_?|SZzMj~!MV|^;6_|Cs97V04HA-1W;a2HJ*KiAi=-Sn&#o(m9oo5|~55L!9fh;( zBUYNIWCWOFI|Nig)KJ!8ECu{+}0EiR58`Z=E za_R!}t;~^vbe^9WVt5(MN)uVRV`XJ_uWdtT=%2WbBSLF>?G_~C)BqYAGUbq|M>J;S z8z^5phra;BlA?2&<=QlzD_XA2)VW~EbH{f(3_qdqrt!QNqs7x==nHUIXz!*5v#@DU zKV)M2}OrB}{Xlf7-vCD!2I7Au0zRbw&H05TOU$)#Q|KbD8-(VTfaJkIc8B zX`Y@rc5>R-$thzd4~_(Yc4rGt+KE{nfK5N}sFc~ReUuX-j|S->=4UA{F_OJ>)i{hS zF7A*#&j4}$y;$5NqHkjvGkHcP4nn|BmNS4+$c-8Z4!zfuuhTs&(>Op2T^HHe3;?_i zQHphl7*T^_T_Uzo#2O-dD3(#xodNd*rc4Glee`mPm%JS#EJ7KpL3pIoH6wUEs3zvn zi#C?(r@SHhc&<9WdH9T9YWR?*=3TL*@V$+oTy4@x4S%FWTs#m6lN#D7HK1qv-O=)6 zhMOeMHcEKRrDH{2$s=wODlwyg`zm~UOdDMFRv}^3zn2c>WGC@FZ+E&XqS6!XM^;6% z>K>e@tTy@Q!0KJy3aVbz@!`&vxPTlJrCiK!mREEbqV`B3XPlpO?n+KIZeLv%KScUJA>5 zmoLiX^9ots5k9Y&<-N)0=g4gXEbDddJ^*74jU|X%eS&Ab3s+=P7|(n2(1*z#HxwPA zIaiRwjyk#FE+@-61=)2y_T?WtdG#qLo0-9@PdM51yVz^l4)<=J^?G>L0q*v)?6U4` z7a_w=dY9s*p&cfzEdrNfM$ao_^A@s3>N<*2``y{9S|(mbLgXKCEgoK4j@}!eFRrmg|V#8pgy~>Pp4W#DS&DhJ zS8)VXw&Hn5lw5mY7Cv>U{2?!Dt3Njmw5~MafXZqEB>M?EIg~w}tiB(l)t~oXHV1sYm1_BKs_&*UsAG-qiGRc1EjjwB zG)^bzdr;c@{%oAa*-d2!c~e%h4^|_glq`G z@(-z@DrF8MB8Uk=)a^(V(lT4*k+(0~jPD0MZEMDzIf5y(^Cpyi=}|nub6LG?zJa*r zIxq)KP^UZQcSSvovz%kZxH>tl67}chb^^!MI8!wZ~ zHh!=Dyp;cb)6thO*tijG4tJlp{!~-@p%1}#QVXN6JEMAe5qPkf!ulgfXZ2JcdJXuX z>FA*W=04%=i6=tg+fH|%`SkhGS**R*eF!qXl5@FCN~LTAF2SrIqM)OzZ=NfdBhN2U^^yvC?= zLCFp({0684I`0yK@C*&3>rN)#55I=Re$xaSDzeRW$e`FaL`+@mH%+)v#MH%p-Gn%b zIL$IfAvT#i;z*!?{~Y)-7VH0q1g^kX39oxd>HHkVm9K6N@ zNeAUMX5Dt3D{Q;LcwAl+i_mY4YPyZWW}a_R9@Vo-i}3(oU~Dqrx(u`&+dSK#6zJIk z3niMuw8U{^B}R;u7&$DFK4#Yev9nPw%Ql0&hnPoS8wJrRZE0)6SM0#zF0HvC98AN2 zIAZ11X8eRfa~d!lv;38#$|vevQ=pnd*8(~D0t+3Z&=%nYk~7&!iX*n$VFf}Ec7`mx ze5o|hSZ>%&wFt~M(w{-X6h}Swwc_TCPEQa z<6o*nsI?6bDYK*f15)3+&dv}-blEjWbb5$Rbb&}rQ*87g?O+rR z4mnY0s9=+AsEk_RVqE)Qe-RYKq>#^MNuEzZH&Bx#osNb|YIuVvi4(f#@NG9cEVUF^ z>~Bl58>ws`&exap;og_Imejc>$pg0yDkai>-DQpMT?LatUwDC$JCZP7xLi~{_fknN z5F~*tv2+yTZ5tZET2yMW@0A=!;DfnM47Z8n5HPuqg6Cx>XMo`rne?S*{US^JA~VPw ze*{O|aTA!sNC)4csO4Ky^G%q?ViaQ8dH%Q+CYNydCwQ8<*^ol>q{6~0K;{X^bFjy) zwAqBH%CX>bo+oYvN3dS@zHe)A97CqD7}tL({`IF&s2B&?tD7>s1B6H=6%YmwhM$7#gZ=i_iv~p z{J2GEKXA)yBRtnERMOxG-be0;65kHg9fD*)op_V9 zW}trTuL5=OAmkHf#P=l6x6qtABm5JF==VLMg*r({>rx5$Pf_bZwMiO2m0I1`UmCR{ z)4nFP5{9VdKEc1uSK%1gXnM{3I`sOrDm@12^#GPgP$o#PNC-q6W6}tf2tvI`QHKS` z1!)AU`&Qje9ajaxeyiH?uMz|kzVp?BfL7oz$bw4fVaDcpNkd#=3Tw_z9wsXd(H9er zum4%FLr|{EwHBRg3GD|5QNCsjl(R<)u0?l#1-{uh0to5lPV-$0Z5oOe?LOSM@~n^X zZIXhGi1@BfF})h!1HDc$U5*I%hU5A$x?LyNx^!;ZF$+V;iGFywg?c149E1kRg%yo9cb-R~1_@xhv8GBp zgpJkVx+5GDq~dmV*1Hv30*(aQ?o^U)h4J1FWs&x-|Z+D zOr!NCzl`oElNzi@=Cvu!nNnbeL2{SO$h7O-3-Anc-=!4V!;~#{YGFpE6z-mbr@`&O zbDTRH&j@!Go{{cMJdN%QJfqyRlu9E4(eCj|l@yIjcJ1%8Gv)A&P6+eILo!tN`ThrJ z&GN@W-S}Bc)4So-zaxP;4a3F$oO~aJE&PqdV7cDIDl$w!D4a@^^`x# z*Z!RJ_zkpez*)a^y^aL;21=~&_!7Xmuue8v;D726YDtG6p+WBqG^~BvKwv+nU=vKk zT-4*6$zaMIi{l-xa7P()lm$sO$KLDD<@qVt2kW`8f2tMGE;gN{f^8PaY$kgsltBW! zNuVGAip)U13j>e_ptJE6ocMs2C_fd35WZj`c}Z4}LlgSm_ydE2T^!ss0g%r7=j#YF z;IxoW;g5?&{PJs&1PNVfv3E%h?40Z-!lbV>>nkkr6=DVN8?k~% z3a!KQOYFRTm81~&L+$<@2rt-lBG~M9m?J16HS9)mkSZMZ?EEs&#Q48L6ZeysLWe(5 zr-#!a8g|yNq(k0}OQu5vq_J-WCSLcT2~gd%{EB!ne<4j7jFlrr-@_M_#qSgAKP_hJ zaG{XS`|S`kNqVUxw)mP$!1R~)uf|kr1$sK#q(}`PAf#S!@HRqRHN}fN*9oJC+e~2o zz$X2SC!nJLo@xmpK^L))?B6R?|I+$5pJ*N&hN1q|U404t+ne%r`sW%a`ljUI5)OSO zt!}i9B=Pn~>I=@yHasT+VA-e8C*KZ=?V;%i+9-H_b&pU;=WU>|8P%iTTy+UOI(hq7 z_ejh!S1gD>E{GQVWCMElH%T2of>!*G2RHs0Q_njv6T+(oMhy7&BOGKcLUiQ1>HYO& zba)`#oysp}+&=kjln^V<#Z2787TA|yyBfJU7`4ED37G$IXAoRqrG`HMX|d8_+aHF$ z@cbCzz=HH!e~P}pEiv+pB-+z@evYCe)P&}Yk%~ie#;v2uOdFMg4SvYh%n;q25j84h zX>77g7)%@58)p2Yy`c&@C=}*m{Jv6r zt-tLnSPZ+Z3>X$`$gr3ZBR_7@sfWpZ8=xVC+M9)abI7FQx=A(Y-2m4nFM{_L8o!C{ zB}D zZCIRkKrryRuE%FF{#cwWYrD*!fjg|+m%SVfu(W@7k5dhBwMmlu8**)dg_{~SQc~hsWvuWjm-MN}JB?J_TQLnecLD~VH_EdN5b&d1G%HPHjdD6u ztxU>VPwGq17C>?bN|TPz+RGNfHY8l2a*c2&*9dp=G53`u&aV0pxAPF<+Br92CP?A) z6ZHo}H_JP31t}eANQY}Im__R-KIGXdvfv#f_s;MvS!5Yux8d`}_dQ}Gi8|k>jC^wf z_T|||@@1KW9T1M|Lu@OlimKy!Jt=DV%8-cK7;_ngNeyI;HW97@L$SsrgfZ!FM@K^J z&l>;7f*PJT?{!-bEG_gz*5lgaOB zC4&xlKe1G0nPNy5DyIurfi4TdwTi{8Kj|{zN{1(YhD16)6W`17U2H)aG{&~oZGHGUlA|4;G8RdMBaH|H1g z$`rmJ2Ob;;b{4rwVadHW5+qh~K*@&jcCp+w0AWd!CDGIUC6TD<&I*Obp)gX;nG6o4}5HpDm?Evj-2apgy0B{5S+T9=v^{P+?B)L zck<~AoLG;!`{V1oc!}2uvmFRg0otMn=(>QNXK%2|#cA_!dds~H!0-iS$pLY;2K4+V zcY)&UlDdngopEJZHmfYlv9}AY<%s{*LH}WRWf^j`EvMLnLrlWCU6`x~zZ^QAeBcI9 zz>z~M@&#r5HlZ&QpxA?=nKsQMMC2FE-j( zGB%JqU)^H<1gT%K4F(XM_wa;K9SFaa4rC{MMF&O*q+g*iRUrM8@YVKJ?5oj437z+r z(P%D&J>x6s{LD?4faVCHG*f7CgZgQ%moUJjfVBym0hfQWDzCa74-y3fm=pP~*;q?e zX;k?wNQr_!4UNa#JZKWS`3#eYpk@%+Use>HckWR9iaX<`B){vo?+L?CrT z9nvaX5M-@lEp5l#h(9dy?E5S40hU+8zDM$)e_Z99p!dvm8{~z1rYh3Jc-5cPL;9D; z`>zq|NQge-Sj-$_V8HWNLk3Io1vD?$K8VdT-7>4q?o55)YZ-aO^va^txTv&#bZ6x&*DwpzSX!U@f z?j>3>aOCQ7rBu&;LXrA*v4H$UEFh*-+?U6zd-$HP`)L6&N$hPbAsfgHS>L5DA^X*z z9xIP(_eH|Z3Em?GFw^`cNq2B@-N1cf?J*7-Eh|@x^*Fvym7^@LQ$6yjces>noFjv$ zZnfO?FK$RX?A9&UQI_l#nOU-(>GG8!w&Y{1+7#W`T zCUA{TJ{eqtE7NG9sLW(;EECh`VcGZ#`TM3{-;E_$90khy3s#I8hLaRHKy;i|WvnBt za`n7f_M#*1A7b)>707@{oKHuLGR=Bgp0e8PIA-K2#I6C_q^jGJHB|iI4AdN+_j-K0 zk~vXNst>jzDyJME)2%ATZx1>&zKlc?zLY;1;@g}~N6&;|G{m(z^G0yXKXh$|i1J-< zTl+R+NN8rbu-Q^ApI>uU1bhFlOaCLr!G3G%=s4>4SE-{p-@M2S(cHQJyV5^-G@6UZ zz429O{=#+%XpWHn>d8asBbq*nQ8TqcrM8fll_mf4(Mvy!q}qzWb2w@KLVZ9p*a= zsB(9>@1%Ged_M6W=lejsBYa22JJQ#S_egmT>=m$#>8;969 z$+Jj}MIaU-d5YCoBw~@0=WaD-M9e68a@ANAVo{POTa864#grZGo}gqV;c8bSzL#J} z%4MZ$T3AALpR$$+nVNN?W*X0Xm)*58HS6{2?Nfnt9d%>9;GLWbYU5Ik}LyCT`Z;7ry%U?u5X3N zhhP(j%P3Uh!>WM|JMm*HrX7N`i4(r6dYvxqjtq3zeF` zkCte-j85GMpyFpu;@c1To$MKcDYt#@kHB4BPWBoT1?2vysv7}y@VHA;tbR<8{wrWs zhVyt>NyTAQa6l;!tA3xedu@>W1z;LKDm{p*g-){!MW<5~8(1|(YU#L*^dH*Smf`>^ zJ|Xg=b3@(2j~iuqn{1NjAU3A1NgJE5<90gPrH9pv>zZOyvgf${>WA%g$d%^XeDcXR z5ozVKX7_iRn+QE#V4=PJN()~J>P>2H64V=>=e3|r~rgm|Y)SU{&)Kghd<2$j}PgKXsyIJ37pG0gqo&f2!X=g9|?PmAyS>3he^obs;CB-(XuN3U;| ze9l_sb;^5MMM@GvyF}ptMD--d{ zTTjtSfsZHNh8m+hMau&s`w)>@o_Y$Ucw;Q3(VS>#q`iC~u(KJjm!X}(@gZd%mFNcP zcKS{0SG%)tk`fz@>xS_QPWt@_AHy9}GQ#E8BJlMGeJ$6=-cCN9ibKsCo&z8p@@*pE z>Dl)8swMl|u0MyYhpBFF^)*tEa4$M@$acROMaI)PVkU^MmUssjJvgucsvk`=ZmVkwW_3c3(JuidH1K zBf9;Qa2z$s-Up8!=8)f{%pHdh9{~Z!NRdP zIDjgS?`x9l6DNC0lUxut;Y{R`YF(e52Q+b;_LE&X2%PjCgXC1diZuy~9Njbtv)%vT z?3Axl%~Ns=|6d?Fju71!M0K~A@YTopdcop(US)%hJV7lOp?C2q!beiezNn)?O3{Y? zZapm6xGuLU6C|S}a`P>GJ_r`p+$aS7JmI!h6LF+Flw7>%-9sA1aH(+H-~B*k9E`I; zs(I0>rbxU&NgcnxBc@{eNjnz;iI{Q5IoHBk?GL-OxREHJ?^ACPL zddQxJi8#o(jzHcC$@6`PKKhs#%)49cFHW*^-nYm)3rUW|t)%g@lk6RD8xnC?7vXc> zFN~Dv{UhCuUX4SKEBJa94ffNgS<&;n?mA3I^%8^`{B9$^n%`|= zMLpg11#scfzwY`%gzmsZWcxh_Yf6$2imMr&8?laV*14nb#p-5c`s4893n%%DR1Lpl z$#znJZF+GrtqghG70@3g=Am;QkesI9{^d$t^$T4J`s}s-?c% zj-MW>?sS`*H(f<=XKd2bYgIgJ*hyu8Hy5m8?_g)7_4Iq0{z*Z5h`W=W^+&OR;Qby< z?W|gyySL%8bZNsGZ0Cdd{7JzpMcb5u0DF?i${Xs{u6MF}$`gmxapXi=cN}yQCQ_kq z2ko6O(i{f8HmNi%+75;wdYLvlSzarC`e`5NwOOTCNvqQy+a&1K5Tw`k8ES}quF>nz zD0+PkdVL;BudGgtM?K&4j7l%VlY(Auag9P}bAzDO43+m+-H6#BNH+Z%F1m+XWRFPe zvxsC@kiV^@P0$Ms)S-Le=T6q}W2(VL@A;E75tZ@)dyxXXWE%|-v6c)6` z_uQ;QTK6V!Bl(Q)OYH+8^ll}3zZRr-8+7Jjwb{=*=>Uj)665`W^0x}HILCkqz6k!@F5bo%97^u#{E4usMh zUwR(}e?qzh>D>d;5#TiPEeWosV~88>ClA3`L!eO_Vsw^~uQW6FvwXFYRk!jKoE&Fa z+xgY3$`c$&!rZ_@1z&{^*e0`T@eoU59g!!_KQ+IzBhEcP@evJ`p|y^B}M}pnpl)S@|BloW+bF&84sI&S+ok_8^~=c$8^gfkIY?ojyMMgm1yxn0Ejw zgp;}Q4$x*>Y{qp^ME|OfI-^YgPVXnPJ+IdO4WE9?fRkoF;NHu#p4L0Js3jw+8eeZ$I%j^kptR$(ub8dhP8?>1kR}H51gaA__yt6rS*QQlw(oW z=-FxuCT3Ht6f_R4wvack*usmUpQrLx(#O=D%h^MpIoURXsN~M*W5U+t`z^*8_dVeY zNN9mOHYIoBSTJ)RVRY64IBj_{0^2@T@-ar>NxG*u6uXTAJIpT;P_cX8ezs=GFw86( zW-wblrlD(^%r_2U);ow9?V@rg_W9|y@(}*g_p0bR*?T@6Fb>BD`%suf7kKr%$^zW6 zbA`0lLsY?sXIoy{b%(&3mmEph@=_AMtC3ocvG<9jhojEn;+-JQy9GrD>?dpPCY-V9 zQ%!A_31gbthU1LQh8PwlcXE)L{>edk>tvt%FVmmZkUj*@;=K9+aWdvq`DN@>`zMk0 z9U=;sqZ@?ZHK`MaWm)yRFuFnHycEXVAoM3?5&9@?3dCp$LSNPAzf9;)f}ZcNLm?E!U1nEFYvmwCx4-l( zhzO+6lZ5Rr#eRn7*xq z0q?7SyvmkRi(qeF4bI)HBgQT2Bl^7;1xdOm3<;rR92)$zVS^v54Sumjsn9sWbe&4a z_;;G<Z6p?&VkbdV zr3t}tZ=jB>@Y0U$S92VZ#nP~i>@KrMx!I*1>!NwGDA7b)Gd~%>p58>m)wBf=X4{*n z5%oMZ*(it2ry=>32R54(hL4w6(VMKJl}utgHM<|33zdGya!&+IiMV$Ro_zPaFdN{S4qoI{W^UXKZ7}c>Js8YDUd1&@pXxSB z8@ka!2<*)U6ZB5aIwEoJO2q_z!TI{@U9ON%u zUDmRe467Hxwd-QIX8v#CO43uHv2LvxX1Y9M`&t@im3FKzgnFSgOUM#LOZsOJ8AUNN zOwwQh0ku;?mtn2qibM zXbpJ+hkSOI#GZiZbu!_kQ*tNuu`a(s4|APHXVsWD2Aw70b{uN#Yts0X+Fkz@a(fs) z>TC~(N2xthZFM&$u@1)QW||m9$Kg7F(gcHEgPBg+^y7ZQ5cw~pWwBCs1=Lnm`i9JZ z$lul<0ZNE}RV^=0SSH}=&xWQxs4yY<;yy;R^a5@h!CgS&;*w6f7F5hvz!Ui*?{kc} zOnF0BG-~obc)pNsQpsz@y@$BXijLIc3>K{I63gr9<4nI{B{pI!-U8u9`*}hnVoa z4V_9=N?Kt7q!Udk$o3BW54lb7QzR*Bs``5l4?@&qkLjLBd*?{xcz56g8piQ*gm=@G z8gze9pZDjKip$u7*Kle55%#=)7T-UTu@d+WM-&JfX!-HxjfrpzjDN!s9ycb!e|sSm zVGUob_N=|#XTs?(d}B31zpveU6%LAx$1nuGnFu)%_-2xLP8ZJ<@ti51Y2ukFo;l)~ zE1m`7Sty>x;<->f7mMdo@qAD`%fxe~c)G-MwRl#EXPtO9h-Z^{t`pCV;<-sYpBB$8 z;`wv&d{#W46VK$MeBNJbX7kKu+)nlPG+(8lFz!32KkZ=~?KWuh;eDEyfkCX)L;RKrAg-(fXO{5*yKQw?vU z@K4n6b_%Z-VVb$xza@{XF4fIm{*Wt}fcWZ__fNZZ>e4l358bD`f5js!A1Yf`Zgnof zYpK<>!urti3fGe5u7{Smmd&t!vm#oTp_Z9;t8V4}r7O!HTJCa=Rj=%!y$mTd~wy3~<&Uv~m`Q~X!NoZo_n(~Jpc+h2yyFcEV zY`5Qj^Q}qA)2y=#XNd~#f(MsWEK3Z5RJd%(Bhk^iqKYLC0L__BU_Z6uktKIpzqewg z>!B6PD@rJHnf2!HSXY!=Z@&4#Wo0V~pNeJ6tWI}XnKf7pFmC>iPR-X9lrO8Our67? z#`^HGHB|ck6(GcN_c9=xvBF)p)Vh3y%UZVLe$YnrY=zsk((ST})}wV(msC8WORuO{ z_Q-ui(qLwV`~LfvEnB*5DS(vUHyTa|45Ck5a7cn95|3I_Y0z|2LB?WT<$b!W@^W;^ zRleq-rkR#b^9gHEIkH43^pBogz(Us`v;k)1z zaJ(|(`2A>g?EadXp2Oc|jbsDIt1ynIk8&p>!QW-!>0xv`;hch?4WL-`vqMw-cs5aWK6&$kpWO7EG_-tAwU5N+mSv$K0uB4yncVc?^efA@%?9j{J(T5DDhtxzL zxG;#IC}bZ$bnfycLrWoZ1q?+B(Gi*nrg)_67%!NSVCcdSCL^-~#@7#O=Ly%A6NX+l z`lRqH6qz9~^sAT=4z~z@XJ~Ub@mxP^b_3omE%6P%ak0RcCYAzk|yKHe@@nub_5 z8@96Um_5eZ>`}y(F_Trafs~TJwXL?STW7lb<||T%iob22egkh?&%P~9H*P9*%51{) znunRUKM`?gtSp)=Tp{(aVDGuayAAvq_exSrnAdQgV8iEk@;s6r<<2`ELRJ(sakai7 z>2QCGyz`wn-JSq;?{21YTyu)7z>Bey$MU?F7u{jc7^+NDZ7mtOQp*vzej1)m$igOx zrSJ`u@wy+D-{Q%cOmd26vUMDuH23fzIFKYdl!(W6VF;f;B(jqZW-y80pX5Ah^^pI| zqt0BS*=VuQ+meb?Aty?I^hv%X7|VAFPlU9bCYrQys{FuR=g39wegLhcYH|P0nG<@;)HnsVZuuL~=xJZw$5Vzy22u-K6TJD~_ zSvKy$+zos~m*%hut8*}1d8r(S^b+{To6|XuyMAU`_OqJZ&CZJOtTgRZ+1sXX;8hTLVPBFrllW!UyqXx^<^!+kIRj7^~&t9yZM=3INVazkU$ zsnpJOk~zKmbE};$$b5Eue=*(NpDV$WIh!4OQCp4g-7yyqpG8&}wxioC6Bh@U4Cct? z9n=uN!*d~~`3!Hxi`T_tJs~Uly184MTOzj(wtku_cWg&ci{!fg}<*$VL0u%-e1m&bq6*fMuhD zj7#P>5&OoShHl2)R4=XV?oBy8Hf^2G+`#iR=RXbDFizglx%l+$Sm$^cUF!pt6srfcsYjW zfp{OAP4pPEJTe97DvK{UN>EdIU?DHZT0?TupQIj&%(U72I7!!(Gph56aana!)X3OO zUFYO09@C-l+VF?mxu1{OHHI>ii*%j%C#8<*;r*Q`PnGV$KifaQS zpWZZ1j7W#~J|O1TbY0J}vwN3jptq*pgX}g-3CQtK-Z*9>i(7}~;P%vz5Smak=*#D@ zd*p3N`JhDfnEW;&TXv^f`HFu$y!J`si2GiiCVCg%Pu7@%6(mE9F4(bC(rqfaFBCB>ViwD$^T*FSEa8F-&iH}l1| zo!}!m9OThkWT}%DVY<&+h)-mRlrVo6MML_6uGE%Hk6Gfd&2Y#nY@L;pM&qvZoOq_e zv?#F^^_i;nv*oh42c&O(Y}7844;M-!}!U?R^UAewZ$` z!?0Z~nSEG3rlts!5fLF?zBEeLdw-dYYsv_9TW2T9W|^tHFg{d`=c2s$>X#B2Eg?)w zsfBVlEsl_Ls>!10j7ZJoORLGThi5aZ$6h3LejP36$jOS9DE8=8z9>5;d+bAy$J3ie zloqnM-IRi?!N7o8uQQFK=CGsXh~-M+#Lm|f`OH_Vv&CKFBa~!lX=_VzYKErMdS^G) zPqZDJ9cd`{$PSye$v>xsP0K&55pg3|T4LQNVU7(d2C~b1smdIM0~Dh#jUMJ|;ReCf zd^^Wo?K5@!!voFrMfKCs5$*lkg_3S_OGV##LZMwcsaqCdU?;`GLDE?IP+M5}7$4u7 zttqB1EZLT!RWm_*j?@uMme*(;IWQ@eaw(IqpeITAx;V!2wT-grk8=bRy!TO~C%+<9-HeDROQOkVBq zD4Edwc+8ZS9h;w@@kD>*;iq}+>?dncvoG=o*xp;dQ8NWt;Bp0U#w;mf7`KS-hr__JWkU~ zu@(s(oLus$Tw4rnxhd%~5{9)ylFO)9mamnxUv`sQQT&3#ho#khH^jaaxh;9}d4teg z%C|+=Wby>#O?(9w+iVt=Qu?_#7@k|(ITS3~Z?IFNeO>Ivm@~DSrBmFSHhS_{UON z$5z+wmzOcwNsv0YnznM~xnZ2}g!GCvg@Llmd+*8_*#B7T&84+wQo>vQK|sN}^H07g z+`6K!SQUMq^6ibach0_LzUNeXd?Z#SP~}X`1AIP-`srVI;UCy@GSu|Wj>96HyoXj0 z8bYr6g#{%n+Zyuqyy-?5I84dDi+>93~vdClqd#XG0Ze`aE8WV1u zhi?iXt#bBTwS}7=w)H!UCS+Y1o_8r|KZqc zT8EX`b*9+HB;#eu&Xn^H4Q`LK8-CrTqkmuesGgq6GhJV6ejV9i*L?qv3y@^ zYokv-;Hh{EA11zGpxFCc|Hp>B!OjfdSGEP4hdnxfzEN>0dCkTfJfyK*W{e*<^l@+M zmG=&l_8*1@6-Qc5d>D;VyYcRxt=rr2l0~zRo11>5l9GRBv+tQ(C$MxzJh z>Zmd6$s(yoCr&t>53l62K02JcEUc-k=ZIx}LWJWr^JAODM33|OyojVV4rV9c#brHb zb-q6Bb@fI_;Jch1LThge-6Y>y_2|}3u_K={72l~|3)tg-Rad(>~sNVAMeu;Zs2W%=otWQB6xWo`$%1cf?!CwD(yGY0?nGmZo-mBh&_gGb`(SB)c zO<_%xDd!=l{(EGm<4o-(m2KN!cDR35rS|pj6>zjpvsz*{qm(hSI89*2d+O%aCshag zZe>1p*~aPPFGGI*jB@x^qOh2t{P*Ik+Nq6V$5)RuEZrLGd*vqXQEshaFsIgS725tM zF=9n7np};T>HLBD|fuXmrsMfoA zJ3i>RR+>*;o{}4Xn3ilLtF+R_)GBrGE7|yP0_T^0t5Qb3`kpwIBQmBg zGNp5r_0npsa_QxxD|7?*oV(rLf9h$jt*YjoeIE`qz21`>YG(Li$@@9d3QYpm;CR=Y zQI#i0V`3<+sUOzlO`FHz_YNK1q-?z@92=WC?4`P#^L`|+=e12mR|j;LrAT%r<95_e1}fwjRaG&~HfK2Nx=S2L`WCcN)-*XO&F=Fj zsn={vJa*cLwttCfBD{Hbrx(9F23xH@S`^%AfN?EfQQr7gx$i{mUPmQ|>9&=usqW|R zUAxE8ai6JD&8zU11(s9z{4O8KxwX$T1S1a?`wcwif7U5*CadD6tbyPX4XJ>PFn{Mq z9Rf_j_CIqPd@j`bK3)0gs+D1q*jV<)TeI~C1ohcJ?hJ4|`RRGIj9$-(?v#^xkmB_E zWeK`nc`_E2ZRg*OKAJ8#eOaHIz&E~x!_DM!h53ce-D;~NHk>(^Qdx_0JX5vTqni3F;4Pv*3<|mj%T4zgqOwcK__YQR5V?J)c&vA0_EIXtiE{ ze(F&}wtA?B?%_5&nFn44Cj&y-K0bX&Zj;={m3MhyXxZY4BSBd^+TH3Fx@fV&W;~p#U>7ykJ6kVu{Zl!Vl0Nb|tUHG_zsuqI za0$hIGIrE4V?(M_Vme><36-FplB@kMMwcZwcb>rBF_8<+3%U2EM4ltAQZin$Sis3W z7x#Ih)Y~YcLbrEmSL-3qmqYI+TZ_!YTaG;<=K0 z8T@OQOH%P{CpaJRbmr%Ak4h_&LylX!nh4%^ki2onS$<1Ek8T`Ow>NuAGp>B>g@CMg z-m#PHcZ!y$RSsp0l(eb_a@1bo$4swJ!e+$`@TG_ycIPeQ^xPsJ??g%-cC=;k@Gzg0 zAUP0@5tTYV6EM3-?1>-5nKBL@<($0#h5w-yF}L%PQ1PhQsfv=fKT1!85ME0533tgG zpKb}6_}*$l+?nrSy{X9jd3rgCl14pNd0$l)$=BDpOz~yf?3A*1cZAEg(?KgNw9sEn0;mA1f$zZpA)# z7)m?PJI%MYvoBv1zSWF3VDwd-?P=Mx=XtCp(Gr4zOvvB%bh_Uzr5!2 zZ(kU0ywps+&Dt#^?As#}{>qVC=&X}w1h1#NR zShj!FWev9Pvmbkq< zMaXe;@R(~6AvNgJxCR5;d7D4(Vhy+4$Wl<9=_2FMXfN{3*v)XKmKU`W0M zIFV{t4^b!e_u6Den(8J!e$pAm*;HL-JTo>D^=h)S?q-oGPfl1Og{1Ee>P4XB2YU_ox>QFP2CtYG(_NNIEK>vhM;WTP#<8raN1$?))&-&TfuG zl4#Y{?t5m#mzo$MedTnT@T<&x16)Nm)#1~~z_pQy#y1ao!=<}w@`-kKIoI_J(%z9h z>emENX5BU_d*t9`ZN|7cuDyNC4}l#o5~;Wwv>2u zRyc|&ny*afn$$>mrABA92Cas7McJeYS5ju|qUfaOw)GgSe!H@f*9_qlb-?23-7-7N zbQ($cM6`BWd=g)BZ+nW_{ywS&4n$RsTIhnJAogw zGc}kb@p*P?Kl7{RJ3V0|wC$~~6!U!&<$ecMH!NAL-7rRem^}kiR8uY<5#g;Hwba$7 zZ2vauNQw=qvr|~!bQzCYD1NoL{6#H{#LLnYj1Vnc+2T|VA?{3(Mbpd48j*)%lU8HZ znPruk0xMD13QxUQzwZEz0@mDsSsI-+Y(t%kk+^Jx5Jg zB@tk5D(5Hq$;bc21^v*IJ%NXJ+%Y}G%PA7lKv)qJ=65x4>#~GkR@&2pkDktw$`x`w zL-mf6HD-FfX5vOYiXutw)c5;cm3K3{O=xT&+&;|d=qar2Aa}#re)PUM@mhPUlheId z&MR5&y7aq68@1QrjD;_Y?yy+CYkRzZkZG^uk6jYjIuo1XGdojWW*9s?pJK>9ep_E> z*H^ux()V?rsp#qOTl;P`9+us9>a?WgCs(sQs?07{{^eSG;lVPCsjAbvH(f6?3t2p9 zUJ?4jW^m)kew;<$KIadS)>n_`*}aQjZ@cz8%K@^!4gQv*=fDQ>u>Nn}#e;bbA7A-q zbPjJWuzmBh)8loCi^@Rc8!liIR5unQultapL7^e92^?`aH8ei4YjDZZnpPk z7nO|vXlj1^Gnte+w}(A@W~sos?;XM7)2R=)PTA)8PhdukK39hy9*@`}^U1(Ua1yI~ z_Dh{y`nTxBnXjgE&pHF`>^ttNTXp?7$=9v*YGbeWm-4=Xv{Ns?tZ430-|@QLgQue{ z+j*>YtmDoL`TQe|gsZGgwCAcV!xZ;s>7{lx2Yw1Xym)r?qb}Ld$6`9h)mD4!A0%%6 ze!u1Dl`6rJ#JZigv!2G*q&=xU_^6g!@Ke1Whu^bE&utA=ElZy>m&(WAPST0<{6Re< zw^bowbj^~aYg!kRoh)x8u6+CXY=2lyTKVIt)X-ZE7c~|oU788HoKi%VK1XF+bV0dn z`}v8cL(wNUD4pJc=ZN7QI1t-#$}KAF()&|ezjdEvH9mUckyKImd8ZRct@$d$mgNo~ z>FH{UNT|0wW`51_xTx5s$QM4m*@KO=EZp7X>&~ptZ(Q}7&UqIYa(k`Nj$7oLLN{+c zT9x_fh}bpNcZyg2_XK1VYwOac);_$vY1>44$n5ni70H*19{M&GvM+gaM<=tQ_~^5f z`Oms}3i$Ih^Njfkxu=MG%Gy`D-W4{&msosdFO9#bT;3a1cu%4~ywc`CS4GPD56Jaj zQtm>$j(u`UsOa{`SVFRudhfW(Di3_mrFMhd526$oKl4+F=1;ds}76XZMbm z{e4tbYe#{-W=pKnMlzIUW(3j}Z@oF?-FL9+iOb{6TmC+r+nzlq%Ou`9OpzB96V|?3 z{QbCCW9rg|k=0jxW4Go$!rkNyHms$o+}09{d9t5N)1@f?IHpn2Ov5etJ)Y;-zVX2= zual1xBab(|+|*y#5Nm2fRb8X~c1R#{w>9;Z&W8@(Df3F#ak;6>M#*UpZB{DD4yIa} z9yTU_ef)(p;e}4-APzOUvg z8WhFvGi0Y;XFFh)v&(W$=j%wys+?0Nd_~m9L|BjNOqFY`zO-U=x%9a`fx4&q+i$Dd z=05$f?~dl4*G&fu%|dhM-YYeqeFY~o2->L zWyWH|m#caW^G4q1EZTI<^PbMYRkk0I_eG7@D&GFGYrD$IfQhJ7!K4(qia=a)r)1z{ z?T#v=9EIjtrYd(`=ZtSj2P8~oHwM|IB_+R>`t*6H#}c+L?V2u(5g-aGHAu`#=Y zi$>L5F$SHDumEtPPx-Bq3+wpLN7I8POOEb&#v~uKMxgVV?9GZSjU|ExVHp8Z9gm#-?Sq*Fd>V3oKJ~4=V0HD=$}zDd!`WLK zv-JfJ)CcVR$o~A(Nyi>NnP{ge-H~aW$P_u^19xgZ>ubrel*IhfBE#1aX!Lj z6E}{{7tAXnR;zU&Wb8r$P8K|T`mt@F zWE*+lavs;j;$=fSvVx8*s&i|DOy@N|D4wUVY+JLI(RZ(X@}u2fADFwuU#ri}Uhc>9 zJlMI^;cPD(`zIVcHA6z4)1W_X01uDNKUfA2m2E&CDpSF2Cpvh^lgR!QoFP2)Mhc=o z60_66#{;JePnP)L-~$9R3o9!d8#`P2~f7~z_ z0YM?5MT-{0CJdVhx{0Ej*k86Kf7zD)mreY?Y!d(DCiy>Z^!{gKhknOmxwyEwk?usg z4Cxl6X$82IvAd0e695U|?O2!LA0I2{sd~3s@JhZ@|6*D+*Q=Y%J z2dfTN9c(e!Vz5-ORIuN`egn%7mLF^^*jTWpU`@d`fNcP)2v!m7ZLqh&lEIR}j)5Hm zyBzFtuxVh^z~aH;!S;de1FH>I8*C-mO0b8)9tJxHb`C5CT0jTD0rr3ZU3}2f3P7Il6QGY`HprU| z@?(QM*f2bR1i%ak0bIaRfE^G4_<&^q6Cem+fh7R)PZ;0@Bmov+5x@K5$-!RZu80a?)^c4mZ2GD>ipda|VZN5(Pb(ycj zeA(yAjFf4H~5oJ;~dY^*1s;y4IH>RzHcH)jhLqszys%g3Y3C$NnV7s+~@1sr&+fnXhA z64KNljr1#xF5hAUJ{nsj+i})#mI$Q1qyZA}WYgT-SFnGi-Nt7>pA<=V7NCK1o_mY_ zBOPTv9a1)AV+uAip_iQF!YrIeV7~lF*^soi~qK93Ll zPJ=W!%WJn*)Y7ZL{NK?;HNBNAr<*#AQuQpZAwqk#SEaS;&232%@6T^tSKY$5LN&Q}g` zxqlOfl)D39b)B1oS5D^J<5znjWt{>FA>JL0Us#XD(1x6De;mZz4mvV79G6A3sSOF;j|3(aE1)vD%16BYDI0PgC zH-HB~J1_xo!<$bAKpM~jU||jw2Q~l}02!D8%r?X841hC01x^Atfn=Z`m;x5VyS}Rc z6~G-x2c82{fSeZ0n*bhg2K<220OF9N3}^;M0r)_N5d{lH?ffnF1z_AtP z3qT3b2W$W`5CNP6a)1XwAMg!e-UfXJhyzN17GMmR0|bBy90QDC0_E1nV2%O{N z4=`v5V+QyEa2a7RD*-hi05}9B0U1CAupQEffUN=MH-SjF9^oG+fIEq3llx_f|-QC~y|f%FxVApal@Ux(c3C1vu})?+Sz6 z3D^KcAP9&Akhp)he_P<+7WlUX{%wJOTj1Xo__qcAZGnGV;NKSbw*~&G1sa#>NJ|I^ z=-7|*3WPEDGubQQ?8lktP~w<%XiRa;W+0S6nbDXVna1HwYXLJHC6_6eBaFFkkfRZLY(xN%mcepV&3IJP**AdWSct)EFrr;2Husb5N`pNYmA#~z0b zsHUvN!1q{;^o^iz zp&Gt$gzvK$;W*Iss15_&gKCN#{C$k-IMClw4ePP+-4)~5{&i3t-^!}l|~7#Pb?jk5$7|EN|1ZHsCh(1%bR1{(RrOr*@?psP@AzX#S7P~8Zcg_V&; zXD_Tjp*k1zHdN!RFc=q9$AOMSH4Svee0tEx`ZxVtpodXyZw=r1urb0LLCc_8XCJJc zpgI?{6RL4G&{n991Dy_<56a)~fWZ`?TE_$Gf@)-KqY>4}8b&Xwk#&go^Ev^>FleM~ zjfqemc1E5$NwCHO8VNT`fi)mh=bpo0R8g&S9@cA6O}PNhpFtz#8NUMSU#Paf0oNv) zChRt>%b?-7Tv&fX!;y8rC{!cse`k<1P^PO@0HOi-LLGA(NdqA3g=O>l6|D1tM$#bb zhR9DIAsSgPe2r>kE%7s|b3xCc8d*=|;b5e{2wD`?i{HVzAgYn|MMXsOz?$MXEFq)1 z9<&*%`$6MTJqenOXkJ*y`2^qdpjv4H`U}x~(9WQdpISn62k57u`C&m5S+{LQHL`x& zg=%CCcNjDalK_3abOs5Bc7`vwF)W-6O|yeFMO51#fORHRSKR@}=cpC{y&2V%Vpz*V zwGJNE15usp0Q2g6xD)bQ;f(ypDd4jO)dJzLra2!DItkTgE-)9Nx(bfXLp23-C907x zC!f!2GK@)7>wtcbYI|2$M@99xC-f1PQ3fS9n14{+=!L7XGPW(K&{7#enA zoGs9GbR9+yZ&{$b7-?YE!eCx4NI$zk3vki%rysjwfd-FV$a(4EdJIi3!!CxV=V`w{ zgWonJF+Ch{jXJN7Ezr>mH1d;#^J&g6&{r1d`~|vnfv#Mj5%;h2`Lr+4{R{NS0zJM! zPc6{M7s&JZurJVj3$(}ry=;M&S)dgbXtf184*K8>kN_kCFwMd98t{Dpa29}RjQ-gm z6>J(n11wSM2V4izV+=?RF1`%8&4ENBARgf85p)NIztnbPOEeJ)9@U)Bb{h#C*D=C(5NV40(&6lW8_X|cpE0kZ?$q6moZX)!XFWOgd3g{iiQIKl>jGhi|5Qw+g z=<7r2N7@O$R zQz&gi-4~*f^DvF8RWwrzM~pd*puhxdbNfT%=o0EUJWI>EIG zIfLs^Jf1|qEueegaMaHY?o^C(qkB$_J-Et!9PlJY@e!wu=%E-m6B6UJAO<-B28xU) z`@k@rPeEWDOur*S`#HM8oQ4czs0w;sXlq}n#r%o?+=c8I(Rdph4P=5xW@CNj^@t=> zkm?|QCy^%ea&~j^_n~{c{8eWgm?8hXE9fiJXIGPrzg_m?cUkNDxIhW$78zII%$Mwf zIFkhJ=?YaPI{Nz&e-+#Tc^iU$>t+a~zmO3IbNQbEYU_XZEd?NLJ{W{3Xz%(O~3_j$cvwNVaGM@)<$}M*o7{-+N{bJ`SERG|@;i7+&=I;QYQ1 zIAi@4yPN1sgtkWG=zBYeMEG=rh9I}Y->x$kgc_k;j;6EpM;Z&=feNFqqQH>x3UKoQ zkC=EDB8*iZ$N7#7M(?P>cyOcX=?nMiU~tlm+}Yr+gMN5ILiVB_HDN6IKtb_)ypXFM z4<+@dcczVn-$wYT;0d=jKO%hwu{5UN3Y;9w=)2JANdFUpi9YZt3XgXTbbu?C;n*0x zxDbz>Xbb^9dU)Z%!zz7JpeIHy&p!hETz!xk1dn$K48+5yLtpSKN^F5+}W9m$9{qk`kN)W(fz#g+5u}ox$NVOj^!V5wyG`+h*zYGc1xC*+)`?g~^6)L1OU!UWhwv_%Q$f0KEFE ABme*a literal 0 HcmV?d00001