From d660fe2d3554224b87347a55c2facad60dbcc6b6 Mon Sep 17 00:00:00 2001 From: Daniel Lemire Date: Wed, 19 Dec 2018 21:27:19 -0500 Subject: [PATCH] Trying this. --- scripts/plotparse.sh | 30 +++++++++++----------- scripts/plots/skylake/parselinuxtable.txt | 30 +++++++++++----------- scripts/plots/skylake/stackedperf.pdf | Bin 11017 -> 12412 bytes 3 files changed, 30 insertions(+), 30 deletions(-) diff --git a/scripts/plotparse.sh b/scripts/plotparse.sh index 2feb8fb6..3f3134a7 100755 --- a/scripts/plotparse.sh +++ b/scripts/plotparse.sh @@ -18,30 +18,30 @@ if [ "$os" = "Linux" ]; then echo $myfile echo "" > $myfile - myfile_noutf8validation=$plotdirectory"/parselinuxtable_noutf8validation.txt" - echo $myfile_noutf8validation - echo "" > $myfile_noutf8validation + myfilenoutf8validation=$plotdirectory"/parselinuxtable_noutf8validation.txt" + echo $myfilenoutf8validation + echo "" > $myfilenoutf8validation - myfile=$plotdirectory"/parselinuxtable_nonumberparsing.txt" - echo $myfile_nonumberparsing - echo "" > $myfile_nonumberparsing + myfilenonumberparsing=$plotdirectory"/parselinuxtable_nonumberparsing.txt" + echo $myfilenonumberparsing + echo "" > $myfilenonumberparsing - myfile=$plotdirectory"/parselinuxtable_nostringparsing.txt" - echo $myfile_nostringparsing - echo "" > $myfile_nostringparsing + myfilenostringparsing=$plotdirectory"/parselinuxtable_nostringparsing.txt" + echo $myfilenostringparsing + echo "" > $myfilenostringparsing for i in $SCRIPTPATH/../jsonexamples/*.json; do [ -f "$i" ] || break echo $i $SCRIPTPATH/../parse -t "$i" >> "$myfile" - $SCRIPTPATH/../parse_noutf8validation -t "$i" >> "$myfile_noutf8validation" - $SCRIPTPATH/../parse_nonumberparsing -t "$i" >> "$myfile_nonumberparsing" - $SCRIPTPATH/../parse_nostringparsing -t "$i" >> "$myfile_nostringparsing" + $SCRIPTPATH/../parse_noutf8validation -t "$i" >> "$myfilenoutf8validation" + $SCRIPTPATH/../parse_nonumberparsing -t "$i" >> "$myfilenonumberparsing" + $SCRIPTPATH/../parse_nostringparsing -t "$i" >> "$myfilenostringparsing" done - paste $myfile $myfile_noutf8validation $myfile_nonumberparsing $myfile_nostringparsing > $myfile.tmp - mv $myfile.tmp $myfile - rm $myfile_noutf8validation $myfile_nonumberparsing $myfile_nostringparsing + paste $myfile $myfilenoutf8validation $myfilenonumberparsing $myfilenostringparsing > "$myfile.tmp" + mv "$myfile.tmp" $myfile + rm $myfilenoutf8validation $myfilenonumberparsing $myfilenostringparsing gnuplot -e "filename='$myfile';name='$plotdirectory/stackedperf.pdf'" $SCRIPTPATH/stackbar.gnuplot fi diff --git a/scripts/plots/skylake/parselinuxtable.txt b/scripts/plots/skylake/parselinuxtable.txt index 18b091b4..da651527 100644 --- a/scripts/plots/skylake/parselinuxtable.txt +++ b/scripts/plots/skylake/parselinuxtable.txt @@ -1,15 +1,15 @@ - -"apache_builds" 0.009207 0.463393 0.281377 0.866464 1.620441 -"canada" 0.001283 0.466453 0.451004 2.621538 3.540277 -"citm_catalog" 0.001532 0.467335 0.239570 0.737726 1.446164 -"github_events" 0.014588 0.469531 0.231897 0.803576 1.519592 -"gsoc-2018" 0.000951 0.466666 0.156194 0.584961 1.208772 -"instruments" 0.004390 0.463060 0.304070 0.992959 1.764479 -"marine_ik" 0.001210 0.471408 0.565306 2.861355 3.899279 -"mesh" 0.001391 0.460675 0.458293 2.804142 3.724501 -"mesh.pretty" 0.001693 0.465585 0.279226 1.798629 2.545132 -"numbers" 0.006049 0.463552 0.308659 2.439390 3.217651 -"random" 0.002099 0.763009 0.457455 1.359825 2.582388 -"twitterescaped" 0.001957 0.461363 0.331717 2.281315 3.076351 -"twitter" 0.001510 0.593784 0.288455 0.807407 1.691156 -"update-center" 0.002025 0.464064 0.427907 1.149803 2.043799 + +"apache_builds" 0.008043 0.464027 0.283614 0.848204 1.603889 "apache_builds" 0.008145 0.433149 0.284206 1.549329 2.274829 "apache_builds" 0.008309 0.464902 0.282278 0.804872 1.560361 "apache_builds" 0.007934 0.463416 0.282379 0.348195 1.101924 +"canada" 0.001367 0.466882 0.450837 2.621867 3.540953 "canada" 0.001291 0.435206 0.453572 2.634155 3.524225 "canada" 0.001310 0.465843 0.450204 0.778145 1.695502 "canada" 0.001268 0.469248 0.450980 2.657215 3.578711 +"citm_catalog" 0.001544 0.467649 0.240100 0.738048 1.447341 "citm_catalog" 0.001600 0.433821 0.244188 0.733595 1.413204 "citm_catalog" 0.001534 0.467519 0.239503 0.497977 1.206534 "citm_catalog" 0.001601 0.467388 0.239875 0.578925 1.287790 +"github_events" 0.014726 0.468243 0.229121 0.814505 1.526595 "github_events" 0.014668 0.436157 0.232282 0.835656 1.518763 "github_events" 0.015810 0.467991 0.228631 0.743017 1.455450 "github_events" 0.014682 0.470245 0.226741 0.348277 1.059944 +"gsoc-2018" 0.000902 0.466621 0.156211 0.584675 1.208409 "gsoc-2018" 0.000870 0.435493 0.155803 0.592531 1.184697 "gsoc-2018" 0.000950 0.466471 0.156141 0.577891 1.201453 "gsoc-2018" 0.000856 0.465367 0.155430 0.097535 0.719188 +"instruments" 0.004047 0.463015 0.304472 0.993471 1.765005 "instruments" 0.004148 0.431173 0.306838 0.997069 1.739229 "instruments" 0.004116 0.463356 0.302861 0.712426 1.482759 "instruments" 0.004316 0.462666 0.304349 0.636781 1.408113 +"marine_ik" 0.001182 0.471793 0.564217 2.860220 3.897412 "marine_ik" 0.001144 0.440791 0.564691 2.853402 3.860029 "marine_ik" 0.001136 0.471113 0.562672 1.100730 2.135652 "marine_ik" 0.001247 0.471885 0.564652 2.772222 3.810006 +"mesh" 0.001410 0.460912 0.458182 2.807545 3.728049 "mesh" 0.001354 0.429446 0.453778 2.811546 3.696123 "mesh" 0.001263 0.460669 0.432129 0.938042 1.832103 "mesh" 0.001361 0.460718 0.458661 2.871119 3.791860 +"mesh.pretty" 0.001817 0.465192 0.281370 1.798525 2.546904 "mesh.pretty" 0.001752 0.433812 0.285515 1.806154 2.527233 "mesh.pretty" 0.001677 0.465620 0.280676 0.444307 1.192281 "mesh.pretty" 0.001685 0.467114 0.279995 1.812220 2.561013 +"numbers" 0.006052 0.464166 0.309405 2.441018 3.220641 "numbers" 0.006050 0.432836 0.309949 2.435179 3.184013 "numbers" 0.006523 0.465040 0.308434 0.588452 1.368449 "numbers" 0.006024 0.463882 0.340700 2.447494 3.258101 +"random" 0.001784 0.767167 0.457592 1.361369 2.587913 "random" 0.001897 0.429746 0.457308 1.366299 2.255250 "random" 0.001802 0.772782 0.458010 1.232293 2.464888 "random" 0.001792 0.765428 0.457409 0.701674 1.926304 +"twitterescaped" 0.001973 0.460694 0.332615 2.278882 3.074164 "twitterescaped" 0.001821 0.429406 0.308169 2.295059 3.034454 "twitterescaped" 0.001651 0.460919 0.331539 2.170526 2.964634 "twitterescaped" 0.001765 0.460728 0.325755 0.455693 1.243941 +"twitter" 0.001719 0.591785 0.287928 0.825274 1.706706 "twitter" 0.001516 0.429392 0.284510 0.817535 1.532953 "twitter" 0.001553 0.591682 0.287384 0.692659 1.573278 "twitter" 0.001688 0.589186 0.290395 0.408748 1.290016 +"update-center" 0.001987 0.463608 0.427610 1.154509 2.047714 "update-center" 0.001942 0.429905 0.399439 1.174534 2.005820 "update-center" 0.001836 0.463522 0.428904 1.135104 2.029367 "update-center" 0.001728 0.463567 0.427607 0.529563 1.422465 diff --git a/scripts/plots/skylake/stackedperf.pdf b/scripts/plots/skylake/stackedperf.pdf index 3cf762cb7c9f13db998cf4e7cac0b22b04612af3..f61c1efdaa6bf2232b6896f50d56e01386a62b99 100644 GIT binary patch delta 10867 zcmZXZV{m3s)2=7BZDW#&?M!Ujwms3##J2Iop4fIKwmHGXwsYn^_5C>K{dVnL)phl~ z?pn2b{aM`+8gEAN@_??a;~qD9_p9brx}X+C_vk5j6cqHzz}dl)fK@Ao=UPKVQe6(- zU5{bpZXs;~HWj^9o+;k0CJJ_?Aoj5km;He5FDQvUl+S0J7xU$U(uN;!u6K{2d4^mJ zFQ&Jvoua7EL`_G|q68ryF&|d68 zM>?80DIZ=glFj_i5~<28b4f#ZDa~EnYfODER)0I197{!f5z=9m8t!I~o&R&UeM=RZ z+ozvv3svsL=gQlye?Qd}P6SHzk&M^C&+`Z8w!g@e>jEP5+Er$SjqmLB_(1R?E?4?j zqn1~bw!dJr>j3CGp>_>N-w%NuZ>Wz8w390u2q|lft^>ctB2)Pq=o6M69W{E z>AaB15>_2P^!(jQ0EuWT4nn|)J&iBsSY&pex#_&lDY zRo0|axPQQLb_v)e2q%m9D*G6(v*1_{2Lj|5a9nam3H*P&q&fv01pG_fQ2u{h1`EQ# zSIpVAL;&sHXtzvcJ#OyZmg09xbz{V3Sc1Pk!ua>P5 zD~39<5iR*x(&1{WI zF>E~U(b4b`IFCznUyi0MN4sf$(+>FOxT^8A|MpT##h_97B8r5b-_B5j{m0_9ki3RC z_HZ0HemB2|RSse=a~QAqXGW}yrG0Pi$xHZXi1MksNa7t2cW)oj^o47gq@BF3`)pcB z!yU>2=Iablw}2Sg5@k%rajYo zP}0V`4Zk0TZLWVf{}mU5IiCIJC-l$nBOeQIxx;cX-gtm;)IqNOA7V7dQhRtmclKO$ zBtcY+h`m11up3Pxd?Mt0+lk7r-h}pBKVLu!Je9KAa>F-e-SU3(_1en)cm6(tk$<;5 zBD_4@)?X$^>-w!)EwbiMN_LF)@ELk2`mk-u-N$LN?Z4mX=l6I_!GE;4{BJoXLLb_3-yLm5F(juqFDfF`Mx7tJ znFh?5vo_U51UJ5mKpzlh)pq%*LqWR8 zOnT2usxB{l!U3*=0`Z@B8IscB8h#8i*^7T|>?iMlr_9R{L6W*~*|Y|34O%i-u^`#4;#LiVte`^#M4qkpTV#LG)yF=T<#!|GxBJ}BqEIk73ZS%{lL>Vn^*>Cmr31Rj9$obzfvT~ zZK9{awVci?G+BwIpWv4cVvTR|BfQFIABxc$!IKYnY&NNlLl%XG^wWR4rjvroHmXw- zHl!o`6G`zLs;K zi2xN`gtPL=6om}^H=Bta6BUJ+&eStSA|<%LAct|uU*Tk5BoT~%qB?w$em{JKiY`g) z*PqS~^@E{Zym|a`F-2YPaw2su^(sp21;_3Mjb6&cwk{L+nN8La}|uRmkALP^!LXx*{M%$2$LO?>VLJ{+xwPjH{82q+Ozo_m#Q+{)b4=c-<@Ma|>N#$S-94_%Xfz?_%Xw^2D8B^XrXm3Cv5wtg? zXaJT@=M4pk&3DV-MW#<-2Psd9@2+a*-73fp>l9%O9kmmA3Z=pzUs_(S^1nQzrZz2l z-dyEt$(Ru-(Y~>p^=teE8UY)1FMqLlGyw%vYGfFEAw!xlYqtV^1wsX__w+z_Px!Jz zBYjmypYpa+BTT%(DwGA&@K51LgDP1>bL9Lo?9-;zQ@Fc(H(DR{=Yj_(Jn3nLzlHRSnPK5!yi_h;#-XEbwKUT1^T+ zd%d+_TStWj6Y7OTDcLVQm7P1~`cCA!jx^ysxS_SGhfeBGG%57Mt#a%XUa)BCKG2Sv zgJwG1>_!O#Y83M^lUve+8r5T#YRyFqys@ND7Dx6_PaK1WfbgZ4ntRsDt0Qt&Pn?2= zXwuKlr(J0Xm@hIV?xC~w+Ssv>@eyP}O%=$esF(|>HAD}|*uf*|A3!!ruaH9@{R*>k zc~~#z(g`+!o}i|mChn4N9NLmW3j|BzOBdv+N0@jipmCD7tr)GY%%rR`@sz+8uuu3u zo5HU)K1@ON_p2SgF^Rt5M{IeNx;`%Fs?2!FuyhM2EhzP!PiwfuL|^wt1djQ92KOI< zXrlJ4^mLb>oi2x1c?6jK(4vDYQhg7OYlCBqLNLo4ZezkY@d0yW#6UiJ-6JX*nH1jCR?N)=`bZimbY zcPAwozF|A}-eZfeH9^Q(l!R@~fv=z5RE^t&<-K(&=j;Z{eVUGI{XW#`KclD@dAYw0 z^$o9)Qa#Go%RKcn>dd$s0k|L*P5PZ$ZkTsyPAsJEEmx?*pG~zqYE?fW_Rt3*Y?G>$ zG$Mo{qyOejIxNAhrH$;R7pOa9+I#1h5<;MDVjai1E$-JNrd9tt%qm3vR`3YWq!SVhxgx zzrqdG!a6HK(HD8M_V>0kzHp+VW;!yf!MP0vC9ffh=Kpl2B$D89EapLl(~Wd-5+X}D z`5LOA_#2lyp#t?(2{zUp5hR3U=B<%$S{X$BNJjma2eKa!CIHR#g@lV)kfMdkIwv2C zFNEKdW(TcsklL^I{A8E1XVX5DJ<<;J!Cc!;fZK%g9x|FnZ{3b~8i!*W+(3kt%!y1AGe+rxWhpL_psQ&Vq# znEymQ(awp(NmIKj)riqaAQlTP$ z)1leQc5U2pl6>4mMuOszGzu9gf2GD7VE-&9x6a|mdCfK1R=smaIS2uG&Kp15_bI$S2_ zZz&0Jnkp<6)Ez6m@%S}f^FUFgbh6Y*aYLW(eE)9FHPpnSe+a{}8g)vrRG}9F;G9(T zv0r9|Bi3%ON6tA_Om-sMe18yNS|tV^T?Q?IbODRCkK1JL7Q<%gChs)`QD{rZgCbW= zG2>hSFphcd22X(kk*#k=9#p~xUR;!7#3*xK=po6kl~lu z30Kc}%b1zK$U{`GK;4+#waRHh?8iy**_|c}cz%?N<4^p9{qy95QtpLi!iA%LRA!CUFZN!$In6KLT_WY z7!DZsqQPyUmbUz=Hq{=4@9#>5q8ha_b~Zg;1k-osD@sb=B_k%?4*1;EbngwUx5C%Z zs&F26eWR1zeaY1Gx?(5;z21#odKJJ+njRJtyjwW1Hxx9B) za(UKABJJUVmB)G^tP`Sm?Fr<7<1Qjw^2wfzfH7DpPo5!72L#A{tLet(FgDrA6BkS} znQyePy$`K4O_hB)?9lCpKFJ+#`@1*W3-)_8CzrmXjYdyr2{gbpD1v`~iePfPcOw9G zjh-Q6T0T!UL_t#8a+8yv)_zag}VR)69zS<}wCiEku7= zn)e#1HRtZ)tYHwuFzYKD!Ng(e-V}^^UF!~Twa4oa4*(8w5O-bZU&_9i$C1sy8GO~T zq*pgBfZ&xBX5ec0@?))2N0W$Prv%ywBZ%&Ih5en!bXg{NPOCb{MnTd-s4f04cD?){ zG0_nre6khxN{rH=w|xH?4ETe#krIE;?7_Z=@h-v#~A4p#;6%!k}fwmi85SY?nWmcpA&l( z-?*@v<&A;sR=#_0WsIInJXN9Tu-=SLuo(Blcml|{UHS<_@)7Mad(&oxvuwrb9`geX znt1hNZnlugUZ@{?iJCfsWYF_b5o_D;w)n}1*{Nhcr;hR{Z8N-F`v@mv;!4tm00Np5 zt}U@pF#tlmKE>T;eHA(j8>PI(nUoVU=AdZwcl^ft6Eo3ley-j7%i+s;5?%^frsXx- z+jpRhjH4czC1@(&0KbPop%L&0MLr<ZSZ;3pJ zjksfHm9k%icTDNp>Jk}~qoG+F7-4g$8gJXYh`v7HhxO zHKsSNG`6xU>iFvP|1krig_cMTAD{N#;eb_^)w)&ZRnXbfS@79@!9Es?d7ZhlIjH^# z3(htXVw7RDPQS%tbHQEIz|KGqM8nig+e}+MqKetW?qR*5GClV+vi|Nxb8dNSp)->p zo#FRlF}OVizjOBV_g!&%RZmlwuhswW$M8c|a#ttIrPI{Jp6W+oh&d*%&Cxr@mqR?KS9S+sY&RUh%1I4?LCFV$xf2fg5CZF)Hd zi(zsSHW1*`4EEyEBk8OZJ>UPRlQo5?%N>?+t3ZL^9>5#KOJt3d2~r7V&$~T2f$miC zO?7k2X7CTW2cDk~4VTs~9w6$C0mtv%WjI1R8o7!+)}7u>Xu7bPu6*4Am9&PKcxRpo zD(x!u$(fq?Cw40Oki0B9mRw0_vBtADx~krq9;nMTjnE zB|f4*NMr7h*9N3~Qn<%^ao_@A2r1*=nsw$SAk5+MDtByJMH@0K>KDFGTCrpakkg+V zfszWCtt#W)*$bh5Q0vi^>34b!e6+Wd)l31mn3WEn4D0Ror`IPBtgEx#?iPKXnLRVa zDsXE9-}Taq(Ib*hWK&W$fVQw3UJLB z9yO>4G4^XD++ZikJo*4kQlA?$!5QJ%u7G>FOhtF8F>;3JVJ*)T599knTPECI5G8J- zLA>P5a(kY(yNdMs_xZME%UqD)-h0@PyK`nqqo0C%lilGMgF7}SU_W*}@ApD@w3YNw z3XLyuiI&T5$M0rDzgAzUJt&1-M{>$~YHNl-MrM!DS_7Uz9p6POKdxIY2koWOHp5zkFcLEkGKWmma~`I z6n!j!UVp_7xWG06U=|kZ78K0tuUmGSjJRY5M!=G7Szo9S1=waTyF;0HILL?z zhwH+lcN8W`v?q^sKI~*J1Bdc?rZ5yFN<+!;MHXUUa>x`>ta_hJ?au{jCV*Q+zc^y! zjFu4kcXV`Zw9&rz_OGG1WKT9yzV0Pv|I;6EHAyki1y_mqbhmSF7AdbkIH&i- zJ443v!~Q^+{T9mVaN>o!R2TI>*-cqY)oDiyjCNsi8Lv$z<({7h9#jXI-tHQZv`}q# z8tE(ZUyXbK`||)zY%Y)Z*x{j?#$1WG^Q{nyF9MAwzjtZ;BBDl&h+P{9uZ)Vs=p@VXvcHhr_q9j%tF(4zJvCMQTq1fzxyuE^RuqCpM*ZW1 z33UqaP@*IA9b1pX<1zW>=J*tb>#Xy7`6~^{SN@b9yZZ^h55Fuyzm}_b_9x*M2Oge} zgzMCctno@@pRV6*Y_7j!rXI90xW28o_cS2G-k2~WzkDR(oPKgJalR9N`7!m__~nU; zjrWsjg7z=bOn5?~KWsb6lSVeqti?_w)&nX5P^CGBC~?QQE8nEs_ydOHkD)j75SJke zR{h8*0PkF{al_LOqf(k`iS`4JvpoPi3ajvth|j~>M;mXO?n7^un3kl&eBDsX0IKWM zGRK{z%oRLiS26MYMT$Pb)J;KEI~vAD|6aKwcI8(jx#c>hZ8IPG@n|JpUR6~UPa_>6 z5NrWER)E(}lA4;Hqm|rB%@VLq5Rrz#hkj41KZ8ECUUh3Yk<5BFST96WvtG>&*xdaUE81$zV!CKH*8Pz zxt9McC~Di@*2nX@@0X6pVTNqlRCc%9F~N1)6EF3{B4{(N>$*4k*zL=e2LLpV43t(`~XE$2-># zYAzz{8?q2PIu}{0s@FNT>$_R|+<@iG!fHU*7)z~h`jz>0P0V|SVx7mDT})QGRYLYB z=4hc=q8#rRXesM4C)VuP;Dk9RL6Hagq!G$Ygf^9C6)E^*(X047(p;)T;Op%uMk8)y z@w0D2XW*~AzeLkYI8Am2zH5_*D*H^AN6{L*-DJ`L}U6oNV)mHn_3^IlHBlf zJXGGA)yHhdf4*};l#$1)hyPaZb5BewO7wZ_meQl58vnUs0QS1JvN*~&M=l?+xj7}) zqJHVoZqjET<5>*#9;1M)0i5TYUKpVe`SW4=;U81kT<^!b_Z7Erk)c^LpEbYrYgDba zxlU&4^9@az+e-i5W{hf56zUP(Xmu9dC?l@(c&>LpO=U0~-&#}AX#N{ASI>~d50lpY z^6^^3C~zdrt$sbLY3Qfs9C;vAXSa&6((VN=LFR7{ndVTBrrif?4y5Y%bxo1di{Uve z5274c{aR+sUW9KHT{T|sXV*YezuUxfY#jv+zA&7=fnzUj^WFfex zW4U4FwqRMR#BLbPOZ!QyF>0eGTF28a0XJM&M=#v8HxoswD^@Ggo4nkX`iAozf8*AX zVy?-`J^@bC3=l{kKti)vJmav;l*IQp#kB<$8*r;gB4_M${lRBk`^3l%dh_`15WIk$OIcRv6-ZDy^4f9ZH+duDs$ zI8|?^J#XiUA#~3s^h71}IPRZgh*v;j(Ynk($2xb?0{o44b|cJ!T~*=CrBqyySGic; zc1*X*wi;{N*J-d1X^fv_T+uF4!s9Gk3EiU z+f=vKI9)%jW9l>QvASfO72(^xH6A`k zXl=Ld4R}!|`_Pc7TNE(K-w}LD2`V3W2N`5q%?yaS5oJl?@hUbSV-iU&&_^m1YGD|} zVA|rF2tO6#Y%|kQ7k;l9(GzJNYGwEQu~5=A+GJ~Jyq3ly)|we~e1xxh)UsXm+#b~6ggu3Um=T&_2T+nYToDi(pKRuU@Zk?-6BtQMAiyjn_N1nX3UvCK*@2n1W$c#eJ1E)p4R4o< zL@^%2O^`}E*D9RLTV8uc^Q6)&WA59)Dl9JJb1_*CF-Zl94X(|d?i+T@B~6{3H6aO8 z9I$Lok8#IybdFaPFlE+YT*96;ooabXJby?)!ai9yL34X7(hLboOf@2=O~5&paZ~(? za8LDOGLSS(Rl?ewsHw%77~>|O3!^@V;G5Jb-J*S6s*%~O?UA70n5jM>Xic(BaXEXg zS|JbAcMco;G@Vm6s00S)dKLP$kBPdOfpk7Swbw!eihG5M_nR?ELxXZG65#F~g~S-U zJa|>71215#c{Myi?HjQ_eD$L1yF;}~QoUq}xmlrjHCOGwJKb@cNi+U$?#7nZKFW2x zfz(`6ZY@sEl^}OhRd0fWWVfpDys-BvJIh`;)uv44*nAzR<3&2jsuByK#fjE9pd=FI z#Ks1hFo`Iu!E&<9N;U+AZkTv8%w;j0M61q@#$s;TF@-B%*n$YGL#`jO@3Go=?JjhE zOADX9E^{tRv<(TzMa@DXOrSq&ko9%twQhILd|VTfj_cPp?RpQUr+yb5w83*I=;e;p z-fH-{!nvEL?|Ju4BZo6L7QIj(fLDc`;yQY%It(=rUe7@;xqWD|d@x>o8bM0=i8Y=! z{$Rm!bW>{5%cXgwt64KAl%#|SKI<>fiWU(wMK4;%aiKQDza4_n1rX6V|nT7(Y)5BL_gJ48^L zzq=p#^}BDWKcQIW@_AWQER>l|0O#oi?y zNFNsQTN4kF=PK@Y)SCC{PAF_i)GW@8n-TMX8;U|N$cj=Sv>_fEF|`FYSV`GZVijd# z7JftK4NEr45FnORxOFu{aB#hP;}JXlk$eHGufUinPg;j&M&AX5dvhcL@qgn7WNJAl zj6!HXt$mkxIst?X8Z`d|{BR=yC&c34Z6z>0rg=C$xEngmW0BIx<*ByjVN+2JR@m#} zigOk}h~VOHuXNK9NanE;HP;woNU_Kego(?0Egfes5)h6>7WCI6n@Ss?RERfayHju6 z=C4;Bt?_rV!&U&Vg|hesQ(e-^vU%Zl@G)hTb2~(yQUa>t-S;QRP4tD#c%FD^i#=r) z9%1A}10`v?E9vikfBoM`yew1h@J{r;=bC?#9vaa~lZDK2G;%;kJ|LW(wkyd{3kcXC z-Nt+?yN=5`<4Gdet~{)1Cssc!CtKw>2m!6d#-5EPMjZl6PM%0l$@rs(?`PXNZ@)CB zXIGO1IL-$`Jp|pgwv-67nDJ1Wh>`c6YV-SC*NQkc!T^d}8-6y6A0Xx2Yh*8p9G*NJ zI9AesGg=^O?bUPXyHFxGRrn6dhZ9A;EwDGx%#y12PIYEOV-34+RU-+-8ZW-_RO_Bi z)#CcLL<7K~>5O!fLh%QxnY>0&}=+ zk&=?xug zgrBeqS?q#Qu0LaJ~@3^Roh%Na`; zd=5^gEZX!b4XeWf=OTr|itwCDM(?=vi;+kBU(-#ed12dGRk#x3<2WdHZbyRZZ2(*d zz7=5nBjkG(1l3&=j7{SEII;Q02ewSNvo2%h5aOt_a|zx}{KXLIXC-*ITo}DP##4%n zRX;)&buUhC=?#<4&aK*$TyH5jW9h&);gvL%9{N=s(Z@9U(-G~PdT*H5bC~R(-4LJW zAu6XG1MW{893iGZOpH&$y|3U~7+2K+t|@@izxw22&EO(j77eU}D^%59t2%hm6XHW= zV_sQ;Il^<3{Xqiz4Mm8d#Pp{ufP%A({{EU5tf|HniR#b&fa>$9VtIjpOI zfUn>#Gz4A_^m3fN?>owGA8zTCM&wic&anI3#^CDD!BV)F0nUZ}PuyUu5>GJ!b&ut~ zzXD#>a4C$~L3j*C3sNa@@IeVI7J@1vXcn!Sy;m~08gQae8w1|gK03xD%B?=^Pf&>1 zPRltS{{I@fgl2y|*NkU`*+_u>%i4ZnHbm5Tsysjl=5ibU{iUKa7vjYN|A!$KYs?G{ zHtR&Ze^^2(LhAsmb-4t{B2Lg;1N|dQ||b0AxWe1{G=j z7xEbuH1PiGk}Fy#cqdp`45Qx&XW({amG-b@vb{QAu)!=;xw#OScNR;WnBker@^JG0 zm`8ref!GI+zbXobbpnqK?EO~gvV>3uFZQLX7>XWLEbzhQJM!81<@228KnSc9QBWM- z+`;UBW_|x6N0X#23M5D_W^UG`OA0AqT48`0arp8_B;iiLTJeO13I|-DIm}0RA4FpW zA6;GJSo^>hh?@jFVj$I!==C;jaB<+m8Rz$qMve82kMb8>KaLEB6>#MKf1`1`L*()b7K7E^7Kr>5{vF+8rBYco~GeG`5ovD+U-Ecl;uB7 ztUskQ`m!_f6f34@%oZuF5^d%Hq9+Bs%%aTGd?y1JLXflon~RpKRnU{fYET!eZ{myD z-R_($DozYV7)O|sP|>64k!&&3l!!O>FkV|W8i?S2;%fLL#(V$KJNM|X4AYa@{pifT zi_i?^qT7sH#c_Ntj^9SE=7QzYkGC8WK;dhg0^S-c8!v-t@^%}jRJ)RP?2-Ukap>oN z7s&>mg_-o<4c){Bo|Kf7jfXX9kct~xPE1`}Q@a728WZe);v_UyPZJg@faNF*eTsHfCYwVE=F3KgP-ZUu#)dnA!frc>dpA{ezq=|4Yct$^O3> Y&%ZxXPbY`K%FNCIPemoJC;|U}08XITTmS$7 delta 9436 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%0AapPZL;h21r3{x;_4cr6hqonwU0w($O+wbO}{+? ze6*pyHUtFY92ly%AZ?6C9*#2xQJoF2}6We zmRQZb3Etb^X15N3>HROEr>8;47^JpVp{GFC;EYc<-uh<2Bu^eA2Q#&`p|=j9-GPo( zwI7}=N%W}5EJ^ac*(@_@cE#w%w_I~^=H_GB)-mj4Ax8_EW?hamn%^i%5?0oSzo6&) zN9TCnOGHy7B?quQzL)DsCtBK;~gdM{&KqwhYvSus6 zkE}x`jrEP`RN5_)Eexem3o*hqfJp=`o1C1yPhjclzpKqB&xP<{CsbYZ-o9Q(G#hJ7 zK<6qxrl2fl#V34B&<4N*DDasD5r;E6@*U$Alj{T}AK(Vj{zKn4B)jcsBD>=^bh5`D z_Fs^WLActBuK8v%6*C1QA1?@){FzxEGVUA-#Fn{#MdO^88DNExq0)T)8!kh|a)ul% zS|mS6Eky_q6z$ev@q8~vxp`%nt}u1$aTfj+a1jLhR9#P%ecPz4<09_`CdnRgw?l5& z@Vasu@*-4_cW$;ShIzfvk9`49ZM*8d0KC<_j*lednUnclMzPLmy-g00@(+X{)8afy z239N;iu%X>o}6d!mGAV)>7BJs0#tvTsODbrb61r?@y{5k6P9)v22$OgM7UO&+V!W; ziU|#GQ_Pr(yQJf`XRh%)rHf#I3}`61v44uQjuWB@GUqex$H0mfwf#K@BkWeX^0u=D z-`L@_Oq5lc8-4my_22fZ_{?Dy=T?vD8>txYvlfNB@b~^w>s(Ura3~r01hFOB=2+~* z!EvB1guHXf`}|?+NG$7`$3r_H=sodn+XkAIv*rK&nEi)b%1DL*5eud4N3B!2eU!&eUlC zKLCP2Jp9QDob(XTf9QV>1qFHd|0f6H=H>fe954TWR{yWCAeX@Z)&l|mm!2RWFZX}D rg8xq{K|cQfX~G5M;S>BHCR{*XLH=Y0pfWm;j~9r>z#yY0i}wEk2w2vf