From cf55541bc34a70068a3ea7c07a01a846c3148274 Mon Sep 17 00:00:00 2001 From: Eric Bollengier Date: Wed, 7 Apr 2010 10:52:53 +0200 Subject: [PATCH] Update bench procedure --- docs/techlogs/accurate-test.ods | Bin 91379 -> 102384 bytes docs/techlogs/accurate-test.pl | 268 ++++++++++++++++++++++++++++++++ 2 files changed, 268 insertions(+) create mode 100755 docs/techlogs/accurate-test.pl diff --git a/docs/techlogs/accurate-test.ods b/docs/techlogs/accurate-test.ods index 5749810163f36f9e1aececda3ca42bd708c22810..86439c2884e13d8cd5a5f917b115b62417595f0c 100644 GIT binary patch delta 51975 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

G~~ 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 delta 38599 zcmXtdV{qnA&~2PeHrm+SY;4=Mv9WFI7n>W~wz)~3*tU(0?d1O7``-Ius%uX5O!d@E z&zU)WoeOg}3XP~J0||u=2KEgM?5r>}0Z|F^e~cj^V4b?o`RDNI0|Wm_J@=ok4Ambm zGmS<3RQ=@5mdcLvikzG+EyD2NpKi)O<>Fti(;Itye}GXbQ7KXt!TlKv_AarBK!@8Q zg$NKFh`IXwFeAX$;3V-w_xqYSN6x|FbRnBYPTdxGyO_`1x?k=2x)$h;!u-BHc&v9| zW{qFM2XMfvytWDf1b>|U9^TBgP;(^0pAUFNt!1ZFo_Hf2HQ)br`8;uXV||4dwSr~^ z%sEnl?7htU6{7yXJUwD}``Z(C^j~W-GY|Cwq28x?DL{94?8glvoL5wM>?^l;IZ%qh z5kREp_hpk@a`Upf`tacTwRR~ndOMLdX=Z*7{3`)n9(8ldK)9tI=j?*@kB_9Ua!f~h zFLR0ww;*5AaZpVxIcMSXu~Le8mkq)Fy2o78O-mc*D|^q(esOK)^>WjtqX}Kr%|AHt z9J1TWrfzY6SFQhhYrjmXtG2_#=dHld@YMyhW^0VTuDFB#@`xP%^7C=wc-cJMmQZQ} zEUDl9zw=nvuwf%iKOfI+F2maQ$iJgg6t8avwRTcEaF7vJiv@{au}q&3@cBTi_>qY+ zq7?1HF5&cawWoU|$9={MwGpI436`Cop3s6ElZr9}wD4_qo%$yvA@7>MSx<6PqbaP!gGLn$mJ3d9=?T!GywJA@r8%Vem z(9luaSTxi;%}?7B`TGlD8O-^P6!NuGGv`aEk} z`v9GdyE?phqVD|;r@Lm5fJjd_@JM>|V=%g+elN6{Xv40D;S0UyK83RgQfM$z=Pmer zsjnKlm(msabGNZX?Axp%zF~fR&CTpyD(yqp~aa6I!wjXBQOxlRs zs>0R{Fw%0e#p76JS3#YVQjx=Zs?IN>l+CnSFB3@0vTZyHm20s)%4-K!&8AJ(QdH^S zrCfYVb?-Bs3ZKcJokBhiBXM1VJ{_QxJ=*@_fELUoKiJ^C4)sf=LgVb+BL^<%yLIOI zu;jg%wDv6~k5-^{b_G}g|2ps> zP~&E%lY+!)!1^{}+DzNnpI*=qLX;9jH~Ql)64VR9L>aw)DPorG1>>xDWmRyk@6~Rr zdi9t7<~k_ZD;~&0o?}cHK(VIY18jFN(%&dRtF!ihztV~Qh6Sei z_dHVu?qs2T373G4<5`hcSu8S8zd=CPo!)EJyZ8#WIr!_RRukvfXRgom)92&<_7={6 zng92Nz3yx1z4n404;tsPxRuG5Q|fd;$BzCcj?ZoQX?jak>jcyZs>J*1<@a+>0bVc9 z?Gn2?66}fQMsjN%8f?jYyd=>=tQtG0GM{ejd~TQ9UVv75pNf{LZ*IkUzV1kXueD!< zWJi&t9}+H6`1|5;+|ZPU>Q)AtpbT#-mQe8J{eO34KluBqTOy!N?X_vQrNBIi_e4=> zyFWBtO8wi7WWHf`0(bHi^DXK#_pdGan@%GB6}vADsZ$~6c`A(Kv(NoQkfv3{LYdsI z0-*h#4%lW6^1G>S*+vjft>oJFJewEa($DicJ4o!@F(gTM$wF4^CbX)Kcge1wNANYj z9hop^Ai%J6F37rxwNJ=^+optUv7V)PrMJiqH_o;RG)zSBv0Q-aem>lf6%{HAB&9bm z5!8?MC{jP^+V3bZBW`GYH=9moKNq$-2t{*V0ytnxELRIx%c?SWBAxP6Ei1V;m2!@n zkPfv{yvm0Z9a}HDb>FG1$=c?W>WM}tVrF&Aam%sZYB;Vb(qWX_snO0u4#uyH$V7bzo4j&G^up$869%E2m{7-Z;z=MVF{lFjud}?#$B=V7%Ag z11+BR+g0k(7?#e&U4kk)gp=4g*` z1fyXL+|(~BIG~KJ%$t#*zsIfR z$8#?26fZ0ZcorZV7#2GcxSHRLy%|e7i^}Jy zH~YKR6z)vcjMn<8HvJX9JM-dX6iP|muO`Pvc5}r$nN3_)y$y0$^_v&1SzKiQ(?X;K zD`$_b7V_Mii;Khp+J9sLv)R7exY~ugD=il{Q=bFsR|l!q=h=7b+&UDd7}x&o?(Roy zG%v8i)Z`*XgtxrVwPp6fe$TOk*Yv1f3ZG>7Ugyflo`lIbeL;F}_7`#v6dR8HsI?{W znToHEm=JdtBnNrdJ39<~0{7R5-&xG{lQIW_Vrx^5J^2Hq+{4d-(reux6#{1pzXsi} zv-Y;n)gZ@ z)n_FUzEL0pF1Rm4>rL2@kPO|p-3ek%c?gUUD0NJovkKBATo(RmA55h2~t5T{4lWOCpRTg%q!6jhf#`lPJE-VL;_j z<$J70nNROK)5jB}k9ZQV`lyIdv=wm8K&i{tTsTuuBf9W{)#)v7rQkxW5?}|WZ8^9Z z%&N4n_YQo%E@Rp218)j-v#+(GUk?-!{$t9#hyA=z?kXDt{ZC7;wT-~oAz8HButSj@ z((fR?<&`5EHv6h^Ecbh@na$-@i7vS_8EDC*jqR}MPNEtH(}HVN@`8K)u|fB(zW@{QM)U@a#rLgG(0 z4Y}8ESwxbeV=C0{Ycg2~wp`;eU%kKUpK6F(zz`{+DPm?Y6S3YPLMSb~vEYb|(e-rd zC>SMgTn)LgAkcsx$06iT1=^07if?(7O-p7Fb$=r!Y|gLd`3xzKnOj_ycpzScK?4Nk zfRDKBi=>uM{K0A~tcW*fy7qoHCEz7SlS@(RQ}t)jS%LCegOaG6_@(osmX0TsI=2Ov zw9@C7>Wd~M&Y^MoQZ_4#O!*;;*_Z@1q$xK+>}w*(zzQ*}QET-!U!&>p4k}rJ%U(qe z+x<&IW-O$NHl*xJxrU@dIYe4}2%@JMAU|wtIcGL$kv=o)LytCj{KIytVB^f#80yBg zm#pWZsM74mW%;2Ti_v_Di4FHbYV4otr57bMe=<%UgZ(|LDDSrq1;=c zCDnFtw`*qdU}Cq~Te@bSY@8ttkWTntCV+D(DoBW1bNx)_JlNpcP4bG0Zu?jyyo}1^ zLycG;@iCa%ud|nbYV0gY`AcTEWYU)T%!xxlVdqA(r{4eDbnv2kmDf`{%B&wki(d+F zjLFEtS^}~(V7|8*T8EDbb9h)X=``r)3y95u4uXRcl4GVf8^OVJitAMffOKc>P1aDk z6S~|>gsE8#&o}E2%!qzW$cFkaF$p{RXX^W@OCq?t8z`PMW*0;WT*uV7KHe&k$>Xrq zt0qSOubdy2zo-{TZVZ zi>!o4Uxp%~h7-1`kgJRZ$clzuo1U(YJFfI+t%RL}7xF0&xPy;7EMLA#0kl< zwi~c_(h~BKjY;T_jS#Z&g?o9$Ymc2$@57Wg7S$~A#tGj=k3Tk1PZqWdB{>Hzs7!0% zFiB>!`8FSUqGy!CsguefD3dWs>Lv#zCj>2M@oCbeOXQo3Wm>lbqZQ!=t(PVY0J;l z(4rT#b~I_i9+Uc;4(QS=Zc`*@eamR$Xh(Sq>fmpeZ{io!UNuS3q_Q94ngcDAgwC^g zme$Oj^Bj4^HVCHxDP>)qk0uN0OS-7vo3pJ;F9A^{w)oV7z)mUFQNBK**J+5QM$$^N zwqan|ZnZ0m5HHhKrPmK|7-Vixzx?EtC36P{|&It zPG92wmt|BenULX|t}t0;>(RWzXE8gH4e!)B>?S4pPa4ZVpal$7AvGnK0+#vdp^(q~QKubxS+r7LWt&h3R63x#FJAWs|&szeKN) z^ax;4BH`MzGryl`G18s|<}X1jIAfOmq+e>>F)r(Q7}_>=ELDblehR4J+_)(7*-tmFa4U*OxSap z@!xCCZub*nrth|7s))x-7q&b4ulgs4HgllezFYY~Xu~_d`rg-duEQ1jZcPnD1y#N& zR(G^?!p)1kG;ThC9Sd`n%$qqArh+GQyZau+lm3d82;W`w{&$f4vp!X!yDP}~0Ef07 zG4bzIYRw`yRj#_xA=$nUky|0Yg3M&R$v3=)K;AzXoKlZBct=W!5sxqz+t+s?rHo-}Exl-SO0^hslW7aG3y=Xf!IXG0d5*49nf>n? zoTgHHQ%;x3(O!ta|44#810l?`1rBJt_3;)vTTh&6l}l^UEjM4#7BP9CtJ8@s(xf+E zitWzUvU;%9Ta>J*O5h_1>@NN?{aTHf!l_tjrNh!+n{Q?A0+n##AipJoETkoDRq3Gy zYIwKxW?vscuPs`0j-5%8cH@T$GO8Kp(rl$mxTL>rQNu+f{w!vVQRG9)*a8GxdQ(zX z;|7QlL0SNJop}luZtAM#X>u5J4}Q7R?;7srQYTYPzj<6ix{Os93prS_&S)kb&+fkk zYL^jZI+eWTs_hu!x>UxC{{^l_pHz=4lTuIZ3@$rlrAA+C%$9U3p^aue7xs1imE4Mq zHp(sTMBRGm^xHj?C3&}%9+2z#|J8jE6{dI>VF|97BHQk}NNE z0-KDRgmsE5t$xZp+0BQq8C1_ja3Oj*PXo_pG2T4z$XYg`Gmm@k!e)WSrao-D__;Qp zN1+^SgJ7;_JW6VEIK~G#=z8dh*pRRKgV~!C|Is}0#(oP)>uOKSG-A^m(}B{WUlG`T6jl^}7BG@I7z! zAem!`nVVIkXa9F2NlWVzv>#|}m&>r_EM)*slumsLn5}b$OR^f4oavG5C0aGLH;e*3 z;x&i|E)TWy1C#hk3LJZc9` z6N{lb{SR7WBa^I76u}!RwGFNvBYY3ko~2R$b(?nZ}cU$yU=Tz_trj`R zP-hTX^iB$Y|E-UbYVhyY-@{EW6EC}n6*sh0rLRelm7=$o>V20XD@~XmIUKp*&)#a~ z$wRh?HN(`4mvtSmnE)1J+ci;UEA^Q{=mt2PR4!UZD^Il6rU9bn6)_K`ez~(!<mPFKkbDgBe8wVWOEssT|M^OVFhO@umE-FlH_-;n zM=1Nn!W|!%C7iczF=mt&Gh~?F3#|wMBj=4dd zmot?>mN0b;v{WPqbCWYs|FtNRm6B}7#%QQ^DPx{@cWozJMJ414$SdA#J zi#LK@NS!Y7+d8~z6s$(pnHV@6w^5h5{!^rD1oF|=F3=K3cW&7CNQv6w(Njo+#F@^Q zCY^|FDk?&?h)R=>chX?5MDu{2q-Wx`%Fa`yII*c$5wp{Nyq4=k*DXt!_wP&Br&QT-z~ z!fa<=Mg`Sm??70UV*J^?ju)gz7T`Efor(*aR#OL#1Fo4JuT`Gsb1?yFs@LpKdQ~^hTca)7mrmGilBHPGfaHI~ zGF)hu@=$6?t(M1YE%?jQfIBB<=p(^Y{yg0hS=yRSr#w}A%}@C=NW#o$)a0%Fr>IpW zL4#IUyur_8XN$|*(sZkr`A}IEgu|71oAt}}!Q2MrAQ}aEHP&`B_D*KPkCtC$E3#Ao z3~R`MbTyl(TiEa)ykaN30L*%PavN%LZvv)GGSh2twDlr=(15x#G(xqvyztX`mt^u~ z!mhH)==A?El`C?5hn8}YT}!+1(@KeQXV{(W_>64kk_9_~@`uIL(7cjo*g&ntW}#~w z{HC!~d!htmOR?&~dla`zoQ?=?o-feQ8)hrTRe#~Q`rSA#*~`$$%8H7Bg-|oGn=i8t zI6uLD7CuWWEj6BKNT`$^mSpOXyZV=A>B}u%L2{8GrM2_bT!i2IXtLa$PT6eFIoXUp z-prPXG|_E~C;_>?mF{*vmN?J%)o6r0@@)dtI{hWF_BB4D zv=6aF-FK)izTJ{1n#Ui*`M@y!L;Nv$TD+6A&{yr_FG|A8&X>>CJOP}z4cC|T-_J`q zn%8vR@2P||OK>hp?@`RX({>?d$PmQ`Z_1#3kBUxzW4F8oXdfRc9Q9KAzK`;5 zzce{duKg9~@kD#xJ$#`CMP21SO#2c0dr2`$Wl zcj41j|GUNc0o@}~C2vCD?jA|$9(_jpKlf_rScLI%s)yZ^C$`%a)e5nV&>=VgLBxV;)MM$yS{?e)-UE;9)!o#&QbA%9IsBxq!vc`(gxQf zJ(j9^7akKm%7=p?HVX`^`%`hyzf$P^gVHbB@)-K$or*YAWf;*Xp{Iwk=%npc!a z1TpF_D8n+iBVZ=*GG&BL>ZZexs$d9F+Kx?J!XU}u5A^A0>?63}H##wCl!BuzjIC`R zOXGYNun4s*BmV{$62_Lp55hPC!o6^S7rA6Dz$gb+I5S{+srA6w0Y)xx$Y$dQZVAx_ z<+l~^1rq1ZA8g0**5@xKhi!iI-*-n1)hyj;FsWjaXqDAMgS1ndhE6rJ{B5Gaq1`Xz z{=9>4`0*6~^$0{m@I@J!f#0N+dUoXDG~n5zUxsZ>_6QK$E&9ZjNC&G{FS0HIW>MME zY$DmGU~3hfFrV)>#J6*QzAi)r1rZo1O1v2rJv$s{0{7ioPu(|<2})=Cd?Y4f>)?8w>LP-+=f@upt216;FcCr|KPr3+Tme|&3`whDq}@NxfIpVKU+i9hP6_a79RK;UF7VOw z<@z~1ttBdO`&HojZmw2qR}lo8yFvKR+GSryBH|cI6NPYojB82NVB&0$E^HjR6DD=b zOReC6tADgw#8wi$L9P*4DPEB#{98;nBE2GsJ19G1u)pCFJl}dZfjpN(^lAAuX?2Gy z50z(%YRYt;t~-#*kWXzhDrXPZl>bOLXI3+V;ikA(^G*{WS`#lYEJ?+T84(ig`u)ng?Hc&a^S-5I8iI`*b{53(?UtQ-*|(Xbe~p?acoM>!6MRnG zHre$@4teYnC&o3iMP-$o<~w7w=$i~3jcuUt41b}&5hm;3Hhf`|m_*ZuhFZ5HD?_et zawn6U#AM}^t6CR;&~jx|9D|?F(`&N4Vud(Gq@$$d%sq;w#buZ{RMg&NPw1ha=5s!4 zp_%QgjY=&mY=TsLPi}O@WCQyTDYR%3HHDpXjm}4FC9bZPjT%USt_6zGY$0+|D&DG7 z3_u>ydG5J>I>LW1>@(E1O-pGNA|J69;+r9B`rM&zVO<;m0T)jUAywWz!?+OuuG5Ef z>oJE1pT(xf|%aab3s6l+$^U;|sc%y9BU@tg6_mEAQKh@S!xG7^2iwFW?0TD~q z-AsE`nU{XRjDLy51*r{QSJr|%Lw#PID9!3K+2oxwHkZMU$+|v;_^F>)_g*g*fON$% zJqdcdtH$` zWk6`efa;cvLYExd^G#ip#wLI}?$d9=r~}U|&T`jEMr1DHLxpAfPWm+0F7C&6q~fBN8M3>uS_gG>7pWBIP&NdiLqxg}=RnI6oO+%P`r~aT(|JqWa@s zq)^FM)~yC(2b3)0E`&CS7t`^GTp6Jj{8MWHdsk#5DRe0313lr3Y-;5EJw?I4Vf+X` zM)x?Sm5*WAt!~)4HFs?#Nh57?^JFp(A z=G|ihVxSa9;}$2+VQdtsRPqp9mAqkeBhd~@J~3*V-qy-T5efBTGTPF=BFm~BPk4)g zY;9maf(u)I=*>#m8CQrUKlW8jwpOd zIEPJMO)EMz?T-*8FkgO>OomIh%s{@>ew zra?GJsR0V=fh@9!XuVLw`n=S{?iB367dgT9vSk9W&@CL)0M|UXweF9@>=bk+;)E!OVdOzm<3%s)CTK;( zF>;tGX5#Kh(R8&}sBSuwN5~=C=J5!aeK72Jn8o`O3&Bh90jb33qAAkvy2Rsv%LY^- zt91BJnUbL*dRay&1uNX`6eWLBO#WZ;*v0bVC%!HLPuDRP+hq?L)|5;&rW8?pNlR!= z75U}J87Cd_q_(K;aOu`b!S@wl$!@n?&9w~>6%Ogk$`DVQ61?Lju?p3JXKN8?0@CmI zEnZ^Ezu833{z9JY3^@J(d1~JS|B<&}gz_LgE8_IWbsdFj7Iaes|7jzuBMS)=8nl1b z@xZs0KWE=YYK?Bjgj;3QHaY$W4vwF^O-$U+L+A9eT!4F=OVJA$8C zh#MGA$Pq~p$%DPRPX#@NK9UnFJ*hN4UhF8KPbVeo`Ynh3>`H7Ru1~uHa9M&#MY60K ziXvxHsw|51Z7-g{rZZZMXEK$9rbAnJw~`nb3N)}s)IeH>FXY@VkEo7Q|A~O`6=8a* z(r?+{12%;WCqL)SWp)EuR7JG;kXwHIncFz;PX-%5b ziC&D#ve@fl71_n#_R&K0zB5jq-9V%k=D)fx?0RoPSw4SV4r9D$jhm zGtkVjHJ7$p$2<1$_LOR|$e`Js7X)y;6;<5ryG?x!KdL$a{#8LXP7|8D@nf%O)ldm* z+~M~qdX`S><&@sp?k-^Te&||M`qgCv^)OZNb=Gq1D;SIgU`}&z?Xjo{jXM2vsI-|7 zjTjFkYxOuTX*=KpC%5}ReyC@b2}#M(3kGIe(Zi_<1rr%I`DKMnezx%i8Wso3BcFui zS#<~cIEFMZRc3J~Osn^)k;^{pv4X-c?I4PwQRUWWdl5iPELE%KuN)Zk%`+_Oq1gqM zlDf9+LlVC^{2yNetoqHf1gP}7R>~z7k6Xp zoCjRyXu58I;547=Spx=1X5`9UQ$l@6OzxxlGvgY-Re}3o4Kt#br?T+%vajV)gaU+O zu$&BE+z*n)dw7Ce&d)f_usX3=*jXC-4tAng{1(t|rXEH#NAxPF(am9Eg%Q665WrB$ zGqxh}9E{9_8k(|r_E~aVct+ud;j%N?JoCpH%IJ8ocoR!wtN$)~P7;jjGsvZod_!0d z{s{+MB^0Y0<&{3VaH1;yvDVt_#Spc0OrfbIa;C9mEh+5!Zp9<%^hJMCsJ5B%yQVg8BCWSjH*%+TSAE7XsVCb^k)^m|I zGm2T;Sb;(pAKeOFvkZjuMhpmdl_7i5#LM`DH786vV)+CtGb)dwyB}qT)d<00=e~6& z3tGg9HILtG4Ztwljj5r-s?sQEFA{{740QK7mHUE!ZUZx43-xw{QqlY^Q#y@@djyg*2E@v?%NX z^(sFb!W*N(4>*6lmP}|+oQB8tbd@QPuZ1m2&YfJ7jvJ(lFh?mQbH3wn8Wu>`t_|}L z#Tc#ku~LPSgT&gJFVnhZhysUA=h9@h9IyTJtVE&kp1uwh<F4clPuCr)A%q)E?v$qxltzo3rodI@X868mJ ztOF&bNI8a1Y&xZxu4^5RZ?zl191czuvb-fzL?&RwCYf|3zzyHkzo1qvDrp@#XmwzR zpDPM39a06dN{!Ul|GIr0EX5M&_TGGZc!<()oyp=84sJ**rcgfH8yj98Xn&kngC+@I z8$2Vb6|jO-T$!L=vK=gB`G@>UhW2o7lM`ae{_hHld9Gy(lTeZ(#OMZ)8x{fH@PdvN z)=+zpv#~7%mPT|V_HY+2?d(g8&1os2Nb>M>yhFGg zjF@LYVj%mTu$<*Ajof85D}4Ky)A~8nS z1z4W^A3xUh(O$vGbPa<(DV^tOLD$ek`26n#&`kN5IHkr~g$}uhvh@US)yHVh#jW;2 zmC0XmoaFem81GFdejUQ)ju-RxM=M}LgM=eS{L(PYpPzf#;0SKnFe+K$WlQ^WIoP*) zLAb@J8apD<(Uwa9&t2zyo$GiTnkv3Bp6}-`X@gS{nD$2%cW5VA2;8~xAw*H#M&^po zz%6jL)zwlAQgQ5JRc%K}H3sRjzZU*jlgKg1FrbCKyN(JEG?%krEtGE!YKwMlqFV;d zc7K*hSRCFNOXf4BPs6si{<1jugG@zEmSON>Vj+@ewXjQo7jAvJBCEy9_DATl@&_Ti zr4hD{o8{Ft15Bc-aKSd=K{Ov2aQRbdoaY^%b%KhT0vxXAUr6ypj{(7WA(U+x+2@rp zN>+yL?=c4Z55W8F<=`Of{$Lo^)#puaZH!nFwhOIr5YphE&vRDBAYpsGlyKx0Z9}@# zi{&bfD&U}mY;s%w>veycNI}wGkA!0!D&4_~F6@YIBF^B= zIYjdx`{a4Dqdq`w!6Qc0!45#)lxi}33g)80U7ZZA&aZ<}wAkx{{6zd$Ug_;tfs2rKdPg8x0quiUK3 zlceMOiZ!jak6UD(G4Art3>Z+OdwOS|VuGMd)3ht_(!MM?%MPFkz#QtBE76HJDy))- z0%z=jeJFj9TLZeMg-#c94H|mk&#{hwgX_Xbnj%tQv_`MC#a*GBO)U1)?sXWB!UC{V z@Qz6dJ4=!cj3zm27dkt}<_9wFPY<5qMoh5P+83*#3MVR;uO#3@Oq+5g%R8QQh7!By zym~MCcB0C|K~6S^8iaK)XG2uI!11+UF5(to&h5G6hw|K>`p&h!U?XvwB#0h1(PAXZ zb_GXG7PaK!TLkEm2pEi?;;X3E3$dxn0=@;uVk7@0!)@urLCB`5KSI@k&nofuV#L9b_l{=@2Ex_@u><(T6D|D;|Q?OhGTbo1d&0(NR7_ zcuSDqAz!z_?Ye3o96x{WJ2zeCLDGshsUwP+RZddhl5Qxby5^zOQ+e9m*iP+!d*BE{ zMq8|oA||6DE79mUb6goryDb0Uyau3uR$Qo>W39+p=^|adeA^*KMbkChnPc^c`A$Z5 z4W1{*c*)(ccsh&B*Z4f^r;?O4m zFf)~?o1xk#va1Rv1=54|@Jqh@B1Yd>@a(If+?Vhw<=Q4B3TC+~XLUJj_3MB{Aw&MU z_^d72RZA*U=iOm#t-gV7=yI zNT`9@AMlMu8jNjPVQ$^Wa9yySpyYT5g|ZW}CG{jFNE_jPP*);j$CU8;?xA0|AA)j( z$d#nrux{|2t|eo-9s>Lcd00?sWG%b?cN`Sq`2_!i%-+t zEs5g0q258M<+lqVI(T9Jlx*zG2Jz2WzfDPUX~qLeL6})wooko%8?Hi)z~3Xx@Tb6g zY{6Jyd*!Biq^~>C*W;Au&CTJUSbsen9_ZlXn4U*CU#u=Z5HegFZxG0H!Ql*#)iV|z zAS7z;`yozc1OB*Gk*4WXsN&fg1E#<0e{I7bFVfd1Re;*H3B{;g`%yu53R}9EtB$z> zGd@SsoGJQ3@?e%vI}CGU$U+P_8~@!SlbS_8$fLnVd9W@K~+5i$`sDEAt*1zJQdrvdoA;fA&Q|IO)P7 z2&?9bA9*cMnj9w5d?;r|Bg6)V`%X}#Aya`qf@v6Ub5wnS2KAv%UPR#xandg-q_?GZ zq#5MF@U*b5`w+I8hAr_@&a^eAwT#Tq78p;z-n*&?{Qnrd@^_^EJEAJjOkfQ}X&4BD z<+SrB*6z}RC;*0#w;*z5j!dz2RTjsFdMSr`M~3qfJ^mKlU6b)PSXw3`G>0mFr|KD;3c+RJ z8=8qe$$=IRAh2^sr-ixd}1Vk0!iZwlvd9AX0<#cX8bHSKs-Q3bBZ#1=RAJ4`8*o$o0V znXEnU&DCLffRe=L&;1JBq70x*M~)Ub21zrDl9smJWV^YetRo2>heZG2WsxWENWRxq#*ki?SCS*46H+0( z^l^y3*unO3;6@~W^BmlgEmoRoyDIcAT`)Zw$veBf~u`rh)FyLzu z+|COSSP{Pn#9|;wwX+YhSRLMFz8;k(>A@9o3<8Kh=5};BJeHmLd+Z?9D?-$DwPh|| zAx-1&ob7jFI^S+XW0A*hu+|d{965HfOwP#a?o%##a7?uFPbm=|jU5(9*8`avOSST^ z_?Fx?Ay~w%0odW1%UjO)s$lJdsDCKD9lBdG-PcS$&wH?cIsCdk#G+qp11u?a`=X#r z8UeVp)$)q6ikeFG^z^0sk2qbp62V}TvouR3R@f(7t{XZ5kv7&916O=S0Vj4Poy%?{ z-`;c?g7wIfMG!2>b}}fiS1Kd7v4b+$cnPCfi$os3|IU|?jK62IK)!*i_UD}3!Kz^d z%hNntBuP%G#!qQeWxVZGwRZ$|?Ch`@E~6Kw{cS;w`d<8~E7X((fji*0F(SF0%9)0C$j(D8mZMP8*_)pA^Q{`TN}+cQ4?vF;!v`=|Z#NNB z!5#3sG#8pqD-8pzvsU&l&U!w4><)}~8g-#6eMN9kAJC zfL+Ik<5{In*Kvn#s}g&;#AwO`&rb^d;!qb|wx;WPHe>&{a7N3%_}}$+>Yv*sM-qt=JX(3!5T+yFF|Pzpq(&7GUyf4g74P3=z(! zKPUN5myvULeqZwNo|V(H0&v9P+&nB&R1WZ2FYImk&+n5Jo?D;-LjWx!SJY}megv_9 zVjSS#Rl0(i*(nF(S+;zl9rk%fG%{-fzta(cK|UjNl+!UddELV2pd`!En+pv5kV=iP z&~6$=Q@(C?U#&;Hfn2Ni?J|C25YYD-p+aHd*z{_}THusBz3j*=@Jyc|NTo&+_!<4< zh{{Cs9NqbiM*c*eX%C+HOZ>Za@j`o}`(1+AjPIKQlwT(^90li{R!unWI0j0AwFN^v5p`B`&<+t(n@ z6Jto8+-)?uLK=-%A%srPvNQkGzu~ls0Fy?W$r(K*j1|HeGLlR2jUbVVkhq^64TaR$ z1}1nJ?&`=c5CY50I_o)5F;b$lmtZI+SIGsFeyFE4EP3t68Lc{n$T?i53U}nl-A-B2 ziy$_;56zD&HxVGjZ>6*SBNrR12m3|RCu%fzrz|H9`9p(aHfRWq2krR|ioDM$ zB`)CoIUAX3J{ULIMdR-U4Kx)Im_wpimMfHzzoW$2E6nU%0II#l$YcXs<-);X7Y7?< z{l_nvw{fpP-j|Xw{38s5mIZg&fC5jK5a%;z9v5*X)Dpmex|FQ*yn;kph(Ybv`+d~> zcW75E>0>%M5G1f#QleM1=KhwX55MXK<*o5UZQhF*56Qk2e4^k#9^h?cY6Qnpz zgXW-?f8Kf1#Zb!ZS9Sh5d^yN-p!y|gC(|a3SrbU92-Wp_y4-RP28V~@sbj)%n7EQz zJZY)M9+?*SWgwROeXXNwh_jhh;PZl@P^kZ`Mm-v8rpzr8HH}5gLKy-2;F}|fcd7EXSsc#m_$$9Fhi6!G`o`=Cj#S)cUs7> z5+6IBk#=(s!D>}d3=1@xxyM_ZB1#)h%tJuETxaKwnclEIwz?vLsG@-k8-vA>>ZoQL zdT64f>QBu6Ghe^VK_K{nYU=PDa562OhaqLB`1Ge4zSu#!mqcEJf3&@(oSP5P zf~Ft9M$f%for`B};v0FJ+$GI&!wAIUM#7;XRc`0=a4~hby#T*@IJHM|g3qUZCe%%{ z0oT_%_&B(cDMk_TWBZT=V{^)|*^O4HVwF`Hgkj?%*k=PMoz*kfUG{Q8Atv>-@|Y4%o0VB8L(n1;DlaE=Cuk9D--0r$00yZ)d4a6KwjDq+>#Pq z{)SpBqPdiPM%nJN-Ws0M?<^SXAhnxlMTtC!l6xc?bRxSkiNX*RM7JYzN0k6qLN}2i z3WprMyUe<-qCUfJ`>V*_{&vGdJI3?6=mDpr?E|gNoJdyw({?!(m;SsByG#Zi+)=~> z8P}#wI#Vxa95=4vdv$+Bi})y4IRi@n`z=<1FLHvIevTyzZDP%;E86DT)y;8Ii&wuT z*MJ-U`LAYq<3Ov;v*@)+JDUSE?Z$jR>jrfozhDqNO%8>}pHbf6<9CeO(z@MJ@l#s{ zbmTlNQgUxAS%{)PAXAbl2HD{wiapARcn>Qu08A^INyycjpFB+59Sh*j*gsWj%W$El z2JG5garJjUr$~zg6lXRl@4>2_RQbUvY%#Ia_)aW9mwgvC6xsCsVS<1!>BRkT0QYbd zC8*S&nytLcVzTnGjdUo^?VtF!M{LCOLU$_!;n*u&qyZ;VVRmuaDApqNladt*HWe&R z*L*>)Bn_iMpN zln#2=#_cbBrxbgoEnLyp$dMONm%No|5{}l7+@tY^H{ANCWpV?s!l)EDznxO5<|0=m zA&2`{85X0@K)Bi#^MXwO*f;gkp?LP;;|$)Y0N%%4&(F7e1weIMwNK$ob=XNF3J9RS z84}KKGBW5u&=WFRkI5cu5;*^EqUJaRN$9l%7=dDq-)~u?xYRoamBodtdGJlm2)^!VhJ|Fy;cWpqiFvO{wN1ekQ zk99jVMv7_y#5Ds}@6jw4@5~A~h`!DwvVG25I!pv)GGg>c-*1p;EQF2 z$_0^Idj7e5nJ z*yNu@UQ`ti1Etn{5U<}j5zjq>`gU}Gfz=h50&rxKHKuNt^-k^pxVt2pWM<%KQ?l@r-K!F3wHbCd z44U|IOF5f&xH_H{&~1u9BN%FEdDO2}m)U-Z>`ujabXrOen(~(1KWv>2-dIXpK}$GM zRJ?hu=^_x`CkMv<Ux9IN;{08F$E*u|8m4O&O2F%(72 zs(tSApf>1RRCDG-hJ_g7B=g|0axA9bm(KRb$D=z)GGBb3cc-fZeB8mvP={4iH3b{s z+Qltlnv^yHM~*g0hOoN+AYOoO56)mgc~7A4QX#0ukeUw_&2Cxhb^FteyIhhO*wnrW zTFIXCGlvf(pkC|HF*rfX-pgAW>>I5O-V(zp4)H)HoeQ(>Tc&Mz4EEU0xeWw+Ncz)? z#WHqws9Ex(l{s}dg|!i=fomSsa4c5!(F#PsEkt$xBCl@7p2#-!68q;(3qf$wvK9Sa zFk*WCENSqtK=`96|JZ6464As97h}wsEOBIrxv*XVfL-k4?_Qyp9>l?dp+Qh%mXp(b z4CI>eOa@pGNMU~?T9F7`$V-&K%DC5CjCi-t1RksHu1{C=RC)|_d|0cNSzwH?Z`f@p zPW1N2Gzk=+56mH%t=)XpskivnQSKhSW$Ogzp$nGS2!S6yA&jAURLoIme+n~o!=)Nt~?TQm~<5)Dfdn$Hu z#`4B2+XrswZ8V2^t8s_Aa;T7OF}uqPD+0G2R(vQbPfLEN*UZYIn@jLchSM6f$BF~V zz%ihF)(CtdwPD09bMRt?(4Cg@&Kah}Nb;T=6o6u=A+`8@GLT%OW)mDa$I6#oZU%h? zFCVT+$WxXY?J$!1B(tVLN_r|^Z3XDNaQ_pY%U-*<_G7Zb0lZxOTIaxx)zfe*5X&ja z-Zlw_cYh6D0|S#^s`|L_k2yuck(-Aq-3BBI>5FggZv$hSKAwmR*63~!`1CN`oOn)RtY^I zA!wQbfUBzdM_iJS`5~X()`>>wq{eV*IT0d{^wY39RCBiEidH7Y)sBK{{zd zD;G|hUQ7)uj*F)vESxt0#@e~^R%FHHv#5*=H!NX>gJcrDd?k=(Ku_CM0Si!w>k7fA z+Z$1sHlB6sm}uCyC@&*c1SR$_@TdKh%<;ZkQ4jBAA@j3As7Lnc+cr7{IXv zDp$D-R7;mnB?Q0srEgkn!~CAOx5b~+BXSnGKI;R}aZ%(hL>SSpB84h^Ag1uGAqdDj zeEBZC%3PUMNkP2?6=<*8Pjf1Shzyz%nI1~c3-wXYfhbY->{}oG=i1C3dSSpIhQ!!0 zY_k8@7J7@3DH0vBFo$r1V-p3<3o!n$Rvt8XZN7@nKL}wMyAkHYEXC}(`T}5b_3*QH zr4Jj{wSB}`Gd^uqjI9)&k+zF0joO}u9w8rG@1X_=^Y04_8HTp!QRB!p>rD_}xV)4C zm8ZxL;J@=LNJB#LY)*|%hyei!c7Xx?D+3P{6x5##JUl@E`XrRb69Y5WgS!d9|H;Uc zkQYx4U^>%=wL_c#`tCTA5XfUIBq1b0a18}5DFJ26pl#y|0v#h^W(_{tE+mk<0_hS6 zy%p;0gh_kc(9nRTkLpxYsEn!@j#`nWi3^@tI$w&&HKETvv{9fs&D75tu*6PL(=%X9$OO2|1p0&aY!+X?XW{g=z@f1P@ z>7~LVWtGm0xR;l`6BgO$O-M_#v}F#+;I6bl%tpO}t zzznVV=?{}Tk9NC zyI#wuI`lCSF8qYq-xesUmrLb*}2CHbOz?kdd zl86a>C(sqiIIOmw*i1UyMfA?yboUMoue3fxJDCeJ_08G^#w_5Fi_|ik0JosWG%vp} zjnz=>KeA&h2ughu5J?OWg!adW0>xM6ZZgp_6@E`8e&Pif$h2cEp3+@mhv9P10w(Xj^nE+`-#YM z+xs(Q$i}|P{-V=?j-Co%Zy(Oy*oaq}NO||ReIkJy&G6il*8+x{LH#y&I1%7!^!{~V zN8j#nqRKq#o_g$?2Ye%BHJ$5bkZ^KTl>fHc;L0sa7Qzvy< zMp%B}Tq)gY{2lnkchaCa5PW#lEnheG#2Vd$<~$6D2@U8ysE2c@8gWLikM8aSh*W=h z1KeI5p>c8jdC_j&BYD>|jUIq;WdfrERCI?mcz$Y`?hWk{Ztzk^0blA zZuba!%H{GZhcR@NP($5kXj&LFoc(U+Rnh?u*V=6daii8`fXAId_}n)fXOMiRgGm)9 z?Cev5$>?G_X>p(VeKLb%LD(b=oii$<{hB{sO?ZlV80W_=sF+CUhspO~} zT8&lu^?6ECRw7>&yTxb)^Gn`*tU!<2u{fpxiQzuSX zA%b{tiXBPEmrRMA20Qr_a$05&R348_!>IU9ACOo;kLcNk^1ALQi7q{DxvQYwLLO&6 z{a1k8zbfHy-p1nNEQt?~~?0)`g13eXhe=b9^qN z6X5kt!Z^NH1TwvwId}Zu_5gqX?mJ!Z=`)TN-HN$0DShL+nK}=QTNB)L;^+8nV>f8= zUf7;mVLjCV?kj4Wkc7|;3L*7C@Qon+D*tnaLiG?~i`^d+w3FKZ!Z zL&z_(D_9ey2D2+BCxPVz(Qo~XR~A>25r}!6bUyv}x|PDaW`LC7@DGM7IpnU4%&gsF z?kQhjE|9A8ZADb;&c}amQLwMZ5v5tLNUSbc8bj*UDz+X98#7%mIfyAnCKSDOC)z;TQQ6mABwkdHEF;ndb^Mo3mgkuGQMP0onMmoxuN-?RK`XzGlfpp7A2$2kI!LzARCKb$84 z#FM$O4I0J|^?%y9zDN*_pMCaV9kDGA&6?Meaqy-YIUvcA_#)Yv{Cl1xM-r7A+mdm_ z$VifnY&nGaq*$Lj80D=OBZ(v@MmL_{7=Yw!2O^EXfNf4&S&-E56_dTM?ry&Uyb-$u z-WmJqgKWGxbFq@3iFB0>yoN2WBk~&Vei4CW1nQn{l#>7xh>%q9IH!Q7r}oU1V#p56 z9b~B4LB{MUl?j2kZ=C3vR89|&-Ip&KI8$y2=XhAi3Rqz` z0U5DS3tyR6JCjmrpP8%ju~2JUNyJKwG9!;V9+e8TkV2IjS4XIyhR9Ct1WjHaDz!oP}mFy9Yfay4RkzeZ-_mZ z#i^L=H7JCKOgUnK|A0rtO(eU~0w5MlH-X&Un0?)JVX9IQjj~#VnDp4_3~t5))`K74 z^3)Q5FEN8-52WMDOE3+PxzhHGrGoH$>I# zwlms2rWvhX8o*GR@@K+%o(!0xFX#x3KKhcGoUyr!{Led1H>49s)4+y*=h`t_! z4Rb+5(h+=G5y(%A?bA(+QOL#@xdobe99PQUgd2SRl3!^eGR}?!{}tx7j{zxn&VWh= zPmrY!=Y%-SC-Pbed^%1lpIwY`q3W(hjXX>h@?uTgJKpT>^%ZHEWZENO0>5%PTN4D_ zLM?Aa<%d{_3phlX&cHEl89>KR&_XS2MWxIIUbRo59YlDpimCC0%$cT=TrPL)#sl9A2alT5RaYd!TB}%p3VxD2HN+4^6RqUs5Beg=c zOO#6cV5w25j^CBVB3Pqk{>=U!rwypbE~5;mmOYFs=h%$a%ToRqYQRWtR{H!neN?j| zBEaws?7juk^YwwlU}Rqp&eToS(oGfHj?oi2`KfTdV0r%hwZvghL1WVG($q-_I5X=I zhiU1-;2S*KmX+REHIhci_dHwA4_2bDa>4w@HNeC;+?`^^tSu;d#8^R~ibSeD5yTb@ z5&8CMcmvpTQCPi^G=TdPkLRCbR4XzS!Sl6#mtM7oG6Am$G z;jS}kdCEy5qD0^FU*LA_3A}7$m(qN8)%p53s=|yIrO@x)CWd%|U38Oz6C|^tbY(e` zI6;uL-q^@mf69YNcEX=Xvl>%o#cLPx0_)#Vh8x#oTL6Sw@fF%}(z-QW>VK+gfnP*o4+Cip)mta`^F>c5owym+C1mm=lL!~JsztB|Z=}&j0e-r@cSr*{) zc!oA4?*kd%u}2C975Jq$rl>(53VKQC$vhSntRHns@f*SGFhMQFJB7;^GzwAb6{$*V z$XDoNIK!amKII{Q%}O&<8tXUEVokKliQJ@7dUM&yWzWg;@q@Fm@AaOpmYYT{lb)Uz zt2dkvJ{RvTp1SG`-uI%i%rgLexKK4LIIz1rNw}?dA>YClcO*30ED$>t@a}UN-_=?V zE*neRF7Qn>NqPv1YF>CDt0G)t~TZgAvq4X?jnG#uCqUNw&XlCsshzj2d=%h?S%jb_cC#rx^}G-ml3T z_qkYhVU`2P86-3pw$2w-TAl`v;7;|l=_*PyRaDsUs8!w(glw)<=_{SJGKw7-m#*bp`RF1`Qj>aS}aqeyGO7OIs)bLksrki z{ll#E{mTEywT3++Y&G2~Au z5zIdt;16`e;IB4TvwnaeGG6WzgQF~WgEVtXg5w!(1z3R1=B5LI{;hfyt0Nh2xsWSD zc^O3qi+^z;FYOja;JGxV|3?au`$sCa{zn>${6{)0|3`ux`y&DVR3<Z~ z?YzIMn>wZ;qI;1Xv19qtwX_y5{6t251$%3^#m(OnbJb8D-*>pPbIpd><&jXlI7Cb%SETypr-kD^>WZs*M zfr(31$j_XrMnyGD&q)^G%pS8R2mwU@WAhVNtvPX|Egvv9EXdUsCCe$^!24(=*jT?- zAE^BM=#|~?yvY?BdTfsfUr)dX+c0>-WcbC3e$D{+2+#1$@e^E98gM{|`ZvjSewZ)3 zs2W{pko9HLeKj`+fg-ax6W*~mE)fqNaND3%o8YIOs#3vBOFIc+An7P*Gh47Jlq0iw zc^g@I*Ch^ZkGiw_GPLw?C1weq9lCK&OOutWx*ZnYY-zQNR28S)P`JXhQ5C&}+ir@3 z(su$d$yb~?VzRHJE`BfEc>a+?#&a;42b-B%<3yJlmVbCg_`BGWg!b9M^)%aFCX(QG zHfeVFs2GB9v(Lo1w8m-c6}$8Q03CvY@kHtaE~sg;V)gp1J9xp~oT7e+@}EYpGe?IZ z1^To(9B%>|#I4dZ@0a2_3~bn5y*Jh6hn%bIZN|rthK9vq0vBu}VGmAri0-av8^+3j z5b|m9gPU3Hwfowq!7_zC(fC8)3Y1=z>ETCzYz1iDJaWXWswD5S3)2desZ*PMgL;2JWx)mSC9G=rCR_)^5uZ$xwr< z5jl=Z`y5%qz1(H*g!ZaTS+&cvGud^^2~tm5Ok&SC2eBNMMlRnQf<=JrE%A}b3pAr)n?7|e3b$M^YL4US+0YFfdB5R_yN?vZ&epv_RXK4g=fv7)+>3}HInUnq@ zG+(UDBhn=GdE5KD|6u<2V zaJ{yXR?InDdW!kpc&t;CGF;2R;In1Rd8qKY3QjMx{cDz7XN}gxnW2VC%GP;Qs||p`$~JWPkzc!tYv$;QkNtm}Ki6AXJ%CtN$e!8wE#Bm0%gsr4F6cvDjn+Ku z=wV;WasRFx9aq4VjPJDWJ7I1M;Q*K{mbMjtKaBmLxsD0fu;&TBH*7$ud0n?+*xh>$ zj>X1evpruM7nDu$5I-BFaoYKQcF*i<8fWeV~Gyvv8gGjLzIOpSP&LoAK&lJ`h6ZZ2ZVpemV6h#p{CHq)?QE4eU$TeclxX zla+ArcOE^Rs?281>2tMzEr~201;_YUzgpB+NMV?lO=jp)T!LuH-hD8I10226t$$5K zF2q6+d@iZ}X?)dRLI5D0fiD$8YjX6-9!B4*@Oxt~qsssinF%tcg}lUP=H~K}o=Pi| zi4NgmUHG4~%Je^G)kplZW~3`)SE!aNbES%5@M~t&-;44wKJu>?Z)7)Q}={lS^`39X1RQA3GgjmPOdieEU@?2T_15t!KDxi;Ff|g=dpJ789*oO>qX9?fs>GI_|D@iIejk0U{il5Jo!KnkI)ozd~Ss zz}y~xj_Rhlc46>j&q0IFVO=uE&Hg$5=|`8-Q88MzttRQwKflS3c-2ZuUC*Z)3OC}o zT_!mqKW9pk$Kl}TXcgtua<`8g8(=F}-*c!PhZWa5pZ@>DZUF(rqx**KvY%aD$BX_m zL8X5Z|KS?U&uL6`HxYF+eDvAH-yvg(V*@U2pFe9A^Z$lbMMh}THANWfVy{y7O{aLW zSeLr)ebNoWZW@PR;YO?d=k!#ZP;LJ-tQI?hI+YvXkD$Q6h#H_` zC$F82qQFac`Qir1n!goTbJoR?=gqR)w?aRBCNjY3HZdTZukkMC#%1IkZ>3morRZy= zm~EvPYo*{uR?0I5jvuv^DxgZD2J9p&TkuL0vXPd_8XQ>2LDk zEmKNUu$DB*ge;AemK?w@_2QC}*k5h@v=XM6tUTx$JNlTY{0fL0h3HRR#Mg&vdTOdG zkqjd00Eeche#yxQ8t&!zo)jLuzQS$+FCAvM+_KH>Juopyu}eR;6mRxwQhJxqb>QTB z9cef{k|CA9GIAr;KVhNc;$U5taF)f>sNi%RoL}N{T|rb^UrWdBZuM6&qn^{XEV$y? z-dFHX=MNo#yOnN!Y0Px<3B(S^Sh{Xu7N8a{Z`GUY;fMkup&|)yaXimF=X*^;84M>Huzr zwPCff^;cDolE%JP6N2s3ivCFMVQp#XQ37bI^}@F}(^kkRbfP!wz;6n#hBv`ifv-@X zJs4@D=T(yz$~YkHpwgYhT9M)%z6Xv8;XsJnKMB*>^r5VQ@C0ech71XI;Co+EV(iTOHaarj`zh$~ccML}x=dFjP1(-~rBbSO?lHYprI1j?-#55l-1(*`vW*Fd(h(jD5TM zb$F4xZEuHadCKu732MOrSXJ=xWY^>1Ws7DNQDJmuL%bV7o|)?OG=ZnhwhA!c_WRUz4XG-Tx2d=b3qY1d#()>}uoXw>JrYu(Igz(Nx_w$QBJ6*B;aUI_4P91MV=XOnXiQEhAYy1S%ab_(6Wu-9XnOH48MPO*yn}?(ucKoz91?;UR zrD7bCu)`$#=$Qi`Cys7UH)UG!d{Z>WdHI%hh*wPIRx7&-bFf;&G*| zHA>du)aYGZ#xNi|v+NV#jO1c9U5GT!dUwTN$&0!UYyDa^DOTyNe2mWaFT!TuI69!c zD1+(5)nN)EZpzRzdC~jhaiZFk5#2@t0&zrXUG?c$~&8$hv2wdA*bq^*^O*(+UzVyO$IQcz znW7$71``S_u@O@_mk8K6Cs13yQXOvJDsUp6)KMa50DtIm+v+R5JscbgYu7p*Ya*{Q zsB}y4xo2SMq!cHrDi`|7xri>huEUD+FHW^9K1L(?X~5$}_JSsYB@LLbn6h-cBM?}1 zBoP8^r(|qA6mAOp?Bvo)LPcgHaMg#Zm7IxZj5$>HEBpp&;5_pL4%hq|f_{7k4PQ)P zHCnB`!;1S=XlMjjI^%Pck*4_PMUK@_e5+Q5c-e7m)YCdv!D>V=!RiD>lj2~B^gVpgmfl5f$@kcI-?nmP8!ZCv= z_P7S#KoF4=`F1Q5#U^FA45s)*0mQq|>h<&=c)_ysGOyKGBk?ec8xBE=hd4NeU8sic zBrRJ)ID|x%vb)3_M--nH5bTI5tBVnYT_(D1WxjAUMwR*gfFeUyPpqa{><@;R4U!mnz3}Y|0f_WqL?gVMh)Dvda(F= z*g4J^L|q(do5NbGDl7|ij#9iJ7&K0RwuB*3?vK*&gWKN~PGI0hm!0(&TBDA7ozCNQ zO)P$~DfF6+ONK*uFOmBg#2Z-7&c>)>|MR*N%DT@J;pqwg`^yS?D!= zTf_&bVrfY&@S@-wF<4TZC_|N_az_wh_^f0!ys$qFEURUZi@GP_X-GJgH;PL7<#f5B zN2rxkT`FXg7dD=W>2ryDvu28Bd-AddPR67@ss~5KsmqXVXGI6Ht1GSmNYKeiwq=_F zJ%!NUmC+Z;N$mNO`o~b>TT-QVjsr>PisM^&2*b)tN$BJxcJ}vfIZO&uwV8h!9nO4H zm!VH5r&)jBD?8$4r4!>u*nC;Z_g0QL@YK_402GLR^W&V!Hy^1A(LH&{JN{Yj*}Mw} zyJ^Hn_nD~(shn?TY1~;H;4j<-I=Y-B3MM6?e@kfxYPdAZSB6w z;7cKVb?M;arnX^#Y}-EyVj9$_HbR^{KX}DI!X?{R*1qT>&UcW4&lrzC_x^P#Qv2u# zJ2S99ZQQ(Pk5oF}*#W z@w7tGpYlwl_Cu%%Ol4i<%L+;)Z$Yc1M-5dLW8z=euF-jG#sdvdjkpCpHA4rpH};P5 zI2HwTl*S_(0+)BTw-Vq_&+S6l28pEhqZDTi>S%1G$XjkwQnEXw6L&)g7?QRmY<-@dlDl;Ad8z5a0dDpFJq3j zM=xkcotNgiIby>+@Y#{#@A`Ad$^_3K9;yVZA_f4GxRXL_0f5(tQg?0<1* zN)IwHCV-LN$kxWm#Kwuv&D!cr(>i9g1?hc5kB~#a9#Xlw$z){xZo6t=A7L0`@gV%3 zS}ot2EwM!DcICXfi;!|8QFUQda!z*o9AqM%IWr{$F@%`Ybu){}g4aM7IeBx^YbZm5 zLtb6#dj0Lxw(H$Yy#9i%tKDdoR`Qa|WQ4G<6;Okc4Ewm~KkweUF!QqPcW4su_Vd?`~zhmEdF)(&5B;6)@6P7>Nn0I!Y=n>%*~#?f>1#X{RxbTcb2rA0VOe&d+bm|zI#TPwA(;&n4Ip0g@}gi|E^arnZujSY7$ zAJ4;m|F zYSlcGQxYoKrX4+_PqC7fj=ft!unrw(zi=)vo={Y!&e!v(La=jZE z6)*{5&ZBc5PeNDdqZ|UId>Bnn++9_Qw%N<;ocfsT4@<+8AMbxWDaZ$0tgltU+x#}` zQd{Yt z=y5625!u_RTM!>fBFiC=uB#!OeknH7G3C@X7n~Fse>-+(P|)X-m(>||!iz+DeCRH6 zK5sfGbvZoa$gIF_)E(fPk5i@#39BZAcPw*>A?Yb9OFJYx!4(f_Mo%Z)G(d)`grfnGC_V+8uF2Wg$dgt|5crW=D zk_L)anC-Cfd~yQl&3P?aUbsuabpu)Fr*hT;PUhrh3v-{~(Z+Irns8vO9%9u29lF`2 z(^0Dlh_7-ktIIKaPK7&sJ{vDZ5IfYiizoDHl7AZxdi$lrRX$82f9jS8fPb40`g{w= ze0iLul{0-0BDur4{N5VA$XpK88rO8Mgz=Hcy9(Aoiii&&h@--G)HY;tEjpp0i@+_5 zC_WFsRAsStb1VHTYPH3BsQQeD(4)K18`~BDGkB$XrM!w~ka)t$1zfx)0 zB$f3~|2i;$;6tG^4CuZt}}SH!dSJ__b=MR z$6KjX+Ree+!v#FQ#q0cII?Q-jcGtW3bmsB&VHf=Pxy*95#fFN?X6~F`yHoJbKmtobS8(*XyFc1-%%%810<%ig-#AqMco_Uc++z*ehaANFZQ+X*1n$h1m6p|o z^sGv%pNV(clow3Z_LOC_Xq>nmuXdd#l{9j)?7T9$G=77WJm1o0a6P5GKmyAG%Jye% zn257o)N;cfQsobVmCxy_Q)KjX>8B6Bx2))CBux1L<-NK+x^06@7Cj@k;g%R?qbJNN zuRMDVs$-X>=CYN*EjniwR%WxF?Up>p6{BsZd+?Ou8DTYt)>}cbObN4@rS3^iHIQ}! z<##akG$ysE&?S@?eOz5$rMSrhn7kC_^i_eibL;Y&surbKnzcQ8o6nI!YAVj)m3p!NCWbqNrgj?je#F#;!g}< z4w;Nhz^RD8l>JD8$J5ESqIF|n8*dFoL_=vZ{I*c*;8;whuLCvzTWFpmZtUmP2&0Eo z#51L|W7-VD0qGH4rSJA|4ZG{T?>Kby6stIN*eu+)`dkjOEieL49jMWD$HgnWuXo+( zrj)!9geA3N%qD;#`&!5;7m%grX=RUwSHJv| zN_T_?5NAr$iLoHON0Wj3a)GI4^?FFJ!^`fL;W7jWGWAfx1H$9K(RLDYUhrq*U`g93 zxJe?cC$C+fkh6zr!~VuSM*2g!8XLSGJF5yStBErJv1VK|6-k25Vi2t8Elvu{Z8%%u zSpZu4KBuSgT*U-9ra5)GqVz0JQAl9w3yY+L&0wHX35=GEv|%Jo2%Qqe?>;p07A8qm z<-29d{t?o6ZjvX#0q zy(vEcUugI;Q2CKpWE1K>vk98z6xt&)$@O1}NZQ!iPxc9ah9;RFAe^e&ON6Vu6c z5iP?3?R%+@2vJ zak8^p7Qk{XUnG%T-ErqS#)e6Tl?F#v`PZod-cNiRLB+$O&56!0qW7Qe7ZT3GIJ`Bt zMFyMEvlvjxAZr3vYw#h2y~SwLB+~Q)nF8vPnR=oU-Sf76O2MhW$|h7V2FN131gSog z6(NeCj#VEbEvwl^G;YO_9^MNMHne`5OUPjgPZu9d;IsBN6C(Iz|9sUBbh1j!}bI0?R&_8UMIi}-2g=yg(S$+ zA)DqF@(k6NyZ|0xPN*028NDj!M*CidZBluNb%P@bwRZwatuvP3t5#|{-!LK9pmO0;0BK^y^%!8kndEf)^;7|Z2 zoPxRFt#!Ry$Gw#v{au6hFUa?9Fo)Zy6Mg4>+o(8W!X7Z4`*bObN}(Qmb& z&^Qq0d}HXH%3oShV3QA2R}1r=+v~}8iB?uh>M)u7}p|>XiXv!E#1@in}UJs zjmxg<<+R3gX$Gg7M;6C$X@9rc3AJz-AZqBkm{=%qv{?^s>7&GW^k`7012Ae(Rq3(H ze+p-vK8nBF8bV z*ciHHZ5f?U*ydL%$tziqoPa&2MUQWYzjnv9-18vc9!K>!<@TO1n!QJ~1b8~Ds^wOk zJ-;l1GP`S4DHsz%5-#2l>jkvXyTgX2Fq57=5Z)gKExFQO5q<>YhH}R@`?`7QbY03! z5$H~6P-ss^Y!OARF|2TD}}UBf7(-H z7R0$DjQ&oGN};LIc^K&TSo$rZ{g25GuAf{-xq1}-8n8hzxwcR|o7B{tK)v^#6ob%t`g$+BT%sM9Rbj=yZsUJIi*WFv==U(=+_o>4HpPmhePtS(R0JY{; z$8w`mtC~=nAHH^e3H?u+F!~TM51}nsY(p2@I1;S}ir)+O$jWZcCAF>yi zGM?qHm5ufQRL`t+hxC$`hv#+dWhyXnl(M0}>K+r}VPVkGBo_;qfC(g-oA`=kkYeNF zC7%@0=X;AjY1EP(tG9M0pw-X?Iye(r;xzC3JdJDLr=s6|6LT<_LBA(8mZlPDX=GV& z9qdj+0nbE zm~fx&4aCrf%zO(IwlORqsQr}C4#mPp^#ogn33u;ZvL^uWS)(rS{x=xwx4weDuH<-6 z;hBbQfHj7u>gi2&DFVFsE2o6z`qzyE*$2@L8u?{n*~Vk#ZbIuBdP}O2U8fvun zL(RxpRAkeD8Dx6#-n{r97<2pK2Fm6f)MeisiIxu%8{tfVQScThq#yhDS;iu*T$6&Y zt;12^aozpddvcD6ZI{IF^3Cve#APYX3(lpX02C2&n&Ei%E3C|gT40WSbj0?PCU7?} z(Rp7Oaip8)ofv51ZKc#r9Ovd5f=>ihi$%-H6h`8DcLxiX;K&Od?eGV|*yDs_?=%lb1y?+W6-zv=}2 zzdEiw9;&a6-#e&i82i|lvAmY-JB_VE!kEw~gcw4$vP3cVvSmrGtx%#Oep2>5N>cnN zicra3Xq4>UnQ0r|&wJ*Nx%1rT`+c7KoHOS<_ug}k!P!GnbGpp1Wgq`;cjp`G88Y2C z;;nO0jE0xX?^|z~DW-ZO>EE7_e;ky6+?}yCIO$H%+pC?P7HH7$;iY+$T2{gN_(kV@ zZHaSCFFizKFEn{&SKgG^uhk-Us69`J{*dtp{oQO6LL$uuq1r8Su{@E&482l^xhBju zxWi?e_UDAI4GhqgeD1rKc4XCX;6x(!Ry%&C=-&qWcXt#HryJM0D%f7ZN=|y2@13!k z<+KQF$Rn^d_MFY0+=Z*0JE13tYZO?hR`dF}7@#%jst$Q?^7GmiG%*+`wwVq3zL_17 zZ@oAiZ+qyeZdF%&%3?S3nvqb7?1!i7#b~cqw>MFJ|13Map|uF)YlqqxSRP1Sr6b1{DWd7|NM&SDgy7cKi}C~x!GBg6Nr({LP!30f|2 zdinskbBnH2K`Z>`5hAj1A;T`Yb&?guTAoLH@5H&gGV=F)U;{d00*bpVP^UJ`4{9g5 zZ?4>CS=rB%(rqC^9Bh0*=)l<r-MD)8c1-tFF^zGbBSzBH`|8oom>S#hPnBx= z?W~fbgp;#=sai*QL^2xMU2*)f8JXA!?%d=hQX=MdHf3+E=hOG6ZY8aMD{y)BvN4s@ z4qcMYG+bdAcI}3>uAar?Tz(n1hHFa}N>~0}EreBwnHWvFEMVNa3~%$+ceW4{l~dQP zA8|BvN+3&JwdiyFE110A(tm}IriO9*EEv@xM zplv3)#$9jftWZnwd2HK~gwnG>8tLAAW9v$qa!aB9qApqm=>2bfH| zu_N7IEJk3bl*X?Od8f_gB=%O)X!WebuOE$fg%oid{^x~cw7#K{F#?a`0wk66Otu!j z2#&Hl#7% z$<@Z91DlUKCXSmG#8e!~^ayzPeqvIq5W$cB+%b) z;8{hR1a;djBsp(90rZ%Uk@7~Ca`hdFBjuqFWRw8Hs~k>&)l^S@l$=TF6C-*5gnw;? zP2y<)AigRc529fVs+Nk1no0_qii*&%D=4~K-AGBrR6!Bia~hO|DXT#0r@?A2Re6+< zC*IFd)BBV=-pNnK$=lz{4~^1*=-og?a-LbG?FN2lqGX(^=Rr%#LE?E(jdI`-1PVi+ z6G4W(G_>phKysb@L~4XA6$k>^|LO!^0U02NAn<1zNP;O*&gBPznv??)M1^v|84L;# zY_JwX>dc`{_9(m(^zGB>+ zT*Z_U?}6UABFqE7_0192L@nl2)co=L!{}o0-Jv9+TX!u_?i}Co`L!ngu@{W~ElWL& zA@AJ{BaW`JyzO~W^YH4-4Gsn`krd0p9Ky1Y=lCEOV6RdksN?zcNowi^gB8#2EJ+U1 zMza^SN3YM%-^@_88TP8;9w-&?PZ{lT!&*G+OEMMy7@2=Z@1x0?l7_0l9+OR*#M@Vs zY70HT<2L>Y-q`%wt4pjnz_E-SRZeeD@jxHRemF1DB^dmo)4ghBBFk9QQJz`%370jY z*!a;NKe6%7nR$M-+=w%@7eTd7I8o=7Ma90U$bQG-3YB&4p6Pvk-y;LB-)ddf(xwlP z`0-w#{-I2UYtqqo22UYt_ODzMlP5b(??y3!#e!Cqszha&>57JUt>MYDehts)XHtUR z{&18KjXRQNIlZuz`g-7gs_z4)4HYeuPJ&);e%@$`bZbr+_B#vOC~ynj&MC~Kj~!qS z?p(7%SY_T!+E5GA@!@EQ^TRqqukRsR&sn$nH4YVZ=2JrJB*8U) zf81uZ&t{`FXLLlH#tC|-Y?06ITxAopS!D!`M(to6+fugB8Bo#rUdP8$z-pfN){NJS z*DAOHTf4Yo1j4;Eblmp-?&GF(r&~);BMUx#vvWokh|gr*Q4^g>Raor5TsuM=B(h&- z3-7zq-3azdu2|g?pS8~@@vyq?<3M=ZjaISSQuh1O1y~lL4%;aXGxU55tty<(D)h)I zRrx+7JY7GtTyOO6t2j*RCqAp=Ln9+u;kMxkrk6X=B7Sc)?}>O08O6hM_6Su$u$vXG zLD;|p8C~>sD3`|Y<~M|zAZujHR#YduUybcWdJTPk)Pa-;7cTtK;^DX6RS3e7QjUQq zuXW3ESnk>(LbO{~xS0`A+#==2UPUDJm8u0HFXH!(t)4!dK*;@;`&rBb zG*GUh<$8HpsC3Eua%djz1&fna<35#w*NbIsIX5%RyJkt@&|g%@aTJyk_+Pr-@+t0FjS>|B8E{^vk=( z)=kcC%u;-;6EP+p+B6oLHIcfrpL##IYCB7q%KM?LF?6d=3z28#QtQG_YuAXr?W)rr z+(MAMYlKmvNH#41glX>Vt$&1q5(IniYh`xe*7fSig z3Eya5`aG+;vJ_eA_CRVVbsz4snp5Vvm*2Zz9?G;Uo9Vm&I7O#s61W?Gpp$LK_0u!A zHs-{Q)@N7ROI(h!J17jp>nG4|_JT^I+?i4?(WYX>ErlHxxAi9C>Ucy8o5~0no1&HI zDh}C$bb1v%B@OqvKSj`0_b0EI%o_W|n7*9SoA_`QSM9-a!ZU0v}rfl6b`rm2KMO~U1*x*%SuIUzH zROR9`_~zs5Hw!a(j7{KTbL_?@FuX1!UKftW(}Y#hgcZ^pi_BvPqUHv#%njPi z4X*2Rr|5E99N=alEw)-|;vrjbJu)_2 z^`5fBmk1Va_G_p1SWe@w1=Q9ct{600i4SpE-b1k=Ris-C1Zn$C*oGsK2v*N{_^{+9 z;ulPj|AU5{d^X|H@9O)W1Z};hIVk*mAV4X;5+xV8B1dj$Es{FOgD?OPg@c(yXC8#qTlole(NOLsS#7PT)Q?3F4@2~xpety{)LSG|5KIlRO$VgG8 zUMsv^wbPQKDx>(@^zRLu{y)3)DKbQoGNSWGg1oRS@1GpXJ2|k81h#cJ0CXkp^lV+YZG>KQu>+rpdw8~~uO%OEGkN9vb(q?)5DU?21)8bnb7Z{D%tGFad=jKn}p4J?V9$f-FF8TU3Q{2I^r2IiVN7S;%g}_Y(iG zC_#F$Ao7pD@R>!bQ-2KTA9mZfiJ}5)k+w1GhH*uqf{^5V1vdifllN z92vhJ4%}7J6*x%kG_VMOzpq#YYKaB8{)VVy52P0RD`w>Az={~4^Rb{HMI$SgB;bNW zRk2hR1fyYxR<=PtazL7KzaX}8B!~qP3W}qKlnX+2anx3lg`xG|5CO7TPz2J7r-po# zhC<@0AuTdcV>~EGsjT0(3FNzk?XgspgEqGD;M5_V1Zo~tO(-k@6hx6j_UDFybkjhp z8mdyH1p-ibG{{bAbgrK~_B>z$05#IzjEhPO0IYRD$jlAoh7gIr+L%Bh>2l1?Agx4D zh2ku=KB@bnDn({cav~^2iFL{q66}K+G?)mA{|}6Z3IqU13?y^~l=ut7V4%}iK=HqV zXbeR}nh6+;u0O~LxR2~GPq_*{^zjvXdsBSmBjDhr$NaH#=bksvXsrRBP^5!6L z4)5pZ=H+^hJX3FHpF!Q1b5P*`fX)g8Ob=P=$s9H_kn?o(a&y6-qfGWQKSH;Qtf@r$ OU>Qj@m4E|DKmQAjm#{4W diff --git a/docs/techlogs/accurate-test.pl b/docs/techlogs/accurate-test.pl new file mode 100755 index 00000000..61ee1fe4 --- /dev/null +++ b/docs/techlogs/accurate-test.pl @@ -0,0 +1,268 @@ +#!/usr/bin/perl -w +use strict; + +# this test needs 25GB of free space for the database +# you need pwgen package to fill path and filename tables + +# start with: +# filename=1 ./fill_table.pl & +# path=1 ./fill_table.pl & +# file=1 ./fill_table.pl & + +# You can add more files with +# start=400 end=600 file=1 ./fill_table.pl + +# then test with +# ./fill_table.pl + +# you can run optimize with +# filename=1 optimize=1 ./fill_table.pl + +# you can get mysql profiling info with +# profile=1 ./fill_table.pl + +# to get values +# ./fill_table.pl > /dev/null + +# to use something else than mysql on regress +# dbi="DBI:Pg:database=regress" ./fill_table.pl + +use DBI; +my $dbi = $ENV{dbi} || "DBI:mysql:database=regress"; +my $table = ($dbi =~ /mysql/i)?'TABLE':''; +my $dbh = DBI->connect($dbi, "", ""); +die "Can't connect to your database:\n$DBI::errstr\n" + unless ($dbh); + +$dbh->{FetchHashKeyName} = 'NAME_lc'; + +if ($ENV{filename}) { + my $t = time; + my $j=0; + $dbh->begin_work(); + print "Fill Filename table\n"; + open(FILE, "pwgen -1 11 12000000|") or die "Please, install pwgen"; + my $sth = $dbh->prepare("INSERT INTO Filename (Name) VALUES (?),(?),(?),(?),(?),(?),(?),(?),(?),(?)"); + while (!eof(FILE)) + { + my @val; + for my $i (1..10) { + my $l = ; + chop($l); + push @val, "$l$j"; + $j++; + } + if (scalar(@val) == 10) { + $sth->execute(@val) or die; + } + } + close(FILE); + $dbh->commit(); + print "Inserting to Filename ", 12000000/(time - $t), "f/sec\n"; + $dbh->do("OPTIMIZE TABLE Filename") if $ENV{optimize}; + $dbh->do("ANALYZE $table Filename"); +} +if ($ENV{path}) { + my $j=0; + my $t = time; + $dbh->begin_work(); + print "Fill Path table\n"; + open(DIR, "pwgen -1 8 4000000|") or die "Please, install pwgen"; + my $sth = $dbh->prepare("INSERT INTO Path (Path) VALUES (?),(?),(?),(?),(?),(?),(?),(?),(?),(?)"); + while (!eof(DIR)) + { + my @val; + for my $i (1..10) { + my $l =

; + chop($l); + push @val, "$l$j"; + $j++; + } + if (scalar(@val) == 10) { + $sth->execute(@val) or die "@val DBI::errstr"; + } + } + close(DIR); + $dbh->commit(); + print "Inserting to Path ", 4000000/(time - $t), "p/sec\n"; + $dbh->do("OPTIMIZE TABLE Path") if $ENV{optimize}; + $dbh->do("ANALYZE $table Path"); +} + +if ($ENV{file}) { + # jobs 10, 20, 30, 40..400 are full of 2M files + # jobs 1..5 are incr of 200,000 files + # jobs 6..9 are diff of 500,000 files + my $jobid=$ENV{start} || 1; + my $end = $ENV{end} || 400; + my $type; + my $nb; + while ($jobid < $end) { + if (($jobid % 10) == 0) { + $type = 'F'; + $nb = 200000; + } elsif (($jobid % 10) < 6) { + $type = 'I'; + $nb = 20000; + } else { + $type = 'F'; + $nb = 50000; + } + + $dbh->begin_work(); + my $t = time; + $dbh->do(" +INSERT INTO Job (Job, Name, JobFiles, Type, Level, JobStatus, JobTDate) + VALUES ('AJob$jobid', 'Ajob$jobid', $nb*10, 'B', '$type', 'T', '$t')"); + my $sth = $dbh->prepare("INSERT INTO File (JobId, FileIndex, PathId, FilenameId,LStat, MD5) VALUES ($jobid,1,?,?,'lstat', ''),($jobid,1,?,?,'lstat', ''),($jobid,1,?,?,'lstat', ''),($jobid,1,?,?,'lstat', ''),($jobid,1,?,?,'lstat', ''),($jobid,1,?,?,'lstat', ''),($jobid,1,?,?,'lstat', ''), ($jobid,1,?,?,'lstat', ''), ($jobid,1,?,?,'lstat', ''), ($jobid,1,?,?,'lstat','')"); + my $fid = $jobid*10; + my $pid = $jobid*10; + for my $nb (1..$nb) { + $fid = ($fid + 1111) % 12000000; + $pid = ($pid + 11) % 3000000; + $sth->execute($pid, $fid, + $pid, $fid+1, + $pid, $fid+2, + $pid, $fid+3, + $pid, $fid+4, + $pid, $fid+5, + $pid, $fid+6, + $pid, $fid+7, + $pid, $fid+8, + $pid, $fid+9 + ) or die DBI::errstr; + } + print "JobId=$jobid files=$nb\n"; + $dbh->commit(); + print "Insert takes ", scalar(time) - $t, + "secs for ", $nb*10, " records\n"; + $jobid++; + } + + $dbh->do("OPTIMIZE TABLE File,Job") if $ENV{optimize}; + $dbh->do("ANALYZE $table Job"); + $dbh->do("ANALYZE $table File"); +} + + +if (!($ENV{file} or $ENV{path} or $ENV{filename}) or $ENV{testsql}) +{ + do_bench("13,23", 400000); + do_bench("17,37", 1000000); + do_bench("10,13", 2200000); + do_bench("20,27", 2500000); + do_bench("50,60", 4000000); + do_bench("70,80,82,92,103", 4600000); + do_bench("30,40,17,23,34", 4900000); + do_bench("110,120,130", 6000000); + print_mysql_profiles() if $ENV{profile}; +} + +sub do_bench +{ + my ($jobid, $nb) = @_; + + if ($dbi =~ /mysql/i) { + $dbh->do("set profiling=1") if $ENV{profile}; + foreach my $i (1..4) { + print "Doing Accurate query...\n"; + my $begin = time; + my $ret = $dbh->selectrow_arrayref("SELECT count(1) from ( +SELECT Path.Path, Filename.Name, Temp.FileIndex, Temp.JobId, LStat, MD5 +FROM ( + SELECT FileId, Job.JobId AS JobId, FileIndex, File.PathId AS PathId, + File.FilenameId AS FilenameId, LStat, MD5 + FROM Job, File, + ( SELECT MAX(JobTDate) AS JobTDate, PathId, FilenameId + FROM + ( SELECT JobTDate, PathId, FilenameId + FROM File JOIN Job USING (JobId) WHERE File.JobId IN ($jobid) + UNION ALL + SELECT JobTDate, PathId, FilenameId + FROM BaseFiles JOIN File USING (FileId) JOIN Job ON (BaseJobId = Job.JobId) + WHERE BaseFiles.JobId IN ($jobid) + ) AS tmp GROUP BY PathId, FilenameId + ) AS T1 + WHERE (Job.JobId IN ( SELECT DISTINCT BaseJobId FROM BaseFiles WHERE JobId IN ($jobid)) OR Job.JobId IN ($jobid)) + AND T1.JobTDate = Job.JobTDate + AND Job.JobId = File.JobId + AND T1.PathId = File.PathId + AND T1.FilenameId = File.FilenameId + ) AS Temp + JOIN Filename ON (Filename.FilenameId = Temp.FilenameId) + JOIN Path ON (Path.PathId = Temp.PathId) +WHERE FileIndex > 0 ORDER BY Temp.JobId, FileIndex ASC +) as a") or die "Can't do query $DBI::errstr"; + + print "Big select takes ", scalar(time) - $begin, "secs for $ret->[0] records\n"; + print STDERR + "new|$ret->[0]|$nb|", (scalar(time) - $begin),"\n"; + } + if (0) { + foreach my $i (1..4) { + print "Doing Old Accurate query...\n"; + my $begin = time; + my $ret = $dbh->selectrow_arrayref("SELECT count(1) from ( + SELECT Path.Path, Filename.Name, File.FileIndex, File.JobId, File.LStat + FROM ( + SELECT max(FileId) as FileId, PathId, FilenameId + FROM (SELECT FileId, PathId, FilenameId FROM File WHERE JobId IN ($jobid)) AS F + GROUP BY PathId, FilenameId + ) AS Temp + JOIN Filename ON (Filename.FilenameId = Temp.FilenameId) + JOIN Path ON (Path.PathId = Temp.PathId) + JOIN File ON (File.FileId = Temp.FileId) +WHERE File.FileIndex > 0 ORDER BY JobId, FileIndex ASC +) as a") or die "Can't do query $DBI::errstr"; + + print "Big select takes ", scalar(time) - $begin, + "secs for $ret->[0] records\n"; + print STDERR + "old|$ret->[0]|$nb|", (scalar(time) - $begin),"\n"; + } + } + } else { + foreach my $i (1..4) { + print "Doing Accurate query...\n"; + my $begin = time; + my $ret = $dbh->selectrow_arrayref("SELECT count(1) from ( +SELECT Path.Path, Filename.Name, Temp.FileIndex, Temp.JobId, LStat, MD5 +FROM ( + SELECT DISTINCT ON (FilenameId, PathId) StartTime, JobId, FileId, + FileIndex, PathId, FilenameId, LStat, MD5 + FROM File JOIN Job USING (JobId) + WHERE JobId IN ($jobid) + ORDER BY FilenameId, PathId, StartTime DESC +) AS Temp + JOIN Filename ON (Filename.FilenameId = Temp.FilenameId) + JOIN Path ON (Path.PathId = Temp.PathId) +WHERE FileIndex > 0 ORDER BY Temp.JobId, FileIndex ASC +) as a") or die "Can't do query $DBI::errstr"; + + print "Big select takes ", scalar(time) - $begin, + "secs for $ret->[0] records\n"; + print STDERR + "new|$ret->[0]|$nb|", (scalar(time) - $begin),"\n"; + } + } +} + +use Data::Dumper; +sub print_mysql_profiles +{ + if ($dbi =~ /mysql/i) { + my $all = $dbh->selectall_arrayref("show profiles"); + open(FP, ">>log"); + print FP Data::Dumper::Dumper($all); + + for(my $i=0; $i < (scalar(@$all)); $i++) { + my $r = $dbh->selectall_arrayref("show profile cpu for query $i"); + foreach my $j (@$r) { + print FP sprintf("%6i | %20s | %8s | %3i | %3i\n", $i, @$j); + } + print FP "\n"; + } + + close(FP); + } +} -- 2.39.5