From ce4fe076edde492f8a945c7a9147e57d9b441c8a Mon Sep 17 00:00:00 2001 From: Henry-yan <793309488@qq.com> Date: Wed, 23 Apr 2025 19:15:11 +0800 Subject: [PATCH 1/5] Update kgn --- ann_benchmarks/algorithms/kgn/Dockerfile | 14 +++- ann_benchmarks/algorithms/kgn/config.yml | 20 +---- ann_benchmarks/algorithms/kgn/module.py | 94 ++++++++--------------- results/random-xs-20-angular.png | Bin 0 -> 57874 bytes results/random-xs-20-euclidean.png | Bin 0 -> 67900 bytes 5 files changed, 45 insertions(+), 83 deletions(-) create mode 100644 results/random-xs-20-angular.png create mode 100644 results/random-xs-20-euclidean.png diff --git a/ann_benchmarks/algorithms/kgn/Dockerfile b/ann_benchmarks/algorithms/kgn/Dockerfile index f6538e8f0..662b21fdd 100644 --- a/ann_benchmarks/algorithms/kgn/Dockerfile +++ b/ann_benchmarks/algorithms/kgn/Dockerfile @@ -1,9 +1,17 @@ FROM ann-benchmarks RUN apt update -RUN apt install -y git cmake g++ python3 python3-setuptools python3-pip libblas-dev liblapack-dev -RUN pip3 install wheel pybind11 faiss-cpu +RUN apt install -y git cmake g++ python3 python3-setuptools python3-pip libblas-dev liblapack-dev +# RUN echo "ulimit -s unlimited" >> /etc/profile +RUN ulimit -s unlimited + +RUN pip3 install --upgrade pip +RUN pip3 install wheel pybind11 faiss-cpu numpy==1.24.2 WORKDIR /home/app + RUN git clone https://github.com/Henry-yan/kgn.git -RUN pip3 install kgn/pykgn-1.0.0-cp310-cp310-linux_x86_64.whl \ No newline at end of file +RUN pip3 install kgn/pykgn-1.0.0-cp310-cp310-linux_x86_64.whl + + +CMD ["sh", "-c", "ulimit -s unlimited"] \ No newline at end of file diff --git a/ann_benchmarks/algorithms/kgn/config.yml b/ann_benchmarks/algorithms/kgn/config.yml index 2f0731b8f..c61e61c3b 100644 --- a/ann_benchmarks/algorithms/kgn/config.yml +++ b/ann_benchmarks/algorithms/kgn/config.yml @@ -9,15 +9,9 @@ float: run_groups: Kgn: args: - L: 100 - R: 50 - index_type : "KGN" - optimize : true - batch : false - kmeans_ep: 0 - kmeans_type: 0 - level: [1,2] - query_args: [[5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, 115]] + R: 160 + level: 2 + query_args: [[10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, 120, 140, 150, 160, 180, 200, 300, 500]] angular: - base_args: ['@metric','@dimension'] constructor: Kgn @@ -28,12 +22,6 @@ float: run_groups: Kgn: args: - L: 500 - R: 96 - index_type : "NSG" - optimize : true - batch : false - kmeans_ep: 0 - kmeans_type: 0 + R: [128,160] level: [1,2] query_args: [[10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, 115, 200, 300, 400, 500]] \ No newline at end of file diff --git a/ann_benchmarks/algorithms/kgn/module.py b/ann_benchmarks/algorithms/kgn/module.py index a6e6f6226..7327a406b 100644 --- a/ann_benchmarks/algorithms/kgn/module.py +++ b/ann_benchmarks/algorithms/kgn/module.py @@ -1,16 +1,20 @@ -import psutil +# import psutil import os +import multiprocessing from time import time -from sklearn import preprocessing -import pykgn as kgn import numpy as np import faiss from faiss import Kmeans +from sklearn import preprocessing + +import pykgn as kgn from ..base.module import BaseANN + + class EPSearcher: def __init__(self, data: np.ndarray, cur_ep: int) -> None: self.data = data @@ -74,72 +78,39 @@ def metric_mapping(metric): class Kgn(BaseANN): def __init__(self, metric, dim, method_param): self.metric = metric_mapping(metric) - self.R = method_param['R'] - self.L = method_param['L'] - self.index_type = method_param['index_type'] - self.optimize = method_param['optimize'] - self.batch = method_param['batch'] - self.kmeans_ep = method_param['kmeans_ep'] - self.kmeans_type = method_param['kmeans_type'] - self.level = method_param['level'] self.name = 'kgn_(%s)' % (method_param) self.dir = 'indices' - self.path = f'{metric}_{dim}_{self.index_type}_R_{self.R}_L_{self.L}.kgn' - + self.path = f'{metric}_{dim}.kgn' + self.R = method_param['R'] # [128, 160] + self.level = method_param['level'] # [1, 2] + + def build(self, X): + Index = kgn.Index(nb=self.n, dim=self.d, base=X, topK=10, metric=self.metric, level=self.level, R=self.R) + full_path = os.path.join(self.dir, self.path) + Index.build(full_path) + def fit(self, X): - print(self.name, self.level, self.metric) if self.metric == "IP": X = preprocessing.normalize(X, "l2", axis=1) self.d = X.shape[1] + self.n = X.shape[0] if not os.path.exists(self.dir): os.mkdir(self.dir) if self.path not in os.listdir(self.dir): - print("build Index") - p = kgn.Index(self.index_type, dim=self.d, - metric=self.metric, R=self.R, L=self.L) - g = p.build(X,20) - g.save(os.path.join(self.dir, self.path)) - del p - del g - - # find kmeans centers -- RI - if(self.kmeans_type==0): - RI = np.array([]) - elif(self.kmeans_type==2): - t = time() - kmeans_ep_searcher = EPSearcherKmeans_re(X, 0, self.kmeans_ep, self.metric) - T = time() - t - print("Time of bi_kmeans = ", T, " k=", self.kmeans_ep) - RI = kmeans_ep_searcher.get_cent() - else: - print("Error: no such kmeans algorithm in main_opt.py") - print("kmeans_ep", self.kmeans_ep) - g = kgn.Graph() - g.load(os.path.join(self.dir, self.path)) - if self.level == 1: - self.searcher = kgn.Searcher(g, X, self.metric, "SQ8U",20) - elif self.level == 2: - self.searcher = kgn.Searcher(g, X, self.metric, "SQ4U",20) - print("Make Searcher") - - if self.optimize: - if self.batch: - if self.level <= 4: - self.searcher.optimize() - else: - print(self.level, "no needs optimized") - pass + full_path = os.path.join(self.dir, self.path) + self.Index = kgn.Index(nb=self.n, dim=self.d, base=X, topK=10, metric=self.metric, level=self.level, R=self.R) + if os.path.exists(full_path) and os.path.isfile(full_path): + print("load Index") + self.Index.load(full_path) else: - if self.level <= 4: - self.searcher.optimize(1) - else: - print(self.level, "no needs optimized") - pass - print("Optimize Parameters") - + print("build Index") + p = multiprocessing.Process(target=self.build, args=(X, )) + p.start() + p.join() + self.Index.load(full_path) + def set_query_arguments(self, ef): - self.searcher.set_ef(ef) self.ef = ef def prepare_query(self, q, n): @@ -149,15 +120,10 @@ def prepare_query(self, q, n): self.n = n def run_prepared_query(self): - if self.level <= 3: - self.res = self.searcher.search( - self.q, self.n) - else: - self.res = self.searcher.search( - self.q, self.n) + self.res = self.Index.search(self.ef, self.q) def get_prepared_query_results(self): return self.res def freeIndex(self): - del self.searcher + del self.Index \ No newline at end of file diff --git a/results/random-xs-20-angular.png b/results/random-xs-20-angular.png new file mode 100644 index 0000000000000000000000000000000000000000..23db5d01510139c577b6fbf6cabe870491232ac0 GIT binary patch literal 57874 zcmeFZWmJ`I)HS;8K*d4~LIf0$5D95i1PSSG5kVU14j%;s1q2DDr5h3HQW3VabeBkX zH=K2$vU%Teew^{0asC~~cpibx-uHE1vDRF3&UL#>h}}Pa^x{zr26J3U@SYR~bC4Z_ z*{^!|ApB;Z+vWH054$&XT+m?#AC7)^$D5O8)Gf=qwo&Moh0*eD*_X^A1 zHsM!IIE{DZgVkX{f0DcJ8rRmIPj#xhzCZHzP1WO@X+!;e{Tem7L*2EVxl2_~dCh9l z&%0_IhLLQ4UH8om=KS z8-5->0p48Zd1+`$;z4e1uI*&*P~#^pkv0R?3@6&r{HdY_S$Wl%>PQ8jL&9yl%;{%(>PL7_se@boNp9Qu=`rq+O8uIiGy)7p9nImLs+r#5 z&aFh5gvjO;<*_ik$+}q4;B{i{FKm|M@6_yP_$?;dWi$0#UyOf1Q)riKL#=D{*sYbP>3&mML6a!uU02|t1CJ>nj)h(gu_D5 z-D_?z*ti15`Rou0l|`~Q?`FsCJ=(1?ht&8NZsHl+gyvQPxBuB?DAh61)=a>2V z^)b&&x5UzlH}llJ!o$K+P5R4brrWW@yoF50-CXcmYAY#e2%E{>{xZ)b2_XZ_?T2Wo zC9JJ;R-9wCtAi?PYMNmj3pJcm@eXT?K}=7)iusbKc{b*yS&TXrG|OJs!Pw(V-0-ho zy()0ui>S_n;5xH*)p-`(`g`F{o4Lh&beS;dB)E~I`1ng!RJY&L(9$-(W7K?{t}qYx zo7eb6TRZVdZJ6zNI+poKO$gp9%e=h01EtXFnEIB|r~|WJqu{L``;6vP)g;9XZGSyd zkpSAdj9Q*bzC0;5o7w0Ui51?h74J`}CV=%Ke%oc#^34UW zDM9)gF|VV_^F#Q}^CJx##HI-b-35xlw~XZqZ5P&wk4nTAZ7eDqwtl=LuVUh&lw~kt z89Y3!gEl2T_xu~QCQYfT`QNeZ7NdRvbjql|!{0xA+6!zl(1v$%lZrif?0iIZ@Gbqp zs`r~G4q%*xpFx!P!Vg=-c4;z2oM+{pulee{?#2-B){L19LBnWMlEv1>Qss?f3u7(f zyc_dxQ}ZV|`0w2lv7sr9T^!R{LJ82^`7Yo zg%BenBjM-c5V)K_-GP|bTc;JMs?8J8mSYmtVQ6Y*#-dem7ERfaBS$_drRcSO{NRdD z>e#)&#U8GP#m>vmS?~1UMER9v)KuG_s8!_zo4W&sK6ctbXob<@e6lZMfQH*VijTYo9WCRyCs4Bux3U&W9gA1e=l-rP1liGU`$q=Mgp& zCFC{|6Y~ml+O)|u?2wa9lz}*1=YHl|fyY)Y?^YwZH&^5R(N6t?j)lXlfp#lUhC z@9>VH_4T>hi*S+A#)PP!KP9-Ad!G+F!g#H?H<$bKetBFsuj3~y*ULM*&gSv5I>yz&TYQ4Z+;ET3fm)Q5Lq`t!&2de2MAFuKduN;HaWu_5xVr z>YM6xdWDb6Pb<=%qr7_6wlg+|-}_aOD;zKV>E5r2s`*(4tiejK(nDc(V(jefF&>6v z%_$do9Sdw1#}gnOLH;boVv|Gy>4VrzBHt5ns28X^EcmAu%nHNrQA}6OGiRS_G+bMn zYJr^m!FFM^TstE{GD_egi=JQ0##}DMI*S2+d12GSb6j+@>!pP1@m5pa=+2Vml15w7 z(v*#I`HQzU?cBYM(-oKvT5kx|*T;ycdQItiL~z?J>U@8BDp9?-2>#mF*O%FLUPnt? z`*OAB2eFd8=DO zSl9!0W3{eUN2Y$9-Bh7Gid*v7r$fs#{kFp&+^Tre95+_;`n@=7)>f2#r>wnrbjn^| z@Qp@kWPnTP3E@3)Vd0w{q4}Qq7916GcJ!FbUoK#rBP==$voH9*hIPwNVW6dDj*N;r zE>y<7)Y&fuQO_|-HQ&;eg3tHV>C=y75~NDkJG3({Y^~Hfbxztr%n``cYpOCNzjEdE zix>OJnVB1DuftB1*3PAf685JNFfd4#Zi7|nTU3DK!9sB%yUQ|IM76~AI9%gb>8n@V z@{{W`SW?&0M~oB~7z(EUlQ%>sdrk!o&Xb1RNcUL^!bvGj;b#-*1r;5NIi+$YmG;PBj^CWz0_RhJ7G5C1P)1 zU}My6-R~*YQ)xC>1rrJ3>$)T-cBZrN+9X8zi!A!h%n(>ihJTV}6nvh_*EnA`6z*gs zcoR-upGBwL;y5F~MXl~|*5K-R*`$C5C-kdhCAqclx$Uw}oja%99oN^_SGEtI>)~X! zjuQz1!GJlj(9PBP5zXHN1G%2M&B=;lEfQ!X$(M|Bz7`ahc@dA*vobL?bx9u2RHg;n)DJ^7@06S*7?y%4#e@RhMad0u?Ni8cH2AaQ4tGc15?PkQK3pvEt#AGbC08n~>wb7l=L5)C^r6q*u*5A14+{ zV`2a(=IN;TnbW63QWpRLUwr@meQ6n|SL+$J8y139ac1}Q%X|-l`EvxPNX&2xI zSt%~~`1pwRH0U+PYZ!Fq)ETb%I%1X6AGt^Z7|(F>^zyP~2fTBB-@#)y0BIUc4s{x; zIV{M=u~n?0NbwPhFz3sbMHE;#A3B>Qy_qd)W{H*6)hrwqqmKn|rsj>(kkipsuVZI6 zH`Y84k=p-UKO|V^borvIhCxqJ*ZO@O$SS~~VTWJ_0y{<&ISD;weg|KH2Y{od7c{UfBVL+u|mp0^El zDi9CE2$`<0j-?3z*hAZtYvuRbvhG5=<0Usbwx4s*sVlUz z((KB!aMcKLpi-VMoIBeCtNr@>_j`Q4CjFkbF6uWYGxpRHb6UQ0e+@a4oqJq8&pcs8 zLUZ#k`x&_7E z6Rw3u>9WpTv(Wa(j~~Coe=%9KW~2$3K>&85q=dx7WaaD{bW^ZnljKrVPUCwW`tAD~ zZ~}*F$$f7U7M{&zO-+C!Vuo_b3K~4a2qQqCbvo~A!g_>V&CaJK#|JmU0|SQ| z2|MlQs>_lUGeUf`;rN%`Cv|w-n5x?G<}m^e^w`!Shy0bFqp*WnEXP|RVzu!&{rc`M zpraGNa=Am*H_B;i6RzkhLeGe*j()(jFnwhJkY67;bM-ugD*-{lmm)-62*O}r|O`>(VS?{gbxw`jLGP*YCcCc z{qhvKFi{6&M9p}~P-mJO_A7sBW5GatLU45*4!<&X^2IZ0uA3l_!No~YGM#T2h zepqFm^FNJ{i4NsVJuShT5M~}<&BZ%<^fg2AdVM_L4;xQ^igJzf-J$xhUkTOi>+BzH zbeh$^54VDemxAsd$2G&i zEVH2+7Sf}|FmYvlC2q${*zCAzRdRmnw0}+@v)TOMe$9)A>gv_9k4hOM z3i^MSzZL7q9ZMo|kAgC-KgyfuCa-==n!2(1NPQ`_k2yW|`4(g+az@5Fg`B4!e8R(x z&z?PdzA}K031E}4W7^DFI}?B@*0xjHRqr$$Tb75TysLQVczJtT3+=KQp^!;)Qt0os zPBAet5rCxR2~f9UJy{XB10O#>h#N}TMia9RF`s*8j+Icc-kEq>L^{p3{0kRy2C2(^ zf`j$Z&8*)SMOFWehCV1KZc$tSV6w1`S%Si!nc~7yw_TcaZa?WfT*YkdRdqc&iDaQ0 zEPc5Z*UK59-sj_3tK`M|D4VQ&MBWA#@Do}2F#L$Mq#VeJrMy7u zw4N@q0h3>?9umHGdGl`SNF;V+vBOw|zz!ztxR6-!CU-a>&C)kDUMeQnAPDGmWTlXm zzXQfXF%0gp5sHiN_)Cy^bp>zI7q6RUN3n!i|2i^v=fD0v{?Gf>k{}zJ{Qhw&Fe|Na zF^H^OP*~WM20=C_o6$)UdRkiZRZ1tJsR2K~vwXfYP}Ky)s|vj(66apCpbQJHT0WNE&*LWfb@l zK?1+&)Y_MtR#RJhD>diW(Yd)e3gMvNI#4KTWOt~J0+9o=gsOnRR-%?!U?;jJ?ck&% z0EiO7cu#T9SSzu^8;bres~+wt%b`VCPRsEdXU4+qXWd2e&s-B@^YrBm?EmWY_;GY4 zx6yf5pP(Q;N37YpPM)5oir*~rP@~nivG>>BTC!6# zNw$#4)RRpc8UrvT36&RRs489r?RaZCAK(uJz%~J!=XG5rBfHb0Y86T`v=kNZLw=v; z=FLyvu~sU0_`K^Mv4)$QOU3y_oUE*J^=%7>3*K85Q(R;<&>_i)2g+g$j+7ropoNOC zohV^bmZ7q$-9%=LN1F*x%`Jv3K1<6iK-y6Nf}sAZm|#T!I`25Y=4PK8>1X2}9v4^F z(I$EIg;8sujv4^uQwpJi8`wkDEE}NE9%r=q`TNIg!4Qm=%&^2(0L%602fS?3tpMvY zr&-$C=AnpBvZMl4F%Wn&qbxc7Y&}g$@(c?+1%0~QUcNSpP@okaB`kNo z^~|HWjITG2nQgptBeDH4v1weqVF{N4G_-73ea$I z>5ZRXH00^)oSYph-hCXmd)3 z%K`P*u+C}#MLk}={0R|vREqTC#l*O9MbO9iuL`dxs)dCz2UXhawSASJo*IqE z_y+`B9WmHD()n0M5`cm4Z3^7Ts_DzZs( zh&`=pkyI zvv~&yx@^Xu=s7u+0U*jkqRa%47RqHKTZCLu|M{4)CU10VfR43{bdXIp?_EKZyD z8xzJ(4e>k}S_Rh=)#&;H`Mc2duAf6Jk!XA=Rl7{%Wqp3K%EE zBwu~-E~2qfW@9dVtI?NIBxF-VjXAfsTIWS1{tcpXKLGdM#RV4Eu3r~{6}h?ffjo3$ zKpUc8l{z8kq61XHc*3Uki)~L31KZh5u;CKZPnZgGA`eWOe6cB{X6CJQB2rTI(etlN z*V`EYAQ^rdRcUK$Gpf`FkUpv@^5p(wzu&EhECpsQ3L>`N%Iv@(UlkN4aC(%jI!)Xv z_h}dtEcJFv%1cN@z=;9euS94rN+=s-Hay*`>8%UtV0E^VVIj?FLu6~Ur5F*sK*Z{P zao%&0@evf2{cKCF8h*eC{yfQQ(o?4ZrLbeGsEn`N3*i#NRPFdGZzi;|CKrc$GpqDL3EIcdt|Hl zn%5~_H+)h#xcLUE(8v}+lc}`0wKfxcw$qeD{W*s`NV0Q^e%ZH}+DtFbVF?RH?u*zO zO%`uC7A`a^5B30Z2a@#0eN=-zu(7cbYY~zx_1rY?#N%J{j${lNym%eYtDn&7801xy ztzgXuYzsrvwzzLej^|)aO-<>C*Z56@*K$V$$D0$RvHh&w>pGFlEiyK!j4tygO@j(^ zEGez1ep|)StBZ8moDD1JnUtiYIw`oCrsAhr*v|$oeZDoD{Z4=n)h6s9^bVHHgQTS@5pu$72@!8Ok;DyPtvWf4w?{z2TaP%CJ?zC$AFH9QV zcl#E`Z72M>2V$8J2WRFpP1}9OP)gqSorhX?1pY&TGIX?ZcF#{(wL;sET~YV(&4xD% zY~~8ut?DLfLicr=h;efto-r>X8v0xidxXlXzg4O{%_VZp8o~iH$e3tuQ0N4q>T=1A zd5B2*P-Iee$HgUxc{BrF3L^KT{~biH4+~QVT^`gD)e}TR zJWNa(_kc^x0z|Nw=h;vA1{6u^#lSMJ1iFe*!na-+xJJo-%WLd66gVxd>6%SBCYpgG#ueo6`$b8m zR8$p-i*xj=jk1HI4qvZNs}`~IUit6V*eU-dCH?_wYHA_GvYw+?(Mfej$^mG7NX(wm zdt90;Y%3mE3ai&!yN#!}6*5VvvYCO?5~>H8MmNCC%`JG$93aju%Jw+TNv)C_!i~){ zAIlr&`9Y=I5ta$P>v zTzT@H<}%#CDkPc$uVPvXO3L?J%d{hzy2P*HruTcm2&B<8JloAF@ zpH=SWW+V}1BL^cq|zR@7Yb9nwoBW7y)Y2|i( zI%XwTEQ~7wcAk(geeQ4H)1|-NHF=Tv3s|zt=xsoNT;c*7#rrY)agYzq_k>{quSY=0 zhzI>yEiFT`b4^VK0Qmc-5ViQ-f0;f=lRsDdj#quF;8E$(Z2Znkz%eY^g*EfBflBAN zHgPN4!mB7PddZ-!-!?A*4-c=pPF%}^Zq1`Va|0q7NsHs`yp5D!oMYpSV{;oc<+l-k5oYe=C34$T{r(yG3AaMFqAepdKEanRP)?E%zd4QRGL*YrxDFO*!N%Is7@XS$He)k@$VT}StaI`%ldBe+FT>hkPSCkrdCpaXLP!8$5vA;i~aYI))(AVa*b0=_@s=9VAEf1O)iG+&<$GMY+EN|kzk@OZ&$^7O#3PTxk5mZ6H+0RD0n;J4~16B82) z$StPqmNsEazj)4oLRlpl7qepY*?dGQE^~qiU}Y=-I-#&)RLF$=?y@m8knXhH+zi9R z96p8|5v9UnV$D#d(g_9K(D+Yrv({--8s)_wrefRL1$Ck(=Rl#LkBil2?TI6O&t)c}~%%#B58g#@^5*3xh zuSy?XJrE}v9E&BftFk|dm`<~juCFut>wbQIr)ycd^DOj*>LGItFMc%^Vw-g$D;eSus7A(049Uc-Zi^djdlpUIyMp)&PwVPo&*9kvbJcQ zcSY_Mz@bgLG?~aj0P4|dN6%&~=-2F-#7x?+A;n~Z4!beH;KbM>TTxzalDCNT*F<37 z2%lQoGeGUTvAXb3B-FfPZ}_GjCSQ`H>asHjEw)P1n0m{D4Hlo z#&dIrBVQGGRhon%LOh7oFvzBGsx9L_5@-Q~4lHsMOTZD7f+7R41w0O`@1piW{y@fs zF}M>33#X>fy3%0a7y}xaIspvjH_H6jfhKQPdSj)WFe6INU!Tj6oYfwDe%ft1uZwT&6* zfA93Q?Hb_r`Trr66Xv6x{Y3C4#Ra6pD>@=N9ZIiTV|VY~-Il^ZyQ6*k`1Pe*HCo}Y z^==~Z-Vjc$B+xZ~baFkQ#{_^as^$o;)+V`j^Je`rpsDIS!2PiD;Kl*fY9gyc_wrVroOr`2Ms`8g0#si=p&2rF9)5V&=Z7D}u zzoJ>~24s5?N#9edaGRcxOmaT2!76wHBM{U9JLeK0b|#43A&=BR5fJGBA?_kjq=T%W zmWeIJPI6OsN6D+!?LYose269V^2f#j%N z?#GWmbsFP+$jX;{wl;@M@`0J*3>6pO5)J3+GROd0fzP)tRh83wjc#HMcwZ9$#bAKY zZHVwiydsbZ|`}O5k`D_~Qh?tl){vOE->{v}Wqdr#pC+)J5H|c3@AvgXJa! zz5hWtPhsoQlN|{h@y~)cjdJ=9BE4+E+DS`G>jI#XTOCTY=g2|BiD9^a45uAP2Kv}$ zAcm#0olHXt>hxn-F&mPk4W-H9=(}#kXB*+ zv?p(ok$vTIteeswS_|RrDdaJ1XO3Iqg*4;;lMpc!v@8^cE7VF3XO zu`zISK=q3#i?=9AhD~Z3uh!1Zn2RorwbaJ&nsvH)=|2H_S&g{Ab6dWCZ*pHi;38~@ zK}TRpGz?llel=XHx5qLaD`B%={s>z9L$!WD*{rqFlC@lOuXDXY$}$Tse|wG7P`-P+ z0QB@B!Z^?6L1wPX^(L045tKsQ7a#?P+45_n!2cmtd~-Az)M*q-762EI0o1T+8v&<5D=RqD)cE-oWbQ@5a1W!`!!33+f8;Ku^s zL@Gu`NjMOYQ<|apgu|IQCwAWq*=Yg%+Kwi~nU_-r{?N-Dh3Xg3pDd(#l=Z=sAPmb( zJJ-?^Ep#SDtxyTELFV9rN`#N#07vS#Z{He$*zYpI60brqN50RDYCe4KXjCIZHj##k z>+yM4;8GBsjGSLc^mE!!k^(r0+^wLVMY$foL<5FG*hD{jzdm1pd&s9r{laD}-tim9ta9`g-=%sSg0lMqy@K;GO95ftFx>t%u~f0HO0bP@%BQ9N>Ncov1Ng z^ZvH&4zzbf;nrIMO{P?6n+b1?1wvt9V4(a_dc0vr7UJBhB!&6AY=%P7j3a3Sxnz;s z7-)^u+`)^mmG46VXX1XJz*@7yk9rj{QWF>@&1k|PHt0i*LQgIx{OwV?4%oSTquVl` z1j^?4*6_;u%d9SKz|1Q_cmiPmYqnC^_yuG<5dVK7H!9KzP@N8+k_koA=`>^CH*X?< z@lixLE_c`(w58Rhsk9i8z@Uau>zhz2rYNM}Me^BMP%An+RbWkpk^32;v%u1XS7@n0 z|H*v#b+4+^#=`d8Wn}mV2F6_#4H^bWSP#xy*rdj}pW$SsLDd*{id+Eg6Ce}8s98@S zukr!mJJ5wwu&1a9Q~`_5!-g9MpQ;=nLmAkgK&p(DUkh&pmb&0#?i*jrB60*asm1R!Wtc>c|gx2fM@6@D!J2uilpY| zR?Y5l%tubdf&wmJb(N9pS1wg00c=fDQ+Duz?JxIh2<{F1{{3!AvW|K$ACN$rWyfM- zW0BG?3;Gpo6`43OVkBW8T|rfV&~^;Co}VCuM1da=V(EJl{#E1`^4nJUUzg3$7FC65)cPdu_TPVdQE?5<*Z*#l0BJ zGnefTr-h>qoQ5Cxc9D}YRoWCo6^eL0IR9vh7_9S7386p`=D4bhK8++U{(1_qmol7I zlZ^oVN$Q1)fp} z$bdyN3JeX$DjudgvKZ4#hrZEk|4e9AH$(2wf z&Y2U-9AxvtKwxG3tLS#vA#JbrbO`n&1k8sdj55m-PV#E z>aq&mPZ5LoAcsr(S=MvNV)<&B)PwY8tz0*4O1>ZE=P+CJSptuCH z_u@`(+Vr84HxAVoo$l}1&%D!%CLuOju$GGcyONgk&9IQ0yDNLo9{*!I@1lB=_4{%5 z0Q;p|i9d~&Oqg#EAo}{xSH=5Gemq43))tR-`vHU2-Zf`u;r~!H-2U=o5>a@UY}lTY zl98r1(XZoNfmDk>U(3!|>ZInBw?5%h=mpf=^6!OA3w>(Zs+i7?9sU_M8KhVC?j_wB z%=EL9!J^FpbY0B@(Q#|6=OcV^ZFoGtbSr4qf>>@I#d9D!esX!I56{^f+~@wZ=K^QH zRXrG(=p1o->HI}t=O*kaJ_{4@GaHU()ztXO-gd{e=8=BNG@i=pEV9i!Rx)jP8B3U<^hbb zEAE!x#aXb=E=|gA_LUSJKX~{dZXvPXMjIt{Qk0Cw&R6fT_TKfD(nm9FLC-DNF;loJ z^M15Z2qZTi5+iu5y~=j+@{L_D9X4*2Ae)&GR)tX4;%G=WzSBGuh7EI6gXZ z+&{%oIosla;(?G|i%0G)EtjIsK+aH$t^1ocw-YG_SC6QSw<6CUerm>zYeJQlC!YLg5xMW&vGKMwN(LF)Z-U!exJw!UDX!oYm`4T zjeFDp;6WSY>QeERLwA4GJ4QalIzM{!2qn?KG(Jf-0~OUz;Cc{%;TI5~0f!Mt-;$ts zVp)MZuR}6WfsGk7Y;3pe0Gb5b#P9TKaAeLS_YGiFC>~Jz5y)AY0Ji3euKwN01aIT0 zlg9O%e^60P!?Ec-oI`br%7A}OmP!6^LFDh~kBx$}T;Z{Q6 z2ple`-3D&%9+XDXAhx15s=$fkC8#!m5`_v{v-F^G>>~Kc5p!zPm8ZM8zCv#ZHI8{T zON-9>@(h$vO<-}40BKkW9F?-bWGn!5&iTv^;v{|k_|3wZvP*iMIq4*}!(<5X1o1fJ zA-NTJ7u$u^zc(X8o5gAveX<3cSvJy8(N)xie`?P&vR+>z@S8USVE2c#iM%qchEb7` z^8l;mQR@n7{gQkMxNG8eys z21{7gEDTupXT%*2sOqJprK?RrP3cEg;G@*OA0}GTwzn{lfqEnLG1@kAasjAC3EH>x zp@mlrOUiB<4Fy3wOjSVLUz~Bo)ojtTcIrEJMM_xXHk`~D0 z_*tj!3isN0hA#z>hS2@T&(EI#>bg;f{e0bhq@6<5c~z)AUDIt5=yRY)LBlLJ3JObZ4xlLLk^*+DM7giTIW!Gghxov zHN}J3pH@}%KqxW|^HgmY){3wCRukfrKY+yp8{Mb242#$w-k(ey4K1BQ>$PR?eaarAxj$pTT){zbYjF(F{_4C7XD6hJ_9`C^% z!ZO4TU&n;tZydlF*QsNs&utu_$)^>H8?3RQP78dWu&A;`dHUkT(W#TY`(FQR-*!Iw zEg)n(i)-u4o&i#>VaR13-W2ywdDWftk~}kH>W9T*58b=;cW}=rljZ1Kno`EHYQn-M zJ03b?Zu>^P1ZoGB+~5l1=+*Yhhw5L*RE-d|R2@Bjys0J>*!%D)*L&t=nBV-?kQMD{uyK(|yMQnBp#kIU7aE!Z%WBtzNWeUx z$Uj?*$pM92nZyd}kR;UeV5k2e9Vf(01^XaW~?JH2tGn)@f2uT57 zy8!k0`;KCW1jr#pLA|lX;SB8I7>Is;6sjhr1b-X}(o#~;|4ao0q7W=c6KF}uUJkd^VS9c|l!_GD@@_qGz8z?hE*hGz#G#$BSah8*v)IzA$R@zsy@0*Jf zuuct&AY2NIh%jx@2mO8%4P0F!xU+0QV_1N`E2Kgp35~?&_o)pqTv@mS9i;;lFmzhi zeb#M2?h(|62s$C+>HK_sf7O=(QHO{=B!hwIp$iQqh_r)ll7;b%S|}ss=ndijvB>>_ z=nL4!aj+Lr8#LlNkZ}o^8#|MO|8|-=f}28Kohiz))~lcIMn-L%B#@Xp6K1e;XHyjDGqiB{j&b}QM~{d@Bse~ zaH6@aUm5U8AtjZ-#-^g}h=Mx!sSQX==VpB+++Y9Afb4L9o%*M0Kw@C)cUW^8I8UBbQFht34*o< zxj1ir!Nmm-Wcv%}E^kf96tFMpIy-nQgJylmxI@ zA{`kQw!fT@rnXWi9V^NHiXk|RyRBY>@^Yg}yv=p#l|v_%*)B%>+BFarg@w_hN$Nd@ z#L{wP?{?s)Ge)8lp!G-GB<%TOSx#wGIkz+}xmg#5X5l<;%$UPT%JLsr^m0-vH7aQK zQ|}D-B!>1Jp0wPaA>1YR{E5F-YnB8d90UD2m|csv=L#3K5LtRU0=*$D`u3zJd!OvU z%FDME?%suIq{0;}`%j7sd4-4u%jjf7ZSkdc*NEJ8x>W*x2yPcT$?8*U&KTZZH}n1U zxvToYtlP`-6$kA1pGSaK`5FLTm_$e1!$9`F-d*Hqy@DcV9akIee|Iu?!XUEbI23j; zGt;EF`*-FNQ_R%%eEsci&%u4mM|M`_@a?QD!-Y;J-b% zYdkC!RXiYLiJM?&#kX&}0*0nK;?_&tU~ly*?|RLp1zNk6GCR?y&~W1Ju-AY@!0g8V z`W+V~`>f@p%-8a_Xg-K{{q?s?tTKX4iLk<7bxz3W;V$q6s)DxmOf%*CzWe+y?2Iyg zKbNSYf4)t|(Tof20u$BTQ-U4i?7qLzBToWPxD#?SXu?7D?}28Qi|WU1bco(*yS`40K8dn)j8 z7rh5DlK||W9UKss*WiHK`*F4aUOu@iH9Yg!S)Khylo8{w!;3ua!`;}Mk6DJ-6=~@Q zT&{`J7`M>F_Eb5)a}y^i?rLfh)J40a1a|i_Zo2M#Z!RkAF#Q)cz8u*7(kL0kjpdKC zOH)gRH~z;<6v?(0E-X5|sK7d@vuhOTl-B^p#sQymvUl&UJL=a}^;+lMl-TqkhoqK+ z*_pu0KVCGYB>fCxfx{TI?-_2J?!WM=^p^?q{S#xRmz{S_-EU~P%hz-}dXvfF(lLqc zhsSKM;pM|F*C?qe=xZ{+-SEq>Oo8OM{hXCQ3%s8UK!E`Q1sP0Q1bg@I9G1gUe<-ow zTS?PZ7tp~a+V$G0>fp-L1OrMw;b|cYV`wkk#f@B0@h+d1enZ)IAU?Tkh}wod-G(+b zs|z=0XYFB-yWaCsQ8_!{TZw9gX9yASG2?D8cac8Mm(M-QtY`6{vV8z+ z+B5$UV!hnBmHlmC*dYuNd%E0M9A7 zfZUu=d<4QHL_j#VXb`;x6oP1J8G1Sz`s$u$){^Z`Ri$Aw`4*Rs89MV+$O~F~bwI)W z+Z-CK5O!yk_#p)^fBjf~F~J<6lK*s0j{ z1aTsmIPwjd;AtMmi8*8rogn%NZDGtHgoBnS1}=*xFb}I_K_eM@+!55$&KRI?jK8CdIWKc zvPpTs^D6d335+;8)LD)ScPOtHpaz9C340#OT5gh`2(pfi+?b zN~C5eHK4IA0;U046H5}R$J;Xeq3!}_BDxTWyG@|1MgVhhotaq%IRN1aCn4<*pwNR( z!=F&-A#Q9KeACS!-6aASrS;?qdL9Zi$kA?;ANaF|C+DI3!qyQ%^76O}9GJYCO$=fx zUX_}58%j${TP#m&9EWF~z*I3;!gD*I6X&uJy}K{$1nO(o?t?Q=1|D~zs0QSb=LIGK zUuLkk0BckXU7SL)biREL9z19Sl`aW9y~y5^;Mt!8ZB9tzt>m;AjlT2zATrMji;A*T zf^o%r4s>2Bir-ts7RclPuGviRlF_N=%@+*)9Wcg2Q$);CIV@l6)lu>AMH6P{CvaA% z+`$|o3?uXYME{SlP(%-{WBw&i0CUp z%s!MH?b|8TVhmyJJMW73QHd*O8Te3uO{yveI))wy2??R+96)KB0EA^&wkVh-&Jq)+ zAjd6mcaoBly9gk7HWxNV6pjz25R{xOmC!)>0Zt$Ce`;u?8b8ZtEiD~L5H$g|vNy{f z{w@)kQ^A2h+~kPaANPMpKRHh^$IFQxF%mEwSId#e-}i9OEPSAo8-_H#k(?cDlhi^U zuU?rcPf_to{&tp2v&Q#)o`dAIy1d3ylWOv;Y>5KS9^@x`c; z6G&6IXtuQR9_Q!%gwpc_m>Rduz0TRg3>fQIn|r5;$r;4m# z5ehcH9Ya09LI#wM2>2L~-Y;(mEo~9t{Y--HPOwn;QUI%nIA?H>)B~@q(r(a^CF(n; zbP@O!I)dYqb1eh|~oyu0C**t8k#JOko4Yh1m-Gngip{nRx*?1MqWz%Q6z$ zVl#l>?zio8A*2uj(lb!{61E4~G`&c9jRN55HN)@$@EEhEj~XQ*?QC9a@UXCQ5V;4C ze;J-26bsDouW2|RkGccK6r7U~h-rip)e7^}>?T-*q=0egcG_|{PQ)ew z4?slJy+4E~h@nz&Hnxq*&;}B>agCC41O+JMZh&XBz(c<7Ks&7j1V+&Dlfa#$5C}Ae zbTGs+u)GMvBVDAxS;6wO_cnS!8$6k>0f`bo(NM#q4HBx6dkO4aRG^hWG)L(IJ(de` zSnx~^0 zHh7j$Cp^}$_0IFheeWsOsUQS`S0o7ayte_vg*q^Wq`>P}P2ondFx8_DO(RXnB8HxH z1m0a_SwSoplqc$7#~wJ3v>Y&RAaYI@t_-mj9;cYX4A1jGk76_GM-FQAXfrV4D8nNe z!@!P;JYvH>_etu|BWnUDU;%-^j)AE`Lq?5Qzm0*43oO-#wxk z9vcVG%L>AKzt5S|i{&MXq5s=f;OsU9P^aT8Z2IzMu0ivRF& zb)l=dt)T&dTO3OLVq+8ZiRQ_IUeCe3XK|YCQ?)Q(A{)EK_}*4Vs9M%>?1J+gP&euy znv(KUG%IM9@pdrn7aJ(1y`$L2LC@pG>3q{3+X!=~q{0=x&Vk=9u}BH}(?DHL2Bino zKX-8A<(KOLZ%!(9Ky8lABbq*h1Al4T1MU|fXrF*O|Em`cb?P?{R%@lVsa&6(^Uu(D zKDFe0{`Uqw1WrdxB1>^TF z(@?qmkqI>eI8(Z7LIG8OeYtZF5#R47$w=O7h=r;T=8+UPk5mN8Yl}ve6G`&$^hR{C zU29JxhcD#yANhU1V&ib*=XWG7FR6IBcj4FXBfio4SupV zoK}gKnHpdU-r>psl{df)5u7HSQqnkI0o~f-*YgZy7y{yT_+r5hVjs|Iylz z8Cbn@xXTmLMk+EX!UHz0A3f@qVHAqi9Y@LJJPi0L(bk@2p^WvDrDDLnP3zlsH3HR_ z*6#r*BlaJ_&CE>=!!D(x_*T@nOileVOrl7y+||MrO%hi@YkqQu*a#S?ihVl=;P(4J zH7Z*52#}Q`KH+vB71JMO^nUG*GWy}>?w7ZVsqRix@qI|%wOgpSSKX|>0s19iX=8S6 zu~<}f(lM}EK3K6^1ddfkd)Lj;eAbhNvK6Y*ZC8cF`(2;O4w8L3{hzDw1}d*> zd7s`!H5Gi;u5GSGzb!~5^rMj%P=yvX5 z{hzl#G$jImzQ@#W*L0hLiT$x*ON}A1(24)?`@ewHBIyqxjo-B!D@5d%o@^-kusw54{tkw<5?qAwnJwaM22k+?)mONS5Z{X@+;M|z)>;&2XPCV z`{^GQ15_{}j){usgjiHjWSR2%zrAoIg>mFnM5kiMXP>)#P>zoq3>dZja(gLp0e1rY z^56UrgiD%lZ%VqIjfV-JX48_j&D*AKpYLKBzFY&{L1>$KD}M_T+qA>&T~;0p-- zlBUZ%A;513w_Q9J#y<8hL4Uayw+EJA{~_MOooGOmB)$K97h~1Sq|uagJ=xJ=n|SlZ z1(WH7Um#NK^6q?zLx-~XiTA8G$pRe8$G8p1Lm-zHb~j1hN;$AZ=Y-#`s4xB}O@NJr z5|?j!%^=_8c4Q~@Hd3R};PjJTvpylAqwby-DL0M{K*#o)^X`Xd+t(ml3IxWn@#M-q z47+a7C63~LO{^%*=MG4CyPm!6tbUK#m|o;@v_8LMk!f?<63iqUZrqLk`*(O(G08Y?;G|rqAKqVKF7h z6#geozZb{p-*!2v7Uy+WzsVHs=BGH$H{#nzoAcFQ|JU!PfnbHaN5f`QpZzuB8!iaO z-`M8q?F;l>G;Rd#qsPrL%`xEEpp>Rye@ee|Th2#I8}f*9fnK}8*#Xh^%C1k6xDv$b z|F_O$A8TIWxh$iATVn!`T`au^Zhyx=eKl%!nmcONE=~0S6??$dqa1w|= z>nBg`BBY#;Vo#qU(;sX8x6Cp!yRPQjR04EZrvCrc-h04BeZJY^*kWSA7*V5OAEhb^ zf({~B5^+EQ=^%oIq7(~=iqfJnCMw0D2m)dOfuRXFC`dC2Qluy{AXp&M6hs9C>HN<# z1In-EW`Fv{&c|DLK#9~3r;cZW{3<^#jid{u6GR1D&?>;s|04P1w@0Z{36nWY6?bFq+ zCYXS|3l{3F#1(!kXYupfJGH`=D3G9^FGrCSk815XXfuk8f6z(2cJ#8jZvDqedPFP< zGFTMQLx)hOs%6C{@40cXeKvtDAx+LtlV)9m04n-Gbtc)-A9Vh-YcC>VNOnWP&kl8) zp&MQYZMrVJr7Ov-tO$yM#P%x@TL~=Ogf#YtsC?oOz(DakWLsa>Wja)Iuls)LH*?~C zZYbh+UKpf~^t+9pY|IKU^Sx0{o6 zR2hp|;5Hdwn*!nxi1Zn!Wb;tpS)#F7@(#6w)ZE zP*e0E8VVX8LFq|xUZk0)kRD3OR781JN}=p1&qxq3p*w3*1Cmn7IZ4J%=#u0g4Bg@U zhm~w!|7NQtqM+1wkDttjwr`_el!R3OJcm!p;hVa#cSB%;2Q(K z5@tcmJ#n%X4dIkZ|MUc z_hWCK5K$`56rQUr!6M>8BlNl*LS71riu@T%O>S*wQ-}UyO9H~kBkjf1tM2c=EsaMF zqKC4?4eg23!9$CJb^syMZAywmf9OjK>Np*3-=eo0E#P~H^}Qa6BB{h7nv@L;NmW&I z$maE6LcBFB12RoXK=v>>OOd8T%mlJLAfYeMbnO+HHtjmz_?=r&TSPO+XJl205}Rxz zP?MnF-m&yx#f>|6l(~|c$SrslaG>fI3;wHe2*5L{rg+pq6)wplJ_j_;CqCy(O@)Pv z^eeV@Kbq&RXJQflR1uYRy{L%PkLs%IT3Pq*bK%L&#$x0^EB>LoC}}vn$n0iZo@}kfdOI_r2MZye z?!@y1i9n<;2C*4;ALwOzuH^1+S=e-W_fYT8qhS7s-s3%K3APy0IF?z02031LK}`>I z0!5Wub%T1c;F^$Z6U%L2J^8ATBtM@;8D=4!^!At$GUXwF0mb^v4Y8f&Ei zni-irP10yQR6J8eoC(P<$u;kU@G3G*!`}#&h$h!sM8u}ONqP{{83v{gioAVLWZEG3 zk;pr8m0-bB!r>hhi;RGDCGISY+{~_*6G@@TWExW=0*i7-rFB^Jl`HFLzoeMss`H?= zCeDx{%8T|-$^k%d5n#{9Js;gPbZaNia9vM?4*W6xV%sweo8EB;SA&Xjz{2g7;m*q4cu;8ZIQKGtSxeV#Uz_%Vph~5WKZBZbpsf$AK zKA&_^*rnoVprai^21q(k0AT_;XftKL_Z_C^r|VJ0^EVCXzT(~A{`AMY`PzpLBkc@> zt6@WfP>t7~$=4wA>}7r%4`9XRzv^=E87b`sP@Nl)xPOPcN_d^zA1tywHgHL}+Ar^CxEmk;7^DA9YSKf=CC=54MF5xO~{Ax@n9%-^<4T{`@QG zCil-7-S@czPNCLcnvA$%_=N9$M!WNGI&XIP(fsfQ?=e4&yzi8+=Q@p-e&IayXVF`d^OD8TyT{yS~kz>NoPoAM1}B`QvKrMG_+(wDP9E z{j~o<-`4oj`|hc!@05n_eE$0te|Kx;bzf?Jegi*14?Kdl`|{ZNKmE1~gL!fUdy~B< zjZ^cPEBm@@!?9;`&L687?!Auk#{2zzfYki=c>SOC4MP9NzbzRnb2J5+CjcgDl-Yt! z#-=STb^1%?KSD>8Qa)@dlOpI)9%|^$+;R9qZVS@yxroRqf}?~I zw8*sJtTz{!3wZSBzg3ZZl!yZAoYKKcKQo;%Tde58)7 z@>@^3L7ZJdc4?}mw3o>Z{meS&nr=sJDc=iXban%6tf;YqEOFO5c-T~+bi977hJps2 z*TcqQpR8-*G*B(sbzRW$QoJfc2?Ex($^jSb)={4tuOFLZEG{)w?Gr0)CpoR zDXa+pd&wOphVQ5Wq&nEG)sG}I{w@kz#B1z~OV9l_Jdg!%atm8*D8{oW%P`hx0gIe1 z#^p$;Xn~nmMtImI=8^0p=lsl5NO#G*<9NYdV$9tG83;eXF=P^p7w5=e`9h<~^3bQZ z5we`UXth6!O{pL_yCLB)gxYi{6pm-0@GaOvZTI`4RwN&B&L2ZhPUs+iEU?(MRG|Wq z>LKG8r&+C|Y%^H5Yi|{y-587bApa4+Lo~O{40v(pO_V+t+D8eV03)QYX0i9D*7Lne zvF1>E!xT>O*h#BDSxDnIY>eo0fkAJclrMT`lw^>G!%v=-lldFiQ8s4S>?&0A>o>Ed zPGM=0>^Q6s^zs-Z8P=Mrr1PJiQR%K7URQLR7-~pkqEpT4>MSVb!CSfQ=hD*B0=eN* zODNrHLH^Xk>Y;V8hMyw$Ig%FFqh()4IYxN)=)g8pIkHo8y#=F);3z|)) zU&@*#X~qX=>0i-7V5qV>?v0=KiZW@?u>3$_5tLsHKkfr5tKmm%iWk#ms?EM0g?3#N z9ug06Hmc;$fuiCPQWD~6Y6H;e;WNmDOkfNueCe3qh8KZ@Ggw|%rWwp#gh9Qq{YP}m4%0ElrMEK##QRsbrOh@)}hR>_^g5BNH-$~ z47@^S&hv)Y6d`Jtj16_ra#%eFGKLDX6LCnvFfpI|>HA}47Feci7&H3Ek{7KYXehJM z@XYY?HdYk--JGz+OnxI+RIzZxw`O6#P&xm6cp~Tt^Pg%(-4paHTsWm*^=9b}!Vqh{J)qU^9MZP7xc4`kQw|8lTTw0twVwCFWtWEZx(-wrYwT4qw!naG z1;_Q+W7L?HpuDIhkC^UKbm5=RrFf42O1+kOSN_mk@DQ^6O0r|ofw2F_k;+t|9upifF1K9vGnJPMgdpcyGsf~q~X#qFm&RK^s#0PjhFZqg#C zvcTqOA3l7GJbR#(Sf$X0(cyV5NNEQnK=ojuBK-#*3ngb#m4mHS;Uf>d@=z656J!J^ zeq79gVXGAWz@sqvy@IF#swQ6s{VYXwzkK=f7JOdFqKhbNjKRQx$Dg9H3EOHI}n}(&)^gB$8}74BC3Y>M03=3lALRUMr`_sbWXtt*!f>K501uEh2pj zky{--!yDk&D~nkUbuE>(k?U%tcSY>`fR&m`TzD(}lU}Vdwvw`7k0%%x) zP9sY3*I!Mm6_47VMNa$p+x5YU_Bt5LMOVXwYBZrKWIQqyS}i*=n;|DU^ukq>0pZaq z`W!|s%!D0Ct$c-d^q5?WU_4(T1H=$}h(01&i0H-fkytEvv{*u>Vhd1%XSxlunG$Op z>wb_`hDDd&GgNmJq8MCH69y4Fp*Ipgb9tF!_2QZ#65E2Ix}x|vATg=idqSQLzx9*9 z-21h5eWV`C3o6vDL2};{6$ZkVgQyH`niUAf1@Mo>5_k+ru8ad`~Gb>VZaQ6ld$`B2QJTedPqjO_~j0vv%hU{ z9}#qc#EUDdjemkURzg=4d*+ zF)=aGa=PO$GLUc5wNuC+0{DaK$uowW{uuCqq{$?13$mg`j^F*br|$PuvHI55Rx4w~ z76GPRgI}0V?VI~_b?1(%J%0Q%BWYjJJ2L)l`s3;a+1|?}^0yIq-~kXMRqY6(o(bbM zG>(UnBy_fvR(P=DHUQByI4IT!u|QkFy*L@)UI<HTbF)c4OV5!dj(M=g}gA!9l}S4 zMR7t=g;M=vEz!ha6L)?$?x>#{&e>$+a6ifX{+IgH>cIGh@ei;g*>0B)L^&_K!G z=00s910GrrKxL2J$jA%dC61Spfap~Qhqv9K(t=eAD{y_;{nn2pzCvzUa6Mes$H5+3 zf|7(u9-7ly6&%R~sBG1Z$QwQ(hiy3RkDo--mF0y7=ACe#8}Fq5&U>&#)Mu9Bl_g`P zYV6d$Szi>lkiAIVM#pF4Ny~jN&-MXwUf>s z44FP|{rYu(4D>(pcCGs1PL62G$A;EB@vb{wG-s3_kL&#+;AU8FzZs2zb!WqlLs7Q9{ZUgtd1eus6nEs@(v)My`23A^2oKW%_6$92$U%ZJ` z$Q{i`&&L55#H*?lr&|)bd6n1ga~-fE6-%U?LtWl8NZL}-hDo-_XQPR;1j^T9x~fyc zN>NpTIOtOj6Y$tF(524+|BcfQ?@NIS&J^BMCiY`p2@!)B$Etmi5h&tPvF9R^?Y0G0 ztV$$>$ss+9G(lw>ZXV3{RUZiS-=tsl)B@L@2IJ-frmS5^5V-Kyy)CHEzQvP65; zSAtv>k0i#B(XgOYX^yfRZX?$5-aEICcbk<3nA*n1H!g+KviRoZINiJzJF`7RCY?6?_p8!rF$5sh+Sp^pK0sCG3mRP(3)mKn7&`B{0lAw+@Z-069&lNt zHpi)~(QG;Y=GG;7Ey(>!JVd*t1HI3S$c3DbNumXC2;#Tqg${4X~hQXbbMg=$*R5Q2bN& zPXq7DT7GJO{R@^&sVVEbS`&7xV2UGC!U#I9fZ zC!F5!>4F*#>BGcO49|IJSYMsEGprhIc+-}c3o)*7uipw@goo2M_8KN)sseu#UL%8z ziY0kNa9Le?i&K5C8_8G!>n+RC6Fd|J9kve*^dP3AmE;WpsE)e8{!t8@qZ<~LOl4HL z5rKlwuF>_c+u{ZB|6(<)42!Iog<(V2Y#y9GU0kJ-}r!mnS6`+fdG z{=HiMr)oD3w0t|RDU zm&W@v&D9IAs%a$}#oEYbR$p*2I~N(UeQFQ5_ioSZE;?X^L)MwN z|HmLLZrN5WLwNKiSj8_Ou0#nfog%OWrD&7r_>JZNB}IqDUomMN!@S)RvU-JiZ&d|n z2add4r@6MH?8BQ%d3qh_%Xp3W4dyWyAc*er+nM~ig(T)6^lz>3wFrr!737i+x!EhR z@Ksb<$Hb)+T>Ji<`iOaV5fiZw6KIER7(5(Gz>3l%<{d4!n5}Gc%o^jw-QROLNzjtH+BMb7E!q7FV(26Vq7#uP8 z)o8OqQ>^d(8P&qDfe(>=?*<1BaGSBj?4;~Q?-;?*Qoq4ipvK1OFe`BG-A<^*x%Bpo z?;PBPgD6S?@No20rk*ALaSE~hme(0Y;6ZN?&=)&1q%jV_X;Roo8(?WdYY!fU+^%1L zq&EM^=Y^dPDF<4pY_sk+6ETW4t}Se^J8Z-c)oQu-=n5;p&qn=m*s~%Sbsx4Q3A(VM zCz5S5ftw+ucn8xV0cVt@R9XddJ86*s?DQY8dTo;sNy4tl?KIAGaYnMlwzJ6Kqkkg4 zVjg+2>kL=rEXPQu0o+hw%G3SZM|_tyew;F50qJ`;hGEQ(Ui@2r@53vFAxwGD1fO2y zN{Ji>UhZ*7Q9==HqXhN8A#^nt0QMWP-SM9Y_<}|(cs9j&rX#NI5r!$v;_gS@ZhnIU z?*@ypNEST=AL+S zp-Ay*?BBd1OQ1cicP}zD)-L7W^*V*cQYP2hPB}>9t^8WivX|6&|4; z{&@J^i?!z61%{=-ER()nex<1j2SZ&(LDYarAUSeE?m;30EsIvgAwjg{!xy%f+YHUn zW~}jY5LA4++oDIs!bHeF2cveAjmg++8&({*i$aBA^_5u-ec;~nKKm(OFtX~nB)46g38qEFR&lZ+VS z29&I_LvyX`88R}1XmOFFRMweYu{t|9RxaWO9)#PKXFVnjlf^q61i}n+|g*Wmgx>)N|p6ouC zj@WkFmUhJITLV|f3|*4Zj;rs3(z0;#tby*e`$y&e1l>>u#pGZHZ*6nWni1xFSx4pu z4#ELUIw6N$Q^70@j|cjjKg3+#-y5DSVNc-|@ng`z=t~nUYUw;FMt+jzgYtbYtPNh6 zd$Lsad(U0#fMb9SLo-@&A&nrNQFyqPVv6EC>^no_tHyD=lW=a@+~Y-!hFyczuF3J% z*Zi=n%sKL80ggvf%WMyQN7F%nViU6W&*tn#?c`6;6APcz(0xe+{c7z}I6b1>S+y5) zljV@N;EV-&9;tXf?O-Vyux4$Axhu1in_yX!{R0^iqt%D@^<{ON*+iC{moLtnWgW7u zV4vU{2D+s_d$!W{jOxN*&RoHQ<@8)sweOGFPoMTzxZBtG_k{)TPm=^WTS)K&p(f>3 zO6t*!$Y?r5w!78aJ!IU(8G2k2HdLbPl7tl_0&)W;Qi(LS2@vLd)-M~pfIh8}c(f14 zo9RCVWhQ^<Uxf10 zS^|1l+i49lg*OI66bGDWIKVvGh$PYiWSfVh~zp`{K0&JPZo`{V z*kcqHal!0#>@>?`T}5UIMA9pX?RN%xwBQEd$tD+r{u+lTA(B9P`2wz>jqYzVk` zWr8m+u<7&5h&MNXqYK5r-<^?h1|tR@yaMcrIvqV;Yu@IeKDmf>)R0SrLnU6r@N?`E zQ^9K$b1YoZ4KN#sh#_V*Fpe(+O%NAsYnNz_P?@8X@IqB9qYIn3KPu3UX^l9I{dpS> z07z*fFK7q=#nbNJP$bNY&%L`x-C+r#a32gyOYj|q=rRQ3zv~0{ctw{t&KvAfqfKLY zO)Gx{dzK>*Y6A|paD*D}GRI>Pi$YBq`80l~A7tbs)r^gWwrg6WGC&O{<1Lzo>^dBk zCsAK&s0&2nr>n_ALQOmPO>5{wn7FNW->|;$rXC!0dl7#;0w%ZN*&cg+)R-?Upx>Zn z({SQ4IFx)Dw(0wJ*{_nr(N3vV&0AMJU&(3%Jal_eAFq#Bx>d1~;okMzyriA?PU4i; z@Z&()aa?T`ph-GcK5j;tnD&U0yLs?Spqzbah57h zo+v)bVA1s8y)6!8IyU@d))Xm~A1dfQt?PbOo#jruDWoqA4>wLJLJ!u5L7;(Mhrpr& zEV(f~TEU7-2@k}@I@$jy_{E!3L2Mt`4{ar#Qq9D+k-YcOHJ5s6^ZY4p?@tkN#;oxe zBZm~Y5VSmL+d^vJC5EKS4|69j5mbO4o@G=+(W(YXBJIaZ+gILOS&0+0Ak9Hs(${I)qUMUt%tr#eKOsyd*nQ3o|_o?%uG?-qvX=?zy+vNl}xfu#1T$YTDT);LOv zOrTvl)xi>2(){UzN{P4$%z?F9QPEgN=-PSiS=e=)0f8!>XbDR6?3p=Bg6-G{eX>S> znqGjtto3yqGV_vuri@_I#DE;GZ=UR=a5~~s;NvrZx7P=hZEX9Tab>27Mq5w_<1B%g z{g*Jza+HenQ6-|5T9&g?aDVsg080r#ga9>9Ukc$>@ZD`u=+u()w zvw(^jJ`Hy5+HTLtk^^8JAZ*hd-aP!4)M3V3bym9%D*PlGKUXN~G!zT27H@su3Q!v~nLCCzRGzWDPi> zWN7_`OG`Qp?dj8})A=!-I3p1;+>;7(ZHB-zy`*D z1Sm2bK(r<(Rv>`E0eqb$k|2se=v@SyvI1{Nj|AX80EfWZarx^T)u52<)`k0O7T`o? zM{JrADAZ=DxE#X-(2H}&=*Old4}gyyTzJ;Xz1oC)q5BR;_aYTK0f*nGs=0V+2}0ru z)UI~1N&5vjwYIKU;Bma2!AXv$6-!X^yB!CgiF@g0xNN2kAc2$-narn54Nyn zjBd^cTXF*0m{7cBYn<)PnJw?!R`&*P6&sknoMnL@j&@43iO0Vz5iAb}#3r68OAb{W zA&h7+u~>*hpj!}UQOO0gCyt>IwD!ai{k&Vt&>INAx>=76!l;qyk@gM>jm>N^Kwob9 zH#O&q-A0x9^^cB{>>YPgQ3DLv!~+=$EQj}Z4pmyj#L3~9Efcfp&AP0)hW>r+?^_|s zT~38GH1h3er&wUIARtAxldNg>3j3;Cw7XH0KzPlYo19JnPAiPb*Vr@lvoA0xq7XfF zHUm_$6E~IkRKPb&z;@n-U(kAJv{voKk-wL0?KkCKIr2Fm5GQWfx zp^B0JG4o@FjjaoYC_A=0auk)s7-UueFZ5SD@5de&Dd(s(D_J3LG)URmfixC?g}3iJ z@jw4cyi|9~bjVfFFjMx$u|YSkU0aC0#E#lk^|p@*Y7^j#26>(dO@-lIMZgJ0K0q)g zGsb8*K&SIScO%h=mXV=HddgOicmTbvHdH@WIC+7VVXUAbL?P1jMX$y{G#SHeF$>Kj zeV!upzOk6a=(?EI?pR?vJ6RDm!S+49cr%aD2CXziC>^E1>?^&32#5-XS5v?rRr)4-lpf#yh&eb=hEl^T;GCEKM8TWzrd4WYrx#!jOARq;zQ;7Py+mf;eWH=*`2JDEp4$`%hOJTXV&5f}f5?}Vb;>>Qz&0{zmK=l5`aoJDO2{6)yGQPg zn`wc$`WoO1{u?&r30WeGE9fwzFj`g7I>*ZQ(Wb)i`P9Uw;$Pfvb28Af<=v<4j3L!Q+l=Ss%RuW;1IO35qYA0RQG7=Bg_vkQ z;XSkF0nuzFodw(ll5}I9_di_%zgbd=A_VLno?DF4_3J4_OVEZ$zw*xY-3i+_#6jXJ z(rteI@hjp0q@<-EBhO~Gr?FFG0gZ5qI;BN~SW(nfvjvJtk2DS#H>_pt5Vgf~ONgV# zR&rgWzPyt50hFtCK)*X$aHF&xfL4&fX1X0`HoWF^V(X(5a9M0!O=d(@AOvA_qS>q! zyT3#Cb2~2+Xx|h#ip9o>o~c!V`Ux0*FR>I};ke=f&0;!OkSPkkhB421i?T8qTP~*) zeLD*%3o0>i9Fd4x@oIRo8?xn@*e(K4ST|q-nJpFC%!dBF0l2;xAkg5fL$e+4ItMs= zp3CkqG~XMrQ)yt8dJI|Hhj-PgSh(_0{D%Sz+@KB_FdKITReNZnUV{E^Ep|t(EVuqr ztX}8mtWkvI-=>(^7(%=d@4lXaK?5FBF-~8(fW0{!pFsQ!NO@mEB}m124NnVq1-5~b zJBMnCd7@qbnsoVCzbJm$0*o;w$&`W|DRnX8zvK7gh*O3(MjiNyD%w6ctBR@UTblA@ zAwfRkRnw7%%B=I*NI;jE!r0k{5+ZFl$~s*{qe~BENeQNR>o4QI24krA@@FlximoSd zwB2E2DumSwt@2c2p9-lGMO1D5kJB`b_Jkt#NBQoXB#lj8VnGDm(O!OlV>Sa&5U#?) z*JaZ`@$?2NkPx5(pMn$`zgomgp@%kUj?zl3#m$|62nO*iDZsv$jiKSdk0+Y+uWIL^ zc2_yztWE}jztBR<4`&%4d$5#++35LT$##2xtTg3q9HTH|%K+w0&hF#?At9Ss^c0Yi zWccX|cF!-%3;I;r4~8nVb;d)OSICkz+%sFeV2Dc(_{SfLzSk4tf_F^S?qf74X&hnW zZB8C8_#{y@W_9JrmLg-TFibUz(?XRvRdonJX;f3~*@nq`n-1U`uAsFq`P71+E&;m` zi0-T&HxyCfC?$w80e=z6C#xWL7y(FgK`T@1S3koIfRr}uzE^6h1w_SwprxXWDBlqP z*XZWX_1wFwY2nBA2I;TZ z@8(lFTav*0H&7#)I04`gYnr2ojR9fc%Ta-Kb1QbQ&zF4Ep%2Ks7$T*1^rjVn6E;$V z%(0jm+0;Yi4JuY}ycwT}Wk>N`8ui#`Rv}q@2YOpnO^6+TbydHDR$=0@(fA%_`8-O8 zs6EUIVdGjZw(V6!C46G?&=3<03sIB&4PO4zhE|xN-BlHt0cg^#-22{r)i2at;Pc*a z+xc^bUg!n%mlDC(i{WHvCVoI3doYorU>=%|LmMjxnMEJYpBiR%=|Zq>@0;uT;gKnd zYiHD7ZBSTdRdtXy3|Q3p{k`$S58c2}qO5bmlWgo_^dTisc!pw^QY8)auE|*!pb7GW zh$!{bW0~fF#=ST-i^{8T;HBb777T^VUhstYj0{vNc(sqwXd8ZKRH@J_!_q?dx#E~B z+C+3I$sk4iMpR7m`fA3bV`1p!7o?brnaGrsT zq*Uw2z@7{i?IFZ3qoid*Lh%?USAV*YqEImwJvCYLr~)bG0<{&pf;nh;dkx65xi5Dx|l;OjXV$^7OqYkDDkhx({AAL+T`|E<_-iuDI6XcZ9*!Rn;YEaDJrnksjC!ynVk-PyYn?<^bY z2pc48E}(f=(Ie&VV;vDFU~$X0PWIBjvR{&w z_Xux+1+4x9}tw>9-gMaV!#zQo3g^38-lc44*UBEP@054NC_zO_e$On z5H(SW_yVdj^ATSVQx-IHZ(jAU)AZ6G0BKz}#l36e4Xv=tP{%gXvt(Of`|fTwAH0Nv z6qaLIS!OxhrPfdKsl_lTS$xryjVZUJyKzBn3_afJ?&70u_!TAKV3TNd0evo-$X1ST zLeuL3He3fHG2gilp1?+wZc_m}YY3DnjaYG(jp$cqff`D}iJ4TH0kmt(RGTZzUMot+%V+&d$0NbRCXN4?CaO$y8!)$m3oIhE8MShU=$8eMmTBxcpKgBvA>-&QJy3;xDqlLYk2M9zIbylcu~27m=lzTZjp z1MKqoF#A3rxCHV{f5fKr1dO9CXf0Egmm+a2<-YcmCG|^YP||r}M{qA3)23 z$kuqM{w5FgvY&iu=i{@8#qVbU4T%n|*V?)EK0bQ@tcZv}lRt66kVHfD2av=o(EU|N zamNW>{1uM+`833+T)Q}82?U~q*6Sr@}(xL@Z*yuC(I5j+(v~9q4E@F{q-UMkr~b$bioG(4!E+?O@@agaZOk=8~C+5t^a z*S9%>g-0~ONthXrV?NLi8P6wX%C@P+C2D~?aVTYpQ-io<6(+VA-V^Z*MDS{f34T|5 zT1UB44b~YS5RA#2cIAL;3&MZO6DxHDM3ORg8%P;|4-M;KZ(rp=a7n5(BL_t56Z3 zeiw(#ClAfHwD_U@hO_Tx{Fu8SatLD+q9EMp(jHu02o|v8^E)JEk|R_)R(QkwrXnaK ze>(x#&c1ISy3vc#?LPQ!FaoFs`G7`%?J1D#-Ke6`4O*h^*NL))Fq90Y&JgTY?-NuE z^DZ!`DW8sDy`oIc$>H>gA{y`qC{08xyDd8KfF^86D+>TGdxf z=YM&fXKeeB7DtHtm*Dlk`$LKxpIWN>pgQvh5kiG0^)o}z=UNS=ShbBSVMcg^2{Qp| zvWNslI9>%rE;-`G?qD-+fT4(virNgOD;fRm24G>c=1Vxux&c6FE|ILHI>Ek68q2UJ z?o_;?1^5_cFHi>q#Uu;(l~}w>?qBn7UwgbAgl;hQ)QTO<9>rhZNn{5#r6v(&g~6+2 zX##RHsR4$5IB8SFoXWNlcNrjSemS{VNgCCod2Jua$;~860n1wtMbHD5c&H!zIBU_& z$wNc9Vzm`WaKcDLGK3s1W%0KKToMf|{Ibz7J?e;;M@s?y2`{Cls4aoZ7eE@32YZz2 z$HuXA+1l~I+V-+POpet?jw?6g=Z+TC%@3$wMe51a&MMo-*q?1GR56Z8biiVRYP7`Q zECRYGT@PtBSj3l8AwmbA5^ZU-i(j;WhrNM;7zA4!dEgn4FRwpR?fS9s^4c|M(-cGH zqpv`WTqT||dfZPf;0~eAH_sIRdVuDJJaliIRJH{g!L-5Z7#jzn0;MyAOQ!V~9fqkab29X1TNQmA5AVE!d1RVh)>^CXDU6mMjow61@~#bVh5f|3}bZ zY%%5irizs|F(7TZ0fsp}dX4YujKC5SpA?r;W#c(YjZM8((#V2`jBpOo3w!4le*t2(d( zJi94S4D|u7S3RH3f-ljVVcf1Y1`ll!WK z!hB)wxQym#I*z5O+!qoCD{SeVfi3-i)dN`qo8Fp@RS~-^5)&Q12M&7W2otK zi!ipZx^9Mx3!>G{ea?tG z=5v%`eMN%+8{#ZdE!gx|98SrBH4%(uLpVM3XQ}Nr3gs&sKuqRg(viT3{tkz&e+~JYdHgj6Qytmu2Gg zwKJ+`HUmRez0JMkXrCcMob$j((u78jK%bjnUkLbM9#@j)wGU-2I7||SgD_6~#K&{m z7vw@G3jb739U4T%`i497TdGKfiwCkC8Z?elEC<9K=`$8f0okWz3e&& z9ikOW5Y$BE==pC~ECg*4XJd{fX&E3qBOl6UQ<|mdlpaFytIbovxwvp8$pIe};MZb2 zjrEU$@-&8WOTQQ4;c{qg6O3bGX|x>}CcJF5pH6)8HBo2Qmz|e@BRN7{${RRsjM|VO z0OKKMP{n%g$_ttaFHj-eN*AH)q#cQxDCi3Kf-+o#^K-WleF-UqP5aTNGD$)Onuye; z1(#ZESa_)aMe_nQrDGDP9DPw;JWmk0Yv3UJo_0MFjM5GuZ?%OQWDpl69QkQ8wa$P! ziRQ$(LIc;86dSmm6(j@2j7Ym>SLu-97Qla}@4rvn_M;e$PfX7CbLM>u(U3k0bC?fk zR@8oX?0x3R78iWjAW4M3= z2u%_RM0xVt=?$vBsccAy2M*R%)ef**Z@&tam`>7qx>vvvSW;$ZRi)V9y}yFc z3t%|_OfaGJ9chR2u}e0CLwPx^nUFkbt_ave)bR##IZ}mIq@|F05Bdf*IuR56Fexpt zq!i>P_@Pv*c>*tE+0@B4Cq{{?gQKKkm{$dBZ>GspKx`_+ z`930anrKlc^_g|3lL684;DubdD@cU^j1xebx!gHNO~GdcQac?dPy~U&0y0SA-G@MS zHArD+694#WDoNsOz!FFZ1F#DcaZ1>pJCL)R-+3Zb1>F^iWQi)K?i4W^q-2DuEb;9; z0fXvyVFR+T$~za9-$wG=5*9jkz0s~Sf#vYQifHi`f?O?yJAjc7mW|qrz$EVZsCpk~ zxeszyVB;*J{sr39q*BxGAg&mgW-aQaVgj4A6?sxmy%Ud-#H%E%M#R((1w%MOk|1}& zR&(7Zo-u3f@xxvK_QV&Vq9b*)FM~)Vh-Jt$N`(R>NJfn%IANXNFM^rxwA1A=QN43P z(KGTFoDtJ`AU!Jc)ti~?whn<%+x9=oqMhGW+4?fZdy8J&no=c&W_(<|exi!Kh<8kn z%%7upDuMq3ig*7)4uR@6*a8DkEGMGH>2wC_VA5P-FTD(GWQi(r7L37ZnF2+DgtRDV zc>wV~m|-3eONvx4DR2?5W|veP`eL&qBgQZaV`{t-gfK-Kl6 zM#69m2C7?0W-$F~0^;3`>+5ZkIQ{5N^cL?}e^ZjDQr#1D1bi8IXz?~rcb%C7 zwTaz1G+|d06GhJ)4&B+F&Y&M@;3L6o0cx_XYzj?-Rjh=>rSR;bcT6NUyUE&xCJgCH z%y8_b3)oAA;R2>|(;Np9->`I+-h4$mUWIvP3ZM~SLS~@pN*a96`_J45`$5n(2U5&Q zQj(lTfJ{Cj6>Uug9B&gxX`aKDFqMp|(AhEM*ufQ|{)Hx6zlDrT&?5za0$)lV3H@G7 ze|cOnBVRHyM8`h-jK;kTo1LRy^ah6OFz08~w#0*eC+|r#J;=}Yp!=lk1V0sZXpl%o5iGXD)U;%{bMT)ATmBR!{8@Yd-$P0N=AY9Rho7O!Y_w?La7#{O!;nE%<{y2)?EjrV zbY;JUh|P&{c02#OT#!(~|JM8evp*LlN^fn{f5W%-XIDMKQT|V!q`lvQTymFVK;nN) z(Gs$KnFmSXX281k2w7Lj>VeMN6kKpA!47L;bWeA(5DK43x!m4c|?t4iChN6uK^Z=dZWCandfpys6*5X5$hnh zC^Vq}&d^dQl+Ht{%w0hM4>H+6^S+le_d&N%yt?*0@%EHP@EFLKI!nz1_XNvV&_3dH ze9$!}$U}9meeI~k7X;~gYbhGQg z@^1wwmOJ*ohWbSMj*IgN-lGnzgs zZTK#1mOi!Mh=+lCw-BNwP8Gl7e`VRzs7%oTxD=Nl^=vb#Yym;+JYD~7i7rmTYhvW1 zJHQ$3#h}|Iu8R5`;J4#!WM`bycN)k-FDhn+1*s=1!5X!z4z{a01Jl^{2}Zy==F`0! zys(cnMymGjqqhK3r*>K|h3m1{h*hxQ+VVY}|3s*}X%9)NQ5!L-oPrEPuU2p#{JI_7 zZO|5wC=-x43uwPJi<@JlY{zfM+jF02zGQ&pWEyq zF#sbUBq*nf{uIpl;i!G~J>1!0ep12H_-UHTzQQW7O7@;DL$r81ymw`L=kBb9YUmmx z(NHLCNXIH*gqKzyTNE?+^J=HcO;a5(^s@3uTuiY9C@+m|`Cyl?x;>VGo<8AlbXiDw zHoHTMoVM@ec@jC_3g*s(CYQWcgd*3oHJ0TA$mq7*eDC=j6kWxW7wA36z&YaS{bIC{ zB~NQhrL>3Eo{^&32sC_WD0f@f%buDXr5TpriU-wrx4M6S3d)8)G}B@q1?nIDE;h~a zWp#h=oaqWJ)ey6knAWy?@kf(KTCC<7G2(?$1o{*5hsG2F2YqwoLT+R8M=8WMq=8^m z4ufLA+(o!2iWM)#Ju&$CR~Wj~8YX;fAli=hBqQ1_;6B>GzLXsdroI47wdwU0w%aSj zJwN?z)p!nd{a$>`ynWx6(k9!0t1QA?JM+C)&-^yt?cDDmFtrA){zG--gBO+3bimuy@?XNcJ;Wa3 zCldVo0WOztlf3)%Lfm^EhqXa~B86?B7`sjoiuVRI%L;KOpC9@`sdZrjk$}s#=~(O& zQ)b?qsYZka<}&A0;i&SuKXXE=GfO-ls|0$qUQ83fKu&MBCtu0R$Tsn zDU|-RC;9&f=f5CvF8d0O#*~ZMUktfU{|rh-`Klc6u1De09P}qON!gW@nf&!psJY1# zu8x$8>y|o*|7&ISKN;n-%Q^+hz@0m|y$OSyo_GFe^TxrOki)xqHC51k@ld*ImTbk% z82ir#zr&FK)#*M*UP%ScA9S&j0t|oaY0&)7ue9t%7UXKVwfVXr60-zC`XJyizRM2M zAu>ym=-XC|6e7f0kYEJ58lo2X8h=v3Cl&)n2b25^dp%KBv|^HFHqQ1g=n<0Yh69R_ zOr_-VS_0^9y9a?m>X84o<>Im(oEI9y8WdLnCeT*1!&TABMjdjB0e}ts0wimS2w})0 zjVbvG@%`v>chXQo#zbwr>t0Gypn>>KyK-Y|Qa9Mft{`pse=!grXm=MFA+(oFzuRHLxbJn|dV9Z#|BCu`K{ujCFf2A<7dAAQ_6>0S34!lT5`}fGwFaiBmHiz06+}9X_EH((I z2u=$bTay~Xz96w1i7x1Qk!iUs>QST@^TWf9F&)vYP$Ftcve1rwwC>uuW$JAuYgllZ zhLG0|VwN4Xfe_y+P|1PfsY~)*U)WK**!*D+Ti974BVQI7^fdQL~OevzRORjpP zyN$9Fv37`UgBa}wLV<|VhnJ`gg477e2f8r_44!HTn$RlOJ*Dc5EGgKGRB$MfBuMp} z33Iio`lW=dO)P)({HgArEE9D=H&Q2RQdwGQGo`a z8+%BQOdl14(q{#*xq`~eebCg*lC#)M!XEkrOkfsY^#BO}fC_08i7t&RUmStLoeZIr;nEHXOFc;>XoNz&NItcg|0#sFP}jm}sBlJ& z7xSSg3X;cPhS4A$r70EDR6O#zY^pf00NCvDQf|vr#&}AFLf#QQP75q8eBTEY?RA*U zT35A=;)?&5C4fD3K#yP{AUzJci}olYE>fZ!w43{dRr}t9^_g&*eAuYvsL1$f%Dl_e z06`;x)IX3DX|!MEzngWlBw$I~Z7+LL)@w*Bs6RevOl&@<{YMgGo0xs|{(I}swQ^K6 z90$utsDskl_Jm}tn$y6RAvm%BFJP_zsORjTAfrzr5F7ANHRmirV~`RKyAIZaQJL9% z6&|rzf3I*XE5i|HY`h5MV;GhED5ghIQRq`#OSw48b@kcuH%AU74n=X;bC3}>(W z2Mu~79+ujik0@&Sq!*>$QN4%#t&kW9I9Xk8IFtSfY>PZGbnrg6p{30P^Rk;5ppIJ( zJ2&>G_vR1X3C96{(Pb?GPr0~RMD^GHqG+&xD~R6TmYtu=wb6IcrPj4U7w zTWq>id%Jq7Asut@U`4K&FA@wWF069*xur>%8At`&Z#+eMyy7jLmYFnlC|H4XP~@36 zfVUBflpl)?az-9WBrd9>J+A?<=teh{l=z+ z^6gfzTH(1}R(a`%s%>~47)z1^=-o>%+ny3@(hKZ&78ko6KLzeW`gPh5lN0pZv$_n? z^prtxciJ(uLudMmoS8IBhf_bA8?JXE2ROz^Mr1+`UBn&0Szf%Xd1gAJd7O=wWal~L z!puYz^H~gtWyMfPRB=f{DX9qm+!IJLUSb#1NISCgH#%4CEZXr>@usOsT_Bie_=-SW z{-i{?q^E1uWbT7dD9Z`QVClL6E{2jKns~ig;=UPhvXV0d^akyi7~XHDHB#nF8}ajG z^d;p#78Jc5+mUR86H-Db9H0mv_Pl76B?s@Mik?;;RPq#_OK(jpIzZTNXY-z{Zz%)> z3;r{-Zo9FJ$m2YfqYmqWr0dOE$p=aa1ZHmCma5yna?+0OJO?IDnyhRD=E#G7Bm;6m zQog`IGUvosWm8EoPac*M7xCPmy5@crP6IdI@dQSuXv!QDc*)GM>ZWEZMvNP-S(6)%b?bLx$D(+anc=btsu`DDQg6n zH?_E=bX?{!b*>@ZTQ>yO7byD?1zbMaWFbnFq0NZO0q7PTGBU>R{7r)A)=JNhpLYa4 z6laFu^b~!22q|Mc#ypu{J!aQ$(;UjSk*1Svhkz*C^h^qR=x!W*v+8%{?3oombvdfw zE%OB}NyUyr+=Q~;9O`a>4MU_^ykybnA7p>jX_=1xIjgPYfLSL*N;HWn#F)IsNW#q{ zDKq8#{5Z76z{5qE$KVPdgAfjZo}a)-+w*sBt4LmN2xr?f41$Oq%Gv=g3Ca807IB@* zfUr0SuUPL}C5u+7UTZvxv>04YD;P8Jf~B00Ff z6$)%=5~d^W&qe(9GY1X*UVQ8Yh!2kcuITgoN2O*dBvjpeaUQb-8e1!9zk<;zy55wi z4+{+XG34BBr%$1NlkEv+_RKO)?zTAe=PAG7_{X=QSWvAnb@_ZFsz_@rFVt$cagNBI z$q!zpUJx}bs9Qzo6ZC!wIdLYm4*eSt-A~79++pVz1ZvmT-giGcp=Ypf8gdGYdlCE$2 zL9XsZsFN?s`YK}HUE11f4d(pb!72%p?x3;O)8&Y_e!Fpdb&ml#>Ik3dD|oaSaQa`u z+_;?<2GTY2>3pnZTi7H;!2icYQ%2+Vv7M(RJF>o4c^y0nqe_$Q0zGbX(w3TuSFkvc z8k^iz`21>{@n2QIIYwceY#1v#+Lz6eaLlYQUd8mqr9q~G5FPgqh#!dURPCl+1Gl6O z*hs!e`?z*8%4*p}BWcPJM-|fvdm*(CBI49pw2 zx*Ritgl;C)P*U+z=m0MqaXAKe6~V5M`UdKsn+JApm?h0~yTG7MD^+k-l;n%5=*?v9 zTtAzvE(%1WZUZ+#|EPl)1pTSVk#a=nef;36aek&4LYPAhC#rkRh&;j8hw9N_2gHgd zI0pH~%DoTgL)o(<>%f;r2XI4gFjrY@f*0ia#<xp%3M zXkO!US!&*LI<rW{peh5GyMrp;0`f@AP>WzWnVH`COI(GB?2 zhG^3UkRgR+z@aWaFltmi4?m?RPWQzzh3b@NrgdqhBsmPo0ggiwm}FLJk%10z=Vax0 z*eScdL+|S-l?|vcvEn&#o3++<=uvnM*%ZO!QBrq1QjeB{2I-mI7z~jvSJ zNEbQf32q%R-LJLW$>e0%fpcPPs4MQ$5o3-PwS6fFAu>Dh9UsWp>F9JDCFIfek_hfA zn+Vw0B&cCOrd$Wo17@~*9SwxRb z;O6u67n<|>(Mt7d9P1hzZRfqvuoG&sbfzmPLLd%_~lrJ%Gc9Rf0s9L((KcPGtSjo zB{%Oeev;AJTX3R8>}~4v_qER)TX#da7=RP>toQFV1ZpOKH%E&1ln_qxsK?HDY%0QS=8Ms&2KtE+1&=nJJaYaEfn z48;%w4ChvMta+9SOK#Pwi=gpbk7i=cVst0Y`4)EBf`<>adwP20l$AsDV=@QqafZ$o zu1WuRY5Lr2@7_&AugT3Aa?lbiSf~JlL)ILPcXI`Q$ztQAvw4>qA9NvBLZWRYHVefuI2Mo0Ad>P2?mOEg>Wi z;Klw1{99x6WJd8ZI!IDA?x&ylxGdLePVYqn zG?rt>su<$`xae-*zP+cn*AcX_UJP%Nu&@OD|r$2w8n-A=YTE0|yS+a81xb3VDJ48zlbw`ufhAJGU5^x3sFNXI>^$oi&5uS3B!1*5kh}@*Y0)scXJh>#oRT z26c9JGV;*?!J&w3#w=0M2T*%CqRX^p%a(Awwz#-B9P74-hg z2U>9esUn6`vEBL~#QUgv;Sm`K(`&##5{zM5=`>@AU;6LzA0I>yrg~Pbo1|7o7s~ox L^Sk&BJ5T<9Wm0c4 literal 0 HcmV?d00001 diff --git a/results/random-xs-20-euclidean.png b/results/random-xs-20-euclidean.png new file mode 100644 index 0000000000000000000000000000000000000000..8f60918b7eccd3d3f4f3689d3fac982c3f83b737 GIT binary patch literal 67900 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 P0SbMm@~;VsN6!5ZU-B=j literal 0 HcmV?d00001 From 6cba02dcbd6fde4a2d4a180ada6c11c0c19d006f Mon Sep 17 00:00:00 2001 From: Henry-yan <793309488@qq.com> Date: Wed, 23 Apr 2025 19:16:35 +0800 Subject: [PATCH 2/5] Update kgn --- results/random-xs-20-angular.png | Bin 57874 -> 0 bytes results/random-xs-20-euclidean.png | Bin 67900 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 results/random-xs-20-angular.png delete mode 100644 results/random-xs-20-euclidean.png diff --git a/results/random-xs-20-angular.png b/results/random-xs-20-angular.png deleted file mode 100644 index 23db5d01510139c577b6fbf6cabe870491232ac0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57874 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 L^Sk&BJ5T<9Wm0c4 diff --git a/results/random-xs-20-euclidean.png b/results/random-xs-20-euclidean.png deleted file mode 100644 index 8f60918b7eccd3d3f4f3689d3fac982c3f83b737..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67900 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 P0SbMm@~;VsN6!5ZU-B=j From 8535d29f8b587f75081fca5a47b3435b93be1a08 Mon Sep 17 00:00:00 2001 From: Henry-yan <793309488@qq.com> Date: Thu, 8 May 2025 20:31:40 +0800 Subject: [PATCH 3/5] Update kgn --- ann_benchmarks/algorithms/kgn/module.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ann_benchmarks/algorithms/kgn/module.py b/ann_benchmarks/algorithms/kgn/module.py index 7327a406b..8bf071032 100644 --- a/ann_benchmarks/algorithms/kgn/module.py +++ b/ann_benchmarks/algorithms/kgn/module.py @@ -3,6 +3,7 @@ import multiprocessing from time import time +import gc import numpy as np import faiss from faiss import Kmeans @@ -79,10 +80,11 @@ class Kgn(BaseANN): def __init__(self, metric, dim, method_param): self.metric = metric_mapping(metric) self.name = 'kgn_(%s)' % (method_param) - self.dir = 'indices' - self.path = f'{metric}_{dim}.kgn' self.R = method_param['R'] # [128, 160] self.level = method_param['level'] # [1, 2] + self.dir = 'indices' + self.path = f'{metric}_{dim}_{self.R}_{self.level}.kgn' + def build(self, X): Index = kgn.Index(nb=self.n, dim=self.d, base=X, topK=10, metric=self.metric, level=self.level, R=self.R) @@ -107,6 +109,7 @@ def fit(self, X): p = multiprocessing.Process(target=self.build, args=(X, )) p.start() p.join() + gc.collect() self.Index.load(full_path) From 9d367c9af77531ab8e068a3b40c822eeb9551364 Mon Sep 17 00:00:00 2001 From: Henry-yan <793309488@qq.com> Date: Thu, 15 May 2025 16:31:27 +0800 Subject: [PATCH 4/5] Update kgn --- ann_benchmarks/algorithms/kgn/Dockerfile | 6 +---- ann_benchmarks/algorithms/kgn/config.yml | 32 +++++++++++++++--------- ann_benchmarks/algorithms/kgn/module.py | 24 ++++++++++-------- 3 files changed, 35 insertions(+), 27 deletions(-) diff --git a/ann_benchmarks/algorithms/kgn/Dockerfile b/ann_benchmarks/algorithms/kgn/Dockerfile index 662b21fdd..692fc2962 100644 --- a/ann_benchmarks/algorithms/kgn/Dockerfile +++ b/ann_benchmarks/algorithms/kgn/Dockerfile @@ -2,16 +2,12 @@ FROM ann-benchmarks RUN apt update RUN apt install -y git cmake g++ python3 python3-setuptools python3-pip libblas-dev liblapack-dev -# RUN echo "ulimit -s unlimited" >> /etc/profile RUN ulimit -s unlimited RUN pip3 install --upgrade pip -RUN pip3 install wheel pybind11 faiss-cpu numpy==1.24.2 +RUN pip3 install wheel pybind11 faiss-cpu numpy WORKDIR /home/app RUN git clone https://github.com/Henry-yan/kgn.git RUN pip3 install kgn/pykgn-1.0.0-cp310-cp310-linux_x86_64.whl - - -CMD ["sh", "-c", "ulimit -s unlimited"] \ No newline at end of file diff --git a/ann_benchmarks/algorithms/kgn/config.yml b/ann_benchmarks/algorithms/kgn/config.yml index c61e61c3b..d0006bdb0 100644 --- a/ann_benchmarks/algorithms/kgn/config.yml +++ b/ann_benchmarks/algorithms/kgn/config.yml @@ -3,25 +3,33 @@ float: - base_args: ['@metric','@dimension'] constructor: Kgn disabled: false - docker_tag: ann-benchmarks-kgn - module: ann_benchmarks.algorithms.kgn - name: kgn + docker_tag: ann-benchmarks-kgn_0513 + module: ann_benchmarks.algorithms.kgn_0513 + name: kgn_0513 run_groups: Kgn: args: - R: 160 - level: 2 - query_args: [[10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, 120, 140, 150, 160, 180, 200, 300, 500]] + R: [128, 160] + R2: [128, 160] + level: [1, 2] + query_args: [ + [1.0, 1.5], + [1, 15], + [10, 15, 20, 30, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 110, 120, 140, 150, 160, 180, 200, 300, 400, 500, 600, 650, 700, 800]] angular: - base_args: ['@metric','@dimension'] constructor: Kgn disabled: false - docker_tag: ann-benchmarks-kgn - module: ann_benchmarks.algorithms.kgn - name: kgn + docker_tag: ann-benchmarks-kgn_0513 + module: ann_benchmarks.algorithms.kgn_0513 + name: kgn_0513 run_groups: Kgn: args: - R: [128,160] - level: [1,2] - query_args: [[10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, 115, 200, 300, 400, 500]] \ No newline at end of file + R: [128, 160] + R2: [128, 160] + level: [1, 2] + query_args: [ + [1.0, 1.5], + [1, 15], + [10, 15, 20, 30, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 110, 115, 120, 125, 150, 170, 180, 200, 250, 300, 340, 400, 450, 500, 505, 550, 600, 650, 670, 680, 684, 700]] \ No newline at end of file diff --git a/ann_benchmarks/algorithms/kgn/module.py b/ann_benchmarks/algorithms/kgn/module.py index 8bf071032..6e98767c6 100644 --- a/ann_benchmarks/algorithms/kgn/module.py +++ b/ann_benchmarks/algorithms/kgn/module.py @@ -80,14 +80,15 @@ class Kgn(BaseANN): def __init__(self, metric, dim, method_param): self.metric = metric_mapping(metric) self.name = 'kgn_(%s)' % (method_param) - self.R = method_param['R'] # [128, 160] - self.level = method_param['level'] # [1, 2] + self.R = method_param['R'] + self.R2 = method_param['R2'] + self.level = method_param['level'] self.dir = 'indices' - self.path = f'{metric}_{dim}_{self.R}_{self.level}.kgn' + self.path = f'{metric}_{dim}_{self.R}_{self.R2}_{self.level}.kgn' def build(self, X): - Index = kgn.Index(nb=self.n, dim=self.d, base=X, topK=10, metric=self.metric, level=self.level, R=self.R) + Index = kgn.Index(nb=self.n, dim=self.d, base=X, topK=10, metric=self.metric, level=self.level, R=self.R, R2 = self.R2) full_path = os.path.join(self.dir, self.path) Index.build(full_path) @@ -100,12 +101,12 @@ def fit(self, X): os.mkdir(self.dir) if self.path not in os.listdir(self.dir): full_path = os.path.join(self.dir, self.path) - self.Index = kgn.Index(nb=self.n, dim=self.d, base=X, topK=10, metric=self.metric, level=self.level, R=self.R) + self.Index = kgn.Index(nb=self.n, dim=self.d, base=X, topK=10, metric=self.metric, level=self.level, R=self.R, R2 = self.R2) if os.path.exists(full_path) and os.path.isfile(full_path): - print("load Index") + print(f"load Index in: '{full_path}'") self.Index.load(full_path) else: - print("build Index") + print(f"build Index in: '{full_path}'") p = multiprocessing.Process(target=self.build, args=(X, )) p.start() p.join() @@ -113,9 +114,12 @@ def fit(self, X): self.Index.load(full_path) - def set_query_arguments(self, ef): + def set_query_arguments(self, reorder, prune, ef): + if self.level == 2 and reorder == 1.5 : + reorder = 1.2 + self.reorder = reorder + self.prune = prune self.ef = ef - def prepare_query(self, q, n): if self.metric == 'IP': q = q / np.linalg.norm(q) @@ -123,7 +127,7 @@ def prepare_query(self, q, n): self.n = n def run_prepared_query(self): - self.res = self.Index.search(self.ef, self.q) + self.res = self.Index.search(self.reorder, self.prune, self.ef, self.q) def get_prepared_query_results(self): return self.res From 91b8329923bc559990d00e3c515d4008434a787e Mon Sep 17 00:00:00 2001 From: Henry-yan <793309488@qq.com> Date: Thu, 15 May 2025 17:04:27 +0800 Subject: [PATCH 5/5] Update kgn --- ann_benchmarks/algorithms/kgn/config.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ann_benchmarks/algorithms/kgn/config.yml b/ann_benchmarks/algorithms/kgn/config.yml index d0006bdb0..3151b9519 100644 --- a/ann_benchmarks/algorithms/kgn/config.yml +++ b/ann_benchmarks/algorithms/kgn/config.yml @@ -3,9 +3,9 @@ float: - base_args: ['@metric','@dimension'] constructor: Kgn disabled: false - docker_tag: ann-benchmarks-kgn_0513 - module: ann_benchmarks.algorithms.kgn_0513 - name: kgn_0513 + docker_tag: ann-benchmarks-kgn + module: ann_benchmarks.algorithms.kgn + name: kgn run_groups: Kgn: args: @@ -20,9 +20,9 @@ float: - base_args: ['@metric','@dimension'] constructor: Kgn disabled: false - docker_tag: ann-benchmarks-kgn_0513 - module: ann_benchmarks.algorithms.kgn_0513 - name: kgn_0513 + docker_tag: ann-benchmarks-kgn + module: ann_benchmarks.algorithms.kgn + name: kgn run_groups: Kgn: args: