From 09b1c0eea7df02042b2b78ec3b3caad7e32f2d48 Mon Sep 17 00:00:00 2001 From: Blaise Tine Date: Mon, 26 Oct 2020 02:02:05 -0700 Subject: [PATCH] minor update --- Makefile | 2 ++ benchmarks/opencl/sgemm/main.cc | 2 +- benchmarks/opencl/sgemm/sgemm | Bin 46048 -> 0 bytes driver/opae/vlsim/Makefile | 4 ++-- 4 files changed, 5 insertions(+), 3 deletions(-) delete mode 100755 benchmarks/opencl/sgemm/sgemm diff --git a/Makefile b/Makefile index 84235936..7e37c19c 100644 --- a/Makefile +++ b/Makefile @@ -4,10 +4,12 @@ all: $(MAKE) -C driver $(MAKE) -C runtime $(MAKE) -C simX + $(MAKE) -C ben benchmarks/opencl clean: $(MAKE) -C hw clean $(MAKE) -C driver clean $(MAKE) -C simX clean $(MAKE) -C runtime clean + $(MAKE) -C ben benchmarks/opencl clean diff --git a/benchmarks/opencl/sgemm/main.cc b/benchmarks/opencl/sgemm/main.cc index 4678a7a7..81775741 100644 --- a/benchmarks/opencl/sgemm/main.cc +++ b/benchmarks/opencl/sgemm/main.cc @@ -106,7 +106,7 @@ int main (int argc, char **argv) { size_t kernel_size; cl_int binary_status; - srand(time(NULL)); + srand(50); // read kernel binary from file if (0 != read_kernel_file("kernel.pocl", &kernel_bin, &kernel_size)) diff --git a/benchmarks/opencl/sgemm/sgemm b/benchmarks/opencl/sgemm/sgemm deleted file mode 100755 index 644db9d7ddee9a375612d65afc3e165e1110bb99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46048 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 z zn21h~NBxM3PaWPhN=Lh2I0lA}T?I%(<6}dqc-nt4=;|UpYKy}9Hke1(-?u4540e6{ z_UlFW>qYmSO7|I#?w5nI`+2zLBM^G3`%V;v?o`hVVfhDu?g;E`-@a3X>=YsQC?Ut; zWXjX?C}g)IWCewE52OwqyK<>)*Jq?WT`JY_0!9A?$^yS$@G1cGHm^X}D5wO0-T~-e zgYcfe<_y}kmAFn7bnH5cX8G5gTnW(>hCsIiv}yPDH<)qBZ~(f8vMxIZKI=!RI;VVB zg0$-;c)w=wHpS4CyJE<<{m1-oaqhy1nByf>EHZi-Ix2H`!P0#lT<8&yoa!!zA$Efx zmzvyxgkG1Jo}^Y8svfk#&cP#?q0eGw_ci{PM^Doy~Oc&x6^4o!p()8QBNu}VmTpZ?CyZ8wjZ-GPhADRy~%u_ zLsxahlc&iJ=z~CaJb`kLgW?C+GP_@SolBb&c6;Es-4l@VDjiXvY#5D;(O3Z%GQxKO z`M_p%e+PW84uGg30ClgVd51wo5IRdjtU%k2!J_!(B0w@1llI+u!FWPIomk@chLB_h z+-W*i)0kzo9R%%@T$y678tmeF^>Fw1scXk$zyM1O*3$R^a~CnA9}9M1oWQ`)h33@7 zS)w#?Y1^DMwm&}oO1&Cuf6ebK+hsy~xVu55Q*|YCtxBJOv}2HlvWT=50KZRp^~Qk8 zK}&l_`u0P?2Y)^J2mkqr-=1Fwf(hRsIF{@qJJt;9~zw&#%9I!tTn6j^3sk|rK>AC-Y#8L(eZpKc5FsWKUX$n z#xq<|Ir`<|Uk4BU)634RyX#eCw(IrS5W`>D@k(XK+vSjP>a70`wm)VEXS~|>3T)}S z^6Jv7O0Omq@;Tk8;&J|wE&ALp)KELlzhqTqiHt<9}7{g;f0UgB>J$J%fVS?eEB zI~2XXxD%UU@$bY-XxB>gqcsiQf+ zlvBu2)T&QTr7$Fha8fqfIq_3Rh@-T)aenBsIIuXhJWyI5TDqii?Kpo^^|n|zn#BHo z{Fg7USQ$8-09}k0bzNDV2BqpD`%ua@Kd zsA?UwL+|5q$cvxAkMkS5N#kC*d=)AJ!cDWT4^>IpU8iE-_mykxnM!VTFS&uO;hMHs z*dMD8>&70}KjF57q!O6cf!a}OZiqBjS4Bcwnp-#NW{y+vL;#BDE|R&WAwlwJD-fw_ ziLy7uIr~iih{y(iV>HVuZ{E@*Hm?mwWAK<*Lvxchd@sAlZ?Q-aJQJ*av9_uRqFL60(u&GJ z`B49O^ty@xQ;p75Z;M!E5f4)yAk>^VdQ1bRPAe)TlUsm`}_eJzTI|4F5x_k@j=%y zB-B^m^y=)9^z|>HOvuB^&RvjQaA{8eExw)B-1BCQnRM|miXcrneotV>u5w|E2D{;qz3>`^zT1+ypIkRHsQ-kz~IdtM}a zdTI8A((F<5v;Fh43qU_V+b8Xh_aq;L95$Peu8%D6kp(`oz(*GN$O0c(;3ErsWPy(? z@R0>RvcN|c_{ahuS>XSl1! z%4PD${YK3iB&0ZZlk`r_kK-~)8$EFBE9na~9$SKvcJ$W5{$B;=IrilI7VwUCT&s0h zr^C%Uyg`Sz>+s7u{DBUi(BTU@{F4sf)?vDAe&Km%9gfuDR2?qR;c6Y$>2R|SZ_wfG zI{dN@f1txBbohb}|D?mWb(qeLVO(eHaHI~W>TrP$SL?7&hnsbHgAQ-kp^}E@_e=c} zU07B&(?1GNw~zKuE}ULC#XoUE@stTuCrfPdwV~cc0WHj=bFAFPG@&du#2!ehY{RNo5Q-Em~qr>UfFAWb0f+4K{3Z!ux)Kdh9?02(73z1j9E{V>< zwt2tZ61^X}_xm)X>Ano#eaz5KzY#*y821cgYy$1>8-nQ3^tVeqmX-My44?k@bpTtL zGtn2NpS+tSncst@(*MbLZszW6#NT7QAoDsDHvJUi{;Xd@|8&b{VpP@|w3BpO5)-oC zWWpnf=~2LoV67^XX%yghlja#y+so5Y&#Iok2?WE`19|LA!-~0T>CmmYtP!t;#_F&LE@&Y1r#vS{y4~XXDy*&itNuLac9;lCMHN?U)EJj6iecP ztQsaJN@9Q3MkXfNJl8yswGma5K1FmpnDsjH!kWGtFR;NJkH_&`5dl%d* z=Vut>(o1c^bN+*+pReMD7$VclB%a~>I)tPh0ZFb6+owIi>~p^ZW2b#Zq8Gx3Xz{Lg80@U4lLLOYrGOCAj^l z1fOM-9_;&EHtavxch@`#KEGaqeb-5F&utRiceeyz{P?)2@+V`Ys7(4v=8hITFksCPB$~3Fba4!MukhnExW4%^BRk z>{SWM-?1_NgAqPhc0 zc1tkl^XNzi5198bOfYyr>0t@x|6YQ!lM=Jmqe(?)=9D4ry@?0MdI(77@_ z>}K@DcDc6+t%TaG2W*0(da&jy%xz`aqL~_TP{&`^T zAy&#ZR%!lIj342UlSqyoQ!A5r>v!L)iV0przx^1)WY41Yw*%^u#q z*0T?N9!2p^-y2BsQ^AV)ulEdv>PGBNTLjNn`aQl zGPThh0_X7VdL!)FEAMA&* zjS3yc?-wNb2Xin!_z--sAD}Pe_i7xgeeesYd1Ae&!%X}%ulB(P2x9I-fw_cODVy=Z zLSV={7nn;8Hqi(Fj&7L(s)6Ry%UXbVXq){PQ~?EW)!AvVi9UD~{R;)$1N1i?5;39i z!8vF}BzXepXOc*?4_>d;=mDC;tEe$N9hPx?a4(EVDFaaL=iuieF+R8us#0C!gPkB# zY2}08f@G$R58jA)EohqYi~Ar=IJ^%ZJey0*H1hkRXtTC`*D>%-xCKhucRveXAnGR+ z)ys8Nmt43TE={6yLuCuBLNqKymWz`Y-wh|>Y{RyT-$jd(D1;YaD77EG8UOd8ue%tw zc7&wLW!Q6|w2yg?z+O8LT}LLzm;M9Y4t=Tcc^w&k*)SBB|E!CT!_n-g>@Ptxau#lY zy`&5J3(CkY$T3pk-!()^riy3zLg@1_F?t6%>WNVVV)cxRg3ehE^I*n>;qCh%`cM3R zgI~cmlwQraNF_5aMto>E>Pq9-@7n@0$X^RhQpl%KGcSD{790$sY50}kS8#0#`PR=r zH%l@|dk^wQw$XCg8TNzVnb_3UXk};Hzk%%?Jto%T^)lIm6wojiuSSQIpl*=$5X(0Wo@r+u zx(%W|n`qrf*?eSnEPe9GO|YDu8S(u96n>#-^r=RU2{a>?ZyUO8)Y~99P>OonfYCAY z(k-aBUqH+o`27vPg5RQGeYJ~jjOucwG1rm5qvNpr$RNSCrWgt3H_UO{8nU=;4UIMO z5wuv!{`X|rh9p6@BgttKhAb}I&{)0zToiU04YQ`O%K=zF^U`g|`(^wxKsXS;f&uIp zr4ADPWgZvfywa%dkaN(Esr&oe#4w)DCWZ#{@fIkab?Prr<$PIF+V+Sn+rAa)!M-Qe zYVD|6ru|VZ(_T{RvzOKS?9Xb^*3D(wl+nVPvD zb(~YPj)j}r8g8_5Y8mf`9TrgJgsIDv+?S--^#d;yFvMo?db=?oNY@0^OT_UxwCErrROWqDtFPXh^BF=;NfI` z(4)(Ux*i?JpvNv}bSnD&L61{kPZe79pr29|>`QUEB^B<5GAecGqOYn-E{vHM-;0j(5%=!VWo3pzT0RDz^ zzXAF8>xTVj-NF2CBLf%t3ODNr8E&VVT=Fa6jBlZz%lWH^do!FL#?>1>8X)!Wmr&E1 z%{tA=_2whNO#+!QsAB4i6h6Z@8BlM(wBMk2Nn?D*bhe^(B8*!T$s8ql$UNtS zhx--7Sx!|bDV~&U&V5w$Vh?vRRDtFWWW(4j8%`wy7~g7hXJdE;*sWQ=$H6UP&QrQ$S9ggT&yxX|m;& zH(j>8@@B}ESKdt7^2(bndrx_DWXmgWo@{yLmC2S@Ub$>}&m-~dtIJiqf+uG%z|2;c61K;#q$}RG6c~{ zY*3!{XfOHG*dRPNz^wVD($_o$r^=r%ea)s!M9Ww*&o3w}z_#VtMcPV{`ygo-i`m>RXX*Y=6%ShWG5(biXqeO2d z?IwwyK(ox>B5Z$W^csQkpdj-^~Cd+`&4ldj*(2o}4icY20!fK13_<)hfqQMw z?ZBjQ(URfYi5?=u$IVf%C-)J+z5Q}uKz+}zBgc=qD>!R0u(^-1SL6<$?6Rq?wpl!v z&OOYr^lf7J57JnYS=p%V+=E07g3X8XA5cus=ueb7-WX3D{{hFUm@$wzpB!*h5XXPO z-9yW z?k@EcW|e27OrFaW@Xk^{VOIIMbgktIxUbYtm=(aYPL^lIZD?L<)9zve7RUVT)A94z${1|i&z&hT-CkRhvwG_JzSeB9$H z6F`Q<)3|d|=DQHx0h|s_vtS8kywlN~tOehJ!S*0#FZ?86n^3BScfqhb5n1p$>fo!W zK|8nw7R&;O>#2p$BXO975j2GVX5`}#FdXa)XJU#yoso?I4~Je0zXBQ45vjNjP3KXd zy1fhcK<#UZjG>?VG$O(0py00%;cR&!OEnEzF8nvNsY*mHy%$0}_3M!T5cGDu_{;8=fDsOrAaUm6uWD1FUrK zo})V!Z_&kE3N)`5Ah~h`%?dD63>$k&kn_NO!MqeJo~{j21ep_rwXi-4$pOp=QYi99o^cy=K=8i zM)Oo_o}rl4DhqTdo_j$w7k1~>tO9G5Lv*tu>ehm9X4l}|b0>IsPRnbx3ao1!p52P) z(;&*`k`tF9y4xYzqlk8cs5Xh{afj$uMRYTW9@Io@l|ZY-;+@r+2q)U1ayG!q$ose1sGxKUwfmQ1_JYQBk zCwEwjk0udyI7Ig=q7xw61EqOwRe|+QzmfC}MRXiQnE>(%sKENA-w=IM5gh~3?*Qbr zLj~3ezajdbB6?|uwe;KYQ(lj%Kuq!AIwU-MYB9*u$1eei9^{vCANo?Hr(Ue+;repf zdkMW9zssIMx5m>SxU99D8=1-XV%U54g6=fijVt7=;ZYv9h>+VLB>4spd+#49`9puGo9OPS(^rr)zIVXN-+j=HS`0 zX6>7_=$ksZ%v#Qk*W?>y?7aoUA@mG3R+aRpY?_Guj1vE}PVc|gpN&ejkJ#L(wXS#% z2K21?CAw)|@*pEZd+(JM7=b)xx1)=?LnCJk36XxZjujZu%Q%92_FT0BL%5EwSw`)9dr&5g??a39hBCIdaEkL5n$Rq z7%q7oR{@G@k3dn&fa17>%34v1IDr@_R?K(e!4-=USA{NLvBZhbTd_#Ty?Y+McIi*F z{1>$RC5@J6y5fo~0zboN-m}rnaB0ImoH~akTRp$({b2$q++wx}5>_4l21?MyuTmAdb0Uk|WN1G1Z6q@XI)bKy42SO`H?1O{$^IrAblJ9Dkx!0+Lm{^a z$n1R3&W5ArOm>*&o=ZTk1|UNP7=&KT%9~+(eJ0=h89HAq8fRLB@?3JT&xxKLSBx?u z5PMFcJ@;Hy?56CB{MqN$ib4fxP-rsn=N4g)kYzk?fCk^8T@)w)26c=h` z(wG?H*aT!3#ZADBFUVrner*WY1*dg|xP?!OlBV>)9U6{m8bq$%R2Ul{Axgw6ITIXUe`N}mp%~@|3(Y?JzzWuP^&O->uE8{%|$jWxqj02Z5lF6n1-+?eIS!KUD|otzxf5{D{H(aebh zZnRPRls7kSD~iI{JqzW-_6cgv7x$$34w>YLAt6`0T)EpFJm|&(07!}H9|SCzY&B&s z%;&w(3sn>gGYw0}0!~NKIxlq;L@tBuyo`ATx6cr9v%6O(sF7A(BBrk*I zSrX5kn57DX9<$J1m|v@f*5==##9l_R^e@sbCrLuCIDj)nA;C%#_;ssXWmwT0YUQL^ zUtVYz=Qm~d$_o3c#iIM#I5mY{QK(DiYE$G z(IUKMBwXE66l-pdM2j{wwH38g)oiNT01Q4EGHtxv{an=0R1;~d4Hw}9Bt`0e=nuk; z&wo%@5xz(knmSp3o{U)~2)BybqODF&)eW&|0>t_tIrh@Gciz1+D8eUH`pkqcrYdS} zYvP+)9R12F@dh0E{)z=-@~b9=n2+GXO{2Bpy25&x-HL5%2}cpdcnfetGot-0et*S8 zktJUW6~QNW6j=@EfTv6{hhnW&Gz5|`Jzf=6*RTPEs8ka2mTO|8Oa(O49`AeoG_aosv}XF{9cueZEKff>J%<0DSbEz&--b5d%bR^`-+I`$ z)-&>~hu2QPiH}gEKV-r^hr@csTyCAuV0GjeI2gYHaKV%S5zwZ63)zsQC6#l)}=d6wsUE;&mREXhMz z(uY0N<}30PGIO-2^t(MP@;#S{DhqFad4q5BkFOx6#DlK@vAvo#ruXM~#-V`nG8Cd} zI6Vjx+BeedUV;6DCXu1OjD~@m;4g=Kz!9YitA`Ur!c_C9oGyV22QDX@<{N zELjoi{Vk~gpr=>M$s`b%ggZ8oQLHgkk2lHTvr$#GA^j4#I=uSN!sn^@CbI+;&QN$` zWnlTD2);zNG&C_(jMvEVvs3tLnd?JXrECcxjTe@v1wv$2tBveSwJ?hc`SL##n1xc$~kkDiRIP zv65bvCiNMu+KkfU%U@MdHIzjnybHp-#SFt!Ypgkf&x)OKT{}&(thgewIe=PU8Pa0V zgj~ZK-tH(W$k)q4)%cDbK60kNSymslLj0PVRTT?;tgWGDQ%F9Sh6l*}Wn;${7yD)Q z;ve4_YikOZYzQ~u9cnd5R<+jDm#B}g`p0kZk6${$KOV*_!2k}X@pUcX*2actv|%&+ z;e(gRX~PNcQ?%4O^{m>4x;mK+>@YRRkFhm3wp6u->YCV^;Xh(;DXZik_XF(&xP32x zLN_x(oG%=~CI=yo{72eVkz-I!>aj&7YnmVhOqOK-gJmuRirH(a2Upm5)1HtK{R8w>uZ{u)F|S-uF_H;K6F@0)Vy~#J1BLbvqC+? z>GiuQ;mrKfs!#-hcxTCrxy1@LMthfQjt(76y;UpupEORpA?q?oQ%gT=Oj)R9W-v7HDS7_uHbD)PiGC)${lEBbvzc z>oaExPl#)l1cfI~=xeayRO9pxjnO)=Vq(ZO`+?a5fe8DJ%4)=>qF+Nh!$c{WN(jL{ zIkbGyk`=}Hu4!oHgit__>(V-6%kM*~ySeKlg$tC>d38BebY zJbkH6(^B(1dHH74nu3l6xz>hjA~f%)rnX3=C59IXQze;VA(deC(`N$9nuZsj{CzO~ zvdQsbwGkhPm9E~IB)xC;s>9(ttfe`Mjv5Qug#7=-tz1o-mxo)5tq}fCw8HAut18c4 zJ({#1H4_Y}{x51Z@C&7w&2CH3^L-1d=fmiG(Ad=6M@Hw~O;0%!r%H3w$ki4(LkAR| z1phPLZ7RogHS;+MjP9Q149X^RNj)Qk(NsVC!Dlq_)*#ab{Z-r3=kGYml$vI2%%BfV zelIT%Dgn6^E8O7908^x8WN_-)5hURJ7zzJ4eq-sNSVv6RDflMZRQ#t8o?`C=x zGebPnOwq4McCq>fd|MgAqMF0CHMQY2#}lnB*s;R20+Z@cE2h?*8=&7phE=T_YCeEl zIaTl2EQG~DsJRYbC)SJG6n!&B4bwL#tYef!Js0e&I{<;P(rKr(pi)y>3%kdkO9eCb8mT&NlIRbq?7TmnO`2 z^n7FqW+)Xai$g2Pf-#wtoQ_Syyk$k{2kAge?wB^j$7TAlTGn!DZI*+s)lcsQy^@1v zy?7_~a^RhHcpLd?+)6iT1KLhl53?`{yvI?ePZHC<6zxC6Xxt49* zBty1%fNP@$-!N}(G^>R(aU~enh*TZ2EK@6@OSz&s^N|mQb;dk6i=LA9o>2611o&2C zb1m{R3s$qP$3}u{DC2rfmd==Eey}>IU5z?OaO1wVXdO>PHCfVR=zLNawasmq ze28Z_z1a9OaYy%F+Ub0@D$>}D&Ajl(@M3-|v;@y!(&1{W66dVF3te37YRUm!f$?FG z?N)7$$~2)m8s-MqnRO`aO3=3Z*vl4gP!kWaj{I{L2s=E^UM$wBPB+T7YX$_h zhSkj-?u(fYr)i;RTTM+k8kG^|L)b?(RanW?(HTv=QAWKJZ{|2>u*%R`efYJ89AAXW zWH%O#dJ7wMV|A=~OHI;&Ew+V-2eJO4Mk>0~TkniLkHQ(1=ad zI+w+`6y`CHCD!FJL_+_4`ZW-;m(5^0w>ii;L;V%&W=G|*W3j6%oByWKk1er6n`2^J zv+!^ow5RBW>->BXWGo%ha_rO?X(@M({WIN53o2? zIxDw=KdA`kXz<2J!-o18+ko2Ob!{Rf4C?4Kdyiiq=!8-opK!;Md7QqAP*A5s#$2|s zv8t)|GTA$(BgxJiJqc@C_C!%N-s3RDOkNYlP+fJdk3!be)pJo}ouU%QcxN_T zeb^bOJH%292UfeCkZ{H+eUfenr>l5D3d0(xY z$BSE|%zJ7R;pxu%Y!l%bmU-`MBHSl$?s3By_ga~jc@M1{=e4pd^S;_dcz?^hw>J?! zz?y(Z-I6aa-Z#h>*dE*whaMx;I z^jCwP_Az6d@xTqZGu00{$^FA#&{NNSrGC-R=y{*Ol=P+l#uV^PsCU|bUlP;y6!d#iz`vLR{(X_(dtCk==vj}+X3Bo)Pe ze@p@YTMBrF=p(EN|ISVUAD04Nk^+7i;H+O$E>pi@!0D&S{xuH$NiOK0)b(hTYE2=3 zmzKX%(;N9+B0rw5k;9ir_hq-Q34EZn>|#Y3)(j7&pnpCE{1w1i-aC`@c?)p*mzfi9 z)bclqAL)cE_&31)uC$5X0XXIFE>&1l-hCoxpmk8|kM2UQ{VC-01s~MM%;C+rz_+&c zWuN}Ys4w{WDc~~!r=AB({i27_GoaxQB*7~HSCm5T{Nr~Z`hvFt-j_Z%0M2rmwTLN~ zRnr=a#_$c{!W!Jn(i+}?haSRM95wP3qbbaT;o9bqKF6=c?PAeTRohlByjvnTaIY<# zI%BeI7xX5=(zmH0RMpyAwGB6t##*=GbOyIhVQaOq5!>G(R|vNrjUO zi)Y|Tk@;;6ky`!j@D$%##tq_I8k%YovrGKEHg+?s!M!}p`z*qX!;MR;H{vVA04;!V zqV-lNEO#D$hy}KL+snDvm|GXv-@pwVylVkfP_wm)t*a`6yMhxHbKqz(rXVcboQRl$Y13k!9sl6n_&k3lF@jiWO~*3uS>CQHFHcr~G# zXq$AwP*N3LcW0M3#OmjxPrx{1FbUc_H*vY0?f>DOBaTf?_lx^X7Kh?vF6xvc?n<6t z#LtaFA*awBPMxAH3b!_e0#2Xd( z9xdF#z&mRcHO5pH&P*o~idH9^&`DM69vJ_{hYNi^&SMouw>9FZ2qB(hk+9yxcnH_p zVih(u$HIlB^DD;3sy65po+>Eh-8L|z81VDr8v}NNpYAs1XndS z)F4+JhVoybWT1q>v#dgPV3>+Q*>H8+2Jlri;hAESY-p-$Hu0+J>eldPlZxPRWD|#( zOjNTwlhXe|ggb&*;$Y88U1mSpg!&yz8mnlX1R{Ji5L0xA-|SnP&<~vZ!m>NzDn`o9 zAJdAMP%j@Go@D-VV6c>Q@;BdYGvOK*4i{;7VLC3Ck#i|hc)Z`?H~Zx#tk;BCE{UBC zKc0V=YdQX73&Y_z--$D!`7WHI?rpy-fZ#XSjQ!32y9w86Mx(!>GvNl{`As*I<{S2T znQ)$@@V*g*q%rzyu(cTx7SZsV{d_0XgeHH(Z_2+@^Uv3GX5Zh0d=m^W@?)3K$=~pQ z5-?T~_2XsE2TXXL0z3ary&1qRMBM!59KnPwreK=E95a}3cM|_Ty@)g6u%tzu;WPQ) zp2Tm?B}|C7-6UMe`tQ~JMon{mVM3oVjFw{TZ-m~P#Ba_yOi20eD>?t~0O|IBa~@(s z?k~Epa{@EPcvh!AGe