From de699f6300941784c7a362963df6f65cd702ff3e Mon Sep 17 00:00:00 2001 From: SilasMarvin <19626586+SilasMarvin@users.noreply.github.com> Date: Thu, 7 Sep 2023 10:45:39 -0700 Subject: [PATCH 1/5] Added new blog post --- .../announcing-hnsw-support-in-our-sdk.md | 100 ++++++++++++++++++ ...rating-query-embeddings-in-the-database.md | 2 +- pgml-dashboard/src/api/docs.rs | 2 + pgml-dashboard/templates/layout/nav/top.html | 2 +- 4 files changed, 104 insertions(+), 2 deletions(-) create mode 100644 pgml-dashboard/content/blog/announcing-hnsw-support-in-our-sdk.md diff --git a/pgml-dashboard/content/blog/announcing-hnsw-support-in-our-sdk.md b/pgml-dashboard/content/blog/announcing-hnsw-support-in-our-sdk.md new file mode 100644 index 000000000..f74e2d99b --- /dev/null +++ b/pgml-dashboard/content/blog/announcing-hnsw-support-in-our-sdk.md @@ -0,0 +1,100 @@ +--- +author: Silas Marvin +description: HNSW indexing is the latest upgrade in vector recall performance. In this post we announce our updated SDK that utilizes HNSW indexing to give world class performance in vector search. +image: https://postgresml.org/dashboard/static/images/blog/elephant_sky.jpg +image_alt: PostgresML is a composition engine that provides advanced AI capabilities. +--- + +# Announcing HNSW Support in Our SDK + +
Silas Marvin
+September 6, 2023
+Silas Marvin
-September 6, 2023
+September 21, 2023
HNSW (hierarchical navigable small worlds) is an indexing method that greatly improves vector recall
7#ysq_Fy4x3`^Qo(nnp*uy~v~{j)9ZX$_mz4HFR83_<7Ic>Z0j5Vq4g zEI21GbfZacxJN~sjA688L!yiD_Q#{Gq;DqC`jQ`QI7fng>BR{S)Vj3PJgA#u&BaUM z#dJS`=-Q1I;B>~sOUPA5G$Jl6=;O%L--1q=r6F1!ao)SoN)UXP(`)Sd2Tdh+m?BY= zJbJ(!&4Md-2^p*-7EzoIC89Q1_D#E11hHIFQBjH3SJwyfCf5UM{;l{G9&mm*ER*LR zafawXQ|%W%=bHv&;^cYGqOj8vm6*Z^hhoAhj#b~OV(#F;F~&<37Tz3{>c4vzzXtp< z;7N5ipn5!&7M8Rij@3b26YioeYsbJ)zW_B}3Lt(XAQ?f|=u0PY5y&_{jz$pw;)es6oJ3>juT_17ku zl1(N5ItIcR;MDQV(!>h#;4u8zIcm6_S^ibwWI#}^*Fsk$2_ajOYsDU%IP~RD)Q3Bn zeBSv#C@MZ%9N`CpNM#zVen7>T_+fDoKB?;Sw)9GpTIfSLi`h|{t0*HdJ3JOt{8J|R zLkO5-5~rJ? fz&oDr%Y+;;w!r|UX%p=FZ;*lIjd#_;BrqNx9 zBR6eylDOT2r$|#5D690|1@v#f^4dI?0>OI|ez7y_^PKO+A+ulhwm>Rax6MHmlSSLc z1Q8N3shRi8T@u35UK5vdK#(ii(92%MWKh(`$PW^h+_rVw_8dT}_C!Nq>s7=F%~yv_ zIFp@sw5Q&Ah0D7s@Xq4Ly)DHz3TpqOF@2mtZJY6Z)AS*fbb(G96o^;dCK^mf3(LJh zCRqepy;?f*SX5r-LD9}^oa^T#;eFW7M7()vGk&m0vgVRf{F2{iQmt6P2YrmPcmVT? z>G%A-(?R!itVF=W1`sgbU$hSZN1$A!%+B1yVP7o6gH9E0Ni6%}JB&nNOe!aYSV1I1 zS#?o&VDi<8yxz}Ew}Z(l@iy!DpUgamb?rNF;TsZ|at_FqsP=zIb^!LTRMpB8uI$;+ zeay)(&+_iXjmfdaR$f@0qpZ+rFaeWMO{OP#fE%#{PZB&$sD%tl(5sMRDSzr8BOe)L z7|&*XiCt;ukAtY}Tb#`7l_2f(MzaMI{HM~cY^TA%4(n?apE2?f6WRMWNXs5DMPud^ z;97sa_32i>n@o&Ql(#$~1gLQ)EVg38bs(v6?kbJDQn&&6EyhBk@tgHR@BU6!(1ZO( zfr!qQQRz1}oqHdtMQGIzW9 Dc=VJ^N51)(1%kgx=z@o{sjYo!klL1UD-{%)Ge-B9nzV&md)3$Z+j_%v(c9bk*{ z?!LjnN@^-?ZB@N;!UV7cD*MsbT1BaFD^;L+pmb8x*eTu-Tk{5Z$!& h}FqulT9h7e=`5;&6vm> zlp-!1B)m}%0{LE0y!~pg-K X}tGLWb8e@QJWqA3d^9eJ&*b~vD1$MGF7n=E} z-#a~P6>33ahM}WWy!+ieaut9SRi#ApO!e6kkbza=QX%(J=)Y$B( wcvc_tn(y=u>A&DEJPz zh>-T0eGil~_|H)8uSE( fmAbb`WjM;A?r5$Gt@;DS*QoP2NA3r~gCzHkkn$ihqh#+dWs*10vyU zK?mCK1MD(|=!yJi`XCZVqYo4Ui%(|9bgAq6+XF#Emk&73 dHXuV_be|zdxuXw^D~J)ZcY$B?LHR=L;P26a3>Fc1vLior^QUtJ}nLlDugRj z)YG(ayi23$U1W}utb|YkjTDeYB-^Y1jw%{l@hrPE8Hkq6Llhq0`NcmaB_foV;?u$Z zD)!12cF=Q%^$&IJfVgmLqWX2L7L`X0{@6?JU)jNJNFFtJvVVH-`1Po^R69s}_t_3h z`RIAIe*Hseq(~)McEO&NiQIEiW2n-lMX*D~9bNWVy6YBcd!MPW-PD^b<2yoOtfQnP zr$0=PnaPk1u8t&=>?0a0I49mvrXlPYT3>LK9Y*ta&jb_l%S$YJtwA&)LgBcQk zXF18&9+G`4ETp=31__Q1%MUnb6NykktjTf{Y=+#aUl6mP^QZPbcz(S=)S2ky-f`^) zAJnR6`+zbAZ=4fAr-h;l_Cb>(-A28Hu8Dc 06yEQ0{`3hA(Y6?l2VZJY^# z*9Bdoqs~NGUM>&SkigfXwbfX`o_&>J%BSm? 2Po6<;8v7||~R zjwnb}AtcjZ9Q=!Vz@~ct0NWtL6l4=}DnEcWWwM5&3B*3{<@s$tu=Nn2;|?{;1gUmW z7~*G1?I{q{vKe`hZda3b3}urX^BF8<1!|TnX)VOES-a{6hG1ah{!QU;tAU)Z4_Q!6 zYxVUXgoZd*8R|<)Asd=YPxe)GB2b*vOdWOC8n<3SW(93lSGsK+(M?W7j(%4+Vtt{B zoF?72nvY!%>z!(jb=^1zUz4+vpNF2PJUYp_J!?dqmXk|D&O5{pK0N&B;mMG2X=Fpd zX|=q6Vvf`=Krl|Ye7kgCBBTmwEv8j;V3UL8 PE&% zUGV#S8P;R&mB4WTqzD`&pMIRA#~ThNX~+(Jc{3aA2v~mrKNx4j=hFZ}?2H+yHod#J zE3MvE3q20N8JwnO!r_md$$Jl64cR;yX__A$8m`1gZ-jhs!YplVAf%SEB}rjo06oK3 zG7_c_seC{o)Vu&QTaQf|(Te?Ax-!tQEs&+nhIOOM`+(7wewZDo9O6numw7!{!`1-4 zh>g2AXqT=lNTr)o3+>F2HhRdYNZ{z3c-1?2vL#6*$6UC-y;;vfTD3K(4rxIo9a)2K zgsuR%+>CdF*!=b3Sle2x`+>phpppZ4wA+;?KX#DR2H!jOPWG5=!CNYW+Gkklw7o&3Pa5HVn7ze{A$oDW$j8AHs*6Ut8{-Z z{8GUt*)st_GjanvxzPx2;fQy&^x}ciJh4ZdQw1aD36nQ1god>uo)4CSHQYvWqreY| zNa+kJScNOqe=VH2;rmSf!nQBi#Z40}mFYq~a^YM{v*}giApz~WKq>3dA!6xB-gz40 z>!g8Bwm;+$Zl2l~A4gMB*y;Y$x5-oF?$&hom2d_A>;b`+ugyXa^4w9>%)bsWSo8v% z8Jl5wE{MIMoS$DqiKL+fxjK_C>3>V}`l`1oMe=v_RKBnx8NG?xR7^p w_yG%RhH1rDz{Aajd-t%9N4&wFg>&fe3(OBeT-Ec?;R z)T=6tIy$Qp6;OP&i@NDk($pDK-q0Z@gqo}hR WK!?S@ZErzd85 m%J={}AkRB{!yiyNt(PWlSA{*<5*gW+NhRks=BTJ?J=7xIM6Na}nY z_wz94&Y*kB)?8h0_s8iOvIs;gmg*lE^yd}xuYZECm=9%5x+pg05EsI&7<_Juc+4Ik zX128BhizvnUrr}tZx%1#CfGZ@j5nLjn7|Dss0mmWb^pGEPg9(x3d2$^@TXTGKLe&_ z%6kEB{!`UJpq2kep+{DvT9Q92#y`Ce hHFVW&MnhOJJkk(rNH4$$@vNPxF&Z>&{Yovvki%~N$u zTQ(KSq;OOy&T>V|5LA(b)c02Eu#4h^ NtFKxF=&?2akg4M-oFBQ=IGA`3-Y;qe@t+BwF7W}+9A4vc_F*CD)hYKfn#Ux zL6J!C3bvm0)KJo!{m0p>ucqWN$xs@>La>gh+w;eJqj8*0FQY46&B^BFB+uFP$P_yL zZwY?{m)s_YJ%V>h>!#mxfbsa~99pn-mRHquV?G`z*|WY%hE@TQ%Q2a%Sz>hh;uK+O z41`GR0Divo`~JBu`hVa7dJO5m&iaV3>NlU}12)Txmg-y?#n+9o!YN%s))tmbZ_%W< zfSz_8iV8nOHid=mih8?sS`rV%wf98GZ(9e{ j?YWbqKhaJgR-l{o?9|8OUCDB|I} zua>RIryHk(cP(cp!|sS|Y w`$T$ynF3_4P z=F6tGSR%@Ke%^%-vi||{kx3?mTjLQ!jwoMui*+t624ttbUt+m)L%dr1svA@hTvQS; zPC-rgVxHST4=+H+LaIKXZ|+yni5pfEQ8HVC%Z_=&s(+GBMA3H?+)Oe_F-S_K2W$vs z>$+OKm#IylnFD45cM)BMuSL%2a@ZCJzr>gLDn#S)P2p5%Ycyx;t(%%=DFWchIV)uU zQwguQlMspYW`cf`raI_5lF 7DO=umXPcDl6q1ZQ`eHcYG*;WdRz8pAy2(~ zRMSV7Y8chS^^vP`Rv;(OvcQ0M)D&X$lURq;xt%i?&v-!ZXq-+{PVAZ~nt9CpI~fRA zr7%rr|7E{p+!U0N_CeMk$m@QA0db&A !S+G;A z2GzN34GMa;OYZun)s1?g+QS|vkv2UuQXNM}f&nwCUs(?R{2{beNz~e1s0v4d>zi}! zf{hw%96F$mq} TORW0I|Ga#e%(_RO(WkKDd?TF}+LPO-Mvzw%!uC$=ICzM%1 zlcEn*?%5`gB`w4MME<5x_Y6g>dsBQrI3P!Doi#R2yvW6*&DRvrnLGoZ$?XScAi&M| zzN>clrI3?%oP4cO1pq*b)#{lQUaYlpKwvNM4aNpkrh~>&o;aWXZ4?`@VbdVnu3h@L z5q&4K>1HmKNy?;96k+Nq3#Po<;C7Mx){o`O{8V;II$9ps`nEIQ(Fb8qfF#Tc{$m8x zNG)nKLd=IfR!A <3KVqquWR`e}qZw%Hy2DgJ0fyaQ&(M?H#NqeFw=A-xYL zAIdO!)$;6}+&@@z3!7XjEr{TJy?ui^)PQ@L+zXSnA3WA6Ua9Z;19cNZ{1=)YqM76c zMj{Tfwl6cs1{XixIydA^S?Aglu12YTW@E0pm;Ww>BKFp<{w0DSu!$?CRHDm6I&txF zDeYB=KO&1@JUp*3x;f5yUhwrf@>w#~;?o0WZP|>M8QUXVkyl!Gi%G!CCA)VFT9L7? zwZ=b0hTJ6JnOBS4wPvPF1e)DUx8Lfj{DKSmzvGKJ(vP;?Flyd{uH6cR65M;${vI9e zKW6Nscd}muJgSzBpFN8}i$LT1#RBXJv4-;dWk@P$Y|jG{eHR3P@;7khW7>MSxG4@P zAISAb^p4Y2HcHGz#3}^{t0+2;uj;d?DVxy<;Hm#}VVMm6w2zq8q*+0nWCS#fIdB_{ z)0n i6s+uJ$b+?kGSSXi`a?(eQ_ZTM6Xf>H_}tHXk|@ zT^U(?fuZp+FW#ox{C@l;al@3FyFT0^I&orix1IlnAxKqj^!>#sbP!+7{oZ4}ZRyD6 zeaySe8|+24LsMyF$Co39&-i9fifmR-^?mwBGQ=Ua -4rblj*q(#_IR_PRsBd z^ZPSbK^9wRv{RHtmzZP)xNZ6n3rDQl4yVWCQivt{$1prc4L`)#4*=Lk6$<5BYQ}a5 z)$T@x^{Wz`KC$PyTxyU^fdN=(BV0`H)fv;HjRl3E&$A+5JcHRR)0t;bNu1pdw@CF| zsyFQ3j|QTJ1C)hLwD;`ax&i>q-4<0E$ZkwvX-Nt-gc$gVw)Bbl0Cf4@tsMUt+CdhD z0F38k3dhwA{^~3?Mp6UM$nNBzw%Clwy3$kgZMu?ETttMG-$U9CY1gl~o~`i#qp1-v zm(_<|wg`_7JOZJd#R>NF%uCH~4)65=oz*^aOS3rFskBWX$llNb;^rKNgZNtX0B7(@ zrCJ{A1?X87hsg~J&OG2B_KGQ`jyt%f8_TR|0RC%o1pq+zMrm2X_lJo>2p^9}uncYy zrn@neJXqv-+pckZ- 2id`+xh>y1(Rw0$ilSwM4U6i{)36d>GH6J4 zyRiTQRfA;E@*8rchCAVzQ9+ArIB|9d#Of#@R>n;!XoVOMC+#`VoNJn_f`yAF5UH=| znYEm3*nOu6I-(!b0-k&Ld9l8xWPqw>;NNO#M$SPq=0z$I-kH|wa9y*@Bi(KwCx>hq zU!>`H^S|#%o>l{2EoIZsRgCAVNu$JD`3T^s{TwlKvX`5%_1 5L4DoyPEm-4#McH1wC0&jOfCJBD31BeY0jkFow>^flHOQG zw~nNHprw#OCGS=eojX5fZA&fGFe*S?J6z1g*R1*hk0Lm{w|SRNRuy?QS97i9M3zuf zP}cNBh6ERrlsA !zN$?p 3a8z(n^OsgoPo;u*Fl!n9CXB6ZSmIts-}hNh{N#BjA;09_Y%4uFQG{`@N#64 zr@OARWz?;h+^yv$#3HD;xJqfyx8{7<%?te`U5I%({qz`T3n&3TIueCp&rTUsrTeRJ z0CbTypcf_Isuu>*ZGcD7d`3eMt>q*d!lWN44@@OSV@ME0f$o$=_#F7(tEYqhQ=<34 zsR_CVVb)7sn5{gEKU@0lv|d-U5}=I=lih0dxEI%Faue4^_LCwXro`Hm(dS`{tZ9a2 z=aeopNm}o??w_N$pwE(7gber#M&?so#4O`F8oSx|r43bGt y)JXjvKf zF1^V`;5{hq7x@wx590t}*Vp81)Zp7_Qbb+^s?5m+O^=!H^H=7GaRQc&qZDoy$% zByg*O>;v4L>g`fkYH9Vriw=6}LL><-ojg3}#h~s~8-$RprrU^(8;Aadu-K9Nadu`y z_A91dow9>d0@Asxf&mc%$bt%WG{|b$w|bFUbz8FPZNvw^?M$+=*sy_GI7&L{Ko_Hl z`TqqRoUtpeMw0t2PFbb_-!2sFb_3oejWrTTME8%h_N>aVr-rPxge+eT07?bX -e@5A6n`+2Ac@QuW1dR)Ft zfrq6qp(7;U2FKUsa7WEhbjQ-8mv*hcZhj`gfv4cP1Tv{Pgv&wZ^dpG}da(q8T4dgj zESs>~ywE7S4aw>HO-*cfh{i_z6Q5{XGwVdr;Pgi+LG#vaJv^XJHnj0e;w1oNK5HJ{h}r+GT@rH!LJ@;GsD?OomptQxPgn=LA(Y& CT0&y-1NOULR;{J5os*$i-PHlwOI~* z^Js%YVQrYp)#ioFz@@*225VP8@iJ4)xnM!4(HL&!VM^96SYrds)QVg;L`Wgk@#wC& zAxPP8G_Oy~%P86Oxf=*nY=ix;OKa3ZWgoe5#>Za6Cl~o|%Ecf4lkovTf5** ?jo9qWa!?WdlHy5*Q5;6%-#S+3>x8eOXbUKkKIOO4 z-~kgP>~b6SP$B39E$8P6;~)|gotxgChP1cgog!Yw-meZD&>5)=j-S$9_~6TC-Ri#? z+YEC!XG^P*lJkx6TjeH54hka3f8r3@QvtA+Ra(lc&~gcn>f6{h@aOQcRdJ`IlH$Qr zj85>L+*aX)T98Ki{LYCB7%=142V@)?k`2H}iwxr*$g~>leJ%k8y =d! cFJPeKTxH1xA>NL57tPk%siP%|XS;Jv6R%npqxqM+&2Rf+6qbST za-gC5sw5hFUP(qtfPofk8NaGwc-!{o{tLaNhG=(`Z2)PgLw|?JsSvbq1?28+XmD3< z<2M1zbatS+v*9 N_C#_RtPUF(Tr8Hosk%6bu5!)yQM%bSDg22FWT*kmM5zqSA zT>&6PK%HQ#TsmVbA@fH&&^Rqwrm5cvK+FfeLzWcz&oay%H%>DnS=HZ2ON!LuK-?}K zx$b@RV&)^_ s?R{L@9kweacM47i-ZKYt`l6WbM0-1W(g)_&WO;Sy@>tM?4y$!Kh_bX>+@)o> zE0mh-_q~v 8@F~D&&C }{boMA_@`=4!<5noIj69%$Zv-Ht$V6T6{?3uM>23O-_nX6g7xK?GK zL9S;b3tU9Fsw9zytHv36ge%8vTkzc4-I=rm%nX4AP**C#?0mg{Kf{PeGKhqcwz?Yw zkK|&$K;(bj`*-=vCCk&UKqEodolu!rG9|2%(d2@{sHkk@Ts)JFDSKcblyC~rW0T&q z)khE36Nln|rO()qcn?@^-_`L+Loi0S=HjVOBQWyPg}8-en-vYXrS$sdq=i5+wt^1Y zPiN0+-Qt}ZL!F@_oj}eFI288lfde5)NJn>2KBuc{2q`{xOUCGb@y#TBE$)8S^c=n< zUBbkr(}DNWK+M<*F|_Xl$#VaU6Yj-Wc>+;>KA|_`Q1_Vi`rkwJ!$>)3&!3ae!I~HL ztF%mDu*X_0zFm&FNe7~6h$<*kWfWdyWK5^obC%Z56&NpeW38I>pncL*xFI+ppU6BI zN0-Cx`lLjp92gu`Fsm`>tdRVolq~il4+rlMu-jMd+B*ct8}I{SG*ZZxHXs9_klb#B zI^ALk7RBZC*my#} zOogbIUAmA}*}ghV$q^QvJ9tB;I({9g9MU3C>W$ z@8fOM1|a1Dj)dg4AnS66VRnJ>(pWVOg`>VO*|Nw_V2xD~T1^bEoWp{^ZA6!g)%92> zGWx{chJR)MnD)_M8T8Pf#OggHCU8ADJ|y#!%G004o`q9NX)e`dj_-ykWoxf3i{StO z3U6K5;zZWC_*=X91UAaT>6rIMfs-JZmQVuII!b4z88ftgOW16E-?31J76K|?tdG%P zu?_JuG#%|a?2?etTAvW5F$x@Z7y%%{lAcG?L5NF+VwcC(OYcFmJ8EhNDiwTOsc#OT zIb 65)g;+ spm6=a<|M&~rqOm}PHnXBfX}@QAY~S4ywhC)2f6u@~iW!4{=-OC0eg!tQzH z3gnXg8XVh9i-=0f&^!9BtHOUNvwiBt%{E~)gV1!L@MChMQeuS1c`6J46bc;}Hns(? z>M!oZ{0?!N$V8dzd%Yj|t^-}8*GZYn(NHhQvIZVxT^gG7V-R!LLdf0Kbq|uZGYnrO zAk6)bNyN~eQ7=x-NRFelN|`Y91}WE*1=*s%OKnw72D2DHYGbH=Lh~0lf4+aLaoV)l zhA0LxO)G5tpV~aggc}moKB1mb(=Ck(B|5Z$3RD-#%?Jwm?YrmT6rIJv8XX~)*uDxk zh@J{F2bJ}wCw**UJ1HiO-G+Nw%R8mV`49N*7LHF=(#3~k;KH&lipA*T?x>(V0IALj zO$LOPKi8iN^o7*cjxF>?r{ rFkLPD|M)`l%;kUQ;54EaL;A&Hx=v*?vUM*esn%&x1rd3vi zZoiY`eyvDAV3SwUn4!8yOOEgy=&`LBSA$h>DAwUd@#ES%5L@uEl(4|*b9g*N=s(W9 z+3C1Cs(kQ4G1T12sui 7q*UxkC=>uL8Vu)SeS@+Xhxr(`zrh z_WfxT3V)xSbyzuWs*DoU*YoyPP20cC$zliFq&T8kEv5YfX>SZgxp9BBn$H7<&|*8; z83(+}9KY0mj~HB*cvtAdD0k;)d5)k@`E@ e^I(z=PCq_mfT&keU< zbzyAZo|^q*lP_2J3Y#vToj6-zj$rdu{59okL7B!#3_q|y=nP*r@t4mx$5kRIwr!+x z10pTIbv9SVH#;EFa~0bGA36li;qUcoiNus$n9THF^|J(0a#>8c7Hp{66ggzVRZe|J zEXFAb-2f2igOG+qDW%XJ72I*0emr%si*f;ggIZ1454D7-Lg xIcFknqUyC z@B8cR8lw+UT{P^w-os)S1xvlko_}z+n8A`V@WusU%n`OUVM$JF$k_7J>F}{X7Y2fw z2|f@h>PqzjB!BFFm%^EGkMY_qoylZq-6YS8wwB_F#XLW3Mdv+n%UJ?9Bc(`{y0oZ0 zCw)cXwD^fU??#qaiS968!*eq^+Eb400fM_}|9%s)NBy=+0l(NgWYHwehk=O82GIID zdC%^}1+-zRpPj}bfHvu$U8&ZDb<#|kP#q$P%J$oXYN^OyRMrxObit8Qb0^;S^D?pf zK^xhUe_iX7%vhN SR?eODzaF`PT?-G{XEz>9=AQJGSRIindAe zF&iT6))8W4r}#oB52*0wvK#t}e5sRR^^iP)^!15JxDjX}W~|13ixp3lqY{e-4meB% zAXEmfdo{fy*|3%oFQYQU=P4B?5HFWIU5n{Cq!Ow}2!%u-)zZG4MG50n{HL+uK;Zl< zNiNquF`_hTGF526A>Cbk3$)|fEp$&4*e4!vZ#th-(uJLg4Idy+iJ|&8%ppY{om;(9 zDg05E5t2s3>c*1%<=HQ={fJ!bu)~LDs7o`bgpyg{ma|+AS-b6u pSkS0DE4`VkUM_6Lio^p&QVI3JPe-Ae7yZX*2Lb*QH{ui86G_ z?W7gNG?)iD65sHkTl}fMXu0iE2m~GQd0`*27Effs`8Yb0m=J>}Z*uOYTZQwnmWh=~ z7@brEBfm#3tQm6@c+EGEYKdJh?h!ppqh_uyQf(5WY8DEoX=aLJz9;>2(G-tT)u^6~ z`XO`L22Q?
SP&M-glJAR~b!!?L;b z?}gs?WHA3{pDDcgV2%$KCXEllf+H)nNw^aiv JFWO&>o>ehA}Qh~P_Kl|3~Ik8Rz@B3gE4_)Z2VfDbmxrcSL&=ItM zTk7;N-#q860P~vsW*;DfD|=P}1L)x?V^*4EW^3l3RW=h|eWfweMKyaIT zIG~S+vN`y)82pRG{~6mZx`Ph60BgV~@)d_#;tIcHM&Ll1$9^-G*QkBOZr=ISqh@18 zZgU9qiP}%>hmSrZsshDV7BofG+oV3$rohIa5L_@{a8)dxm+pi?YwLC{x&Cx9&PI z&r=>|k1gN0pntN?wY~iqV9Kev^&vrW&$Jw|F}k&*niyMDznd `fMng?Gcf-AhRr$y!A;H?h+VA)X+yb{I4> zRf|_%tjsREn2LZaJJ;C#iNBf)-T|RVCAku{#VVl-V4%-O3(41CfPSo6E#I1#dOb!MOdq)W@NNoH(%xkh{dKNZ$^A{Q3@?a$`u zN$ZGDThU}>rHUoO*G--TYKkT;T<5XAQq@m~8&t|G&YJYa&X9V}HQ!T|{wew*0E}~H zH*HutBxCd_$N}}77yB9vs+acX4iab-%yfo^qa%<2Gz0_j&Ni6AeH4*WWb4tjqn48^ zE1;Hbo3>p{-3NB_q4LJC>wrfSJ#6)?TO7(9bSW*4_2Anh_R@RY )cc}kg*5oN?M%|P> F>$X?v zk9XA542U*&mA+Sq=X#Z$%HM-aX@Vm)WbB#)dyu+d@Nhctl%Pp`Dpe^93ssfPR!O1} z22dV!(FXUd5$^9nUj2py5N}DcHSKD)X=B0_V0#O@zRJ%y(+RFUKzJfSIYwp-PJ
NHe4QXGR z1%CmW)Cn;yJq8H^Fzu)|fusq5H2YfSD=h0PlG~5;h_4d5ttzdC--s8I%(R3Rimu;Y z0SFU`#J@16#+6}bkWHz* *lL$VH;`^6iGUiX znPH)ylX`DF4F2`mw (-NyP+UIrX;f@iKeB|z2htF#awilPhHh~MJ zUj9~08&tvv{X-#rvjeQJvZgZ7s~2(RaNGn3tf9f=SQ^3SdK`Wj!ulG=jX+bKYNYDa zhXQ3@7A$?o#$6SlCimC;eIAV7_MIS-q8h@JNJR26+5#Q=caCV+a;S(#t&Rk2d%}RT zV#Y(4rTH|+xphTtpLzkR ~-<*Or`d{W~p%P3sD7DJ|LU)+A?i zW91K}=+uE%D3`7LoYJp}`h2@-TG+O_Q~jnmfHzN`9w3pVSyIbgaY8JUpIORtH01r2 zobcvlMV4+L;pG=Q0!Zuco_@8ke=~=cF%StG7QDNct)mXnE+lGVBnDf}KL3*a?EY6c zr3^_=g8YqkFd-5GiP;IQt-U%r;&NpSu*W_|Xx4*Mj;9x@b0g-%orQRkztVO_?bU-M z{_7L1g?xe<3{my<6rL+>Ds89+E&u9%g>$d&JDT&pgdeB#HAn<`FP0orM6FTXZAt=b zx-jvq ~|7IfA?hC>U}qaL4Yx=!kfj^cubV~K%~!lx#&KwJsxxZEN}!0}4o?`|CE z8LBRw UQHJz-$vjZpg(Vo((%0swp* z!2Dtm0DxVdJ~9F^QVm2KP}~KY4t)p9f_oe`5Fu)n&Q>Fdk|XmEce#fMk(%iV7cXDZ z&qd$zw;8Q#Hc%4A{rCZa=C6aVXBMTVsFdXlIZ>zJtY|;Ay83HNsp>_|ZOvGHVpIrE zTGbWqp_f*L?c>yZjDnFilD_~3qHsuv=xN5L{Cs`eTQkt<*RvTjWURW+a2pc@SuzJk zs?aGV;n#gl`vKa(=m#e{-`Pn0^=51fzhsPoavgL2G$6;*v=*j;IcsEp%amQrQos zedc+ImI&;?kumMf`eD93$a07l*IBhQ6gHsh(~qI+)Kcbmaeu~EL}M_Z5pcz>%Ond> zZu21B5WTq3Q7aqU$>3Z%9am8E`m4oy^-*%l&f^OU<}(*G()gXfR|uCj2rN R;z%!8Av=jsH+K&X=auN9uM6c^!G;}g<||vTj~epAz `jLep6?DV>!wJlykE=x<4G9fe7-7&r`x1Ph@ptSRB;sk)f@98+ z*OxV0;||qKcwk_j$?e40-+|}k6_rP;qYsfPUinB{Db)`|eNfk#*XujWmjuVLY$1`z zz(6NIzLsS@#ak*?_r>;U>I2qy%AxXhY;D}Xb>F;d6H #E} z-yfYU$))Q0AHua4ey%3mVGFL+qQ+j#Dd_%qK-(um{snNDT#7UOEDBv wG%rFV0K_>z7Hk>)1z `&v~Z}*NruM8pu+G_%w1Z187|y1LkC?=wFEm_!=?=RIGiYtpn!}K zJTr`;gc {=0Z5ah}$>{WS<8Y0n^KS?A?yTQSSPm_}m<4i7`IIUuM=$U> zD%41?vcSSJu5WXLXL8@mRBAe+mPS*5(@WSU_@ajCNv Efk-g>k?H>eILL1HnX!wR-aK0Cl6Z;{n`%QbaN8hO?7 zPK~LvoFBpz0@l!Y!zC^Ze!$5IPS$}BPO#HNiCcj3+JHeuXsQEDX=YWLIF9kqWuJ_J zm2_jp<2$tNj+zxYQI)vRH0-0j>bI*2XLbQsa#3E j_Q6NB#2N7AUZe zS3Bw1v)hw1=Nv*uNbAr&fZ-OfJ!|!g$y5Ib702z(>L?!t8@2L6TUArlh_+d&?0*Gr zGm*@(4ZnsMehI5IasKB^;9Z5Q4BB3KK_E{sL#n-*v+HD|)p>17Sh@^s7<#!dUNn9U z!>c8dI@tuJv{j$fk!xTrUoFeFmWT@3CTm1rX6O*c52(IQh07qCq_*B?w5ypNA>=On zMI|R6e(URl((E$dWw(?gW&WREI%XTFA=R8nkFp%y5B+sa{JTp2?!K4+wS8|F5rhrz zfZV)wXq5YkzmVBFb U%n()MiN{YE9XzwcGLolcVIlu80@Oq;{zCoI zjrCDF?xkyYY$peE)l(S53bTfPBXu9^??{Eff$S(knp)O^^8SvdTKQTIILMA>p5@+Q zIrq#3sJJh$oysdTQ}aXZ$W7}2|MQd6-n!7z&5oV{OCtv23^irUJiFIaq_Gvn(n3EL z$Obo{5$E10(5U*k3Ei`hG+g^Hu+@0)8}}47%J 6G{NltC8AsA_*H%ko`*_@&yn}0GIz`5Y~#zX=j0|MSp4TKUU_x(gAA7wIll2J zuSDs_ywwz0Sz%dBzz%cIlb0NC_*-`>?^`2)0(Q&0!f );y>PZ=o$lAnz+XL-%p zs-ucFb*-UfRlQ<2o>(N#Ha@LbqvTX9F92ZuW`wu&J&+l`UV$s1Qf>N-#JyILn*JF} zFzRpZC(_ZTSYkyiR3>-&TSKGxgxZ6mugw6E5^vr8(rKhHs{0&?xXO*z8nX9b_s&Jh zJ^3-_ym(lZ>G$YxZcaSwSC&dh{)qDf7%{b#p{Wiu$gaT S)EwE`B}@yc=M}k|uKhr<$R A2H%9$D#n-XNtDTgu@B&0!8K+7OXP>?2^?A6 z3C!Ke&reUHDx1UwQnWt8GD#$*Y9O@8PH{0HJS3$NBPqQ`M6KoHe2)b}2V+1YrSiJK zYN!?v5!5X5ZY(DmT+1jAoBN_wQYccGk9{bS44CJUdvZdh**|smCJ3}W{4OA?=3!8C zM$CbN6amLe@hj|+N}`&j{VrHo^~JP|W{E^KC2?q4%urv2`yCw|bEgt^bpdmiG6qeV zn36$lIGuONQYepb_ALjPS{boYCa$-h!h`KK@PBvkaz=8xH)eG;>$j-}qwO~Dvhc|? zcC!~(cRs(|b%x{-KiY;avds+o3+n|gxL%7r`XbcUWq@Hd4m(d+Vr!&Bkfya@vmrq6 znN0WVo$e3)la{PIE#{_r`X>MYvHwRv;Fe+F8(?g)@Fu0AmTl5bU-MJjt$4<$p`OLE zP>WkpKCCMIA45h> Hd z8W`Xjet4h?O&%>mqq>Q0*Z_$c4yLw!JYx$Tc;|+oOLU}t9UdX#1~?zIW>1~1YHdYz zP@hC%;=y7;@USnufQ@$|?1xjT{gW=-x1azwE36*#BMDQF@>!Py3Mgywtjyd?9B^s2 z;cnI7PK_i$0RhUZI63spUUlfoRJEy0-K+Wjqc)EiVVF3nZ>(SEFCHJmVx9 #rJ#aR3bZ5)p76%t9si|JYLyM82$w|w$baRM^AdN z%a?ALG+qEcX*9!2_t@i|zLYe1?Q+A);LMQfck0C;)tXQHtqdF~CXse6T|CPk>WD?4 zQWT4XL=+*oh<^1kp;<+XgU{aUe2cHQ0cd}RbDhx#n#oz59N)C;%x+Y|YOQ90RPMu7 z_ZI>)Xw}#8t#MYkpfPu3h{0txir{~CjFkZ23Q?F})4amCsN)*I*)%W6bxcZ3j3h>1 zVf|vet9JHT@t83$4OyoJWV6rz-p~9 qy`#Q;9Z zdZ8I&c)+AwZvn;IPX0~8I(rv nel7aIRAfA)%ICdAIWbcOL2QQ zUd;LLK*~wy4NNdsBM@51lfT)F@wclCGi_J3e^=e777b;@a3-TgBbb$(Y~cQYKIX}= ztxH9w0Iu5cEDiW_qZSB5@{rMt>A&;+GXh>`*0fdUsq!hDUl)sz0NO8{PbS9^DLN8a zq!c&E)yPQNsy0m?Ph=BT4HeFu(YjypyMTS(LEjq&u`6o&lo8s&nTd{KWvfu;TW_VV zz}=$APL8u6IlQ*OZzB+fLSAsr>~xBdOBm@N-88E =Y;^NbwAhf=dPRY3b27|LT)ATLjF{0-ecu{U4I`gbXKdRV#jFY3=Ce^t zsVhksX*A8%uQ FqCk|ar*t5A=T|;r1q}G2ZhquA7AY57^9y>=$=Lr$KNnh7o zmqU!1bgQy_B2)l^#HKwL+1SbHcFq(seh!U|o3L6i8M6~8L4F8>vBxzv%prl}O`As| z4nooZ*8cEm^qZ9k$z6a#*96=$PIf(Ts}T`vb4W+wIXqjPr9$Mt42EO5^wMvFxN)Ar z)MNKNxL}kR3objckC1>hLj)lZWBxKSV{BN!{i=8Y%m(apN69Q(NN _D-$izV6|6q|1GJ{wEefv=t raeS*QY)zEY9rX6i@W_` zJ%H;T>;AowH4?W>w%f;Kd$!rps20Y>II|Wt*@LF{A$k7y`fL1Zd4a7smo*0!qYV`a zp4|UASZS@TlX3?i*Qzwc`AgL@3|5@!YL2FshWGg8s(o}ccN^m1&AG9ho=4)ixqeb| z`G48CrgS|tQ)Rv{p64Mb4glC9Vy4KwN7!YwwG)Dj2s?aUGnd81PIYONKZN<2OU#F= zJ9<-3%+1#E83ek?f=_%|KGz1eS(ou`2;+ZF`k!v%VWDEjL-FnyuOEE-%vsyY@vIx| zLuTv5TZ*Z;h#7YG)Io{sKoDaY4EHL`{@N6)bU@Y87-=t>*;_c$wZe*tkU_Jn`Lkax z2dm^s9_t|Wuz|jwd*!hbtDOL#RDmx1)B2;+>dDQWl6~Mw3JaYtF0zEf!vI|576unu z5 eLwLwd-)K2|16eLK#W}oJFs(( zroAg7b4FsjUWc7x6GamX@$Y`F-_^e71wohzSG#&U+7Y?*{~#CD!=2^h8GsbQ)-Fya zLkW86|EKcko*w|EzI@k;XGN;(X?l3zcblWH5G-7-kGP$~^tr$dcx{v}YEH*!DK|^q z-W)__^J9+pPZCmiSKgjMZ@{C(baa#jCQz1Dr!R(^pn`68{o2{932k#K1>4vF1DCKd zm^)H6Mra%F@^k^5I?byaaG0G>D8@AU9I0}ifZz^K>w01$Sasfl1aQem-XQxr@ZssG zdF7>t_@0KTn( ^Iil>T7kt0B`_8?f8nWXlT5$u#hJaGovj#6f!MRp6AL0oBEqfWo=D?0 zDSc+X6RqQ=7lhuCIEy#bT-3whtjOxdZmS_)Z@|0N?6rAgXlZC@O>hDrj)AYUm&h^T zX_?)9(S_$?;N4(rB7mJcHq=vFpHN{`2R(I>7<*;ZGQ #OFuAJXNeW)Qm3)DAQq;j0lApV0S%Z9+S;iyGyj=n&(wkvTYp7IiaV z)f;W7AxaGQ0dI!Dv*qF-( =|G4;mb~bTigE^B zPqaV>fcozM$w7krGbWT%{blqF8Vhi#dN}hZ2JzZ#!+1gtyf32PJ0|QsU4OUqt;CwX zO&t;0gr2!o89sAhapwxlXe9HL+2v*%K}DZlt9S}Gk;lRqUjyy;-wxjpzYMk)Q|Ub= z^{P(-=Ag`~k<6y;HCb*oWK}NFc>{diBz(61-==MXi;u)#{O!<^{Nel@mqq6QU)Rb{ z%d?;z==#DT9QIB^&s3X1x5xPrsopkv`oq7>)7-bS)BM;lW$Gu`17<=>8IY(^0=)YJ zx!J|>-8B(P?jd7($2M6$Gq;(%W+qw%E_WzRUfb?daDrlriwC(bscMiF!%!2e@b9$! z#hKja81LF>ulSz0Uy1A9m)$VKlOHeX>u-$GOjG6^3+HLi-**nHw{$_;x^}Y@jk=ML z@m*i}02-8jnMjK%f`ZwW|Jf6hCQY6s0uMEue4(n5bl<>S3{9iqZdlB{XvEQO(%P&V zN|>TPtwhMdOlf3(FG0}m1w4o>lGIRV >s&V82SL!13LfN5})54c@Ua zGM!NHNZQAk=?FCP !vHU7Mn$Gc$mr+ z(+ik-vA-t+1Px%4%HI`@)_i3gtlxdH59|BlmtP}uR!UI+*vY;Xk8eCZBGpSo@LfJZ z6vDE7m8+7W_x2e5X 5Lw@P3adH(3T-? z|0<>%S3}HkbN#om&o$zYm04-<%~R4b#OFh7dM;dFNufNRxdQuWE)j2_WL?H-IK(b# z&&bUon<#tsMPeuY&{8%H m`ZB1 z2BFjmF=Hl)AzPT89uk(7G~>>dfsBGIIIt7i _$)Ay?_%xhb`*xGrx}R~vzFQYb z&9HGDOjSIxYTqPx$n{jR5LKQfm;-E`Zf+)jwaf>u3e@HkJ=IgCbcP+(MDzm&GFFC` z&ky_{*nc$!1kY72a_$I8mhr{HN-N*^AZ0RV0p`)V*D1jI(t(UYdGl?0&hNq?Sb7;w z;gRYujw Ye?l`Kx)_R_#_4V-Q7L_Tgk{Nlekv zP=IUTVEri|9l|G4dBpQ>oy~m?Ci~hKG>WL_c5lPexK4L9#iadxWn0GR@Kw)*Ix9u% z`sp~t1S9Lv&xGHeK@8rUyz+?(u>~dAAPZ6!BhmF!qn;0$uf0d9sL3B&n~p0C@Jey# z$`}}p8lm=tbaTzomEWleG9R%$w>~5)(Pz}pTNY;Evb-FciMuSlY6t*+3!QEU4#Fb8 zf(dGDqOC!nY&-x6ue=g}T>L|3yva#36 MnNvEu73UljEJ>DAVX-b^PJW0%tUfc+PNdkHPd z;3D`Tep+#b`fcXYc-?Ah%j#{}SURh&s5as~s^Wdulh0MCxb-eCz$pK%tK?6em4dFc zdKqJf5n(eP3z)1xm#X9mIh>4#Gb&3%HQE(|qucVOA#Fm{3RAm?%xsr;K;MqtvhTK0 z70g)iEAXegN2Yz>4tZQ*Em S-zwQlAslig9m%*WiSjs4&^Y6IE(%7@+iwS40VMK%y!M} %}uhm1wteY)YfWt}> z?eWIK(|rqwaKFz~0*;Irlm;i95@;uBP*qaa_x%fX#e@vD&ZWH4ruc>UWwD5V;mSrJ zUeljM4n&Ox0PObvoT5Q3e*3_UHF?gwXO#)PZ*H;4i;ewbAD@9r=4Dr1TVzO0k!% z1^<#ozIxH@JUr-ci>Iy)^bg#3kg=NYQ6w)wL@FkMNAdO4&aerJ_0Re+24*bm}hCRSGoWiJMaNx@Com)=4}A17kSM@Yye$P>=r z@kSj0?SBG~O7@NR(TJHOVca^gO>?|c69ArWN{JtGH~1f;Z;1#5=mUDM$(}Q83Xj0O zKRS6&Kis)#FYXsNwt#P#X8s_{-!8@e2w>m0a-rQTFAGw#(7_>VV>gq@i!GBKc^KKF z19j^oi`Pg&b&wEiwIZxrHiqGrD~wSKuh1h+^k$L z@G4>h0Ps?0NR0|R5gODoOP6*4%P%(3%sb+L)dD=dV-$Y1{U)0}@zWdipa1@1O~FAT zX6?aMm(R_IhsRx%dBAa}oUH{^X+rk^rz^&>hO0{D4>7b_ZX*?*dvnnaDyv58L{#R0 zWOodH=qq 6GTgzk-_G0zR3#EX$i?@b&u7hPk%>&tZbx?bv%j9vOm^&2#V ziW**XJJ8$NPglDE%{}ƌAE3)8Jvr74$-Zx@8A)~RJ#r&z~d0`wXYJ;sCys M%bH{Ah<$b_JlG?kmh7Ue}elJEj zURxj~0&L{nyx^6O^&@_qcqH9LFb7sCM}1WMr^a?mEO%FWOled*{u0OwqRotj7ce(1 zsXs;j@(^opPh{1Q=!K5S&L@Xq?R7zsuc2OK(6b)is4FZ`NEw7Y1_CAR7#Q}5uq&_h zwQ$qzfO!J7O{*7DJ2mSh`3tlkY*;@ylp`?kT1i2@_+Imv+*gx`^aHiG#xR>k>(I3w zA)Xi`?JopF)(gOnh0g`exSC?K*lKQkQM~};5=u`|w-g0f>y2g}sG|&6pV_1pwpTHB zg+zsUuQSv5TXvHK55#yu;jjS)oxl!`*k~AQn1SZx(SJ&GX0qFp_SAN5z2_HjCU+l; zz%SZ-_gvV9eMK0NrAPS$-5#cSme7=l!?6snSw__YNrBj`C@3(KomknDv16HSnG}yN zVSsgbY`;hWemt2AEqg@gA&a0pK*+$Y5M{B|C7Yj6<12*a8g72bJJgoSq1IwJQB~1# zcC4S9!o*OIS*nhK9~6e6 xZ4_OhW;fiyRErj UK?)DzL4Q;-u+TC#YkA_otJaM5F?E|8;_|Rz! zzqpx4`899@x`dEG@z_W9yWU8tB0nW>xfG-~)t$JwP$2w~-x8aMnmv&dV! gYW!4SgEW3NDVb7yd}`D$UW3$w zkT>DkkG~I#hNB`j!7?bAL9iP8Hl%TwbW@@;QJl}~8lzaQ6s#5np*Zg7uy|pGTW-?S z;0t lTW}SJg`c*p^AVn|@ zBV0!UlUp3Ip_6UZc5kLwB5(8?*LNVR>w5M21Hi2PlkD^nYh0G&z{}ah!wI~W@h#ql zP(>{;&S LCO|Ldb0 zu={@SjJ=6JYE*}U$7JTiV*NZJkPP^hlE_2*vXUV(rBkJ{H0jHXA3DSDOQIXez^wVn z?VotK;}brhy(c-0CC^ K6>|h9Ew=40E0Fa;j(Q!odad7ow~{j##l)j3 zLMNhT*psm$zKBe&^83H8Uv~9|qnnC*r6yt);KvS>ilg+2Q)u;1u$!Aqf6z8VFrJO= z0WfwD!8sblCo3Qd+$pj^%-1NSwSb|LxLfvA$Fh>z_CK`87xhVq;AI|aNu&>;2i6@e z%ZH(6K!UForjL^{WkYpuo06nN=*P56Bg*}#xf(|)QRhYGCMpxUj^VwkP*H@#sI0?$ zA}^EGIkhB;&b!(bCq#R`34(e_tk~K5GULzo)ZGYu1-!vM5{}d7^ QNXguT135}XSSmmDkq>_B8 zrPV00tdm4#Y+OCf&`T`VA)^dsB{9@|y}9Wv0Q~=Lou|~H0&@IP;!~zc1@^@1Lg{bF z4b-zOZ!Wz0$uV{v&M{fR!Uwd9O*2;FG7L?85U5;IL_L K)sh0_kXwi~S=6-}#nnv|S-`Lqp$>cOMrO57l*5+`9c`KVx`w z^5OgwsTlMhm7|7g*AT*Rzg3f0*XLn%pgU>kBNnqwZO=`fNn44oIfuIs(?~+=26aH6 zXjAZV>%JKZyKjP`Hj`1%7`AKp?mz<(I;%K% CN$CSvRt%$4pvC)2BtQ2kl zd(Va(&XeeQYJ;Nc3l@6wbK)DraP-8i A8wkhNJtBad!) z!Pn}e8X!jk`U)Pwi|p+!vg<(ABom+JKQyHUlx5J_rWeM4V>*})!p-060RswRP6+=V z9TuQgXb0W=t!!pE`#}n6UDBF3XxRaH6JSp7zXNF}WyNp{7&4?9>7W9m$)=-5{f(8` z%6T_XG>Oiqu>;7FXEa2w9H30#n?&&Gf*bv6nUevd5*jHF!ii~9%$Cr9v(JOsA96fE zDflCaZ6KtZEGoaY Z!?i@;5 zRg#79@)b?KnWgDB=(6qDK+!)E>w73y87i3J_BmeME(w7VuFODbQ^#}=E4yD&S>7vH zET5LnBeJO9y)11C&u*CUg&wota=1$)_xV +9%_zyd3aomuQWi$3Ybax=zgh+_rbT;(6fEUyxDZr}^B0{J%1($iEu?>vrM9 zN{n#hju&e1UbuqglmwHIyo aKX8Jv2O?NXcEg2Q-LM~t0Ia+a+-e=+;C JcwjZ>IsKgc`DJtRi?j+ks~2q50Eq_u9t5A!|%=UFGj~+XKzTLGRL>EIbO3 zR1!y7d5Z*M+CWOk4`}SuF7HWG|F9XTyO(P6hT?q*Pr`Taj`^z&lc@!}U2(3PWW8@% z$`3%7nM`?X?SdV>m5uW8S)ac6DvEqpVD3-tlzf+UV;m=@dRjq)Z&1Ur@ET2f7$h#| zHYRXZ1RhLjh+>=HvO;Rk9G@mAVxk7a@hESo;gK>e2QYYn>M{2@gW`_9>=cqe^Hp`} zL+Zi#eCDaRY{l eAv8GE$(+A@eFO#`;OGBO32HFNC#msR4^9m#eR1FL;Se4> z<0jBCG~JR2=IQ{z?x7(0Z2Aufc&XbZ4ygD9TnZT1H7ifRdTDM5Hk%j0!@uGuB>Km) zuhLwdx|qV|BJ<3ajdVrDA0ib!M12e?q8Tbz#}x*TS{w5Vwg!5U?sr=lqbm~R#Xk3N z9_#C|D!V0@F*tY)-#eoQ*?X?Y_`k#^-(;bwP$5xnuIG|NT11#iNT~m%6s|tG+=1Oz z$a$|6ihR}E&z1R-8?v;W*c708r0l-t_M6++B2&5ITJk_H!lrWBK3>YnJWa<**5Jta zM{LW k z@%>6GtJ!UQEdNFVOG7Qw7ry!!u?wj7UFM~40!X?)ybv!u&?U`?{~N_O)9)FPMjv@- z)I=CYxpTq%zy*DIU;}TPE51_@E=FI--~-7rv^<@Ms2MZ|-ni*2h1yV_fM=MNO9~t9 zm!zMT8>}@01#lvo_du(K6O6Yb3~)C7qmoOGc4x`#B3SPejaJ{O9wS0Nq;GCzni;2~ z%c52ni3V}Er?Ki{no|4(y_oieuP`VgThJ>PT K0Ew({4=Q;zzAlB1q6T^1E;OD=Ad~RN=6Tj9 zq(GE4b`Jr9B=Tp3RDF=Sole}Pf8q+66TcYNgP;g=%RSAe4Pp)}P&SGn(L%tqD1C>~ z)x} WWpC$T}Wut;>HjFQQ;VRsUWi%=8fy=W> z?gp+09@pmH_9SAl4YTKqx;0_FPjP~=7-MnS7B2ZGwuw4BUUTwl>U)!p031@4XdNk+ zvb__s0|k8l1+s=H4U8Lsfd>iRvXG7e1so*`qa2#5Z6q6}S`!)qrA>fpnhlTLfYF~2 zZ=&75miW=4@XKbIDa4kRQRYq{CnzGf?XBlCo5BN|zzX0=@h5ZKhqyfE@w{mSh6f|D zOY3eFhn|Y9Yf<}74Ga5i03I}a*8Uzra=*W*l_X|!helSl(V7f`15smj@vLEa5)>1? z&5TA$zUUw;_ T}-^JhSG7ty_9l1&1f>$N2fO$xl#+^p(({>7N zxu-YojKn1^&G+(;n+zLhO2 _~@S*e_4 zFt-HWmaqd%0{Vi_v)6%T{Crn4zdK=)YwbL%T+%ZYfm^2<_pa~MGODeV0tZ#yqZd{s z)S lfPj~<`CCN%lpfFbl+k76aAK9miul5QgPa z<(=ctwA}5L9DlAUrpe$~BehPt#a*LOu0jnRS$RqNQkza9IM{q+qWN@TL!*yJh)cY{ zjoJNmjbDHOG9kW_InIszLNa$LcWja1fe@K?w&dyrQ%FGi)qxoS>kie{NiBSo#5PZ= ztE-hJ& 2W;}IVIlx-E)o;KJ5&|Y9h?S{lX2gK|EKMz zXr*aE#{T%4m%6!RrY`<6JYh-|MAa5VRjER`J%k@C@SmubFQh-#1^m)>`hGtO`l_E5 z0)5}SQG`bdN<)&%z3HJbU`9Q)IY1W!ms M4TAM%xjTtV&U3K~wdWI#HZmCD>w;Y7`#q>D|Hp$0oo*!<>X zz@gZV+>kAc&@OQOfc<*Eyw9*=L?_vfe50E`((^fDsPglyw3SsJF|`6J)`xa{qC~T3 zlzQZkF7+w@3|7A;gs_MdsSIfQskHB%3IpB5HATAPV6-hRcax#EGVn{rGjnU}NhR4d zB||3o>m&J?XoJ30T6r{{9*>l@bOLkDhr@$b0$0WQPKHK;N8ygCfBeWZ^Gl B7pqNA%g;icPe9P^MVAekI@I)*3u?6nE|Q$Pls&k-zc}7PK1(%GJJ63h>p3f zQu@$y8JeGjNE4*_`~d||_h}&TwNB%J6fm@mh&urzmh+OaK@c6u#xDPFZVTxkI^2}K ze@gt$?=tzj^%QQ;B%O;qzSC!5Dh>2U#>0OX{2pqe3FY5&c?tLEPJ$Y~7_VCutdz|P znt)*#g52(00du}E0%n;M$&FbvVrQk8879ZvxepHuo^ Rs=K zD|ytjjfPv>#}MPpfiuLn>zBx*>)?Ywhj-$bB5Q$K{ulK+S{nN{Jf*I7*(=Fgdj);9 zJ*+5-ol8RG3PI!HZtmrnHZhCqCkcSW ~0gRHuznRC`v- BL zh$)NGIbA!qm{>b#P9+G$JkU%hTzjjkj_@`!QnkP}V3`*qemg%zL>eD4Oc-Kw9ro5u zAw|zIx7bVbXzo==&_C>k@4OpoG_Yt$3EUrQ8b;W;&$|rh(I=0vq5iA~{9$rtrK%<; z6Ua7VC8SbnZH?F&!lNXw>uh2%3f3I*ghOZf?C_eQZ;^7pp9T#Sua2Fzh>E-matx>6 zMhpf0@-Awzcf^+dbg<; %ACtB6@*9^rvya~-C784E&Xm3^3R-DcDicHqUFBYi9etPUWyB@C}h}# zsOVOp#=sTr_ccr)b)0b51*jPPqtNn8V@n3qtlV}$v?p53itigr&LsZB_p+foF1q?6 zpw>staqEVhVaI-E$ev=02@qoB4wnO0z$R#=ye3LB;)l49J_O0r4jz`dutob9-|6 z7hd_F@J*6v=*LCF2e!~c?LP4*iju5i$3GjUyLE!5mZ8ems{qSN+X@o~IjgKKc=wgP z`Y~X<1ns5sL3mM?IhLl~&tid;9ybu1t;e-egKS``;fLle@M22l;WR;=)FISnCM$X0 z-Xuwl7_jpcfX|Ihx5O}pZ(b{C9 F>h&Wq3H^9Owhz%e3;h5DUwj43KIz)9 z2!&O)GKOylBmGlMIWHMT46SEK^`$?Ln50iX*cQuObTWbxfGmlU-DGCD VY2+FWea33sIOjXS^$a3EWuiK+^lVeT5Js5W(>*N9c@ z?{R0ElorkvnL(8Zjd@1UQZj99Hn~rx!^8!UZ|Oi5(uRcs<1s-ED1wP5N;~oJi7wFi z21l3V?cGDWplXfRJFa1@ox3e>GaE+!y-IA+nCjI444v?b=oir`HjM!&GyfeC7~w$R z)aCAE!$FF`P2V#+1q;#aG$2 KJ>L`o_dIea48 zm}OM}gWQtgf;bk iaXt+OaYALD8>_lw%1vCZneVDvPgLZN$ zfJtHqOa!+Uw1eL$2O4{4Y_=xktIIR5Q`#OmgePBh+{x&!SPbH5AW5u;>lScJIzvEg z9m2-+omTQHEEol>(g_F$1=nG?JciQ$A^i39=4dWl!O^u!gUiO7G@^nn560a^+1(%@ zOp X1 z*5|e?D+7Oq!{`X#gPSwn{M` _hz xgdjhNngzd1j|8~Y!`7xA@oL@L7t;E9E_-JEG})9sI{P`QD=K;viK6MZ9; zQ8x2~4KzTo`w1H?NMSkowup9zn&0M${*34=+v?S}Lkc9uX22Dhp(4+(+1XQF7--$E z3M$)Yr~9~TTjuJsqTV&{9%_(tk{B;N2Lh(j_!6(xqNGE6xxxhzR9B3$O=rLZEKqB; zCRZ&G)a*cge#YdPvq-XZAVEk`eI$xuRx)~3@!uD^`NZob+2h3C6AB!j%aMBbJ+!BS z=f-J|5E4EchO; yO+tp|z3DCeL&x42^|Y?32znI_WrFc%fFX+qI9n Qr`(X{_)TRod`SQR089;U?EnA( literal 0 HcmV?d00001 diff --git a/pgml-dashboard/templates/layout/nav/top_web_app.html b/pgml-dashboard/templates/layout/nav/top_web_app.html index e9d62aab6..2035ad186 100644 --- a/pgml-dashboard/templates/layout/nav/top_web_app.html +++ b/pgml-dashboard/templates/layout/nav/top_web_app.html @@ -53,7 +53,7 @@ - Blog + Blog <% if !account_management_nav.links.is_empty() { %> @@ -91,7 +91,7 @@- Blog + Blog <% if !standalone_dashboard { %>pFad - Phonifier reborn Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: