From 6bc6609e52fd5457d3e9325a4bd115efebcde80e Mon Sep 17 00:00:00 2001 From: Janos Czentye Date: Sat, 11 Mar 2023 16:07:31 +0000 Subject: [PATCH 1/3] Add converter script to extract histrogram data from pickled distribution objects --- spar/data/distributions/convert.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100755 spar/data/distributions/convert.py diff --git a/spar/data/distributions/convert.py b/spar/data/distributions/convert.py new file mode 100755 index 0000000..61ce8d8 --- /dev/null +++ b/spar/data/distributions/convert.py @@ -0,0 +1,15 @@ +#!/usr/bin/env python3.7 +import pathlib +import pickle + +for pkl_file in sorted(pathlib.Path(".").glob("*_dist.pkl")): + print(f"Read data from {pkl_file}") + with open(pkl_file, 'rb') as f: + dist = pickle.load(f) + hist = {k: v._histogram for k, v in dist.items()} if isinstance(dist, dict) else dist._histogram + print(f"Extracted histograms: {len(hist)}") + hist_file = str(pkl_file).replace('dist', 'hist') + print(f"dump histograms to {hist_file}") + with open(hist_file, 'wb') as f: + pickle.dump(hist, f, protocol=4, fix_imports=True) + print("Finished") From 54ef75b7b0d9c2e9c755b1ca0f313bc8861f8d64 Mon Sep 17 00:00:00 2001 From: Janos Czentye Date: Sat, 11 Mar 2023 16:08:22 +0000 Subject: [PATCH 2/3] Add pickled histogram data --- spar/data/distributions/cpl_hist.pkl | Bin 0 -> 2214 bytes spar/data/distributions/instance_cpu_hist.pkl | Bin 0 -> 23039 bytes .../distributions/instance_duration_hist.pkl | Bin 0 -> 353018 bytes spar/data/distributions/instance_mem_hist.pkl | Bin 0 -> 103156 bytes spar/data/distributions/instance_num_hist.pkl | Bin 0 -> 255904 bytes spar/data/distributions/job_interval_hist.pkl | Bin 0 -> 619 bytes spar/data/distributions/level_hist.pkl | Bin 0 -> 1419 bytes spar/data/distributions/task_cpu_hist.pkl | Bin 0 -> 429 bytes spar/data/distributions/task_duration_hist.pkl | Bin 0 -> 212962 bytes spar/data/distributions/task_mem_hist.pkl | Bin 0 -> 2557 bytes spar/data/distributions/task_num_hist.pkl | Bin 0 -> 4077 bytes 11 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 spar/data/distributions/cpl_hist.pkl create mode 100644 spar/data/distributions/instance_cpu_hist.pkl create mode 100644 spar/data/distributions/instance_duration_hist.pkl create mode 100644 spar/data/distributions/instance_mem_hist.pkl create mode 100644 spar/data/distributions/instance_num_hist.pkl create mode 100644 spar/data/distributions/job_interval_hist.pkl create mode 100644 spar/data/distributions/level_hist.pkl create mode 100644 spar/data/distributions/task_cpu_hist.pkl create mode 100644 spar/data/distributions/task_duration_hist.pkl create mode 100644 spar/data/distributions/task_mem_hist.pkl create mode 100644 spar/data/distributions/task_num_hist.pkl diff --git a/spar/data/distributions/cpl_hist.pkl b/spar/data/distributions/cpl_hist.pkl new file mode 100644 index 0000000000000000000000000000000000000000..cf9e4a68a50464ff476c7e26137b0107a168a762 GIT binary patch literal 2214 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 H+46q^;0jRj literal 0 HcmV?d00001 diff --git a/spar/data/distributions/instance_duration_hist.pkl b/spar/data/distributions/instance_duration_hist.pkl new file mode 100644 index 0000000000000000000000000000000000000000..410bef801fecb4dff59ee67d307298159bda72d9 GIT binary patch literal 353018 zcmeF)dDxFtyYO+D=Xsu|%=0|Y^PDLmvm#@NG>8-_4P=N)5k&(@iB!l?nHr=bg-S{T zQYsDJy`SvkxcB}29(%9%dVcJ?x}QJxdmNwlT<1F1xz@FQ*ZsrYufg@L2S46ZQZy5Zx7_8&8*|HL^nQ;r?je|Y~fbMBurGsV9`{^S20G;ZSP z!T%{qht`@idooUp+lQ<|M93F=t8Q2eN}Ye0(!7Kk6Uc^4@8rhM_E4yMi@pRVeY zH$L6@IVeYlJn^G44F;{to;!Zj;A=ob_vefswYhJu_>^f@j`%bxGX@sxpFMumN1H&S zl4Xk@m8=-(tq-%rkD7Q0^zih|@uT)X0;*RtQ~an^EkW=1$QVCr<_OT{J{jUi%^L*T zF)n@lsB8;BPrj8de$>aGf}U#(I^Gpj@PV}PbM1K>RJbiDM{m&Ct!d)tn(_gtd@s=H zn?c#mrjDO$X$3@mwgXWqPl9HR1sz`oT2>o$x+^HdSE=IHRXGKs)-FWU)QzC3oj}uX z2lY=0YET69*vBd3*VU8*Q!Yc)r2U|F4}o&70@dsRy6jd^*5shmbwSC0P7%NQkINyd z)ow(+dM?28%{XscvgHpByoyZAlTm;nXmw&y%#(k@uaVeropGH)^-$3Jb zgKqj3l>8M?uI->v3qiA<0ri;&8oC(N^9ImM_kpSm0?nEL>d*mnngicyi>UT(K;tWd z-fa!4TLQGR1*lI}(1B8*HOWEaa)N540%iE~2c5XbWYdX%{Rk76b|t~Uvqup%U%^LeiwAdSD=DhK>ZJZhHV8^+Xq_xDyY>?P=%L3zcBrss}S|XE1=ek zKy9A^JunY+!^5Cnvq7`wgMOY4dUzpdp{P6B0Ue9xDhntMNpwvK|5an^?U_%WDV#v7qnp|qORw_ek%|)f>HIK zK-5qUtiA+Mqn`p*dI&V{Nzf|hTK6cU9sq4x26}V>=+{R;FEXn3VnnT<3py|#bnX41 z&Wt)X2T{i!1f{tbbU)L7%cwtQVc_n2K!;dFYvy|8ZVb%8Tn%R+stlTpVN}hr zh$_hi%^i-Yq|8-^Gge}*daQo?D5M`d0px>DON7gl;x%QF18HDtu7`1jFqG}HTjlT+1g4AaKqINNThyIBAkWmGgtH9M5 zSedydaNt@-)ns#i=!f*nxyC8X)t9ul7joUr^xySF)OJ=sj{}?b!N457L2bFl{H*In z4$O2pausK(hk78Y=@p>7ok4Y&z7nIdGJThh$aSVGXkT|wp>CkZIOCx%h#JEgKk0<1 zN$o&WNVl~`)B#5IZiT3B9Jq~9uQ68_M%8bL^fj7;cDDeHZw5+1I?)7C+Za`>F`^EU z_SQqx#|=RbGAb#f3N*mLL!=k#BdQRoaUDe6Sr^op^d$!tu8o1KNaJcCY5}93sfwrp zwLmo(^?Wr%r6k=`9Z|^`^+pv$ZL0)Y&mtOBM$|@9&WecY$n-@?Q<&@N^2l{_InZWC z^(D0{g@KjIfbJ~|D#l#9N+N1D2X%$0=$Ut`o}<~qpgpJuMj zMNvdA(q$YtiByow&cR&ES?Y;GC?YS@H!6&%T%^wnAZk3LvN38{K@41$4>XXauFH?8 zv`pWDQKcExgEPLtfdxoiNN=;$9gHf?8T+!XG>j@ss-G8~I6^9x2T`dR)s<0A7&Vnq zT}X#=VaCUDgPtUPNNUeqCrN8ayP2zdP89JY2i9TK0n!9gcjj8dsIsKHNsp3VCrQ-0 z>{#PNIY1pq*E0QS<~q!QPcdo_qfRnv1*7g{)N)dtY*^4lMh#=sF-9$C)HX)l%BcFJ zZCO!QRp#2osAHtjS&%C^XMBxOm6)q5qdG9^yUdtzGY5XmsKbmp$*A6p+Qq1M7&VVk zB^Z^RQMDMAgi*&y%QK-9ix^dy^d_kUbMje%x$f%u+D#WO;C9E~6$fYCfYX zGwSDbm@ze@N-|e>(p=^m#;5{}>ddHajH<|}N7ADDQyjRGQ4<)olu;uXbqk}iF{%Zl z4v`9w8j{kHGLiLW(YAx$SOCe0!ZCEZSXjC2Vp6R8@hJZV;Hbm9xreWYEa zCrICsWX27Qx|j4gDL?5dQcuz((%w|)#0k>dq|VIs1f%jXYB8g-G3qFz&i{4txOenZ zjG9flj?{-#ij;}8BPIHkmQh7XJxK*g=a@b}qe_xCao`cs=cM0AFOim$-XhHsluuW~+MA}Cx#9XTwC7ZU5QBuSMjQWT)hP0V<{@+aeFU^_F zfpbX1NUKS`NY{|MkYr$6MqN!h{|`#yuJIv8H6tx16(kiWB`4)0r6EaFQATwmolTA# zARD93{}YzDo%odlKO)s*u4fr_Cutq&80iq{N77`{J0uw>=^x=h>BJO9JxZEJI!szh zT10x1^gU@J=~a@Xf1FWsNIOVvNq3R@k!F)_Aax`)C5&QA0_0kOq=UkYqcuGpZ4(45Rfq%6aNv8Smq|I9>-@jxjQge_+fk7N z<$+1dC^;s%8Fl{Oti~bPCX*@}uA$edV zsuXj5#{(b-vor^u;=t3S-6UzD+!OLaAy4gGre96kOxj9XNLoO8kTi$1lr)2M6{!#D zS<*1lXi^zcF;Y2FEz$=`@t#wfQRf&{mQl$_Nl0HYS9(UB|EKeDFLx5p6eON@GhB+c2&sPn%>Aa43Q81)wE{I3UyJMa-kNvZ1@b^bR7 z#LcyzQ7cIAlSYz`kfitLf4M>2BIHcGz+AVGB-c_#2`ymMJ*2fHIfe5X^%F@>&Qpw% z9g=~Ma^P{&29h*-IHS&xq+imUtsHoeG?lcDw1p&f&1953X>%AQ&5>jBB?rohma9V+ z^aXRtJt3E<^!^>@dY2UTJj%z(`QK6!_Ysv33VHZsw^y<*$+d@3he&eYpJLRjBlTU8)qs%3pIKU_=H7{rUoCCin{Yd(SBrQzE8FP~gkmLaD zP<#TF4>_rtX^KWnltJ>&M5DNA2RCv?{$j%xc|Xs&b%IFF$0+ z>q>d%lGn~^jM~gIk%m$7$tPR;8gt3d9da|tgZwsgNtEoPyeUXshnZe_FKd)fg+G`} zo<~V9uPbTUdwCw^rxW>vkz*oPt!(XmT#!6`s~IJwKFuh3LzYg+%ftC!y%zUMdxz=e zzL!tY z2Qq3L=?2oRBx!ViM#=e--goD~VI*mx44ln@50QG3DwBqg`j8~*c1B65-54e5IGWO)~DM==on(8JALVpcJv4Gae&JT^};){O_EMTf}}wtt7oidV_TSH+jZQ zFEgJ1U6^sBrZLwp(hAaEl2pHhQ42`3NPqs98vfgV(cxJ}-A0;7no5$WPK>&SbpH2O z#%HKe#jNAM3zpXSb zo&Uv`aj7(ORUs84o&PPDadSyssX6fcFRP3@Fdw6`lfL`&ZjU=qa-IJjopGbi|BlYM zRDkI-kdl&qV-Y`-B-b~L+E0=-o?uia)^(gw=YMx-++|AV)Csy)nsa(v~MlLH{<>u08yuBPR|lq*e^ExF{) zNFiFx&u9+OTm~;Nzxq2)tdulJ8opuK+*tGFH(0>A5sredy*{Z zGDb-*p{^V#xjHgR79`Y~13QtfAW5lh7}bH)l+=nOQPPR#9N2=?mQ;__jMRu!lT?FL zha_EX$EdKnq!ZPdOSZNyqh!WfK~Ys1CB3i4s0O5pq}n8@t3IPDktCPYRe=NL6gFg3 zWs=NzX;74$99ed0=8^*-MaT}xz(!0j{VL0-k|cRx$}_4lN%|$bExnf=k{PAcu-;3* zB$xC{uE(NWwmb@wOG=g9mSa+eGs*)aMaaM^%vFw5oD_DVrFuy(_m>Qm10V}3#ZqOU zTzs-aa!h1K>3s8YvQG{y@JB89{ zsa_6%922QawnI80y_ZJI8s!6D`W4m*xmV?w6lSBP`X-E$M?tzOFAs9=<$;msQO=iq zKFU7ItD?*(yDeKQy_YCSF9%avC?BlyDJrK>21=tFaUZ3t5+!%Eqz^j)l1t8)bXCrT zG+H_#TPsh8%qRn8*|J0OfiI1gOF`1hk&}MO`D(-6mbzrwQdbA&l6yk7L(YW!{3y+l zXIq*hkAmcC&FW>K{P-Zfm#)gYuRKH2RmmmqU$Sgzj{Mjxosg3wpO5l6B)ct#NnXjM z(Q@(0`H~YIHlyT{8D)*q3F((~LUvm^Av+{nD>svzoOV3X5+&zLp2wC!x#Uwca=&CB zr4v%UTvqK_y?nxS4vLcRhKh1vSCTBK6Qkr5_6UlSlOtEHTnh5`C{KqxqH;$|bEK=X zM%f`bIbr>hJ6cY()FnG4&$hg;%13}yFK-I+x+2fE^h-XiyQS#y@r%R%(Q@ZV_44C`?4vv#a&^d~ zAT5-B$!#K0QmUL)>8kWz&X*ianNd!Td<00NWkzYCJXZ2PA-UvCNO~c;MCEapM$4Iy zJ4Y5Ihg?Y3Sb*1%6d@-^o*~&)Jy&O3?nDRa$KW<4bxkP0< zq%Jv_(rDRjDMDVOI`EjtGbD|cx@19ePe{MyM9Yzr+eC`Ej0=)}$%5p9ktk`QoQcjX zLS884wLprHQz(aAE*N>2lP67b$w1j5sa}qp945&nQS#HT4D8BA%Yx*NmMD2d<+73! zEnSr(C)LXXBUGMil&3>Vl_MvOmLn&nO24G5l1qw^n_Nzgq?boQmMu@M+^ce%$TK8c zE8iAKsbM7BAty(=Dn%6KF_8ro3yPBT(g`6st5Sr#As1m?^2LUHl;`I_d9#v%@-4so zU?BaH>g7Zi52{Pj7Y-UIQIab!bICE0=13=GVAvWZmy{~$rF!XoL9Vd?Nsft-6eg{DrZ%qB$re#B$vBXA9f}rm-I{0 z%XY{MCnUX;nvcgsqT~jUx@3(xm|j{~m{D>7vM@?+6DcB$q=j-v%Tp^w z$QtE&lx1h*8l@A`Rmqi=xnyglREd)2$So%WCB2Xgl=SjGA^nmQE&C`pKqmG}a>)UZ z^s;Gko5;bGTvCJ_02wGZfSgq+LUu?VcZrf*vb8c$78H4)JZVzBq?hV5@=Sys0NIWV z%q2S{&5>MEy&RLmoKYGrMaYa2B@dsZmt0c4Y?_?aFp?tVc@&cLQoS@<2Fgo~oG&R= z4uE{}N$({}8Z9%*)=G0Ey_71sqzD-(EtK91Nhjnm2}u$1F(;3^43srWC!`2jwwxRp zD2GX!BOi0JAR+l8NG?&iV5B*+Mmb;d(ku&-MoV4NdwHLb-IiBt`3YZMM5HeH8mlrd zWXUC8%T(t;`L;l2lpT^aN)eJ?4wH0M2Fi?bzG`rdl3t3CT(y}?x+)}{5RwH+@2j#1 zIZW~$jO41xT=Fff%-DbfC6_Ena>>AIOdmF*bfP|UNps|wNU3rF$eV(!Q5F<7P+l>lddVek$Py*5 zWU_2|Es(lopzM$|N1~*987R9gx#Uwpc3aX*qvd&&LoSWZ#s@~8M|tCu^z!l`3zAah zNs~uoh0+`$ zx%lK0S#CM`JPPttfNX8pg5*t99vImn zNiQcyNJ^Du%ej|E%g+i@mu!bTL$d6!10XZX#V5I>tMVhIbV5D?8g}khijC9(i}NCQiL1;sa{AP z1t~&Gm99!%@^nb9uzNz%%lVQhxyj{oTV7Y>Ns|^zE?JP|lHSWLCw0lWmw~cFGNar8 z5+!StPh^Rbb1!$aybZ}Il)9Spv64=7U{oWLlqykjzNAzsLhe;LCbGu1ELHj?yWN5V zn~`MG8Z$~}Y|SXiC6~M8>daj2NYX+nq7w(UBFUynqosw7n5!$P8%b^eSx^%Wlrzzu zQEf;aNzw^96Ad{~&V+2OkUUnhY-zN-AT?!Oa+qX6(p7n2q%L_=kmks_mwwe}^>PEq zl_qt`10$cc(tA0DLUMmeE;*QTJxY}HUOv;p-V~%R*$z1-(tFu$iIO!+l(bMtt|4iT zyiiJ1Bc3m5p&S!=sgXA;c@vd^GNXLpOOzY{NiUrU8z{Y(ToNT$nncMy${NGYm)vsl z3`u$^LQ0jhD$kG{6DdM^FHf4}lCv7N9dah*LYCtz4~>E+x@zvPaV4=_nDEfkVF zT5dTx6VeIUN2yDG?vNJBvn_|bFmEPVqtum$1Entcwm=TKoI)u=q9m7eLZYPi@>PoD zl7aH$mPE;qy0S*;szk|xBuc)tlv5}J<>bf*t9<_@b;+`&Uttf7lqzRJE-U#n3i(<_ zo(`E&wpI?g3>1Zg4vXUE9c3X;&n@M&%tO!}QylqSMQmVY)OO(tg z$5)Pt^h>r@o*_BpGElZw4!K<0@>t1jB5RaWC=ZOxC>Kl)ek$Z6$pe$0QPO)M`Iam< zb4jTZC8cIyuFNEflJru9G&(EOXCldrIT@9Ol#wL4WMEnjlv3pYWaGdvO3#5(z2uSw zNmMSTmw~d|se%SddZ}J!l-{S|jM94<82L;{ztXV?nNj*B%a$lvP*`*1>5v)aFv%k- zx#ZkSl=MrAkbX&&G+L^cT+%Oj9;NqEy^su)8KpTgP?jxGvTS)2qzGBI)Fn|;mmJKn z-e>0nBc%$-0SJqde#t-~S)=qzdN2KwB4lfYq^l{}LWz>*tWm0$?T{$xs$3m1 zP&y%XNhiW)l#c-U0Fxr5RH4+|At_ZhO=b*hv@|Ddpv)+_WI=N7WkyLaQL<^0Ue0P* zE?JP|5|T3^bxD-$wzN=AjuasS<#R}KNfELgGEfet)Fl^;LtA_TP`aZ7#1a^O0F=H8D+O+LDC87m+X*KFPkO$(o6Ny9LXh}kSM7>EWLax$ngzZc37#> ziLe>vQ3zY3G)EQ`mP@LaVIg(3A(o3mAvT2e&tc9{e(i|y521=CFB~j7| zS))Wr5wdLAG$Hx6}R4)UCq&afm%Z$I4gygA}1qsOx zNqTu*kqbulQTio26uB;W9wnEQDn&^3@*|R*9HFphNCrx&a<9sENG|!qGdY-2s>~>z zkc&?SN|ZEOijXzRVUj=Hl0SZur$g$JBIM6Iq!ZFr*$yc}s+SpM+46`=5mKt`P}s7i zddVf5Cfgwc<&P~SO8)Fu_EAceuFAl$7Rq)=F6o4AgG(QkUeCHAXLqiZJNv|ecX`ysNa!IMO zY&j+}qYRYYmNm-lD^XIt6d?r$#Il{ z(l}|aJomDGnK7*6a?8smNGD`pB$upFq9m7eLI%pS8rEo8qs%Cu*3t>tA*oB=47}bumprvXQmUj+$~RsaC`Cy1 z5+yTAsWMRdC8to%m((Q-lDeb_A*o9)D~S@4PRO$@SDFkAD^-e+=137?{gNG$=17zj zAu~$#asZ?gvLI=pJPILh@6SR3CYu zR4=c?@`IH0UUEtA<%d}Lky3t|lP?e?y?pZ^Bny%j3jMdQZ2tVFCM>-~$@e+Z99eb+ zzWPWm`SwzBUCLbY50lFYz` zYm^x!m&{m)>7~&!P-d*oT(zT8D-NthYD#KHYC@_{YE0@(lDdSXUzagg3zFoLfwJtj zLAe?+>IzazQa4g3QU_9NlH?MSWeZ)-^b*yPQ9_cdD+l%>g+<94<*Z6ncg`r)%K_-Y zfkQ}A{YXYhbEH&RP($WwPijVzr&bQ8JVOnbOG>TFD7gXZF-l66y5!u;{Uyz*%o!z0 za>tex)k$G*F!Hh`ubuMtC_5xG%8Rb7u|QDug@U5w9kVb8 z%8xa<7?p!0KPzNmRMsHM6ci=7(r{o#Qc6;4Qd&|fQdlmDO3z%9UZUiS4f#?@W|Z`j zOQMA2OC>2nx_SwhEu{*{)=ClSm|p6Vu1b^~0I4f1N?Itrm%5~dGEmaXS5ML}sa|$S zW)za@B}y7C)yqE00gxzJw%jH{(h2F8d}}Rr3CYQkn@M(CNY*GVlm!We)g=p(x+ItE zkVHvca!h1KIdW2}q?dk4UGf1Yb;%m#d`VrANlKNoD*cj9ND*OC@@&hAmVQa~l1r+W zHA8(rS|hontCCA*lr_p9NXW8z^iqV7EJ&U-DODOR z{gNoz4q2l_N%gXia(_u(Lh=krl#ujZ-uUF6kf$ST*)pTt_tGzUwk1jqfXpaS(n1+1 zGluP>Jfd=&NR&`msga{(L9(?HC8dTPIf;@PWkGT#q%O%7Msmm{z0@V?!=l0#B>f5- z7*?0$l5;PwD>6`8DEDeuS0%mVk{M;$GGo{pC^^b#c` z1Ent6TG=6aYUSaRfik0%DkmqbUsAnvRf>=cM$W3Fm+EDpM9HV9v{0gCAEjTiMj0q| z2}$o|jS>|$V^~+iIw8xJQl-&yR;79=LY6JLWJdYGm)^_qmGogPlqjiQo^2^YN|m}K zO47@w$&6B}Jhc)Pxh~l>S&+;qjh0+tosi=z{gSgPQPK&iUZNzI?2r^8Ym`n%zoZD6 zQF2MCLQci4Y zT|)9~OA%7N+N2-@7IVRFCiITd)&V(Fa zsY@PFIXPi<$&6CHEL)WInoJfbl5=2CDlumR3ElRsY^(5 zNnH{ZIhTAY$c)lxiIQAWS6ElWa!LBI9g_62AR(zXP)bMoBLNrG+vuEPX5oN-n8BmLxL@NhhQT87NUgGB9jLIXPkJ zWk#W}B4kD(NguiT$OFTQkf^W)$-poQTTob31N)cge3`-w5N(Kr^sj?s$C{ba# zBuYqT45P4I5+xM2Mj04Zszgbyup%UvkfaZb3L6-fOBN&)mP?`}msBq#xxz?tNfAPk z)60xPVKYjUkfguBB+ZFDqvR5j^b#c`10z!`(}(4X92I%s1#XTU-&mF!mg@qqF>?CI z10#1e@{Exi9l2DQF>)?hwxpM+Sd#p}A`1$eG4jAzrk5gO*;UDPfoF`|94R#{S1hBX zh%ky=grt`p3QI4!!bsA~z_6&WfwIQ1fl@?d3Y$?%l^G-Fk}FNphf(ArWMC|pE$PE3 z^0H%DeOM6*HA)&SM^2(-L19rcFl;+ypv)LXl1oT(UEors2qCE}a+D0bz$DcRNfBXD zGVlUZ*qI2cJ}gQW6w85Oxg<(RN)4k6oGUE7LOLOFF23ez!bR=pG<10}r- z45JI2KCINRsIUb|l&n#r!YHiNuo>l+3mX_#YAmB<*ghh0OFXACPMta`~6nPf(x z$mzod%8Zd4Ed#@fh&(VXy{z#94~(2XtklR+ksBR0W7x9gaSt0PQDJq-j51J~6BZS@ zE*Tg`QkM*rC?Odr6nS7QbA|0=*o8W7t5c zOR5i}uo*9KuCOA)mK~N$79<0OA|HSRQN1iXmL&a>^b!@BBBzh#z_46$0AjgpDI$!d zuE+yrL6S>mlz~E$E0!cP3dxKTB_sodq&X55mR@qn--VT2GB7MkN)01PA2v{;qp zJfox+k{K^PNnNsRp;(qG>4juQsa~SOa)k|yWiFXfNM;n0w~nw}5*0?$dm$+`EWJd9 z<&q*I=aPXJn8MZ=xd=%gMv-R>8z@D{i58N9GGl^>ie(XU$ivc0b0T+DatTRYLNYKi zNpmDuSP=;|Dr`ZKtCxX7QiPCfM_8_~sIVC&O419(vU*7`bwwsgFBG;Q85mYqSo*MB z5+!vBg$)dglJpmNjdCGJE>#AGk*qP610#1eY@k#x1H%>+IZ9>}l2V1Fh_EOb7?~m; zOqnsPdWn)23dxK@kq3t5lImrkP*`1IQIbA#U6BV$5kj&c`8G;Oa)pu1C={0K0!K+* zLQ;f8MJ7ovbb-^y@)Sy`VG9Z?LedLKE{T%5!YC|PSP_y-J{2TNNU9Hul7T{zb4e#+ znO^D=id;nGfwIO}lB`kE%YP|HqQY{?!IWIFq_EzH%^0@Euv`)q%k;8rNgtV{dLcI#dJfwJt#xg>q$Trw~+ zh4nsi^-`DQ3M0uS6qZZ2HjKj3OH^2?QiS9Z3QI3hVKavPG$-l9N|k{^l1nITVA!(5 zaz&1kBEl$a* z)+hrbe?CTDW7xp3x@19N%MObQD^;STdLbDobxD*^*g)x5ST0E~xr8LWkffKWFp^wh zB-IOr6>)*1WI1Cjh3=E^lxnzwpqeO)*J1m!^ zmj#7I$&8Xqq7o{}vLlx&xxz?hlz|czMq#-mO14&_grqLH_#`Sag%u$S3Y#(Vz_7X` zN=Ql#t4pFJy^zd!@k#0mBPmq|hDC)9ltv55jB?-0j6z|#Br2>f87LH1SL7KbePojA zg``xOQ3hUo3ad+^gko8JLTzCzmo2%3q!ZF;87NU<6qZY(gd)!vmMe0U43tJke(R9* zVV#g7BIgR5QKAw=5n**nR2YSIHLMeoODL=^nK5i&hRqlj6}D_CB5Yt- zR9O13sK_&hrH^G)*barw7I#dJ^io7vuCOSXQ3gtskPH-xJWz6lk<2I*IoAaq7?xh5BCj!WE}2p8 zRY@-t`P@qplKujd6d@G3h_GCdqontdbA=6*PDCCUmMfO&WyZ)PbqUE1#d1c;B{NE0 zGBAw7(o0lW`mm_T3kn+;IqKpsJFHacYS=)Diu^$#xumYhbn$yHGYW+*C~Tm#P$-tU z!v1kp*czqOFp9jOu(~8F@;8){OGp+ZosfY-kq1hyu(~8la!Fk>P)Ksc^3IXEgrtZt z3R{rOC?qq6Ma6PpSIlVL|ELY@#Vd*b$R9Fkc zqGDO9%qS$i7m8e0*o+btHlqxb>Ln^Hy+lc_$Rz2*s+SqV2Fi>=l1ri@(*>?x(hG%E zAGs4UqvVn(q5rMaxk;1!88Rg4kkn06|8L>{KT#2?`7^x?6p~V786_Q;8DmLOy-?(z zf}~VQFHu4=Q2G@XCFzACe}x)Wm&_>DNA7*(BBUW&Elq^V=9r=7o z`mpNdFiBlPGGiFYj51K7A{QY8!a<=2_n7hP*_*P))+Y|tT|y(7q|#X zFI|-=p~$_D+=;M(VNtRm87L$J!$@*PZeiGr5+y}QR2aoFSJ;eUQL*f5*cv4&auJd% zY}sK^l3qx1g+;}3pyY~7k+&oAj9~*KcQq`1SXAU9A`c9!D{|BYt}85kSd^?$2L82= zuPjKG9Y(RtB{N>&^fKecr&z8rmbor|CocYsiT&z4=l|!+)UX|jWmjXFORAUjLNYLs z68gyr+o1%p+hIi{)VGeXMql8luog-Ykq5>yS1gN=x-LHb?G_Zdg|Y0!#m^NsV=SX0 zH#$KKOuVE2?bm|Hhbe4ef;c9zEFzZ6j%BV`t}&tJO6=Fa{kUKJtxeptzu=}_{A2P@ znDH<4DEx&={U@B9#5MkHFVPG9q$P;-7r2PXPe($nD{Mhhy---Lgc|j?TTnu6bYfk9 z+fSIptxeq8B>(xpIn(AOb|SG8G5<$jf1wK|LA*~Sh$8+%o0eGW|J}7MXI1F0y+ePy z1x4PD#7oYJw=@0yjEx`o!iW zs86fN`xtp(1vR{e0F2wPT<(c>=jKkX=;U1B zPW-jgC)9n6Tvz0Q7k?jPS!yhEUHncY&X}Ms_Y1roiD&hnwA&Z>FeRo>JWT(@Z($S9 zed4)KJoo?P|L#`e4Ul*PB;EjtH$a5{2xa0=V2M{p;?DGw8MY@_agfx_N4QUu@IB5iF zBxw|BH0fH>7}8kMIMQ{b@uUf)>q!$yH;`^5-9);XG>LQzX)UvkdBeQBz;9XPWqbk z4e49bccc@flcZCm?@6agKahSTogw{1`kC|#=`872(r={SNq>;ek&;~Ur^Wfs>Jm~? zQZiC`jkq|&4^q_U)Pr1GQ+q>7|Uq{^f!q^hK9r0S#^ zq?)8!q}rr9q`IVfr23==q=uwMq{gHsq^6{1q~@d+q?V*sq}HT1q_(7Xr1qo^q>iLc zq{~R1NnJ=?N!>`@Ntcs)kgg#0B=sWoCS6JDL+VTFN9s=+KpIFIL>f%GigYz;2x%zk z8qzS*aMB3UNYW_MXwtQ$F{H7iair@=<4F@p*OMlaZXn%Ax`}i%X%guc(qz&U(ygSa zq}xchlctfTlkOnRAl*s2i!_sTH|ZYIy`=j{vq-Z^_mk$3=91=-=93;EEg&rdWp1w^fKuc(yOG6q)nvFq}NDWNLxwUNZU!Tlinb`N!mf$N!mr)P1-|x zi}W_>9n!m`y`=X@`$+GTJ|KNa+D|$_`iOLp^fBoZ(jn4e(h<_9q|Zp7la7+UARQxp zN&1R(ob)y68`8I=??@*|CrPJB-;++0ejxowIz#%2^fT!f(pl24q~A!tll~x`BPB`7 z@4rY%Ny$jbNhwGvNvTMwNoh!FN$E)GNf}5PNtsBQNm)o)N!du*NjXS4Nx4Y5NqIkk=m0w zkUEk&kuD>3CUqfoC3PcpCtXhJLArv}lhljUn{*|q52-JyAE`fS0BIm;5NR;!D$>=Y zA*7+CYe>UL!$~7ZBT1u3qe<72#*oI6#*wZgjVDbYT~C@wx`A{f=_b<6q)DV(NRvrZ zNVk%vl5Qj2PMSuVPP&6MgLEh9F49cW-K2X+_mb`-%_7Yv-A|fBnoF8TnooLww1Bjb z^dRXW(!-=hq(?}Pk`|MekRBr~B`qU8PI`j0oV0@UBSZl0GASPC82Z zf^>}ZCFv{DanjeMZ%E&gz9XF=og|$ieNQ?~`hoN#=?v*7($Az{NM}jEl71uoPWpp% zj+7)BzyBg7B_$&zC#4{zB&8yyCZ!>zC8Z;!CuJaIBxNFHCS@UIC1oRJC*>gJB;_LI zCgmaJCFLXKClw$SBo!hRCKVwSB^4tTCtXS^K`KcqMJi1yLn=!uM=DRMK&nWpM5;`x zLaIutMygJ#L8?irMXF7zL#j)vN2*V1Kx#;8L~2ZGLTXBCMruxKL25~AMQTlILuyNE zM`};%K=2k8n@Pf{;ZZ_<^dKBT^+ex&}S0i=PXL8QT? zt4LRqhLDDmt|1L04JVBtjUB%vO1h17J82qeI_VD54APyXyGS!hca!cR-AlTUG>bHwbU$ehX)b9VX+G%z z(gM;#(u1UjNDq@1kscvEN?J@>LVAp}l(dZWIOz$}a?%RYlcc9ePm`V@tt71?Jxf|m zdXBV)^gQVW(pu7sq;;hAq?bq=NH3FKA-zi4NZLf&OnQy9g|wBljkKNgI_VA4o1`72 zoupl)-K0IFw@7c3-XXn9+Dm$mw2$;Y=>yV-r2V7=q>o4kNgtCwAsr$eCLJMtO8SiS zIq4|ri?}rS{BMpr78n2gWl~>~z9JnbeNFm?^eyQ-(h1T@(kasSq|>AyNI#O!kbWZl zO!|d%mh>y>H`4Edn%9#URXK2m;C0a8IyAyQ#dk+}39|K#A$zn1vtwNfIoGN}rwDybT&I;jS!CaD&wHmMG&E~y@= zKB)nzA*m6mF{ufuDXAH$IjIGyC8-suHK`4$EvX%;J*fk!BdHVVGE!$!7gASJH&S=f z<)j{@D@Z*_y-2-DSCaaW`jYyQ`jZBb29gGm29vHLT}>K78cMo`G>kNyG=emeG>SBu zbS-HNX)I|R={nMQ(gf1=q=}>(NH>yhBHc`yM7o7EnKXrTD`_g}Hqz~+X{70-J4iD~ zcarWR%_QATx`%Wx=|0jd(rnWGq&cLyqdWN);w2JgBX*KCN(i+n9q!&nQNiUMtk=B!5B5feO zOnQa%DrqBW6KON)HPRN+R?;@ocGBylH%M=ic93?Gc9C|I_K@Bpy-j+D^e$;H={?du z()*+jNFS2+lMawRA{``sO!|a$h;*2Ag!C!tGt%dzqoglL$4Fn2z9JnbeNFm?^eyQ- z(h1T@(kasSq|>AyNI#O!kbWZlO!|d%mh>y>H`4Edn%9#URXK2m;C0a8IyAyQ#d z5mHf7F;a2TrKA$1lB80k(xft^vZQjP@}vr+ilj=U%A_i!s-$Y9>ZBT^nxtB!+N3(9 zx}#st|0X!^&<5qT}kRg>PzZJ>Q5R#8b}&M8ce#1bTw%RX(;I$(lF9+(g@N> z(kRks(zT>9q_L!Nr0YoINfSudlO~dGAl*p1iF7k*66qGwWYQGUt)!`>+eo*Qrje$T z?jX$|-ATHOG?R2U=^oO(r29y-NV7@zlje}-lID@-lO7-~AT1<4NP39$FliC#5z?ci z#iS*q$4E;_%Sexto**qJtsp%~dW!Tk=^4^W(kjxkq}8P7NNY&XlU^XLCA~;mM_NyM ziL`j*`A09V2~7`igX%^fl=l z(zm4VNGC`qNvBBPlTMRL;8vIGwB!7S<E4xk$N5c}RIl`AGRm1xN)+ zg-C@-MMy^s*XPb_>XRCf8j>238k3rknv$B4nv+_PT9R6kT9ew4+LGFl+LJnvI+8k(E+cg& zbs=>nbt82rT~6vjx`Nb`)Qi-cbS0?|sV}J?sXu7|X&`A3X)x(3($%CPq@kp1NW)0O zNh3%jNux-kN!OCbkj9e6k**_+Cruz-Pnt-&fpjD3CeqEMNu*mylSxxZx00rkZX?}J znns#Vx`Q->bSLR9(oE9bqWN z9cex3CDI1c%cNIGuaY*BHjy@yUL$QGZ6$3ZZ701>dV};PX$NU1X%}fXX%Fcw(%YnW zNbi#NlHMcjBfU@hfb=10Kj{GJBho?A$D~h4he(G>M@XNNJ|lfjI!gM2bd2;R=_}H4 z($}PKNZ*paBb^|fB%LCCPdZKdf%GHk4CyD*&!k^SXGy=3ek1)(`h#?ilq40u{~{$N zB_ky#r68pwr6Q#!r6Hvyr6Z*$WgulFWg=xJWg%rHWg}%LPYHD zx{TDB)P>ZQ)Q!}gbUCR9=?YR$QZG_((v_q>q`stnr2eDBi(w(HcNHa-ylkOqiOS+FVi!_^bKWPqWE@>WVKIs9{0@6a#gQSN@ z50e&=9w9wST1;9(dW^J`w2bsP=?T(u(hAa(q^C$vlb#{1B&{MnOIl5OjCPukn}O>6Vf5lVbT%Or=-tF zpOcP~z91bVeM$O?be!}x=^N6wr0+;4NGD0BNZ*rAlYSumNIFCMiS#q+7t&eMucY5d zzmxtTog*bl&2PX+NlD2_$w?_lDM_hFsYz)_X-Vlw=}8$#8A+K)nMqklSxMPQ*-1G_ zIZ3%lxk-6Qc}e+5`AG#x1xbZSg-Jz7MM=d-#YvZvN{~vDN|8#F%8<&E%8|;GDv&CY zDv>Ias*tLZs*$RbYLIG@YLRM_>X7P^>XGV`8ju>28j%{4nvj~3nvt55T98_jT9I0l z+K}3k+L79mI*>Y&I*~3TbtZKobtQEpbthd;>Os1K)RWYU)SGlAsSl|ysUN97X#i;; zX%J~J=_=CIq#>lCq-#jSNW)1ZNFzz3NTW&DlE#q6lE#s)BaJ6bAYD(INV}=`PYt(%qzcNcWQNBh4bsCf!e(Lz+vP zN19K1fV6Z6R$XZ6j?by-s?A z^d@NsX(wqHX*X#P=`GURq<2W~lJ=6`Bkd!-Px^rLA!$G90O=#rLDI*hPe_MIhe=0B zpOQW!eNH+``hs+f^d;#l(s9z)q;E*ylD;FIAe|(gB7ILfP5OcKBk2t3C(_TPUr1+3 zzmk3<{Z9IWbdHoH4Zr^)B_$;zB`2jIr6i>yr6#2zr6r{!r6*+|Wh7-HWhP}IWhG@J zWhdnzvCYDQ{KYC&pA zYDH>IYC~#EYDa2M>Oks9>O{JX)S1+U)RokY)SYxWsR!u_QcqGZQg70gq&}p+q<*CS zqyeOXq(P*?q^n3*lZKFnlCB{QBMm2wAdMuAB8?_pOBzEOOBzSIjx?S$fpk4-BIyRw zjij4MHB*5k2H%kn{+>E z4rwlF9%(-50n!4}Lehhzhe!{T7LgtyJxW?kT0(k^w3M`r^f>7W(sI%Y(vzg8NKccV zA+02>B0Wo5O?r;BhV(q?1=3p5i==g=^`w_b8%QscULn0o+DO_&+Dv+lw1u>lw2ic# z^g8Jc(wn3mq@AQ)q}`-Fq_;?Kline{OWI3%kF<~UKIsF}hot?a1Eh~g2T323J|P_< z9VQ(ieMF&sS2qosT!#|sRpSgsTQd=sSc?wsUE35sR5}WsS&9$sR^kmsTrv` zsRgMesTHX;sST+usU4|3sROAasT1ikQfE>ZQdd$pQg_njq#mRzNIgltNWDo{lKPPP zlKPSQlLn9mk_M3mldd9NO&UTPO1g$Lj5M4yf;5seiZq&ZEolsCENL9+I?{O31k&}S ziKH7yH9wI$VT10w;^eAaDX$k2u(o)hg(&MBjNXtnpNKcZU zB0WudhP0Bjiu5dLHR(Ch8q)Km7f5SKFOt@g){|Z$Z6Li&dWG~VX(MS9X*20H(iYNI z(l*j|((9x*NN{zklrG_O?rp)E@?06J<>kX`=k#@ACmTy4v;<~9VC5B z`h;|dbeMF6^eO2x(&wb3q%TOvNMDk^A{{4vP5OrPE$KVb3DQZ@Dbn|()1)6rKa$Rn zej@!$`h|3s^egE%((j}{NasjN(((H*Qc_YfQgTuXQc6-PQfg8fQd&|vQhHJbQbtlH zQf5*XQdUwnQg%`fQchAXQf^WnQeIL%QhrhaQbAH7QejdNQc+SdQgPCyq!Of(q*A2P zq%x$kq;jP4qza^pq)Md9q$;GUq-vzq*kQXq&B3sq;{nCqzMOuCA6HE9TGDCru~Fw$_+2+~N>DAH)swWKkmv7~XN>qz5C z6G+#SCX#L--AKBLbTerZ=@!yt(iGCIq^YFaNVk)wk*1UGAk84%NxF+PlXN%f9@4#} z`$)4$vq|@p=8)!+=8@);9w03sEhIfidWiHeX%XoW(xarsq$Q-sNJ~k}NRN}AAT1}Y zAU#QXiu5$;8PZD9D$=v0)uiW0Ye>(NULdWFOaJwoqh5@QfBxpEb)@yAmq;5(FOyy& zy-M0h+CI9U>hj9U*;6`i%5B=_u(7(lOGPq_0TFNnew`A$?2wj&y=_ zl5~pnJ?S**2hxwEGo+tLKa+kTohAKB`i=BE=?~I5Qj+xi28@)Hl#G;|l!BC!l!}y^ zl!la+l#Z01l!26yl!=s?l!cU)l#P^~l!KI$l#7&`l!ug;l#i63RDe{FRESiVRD@KN zRE$)dbSbF>sU)cssWhn!sVu1+sXVCysUoQosWPbwsVb=&sXD0!sV1owsWzz&sV=D= zsXnOzsUfKmsWGVusVS)$sX3_ysU@iusWqt$sV%7;sXeI!sUxWq=`vDhQWsKJQa4g} z(&eNcq$@~0NxewDNmr8kkouDPk@}MckOq`jkq|&4^q_U)Pr1GQ+q>7|Uq{^f!q^hK9r0S#^q?)8!q}rr9 zq`IVfr23==q=uwMq{gHsq^6{1q~@d+q?V*sq}HT1q_(7Xr1qo^q>iLcq{~R1NnJ=? zN!>`@Ntcs)kgg#0B=sWoCS6JDL+VTFN9s=+KpIFIL>f%GigYz;2x%zk8qzS*aMB3U zNYW_MXwtQ$F{H7iair@=<4F@p*OMlaZXn%Ax`}i%X%guc(qz&U(ygSaq}xchlctfT zlkOnRAl*s2i!_sTH|ZYIy`=j{vq-Z^_mk$3=91=-=93;EEg&r zdWp1w^fKuc(yOG6q)nvFq}NDWNLxwUNZU!Tlinb`N!mf$N!mr)P1-|xi}W_>9n!m` zy`=X@`$+GTJ|KNa+D|$_`iOLp^fBoZ(jn4e(h<_9q|Zp7la7+UARQxpN&1R(ob)y6 z8`8I=??@*|CrPJB-;++0ejxowIz#%2^fT!f(pl24q~A!tll~x`BPGem@4rY%Ny$jb zNhwGvNvTMwNoh!FN$E)GNf}5PNtsBQNm)o)N!du*NjXS4Nx4Y5NqIkk=m0wkUEk&kuD>3 zCUqfoC3PcpCtXhJLArv}lhljUn{*|q52-JyAE`fS0BIm;5NR;!D$>=YA*7+CYe>UL z!$~7ZBT1u3qe<72#*oI6#*wZgjVDbYT~C@wx`A{f=_b<6q)DV(NRvrZNVk%vl5Qj2 zPMSuVPP&6MgLEh9F49cW-K2X+_mb`-%_7Yv-A|fBnoF8TnooLww1Bjb^dRXW(!-=h zq(?}Pk`|MekRBr~B`qU8PI`j0oV0@UBSZl0GASPC82Zf^>}ZCFv{D zanjeMZ%E&gz9XF=og|$ieNQ?~`hoN#=?v*7($Az{NM}jEl71uoPWpp%j+7)5zyBg7 zB_$&zC#4{zB&8yyCZ!>zC8Z;!CuJaIBxNFHCS@UIC1oRJC*>gJB;_LICgmaJCFLXK zClw$SBo!hRCKVwSB^4tTCtXS^K`KcqMJi1yLn=!uM=DRMK&nWpM5;`xLaIutMygJ# zL8?irMXF7zL#j)vN2*V1Kx#;8L~2ZGLTXBCMruxKL25~AMQTlILuyNEM`};%K=2k8n@Pf{;ZZ_<^dKBT^+ex&}S0i=PXL8QT?t4LRqhLDDm zt|1L04JVBtjUB%v zO1h17J82qeI_VD54APyXyGS!hca!cR-AlTUG>bHwbU$ehX)b9VX+G%z(gM;#(u1Uj zNDq@1#ijrH%~6lU#Xo;@)T5-uq$Q-sNJ~k}NRN}AAT1}YAU#QXiu5$;8PZD9D$=v0 z)uiW0Ye>(NULdU{y+~R|T2Fe3w1M<8=@rteq>ZFaq|Kz)NLxr-N!v)jkNO~+ik)BG=r03EL>812adM&+?-b(MJ_tFRHqx4DoEPau_O5ddK(hupU^h^3J z1&H7`U{W9{uoOfJDg~2*OCh9?QYb036h;awg_FWd5u}JxBq_2KMT#m#lcGy8rC3sI zDUK9ZiYLXF5=aT9L{efYiIh}ICMB0rN~xsOQW`0(luk-7WsovTnWW587AdQgP0B9i zka9}7q});-DX)}I$}bg=3QC2f!cq~bs8mcUE|rieNR8A@{{Uue9DoT~4 zDpFOcnp9n?A=Q*>NwuXqQa!1@)Ie$|HIf=jO{At$GpV`MLTV|sl3Gh`q_$E!slC)e z>L_)RI!k{`U8Js3H>tbSL+UB@mikElNPVS#Qh#ZHG*B8O4VH#TL#1KTaA|}zQW_Cy~orZh{MEzObUO7o=o(gJCrv`AVkEs>T=%cSMf z3TdUZN?I+gk=9D6NmF`LR zr3cbO>5=qUdLliQo=MN87t%}VmGoMABfXX0N$;hP(kJP&^hNqAeUrXRKct`1FX^`w zAfn$hNr9xmQV=Pq6if;(g^)r@p`_4K7%8k2P6{tYkRnQvq{vbfDXJ7riY~>FVoI^3 z*isxRt`tv-FC~x?N{OVzQW7btluSx4rI1oesif3W8Y!)mPD(FjkTOb{q|8!QDVvmC z$|2>Ha!Yxnyiz_Xzf?dfC>4?lOGTujQZcExR6;5#m6A$JWu&rFIjOuTKlB!5m zrD{@jsfJWjswLHy>PU5^dQyFMQk=`bz_(fzlvpurx#(Dh-o{OCzL_(kN-PG)5XL zjg!Vp6QxPg6ltn7O`0yvkY-A=q}kFOX|6O+nlCMo7D|hx#nKXKskBU5F0J^JCIt)- z@PC_v|9+{p^3V7FqgB#sX^pg2S|_cSHb|SK&C*tBo3umPCGD2>NPDGy(gEp^bXYnf z9hFWAmz(`Ye5szDnPu@6r$Hw-g`}UsME=f=EH7;8F-Fq!daDErpT7O5vr5Qe-KL z6jh2QMVDeov832i94Wq(KuRbjk`hZvq@+@EDTS0$N+qS0(n;y1j8bMPiPYpZ`cea_ zvD8FrDz%VWO6{c%Qb(z?^taSi>LzuUdPqH`UQ%zVkJMM{C-s*GNCTxo(qL(bG*lWU zjgUr4qomQ&IBC2zNtz-}m8MD4rCHKkX`!@8S|Tl#mP;$7b<%oigS1iFByE)Rla5O#q*Kyq>5Oz%Iwzf%{*^9Dm!!+m73r#U zO}Z}Klx|6PrTfxD>8bQgdMUk<-bwGJkJ2aUv-Cy!Dt(i_OFyMw(r+n1WcEWrq@YqT zDYz6$3N3||!buUNNK!N@x)e)_Eya=IO7W!lQUWQVlvGMCrI1oesiibhS}DDhLCPp) zmaib}<#l2R$Dv{XhaE0vS}k}64+rK(bOsfJWbsx8%#>PZcx zhEgM`iPThTA+?lRNv)+eQd_B=)IsVfb&@(ue@k7Yu2OfYhtyN*E&U_)mHJ8jr2*1F zX^=En8YYd9MoZ(QiP9u#vNT1SD$S5)NwcLn(tK&5v`AVkEs>T<%cT|48fk;HQQ9PJ zk+w=Zq+QY;X`ggNIwl>LPDrPuv(h=~ymUdjB3+fPNjIe1(p~Ak^gwzjJ(34)@73K)e)>p)UqDX0`&3MGY>!b#z!2vQ^|vJ^#%Dn*y# zO7W!xQX(m-luSx4rI1oeX{B^hdMSgHNy;o`ld?-WrQA|pDZf-eDkv3}ic2M=l2R$D zv{XhaE0vcjNEM|@Qe~-{R70vM)sq@X4W&j>W2u?cLTV$mmD)=kq|Q=TshiYY>M8Y= z`bqtz0n$Keq%=wzEsc@JN#msn(nM*RG+mk@&6H+I^Q8IG0%?h~Oj<3ik=9A;r476!FgdL_M<-bf#$Pts@Ui}Y3cCViKFNWY{2QF+P?C!-OewAuUrHb)loCmar6f{HDYcYVN+)HKvPe0koKh|+kCac!FBOoA zOC_b!QW>eNR9^Z^svuRADoItPno=#Pu2f%YBsG?rOD&|idx1`(B9qFF*Kzb-Wk{(M>q-WA|>6P?adMAC5K1!dY&(as^ ztMpy^A^ntoO97(!&@2U#0!u-ppi(d?xD-MPD}|H7OHrk0QVc1k6ibRNC6E$IiKQe` zQYo2~TuLdWl2S`)q_k2xDZP|I$|z-$GD|t6+)^GXpHxsPBo&d0O2wp-QW>eNR9>ne zRgx-8Rix@t4XLJ7SE?t~ml{Y7rAAU?skzibYALmnT1#!E_EHC_lhj%ITk0Zple$Yi zrGKQpQa@>cG*B8O4V8vVBczeiC~34bMj9uLmnKM)r76->X__=$njy`UW=XT9xzapo zzO+DEC@qo}OG~7s(lTkev_e`bt&&zt8>EfW7HO-rP1+&tl=et_rG3(V>40=lIwT#I zj!4I(6VfT^v~)%~Fa0ZBkSq|4G3>8f;1x-Q+2Zc4YLJJMb0p7c<9Bt4d%O3$Ph z(o5-$^j3N&y_Y^ppQO*y7wN0?P5LhVk^)6%rxRETA_bFzOCh9?QYb036h;awg_9yk z5v52{WGRXiRf;CXkYY-)q}Wm%DXtVxiZ3OQ5=%*>q*5{|xs*amC8d_qNa>^uQYI;j zlugPm<&bhpxuo1uUMZiHUn(FKlnP0Or6N)(sf<)kDlh#dRgkJm)uifD4XLJ7N2)8; zlj=(iq$W~xsfE-^YAv;u+DYxD4pK*{lhj%2B6XFzN!_I$QctOm)KBU!4Uh&(gQUUI z5NW71LK-QJmc~mHrAg9cX__=cnkmhaW=nIV1=2!kv9v^5CM}m%NGqjP(rRgqv{qU# zZICueo24z%R%x5GUD_e-ly*tGrM=QVX}@$pIw&2Hj!P$`lhP^ataMKLSGp)&k}gYE zrEAhn>5g<)x-UJD9!XE6r_yujh4e~#BfXQ}OCP0A(r4+b^iBFM{g8f2zoh^%*bfDi z0!cxnU{Y`?q!daDFGY|dN|B`~QdB9L6kUoT#gt-6v8A|DJSo1EP)aN%k&;QtrIb=C zDYcYFN-L$8GD?}G%u-e9|qq0~rfEH#muO3kDeQcJ0o)LLpIwU;_b9i>iE zXX$ULi_}%>CUuv3NIj)qQg5lR)KBU!4Uh&(gQOwSFlo3nLK-QJl158oq_NU?X@WFS znj}q@rbttz8PZH?mNZA2C(V}@NQmi9<{ zr9;wT>4LPD-bw)6yB~taMH~FI|u>NtdN7(pBl2bX~eB-Inf3_oVyMW9g~% zOnNT8l-@{hr4Q0a>67$X`YL^wen>y1U(#cqeDpixJOEsjLQZ1>rR9C7e)t4Gdjin}1 zQ>nSsLTV|sl3Gh`q;^t!se{x}>MZ>&b(OkF-KCyVFR8cmk2FvkEDe!{O2ee#(kN-P zG*%iXjh7}$lcdSg6lt0?U78`ylx9h@r8&}EX`Zw|S|}}%mPyN{mC`C{wX{ZBE3K2( zOBF>7;Z@IxC%%{*^9CSEQ@b zHR-x^OS&!HmF`LRr3cbO>5=q8dMUk;-b(MJ_tFRHqx4DoEPau_O5dd)(ogBP6et$^ zp`cQ5DTEYK3N3|^!buUONK#}eiWFUnA;pqnOYx-mQUWQFlvqk4C6$s(DWsHADk-g$ zPD(FjkTOb{q%2ZaDVvmC$|2>Ha!I+RJW@U>zf@2vBo&s5NJXWRQYop7R8}f4{Uue9 zDoa(QYEliUrc_I+E!C0gN%f_MQWL4E)Ld#IwUpXOZKd{72dSgfN$MhXm3l}$rCw5R zsgLxJ)KBU!4Uh&(gQUUI5NW71QW`Cdk;Y2nr18>3Y0{tce74YhbV0f#U6F1`H>F$BZRw75Pr5HXkRC~or6ACbm zdL_M<-binychY<5gY;4QBz=~?NI#`tQh?ZOe*#K@q`*=TDX0`o3ND3^LQ0{e&{7yF zoD^P)AVrd*NHL{2Qd}vX6kkdxC6W?LNu=ab3Mr+OT1qRWlhR8Wq>NH#DT|a<$|hx( za!5I)TvBc+kCa!+FBOmqN`<7tQcPro!Mp9#`iPThTF13(aO0A^UQd_B=)IsVfb&@(uU8Js3H>tbSL+UB@ zmikElNd2V#(g10YG*}uU4V8vVBczeiC~34bRvIUbmnKLPrAg9cX^J#enkG$`W=V6T zxzapozO+zUEG?CmNz0`b(n@KSv|3s#t(P`Ro1`t$Hfg)GL)sdqyy4H>9BM} zIw~EPPD-bw)6yB~taMH~Fa0ZBkSr0dcx>9%xNdMG`T9!pQ8XVMGlmGoMABfXbC zN?)XJ(s${H^iv8Lhpk&6DXMsqH21`Sw5z7n#kdLliQo=LBy*U}s5z4S@?EPau_ zOFyKa(l6<^6d*2pg@95JDVP*o3L%A(!bsty@KPixiWFUnDaDdvOL3%xQer8oluSx4 zrIyl38Kg{7W+|(bP0AtVlyXb?qykbQsjyU3DkhbXN=l`q(oz|zoK!)oC{>awOI4-n zQcbCjR9C7mHIN!gjikm>Q>nSsLTV|sk=jb_r1nw=siV|c>MC`Ux=THzUQ%zVk2Fvk zBn_5^NyDX)(l}|nG(nmuO_rug)1?{GENPCkKw2y0KzbxSmYzsYrDxI$>6P?W zdMCY?K1d&>Pts@Ui}Y3cCjF3pNx!84@pyy{Bn6g&NWr8KQb;MZ6h?|DMUo;*QKT4B zEGf1WM~W-Olj2JWq(o8@DXElPN-3q1(nx8gbW(aLgOo|iCgqm$NO`4vQUR%uR9Gr1 z6_bifC8RP^S?MpSf>cqeBvqEGO4X$5QVpq&R9C7e)t4Gb4W-6X6RD}xOll#uk=jcg zq>fT2sk8LA)J5tlb(4BXJ*8e!AE}?zUm73{lm<&fq@mIr|OJ}6B(mCm0>4J1wx*}bbu1VLW8`4ebmULUXBR!BFNsp!H z(o5;J^hSCoy_Y^ppQSI-59zlQFuofDDTowQ3Mqw>LQ7$!a8e{GvJ^#%Dn*lGNHL{Y zQfw)Xlt4--C6iR2lvG+O zFIAK(NtLClQZ1>rR8OieHIy1jjin}1GpVK2N@^{&k=jb_r1nxrsk78Y>MHe+dP=>e z{?b5ckTh5tE{&8%OJk*R(s*f#G*y}<&6Va!^QDE-QfaxgLRu-UmDWoeq|MS6X}h#T z+9mCl_DFlBebPbckaR>kDxHu{OJ}6B(s}8EbWyq_U6HOz*Q8t0ZRwu$Kzb-WmYzsY zr5DmG>4Wr1`XYUken|ln_z)-smV!t@rC?HUDTEYC3N3|^!b_2)$Wja`rW8wxBgK{C zNeQHcQer8IlvGM4C6`i2DWz0WYAKDBR>~k{k#a~mrCd^ODUXy_$|vQQ3P=T|LQ-L= zs8m8KEtQeVN`FZeq)Jj{sftupswP#JYD%@F+EN{EF7=RlO1-4sQXi?WG(Z|C4U&dPL#5%;2x*iwS{f^jlg3LE zrAg9cX^J#enkG$`W=nIVxzapop|nU^EG?0iO3S5{(pqVqv|idIZI-r3TcvH%PHC^S zPdXqSl#WQp{-pmqIqJlp_}|G5g<)x+gu59!ig; zC(={tne<$GA-$AdNw1|h(p%}h^ildOeUZLPKct`1Zz)j10RMYU96Yh&#Q$nFm=r<^ zDTR_kOJSu5QWPnwlt4--C6iq!LmoskBr^DkqhfDoT~4 zs!|Q9rc_I+E!C0gNe!h&Qe&xw)KY3CwU*jQ?WGPDWN`s`~(pYJ{ zG(nmu&5~wIbEE~*LTRzIL|Q5>lh#P8JEt3Xq6rfPhjEDVP*O z3Mqw=!b%aOh*C5ux)ei-FC~zYN~xtZQbs9@lvTL~S<21tXYA<{5uj5JmnFHMvtOVgzp(rjs-v`ktlt&=uNo20GM4r!;f zN7^eLmrh70rL)pC>8^B7x-UJD9!ig-$I=VwrSw_)Dt(iFNI?>_-iMJQOEIKaQYtB% zlvBzj<(BeF`J{qUF{y-9QYs~tmnuqCq-s)isist0Y9KX|+DRRxu2MItm(*M8BmE-{ zmWD|qr7_YtX|gn1nkUVdmP;$7mC_n%gS1iFENzjtN!z6z(k|(kbV52SU6d|Mx1{^h zW9g~%QhFu5mA*?qrGQCT9s^53q>xe=DV!8ZiY!Hul1NFVWKwb|gOo|iCS{j$Ncp7# zQbDP(R9>nqRh4Q;^`+)g8>yYtN9rr}mj+2Aq%qP2X{t0|S|qKIHc4BgZPLHe1?iG> zUAiwlmtIMqq;JwMDNs^YfY4GnDUOs_N-AZQa!CcHVp2(|j8s-CFIAGNNHwH}QcJ0g z^taSa>Mr$@21!Guky|-O`0H0k>*QFq?OWIX`6IZIxd})E=U)pJJNIMwe(2}l!E#SDTR^3OEIK`Qdy~z zR99*sb&$GAeWm`=KxvpXT$(P;kycCVr32Cp>9%xNdLg}*-bo*%k5Yt`R8AVHm{d`! zB-NB!NUfxvQg3OBG(*}d9haU;FQqrqZz*~zdNqy|SBftsmvTyZrIJ!5X_z!d8YfMW zW=e~tbpmb5XBHfc7OR>{YCds9gQU9O=&dMkaEGNxx7vq`z73ew-wU}>Z@MOrDXm5xYfqzlq@>4x+~dLg}+f@h#t zLr7ty1X3a?my}P+FIAMPNp+-pQfsM`)LH5#jhALi^Q2AEQR$>~S-LMhmA**drQcHE zjMPLVDZZ3kDk_zhs!BDano=F9p439>CH0Z|Ndu&j(i~}?v_?86-IRVwK{7FDL8b6g zN-2+2T&f~fm1;?Kq^44PsfW~G8X=9BCQHkuwbBM@le9-VBpsDbNN1&U(go?7bWi#q zeUv^+U!<>6sLT{*WGS(fTuLFOlJZD3rDjqqsk8LA)Lj}Wjh4nrlckx`QfZa6RoX7? zmG(5_C=dLTWMUQ2JKchVOrQWgtSiYCR7;!6poj8Y~ki9ll4IxAg}E=rfAhtebIsq|cWExnW8OJAk$ z(oZQsHl}+(DV!8uiXcUlVo0&1xKcbRp_EukDkYOrN$I5wQYI;jlvT6&yy zx+&d}?n^JF*V0Gnlk{2oAqC3L$`n`%DTR{4Na3U?QcNkH6kkdtrIWHr*`@qa0jaQ5 zOe!vwlFCZur1H{VQU$4!R9k8-wUOFM9i*;OH>r=*Um7S4mWD_}rD4)|X^J#Mnk~)! zlP0Zb_}`5B??90Sf4=u0Es>T<%cb?wW@(GGTiPofl`ctFq`T5R>4Ee}dL@04zDd8N zAURmuLP=qzNK$kumK0BlFC~x?NlB&jQYI;zlwHaz6_ZLxC8bhQX{oGK?oax^Bcv+) ziT_QRYEpHnhE!W>AT^SjO6{cfQU|HC)I}OB4U~-4m2yjYrD9Sgsj5^LOs7HONbL)s(lmkvmWq$AQX>9}-Wx+q`-Y(hKRM^jQj=n+X$C3MPe+!bp*&=u!eHxs+APCFPd#O8KPn zQUj@j)K%&!O_NqhYo!g+R_UB{UAimXlkQ88rI*rs>AUn(3Yv#1OeCe0Qc2mQ98y84 zq*O+#E7g;lNu8yE(r9V2G*?<6EtQr_E2Op30qK}@PI@f8mcB{>@=_Clq)<{ADXf%6 zN-JfSvP-$7+)^>AxKu(aC)JXgORc4TQh#ZpG)0;t&6D;?2c;v@De0ngRk|q!$wx7T zlfp|8rN~k=DXo-IDkv3}YDl%Dx>7@_qtsdIA@!7cNh735(rjtIv`ktnZI*UQ`=mqC zVd=bdLAoy8l5R^Mq>oad{FHB4DV!8ZN++e4vPe0kJW^h%h*VT6EtQvQNDZadQd?<& zG+0_CZISj%houYBHR-POT6!aWkbX$P3Q$a8q)1XUDYleYN-m|4GDwA_qEa!bxYS7M zCk>Y-Ni(H6(sF5?bWA!WotDl?m!${N3+biwR(dD>mI45Oz%x-C7DK1!dYAVnG4pi&emx)f82D}lQg*4O)I}O3jh4nr8tcz`X&9A0+eJp0!!hgh*AP6sgz!7Cv}y2OGBg)(kN-P zv`acEotG|152R00;8OH`C@GwjQ_3$DluAi8qLdLl^^-8BL9G&K=i3L%A)B1_4n)KW$%msC(HCY6@TN`FaJrRq{GsfE;1 zYAtn;3MrG6TgodHkjhHUq;^stX^b>WS|BZv_De^kQ_^!OR5|)Sj1*0ZE~S>TNx7x+ zQcbCwG+G)bjh7}$i=Gbm4cLaIHa&rWGR7^L@Fdzlxj*1q()L>slPN> z8ZS+f9!pQ8k5ZVw=;-iL1SygfS&AoRma0m%r3O+{sjbvq>M8Y-`bdMMkyb719=Im$XMZDxHu{OV^}((sSvJ^ic{>(PENPNNJ@EQZDH)se)8Rsw!2NYDl%D zx>8fAt<+KKEOnQ9NqwY|(j;k?G*?T=>!kJ4X6dAKLAoeik*-PCrJK@i>6!FG zdMUk=zDU2ND3zF2(WC@YVkwD~R7xXdlCnuTrMyxBsgP7csw7pFYDf*FCQ>u0h15#w zEcKH5N&TgP(r{^>v`*S4?Us&6r=?rced&qxLV6{=lio`KD>D@WNr9yxQg|tf6kAFp zC6rJ`m%2#9q?yuOX`!@MS|@Fk_DDyh)6zBRuJlZLDSeT?Nx!84 zRVd6LQdlX16j6#S#g&puDW!Z;8L67oSZX14lX^=-rBTu>X}5Gpx+Xo8o=QQhGLFHe zuu?23wv<9jBju9{NJXRyQZ=cb)I#be^_2QZcq`q`DlE#07RQuOXbMd}63 zmd;4Gq!}p7A5meYs!~H~jPy|Y zAob|aO^lb`OW&oz186JoKxl__TKXtu9YkBRq>oa7!6b%|a!YxofzlbN_z8X@yG*|2?4UvM5A#sazR5~GDkm`@6`Q6evDaSYxOGzuG zvr@qEv=vQCA+?gGNwcL96S(4MYHd)=Q_Q*V0GnixhqipD~4$OUfq|m!?Zg zq~+2IX_a(A`XYsy%V&%#m6ldYtEErUx_JTq_xj_{qR&ZT=M$AkDla8kK;qsd(1NAV z7irLPqV`I|R}wX1H56+Nv}HY1a1%6pFSKAEbX016fT)SmJ!!~665k(znjVGvOVgwf z$4D%E9Qq*DJ3-Xx{|B8Us=z5|oOD21aGJ!oXP`1?p;uDGb3|o74<)|<1-Jrby#_VB z0bP@-+$5@wbWTbbIN<*>|CqH&faK>X;Az5P_N}s_svj|El~OcQ13&~D=F|9q5@xovOa*yJcMdWy`>S-Ybo?2 znol4llrlMsqKrb)}C)zWt9w)8^!B}IHpuO^gIO1Y(?QVXfA)Jy6k z4U;}gzobY{_>2vuQPM@}vef1&&F}dFO^p!f|GyTdjR<{-1Jz0ey-M>3H5oiH-Twz< C89}%J literal 0 HcmV?d00001 diff --git a/spar/data/distributions/instance_mem_hist.pkl b/spar/data/distributions/instance_mem_hist.pkl new file mode 100644 index 0000000000000000000000000000000000000000..3cd50303bbbc52a864b1ee922c866effc4edfa5b GIT binary patch literal 103156 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 literal 0 HcmV?d00001 diff --git a/spar/data/distributions/instance_num_hist.pkl b/spar/data/distributions/instance_num_hist.pkl new file mode 100644 index 0000000000000000000000000000000000000000..9d25ef2181c283326be10b5e6ea4757c69f6341c GIT binary patch literal 255904 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 literal 0 HcmV?d00001 diff --git a/spar/data/distributions/job_interval_hist.pkl b/spar/data/distributions/job_interval_hist.pkl new file mode 100644 index 0000000000000000000000000000000000000000..df292b4d9720b71779ceee4181598b340ffeb234 GIT binary patch literal 619 zcmZo*nVP`F00tU8qIspc1(kZq`9-OExurQJnTbV3iIr1&*ou=Aa}tZDOrFxi3RVK7 zQ%WieQb8h2nHEzzJKCoNP0{dX?qRf<;^*h*^&bepgf~OUlq6@4NBZ($JEpV&)nzbc za5!_+Ut>cT+LHxw36iSsd>BHjpzcLdwFIJw0ZGUhQ-~K+h!s|y7{|}`yqrBR+u8O!^LcW)X>+rCb8~NQV@oS*Tkib%tMesgGAo?0#i9>3 z80BKYHXBs*vJkPvQ7xoEQ3;`;Fi;%$VIK+tVSVUBYM3H{WJF!J5QVk%crMPLb6@xM z|DEeT*BK6dI2?BFT|*NF0vVm?)&~c&Z)^eq|I9JZ@u%nG&e&gh1nf@G|EfOf_+8(q zbZp3S4*tE3pe+a)zwScV@vpy=<@h1bb^I&4Le4AyEJMf^hK+wT8g%?Sn?sKON59HX zuj}%c%E0~A2-|ws_!oW@$3OOB!10TxRNg(La{RXD+IGvoO>nI(%lPFfEx|`Bd*@Vo zXH+VuR8Cck!!N(RuQ`O_BFlOshQE)nbDAgS`Pwb+nB&jqiE(yz{ig*HYl<39KEsAS zHjMN0Ax;kR$RJO4^Y{+VHZ9;o)H-8^Pb_111^cTQtmmaV?yTX{t9f_@n+lmqEoer} z+T(`N1kWzv+bM2Ku(XUnl(9X{x-{=3+2ir!*dhePEhF3Ta-6{u&Q$YPkG%=@=W^8J z8)=@+u+XHzr+5#q;xkO+ zYkY#MxP}oN!2uk^o7jh!^fmjj=>f1vT5y43kC4JD;W^;};YDGy@MYom!Y1KTVTI5L zYlT~d`-N`_pBK7<8<@oKFxBqQgn!AstX59>y{qP%)P4 qs2)KHR_d26!zw%qgK|{p94b+THTp-?=rrndDr?bzMm_hynm+;O7Hh@; literal 0 HcmV?d00001 diff --git a/spar/data/distributions/task_cpu_hist.pkl b/spar/data/distributions/task_cpu_hist.pkl new file mode 100644 index 0000000000000000000000000000000000000000..382cc50b647b19dafe75b304fc6770514f130b0e GIT binary patch literal 429 zcmZo*nYxIP0Sq*HMDt2>3o7-J^NUjTa!YecG82o65-X?luoWjK<|GzPnLMS36|4kE zr<7C{q=H14(k!NQcC=3knxf&&+{0)y#m~>r>pu{H32%myDM`*8KnogfzVvgP(gswQ z!IZ%P7GfyO4Mi7XNLlHCriy{V9aG2?Luf(?h7f}ShR}ryh)~It*eMzamoPMVU?^q4 lw1XiMQ&lF0(19WhA%;o}A%}Vlp#x1ALJXY{q13i1dH`e~epmni literal 0 HcmV?d00001 diff --git a/spar/data/distributions/task_duration_hist.pkl b/spar/data/distributions/task_duration_hist.pkl new file mode 100644 index 0000000000000000000000000000000000000000..181c107917c541462aeff107e0186fac2e8d7add GIT binary patch literal 212962 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 F0RXUb$T0u_ literal 0 HcmV?d00001 diff --git a/spar/data/distributions/task_mem_hist.pkl b/spar/data/distributions/task_mem_hist.pkl new file mode 100644 index 0000000000000000000000000000000000000000..ceb1cf6334eea95bfd70ae2864ab30fcd0686106 GIT binary patch literal 2557 zcmZwHOK1~O6b9gHU&QW&2qIEL5g9i@)P+cj6@^9%#RSDo1=E;Xq17>_V01I0ZB+tY z^a?5}g?1@jsAzV5S*)Povne8&R-^WzZHn==u+H3r@XtNDixxiqJ305xqU0NyB zGE%Egw6~c_fAnNL=5K3nO&pKJVV>7h!suX>zQ8DJ>U3l}tCOg0V&sc5 z%C>4`vd2_77xVBNO4Q|oTXw8o4DIpejYF%Bt=F>L{v4(A&e86ZGYxK~L36>Ik z0Pgg#)JQL*!C^-IHyH)^vo`aq6$jbIUl$pPb&QNFj6{eN>#DGh@l-vh03)l&+p&$M zd~6DZPah`xjpub0tKMLb?>)mPTjW5zU&6;W7NdkspsUJ?e3NETq4||KLP3msnA<=EWM+!PWST}`4&6!4`kc+5aA23DD`G`cF z$RVlm@_s_1PJBk9PPnMwo`_7}7fez0Gf32lStL4;i|A_SFh%{EM>?e*_7#aOhy z{Q?p-+C|hH*Y|@aCyyKHKrW)*FJX#i;yV%zc>zhyWyen>`o-T!bRB o%Sg|jI;#XfJoJi|B2o2aNK}0}5*1N_M7?(r-L{8Pu}8ZE>;BbhIcEdNJXp{6sw}BMNx_sQ1BL%QX8o$ilwMc2v&_%k}foi zvT^GtaG@JFxbPF;!j*C1S8%DdXBIF0zYDs6g0&Sc8o{;F{me!g7oy@}DW zv_E=38S{@$BvSE6G8svmT*Y`al87YDjLDT3BKiNfQ|YnTe{shHX8P4j(`S64(p*WK z35Ua7fAhb>pO7nMhJ&7}Pb&(~Fxh-=#698(dR)If#nkeqyqKyhON%LR)m==J4@!#Z z=QQZqTp{EVgP3^_ni>c74uQPaK(i-6ANPP>H-j3Pdgn!IXd|d+CFo`~Xkb0)gR}H< zC4A1(OB!Zst^$31XT$k2q?(q1yw01IPyFhUZ9(Of|4!4I5^iG029kOg&}l z1t~}RL;69wMY>DsBxOjKNxMkhq<)g!gmQ6$OkE(=k+zdIlaz*AnCc-ZbF5{`?h-kn zd8TY}$kb}4c9WKpY&pul?7ozwq->$d)EahQPqNi68?I%_)}BnQV`>#?E6F*>U9vBG z07$Y2fF$L0C=HkKiOT5h5iPs7bu39~s0>1RL-vr9eJP~OQAt&CLdqbNl~DRp=BRY9 zOk0_wGKdAKlo>QW`=wsg6c)608Y<&e7Hx5JS7xPDjZ&1A9KEv1lyy{UYdQO}mnXSb zloC;DUMV-_;8BhN<)~9?UMX=$YthV<^1<~pwU@Myw4Zc<)IvH)Iz(zE9VP`xM@UCW$4G6Y z<0O0Imiw!nsgtBrq|>Azse^Qebe7afI!8KB>LP_m-6Z9z7G~-qsh8A8x Date: Sat, 11 Mar 2023 17:33:29 +0100 Subject: [PATCH 3/3] Change utils.draw() to use direct distribution creation from histogram --- spar/utils.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/spar/utils.py b/spar/utils.py index 163e64f..5638268 100644 --- a/spar/utils.py +++ b/spar/utils.py @@ -6,18 +6,26 @@ from collections import defaultdict import numpy as np - +from scipy.stats import rv_histogram DATA_DIR = Path(__file__).resolve().parents[0] / 'data' / 'distributions' DIST_CACHE = {} SAMPLE_CACHE = defaultdict(list) -def draw(dist_name, num=1, path=[], output_integer=True): +def draw(dist_name, num=1, path=tuple(), output_integer=True, from_hist=True): """Draw random samples from a given distribution.""" if dist_name not in DIST_CACHE: - with (DATA_DIR / dist_name).open('rb') as f: - DIST_CACHE[dist_name] = pickle.load(f) + if from_hist: + with (DATA_DIR / dist_name.replace('dist', 'hist')).open('rb') as f: + hist = pickle.load(f) + if isinstance(hist, dict): + DIST_CACHE[dist_name] = {k: rv_histogram(histogram=v, density=False) for k, v in hist.items()} + else: + DIST_CACHE[dist_name] = rv_histogram(histogram=hist, density=False) + else: + with (DATA_DIR / dist_name).open('rb') as f: + DIST_CACHE[dist_name] = pickle.load(f) dist = DIST_CACHE[dist_name] for p in path: