From 30c0f71c59e22df9f602b667174cd9d61c0b3260 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Fri, 11 Dec 2020 22:45:48 -0600 Subject: [PATCH] cleaning up code for CLI --- docs/todo | 2 +- include/onyxparser.h | 2 - onyx | Bin 502668 -> 502236 bytes src/onyx.c | 133 ++++++++++++++++++------------------------- src/onyxparser.c | 4 +- 5 files changed, 58 insertions(+), 83 deletions(-) diff --git a/docs/todo b/docs/todo index 80390be1..2d1a728e 100644 --- a/docs/todo +++ b/docs/todo @@ -9,7 +9,7 @@ Command Line Interface: - Abstract syntax tree printing - Running the binary right away using Wasmtime, Wasmer or NodeJS - [ ] Remove old code from CLI logic + [X] Remove old code from CLI logic [ ] Fix documentation generation (broken since compiler architecture change) [ ] Add statistic printing [ ] Fix AST printing (broken for a long time) diff --git a/include/onyxparser.h b/include/onyxparser.h index 18b38ebf..789119c2 100644 --- a/include/onyxparser.h +++ b/include/onyxparser.h @@ -17,8 +17,6 @@ typedef struct ParseResults { // NOTE: The allocator used to make the arrays below bh_allocator allocator; - bh_arr(AstInclude *) includes; - // NOTE: Contains all the nodes that will need some processing (symbol resolution, type checking) bh_arr(NodeToProcess) nodes_to_process; } ParseResults; diff --git a/onyx b/onyx index 25b0aaf11a70d94665bc12adb77f8c336a37fc33..1bc237a991d69d455bf59d97a188f7e61259e8ea 100755 GIT binary patch delta 84732 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Ȉ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π(|9_9l);{u|j$JQw*Nx|_L>VkRmcpn;)+ zA0n6B#~O&l@c)pDEBG;T5%B~Je}bGxJO=qGau)G0r_=6f?C(A+BDSGtE$aIt$S5%32GZx)tY;O)?8H^j9SmC+BnpfQ&ukB${1fK3;B?k7kB`D%Qj9G8fI-Ft_PZ=FPP~m<6+XR1fLcAIxHz7nYlaqFE-Z zb9%@zXm*_0y{Ga9-?;%Z*Ai9-m8&tfk9&Z!ie>f8&^b}jGppBtKim0rmyi1Etz<}m z?x0zF$aVwtrgqx`u+@9Xr~$fzC5|nNSZ-s_5q_~7kP9eQysz2pqA<2fWW5$1<4p3z$<_#X0~G<#ca!EH-&}|nf<8#LAjI_ z-PvFha}VZh=AO)j%)OX@X70^g!rX`1Zj>reUuHLEi$5#cvZ5bzH|7B5{>=TEUuPb` z{1$T{^JM0M%(IvWF{QL zQ2)WK_=OGr$9$7{81rAuZ!kY)9?tAAT2=7~=DN%ynVT}d$=nth&;KY^__D!h=Dy5h zmYNlYyD*<+_Fz88?8*E+ zb1&xe%)^;4Fh??9WG0b)XQcjFW6PykD($N*Z?OE6wJW>sjt%xsT-`mPc5gWqFC^Z!GV!e1a0MLT$Fnp)<>REInAZVA-B! zca}jchp>E|kk>wPYb3kSdezI0?Z5O_Ja`xG^y1PSqUOTsJ+h)DLQ8T#9PFwX(uF(xul<0;k zj-PyYtKQkQES;TgmD)jmj_R@m_H|b3AbAJWbqqnuN!gUD`4!n|o8HOMv&A5?^K2m} zZPU9twqb75LT*9!ZmGh(Tgn^AuQI>dQnuQzcdZ%19MV#!jgNWTb#pc4!51l?fYP;6 zbjn61{B#-$Vd$b7pP`FR>Tvlks2!n}6t0$AcIaJQ9o8szSfk9mWw z?_G=yj4>Kb#QvWxkDUB}_i^v$zB49z=45-RRfvvX@~+b@*tE!J zQ)qs@G6FR|bvk$PPVjDq!HDPA8!B+)(|dw=)tzQG#L?D$wbbIiT1vUE&S^@1q0GY6 zJoX9-+Dc(@|HxJ2bqj+n+Q{~3CEoSouG1ANJVfDx6<)0HiIt`NF)A5f@L_|RUT>1N zt(Ck1?V$cxUF)Oa0&1oVdq{@PdyT}qsR;EHK3m~U6dt7TGpnV1e}%VG_-~mKudVQY z3NN_I@mQVi9RmCsp%}WGGQtcA>!vE4vtA* zdQ323v7Av*DndnMaNN4(_lD~$d{`;@<^s3Xxo`fyjC&|~T`9xE6rSF6D9=AuYEzko ziOArUu2oE^03=tZo1<`(3|TbtuG6I|eAjM?q)Ih9PzEAP8Q!SyTcO5`DGPg*BHO;r zg^CCG&ab-)&m1W6-snnxy;u0_{t~|_VV$Xo^jvncJEg-kN14;b@5`Nm%Ek@SM*6pPvN?|GNG0N$MO$WjN=2O zqHNXGwO6>+eHnol3BP(P{A8(0I$GgjN{_Mf#wq-4rcBTP3#n%X$73-Efn%iMwkoCB z$l%Q{J6u*GZz?0?D@9#YWo$2D-ED<`9wZI8Dm^cS9$Q`EMyW>?y-tT26kRgnB9TUh zonq)zUv0#zE8Myi-dN#I3XfI^3PGF~%|CNx#vIB^MmvQ&50MEilKmgLR52oZONN(H zG)du}w`CFBQ#ngi_})p1HEa6u@#JOGb*itTSt0H)glPP6V zUe`gyicGs z&_@|KtMFWvP-A7hsc?&6DgQv}f2{DV!f=5!q~Z~)d#xD#lVpTQWuPo}7`zfi{Usv| zR*D=HUhq=l;hr)ZQ@qV0=uc2@XQvd04k`XHKSTkLwm1J~PIgV5jCd`xgOQoo{ z!ashI9@>NN{2H(Doq8!>1~bI3WQFf7uk=uf^T`;`*a2Pyy!}m*xNe7HOc^N+oKz7` zAv^Y&iHzOUuzXUdb7l9N?7-^#A9{0)IwsDVjNTv3XaGK!xjFU!Vf)> z_(+xGy9%#8R3@~yi;VD6;mHXSf1&EcH-(4Y;(D-W_pnH)B({=znw<6r;9c4Bsvd8%Mby zg~wl!_!%YNQQ=d>S`Iy_@IeY6cuC5yQTPOfw^8!7WdDZ?48Q^^D4ptg-7Q|++5)o6#g(*;=NS{ z?karE9*Hkd_#X=Q*(>ozLJ!uz&x+w&N|80r2e?bG?2{3CDn;%J58N;D0Sd3B@LDRN z^%dS!;cJ!rT$OeBrYk%$UrLG%1my9l8c*osLlQUY zS+4N2ze!}d8g{c3KId4ttpD4UfqjZG;)IM4ukcd}zkEvK#wph|h0m_iN=QynIlHg$ zmrBo5g}+dE^RrS<5>f5%y<%)tl`%>gCRQ?MqgAss))i}oJFS+Ab}M;rg-84$@pNU_ zU*Q?=BtB2chgo6ybJtB$3lE|qbXO6kc9wnnI~8G=5uXz(kR3{Xy2A5YYCp2pSs#DDZE5-o}uQAqm4L42LnKU?{-AufOC& z+|Mcc5k4Ny&pCo$~9@CCyW3_cj*Fj%q}XFGjmq`tDP5)Ze@Qq(y7|aAE zZ@&02R;fxz*TGPOCDyDS+e`}R0`SS_Zm#OR9zKn=-%nw+)ssJXORB5h1M%4oLkA2I z3TueZau^z6XoVpX1D_vs#n2N&4-B}G5sS@Do!V{3?0?G@i9mdq3UU&o`dl@g%1TS6=2-+cf;2rhK(2|V;G3xM+`$SY{#%01HVRKSc)MF!wL++ z82A;Njki1uxfqsU_!)ychCLW^Fl@r$f#C#(A21BX;E91>`QonA9l+;)4CB=MR(y`d za7w*j#AgPE8yK!(xQQVe!*O2z{JM+bK88d5MP2LhIR?Wq3=c3o#c&kEVhsG6fngPf z%NTycpuN`Ni$8{y7_MUY6~jRcTQK~N;a?1oF+AbE{RN5782EKd9afnk?II9)E70Js zj5M@k*Xmf)*Q?prItCWd(AKQ+>B?YmXE6=!Y|X_x*4svsW4(se_A{_m z4K3I(KMPBDO@ylKNJB@Kj;Nmo^bwibKT$j+6g-;~=@SDGeXZD!NhkriUR z3=QhXLL1vL`+C-v*&4JS8`s#;N^ewy&-^uPbUg#x-q@VAMBz&s;Rft7D$c5BVOgM1 zo{UC}_&c&&h`!dK{;aOQqci81Tx+F+dDfb+7=K4AqwBeZ^;%ZDKDyoC!m4aZ3@oFy z>?efJA>2#@`>kb%5dQ3M;T)iWLzD?_HjsHVu@mJVq>+f!NCdN}CXURzfrVwX1`TEL zi1t8qtOjktb|ae9z=FoDWjh-f*vlps&S4tGX&T{hX44c4099mY&!hj z%qGy$d5A`Th9=HX78-~p;g2PuL5H((fwIEz{?vHoYa~XnOpG@b<6Y9Aqu6Ccvk)!N zpko*b!csx>wFVu>>LP011WP6JzfzgNVi5I5)LMg1Vv7(RhN!y+ox+YFnvSTS2A#&< zAbJ|n5Dhwmc?6^Ho1pJC=qwf$jMcs=R(lN^%i)7l-13S>%!kJGej8~jScpZC$!g;77O@nS=HZ9QWh-PTeO)L~qry%sY2F+sQ5RE`I zUxRLCnJr}Ew;9di^O8nlJG+eWvM^qO2HnX>ORVXLzSf}GtS+MF!B_(8WeM>5^fQZT zi6sz>C7{qUi0)yFP<9x~x@*vV>&|jEGm?JAjG*W{eU{Q#A zhoG}H=ph!5Xpazd_Ifru1f3mb;hc}jFkW#Q;Unx33g@AUG!1%;*@UCB5zSC2&)f+X z8t%xK$R$_ydKMIFU^BxltZYg^9AeiqD}=X)TR5N6z?U?-PP5D5j?QN^+yV{vEF-P# znj5?B;%w>Q*Gj^Oe^z+0!nv!zn~`l`wVNB*$W|6sb{a$08(2StS0U`6f!#N-pAbIR z%A%U12KL(^jdSJaG`Rl;cBr|bVu*%)LBo#Nz+NFcQp3KaVfWa;Dz`9HjMlKPXxPIx zunx!`t6}r`tMQt;fz3vCoQBP(xW+4K1KWx0G!6Tfk%!Op4eSB3Gc@cw8g|wOX4TSA zFv*Rc64*?67az(yncl7?MiC88>+F^!@)*ALR4cloW>xXQ24ZBdo_TI>TLbjiV z{X)a`-^dOjJ4C~NsbNQKWUr7NsbRm;uzPG|mBX>THSE_K_OOkt1G2|z*nex-Q#Z2N z;f6MG8umL4J4xZZjsBy-(=_sYyqgxrep4Lcx(MVm=;1xCaEe&2tgBK{AXX-28t5_UiFudwoT^EsJ`ImSEzQ)Hl zhrheBnh~LffB&qeYn^;FB1OMLaJk(2u58gH2Z$a-%;<%CEF;2&`oCa@BKlTni_%G? z!lAJD?NVGVy5{(_?q*i*`Lk-eh~!g+@2<1?9Sg~IHX+itT)|Tb-nf>N6{#oWD%%+q ziuc!1HG*o?-HQwm)D)z=1(ny`hdzHGbbjsbMYl>axQ7=VBgwcP zKD41EPa^s6eIaYn(}(6rvQtklI$e?s(I%3--P4DBWN&&@Vs5>>NWP$=k(w*0%w9gE zm7t#Y@?o!gxUgEiedzJKLiYqD=SXsYZ!a1y$&W~uy~{lMw4^8R2)Xz^UNlLPN0DqR zNt3=_)KZcy`})wcw}tF{M1Q)?cJ~dYQ4+D}=SA%$*}k6_8{Ef*{nXEgvRgv_8gjcz z(xJZ(wMDXjFuBIw^sU5J_4gvn1a-f^59utZs?lD=K~RIDz39ywLdixXmrL>)lD#Ea zJ;sZ=N^)3?7kS9y`&VLHkjfO)ix@9fCfX&(cYq@?KWe5+DArX-WJdSNV($=wuv0{ec|<~yQ;~tkxw+2_LY|np*dXf&vbti-qevfhV)`-eY~rmd z5F1CzvdA&DEA10$;Hs6L_DCNQ5#dN2afO$zX4Y_FnVC7eFs26C%ZkTD;5~F~DBcss z_Mr!HlVGd^-C2tjkL^zOu*h-q@P2FDaFWBCj}OKBobeOr314PC!GZ3RkIlZU`UF># zpUrg4D%-&NPH0SiW=khTSl&EVO*f>%4RnkCr4M^Cp)%rSCkE1GJ}hEl5ZTSBkt zixcbOolKfzF{TFZh47!{;2PM$IFf9(Ws(m%=-Q;VWEXRv98Y(dflW&jSC&6{CfUgX zrwqV*#*}Ehlc~962ire&5ZTTuPpfT_`Mk{x3TEr= z+0ALZ)b~z5Pqwmz8U5%MGpH4>cVx|Om1Cwefox%`X3nHpW^iefi6g5!E0b)_xjJhC zA)8pM*r|BWkIf((Sqv8BMpiz46WPFij{ljgXM=w{PS)r6B-j(I+QDt?kUFCN3ixtis&oWG&k=_iV*ASdPhwNngKxi%5|VQ7bIRIkMDwTPv;>?6Hz9 z9+JJoz@m~i(Gxq_hos(Q73-QjnKp4?=acK;%a`P)lVr2|<630{7`-$nJI#bRED@~GO&V6WCG7N~ zwuCYJ#i4Et`6-DZU(f-fA?@3!k=)91CN6d+SXP%$7}y2|WDyHkvJdZXm#iXbEN$s} z#cQ)Hj4aGaTh@nIn3pl;_N$qw4m(qsb-Ei#Wq#=$@E)7qKt!_7Ih|h3lq9piR&^vv zEO>PbyeF()VG}=$dnYU|CF}qn%f=7OslCR6U^m`u?ea2-JiTGBArs78*!#8qB$4@L zbi{jH2E+U1tePw&vpboyK0Q;W+n()M*M=nI6tAmI$d7E?BPSNTp*M+VD>o#N_#C&5 z0||*`37eMV-F5R_GMjza+}R@QUvz_LAZz}GH&z5I^(;0vE1Jwg6A5G{OV6y!=59G; zk^Rmnxapk~>^6f9+uBI_r7S--!=jm-$_{M>hv}I3RQh8T{0!#jRJl;S5JlV0_9JJo#bcH#5N3n>nc`!-; zB(UV19b}wvPscqCk#gN!g>Bx`hK$YmdrvU2I96!P=l(*O&*5WO*L`l7Ox|xV+802^ zunYSR)6r(&x8B5_t_JoMY5I z?!aao>n12C_TpGLi9zh3MWfqBZ8dKTZKm6!u><{j!qHsx`ZJ@=AU@s9j)k9SL896G z6X8O68`{65NT!qi==ETB@S!8KIOSyGbgLR$INgB-ocfjY%PBsE-i~GtXZm~hG2_nE zjX{gX@?FX?9EggXxu@l56wOwh=|}poPiK;8Z!;KO1H0MvXXlV!%==Q5WWzcjIaj$9{$2 z-dL|bU06!Gu$6n9dlmX@F%o=$vBcp+U4B8Wku}Tnu#+SU2@p960d%}?OF3nKR($$mgkGJ zb3T(u)!#ux_JQjJ#U0Zw`F3GkJJ#V&T{ISVXBTP1{O;bt(k_3ml6f?a{^mG?fJ}!n zZmj*i8vhgDf3Fp3&B*;l$i05wmmRuq5L5=vMkhbWCgH5jn<}jJ!!Agzd3Xfx(FL9G zo>Op;w8WxlW)X4F=*FOf(v7cLuuG5XtNc6t9!grUUcaxT%}bhF7HQ7*J#J=U@~biG zhhJpWEuqZeiMK`WFGj`=#poN#VxIU}3@l;vlnjfqp=QRyie`tOcw_31e6};uhy236 zKAA|5b!HQv&T2cAu*y*n}g=PC3?RL+U# zPJ{%o2ZfbwH$;k9B^A*+kXaS&MCQSwA?D45_4FcG9YQOzuov}7GdAr-IQ`gx9eEK; z<2$hCf4uQ+BBZiXaQ@; zh~@lsk2GXyulJJ%IathuE@{O^|J{kyXGi{CNcV=bPH%naqVSyAZ_87|qL#+>U(6O` zy1H-S=~4^8pX;y#|BNSfSe<`=Aa!z9{9BEX+U&^tL9{rORWI&MYO#dkZg{^_9E10O z4^GZCF`+4mJ-&VWR+Nm5uE>wKyj1<+5H{*VZ&H(;`OppT?jK_+3dvM!l#ECw7{^Ia zrwZ5mvXvim>-q>q1(;vu`&bKsltig?Ch7R$ZGMmH>u9nejR~y`EQLJ z4b8Y2obV@}mZE(Aw5dAl@ogfh#?F89t>ncOh22VNUyzJ#GwjxxV_hSXpGL&LEYLx@ zcV^Z5CPvGQmDIL)8KnTH97!0X09&;mUl$~|Pmd6DDeSn>XjmFo7m=Je7UScRB%$DI za@eIjYh=nrd(4_@I*6QSW{7p;8Z}W9Be_W}zzZbLT}4ez3=v7fY=vcLop{r;lpep* zdi=Q_V-ivm1wXk3SCp?+v=9~L@w3R*$@zJF@`*hk%4EwWR0giLvQS)3M|qdm(Gzg8 z`;h#kHA0WRT$ ziw0DMC`!EP08f}fNy`p3F&;WO50&T1m6>JCs%i-FQq1FJj?K7c zcTGdjClz6GFmtET^{7cK98ptOq>p0cqt=+bxQG-Qk(@e}m$^s+KUL=jSmiM_;C#B7 zW7(8M&c#xMs4r&rU_D!3-u`cQwDesv+P`Lt#yHZ%VGz@RI@B4)6{eJpAV)<0lSxq( z^q-1?%U)a&A3>)REMneN;IavEc2%<%o@*t7$<>P3d54HZ+WzMSchQPcMSByT=A&i% zbQoTqc*Kf6N%hhxnl@P&j-D#&%C)5GcQlZL^k%HHa*&>ni0s%02+BA}XJf95_*Voe z<_RB6D$Ln~3z~!vrWNLF6NGt%IlSxoW1Gk_mKvNlCFWj}kXdx;b4i5?!SwN}9l>3c zoXVSJo;!FvCRM4QTdtd)6yXQOkbT?C3Ea&|Anor8{mn@Pb#R3(=HvoxSP7<;B{j%a zSYMVzkjwD0ED0iu!M7Y~K|54}vE?vQg-Woi9BE6A!l!biBl!{9mM0x)m5Q*cJn2BL zz#sUEXfq2$>p8;$3(}fAha31x0IFFc+R6#0SfcEEIB7{nkQAtAMRLk7{0Utn2D3zX zZABbuLkB2ZflRe{n`&efrHWCGEQbvh$UU+h;;qS1@&Q`fkXhst9JL{T&{!MTWlN5b zb1=>h(F^dG9qB@+*+7^*=|G#k`Z*gCA4!w2Y6V*Y9}(EECp|85=mQHz;tJ_!Xi4sn5b?EGErvbz`r87 zg*mmUM4HjD<)A|)(u8b;q)M3azoD%QnS{wX;zHVx-C*I0x?{|tuPd51m_wE;I{75L z=kVk*5K$SkRjmx939=pR|RcUHvyUHp_0kMZ8{-i05`V+qR zliJkd52)3IG$bovU=woO?D`*iUC~SkYL2xjtSRYiHi!e|VHXGXA>jY^1p+H%=kk%t z&SeU|%Fg8$BC>P&MNr1h#qvdNXfu*Us7Vq05kUHp9B30r&Xsxg9JOuM!<$CL5gG)M z;WYL+tPLU_Rtuhrtng8_F#0)M2*PaoK832m#NYJMGh<#R1e2y@E$j>?b?BHU@GzJ( zq!G`+5JL8t)9TP2qxyY_Qa3G!{_#B ze%dYQ+JS_)U@uNDC}TN&fG$1Aa)t1NzR)rKck0l{Y+dTrx!_}W@o^^H;E?iV0mx!NYrWg z(wjKC6rV-SxSYX}PscX`QxhZk1M6D=IcWC)={Pr&B>WG;4xwQ7jC#iZzo=&K4r9@HK-xeYT~~HAvGCqkHDD0q&61Wn!%(&SkRsSA-a?&r7@p7 z<$c4-!7o{}?f#ea(8J(3gt(Dq(0B-`Q{8}(BT|KBnd)`7jj68M$e45IM*rp9swMtd zvWR~;i-k4pHtZWh5^3n++`ysOnVEh>rtC0#4Z{)QAfyc=)v7G}Rj)f1*u~FvoyueD9LenufIO&G| zqlhofuP4(n6CV6PzR+=baDN1jI`ytWy^$n@+SZlqd$3?6c7k#6Y9tAzUHt?~eXc^A zQ6z+X1iw+liC(_~4}TzDxo1a_Ks|YyYd(RDr#Q&Zm_&B9u)Sa`myqhla%m)}Qs)|H zcItI_Ha)-_$Ju!POI@rDCfFi-dc&y6WHgP+hWnFAtJV=Hhpm@4zI?gT5nI!ZWS$Qf za&yP>+N0BCZCZhd>~4M%l(D-hfKgL0$0K*a(J7=!WJM*G5?1(Mm(*v6u*KK%X}Fd# zN4s%Y6#qV#DpUBX3zeTLG}$E*zp5IaB=A%(hPG327IhkyP9;ry&)SB1aKB5$Q%5fQ zIfmV6(G7$cgMl%PzpxspB0^!q0P4WUJOe0MjtlcV% zt9!(?mcC9eGSOl*fy{$_aij+gS`XIoI5?+5emu@LEY?BuAIUn4 zVVRgKzEy#1Iv|HkoWMMR^g^EwOdwTEPi0{L;OA7v$tpwE4w>zpuqy!t#UAIix=M0?~7bL(6#;F=3i1_9^@W7XNQwB}E_2#p3fLM2+XZJLP1|&_O4ep;2q$ z@*Gmj=BqR3#EFfP6wBAn)xhHoaUewaHkh?mCY$nuv1%#)PX}p9|ao*vx96W!*PUsZO{fR6NY_OE8(%-KjT){ITNA7bH zP`)`N-jbcT6O4ORg{_xC*M(Tk7Q?R#NdYe5R;7_{6?!e>3UOnFZ)EB}9A-9Uq6zZ|;X$cz_5%-FXEqMZyd9mW! zJ|e{iH)_0*?`8=P7ZFcfN1HAt-Z){dwU~I2ozQVH8EqcBNMz1mf(8y6sQxQ_<1+Wa zgW*m<8jND3G8qR87^zezF-;@`*A88?F&SC^Z53HIEiY0K!c&lNBqAck!Mi-%U^urV z<>3n>gDT!#D9kM>CwwUd^HI?9N0_mMOm-+Q8LFo6@qJ60o;@022hkhN%)o6anL_pf zEG4zdCyA7|FF-G{>^Dv@<|J_;ttGFLhWFDr19VzOex^Orzzpy&B;16#K#m$r7hqCS z^*2v@{a5=!7C^sr(#&R{nMj{1+OB4*+W!gp>Esnz1G|=!xzsTg8m}P7J%}k6<|Xmo zMC6|jCI8id@hRZ45*LMy7C?`cB+6lZlCYb3LSy$K99l`HV(o6ciUgIfo`Mp%+lvz< z@LNLanxxFrFI$EiXs1_UpF7~G9<6TiuM5hT0=tpToO@3 zN}@T=bwpj2yXAc3;2)zjJ}OL?>@Wu zz85!{le;nlw@Rz5i5FI~v>WXe4h!Ktbb+q$d@i2Xbs#nmJ|dV>(*Eltihj$k|1fLy#!Q&2aC5-HqOq3%&o)|inB;l`?LR)C_weRo(`Lt z8@>fwNkHK=VPes{5(#M{P6Eorc=1-s1P*FjNq@U9Z%d*os{=U7|o4m^mf4-cB41?Z>|=&9a^ZYqCk6*QP%OM;S>MZ>5abP0F3In~Wj8 z1IFpGAj8r{{?)7qC!YF`f0Wjq1r9l+pUdsB7$H?ZdnfXZlL!Z{1Scu*W(zUoZpNce|%E0ws(qqzs{At0AH*4`rJMQ<#2p7|%wsCbbU zFI1m);Z7&Up@W{oid<5WMm&cPU8oNfJrjo^-${nE4CIF}My#y{Y=En^3ROmpz9=*snMNT>}e$C7IM>7}Ps}o0l6Q>i|hM zR2nK`*l*Ot=sq;J)j{mg$P*ZTh_v!-SAfhC4+n|2QmNVx*A9`PIF1G!#(mY0q43jT zT;f;_h5W-Lq*l8@Xe1@^7WPM?%;XWE=$z?Z=#e!}ge(2K-? zd*=4X$spP?8m1p7<7iBO`13e%v3tuWS0!C9@2E1tFT&WaB z$S)bti$4H6O+u_|@R?tU4=UY|KFEQOr@0ULRIemaJkMSFK(908BCX#Se9w{|hBH0U zK&n179R-b<*7t(tXGsIQI@e0aJ`V+FNtE?(SGA17dl32?>1I9ndvqUc{*AQuun;Jw z!jcNA)Y5ZSFR(dBy7@otj_D9%B|1k=k^FRS=x7A{(IRbyDAE>=}*CQ-yV-VD)vjBP==S0C@H*uEn5PrHrdO8elj}cS#p4u3h@c9NF zrB#iBOSf>HQ~{iI^QPY_UlhzBss5>`v`?m?O?}kGSX1LjnLY3zDDbq zHc;mdo?<5POK6gnaLg%#+ZgRcc3e~3I2P~pn{V-3X z-7F$E{T^vfaJ&8PebUf1AY6#zc?q9%CePJ~jthrc4@hACk&+N(49-kbS7@ zLIDnth44=SVTR+)g^FPb8Wp-0u;vk|>huR!FOKl}ETUw8<#_JxN5qQY)_LLYq>sCK zD3=n)*)luV<2AaPhQgr7SVQz-u>Ub>Qf5Bt#Hs_A_nR3YvWuB{uHzFDNk}3Ldx|}I zNORcvl=OCAxes-S)GrcLsZQbv)Odzv9}@zjp5bo&3t-QPx81_o+%Rt|{2+>VZkX3+ zWKf5Sfjo&E1N}28u3USYIv(GmKa-Nf(mcvTK z`|b5&QCl6TRRH)E5+BQoB^+zXA^9+?5I>w~91NQaNk&b5Gm)%p(9hA zXxgc7Gni0Bnwv~%s)wi>)B(;HksnO-P4&$6sw<==Q&Z^uf{ZnZZ=#1xHxpMH+64Z5 zLDEff{q^wZcj^k!f0J^s>ksk|?sjf`iKpWB0dV#uxm|ZlBc6yvYaEb`p9eXK!CAO6 zRc|u&`=p%7z4j-b>d=UWVD=ZTnRn*a`HMUv)-QLUTuF<0utN+xbaH*@XTT3gI=mr0 zOy<_p!yzA&%5drp?kIeQ(7(w7Z1ETVCUvd<*~X)*Oc&Ov4;9{$I@bHXLv{6`!&}nd zZLOb3viS5{lxU0bB8{?3x(w&u;uwl&rf;!5XXd)RBmMbt&&+?wuef{Q|1VigsUMvC z7t=5g!r$XT-Z_YWPXg=*juvXL;^3DwQrS7U{2q@*d)9%a#bhjQdzgJ7(`frz5dQ%W z4{-0|18HtQcI5wyw*YKDl01{gzUcn<_?vSz-xxtIl+{&diPC5L^J zyik2gScb8tWtG&l(Zhtgk_bEDudgJ_cdw_25NC{#R1)F9(C;JMg`?ld1UjYK(#F)& zI&%$jOKJgIBWr=L=iUT5j*?>dhf@5cAKIDFwzOeYSZ+dVQ8Vnk=aXvi%7j*I)6$(A z7MoLYqAF&JqLjxE{ND0#E{aW8ZuQGGg!svbJ9c^vmP02~np?Al8`md~hHyWRA2g|o zy=Fiub#Bm5Pc!M{%J8r}b+Y*o^F4nR;19X#lLzMOkX&G?m*+PIMRT zS$zG5ol4;VR~T8AhTs|JjVgZb=N7b~XTc)WRFc{&;;mF_abjmlThN{rA<>f7 zptUPPwk3_n1w%b6EQ1r!!-_U5v%DgnQkh%8tHUM+$hM+$Oq?8KJF_j@>-)q8;n`#b znpLx-1y6OF{t zxRx_|uZtyqf`r|WmnCd*rXh4-IrzhwI@@?hiMS>0A_*KS(w<&F&CwTqCT2 zRivTR+!Ah7q&4xIGLuSl5Y<~khzqR?D=JZIlPcx)kkP=bzRO5+OesG;6Mfw5j+zAH zRJjsuj!T(f7uuY*EeH4RSH_+QH8pdio_I(Q?M4UEvSr|e8?C{2T;0$OE~Ze=oi=b-*!KUascH%{ z+-V1DR|bA_r>`6s)$(gKp*j0r_IkY1}f49~e{aCJ5X*JABKvmks;ebv^yo}ID6vM`GE~PfNF5Z>7Nn9;o}XB<9?J_US-M(J)>@&H zMH9nMwCrlo1$f?+QG+fvRQxE^d$rK0@AeTQd}si!DH46KraF9qGd{E@ZSxg8ed$md z`Uz5fX@iC-#lk&#{38MMl5uWvNjW4{zdlqb)mF64@UJh;^xgYjL`^fs!OtwzFm6#2 zM^+b{kJO|+_-AdksK5J`aXd%(&vLDxO4XXJFrgOpp>FSCZ7tf79D=`UQT*Bl+SI0@ zd>^Mab+u_7Y)q6i@ECrnO{Zd`u8&`_(AZ+=Uxzx?I59>V;)hW92{&&)srvarJStz1 z+)@h?t76EgL)~f3VwmPfYr$W2sAtP2?}STrLRzg$CULA}a+8W*fd8kq{Qpzi{XKN| zqwZu99H~QV!zMrK>G0!Qq4mc=k$jo-t08Ua zmm-8w-ZK7wMf?2v`)Kzdvmp*&9YD7W{01)+^-VBqM#P4Ra}_lnkY$BU2V zPZhpU*g}cD<|%lluo)T*Kf-H7$5XdIp-yA!WIMXC&|fl+g#8IU8`I$q^YK58z&cW1 zvSs<4gqw}2M~w}bPj0=2=F9gCg*j-jRp8-I?E=#k>rdnN?U=A73cIbr(iC<=V#PcI z*p>Lx7>DV9h{Oao()eN@Jol&GxcsngLhJk5B8z{_F%NSpYxk>$T$oQWE(^-|F~>s~ z-Go*ob8?fL;Bac1P-u$B_1&n!E}{PSp4d`o3V&V4)zRp&!~)y`sAIQhf12uw_+MH! zI{hgJ_@8Dq0#7)=|L+AO@R$SqFH#tR-#PGD1H6F+0n`n*#KJ98ty(8tPWb1;}e*NKM=K?#3!<%&X4FL+MDUh zr=~hqyNv;wg<`+^51bCAjcCx5WzFee_vepL6Q3?%4B`9HwKV3Oe}}~8*u6OZ4x5|P zU_3Q_-kf?i-;I%q#Bw=Rek>LJTxcm4!@T}VZ(|Bh3#wGBYk`S}NLOme9oT}}62r}h zA~SP+HHPg9Af+W8>kuV*owU4Eunwc+48J`P(aLC9WgY^A(S?R;lDEW1qjJCl2neS= z%xh)^_)NB>V>>P0N=?pMJchQdXrjZ+dqPXg z8XA*%@U#`3Vt9R5u&#S+ST*m#_y{`QahT+d)bcjmRrPpl2<}08wWe)dNAe8ueuMua z$=GA@B0E*+aUW7!)1eMM?g%Tht81(*fwFCAXZ)(5ZyQ>Zwzvl=ZKx-8y$8G7&<53p z;(tGbN;Bl-EL)cU?rI`_N%w+#%WY||p^edNMNc%1pb-c7pM^9wlYh_wMMpKj987c3 zZViyYfea1sBL^00fFp3OEp~C{SRzG(Ij-8%bNII{O{Gm9Kw>+b0RI6$x5EJh4-48+ zXKK<3KDEP@&wB7_kMpS{=-Qro(>k{ywmmK`YTSpt?J@J^@5AHv^t?&+s$S4*hFO(Z zeN``A5&zRK*x`Jxf;9gVH%Pzb^zV{>!RZ^4e#GgslD@_1Lz2G8>7ONilGB?ceUQ`Y z1M@wc=6}8v^>5?!kGkA09dT+y!*4)(6m>U!cMTiGU)!lSJc**V<<0mMSu|q&W~CFK zn_UCPPP96HkrCX9x&}J6HS(4zJn`i}11g+!QA8~iXKPDee}z+Bs0}&*?sUP)?iVQT zLR;bw5(2x@dS%aF;7QZZZVNT?h=-XT>F#Y|ZCC1VItf`2GYgMvUU#M4?Dti|Gz-6# zEMgL%S2xv_}veqvZXIq=^u{fNJ^0}{?%~xt z3l@E_nOdBM=6z@*nqNe<>>9jiv;|HKr8tfQ=N$q_M-VUI? zHMIQ>F%@Hh3N@o?eYCSps^90ZHesN>QPI9bAv!G&1u5%eq79gt!zM^amAI3UFm zMxt24uTt#MNcxSo!ynCaZN;NdY``yEEQVg(FC~_a#&uyJJQ{_YCuPQH)Qf|vQE*HC3%AFXGa!dD0InxO! z_i2xmOPW9}2u;tCa@!~3>}w|+o=AsN`y44TW)hd!jX#0sNoSK$)2ZE3)0N4nsn+gX zOj&C}uk4Z{DU8J*})@WFEX9>pwG8U-F;_Z0>8l68R)nX_zi;+a092A*rxAplTyQHVhY}DlghGY zqO$(mG_szvQ1;?hDLZKv%0AsHW%tZN+0I*e?Fa+E+0>sN$Di2qe8ckSNP|la7{mnKiqO1a$kZ=L-6qJ-H+I1-h-$F+)*ipNeQ@nKXwCLNTADTyMJKF9Na7V1J2H& z)yvJm^`rR0$sf)o(n?@R#9fj*&^Zxf{tHtQar<%lIyjz4m-sGu>xr%YSl$d=+Q`;F z9ue6fBLrn^{bwOzF0Es^bp!VFon#9vghj6S?QuF>pG(L2Uj19D;{W}LRJ9usscNa9 zjH>RzxOup5w;7hrqh0YknV0i$`woA68kI!bTi)Q^faqM$*^AEAa^^~Og&4=sEJT}{ zdC;Jh@H∾St)nWNaewa4wmSrnV~}U_MUjoHAj^eB22dwH%Jjr%UOxbclM2)n;}I z?Lw!g!?hIJ*u*2<6fUmT0|hAITEX1~v^~!F!6y|(ep_Y=yE@^?;SX!|(`e{2ja=QI zXnWkkjQt5G%E?QYnVY23Z%Z`%2@7d6{#oim`V*ct2Bp#EbTE_rZ)tRb*`39FP74_W zOx;YDE;fY`*_e{@i%TTR!NA4XfHHD-EXKi*)<^^W5}HoeE|d}{me6U`Y9WLyrNi*I zeOs2&&X!Zl7#%mdjBp&KS>jY>9?( z|3gF31EYqV{{$mYu;{7y#MZddO1#8hQ}yV~Rk-9o4`Wx+%CtjSNW&+u2CJw`qq@5!`IJ0jjntuRL>p$C!^v;I?oOTff* znXoZ1dNp;U9g|_7o%%Gx8(0vW9hX3V}(8n_>e+e@h7OtUzIPo~Y1~=wAB!cx? z+P%ipIT#;n3r`_-^woIP6YBIczM+|vICt(8{?q#--A&wJ*IH^#Rzv<;RMC45m}JoI zHh(7w75+*^{S+9HLATY6y(4>~A8^M>R)xNZ$f{rvl(8qWm;=o-X#?MA6=Ot6jG&Sj zuHVJj4w;!W#FBmDNyLAa$)7yM_ZR!;fcr9BXO2z=_jU9TogEJa>!_b0ARg10s=s}U zr$D)GYCKe1PrYq+3N6OAknzb={FsCK$HV0H*syW$ay?yz2iG$B zv?*;B2k$rH$n6vdjW*H7^%oYSk&=cSFWySk$(r0ma-um;1b*XK-*(85Z8`(qWzqAdGp6GL&U_oK0?)V5yFS0*D|!j5BEMv9 z3b>3qgnKhSh{}u0;=)Dnaw~mhXnN^?@bD**+pu3a2-e&2&^2%xgl?yfj)yP)577$K zV9a*vQ7IXjGH(O;*jeJ|E`N(kVlV%~YxOB`YC9d^arF(C;kh~^s8S2WmeZik4qDCk zRDW6^<-{H6K<)bD*``z?QRXW}j z^CCa)GU^_BR>(@lb;sw9`We?0RrZY)l0CHF4s|%Ak$jq)mqS+*-?yh^*1d6vkfnGT z5t-~?1ZB+nd5GIfYuCJ}BJkaC8DU3Bgk|4Fm^cRR?8PmmV$koSlTGSQGKJWiqzYv0 zqs`qb7NQkVGS-4BRWd0+b7{xm`p-}*K0h0$PCQ9!>pyHFjx?@V?XZU1NQubrC8~0X z#yTK-sFS&pybjs9)B*nj$jMwfE_UzFP) zejKM?OL{V=pGbN-r*BDmHmA=?I)T&qNXKI2B>u8TGEzC6CF#YSUL|S9=`=|%;q)9y zFXi-9NiXB{NJ%f}bhM;bbGnP9GdLX~=?zH776r(c|6}W|1F~qo_hIju-6aG;1wkZ5 z0VO3AR74cSKm=Pv1-rWwyE_hccjBXBK6V#&E4J8*f&E^yBYf`X`+NOE=H5N$y3U+A zGdnXoGrLaQ2$1QGB3(+Rw}`a8Om7uw3z^;~(gkEXU8Fx*>7Ljw(l2CMzkXMyb=^#v z-YjH}>FE)w{$sb%jZH@BWk%^aM(GJg>7hpHo<`}mGQCNVHI?ZNA{{H!dWNfxF!~W} zl=d=8I~t{}jnaxyI=7IXdmZ$(Q94Ve*9hXPGA-PmeM+WRj1WKe%O85#Y?J9F;`%C? zUL?|KGQB{gr^s}gNTV2(gFkUwS*(%`VFJyGOF zk!f8wx8VPB|5~PX-7KT@RU?^G1!eoMEAN*#^uXC>lwKv%dJfWLS~q%%OzXO-GOZik zSEhC1jxwzqog~w`ZoEv-IxgD(DEULLPN6cbS3e(_*6XYIVlmviLFCv*rniZ-sZ8$@ z>7VAh%zlx6FVjavT6{Gbx~D|?rc7TD>2pYn_W!E*aY){{Ez&z=I!mP2$@DXkUL?~m zMS6xzzZdB-GW|uQ2g>wMk?tzf>;%%uGOdYpLzym&bp7m_@`t0iQCX%vMLIyH14X)& zOoxiJy-Y`lw1rGZi?sN{ATkqsB4f}Yw#Ldw$&ei?U-U?1|LF0qybjeuJ(bs?;*F?I zCRz8-=})l*+|y4E*1X4JjrD=*XYl67NnJ} ziNMVFom){aiJO zm8wM*@8C7X8|rxn6Hhy83fj`NttKx_nRhT!ZL%?==v~&*!1vWq$bq!_bmAUX{ne@= z=5aj9@jl+OSl6Jq`*=}_)0FPxJqR}D+-LP1TShCw-~HE#4F4TBE)dr+MyA8dxlM-i z17^-x+Zt5%A=`wU-*^a1wvpu{tSQQ*7LSnUmXVUjYW0LQW&_d9QCX*TQQ)ms$b$U~`me^%@=(huEu zu@W{;j6Rq5Gq`d_#g~|AW2-}{yE)dwE`7y1v!GB}4uP*(5YCxu|C&|64F8hXD7A@n z>@};*eJUvW@z~_{1`}l~%1im9Z!pQ5T%LZ5zqaKm>@8lEzNVD7EPyWzQN)q*#0rN< z;fC*6m{^+ej#cDif)z?0rFyXD!Iblk`Ezqzz$whcQiG)Q)AxX^5=5>app`?3AFzZ4 zGo~MaJSb41X%31rUHt%C-j$OI{Xar*Gj00__}1lc1Y8NlgN2nN+Z>FqFw2{R8N>Pk zQnu(PfLjMp9RBj-{t8_f#yzl_HvJQ#r;a~8{)DN)!+uhD)n^Eg@S_LfZ?GRZd_i#) z^rPxuF!bE(OB;$|GG+D`m=fSCHA23^l(*F5D+c*1edwMY_hf^8=;~L@bJXrzai=<6hw$t?aOUwQ7*_&`_Zy&7DC^1vGnRA zRr-d&Of4(9|0Hmg-VIf~&11@nA!63V=yi1XDc*Mk9OZ=+dt9V#pH&zBw2VT%0=T_A zgL^f8Jv_>7Y3X;?llhhrV9ETImx4)oH5hLV*Z)9u9O6Y+ey|#DU6#YZ|2Nhu1AOAx zB*ZvHyky=P?S7)7GBdx7%l9tm+pF9 zFdUvch1anf>n_|Pqd2=X3iKehhnX3;qlc${N8bf2>&20AMh=GQ!mCxvf6I4CNC+0wnyb!kY?)kzt-!9YhLSx$wtnDcx_j`0@%?{&et>LOg`+aFSJfh*QQDje8rIpQApny{d#{erF5j zlcqd~wJt$FO?imoT>`8>H>;)DM+ZvD#w(HDW_-SQgKN%{vCz4jISh|0F4bqOMM*mr ze@D?i`ruDOd z_Y8D#EicEa*pRC=z*QUC#(5x5FN*5Ejvo?hpbPV%tXC0=n1R=e*9!CXhJQ0g6yfCz ze5m!`S^JMx61I;GY}iJdZFqS;$V#Cl>1Z&jTFJZ>up&QOer?JE+&R zAkCh460Wi5N0@m*S>{Q_c>^}goYIT)!|aTiytv4L<0CU>bk6}coivq12(2(Ix4c;b zPK+}pYe%@m)>PVbjhZ^braC54)WL~|nVFf00E9V|RT|CPU?BQ7vAaYaN^VO zLb|#$w34xXOg!!2c#R6WAcCB6Dvt{y=(&OjY7xpy^DT-(Zfg~1gF=T~VAK70n zJV?Aoc7l_<*K8S6_<6ao0hxLAUxVKw@zxkOsHkX!nfqQRE;nuu-0fk;pL4*4%Bfb<$-eE&) zQGGE>qoxl+N=#6RXWWaTj24#W)r!~8zu)LT_cQ2AXfp;= z0X4xF#+1NkG9pl5@qU26MPtODxwPAlCo+f6WbJ}|MnV24ry2N4hH!)4ZM)+S+_+C< z9e@VQ?i0lXAQJB9Nb8s6&`ejTZN)Q}+2Ep3ODKoRe)%I89le=uN;$UhBOP;7JX!0H zQmf=gvIs<;(>@sSTnPkE;}2vS1Rj?U6cNNd`Lp+&(m5hv7A*`y4SVp8(#N1x9UqJu zR{tH{4Mq)H`c_^%8G?&Alr%0G=ST&YMM~WV&+D^8m!wQ8ZLSZQFPTyXkrF2Qgbh##!!qe%0~A6O?g5S~nVbx!h?-grQFenb zN)5fuoqHM%3cW}kjX?kDf^_AM3*MhJt0_ zd8rk8o)!#+))wp!7FroiP}E(|2?f+joF7ihmtcssZx|vsLvrM@llxrs}z)&%~7hIf+zGnN=-qa zt~w$?+a94aDe%+n!%}u~YxpVcF#Lq!CH%BZHeP-%@KefR`qdgf_Bu=+ZFrnm6Vrw_ zWNi-7**1WGV_}!b z{a)(R3AqozPvN0TodJx&7XGjeduYZSG~G#i=yGS6e0jGt1Tn4A{4Nm0D|7r|vA7|E z)nYfNCdX7~;7dcn%B+sT~J=7emgNRolxTLyY> z5$IS|CQQ`j!}?$>^L`tr!e`ZBz6Xh#XH^eFYR36Ke3pS(rt9qo%ic!k>+zCo>=xO8 z{Kj&!zuDAqbSNCTpO)hf8;BclBn#b4RT7ZFEm%V)1oa-#fdS|QcHN{uRI!P&3Ryi8QidTLr`F^bmQmYcm`Ue`p}I9)Bf0F?P_g02)3nu6U#|i8 zhKq<>O+`i^EKG4nSaoWZXi{8g>EFB^8b9@s(73E83OAsoaId zuB1n)06(%qO0OJ=RydXJjl}q<)(TFiauA@_xCwloxtx>hF2u~RQ6Q+XJf9$pDa$Ew zG@6R@G-EXP;&Yb$ZRM&iqjKBP%4uUTDw|5%#$cpYU@7^HMK7%G68bQf4-sR~acJ8t z7gM?MyaSuFNH#C#iv+$e&1?2tU*>p5MvCeNlx)Dd%$ zTa0DqLNpoIMESc;Gj22HO_h=t=OOkRPL<7t(^S2=U{9tS~9X58sm-ROD_h$GM*9_%eY+({5iB|G5^U-CS_zS z;SL7gd<>_ukJJ$?do+!_i3}Wit*Uh6k?PI1ji#Q5F+nn7G%Y{O-L%-zqLrbzX{sA} zF6WJlT^xlAQ`Mu--2XT6R&X@UUd~r~SNVa9`htUCJ!QP-BmXNu;+s9b<0xeXPsQ@` zM=N+8_9s=eosM*G5~jNbrb?SIX`|83c;u#hDtWC!ZvIfqRj7q0M*OXXy+??a)Sj-c zLSN(HaM_1gyPD@RoFKY<4W4eThS9|}@aVOn`I!1RVJ+H$q@n0JTXPTYj)Xq8x=1b8 zp~gB6kw~@I^Cqms2wJ(G&otc32-(2*7!Y&sHX^R92hwyWC5??6kPoa;V`n8uiyDAh zSe2$bW4vcMfD$(2DRY$uZRYJ+-TtB>OJhg-Nu~FzFuGp11?7urlr6jxi|$ABQ&C?1 zsPJ|a?>S1@isG%-SBg(R28Wc{hNn`2zKGZyJe5xO`P-Jw=%cIfcw9hRM(jjyskAg5 z(Kd!|r6YX8d(+HaXh;LL1GP^tDWK0m!c?!`nJ@5ON*j%rJL$EZa~*~fkH(U`z}d=+os zk<;`8ycGS~$LI3B9r*0@?M2D@AlC0gtS}w=t@>oV+s~IW95FuqAor{gcg7v>nU3zh zoWB#)7gywjszFcXy=ds#j$f}uXyTpEQH)*CNj!?`6PHX` zNBKB*y_FP2poH-`t++lR&04e~!*RH%R4Xcb9BnWfjpL%xXeouWE+MMK6c1BcQsN2O zXq=FZ#tELlO12=2lPH68Fe_t+wtV)dbfkv^~ArH zoEDZOa{6V8?naA5+1)6WNM+BU5?yO1x*IMu@C=^2b(%>PhqJ&pYbN^~mz(N+4l$>9 zmN#Z4o07#jVM~+0wwx2TG@<49g)L1e0-NWAE$8`K=G>U9FFQ)WN zEf z;5ivl`e6zuU*yv9t2`4^7xS(m5Wm(nY9M>o6=1&f<2o|qSC;~A;P1CsYPAZvKSWb+ z@TM##mY(0hc;Nu0-sCCfL+XgI%$zvZRlZNl8i3J4jXGq13;DOKBW*oT$+uu@_1ec>O5qb1h20jXdYnlqL+kBdhWq9;^(liO%?sdFYH+uc-raUXxS! zPc%k@VkD$q2K<*AWKtnUuO~F}Beu`C_@!EN7Q?CMFLcXJ*U+`u#2T`&|3s7FEwbD7 zKDbaYO$f!=(J#YEpX1zi5Y-Jp}wjx{5z6x|+;@T8)$CPGn$6q?CO5h=-YkMe5F^#o4-))7?rC0N+1 zvEyL=ThL6#t5QKzCq#5eU5LGdS%-s-xHh~4$B1BhfWJ!ZU^r2q6vQVm!ryau@o;?) zwrW8#CuKfB8po}*#9!rXAf%J4!sW99B~AT6F-MrjPL-45D?h@~BGiG0!`@zZ)QM|NONu==9!6OPU2I{V*Zr`{YC4Rw#_jVfc1-bOX z@ogd!tA7RSGaqU8hm(lkgrvrT?X{Zl<`3ll4-qPT#T^OJXizHvuZe3jsjWW&qSwr@cBR7P?S_zu&z)5h<35)3Ot z55L1tQFwbQ{G^njvOgd@*vrU8AAZ2tP%N57)@bHA7+dQn=rG1>{u8=qJat{1U9j>e zvRJ@VdZ^1U&|rM~3r*~Jy8a9Kiu0KFo2PoGPnJ*daX2+h&N0rw75NnJqo?wo;wxz5 zZ{E%>$&+K=XN*{9J$dW|x!n3i6HoH|!#}d3rRJ7E2XLahp1Zk^lpymMcipiQ$Kt6~ z2k~0bfZ5X`?i6dlod2zo(%ktp$Dqt-Rwa#cn#7bKF~(#{Fm^N@XNnhVYWXIzM8{Xjf#_5L1f6WxXch1BNPNdeS0HkExLonFV^-HXQ2e~J9e0#xr?X9 z3Onhq)^>Ex0{*&LOseRe=Gm6;?>stbsg!4}iqRiSPV*VJl=En=q^tKi0yAE?I%+N>QQbOKH}iz!ZnI63mi{VkrkG+>2&- z7gh>0{@$9;cI$6T4T~zB*>G#g^t`ANz@n|GxQ*hk*jU3&i^r=jSc%isMk$3A7Bg*> z8LWhr6s~Qngqhtc^tVN%_;sia-G-}rN!lu2CY^9A`)E7r<*GRIQib^Jk?rhg-d8o1 zEwGdbXNxIeys0IpA-QU>_$Xnxo#JWo!UB5L+Uk02rG@P3;n*uy` z?aZV?TnQx%UpJdj0=>s!;lI_-`pqa{_^_CKb?&3qwRtat6U7I_wOBHY%hKB*`4$Z7|;Vp__) zF&>I1CS`hfD5d!PUyRD`M6bu{mlSU733N0%o=SN>?9yYRHv-|r#=_CKkZ7u+)K zhZMfy1;5AsV6-Iz&A06js#ONi*i2alej%Dy27a;pE@YD}&VFNgFZ`OyIrA2;@Q|5< zBeLNA=D3@^GhTYX*f+BGMw>8&(!G@wi`u#Qnyyka%tx_SisCYL!*saG?XOS{t|voj zE~WW^w%}K3Vxljq$muVC5$Lcx9?E-tQE~CO^aXJ<+{*r^t|YekLJoe&-=xn{`Hr6w zW`P&Vd4_M3J&yD5@W8<-Pj&qf$2UI#ATU-3;Ilt5N|-Jv{87YapCn9D0ANn$!bhokuN=y*#z(RbMA=z=qEnYJ6{(-O^l`Ul-S41|dW|MOz1uq-2872M1`iM*#RtZ5q`30lZ zKOv3n_IizITN%b2e9mb3FBmfciJQL==JlS_pUMbx^XF759JZ%Elj2Xq0bb=9xmJOX zOrBAbDu{AC$*LgAC(^1au=&puDcU{)He)yv0h`CsjR@F`7tDsLKs9|r9#w%l{IL{$ zUKNp9`Eg!krZB~sVj}UlQy){aNHCnEk&$2+PirET`QjCHHB^Ru5A(z5rhIgts)lIB zTuwCzy|;4|$Zc~uAD&@4%qT^(UqF)LqxnbfZp1x}tt&7)BAXC45cR0UZc zIOr@2dHZo+>UWNY{+|2!`W>bInP~8jqC3&xuZ6qWD?=o|a-Yi90RLcoQ&Y4%9N@cEil=oyFX{6ib!(9#aQ#^_;|>S0p-8Z;LBNc(=1e?8dO_o`I* zP!A0F7@ki&7=BRecrYBf0(nPoD%?kL!2>Nl9t1g;rF`!M5TFyEfd0+k%Q&A0osY=N zWLaN{#;~kGedQK&y+nQul;TA`l^0!J(b1K=*`hB|vj)l#)-;o@Hvr^?i`1)$;!BGg zqCbP`-Vl({7s;#$h;|V4^VtlnCO0%yqm$qwdMW`Qu8b|Zl(-it~st-qXG5c zsDzr53@B_LP6kxtqm-KrsEbr31%`$k(G3m#l;_KuNJ&Evm-#Px;t`5!4fJk@>2PbH zKRzVUC$s@N<_g*XJ@F8IY6J8u85P?q-3&gf|JC7l=j6ekLQ29<^!P744pD8V491}) zaqSU_jSk4jvhILLEP8( zcGKZ5N;0doTjE4_Rm1^Xy}P0}j=iE?VbY^rI?5UsBNXQhO6{g>Vg+`QUw6Rt-zjZ+ z*IiWKom94mQbAO%9)LMQlY0Q><3Bpgdq*P}za7-GCvt{iW>4g-z&{eDT`!>gyIopz zq!)75eLKDHg|;JPJ1XjQGg{tNv7x};%1+yM={oFU2P0UVblV%{_KO1g0JYCHiTbe* zP|IzTsP+0HpIDgR7qx%gR)8`S0cwkrOq3nPZf?;*Yug)v+H9ps{gh3Zgs;#as9iTp z)NlQPT6Qx94?vFbI&c60cf&E+MHHIZ1AyBG0Pw{|9dM4V5n!oJGE%$wNu{+^bQt2K%NiYKvb7NmPD&kyIN@u^dpKYQt(Gva zhr_xGtEF|dM!<>Bss9L+GIlqNKq=o}sY8VpGJ?`^Zv&uDQxdjY08N)a8&1| z^l1$8Rc1jH1dnc zasp6#E!0s4X+|iUaZCxkW44e=PXx?}1rp}jL}V#^fiNjfOhr#ZmT=P5BxLDHnvUY3 z7@@e%$I&IIMJ$bcrT}IjNticN08^gGYbrd0hu~E45S)j?cYaHUH)Bd?#5~$MRhU2b zulduY`P0x$4V_DmrXgCY&xOL`*SZ3xkNl^@^?m0^`47`U5IBc?X2@sY4Dk${4SB~` zR5$?xz1fsL1Nb?!qOQy&|IMQoF+v- z&jqUAGzyppRK&_W87uREI%q2GoCnl*_&}fNLG&k}BG3t_{io0i0%|xuppXXCTnb48 zYWK-f^lKWrQa+ROyHciPn2p(zCiBr1!wTB@AlXkd=YwRxB+8hNXDnXLFHo?HW@5fh z=4(pdg88Uh3luBXcOt!90N+=_{p`6}()VaE7J{_v1WEdBp%P|Uc0xWt+H0D*9;}Ir z6f1Gm+ai?3-to}4c_0hB-+0=y2pN1eP67;G41o3H@&S^u_^S|ipxcYl$?83hUN43P zVYr_?`<}D_s~VQTg3eg(xrq@_1zZA|yleJVdSz{nyI>neM2Y7jgfCKXcGfM6xONfZDQ;6g5dls5$n@548!|_y?M2_W!};F0pN-uPqB+A`#h8D< zn$%OWn(Y9qL(hBwd$7(#4e7iCtdD8%4iv_Q9?(}#%F=GvgHG>24)1iA0F!p2UeE8I z50FKdc0>Q=P8iU-JN?`V1Iplb_Gqki6b3w@TDxFCVmGN@Fa!Gb-SYLMku25&kB!8Q(bT$M0x4KCEDZAleEKS@E4<~n_-@C!*i6dyTM;?)UkEqTb@HOo$ zFA1<1=^zLiww3aQ4}qXaTZ%mdf;%+o5C~SZf&9~Be;lasEv2aK37{5g zN%1Fuitp5(04lavod9aH7If_dP%kD)(Rn9*nxmmtW=2Q7V`E~{m zl!nd7{4AVb0{64~ZIjNwPEF2&G`6WEEq)Hw#k^@gK-yFJKpA`v)djP&=TI06nn3^4 z7FigLn$WFt$l%$=5@5l308DJ050Ly+R@m?7QD5peCW{NOpg8Vl_t`8hz`@lQU_tFh z5}?FIIMcKdHNFUEV$${^7}FX;{^Lf;*q|ZZxd_J74Wz=NOt=&;kTT)Y_y$zy5(w-X zK%v(LNpP8(UjjkR`cmHMG6=N#)buh4Fll=k1oILg{~ntPMFmMnpnI1=a57#hEV%*# zY5X^~#{M*%%pk5q3 zxCVmbb)~|x>mV3Sx37aBwk{R90fM4+q0nuWB*6N)8z6{^mGW*kLBL`u=_Uxy(yW^x zm{kYzuUANdx^?K`O%NQdEfrSW0s)pT-2y@F+GKMZQCGM&h2KWh;q~fmVB@=O`s3OC z4zLTeb`I5^&l;I34(D5itMZz zl0g508wfH&rTmsxAm|rL*{?uQC6ruWgFp?1Myu(P084CNgP?o`so?(x1o%qH8xUY- z_6-Qel!y5JsgfX~JiU7Zf}J5!e%o6R^a-I?Z$VHwgi5{x0ao@D$Zmo177tx)zCs{OR2% zpoaRB$7f6-|Dm|gm_o*i|IYvo@ROn;UjT|_W?uk``P46%q#o`|nO`tT9p+1)zW{Zs zj}+bY6{y{O=)+f_miHmAT%i7<_*|gwrhd6V_4AgZ6}|x#yOzEIbtkR+1~&{X3pZRJ zDcw+^EPefkTC$mDd`B(mQYJsfGVjX=NAVwca0H8&{_yw@FX%Q(l^)+k1Ac(Y$4gR$ z{X{K!>6s6Zc3(a?7W_ml!IbJxa1X}q?5o2icZer_`-yCA^pF61e*vJAM?OIEeOXT( zexsTMdXUd=Sn#bh5E=}V7VMxwzhOby(gL6ih5x|-7oW2IgUn)z^$!RKmV)?YbgxCT z9#o2c`~l&5cb#zVel?7BaG(2C4PgQ9_de8OM}j};jP6)Q4IO8df@8ivm0 z0H&4~<4mS{ne=yqc;-L}U(StwF*S{?b(Qk}a^SafrEeSrey$XtfZ($WH0lkI1lwqs z0s;@beH3HO2o(fRXpjm53^`R0^mT^#1$;S0*zfO5e^d~xc9QakG!V3Lq8}Ove4HrI z1Oz#b(5Ty25^TX|+dxptQ7S~5g5VJiF$DqEgPVe&cL|7}>n#ac%(U?OBR=+)e8a|+sX<88r#YWs@PU$PxlL|?&2J8 zZUNNgc2e}11yEbr(H{$-df8EVOQ61^mX<)>K%*^z>RL>SMi&C=eHu{+s2DL80%~_# z$|?lZGPa~z0d=X36g^=DRJ`iPcfUfIhYf{V0~Lo!SOaw(jkN}5z`;`L*Rg~CO^bZ} zby9z$9Tp^DglPxbcvx1fUd;GbVm>YuZRTbmRllj3lzYeA|~9E8u!p%K|y z5@Ic8aS+;@ONF`)a4wc%I>5OYY&w9Ty&1$0B})P~GqNlJ0y35I7fOJjktvxug234n zUm*j*Qxj-Jw2}nNXsRO!ikV1-dQKp?N)w$xfN`f22-<28|F?xCaM8%h83c1xDWB;K zf(9yfl!E}@>8s`fg2xIp!jmKcK7H;20vkmtB)EbAJJel4u#k?pf}k~r`2Ivm;DmK7 zZXlS=D6$%wovUtY1(v|bvLpx`7)6ytPQd*_A~-nM&KrqMp?GX2=_< zWZsYuk1%i5irIXl+TQT_om}XK#7m#gBk~57MXsc3=7V~2=4(Dc+70>e*z1FOf}x`i zxD#n;)6kO?Hx4yV0S{w`l4I9iwytE1d0oGiGfB*x`5D+wc3-K+{lECUM zxs(UNSnMzt@>%6UQ2h;+r~m?sH&nj@2(G+_hHsQ4m_|!0fIz{dq)~OeRz#>xq2(0;&9bFv zn@WH_M2jl{8Y_D%A%Npw(C?xIw0O*J(Qu0{@K*OJqTUCH+PpD~C zfZ~YHssNoptE&R^_aiCVArhe2C>RM)j0q#*h1f^%!kRGY1(QeQSq;#`9%9?MnrvC= zVSZ4?UzI^wvpRxOc}R)X;qkLsP%a%RJ&xBA)m8mVa`3VA0VY0&Viw5=Wt`h<7< z!ezbUL4akm@gNv-g&xO)pxPBEEGkPgXW+<*fCRwzxh$nWCIG(NW%8{L`0v!FzUn2m z@zhsKv7wh}dwl?Z%#@;i8UPq)#xwx%piFw&K=ou*GpSHR)m`kAX$aI_7p3T@hCubd zNdAq0noI2(0renFYXsE67idQ#puRsZMf)`d>K5AC7^nlz)APnat%47#H38~33T^__ z9_OU!mnJ~ zK0tD&teS}}5#Ja$wgmT{rqRC*F#-LOy#Pqc^QU70N6Ols^oG8TOLk166JVf)0nI{O>j(D1C^++JXQB$+jTac@Xkec9NjyLHf5X z2%h~b6-KlJ0XA5+13@=zZf^&I;D4bo%~lfNiv;aK(C&aPKd%Gu-49Tu4#3BdvIFq{ z*$;6`8;Re2KOO1-{3rV){>YBN$MWTl!0)n;aykM(a32(=6rttfOn|DLfZk@WlxCd) z@3xo1I|KeD_34ZdOQ%Jh5n^5U(2>pnezaSPj_v~BWptnmfIID`&s`9>0lUe$D*_iE zZRrZslng1VbOWkO21RrODu#yLfQmEVx&gKGE;`l?s98Iu=-BQ+#lqI^K<%)TzIInV zEBNh%xqr{seC}FO-&y8mlD8)P1g^*x8cX$5-kS8>j7B}wmlha(R2{00d2^v32oyrET$|yEky<=dNmQv0bEJ8lLgxs#GKD2zSs;`C|i{?9V2`S@LH|Dv7 z-sixq@NsHI7QLDVjZ?#U|HTHZn66I+$E&_vS!|$(1GzV~ACDcXXBSbAnQ9p^eK=k% z#p^6G(8x5+mcETw2k|otbx|K$jbqC2ki9lR4QCY>lFdXlu5sBV2Kj9gYyc>bT^|2o z8OuFQmcX3+64;L`vIJ)7sk{={xDe$gRP`k?U-(T`4JcJnD_vg(h~%m5rq&ju`}8~DjR(hRd_zPBUSDQYS@ z_{*oLDJ+pl!6%V$wi$&^Rkua1n*aY}|6(TX&&aobD6UBRWA#*?{iTV@OjCb(&ofAk zBl#Nra7Ai#(o=aFI0j_8njSfc{(pF%7LX`c^HGlBibPqUr}9t=&ZX)z)OviuY@;&u znytr@H&vU7kiZMrnQB?f9kUGLR3ZJuKYW6CrrNepb#UWSsyGC2z+AGMrEcZzXBzqH zE~U(duNKUphwI_1#xp2)wz?Xf;U#m_`COf@(_lL5HnxReT6HcWeCRa2S~#)F)9B+| z1orl+f1_s4Jj8U*sq}W98ffsLOLOrW74Jp~NUf**l`%_$jO!Gtl7_gymC-j%#R~tm z6Af~^X2?Vt=^+b|Ej-^Bs(xa!exX{DEto);KC8|=ae{$bJ;K(`7x*Tpcx+^H>@*y` z2vra*^CGkqJ;u|!MQDG@k0<-Z>JFAXjxH=lt8#s;0QV)eJ~D&#)JxO~O43-=_CEu} zaYtkI#f1Fv7=zKLW15XIBI(xv`{C?xe`5pe*uu=pGE~~Nv}Tz)oSBX$kL4g4K1!0j zS*`||S0071);}>qJqKfD@ZEW$lR1hKSHQfpBPHSFkp`+dgJIR}NF%P!E0H10^R7gO zCZyusEi~$-(w~*^2s%Zp(4h7kA*sHsf=h!&koRgeTs)&!t6ti^;izq|Xt_1Bqb;jd z2Ru|xuT~>ntKm9UADZgl-4JUIb6&b3?EW4B*>^aVU8C;8M9jlAY8BQEyldh5W~mgt zR&B&*4gKqS*P+r`*F-E&QJbiKfzpnr(ne=Rx@@8tKiY*B~mt5ut^Tz-?4(`pkOjrnmmh zO!Hd*UbrIbP&+-9SBH8HqI(r8EauBf{{f#IxHp7j*`_t>qXkNYh zllvC+6p!rpw{SA>{#*plj;)aD*O#)lqF}tATU`%>+80jz$>U;nT6>)4n$q+m6_o)=TQ$*p7}+Y%dWzrBF~fp+ue; z`27Ob)7$i-+W%lAbccHXqxR&3dm3nBCUzB6?@1+gsP9KcjOER%0jY zfhLB!hhZvfEluro1ewB6_Xt=9r_hrlDAUN449lZxj6u8sJ_gyiR?;#Y_Mnl|aTKaW zE3|2|P^ftEdmM#|7r)p-!;@MX(5Rxee>jdPzT85p%|3yy40bY{K!$3ykTu_|g@F#v zfn?N4NRCL7lFv?}e}s83w^L{#zfhA?Y6S%D^i#0Grn$7Y$!XY&>9Esk6)_WY8ikOU zC@~!p4K$g68FU7iGnz@vYiEEN*Nm*s!q;}qDCR682wPjustsAErgZ!)T>qenl+~kl z$~iD#D(@W3ZQq1)&%q4eo5WJ zD%Gc)OE5e=L3(BHW!TUof!SN9j8Zx;kS1U zNNO>J+hJy^3^bnP}|FV>W@Vo#r#Ub=%eJFX^K z-$h~B)|9@z7Gt3E7O=8Tj1+dg2Vk=pYIF}B#WOVw^9sSfnY90&S~7CZKSqXqh%pp6 z2Wwa1qBy?6-z=}09j%Lrr^f)Pfc5a=ToV77443<82w0C;8u38&;Ul9Aw5=}4zgCwn z(koB@IBY%KS=~UJ;;`Lscy-Fkg2B<%Wk=TKp_*B&MK#?~^U{s%nO}|GKUSS+#v!gU zwHlRqgs$=I$b4XV1Pf1$MEB${_v2-d$XbS7yr@Hu)zP-StLm8Nwi;n>p?8l}><6oA z5Qk2;r9n^NoEZ`Mm>S&?SK=bb`l%Yi?IH|R@h$ekqv||WM;A-1qC;NYYy>&4iZHVz zV^zrK8477&xDi^;GoY0ZC$HzS*Z*Ah`k$*kiZ!mRW94o%!kSfC$Kt;${e58dtz-oD z^#vNCK-?0?LnuEgqU9Dx`l5B7oUN9yYYZRiCuvL&U3F~86rI4xYIGo5Z4nU&X_Vi) z^+s&n#WkE~oP7i(ou{xT^1moJUhCwGRkS}_^`r4G)qtvV!*rz4#z>dMHGx#x2+1)I zskF35M>2_|uP@aL#m0x~C~MZa{jWE2G*o)hKa~Ewf+ts3$j?09u~ncSuhG`{RG`2& zs2VuA`;D5wM`E&lhLec6kbGfzv<%-FVxTF`BH}_Q>#c~mkPNeTz-1=OXypervgqm+ zI(z=^ju$w7&dnZ2EZBZj1B#gh>Lx}>A-QnBdLT9bh)KtVH0vXpm%`-)sRuR4!P60q zTn=tw?mq`@Ov?Zf-h)}mAnN)_ZNR!=LhKU)_=lgg(?`_;*bzT!scJ!Nn4jL)W#N8e z%sGx7_my>b%@rDw#kZLB zkhdsH+YMSJ)}ti7GiYU4a7l7t_-#^>nlKD=QC*l;S-eeQT3MFpMxU4##Y(wRMXvcP zIj+cv{&fKy7sIt^v4aeQV^-BwGSVx}hTb0L=1$_&g^p*qKE7$KY5Mj)O$!!ViZsoOHE@#TYl96|}iND4}8&z*$S> zEwr9YbEI_^ns~%rw9sM=%gNDFbH+ZmN|rEWAN97>Rw*9E;KcA04X>*UX?HDRZSx-R z(fcXD-ozeNLbGHgY^l1H*3xyM4Jw-Wke2l41f<`~@|++VpPzKt3dMGcK3i$+K-An? z^Jhnj(o`4CnKoE!#SA|)4qJ;1Z=#2VwN9*eF^Vmsm1f?y)Tf9xI`jnSvun%wi}fSr z!z~Tp$dIQROu!X6h8U`+^2QLZMaZwHw${h`ug0=`jd!Ve8mIJBo<`lm83r3|yn(MO zWDuv4+tCVJEtNSG$|zM#Gc~XRmgHxrrSbk2nBnM!8II3(2&`ZWDr>LlTjT6CFT6aO zXpgHs3zGjT)t;`~YeO*=*PytTBDRfBveyE6lsQJ}7r0#pb3hy$erH6K(CiJ$PAfS5 ze7t5)585)720ChK%+Z93IB6?I@j7Wexrb(;I7?QXrnX|Hv@w%e;1n*cnP?!KH6M&{ z?>WQM_%g4H)_@H(q4q9XX)z)00*@P1I^d!?S}q)h-0P>7%^c>Ye@`(|pZvs~K)C~b@a8VOs6mfmXR7F~4dN3E{MEbb zj)o)#zsycyZ>u#DRZqboH}Jv0>}T}wHNN_Xw}qv&`P}qR0Xf;%qBK-a{4PLd4oWbe zjzm=l#Ur%wZ>Y4B@#Nn_#?y!V=qQ9MGM=)#i&S28xMCFVp|$5}zY2(tOkkMqq2Wu% zzsSc^6G!k*^+f&a`m+Ew@Y`kF_C(1tj~{fnjAp+!pp3>aJ5tVDTg5x%7NFfuT6d=9 z(nEJQGnV)z5!L! zt$OPJWFQb{c86&F#hTypXkVh=%e3M}zCwGG$8O*TG* z`MW1j;ga~k#({9nTD;W`*DAC6&&Z;Rc3$)ys%QRp5|K`9|1Qsd_@}~v=S`l6`hRGLRkD0`W>O+KtF8$ zuB!Qo9RyW1f3z|)@P`e1Oowrm)qPAK#9yb!9#`?2x)W@I$W zvv_ke*%-ITqKDPB5_oq1s*Zlb39^fV&$TS78KqTWCmztHJ(`U&SuNCpmPKhhl9J(d ze8trZhDT21DBXIvFgaEH-Xk(T|LeEW-wRlcsf;x4mivG1>Uk=Iub*4mihC1E+?+9G|;a{`n#ORwy-xLkQ z1+uE8*@fK41 zG)Xx$DOPhs7j9FmX3us%zE6SYXdQTAiK`sAoehl-GDrfVLLYN>JOn+630~ zKE16AwB-9#C{FWtwz{r+0Uf53FB;rO8pAM{soU4!{(mtG6~-4*;X~0?))nqx(Ge(E z`aO#5sWo9<_b8z`!0qqR-k#b}TAiX5rCPn<#rO44zZ0;LL)?zMJFhhi#O5+X3;bkv zDWWw@Nx$+xQ$CAgH8SP%9cjw-cx?#tz9VTdEi*Mivtzq&>$t_%-9{C`=M;1k|K?%U zZQ7QsRU^mxc%X)wZ%JC5YH3Mt>uZjz_btg? z^OofPb5rL=CwF)Q3=&r2@Cf7yvuw8;XaUaEGXIA??&g27$K90J(G4-kD0EZ8KDj~D zJhftUsG)|BU*C}as&j+f8)^U8u0dJt#%HvQ^EZoLHPQ}=C}@lbns`lSaL_gS+*k{7 zE_wcc{Ozy(m%sfr$=|LC_}^aD`ITc=@xaJ(#26*32`s4e|Mhhya8(uG1Ap(rn~Ny$ zKv@NRsJP$);zqcki6UmAsU>cpxqzmGh`SF(RK#bv4(_;Snu=C}YltT9BAGukD>AM3 z+#)k2Q~94WbJ*?A=cDI-&zw0kckXO=?!0@i%N(@0p8fU*Y@`-SeA`ekUr{K}dOm+R z6z)?d7jk_h3`tE2W%4eC{DVkH{_FD<$y*gxP2Q?dCVwsx{H0x!ryqTdw;Bcx?XF4x zuXx-r7Q!Z7fDsqPw$MnG|{=C8h%1HoQ1=~ zxM1r zx>wabyI9li4(j0Zhn3@A;Rm8%#xVGztN@`GdGl!Yl``*wM^Vnu1W&A%!O;217DOBIU;{E z&vCh55+#ajc&*=^LR{hJVAI#zSRnL|pe9K5RV9bKrXyrP~?q zKLNV?Ix_Gj|9Aov!wEiM0+_-g$^_O*J4KK(>NIzV0ZfvpKg~zRuol|3()KjpgY=x= zh=CkV%j5sVFhAQPd05t=H*;+G&oMBZG|l6^V`0J!`%PlumM$&(Ni17!rLdEH$z=8& zZa|m<=|ZPBg#{Qke_3(W?;J0`>S8qonQ!rc$BLUrF~&XPVK8_$g*hnGkIN?C@3%~>!|F*JRz9pc7n@W z|AbX--fAjq%>Nj~oRn2ZWD?2zempzV_6oF@>doUQ=%4~;rrCt0_DhGxeOwNA>DZ6P?ZNra^~ed!XWU-p#Ih zI`3xlsA(+7c)MxY(Dy-#lw&vcv-TTnZwJ%8(`l9%k5$m$H~aj zss_7i7{q{qv@ic8c^-F7WOtQ6zv9se+Pc~L>8!W4(#L}joy{5Ej284c^|1%C*Ue?B7Wa70VbWJO)>Opp@TA6fVE>ya@*DcE3JwSKRPg&0DYR0HfG3-scOBGR$ z@H0ksu3b;(GIx*t%H932L%4%Uu}xU=DXfaQ;2r+Kb zcHV0N+{}#I!6z(WUUf>FmFECno3MbnxpXg&cC8}pB>#E=JEHX5%4a3BpgN*K$>AA# zxMbF-#SfV^Gf?VSb}lK{0HuBWR$gZzYY2~6{TH&v!EGu+ytmeLky7r$ro!-VNXwGV zugzz5M@E(#+-g#uMm`!m#Ug<^C2tr%cY{!IyShyrRlD8ZiD|>vh2YLEEKLfiDOdSx z$fMop3eWvBxqk|Cbv>*vJGFKdfj*ghL<;+${#9RGl!BXlTxaQLh7%7s=z{QmuTN^OSSY|-eN*U7nR)AS`xh?49)2XWY7s0E4cVgM znO(I8`!Nt7>~~}R?zn|NU&N-s@3h7*X7S2<8~G25VcGNi2F)t3Z|n2orA*JaE`i4% zvp4W>m#`3})+X+p%9`r+8_z#6sPGPnuWXYiuy@Nvi?%a}tQ z2fS|LdgvVa$IF;Yf6K#7 zteO7ST9NZOynGOSFJE9{3zc4Lxy^F8L1Jrpv*j$qX3iS0f`zYDZ7%xqN6X<}u=N^l z_yiX7=E2J{KY^)(iRXU8PC9TMUR~OxGhhwB)>5gG`g#NbjBumKmu70g&Fq%DR#jVB8GL&!qdla=_30^(q#n z>|Y_4JK-zwgGDF~k65$KJc9-hcX?)ADn|}RugjQ7u2YqGGAFSR84_&&hM@j3$iHe3 z&S^E~b}}rWYM2Oe|L>sJTqFitY~kXTSFr?i?OMY=`&dtYgi2)&s3IKgZc&*mZ8qVChP$Gz{3R zj98U@a2-4rYIWNKWqj0D76R=pb1O8v6TDz6JMN}Q(`X)i3-MtssA455ICWLg#Cld~I#@m0#>Odq zm-0s2AuhZMX*;Z)7*b%<9`mkOlv*R{eY{{hO!7~{E5oq3EqAarO5Y^j zVmE803^(#8J7CuAl+2IsWC_YUFZuCp@Op%WyV#Cqcjt;T$bpRIgy9qZlty?eFyksV zV3EnXFme%(_>_GQuT$~c4T(PGLwB3h@{%r1N4XYgQ2 zf!`5Z_OJm;xHa#*mraG8O<8+kY3d~Z-(GeLTpjwHbqf6SZ-b`$lG>tNlXDe^!#1$G zw-S`FZm5NvRD@||SR%a8hPk#IDNU@TiF{%L*GAfOui}&Kl8BZB~7h)+&)-T z@{6ZU>o*V*fjT z{~&ZD_hyS0&y!|rVUOlPSi3tkoBIra$54ht>}%LPLc+=@?#!mIFC$n#g z6PB|vA~$jCU}~}TC~If^{3Ga}ezCxQ`o~A%IsK5a-0c`Fc{@zu4#%Nz7QttQPOv8Y z-Q#e>JSv`#Iu6%#U_765oZVLreyzyn~$M;>RM(5+lQ!Ja5XCh>D8Sz~xW z_vj=G>or?8b=e)8Kbs=Tp$N{sC@k5mE$gmuwr0}x7q(?Lf)K?#6S9f6eBN+3=xml~A(<1P;6LTDLVo@f zteN=7@IOwmHn5l2Cy%}3__kf8`GEQ3NgBStm)5&U+-Tt#?u_Kz(xg*_VcG5t%H)6vZ$Omi%40?mR5w zw!F%FoQDVIGsp6s=i#yDvFyA^q|) zbhAn{yjlm!0DiS|1-emqE_sC&E6)ej^bdATiyO&W z{>l0>->%R@yYaaX6@&Ib_U1pK_9&5U`1L1jxKgJL5Bv+BlXUM4Z$<$Z1^m%pFqr6h zt*6kt+6D0LPg#)bul{hkL_3Cl9{W>xuBBVJlczt03O~!ApLq(4s^R|pS_yNvaRC#v zhd=Czx}i98zrUfX>~0O8NrAy*IJ_9?Z{}ka-de*0wp-O-`wZ^ZPV-sMm|wu+?FR5{ z6DGzInT&YQiX9d_OG`81Q`fM!PC1zF!$@v%UDfYHH^YM~VQIoD>{JmvitKk2`kSy+ z(+BddpwV`&ea`9{AGM|lKMu|oZ#)HxC3bw@Bl=3Q1Qv1K+Y@36ZB@U!Isy$Wyq;Czmj98+ZYih|EJun49bAtz{=0gi)pC z^j7?I32Ujuw7|Rc1~4+Nu!HX`b^e<*DI13Y~sfb45Agk=DE+Hi6#CHKd2egTr}*covh2(%_>S zg;4~BQH1UmG!uJ&TzE@G?W9Ei$YT^WJjD4YL#6q_gPUP+SI9wC@wB;rtI7?x3!Z>j z9)pD@T@vR3R;qKe+#fLtO+#cExI;8cP!;RG(z;%9P3zlysFj+dwDsY2t<|P3%WuOR zJvA2+g4-uq*>tVf@(63yx$~GGYNU0%1*8R|8RiUb)Izf$Yn{toWR<(P!?#+iF1;OV zdWZ!N5b60X;oCf{DV=j2bZXN540;P5TONoTY26iY!L!!DO>Kyl>39R3+RDDu8WCBZ z{stbYQ^R13=XRayYrhftyD*bnXG`+qH*{(j`^Bp(nP2BVOm+91AgYup3I+6zAg~l5 zBDA+vj!Qh6!BdFBFjGpLuq&JP{R|BzX9na>Oe96%np0LTeuup<)fBTZhLwwy5E;$9 zudL;zrUZcsp7CCrYt<+y2JFwD9vqf>FKqt9OsMB!sdJ$jPb-FEErvy8y_|00^pdb2 z$Wwame;0mZldaW%t-qpIdr#|>L#DRD=Y1-rxYwB*~{R)PZgw4;* z#FEA|;PSzD;uKc{TzgTaWP#4}Ebq{d!?&`apIUWoirkWF>bO#+z%0~&PL%Y?h+TpO9Ubb(@GoMG7q_m@zUFqSX)vQD!} z{>3`^AJ`d$^+h~QOATE@7Lal#|HWSQ94-b6IfPd#uqATL6$5*vD>KJKq#@(vn@{*q zvHgZA*oiFGNWo5w{Z_1+)%EhCX zDabha<^hy~c((AS>}sU*6484=24ss`!s8a`T>Lk=itI|8eDhD(`N5_l%kS1u*6{C* z1%RJ-hq(!MR#nP6;+&O>zpwNtZSu|I$~;a%k2s-xQyzYDvM;F7(1vHp6n4Kc1=LnfAylRyz2p+rVd49bTyjY*hlTbfrKOg)gpb+|3$dmompC{qd;l>l4TlMR zlQK_D9FimcMFTH~g&jpA4ICEk5(fr{g}!iLDHaaeJ1pEH3_Ce2OoSvY--Fr`_Pn&T zd|IIAuk>n1ZBO3bQT5eM=EEG-P^%L7nAf0iDzAS@Bh$Bd{moz z)mM%BhjNl~Q(ixFEB<+XwSzX1|5{(|=3ttK8K6pJfma`Ts_u0*FBD2#cKm`5@l?H) zr;I0hs?EF$;VQ~XfGdxaL_5@-kV^AM{J5v;<*ypcY-9!4!ZcW-8DteABc&2{=Qdst zDXm(h_e3PzCy)yhSiB!j(~UGWa4c?x0-mrP?WvbbOPS+9@;_ z1}&)R>7r;;%6gt}Z&RI2O__r&uZO4wy1g?+er0Bv3Y`*M9*srIy}VU-BaDR_3(Q62 zL=vtpJZnn04vQ)YSK-z^;qwP~EJHDLKKv(L6hkYu!~;TI5R+hdh&-oK5>YUvuwb`T z5&mxF@HjYiOCb7$d%O>zFT>2@GQwi$nxW@Xrec8q~kFuq)xYk2+A>h=(^+{XxuXsGfrD zx1AfQO^hpN7&N86tKonAEA>4JM-w2A@YZE$^TasTSPBFm!f+hTEV+XBAY(QyS%SAA zL&Jd=s0m(=Ebji&1!H;>aAIpoLN@v?MFq~oEOEkM0WuC8mMFoqka3%aB|>mKGEO=z zA%bI(osa_rk4A=C2;X+A2*)Koi@qWprbO^z0$^jQuSgIk9PlD`xD=(nB0*6xiUf-c zHpK7(!NR@~a&CovW8^HsB7?rjnHAg=IlY2$n6g0CH9~^o4E#_LCk(_Hv_Os$9EoSt z5;;QfKxC*rPy&L(kzuI~N}z%RkPU)+V0as3z2IPEQ3W-xA^lR{Kvc9v16*4v_4Pw; zhg>AMA#!`<0>K{09guScJ0W*O#-)`~Ut8oL|I1f?rGr4n|Hg3dIvtbV5a( z;QPp(k)s6PLGFSaA@~+@SL6`Eg~;8I0|Z|{4nZ~u&O`2wtQUL~89NAzQ6m(GQ1Lb@ zieW@A_1%Nq6S+w6Hsny`0>SH%dm-lvUWwcrIjbT(967Thyf1RPV3FPcV522TC`5wT zZCK(2iv-_8juI>q9E2PpSR^xE43OP&gK;&rTOu^yEqmk1E_dp&4=|d$D zieOZHhz4r9)}zuxFPa*Ef>T;yVy3PVqbJP)}@a6Gaou>!%d$VnKUD|j?A4waTH!I8)dkTV4jL{3Id z7aX2wFlr_&L`9NN^gx3Y$cvDp1P3B7Mvf5dhr9$iL~ujoROA4`9>`0P4T7DJ z(~$LoZ4-^4ScVFXP$+0%LN11Tgi_xZ(}0&F7gcaNa)IC{7`_5ISMYu0mB?9w?;x*2 z&J=tLc{Osn;6fuR)}SIuC@vtcMUE4khs=?q1Rq7tK#mZ62zecHh~PcQ>yZNlZ$sXI zY!JL2c_Xr3uyG|SHlacz6ibmeBNxN1OR2BmOynZL3ov{ua)IDk$lH)}1;-5_}88k0VD2E<`?o z98$qwBL`IQDP)6S;r|iwaFegnZ;;_$q3t?*&ZY9CDH1JmmAp1%i(v zUqH?kda+csd$d`~a1#d&XjGS&1iuI_tf{G-;E0M1v#|d7FT!0)UcmeV?Aq4OD0Z4@CYSaxr{vwbVBp`6hCa;2y}| zBNqq`M!todD>xAO2jncle#p0xGX*z9{t?({Nf!zaRQ!YnNrIh_e@2cIY>Qlk93@ym z{slQg@QbOycaTE_KSBN#IY97z7?wLq zeFtLrKgdND{4a8W;BX9oiJU9A2l6ZAEWyFZuaPqa2O=9wQIRebeyGrBfs+I`M25FK zKnVbYo%qXahm#(S<_nVNN!})Tm*fMI#U!7Sd`|MEkZ}H1?WIFol8z)@NV=2sCfS%| zGm@=Ib|l%AWG|BMknB%#2+3h6vHZuAB9`PwBtIsZKyo_CStRF@Od^>~auLZ?lFLYb zLUJX^H6Ss4O$I48klajiE6E)sca!{_WERP2z zI%MApR9%==PS^3PuKB?Sd{?N}JYpyOr+-V;Tb-z(4ncKZ4Rsu`y-KPG5Kn+{N{WyM=&mqT_LWp-^k%m{jeT@l%x zE3<1GIHO%nJEO)Xlrmgq*rDBwz?z1d0J3Y=mCEJK4mBT;-3MiM|KTr5*m-F*OUN*> zO(33#rX36;D#)x*Y#;D$t+!RT`b)?w8sHxq)xm>a(kP^->Sh&0FayBxX0;fwDE+qT z>h1t>@HR}}OP&V$z&{b(fERqM)-s04pqo_VrGZBCBk46%4a@X*NZ+iQ{vPQgs_D(7 zpHWT!ko3mPY5~O*aITvEDd~%==}SoOMs>Ce#IdG;^lA}o zNS{M`2jY4pYVmD%IVgs>`xCJpL zgnw;`Rf(ElVjIauO%GDkB7<;ZTjGJlwTUB%MGFDl7-BmLpG0g=oIs3?1OMg_>jlB} zSWF5>q0nePA$B5OOI(+DGjToQUBqR**?wXd3O`KjO8hmk8#30%bEI%5g976E#NQKp z68}mJ{fqc}MC?uc53vWa@`1dh4Tx=t4ZxVb#)%X@2=Lc{xS>Q%Q{u+N0mQz>5f3K*mUsy9PsHyNTafYke?W?-WH6MtlsJ;uc9^^b z!-$=UhZB1fk05SFJd(IA@hIZ1z?i-!iWGgwAewj(@o3^v#AAqKiN#zQbkm5(Qg{;a zIO0@dc^a^lci4E5KHP50zl~%NL%fqXmUut$MB;4XNyNFt9}!<5o=p5L@f70Q!;CU7 zaiq9M1|JhYCXOe5PCS)ZGhD_`Ag)6^jkq3hBC!|obmEpqQp_Ml2jZE;A;hzY`xDP5 z9!WfhcoOkk;`zk$h}RO!a)-Pu!7s195lajl=_p zHxWk@Zzi5dyaia)gW06WB!e{Kt;B1Hw-Ik8-cG!acn9$j;+@3b5bq)`B>t4r*W4z> zZZi0d_%q_aiT4m&kCG*}m)ME;b7DW@eZ+4Q?8J zLl$*yk`5%DNqUgcv~I&&W~c#tdWP!DH)W{p?OIJ3J1NfAw%4TS@l%7j-8wbw-RP+ahBy30 z#K%ldFeFSEYlt2_H6cEFOoCzR%*hGSGYkpwV?jACVQjo1E;@c{%;fR5wOS>PjUPQ_ zDtvl<#5&bGpq5DI|M40#)qpuMd^C3I)M)td&#ZN-kG56zhIQ&7EpNC%eb=YCUba|k zDKzQLL&TAecsO6NL2UqU$vX(bakak;wV}`e{>uinsg+^V_-x0GY7?96w|1y+YZbFA zpSM$O?Ks?Bnh$rE_HFrzovOcMSsLlhr5avzj_NY!tNo=qfOpxY`a2c$mQD(KOSR8! zK5v)W+V*K9sd(CmAKs;Quq`1jX~dr)YkVn!FYoXvuqUynFHZ!n9Y7r5tBU6#mp)Yu zHI#LBzd`v9C><+B7x_x(b9ci@lpClDbre4VYFj8Ffrd@|*>1IiV=i&-CTZ4; jcliv=%sZu-c_&Z&Ozm3Byi*2m57FBp!Q|JExjD(;P diff --git a/src/onyx.c b/src/onyx.c index 0229d810..812452f8 100644 --- a/src/onyx.c +++ b/src/onyx.c @@ -10,7 +10,7 @@ #include "onyxwasm.h" #include "onyxdoc.h" -#define VERSION "0.1" +#define VERSION "v0.0.5" #ifndef CORE_INSTALLATION @@ -22,49 +22,20 @@ -#ifdef REPORT_TIMES -// CLEANUP: Move this to another file -typedef struct TimerStackElem { - char* label; - u64 time; -} TimerStackElem; - -static bh_arr(TimerStackElem) global_timer_stack; - -void timer_stack_init() { - global_timer_stack = NULL; - bh_arr_new(global_heap_allocator, global_timer_stack, 4); -} - -void timer_stack_push(char* label) { - TimerStackElem elem; - elem.label = label; - elem.time = bh_time_curr(); - bh_arr_push(global_timer_stack, elem); -} - -void timer_stack_pop() { - TimerStackElem elem = bh_arr_pop(global_timer_stack); - u64 duration = bh_time_duration(elem.time); - bh_printf("[Time] %s took %lms.\n", elem.label, duration); -} -#endif - - static const char* docstring = "Onyx compiler version " VERSION "\n" "\n" - "The compiler for the Onyx programming language.\n" + "The compiler for the Onyx programming language, created by Brendan Hansen.\n" "\n" "Usage:\n" - "\tonyx [-o ] [-verbose] \n" + "\tonyx [-o ] [--verbose] \n" "\tonyx doc \n" - "\tonyx -help\n" - "\nFlags:\n" + "\tonyx help\n" + "\n" + "Flags:\n" + "\t List of initial files\n" "\t-o Specify the target file (default: out.wasm)\n" - "\t-ast Print the abstract syntax tree after parsing\n" - "\t-verbose Verbose output\n" - "\t-help Print this help message\n"; + "\t--verbose Verbose output\n"; typedef enum CompileAction { ONYX_COMPILE_ACTION_COMPILE, @@ -101,28 +72,32 @@ static OnyxCompileOptions compile_opts_parse(bh_allocator alloc, int argc, char bh_arr_push(options.included_folders, CORE_INSTALLATION); bh_arr_push(options.included_folders, "."); - fori(i, 1, argc) { - if (!strcmp(argv[i], "doc") && i == 1) { - options.action = ONYX_COMPILE_ACTION_DOCUMENT; - } - else if (!strcmp(argv[i], "-help")) { - options.action = ONYX_COMPILE_ACTION_PRINT_HELP; - break; - } - else if (!strcmp(argv[i], "-o")) { - options.target_file = argv[++i]; - } - else if (!strcmp(argv[i], "-verbose")) { - options.verbose_output = 1; - } - else if (!strcmp(argv[i], "-I")) { - bh_arr_push(options.included_folders, argv[++i]); - } - else { - if (options.action == ONYX_COMPILE_ACTION_PRINT_HELP) - options.action = ONYX_COMPILE_ACTION_COMPILE; + if (argc == 1) return options; + + if (!strcmp(argv[1], "doc")) { + options.action = ONYX_COMPILE_ACTION_DOCUMENT; + } + else if (!strcmp(argv[1], "help")) { + options.action = ONYX_COMPILE_ACTION_PRINT_HELP; + } + else { + options.action = ONYX_COMPILE_ACTION_COMPILE; + } - bh_arr_push(options.files, argv[i]); + if (options.action == ONYX_COMPILE_ACTION_COMPILE) { + fori(i, 1, argc) { + if (!strcmp(argv[i], "-o")) { + options.target_file = argv[++i]; + } + else if (!strcmp(argv[i], "-verbose")) { + options.verbose_output = 1; + } + else if (!strcmp(argv[i], "-I")) { + bh_arr_push(options.included_folders, argv[++i]); + } + else { + bh_arr_push(options.files, argv[i]); + } } } @@ -257,19 +232,6 @@ static ParseResults parse_source_file(CompilerState* compiler_state, bh_file_con } static void merge_parse_results(CompilerState* compiler_state, ParseResults* results) { - bh_arr_each(AstInclude *, include, results->includes) { - EntityType et = Entity_Type_Include_File; - - if ((*include)->kind == Ast_Kind_Include_Folder) et = Entity_Type_Include_Folder; - - entity_heap_insert(&compiler_state->prog_info.entities, (Entity) { - .state = Entity_State_Parse, - .type = et, - .scope = NULL, - .include = *include, - }); - } - Entity ent; bh_arr_each(NodeToProcess, n, results->nodes_to_process) { AstNode* node = n->node; @@ -280,6 +242,22 @@ static void merge_parse_results(CompilerState* compiler_state, ParseResults* res ent.scope = n->scope; switch (nkind) { + case Ast_Kind_Include_File: { + ent.state = Entity_State_Parse; + ent.type = Entity_Type_Include_File; + ent.include = (AstInclude *) node; + entity_heap_insert(&compiler_state->prog_info.entities, ent); + break; + } + + case Ast_Kind_Include_Folder: { + ent.state = Entity_State_Parse; + ent.type = Entity_Type_Include_Folder; + ent.include = (AstInclude *) node; + entity_heap_insert(&compiler_state->prog_info.entities, ent); + break; + } + case Ast_Kind_Function: { if ((node->flags & Ast_Flag_Foreign) != 0) { ent.type = Entity_Type_Foreign_Function_Header; @@ -451,10 +429,6 @@ static b32 process_include_entity(CompilerState* compiler_state, Entity* ent) { } static b32 process_entity(CompilerState* compiler_state, Entity* ent) { - // bh_printf("Processing entity: %s %s\n", - // entity_state_strings[ent->state], - // entity_type_strings[ent->type]); - i32 changed = 1; switch (ent->state) { @@ -549,10 +523,14 @@ int main(int argc, char *argv[]) { return 1; case ONYX_COMPILE_ACTION_COMPILE: - case ONYX_COMPILE_ACTION_DOCUMENT: compiler_progress = onyx_compile(&compile_state); break; + case ONYX_COMPILE_ACTION_DOCUMENT: + bh_printf("Documentation has not been fully implemented yet.\n"); + exit(EXIT_FAILURE); + break; + default: break; } @@ -571,7 +549,8 @@ int main(int argc, char *argv[]) { break; case ONYX_COMPILER_PROGRESS_SUCCESS: - bh_printf("Successfully compiled to '%s'\n", compile_opts.target_file); + if (compile_opts.verbose_output) + bh_printf("Successfully compiled to '%s'\n", compile_opts.target_file); break; } diff --git a/src/onyxparser.c b/src/onyxparser.c index 67e4c8a2..4c6783b6 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -2132,7 +2132,6 @@ OnyxParser onyx_parser_create(bh_allocator alloc, OnyxTokenizer *tokenizer, Prog parser.results = (ParseResults) { .allocator = global_heap_allocator, - .includes = NULL, .nodes_to_process = NULL, }; @@ -2142,7 +2141,6 @@ OnyxParser onyx_parser_create(bh_allocator alloc, OnyxTokenizer *tokenizer, Prog .poly_params = NULL, }; - bh_arr_new(parser.results.allocator, parser.results.includes, 4); bh_arr_new(parser.results.allocator, parser.results.nodes_to_process, 4); return parser; @@ -2195,7 +2193,7 @@ ParseResults onyx_parse(OnyxParser *parser) { switch (curr_stmt->kind) { case Ast_Kind_Include_File: case Ast_Kind_Include_Folder: - bh_arr_push(parser->results.includes, (AstInclude *) curr_stmt); + add_node_to_process(parser, curr_stmt); break; case Ast_Kind_Binding: { -- 2.25.1