<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="45">
  <Forms>
    <CETrainer Class="TTrainerForm" Encoding="Ascii85">=Ul:p,cp%2IZ_v:Qql:;(!)$EI+Vcu@bKT/92s;-f}DLxL22pCSTHRb6g@I_;{$+mWs}lUV(0,a00l}kvSd4%JVD]wMIN1;KY2bL^Y)%[qT%z}Ng]-ofEaSIuspvR-5SHWG)Z2[4/NsoN%J3MCVXkWI[SO5GdVNg9o%tKnO{m)3n?6mjyninCWDtr5{sj=E?jS)ey4ZaV;uMERde*sBi8dc/KouQ)GjwTO7Wx}W1O/rvs=lW3y/+/uwDPD,.mPNUgp(+[:hErQvpzTN*d!T[QtP3l$8Pe%SrWn-j7qtAS1_0JU=EtT(fqX+pK^*n{m}kw==,RSp)[48a.%FN^eU#%:X[T6E__t^IO0#HzZ^{m+p1*=o)F1XAj@K+r-rPfvxG}n6E*Vrf0+I,=oB{Ss58g:rj{:2.%?9DqG(FlzcH+Ny(?tB4}R=W6!u;+YEF+z2EJ4#?CU6@ZY%rYO4#i1{2g:r,6ypdcdoNEJy$A8eLsoAzM$x]A0Ag9KE*V9v;g0M_vVq;#{NX$aE_S0)7Wjr,nQc5JHeO.j1Fci.Fjg-9EoHY*9^^a#9fTLhyCP200uGx[}lL1_a1^W.{VIRox/A(/cro36Pne)48uE$kSChfm9NweuPZ;zFUucmM.{iHEvGITGLJW2xSAVv:[u)NnRydE!^nL%2%;xQ{KxHdZ@iKYlN[Rj3r-M8lusHUO.d3oBP7wEs+)[:Ev9,s579.k7Fr7rZXjk;[h=2nX;lY[5$BcY9JrEMLOfEDj8JLC!4Fe#q9mPSE;hW)NgG5KJ3EEODoU_+NWT6U2sx4-U}n25ASI_;Ee2#(3C,U82j7Qwm0#5:Tezp)7k_+kIm,)IEmD0ntz}s;b{d{S;q_z3zklg(Xq]=(MR$9:e0dT:h[Bp:#J$F2Dm;h(v+g5SMYkbU421aeT{-RV;$*q1Yz;4_90#SHod^#T*xA47j^$HXDvbffXg_2a3U(^dJQ2#o#Ne7KlUc0C;e!kTe8]:Wq/5s^qu9h]:0FA-D2z9Z*B(#;qd5T!==M:nvaKH#rFWwpPWC?ZpXUbbgZBL=@xgOSS^{j:@f$U;RtMK,V-xk=]q4oxz*SSe+</CETrainer>
  </Forms>
  <Files>
    <I2CETLua.Teleporter.Teleporter.lua Encoding="Ascii85">=Hg-v,eWfq6)Ij%QMe$9%7h.,a1hYDDz:j_.5dfmwvinpprw[}mLgS;s-p]2=;Dov%UzO7ib]@a.1K5[ad(2R-a9+7_NO%?-$cnIh{ik=@$GilIj09lCs$_7z]x:VUnFVHQ^$]i^275Coef8$[X@1Z?axIt::9Aw(hGnr^)doWd?=$@JiWM+lcxvl:z#{0JBjbZm?]/KS.!54x%(5.OR=4iUmXQe@qOCV@Zmo0U)JIs?,Zk0V8a:ZfAPyJmOt;AEz(T}UF5OPeBbvNkEhR^.h(WMxeQb8YH6o?2CHX_XPbQB)SoN9ll)*?/19=#%,GRI?!k%W-2KicdFBrz6e#D?+L/F(t9Ia5X_i0jgN{Hf!:i#Y^6p$G!!;^;P+?$su(jb3Y^DH*)r{T#2r;?XH#h5?Xc.@]e_B;c2X[([6/W=#aUOh[Jn,dMr0bOD%QPkp?2rUgAkEX@GEa]f3^l-VpQn5ROWnv3Aa.98eDCh!zujHK[_Kp9@aJn$%teUxMrg-f!,h@Nm=N8HWE=n)f-IAx,DU2dm{i19QjFn/H2o^sn5Lxj)lAKykl@}^gEV+,PQdE8$l2-9$?%D^kE1Ann3ZbHU_t!B[@mT6fTNdT#9t:SR0t_Yu257Q(g3{o.LPyZk%%}n/X$G{90CYpV]nX{aPZ0BS(Pqt7Z@Z^6XmZ?lFpMypQGR{fl1zm?_In-EPw.X*YehBiZ!%jklyor#G?HN:joEmsjJlj?rforWd2CRjhv@6QTR7P=R[{d,mjQ.)7qZ^oL{-7*/zx+-n,B;J(@khY(UavlqBgij6sp.4yBNGjm-JpfO8Zo?RtVT.PE2NClBq_B}V4,A[]VK=L=pqstEiRtQHBR)N/IiWRXBc1jVd0L;xvkw5Go:vwY44eX@Az]xcd^bT7xoma%JNOf6P$Z4yyqW6Ky3DbqmzF!AwuTzR%GewGAN6A[:sm1hI-NhXva%Z.qPW.71{lj:N5l0{,S!I?$HWpncT8RUp@82b]jeuQzB2l0dtGRW5p+Ru{.nF,t-fn35X*3@vyAP.uW26CiVL11nol57xp19q1r5f5TEV6evq%P5C$vmna2LheC@WO+Wj4L:33iWoS4$6:RIOH4tq+*pC8br}BP36Mef[E{wwp4hQ4xFv_+A#fHpwyGqc(@XB%Li:Tw29PF))]m{H%:N?3h-S0[Dq@Vap4cH{A!3.GxLEQd4LU)3yV[JX/q!/AxLFrAL8jakr7pw.7F-!imbs82Qtmtr?[@.IGc_E9O0^CA,8^.,Sjj]xOM(p7%D+t4LVD;lsLiMfL?R-z.cH;E9!x@a!T+Dq+h@gnC{iwO)nN^=A?TbuU%1Y?95xS^5g6vGK30T/)Q6Fm2?!JR/y[#)B1*2%tT@BK_CqrV5^O6%;+$=b:2bC?-*j)q2$GJgwInPe5j2?(7zGd#!4z@A+8g$O@Yo-zsc#nlOs_IpC8h-y3m^k)l+AT6m{V_6=y,ftB1/dn[XVIb4uJdSwpkcTf+-*L#yqW7%pSt+,X2HL$M=0GD@(frUJY(B0c}7IyY7H=O:ui4pOR2*+;;T=ltnJsp9j^J1cDFKb=)H5K4]:d);3O)9I!G,Q)G]c2-]6yaZKif:QrffS3Cw.D%leb8:)J8WKkT;bq+:#A==DD*rk/Lyi20sCPn$.HDoY5p4Sbmk-TNE*v%;*mQ,^TWkrx0g%?bS$PjY#h2u0Mk_F^NT]7*n:Ury[T-Pk4/5bqL7u#i{(88(rhOH/uYsaK6Pos!3+{,C#V(RyQU,clRhT!PrIkynAtzj1xYM81?Y6QK[E{p@GoNevsH9y21KI]bS7TEu9$F(IjzxQ5UFA(qNtSMBrpxZSA$f-PCxNA8kOPXTzO#;%S9^jCTDdI4lmK!E^8pK)I*nBpagOVN3[Z;,4J8M-fJ}8HcyZ;{5#0sXAAkNNOv-BiN6jeaDH#Y^o,gs1@K10:0w/n#nnoAW,fut%Is%OF5c$(L*%6*mBEvvAmR;NjeT09=/Rmz:+zjAD*4YQ2TVc{GrLX{cY9d^slltiMZMF]=abuB8MFc,.aI[R8+S=+U--HVkWj[bU=5e0zZD=(HIOBlO-=:(Srn,ipvfSNG#R42vC$tmKP6a$eGr}1?!2O%,K35CCqei4B7rcEhvDhL%G7/Wo*g07LoO6f@VCbRNk2,_U+*R25CY+0#xJEa/I%u;{JW,)GSz9J!tA{%%prgF3cgHWU)5j@n/+rNL5X[{/2BR:pHK1FF!-vlQc-,gvqmXWmFPt0+?gsP{*62xLzIOKEWT,]B3A4xw/=:d1:idL+gb:zIKEPCu5,%;r8$6+j9[pUQcIa=*5mM!I%#}^wNEr7u:D^S/yck#OzoS2pneB.kN_1C(k)ej)$jd[M2:ZRE(ijvOLv2j{2oUR*4RnL-mZjhZ?YM*tfQKfAi25ORihB!$Dp.DZHgYw7o_6ah+l72yh7HcNMAFZSsBCaBkjyO{Suc5ag@eh@X%F^{ac9VLjw)TvNkO+Crp:^ou5VdrRPRbNMMlZBTpB.W]Rw9?D./6G6f*$drcSISgWBS5FzA8.fZ.gmFjkti,minw,%f}d#3*@U?n*eZ$.{jqp4oS[e2x?.WsDo1Kg8D4/xz8rLFVqJ:6K$YX?W[IA$].u1:,jrCP=}8x(+kFCSxLZ].+6lvqbOQgk(JsoYRj[6Fn:)aE-?%rUb7E/w)7ILv0Uy+%r2QE2cvx(,Jd4?BMlVo2fMsDm}YPM/n2NgnR0lu;xlVh7*34=s0KW{h]T5-N-yRbkVr0#RDKy)Ly_^7Vy#},+*QnW^8D%@+:3og+vT$jQ:FZpnqCBxKYZ5o,6ZWvZ;lzQ;TBTTUi{;]b,n}:1/uE*7!fbFQ!{NR;Weweb-%/-zr4hg%=3)0nd!{=0!)z},Y2ydDVOZ.ZJ5^o)H(BI)(maz2FO6hs!?y8!WXyLZ8A(_OJ;8U,cI0^o,1RdU,WXIQeg#3Lanygkg]hUh$4iAn(6tw-eUA-AGcHe^d*:s^X*KIhQ8G{2L^eT8[rnc92z*;Z8,C5.H*^OSIZ7!x5i+Cf{m(11sY7pK,hKY1*!nq(hd-4pb_Q20OQ8dibH1A=N{[1H@ek%-wjE%1ga7$R@PR3rAj^AMrHzn0}lbH/XQqeFaWE2RtfM;mw[9s+4:EK=bcM8S+/4x[oyzq7;Q_/v91zzfuy6!41^e.kVkz9N2ov%scl#akfPgss;fY%N5.fEDB(Hn.f,na!xG,M8^TzmG%Fh3b]@{?R/BfR75nTK^k_?+FB%T^9hx1.mETfNeeDc;d{r]WEas)JC2L9[R:pazNvT1}-+HnHm*f?2)8Z./EjDv.DejZr*U/UDDm{.cLaC]o)BWiX(pdc%uiiRs$}vVtSzhbx7n606tA=yoV*$#.+)U3J;Kn[:tv0%?Q_j+7E9kb}m{-nwlH^7zu1xi7L+x3.wRol4IVp)=vj*P)tR!yK8VDQHlDKl*xgc%0p4D2XmhWKoS=zw6ahtH:hE.2ITfRosXSFL+hHr_ywaT=CmkIUF5FP#K:d*xPPY3MV?3L/l8Q$gwWBlff:scOfr12j</I2CETLua.Teleporter.Teleporter.lua>
    <I2CETLua.objects.GroupedMemory.lua Encoding="Ascii85">=ONS$,cpsIs_*lW+wdj!U;mT7CVdN#ZJz6O2GXR6-R[_%2F9Xot,M2iQre*%^]MVtq)sS+KazM$hoER:@NzgZef*Sl]G?wCCt+BcA*NKz4(Vfu!:wISe3}+ZzWkF/66w7Wak{LGTfT[Jb?SO%V)+^!Mx#IMq-vfIgNxDd^7f,%dM}{hjPQCe;R${sjSX;l1pPT?2?IlH5OF}1W=.-NL!M3Ry(wN{exYWJ:lr[Q!tgC02aCg3KfhV9AoM2j0)pZeuK(yXH.}ME1WOS[NlWS30nhW:z$5=JQ{s^qztTYPR:#7OPf?(VwyTJ99xl14AzE9V;+so()e;go4%hP-L$.Nk-LCrI=LxuG(z=34-[a@*qEOk3lxTfJmc_*da3s/G*j(UFQkv1,heUhL/wOL[B#0xVI!,=.2i!i9jALoImnQRA.3(C:22X/tkE9ZEI[wY5Mn.0#2a#ohG[4^ILN8PvPV8n^O(Kq@H3CglY%cZnmst1{#BX4Br?2N!G^Xq$!1#Kp2Cottfg3aPMnCW]SxsA/qHUT,6K#sgoKHRvBcFe5Nghr,5U9[^,0c{pn5o5Edb9(a9cV]B.+txLdX#YuqlC{6aJV!LgH=}fkMKe+=rF:Y$W[X5A!5.z3C8fuo5o[nl2)*W0_^{OKs+J)q8SIIs%a3a]9TEF59IS;IPg(ky^/Bf*w}0+lx(;_CLMHu++N2g*N3*^7hFmuM12h,nXqWWn-ZjsVW4nT.xf?pYY)(F3X?NZ@USi13kr7$3]XvJuPEM%IiB(PM.f%O#n(?+KpX5l]W4ZjU0n4Y6KH]1L-=3R8f3;}AZOtRt7l]ZH;.?Ds=OH,E^#QsW:LW^jY@g=n]:0lK]Yid#:]b7T+h)8S;%czalKX_Qm(qJcEzDTz.#9Z1(}!Q1.Ml,DU9RK:?O;6zO*9t.7KZ=d{X]S!ba/zY:C83CujLmz$MRdl9N4US5cCTkil?{+yN.8MG7i2sO-y/:c6WlYQqUaK%(o(ET2?iNsWLj^2ddMUIviuY,6HTLqd6u8-S)lG/Ybvo=Ds2Md,rSP544)brfgeC4$+Jfr)NGTKwx0-N1b}kR6yI){8R@4f-_8x[4G_b?pYThw=vD@v-%JH#ll**30b,=JKKN9U?*u8FFLp-UWw%Ddb5dW(j:ZzL_b(fD%S6VzwA$66%5Bj}(V6b%A[c7Hk:DHM;7o7E9[:y:0F/y60B.K2yE4H*lJKseYfS^yq_WN[HFNcTD..DuqIx:rw7vGNY:B^ND1R$[$UGaL:b6@H-8!u_rV=mrSBg7=44NQ]Ie^D)nk(Uj13e^F+X6C)#xAK@:U6/uunMwS5Un,5Bo{;^qOGDfE.EORGCFQgGm.QgwX}VoZ)_Wz=RrXzaqtN,y2+C{K3,=Nr6xm/;FF$9.mw=+gUjD)-.+$QPwh4T3nd=+KxywtK.ltQk/*4yvD_+#)]X$4f3YAO#uqe+,b=oky)L16Gt9eq09_3(V2$P.j=o,r@DlL?3nJ$i2D2+9-GHx]s=})Uba;z%IPIbp.DkckI-a5d@gheEdqzdU%}c/.X56SKSnBapc%76gGANm466V*[Q3JNKuO)S5R+e.08w(*(=DWyrELTk[Ey6pEme$37Cj@*BWdT?Cl[5?7k6hCA_KNLW,@)z}T$7[6fYCH(h1jXr6@Xd@q4=1{TivXvrp?Rg7:fGTYX9JM[o4P4MCsQF%T=n2m^uNRO#N!P!,O7dVq@npQeqs}cBpv*lKs?+v(+$h7Z*GA-#^5FLwo%:#;07+4pZbE2xjHvGMMiW:@3,5k6Mc/m_JO@lar[DToLfpUy+Xx^vXVOQ::xTnk3T@bt#o4vnZXVf%W+7_]u2itof?)l]68F0nIlsop#Jy0le+CsymE6.RGSbv(Va([]jx.SmGXSudT-BDgrs35]_tGR%l88TJfqGU;H8RRQ@j%IspU{PHpR9[F,h]3c/[%C*wYKn[/?vi8ps#w}#.;eeE0DQf.$[r9CcuqFxyiyPJc9@K*Vzp;O[0;hAtP1@dW/?]o19v{v+4,I[K[wWamE[_Iq/O5x6{j?rB,F]b@?kg{CsKK{QqSoQRH3la3qQPqE@p{E8rMxD.qLIR?8T-gw(;ODzk8AaSQ*t-#I-gvO[8;-#fI,5j%8p*ftL;+cJ$,?vi3VHM6zmJS._o+cGQ%Gce?ptI!{kqZIjllv5!n8+KL:o;oU=!Nax3Zda)2pyMF*</I2CETLua.objects.GroupedMemory.lua>
    <I2CETLua.objects.init.lua Encoding="Ascii85">JH*]iP=TC(npu;pq3(tq;;A:zny8nbl$DxXQmp3;rqwlhxp1oquFOr!(%v,8H#IlEs1m.#$DEw{/iwKH6k-(,7v,}0Ad}[C</I2CETLua.objects.init.lua>
    <I2CETLua.Updater.lua Encoding="Ascii85">=HSu^,cvbX4v-)%6VWx0jX6q[c71Tyb)!O*##_=e/un5d6tcwFYIX5Ms+VwO-?bErkx1E2leUjb5J*@cJog*wqn^o/inG9v$=+7HkGvvI_ESyZ28HjA:b[JO=)FVJgzn(YH2SE};bsY^i(6h/h,Bv5Q{=jkIO(bL7yWZjZT62ycSe0qdg)MuDFIGI)IRJ*Pc-1:$;Xv2[Ur-:c^94}]f;b?dQo!t=2psLk775-62OhFfyJNWQ@IF7CG$K:c?u=f6W4WHgr=!^4+p7-pIDXx#hm[AL@+9bxOQ5+J0,l0Kcv=nAKSc1Z#Yd@l%;pN99T^[qg[Wa#U1=J-@aiGeXZ@8PDAVcirm7gG4vA)=@1XKbYq[{1,A/v[f9Aa??UQ?p@sr=xqV4/CbyJhB;1?CvkVzZ,e,Xd3P2fTGU#]E!%=q_P=Qy*G!3#4H[:qCT+-4GHFxAn=g%_clyk5QL%/s[L^HlcJ:+mgi8]bU,)a$kWO*LC0lQCbJ%1vBD^{edR%x=xpWIrMR+DFm45,jw9KZHsMoWFOk@cpuJTGX.a*6-,j6S4JC9!-G!Md]axon##${#1.CPWl6N.:MCbb$pZ?lN4T#m87xB2^9EA2Q;7(N;GNVHPlVnq__NVjAGONNCCr!h??.s^=v7(vO3yS^U;dzu[j0TXUg/(Jk+m6jqMKo.1c614Kyaf@dOU/Z(IRQp3ReB7t;WTWx[qMIkn$uVAr}83dW0W{IB}2EF4@?8i3)lb%R:z+tW]9etR7jq4%{M5d@WbEh/:IlLL3X?:P%jWa)KF5.%w/x2W@T1np$Nl:^vZOj$qnd2Y_w+$(r0,Lr-YZ+.:Nk,M:de.Q;!a9vWJUX;ZZm![OslC)$3@0-iW.FPGoKL.wyk?GyHgT#VSi]jKc:T0NY2.?$JXyOzE==KmM%?r1HC3!y.tBX;;#NPvZProy:Xn-T#$a!+-oQ*;SS9_d5_pXfgA,Oon@Nil=qjsQ$;LB^eh0%_#e8E@B}+.OJW6P_wF0h$oit.(EZW,e5?6zV7{Uik,7yq9HmQ20RHDq8Ddox?!y:i]yr}j)Bpif=EjL:bYtbQT1I{BY%{[zi5U5k,3yD%/A9h^Gby{S%m=D?po#tNnOKT4x.9pb)$@p,)B}nXQf/}hvF8R8$3@tuTw*gb.6(Ormw9WG@,3P{W3nghxF)!UiCjbmw5%wE7d^MGQ]6EDs4N(-3C7(UPdIN:=ItCwTQ?C2g;#$/d1j8M@C_v@.ju({qNUU]bNCF2$yBH6L^o)1y?v!fCy@%N4GFFApb_waV4Rl8w7_puw:Q0sdWNT0AWvuUC@S-[0Js;2v6]]X_ksEoFSl6Jt#xrl5/Up{kAJJ.@Z5o*gjuu;=uBza]anqgqIisbQ@trV$t1VP^VCWcBWZ*QpZDA8JN#KI_.ZnPz9EG.?StE$5F^%atV[vR7w6OM$4yEsI!ap]3ODlXeBDZzWdp6LT??o}^,.7Puhm*3dOkA(2prsKA=G(jP@LR!=%-K@Pk#**.W.Kn5luQ2o6bzJ7-mFrK!:)x}5eH*pT6xV+LNeS9Dd=6hn{);W*JLqB%:xm3w5pb%DC0wv+5{Yv?acTW#RUMb0WBiNO#owC07a7wt[;@$kA9BQkYv^,$WmY%lVIlOeju-Ky5n:77p#r.!7%_qahZDhVkBg.ry148/Y^SPHRK;6X+sQ-+eIKvq;-?cdYhwp4l%fh[*Pc)E3Wnl7Kjen!,8T32w?tgOM#wfPtcfvtKjH@=*c*0.QrSP]v)eR3ehHuJOjaadFy!TxUL]uKM+uGa_#v=K}@#a/%P(be3ue!+FhSuoHw=GzMy0d@oo^[J?UJi2CcSsobKLtC_?Oro:7btyd+yFkjH!Mv7AY2p{s,?YD(9L!L{,dW_q0WyUUBpRSt+t;/;U$v4maB-gsAbr-};vxmuD755UU/)%T=bWx374SZzpl!?TmlfPsEL-.URP8-s0]s,#K#7T[P^TEk0aBNnUDt*iN#M.HCa2#%=KN)w/ElmfZL6IDm*03^5s1?OSU7Z7A@pCJ;U!8-)tqK^rG7*9!A0dY+0l#zw{9G8K@Xz1DkX+EP)!8^@Fm%s.12qwjID9H(0nye!s[3?#j90*I3;ISH8B[x3.RFc^*bKBvd$a9*/yYpETM4^YvysCaK8KX%dnuJLRR$t^3Y8MU2V(O:OHLzU!#PNN$^eSxUanqNoj.i^GZQbL*c]{CRD5.g?PjbQ1mr%z1DLsk(IGZ,k4q1t%sfnM[a{hxGDge@{wg^t]!8IFhs}:J+mZ}osblzu09Fk;LkU08m+TA*6?!Elwneg_1o^Gy(GWi=JOEMW_Ej8VM%pi0Q?cKxh$0{ac@-cY$K19hm!tOigKA*{KS+-5AHdQpleQJ=MTzMBHXj:qZnv*,(i8gH7-mtrfVbfvx+%S+fmIC2^vVB.T*#oB04y^)w5)+?fv%e%.HNwf;Su;27$qbE-*Dbx]8Q)z4_DC9IRsQGVKL</I2CETLua.Updater.lua>
    <I2CETLua.extensions.init.lua Encoding="Ascii85">Q*OUaC]v6X%]8gQQ1;**b]9_/P1H-RC]rvL(dkp%*,.V4%FIhw+8}6</I2CETLua.extensions.init.lua>
    <I2CETLua.CheatTable.lua Encoding="Ascii85">rC3^U,cp(5s^]a_e{D*uNWvT.=$DQDDVE7/Yb:g},U+9cL%}S2O.jR1kxJ=f,i%]a+f{J1u]Szan..fNp38R+((}Po,i$,fWI^7=dp)ZH74b(TqIh.w)lA.ws%P^+W8UeBrHO8=r[(D:We35#[_0?Qxy92#co7cjgJC=4-i,;M=r]+s7.X{a1s9BfKDV)c?A}cR[2dn5%$95()JULY8P5kl^PZfPJPQ,/11,C{^GZ;xB6]ULSruGpA3@p;7:^61B0W99Un]TAT3%}SlO.%E#f(E)6::AyH0S5_cYaP9;rPL4%=nWe4I8}%n(aB4!Hp:RO1a({PxfrcR8sJj:2F0E%NO=e9V=VQa^ja1+QH+^0)Pwz=B*$mm^6$XW*#J?*3{ejh!}##SPKBXdknck)2Ar5T?Wf#SjZKbgIMqtNsP/2v5Tf?!IUByS2^dBnU@9lcpKBh*JhwItRaZ.15kNw+:}?[d]twMPaYT_7d,cfgE9]$#3Dtqio^*Gr,I*e1%+l$nv2C),V_QBn[5^rM%q):H*TdZltBPJ1tY{jiYA*mGG$!_4{+#/[ZXNBq%q}/r7ZGry2]lLtQdsvxZ+ZKby2c5%@ejid%jE1Qqz)j3+1S8Y*(*9I/2xaUu,Z.pKX*Fa:?sH.,R#_[zt6Ha/TXdqqJe*HVTT/VL)^4OaVE1:givIJL+VdTZe%V$I2ShwlHU,BwVwcX!%4[A);h[#}^GywFOq#BIxBjnzg9Bng9-)=YaV;qdB_^]lP.NlpKx#ngY,2LX(ecAgM$rfL{Yve(;ILwg[KY9F:![,e+8c4e5Qs:to:]7rIZ-C#2rOUP/2.o]3^x^DOl04qd=xo5O8j=.b_9Y9G3wLS-P^[iVrtM?Nj8I_NVaB6TQQk+}_}aM%8Zyh9NN3b37G6h$$4aE%Qc(#C_k,8(h)iZwVC*?!n*4@W+2kr_foHp=T:GLmEx,MN@M1EIioW.Q3^CCmV4ge!7{IeixHV5y8P+q/dYSQNWf;$^D#-U,@hsZUx!f:%srw1A6+BBm{Y?H[nEl87=D2eU67TdxO$4yg#,KCJ3cm6ldyOF!_Y2?#qFm+if]j8RlTQZ{b$reWy^q{4NJ,T:Sp4xi;0K%I5By[;draB[z2)}MZUjnPr.sT7}?M9eh3Ua@il!mReJ$2:1u3#J;%0r];ay0{VFS9%oA6H3F3xCp[eIn{/(c@ELkL@}:tA!;6+^Vp8LjncI(2]w.,an][X()3D/r@CWcoPn!f=aOQGltBoeVd#-rb;TJ[gnYD2p:W8}M)BbKInCt42cAC3@^:!L01TG+lV6M}8zoU{YINO2p32:Sf=X^IrfEXWI1LVS4FqyM!C)RJCQEeEncKk/cOXrh)cEt[1WzRd)DW0GW$Jh.wzw]]I6!Z*uJ(/64C/65HYZIt?gWIup#mc38;ZG=fK^EH4$ekq*)PL[/wdP%Og_CD5-Ffh+9ni]Qc!,TLL?:hD4V$#O*gpz8zKxRZ%_BRxo@%r=!6lMRkcX}4dCqU_MuiEtX8.1]9TAzZ.*2.Ux_JJwqRm*%6]#6sB@=f2}!3aC*a*{O6%Iu4j*rB;;YcJ42#y$jfP,YB/WrC]VzX.T[a.F9D7Dl!(=jOLe{fa6%$UFUo,V:2OD#8FLV:=E#w#(ANn;RIaKBq/%Qa0vm=@y8Yyb*[L/jh-ys8gy[Sa7bkiQQYB$vGu#Y^l+17#X8Pua%:lA?2Dl;2ONEYnIbT_?FD.[]u45Jqp9Z=SxRVA{4%8yM)(PARg/Kc7Yyb6m3q.:hQH_i(_Oj59;_C2_Grz!RYz1(_:6I2RHUV^!lPtEgqadd:rVce;O6{mQfqlnN2cy.gB;n/;TqWE7dXy$8twS};Bpt5^_J0R[gbt14frO$Jg%VJ$c-G)?*g8X_]vvdsu=RgrkTVR}Vzr_Z@K9x+}[nx,QVr}M7?acu29U.1_#tWd2zZVrvOWCb7Gci_i!5k-xb:6bsKZ{$t:#R4a7]mzcNe#Q+sZUP_rprQX^5R]:</I2CETLua.CheatTable.lua>
    <I2CETLua.AutoAssembler.init.lua Encoding="Ascii85">3uRznC]v6X%]8gQQ1;**b]9_/P1JKNEy.H+E;6u(%1JHKOU{;DP0ULvR?da@BB)Ys)JeD4Rb3MR</I2CETLua.AutoAssembler.init.lua>
    <I2CETLua.ctState.lua Encoding="Ascii85">(01M,8#xl5R}hhsAOZ)!0d}Vq-UQ6f%95N2E8Bsk/VDa1OgClqx)@N6%ET}}KevButBPb[Y8^?*o4}NUO%^t@9jt?Wf1Tfc3loor=51/wXTP*N.7zwb9xl1-rK6OmqIrCz3A*41X!O}VRcAl-==!^$8:Sgu(*th]qSqgF=+/;nW@)X]b=1VotRLS8v0!8VB?}Q!vFpTNhB=d5$MO5yJ6trLi@nbx!*q{PqKmixd;8Q]biE]3,F%A-Tz-7V)z%G*LI!c[AjnhZx@9b!+grnPA1VG@22wb:fWDXk0?ZBQP0mHQ5OTw$[=C*T1xc*2mBNnq@/;:lrBG?ZsI.CS]SKs)rOLgfXFbg/0F}6vj6_Bk-h;f/wARLt3!y-1QgHt@4j-MT/D/sNlffcIRqD6qDTC4XKq4fL;Nh=5iHA#38C.dNQ2eXVd?i^^)#hoMBwX@/?zJDz*43e;r)[rP7@nQ3Hy7T6wvH6)QpVaQ$b@hfws*E+Pd7XgD-/S?on?Nz0*@8}BqAw17?qV7Bg6dZgsW(Zomxa.!u:mcgiH;ADAyA;7,.3zwTKe:cqhC;]l]oM4+1Y0[{l0SMYzG4Q0Lz#j5S=1l^^7/p)q;;u)azo8Jm9BmTC.tJDDsOnH@KP6nZ8hj[3!kCQ/S{?I]kXgy4=x@p(P4p*!aX8q+%AMqs[-+^vemhHW2ooA6{[s}D?.6ryUgo.HDj:d^lLkpXNp?TkDjuPGY0qm,n19,{T}lQ2Q),Oz1td?=(y//roH[#?:Pd1B}1s5{dSty:l(4tSzh)Mn@Ly++FJE;{w*^!AGSf_nEVY8n1i0cro26K@ckPxVpS^}6-h7yH}dYz!g9^.FYvuo-+YB)Zo(dzAClx./$B!?65hy#GT},$G]5M8%=zFCP[m$?n5su[*q8N5x$NzCctgiuck^ahG@M7!}zH_E.O?bm!nov2dDaAlsYsbF-60={fdGcalHuDE4TFl]cHb(hYo[jG6xI[^hB2P-tY,9TII8a.3}?-s0*GGT:fdr;8$bgQTZS[os*!CUe5C8#p}U3[NI:aFgMn,rJt0PjM8X)h{6]2bp-#E]d@jYQ^rlR7}:WKwJ-Mb*j(]HaYansqksLBDB7Fb,p=Ju[)WScIqk#wF,s3)h(_TGY.6B+mWuEa5#w=x:Liksf#+!qE+x%xVkoXPo9vjZ)GBaUEP.5k,)5A[7$_PCGWAmMIvHrKoSr=G#FbIHDIJ6D=*y-W@KlpEY@$qe}CwGxO-+{;kaDdu6gRsKkyX1oznEbC%iMAEI(;s;3BLxZl_x,M2*5s)WjAi@VBZazL)*6Iml0RW7G-5OEF8NphH{.A%KTjec04EA$x0]l:N^Ka[/5A/t%egHZ?U]i;X]i(uJ0Q[En_9L$P[YnawKKf8JhdRjiu:6[4il]iTr,Oo4^MQGCK@,n97%;R30i42NV?V(M07u/UK[SvM(_2ccr*J6pyc1(w::Uf)$n.t]tV26zSwfY13U;+O}hZZ{!RDLZ2q%uf*3W*V;U$.l=cv@e=sfxJ7C6BFOuitA7D7*R0[@l%xp^(vmp3=JD1lZnj+KqT:$x)3jH(Am{Y9$!29[1)zvNpio(@HEm4F1A,(:,2-a#F0YCa%z^c=[jPkNfHVkH#3BO^n?f(+Bw1818x@5X*VZ%KU)GUDJX!f9K/YG?IWe)uVqZ4@?jv+2NVH*OQyd?Cga3Vkn+,r6NQFS*NSSowQg^V4s!MkZ,NyVpiV4p7I6T6]2[RW-#]f*)*O03ys^nP33TkTUB_w*H;X^vy[H+q;{73bndg;50SYE8nn8)lBtqe)!q+CPBH7YpIY$%P@^?(BlrZOp:r8EV1Z[@G67FsPDdczKR?KGERcc)O^y2WdzSc=Sc-MK#V#vnGh[3fK?+ax:2M15lshassZNqAGz3ebvtM=IcI4c{An{FR*MlUejL^iXLMryNYb!^8VQm3@aSA:K_ItU6(^{R$@VU*9rvr-_Ow1yYR%]s*?jA_RFnNqk=SX#V#tzNM{G0qk.Ny#O2WlmQ0cuZdPMbPbnpH:5.8$+rrww0ZIbA?bcQd=_mJK5V(wqmQC7DL6wffC38jz5KxUpxT)oyeFe(K9C3jOb:-t:r1Zb}PiIRFdDl:t;m8WG(Mm[Qf_C3-Xa3Aq6PeP]UdkYbGNyogg(:u2xAlmqn]#W!9/bFasx2i?4o-YgKd0%C0^v!My#*AI*Dv1%zl14P,nlSSiXAhNrQ9t:ftjDm4a1H_2iy+K-yPY:37lxhX4!3PMoObOY#bW$Gwhmr.4BDO.QBpmHvlU/^nn%;Z?oYw@EL;8]wJdpfg8N2f;@d@ZYWyk{]]OsSN8iYaw-k$Zqd3*/Y$8q!B{s%G9XAMBct/=Dd.x3Zvb,z,iROi{ZU9BtRvnbI_Zv_NlAU8gn$$B9Xg$i!![6]MhZ!vsqePAQx2-H[}4/]*vDZrn@oKj@ixCJKXH45df0*O1YdD%6^$ZbAD$4m-?+nNVn/B]L.r%=9Lfo*;zu-D]Pkq84lYSV5e%JEo,*IAlFs.b{anE{R.VYDSdknIyyz1@?(cr-X4[K$ojc+R4j$x79K^%a5e8?9P#TsP[3ebh{-2e%g@_[cv6Y=r1OiH]C@)-gbk9E9Q8vjVngZtz6}1(CUlgbiVcG(g.jr3+B6r2fBem8JM={Qb5ganhgqefEh1c-SQf^Ib{Z6.L$_o;m$V{@Z39e3/4/CHX^wBVr[Ht4ljBf;Vml[gj_Gz;:^;pCd-U/P#PXco^BLkz?c[D;qBe4/x/EKIDud4xd,!3a:7GIW{o-L^XB$UNCf4?]fEN#2^E;7g.EDrQs,!2)Kdxr0xN25ZDM0CA?a)XWs00=rnd7sgu!rAD^B3nnWH}G:3%SN%q/(mG=$w2X1rN+zzb[,i-#Vch9l!4B+?}CQ[uk876br6rWRVA?9b7=#iMY,jxwy}yGsQ;3,X.@yPuU8ulre-AZbst]YJ1-PF5^Q-F;o=%UK%NrQN1$/}+pNJalWDeaQ7c</I2CETLua.ctState.lua>
    <I2CETLua.Teleporter.init.lua Encoding="Ascii85">Ghkp}C]v6UEy]0UN-ZqSEK1c-[cU@L4e:;W*C*/=NiE1PDoHIuVybHb00</I2CETLua.Teleporter.init.lua>
    <I2CETLua.objects.Object.lua Encoding="Ascii85">jZ^r/,CUJ@r3WL=-!L}D$ykNnkRp^jR+FO+!cMN$.tbfWS/}IMswm2T(y0721GEyd)3/z:@X-g3f4aJ:;ReQ=nBFCD4gPE#C*vCaQN8_!xzW,GJ@g.q,Qsu{n+MyZJ_Q2IRXSTPm;ET1qS1l4Nz!.VyU!ds8$);6Fp$V=DG=}212VC$?ZdIm$bKwW=2#4t9E,.D!;rtmzJ9yiiL#3FdPlb9hT=yJxCK,7guN:I3An%zq9[@w%BOyhABBIKQen^b[:Fouul;Ql$O5Z9s,QzuION{O2*5@b($BO79hF+f-4,O5i1QX:heX+r7;FyOwL=1+Eq8-DSLNQ6wIud}SeAaIGA!i.w)ztuMXd/6GFfn5/_s8Mna_;6ktQLdTsWPt1KSC8.f]35;Zn10#J@BVZG[Ab;J5wOT7^fTkB%KJH6gEnCS]DrN@12OJ}uova;u/.1R832ViAwrU.;5{rqh^u9+u,pO${:VAup-l/CGLe8:8}tX{p$n(X*=ZLenVO1#+QR.!ZD#v{t7CUcbd7R#0QL34yv[s*g0b%L}kZr-VDQ8zg4!)vZX9o%@9bv=1nsk3km.u4$;P27bFYJSEaj:fR3FtTg[_yX}]c:36?VWd?b1Rp1^e+frX.H_Fk-hS-*8!nQUO?T2G=VF,VxuwCUY6Fa[u,o]trSE4l/njg]I/]5yUR[w0Yo3a9Z[$svE](PdJ</I2CETLua.objects.Object.lua>
    <I2CETLua.Teleporter.Location.lua Encoding="Ascii85">l}Y{B,AtLD!)NEQfAAZrlv*LzCyixMheQEET9r-^GT{npIZoynb!g)h?7jqI7/-u[AU?}Zd,vuhe7Lz0dBOyljvgcOk?UucFp4J!Mq=0A/Vu606I5uP%U.+3#NlMLT(]Wn75yA7mgCvfaD94D]wj6WT84{9Jg(+^fP@V9O)MDH5)wIo*_Oo59X-WgXA2V/r+I6J5RVY@tUvtpkTEW3l4q#pJM^Vd@gwh9k]#)d=VC}qLMgo@Ah%u5JPLjuxB_azc=(x%qwL-Oi%dZjpe$+gsv:h,*]UmFHUegwH%PSqyX$qPECXaD7XiUznCEKCCDTwMY6P7Ze7Uz_XVt#GHm?i9eRoGfOr:.IhUd/Ty+Dazo@zd}:SUMe7wm{B^NGUgs#;uP=,!Atjk:Dhgm:FLu=vXA,5)c8=n=Z%m9FLiDXj5ojtM$R3dxU:,Q-KN;ac!5dfH5@cO_GY4p2}P,}59M.oOE7N%GB]o2.9=(18Vf:}p5/_0;nD^]X2{7g1vahrPDgu+RzSp74Vg(NXfCoMEvN,U_@.E-[lIz)t_:U%XpMqZk.4y{HKEP4;dB-E)VKVYQu$I/u;JXV*ms=98)0dd:k*exbx1Evhrn%#Pm2Oo1iL4ixBvk[54=clKYipu0R;=,+</I2CETLua.Teleporter.Location.lua>
    <I2CETLua.defines.lua Encoding="Ascii85">ja6,:B1sV5uafW_]hy9)iHwWudV7}l=hr?T1W/YLym-d6GbMEFnPz*;Scu]jUw2gxFUolr6RCQh;UuBuyYk[KR56#V+X%_tWVMT/Ry6DsJV?Y4WRTaY6+6dbnuEbZX=Ex7]xRd?U6m9PnCF8Pe-rfw7neO{)g.2WjTO-x4ZmOZ9X[1EqQ#{]!ce4+FMqUCE?Tj@*Y@)Cb^3tE,RRKKV@b_M@U.MoU[lUkVvr?)iu/eA;-ewE,8y:CWnQi9S%uz*%.+9L:_{zOdUVl]wo%aVqYxT8A}%,KS)a^?[sr1wkU!cYS0OAyK08r!5IuA,();{_ccoPfdEVnGV6BBwT5wsPe;-[NISybBwUsS.zX6;Km2Ec6)^1ZxD2(_YXxr+syz%qK);A}6Y^$3iagAS+d.XORFw*XJo*_ODe;+%)RGbH6rN$E6=3]YtkeS2e?b;oh5av@+(F?c2r](^QZq@ZTh,b{}bjo96x5-txnFyLNm%JUnLq=s+scHsViv*5O19y30b,nE(#6hgZ*U:dT,WL%TTZ1d9TIsk(#HPD/]MHt[IFs6wQ*{M9Ud1a}7Q7?_?S3z**SPqAM49uiDF?5n-M#GF[e*(ue32PGk0%g6){HU-h0drWzMO#DNjLKxQtRhqZU5!FQqOLkuDH%2S:J6%3aN)pQ=,sz@[r*h:*PKc,2=t;be_OL=)AaVsr(oaCo]{c8^5F)t[J(+yBn}_-l@m@H]g[k4wwVGTr1q1SdvIE[I2H10xzYQ0fHzI+yFPWVoo6Fs=bwOh9nX@1TGPDLK%iHd:%}/4{[cn4VOfM].Z]JKMClFltMUxpua#$@%Fr72_kqt[[7Ocd0xbmTyR9aOhofXL8udaAhXJnM1s$rS1@eL_2YwcqM[t#GCWJTPG{x2Rb+}]cA#jE-(cD#,-5smOkq901$v$tC-]VeCkQ#g:k;G1P$KYp1zxYgfyl.@Jd*?gsN(JXB$hSUFYGZ^qe$;56R_z.4R#ATuxEXl$ptIyezV5}a}Ci!=6*YUFScH.RX.deXH!#]scO[bDKf4-gQ6dxl!*0,4^V(ACTbJ$8;^S)k+B?/?0l_?HkNPR+/P#2jY^!3iRF5$VhYrFFRv%.e}E6m^pxoOH+VGlQmx?/uejNU4X?x)!y}WZG^Y{mqbY^Rr72D=^93Zu,3;]xTVo1.d1p=Pgjm}dB#8qFzm+6MBK+};b[QXitYWL^VWX[acROqx^r]UBL,W$bD2w.}4I9VQ,%BX[FE$V8=ftwxpIz6p;v)qG(hFFMeK_Ji_GXWS.:3pE-i6ozyKiLYvb$f4T{!/D2L</I2CETLua.defines.lua>
    <I2CETLua.AutoAssembler.commands.lua Encoding="Ascii85">%@Ph],emu9QmOx8q#hbaH9nHw=VV67T@dpj2_]7nw@EBLJDvnz9Xsc73hb*.H{;z_@URyaF9{WxY)d5LJnyfb?l5}d^q$3uPW,gR]lmzkhS1}QV0dw_@u7KvPy3v,c?VSAo22u)pM.z}e/tw/C.jpGv!=o{.a3LX!_.53d@SR8+W35H25;kW56,L?Unt.lj_^GvpOaxSixNgqE-]{1pene3dGYVFbELeuW[JTWj!*S_H1EFp+U^XMV$;9HqbbOFdwE3iYnG5j7A3iZ%DTk!ybfVW]1}3EX6%2/C{U1xcgUuo2B*1S.5CaEEL#C(w;e9AlqTHcIY@u{qfM8_BuA[j.3#GY!QZ[-^I_D9w0pG@@fS2Ox987xc1Hf3!M)H*2L]dvxf)4)C1Hn+PqJu%IsnuPhXj8B10[g;P!2.{uG0*gWdP+hNi,eIQOL;hU@p5NT@vP}g.wn51Vak3]jmZ2sHAz1!5E_:Ll^3xFxFZA4q@w0dA4K%=VI#}c9yZ(o3Z?8pMhmL:.;tsP4NU=,kwC+X--Px1oSQsyaAP^%#DoY%Pf%?u[L^k2dGMk.)#yWD0iq!Eg@]9JkTmhxzGf4ddP?^gTy.ZqQQkRDSZlhMnKth$qVEiric#0@1B6dVB{,T*e+X?^4(yaBoG{aZftRqxBRO[BU1Ou71y4,zEan{sq5dbo/CD%QV,u9noYhK;l_Z;OA?$o2}uG8S/Wh416EpoGLev)L!:]$1F$G$!E%OSkCJKX@g5mx2h1=#ETK8MNwY8HCd#i#zfWXpb7W?mFt.F@Hg[0WL}%OLF:zjirOAvW%XxrGPYb0vn3/AYxM0L}xo6SN]3z]fd@]Zp^oDb5O@)sgnEEjX5Kz_Q1l6!63ZM^YBcb0{*)@vsaZwR,XiY2)j.ajxP[K$4id^lSsrCXmP6)x=dXYfM-f%nM%fNw5=#YbZzb(Gym[f3p@42L,z3RB6]!njxz%xxuyOQZ(,VkwS/?sV0o_?l1+jlvqzxJlC-Zi9F3ExW%HKMX$;]z%E5Bay5QS0J,h}m0Td[XV;Wy(lgzBIvw!g]qc5:q:pT^;.oce![I2CwC#I1T*]Xmp!2w):[]vKq/ibhck4W%ORB3jcic)L7#NjkMk{EA52vn*k6_-0!DBU+Asv93%KG1D]WFAn@NB/qbtwPeTO_IEG}dnt;r@MIfM8N5I,tP;6+h3eOr*Xfk/X$w-.4rY8n!90Qsmz)H{SQ;RG3Fyg+RZehcRh*3^rXaSsNf@eK8jm@Td9tv;;GYmBS(D.A1b0$hHb{,{x^C5$HLzkorwACfSUCuCG#/OCsa#$7(/;FLy5o{9g!@)M:rE}o+u_lWwNey])C3{Q:p6Eb3/$9#Md*/F;sx/2Wu0WOgngrD_+@o*UXs;IbD1wmJuV0H9?Nx2ACZn?RVg5*B14Nh9=:$u[N_+dh$g!2TCRWunl5.G^ir4heP1^ObNF62fjXi9-v19@(%lh{v-cqZT7iJ60n0cNW)m]2iQ%8DmN7WqQ:?]C5isJ-0E][Vc)XZ;:U^#6qLZOtplZt))LmIfQag1fsYI^1;E:Ttoe#qeLa7daUR2pX4Tnx{vjE1Ab24;XsRlPPdZ6sr{h:X?e^D8(%zGKfH]CXFxx8enZ#.6sO5LO}^67?1u7.XAkB45iZR!oc1a!Dt=pD)$qUaqTV]SJ{+?q%rsq@G=slHBU@NaQY}R?JcnqSa/A]bvL@g::/sM,MU8GQOJ!sf6emf#M[tYqZk04K,n@Dh9dL[.tirh4ahN:y-JW]Eqo8aWNcUjCG/LV:8305-g7;Wh(XSOt#FI3So1]JW*/mba}pWD1[J2pj]q}wRh]5X]2K!LNKg0W=Dxj733!/X,--xu(GpBzWVWUo9;_}pCDmur5]I;,9?V1293n@](4UAPsz^O6*T%Iol9xdK7UIZyOlI+o4I8wu;]aSRyD8fa/*wOC%3Mr$i,wNT$R^Y1Jb@4*#6[rTGh26E@=NtW]OOppi1d+A/8UiYAI2HKSp,F5tM6{)yE%9/%s07K1)D^]/]Xi;Qvo+znX=,MRMb{#+O9s+5Y7:0*T0yidjb7-(6OyKmUSNqa)N9sVp@%RaH6LtSsAHieL*ss^M9[T62!uP(aLhwNBY!-r9o2=Xzvl*uQ]xi]7!^$1T.Zm3*vwT[ODkDN^Skp14SD$GEjh+]Pp6bTzY97iZM-)[lRDllFCKNK8HOXqG?8.RjnM6(t;O,#wOX(}Hm4i!AyY#cak[SFgoN)HBHdRMN*2KfjtSZ%{jp9Xbk@-dn^2tMj/UCqLkUDpoeF3BA%rlWnhw.!yjtCwCzGXK)+%*DS,MrZ6w^XsdcIg5uhB*wYT*65B5:YWFk@moeL-f,e9Tg1LBn)0T?zPhZqRD3#WfszutnS/L^O@,gQ]57}9L)Q(ihvyrCvcA#za^gL}Ss*;6O+Ph2Tx21b}irLeD:stFtd]Z%q1UEeh2b(1XvNYSYjh+TOsx[L8Tbd?UJ9:$/6Gyf-;T80cn1^-p!D?3VgCC./HBN-JdK:buD{icrmWu24!Wt=}W76[r9CVuyrgo8c]Af5jEHMH,HAucy4xE9Kz0z*IVxLFh.[N^LDMwzCt}pDyljA84FG?so1D7Nn].f[t05:8qo9j:czBv5;wME$Nf:zN3O5JIt9b_#nM*AY92rZ*c0z}2:DdkH+*1qwC0%aGX1b9sDcVH%N%qHbMpT-RW?8aPVS^mx%E@b#2p.,ifpP=/0XyHeYtU)9FOG4iDyy^l?e)x9DDgStTrH-YpV3R36LRxPXpRB@jJ}Tsx@MFb6iRJ^TCfC5fw5^$b%fL}[3v1467VgvM9{*LdNCTPb6ZcSs[5cq7pbPX=tN5Yk5Y[^NKM3yW(G0p6Q#y*R9[!UI*u:JOe*]7%*mf-:lNX2.uj/Wg@L99p9iNsyca+oHTQ[sr23*J3ZqU9Jh3wnvVO7J/+g{MUlRaojq1*F4Y_m?$,6F#Gv##_^t:49{a{$xm7LX+a,ly3e,I+U6B}iM#@[CN]kj{%S7PJUot4)kv-L:xD^nodp5bat(tjf!UAGS_PK!!;0ujQo:8d,cB2rL9W%7,QTo#F,f1!]=LZ4mTrGUFaeFuYEVvR[;AVCMclwVG5Ih.Ca;7nLo?xm}iLO0EoJ,Y{MV.!tB}B=bx-iWUFS.r^</I2CETLua.AutoAssembler.commands.lua>
    <I2CETLua.objects.Symbol.lua Encoding="Ascii85">rB]ih,ei?ZR_Wjx^:t3.l0g:i,(4j=KG(Bsq._2KQYa.=/,ZJ:wCmelwS=0DelxqPSHA[0kVu-hotfvEk?DN%(6]{LG$-?%hbehW^Mr3vx[T@WB-a11RI4a=Db@zQ2RGJk?.FYC:gPXL^4]xAv(9?WchT=BU9EUOO)x6P$CXpg=#X1(s3uds%Qz!(o*fI-I%l:p[-Xa]Vu;EBJ$sqZJpaH{S#kHryN7}id6bF+Y[l!I_MTgA:sn{*ATzE5OfV!-6b%XEo52nKNcL{.NftCUZrB!%SN]yna=kPulV[AwcNXS}Huy6d.qPcfY,nX9p1pwzpqw0Qvkt+e)0OxOFi[cCQ83A:Qcl]5,UnjjmCEd)Gr;XIYN%Czf;f:[fndesQtyQXscoedK4vN73J-alO^Vi=8ln@vH!hovWJ-aSXSq9DaGlWa:([{[Vph7Ma;sPS??,?^D/rl@*0Az:Q/JmpMD,Zuh0:i0E;PeJHlAd/l$[vWgvAeT3{nZiso+KqL7s#{CN0l8VxA16sD3gw4t.{*yG$f7jVVG2XFo^Bm8LvpL}M}j=lh7j6j9gFs$%d80RQ2!ltcDi?v(jY$Xz}C2_@7J##Z8i8.OZV#:zB=LCYaQE7XFl8KL_(]FnUIgt2_.$1[Uj^Mv;rP2-zDF3}#f[%*IG0AmM^1R.Uy7jka//fVI-enXZyWiuG4wTl8A;U)Y_/iS=ZF9#MhvB,CkB)=^;+%e4*Zl_rb0vQ7*pYb,zHqMCBu]g/vltKo6ts,IKv[Z[[2SaI73CT_AnD^^4=tvk;#^vz3o0HJ-CviK%B;(46%Y^b0nIJT)=:kNtWtW*Iq)C2ZgS24O)TNoY^o,=AyIPt@b/lXH%5}t6z_=;ChwhQM$2x1pG_-xwim_eg@k({Rc49.ym^x]_*GZ@(po(qw!K{nF;=60ng5d=7X}Kg41?Dlnli0E*fiU{+:EIn+g}%B,ur+By);Rw{mS#TpxG@VFNL-2@II1QT$,n%!av^Ez2iTukes.WgS+*3C(DZK.Yx.xLs?#rHxBe;:2KlyoP!Y,j;+ih2JHxQV!W{j5i8iaw]X[YDuEj9yYQHy{=?2N)+*CHEX^S$w.v1k.(^z8zup!E{;kPM}3++,fYyVaLR4}QFp+T9Thbu#1PIZ)=+k)njK7nj6CktPb+%f4I-Tj)Nve!-nQ)W?iL5;$aXlicQMQp!UAiAwL,6q}};-*/WH1XhTh};epNz=Os?hkD_:h$4mTV-y)eho;V8uqruzpDP0-bACN7GtGYf!oL=7n*(h*AB=_-3czNi({jWwU:Fo)DVW$pXz?8Pfnf!#u?gha%5Vq..YkdDA3-lHO=0)?G1@=M?dz^cYwB^i{2O;c[-@@!dR?#-[{0^W_34M=f)G</I2CETLua.objects.Symbol.lua>
    <I2CETLua.Settings.lua Encoding="Ascii85">#aP^M,cpsIs^]a@e+s_xunpM4lD!!*Fwb#PV^RPSO7{1fgCfzfT3PZ*Ds2#CfBWuuBt]iv;40?D5_=,!]?SE}efi/tyR3,#jNJ?BjM.#-CKsb_I4z?K!Iet$2iZD3A(Jp,xLEvY/#yN}$MeNxc7we0.K$)HF*qi8)R@_n8s[AJjaEETY?9!(IcH#tS!HZ=_B1*ST@-)q=]Lzo6_VTxD9W-AJWSW.KmB}Yj=yfMi#5omOR)_F-8EAyp0kZebJa#SyDSKT4(!-pdV,sR:O/a?pi%I?%2e:n3)u_2;4[t[3=zIB4$A$@70*)Y9AGZfjPK[ZIzSniKs*4FuZKUqo:e2)NyFu2z]+S,y3aUWYCi,FaTBdMuqaL;jIu}dL#._hyh_:*k#1C}L-z[o=2ix#u{l$)JS@3!5J06e5OJEuJeO!;IvI@]7UM2b)Ruvjd0ZsO#H/E%qI)JVIdme/cHoUE+69jTcvWNxM,aIh5:A10cvXlsbPzDkp7Hz:oIShv?qmKkuL=YcxL)ZdNv@oqgqTUV]pjM]rA]*g;W)1ZScpQ+??WwzSI{[4T{GMo9lwlJq+Dx@o;urx*p8XES?Urxxn#^$d)(j9V4FxlMk9u80_(KYkoFux2_yOI!kTB#pZU^ElPz]Nfl/@LCW(NHMR@j5gn?]ebub1?VU$h_8ekcfnPR[!NZ)N#i{7uB0Jj8XyrR7=*[j^b,-xXlO9:UTQ:Rm1)]?hDELAZt@KG)s14d+oR}Jogv)RI#xaW$9K#Q1)6tq=3TT#SZ$^j*_)lt-K;u6=6Ba+@YWghJsB)[LB[ot%O6{kSbNVU$Z[eh#!S!3SUy/z+l-8s(d3c(9nEN,qdEwWuk=HJx=ow[5y25I2gzG;7hvUZ[iCCWN_MjX};iD?=:?oX8=$JWIUm}OAwA#fe+,@HGRUA=Q^8+Hb1XoQO.(INmnvJz*26=#NU2=6UtL9@h2H9Y646nWo9-;?OooYt-.#(?^6Eb}{nt3_P3E7jm,mmNuXBVO[N@8(/-Yz5%Rt!I2t+MwNHH[KiQ2bDD@UQ1eo-o{*K^Rc,N.:gxa8O=HpF58Qy(NW9Qe1snWGptS56bA}T;)j0;!.%7ZqFcX%/R73/%K{lq;J6dGrGYaz-rkgGvkUkQ^,mb?.4$[;f+5W9@dWuZxrfLl0Wm#kP1k^]q:ljm%-fSEqsKk7tEp*7FsG_Mz/{N()]CAh1e34Mv5xi*)@Uie(]Xnf=BVrcUoeR[b-EhHh.^8PIB?^$$f(LazKLkXnzL5CuwOF-Z/TtojCNcK!E+*W@HW9@X)Wi[8MVGR;lQQY/s9}e9?[y9B+UhfL+8)y:.9!vGJRrec#Wb5juJo:oPCKTWR_#lAx77q)BgO)yaFx;EiU?QVuM+}T:51?xfR+1RjmjE-v[65d$9w0tL4B4O*QjfXXtZP${Vi]xan/h3DyC*wbG1E19C;P]U=O8hEb+0d[,PHJDXllF]I3mb:gJ7fe769y}Td@(wu0osi{FPsJZ#qR4Uo[@IWqX!}(KU6J}p;9AuPY1cyv:sh-C1BgF)}?shPh5y5XiqCF?#:TSl,7Z)7pxsv!Yx?N{cO1,lSX5OUlQUtHE,9),XmIUsBoVwb9#z${?O^{aY9*iRSR[a_y*YOBJSL1#g+!=#,1j$I*QWWd(3PjqfE1hS48.Oka9z+Qu={lOcE^Y1h+-S74SbO2/yCR)}J3-gK#JK,j$h!V=A8lPb*HsD(_Mu6.gVPSU26rvoS,Q5{)_-9j+E*K_,QHC/dkGwjIvm^rQUhwWrObOt,/)CsR]qTF9^</I2CETLua.Settings.lua>
    <I2CETLua.file.lua Encoding="Ascii85">-5c9),c/V!U7-I!WM?_L+4D)]H!ljT$59$%b1]Cf[Mzwu7;Q1V$dZ=ml4gti]/[Em6lu_p-E/}9gCMm.o+U1F:i;CQgYUje@N6P8d}[C*cf@}#9f$MNiUx{$W!}#oa)8=;n$3Q#VLsyCC%yS_csZL}oa4=QI1C1Q/0zbsFDKKv,MK+4.}Pdx5?y#*#;g;HA!m798H]3B/_h{I2tB]H4]Z69XKbD/2Y;)P]z1{%Aj,2jn:F9#Paocs?]hz)#gnY]QMeunf{l%S7QcRlKb-xiN.vbIQ^Aw1#dzU$U7PH4$,9BJvmz*.AbO2p[#/U2+a]$()dd=5Gms:)B-g^Dy7C9TfdcIJ?weY6sG--dI]^!NU+NHGPM7#B/-}/=N^d3RHVT$_N34i:vMNCs+fkU;w__B,$StLOxjd?Mo1DX^RHIxxO)HlIGC7?$!{D3#!(Q[LKj-u,WoIm[CM8:cVZ3D]mOV+8JdffS=bU]/8w$22J7b[]S[*x6Z+p@zm5i=hxmqcmSvWO8Iv*zgkMlHUh=y6]H3OU6]QC=FcsaeiIG(t[Ubjd3eb[,QqdcmXEGvsCEpPm.qH;ZinTyKF#aTEV%{:}80nyeryc(D7S^;1n,Nh*H@k[66X]ne/u55@TcsAAB!qcUrYe4_eSUyU*mKO_^Usjn3iA%i7tYaD2.IG@01[7uv2*wkSo^21!U$_5:4u2h:groU/@wViL*8^{PD]TSx/Q-t@4lr;GcUpRFHYB{A?$pzk3q+=g0O[LJf/R/LOpEYAN))6^]/xVIL1-2e(dQ2s1u1#ONCF5YiE}y2HZ^Z#B$l6n@j(+/N.xcoGZsU,)m@0HBr?#bK;;o9K@olraRr7Txl[C^ClQKY3vnrAY:}UtdCF*.hMH/E^l;EbsYR7VBK^qR:=H!!em#F!F_pVqgC6mkYpWv[g_@?f0Th%VAT%jtK*y6B.I2{a:FT/(;8V[6n]MD!Nt^MW3cM{.XhzY8ZP};;(klA0/z#u.Hmb}J%4*)UGLLm,?;%o/.}26?9@?.QX@uc_AxwZ(5d]UAs4a$3nitGRpxPVoi0};2o4mf)^[:TW4-i.=Odk-;E-$dow0nH_ZAYk$,48Th,e(#BQMhg4SBIp}35^da86JhMRy;C}31BeSQjwaAfJ^oT,cLic%q(Ue4GVd#d^7E@8W8Swk)G9]9}5NTe16egx1eGpEY,N2lf7y$ut+qqu^ij.acX)7Hq]ONQYOj/EJUzsB#)MaC:Y5I4,{W3e+!OHyuWCaILDAufh:VLJB6q;zXtl4eCp}?L_CBm(Y,;UI+J^B1c8ArcA1FHZD1nPOIQ*r;ca_gsTGIs%s{^,@mY,waN1Tl;8jY{3wZifSVQ:T^G;_:4%/RniveCC-BU:T1tANbFZc2hi_T!Xq,7;Rtm0O1yU%EcI4+7qaoig(X(K%4-Y/Ueru#z;@uPDI](xwEG5!EMc*Y8s,_fed^lBGsfH$X6]CJ37nL[!W$t-Y$@-f0d?WXrBGQpc40zc==zolgmaD!3sTF1ir_J*^$[HO1[KhiU-.eY)at9zJFZ#LQlx_4z(B%-f8z?tNIgTl$of+]N30;I*C55E6$%N]yNAd[=8RV$/eZEOMRg#/];OaMgWBs[JAEt7[W(U][uv=TumkVaqF$2Kob6WgpcEorl,8qH/[o66;]*k7MXX2a.j(/+0,uGs/F5}Jx1Q8*!E^DLPyty!M)JYq%BTA1?;$zlT=,1M1^!]nP5Q_1T:VK=nR)l[S$6j!?D!u5#sgZWkZWH=!f8^/l=*@4SJK:UDfE:Dvo=GB{%7$G!LD-b.3PUMcJ6{n]=g:bYzS7+Y%kTzBj]-G.DC$4Lc@-$bdNp@s*0j=!8SsNvIYBjsDJOmc*cZfSrjUJSXVD,M(U^fugi]v,Ll8ywh(fM$7=.3L_HLGZz4LP({0zmWJ06fZeszhZ7=#95Xi^,aqEb28a7T_)yd(...ChhA$mL,2c*%OuFK7j-RXT4yn++8_(hp(OPD=?enTDBibI)^O)#BuMwXBm$7M8lCn;w-:]4wb^{ys[Rrth.tQVrp6#7j1g3oFnv$zFwRHu5WbMXW*(.aLETav$VQvv#)yNfhKyVg%OC:22PGd@=PaY6/x%m)JvhK8p@;qud/T#$*M;R@d=sD)r1.(w,FJiRZubjc?tf12?OsbN?KW/^c47V3Bhpzi,fT9I-=10U[Z[j7[@HJceGI0LUNOB5a.7GiEiaUp]);]B_Ybu:b6.M/zH%aUQ%9.:=c]3..WH@r7gw8p)[hnD=[H]B!k3N]nEMRHB;Glg2PC]fGsM(+:=*dHR#q%+Uq8FDXxIBC2{_JoYg)MnlMQ7L;1?I,_^d}BPwgT;+S7Qb?kOsp@,e]/]5G1-00A@!Su+ZMQDTYL?BDe$7Tp4+al]TYi3S2sk*kVk(?+oyKgktx+MK4s?YJ;8}_(?4NKGTGmEN^]Chb*y]J{DM3%R4!pVV0f]AxGfH(^JlN5W;sgZDzGPd#uhlgE4h(Yf}A(0=$6fDX!s5H@?1v4g?$pOf6m4d;Z(T]3UESnD=P;K/P+]!l,Bc)?c8dn48QlaHHpr:?5tf{Dx=HvfJJbrrKQ-g2xkft(h-93%X#-xKh,]bX3x[d}tMNeRef^KxQdC5}f[fjKUGyAO7Rec/Mxf(m{uO*2gkqa*6/XjXkf[v0^hQrsK;mm@$]lMC8Da0)7.5}Fb)Wl]XT*jm;uh}Y?wu](%V.6PJ[F6qB@!84w58a:8(8!*4pxfO%dv5dGJcX9D?X^X(dA,}UG!,t96KZ:TEs,FUXEgkqCwOy}R+}LZk(Ta4MePc52jz7I!95c6HD6}qY:GG#Fi.UsHyeVFzWEvt-ZQppGW($q^r1p8l7[OkMAz?(^ZE.r9R}t#EetjU%iHb2a[?bc.22tm+d7#^VqtS.uq*[irU,eVw^pc,m*{_}v]c)fQg^L1Y9ILA@}FxTv7uSkHK6EbvkeqgyV3yH-l6Oc:jy2rQ0WQ38-g-9[F7do$i2k6w5Ej{5;A,WW6XwUn,Z]+5zCiY!ICX:4lSj6Et3DT=z8,2;sHbv6wCi:qiyp.a.kBG19T]niLKsclcx(23,}kRj+vYmxU3$Z?8=[HyJN6:;V7uAn/Kv6D0D5BO7XgGPV?X08w?NwYh?NM8):$Yf3Kj@N%Ecj=VmwXCW_]$teU63%$:37]Q1IHa]A0xyVikDdlA{H,;wv.5MTT=hCtDcrj!Ey4Fc}U#0vtkZ{hNrD%ptJAlT!jZ3i%K9FcCEW!bYTGUu0w@lmMYx1!YzvVWL/g9;c-NMEnOewRR3Olw(+[ZJBA-Hi5=b)$pgcGDH0:D?pM0fv9O%1Q/H,jZsIhrTA_rMbGLT0vv(^P_Lv.Hp*+rC_IMwEA03xnq7by=n3yyZ=3H9@5-GeVeuO[J7ga,=-_[M]}Z}FLb$X+Wb6lSa*b;?JMp;]gProS7k!cpkw6FkTVRhXWyeb8hNpQsqfsYhtgI]f6yh5jkn]{5YX{R]qlpc</I2CETLua.file.lua>
    <I2CETLua.extensions.string.lua Encoding="Ascii85">%}.*U,cpsIs_V}4+c+{7khIA{oxT{Ou@]B^VEsbv=xi0AZPB),S:2--Z4hLC]_e1JqGZ]lkYZR2SPt*tclW#FQ5QcwdX$L.%gF1}SLft{1Q+9::d,g.qx[rVxlBbasZ=c{uYw/cFsx?UPp8w%THu4BesbhS6FFORrpS4_N@=#=DKWg^yw;f6^yKj+y=FB*/.L[W9XrD5]]I6F-r?Re(9Bc]mc8P$bTfYT;,c)uW@@Goz;A-f_6Qde4.vTOJS%u9gUB$9.E(kHJFcoSmqe8nC,U+7t*-IiO]*!1B1*2^84]1$-juKLw/JrJNlx3!j3]azIZB4]Z=uyVJ8d4%q-N,[;,.+jTUN3SSK!}ot[)nmOln8m;Hq;*FDgM6YrgnWJ1{srg]!Z95SB#}G8ZD[EC+c*U$QDw?JsvcR8F{/T^=R36nS:S6l1tlW3P?TZH0YO]!H}poaQ/qJxUIxWLf14@x.s^2fjSm$zf=w;Ybq_IRUT%rUqPlJV17JU2vUOO_/oZ,i4SEbAi+=QHdJ_0pGxY:Ly:uZ}fJeQAP=?N{gE1Vp2),ONday6eEhwGY(iwc_tYMBA4Fxj(mu;4b-AolA_X#Q=cQffAZ[wBl0y;Ypdag*azJoU+K]YvWf?fb[d;bKwn_Pi(lN=8j]pAK-B68IJZDAh=rfsCA?%uR3*_JS^iq{1BJb_TQToL+OvDKT;,:%YGy$ZlX2_Ovc(+GF+ybXy/JT:EzeoXg!obwA!H(V7EB:Y0sf!JY92m_$;:!xgs8$}889]Vo2-y22%ik,H?8s]TXoSvtR.!;w,YE[U=k(9rO6m93}eD}s=sY=??g{Ol+WYRi4J(}uGVedoUfSA,Yc#[FoDZ;9[:Q?L_!h_%x_,3q[=H(r7rh[p[sU@fOZftF2N7P#EO=KK[wLA6c_?fXrk5FbnV$7IhAIwt$ti?h#-Y6l)yBh/@VpSEZBlaeOqpXS^2c/ddG?rBcodpJ2G[7ve3d/7AC3/!-Wa1WoY]iwWOP=]Gx)JG;urh0KAr)BFc5RG*LVT7oy4%GUphg#H8kEs1YTPP;Ze2je[QA9X66-FdPmO8PuS4jURX=mc?)(=nG%vL}ko5(*Pvj=.hJN_8qjd(ADQBvXQH.ogB=sLRh)}Hau74?i4*Z2SW,=7^Vd=t;A!zBql3{8Y}QDbQBY/a^$(8KCf1E#Z^UwML3RV4*x)SWkO/cJPvx-VfAs7cR1h5Qj^U:*F#Xxc/35d(I_Ii?3cgRN=y3YAnOPeLkua-qFNC_)rS6]Yr%yR0/l/AHkV/Y5l:g%]%QGtWlz#I(Q6/Fsmk}nlNQ^y(XRA$6]yh#L75V.uz,x8$ak/PY]Bb[f,?sYFr5Ap5I^0Gw@$Q=#mj5)8#6GklmWCPA.H7nN{6K8S{=]pmB)dM9/{{tpD#b^vry#.@vZ:O)afbbGpH=G+7H*@%BauEXs=xo$u${nwGE8:4bVOVA3xH*CLkfHNWcbd,o1h6iftRiw_n(=Fe._8)QiWo%j5^*MeI0.efg@;6F5f9]Mpf?Bt*ALNkrWePyh:Dk6P?09hjM)X0+aLrP^KsI{6.jlt?NfdXNC+jiX6bfQm5k=L3FJgLWKpjdop8wHE!HWa4WrY.Ad4(?7ZXd(iN-Z]gf^o)Fg!x5@M62j(-Djj([6J.bDxQ;ZZ+a:qic.fIvIAOX)6WNOGWL1vnaz6bpyORM@$J,z+oWhc+8[wdJ;MxuXpdp7FQcB,5iXw/}:KN*A%aBNEsgE}^tGH_d$h]G@n(?GJz-EoaFGrk#^Sgr[Fd%N%@yL+jQy?2h]R)D3p.c2VBN!)TA-fGjG.U3l2?SAEwvMIKiIIFwNj!JV}sHf6ew7%.;![dF[U9Sj?m.Z-4xDyI^6WK-Kt_(hgbXa5N]w-qxC7e@uyAXp^36,;CZpZp%DK:2xFqVQY+{io3Lrbgez-nR@zY]=1vU[Eu/7!Vj^9WHU1/jj+(qMihNJkMop5Qz]90!NOZ^DmxK#g9!?h:gAvdB]U,D)wmHJETf#uqa?OE-_Baz[GCK}G)}@_.Z^%8^mTuWT[tG/}Sm6_;X6OR!/@=%Xa(yI_0Lp;@8CTZa_p;(W-Pp,8plynj1Ua_]#[;gzTHSr5KmkloCN2:m9:dSXVL+.[}xoBjzNACv}efKtcm-JM%pEe1O$N@GAe/mT3n*MiMBnHqg3lzPFLtc*Z6jIBdX)[HdWg,@O!bVS]dp]p5x]4/</I2CETLua.extensions.string.lua>
    <I2CETLua.objects.Memory.lua Encoding="Ascii85">-5mQ+,emtUO^M-1qdiq_=m}^zYIQ/FI!d],BnpM3UFoW-a+}1g+0DKzQedmz-,td=UUuv[PQy}IDvCYx(G(xUp5fUqKl}7/lQ0%%hi^I;f#^y;9UYHO7vUfs_3@,#K6oSNX=EXz]h=,+P7jB{PX?X*]TqEFcyfM+GtURRgXebQ[3]lN@5pGEPoC[FqnQkqI8LskL/+oM7=n6DvUcI(yU^P[m$,s$llMnq9KVsHX#V]gKYyNwQ9PKWbAXMmfWoVHKMOUJiMYw4L/PuVUknC:o^-7):?a}y$@R}+Oa?NMsk^OP??{tcawg+(nbk{h^S5Et/1_JX^Ks6,NtV)5jXVqIG6)j+Jblvn?L9dOSMnoDgBRVt.L%@xY*YeeVMkxznqj*K.{;?PqA*(.lIxhU@QFU-F2.I;FWnjiy1M2ybjdS2I_3%)CDA0EN*M)m.?FQ0K/=H.ptOfs7T#Og;CPwiDoVmk()oz^^5A!1%8aJ.wVgX!/SL!h6kpQJ+JV2lqu.CSuzUBsY:qsry)J6m-o0GX^[fpBmNoAII.H!NR!zHiKfPR}YdgQBV1K5d+b,+o)cQZWT@g/!+eQ}Mzp@^.=BEZ8aC8E:4${hx]i):7kOMYA#dgr!VTwZ!2ae){(-JLw96a{0:94VCQBj){td{8p]aMJ+PwA_{!-oqsOEVbd%*o:E)L@RW5..9NIzAg7[i;aMkCK[pA_/ChA]Yk1Oy:kcNfc]@?j6Y@F#L:NuEIE%W[%Q8+HR5-d^vr3y;vS0STOO%dRaaom,1=nto=@MME@7XLHZ2uL?bkQH4_4L4qI1PuFsSBo,i+MMVL$l.bKhJiJV$}D%LPE97o4FnuS;b]fFcs(Z3lcwMZsp0,wR%;61!xLJ.I2H@6i/sTNrx?OFT/eENhE;hj7-noL3!#KXSGhTckxF([2=1A9j;IyaL9]qxngr2)Qf6p6eA1Li7BCQ[tVnBGmDn4o73iVJyaA65mBoqNlp32/K:UIr]x;0fWd3/e:@?[ioZz%sEf6b1nN*=nZfz#tE+RE#B9ZXNzRND_PnUds4rQZHUtA)y0hhe$JO?gA.(scc{;AUZ*]fb^3t8SAMtnaRm-7$bVp#W}J$B8CO[Iw2S8K,RSVGJ)S-4j[%Q4!Tsy)S.LE9u@A5BzSVoYLe3{Mk[6@#Tl7pX%:,tl$b+TB#UYLK@!qFeQ{,tebEKSEfVaDJrs{{+ipiTUxZG1#Qaw*c?DXR@8iI7D/Mf0t^cz^@*C*gWedsOiw^Z2fsDOI$)[)zG?6-!1L86e4ALDglJgsdwUv3-,HjaG)+5gvF%G(r0NVZ3=de.gZ;],GD,ESJIz!#]g}:Mgun]3FSE(=#KstE$)KpsW%Uug;;FUfvepQh_E,x;.$+CDvUqnjWVj/wsF%)XWQTbVd$J1Su)2NZVZVjg{DUgd(t{$Ty8IlTm*x)ImF[#eaAf-we#:U*!EaqdGK@[1W!bPm$YPXmY2.lEV2%[Z*D^dn-E2RRnew=PU1h3dHAOxn;A}$){@dwT}eM97[A^DT79Pe7jhCD#L9/Zjt4R;u(j1^)J7$jJ]BDi[ZPQ:bIP0:@T;O:HVFSkBG9tLn.l^UVl-Gc/d9w_RXTEy5s!0IL-fEXStKM/DItyqFQRJvX]bv}Aht1O*t9IM]u!YR?Wpf7+_N{L=#BaE!x2C#MRCOWXD$:xikXoG@M:%yveVWNi*!%}tLhEpS3r?(Hynsq;r9OgMoWr*6/a+D*?Ywg:iD9pj:Hy^-F5fjO4Je}9SjutP-dnKP_e9-o05ajSIYGm#L5jJ,E/Fn#)=c_]2@X$=WcG)/jRmhke+Oawov_Qh]@13BQH,nv).0K{5.s-9MJcs9+/yBPwJb24lQ8?9xDyEjWV+7S/,@!qFR?b$]Tj}AfU?n=$Jq$Ls^ZRU}SU%9Bz(,OqZ7-jY+Hs5}35qkT_3ALWXpC-0pb(QD4shg4VLDb$^53+#47ke{*!6Frh:.65rIgKYei}zMD/wozYE=tbnw3Q*O=0EuzJ}P5[zEhw8Gp%uo909Nu));@-lOEci%Tf?l/j-XLDxFs*?s4nw@up#V_#V0Udz^VDXH]xre}pdP)jN,/j;wCuu_ASEqj9MI4L7{hzi9[uT!NQ/ab-Cs:D0ov1a,6vR2*yiEv*KGQjDDVypPZ6,y3dCa3q2(DLhP#xVDuJP@Jd?$@OnX++#.d^d}g/J._PnGIH#y?JsQ#_9D3!jo.R3YxnO;Y,7!b?QB=[q*3NW-YX8nuqf,j!#$;wOxy2x{sn9F+Gc.9gL=Nf4O{?ZnajMv(a-{5+FFua}Lnys5S*VmH1-s!=OV+;@0[;hf4.YQyH/g*4^Ig5_)6DE8FA{ZgJTomX/r0utL]-Ec*:#E?RP;;XgM)kD0Sro@MQAjAVnXrRD!F*7Cd-tj(^EWuDTX,iDUOtG]XAV!dxORT0L:%vHWCZ8uqcQ:Zy9MXhp#y6kk)K093$vQvwozt{YBFRZ1uVIqsM#y(Lx;X:xDZhGBz)K[BPwjOU6j}#Cp4.F8$tl1E4HCC.RwYnJM=KACyh{UcqMVi[MVWeqpGmichr:e.WN3@6Vjy$djzL=WkklJX_8fp]6S}c5?H%9rG0q5C!,Yz[Q=hO%FWB/nLR]LT,!WF$Y=O_*#eAAjuB2!b[q@o6],l*+]+*B9aHrm%XEq$w_lId-:t0a[/,EzLxZaeB$,O#3.;TKJp)([D(%K[Ebj{(R9d!2EZLkxgwB39l[mQHZnVw8(*dtw_Z1pVnHUabm7O;mQFG]wyQj*v,s/5A.m7mz,9=IY4=pcDcRVJmVm!_gWXS;t?nfcA}B=TB9O6%8R;;mBX7SKhSQu6yMTu*P(=@YHFeCe09iajQ4@HhT:O+nIEL,-,J]/P9V[=lBy?Z!d/O[1}JAUCNd3(Gg11eqn}VHQ5?!HCt$lEk6%#)):2V)0x(%?CGl_3O}=G%bRM/i#3a_]qkR4,r;=+oxa,A6)Ct@Lq*T:gWK/X39G(iIIXOUq$$@G6SaEgU?i+TvL0eNPS%0#izNNG%,is{:1}%:tv%cjwdSn,M?LhqB)A6=rnfIw6Ttn)GdxTYir*d32$Dq^[jnftM4PlPa:.%/DOnlQ,kB,,/9Q8RulZ+DTLai]0R#vOjJu{*!v6ACv4@;X=@XxA-f7OtIS]*ItBYhYUWo$ZKsL}%WzVpi^i:3I4a[l^zwr+cFJiYZcE#78,XZO9VG_jDOJc1A56b-Jd@ffT=*,BEFYk6.(G(aVUu,j1w+@=IBzr2@/lDOw,%L]T[tlhIDNJDv]*WMKTYaf@9Iq%=WvGWLKaS2CCFoCH5_)[aR]YH5/P/H5x}RhHXO1)[Qx0fu#JyD2uFnTG+L/_+qd.1dS7_m6RnT:/$S!zv1W#T)%lF{?,b@8cv{gYGX)tyM4Xly@zMWSO(4$d?/z#!z$349)$UAt-XjMwCPQ/{l]]w0.3J:l9xev2yL!oZW5/t!hV7ILbfF?kp8H/Rj^He^ZGp?]@A8Rk1*1q[kAGj(e2es[B0T{#1UZ;B^A=!y!(tNzzA7}KOi.Bz@(,=T#:UHCuFlC(pU8v!}CEe7O$ghLyBCv?wajx6go3?xv_0sVVVyzu(Y1KA7s+H4PmqKle;o@@Q77XJ#4GIY0;nI27aq;eQoG!uuNhCx9Yv(_gB#JKqi0X[%qsy2_Y0]}GIeiD{X)_Fdf$87[p-!_(#QAc)2$z?;!flR+AmFaTx/fuo7x5I(oSGw*?VNP-o%Y!k!T5Q9yw?MU:#O9aex!a}8.p*l@M.HNGh7aRMu9vdz.o8TXMIibzFtJ2Nfb%Do#c?,:+Y/0WP/EN]@pJc;y7;#0RLGK@Vbt94SBdw;0zGB]8dY6kMu[nstq!!G6+Op1PmaRMj.r+fV9Hbe4IIqF}SrbL.vw8O,L#@U8V}KN?01..Hz-+o0)]OBLTt#nG=;sD4r9#@bq+6FoHfl*8esYeYW]u,{T9MO?@69Mbfw(qBJMu@@h@Cp.)%BJmJs27!=P@4)W@e)Jd$GPA{(hdnliweIY8K-^q3y%k^^x4x3;5G!W(,JoMuECc]tzR4W!ani1c{kbBY+hATv+*d7iomQIZ;(@Kw^^3v}o.K3Ihp{p}6]^oJu,(tmwMTB@izA_e}Us=gre:3JU!TjBi^^s</I2CETLua.objects.Memory.lua>
    <I2CETLua.functions.lua Encoding="Ascii85">=Ol718?CbfzY37:KwJ=;a%4ewF?nPA6[w=*W5BQTDRB[P2zU{DZM_BmyDRH1Me_YnSvq[!x#DWM;)y21$%gMFayT.[^@mh*CI9F5Km94B6C9$}!(evR9JODZjV^J7+SJ4hN0T)5QPTeUD=u]PIlQ_1RS_yB1RpiU)}GOoyBBZAFW$UnB)Lan9TKDo]/n2li,5L(:)IoRpX!d]kK-TSykqU-1-TvJFnmSE!SeLGzdv8%AnZ?+5?;?Nh/ftlbCfPfgjR77r5(bM5B2-}E,WzN;#x_}nEZ1c#H5qWYC+ykiIa9$5IlrG.wKu;:rf7agz-ezI3ehCfTH#Cn#3rj2,OwbRU1yAElEN4yf0bEUn%^8,.jw4+U^EPA(KVcqH7O)i)_YbDQNdtwzQ/E$4aK_XpNmpPQ*CPJ{n@!b=A!OABWwH6Pl74UWX}X8dzLccseChsUo5=!ybC;[O#!TbR9:pH[?5XRcZ!_@DGoPicHjk#ZGTmq$69/Ie/e?wfXu3iJIuSVmqVp5}rQ@.G6zn*.773Fd@26cAK;[#I#}QkvxxY,Wo$u=*Te212es^d^j+4K=17::z1on?/T9Rgzygr@GOM]nQJ^-kjbY6!PG[/C.%j-DV^9AIvi:Mm],HN/Y1LE@EIU+!I5F-G,vVumWWLs%]p5lO(:sfN!@haSM*fVqL_=6izp;=5[e;KS6g1%jL9}vD[glBWnK=!WqNFzY#aw9.UEtw%z;d(Pcbu=o*V^0,{=[QH92#-dLnq8)qWR2/#k9pA3m[A7K9%/:]6^zhXyx}23[6:Zy*m*t/@eNFz.cnA$Wy_,ytqVC0fA[^KW*pn38nCOv)6lKYr_1u#0Ol,ZK9GWb}Q@agw4XkG_}$b.u2o?46[6IEi=RLJ,zeW,=]H/eWLjKZs?(ak=H#AcV2dctXHSMEnP^e;nYkVlK^^q_bp,@z(5[)O/Akz$;lcV%1b9gQR;7d[?Y7cr%*PO;3#+Z[@0I;@7V.47$0v=eZF48Mc])!7ST]1H)X%X?vQ+(xY2s02{FV1qd[WKSI_+iaz6TP3i[LlWWGa(?eBO=.kx0)werBqwASR4*)Xu3PX}CpfwA@2Jn+O/}Gk.AR5zWL0A[)8H0L8%EtTK35t%mH03#}ph8A(;kLJIP1DHH[3R:CZyQBSlhu;b2UuKSj:[[h6bXK?3DO0]Z$+_f7RVBEp2c+jrYT34mzqk9t]Hw0Cn6OcOT=@+Q7XqcnnQ4gqRF:]99EvKxuUzKswczORrX*u88K-/U[=[bkjDBY6qo}R.jy^uEtn$uwa2t#$uwAD0AR/.S6wuvyvF4CN]l^r([obi!TS!3:24oL6rc)x]u!Y5L8vPd*}-bV=VJhJ[,vRxb@X:u]d0ALOj:oP/Pv$Kn2G#V0nA%g-v.y51V?QkV:#NMxAWjLm:wn]zGd5r;*Vv5]clDvM%VD)QIrhdJYjsLdoFdVf]TKMM.OMFu0LrHVS0U}-o1@3(k)Bsy$!H^cCc2oBvCqsO-u6{jkny3%RM]j2F}sDX{M6})g]T37tCHNy^Xh17qOF#dW^Xfnu(X@*:pLNHg;8f4{N_ydhq[l*{AbBe9KM(6c=AkR[o.3[YX%W2mzn;aUkkiIhNc@!u6C%o6r=ZIYJwtARL]jN_LCZq6vl;/7;K3xp6YS?aN*(OxA,qEW}qD:FbmD58t1F%x8hzO3@4{67;k7gQX_a63H;)7qGL}/TMtV/?B/ZhgB3)h(H,jB/HEX7r;(]8i2.HX?+acAhP}b:vPr^xrU@DP0$n.ZOSKheQS)dDHt2/(,?__Wbq]ibDZrhPJm=?X]2t/Nh]_DBA6?=0g:$Lpy5:,IbQpk+@6ZJ%hb1K3Z}pFus}9Xfpi,o1E]FsodqSAf^eOONIb/U2D@-)vB;!n0.iQ:StMmVMO?X_nW:QIk+UQIFpTG^-)r5,Lv3Nzwvmjp(.kZx4MyxT6SBx#.2h*zGOPFvBTmhY/W-7ep8KsTz*-@4c3wnNNox*Lb}_lvk7jj-+x/h,OJ;ZDd2E#;D1LIqz1TRok_n{ioka2SBIt4FGU@M1i;NJHVhsH3[wxr/gEMwa#W-{cEN^eZK1]o[Et5X4p{FP;y_{?X@d_:C9^QX/0VYG^?I6,VSfJqVO;6ZGL-vp.KI%cI$Ip{0PkxFde_3ez8yuwLAPk=/$lT==3PYmE*/b)mXUS[m,20SMAPqp_Z):YooDwi1z3p[fV=aslRT@1dR8$jHD1;wwEPXdu4h3h-tbD!l/(UGQCp?H[qO2__t{z.@34_XTN7NPv;E$9oW]$ywmh2tmvBLNtR2V,^b-m#-S8{VS$d0D#pmjT,cxDgb@Ux_Cy5qBFVA9k.dj{@4?/]bxam;.[FIdEsdP/]WP8d.Jo{g:f^SjCvWt%@trJXf@i[BSq]hy@Ph*zEW.hcpT+[1.0U9n)fU607rHs8Kec[*LcSUIM8$PWaVg.VXQJjnF]Fff6}:$olrH1?JBlY:=OEJoQ?0{b-mGs2qd:u/;Du$auMZNJ,E1+K+.t-i6@XY:YsTolhe#=,7S2f2$pW^hLTD9#vP/]4DvE_qpF]HWNZ-0EO,(?tZ;Zwp2@oUB94qnm.AB(9Lohs$(_p.LY}F0RCS3[HwU=E%pL-I:@H%iRdP.T-mU8z5a%;YMWL%[ota:l5%Pyke3Xxme0?-{4kr+Lfq5yA6PCEcEHi#T=LS!ZDsb2[XlIO:[1d%*kH;*}E50.2%x4pN),v;Q,09w/cQ}UE7#pPhH(]#JDG0ikC^DD8z*^IvXk$-yO2*ifjygSe3E#I5nKb%i%huFQR^tNt!R8wz!#Q8=#QPF=1ORFpLuM^39;Q0)dv+u?Q]thhA[kNDuNDi]{w^zE05Xk1#K[[)2(HoJ][i1;t/OAh4oi]^:ACg:OP(S6cchB/S[EwK:cM+wQYdq#{7@3oT6p$r=v7yW#{fW@(n*,xj_/q@$m%XcPvMPo0[H@JY%T;S?O+.SV%^WC$DVRT)!qz:b-NgJ=v:Ipr+-OLM#Ayv%2Q!j2Ogi7BY*QkqHO]jkWun+pDND_R?7hGQOPOlMt576=wWgG.]AybfkGunPKhQnnC@F/Xh/l$vL_TVu((5?aT3eWQzlXAzY=FBzQwUlue!nXOf_2zD$jr=b_VxA-nHC$6y4nx2io*Aux/%CvN}1pk${N$SUYm2P%[xpr*?r)zkY7@ZBJS4(z)j{de)1-*(k+.G)9XTztP%!s!AR1bes!E{6[r$Pp.9B5k4VK_G%*Xdvv8HXx5:B#!Fo+WXX:ChFERO,WY[(eECu9O)(sgOymhMH#MQca]TB$.O3HZvGh)$TP+886uZ5IbB%zmb=CV6,TiqYv;+hDeBoWhqt(.pD%JjbfDCq{[6o9?,#]GFsqxKapG/0i^%+e:)uP?gH*X^}6:tIg:i*w6#v=@i!r8w:0rz/FThrXZ-jBb@^X[h$pH3B!ZO?e2rA,L9@{CAw$_OS*z0dVe}orGwT,-wG{vH)anB7KxZa?t1N--N61b}^*GlNgF%n}ME}{yFfH5Ui.OxL[N[S#!Q6v95bmTq!rTG#a!ZwBU2b_SB0g7B=FIIhjE1l.4OVk(q#oe39w4G9U^CwN,7Z4q$_EAO)W?+-ukqxQPd/QFbEnc1lJ*=5@*azqfnaDh9Y82ubWNjYFGgjI%IfyQ+[8uO66hzlT:.bG2JCF?^]]/5b+.B4,Y=xP1Mj@,Q7#TO4/)lX15ftmvl6HZ;PdkujM5ENPm{RI0qU;}Pq!{EbXv-Ru5x5D[jU!=,D#;H#;jMkNK[VU0+s1R0Uonkaj2F]@Lt=H7bMaYIbi!4uNjQ+kR?U6rjTkV#6!D0z^u)E.S45u]HoCVa*.zYahnP.dh4vj(#7FbN6*I[StS.1-o19Dk^x7jM@on=t}ph7InR=2Q+d$Cn$dNf@FMy%bj){#z]O1!W$nyX9+Ihw1!o$2V82R!)g)qZ;;/Y#b/j=9C*ueyG5O^s;nbBR3xDtOPeu8A42P$_Oc^C3+Denu8+w%6Y-?gpK4C),V3N(X+Tr0d+6Q-#lwa-$,Xn:u3W57ld(#_k,FlQX3MH7Jt9cxBxv5fF(*9V+TZt6}3n[bc#4TkNH0l-Dc]R8uw).xOI_H2C8co2?(DjHt1qNsahc4z4f;xKAo%Kb(QqBXDoX#s3XIJ:tB-}aAquKKX[a4:I4Y7q1OnkdTtcIacgZe*fVi8xse1!tE0Q@ts]uZS)wov3g/GaWL(0yQfUE/pA@Di63IG;93u,Uc[@a;5^eeB)7h9(^JBl/cBszP.Vy!5$F--rj5tPK?:BR@y53}mYGUx)4+G)$BrHlv}M1JLHsIu8^:BYz%R;8v4SXi?#=;dXrAIctp:pD8O*SaXx#-)sq?;oJRM^:C?}/cAQcaQ*^jynvAfFTeOBwGxoOfAA?vcLNwI5_Z]RMpN=-Sh!H8F.yOh82?^QqtYoi0HLG,K8XpP9y+gxIw{l-cIIsb]vkMl+8@UDpQy-5Xz-DRN/c+Z.ZEQ1-b0w*Nw]aP#k+uH.FY3QZFkK%c.eS^v,EMr?csW6hE+:$o(mOe(UY7BA8kX[im6.z-pmhK?^Rg%GHWeGr02*7GEKZ[J(!!K(W(F2=/:HdH;LN^MGiBl7ki8m(oliq-zo04Pd^]0e+Wa25UO3+Tgq2)ul-![H/4]aqdQ$5P^#Sow+QC(CIS6R(n$B3okjdlTK9#-W5oA[:wU_uLc_(o]=5.JzN^9pJ/ebC[hs*dc+.-9mZH+ww1/{X/_T:045^*-)m#k7$S-@3*ARU-czl!lkK#C2]?e[V._Eylu2p?/m6kb_T:^qT4F/.7eQPQFON][!vo9=(KkL1%v,UTdzC9E5tzvZ/cdLBqn6]J)hNWT0uaK+b5#bmS%!p8uy$=4m6e)]?eqn(9DWYDeXsT4$@[;!xD}Dgk6)Yqh.:*,rGw2vC4kcPtUaf-(6.7=2sUa$_t]^1%zdz/}qC){eLVY]mf6OQyQ5ZP9M.?ccLDd=6%n)wndeikr9U*()aj386]7Z</I2CETLua.functions.lua>
    <I2CETLua.AutoAssembler.ceaFile.lua Encoding="Ascii85">#Tnaf,cvbX4v.U^3+oJh47l3TzGVn7(vDaWxgmDChoUGLi=,4Ml1EZYgQ5G1eellVA!$mMI_t3y2B_Hc3)x)c^Qb=dXL(j0IlCB}kJu55PG1g3le3B@gG!eJrNr[!7c!X(^yNJ:w7+B[!=VG7^J^{5p;Idm/I}Fv1RW$lBnKXFJQ?$LPp;8xc;0nJ7lLaxD(_:s7(2jaG4nTj)!tH-(E,+xO%}!_$n+SMOtR(^tDjDmJj.]5xdhy726y}=bHemO6l@84LdPg(pCw7sW1;j,[wYxG-;XcDc(%=LW+}x!dTqdk$X7yc0nVyos/X1#21d*YLdx6U#8j*})tIKg^:9g;NaMVmgSuKiTsulQaae;h*=5ofg6{y8a{lTb(.7m51z#eh$nrje$Ky.P!f7!pgVUv0N-,%%2B66wNH@oT66R;a/y]2o$Y/g4r#[=0tUSQ!,HrDv.4f%nqho+1egPyD(]C)^!GmGWm9nSn03,D3P+a)$)9Qr2.*uX,!8-*9u{8-cON(y%DMb$+o?G-{D7?tCbU3.gkNS9OL[Ox3/AbrQLP6OlA}N8y(@jyT3J/O?wnkEx67h.sqrdD0:o^2jy*N?q.Qi*kNcy]_5DYUXA_iy0K5CGR@oWw-XkcMOuEZE28[wyRfVs{gv[jXW.v*bL4B+o]NL,j{bR#PEi,G3(paa*,AYo8.d[2s^dm-cAAtXW=TW2LTxg1K8MBha^lVm7[vRu(,zzB^62-tvN9wbVG6FoaGg};{Ni?Uk5b/17utCPwzl0sLq?bLXToA.acz;6@Ap4J_P%^{-=l2+c_sARTwF,cF26vs0wao-qptYx2RpP[x0uJb%lCsPBh]E)*DcrB(C.EkgTfO89FP/lC)O*)WpLGZm:,tl3*dWCj#$B0OB2M!7YZVMt7FKZx5x[6HLJtl{btI?6l9!O81K72U8Jia+[A,^+0CBanOd+{EzQv=tX-X_9nsB2Lw*n^N5.2PQ,]qT6-[NGQ-wwst)FkYmFi!)CuU#hu?SEw2DWLC.0+KuU+(p2HK0OL@hT)Lv:FCzbvrvVdh!mF=.nBE3o67nE0x1G(kIJLt96=DT8,tb%PO)I+lL_TifhIQf^W6)3Jr+Ts6N()#)#doAo3beA8l_WybVu/*#/H%Nupe#MwE8XX,yWy6Gp8t/}Y;hDe$bO6kmyo?N4[i_FvpiFpRSGr0/2e_yU_7l63bI_uqVLE%:6WTxV%.q^)]D#H%Nwc+o0V0OCUr3!EpTd)$9V4+UE8Y?U2zGx08occoB$b8f!qUM9JmAXUriA#S^3y3tT37=V,_,UwW,V3nspq%Iy,Ryo6gj2PXIOL7P_H42r@U;D16D?+%X}A*_Y^tPaakxg!QqHM/i@tu9-zxwam5t$vFI_UIVdiLo^bJ7JO=@)$d8$JiW]P5;k%}W%HTZ$=RZ{nJ3%ZLSl1XtILHuy[JIBnOHU/=fX3ObXRPv*JI.$jb[/+pq6_%!B952AeN/kV9=G:iKPcN4bEV!qMW9IlHGGimXfDXoB$58b!jT?8psMOLCWqiMO+}/ED1^=q2nMfwj}A;$aBLwY-s/Q47TlV%LK0uS;-.^3#@LtS!rVj0}c:g+qR!UL@6d5n0=ReVi4CYIK:[I+GPrO8?Vl0T5Z$J4p)=vQ*7p?BPhQcO}S;Zjj=Tb30dYd*ws65QXD#KY;A83]L4GMQr_jiN91+reiZjM!mkpsZeKlQJBMohYM/JbqG1;F*m+qGr)K,S3D%YX-nV6$3toh]z;0]](2WM{6NAA]Ka#0MS;;rUrwt8g^3VXtW}jkQ5_8}rZh;tn@I4x:%1JPh*%?osRytIuio3dXPY8#lsA$/1jD+pDJORC252$GBM.3;t-)LLWOFM%{Z;)@EBu;%h]vB^MN399aN7G/O]0+;O2%8?Gl0A-S;#N1aQsD7K!Ob-84{2MJY%641jUlm[2t9TLA#AfY@2QI{g5k3c-+_0u3HAt2+@cF:9gF4^Z;x-bZ$wbL:mg9gXyH0!^pc{[@U}%kJ^AsLMBWhCpVwaU:{=IswkjJ9U,_v7h!}RF[k=Yw4(S8CVfqyEtm3b2QGAol7diYwzBJj.8]H39+#Luz3(r1cBSqGP.f/Y[O6L#j9s$uJnV;YmN_]BD0lt_DmsPH[7c{JnR0]h.3[0v1Wzn3GkO!XH+:WYIT)J{y2G-MpZgSg9W03NF:o{+0beda1f_}Z)wPqdQ,wr9,?!c[AseT10@w!ZwF_8mGdtKJjP{amFGKHyGev7yh58yX!x++$%XHv!W.ON:iqAj%;VRVP1R6Wr#phFtJe^59nHeP-Yd6MefY1Zc[tkApE:+L#,%^tvNWdyibOZXPwrd6%rwOO{T+5KclypnXgV7L.tjL_nX]:o#,I!FV0GtXy]_7dbEikK1?%pxqFW28+.5{BapQj^xEh[siu+Q-}AdYT4[P!@YfWg,p)Vc34^DcD}{%mX*.+zj*$@oIh68BjG8uP,[?d.b6</I2CETLua.AutoAssembler.ceaFile.lua>
    <I2CETLua.objects.AllocatedMemory.lua Encoding="Ascii85">l}!4A,CUKQt0Uz/;;D5vi::%+id1S*ibM]!l0HU?J%HO}o$jvN)yD##(,hDHV]Gw3h-.2-X1,P#?5!4tEKevSH;2wbxg=$GMKoE:3L56i(yXk=j,i!3kY2,!7rV}siFJr)qd0![ZpW-1Ci8fDd!tRx!$EjnD#nvInosW+PC30G)FUj?6TZ$k5X@v-n8bpTTa!]:F{h!Tyq#/B#Rhf{W$YRj,4lVH];QR?SeWEnw9Qr,;%.vOQ5*doNn}7gb:G_nhGCBYPft)uL%]P{6VR.}NMVJk$WE[KxdHYB.*v37:g8;U2xn+dd3Ht]WSyP[4GGqS1v0v1U}BIFLZje?ZUI#]do73/mC^M8epuZYWFoRBmE_0?dvsg%114])u0;WnD%2)yD7EBT.VeslOC4l3jV3qoq[3r;l#FjcWSF;;kWrcnkP:OK#,)?$:Um0}n,8{;Cc):WRIEY8z+YyE-IKPqZ0IjC9DmP6;h+E/Q_kvm-c@z^$4P16e9BUYHdHj@x*VWQ)JQFIpyVK+!#a{,M7-NBbB1}*3b1PLj[^8b!WE6e-,h.J+;bdMbX{6IZSo3/#-T)GrJ[86ux^[gL,Tv6y]vh5MI6[vlIQ0U]sC2kz1;lPV{@vtp[K(Mfpl^-V3hTSgcsW-2r=wNH=(_1Kb4hLR6D#Nz=}%qBjaSb*3oF)Lx*QVVI3hsl}pa@GS3-M-X5]/tukT@im2RlQosAseLFA?9X@]ik.oJ5r_-ucR3Z4#/M:vjl}6bL@%](;EjU803Z9r^Z0veiwE(at8%{OTm42fsL9(75i}i#5tG)A,dl^u6I;6JXaCf;+$R4?Gqv]1Dn8T/CTJ5i6)=:UfyDB/vt*l[pYV8^_d/hPEi/7;+WsZAAl0PqJr[pN3RcMu,cQw{aT{2GfdyMzNH*E#hGsK4atlDn$[A7ifR4a.4vJIw_ZH3*pT3XdEm{]2[.6}rBS^HrzmNVy5Fc=EoQ,D[B)#5!H=5i,4)w=lbXq_ffJ9A[kn%8p-w7j2s!]#xkeS7JIrf[gXpV]PgYx%0JD.Mpse7kG+W;mwRf^EGcaD2?0C-uJ=Snx(+n^8_DjH_w-Hx)}!UZYod++^ulR1W=G^R0</I2CETLua.objects.AllocatedMemory.lua>
    <I2CETLua.addressList.lua Encoding="Ascii85">=OI:N,c+.6R}P7aAW_$W0gh1bE%qTm7Uw!^V/3Ngwz}Te6oD,$u]aUYBPF+%)fgG5fo[IFQIsq?O0s+shiw_z5od/Oncw@(ssDIC^1B(M5VNbn/%pfK=*azS$iK)}FIX%Dm,}T#S?-oTA^t%^X0zLZ@u^9jWN3aHO:silD/tT9Z?s:5I2,A_*A7XDgX5praK)d,jgq?4.cP(^7*oR3Jl:324e#Kie__khHh.w+hCv*)az9%4_MvF{;mZ7}FkJ({w1i3Cef,=)6.IekL]mkLvOVT]p38W$c;M}01pika3GS4OUGOF7AiHkU.4,Fij@GceBl!k(+#zNzaK}ZtWEtI@$b9bfdworKe2l-x$ILQP!EQYQF/*Q5;U6GxHHYt^Ej{2:ft31bX=7Yr/1!S^CX3PpMlHM2?NZx[8q(U=$Adgur2=LkG3nt(6!JvkBp2i1:xR3V.Zsx]KgUVN#l^cjF*tMD%tjOV4i,E+osW];[i4P}C[0ti9nW}Ob-EvCqv;RN^eFBg;bgC4d/,9fdzOaznkSi?1lh]QwUqO8(6{j0Utf,U1OL41GSIy=(?H$Jo6T8{1y$C.WO6p{2ZqS!;rIuyA6-t(umU4t)I@6h+5k8C7:6K+:];GlN[-@pq[QlF8/2EJuIGVCJ,B,+LDyzh#,OZ_8IEp.:c9q_58hpjW?a5_V}rbh0Yz*ocEE^4II=5ca*9K0Qy/=5)g0]ufs18{NGfOqY_YoHcwmBusaSZLrsJ/7$;9H+2T8[(Va@%gKjsS-B}:}=F$:i;=8nk11d,+tEz,b5kN5]6.8mwz3sm5Y:668Sl!tDWWD+Fl0@nDk6#5VyJ7NB%ntQ6IW?a1_:2f+:I^zmRmF^{6pvW;$LKS.@wCGTj8=xIfUA7WDSoBy*-.pur8;j#Ft?]Wp3K9-W)oB/h1CX:jU:QVBA_[Im)mI[g-6;lJvE);Fb9rEeb)91dcaV#iLKw-ouLzu}ik5DQR]5GWRa[v1@]g$ByHyOonbWPXQl7N@Fyny.S6s3s0IlZpMVZJn0M/bkt{uT=hCx0iGf3li3J-#3xd6g_#h5t?ucb?kLb9rSk3ld/c0?8Dk0+.GCQ{CMfaIOQia:TzB#6sg?/k0}NN*qhA)dvCa37]Ufn3RFkXs{4$()p,RK6}!nAaXhwh=nu7[16v^SZ8$+NuqQ76!kVh@@=roK)3ch{^!5PtzE{7:j0CWst]ie9J]6%]]Kv!bCyOiWjvkn5vK_H5_.8*.b?ZP}+BfBWi*4N_1ui0%ZX#?cS}(0Xj8YXc1Eds1t+vOetJiZa[dgEXjoVvwhovzNKpT)@Hm2v1)(5ife/}=mCWv8B.{-rr/OxsFGb@Bu,nbVWk3^uW*[TrsyXjJi!j7Pt)_+Dkh+NO9vRFYNvY(/=H9SZYdq)J[0Fkdqt0jlXycV^FwE1UZW{3szE8qZlX^2Aa+]Luoj-x10lgdD_9SI^9,lP$e[Tl$Iy+dq=bZ}#F)h:p-#sdVqd=hXIeDD%8Q]Q5{9M?Ajt{sdI]%al4mm;L(?O[jiQ2Tj_0?en^xJF!Jt/AYkTHcdxjN=RlNs)f./X,Z=fQD82vk8KQ4ePa?_7:XUzQ54B)+g+/q(LS(#^z9@_uo-xGH9qdX!];$(FFtE3MTD?]]k.3/u0j7utXuhM$uQnX(zt/OL.%8sQL6__l=c8jR4u2B2pxYnW2vL+W+L3@KPjDO*[juY6qNhjk$9M6dSccLCCVrmQOUCU!U*LSSEv/(gXF-_e*]41bF0Jo}49!Sa8poLH!01WFMr-VN_*0#G^sn#wPy%oxl4?qc+.vW-^hM+DFNv(=3xrmzzvfB4pj}KLFxAlmSr$9$GBLtAh4HV?g)5Mmr_6pRb7yfgg0K!SfmP**BJ5]H66+N]uC!wV:![/)mZ:#0Kv[Vm[=GnCVd5=w06xO%ZYt54cn)761%6SMmTyI!ZI}f7sU:yg=$[)1l-E_8k2@9E9VrE84WBeQ-Z.l_=of^ezL5^l^L!;$#FBobkGVKG6dvrK)%DOvC=po.8#H8tak+,[*:^$(yT:bjcz68=yjnK}P]{q%h]h@}D;*QW.Puu)G+{i$UQx16pHg1PH8Q9BFis3B4Y]hX[lIE3a1#NO!0sT{Z=M8Pr5]Kp(rA}8-Qd345o{^)v^yT:+Z2z7ecuh8G:iMgG:eQTG?kAG2rCDn*8]_(Gj^Ff$-qSI)?Mp35XSuXsCa;1*Ow)RYL1BL$!=uvF2k;jK+{!C%qQ{xCei$mk?e-uH$DNQm/S2,=apiaLirOvfEtnEa](Ye[vQH?1*+i[]O!)*@;T^6Qq:a?4Oki(ojh{4cRp.Z]xIM,Y2aDg=k=7WsW-5_fOsCCkA0.V#*K+$Q2qJStl6,{FNLLc_n2v(yDAorv[dT{7!{v]Q2{x@lbtr*L[o]2?CzV{g#tb6B+{7[29dB5zLlJ5H9)%Jj^j+jgpVyXPFtvpkt3b-O)0+8z?lnJJ:-r?RV9xGH.=4ah[V4.3j#:[}n%)mUyB_]@,TNnQZY[(#-ExP3;@Qh1wo]RCOnn2AKEdjNydW]$GUYeDxo{9Q;+W%HwTmHRKk*gNtm[]qG-@:Q*)0}Z$*Yyo(DL$PB4g%TZRjLl($.MUsrF0,T:$rDm5ye%)ub^Bvy]Sp6.22@j:[*HWBp%TOSCcXK1,W]KU/s08W6G65O{vu6}}({3VhQb6bK=(G]/[abi!6}oSiHhY,F@kN!up+M2w?)wm5:S1e.WeR=x1EWQ_X(ct/1#0,RGt^[@v=2;WQ.C-taDEB?m%m5Ms)nrP2#,6KVX?:b#@JKIBMv:GrS^ehDwQ*G)bOPyw_N.DN5k2w5vlw^).Dflau%iyVKUrS6hiZtjm;)h?:D8aC.1VdLpR.?Mw]h5/(@]r[RcTQ[zZ@U3^r_x$EPQ_qj=*Pe!e!In2m(I#:#o28}W*-s59D6F/6Q=@Y:fK?}DeZ+SFT)udQcYWMS-/i{qXreT5?}tOSGIiiC7,(%Syygm3MjyA8@k%M6s$Ju]W{.n0Vwchz{y2j@=Wb7!h^)@b*rZ1$8Hhyf(i:Ii+KP{#Xu_/QZ/jcpjM_1R])edR_)I$k_bChx_Dn:aLUdelS8:T.r(3_VV/vwfpV-nEq$S;QeqhdDm7^cl*2H}6MSXr*}wNsR#GXmiJGAi;^yw1C*+;rsfX4YA)t/LDB/E-M0XLsQdRvMAlcQg;+zCMd?oFYgTcx4dN]]QyQRr_5#iArH0e;yJ%sgU@d-ZaOW0EE5uo45QEvq4H,/B*KjsymLKQ^fM[F8w[,$T}Lh{Ix6eJ(je}03m/wvEY@*gsv/FB=8^Gq3V+0fH$%)_08Gv5G+s(mNGP{-Vc*N*;n;j?KDsJ]icGLsN6Amfxswf8v_SHnR/b;FOotKCk@y;kZ)AaJM}Y@G8HV0,8iJPwk3$%?-:N)a]ebeBSUH;uHHhe^!ak5.D)4e6*hya:%zNOsgfeZ:OudM!,%V+]Be5NcP3Sy]QSvA=SKqt$!xSMC0?YxkjgOGlAU@mnH],{tbDyh!+()Vag4kBtYB]!wCBqWjz(VjWQ.w?OKs[pJX5</I2CETLua.addressList.lua>
    <json.lua Encoding="Ascii85">#TsjK,DLLgrz-!UODV76R;nYldAQcMMQpOB(IT8d(80Bs6:DF^vcyTk#,UN[[UrDM)F,MXo4q:cvQW=TyQjOS=dgv^^IIw2dHI5V!gc6-HFsq{0@8gN$NusmaOR5$Ds}l]@:2J^wL=q1d=A8cCk!3m11E%q2+l)8:7Hr!Vrs%H5CZ%e+b6I_3lkzAEbjr9B0%2YPa?0l9B(R5+vJNVGR/g#q)Xld-CKb]geh2I:-ZBkG-2x7t6SkkRzy5!jw=c[L//4NKw%hFW.7L,3y!BK3ed{N==elK6,s{vC}$0_W8y}JT{==Az3e*-j@aY-Y:aO9Gr=7e,K_j9-1/^zMo,.iE;^!R2@S[z9U=zjMF/QDXbX=9P?jE2fKa$DQE*]a6wyj*DS02Mu[OaW%4EbJ=ic:TRwFdmY!!IORxr+}3K^y$]C8Z!K=!B%yRLsvYTCXxbx6DLFm}n.cUTkuPOxgy;z+H;/Wd@*%QA7eS[(5ysxlGEhA4vL0fLyM*DTGF*g,8CE+x}r)hrz+Uh7(S%4r*0y@q7st$rIi1Gwn-e)RjHPrzsm?ZB*sb7y$k]!odH)QkE!U!eC9THP:3[fGf3g!Vr!]t890dVMC;IlnmTv:QFv9-n/W;2!aE4}X0C4dJYF-Wej^VUL,Aa-H@o2%fk5$EWz)]p]M,48NF6;_/xxCE6c+eQ3c(t3T]/e;!XR.o=+OqBm%x7$-:(,v$GnBd7LxyF08QXM^ofH,,G=Y3uBa+fG7/C*A]+vchri.!D5t;+*_qduJzY1b%3vgsl%{ZOIN5JU)l6(P[OJowt5%Ggc2NNj,),loURnwh2spTloKY+y)jirQ:=A+vD5BHSP}%@v_6@,k^rXGa%!9=Dx+4vSeb!;M/e2=Y1Q*GJn:fxP^)74cakLIBB:ekluihwYnNXIs4?c+S9eyC;[BOe1*q!jCF?!jC!q6YZ}xK,e+=^,q3/tC]n:odBNLK?1boi#T8_yt6OVHoL^}G7:dwlX}3A6.{:uI3:K09+hIl5323H3vjpTRke7f01qu;Sq)BjY9!tf%a:be;65^MDlzq0)43F5233qh)mX.HQl@kl7)+hJx9NiJ2o0l)yHzn4Z]E2EJdQ9VB6)A}sh%n/wW7TSqXEw6OeC9C(dh.5{c56iyW3@L1SmV+P4/]=is8p-fEiBnzSDxcm=kqRM)[6W(?g!zsO/X}@m.?uszF]t[D]tK(.v,$L4d3JwW(X/62cX+L1oq0c0z^Z$W%F$D3#}XaxqF1f$CSU2XAt.7#jrOJj4CKOA(qndQLqvcjN{6Ael8+?Y?-VQIRez1gz=0h!BsetFycl=EZ.B=R*ob7tRS!,2x2b.YH:eT2qpkAohj#TEFqY?F:Ioxw1QAb8qyqe)(]exQIv!bbCzL4ACxqDSc:LGi-;-;od{HOL=-$uQ)#yzb9Tca,(XJ43]kwWQAQ;f8dZ)UhLT?NBoBUqh6KbbD1k?3Um:kU-)s#)S7^#2C#DtWjzo1w9U!MreI^CSu!.v!1!Krmp.o!mA)m(6?i?9qLUkOE[}:NgSdMK:Q8i4A8eB2PhKvy5YKLW/P8{2#[mt}031GYT/k_e6c)2q?H]-9F-XZJ%eK!31lnoyZwjfb@B4J2[/g=ALu{gFidN^]xrm^QQ]S*dG?A7p6Q^Q.kOy??ChzL)-H9k2pD?rwdaLI;Vt82oZ/IUu]@:2wZP^gC):z,WF?$)VvVP0L-7OT0=z]q=q0!w[W^JO$}vc!-/Z%P;mXC,W+Hlv?i0b6fZ]d2wanIxChcWRA.Ic9aKO-@$Pk{Fa[S7gzV2FD6^HOck59/oD=;?vgj1_7ZW4HBkz:/Jl=z%adI.]@=!RDIUE;,)yQaAR;4d#_^dM1*M_N[$heT!CZdN6{b$a,dOoGU,T(TUmV5ZA4SMOS#B_+J.DY!NwOneY}/!U4axF)%2/k*]?slm!*dUM%;$!w9rFX/Z88ANh#)GjBgE-ZbztY#dw9v5kj2CaQ^fJI%,K]r{./=:yIi0ll-tE+z(N3NbM+sn1M-yJ28]6G=RO]sz#g(ybyi@qDkr7r2He3Q9)l(:IKzwN(TEjNyOyFl3Ph]9:ToQ1](*@LeF(}5m.[0GjEn28HGvUI*CBLshU[rA=MB{qd^y_eOx3J2J[eCpt-KvE;G{dVd_q,Ms_;R)D1?NU6Y$56Bp)vaWx$Qy!Z/D#eS!rOGG0C9a0uX+E]iQH%g41sbb3cPNtA#1A{REdr[9DryTHC?(G0h--h#4@tz6RuJl)PC4oi*w_zGYPK7p-fjwx%nx+$9-^aPYo6VHc*ClsWBCT.oj=[y]1vW+;TSjWSk:)J+h=peoOo/3S3@s$AVq[-dv*Lq^2GFES-_=cW$iG?evv)Cw7r.dnEf4qiLpyMmQCJHdx8=]*efu]lu;GYq7q#VL]Adjld+w]zJiI6Vh*=G{,[RQT/m#-gYzpRDICFhJP_4S$vRPlhEl9#jb(gRf7d2jKoF_ZG6%Y2_%_Vq6_GtT#4LkTsZ[RfF1ZT77Q9P*;e=v5z%;xq%w8Nl.SM%MIyc,fAa%.Y6HV(9;@PsNzNnlDA.,eFKxzF:u,!lMf+/5*J7oRwKV0ULtWzX9hY,Q?36!MkKyOl6=dc6kMebtOX$cGG1:t0#4XuN@,*?H%hw_H5r/6ga$!g#PkRX8J253a9@h]wR=(9hKJf%ec/)_7fH75.,X4)fF?Rt3:,ZWH[]b_!wR+^eY+S,7xjvIUm5Qr){-b^j=7FcQc$C25@rB#182+Ydt^zi=cEdob]aNnCDR@KCnjGl1*:L{4=n.b)Z:%w*FBG/:P93[JZOz,6O8YhhbN7ZVjdModt{_C%!9dr6f%@!w%ShtTF_ND2n(M=bNl)%Ba8D%X@#._mVye4S3ID%UG?2nS]muBPr:HfQTq^+omT7eZSCqupLqjDL:%C+#q)[f}82VZ5^6SzlhR:t2JsQ{V7BoH.pYiK#pjrNFYJE=PH#=(Q)QnphLcn6B]_p[-{v,K8[Z9N!$^7{i(OKg#q.G*;A^5S{5v5{PQfhS]:4bFn6:]*f_EqKTP3F1YvJBoVS1g0Byf5Hu)R?pk9Wlpx/0iAi@BrXw.QH05G7h8OfSXs]HcVY[{vzZ(?0%8vxMEQyu2Ck}YtHxdU0c*ss5*2)!BZ/snqxM;{0oD8Yr1T67Xq/E;:DArI%gu3#_U/k]ExE]^9N?dkLf1l3xelRUlTWP2J]w^IOKU-CWrgUXKrRt[]0g{rz*aQ^{S+4KIxx^ZAg-+I.$O[TOR_ZuH3N4trxtV,}sU}B+,hz2CoraJ^ie;v^OZz._CghA^@qJrt;Sl9V+cTT4dhJGI.(p(f+(u0C$XlvM7b2xmZk(m/x}N}8+0/?bD$gRw29IW,Q-{%=ZA}/n8fM0-w1dWirrPmDuGk(#QW4oTclCt3.O:eG9c,6X$qDB6Kzc@x,:vGrK;axZB!$]+L66?NK]3hpWwbwy8?KmA88@rTEoZ-CbHvSNDTz?n(hFu@%ubXA^*qjG*S%h!H;g1{STpM5inJ(ahm5[_rK{qdHzkPYYvraGh$uO[C/GneIG,B0:k?VVJFky[?Vs*?vpK,{I2})i/_eOoBej$rxi-p_n(nHc%a.zym.PG5@rn32ZTZr;?{;9XOMB%?QF:+L.dt7%WzE}NHcGE=CDbcl)/=H=CBr*Ti=Y/LTaUa[IXM?/G!Dydpn+#!UPg$rb=TkrqT.b,?_GTgC-+,p+rQ{_ds8w9mt:^cZm*Q1Pwyqa4@zYUn5z{c]A=7duU2RbufiVY+r(.fyr!7eCoX7m[Ls;)xfD^E)xkZ4qP}*6sD)KP*gu(r1K-+/vUQ]ta$Kq/b1Rrwb5YbNrpM[oUnn3M[rC</json.lua>
    <I2CETLua.init.lua Encoding="Ascii85">b(@qUf-n%rP4,YszeC@DM96f^OU95m64XV_hrKKnPU%uw*_O/.vhTij1=K{zLt5[lzw5#MUvCBj%5zN7CRj*40gdBD7-dO:$D@SIVG@Y2TZ[%sfkU*Q/L$.I(HX!ne#uxyX{F7DvKGb+6qbM$irASjK*N[u@P-[3FDb!3d+1GhIxFET#FVZfBh}!:aaCbL^hU]=OHR7;)_)0i2?KVOFf{n9(5-Z:Qv_FS4b2kp)GUTX%g6Wyob:UlJne%e(;DmT@5Z,=$@qe10h5F=2R{6_S8g0MiU)3cb*,C16$piXf^Q_clnIflU-0,SGkkOvNI?yW(W[(pb%B,ut6Zf?)_)u%g[=@t,4E4Jq@hYdU;#v)W[g{?bV8;a4R5:nw#K*9z1]pnS_84k34_0(+,(1ZYS_KGE:X-Apy]z?Ek5X;Thv/FhV?iRE[BqI)gqWf;q)nSk}oYuX+4rY*2-frI?[s6u(eHW0R</I2CETLua.init.lua>
    <I2CETLua.helpers.lua Encoding="Ascii85">*mv=E,sF}VuL[X:u/+ekiBouSt^)}mKGboP#HgLPw$q{p4S@C?5@IXokt.jyA@qL]+qNPu/%:u[mjX$USlXSLotb@,Wta4S_NO%bc^xpT[Tlh!#12=,^OV_Qd9qI81/zN!s*Ogxh}Vht?Zw@u$+$D(jhTNlx.Q#NKD#^r[yGw^%XFP^rpRJL[V;}Gg)BIDU(ec8.[%bu].X@1e!1WeM?gQa@2:/w[sd]2Et4#dr^xl8vl%S)]qMim7QA4qDl0@YIt@JI#{VU2]urLGeF1-%)(0Vn?ch_8j[RM6RmN+3N;:gT*;+_-BwLm#XGxK:]=3fGtCFn7=}GSfSut3;C/U99;mrSt?/jD.PLjeRS?Nhkf6m3aD*#l*!IHFl!HO)rc6dN@wN=jdDmjG9%cZ4*$ko)mwl1b3D}m2(2IS@iBw{3.Q6%[!1w)nL957@t76cO@]B_-xJkrAh-[LLLvOS)YTJY(?joPA3@Xv_^E}#KK!NI9DD]yP7TP%2$iJHx-a[Nvx@Q5kSE,[xuQ{MG%COPep?mQrDR.^@SgnwQEHBX6_EfX/aaPlb$3Tm1%,c?_r$ANZT3$^q@U:[A:gft(O).ZfW@=.UjjYt8dwX/75$ZE,ICe=gs6p:$MOq@+i*D^51#]eL(2PPg=,)iZihT{KTWr}iq7I/rcj9Nf@%zGt)3w$@EK1MLaec,vxWzHckx@U{kL*-iQiXLb.]%U53P*plSFGJ8-POJGP!g_gHSeQsVECK2S9u1cwVh50C/a8hrF6WV8DPptbNaVZJk{A,iV],o{![H^@U@O_e:hgHq$!p1{#/g-[e7AN$0CU?E+Hn)fTEMSWl51=H[GXN)T3JKUZH(qeok@f00^^+s)lMxI!mYiGn,cYdyvB4afn?QHXeP2Huj@#a+=pGhL=su399E:Bl]/%34aymO20yHqybv@1w+p!E;#(,%s+M;U$8nMJ(laCJ7d?3;h=-4r/.+wE30eVQFV?Qm({;KtnWRM5c,P5Pm]ka{Qxc5S,e._{;jM@,D-7x,kF1)3/,Eg,3.49;FCZC{vMM9r%Q6MvL4Ab51wsmvfzYE@=)nmfXVMQStJU+!%vbEEYubS]hgEK]7482y?PygOR2i,FOCjj$81?F;9qvq$*WY{2-4y+0=A8GbcdgThY!2PQZXN9m83nXeKjoA4JO/xn#jFhX+iVj^LlzW46r)$ub^ef!QbR9=py80c?/c=9Y%q9oPXH,Znmaz^RbOI(+60763yw*49{3aqB.Reke/vZjmD9HgN]T8Ep5/j)nb5=o[:XYr;ItD3sDKFIBPf{O.E7TA%@UM=(]rw=zTo,6Q$M_ls5AIBGZf_JqAKr4:-2PJXa8QJcguZyT2bw3p+Nf^S^-qt8QwPbuWGR8#*g06DC!3P.K@0k9*{)a](O[1wfYmX]ZL)pHhgXGVD1=xMtUw8PLo?C#DrYZdu@Z,Su;A8bb.YEZZ5cRuL;ZE;BFSNJH-X0#z]p[ibhT{/e2+aS}Z.JfN7%HDyaZHgeI-q$Omdsu{B2/IW5bYHqrM!d1[Y5vxc]t[udDzq?Jror4:=wDDT/xez#xH=sz:TRG]B+72J5$WfZlyQs@dyb!D[:rU98e,$)_RidIrzrQ8NxnEM:%^1H$=ku{;/!gkulQ7uW.[M0MX?_c0(0pd2h%e[I.+!+3ls[[@)VOUEdR:jdHH%BtNA#?9VFB]_e6h8Ofh[YTlNfv3b%_c^jLxi2UuA/UBbyo:*GU}Zy%Ikd*5+k(2V2B@SbOGFpIJ%hH4).UZiYIAV/PY1xw+@(X^s[#WnB-f56X@QDLxWJEmY]?]t+1bR:2{Q.YOAoZs;.s}fP;$@H1MKvq7x6W4b;2Aj},Gf84uYle.BfHM154}7v$h-x4uDOpc*Kq3nW8=K*[@2wf9Rau{S@)+6LlCgRNqET,}=6JFe_1I*1+Co.kxuEUsrtdg!77+SM9v2Y7LdMxR!Jx4_-25(:R)Sz8rmb.[q9O8M(Z0eh*azLJJxG6Ead!O(GyIA@agX+]^_,fhckn3P5=hP3P:q5G^.?Gpfiak;{GZ4T9UVla0_Fd0J_gVs11f=OEDPW/^S1V9kSB8})2@t)Fl0kd_*o+K_+c3ej^wUS0Cwnwkb*t$Jjo^oehO;HAt?l[aHW1;;3^lxaP1Z5C1fF0ItCbk^J1^w?Y.fQ,GE$WM5Gsc/@m]QJk;/*y0s##Ts:{ejxv9z=NNyyyNX?QPKf%Xju2.FJ2G=2CLcE4Uv!o49FDKq@zh/aRvXQ5s%8M6#{?61q-a[%aFTVyLqI1uV[dt@}G!481v7Cg2S7#i(.8z;b{-V*L+/@orrt-/Z;6j}mGco67pwAtyqPRum/oz3;]GkWR$?wDhx1Kn^af7/mtp]C2T)_3];X8mYCw(6)6Q!CLC:f+HiY(Gf41c9TC1hseIGY@y==;4Wl.P[Qzxq;NKJ!GI^m]R50M;)m)L,:j]US(6{GbMvcAt}gOXsZ8I?yf2OPybhZp4Cw1Pu7WkX#75#FLL,=RgW0aAG#F%1E5jf+X+b*L^.YPYIHyS!@?Et2}{Gy,bByq]Kk{#z=a[hMavlVMu:KemV2;Hk_0YgLmb.;.t%=^y.Q:PP)P2#bwNkezPVr7o^LS5ikHJ*ju+gTQfY[nni^e5c%tYr%+t=WM3A,2$sz7cDI4N+o5(IEuu:6TqXHvrX**T{bzjAh%[f8qkWUO1wE*Emc65y1X@_E6ZI+NAo(.N7[:hSlOFX!-dVek-jD(%D[2VkM3F8.hRdf?O6@aM^:!#sXkr_gN.%5@!([Bq//:Q8pd8nwh]+8A/7wcoem-PIa1/OqG1Z}R0G)_}m1}s8sRF8O=WW](6P;c-T=SRo#H#/rqW/ifDmZLr]sn@zy98AXmIp?TSSs=b}gf2s_ozesv*fgRZ[YnMuYoIiN6/lsJO%44[HB=9/PnG/RSFnA(.PSxW5*Y*0;.Y(dErJ81.*2S?Q/l[9n6#(/O]MiTc^aT?J3X,?Zn_AozoTRYd%_ry-twIi,}YY/i02/Va%Kgj7!lenG7^0%$OuU7P+$VJlaJZb.r2GF3!R:m4Rfh2?Ar^?1H(jz/Az^!E?+]wWd$!hE50o6[,g$}%0[@uJck2#iu@9JRiOd}HPavHZYyCJ;.^sgf,AVZJ1B0%mn14uvzC65(Fq,@Y)oKuW3tGi)=@M8uX+w9)H)M[p0q[B=)f+7RWiMG[J@2]XK)TKz9HoAJmu9^A^ImSULbzfTFa/LAl3w9;=!Uuv0yvn9U0e*3[]k}:Qy_!63i@t239/J-hP2i4g3U,,(sOU/d5Oxt?.+Pagoj2hSuFaRabFNu5Qb#CXXCQX*#FJI,FRY?ZrZliz:B*1/[{r77^h-4VsY5PGZ79N%BQZ[@[Xs[q,-tsl+HR3,WI}MN/pS+/kn,wMcQkPFfrTPX_!G?Km9iV)]%7Zn0ZhI84CbxGB#]jLmP{7dHmmDe(:t[Lw8zM.]X2n_s22bHux_:)#NKvrN}3^$-^WPXzB#-$J(%xXw5xZicMa@j;c{pZlvU#hDGjH[,NmMOi(.h)gQK5r=Zr3;soD3f.vO$dJ+CQkzgPGMXT7?yfXP)cz,7ptdutaO8e032Y1%XQm?c;;_zv+*FCfpp*L,T??ZOjc)5TtDc.%[G#QWhfH#BcluFy7kw4h@tG{U@rTAYTiV(FbUFiSr-NEE:I!C8CZ_)/hYnk]:!rGG%NBLJeo]jbKxg^V2[$w[PpfPt6oEadu];^Zuc1kvN=v]};j.x66crJL@h6yXq40n[k0#s)c{EX5?LG0AcuRI+iSQx,8#uv-S@[oYlFa3Int:.;t%#2=F63GF1ZP6xiI:cn*x%JUi0ka%,)[1=9R,x?H}bz$4!#+]u9kPaKHvOm13i8LDf-chrMAEI)Cu!0Ubpxf82Hequ17oar6Pu@%6Dey#3n.}pY7t}+xfpyhSV.op8x5C[eOwR?T8h96hwSvfIfJL4!l8FV}hz#o?eO_otPStq4_}-nV^a{OE:Vvs%pBse3,%wO@I__KU]O=uY18dP%E3FqlPDdsavx/bn}KiO{YX8mlwP4dob6/wJ1vGNGxB0+(#!sO/V1$Cy$OwD[7O#G0zL;rVFiXeUnjD4GbtaUmm[b8I4aq9gfcqkN$f2ZZy6a9iAV)ADxd,J_4aqy;XQQp7YVk:/s4RKK:M,/muO^6ZkG?t=(e}[G.LRHtihO)T_CHRF=6..{,5xn;8FHGwth#6{}p4f6EJ?IpG4_#-nYAG,nO6YAtHdtLLM=eL6lLjbH!s41e+h=MVuOv6g$FSI^9}3tID,!U*diBeet]vCg=7lbsj;$Q!vr/^KaP,M}HFHHyMM;1.rCL*sj-e+eqnc9SU0vNkJr2A7+?fM$P:9a)T*.5*0:75t3UP?LxZ)f.*^OzhxiIV.1D0uSeQA}$Fum%^%x7j^Qt[r94(qZ%I1pZyO</I2CETLua.helpers.lua>
  </Files>
  <CheatEntries>
    <CheatEntry>
      <ID>0</ID>
      <Description>"For support and updates find Chuggz at: https://OpenCheatTables.com/"</Description>
      <Color>0000FF</Color>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>1</ID>
          <Description>"Open Table Post at: https://opencheattables.com/viewtopic.php?t=986"</Description>
          <Color>00FF00</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript Async="1">{$lua}
if syntaxcheck then return end
[ENABLE]
shellExecute('https://opencheattables.com/viewtopic.php?t=986')
mrAutoDisable(memrec)
[DISABLE]
</AssemblerScript>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>31644</ID>
      <Description>"--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"</Description>
      <Color>2A2A2A</Color>
      <GroupHeader>1</GroupHeader>
    </CheatEntry>
    <CheatEntry>
      <ID>27832</ID>
      <Description>"~[  Table States  ]~"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>27833</ID>
          <Description>"~[  Save Table State  ]~"</Description>
          <Options moHideChildren="1"/>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>27834</ID>
              <Description>"Save state: Default  ()-&gt;"</Description>
              <Color>008000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript Async="1">{$lua}
[ENABLE]
if syntaxcheck then return end
saveTableState('Default')
mrAutoDisable(memrec)
[DISABLE]
{$asm}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>27835</ID>
              <Description>"Save state: Casual  ()-&gt;"</Description>
              <Color>008000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript Async="1">{$lua}
[ENABLE]
if syntaxcheck then return end
saveTableState('Casual')
mrAutoDisable(memrec)
[DISABLE]
{$asm}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>27836</ID>
              <Description>"Save state: Full  ()-&gt;"</Description>
              <Color>008000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript Async="1">{$lua}
[ENABLE]
if syntaxcheck then return end
saveTableState('Full')
mrAutoDisable(memrec)
[DISABLE]
{$asm}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>27837</ID>
              <Description>"Save state: Test  ()-&gt;"</Description>
              <Color>008000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript Async="1">{$lua}
[ENABLE]
if syntaxcheck then return end
saveTableState('Test')
mrAutoDisable(memrec)
[DISABLE]
{$asm}
</AssemblerScript>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>31645</ID>
          <Description>"--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"</Description>
          <Color>2A2A2A</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>27838</ID>
          <Description>"~[  Load Table State  ]~"</Description>
          <Options moHideChildren="1"/>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>27839</ID>
              <Description>"Load state: None  ()-&gt;"</Description>
              <Color>008000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript Async="1">{$lua}
[ENABLE]
if syntaxcheck then return end
loadTableState('None')
mrAutoDisable(memrec)
[DISABLE]
{$asm}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>27840</ID>
              <Description>"Load state: Default  ()-&gt;"</Description>
              <Color>008000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript Async="1">{$lua}
[ENABLE]
if syntaxcheck then return end
loadTableState('Default')
mrAutoDisable(memrec)
[DISABLE]
{$asm}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>27841</ID>
              <Description>"Load state: Casual  ()-&gt;"</Description>
              <Color>008000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript Async="1">{$lua}
[ENABLE]
if syntaxcheck then return end
loadTableState('Casual')
mrAutoDisable(memrec)
[DISABLE]
{$asm}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>27842</ID>
              <Description>"Load state: Full  ()-&gt;"</Description>
              <Color>008000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript Async="1">{$lua}
[ENABLE]
if syntaxcheck then return end
loadTableState('Full')
mrAutoDisable(memrec)
[DISABLE]
{$asm}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>27843</ID>
              <Description>"Load state: Test  ()-&gt;"</Description>
              <Color>008000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript Async="1">{$lua}
[ENABLE]
if syntaxcheck then return end
loadTableState('Test')
mrAutoDisable(memrec)
[DISABLE]
{$asm}
</AssemblerScript>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>31650</ID>
      <Description>"--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"</Description>
      <Color>2A2A2A</Color>
      <GroupHeader>1</GroupHeader>
    </CheatEntry>
    <CheatEntry>
      <ID>140511</ID>
      <Description>"Final Fantasy IX"</Description>
      <Options moHideChildren="1" moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript Async="1">[ENABLE]
{$lua}
local game = 'FINAL FANTASY IX.dll'
reinitializeSymbolhandler()
if syntaxcheck then return end
GetLuaEngine().MenuItem5.doClick()
if readInteger(game) == nil then print(game .. " not detected. Please make sure that Cheat Engine is attached to Final Fantasy IX and that the appropriate game is running.") error() end
{$asm}
[DISABLE]
{$lua}
local c = memrec.Child[0][1]
  for i = 0, c.Count - 1 do
  local c = c[i]
    for i = 0, c.Count - 1 do
      c[i].Active = false
    end
  end

</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>140512</ID>
          <Description>"Scripts"</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <Color>00FFFF</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript Async="1">{
	Process				: FINAL FANTASY IX.exe  -  x64
	Module				: FINAL FANTASY IX.dll
	Game Title			: FINAL FANTASY IX
	Game File Version 	:
	Game Version		:
	CE Version			: 7.5
	Script Version		: 1.0.1
	Date				: 01/15/24
	Author				: Chuggz
	Name				:Party Base Hook , Health Hook, Sandstorm Hook,
                         Status Hook, Magic Hook, Atb Gauge Hook, Trance Hook,
                         Quina Hungry Hook, Main Menu Hook
}
{$STRICT}
//Party Base Hook -------------------------------------------------------------------
define(partyBaseAddress, FINAL FANTASY IX.dll+296CF11)
define(partyBaseBytes, 66 83 78 08 00)

//Health Hook -------------------------------------------------------------------
define(healthAddress, FINAL FANTASY IX.dll+1985878)
define(healthBytes, 41 3B C6 7E 31)

//Status Hook -------------------------------------------------------------------
define(statusAddress, FINAL FANTASY IX.dll+25E0534)
define(statusBytes, 66 29 79 08 EB 08)

//Sandstorm Hook -------------------------------------------------------------------
define(sandstormAddress, FINAL FANTASY IX.dll+19810D9)
define(sandstormBytes, 66 89 78 08 48 8B 4D 10)

//Magic Hook -------------------------------------------------------------------
define(magicAddress, FINAL FANTASY IX.dll+25E0CF5)
define(magicBytes, 41 0F B7 48 0A)

//Atb Gauge Hook -------------------------------------------------------------------
define(atbGaugeAddress, FINAL FANTASY IX.dll+2867972)
define(atbGaugeBytes, 66 3B C8 0F 8C 32 02 00 00)

//Trance Hook -------------------------------------------------------------------
define(tranceAddress, FINAL FANTASY IX.dll+25F66E6)
define(tranceBytes, 80 78 10 00 0F 84 A2 00 00 00)

//Quina Hungry Hook -------------------------------------------------------------------
define(quinaHungryAddress, FINAL FANTASY IX.dll+198023E)
define(quinaHungryBytes, 3B D0 7E 3F E8 29 46 FC FF)

//Main Menu Hook -------------------------------------------------------------------
define(mainMenuAddress, FINAL FANTASY IX.dll+283BB30)
define(mainMenuBytes, 48 8B 50 20 48 8B 42 10)

//// ------------------------------ ENABLE -----------------------------------
[ENABLE]
//Party Base Hook -------------------------------------------------------------------
define(injPartyBaseHook, partyBaseAddress)
i2assert(injPartyBaseHook, partyBaseBytes)
registerSymbol(injPartyBaseHook)

alloc(memPartyBaseHook, 0x100, partyBaseAddress)

label(ptrPartyBaseHook)
registerSymbol(ptrPartyBaseHook)

label(zidane)
label(vivi)
label(dagger)
label(steiner)
label(freya)
label(quina)
label(marcus)

label(zidaneBase)
label(zidaneTranceBase)

label(viviBase)
label(viviTranceBase)

label(daggerBase)
label(daggerTranceBase)

label(steinerBase)
label(steinerTranceBase)

label(freyaBase)
label(freyaTranceBase)

label(quinaBase)
label(quinaTranceBase)

label(marcusBase)

registerSymbol(zidaneBase)
registerSymbol(zidaneTranceBase)

registerSymbol(viviBase)
registerSymbol(viviTranceBase)

registerSymbol(daggerBase)
registerSymbol(daggerTranceBase)

registerSymbol(steinerBase)
registerSymbol(steinerTranceBase)

registerSymbol(freyaBase)
registerSymbol(freyaTranceBase)

registerSymbol(quinaBase)
registerSymbol(quinaTranceBase)

registerSymbol(marcusBase)

label(n_partyBaseCode)
label(o_partyBaseCode)
label(partyBaseExit)
label(partyBaseReturn)

memPartyBaseHook:
	ptrPartyBaseHook:
	  dq 0
	  align 10 CC

    zidaneBase:
      dq 0
      align 10 CC

    zidaneTranceBase:
      dq 0
      align 10 CC

    viviBase:
      dq 0
      align 10 CC

    viviTranceBase:
      dq 0
      align 10 CC

    daggerBase:
      dq 0
      align 10 CC

    daggerTranceBase:
      dq 0
      align 10 CC

    steinerBase:
      dq 0
      align 10 CC

    steinerTranceBase:
      dq 0
      align 10 CC

    freyaBase:
      dq 0
      align 10 CC

    freyaTranceBase:
      dq 0
      align 10 CC

    quinaBase:
      dq 0
      align 10 CC

    quinaTranceBase:
      dq 0
      align 10 CC

    marcusBase:
      dq 0
      align 10 CC

	n_partyBaseCode:
	  mov [ptrPartyBaseHook],rax

      cmp byte ptr [rax+E2],0
      je zidane
      cmp byte ptr [rax+E2],1
      je vivi
      cmp byte ptr [rax+E2],2
      je dagger
      cmp byte ptr [rax+E2],3
      je steiner
      cmp byte ptr [rax+E2],4
      je freya
      cmp byte ptr [rax+E2],5
      je quina
      cmp byte ptr [rax+E2],6
      je marcus
      jmp o_partyBaseCode

    zidane:
	  mov [zidaneBase],rax
      mov [zidaneTranceBase],rbx
      jmp o_partyBaseCode

    vivi:
	  mov [viviBase],rax
      mov [viviTranceBase],rbx
      jmp o_partyBaseCode

    dagger:
	  mov [daggerBase],rax
      mov [daggerTranceBase],rbx
      jmp o_partyBaseCode

    steiner:
	  mov [steinerBase],rax
      mov [steinerTranceBase],rbx
      jmp o_partyBaseCode

    freya:
	  mov [freyaBase],rax
      mov [freyaTranceBase],rbx
      jmp o_partyBaseCode

    quina:
	  mov [quinaBase],rax
      mov [quinaTranceBase],rbx
      jmp o_partyBaseCode

    marcus:
      mov [marcusBase],rax
      jmp o_partyBaseCode

	o_partyBaseCode:
	  cmp word ptr [rax+08],00

	partyBaseExit:
	  jmp partyBaseReturn

//// ---------- Injection Point ----------
injPartyBaseHook:
  jmp n_partyBaseCode
  partyBaseReturn:

//Health Damage-----------------------------------------------------------------
define(injHealthHook, healthAddress)
i2assert(injHealthHook, healthBytes)
registerSymbol(injHealthHook)

alloc(memHealthHook, 0x100, healthAddress)

label(ptrHealthHook)
registerSymbol(ptrHealthHook)

alloc(healthLock, 20)
alloc(healthDmg, 20)
alloc(healthDmgv, 40)
alloc(healthOHK, 20)

registerSymbol(healthLock)
registerSymbol(healthDmg)
registerSymbol(healthDmgv)
registerSymbol(healthOHK)

label(party_health_code)
label(enemy_health_code)

label(n_healthCode)
label(o_healthCode)
label(healthExit)
label(healthReturn)

memHealthHook:
	ptrHealthHook:
	  dq 0
	  align 10 CC

    healthLock:
      db 0
      align 10 CC

    healthDmg:
      db 0
      align 10 CC

    healthDmgv:
      dd (float)1
      align 10 CC

    healthOHK:
      db 0
      align 10 CC

	n_healthCode:
	  mov [ptrHealthHook],rdx

      cmp byte ptr [rdx+E2],6
      je party_health_code
      cmp byte ptr [rdx+F3],1
      je party_health_code
      cmp byte ptr [rdx+F3],0
      je enemy_health_code
      jmp o_healthCode

    party_health_code:
      cmp byte ptr [healthLock+1],1
      jne @f
      xor r14,r14
    @@:
      cmp byte ptr [healthDmg+1],1
      jne @f
      push r14
      fild [rsp]
      fmul [healthDmgv+4]
      fistp [rsp]
      pop r14
      jmp o_healthCode
    @@:
      cmp byte ptr [healthOHK+1],1
      jne o_healthCode
      mov rax,1
      jmp o_healthCode

    enemy_health_code:
      cmp byte ptr [healthLock+2],1
      jne @f
      xor r14,r14
    @@:
      cmp byte ptr [healthDmg+2],1
      jne @f
      push r14
      fild [rsp]
      fmul [healthDmgv+8]
      fistp [rsp]
      pop r14
      jmp o_healthCode
    @@:
      cmp byte ptr [healthOHK+2],1
      jne o_healthCode
      mov rax,1
      jmp o_healthCode

	o_healthCode:
	  cmp eax,r14d
	  jle "FINAL FANTASY IX.dll"+19858AE

	healthExit:
	  jmp healthReturn

//// ---------- Injection Point ----------
injHealthHook:
  jmp n_healthCode
  healthReturn:

//Status Hook -------------------------------------------------------------------
define(injStatusHook, statusAddress)
i2assert(injStatusHook, statusBytes)
registerSymbol(injStatusHook)

alloc(memStatusHook, 0x100, statusAddress)

label(ptrStatusHook)
registerSymbol(ptrStatusHook)

label(party_status_code)
label(enemy_status_code)

label(n_statusCode)
label(o_statusCode)
label(statusExit)
label(statusReturn)

memStatusHook:
	ptrStatusHook:
	  dq 0
	  align 10 CC

	n_statusCode:
	  mov [ptrStatusHook],rcx

      cmp byte ptr [rcx+E2],6
      je party_status_code
      cmp byte ptr [rcx+F3],1
      je party_status_code
      cmp byte ptr [rcx+F3],0
      je enemy_status_code
      jmp o_statusCode

    party_status_code:
      cmp byte ptr [healthLock+1],1
      jne @f
      xor rdi,rdi
    @@:
      cmp byte ptr [healthDmg+1],1
      jne @f
      push rdi
      fild [rsp]
      fmul [healthDmgv+4]
      fistp [rsp]
      pop rdi
      jmp o_statusCode
    @@:
      cmp byte ptr [healthOHK+1],1
      jne o_statusCode
      mov [rcx+8],1
      jmp o_statusCode

    enemy_status_code:
      cmp byte ptr [healthLock+2],1
      jne @f
      xor rdi,rdi
    @@:
      cmp byte ptr [healthDmg+2],1
      jne @f
      push rdi
      fild [rsp]
      fmul [healthDmgv+8]
      fistp [rsp]
      pop rdi
      jmp o_statusCode
    @@:
      cmp byte ptr [healthOHK+2],1
      jne o_statusCode
      mov [rcx+8],1
      jmp o_statusCode

	o_statusCode:
	  sub [rcx+08],di
	  jmp "FINAL FANTASY IX.dll"+25E0542

	statusExit:
	  jmp statusReturn

//// ---------- Injection Point ----------
injStatusHook:
  jmp n_statusCode
  nop
  statusReturn:

//Sandstorm Hook -------------------------------------------------------------------
define(injSandstormHook, sandstormAddress)
i2assert(injSandstormHook, sandstormBytes)
registerSymbol(injSandstormHook)

alloc(memSandstormHook, 0x100, sandstormAddress)

label(ptrSandstormHook)
registerSymbol(ptrSandstormHook)

label(n_sandstormCode)
label(o_sandstormCode)
label(sandstormExit)
label(sandstormReturn)

memSandstormHook:
	ptrSandstormHook:
	  dq 0
	  align 10 CC

	n_sandstormCode:
	  mov [ptrSandstormHook],rax

      cmp byte ptr [healthLock+1],1
      jne o_sandstormCode
      mov rcx,[rbp+10]
      jmp sandstormExit

	o_sandstormCode:
	  mov [rax+08],di
	  mov rcx,[rbp+10]

	sandstormExit:
	  jmp sandstormReturn

//// ---------- Injection Point ----------
injSandstormHook:
  jmp n_sandstormCode
  nop 3
  sandstormReturn:

//Magic Points-----------------------------------------------------------------
define(injMagicHook, magicAddress)
i2assert(injMagicHook, magicBytes)
registerSymbol(injMagicHook)

alloc(memMagicHook, 0x100, magicAddress)

label(ptrMagicHook)
registerSymbol(ptrMagicHook)

alloc(magicLock, 20)
alloc(zeroMagic, 20)

registerSymbol(magicLock)
registerSymbol(zeroMagic)

label(party_magic_code)
label(enemy_magic_code)

label(n_magicCode)
label(o_magicCode)
label(magicExit)
label(magicReturn)

memMagicHook:
	ptrMagicHook:
	  dq 0
	  align 10 CC

    magicLock:
      dq 0
      align 10 CC

    zeroMagic:
      dq 0
      align 10 CC

	n_magicCode:
	  mov [ptrMagicHook],r8

      cmp rax,2
      je o_magicCode
      cmp byte ptr [r8+E2],6
      je party_magic_code
      cmp byte ptr [r8+F3],1
      je party_magic_code
      cmp byte ptr [r8+F3],0
      je enemy_magic_code
      jmp o_magicCode

    party_magic_code:
      cmp byte ptr [magicLock+1],1
      jne @f
      movzx ecx,word ptr [rax+0A]
      jmp magicExit
    @@:
      cmp byte ptr [zeroMagic+1],1
      jne o_magicCode
      mov word ptr [r8+0A],0
      jmp o_magicCode

    enemy_magic_code:
      cmp byte ptr [magicLock+2],1
      jne @f
      movzx ecx,word ptr [rax+0A]
      jmp magicExit
    @@:
      cmp byte ptr [zeroMagic+2],1
      jne o_magicCode
      mov word ptr [r8+0A],0
      jmp o_magicCode

	o_magicCode:
	  movzx ecx,word ptr [r8+0A]

	magicExit:
	  jmp magicReturn

//// ---------- Injection Point ----------
injMagicHook:
  jmp n_magicCode
  magicReturn:

//Atb Gauge Hook -------------------------------------------------------------------
define(injAtbGaugeHook, atbGaugeAddress)
i2assert(injAtbGaugeHook, atbGaugeBytes)
registerSymbol(injAtbGaugeHook)

alloc(memAtbGaugeHook, 0x100, atbGaugeAddress)

label(ptrAtbGaugeHook)
registerSymbol(ptrAtbGaugeHook)

alloc(atbGaugeLock, 20)
alloc(zeroAtbGauge, 20)
alloc(tranceLock, 20)

registerSymbol(atbGaugeLock)
registerSymbol(zeroAtbGauge)
registerSymbol(tranceLock)

label(party_atb_gauge_code)
label(enemy_atb_gauge_code)

label(party_trance_gauge_code)

label(n_atbGaugeCode)
label(o_atbGaugeCode)
label(atbGaugeExit)
label(atbGaugeReturn)

memAtbGaugeHook:
	ptrAtbGaugeHook:
	  dq 0
	  align 10 CC

    atbGaugeLock:
      db 0
      align 10 CC

    zeroAtbGauge:
      db 0
      align 10 CC

    tranceLock:
      db 0
      align 10 CC

	n_atbGaugeCode:
	  mov [ptrAtbGaugeHook],rcx

      cmp byte ptr [rdx+E2],6
      je party_atb_gauge_code
      cmp byte ptr [rdx+F3],1
      je party_atb_gauge_code
      cmp byte ptr [rdx+F3],0
      je enemy_atb_gauge_code
      jmp o_atbGaugeCode

    party_atb_gauge_code:
      cmp byte ptr [atbGaugeLock+1],1
      jne @f
      mov cx,ax
      jmp o_atbGaugeCode
      jmp party_trance_gauge_code
    @@:
      cmp byte ptr [zeroAtbGauge+1],1
      jne party_trance_gauge_code
      mov word ptr [rdx+0C],0

    party_trance_gauge_code:
      cmp byte ptr [tranceLock+1],1
      jne o_atbGaugeCode
      mov byte ptr [rbx+60],FF
      jmp o_atbGaugeCode

    enemy_atb_gauge_code:
      cmp byte ptr [atbGaugeLock+2],1
      jne @f
      mov cx,ax
      jmp o_atbGaugeCode
    @@:
      cmp byte ptr [zeroAtbGauge+2],1
      jne o_atbGaugeCode
      mov word ptr [rdx+0C],0

	o_atbGaugeCode:
	  cmp cx,ax
	  jl "FINAL FANTASY IX.dll"+2867BAD

	atbGaugeExit:
	  jmp atbGaugeReturn

//// ---------- Injection Point ----------
injAtbGaugeHook:
  jmp n_atbGaugeCode
  nop 4
  atbGaugeReturn:

//Trance Hook -------------------------------------------------------------------
define(injTranceHook, tranceAddress)
i2assert(injTranceHook, tranceBytes)
registerSymbol(injTranceHook)

alloc(memTranceHook, 0x100, tranceAddress)

label(ptrTranceHook)
registerSymbol(ptrTranceHook)

label(n_tranceCode)
label(o_tranceCode)
label(tranceExit)
label(tranceReturn)

memTranceHook:
	ptrTranceHook:
	  dq 0
	  align 10 CC

	n_tranceCode:
	  mov [ptrTranceHook],rax

      cmp byte ptr [tranceLock+1],1
      je tranceExit

	o_tranceCode:
	  cmp byte ptr [rax+10],00
	  je "FINAL FANTASY IX.dll"+25F6792

	tranceExit:
	  jmp tranceReturn

//// ---------- Injection Point ----------
injTranceHook:
  jmp n_tranceCode
  nop 5
  tranceReturn:

//Quina Hungry Hook -------------------------------------------------------------------
define(injQuinaHungryHook, quinaHungryAddress)
i2assert(injQuinaHungryHook, quinaHungryBytes)
registerSymbol(injQuinaHungryHook)

alloc(memQuinaHungryHook, 0x100, quinaHungryAddress)

label(ptrQuinaHungryHook)
registerSymbol(ptrQuinaHungryHook)

alloc(quinaHungry, 1)
registersymbol(quinaHungry)

label(n_quinaHungryCode)
label(o_quinaHungryCode)
label(quinaHungryExit)
label(quinaHungryReturn)

memQuinaHungryHook:
	ptrQuinaHungryHook:
	  dq 0
	  align 10 CC

    quinaHungry:
      db 0
      align 10 CC

	n_quinaHungryCode:
	  mov [ptrQuinaHungryHook],eax

      cmp byte ptr [quinaHungry],1
      jne o_quinaHungryCode
      mov edx,eax

	o_quinaHungryCode:
	  cmp edx,eax
	  jle "FINAL FANTASY IX.dll"+1980281
	  call "FINAL FANTASY IX.dll"+1944870

	quinaHungryExit:
	  jmp quinaHungryReturn

//// ---------- Injection Point ----------
injQuinaHungryHook:
  jmp n_quinaHungryCode
  nop 4
  quinaHungryReturn:

//Main Menu Hook -------------------------------------------------------------------
define(injMainMenuHook, mainMenuAddress)
i2assert(injMainMenuHook, mainMenuBytes)
registerSymbol(injMainMenuHook)

alloc(memMainMenuHook, 0x100, mainMenuAddress)

label(ptrMainMenuHook)
registerSymbol(ptrMainMenuHook)

label(n_mainMenuCode)
label(o_mainMenuCode)
label(mainMenuExit)
label(mainMenuReturn)

memMainMenuHook:
	ptrMainMenuHook:
	  dq 0
	  align 10 CC

	n_mainMenuCode:
	  mov [ptrMainMenuHook],rax

	o_mainMenuCode:
	  mov rdx,[rax+20]
	  mov rax,[rdx+10]

	mainMenuExit:
	  jmp mainMenuReturn

//// ---------- Injection Point ----------
injMainMenuHook:
  jmp n_mainMenuCode
  nop 3
  mainMenuReturn:

//// ------------------------------ DISABLE -----------------------------------
[DISABLE]
//// ---------- Injection Point ----------
//Party Base Hook -------------------------------------------------------------------
injPartyBaseHook:
  db partyBaseBytes

//Health Damage-----------------------------------------------------------------
injHealthHook:
  db healthBytes

//Status Hook -------------------------------------------------------------------
injStatusHook:
  db statusBytes

//Sandstorm Hook -------------------------------------------------------------------
injSandstormHook:
  db sandstormBytes

//Magic Points-----------------------------------------------------------------
injMagicHook:
  db magicBytes

//Atb Gauge Hook -------------------------------------------------------------------
injAtbGaugeHook:
  db atbGaugeBytes

//Trance Hook -------------------------------------------------------------------
injTranceHook:
  db tranceBytes

//Quina Hungry Hook -------------------------------------------------------------------
injQuinaHungryHook:
  db quinaHungryBytes

//Main Menu Hook -------------------------------------------------------------------
injMainMenuHook:
  db mainMenuBytes

unregisterSymbol(*)
dealloc(*)

//Party Base Hook -------------------------------------------------------------------
{
Module: FINAL FANTASY IX.dll
Address: FINAL FANTASY IX.dll+296CF11
AOB Address: FINAL FANTASY IX.dll+296CF11
FINAL FANTASY IX.dll+296CEFC - CC                      - int 3
FINAL FANTASY IX.dll+296CEFD - CC                      - int 3
FINAL FANTASY IX.dll+296CEFE - CC                      - int 3
FINAL FANTASY IX.dll+296CEFF - CC                      - int 3
FINAL FANTASY IX.dll+296CF00 - 53                      - push rbx
FINAL FANTASY IX.dll+296CF01 - 48 83 EC 20             - sub rsp,20
FINAL FANTASY IX.dll+296CF05 - 48 8B DA                - mov rbx,rdx
FINAL FANTASY IX.dll+296CF08 - 48 85 D2                - test rdx,rdx
FINAL FANTASY IX.dll+296CF0B - 74 50                   - je "FINAL FANTASY IX.dll"+296CF5D
FINAL FANTASY IX.dll+296CF0D - 48 8B 42 28             - mov rax,[rdx+28]
FINAL FANTASY IX.dll+296CF11 - 66 83 78 08 00          - cmp word ptr [rax+08],00   &lt;&lt;&lt;---- Injection point
FINAL FANTASY IX.dll+296CF16 - 74 45                   - je "FINAL FANTASY IX.dll"+296CF5D
FINAL FANTASY IX.dll+296CF18 - 48 8B 42 38             - mov rax,[rdx+38]
FINAL FANTASY IX.dll+296CF1C - F7 40 0C 031D0242       - test [rax+0C],42021D03
FINAL FANTASY IX.dll+296CF23 - 75 38                   - jne "FINAL FANTASY IX.dll"+296CF5D
FINAL FANTASY IX.dll+296CF25 - F7 40 10 031D0242       - test [rax+10],42021D03
FINAL FANTASY IX.dll+296CF2C - 75 2F                   - jne "FINAL FANTASY IX.dll"+296CF5D
FINAL FANTASY IX.dll+296CF2E - 48 8D 15 639A69FE       - lea rdx,["FINAL FANTASY IX.dll"+1006998]
FINAL FANTASY IX.dll+296CF35 - FF 15 25F767FE          - call qword ptr ["FINAL FANTASY IX.dll"+FEC660]
FINAL FANTASY IX.dll+296CF3B - 48 8D 05 5EC568FE       - lea rax,["FINAL FANTASY IX.dll"+FF94A0]
FINAL FANTASY IX.dll+296CF42 - 48 8B 4B 40             - mov rcx,[rbx+40]
}

//Health Hook -------------------------------------------------------------------
{
Module: FINAL FANTASY IX.dll
Address: FINAL FANTASY IX.dll+1985878
AOB Address: FINAL FANTASY IX.dll+1985878
FINAL FANTASY IX.dll+1985850 - 48 8D 54 24 40          - lea rdx,[rsp+40]
FINAL FANTASY IX.dll+1985855 - 48 8D 4E 70             - lea rcx,[rsi+70]
FINAL FANTASY IX.dll+1985859 - E8 42030000             - call "FINAL FANTASY IX.dll"+1985BA0
FINAL FANTASY IX.dll+198585E - 49 8B CC                - mov rcx,r12
FINAL FANTASY IX.dll+1985861 - E8 0AE8E5FF             - call "FINAL FANTASY IX.dll"+17E4070
FINAL FANTASY IX.dll+1985866 - 48 8B 50 38             - mov rdx,[rax+38]
FINAL FANTASY IX.dll+198586A - 44 38 6A 29             - cmp [rdx+29],r13b
FINAL FANTASY IX.dll+198586E - 75 44                   - jne "FINAL FANTASY IX.dll"+19858B4
FINAL FANTASY IX.dll+1985870 - 48 8B 56 28             - mov rdx,[rsi+28]
FINAL FANTASY IX.dll+1985874 - 0FB7 42 08              - movzx eax,word ptr [rdx+08]
FINAL FANTASY IX.dll+1985878 - 41 3B C6                - cmp eax,r14d   &lt;&lt;&lt;---- Injection point
FINAL FANTASY IX.dll+198587B - 7E 31                   - jle "FINAL FANTASY IX.dll"+19858AE
FINAL FANTASY IX.dll+198587D - 48 8B 46 40             - mov rax,[rsi+40]
FINAL FANTASY IX.dll+1985881 - 44 38 68 08             - cmp [rax+08],r13b
FINAL FANTASY IX.dll+1985885 - 74 1C                   - je "FINAL FANTASY IX.dll"+19858A3
FINAL FANTASY IX.dll+1985887 - 49 8B CC                - mov rcx,r12
FINAL FANTASY IX.dll+198588A - E8 E1E7E5FF             - call "FINAL FANTASY IX.dll"+17E4070
FINAL FANTASY IX.dll+198588F - 48 8B 48 18             - mov rcx,[rax+18]
FINAL FANTASY IX.dll+1985893 - 48 8B 41 48             - mov rax,[rcx+48]
FINAL FANTASY IX.dll+1985897 - 4C 39 68 08             - cmp [rax+08],r13
FINAL FANTASY IX.dll+198589B - 76 63                   - jna "FINAL FANTASY IX.dll"+1985900
}

//Status Hook -------------------------------------------------------------------
{
Module: FINAL FANTASY IX.dll
Address: FINAL FANTASY IX.dll+25E0534
AOB Address: FINAL FANTASY IX.dll+25E0534
FINAL FANTASY IX.dll+25E0511 - 74 1D                   - je "FINAL FANTASY IX.dll"+25E0530
FINAL FANTASY IX.dll+25E0513 - 48 8B CE                - mov rcx,rsi
FINAL FANTASY IX.dll+25E0516 - E8 553B20FF             - call "FINAL FANTASY IX.dll"+17E4070
FINAL FANTASY IX.dll+25E051B - 48 8B 48 18             - mov rcx,[rax+18]
FINAL FANTASY IX.dll+25E051F - 48 8B 41 48             - mov rax,[rcx+48]
FINAL FANTASY IX.dll+25E0523 - 48 83 78 08 00          - cmp qword ptr [rax+08],00
FINAL FANTASY IX.dll+25E0528 - 76 2E                   - jna "FINAL FANTASY IX.dll"+25E0558
FINAL FANTASY IX.dll+25E052A - 80 78 10 00             - cmp byte ptr [rax+10],00
FINAL FANTASY IX.dll+25E052E - 75 12                   - jne "FINAL FANTASY IX.dll"+25E0542
FINAL FANTASY IX.dll+25E0530 - 48 8B 4B 28             - mov rcx,[rbx+28]
FINAL FANTASY IX.dll+25E0534 - 66 29 79 08             - sub [rcx+08],di   &lt;&lt;&lt;---- Injection point
FINAL FANTASY IX.dll+25E0538 - EB 08                   - jmp "FINAL FANTASY IX.dll"+25E0542
FINAL FANTASY IX.dll+25E053A - 48 8B CB                - mov rcx,rbx
FINAL FANTASY IX.dll+25E053D - E8 BE4E3AFF             - call "FINAL FANTASY IX.dll"+1985400
FINAL FANTASY IX.dll+25E0542 - 80 8B EE000000 02       - or byte ptr [rbx+000000EE],02
FINAL FANTASY IX.dll+25E0549 - 66 89 BB EA000000       - mov [rbx+000000EA],di
FINAL FANTASY IX.dll+25E0550 - 48 83 C4 30             - add rsp,30
FINAL FANTASY IX.dll+25E0554 - 5F                      - pop rdi
FINAL FANTASY IX.dll+25E0555 - 5E                      - pop rsi
FINAL FANTASY IX.dll+25E0556 - 5B                      - pop rbx
FINAL FANTASY IX.dll+25E0557 - C3                      - ret
}

//Sandstorm Hook -------------------------------------------------------------------
{
Module: FINAL FANTASY IX.dll
Address: FINAL FANTASY IX.dll+19810D9
AOB Address: FINAL FANTASY IX.dll+19810D9
FINAL FANTASY IX.dll+19810B9 - F7 EF                   - imul edi
FINAL FANTASY IX.dll+19810BB - D1 FA                   - sar edx,1
FINAL FANTASY IX.dll+19810BD - 8B CA                   - mov ecx,edx
FINAL FANTASY IX.dll+19810BF - C1 E9 1F                - shr ecx,1F
FINAL FANTASY IX.dll+19810C2 - 03 D1                   - add edx,ecx
FINAL FANTASY IX.dll+19810C4 - 8D 0C D2                - lea ecx,[rdx+rdx*8]
FINAL FANTASY IX.dll+19810C7 - 2B F9                   - sub edi,ecx
FINAL FANTASY IX.dll+19810C9 - 0F80 37090000           - jo "FINAL FANTASY IX.dll"+1981A06
FINAL FANTASY IX.dll+19810CF - 66 FF C7                - inc di
FINAL FANTASY IX.dll+19810D2 - 48 8B 85 48020000       - mov rax,[rbp+00000248]
FINAL FANTASY IX.dll+19810D9 - 66 89 78 08             - mov [rax+08],di   &lt;&lt;&lt;---- Injection point
FINAL FANTASY IX.dll+19810DD - 48 8B 4D 10             - mov rcx,[rbp+10]
FINAL FANTASY IX.dll+19810E1 - E8 8A2FE6FF             - call "FINAL FANTASY IX.dll"+17E4070
FINAL FANTASY IX.dll+19810E6 - 48 8B 48 38             - mov rcx,[rax+38]
FINAL FANTASY IX.dll+19810EA - 48 8B 41 58             - mov rax,[rcx+58]
FINAL FANTASY IX.dll+19810EE - 48 8B 88 B8000000       - mov rcx,[rax+000000B8]
FINAL FANTASY IX.dll+19810F5 - 48 8B 85 40030000       - mov rax,[rbp+00000340]
FINAL FANTASY IX.dll+19810FC - 48 8B 40 18             - mov rax,[rax+18]
FINAL FANTASY IX.dll+1981100 - 0FB6 50 19              - movzx edx,byte ptr [rax+19]
FINAL FANTASY IX.dll+1981104 - 48 3B 51 08             - cmp rdx,[rcx+08]
FINAL FANTASY IX.dll+1981108 - 0F83 F2080000           - jae "FINAL FANTASY IX.dll"+1981A00
}

//Magic Hook -------------------------------------------------------------------
{
Module: FINAL FANTASY IX.dll
Address: FINAL FANTASY IX.dll+25E0CF5
AOB Address: FINAL FANTASY IX.dll+25E0CF5
FINAL FANTASY IX.dll+25E0CCD - 48 8B CB                - mov rcx,rbx
FINAL FANTASY IX.dll+25E0CD0 - E8 BB193AFF             - call "FINAL FANTASY IX.dll"+1982690
FINAL FANTASY IX.dll+25E0CD5 - EB 67                   - jmp "FINAL FANTASY IX.dll"+25E0D3E
FINAL FANTASY IX.dll+25E0CD7 - 48 8B 43 38             - mov rax,[rbx+38]
FINAL FANTASY IX.dll+25E0CDB - F7 40 10 00020000       - test [rax+10],00000200
FINAL FANTASY IX.dll+25E0CE2 - 77 0D                   - ja "FINAL FANTASY IX.dll"+25E0CF1
FINAL FANTASY IX.dll+25E0CE4 - BA 00020000             - mov edx,00000200
FINAL FANTASY IX.dll+25E0CE9 - 48 8B CB                - mov rcx,rbx
FINAL FANTASY IX.dll+25E0CEC - E8 9F193AFF             - call "FINAL FANTASY IX.dll"+1982690
FINAL FANTASY IX.dll+25E0CF1 - 4C 8B 43 28             - mov r8,[rbx+28]
FINAL FANTASY IX.dll+25E0CF5 - 41 0FB7 48 0A           - movzx ecx,word ptr [r8+0A]   &lt;&lt;&lt;---- Injection point
FINAL FANTASY IX.dll+25E0CFA - 48 8B 43 20             - mov rax,[rbx+20]
FINAL FANTASY IX.dll+25E0CFE - 0FB7 50 0A              - movzx edx,word ptr [rax+0A]
FINAL FANTASY IX.dll+25E0D02 - 66 3B CA                - cmp cx,dx
FINAL FANTASY IX.dll+25E0D05 - 0FBF C1                 - movsx eax,cx
FINAL FANTASY IX.dll+25E0D08 - 7E 03                   - jle "FINAL FANTASY IX.dll"+25E0D0D
FINAL FANTASY IX.dll+25E0D0A - 0FBF C2                 - movsx eax,dx
FINAL FANTASY IX.dll+25E0D0D - 66 41 89 40 0A          - mov [r8+0A],ax
FINAL FANTASY IX.dll+25E0D12 - 48 8B 4B 40             - mov rcx,[rbx+40]
FINAL FANTASY IX.dll+25E0D16 - 80 79 08 00             - cmp byte ptr [rcx+08],00
FINAL FANTASY IX.dll+25E0D1A - 74 22                   - je "FINAL FANTASY IX.dll"+25E0D3E
}

//Atb Gauge Hook -------------------------------------------------------------------
{
Module: FINAL FANTASY IX.dll
Address: FINAL FANTASY IX.dll+2867972
AOB Address: FINAL FANTASY IX.dll+2867972
FINAL FANTASY IX.dll+2867946 - 0F84 61020000           - je "FINAL FANTASY IX.dll"+2867BAD
FINAL FANTASY IX.dll+286794C - 48 8B 7B 40             - mov rdi,[rbx+40]
FINAL FANTASY IX.dll+2867950 - 44 38 7F 0D             - cmp [rdi+0D],r15b
FINAL FANTASY IX.dll+2867954 - 0F84 53020000           - je "FINAL FANTASY IX.dll"+2867BAD
FINAL FANTASY IX.dll+286795A - 0FBE 4A 0E              - movsx ecx,byte ptr [rdx+0E]
FINAL FANTASY IX.dll+286795E - 66 C1 E1 02             - shl cx,02
FINAL FANTASY IX.dll+2867962 - 66 03 4A 0C             - add cx,[rdx+0C]
FINAL FANTASY IX.dll+2867966 - 66 89 4A 0C             - mov [rdx+0C],cx
FINAL FANTASY IX.dll+286796A - 48 8B 43 20             - mov rax,[rbx+20]
FINAL FANTASY IX.dll+286796E - 0FB7 40 0C              - movzx eax,word ptr [rax+0C]
FINAL FANTASY IX.dll+2867972 - 66 3B C8                - cmp cx,ax   &lt;&lt;&lt;---- Injection point
FINAL FANTASY IX.dll+2867975 - 0F8C 32020000           - jl "FINAL FANTASY IX.dll"+2867BAD
FINAL FANTASY IX.dll+286797B - 66 89 42 0C             - mov [rdx+0C],ax
FINAL FANTASY IX.dll+286797F - 48 8B 43 38             - mov rax,[rbx+38]
FINAL FANTASY IX.dll+2867983 - F7 40 0C 02000202       - test [rax+0C],02020002
FINAL FANTASY IX.dll+286798A - 0F85 1D020000           - jne "FINAL FANTASY IX.dll"+2867BAD
FINAL FANTASY IX.dll+2867990 - F7 40 10 02000202       - test [rax+10],02020002
FINAL FANTASY IX.dll+2867997 - 0F85 10020000           - jne "FINAL FANTASY IX.dll"+2867BAD
FINAL FANTASY IX.dll+286799D - 44 38 7F 08             - cmp [rdi+08],r15b
FINAL FANTASY IX.dll+28679A1 - 0F84 C9000000           - je "FINAL FANTASY IX.dll"+2867A70
FINAL FANTASY IX.dll+28679A7 - F7 40 0C 000C0000       - test [rax+0C],00000C00
}

//Trance Hook -------------------------------------------------------------------
{
Module: FINAL FANTASY IX.dll
Address: FINAL FANTASY IX.dll+25F66E6
AOB Address: FINAL FANTASY IX.dll+25F66E6
FINAL FANTASY IX.dll+25F66CD - CC                      - int 3
FINAL FANTASY IX.dll+25F66CE - CC                      - int 3
FINAL FANTASY IX.dll+25F66CF - CC                      - int 3
FINAL FANTASY IX.dll+25F66D0 - 53                      - push rbx
FINAL FANTASY IX.dll+25F66D1 - 56                      - push rsi
FINAL FANTASY IX.dll+25F66D2 - 57                      - push rdi
FINAL FANTASY IX.dll+25F66D3 - 48 83 EC 20             - sub rsp,20
FINAL FANTASY IX.dll+25F66D7 - 48 8B 41 48             - mov rax,[rcx+48]
FINAL FANTASY IX.dll+25F66DB - 48 83 78 08 00          - cmp qword ptr [rax+08],00
FINAL FANTASY IX.dll+25F66E0 - 0F86 B4000000           - jbe "FINAL FANTASY IX.dll"+25F679A
FINAL FANTASY IX.dll+25F66E6 - 80 78 10 00             - cmp byte ptr [rax+10],00   &lt;&lt;&lt;---- Injection point
FINAL FANTASY IX.dll+25F66EA - 0F84 A2000000           - je "FINAL FANTASY IX.dll"+25F6792
FINAL FANTASY IX.dll+25F66F0 - E8 ABED5FFF             - call "FINAL FANTASY IX.dll"+1BF54A0
FINAL FANTASY IX.dll+25F66F5 - 84 C0                   - test al,al
FINAL FANTASY IX.dll+25F66F7 - 0F84 95000000           - je "FINAL FANTASY IX.dll"+25F6792
FINAL FANTASY IX.dll+25F66FD - 48 8D 35 5473A1FD       - lea rsi,["FINAL FANTASY IX.dll"+DA58]
FINAL FANTASY IX.dll+25F6704 - 48 8B CE                - mov rcx,rsi
FINAL FANTASY IX.dll+25F6707 - E8 64D91EFF             - call "FINAL FANTASY IX.dll"+17E4070
FINAL FANTASY IX.dll+25F670C - 48 8B 48 38             - mov rcx,[rax+38]
FINAL FANTASY IX.dll+25F6710 - 48 8B 41 58             - mov rax,[rcx+58]
FINAL FANTASY IX.dll+25F6714 - 48 8B 58 30             - mov rbx,[rax+30]
}

//Quina Hungry Hook -------------------------------------------------------------------
{
Module: FINAL FANTASY IX.dll
Address: FINAL FANTASY IX.dll+198023E
AOB Address: FINAL FANTASY IX.dll+198023E
FINAL FANTASY IX.dll+1980219 - 48 8B 43 20             - mov rax,[rbx+20]
FINAL FANTASY IX.dll+198021D - 0FB7 40 08              - movzx eax,word ptr [rax+08]
FINAL FANTASY IX.dll+1980221 - 3D 00000080             - cmp eax,80000000
FINAL FANTASY IX.dll+1980226 - 75 0A                   - jne "FINAL FANTASY IX.dll"+1980232
FINAL FANTASY IX.dll+1980228 - 41 83 F8 FF             - cmp r8d,-01
FINAL FANTASY IX.dll+198022C - 0F84 D4170000           - je "FINAL FANTASY IX.dll"+1981A06
FINAL FANTASY IX.dll+1980232 - 99                      - cdq
FINAL FANTASY IX.dll+1980233 - 41 F7 F8                - idiv r8d
FINAL FANTASY IX.dll+1980236 - 48 8B 4B 28             - mov rcx,[rbx+28]
FINAL FANTASY IX.dll+198023A - 0FB7 51 08              - movzx edx,word ptr [rcx+08]
FINAL FANTASY IX.dll+198023E - 3B D0                   - cmp edx,eax   &lt;&lt;&lt;---- Injection point
FINAL FANTASY IX.dll+1980240 - 7E 3F                   - jle "FINAL FANTASY IX.dll"+1980281
FINAL FANTASY IX.dll+1980242 - E8 2946FCFF             - call "FINAL FANTASY IX.dll"+1944870
FINAL FANTASY IX.dll+1980247 - 48 8B D8                - mov rbx,rax
FINAL FANTASY IX.dll+198024A - 48 8B 15 6FBF66FF       - mov rdx,["FINAL FANTASY IX.dll"+FEC1C0]
FINAL FANTASY IX.dll+1980251 - 48 83 C2 F0             - add rdx,-10
FINAL FANTASY IX.dll+1980255 - FF 15 05C466FF          - call qword ptr ["FINAL FANTASY IX.dll"+FEC660]
FINAL FANTASY IX.dll+198025B - 48 8B 05 66BF66FF       - mov rax,["FINAL FANTASY IX.dll"+FEC1C8]
FINAL FANTASY IX.dll+1980262 - 80 3B 00                - cmp byte ptr [rbx],00
FINAL FANTASY IX.dll+1980265 - 48 8B CB                - mov rcx,rbx
FINAL FANTASY IX.dll+1980268 - 4C 8B 00                - mov r8,[rax]
}

//Main Menu Hook -------------------------------------------------------------------
{
Module: FINAL FANTASY IX.dll
Address: FINAL FANTASY IX.dll+283BB30
AOB Address: FINAL FANTASY IX.dll+283BB30
FINAL FANTASY IX.dll+283BB0F - CC                      - int 3
FINAL FANTASY IX.dll+283BB10 - 53                      - push rbx
FINAL FANTASY IX.dll+283BB11 - 56                      - push rsi
FINAL FANTASY IX.dll+283BB12 - 57                      - push rdi
FINAL FANTASY IX.dll+283BB13 - 48 83 EC 20             - sub rsp,20
FINAL FANTASY IX.dll+283BB17 - 48 8B F9                - mov rdi,rcx
FINAL FANTASY IX.dll+283BB1A - 48 8B 99 B0000000       - mov rbx,[rcx+000000B0]
FINAL FANTASY IX.dll+283BB21 - 48 8D 35 301F7DFD       - lea rsi,["FINAL FANTASY IX.dll"+DA58]
FINAL FANTASY IX.dll+283BB28 - 48 8B CE                - mov rcx,rsi
FINAL FANTASY IX.dll+283BB2B - E8 4085FAFE             - call "FINAL FANTASY IX.dll"+17E4070
FINAL FANTASY IX.dll+283BB30 - 48 8B 50 20             - mov rdx,[rax+20]   &lt;&lt;&lt;---- Injection point
FINAL FANTASY IX.dll+283BB34 - 48 8B 42 10             - mov rax,[rdx+10]
FINAL FANTASY IX.dll+283BB38 - 48 8B 48 70             - mov rcx,[rax+70]
FINAL FANTASY IX.dll+283BB3C - 80 39 00                - cmp byte ptr [rcx],00
FINAL FANTASY IX.dll+283BB3F - 48 83 C1 14             - add rcx,14
FINAL FANTASY IX.dll+283BB43 - FF 15 77C07AFE          - call qword ptr ["FINAL FANTASY IX.dll"+FE7BC0]
FINAL FANTASY IX.dll+283BB49 - 48 8D 15 082D9AFE       - lea rdx,["FINAL FANTASY IX.dll"+11DE858]
FINAL FANTASY IX.dll+283BB50 - 48 8B C8                - mov rcx,rax
FINAL FANTASY IX.dll+283BB53 - FF 15 9FA37AFE          - call qword ptr ["FINAL FANTASY IX.dll"+FE5EF8]
FINAL FANTASY IX.dll+283BB59 - 80 3B 00                - cmp byte ptr [rbx],00
FINAL FANTASY IX.dll+283BB5C - 48 8B CB                - mov rcx,rbx
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>32966</ID>
              <Description>"Player"</Description>
              <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
              <Color>00FFFF</Color>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>140559</ID>
                  <Description>"Health"</Description>
                  <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                  <Color>00FFFF</Color>
                  <GroupHeader>1</GroupHeader>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>140560</ID>
                      <Description>"Infinite Health"</Description>
                      <Color>00FF00</Color>
                      <VariableType>Auto Assembler Script</VariableType>
                      <AssemblerScript Async="1">[ENABLE]
healthLock+1:
  db 1

[DISABLE]
healthLock+1:
  db 0
</AssemblerScript>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>140561</ID>
                      <Description>"Receiving Damage Multiplier"</Description>
                      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                      <Color>00FF00</Color>
                      <VariableType>Auto Assembler Script</VariableType>
                      <AssemblerScript Async="1">[ENABLE]
healthDmg+1:
  db 1

healthDmgv+4:
  dd (float)1

[DISABLE]
healthDmg+1:
  db 0

healthDmgv+4:
  dd (float)1
</AssemblerScript>
                      <CheatEntries>
                        <CheatEntry>
                          <ID>140562</ID>
                          <Description>"Health Damage Value"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>Float</VariableType>
                          <Address>healthDmgv+4</Address>
                        </CheatEntry>
                      </CheatEntries>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>140563</ID>
                      <Description>"One Hit Kill"</Description>
                      <Color>00FF00</Color>
                      <VariableType>Auto Assembler Script</VariableType>
                      <AssemblerScript Async="1">[ENABLE]
healthOHK+1:
  db 1

[DISABLE]
healthOHK+1:
  db 0
</AssemblerScript>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>140658</ID>
                      <Description>"Quina Eats All (regardless of health %)"</Description>
                      <Color>00FF00</Color>
                      <VariableType>Auto Assembler Script</VariableType>
                      <AssemblerScript Async="1">[ENABLE]
quinaHungry:
  db 1

[DISABLE]
quinaHungry:
  db 0
</AssemblerScript>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
                <CheatEntry>
                  <ID>140577</ID>
                  <Description>"Magic"</Description>
                  <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                  <Color>00FFFF</Color>
                  <GroupHeader>1</GroupHeader>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>140582</ID>
                      <Description>"Infinite MP"</Description>
                      <Color>00FF00</Color>
                      <VariableType>Auto Assembler Script</VariableType>
                      <AssemblerScript Async="1">[ENABLE]
magicLock+1:
  db 1

[DISABLE]
magicLock+1:
  db 0
</AssemblerScript>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>140583</ID>
                      <Description>"Zero MP"</Description>
                      <Color>00FF00</Color>
                      <VariableType>Auto Assembler Script</VariableType>
                      <AssemblerScript Async="1">[ENABLE]
zeroMagic+1:
  db 1

[DISABLE]
zeroMagic+1:
  db 0
</AssemblerScript>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
                <CheatEntry>
                  <ID>140568</ID>
                  <Description>"ATB Gauge"</Description>
                  <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                  <Color>00FFFF</Color>
                  <GroupHeader>1</GroupHeader>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>140575</ID>
                      <Description>"Always Full ATB Gauge"</Description>
                      <Color>00FF00</Color>
                      <VariableType>Auto Assembler Script</VariableType>
                      <AssemblerScript Async="1">[ENABLE]
atbGaugeLock+1:
  db 1

[DISABLE]
atbGaugeLock+1:
  db 0
</AssemblerScript>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>140576</ID>
                      <Description>"Always Empty ATB Gauge"</Description>
                      <Color>00FF00</Color>
                      <VariableType>Auto Assembler Script</VariableType>
                      <AssemblerScript Async="1">[ENABLE]
zeroAtbGauge+1:
  db 1

[DISABLE]
zeroAtbGauge+1:
  db 0
</AssemblerScript>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
                <CheatEntry>
                  <ID>140639</ID>
                  <Description>"Trance State"</Description>
                  <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                  <Color>00FFFF</Color>
                  <GroupHeader>1</GroupHeader>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>140640</ID>
                      <Description>"Trance State"</Description>
                      <Color>00FF00</Color>
                      <VariableType>Auto Assembler Script</VariableType>
                      <AssemblerScript Async="1">[ENABLE]
tranceLock+1:
  db 1

[DISABLE]
tranceLock+1:
  db 0
</AssemblerScript>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
                <CheatEntry>
                  <ID>140677</ID>
                  <Description>"After Battle Report (Works most of the time)"</Description>
                  <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                  <Color>00FFFF</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript Async="1">{
	Process				: FINAL FANTASY IX.exe  -  x64
	Module				: FINAL FANTASY IX.dll
	Game Title			: FINAL FANTASY IX
	Game File Version 	:
	Game Version		:
	CE Version			: 7.5
	Script Version		: 1.0.1
	Date				: 03/17/24
	Author				: Chuggz
	Name				: BattleReportHook

	Battle Report 1 Hook, Battle Report 2 Hook
}
{$STRICT}
//Battle Report 1 Hook -------------------------------------------------------------------
define(battleReport1Address, FINAL FANTASY IX.dll+2964B6D)
define(battleReport1Bytes, 8B 4A 08 41 89 8E 38 01 00 00)

//Battle Report 2 Hook -------------------------------------------------------------------
define(battleReport2Address, FINAL FANTASY IX.dll+2964A35)
define(battleReport2Bytes, 89 42 08 48 8D 15 B9 29 6A FE)

//// ------------------------------ ENABLE -----------------------------------
[ENABLE]
//Battle Report 1 Hook -------------------------------------------------------------------
define(injBattleReport1Hook, battleReport1Address)
i2assert(injBattleReport1Hook, battleReport1Bytes)
registerSymbol(injBattleReport1Hook)

alloc(memBattleReport1Hook, 0x100, battleReport1Address)

label(ptrBattleReport1Hook)
registerSymbol(ptrBattleReport1Hook)

alloc(expGained, 10)
alloc(apGained, 10)

registerSymbol(expGained)
registerSymbol(apGained)

label(exp)
label(ap)

label(n_battleReport1Code)
label(o_battleReport1Code)
label(battleReport1Exit)
label(battleReport1Return)

memBattleReport1Hook:
	ptrBattleReport1Hook:
	  dq 0
	  align 10 CC

    expGained:
      dq 0
      align 10 CC

    apGained:
      dq 0
      align 10 CC

	n_battleReport1Code:
	  mov [ptrBattleReport1Hook],rdx

    exp:
      cmp [expGained],0
      je ap
      push eax
      mov eax,[expGained]
      mov [r14+130],eax
      mov [expGained],0
      pop eax

    ap:
      cmp [apGained],0
      je o_battleReport1Code
      push eax
      mov eax,[apGained]
      mov [r14+134],eax
      mov [apGained],0
      pop eax

	o_battleReport1Code:
	  mov ecx,[rdx+08]
	  mov [r14+00000138],ecx

	battleReport1Exit:
	  jmp battleReport1Return

//// ---------- Injection Point ----------
injBattleReport1Hook:
  jmp n_battleReport1Code
  nop 5
  battleReport1Return:

//Battle Report 2 Hook -------------------------------------------------------------------
define(injBattleReport2Hook, battleReport2Address)
i2assert(injBattleReport2Hook, battleReport2Bytes)
registerSymbol(injBattleReport2Hook)

alloc(memBattleReport2Hook, 0x100, battleReport2Address)

label(ptrBattleReport2Hook)
registerSymbol(ptrBattleReport2Hook)

alloc(moneyGained, 10)
registerSymbol(moneyGained)

label(money)

label(n_battleReport2Code)
label(o_battleReport2Code)
label(battleReport2Exit)
label(battleReport2Return)

memBattleReport2Hook:
	ptrBattleReport2Hook:
	  dq 0
	  align 10 CC

    moneyGained:
      dq 0
      align 10 CC

	n_battleReport2Code:
	  mov [ptrBattleReport2Hook],rdx

    money:
      cmp [moneyGained],0
      je o_battleReport2Code
      mov eax,[moneyGained]
      mov [rdx+8],eax
      mov [moneyGained],0

	o_battleReport2Code:
	  mov [rdx+08],eax
	  lea rdx,["FINAL FANTASY IX.dll"+10073F8]

	battleReport2Exit:
	  jmp battleReport2Return

//// ---------- Injection Point ----------
injBattleReport2Hook:
  jmp n_battleReport2Code
  nop 2
  battleReport2Return:

//// ------------------------------ DISABLE -----------------------------------
[DISABLE]
//// ---------- Injection Point ----------
//Battle Report 1 Hook -------------------------------------------------------------------
injBattleReport1Hook:
  db battleReport1Bytes

//Battle Report 2 Hook -------------------------------------------------------------------
injBattleReport2Hook:
  db battleReport2Bytes

unregisterSymbol(*)
dealloc(*)

//Battle Report 1 Hook -------------------------------------------------------------------
{
Module: FINAL FANTASY IX.dll
Address: FINAL FANTASY IX.dll+2964B6D
AOB Address: FINAL FANTASY IX.dll+2964B6D
FINAL FANTASY IX.dll+2964B39 - 48 F7 F9                - idiv rcx
FINAL FANTASY IX.dll+2964B3C - 41 89 86 30010000       - mov [r14+00000130],eax
FINAL FANTASY IX.dll+2964B43 - 48 8D 15 4E1E6AFE       - lea rdx,["FINAL FANTASY IX.dll"+1006998]
FINAL FANTASY IX.dll+2964B4A - FF 15 107B68FE          - call qword ptr ["FINAL FANTASY IX.dll"+FEC660]
FINAL FANTASY IX.dll+2964B50 - 48 8D 05 494969FE       - lea rax,["FINAL FANTASY IX.dll"+FF94A0]
FINAL FANTASY IX.dll+2964B57 - 48 8B F8                - mov rdi,rax
FINAL FANTASY IX.dll+2964B5A - 48 89 44 24 40          - mov [rsp+40],rax
FINAL FANTASY IX.dll+2964B5F - 48 8B 10                - mov rdx,[rax]
FINAL FANTASY IX.dll+2964B62 - 0FB7 4A 10              - movzx ecx,word ptr [rdx+10]
FINAL FANTASY IX.dll+2964B66 - 41 89 8E 34010000       - mov [r14+00000134],ecx
FINAL FANTASY IX.dll+2964B6D - 8B 4A 08                - mov ecx,[rdx+08]   &lt;&lt;&lt;---- Injection point
FINAL FANTASY IX.dll+2964B70 - 41 89 8E 38010000       - mov [r14+00000138],ecx
FINAL FANTASY IX.dll+2964B77 - 48 8D 0D DA8E6AFD       - lea rcx,["FINAL FANTASY IX.dll"+DA58]
FINAL FANTASY IX.dll+2964B7E - E8 EDF4E7FE             - call "FINAL FANTASY IX.dll"+17E4070
FINAL FANTASY IX.dll+2964B83 - 48 8B 48 40             - mov rcx,[rax+40]
FINAL FANTASY IX.dll+2964B87 - 48 8B 51 10             - mov rdx,[rcx+10]
FINAL FANTASY IX.dll+2964B8B - 48 8B 4A 10             - mov rcx,[rdx+10]
FINAL FANTASY IX.dll+2964B8F - 83 79 10 64             - cmp dword ptr [rcx+10],64
FINAL FANTASY IX.dll+2964B93 - 7D 09                   - jnl "FINAL FANTASY IX.dll"+2964B9E
FINAL FANTASY IX.dll+2964B95 - 48 8B 07                - mov rax,[rdi]
FINAL FANTASY IX.dll+2964B98 - 0FB6 48 20              - movzx ecx,byte ptr [rax+20]
}

//Battle Report 2 Hook -------------------------------------------------------------------
{
Module: FINAL FANTASY IX.dll
Address: FINAL FANTASY IX.dll+2964A35
AOB Address: FINAL FANTASY IX.dll+2964A35
FINAL FANTASY IX.dll+2964A0F - 48 8B 4C 24 20          - mov rcx,[rsp+20]
FINAL FANTASY IX.dll+2964A14 - 0F8C E6FDFFFF           - jl "FINAL FANTASY IX.dll"+2964800
FINAL FANTASY IX.dll+2964A1A - 48 8B 93 58010000       - mov rdx,[rbx+00000158]
FINAL FANTASY IX.dll+2964A21 - 8B 8B 38010000          - mov ecx,[rbx+00000138]
FINAL FANTASY IX.dll+2964A27 - 89 4A 08                - mov [rdx+08],ecx
FINAL FANTASY IX.dll+2964A2A - 45 84 E4                - test r12b,r12b
FINAL FANTASY IX.dll+2964A2D - 74 09                   - je "FINAL FANTASY IX.dll"+2964A38
FINAL FANTASY IX.dll+2964A2F - 8B C1                   - mov eax,ecx
FINAL FANTASY IX.dll+2964A31 - D1 E8                   - shr eax,1
FINAL FANTASY IX.dll+2964A33 - 03 C1                   - add eax,ecx
FINAL FANTASY IX.dll+2964A35 - 89 42 08                - mov [rdx+08],eax   &lt;&lt;&lt;---- Injection point
FINAL FANTASY IX.dll+2964A38 - 48 8D 15 B9296AFE       - lea rdx,["FINAL FANTASY IX.dll"+10073F8]
FINAL FANTASY IX.dll+2964A3F - 48 8B C2                - mov rax,rdx
FINAL FANTASY IX.dll+2964A42 - 48 83 C2 F0             - add rdx,-10
FINAL FANTASY IX.dll+2964A46 - FF 15 147C68FE          - call qword ptr ["FINAL FANTASY IX.dll"+FEC660]
FINAL FANTASY IX.dll+2964A4C - 4C 8B 83 58010000       - mov r8,[rbx+00000158]
FINAL FANTASY IX.dll+2964A53 - 4C 63 48 14             - movsxd  r9,dword ptr [rax+14]
FINAL FANTASY IX.dll+2964A57 - 41 8B 50 08             - mov edx,[r8+08]
FINAL FANTASY IX.dll+2964A5B - 49 3B D1                - cmp rdx,r9
FINAL FANTASY IX.dll+2964A5E - 7D 0A                   - jnl "FINAL FANTASY IX.dll"+2964A6A
FINAL FANTASY IX.dll+2964A60 - 41 C7 40 0C 01000000    - mov [r8+0C],00000001
}
</AssemblerScript>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>140716</ID>
                      <Description>"Exp"</Description>
                      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                      <Color>00FFFF</Color>
                      <GroupHeader>1</GroupHeader>
                      <CheatEntries>
                        <CheatEntry>
                          <ID>140676</ID>
                          <Description>"Exp To Be Gained"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>00FFFF</Color>
                          <VariableType>4 Bytes</VariableType>
                          <Address>expGained</Address>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140699</ID>
                          <Description>"Exp Gained +1,000"</Description>
                          <Color>00FF00</Color>
                          <VariableType>Auto Assembler Script</VariableType>
                          <AssemblerScript Async="1">{$lua}
[ENABLE]
if syntaxcheck then return end
local o_exp = readInteger("expGained")
local n_exp = o_exp + 1000
writeInteger("expGained", n_exp)
mrAutoDisable(memrec)

[DISABLE]
{$asm}
</AssemblerScript>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140705</ID>
                          <Description>"Exp Gained +10,000"</Description>
                          <Color>00FF00</Color>
                          <VariableType>Auto Assembler Script</VariableType>
                          <AssemblerScript Async="1">{$lua}
[ENABLE]
if syntaxcheck then return end
local o_exp = readInteger("expGained")
local n_exp = o_exp + 10000
writeInteger("expGained", n_exp)
mrAutoDisable(memrec)

[DISABLE]
{$asm}
</AssemblerScript>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140704</ID>
                          <Description>"Exp Gained +100,000"</Description>
                          <Color>00FF00</Color>
                          <VariableType>Auto Assembler Script</VariableType>
                          <AssemblerScript Async="1">{$lua}
[ENABLE]
if syntaxcheck then return end
local o_exp = readInteger("expGained")
local n_exp = o_exp + 100000
writeInteger("expGained", n_exp)
mrAutoDisable(memrec)

[DISABLE]
{$asm}
</AssemblerScript>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140703</ID>
                          <Description>"Exp Gained +1,000,000"</Description>
                          <Color>00FF00</Color>
                          <VariableType>Auto Assembler Script</VariableType>
                          <AssemblerScript Async="1">{$lua}
[ENABLE]
if syntaxcheck then return end
local o_exp = readInteger("expGained")
local n_exp = o_exp + 1000000
writeInteger("expGained", n_exp)
mrAutoDisable(memrec)

[DISABLE]
{$asm}
</AssemblerScript>
                        </CheatEntry>
                      </CheatEntries>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>140723</ID>
                      <Description>"Ap"</Description>
                      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                      <Color>00FFFF</Color>
                      <GroupHeader>1</GroupHeader>
                      <CheatEntries>
                        <CheatEntry>
                          <ID>140675</ID>
                          <Description>"Ap To Be Gained"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>00FFFF</Color>
                          <VariableType>4 Bytes</VariableType>
                          <Address>apGained</Address>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140706</ID>
                          <Description>"Ap Gained +1,000"</Description>
                          <Color>00FF00</Color>
                          <VariableType>Auto Assembler Script</VariableType>
                          <AssemblerScript Async="1">{$lua}
[ENABLE]
if syntaxcheck then return end
local o_ap = readInteger("apGained")
local n_ap = o_ap + 1000
writeInteger("apGained", n_ap)
mrAutoDisable(memrec)

[DISABLE]
{$asm}
</AssemblerScript>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140707</ID>
                          <Description>"Ap Gained +10,000"</Description>
                          <Color>00FF00</Color>
                          <VariableType>Auto Assembler Script</VariableType>
                          <AssemblerScript Async="1">{$lua}
[ENABLE]
if syntaxcheck then return end
local o_ap = readInteger("apGained")
local n_ap = o_ap + 10000
writeInteger("apGained", n_ap)
mrAutoDisable(memrec)

[DISABLE]
{$asm}
</AssemblerScript>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140708</ID>
                          <Description>"Ap Gained +100,000"</Description>
                          <Color>00FF00</Color>
                          <VariableType>Auto Assembler Script</VariableType>
                          <AssemblerScript Async="1">{$lua}
[ENABLE]
if syntaxcheck then return end
local o_ap = readInteger("apGained")
local n_ap = o_ap + 100000
writeInteger("apGained", n_ap)
mrAutoDisable(memrec)

[DISABLE]
{$asm}
</AssemblerScript>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140709</ID>
                          <Description>"Ap Gained +1,000,000"</Description>
                          <Color>00FF00</Color>
                          <VariableType>Auto Assembler Script</VariableType>
                          <AssemblerScript Async="1">{$lua}
[ENABLE]
if syntaxcheck then return end
local o_ap = readInteger("apGained")
local n_ap = o_ap + 1000000
writeInteger("apGained", n_ap)
mrAutoDisable(memrec)

[DISABLE]
{$asm}
</AssemblerScript>
                        </CheatEntry>
                      </CheatEntries>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>140717</ID>
                      <Description>"Money"</Description>
                      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                      <Color>00FFFF</Color>
                      <GroupHeader>1</GroupHeader>
                      <CheatEntries>
                        <CheatEntry>
                          <ID>140698</ID>
                          <Description>"Money To Be Gained"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>00FFFF</Color>
                          <VariableType>4 Bytes</VariableType>
                          <Address>moneyGained</Address>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140710</ID>
                          <Description>"Money Gained +1,000"</Description>
                          <Color>00FF00</Color>
                          <VariableType>Auto Assembler Script</VariableType>
                          <AssemblerScript Async="1">{$lua}
[ENABLE]
if syntaxcheck then return end
local o_money = readInteger("moneyGained")
local n_money = o_money + 1000
writeInteger("moneyGained", n_money)
mrAutoDisable(memrec)

[DISABLE]
{$asm}
</AssemblerScript>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140711</ID>
                          <Description>"Money Gained +10,000"</Description>
                          <Color>00FF00</Color>
                          <VariableType>Auto Assembler Script</VariableType>
                          <AssemblerScript Async="1">{$lua}
[ENABLE]
if syntaxcheck then return end
local o_money = readInteger("moneyGained")
local n_money = o_money + 10000
writeInteger("moneyGained", n_money)
mrAutoDisable(memrec)

[DISABLE]
{$asm}
</AssemblerScript>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140712</ID>
                          <Description>"Money Gained +100,000"</Description>
                          <Color>00FF00</Color>
                          <VariableType>Auto Assembler Script</VariableType>
                          <AssemblerScript Async="1">{$lua}
[ENABLE]
if syntaxcheck then return end
local o_money = readInteger("moneyGained")
local n_money = o_money + 100000
writeInteger("moneyGained", n_money)
mrAutoDisable(memrec)

[DISABLE]
{$asm}
</AssemblerScript>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140713</ID>
                          <Description>"Money Gained +1,000,000"</Description>
                          <Color>00FF00</Color>
                          <VariableType>Auto Assembler Script</VariableType>
                          <AssemblerScript Async="1">{$lua}
[ENABLE]
if syntaxcheck then return end
local o_money = readInteger("moneyGained")
local n_money = o_money + 1000000
writeInteger("moneyGained", n_money)
mrAutoDisable(memrec)

[DISABLE]
{$asm}
</AssemblerScript>
                        </CheatEntry>
                      </CheatEntries>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
                <CheatEntry>
                  <ID>140737</ID>
                  <Description>"Infinite Ability Points"</Description>
                  <Color>00FF00</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>[ENABLE]
//Decrease
FINAL FANTASY IX.dll+2997096:
  db 90 90 90

//Increase
FINAL FANTASY IX.dll+2997100:
  db 90 90 90
 
[DISABLE]
//Decrease
FINAL FANTASY IX.dll+2997096:
  db 88 42 0F

//Increase
FINAL FANTASY IX.dll+2997100:
  db 88 41 0F

</AssemblerScript>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>32997</ID>
              <Description>"Enemies"</Description>
              <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
              <Color>00FFFF</Color>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>140584</ID>
                  <Description>"Health"</Description>
                  <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                  <Color>00FFFF</Color>
                  <GroupHeader>1</GroupHeader>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>140585</ID>
                      <Description>"Infinite Health"</Description>
                      <Color>00FF00</Color>
                      <VariableType>Auto Assembler Script</VariableType>
                      <AssemblerScript Async="1">[ENABLE]
healthLock+2:
  db 1

[DISABLE]
healthLock+2:
  db 0
</AssemblerScript>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>140586</ID>
                      <Description>"Receiving Damage Multiplier"</Description>
                      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                      <Color>00FF00</Color>
                      <VariableType>Auto Assembler Script</VariableType>
                      <AssemblerScript Async="1">[ENABLE]
healthDmg+2:
  db 1

healthDmgv+8:
  dd (float)1

[DISABLE]
healthDmg+2:
  db 0

healthDmgv+8:
  dd (float)1
</AssemblerScript>
                      <CheatEntries>
                        <CheatEntry>
                          <ID>140587</ID>
                          <Description>"Health Damage Multiplier Value"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>Float</VariableType>
                          <Address>healthDmgv+8</Address>
                        </CheatEntry>
                      </CheatEntries>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>140588</ID>
                      <Description>"One Hit Kill"</Description>
                      <Color>00FF00</Color>
                      <VariableType>Auto Assembler Script</VariableType>
                      <AssemblerScript Async="1">[ENABLE]
healthOHK+2:
  db 1

[DISABLE]
healthOHK+2:
  db 0
</AssemblerScript>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
                <CheatEntry>
                  <ID>140602</ID>
                  <Description>"Magic"</Description>
                  <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                  <Color>00FFFF</Color>
                  <GroupHeader>1</GroupHeader>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>140607</ID>
                      <Description>"Infinite MP"</Description>
                      <Color>00FF00</Color>
                      <VariableType>Auto Assembler Script</VariableType>
                      <AssemblerScript Async="1">[ENABLE]
magicLock+2:
  db 1

[DISABLE]
magicLock+2:
  db 0
</AssemblerScript>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>140608</ID>
                      <Description>"Zero MP"</Description>
                      <Color>00FF00</Color>
                      <VariableType>Auto Assembler Script</VariableType>
                      <AssemblerScript Async="1">[ENABLE]
zeroMagic+2:
  db 1

[DISABLE]
zeroMagic+2:
  db 0
</AssemblerScript>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
                <CheatEntry>
                  <ID>140593</ID>
                  <Description>"ATB Gauge"</Description>
                  <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                  <Color>00FFFF</Color>
                  <GroupHeader>1</GroupHeader>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>140600</ID>
                      <Description>"Full ATB Gauge"</Description>
                      <Color>00FF00</Color>
                      <VariableType>Auto Assembler Script</VariableType>
                      <AssemblerScript Async="1">[ENABLE]
atbGaugeLock+2:
  db 1

[DISABLE]
atbGaugeLock+2:
  db 0
</AssemblerScript>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>140601</ID>
                      <Description>"Always Empty ATB Gauge"</Description>
                      <Color>00FF00</Color>
                      <VariableType>Auto Assembler Script</VariableType>
                      <AssemblerScript Async="1">[ENABLE]
zeroAtbGauge+2:
  db 1

[DISABLE]
zeroAtbGauge+2:
  db 0
</AssemblerScript>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>140643</ID>
              <Description>"Items"</Description>
              <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
              <Color>00FFFF</Color>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>3319</ID>
                  <Description>"Have All Items/Max All Items -- (Doesn't stay active, just a quick toggle)"</Description>
                  <Color>00FF00</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript Async="1">[ENABLE]
{$lua}
local ptrMainMenu = ReadPointer(getAddress("ptrMainMenuHook"))
if (ptrMainMenu ~= nil) then
  local index = 0
  while (index &lt; 255) do
    WriteBytes(ReadPointer(ReadPointer(ReadPointer(ReadPointer(ptrMainMenu + 0x20) + 0x10) +0x88) + (index*8) + 0x10) + 0x08,index,99)
    index = index + 1
  end
mrAutoDisable(memrec)
end
{$asm}
[DISABLE]
</AssemblerScript>
                </CheatEntry>
                <CheatEntry>
                  <ID>140644</ID>
                  <Description>"Infinite Items"</Description>
                  <Color>00FF00</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript Async="1">{
	Process				: FINAL FANTASY IX.exe  -  x64
	Module				: FINAL FANTASY IX.dll
	Game Title			: FINAL FANTASY IX
	Game File Version 	:
	Game Version		:
	CE Version			: 7.5
	Script Version		: 1.0.1
	Date				: 01/23/24
	Author				: Chuggz
	Name				: InfiniteItemsHook

	Infinite Items Hook
}
{$STRICT}
//Infinite Items Hook -------------------------------------------------------------------
define(infiniteItemsAddress, FINAL FANTASY IX.dll+1986B9D)
define(infiniteItemsBytes, 2A CB)
define(infiniteItemsNop, 90 90)

//// ------------------------------ ENABLE ------------------------------
[ENABLE]
//Infinite Items Hook -------------------------------------------------------------------
define(injInfiniteItemsHook, infiniteItemsAddress)
i2assert(injInfiniteItemsHook, infiniteItemsBytes)
registerSymbol(injInfiniteItemsHook)

//// ---------- Injection Point ----------
injInfiniteItemsHook:
  db infiniteItemsNop

//// ------------------------------ DISABLE ------------------------------
[DISABLE]
//// ---------- Injection Point ----------
//Infinite Items Hook -------------------------------------------------------------------
injInfiniteItemsHook:
  db infiniteItemsBytes

unregisterSymbol(*)

//Infinite Items Hook -------------------------------------------------------------------
{
Module: FINAL FANTASY IX.dll
Address: FINAL FANTASY IX.dll+1986B9D
AOB Address: FINAL FANTASY IX.dll+1986B9D
FINAL FANTASY IX.dll+1986B85 - FF 25 D51D97FF          - jmp qword ptr ["FINAL FANTASY IX.dll"+12F8960]
FINAL FANTASY IX.dll+1986B8B - 33 C0                   - xor eax,eax
FINAL FANTASY IX.dll+1986B8D - 48 83 C4 28             - add rsp,28
FINAL FANTASY IX.dll+1986B91 - 5F                      - pop rdi
FINAL FANTASY IX.dll+1986B92 - 5B                      - pop rbx
FINAL FANTASY IX.dll+1986B93 - C3                      - ret
FINAL FANTASY IX.dll+1986B94 - 0FB6 C1                 - movzx eax,cl
FINAL FANTASY IX.dll+1986B97 - 3B C3                   - cmp eax,ebx
FINAL FANTASY IX.dll+1986B99 - 7D 02                   - jnl "FINAL FANTASY IX.dll"+1986B9D
FINAL FANTASY IX.dll+1986B9B - 8B D8                   - mov ebx,eax
FINAL FANTASY IX.dll+1986B9D - 2A CB                   - sub cl,bl   &lt;&lt;&lt;---- Injection point
FINAL FANTASY IX.dll+1986B9F - 88 4A 09                - mov [rdx+09],cl
FINAL FANTASY IX.dll+1986BA2 - 8B C3                   - mov eax,ebx
FINAL FANTASY IX.dll+1986BA4 - EB E7                   - jmp "FINAL FANTASY IX.dll"+1986B8D
FINAL FANTASY IX.dll+1986BA6 - FF 15 7C5A66FF          - call qword ptr ["FINAL FANTASY IX.dll"+FEC628]
FINAL FANTASY IX.dll+1986BAC - CC                      - int 3
FINAL FANTASY IX.dll+1986BAD - CC                      - int 3
FINAL FANTASY IX.dll+1986BAE - CC                      - int 3
FINAL FANTASY IX.dll+1986BAF - CC                      - int 3
FINAL FANTASY IX.dll+1986BB0 - 4C 8B C1                - mov r8,rcx
FINAL FANTASY IX.dll+1986BB3 - 0FBF 41 24              - movsx eax,word ptr [rcx+24]
}
</AssemblerScript>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>140504</ID>
              <Description>"Jump Rope"</Description>
              <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
              <Color>00FFFF</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript Async="1">{
	Process				: FINAL FANTASY IX.exe  -  x64
	Module				: FINAL FANTASY IX.dll
	Game Title			: FINAL FANTASY IX
	Game File Version 	:
	Game Version		:
	CE Version			: 7.5
	Script Version		: 1.0.1
	Date				: 01/15/24
	Author				: Chuggz
	Name				: JumpRopeHook

	Jump Rope Hook
}
{$STRICT}
//Jump Rope Hook -------------------------------------------------------------------
define(jumpRopeAddress, FINAL FANTASY IX.dll+25A5D6A)
define(jumpRopeBytes, 88 4C 18 10 8D 42 01)

//// ------------------------------ ENABLE -----------------------------------
[ENABLE]
//Jump Rope Hook -------------------------------------------------------------------
define(injJumpRopeHook, jumpRopeAddress)
i2assert(injJumpRopeHook, jumpRopeBytes)
registerSymbol(injJumpRopeHook)

alloc(memJumpRopeHook, 0x100, jumpRopeAddress)

label(ptrJumpRopeHook)
registerSymbol(ptrJumpRopeHook)

label(n_jumpRopeCode)
label(o_jumpRopeCode)
label(jumpRopeExit)
label(jumpRopeReturn)

memJumpRopeHook:
	ptrJumpRopeHook:
	  dq 0
	  align 10 CC

	n_jumpRopeCode:
      cmp word ptr [rax+rbx+14],#10
      jne o_jumpRopeCode
      push r11
      mov r11,rbx
      add r11,rax
	  mov [ptrJumpRopeHook],r11
      pop r11

	o_jumpRopeCode:
	  mov [rax+rbx+10],cl
	  lea eax,[rdx+01]

	jumpRopeExit:
	  jmp jumpRopeReturn

//// ---------- Injection Point ----------
//Jump Rope Hook -------------------------------------------------------------------
injJumpRopeHook:
  jmp n_jumpRopeCode
  nop 2
  jumpRopeReturn:

//// ------------------------------ DISABLE -----------------------------------
[DISABLE]
//// ---------- Injection Point ----------
//Jump Rope Hook -------------------------------------------------------------------
injJumpRopeHook:
  db jumpRopeBytes

unregisterSymbol(*)
dealloc(*)

//Jump Rope Hook -------------------------------------------------------------------
{
Module: FINAL FANTASY IX.dll
Address: FINAL FANTASY IX.dll+25A5D6A
AOB Address: FINAL FANTASY IX.dll+25A5D6A
FINAL FANTASY IX.dll+25A5D45 - 41 89 40 0C             - mov [r8+0C],eax
FINAL FANTASY IX.dll+25A5D49 - 41 88 44 19 10          - mov [r9+rbx+10],al
FINAL FANTASY IX.dll+25A5D4E - EB 45                   - jmp "FINAL FANTASY IX.dll"+25A5D95
FINAL FANTASY IX.dll+25A5D50 - 8B 54 24 68             - mov edx,[rsp+68]
FINAL FANTASY IX.dll+25A5D54 - 03 D7                   - add edx,edi
FINAL FANTASY IX.dll+25A5D56 - 4C 8B 43 08             - mov r8,[rbx+08]
FINAL FANTASY IX.dll+25A5D5A - 48 63 C2                - movsxd  rax,edx
FINAL FANTASY IX.dll+25A5D5D - 49 3B C0                - cmp rax,r8
FINAL FANTASY IX.dll+25A5D60 - 0F83 7D000000           - jae "FINAL FANTASY IX.dll"+25A5DE3
FINAL FANTASY IX.dll+25A5D66 - 8B 4C 24 60             - mov ecx,[rsp+60]
FINAL FANTASY IX.dll+25A5D6A - 88 4C 18 10             - mov [rax+rbx+10],cl   &lt;&lt;&lt;---- Injection point
FINAL FANTASY IX.dll+25A5D6E - 8D 42 01                - lea eax,[rdx+01]
FINAL FANTASY IX.dll+25A5D71 - 4C 63 C8                - movsxd  r9,eax
FINAL FANTASY IX.dll+25A5D74 - 4D 3B C8                - cmp r9,r8
FINAL FANTASY IX.dll+25A5D77 - 73 6A                   - jae "FINAL FANTASY IX.dll"+25A5DE3
FINAL FANTASY IX.dll+25A5D79 - 8B C1                   - mov eax,ecx
FINAL FANTASY IX.dll+25A5D7B - C1 F8 08                - sar eax,08
FINAL FANTASY IX.dll+25A5D7E - 41 88 44 19 10          - mov [r9+rbx+10],al
FINAL FANTASY IX.dll+25A5D83 - 8D 42 02                - lea eax,[rdx+02]
FINAL FANTASY IX.dll+25A5D86 - 48 63 D0                - movsxd  rdx,eax
FINAL FANTASY IX.dll+25A5D89 - 49 3B D0                - cmp rdx,r8
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>140505</ID>
                  <Description>"Jump Rope Value"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>00FF00</Color>
                  <VariableType>2 Bytes</VariableType>
                  <Address>ptrJumpRopeHook</Address>
                  <Offsets>
                    <Offset>10</Offset>
                  </Offsets>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>140690</ID>
              <Description>"Frogs Captured (Not fully tested yet)"</Description>
              <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
              <Color>00FFFF</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript Async="1">{
	Process				: FINAL FANTASY IX.exe  -  x64
	Module				: FINAL FANTASY IX.dll
	Game Title			: FINAL FANTASY IX
	Game File Version 	:
	Game Version		:
	CE Version			: 7.5
	Script Version		: 1.0.1
	Date				: 03/07/24
	Author				: Chuggz
	Name				: FrogsHook

	Frogs Hook
}
{$STRICT}
//Frogs Hook -------------------------------------------------------------------
define(frogsAddress, FINAL FANTASY IX.dll+290A20C)
define(frogsBytes, 44 8B 7C 88 10)

//// ------------------------------ ENABLE -----------------------------------
[ENABLE]
//Frogs Hook -------------------------------------------------------------------
define(injFrogsHook, frogsAddress)
i2assert(injFrogsHook, frogsBytes)
registerSymbol(injFrogsHook)

alloc(memFrogsHook, 0x100, frogsAddress)

label(ptrFrogsHook)
registerSymbol(ptrFrogsHook)

label(ore)
label(ether)
label(silkRobe)
label(elixir)
label(silverFork)
label(bistroFork)
label(battleBoots)
label(gastroFork)

label(n_frogsCode)
label(o_frogsCode)
label(frogsExit)
label(frogsReturn)

memFrogsHook:
	ptrFrogsHook:
	  dq 0
	  align 10 CC

	n_frogsCode:
	  mov [ptrFrogsHook],rax

	  mov r15d,[rax+rcx*4+10]

      ore:
        cmp r15,#2
        jge ether
        mov r15,#2
        jmp frogsExit

      ether:
        cmp r15,#5
        jge silkRobe
        mov r15,#5
        jmp frogsExit

      silkRobe:
        cmp r15,#9
        jge elixir
        mov r15,#9
        jmp frogsExit

      elixir:
        cmp r15,#15
        jge silverFork
        mov r15,#15
        jmp frogsExit

      silverFork:
        cmp r15,#23
        jge bistroFork
        mov r15,#23
        jmp frogsExit

      bistroFork:
        cmp r15,#33
        jge battleBoots
        mov r15,#33
        jmp frogsExit

      battleBoots:
        cmp r15,#45
        jge gastroFork
        mov r15,#45
        jmp frogsExit

      gastroFork:
        cmp r15,#99
        jge frogsExit
        mov r15,#99
        jmp frogsExit

	o_frogsCode:
	  mov r15d,[rax+rcx*4+10]

	frogsExit:
	  jmp frogsReturn

//// ---------- Injection Point ----------
injFrogsHook:
  jmp n_frogsCode
  frogsReturn:

//// ------------------------------ DISABLE -----------------------------------
[DISABLE]
//// ---------- Injection Point ----------
//Frogs Hook -------------------------------------------------------------------
injFrogsHook:
  db frogsBytes

unregisterSymbol(*)
dealloc(*)

//Frogs Hook -------------------------------------------------------------------
{
Module: FINAL FANTASY IX.dll
Address: FINAL FANTASY IX.dll+290A20C
AOB Address: FINAL FANTASY IX.dll+290A20C
FINAL FANTASY IX.dll+290A1E1 - 41 8B D6                - mov edx,r14d
FINAL FANTASY IX.dll+290A1E4 - FF 15 668E6DFE          - call qword ptr ["FINAL FANTASY IX.dll"+FE3050]
FINAL FANTASY IX.dll+290A1EA - 8B F0                   - mov esi,eax
FINAL FANTASY IX.dll+290A1EC - 49 8B CC                - mov rcx,r12
FINAL FANTASY IX.dll+290A1EF - E8 7C9EEDFE             - call "FINAL FANTASY IX.dll"+17E4070
FINAL FANTASY IX.dll+290A1F4 - 48 8B 88 30010000       - mov rcx,[rax+00000130]
FINAL FANTASY IX.dll+290A1FB - 48 8B 41 30             - mov rax,[rcx+30]
FINAL FANTASY IX.dll+290A1FF - 48 63 CE                - movsxd  rcx,esi
FINAL FANTASY IX.dll+290A202 - 48 3B 48 08             - cmp rcx,[rax+08]
FINAL FANTASY IX.dll+290A206 - 0F83 83000000           - jae "FINAL FANTASY IX.dll"+290A28F
FINAL FANTASY IX.dll+290A20C - 44 8B 7C 88 10          - mov r15d,[rax+rcx*4+10]   &lt;&lt;&lt;---- Injection point
FINAL FANTASY IX.dll+290A211 - 48 8B 4F 10             - mov rcx,[rdi+10]
FINAL FANTASY IX.dll+290A215 - 80 39 00                - cmp byte ptr [rcx],00
FINAL FANTASY IX.dll+290A218 - FF 15 2A8E6DFE          - call qword ptr ["FINAL FANTASY IX.dll"+FE3048]
FINAL FANTASY IX.dll+290A21E - 85 C0                   - test eax,eax
FINAL FANTASY IX.dll+290A220 - 7E 28                   - jle "FINAL FANTASY IX.dll"+290A24A
FINAL FANTASY IX.dll+290A222 - 33 DB                   - xor ebx,ebx
FINAL FANTASY IX.dll+290A224 - 48 8B 4F 10             - mov rcx,[rdi+10]
FINAL FANTASY IX.dll+290A228 - 80 39 00                - cmp byte ptr [rcx],00
FINAL FANTASY IX.dll+290A22B - 8B D3                   - mov edx,ebx
FINAL FANTASY IX.dll+290A22D - FF 15 1D8E6DFE          - call qword ptr ["FINAL FANTASY IX.dll"+FE3050]
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>140691</ID>
                  <Description>"Frogs Captured"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>00FF00</Color>
                  <VariableType>2 Bytes</VariableType>
                  <Address>ptrFrogsHook</Address>
                  <Offsets>
                    <Offset>14</Offset>
                  </Offsets>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>140754</ID>
              <Description>"No TImer Countdown (When revisiting Alexendria Castle)"</Description>
              <Color>00FF00</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
FINAL FANTASY IX.dll+2766700:
  db 90 90 90 90 90

[DISABLE]
FINAL FANTASY IX.dll+2766700:
  db F3 0F 11 53 04


//Timer Hook -------------------------------------------------------------------
{
Module: FINAL FANTASY IX.dll
Address: FINAL FANTASY IX.dll+2766700
AOB Address: FINAL FANTASY IX.dll+2766700
FINAL FANTASY IX.dll+27666D3 - 48 8D 0D 7E738AFD       - lea rcx,["FINAL FANTASY IX.dll"+DA58]
FINAL FANTASY IX.dll+27666DA - E8 91D907FF             - call "FINAL FANTASY IX.dll"+17E4070
FINAL FANTASY IX.dll+27666DF - 48 8B 48 18             - mov rcx,[rax+18]
FINAL FANTASY IX.dll+27666E3 - 40 38 39                - cmp [rcx],dil
FINAL FANTASY IX.dll+27666E6 - E8 751C27FF             - call "FINAL FANTASY IX.dll"+19D8360
FINAL FANTASY IX.dll+27666EB - 0F28 C6                 - movaps xmm0,xmm6
FINAL FANTASY IX.dll+27666EE - F2 0F5C 43 10           - subsd xmm0,[rbx+10]
FINAL FANTASY IX.dll+27666F3 - 66 0F5A C8              - cvtpd2ps xmm1,xmm0
FINAL FANTASY IX.dll+27666F7 - F3 0F10 53 04           - movss xmm2,[rbx+04]
FINAL FANTASY IX.dll+27666FC - F3 0F5C D1              - subss xmm2,xmm1
FINAL FANTASY IX.dll+2766700 - F3 0F11 53 04           - movss [rbx+04],xmm2   &lt;&lt;&lt;---- Injection point
FINAL FANTASY IX.dll+2766705 - F2 0F11 73 10           - movsd [rbx+10],xmm6
FINAL FANTASY IX.dll+276670A - F3 0F10 43 04           - movss xmm0,[rbx+04]
FINAL FANTASY IX.dll+276670F - 0F57 C9                 - xorps xmm1,xmm1
FINAL FANTASY IX.dll+2766712 - 0F2F C8                 - comiss xmm1,xmm0
FINAL FANTASY IX.dll+2766715 - 76 06                   - jna "FINAL FANTASY IX.dll"+276671D
FINAL FANTASY IX.dll+2766717 - 0F28 C1                 - movaps xmm0,xmm1
FINAL FANTASY IX.dll+276671A - 89 7B 04                - mov [rbx+04],edi
FINAL FANTASY IX.dll+276671D - 0F5A C0                 - cvtps2pd xmm0,xmm0
FINAL FANTASY IX.dll+2766720 - FF 15 021388FE          - call qword ptr ["FINAL FANTASY IX.dll"+FE7A28]
FINAL FANTASY IX.dll+2766726 - 48 89 44 24 20          - mov [rsp+20],rax
}
</AssemblerScript>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>140510</ID>
      <Description>"--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"</Description>
      <Color>2A2A2A</Color>
      <GroupHeader>1</GroupHeader>
    </CheatEntry>
    <CheatEntry>
      <ID>20</ID>
      <Description>"~[  Debug  ]~"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <Color>00FFFF</Color>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>28464</ID>
          <Description>"~[  Hooks  ]~"</Description>
          <Options moHideChildren="1"/>
          <Color>00FFFF</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>33047</ID>
              <Description>"Values"</Description>
              <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
              <Color>800080</Color>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>33048</ID>
                  <Description>"Party"</Description>
                  <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                  <Color>800080</Color>
                  <GroupHeader>1</GroupHeader>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>33049</ID>
                      <Description>"Party Base"</Description>
                      <ShowAsHex>1</ShowAsHex>
                      <ShowAsSigned>0</ShowAsSigned>
                      <Color>FFFF00</Color>
                      <VariableType>8 Bytes</VariableType>
                      <Address>ptrPartyBaseHook</Address>
                      <Offsets>
                        <Offset>0</Offset>
                      </Offsets>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>140648</ID>
                      <Description>"Health Base"</Description>
                      <ShowAsHex>1</ShowAsHex>
                      <ShowAsSigned>0</ShowAsSigned>
                      <Color>FFFF00</Color>
                      <VariableType>8 Bytes</VariableType>
                      <Address>ptrHealthHook</Address>
                      <Offsets>
                        <Offset>0</Offset>
                      </Offsets>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>140647</ID>
                      <Description>"Magic Base"</Description>
                      <ShowAsHex>1</ShowAsHex>
                      <ShowAsSigned>0</ShowAsSigned>
                      <Color>FFFF00</Color>
                      <VariableType>8 Bytes</VariableType>
                      <Address>ptrMagicHook</Address>
                      <Offsets>
                        <Offset>0</Offset>
                      </Offsets>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>140641</ID>
                      <Description>"Trance Base"</Description>
                      <ShowAsHex>1</ShowAsHex>
                      <ShowAsSigned>0</ShowAsSigned>
                      <Color>FFFF00</Color>
                      <VariableType>8 Bytes</VariableType>
                      <Address>ptrTranceHook</Address>
                      <Offsets>
                        <Offset>0</Offset>
                      </Offsets>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>140649</ID>
                      <Description>"Main Menu Base"</Description>
                      <ShowAsHex>1</ShowAsHex>
                      <ShowAsSigned>0</ShowAsSigned>
                      <Color>FFFF00</Color>
                      <VariableType>8 Bytes</VariableType>
                      <Address>ptrMainMenuHook</Address>
                      <Offsets>
                        <Offset>0</Offset>
                      </Offsets>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>33054</ID>
                      <Description>"Zidane"</Description>
                      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                      <Color>800080</Color>
                      <GroupHeader>1</GroupHeader>
                      <CheatEntries>
                        <CheatEntry>
                          <ID>33055</ID>
                          <Description>"Health"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>2 Bytes</VariableType>
                          <Address>zidaneBase</Address>
                          <Offsets>
                            <Offset>8</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140545</ID>
                          <Description>"MP"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>2 Bytes</VariableType>
                          <Address>zidaneBase</Address>
                          <Offsets>
                            <Offset>A</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>33056</ID>
                          <Description>"ATB Gauge"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>2 Bytes</VariableType>
                          <Address>zidaneBase</Address>
                          <Offsets>
                            <Offset>C</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>33057</ID>
                          <Description>"Trance Gauge"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>Byte</VariableType>
                          <Address>zidaneTranceBase</Address>
                          <Offsets>
                            <Offset>60</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>33060</ID>
                          <Description>"Party Compare"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>Byte</VariableType>
                          <Address>zidaneBase</Address>
                          <Offsets>
                            <Offset>E2</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140523</ID>
                          <Description>"Compare Party/Enemies"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>Byte</VariableType>
                          <Address>zidaneBase</Address>
                          <Offsets>
                            <Offset>F3</Offset>
                          </Offsets>
                        </CheatEntry>
                      </CheatEntries>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>140536</ID>
                      <Description>"Vivi"</Description>
                      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                      <Color>800080</Color>
                      <GroupHeader>1</GroupHeader>
                      <CheatEntries>
                        <CheatEntry>
                          <ID>140537</ID>
                          <Description>"Health"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>2 Bytes</VariableType>
                          <Address>viviBase</Address>
                          <Offsets>
                            <Offset>8</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140544</ID>
                          <Description>"MP"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>2 Bytes</VariableType>
                          <Address>viviBase</Address>
                          <Offsets>
                            <Offset>A</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140538</ID>
                          <Description>"ATB Gauge"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>2 Bytes</VariableType>
                          <Address>viviBase</Address>
                          <Offsets>
                            <Offset>C</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140650</ID>
                          <Description>"Trance Gauge"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>Byte</VariableType>
                          <Address>viviTranceBase</Address>
                          <Offsets>
                            <Offset>60</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140540</ID>
                          <Description>"Pary Compare"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>Byte</VariableType>
                          <Address>viviBase</Address>
                          <Offsets>
                            <Offset>E2</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140541</ID>
                          <Description>"Compare Party/Enemies"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>Byte</VariableType>
                          <Address>viviBase</Address>
                          <Offsets>
                            <Offset>F3</Offset>
                          </Offsets>
                        </CheatEntry>
                      </CheatEntries>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>140530</ID>
                      <Description>"Dagger"</Description>
                      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                      <Color>800080</Color>
                      <GroupHeader>1</GroupHeader>
                      <CheatEntries>
                        <CheatEntry>
                          <ID>140531</ID>
                          <Description>"Health"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>2 Bytes</VariableType>
                          <Address>daggerBase</Address>
                          <Offsets>
                            <Offset>8</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140543</ID>
                          <Description>"MP"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>2 Bytes</VariableType>
                          <Address>daggerBase</Address>
                          <Offsets>
                            <Offset>A</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140532</ID>
                          <Description>"ATB Gauge"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>2 Bytes</VariableType>
                          <Address>daggerBase</Address>
                          <Offsets>
                            <Offset>C</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140651</ID>
                          <Description>"Trance Gauge"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>Byte</VariableType>
                          <Address>daggerTranceBase</Address>
                          <Offsets>
                            <Offset>60</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140534</ID>
                          <Description>"Pary Compare"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>Byte</VariableType>
                          <Address>daggerBase</Address>
                          <Offsets>
                            <Offset>E2</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140535</ID>
                          <Description>"Compare Party/Enemies"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>Byte</VariableType>
                          <Address>daggerBase</Address>
                          <Offsets>
                            <Offset>F3</Offset>
                          </Offsets>
                        </CheatEntry>
                      </CheatEntries>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>140524</ID>
                      <Description>"Steiner"</Description>
                      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                      <Color>800080</Color>
                      <GroupHeader>1</GroupHeader>
                      <CheatEntries>
                        <CheatEntry>
                          <ID>140525</ID>
                          <Description>"Health"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>2 Bytes</VariableType>
                          <Address>steinerBase</Address>
                          <Offsets>
                            <Offset>8</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140546</ID>
                          <Description>"MP"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>2 Bytes</VariableType>
                          <Address>steinerBase</Address>
                          <Offsets>
                            <Offset>A</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140526</ID>
                          <Description>"ATB Gauge"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>2 Bytes</VariableType>
                          <Address>steinerBase</Address>
                          <Offsets>
                            <Offset>C</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140652</ID>
                          <Description>"Trance Gauge"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>Byte</VariableType>
                          <Address>steinerTranceBase</Address>
                          <Offsets>
                            <Offset>60</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140528</ID>
                          <Description>"Pary Compare"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>Byte</VariableType>
                          <Address>steinerBase</Address>
                          <Offsets>
                            <Offset>E2</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140529</ID>
                          <Description>"Compare Party/Enemies"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>Byte</VariableType>
                          <Address>steinerBase</Address>
                          <Offsets>
                            <Offset>F3</Offset>
                          </Offsets>
                        </CheatEntry>
                      </CheatEntries>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>140666</ID>
                      <Description>"Freya"</Description>
                      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                      <Color>800080</Color>
                      <GroupHeader>1</GroupHeader>
                      <CheatEntries>
                        <CheatEntry>
                          <ID>140667</ID>
                          <Description>"Health"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>2 Bytes</VariableType>
                          <Address>freyaBase</Address>
                          <Offsets>
                            <Offset>8</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140668</ID>
                          <Description>"MP"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>2 Bytes</VariableType>
                          <Address>freyaBase</Address>
                          <Offsets>
                            <Offset>A</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140669</ID>
                          <Description>"ATB Gauge"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>2 Bytes</VariableType>
                          <Address>freyaBase</Address>
                          <Offsets>
                            <Offset>C</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140670</ID>
                          <Description>"Trance Gauge"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>Byte</VariableType>
                          <Address>freyaTranceBase</Address>
                          <Offsets>
                            <Offset>60</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140671</ID>
                          <Description>"Pary Compare"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>Byte</VariableType>
                          <Address>freyaBase</Address>
                          <Offsets>
                            <Offset>E2</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140672</ID>
                          <Description>"Compare Party/Enemies"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>Byte</VariableType>
                          <Address>freyaBase</Address>
                          <Offsets>
                            <Offset>F3</Offset>
                          </Offsets>
                        </CheatEntry>
                      </CheatEntries>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>140659</ID>
                      <Description>"Quina"</Description>
                      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                      <Color>800080</Color>
                      <GroupHeader>1</GroupHeader>
                      <CheatEntries>
                        <CheatEntry>
                          <ID>140660</ID>
                          <Description>"Health"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>2 Bytes</VariableType>
                          <Address>quinaBase</Address>
                          <Offsets>
                            <Offset>8</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140661</ID>
                          <Description>"MP"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>2 Bytes</VariableType>
                          <Address>quinaBase</Address>
                          <Offsets>
                            <Offset>A</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140662</ID>
                          <Description>"ATB Gauge"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>2 Bytes</VariableType>
                          <Address>quinaBase</Address>
                          <Offsets>
                            <Offset>C</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140663</ID>
                          <Description>"Trance Gauge"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>Byte</VariableType>
                          <Address>quinaTranceBase</Address>
                          <Offsets>
                            <Offset>60</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140664</ID>
                          <Description>"Pary Compare"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>Byte</VariableType>
                          <Address>quinaBase</Address>
                          <Offsets>
                            <Offset>E2</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140665</ID>
                          <Description>"Compare Party/Enemies"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>Byte</VariableType>
                          <Address>quinaBase</Address>
                          <Offsets>
                            <Offset>F3</Offset>
                          </Offsets>
                        </CheatEntry>
                      </CheatEntries>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>140724</ID>
                      <Description>"Marcus"</Description>
                      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                      <Color>800080</Color>
                      <GroupHeader>1</GroupHeader>
                      <CheatEntries>
                        <CheatEntry>
                          <ID>140725</ID>
                          <Description>"Health"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>2 Bytes</VariableType>
                          <Address>marcusBase</Address>
                          <Offsets>
                            <Offset>8</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140726</ID>
                          <Description>"MP"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>2 Bytes</VariableType>
                          <Address>marcusBase</Address>
                          <Offsets>
                            <Offset>A</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140727</ID>
                          <Description>"ATB Gauge"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>2 Bytes</VariableType>
                          <Address>marcusBase</Address>
                          <Offsets>
                            <Offset>C</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140729</ID>
                          <Description>"Pary Compare"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>Byte</VariableType>
                          <Address>marcusBase</Address>
                          <Offsets>
                            <Offset>E2</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>140730</ID>
                          <Description>"Compare Party/Enemies"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <Color>FFFF00</Color>
                          <VariableType>Byte</VariableType>
                          <Address>marcusBase</Address>
                          <Offsets>
                            <Offset>F3</Offset>
                          </Offsets>
                        </CheatEntry>
                      </CheatEntries>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
                <CheatEntry>
                  <ID>140694</ID>
                  <Description>"After Battle Report"</Description>
                  <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                  <Color>800080</Color>
                  <GroupHeader>1</GroupHeader>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>140695</ID>
                      <Description>"Exp"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <Color>FFFF00</Color>
                      <VariableType>4 Bytes</VariableType>
                      <Address>ptrBattleReportHook</Address>
                      <Offsets>
                        <Offset>130</Offset>
                      </Offsets>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>140697</ID>
                      <Description>"Ap"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <Color>FFFF00</Color>
                      <VariableType>4 Bytes</VariableType>
                      <Address>ptrBattleReportHook</Address>
                      <Offsets>
                        <Offset>134</Offset>
                      </Offsets>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>140696</ID>
                      <Description>"Money"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <Color>FFFF00</Color>
                      <VariableType>4 Bytes</VariableType>
                      <Address>ptrBattleReportHook</Address>
                      <Offsets>
                        <Offset>2C8</Offset>
                      </Offsets>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
                <CheatEntry>
                  <ID>3316</ID>
                  <Description>"Main Menu"</Description>
                  <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                  <Color>800080</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>[ENABLE]
alloc(timeMath, 0x100, FINAL FANTASY IX.dll)
registerSymbol(timeMath)
{$lua}
if syntaxcheck then return end

local function SecToStr(s,p,d) -- Time in seconds, Precision, Delimiter
    local s = math.ceil( math.abs(s) ) or 0
    local p = p or 7
    local d = d or ' '
    if s == math.huge or s == -math.huge then
        return ' ∞ '
    end
    local n = {31536000, 2592000, 86400, 3600, 60, 1}
    local u = {'Y','M','D','h','m','s'} --Year, Month, Day, hour, minute, seconds
    local g = {}
    for i, v in ipairs(u) do
        local m = math.floor(s / n[i])
        if m ~= m then
            return table.concat(g, d)
        end
        if p &gt; 0 and ( m &gt; 0 or #g &gt; 0) then --If zero, don't include higher unit's of time
            s = s - m * n[i]
            if m &gt; 0 then  --If zero, skip displaying value
                table.insert(g, m..v)
            end
            p = m==0 and p or p - 1
        end
    end
    return table.concat(g, d)
end

local function writeStringTable(addr, str, wide)
  local bt
  if wide then
    bt = wideStringToByteTable(str)
    bt[#bt+1] = 0
    bt[#bt+1] = 0
  else
    bt = stringToByteTable(str)
    bt[#bt+1] = 0
  end
  return writeBytes(addr, bt)
end

local id = memrec.ID
local baseAddress = getAddressSafe('[ptrMainMenuHook]')

local t = createTimer(nil, false)
t.Interval = 1000
t.Enabled = true
t.OnTimer = function(id)
  if not memrec.Active then
    t.Destroy()
    t = nil
    return
  end
  -- code
  local time = getAddressSafe('timeMath')
  local seconds = readDouble(baseAddress + 0xC8)

  local getTime = SecToStr(seconds)
  writeStringTable('timeMath', getTime)

  if (baseAddress == nil) or (time == nil) then
    t.Destroy()
    t = nil
    return
  end
end
[DISABLE]
{$asm}
unregisterSymbol(*)
dealloc(*)
</AssemblerScript>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>3317</ID>
                      <Description>"Gil"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <Color>FFFF00</Color>
                      <VariableType>4 Bytes</VariableType>
                      <Address>ptrMainMenuHook</Address>
                      <Offsets>
                        <Offset>14</Offset>
                        <Offset>70</Offset>
                        <Offset>10</Offset>
                        <Offset>20</Offset>
                      </Offsets>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>3318</ID>
                      <Description>"Time Played In Seconds"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <Color>FFFF00</Color>
                      <VariableType>Double</VariableType>
                      <Address>ptrMainMenuHook</Address>
                      <Offsets>
                        <Offset>C8</Offset>
                      </Offsets>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>34407</ID>
                      <Description>"Game Time String"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <Color>FFFF00</Color>
                      <VariableType>String</VariableType>
                      <Length>100</Length>
                      <Unicode>0</Unicode>
                      <CodePage>0</CodePage>
                      <ZeroTerminate>1</ZeroTerminate>
                      <Address>timeMath</Address>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
                <CheatEntry>
                  <ID>881</ID>
                  <Description>"Jump Rope"</Description>
                  <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                  <Color>800080</Color>
                  <GroupHeader>1</GroupHeader>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>880</ID>
                      <Description>"Jump Rope"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <Color>FFFF00</Color>
                      <VariableType>Byte</VariableType>
                      <Address>ptrJumpRopeHook</Address>
                      <Offsets>
                        <Offset>10</Offset>
                      </Offsets>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
                <CheatEntry>
                  <ID>140692</ID>
                  <Description>"Frogs Captured"</Description>
                  <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                  <Color>800080</Color>
                  <GroupHeader>1</GroupHeader>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>140693</ID>
                      <Description>"Frogs Captured"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <Color>FFFF00</Color>
                      <VariableType>Byte</VariableType>
                      <Address>ptrFrogsHook</Address>
                      <Offsets>
                        <Offset>14</Offset>
                      </Offsets>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>31662</ID>
          <Description>"--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"</Description>
          <Color>2A2A2A</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>29</ID>
          <Description>"~[  Helpers  ]~"</Description>
          <Options moHideChildren="1"/>
          <Color>00FFFF</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>27904</ID>
              <Description>"setAllScriptsToAsync()  ()-&gt;"</Description>
              <Color>008000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript Async="1">{$lua}
if syntaxcheck then return end
[ENABLE]
setAllScriptsToAsync()
mrAutoDisable(memrec)
[DISABLE]
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>31</ID>
              <Description>"setAllScriptsToNotAsync()  ()-&gt;"</Description>
              <Color>008000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript Async="1">{$lua}
if syntaxcheck then return end
[ENABLE]
setAllScriptsToNotAsync()
mrAutoDisable(memrec)
[DISABLE]
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>31663</ID>
              <Description>"--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"</Description>
              <Color>2A2A2A</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>33</ID>
              <Description>"Updater.generateVersionFile()  ()-&gt;"</Description>
              <Color>008000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript Async="1">{$lua}
if syntaxcheck then return end
[ENABLE]
require('I2CETLua.ctState')
Updater.generateVersionFile()
mrAutoDisable(memrec)
[DISABLE]
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>140653</ID>
              <Description>"Updater.checkForTableUpdate()  ()-&gt;"</Description>
              <Color>008000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript Async="1">{$lua}
if syntaxcheck then return end
[ENABLE]
require('I2CETLua.ctState')
Updater.checkForTableUpdate()
mrAutoDisable(memrec)
[DISABLE]
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>31664</ID>
              <Description>"--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"</Description>
              <Color>2A2A2A</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>35</ID>
              <Description>"ctState.createDefaultMemoryRecords()  ()-&gt;"</Description>
              <Color>008000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript Async="1">{$lua}
if syntaxcheck then return end
[ENABLE]
require('I2CETLua.ctState')
ctState.createDefaultMemoryRecords()
mrAutoDisable(memrec)
[DISABLE]
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>31665</ID>
              <Description>"--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"</Description>
              <Color>2A2A2A</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>37</ID>
              <Description>"Teleporter:generateMemoryRecords()  ()-&gt;"</Description>
              <Color>008000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript Async="1">{$lua}
if syntaxcheck then return end
[ENABLE]
require('I2CETLua.Teleporter')
Teleporter:generateMemoryRecords('TableTeleporter')
mrAutoDisable(memrec)
[DISABLE]
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>31666</ID>
              <Description>"--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"</Description>
              <Color>2A2A2A</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>39</ID>
              <Description>"CheatTable.disableDragDrop()  ()-&gt;"</Description>
              <Color>008000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript Async="1">{$lua}
if syntaxcheck then return end
[ENABLE]
require('I2CETLua.CheatTable')
CheatTable.disableDragDrop()
mrAutoDisable(memrec)
[DISABLE]
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>27906</ID>
              <Description>"CheatTable.disableHeaderSorting()  ()-&gt;"</Description>
              <Color>008000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript Async="1">{$lua}
if syntaxcheck then return end
[ENABLE]
require('I2CETLua.CheatTable')
CheatTable.disableHeaderSorting()
mrAutoDisable(memrec)
[DISABLE]
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>27907</ID>
              <Description>"CheatTable.addCompactModeMenu()  ()-&gt;"</Description>
              <Color>008000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript Async="1">{$lua}
if syntaxcheck then return end
[ENABLE]
require('I2CETLua.CheatTable')
CheatTable.addCompactModeMenu()
mrAutoDisable(memrec)
[DISABLE]
</AssemblerScript>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>31667</ID>
          <Description>"--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"</Description>
          <Color>2A2A2A</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>28044</ID>
          <Description>"~[  Workspace  ]~"</Description>
          <Options moHideChildren="1"/>
          <Color>00FFFF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>31651</ID>
      <Description>"--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"</Description>
      <Color>2A2A2A</Color>
      <GroupHeader>1</GroupHeader>
    </CheatEntry>
  </CheatEntries>
  <CheatCodes>
    <CodeEntry>
      <Description>Change of sub [rcx+08],di</Description>
      <AddressString>FINAL FANTASY IX.dll+25E0534</AddressString>
      <Before>
        <Byte>12</Byte>
        <Byte>48</Byte>
        <Byte>8B</Byte>
        <Byte>4B</Byte>
        <Byte>28</Byte>
      </Before>
      <Actual>
        <Byte>66</Byte>
        <Byte>29</Byte>
        <Byte>79</Byte>
        <Byte>08</Byte>
      </Actual>
      <After>
        <Byte>EB</Byte>
        <Byte>08</Byte>
        <Byte>48</Byte>
        <Byte>8B</Byte>
        <Byte>CB</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>Change of cmp edx,eax</Description>
      <AddressString>FINAL FANTASY IX.dll+198023E</AddressString>
      <Before>
        <Byte>28</Byte>
        <Byte>0F</Byte>
        <Byte>B7</Byte>
        <Byte>51</Byte>
        <Byte>08</Byte>
      </Before>
      <Actual>
        <Byte>3B</Byte>
        <Byte>D0</Byte>
      </Actual>
      <After>
        <Byte>7E</Byte>
        <Byte>3F</Byte>
        <Byte>E8</Byte>
        <Byte>29</Byte>
        <Byte>46</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>Change of jle "FINAL FANTASY IX.dll"+1980281</Description>
      <AddressString>FINAL FANTASY IX.dll+1980240</AddressString>
      <Before>
        <Byte>B7</Byte>
        <Byte>51</Byte>
        <Byte>08</Byte>
        <Byte>3B</Byte>
        <Byte>D0</Byte>
      </Before>
      <Actual>
        <Byte>7E</Byte>
        <Byte>3F</Byte>
      </Actual>
      <After>
        <Byte>E8</Byte>
        <Byte>29</Byte>
        <Byte>46</Byte>
        <Byte>FC</Byte>
        <Byte>FF</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>Change of cmp word ptr [rax+08],00</Description>
      <AddressString>FINAL FANTASY IX.dll+1982075</AddressString>
      <Before>
        <Byte>30</Byte>
        <Byte>48</Byte>
        <Byte>8B</Byte>
        <Byte>46</Byte>
        <Byte>28</Byte>
      </Before>
      <Actual>
        <Byte>66</Byte>
        <Byte>83</Byte>
        <Byte>78</Byte>
        <Byte>08</Byte>
        <Byte>00</Byte>
      </Actual>
      <After>
        <Byte>74</Byte>
        <Byte>39</Byte>
        <Byte>49</Byte>
        <Byte>8B</Byte>
        <Byte>46</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>Change of je "FINAL FANTASY IX.dll"+19820B5</Description>
      <AddressString>FINAL FANTASY IX.dll+198207A</AddressString>
      <Before>
        <Byte>66</Byte>
        <Byte>83</Byte>
        <Byte>78</Byte>
        <Byte>08</Byte>
        <Byte>00</Byte>
      </Before>
      <Actual>
        <Byte>74</Byte>
        <Byte>39</Byte>
      </Actual>
      <After>
        <Byte>49</Byte>
        <Byte>8B</Byte>
        <Byte>46</Byte>
        <Byte>18</Byte>
        <Byte>80</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>Change of mov eax,[rcx+rdx*4+10]</Description>
      <AddressString>FINAL FANTASY IX.dll+256DE65</AddressString>
      <Before>
        <Byte>3B</Byte>
        <Byte>51</Byte>
        <Byte>08</Byte>
        <Byte>73</Byte>
        <Byte>5A</Byte>
      </Before>
      <Actual>
        <Byte>8B</Byte>
        <Byte>44</Byte>
        <Byte>91</Byte>
        <Byte>10</Byte>
      </Actual>
      <After>
        <Byte>89</Byte>
        <Byte>44</Byte>
        <Byte>24</Byte>
        <Byte>20</Byte>
        <Byte>48</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>Change of mov edi,[rax+rbx*4+10]</Description>
      <AddressString>FINAL FANTASY IX.dll+256C9BF</AddressString>
      <Before>
        <Byte>83</Byte>
        <Byte>45</Byte>
        <Byte>0A</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
      </Before>
      <Actual>
        <Byte>8B</Byte>
        <Byte>7C</Byte>
        <Byte>98</Byte>
        <Byte>10</Byte>
      </Actual>
      <After>
        <Byte>49</Byte>
        <Byte>8B</Byte>
        <Byte>8C</Byte>
        <Byte>24</Byte>
        <Byte>E0</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>Change of mov [rax+rcx*4+10],r8d</Description>
      <AddressString>FINAL FANTASY IX.dll+25BC506</AddressString>
      <Before>
        <Byte>3B</Byte>
        <Byte>48</Byte>
        <Byte>08</Byte>
        <Byte>73</Byte>
        <Byte>0A</Byte>
      </Before>
      <Actual>
        <Byte>44</Byte>
        <Byte>89</Byte>
        <Byte>44</Byte>
        <Byte>88</Byte>
        <Byte>10</Byte>
      </Actual>
      <After>
        <Byte>48</Byte>
        <Byte>83</Byte>
        <Byte>C4</Byte>
        <Byte>28</Byte>
        <Byte>C3</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>Change of jna "FINAL FANTASY IX.dll"+25E0CF1</Description>
      <AddressString>FINAL FANTASY IX.dll+25E0CB7</AddressString>
      <Before>
        <Byte>50</Byte>
        <Byte>08</Byte>
        <Byte>66</Byte>
        <Byte>39</Byte>
        <Byte>11</Byte>
      </Before>
      <Actual>
        <Byte>76</Byte>
        <Byte>38</Byte>
      </Actual>
      <After>
        <Byte>66</Byte>
        <Byte>89</Byte>
        <Byte>11</Byte>
        <Byte>EB</Byte>
        <Byte>33</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>Change of jmp "FINAL FANTASY IX.dll"+25E0CF1</Description>
      <AddressString>FINAL FANTASY IX.dll+25E0CBC</AddressString>
      <Before>
        <Byte>90</Byte>
        <Byte>90</Byte>
        <Byte>66</Byte>
        <Byte>89</Byte>
        <Byte>11</Byte>
      </Before>
      <Actual>
        <Byte>EB</Byte>
        <Byte>33</Byte>
      </Actual>
      <After>
        <Byte>66</Byte>
        <Byte>85</Byte>
        <Byte>C9</Byte>
        <Byte>75</Byte>
        <Byte>14</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>Change of mov [rdx+0F],al</Description>
      <AddressString>FINAL FANTASY IX.dll+2997096</AddressString>
      <Before>
        <Byte>0F</Byte>
        <Byte>41</Byte>
        <Byte>2A</Byte>
        <Byte>47</Byte>
        <Byte>09</Byte>
      </Before>
      <Actual>
        <Byte>88</Byte>
        <Byte>42</Byte>
        <Byte>0F</Byte>
      </Actual>
      <After>
        <Byte>48</Byte>
        <Byte>8B</Byte>
        <Byte>CB</Byte>
        <Byte>E8</Byte>
        <Byte>3F</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>Change of mov [rax+08],di</Description>
      <AddressString>FINAL FANTASY IX.dll+19810D9</AddressString>
      <Before>
        <Byte>85</Byte>
        <Byte>48</Byte>
        <Byte>02</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
      </Before>
      <Actual>
        <Byte>66</Byte>
        <Byte>89</Byte>
        <Byte>78</Byte>
        <Byte>08</Byte>
      </Actual>
      <After>
        <Byte>48</Byte>
        <Byte>8B</Byte>
        <Byte>4D</Byte>
        <Byte>10</Byte>
        <Byte>E8</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>Change of movss [rbx+04],xmm2</Description>
      <AddressString>FINAL FANTASY IX.dll+2766700</AddressString>
      <Before>
        <Byte>04</Byte>
        <Byte>F3</Byte>
        <Byte>0F</Byte>
        <Byte>5C</Byte>
        <Byte>D1</Byte>
      </Before>
      <Actual>
        <Byte>F3</Byte>
        <Byte>0F</Byte>
        <Byte>11</Byte>
        <Byte>53</Byte>
        <Byte>04</Byte>
      </Actual>
      <After>
        <Byte>F2</Byte>
        <Byte>0F</Byte>
        <Byte>11</Byte>
        <Byte>73</Byte>
        <Byte>10</Byte>
      </After>
    </CodeEntry>
  </CheatCodes>
  <UserdefinedSymbols/>
  <LuaScript>--[========================================================================================================================[
	Process				: FINAL FANTASY IX.exe
	Game Title 			: FINAL FANTASY IX
	Game Version		: 
	Game File Version 	: 
	CE Version			: 7.5
	Table Name			: FINAL FANTASY IX
	Table Version		: 3.0.0
	Script Version		: 0.0.1
	Date				: 01/16/24
	Author				: Chuggz
]========================================================================================================================]--


--DEBUG = true
ReleaseMode = true

ProcessName = 'FINAL FANTASY IX.exe'
TableVersion = '3.0.0'
TableName = 'FINAL FANTASY IX'
MD5Hash = '5b2df411ad5bb5ff7f49c80d8b9d3fbe'
GameTitle = 'FINAL FANTASY IX'
GameVersion = ''
GameFileVersion = ''
if ReleaseMode then
	VersionFileUrl = 'https://docs.google.com/document/d/1gZPckMdY67jP3x0hDv3SMgLvkauQ621CPmc35NxDGdY/export?format=txt'
end
CompactMode = ReleaseMode
dragDropMode = ReleaseMode


---- Table File Package Loader
	function tableFilePackageLoader(name, modPath)
		local tableFile = findTableFile(modPath)
		if tableFile then
			local stream = tableFile.getData()
			if stream then
				local fileStr = readStringLocal(stream.memory, stream.size)
				if fileStr then
					local status, ret = pcall(load, fileStr, modPath)
					if not status then error(ret, 2) end
					return ret(name, modPath)
				end
			end
		end
		error(string.format('Error loading table module: %s : %s', name, modPath), 2)
	end
	function tableFilePackageSearcher(name)
		local err = ''
		local mod_paths = { name..'.lua', name..'.init.lua' }
		local tableFile, modPath
		for i, path in ipairs(mod_paths) do
			tableFile = findTableFile(path)
			if tableFile then
				modPath = path
				break
			else
				err = err..string.format("\n\tno table file '%s'", path)
			end
		end
		if tableFile and modPath then
			return tableFilePackageLoader, modPath
		end
		return err
	end
	if not TABLE_LUA_PACKAGE_SEARCHER_LOADED then
		if ReleaseMode then
			table.insert(package.searchers, 2, tableFilePackageSearcher)
		else
			table.insert(package.searchers, tableFilePackageSearcher)
		end
		TABLE_LUA_PACKAGE_SEARCHER_LOADED = true
	end
	---- Bypass require for better formated outputs
	if not REQUIRE_BYPASS_LOADED then
		local _require = require
		function require(name)
			if REREQUIRE or RerequireList and RerequireList[name] then
				package.loaded[name] = false
			end
			local status, ret = pcall(_require, name)
			if status then
				return ret
			else
				local err = ret:gsub('\n', '\r\n'):gsub('.dllC:\\', ".dll'\r\n\tno file 'C:\\")
				error(err, 2)
			end
		end
		REQUIRE_BYPASS_LOADED = true
	end

require('I2CETLua')

if not MainForm_OnProcessOpened then
	MainForm_OnProcessOpened = MainForm.OnProcessOpened
end
MainForm.OnProcessOpened = function(processid, processhandle, caption)
	if ProcessID ~= processid then
		ProcessID = processid
		--CheatTable.checkMD5Hash(MD5Hash)
	end
	if type(MainForm_OnProcessOpened) == 'function' then
		MainForm_OnProcessOpened(processid, processhandle, caption)
	end
end

if ReleaseMode then
	Updater.checkForTableUpdate(VersionFileUrl, TableVersion, TableName)
end
if CompactMode then
	CheatTable.enableCompactMode()
end
if dragDropMode then
    CheatTable.disableDragDrop()
end
CheatTable.disableHeaderSorting()
CheatTable.addCompactModeMenu()
CheatTable.autoAttach(ProcessName, 300)
</LuaScript>
</CheatTable>
