From 5d47b732987e5b6743158707aba78a07eaa5d7d2 Mon Sep 17 00:00:00 2001 From: Sylar Date: Tue, 6 Jan 2026 06:24:31 +0100 Subject: [PATCH] Started preliminary work for the Visual Debugger --- CMakeLists.txt | 3 +- extra/dss/sdk/bios_api.dss | 2 +- extra/res/Courier Prime.ttf | Bin 0 -> 98156 bytes extra/res/UbuntuMono-R.ttf | Bin 0 -> 205748 bytes other/build.nr | 2 +- src/debugger/Debugger.hpp | 2 +- src/debugger/DebuggerNew.cpp | 561 +++++++++++++++++++++++++++++ src/debugger/DebuggerNew.hpp | 231 ++++++++++++ src/debugger/DisassemblyLoader.hpp | 2 +- src/debugger/debugger_main.cpp | 50 ++- src/tools/Tools.hpp | 5 +- 11 files changed, 840 insertions(+), 18 deletions(-) create mode 100644 extra/res/Courier Prime.ttf create mode 100644 extra/res/UbuntuMono-R.ttf create mode 100644 src/debugger/DebuggerNew.cpp create mode 100644 src/debugger/DebuggerNew.hpp diff --git a/CMakeLists.txt b/CMakeLists.txt index d69921e..46e93ae 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -53,6 +53,7 @@ list(APPEND DEBUGGER_SOURCE_FILES ${CMAKE_CURRENT_LIST_DIR}/src/debugger/debugger_main.cpp ${CMAKE_CURRENT_LIST_DIR}/src/debugger/DisassemblyLoader.cpp ${CMAKE_CURRENT_LIST_DIR}/src/debugger/Debugger.cpp + ${CMAKE_CURRENT_LIST_DIR}/src/debugger/DebuggerNew.cpp ${CMAKE_CURRENT_LIST_DIR}/src/gui/Window.cpp ${CMAKE_CURRENT_LIST_DIR}/src/gui/RawTextRenderer.cpp @@ -186,7 +187,7 @@ target_link_libraries(${RUNTIME_TARGET} SDL2main SDL2 SDL2_image) target_link_libraries(${DEBUGGER_TARGET} SDL2main SDL2 SDL2_image) target_link_libraries(${RUNTIME_TARGET} ostd) -target_link_libraries(${DEBUGGER_TARGET} ostd) +target_link_libraries(${DEBUGGER_TARGET} ostd ogfx) target_link_libraries(${ASSEMBLER_TARGET} ostd) target_link_libraries(${TOOLS_TARGET} ostd) #----------------------------------------------------------------------------------------- diff --git a/extra/dss/sdk/bios_api.dss b/extra/dss/sdk/bios_api.dss index a1df824..49e43ee 100644 --- a/extra/dss/sdk/bios_api.dss +++ b/extra/dss/sdk/bios_api.dss @@ -1,5 +1,5 @@ ## -- -## -- This file is automatically generated by the DragonAssembler (version 0.4.1635) +## -- This file is automatically generated by the DragonAssembler (version 0.4.1637) ## -- Please do not modify this file in any way. ## -- diff --git a/extra/res/Courier Prime.ttf b/extra/res/Courier Prime.ttf new file mode 100644 index 0000000000000000000000000000000000000000..db4e6c14ca612e8784d08649f838fb61c140f7ad GIT binary patch literal 98156 zcmeEv34B!5+4niKWU@{&$t06)l36m7eP1T~o(;K{ z;8^?n?Tla2jQ(2IU9@!F!PPzk{(dl?A7b?Gy!eaHtMAKP5Lx{h3!%%5{nYyG-Qt*f zJi==`dop~tL637S)6iA?!|(JrjBI7hxWsGoR)p^sEy;WGflKKMzm#oZL2LulDfdIs zYo_@=TH;Kr`yJoI(60VAeKDSO$)omec9kZYp3{ZM2JdDpAFtD{Hs3X~tAW)s_O(X# z!JyYpvN5)o?rZPR9mWBtx|iu(9;ps^5>N!#t9zNh3&;cv;`}MVL#VG;j!)zG1HktH z9|49H!0*Jfr*OpY+0Ova;dgjm{B|qO(T)Hwj`X)e0n-5+l_S*&7AeOc;Yfd1y`F-4 zE1*}orXKIY`4;6K+Vp*nI<;R7co2Vo3XbSAUxwqKaQ}~}2cy0N-~wz@;AR}@edv6e zQXj(cas1}2a%~fiNdS6=-uX$uWB~r2_`B4L22G1_0df1%Ro5+X1*Q zevk2DgcBMYj6aPBjfH53`h$M63jj1e1ppf$599ZD2`pB5=2tl4@AG>A)ED%_NBy}N z&;%g5xEVlrB)kwFXpHFHs4vuS`df6Lo}>Hpochdpnd=}2u7eX0GV_8tO!06?F)5kP!Kcr~N`5{~p+6^NDs zLGAy!j*IYYAf(`&o}>2}55VW>SOm63{Zv7He>w&}L--B^;zt$K-;O&HzXXE772)ea z1!$~PAbvR)sN)@Y9RD1~aFm}_{L*mMGDPDm;mLAP`NeKsY}K z1iq_~6~MKi(I;>u$N*4Zi3ia)4d_90$ba-!7?)`Epoe(f%U+wTd%Hsp_&yFfz`^6b zL`geB7N9NSf1VC8&l#tGES!B2>|?^p_mW{Fy<)2v*%RyPpa#5DB zJl}_`l;xu=V+Fnsn1>ajEN4Y1D_F7beO4*TDpunA6RT#WC~H_5%39{}y~pZUIm&ug z;d_@guu7DTDF4WsSQW} zdz(#T%_uuq3(8K`>iZp=&L*MkVv~Juv2IcJur}Xs*$g%XApAFJl2J>pLP4ru=%V9xs9#!{RGzOg($CN7ooh0t@r(yT`kJ(Y=iF;eL zZ0*$wP6lsB@iz8|ui*ySkqux%*6#jfzZ zz;0$&qTGw}2kaJh70O%L)xPK1KDHg@es&GY1MFJg_t`=u+q*{!~l>>;)f<-=^h?*w~9l;36tP=Ayi^bN7c*lj3}vD>=MV_B?wS9|r|df@f5yJ+dzk&49Y=YZJ>`3d{elgl{3Sc#JIY>RCsF>2 z4WoP&vsZj~vj1eiLiq`M)prN`8+#4qr|fl< zpP{^+ea_xM`FD24cN_bHy@~Qm_G{lk_7(dL%CFgPQJ!UQ`3|rVQF__$eEXS?y^WH5 z4*~jJiYJjQd zh2{u{#xO!tL_tGDLo=A65#pc;;-LW&A^DRb@lzn_ZIJK|NcJ>HbT=e<1|)bEBzF!Z zb{-^k0VH%0By$NQav3CXIV5l;tAf<6fwZlIlx=`?ZGu#7fi#^2DcT0+q5tl;}u7Ctw#a2V=G042N zkaZV|k%QNZf9oORF2->qB-{Ma>&2SEPJmi?PMql5IB8YQ>mVO-idv&?-l(9QFf) zE@aSw44N+BpZ5b?K|EpXzqfb4J@@VQx9fhdef#;}o&8f0ewKSR!J24|Srey8)TE643v{N58h1_Qk7Hvf z@B@r4QO$*r{);f)%P}rnF*3`5p9T1vhau%xfS%q5p6&&$Tn zt_J1)614jQu>K1L>vw{Ze=acp4k-FvP~d5S|EHi;?go9H0gVrXzMlkzZv>6MPBIcS z{syR=X#6fv`L99e&w$3i1B$x@bp8`T>F+@oonZgLv)D&Gll_Hfv%m5j_MbeDeZuqE z$2^z)jTf*_c_I6Pm$J`z5&JtLGGFpC_Bk(RU-NSI75A_aUdhh#3g+Y0%*(5|j@NSy zuZ1aE!?nB)*68(o8DGxzynzStMsDCuJcPIKVBX9_c`G#Pejdgr@d)0=!$Fr(pdlll z!XtS*@e4QcX*`B^@@U?{&3rnK*&*KAyy9^He^U zC-YvO!sl=YpU+)^l_;nW~!%oPAi=Z$5hsXYh$Nq=M{`c}21R~36A7a|+y^nK#W8V<>T{Fa*ttX&O zwF~CwB5s>wv$d>fKE?-dqRGL9EIVr299!!#t*f=W*V$*=W!u%ZWS6bgHn?!fF`Y{s zabxMOzI@v;*3-KJ<&0kYvHHHG(dyE^zDl&CqjvBUJieI$^Ug@&|eGbaP{b1Qj zPw%n%q+_ga*Dh+ar`KsecEzq;NxSeK%J~p`ZrlaV#$TvcE?^|k21cS~h+i=sjp5+5 zC(#9`-DyWZ`IFK)5@bKa0v#SQMqO=q%8O z!P(EkHcW@bXMr_HmM2{?!0rpY0%L{4NE`bz4aDfQF%4;PKK2>i_=Zlx3e_`1Ho7Or z?`MqL2>{K7vibhgg!Pu*Ay$>2bOMHWRBhid(53@sb=i33Tf{35v7V?CF#EKh zo`lJ7Vm+qliXoPK`UG<_-KTU{_Ba#0ufmhv;%Yzcd&F-V(Q>!=O)IWV!(BAJA9%oM zQe_z`1%=SqmK1HQ*{CtZnuDAUcMZ?u>1ws4thgx7f=5ian5Qi*snryhii=kIp<1OM zrsD}yEiWx`Q%!5+v1aj0%>$)_d9K>rgu(^8=Ga{>d;Rh(dsdd+o)s4#Y+ct^wlvpK zo@pstaOG6GTMD)jcO6FCvX)h=^3szUT-Wz6&vwUG+BL_5Vob(#Pg_Cb>W*B^6V8+r z=hG3Mta7S+>`XDow$F;>7K1rD!d=pw)3m%b?H;=IsIl0VOO78O+l@d z5Jw~$3K9(kiH3qiLqVdUAkk2eXedZD6eJo75)D;JG!!Hns*-3ZNK`q=Ld%r^h1AR- zH8V)f3{o?L)XX3?Gf2%0QZs|p%pf(hN@`}1n)sy_jGCfyP6oP_fo^4>TN&t92D+7j zZe^fb8R%99x|N}JD+AriP`j0ZZYd{Oc+E-xxP)NM1!}3W(6@GfIrFmRj$wzSLm6swohRbCtYx|P-2q= zNVs-^fn3xgY22wZxZDrj05_<7aPDl4e%ry;O#cR;%|Tl&;YNa0a1nq*@giX z3jlvz4+-7?zgwJ8SKH+~->JU*LGkhhg)zijMJXEMMW-WA!^fYSQ*gglQ(BUT`$i2P zcOFw_i8Jt^bhoD{yM1v*#p3pC^{8o9YwFQkYe_FjNhwLUs7Fn+T2qgIE66V_IJ=KZ z?Sp~Mp^=dr$6e6;F|aW-G2$6_K^u}=RFr%6c`Ct98bsVa)U5%pO<}Y6p&>RKax5x; z7=aBv0vZCZ6oDbU&ITHw8c2X0fJCHAQMi;vmx$}KK;Bs(?<|ma7RWmb8!iyM3k2^1!Mi~4E|uV2Ab9#E zje?fNN~M9O>p=QLto?LBq07jLCP@K!@*w1iRO2jhRz9jTh$Knm^D<8@oYJB==#Xsq zl?Dr*6m^F?-BncP!L?YBuGUg}U~bptvvZS+C+FmN@@HQ*ZO)yIu_XMR{T11bx$)T< z+?8R|$6M}nSgnqJQ+DE-8C1I{E+fjjscw0;_v@DG#Dd1FCQmP&ySb@!UT14c@#URO z8)g+%+n<>pkAPCOSUF?M|s)Q?P}OQKtT?QtmEX*_7T~m<&?G zT+X|in>2p{O@?DcU@C$ng`#GJ8KfQ5_CaG78KB*uDbuy?V$D!~kVorGv8HJ~LHW89 zMc&%PVnJB3AgovrRxAiB7K9ZG!ioi9 z#e%S6Rl=gcU#v=4u^=ouL09rLKuL5h_mq*YH5j4DQ#6*iAcK)>wKI zMq^Oal$$q9nzZ5ODN#X2W2Sd~(LHbQ@I!~V@yxwN5%CsFVOZhrq4#$0e)sq;R4tZx z+5bWG|FGJB;>gdlXtz+=UvC&-M#z0q20325k>c& z@qTjXkoVI!?h*ZGPw}gDvA`!;&I&H$377GNOCe5>BSL0SkUJma2O|do6c_c0Tl88t znLh@t3!{rM)uYf3x*N)_urG55UnkhM{KIL?2aCvTSqG>aa&nhU$^1i>>l$e`a9$b1lrC#>+A+}5B&}l#` z#nL`yr={4#8JIB&A_?yhpHGxXd>Ib|FiJeaKgAoEgk2VEvI}-|+D(ErOHFo%o9r}= zgJ_;t5C?f*qPq7bs%v&lyv8f&KJmkP@0%JgcSF&J;cth5AGG-eg?cFsJTYa&=m!32 znA2>Gk2YurL$aSwFd0W;%^{}vDE@~GSEBN68jTKr3X&`Wu`{#`3tg8@%tW%msq|6% z4)tgxNcM~Rp!VZw--p^r#Jgfx9nhE$%Wh$I|Gk|ZTdLRh}b zQ6Wsb#;et*lk#eu&YHX=^|&|i1Q)5dKk&Y;3(6J&kg9h^}AL^n&qp&&ol|w88jgw8E z0rWC>AdJpY5B&}5paZk2n#_udz2^vL%Fknf6WT8?C5DH`kDw_e<0S*F=0_e$8fHQy(0AB(WmQDdn(=SyXn_$8P zA|!zn78z6tFsKq>P$j^iN`OI?0D~$422}zKsstER2{5P<XcNEdF)mkD@YP{X_gUj8Gjifz?O#E!rQAA8;UN(<2@7r? z>9IZQUZoWQP0AXO2L2_Re~^rAdD(O7(oz55QGr~VFW=K(Vh_mVFW=K zK@dg|gi$33BdG{MVbox(YIeoS5k3gSkrhh(m?`i;wLDeQN4SyC5~;0y1^>rbm@j=g+ySr)=TexrN?`Z>Ec{kr)SE3`2f?0-QDQtRYqo ziBbe`1Ip3waF85DLr!2?k!o(#Y?2Hk@rWSBTpIJ-fHAM33pG;2hNv7J0*(#=M~8r; zL%`7?;OG!=bO<;)1RNa#j>hCB5rhF13qaxM5OB0OAr~o93~nU4VG)Cyi<(u%sTDZ2 zsyMX*r&i$93Y=PjQ_}KQ;M5A7T7gq5aB5X?Y6VW|mqUyiq$mowW)Ky@HFtn!dH+d> z#zn9YSIh03Edr^Am>GF&7^gA6IKZlweF+xXDfxPrL)+oo^Z zw*BHZ;wsPji!WZYp^K0hVQjgxfA;lD%6eM+mU~v*wy0?7!a0Mce5W(aR8YBT@ro71 zas%^bE=+GCOs~aEJ+7$-5|wvBuywTMCy-l zNpu-6amiI&h7sz*0&r=g3pR;MDONZ{heb3(LWTrMJO$(Kgds(A&(SK;J!DI%(A^+& zjKHXL$>y;Pa2?cF4D3#ZFr%vOgnl}0T!U>Hm30-`u%b(}|* z7-HG@>oK5zgep;UW8hCBC=Z41+DhV9PMrG7Pp1gDt~g%P@(kAXMT2iY>!1;&g(>(XjnDWDzQ) z5DHQdAvFrvhJqAAK?H2n8vGf)td$cJP} zR#C5D+8?5F6YAZn!Kv6cdPqY(q@f>Aaq@aOP)Xb_hG(#FHk-|Y#HUV}54gih-5OIbyG(#GiAq~xthKfZP zj7mI!oc;tfoGeIbd`yWOwT3{tftMz{e;qlTaY1}TTI2l6ivGqlXG4Egd4H2zQ?~1; zH+Dyq?w{3j<6u?Qs{Q??OXo~YcBk7XUwG*B)p4mhotdvI?W<3-RnI6cnOSX5t?1NT zYiPUl$g-BUvc=cW?Ao=YJif54u;KnS(+}^zW@%jzPs+@7K!?5Sdrzka-zT!=!{9GH zdM#{>Z^4%k%z6MyMX5kw{4fYp*#U8t0b6X{H}s?0YUD<MO<%@Pq@7%elJTbT0nbYn`tzC0#FNx#Svi2Njb#B7uw8ps}&)mi|^=P+ObmrxC zR*W9CYg;z=6&LqyZpmt|D~d5!OzAD|xMpEl*}`i&ihHM2m}83S+PzWvofS4)MQ46~ zXL)LBc_)8Ay|E}cxu`KcySX4Sv7i~`4!h(z-v>G^=$+*MLBIUZgNVjdi`3Q(B3g)Y zq7nuX%^;!~L^K1HP^uOKl`v2V1C=mPiJ}BTP)Ps~8c3noA)@V2C_?t1pNW`pvR_!i zikSDyeZR^d2F+<9t7-C*3}{T`%CM{+gdqew5r!Uwp$B2;K^S@vh8~2W2Vv+z7&=#()0rS6_1Qy$S5!3iNd7SNgq<%8z}NU^PAiwKZeNfGL9Ab?bb0O zUt2s*JB(%H&kpw|GT3#l&yJ`zc0U_TU8kTN>6s)&d1 z(b#%m0Afr;NXmsV&cMVVk?EfXjnv?gdK@1_(j1%+RRZ-=d`%lE-p|Qu$GqPPyr|G& z7RW%Fp%w(F$U(dpSp$j#L+%pdPviO+GcHIsAx4MoR;-S3=;GlJ zGfV(ez!cNP@L)Y$#z?vLQ=8Fb%1J%@cLbH=wIQiFCX>-NGQjnbxlVgzB;OjInwXdx z&bLNJ+MT(P-e-u5*+aZi=g@W|`jG^JrQ`q(N~K@|d9UY+6@EkH5N@;@Mbvhy{)2a& zTB8;p!h3Ye_Xxookei41fttq*nh2F>H;oL)H_?XBo1Fc-d=t$i-YDP1d$oKM@73~6 z#Cv$5<9`g9mkUq3h-_TAQGig)Ymrr_(C!|*Bk3y(Yum3uw8V1<4p`xg@DT zQu50(zef+5gkPPcjJTuAWnnIsKApp&F;n=G268qp78$yDVYx{F+tyWThRCa}`;Wi(PSXuHs~C zktyKSDy+(*v$*`Egf2#pZU7WtOz zZq}6{*L4ZILt1m>Adp2zcqf#?il;X|fC{}aIpg)X1Wy9BnW9Gc89)t+U^;$9)S?GC zDaL&WBqQl$h((@0fjn*veoMHiLJbcbM1>xhj!P}#CXrOHuxDxRdH~nPhcw;kMy+C1 z=-{MVJY_{Rcccx93!Gh+>Y&VnNoAT%q93@-$`gov7&S%n4*zcZhNrKYoY^*5*Er8& z$tx;%xatd%;xZ~*yK@U_Vp8>K(a{OIX{L-^cXei*XW7kj2ajFZR=nt2{gbyBr$q&a zMV0RB+4RizR(`-`O>Ztv$#f>wl{)z~d(WO&(eET(7iKWTM|ywRFg1PBqUuF=UQjjrz|S`g+`gtNHY%(vDb--Hw%_ohfx;ZmtQCd% zMI|#bZ*VJQ=f7m518BqUJp7Ri_BQP#$upDCq)97%PjBzW#F`bk?g)#+(6omMtn%_~72!Zq`&N)P3 z6tqjG8bz|`k0OAEKPn9Zo4`f}{su(=3V;zm3MfZoG|(rfuBy15qJo%pi&0{QCLXdy zpy0DPJLl%N)~&p-c+pMsMo!VSE&R~dtH1Vs^7D=B*Kho}E{VoHZ{{VFJ2s>__O0vO z+M7>TRxbRRce%zs&^vd5_eSWfjfkgAhHfe4mkhBoyfAr3W$0ZndKpaTs9P{bCNV}S zbQN!xfiq~5WvFZfTnpF-cmQx5@FL(fz=|j^XTV+SngERQ$Q93NlqEL zk5wjG$Jo&joD?9@xfi^-e&e&(wzXgP%tZ_L6p{`S(6VxJ*Up7y#r@ZGEqQXXxgah! zcuivi%@xtyQA1@VX&vuzDhuZ{XEbd2_UhH&-rP`89;I_Rv26j#Gvdt+I*Ny+v!BwO zA=wy`J0)EcPtx3>oK(Vl9K>J|(G&Z`0gHqU8<7Xi&;0vVhe{F?cu(7B;uG3R*M;xc1k*wpUGr|Gn<=y>jZbbzVZ28Q>X5Fexo;&&e!qjeS4Ob zmoMAXcT)0I_rc%n-u;_{UBppU>mOdX?%@qpXR)Y=i}9O^@vGutFh;;XG_6ZfN-NdT zO(|=7iitmprONOR2GzzG^iuG| zplvgypOU>h7HHOOreg3D2% zcS*;%SK=>KjTw7?c8}epWPK{MUc;RxW!_3$QPK0+GQxp&rNc@@KJvj=D!qTD5tCU~ z$JwjsiDeQsDQ+(j_(|^#a|O9SPvu zm^)E&sm?XpV`fue4#bF=6Yb84BmF)N@Q9bn?W4o|1&!zn-pymi`7%}AgBKP-x9ov# zY2>qpSQEyUtfNe_j&2h(xY8V==n8J*EfPeHL`%M?QEUxi4no2{ROtQ5erm)e4Ebmt z)r6T_7Y(^9Kv^i-LyhZEWEZ~|O%d@LF>VwREm5N@CHQM4(%cwCWfNd0-~iwVUA=pOnYT3Z+f?*=KPxmB6sWqTx~x#J*IQKP zPW7a!x+N*)9nvdOE?x#+YhtfST5y0C2c zjE!3b*L=~w@e<83KcC!(_vvAuQ1Dmvi;_`8z6ksxdKa?6XtG@dU{>G;r5KoSqzO0D z@h7m}+5q>%jz=epYvckp;eE(T>l}?}`qLKw5q1L&3xWT38Y)aPjAb7hs>su1ITtg7 z_=Ci?(EwTtW5XT$=pAV*5O+1>UJIZb&~q*x^1DZpg(x7HqD5q3G#3~s$kSr}5VOq;W4O%S8rOZiG4#1dF zDv+Z{t&~!{4&5cwR((?=y_hk8BPW>qik26zE(p;>Kf&^fz_B<9rbrP4DE@R9{vuh} z(lH?wj}R&7j*M$JXfoaZ@E)?EWQVg+ISCVFw4psXp@s_ZvqAtZ;i~hKD`?S@#6{Ms zko+;@qT4J&ws>P3lVbdZvLZQRQdIZkIz#7|?_`mdHr z%-BZ`X%^av#{BY7TRie2VMt5VVDw`!>L3A(I>n|aCWWXh&eFyXAfKQuh2fe$fv0~tjmF~b%qafm z#Z=>xpVQK<8IdDjUMB`h1f`nfKqa3&hGireCoxu`iFRwE_R!fMsaMG7?ZxI6cZc>B+WK0?~2ERGCNt8@Hk~~&4$?!ayMH4i&Na2ZW z9Em^R9*}`CDzs&Q0tWp!Ng|U3aa|SN&ZT#*E-znw=h8oaOoTu329@{n)i>X?D3Xmz^k?{ZMmnUI8BStDLp$rAn zl;hWeKa)>?MvDwf>M7z<<1;XnC9$Kc_T1@8x)cmdbxjUvg%<1~B~L7N`CKJ^_4x4A zEi>~186`3~)`3b*aAqkVkx>$>nvgUVI0VcJqfE@r-tSCiy((!KMHN2aw`Ur z_^=s6ND*SPY|CNUN;|erE}?G6F0No|>B2$a6oYaX^l2vaX_rPn#M(ghc0`e3 z?ZN97Sr+@TIG?cEh9MFQPw38hS)F_UZU(hX?(2EXLOY4As_d*9cvUH7Le9>FRQA9L z3ZW%Bh?Y7eEosreP&HgimNJL{mxKVK;7}xjLy-s$MIty9iQrHq6mukkLy-s$MIty9 ziQteTa}20h07`Hu62T!lkuk&yRiafuqE*l{lrK~PiB(h|O_}Z`>byG^l@hDo4n7wZiCr494ka7NB}_T#D8qMC zh*kJ)a`pe{w1-^!Dcw1-)E~Z{*hhd|ZC)ayQrVH2Pi${o+~{a3&s%rN#$wtBpmO<5 zGw0r0As=uX3m?5;-6c7$j8z*iEzj+!uzObBwS39Lb=hPc^BiYN)`rVcN~h#BcErad z#3x&#@@l(FJGRcwYpJNAN8ZDV{{H^K8QGo~bG#)fF1n)8X|cS2|;pPtB<13;k}IRFtD0E#)}5mr$-o$Lx<5X+UOBBE@WyM20Xf?Zbqf;sw)8wu&VS z;lT1uSPINg7>_0T!%h~2uHY}+i4zic6yl{25ltwkP8{P9zdlqVKa?&48PFz1b|aNH z@FHHiM4Wd}In8@8q9i-JINW=Oe_YRAuic=I=h-NtW$nipOW)@h%hz;R??GcpYnLhj zDXQUjUInH!oH($9kfnJm3G8)7vMr{l^rpk(QH9ny&6=NwPUNbNUu8UEmZFb#8X0O1A(|Akie8+0K(ALwl40V@B%KhlVN8X7+Da(+-9#*trm?@;SR?+;=e zoftu$AhIWuqMFz)mREUXaawkSmH`TDbmTnHBA{M1gh!2l0P!V>USfFCy+8dZcCkp{dgScu*=VE&9| z_0?0&N8S?w?PyBD%cXecjnbltS6Rq$Epbub_E2}Oo9Is8` z1C`1wt_uk5|(M8dy$!Sa^7t?lmgCmsoOhEd)e2!MYG_ zgMI*VM$Hp<gqFzmO3K3fq}!n&W`5oKU$H zd`-MX@{T-vn&GcO6CyRP2B~p1NR6w36s$pNTn$p=YLFUNgVeYhq{h`CH4bZ?DR2~o zN*q8qaV}I!#R*1?OcOzod8Eqnn1Ats!WaHPyni*qNpw1r(=r z*LwUlk>XGfFSZ_DY(2c#dPu^0c(L{HV(a0>*29afhZkEf2f%=e1)zAb_3&cpL`_-E z<_LGC%Zy=vasyI^MF5QUc+pa*)MPH!(o~?>G>D>Qx=F+t^{M5#c0=bgYuhiMSKP36 zZ+F*$N&Odg9j>z!#KnbJ(&sN-QT*iNjc>Hv(NQ+H(Y18$swbw1MAk@KfxV?Gy?u4- zjE!xM#Dtj(=Vs@cLQ_)6a@1{UgcaC#}HrRzZCJwcLK$L`0S#=Gus~ zWDUfEcaqsilsb_IB9k(#TqU=1kXyNYk3m#60d@io0FD4a@gTQykXt#(tsLZ5u0|rt zL2mTR(NsP$35@Ll)qM}hK@c-=LY!3b@sZUZi%hbo9oFhQm-OGYzOixrUHwb$ueCZ3 z5tVfB%j>?dv3ccWw|nx+=Ee)V^Hdq?Eu7Zdxb-_1Uih7@jeT9yr9kDa(=VHyThw>y zl(x(IigIV;15yx6`1Zhux>U%PQog~TPg^jm?0OD8hhtD;3??{8_>qmI*lntF(c|8|3H(%6~m({s}0arHzS54qs zC(GiYnBc?MWP?X38CMn3L~fMWEEy~vSRr9YneZf8)xlJl$ky_|TEp#Me4{~!8Ep#My@|F8PYM~?PL^=&= zs(ej@d`+WgDAJn-`I-j#ng;or2KkzXo~A**ra``@LB6IzzG8Yq&RwMehxAK&KPkjv z6H>TV$vekRaO%QglDHPwpd1R=p2vAX@c!$UKGR~$jxa{q(-*9|sPck`Hq=bI{IL~l zAG)|c2&VX|t%njci(_x$NB8f~%ZN^~*@{guHcLd))+aAq^W?UcmMuq?IFk9Mt!pp5 zl;kMZ=;;RZF1+K1cHXqcMWf>Ig<-1fwy6(HOyKj9@fIFd8EmjS-B-2u5QBkvJwt zFd8FBzm&munfgX6aj1V}BIZ+|R<&Q`N=GtRf~;8RK_MAZGKQP;v*RGKJ1w6d8irsh4(NHK!oi5|-`Gj19FUUbOrIqW+N= zBoDY#G$IB-GRnJ9w-`np)E>m;QM*iT*Td^xsdFG8aPjKtOXov z0moXvu@-Qw1srPu$6CO#7I3Tu9BWZI)`F^qXo+@gwSb!Ggxc$tap-qAETlh__eZhXkKtH)b1Bd@d^Xlq*BU^})KU6)*9PkFyO;G4`B(sM){C4xA@(H!MZgUfM^a+JuA@y{Imb1OD5 z3q#P;xiiMXp@3z|BCVgKxPlD4q@g?H&Sa@_Aq(gcd%Til&4OH@-O95d7qTE1vOu_5 zkPBIm3t5m0S&$1zGL~{73vz*e3E_+P{Ksiz@L&{cc6{cCNhOK#H{PE|Z2zRg+VIel zmJ6n3ifxZ%*l(UWqb9R{LvM+AL|*G2wP}qDm*>sc-0n?QMFM{{ds1<7`I24T-an|< zfCI<~lErQM9+-%k?0Sl1sOy0!%0$u_KFuB_%0ylZaXH;`D5{ZmC0Eep=Vc|a3~G^9 z80jG61834@UX08elhZN6$%IIyxkkCp4vZ2I&>kx}i|sLD(y@jkECkuADIO8l0xStG zf_i5~!VIt2=dP%56KKuyrANd(H`R5)WXxSfg&c<=??UYkj6)jYoUaU%8H$iQ_1cA( z)>620KNLNAc4S49SqGvJl&6F|{BN&p!Uw@MjKIAPR)m-tKY%T0lsA+Og`lDHD0w7< zDQO9Z@K=>TM){2xPT@k!IV{YhKCsGt%SdF34i;vN~#db}m_pgFv2FH_(%0gd1GRh_# zUua~y_n=2-@ijwi3M5(~fZX^gz+e?f;Us9Nl~oCeMxvhbVCjPhh0Kj>f`j~fGAVP# zdm%LhhHizH@Q2Zr)B-;>De+(bg>KS|-2sX+FiBrfq>``Tj~+GBPa4TgrJlw!tx!+F zN=@4Hph*ZvV(s%7J;FR7*hkJ{kx4BhX|#H*>NFNv0NMak0Hsmb@CL_r4C_=Jr()Mw zWrI}9ShlwB|Hko`+~^jn~(I(F(G=~1aM$uk_QAxWFcbv06#j$;!)l_&v2|Aqg8#-x2- z$VDBmG0Bq40&f0^qO&S^Q<39G#6MDWpNQZM6kX%7<^PJJQ|0-l<*WWxJ+}!y;0$34 z|NpjUt{=tzATgO!ib?zbi`DuhmR{bv^OGHwhp+w}wT?YKVjJDfx3 za2CJ*^Ecv=i#=y&1CK@Qa@zUXfcPO<*Oc#}6FFpR=EpzOXiBWjKa7F-1pX}Da4@Dx zD6k}8odO4esT`wz1&t7>9#c!SmklOI$)3>pgEdNwhOga5Bk?kf;RUNVRCF|3qm0IE zYmq0ne|CF?jd#)Ak;|yOQzh^pH?5wUnPDn&rKOmX>{UHWE~Jl*) z-I_$QCx%7tsP-C64{yS$7NZ;KaytAEYm8j)EmK9;p`_RJQ11uN2MjEf!pU{+P}=$Epx zD;>t>I(!_<7!eU;7T?`!x}Y<=8ec>px}OZX--PeIdDyKq*-mq4lqg4%oAfPBu+y4e zl}aW=+lz<>iUK^J|H52`%#EZ8D2J_A%?pzV6pVO0Y(HoI?2EcQDv0%iy^KqsyU)WiyU8g{D(QBw?oc| z5m6Iw)nri&>ptaO&XF~WyEh9{%%47rOLsuhC>}qy?h?yTwdx$(LBv!2L4XM(u4IMz zNBqB;V>;SxRBnNAmI@g-mK&Ex*n^iwyX>(V_B8q(~J zG{Xb8EEVXBrZWDAq3Q1I!tjH)hZiFcHRSsNNIc0;Q~IelQ`4&I(Gg3UHPykN@ODsi zNgx$#Vc}O_3!FA_4Hz8qh1OydqiZOBcMCiMG5mYPrbeSl`+Hz_NuwEg_w?ZH2yW6m zo=}0LT@|$L7h@oeGR*f1Awts~N{o~?F;PXA5(4z&E0IK3Vu0wHfI$CV7UYqTh@$u) zx{R8dP%St2kx8l!2rYUy3T2ZZD+16mDoRzNjbc0#GE*&{fRHNfDH1Y15p~=u=HjP# zi}y{DX2V71@YG+u>JcatS(6Rk*Lg!RoqLZ^Iq>mcJH?rpr`m~+K6_Mjz4xA4^S>liLu@!i6HJy+MptzSJObxdYZjEd>PT6UK z97RN|<;2*(|D6tL>mxZznpBxEsWMfQDibDECQPbKm{gfCsWQPwnJ}p`VNzwnq{@Uz zm8qIknJ}s7moVj1@Hugzl*I%qsci}iihU1@%G5|U*-=IfA&I}=HYL8etDK1RvEf0n z@P6&!@MCmd-c=kwh5sSvrg^V4EvOb7>>Yph)irC0KG&@|`pi>QNvdAZ^x(W3L90k7 zUZ{CoUj|VE`#lI&J7{+_&sDKr{WH{|#Qvc)mx*4>Sqo(oI8Bn8fTH`1aR24EsYGkY ziL3?gM}YfWo-hov6uU+$C<+xeBIE*4q!qZ20>?CLk_=iLvqot^aZUaG zQkLil8h~8{2_c=^!iW}ZD(FG;$F?a;gl{_@|Lc|z_HUf`;I(3#ou{5Tx<>5( zyLQd1&mJe-ufO({c{d5X;H&mO(-mvJhX8_A>^!U$<0h9yrD6kB`7sX!SmXj;8NNQp z0^h%w(v3!Ls^3&uwtVT5qO2J?@wb7d)_IK>1 z`B<8K~)k=r9p2jQvuPN8rA;ta)E$Aw{pyEWKkpL&K+34OL0{Rsu-p2vBHli)2z{~Fxq=czw;k zuvueb&&kCl(~1*QYy0b(t|*Dt2M60?(w7$(l}>Fj7{d*wh{bpP>WY75FUOe5+Ti&- zF|XE{)moe!A0M1yHYWy0#yD+Rsd`O_iPmW&R}r*9xr+bS(1u^}`U5%tpVNkE-mNRj z$E6vbGb3@*$tB-J8&MJ6mmi)#J_%9m#ijTmDdsw7QU{11VcZHO8d$rycX4 z_%Tz+7m|MeKFRR!kJhAjA>!3<(H*Z?1INDy-qEnnHP>m~7$4d*CU>m&P0?lYEGS>| z|IP0!$}eKmmvH39;1nHgpdi=(iEkl(o-=h>W#zJ|IqGqTCA~ByrIfxZEsxrJ0&mk} zfp_r~@UzW#wJsHQQ3aNzzd4NfnjVUn^b4leVI@!vD+hr}dPlN|ME=G>JVbsTPefzUlK`Cik7f`8`mEyHXs!~Lipdg|Hh@cY%0iz$_svsm( z&}vZ%vU6CEL>v@y3|7O&!7xXIVU7mF91Vs!8VqwZ80Kg&%+X+&qrosogH>}h7=#uq z|EL?4GI2uFu4Mjc!Bg~Zn1mH3Nd^8)qq-=sQBWaWYE$FOZRlAWHAdNIZLqA{U|F}p zvTlQA-G*0bgJs&6tFxQ)6U-@TkzDSD_F?39V^~;tSiCLF zl$2B)p63XUr2S@MEQv)?m5b-iD<Rrydx<(g0@k0!@ z2J04i-`|fx2(m)hZYkbT1V7w7kVO_v!dlHsqEEDjN$fL0F25h7F?S zoNnA22++8u>Q(89DeY{}v?54$q1)h?= zy0jGc4@t^hIeN!YQBn|JSXSCg_s-D0TlpkQzBQ{d<#=>@T%4>ymGb$#Q+t7S0c;2Q z{xy9KRZp2r<36>+=VwkH@OTC$XR1fd?7%Zzg^aoy`P==VX9t7OLY4w#9nmZH6v60{ z_@XRkWZ#k-M$_9u+bFRIkt854DEmr^3(_|t#MmJ!9ArHyR+1tDB&++4C#U8<8qe7` z4_4N!JvfhlMU34{m+to7OXHxOp)Kg$+R?SGFOL}UE3u`BelxnuSqA2Nl91_9sF1CqecnLG~v>_9sF1 zCqecnNxm?kVgU%gaHCQtPNX%JuZr}1i1d8Pb%UsE0_+4F02~28UPGkkL!{?Jq~}AV zV;dA1EXjvRr(e?A588`TZoyfPV?8Lz{~4Rn4@#&3uTqg-MaD3)J88!#lHag`MRFWj z$e$Gr?3z9Qh6M!+I#*p*wQAqoVw=^u^`^9@1!4we$U+_KeT8~_@z2G$DJ3M5pSbUgmE=pM1cL4Fy9QZRz>-6kiklL0x$;A6nzlgVi_5B}K|`^r_vDW~lCDjcUw*?#;WltNWkVf%8+hJ-wPe#3lR zZi)1ZS1XDO%jtVIDlKQjXzkIshp}{7e#J(58)QZfLjp)j7W8WZ{hC0(CeW`5^lJkB znn1rM(60&fYXbdZ$(XcVO;E8WA|_I?CJ0G!LTpfvX6n&QJ({UUGxcbu9?jIFnR+x+ zk7kqw)6f&&M1H$Ua6t>Wpaope z0xoC)7qoy2S|GSvAh=r~xLY8&TVxvsR4f2RaJK+$bRt*hbgDhbjyg-+T0*a17bm)tZlVU+S|!vDLJmlD>pO zjx_C(R`r_(13L|4`)$C-0Hh&BK#Eo&a8w1Wr3xN!6{xccA5*DfK@?FMK!yDBY6>_F zz(zp8iQ1?}8`Wq7Ic~CzYP3;}HmcD^HQJ~~8`WrocAKWWOx(3X(7Y_s6FNno zBN*LlL0LcGHx-mL6aNKe4K*&14;Rj2AkQe9U#(e`8aeg!c{Q4KrLP1~8X2TlKJB%E zqxhJ%m>ZXK^oOU%#%6@gH)#@`&Uj6V#^#JqHQackAvNA< z!)ZLkn&#`Xq?-BVR9>0nbSCKvo{Pu7=e#3ijq&d}Q^JkjS9!KE9DB7ii))u9I2?(I z4o8A_yF7<&#&=`CjTe;tHfk}E26{!bTaOtF?6{z9iLh7_qawpJ#!zo+jMZQWG3k2@ zL7~>hZ6(KI|lm#2MJPu~_#XB*EIE2DWY}Deu z;6y4j@Y!6eI@us1Of=LH1yO*9pSr`lUEuurt)?unZ*RB_-3AE15u+HW8+OQ?E@QcBg%b-%oI%i-w zxvG=G3~G`zE!R~yIU?6DPgw2PH3G~*DGRijGUZv(1Z5tM4LIgwSFJ*&wUe+CWxF5) z10EI@dtiE}xZtl8Z#d;Ji zziu%hQOl)M>OK1$oj%8-$g@H|MWe&|`^h5Z!uuxODdImg-=}WKrhEhGW`Wzq0pC92 zMSr1d1oSz+k#}If^!nb%9?(xiRu|&CRrf>8Vth$rSL2=3Xf~yW#(*Vh-4fJv7Aln_ z+(-$MW40M^9pE6~D1e?k1vmrv0PrP1v2oq7L+O{ar6?1kQ(6G@xfisy3~`r@fNKH! z01p6;16~BY26zwfIY2Rwih$lC>Ia!eMIb^tk#;#r<#AHOZ<_d*L{UHD6>sl6e&db$ zAe)tbpGWokJTMEq!;oA}6V3Xg+B*;;JLi>%d> zEz7bN?2)I+_h;{YGr;wTxHRu}ACU?1~L8lI)Dao8z}ki^zT(~tI0rCChL2GKFY z4^)nF{*d31uQ_8p8HouMo`w9ZoSZDjOP-2^#0<~E2mV`s&P-ljUQ(R2+$@ZvZV+b{ zE>9{hDPR67+wn1l*WaKWu*s2D6`|S(B8RlYv3KDE(h|o@Y{^2tw8U=5Tdzt(0xwEK z0xwEKD0g+d!a*~YyUnAOPXoQ?qj3}tam-T;xyP6Ss!MsAE14x{=fvXiG^N621#{W< zV?Mk|(UyZ>?$$gHE3o9~GXJ>Iql8%tgc-+tkI^E0hxRt=l}a+T)7sQdYZE1@357OX zEvN@Ik=N4v1|Y5ea=N7vldsfc>1sEK!<=B>XU zHzgw9GcPH^gP|2M6a&ww*8&fd(q7Tz78*@a6{_1osiiWCra3|dC> zcUb066FG+(4e+)@P>r;eW~F0x;dZ9zsG&En93ssau$_J@>fgcrPl@f6hl5AR3+48N z6A=}s5I&x)4T8y-S0-a#nT&a5GUk=Zm{%raUYU$}WisZK$(UDKv-oIaGLWo!WisZK zynwSwXy68LavC+{VEEAKp*zj-XSG+{GPL8a%{fWSmaWWgp527AU#~c~C%h#39q&8d z=*eCNBf8y zy3pV*p~jr} z#M(`rEz9C^J>|<+m*0FU@V$b}hnL4M&n_=mTe}HJGJb4+$N2--|L@-b1Q!9pML=*7 z5L^TV7XiUVKyVQdT%-|P1Oyi;1l!j4rHz_DZt~u?d-rYLCjEOmjN=Ur`59&wmJQ{}*NF~fsFs6$!v1+nPl)~MCaomA%+<|f2fpOe{aomA%+<|f2 zfpOe{aco)0+{mOOSqgUt#<5t)=t{gB%wjiJE|kc#;;q{&p;xicS0XcQYn9(u`OIj(!CWsN5Lm6@m80Qrrg9?yA z1;~IBq5@=40Wzon8B~A_5XoEYdljgfZxX)ijSBS%Dx91dQd)Q6w*tTF$PXB@SLS1P zVKBZH=Z&FUK~`&mF)qmzGRPY89Z_l}RGp+?#o%&Xk2&GhW=`eCl{J0kDfJl{QJEWV z?AmordCfh$H^OhD?eu5HmgUu!Ru5IDuS-uiGq&EmZTGmR^y+Q9raKE49{lKin`+Cu z8w$)#9evBq%IK};n}xXtPH!(LE=zIc<<(}?*LQAj+gaQ`ylLo$q4MaQ{XZuG>_dCF<0arK4QTnC+B!1QdbvDthl4p4(^ z;hAw;00}+6Y)1YMJikQc!0I1xR;dZwT1vDD+n!7QK~D)6eWOv6C6Dk>0+jQ{-{}yK zka;6dQVgFrDo^BQ%oM`rjp-RE;WDAxZ@=&TTXtl@P-bR#SJrUj{k}g!K_v>Zx+~W> zw`67n@=LF3gpACz9TffuqBe_d5qrZYRcI8@CJu*Cd(m8JdAap866GcH25#dLGt76sW){#FfjZ$psNaW1F0nFrj=18(L4 zH}im-dBDv);AS3hGY`0#2i(jGV(UgG9m(Qm9&j^t!P5~oKXz=J+MdsjEdGF zi!~KNAuNJISOkTz2nt~l6v84XghfyYi=Yq|K_RpxMl>=RNb18S$TX-6!8rYpTNt^! zT$!6V#lS&B;yod8E{j8t`fZjSRt07{&cIB-c_~U)u#8MjrC`ch0y&5CnXI1A92&Us zKuuZSiJftdB9EuY5oabOcQp1lWQ|<0`S=x|puFcI`SDc<+ye==dwmAKrWr@{Q z)%~*_ZQi~X&m9@Lxfy?*ni-v&QMq|A-v+X^dITU#ki%pR1O`Wf?p(M&h0&cdQqqgCl@#Y;+1+#$SGm?Y z8?y5qHLj}tndKWio(<)h`Zs-@<7`b<#=@y}uKLh&+=tM)-Q418aPGwRnH-7Rjqj4{ zC#Y>4CU_d>*&(NbXaoH>IiGP>iowqDHJQ-_=9NVq8_ziB$PK*adN=$X7zV@hr2?vH%(3=Hsc%kD? z0uOrV`%Sm2)_D`G=xvxX(>cP|R0`5xCFb0LBdLX+iFj+&6A#hqSB@n3&Y$@)h zI?B^q79FJKyv+T}@58V*W?W*YhU1aY%^6`kH3EGXy+yil7(X?>>U_cZMd&RRFqx`_ zBOHws?M$(vv@cQgc0$6_@pW18>C4TShaZkHm#4>P)y4nqlBJGSnVDv1TGTRkQd(ww z;D>=9#%HD_xtB$ynVlEAquTWb+V!Gt7lKSMfP9J*k@D%1nvx!!vbe}Ry|`6RCnWss zlBF-|HenlAo^Dg%d}e0g{Kf95c5SiNE~>!B7bq#BFySWIR3QguiX7&;YH>!EUbG&< z<(cSjBSAl@LY^i=F3s>Tpwcx;zEnfLR71X0L%vi)zEnfLR71X0L%vi)zEnfLRO?x9 zHF#aMmM_(iFTB9`Oh^4nOSbnIa)XWu{8HtW(0VlGFc)!@Lpq9Z%902K%ucZ+!6Ix) z#q%^z)}pb6_~nwLwFA*wZLm1xMOG%bQ%?B>zhEsgESvrE&E4HMe|gq~-I8T`86uFh z_TUY@y*C_OdoH-Tu>1Wl+;-aw@9)Q{QDk}N1J?3``HhK(X0|w;_c}MvK7{ehv!gh7 zS%VSXYJQM|TF18F+@(QbhjW*$$Wd8G2{dWON06MtLJhD`11!`43pKz(4X{uHEYtuC zHNZj*uu!A1Py;N~Xe`tK3%ro+kK#S0nen2q6V@hNTi3hfoMkHz_&+{pVRXSipi(Gt zC*))|&QVA_jriR}(Qw&0iajM!YKO97xQit&@I~e%y{F2GXLj|@^{!rxKYjk5b7q4yE*3sFCNyqJ<|L})DkMvPB<-i)O!{I7) z+zRthxMe)t5Fcs-cigJ2kDRZ3+Bk`|iZr!eU2nA08_^A>VreY0Ld{XebwX~U#C{ce z2xFtZqFfpz#eW#_6*1hYEJUt9i-}Kf8>@DNH_iNMil-tgt72tJ%1ZuvQX;R-Us9G@ z2K+yccyi%*M1hWd&7}i0Y0CJD>mAMmfR3@A_NKb^JXbwEHTv=Rl?e$6&imER*JGBa zrml*0td(E*13U^|pQ?DhVJ?nmD!wcgosl z#8{ksQH;|?`^gurSKB-KLsy&_F`a6RGCF4C19LH%Z8?x4NZ@Ss$@gc z%Z8?x4NWf_nqIaxMr4C^@=d*lP3fSQt+kY32iKun5)wepC2hyRw{$#inUYg)LX<;U z;);y_wfLmLU)?|=yR7iMWZzXqWCUw0ec7>D9k(w8 zk97;dxyRUId|%dj#6KY!*q4?6k}#ap@<5z(wFUD@sEJrJ0(cm6Uv}9rhPOoSCjM)K z_-_j0-#V+&_Cv9)02V$qHgr3=SO zHF&v?kOA7T0AQ6D3lecfm5s|}e5)piGAqm)W|*?*Tcr?UJB7$zAD8kc=V;*)98sbX z#oAV)%#Ghd{1Q#26q9PP6@x`)MjSPqnA%9Nme4A&N>2|jEDFnxLwmQOxA!{ z{PS5NMFpD;xdgmF7x=Za)GWaqn)?W10B{GqzoYm8OpF=5EZWhWURSs(#v5DlxvZr4 z=PQam=98tx*`P$sDPF?+zf|vMLDoqPJU_&Nlo(l4N@%sFKeXB>Lob5g2sGPYa~p_N zQGG`s;NUYb*QEe)zqPy zI#g4KYU;FZT8C<|dL<4lb*M&Nu$nGZ(}ilfP)!%A=|VMKsHO|mbfKCqRMVxa=|VMK zx|%LjV_lS^q9!B@UZa55DBv{;c#Q&Hqkz{a;57<(jRIbyfEOYe(VQKNOcs)wuc*0- zr5)QAnoBCfQDAv(3Vl0~qbnBSj*V8zEFOiiL+>!g+hW{%!2c*RCy>q}y$|V=NPmI! zH%Q+@dIjmfkW}lUk;y<(fGa_!L0xdZkYk-wOhtLGUcB3j+j|8HW5}FDI*0TC(nCm( zA$=X`S)^ByeuZQi_4lGmzA0+)FxuRPwjam17dJv}l-C|OvaT1Y@<|jDp3_|oOI3p7 za@Wp=jPz*Jy}D$*W4>a?NMq~qRYl{ijUziM)YW*=s^jWv;Y+;M<@|L#ov|80`Rll2 zR(==0q;vY$`LfRG-_O;oSzGh={pv4kX{@Pf)HQFYso8+M<42*NLBYbEp z7S=};IAg2Ut*d(bDgFgjV3Eqzjd(se#?Vr+zJV4+c#Bl4-#Em#Wvjx3cX5dCiv@+( zaiwg1gF1#8=ZbPZ1%FuVSVy~Jxo1n%=VCB>Y&D}zc6G72E7=nlmt>};uk>V?X-RQ$ zo@5yP65|q+l2#?Wx?;tv39FKl65}3Jb;i23IR82-8FGwqLO6AxnL^CK@Q;Ti!i3t-R6*!%J{EcxPXX^& z21=cyP}7TyyCoi5F%*zhV6kG8dmN<6xmqzwqAed4r3d6duBknC^gzvlT+4x6%Yj_W zfn3XhT+4x6%Yj_Wfn3XhT(frP#Uhi11iAJE`s#oJMZJSALvnVx%nun0rnvTU!CjKi zUMeg{?j4tmwBay&TzRf-QAd?smmC0?L^FuZB6K(Y+t9}Fn@JrL3K*?-vf3k?qNwXd zmSH=2W?b5eFeB* zUtAIu<;=(}SQ)cC;po2dzMb1w3Ez$f-yXC0wn4sKxVji-5BMWS6^rR3%Iz3knI8DD zV%Km}%uq}`@Z$_ue2`&3s987~O&ddx>!VOQ?jsFF!^w}O&#vFHi z3fu(yHniwVpBJ38C2?SdzUfqe!a#QmF5<Az3q-G7J~K2@*o3b*fT^SJ?n?tif+% z*boeLL$VDw)PrOQa?TTcf%Fi7s;p!9&1&cxp{InoGk5-Ili_ zpZNlLP@$2jrphV7T)CCwGLseGlro_nGNB$ap&l}!9x|aGGNB$ap&l}!9x|aGGNE3} zgnGyXgzAxbZ#}ZSAcK^{OO%Lj2Ev>93`Kl15Z(-gHv{3#KzK6{j`LBFoT-6G30H(q7H=XdQ=5(|izpK@BlqUorn8z>hrK8B4Kst-`KBP|~{RPtB zAbk(%6{P<{QeTQjCIdFB+b=||GqYq!##ozY%x>8^B8*;a)YG7{L zwz+{S{p&iG>`6+jT-lPBx3zfx@|2>Y)yp?+y5nPC9v}VW$(ELrpB&{c?oY2fAa@t8 z>$tkFva;{$4(pfvNBP#fCmpK|--Upg0EPnT2O2^oA6E^=Gs6-6bq!Em160=l z)z;!(EHYV0q#ahTglTYxm?b>y068%k{QprK%>i$X+%;yV+@&-Nav6qKzaxX3!9kvY{JZE6J|b}F!R|YBRK|{OeD^H zg6x`R1DWk=>rSM#ed%*g5Z!(AgTuj7rvG@;CC@$4M~VeDZ{MX4S=_zj(g&ZIW{vqn z=NF(zj`;k6{L>IqrAU%il8q!-x7CWy(FZrfs=l0@@ zOyLSu*SV15)Q%B|um#5m$|tMGJ|_~I10*G;(Yl4NWy0~o>}lB0+fy-E=vtkXot^cboW#;{hF&S{Y;9iobT7;9uP-i2 zFIaA7R`0HD>`X)8X$YF{I6nj&v>4x$b6XKj36PHgMbMd~h0cr>00vKNt}tTMAm@aH z=QBPIKPt5lifekxYWUjWiFy34iMbQ2Tmwp4jT~!QZLCo>aTSJaQH?!r>QFMBi8pSnC1SdVtl^24axOL?RPsg>dl_?-p+L2gB6>4hd)z>XIfb z)>?#-upof8UTdi{dp6zO-Z8PWw5eh1j?%u9ySLr9CC!Y9U75Ys-+16~PEC7RU1n-( z=IY)1_wOw4h8k6z@A{9T!lLGVbigL1x z*SBukn3&K^#7yQvR$ln83#G1aM$H=|#zzAGZD!RUuOA1@KWhHz!h7ql2J~)(6N@~z z()I0#=L&K6O=FpP!u+gynzA?T0-y6cc#nbbK6W7swO$?a6!yMBm+NxD)NOW%FAe-h zA=An+*w+WOd@I7BZMwHk0JICNfb>c-a>q2I0zU!iU|Ou0E2w`!Cd*y7CDsO>DpZZI ze}eKlHEy|pN7tMz{C46u9lzW0n}FZlnEm!c73W?&s^5 zQBk|<>j`9n84QV+59ZL|d@i*nJuN2t%4d%6y>oI$>M&VopUZTq(}9kp^-kPAu=i|@ zo=B~18EzT7qtH~GHt;ui&Q$T20?!wmJ9g-kKTC2I7uBY;wyYn0&mrmsWmlH)=fK_G zhL*-gHSKjeGzMZfmW!MwX6i%L`y;!9)HtSNXO%P@iBB661?(H(C=*3Z?2iL6*062g?7+!>(X69Kd|PC zew3^dO?a;R~>Kvrw0@4*L)P2x}i}%{*BzuSIiI9MT71@1XFaX9go8-Yx6Jh!*8FSb&l2ieW*T$g)xDsfwZ;jN&~nBZ z#j$1gNTQnqfPNp;7SaGM31wvC;`ZKSRw};pU4klbAI|p8*-(*~xN22ZQf66xa`pb3_L!#xjG+BC%pKJ^;l>Z1 z0GaBze@V#2D!G%597Cs|UdDC^nS{9uqt zh1~>d?GAdjCQpI-5(ld|qa*iO2XSx+M-abL&R9`JA96+sf|lJ0-l8_>(~;7DK$Vs4|?a+5N9561RNy}F;vKLXbX-E0(7}+ z^9O0G*5>4_U6rPP15-Muf1QOor+=qHU(kh@_yy>o_uUIzv_+M|w%dUMw{eWNU6h|i z`OT`lMauD)X~&np#C)|h&GM^VYEThH~VH)ULRJD z&%2&d5)Qs?;Ox zXSuZhjyI)T`pa_ZudYY>HHmWR7s^BW#d7JFF8@0E<$`Ui1agP%)aBA&mP>!{u=?AF z=X(?!iq-SS3+;C&>hef?jLMOfCUIKLj?1GAC;(AewS-$^e^N*d0j-NrM zdc;NtJW!{R!vbNPgKUE3e5pMG=9hD-Hy0IcuFlcFj?U04l(LNuETbB($DmWDV{X-< zH6F`=V^8lbcXdd~$AM>RE@_a1Dv%Mh?o3SgB@lfUHE!Blu=5vx?9fG6qKY*gj`($@ zrE8a)2h_y%*DCZ_pX1fQzXYChoumTzwo)hv1LyqPw-N?_v+$peA6}Tm7YIXa-KC9= zn_E>Nq3ex0V7Ee~R8ub&b zPrP#B8MQt^nspd)IN#wKxJ^3m~{$@t>Y9@JuM80UcHe88^zhY3?s50-J*l7sg}Ap*U}RN zdX;dQgL}qs>?bIJMim}~%%z!Dq&6h3rF7$WJ2jXp$cE1gB=`_xoI>8%^g9Z&GeoFYXHZ)SeW{+*Ey9{YFP%sXfM133d{%yZ{c)H$h& z!rr6CTG89e`Y~|L`fv}BowvfcT9W_MpEA@PNCJFw9{Np}tYsN16s;76lyglU*C3Dg zTJqa|{tlyb(eqb==I%C9L&_<)X4P6fTu)ffg_jiHROO)25=`J({tC)%y@50>dIOFR z3n}NCzm&fh(zj`;k6{#3L)df%F{GYe;V) zSwo^5LxOLfM~Ez!I>1D>)bw$78(gugB^}p>5Oxm>dW5i>(4|h*T3RTJRcmecedaC^ z(~;gFIK2+^PRhsR61g7aR;w|<`CBcnD)nTcQcV_0(enY^8pJTr8=o$xztE&}l-en*j0BB0ex$dj9Sr8BIvwYz{U3a@4 z2W|3sxA9{zU{$W_5!yrz@;vx33@5IKL4!lae)9qDl+)|P<#uhu;$X(yfCbM`=OM#xEHfclNg9mlov? z{L&MPmSxg5Ez9)CVgMVua}42^@9n`a-`k5{zPAs*d~ZKVmL6Mllu&cdMIOplR9f4@ zuxKZ#&9SXIc9PO}3Z?G}GH#o`Z3h%?c;V(0&9rHFpt+0_YPlbRx-K99a zvRWK6e-4ud_`bU83b`M6n&pQA3F^LFbve!j62v9@dd2R+(yzC3EV4I)nGXcU^g|BM z__*ec*Qz;QsiJSpsT6(7+=IMV=4P7rO8J$+^1DNyS3F#ve}&~h)7QacU7+s`#y`m! zoN|Iu4)`h8KwIb;lLOC~9C*g$z%wQXo-sM_jLCs#Ob$F_a^M-0gO#5gVU%uU(vg(4 zv>2Isbs>Z(F0ssuL*aR>Mb;^+SSSy*f~VQqLJcVkOPKV2fkPZLo6yB|Q3vStK#wb! zo*pOg7YriQaXn_FXa19;pvkr&xZ?%6{`y+gVbwReGF5Uwl#9vKsc6l^3gfjsLo|n0n zd_(+bFy{)EQ`X~J=^i5MJ5m45s(zN+^~)TLbSrZ(O}A1$7c75|MYpP4(XBkM=$7s0 zyutG8!R#GhfQMeNobAE2(qVogx(C|xm}(Ep(H<~%J}>@^v=N9uqp}5n$UcN|QHFWR zj00zn@;t9qN^>}+#Iv{=W2G5mr5R(T8DpgxW2G5mr5R(T8Dpgx zW5x3GawC(DWQ~<(j1^v-htyeRG^1LDx^(6!9O9s@J z45%*|P+u~jzGOgs$$n=cAuXbn7j8WtMU zMhT8Zn*DB$)!i~y$Iy{O3ReBdO{!758{b@^S7BCQ6=nriVOC%jW(8JZR$vuo1y*5J zU=?NsR$*3P6=sF>AR3trBn7JyWE#{3VYS;>p}NC40vwseSSo8i41o9tUG=TR2;HQ< zMrMQaq4>2iWK>9>lGUP>`t6miy_qRlnYkHB)m!@Od*8XYx}$M3 zHMEzD^0VLZjQHz$2X-41VC_ce#sM;*H4wtESAjMQ+S{0;CWHBLJlW*Nj9LqZVNzaR_mVj%zD9 zO6Q^uRDhBKsy`?#Ri#{kq~^7OApqmGW@PC-O7>t$3zJrUg*&Y&%($j#Dv84!w;3sN zz{(>m^|Vl!cu=nqR^SmVfI>WJC8rQ~)xiqTJ(N3+A{@#meW`VlCDawmjSmjfzZ6Z| zdBBQt@=ImPdFCe+NelP#?@v^TW4rmCz&D9I^Ay)r0&*5ieP9hmRp4o@dYDbj0UrwP zYCgyfNSs#+Z$Aw@0Uy8<%Yi4$t}QZxyj|?nnzu_idApQr-mc26c^|bAx4Mr>5_m6U zhtbQ({Vb-*MNYJ%=j#&~gwfChhzUj;*r_yY_>cj#9Pv2s4w`l`G;Q$7QOJRLq??iM zNBRWPqexF9{S(s5NN*ykX`UOIbR>%-+X30P!49zw;~u2p25GF+*fZJ(dEw@c zZP#yJH~PWjj(b6OiY}DhSm@;*P#NvULPw$c67Iuq=}qWM|D<$eY{dg<_-GwjqTJG* zt>?L}A>y4>|*upGJ%{&N^-IX)1BXglVlFF%3BCF%wo7jeijV#E`mNr@Dt z)P`KB4Y{NtstvhN8*-sGYT&NAXP#bc!+K`LE#5c+E=$%Ms zTeS-wW8plQAs$q@byiNMWjo}w*#Qi^0SvqW47>phya5cn0SvqW47>phya5cn0X^^r zFz^P1&Wn+$R~Hy=O3i5JFl!I-^;o2L*xPEJfD#~HUvdy?uNsmxpI}xh9`buI0QX=3 z?!f@u18nWV0NjHCxCaAp4+h{K48T2F@7RL@xJMdRf=q+DAQXy?Jr)!Yt;K>uujN$fL|e^Zg5pO2ANDG<<_Mp zEf+V)z!jecY3`?!kS7w$DCly+S#NS`t&{pjFe0-{Ez74bp3oc}%BzUk_2kr!>kien zOueUn_XFGBarN$xHfPkNr^jZjzQXIP{lcHMKHKrZ-iCv%#omL*AK9+Vnv1481Mk_E zSYO()d-aa-&cXTa!tAV};e!=b$#De*Ym@UTa^fHQc)-8QG&9mytZuIA-o3wvbbmd@ zb3qi>GulA!Zo{{LpI|xn7)kki<6yiAmh<^LP~cW~?eg8h=kLZ{?hHo#QN8dxFNJd0 zZDu_I)jtZ092_@@o@00v#jFMjbCo1uejKpfu5*OwYeDq2 zAo^MmeJzN-7DQhQqOS$f*MjJ4LG&;X62ER_(vd7_QwyT!g(iB-Gr)HH=-?>m2-!=v zXcXAXBy=o>1C{ED7Dse^O)!c;suC{<`V1r{tuEAiI?!LND~JX|o4>Z4Gu-!PwcKG- zSExuyc3MFJc$O|T-Y};(rpXo z-B?htac|?sE8A9?wA`X|wCQ1y z*H0)Dq-}?rQ^^GBvLeb7I)UcVVN29j?FmF)UaY*U&qMu@oER6WMvMC@OerD8G&?+u zWj0%iOzJILiWxy6&hfuh_+MF=H^IzAKmUSAwtW0Z$hL#PchpmBs{5~QZ9mpkQqqM} z53la8cJ+4(1t>?Lx1W@YzTH6@*}dasmMx4#kOz2$tdUdJb^!5i<1WirL(0ipr2M@} z!ds-AJmhXX=~j2iTU5D{&9B(ypt*Y?o7*6pw-_DfgRs$pLbf4wf+85cYV8_LZ`)9k z`iDJ}2$LLq!imq(EKCN)BkM|#uSCAm$~Pe2VC89IW-x0KG!3n-!T9G^_$S)}Y*`0v zvs@+FQKjg<8K5U_9ex6V*-gNe)K&>9b84N}36blB$aO;GIw5kM5V=l>Tqi`X6C&3M zk!zhV9gR!|lBM%HApv=TMx(-JEmWH!RISZ*W5}FDI*0TC(nCn-7KCauglaQ{YBPkY zWps%_CKHK5Rh=&s^c_S1*^4N}p^_CbCNWjB;+C5=G4H$G`(%fwB0eE$W$fzGs?8TU@?v z%Z99Q#dycNx4NU--uZ>AC%$lfN5|=hjuhsaC*L`B^)&!9Wgq---xEc8-X`>nzjirg zqLf4T4JrSKRi0@4*!5lK{a*pjf_0JB85L+x~ zzrsbkK}6)DEa_0ZG748wATh3V&@Rh^Wyn#k1ua6QnkUNiDU=hQhako=_ewOD;G@_z0s&BkCR8JFNvBQ| z-tT`z2P#GXnou!iP8SlP#v#k)>Xcv{E-ut*V|ALfi6nB3B3X0RMK>(_z^iI8;tO!X zj3zS;yw&pQBOQ}F%M`~IpUXq3rJKvP&hD#|b&D_Yx&HU^uWMBK4(FH5lb!xz_-OUu zsU3k_;kVeW`;QgdYI8RnxwSv=k}h-ZVGh&)dfG|4asLC?;4Zvr`av#Ts$BfONVB)& zLGWP9exS+~PnGglSPq{01bAw9)BteMYW&!awDSbmgx-5CA!n_VT{579Wk3hZfDV=c z9V`PnSO#>k4Cr7P(7`gGgIShQH!|r+mJXHy9ZZ`^UB)s+58QWF4+QZO8$qO+7#A&? zg@*M})0R*UnT>HI+smM2VYP)E(q0@RuS7I)&>a06D07uv$iktr2x&^V+_FWA-q^)$ z0cnoNFhPO8T&(Wz-w{w}A(@T$mozq(Foj1ETBO%o&Izs6j2=w^p{9(E(dALsKs zUQ+8B=C8~iYdz!7P*=0ule(;L@STIfcd(vejs=!mw0Vze6Q~s5*1m+K*?UwR11Wzm zCe@0TQU5*8NAPVa*Xt!Gp<@mz{@bhSfz3-jFXcz^JX(PId6)I5a?u;Y%Gu7nsy#j| zP`F{$mgl9MdI?JqS0P{8^B%NkuWHYa&xJlOaTv(=`_=QxHxRV<1&pC==p}O|q8GGa z+{k*yesJ?S#m)7428;xwcwipsW~BR(K7sTo($h%)g!D4fn@H9yrUfGi;mTz%d<#Yp zFK{dq#*NlTXoS_1r~Sxt2{>a77bE73{c4o$#|Y@f=)&?eauXrr%u+mTO~hK3unQI~ zOISnGmI4Em0Lq0y${iHef)>1(fR;KIe41Ml8*sg;R@WgDtDkkPzRl%JY5ymzQ$ zRYiPaLPC04d`VqqY_DZ`fPB0#*#QmW1#q|if zUhwl&r%SbdUJCuZ6#987^z%~a=cUlkOQD~aLO(BseqIXwyi}XSN+Bb$*+I4*mO?-0 z1!lvjT*ciEYA}(zb<(sD6H`G@^;X+<;Cv(oZ1Z}xDd(FcCezxyV<&C8`@!Zav zj;%LQ^$6X`qYAECYB!HsohM!u{-RC-ub%_LqH%UuraO-1z&G|f5#Nd*^Ddtk-)QPC z11Ny*V#zEiC%>2S_dFZ&dI_0 zAPRvefk;}SU^ps=Ve0p_=+c6@&FEE3qYa4DCX80(NrFXC)8$+#TjR03+ib?Woosdc zrR=f=e4-#kAGZ~B+fZx!cb>-tpv0(EtrCAWZKB$YHdUf+ZTMx3XYuO1ltDCTv$Bj; z^wWh6)CyD*R_IcPnI-71g$LJNt*k&!n~yopHPq-1%;=M9;e1^ z{z$arg;%t`Y-0J1OK=M{L7KubiJErqfp!xtSAOq8Q+NJImCHJX(iMhK0Nq7w7>mm9 zz+Kd1m2*FiJbx^#oVtRPZ?*LBNPqG>l2kpi=Tm+6Pf_4Dwn7zQJ0F4WlC8=mmXq%n zq2-)UO1aoyO|T2YwFm2a&Bot7fuSI4c{EfpxEd8>vMF*(6O=Ejc?pV7@>*hDlT(sp z)9|}mJt-bPak$s9_N1o-zRiJ+{` zNOzvoj+Um{{^_W@n{;%a5R;X0SX<=+zoIn!YT!?J7oCN#J#^K_0QUmS!(O7d7rnK} zb*K+Es$4a&K|>B41kqQKVDuq$p^GkMDAGQS+V;)(ZCGsrcY;SGCr5OKE#adb`>5n$ z{9~>aoR8PB0O5mKV9$T((M=aF9)>9{T=}@lM=b^T2>+%0jzVqMv|_s~9fJVW)@!=N z^B#j`Z~`kvL4t0VDyc)sZal-1y{e=hC0B6#DC{ko;x1CXn~2UPLpEI#;r1k$q3m6t zweXp43O*$>UA=rwwWu78Xu_TCS|8aCePlcIk?qh&wnHD;4t-=h^pWk*N47&B*$#bV zyVggx12o&UKC&J92rtCq)Q5^m7xWsXA@m@JsnCVUgNT6|K6?(KkYpA6ihFrvg-v_+ zBuBiFa}BBC9}4q6qX;FJe?J=Xby1;9=Luu}l+6aYH~z)k_MQvmD~06P%+T;z&I zCIiXR77KtKUH}U#?cpcDt#*WjMSN=QjrlhJx#C&8tm zB!EcHFUw4-TD2-Mv0?)Ofw5#dUIWkDXl}ytUIW+1qdCAr_Apt5Zg0zt*l@deqpjmL zy`xG0zGv~qCe!g?;CWZMSpt`S#%kaqp_5VR#gwcg+&ewXic%9YS42CFAgNb>#th$hP-niPGfCgQSgN ziw6Fm+FKrI)JWIA&YN^j|1K_xB#^M(g8H?PUyy_0bVglxec6@2Ee?X9PgD^9ZE%pN z0IkqxA>)514xCXTpi-b*4DrP!zY`A3OpJp=!B`7_zC^5rDK&NhwJVvq8X1quTq3H% zl^W1fn#Sp%@xLa1g0ns{?7_khBTHOOktM%F`~<@p@IYqSu`HH?@4ssJ(r~U=#MaBf z_g^(w8K}Z~<$n;q>mwNQ<>FI(BNB8Adm~Gt`XftzYw#-mvHZ3m|M=)7d3bX;w^+oe zn-zg7ZbFd$FX6_EIe{xXk~b_a`RzG@8R&O7+@~)aPsqKII`6O4Bq}VP(1kY~j@XAT z`+lsC@4u-wSB1TA<~kfP*IxGh7_~L`t$fxJ_Wp%zha>8d%f25q!#Cf0dC~juiTaiE zNymLy5|{n;Fwa4`gfgO>^{mN%tuthQz2m->RaGmQI3NGH`OnU;M!~_)C^D{k0=`92 z7{r_|arYjVPPD~1mKu;!z|{;}&CRSZV{ixJX`n9kX*mZVPSwF#J6GbV78YXG6Kk&2 zQx(y?8QM`rehfPBI6e{hFVlH8ucWvja4w@DCf2+rxi}}ula)A;k(HG(;krKXSAlOb z``D`TMG=6rTA+F5Jo z6lyBWXqop_m`<%I7U`T>yS~WuJWh1K+@l=le|{O6uU`2}{xR1lC&jMFN(}ti&INA<{!(t51;O0sei?E8bRTB( zYrt;q<_sF_CY|PBhGW2f;^1lD)?%2wN?^wWCsdV|e-s%NnsObY+y99r*I0j3tFYS4kX+HsfjNvuB|A4a+k9%Bog+;K|1_$vKjjmt z52y8}uS)-J#`BpU&T?l>W*^9YD(8XR(!9dFPvn2Q;M*&=u6(NSTEyLaan&Qmdy2nb zQc^Nl^1+gSDtUXgr?j`Mw|uaoyyEATpQw7K`mr^e*1S=(eXW08Wo=1aOx;iF{S7}| zf76D##{9-W)47d<8*kp!zv=$XAKUUsbL-X>TVHC;Z@a4P=C+sHU+V1I_77cO?0UAl zxBH9RAKLMJ&zYX5cgFR)dRO&+c-JF+XLdi^|Eqy#2Wtke7<_Z+^w86LR_yuyzNCFM z`#!wyOZ#5lpL8JZz_$+Gbns&bpMS^8S8Tds^oq}3@slg_uYC2Y(W@RE&KzzXe(~^C zhsO_}JbcsPyAQuG@{uEt9r>#F=Fyu*pFVnStat42*!n68MZlByUd3bVi z^7Q1*llM-3X!6sOk4`={`OM_=lP^#Hd@?WG}SrPKXt{_v8nl~GgEg? z{n6AXrXHDka_VoVUY{p$Qh_51zT`ET{# zKl9Mc7iYdQ^R1a@=Q8J3&DG3pn(LZ(&##!zpD&+pm~Wr&n?E!^Ha|Om!~E^@56pjT z{`2!+n*aLzcTb)8DOVbNczyFQ5MT z>A*E{*Q8%lc%MZ`x2}8kx*uKl#to%6)ZMW4hTajhQ#Dy0PZQO*eh} zrWbB{_1#~8_jlj@{dfQ5-M_lobvEv7`q{#>)n}W|cAo7&d&SvfXXnqJIk)AO6}L9s z`q-_%xGnRxbGN;C`-ks1eCLWgzjD{;T{qwLiMyV@>*c%McTeAwdC%-U=Rx*4=5}S~ z<_IW3qRE?o<8dWRHiZmL7 zBVNxD?>yi*J>dl^QOn5GH~={1AD;Eidp)B>@U(yGn0I7$rczZgH$6S&pH*K|cR^x! z7F6sV9mNgRl;M%#Bi;$$h{DadZ}RAz51$@E7nKojXcKCmXFG;HqabWm zIz@UI^@Fa^%;O&4r02w#Z)8lhX2vryd1!Oa$IuN8s_5?*!tauItS_x3i9RZP5dM2ih_(n-?Y%jiup7?!- z=VnpD29KZe41=(zCXezL-@-M3JvlY&nVA{~k)C4V#Ef@*-aA857NDa4zR8hse1k7e zo&p;DzIg#UJB|Az81ZP%VT_e=HpDw|*n8v%bK$K(yVgwkMZaA)MLZ5 z>Pvn-dM5#3j2o-9>^55)*^rPnD-hWC(Z;c<6CfYIYAm~q_WHf!-eG%;voQ( z?4{rr{7;LGE@0j3FP$k{s_mqq5x~cfhEELpkCUusJTr46V+02}N#Yj5zy~2@M$mkI zuo86O136g?OfX?}Sq(pQrEoD{4($V>Bq*PmhEx!mmXCXeM`ta54Bl$VznNJu3W5}U zVePvh7JZY$<{P@kCdhl8DAoQCG z>-MOb0Lvl$4j)ltYIdp;m>&1ef(j}<93OLs!GmV!Sm3Fu(!7GV6oZ+9&_J=GS7D|h zjn?cn0tCRyDbL8*@FW0p6m;gF7$yVsvzS~`Q(!nSNU@$t?+K50a^B~knk0C zKI&Bxf)KPmJ#}~%gP2elMiZvN2?VlX-&QYy`v}iH1zv(D!FRo?LdEqgE{xJp)+Zta zoOL{$NzY9Nc{ZwothvZ%K@pT|dVG(9ey2{bv4GYQ2&t*bnIfy;YCQZIbg%49p3{O@;xj3TqxiMtOi~&ACll%tk-#<0&_fegh zKqE0W?8hg(vv_e9N`=omeq=_e0(_4jKoy6<$e@b}FGnM6`8|ckTJKnGhBWhmUC;Zx zCqzQ>SsLOlhXj7Z&r=yS?EF-P9bB^8hm6j z!gu`;>0qyl@3jRnB7(@0D|iA7z~au6R9YZBIW#P8060P(0U}iRC?&|Jr|}ke6DdJN zAbU-r8CO@PG#Ng~c3ZF@A#4|w|eckStJ?`ZcF zwhZ99u+p=)d$4QQ(4YrT^tbd5?#Cp-)6%=&v!lDWz0%XM53{X-0ne^}PxsEgp6(8m zb@#UQ47GRnZu7L_z204%_U-H*M5Tkf)T>ri-5q$Z(}T9Ob)n{#*6yC}!Tpt<&hEip z*4c?lTReR&{e#_YLp?41p1z^}zFn9-w)D26+TQNo&VGEQV`m3umZ+$0SKt2r?rmLz zm3V0og_WMc{+9NRoh|)4D%rwa=yJbDJyMNUq7F~T9=<%#)zZ`BAwYt4c)E7=wBza4 z4z#`nvq@1l7-*|Lp2(Dm{$s|Pj&2&ruyy&e56J(Zq;zK*tTW&pbG{*E>@ z5KjW!=sZeM6BLVqj@?5jz;pT&z(H4sYC787g8$n{8q(ul^pN!o?&=2&tfuVk9_Xm_ zwDflm5DA_AyLO^-paL*rABO-!JPHz%_7W{D<2^M?4-y2P;@cMB+B;f$P$B4|ck#2; z7dIh<8Fk>jJ%x=Xrwl*hZyZIus9A$++aqxA^T30n1_x@?BDWixVWx1;3;(_$#LK!m zcb@8rlS@=`- z_x9j>ezeJl7ER*$wP+pRsg0=De#36l#e3MI+Rysh(GT{A@YsegdGT)&iSU~RG@9Ts zye0%nb73$W4nk}M?VE^r>oDqO%STkbBgjpo=4xE?S@!sH_^Lz;f0OIr>&0QHRGD<>4? zuoih@9KR!|by9toUnGo=s5W?1tN82y0^|1Jcb9@8F=w}{C#(kcXDO;7<#<9`7XDq` z8scUe^-13k<98e-Clr*1RlD?)!?-hpdmi*>9?7R@>M;JYy*5OLan*^jwOc(o3yShY z;A%!u2&rQhHC7|Bu4>fn2W_rFpF7ca!ZjWqU{(J|{>6u2pbxvQdsVM?;dc_eBZhY_Pm>&cL zJ!zq|eIEA(9voMr_%=DV{VZWaULyB|UkNmiqm17tbjh7Y@YjY7dDR5INJ`|W_n-}9 zxMuz2NxCh>lx~UKkvgZY4IH1W19#&!gmgN;bbhCK+U`!waV;1Ngo9#l=Fx2Ch1VVB@iB0kfA*D zs5TOhtif(6A*U&O65k>fkw21(*+SlzK24yUbWG|bEQBkEQmWvekR8Eu(hvQ`NmY}` z2cP1+q#2=fjcIwGbVz&)bl5A(74m0+kry!Gy(9Ri%Ps{Ap@B8%6LliHZ#Itk1pCQ* z;j&KCj8HEjLRfG#2_E@X*kQ**`B4|7dVcgHz&{v z!q~5ZojaJP$!YMtpy{wy>s!zd)5D|VR+-Io~ z!8bUbWpswNgm7O<^B@GK@D^dMdnWpw(7tdX-48xHf)?3rvH7F!J>|GitscvvBUh+M z?yz4M!+`LLcF3YmNZDSbK_p7v0Z6C95Itxhg6axUC*d%PM6N@KlUwN45Kp8(k!Iuz z#2=qqjLXpREBarg?%IWVIM(^CQq)38_nX08#uX)j&<`aa#{==_NAzHUr|_B?)Je{* zsY5WSId>?>5FRe`80wd#65T`cL-GS&llH?ku+T9Pj%8c=304Y!BYpW|c+j*II?89% zh~Qiylur{Uy60>ic?;oe<5Kk2@Yx?_09(wFAR|WbqT9X;HE^y-s8RMr>TMTmx27Mh zbBH#fXJ|rAouCF8qmfjpB|dcxN=rV){t135q1f(7IrO{GpYG>Qd?{S=?NQLvv&xJ0 zQ{!hT&M4H$JDUGe=iyiMh@VoNl24GTDWiCYl&9s#9B5GVAj)d}1hr)9$$Xv~8^?f* zQsP@msljlx@$2%mZfm$^D!Nr9q{E-N92Lk|;dtb@<9CE&DF223a`XufrDuXGtxMVv z5pDTWl%aVnIj|Qp$AiCKUVc%^IgSVcYN?ce94{wuk2&MW$|U`^;oSM+ zaFX707S@k>N;l*HXUCKX9ync*J2T%NAu0M)Td0%IC^$%)gnx=&${88)EPZDSwN_;7 z*+M%)37nmJ6-8^jiS`rT>nYSqK14duv_Rcmb1W@?G*`KJze$PmCDDC&t@YefmR>^r zU-E)E-9lT}<6E{aEYDKjEya2GEa^vN1V{3C*xTAppr4_zUkmBgmGX@P=ev9punH2LgusDe2V6BqLz38i0dxUCrZ5M~T=tJZ_dMpVQuoiM| zew$yExfy5lgwj&Hhw$XnobyD=9vMBC(YI!f3C&yRlEJNBwY>iqotvFa6sE_>a zU;WMTCX#{U=wkDZi%}b?OepDhnPU*PmzrfzGv~Ms9eF}6dUO((ni|B8AhRl=-*DYR zG-Pr@${vv-qJEW6IJWq&IKC@RMHOcYBN+FuDP@mAI4Fg(4D0%qThv)e%!7m}nr)f7{TswIW zTgxxqe=cQ(4xM8Vr<7{c7fu3O zLVe@|wu~n3M5AK8OUuD<$)`0tO%EIge*ELNM5nU#y*5Q9;bSCpMpTWK3XQ@xZl63d*(Vm(tAUMqbe9~F4X=%qv^_Q@eh1Dv~a z)U$Uo;y6;px3$MJ~ zd`N009S{>j75vIlb4tZm#3^s;eD%p7TIb zY=^PWTHE4mkx%yHFI(EDR`2*tKF2rMiy>SyzYS%r*7thx7Qf5YKF&LdE4FkH<@Q&@ zTh)zc{1SV|Ckd57+;2gx ze4k(4p-QD?gbA_Cw%D~$-t*hi4#IzrRUg-~+5aB=W6eS#i`(JBon3f_UuE5`_!Za_ zYFwKPg^pm{ra!j29baL4*>4-?q3tE)7vo?l8qhSwx`-XZqenqu0PyPoMp%=S@O@Gb z>ATH>pwubUO{nT;1%_g=ApUj(n*w*KFR~Zx*IorP8|ngQwvcqfFKTOujbnb3ZPx7} z&61Y%NU)*8QO1_=OT;y=_yvvxQqnHKl=t)~ly7J}4yku_t$Z&WzIwFi=k$A*;t&EO z{cYB5_np*1SV{|tWr4=!>#c@<7wY2@ZUeuV7Xo(AIk=$?G5NL`XYgaHi;zDig2tN; zJcW~du-7^kE(^=Bqc0u-Y7-H$CK-G2QV{bX4ZHR-5L`A3TheokTq6%*N(<2Zm0)~D z#wzR+kH`dxW|Em~t}s)~RO44>nwf59n3-mlnQi8nxh7-V6__4#rCDee znXAlVv&39&mYQW|xmjUWnpI}C@oRI9Sz}^5wpnY|ne}Fax!&AhHkwU1@qUxJ8PNlp z&8=pO*=n|#?M46xigcKr<~Fm->^8TXJIo$)r}38AYwj}p%-v?cIbaT&L*^cHues0M zZyqoYnupAHm{*urnpc^_=3#ThJYssyQR8j%s5xf(%wy(pbKIOTC(S8y+PvEIn=|ID zIcLtBC(M)PDdWG))8;kiwdOm`>&)xT8_ai^XUrSTo6L8cH=Ae8bLK7Pt>$eEi(o{# zdWU*?Tpe@%DL350vA-e#?$f@hBiMR~?GfH1(b$1jQ`1rt)$Sdi9bN{H(~05X5#DvT z9QI>7Q*?{G7u_;-6kh4am$i-f{McPII_^Cg*LGxT)_S^qWEi!(+wqOzS$Bte*WIBC z<2r(mMR!=Wby&4+vuj(vE#&KQ+k)@7x(*Nfmvz|>y1P~Faoxd3qPwkXyQNxp_bm1Y zd6#XsUs}E+q;_}D@CY`oxqDRmmiL6*a`m8Acdy* z56{g;?~?Dk`{liUd9Oe8y#aM=*+58>214$;2GL9Rpu9L3a>G3&9~=t%;E>hfA?a|` zkRN+B+(W9{?!EGb1B7L9n`q)u*F} zt&a^`NE@-=jT^C_KB5}$J|ZN5EuJ7Bw^tR$d4rEdV=o&CG1_a@cGRwI`O%P$#~ls6 z;~FCgjM)#mebO@c>8rYY7T&Q@g?K+^Ke_yPNR{q!!OysWc|7EnYaCy5Ps;sCxjz|l z-#sO0m?Jdrm$$7xqEy15q8G zv+$0c*T6gWaiQDp6Y{AO_NQV`1o3`C@P5j^={_ZRKdoMiI~@eKqkFr##?LSL$B6_UDbwN)rDQvFY`_u8J-za sb%f;Ch2(2P@^x`zr>4iesyWL?u~TqnPPN%j4ZsO`k8mjl&vJJB-;tz4&Hw-a literal 0 HcmV?d00001 diff --git a/extra/res/UbuntuMono-R.ttf b/extra/res/UbuntuMono-R.ttf new file mode 100644 index 0000000000000000000000000000000000000000..fdd309d716629f4e5339d5e5508225ed857a3ede GIT binary patch literal 205748 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ăESk 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 G(fmJpf?fdt literal 0 HcmV?d00001 diff --git a/other/build.nr b/other/build.nr index d0e5260..d65a7d9 100644 --- a/other/build.nr +++ b/other/build.nr @@ -1 +1 @@ -1636 +1638 diff --git a/src/debugger/Debugger.hpp b/src/debugger/Debugger.hpp index a09e2ff..365dd41 100644 --- a/src/debugger/Debugger.hpp +++ b/src/debugger/Debugger.hpp @@ -63,7 +63,7 @@ namespace dragon static void removeBreakPoint(uint16_t addr); static bool isBreakPoint(uint16_t addr); static void addBreakPoint(uint16_t addr); - }; + }; public: class Display { public: diff --git a/src/debugger/DebuggerNew.cpp b/src/debugger/DebuggerNew.cpp new file mode 100644 index 0000000..6d93474 --- /dev/null +++ b/src/debugger/DebuggerNew.cpp @@ -0,0 +1,561 @@ +#include "DebuggerNew.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "DisassemblyLoader.hpp" +#include "../runtime/DragonRuntime.hpp" + +namespace ogfx +{ + namespace gui + { + Button::EventListener::EventListener(Button& _parent) : parent(_parent) + { + connectSignal(ostd::tBuiltinSignals::KeyPressed); + connectSignal(ostd::tBuiltinSignals::KeyReleased); + connectSignal(ostd::tBuiltinSignals::MouseMoved); + connectSignal(ostd::tBuiltinSignals::MousePressed); + connectSignal(ostd::tBuiltinSignals::MouseReleased); + connectSignal(ostd::tBuiltinSignals::OnGuiEvent); + connectSignal(ostd::tBuiltinSignals::WindowResized); + } + + void Button::EventListener::handleSignal(ostd::tSignal& signal) + { + if (signal.ID == ostd::tBuiltinSignals::KeyPressed) + { + if (m_lastEvent != eEventType::KeyPressed) + { + m_lastEvent = eEventType::KeyPressed; + } + auto& data = (ogfx::KeyEventData&)signal.userData; + if (data.keyCode == SDLK_BACKSPACE) + { + } + else if (data.keyCode == SDLK_LEFT) + { + } + else if (data.keyCode == SDLK_RIGHT) + { + } + else if (data.keyCode == SDLK_RETURN) + { + } + else if (data.keyCode == SDLK_TAB) + { + } + } + else if (signal.ID == ostd::tBuiltinSignals::MouseMoved) + { + auto& data = (ogfx::MouseEventData&)signal.userData; + if (parent.contains((float)data.position_x, (float)data.position_y)) + parent.m_mouseInside = true; + else + parent.m_mouseInside = false; + } + else if (signal.ID == ostd::tBuiltinSignals::MousePressed) + { + auto& data = (ogfx::MouseEventData&)signal.userData; + if (data.button == ogfx::MouseEventData::eButton::Left && parent.m_gfx != nullptr && parent.m_mouseInside) + { + ostd::String text = parent.m_text; + ostd::Vec2 relativePosition = { (float)data.position_x, (float)data.position_y }; + relativePosition -= (parent.getPosition()); + parent.m_pressed = true; + } + } + else if (signal.ID == ostd::tBuiltinSignals::MouseReleased) + { + auto& data = (ogfx::MouseEventData&)signal.userData; + if (data.button == ogfx::MouseEventData::eButton::Left && parent.m_gfx != nullptr) + { + if (parent.m_pressed) + { + ActionEventData aed(parent, parent.getName(), eActionEventType::Pressed, ostd::BaseObject::InvalidRef()); + ostd::SignalHandler::emitSignal(Button::actionEventSignalID, ostd::tSignalPriority::RealTime, aed); + } + parent.m_pressed = false; + } + } + onSignalHandled(signal); + } + + + + + + Button& Button::create(const ostd::Vec2& position, const ostd::Vec2& size, const ostd::String& name) + { + setPosition(position); + setSize(size); + m_name = name; + m_eventListener = new EventListener(*this); //TODO: Delete -- Memory Leak + m_theme = tDefaultThemes::DefaultTheme; + return *this; + } + + void Button::render(ogfx::BasicRenderer2D& gfx) + { + m_gfx = &gfx; + ostd::Color backgroundColor = m_theme.backgroundColor; + ostd::Color borderColor = m_theme.borderColor; + ostd::Color textColor = m_theme.textColor; + if (m_pressed) + { + backgroundColor = m_theme.backgroundColor_Pressed; + borderColor = m_theme.borderColor_Pressed; + textColor = m_theme.textColor_Pressed; + } + else if (m_mouseInside) + { + backgroundColor = m_theme.backgroundColor_Hover; + borderColor = m_theme.borderColor_Hover; + textColor = m_theme.textColor_Hover; + } + gfx.outlinedRect(*this, backgroundColor, borderColor, 2); + if (m_text.len() > 0) + { + ostd::IPoint strSize = gfx.getStringSize(m_text, m_theme.fontSize); + ostd::Vec2 txtPos = getPosition() + ostd::Vec2 { (getw() / 2.0f) - (strSize.x / 2.0f), (geth() / 2.0f) - (strSize.y / 2.0f) }; + gfx.drawString(m_text, txtPos, textColor, m_theme.fontSize); + } + onRender(gfx); + } + + void Button::update(void) + { + onUpdate(); + } + + void Button::fixedUpdate(void) + { + onFixedUpdate(); + } + + void Button::setText(const ostd::String& text) + { + m_text = text; + } + + void Button::appendText(const ostd::String& text) + { + m_text.add(text); + } + + void Button::setTheme(Theme theme) + { + m_theme = theme; + } + } +} + + + + +namespace dragon +{ + //DebuggerNew::Utils + DisassemblyList DebuggerNew::findCodeRegion(const DisassemblyList& code, uint16_t address, uint16_t codeRegionMargin) + { + if (code.size() <= (codeRegionMargin * 2) + 1) return code; + std::vector codeRegion; + uint16_t start = 0; + uint16_t end = (codeRegionMargin * 2); + for (int32_t i = 0; i < code.size(); i++) + { + if (code[i].addr != address) continue; + if (i + 1 <= codeRegionMargin) break; + if (code.size() - (i + 1) < codeRegionMargin) + { + end = code.size() - 1; + start = end - ((codeRegionMargin * 2) + 1); + break; + } + start = i - codeRegionMargin; + end = i + codeRegionMargin; + break; + } + for (int16_t i = start; i <= end; i++) + codeRegion.push_back(code[i]); + return codeRegion; + } + + ostd::String DebuggerNew::findSymbol(const DisassemblyList& list, uint16_t address, uint16_t* outSize) + { + for (auto& line : list) + { + if (line.addr == address) + { + if (outSize != nullptr) + *outSize = line.size; + return line.code; + } + } + return ""; + } + + uint16_t DebuggerNew::findSymbol(const DisassemblyList& list, const ostd::String& symbol, uint16_t* outSize) + { + for (auto& line : list) + { + if (line.code == symbol) + { + if (outSize != nullptr) + *outSize = line.size; + return line.addr; + } + } + return 0x0000; + } + + bool DebuggerNew::isValidLabelNameChar(char c) + { + return (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c == '_'); + } + + void DebuggerNew::removeBreakPoint(uint16_t addr) + { + if (debugger.manualBreakPoints.size() == 0) + return; + int32_t i = 0; + for ( ; i < debugger.manualBreakPoints.size(); i++) + { + if (debugger.manualBreakPoints[i] == addr) + break; + } + if (i >= debugger.manualBreakPoints.size()) + return; + debugger.manualBreakPoints.erase(debugger.manualBreakPoints.begin() + i); + } + + bool DebuggerNew::isBreakPoint(uint16_t addr) + { + for (const auto& b : debugger.manualBreakPoints) + if (b == addr) return true; + return false; + } + + void DebuggerNew::addBreakPoint(uint16_t addr) + { + debugger.manualBreakPoints.push_back(addr); + } + + + + + //Debugger + void DebuggerNew::processErrors(void) + { + if (!dragon::DragonRuntime::hasError()) return; + while (dragon::data::ErrorHandler::hasError()) + { + auto err = dragon::data::ErrorHandler::popError(); + out.nl().fg(ostd::ConsoleColors::Red).p("Error ").p(ostd::Utils::getHexStr(err.code, true, 8).cpp_str()).p(": ").p(err.text.cpp_str()).nl(); + } + debugger.args.step_exec = true; + } + + int32_t DebuggerNew::loadArguments(int argc, char** argv) + { + if (argc < 2) + { + out.fg(ostd::ConsoleColors::Red).p("Error: too few arguments.").nl(); + out.fg(ostd::ConsoleColors::Red).p("Use the --help option for more info.").reset().nl(); + return DragonRuntime::RETURN_VAL_TOO_FEW_ARGUMENTS; + } + else + { + debugger.args.machine_config_path = argv[1]; + if (debugger.args.machine_config_path == "--help") + { + // print_application_help(); + return DragonRuntime::RETURN_VAL_CLOSE_DEBUGGER; + } + for (int32_t i = 2; i < argc; i++) + { + ostd::String edit(argv[i]); + if (edit == "--verbose-load") + debugger.args.verbose_load = true; + else if (edit == "--step-exec") + debugger.args.step_exec = true; + else if (edit == "--track-step-diff-off") + debugger.args.track_step_diff = false; + else if (edit == "--auto-track-data-off") + debugger.args.auto_track_all_data_symbols = false; + else if (edit == "--hide-vdisplay") + debugger.args.hide_virtual_display = true; + else if (edit == "--auto-start") + debugger.args.auto_start_debug = true; + else if (edit == "--force-load") + { + if ((argc - 1) - i < 2) + return DragonRuntime::RETURN_VAL_MISSING_PARAM; + i++; + debugger.args.force_load_file = argv[i]; + i++; + edit = argv[i]; + if (!edit.isNumeric()) + return DragonRuntime::RETURN_VAL_PARAMETER_NOT_NUMERIC; + debugger.args.force_load_mem_offset = (uint16_t)edit.toInt(); + debugger.args.force_load = true; + } + else if (edit == "--help") + { + // print_application_help(); + return DragonRuntime::RETURN_VAL_CLOSE_DEBUGGER; + } + } + } + return DragonRuntime::RETURN_VAL_EXIT_SUCCESS; + } + + int32_t DebuggerNew::initRuntime(void) + { + int32_t init_state = dragon::DragonRuntime::initMachine(debugger.args.machine_config_path, + debugger.args.verbose_load, + debugger.args.track_step_diff, + debugger.args.hide_virtual_display, + debugger.args.track_call_stack, + true); //CPU Debug Mode Enabled + // closeEventListener.init(); + if (init_state != 0) return init_state; //TODO: Error + + if (debugger.args.force_load) + dragon::DragonRuntime::forceLoad(debugger.args.force_load_file, debugger.args.force_load_mem_offset); + + dragon::DisassemblyLoader::loadDirectory(debugger.disassemblyDirectory); + debugger.code = dragon::DisassemblyLoader::getCodeTable(); + debugger.labels = dragon::DisassemblyLoader::getLabelTable(); + debugger.data = dragon::DisassemblyLoader::getDataTable(); + + return DragonRuntime::RETURN_VAL_EXIT_SUCCESS; + } + + + + + //Display + void DebuggerNew::colorizeInstructionBody(const ostd::String& instBody, bool currentLine, const DisassemblyList& labelList) + { + ostd::RegexRichString rgxrstr(instBody); + rgxrstr.fg("\\{|\\}|\\+|\\*|\\-|\\/|\\(|\\)|\\[|\\]", "Red"); //Operators + rgxrstr.fg("0x[0-9A-Fa-f]+|0b[0-1]+|(?= m_codeTable.size()) break; + // auto code = m_codeTable[i]; + // m_wout.tab().fg({ 100, 100, 100, 255 }).p(ostd::Utils::getHexStr(code.addr, true, 2)); + // m_wout.clear().tab().tab(); + // // colorCodeInstructions(code.code, m_wout); + // } + + // m_textInput.render(m_gfx); + // m_testBtn.render(m_gfx); + } + + void DebuggerNew::onFixedUpdate(void) + { + m_textInput.fixedUpdate(); + m_testBtn.fixedUpdate(); + } + + void DebuggerNew::onUpdate(void) + { + m_textInput.update(); + m_testBtn.update(); + } + + + + + uint32_t __debugger_entry_point(void) + { + DebuggerNew window; + window.initialize(1600, 1000, "DragonVM Live Debugger"); + window.setClearColor({ 0, 2 , 15 }); + + while (window.isRunning()) + { + window.update(); + } + return 0; + } +} diff --git a/src/debugger/DebuggerNew.hpp b/src/debugger/DebuggerNew.hpp new file mode 100644 index 0000000..dca271b --- /dev/null +++ b/src/debugger/DebuggerNew.hpp @@ -0,0 +1,231 @@ +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include "../assembler/Assembler.hpp" + + +namespace ogfx +{ + namespace gui + { + class Button : public ostd::Rectangle + { + public: class EventListener : public ostd::BaseObject + { + public: enum class eEventType { None = 0, MousePressed, KeyPressed, KeyReleased }; + public: + EventListener(Button& _parent); + virtual void handleSignal(ostd::tSignal& signal) override; + inline virtual void onSignalHandled(ostd::tSignal& signal) { } + inline Button& getParent(void) { return parent; } + + private: + Button& parent; + eEventType m_lastEvent { eEventType::None }; + }; + public: class Theme + { + public: + ostd::Color textColor { 0, 0, 0, 0 }; + ostd::Color borderColor { 0, 0, 0, 0 }; + ostd::Color backgroundColor { 0, 0, 0, 0 }; + + ostd::Color textColor_Hover { 0, 0, 0, 0 }; + ostd::Color borderColor_Hover { 0, 0, 0, 0 }; + ostd::Color backgroundColor_Hover { 0, 0, 0, 0 }; + + ostd::Color textColor_Pressed { 0, 0, 0, 0 }; + ostd::Color borderColor_Pressed { 0, 0, 0, 0 }; + ostd::Color backgroundColor_Pressed { 0, 0, 0, 0 }; + + int32_t fontSize { 0 }; + }; + public: struct tDefaultThemes + { + inline static const Theme DebugTheme { + { 220, 220, 255 }, //Text Color + { 10, 20, 120 }, //Border Color + { 0, 0, 22 }, //Background Color + + { 220, 220, 255 }, //Text Color Hover + { 10, 20, 120 }, //Border Color Hover + { 0, 0, 22 }, //Background Color Hover + + { 220, 220, 255 }, //Text Color Pressed + { 10, 20, 120 }, //Border Color Pressed + { 0, 0, 22 }, //Background Color Pressed + + 20 //Font Size + }; + inline static const Theme DefaultTheme { + { 120, 120, 180 }, //Text Color + { 10, 20, 120 }, //Border Color + { 0, 2, 10 }, //Background Color + + { 120, 120, 210 }, //Text Color Hover + { 10, 20, 180 }, //Border Color Hover + { 0, 2, 50 }, //Background Color Hover + + { 120, 120, 120 }, //Text Color Pressed + { 10, 20, 60 }, //Border Color Pressed + { 0, 2, 0 }, //Background Color Pressed + + 20 //Font Size + }; + }; + public: enum eActionEventType { None = 0, Pressed }; + public: class ActionEventData : public ostd::BaseObject + { + public: + inline ActionEventData(Button& _sender, const ostd::String& _senderName, eActionEventType _eventType, ostd::BaseObject& _userData) : + sender(_sender), + senderName(_senderName), + eventType(_eventType), + userData(_userData) + { + setTypeName("ogfx::gui::Button::ActionEventData"); + validate(); + } + + public: + Button& sender; + ostd::String senderName { "" }; + eActionEventType eventType { eActionEventType::None }; + ostd::BaseObject& userData { ostd::BaseObject::InvalidRef() }; + }; + + public: + inline Button(void) { create({ 0.0f, 0.0f }, { 200.0f, 30.0f }, "UnnamedButton"); } + inline Button(const ostd::Vec2& position, const ostd::Vec2& size, const ostd::String& name) { create(position, size, name); } + Button& create(const ostd::Vec2& position, const ostd::Vec2& size, const ostd::String& name); + + virtual void render(ogfx::BasicRenderer2D& gfx); + virtual void update(void); + virtual void fixedUpdate(void); + + virtual inline void onRender(ogfx::BasicRenderer2D& gfx) { } + virtual inline void onUpdate(void) { } + virtual inline void onFixedUpdate(void) { } + + void setText(const ostd::String& text); + void appendText(const ostd::String& text); + void setTheme(Theme theme); + + inline void setEventListener(EventListener& evtl) { m_eventListener = &evtl; } + inline void setName(const ostd::String& name) { m_name = name; } + + inline EventListener* getEventListener(void) const { return m_eventListener; } + inline ostd::String getText(void) const { return m_text; } + inline Theme& getTheme(void) { return m_theme; } + inline ostd::String getName(void) const { return m_name; } + inline bool isMouseInside(void) const { return m_mouseInside; } + inline bool isPressed(void) const { return m_pressed; } + + private: + EventListener* m_eventListener { nullptr }; + ogfx::BasicRenderer2D* m_gfx { nullptr }; + + protected: + ostd::String m_name { "" }; + ostd::String m_text { "" }; + Theme m_theme; + bool m_mouseInside { false }; + bool m_pressed { false }; + + public: + inline static const uint32_t actionEventSignalID { ostd::SignalHandler::newCustomSignal(12400) }; + }; + } +} + +namespace dragon +{ + typedef std::vector DisassemblyList; + + class DebuggerNew : public ogfx::WindowBase + { + public: struct tCommandLineArgs + { + inline tCommandLineArgs(void) { } + ostd::String machine_config_path = ""; + bool verbose_load = false; + bool force_load = false; + bool step_exec = false; + bool track_step_diff = true; + bool auto_start_debug = false; + bool hide_virtual_display = true; + bool track_call_stack = true; + bool auto_track_all_data_symbols = true; + ostd::String force_load_file = ""; + uint16_t force_load_mem_offset = 0x00; + }; + public: struct tDebuggerData + { + inline tDebuggerData(void) { } + tCommandLineArgs args; + DisassemblyList code; + DisassemblyList labels; + DisassemblyList data; + std::vector trackedAddresses; + ostd::String command; + int32_t labelLineLength { 40 }; + uint16_t currentAddress { 0 }; + bool userQuit { false }; + ostd::String disassemblyDirectory { "disassembly" }; + std::vector manualBreakPoints; + }; + public: + //Utils + DisassemblyList findCodeRegion(const DisassemblyList& code, uint16_t address, uint16_t codeRegionMargin); + ostd::String findSymbol(const DisassemblyList& labels, uint16_t address, uint16_t* outSize = nullptr); + uint16_t findSymbol(const DisassemblyList& labels, const ostd::String& symbol, uint16_t* outSize = nullptr); + bool isValidLabelNameChar(char c); + void removeBreakPoint(uint16_t addr); + bool isBreakPoint(uint16_t addr); + void addBreakPoint(uint16_t addr); + + //Debugger + void processErrors(void); + int32_t loadArguments(int argc, char** argv); + int32_t initRuntime(void); + + //Display + void colorizeInstructionBody(const ostd::String& instBody, bool currentLine, const DisassemblyList& labelList); + void colorCodeInstructions(const ostd::String& inst, bool currentLine, const DisassemblyList& labelList); + void printStep(void); + + //General + inline DebuggerNew(void) : m_sigHandler(m_textInput, *this), m_btnSigHandler(m_testBtn) { } + void onInitialize(void) override; + void handleSignal(ostd::tSignal& signal) override; + void onRender(void) override; + void onFixedUpdate(void) override; + void onUpdate(void) override; + + private: + tDebuggerData debugger; + ogfx::gui::RawTextInput m_textInput; + ogfx::BasicRenderer2D m_gfx; + ogfx::gui::RawTextInputEventListener m_sigHandler; + ogfx::gui::RawTextInputNumberCharacterFilter m_numCharFilter; + + ogfx::gui::Button m_testBtn; + ogfx::gui::Button::EventListener m_btnSigHandler; + + ogfx::WindowBaseOutputHandler m_wout; + ostd::IPoint m_consoleSize { 300, 50 }; + ostd::Vec2 m_consolePosition { 650, 8 }; + // std::vector m_codeTable; + // int32_t m_codeRandomIndex { 0 }; + + }; + + uint32_t __debugger_entry_point(void); +} diff --git a/src/debugger/DisassemblyLoader.hpp b/src/debugger/DisassemblyLoader.hpp index a959020..bd16e48 100644 --- a/src/debugger/DisassemblyLoader.hpp +++ b/src/debugger/DisassemblyLoader.hpp @@ -46,4 +46,4 @@ namespace dragon private: inline static std::vector m_tables; }; -} \ No newline at end of file +} diff --git a/src/debugger/debugger_main.cpp b/src/debugger/debugger_main.cpp index 2ff62bf..d52af3f 100644 --- a/src/debugger/debugger_main.cpp +++ b/src/debugger/debugger_main.cpp @@ -1,26 +1,54 @@ -#include "Debugger.hpp" +// #include "Debugger.hpp" #include "../runtime/DragonRuntime.hpp" +#include "DebuggerNew.hpp" +#include int main(int argc, char** argv) { + // //Loading commandline arguments + // int32_t rValue = dragon::Debugger::loadArguments(argc, argv); + // if (rValue == dragon::DragonRuntime::RETURN_VAL_CLOSE_DEBUGGER) + // return 0; + // if (rValue != 0) return rValue; + + // //Initializing the runtime + // rValue = dragon::Debugger::initRuntime(); + // if (rValue == dragon::DragonRuntime::RETURN_VAL_CLOSE_DEBUGGER) + // return 0; + // if (rValue != 0) return rValue; + + // //Running top-level prompt + // rValue = dragon::Debugger::topLevelPrompt(); + // if (rValue == dragon::DragonRuntime::RETURN_VAL_CLOSE_DEBUGGER) + // return 0; + // if (rValue != 0) return rValue; + + // //Executing the runtime + // return dragon::Debugger::executeRuntime(); + + + ostd::SignalHandler::init(); + + dragon::DebuggerNew debuggerInstance; + debuggerInstance.initialize(2000, 1090, "DragonVM Live Debugger"); + debuggerInstance.setClearColor({ 5, 0, 0 }); + //Loading commandline arguments - int32_t rValue = dragon::Debugger::loadArguments(argc, argv); + int32_t rValue = debuggerInstance.loadArguments(argc, argv); if (rValue == dragon::DragonRuntime::RETURN_VAL_CLOSE_DEBUGGER) return 0; if (rValue != 0) return rValue; //Initializing the runtime - rValue = dragon::Debugger::initRuntime(); + rValue = debuggerInstance.initRuntime(); if (rValue == dragon::DragonRuntime::RETURN_VAL_CLOSE_DEBUGGER) return 0; if (rValue != 0) return rValue; - //Running top-level prompt - rValue = dragon::Debugger::topLevelPrompt(); - if (rValue == dragon::DragonRuntime::RETURN_VAL_CLOSE_DEBUGGER) - return 0; - if (rValue != 0) return rValue; + while (debuggerInstance.isRunning()) + { + debuggerInstance.update(); + } - //Executing the runtime - return dragon::Debugger::executeRuntime(); -} \ No newline at end of file + return 0; +} diff --git a/src/tools/Tools.hpp b/src/tools/Tools.hpp index 4585dc7..c6e50b6 100644 --- a/src/tools/Tools.hpp +++ b/src/tools/Tools.hpp @@ -2,6 +2,7 @@ #include #include "GlobalData.hpp" +#include namespace dragon { @@ -19,7 +20,7 @@ namespace dragon static int32_t tool_new_dpt(int argc, char** argv); static void print_application_help(void); static int32_t get_tool(int argc, char** argv, ostd::String& outTool); - + private: inline static ostd::ConsoleOutputHandler out; @@ -52,4 +53,4 @@ namespace dragon inline static constexpr int32_t ErrorNewDPTTooManyPartitions = 21; }; -} \ No newline at end of file +}