From 885730d04f57c9adcbffb235bba4e49755643412 Mon Sep 17 00:00:00 2001 From: Julien Signoles <julien.signoles@cea.fr> Date: Fri, 17 May 2013 07:49:54 +0000 Subject: [PATCH] [E-ACSL] do not call __clean when not required + ongoing manual --- src/plugins/e-acsl/doc/userman/biblio.bib | 8 ++ .../e-acsl/doc/userman/limitations.tex | 42 ++++++++-- src/plugins/e-acsl/doc/userman/main.pdf | Bin 524102 -> 560737 bytes src/plugins/e-acsl/doc/userman/provides.tex | 79 ++++++++++-------- src/plugins/e-acsl/pre_analysis.ml | 20 ++++- src/plugins/e-acsl/pre_analysis.mli | 3 + .../e-acsl-runtime/oracle/arith.1.res.oracle | 2 - .../e-acsl-runtime/oracle/arith.res.oracle | 2 - .../e-acsl-runtime/oracle/array.1.res.oracle | 2 - .../e-acsl-runtime/oracle/array.res.oracle | 2 - .../oracle/bts1398.1.res.oracle | 2 - .../e-acsl-runtime/oracle/bts1398.res.oracle | 2 - .../e-acsl-runtime/oracle/cast.1.res.oracle | 2 - .../e-acsl-runtime/oracle/cast.res.oracle | 2 - .../oracle/comparison.1.res.oracle | 2 - .../oracle/comparison.res.oracle | 2 - .../e-acsl-runtime/oracle/false.1.res.oracle | 2 - .../e-acsl-runtime/oracle/false.res.oracle | 2 - .../oracle/function_contract.1.res.oracle | 2 - .../oracle/function_contract.res.oracle | 2 - .../tests/e-acsl-runtime/oracle/gen_arith.c | 3 - .../tests/e-acsl-runtime/oracle/gen_arith2.c | 3 - .../tests/e-acsl-runtime/oracle/gen_array.c | 3 - .../tests/e-acsl-runtime/oracle/gen_array2.c | 3 - .../tests/e-acsl-runtime/oracle/gen_bts1398.c | 3 - .../e-acsl-runtime/oracle/gen_bts13982.c | 3 - .../tests/e-acsl-runtime/oracle/gen_cast.c | 3 - .../tests/e-acsl-runtime/oracle/gen_cast2.c | 3 - .../e-acsl-runtime/oracle/gen_comparison.c | 3 - .../e-acsl-runtime/oracle/gen_comparison2.c | 3 - .../tests/e-acsl-runtime/oracle/gen_false.c | 3 - .../tests/e-acsl-runtime/oracle/gen_false2.c | 3 - .../oracle/gen_function_contract.c | 3 - .../oracle/gen_function_contract2.c | 3 - .../oracle/gen_integer_constant.c | 3 - .../oracle/gen_integer_constant2.c | 3 - .../e-acsl-runtime/oracle/gen_invariant.c | 3 - .../e-acsl-runtime/oracle/gen_invariant2.c | 3 - .../e-acsl-runtime/oracle/gen_labeled_stmt.c | 3 - .../e-acsl-runtime/oracle/gen_labeled_stmt2.c | 3 - .../tests/e-acsl-runtime/oracle/gen_lazy.c | 3 - .../tests/e-acsl-runtime/oracle/gen_lazy2.c | 3 - .../e-acsl-runtime/oracle/gen_linear_search.c | 3 - .../oracle/gen_linear_search2.c | 3 - .../oracle/gen_nested_code_annot.c | 3 - .../oracle/gen_nested_code_annot2.c | 3 - .../tests/e-acsl-runtime/oracle/gen_not.c | 3 - .../tests/e-acsl-runtime/oracle/gen_not2.c | 3 - .../tests/e-acsl-runtime/oracle/gen_null.c | 3 - .../tests/e-acsl-runtime/oracle/gen_null2.c | 3 - .../oracle/gen_other_constants.c | 3 - .../oracle/gen_other_constants2.c | 3 - .../tests/e-acsl-runtime/oracle/gen_quantif.c | 3 - .../e-acsl-runtime/oracle/gen_quantif2.c | 3 - .../tests/e-acsl-runtime/oracle/gen_result.c | 3 - .../tests/e-acsl-runtime/oracle/gen_result2.c | 3 - .../tests/e-acsl-runtime/oracle/gen_sizeof.c | 3 - .../tests/e-acsl-runtime/oracle/gen_sizeof2.c | 3 - .../e-acsl-runtime/oracle/gen_stmt_contract.c | 3 - .../oracle/gen_stmt_contract2.c | 3 - .../tests/e-acsl-runtime/oracle/gen_true.c | 3 - .../tests/e-acsl-runtime/oracle/gen_true2.c | 3 - .../tests/e-acsl-runtime/oracle/gen_typedef.c | 3 - .../e-acsl-runtime/oracle/gen_typedef2.c | 3 - .../oracle/integer_constant.1.res.oracle | 2 - .../oracle/integer_constant.res.oracle | 2 - .../oracle/invariant.1.res.oracle | 2 - .../oracle/invariant.res.oracle | 2 - .../oracle/labeled_stmt.1.res.oracle | 2 - .../oracle/labeled_stmt.res.oracle | 2 - .../e-acsl-runtime/oracle/lazy.1.res.oracle | 2 - .../e-acsl-runtime/oracle/lazy.res.oracle | 2 - .../oracle/linear_search.1.res.oracle | 2 - .../oracle/linear_search.res.oracle | 2 - .../oracle/nested_code_annot.1.res.oracle | 2 - .../oracle/nested_code_annot.res.oracle | 2 - .../e-acsl-runtime/oracle/not.1.res.oracle | 2 - .../e-acsl-runtime/oracle/not.res.oracle | 2 - .../e-acsl-runtime/oracle/null.1.res.oracle | 2 - .../e-acsl-runtime/oracle/null.res.oracle | 2 - .../oracle/other_constants.1.res.oracle | 2 - .../oracle/other_constants.res.oracle | 2 - .../oracle/quantif.1.res.oracle | 2 - .../e-acsl-runtime/oracle/quantif.res.oracle | 2 - .../e-acsl-runtime/oracle/result.1.res.oracle | 2 - .../e-acsl-runtime/oracle/result.res.oracle | 2 - .../e-acsl-runtime/oracle/sizeof.1.res.oracle | 2 - .../e-acsl-runtime/oracle/sizeof.res.oracle | 2 - .../oracle/stmt_contract.1.res.oracle | 2 - .../oracle/stmt_contract.res.oracle | 2 - .../e-acsl-runtime/oracle/true.1.res.oracle | 2 - .../e-acsl-runtime/oracle/true.res.oracle | 2 - .../oracle/typedef.1.res.oracle | 2 - .../e-acsl-runtime/oracle/typedef.res.oracle | 2 - src/plugins/e-acsl/visit.ml | 55 ++++++------ 95 files changed, 137 insertions(+), 290 deletions(-) diff --git a/src/plugins/e-acsl/doc/userman/biblio.bib b/src/plugins/e-acsl/doc/userman/biblio.bib index e5e2195db58..dfee6e09e37 100644 --- a/src/plugins/e-acsl/doc/userman/biblio.bib +++ b/src/plugins/e-acsl/doc/userman/biblio.bib @@ -122,3 +122,11 @@ year = {2006}, pages = {25-37}, } + +@article{rv13, + author = {Nikolaï Kosmatov and Guillaume Petiot and Julien Signoles}, + title = {{Optimized Memory Monitoring for Runtime Assertion Checking of C + Programs}}, + note = {Submitted for publication}, +} + diff --git a/src/plugins/e-acsl/doc/userman/limitations.tex b/src/plugins/e-acsl/doc/userman/limitations.tex index 11a17baf6c8..c217294ec2c 100644 --- a/src/plugins/e-acsl/doc/userman/limitations.tex +++ b/src/plugins/e-acsl/doc/userman/limitations.tex @@ -1,10 +1,38 @@ -\chapter{Known limitations} +\chapter{Known Limitations} + +The development of the \eacsl plug-in is still ongoing. First, the whole \eacsl +reference manual~\cite{eacsl} is not yet supported. Which annotations are +already translated into \C code and which are not is defined in a separated +document~\cite{eacsl-implem}. Second, even if we do our best, bugs may exist. If +you find a new one, please report it on the bug tracking system (see Chapter 10 +of the \framac User Manual~\cite{userman}). Third, there are some additional +known limitations, which could be annoying for the user in some cases, but are +hard to lift. Thus they could be there for a while. Lifting them could be part +of commercial supports\footnote{Contact us or read + \url{http://frama-c.com/support.html} for additional details.}. + +\section{Undefined Value} +\index{Undefined value} \begin{itemize} -\item of course, annotations that are not yet translated~\cite{eacsl-implem} -\item function without code -\item recursive functions -\item function pointers -\item complex control flow graph -\item read KNOWN\_BUGS +\item use of undefined values are not tracked in annotations +\item missing guards for \lstinline+\offset+, \lstinline+\block_length+ and + \lstinline+texbase_addr+ (\lstinline+offset(p)+ must ensures that $p$ is + valid) \end{itemize} + +\section{Function without Code} +\index{Function!Without code} + +\section{Recursive Function} +\index{Function!Recursive} + +\section{Variadic Function} +\index{Function!Variadic} + +\begin{itemize} +\item Not yet duplicated +\end{itemize} + +\section{Function Pointer} +\index{Function!Pointer} diff --git a/src/plugins/e-acsl/doc/userman/main.pdf b/src/plugins/e-acsl/doc/userman/main.pdf index a16788b2dcc5997af7b36390343f98de4b6d35dd..e7026255c6fa2b4fa8580057dfe1e0345623d765 100644 GIT binary patch delta 98042 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 W{o?1Jy<~K_=P%!T@B2S`_ws)qlbFN+ delta 68665 zcma&Oc_7r^_dm|e*!O+Qo}DrK82i5ODyd`-SqmY{*h3{6JY^|FQbJj?g%-(LN+O|1 zC0oc^zR#gv?|QxJ_xb(BbMCq4-h1x3=ic);=iZ52u}9y9E00l<L?Aqr2+}B2np8;1 z4}Q^+00<N5B_$il00Jk`K*UJ2P$mdUiF6I3K?;P3vtVUJ)Ya+Td|myVkJF=3Bp#>& z={-o+3zDI6q#!7cqyrTP`lMjgBsh!~WR8c4Q6fnN)Iy{X7&B=EO3!BE>lf@R;_d0< z8R!(~>E|0j+JcG!QEN~dGKnY#FM<#uvzONPboTc2b3f_i?-45Vvr&u^$V>r(MUwid zxgl5-_{9x9j75_uX?Q8IKpTOY6X+MBmLu8G+<{=xK(q%;gcFMcd0NveTDt}K1)X$p z3lPC#Nm{h>)HnpW06+%8cu8kz{UJCc=^L#p1cxHI&_#e>z};Sm4e1~~6TsI8;RgTV z;l`nU^iNflUeVOe*FDff1cwHW_Ce%Hx9J5TI81Cm{h5Ax%DR4fNLL^VhyFp2#37WF zkUz(P!~FR9u%eNUj<!>Po2v*8OYV(5sep=u;eWhwbq)uho={30koFnM!H)eQ9}#l< zx+37v0gHH;3=k3oV<it*Q5q%#!D4~&SO_l!O8{;|U_3CS2o?jdbwh-J@<bRT5S<N5 z$tDhB0Wy8cM#~N4bHf-oaRhSnze)**|5Zw&r(gmQoD#5T2bE#K{jVDUJQ*ek9OtBE z0?e{tG<E0WAvg#G|3mh8@<4y%ibs*Ta_q{UUR_<}hd$wvq$pbPx}%8@IvsXASr(ug z{2V684jiT|C5k*SZZuj1zcZ&Iiux#&2%g*-Yx4gX5xmlm|B*Nm{LYBL-_ZyWCE&z5 zlotjPBgv9L0R<YM5c(2fu>cz@j03O?fw7PjXgMhV(mN$`@63V19*8_d2^3oo#1*21 z2b6jtk>qbsQO<KK{nXuGbVEsrtQ$rUB?76R-l2}J9|B20Dv>+6vxYEe<Ucy0MD8y6 z*I#sku%n^&BzO9~b#4csE>Iwc2%!V)V<CGe(K}NCQ9=P4JmAzQfddPL?S&u_0GkO7 z2PGb`lA@L)PGve+j38KB$2MiQKBzue^Oi~xHn2TdN5{Kw1UjtasVz`ybTFIwQOOwL zlx%hi@>*NgHDj|qBf-;S-xg1xq;mH#Q*09`A&f<0xhGg%4=}bcD%m{RTbS3f`NsTI z<JOtx69tcFjxSIWNB4c$n;?+3Noso&ZLN#GN=WULU?U#7t!tp`)x&9sGU_A<3JII( z8<48TmnLVU!sJ$&VXOsN=7EhIV)4#a%Cv3uMq7h77<F}X7=@8O2X4{2Td1uLUOwbx z%sSrfKS0mm1~a8)Ki+mxmtaQ|o#e6K{be-gnrU6PsIjqXUYl0q!Lh4Jaii^)ywx`K zQ>=0N{>nu7t<RFQ(Swxzva~0%%H7RUriZM9g^Ur})&W<9=D0!<+GW<NvkC(*QTT9Q z3M1H+Pdgpm(6YB<XnF5h`$>-T1FIJ0oEz<;eF7`G;MM?#<i5#Ujv<!gtOHd|^@k2I zSWbR8Hq5-S!LDb=s-L^9aX|=TNv-@gTuyDX<;^vDqUzMd=@<L-B6EO%GsB_wg;#yf zh4!tc>q~yGYi+w)aFYJZQ_JEr$_<^zW^m&6%g&xg2$xSc<h?IF#Ss<We!A1K#afbf zI^mMNMUH&XfKK;G&eXXF_sk2WAYT|O)6WDsNAL6bX68Y%0OtBjytWHI9M`nBU3qfi zNtc3udrTJ*_h4M=f%8%@X{F9mPv}LC=OsA)k}}*q<5u!{_o$4}qZY`(<h--3t!K^e zxoh$UuawJrH`z}XPtyi+w%oar;66XPrtHU^@&Wk>U?4oTk5LIe>bxwhGGn8ga~dN% zYZbxBZdA2VXjXi@CaIAl2Y7+H5;5W=I#u=HL05C4pKxLGfc`19{?P*#4d$Qilk&I| zTt-4pG<2VBx-@*)Z6#Kn)-rV2vSfN{ewwH2^<eVNc%P|LuchPlSz^EIop^`p@jZR3 zJaI9x!7He3nLmJw<G!i<+sx?k1kcZ_R<imIMWfd|y!t#)Ys?N+*^2;WCJh&m??}V8 zv!uC^h#iCQt64)LaAXTa{9%C<wS0a30s}-2ix9}R-CBe|Hre2x9m^#`*s;nYgk5_> z*flkTT`NP_H84oT&MFl_B9J>Zk%(PJNW?BDBx0A9{V&!IT%{eCY1n~&2dEbWi6tA9 zW1u+(?MW11*au+*9`r(tfLtdiBYE%PA^*n%LE-?mk5CQ>5>GZNCX`BKn*x9~C8TcF z8Tvk69r@D&p)nW)>gQ&IME<llzgQL|a;Nk5|05#oGDjiEJI-+^H;OzevOU5R{$WJ` z4d)8f2w3<GHH8q+|9sE_sk2aRN<xMeOch|AgW6FNfczDx70@&X)dvdWAfSa^f@<(! zlrV4{njnHgW8q4mSTF<}9EHOH1z(|pfT<>o9YVm9nObsVa7u725-Wnnpy5hrya)!b z1V^9%twksT<Sojv+YU1@{{>3JjKLz{D7*+7i-Kc7i(9Y&l>#;vp{xKQ@kh%n7!(0c z09yoiWH<)g4wV-{np{a3D-@i*ohErONF*GGC5WJrcsL5w8w?5!M}fwj+&NM=lon8t zg3$x_&p<fIgV6+zf=$yP2?RJAg9N<4fc(Id4=WH74`Bw%R-o!+DbettaX2^zgBC#& zu;9?aPU5j}0uBQ#vctI3{AqwA%TPAJqYJ_W9Nna$1}tZx8eC{lJSeaV29yB?6afyd zgh%~WgA(ym)LcAhgc2NuRRZ;ou+tK`|9Cv%2R$|E9yKj+VGYW_f%vh*{M=QM2>j0J zffI@Rajf~ZWSkNv3qjz>J1!RigAqX@chwx+XOZB?uC6QUV^HA7uA(dI|GMj9a9{z3 zd;;NzAh5rjKRoB4%mBO=Mzg#BKAVMt0tNS9ZX`J7f1MVPC?t8YO8n=zfCM-D-;M}K z6euA(s4Sp13uOX~dBF3~k1Y{UT>={vf>6@{_M6ZpP<^bnpm<77AZZI4Lb+TA`3B{r zw66S^a<IT0ucDhg%A%`ESJ{=Rbj$6~38lQsiOiJyje-f^R>E6SI4(^YPh4zG=#H@Z zx?+T!Rt!8WPIEc5JITfvTynN4((0G(0+>65&u~U~0JqP8+E?@ix_i9fMxu9Q_M0t2 z5r8&sm;ws@!%Y2SjF6~Z!-E9%nrx1cs9l?bMD1E4dmwWjY72O7L(PF#3s5ycksZdI z0fCtVCl`Ny<$zyW3s8Q5B^D+QNK(SQIne)}Xf$H?0NG0k3Jm-p&pM#=70N^no-UE# z4}uWzc**bul<7<?gu(jPssC-Z@ghj@Tt@CHs1u;>qIZp+qCQzO(Yu2IKM3H*?ubCL zziEiWAt=|ba%3Ncy3rtar30j_L1lnVJE#Z*TyVc0dMJ@Vfie{*kOzaUQA*ZjQo-6G zluzpHXkm9Cl-~eG2G|TSBlz8$wv@Bq;o(QEWQr;}>$tMc$SvXadYz!I?iVQ%4{`49 zp4hXm&bLf>3DCI|sxaYy9X3%eZg#!Q+~v6G2wXt<s|X!73PGFs2yofIHHPXNu4K=i z)6-PScU`u*$h~5dzwzW~2d#k{Eli<raU{CxQS0W$mCZAK_qz2diEA&B9b=9UhEDX= zT-}queBV%+zrHJb|AB;4qc2sT&$AG|^y76drB$Ijw$~8rr_P#PJe4Jp@nX&C>&WWf z;a2uIs`@AT27UFbsea)K2lQ9*_ny(bey%T5WPA0SjXAGHzC~d7lfY-(G40$9kdm6h zW2q%W48sr3j~$P2w^{8u-ft2gyzp$4eQH&A@AOzq`20IcimNdvX?<5TW2Z<<Y6$Pi zgP8b>MRQ&K7EYf6IC(EZT#ABPymi}Ke7{WLD%yD%#v&+Nv_}uvPUF;qT8s@?A%{F- zQsX?C7gM!ibS4`OCVpE~Us5K3f=%#5ec>~d4mjfh<L5^1I4!?90Z7nAA?y9I|LQ&F zhu(wAv7`4p9wDgzm>>F&`LXF@e{8zgADb@r$EJ(@vFU<_lU#pi(*@S4XavZnRd#2Y z0BOuH3*h!kYH(rx^P3zCxLRJWfqD+wZp1F#0~VMWC5F7)m;m;yFlQj(6j&!!0!9EB z*g*1+4!^Kq0gBl`ax5^x3^NAQ*kLB1gG%06RCbvSu*1yAF53To@!}xUgNED~fO5jv zsL5L%=(F*2!qnKoRr9-f!vfLiFj;o8RDN-ckXRhq=aU8MwxLW^<Ryy*_CP?xz3T&V zkxw~DaMA6q%ij(6uPgSqrTpva#eoZc*Z6|#8uWgV;19dZK-U(z;|`No{BMgKoGRpw zhiffD`}b8&KE`Nefts@8h3T-<^6ogI+{pj>j7V_zBdZJb4?~cb0NVpaf=(gX;6uQ| ze;I>CZE8*!8U=c*Y*sKC;^CPKBlT?Cm+xsyZ)j0F>xYvf3W8rw`s-O$-=+9g$pm>g zSRRx%b*rf7*x_a3e0S<aiCe)h%_Hh{1bFk;o~5FfawhIymA`9zXL7`S&olW6I`<<t z_PX%#bROUQEZm2>))X9*-4S~H^H?&MV#~;lNtQ-;V!Q)RyooU#fPN%ajH!k#K5<QY zoQ2eu@`H0oFp=6NAGw}8Olq=|;`xZr*=mr>et6L<Bl+P7o*2Gpyr3(6EN^OU_@YWr z)9p@czDzo{H=84p^V}wvN~=dWMVA2j>qU6mE-DL??!ntFuN2~pG%{xjnV|lpg>&oO z9h7B`)L%@*d2LaQ3&(7TwP%YFID3USlTA-&y)jL3n+x_j1kxOQ^IFRQu43_9P80o9 z)6p}G-N#;}&lik8D`cwhbG(LYW{UUaQGQeX(7S1dzFyv|_MmK9amABsvzNv5<iE8X z44Nv}$6fW!zInav<(Rq&{6o<AMdfAVIM+^zfhRPBhjSB5{5-9FRf#eJQd7^~Ut_-X zw5V{cOL^aC=L@Q*yq{cfQ;dIW)6!g?JS3X9_uOQ=p|9h;wS8s24bG@+lZxa9k1yp1 zSNTN<<t{TmuY6J;65N%z{GQduiY^@!?9czq%f#QnP?<*CrxP`?XIyL(eslC|Lm91r zx-8S>nL_CPxNsxdwfcT#V$aQ!g0f2uZ-NN2H_vn3#v5}_j%JKNxa84M&Q=-*@?GM~ z44g0yn{P)M2PhhtdRfPVtLWcTRK7Iz7uZ`2wFxu(a6KTT+;`ZwPGQ^b!6&osbK{SF zHm2Wl6g*89KX#Mt{FgW0HAWQzG4_>*K4n$Bl(;C)=!waPE6N?mP<j*J8Bq<TN2u|> zr&NWFiAwpmzm<KGh;dADggLOA_VA^#OP#cz^59VQ;n`Q!7Ov<R9+0J<?kep~QMCW* zBkuOqayeQPK|c0Djzg6YPv5pBJ!8Fr&)I9fb{gG{mK<*ilonD_q4z=?Wo`~Fc_L}) zocmWFP|P2tW}srEI&__v7|v{XA0ozdWhQ0~dfc^hpY5QB=l-V;J1I2Fv%^Q!StO6I z4e4@C*3>nh&t$}eKE9|{b+U3&TB@2rUBlrS&DpLTb>w>WsL$Ed#->u+W-b*vWAW$C zFNX@=#Al9wyy`!%JyK5RGl?ot6`<PpTvs;q@nb{twg&d27w<EA5D>(Vwm_w20p*4` zXTtpbx2qpcvQjcK$}VWewp2!Kv`cwVzlwAi)bk#C&>iI=4|8+&JyT|OTK7wv`Lwy+ z+BrM7(|XO2=IO537CXYRI|bqlx(*rRm>Z2$h|N9m53X=Cwn%2>(NmXoqDvn>*w5^1 zX#Dgr$^aJi5kGG<+E`mgtk6E=(cyT#`bg%@#(rTuGY2HrMzD{<v7Dnk3sw^MI_8?A z{_w+|=gslooI69Q8)H!Nwd@C;04Js%Mk<b-I~6+EZr&sH?EY~_wYdrSn`52)!>vJx z%df5PDR{rrr1r4e|3&RH%=0S#g_cF9@%xp^JXuIAW!-}>LH>OQ1%`;zYMaiV>8O0` zW6pOaE%Nu~&g^fN&s@K8i`fYxS;i>rqMfuXfUrAwIQ!C&V(@;huPRn<O~Du|j&9F% zxOz)o26M7atj03)!=x4CD8p8pwnLOC-{eVl{D4iiRj3n<4?9hc!_`z4nlR7Vs3Pi& z5f6H|eu==EtL3i|CAxjYFJtIZ#|w|2=*T~qh{EmXe{%oaZHfzghlO031tKsozx{pO z{!`&G&IiJ-2^Hc+C5!nu1ax}C&{6QS51{WKRrhJlM!%AIAD3Hoqn?^4|AO18XQ;$O z)@F}j4S6RPgPu29C&gQ#+bhoOr$5Qw`mR3Niz|dhY9aByU{+7JNh?wG*tW9#$x6Ms z+m-h6K?wp*Q)#r5Gl|0Z(=;hQ*00ne1Gx*9hPvGc1`&rxNo%wm`}qNla>gDZ<C(hw z0Rx_1CHgkwXN&jCezVQ(^z@IPrO@Cx6n4m+a;Egb<<?JGeOD-Ms4jI!S7ca2qPC_T zGe#(buP}>nY&8t6t|>SY+ZQmgG#12fgvYG8ZpK&W_`{s1TOWOVE=1Fj{-UZt$8t6* z#WFm?yP~ptJt;xZTRn|PHxu^St(n%c^3{Vj*CTU+x;Qlhb@k8Qrk!O%we0saqI*v? zJBnXxgS5_^9I~w?8AP+B;R>FA<8?Xg8KaPwQ^^i7wOn9)CaiPJnt0W7srzefg#HE^ zL12(##2O4RN+#A9^qqZ`ZhlfF_x`6-<y@W?pZEAq2OhuBm?v{ngIEWhmXl}+$=mj- zxWA2WHkaf*Q?(e{)O&e|(9{d|d{x=z0I~2^<&^)CKF-|rcT7yfIaaO_)IBN2_=%@+ zPd0Arq`~Ia#!>3T5u#j^qyE_?5hvZxjD~BB$1jLEJ^I9#$~u^G`%se$HM2y!*R_RS zx{Rgy(gNm<+;8iNIbXWlY}z^%gytN^o@0+{2-ef>Po~oVC2}OPhE@IB`%MkOCI+mx z5^<HsXX1iU(_p(v!3|#c(8f&N(0qeT1GC@hdF{K!at|CvV~2@*judG%EwPvEIdYk^ zjJo(z2<Mtxde`%zq3@^HPTpSL)6+Siccw!_AJM~N9~c#|vT33lxG8BLZ!>kVo55$l z^zn<!?$-u}D4%6MqqpuoVL82UeMXg;X+86c$GhZrx5TaC7dY}S%A>b(A^Wl)4y;j` z8x{*2?tLgCyU`eay_Be3QYS(=KEeMfQO@x8==tLx6qz1Z=-*P9I{XAkuaF^9v9s;j zR;9R`k$x)O7xChwAGe8%)xJlcZQyPjDp_ZEtO^A#`l?^V+%Tj&$ggE1gmq%7J$SxZ z<X$o7_EyibVaHmCmTO8s5;snvJePN8**;`aZS$bV{j1r__4F5fh#^NTh8q^@bE>(* zoDoOjdfzL3Fzl?xPsgQTOpTVPRNW~q(3>85-Xc}_hJ7i4w|0o<%e*vEZ(U)EjaONP zjlQzTU#6Fi$|*mY7~M|D&o4}T^RR|)fU9`+U|>n<p5F3DLjgB(4_`xX>P<}_RBqRQ zpm(4ymi7o|hhXviTn(|@z;Azae~8T6tHrd!H!VZ`6^0XP>$zv!UDOVpTKgQYy6;g& z=~k|U%z&xum)!jBJzX0r*^2pFq0!csc_sKQ+KW~(mj~-x*42u&u8m3y1`fPqe|#CH z%xr*^8|BmLm?*uq32C^Z_~ErsVCof@a=%gLeG#0Smv6A_v!KdB6HRkDPcG~o%5~4} zqVxtg+(e-N*yBpZ+ePp6?-W&E%RYVm<5HrmQ3u<Q54B+2sHd6dh{>KW1uX(mo<_;f zIab<0w;S8-_B~gu>N4MyhOO(|y{S>ULxzG>1f`2|MO6HG4_Y#FV;Q_;_F>cKq`y%< zqi`~+6!e|slal$u+D&xJGbSP%xAOu;E(?3IJPRqi4?TJMZHB{Z29++;C+gdf&u+B& z4=4=IZ8fQKewV<aPu7n$$e*Do347_7OV9``st*?(XgZ#p`xa5)Kg#*ijL}kIxb~oi zM&RnByZHwj-@(T)q}SbIm2dlJ&nVF`s;D4RJF`YQ@-^6JuWOwmK3f&kNbS#VxE}Lb z+Bd8_Phw6x_2#}zI@T_Xddtx>Gc7mDG~$j38*A{~i++g?KDQ>(_1fR%6}MK68LcDt zB0nm@BIT{a?U1`(wF9lj2U|{c?LWHzVcU4boTkXvxS6NkYf=@mWB5=VWFe=h^uT<B z(pR&?N8apPIU4v3<vvN=OTS!OCZ;1giS9i``(3i&y(o&u?+}vlPIB<g2+c`0tM_j; z>%$S4<l&&r!`53K<NneL@16+Dh;|k6B3@5XI&zlIY_K|v5IYy5^if+w(@FC(FxS!V zVaXFV%!O|f-0d930-ap7Wd?)Hj@C)PP%6GNvuSO*1wX}-5p*JqXeq=eFL1#8yuznf zVUpL5M|ylWW)wAYJzmMO8Qrp-x^}_5Wi}pNBPy3QN+UN9J;>rg<d%|<2&HALJb$gr zohZ<Qq04b%-ZQ%ieOy!h@nx`6%FJ8Tz0!sIOrD#FBUd+gM|Gao@gDGasJ`{J?Ze@& z&u=`-gYVN=?9H~Xql+fiS`N)+i<!?fN;jas&fL>#x4jCzv=An}%#Cw<GTKO&@rFr- z(RU&>e;Jc$*Qgtty9mV&9i}+lX3#p=ZluPJxqknAyARhp{^GML*;e&cV$?dRRqQ(6 zDoWSC-5fr@9aZnkUAg}Ho2C4Cdh;h{MhPd2haG46QrJfsBiaiJ?R2a*E8?$@^9o<n z;=2D9dT5Uxv&qAAD)nDY?J~RP-YvB1;i6?DV^JHEOgG_$H$qwiAEz3a%&*_6W0~bo zkDkrP$2`A-x$I^vVKRG(d(rgK`X2Ue%6k)efYub~Kb>KR{RGf<B1^w}+8}^QcAXIa z^|XJ)(2zgkXUHG1GvsdE4EVqVLo)q_Sp&!mpd-8~4r63j0^xBi5`<*YI1wxk0VjL9 zWDIv<4#cPNc%Y3HX1oVPWf5Q_SQHYD2LW^p4n#iDB3Lwtz@mVst5BgG$QM|Jz?cCA z4j2Nkl!UPefe<ks50a5lO%Mb?BM@*L2!3Ia1P}!U-Dh$$4vQeDMgxQGIP2;{C?pCF zqRJQoh%SQ=Jqksx3U&~IgQHQHohq4<Fm^zX8KzEdgjG-pjsxRu7$qc}3@o6q7!YVB z!_g?P?cEAMHo3+axdsSmGYex8C^%9H3625}$AZZJ&(UM>1UL$X{TE6c!t$e@;6L@i zHW1kVRRe_q`lleCEwT$6v$F2?jYSBDfn$&$-ipG&2_Q<3QUbwk92rEzft~z;mG21P z9xKdb&n~VEMlIk7kUa|QB^rc4z#s=4g(M4^8+fA$;|C71!A!X^NGwRDBmzRv2oyMc zaAI&E27E{hh6n06V9Yz19~jo$2`TT9CWGVP7l<zqM8SV{{r-b?hroy{90$gWF&HEq z1IpVs$lKc<FyVv=^8JAd4XObKbk#SY9I`t>m0#hDU+D>C7#oDUK@=Z_2PoH}9PT?| zm;Z|%gMur8^4jUeuOXJ5V9ozk8B|6z2C$L`*HKM8jFs=VasKQP7zj`T(oVrRWKlaY zp8ty}5}ZMR^$fTyrxRc-{D0($0B08qXz7CudndqH1%4y?Az%~^)JFt}Vw?e~^3K3m zcIHD=2F3xyz`?*Tx!ZE!tp5%P{XwQEEEbN&fgn7Y(J;t}_qXPLj1z^y!gocX#sgy# zB%?`x;sxp<IG;N`PvV9#3H^-@g@Y5w;dZc1;=dygf8q;<EwG3m+VsmjqITjA|A)xI zcnur@h9ds01gM=jg`eF2QVISvBqS&RENK3A6<K{Rj8Eq;gF-41;N)<}f7>C$j=y(u z2RbKb2aqEu{~tiyZ`j+fpxp1+8x{;9{fxl;hP~lH7@hDBDhD$75y%9gxBo?Li2p+6 z$p+;|Y!k%wKve!mOjA)G4<d#?BAb85^*}PD2nt+vyI3F|1%CX*_;+Fbof0rzNb#VB z^Kmy9pcMjR_$>|uCUdZw(117{0bB<=INhF+lLB=sqYiDSHZ<K#c~?ya0zWC&zDp?q zbUjPnxneLzM&6H$wXM(3ntpGdj<I*vGd?7%BB&9f`pB7bLEhire=cUv5yr{!DRHXe zJ=fa|lSC%;42x+<Q&)wBjht+fvp2ewg9bIam@JMe^o)1CxJqoj*Kn3Hg+Gy~9<fZE zjIW6mVLz37nPuM>v5yE^QQDi`<AKT{=<u&E2JT%^-`;R_%@sU;0+l?>vc2+RfW&*I z<n`%|7Xjs4-&X1r4Jy88JG6WsNlLp<Y*FSbodEhQo-gE(<}J3r7{1R?4=vczG)i+V zthkV#)-IvJdr8x#xX&T)T;QH^T+aH)Ln7lRijc;)(^G4(hVNm8_Yte-)^E2`I@NE8 z*7+{Y!%s+tet1}xeXC>SRl0-J7RhtYe*aqF0*SAeZ-Mhk>G7NKHO!e>0pYiW6g#fE ztKMmrE{UUS5nB5)VjH8eAlv8J(iw2X`^ybxg|(B-4K4M$Yq4qO`nu;~&T&;ql<!oD z29G=rcCfQH@3FOsbm+eMx(fVH!@IJaHug2{U4k%e(#-MN@zobEPPN>?HHrBh@_K2m z%QYi$o<biB2^T!rbYAQ_wTV)R&O&;s5q`XUaOrp$ZC0Dx$m!Sfm(t@5oMXOBU7ap@ zh@>?tg2l<_Etree+*?1&e64?#hxc;SV`5}sn#tOgxRq0tyx~yy;%jEg0_xoE;?z!z zn8(t`i?-n;{TbS}PVd^yE!Xtt{$>)X$1dJ?D@O|%uSM;@WF1SLzwhH263J?Tehk7^ z{w%Y>R5#@51cfwyU;Ch5@xoPq)U>7K7UnsAA5DzS0VXP)%i^v~t;`BqNs|Jm_veY$ z{BNJ8u}@PdzKC9zYps_nVX?7)+B6|e<<(%Su{Xe9Ur3U3KhqxO#AN=L*9zO?#}7Ze z;3IWsp>=xSvf9OX3nRnX&=^0~0q$PTxs|f~=o=n(3;FX-FDePPaWAnML&9e>6GP%Q ziav~5M(C`BzTuEpOjYZeu!ws~$T%#kNW2|*UnBQixF-KXq^+z=0#Wz#jHxW3i+dLn z=f6}Yq~4}xYUteNV&Shu|H(u)?VGVJtD^d4)-2}63xaEu9o3NMrygBEYDlhRFS<SD zKhbtULZkdp#No&$zm+K#@3nw+(<7(EFMrVMZ?JfqWTaG~&St^#z$G+|GFXGn^121_ zdP~7Z%qRDK_wr8~DH!sa3mMVpOL_8~mY}liqxd3a{UMsuTmPw@codhy(Wfy2&jstI zgaQX#H(r0Ca6oSiWUh)TbLPFz0vfz6S<%XGY(i^aswhO(IBFJ4TW=Q93a~sWlvs7M ztA5*&F5rG967jx8{?hw+Lwft9XL?S7pNS-Cttsp89KsvYN!ISzt#eOuhS}237H%qJ zoEz}5!iCw~)S>vQWKKJ14@>@(_F+$hbhlLDW=IlzE)gz{=Em5r!gKEEZ!#ZuzTUx} zW7HlM`da+9odQPH%lYP0uQ@$MtDKV9DNmymPNO@e1!dQZk01J^Y@Hz*01GsK105uq z%gN%gj|zHcM-mWFr!@Vyk%_+20}GgPi*!B(?MfCsyR90p4jqC-rJSsstovtt*2|WJ z$9Fih2ltg<-(tzAKb-w|5K|7(JGifMp-mvGSnzx8RB;nBDrHgdTe$i>zdys}xpkv3 z>mlg~ckR^nuWm&LMW8-$X|HI$#`S+E@)eFUI^YZn)v1p-*hHAF_&iO?kx{r@q)Dyp zysdYi`<tNmBA?15^{W*c9}}pH<I*Dt5l#Cko+f$-ipQ8G`-omIXNZMPo#{MO^!|)f zXHU6YNLfAdp3j<3m!DVUk$`t`W3>v7KK&+<jc+^745pUn=Lk!yJ81;#RPAejb(DCd ze8GqEq@d;@tAOL29T$%z7d_V1tAZsTFI)2-eYsqluYCBM+zpE?BJqtU0q!ZP^C5r$ zw@XXE=cZO2-}&scG%p4EeJ0b3>3!Rp5_i-cg#>NcYZi=GYcB3(E8-Y*>v(}ROS<qa z;nR{n?qp-nGxiJ3g?V?|o;Z0#UH#4%M!eBy*e-7r)KIv=_o75eHpo5*q5Wz|cr~Cc ziL=UWnPKrt3VKn0Z3vidRbgRm_CGZLdO4w5ne=e%+!IgHH3TMqWwFc{eG?U2c_YC+ zeM=Xufefyc?J0Zmy6pyYOiMh2Y;O3i!OSPKTp7a2rw%CB#v6y5O%?eX?7#VLP?;!K zZ5-iyi$S{~WODFYBzMY<;oxURwKsZ)Yma^Rl%;t7erkmJ;OODu(s~{B7g77muZtXZ z2+^9VDxB)u7ilsjhqHAU=<*zeO*#05)8<3M_Y)KM@_Mp+OX{~9-na6v(s>LmSYfI; z`7P{5a1qo?&%f3}xl*g%HKhm|ERQ}w3_EG~s9W;=zDVhFb5+@9(j#_Xd8GnBrP1X` zw<h@B%-=krQ^~iV!|uCH-6iM1!>exC&|4JFoNwH3CKbO*mi9WNLM8U<0h|1pH!1Ud zWu|>es2kq%A`ys(M>wBXy)WSMdTwBZnTlUjo4a8wW>V$C879@7SlSo*cyG*!4x5)m zGprF^&Do@ivpTEdFDlN)+I=lFx~?<m_R=Rz#w%))cet*!KYN48Y>nZ-#YwgiPmZ!T z%SCrxMkytW`$gpvUBv3lta=%o%Mw-brsu|FTv!}mpBByGq<gL|uQFuT>zkT>&CyV3 z;_yR19-6O@4zfi+XO`ae7%@~|4FB*nx0+~_EL~;aTK3hxpmcO0S~hCycIPo^hpIUB z1Gt<CB7;{{MEPUkn&AMIM{2ggjdjbPdg(9t4}SRa?A$A!P*-2Qla_kMGO;I(r*e%0 zhf>AGF2*Kzcqo-#XtXj-Z0|hEh=A_BY6BD7*FMyZmQoQ8`ic<sVoCWdV^+SLe=710 zvDHe(agSihJSkQ3tMa#eUB-g@%lkEZsHKJULu;i9KPjI8U|G@4=C5b$V<z)B@ZOEq z0xEK7H`4wwUG6t8f^L~jyBQU@e)6&Fr8KOZnN_&Vjkv@8@S}Hb#gp~X&^c*O`Q=wM zA37z*Bd$|V`Z#2&J40RL_I>2mFmol@ydYi(h%`NPe&#@2-CKhcs)}T#6HBp1Po-Wx z^NFleaDEI^&bIV87i4+t@Z;zpwvh%IO6#*#Z^S6WAD5zX%>(R}W-HDXW#^r?zOYx{ zfkQvN(b$0gX|lCJ*v0aG$C`Mvpy2fz@}*+sRTcEJ*Nh7KZD+l^4i!|mjfILf_0m(S z5q-5U?1?amr?gycaXGxjU|!sv<Kl8VwU)S0cyRpOr|MMy5K-9&O<E#}Oft^dpQ4Q& zo~!s?dDd#Vk0^V0f0oe5S$*G}=Ti*B6(++KFU~jHOhj@qo}VO~fSoQS1`j@&Q&L3f zXFuvX!2Pz~$gG<N=`J~Uk*DKU-OPb6Z*>BRwqJBNFRxb^>1VxR7kA2Gy!LT0G_Cp2 zx+Fhan91uUO3~93GY`~ipS<B39KMlgb*{8ULHiNOm&AM^E7H2J^_fm{m*aQmywjNv zt$Rs5DEHS-JhOSUjR(cNj!a@om1{g-u)9mFACvB3WiP$q;@=q}XRVQBo(PF$jipt` zT_R2y9Dbc(?^@&VzKqVd!#hVlc{16^siaBaw7YlCR(D&^%d(2?XY3C?MG}uZ4qZTX zjhgcYrS!i5p88Qbb6)FxYsaHrenPN0Dan3M<dyv=t&M2R?HCCO`%h^n1ud9H1Q@)F zpOF%Te#1D%@pdPb4j>~x)?x(XKF7~WFb(e`LZT=R3eH!d>4%P0w1vdlF$W>OlUCza z)R+Zxj+}hcRk#4X;Pp~q{OaPl2lxAh9H;sCw8pH}uIxp$8clvRRLQE!Z#ey?(0Fyp zIdD9)@t*wkYo_O1WWyW|I=iXAJtJvU6(Dcjv3FUgeJl9gp34P&h=!C_%}<Ea6%BdJ z)*p!9-+rbP<u9lXO-#{zWogJT(EgHW9t6L4H|=>FoJ)Y-zSZjB;ZQ<&_l@sf+Q57H zq}oi&gz!LS-Z$)DkY$N4oGhy4?tMsbRMh({HJm4L>Cy8<<>834^J8gTiUL%JKO$ZW zAr|{zzT7Hx^pQpjKfikfx2Lka;`$Mr^%mZ{1;mr)Q)f18`IRPJdc!93T1S!acWl#G zG21BxhPFvQuGx;eoIN+(CF%N3?1eYqpt~k6-mVcbC&ha?gK4(RvQwzS$K$51>9<g7 z?4$Ldh8GqM^5Jdg>o}=qBE$wC%w?<a`nG>kUkbzOe~dU#(7@+<$SbYsQxXqF&42?i zM&c)SOf~rX`uIJt?Bq-MemkY;2IGS0*gIJS%9puhjjDhA4KiR}NyRfB(_j&KmTgH{ z{%pCP*Nk|iX)AAUq5royO(*9!d!uMM((|ez0avcDNY=XC?it(i`HE@qR=U^NIe&8b z$i-NuqbW{GvdRUne&zg1j`a6?f{OeOge0+S6D9N;gKd_3lUrLex7o!5BtEi;Xo<6P zK2$Qg<|dQwn{+z*<RYKwEk~EI^~GSxA@R>8W**U_ODk9G${5B>KHA=#gVtYBn`bY7 zjBN?LFL$Tzmf^Q#u1g`7Vteuy@8PFIR^eOO1P<hD+<2yNM$uB#l_!l-oXn0e-fu1& z`7*@WiQX-_C~HsWD_e59PC8o$*MQTA?Jq~KJ8n)oWT{yibZ=K|nMAyGxU%+gJC<1L z(01>0>>98n_PB*{@j9FH@Tg3UP3_3Xq!ImZaCYv+c}t-}?O~DX*)BPuj93Xn(W|2h zPGg&%^z%{%rrKsCvuoPZ8VIWpJ3Bu%8BJPZxbZwn-|Of-h41Dr(@D?YXW9?rllJ83 z+TRK;7N;#$uQ0UEx@;rmxb;k3u5Og}OmJ*80TI(_NSe(k33178)08;6c&bN{bmCz~ zkM~zzMKhc5IzHacTRCt1Jx&Y=*k>J>P&hfV*z_c-W8mW+KMeuJkO$nGV@oyOXdzUd z8Ijv1Dk->Vs*f_ahx?dTOK!7PU{H?t*sDju)uHI7gJo}0c+SjS3IHR`kEoWHbxS6y z{EiAY3HBtXp5oWpf2(%AYdL9F;%JO}lTgY_v~LXCYgEN2WK{#DpxXV}J;*4gF(VhA zs#u`Ti0N%}=Lz*I75KwQ4W+hyN6txFGS(9(JkfF+<C1-;B>~u@)4ea&ePaTtE+egV zU4}p8+L9iw1me`<47@%#w{5LVUu{Hqrj_F6?mpa_J>3*ZWdCT)jJSMeTb<H};bX5- zXW*HPp0)7WkiM05y&5rjs9ks6>)Oi>N7(aD1k|(xS5S`!x>Qd$3fbmRJ^du=>M|Ik z?VFo#BJxUyq5o)B0()=8O}b}o=W}?R<i>Nunr<^H9)$&PDc10bZoagO*x#@s;K;rW z4Qel}CZ`Yw1fFzr@}URRrC?y96*-v`wUc%H8y1ZM6PSNZ<LQ%!@sS}%6qpG_zE(m+ z{meQ3nTHCN>>><g)DcXiMT04nco4+If`9)5!GPIKzd<m+RaOGQC=j8*gCG+Di~U1o zFnvtoR{-aawLz3=7c7+BNmcy?@A(rs4$KWE=PZ*kzB4!~Ch6U={%=G-It4<}a4ZP+ z{4*jTRfLL*_*ZHWR{x2*{)&_BWQP7<UBZKCI+z6dPg6f`-=KEVOn<A)_lxL%b`%HV z<v2WWPZ}o9|LfHJEXRUKKLQPGf#tS;DhHuja;ocpS_g0F{GU??c6$e$C&<9W`ToQl zL}|f%)g34|Q3l3F{1XilL~_9l!~b^RU+~=@rxS#1|JeC|Wg`Em%ORpj*4iJU!Gf^~ z0&-Uu9)i95llZVoSTHvo2`qpk{9`#ebsPlb6=eTX4z3U^m<E0PZ{=7#7=lm&O8!=k zA%`~5fT$d(u&c6UH2l9hfJH08kvq^cCxDTIvGV?j1`NR9fD;BF0PZgbW8?V~2^h`+ zMC3q<a*)X%M+>I2<I&jN-pu@!h@AP4+$EBh|8sXR1O$lR7X*Q$a*>Cz|Eb61NDvwj zmV<H0l85};Lin!?FnA;wi^A`;D*LZQ%|B@l2E_3($RC2;(1bDmw0aYuX`n*E2^b}S z(h?@T=PyehygvZiooH!t0AeTK_5bQ08jLjomhv!8xt+Aw|BD=qG-1Jn(c9WE4(b0N z3t=aWw7byyv|wz1(h>{;3~&7~eT>?FR(CXb`2$QR-Dwsu*8Z~=puzP6#`JcH&isuC zjF+I$C^FF>7Y-VX+2O%x8+m}4I)7;hs|1=4G%%q9s)-s%^rvB=!5bM$Xn;)*)Z5d4 zV}u58gy1o|jOzZzh<qIdNv8R8hf!e63<IVTgPoE6vw8W=x}cE=&@$}s;{beh|I&E` z61-BgYl3d*{(0U|U<4GrtTC<w4)6oW=T8e0rG$cGK{K=?DG9wluQ?PR4F{K{3n)xS zJsA6+gh{@N1IDD1^<aDd*bEpjMG`Q;W4%AydoaQa2UCA{>^+bEpH+-}&j<y!p{)-S z|I@Mu1Gk`MAcCcT>>!eS;vfqQyeg{y7h!;bRwd8?t%E%NGzugE566HpR-D0K%9X$a z2^bC!_**%6?+Lv71XP0MI~mjFpv3@>6`(a?GX}NU@XvD%=6r*};$7jW7{b`Vtm^+9 zJCIleK$M1Y0l|hacHut}V925O-OUmxkc9D(uYl118ddt&ji29wSHGr*{}yff-?a}O z7+QpUN#~!d$zDcaD!{Fy)U;3~JeGu{ktX)=d-=V7wAdI)Wwi{gK-g|ho;=L!@pd>l zc5jf&lu4du{(K1gI~8lm(6mv9u}iNcE~r}7?!9uheW8V*qB4Jp;{se<C@+uJBXqA= zTii1?_al!z?y7|n+b^Ahld9E(299m-Kd2OO_r+6<Pb6a7y-2x5Rubi8-LzDRVs(l< zF(C8ohj2k7iL41vSMWa2^$+1(%}Ej@?=)A``77VPY;0Z8XxUory3)&?gi==Dp1UjD zv@roxO-@;y9qYZPF)<-pqNvMH*SjYerpl&&+w_&RRp!%p+UBG03`!KOvFdVryUHjL zfyeA|J{`tHfBJp*wL~{#-55Uj3sgM$dYVX5EIO|Ncje}hyO$f>GG9)=r&Yfuro@v< z(au%2rR{!=MwQG>G0nz9d&PQB%(KM2w;hAC=W_0kYCgmTt-R^~-nJZ*KPMH$<vV+O zE8?Z!)J(a@*ZMY<s}FcHk7>#mWIgS@=VzNS9~@s2TkE1MeZPp0_N(gpF;V-i&nqld zM2yKRe^kYdhOWjt<yr1RCTS7<m)nNiFwt|LC)d{vyK^bbV<!D+z7$$z`P;V}@er=r z2x9fBsV5o*-oUb~Kk^RcjD=LkG|w+qnp_o7z8k+Sv?h5vf?|`mf3DTM%JjzllH*QU zkeIQh+oZgF;ar)6Y1PBy?;|&sA}rGAONhQj?J@2miVKmJqQ$ZFS56}<!vp)H_$-@w zx1QY1mYy%EP^-5=dfgFvJ|;{t9a&O{PwL$3;V4$0JYr<)DE019Uqi)-y8WJ86J8X9 z){iWBto=RiQTL=L5uQDKL{w4Uf;v5EEsT{Sq+Wv}wUPvSbA|Gk5miui)4ML0@+gTz zR^7d^1rd)vn_fN*t9sYmlAXm!A(dA4At?5y)<ej4=!D91HCl?y$iWTYfK9_8lTC3- z<9Cg4T0LBYD%LbMOki)v!uXp<yvN@^YwILtMMK`0ouzy-pyy0gbKoL<>!<~{(G8k4 ztp*$Rk6I1i(u=~_xn)F3`0~Zs((|ut66sFk0(-PRpxewL-<=VuMA6R_9Bc@-2jXmL zgY>2EGz339T8`>{>&KlW&aa~5lN^^&Tac0RNaDN~zwH&MQZpNmP0C*Mr?kCQGA6ga z5k)UOd8-gtNnMdpTU5L8TB<I|`85yQLt06nuXKfvw<WCBeCld7{5uSAT(PIr-r5kq z6XJYHdtBG(?5}_AGn3Z{^bDTbLmy-Bxi8&N>n@GeoP<XrE(UVKN9mbR$&7u?1H&Oj z_)^cKir^LRWXLsMrNMx!^^bws_hNn{g&*G+`sN@fsKxL2e)5Tm#0vC7-&`WCGJa^= zY|wgzn;MbyQ+L*et|taDe_`9UMye(gJ6@_scn$_t`AB6^+`4n_1i?)0fbh-m!!g~m zJ~~3r)3e6p11!)-=F6oYK8r{$ZgYEXW>fvWw&765i(-v&I&8QR0Zi_6andxwOB7q% zac>{Q$7`Gz<?OnnfLpGV$~yI>p0Q2=`Jz!aGjXu-R2+l)84F?SQy~<4J+9=o?Irrb zgAYHRqR@QlClI+G^U%KOWf(D?*Xdn}#cc~0^$yX;AypBHswN!uckaJN2StY@zDUgr zz1vZP%4boDv}_ui%8{XXLu~mH8+6q7P~TzGc8Ppcfe{lPhu5?>b~H0|j6Zjl#h$b| zk)`c(Pqzc63K`NiY0SLn!^;M*#P<>(dKSncuN+OVn23Eutb`}O7<s*fX!ZNX$0+&s zCV#N6?7f=Kh)0Z#ZrG0ZFXLajRkN#KgDicfQCB_S=p(A9j8H-fMA==dvMgFyPE8Hs z?8;80FHmvaT4rxb;HB_7h+U9MGV2dJ+Ma2vb|||}idE~Ry2sYThbL_&UkGAZh`@RA zYYm4I4li{zm2E}5X<wG^KFHffRaM#&+@l!~<men@+0M1^iO9P3C09rm!b$&nMp-lJ zaI=A@F%&wM9St*kI-C88Ip}1VbxppQo?^C0o8+vS&{3`r%vU3eDbLFYT(r?GW}Z%b zjbY5bOYuf*U!{bbkmE8vrA`#Xm3CrzT@>XSeV3{(9Zg!}(=%}tt=DNp!h<XIoN(V3 zw9Wli=rHtpEuUNAsYkU#tkyqqd`=6OuKuda5^sFjuL4hXa=?UmQESWjn(V@?fnR>G z4`Slun@2BSHs26LJ$Ex5iMBFoF0*|o$cPQQH0KpV^MyXaYhKd<vyQX4+;dTa=ptjW z8Ec`Mf{*yf9Knv{rxt;U(00v@s{wlZF(Nk2G~y=?#(RF8D*IX$&TK=MjlE&qD<-p- zbT!WIqgm7y8l77cFo1@tHR!zdnNyX`_7y6o8AxHQF&Y}Z_HF6uiEO1L^=N?inLvEa z1gp_Ef~te?q%(BoWh#;OiHUSKF=jDyI9xJ`l(5*$x|boDR`hM_V`RaH3(t(q4zpg_ zbc{6eF;S5Aq!yxt$M;iS4L@UhzrGl`VCNBS#ik8sy909!uwYF+!Q2o}mvL1yFW^b_ zkt0141u1tUWOG7}cxmsM>^UAJymiZ_O1e183YW-vP&#e>j;-W^gwoA$JV10aq1kZr zy-HnV$L_fmqW2DR^BXl^{QRx^VV>5{iUj5{P`k>*Plw~LlzCcj80nA(Em&i$!pyrL ze!0Ts6RmC}WK$g-Ykk%t`Rn65N5sCSd{O#z>~U|0L`9s(Iq;5VWeNP$i!AG-uRkGQ z&FR>G9=@z`z%G%ZUl)#aqM~Z>B|f<U1v0B`S?eTTh6d}Ee)jAO5X}Hg4K9|lNO0(V z<-|TtWu|=)i{TrQs8Og1IWTkiZrA23naik>6qk}c?;I~M1$PfSmI%prA?(&Wzq#6N zOb;K;)L1$)+nRVN$n@1zu9oBLE;yf=e(iLieyXSd_vV$esmcj^IU1h?7ta$LI*-0< zY!8+jvtRR7TZiX*he@v%(!bABRmo(fEke6r>fJ(5-#nI3f9c|&l_%{Z?0LEBSmk<z z;(Is6adVi2CaJTt&W@dG26I<bZQrFzg-Y&AkA{~XZo-zWkFbYu%;&#wr8b<`=CZhO zBcwV<t1$FnXCc$`;Y~f*@LLvL;)Y=%;Kn>eom#bEGeBsek0@SA(G7WFrK_noZ>8HB zdBiI0V?^(Y<)hD+s`$Ck0H)VK&%7y`BSU@_>n^yx66tEFrCp{{NPV0EeyF}c8d07> zxoR)((f&SfwB@b4SOK4I%tiWx)~UvtN{>-e2@aEfFFO0#)net#-ehhs64_1<8&sE` zcknp{Bw3`FJg>|wmZ`MVexLE?OR;l){DBl1d1Mc(&Z5!d3O-xeXS~o=jW63z;=fIf zQLjymOP__E^&G#Wxo|#-*ufgHvA*29H~dP}{hr+Kg(jsGS~YtG?uE79`jl4ptay^d zVseir#_<yDLNrm;Dg7grRu4U~eTn7aNuFdc5$e9%rdA3f^lMkWKhfK`={=&yi@p+L zqq}qQk-O-o-TI3AzK*1bH#j*}`hL@g$an+g$1ByLoO+F0g2ksr@7iyOaWzE=-Kac1 zWq0J1$brUdLnYnD>Wc<8vpi#&_Kk{_M7@a-?vVz%(v8|aJU*-&=eE-8MXYJR6Vxat zlsNdVXz6o@t-*td6Ge9B=lC<_nB`_!Uht{iL|0g9e1d;SP+W_`Z8b44j5rsWn%UrQ zU9nM{I=gJ(N`0<Ex$t}9zSzZ#3x&Z|3=$PS{W%a}m0N<dGtXvScpZ=NE!ZEug=-6X zwdPiH#IguRf1+8YLG!h(Sp=PnXU}ML9H+T(+QoEJ)#Q{-2U6-uyj$@8d1Z^12)&P9 za(zJ}JoaJlx?Y5-)`r>%QVhtz)ZiI1ZBIl@tWd_*ZO_z`xorTb>6#*xSI+JitoA4J z2WB=#!$i5kmk!7t!mqc}QA!x{<$EbG1$VdTpWEpuB{EF#<96*&M&y@t)Bw$SD61ft zhYKd-;mF<<cwZO1Mh@nQ;=qTJz$`=%XZV@I%MM&Og0WL70p{S_KEM?CKfltCB(h(! zOz|L6gah48(A^RLt^7yUA|A|QRRWVFwM@vqrZMQI{mSGg5jjJcoV7?M$^(hOR<#mf z9Mt5u6+jnc=l9{iR0gwd|3}1Q@=s+d^7wGO4z-O5jE(mX4P!wl41Cgpj6Gd20kNk) zk$?jP)29tVFS7^a@~7@&$ygW&IPG+k!4&lQ{=^5<v=~O%srjAxQHlMmta#h&Jso zivJrC84Lqqj#z1!*l!K}%=-m1ltItC#t9}Sfcmu~Kg!7&yadz_1VqLa#tc3p2AlxX zKw;oiA%L_l2#4H%5Z^!W0WXfj@t~ud;tCVx`%^>Ug=rA3B;)H4CCqM`<u56ZzdNVD zrA&gC%K!IT!QZnVe|yK^Hy;*!tm}W-nB@1Req?6S{OwT#CLq`hOjq|g1f_vs@W9hj zDp}$!8xuc%Bx}ojMb_1b%Eh6h8Y$_TBFX&xwI8G3YdV@7I3z-qExp}R#UiWOS>Rc7 zF<AATpU{}Q+`*WbE|};3C=tukdIF`E_ro)`Ow+58)b<@0W|c#tYEpVV+{T?r;RW-o z$JvuL_%z&%+#MA{_-<-`g(8&sYG~%0t35=Bhg;KE5=Ku9-kWMK%Jl5i>raUgI2B4O z@746Ga*X%gOa<V)e0TKq8~>|AqlpZzJP|40?ekSPb!$jM-}9nPC~si~Ki*)7*6+k9 zvq~BZ4qRhW7^UOC2C<SE94V{U`f6ErcI6_yO5aA|;k&0vGsm{AKMM=Y9J8=jJ@9RE z#GW{H()-BwL&?s~H%Y5i;<9<9M<OAD#Y`>E-lr=ZwQkG36`m+ouY;KQ@LL?C<0#zh zcQmUg&^6ZQ@`{8qu_gI)6_p;l^?swg{|e(EU%m=8Rx<w6J29TB^>WTWRkK%R^4#u2 z12KhE47c2pKWgj`AAWC9<rA5pN-_^CZ7$DnwCNQ}U-FX;?zk!`C}c?Enqw~~EMq;I zZD!Z)F!tiXB@yI{Z7Ys5M`ar}gq^N;U%AUHuehzvuv%ce^h({qx3<Eabw=dLhw7Vb z(LxnS5o_TOrF9j&vvdiD-<VoO*4BaOt1u2q1Q6u`6XV)_4Cq($ibm|bZ9?<IyaLzF zz+3HTFknQEg#jb3FgCERt|w?3w@g7;gp9o?{ifc3Q^LPI!}2e*g$cNB4r-*J2@R-` z=v|F$wi)vRUki&|bto|4JFchPd1qz#7M*>8%gqj<Vbr;IdlMcQyScymzL_UqTph|= zR_Tm*HX1P&v8t0>MkjSvcl-*67L3E1t+$@y+2@NTacDPFI@0D;=*i2LPZ5o8WWGF= zbXa)j{=m+$_j0M?O;_B@TnhI?I_5XHtgO*=RK%y*XarSh=H%tbq34^ogFGcq>bY$k zjL7cMVzn%jW|(lgG~QZ7eX%r`kC`%fV1)DJ>CXeEC-v$^%LQg`SA82NTwdvU&pvhH z!6i-VX9)2$Q|Lf3oh!=`PIp9sLwh@$y-mHnlQmuS?b3Xjbo0^vqaiu@L1QDNR2h%g z&s_qEcX3$=v4fE%mi@S+`nIe0YlTMK5*scgho2o)W_~*(rbYQa;~+-$d-Dfr4XESY z$7B1JKK0{UZsgAnofim8Y`@LKmmc`)do1lYNw#tyX5SBy*RtSWzZ7|eOf!GJ{XS;6 zd{z7bmC*OF#q*=Hb+Z-qr|Uy;lc!DzykBT_^KDl8$UEm{JCC17kd)z{duH7=vgYeF z;P({fdZp7P*A_4zk_zOrzFe?$a#nz*J$BG42j3d7g7L8Y)U-4xxRZnL0sVU?NAJFQ zCH>!>9KCaW;P;&zjG}>$H>vJCTfq%JB?Ug51m4F1uW^7m-(=g4MiKxm7MK{I!U;xu zC(U7OpxW-<8sPx9{oleT<O1@egn)wiPaXdIlN7%g(!c2NZ%+v^0ofL04ZgYilu#T5 zi6p=HD9W|-oY8Mb84w^RA7%boYh4yF@(X(Nc2GG$*aGa?FAoMufX~T1-KOG%5>SX8 z46@kP-sW9Bd&IQu+N|t;7d_!jw>|-cD;({bpyCwl6+A>k%6h=l(W}fXzy1BxO*c|p zT=6IF{SPi4y7PK^`J*peH<T@0J#E1OhDts1Nt*SDA(ts2Ma-iWD)uaV{pD-b;m@bm zlP0E6^y)99wxjR)$`o<j|NgithcqFb4Cx};$hrCl2wzuvUy6#Z$uzL0!B>q-sWhrK zHf()g@A$ZKk0`tqx-_M`mcwjdOfCBsciXpaU$(&-btxy0=i54-U^lD29Pb)l>HC*g zQ&LZeP+91GN};XUr)nOHNVu}Mm?QFuMlg;_Lq{CeC?wr=C)(A=hEcoo8Z@Kwj25pR zF(%I~$IdDuO3V8dpn9`?NzbNigda|MjbL{^`HsAAP|>jDYVEYd=jE<<WhdMl6zYZz z{Q@#=w|g@6rfz+b^=h2G$HLxo=Z5UHkh?TZr$pLH#3(B~e8skn-tn_U3hhm9GZ$wc z!o-SuKZsPw4z+sARd(#9+4sau?2){8p7)7X@^yle;+^Mp6G!ise0aOm`NCl6GViGk zpOb{9-0+g8gm0z?pt0~M;=tPjA3T&1F>XFqwyys1CU)2{*QMNn=M_+aswTTt+{MEU zz3@o-MAGpQ`{~#KP2SFQgQu4n%x%rAn6+<l*+95Yi88BHP-ZYT#U|!6vrpX6hv<$I zAJ~}Ri*jCyitO?<?d8ghc)|*FIO{KQm=9=t3OYLR#Qv^b`;k5O?Og9@4q_f+<T?Yf zw2QBg%?e-hS*%}?oEBd5!EyE0KD^V|emW1|+tHz<b)+kapocxP6wPdirZPSFa#f*R zwP63?WVN#R=}EWdL(h1s&v>$X!Ch)hNJM0agEa2$mTI*0hI+%IOUQuDAgj^qZau8x zjXic3@pH~f>$iNDR<xKC(@k<({3*6vvoh=2X_>Ys4cvU=Q4g4WxL&5c4vMc8Rz;6H zYd`pZg`Ed@RK@rAe;fARyCR*?TPPwWfh3#V>;lpR6_jR2ibO;~=|w=rrHBP-3NlzI zVnL9O7(r<wHjpABh+^-EfCW@g{-2p!cK43&^YT1A*_k`Nobx?r&YU?>@4?pX%RJP( z<<u)Xlsh`+z&8gsT{fWmi2Ex{ekV5k=-)5g_2R$Z9=d$M(Qkqcs@<DYJ@Me)CGXW3 zHtI-rt<A&#x;wn!yCJ>)e7^PEqerf9boP(tPpx}rR>fPc-u=?1-G^Sx$*))8SV7V4 z+un|}Zn3#X_NZ%DpZN6Pf;FvH)|pnnRn~yhho|SRsP)0e`4{%6bL;N=0!zM{Q`A4R z^|goZC{eq`|2AY^@ZjvvCs%LYV$T(yembDf{IP!)Rlg(gUF$mkwEb(=AE(E!{kHv? zTV5IX$-%e3Jh^52uI>9D=(6$R84sLm@YUu&-wogQd8ym~xaPW#J}$NDl25lS{bJAj zz-1>(-y3-?5k7y#ov-Fkc>49P`Yg|y-s;5k@B927J@N9qmap$PRp*;$n)KTD=QSVg z-h5zU?~TRvwryzJIHT0^r!Sj(X5#w4zPvGUL%AMJ=3SoqZ<YMFtDgQO^6zDXuN(SZ zQIA@e9U6Id<m|22t^Q=><;CYOIMV&u;JXjyhTkr~@S|O|cPyxs@#~<DJH}=#&(6K} zNdJk;KOBC6vA5Zh?~dO+<@feAHauHp;^|d=7YBaq_`#3Hk$aogKDl_)?vhW>{`sXE zt3=OZx18Dk$sb=$`u^vK6V|GGP7UAHtMjBQuXwuuk`Eqv@YK$dN6no(mW;cxdF`T7 z*VcGu>Xa|el{g;Xxv1*8@_&9=d(g)%Hvc&1vGvQ={W`wOu!lSKFZ<1v=cn!ZsoaAb zCa-Hat>xjnuBmXxRpPPdx^-%B;eCgqI~zST@no|yca%H!*jrz}-si({+jd_b{BG&H zI|oj0{8PU~tV8$su>}LW|9tl4jyHVz*Yd@yZ~w6AkGcPQpzG=RmAB3s^yuwR{&Cfn z_f#!f_TZ^8Wlp~JnN|J0Slgec-f-f@=GWC*yrtV`6)N6&xc~J-N8Y`=@3sf`_xkCU zQiUUaP0XEkzCrx0H_8vYZO-PodC#4gJ^i^C&dweC(DZLRzuUiFiFSMXzjnjQ!&4IP z%)0RNo&T#7z9Osog%y8j+WOl8uMFRCZ2g6`Z@Bj1J~{1PTOIuFm3fP6Rch4z!@HJD zdS$`D;lB?q6~ANSihr)Iv*N=#e}4AA8#;eprRG6#c2nJ(R`og@eg5`tZC|{h?)N!^ zKI%T;%g)nh=Jo6G`8{u({r$s!$6kH&%3H+f8*{FG?wLV9cihq^)-3VXRTmwfym0Xs zGwMzm+B>%YaFuOsKX~`IkyCdL+1xC8<&(b-xcl&e*Drs&(zyMdtO=o4hi(|OEdQ7L z@BeK0wO774<g<!%D#h;VvaHhGgC=#%KUe*iip|?kXnlIn{3oy3ReAL_Bbvwe)p%>! z$MyS;oIP$rw9|o{TWX#hGc7Xd$7c7HA3FBw?ydSJ&K>{z{vTg>|CinsFC5jY&x<eb zzTt@pRhsnO)cxbJ&-5Gq?WPYzv&<LndaZlx*cDZlk9ng@lh5ntG~aMX^Je=FUU_;~ z*>m-N|M`tE*Y!HG|M5m$Z|zh#@SfVY9T*dTuFjT`cVF^a;)WBCZMmRxy@ID=Ki*fO zYU9!cSN|Q!pHgoAE5}-PAN_l+rArgLzFoe1ZMU7n@1OolyEUDD+SILJ{J}<Fe6yj- z*uqys@9rA(M*ShDGhW!*snoKc*1p#9=?+&79~0Vs?JwUwu<yu+MN>1XzO`)eo_*Ud znsG&-`Ro5yy6V2?{y4MkyTG%h3x3!#`LnIRRWdd{{9eoN>)#u1IsLcc!7*37ci_gI zWonkHv9$iac83q|DBbM%o`sJ*HRpWbO#hPy71R+`2Eh26RWxvzI4)SOlI_eg4P56b z@5OEZ1MxVw*22nO>}uRS+B%0Y_wf8Wjc^{`xvEM3dG+cPpv8!zBq=E5{v)?%y$irG zPG}_}3Itn-Qd5Iv#i7Z;+T3o#517hYzj~PSa(Q!@i>h2U#sn*dtyV!HcR0oV`|<uI zGl<G7(GlQ}%u??9YC3tiL>ZHAFgZ@=UUmV-H!*xNQr9J-^ZmgbF`_S*du98o<Y9b; z6GYra@>hDyq`f$j6z|<194Y?l9#kIv!g(=uySJipqn2V9B0osqe-#lb(gB?Pp^`W{ zHJF*1$7Mt9v++Q%NjL6a`#-4RR7OyaVnC`f{=;%F57FA6S0pG@Y`)ocL?~PL=q-%T z-Uot}#T92usH@5{_OAzmjWhGOv#1pieK6RF_Ug?NBOe5hUXT$iUzZZJMq**Z?Pm8f z==r|?dF-9$NiFpPXZoGZ)HCqpv9}Mz-qeq^EPZE7PiXgN<SW<Nbt@?cm+2rjUwNnY zK<p#^g0*CFB`<z{vk%3JqIpJUMmR2>X(V+Gb9ddbBez_~Gk;I(`AYY9t9P2WV#vEw zM)w$aYDu}yxig<KYrfXy^&h?;Tkn&L8jqj*T-EHNzjiO!SiRF584ada`=D1wM#&G& z=Vrf{b@SS84X2)J-J@vy*xHrvS$?)$m+MV4a?g^bH-9yx!@m`OZ9QQBJ5`6j(emNh zTPAg$KD_IcQC+KkID1c`=<e|Nnx$?Ydh-FR;cJ;^^Qt!vcD&-NjG22%4r?{M+pFtq z^?m=5)t9uY-m`S0siJki-g8z=kDNR_=iay9zioWaTMy2ge%ZjWf#XxxezNY3S!3&t z>-Fv3`^TSbbzAPYH@#Hj!`t8dq+jnr<>xf7+o1WldBfh@wV_kT<5ypQ<I1~3r$%4) zR>>dVO_Y9a`aAD$%UnOC{rbV{8-MivGp|2g`Q>}gf77W-_O0d4%&R%3!y_I3={bJu zUF)_!-|Ot!VNZ0K^Z0;|vXA|ARjb6ha(~^~>)7iHs~kEseATmeUHQ}VZ9dwyd}H66 z`eYq_y-KCkWfwN6c+E=}iHGad__6ESFQyj1_rR6g?=E`&*;igTkTc*=*H^cW2<@0V zp~U&-m7cdHwXoE=)~kf`1fR+^99AmVo5PyB2He@Hr5bh|f`%Q3pkYXnBwJynQImh| ztH5F9>QjbwRV_NRlO?Vcn`Q(n7}#lH@Uwpg9zwHb1<Pk}^?t;RV2{ce0%B&1!@n>_ zfjIMwV*QAx`-zVQYl`1zpqt3Iz3`&%En6#s;UWGMBKSgxqZ(${*(5R!DdLj*DZCJ@ zo)t7z4dRg^*8AYL!8Wxq#+80eBhp1KRpd#dD0W^%k_+@8lO997lyynRq(yBZlzSfy zhALx38i&s1Df=IM+bib{F`2r$upXmjVX?M;uygG^w|Mlc1-LPEONTCU*;}U1&cJ9) z7VNg904Kc>u0?xkbFrAjKe1}bw3)&3;<a07{Jk@RZN=<4L922h(l9(B51N~g=vxqD z(6GDl(pON<PE+Y@*w%KRxy2EO)6Hqp=t`Q(GL6Wj`eFQk(v?jW@X24hlo={+wKP}| z$iUA*`7TylvF^p-3o<aGzfn;PSr&X!+&7TMbe({o;LkISrs9g_!M7R2e$or;+1*5R ze<}Db5hLD(_~xz%ek&?8M8~|Zgi%|x-3e8mS>C8C?pYb^-6Cwe?=0E8<Iw)YZXGoA zcImy?UgVb!EE?H;<gosuh*HK#DYnaG6XjP0H^`}zZaMpnGn<H~$C>3t&JnYMsP>B0 zvbUYf9m*mqg45YW7x5lJSTP{zWf9CET;QBo6k#YGRyqm!1rN!D)P9g5fB@PJS%ere z3Nqj9{U9T-I{3339W(%y#7m87N2#^Jof$CFQ{S4E#H^acR9F}MSo}SlL7ULuxIir4 z46DjsAAD1^y90Bo``Q}WBJbtk@ARhpH1f3E5d4<kfk*h=dn4mn^h)sc4BT_9U2ioP z$4lV3wszF4C+;r}_PLk?61!8$5p*B0NEty|Q#Mph)O|JBNesM;hFmq)s3jhMH8?R5 zPJ1Jwh^zcqEjr^QU6h9v>$isk_bRp@RW%$^yW@_ibP0{F$IT~)%J!_PQp$X4;8N$% zc3CRsZp3fOb7L8ZZn;J?F=Gde?c~Pbi*f`G5xZ(ra39Zw$mN$Q`c<>C#kSXiV`NPE zmx2|GJHH-m6A*XZPoG+U9JJ=G4`z$^HV5A%`=lHOa7`1lso1+E_?nnCi8N&%wk)w| zYjB5%jHmD!^C|DyZNV)hZ&wLd@WX!(Hl26I42l=F2cJ}x;B&xU)sx-`zAMaW6f*Nk zd_&*7BX}$$Tqq`Gkf7h2!Br*ji6F}F3^o%tRiUZNFE=j|<8}snwg{sKQ*=8yML0lE zF)34o4;vYkeBpv@;=;Fr2TO!GJlS4oHWsDc4lYXo?MRqh*DP4uVJjoe#Dx`tk<-Pz zg%!||0qLjQaf;o%2+$GcziL4do>#-RUsjUI<qsLLzo^-_9kcRDE&phwrTbB$Ooi^$ z(tzAxHS2!kUPf4fwDkT+|E-x~MN?*E)jRlHX7qYI5zKsiD;r?-J8Y&+?*?CHCbq?y zxVHJM{MGLTUm>E$cTkdTm#~#y*cB`$V*j;_@FjOzIpX9#@-5vR94}|^2d1?3olL2U zz2p7h_>3@f(#5(|l-nCLM9!YzLQ&;0rjU&o5{aKpCuya<lE#trB}u4iyV1tJ;4;d6 z^d_US=zcHlq1-Xz@Ei(Q)duo+&we{wyXkEHzdPCqE)au12tF$wnNF(r<D|OiKyW>! zlyAgBIesAcG{5mUTS+YXFnCbL7txm{72Uq9-Vft@^I&kG#A0f3z5P$HK-~3FaGDtO zIOC9A+3jHGL%~tv?s>!=I22qg9uUDQBB!#Yni&$C5A(Ine1_!SD;VGr9|yk_-JT%v zvPD5?^nu_7;^`y7=S8n4iR+$Al9OKrFBCIBA#TW1WE*;%aTxt+aF2NKX_DM{G`L-i zTtFSUp9Rl|dloWO_uXwa6N`7VWru$ryhF@gM79&32Um(Ii}}^LzHI4NFyf294Bjbb zJVTBNzfkB0Uj~ng@k<Dn{?{$w&#!`0IKYq#Ld^a;xSQYVeV!J%ESIOh32r3f(Gz@B zJ6bh=;kUu{;^L*m?b{oSh$p`bE*B$Sq+&%i@BcoyS@c}S*A^Qf3X^_-285RLwe4yA z7d`Z2aIPrFbQkCT#Hov@zJf2*izA-DSSgPl3(i5Ws}^khXR3L76^y*k6D&5BC~`bF zpYN)Luz;qb^e@3T#E7q%)^C0Zt`NJ|P~7t;g8Re=YiYsE^@g)lDZQOIe=^uz{Jf4N zYKUf^3T_am)|2j~ri_m2+st2sn?%D6BsqDCbyZ_GjN{SYg71mCuMh{BdJjaUn%C`* z;HUgn14q|(@mn=3>rC)9eycG%c_w&BEZs;>7M<$i67j?)g76w=Eu8%;xK1QqBTg~( z<9`R=7LnHpZn=au{c$!}EFRuW+g0mMpJOm*ZedlhIJbytTlv-eGm3ia-{5X>%Qk`& z=F{v0=Yt=KqV2)T?C~E&+czj~Moo(QAz*wgI`3dDwb}qP%qU@O61SB$^ToSafDA}y zUC}0L8sg%h(X&N?%c?#4iSK-y)FkOA&ZSgTl75n{cvH~W8z@0?(Qd5KsQ6{mI3GyZ zNj(Y*;0?!Y?$o>pSQ)lo^nm1nx5M_k9t5ZoGku4`Q5g?2xB*z7eH<;5QGjb2p+JZ2 zT}OVQH0j4EA+08gz%*gk{hFlP1vdVcU!>gb(qP!Fgt|6ChT9g{uJK6*vn_B1f+DzU zf$b+>eu)rpSvXuatey&Txj;POVjcKF*mmkhCdm_QuRt<Dk8C$@G612sUH`~{91;hi z6-gKc$FLhGVU+C@h-C8Q$94)N1L3R!*CeE<Fq$CbG9R2M@$!gM0+K+1d+b@nj1=(x zhFvzJ%MB4HKr6$x?>Wk5bi?*xx(qOrwl_K%pxL(Bi436M$aR{XD59Cz*t^9s-0le& zh>!7B?_MabMmr1aXDlc~zSF{+A5J#;T1$a@aKty7Yd>qDQqo>qZKOgdZ{U_LQ*BCH zY~7LiNLy@MdKIEE?nOvAZmwv*5r^c|gaG5@r(9kd@j}$(O8#V^Ci@`>Ss29@*ixVh zQIRbRst^^~5}^#iuceC0sR5w^Wsnz=A8jE~C6&9y8w4r~$Lyx1Y&_9!0<UGgaMa8Z zBTE?raEY&E1I5v+mNs4y!=+^KO=;sLG4wrtL8-FE{xZf)F<=+L<&B~Ei_022MW5XS z?<r^O5f267rZsmWbrwfqmq-v3S`@fAHH9uXok*bz4q#1b9`-C9D;S?Z7SO_tHCl?k z6^#ye@+b^l_NW4bBcEZhhlH(LkRlZ@=C&N5Mw0n(r5MIseslMSnh#BQL3UACwsc3h zW0y?hUa@K)-Gu7?DhBL_LLy`3h>DesA)@XF1Rt+#%oQU`OD<Q!;K{hC=w2KQi&<5S z-Yp6=^k1N({{rVhg_I${s_LSu#xQaC0K=+efvr`I?w8vsy)j@*bHC7C2y!zd5kA|o zAc^qVK)jNpQc{Z;au5aO)0rTVuUZ)6MfOK@V|YvBsd*C6zw?EWT|Dd(<A#9PEW;}* zo7u%y8{?LM7<D*UsTg@ED<E<|=I5L3jVA))>LUzKnSWs$i#iz7M7vK2w&`d*C&Hid z>#vT+VbT65slU6-m=qAzKI12dr*uFx{G8&uRi*g%IvM!^@iF1z@>d%30^+GJ_<6dE zAp+vjFDd2L+l{8hd%79517g)z<U0BkxpI0K<pbjGuSt5%)kgDx==BXh#WhAeAg=wE zpWj|<<OW1{iB9|Nfcss4y|GnX`aNHo++a)$h_*lQW!sI$AEM=t{Cd9weK^z8ctX_p zi8}7ykF0RuCI+beF@kLx0>NhVGX50xe<tx$y^Y_*v7h-c?hiif?PHt~yN?rGbdvG2 zZZ^sW#GYSB*kvNy<%WL7MltIIpAm?%i+dCqV4Be<`FwI0eE9iWjQ2#>Qv_$vqn&H| z8@oh@Uuoy;Ta8#iT>cwBj}9<K1jJ3h^Rxf$M(2Qt|3Pspk5St%1C7f9qRDB(s+D8z zpp_-hP~5Ebv~BgB#(Z()3>kY5HU<U6TYvKN$Pi;lK&<^s#tt)T1;mQK`8jjA(K8@k zKFiN@BaFL<Jx8H4uVyQ(A7z|JhT=UsDMNid+PGT`f72){29GgHw#O}|y$-#-9&uSk za<4}mhLK$8b~YAt$zI~KF)XoM(eW;$jg^}v-(f<cevaCozl&8C5k1aYN|R7aOd4z4 zDu&i$34!oJR&6n{o>59v9B1T&qRoro?wA+WE^p3DNYa^~>hsiYfwzI63k6Bx3?iar zUd8^QzaCSSOx|OvlF55aRWf;xsj}S)Jf_NSizGa*3K@uaOcjP*kd*ac0!dkqT0L10 z9$nzcdI+Qio~S1oHig)<4}?(Q$$9cj!4vahAPL^xa?-&D3Ow0UvT{%MREHog8IhdW zm3|c?cH~}oG-Z1LOEF>(VM$4pa}=j0#fT+5v5}PG#2z3}oY(^ad6G<d_&~ny#?4)? z7%Fs_m*kdo#={Hpy(%6bb5p|S3p|7;1>ph(@e&FoNRn^+r&R2K;qq{uV!<Bzk`Jq4 zQ0Wy)^&a9<EZBpJJY&T-m;1<58hq8Ne5p%2BCdV{ZCX<)I<}c*SYp>b#!#^|fGj%k z1>}v^vygG8+zTJso`C>sPB31};0~XB?ooU+!I&o=HjOgkz88^ckW{k8s{4#*c`H>a zt}2QypCOp7zK;@~POuwtOBt2s9fvQqpJ*%+he}Z%x|kes>ttiJ*i+i5RD680ksT1T z%J8N6{l;!_b6G=4icLhTsRRd<<Ab6_6Q?7}T>XHtojr%Z1Pz&QH4)c7Xlx+@7mtWx zl15$gkg-d)Mk&@%nKc#t9yWH!H*%CvjHHt-223*+igz>VaBU0H+Tju7tk_?PVAqob zspv&9u`<C+W*BQ^PUIyR(Q)($&1M>VWQ>xU+z}ijW0dTqWXwNi$pKRmR3*`69Ng^J z*~S8KusS6wL2cio#v7tvO@d1wGyW2jYth9Yk-z7)K!Nn_9Amb)tu`NL&7-NW%!TBB zSBK!q9^j%Kj~ff<?lW_UK%mSPogZK>*32^=6;?fdsq>wFameCiVSFn`YK&Q_7?~;% z5GCpxl^@^7r)^Id)5T^&;+{1S`58|lV|~`Zs9gNWQ%1u8?*l4@;g?SvkF|(sGE_vD zp(2_LMK-Z=f$@;o_FS-(=(y0>Rf2p<m=Y})8Mle?Zy6QD&PB#&2|Ke#`hcR5Bv>wl zJh}K1=p_BNI><`8ICi%LzzH|b?ibDnlJX6D`=oqBGEcsNd_*J+w`l<zIO4%@_HV>P z;q0_XQiPEHqFr(VMUpQE+U<eZMm%s1MT(?g^ISr1>m)_O#k7+Pij=@_wc8I#k?>;e zeWV>p{7xexN&L=0M3VTO&PS5?oe_(q;CHG|!S7U`#P1Bi&5<O4r_+%nfTwTL|B2l{ z2}$KKjT@qRPu7%gJj$aR=NsLLIMSxXbZZ+MHN~)o?D^TxLKTiKF-C}EO<2CDv{c+M zab31iWlnQ8bKB>Pb)riS3-f8g$9^jyPOY8?Z`N%_-1g^<<s!2=Ss_zPM2lSFh8+jQ z%-+n(AF<TfCbIL01LI}emEH5AF<dmsC+_d-Xn-m&vdow&>V_$0&1uq|U1l5-y$cAg zYHDQ{SA5AR84yh)gzKEK+ZPhIuP`29E1_7=6kS%6so6^7XZiFMRG?yU^Hs(L0U3Ix zubElgb+u6?AQrcPvfaJL$OQYfq^xK=_U^v5#(HsKD_Qdw?A$lk85=~iO9-On*(u&? z%`eni&NwZ2*_bQ_wIxoew`sZ|Zr{KFENn-2&_Fg7SHEJc7OUHn<lgx-s(rEXk?7Nb z;G#wZd%kKM7mYiT7_HX#;_Hrlh<^cjyML4Mlh}V5!LEPMjK!~mmA1TQJR@$ug19gC z(Cam?F`%noHx`SBI}wMr+iBGkn`!g8&cr=ElcHvAF%F2OS3x<(ZDkO|mtE-gylqC~ zfSA#Znp=EfHl6o|@zdi!1Z^oqoZVr}Y#(tMbP|-gOgaUWIf{f7&ZV;1pltt}Mk81S zs-AOi8h<l6_>6Z@*oi_jWT6g`OtZMfTgH`vL`0S4(HP)W#1XHQdL@z+*jU$|h(-w! z4_JV}BA&PgFygX?v*1BI5m%y=I*W*R@Ij|AXLV@|P$S|=MUvonLXjjmo=gO~i+D1l zq%n?sq<{|YGu&+khKsl|8+rs<<i3BWG!79DGUnwbWcf*&Lj@kplh8)`1akJSBpn{m zlh7vOAw3CgA|BL}=Qa@!>q%(C>8e|bq#PdFgK}I=&?A5l#)yaaB(#ZmfKL$;_s~OW z7a|_ylh7vOU_MD!-o4hSU7UDVN>`PxXFX>1WIdjE&p0M3-9YffF5|RVej`xg+-~D{ z`N+DG4zl(bGg?Gk@RnSDE`Uo}eh!LDS$=pz|9+3LjK!wj^5*ccs@U3+B{;B?SxUUW z*JyTmMCD2@G=?*Y8|82&@unQkB;J(d)xn#xclY%+Y8Ln1XH*J^nSIz(5ABx>{H?z9 zY~csSc2T*X{M8U*(e<EFN~}Bp)GAj*oKjg|{UK`6TW?X^K1XyrXgnf@_2(m^bhfDR z5%lz)TiLUVKQj6S#5)7{qC~}ZhY=OK-p-e<9~->`V&y<;-g?An7Z3$^5L@|EDdrBj zlh{s2jT;gF29p)?lq0_W%vd9K4k5TNAAs@U=f>ya@?j)IXrB@g<A?LJ-&e-KfcSm{ zKaYNG^a_ZPqhwXzLN7C-U<2OhE57?XwyO*&%6jB`qlOAe$|?rWH=7nme<Vswx`&!d z-w3^a>?gxS;=GqakvK;N#7TbIi=p3f7Q^-lvgTim>H#tMJ}A=c6UN`7M}kPi;g*4U z6Ny7n{*U;QU&SSUGpYqd-N|n0eSVjvAD+yo@qZZgP!ilv`hCj)O^XkJM!!9cis>wI zsHvNZ-_IDEMd$&_e(O);s(`5YAmyl2+H3wceis!UBB-?351mDeUHf5zisvjjCwWf& zX%zk9W0Z6JALD&d;t`|L(!Kv00nuhUA2=V+dAx%8wrDhiY~7kO$khYpX>puj@kJSC zxqvt~lb@YSm@SZ#XORf$Ia}-uny18?*?ie$n61ItkMa}HdvQQK_Lxyclrvzv4}{FO z#9|34M^-~>pK*a%7!YITlJet{^5>+-`NTp%KTyi791w5+&GVH?sU}LBvl~QRxaI99 z`2ew^DBgY&6PHLUp=fbY8FPk&nEOxjw8r9Ft*YXxibnb3rsd4X1LF4iMwvvBG}Z7# z8t^AhU>wQ<^u&3U8(;&aYRn^^P$co7Crd%-rOk*<;Gok{57R)WrH?ZE3v@cF5RDSf zAhS^q(LiOnQs}0WjdKB;B>kSa1;xYrmXiz$Ck;I8vLSF0PfmxvMLaoOvI|d6m+T@Q zPq>*1v4wFff^0+~@lJ8H+f{26K{TSSMxzKahW(6_3{r&2jT@jt9&%;Wq8^fFaHAf0 zreVAw;Eon8i+Ug%P#aAGb6OUa@L8QnNbVE$;IkC7qaJ>im^KPSa8uGK4<}10JDLKN zWpy#P|I¥ncR9Bbo%tG$fh?$}}XJ1j<w$O#)@AjwXRJRdZX^Z46aMQ-Ctn1C*Iu zTRf-wBvPj8Xc8z>b<_dMN&bLgK`8*>yi7BYA+CCo-Ghd5CL8G~$Vd08W*@oim4>_D zO>Ey^s+oTffrgt?+#A?i4QiOz$|RV-WEMjw*!pvpu<;iD24_1^%luw+eU>0cmO0{F zZF8+SPq6rnI_9eZ@#}N^oK@G{6%ZT$ayRF+`sUmgQ5TIQH>Xlq(?@S}W<?!blF}J; z+&4Bb-zX79@>fO#iql<rk-0cwr%q*ZQ4b8sZR9~KN{xERi0vVtWVc6`bryByNCjS^ zo{f!E#K>E{?ldsB9z2scBU;r1Xi_MNI-pE)%_c7*YQPm2h+{88GnH~;O*2l?r(SG6 zB{nT1j+6Inq2lgnWR4UcEN4X38M=yV*w`E@YONq0X9*|8@fCbs-Gq^^zKUPS?!SoG zYJRQCHa`#p*6{1kj&MKnn&O=t^93<;EqPndfbbGGMNC--iS7OeCzWj@n10;T+*~Hc zuO|tI(_f2gUgp<=nK1EwdFFmmX9GbFT$_rK`Q}Ta{3`^N%|qX?`GyD-6O>jac2NTh zOd<B2X6;Djz9<<rAMOw>+5Cn<w~ih-3Ky0R+)7Tm3%ODz-N9WclaBAQLs9c^ppR(1 zk?M9A(#l5t%~FY|N}HT=HkF4&nfs^*Wtsb^2W5ev(Ik46UtEYNiAf4vWu2tJRc1T| ztuo_L@90s&)o2=Aji$g=ib;X16q5p1WiiQ(Py18gDjjg(YRXtB9P0E~<P?|}*cKvz z7UpDWrKRBH`WEJ_YojhkO%Aq$Q&V@CBS@rHAlEn*l<bA2AZxmhyfiPvQJ$Z2w_N#J zQI#_}^o*PXk>!%_wUs50HARldItmDF-^v^yCT(M3ezuy0{zEHsyV$y&Acyf^i=W<L zQfJPW$1APPEs`2Z!<U<GguX0mYhEahw=wS)r*|Uz&B(Aqwj9leaT%-&b@Wu&&iq^q ze3$Z+VZx2=&G};0djy-ex0;FYrRFqoWEXX)qlJGjH8+ZHcN66NVy7%asmNaJX#Ppn z%BltZnq%I88Hg!PUS{4U%s&7IYEeIX7pRXj{rj?`E;mmOvCGm^*0ar)#mT)!rpch< zl1=oeU^I|AsF--~3Uf#aJfM0bt6=-qL{#NU8(t4?z`&!fs49<wqpp-Hb<R=mpj)xO zB(RrEEeY)9f=y8*lP^sm5H<E0rP{DKT?s@T1x6j=L#mfqoF3$n+TN&xc~VxA7%pwx znlCW3i(k0av;yMh1ClcgFah!9KV$+P-Vdz2`F8W5D0PsaGTs<7(A*@B9AxsE1`+Q^ z3^Jb)(>{V#HM+yRJ}~bvzvkX)UL6pzk16czVDqtnSbl`$95ZH%Jwwf*^FF04r9qr9 z%=|$V9OdJpt}MkBqgYJqhMUFWna@bFcq<uR8ez^8b3V6oWQ!>yp{nb@AV*>p&ARd{ zeyy3sLVSF*`H6VvYl3P8uN?#JE4!0N+p6_rHI#i5V)x-)X73h-E`aft1TR?GOe47@ z3LPku94oSkJI0z{m5}dUP1<117vGOFA5Yi`ldFI!WQuJT1lfps&{A?S51T?$qaOT& zLPkCK$3lsE@K2&L5B^E)<-tFRy(Ij*T|o|_3q8aq7geDL`6S&d^e~@<M)<!?VUdL% z>XR(8(1U&QAfeE~eUe=K@&n|e=Z)q%(c>qkqRv=o!BsuYV`Ba>MtpT?B&u;YnTVQo zjuW2Q%lu7T`3ni}`vrZ|8@<g>#oZ?ezTAf_(@yg1<~;~yU-UIE2yo^l)y5e-9ap2D z87`ThmBaCa)F6mcEzHZhL<&9jgm+}S?a8@w6{IP1=U~5-xl`FBh3qA26`9RSdK42E zsTGYTVoOW-uo!EU6J2gG8zfQ>*zoQ_mB|Ta06k<2W-0WLEtsXy1Gca=978zc3|lMo zU@hDa2hr{q2H63%DXkT^{=u$<HZK%Uon|x<=d(qhd(0oj`ZJ6iG%{P1$%oF)zSmqM z*8WKnb^J1Uf;mQ1_?!J#`aTme^76BMS$q|#$4!Ky7M)`|UN#B(Emr))m-ib}Y{x0) zuVT}`1kpy4@P6~C*eflIl{h|cs`>fjADig+A27=VM7a!pu71$GFd!l&__^;Pvu!}! zAH)VtY5zW-0VnA@&0Hd0G0aNyR<fhpKVr@n7g(fFn%vCk=6KOD#2F0obW^csy17?e zbpc=5%+16XGt8yp&5{IB5}p_3kQv2_$*i<bXPKX5;Ib6MN_zAmSmv+U<}w+hY{U`w zv&GksnkNEyAelgRY|gSp<{UuNq)dV|E?fLN$6PH$Wr9kX`O94MC()uRz4+yElQZ>| z)u;?v9dakkGve#&W~Jgg=bM)Y#JHMfrN{R|>3)C0oGu=#MY`MtEZ*%H<p#v2+9c%g z{t}9)!%v85m?QkU)RWbUW<9&m{EB8_XPsI6<RY`3T<+y|2AhiupD|~}3tg0xT+l8& zN?Fhj`bk+L5pm!db0mk$otJ>(v1$!jxnlJOtCVQ-tU0|zR$)~1Jpwd*xS@$$4AL$1 zL?B>&p@*&I3U+aRkzBzp#4nPI)&cj*z^l+hYQV2T52*o$@NeTRXDC^rCr$xn3Y9da z<YKsCp(jnj)(Smg3Q|_+$x@P%d1np~xI#~mf~poK<tV6KVe-I1Qan#MmvUpFC!He{ zBnY}&Q3{TQo_wx|qbHy%;^=B5)bVVgtBoKet4OLM+1{Q=q6lYFCSh|ICS?+KchABU zp@jaW2qkndMJACG<5C96unRrmNa`>P9qA}#6^LhAKq%C4$iWxPVIr#$3$W)>^Mio+ zRQ_zc%)BK-%x%nC?7PRzDgNdqxniGe!U}Fu4oNa+C7W|zQ&N7g((Ilgp2#L8W)#`Q zQ`fRm#YF7ci$7UsmM$TNHsj|%8_c%?BHWyxhl|bS0ns3rpJJmqCm?F&@w3fq=5qm& zm(R~XUpF5mHq6h3Tg*BcBCCMH*#X(b|86rm-Z)=CGn7H}wQrcK<eRKTQleERD;;*2 zPso_H?djjqx7cj8-!yLy$SA4b6D^kpvx~Rvgn5Xqm~Iz;`j+`fKyHKYkbv)f$J`(T zm~3-Wv6>w{@;&osA^@$K#iMqa3j*TzmNZ6Lmh^bv{8KD#MIj7PK|n0Kgr7_In$HKs zGp+eqwBM|kAr`mc=llca@2HyE^7EO4X1NUU>Fx{%aejFSiMh~KDkV3wiwILTvx7)e zrV$rSs}Gxf+07L`Hs2AI+nZ&?!oA#GY4$7^OsX6)+j<*1QK+&f*%6D)6Nltp^rRv1 zMxiGR$&Kl0?&ZexBq6ykJwZtBOHU4x`_dDG<i3<rkbUSWH>M{A$&Kj<L7+~#F<lu_ z$>)Wx{78t3l{l!>Bmj@Xq{?3IOII8sB^9`$5Fu)Cq#$Vk1N$xXz_r?#9=eu?3%H?j z$dTHZNq8+cW)fbrF$<IMTB4m4cun=Ls-OC(-UZnW)!{;65@pMc>7eYC8MRI9UFm9s zDDJ>=!#wdZ@mNQGVe0UtSbQ1l=-g*!BbIes)CD#bxBNnGjKWULKgaPQ+rWADm*#G9 zacAO`F*ss>Q?cMH^ME+nnGK}m{Iy?$bq`!=RuN@7!Ywy^W8Nzsxr&NrErjvqerFyQ zQ@fCu^UWM_<@e@TF|8|K4}EVwE@pP)!{i^#MPhMxe!<<Fid%j(zYw4FaEqVv6UA@5 zn&#eg%#=o8*N|B;{Fi<<SBY`gl91!nzr@wokp_GFP(T!2PnsuBQ0&kf_}uLz4eoFw zaSB)TKZQ7WVNX7kxzTD`JmpstZF%8MFylqPnH5m`_cANb>qb|8{T(JYsW<t4;1WWE zaNbAZYjeBj28y!suel=cn<n4nM~z>%_nzHhWHT}6VsYQAlh=yZvW@B;st>#>TP%H~ z{Xgf=pD)|5ZuP2FtNzsP%|zC1=dAkk&;Rd&({*wupD!_ccH)2ae=fUibm`gGFWyn- z+}rJkZ@haXrvd*v^878O#oA)*QWo{0nOrJsB7&#Q*TkZ}G)A6(a%pD`PTG_~37-Ko zXHgjaea2iztg<Qr?4pzZ)7+MU12^fgMeO*?d|3>*l@d_UXNy<=Ha`?A2ROYG@1Hg2 zirTjmR0f&Po->Dtf`Qcj*ZWN4!UE2;d;Y_SHXkGh?qBm2QQ-~}D}-m92jSg!CqdLs z+2Z_pn)=;f1za|Y8AFM0lTVHB2CP>^t6>BYymQ5y8P-E$z;KGAW!Yk834()05X=r* z?~8ULNms_Oe#^ivSg9@MU2ew39j4W@Ma*TX9<7VHY&A*iVh(Rj?hLYte@v?nwC-lh zx;@Cd0eRwW%X&BicW&DX&9ImnvSMWrJ(@QgI&Ac<18xH#OOv?X9Lyqc<C6ZA#a+G= zF~pHJ<<0tH;ssXcgk4b@RrCZem}sFb;A1TXyoq_(0P0ql6v?0to=7GssV9<2O6rMZ z&^Gy0xFg^}8Kg*NQ$>hbp_Iv#NCqt{^aMdjS<I8qAXYH|i<7L7fUB~ERK=i?&X+g= zPa`iKxVg{(%ET3WCmDn(mYZ-X9&`y$gYKsY0aq4<HN`x+1=1e#<Q5o8%#&MCj>J5< zg;A65R@?1i1PWc%iBxIGOaIOnP99>86k~IMm@B3!4iIxiG(t4pk<MgF+U~(pslAPP zNK)dom<J^#2Z*I;=4qFQB_#tG6!Xxe<N(rnf!#F80b(AWl(y0_4^T=4Ni2ydX>u%y zC~0!cL6oVBH!7N!vT8}!jBj9<fL$(UUZt$k0b<skF*A#igL7m6eSRfdn5b3OIwNY{ z<48l-m$PPz%kE`^smm%Cm$yC=Z6^>^CxfjkSck+JDZijtepd8M@BvG)u&A7A4HJbE z2@Y=vY<oM?8ZYuDk&Yu>?ip3G9v8tW1e;d2UKEA*^9yRZO<XsXUmV@$h_abnLOfN) zx?PNUfH+QGbH#$H)=Kfjg9MfEsFKX7W(^ga9wLsCn~8EV+m+R=>7tyxCaUx|Rcly7 z=gEtrPt~x5_}~#5rLH55s%dQ(Go};7KAKxxHLWgP!vC9e?)=!czt$<2pZo9s9{ss& z)kzJ`2g)`6{D1Y1S8IFgCG%I5ST<l{?!Vm^ohutW-~Ec44!7@CA#>pQYCoMnzvldT z>xpkh{_#!8Z!-QDDfz$>n;I{iVP;A&n_WDnmIa@Aa3)Prg4UMW)>q=GS@4io>R49< zMDc9COnU&b)~2rYwOH~f!QoFrNc-2b_KOc5qov%1`a*1;1Ji2LKxSDvmo!gbWNi_L zALkbm>kFc`;8&B2t?$J3^I@<L<yuXOdo;2*7GC!RMJQ9cm5r@MV&aps@8e--Gn!bX zI39n>tWvzDsRgF2zJO2Lj$rV8QI5sQ{4EP9vs*Lkn3%eV_I7V>)eU4|;ww+G(bBW3 z*5y)zijo)omM?<)l+L$S$ryE{edknI%ej2(b1~-yntw8EwGW66OZj<u#F~H|(lUO2 z9JM%uUGfr@w`~XvzB*?8DUPk+3wD0knQvZ6Gt}6vZ^78rTSHKd(4m%$P=~ed*PmMP z^{sUT)m^$Wt*uYR4;xt0ZLD2lM=|m0h_`fG*|*6X31g;|BL=jyUKUMWBM7f~Reb$A zzc~NM5jkyGR(Y3N3&q1*h*L&~<vUp4ip|>yW@WkywrxiXea0I!Uzu^9>1e$tGIkJD z;(hRPYneE@gB<0ivfxf!ZtWHmcJft0n18NdYTtf~uSz*kr?YiJ-2M*1X7^Kkk1MUk zBJVvCEA>M7D(e%`cNbs(d>@73wO!bK<=!W#?406Vtu><49)fCcns#Gw9@|S$EyLE` z<ubf#Kcm{ahgCBmrX1iW_T^0jV){W+*~VhmScfvOG*@@yl<Fh%I%}_t!8kTk8kubj z#Koyf2q^DfZ#4^KNJjUqnOO`z%HzhsQ40Edw~;3v=xMzvVxP%5yopsKzW<C)aDBdM z@s3^=;!uMx2+v#s94XVsIwHD#Ny>lwSUm!w_g9pG^?i2nqc^iYCFoQ<eNR7YRy^)f zY>%DCU8<dA=W&O0Cn+MWe6q;OGH|_@&+|ObVTiG($l9DiU(l;H6|dfERe^CsWy86} zAKYsF9Z1-Pc&r+VA9Hme^87yLsy}3=n0M@hupRTHVPx%?Ct>p==E>KH)-mr85y?8{ zDLN3WV^V2hvucWxet&HyL57&8_8>z%*JY<9iF@pnByo?Oq8W*M>=eyN++(Ly68G3C zJ&Swnl%B=&u&A<YrEBuNHz&a9vByCX;bNZV1)(dJD&WOZ1-zIi-~mfwo`8qM6-x?u z43;P073RUJJqZtt67wWHiBY_BE~KrPC*UD##XJE|q8CrTL(+<Q;+;e<o^*$t#iKJ$ z?+~+Mu56bmlJLco?Ie70L_6*|P^%}{AymaYxlW=NPpp&Z#gpnJVDW@H30ORt4geVQ zR4pJo>6$b*ODUtkGV+l%d+b4TF;BN8fsH2z0_I|#7zmh)xl$m|Mb_j_rPR2`l1D8P z<hYsu8|1iJ07A@v%srDLNJBhOl?SMcc}O*nRT%R?tdxjj9#&O&$OEfVAdY!xRpOzT z2Uisw^6+Y2UYPlph}E%FpfMg|Rp`irtP&l?J<KXk1L7WNm9}?r54B49So+^|$^_8G zJ=`kwR&fuw%4-Ez#Xabn4@`@B8n%1{ikPQi<6R^|?hegY+ut^6Ng+OtVLtcoSBlX0 zP&YJT%|!FTV3;>#P?@=XG1wX|2LC{C#uAwSV?&^db$^5^P9AEF35fPT@w4=B3#+n@ z#~_`UwlytYKEjFw#Gs$a1ZT}It~<)Yc&X=c!s>F@_|aB=Kn(na^vbsE_!tY@vZ*Kd zuB-_=kA=0zPx4uvyXOqHE)WyPfzs-oB8j?zPAe_ZZ@e{GwEq<d0B(R)Kl~e66l))O z53GId@1#c6l~X+TUdd#3{6SmSO|Uqe+j^Rmw(FCG^{!ZR25#IG(%x&Lg$eD7Kl!S- z%v+PJy<+8Gl=H<hG}wnH)BCZ169n*N7ymv*GOX!mDYoHM>lvi>bNoE|fQ2%<+&`4T zO-N229<r8*KmQ@q>S<Q9;!7X4t`CSe|0N~i`vYRjd46`9ZjFYgIQ}SpnPJV1^JtvC zD3UzIrMW3Q#i6_@(^^oxb*4lT4+X3;(vqNdabUJp4$h&HdYps3jsH_;*|D3Y%N=_S zLfzw@Bq0g9M+PK8_Y|&@pnFt65_FHjNE+_35olUm${vorKeXPHJ=jTcPx4?R#XZ4; zeH2g19qglcQtn_M#glRednKNfJJ>7n6iqfodeUk_?)tbZb}Kbl+!eW%emb7iWW#{s zDVl6qMRL>2DqI;+ZF6s*scoL3$(BRs67jq$a-Tb#Hf6Td-O`Ezp9a|?V-7I6a*#8c zf9F^W#9#a>UOU&iB>)~!Ht;!1SasLUv+8AJ#FY^|7i;HRKgxhQ;-C41wSlx!tzF#n zNvoC2ShtaxDbPG;7aw}cdJ^?@X$u1r1D){t1s1xZaZ`hiP2uT<a@DzPFuCenUYN4# z9FCaMkEnQik#(>{9D`qZb6>o(*jg{XD`#<h!uZ5JhAdZ_$1Y$taqlQZ%Cm6~%ShTT zA98ibBJ?}%p&3cB;~rO+gg5T7bu|YLUsugDm1##@<b4b{WB|Knh)NY1*hinUCS{2C z<<CY-t=phKnGF22r`WOkUbOxeZSgKs%&te{U%4_r|5<K5lpzlA(>^hHXC*@Ai&gm2 zWtH`DK-^fBpRLvaL`COnBtn;;U0k@%8izt(n#e25iZ9k%bK-HAeJ6+5<>4tq>~Qjw zAubeaUPi5Ss5<+4`UdMA@jwkZymCZ66afT@djJL05%&NJN#aR>!T=@#3j5syDDY_M zqRSq3xj{WlqV|smN~CHa4k{@pQ>Heu_@7s-s9boQA5<*9;#KRbkXT%YCS$i+5|u2g zujh7aS*5sxK~nO@a*O}|%(|{-3Hj6^;2OzCCcp2jwdTUO158LRa_U<(imyLs%`7jP zG@#_#<*;F4e1mrSie*A?SByKzBc*unszP;9vux-FvF2&xV)10zP}2<FpM0lm=;F+< zvy76NVoGz@Kx`@(YO0#`W4TbH5;2?^t*8{LC2H*qR+UAR7T1>#T}%R;7?lq-ZWwpb zR>~CHN|j{M7+X)O7^*E!mJgL|8F$gpm4j{_mDS7M6quaIiQueE{juRwmP9r(R>A@P z_7Q#0l&B-!WClgA3ZaT!d`0m%hn?J}Jz077Hp<F#O3ky;RhILvY3kX1I5(w<t$pRX z?=|4iUX_m{aQm+f<#D@dH$H4Dp2TPUao={dd<Y+y6+<O!_)5c(rRt1aN@C(g?4Ris zL$z{jVuX)6rz{&$;R{TKQ`;JkMZ}?sp`3)n5Sw2*Y|PNnS<#fWna2OF9W;9I0B(fI zT1z%>#~o1nSNEck1IR~lPI%;iySOK-0?D~k5iTpWi*gvA_`PzdLM>l*2i<iYFm5#W z*hHl&p_Z(bh?rhER8`t-46YLDCf=zMIwie5zE(BVNt~||Dpl51^{IUL?W<5N)JlC3 z8>_P9ZmJgQY}#qW-fAIipVAuba4ePC<=~eM8aZk-OTg~iRYe52FnCGzP<z#$Db+(g z>UyQ9oOUV6p5q}^l&`}qmaGxFFk$bPtVUPdHf-2v6wU*h<uzuu)NrN7<`Zj^rPSDP zV^*ELwj1>ySTua}fRRm90k!~`m5e06z1T}OziQBsL8I9sjXDhLFKXw8aL-mFbV2$2 z#_6j8lL6VvJ$y5$2dml>HA2y*&L(Koe-Ldg>OX3*Y?vAjYLjsT+{n0SSu<3vHhEJ& zq*nr5qms(Wj5&jb3?DpT2!*0{UsE%5al&?}dbLx?sG|OPl$d7|RX1|LZA0?p2-(oV zi5)X)z{nv*Ly5NWg%f>O(cm!yh_nfIpOo?Vk5)A5UrqMO&XeABv==n}LX~Oka9N<( zS1VM>l=H`%EBkAOGEF(^yqL@Hsu}sYc3c5*v6$#lJ5;4*zAayAjgaLv8a!(B;6bBC z<07zGezTlN`t-!bh?*fBg4GU{!6b3(MWM<eJW0x`3&g_Op~_wJY@tgPGjz<5TLz45 zmcyepGKEcMWckStvQ-XkNdFL#A7Ca8Llv`AniI7fm@GhRUk?UAoNU4x$6Kr{#HMno zrRU2Q=i9<sT0?mRU4C$uRZ2r~CMiES+av9R>Ve+1{AQ-=0xPXys73?Tmh?9GTb?f` zwziqCTFsl%p^9~RSDk8YeT%Q5G5H}++?N%qlEJIrd38gX22uDflt0Z}eurU!vTjvk zYTcYY<@%?!T%Ayz3-};M26qh<QdRokl!XOl-$kHlsA7l&vcEWkyqHSzWDmn4w=T<1 z4z=_Y*f3P9fh@#VU({D0CQWo!mM4421KbTlnO2_c6u#k9590DS=&x?5qFT>9pKkw_ zUE>L(hM`R9sd06kP*y{`nDi?1^L$leflQV3F<(wHFZ;^kB;9V772+m+{g8$G9NDi7 zRC@i0lSyT_pz|`Rl`osh6G5tvvJhW|g}w?Ey;T*;e&GwpE=6_>s-`+4N0t`Yzh%dG zS(=VnVL1(4$yYhTvc24nx9g>>^m_T6Mj^mNPDjJC_=sD)oH%rqa^k{r;v#b5GDX%! zAtM8mLs^yd6IiQ3sG2Do%zO0ISi3%j_$rL~Dpb@|b~G&e7P0$g$ohEsoBG5_>JU8| zhbmbGvSWxEs$&JRV?0J~2V`UMW2@?<ob);i!oE5c8I%jCK-R+rd^vGA{K;nFS_N|2 zaNnc)#EkV*k+M_RRLe-SK(;h0dejfqZXiqW)fP{y4Xu|=_9R)ca3o9Kd^LJzL{1tn zZp%rF$iBfoRISWcZatb3k=?>PUG*^{+lukt{zjqN_579cF?Akgr5-J#pAlJWp{i9* z*LeyTYZ`@u8APhx6OsKx5n<OP`-i4mbykiBot3rLr<C-*rteH@wdoKwMrGe(s&8Uq z<4{n1P(M`JipojjVy7(GkUIi*!)#u)WJs-|W#yQXGq}}cA?X!5V=HF1L`0|wFH7*8 zxGYm?z0wjFD0*zG2Gc%7R1RA&nD&8(>nX}s3i>|CcH8<v-v?7pQC!ik8r4->QX9-m z<MzCWXIeQ8E`e8MF{>d|<L0Izqg%eMO7xW~2i?{xW;GgKbh`prw&?4I8JRp=Saf4( zJD$@Sx0<!7f`PL$rc*MeNRhINx7lB1zicq+rkDM3gafAp$_l&u&d$X;2-{kHHx~^K zyP(ca!|aBE51(g;D%YeIr>t}`M{8_cd9$5|MHseKLvDH&L)g~BI58CE!YGx8=B5n; zjkWQxlb)s`!m4J}pm@6(>D-f6*toH^Dv_?_*~%&>H9g6*6-rJ7<>01TqG>0BR^~zR z_UD8eVW|2UUCyGEMxzGwA3bQ;P>@hMm8C)(Lv~K4ki+hPjbx<U@eXWAMykQLD^Es7 z@!0?qmxGSS|GZGuz6y1uG(j7Axno>m#+E<jI|#B<acBPHw$7cfy}RPhX5!#WT$meb zY&qj7zG!b%&U4Ce_Ep^0wBx|Z9;mppdr&pmbx2MFz_{%{07f{SM{rUg1vXz>oqZE` zwh3eENW8hW%AIL<&>KH&&QO(k`tRL&qJverncV?W+b!mYjpg`Zx0xR{R^x{a&8pZt zEjbU)D2r7ct;!d91=_<$Kinod(lRmmawKbZ&`NMFCy_$7#_fBD0i%$Dh_q$Pq<}_L zL~PCvWnJWn*xkke#fJ_Um6U3`77ZaNixk0d=;BI_MlP+CsAwAwJ!o+i6dxlIu_qj= z=><-OLr<2-%_|f$3qsAS<|@B040~?Y(5#a3FAlNr%_I&Mgkn|kS3<Alzm%^yn-mvC zLa{1rFs9V^6<)*>OYy4cF8<>qtYv2;R4C0zra<=N+#z6kQj6fXax&?QQ%)IE<IrK` zNzphpj;7~IWpipAzm<0^U!3yGf={nx&nOUyDLpfu!ju{~H66c|*8yLgx>K1NC(Dy^ zb7~yrsUu$}E};gTfVvTrnvmbh$~rZU0+m80HI4$61!`)X%q#c4FHW5ZrpD#R5?s+{ zF{egS;D0qn9ml1n<F``zr^dl?lrPlOI9Z<DfvIu)mg>jcTsi*k!eYa-AJY?(S@{G? z&y0GR-Q<sx{310D0XO$QI;UJqy6I}G91teS7~DuV4uthYJXDW1qIUCDn8#&Xc>v?f zlP@VtY8>gL;g=RC)$*z7a8IZ1)cNA%xwcxPsiUN<6H*gGA#?o&qOswfg!D>eoFo>h zd1ah`t<dOPse!fAC2Xodq`JbNo*D1H5LI7XSQ=FL;*?XQ^f+jXZxr&dWs}S*EnPeA z$^J(r>MD6!LNfb%T!2|466u$dAvL~oai6E|q@@;t$G|+P7D<caAVcaGQ{(cmmh;av z_$yZ)P^G5>(K-W}aMwAVRCgp&6Xxe}GVNbt*o$hjim|8UYredSMf&3;_(_RN<Wfnl zJX}eMlyU0VCM^zUHuC(=7pL3+`{I<3EMJ_u;^~XS)({T`zDN!V{BhhH^9^A>&TOQ5 zJv}dE#<%Q9ryN%J(y8kwDlXx0HxkAqs7X(Vxv96{?e)&~&XY%2zI5s#s<gPgxH{4F z#X-x`^Cno@Xvoqd@iwgt@l!KHSk!TDY8-j<{f)tMGTc4AJUDZ%RK};}MVSTA5Vv&> zl}SJ-qyUok9hXY-Y}y~E2sDxIx}^b1T1ZcadkJkOFiP=l7}~GAQl#@+{QgKyXnKLz z$7peYA%7h1JG6@N{NW$<d>nwt^BAWNo8J<tF5)|piU*^zQ1^$^<FIA%_YPMfQc_7x zhmY=DKZ6Kk`r%)r;aGxOVR}!L&y%zQq5JYwFf|SiVe?EPy(z)k%FnrAd+ITe)Vye0 zAm5ai%5ND31v1kU<|-5M^f-=elS62a7QSkvgqNNUhwHvZ=fg=-8>r@=$UJRJ<E}!U zN2C{sKV<)|#A$|9`TNo-gKS@%Iu=cjizKAMjxRF~%Cw4kYQ?ux8A5%i;Y{)%G_?}k zbt`{mX>nXevPXgbyK~1oBI=5ITEYnTYxM>yPw#2z3JUen!VFIeCaLLI3!G)7#L4j| zQn^d_C4}gtB(&2hkA%K-+Uln~<)<et9hmPwMmm=8OB4BcxA4Oc;*?21dVw5<YdeQ? zWq*&kfu6G8?ZwKCaEDvt62oN!2nzCmGOZFWglqH8wQzZo>r1EZefr{*{a$(;*e|Wo zjDJ2?LH(pWA0fj}EYMx%Y9oWRB#+WlD?zWK{Bx$o!9t`GAU!UxAeQjYF$~v_F;HJ> zvKAOo39G3E%5?Hn+ZU%i0j9<w26|i313^$T^(a7ULJHI*1sSK2U~a-oeTpxyCi0M1 z*}$fx0|arWUE5;BNo`b0LOD(B6g^JrPJHQj+fj?l*9aGvgA2pmwS>GWr^or(I<u+K z0Q8ukQ1Nc(Q2hkA4*mRx_N(iX>21Ytf;M9;daVhNAwQ8Vlr!OPDxD%uQT61;0<fhm zdb#GgcdTuqLiP4TdIP!Ws|_&gTN_{~YH}$%T)mK6ntJb)_W@re>I$VV4zm!gcQL8u z@}*O@OX+b5Hiy=`Sgytlxn(I&iPJN43rOo7mw1xBb7&ZRS?e4&qZ(J|ex_e5!b;Gk z2I4eE$|YWXV`1{FO($}GN{26#J(9~!-&iqa7VYb?vhwrC#q-68D?$}7(K-na`;R!k zw8TLNcC%tTMI^LI!#Ysw0&1O<F4#T5@KM|Hl2G~Q47{h!8EOtEu1s<(fY^A$u+x8b zOW9<nj{@jj+jeMLIoYC!9{w)C{QSalJ}Xhf@?5ghfB|uwQdR048e7R<Blqh#2zjP6 z1F6@j?z5#en%fB4&OuL=)E_wF6ckLJ{-@{V;+uaUxzOO!SdUvE0jkIE(leub@b41F zR9Z&)(kVB~{y2@sB8*7us+4qa3j`0pGDF7sQ6F*2Vml?X%&UyZ{c-Lx@m2|&Q=S>5 zrbF+Q8;fVAN9IH1xr{oZ3p3+il5A#uj`76jU(Vb`(3U-$S(De;w%S(UiiE2^NSPVL zHEmjv|Fi}o=jw6F(OqiCVIAs{Oj;cF_P&{BX4op)dgAs<3R|!VCwEJ<&Ck5(y95=0 zpCEt~v=PL>KbKdP(xwaSoGN9y6)RiO^q!#n@h^A`x%Eb4rlU0`j9%QS*HdOdO8+CF zGO<gq82;;Kb`daE(wZ=et+XFF=Er%XD}7_+COBTr)9^U@U`?}vDnsuv>P26HEO=d! z04SCxEa@HL;fy?=PL#%|TQ%tkVR>4QK@z^528>efh12um=+nP*Xkb#A@90E1G3Ie` ze+!WcwMwFznkOH~sp*_pF+Q~&3mwIlpGI?TqHevUw;FiiPly<xt#r->H9*BW_p7Nn zxz^~CjFZ!zj`&c3>DvUWacyMe=}h`)p-0t5fjE}BmQH!`b~<b$KB<IF6L0y7w1Hsf z&&)xUuQ8-k?+~PpAaVau9_!af;KHnb^=MprX7n0b#rf)9b$Yrmq}|^@!~m_wXb5~1 zQ&Ip$1Nu;+%Re~O*A&mh<@?XUh*J;Mq&Eh<tyLnv93WW?$``FaY#^Vo5YA;{v{^+P ztMvyZh*lMDZGB4?wVrweH*JX#34`+w8g2&l0v%0D>iFQAOv{T3UXR0Vt5=7+#Mo$B z@3`@=^^V(IK61l6YdQ<!)D8XgNnoQTD^}ctB?dLsh96?3wHo@M4Pjhkz+tw9U!EmS zJ<yZZ7*r*S1j+IDmKa(oKbMCz>r0G_1=?Cb1?A@y<kfVUP-et>Z}>}!Pp%JL;76b& z(lock`NjNPj94HI$--n0iBq;e>AmHtWdDd_u<q^&59hG#b2YUudJ;cyBAt5tCA|_} zQ}VADV7f-SIGppHDkW$&3YC;$v3tT{p;jPDGp)xkRsY&R5v;8%BztY~@=Sa|p%3S9 zu%`t6^xh#0`d2S>)GxsTR3MQ4DS;JfdEq8*Iv3|)f<%$N%pBJHH5a5)4$adV$e?-! zI@pJFFfD(1dHMcx<wTf8>1US2X*$L*$3=eC3UL}ZBTlCijHx!o>@C>N#j+#GZHNZi zf4V~q<dR2|q1al7c&^+(x>WB6eH5WCYNuDl6RG}<f#IuP7RJuYgVM>(!Z`Zz6A6{K z*7Qm^7V@(~6z#rEzzG6Y0RHuk8K(~<G$$d_n!9$qsmA-4))VAkZrAnJC8;nHh+jg2 zZs;HdSS+t-r}qbdqg91M+P`w)<L>t8?9o_woJOEw7k&`Sp*gvI6+_!t1lwhQ{M`@d zX=WN>R-s#evU+Td{R@b}(8xLU`+;4Uf3A)wKUpA0ME=zmhU;o^V$uz?8v#YHi`Sw2 z^ozqSZKI*y(bM5S-#-^&Y#6k;h$`<o>2QOlYl{FmSHo?b_Gq|`*NOcH1{hIcGT@&x zq^e|N9Js;TzuK1N)n8ZcP7W@HdH#Xqp<gYXgogeV!Q;Mqx<qdBsNCH-Xd5)Xh0aAA z1>W2BAE7bP$}dsc_9%cxYK_jfHN$CegNJnes>Co4==yB~z|5Mqi#Sd9M4WmwCcQDt zQ%Ymh{KHS+DZY7v{raU<(y15L(hG#k`w<|?Jel1aRURGlFU*2SLKBy;+xw3x;ixUS zXl$s+Ba<37Mwg|LY7W~q0R{MPFJSubEiO9ZH^jnD0Rh-QGPpg{8iS*Vlwp-41ZjeM z`}3maNgZi9{v<5Wn3L2DXcc2RlA77htLYc9m4Qq6Du!SAxjgBj32g|OVGSBWB2zJ{ z>K#YL+N#EA&2QWi2Ha^=$J=yH1Cu9{B-D<$iBm3DWQE=|A&dDGme_u99OxezPH{DK zCl$15)5Q1#g>(H!qQq$ypu|ZXjBHCvV+u5d1n7g?X#R8*s5OvxuQa{|jndd5hDjQp z#WYVtau8sR&F~DCCMUr*+-XmO7i>HAVU?zw{+{6W#J?~BpZ^i3>4=c*{p1^@4@}Y2 zBRpB7Q9|NeZtJZD4o>|_BFa<lZqlYnf-C=4#Ihk0@gse>r{BJYlVauM+gG5bsRY~T z@PY?qw1o-Y@c_Js^m$xJBez(orV$HTfbJ557~hltqc!{$<>7KYopJ<|+L1)~zl=H1 zI%p&l>jaJJ@t%e>U{5VD%(=A>pwejk+xvG8FJZ7f75_<YCyaVEWXv65Jq}|+|00wY z#{MnFTM!zN!asj<M>rbIFjAk!%W=K0EiTkXe)W48@A}%}!jHZtKk;sWCXgjqS{kvy zS-d86%kz8xRs^kSSX`P}_=yiAtzlOLP|2|BrOh2qv;C*7T#L)Q6P$`wwkF16j;KvF zyjHIZCA@#O@GY(lI2s*I^@rPHIfH7Qc-tP>t4%9zhP5?|Utn$B;pJDKRnC3<O9uy{ zDU;yfRP1W?%yH#wG;JW!q-g6CxlQBB96D<HIB2+@H^C_QrxjKPCzAChHxLdqHNpwd z*EldJ)vq*%H7b|OzVdARBgfwxe%xegLk%X<z!SCw8e`?WP+K3IrKVz1*#J)X!>K1X zYW|7T$vu*y#-o6^DRXDTMGj}RwSeb2jiumiP48S3jfghXU`;>D!e~IF#By!<SHCnQ z@Gm&*s5I_PoUJaS|H<J8r}~*0uF^F20qN5SA{$YI4KQ?#vSYxIHVSh5nGjve%moRJ z_>s(i%pAt1L|?49ZSapOXOtSX$GBIspu^Bq?=fIegA&+^YQv8ypeDb{e)xG5=bMf= zk%Ck41*HkeQfcjHgz|LAPq7(4ZATyvYilcB;K(QLv@`x;JTd7NV=L-c6~L#p)gLe5 z+MAD7;L|8|i>Ymg9IlBSSX|}G_n(Hs2DDCMd*t5)(xTYE;L#9isxfro8bC+p|BpD& zpdblX5rs5<1bfxayEygJ_@+F#^Al5$sh$`2VCfwJu1dX@Hm&+$L;=I;XT-#543oG5 z|IQ^Y<`-kpa^%KwNG4~=BL!0R;n(aCr&+}nU`gQLX~gN5mN1X;i?OH%k~Xa_T$TD2 zSA=ls5^<WwkvQdbI=#`1p>NHw-1GewaKvfmTh)owj+9aCV23XH3=dtzdz8M3<)eLe zm^N$>P^|@61^B2ca-n)TDZTaRI(<8iGZJvQoSGCeEe}roG=Vq`fy+Bbe(g4K>MiB; ziY1-)&p(nx>I#))8uLQ+-bh+zdBf7TYL%MHx1WhqZoSj<a;oGXRg|HAc@`B}J{RkJ zErj~|O_Q*k(hVWd<oZz$rWRZo@|TA)UTZW0x81oUnFdm5WR*)>+J!OVG;`hpeBJmt zB5`SeM2-+~>ebKWXfggoYS%WTR!|=qT)Aqa1*Ow^2Nm)!OwJMgSP~g9p96Z|aLG$B z{?&>)(vJ(^ESmT!xs67_<T;LiN^qLu#(DI)0R5&mpEx+tdIxh(w-sju^U+887b{|o zwvOb%O!_uXkQrj2^_V*;TC3S%{^92~jNU-b>eDNs4kU9u4$<6CpV7nl?~9OG-6l^i z8rfqGaI_wSz_gC=V2aieAg7zxqtCdh(Du7L)$lJQ5P<*q1HG?yNXUtAzTOdpdfx~p z<k7Ikx?mvwqZ=egXpL{N%A+7(fuz&!7fACcug8vhnK&t3N&1(<9=WxqwOSs?`bU8? zKfnCPIiPl*lQ>Q3MqKKYI9JIzI`iA1piqP|h)2hPqO^{~KHMqvIt01V1_Q?6Uw51k z_=RRvjoS5L&H|LcFUKdjOHrKqL9aYC&}fx3nbR7>B`5#-M9}nKbwRc5C%WuXc^s=1 zh{cy4r#xAw&njAQKb_-n%r6CkZZv_4IJ7$cU5aqxm%<AWQ~mM^ajY``n#BmuPq8_< z@+*JHi_qcZ^>!&(O<N`sZ}}^csK-Cl5_IV4H0uhig|Qb)Z*+o4&0c^wP4N%7kUpB_ z=qE9!q_F-C1Od}n1zXZDj3IT&5%ld+xioz(B%!9cDS#_zxRHb!$-v%AqkRYlNlD*P z`f-}YKK1twm4G(XT(R|UPb34s2uZ!@BK+lXFWBF?1lHBsLSlwBP7T)8a0sSLei0H? zuXeaYoO)R<ed;)oqQh$ZJ=k8rs`j@~-n!IA0g=l;S`k=}Ppp)nU0WaU<P<hzE7M4* zxn_WF<@t}oh=a!ZhLy4MtHw#E-gZgrF{e-3nu#O;B3gm4WvwTiK56NsO^&}Y^7K`U zQ*SY+HwF=2l5aWw-tb4*J6a{^x%>+$!f~P&C%f#g7{#7TXk1<riFgM-vR*a++{V+? z(FI^4jS_NSMsFaBb*<4-9qn%nri%Wx6)8-p7Y)*fhNYloMpNkDb{M~FKuI3>_|tLV zqb*E%l~r+1`tJ>Ylv|;CX7!+NS_2U#G_(#0&?`Z;;NLk6YMQuNi;@d~keVP9g%cHu z@)M=L-8Yh)=lHcmkQ-W{rPJ(gAcvr5e>xNgdYpGKRWCU}QSBOyyo+3jTf|AUQ>&i? z4L?L-Cul2(Qyq=mNwDnSN9dCLN6G~(J{R&Np$uLv{AW@4x=?=L(<TyIY`=yJYXD7) zMI1^v-=NVq-{b;ixM`;mbKtxN)VKq$HINIP+Ggb*p{COTPiW*0okKK!tG|VCXFrkV zy-`;_^JW#<LfczXC+(*uJXVVr#Yxg<k$<)DQl#D{^xs<bjHG{7IhgTj))+?)SG2s4 z1t)KErWsm|Iq_PXrbXkOHmza~W;Eu69#k72DO0771v8C4T~C;=OXAW^il0Y7ytP@y zyv~1^2;)`$!qS#3M=&v7@sM#z!iCFpO)iycNdJa}V5VvEDT7+IyNKW;&AOX7)OSw3 z9%$umg*M0dTJvoTD&fG=Kko>ZdXKRx^=~w6TKocgf&w*D7q|;zTKdQk2W8aa)Z6K) zBS<=J6y)IRdGTf(@qtzeeEejDI1M2Y$2j;KqhFiCWJklI#6^-4mIGR)ZI7Sm6Q?P~ zh*K}-r1uyS>0@?Cg_@uv<NUNQVn}<`xY#@+R5O8HQ_1F6<33xuV}mY8cjTRh-Zo4I zDPILUWc6y*{<2H+^DoVhT^70YGKge2zawWX`Ry?=DhywWYn0Ym|NkU?vRbz;Icjv# a$kF3Q4!Er(ZHrtGkCwdXqK@4zEBSv4g-S#K diff --git a/src/plugins/e-acsl/doc/userman/provides.tex b/src/plugins/e-acsl/doc/userman/provides.tex index 8f3eb0c3927..65643aa020f 100644 --- a/src/plugins/e-acsl/doc/userman/provides.tex +++ b/src/plugins/e-acsl/doc/userman/provides.tex @@ -3,25 +3,32 @@ This chapter is the core of this manual and describes how to use the plug-in. First, Section~\ref{sec:run} shows how to run the plug-in on a trivial example and how to execute the generated code with a standard \C compiler to -detect invalid annotations at runtime. Then, Section~\ref{sec:custom} introduces -how to customize the plug-in. Next, Section~\ref{sec:exec} provides additional -details on the execution of the generated code. Section~\ref{sec:rte} explains -how the plug-in handles potential runtime errors in the generated code, while -Section~\ref{sec:incomplete} focus on how to deal with incomplete programs, -\emph{i.e.} in which some functions have no body or in which there are no main -function. After, Section~\ref{sec:combine} explains how to combine the plug-in -with other plug-ins of \framac. Finally, Section~\ref{sec:verbose} details the -verbosing policy of the plug-in. +detect invalid annotations at runtime. Then, Section~\ref{sec:exec} provides +additional details on the execution of the generated code. Section~\ref{sec:rte} +explains how the plug-in handles potential runtime errors in the generated +code. Next, Section~\ref{sec:incomplete} focus on how to deal with incomplete +programs, \emph{i.e.} in which some functions have no body or in which there are +no main function. After, Section~\ref{sec:combine} explains how to combine the +plug-in with other plug-ins of \framac. Finally, Section~\ref{sec:custom} +introduces how to customize the plug-in, while Section~\ref{sec:verbose} details +the verbosing policy of the plug-in. \section{Simple Example} \label{sec:run} -The main option of the plug-in is \optiondef{-}{e-acsl}. Consider the following -program. +This Section is a mini-tutorial which explains from scratch how to detect at +runtime that an \eacsl annotation is violated thanks to the use of the plug-in. + +\subsection{Running \eacsl} + +Consider the following simple program in which the first assertion is valid +while the second one is not. \listingname{first.i} \cinput{examples/first.i} -Running \eacsl on this file is then pretty simple: + +Running \eacsl on this file just consists in adding the option +\optiondef{-}{e-acsl} to the \framac command line: \begin{shell} \$ frama-c -e-acsl first.i [kernel] preprocessing with <...> share/frama-c/e-acsl/e_acsl_gmp_types.h @@ -42,7 +49,7 @@ Section~\ref{sec:exec}. Then \eacsl takes the annotated \C code as input and translates it into a new \framac project named \texttt{e-acsl}\footnote{The notion of \emph{project} is explained in Section 8.1 of the \framac user - manual~\cite{userman}.}. By default, the option \optionuse{-}{eacsl} does + manual~\cite{userman}.}. By default, the option \optionuse{-}{e-acsl} does nothing more. It is however possible to have a look at the generated code on the \framac GUI. It is also possible through the command line thanks to the kernel options \optionuse{-}{then-on} and \optionuse{-}{print}: @@ -107,7 +114,6 @@ int main(void) /*@ assert x == 1; */ e_acsl_assert(x == 1,(char *)"Assertion",(char *)"main",(char *)"x == 1",4); __retres = 0; - __clean(); return __retres; } \end{shell} @@ -117,27 +123,28 @@ constant declarations and global \acsl annotations that are not in the initial file \texttt{first.i}. That is a part of the included \eacsl library. You can safely ignore it right now. The translated \texttt{main} function of \texttt{first.i} is displayed at the end. Two lines have been added. The first -one is just after the unique \eacsl annotation. +one is just after the first \eacsl annotation, while the second one is just +after the second one. \begin{ccode} /*@ assert x == 0; */ e_acsl_assert(x == 0,(char *)"Assertion",(char *)"main",(char *)"x == 0",3); + /*@ assert x == 1; */ + e_acsl_assert(x == 1,(char *)"Assertion",(char *)"main",(char *)"x == 1",4); \end{ccode} -It is a function call to \texttt{e\_acsl\_assert}\codeidx{e\_acsl\_assert} from -the \eacsl library. This call performs the dynamic verification that the -corresponding assertion is valid. More precisely, it checks that its first -argument (here \texttt{x == 0} corresponding to the annotation) is not equal to -0 and fails otherwise. The extra arguments are only used to display nice user -feedback as shown later in Section~\ref{sec:exec}. +They are function calls to \texttt{e\_acsl\_assert}\codeidx{e\_acsl\_assert} +which is defined in the \eacsl library. Each call performs the dynamic +verification that the corresponding assertion is valid. More precisely, it +checks that its first argument (here \texttt{x == 0} or \texttt{x == 1} +corresponding to the annotations) is not equal to 0 and fails otherwise. The +extra arguments are only used to display nice user feedback as shown later in +Section~\ref{sec:exec}. -The second additional line is the call to \texttt{\_\_clean}\codeidx{\_\_clean} -(once again from the \eacsl library) just before the \texttt{return} -statement. This call is required to clean potential extra allocations done by -the \eacsl library (actually none in this example). +\subsection{Executing the generated code} By using the option \optionuse{-}{ocode} of \framac, we can redirect the -generate code into a \C file as follows. +generated code into a \C file as follows. \begin{shell} \$ frama-c -e-acsl first.i -then-on e-acsl -print -ocode monitored_first.i @@ -152,21 +159,12 @@ The failing predicate is: x == 1. \end{shell} -\section{Customizing the Plug-in} -\label{sec:custom} - -\begin{itemize} -\item -e-acsl-project -\item -e-acsl-check -\item -eacsl-share -\end{itemize} - \section{Execution Environment of the Generated Code} \label{sec:exec} \begin{itemize} \item takes care of architecture (32, 64 bits) -\item memory model (linking issue) +\item memory model (linking issue)~\cite{rv13} \item GMP (linking issue) \item customizing e\_acsl\_assert \end{itemize} @@ -194,6 +192,15 @@ x == 1. \item -e-acsl-prepare \end{itemize} +\section{Customizing the Plug-in} +\label{sec:custom} + +\begin{itemize} +\item -e-acsl-project +\item -e-acsl-check +\item -eacsl-share +\end{itemize} + \section{Verbosing Policy} \label{sec:verbose} diff --git a/src/plugins/e-acsl/pre_analysis.ml b/src/plugins/e-acsl/pre_analysis.ml index 3fa1ed3f482..4289d1aeb32 100644 --- a/src/plugins/e-acsl/pre_analysis.ml +++ b/src/plugins/e-acsl/pre_analysis.ml @@ -57,10 +57,12 @@ module Env: sig val add_init: kernel_function -> Varinfo.Hptset.t option -> unit val mem_init: kernel_function -> Varinfo.Hptset.t option -> bool val find: kernel_function -> Varinfo.Hptset.t option Stmt.Hashtbl.t - module StartData: Dataflow.StmtStartData with type data = Varinfo.Hptset.t option + module StartData: + Dataflow.StmtStartData with type data = Varinfo.Hptset.t option val is_consolidated: unit -> bool val consolidate: Varinfo.Hptset.t -> unit val consolidated_mem: varinfo -> bool + val is_empty: unit -> bool end = struct let current_kf = ref (Kernel_function.dummy ()) @@ -128,6 +130,20 @@ end = struct let is_consolidated () = !is_consolidated_ref + let is_empty () = + try + Kernel_function.Hashtbl.iter + (fun _ h -> + Stmt.Hashtbl.iter + (fun _ set -> match set with + | None -> () + | Some s -> if not (Varinfo.Hptset.is_empty s) then raise Exit) + h) + tbl; + true + with Exit -> + false + let clear () = Kernel_function.Hashtbl.clear tbl; consolidated_set := Varinfo.Hptset.empty; @@ -657,6 +673,8 @@ let old_must_model_vi bhv ?kf ?stmt vi = Options.Full_mmodel.get () || must_model_vi ?kf ?stmt (Cil.get_original_varinfo bhv vi) +let use_model () = not (Env.is_empty ()) + (* Local Variables: compile-command: "make" diff --git a/src/plugins/e-acsl/pre_analysis.mli b/src/plugins/e-acsl/pre_analysis.mli index c8f415f9c37..c7b016026d8 100644 --- a/src/plugins/e-acsl/pre_analysis.mli +++ b/src/plugins/e-acsl/pre_analysis.mli @@ -31,6 +31,9 @@ val init_mpz: unit -> unit val reset: unit -> unit (** Must be called to redo the analysis *) +val use_model: unit -> bool +(** Is one variable monitored (at least)? *) + val must_model_vi: ?kf:kernel_function -> ?stmt:stmt -> varinfo -> bool (** [must_model_vi ?kf ?stmt vi] returns [true] if the varinfo [vi] at the given [stmt] in the given function [kf] must be tracked by the memory model diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/arith.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/arith.1.res.oracle index b300b4a90b0..1279d95f8e5 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/arith.1.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/arith.1.res.oracle @@ -76,8 +76,6 @@ tests/e-acsl-runtime/arith.i:29:[value] Assertion got status valid. tests/e-acsl-runtime/arith.i:30:[value] Assertion got status valid. tests/e-acsl-runtime/arith.i:32:[value] Assertion got status valid. tests/e-acsl-runtime/arith.i:33:[value] Assertion got status valid. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/arith.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/arith.res.oracle index 41c2bc784f5..8e73c531969 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/arith.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/arith.res.oracle @@ -34,8 +34,6 @@ tests/e-acsl-runtime/arith.i:29:[value] Assertion got status valid. tests/e-acsl-runtime/arith.i:30:[value] Assertion got status valid. tests/e-acsl-runtime/arith.i:32:[value] Assertion got status valid. tests/e-acsl-runtime/arith.i:33:[value] Assertion got status valid. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/array.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/array.1.res.oracle index 9215287caed..cc1a00b9e52 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/array.1.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/array.1.res.oracle @@ -22,8 +22,6 @@ tests/e-acsl-runtime/array.i:15:[value] Assertion got status unknown. [value] using specification for function e_acsl_assert share/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status unknown. tests/e-acsl-runtime/array.i:16:[value] Assertion got status unknown. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/array.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/array.res.oracle index 433107f15d9..11d57291c45 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/array.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/array.res.oracle @@ -31,8 +31,6 @@ share/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status [value] using specification for function __gmpz_clear share/e-acsl/e_acsl_gmp.h:105:[value] Function __gmpz_clear: precondition got status valid. tests/e-acsl-runtime/array.i:16:[value] Assertion got status unknown. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/bts1398.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/bts1398.1.res.oracle index 7dfd9be7ba8..6b4160ab4f5 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/bts1398.1.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/bts1398.1.res.oracle @@ -52,8 +52,6 @@ [value] using specification for function __full_init [value] using specification for function __literal_string [value] using specification for function printf -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/bts1398.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/bts1398.res.oracle index 7dfd9be7ba8..6b4160ab4f5 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/bts1398.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/bts1398.res.oracle @@ -52,8 +52,6 @@ [value] using specification for function __full_init [value] using specification for function __literal_string [value] using specification for function printf -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/cast.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/cast.1.res.oracle index 82cc5bc5290..a1a3020c004 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/cast.1.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/cast.1.res.oracle @@ -22,8 +22,6 @@ tests/e-acsl-runtime/cast.i:15:[value] Assertion got status valid. tests/e-acsl-runtime/cast.i:16:[value] Assertion got status valid. tests/e-acsl-runtime/cast.i:19:[value] Assertion got status valid. tests/e-acsl-runtime/cast.i:20:[value] Assertion got status valid. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/cast.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/cast.res.oracle index 9127149ae57..8f2c5529f0b 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/cast.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/cast.res.oracle @@ -43,8 +43,6 @@ share/e-acsl/e_acsl_gmp.h:73:[value] Function __gmpz_init_set_str: postcondition [value] using specification for function __gmpz_get_ui share/e-acsl/e_acsl_gmp.h:185:[value] Function __gmpz_get_ui: precondition got status valid. tests/e-acsl-runtime/cast.i:20:[value] Assertion got status valid. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/comparison.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/comparison.1.res.oracle index 093118660c1..a12c59b85ff 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/comparison.1.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/comparison.1.res.oracle @@ -52,8 +52,6 @@ tests/e-acsl-runtime/comparison.i:26:[value] Assertion got status valid. tests/e-acsl-runtime/comparison.i:27:[value] Assertion got status valid. tests/e-acsl-runtime/comparison.i:28:[value] Assertion got status valid. tests/e-acsl-runtime/comparison.i:29:[value] Assertion got status valid. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/comparison.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/comparison.res.oracle index 75f4fda28ab..fd74490b3a8 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/comparison.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/comparison.res.oracle @@ -36,8 +36,6 @@ tests/e-acsl-runtime/comparison.i:26:[value] Assertion got status valid. tests/e-acsl-runtime/comparison.i:27:[value] Assertion got status valid. tests/e-acsl-runtime/comparison.i:28:[value] Assertion got status valid. tests/e-acsl-runtime/comparison.i:29:[value] Assertion got status valid. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/false.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/false.1.res.oracle index 98a5da439f0..a00d94a5c13 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/false.1.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/false.1.res.oracle @@ -14,8 +14,6 @@ __fc_rand_max ∈ {32767} __fc_heap_status ∈ [--..--] __memory_size ∈ [--..--] -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/false.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/false.res.oracle index 98a5da439f0..a00d94a5c13 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/false.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/false.res.oracle @@ -14,8 +14,6 @@ __fc_rand_max ∈ {32767} __fc_heap_status ∈ [--..--] __memory_size ∈ [--..--] -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/function_contract.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/function_contract.1.res.oracle index 6efc09c45f9..f344f86c77a 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/function_contract.1.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/function_contract.1.res.oracle @@ -79,8 +79,6 @@ tests/e-acsl-runtime/function_contract.i:71:[value] Function n, behavior b1: pos tests/e-acsl-runtime/function_contract.i:74:[value] Function n, behavior b2: assumes got status invalid; postcondition not evaluated. tests/e-acsl-runtime/function_contract.i:71:[value] Function __e_acsl_n, behavior b1: postcondition got status valid. tests/e-acsl-runtime/function_contract.i:74:[value] Function __e_acsl_n, behavior b2: assumes got status invalid; postcondition not evaluated. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function f: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/function_contract.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/function_contract.res.oracle index 38c24c42cda..4095e8e8f24 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/function_contract.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/function_contract.res.oracle @@ -63,8 +63,6 @@ tests/e-acsl-runtime/function_contract.i:71:[value] Function n, behavior b1: pos tests/e-acsl-runtime/function_contract.i:74:[value] Function n, behavior b2: assumes got status invalid; postcondition not evaluated. tests/e-acsl-runtime/function_contract.i:71:[value] Function __e_acsl_n, behavior b1: postcondition got status valid. tests/e-acsl-runtime/function_contract.i:74:[value] Function __e_acsl_n, behavior b2: assumes got status invalid; postcondition not evaluated. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function f: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_arith.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_arith.c index 32c909ea768..f81cd5c4507 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_arith.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_arith.c @@ -30,8 +30,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -104,7 +102,6 @@ int main(void) e_acsl_assert(4 / y == 2,(char *)"Assertion",(char *)"main", (char *)"4/y == 2",33); __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_arith2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_arith2.c index 7951ab45651..db6551fc4c8 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_arith2.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_arith2.c @@ -134,8 +134,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -702,7 +700,6 @@ int main(void) __gmpz_clear(__e_acsl_56); } __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_array.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_array.c index 2cb5a1becaa..6d7334bb1b3 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_array.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_array.c @@ -30,8 +30,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -66,7 +64,6 @@ int main(void) e_acsl_assert(T1[1] != T2[1],(char *)"Assertion",(char *)"main", (char *)"T1[1] != T2[1]",16); __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_array2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_array2.c index 733f2aed30c..0824b1835fc 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_array2.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_array2.c @@ -50,8 +50,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -108,7 +106,6 @@ int main(void) __gmpz_clear(__e_acsl_4); } __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_bts1398.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_bts1398.c index 0fb8963aa8e..73315d42186 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_bts1398.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_bts1398.c @@ -69,8 +69,6 @@ extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); /*@ assigns \nothing; */ extern __attribute__((__FC_BUILTIN__)) void __literal_string(void *ptr); -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -101,7 +99,6 @@ int main(void) __literal_string((void *)__e_acsl_literal_string); printf(__e_acsl_literal_string,x,t[0],t[i]); __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_bts13982.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_bts13982.c index 0fb8963aa8e..73315d42186 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_bts13982.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_bts13982.c @@ -69,8 +69,6 @@ extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); /*@ assigns \nothing; */ extern __attribute__((__FC_BUILTIN__)) void __literal_string(void *ptr); -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -101,7 +99,6 @@ int main(void) __literal_string((void *)__e_acsl_literal_string); printf(__e_acsl_literal_string,x,t[0],t[i]); __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_cast.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_cast.c index 9904c081be8..8e08c6a542f 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_cast.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_cast.c @@ -30,8 +30,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -67,7 +65,6 @@ int main(void) (char *)"(unsigned int)y != (unsigned int)0xfffffffffffffff", 20); __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_cast2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_cast2.c index c13552cebb9..678d661b508 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_cast2.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_cast2.c @@ -75,8 +75,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -187,7 +185,6 @@ int main(void) __gmpz_clear(__e_acsl_cast_8); } __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_comparison.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_comparison.c index 10a9ae302de..c7b845b7b87 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_comparison.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_comparison.c @@ -40,8 +40,6 @@ extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); /*@ assigns \nothing; */ extern __attribute__((__FC_BUILTIN__)) void __literal_string(void *ptr); -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -112,7 +110,6 @@ int main(void) e_acsl_assert(1 != -2,(char *)"Assertion",(char *)"main",(char *)"1 != -2", 29); __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_comparison2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_comparison2.c index 2dd28772e46..e058ae1281c 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_comparison2.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_comparison2.c @@ -75,8 +75,6 @@ extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); /*@ assigns \nothing; */ extern __attribute__((__FC_BUILTIN__)) void __literal_string(void *ptr); -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -343,7 +341,6 @@ int main(void) __gmpz_clear(__e_acsl_neg_6); } __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_false.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_false.c index e760f254d26..8f4a9de6f63 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_false.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_false.c @@ -30,8 +30,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -47,7 +45,6 @@ int main(void) /*@ assert \false; */ e_acsl_assert(0,(char *)"Assertion",(char *)"main",(char *)"\\false",8); __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_false2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_false2.c index e760f254d26..8f4a9de6f63 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_false2.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_false2.c @@ -30,8 +30,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -47,7 +45,6 @@ int main(void) /*@ assert \false; */ e_acsl_assert(0,(char *)"Assertion",(char *)"main",(char *)"\\false",8); __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_function_contract.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_function_contract.c index 1fc792e0c37..087b3740e9c 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_function_contract.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_function_contract.c @@ -30,8 +30,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -351,7 +349,6 @@ int main(void) __e_acsl_m(); __e_acsl_n(); __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_function_contract2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_function_contract2.c index 222e697f71e..563457ac4c0 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_function_contract2.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_function_contract2.c @@ -67,8 +67,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -768,7 +766,6 @@ int main(void) __e_acsl_m(); __e_acsl_n(); __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_integer_constant.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_integer_constant.c index 7a057561eb2..04746fe08b6 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_integer_constant.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_integer_constant.c @@ -51,8 +51,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -91,7 +89,6 @@ int main(void) __gmpz_clear(__e_acsl); } __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_integer_constant2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_integer_constant2.c index 2df187c7929..2621d3046fd 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_integer_constant2.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_integer_constant2.c @@ -61,8 +61,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -128,7 +126,6 @@ int main(void) __gmpz_clear(__e_acsl_5); } __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_invariant.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_invariant.c index 51a00d96d81..aca285a01c3 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_invariant.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_invariant.c @@ -30,8 +30,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -62,7 +60,6 @@ int main(void) } } __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_invariant2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_invariant2.c index ab0778af061..3be9888f60d 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_invariant2.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_invariant2.c @@ -50,8 +50,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -114,7 +112,6 @@ int main(void) } } __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_labeled_stmt.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_labeled_stmt.c index ccac293a0dc..8ca7ecc921e 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_labeled_stmt.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_labeled_stmt.c @@ -30,8 +30,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -76,7 +74,6 @@ int main(void) __retres = __e_acsl_main(); e_acsl_assert(X == 3,(char *)"Postcondition",(char *)"main", (char *)"X == 3",9); - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_labeled_stmt2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_labeled_stmt2.c index a00b658612e..c3ec0786cc1 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_labeled_stmt2.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_labeled_stmt2.c @@ -50,8 +50,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -137,7 +135,6 @@ int main(void) (char *)"X == 3",9); __gmpz_clear(__e_acsl_X); __gmpz_clear(__e_acsl); - __clean(); return __retres; } } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_lazy.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_lazy.c index f52c93260c1..80f02cb85ca 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_lazy.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_lazy.c @@ -30,8 +30,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -193,7 +191,6 @@ int main(void) (char *)"main",(char *)"(x!=0&&y!=0) == (x!=0)",30); } __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_lazy2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_lazy2.c index fce174c34d5..620d46cb791 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_lazy2.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_lazy2.c @@ -77,8 +77,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -744,7 +742,6 @@ int main(void) __gmpz_clear(__e_acsl_49); } __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_linear_search.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_linear_search.c index 1d8f35b075e..1132ef85eab 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_linear_search.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_linear_search.c @@ -30,8 +30,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -197,7 +195,6 @@ int main(void) e_acsl_assert(found == 0,(char *)"Assertion",(char *)"main", (char *)"found == 0",36); __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_linear_search2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_linear_search2.c index 9b70bcfdd6c..793814aa907 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_linear_search2.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_linear_search2.c @@ -79,8 +79,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -398,7 +396,6 @@ int main(void) __gmpz_clear(__e_acsl_2); } __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_nested_code_annot.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_nested_code_annot.c index dc3e01f7404..59d45aafae4 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_nested_code_annot.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_nested_code_annot.c @@ -30,8 +30,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -86,7 +84,6 @@ int main(void) (char *)"x >= 1",11); } __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_nested_code_annot2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_nested_code_annot2.c index edad0b3115f..f798075624a 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_nested_code_annot2.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_nested_code_annot2.c @@ -50,8 +50,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -178,7 +176,6 @@ int main(void) __gmpz_clear(__e_acsl_6); } __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_not.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_not.c index fec032c3839..1bc9012567a 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_not.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_not.c @@ -30,8 +30,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -50,7 +48,6 @@ int main(void) e_acsl_assert(x != 0,(char *)"Assertion",(char *)"main",(char *)"x != 0", 9); __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_not2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_not2.c index fc3adb9948c..94958c4cf84 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_not2.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_not2.c @@ -50,8 +50,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -94,7 +92,6 @@ int main(void) } } __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_null.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_null.c index dcf4e8ae8ac..781f248536d 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_null.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_null.c @@ -30,8 +30,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -45,7 +43,6 @@ int main(void) e_acsl_assert((void *)0 == (void *)0,(char *)"Assertion",(char *)"main", (char *)"\\null == (void *)0",8); __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_null2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_null2.c index dcf4e8ae8ac..781f248536d 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_null2.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_null2.c @@ -30,8 +30,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -45,7 +43,6 @@ int main(void) e_acsl_assert((void *)0 == (void *)0,(char *)"Assertion",(char *)"main", (char *)"\\null == (void *)0",8); __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_other_constants.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_other_constants.c index e9fbeb377cc..0573dd7bc66 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_other_constants.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_other_constants.c @@ -34,8 +34,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -52,7 +50,6 @@ int main(void) e_acsl_assert(false != true,(char *)"Assertion",(char *)"main", (char *)"false != true",13); __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_other_constants2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_other_constants2.c index 0e05c2ad2e7..ce8d5c5ded1 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_other_constants2.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_other_constants2.c @@ -54,8 +54,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -91,7 +89,6 @@ int main(void) __gmpz_clear(__e_acsl_3); } __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_quantif.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_quantif.c index efffa80fa16..340f7be31a7 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_quantif.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_quantif.c @@ -30,8 +30,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -227,7 +225,6 @@ int main(void) 27); } __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_quantif2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_quantif2.c index 433da33e2ad..3d4106718d5 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_quantif2.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_quantif2.c @@ -105,8 +105,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -671,7 +669,6 @@ int main(void) __gmpz_clear(__e_acsl_x_7); } __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_result.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_result.c index 395b9ad9031..865e184c2f0 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_result.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_result.c @@ -30,8 +30,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -102,7 +100,6 @@ int main(void) __e_acsl_g(Y); __e_acsl_h(); __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_result2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_result2.c index e927b04f98f..96a739b8a39 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_result2.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_result2.c @@ -71,8 +71,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -185,7 +183,6 @@ int main(void) __e_acsl_g(Y); __e_acsl_h(); __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_sizeof.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_sizeof.c index c20896ea2a1..f4235f2d414 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_sizeof.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_sizeof.c @@ -30,8 +30,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -48,7 +46,6 @@ int main(void) e_acsl_assert(4 == 4,(char *)"Assertion",(char *)"main", (char *)"sizeof(int) == sizeof(x)",10); __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_sizeof2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_sizeof2.c index 5ab7bfcda08..3e21d415824 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_sizeof2.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_sizeof2.c @@ -50,8 +50,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -79,7 +77,6 @@ int main(void) __gmpz_clear(__e_acsl_sizeof_2); } __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_stmt_contract.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_stmt_contract.c index e9e6ac009e7..5464655b6a1 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_stmt_contract.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_stmt_contract.c @@ -30,8 +30,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -142,7 +140,6 @@ int main(void) e_acsl_assert(x == 7,(char *)"Postcondition",(char *)"main", (char *)"x == 7",47); } - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_stmt_contract2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_stmt_contract2.c index f5fefb3fd3e..b90185e00f2 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_stmt_contract2.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_stmt_contract2.c @@ -67,8 +67,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -412,7 +410,6 @@ int main(void) __gmpz_clear(__e_acsl_x_13); __gmpz_clear(__e_acsl_21); } - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_true.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_true.c index 50ecf913687..e5f2afc873b 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_true.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_true.c @@ -30,8 +30,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -47,7 +45,6 @@ int main(void) /*@ assert \true; */ e_acsl_assert(1,(char *)"Assertion",(char *)"main",(char *)"\\true",10); __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_true2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_true2.c index 50ecf913687..e5f2afc873b 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_true2.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_true2.c @@ -30,8 +30,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -47,7 +45,6 @@ int main(void) /*@ assert \true; */ e_acsl_assert(1,(char *)"Assertion",(char *)"main",(char *)"\\true",10); __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_typedef.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_typedef.c index 351227afff0..2cc49bb5891 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_typedef.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_typedef.c @@ -31,8 +31,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -48,7 +46,6 @@ int main(void) e_acsl_assert((int)x == 0,(char *)"Assertion",(char *)"main", (char *)"x == 0",11); __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_typedef2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_typedef2.c index fcdc81e2bb1..ef6b75f2656 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_typedef2.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_typedef2.c @@ -61,8 +61,6 @@ axiomatic } */ -extern __attribute__((__FC_BUILTIN__)) void __clean(void); - extern size_t __memory_size; /*@ @@ -89,7 +87,6 @@ int main(void) __gmpz_clear(__e_acsl); } __retres = 0; - __clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/integer_constant.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/integer_constant.1.res.oracle index 21eb72b12c6..2c30e867176 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/integer_constant.1.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/integer_constant.1.res.oracle @@ -33,8 +33,6 @@ share/e-acsl/e_acsl_gmp.h:70:[value] Function __gmpz_init_set_str: precondition share/e-acsl/e_acsl_gmp.h:72:[value] Function __gmpz_init_set_str: postcondition got status valid. share/e-acsl/e_acsl_gmp.h:73:[value] Function __gmpz_init_set_str: postcondition got status unknown. tests/e-acsl-runtime/integer_constant.i:13:[value] Assertion got status valid. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/integer_constant.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/integer_constant.res.oracle index 45dd10f9328..6765c95a66b 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/integer_constant.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/integer_constant.res.oracle @@ -30,8 +30,6 @@ share/e-acsl/e_acsl_gmp.h:116:[value] Function __gmpz_cmp: precondition got stat share/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status unknown. [value] using specification for function __gmpz_clear share/e-acsl/e_acsl_gmp.h:105:[value] Function __gmpz_clear: precondition got status valid. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/invariant.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/invariant.1.res.oracle index 0646e5d771e..52c3db63cb2 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/invariant.1.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/invariant.1.res.oracle @@ -28,8 +28,6 @@ share/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status share/e-acsl/e_acsl_gmp.h:105:[value] Function __gmpz_clear: precondition got status valid. share/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status unknown. tests/e-acsl-runtime/invariant.i:10:[kernel] warning: signed overflow. assert x+i ≤ 2147483647; -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/invariant.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/invariant.res.oracle index e1cc0dfebec..80c5d0ecb6b 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/invariant.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/invariant.res.oracle @@ -19,8 +19,6 @@ tests/e-acsl-runtime/invariant.i:8:[value] entering loop for the first time share/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status valid. share/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status unknown. tests/e-acsl-runtime/invariant.i:10:[kernel] warning: signed overflow. assert x+i ≤ 2147483647; -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/labeled_stmt.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/labeled_stmt.1.res.oracle index c92b1327463..0b45603e0e8 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/labeled_stmt.1.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/labeled_stmt.1.res.oracle @@ -28,8 +28,6 @@ share/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status [value] using specification for function __gmpz_clear share/e-acsl/e_acsl_gmp.h:105:[value] Function __gmpz_clear: precondition got status valid. tests/e-acsl-runtime/labeled_stmt.i:9:[value] Function __e_acsl_main: postcondition got status valid. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean tests/e-acsl-runtime/labeled_stmt.i:9:[value] Function main: postcondition got status valid. [value] done for function main [value] ====== VALUES COMPUTED ====== diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/labeled_stmt.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/labeled_stmt.res.oracle index f7b6742423e..eb59e4d0012 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/labeled_stmt.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/labeled_stmt.res.oracle @@ -19,8 +19,6 @@ tests/e-acsl-runtime/labeled_stmt.i:12:[value] Assertion got status valid. [value] using specification for function e_acsl_assert share/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status valid. tests/e-acsl-runtime/labeled_stmt.i:9:[value] Function __e_acsl_main: postcondition got status valid. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean tests/e-acsl-runtime/labeled_stmt.i:9:[value] Function main: postcondition got status valid. [value] done for function main [value] ====== VALUES COMPUTED ====== diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/lazy.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/lazy.1.res.oracle index a7d57a71db8..a574c5fdfff 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/lazy.1.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/lazy.1.res.oracle @@ -52,8 +52,6 @@ tests/e-acsl-runtime/lazy.i:27:[value] Assertion got status valid. tests/e-acsl-runtime/lazy.i:28:[value] Assertion got status valid. tests/e-acsl-runtime/lazy.i:29:[value] Assertion got status valid. tests/e-acsl-runtime/lazy.i:30:[value] Assertion got status valid. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/lazy.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/lazy.res.oracle index ff86726ad18..6f16aa0bebc 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/lazy.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/lazy.res.oracle @@ -35,8 +35,6 @@ tests/e-acsl-runtime/lazy.i:27:[value] Assertion got status valid. tests/e-acsl-runtime/lazy.i:28:[value] Assertion got status valid. tests/e-acsl-runtime/lazy.i:29:[value] Assertion got status valid. tests/e-acsl-runtime/lazy.i:30:[value] Assertion got status valid. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/linear_search.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/linear_search.1.res.oracle index c969fdd0617..c49a4b6f97f 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/linear_search.1.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/linear_search.1.res.oracle @@ -61,8 +61,6 @@ tests/e-acsl-runtime/linear_search.i:12:[value] Function __e_acsl_search, behavi tests/e-acsl-runtime/linear_search.i:15:[value] Function __e_acsl_search, behavior not_exists: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) tests/e-acsl-runtime/linear_search.i:33:[value] Assertion got status unknown. tests/e-acsl-runtime/linear_search.i:36:[value] Assertion got status unknown. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function search: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/linear_search.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/linear_search.res.oracle index e51c5749cb0..8edb0321c31 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/linear_search.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/linear_search.res.oracle @@ -33,8 +33,6 @@ tests/e-acsl-runtime/linear_search.i:12:[value] Function __e_acsl_search, behavi tests/e-acsl-runtime/linear_search.i:15:[value] Function __e_acsl_search, behavior not_exists: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) tests/e-acsl-runtime/linear_search.i:33:[value] Assertion got status unknown. tests/e-acsl-runtime/linear_search.i:36:[value] Assertion got status unknown. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function search: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/nested_code_annot.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/nested_code_annot.1.res.oracle index bdf626d79eb..229d8ac206e 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/nested_code_annot.1.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/nested_code_annot.1.res.oracle @@ -26,8 +26,6 @@ share/e-acsl/e_acsl_gmp.h:116:[value] Function __gmpz_cmp: precondition got stat share/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status unknown. [value] using specification for function __gmpz_clear share/e-acsl/e_acsl_gmp.h:105:[value] Function __gmpz_clear: precondition got status valid. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/nested_code_annot.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/nested_code_annot.res.oracle index 866b18f0c4c..3e80f6e8398 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/nested_code_annot.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/nested_code_annot.res.oracle @@ -17,8 +17,6 @@ tests/e-acsl-runtime/nested_code_annot.i:9:[value] Assertion got status valid. [value] using specification for function e_acsl_assert share/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status valid. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/not.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/not.1.res.oracle index a88daa868d0..0e28b4653ee 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/not.1.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/not.1.res.oracle @@ -26,8 +26,6 @@ share/e-acsl/e_acsl_gmp.h:116:[value] Function __gmpz_cmp: precondition got stat share/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status unknown. [value] using specification for function __gmpz_clear share/e-acsl/e_acsl_gmp.h:105:[value] Function __gmpz_clear: precondition got status valid. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/not.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/not.res.oracle index f18bf135aed..56bdd7362f4 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/not.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/not.res.oracle @@ -17,8 +17,6 @@ tests/e-acsl-runtime/not.i:8:[value] Assertion got status valid. [value] using specification for function e_acsl_assert share/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status valid. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/null.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/null.1.res.oracle index 6363e5a58b9..c042fe69fcb 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/null.1.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/null.1.res.oracle @@ -17,8 +17,6 @@ tests/e-acsl-runtime/null.i:8:[value] Assertion got status valid. [value] using specification for function e_acsl_assert share/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status valid. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/null.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/null.res.oracle index 6363e5a58b9..c042fe69fcb 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/null.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/null.res.oracle @@ -17,8 +17,6 @@ tests/e-acsl-runtime/null.i:8:[value] Assertion got status valid. [value] using specification for function e_acsl_assert share/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status valid. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/other_constants.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/other_constants.1.res.oracle index 8b914934925..39d083368d7 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/other_constants.1.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/other_constants.1.res.oracle @@ -27,8 +27,6 @@ share/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status [value] using specification for function __gmpz_clear share/e-acsl/e_acsl_gmp.h:105:[value] Function __gmpz_clear: precondition got status valid. tests/e-acsl-runtime/other_constants.i:13:[value] Assertion got status valid. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/other_constants.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/other_constants.res.oracle index 23b14eb409e..2a1a78825cd 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/other_constants.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/other_constants.res.oracle @@ -18,8 +18,6 @@ tests/e-acsl-runtime/other_constants.i:12:[value] Assertion got status valid. [value] using specification for function e_acsl_assert share/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status valid. tests/e-acsl-runtime/other_constants.i:13:[value] Assertion got status valid. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/quantif.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/quantif.1.res.oracle index 98903d53a4f..73930483c06 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/quantif.1.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/quantif.1.res.oracle @@ -64,8 +64,6 @@ share/e-acsl/e_acsl_gmp.h:154:[value] Function __gmpz_tdiv_q: precondition got s share/e-acsl/e_acsl_gmp.h:145:[value] Function __gmpz_mul: precondition got status valid. share/e-acsl/e_acsl_gmp.h:146:[value] Function __gmpz_mul: precondition got status valid. share/e-acsl/e_acsl_gmp.h:147:[value] Function __gmpz_mul: precondition got status valid. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/quantif.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/quantif.res.oracle index fdfeaf7591c..f19b328379c 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/quantif.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/quantif.res.oracle @@ -32,8 +32,6 @@ tests/e-acsl-runtime/quantif.i:23:[value] entering loop for the first time tests/e-acsl-runtime/quantif.i:27:[value] Assertion got status unknown. tests/e-acsl-runtime/quantif.i:27:[value] entering loop for the first time tests/e-acsl-runtime/quantif.i:28:[value] entering loop for the first time -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/result.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/result.1.res.oracle index de5c7f26189..c0a51f1dc78 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/result.1.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/result.1.res.oracle @@ -42,8 +42,6 @@ tests/e-acsl-runtime/result.i:18:[value] Function g: postcondition got status va tests/e-acsl-runtime/result.i:18:[value] Function __e_acsl_g: postcondition got status valid. tests/e-acsl-runtime/result.i:23:[value] Function h: postcondition got status valid. tests/e-acsl-runtime/result.i:23:[value] Function __e_acsl_h: postcondition got status valid. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function f: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/result.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/result.res.oracle index b8f05822b2d..c7db4b6ed48 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/result.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/result.res.oracle @@ -23,8 +23,6 @@ tests/e-acsl-runtime/result.i:18:[value] Function g: postcondition got status va tests/e-acsl-runtime/result.i:18:[value] Function __e_acsl_g: postcondition got status valid. tests/e-acsl-runtime/result.i:23:[value] Function h: postcondition got status valid. tests/e-acsl-runtime/result.i:23:[value] Function __e_acsl_h: postcondition got status valid. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function f: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/sizeof.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/sizeof.1.res.oracle index d9c936ab3eb..e4f845add22 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/sizeof.1.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/sizeof.1.res.oracle @@ -26,8 +26,6 @@ share/e-acsl/e_acsl_gmp.h:116:[value] Function __gmpz_cmp: precondition got stat share/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status unknown. [value] using specification for function __gmpz_clear share/e-acsl/e_acsl_gmp.h:105:[value] Function __gmpz_clear: precondition got status valid. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/sizeof.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/sizeof.res.oracle index fb53bb1ce68..e3c63d217fa 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/sizeof.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/sizeof.res.oracle @@ -17,8 +17,6 @@ tests/e-acsl-runtime/sizeof.i:10:[value] Assertion got status valid. [value] using specification for function e_acsl_assert share/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status valid. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stmt_contract.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stmt_contract.1.res.oracle index 4b780be609d..126371015b5 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stmt_contract.1.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stmt_contract.1.res.oracle @@ -32,8 +32,6 @@ share/e-acsl/e_acsl_gmp.h:37:[value] Function __gmpz_init: postcondition got sta share/e-acsl/e_acsl_gmp.h:131:[value] Function __gmpz_add: precondition got status valid. share/e-acsl/e_acsl_gmp.h:132:[value] Function __gmpz_add: precondition got status valid. share/e-acsl/e_acsl_gmp.h:133:[value] Function __gmpz_add: precondition got status valid. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stmt_contract.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stmt_contract.res.oracle index 0b1b0395e95..1f8ba2d72bb 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stmt_contract.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stmt_contract.res.oracle @@ -16,8 +16,6 @@ __memory_size ∈ [--..--] [value] using specification for function e_acsl_assert share/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status valid. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/true.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/true.1.res.oracle index 1236bc50ccc..55c61e4a85e 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/true.1.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/true.1.res.oracle @@ -17,8 +17,6 @@ tests/e-acsl-runtime/true.i:10:[value] Assertion got status valid. [value] using specification for function e_acsl_assert share/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status valid. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/true.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/true.res.oracle index 1236bc50ccc..55c61e4a85e 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/true.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/true.res.oracle @@ -17,8 +17,6 @@ tests/e-acsl-runtime/true.i:10:[value] Assertion got status valid. [value] using specification for function e_acsl_assert share/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status valid. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/typedef.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/typedef.1.res.oracle index 25938e08d6e..c22597fd92f 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/typedef.1.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/typedef.1.res.oracle @@ -30,8 +30,6 @@ share/e-acsl/e_acsl_gmp.h:116:[value] Function __gmpz_cmp: precondition got stat share/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status unknown. [value] using specification for function __gmpz_clear share/e-acsl/e_acsl_gmp.h:105:[value] Function __gmpz_clear: precondition got status valid. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/typedef.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/typedef.res.oracle index ae9de465d69..fb99d2b57df 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/typedef.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/typedef.res.oracle @@ -17,8 +17,6 @@ tests/e-acsl-runtime/typedef.i:11:[value] Assertion got status valid. [value] using specification for function e_acsl_assert share/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status valid. -[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype -[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function main: diff --git a/src/plugins/e-acsl/visit.ml b/src/plugins/e-acsl/visit.ml index 929c08ae345..5a37b9aedc2 100644 --- a/src/plugins/e-acsl/visit.ml +++ b/src/plugins/e-acsl/visit.ml @@ -213,30 +213,31 @@ class e_acsl_visitor prj generate = object (self) Globals.Functions.replace_by_definition spec fundec Location.unknown; let cil_fct = GFun(fundec, Location.unknown) in - match main_fct with - | Some main -> - let exp = Cil.evar ~loc:Location.unknown vi in - let stmt = - Cil.mkStmtOneInstr ~valid_sid:true - (Call(None, exp, [], Location.unknown)) - in - vi.vreferenced <- true; - main.sbody.bstmts <- stmt :: main.sbody.bstmts; - let new_globals = - List.fold_right - (fun g acc -> match g with - | GFun({ svar = vi }, _) when Varinfo.equal vi main.svar -> - acc - | _ -> g :: acc) - f.globals - [ cil_fct; GFun(main, Location.unknown) ] - in - f.globals <- new_globals - | None -> - Kernel.warning "no entry point specified:@ \ + if Pre_analysis.use_model () then + match main_fct with + | Some main -> + let exp = Cil.evar ~loc:Location.unknown vi in + let stmt = + Cil.mkStmtOneInstr ~valid_sid:true + (Call(None, exp, [], Location.unknown)) + in + vi.vreferenced <- true; + main.sbody.bstmts <- stmt :: main.sbody.bstmts; + let new_globals = + List.fold_right + (fun g acc -> match g with + | GFun({ svar = vi }, _) when Varinfo.equal vi main.svar -> + acc + | _ -> g :: acc) + f.globals + [ cil_fct; GFun(main, Location.unknown) ] + in + f.globals <- new_globals + | None -> + Kernel.warning "no entry point specified:@ \ you must call function `%s' by yourself" - fname; - f.globals <- f.globals @ [ cil_fct ] + fname; + f.globals <- f.globals @ [ cil_fct ] in Project.on prj build_initializer () end; @@ -508,7 +509,7 @@ you must call function `%s' by yourself" (* JS: should be done in the new project? *) let env = deallocate_function env kf in let b, env = Env.pop_and_get env stmt ~global_clear:true Env.After in - if is_main then begin + if is_main && Pre_analysis.use_model () then begin let stmts = b.bstmts in let l = List.rev stmts in match l with @@ -616,8 +617,10 @@ you must call function `%s' by yourself" (* keep the return (enclosed in a generated block) at the end; preceded by clean if any *) let init, tl = - if self#is_main kf then [ potential_clean; ret ], tl - else [ ret ], l + if self#is_main kf && Pre_analysis.use_model () then + [ potential_clean; ret ], tl + else + [ ret ], l in blk.bstmts <- List.fold_left (fun acc v -> v :: acc) (add_locals init) tl -- GitLab