From 9d375d3d79fc39d533dbd29bba0c03a9b014cdf8 Mon Sep 17 00:00:00 2001 From: Jon Michael Aanes Date: Tue, 14 Nov 2017 14:16:55 +0100 Subject: [PATCH] Readme and exmaple --- README.md | 29 +++++++++++++++++++++++++++++ example.png | Bin 0 -> 13047 bytes 2 files changed, 29 insertions(+) create mode 100644 README.md create mode 100644 example.png diff --git a/README.md b/README.md new file mode 100644 index 0000000..4bc161c --- /dev/null +++ b/README.md @@ -0,0 +1,29 @@ + +# Tigersay # + +![Once upon a time, there were a programming language named Tiger, and nobody used it. Then some stupid student though 'lets write a clone of cowsay'. And that is how I was born](./example.png) + +An implementation of the classic Perl program +[cowsay](https://en.wikipedia.org/wiki/Cowsay) in +the Tiger programming language from the +[Modern Compiler Implementation in ML/C/Java](https://www.cs.princeton.edu/~appel/modern/ml/) +books. + +Mostly written for the kicks, and also for testing my group's +tiger-compiler. + +The framework we're using does not allow us to +parse commandline-arguments, so the only way to interact with +`tigersay` is to pipe into the compiled program. For example +`echo "Grrrrr" | tigersay`. For the same reasons it does not +support alternative faces. + +## License ## + +License is `beerware`: + + wrote this program. As long as you retain this notice you + can do whatever you want with this stuff. If we meet some day, and you think + this stuff is worth it, you can buy me a beer in return. + - Jon Michael Aanes + diff --git a/example.png b/example.png new file mode 100644 index 0000000000000000000000000000000000000000..a8d3049535828a3cf46d76db4703e96f25fc67f5 GIT binary patch literal 13047 zcmZ{LWmFv9vi1PM0|a*n34^-^3-0a&0)(J}!QI{6gF68RcPF?zgS!SNxCHoyyyx6| z*IDQL)2yD}T~%GStDf3~Dk(^!p%9?}001;;DKQlQ02UnpfT2W!h5j;tz?267yah;$ z39Gp*9%tOy6Yr($=`X(p_^l(yt<$dNQih!ahvPt>Y)K?{c;YfrRw6Qr%NEJwItDn^ z(@M$~Q{_$AbOts02*-Qs8DwLD;k8E6g_KzQLT3P>m>y5^2RQLVk&Z~O-%fcj9)bnr zSoLdOSzfC@9)!80qJ!i*WS~+23~Hrdpnqy#gfzp2UMA?Emuz+DMF5Fp>i2ua~Y`SffgT4T)7vD%0%D{UU>1k0A2|H zWihTX$#&jZkYYkv*PO8mk0DY@dBs8S*u0o?G8=v1Y+0@Rq}Z1m@< z^V%t%DjtcMk;$trgJ%6QCSq&USz&=(_p#fpzNgP)xds!-Se=9dAX1d;CS0c@ez9I9 zi!GmtxTd=@%=bBOPcdU=xzW}Vf7FkDq3zE4CI-Rh0G@M^u2faDtoPVGtL$VK899Kw z)}htOuIQq#Tu^f0XXr(8Di>3~wu$?ZhJ4?i=jB3o+o_;wAuEpwRdBS^LYiZ*7(;Ds ztxI>-yMQ;j7S5!up84RVl5yY`@!_zy-ijig_$C4Lqv94G1v^%UutY*!ua8plI(42e zS!9q1KilYMis=i;Be{8NMQ6OK%YLdXP3a#CDnLqZrgqXa0enb!S$M2e- z^|mT)>9?vnkY*#()^l2$kJuBRT6=hEiT6Z&ezT&OQW?oG{OJ0AZ&uVQi5D^3t;A^SbM9pvCFsLPsUT z^TDi>Mh=S>s!+ZdEhdTv^CU+kNe1tVX#<`rF@4(arz(Y0&F2G!DQ6l2{(|{mjx=g* zmlxqg{6(W0IStMWQWMxb{DhnBN*Zh5tf{@8JIQ(75Iq~7uWB00J^xhb^WCegkI!9) zLDg)Z&LhC5KHu!M)Rw}aeRRBqhfP5%B4z(v)xmG>;_%#J;r=b7?BX&sg&fc7siSTP zr6BLe^V6~ZnzWe?0#imN5B~GTk9K~Fo+;+8W3k3W5yIo*f8 zN@oedwp4~r{q}bT{Heg}^7r@(V=>#B-i6UamX8}-jGg^_lMsFHR+$&~oqz6<9-9Q9E;!G+*HYI>_v z=f=vDjPd)iB_rafvfbI_aoeB#?(*M99}~@LY9Iucfz?BSo!WpItO7Bq;?>z$!_&*1 zjyoqW)wL^(B&@Vc(MHZ)`xjpWP7 zoTS7D6Cv=56zy$)c4WS=lSET)5?h>{cJ1acrGZfKSCAizJyl2 z6EiCd%Z=~xWaeS-Xvuo#nLC6enx?Pk(nug$7>N5iuNsy{H#Y%^7P4dqDsuHU{%xVpfrGm8IJU)XJJr!B>UJj5E3rly zSE{n7N!aPH?NK3e^h!zsgPA&ogq4tN9Aee*ZL58>C%mnH^&3@2e8scfd9mQ`mXnA` zVgRNh89H;2p|pHjufhO&Rjt-QCb!dVyNo$?+;oE$C_t>ZQ&nG`OEK!Tf`gW&iNCLz z1410eVDhR*xs+5+%=|cHn4mM1-MaJA|T0N)_w1K@8|lBn*RfzP1o=f?<`@?9L0@PW$tkE zGfVg^8yO@Je1sDoh>xwVK+yELc_0svn{)g*YubRr!Tf|NSb|R{HJ&l4(wk2)M6Z*D zjuxODniQr~>oz#Or%f2lAmB1Ym@_FQ_)QjLlExhtCWTCB=bbOXzF8f4dr+kl-|HqN zvCD-`D@yIk+U8Wf`IxAa{JNE6^kUY68lK!af%Zelcgt}Bdh>d+kD61C^P{~k??jL& zLT&tN>o~~Aj87^LFG7vdA9;^|olcZB;p01R#i~)oaxOArF*V%5PMW)VkXA>Km^&b( zEf~#8^P&PJ2I><)d0_@??W+q5Yu1apdT2q5e1#n!Sb%Guh=JS`LMhS*(BiO<(y7;tE`X57Qk-czuCIh z)KC3>P+6zNpkVsEK*2{55Hrx$>p8tX(~_5=TVIIRvNbSqTQKM}`Qci05+pkpATJwI z?&)IFbGwXMcrq8w%U7mhx^_!H=C_0`g)Jg=zOk6u?tJ-KKfK$Vm?R_BHvgmoVL?9( ze=Dc45S%xfPa$SV^qq(>QE4YsDc!-rv5wf0S2vJUls}ki?lKsE&7~i>AEaU)0FoW# zqU&hGw@obmpX5R%!|iOk*y(VTHiit&#>~}l}wvA@I;Xwp3)8J zwvia1kQF_`;7}-!JChUljgzE29nxCzlDXNqZ-DLE)nYMpJ8bzr^6>LLOu6c^Vq&!5 zlM8;2EM0r_^t!EkzjYc-Sa&B!iFI8H6uU`Y(R<4EJh);vHLa$7p6$!CS(=zmgIk4v z{24v|DY9w%ezOhS-rvS>qI>H+eY+nT?`=9|v}tgY(V`zrcPAnBCv6GCvY+bdP~0*n z2F=Q~eI+fE$r*IL;V;?NkNA9ktQ@akf2*vvG6S}5huqzE*kpRTC%wVaeY{ErUsCVp z@^BEn4%q%$+?tR_PiP=+U_*kti1Fi6eu>C>8MWZfA zONYm^>h#Qhd__7#Ve9a!B;%IlU2Zx=2dnSE7=?_cv!;V#30m8HTAIu9X!%|d-%b3o z%R68^+pY#zz|LGc>+46qC3Mu!O^tH)awv7t>AWc?qP%TxQ5(7kpv-Jq zzy*UD+s@43JaetSnG4R&Et+r+wx8=FJkI=mXJk?^)>9SrKRi5Lp3!f0_eVT9JE;s5rgLPq+g#VKHdH2q z9Taz;vRd6sf$J+$@0H^S(_Jr2;Zl}#s&cj8mx`c+b(P_$$DTnf5632IP2)YXEo!rH zi5{?YZd>Pj+#v?{b@mnOGUezJ3T=feQ0k3{6w~8OawG*6oJVX&?hqYFDZI?@>nlV1FUo4p z91jHYCB5d$*hrbZ?q@KR;hyi%2lI_)h!2@f<(9JruRHH1TAOUtH07KEIyb2uwGvnxvEYoJoTg z+eH=7**8GdA_iWM2*Hd1!-ccq8wVfNfAC%Z#Q#<8o9@HFZ}Ll%y^|3}U_^JkYQ-n1 zg0&26ymTVQ}Evz3uRWt$cb^m3IqxbP7qc;Q2N{gqpz*|E? zwWJrJ;D-zS#1dC?zEiMnJ)3uSU@P8oCtKYQ3@9na575X2+^Ji?orbVGvD6e>9)i?2=L_V3>L+o2 zGvJl$Ycf_D0yo+4*jMjEPyI1Wq>?|YD}Bn9(S{_@r=eh}yV3T(4y~Hs*waI4nWX$? zZB9Wc%|1Q(j^PzIIZ!X<$fEgFVNqA0O?oZzi#YkV^c@$zWZ_!V*?|O0EjCJ-<>@PQ zISD#it`w*cYy(V_bhqv56z?E$CqJ7U>Q*!x=%7BybK$+bm zhHSowLr**_HhB>9Rf=KiTFVUw*!2s}`Z6EfuyV{dWx96t@eCh`_!M!++IF#kKX+PN zcU@nHjxOKEvHNE_`DXbW1do_{9uyI0oa_SVRrr`je{eZ|;INRdt%jJCeGv8HC8d1= z8({ir3e~OwU>Bif_|DmfD?CE$C}Y_Kjx9371slbL?-W%Fvro4^wa26K&`nZ~9EfLN zX6U{&E5I|uZiOmHb9$E%a#t0zfOdb%`0-DJMfhRR*v70mF0p)O5rjC6(WFLUY?%0F znxrfj7RA?QWMYyJ^0oeZMD&`lVS@Q2iI!gp-{R*4QZ}NS07aB~(ZT@Cdn?9W5)v{N zi;%u`BJyAHRj;>Y{tATNL@hHCV|Mh>b7tXN-3ML63di_FPHz>X1g!wtH9vjtBeM?6 zxdydW?oYJ4k{07GJ)_I06;zrDj76! zpOM`DWQG3y+ngsVhr(C*V$OLL_c#gD?GB|(#WdRz^EIc5SDxItR=5{<}g z03G=Quf*&C5Y!2}A#$dpB`g*{R{9NsuI!RV8nUX5c(Fhe(!h|DW-9}5}F#{$LPg^loWE~=GPi;?b03& z$oa<^g#WjxOv!mPvqbR;zka#vh#S<4zHHdQ+>@TDCi~L6m%A0Bo>B{Ea*#Px&9c6qY;I=q~0KDL?QvCt;@y-*C^ReF0`Xby6ny^}Eb9 zeXm;W6XMM2=N12y zqs9vQX~7;Q8Sy4}@}(Dvt6t`pBV&E)L=DKHd#@#JN>~RHn>{R+A7{q1Wb&f<)HXTc zR6f4XLd47IoGhA`!8kgICp+Kqc&P)^Iuj7l5B!93H*=1g0{cS?RTkF?NG8Yc^ED^m zT6X5W#(jFR&?jh(+n=bS(hJ`mQ zGEe|U3YB6)u*$CF?@JU@e+>Ze2IuOUvvgb}VMAONq}n0CzF5UARUHOR>6G8Z;`GEDqJ@LlJ2?q=%KU8wH53|vf{O1;?vwQ} z$?qHSM~>a51p4{HmmVg=qQOQ1a>m^>9F+TvdEPqq zvlf0{ZB#LcATWrMyxD8Z$-~aY>AK*e`Rh9}C+3q76TLyOe0T0wRJ|*L|EZ2Og?wl9 z#Je4lwh{680p=Ku=rBqba5R9K-+qYYq5z|I-QfS5`u>#hL4nqP@I)c;0Z`{OM*;n6alE8S>br)=TZjbDdUmtwl-v!07gIgmtBS7(rmKGzgm$krUR!?{lG^%ow*B}j zq2A(FMBn!0UK3+8P=rEL@S6oR6%rnzS!I>XqG#|wSVeQ){@Q)kjcrL|d!%e3;T!1} zAof+N@6%{Ey^ri5a@*Am5?Ir_d;ifEeu9p!)4cAN>cgrHZ=l@tNt?E0ddh=EsG&ec zed3jtKZ&Dd^Ss{)U&ocX^h4~kUG4tUvNJ|JWqi-*Ya#F(U%IRV!TF{~YbG=-5w=xp zZ%1d%Kh?Cqe$w$I7h%dNu~M1svt74(+wwc^EoPy67fnytACa4&%?Y-(#l-Hdf@>^T zI&Oa3wHh|=g}6Ri9Sqvz3j5;w+eSm=sK3*236tfdz5>#3APKn4R%2S(?7OhYhX7?m zXvxA6dR3X(l7mdb4M&3tzx}zDWo}6wy$f)5{Eg~N19a-bGH@nSr$mJ2exG+)+8qx& zlFrh@zvu-I*B*{{cI+Gly3iSXo5Ui%;PigaE};Lf6{zA3a;O)_{kN65X<^tkc(%~1 zfgY*oyORUen=i1i%y?U5;1mTG<&ijHgZOL*V7k;9$haFfwyCtM{=+rM;lGu;?{}mS zWScJn4&QK~Lz|1R(N7Yh^U#Vh8CqHA5@6Rm>}a<6%4v?zcaDEfYo=;GKe<|G*L?HM zi^J`QO@zaKtFKaQ{w&<@lanY@ud=4vpW%~@)U&cOOPkQWDgyrJ(W`_)2)!a@KVobX z&A#!tMBg*S&zm~)%$jNCGB!3Rvye?ui^4fGE=Wwt*%?=EjExSeh>fNq36|8aa`RK_ zNLC+ZTGwTio2@+lhsnG9@h*Gem=NhC>>u z{bCrSq)qz}TCkN$G%849NvOs09lQ3+-V#@J>wNFB;*efU(?*g`vhPA^x=7%l^t*Ql zIG*M152{Cp6rBt;*{P6f73}5`cfP_kbdc4&^yPM&f-Id}lkV4?x{=@RG%w9IHuH@T zZRwo0UQtmX+BL*lO+VIM-bgZhDKum|2`x2})*-1Gi$JEL&bB!#HSWH{#4%3#){abzxG5ChOks-wWt#tJ*9NGf55z8v@CtZ09Ym`b@$X zO6hO*r(>=1y!X?*+uaWJ%UAD{!Q2&~9k*t_G%>PzwJ*!@=7rdEDOJel0kI_khV;r! zVs=1PCjMkIw}t9SkcGDg=UhEEH||zwB|kNT5SZq$FID=ZxTiccHgZSA+5M2|`otJ@ z|4&Itxs%r(wXuM~l+LsCY1Of@?jnS?svQ@lcQZ$eA4j(FF-OFGuQK*y)MTTx%~gWQ zzu3!k=fAL*h)wS_IT@^(^=I+doFFTZJiKEVbA9HNYSPnt*F@r<(iJ6WGc zZ&mXwU@x~IS%COID%Oo3-gjA**#U>3jt-sJvf zN~~Om4v5~soc@0&M*lG(;-E8rtdzWnRrMC!c^mL1&fVr>m|hsvMFr|AL|B>mo^WMp zS=I^SCLM4KOEG#E+Yfy}1u~zI|2v%$DketAe@X9uhf)7Q`oB)C{x!w=&494yewz7g z5Dhc@`eoDwYXoPXITBmdu2IVVGVnrDTK@FuLi=9N?x1SwW$r~G)F-$%7#VfNQ#teZ z-obD~|2JsyUeR&Ca{iwcZtkmTO+_-*40{4UWEKyWR@cZX!ay^eN(quhfc|ch% ztCZEKr5RPfTbY)<5;FlBf{0y}+CPtkXYMk<)YY z%Bj^bm;|;qEKVp!)4LWrMVcCEROl)c@i>g<$-20m{7rQ-$td;9+ay$J zYEQ(SL`x%P?hcNYz#p^9P$lj!-E%%3k;;~3(CmX{Yl+D$^wO8n?;WQ?3=CA#U za&~UDOc&WZ5@I>h;_?!7a1t4SLf~}=!zxyXZ>7#w{lua?XA)p;?Z`zC?^Q00u$d}F z8Va(Y!sM^l8vb0#qxt9O?Qw+x!V5+==oyuP?f1OzXg}~sD6=UF)3jZR8w^m`2V|S? z*>#%&{P+oNUypm)Y>X@@d`qJ#(wUxh0M+ufv{!#Gf1|BJb#$6>=A0a9CQYn=g(`8?LyX zW(3o!N2qwa;XVYw{?vsRgc3uB5@Y{v2XnJi@aShQ32|@}hA4i#eVP1*EZe<*t*<^d&0=M3e9rn?(%q0DPxbbTLWCQ3@#4Tt$}l=)GF9`RaBS}te|{?f))6ONhN zJvfO#)FAMxtSqNA1EuVJEZKxr>VQ`S8p8#WYl~av)xI5HH*YYxe*Z8fS&ck*@WNMJ z12A-Vlt9|+_j*&%M@NO!?a79!l{3eD+Xp z&5|_TGMPuYccPVV**Ski(UeSTVwS8h#G7dryKavv z4B!B#mG2cDRhzdnYkjyRY&J^eJ}Jy!&p$)3wt#y%bx~ySFyjle)MQtkvoY#7VO*E_ACm;DBsOJf<^E3)#=wR1o zHKO2-=Q#BiD=x2Foqs)6wKw@tzq_GH%r-h>8xf}k)GsR81&eTy^IYAiB0B3gA#!)L zVyUgAmO|!lNBTpqr&^|eZ(&S%$ti2lA>VU zF#Vyju{l*Ap@g^=(hz#A_#rBxP=x=L&J8LZYUbhR1laYH8da4T$%b|0ri+luaRq5% zG65HYn+duENvdxdarGZw#3K1eH5pTW{3tlinLgtR;(q*p7fDDweE-*?^xc2-SB7*h zbAO};9PqcrC=)R-O8l#?;mAP0PWzN_6~MBmllq%&Jx3>HHAPm(12SCWJUDDC~k57mJAIZacXl{Zol$D$Tjbbv2( z{P0fQr`+@Nv(M%o*EJ`2_xb>J*R-6k^NdZRVxEbm}GNtYlb zwQgKpN1n#}#4YHu^`pPJEOdSLg4r9?kD&8)RsPg|?cghx3l9_#ZoTbmQXuPBedrU& zTqw#0Y!mcGvdzi@{rF2Y3ouofXahq8OC23+TN~j|VQu$>);Vv))(fl;4v#Yq4hgMj z5gywEtu>c@Z^Jv%iVu&{s(VjHg0u8HL-uZx!R}(>&tazaHrr~+Hy1*ByUJHu0JbO< zyF@S<#ca50K&`9{Z{|DsBr3Rt@m%$Rp>SAc(VN?c{-v+JiGm*W?HQQOd=t@Vj>P`5 z7(8tf3p&krlUN;jCAM2+dmt$Wz@3C`P_tf1NDOlGLDZ>Ru_U;^Rj*0J_g5{i$ON5H zLBLP?L;a^{#KFP#&Ku@SkmVg7wzPy=*Z1*7I2ZvD=XTy83XRK(B*|%)#Dva}`aU9$lCcFAjwCv5|n^b2-BY z6sX(jwy=0iNx;PVrp)iXgRdq9*}1p<>Dcq#^i?$e4QiQy|C;ygr#UZ=Y})OWdKEUQYGYS7>F6dx8eBPD7xpJaYK0S*atIcYi{ zp7e|&-<4>(iLfq z|Dtkb4i!0QFgk_{%Fb+LPnby3CFeML*qaZ!T?_l~*wj7@8l0QSD(x ze+7uXgFjZ7m6AIYU*6TIoSftp$qe))uu)S4B!lmyXP7DOouEA3@w?1Eut#He(wA`nSJ%|z)yhZ|N2s%zZE%l?@`0lZC}~@5zM4;4~#)sNw71?OIJ5RAuIDEz2d8+ zT>GT9j_Dp0)UZCNqs#_IZo+qZ%%D9O4Fdfj(}t(NGJmz@-^}3RsHtpM0)5CemM~OJ zF}XoAR~)R-Db+^Q*_cCxsz<7k05TUj3DnIpMTt*~VzB zez#VgRk(0jKK^Jv!^2~R9;4HQ5a8n2`ch3yqOfVsu#(|5w(>3G39{mjM@Yx zRqMrq7Yw*S|I`?FgSm1(#i+$E!wBKs%0a47Yrv=zbgFGGLF>dUJbps9aSi2VNC1>* z(26VDOi$Jv&;M1_pBC2h@`KyDmcpx#zkN=?8 zx8`LrQ5|$9dg5ugmIH0G3E6cYHF2o_YF*Pg^L%05>j0Vxg>WOjbnP-|8=qgdt504`Y#z(KN2r13e<)Xi82QpD&K(gTDIDY0pkVE*%mQd!Zd53IL6C-;M%Rg@*DX zDOn-XS?tfMk?^kaSF==!=D|7Y$(;)>k7Y z0!Fq=*GhCBLXBss)2M?C%3MOyECiH0LyjN>HZz((HsrJ@RD}|1tu2@M7a=%R(lw1y zvg#>&Tip0!o)=-V)j3cMZpxxFpYuV$>nbA7Xfy3C~1=1*3Z(P zS+10Dvg-naKPNU}rD>iXe0Ia87;KhLxPNIo(BwHibvRuHASvN#-{smuRlEsa&g-($ zah*Wa33ezt{isdPD%aJKp_mf1t@CMkfkU#@XQ){+V4$6}4^mUcW39z~&*3rJwUz4d z0AjL9pJN?Qa$KjOG8D;qn`m~WE$JNz;7tAXL1{^fjAh~Y|gz_ zX{gZc5Pt4TiSy%EAG}oxhE~xKG5(H@2nHLfJ^eq&5d85%5s}Xb+LzG$gea-t=qiXY z@F*H7GZy$)1_=SS_C9Gf*0jap#9RBSbj?v2lyjVPRL2kv7_~@qBM-C$8qqc6K18Je z8u|fME2bF=ZFnWlKoH%ly0+@jl69Dwjqu0F99hFQd%o50%fV$cpNqQPV6%K+eflk~ zKx_n|?PtuHG&jM=2{_y8x_wX}9RL79)c`Juz<2?)=Jk*0X$HW#|J>10RJmTAXneLV zX=oBU_J=B32?Huo3FQ{FK>!Ry#bI%r*h|k-^s;IKQT5uGP-rmzWs{qi?ixx^DOkuK z>4nL=v$?kii+vwkKWz9}AZ4rjq~_jTH8A}-E~-1(r3-WblC&Tw`~1l?Wm@!f>M0aD z!)2DKn?r@#J@JbZnqr#M?(C)`7ydXO>KIW^guB2z{|Abd|eW~c$tS*~7_bDxe?^c{ehgw=8b=*9jRl!5aK4mwrw#BmQH zF6;CzLV;R}5l%gGyGb>UT*)lv%3TFpv{Odk*kT?*oc=!;!gyz)^7xb(9+7>tT4<>! zVw|1)T$dX#jEf@n1A-Z+ZVW^7i5TjtMTEn@tHx?gy=YZ6?I9sp3V*90kahulwvnZe zDLou5prmV^gx3J|rI)44lm&Bh>5Q0U1js`zi4z|D(!<6MfVm#)o%oQ0WGTh+*yl&6 zY7|s^#g(hMpf0S$F5fTFQgcWj{!M*+hamHDy(^_AV~Ps`nAJ$;*+5QcJY;Pud?`)& zm^`oW#0M9lVI|c2t0lmvhu2>bd5h?M)+Hx*y|Lu&lft^apPaFT=s46v(C5T<#azZT~8^!wrUFaWKG*94YX@W zof?PnX@Q0sfDQ)gt}lS+Utk7Sja+t3aaF)^hQSsax_6Ypa=gB;D&C+vwJRQPRpp{Z zlAkWTUvDC>ru>%CdAHiK=RI$zH0lNoTP1J<&OfM2amAzx7sYMrTjK8*Mo|%0b-81c zbbz7&E=^}s{z|O)dgRVIq~44~&WeIlAoWMBXee(!1kD!C8uEqYdg)KEI4$em@b8Hx zF_jJ9?(sKGR(%X6@{t=X1sJg!8+h6AGks>T*qMTcEMTwrI0+8lffP@3zIfGP{~uy7&tN zr~L_j4dwf&ynK1OOA@7*kuM){_IKTqZLtJcbKb@sHp*9(R9l@13IhTTsJ520h8z_V z?pc7w*nSlPaXR+Ise@H|^eU4szoe2;KLHYB7a40a3E9fagH^D&SanOUx%QGYn!M(O zo7NYiWP?OaI*`M~1}A2OE>?Hls*BnSpeTXR4mVz`&A@!VqS!kgHh;Iy!=M!BhP$oor}=Elxvm1c{DSbWqkV+=_kU{$8UOKqkdpr~>1z-T QeFTseR}d=~`QrEg060+okN^Mx literal 0 HcmV?d00001