<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="19">
  <Files>
    <MRAA.lua Encoding="Ascii85">=LGZ-,cvT^?3(,o^^v5^hhhvdl9KfL)$IO1lWQ}Aq/L{fYg8sfiImNXA^mmB=dNg,[P4wEAOKQ!))BFK,_{3EB)Yd57K]1+VuAawkH7m{T-;:m8ohe@JXuDYtT_4aCe2Tr!0CJ^D)CXuMVSQK:5W(#hjpE-:UGyHd%UR9vI(_9-uy,8FQR66;CRrfK797Wi[m56=D?-M^)Qv-Kjj1O;dx(iZ1K3M.LErCPjGph^$CP_uK;?T,gY*QGH1ET7fo8@4nVAjb(?SvoL1hQ,m4ei9e50arrIP/bDHE%l^A_wcM$6FI%+cDL-,k(eQ*TGysuoUlVo*w;n$UA+/BH9LFJx]d79nWo;@0ebdo(2bDMs3I$0,r?8j]^H!L{Cs*$f/sEXArWf7YLPcN=,^5OIBjV6K?4RCY[@{HZ)@UZpmR4!48#g4NCrl-M#5v@I04=S$di3[KiP4?3rVL(DIW/E=:x)^WeiN^IB;VTifae{}6^N[b1=z/JomxjS+O)W^hFPdbCUx-rgN,DDaf-?Ddiho4H0.4{1o9je+Or[8u$REOTb]b5$G;?=YONnV]r*icr)I+-%oDS5Q:xi%aqRSCb:W(:CVd[v_#bRhgl%;$v,{U;}^B=KhqAQ_3M=.oM.U$LZ^8YS9wZ%KDmB8Ttl).OCO(JdhRx.oBz0t?y1qNMcbEa=rAZikTbT*NT!E/!}WRotksIGOnDZNjDOEcXyNGT+KIL0fsb/+4@qqM4[hGMEjvc.j(kVyI9.#)%k3iwdWRw1e.UW9J{rvQqz]Z([Odsx7;9+)(IDEqSmb{L)[Cd@]J^THCZiEJR/8lo*z05f2ylSMOh?47TDK]]#.sd$(8h[Gs$*flGrtGC0#lfXoG)IvX?k8n)1N9zR2-n}lJMRoBuSrk=55:sr;.SXPq?Gy=6q@]5HZd^v0n4MG5IK$f0MXI)Hky3*P_A0QJnqdnqra2o3jLuowoH^vg0xd[Hmz)DC!1tSie{Q[MhAdWWkvAY?CA=,Brr@ypMOa:m0Hj0-fKl!ZBKeqFn6e@?nJegbeZTgU/O4cnm%/0#kc:@BfrS!bcgW8#rLyfWn_y6)At88OQYBK7dq4$kg1YQVVVyJ{hU-cQsbqLmozzZnnFp50/F6}x8xr7k/xv{0!OsuIf-{4u99Nt*5ol[)ZKlcMb)FSI]Xs8b;sSi+MV2Xr2BkaHQJ+qHXf$4(2%6ljiPEf/.EP5zkiaYX(y$*wCg7K.7h}Im#oPh_8{Myi:}aaz5qk#Bps[R/C)5cM0!;e[3/%HN##w.(KT#U0OH?E3YxM$s8V;m+0o9,Bd!zVe0/._#A0D5eS#!Syi[Bb4ydA*EsNSBSx9ED.w2uB?,cfrf9bGt!EQu/ofKL@QAbF3b6l}G73jL#??-%ta;Qe?PfZ@QzY)HsL0ij{*J?WWqQ!X@4@NH(1B*=cLp$D:TPi:WMk=8]%hvJq-yZ^Q!Is!)MT8lufU.P3:6dn}D(.wu8nN}/UT,y864mE90kRFopvP!lIG!Gw;:IM/itx/f[fNP+V/F0r8n(Fo]14^EG.hNNemC,W:7_evH^T!9dRJzwB$5z8.;47uu?wLaygc=mW[1L8V@kdJozL}R7()pybZ{pEFdjTF$ZOu^{qsd?PWSw5EYa!Vo$:r[u8@wV:]CU3X.AZnrs+Wh3g/#j[/.fXXuBs;,fzdX8Xsk_;MhNi[.2I6JVyM2Z([HGW0/=9L:sp/-/W]jc=Ixt+#OApv.0XPwEP;E;#f!YDE[ktN/q53Yn-gilyB$JjyaZ)fu9$SIz,N-.LXCV+$8}G3dwlCkTSAK_u++9Hb_I-6uby4Je2x_RahPh7/_Z!1piO5k3=y0(-FlK(StVfmn/jxKhv.x6:g_Uwf80b[,FW;:dR$lBT-$!U5;IF^S)nX*j#D[SQFazx*Y49a!?F50NIk3ps.a1jfC7IxN9BMU-_-LEqvSzl:%nE^MW7{qs2$M1Z@g!5q,@NCHJz=9M2JB(H%mv8uq]CT-sh#+16]SOxl?Z4$smIhhO?D!uB[Rk0#NA!KbAmx%$z2v8@q72779I%IE{1uB(EOb@yv.]yVE@vCz721m%1CZuCDCa,UF[gVIFf9KD(4mHQ=d[P7s$/8/{#1]*MTyl7qmIN,dG:bpI:td*j=bH:#9K_GB2XM5#y-=%MtP]^1zMcRl+m22/]+9pSdp@NfEA,Zh5+G;.foFon0:5wBGwX)yh@O)/9!j@gyg;a/DDLHDHbIa4oev8lj3=$A!E.da0QUd:s8il.9=ri_CprVGm5Mh@teK=,w!fWR@63*0b}rz8L?J)AufDGl2mdX[*RiTR]ygwbxmX$Sv6pK1Wlc:S])VgK0d]mDLdIjU2+KVgbQLmx=*YdFDd8TYtn2Gh0(k+/hv$t:,I?PAj@Le?0]L{xqAUf-y_BZ0-Bv^/;Pa,4}ll9R+3.bI+#[[vf29%()bEcE?s(;N6p:qq}n.]kjFlXPryzzGB-m9Y[URIJw@SXjl:q7;NbCp^K@eN_3ne@:JgDtQeem(AYi%dlY;che)D^R=?n1y*jpt%UB^@Jja0i2BP%^k7-IWv5U+E2)!?Fc7QjG{o%u0@mKhC*d[xR]^G)=S?79WN$jL@i@j??ctsOi1R:zriYG(t5y=G2x,AYdCOC1cD4%bs4xE-Twe9rVyT!oP}W]ir4X5^Xxu;_!f4u$.xBwWXS1L3Fl6pexe6wTK+P.5B.Kscck;J,s!o!eWm@UltXUUvBE0V.msS;@HD){fz:WbAAX64wC^a9X!cUz(A/jawR$JLfw$/Z!+v1%fWLwQBS1JG_PzO;QZ}$nUuhwvPr2?Hk9mj;PdA(jUrVY{IMG3:z*vERFx1OoKS4g7tsnKNsqp)t(TeA.*Q3$]zLfqXlq#0T1(Ri]tyYhVB4c*G{]i#wjidK1Y0Jm{g!CDwYDCZV^Tayb^G]ROtRw3=S]hE[=Aa6mCfJXcRmEc=Z=q0b^s0}ZL1Cs];TtBUz)NR76CwuTo,quM1aR*#NXl3{T(#L}]5wtISEEl][rfpflguw}aogz[mygRbXq$hfb.aqlk*wjkoW3[iFB5a3hQ6@QSw%uTzy$]}DFBtmw]1Y+a6yj@q6(paMfi9^;kf$%AVHgtOR!eKL)=:)ChlkIT]Q{95P3B{s85G!Z?sHLop2c,*C07xMF26q+VSt+_3u*[WkQ1(^aKi-+Gk.n1;}OmzA*@s@;g21rrfV!h/FuPh+md^!AeeNlC?n,Q4Uc^z5EwT]f2W}t_MZo^]?!t{AiOs}MF8dxivlV}B_T-Msb;FpE9*vS7C.CM)hN%s.Xr_pDYiejBZPaF.BbPA2R/H.whg(E/)Z3LQyBTGy*h!nay[q=5}UL]*WGk1t[pT$MNv99LG;6F7Y6qN@ioqe;AK94b(]Xixtjf?t$y/d?WGll-KOydIbdPcrr#znqs59mO+ZvBD/F1+04uTJB9Y@8ROsGgkOBO/41:um3+2%{svHPO(KC)erN4KDkcuISN*ZFUoIRL:CxF:hoTm#QTqJ3?M)PIRe_+Z@m[B,W-$fk}U8V/LC+sW=2jlYvJ1VjQ7HsF:d@3h0m)l,JXEpSNNZ%ANfJt;7+6}i93gdFwV#K{B1%bLU,P%ME0^!zd,/8?S@QcZVuy5Eep#srevDw!T_LNm0dHCDFeCfbk$vL!baMK+uC6]u8RWO,[K_wHur*L*pqTM!s#V:U*zf_?;lpR*8bP.=5Z^JnLrc40lA-o(_Nm(x$qbUM@K/vc@nhG8/+?xh3cs$zFO_cFpggMQl;LU1Wc$B:KOcnLCph8nm(SdLKie8bfUr}w-]0T-oYalZJjG$8vzT%Lg*:d6gg^qEa6@p$1RV/?v5z)cPju?IAXyuP-lEwA(sEN=kHTUXO:npLXU:6@q8bQW6-0F}N!d!qs+WR*frb^F;Gi,(Vf=M-D*l5{yCCdQwzYjtgs1fcF+3^}G_EhLcS!#su-5zjVYeTYQyML,O^tT:Ag+N,Ui+1?^=$Zi7o]Ba+._AP3a6OsN*pGu%Dr/JKN-o$uZQu!e%b.;mrOgH7Nft?WmL$R_4X@;vI%![kUq5]7HbWl%^rVwJkq1-ex^O2NoYtusI3s5u:t.DM7V*87@96T9YpuuW5]eg#w5klTj.GQtO}0O3rq-F,xG4k^)!KeU13=B3kmQAvHp#lSGDCo6z[y{pmr)GEANptoDu..N*6zt;sfqKkN[=NtSt{GVc=ZrX:u4=.mSW/Us+xv%]]^{KNPXM3pcYLfP0U#dtD]VT@}Im,CQ#8]NOxE=@fVSpx%stNH1z)NEZQ4V,N@gileC#Fxn.QZl3k+)ch6hFV3wzN#!czch=6-ME(x![H+Hoc#,!rI8Mb}kR,q@l#YhiM6DK,G9dZNi/3]5*?1y$kRa8Djz]wtEhgxl)I4?tl]QgQ?7q8#Fcy11JT=().H#x.j,^amQmQ,K1MJ/5=H@K)pPCSKl7]Qx{)%{$;5.ZVTp5S!_2+9)Wo6RC]82MzFAHvrnGgO7*%vD}U8!{nsN+B)xLY#o7jWQBMU$^UYKC1[gdkU/,whIUVgjl8oH-p:*U9Hk4U++MFZjA3@BVHzyq1V{o1OrL=GaNH;eg;xmO;c8.07^5JwP=q]J8^WDsTOLZ(x{C{Fn+Z8;]y9^HxEI##lnrmLco9AM2-I@e3]ZIp{rb#Keu#Zn1{}@f6oK=*PM9K!Q?iP%[3=N9g9c,UDjgH#(Gn82C15yAiNzNkhqk0dfrsS72C3gEj%-_MP.2vuzukA]mDZK0_}UdhPD@{YhXU4JoM*V/hi/cT?w,CEQji5+Eq5PmFFp/zc5UoJXyPV,54Nzwm#3zvM4nJnqPz#vA,88@@eYQ0dC9V^^fNR]ZyMz-A21+U}U[/nX-Mo6Wbs^QK8d}Q}O:/m#BJ2?lzkaHF^E=mA*jZ$}6X_3T.;n84[S04Q)-uf=5^2J777qA]7)zGU(s+zrT6$.rQL#m#?FuS/^i^C}Wm,tmNFVuWsKUUW-%qqaT{_sc{.ivH=RzhJ4AsSA+E}j=a!pxcf=)_7xeRJFE?L7!IqCxba1)1l.^]zID]oklK^k@TT@Clk._X*/e%_B*17=faQt8v4]iG4qUIV?6wbCZF#0_Dw.ns3_!9c*?9hs4MSDx*1NxXouR=_:jo!6yRux{wp^Q.sun%;?;gUg7kN]h,l02]go(BI1s4X4Va*d*dO9JuuRx7*t!54RV6VQvSMSvT]q/g4+;h.,7,MKnDIr[+^Q-lby=Vgcr-+CCh,s]qdJc0_S2hKm4*sZ-u(9gEWI-[pK:.@X#.#WTj4gUSY*31Xvs#OA?bxj[(OyXRj=46O20gTyAB.$=7{pb[RPK]Emv4QVrL%bl#;uZe!_S!oj?TyS;KmAVdmYS$;DX*UZc?aYURZqM%,$Q4TQ-:4.j[0{42xKFuJLaeAdMX$KB%3VocET%#ha_mQndH,Q..{k=^D}fAQs2c-mw+q?vR/Vy7fyN7B$f2)i%po=;4R[OM;m}kn(lQ)/=W?FO!={7syTepC}uT-O0a@?YpL-BNQd^CNdcGB^8}/][OA_ii,{tiz/dS/9TP/R#F6jFM4O@vxlL%8Y[*x-/ZJ%gJw}1KAVJG.=Y%{?^v*QB/HiK,B*7l-@Vb4IOJq=n^R#BMb!*]oTmJN[7tZ!86uXWU(DJAb/5^0pR4k?wR*iAu+KXA9Y.?}MqmGm:t)ix2:-cI!5iC?F*eTzJY,omY_JjNdQ$*UlK#b5?q-mdr*d[$H15gSbul/M*G_3d+Xu6tlt=Z.HgFCOVB,jRYw}2-F1u9#Ww_2}gW%j1M2OC?V+VqU0^xPY].!g]vJ0;^fzx#/M/b1rUI.{6lp478baMsNf55sIm$To#f8mtXmf/MIJ5s=(XQm-cx(AnqsgZRTNG4fG3:cx?I,Dz:o^K^PDnyP53D7JEW[NDmpsIuQcW#SV@TEM@mdPQj1.JQz*Kq-!.I33A9#bEg]bbWtM:k059JtiUv[N(oE:o,Ao3}:[$Tc!dcAs}aB.8!Q^WTf@_MjzpTF,@Y@z[-Zo=Rihb-fha;KB8qO{0{{3[-ZnX9cZr+^=(R(JoO25OWzQru4dBzXP_dy(1J1a*NuT[2YqI7[{Lxf@pg?BKpNMab1iDtSguG;{HaxmtX=KES81zwc[Wtd%!w3Mr@06VWX1(XcQXCMx8b0Zh{k/6Ey3Gw-4i)ALSetWmB@;HxF^-M=EW$tQ}#}TvyAW!Y@$!e?4.#P-Y2IDcaFpK+oM5%!89O2Q9,rz(BRJe(XtzD8%$nkI7F!FaM%ll_lY3H:T,v3Tt}CMAFdx3]r9Ps#I)PXnKHZ3re(+59pY7TZ[tRt3WpjdJ[udx*h!nPe+LC[n=5fCz2@UqxU==^xe5UZYguF;f@V22/%b+hep91hwr2M-*0/s1+z8#R[?MHB}Q$[3TJ](JU:d%j6Yyj?%VhPcsPDIW-]l1zX1h9K.*IadOL)FSya^uuPeDvFUGw!?^^reg]1{!wVQz=sOpOD67qIF@_@zxp6G[wcS$8L/d2]U25vZGDOUke*;#F{;/xbCRJR.T,UYnWKmD$foaCuvJ:ZDF+MXyvJn1iFZe4tz#tE@#N@-ZGdx/L*!As5v[@/O3Mj5{.bFcd@F]?TwpM#d=j?6w6h8:55m@)A64P9=EvOltQahPSr+^dkuMA=xTmcu-Lab5y/pqQ8NS6Lpq7BxrqpzDr}8tjfE!*sDutfcZ+_60L^hT1G;jloSUaJpZw=agv_^kHdxgjDU}A^5h)_H2P#H;}iwaV(DR][2o/n@CsrwKX)hoA$aNd{LdXwq,Z2rw9F$3dqrNU*w^Pn^-(SvMNfpK/0=N1)Bkoj+QrO^c3s]i_eoW:B0M$)uu=h4d5gPG:D6rwYY=ZPTb-9u*Xr:#BS:tcQcnmf{J]E?iHd#mN^a(U,s#cr$:hkf6cd3ZlL_WLHz7J^(fjE$6#0o-kelF3lSUu7azODKO!$hqLeIW6ZX+4uczUobwU)-n*IAlw(BnD8@D8oAj^0r)xQQ$41.]hS];9MM8RO^aNN=4L#T+o0^S}%s,g#X8F[+f#N+;v5xD8O^D-6H-v2])8G,xNB;MeF+noA(mq#58glr%Ta)!BCfc5i*@Mc=d*QG4xZb;5ScyMHCWE=C#5rg7/Ncm,#cM*11@]K9Ip=sxrAIh@3#AJ^-7kmRcY}K[h49I]iGwxfEIp+g%Tfz**7!Pq[eav?kJw8JZ5b;xAFgfNlLOty*vLY9Xuu*fWsdn0s4K!jM;!NSnWDtAxMA-/J]1i@fHQfZ=Z8{$:)UlqIFy6(*2iR$(LHZEz)r#u}Dgv:YiJ#[iat@=0hZNPWpWF9^z$fR4quQkm$#k6p(1qd]c%e(=ZPvNS2?(K#rJfPPp!Q$WxH*xbkNG?+5.%^jk.$X,^-g0dstsIuh_ZZ[;-!]/ImJ.%L4sP{P%Wr5eRMAs7fwwdjrGQ(IIUO:zwne)9Us.UpoXpmgEx#jir3zIE3mQ[QbIJQjK=51PRH9=.v7X*/#M@bPYRh]8lk/Th?by:xo,V)/m!j]6DUqG-t)Ykf)d;EhPkOCAifSRU!@()J^@x4yokDgcywh{dPZUB/K]ku0)V{cr$%zd-V{ApX*6n0)W*uRqlC8p,3^(^[A-AL*vISwg-ZXBuB1Tf4ctHGM.Y]gP@xdaw*cR9mWWXlmuo-U]Y*Sg^St-Kf/y[9(kure_Avv,.OCfBgug]z3ySzW@aaB]i(C1dLpt[PnggFgp?i]H%BH)Fsi8-G9nOo(I=:Nui9twFPx:CM0tTR_ii?F+hJ=)z]leN/i_CJ4Vq${K[3@*Amvp-cNEElVU/R6}YK%IUZnmXV!M}*+nJvNibC^)kc;qpsmV$(Z1mgm:t:{dkFo3.HqWH%:yWnR.ju#d9rt[$)gSy7k49]HxGkhSC^UNHGBT@)Bywlz;prrK%h}B(8ya9:XFVE8_Au$VRy5lE-Wzt3Qwm3VcK%i]+1My?2e2zUL==6d#oyS#Qo)6vR-$dZ@Hjjna54((^[q7qow!8TcKqiPSJbK2%l_7y(u%Wm;TVvmrI7g0J(8.=tPy=F[L9XAq1Mf$1Ec=j6]#6L)Xb=k:apDHnv:#75^gE_tt/qP}Ikyl2:/[xg5$*4#9BR3k?YZ]BmDP$..i7[Pw/lC4wD*M-(3*X3E(UukmW;tpKOmwnNnw#MNUvm.ahnpsw0,0M,.kKt3P3^)JnGIgdFRngU:N=n*uW*n)_wMK=sK%4cX6p8(8ZLcR]y;^0csrzPaJfR,FSH/OF37@oB7K(Z5()w8Co{[Oi?6w3dB46S;Nk]=_n)P@[FOCw?sqV@ZE}73sA}[b,13f,YZzj4)AcZg[4+p77LY*X=PjnK$5a3YM(m;du4Fa.Mbvc]3)lXNbk![R-Aq3;#:hnA/:JCX@+g!StND,3jReWNv*/Hku%vJ.:]UZ8PkvB$v6veZH)?:UT(m.iFO_])P-:H:-t+n%L=EMiYi+,a[O0uRA3*/M0#JREeh@PFZ+t?D6+QJ*f;uzT=#l5(h_,vFE-Y1){8Mz])9%V//(-?OT_S+EA)fdFrZ{9WVSYZ%zYlLz/=BjY/G%qdB[PSj0cVcvEw!BJ8yf{:8[.%XQr-bd,x1{]57lkgYGAFddR*k)MYUkFE8DN%N_Z9V2a$xWe+-q?oA1vS68jtLFXuK*}uoZUAC?IMB1Pzz}vVHnTDR!G1n4cT=U);d:K##ND[.*4E]9:Zc*=.c#H3)7AP)wKZw8bSb]Q2:gVW;gpH1W:57[or?rt98:vqznK)SfV//fEnW,#f@#2W=zx1s)..!_MuxrUs(6+b,=49p;^%APci#},/$r)^2jdl08Z1Y+lPNwZ)=?^dBclI9sZNQ*(^]2JWmoHT)/57Aa6@1]%C8nL^S87?d:8_.hk_lynIa0:CCS@Ve1Mzn;H43JpU;f=qd)YM8vEaU]?WsLliZBoYy=s@0n,%j/,X;yq,$BgedrhDQ]$9n_s_!Lnde$0tKPElJ55j.Wuv0_k)o(9)%07zsUC(N[ryIb(:u%5F7F3)d2K0JxR9#x{!O_Ca1.2q%[;GCQE^$%Z]5[^8rQu.J%=/9,1$:#]8/wtKkn/Buv5p9x[Ut8V]bnw:w=6gn=fJ/$EKX?-95@-[v40XxeH-I7rM^QLnr(h2qTkC_Ab0dQg+xbw!Ax5jb9CE:chr=e!XT5M1gK_PNyrIQMXPYf#W%h8qMNz)beh96[M5i$g[p9bc3Cy:9^v^pF9n9=s}MKcE1UP.gKj$e5bk;{![HIJ7mTA:jNmV})%b:B(=bzWn4f^E7ngNoO3!6rAT79nef4(?tO@j3WL+NrgeB+:JUzZx(x:eO($YTNPaIdqTIQ^$./iv]-n7kn7;=T;n,jKk?,M^]uk79RU4D?EZ)Yd@HM2%1=A%}7^DnNltCz=Fa5f6#CMO:O#e2YCf}22ddLmTYAD:G[37(73Q9s-[2Hd([A5/0i@n:5.Wtzqg^R7j4L?}s}u($;fHzLxV8@]kS=O?CXuM1o%fH5rjag{:DnWv)]w[@/m0Vzbm3K!iT[sWXC3Q?WC[CZ]j3AnzbI/{/CiX?16VG$Z}lJk4sW9!X6;{+[Pg!dS2HH!f}!juH}Lx/kl0[-N1.9oKTTlV3++*qJk=k0NKFB)F7btaB?,2ab?VVI64-o1zLG)Mk/@@;4j:Kw$A.-t?+e=-!3Ie[t{vldt48s6Q;)U:S@plN!09XDXghy_7#AbNy*M])BA+UxC%+,.JnN-JLhG7XLVUdQ:{jQ(XXQTL?rrtISkiu/!7)L(:eVeOB+=}2E=Y8YfIs}U{aVCVJXc3P3}%=FBj1SlkF+n]!y]cwJwGwpt{Ht$;3Z-pG3WW[wnaF1m%9QeMja]9BpH^MTq:d:6xr#$_MH/EE/=KzsOpgRlZa;r8nbjbNPo(Rg/d[oB/]Azr#ru%:;^lDq^e?Wes!YR%@!x,iC.Nj!3+wJNprx=F3-pqY1L9=[}BBKHL@Zx</MRAA.lua>
    <monojunk160117.lua Encoding="Ascii85">/$djT,sLut^i}dlcfin5K#ZCk)UZ);WJ9)[[RRHOduGnqIVb1Pv/=V?5-b8;0FaWduk.A{I^SKCAN;uG[9Qp@XPt:%@hb4db#,yBb#;$a^O@DJx8MJc_CcX:i.EZ8GB2}mn[pj7mk*7UZ=d4h%F19g3Ko/V%vV*/jpYNccn{9zp0l7)vI??DNqQY%MlxSzV_uIVK;aQ@W!mOdIUJA2QJuA$x)q(+ag)jGv;k=zLV,3h:RPYJ2JBx.f{p?_N)GRgOu-k}D!I!R:gDgIJ:gejZ+tE!b*A+%n[s#ADp[F[*SL3n-5EXqQfI?W7D1WaG.Pvm5f%;(1cYqo-+Y_#TqjrviWK$u7kcJgAh.=Y#7w+)DHpQ+LtN%7;wWwpYtlMjBRVHV)xz9#!H2]=@uyt7HaeUQBD=H*wJF:v35@^$rjRMJd=AXgy/2C5)5n^$^:S3P)MVio=b%^cXHD{uZ]xs]ssg66O1y2*Hf=p+G,6/)uXiEXZ05tq.(Jp4hhK%nK=,u(K#l)Lm%r##7,;VE;@5C)7Foc60xajEpNKgSvZq1d!-YeT:Ii*$VE16o6tzhb@g!wdkNug5c^CmawX6(afAzQoM$F?5VGqS/5-cjyD*%M5%2x}B,%%t:0*Q@%!tewSF%23}T8#o^..4E334n=Wy{e4;9KkC/b_EORdJTM6L#OmCjAT)^]7N,yuuN7;hFyzHU8_$_Q9d_xw09O(z+KUYyal!wL9/EIEL(u%1,KeDpmA@RPKj4%EQly4NK!KbKrp1taFIlD9FklJ9n$cqJX$1TB6;%Ipo%55%.E):!H]%zr,3H)CUORf,FfF@s=Q.f72_[YBbeS^xhdvZ9d@dc428r1:A%#q@6B#;BhWJjX.rMN2Cx+DQ6L5FGS(j-a,fe)4ln67qWP)zSLK[m[%%yGD!#nU)hbNj/TKewH]lOOj_@25bfv9JP7*yd#Id1-#N5u6l!-j#ff+I^J./Bf4*+:5,t(^O?_liUGlFon.qK}]+S[05Gv:DFO5iCRMSF[1VvW77Gbr(cFQ8N.NLvq0$#)pzg!*?34qUI(elDpziU(oPwussSrD9uGcOXWVLpg:kFxl4QGKxA3s=h_MqqXQzGpA9k-5RUvl4Ju?P_X@rcR)nqR?G$ongM=Qbngw@mrr4xRn%B#)]5A]X%i.^gjKX-*[-2e5qhfljxsSoP)=sAO@!ge(0.pWJfiF+K5+jC/y+x[S@yynpdtyDLEZ#5]{:IP[M_V7YDc$].d}a$K+8uv$kwskMDQDzx7k/EiGDV*aNR9K0bQLK8za_/+d@BYdALvLMtkV]Lz1sHb?u-yRUiJ[sH$oDB13)?g.?/V7$zQ.LA$h.[KG!-Ceb!xu!0t)zyF.N_ICIir.ZDsA$1y^W/L+q]Afbg4a_%n!C%JODAkIYlx/+vlT}^Z@yP5L3L2](.q::+ze]uyd9_u*%@{j1PDGkI,#@]%u(Fc:kCFuJB,Z5i+,U+125E_-CrwcxQ3,!z82k/YIDDSwi)8Q+YGrjp^0Vd:RJoK!1n?Kl8]^PxGz3/#s;,xEGyswZhXGbN3MRoE@xJjEN)uti4649%iWO(:;=vExg[tghDpx7}N=5L+()1DZo8)uj9$RaT-}W!0SF1s5;AH7C9Q:kQ?#b=(Vl0Xi7mCmis,j+,B}255x*-pVEAaP4RU}.Ck0#/Ln8xv@zm_D;[p-c%-eTf3l/U5])fQk{q,W,JFPSR5rNt5D-CN7.tghcwW%X0l^,cC:J3u5X.5^g-7J3RPVUOjS73:oy9rkJ1M#K:..v(dPu!C,{)IS7g*9V;g8%IZytlhB}d3V05N)9B{+m))b;jG@M:,+_:7()87RJ=7Cn!atv7w[J?eDm].W#_]OKqCN_ZIKlf2m(QJagD{uKJsjg1p,umjsr5aV0BfS7MU.EtXg^;EmM(qFFK7,m)q=9RWnYRRk4a(0[0:ru*XF$kPfRXscrF23EEZR3U_m)Vp/(WZ1kG{LZe!8*2E3ZIZI8Xem^B@,1zoM]!H{Z@$rYJs0t7+gcqmBM98girl7bu4Yt$CjPcwGs*YGMF%b{4Qrm+H4Xp0?i$?=HE#v];Kw/+_Xc34tn(B_mNfbG;f)p}eGr_ZTzn%3tCjx}Xz:l!,^:a]2s7KN2Fbja.R)vbApm32V@a^3b.l8f3=JuuhK$FL:O?mVuCos:ON03,7LQ.Ub]#OP2S6KE1n8hGzQFv9gvA1!]S0tXG8jDKxeC,5#%@c3!1w=nUkj@_i1Eg7jZZ;H6B7:z{#ZsO%L)=]EGSqp5ucya7t@)A52)RlYNU#yib6hr?mum!I#qp_0F0(u%N,EJLOp3@[QR+5w7RP!QWm06r,%AhUdyHawS^5^(k_ItDkr#1Zh[Z.w.?%V/jn.Kuw!@XzVK6!kLSe!3JXN,hrAAQlJDmoanbtun[A.ujDuuDdr!eb15M!XyL,sSq3sCATtGZp1+#WH)e!{9^U+Im$93krg7oa9*[J4=B9DZJBWw!XGuF_Y(UcDGbHj=UB5j)82CTsKZGBl)%%8T$PeH+zV;;ATl2dRKPI:}z-IO].?o1vyi1j92LA%n]9V2[q@^{EeB))GVUho;B)O7pC7ITNSUIbsO(2[abQX*LwI!A65ZnVvR*38+5gk5-9NHAV$,8vL,Xt$xCpkfxF2F)WuC7Xdq+10zaAou:gusp@(*CnygJSqfyo@N$BNEk+b_6m{h$b()6ymY}Rks/2.+Gq4nZ8IQxS!tof2K@1A9U^:($t8@:TO4B$@MS:oAq-C6z[x/([xHB:$O0mDs.hU.PEuWOZw{Fyi!Bw(a9uFF%JdIR/!s@,x([mc!;F$!Wi]Qqm.lS$Gdq!+Z(0Ej;m()PRa?_!tOlLNThvmOm,kt5e%QMeFhJikXfo]j(h4Hu=LWM^=j:K8L)Rqxqt=,DZr(Jx,nUdLA.wFu4c0MY_NO(5/1DQ/t]Uunx8E@(jk*ft)!k%XusYZL:BrywTTd8k]Ds^mX9%7!Gb^YbA+#gB/-41.#MR-JwKI:Ny!.jd%$l4@mvWU6J:9_llG%3Hwr6pK-Hs.1=F?6}ABLG@%3cjzaDsQ_^-cwCLnPY2HwYs5g*^X()Pot4CKK?tUzABg1)CgKYS(Q@_leJg4*rXR.C]FTBmI9z8kmPz(p(Ss}s%6!1N?7*+7Y)dUaCD%g.X8bjrZ_iEs#xc%;.luP#Snj7!xZf[fY,s1PTmpB;vh}QDj*OKvceQ0tiDM_P[AD:NIFCQIIR{hMbjpAdt[eo_IGRYk_X6bF_g%be5V]Z)v}?H]EZKlIzxgF3!XehF})PKKf7o_ODdaleQ!:-Y+_?8R!-(uO/AgRvZ]*yGvMSBcRa*C2QfPejRWu_D$vj;X7P:,FNhwZW^RmDYH}Uv]U$Mn]{=kgl5zPvS{RmmrT-lp]a4y^n!6V*3s9Mw64qj#t*^k#bhpvgqh.Jg3c,TorR#Mxi$8tBbs=/FTs(:q;=2U{,A)qD#@ScSuV^QT]QJBLY-X+gc!dMA@:c8KFne-dyTZ@QRv(?7,v$}j-fOK4P6r_vAH_h0mBk/*2vfgfUNDl%U,U,QBW:HecVD3gvfF+r*G}jwJF-+tD1g:++.=.o*K=9=g]cQ%k7rgV=;l6KA%-S*ELw;5Wr0rs@S.kG;a+}WTV,MRfMMI44!uUBeCZ}#x312LYMa3lJ(!z,at%k.j7G$VmOSB/T,fivNMWusVM@HUX%-OLt!YV]@eRiQ-:e4=]wWa,Bk85oD3onGE?/VT9OWHVE_)hQm7VArh}R9Cr0}L22o(MhH*y@jREwVJ*SZ!z43O_5Z:UgFxsJLs7OYw:Q94VUE%@r/9OtH*#muK.$Sx9=dO;jbco7@n1I3m=vT5Ya5N?3rAg#)2Dg)X4[hlIMZ{ww1XMMgfrZCb9#6huXT358DVj*m1ka+XDL)SL2!@PLp@qa#]Fnb2iBmF%6fDea?,1LCu8%0q34^k8c3p9lMU;fR?Wf?qBE_pGCgQtg$@:BaTj87x.ys)}_D2f!(9xAAH[,WBEz$6=A0(AOzgls5D5q^uqA1.o/NXNPr$qMI95u^0z3F5i^jEcP6Cac@U5u$AzhJyZcuu=Cy?.zB*/uH.aQ0kaE;.PUkB@F*?8a{5*qZG9,X[SGa!^aZaL*zVdLRTmbA{(C9Y4TO+[6g{^!behPI?45{rXX?BzFALvYD%EYp3H393E?8U!Cmy)X.Oor,j{s86_qzu3s)_,WZQ:uy{q7#LcoX^%mf[+Q(qA=6ZLrxoKDCp6Hg6v*a9-fti]tPUcP/z;ZczEeU3Un656#!iWiK7@P}+hfUpg,,x03;TbkwxjAM2JG=BwdgaFcj-TpZ0F,m,e6k0Nb$L;Cjaa]GY2SagjI}(uofH?DRi#NLuA0Ict.s5+[i9uBb-2{p{uV1vlAbh(k=[yJ_NhPJCuoTg=;ox/1lA7qc;DNRBR:6g$rOZsS5YQLtbC-1c0PRjrkZ=%E;@5*O)DUDs@R8(5LUn[{ng+BFJ.7,(#S-Ao4w;;=D)YWJkSlP5[Wi[YwWjG.Xjl-?J#{3(3aNIoBSOwnbBkNYgq{nl3sv[3+7fxr?*lI.7=rBc=cOG{(IYAzHM^L:*sk:U@j]t,]1LjR[5@X+cHL$j%d_IXpE2t=oQU1@fOS[Tntl7%,{,jlzI}On.}X}rMB0yo6rb0%KbmqwcmIy9wm!p3/#}3G?d7lie-=dBZ*o]r8iwjRURty2q@f/)BI#P70:WESXFyLmM5$y=uP*5e#6S;oJxmxfBwYKyRl/.c4ENrIP?SF?1aS8/!7oUw)*.{mPHEidB^].i2%=C7ql=orzYVZ+:Ge]/*udyFf1xREDFw4Gpte08=)^${G;o_ajN_RVo-N4lc{o7NQY3AQew%}7sdC[KFj()B;B9C9g@P?/Wn:H);Lhd+Bg7x[Y[)_6feSNKs;pryWe2GoAi=[@mcas5Qe*;GNHAu24p2lKnBkeDorz/6EP8#p2dt)KERRD]7=.C:J:F8gP72eL]Y7Z3hvf1RG-nTtRZqCjACzAju;xT8CsrWMfgC#/Bl(_6um%Bv2MtH(tG%g)@5HsOUPU[F%=mvpO;{Ktj}]BBX*WurirA)p+?MrL!?xMUh:R+,+%LFb47rdqQDnFon*_V$PG$LU.7(=rL8%@oUM]!gl=+RJ65R+ZY:y!-Xn5?fM[A6vHDeaI/3}@Y%YW@V-0qb4;.(AQst*:!*qx^^0p,.cHJyjjHplp,6#rn+(b]O-T+y.T,yPrV9eBzKt69?WLjzclMf.^,7II%j65Jb^ao)I*Wz%+=M_WeKf;=@NIoEBc@felqt_c8Fj+h/tGx}3#r}m?.2RtmXU)tA6,6+F;PlyMz[dZ0Ly?*is5HVQvwZ5aRd}aL%KhT!T)d6JVY_S3C16y=_RD6![v)e-v1S[p71*i[jYo+ZvoS1(hayZOGlq2u-+]/HnmUG#A$GrTEfZ*2w(WO;;mS33VtbKOOgQ{c$rCVhrwi,o^1b5]k-rY73#2AVI.=G1S/KAi4Jz.M:$[-3dT](+v24/.UC1(4^LP:/_8C0eQp.{dKYKN$b@sFe#){Z}^)!6/Twj6Y9-_gAY-?i=ha?gDzBB_zLT}{=Ewh[COuCrjZNdj3Y+fbmDC6Y#GXY$CK%]q6Bsvz3Xbnok3^KDJQ[4HU/hqXDL.cX@^9L,k!d3cBGTmesz2TxJ;x$@[r/:NSJu@6VsLM-u52]DygWSj}d7kmEiFVFwOj=k9V9{8nR0R{V[[K6qXHqW#=RhtyhA{qqQ,Bt-HUKIt5J7S?GC-.MK=;)]}Vj1Y!kgyCRG1!ze2teC*R/G^330zhhV3u(R0s!RR9;*OKO$fIMqwA[]8SjTxAFOb4drs}lmg(7mGRp,{LK,=Xw-TvqQaI.ouu#t[sLx/Y^N!?P9?@BI49fO6Y1fIkf6s2aQ5^#:EjfMFs5+K^gs6r}Gy7mTy=u-FX(@/8f#m775ds.Nk=Xm{^XVY2lI!W?I_oi29z)wr(}CV:%:x0TfbXiGDAr?xh]DzHiriI7koJaQl5/nVE6?FS/?wY2,wb?ZR,99KDq-?S/6ms6)nVkwrcJgUHrZ,@-oE?rWVdadI0IITM(yDI1cO-!_4nE=/n^@b=m9Z7%s@}_;5eU-%((2Cr:G:;gB#)w$d4dzG;JU7ETM%fLwh!NoFFv:(1dl@$q*0pHXC9Jp(Z?!FZop]xbx7Bc}z}lq.y9_M*:lI4]/Y#rx!aIJCv}%C,4E3SV,Oo#3d?w]Dz;pwMTh#m4iq}SOppXjv]%P)Jp{:;g@WXc@dPMl5tM*Zkk.y)cB4Sz%=iy:,MG[4[,p(f-wnfR1CutN$pVfJ:8SCts[8,z{-L()Kx0:A7;{a;[/LpZ-:GmlQx+-AGDFsF_R9Qsm7N}UKv..($E+([z!*j6G0lH@rzO8IK*@_F[2I{[-jCqk%dL+[![0MW0$jp1g#Ae4F:v@;1$BebG%lb,.x20rXhzE-ln@0N6R9WCMMrS]?/SK4fTzZZepJ(,1kmp(fn2d8B_387ciuqo{bItRdu}tt0RTPhLO.s,^Ik;(0OYS@H=uD;nt^hR:EN3lxA(5vbqBNjQyz@m3Z%ra#EpC^wXyWt.b.F@6Cm62q9@nFo#!jYg9#.m,MVSp[Pf$u[vL}E5[2,R#8*?cpU;pN1-LnhC4iIBOXeipr{)B]1IBA?b*PBhW5y/[?{E_u{B;*v:!}#W,W(910j=TeSu(X=+6YX3!q3px}JV1[F:bn(X+4OOXTCnU]K3(!^G6s4Z}v8F:Stjm#eC)hr=_!vN)KB,UC0]]o]4phsOy:Xy,mf!pNL24:e(r58pbGVe5zpj53!VX7O6r)t41]z;Pv%@9;knqr:qKvWfBdnbpADkDQ/1,H^^c[SA*.MNHrai8r?4H0QU/Z8+Pu3WSi4%G206foeFnn*9,S?U_!0e4gty,On/,U[,5Ngk.ns^IAgRbk=qY62#w9g#jN3v;Q/YX-i77dl{iME}R.dY$=%?1}acdlEwF6d@E3F(etY_h6=aUcC!:_CaKe}]0Ot[wM=vbiCsnrL/0=(Z3!G6Q6LITHKRPZ9R77C3nbVh%rb}c*{o[:Fh8QiuJo}ReDLT@mF?mQ886OIYgtDINx4Ttq$9pm*gBQh[d(69hMe40]x*jgW/Nc=ogBkIH{(+b3_=[C3Sj]ln6RwJU4KUm!n*y;#{MNqFrpmZp@p*7aPay]6%jg5(oWVqWwj_WNTr=,C4Wma0*c#]m{B1AaZk]*]iN$ZV-L?vKIGvMT[fsLD_Vcu3gCdk-jO7n.U8zGaln,{+M{H^,_kF8I@3r}lD;T6od*)TZ7$4n5N6J35/KZYKkUi^z5:N{B6:tXm_oJTeTct*^)P:,g]Hh!nbL=RRrGCudC0Y;gMW}lz_wFfM.N,-0G({vEHSrA6E[(r3QK?CjiSKe2j##ToD8[].N(SW79C1Z2q83o$ZHemm-fVdqKzOqx+G}i7FmxpjdslDde[RXUxrFY+I@=L^{#P32LgLpM=3cLfB!q{-3k;[p_Hj#;NV_O!lWcILL?YHm$Z+_SpHf/lBw0Z2tY1FuLY)1!Sbr6A0ZUJ#Gk.zE6^$v:XRJaL3M)IY*?kNzU:c7s%Ftu[]VFiaQ3#{XPDjonkCB7goYWw1M5f;d5J%Zru9{soYB:SmP3wBWo-@iP=KZjo8klvlH6GG7Ha]/IMelAAzpxq(:u]+gUm=S35c[kAW:3]0j+1G[gMMe?_6g{=}[F!4fW7nbOKzb8od+,(Qvf(viXHmPqBt]Hb=b{A4ZVBV{=nvzRm/e0bSS;=7W5(mlzHPb=T(8S1Vu=?76Zx-iv(;Wb99_9}8t]rz3m?81Q4z(/hc*b9#LHKbHKDbzoBC)c0#[KYgFKLq9{McWv@g^!l7i.Lp2HWSGO^+cDtf9BYG}-5!wlR6.U)i3,3HNe^C*tPP^XY$2Cpb#sL5V;#D?fG?wmzel*edsPCTZ*mc-(Hppgb#?F9PoJHpmyeS)kD.QR$]Uyju]j87vB:WANLIp?CLSb1SV;N2nL(vh]0Pj!O5c629A7;8[O6($D-yO[Pi_}GruDXGA%*ARs7uwY=M)sxRHU_(^gB!4m0psPVRnL:H?3-w@*XgWY?Ot7/S*Z_[hh!3qPrZXpqzfqlrR0_-.D9[kC,dR9hY3d5-lm3n4PkM9T2Wn[a{QQaJBl9ZiSJRt#ioQqOLDJLPH8KmVGBg-}e)Dv,kP0z3RmnKpLQ!h)9}hx}oW:YE!3}va*HEn;DchGS3!cPi{LQ77R^6MS1}Lew}${3MJgYYEIthfu)=#O/+cvY{D1TN57d{:N_RLnURv%;=]3lgPgRQe%wc!c{)w:e4lT00Q]x}zOuEbcLcn%vbORUpHcqi+en{,S:.e(La#n/U[]Sb+B7Ix,j(3.1x5h-yPm%Ez{EkalM{=yc-*g}iMmiTi_nkin-R(qW;9y:;MMin;FO1OJ^Mrg4V$PFV!X?i8$NsX%#l6VIZW$?6iRP8yVAqM;3DQFJE8LswmN=3Y^Z9TOOgk8eni[Cj)4Kjb;G5o5:0blo2^1QQg!Awg)QkPxoPAk5S=2PsviQ}3.I}P+8^xa/tnQ*yon9;/g=o}PHVcS3lY03,vJvm9[:#@Y42$@#w2zq)QkY-ve1OKM0QKBU2Rc1Hr5yCNryxnl;OtVlB{PTnl*bf2J0S=*}lsRRxKYtu^Ut0hc[3quW:LS]EdH:!_Yk*Z0jI;VPK?PRV[a:feW$*BivMq6S=6t]@Asb5M}U.Cvfpu?5VCcp{2KRdq,)aOattp158UsC:$rs;A)Vs;Rbv%M,-R1T7!@)@A3mp0GWGFI:f]+j/!K!Fr3EtZ.IP8Fkp{{qlB5T^XvaqdAbZDQE{BTB[S!F:.:r*:}Yq-Epwl@h:mfHkg.KZE@!l=d4Pk(F5GuD3)gky1V23i3,Pj+P9;k5!t1;=wHZfir6kpz.X%0(G$0R$C++pZ52Fa6;D%:VC%PFZV(?DagTNuyAxE)c?aULKp!iZ6a/g}Fn81op%_wu%X4lNyGwThSP{K5),i?;[8*S.tCCptrV:7++Sh%/M@ppYFOd)Bo!8}IXe3O*T[Gpm;+;ahs=H8PnmvieiDZt?^zVD9G:^$$hdx$vBG.};?!0!;A7UT_GIYBKc_0U2r6Gs7{/(2i]KUM9QTiTdtOZKkQPVWKoc]kvG0u6bRr1uWjqM_E}$Fn1pzCsFOy{7;M?gx]8YVyeK0KE72Qtm58-9r)Qz^)a?/Rxz:R:1BbIXlnQd=zr:o874jX=oY][Sx4n^[AWGMSXh;,F,h^cMgo_ffv0I1kb0Pbq9=AE]#Y_7DFM6iRH1oSU+^D3NF9/a7L4zm!Ha+0_FSw!ErD7fg7$8T#D$X32?kNi4)tM3,oyJ/BrE[=hTuaYd)7bEZu!0Vv3[2=3agFmFgVQrlz]:2^]8;d)9qI*mFZGnn?SEDnqQ(+{?Dzw=sA],JAg]yxS[3Uf(+zDY:.OJpJ09r+/5S-hTHNpK5YEN8I[STVwV7i;7$oXJNRqs0YpqR]74hAU.RqQo1VrKqy.@^07uLCjD1=z;W9(;8RuWCLQ1-[@*z/10%iz-uZ;MTmD)}.i1bewX8^#bta=Z,BkgQhN6to0:ozP9R+36W?}cA)H(l)AGrdWcJhWcWi7pbKb+GZ.bMmI5MSAnH(s@:bLDADw}k6L8$yB-DAn_ZGEd%?=]!W.8Q.-pUoNAi6gv-%l.RaPSJfYC?T7r5d$XUTDNh=Z]Ym!xT}MxGpL?A%UhFNR1s9dlZ)gZvi!KFAFnRg5SBA;j2}p;.sda6Y$5x7*9@wIV){4X)sdHENf#rPZ,.yeyZ!)uz:@LHST5M5Yx*%3dpV$d?+0+2D.B/K^kC!?)oHHNp#aMl?$2{wdMpGpehC::}6VP,OhgxwQzP}faM^$BQ;m/zt9n^drPpbtz;O:Q{7T_qXXc@f5G,h21PxpQ.:Q{(/2/EQ*wz?^^K?T1NDO=ZS[y:9U4(*jr;rv,pxTb!O2Os2327Ijn36jB,fq=)?oj^]:V-M*A%08=kbu5inMRY5twZ#PjhthUlMtfinZMA6PednUx#$+laUI4mVk5ivccDCo7r-q^D+qUSp9t70DvV:M%=M@yrrF[9+X$gWKol}MTyo^,nyM^?0QG!NgJRba*J#O%R5@S45T{$CkYIz!2Uq2;q.Lw9E*1w[nEjtMR*-#Vua/OSLc_#!_#bM!jAnhbf]OT{j1M(@]2{lLFPfYrJr%p(qpO9Ieh3bmCi?K]X3qHddM%@P+#%QHY073.Fb9DcDvc_/jf?BaubDghEV=1rC?14ywPL3[#5+5:Ox28#TO*}cjZp:LJJpWh=$*O+0(*hS9::vR]bQ=-u/{G((zsVA$3i]kre0k/VYm#]@xo(ykG.cYB?pl]]/H(tHvCM0_TCl537,H0{jb9CfL_=5?Z#8+.*8TY7]pfJOgQ#229Ir3}0s}*[t2[2;!)f5Mx5zJnPFyqqU}/r/?8QLcD?84}$X/9tEPL@EVoy)NXaYGlD3w8B-N[?^=vUshJ/{OaDqA[h)[rEyodO1*6:Tx^32Jjr.DCz{f0gB(W[7xO7w{h0wTZ?O#(ZNPoQy!O0SpjxQQ!pO,5PDiMUor!b,dAQ;Dy.+00y]I%T::%Q;+w4J?Kj$YkhpsV/Bnr7YbV#MowrNHVPK#k1yZ7]T3]x-?g0xujlWEw1:9tS:_V@b3+C;IZl5=#hGdJ!3$L/jt2ub#mo)9r_KOU4R[ZP$X?fOg3J/Qt7uDrOQrhiHry_:I;B}?e;.{CU4@]z#K]Sc-UQZl*)Af}a5zyn-@tPF#A-]M-v#vpMJEIkbs3b-AV9!e)u#5NOiOq$($4wo5V%zdhF,v0Z2VQD5%muKO9Gd8CmJ-$;BM{3((U4pK.JY+SV=N5@:5O-L/Fhc471o]NAdIsDm+eNks9:U19}zrmh,Hr.cx=o3^]ew$w:y3-88Yk98cdPXfwc+E={QutSyHBXZ*a:Bry1g6.Lp,k8urXHtE+%*6TM^O}Y0FWv$sv7Wq!wK5#oo/1B4;d!%i1.oX)G!QAdSnyEIu.2ms.(1ykb$vk5p/e/.TNayn7J)o}u*MQcSLy(I6M:E6)wtMlDUSNhXa1NiD8wBuxeiPgG1=TqJj6kAbUzW:$XjF6c2hTMwflmE$v*H8YRT.bYQ/_!7vjyqU+j)Y8nrpyhBjz$N:UOGJI]DvfY:etozFo*),U1kj?qpv*6dM3V-/Jb[T/OYZIew2UfX-I6E+e]Urjyy_[:%djvQ7ShrnZFV38v2x1FJR1k;S:N1f{yr51]eicgBWk:pco$SVnZph*0}hYEb1,[F@r]bP@1Vcgco+H0k.BLO+e@=1/ayN:PlG([*ImHZ!+*8fX(=vX{WCN$C?:OJ[q)^k5,=ibGbT%Z+0ORdw=Q*?#WnMkZmINY!)0@X?UUz(Jx0!A!@ADBq,KZ)fd[V$!otz3:Af=]{KJECi/]hWhU;F.PU]L0};0Y]$6IU+D)hav]@)b)ZwGS^%}.hdvu;-;22BGzjIDrkFOO?EK0,f[fZv!/YD=.w[;}S0^D0UO:6k45x:5^(?1{c_3a-4W{PYX8s9ed7abli:Iqa1l]Jw(3Ta$7#czPq}QyA[@hMvs(KD2yEZN(D;7xvUwIB:6X%xW-9l:f@uV,)uVI3iYtwoFpU]=ry=t:r^up{Q?jNP8eKhhWes%Yr0cVw@%dBJpBBQe?[Tg_C.J*=n89g6HI4.pMH8cm[Wp#S[z]i1f]jl[G%+;a(ypFj/qgxpb$wb#T74,0FgJ*[9O[7},e^N[inS_t!3M;60ZrMMwk9M@1TUp1wfNb_oK59F9fZ}R1r0cS{Dap%,:Sk!d:g!wQ(n{Xtc%2t^]:w]]b}?X;]Nli)RO6.s$P6ZUyEU_PFGZ0RVs,JsB43CaueMYY1O1fp2An,*[UUA)PC}.vkS9AvG[a1,eJnt0*FiLHGYk__#,lSlUJwG3bh}At[Rjt_gZ9(8D{yWStw{em9dAP}sx8nS4=6*^rN!F3e7wx*/?wSp[5AsXUv#yvsFM-_vzbt_B[bn%Ri]-x$xRP,CyP=BD!e#H)NsvSy]d[);8vR)h_,jbl3@)O/kp!=qm46F!1ZY},4@/fARFF[;,G(b+5b{SJD#o2mzSc#cu[YHl7q+rU;kDcU{,lATN9iOV0{lzt,:C]DX[TFZVEOq=#1B@:(I=)BltbS[eYcvI)thud3yyg?Pmomri!1Gjo?bpWD(_H:6WLC4T!*UrQbQ^*9/L%H=kCyB#?E,245TQw@*NZAk-Ij:,ZHwnPrpT5}2nN#:x_u;:ACWbJo@DMGut%u5(#Q*[Gf51V4*z./v+;[X^a9,qIqPnrY6[2N+P-(Hf_L3z5.4){rcHIIKrtf.?T-gGqejUE6,(V(j?[aK:yfS(l?CQgcG?v(gnzECpjiZs/FS3p%HJ?5R4b;Y]Jg0)b8F/Cy5adb9cXX;speS8thUQb:-fytRQvB-8T+/0v#}DKb@{M/-*r]xcO]VojkIcX}WqZzy;/FnSKkw_E]GofTy8v4.f:6A0X/H%CV#de)/j/aH1j2nNaaheLOK.tB!o[(Ungi@8$5wN]@iwfk-z.[5o}ZOi8%[unn-q8Tiv+9^VW%K]oB*echB4}y_D^[e6_om*fZ9,Z{pYoosJj=_EZmsAw%m4Jy+B:y}SRkqn{Yl-5t#fCo7;K;.6=y4(Q[8lg=KhY5%%2C]s=Ui,Qx9n.4*Z1C#alTmI=UhBr-uU}T188:YT@Fb5ur]6emKUeYZX^hO)IuXeh8^@;spwTPA1)I3qvAoqORb:3^y@u{%u7ZG%t:?^B-G9jlEkNr3wHD9z?JvQkrK$a,#P[aM](wDm0:MV4Q$;X(]$A-ADtrV3%QD%7Z:bZBgSpt[aE%eZnJcla,}fQl@jK2NZZSFSX*@ds%,1;LzU%zH:zG*9+vI}9mbwUMHA8ex@ibgQ*=u39d_Iz*i5wMRX9GXv1CTN=Ca;%3gx:*5r[70b_j68Id5-Ss_}kqaG.7Cd-=}mvre6]G4DG!*q=DP6J3APxzox%i$;R3VI:_UZ2b1KK:SRl!V0a;o#FU[58509GoO3j+J(*j;qE6spiZR]4_zA01}!99!OCAl,GXEH)pF-thKw(Vh5GC;qhaMONji!T)7DB997jC@.#?c%90iYBtr]{$v-lH#aO+}Z-iRUP-o9XHhptdxKC*ED^^.</monojunk160117.lua>
  </Files>
  <CheatEntries>
    <CheatEntry>
      <ID>598</ID>
      <Description>"========="</Description>
      <LastState/>
      <Color>28A028</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
0:
db 0
[DISABLE]

</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>0</ID>
      <Description>"Master of Orion   (click 1st: load Scripts)"</Description>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{$lua}
bReleased = false
local useCompact = true
--
if syntaxcheck==true then return '' end

-- Thanks mgr.inz.Player's compact mode : http://forum.cheatengine.org/viewtopic.php?t=570055
if useCompact and not compactmenualreadyexists then
  if bReleased then--
    local al = getAddressList()
    local tv,hd = al.Component[0],al.Component[1]
    setMethodProperty(hd,"OnSectionClick",nil)
    setMethodProperty(tv,"OnDragOver"    ,nil)
    setMethodProperty(tv,"OnDragDrop"    ,nil)
    setMethodProperty(tv,"OnEndDrag"     ,nil)
  end
  local mf = getMainForm()
  local md = {'[Compact View]','[Full View]','[Mem View]','[Process]','[on top]','[ON TOP]'}

  if mf.pstat==nil then
    local np = createPanel(mf)
    np.Name = 'pstat'
    np.Align = alBottom
    np.Caption = ''
    np.Height = 25
    local lbl = createLabel(np)
    lbl.Name = 'msg'
    lbl.Caption = ''
    lbl.Align = alClient
    lbl.BorderSpacing.Around=3
    lbl.BorderSpacing.Right=10
    lbl.BorderSpacing.Left=10

    function PStat() return getMainForm().pstat.msg end
    function PMsg(m) PStat().Caption = tostring(m) end
  end

  function cycleFullCompact(sender,force)
    local state = not(compactmenuitem.Caption == md[1]);
    if force~=nil then state = not force end;
    compactmenuitem.Caption = state and md[1] or md[2];
    mf.Splitter1.Visible = state;
    mf.Panel4.Visible    = state;
    mf.Panel5.Visible    = state;
    mf.pstat.Visible = not state;
  end;

  local onTopStat = md[5]

  function addCompactMenu()
    if compactmenualreadyexists then return end;

    local parent = mf.Menu.Items;
    compactmenuitem,mv,op,onTop = createMenuItem(parent),createMenuItem(parent),createMenuItem(parent),createMenuItem(parent)

    parent.add(mv)
    mv.Caption = md[3];
    mv.OnClick = function()return mf.btnMemoryView:OnClick() end

    parent.add(op)
    op.Caption = md[4];
    op.OnClick = function()return mf.sbOpenProcess:OnClick() end

    parent.add(onTop)
    onTop.Caption = md[5];
    onTop.OnClick = function(mn)
      if onTopStat == md[5] then
        onTopStat = md[6]
        mf.FormStyle = 'fsStayOnTop'
      else
        onTopStat = md[5]
        mf.FormStyle = 'fsNormal'
      end
      mn.Caption = onTopStat
--      return mf.sbOpenProcess:OnClick()
    end
    -- fsSystemStayOnTop fsNormal


    parent.add(compactmenuitem);
    compactmenuitem.Caption = md[1];
    compactmenuitem.OnClick = cycleFullCompact;

    compactmenualreadyexists = 'yes';

  end;
  addCompactMenu();
  cycleFullCompact(nil,true)
end
--

-- common function
local Apack,Unpack = table.pack or pack,table.unpack or unpack
if loadTableFile == nil then
  local loaded = {}
  function getLoadedChunks(p)
    p = type(p)=='string' and {p} or p
    local r,c = {},0
    for i=1,#p do
      local v = loaded[p[i]]
      if v~=nil then
        r[p[i]]=v
        c = c + 1
      end
    end
    return c, r
  end
  function loadChunks(t)
    for i,m in ipairs(t) do
      loadTableFile(t[i],true)
    end
  end
  function loadTableFile(n,mode)
    local hdr = 'loadTableFile: '
    assert(type(n)=='string',hdr.."input should be a string -"..tostring(n).." of "..type(n))
    local m = assert(findTableFile(n),hdr.."can't find table file -"..n).Stream
    m = assert(readStringLocal(m.Memory,m.Size),hdr.."can't read content -"..n)
    if type(mode)~='boolean' then return m end
    m = assert(loadstring(m,n),hdr.."lua script load fail -"..n)
    if type(m)=='function' then loaded[n]=m end
    return mode and m() or m or nil
  end
end

local target= {"monojunk160117.lua","MRAA.lua"}

local skip_Print = AA_CHECK~=true and ( false )
-- suppress informative or warning message, not error throw

if getLoadedChunks(target)==0 then
  local original_print = _G['print']

  if skip_Print then _G['print'] = function()end end
  loadChunks(target)
  _G['print'] = original_print
end

Bit64 = getOpenedProcessID()==0 and 0 or targetIs64Bit() and 1 or 2

{$asm}

[ENABLE]


useDomain()

[DISABLE]

monoDetach()

</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>225</ID>
          <Description>"Start Setup &amp; Tools (click 2nd: Global Storage)"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]

//LuaRet(AddAssm('BBI.Game'))

globalalloc(__,$4000,7ff00000)
__:
dq __

__+200:
dd (float)1,(float)100

__+08:
{$lua}

local bits,bitOn,bitOff = getOpenedProcessID()==0 and 0 or targetIs64Bit() and 8 or 4

if bits==0 then return "db 0" end

if bits==8 then bitOn,bitOff = 64,32 elseif bits==4 then bitOn,bitOff = 32,64 end

local script = string.format([[

  define(PSIZE,%d)
  registersymbol(PSIZE)

  mr(64,Type=vtAutoAssembler,Script=[ENABLE]\nassert(__+08;8)\n[DISABLE],Options=&lt;moHideChildren&gt;)
  mr(32,Type=vtAutoAssembler,Script=[ENABLE]\nassert(__+08;4)\n[DISABLE],Options=&lt;moHideChildren&gt;)

  mr(%d,Color=0xff)
  mr(%d,Color=0x00)
]],bits,bitOn,bitOff)

assert(autoAssemble(script),"Not run?"..script)

if bits == 8 then
  PSIZE = 8
  return "db 8"
  --\nMR(64,Color=0xff)\nMR(32,Color=0x00,Type=vtAutoAssembler)\nmr(32,Script.Text=[ENABLE]\\n[DISABLE])"
else
  PSIZE = 4
  return "db 4"
end
{$asm}


//alloc(CivBonus,$4000,7ff00000)
//alloc(ColonyBonus,$4000,7ff00000)

//registerSymbol(CivBonus)
//registerSymbol(ColonyBonus)



[DISABLE]
//dealloc(CivBonus)
//dealloc(ColonyBonus)

//unregistersymbol(CivBonus)
//unregistersymbol(ColonyBonus)

</AssemblerScript>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>6604</ID>
      <Description>"32-bit"</Description>
      <Options moHideChildren="1"/>
      <LastState/>
      <Color>000000</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
assert(__+08,4)
[DISABLE]
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>8347</ID>
          <Description>"move tick mul regen rapid"</Description>
          <LastState/>
          <Color>28A028</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>define(cave,TickMul)
define(hack,upd)
define(hac2,up2)
define(hac3,up3)


[ENABLE]

//eval(upd,$MONO'UnitController::Update')
eval(up3,$MONO'UnitController::Update')
eval(upd,$MONO'UnitController::ApplyFollowerState')
eval(up2,$MONO'UnitController::ApplyNPCState')

eval(delta,$MONO'UnityEngine.Time::get_deltaTime')

//eval(upd,$MONO'PlayerController::ApplyPlayerState')


eval(move,$MONO'PlayerController:=_manualMoveTimer')

eval(rgn,$MONO'PlayerController::RegenerateHealthTravel')

eval(char,$MONO'PlayerController:=characterDetail')

eval(atkspd,$MONO'CharacterDetail:=mtpAttackSpeed')
eval(coolm,$MONO'CharacterDetail:=mtpCoolDownSpeed')
eval(coolr,$MONO'CharacterDetail:=mtpCoolDownSpeed_range')

eval(hpnow,$MONO'CharacterDetail:=health')
eval(hpmax,$MONO'CharacterDetail::get_Health')


alloc(TickMul,$1000,__)
registersymbol(TickMul)

assert(hack,55)

// address
cave+100:
dq cave,hack,hac2,hac3

// readmem save
cave+180:
readmem(hack,32)
cave+1a0:
readmem(hac2,32)
cave+1c0:
readmem(hac3,32)

cave+2f4:
dd 10

cave+2e0:
dd (float)16
cave+2e4:
dd (float)0.05
cave+2e8:
dd (float)6


label(next)
label(cont)
// == jump to
cave+300:
call  cave+900

pop   dword ptr [cave+2f8]

push  eax
mov   eax,dword ptr [cave+2f4]
mov   dword ptr [cave+2f0],eax
pop   eax

@@:
cmp   dword ptr [cave+2f0],1
jle   @f
dec   dword ptr [cave+2f0]
call  next
jmp   @b
@@:
push  cont
next:
ReassembleEX(hack,hLen)
jmp   hack+hLen
cont:
push  dword ptr [cave+2f8]
ret


label(nex2)
label(con2)
// == jump to
cave+500:
pop   dword ptr [cave+4f8]

push  eax
mov   eax,dword ptr [cave+2f4]
mov   dword ptr [cave+4f0],eax
pop   eax

@@:
cmp   dword ptr [cave+4f0],1
jle   @f
dec   dword ptr [cave+4f0]
call  nex2
jmp   @b
@@:
push  con2
nex2:
ReassembleEX(hac2,hLe2)
jmp   hac2+hLe2
con2:
push  dword ptr [cave+4f8]
ret


label(skip)
// == jump to
cave+700:
call  cave+900

ReassembleEX(hac3,hLe3)
jmp   hac3+hLe3

cave+900:
push  ebp
mov   ebp,esp
push  eax
push  edi

mov   edi,[ebp+0c]
{
sub   esp,0c
push  edi
call  rgn
add   esp,10
}
mov   edi,[edi+char]
test  edi,edi
je    skip

mov   eax,[cave+2e0]
//cmp   [edi+atkspd],eax
//jge   @f
mov   [edi+atkspd],eax
@@:

mov   eax,[cave+2e4]
//cmp   [edi+coolm],eax
//jle   @f
mov   [edi+coolm],eax
@@:
//cmp   [edi+coolr],eax
//jle   @f
mov   [edi+coolr],eax
@@:

mov   eax,dword ptr[cave+2e8]
cmp   dword ptr[cave+2ec],eax
jle   @f
mov   dword ptr[cave+2ec],eax
@@:

sub   esp,10
call  delta
add   esp,10
fmul  dword ptr[cave+2e8]
fadd  dword ptr[cave+2ec]
fstp  dword ptr[cave+2ec]


sub   esp,0c
push  edi
call  hpmax
add   esp,10

cmp   eax,[edi+hpnow]
jle   @f
cmp   dword ptr[cave+2ec],(float)1
jle   @f
inc   dword ptr[edi+hpnow]
fld1
fsubr dword ptr[cave+2ec]
fstp  dword ptr[cave+2ec]
@@:

skip:
pop   edi
pop   eax
pop   ebp
ret


// == jump from
hack:
jmp  cave+300
//hac2:
//jmp  cave+500
//hac3:
//jmp  cave+700


[DISABLE]

[cave+108]:
readmem(cave+180,32)
[cave+110]:
readmem(cave+1a0,32)
[cave+118]:
readmem(cave+1c0,32)

unregistersymbol(TickMul)
dealloc(TickMul)



</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>8348</ID>
              <Description>"move tick mul"</Description>
              <Color>000000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>TickMul+2f4</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>8464</ID>
              <Description>"cooldown mul (no zero/negative, &lt;1 fatser)"</Description>
              <Color>000000</Color>
              <VariableType>Float</VariableType>
              <Address>TickMul+2e4</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>8463</ID>
              <Description>"batch regen amount / sec"</Description>
              <Color>000000</Color>
              <VariableType>Float</VariableType>
              <Address>TickMul+2e8</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>8469</ID>
          <Description>"projectile speed (not work)"</Description>
          <Options moHideChildren="1"/>
          <LastState/>
          <Color>28A028</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>define(cave,ProjectileSpeed)
define(hack,upd)


[ENABLE]

//eval(upd,$MONO'ProjectileManager::InitAndShoot')
eval(upd,$MONO'RangeSpellBook::ApplyInstaniateAndShootProjectile')

eval(spd,$MONO'RangeSpellBook:=projectileTravelSpeed')

alloc(ProjectileSpeed,$1000,__)
registersymbol(ProjectileSpeed)

assert(hack,55)

// address
cave+100:
dq cave,hack//,hac2,hac3

// readmem save
cave+180:
readmem(hack,32)


cave+2f0:
dd (float)4

// == jump to
cave+300:
ReassembleEX(hack,hLen)
push  edi
push  eax
cmp   dword ptr [cave+2f0],(float)0.01
jge   @f
mov   dword ptr [cave+2f0],(float)4
@@:
mov   eax,[ebp+10]
mov   [cave+2f4],eax
mov   edi,[ebp+08]
//cmp   [edi+spd],eax
//jge   @f
mov   eax,[edi+spd]
mov   [cave+2f8],eax
//@@:
{
fld   dword ptr [ebp+10]
fmul  dword ptr [cave+2f0]
fstp  dword ptr [ebp+10]
}
pop   eax
pop   edi
jmp   hack+hLen



// == jump from
hack:
jmp  cave+300

[DISABLE]

[cave+108]:
readmem(cave+180,32)

unregistersymbol(ProjectileSpeed)
dealloc(ProjectileSpeed)



</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>8470</ID>
              <Description>"spd mul"</Description>
              <Color>000000</Color>
              <VariableType>Float</VariableType>
              <Address>ProjectileSpeed+2f0</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>8471</ID>
          <Description>"spell book anywhere anytime"</Description>
          <Options moHideChildren="1"/>
          <LastState/>
          <Color>28A028</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>define(cave,SpellBook)
define(hack,upd)


[ENABLE]

eval(updskill,$MONO'SummonerController::CheckSkillStatus')

tibiscan(updaob,updskill,+50,d9 40 ?? dd)

eval(upd,updaob)

eval(skills,$MONO'PlayerController:=skills')

eval(cool,$MONO'Skill:=coolDownTimer')
eval(rnge,$MONO'Skill:=spellCastRadius')
eval(actt,$MONO'Skill:=activeTimer')


alloc(SpellBook,$1000,__)
registersymbol(SpellBook)

assert(hack,d9)

// address
cave+100:
dq cave,hack//,hac2,hac3

// readmem save
cave+180:
readmem(hack,32)


cave+2e0:
dd (float)4,cool,rnge,skills

// == jump to
cave+300:
ReassembleEX(hack,hLen)
test  eax,eax
je    @f

cmp   dword ptr [eax+cool],(float)0.1
jle   @f
mov   dword ptr [eax+cool],(float)0.1
@@:
{
cmp   dword ptr [eax+actt],(float)0.1
jle   @f
mov   dword ptr [eax+actt],(float)0.1
@@:
}
cmp   dword ptr [eax+rnge],(float)1000
jge   @f
mov   dword ptr [eax+rnge],(float)1000
@@:
jmp   hack+hLen



// == jump from
hack:
jmp  cave+300

[DISABLE]

[cave+108]:
readmem(cave+180,32)

unregistersymbol(SpellBook)
dealloc(SpellBook)



</AssemblerScript>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>3766</ID>
      <Description>"64-bit"</Description>
      <LastState/>
      <Color>0000FF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
assert(__+08,8)
[DISABLE]
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>8472</ID>
          <Description>"custom race perk point"</Description>
          <Options moHideChildren="1"/>
          <LastState/>
          <Color>28A028</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>define(cave,CustomRacePerkPoint)
define(hack,maxperk)

eval(dumy,$MONO'Backend.Civilizations.Civilization::SendP2P')
eval(perk,$MONO'Backend.Civilizations.Civilization:@PERK_MAX_SCORE')

eval(fill,$MONO'SWFCustomRacePopup::Fill')

globalalloc(CustomRacePerkPoint,$10,__)

eval(save,cave)

[ENABLE]


tibiscan(maxperk,fill,+50,!perk/4 48)

maxperk:
dd save

cave:
dd #1670   //  v2.4.0.10 -&gt; all best perk selected cost 1570, should left 100 point


[DISABLE]

tibiscan(maxperk,fill,+50,!save/4 48)

maxperk:
dd perk



</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>8473</ID>
              <Description>"max perk point"</Description>
              <Color>000000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>CustomRacePerkPoint</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>8474</ID>
          <Description>"Local Player Check / Enable before other cheat or CRASH"</Description>
          <Options moHideChildren="1"/>
          <LastState/>
          <Color>28A028</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]

eval(universe,$MONO'Backend.Core.Client:=universe')
eval(pciv,$MONO'Backend.Core.Client::GetLocalPlayerCivilization')
eval(client,$MONO'Backend.Core.Client:@self')

globalalloc(getLocalPlayerCivilization,$100,pciv)

globalalloc(pLocalPlayerCivilization,8)
globalalloc(pClient,8)
globalalloc(pUniverse,8)


assert(pciv,55)

getLocalPlayerCivilization+0c0:
dq pciv
getLocalPlayerCivilization+0c8:
readmem(pciv,32)

getLocalPlayerCivilization:
pop   qword ptr [getLocalPlayerCivilization+0f0]
push  @f
ReassembleEX(pciv,pcivLen)
jmp   pciv+pcivLen
@@:
push  qword ptr [getLocalPlayerCivilization+0f0]
push  rax
push  rcx
mov   [pLocalPlayerCivilization],rax
mov   rcx,client
cmp   rcx,10000
jle   short @f
mov   rcx,[rcx]
cmp   rcx,10000
jle   short @f
mov   [pClient],rcx
mov   rax,[rcx+universe]
mov   [pUniverse],rax
@@:
pop   rcx
pop   rax
ret
getLocalPlayerCivilization+0f0:
dq    0
pciv:
jmp   getLocalPlayerCivilization


[DISABLE]

[getLocalPlayerCivilization+0c0]:
readmem(getLocalPlayerCivilization+0c8,32)

</AssemblerScript>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>8478</ID>
      <Description>"IGNORE"</Description>
      <LastState Value="" RealAddress="00000000"/>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>8476</ID>
          <Description>"custom race perk point"</Description>
          <Options moHideChildren="1"/>
          <LastState/>
          <Color>28A028</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>define(cave,CustomRacePerkPoint)
define(hack,maxperk)


[ENABLE]

eval(dumy,$MONO'Backend.Civilizations.Civilization::SendP2P')
eval(perk,$MONO'Backend.Civilizations.Civilization:@PERK_MAX_SCORE')

eval(fill,$MONO'SWFCustomRacePopup::Fill')

tibiscan(maxperk,fill,+50,!perk/4)


alloc(CustomRacePerkPoint,$1000,__)
registersymbol(CustomRacePerkPoint)

//assert(hack,d9)

maxperk:
dd cave+2e0

// address
cave+100:
dq cave,hack//,hac2,hac3

// readmem save
cave+180:
readmem(hack,32)


cave+2e0:
dd #1670   //  v2.4.0.10 -&gt; all best perk selected cost 1570, should left 100 point

// == jump to
//cave+300:
//ReassembleEX(hack,hLen)
//jmp   hack+hLen



// == jump from
//hack:
//jmp  cave+300

[DISABLE]

[cave+108]:
readmem(cave+180,32)

unregistersymbol(CustomRacePerkPoint)
dealloc(CustomRacePerkPoint)



</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>8477</ID>
              <Description>"max perk point"</Description>
              <Color>000000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>CustomRacePerkPoint+2e0</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>8479</ID>
      <Description>"race perk BYTECODE"</Description>
      <Options moHideChildren="1"/>
      <LastState Activated="1"/>
      <Color>28A028</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>
[ENABLE]
//           00 01 02 03 04 05
aobscan(perk,28 ?? ?? ?? ?? 7E ?? ?? ?? ?? 28 ?? ?? ?? ?? 12 ?? 28 ?? ?? ?? ?? 06 7E ?? ?? ?? ?? 2D)
perk+05:
db 20     // ldc.i4 &lt;4byte integer&gt;
dd #1650  // set Civilization.PERK_MAX_SCORE
[DISABLE]
// no use for bytecode cheat
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>8481</ID>
      <Description>"research output BYTECODE"</Description>
      <Options moHideChildren="1"/>
      <LastState Activated="1"/>
      <Color>28A028</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
//           00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19
aobscan(perk,02 28 ?? ?? ?? ?? 16 0A 02 28 ?? ?? ?? ?? 02 7B ?? ?? ?? ?? 02 28 ?? ?? ?? ?? 6D 76 6B 12 ?? 6F ?? ?? ?? ?? 0B 07 6F ?? ?? ?? ?? 16)
perk+14:
db 00            // nop
db 22            // ldc.r4 &lt;4byte float&gt;
dd (float)10000
// set Civilization::CalculateResearchPoints() return amount, in float,
// for whole research output this turn -&gt; ResearchComponent::process
[DISABLE]
// no use for bytecode cheat
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
  <LuaScript>
</LuaScript>
</CheatTable>
