From 4ef52dfd6a480a68c3e6690955dcc1f681db6d23 Mon Sep 17 00:00:00 2001 From: elvis Date: Fri, 17 Jan 2025 00:46:51 +0100 Subject: [PATCH] Minor modifications --- bin/miniFunInterpreter.ml | 2 ++ bin/miniImpInterpreter.ml | 2 ++ bin/miniImpInterpreterReg.ml | 2 ++ lib/miniImp/liveVariables.ml | 3 ++- report/document.pdf | Bin 200098 -> 223964 bytes report/document.tex | 14 +++++++++++- report/report.tex | 42 ++++++++++++++++++++--------------- 7 files changed, 45 insertions(+), 20 deletions(-) diff --git a/bin/miniFunInterpreter.ml b/bin/miniFunInterpreter.ml index ea20218..e932fd8 100644 --- a/bin/miniFunInterpreter.ml +++ b/bin/miniFunInterpreter.ml @@ -99,3 +99,5 @@ let () = | Some o -> o in interpret_file inx inputval outx; + + Out_channel.close outx diff --git a/bin/miniImpInterpreter.ml b/bin/miniImpInterpreter.ml index 0f938b7..fcef31b 100644 --- a/bin/miniImpInterpreter.ml +++ b/bin/miniImpInterpreter.ml @@ -90,3 +90,5 @@ let () = | Some o -> o in interpret_file inx inputval outx; + + Out_channel.close outx diff --git a/bin/miniImpInterpreterReg.ml b/bin/miniImpInterpreterReg.ml index 9bbb5c3..c270969 100644 --- a/bin/miniImpInterpreterReg.ml +++ b/bin/miniImpInterpreterReg.ml @@ -140,3 +140,5 @@ let () = in interpret_file inx registers outx; + + Out_channel.close outx diff --git a/lib/miniImp/liveVariables.ml b/lib/miniImp/liveVariables.ml index 1593592..a8b9ab6 100644 --- a/lib/miniImp/liveVariables.ml +++ b/lib/miniImp/liveVariables.ml @@ -318,7 +318,8 @@ let optimize_cfg (t: DVCfg.t) : DVCfg.t = [] (Cfg.NodeMap.to_list t.internalvar) in - let assignments, _ = VariableMap.get_or_set_mapping assignments union v in + let assignments, _ = + VariableMap.get_or_set_mapping assignments union v in assignments )) assignments all_variables in diff --git a/report/document.pdf b/report/document.pdf index ca50d9c265ae6015f5666c1698089c0a212426a5..af0dcfd4f1aee818844496ad0393d4a2bce2b490 100644 GIT binary patch delta 86490 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 X&zE@(0~`%9GBP(bI0_{tMNdWwbkIl& delta 62730 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 !ZH=Y&JHCom9#MO_^ zBKe`;iDB>=69bR7%=`ut=nGIJsV$$%;LY%CdF=A`crL4)SXJp5I=Ret4S4-o*X2vkc@vQx4h{>}C;$`ehgPr*I$E48 z_Xjx%GK0LtE0bMm)*?dTX@3i+9_sHre9SbF(wR~@S&OhRU_

5d%$0_k&V ziXCnMcj<1K^A`TYf?;*Om94y;J03mK9i&iS`x_k4fKm#bS_*ce;Yl1Y>W(^w{HAf> z#8HfLe0!0%%vfcM6(e>S2J=a8Q24gSS>5gjK3@!O>&L-pbS0isNq7@^`K z&)#7oiZ3M(q;PZBFzOF1P(W3d%e$<>9ugg5d({S0Irc{WK&;@>BJDLLw=o_I)lP6l z+Ya)#p$Rfxh)%Yhwk5eO)C>Ok*_I7?OJJq71P&ssns5NA8wG+m)J;BCx>Fav{i z!dOD>@WU+XJ>q1KMSpMOdO(7?mm<@iB(JNXDnyH8pBSu1?8a>BU>#|FDx2vUME>j( zCRY*a`qHQ&tdYYPlIDx0I8A(3WM5ITH5;wmk#p91@K%msn>c@2qHaZTMr;Mq;tfGw z98*rgV@+MR(GePGH~+fc*TqapU*f9nMJFB{RBwf>t6Ax2iGQJ>&+%WvJ4;gwNIFUV zV{yMjtU~*d>3D-Tyv6M7>xx^DRKs8!v{o?}fcyH*f!zR`W#Fifl-Oi5eqbNEH9|F= zN)yXdgJ2e{0%l3?6{!Syy|=KQIXOks2;LuQhc#iIGs``Wr`%qwgFu zYezt|6XI$o1o$bcI0FlDo`iO!ddCn7Jis0*EtG~U8GkG^_xwL&t1MPHbJy7;{cOFn zu(pB^iAZJ7B3(Yi<8_D+I>L`KhdV&kckbmOt>L7=uQh@yx>r|Ec~TtW_wimTLTN&~ zGZqSp7{q@wgglaTk3?eH(g6z%Zl(TY>r(I>kwuSIOQuZeA=pb%qz(q|EYOH0!=)mX zd^1$HJbx1EV!gUui$i&R-_x2^JBg`NCa5It9rU!U$F@8$ZTWnSi9vPL4}oyN53H8r zo{NVrkWRXbY-dq6>1J+;yMc>%B*9xdP0Iw5s&0C*MJK!+=Z~6=wZZaZ=ew4&hz-4^ z^|4G$9a)g47X4JXq#`6v*s>;0e;Vk{@-+3NRxjLx*xY-Ju%A;)S^{ z?$&SHSzxXZ=_f0qAo3;h2=mLWNoDW$%6%Z)YE}L>^I3-+?g{7+O2S+Ww}^>Rjsosa z$2`N0$3cG8p@X@cmOe9lFYOr;u6AUl{1)d`qEHXza6j}_RX#SnheEDqnsilI$9Wd7 zj(@YD zx&q1RDx9M(jII@QJMt*=F=6+YNvr`HxnB{@Lxs0<17yTZg0t~5j)+vgLcp4PZhyZc zuj4R7pa}-gCNS;uX@lqKV4RJfI}C0g#T2=t@&1{H`xL&5t(Fd>h9IAu9;8%W9iV?| zHyxIv?-A+wLYe}dPZMdS2oXqI3_l4@~H15>qHFMpYRy&dn| zM>A57X_mZsS;LRpS-Q3z7run`!rVGThwonD>{U4q`Lwm8giDE1W1>SDqkrh+?;F#+vxRGA(k5yNyP1P7^nErfc%z=gyFnyOZ>+Iq z>lM2AQWKMEuZR|!{Qk$BUsY=4>?3^+4#oFawq0|*lwz?A4;QFYeL@}ag8>~Q`h7qD ziO80qI%vAUq5JxZ9eDzl=C+XAoVkyqgD)_){Ul45(U;aO8t}yo1%GPVZI>{43$q46 zr__B8(Tg1mjXwnGvzZQ@^y()WsQtcvQ=(nG952jtpqoP5;Lr@Vo1@4^AXN7xVvKAk zng|dJC%6P;MTX$pFJ`CY!W-x-j(FK`g&Ti?&RN~~!G3@bIn~obv2nw(trw?Qe>oVkL?4(>0;7se3kv z-Y?SE?#g(vR?7-AMncP(1T!~N3Za?UkWC%}SdO$4P6wQuyIV6?S<-UjX%^j2mb6ht zPyDEYl>?LQo-8@Ff#RR`4Kn3hAc4i$lNv88?x|8jp+jZE!he;Hnpf|HGfRrcx~6=D z>YiX#Yy#w^4FUKHe&D2K+I`wfZ`2#$bQHsWRPW3kiD=&J+l+b3I%dO<*IWBFF48Nv zyWb%i5g>Dv(O1zgGr%RPrw=b5E$W(mTz6PUeCl&<{p+Joch?=H+h~_o=sDwx+ zMMJiV*tc17|9o8^vhfr8dsjDR;v_1VM=%s&WL7dgS;Dp-K@;X;Q(%e4=DUcL`0GWy z`Y2YZ#jM+RZV{XBQQ8jFYDOnZzk@r*GWOW1M#7YKi+|VFWZUz>2SD=jx&e(~bX2B1 zJ;bXaLtBL16$x-~2Ncq$$f zf+lF;2T8PdrWT?r3Dj<(hGI&_0+m|@x|7iiQ=}+8IW99h*7FE5q;b`B0u|NFsx=UU z-yj6#M|i!ph_ru~RMPah&x-{8Ome;h*EqN8?Bf3K_kMuT?bU9k}3(DbOsUZcBe%D}eY}E#*ix*xgCz4bQcs$vzy%R&gQ>o-?LXF7#} zJ7h~RH=~G*lvj2BV#ci-%Js@T5gkD;-j=l;03nDd=UyUGn@@>flTp&!H%p+aeo zi2K+(q0@hrVW_#5Lz=6wT41+;WzciN5^oaIW)-ty(>et&DG`NOX9v44?!b3mbxDM_ zGyPK;6-qE~8!T=gb8{p^vz`DFo5zzl&RSf3zLCFC+3AH~D?_^?;=@`AI+{g)YMs}6 zNM#O^!Ci3ytPjAk`4b%5?VSgSV8_c@9`Lbur4N4@OHf1dSMQSdo6oZM*ujodEKXa? zy@Gq}c+P@n1xa4*(S#@4f-xEeB_)x8B20}s>Z@)KI2fx54 zXC{|CJGKQkjDs~@z(vFl!gf4q#D3yTfM|al&hO=?vl%s{xKOQdIW~J5X7uB6A03XZ zUT=SRIUyE2Gk09-iX?HM$zVo01)_lQP-}!WKYR$6W8vmWk;6h7pb7gND!)Kh(w&eT z&?0A{@uRNOW;Eq7wpIhW%BdsaUfSW%ho(a%Ke_!K=~iO{Czcl{!&(lim;A6djNrZ& z6WJswW~r3jOK=kdgn{fg>tQvBw(YXt6}}!T<}i6--ZDW5+|!Otf2{Uu(@m9|xem`33en)eC=* zE!5%5p3h-AficEh3rF5unAU2-5^|@=Wv}j3!oG?1V+JNw9%MD&!Ks%l7;|v0>#77*&Ul1y31qo z+h))dblzKQy`DFLuHu@KZ@(2cp4!!-4XpAQ2)c;sr0dr&S#lrThbd~OG7EoW(8u;3 zZ>rWG%crjdXjghvqnVQW#I$?Ir3&<7_cviQwSE3y3O}%Xx zyQ*}%OEu6Yq?)ot)aPj`YofI8h8+$tvy*blS>}}3?30U^t$w0BlVLpt2=8s{w z41x&^6$ad(qe9j<2__j1X2^d@O;gXSgyZb9`8G9FmuXO$mzt~^`k!iAPRg**e0J-m4&);5U#gJn_U4q@GlV4>u*+Flm=wD7KK2@vtlvjU(s9k@8$7anv z0vA=#32gj_=GDwV`mqf{i@OJUr8~^MGY1u_rayE(oW^@Ctao zYUUF%dFn^(`F6$~MLmCjE>L6ii0G=<9&|lhov?{ zu0XyIPFZ4LQrC*Y&xpwQ90%temEOZ@ikqHLl{8y&sn1`j6m);$AY18s%>-z*q$O<^ z8Vy`r=lY7X<1JO0R^%^kE7D#tx0+f>Reye&JG-H@9m&G|TvNSoO?fFP5vLrBKNB|f zc5`B39-pO11zKpqmyFi_3vc95RQ)pf(nrC@Kvga-2WsJX2&}BA+MJC~3SYH_gabNW z4HJT88X9GSnm>O?kenY&Ojm|gA=MkM?GBPVV=!1Kl6bEaTC#B#f4XK_+!aX^ZzhQk zczb`cI!<8QSHB3?Oo08JY8HEfWGXX4j%^_bu9V~WXOmmI`dPfjUN zb7mU8-TN#ge$rI_c=r>MzkqaU-+f*7F=-|%On4G<|KOPAyC4fPeC+I8#@NSPgy?mC zXm21yiUfa{9%{doR%(~C6_{8*1}|2nuXq4*yvAG+y0CP>YyYEq<$L6E%7e|@;jN9_ z1ww@JX1(@P8o}N-OvXmGu23v}JC6 zWa6%wXnT+Mr-?kMlAk75M3%@+Fn(rVLsB%$)jxmOfSLLZ+(VOR%^kUm6S%Trb{)z^l=oy6_LC^amVKxk!^zuP?K=sP;@Q)763Flu0HG{5cUpJ2tcUMd|y;>SKS z!b3A2cI4k2nYXFf<9*9-YPPGz#JE(C6MgS!1KwF54Bdf6eE!`v#ahVXmB^mMKNvA` zK?Q$Rs%?rvjI(QSnQ zxlm~-L_wX?Pc!Ea>uYx2ejYnP?-%;s-$T<~s}IbqF}vC_@`_g`3R{Qeb7G0hCLDhW zag)2cZtSKmG&T+;OY`o~+|`u&3>+4o3|j5#ns>~P#=)LL@@!2Aq}54^Q%g4BTRmdg z6w&lR`rce@RaD6=@!=-I1sd+%7QOQ)W%lpf=z97VQ9va%`0bV~zFQ8`$?x2QW zcIle!87ALz>I(=8b9j)yLooz<)eV16Gq0D3B)i7V+0XPH{IMB>)|(rvO%gLb68vs} z2R=jjR36!ZI-om?HiYVGrBln2I=8T`IG-!|p$b6STx?q%%TwFIfs)>8&a>9u%tFOJ zcdLjg(K@!V4>0WB=Z8E(cWAS5G(SJLl;YyIhqJmjb|z!Np7AM72KN9unVy|JO* zkCS$>uh^Npe)amT*)nv(F`2UDmT|pgVszKrc$0tgeLJX{$$@J>n!>E!3-QeKr5>(8c)SF~ zF>%^@Z0V}OJx%4)W^kK;09t>?#hkT;UQq|kfg^x)9gq~Ok~J+g^M*M5bDQ`cvg(1D zKGE>%>Kb4|20?mtt++Y?rWwGBeA#EBLN!@ZT=2zSS0rz&^;}b-K`e6#GhG2J#UrC} z3zmJO)}MpglMmuVBU9DW`6)}u2wjFJPp~J3jiN^_3AdXSA$O34F-CtrKl2=LZG|o- z$_Inv(UXu4zMQOYd_WK?W?uYq6mEr*?gBHM$PZV>z#G&YGxM12&q&)ip-!WaCI75k zK+N!{#=@r1ZoVw|@k|NMn_xgetg_1i$Na0%CGUytUi;y!90!)&Gf*5a>vbU-(J+-Q zppSz1_~W zQJLxWRVkD}fow|8U4Psuxxw@iM+7s;VOA19&c#=Lv9pEaIt6q!h*m)Lf?x)LSAsSSTV7Xh+~>@I|2@1P6U zgh}o34F|w{WWcggXtYz(4GjreeCNv&BJLExx5wPmM>bvzBN2Z(+o&6dn3YM1GwI!O zC3r=Mgdxd3e)wAZ;(@#jn@ZY`wQn`_ifD+;@+d$C3e=c2*@v>RyK44Nqww79fRQ)~wgxS$7O z@AH`HkP+>1Tv*2a^GE3bVH?*JyWS;4yrz$gshtUs!JjgEM>^5T-t@%X=0adWj{}lL zHm^!oKJ$`BnFF}JXPanUnk=iADjpl!*ObZYA$dn#ohE;bWaE>JObSaVyW~Fx<~5X> zo?3<=KMYXZZji}HN<&Vr2k)~8#p@TxoDILLIlsr|R&mTXA;|l2fk*PAfZ4N^Lo`#) zYT!(j(ode4b-VnnmKTAZSM`d}rW!{H@blCIT2FoXR`_sgmYrQj;{L-&1XLMQX(>J* zKLiCyh+=;srk}S2%cCBii}oToWxHKM9k@<{(>*ES-y>~|2O1+I13nadBH|(LKrD)- zYZVwr6%`CXiyCGxvcG_D%P@gB-ZeuGgVl~{dnN3cY2QvBB)}w|G@>o$5Qn733_@_@ zJk!(|mwJp~(d9>XlB87y+b4CbylP=CoFia28SsC8{jgTBm?brI;2PEHIn080mJawd ziq;Zic$-VTstG@t#ck%{<5QcWX6r0DFD;&nOdZW3m+kdx&QMJ&9Xu1*`?{FqaW%4o zO43o-^P`ah^5dv$RFpHj1rxPsuscW2wwkd0m+fj)jGh-APOo!|nn=s#vv*NsVSEa& zm)n1hA7eXLc)v?_Xh%Rs9E-NxYS$^{3PMVl^dg6)V~!y%MSO}=G$V7;-B%qY^h_@C zZSD^i?(|4WNnBe@@zqgwn+}Ps5g@+<6B=6NiUY|hz^>}U zEhbvnNRCT3l(gb^ei+2UAN(_4Cd%4o0;-Pl{-g$OCt?^ow*pPSj|4i z<20Hts=QrtALD2l3AOmveOEBm;M~#WrmVoXB`la9gDyZOb8;&m9I>???c zZ#%>wkXNK&O@36{aceXbNdL@_Yg4sEfO_Le;iwkao$zQpNv6i-9}uHcCeg-??!@i|=ibYv2mFs!hfswA;7 zC%@aFj*yKF0JcAT^w+5x^Q0q}@Ut-LO$xJ++kA{Fg<@Csc@>oz0*Ir`E=_tnp!T<) zu-NP&-$rO-58u{PAi?k79y@;wlPa%S5mgkYTyO~Q2{nd?)6Hrg9kQ{M(k!;6yAg2K2n zy0O@HZ)qUJ;6(=rQT$rJiaPtjVptfvK^{@G<9Q~MpGO*pr&A#w>Ddd#d6E zn{^7qLFEPdq~jQWB5~?l+3l6cTC3Sph^QO>3`{6#MdJA35(q0^xY$g$N7h3HqZ_aa z{nXR39!REn&_^MPvYPjpG~vmudqUZb9sXRZ(OJ$)wO4+GeZj<_=}l#;g~ZHh4|6Yar$Nim0mLr zpWx&09AOStbG)2WivhlhIW>~JeUa~sao^@l_{Vs!l(*qo!zCKWnUKb!-a2xsmt<=Q z9VImT=k9-kcK+W6N}P52S}4#cqF`T8;*ON-8u?O9*R>E9om*+Lt;| zMg>wmdeCXFA)J_b?md=75)@F_V_Ee%icG$k)z{!6o0+)=rReicqq=ln@<3IWn_$4d z;=V7iw1G-J>TT~#F{`h0?k+AIK~mW=)F7z9s&I|8G1dB+{xfoC|3;f7w5pd{$yK?2 zY;=F)8p@rCx^%iR;oX6ztafk+Ts|R$)iV6c#bJSq@(qcP1!pYN%0XVRv{2$IBwU@j z<5ARdN&n9Kcj#9!lI{(gRG+gM!Z6y5_6Y~fP*jBtlx3yak-P4>{aUe@g?mScmD>^a zMeqh?P)sIqB4$4CI+OHMnTMU*ez+pY;yb{-iuZZ&Le{+tbS~|c z+}Nj^sajma-~?n}X?&v#!MXPv;dR=o`C?ZI=i_F=44ad`oQt=9;zjS}x*V)n?-2hjqK^RU^=1QYE2$#{GsEqep+ z{g{<3!sV7_xVgR^^4oz^sx=ecUX9lZ=r`X&ETRp*D!?)28sH0|N+^0zJ@samY$wsl zNt=GsQ(7NnfM!9k_{<;E@WfKW%7TCJ6!y^&x4t=6a_npook*0Q_iL1Egs3^q?5En< z%H{I))(S03!Evz)a&b*mw{dSc(P8|XB=GU|=SiK5T}JKzH|0kE6rXqo zPW#v!%zH-|ecl$-C}IyL5+|aWX0~}vNDNsJn$^!wwxFOu*`XYq@Y+Ig0cFcMQgDnW zo>+E0nKMSv$4|RALJt-1^-~Y8j9jx(9G3PE0S)jVh&0LMy2x+jka zi)rpvc-1DZVbA$qU57IAR+OvL!E{ws`9qLy*`?joe6e)Q&UkCnkT8Ece&y!p*pK=w z+Cy)!Uxwh{xqC^HqSN3zQfR&L4G%-qx>_?GhKfAG(Vwdy5t+ry>8^x8M$l4>;J}hu zVPKF@)P)luGB@KbZ`L!6b>qMsTi5@|X6~#N4A0et>iUBn4~0Lj=$pm}&KsX6&xNmh z^#;lchVSQGGQ0!!vrd0zH46xTWIlOUx{#zQqpE{3@@?y=jG-W1#AinK9aVsvC zl~R+XNt-^VdarJ2%~k*>=4aG+Tt*h$Vz=0RcNydeyyhjMGW>m}zdE!r(uH9wH!>DO z-ghWPhP(06-^h3`*cR8Uu{+3-`g9f%iyGfiU%tnk*Ddk&8#;gY$IKq7ot}g7LjbQ+ zcf;d|(k(GnaR9H`hfi@8y2}1|Rc-}ZGyDi)hgf;md5g%QPX%)pve+d)&lr)OcT0rR zd#|)F=-!_Uu%&EivdOW6KDO=2`IiQ4Yim)lU=>&)58=db5l^hXIK@_m2D5Y33RLSH zgg%%D`rJoK1p9w<;O&2z+1XN0Dzt)=8Hn**N56R!tjAH$^NAMVLgVfx>Trc2`ZU%X z$v-EFG!$#H(D%dx+)h;Y!ENOBIeV1b=J~K-Mw+KIs->wMKkxcF^#O2t`Vo~>BraqA z8$l04$OIiON~k7j#bc3NS}&ac3ANqaU~sO9wlLMI0s?>WK{}&FCpHkwpzYDj!6{U= zhx|o!14bc+Od{S0Z485N(Q%kWhsXKghDvJq4zfJKnA$82& zXHse~K9Wgc)8;)`Z=BON^ubEjmZHKx&UYR0@9U8Hp`3WzfI+g%e5eBLHN4sR2%m^x zICyH_EJJ@hlHB!(!fT-AYjU*og`<~OCHPTK&O^M}Mex`w@h64kRZjtr%1nQ;JA)2z zRr`isrnZ?`(a?_lrSNMq?ONRL5$9{LZ$-E{EFukVPaoPpjt^-R(2dJo z?``GpWQ(V3NlLaD70X=Rbwg<;`Ph&^9s)b^EY7``0#ogps>x9J54uJh>wP$&*dl*s z*V%u1_>t%JP_sE;*?LE3%P&o*{`98%G0#|1q_Z0*H%@@3E=EMeq#iPi&APFP@`*Z6 zk1|Nz*_Z?&tIzgLt^8bjjoVCAH${=lsa_T^H!s-q?vRjT%w}5$4mzlel@g1IdF`}E z@6;|7H@GUE(gC+%q6;HtiE24NQwx=A9$_=T_R3AR>ZHlEE<30DFiHZRZ=%`h6Y6Vj(HefOw8n(5bC(3}B?*5v z1QLn{!&m`-EmZz-gt2q`PeY%=yV@(Z8;g|!5v4m-&uE&TKc2oS>ZjeqNVgNbY~p`> zc|~h>C9fzI>-fC2zMU9OxHpjWeAmian(tk(qzFVB99x?y6N9Q;^Pte(3j2#9LrDbYIH3SGhIz zyAzoId|%bf{UK0q(zd{p3sR_IHQH9?2#=ouop6**JD3KYuhHml*n3 zTsf?E$6Z!1edJlre+6c!CE&^H?Sz>gwULhxkqq)D4T$EA7{I~h9BWC|h=uyEzmN?WKFKVp3@I@;(PMlk%T?$M5l zp2=9XAHLfI2f_q|o#NJC(?%y!X_M>OfGb?NLr6whcTzwVGlHI^|C0=OPM2J2%RF|^_hIcN7?>DnU*z)qBZc1VgzO{R z!q|F-&Gqtp1_Ptk!b(=q(MMv3ReTHH&n>nY_xVUFUa4QfY$kvGoRN8{_h1vORl^tM zTT4POM5-Oaa}ZCELZ?5vjW@yYU~zsqQcW((wfrXIBbaL66D{_%4(>k`Tmi1&2YG9{ zK6ZMn=sQD#ocTu6Cde+{s z$#w$Wp%YiT-{2}}pkS|$`-WBpE-2QllK(r^sl&q+tB0I-3$Cg*_!ZiP?K`U&CN9ba z^QA4YEYcsUhy#+-u|A<84Z?>T8kVLh;T14HmX}Ms@q~Y=(yve_XVsZhaWx1sMHm=X zaS|KK6ufZBvIb1f_!@Mw<4YqxZ#tYq!sL){nTRX z4#Z)P#-?r=v*NK=%oA>#ipv(We(juI@;v79w8Gld;Ob58{-N*a>%DbqS`Xu)}7}L8-+8`$H9P1fINc z{e(zXEU$>BNe@S|xzaswibVWC9_lnG|aIIDku ze;;H-%sF(lu6sF7jg}sFv1%-xoSzcIq=?S@kx74Hzs6^ZA<}2mAW7W%%l0)Cq04*= zk~R6xtWZIvJ$2!^y0}Rr^J6?cU#%reyQpnxe}C|`!-rP}UOtS|Q)-zabB~vU3usf@ z_LTSD=dH}In=U>OEdqRRM2cSIriXuwtB1@Zbi-HZ+3trd_-7IzQ2g@a>|#R+er5|l z5ig06@gr6xV<9(^Et~fc2+y!456&;8tmlXpS~p*0uT@OiB*)s%ZT?_8?0yGk z5d^Er*xKVo)C?W za4|8p`o)b$&fe4ev?9TrA+nL}KsAcs36`di#gfl_1Pj(lTv;)|Q@rWixiycgol|;p z(sjeIua9pOKUfg7WHe;h?VblU#+=2qgtda z`ucyQuMX9=_Lqs(TqWaO98jXRnh9$F-#0d3;r}{^q(Sv2UhC5_fxK>>)yxux5lqm- z#!Yz1n05)QYD;1F_C4l`Z6%SX!iu)is`6;Gnvfk44wFpjsYKZ3*7|>;l~pivN7-o< zb2mDw+JPfA#?x?FQc)Nw`kRkfl=>7Wg9AEwd=&{aZ>oYBi+t4ws@WHp0E0!=KsAn@ zHPm_k9tY23(XKN$JPO2Ve{PZY>WMRNc^82lQSMqr+?Hid1ZR8gQ>oE-9%g%abm{q? zD7nwKM6JX>mE}$6oUnhY1a@rgUOr}pIUAE_q^4G+SyCV#Da1vkDe7K$x9O#shLqn& ziGDlh{_&`Wy2*}NX3!x}G1PeZD9f^ZGhp0o;pG%RW5xaSW4*u24~q;gfjm{X7x83* zLodvh+3nEeb2aK~c72aQh0x(KBV>}cz?F@^sg{<5pi#GrNyrmE?Y0|F9pj;>R_j|7s%>2(7&^=C8K zV2;XHT=KoMI?=AW>-hX~m=9AagT+xNTmH4vdUhgfk}sEJ!ye|(?G9NqZ2=IUaQ z>gX!-B6oV1& zXHYw?71|H%#XEUG3mDpjzs;X0+eb=#8|k0zbJAHPWU6T-61ncqZ5PX0>c30WX9paZtVrF^4sD9^)V*zmh1Mh>SCOa( zj&W+w#bRqva^WZrGicXu6n&ul-bT6*ns5)8M1(8SQ;0&_Xmpa{ls@Kp@g+?1QKd-$ z3Obz4+vadyCzV_#!#NgOHhY{(8KDX2U2=cRkV9W${J5!Bu8-6d7k#gGQ~Br|OKsKp z@##!}jNdx&px|g4`+3H<4G^Xh7#y?PsaN>4fgLb`$T!Gga;2OUS7K;&QC>y`3!a{i zAHB*v(~2AQ2lN<~2z}13;yj!h)4F;j&e$~TbC#r>JLCriW5u>C`vh>?!Kp*kd})7y zue2{^wsg=&-BKgu=FBFJ;o}5I)2=+S+_)aLR1&<&QvsmP~7KsYIEguafz{BMpBBBOXNWZ#0ZCkN0h~H^oJYUmla@WeE|#HYP9J zGz5slN^&R~*i!@DZaNp1qyPryK$yf}PVpkl7)F~p!H91Qy%czfZcOM+RPVGE`cCff zceSEF^NW;bR)skyaoP`bGF@nHmN;gr2+85cm?ZL3v1H=;t$yRmil9vBKmdPx%9%hi zu;Q@*<6FQ8pQcwfTaLX89j5z~$-9dj4l0q$ch5(&na7q)-X3Y#JL^50G^}v=OGp5I ziZZ04FQMmY>S7JzU=5K>+=)iI@`p&s)oIj!*$itsa}_Ill-Hpkr6a^s6z!*mcIn{g zNG#@tu#k7Dzgsv5mNW1s+dhAAU;3}>)_ z>%J-^89G=D0h6(oQ!!?>5Zckz4}eYdRYR?64D?!+GW}75w}(u2$&IL#MkqxVJ;8drcJ2WxH`Xyqr1~H*wBA;E{Gy+Ya{;? z@thF21;CuUTV@*_nZr4!N;g_IV)De{VET7w)Zi86_TZ25Lj!J zpREpzL+o_F>^$pE2>cEMghMZ!5;KM*yx$B;Ph$D4nTquIH z{#+VuTF-mQd(tjO^viz_#vu#Gx8UlOE`&o93~qWzSy0tA$88a`;}qBNu-FFV&~r|1>5-?p&5# z*CkU^5j>dyOdn|6S5*xI;zuagf`a(JIBqrzCYF3Nz9Srd3F1tMbyO6`nJ_)a&C=_| z_n#!`4j!~|KC*BsstS)M>?+&Q0avdb5++D-f5jTw#mYDMg@&rTn_~~evXX_H{{WiZg+%D>lvaw)4hcro3ng*0zP!#F@G03isX(lmRtQ*?H!P{FED2X_iV3}9> z!sSA<)X0Zqiqw=eepq$w_}H%KBsVfS*$VlnH|B!-OOU%Rs@AaU7k$pfm8&Q!NvRH4 zokEj4@_K)cqTO6Z;b@JRh9kC!$Wn-F*h<#ilrU|Z6gh|rqcG`rp$_^uj}0P00CKQR~1LPTu>d;KZOVAo#H63)iO#R0@9?xuc)2TA)KBnTzK$K>|-ah=(m! z^{t~nQrWr~W1R);cp#R-M79gFX%`T)rXf=I{`KxQE6V01Gcy?LOA?rumCAqBiRMyfLvRLQqD+iM@Q*oL_GrV96e$q+ zUI2lPVD|0x^+dK7Df=Tw&Ek^K9=mfs;K?FxW^&YXkUO?eGF&C|!n8ge``625j#a%ld8ZLx#^;6(seWyj4 zk`-3FiRV8hRt96|Lzq+|VW7GSfyfo2|8r5kq9Omr{RBeo%_T2bmi0)`vQ3{8le8G^2*sw2?YQj3yY>C&&xr?tRNh7 zhfl~mkftwh4kh^R@Ip(;2x%1s*4;(DV zlpl2%-0TjeWB*x_{427SZh&2Adcb( z@3!w>iWXkoQ;2`ZsSEi%+GB1b{cH{I4*Q{BVj#@q3(D(bH^)+p{==$t+dh_1YvH1g zl?()?A+D>+;RsZXtgx-o6RT7pL1OX{^W-YoS6=h$GTY8vx7+|LPtVSz zCaLcLLeMf=$a&I(&NI1Uno${bQ_1c|IfozOz()07ER26!&4RSv5SRO;NU+1ipukMJ zfAIVzp>23wVFJ=Pa15UW)L7+0Foc=$^nyWgYtILq`jCFdj#(M?9c(l>D?u8A?dj)g zYf)b}$$x$ppBbaL@^I$glRUy>*}mY-~U3I z&dv84?hAjmV2)-bb?vwd=23x9JQdh!D0@c99R_I3lLJ`0}DSMJ|E`U`nsqcmt~yz5~kU2HcGa7vQNE6WwYY7=Q@w`%Yk5wl{R{Wrv#P zZ7zB99tsw>d4ZZ^jqq$}^jYXHu|Kl@9{8k!Rk+#_ia;(Cd@ouLs8r1bo1GDJ>+q4i!nSRH5M*Qi;Kxe()B#SH0W<>> zle*s)myIC;54Yt60+Jk;aRmVww~rwLmK>LDApsY+JU#-9A(x*?0T;L5UjjiJm*8aq z7q>Ti0>mYk8jArHw-BKMJ{*?^+yNE0W4!`6IG4Z#0u>Q5GBz~|FHB`_XLM*XAUHWV zli=SK1u-x)GBua61pz33w*^!bTo*1Z9Rf;8NDN5VFf>SacZ0w%3^2q{LwAUTga}9@ zt(262G}54ebax5}((N66L*MWJ*SdGjTFg9qKReIf=PVfMG<7(oteh;N@=kCBCy0w% z1R$fPs|(@*aC7r=adY$FGBWDI5Dw6P0kZFLP@c68%%aR^Dp zlokMttnlyp+#s$nXM`J<8_eNnjliF7kZqQOTgf;%Izr(HH{753$--Qr5M1C??)wk2hQY0@f0kk8?hMp}!(7~Kgzwe)l{~}xv2w(++ zAOMz78yFn-w|Ar%YW){Rp1&*13t+;H96u0%`{(E1Ur&$|X5|ET@cvEzb;LkLc@-Tk zL-xN*{#Pk2?c@dU~ zN!a7>31InqJy-$%^`-8FoLeY><@cDIa`SUTkbgk`&%^%9@@5YNZK7Kx}`_#$RH+pL^y2gF`i)++aU%762!RoBMxs$mN3ABX18kh?CXNCF9{20DxUx!QQys$VuYi=Lh(LklSbl_4+l$03a9K34t^LAgl8S zSUb7m{yb6vegIJFr|2&v002t=MuGsK%x@%r1OUqZM#2D~+`mW=X{Y)dA??(DBcz@B zzeorK0BZe4ya1riZ-mT6?_VU0^aB1D@glu|9i5Sr_w)Mrm&1pYx zKhihE$pLwa|E9qAQ{w3OyM&*|3$*$JB3l9d-O!)N#T~f;zX`}Htp9+>{A_;nkxHAN zZw>U161b5;ZGWeL%-q)7*%k`_gMpO6{(#6P+y4QPW&BP+0GY4D&*A&6M;86N%ODVv z@P}{Yy#{pp10pkY{+$ex>x_JC;Q#4=E+6P`>3^Hci%bi7*2qWY4=S>JX9xG+*$5y7 z$UEEZ*Yf<1ifq9j9RVTh{cXaJ%-;>_2>YL-LPm3Q0K3`#VTK&&-=UGq2Sj-OSsK#9 z{SSz2o5vpz8O8ID0YX}P{Q;3Bd;bBEUGn(_|FhQ+cUNRr5WlWov~V^b?cM)cx{H!pfhs%>l|`eKP_ zhv&_YI(x$h-1cUReyPzS52kCHFsv7FU(K!Gi%KK%L>-&y52m&x`%Z;1@0R3VZpBTdsS+mwGkEs%I*pNfBE&* z0?UZk3WlXo3b*w>ZJgnMS#IuJ4$zpbVzxa> zTZ)FK*mHBysCU{Vpw7FB2c937q?1y#80wGa*{+<9M)4Jji6h(6GClcT%zhvDFFAG{ zFrTjvH!B@wtS`g=;4_zWj8=_k>yO^TfybU|1#pP9b?MU`w{qcs%}`c;Q2u&+za?TH zjZT%Y_A+y&BHi%a!)HU}vp6o#l5KrljO_}DvrVgI+{;llzT~dPZrhS{n=TPLaRYlV zjvrg&vzb=VTS}%dZ+v?-ar;HQ;*k`C3P=+LQRsT~G|W0J%;j#-BqSnNXF+)Do`~@& zbNYv(QGzd!MG~BU%@(!8jrTXlMf$EMbL;Nd6O^ji!Y0A){tru8aF}9U>w;9{f{$xF z9^WkI*ZYIngW;aRx;nUba=(0I1!m1EUNcR~)yPxaKHHYJvLw#tNXeaj_t?v&`_;*% zavq^NE&$ilez!4^ol{|rzE+g9{31f*74V|lxohQhuqkbS&$?7sQsDk8%7lTI%tmXb zMG;m0{K~G4y=LhY`8t`7uOD+5UunCM+=R3>h_RhpWvm0|f%Er5MCq7YGrNoTr#ALP zE9C~>HwUhz$d(lNIRD5^c0K7H zV2bWL<9xb*O!A?v%5kzpdo+ryn4#SFG-}PL<%uUvekFaa5Z-bWGsSCgHWG$A`I9&VRr?r$Nlnh_&TWSOu zXTBJwMH#k}wc?RA|B8iiLvmkBjLvyu{8F$m0H8moh*dLSY6x(SzdG_ z=>~lQ*zO=9!c#8RN7~^tGP!e!8ct)L+hs}Ih&|ozf#1bMr45HP?g^|35IjTC&-IHd~YUjHyKuX3+n8~UwLvGYdM=PHk zM#JbDMps2rVr)6Q;=2R+eP~!8P@SB&OaEfP^3B0`EPGSUWITjp;T>NEn+Pi0H_-sJ zxfJ_%#p4>s)c%sLAjvs_NiS2eEnYFv*-=zq$X{uV$UM5Tpva=iFUY{YbX7UYnfZwH zs(R&6=Uj_1_h6ZaYE>>P8;r@s&!4=RQ)*^GWZJ>kahcKzb_h7lXO(!#%5p2RJ488v zw^6wrD)-0 zGjvQMJnsnxdW%j@ zlItpHb9-`P*BMdyU(4{3va!P<1aN~fFIJnHY+%9jJ?gpTx+%BkD5_cVPVLQrnW@PK zc!d1>S-XYg%_DSsI5Bm6PDUMIF0TRd&s6Ck#{81v;f~*Z@F7qQn8)3(%->vjGN%@t z!2sG%qT56}fW!`j@I!h%h~O4PXtX#Ufnk}EC4=yW67x)F|3?XGw7*gim%w)PmsmD- zFMQY)7M!drDVR-aSvFDC4c8tV27#e$)% z#6(DzGq5H_tXqE+uHZBzVSH&Wc}uDjK8^I*qONqL@Eiv%bFxekq6G_rLR(Xk6=DWP zbLPN5IrFVf*Ht|{ZM_a{k82G>l!rmDMFV|Ob_JvXqWY1WzNMdnDKO-a4aM6x76IMHs#+rs~b61t%91?j9$No=f^XT~SA?*ez-{!I5cve=3AF#2E77^AvX={jCT zZ9VyBAnjkmT#j*j<7Hofg@Z=Jh)#Sehd*u3hJRF##hZxxmq!FQE1BoMoj#t{sr4R? zW&AU=gx@;lC`jLmltCPPxX^iPXFQM<{dh?{?)7d_zoYH( z21ekgoO-T1;Z_VyiSn^{_i3F5=t&z)-+lLWPj+XDQMb;=Wx^qV{z<8jf*|d0k7oWi zN1Si+SdB{W6u!9&Q;m&nquZk>KJu-@H2Z1d52c{CHjK5Ksm*1i-JjTzA3eu&zVd9v z$ftBVNhE4^>}i-x&LdAZ0HkrUt}r58itZ z9b`Y~1H5Db$Z>l>Rh33$*_)hT)NVdY^{{QX4xjybmS3*nIPs3AbjI1Wd01QAXKh`O z$w$TF>+vT4*6Q_El5cCu6(M6E)^KulZPA(c5o!jjmDsOjm^^Y&!gpi3fXVT}YjdaO z@ia}!Vn%WG!>O3Rl&)ZB4(vf1AsG%e5W1vi4-mh`Ida+n1~LBG*<8w2CdB#b=8kj- zoFFZd3K*Km?J-i~47Two(QwQqa&*a@}7Q=_mP!|QfCBqdf$ z`k$fkO+^fE;$4x)9~*@BQp1JXUWZEiTBqAVGKmz+l^u^X!f2kJuJ(;4S$dl>)y~<# zcN58URNG_#i$~XZpd{(U-fXgONtw=DF99E)7MS0rx5einIC0I%9=;-8pm>!!7MLdgPO7aAbu z#Qmi4O*RwLd$&9LuUT$G&22w9S1UtoG@k>`w0S#WY(&rI~-f zij@{m@%I!bj#u7*CQ<7Y3eM1*x z!fFeIo#a38kk34ViqXY#5gZ&-ggv+&qTj9NuIdSLLKdS%u9NROy9uwVd3J;Y|H;~- zRlBX32BqH1X3zibnL&q?2dchezwcZvb`H;ZB|o-3%L{9;$I=)t8ON}@UNBTp@~%Dt z{&ZtB6J~NUSsGlnW?M`7Eg4ggWPu=b-{zB$vHdf9oKuB!X5%E3lAiEop*l2q!jz=e zrVTkCpn6T&wc-dj3y;5)@HApn#Ebs@IJV9zvY$sG^>o+;vx#(aGA>%2DsXn=?aWyL ze@70zZ3MZKr|b#CXt6ITVY1706X321kRM-}^?#xYQa3N(GM7x7yHS|d9ysB)qQ8OO zeLc;ZXDQ?4?I8FEHP#ZJZjeX8anv?qQ56r;)!dUfj++`Qux$9RV zsbbY=Gp8Uh;4oE9271^TR~zr7qS+RA=$a;FzYaN{l+Y_AEQwZB8aP0^Eu~CRS`|`x zj7T;*QKze_+DmKGL|4j8f|j#r!(OgHrB!E8BeFc3#ac{mNGj`=jab^DoYRX+x+v3* zK6*4m<(7+dv$d@_cVnj^6kY)XV9d;JkTy8f?j_cC za8*FRnS8_+ebnvcWw#ij+Akm86v_1KzUopQc27P}Fb!UHannLTq+V8SiB3F`=1=HN ze;$)KBiNb-qp(}mLn(T%z(kj)Z@D_7e;=^{eRnIRd*RLBh7OJDx>6+sB>gqmc6M2v z@ST;A@Z$V8wX10Us(oJ9oONQytqQ+6d_DHfe@2YL`-)Z^SLqSG3^z1Vk9 zHJ!>Qk-#?UVJdOEqVV@6Ss#%|NU}9L&xS|cZXC+eRX8tL8>AQk+p|S(h$C z?pG_EAB&?IDq3lP2NLGk8TRw~6B}SvN*3Y*URnUJh2Y2i<52Y+vB<(g7N_swU}z8{ zaSdBWn!l3Vc77)Gk6|`mbUGF zveBMKRS^Ma9E)nASp-d|-YvGEpAhk!;V3vs^EZ|TxPJ~njjKF$#=7JusvXess8wu~g3n%H7A zk_)>due^PzmiMC#4kK}u^HmD46p6wPS!_=TU|-Gdsx5(#h)1BxjS zqP6U5VYTW#%y1zD^D<}(UU7j{Q?|}1)A7JY@E$O}~D_GA$g+{cq-!!rmT?S;v7$~sVI!<%bY=_K(D zp4(+Cw7x^^JjETW%{F4=Qg352pYpXFvJlXmaYV(C=f&N#{;lFz8OYx2#+u+eCuS>B zW(5$fNzKURCG8&Hus66GS`MZ}p|!l2aun5u^*Uvs69A4G$hhd1giXnqP+s01R+C`K z=voz&83}Ep4J>fP{Tzep0$uV>Bkdw#U>`|5TXpTfaDSB}K}Y@4`FP9=to;2h-IL>} zyjtbwuORTOFwQhzER4nF$img(;NDCJzX2#BpytJ4<;=IkC6K1N;#tN7M;CDSqhH+O zx+~17T3>iqgfmnd5KW!3(WuF2 zG0MRA)br1O9X^TUAPVoDTF`m@Y_r`(hWEVCVifSHK4OfB-HO@P)8kM9yK=LIY6M(h zw5BmBF4lCEFmTi>&;Cg0e-HT$V{nJE4^t8G#cvPT!+n^eMAY}rQHu#h<_~hp9!Bus z_lW^VGvm8tzLD0J(v3KqQYye!L-dZ}w4qSyycHd=7+ahv9j`WY=jD46K4m}0|LPpD z!%5z}YjQ@1>>5v|T%e!rqIyL8LkGZul*(hJF@%0`y*L;}I<3SJelsIa#{#r+7)4Uyu@*_-ho(W=45+i@{&9vDw;WBLCDOyBG2m495Gm z81YH|_%_nbhTCWD2wB!V9v{_TnHEs%fop& z1^GU$UJt_2Q@~8D05Ah;ph>5y>?|igk9hDJ525bYmNV;Tk2luCyNGW$<3=D(mKZ>( z10789RmE_uU3sem#>)RWXR$>326ZouI>BC1Hmx$GnNpz6$}go&dMKk``p(WDMPYly z-;~O7(qQeGTvduct82tTIss@>84Pn<-vbUJofprr+s(ZMZZ7%^Z1NHoJD8OOm*tIF zsXFz!J@1+D`B%M77B)uV3~PQpY;P{&Z@%0tL|mbJl)W-m?_&3@t?{vQr4^}^>2I}S z8{%pT1S^hu+@T^dt6sdIGx&!=MOmDv>pD`k)JOVbD+J^NU_8G2*Z}U^xZlnf%!?K# z1J7=7)HA4Ov}PP;;qn656@WSpKk!)v;pa`RK7y3uL24?A)M3~SPiH0~JKG7BL9;Y{ zLs-nb_LuiMjUWkRG|v@&SdYg_s!Mj7&oxz7=})YY(Sv4J^U3#?DV-04>)S<=!*^rj z^E92+AHSj&jZVGi)b~NQg0T_-(U);-DQoTm}FjG*@ zCn%Ozf^O)L2FfufVH=??;qNHR(;jQ8f4%9ktP7d&-IRLB{YsRxnG1|0F(zvP$_to> zSfZ9bSnr7mLscm|H<7fY@!hqXO*`9Lj|mI4$H0&3=a5bXBEU|YH>H{|Kk!0K8ON;#&?{(*xQ#P!IeoB%5%JiU8lO z(n9sBT6aB}-PrrZ`d~4hDn$RssNox5G(o=avF6usMqK@mmJu8e|m2g!?ZfaJdc+U64olM zwtP5#Zw^JFyXB(be7_`Z>}`82za5QPSpf!*D287cl7M$_h=arS7K1SinE;7FVz6~S ziUoluG*yb=sa*^{SwoPjxcu;YrSeK$I_ZdM`ec2E0WevPo`|Jcw7O0Napu}_QWvIhPx{=q5LUR26_g!l`F6_gE8}64k7H*r=Hyp?L(zgUL&#|G z#kSCH#!WS=Hu)2j_O?r=XTjxupsx%G@m0G!B-ul1vmwv^B zC~Szv(F6SSpIN;D-fO>5e~f;Su{C$%`JO2L!2sB)4)qD5HhOfq{?3|dgNEZtVSlQ{ z$wDHd0VL1$IWjo|_#FR&zSEu1OjN3A1W7$#(_Tu1;0_O0Q1YvyBq|((3Z*sj@ddQD z{SmP$VH?`lm0x|V9Z{qy&`e_G32(6vf)JR%1aE|GL0n%&K{Cady@ulPBllsA+#VIT zlmzH>Ts5=@dlQ}jtHZXa`5Y5T%BFq?K zFDTso6U5}@pH4kyxcYmnYyy9TQnd~ zval#T(wV+=r@wey3oHu-ggf)|4bjF3O~f7pCX4zzhNH_`BP+@ z^>J@z1%bb#w(RI5ZGY(ZI@(lV8oSTOntMznar|lP7doxAj>SBo`a~Z4jQs%Kd-JL7 z>ySW?0kw@>naQFdJI))la_fjbbTVLk(m%3is`$lFj5l)#yArb*(TdNJ&DHRUkZ+^==t#M?S0>Dy{*k<8AGp`n(V{0wwY5SQxd9t&QZZm^{mkPm6W`L_EY$J zlBc(cg~zS~Cw%qa)EMBB`uzO>4ehJ3n1H3`0djjU=&(~SDxS8!uH>mG#N`o-c(Tqu zlb=;7);0IVN;Q<1{@3tq{1up&I@E5URt{%5F)BHKyy~?>;X`ZBzOfIa-)&^m!N7@k z{edTiwhsGOBAIVG<|5Ylu)1uh$401v1 zFS>#Tsk$51%%sy2;#lb&d1;0RECZ@cIct%8auyjUY{--jRV-30p3kUI|MMp4bM)D4 zJjvqc(c`N{uHU-}x8Fo^JNWEG+zyO7#X%nG!w9?s;%mAxZgyi+CXPn8o3Ovj$IFbm z(WWzlb--)Y+B6{Mw}U~UQvM36^~GqG32#~@7BS^bvC-gDWZ9~6v*^&ztpMLT!6lGF z$0+RY&-ixTUB#%53p3t0w?ZMKe=8a))F9M1vf}o-*ACWnX?lJF^rc1N!R|US5NLhZ72==JHtwQ+F7&Tl?F*&%Y%kmr@-|_-95iW zomUq{0??Ej!~hKc%R<^fd2;U8B90si(2@XLTI~gz85!7&BXvwkR^C6OEY~>5b@CgJ zF#B9&bnO5J{Gn`f=zR=aM_lzoTSCVmjkGuy^Jhi276b|FH0s6`gB=f#Y8I$$Fv~r_y)&Ikq4@Oj;?TH>~}4w6Dkkj6Dx06HE1Ac&dIIkmKaD z!9&*m;<>Xi*4MT~!NCSBDL{|kOWm~}fth8p-AVvqt|8hM+9$+)^airheafci`1vG> z9T_)2W+szTr5+8wTK-%vgEbYnK9`?6kC@P1&KNvs`VPd7EM4!`^u$jt$MfJr9oeg#yU}8ITOi`eKSpM$!x+}x$8Mil z*qHzxQ&KP9XJ%7p$olYfm7_YGt+z1!AZvN6d!H+mL2GQ(O|)R=t9~gO8S}2v5bmNMI~=YYcyp3(Qqn*V z=**lBUORWNhhp?6oz`9|6_9J%2}SG?7(4;69eJr((crl<8KBAXe4s*c_F3{}SddU$ zjnExDU7*q*ZyK@v#h-6dGQ8D`=gHra#clufR)F{J*&U85a0z?mB`p}RMKe}M6b0YQ z+n3YwlR7guGY<|T2iqNh!baomSXxs*o3uz{(d&z2_^Cg?T%g^ArV3fr&U_I|A=xn)^T5k7n9SHBvk`>mcTa6@fS&L25@n_oKMY>3nqP)*Co+-I{{G&+Yu zCvj|p*o&X2O{9rPaV~bKQ&pxxQ@>BL(Xz%gK6IV(GwCT8pt^IuTeqL_K>iNkZ|U{7 z&UQz+>aIHzQw6uN>u4U|F)n|FJuOD)4Dq@C$fgeJl@ujkBBKjAkJ(%(BSEk*j_eS; zr5CH_5qXCbH;1g|HY^quD>=v1EB|AA+X#7diJ4T&dxJFCq&g{2#VFw>)-mRRagavJ zd`;cZh6YN58jQbG#~4L1eBcK#grL5#55_a?&z_~HXwnR4c@^N-id8HoT^-&C(=8D{ zQkgvG|GdZUtnBvl>3nX?#Scpef~pEP?=tuZ)EW7PvlN3Kc02)XpdIu5WFq&5!7KEj z+WAXkr?rzcGIUu+3HpAW94;J#$mB%uKcAJmPesa|cei#66EpX~M)?3zm->4_XXMG( z|1udkx!FNwy*H|YJraEMS_x@wb?WjbbK~8(-~5EuR?{f|qcx)%SYJ!4So`PmgphA= z&=di}#4GRg9AT?>3r^cLH&+6Pt3yI8pp-jz%uXmw>;+{+estDJ8^A*KcCOPuKLU9* z=Eo)LdaM7hp>P~e(o_^+479tgRaQaid$VGDZI)KYP!NT_h=UsL1!)00X!%H!Fis2- z{}!bQ|A}m1p!uR57c0AX58LYKILfA5k22=cwp#cg&>Z-MO>2wDmcKl>7Hx)y zrW=flw5HqKv_AkiFkfr^xQ=^hRNy}*Auh~)Z+e%9^DG{4py1t&6iM=ssbW~tP&^!R zN#hnBtsj)%&h60wmsqoU4I#X}Vc1)`K`dgu`?F1plc;b8tqP;fj#_xg-lThbo&Jsj z$qxaFU*%)`Z!6(0EdFp|j-je4Q?H0;#ZmP_>eatjLgq+^N(1*dz!i<{SAQd6rg69O z#pvy`w%I|#-++yc{X>%3GvNHMJ~G{t7!0i~ni!lE9E_DceVzt_qh%2_e+0q}H% zp6|+HDR4S)FgEtK?&4M100_2(#N zz=`IAsa{(_+4FU!TIFqU?$3TW11FULY$Nzi6x6g()05TR8@E{jQXCWlRdb!5JYa5% zA{RnCWkmexl3Q5(!ID)>{3#pR-2N1xu_VlZ z8Z;L<`r?8K8T{ggNwJe0FF-iAKW3;oDHw--K$XU#dc?vSYt<9>l0bBfLN; ze7mP$3n2!o@e*+U1yo}cZ3{XdF#aG7o%p=alm(IY7&lsa98vBDQhB1Lz}6w^L>vej zWGypHXflxKsR3xzgn8gzWh9g|Ir|-m3@QRq3x^Y=;vs_WVrxO;nMnTe7$o0d>$)dCz3D6NjM2-1b{w3E>w%nw zIe}_#NTQ4e5#w-mk6D&%h@AP6MS>HdNy`AnAs{kBlM~z~F!Gt@4=;yrXBVor8{OMZoFBvRxg_g_Ms!PUy#TP>uO)iK2eAs{}pZrN^qED@KW3YC~erJ*iL zg%+Fn@Ivb?ezY__tM z8|r>J(aQSI*9#=e98=c;mxyAftOB}swiY_s*$o)zfRGCOZJJzaPm(D8bst6MN2^g zsz9)9Ss7UdEmTTmWJVIT5`4T#5}^bTp%P0lVrt`;AvxvyhLjYlijKH?Qu}WXimD54 zYwDLeKuyKQ{EDwsgWu;!M`Tp(-SOQ~x9t}09z`)v&)}Pbooa{h>d>9U+NP<$Js6-} zUw~RnSR^8N_Xp`NYD)_n*}q1vr%qmQ`bFzU7|}&ip>7UxTj}bhmErnTFlj9@#wiqy z6AfF<{fJ6t(uRs^6oYkVrR=MloN|L%L-~L{U;9&dhNs8QhPDSW3?8MHUiyk7p|XSn8=%{GuHlr!A4+4kmvna5qF$O? z=F`TkD&Hclx+_mv4U+8N7wksQgBFAVS>Ljwlk*;H{hxmd-7h)24s;fj&PSgXXJ!R& zZrgSpVMmbuHZ3ojc=u*(RsW67Cb>E#)gZ#1fO4jGCEXPpC^xzSW_ETpQqxt26CSPF&@NAjB z7;Mh_VWzIvSB7#zYy{71wFSxJx3JRD39EX2I^c^_9zyKz9fjRki zt^osZ1W5O@AHW~~dNDtMDS*6Ph8Oa_12lo-RlkuFKLOeogg$D_pFr2xYqQp$#$?&*Kb5cahV&HNiH2g7uPe%cu(4L<;hRyY z@H(VonvZsh5(ai+q1T|P^Hm!#pHmsqw#2{3(Vxlw_Y0gCIck=v`c1crB^8HTzgiko zi1CWkMLao#n^lHdgPRfO`=W=tX*+f#?&ArO;^PG*##gu25{xJpDd7k)xaapum zGLQ1lj@JN=|HXD(XY^GAfZM!g-AGPf-yIU|GG`f#zM8}XzAPKEF!MFl1--csOdGlS zdcOGRdx_Obf!a7s@~w0hSg-d{ScVQj>fZ`)oH)}3n!Ap*M!_)u2>&(Z%K^oiqc2Sv znHgCxryo4V`)(QAfa)l1Lk1g3jW>^E!nShVIjE(^9A6`Sz`ia3<}MBCO+LZbR~$nN zr-S@nCymo@Kji4H$6AHTDu_$i7IljN!2Nxnq@r{=`?}ORO@RIrlgPR+Gv<1O0fvM@X#n$^vIztX9HZfV76?MP2r~Iqy`K@%@osL&iUMXAb+=iR+{s z|JM`u-p&I{u0%h;JDs7Lrv@y4XPwFoPoH+}UqAP*40=r^{JRSqm#U8dKd-mzLFuI< zo_|6CNDnQ2w+~^;UeMyT&k5PXN1dk=P3kKF9$s%I`CFe?Zz4k)VbuI|gr&&Jf>dHr zTE;3e-NHJ$!=aBgngSCwNy~@NH#>b^1Q7a`T&m_(w?^iGUmJKEp9MQKs`#HzcgIbn zNvBsEI^d|(K9}5MM!H}y^C%I&T7*<4u4rRJ?nS0AkYkU{ZsO?bhAX@6wu9ZEMo54R zSj78soW?g3RScb8!>L$$eU-|(<}+AOeYxEN@-hZ!glc7rZDdKkrOf~I#yu-+RPceg zG=S9#gZpE^t65TI$_TP0v!F^a{drMoxonm@M`uXtwMijk8^k?>mL1Eo7kkl)nT6H) zlO0Al8w>{jOgcmjJmCiZ;K=SInsfk@Hl1dPmP8jK&r; zOZ?+_b0y;KW<{WAP7+-Y4h2C*h-HkJ$Q4Pbr_B<8lz{9nRFaYw)reWdBxcqox#SD> z1X>aF%THIdFl-d@uKnunfxy|HuQXn=?JlErcnLXvmq78xdU=%f_N>~JaoNS1e+aF0 zbdmn!-3b!0MpT!-=r;j#U~$vczMJe50Uq@=;wZv?#MS;o^p!wC5N}m$hu8|sD%0L0 zzl#Z=&f@BD{c?t_9D~h`u;w~3(1+cUFkv$TrHk8VDC9b^*mu~Na1M#DGZ#7B^H;BA z)OETCzmUz|qD{}QM&cshlG6bECCQS2z_DgzgybRu>4m!cNt4KP%K+JyCBzZ9%A8ZA z$%DIH3M||fUUy2WSB zp3~Ng+&vb34o{QvTY4RL?Jp~+g(C6XNF2HItQs_RRjeedluGsV0Zv^II7n}do z@yXHP;g1tzFB_&<#@Q4u;;pPQqF7F4qFt^Kn500L<3y*S*#0ba4lv~qUcy(b2xTPB zn)_w-N5Yar{v*TTV@Xb?CZ?mR6`2p`j^ zS825#ckV{XB$IJbUG*Jar%0$DS^@s?Je&22QDtYzFv>h7*-QBlyE&Qx<%STGTy8o@6-akLaUhI zPmW0`7H{YeKQ5o%s7?!%Gs6-g?xhlA>8NzDNq<`lJD`sV;^yE$yM>6v z8J#6b;(^E7$AcERba7F1WjsMPhTqk|G=>nCcbRBh;d~R$q&vmoU8J--2O7D`9G6MV zmUBs#dZU+nVx8P@7d>*{ZbWA(s|Ef*Z63wo(-!&A~e+9$KyUF zy)c2ElSSTiz1`Fn?;~(C$s=325@lb!!oK``LSXiCBr4znvbXSy_@%z^DQEsj^o3>gc~#dB%IB z38fvfJ%I|@rSgjzrPfJ*=eNkFtK^e8Vy#tltLR}#qTEaO#B#Zim60Wbi@@=@sAYwn z$Y#)KFqD~yv_fHFMTBd>55K;~N8kQ6HQjKZ1iX(-(X_HQaUntuz;ISIvK>!fy*B*l zDn51iYAv0j-&_KynOLN5!l)O3RJLu)=(xAA4f7o659>w6Ql|x!WGFUp4{xzXnN#CF zCow|t_AAuGT|#0MpsEFdt%09!--B8*tJ15Yts&_M^Pc`dD1cyVY>ztw zNj?ymgT&o}oqmJ2UmjSRDygC`z&I75oMX`6BjN(v*v17oTBkcWLE}Nb3&-oOs`(s3 z{c1U)I(6q|OX<8ea7PLfXd}h1xTw(dgn#IIbT7NMistE^`v}}@s9k#Gtl$NO+=hHt z@$6RJX2N#)$x!NGrL-;0bil!r-hj6#0I;ysPq;`te@3s0c zx?{C2uJC;%ZC5`Z>rm2o1kJl z(EQJ{A?3%5{vQqPKeOKg^`}W!n7)9F+f6ta03GGWtIr>Q%zuwzDy=-wok4V&AgE@j zW3kjk^cI0J84yXv1Y;rMvjl!71}b0qpGXeF>%U>m9n4(aT+EH_|8wVPVgu{yX6)kT X|BjPLP diff --git a/report/document.tex b/report/document.tex index 0889831..4bbd1b5 100644 --- a/report/document.tex +++ b/report/document.tex @@ -178,7 +178,17 @@ %% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %% -\title{Document} +\title{ + \normalfont\normalsize + \textsc{University of Pisa}\\ + \vspace{25pt} + \rule{\linewidth}{0.5pt}\\ + \vspace{20pt} + {\huge Languages, Compilers and Interpreters Project}\\ + \vspace{12pt} + \rule{\linewidth}{2pt}\\ + \vspace{12pt} +} \author{ Elvis Rossi } @@ -188,6 +198,8 @@ \begin{document} +\maketitle + \input{report} \end{document} diff --git a/report/report.tex b/report/report.tex index e929a5f..29a147a 100644 --- a/report/report.tex +++ b/report/report.tex @@ -28,7 +28,7 @@ The additional arithmetic expressions' semantics are implemented in a similar manner as with the other. - The sematic of \texttt{for} is as follows: + The semantic of \texttt{for} is as follows: \begin{center} \inference[\texttt{for}] @@ -41,7 +41,7 @@ \begin{subsection}{MiniFun Semantics} The semantic of the MiniFun language is implemented in the \href{../lib/miniFun/Semantics.mli}{Semantics.mli} and \href{../lib/miniFun/Semantics.ml}{Semantics.ml} file. - A \texttt{reduce} function is provided that transforms the AST into the avluated value or an error. + A \texttt{reduce} function is provided that transforms the AST into the evaluated value or an error. The AST type is defined in \href{../lib/miniFun/Types.mli}{Types.mli} and in \href{../lib/miniFun/Types.ml}{Types.ml}. A program \texttt{t} is defined as follows: @@ -67,7 +67,7 @@ \begin{section}{Types for MiniFun} - A type \(\tau\) is defined as either {\it int}, {\it bool}, a touple or a function. + A type \(\tau\) is defined as either {\it int}, {\it bool}, a tuple or a function. \begin{equation*} \tau \defeq {\it int\/}\ \vert\ {\it bool\/}\ \vert\ (\tau,\tau)\ \vert\ \tau \to \tau @@ -98,13 +98,13 @@ \begin{center} \inference[\texttt{Fun}] {\Gamma[x \mapsto \tau] \vdash t \triangleright \tau'} % chktex 1 - {\Gamma \vdash \texttt{fun} x \texttt{:} \tau \to \tau' \texttt{=>} t \triangleright \tau \to \tau'} % chktex 1 + {\Gamma \vdash \texttt{fun } x \texttt{:} \tau \to \tau' \texttt{ => } t \triangleright \tau \to \tau'} % chktex 1 \end{center} \begin{center} \inference[\texttt{FunRec}] {\Gamma[f \mapsto \tau \to \tau'; x \mapsto \tau] \vdash t_1 \triangleright \tau' & \Gamma[f \mapsto \tau \to \tau'] \vdash t_2 \triangleright \tau''} % chktex 1 - {\Gamma \vdash \texttt{let rec} f x \texttt{:} \tau \to \tau' \texttt{ = } t_1 \texttt{ in } t_2 \triangleright \tau''} % chktex 1 + {\Gamma \vdash \texttt{let rec } f\ x \texttt{:} \tau \to \tau' \texttt{ = } t_1 \texttt{ in } t_2 \triangleright \tau''} % chktex 1 \end{center} In the files \href{../lib/miniFun/TypeChecker.mli}{TypeChecker.mli} and \href{../lib/miniFun/TypeChecker.ml}{TypeChecker.ml} there is the implementation of the deduction rules, but returns either the valid type of the expression or an error instead of simply the required option type of the valid type. @@ -112,7 +112,8 @@ \begin{section}{Parsing} \begin{subsection}{MiniImp} - Operators listed in order of precedence from highest to lowest: + As seen in class, lexing and parsing is done with ocamellex and menhir in the files \href{../lib/miniImp/Lexer.mli}{Lexer.mli} and \href{../lib/miniImp/Parser.ml}{Parser.ml}. + Operators listed in order of precedence from highest to lowest: \begin{center} \begin{tblr}{colspec={|c|c|}, rowspec={|Q|QQQQQQQ|}} @@ -127,14 +128,15 @@ \end{tblr} \end{center} - The expressions \(c_1 \texttt{;} c_2\) and \(c_1 \texttt{;}\) are both recognized and give respectively \(\texttt{SEQUENCE(} c_1 \texttt{,} c_2 \texttt{)}\) % chktex 9 - and \(c_1\), such that semicolons can be placed always at the end of a command. + The expressions \(c_1 \texttt{;} c_2\) and \(c_3 \texttt{;}\) are both recognized and give respectively \(\texttt{SEQUENCE(} c_1 \texttt{,} c_2 \texttt{)}\) % chktex 9 + and \(c_3\), such that semicolons can be placed always at the end of a command. Integers with a preceding minus sign can be interpreted as the opposite integer, with obviously lower precedence than the binary operator minus. \end{subsection} \begin{subsection}{MiniFun} + As seen in class, lexing and parsing is done with ocamellex and menhir in the files \href{../lib/miniFun/Lexer.mli}{Lexer.mli} and \href{../lib/miniFun/Parser.ml}{Parser.ml}. A decision was made to interpret \texttt{\textbackslash}, \texttt{lambda} and \texttt{fun} all as the start of the definition of a function just for ease of typing. They are associated to the same token \texttt{LAMBDA}. Operators listed in order of precedence from highest to lowest: @@ -157,7 +159,7 @@ \end{tblr} \end{center} - Tuples require parentesis in their definition, but the tuple type does not since there is no ambiguity. The symbol \texttt{->} that defines the function type is right associative and has lowest precedence. + Tuples require parenthesis in their definition, but the tuple type does not since there is no ambiguity. The symbol \texttt{->} that defines the function type is right associative and has lowest precedence. \end{subsection} \begin{subsection}{Interpreters} @@ -175,11 +177,11 @@ The control flow structure is composed of a flag to know if it is empty or contains nodes and the set of all contained nodes. Since each node can only have at maximum 2 nodes as next nodes, the data structure contains a map from each node to a tuple of the two nodes or to a node. - The structure also contains the back edges of each node implemented as a map from each node to a list of nodes, the input value, the variables that are the input and ouput, the initial node and the terminal node. + The structure also contains the back edges of each node implemented as a map from each node to a list of nodes, the input value, the variables that are the input and output, the initial node and the terminal node. Finally there is a map from each node to a list of generic elements that in our case are simple statements. \begin{subsection}{MiniImp Simple Statement} - MiniImp Simple Statements \(t\) is defined as follows: + MiniImp Simple Statements \(t\) is defined in the files \href{../lib/miniImp/CfgImp.ml}{CfgImp.ml} and \href{../lib/miniImp/CfgImp.mli}{CfgImp.mli} as follows: \begin{grammar} \(\defeq\) skip | `:=' | `{?}' @@ -191,9 +193,9 @@ \alt{} `mod' | `^' | `rand' \end{grammar} - The implemented cfg is neither minimal nor maximal, but can be either or both for some programs. In particular each node as associated a list of statements and sequence of statements in the AST is put, if possible, in the same node. + The implemented CFG is neither minimal nor maximal, but can be either or both for some programs. In particular each node as associated a list of statements and sequence of statements in the AST is put, if possible, in the same node. - \texttt{?} is only allowed as the last element of the list of statemets associated with a node and a node has associated a \texttt{?} if and only if they have two next nodes. + \texttt{?} is only allowed as the last element of the list of statements associated with a node and a node has associated a \texttt{?} if and only if they have two next nodes. The for loop is translated as: @@ -339,7 +341,7 @@ while exp > 0 do ( \end{subsection} \begin{subsection}{MiniRISC} - The MiniRISC CFG is finally tranlated into MiniRISC intermediate code by the function \texttt{convert} in the files \href{../lib/miniImp/RISC.ml}{RISC.ml} and \href{../lib/miniImp/RISC.mli}{RISC.mli}. + The MiniRISC CFG is finally translated into MiniRISC intermediate code by the function \texttt{convert} in the files \href{../lib/miniImp/RISC.ml}{RISC.ml} and \href{../lib/miniImp/RISC.mli}{RISC.mli}. The grammar of MiniRISC is analogous to the one for \hyperref[grammar:MiniRISC]{MiniRISC Simple Statements}: \begin{grammar} @@ -373,7 +375,7 @@ while exp > 0 do ( \end{section} \begin{section}{Dataflow Analysis} - A refined CFG structure used for analysis is defined in \href{../lib/analysis/Dataflow.ml}{Dataflow.ml} and \href{../lib/analysis/Dataflow.mli}{Dataflow.mli}. The CFG is supplemented with a map from each node to the support structure that stores the list of defined variables or live variables. Since the CFG is not minimal, there is also a list for each simple statement. A fixed point function then applies the input fuction until the map does not change. Simple structural equality is not appropriate since order in the lists should not matter; an internal function for equality is used. + A refined CFG structure used for analysis is defined in \href{../lib/analysis/Dataflow.ml}{Dataflow.ml} and \href{../lib/analysis/Dataflow.mli}{Dataflow.mli}. The CFG is supplemented with a map from each node to the support structure that stores the list of defined variables or live variables. Since the CFG is not minimal, there is also a list for each simple statement. A fixed point function then applies the input function until the map does not change. Simple structural equality is not appropriate since order in the lists should not matter; an internal function for equality is used. \begin{subsection}{Defined Variables} In the files \href{../lib/miniImp/definedVariables.ml}{definedVariables.ml} and \href{../lib/miniImp/definedVariables.mli}{definedVariables.mli} three functions are defined: \texttt{compute_defined_variables}, \texttt{compute_cfg} and \texttt{check_undefined_variables}. @@ -382,7 +384,7 @@ while exp > 0 do ( \texttt{compute_cfg} returns the CFG from the analysis data structure; in the case of defined variables analysis the CFG returned is the same as the one in input of \texttt{compute_defined_variables}. \texttt{check_undefined_variables} returns all variables that might be undefined at time of use. - Since the greatest fixed point is computed, first all variables are retrived from all code, then assigned to each input and ouput list of variables for each line of code. + Since the greatest fixed point is computed, first all variables are retrieved from all code, then assigned to each input and output list of variables for each line of code. Since it is an approximation some behaviour might not be intuitive. For example: @@ -406,7 +408,7 @@ output := y; \end{section} \begin{section}{Target Code Generation} - In the files \href{../lib/miniImp/reduceRegisters.ml}{reduceRegisters.ml} and \href{../lib/miniImp/reduceRegisters.mli}{reduceRegisters.mli} the function \texttt{reduceregisters} reduces the number of used registers by counting the syntactic occurrence of each variable and partitioning the set keeping the most used as registers. All registers are either renamed or put into memory. It is allowed for the input or output registers to be put in memory, in the latter case some code is added at the end of the program to retrive the value and put into a register (register \texttt{2}). + In the files \href{../lib/miniImp/reduceRegisters.ml}{reduceRegisters.ml} and \href{../lib/miniImp/reduceRegisters.mli}{reduceRegisters.mli} the function \texttt{reduceregisters} reduces the number of used registers by counting the syntactic occurrence of each variable and partitioning the set keeping the most used as registers. All registers are either renamed or put into memory. It is allowed for the input or output registers to be put in memory, in the latter case some code is added at the end of the program to retrieve the value and put into a register (in particular register \texttt{2}). \begin{subsection}{MiniImp to MiniRISC compiler} The file \href{../bin/miniImpInterpreterReg.ml}{miniImpInterpreterReg.ml} compiles from MiniImp to MiniRISC or execute the MiniRISC code. It uses the package \href{https://opam.ocaml.org/packages/clap/}{Clap} to parse command line arguments and generate help pages. @@ -418,7 +420,11 @@ output := y; \begin{section}{Running the code} The project uses the following packages: \href{https://dune.build/}{Dune}, \href{https://gallium.inria.fr/~fpottier/menhir/}{Menhir} and \href{https://github.com/rbardou/clap}{Clap}. They can be installed via \href{https://opam.ocaml.org/}{Opam} with the command \texttt{opam install dune menhir clap}. To compile the project simply run \texttt{dune build}. To run the test run \texttt{dune runtest}. - In order to execute one of the interpreters run \texttt{dune exec {-}{-} }. To see a list of all options run \texttt{dune exec {-}{-} -h}. A binary version of the executables can also be found in \href{./_build/default/bin/}{./_build/default/bin/}. + In order to execute one of the interpreters run \texttt{dune exec {-}{-} }. + + For example: \texttt{dune exec miniImpInterpreterReg {-}{-} -i bin/sum.miniimp -r 4 -v 100 -e}. + + To see a list of all options run \texttt{dune exec {-}{-} -h}. A binary version of the executables can also be found in the build directory: \href{./_build/default/bin/}{./\_build/default/bin/}. \end{section} %%% Local Variables: %%% TeX-command-extra-options: "-shell-escape"