From ae971aefbd2e46b83a19e4d9a8f6238013fff1d8 Mon Sep 17 00:00:00 2001 From: paladin-t Date: Fri, 19 Feb 2016 20:00:49 +0800 Subject: [PATCH] +added member accessing support following a routine of a class instance. --- HISTORY | 1 + core/my_basic.c | 88 ++++++++++++++++++++++++++++++++++++++++++++ output/my_basic.exe | Bin 359936 -> 360960 bytes shell/main.c | 4 +- 4 files changed, 91 insertions(+), 2 deletions(-) diff --git a/HISTORY b/HISTORY index 96cb7c9..ee7fd1e 100755 --- a/HISTORY +++ b/HISTORY @@ -1,5 +1,6 @@ Feb. 19 2016 Added source tracing for sub routine invoking +Added member accessing support following a routine of a class instance Fixed a lexical object convertion issue Feb. 18 2016 diff --git a/core/my_basic.c b/core/my_basic.c index 3ee4f53..c298969 100755 --- a/core/my_basic.c +++ b/core/my_basic.c @@ -711,6 +711,7 @@ typedef struct mb_interpreter_t { unsigned char jump_set; #ifdef MB_ENABLE_CLASS _class_t* last_instance; + bool_t calling; #endif /* MB_ENABLE_CLASS */ _routine_t* last_routine; _ls_node_t* sub_stack; @@ -1490,6 +1491,7 @@ static bool_t _add_class_meta_reachable(_class_t* meta, void* ht, void* ret); static int _reflect_class_field(void* data, void* extra, void* d); #endif /* MB_ENABLE_COLLECTION_LIB */ static _class_t* _reflect_string_to_class(mb_interpreter_t* s, const char* n, mb_value_t* arg); +static bool_t _is_valid_class_accessor_following_routine(mb_interpreter_t* s, _var_t* var, _ls_node_t* ast, _ls_node_t** out); #endif /* MB_ENABLE_CLASS */ static void _init_routine(mb_interpreter_t* s, _routine_t* routine, char* n, mb_routine_func_t f); static void _begin_routine(mb_interpreter_t* s); @@ -3239,9 +3241,35 @@ _array: _ls_pushback(opnd, c); f++; } else if(c->type == _DT_ROUTINE) { +#ifdef MB_ENABLE_CLASS + bool_t calling = false; + _object_t* obj = 0; + _ls_node_t* fn = 0; +#endif /* MB_ENABLE_CLASS */ _routine: ast = ast->prev; +#ifdef MB_ENABLE_CLASS + calling = s->calling; + s->calling = false; +#endif /* MB_ENABLE_CLASS */ result = _eval_routine(s, &ast, 0, 0, c->data.routine, _has_routine_lex_arg, _pop_routine_lex_arg); +#ifdef MB_ENABLE_CLASS + s->calling = calling; +#endif /* MB_ENABLE_CLASS */ +#ifdef MB_ENABLE_CLASS + obj = (_object_t*)ast->data; + if(_IS_VAR(obj) && _is_valid_class_accessor_following_routine(s, obj->data.variable, ast, &fn)) { + if(fn) { + if(ast) ast = ast->next; + obj = (_object_t*)fn->data; + if(_IS_VAR(obj)) { + c = obj; + + goto _var; + } + } + } +#endif /* MB_ENABLE_CLASS */ if(ast) ast = ast->prev; if(result != MB_FUNC_OK) { @@ -3310,6 +3338,9 @@ _routine: goto _routine; } } +#ifdef MB_ENABLE_CLASS +_var: +#endif /* MB_ENABLE_CLASS */ if(ast) { _object_t* _err_or_bracket = (_object_t*)ast->data; do { @@ -6855,6 +6886,28 @@ static _class_t* _reflect_string_to_class(mb_interpreter_t* s, const char* n, mb return c->data.instance; } + +static bool_t _is_valid_class_accessor_following_routine(mb_interpreter_t* s, _var_t* var, _ls_node_t* ast, _ls_node_t** out) { + /* Detect whether it's accessing a member of a class instance following a sub routine */ + bool_t result = false; + _running_context_t* running = 0; + + mb_assert(s && var && ast); + + running = s->running_context; + + if(out) *out = 0; + + if(_is_accessor(*var->name) && (ast && ast->prev && _IS_FUNC(ast->prev->data, _core_close_bracket)) && running->intermediate_value.type == MB_DT_CLASS) { + _class_t* instance = (_class_t*)running->intermediate_value.value.instance; + _ls_node_t* fn = _search_identifier_in_class(s, instance, var->name + 1, 0, 0); + result = true; + if(fn && out) + *out = fn; + } + + return result; +} #endif /* MB_ENABLE_CLASS */ static void _init_routine(mb_interpreter_t* s, _routine_t* routine, char* n, mb_routine_func_t f) { @@ -8830,7 +8883,21 @@ _retry: skip_to_eoi = false; ast = ast->next; } else if(obj && obj->type == _DT_VAR) { +#ifdef MB_ENABLE_CLASS + _ls_node_t* fn = 0; + if(_is_valid_class_accessor_following_routine(s, obj->data.variable, ast, &fn)) { + if(fn) { + if(s->calling) + result = _core_let(s, (void**)&ast); + } else { + _handle_error_on_obj(s, SE_RN_INVALID_ID_USAGE, s->source_file, DON(ast), MB_FUNC_ERR, _exit, result); + } + } else { + _handle_error_on_obj(s, SE_RN_COLON_EXPECTED, s->source_file, DON(ast), MB_FUNC_ERR, _exit, result); + } +#else /* MB_ENABLE_CLASS */ _handle_error_on_obj(s, SE_RN_COLON_EXPECTED, s->source_file, DON(ast), MB_FUNC_ERR, _exit, result); +#endif /* MB_ENABLE_CLASS */ } else if(_IS_FUNC(obj, _core_enddef) && result != MB_SUB_RETURN) { ast = (_ls_node_t*)_ls_popback(sub_stack); #ifdef MB_ENABLE_LAMBDA @@ -11171,6 +11238,12 @@ int mb_run(struct mb_interpreter_t* s) { s->suspent_point = 0; } else { s->source_file = 0; +#ifdef MB_ENABLE_CLASS + s->last_instance = 0; + s->calling = false; +#endif /* MB_ENABLE_CLASS */ + s->last_routine = 0; + mb_assert(!s->no_eat_comma_mark); while(s->running_context->prev) s->running_context = s->running_context->prev; @@ -12046,6 +12119,15 @@ static int _core_let(mb_interpreter_t* s, void** l) { _handle_error_on_obj(s, SE_RN_SYNTAX, s->source_file, DON(ast), MB_FUNC_ERR, _exit, result); } obj = (_object_t*)ast->data; +#ifdef MB_ENABLE_CLASS + if(_IS_VAR(obj)) { + _ls_node_t* fn = 0; + if(_is_valid_class_accessor_following_routine(s, obj->data.variable, ast, &fn)) { + if(fn) + obj = (_object_t*)fn->data; + } + } +#endif /* MB_ENABLE_CLASS */ if(obj->type == _DT_ARRAY) { arr_obj = obj; arr = _search_array_in_scope_chain(s, obj->data.array, &arr_obj); @@ -12924,8 +13006,14 @@ _retry: routine = obj->data.routine; } } +#endif /* MB_ENABLE_CLASS */ +#ifdef MB_ENABLE_CLASS + s->calling = true; #endif /* MB_ENABLE_CLASS */ result = _eval_routine(s, &ast, 0, 0, routine, _has_routine_lex_arg, _pop_routine_lex_arg); +#ifdef MB_ENABLE_CLASS + s->calling = false; +#endif /* MB_ENABLE_CLASS */ if(ast) ast = ast->prev; diff --git a/output/my_basic.exe b/output/my_basic.exe index 876f033f2977a41124ffcc47c31dfae4340d4ada..19fb4e8dc59942eab5c2d7858325f9d144f2f45c 100755 GIT binary patch delta 55579 zcmb?k30zdw_n-R&K|u%EL_kFy6?YU+P|;x-Km`Fs&=j|f(6q#6Tv9|G#vEUkd9~MK zW&Lg6EXplYOn;#*YPM*LW&0znZ26V;Gw1(3_q`bguv|Xr=keaV@7{CIJ?GqW&pr3t zJ1Z`Pt*8p$=FhrLYf)Qd(Ept_NGyQ0H5mS62E*zWBK5|Lyf-Ui&+?V5TPstT!Emgv zWSD<f!2wDH+t))(FxAw+kkYq6Q#r+~5EcIl)`BePv%U9!XfBw7_ z*_OZRePgZK|AODvWEy{(0P$`7~g#6GQ7+YW0fz56Zi9`-}!>A%bdW7S>2 zd*%7*7wOq9p3PFK!Mb$i`S~qyzjfvLZ9cf)wDNquAMV$$Jinq9?vq!Z-_jcQ@hi{A z1mHeq<@uU6xThn3Fz&-}Z;yNY%Jb`^aqk0oU2yM)dk@^BR#u*$-UkmME6>OE!#x0i z<8W^gUvoeZ^T6AU{{hM2sUCz^q|&p7uptfQfba^s17Slt?m&12-GT7g4BUb6d<*VC z_$=MWWT4_qJOE=uHtxW91>J#h&1l?#v3U&cz&M}oQAp3h9SBd)#T^KrF6D*o2UHUA z;%jOx+lX?tmY0cewU(Vkw_3{{B3rGchNxC+IY>mSwHzXv)mq*r7Svjf5v6J^?-Su_ zEhmXiwU$qbY_*otMAcf$*F>~hi%KM`wVWY})mqL54WL`=-)aQ3b1UL_U_>N)kN1o? zT?s*NTboth4lJ$Bvf-~m&i&1}Vh_N8}1o@2p>$5A*972&t z{LN{G_=Cu0*=cm8J@wWpXAK5i{ZmBctVyz$L zlrv`o_(cBh?VVcyAm1Ms&i6&O_Y0NVp#l>>6&V>pT(G962%#FDB4jEN{do#EMujEx zMP1RgW`F9X=p~`D*`Khja|Yu*)n87$gV6TiztL1>Fz}l@b*wbo_e+3Mwv+S`dM}zb z#eUGI)R}tG*p4{|%4t518rf>fH)g!<%=UMt`nV+LXdm=?lU#^;GE98|Hrm+PY>*kA z%=UBsM#tBLMyd}{^KAPxgKVJhYlGGln!2G>?Ajbtx1p`6d?f+04PLR#)D053HlH=h zGMb4xC`*VPuq1npB(mCGj<2crjjFL9VvZWyVqh^`Hv7m1dy>Cx4xSn+zEq`Nbyi+$ zrN*i|1JOnX#XH?#i$tq!VQ4YxPN6Pfbi5A|xF8TR12WU`Vi1%`hMw2*$%jC$KCx=V zd6&ykW2}mxFYboO**@|pA9c!~E*G$kT^G7S&F810V=6-ldArJt4%N9|9KNyJou~hMWZBTI=lIuCaj>FbC*SqzD zQm6wP9o=2XIoFiUjLt|r%58d*9LeK+AZ{i|W@z2nzmOhAJ;Cm~8Q+5BL#T1M(s>*U zW3hZ!$7KG0U85M|HId<&CVMi3BMn7Bf|ZMXv`PlyooGa|Ti2aF=9q@7d%nX1NwUA3 z@9(KD9G|I|^nesWa)s2QYy#02((5I;?FbFj8d}*5$mR>84imsbT*Hl3eOnQCLX1`2 z#Dl+Ww9ZOR3%5aP3MpY@l|+xEhmBQ#_){uWu(9e4J(3nSR((N_q==1GAL0=LQhBbm zEgQ&~YO72u2v7V&3qu`;ja9RV=ZvH_2$BPe2-&I1MY2#dU`P$XgEFpTb@jLj8CnZ7 z1N{>G3k5-K##(vH{93!dUelNd~Mdqaz1Z zz`Vk{p^mC+F8#5jze`B~lTbS~&Z9b^5#luUDKvK7x3K6))^bb{Xj*e=5~3%Y$4 zdQVw>01>UVoJ22B@)NnaYfqNZh%FhHXA9Yxf;Sm}BIzt}-sWR;B#^Y{n3B}ZUy6<^ zhK0ISK4`$XcD6R?q>D-N>uwiP+{)<4!zbvtIn;h)j^jK&gI;N9c?2L4uOrrFn5_A8 zXk=YRrPa7xH$j9b5K$adaTB80y2Vz4C>f^t%_x#jgBgfmtv6~EiNioI64cWe6j5=4 zOx?n)zW9Y`h#5&%r@ub9+RwMJMiY(OfW{f7d{Ei!Q{M)ltiJa1Ep08F^L+%7Dvb^U z#&-EwT_L(FtmAV3_~WjD02Zs>i=Jjb7zFIAHi8_o&~H$^VfN%!&;()_u_v`NW*j2L z2X2QtjvK4~B4r^#Sr{FqRLV zHDh3vr4A&5x)%75py5jnneb{QjRhDj><3B6LXoa@Inluf$`U$su05%hEqk5Sw76)T zoR2Z;78J3XCPEkBYaf(ejHYxOuAy!9lgIhfNFlePw%|)!YGkXr$54Ai79WuXwGl^m zx8z-7dR6w-6uNw@)R}z|V4*GywPvzY47K#fp#JzdI0P*LII*NDeq0NfM6+mIeW|ZM z0v2eRp@4cC^40wx(T)%zbU@ZBdY6PQ5Y&TcPNAeq!3I!343gROEh)g-j+iz~ytFYo z22nY9Dv9@>4BH>}nGWFB378Y=_0tRnq1ZFf zsg@C1`RcS9Ps#CAd7){Ur!>aRzEtk*>)d&&dTKNjZBl3HSVy6tdizS0c6S|aN zA|ti#Ch=P7en$lmVj-bGFxz0P8bcYZrfkq^4X}cof}LCNME{Jvs!Z!~-$#;)bb5x0 zBCc)JQm9N&L>hg(1CL|{Q3LS^J2}HWcyj;PNMAFm*vNav_OB#~h1w>xp|G-r7ArL6 z)Y*O!eIN%tD^VY7bsrQ4Myg1_t-Br1T56_OY66}Gk>C0hP|i7A#wr`=EE@qW z&wid+N88U!RtuCKe>-+WPz=7&pqe0O`GE9Ocx120@#A28f$lfUlCC1_ucvRa1;kDw zYllSZ#2iD}wji@XZFfqLKSpRAV^tI~6wNUdtLJ5YvR8cNZ>vaP{p&tJ<0#n&aOnL% z)L0DW8X0J`0dX*Z<0j^h;6ZdfVAXBbs4`rAlf)R4I8dWAXlspZDE_EcoTi_3#9{Xr zTV5rgQgXfKjWO%CLOrQ|7=6|Vf)wJ(UxM%bDEnAXQX4%<&Wvzo+A#CZT!IV+XJ&;5 zMe;W3@KOoh@P@)ve}81xO3Mti#hf@B24*0(rDlDA@@E~tThplg5p~BZDqo~lR`AYo z%bANm6t^lul<4m&?Le~LN+jUoHjww*iOaw#Ynz!z}>M6hq;lM~|EkNmELIJS=0B!o#>H}ew-ePZTpL(L~0pTLCCaEO-2 zCd(1>d(J7QP<6^t-Ze2U;QQIgL~zRI@sh+YvE}Ywqc>M>acSMcA5ZL5IdL93!T@N} z%MhV{XX$!TNtT09(!6Xd|Mx?P!C)=N9q8He?R#NBAVDL#A9@qU5`(;&QqkfFGRhX9 z_uH4xGZ-CZcxowU#?)rc4@q#m;W)OU*@?vAVvlZgUo*DK}LD3 z2}XT_eSfI>S%vr#Cohk6W+oyJZn4NSWVhi}vjP3=xg$XGsM_Ng{3=HuHSs%>0;T6( zOw&0%SanvF*J-l!S5N`Em4!GbWxy*L|IOgK;47(X`Cc0 zO_!%1hqliWC5;a1urzJ(MYZy|x^giXjjeR%ey#I*D>4XPS2%OeTtd8ZhIL{#e$%kH z!A(So>bD-Gx@~*^NrK)T7BUsEsXl-C?}eyXBR)w{{foI0?u3N^Ss@N4t)B~ z0A6{-m;0x*llni$qf)y2BtqzTMv5u886#;h@5(o)wC&xXFB`25={m++U-I`;x<)6; zQ-utFVjZc;@LOt&!vc$CZ}QW_BY5u-sZvY;pEn{->ii^sc*KJtHKgnUx;|=m&q}uh{vX9Nv|E@<>@I> z|08@`dbqTAJ3o}(UHa)A{!{t@_7Lx!F{Sm-z#jcX?QlJJWb~5SPUqV)W)3|z0WL(x z8`Lr0QafS_7GE=M>SS8P*wq)ct53fz(0;2}{!rbUfm}t=)Y;xrf95%s4z2xkpaW*| zTP(dK(=>j+Wya9_aRl@fnYVAL2d8)g9Zo>^zvXfjfEWVm)?8!@hqgi9dwF8!2SJ~Asz z%AU@PvhHlP<_)dY+xQPzb1?hnld@x5*MmPqijZks&h94lKg_pf4BrR9%nXOz%>$te*$^N6;*c{<;x^oJ;@ieV^%3S_dPHq{ITV_~nQoKq z`alC$fOV05Df(r(oE}q~K9ARo3+-Ep31=X_kbZaf`7sqpgonp#Oc}pKPA}(XIh^O@ zv_{7-&Uuo(wjnoNI+nyOxfxP?F_&`(4AM9cPlh4+R_ZnakzqO_)r1JFoSOv_WerHM zO3ubM9mN`IJe}u<8Z*cC%hbSQK^oxu8LPHjx*m6fLrD=n4@YS7t@DhI$MA5KRfgn^ z9_VRBvfheD&_6;C6VQ+0;VPl4dEG7py^kAu*QWdIvTZE&vaLu+LC!l01~;H6l$w`33G!Oe$pry! zqTcQit1IGY?zq@7TCaW`)<&s)-)4}Q8CTQf$4h)JS??1<2Ef*bNFiKZy&z4%bh5u= z(C0^`^8NYkSq(24A4#fr$@tM7X)!{6Lswat-~_?x6exd~kL+z%^3&tLV(0n6LJOznb}_Q`woe>SregNRnk!^{(qiFv)jg_4&y*)-@ONrLOkHC0L1fufu*%E4I6CP;xW!#-5Mf04gm zvSiB97lfbbI%F)C7w5vv8mm{dxB#POuskLZMFLRZF)e2oxg|72ls$0JjzP@?GwEhEsd|r6590Q4M<6&TpQ~RKhobE#-fH_#6 z@9+5CSQSj4OM>>r&E?ak^$FXcm->JNRV#J$dH(P;lY|U=r^oPbrVVQEt7jr_C*a9P zv@@YKw4mBl^G6KBMXs(n^atgW8YA33S*Q{!tUmmDZvzYZlnx!G)3fIB^J!nJIk z+3+*&r*Wrmi*RkfnLjimf~wy+V+`GVXO5JH&*zyl^L(k?)3a7p6UI#e*aYeM(N+)!Y|H@l#Z42$m?hOOv)0VBKiDh{rHpDhe$pP_-jbt zo~c)1o)uGh79jt?b%%bZ=gs>2OZt6}{*BV#z{ShWhWl|1(C_p-Qh%SI->2!{D1A0A zckl?p8H!|^f3ci0AB(Uu|9sZH(%f75k{j}TLM3(V=^bw6{Y%?R<^?>fG?#Aoln!oR^N7opIc!njg8JI5AP9j$ww&9IZ(o%T z7?*3W`LDC&g8f`e;rqmfAhcD`t-# z_t;il8108#!tlD!3ZX%3zSi&bywGMg%vjjK4dMy~n4Af+FDWsMmp^vqUNAZmL5kYc z65e6X>@H@^yRb%7n-#bpnCO_+W`zCa^N;7lGeND0~7U*2lSSID=*FE>u%~)`Nd{8E!>1iFR`Cv%i%Il zFOkO-*p~zutZn7=TvvLDb4;!?y`X-jymW%7#iZ2|zTQ)fuX=Ygcoo0ZrcWY_MVW3| znJ~Rb=fhTCb!xLRN7d^l3^+TW9~0f`5In7FIPIfs(R?neVO#zYF>8B zfn*pAm|jN!zV5{I`mKz=6ct8<8Ykn80rVYP+exG4l7>1d&;CW}o*K!st zd|UtI&ekwdq7=BGL=-9!(;<<#ju-_nKg^E{7r_ZtFX8(-OoET(ubc3-`oQBnzWnvx zvc|gsm-(pU9KWmywfjVz2K-`YkiGLK~6qu z;rL*3n2uNHtcOyV8Vp?0a^c*Do6^jY;C&D(0}e_?;Eu0sd=*x`0mW!}FJg@gWt#{KJY|f10i# zF_x4~AT$v=Zuq(h7u3Cc+VYp$2?uVCb*S7D>z0-a>Z{dVD-SdFE)hwRPut$3>|>h$E&CwOv?T^8TI=gpQ&s4_?4@T1V`=fK(odMtBdHNlDr&Zm z@I?s3SfAQVe^40Su7ZoIc^==p>IQ-*=xCPRWIpIna5T2WBd5j zs%e3)wW3L6fArvotIFAze3+vM?$JY4140lQ2lu`ac1?^NfJXVMb^Lutj-R02cPn_$ z)g~!*Rdw#_c}(gW!}r|2PCB`Xk6F{P_km3qboJ{s+}-c)JAI?)1Dp7UHP^H6`0s0S z*!?`+*`+d2F~cR}Z?O5nHj@o5gY0LoId4DLdQm8bnk4#KDZXNT3SXy*K+CBm2R^&U zZ1_gMPU7xvykrr1$rHpiFeRM`2y>k1v|jSN=u*h&<0@=JIxH z&C>e&`1rL&QhFMHW^Me;28kc6OT6a8w48&C%n=@+S#VoI1HiRL6Uy5k$0IqBGAkh; zTH3?zN#@iFB>2n97RuvxTAJl(O!Z3S4qlZdBLlj(EZnFlGgs79`VYP(j9b762;A#c znfGi~^N?zl{a3cI*ZHtJMh;m2pxIEm9wpn#ZRK~>18|t^q%>_z|4z<}P=8tqDP0tS zG5DLMeE%0c_|ZE8x(WH6XUCVkXnB;s`Vu{6X=AoE5qa-k%76a6XSHcvl+;rYF*Tw# zwVb>b&QzPcOH7NYT}v=GFO^ecYE$PaT}HEz*n&#ugr-fIq`6(U>2xb!BBz$~NA4oJ z?Y--0h{4?a+1XVu^N6YIN3TPygR>*IQE2tyhy3tLc;jDS;rbq0!I z<%J~k1WbK|e9ZSz_wX)v50$#K#tqY@=a%yF4dICsqJg~SH^jMO)G^fe zl&AWjm&+mQGEfL(RUf&?;njKVBJZCui z!+GitOK0*Ke13n!Rx^fJ|8{7Ob9tcL(q*U*+(p3Dl}Siy2@!!dK|nY(Rpn&v;=MIF z7W@{SCe>E#VfZ}3@EgHxfzNT0*j4T>lS*A?d=bnwS(XsHLAHrMg;O-1Z6erVI#?pxu%k~4$kY*Of9Vzo^*EJ4~> zAqy7q$k(sy!nXwb_RiD{<*~GI=&O!_s~9o*c=kgdd5)ZtW25nAQh#2|`zalLf{{VY zSvoBW<_ncn>9L#mE~SqYF_(X<+$k-#@rC!U5080*DA`(A4^!J}G#nStqwjm3N&Kz* z)=3$+^6Ty&CCz_|KX!kf@fqq-ZuiV6wAHB7+&;n8Oh#vmx^>kkz z18p@JBar0=TA-+k<-b09Oxp4k|Ihz*_vt!Ix8cLLhWX{ciV<-0O?=SSTr8Ze*xHvR zRzJ7(Rn{_e6p0nze_cfN>c`_)tG+vhfA-uCzVC@H(&jAwA_L~Qh&xv=zQeaY87l?d z!#{q~)VkB>LMiOVtN&Ad!VW_rYN1a6?=OUWa3;@wDyH*qH)>TQJv&HzkT9*3i!lk$ zSO55&-~LqRux-$!P%DcNG>19#mWR;d>aX~#Pvs6evcqgR^orT=5w4K!X2XlP55wJ# zOTiU^?|pHN!}Thz_jmB2Pfu=D1G51G=lWgzp{LtN{{fp=i$@ogs6EjrGBu8>r%L&| zPn*I{ya>iFhB=|OIfAE~>8S;8{miKLlTZ{&h%8SaJ=O=(9H?fL@;T28?teWhISitI zj;lAG*W>;Hu6kVm#bqKSa36sC^}DK%Jo7k{-hP!Ye9puM@dutu?Og@d9>i6KYdJ3W zyZcVxD1H5_yyf#VrI+{cInQ60IRz{B&*7Se>jqpm;VQ?q2v-Fz`bL)>mlM}rxHjQ> z02ie{g6oMry!8vwiKq9PsZr>xo8h6TAD%qb-!?=`kSU>$oJo@l6O!ypk|bLzveVgQpe_E(R8iLuPW8ndAU*Bo58;aZF9eq2xE+Kp@IezU=X z``8)q6j`zj~fz8^&9`TqKnx@)<8Dh7U~C7oc-5MAgK$v{Uv$5H0s>km8HSL8F283e|uyO{5%soV#9$kY0J5 zci28;(4u$^$AN_?0TEJuhK za1T*4Uk&dc>hg2uQ6P3;0mkYgTnNM#`Q?+;RkM6hExgLskyzFU<+r~&f(7z7UL6!h zvtjF4a>8PXYepG5=`wt8v&U5Fi%kL|7}ff^OoQ2;WR$dS$M-;iF`-UauilJVZrvR~ z4Jvsk%}f)$Cu0NgflN#>RezPHZOwy@>UyBzO$t>~DbExRGdNMU?l0&btu=u<(x2Hi zq^X%F>*3LXiSI<<1gI-#rlQFqDI!>)g>!j|jP>bMqAv7xs1`(E4b*}PjE+YEnj+n1 zQx$%d?uGlw^y+UvkNp6n@Mu3DVhdie*k>p#s4NPc39OqVk`W*J79b<^6>NwoD3*_4 zohybaQ*#i60`!2(LPQEi7!V}1e4xQ9eBU7ZJEfXFJxR2!t0y2irb;p}v|u7{%Jjik zA}6bR!Q)(j|A3OU`E+xVy{!SfG`w&RylHNDuK`{-Z4an_-hSTSHVMLnXi4n;BENo! z9)b}dzp46VqKBNT#|AQC86rq55lw7qUz{Xad#g`P5Y}p>iZ}@oW{D_+2#Qj!Y7c`$ zh*70KBF+Qlu{WTpz2(g0Vc9;muCUI3-598Nqe)S)=zrVY`A#HYk&RvzMKAsWBAFk)-|O_+JOQ zn#D9ID*~Xq6P8&vxuv)BBx{N8Jjugm%Hqnp5#;g_zNi~6V4Tk?=hF_(iST%O2tCmg zonx1fALWaKp;B!D|Kng>r6z+Rreb@itqqw;e>iIxPPV+Xf4k% z>TbEGcjHFe0MygfVC_j~$+7w{@8sl{ToDjHXT|%d)oFR#X(7kh^{`1|s`=jk^cmhT zqfWar?CRs86uN@%hpTz_H(qWIz`JK@xaL8SW?ct1Iv1c??-!mFWdq(-J!$}fu4;>zpq>0AV zQs)@R#`sF%-j;LE+Ls8JsT$1G2u!V~ff}hoSf@HuD|nYTJI0VZ^KmE@K_$lX5=w&G7K%jnBOxGbL_3>ocUWV7k``E6!f7?PuOxS|Z?zC2^{o*5)zbkincE z3?C#l2yuPRbaxfwE1k)1$}VkQHunOAGQC1{6!iA$gKuRr$sEfA-+6*1^OxV*7@Ys9 znU)Kl8-g|-QF|ooGmce9D%!n+5LX1OSeOMCO6qoGoMZ{Fi*hSa(@pL_Hc zsaga6=n>v9K-TRDUz!9IDW2T14CMr}>WxX&PrSc^MW6o5 zY_O+n#AZQ*Ew*5e@9vDqG{Y`>SBLWS4>3inwtl!<8uTzq0x?)P^^)tum127#;x#ZO z@xeaOUG!Km2hQQ_i~0Yzhf3G;=^tIkW>>%Z(J;&`Kjr5>evw)D)1R36tWPIO=2!XN zPfK~+r@{1i=f^RufPemJ7QMutGDS`h6X-_>P_20qU}FLxo=bS?sUlyoIgal=H5hWS z_f!lI`)ok=gr7nDH~c~Wl^3@`k1aSQr%;*r-{pJax?(ZzDB|9>C*Vo#?UnU3U^iq% zFg(BOv!t+1{h?hF??rJ;es|}9BOPog;!KUvt0IQq z)fJ69qWTjR1lwdM@mBo<=xGV+Tz=(GrYv7_@1lMHs!5_n;|CXgS}08*89N#q!TGFZ(*U zRM?M=a5&x=hsbNfK`$lNmk=DnPk-HALL7?UH!}wwX`xNhel_-m`Q}IFo1A+t{vGud z{R3HbNJiqc_;;qN5AplI$z`*-`prmbQylO0ZRaqHW`jQ088pwcsNK7`TxuLI`8J}b zMg4Cy5?gw$K|K3kC^zpF3VY=YzWLku%2O07NjuXp9^syWK==ugK9wfpxDb2u5Vqbt z*8q1eOhMot-H*aKB91;>|6uHF2u7_P^eYf|_q+Sv;lKV`V(@=?(RY2MPu}MC?}o5( z{MGL|S3dd%FtdE>)rhUXqY)Kf(=vJ3R)1TnQKSY&sLxejh=#N*xxN? z!V6KZLciwY?tXXQ=^H)MC5~Y@XFn6lC#mzKdv4-~)B-8}CLUGSzt0kRr4xcs>YN1g zWC_jC#9qm@NF#r*(Xj$gaw<9bxwUR+mnHI~a{K>8n%shd z-cQvJWfW-`T`8j1C!DKWhi^a+gE%%kQoe?Q)>w8?;7x?!-?2--#^T&Qnm*%$S z-~X5_4Q$Q3|1@ZVu&px7~L+O(}j{VZA#o~)@K-2quo}hcASmYN-P;^X0|L=G(?f6W_Gplm!6FM zRz2j`&sunaAE1HfJ^mP#(CC;P-F|NbSY%G6xu#~m!+Nj&zdzbaUhv{{c(0$o0(c^G z6L=&4T*cUH{Pq7$XhL5@)HTtUih0wQ&%Mwkn0yWG$=6_m%^X;yc246DUx=jHRazk$>8xVt5 z#niW^zki&B`i;pifTmlR7+)hSXUE}b#*LUv`M}_qOhdyv zYLzF4{jlp2-)HIHr%kO*#{#RtpqI;0UwMbkVx4yONi#hB`@xK*QTjqYPM<+!pa%S~ zk|!}ll6e_d z`m!9xb}9jWELuAIg%T9VLfOa42tRi3-!-?Zl0TWX@@}vPlb=pszQt&;C;z_FT8nr3 zvoxvW=^YpR(c+Bl7~n{>J)Ac_+ywEBdJeQVz6N__ntr!_rl4V)l%WA^hr4mDPKm}z zzkaH?!kF^Ut+RNs(}S)5r&rgylZv?wdss^PWXBh6*mRch;YUr|^-z;`y{zYOx2x&* zjUQ?4iVSLKSFe*=yFyNqq+UzAVozLMyUr;w!D!dS4|nVjM!Tl`{(jST-PfdD?|X7+ z6590p%ldcYgG~xPu%jZB<$44(?mexok?&mr4=*X91CC!^TV3yJ61uoOB(&t+9edhC zLMQ)zv`LGn88>N|yZhw(o*bgZ&Az{^e;2xmHRz_zJC=1o4W0i{H+49otU zPFYb`ubk4}xjZ4fl~eFL8X<0oW)?PY$1~9^(&rMRSd&P~Mn;dAvSC;Y!tfPwsCo5& zJABckP%n2HOTeTXux8@QjGEzWA-{+53)Ap?b=X0D{IZo{>{6z6f#B3A&vjv4q*1lX zu`aA!x=B{jyE3yB^swUS%EtHwJ&gJJce9lfU0I?~2pI8)f*INph_2mdU&hi(hEI|T z)l;ZSIK0Qfh)WQI;sXFjzS;UaJXRUhAg zgaDfm;t!9vGkC@fcp!d1As2b011LtELs_9VqN>4 zq-a#j`#2Y8-Gnph1GFY`2!Sd91y$>~8AE9uO`mX5gVFJka;J$!Wu;=i2HOGN^K}*! zM>!pWn$@IuB#O(qZ##2O*AK$(gLCo65p2NZlh|H9ce!#FXmqHNEobD3?xyvn0*C-K zR&`Z+b!Wq(w7^?CQL*GxY$140_1Q}nsQ5 z_wqpvUw0;>To`!geZ^}Ck;~Hlv{{XaU|t@cQ&}sVK`9bbWGUJs0K9K zX*rALuCpMLDqrn<_M%1yl~w=?mFs%2=wTvK-F6nM5ZF7OpRaD542qVV0ZGA!x=vKt zgo6ZNln-dGeuD)svC3z3q$n@;U?FbFY)hz!GaGctyr(DgZHSkxqkT4-F$THw%8Yhs zCp^>xD=Ln?XdZzoTEX1O2o*U^!2gn-dOyM^4T+whFl)B;E+B*Stn z-(`D$oD9i&Wt8HKW!22NKsdbELwie?xrG`OzEVlpK71!b#4RoQLm3_Skehj z9%gNuyu94@5E|AQ-|O$9H{Bql1Qc*CUs4~IJl2z}!@-)Da2_dl_hKP~yX*t9kj2vV z&kjj7Y}c>Had*GF@AQqH=~6!J#j@FUrF(CdFkI^cUxAPEc`foh3{!WbBNYq=dQree zY>t;pRBR|U(rGnx?vpqZPubL)^_3>aDF=G9nUY_&(z6eXl{%&=1%22+v4AI|IG_xo zMlRDB+5uJRNp*gBruBKFAmAor%luAdtD-bvl{Ag zjw{Ujoz7&~_`(TxlTy-;Ju9WFN4##>a)FyVyZ@qx05wx>GU@?z$QMx#}99_m-OdQF>il^a$ykb(*$(FwSlH$mjj(~ZJ?>xbbu2)3k}-7`_Fa%M zN#;rb*#`jS`Iw{3NMwVXuxQG)HI|AsYV0MrUv_Pvso3Q}Tdxf?6>9|g%wYDa^w?+0 zQ$yHbqd4h#s_3gn)nhA_ABV6=mZ-E!Vq+`+dkQ1;S@IxZ8yo`QTy<4o=Vcb%MF2$o z%rXL8M(0TjopV%G?-soo?&-8S;rV*vtzaE3IsIPWuUUZ|VV)B08cL)o^+_zsfBy?m z5#Tc)@l%H;%w2J9WTIk?$h0h(y<@K6t%%F#lYFvDw!HVB$0|J11o&F{E2np3exG#@^kjTsMH3rNyZhnqZl zbf9BMk*)4Lh8wS6X<$i< zTR2$l+{gAl!(zJtmBHLb~k9pkZT zOJ^$u$%`p^FGwCzx*jW?D&qR`X_ivrk5i~|5+HWF(BZm??QA~s+4|4$E@q4v@m=%% zU2$r!>j`nJ-(lK~g(RcpY<(+&;)ub#N{KhK{&5^;h@9RJVU)xGItx*(meExCPrS=Z z;%Kr)cB@<&x*NWMyUnb9seFm_&nT*^K(>(){D4jf~sb_$5~ z)3zYh0&xQ2GP4A7GbE-mljdeI0$Fxv1!$F|0bb4`}dP-;@y;7U42 zRUDv-&=V1`XsS&g2>i*ydHM$^*kw3-@?a3sM1 z03JJqz%FMCbr5!FQ_;Iow7AR=0{}4aUSbrn4fY0W?M$b5hQ9eE{*nk z=^ft#K~=t4{Eu^`EqyL zD}4;u`0|XNH_vCci9&#eA-6ar3ciVT6a2A(g92@7dzZg6%U{h=zQ|ymCKB4~$RO6{ zH+6Ivp`h_#J*B=Uc&6{@ouy?Ye$|b0XC!)3O5-s=DYh^Z6wNXVo7AyErCmZpD8E=( zs^ol4Nz8<=XAZQb6{1JF2DTZ5QWK&Qo}U`7RAsVueFr^?%D_=q7=?vFNl}0a6igtr zOSt|`_>hjMQh zhj67sHp`ScT9g^tECul&%9d;v6#-`r6xReA@PD6=0i4blY=iUUl=rfksb$S14EhJS zF)7Tlmi7eDgzLzmc~DdGp}FjjisK~Td8_7j-%Kd$X*OpsQx_Nm+7B%3wz!mJbMaCbeT??xDMnp8zqghSFBS=T*VNVfpMS04ST-M8L{Y^(f_QM$f zeG-=Jq#3=3(4B>?b{UM7(6Ovodux8983T!I^VBz zusIme#uHC33OU;f4pK4oKCPJGVAc!-P<;p*B_OU|O~1#(!G6TSyctSB9ys{;e!;;6 za4?BDcvLl|DWmgPq(&0a06`LpxEB%4mEfUm67@EhRO^iV+8(P#?eJ&PDEp%8|rUshg0Hp1H|TwZOrxKu{|~}c@eotMN@@a zPUDr=xSU7v57Evnw7j?y=RGvbkD-3i5@(hc?e7e51pIDvj3mSHJvC41U%;MbnSvC$%vS-#S)#F&)7|Ly|nhL(j z@p4=2UokrT>BY;MB4=S*-44=J9J;#^5=NgQF825Iuv4byXP)tVj=6)E>|C(j|wwS zRW>NM7qT8KRe8RUb<;GCV4}OJU!w3OG-;C=t8Q%Rs?=?wKbIy1& zD|1W}(aG0t0FPmTGzS7H%p)n(%ErTV3YGU$L1lgsYuU3vF9?+oM9WS`)t7|}L#TD= zep+@qs^%*X7P0nYP9q#8{&)IS4LZ<&B5jU0#`>N`Dy79DZHggAq!|!LLupC)9;82K z%Tr#Cz@*5E$=pMVtBCarKC4aj(TG_1RKm+`kvg-H#I_{zDXWp=X$ zT!FoYG|#~S%J;?WIyZly5a!AFktJ((GC~6Nk<;y|Z=}9OD3m{iLhU9ENCO1M%hx@o z;Gp$7lbXQ+lZq&~QIvBUAr2w(poW5f-lY`;ld#1hA0uiBJTdy%`#)k5ol$&#t@7WA zte@8?+ZCVmQPw0vVkR{T8UfkKLLIL|_a4FYlHOykry1S!{32*7$ar0ivCub0*)@rE z4;!(L&>~$d&Sn?N_XFkENo?%RG{=B?o$QwOh7~9`Epe8zm$Z-7B^E@5v?IEVhFM_j z4~&Q2sS~mp5D-#q-cnL4Sx6ts%k;brw41foL%SGKm_$2+^22qk|38r~s}bqkm`uXL z0QI}e(#~BVR@pL{O$m>IJF5|)Ncgua!BbeCTkb0Vo>EX&|3oQ07=c1b{tn%k6vz@19aEY>~zJM9>+ zhOvU=t3nwwixvHA;zjsOm;V3C* z#W^_qDt=R=l`c0@RKPN2(v5I07AT8uWFyF*wc|$C>Bif|0Z>Nmgx3@5y~}7WWbN3% zm+eT=hod$UP?C~uTkGfLx<*; z&vJh_ILR)fc1jgt;xtg6wH4uN<3X)bWF zLW!BpOqZ~DoBXsyBRn)?2$)={%`1#2%AXFuyT2ym!=$;ji~Bl z%E{TRA8W6)oWmynyLQO(%Zbb1*dY~KIl*|%4!O<4_y#*<@wM9_dIeXc@kyQd>jfI@ zkn3RsHnBtUk@Poqh(O;xK!j?eD(sNCtl(cI`1eb%n&9^=hTW$ZYoK@N;^y?;w(y$i z-Ab?Eis^mwHmxBI^p1ih*o59>9A1*%?Ozw@H=*~$+mzI~EdO66`0gcFO>iadHc(tI z*Ff>FZOtjZ!g|dV|7fv>*cDU!NxeV=#f`8en^641n!ls?hJ}QF6N<+!{`V=qcG1;S z{PYyoGPXc3*g*1^Z*5NU`~}xc@~0MFCCL}-1sX{H0xZ!cB;SmrO9^>=xb+egKWF>* zDSn;p8Y$jIFW5lws`BO(kC}hX6klS!N{VOe1sW*61a@o_ikBj(8O397X7S-T->;dB zAG-D5r+DvMuaV+EFVG4$P`vP#<`h3W@0uw-O0VFG)k=h3pn>8OVBI#Mcp8$LQGDWj zP#i0l%_x3v`M*!`Kj&W~#rNw48z^oP+Zlu>)nlsE+;q(p@1R$3#S~X>(VEgg@qsIv zQM?n9no)es0#Mw&8N=<%qlrY>E&o2n-@N%6DSo$Juz}*gVX?lclWP6!Yo>VJJPore zrua_1Km*17VE8tX@!w!UHlz4XD~k`i=@K%Yq^w`c#{6rhN)VX1W$slI+)vvRb)zz4 z8Hdh%8Z~nV>rPH;PuH8SwLNvp=M^l9r78cbU_(dkxPfMww!!Q2eATE8 zh-AW4m1fq(bAq%(LEp&oF*yCyePwPw1&H}&Wg?c6Yv7yKn>boozMM_?*PIwJXyTKz zFV{qJE4G(znXUY|l0`~~Zcr9hvXO|v-(HDrfxlg^{8`DmNw?gsbjJBZ-M=W+TVQnT z!7Na;;=y=o1eTQBapI*;7+k-AL?1Nug?&@gMxFE^3^OP32Qe` z;-w7=)ZeG|9R0O%xP+L{qOQK0T=WgOm5_o2rPV6zy!&;g zGG-MUEB)V0<$+Z!g@q~~tzy|lH{E%W1|a(j!su@46 zL)#2QunokPLU4#Pb+l(efZbl3>8CO431#haHtJs$TYnvu=AI_+g_`!#(d&iSvREa| z0Tz5WO(}M;R92|m=U`op1v2^~dRLzV_yxOzvJl}OgJ(1s;a~bS7U9=sDl=BFkgJyA z;ivSZZsYm_6mBV727CCV?iGn1us35h+aKx96T*bL1G>nc>nu09R)CS0qg zYq+|*w!UaEPno=imAk2OmFuZE(e6^~sdReK)6;a)T+w=}GRDbT_gtWt0ab=;Yc3yP zucJh2beaI%>X&Q%=%a?Dx?1I-N0})m+Jtxrgb<;xcf%=s zxJ8SjWWy1Kl%e+TsRXTM(QY|RLwPSDLMz54d3qm-CQ_n3SPNiFNjdY8A3x&#{N|s zo#u;391%o18q4$8JB?r4)V2ZRr(iV?_b1osO*1;4B7Tt+E5$;JtL{O9rasA4H$|_c z!9LuFxJ2T08^i|FdHJI7WM#u0h-)tNz^$TX;RZ0@PSzR;3J0m3sxG=TJWLJw&w`;1 z`M10C!*qZxG`|x}p+6?Mk*?a=D6><~oT6l{V_{xyU_WG|5afRfOlhbyUI(Me3WN(H zt3$Yithg7W|GG|ZnZOi>z4yX7j=*-98(Ui&5mFVXKGj1vadeL*Wa&<}#w|-%*`;$X z-KA%NW#3QIFlruZaj6gqCEzaBI^-q24A?wH>(XIL>|Ja;>!d8Zi%tBSUf09Z>+0w* zYCVQsfS)`XgyUp*iQ1*wC2nJ+fk|L?dfk@T?B%L=SGg16h%( z+`XQK^wq%5(!k32`B@#_5`u@l2*AFOViwEPBflue*0XMjq2Y&W%?x?`DI7XH{b4EHoi-mtytvRcoNK_HLLu(aPg@v)+}R zp|nWdg(7Yi*2^T=GZTgNK2aTrs9~W%tO+9UgP3!uNMp_=6%tm9V2ogCNJy0ajq7iT8PwMxn3?5n}8PzTP|!af6AqPE51Q~J3@dG$JwX16)WOecLq zB^$B3+o)cMK=wmwqEfaImPY6U%F`QxLTeOMgMbJi1 zW7Tm8NeXT8G*(eKTnaXKezu8?qA2TL_kflwQt6XLd=j~aHWZ*A0Y?GKV4_EHN^(^P zdZZJNjgH|LuotZr-o20(2&*rJ3v}zjj(pegx=j=e=+&@1l1a-k^{sY#2HN0GKbf$4 zo$}Q^*fhQWpwdQR9U?R^^R-+E-G}sH+x+^2$_NGWuui#7VRLb-Rak%Aepgs`p^G4U z?LkFtv}&r0+*WJ7wuw1Y&s;x*_Js+X)AlyfNDtM&rfp2o_AW=eQ`>k%sg$rwsw%$4>O_uiD zbQB|b-3oMW@4EFu-gPT!_p^Z=k{6rrdEqi*7TBl>2Jh z0kbRUFU55~i%{OVpY`$cN_mBaD6c%ghW~3ee+0C|+8m83|7`Pz45GXRdS2)t`2;qW zVA+;*tFelRAdAE3=~w_^6`-SS-OPrwDasd{F{M45p>%(c^}%bwgDg(^WPxITkPQy} zzfXmx##->MOyxfhvhH!?vd|;&(*Qm=sG$IwHjs2lzB<{Hu{={~zt@B+eBYu(K7_sC zUt}vO53#NtU&}^mI{*KmzgqsGn1`6e?mS?hqbz%fjdBlyp2)W5ah#1K+w%0tHcuR9 zCv6;$1<38AbmBDwf^Ojz$JwbNUaNDCiAq-JB@wMzOn9D@Kg0@nv>K^g|1cXOJ!(-l zKa8I4PDuJsTT(i7lyix)ehc=K-mJW^g>{P>4Z?zM*cW#8 z13|e25i$&9G2`CCZgErYD$R#~m=Q!~>Eyfe89~UGnOYf)H2RFdqMUn#c^@k`QtP+E z^O5MW8=#;3Nk7%q;Ins+)w4J1u^S&{1N;L(rW0y)s`A#OEav)xG~EcmPfkc4 zbqcxx>E;va0)$v&P~IoR@&oKW!Ao~A2YWB*ulfs!FGgrR?tQpAy&d2KDL~UK{@awX z|Hn$Nk<3Y#w$f;3@_NQqleyU>)}P}K}aRhTF{edN}A^!n5n** zsuVuPdR9_)*v8tyu*TaT#5dR|XI_Dg0*+w-joW@v+eMP0{jq`tzrsFU24;EIF^5{dc%C&h>BB4G%o2SY3Q!dT~Wxb3E}%NQ)!T1 z?|3=Y5CziF^*o;4@9w)h{WE;iLa~+pPq3nE6yJZ)62F)=jIMB!L4E`JO-Ip+2J!8f z;t^l*OAaKyyM}2BaUWCWZDk#=MUEr%io6-)Q79zGN1tSUnXhu;NfwZ)(ah!wB%|@^gF5K5BQ((7sQ;5> z)F}Q>GwU_-H{;UkiT14hnQ~S9{om7=M82+<0e^Ee_0(O7cm^kq`6$WHu&l5>$sTS` zB-@0zJyF^8jIOL;&=Qk0JGuEdA?8GN#1xG-jj}fyC;C6j22?UIf<|YW`(SFAkB5o* z>XM_Ru4p+WBOlz0QOho3RP_@{jb@{Lwb`if^G14RqjSAd;kqEfLC7)vRr7{68cM=U zIqGYELiIK5i94bE{A@!|*uOJm)AqF9!>)>1Z#~Ca$Nn-@D+9XdfzuQ4>lFG}676Qs z&xy)k&#~^8?u7jsP9^h<<1}CNmR(P`YdAc>owt6L^2npCeMABhf=~><>4 zH1q-AL=RaPw?+X&53pEC%0(&o!4Lc-xvc$vx9NYB5KaPmfdkAtsiAiKg*TyqubWf}w-uEJMX zDt-b9KTr-q))jNzmv|=98662yLuyw%>vSqq=brefF5B5joU+gTc0t5k2t`KKAm`R%OBm~sEn#|-THJE0be3XP7O|8MWh!)v^7>pYM5|b>6k!HSD$C_g(LL*Ra=y_CNn4 zCT+OggA62VuAzkTfdmWj6mE_48+V`vS|2ZzerwD%Iuxl4>lhD;?NQC z$2yK<{*nav$NAgs%c*yN8ZyW(%Aq}2FRC?TL>^;|GQrho@iCp?Vcpy<#q6+ zi!%zmswfHZ&N0$41BKBTq zHViy<=6NjV2W-9nncW>KDwTi{NJ;|3Zv^3R)kW^)us2OZy*NXio(-TW$yV&AQ)=WB%!X@pBb*?Ehpl#6u7Q zFS$Q{1+2u3&{?+=BN*8v4B+{Dcr6d4ON&zc!k{>4VceCb@`vQtdZzRSUmlI@3VRh_Z;zVG-yF3pXTE6V^ zJ+`XLP30!{ID!4{+`nSFjsFua+|vNX3FXv|cm96SFY;0R!LO*Qu$Mp1hU7Q7AHAkR zG)7tHE*3o!`+@u)Mq>}@w~DYf8Lk3~FtEhX+J0}_e=Pcc@WM7xGGk-@62Xa*X{nXx z0l~|a%zOR@_?66*djwbQ^uV+n*B18p3@`8Uc192)r4M%I>XHlIgFSHFi2*QQ#b?erV8t7?1u&^K7g$CdeE zJLo}l&+Hd=&=*|vvg{$du^C0n+4`B@rlkQyWt*sCT-d8@1d`` zw(#~_dui5{!P`6b((Rfg@u0~Gm|FVDm+LRd#gz-i1--m&THwkelecT<(@8bPfIq#w zsRUKP*~j+b611_L9lD=p?81CHwdqTZ0z@d!c7;WW-R?pF`Mpm%PuVH^=;YAQXfUKR zofs%4jSUo2lO@FzH9dkIGomp21s>duc~HV&XR}@N0Iqr8+uojffZo=yRVc<`|98#& z-<9&;65&L@ZTCM&i*3Ga=QrN4bc50oz4J(&S69T9jW6}CC)j!I?9B)12;U2c^(I7j zpu9==b4J_`&LhF3`@yXw_!tT9C)YVy#8*OaBJoi%@U^6Igi1%_^Qu8=(P)h_(BjAl9z5?QlBffm%OD4YU#J7_8HWS}P;>#kw zuvqv$BEC_?w}|-G5Z{}`S3rCj#CM(erVw9byGP(nBVL2}Qiv~!_>ze)jrjT!UncP- zw6$G_XrcbHNQ&}qCzue#%@W(x?m+dj)AR8f+|WaGUDt{>gslziIfv*BdY#?idu$L- zwiCXmyGh@L+~eM?0zd2gOmz0(?5IEJ|16C2-leiK@G!6ZTPU~eec$7S$8`JW@97rO z9`4iv2aC=Pmz*Go#- z^e-ajk%+}n_NRq(<7R}3cy?{)wHky^{u2Ced3r-gvSCs7g+e;v-e`_vQ-kpCtoHle z&425_GMTUb8)v1e1+Hj8YX1o(t#Vm&Qpf%nR6-NW>QlI74hw{2aW2%U*_fiP)_N*< zmwn_1x=DQ}+#kf`eOCTeydX?gJ?h!jPW%_oTzjGRqpAnw<=<&d`Gqq$Lr!uQ+drJZ z31w{O-a0`yr<>UkCu!dGUXb16B)yOxMQ=i_XH-!}deo@!*fHa5W2z)AY~wxh{LkX>|QZ?G>l7d{t)eK27WY z&9~1d1pis3ZSwZ{BXQ;F{Jkg%D^uu1FVEUI6-okknm!t&??{XGe|XSd`6I1$Y~%O$ z^&TP}zfTj41}_H9@!_mYRa~=L%UeLuZlIx!i;qIUaPPfe7cIxcf`|dk8@tIF>>HN9 z-GCzjLy^;(b@N|HTE#;FM6fzxwp-zC`&Yy6>wrJI)F~X&RY7Cyb7C4{F&a&coh6cM zr{*Nm*qfg}t$b9PwXgLKq7|a-^Ji%8FCLWn|G#S~rAk?S0b?wPh;6AS?S*IQ=0fPK zZuQE>M31_~e*yiV_QZ)}&GrCZ{P$*`a37Gc{? zU^OdbXK)7ETk^e!+8LY)U+Q7I*H5%nO{;THN51Z6qY^%60`Wahw?}5On()@tOvpQ2vRq&DIEC5a4^6SJ0tCnF4FC)Ex_y)pC)%Q?H?}E zEo)qWqAq?YP;h}=`)B$Q-wvRhEy$MWoF(4s$T6$LDaQ4-DfFwAorke@gE8!>>A7i7 zA3yDsA*I)@geR`Xs+%*#pYe5M?2k&0_c$*C;e3rhRQVxq+?F_4t|ZpEeG|!VkiTS- zWERR#bmms+PU0RW51s@JpPQFb#YwD$hB-r!3}I&pA?F}}@@Gj&c`5b0nWV|*5s^YW zkHTi_4^me_&IWdsOR#89+vX*l`P+yR`uE=%91o&l8cr1lzjicZ(7Celg-#?|)!#Wv zG-?T7rn=L@`#QcrL20%6rMUXdk}zG5#uLg8J30PjNL074GoUJ}RVE|Rqqi{f;oe8*dn6;$6NlEJx|RF-G1HIZCc+E$Lzn584!e<} zfB(E$!yV@i>Wf5G%f=Tug+Qmje2!dMcpl!Jov<^6GCLJHxhN{nxr+bulYoQ59&;IX z@zLzrm+8ect=Mg^z$lq$CtiWIUt%A;;$>dA<66If^7Df4@!I&|Z3-KJxGcT&PzZv5D~KYOT<==_FWV6Pn}? zPOul;z(vOk>@RL$>`k>#l2E1{^b6g&b|R7@OLP(-E+c81We@y?&a3tTg5zV4w#~I; zZ_?bo^1;c9<%5ppg&S0s9|tjRTm||HHE7V_lx49@YPdl z9^5*(9dO6sh9Qppjv>!}xKH6`!%Zs3UzY;$3$S;iz{QAx@UP|grNFI&%RzX*;PUwk zTUs9ZJkITAz-7W|aFKA8;Vz=^gK#-;`6%#x!0B+k5w`%2{1lW?69sn%90->Jmj>4q z?k@8Dgt!9u&%m8V_)9oV^tq@t@GONJ2sZ(49$YIVBEQPW6bJtcfKB0I;9Q6=1?&K~ z3vmg6Q{Yy^4TK}Vc1W|M+}{BHWAKLnZY{@^0QQD!(7YT$#y9didN%-xUxNR@T@SwC z<7$?jdxviGkgw<;an$vO9jN4AeiS#gnk%p}LTGoX}1LB+?KBd`5$(w&3^+Z^hX>;$AhUrWUj&&4NWNRK0FZpdVliOc;~r`y zU?N}^!6$gA9Khsm9x4|wtGkEVMdEwnpcBFO_D~l=LGs?qA%w}Tr-gvzUTp_3ZUEu| zQwMse5+6LFgFI9zi5Lu0HbTayL2|&w!$4}lxMx6Gz#>4HIuzOXje~0iw;uSc)gEdq zVEQK>YCB-bT2uruah-?S4;Z=8Llpp0n>;22TN# z@ydfj!sEb85J#-1*=wV6yF@76CE~!DB$` zJrA`EFb>Dg*O2ha?3y)PKUDE0Jp26c$mn5hB0G*A1sM74^O27}J8HNV89lCgBz_%7 z4-3S5hK?Sab}#6U>Nb4bxFI9_N!!8v!LQTUv7^Uo{>XnS_m9e|k7xeAuH&tCDpv^V+2FYikAtXkChR$X^>SFpXip{uhip)|Wrn5zz5qY%p$?Zyrp zk~RdEwaqqiHEcwxvlYb$&{2~nO&T_I1Rj}e4{7A8YYt;vWCsV)X-`KzHUP)lQJadm z-ss@?jrt8PkS^8!j1;kkMA0bXS@Pg0?4-kvXI=gVm*a3kfTFeoH~m36f#AB>ShbiJ ze8)q*amQX5?rQA&6*3A(65snx!7xOHLfcosT?bA9u84b(uBz;!B5GsUs(_0HZWq!i zq>S=kSK!i+E}}xZQNSf3olmHMd>zPCAfqZ|{uH=mWDcu<%LlGEaETT2mH;;!dAn4= zg({!`aP=zSIN%b2YZJf`Nuj8oKzc)6bDP!wzj6G3cO1{|(Zsd3DzU0UXU4c@##EXa z6SOfVcx*@CaCxMBSnjUuP@>eg)#d6|^`Kgy*4CP9v09q;v9?9qrn&XU^xpblJw+d{ zf2wcNFX&hF7mS(4Y$M0mW#k((%?;)j^Bwmp_geRHcd`45o5JynBuKzXrZQWH-N^1> z_ponq+xRX*KViM_m2f~fC7cu9mJ)pGakWUjqq?<@T7PYXwo@Cbf1no_*NqxxlDXB) zH-p^`-RbTl?z1QuCB|VY05Fsp!AxaVGZWaigtp=?@kh}SZ;CCY?aF91PJ2>I)<$b% z^*Q>R`YQdnKHivYY%z8ljH#Nt-TCex+=HxiYbG}2eWbKx6j+UE#5~Nr!Mx4nFkdjQ za3lG5gvX_UQnEBm@=BwmR4GlGAWfFirRh?JG+VkVHIv_xKTtkZt81TYt@OqEkNR^) z2eZVCaW6r2FS~EMS6F8)QaJ7tqS8>=bIeVKXS293xOlmnJXn5PUg?vM$`@r$iB~2o zvz7X4W0g_Is?*i?)qM4kx*pURq0iJ+qm$9Yc;47+@aASS)@{2#bf0lM?u+gc_jPxv z`>va^f~=}mh!tavv({TwDn&&?N7Z2(GHn@yiDTlKE=&TG$n<8Cn1M_(GmP;vqnHe) z1;qxl_1M#!Hu681VRQKg^(wd3N6Js;ucYmRH=*f ziuAeEMNW_t<=%3VJWx)SUzg{}@5qbgRdSZRS>7e*%U5Ml`BW)ZzEKO+(`tLo(mMIH z;o357m6oG@uN~7aYEinPyY*B(9pqW5=j$i+GkS@KE>GsTa@BJqwGBGpEV+|m%~Md@WJR&FcD%U9$oN)2V4I#Zpk za+<7lf=rLnUeZ?TpXgilsm4lFZL6`zIA9bRpFm6s-8bAVtXNC79?tORo5TXK5S2QEZg5d7 z5wDA-;$4xF>PZn&J1Ir-Nrxb@A#$i(PY#nK&QW}c>UZh|^;b1kYpZqDCTml*PqcMl#YwHEURM`&O{50cJBNhP^F#{rbH-_N|X|-^ihT=&nYv|%LA2Mq%KyMsVmhr zYL>cQ&4J=AQ-ic{?Fp^7_Ov!bdre!c9ncO#)a&YDdfRULFny1{Uq7T5=!JR_q}|ak z>LvPhy@e5L7)Fw@9@==Tk!x&+PTpheHx3yEMj^!PjNup;jS{HTQlo+SqWQCV-L#Lr z6dV~AX+=Tw+E|Pw5V6aps2l(fV{4OxqkMDO73?Q$L+&hhmviwEd;;GSz2yLOc!H3K zev%{%6q1EuVBjbrRmc^R#hv0F@wix1sw*{@I-;xhlVo{@JX_u>=gQZV+e(NUu12bh z)FtX#a7QqnFt!=7W*d_+1yeB%GtPY4^g_Y4b#v|&K6kj4Y2{kqkgDych)Sbwa_@^D ziW|g7Q0PJVn0#7}P=;$0HJ`RtTaTeCSNlfWs}*V&v=Z%c{V9-aslHCn(OpJeqml89 zG18c1WE%60k3phyAj%!1t{G;wHNQ0Xn}^K^s~Jdf#yW3NMHm@&K^_`0B}`+s4a>48 z*t;yvg>sF#)*QpF;Mefm`BS{Z-{z|dEd^ERB@BXaOcEAC<$VGX`9e4$oEI($b;L$u zJCPUT#ivEDI8n?L=R;)HiU-8Q;!ol&Kebv&BB<3(8YDd@O_8QawzNe0$|r3{r#&a# zm1w!P+(MRQU4C4CQXVCbk*7jqE|FKtUxEf_pe=)xaHWmHDTdNf>7w*h`Y9>ObV%Bp z${J;(@`dt^vPU_joKb#NDyt!C48|B)wbVz|?&?$O3mEnnLk7QtuDzgMhYU8;T5G!I zdmMr|6v}HH)YmHz$AuvAR_$w$_b2UV?S^(&3)1W9?Q}^u^uBsB2CC8e3;GoOb^RlK zhyEQj@@){ljv*QyjGo45W1{gY)ZaQt>DR__<45CXqq14Yj4)YK0`I$-eatcDD`tkd z#9Rdha?l4sy=qo-hr1t!ICOLObPsn=b7#00xmUQ?xpOg!7rM{8FJYLiY}K_QE!~Q< zdRzUiXRN6h*%w+_)&c9Vb=jgyDC#a`rzR7_v}P2h7e>I5%q(UpvyCZWt}&%d2-}2h z&T?#Lb_hF?eUY8Uz5z|;Tf^>R53|SFAKBaNLtK3>oQvdGPUW8EZgVsE6}%>VD^wNN zh*{!#F-P1g=8D^4i0l#fi-*L9uo#v}E2TA3mb6~Vk+w>?VCODrkEAK@ClWt5mGK?@Y#^g-R>~7j1;aXTu1}r9;!Z9zZfcb&B$TVU->`Uw% z_FeWHuy2I^p8l;q#@vbbTc}W)iUK&mwCDO^d|xg4IC+4aEzi{&86Lwn{O_>9rietM zTTC;MDMh#{hGXcPs-D!U=;5TBGBlL{(1J~6M{tsGP*^H2R+cF%A%8Ms^lu$ zm0ija%U!t~lB}YhE(jyHnkNcb|hv)6ME>6F%rmJ>nregc!oJ{0lv5)rKtzFrC z_Iq|ISHMN^aXbf2H&PfYY!tSE^bN(1Fo^n#!^F|zBxttvus|MyNfal&AiX3llD0_S zOBbZ;(rWoLdB1!}E`T*rUHMS`S#1tue~z|UJEgs;*G1(vn1Xd1qcBb3JrgQ{8Ne;` zaZ`ngrc4m*fenr>TTUHTDfPFSwU_=Gk(|F%lYn(K$8n=ybv!$tcod@9_*Zb%j^*pQq zT-6`Kgw!@J84)m`I8(-SeGo)(f_olY2Z&^#NRn|$%v2GB}hSfz_au_G7 zF=3dF-eelEk+7{SHl3XbJ#&ivm3^E`aTr0GO-K zz*v1%SO6n!4~(HxB5ADR@*xWXoz=`dVK!(8OUSJZUOtd}t>8L~H0`2PS27NREr delta 54657 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 F{|h4^4~_r; diff --git a/shell/main.c b/shell/main.c index b3adad9..08d0569 100755 --- a/shell/main.c +++ b/shell/main.c @@ -1268,9 +1268,9 @@ static void _on_error(struct mb_interpreter_t* s, mb_error_e e, char* m, char* f if(SE_NO_ERR != e) { if(f) { - _printf("Error:\n Line %d, Col %d in File: %s\n Code: %d; Message: %s; Abort Code: %d.\n", row, col, f, e, m, abort_code); + _printf("Error:\n Line %d, Col %d in File: %s\n Code %d, Abort Code %d\n Message: %s.\n", row, col, f, e, abort_code, m); } else { - _printf("Error:\n Line %d, Col %d\n Code: %d; Message: %s; Abort Code: %d.\n", row, col, e, m, abort_code); + _printf("Error:\n Line %d, Col %d\n Code %d, Abort Code %d\n Message: %s.\n", row, col, e, abort_code, m); } } }