From 0fdd6368771ca210289fc24fa2d6e9be8aa143d5 Mon Sep 17 00:00:00 2001 From: Alistair Hey Date: Sat, 17 Oct 2026 22:31:18 +0100 Subject: [PATCH] Add draft posts: private EKS day 2, Tailscale access, upgrades, audit findings Four follow-ups to the private EKS + Argo CD post, all marked draft: true so merging doesn't publish them: - Day 2 on a private EKS cluster: AWS Load Balancer Controller, external-dns and External Secrets via Pod Identity and Argo CD, plus a comparison of human access options (SSM recommended). - Cluster access for a growing team with Tailscale: the Tailscale operator's API server proxy and subnet router, tailnet policy in Terraform, and workload identity federation so neither CI nor the operator stores a secret. - EKS upgrades without the drama: support windows and cost, upgrade order, upgrade insights from CI on a private cluster, and rollback. - What we find when we audit a Kubernetes platform: ten common findings with a check and smallest fix for each. Each has a generated hero image with its source SVG alongside. --- src/assets/blog/generated/eks-upgrades.jpg | Bin 0 -> 51484 bytes src/assets/blog/generated/eks-upgrades.svg | 43 ++ src/assets/blog/generated/platform-audit.jpg | Bin 0 -> 92968 bytes src/assets/blog/generated/platform-audit.svg | 112 +++++ .../blog/generated/private-eks-day-2.jpg | Bin 0 -> 62947 bytes .../blog/generated/private-eks-day-2.svg | 59 +++ .../blog/generated/private-eks-tailscale.jpg | Bin 0 -> 69281 bytes .../blog/generated/private-eks-tailscale.svg | 71 ++++ .../blog/eks-upgrades-without-drama.md | 227 +++++++++++ src/content/blog/platform-audit-findings.md | 182 +++++++++ src/content/blog/private-eks-day-2.md | 381 ++++++++++++++++++ src/content/blog/private-eks-tailscale.md | 372 +++++++++++++++++ 12 files changed, 1447 insertions(+) create mode 100644 src/assets/blog/generated/eks-upgrades.jpg create mode 100644 src/assets/blog/generated/eks-upgrades.svg create mode 100644 src/assets/blog/generated/platform-audit.jpg create mode 100644 src/assets/blog/generated/platform-audit.svg create mode 100644 src/assets/blog/generated/private-eks-day-2.jpg create mode 100644 src/assets/blog/generated/private-eks-day-2.svg create mode 100644 src/assets/blog/generated/private-eks-tailscale.jpg create mode 100644 src/assets/blog/generated/private-eks-tailscale.svg create mode 100644 src/content/blog/eks-upgrades-without-drama.md create mode 100644 src/content/blog/platform-audit-findings.md create mode 100644 src/content/blog/private-eks-day-2.md create mode 100644 src/content/blog/private-eks-tailscale.md diff --git a/src/assets/blog/generated/eks-upgrades.jpg b/src/assets/blog/generated/eks-upgrades.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0ee2886a17187046436b7bccffded8d6bbda1955 GIT binary patch literal 51484 zcmc${2_RJ68$W($7;DNhMkQ;MWza5UjS9sO8B39(#g?tI@7Y2mDPf3gS(CCakr1*) zR7CddYu4YH8M0LG`+ooHoq6w^d+xdCJm+~n&*yp0nbEu4vfKt8hsa1t5u~JK2n2$R zjEtOeDDK`x zMUcTs$idC+pnk(G2!g>$NS9loEhI1qPD?@yDi-E;PCyU}l=S}cf%Kr1#@KSIWu_yM zAs7rANlmHhjDbT4@XRSSMuhY!Ft!u~p&<`vDrZv2S;3iG^D-??DgpF}g&>48xc~P< zQ^pJKZGe&S5IES zr-zkurj)^^>rtanSUGo1P)<^tLwH^+Ip}=4$czLLR zk`N&XIw`ywurQpYJT6|&RRzpP=m9OIz6**@FCr#QO_TDXfiH@dhuHf+nFIwd zmeEEa6nq&~%eX@-(Tu#Of{{=#H3HP58F>&PjFcF)Ong5cvT7(SjslBtrGi7wP#UEk zXA7ksJ69Hx3+t;V#hyhpJaNcBoTLQ4T;5+}0haZg0FCy$VV$gii&A zBCc1_yVB zLzrMWI$3a{1w*Clkz)78OH(R>{%O%zZaTdXaOMN}z;XwDGLWX_!*cr&rm=$eKYdV> z$8e{qC8#!WX`{3eX&5!`4Ci1*Pylw5QBjjqltObu5W)JvQV<;C@d%Mc%3^t(DR>cH zPzW#LVPy*i1&S*g6R4M<=j!|qegzL^M{+aDQuzwN&T+bW@nCt-@jO_BPfU~n=! zKG4gEu99Xn@Ig}Z8gK$#VyK)kn)-Yns1QNCGC?k~(GW~l1)yIR0v^Q;vXA+zG8cAs_%u3XLIxgeTN)|hqhCB_8kN&Q6@2>t+y;)xAGsYQFhc%|eJ!J4X-Fk~VX;sFARLSa-@&}lr# zU>JgPQQ802@oo!iTQdqKNyo@QA?f!+IlL)5O*5mlY+8TVL^w?6gdKi=I247ZFBX?` z4!WEFO3Y?*AX{Q2ysNK4QCvbcUDYei7X?SFO?_7+&A`NDuw&C)Hc5t#=JDZlkA@&> zyu<H4r{i`*e(`UmP!t}5JUI9ARlgoX8u?~Tcup~o7rVm2LE(lkXzG<{h{ zi6UtWV!3CXh8eS9lgNoA` zW}L>y=`EFp^x^bMgY)>%7xB>XC}V?9)F{)fOz591dE=urFoi@5}#U} zjCTu-xZM|e)9*X^_27-AS&^?A?b|qYJ@d?-jfHvKcMJdi{o>^+zsa|AW;w-OoFI@XYvQ=xI)R(|1RVx+QQHrQ4;v^shH#Hij;EayOAbl7bIlZER{9rbu zQxs_moF%?c6gRz(rk*wm;7|Z45~G5j$){@uFdiPDXj*CmgcK4XMGa59sdMY2ZkDjd zgotM$6FX!q%KdZvXX`cn5;T@{it?fNbh!?tp*P3{inv|$sG$&$GcD#_wtJh-9ae&s zbJgUtosho_uefMHBt#SyM9r(G!h=M?cp%Lcii0#SGG4~YA)FH!r9xB{s0Dm^r6`SY z+*l0YDr|-?Pe!zBr8Dqn9$YjJOom!c3Oabh^GZUUsfN;!nZ##L<=&9~a;Ivk5J1Ek zSj~&Vwx=U5_+1_J;y^=+NZ_gn1$M~g=7lLIC5K~Gq85q(lH3`ULD7gH_jD<|7x1ax z!)kH5I#YRHr-Fcx_=6T+1*38;MrS0d0i*IrDeA}bsU^s{Ps+3ixMxwJvpCz2B&y*O z6aWkY1ppv$2`UCC3>6w8%{YIjH{{7Yclc2+ESeNf#XfI;ODA{YQi`6x+wO-?#Kjdu z6dP+U2&r~^s&+>;iKsM*V6BzZ^3MjJFs198h%&rV=r}vwEIU+ET4bMJleht=~x#rOA{CxWS9Cb5GnOwdt1NX#VTQEt~5pJ-bO4Z!dVgcB20?$ zREDc_FeZ%$*xCRBASAF28lqCh_|lR_iA&LD1k052MF**X`*L{p0hpr#9IdJ9Vju^| zv5Fc<3U_rko(gM|*ja=(2L51E4sEy8wimfEqow12A$iTdFf@i}--w@+5e_!}?U27d`qikR!mwSql*cCxk~a2%!OMb4 zfiyszP0|2Pj6E?Um;XY6APN4or9GgnQ_sOsJ4GVJ*!n$f2*m9J$3h`Iw2)M`lQOX1 z$11TKaDcUppBOI?DqvD1bto@f7M1)}9@I9BmKP3_Q4$64hCgWI(dm#cj0(z#;!~pn zxnUZuLKKRjZrdpW)?QWn+P5aCy2c*KP0+6b#UhLf=RXw{{!0!?mFxA@*8M{-cfrKvvqQJ33u5)t^4qe!E zVP9H$v|L7|422psofNc9MjZh&KqC<_<9H;5s^o@T-KQvkG4X_w1`}8Ch3Er$f~9bZ zXqo3eFm#3sB7<}am<<B<$vzc3L@QYJHMPGs?$H$`dA$(I%UPP3d(;$~AU$O*O@vn>phViJ zb5JY{q}50{1mG1-J+LkT8K<19x|~OFpcGfE_W(>U0Z9>}9^{3@KHyc2t{&Ib(lHVh zK6=5ghT*BDTa4u;;yc#z_}V+~U4Q=g8%y8Ujp@C1(O*CJJFkih3mctZU?LeB`!Y6V zX;BkOn^6QTiiSXNgD9AU+8f$gTR&YfrPOl{QMCW`i}4&tqxf7sf}=|lfg)p&R46Ex z4uj8jT~!!WE*f|v<-s})rWd2`J-`*MfZ@-9xoVIg4 zCN`5j7n|>Ss~B+Fdcf88CND#hA9N<7jY%#}p3%N~*aX*<<#w)>W_@vJ40A-}_M=-N zTj!4#WH*rh61jTTVXT?_*3*ivfsg*7>@lPm3N#E=Bn3&yeVT8Y@2zKuxRZDw6GXgB#f5ns@O979?FVcYf!lpFCF+7QKSgPovDE$Pu za~1}Qi9ta~ITx^cMS%5B@I6Y$5c_bUS{<8SsTYw}B+{aA%V8ItdEBmf+#Xje5>ORs zMJ+NT1>Q;yA8bWFb}6NJM)Ya+9@kryi+R^`ov>PJ2VDE-YbC3dkYU&NODTnWnMZ2t zQg=E73WDIkk04q!d8(5W_M=dkusaBLR3Pt?!l!`}Z$vfKu$qc!Ee;uvXe2^Y3dbIe zAtYbWsc1lod^|2J+r$f-1)VAy?yZhOwhSo;XE#qCn~{0a7q(gpwS4co{Pi{q(DnYf zwN%`&>vESM*~H2F<;}?~B3@aLGhjwi2&|>ujq?Y^yYP;Up->1>pBQ`(uh7FQaAuFS zu|P&i$p;k_z$I-)JW>u~drvBXi4YHFW`UaA zsNS6Iy~o$;c0DonttH3x=AaIB7OgadwtO~zqFy|2FP!IK|5@}Ryoeo=%K*5eRi&l? zR&5q+?YE!$c2QPAT3-MxG7!!X0R(i%MKCSENikC zNNIUsS~>&aR+j146HnvVg`G^;lENDl&NL_ppW*p(=&4n`-)ixzz-=KWiL-7EAA#ffTYrex`FV>>^ z8#UCOjO`DvP|VcUE20HyBNDCn70C(t@ z4Cl;rDZb}vd_JU@MC9><40b6d7hbkiryJcVOJPR6HrD#~r=rE7H?h6bp?PziBbj2| zz2xfvKwFa=-D}GbL9;3sWbD|^_OjQd&N81t)Wu@88W!gL(ED)eyYhC6DN77sb~?PY zQgp@{kRt!V=7wh0){!IDos6VXuc}=ECLw4C33C?JgX`Eyk1Wm>9*`ZzYK8DH=kFP@ zw@GjITJ4vtd~kfOS8H+D*Did*EslM)p2q9S`41CcC~L`_SF4Ulngx99B9HDB-E)}p z`)VzTFoV!mBNBdw-K=-FUxzpw;V7`35rd-T#tNlsGVLt$eolFgOHE+H{sBl$fwSD( zpMzjLHHFr~B0xT@MTJFc=hP3+ym`!W+u3Rd)3Mz6y@CVee|W!t6Gn1r>ZgNcvg6Fj zyqcfu&Hffk&?9%R>o0MQ9Sen$-xfaY6+L3j*|8?>wu4kgx`iJM#-;{6FX#(|z#)j8 z%9$39q|TU1&YP15-i_Z<0`VFgI}mS+ullG~s)wM|HRU)Az^AH*>11y5XpiRwc6|64a)suGzjj(Y0Se2jJ^eV! z#+e`$I2m?a={RFFzCUN{g_^5YJ&-exGw=h5DnyFnoWcAB@s}Ajc^Gy)nSkQ}`gMx{ zopCHxMoDE78iP)f#S{cGS;u~{>Z;zFM{EPmM zH)oMtXrZzDQ}Oa$lUI_pFWawLyvVnF)-*j~qzy|oCd*ITIbCGb_J`sdE+b)``mYZk zRX=2@9~3;C>|*^d1JIOM@BsA8aAPpXk7+gx;2) zZs=O0w@z=iv)5xIUhG2|@BC?4oa&wac-GjkKr{U@2w^8Gjbg)iQ|?qG@2N=E%y`^q zT(I4p{)2e0(Zc5+t@XyO#V>M-Ul_?}fR=;2;9QY%hfn}D*V1S8oiXA)gKr5>Gw;bX zeq0BdYzUB`XJ)iLHVb@Pkt-BI&74bP@%{(wi0(16o1cudY8(sR7<9qHv$Q@v@9p4t z@w4N7f5yk^(+i~VqE!%WalLf25-pHX2CsaHMklG36dMbq*~(&G@~W`n)WCuO3+MJ= zr*MU1y!E6p6r7qEE^g>yC8e4dfEb56I&^(!fqGVLKO` zPzWzI2;So13`2Nf;VAkRRa$mxeK>?$9Ur=U9K=_Y*Q6_muO7Gr{a6%JJ!cD_I#yf? z>*I<`i-sr^Y3ZG%=_?gsbZB&eG1$*^SL`W9N6{CfdEDs}=>z%ryyC@W%DfV;_@4w1~M{&0s<_k7=cO(PR0ceNDr)NMH3;dDkrUSPPQPL5h<;L z;%r1oUlxjYhG2TXzD{JbxT2q=7`Q|Fcg zFnTxWIKa2I`*CUD%TWsOZ7K`_Uxp@cq=MaXwOAt!Evn1=RZ{N73j`K3We*_d&*Hq3 z?PJ@>?%vEweI6*mw+so!@(sM-)zvUCCh(?Mq3LDl_^G(EEh(<5DZ^;JQk$UQT_s{K zbvrp)pYhs8Y4y_#etrHiRKYl{f@H}{@Kw>Vl&9TuCU#HF$(7E^Wxc;Fka_x>3fnMEl~K1}4}VrJg6oUEDygXYF@#h2O+ z-e5>%G45XCia6TFpx%h8V#+GdGHjp7z2!aK;#6zbGBWXHx@G!(+tMx5 zF^LZfoyxoX9{3Dc>if2VPAvP&Nbd{6cz;-#`coR}z|Xeyg(K-}UL$ySTPgWaUeSRE z-?dWqvblmC4-U-PD|_t4a~p+IUl=-BH9sDUlsma+GB%yJ~%02F|wS4zCD`9NhHB`W~zlo-K&&DFlhbS4YaJ^1|v6a0&aPfNm@oY@4+M9X(JMv!`vtT>byK7>Nw3_>K z-`q^jZDwij;yk}+hb@QBM^?n)dOB@%z0ycxXL#Ar;U<&o1385ei@CeW1%%puYJsTBu4_)g&cN@)KHo zvOBlfaInAyM=E!ThYnhAiS7rW@AH!Lfb%LQ|pD z&`V{;)@@gZGDm1yUzzFLDm0rHy1q$-c%lf6m;CAr(ml;IucLFSp8v}`wn#J3xqi>Q zL{;mn;qa`m&RppswyY-yXBVS5jlVx+WZyeQD_QJreSKisthPuSaWCWh4F1ZZ)&qsN%HEc1QG7? zQxuD^=Sc&7{0c;Sy`pK_Fj(ozV1-g1jZdEp9ErS8z}(@Ek~n6s$VOjYnm&g9r^2bw zYg;1P9EaXmJ3M@8_C?G@xOCdBRni>q(`T%;HAGWV2M&+6Be?9Y4OZscXr%H@bzjI! zYJOllo_az3k5x%p9}E7};~FI>gD$@${XVEz$uyoRM=B4$w7$)iLdox{&=K_dzZ6JQ zVEoPs9rQ6fuNF|vnl=^Q{FYNdwBDmmJ7B%nc-nZDlbjT;p)sz1w=*_$nj*PeRiC;ELwf&GY-W)F|U2EraI<_t|1(QUQC;m@+5* z$WLVF$PcZGSCzkm5Q4_IJ^kq9v&43$5h9uvn+r!e~z;786jbD&xh`1)VsO(K88 zlmqa{KlTS;E$~@sg@b+y&pHDCTrATCjye2UScAYuGYrR+uZkz#=>)`k)7|?8o_HfG z3g1j8&&Lh(t+!g_>!%xKbUd^4C+(E6c@L4lyzyBb4Bf=CLVvTb{x~?&5$L<=jk(&D zF`|O@6e)jiCn|^`kKlu=3R0Pk_+Y0&Q>IIecjH%udzPVXU>=dLlfLDiTWq^CK%g1N z&VW)7>|UEDh79k$?w@qMSG{Q=Y(Ww*kYne1TMxZ4KiMfJJ)|S7E_dIrbt^u)9)UY; z>eZjnDA4$5_ZP&l$Bx=772LTZvyLsGfbP$4?9+%b9KRr*DJG#muND!bpi zRNByGY_4~!QDSR0NH+G;h@fhkp7FiYJYf4Gp7&kW&E);(WGWvvaZpd73RZ5!uosTB z<(}(X99OvC#394w{^F$xL#S-T5Z6Lz%+YIx@B>XIWh$2{vEw1fVgq>phXP~FBmP5m zl;mluI_M0y9X?r|@#)=Y8%0*t^5FlW;8TD40avKITgwh5`fJj6o3zc<{&!gdc;&9` zQMe~7BmILmj`HB0yOnC3Jg+Yc?x4OS^X=aMQ1JgER%al4NTQhP#(fkQ!`t+-1UTm& zwE4AfbPVT?zGRmzE%O&RMYsR(C0|we>C@QGM(6tsC~$*|aD#IHfyjCGcoOFEWRRfk zI>U7IK@GR1w@#$~KMMoT$Y+JIK%1^WVi$EqcdJNMm7>|)GZUg~_IN_iXEudIA`hGWM2r53q@WWPCT z7WYGvo#j>0$A`?M*IuT)@LPty9XtEVqCfgUZgUPSs5km{oN0Fhg8x>k6^TKu?3mJ* zs%JjuMlSS`RYiDrhUY#!gG~OK1Iy@*PB@*maG*W5@VYA5(0i>*LPDOx3nMq~6-$46 zRq!cp;oE4BhNU*0s~btGL+;5rw1B}+NyTx;hu;^4D&}Yp7bbRMe zv$RBKy?We;LAu`i5hrL~&9KA9epe5b+Z!{77s@~1boB0P!suC#WL@=VTv}WTKXIp} zL*!24lkDN<`l!bIjHltv z_@14K7QMU5o*fvUAO;s^omSF$NUIWVv zvi?uui8n7Mu1v}9jLAXU`!B@QegKJ9wDsdiv9@$rWB8*l@}I&Iql*UHjq7&tFV549 zp8IgKC5ci0xw=pKIleON^c;9HLF}NlT6c{|G*CNAhb+{pM7a;%L%)6 z)^uQ{isKWZ+t8`KhNg+DdMs17(yox@SvMm>F=j+wJ#$CC{HFlbn}!4NX}_k&SKxM7 z;-xN-FA{XrW4fyG&ZIuE%g=~MT$^ID#s@=iTU`Dpn89dUyK%$t@iI^s`!T8S;MSOh z@&rjBHkJjbbhn37A)~JJCs<<^-Z!0nc(lj+ZeE_c1KIWS*9+YC4Jg02 zy+3hKU9K1psn4E1skmywC@k_n^X2CZ4HJCS(6w_~=pM zWg;pz-bi?6cs)K3kCFL%W9r&_##O1l>F|5pNMS5_twAWV$G>V+Kk?4u_Zy+d8p=wx z{?^`8;#x_UKm+;XxE;4L)p`K z`_Tfs)zuE;4jFa6BUdN;f%_87oZ)s8V_He`NjjHD*kGl~t1Z*ndQ&Y~ADj=xi zz>~StdnLBW+{9gT>l(4<5Q%LMmBTGVGH>s5?@XNZe|oa_?VCHeL(jbEF1DK7Jm>qa z!|Cpr`aoTSx#agdZqkt`){`h|H`!p;-Xl_{KSyv4ReW>59yiDvcE2<{``A7|wMB!2 z7Ps%e+IxpCG4lB{Q)T*_-$zTh8|P0qKEM5uA%p{}g5Tsm(yr0Gsrrz7-q_F6wQG+ZdjHjtLDVQ=E^$gG(dL=q#OR}l zuvJMOH&pk2J1D*{`6R0JR{q|b;+9%Ac?)|CXL}W_CDkv)t1BOl3#%5J_@p%2U@AVd3$BkFaUzlLQySAbpS$dn7 zi*U=Usy+C1T88Ao&!`^o*-Et8aelCHlPYO5yR5Ypb9KA6$q!%YN*WSsll;J|BGR}^ zixB{=lHe;)QW8=!axzjf5LNL9_;VJzgXXmKQmzaf`wvK~kRsWSTLeaN9s;rT#_oNp zE;5$s8O7i9adky28@ptZU}N|DP8Sm@Yk7Hkg?;{ML7HFWBVJI|z6CNgeB;&7sxO|dgkk)$Ncl&Ka23-q>EcaVS*Nf7Kb7vf4 zm*5+J`@NmGam=^9m+p!@NK7rPndTv z%;toleeKI1{GS&0rb(C7yJ-(Q3c=AF`|A~3HD1`c_^Cd~ak|EK!z-2R z{UV|ld0n#d$ho8nuF_~$&c*9XxO<=EP8>3o5wqTAa$QX%f+9luyX$xHS0g>kQ1Orb zPC`p=2I!&y@5olA`(g8Tl6O4#T=!HKnm9bTEm=Xn427l+pe}#n8?zxXf8!G{)GS}U znD2UWbO^)6jtffrDlJ_)D4B4Rv11wHVq4NLOl_;dceBmXMa%rt){;E7?{3S`dyT1i zn|ezpGrflkVo1uXVijUE!Mk+MJ)L8^cwyVP^fJ`LKeu$T@56OZ4sMx&N-`bTuQHV& zGYB$oA0As4TcbaqRkwsI?23;!PLUaz(6uWbr1>_tLIvo>#d+cKIZ{ zZTeD7&(hc0Z^`mFm%P+A4TCi)RM-nGzi*44v_c+z&gy3vI>gXOV{|lr)~ycRz>@ac zg;=Eo`=sKba%0jd60I7(^%vs-UgGrC``cjRQXgOBJ?-2k`{MM?B4y0s=OaApy2JM{ zOn>@8=3O?0zF4b z+x5FhdlJ8A`{c*w_oJGU9>UBg`#$$Bm3?306bWfF&APARCv;kqt-*7Cr^H>YLzbPK zR~Q!F&t}<6k1%~oiktQNe(6+zfxVu1e2j0PAJcK^+pno>cp9C;n>sLeFZueMe)sd9 z&)xS+g@#i<_Wy`)yiFsK6zFNNzpmWx+vmBhy&rB#xMfeW)Z&I6$SwQCBBeK1n)itX zNPo87R`O}`$C1{j2sS9IVLR9C;`3VHE2XSs4$lWhc~0yvE8BC~{+-+jLnqzzF$HVO z{mDJ0)Bn>86C-$shL49O$3bKF7HyNneJZ0{kAxQQE&pMjU{UwHtkI5Ul(V#q>cBp8 z&b@VmruNzr>@&VUEZ!G-V>2DB$xjukhhIQYygm9l=6%2;ium`ngVSOX0y&;WhQDc= zB@*@J_{$d(0+F~|_kdOQ!%=rC(eIK4?j=z~@eH*!ZduQkU1CluJ zM~@aA9r6OL?%zDRWid!TaNzq99%D>PRQhrKJ7qLJ%*fv^FK~KZ+$bu%?X=$guGJ~5 z%=V_ew)NJJHK}m-OS^Pb4NtyzS2Mga^|M^QKD=)4L%O_v|H)fV^I7^vPTGpqef{eN zS>z%9B^hcyHZjZ2HX!@8DV@9fO|s&PPZk|*y+j(x_GDMTsp-oM+{YKo5H{B8q`zpi z8`=HVb63hz^=ykn-MP?{WD;#?}PWCS^MAOZke-)v7HY5tc z5BidyR@(J;fb3shi0*ZLH4J2L*KadXaSd?RzIK=1-tk7Q@AatGPaBYP$6i}~>qp>? z11!m#!1rh&=9IMD3HJVLUl)&2T<`Ov+h%>$F6sCeE!Ke#Gv_>WGR2#shLitmrS+0e z&@vPxeXKGy!`?xXq=1dFl7>vZGNG)5has z4Osl?cg@Y^AF&;vQ+X75@Ta1rA*GhjojpSDPwR$;7Vh8gsIR|JTK3c1cY=Yb=kL|B zHR5-O8X$~-2fnr6CbH>9uWIR6n=556I=9^};3o}yv`G5En~z?ND_$NG6vZv0;QoN} zpDxeUdnL52!e-52=UmROW9FZcWt52dNRFt!YXaKm>}9(tD;a|K@+e`RM2W~)xc}p& zXJ#^o1xDh2olk$roWSoR{RR!5iP*dsxxNawg;YFgwJCu=Z?->?6UR<(P{TT7eAr0# zJ{x;jo8)gp^R8m{&nWS^^5dE4(XqTgM4&&0B|_!w4bO%&;+UIy4cF@5q~ujdZJzM+ z>%Sb`Jo7E3gd}pK9*G?T)&>5954vS*9ZdlyT<1CGH{x{m*{U!68|XR#Nv;F^nx{pg zYQ4le*LO6gxvECI>z~WfxI~CK5|=rj9+bGU&TQhHAiVvOy(T^J`$b=qmnWzsU~lo^ zd*STrUG;6ZK`39F#%}=F)Kjum%GQ-ZT@9;_SY0iMFg^1t`= zn=x6hzPfiS{h9`;(Z0^Ai{Sx>wBL!fWG1;D4mCGOYf3DCEbyJ>hn9Nr&i6+%TCS&m z^tB?svfWWRQ1(U5luqu1w8oabHA;i zCVQC?EpPtk20=kxmp$CHKB=neoOt0v(w9%C;io-puf=k<@$R zccKRT_LfxqsX^sRgK@vTZ~ zeVDn@cejX=HPgnyZmr%UG@(Dg`Vd~6wFkik@BgNqPtJdOeJ1M=hP|dKG9|ge>`b_L z0sE)dhNiD+LjU2luFsXH_A&p{i#Ytc0gmYX{k2JGyd*`&e|)XY>_2oZ3?{#>8DW&w zZvO=o8_jlsfC{|L@M!q|>d`f@bgvHDEsA#_*$F&AiNf>+^)H?U&KAd8X&E2XPjD!U zCwTAU%E7ngt+aSDU}f46yn1V3?_-N_JPhOTki$0w4G3-t0RGE!|8F_#Q$v#9U#o~* zXOO=G;)vdFkoY4Uh}Qfa6rTY6-v9Bn*+B^6{4VWk&Ho_v?-JwX`k#D67;%^EJ?Sq# zA#%q5Kj7Oms?`eid(Q?F85GZTc%CHiClQN){H%J5E3KAYW{yej0XdN$v!;xk3`#mZ-j>(AYtW0D`k9*N7RfED8abcx;J&mc78 zy9G>35CmT)4$uhj-az2}m1}v+YT`XBJb41r-JqP`xDQVOc*PE`hN4j_7#9}Sbd-`l z0o8&LbW6|)@UtmjkR_)@wM?;xkvWSj+UyayT9%~7z340({T}+Bdc3rm@*jw5#q8u* znj*6z<4y~RoLl|lHYJ7|%qON<3#B9nL@v`6voL%N+j@NQM%bvJ9^IR#9fr~upA}^X zTx9tEj`wv#Z7Ckxq3FK^X`;NrO_=fMI^h1~heXfB>lHt-&t$VF1Wj)VlZNJ}H|{X7U~Xf(RD9L0AD>K;O5kN7_WTC3Xi* zZ5#DsPyc>fq9@>9JtvK`{Nj584K0~oO!L-#8fhLHMq^A z&dF;wR~4=8URY#*-kaX9qz_+kp{D_bclIYIy@G!*$<^ylG8xNy>g8}=#KQB=gwhmW z+7zPJg(m=^HxrAygvi@&ab_FllPqxRWET+UVOD+*n@8cLZ!>+WtYQB9U`I^(jhxh( z!DGnKVJ7vu!Kq_hp+A_^8SQOy zCfiwN=TEL5{*XEmVj;OMyP5k?nv#`F)tG1NZlm3p2)*XI?PyX4SMkq=3+I){8lS>C zA-LP)E39~q$^4ZE0$;-WJn$QQ_;i%QyS$vZyu<>lOVxm=1Cu~^58D!Jd@z%q{?Wv8 z4R%`CN2!C0B+(WmgRh2di|nxlX+7hi+vwhqc_z?jTonz(t7`Q{$WQS>naIY2fa?*mZ7umthfQEtC{ncI-WArp6vt^lKf#ho`2h=Ozi{* zbLjK?L4E|=ZeH(ZuEsS&*!$&abNFcXFCI?_cwkYnG42tT!oMx6|1u0AlCB1CydQVt z7sbTzU5O9YO5u`jamsj?mGpgQ&!(6&bdml}*w)kJZnI&dR{aYsqTHfZU#0?tzfHdR zaBHq4q|JDAD64*}(fx;!$LDVB+;{bSHL~+6OZ7i2wgJQFOl%18cvRpmxygzWdU&8n z3Kc#WB;z392A}P1Oubg3FYLAGPZC%m+w?7)v-UEbiMwh2-k+1NII#k{&1v9kQDXkp zPOGHYhQRLjkDO;%hAf7n9(R&%nmYj)moE-TYKHsnm**c9VYk%y{Hq{Q9 z$~WHCyPuWfIbCP-l&A3cvss_*hr~}kV32O~+aw-7JH+Q8ZqJE%ZzuV$H7h%CJrzy$@5IYG=q*37H2`_iOC{9w}j^OTgJiQoaFj3Zl-!_WWh&%B?VRMwRXEO8OZ}3L7INk#q?jbnH?j zyUU%!*7q&)YY)xOHz&;qX$)V8`<$j)Lw%hpLbB4-;mD&JwD1vuz74rk1(~ z7pt1*AEpvor+&@{)xiCx3cee3N9jhY%inptL@I<`T1WWN>j-}Z*Mv<8=JpnGhQyww`eH)c~HW7%|bZI=l=v$`Y##0-d<$%?ofA~2=OKW}CJVpA&8z&?iC zWMFl_>LPegsfxolz;~zebN*-BtBL4p4PBwUZAE=!qK@RFP7wFMEDk@q*x}6ZL<;_|7u&Q1_d$!N`1Wtnj|0 ziC(3gmW+Xb#aHq7icW&q9Xxy8&n+~i1A_EF3uEXAK&y`+C`QXH#$yPZ;KK?&k zNPo??T0)g;y`7t^&Yj4dEff=10L}k_vAM%=U04%uoti~XOR1{x(Pto=*ryaRL$ihz37LQ@e2+M z-9f3n>Oq19o|1Wdu2bCO^11FmCSio^Xf?&S;eJtM7g$RM z)V9}ZE;ts}To_~v_<9!R!oC`ziPTE^-AZ46aV*Tab#`%9C!Q&Kgk&_g2moJ_I&WLa zf4|7yy5r~AC&EBgY*UsuBGGFkw3@yU$cJEtN-&sqaS7scQnrRgO85E7+y}S#hSfJ; z#(TMnE3-tF4=!~7NT1KKDSUA3a1FK&3%ct-&SeROAJnJxfnv4W4{VO#y zC9&T+kV6to!8RmVpQ|9~RCe=0tH#Ci9yb|VG%m{3&ZdCcA^uG8aeXMha2aC!)O_W9 z_)RP3#!D5QCiad?wj*6rOBR#h_j8GDp3lih?4>$$cGG%SpF7D-bRnV}E!fEU7KP6- zM_BMILycd--$?)I^^xO4o2 z1OHN_aNQocC3Y+=>$^|7Y=sfIvx`no(wV@Yrxj8<|0D$-{Rb3pTy<{B0|;^7erf6E z_n_$lCnu51Vd1)LsZTQG7W!VCsa%H6SU8a@7cFfKm!ytUiY&(G+2lU)cV+kwYwqR# z7k}B1V&G>Z4D#H__L|ROYqB>lLpPO$$K$;E-HtZ~>^Q`7YIQdgPfJ}BfbUW|6f@F9znAUj$rn!AXl7f`8mG~i8v)M{fIE*b#A9?01GzO z1AtC{ZTT33WmnhCMAn|lwf2t5OHPgqFy|t|A^@M}&yXi(%%aqb{pYCzAN?`%@5eiS3=+0{|@;pGkcPqz;HIoOn3UK2p)Mu%`pW3o(%K z?tTU`UScp=%`#WlQ~euK(45t;WmdK-ED9unRaLlhW&z(kHnrXsS@`4ye|Ed*bDv>r z`z5e)QZ50jBL=W?0=7khqNE#L_U5R%ekbF%?|A$OQyv38IOP2jSZpwA0ub>MaF;ag z$_Nf~bviHEp4{C*e(Tb&b*+o>t-oq6cI5$*>g2~yHssf22|m7}^XA%--emIH_McTY zx5noy^@Pdy|1u1Ix%Ero*T(R6G!tBgJ|&mv9i;Z@yDP(eSaVk}aRo-;p#?`tCoz2! z`+_CghAtq$`}05m;DLI_a6eAD6L>daje%c1N1p{K5Ty=%A|1vcTg-0o z-rp;TkV6HpMzMchu@hzm(0rH<%aBwkj4of|JneX&@e|YK^MNz=$+k)+ zV5uoI+&;fKS%-yFXgD7=UsNc<$lP3(@@oS7M_mW?)sfn zOshtKJxjW7zgw*ZuwbZ1Ai6fyCGrI=V-Xgl@l($hlat zcq2=6V87IM2mJ;8g9o|$c03BF6D;ycOiZwrh`v}+vXgJ%G=_`~lOt4=2r3+J86M3=6#LFNV{&F8 zvNJgFaq!&%M%+Dcd50!Rg~R&yB$==TB&_h(5(mQN>ZI|X>u&w?_r7bpYrop9ZnqKW zW#i5afgM)ICgxPDRbWJ-r?2_@YWDo=#_CoCkv52o7rL2FH+>tq;hP}hma=8SB7P~g zdD+EK(?F;N&Zs=F`d$6%f@$-H!#|JGy0*#wufM6;7-D|)JN3JOE157}IMDy*-TU5a z8)DV3jy7%#t~~nZy_MCdw@GIkW&;8ZAtd3Av$g=+h?xz0RRkCiEVr^C`UMnxDBt{A zzh(j>Z3F{xg+#z9Irx1O;s4P?_}gLHkz*5od5?!#*RX_5KTtzQ*MChqwhSdZ6@+&A zhm9nqE=(kT`x5nz_f=f?`+>Q6^hy`c_r3Yc`|W^JoI(H3w`5%BF1v;2el;=z{S<8P z&9Uw6y?gYrx;L%xx#8}@uom3kdRVRBpQGIW?W^Ob`<`Nz``f~j{gowapG?#~S%xO; zhqE4AG>F+9f}d{_M=eF_yZuF))xP%L|60(T8zL+HrT%&LoXC$_U2%Uf!_eUuyB3D4 z49imlhi-UVSB5vUin$WI`irV2hE00=vTZ{iQ7~S9mGUhmW&9&{q9TS?I_7MxR#dxR zXGG!A#KsehuMAI$6togM`I~G>(Mw-h!;frb5#{LBG96JGDKu<6w7qLfn-|NKWhla7 zvDGG{zVZvL(w9KxZ_{3XRXKi=ZMO!w`^`8!g?Mb{+Jt-BvN1bq_F>*^IZK1CC%d&H zX@c3Xs(+rV_~Y=R-Tdo+>gw&lG8CDWf~{AoEO3mFOfR%{JG!sk{K_u#D{N=p9Oo*Z zepNFRcGsi@e&!q*XgW(Ub<5jIV+4!h>_sf$#{m$Rt_McY5tJXD(VRyS>x9=8BJ>%YZfz_*j*MWYx0(+c}_@{3{+dbG7!_YZj3g=N!#$MnvMPr}ue0uHHpVnBJz{mL*Lq9u zWqZmGonC(*tbH-9RpV0X+uM9^v_HDF9C2(u*m*R2Eup95X3rAmNu#XhHlfKY?71lz zf99wglbE&g|1?&`r(QityMBmV#UD)=8VwJ9T(aoDK6TbaWh?` znz>SZN1*)Ob<2lS|6$DQi|y7|j~8;s9Iy2+)LStUzhS`_T5NJItERL)<-5kQTa3A_ z$Lc~)nR!2oc0JpDENtide=o|ji)XhD&q7zEXno;(6lQStP23FtQVUOQB;8Z)jo-bOzFDF|2}RjN+zl56 z?9#K1$<;hbtwJYqH!&ly@>4nHslki!k9o5i27N&nr#_xAVSA|I{PFEb*K(T6*V>AX zfHnR#nL|DzG*U{3cX-p}66sz1;`fq_Kttzj=-Z>6=MB_%yQ@>{XgK8Z)H~+hJ$d-~ zmG5UhS%k}f!5s>ik6-8O8nj9q{6VxPB~#n(_11EB5Whb?XBWq39pgSQr4kBDqdCqZ zY!I?PT3Do9V6u99w;yv2iHp$5t>13Gv42V0CKz}imF!^MU zuOp@CB&$vrcX?E>dOS!h6`SpZ`%a~x&TzcH} z(eT;mcYmWxS3LTktifO)Vtav0W zw{Xzsc>hIh--`1ih6{Q~{arF$%|}?BJxQ!~U(tVX!54kCT(Jq>4^sBq|D}Z$8}GP; z@QwjCCu{U87N}tKIx%*D}d@Dn{6tLP`s|OfwOePML)?w(Q zx{@640A2l_R*(Lr^i1hN%h^{&t~Yaz@Be4#2DzlzzfOL1lEX{euk;5Iu%@1G^%m+3 z=2QCvSd9!Qs}X~>_uL;ZOSbEt^n@(-e~ghJETH2+fQu*naiBP&0M3O)|s zZWP%1)@gPO!JIc{{I5dayl`o^R>P*wHK*3JkEqRh*Seg4%O*c+@pz)}_i^|^v}*sC zk;serLG0&_r@jJMeu0x}*u3J7vsxj7>{^D-&DT;3A3wk5b`qAgRN$>A5|MT%V zu0Qiu;pZRzOkYUSPp?iKKkx4Gvf*9wtjt;*fHQx=a{B=5bB(tz)MmTn7DU!N+~dZ; z0y5XU+a3PCe}T1lzo%8z+TXK&5Y4>$ZdICAD0-~o`P(liPrZ49$YKlL_VOLgdmiA+ z&)O`&Sg{>pW!k>|&xaT5{>)ot_)9H!bq7yNR%=uHye#cdzimS0hj4e(S~}A3)^m`6+zD%-^IP-SGa>uO60pVlMEK#BAf|<90H2qqmd3X8`qMpGE zU*XRc_v+8*zd#7j?`d`CAA|CPsCusH_<7vJE3(D?JfyV`zwN1qe$6&^D_0Xmhkumf z_`Q%HL=8Y|zo##ke$N3EApJ{q-#wo^5moYVt$&5ffQ@rz-=hq;q_K5NwXkti@9JOb z>-|f8i~szkzCT)p+*7NYH%)Dk^19iBG=yV%Kme_;y`%Ne6020}SO@It`+I7T{ypah z(dWO^w`%z3eK7kgK2MtPU6(&$JBIQ7GDVPjb~b+4{!RF6UoX{P>g)abXE}@Hf99>4 zDE^r_^Hk|(*kchZpZ+{|ZIsgB^_4V!fZ==<(yOrZ&nJ3c{h9aK=+C^hU4N;rGULQ> z*XY9m5)Iw%Gw(M9>XJs>mTGR@=>En3<=dNc`?I=Lt$;r>^IiB%N*lc|SI2)|y@<|C z=$*W#SGV+mwZ^yIMYX>_^5E?s13W7=`}GW`**6)F_`^KKe(L?1&x#Jb5P<=g8!hr^ z8cbqws;IiisWxbK5SR}%75-QsaW{v)-{;RO&!>0#Fy+)a(}|>0RXv)U8Vf;&XRX!UE$(}Dhp-#1TaarE)G37t#B^K!L!Q& zzf(bXd!yzOgV$bP%@nQ`iqv<}=hn4BlfqgB0OwEtLF8-OEV`%TgvzIoPLQY-Gd5ls z6t<_>l&W92TjPVl@gKcS2=|ruf|fUJO8Iq> zBd(K^S2&^_doJ+QQ|^JE)TpPN>{+v$ExZ3{{epDX&(VT*ZR|y~1%722wn5wYHDg%% zwMW#(omx!Efb-Dh*vvA0+?;i{+wjlb(x_MXqk3A-ey*M0$(pCf`h!ShfgNnuwDTuW zqx8B{Pu&OjTR%Tv(yAz=IP92wcHYwGhJx=f5*`z>es;lCaOLvV<%+PeTXMSTOle{q zbv4Z^JzdUM1HGMgCBP2|4pNwy zYhp=iZjI60Jcs@vj+ZC;epZvW{V??q@vUd+WY0~vmR?npaR|%CBvLwVZK-D7no9al z0+&YQAu+n7151%jSPZ)=?;MM=lr%5ty;H`xh3diZhc8@bSZ-9#_!+o1ntza3ihOqb z++%@6k>)JMeb?>HjE}*GZoA{tF*%=u(xT7B?ONmcw3BTb8f?U=c(yp(+S)ohJG+P( z>}aRd*|PNV(AB}HzN*mF=ghi%TQ3KX*kG85x9SXwM9xw(i4&`MNCxb9CN1tR#;hF_ znlyYOOJ3zNP0RA!S(h_a68~JSbK`IS%B{QaobGSwlGuUmZ_QvD)v^|zH@GxnaJ5rd zWv=s=#)qBOB|c<(@;%FlW=cXwo5Q$-M@p3rKKGNMx8S3McWo}?63T|uCz5*cc7ZIRGB}GxBuT85i#h>}>q`BON z4mmSI^NIq`tNUE4x~hS^tJCUoWS?Uv$Ol!k79MZklg8H1-K#6Z!A=!L)}SnN==lq| z;jjS76DG&{ypWHx;-go(ooZ&4+xT<&F8iOtATO!rX&D;NN)+8hd2Vt&b`{+aN}5>DF*>tjJiHA-vJH%=EI` zvV-}IuQHUhA4(!0xQB&4r>YB^%)O3O7n~%2bK|?E{;dyi^?CXB&M(<1Dt=+j+@rV= zw*=9J;OS=Lqb? z9NuCgvv1uwd!&ti#wlUV-S(E=w`n$pbSGVK=9N@_v{~M_ohnl=Fdm!q>rsPYlr3Q` z)TNUfmK7g7)kgO?;FJJz6<%WZjuAHP3416xS(xPtb*R$Nu?B(4S7yK%Zf=2s9 z2W8OHJ8k7fg+iMjSG`nt(p4-;P8Kcy%tNnU^-|U-cuoFQmo9i1^YcTDBWxdCQ7YA* zF*OyJt3mP8#ur$*PwzdevOC4JC`~8!0b?~6m0p?I`4mEKx^4N2l*;Slt8{|YBYLm& z&JSpK>AX35&gk8BX?vYFhUbiKUFWygL~?FjV{v0EYo*GU6{2bjD$kfkzeJShPDj5n zq)61Z6BQs8%@-2-Ip-+?x3t(Enqc_385pwf*`ecn4cEk^s>~8Z4D!TX!nV?#x}Kuk zxXY98J(_(_#NeU0j)AD{8IOvSW~`oks|)iJTeqwABugz%rnzGh`wjWDlMduAKZKB8 zo{K)`AMqu2OG^@%%a(t(Y}>jGSPNlg@jo;~qGHsXN;d9$4jJfM1AD=hxm~)}jWQQx zqdRJdh1ClDdhiF)vtv3wJVS>L-5gTU-rqpn8!0)%@G9Nd=N~zx%S>d4XeHRTDz_is za@A^zQQh%A=92Z{8;!xo71x!np3T7RPv9@k9eqA%9@E{qpUs-jH$aVuL^-URr-m|P zxLiGchWqk^ZJ|$6-`A?k6EW^uOl13qlJ=k?YoYS<;`AlfA{YEz`sjtp%jSyH9j5Q9 zh83H>cWrqP@FuzJk!M{%6nde{^j+mvqMae3bK3vVxDPGOW;Vb4Zlhu#w(_3OHSFo3 zQjPB~cB%hETbQ@Hbf#ExhlIR84@rep_r+RA=j6~2MBf_&Ej>HUx?~(h##1Y9>~RdO zxZyfz9o?(xvOQ5SQif+;_92IPOt1EvJ)(xpl50#KKXK$lXPS1r_-C6Ka__*KZ@O0% z+qRTNnwL*%1yN}#MvpHl+rz?{x`$Tlln0RGCTjV0_Zts0;Dw*S>2X7uA( z4N}a(rhRC6F*Hz~2I)JoXrwJG&AWY`WcYP@Ccuh8&(uj7YXj9wMSF^@Y4J=4ji@^{ z6=O{9-QBwlE2Xi+p*Cyn!uRMsZ6SU40!!~PM84a@aaNaqhoi{gM>4$+(_C$^ z6=RN66MI2X_uNWm0^-ucJn!Bli`Z*=BQ6n5F#C zDRh*|x9&Z;*=Ni@ag~It)rS;5BK^MWE?;xPv>z!}^x`3l59ZhOMjs~_sL~s#GD-=D zJ~w_r(RBLSu8siJZ{Iy%-wa%SfL`D$+VOnNqlQMjqEU&(^E_2xn2F}mexJr~mw zRwZ){;RhT23Y&SxFnUth$-?0?QE}0D%GVd$8AhFFWQjCgp4}4m&|LLXvaLCDB8TBE z4=IyQ$@^L>7xzxeC$?FaWXS68WF9=pN2V~NQ(HxLKEJUnhZ8XRAHSKb5*J3Qm+581SSLR#Fk(l9M?q?$ zEkwkyk0l~KB7!Y!4Mr}f(o9G~dR19f`N?G;A?e&1x(hbkdj{4H!JM55XO+Tq>o#a6wC)PFnN^3qutz zi*<4PuBW}io|o%_WP^h0|0tYL-Lw$d3|SGqAXP8z(`&JYskD*79i1%7s=78uRl?Nr zpgS;VVYIvysUxvm4>3@kavl%-?z)hNMuPn=JT9|n2itI6savLbZ1m2*^#QGh!M9!m zo<2$&qN`G-QP6Hrt}fxB5i0_{3RDSG&J%+dk!hIN5-ZR*m1auQQv)*fqfq`NB!2mfk#U)C6zWf(=gS8PMRl-7N$2ROw1cX zsZII`r#!U8d5&&RNj$P$)y4KD$vzkB&)%62(24Tz7=Xf?k`h^t?DHIYdRgUW!&njV z5M3>X;B2lu(FEQ=nBW2$*AT=>utTX<3!$jt1RkRa+Q>|p|EDM>CUNGmI9y$xA7y?s ziFf+1i21MDD9DtBsh)>N?9jE*J|&X$5!fg{i$fi_`)(rdlWd|=dXJ{d&~V5 z*PL)<$}zSS6lAKFwjnS!%1@K3>IHfyi8BR^Cd7lopm-oy7%Lc~I39pvUAH6Kbk$15 z>hdtA!{)J(Zf=e~?pWr|1$Kph<1CwP4^yt?YBo&dR3$5DN8ki~-bO$pRs%*!L^CB$ z1$ou*K6t}bbv2c9!T|5w+9a!j4x8>0_9VfSU9V~w9*FomW|n2wa4M-?owm_e$5PM> zc?ir9!~CIzJ_KiKAcf+%3<|me^DsQXZ=e&x56EbqXtcB)p_q zP*{`KMSvzUr4NdO)*&Dx3o=;*0#lViNEQKmWMd3G93Mhs&`zLv@~X}GRW+4gnD|); z;D%(tDS}PNFakn(nXqS#B0!7?MFw>LReHSjJ3lWIIF}eK&`mb&Bjh3CB}1b`Ze7qR zNGs%VR6H^~wFxK}A=3j0BL^`AI2g+Y^Q~(#D((WBZ61g+GHt_0@7(!ULBW3u&9thE zDlw-T&{MdOCqrl+2nd97K(H~0HB1b+vcfU(tarC=LF>?Qlm)_^8^Gq z8DttwQE=qSQ=mvqBFH&C2rlrFtEuW@wIyYOcJF2}Pv7R^Ru(x+MYWIZD&}u+GktP~ zeI!`GXp)x3B$h%zzn~=}Bik@B-w33q;9v6DHw zg*-3g>K<|j?KU${6dRsZjdX|K@&21Acv*?8pe2NX*l0|daTg--4HdKmbLBuiT8P+6 zkZbAzKmiXxkkbc2YX?1ZV+X*5XpV({VqzN}hikl5|Gb%${ZB+&+7?(VsvH<7>={DA zAVaU85uS>(g$hh|=xSmMTDeq35uOqmri!pGia0uH1>%lQAxgkt@jUL`%%i|pVn{ux zs3;x%x5xP7{y)=?{$~jKy5*(C@rdhNP`xYZ7)n_PbtO*R&FY0Kh&n|`SH(dL0a*h< z91vLA+wQvT1KB}!1Cz2*kz%iEQ;)-xi)_3zBDsJf1pt#`EH%;5o0h9n$oIuzRGJN- zup!g4HKPC>rZ8BkAb%i$=v6yf=F`3MBLh6oROQv>jk6 z1|SlID*`4V81xfy%-T3C*l0?(MdL9yH}~1YFtz_(4McHZ(TLu^j-HXC zW>i(zIwQPHxkOYsoCZMvpxA9T8V9R*jxgwIqQZuduw0GlFFGkblC(GgEFC?V)_vz>5Bx93*5V2F> zhrGg5a-~ihYc>n-sL36x@ZdO|SnkZzZ>DM2cbrzHj51-~({nujz)RnjHhg2`qS&qX zm@>dFb`Et9_NKoABbhRdNn*YLR~~;pC*W5n3SZ$gDj@Y433*Zsfp~}EC08oKI|N)= z)=o*@U1G8-_&Dr{Tx<$BBri+OyfFx9(mIlOw{U8Zr~8g%g?PqT^8H)pXUD5KcvQ-F z?R~~uG3M_S+xh?)MsS$YPHy_xJk9+3H*7~L;u)+K7wjog8;6Tq+A^c*mMqH-`YV`Z z(()*2YEl*OwhgF!q+g74y|dU^t>Cd61^@?h>5~!;S6?F*i3JqEOV~EK+iL4 z1%y*E+;tfi*mRyeipuFuuD}zlxQ4UYg$LJIu{jSmkbsH1oW(7dqf~-R5&q)A|YV zeHSeqbY*hte7EyYd1m`0nI~3O8joSwY@2|hzh1sI`BO3=r{xWLj4A}2uC}q9u0FEQ z4b&^WV+{0_WvP_|>4g?JYy(4d-LhYYr-qZ6vRS~#u8tN^g@75tbKa#d9owVaG6S-E z8Vo%nB(Su*b|;@Y@Yy2cVP|S&-Y2u71vA|vV#{i$zhoVGaa<{yL57_KV?05*B*#z{ z5hP!iCx#7T!LyNIFkg3Hh!&YuB>q1(6N2j8z>3-y5gtQGH~EqZ3ls`d>U~^y4A)2p z>ZBlNh?Q`IF@;MZhDCxpOF-le!y;G&w?o|WzPUWjWnQDDF19>Q4`vTnROvgkk!qE^W*W`jt^AW~}f7HCN_pMVv z#UgiFs|@dVf86|*hJ^60vlV(yP9jWfFRi7%Y)Ico`DORsR7X8VYDV}Sa&VE21P)7J zb8M}*jpfzdr(i&UJL@zN#s$rhSJMR(qaQMC1jdNy^Qg_0Fp|%JzxjfGZ=?m|DR19g z1Wc2?d=$`I`lfKmZx&yI#>xVgs;+kaKz-mNuX#a0iWO*y9S8@GSJ*nOZz{AfG)?v; zgzBzsMkA?-s4{idylbk4hL^n?s+GlZR|WR+t~WW=j$JUsPj@ji?AW{igye5KnwcC?_AiNre;1H5blZhR8#wB$z&z+4pq7C~juBYCMliy$8Yoa`CVz4RBZ zs$0X9clO+A8yKZ)8?p@yXG>gpTp+bAAR;%Lg`LJH>k<#)V(F!aI{fQLUZ;9WO{9OA zA$`APmuI1Tf9u}KoH>hDBIXfbLTSVASKDAes&nTq-L9Fn*Ws%^*{M=g06We)o^&=_ zT{3!cDmO+`%?LLBthl#h&$_<^&nq4Fa!S~J1nw}H{H!sNn_GSIi>RI6fpJ+`r8t(! zN8&nXyQk(`&{7qyX{g6lwa1@0;I~?iYyf&IG^Ll;r{S(Al*4*X8Mb14^ZJ|3eoC!L zu1d@J8LX?c;R8HJ zXdTBAcrUYEwpOMwjHMtmC~S#AM#mcD5@!!iYgHP<^sR;ITg|F?gUUiH6daBOX2UjD zIngQ57jJ#Vh;v6toLn;ofUM5pU9!6Kt+}WUBmbeC`=u?yLIUGP<8&vh-SI zSy+6v)7%%w{M?yd*YHu**TTgk5oyz5yf4%#M6*0@z3VE2drZ-LFt`x9gyoc~rBjQV zDNoRQ$O!k;T4kx3qxUeJhMaUdZ-upsVQjANVtJ}H94l$yguJr(48AehY@Rf z$Q|nXxc$X#k-M`YeT|KEc`b8g*X2a6b=#||ujRMl5p9HOcuE1}M1>@18pZ8K^zsZc)EQaPxc8>i;i--6jl@Qi z6!dIXm^(lb&4zJcoC@noI4^J9ZrI9hKX9M*VyN*0FZ1h9cFMp0ewdHaC5^YJxXty_ z+T&|C^3Ax|@0oa~#XRry?9kS6b!$CCVz@&u7I(*d?PXk0L}3IwMbebQNLxC_H1vu; zPq=PWuGA&V*7BQGJjN638AHPZ^6IZgQDggv!HsP-TF8KNg06a)%Wmi)(sVGD4e)5u z@!4-fO!q+J(LK9bAd^Rwd=~cZFN+XUhdckHcJvr^%M8AgOsxhGmM&jaY%No2};sYdYJA1DFt0!tqhc1_`otJkao`S)eg0StC-BwU-Cy z_AP7{!%G4Os{)^9OtryX>}TRzTlA%ws7~3e?e8(u3mBVBJCgK5v!lw}Q`1eKi&b3x z&eHcMU8gKg-qQ*@oza#WP5Cu2kDIxCV!hM1^SCv(u&LSDKVmoY)YGBHD^irs$r;0W zQjsq2wD2QtGpdnTmVt}^ZsqBH+-7TC{2K zCU6%*Feljw5KUC06)A3eE`J!AT|FA6MVW%0h%QON1)bjecx4wTO$g`IvS=;@XukAg^7UyIX%((!oySwZq<)F;>~+jH7i;@LR3cBCkPqSm(ulBA-Yu&9Y7P3P|)%S92?VD#u>)H&L{c9$#4HaBY3l+~3b$m)iMOCsjg3WB&{R_##QjC`sLNn%xWnjJGFN?%xG$HnM zaO}x;166}Jk)K?dP&bbTh!2oyU=F5w{n&xv;3H_OG|pZr*Dq|z0P{3|nUaz+FmQU% zp?45-f(0g!k=Tfl-k;4>LL#D&W!lI2JZ=aJCbxL$CC^Te=WcFZKFmYS#$wIAEc)(l zp7kjtk~;csJt=C^F1KCONkC|ok8}eK4J2qagCfR76l*#^gY)hRXaGlipp8J#z)XRm z8YI|x$GFA5|H4qorJkjaw&`+T%N+sm8gK<6ZMw`3W+qN0B?M}Nk5MMPRTx}OI<)3s z=YSdBh1GTHI3Sj?o1UF|3lZt-9q}tW?;?H`i8I(h0LQZrus9sbjk-(qw@Mj)=kCpAh4Mdh| z%+m5`(F?%=T&wDS;yhaNVEUvCqlHlw&|+BO(P9syrFk7;rmP$S=1CE%yQ&7Nh!u-D zqX5)DvPH1;1zstG)&~aema>1yn{`I~%=DER(Wh@dtF8z;pJDhS?zR2dskPjWyibR9 zlAUtPog(wuGlmVHHZvKEH7Z>vWuht^zBO4VJTDgMSov}SOb+PKDv5~GA`(bkaP%T5 ze&!9O0QZ|*7P0t+(Z;}V(*{nCCD6*Nsh@-ysKp=?&IrsjKP!YHHJno4C3XL@ae!MIUGBljqw-&}487PP7s*)fE6W~aQX_g+9 zver}At<2^+M~5k$1b=fsT5`Z1KNG&bq{^mL+Z0~p6B5;wtE4oqaBD)tyOqp~t+V$&Up+yrT4N6Out zu2a$WCIpoYQST7nr@aXySS2^?m5633eL^+=(_U53kPsW;2)H>uiG$4%ad+Iet@fwP zolJdj)BfayuImS|R?;~)_4t+p<1hwYO$(R_s@(>s2p;|YHVH=;?O@)4tB!?E0-;fabC{>n z@;GSUaM1+LLJJa}c*vgc)d-3rAy1MJ18^DY*#_baW68cS06EJm9Xy=8*qSNWUwHeI znV=F?Nn$3MzL&fH`tD&1+9dM4{l52?kD@S4kffkUjzleydlxEP(Kt}vov65ZKTIxdT zy`UgA3)7KilgrWjN>a5=J*}Gx?ojT6cRkbl$<}Sw8r;cgR6W!o+vtJY#&VT_JH-yX z(~+RV{F_#&tOA(KLdRnadLfH4jGBNJWnoL{cb;=G%1?t&UwiAKx!>WGYs;tXH+;*i zXNzU3tw{TJW^<@1)LiiS<~A_-626#z6I;YiHNT1}fgMs!zkU8P`mwn?<_?FE!d0Ds zd5SmM$F)Hx%%#6EAoS+ry?`rlag5p4Z99xxwjT z5KeddlO{tIU^oU$SWB3%a%@@pw&ALlSa2Y7zu#RP`_1uVJq|Nkdd|hUVOdef z4~#W*4R?)yNvE8?NH1gq13YK6vfGHcEsYUm{~1J%@naqu#yjSJ#~G$?vqT(aPrOR(KLK0{wGNtgKFS`B zHtQ_$=lUhyal`he>uF-}5sj|_&l6&U1HOAg__x?f^H>TYa<*YkPJyF>DTzQ2NK6_S zeN=VNGeDdeM3_K83z!HNcSUBKgBQnd$!aAnVD3xm>S98L@IvUFoqQ$}0+w4;6|Ob( zFV5@DJvjZQ!l5HYYU7}g$*a-tBx!muAoN^1S<-6N>XVA$TeEe6Vd>vxCS{yL`i9+> zjOv=i`i9(W34*nC57_KoZtL0(4R!W1H;L6h9-2|5pkT}76wueArBejMU>kW#;xpp# z)Fh7KB;=p@eh2*<5S9TL85#1JRKuW7zqn=2pP4>4i7#5lmuKa=7Jf)M2*Nrjw$pH> zYh#`K%p{l1HycT4D~IWe98I2N5jMqoS-oKG4Xhj-R+{2~-LNW3Hj;)KF%@CE3iX0620n4H#t`I6CTX59YecSu0LT>tO28Hip zn~oDaD3!Rp)t|4;vR~s@$5ek^Fjon8U?j-D0!OxO>uMDNMgji$CIUzsfGx>{I2@lA zrDJgW)+dse+#eozxz1ldZe)L8;$E_j$F;gi$&Y-!u>Wrd@>-kgu55rLyw=@Da|bJY zDtb?t&MjJ@ydgH4N+EhtJ`yp)KF!Do0k3}+679f59NdA#JUV+gphF9~gB-L2OxDqE z#$zonzNXA~2>M-QE+1dzyl8Xw2NC5b1$xDYD37dI)>ra`4TnJ#z_7Bl!XDop>dM{x)7)sfd(pqs2fd)GDf@?1VI=@+08gb)W?kq z#sp9Vr@b%42W`X_{X|#j_vVx^E8^>RWaF2?LgET1{DZ`5@Hll_^hdt zM|?j&@f5^d>6?EBtoH{7(zCp#H>OA(x=UQ6MFDaqfk&{!+6w#7GZuaVdd6(<62vi@lGv7NDn6^Le zbvV6&2^tmGc>rdIFpDw-Ed$jDy)+YdJ+{OvDGpWecSUT5ZUV>fxrxE0<4Ow}Vx9oUoF7xn;6(UCrt_tj{`if}5iOz2JTy0cE*gDvx zr&7$OBWPD{zNix%9!z=f85(LLg!B$8QBZ-<8?tRzYQ2qhELepTcAy-4zuf;to^Y1bxko17R)XTF0T8pr*{SPtjvB3fXzYl{@ca0@D#qm??KR7 z?>Qjq{m7)BU8fPhIbVxNhWqyqEA?gmAhH)avX#y1a$jBL9iMBPTJjJ<{s{lKFdbq} zaQwG}Nh*(b8-17(5_-Hr=MeQ{o+wEYnr)umt_yEzur6rzF}$|gW&PXF2s$tXVljyJ z$>}nPfxD@(8D5sxT=WtN=G7RsabWITMhFQfgD-VP$S$xtkSjr$Mgqh8f0_cW8msUZ z-EIFiw)^cVA4+NYS@+ymPqDYY)PK0r7gM-H;@BdGvO=)pD$QbM$X*k>A4DfH#*+(l z&}qkCI!!O&v9iHg`Sw-ip>NCbOv^}{TCQs}1X(r)p*CF9lnXLnEH14Hb8gQN5}$sR zldLet+SEvRZzDjt(U=w`$?<0$d?o1`7UlCs?~Cq_k7r%0d*-Sv%yZ$z8pqjM^>_Qb zzaClqe{}LZJJUoG$G?C({?_O^-KHnSyH*^L69UMrlB$s-1-0-UOBSM!Y} zWg^nXg!*9gatCjUR=B^PKXbcnCcIzc1mCj)w%PXR^x>qcjcO$a>-Y@D7gjDf*2{7P z>uoh=P;eK!uHc5j94u=@Xz&7XUK}o3zNJQfmbga}H68U0&wHX34ZG)k0q%3|U8doFdV3$13=q&ofPh*GvRwD+$<*=OU8$@MQ%#?Hhvp=QP?$u~5@0f;`3k!7WJ^#WSRsd$ zsl#i+$&{mXRk%uaK0|siy-oud(+L;@U08hqBlmih%YI(~%E<38>z@$}0O=*T(;6xM zGsbAlhq-*ia3Q;AgAVE=n47#4KYy)Zkg*Md=&M-kMS*i6m&sIht;1^+_oBF^j$M#I zk+b#yLTid-vFhol2sm?*ktD}ldZ=L7yToEnZlj&HDGVxXNgLgJ6Ki;Eo=Bn z@GCXL0r4wEi(s#u0>9)ja1souf|`98HDT0)&8MJ#o-lKQ0s4?u2h5?ZmhY%{5A}1(1Or_|nA}o%6O7DX1{B(2;=nmn4>e{9Mr3j?G98@Eb`L z*`Z{-5h`u^7D$x^bv5-9qCfhg@lEfSZE25#;^+JOLbvNL{_D!OLU0_aB0PGhZHT3H zFvJ*h(HLGChl$`FKvvu}p$?S$efZ)Tl%v9X^dvABK*l2rF|Hs+lBYKIHMzS`m28jF z&SiQcQ;Id}BPn7j#TviUT?CZ@jSNI;LE>nG1^fYuhmdMSRdqRTAf|#>R#6_+HB86z=E_4v zPU15fmZJ;N-7$>t>VGrOH>&YQI3b}HP)9>R*0C4Tk_gdG zBX7!UmD^jF7smbDOgA3$`3}qI0!z4PX14&WsXvF<(b+9D{ZWMRA6(_CRZO~tjDN@q zpqSVvkegx@pLwNI`U60-r#cu-63%ANV%lYHLL+YNE{ZbMYvRh_x5=7 zSRG@DN$d}zroo#$kJQW##E%z>>8N$QJY5|N7M`Q0o-q`*!cSq;?$fjz?Y4XAVx?`^ zTFY-%KBYE4ntQvgZ|nzAC_Gy3o?q_7|LjAAm-N00``)NY_uN}gAH=VpTdg`4ucR7( zA>*PuOMNTqxTLFC}Sc$rn zt3*uC*Kl^f^Q4+!iL>t1vvv04Vrwbp+jB1*`gZxt)+y57o%tO43K{>?DgD{0u}Z0R z8Nq1hn>ook<|1)@4!n3`%jIHM8yITSrUeF)j>g@}tvbllU1%R?Sa_z+Ht^XkU#Y@$rzwe)1Mw8&AFteqw03yebT@sB4CDdM zpC3GL{DR_!9sJDqIF0jlxxO^xt-vDw$o>^4n-3v`I)Ig<)-i<7T(#o1ATV#`sfi zmMe3{PrW=nDpIal{Q!^9C?YM1K}d`90-K-^CyKj{}1J{my<5-_snyfCr`n`8N240$8e zU(&sF1fIS9P2t1En0sj90pB7Z=h!y}r(=B=W2&sOKS71pzbQ0cgqA_!?@OM;4??_p zuM}5!XN}`xt@>ce^Y+C;&s9?LI{(M<@S`^RIgNY!-Yk7wyikqYpbVxKtL)iV@4w&w zMt$Z4lm<=h*z6k8`EjJ4OexEEa4qDU!sm-IHShqOs3HRsbKfeHvA6Hy6_Rb{DXTdS z+Ic%u)xQNhIJw+yNb;A2Ml+#zb`yHAc@q5A9E$!|=J?MOllQ9kk;k9{xC1JHjw7`- zeq(25aB;n~QiT&w)|reSAa6N(RO{5f;KN3@d6WH|!|`Dn2AYB;&#(H$hnwZ)-XYT< zT(9p%uVs%c+v*Q85JzD+#lB*-gyQ`vAzSI{9XIiH*B1zOzx#nhv*T{=br zuAG8J*F&b^X>Pd8%c;tfTW-uG@xon8U0zbd1(l6p{?u@ieWf>=*uDjIVC_gr%}5r z@PV_`xt+#0A^RB_O(1)!7>~KT+q+nI3^h}vMq+o<%huz>?V7t<7FaNq3Ky|*ds7ni zDBDuw>&3ASV@cw6NT8cxssx{QaVwlWaj}t;5cbfc95#=0%VCZ2+Yz<7D5{3@@beG~ zki-qtZH4F|0=$!sRaz8EXpKjX7~TCTiI|s^vr5q-_PXkf61~D6a#VC2iu`5Kbir+_ zb?&Lh7x~FyK?X)UjRIe1*V;sA0JL1nMKeCKHD1^=)NW{{svZMv!E{Q+DRDg#5Yxu!x-&?7Q6*>=Um6o90YAgnKr?) zLpnZVwqZKvIr;aU5+S-a;&w1Z6B7L7&}apc4(Kzo6V!QpJVfT%wbt1UngNU?Fx}b@Py*OBY zAd0LiQxl8Scl3bp+F==Gcehi|3p8~1`V$Xhq+HyQ#s;^>^P_8~0-=6k5A7s5Nr=y> zb4NOUK(=A@sNL{D@Mppzm#6WFf9GFZ9Rj#E0>Y4QNJ6t8pM9q23Wl<*z#gs3JF^rlMGV@=qZ zVx(hJq>eFz+fdiZhE}{`1w@LIGb9)X38g3+f&n02`@e26@vnA6=Ngd?65`(orRd#3 z7D}TVN(}$|4j3DoH$Zp;q0^|r6nO}VoIsK!8oEySPWaUOV^0iUK7vC&8yzuZ)b3vY zZ+l|=&uhL2jU1q-hWH&2m<cwqaZy(w`%Qy$u>j^x*?`1DidQdFFIs1_2n% zDql;&JVsL^UR5N?e2Y5WiZQtf=YbkXM~fWAw>@z~_e)l4Gs zI3yB0xOD6dO}Z*g9i8NL_PUGwfp%@FoA|;93#r9`wGI0Yaifr}03gP;qlds~l8%9`FOON^=OR9G0U8z~cD1 JIOfNj{|ikvViN!W literal 0 HcmV?d00001 diff --git a/src/assets/blog/generated/eks-upgrades.svg b/src/assets/blog/generated/eks-upgrades.svg new file mode 100644 index 0000000..fce2028 --- /dev/null +++ b/src/assets/blog/generated/eks-upgrades.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/blog/generated/platform-audit.jpg b/src/assets/blog/generated/platform-audit.jpg new file mode 100644 index 0000000000000000000000000000000000000000..32dd09253a1c1891f7163570393d46170d596d24 GIT binary patch literal 92968 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�L5kMc8g9e!4J>Z;~T8!QD7f?&i|0 zU{U;9V(6f`SC~k}I%UUEO^kgm9T6dgd0bXZ93o81jQIhhn0g&qH9VVy9-l~k8iANT zfEkS6^o0N0$xB6!dj~^xIu2y&ouT^_IXQb326}=;dH1p`-2+``G|SI~tpt=xN<*NE zLbp@0fzMS;#H(W$Sqt(8Kk>G+4KbTOPL6!CbV+?FST^bPrkU23C$J>OeBt4J=Y%nm zyU5t<*4xs`2|`Fw&&QXZ5fnrIDj-<2+|vToShmi5wHh^6R%w#1D?+30AW~C2&F1RsHW8yw-JV8sWj9)1kY?Z7p&tM2saC_h7XL^yC7bVFKri%hc^Y+!A7!0v zo(ANwQ@3Jps}oH%S*G7Mr`)xy3)RZ-@p!6!#>Cbu4Fw5SO+<|_XM-sOMA7VUy%!pQ z0^~9KAE=QQCb}ikw2H7n$Rf;FN%!70g)P}-P1;|64Y@OCj{Ztrl`vS%64S(Fv7K}P z4+#%%M`MM^PLh=@m*EGmQ(iWyDj2VpA(2Y8Y@B)3T%#*mGqx(&yjtxJxHf56k72yp z35@o08+U{w&8E>~bVjnt-q4Jrc^s@$O7mvna=xso@3j19Zj(JkqsA`-=g^8@_bmn2 zWyUnhn7w-Q`ZjnHZWohYO=q{?`91RYKQD2pgxR*N@1)rzY}4dQJ7!Obt;o?-Z)sI1 zEa}PUDJHIZYA8INs^qbVN*HN;A(3rPgr1T&gw>$5@#FSv2km-Of+2c}F14!FhaXh| zauz%I*8D2aTVWfsS0IexL9^1?&z|`S#YS5FnN|p_j*7GqMjt?P{p>p|xB9s@8R!o{ zY4_?x6OwhBLK;*#AF6dV?Sb)IO4*QJxj*i*psr`-PEqNyxO>D(30g{KqNO9vm6%r} z%pu~Md$m=j>nqH)+Xy3Y7A}?JC7blq7Es<|Kc~Hm+QptQ*^E7)&8ZO{UWKzN710$< zG8us)QiPzuf`5m}wqCEjAgL;LJ7TI%PHCN{AKU)&H}h!{7M3@#0Nb<*$Uj`9X^XC2 z#bX96D9!)FP7o7=nYWdtE4!Lg7Ifs3N_7*k(SRf4t-PhxrrkKZ&b@V;EDI+ zFE~S2!^e5?#u{Oy_gE{j8$Bfl1W0gK$&eLi+1MWEn*o6U4PY_a9K1i2p&uTQX=_e) zC3>^cmllT5j8`MM>Psb1D19;J$D$Rk)n7-n1D8GxS+5CMLiKPt37%FS7^1`3sd%XU z)Ho-u>m+(0$z5#-J)1Bf0ysYlv@$v*m;_P@m|jUJA~F+4Tca~)tA|GgMPQJsGw|F= zntA~>|raXwGTn~-Kz)~L#P{H&F;NR_<|sB z;;$HN#&vr3I9xlI=If=5Oo>`dRLr<+RhgU^zqlG{e=Ye5@bwz-4(o$5@@p0Ky}y1h zez~)t_Mocj0e7SSmHB2B&1!lz((aCC^H&YASe*x+xiX@ zWyR&F;~sV|-*4FYCd{h}5*B>Rb`-k;sYe>6Ewz{Szgo#YE3;(&;c22n3>=VAA z-`An#A6EJax*=TkOvqBR><{^STcdaHPkLa+jBp9Q7IktV7eI68ZRsToc3m$a}D$AF~v+^LiyN~!Hu1> z_nZU2&xxq8cXzw&ge%)oj{d~^F~MX!OEZkS#QPdgZ2ipMGmKH)TX2@M$HtzqJtN4R z|DCj#id{&lS3%|OWl*6)=?a*Icv^=abxeeb4o$ax$@;DhLjrcrxO4jkUEB>2#^9xg_wKc@gIQ^w31@ z<`cg?i<+P!M;e+GE_(ZNM;D&#BK^iY|Ne0Tf9qfmfrdbdsi7TO6C_LE<4c_M`DIjm z{^#DW$bb79cNvv5JKgfa#vd?WX?%DPh6FsX7I*|K5)v}fjrkJN(W~Lpa;rPL5HU!a zAoBzUaTz}wmC|qmSMtVH5x?o=d!BR0G&ufU$4x|r074aqxBJWd+^<(Jv-OdNYAxXI z))YAfxB8lz>Vz$sO+1yEpIf(jQ+^WW3)Wvd@gfoDb)y^^seX~jr{~j@%GT}Wrw!FA za||!mQFRx|mwrjTxk*XUB93`g zHf9ae&jQN7p!Max!QOVvcwUMy7Y`pR-5%5m+-=6MpyMMA&@W(ftedg1bZok&)e&4p zLHc}ITsAx~dy2MGTL(TlqtRS-XHz0^$nKi@ityb6Vl7hfWaiVfq8T?0Q>_|GnqmbW zcVnkf^ZkXKL4Jvzl9J|a%;^`D+jW!Qf6e=qIz?*GM}EDMi|=OID6NAGZ}(5AP)&8R z_LN71TS>`knz}p2g=-GE_7jGGOlxLUm4$Q0)@{Z|s5LQn6k;zDbu?rDc>7pK)ni&y z5Z_%|YWQa2KWPJC7*JtOZ0kkuqt`c6!>*^^_eNM$+_U~>HRh#n!c&_qn3((+g^DtJ zJ}}aimFYFnrao36AmcpIPd;cm8c0hV8)U@Iq7dIq+o>fYfnnTH5DZnz8!V%6eDwI9 zRt*|qHAbf-*Bt5*s$7UM1M*p2(4uC`@Lt}-}8?9uG5emcmyEY~;iv zZgTNFHP)@{Tq&Bs=t`oXAY&_mcfhg$#G%sw@t?w7@o?g(kgQM;CwbzXk8`ockW5m&1yAn6 z7)l6g=9adiy`yAv#E?|Vxi$j3HDz%Lhq*~3*wsBa#>PGw197`wV zh5U)z3mw$$@x{l;+h>OUuHOD2cSx(h{ZZjDiFCoGUwB5RuwRy@mmeUo5Wq~arVz8! zUfNm16{za1K(7Z>bp$lRT&z|K)mDdQAnvat%xY;Q*1e{^H)Pr?h2hPD2RDNhv_zy3JUi~iud6`@hpvaK-wanEyifTRogy(XooM3;Qn>05%C3_A8k@*Z zZy#qePVj&EXcZYl^8A(6cu^jX2CUNuMm`#$5MKp)leLVG6^8uTO|FEOZ=)55FuC8& zWJT8AX@0S)nVO`+%1JDQ%!j*jwlJuw1WS1q8Aq{W7~`NEp{K|*YDw!<|GqMVmP$8m z61G$j?M?@wmI{7=5f?@tG)mjTdd!RBE>B`d14;6G%!f(8$%prGzpLdFM?nddT&@|y z-KRfrV?LMWi0~I#-6`#c=B_z}C^49xDu$s?;Sd%Sw_bqd`{xk*#UNC)B`lHC%wY$$+r&gT;`yBu+M6`ciexev9P=j=FpNbm zDQOZ-tOmkb=&IbnZb3GZqElC6h=_YDKKh8TF@YD=gL#DeCFanl-U@7|dcyMZ4H2;ZY}AN@xu6xCl_HnWiZxBWXbK1Yt?iNGoOO|W$&QkO zFVLJR|R=b$KAZ#vp)t1h*v3aGKk+Xh^-uKtUl2Ff%DNy(DRXiGmTh~d%F z>nt5u{}Zz;!$xHa&ec}wg!}&7o7~+>A0DKEHDpI#C^`>5Q>S@`fJmXaQrGB_HtTl3plF0tP z6+4=+_9g9I;J4!#Q|By~&0Em)l)1K@xv1?0e~)iR9)9OL+h6DBj*ss#9#fxDL)snA zg@ary-Orod1?s)uLqrO$K>PZj5El6Xnv3|e-O+8WW{;_f2fWQbM_bg*D2f(T#Ct_z z7DY>{KIO78_-j8XX=aNr{kzKMJz#j%M_T6|Q?o?BNwB+fkvY7(;5*k$InxIF)&pB< zm#)>>UI5(b;~U9$raFVkh{-!~$UzW|0w+`|4UK;gl~uGrm&z5(m0i)eZR>xE6Z40V zXg5OcV0_G&`6Za2ilxWyFNs~A`8zLwr%R4@s~Z?^^yck>L~*wd6vF+}*?GJIGv(*g z%OHOj8-K$;sW)>jxZY)VQJhP1hzFOp;&$@>Lf_ZIV;29XdnFzj0H(TindmonCCW%hBQdyq)pnz5&~H{62MRP%K*`yR$Y$5)!?p@l!yp86Mt;D7>3f^*m4?TN=Lt zv2x9ZhOimt!$F*~;vq|&cITUg4HpcOfe4qF#x<3;%?vorMN zI?t~oU7+{i$JVDgp^{e7`^ptRaO;5C8{H(kM<2O}N{4>qQ_#^7w~|6e=)6UUN8*Nb z1ng%II`E_FRx+Cwp{V}yJYdp2hkRL);Yl;i{%y@44!O@^iQkd-{XULo@-zxBrGAJO zTh}Cy%@6A=_Z7vAh>G!-ZnUL%;`=uIM@-+T2_LHddt*eNDcc4ho!DlfqTP{}dP@nl z&fyR%>4HoFXQ$lJ&L{X$sFyKR#S&>a2oI&*&)&bUz>GI(f+>Y!7%lY|N;2(iB2>b>&x)KvY_%|2Wb3$jxd8yQ*tqy;)-&>$phGky*c%wp8LP;eJn zn678d0c+0*;}z(nzjB*ynv-bRaB=K-xkWtKJU9IZ%j3pgL&MRn^6ZTxqwElS_fJht zajlRMjB7KjORj9|r?@MtGZ38_0kt?fXSNPm!=f21jC8}KAob@yV{@WF2}ROcI!S3v z5{#0%(SCY}gkNEp_V{fE-!Fm!67R@us!kK{>&1+j1HK1{0lHBy$~E?O_Mk2#_Hs!HHtn}MTZytRy*qH+zI*5)K~CnojLW8YdmD`33WY(o%%JaHG7E5~1s8Y>J&#OdeXf z1R1vi2X$_Nb99m&JXio%jT84%K&qwMwo%&zb2758X~gQ?5`@?xiwMzo)bwQ#ZQ*C} zF0EQwz;ayAnF%LRGUJ~D$E$|g=kgboZP00)^N6>%SoDocZ0mP0*C=PU^7GA&ZDR;q z6@ay?pECG|)M!4#8%Cw=d4K^Ji9F!ki8|IxnNlzDWH7HSu&!OPc`n znei2fla$Jo4V)LtoVf{0bJ!dXfd$a6dv;f-R)Ieg6IFX%z`Ou+4_Ysf8}!_jIi~J= zgI8(aMsva?(Sm)24bFJ3a{P0zhGOUVW*S~s=GtWR=26|#07jH0A6B1xw$Qwthe{_l zTR(zdt3a@=0=Q(FNk_Xx$9>9190nc}GmksiOEE~LZaO?qGCi2<*T}Fhw?Wdh9&@l) ze0xi{5>Q>5RuJQ;^WTENwJ5Pe8Htdc&kSJ#-V)SB5p*XVGVRYBT*hKfD@$xz0R0YdG~|9mimFF&F4G~9)`wdq zlka}vAYecq29wEYY_=k3*uLY5v8l^_q`XZ4ZoUK_r?AwJqPvSGhcqD!$&-jhy;PS$ zB=X8x?>O5vPNoh_@M3a`TDM9NVhmk2H?1oZ(@}K(MmK|$ivZ1-P-iCu_4yS$1xPt+ z8j{l(u4ASd{xQN&rFLoxtReZOIROCD>b{#f31ae0p7hKWmWa#W zebXwb{RN2M-H5JLHGHkAQOKe51(;6n2TqGkdCuM%@GGi|>8vFSL94=GH`W0FDKq$i zljT&A<0DsW4Y0@V!Sz(wZtYh_px9Pi30VlU^G^H?{3F!}jXZS|?{BK^Hh^6R!(I)E z9zDX_SOdn`w<8$=n9}%0&(vrMK!yv~6NBq7_p^l(HfkujV68i#Sk>%6QJk{~=O-pb z?U~c4$}ix~z_5CUWISqHhr2i5;D=J>6=)FaQrq*1qxJ=>qyJCL3iaH`XavoM4($;; z?;;4B2TvyZI2$enunNVH#V;jRb%4ls4fPgmK8#T248)zWb?R>csZvq;3&p0&z64f- z#I}C&DI=2~ko_1LAANf_-U}gC7{L|DL{-unb9$)3rXW5zwfaSj?%t>h0whA}*ru!; z@c8NiwZG>-vdBeDH z7U=M~)Q1rYQPQXE*KBM9Y>$7@N(dRm%h#~hNS`z1ad>d6udqN1uIcwj4*`oI{-g0suUmi+;~~)v|aB=EXV1{k~V10GvC^?GR!HfU99B;dc!+zfL%I z*NLmYG25=oZf%1?anFH0fi-aryK0Y-3fKjsz^!B)h&gRKVuA2Zpj|c^XT&~&a_Rr^|D8YrTT9AEg6* z!K5db2%fHJAu2P`GpP@SLY6K}84p92RXrj;nFrFDWAS^y!CiQ&l?@N5?yCthFWy&E z5v~Q`R3{!jJr{A=WELL(NOMJ3gIlivP}F@!Ll|)RM~P5Ozyb^xY=D5M830PBw|`^3 z3LcWdVQ%wKVog$UEfIqv?T=B!dlZSpy}J{S2DiHjz)`Hv??;an7M?S*Ieq=2 zth>~<`MUG5GV-4A=P?vD#&FC^Dhc%!#uwSQ?>^ukBlH-6-*@YQX^=ncI}Fhgwg~*? z8Mnz>L8%#xf%5>^D)WQR=TR8`6wTa|V=@|Fs7X2PgAM|SmwmyV-6UZ8cRVhAILA*c zF!SfC+JOXXc&nyUQ(;*OB9Bkp@NwRb{7rhAb-3_qe3GCYc6w#E@8qrEQ_urSr2=wJ6RHGPnVyX-NI4!TvW~bt}oSNQohBf z*f{)lo&U+C^Z^SMg9k!r(P!K8yITIE+V$afO!T>c+b(F=Ha;~2ki0IgIp#^Ed zD-m7#H$gf;-2w?m`?k4~w&{UR^FZO?s<+6r&yb$t(CYZaGp$9v^XrCkPtf_81id&N+#EX+Y)Bh7}lBpID0 zG{WNkc;K$}V4$(v#H6b{fje@~Jujvf89&^k=N)0zIeyoK2V%_*7AO-A}1J#BD|T`#$=N(iT}b8kk*k&uCk!hmay_46=l!9hBp(DDUTN_VXcGXZWWkmm!`Liql@MR73*San5;N}F4hR2=FvbsmHxtP9Svt| z?F$V%e?c7q;Rit-CG&&RHgJs_ll{D1O~t2ojqyDbgN$XQ=X=%^oraB^v3+09gNI85 zi~#bMhz7S_z+ajMYEO`%5F142n}+LX@rT$GSWP@mnK00Oavyk3L8nQenqC8xq$UJx z0whcyS25q4Q_CO|O@WNTZE&5@-{tbEs!aS)b<2s|guh-I_3P&pM7{g7XNYgYw#DMD;&bssH zG2@s!t^@N~J(qHs){%xI$n3OuBAzI=E&?;| zlR%l4Gtbi*9Y_1YJg_LUv1O$k6xl~Y`kIg7F$MtA%);xa`a9-COszYi*Sc3w8cm7d z5JB|SxRBEZ;z8_00t(u*!WdAQgWS2pGyntVoXLmb2TYh|<_tQGxyWJmFE2sxO!M<) zx+3VmKPTbfZTtnG8u0#G*0yKZUUvn0?+)9@fTwOn2MeY#{Vo|n z%fPo~qXO3%6i|p9)!eL^5V7%psV`=e;$A5X$sO~nmzgjARYX+zIQW-ZCcMsA5wvw# z4-=?AehekLNz#y@TrA)Xn8yZyg%;0h-A+4fx_79&P&jcrD?o@P!<{Dii(3=FEZe1MAkSQ&iuy51~XS872(t20t{kron;gQll?W&~L~6da02--Va+Lk#26I?;Ao-&NS&^ig!6 zXBNfD6=*wTNzE$%kwiX_0GuTP3BYV<$l8mTQPXbO=Ze2Ty{I9|Vm%ZfP)lO$7w1wJ z}AOf>Bs0suUlAlmJKJ0&GqwYr_Q?go0*J3#pl zV4b-**BQg=_HCHb{nsK>~?&~+J`XW=y zv;E+G6JLS8j&i>VQuCgGo7Q)UVjRzwwlEr<8cdvG^KZqfKhy#9Oicw0S$S=fuNv{Ia2f zXqoy3GYm5GtIB)xoy6BepHG{@y?&%5+0n5oDcQ)l@~oT;N2+<5nkL`iAyB*ns;G^# zVAIvsXIv9De5?Z>E=iJ@iyZwT;F#VLqyehS^N@p8G2PhL$cs05w6NDHLTn3yofH%1hUew3GA~q{>ZN z+Xk5Rs>HRrb|Ro_;)+1H4gn>uQD*cL3lF&Tg_fx0q`siesp`GY+bm0k8p))wIPN@N zk1Tel>a!8pX`)cXHgHc0?PaA5a=ZSBH5A`A%*WRC(Pz@Z=J1QS4~#V}ISgQ;sI^g8fx!?bP^t<_K)+bVaLg92?Z za4#4SM`3-MA_+nv2%SK#eZ7`yKu&gz2wro7Ide@4h@-Aa)nKNCwtHg zdTPCvCxCQ^mf!)!v@^S;WR~d_0D@d|tm@Z(R_?BSUSjq71prP8^JL`=#ckfEC_;g+ z5+KvG)cb9C?Q=B^h~o$_?;79LUttVCQXQoM{yet4PW^F^hH0F@6B{p(m+l zLe!jqs~&&^XMoDG);P7(sN_W^%l(}FX8`Uu&j$@yCwixmhh(OFP}3=wo63QDmrwAa zasf|`N$8Qrf#y6i83s%4hc}~i7UD{4V-HfDdIb>>FryHce~p)ZX-B*vEu*|wtTeLN zBDd)O$||Ir*OM5^L5i@^ns7-X&_jl;CEt_u8d#WlTfv&82wK{sKxb~2CuX}8ZoKGU znaBF+wET;G94N+Rv<|5TFl>W3oyd>~1DMBQ+ON6h`~4!)ma&40PTq`E(-i!){$brs zEFro5I|mj7?=%W=2!L)KwW381RK|U8;db9&<)?U}^XOmY!%m=9cawZU6Nc&f*A|z0 zo0!~jsesLpz3z*9czeR&SCR3PL+7aA1ZmhZTKPtqjOaucG6184=(Ss2uJBh0@F8>!RrH z&SRAw;R9i(nIrK#bYpOB?%?Z9* z{Ew4f!DptkpfOw#PpxoMF$qvpOw${E^a^QC7U9MCo`%}D>xMo3n_fWUI?E~4 z3pxF)eeLF;qXX8Nan`g>&({MwFvZ(*aG9Q5g7rIXee0%|p8HOW<6d`YrpQlN0O;#d z!Hg|Gko$zUHe15;6z=DZz`+R|;WH-O6EoZJl1%2}2@BL`7gy=8J8?qkJ7940Rn z9KnH86*UAd0O=4(%9b}H=QgKH=qo8EwH?=}gOkQ67K*P4~ir}IBUP(4#( zz2vX1;k&=fM=GlhrYc$fKC50UFtiK5twK=Gz97NkBfT zLw3uEL}ShWqy7%o%t(c!YPlowlP^KLYLM7-(DLW9oUg~aJB!!#&&Fec5msHG)AOLF zf(y`W{=8|D2;Y2nXe1u{=D;-`owe@&R%`pL^vUEQ)_u~3*s~MBC&k2wH5Pv3mdW10o+KgTuQ~Zu(U(}%oxh@ z=PQr~Oc9R;N*vU}QaCu7@(0(z#je7Ogxlid%>QXl82BMvR@=cc50ve7o%$jjfuJAO z{>4|IyJ%-2be>u&DHVU(VpzTTFknW2Sjdu=m_)OW9=-t&{pT^SQ7s5H2hi*RI+@kQ} zPdAUH?KVgK>=G27yg>;D{J5txb!jQi8uUncy=0QeVw zz2EAeZ2Wc9-#LQw_cy-(`o%v7{7J;W-U`Tk^TnS<{-uClI{B9Ye`x1Vy845q|65l2 zKiB}=VE#9@$Zz)gYlB^n`emy*kARCBg}`n|%ou%8$lQNzlYlkDzlZNiWetFa>^%JS zH~R*zF<)CBaC6Rcz3VMd2;BGAF*0v&nE$msf4}(uWSjrXLjB1ef48=OS;(6;gTMak z`u_*Z|F_Bi`!4zCwz@W)->vT-_W3XD4E=ed{zH~O@4)|AV)%ytHz~jjzfOYx?UVHX zj*b597&rW@6M&zlznK$on!;`Bw*lAZ?zPVVUhXsvZ}bldxl}i~D!8Q%Us4PGI+!=k zEZtJ?G`VGrC2aDoTDmG*4~<=))(NW*E!wAarBRAfBWKJNBqm)`NhqD*cJc9 z4F7rV-pGVO@mDYNoALhB6I>hRzc>&^DjcqKyXe=UzM2-EHG&c@oqnC)N-K_x*5^41 ziSTtp1r3Q)k%<{LN^4PhC_bF%_75q4m#7uZLn#(r)G%qL#zhh}p00mDf{%Qkc?JOt zwamuVy>~Hm*SA=Yx#kW%d1Yp(SM%L~V305IJw6;HM=9RG*wx`c8%icDwZjNIvvpUd zVSG**3qBH}031b8`p<v3eNuZ>q0A6FXJGRu5(Hb(h?`tcbx@Wsf9AzARhB9}6Kr z52*{Ntxzq{FqH=P9Zfv=u-?HqA-5JR9g-19)3c^{N_Z^)!!!03Z6&tT?_Ti#RS2}k zA%v2#rHe(+`F@>C^*+|U=s-H8b^x)pQRF@2TP^T36D08 zFdN_^(k}$Nk~2}fq!`G4_%yWXb*mGN+aC$1GF%B%U-2=If!=?YXl3q@ zHL&iJ3<@lg`l9+lR*WS!GTbdoPPKedLYd-;tJD4})&Wsr_!sYrso9*QIYmW5rqs-r z1~0m3AgUUkU3~zn2+4ftMB?ClF7`$@69X5ysY@mF9!aor)`!`3;<7LVBFD}qY+@WK z0+W$DoI_MEpO_gwXqO@IIH6_4;t&#i;galy?Y9X$OM4U!{lNX+2jH) zZlTqDCzW8u#@NfU4CwjfD2$Inj)*|Sg`{?iN=caj(5}od$dnHO4H@CF`LJ-N-F8)R;Y`9ce()WOP@^1$~It~41NH2o7vJ{Uq2G+QX6;^!L z>D#Ab-86lbPkA;Y--~B89bLRMTP7sS`&N-vC+3K?Vdx`_?XTQR6TpwTZbeniDkCX= zZ(!azr&M_P|MKb{)P-^J z9uuU#!GIuXvYSb&-?YKtlhnE$Z*gCElN@n0w3wcIS6F|LQ>LTy!c_s(_InKfJHNr- z44oRXIe*=xtc2m>38?Ev&^1G6&%WbhqlIfh57HBV9`y|^`LcrP0>1TiJeH=>x)sq% z(}T+rz=iR${Bs<~0@J5)H;TMrtF?9G+2D5wAQ8J)d=lvN7tz|o3(IPkUxWMmJ>qGW z%*AQf0zr!ndJ0J&KcY83|B*VAb`Q_=@3iNL(pa)-%nTmoGL{TyC1)3$( z6{9Z&AZqwL3uA>5?I(XD)n89freq6-G37p|e{~0+isZaR9>%fmhi6)$(E-B_PBq1% zOMDMHQK{}&wye+iAQz1hcNX(TvgkKP=~rVPq$1>k?!XFc@g2z1IRoUpUrYRiQ3*Lm;6DBD=K1v76Dw_fN?leVJm92PYPU4;!YmUYAreox95uv_r@$XvVBu=R%21DM=y$`XX6lCSSpv(r;O#3cO@=dhJ z)4QTw;eK~qLy&iniI-MC$>VY0CutLm%IJ2wG8U;l@;k_-3saAc#zYMRlUH<^w0wFi zgFZbdc+qzVq6$D#PwO>v>AqB|F2!3C%9wJ)-Pwv0O`X7{XBU3Jc8BpN83jqUeRj?~ zBQ+`}L$*W^PL+lqU&7MEsxML>X*U%=(5bm@SHFkDH{6gA9J^DBL zv1j!0xPHs+;2-+QisX(5LaIdGIkdEasjsX&u*4}51(^dB7*_Zm@rH)v%P^k3MDBdr zz$l3d#Af*DLwQU@YP|I+5~a^BRd?;UepDpj5=(MQ&~TfGkvEK#A(^9CiN&gfg$7H6 z6{4oi$?Y`B;HPDryz~J@$1>c_TL+I$sC3;$i93rRVmKrzImnB4Tz$|HCvF+rme3j} z|KerB5eBlp&8Qb4s{A@S`=@aN^Z?o@+y@lbUg`f;Y<8Vw0C5ED2{X{=pt0~)otzHY zhKx>^b1Ih$$V#d#2g{d?6zN_m2xV6I8PKBF6HlW=;3M2Y7PTny7Q|nORn6o%UVh4k z@5211Cmum0zl;xkVNnj0hKccLTPBw_HY=c6T3|Wzq8=)ZOdBNyYwX0T>KkN~+N%7? zBvME$jsM0?)aas4GNh?MqDl$$u?#5bB7;yt5|2@EU!6h(cm*Feiu!xvw~dqd;mZ{# z%f#o*&~(K3Asgej?2Jize!#%U=7{C>1kVfRCBZVeQeI!Ge0tFZv$rOw;5D_$X3f8U>hH-8{QddOK?$}n|=}_+l z1c?Czc_rntsmAo-4&x%nNYqJTJNsE|Cpv>_NI#d6XiT!QLyIsCPvdkie$Sl@6`gkW zSY(3;YsB8)^T?e4Ga&KzU>xpM&1vd={M}ayhZ_41-Jc9&ewzCkBhZETaW6QA)3SeY zudVz9rgY|$mTo5&XW^S9nT>!?ueESt`e{F)>Vg*dyLaJTr@|{I0vr1~uRr*|)Gdqz zS}q%=@Pj23D)ef|sGs}t86DH}JQcrmj$^$0>GW~dL&5zcpK?5`_1zfgtm~P8AguiB zKhwojR7Js`3ob%lJIdlERclTe(ayU4U)qkfMdiRvSkEU?dS@0>EkKat(*xKxYVEhyOlzTsv-hZ64+b)a#a6I_T z^{koGHqPgK<-}d3+B60p9z7-V@mq--8+UQOG^~6G2Mzz`fzs2DPpJ zxG+FDuyei~D5t?%-i?_C7*wLAkM9QjU?Z}ylire5jA11b(33BU)P;*la&y0ZykJ5!bk7OMCS>JsMaq! z=&*9KKzp7oFO4Nb_dY-fk%@gIww-IA09$u4njTl;1BSn9LbEf+H;pPEdUf!3Z?E35mL10;B3hOciBz zGE+(lhGJ$qAJs)N;;;}R0+uRU_RE*%jzONZ{fPWSHo0R6;LbGa;XrEaGW;+?&^r1^ zrIge~-v>Y|LFE67x%U8zVtE!v2UuXqOOT8#83f5W?vg<=N)V77R3w9vbCR5toK!$T zNh(RnN=_04l_VLFjFSD&f}Z2S^Sk%H_kZ{M-Z#6mvoqb*UDZ|9-PKh+k)xVnEOay( zozZw%K-Y*=E{l>z&BifHjBu$L1j+^2x zI_0~=q_O+#K_6ww_;hgJXg*q8Q?BL28M2Y!)FUpVXR<=JIu2e>l=|6csH0TG&`gM znMQNNS{s<`7iyk)b1s1z7$l&5T zUuN+{lb}b7?m25B5>>=y1_BW;5-U=CROAzl=XLYy7THtd?1Ey|9msWeNo=D?H0tdD z3I!z1VC4l1PAO&5N9h)LB!+x`Iy~oguj&_(mT%-D5amu$^R5iSdU@@L9{>Z$qsBZo zfjItt%I!>#HS3%TzhdQK;_q|Ti!e`l3raCR%u>0{!ha>=#@JU^ZfG;#7fVUbdK+q;_vKth@Q2U@!X>i4{iG=p!UIEE9-$OL>?tVvLj8EP${#k0znC}GZ5;dbR@l>ozZ+um^s zVZXqGV{ash9?vd7;_NP49hb~o1W1jsYQJE)pR}v|%P#o8v-lw%62Q!Bw!^WoO3QG* zCJ8Ohf5W;T`6TLFZL$hWhid={UeFr~p%2TXsV?fI03I$4L9gI`w`iv$0za9lW_|1wSDs2rKIY_?$W#qVY*w!)a z(^Xn(9=A4Hn&SRuhQ4ncw8 zUFvdTPH7nOld7#=iDS<(W_Yo1%=R3K87uF$u>QJ~b8ggf&x5mn6SQl52TiJLV$hCO zW*%h6B5IZ54|@{vrop2A+zqNhP#-lPx8b;YN z<%M%stlFDszuni{5-bdi)Bkc}?0LUgEon)A{>!HaY_Ry(xH9L*RR!d;KkOrdXl-yE zazZRYXqC7e79eYyjh>O?hs^>o{_mgUWn}+VAOhfY~zTWu$ zes6q>PfbG~Hp#Nq7tU+po@@LD-G_;>pQ+d|s$$<{hF7#v7Nk)6ID5h-r`vB;%H@L` zEe{5Bz_C(km3iFUXz8WS&l_UnxIlmA;K^cL7B<0FY zM;wEA~9#O+qB@#Z`|S`^E6-Q{uY6dx5%!?!j{ zsINJqf&tES7Gb*qT5)f23ZJ4A>CInzgoaaN8lkz)KwQ8W^sb^DzUBIO@Vj{EHIbV|;YHfi zMydTF@4by9Z1J2EXld~ynE3k5@~wbjdVE_4f;0tugWT1QyGdCc8kK0o!d}2mdD}Nw zo&($!7Y)Hka+TO;&jjxW5TJU)dW_B>?Y3->ObFxN0W7$M82|1KRScR9!fc}{PQbxR zJUTcXc*W{-geKED6~WvJHeD_x6xGa;%nT=~;ECd`e153Ai#la(d~N2>Mnenvin*t>ajjR7Gd1gtnC zM~`t5W0GLyA>Y`V#xNS+>L>KFkMX%GlZwqgaJc*7KAUkszfqZQc4GB+wdN?wicb zeM?u8ARYJwcJ&AFha2bJElcnl?Cw;CB5zLGH3dhq3#0gYM^l2V1 zs$l2u>nFyi<;m}H5w|0@@3EkGVZ9(1LL6YkU?pOqThbb4-|9CKBw|5lcTes+3!xds z@+-UkfQOm~@s;?i>0}hGbP?eY6B5#!jG6`cWKxGZUx&zUrIz;>SGS?Uo%nu^}7DT?0OvyGk z?tLAM-h-i+fb_ektWj8PS2G$`>|#eA)0t&QOjmA&C~=pJ*g&hho#;K`o3+)~dT{NU zD}tg)a9_RYN$kYfOh%YAYF3%`yLUvbC-k0Q#q}+>%u}y%Kz5Z%X66%fbFim=zTvfb zE1~G^Cd80v8Wzy$m%wgsZkG6p#&yVG>IRHAFjrZz%VSP*fr^|fGy2maao?>wcx*h) z%LfvIoUNSLxy5d4IV|Xgc1h0n46XZ&qnw*ZZkOrufvu1MZx>VSsA8cLx}l?;AV0K2 z-RGfaP<4@*YDA^p6I~1OGKs&0)c6NLwha(8QDFp#WAJ_JV#nOX`N-Q|VJ`MMIqoK! z)kmV@&~?t%LQF5ct96#MulKmh#~U>$Dv?7;4x%~)vt;I}ld>^)xB#(5W-KW9w(7{o z%OiE074EMBv970M=pClq3k2~|J;kTLDOXvZ>*4c4`xeGGBAJtj7hhjtCf}cN_svQ_ z_xW6K|M1*1`+Hh=uRfQNuB@O4w-Mh*zKYu!+a?!rx;FdAGBe8W= z1xTD|ryP7;rKcZZmfdYO^bm%#UX#gG44=ZYz~-e6(SMk=(BVgI<)rl zdh8>{Af-%OzRdS*a>UUi41MDfxk?=TU`AtjO*Ve&Uo*i%<-z>QINufLajTdp zXufgr|8LHxu-kGV&qGnF33VEi`9Lz!;$dnV~$g0(cx^cS&i zpDL~K@z-ne&7k#n`4Zf`S2y!5Gd4RoG4%(KN_1qzve>s5zPM6j%;VTA^T4eBsJx!w zJ$As~RG3{!J+}1M{{dj3#jTF=)S-+<&ef)%jix1Gu;0b`(4?G7kQww)`EA*gH85Ex zTsm-X#C=zo!jT)687eO8B3PfvRnx5Up#i!}=nDiO8P#HmoVyrk$p{E3C>mH&`SE-7 zv>Mw7M4#@NQ?jQ+_|MOTX^p^*V<_9Gi7C83nR~pO7N2u{*mb|F9am#m91O~UBJnyI zq8Rz5E-84C=EG(eL)ewcHL*o!=TK0I9UMAnEM$A#)#1(rY)AUt*<1`|2861BFmhf6 zVH`nU0ZcJ84G^afnfq^Qa0iStB2%d}CXAr$AQ^ zwD@_rFoOPjVWQ$pl}6Fr>BelC(QfH3d!C}#T|=Vv zrz!b*HG==N8)aI-!2ukelpdCfI{s^PB8^HLue*MmbC@tCL^^Bhy!PSbV-2k#&WY9` z9E$FFS^F3{u@EOML5?3lR|v#1za%|%%X(SsT&)+3=R8HUKJ>di4&qV-+bpyw`4LqobCgVXs5YtK}njGA6 zn!HF5ZdCUgYpMp9v@Tca`EzOr$9k@ACqE5!@;Tz$Y9zehKK1P`IVpGguxUkGC+~zU z6-qaT^E; z{JTsnsf(nYxennvbn-gfw%q}pJdbi^aknuvw%BfQYiUE=paA+?RZ`YdgcD5JFL8bs zQhVx(VoY4W&1qa+G!e=_I9xQaIJN4%?qs3`BQq)5lLB`3wpaThSF%*;+DoZ#sq)}` zO9A_VK}^5(3gVkuY3+F{Pl)4-KP0azVArB&1hs(%ZC>f1uwuG2ujF&NE%`9jI$>-Z zPjqqEs}#s{EA;HEl{k0;*Pmq6p>@X(+Z3KJQis^VVAf_&K~p(1F?3t_Nh%J*OYR%Q zK#;1|x(ZH$rA|=e(VXYa48il}L3m!hd9ddhqwNni*YCM8pyl}MWciHog|a>s$OAHC zzdW}ahTy?stS>lQU%#nkmhXTNlqJxjc{h}b7vKhcKP7v#DZ2;LehRMf(59*?+QTDF z$HXC!iwMYsoy#UtKj8Z^H5`%VcU**>$|BvKz<=~w|GPM6*Qc?<8Xr<@qhT54Knz|? z-lHQ`hd{=$OhhAHM@b+#we7j^>ta8E2=8g+>x;;sC=OX!m}=w5y@!p4#^QDqpZO^k zE6DYErj@pzL)mR~0N0`1Je(yE@nMYDyWtHN`?s0UZ{&qBE8BO~hCs1Yhy+*>Hw=gJ zTxs?1)l`~(5M?#4EYifl5#od3B;3}CNMx@0r(QxCZ*9>EAZYzRfRrGqbJdLySvjqA z#<#LwhURXaX|zdJZ5}8Aizf0@#>E`eou{HDo8^DIRL^adpHCv5i8)&b^?!>=)}2H) ziXPpBY`03}EpOTsKpW>5Wmh0&ZdX4B6sD>ufe7Urr0Rz48kHs7(T)6K?AouvBIn*> zH!x3x#TChTt2ffW_isadHZu8Ux2UddBVQoKJUf+1U5TUEy>NpnbDmYh)-wFEO!G9b z&Tf?p@&84HemSjG7+*;qZ5d!8#!%K>+c86K-uj?N9xawT!y zujprl8AJo}%tBC$Zw4B|E5u`AN-P8-`Sh>Kr1s$GLr8jz;9zi#`oyUN{r|1A_J8SO zxETEdIHCY86*6Nd&Jgrdv!$p>H}vHG;7gIV3i>xsz*#cr^#K|HsYElkDBk*iVWj1g z9|XMLq#mnxEu2ixrQdkf>tjdzE$qKuM){e%E0sH3?lf4HVA{_XzA16@+mWX+kALUE zH_GFqyE})^=qZolcDx%tqtfKy{j)Q-X&;Hd@@Sj6C#oufQPN4q?1sTgv z1BiBqDUZERHbr;sp77g!56w`N*`@Bd^!5p^VoIs%l-<~Ve1{qLdu#W>n)%+{0oRQv zkNS4Jhfw}7Pp=j34c;yry`gn%gJzbMF;{oE^F9S-pJ_NTZ^BHKg**o}ICvhzL@;42w+Xa}-!`>O|qV@lY zzJnlrm)<`2f4>2B?z>;NAfM=Boc-z&Xq2ug)TBwvTc! z{Kx18kDUiMm+Fa0_E7~CSWB$np`o`Dz!u#A;_wX1j zx}oi&T!>Bm{mSGOa=%Zq8tt>D;wMfqFF8TGi;v~5M5$K=IalNB3;PlbM~xm(as)31 zq9CchacT}_JYx6Lqdb0!qBA{Z%a_`3{%_*TZ7@%a5h)m~Aw|CvuMtTc(M={yxro6V zll-+^dw9F2H;}et#f;Gz1EWwA5FmnGmO!(bD%xv7C_Khy)KJAu^seTZeG?mwmhG6V z3I``LjKm$?$-wZe0K|-nQNx@%+KNu8n-_vFoon1F>0lV$E)T~93+VZe zMcB+$22{+W1sHOXxptcGOEun%62z&7kDKOOwC)<86ovKv{JF=0g{i0BA~M+W>90S=el?|^S&$;vRm& zo(kv1r&I3Likw}XVZR)CQ!3%4(DMYi4NQ6^0_=VhtwBg3xBfY&&zd{@6n+{6YH$+7lt z4ZJcxUWo$^$>l$8D9bwpB+Gv0qD2h%=oUWJs@Z3(z zj)gSKt-@Hi!w8Na!gQ|Ho$tl_1wC90B4%d3Iz(csBjzK?1UN=9zs^{H$>I4{@HLB- zRo<94l4dttd zacd%7@M zniqsHPR5C$F)UP!;Ig#T2ZA0uVAZssWzltb&PXvZkf zeG=514{#k{gJyR&mX4(~eYEdhbW`_U%MRsCc%$ zQBHiZ>PrWdHi}sqGfd+_j0?G8!h1x{*a@O{7y=^)@X?&lg9XadbrGPOaklf;429Fb z@{-D+UgU(Yxv^IUkA@PGi&e1kt0GJNf}&RoP(`|U*={#id7Zbr|DF1{@Gdh!Y!Lqs zKm(E#^oFKAJ!Bx~AtNP(IIqC&Pr2pfw;JInCGDDjZO|{pmxXdCKB;j(d4?6uo+aw=-xOqA$eOOoX z(9<}M!SB35DoqwbIFTV!YTGwjMdiWfXHI(DtUIy#1{(P4Sptk6A;AO}N=u5?K*6%Z z?8qkV=hoQF1X~9H489z>CR{RKT!r}I%aJkiM@#0`!umK_WwZjD5EXH2hP9|QpC z!ZKf}M1#o;B;%kq)qTt`3hVT88PG_|$>5;yijB-Tcu%wBH98hk0N5o3apK)ky5GK; zCF2cc&Ln5jx*G<7l@q5TWL9NPN>mZg|;tgAc9objwZZt29H5fikJvS$o47s3{I!uXBy$iOYZ z9QV2Xr>)p*2+DmwV(!>G@B8VKhJL%D#=(k^d(d;U?dYw0=1$t<%0)8%IVV zWXOKF6IIscA}q8w$THV;X=ehkf-9lJhHQzyX=6d*@yJ1zKk-QzT>dn(S7*WRoNN;k z^Up!YgE*=0OoaurGy8SiwwS(MGrPigQzsUm^Ay9A^v^+CN+!yd(l<@UhYl5s?*Ek9 zxce;tij&HS%d0FMvpjH%cb&*I!>s;Rtc+&olv920ZUA!`p{kQuJlUaLMwz>K_7@2f zW%qI#jbs`-1M5C&~EkoMsR)urKD+pM_xU=ubG0d>$%%?N?ic9UdWcA|rg$gq4cUlv1;3|nr#qdp?*r0~Q zhzR9nFVe)>i=Bh=7GM>;B##2Z(Z$JH1^1(s6tDwta4dWm=i}dDhhDuU2tCwe%EL!Z z+OlQrG(0M`z-1mjI)MxGYCHW)a|44N{IkBkJEkTVaWNhr#R@9&#a!%6QI zA~R)i_R^U#5-n-_+A~`OHW`}5*v1bdR>z5x1%1UOk8*>s+2naK9|{ZvJcY})>CpNO zEROj2p?6D|ptHA*Fy(>@lflY$8^UHS1PxM?BOa85yuCOP4&#o4D;v>4tdBF%SkXE~ z0);p#WmM$(aM*Ms{_qqL#NTlnoP(0@M;El(5i4J8lVd}p;%UYZq!W6Y z(3_8qT)|nQp@I4&=hToti3sJA6A378@TtA;^TZ1R;NPuhB-t-pB zYz%z&XYi&roHmJa-cSCgcoW<+to0uSBTkGq zD6xr%8sYr#rT15{P6LAf7!IHo^8X4<%(Vp##MSNSFh#Q%SR?FD3g8C-RzAscKtOwN zq1;InS)Xpm2}b`rW`zHT9q!NN1+f4987?>n1}H}Mpn|%=SlDFH3j++2bzABLBMk=& zHL}EAz-Jm+U^s2^(w0VMA;-y0wEy%~aLO3RAmCiDczJj3g*^o6PRm*nxwP*SdMJTH`qkuX)QUm#-p)GqP6*Tqk_ z*xx~di~GGK|05v^Kt*-@>DurwFy*ddIm00T3Gsjv#L>-Qit=>gX}=ow56L{a@$2cS zn7&2A0=iM`2(-24Bg9zwx(_3}1!Nd$nG(?gFqmfZDIr)O%)jFPt@{6)y%YY21KD58 zcK^+Q@eiIp8)^F!&Pf#eU(1822=>K9P}0HB-@(FhG5L8=Fj2yYT0sOKf)b>guZxOh z2lHi#oywXx+lhec7HX!S+{nz`MgvD23;}=gSr9@%h9n>t2C|v_JO~#o2ozJ4(5p@gwc1N@u1qcJRGV(=jTdh)qi z^F8LW`Jdp1q7_QUrcddGtidYwWT->*9~TzA1VCK=qx}7YKEH843VoY1rV0@L-;H$h z6z1Qc!3OyMm&lyht^bN&|J8|{-Ua)!lW_T;i|QmMVwzwV0zLzKzrPIMCwYIy*HU{@0B6 zf2b(_IkP-fs{g4C|BPffWyN1Q{GUzuuMGb$n)IYJ^;3QRFVPY|8RE~Mf0((?^en$) za02=?dpgO#NY39Z_!qmPWE_?44AfsY&gSr{C;cgas5gudn;}<)eD8I7|d7|FrztF>@ax7%q25^|FW;d50#;rAaXm$fG&Zw(?#GXX zRTCl&Hbc@0eUiF;_#Xqs{5Pv6J?gukf1r?MaksGDf4TY>s6Pqz!TZC6Z)CFq9-jE> z?p)WMP2bvPV6aO)dD15UgL^Y+f?#8!w*E8D0B_9Li|#Mqx_&X}Uod}Nyao5rzF$>% zr6SJe>Fp<1{U)wmp_Og(v>{ec?sv8w6xE&VUS z@5Ism(!|v%?XCy)e%UfrHDMaero<{1E%@;*qVOSi3Osn*x6-5H!e@@g=rkT-4LQ5H zf8{-MQA;uRW)SN#MnN#=`vvtis=;%7FWOCPVe${j+}-+c2K9u7b0#=N@}%bA&X4w_ zt`uwh0`&*692#Dm90dl{7DqUkd<)zv0W=Sw4$wm%+>9G_`ce#jPj7C49J07zFoO95I3xf8 z9-(f312Y~kfp5p2q_5vsxA+e{#}1}?33_&KegIR0oA@0M9Q*)2hyMVUy+J_pv78Tm zw0myx9$jt#x1B?Qtp+pfKK=n5^uKLNZxjD_uumOl<7P5?kAsTMQ$G5PqG8^;O~jNU zNP{L2RP8i4S)H$H`uUZU(b&48`@}o%D}&Qd+#BEg)Ffxf`Sp6A`P%Up@C6!Qc^Z5{ z=eB)1|D#E;5}Q$Iv=t#xaR9A7fkWB4@{|cLBxN&wd@Sz zp#DB7KGrWi<|zFE#DO&%@BIO+sog%t0N?l*3Ml5oF)UyJk_K#{0q3+huaa>3lle!?zrK-7hw;lCg@|h4x3B*0lYrIlZm^WeEqPt+v>amB(DZ>DE0KlCB zAmU14MZDR_o_2VNjJP=G;>J4RhJqfX$C;UIZ( zVVWfX0DkbC0JKg3eX3u!-XAO!WZo0r+3yzO-v~|W;?|3J{)a^G`Ga19PP&r}i3hcV zAhDC%{9p7B5QElbFDInBD**cpK(^2}=be85%5{^^)Vk_AM6mfYf^n5su3`PrB!>RO z=hrHY&Fc-rd#$u(SOZv?CMFTZ`_bHbkH?(~u>(Io+?FxDmOOctaLK!ym*7PbU)tuJ zm%WA<>@590x-Q&AA&}$v1E|vkWecp_@i_RMi2yM200_9HBp9a;0Cda%_5g^k2BW?>ls3t_`e4Q_y=GDCfn0QT}`4+!>H5RHb4{zoQg3n0B}A8 zz_;9^jxN-x9L#Zq`VyQslan@o8GFr2?hJ54|G}BpYw9ai<8SK@;$&VSyw`~C3l@_= zLgh`vwwT+J+1~-k$)%;W`Nj#!<387lWrTMHc7|cW{rsC}K<)Wa?9Y7JUykxxuV$fw zU>vNaXwJuCP~A1-y?u=KQ5~U1RZ(du;++()tE z7RWl=pu+h9>_A|8sNWSfP?4RGjS>KK5da3rJGnI9svAJ1rw__Im}Gy3mbU&rQAy@? zonoqlGc`P@1Hm5UfEwXD3fuq$c5M>m$tsYJ<9(ph2molu0~pl+I+LK^o`JqrN`P#`^aHpsiSHS^c z8j_PM{6YQ}F4!AJjUU2u0|`M`xo2UOaMl^QdlSY8wTpf8to;GJDHaM-$GH=oV>^t| zBzO@&f$9|v4L*T=)aQQc_7yzN?x=GIVbechogw6!(ESg`ekt1Q<3(ROHkPx~*zc!6 zn$J};T#$YEtv z3ySv{(cD1Y*yZNE;NGtp^f#?tderAN1e3?u_?L8q9WWPrzuwSmL6Z`oe6qknYh&p; z!1+XE%kMGn#j|`@!VBtiuO;8~c3q9AuXQhbkDjtbQ5p}KCq-5yE?$)$d8j7e-8}f2 znP9H~;Th7CX|_3bXU(WzoWlTimh09eKYLY$vrW6_1>d;kTsvCzHaiQ_A84YVrN@@< z{f_ztQKvqRjOl~0jJRP5VFo3$?o zo*ysa%i-KKU!^Nf&HDtmX(6Tk$oqyzc*Z{4)-Tf|efZP40@a9=&_9UPvb=b_l9kdO zLwVk8!Ru>|&+CT!3DTCDcr6)^BvK{r*$UKUhUW_8Gscj;7?=+o%x|pO&F=b!ec{}n zpq|=Hrn@<~Co;S21^X7)(${?e6@Slr+AF&{kNcO5gz{uW-}`IgX~g+G^U95Wf8n8Z z6EJ<|QNS|x(d;^sSii`_rV^RSmK++27`cle!ltCtS@EnA_i zDW*$-&9)xT>df#Gp?Fv4bz707{kbOz>EvhogcHakUmG&QZN6H?P+rLkw)d&ec-oK& zYE9$NDFwSvucKu@;^!v=_lPW>?P^>Rxi^b^ndSMwrQP6P#waDc&4w?J{l?R;Bnl=O z?MDbMO!7R-SgW{k!K(qY^)k~&k${ZBKEfsa3VNrZiHKNFp{)dy2iR5rNi6VAu}zzS zpT6kT!@N!cT4>*>`_^;=GZ?eT39>GluSomXb za!S0XJW>Ah9S&a|1*5qvKYl2hYAKQ2a+KVC&30oo$szY@WdIt7(L)%*SeExdA z)e}rE-WG5R>)*#6KbTg@C>l55-JkLM?Bq$0W`<`balhR?m0Bqf?lzP1 z_)E#9xkZFzk(%(GtF!P)kpZ3p;Mqh%oA*`M=cuLKU zC#A?5N$2We(dn|JL{?96BLN&0N1xlwyGH<_nVTR+f5bg!jm~skCnC~{nFzO0(P|Do zme_~?d2Aae`bFu>B82qV$WPkj)%cxO3r?!-=63~?YnJ8Q5ZQ%YNd8#81X z;>f>(ZSR${_5NG(4ZmA5n^(mBg`|X1vuYMe*&bXB^$7x+vV*y78S(Pj$u;QG#EZs^ncm>|+6T0qu!VRZd)En)hbtz)SK zYusdu(wB9Sd*}FoFQEioAKnwt+hFo+9~gzNiq7<#?=df^q)I4@8HW{7HA1ad>wKrY1@W?ndc^D?I)$6MkLTL zq0q+3#)(_4<{9^^@Sj@PckzGJUbJQ_iu`nSA4kqGR4mG1h*R75lSQ-xugIMUM`k&# zR|MM*wnSqMKjXP;2qwBb1{ARd_e&^7~#DArFuB>P$$5bWF?fc-Hrl1JIbG`_t zb%{$9?7CQ+3Qs#P%YIZAcf!KaulA}&)}*|&fw9KA9 z9>mv!@F8$oHgM_O&>J$J4u}2;{^kt}-uh^qnwzs~?(9=tUY{>FrP;DOScS=@)Nze= z$!>^R^BY7tNAh-5hsk6TbL~nOzHf0G=u^JqPu~|)Dp63hIiBu1!rD+e-X)t|<}a|i z>ya+DBpfc2v(WNYW3n_vrn1p||3GO16b)f@+GV*WP%s45LCH|M*M2igWp`3U+^_OL zvu^r>-NM6+YVo z)a&~>OHyjzt_Qjo@e(Q%cjGzV^Jx6avn@wOb?*ltaD0?M;wpG|TjU_?Xa@b(bs0Vi zWi8^{kN1!c1B+%yyUMB-J*pSb4|56B1Sl`B8knhm4VpH-DLhjir1Qj%Usf&#N>%0b z!pTA`D%yxl1@_j;h8}xxdwp$cNn)$k-}oS#e!y=9Wb^U4d-cu!Y~kNbEp9H{j#vUa z0n24v)-@W(>+SczKcde)! zuWryu(=ointR5F!zrMSCW8FyVo%Hg$g#1{do?$PfD7SS-+527#9+eF_Zx<|!D)Q5Z z3x}%~;A{h&kY7(MKK6CgB{*g~I=E!*pM@-G6tyJWx+m&OrH0N~&0y8Dy-JqZrt&!O z=z$VAug0;vBS84Vq!rsyUWx?6>p=n5Ih=%eC*hXAdr_x zYwDoo#mOdDa@*s9HK4hY3byXUufv?)v=8AA0A0<(NE?ib?-#osn9ru(o@en(Oe z^yWJE0aLzOz*$Y-2k&8NfkmBjNqmwmHjXnv+aT^oZptBj-Qf^&sd#^`&H|R%Ah;RS z#>E_ui!z1zw#-`~A5Ye*JLl8DR61SjD}l;gq_F^guVba}(%ko%^b{aGunFJBdXQvO zRTL_F{>?YX#`EW|U88qnn38J@6CieLeU*s_ujAW&CG`Ghu;HlcuVDbiD{iD#7e zo4xPS<{eMpx36yKM-pn12)3H=@vtq?>PHe`B()OoQK((&;QWR`6e6uz`@SYK@Fb_y z0@0f%`UxE?0fQ*$Zx!5E)%=wL3s~-^R5lEpTZKq%Z1{0r`*g%&O6+%0=k@Bb%(W}~ zL9atqcUcZKUKM|y1c#Ovi2-yp2pT#jCV&pE;+%{viD7UCK3=3YLMyL)z|7n^uqi&l zX?p$i4ISVpR0j3~z|=z0PkrW!f=4m6&jb?BaTuN_zb=@rZj+?)a2G3d?nZAtrc>UC z3UfLqY?rQBPijxRvJ|~$m?*RYO2QbABxe}LZL>w*XqzK75HjuAureY`NAlV$2XWn1 zrzU-o>5qQ=jk3Gz>x)g5w9DD8xA{W`X&7F|c#y8DveXLA;kHd(c^c{R!g7#7zIx(d z8`i9Q^C0Tr)95u{T7#e~ktAW30-(& zL66b@!e+#wq<^HRqx|`H7VmNbwWiaGn=P{irsx#A1cOVhWLxw#Ge@K zRy<|PN2|4#UkW_E5^;rXX6%ZtTc6_VY9hr0bHTWpd-hW!*aPMs>+2ZnB>8OY-^h^+H#sKXNux^d+CGsmGmB}!MzyMu|u5PGW$C#JNsW(G>XDrW+m8YEmQeU+!)}I zU45VuE33)MoIoO7E(&?Vu$YN)URFDghDZqK7U?7Lyk$R)k}oaGla-ajrPda7@t6aJ zUu+A!>(9TuVJE(_GHlbO{;8|ASbTlIYGq~T=9oda1?7`{+q!A*O5IB$9(I-11AuH>`ac-aOo_nmhs$#jgmD2em^j1vGO)4_hL+bb?)p4(R`(KET~^;x zDK-eU%lJUD$U=5QK2Y}Y2Vu&@tNHSUd}M-mY(7|AEh{K?a zRGwkhx#}0(Z0ffw7O#F|v2nM};iI4sR@6)CscNEIyFSV+}@?JiJ$LFnlB!ZIj5uc z%=*gP`mlhc3yIcuQWO?SBcoMPRQO*p?u$h;JieU7nPpH^9}|Ci>C5^SHuOX#W&1&K z@suUh^RiAK695hWad!!m!+# zJ94Mb-L=Lqi^#jFfzQD!lV69ZeBYH*IH>c#q!GD7AwR1-e41X*tuu=amra_1L~AAHBHSO$-!W{%}klz*Kw8MB|9JVHJGA13*d zHM-y-HXeK1^5=yI+zlvjC>)_Ew>JW!d|3KNAx7IT@q;cNkXAJ%v8tuU1;4t%40acJ9FsDFb8+<*Y>>?6PeJ*%D|inWn(GOx^@ z)iKI!w0rVV605Gr8&n|>qXMuHds~MzeuuP-&!fTuB28rufl)qG!WYBEh$HD>YmCHn z5cA#@*E-tOHi_~-E*`=QYDNPiC|zoea5yqPchs^vWMD02)#GPisimn+VyR_7*;ysr zG4ZMR?ODNM?5TvoHxt`aX-wuNSxUG|(iCO|QYOTSsgQYj{zjg^5IMQ9fFUe98wnq0 zOpU%25K#|y<4>z~D9{yYN-`Tos*Nk~p(xePI1Z94iS@z-n`KI2{0y9r1O zV7*3Pl2$D<5qdB)#!CJx9w^Mppyq0x5rp@eJr*IOA_#?Ahp?vPo_#7|`~t^dbFz-I zv|3aF>LESrs9!bkE~|D^8MI10m~}C&)}AIW{!N3NS$k-2Q?0Ub_w_&}Lfc>M{ZEA4 zLwn^)Q{G`oJ{-M74z>+>Q+XQLOlF-n%N%83o2NBc*c?S>Om!rgbzZPpDzi7jLA4GO z`L3`)Q~aBHX1CtSl4s6JrT@wR?)YM(UBn?@*D28=pp26^7NfnBSWUI)7YEJ8@e3T% zM6?t@L~3mu-*qIxqx=fg3LG->%B&^)!kWs`>MusGQ&!1aC}Iy3+%t-~M`xO894zGh$rAt%G|9pCz30Aq0yQR0$THHcPcM zSh^z3*URi}Ku);?k8&HwKUGE|a;QICpj4ALC4;g6@_X{vK?_-XTgO0XY_<()<218A zA1#sQzo?1w-bG4$*44-Tym(ptFv{*p7$2yO`bYV#1>8nO)I5^JCGVlQ;KD|-HKP5KYX3aFBU6-FOzK+U;W9Rnyq zZLw(2T!7;5aO_R7s3yPD{+k}FoREJ`(JboI{? zMx)W89CcITH3sm4r~vU9?Af~-&zn!tVQq%4UQYW(Kali)nfd7y^AOCey2$!bo%1UixQdH=h;|EbBbnZ7Y#5Jtr|J3z z+wb}Dr|LNpsKD*NO-<&1YbB!MqW`f7Dmn+Qx<9KPSLL~8<;;c$l_F0bJKcrV_$gGqkA6b=DB<<=)bfrr4 z5DT!+;2##CQ~D2AG|G6@wE`EPq51#MZju9#giE>aVcQV+i>OpO59!B*u{&hgnTZA9 zzC5VindfT=?q1+}L7oB4v{X^Fk%_-UT%RV&$$wlzfM%^-6Z6Z?$?cWuCY{my|C1Bb zoQl0Zjf2bgenCV#zd>679;WX?14Vuk=wpPcRD(`MSbga?g8~_X1}#U$iObk-?`Mgr$0bUXI@|_{Hq>QUTASW7II(ecCLFVpb+OMeKLCi^|v- z|3COKIVUX7={Y#sB1`8tL%6+PU^RgYCUPF2w!Va=g6q=7e=ZuGU~^%qcR}AGw_KY0 zamf*ESCyP?cwJaEXc>KEak#uZ;=lDZgNw{SM5D}iprE*(S8$7(gY32htf|N~s{x%L z@Nvy5=+#XE^ekN-b%CCZXi4%iLGe65{|otIelrYgEMr~ZLVmcJ>l;|VyU#hep7Y@oD}u_UNCI6{CpA;p11vx4Q0w zghFvRDk)cp%y*YD_~5d9d%zgI?{7d*;Sudo7e%YBKNwDEXa~AO9^Lu)5)hf)5uw%h zF=4B+3>+|sSxjLwSda81GhShpyJW`Iku3p?F{8oe&Ooj?BhLPJ&fJR6jxuxKkSy`9GaC1KmO=$`h0 z4~MNWfP69@>|}F5{`sbF&tP$7ft7W*p=n81+`Godu?^qFgQ zjzo&OLJE_}H4n9a9=Wd8UT8oRcTVTSb9X=tDtg=_>OEdz{Y>6`k2@^TO)>KMvi%ii z0MMmj#8km4!f`+i_>6~d6gm6<8=k9pZ0GtWX82Hk-<=pn_G!+QOe;(C1qy|~vZqzT&57bKh zlw3545DnW_=zakO$`C?I(hB9I?-VxUwMdX7oR!e3`6LHzs6Vq~cCd}ez@8eM=`I;0 zwX|+k+)`0Z=dj_O!cY4aQamJNpb+VfTWjmdmAWXZJUP)*&aqML#0E-383ez^J=#wh zwIfWP#-7l>@G9qSI%nd%*gF|S2cBLa<+=V#K!76;{x{&oD@=GQIK(8UXy^Wj-7N8n zUJV37?#9}0hpLOjy~THgkl6*JCE~b#xS#RQW*lQuWOMVp>EenJNH+z*KcmSZPb_}o zc~vKUBYxehQ7va~hLS$AAvHbo&S#^iojE$K6#qt#tLrw$!txD-g6YFX%k+A#Ed)q? zyIZfOx(L;%4={@tZ9kUPSgP;#-D;doUHd$Lh+X0xUIDxM$@u3bN37DBFW`YI=?07{Y!Eg$tUQj5cbav$DDlI_?Z;^I;~g-8J0&MRViQ%7A!Zi5EnP(qd{Xi}^; zBci!Uj_aA%J2Q$U@mLUbjAr;z32@bud;3Q$Y535KwfAmz0@!oEynWtH*8gd!^ncL&kH!Dn{aiTQ<_E(cqm}CRgnq|0Ym8r8}qs4Tb<&%XG_On`rAjPCc8y+ zYLB9z%ai}=rh?-xZT$^*owB8k;SjoWoRk@)96aO5DGK{&Y0~d#ve84I_hzUCg5a8F zJ0dg4ptv1JoqJlR)Z>qBXDBQ1Tkn!*F}87No{PNu-Nax2z0GNysSN*>5dY>D&ivll zG77Er=lh6_@4p+zBpjYI($lzbA@4`3gW0#JR8=#ZghY+oiQCRRJao%|?z-l_oI9pl z8cqp>B1R<7A%!6u8c+B2w^tQ?uV|W5KOf$jHn#ui$kG19&<7{q$L60H>1rx(Y1#ff z!?x_mjaDc-rAH{>F<71-2OMAn|Aib?&0Z0;Uiu?hLex4!)VlWVMDa7--xZG$>7z?a zi+5rJqE2i#^KDQ5@pSa((}@tDYkwSrb_!nxSk>4L-BW`a0tV1{#$0iFYq9xAmkUSr zw&Oc(V`mvjby}2xn$RLz`B>IHM1vSk*_DEd2jOw12J5sOjcyF0J@>-0zXrL!?;limODQVzv zB*7t)G1FYSra^$c>NtI)&wo0b7bW?cLLfJ5UDqqNT%Q*Kq02h5XGfn)d#;4Xs~E92 z$SQwQstoC2eujJ$jxje_r(6&*$x6Gkf_q%mdNl6GGL6e5;^jwb?2k%- zZDKL?_MO7?y;g%ArMpH+au*Bs-m0nO05D+3_y zguRQ*=G>6*oaICo?N}oQ=}mJ14989EN7h1;>+oxESD)!~MjJLtE2RtdSSucF zoO2_VBj6HZIJ^;W&MG~-$wUvndF^D`^dQqI|5>wF4=nsIx;gf0RW~cgjQ};X-8nY_ zWRPwST!FH2!}-9yO_6SssW+jYlML0`V7%lB(kDclcEKrU-z-*a2si0j8bgQ z7{fv4;6PXzgUFH*xlR9u^}k zpUD6X^i67C2Ce^4c3o#UURCfh{#H#+7p}D~@*6{1F1d(NvEpTQBWGT9c1RVo{vN5T zrzvaGuV>=x9nmn)sTm$8K5HaJW1%#UVSPx#23dCkYA4#eE9NnNl^UgW33v`qSTsbj zGM?o*L(E@UpFcg#C<=wsskR(Suw;BjXe&J>69d+Y?TbypN~ja?(%fY)Cl_P(TNZlw z!Ts1`K=ni1VhXm;BXAQun%kZ;&dzX*%TyEcbg}pS_uQzUX-IR^09e96JlU^fuwa+#oEkz5jQ3#Hxr`KiI*&n?Nul(|HMVc4xh6$>G$1oe^| ze3NX~v_J~0WvS|tHl{3xElCbW+xl$X2ekaZIN~5he0p7-)X2Gq35;MM`LVZm#c5w+6H1|JplFW7@4j zH$^ucsIv)FDLjoLR;RQ)K8+33rNNIQ9Q62P%aYxij1CDN59Vv5u*Ji<#;gdggSu6# z%t?y6I5jEnHXBN|=P0kmk6TY8@2Z(ta$u}-59MF4aKX5L7-5MRe_r!Tv=kbT03(yF zma(7>-V*pu-CrAL3ve%^jb(NhG}ItjA(uX-3vL5+v#azbGJ;beDD|@uUf}`#-I38 z5`U45Gqp4xao;G>c$i4FMpN+uwYN0`mPB`F?W%s5_D&PlljiYR``djFyq`fDitY@>C?e5^n68n75;6 zz1ZXevi6#{W&ikxvU)3i?865&GbUmeYKZ~ytQ|!DI%@{@4y05~m<1qjJl&(;fQE|i zn;&d1sa=7PRUqa}^mLexbwE+WbHeil-{z=WmmS77pf2rwJUx5ZrLgPD_B_xe38W%U zUF3WwJ(3CZmMf&7-{%76mivW*Lx)&j$n1Dcbe7*2kKlYy2kUTvNzvxg|Yx z^r5)5X~!qC0dMJ_FjqULe2oFuls6wk1e}JhHQY-r>HXHE2DGP9EepBTo?2fX5BLImu^W=mzjyqnv}ZF zUMo%sQO$`}b_SF#FMDCBau84tGrXQEP!Ak~#>a1$N+6x8_^%0tmfC}XQU#SZI!e;l zldhE=&tGb^Y4jlJBAtDB7EcasF*_p*5Do`Do=nCl0ZcBwG7h?Z)8&VriObxF7M~%_ zs#4{soz?N=Mkj>Tn{Z3PmVyh41AgVFcA^O>;#s)gn&_6JBf6g_`r5%@Y|;F6daLYR z7G)%}?GQipJ23tsdCqAWeXP>ptl`zK>OP@G3EJ=wywy6@&@vy?@F(~zTOI1ZEBs6t#PI8AhfMCcpQEWt%$WOj0w zD+~9H9H>oGAtvo>|0%JM;Y(80_<6M9F_<0#&JYhsHY%?EQ~hJF2M*mfTH?eFSa5<= zwriq08yqUSVn>08#)mm}DY(LgmQ1w)i_2(z32_DiOF-`yj?h83=6?ekh&C>?^@=uD z1b=|!7!4}@${E@CHvoDJlA5k=Jlh^k+d8fzz9TmijQyC1T;U1RVgF{$B&*nUAE6C; z+zwQ1!vVSU4nFl;%Y#!ntjoFP+GupkUJFc#hW&GR+~9-bdGBldx|GZq%utxI7<~NZ z=L@jtd&ww#?z%(?+sAVo6m}cTrg4Lgg9Ac)8(hT^SjWL8k&iW?=__g40lyCPX{P;n zXuDoaCWBhJpo5u|>jh0P=Yk5l+sN>+9zE0sPA9s^S?wQ9o#x&triL1H*ZjRnmASu_`C=AwUbz$QsP55fM_ zGrP{ci{*F)xX(%bCF_xYM>QY>SI4^SXCfz&+^hjt_u-PCVjcSM@xq2#q1(KQzG9Bn<&DvG8p>=4kG!{g8ol_C<(@_s$H)*Q#&ukJ^GNM1DHVp{-Vl@ zvL)0+yrPIb6)}2cV zyds5Chq#($X^3!5X2DVCyl&01JOHo*OZI)CYd>GH=*f2?HRUF2CDCNyhf-+}f~u+1 z7bY*&$&dPEW8`{sKf7C4qOLhh>sG$b-Kbs|#ZwMBhWRkxS0#jK+H^_imw#}-r~x$* zjcErD1a`#;f<_{`KoBYZDuC%Aw>fuP0NYVhnEhKq^sD(QJf1%;?f;a}UO@7K6LfE| z#G2bkaM7LBEPJbtZqPAc@fZdw|CzYJqTp1`H=q779ISR+)$Qu|`o)r)pGp@?z+T_D zlduFA4_xap-7~d*N3N4Thc8i48tVWhWcQ>-4cw949uL^a(w9B;j=u4u6{>M&X=7@% z9vwKKUdnGOnCd~|T|NX=59pbMBYs(#xy8mN+PAc5UmOFUuKno7>0`4#W^WVD5-?Im z^a(QPzG%ubU;ZbM4;d&|O?e2GFmoy$upi_8NDMr`)Upzo();ba!yCV(U5*GM0JEmo z%W9Lv-1vY4oNlVqsKyX$hq9-Yl1@}*(c-(~ zRofJH9K!5nKJW^D!2OY$HopJ;$TqczB@y8ij$R*uYanen!?zAx@~*po#T`$Ce}*8Wh4>h zr8>@*2;SL&i1OLS<>LwQZvJUsjWln*^SRK{(fR>53hEF`z~rj%Qc85V^Z@!4>(ze* z!L~pW!ncq91gf`-RA{QND!A$CbL`_M9!PU4;CrG0IJ{kirRO0)ByV(hkN9?pW37|Z zbIPp0DSKrX#rf-0M{t=LGFdHo zfG7jGADJVk`sr!MI&L5}D%iCR`6pV@BGv5v9^?HGXgReVH_} z8&0ND4svAxQd4y9o;)-+n6%^c&!YnH962$bp&F{a7|#Mp2X~vdD{3jTLCc4h)x(k% zYF4QN9{h+GmwQ{7GsLbLQO-@x)-Emv3;-&!&1ptSoW;S6xM1-(M<3JsrE0|wAMyrl z`sG@)Tc=M-0230HMfs})1gD2%k~XV}j)J>X{nF8VCRcR)$~Vt_hU~Dk=6#vcZM9-; zQJ|dm=b&=p(zC@Mb9b4``FH0Up%xWIVgfWYexm=8Qq`&!Rc)_We^+!aPE{NIHeoU2 zC&Fl>ZS1%cZlumVTi0J5)J>|ms6w9UD&ey$Q9k3Di42R*R&h@)i}+kU#t&`gJp;)o z%Fh0HZP#?zuhG{@b(7s&6k1e4}ueFXE)liwZQ9VJGcg zSp7G^1vCWCWq1t;ixZ-KWY@dP+u|VC>MJ#lcCOs2`V)qI;HCpxr4C>hNmJ2FmyT8% z_%|}qnpUel@I<2ga!+r!cgyLoK;^m0kRg(=4LbD=K@UvL?mpT12k|6zvdC;Si>gw* z=n?_r-}8Uavo7QAnUV~D2;=sJ&9CH}S&H=JcFcxnOv9$k<$~&S7$Te?v81 z_l5}O&Wljib^CRDK!(5BXhM$X=W(jnM$yFtXcN&D>*FE!1(7b?hWM-D$3L9XVK5+# zr&BJBD1|9i(02O5um5a5LMbPR*FAXbx&9gdr4CgUg9W4Sjqi3?@2nK(bZ0+5)#Pjj zR#{(mI8vpZTK8k+hFyr`iZUL)h0(X~+g?}?Fv1XL<3hPQ)Nyg-Y#!7_)0nV5Beqbp zKv-nv+asr<6z68pA%E3<;ZjTnw*B(rqI)NNwXss^q`Y+qK@4cvRap0t19201N_LgF% zL3D9x7ms1f8?efiU62nrtMmm5Aw|6=%es3uVIaV%^}%+HOx;PLxpH#JI`Lt^4q1M8 z)MN_16>xSaTw}-UaaC8Y3@*U4)w2?+7%T%>_!E80VNAWY93!RV$c9$gOu@b@-pmud zgMlU0_|WD9TQn5x{d0fQ7`D}N;30x?gx>=k1E#!!158YNtF5^ulFDt0zsfxR;dGtE zYL`O<;@+vj;oFL6>sLONXKAm}NR?qdsiQP%1+VDor>^1#5b5`f59zX27JNwftWdVd za7{^{sLl7ZyO=pz%bizx8wBz)iM8F?tuC}u3e01VBioju@8ov2b_Imxm00cwFlFTj zgOHVDC(qpN!p)ifuNj9S*aG7V9v=LI@*8F3Wp(r?YnufGIYm;TmU%c<&a%~3tfl$= zq_JJ zGcX8z6Tw&hZZJhe#kt#uk}EarC(K%nx1g!En0Aw~h3@&R>R}~<&=!kGffP(^{s63o zSj=t3Y7$PqN^m|4hG{9UD-N#gV6A~3<&KF*g~7crgDA@nHs_BcjVlq70kBx>G)Z`} zxXpuC?ii$0?&jPw9c1Laa5C#eZo;9j%2f~5xsh+&*4_$TC|4$&dyBP7k9BJ!(6`E` zSbSe7@9Mi{RffHBFcTE zGU%9XiLld%Dx}W-tAsQIRJm+LR;McNAH8+nbgbgA?qTRY;2C-4iLpan@I*_7 zA!=dlZl=cva-7`k<$Cz|I#DPDsQZ^N=={Im${8ol?@=q-%ip)6H5?)+%nH(rg8}GP1vJ zKh_BHD&Z!`lf8sFnsBjmfMO5-H7|OOQgw-hwZ~6l2PpzO72#;`d?os58tG$YsIH|z3B#ti-(5-RvW=-DF;u@x-u#HW zVSbjlpSb&QF)jk;*9MEsX0b}FhQ=SO$dUi2lrcYfG z>a3M)m{ImCI!&UQF&3`m53Fci#j+R>Z4+I=^77k8Yx25N`u8BxoJXTV(U{vWF1E?V zKZssHi#c{bz+VQicR{&0=rxxu>|tGbt5Qk&iKHSW1R_uI(sYvK(LvLZ?ije9lb#zD zgOEx>(LoMcZOM8jO(ixdCepVp1Se$ejm<}w>MB)woUS&CkO6ZX=w>vNDjh{PKXgx+ zlyI+H;t6+d#V|u04yWTJzO2h2$Mc}BpwY|S{ zZNbp`@8Pj1ANTjQe^0Lcw`kZ_d00S~J2 zF%l8IXcEF!VVc|Bs3S;SKVUBzEWmhylaT@D^NWzLzpy(U8~$DP@Uet%3+3Myl?!d2 z%+@b|6tSGYdc!|YHDAX-JC)wB>7rEB;vpv;M{&vYHS6?sgS{%ii*ob}MQ zRi%Zm3!LWK!wDFi>nn6dfM1rRncEvE2B%8C(e>@G`1=Q_)R$HAIPV90l{{88d$UR& z+n;&(?bf*4jSk;9&<2|p3^bT(~PyBu+ynIRf_1MeFmq2{w>_v(3_NDiGZq`Ss9Ymjg(0?ak zV|>~zy;U8bQ$l&yFbJhkjEBg7*Tf01_!}Gs!9x4sUvr4HKeK5#2`zT|NJ%jq(#4i` zI)u%nz;Zo)GV=6g{s!=~BoH#3=W0UaaoWTB=W1O@X{T=VdL_I*AC629T9$X!?Lg6H ztQ;Y!P)FmyEV-nSpOU7jRhh)r_v!6*tgbl>5V=Fv9X^qa)`isT2_gc4$W8cMZdv=C zaRLy)9$VurSj3}X%m6zF$1n-V$=-9N`BV#+c%8*}hq5mR$y%$}K9b3pWKPQxNV(j$HEjk>ZqIGcx_q!Xu{GN5~ zr8xL?^9@EvB@Ozk;SVfF1cw6gell7*vF-M^ztXeKF(b1U%ay>mRWBu<5r0M_5c=g9 z?5V~iq5l|_2P>9!l3rnQSn66suDW0Yc2FkRz;X()IAr>x%m-|p`8P}3oAA`?@oFPX z3-ZMX-7KFzN#NPZ(}^;EW@sM6zt8TkIhcN73vjdxA7^0>qb8!{m0+zeTptxGbi7B@5!e(F zFxQgKu2Re>We7swt)iR`kO3`@mdDS_3Ta7(!!>i{RXQbx%6w}nc_IfzLp+0DA28zG z(EIsb_{wtfnq6b=OpI{Fz5Nn2wgE8^X#CkBxjAsngy7bjmp-j$DsH`jIH>UZ zR$)TCkFBiIqQ_NbYN!qkXax5%8!_3;4UhxoDnynEZDV$9vXNPlh?Xhek(zO>1s7Hp zNCkUBXC!@caI_C59fuq}Kbk$w>u?eue(HBGdb9E*yg!*ExmhK*AIQ88W;~n(*qXJf zd9~c>vB>V1kW2Q)Vw=3Bj%WfIFKByQ>EzG>Op#}NmMu@z70D~ZXThGBGDq-o>k^^) z)^uWo2O)~L8+*}LZ+Z5xYo!VzW$I_!BeM}AS+AZn9yTKCk&@~vg8EM@WAoOcOuY8qT zX6It|^!$jQI1!S^VXNk*VzeDrycvHom1MP_WoTh|jU?yv3hx2%Et=1vOOco;5-+Q* zYMf(2 zy2y1rDjLjETl+$gp$Srtl}#Bsf()I?TN&$u1sQ*wO8+Y?K>iet&?I46FY`Op`seEb ztG@xh*)ym_&8nMU>*oXVZp*lKJ;A<)#|KRq1Vtf4Ii0|?em0nC$PB7YTl6atUX%sF zs*Igw-WHhC`8e^pRfOKN-g59G-~7@5@h)gg<+)UAPuK?J`82ujUzFmG%LkJN+Y&?B z6>>s4n4p-Jhg?mS+p2u;XeUU3t^KMV397NudSk8H>2ls9hMfArOH%>wJQs88KG@1> zMAW{WLG-{0Yxc!X06WT~EE2p_aU>8na;XcSu9nnDN=Bw>mV&meiPv>H{ARcKyQ;f5 z8p(4RJ||r)-Ijb&RfJ|F|3n~C)DvSFf}&JW9-!wZ@kM?eJ(7hG0sG~rzULoKj26=P zBA|V(fip;N+&>Vk>I@7$Mg#b}YuA2@{^{y;$LJy>vgjh1l4*y(Wl_iARe}+^ciA;P z6MLimCq@=SYBt@dn~fT#yizSD$wLhQzFcnTaqxK6v|@ropV-5Xp&YgpM1(=0pOg{B z>$+WAT{VwcY0t^x!D(Q}U5`C==TyiDD$e?TaP?vE)gqFl8Q_5 z+Q)e>A$$i`4aUqL&9R+jI=QYDbsqn<%%f##*3?Cu(uN__ju6P4OzAmJ54(7~=A;qR zHI65VwXs%$186(5j<^U<$L)@Ybv9>R@x<=$gv_j+Wbk}Ei+%Vm@^WMhgVxvv9Ah57 z7D^d<3=p8=%)y!I_`58HuCIU0M)V#?`qcMpR3MdI^5)aK^nGoVkm+m}A}(dw4X#dG9Qjmvj8~{< zQ#FeEz{yyX++;}NyNg@+l|8djwB6y1a@tn-t|AoE+64KaPiIJ;68gVo3Xr0!Ib;BWAT;Y>34yUkmMXOn0)?Hv-HMpQ_$>r-}L=N z7;O=5$F*ppk@~AE=&!YfD(kNozx&>GEAY9FXg3%mw4v`wq00;Iq)8$5y6TF{qCRq=S0w&XU!2@XsWO?)0;6nAVw@8A9XvcbJ^HLlAycIxwXQ%#4I<|-+zON?IxV~H`wws zXKij|I6UdCnEsa$2Hn)~YqZcn%NUsZ8a?RZ$$bIaYHMoY-M{`zbnh4&UG#Eu=KzRk zbho+d64BKssaNT56l`xI(wY{qUjmq$xU_b91+)L94hZVGfnvwL3s&FxcBCdM4AsxZ z;5Bpa9H#k*i^Sf=ym!`#!VYXxH@4+zCXTR+_Li7VjI`+M89VQh#%e1CQ9y&g-%L|W z%FOglQc#8yozjmgX5D%QFUCs^$$s5y(TM35%1QC$J1039_REL8{RY&Y0!xj_cjfT! znsCKjpaMD|^UW1wt(QfYhp@L29~tZ9GC&H2G{p%z%hw!V8wfiTDREOFY5@!PMlKx3 zTqK|{vh?zSJbu{Pc`gPk`RkdAg&yMT`3-u38#xjX1!&x!n-$@xqOrb=%GXBTghte~ z|J^!$c(`Fk!Y=EJg%$cTkM-k?XsUb5-k#p(I{XeEBWdRFQUQLw4`yv{PC~E$v6oW* zce$VM{Vn%k#HBh(m9b`%R?^z1X(&9&Am9`}?!h$Hr_F9E8&h*m23|m_8RUjnr=KnZyq~wGFTbK0fjyL%~5waD(lirp@sN zAP$&uj!byWzpKy&S-NI#xSg!=H_YYrjdXh#A=C$A(4HZ|v-3w4tH=+N0m0d~R~HmMTjf6@a~ z`N!6#v3vA^7WpAFhmE!lpD56sno6jG6P5H^9diGAe#Prlc(@ctn(T2^=W+!GCpYfk zCDxQ$#R`#O%YkqEQL0R0u-J>Y@&lUpe6atx0yeU13(^-?mktc^H#xWC8)+8oEY_?3 z@`~q2aBQ)TGi5_?x{N=I7n z2*C+dj-hs)VI@aZq@0t?R|@lT|E8R^gGFo&o80WmW{cG6g0ue&VY3C(GkV#AcRf!X zR%u?Z=tp3sn&MWF@CE7Kt%a+<=pgH>CMpoM1OKgl{w;p#GPVsj_f{ zF5edU^W^=XA3SA**{09u6qb8;{c>6EmCAePbG_v;9C5br6Fk|bJGyN9)n8jTv_BqB zE_i>(d(-5fy@wXFWE9Vh+&;Tuvwytrn%$N+)W47t15+03e5UR!Q1B7fLjs=g{1(um zGLxKOxjO(ElZ0%Es=wAxt3stn=(fc7Cw~mrsc}>f{^o6$M7%A?tbR^tKwu2lzLt`B z^J!z^x2pcwwe)!z{{8b%edMSr|0Fv{|Y^W6>oAhl=i0+`^kpfTL!xC1J>xgW1BDP%UEK-o z#GlBI9hKHcZ9XPFaKsj^ueRPEJ&6H19IJ`|b+!s#oqq}DC|jhlug(pF7H>@G}%IF<^T%?PeFOxL=7A2CL=n;Wd%CjaPVq_=enaB-pdK;yF&9SIw< z=6AbImZy-e5oN{F&0<(Y>a(~B3Q<28HmXQ#40{4yA!iWeD|0wZ?WV>poN3bvKR6Ta`z#l#DD#l@ zlk3>5WC>s{ncJV%k9~U40CozfgQlKF0^|FzNTep5%N@b;&m9 zVya3=l6zH`NDS*8r%g$x8L&B3!&{1Q!F(#-&thk61ck>`ikr}|7kbKaH=iE0;>Opw z>N2P*$c1-WRF;Gmq|i2dRVONysUn^57HThN7W~j55Nky`@m$pjN%OZ(hRuHKWT&HG zZ{yS>iobi3%KlL)p+gWvcE;TSifJ#)2Ga^1WMZ`B!=;MA5?1&2zt~{u4I!S(r(w^6 z;DEd3`QAP%?u*f)+xj(=3pz}KmRu7wZG$JZDqt4)IRBQj&%WGSCb&DDt(vb$NlQV+;u#s=xBK#2#Dx)@MV^zaTaA|!CfDCXgbyra_S%)Og$En4{wtv3`cEw zS?jDlX8E`57Zytn!wL>288(HuL6%_=%E)j)*8I#wCwEcmV%O8d`I1|#rt zqLqF9cSP_ts0q*^jG)bx^`~KQp7FI^KyUVl8wnEWA{x+`_l+6e@1`VXB(R7aYC^et zeGkRe?Z;yb1P-S6K>=4H-f{fP+x;fHXmLz|Bd)))TME^VQfoPvX<+`((Y!%%ljt9% z@RB7;%4cfa#lRjq8Hz^pzGyVrQ_R&KmWSuX5~p7Z;No~c^!bC0sbjgy;;bxiNK+&^ zPlo9t<8>DbGR8qR9SoXJa;A0aUkFZY{|n%08V^O_leyYOdd9Gg)TkB+9L`gYZclB zrf#racK~Zwg5rPuRcN_xwkUHub#59=GfTCs^+)ZD-}+q4s{djzhHfn>k46}*>?Gz~ z3dglp^}4!vypk$NH`X4naF@b>!H<}SGMtj+Sg)Q0k(y*05sg|E`eA+LKB1MU){YqE zoUf!sAlpB7ZKpbYVm^K@vlI?jRK}J+vQOa@jxS5B3+z5{t4Q6apMb+8n)M7dD`{&c znsp5s^j-E2CCQ4XmI=((mV;yOZmA?pgw*!@R`VjP)=_Ene)GZIim0Ycu1PLjR(^t0w}S)f}j5Q{~vZ)akAh z_3Yt*ik{Xix|nRM-AJD(T$S`+0Q0uppqCNHS_Ya7p&NP<<#T4OTw9GYo@#u39xdmt zKmOBd-7shiE`E-HjW_SpDc=6nli#a9r&Pq~Py)o%38i9t!3=MY!)*hW`MOA3{^wsK z+KK~Wdb+S>_+yM&4;y0b?5>M}P^8=VhPD9{Tr*xGJWRIIM%7xS^zK&KJx`=e$*T z8M;IknlR$qBO$MmqyS|w!Hp_)`rO}u2AFRy6wvXP2SEvU7<|I;K&_@rOtSEkP2k_HA7LQMQp|ogk>&pd%(9%X?&rvB zqMh(^vIV^PB1h2l-45AP=}x2@Iy@FQTW=shpQtKLAFR?B+;9Y4H2J^IR~vA?z6N4* zx`S&5K}PvR!E2v>@|6&@?a!%->29#r6T41$>y3Z@I{iTU-8l=Lb=8`~2((gBt?xJk za(z(p%cHxd;D>G}F!OV6}}_h_RAIST>K3R{m{AQmrrbOQgut0M;d1$$9wvl0u?+udt zgbR6F7T4-}pJB>gn&ik&-=ME^qoSiWv@0od16gdxPoxZ3$ zdp+L(cul!=k;BoAXh&QJ2)*zca6e+liCh2*3aY-BKim21hCu7ku&wOp^5pg)xF4E6 z$3CGwJRydK)u4{0n6RM~OW978YC7in;{ki8TdD1OY*hO`wY$OQcWhg1oeLA0L(%uryj8iG_?%W>cLWjH%u!$M8*w zs6FM$B@3LOL@PH?^@u9k-%9 zP+a>_Z~wW`T>E`Xo4*V`2{1V};9PX?ldDK1hTS@(MJagZNbrn^Nd?aU$*dBc7y?G0 zqoSf?@S2{>YO1j)@>Fz#3_b=4)F-<{k*DaF=x^{aBTwY{)u2^$s#+>ok^FCk#(s)p z!9F&7_LzPamjT;EnMJfL{iaik-Y=Y7i4oDME0awOQFSQ3iQUk%oT~GQDUNE9X(7D1 z{3l53;ZAh--%(RLmea5jSQ*uP4*9ahz5oDd?Xws)Zba+% zih`j}g%{NoYv3pDZO8ciT6}8!B!c(rl+>4jr;ExLCVvyE`?uU7`e+4;w_=d#a|+T- z2GG>Qw1zDZlX;O&k*+qWSC^U#H$DmP{U6AVq+Vww9(D_XX+iJA+bCb}v`PWN-xI^4Rf%+!x1b#`Jqo=n)g0VlumY$>eeu!|t#zRG@B&n=$9uxwi zI{1kpIDjOvfnE#;jlU?S^w^Y(ScGe6Gu&JJ0Q>MTveo+`TY&F`cO?G!R-vcQy7wMv z>g1(4e3+)vc$%#ltxrfm6446O1{#gPC($J85P+N$0Dwd@mk&6TRq7NtAF4FSwny-f zD3bsRa61p7wlDdnz^3|1`OqCo)tl!J5iL47Y4739oxDzsyh@}PK27`&2`_dRfvEQM z`&B9)O@k-N?4nYETt@))^nD0dM8$w^B*;sH2GFgf7bvE>Xp*DT?P4^!gdIVME~+z(OkD-VPumdSxUlR!@C+T*Hex@#7T+&ci3+ zX%BEmub4{8iNP6n@5IBe?nS?uvx7nuDRqPa8C(7E5nRPPuDxV|LwbvJhsf5!8Y@N zGH&}Aez9SntdNena%jek4R7a1mxhU%oJBz`z9;U#3RfXTfm*2r;5$u2&+ z>*=TIXAjvj%FRcnt&N*-#>UiPXxSEzndvr^uQ(8lbsUAs%xij%Ax!q^5W9Pg*7E;P zZC@VOFf=B=n1mz4zJOavg z(dw$ywFDzV1R+fkyfqFp27SDd?33gYz$M5&gzVaeZ$niX%&pb2po|(^lW)iPb z4y_)`#TB9KDo`R6E=2a`c`WNV`(W|Q3r?|Ft2|4)oYjNI=-5QSQpFHgB#0>}^}y5O zIf`}tPbJrm0z**L%k%HP?=Ie4eTLw0LaZuy3%oreaK zl)k62%*V*6H5I+YPS~n?*oPp5j(l0zPtl_A2nAY*EbWono;aZ5U8`w{)q`Xjr;`d>ssRQ1}fcg)GN)4l)1r|H@&*_WZEgSyd< z$6sIY=EtHZB21!-v#f>*e#OiqTf#hP_v_P9`(7n8D-SA+Y{OCmq&2tz+f-lokg@3S zFau}zK*ef8>s~r%nF|$(Xs1Vp-P5|(M!8`ZW}a{${7cebmFYFKJO?>_?a`Cp9*@fn zVw38IHVR2|oua;Mxyg-wxA2Ql)CB#@5pAt2^66KC=!~}9*)g$=pLqqd#<{)?@0GQ% zW3z4L$y`hTHA3sDQ7II#AfX8Hgjm=zE7Tz(-Mxf*a<9(X1K2jZ8Csz8MCm<;4AvtKp)kGTrccv19hp~s!s<{X2nhtbx!9h@ z!JZhfPDslZOP8-;t#i=7}f%6 zJ9h7zO)DCtA@-mTO8y?E@igPU)v=(b!TrJ#`K-~8Ii~3N*WAbK+-$wC9yngg7+;u0 zxZ#HD|7JhCE$+q@uY#hPE{!Y0rU55fU2_x54mE`JLLQ*tIgaW6I!ATRsC5aOH5nR6 zJN<_BLjXS+CY_UBaR?^elW>)oM2L1Uetp4!css{?DmyQ3SK>E>=@NnFsLR-npYpW^ ziftmCE04ZexU6GQa8_RzSroSDFxg=>vQk1zXlq`$TgcMY?XTSs8q^uI0(V>C3DbQ^ ziztyJ)0I4rJmTk*r!i-@o50!}aVaQclUZSq$n3~hGqHvqHX(K^mOYP+-&Kr=VQTTp z&NUS#5KizP)if2x7lw6$@5H<5YYCohUc z8?TLx{Iu?T9k4rkCqa<-t6tw-d%1aju()ji!kLE2|VI z=OLf?*QEAO^w78a^ORkf2%c7F9(mN?L*q-Yf6Y3vF zWvinFt&w%6I1}sTYM9bLNTt>yZG^YQcAo2Pu-0 z4w5taqEC_`HZGG-E^t{K@G6B?PJUP%WQ@JX^PULI^%>Ml)n1sQH(q5H)w_ypW$z|v zUix}Z>yVW>edR9EZHzPN8rdy??c1k(T4P|Jo$~GgmriY6+~8gEB3$cOZj1wG?z%`) ztV>Y#jh~sJDMu*Bww4Hrc+{Iwb)EK%|h z{$$}z1IEj!76uiE-qfBwak1Hqh9v)m2AFvegG3E?H5-_pqc~dk%ciVl!D$zborq#l z#E-mF^uC}@kEplP5-6;cc*`+%?obak-36rsvs|{!50Yw&B-;*?a*eI5J7IWxS9?8E!h@jEW7?WY;M=RQ;Yc=+SLP1hat2MDZO1vPE(f0h7bo8Ui_Rb3h{=2n%4ziaP z=IPsaFA5$f>}4E_^x352>qhdDQe4;i$8j2jn8*$lm3i*Z5xi?w{yrU5@qSsENf)F8 zf!i)5v0v3FyhSse_dSzSThm<@7{XMRJ`_M2bjk|uJ$9}_`)JY8kYsUSlH=pp+`YK( zy5>b}+nC16OUi`&f{L1p@*f|h1SUCHV_08hrhA=~Ic2YXXJh)(?^{u)PuFJ^_VN9= zIiGAE@z@WLKKq^#QSxPCi$nUK7DtA7qh@9w#kO;issJaKxz(42-r@#~03RN++WU9f zf$wkY_1f^L#?|rM&sU?f1W3~DU6S%4!iV262y;G17m-b<(WF4A64&QX(J+@@&9?&q zIndG6=TBb0=YvrBL^P4L^ROq8=6V(V8wzb$@s-nOvY<`{Y^3E$N-h0xZ+g;EL#%PT zP{nv57jKsm8bqsFR`aS3rSD+ptE756-Lz4BkxkPI=+cm8+7C_{I2(_=Bs@rLT)f?Z z=C-qb@piPQXtg}u_iyaQ{)KIutvaa}tc6r%X4t0(sh*^FcH)rxrGFhb6*~fTzMO8f zJ6mJNQ|0H^>$uvEqy{=-VXN*bg-~v&D=%j_K5#$d`R4{tt5Q8x<)f148yp@IRQcnC zev42P;aZ>&-F+k~`Xwvq-l6=5K0?E3OM_=&t0lHBCl1eO%ym%hDB5(n0&nBnw#YVa z?T_4IQEn0|THDr%a0&g~v#CfJv_3je(KjwFze=sQ_^!Ua9cs{>DXA{xEHtPK%F<=w z`_^ETSR<>cpk3Uc(tJ!|+h6g!A$7f_NxCy%ll2FGA!-S(5Fb|OL}p`{E_lw% z#Yevt4K9hUK8%AHTQSDb6=h_4H9?Y^5CmmLuG8w!_b=8U#=bchQ8s8fj`mxCSGlDfA&rr zM{&GFF?ONr3kPi}i>UVQE6=RR>$sI_a!TG1a3624bTa4ZZE4A|I$WPQWxC}1aZ<4z z?NGO0n>(NSt!k?o=dXY!MJH3>DX zJ%@JmMl-94aQzINFWv7=>C%|to$SJ&JdW<>1?+L#K(CYLRfG-!pJ0$Uekb{(HL{6F z7g#9{-w#bSuis!krj2~@mnDf^cZSo3yLzv_JN_NAeB7pQ`$O5oM$@tc98N*95$fg; zh4<{g>M&wEQ%eNn`ca-GVnSv19g{^Xq7GT2p7=Z-L=*b?m=_%Uo zXWpKhxZiIo+@AI6Rl(dcW0%=8r5uarkA2Mb=ESbnHv0Z98^MS9X=6`}3o+jAL3Q+x zhYVk~p}$mFK1283F%bPiMYp-_sV=^SCbEg!?y*aMnxAp%`MM1jcav(SOLu}~K!yg- zpF2NeSeMqId{hga$-qG*@SLvQA69<7R6^TTXGH5*20{ASfS^|nGLSo5I9FXY;{ z@uQF-NuABAxS*9NwMLJmVBcwD+Ny&*4R&Z_!oSu^KU$H-5Upk%xQ=o5RISF#v#gw^ zR^vOeQt>D9p8x4!&c=K_!8P9ttXMY2Uywo7l99~He?x^s!fV#&d-|6p>!LJJP-*3adZN^-pXfx@%bO4Wc4&~JLduvz)lsl`@=pMIn^XUGJa zn{7MaPH8m1!b!!F*zKj>s@>S5^ld5 zSvHNsJ19?h0xhDwf}$THGNjNA0t7Aaub^Nt~%5A=%)1+TP5$h|ms?xG$^u5g9$A0gZFR85Y*RJ<1%sp*O zCbTZCE+2d3ti3nqfEQxAG0o$ToSYF9FSLE`5aw>*i7Z&zWG~aQId#ws*MAGCAmNj@ z6P=srVI-gFj;(k9uPKnPs7vk2S$i`mn{$WW77<9)(F zJP~TCQg8xsj!vHLTWVT!eElO>mD@7s1jP^Z;}!-zrE~V|>t!R$VTF~{B-5xyt7WZ` zQWF&39%r4i)Mrsjd@lX5W#U&B#qm%l!-E?Z1CeE;^O{kJ-6^@^DfJ#E5CmZQQX4gz zBNxP3Zpr3dy<*Xg+c?K(VhA`hV(R89yNNqzel}_tl`qt%Sds=J6sWifHveTYQISy? z(9yc2C^N&twcTE?t(<^9ftZa!Irmux&q`GkIfswsM=kY zn4S$iny3mbNw9(|IHzqaC#p;tj~y54*$qV=e!fO})D z&kjK_s)DF5)H7vCZCXjYici#!=Vm6N2iI|~hY8|$OSgM4mk(iwl#B)SF#-Ys8+hsG zH4z~s((q<8rCV&rn-1gg(q~X8XTWAYkJPD3Io9P`fK>Ugm@r;)addBfb_Lv`A0I@A zJ#f0xO4>VI$n7Z3io*F`(Um}*Qa>n<04b$~*);r-z0f!FuhqOv-hv~-`pNlupuyR{M)Eo|3#7hXg_E#+pI-g;tTi@3~cKF@e?%?55O3&U?E2kK?@d9O2VJx0i*Zs7nTjWg8wi4)~AmKYbB+O&BbQ7oF}p)^SzIRGt+5G&CN8u>s2WiOAV}> zJADkqlT(_mnCw?ho#=&3@2deVo!e49s4psnh)ESeUBG?T8dr<~a1Ht)T+aWz6PjZpWO>ea`|Fw83&Q zx9M9EmatwhP%R$9MHF)O9MH&Ho?iD{KTFIlq+fdkYgukx#kLW>mfAM>T?Nb)uf|pi z1^M2qDnBKz@UleV9~F!f|Ggsg!<<@k%D2IMo!OsJ1z(sc0@Joe8m#sC)^T|kD6!A( zreg{DS*}_oHuBNegzA#^-X%tD(QQyVIq}2|EM4Hg$EGqcxsn*Ts}4Q;-O<;lJHYJf~3ZGxOF z{V2sBns|_)ph3s2r4_Gdvt6oM%(974VH=9tS6rvJMv}WeU)j`ZP8-+0 z)2h=dyEc;e=Zulez#~lm&b^$){s|hyz_Ty&_Oe!Wyups<5UJy=ZPkvs=dBifp;oG(EAemU9cwQSy$# zw7X$mQdy$-7(|yPE${?dzso;1&w~PSw!DvvjWx@j3D{^sxH}8Sh)cXz@l9A;oXYwR zJp(;e(Q?9|cPegj;6=!=Dcdw)XGRKJD>ANiNf;|md`PYdNXI_gl#a40q?fawr|V14 z+W(x5Wv~0dM8U7VqC{o7_5@_-ox&O#;h>~?(FN|A1c?t$8N6tp2FNFpK~acNAC9v8 zKe!7^|JQZ**+{RCLRQ$aVh{CKja&%($}XDyW9Z=d|36zb|j z;wTj4-*;MFWgl96u9Y;lH1I571EFjRiWJwc({2cV;m(m5);1z9FF`5dC&Bwp8$!QA zowdT<>Nj-YN8CXvQ~HmOz0~j2n_42bhFSeM{=eNC9CPV=CKBvIn21p1U_XBX+5GvR z1lvmE;1YL`@vlU#J}BK>x)V?5T%w(r|0hkaZ_qt3OlDRwCElGdpEvr`Qsjsf?T5{e z;5xwn$dlTQ_-W~UnczD05*|YSw6efWX&#R68%;58gO`CkK8z&~VNqG5)*v1ZiGwcC zyT)b+=K}3M5_?@v7`e+|Sz+=s%MbyyA{P9pR9OpJyPgVJm@GU>oKKl1DY{#hn&Qlg zAX7i)d>ty&qbJIsTgk|4DEpSErx&q$f}r_z-RIZv?1+{6j|AwsTb>JyZVOzkT>{z4 z$-asqMuruJ2TL@i$+VO99RV9D`Wo+@2Sl<8H9)W^+8>LQVrYi2xcA0!0ShU_PgGFP zB%J=9p4s@2p0VAuwfmbb()<3-TG-<A%vL)-~i~(9cWES8C(2E9Nx0S!p%Uedg6puX+lGuOgFNz2L?s|C7kJ|35_T z-Kr+?~`f#wGz1|i+k84jmKja4IW_4AetjOe2o6)hSJ zFuMS`F^5CCXDZDYX>|VNK%-Js9HAz$<^O}kr-8(Q2#HrsAtd%oqi1YmWCSniqm>5R zucA1@g7^ra+Z-r{?|>Cx%;Pp$v=O8KQI^La5aJH`gyZA37-Y6fimjh-pFVQSdo090zS_U)t58TN-P3ofqc+P{~diBvxRRMMFYXR}*zji#V&h%3? z&OLY>kNz(vh~B*f8d_~E+3rHI;BEn`oh7H`H9_;5a|qhf>ZEan=K~QeT35z-L7Q4A zJy@mgLW4xS)L}13K~aMk(rM>CM!o;!?CnM&P)r>XL+Gl0F`(qX09e!BGyh}cG-q#r zq{8k^r0F^Wf)Sv*2oY>a>MZ6=V*gy%u&I0+m~qZ`m46F=F53bhu#@jXh*Uxsmu)x| zl~=`QSmY=1VG`aXSGQSJwWb;KoJ*+-7BrOg5cT#me@)lV zX)u!9LfOs~rnuSNK_O5vIn57$=*8#a03MEe@q--=d9*L19WekJ^X;!vAQgqz`tgXz zC>TPtsnaUx#xh$Fm)L8-@^8Tt4{9%YwH+Vs&aE;H&F+5Xr-1<>ldLWoX4go${Bp_(vFcK247Vg?1;_h zb2Z4pj+lIYl079g{8vC<+QTju63)B&VJIU;GT?pS+jLz`^qS%GV09)}wD9$v#s1%H zX{?gT2VMAxVJlO}0zRA8z-enR_;JJM>{L>?%v=i}&_fnGS87YO$O_rT8nd1 z2!(zD41yp`U1(3%#c();5A2~g-wdt=Jilv4~%x;t}Ll-)fzFzaLF9x9pzB-5|O zhp|kiJQx|vm|!-bnX)_$uzf^zN&LBxA*@L0!VlS^oE%V24uWRp9x-OAWumufUMA|I zLa@jE!;>+QR+?yZ(&EE`v_&B#zZCANGN%DqYpH5v7~fhNoT0yD#@U-<#N8#_yP#a%`USCAu;bj| z;ItTi;BVL=9maE7?8!XZqhSn>R&AG80WFbuYoUsRy6qCesM0^&c|mK;x*oQc(nUM& zZ4`OSh&H}XIxO9Y5Vd!XQSnW<47xkQK!gA_y-vL}vWl!tyUeXcB_lvEgaxN(?z%pV zJ@YU!gA5CXy${_T;M2n^GI%^P*wIM6fTXFB>atS982rbnkL=Y#B(|WPFsJ|JdaOA> zr9M>#y^E#+BPy;t=fkxTqiP$2KiTIBRFRYbB|zF;_Js--!PoG3u7nKMl}LshftWId z6fBx-VD~N3q_nkSjtt5{NWs7eraiMQ=<_%B%?PF`O+BoF34sOXCsvLKq-bj#RaKspPDxoK|tRU9|^k zQueCq>>=N^=a80W2W3+UIrS~+-Eb=3wY7~cnWq9d-Rl9G=27Mj|LvMPG2qN~uXmaN zYi9#smM;Qr>)l!8@X$LjEaZnxpyoI6!+3PK?C;uN4FbA=zzCke=D2xafrIOOHYPyC za#%W=cZ_V*3oG+Z&wFIa_~5O73mtr2O{4wmRAw4IDgq@gG1ucdSUbR^6)hQ7^@H6r zpuxZq7(|pA=rw&r*udh+umB+hWL@LU@jk+>FVAdI49A z%v%;(&^>SgA%IFcYzhRKSI-g#a#esQd&aoU7CiVv$qC3HaL@(P7#8l0dla)D7Vc5s z7X?*#>$qSgoM9#-E}<5$LYR_!26$XPomJ72mxA1UMBl2&VDdLs)#ulRH>#-*)`@3g zejR+yOYDWgz?-U4WX!Szu^gE4n8#)Lbma;C!X2%5MH7V$^^50DT3qtPdYJb(h%R-$CM8;4rL1G#My8h=C^&TAJ&Osx{+D7F1>)pYDfEd|Za3ls^Aiq*SxW)8!+D!?_ z_vZUb%@=JGPk}kE)}TmKY4T_APr$%NI#SI)WF0aHC?Q7o`*0HDc0Ew4rW;KB_v#oq zKl@(@^WloNnwwfJ1!0SfhU+M-a70^y8$An9+&zz=i~4@xAcYg?WH9gAnm2 zd(S#78C0t?V7`ZHWdjy+ZT)lwe7nzSK*l?vDt(KSf`$Qp0zlt7I%g#I2>hE66iwUe z>Z98~jL#q<{+OlG2pL-4^q1(l>qx}8ewuc95|P$l9D%cui}DiS33wV<8*i$%yFi@g z=JgAFj*JZKFhrsxhItJBQxI%Wg<=l)0drvUN*-GoCRKvbTFO&=xgqAmR2X$ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/blog/generated/private-eks-day-2.jpg b/src/assets/blog/generated/private-eks-day-2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d2bdf7bdeffdaaf65d7eaa4ee2f72bdc01495ca7 GIT binary patch literal 62947 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 G;Qs)|HOkch literal 0 HcmV?d00001 diff --git a/src/assets/blog/generated/private-eks-day-2.svg b/src/assets/blog/generated/private-eks-day-2.svg new file mode 100644 index 0000000..bfa0dc7 --- /dev/null +++ b/src/assets/blog/generated/private-eks-day-2.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/blog/generated/private-eks-tailscale.jpg b/src/assets/blog/generated/private-eks-tailscale.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0a4258079d23c129fac543472f874f9c9c426b7d GIT binary patch literal 69281 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 ZnaPtha^c{6wAQ+7gXD$+gy(+={}287J|h4C literal 0 HcmV?d00001 diff --git a/src/assets/blog/generated/private-eks-tailscale.svg b/src/assets/blog/generated/private-eks-tailscale.svg new file mode 100644 index 0000000..fdf6ebd --- /dev/null +++ b/src/assets/blog/generated/private-eks-tailscale.svg @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/content/blog/eks-upgrades-without-drama.md b/src/content/blog/eks-upgrades-without-drama.md new file mode 100644 index 0000000..8a8bd67 --- /dev/null +++ b/src/content/blog/eks-upgrades-without-drama.md @@ -0,0 +1,227 @@ +--- +title: "EKS upgrades without the drama" +description: "Why EKS upgrades keep sneaking up on teams, the order to do them in, finding deprecated APIs from CI on a private cluster, and what rolling back really means." +pubDate: 2026-10-31 +heroImage: ../../assets/blog/generated/eks-upgrades.jpg +heroAlt: "A staircase of version blocks climbing from left to right, with a cluster stepping up onto the next one" +draft: true +--- + +Kubernetes ships three minor versions a year. EKS supports each one for 14 months, and then for another 12 at six +times the price. Upgrades never stop coming, and teams that treat each one as a project tend to fall behind, then pay +for it. + +This post covers how to make EKS upgrades routine. It builds on the private cluster from +[the first post in this series](/blog/bootstrapping-private-eks-argocd/), which adds a twist: CI can't reach the +Kubernetes API, so the usual "run a checker against the cluster" advice needs rethinking. + +## Why falling behind is expensive + +Every EKS version gets **14 months of standard support**. After that it moves to **extended support** for another 12 +months, and the control plane price goes from $0.10 to $0.60 an hour. That's roughly $73 a month per cluster going up +to $438. Across a dev, staging and production cluster, that's over $13,000 a year spent on not upgrading. + +At the end of extended support, AWS upgrades the cluster for you, whether your workloads are ready or not. + +You can also choose to skip extended support. Set the cluster's upgrade policy to `STANDARD`, and AWS upgrades it +automatically when standard support ends: + +```hcl +module "eks" { + # ... + upgrade_policy = { + support_type = "STANDARD" + } +} +``` + +That sounds alarming, but it's a useful forcing function. It turns "we should upgrade at some point" into a date, and +the date is always 14 months after the release. In practice, if you upgrade on a schedule you'll never get close to it. + +The other catch is that **the control plane can only move one minor version at a time.** A cluster that's three versions +behind needs three upgrades in a row, each with its own checks. Falling behind doesn't just cost more. It makes the +eventual catch-up much bigger. + +## The order matters + +An EKS upgrade isn't one thing. It's at least four, and they have to happen in order: + +1. **Things in the cluster that need to be ready for the new version.** Workloads using APIs that the new version + removes, and add-ons whose current version doesn't support it. +2. **The control plane.** This is the bit EKS does for you, and it can't be undone. +3. **EKS add-ons**: the VPC CNI, CoreDNS, kube-proxy and the Pod Identity agent. Each has versions built for each + Kubernetes version. +4. **Nodes.** Kubelets can run up to three minor versions behind the control plane, but never ahead of it, so nodes + always go last. + +Most upgrade incidents come from doing step 2 before step 1 is finished. + +## Step 1: find what will break + +### Deprecated and removed APIs + +When Kubernetes removes an API version, anything still using it stops working: manifests fail to apply, and controllers +that call the old API get errors. Finding these is the most important prep work. + +The usual advice is to run [pluto](https://github.com/FairwindsOps/pluto) or kubent against the live cluster. On a +private cluster, CI can't do that. But there are two other angles that don't need cluster access at all. + +**EKS upgrade insights** come through the AWS API. EKS reads your cluster's audit logs and flags any deprecated API +that something has called in the last 30 days, along with which client called it. It also checks things like kubelet +version skew and add-on compatibility. GitHub Actions can query it like any other AWS API: + +```yaml + upgrade-readiness: + if: github.event_name == 'pull_request' + runs-on: ubuntu-latest + steps: + - uses: aws-actions/configure-aws-credentials@v6 + with: + role-to-assume: ${{ vars.AWS_ROLE_ARN }} + aws-region: eu-west-2 + + - name: Check EKS upgrade insights + run: | + aws eks list-insights --cluster-name platform \ + --filter categories=UPGRADE_READINESS \ + --query 'insights[].[insightStatus.status, kubernetesVersion, name]' \ + --output table + + failing=$(aws eks list-insights --cluster-name platform \ + --filter categories=UPGRADE_READINESS \ + --query "length(insights[?insightStatus.status=='ERROR'])" --output text) + + if [ "$failing" != "0" ]; then + echo "::error::$failing upgrade insight(s) failing. Fix them before upgrading." + exit 1 + fi +``` + +Run it on pull requests that change `kubernetes_version`, and the PR can't go green until the insights pass. Insights +refresh once a day, so after a fix it can take a while to clear. + +**Your manifests are in Git.** With Argo CD, everything in the cluster comes from a repo. You can render your own charts +in CI and check them without going near the cluster: + +```bash +helm template ./my-app | pluto detect - --target-versions k8s=v1.36.0 +``` + +Between the two, you cover both what's in Git and what's actually calling the API, including things you didn't deploy +through Argo CD. + +### Add-on compatibility + +Every controller you run has a range of Kubernetes versions it supports: the load balancer controller, cert-manager, +External Secrets, Argo CD itself, and any operators your teams have installed. Check each one's compatibility matrix +before upgrading. Often the fix is to bump the chart version first, in its own pull request, while still on the old +Kubernetes version. + +This is where keeping chart versions in one `values.yaml` (as in the +[Day 2 post](/blog/private-eks-day-2/)) pays off. The list of things to check is one file. + +### Read the release notes + +Read the EKS documentation page for the new version, and the Kubernetes changelog's "Urgent upgrade notes" section. +Most releases have nothing that affects you. Every so often there's one that does, like the end of Amazon Linux 2 +AMIs. EKS doesn't publish AL2 images for Kubernetes 1.33 or later, so any node group still on AL2 had to move to AL2023 +or Bottlerocket before it could upgrade. + +## Step 2: the control plane + +With the EKS Terraform module, the upgrade is a one-line change: + +```hcl +module "eks" { + # ... + kubernetes_version = "1.36" +} +``` + +The control plane upgrade usually takes somewhere between 10 and 30 minutes. EKS replaces its control plane instances +gradually, so the API stays available, though long-running watches may reconnect. + +There's a catch with managed node groups. By default they follow the cluster's version, so the same apply that upgrades +the control plane also starts rolling every node. For a small cluster that can be fine. For anything bigger, pin the +node groups so the control plane and nodes go in separate pull requests: + +```hcl + eks_managed_node_groups = { + default = { + kubernetes_version = "1.35" # bump in a follow-up PR once the control plane is done + # ... + } + } +``` + +That gives you a point between the two where you can check everything still works before nodes start moving. + +## Step 3: EKS add-ons + +Each EKS add-on has versions built for each Kubernetes version, and `aws eks describe-addon-versions` lists them. The +EKS module's add-ons default to `most_recent = true`, so the `coredns = {}` entries from part 1 already move to the +latest compatible version when the cluster version changes. + +That's convenient, but it also means a plan can change add-on versions on a day you weren't expecting to. If you'd +rather every change be deliberate, set `addon_version` on each one and bump them in the upgrade PR. This lists the +versions that work with the version you're moving to, newest first: + +```bash +aws eks describe-addon-versions --addon-name coredns --kubernetes-version 1.36 \ + --query 'addons[0].addonVersions[].addonVersion' --output text +``` + +kube-proxy is the one to keep in step with the control plane. It shouldn't be newer than the control plane, and it +shouldn't be more than three minor versions older than it. + +## Step 4: nodes + +Managed node groups replace nodes in a rolling update. A new node joins, then an old one is cordoned and drained. That +drain is where most problems turn up: + +- **PodDisruptionBudgets that allow no disruption.** A PDB with `maxUnavailable: 0`, or `minAvailable` equal to the + replica count, blocks the drain forever. Managed node groups give up after 15 minutes and fail the update. Find these + before you start: `kubectl get pdb -A` and look for `ALLOWED DISRUPTIONS` of 0. +- **Single-replica workloads.** They'll have a short outage when their node drains. If that matters, they need a second + replica, not a careful upgrade. +- **Admission webhooks with `failurePolicy: Fail`.** If a webhook's own pods are being rescheduled, every request the + webhook covers fails in the meantime, which can include the pods needed to bring it back. Run webhook pods with at + least two replicas and a PDB. + +If you use Karpenter instead of managed node groups, nodes pick up the new AMI through drift detection and are replaced +within the disruption budgets you've set on the NodePool. The same PDB problems apply. + +## Rolling back + +**You can't roll back the EKS control plane.** Once it's on 1.36, it stays on 1.36. That's worth saying clearly to +whoever approves the change, because it changes what a rollback plan means: + +- **Add-ons can be rolled back.** Revert the version and apply. +- **Nodes can be rolled back.** Point the node group back at the old version, or create a new node group on it. + Kubelets can be behind the control plane, so old nodes will happily join. +- **Workloads can be rolled back** through Git, like any other change. +- **The control plane can't**, so your rollback plan for it is everything in step 1. Test the upgrade on a non-production + cluster first, and make sure the insights pass before you touch production. + +There's one more option for clusters where an upgrade really can't go wrong: **don't upgrade in place.** Build a new +cluster on the new version and move traffic across. If your clusters are built like the one in this series, that's a +lot less work than it sounds. Terraform creates the cluster, the bootstrap installs Argo CD, and Argo CD installs +everything else from Git. A new cluster is a new Terraform workspace and a DNS change. It's more effort than an in-place +upgrade, but it's the only approach with a real rollback. + +## Making it routine + +The teams that find upgrades painless aren't doing anything clever. They upgrade often enough that each one is small: + +- **Pick a cadence and stick to it.** With three Kubernetes releases a year, aim to upgrade each cluster roughly every + four months. You'll always be one or two versions behind the newest, which is a comfortable place to be. +- **Upgrade non-production first**, and leave a week or two before production. Most problems show up in that gap. +- **Keep the checks in CI.** Upgrade insights on every PR that touches `kubernetes_version`, and pluto on every chart. +- **Write down what happened.** A short note per upgrade (what broke, what you'd do differently) makes the next one + faster, especially when it's a different person doing it. + +An upgrade that happens every few months, follows the same steps, and gets checked by CI isn't a project. It's just +maintenance. + +If your clusters have fallen a few versions behind and you'd like a hand catching up, that's something we do a lot of. +See [platform engineering](/services/platform-engineering/) or [get in touch](/contact/). diff --git a/src/content/blog/platform-audit-findings.md b/src/content/blog/platform-audit-findings.md new file mode 100644 index 0000000..63d7ef2 --- /dev/null +++ b/src/content/blog/platform-audit-findings.md @@ -0,0 +1,182 @@ +--- +title: "What we find when we audit a Kubernetes platform" +description: "The ten things that turn up again and again when we first look at a team's Kubernetes, Terraform and pipelines, why they matter, and the smallest useful fix for each." +pubDate: 2026-11-07 +heroImage: ../../assets/blog/generated/platform-audit.jpg +heroAlt: "A magnifying glass over a grid of cluster nodes, with a few highlighted in amber" +draft: true +--- + +A lot of our work starts the same way. A team has a Kubernetes platform that works, mostly, but it's slower, more +expensive or more fragile than it should be, and they'd like someone to look at it with fresh eyes. + +Every platform is different, but the findings are remarkably consistent. These are the ten that turn up most often, +roughly in order of how often we see them. None of them are signs of a bad team. They're what happens when a platform +grows faster than the time anyone has to look after it. + +For each one there's a quick way to check your own platform, and the smallest fix that makes a real difference. + + + +## 1. Terraform that doesn't match reality + +**What we see:** `terraform plan` on a supposedly up-to-date environment shows a page of changes nobody can explain. +Someone fixed something in the console during an incident, a security group got edited by hand, or an apply failed +halfway months ago. Now nobody wants to run `apply`, because nobody knows what it'll do. + +**Why it matters:** Infrastructure as code only helps if the code is true. Once people stop trusting the plan, changes +go back to the console, and the drift gets worse. + +**Check yours:** Run a plan against every environment. If any of them isn't clean, you have drift. + +**Smallest fix:** Run a scheduled plan in CI every night and alert on any change. Then work through the existing drift +one resource at a time, deciding whether the code or the console is right. Once plans are clean, keep them that way. + + + +## 2. Pipelines with admin keys + +**What we see:** Long-lived AWS access keys stored as CI secrets, attached to a user with `AdministratorAccess`. Often +they were created by someone who has since left, and nobody knows what else uses them. + +**Why it matters:** Those keys are the most valuable secret you have. Anyone who can change a workflow file, or any +compromised dependency in your build, can use them. + +**Check yours:** In IAM, look for users with access keys, and when each key was last used and rotated. The IAM +credential report has all of this in one CSV. + +**Smallest fix:** Switch CI to OIDC, so pipelines get short-lived credentials and there's nothing to leak. GitHub +Actions, GitLab and most other CI systems support it. Then scope the role down, and give pull request plans a separate +read-only role. We covered the setup in +[Bootstrapping a private EKS cluster](/blog/bootstrapping-private-eks-argocd/#step-1-let-github-actions-into-aws-without-keys). + +## 3. Clusters several versions behind + +**What we see:** Clusters two or three minor versions behind, often in extended support. The last upgrade was painful, +so the next one keeps getting pushed back. + +**Why it matters:** Extended support costs six times as much for the control plane, and the catch-up gets harder the +longer you leave it, since you can only move one version at a time. Add-ons and Helm charts fall behind too, and +eventually you can't upgrade one without the other. + +**Check yours:** Compare each cluster's version with the +[EKS release calendar](https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html). + +**Smallest fix:** Upgrade non-production now, on its own, to learn what breaks. Then put upgrades on a schedule. We +wrote up [how we approach EKS upgrades](/blog/eks-upgrades-without-drama/). + +## 4. Resource requests that don't match usage + +**What we see:** Either no resource requests at all, or requests copied from a template and never revisited. Most +often it's the second: pods requesting a full CPU and 2 GB of memory while using a tenth of that. + +**Why it matters:** The scheduler and the autoscaler both work from requests, not usage. Requests that are too high +mean you pay for nodes that sit idle. Requests that are missing mean noisy neighbours and pods getting evicted under +memory pressure. + +**Check yours:** Compare requests with actual usage across the cluster. `kubectl top pods -A` gives a rough snapshot, +and your metrics stack can give you the trend. A cluster where usage is under 30% of requests has room to shrink. + +**Smallest fix:** Set requests from observed usage, with headroom. Run the Vertical Pod Autoscaler in recommendation +mode to get suggested values without it changing anything. Set memory limits equal to memory requests, and think hard +before setting CPU limits at all, since they cause throttling even when the node has CPU to spare. + + + +## 5. Surprising network costs + +**What we see:** NAT gateway charges that rival the cost of the clusters. Every image pull, every S3 request and every +call to an AWS API goes out through the NAT gateway and back, charged per gigabyte. + +**Why it matters:** NAT data processing is charged on everything that passes through it, even traffic to AWS services +in the same region. A cluster that pulls large images often, or reads a lot from S3, can rack up thousands a month in +NAT charges alone. + +**Check yours:** In Cost Explorer, filter on the `NatGateway-Bytes` usage type. If it's a big number, find out what's +sending the traffic with VPC flow logs. + +**Smallest fix:** Add a gateway endpoint for S3, which is free and takes S3 traffic off the NAT gateway entirely. +Then add interface endpoints for whatever else is heavy, usually ECR. Pulling images through a cache in the same region +helps too. + +## 6. Secrets in the wrong places + +**What we see:** Secrets in Helm values files, in Git, or in Kubernetes Secrets that someone created by hand and nobody +can recreate. Sometimes all three for the same secret. + +**Why it matters:** A Kubernetes Secret is base64-encoded, not encrypted. Secrets in Git are in every clone, forever. +And secrets created by hand are lost when the cluster is. + +**Check yours:** Search your repos for anything that looks like a credential (gitleaks or trufflehog will do it), and +list the Secrets in each cluster that aren't managed by anything. + +**Smallest fix:** Pick one source of truth, such as AWS Secrets Manager, and sync from it with External Secrets. Move +the most sensitive secrets first. Anything that has ever been in Git should be rotated, not just moved. There's an +example setup in our [Day 2 post](/blog/private-eks-day-2/#step-4-one-secret-store-and-a-first-real-secret). + +## 7. Everyone is cluster-admin + +**What we see:** One shared kubeconfig, or every engineer mapped to `system:masters`. Access was set up in a hurry when +the cluster was new and never revisited. + +**Why it matters:** It makes every mistake a potential outage, and it makes it impossible to tell from the audit log +who did what. + +**Check yours:** On EKS, list the access entries (or the `aws-auth` ConfigMap on older clusters) and see who gets which +policy. + +**Smallest fix:** Give people access through your identity provider, with their own identity. Make read-only the +default, and keep admin for a small group or for break-glass. On EKS, move from `aws-auth` to access entries, which are +managed through the AWS API and so can live in Terraform. + +## 8. Deploys that cause downtime + +**What we see:** Single-replica deployments, no readiness probes, and no PodDisruptionBudgets. Every deploy, node +upgrade or autoscaler scale-down causes a short outage, which has become normal enough that nobody mentions it. + +**Why it matters:** These outages are small, but they add up, and they make every change feel risky. Teams start +deploying less often, which makes each deploy bigger and riskier still. + +**Check yours:** Look for Deployments with one replica, containers without a readiness probe, and workloads without a +PDB. Then watch what happens to error rates during a deploy. + +**Smallest fix:** For anything user-facing: at least two replicas, a readiness probe that checks the app can actually +serve, and a PDB with `maxUnavailable: 1`. Add a `preStop` sleep of a few seconds, so the load balancer stops sending +traffic before the pod shuts down. A policy engine like Kyverno can then warn when new workloads are missing them. + +## 9. Monitoring nobody looks at + +**What we see:** Plenty of dashboards and plenty of alerts, all going to a Slack channel that everyone has muted. +Meanwhile, the first sign of a real outage is a customer emailing support. + +**Why it matters:** Alerts that fire all the time teach people to ignore alerts. And the ones that matter get lost in +the noise. + +**Check yours:** Count how many alerts fired last week, and how many of them someone acted on. + +**Smallest fix:** Delete or silence every alert that nobody acts on. Then add a few that page on symptoms users would +notice, like error rates and latency for the main user journeys, rather than causes like CPU usage. Fewer, better +alerts beat more of them every time. + +## 10. Backups nobody has restored + +**What we see:** Backups configured for databases and clusters, sometimes with Velero, but never tested. Sometimes the +Terraform state bucket doesn't have versioning turned on, so a bad apply or an accidental delete is unrecoverable. + +**Why it matters:** An untested backup is a guess. The time you find out it doesn't work is the time you need it. + +**Check yours:** When was the last time someone restored something from backup, end to end, and timed it? Is +versioning on for your state buckets? + +**Smallest fix:** Turn on versioning for state buckets today. Then schedule a restore test, even just once a quarter, +of your most important database to a scratch environment. Write down how long it took. If your clusters are built from +Git, test rebuilding one too. That's often the fastest disaster recovery plan there is. + +## The common thread + +Most of these come from the same place. The platform was built quickly, it worked, and the team moved on to the next +thing. Nobody had time to go back. None of the fixes above need a rewrite, and most of them are a few days' work each. +The hard part is making the time. + +If you'd like someone to go through your platform and tell you which of these apply, and which to fix first, that's +exactly what our [platform reviews](/services/reviews-and-training/) cover. [Get in touch](/contact/). diff --git a/src/content/blog/private-eks-day-2.md b/src/content/blog/private-eks-day-2.md new file mode 100644 index 0000000..87ac0e8 --- /dev/null +++ b/src/content/blog/private-eks-day-2.md @@ -0,0 +1,381 @@ +--- +title: "Day 2 on a private EKS cluster" +description: "Load balancers, DNS and secrets with Pod Identity and Argo CD, plus the options for giving people kubectl access when the API server has no public endpoint." +pubDate: 2026-10-24 +heroImage: ../../assets/blog/generated/private-eks-day-2.jpg +heroAlt: "A padlocked VPC boundary with a cluster inside, and a narrow tunnel reaching in to a laptop outside" +draft: true +--- + +In [the last post](/blog/bootstrapping-private-eks-argocd/) we built an EKS cluster with no public API endpoint and got +Argo CD onto it from a CodeBuild build inside the VPC. Argo CD then took over managing itself from Git. + +That leaves a cluster that can run things but can't do much useful with them yet. Nothing can be reached from outside, +nothing has a DNS name, apps have nowhere to get secrets from, and the only thing with `kubectl` access is a CodeBuild +role. This post fills those gaps: + +- **AWS Load Balancer Controller** to turn Ingresses into ALBs +- **external-dns** to give them names in Route 53 +- **External Secrets** to pull secrets from AWS Secrets Manager +- **A way in for people**, for the times someone really does need `kubectl` + +All of it is in the same example repo, +[HeyalSolutions/eks-private-argocd-bootstrap](https://github.com/HeyalSolutions/eks-private-argocd-bootstrap). + +## The split: Terraform does AWS, Argo CD does Kubernetes + +Every add-on here needs two things. It needs **AWS permissions** (an IAM role) and it needs **installing into the +cluster** (a Helm chart). The first is a job for Terraform, which can reach the AWS API from GitHub Actions. The second +is a job for Argo CD, which is inside the cluster. Neither has to reach across to do the other's job. + +The glue between them used to be IRSA: an OIDC provider on the cluster, a role trust policy per service account, and an +annotation on the service account with the role ARN. **EKS Pod Identity** replaces all of that. You tell EKS "this +service account in this namespace gets this role", and the Pod Identity agent (which we installed as an add-on in part +1) hands out credentials. There's nothing to annotate on the Kubernetes side, so the Helm values don't need to know any +role ARNs. + +## Step 1: IAM roles with Pod Identity + +The [eks-pod-identity module](https://registry.terraform.io/modules/terraform-aws-modules/eks-pod-identity/aws) has +ready-made policies for the common add-ons. Here's the load balancer controller: + +```hcl +module "aws_lb_controller_pod_identity" { + source = "terraform-aws-modules/eks-pod-identity/aws" + version = "~> 2.10" + + name = "${local.name}-aws-lb-controller" + attach_aws_lb_controller_policy = true + + associations = { + this = { + cluster_name = module.eks.cluster_name + namespace = "kube-system" + service_account = "aws-load-balancer-controller" + } + } +} +``` + +external-dns and External Secrets follow the same pattern, but they're worth scoping down. external-dns only gets the +one hosted zone it manages, and External Secrets gets read-only access to secrets under the `platform/` prefix: + +```hcl +module "external_dns_pod_identity" { + # ... + attach_external_dns_policy = true + external_dns_hosted_zone_arns = [data.aws_route53_zone.internal.arn] +} + +module "external_secrets_pod_identity" { + # ... + attach_external_secrets_policy = true + external_secrets_secrets_manager_arns = [ + "arn:aws:secretsmanager:${local.region}:${data.aws_caller_identity.current.account_id}:secret:${local.name}/*", + ] + external_secrets_create_permission = false +} +``` + +The same file creates a wildcard ACM certificate for `*.internal.example.com`, validated through Route 53. The load +balancer controller finds certificates by hostname, so no Ingress needs a certificate ARN. + +## Step 2: getting values from Terraform to Argo CD + +Some of the Helm values come from Terraform: the cluster name, the region and the VPC ID. There are a few ways to get +them across: + +- **Commit them to the `cluster-resources` repo.** Simple and visible. They rarely change, and when they do it's a pull + request like everything else. This is what the example does. +- **Annotate the Argo CD cluster Secret** and read the annotations with an ApplicationSet cluster generator. This is + the "GitOps bridge" pattern, and it pays off once you have more than a handful of clusters. +- **Have Terraform write a ConfigMap.** Not an option here, since Terraform can't reach the cluster. + +For one cluster, committing them wins. A Terraform output prints exactly what to paste: + +```hcl +output "cluster_values" { + value = { + name = module.eks.cluster_name + region = local.region + vpcId = module.vpc.vpc_id + domain = local.domain + } +} +``` + +```yaml +# cluster-resources/values.yaml +cluster: + name: platform + region: eu-west-2 + vpcId: vpc-0123456789abcdef0 + domain: internal.example.com +``` + +## Step 3: the add-ons + +Each add-on is one more Application template in the `cluster-resources` chart, the same as cert-manager in part 1. The +load balancer controller: + +```yaml +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: aws-load-balancer-controller + namespace: argocd +spec: + project: default + source: + repoURL: https://aws.github.io/eks-charts + chart: aws-load-balancer-controller + targetRevision: {{ .Values.awsLoadBalancerController.chartVersion | quote }} + helm: + valuesObject: + clusterName: {{ .Values.cluster.name }} + # Set explicitly so the controller doesn't depend on instance metadata + region: {{ .Values.cluster.region }} + vpcId: {{ .Values.cluster.vpcId }} + serviceAccount: + name: aws-load-balancer-controller + destination: + server: https://kubernetes.default.svc + namespace: kube-system + syncPolicy: + automated: + prune: true + selfHeal: true +``` + +The service account name has to match the Pod Identity association exactly. That's the only link between the two, so +it's worth setting explicitly rather than relying on the chart's default. + +external-dns watches Ingresses and Services and writes records into the internal zone. `txtOwnerId` marks the records +as belonging to this cluster, so two clusters sharing a zone don't delete each other's records: + +```yaml + valuesObject: + provider: + name: aws + policy: sync + txtOwnerId: {{ .Values.cluster.name }} + domainFilters: + - {{ .Values.cluster.domain }} + sources: [ingress, service] + serviceAccount: + name: external-dns + env: + - name: AWS_DEFAULT_REGION + value: {{ .Values.cluster.region }} +``` + +External Secrets is a plain chart install. The interesting part is what we do with it next. + +## Step 4: one secret store, and a first real secret + +A `ClusterSecretStore` with no `auth` block tells External Secrets to use its own Pod Identity role, which can only read +`platform/*`: + +```yaml +apiVersion: external-secrets.io/v1 +kind: ClusterSecretStore +metadata: + name: aws-secrets-manager + annotations: + argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true +spec: + provider: + aws: + service: SecretsManager + region: {{ .Values.cluster.region }} +``` + +A good first secret to manage is one we already have. In part 1 the bootstrap build created Argo CD's repo credentials +with `kubectl create secret`. That's the one secret in the cluster that came from a script rather than from Git. An +`ExternalSecret` with the same name takes it over: + +```yaml +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: cluster-resources-repo + namespace: argocd + annotations: + argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true +spec: + refreshInterval: 1h + secretStoreRef: + kind: ClusterSecretStore + name: aws-secrets-manager + target: + name: cluster-resources-repo + # No owner reference, so deleting this ExternalSecret doesn't delete the + # credentials Argo CD needs to put it back + creationPolicy: Orphan + template: + metadata: + labels: + argocd.argoproj.io/secret-type: repository + data: + type: git + url: {{ .Values.clusterResourcesRepo }} + sshPrivateKey: "{{ `{{ .deployKey }}` }}" + data: + - secretKey: deployKey + remoteRef: + key: platform/cluster-resources-deploy-key +``` + +Rotating the deploy key is now a change in Secrets Manager, picked up within the hour. The doubled-up braces are Helm +escaping, because both Helm and External Secrets use Go templates. + +Note `creationPolicy: Orphan`. With the default (`Owner`), the Secret gets an owner reference to the ExternalSecret, +and Kubernetes deletes it along with its owner. If someone ever prunes that ExternalSecret by accident, Argo CD would +lose access to the very repo it needs to restore it. It's an unlikely failure, but a horrible one to recover from on a +cluster you can't easily reach. + +## Step 5: an internal Ingress for Argo CD + +With all three running, exposing something is a handful of annotations. The Argo CD chart can create its own Ingress: + +```yaml +argocd: + values: + global: + domain: argocd.internal.example.com + configs: + params: + server.insecure: true # TLS terminates at the load balancer + server: + ingress: + enabled: true + ingressClassName: alb + annotations: + alb.ingress.kubernetes.io/scheme: internal + alb.ingress.kubernetes.io/target-type: ip + alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS": 443}]' + alb.ingress.kubernetes.io/group.name: internal +``` + +The controller creates an internal ALB in the private subnets (tagged for it back in part 1), finds the wildcard +certificate by hostname, and external-dns points `argocd.internal.example.com` at it. `group.name` puts every internal +Ingress behind one shared ALB, so you pay for one load balancer, not one per app. + +The zone is public, so anyone can look up the name, but it resolves to private IPs that only work from inside the VPC. +If you'd rather not publish internal names at all, use a private hosted zone associated with the VPC instead. That +means your certificates need validating somewhere else, though. + +The load balancer controller also supports the Gateway API now, behind the `ALBGatewayAPI` and `NLBGatewayAPI` feature +gates. Ingress is still the simpler starting point, but it's worth a look if you're starting fresh. + +## Step 6: getting people in + +CI never needs to reach the cluster again. People still do, sometimes: to debug a failed sync, read logs Argo CD doesn't +show, or recover from a bad change. And now there's an internal ALB they'll want to open in a browser. + +There are two separate needs here, and they point at different answers. **Break-glass `kubectl`** is occasional and +should be audited. **Daily access to internal tools** like the Argo CD UI is frequent and needs to be painless. + +| Option | How it works | Good for | Watch out for | Rough cost | +|---|---|---|---|---| +| **SSM port forwarding** | A small instance with no inbound ports; Session Manager tunnels a local port to the API endpoint | Break-glass `kubectl`; every session is IAM-controlled and logged | One port per tunnel, so browsing internal UIs is clunky; needs the Session Manager plugin | ~$3/month | +| **Tailscale subnet router** | A small instance advertises the VPC's routes to your tailnet | Daily access to everything internal; very little setup | A third party in your access path; another identity system to keep in sync | ~$3/month plus Tailscale's per-user pricing | +| **AWS Client VPN** | Managed OpenVPN endpoint in the VPC, with SSO through IAM Identity Center | Teams that need full network access and want it all in AWS | The cost; certificate management; clients on every laptop | ~$73/month per subnet association, plus ~$0.05 per connection hour | +| **Bastion with SSH** | Public instance with port 22 open | Nothing you can't do better with SSM | Public attack surface, SSH keys to manage | ~$7/month | + +**Start with SSM.** It costs almost nothing, adds no new identity system, and every session lands in CloudTrail with the +person's name on it. That's exactly the trail you want for break-glass access. If a lot of people end up in internal UIs +every day, add Tailscale or Client VPN for that, and keep SSM for `kubectl`. We cover that next step in +[Cluster access for a growing team with Tailscale](/blog/private-eks-tailscale/). + +The instance needs no inbound rules at all, just the `AmazonSSMManagedInstanceCore` policy and outbound HTTPS: + +```hcl +resource "aws_instance" "access" { + ami = data.aws_ssm_parameter.al2023_arm64.value + instance_type = "t4g.nano" + subnet_id = module.vpc.private_subnets[0] + iam_instance_profile = aws_iam_instance_profile.access.name + vpc_security_group_ids = [aws_security_group.access.id] + + metadata_options { + http_tokens = "required" + } + + tags = { + Name = "${local.name}-access" + } +} +``` + +Two more changes go into the EKS module: a security group rule letting that instance reach the API server, and an +access entry for the people using it. Here that's an IAM Identity Center permission set role, so access follows group +membership in your identity provider: + +```hcl + access_entries = { + # ...bootstrap, from part 1 + + platform_admins = { + principal_arn = local.platform_admin_role_arn + policy_associations = { + admin = { + policy_arn = "arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy" + access_scope = { type = "cluster" } + } + } + } + } +``` + +Note that the instance itself has **no Kubernetes permissions**. It only forwards TCP. Authentication still happens with +the person's own IAM role, through `aws eks get-token`, so the audit trail in the EKS logs shows who did what, not +"the bastion". + +The tunnel has one wrinkle. kubectl connects to `localhost`, but the API server's certificate is for its real hostname. +`tls-server-name` keeps TLS checking the right name. The +[full script](https://github.com/HeyalSolutions/eks-private-argocd-bootstrap/blob/main/scripts/kubectl-tunnel.sh) +boils down to: + +```bash +host=$(aws eks describe-cluster --name platform --query cluster.endpoint --output text) +host=${host#https://} + +aws eks update-kubeconfig --name platform --kubeconfig ~/.kube/platform-tunnel +kubectl --kubeconfig ~/.kube/platform-tunnel config set-cluster "$cluster_arn" \ + --server https://localhost:8443 \ + --tls-server-name "$host" + +aws ssm start-session \ + --target "$instance_id" \ + --document-name AWS-StartPortForwardingSessionToRemoteHost \ + --parameters "host=${host},portNumber=443,localPortNumber=8443" +``` + +Leave that running, and in another terminal `kubectl` works as normal. For the Argo CD UI, `kubectl port-forward +svc/argocd-server -n argocd 8080:80` over the same tunnel is enough for occasional use. + +## Things to watch out for + +- **Order isn't guaranteed.** The `ClusterSecretStore` needs a CRD that the External Secrets Application installs, but + everything syncs at once. `SkipDryRunOnMissingResource` stops Argo CD failing the whole sync up front, and a `retry` + block on the root Application tries again until the CRD exists. Sync waves don't help here, because Argo CD doesn't + wait for child Applications to become healthy unless you add a custom health check. +- **Match service account names exactly.** If the Pod Identity association says `external-dns` and the chart creates + `external-dns-sa`, the pod quietly falls back to the node's role and gets access denied. +- **Look after the access instance.** It has no open ports, but it's still a server. Turn on SSM Patch Manager, or + replace it on a schedule. +- **Log sessions.** Session Manager can log every session to S3 or CloudWatch. Turn on EKS audit logging too, so you + can see what people did once they were in. + +## Wrapping up + +The cluster can now expose services privately, give them DNS names and certificates, and pull secrets from Secrets +Manager. None of that needed CI to talk to the cluster. Terraform handled the AWS side, Argo CD handled the Kubernetes +side, and Pod Identity joined them up without either knowing the other's details. People get in through an audited +tunnel with their own identity, rather than a shared key. + +Next up: [keeping it upgraded](/blog/eks-upgrades-without-drama/), which on a private cluster needs a bit more thought. + +If you'd like help building or reviewing a platform like this, that's what our +[platform engineering](/services/platform-engineering/) work covers. [Get in touch](/contact/). diff --git a/src/content/blog/private-eks-tailscale.md b/src/content/blog/private-eks-tailscale.md new file mode 100644 index 0000000..07c07aa --- /dev/null +++ b/src/content/blog/private-eks-tailscale.md @@ -0,0 +1,372 @@ +--- +title: "Cluster access for a growing team with Tailscale" +description: "When SSM tunnels and AWS roles for everyone stop scaling: kubectl and internal tools on a private EKS cluster through the Tailscale operator, with Kubernetes RBAC from your identity provider and no stored secrets." +pubDate: 2026-11-14 +heroImage: ../../assets/blog/generated/private-eks-tailscale.jpg +heroAlt: "Several laptops outside a padlocked VPC boundary, each joined to the cluster inside by its own line through a single gateway" +draft: true +--- + +In [Day 2 on a private EKS cluster](/blog/private-eks-day-2/) we gave people a way into a cluster with no public API +endpoint: a small instance with no open ports, and a Session Manager tunnel through it. Every session is tied to an IAM +role and logged in CloudTrail. For a platform team of three, all of whom already have AWS access, it's ideal. + +Then the team grows. Thirty developers want to check their pods' logs and open the Argo CD UI. Giving each of them an +AWS role just to run `kubectl get pods` means more IAM to manage and more people who can do things in your AWS account. +And asking them all to install the Session Manager plugin and keep a tunnel running in a spare terminal gets old fast. + +This post replaces that day-to-day access with [Tailscale](https://tailscale.com). People sign in with your identity +provider, and get `kubectl` access with the Kubernetes permissions their group allows, plus a route to internal load +balancers. They don't need an AWS account, a VPN client config or a tunnel. Everything is installed by Argo CD and +configured with Terraform, and there isn't a single stored secret involved. + +The code is in the same example repo, +[HeyalSolutions/eks-private-argocd-bootstrap](https://github.com/HeyalSolutions/eks-private-argocd-bootstrap). + +## How it fits together + +The [Tailscale Kubernetes operator](https://tailscale.com/kb/1236/kubernetes-operator) runs inside the cluster and does +two jobs for us: + +- **An API server proxy.** It joins the tailnet as a device. When someone sends it a `kubectl` request, it checks who + they are on the tailnet and forwards the request to the API server, *impersonating* that person. Kubernetes RBAC then + decides what they can do, as if they'd authenticated directly. +- **A subnet router.** It advertises the VPC's address range to the tailnet, so people can reach internal load + balancers like the one in front of Argo CD. + +
+ + A developer's laptop on the tailnet connects to two things inside the VPC: the Tailscale operator's API server proxy, which impersonates them to the private EKS API server, and the subnet router, which forwards traffic to the internal load balancer. Access is decided by the tailnet policy, managed with Terraform. + + + + + + + + VPC (private subnets) + + Developer laptop + signed in with SSO + + Tailnet policy + managed by Terraform + + EKS cluster + + API server proxy + impersonates you + + Subnet router + advertises the VPC + + API server + RBAC decides + + Internal ALB + argocd.internal… + + + + + + + + + kubectl + HTTPS + + + +
+ +Both run as pods in the cluster, installed by Argo CD like every other add-on, so there are no extra instances to +patch. Who can use them is set in the **tailnet policy**, which we'll manage with Terraform next to everything else. + +## Step 1: no secrets, anywhere + +Two things need to talk to the Tailscale API: Terraform in GitHub Actions, which manages the policy, and the operator, +which registers devices on the tailnet. The usual way to authenticate them is an OAuth client secret. Tailscale now +supports **workload identity federation**, which works like the GitHub-to-AWS OIDC setup from +[part 1](/blog/bootstrapping-private-eks-argocd/#step-1-let-github-actions-into-aws-without-keys). The workload shows +Tailscale a signed token from its own platform, and gets a short-lived API token back. + +For GitHub Actions, the federated identities go in the one-time `bootstrap/` stack, applied from your machine. As in +part 1, there are two: one that can make changes, trusted only on `main`, and a read-only one for pull request plans: + +```hcl +resource "tailscale_federated_identity" "github_apply" { + description = "GitHub Actions apply on main" + issuer = "https://token.actions.githubusercontent.com" + subject = "repo:${local.github_repo}:ref:refs/heads/main" + scopes = [ + "policy_file", + "devices:core:read", + "devices:posture_attributes", + "dns", + "federated_keys", # to create the operator's identity + ] +} + +resource "tailscale_federated_identity" "github_plan" { + description = "GitHub Actions plan on pull requests" + issuer = "https://token.actions.githubusercontent.com" + subject = "repo:${local.github_repo}:pull_request" + scopes = ["policy_file:read", "devices:core:read", "devices:posture_attributes:read", "dns:read", "federated_keys:read"] +} +``` + +Applying that needs a Tailscale API key once, in `TAILSCALE_API_KEY`. Revoke it afterwards. The workflow then picks +the right identity for the event. Neither value is sensitive, so they're repository variables, not secrets: + +```yaml + env: + TAILSCALE_OAUTH_CLIENT_ID: ${{ github.event_name == 'pull_request' && vars.TAILSCALE_PLAN_CLIENT_ID || vars.TAILSCALE_APPLY_CLIENT_ID }} + TAILSCALE_AUDIENCE: ${{ github.event_name == 'pull_request' && vars.TAILSCALE_PLAN_AUDIENCE || vars.TAILSCALE_APPLY_AUDIENCE }} +``` + +With those set, the Tailscale Terraform provider finds the job's GitHub OIDC token on its own. The `id-token: write` +permission from part 1 already covers it. + +The operator is neater still. Every EKS cluster has an OIDC issuer for its service account tokens, and its signing keys +are published on a public AWS URL, even when the API server itself is private. So Tailscale can verify a token signed by +the cluster without being able to reach it. The operator's federated identity trusts exactly one service account: + +```hcl +resource "tailscale_federated_identity" "operator" { + description = "Tailscale operator on ${local.name}" + issuer = module.eks.cluster_oidc_issuer_url + subject = "system:serviceaccount:tailscale:operator" + scopes = ["devices:core", "auth_keys", "services"] + tags = ["tag:k8s-operator"] +} +``` + +## Step 2: the tailnet policy + +The tailnet policy decides who can reach what. Managing it with the `tailscale_acl` resource means access changes go +through pull requests and show up in a plan, just like IAM. + +```hcl +resource "tailscale_acl" "this" { + overwrite_existing_content = true + + acl = jsonencode({ + groups = { + "group:platform" = ["alice@example.com"] + "group:developers" = ["bob@example.com", "carol@example.com"] + } + + tagOwners = { + "tag:k8s-operator" = [] + "tag:k8s" = ["tag:k8s-operator"] + } + + autoApprovers = { + routes = { + (local.vpc_cidr) = ["tag:k8s"] + } + } + + grants = [ + # kubectl through the API server proxy, as a Kubernetes group + { + src = ["group:developers"] + dst = ["tag:k8s-operator"] + ip = ["tcp:443"] + app = { + "tailscale.com/cap/kubernetes" = [{ impersonate = { groups = ["developers"] } }] + } + }, + # ...the same for group:platform, impersonating platform-admins + + # Internal load balancers and DNS through the subnet router + { + src = ["group:platform", "group:developers"] + dst = [local.vpc_cidr] + ip = ["tcp:443", "udp:53", "tcp:53"] + }, + ] + + tests = [ + { src = "bob@example.com", accept = ["10.0.0.10:443"], deny = ["10.0.0.10:22"] }, + ] + }) +} +``` + +There's a lot packed into that, so in order: + +- **Groups** are lists of people. In a real setup, sync them from your identity provider with SCIM, so leavers lose + access when they leave the directory, not when someone remembers to edit a list. +- **Tag owners** let the operator tag the devices it creates. The operator itself is `tag:k8s-operator`, and the + devices it creates (like the subnet router) are `tag:k8s`. +- **Auto approvers** let the subnet router advertise the VPC range without someone clicking approve in the admin + console. +- **Grants** do the real work. The first one is the interesting part: it lets developers reach the API server proxy, and + the `tailscale.com/cap/kubernetes` capability tells the proxy to add the `developers` Kubernetes group when it + impersonates them. The tailnet decides which group you're in, and Kubernetes RBAC decides what that group can do. +- **Tests** run every time the policy changes. If an edit would let a developer SSH into the VPC, Tailscale rejects it. + +The resource owns the whole policy file. Anything someone changes in the admin console gets put back on the next +apply, which is the point. + +## Step 3: the operator, installed by Argo CD + +The operator is one more Application in the `cluster-resources` chart. The client ID and audience come from a Terraform +output and get committed to `values.yaml`, the same way as the VPC ID in the Day 2 post: + +```yaml +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: tailscale-operator + namespace: argocd +spec: + project: default + source: + repoURL: https://pkgs.tailscale.com/helmcharts + chart: tailscale-operator + targetRevision: {{ .Values.tailscale.chartVersion | quote }} + helm: + valuesObject: + # Workload identity federation: no client secret anywhere + oauth: + clientId: {{ .Values.tailscale.operatorClientId | quote }} + audience: {{ .Values.tailscale.operatorAudience | quote }} + operatorConfig: + hostname: {{ .Values.cluster.name }}-k8s + apiServerProxyConfig: + mode: "true" # impersonate the caller's tailnet identity + destination: + server: https://kubernetes.default.svc + namespace: tailscale + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true + - ServerSideApply=true +``` + +With `audience` set, the chart mounts a service account token with that audience into the operator's pod, and the +operator exchanges it for a Tailscale API token. There's nothing in Secrets Manager and nothing to rotate. + +`apiServerProxyConfig.mode: "true"` turns on the API server proxy in **auth mode**, and gives the operator permission to +impersonate users and groups. (There's also a `noauth` mode, which forwards requests without any identity. Don't use it +for this.) + +## Step 4: Kubernetes RBAC for tailnet groups + +The proxy impersonates each person as their Tailscale login name, plus whatever groups their grants add. Those groups +mean nothing to Kubernetes until something binds them to a role: + +```yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: tailscale-developers +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: view +subjects: + - apiGroup: rbac.authorization.k8s.io + kind: Group + name: developers +``` + +`platform-admins` gets `cluster-admin` the same way. `view` is a sensible default for developers: they can see pods, +logs and events, but not Secrets, and they can't change anything. Changes still go through Git and Argo CD. If teams +need more in their own namespaces, add RoleBindings there, in the same chart. + +Because every request is impersonated, the EKS audit log records the real person (`bob@example.com`), not the operator. +You get the same per-person trail you had with SSM. + +## Step 5: a route to internal services + +The API server proxy covers `kubectl`. For the Argo CD UI and anything else behind the internal ALB, a `Connector` +tells the operator to run a subnet router: + +```yaml +apiVersion: tailscale.com/v1alpha1 +kind: Connector +metadata: + name: vpc + annotations: + argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true +spec: + hostnamePrefix: {{ .Values.cluster.name }}-vpc + replicas: 2 + subnetRouter: + advertiseRoutes: + - {{ .Values.tailscale.vpcCidr }} +``` + +Two replicas give you high availability. If one pod is rescheduled, clients fail over to the other. (Use +`hostnamePrefix` rather than `hostname` with more than one replica, since each replica needs its own name.) + +The internal zone from the Day 2 post is a public Route 53 zone, so `argocd.internal.example.com` already resolves +anywhere. It's just that the private IP it resolves to is only reachable through the subnet router. If you use a +private hosted zone instead, add **split DNS** so laptops ask the VPC's resolver about that one domain: + +```hcl +resource "tailscale_dns_split_nameservers" "internal" { + domain = local.domain + nameservers = [cidrhost(local.vpc_cidr, 2)] # the VPC's built-in resolver +} +``` + +There's another way to do this. The operator can also expose individual Services on the tailnet with its own Ingress +class, each with its own name and its own grants. That's tighter, since people get one service rather than port 443 +across the whole VPC. But it means changing every Ingress. The subnet router reuses everything from the Day 2 post as it +is, which makes it the easier place to start. + +## What it looks like for a developer + +Install Tailscale, sign in with your company SSO, and then: + +```bash +tailscale configure kubeconfig platform-k8s +kubectl get pods -n my-team +``` + +That's it. The kubeconfig points at the operator's tailnet name, and Tailscale handles authentication, so there's no +`aws eks get-token` and no AWS profile. `https://argocd.internal.example.com` opens in a browser. And when someone +leaves, removing them from the group in your identity provider removes their access to all of it. + +## Keep SSM as the break-glass + +Tailscale is now in the access path for day-to-day work, and so is the operator running inside the cluster. If the +cluster is unhealthy enough that the operator isn't running, or Tailscale itself is having a bad day, nobody can get in +through it. + +That's exactly when you need to get in. So keep the SSM instance and the IAM access entry from the Day 2 post, for the +platform team only. It costs a few dollars a month and doesn't depend on anything inside the cluster. Day-to-day access +goes through Tailscale, and break-glass goes through AWS. + +## Things to watch out for + +- **One proxy is a single point of failure.** The proxy in this post runs inside the operator pod. For anything + important, run it as a `ProxyGroup` of type `kube-apiserver` with several replicas instead. When you do, set + `apiServerProxyConfig.mode` back to `"false"` and `allowImpersonation` to `"true"`, so the ProxyGroup still gets + permission to impersonate. +- **Network access isn't app access.** Being able to reach Argo CD doesn't log you in to it. Set up SSO for Argo CD too, + and map the same groups to Argo CD roles. +- **The policy resource owns the whole file.** `overwrite_existing_content = true` replaces whatever's there on the + first apply. Copy any rules you already have into Terraform before you turn it on. +- **Consider recording `kubectl exec`.** The operator can run a `Recorder` that records `exec` and `attach` sessions to + S3. It's useful for regulated environments, where "who did what in a shell" matters as much as "who called the API". +- **Pin the operator version.** The chart and the operator move quickly. Bump the version in a pull request, read the + changelog, and let Argo CD roll it out, like every other add-on. + +## Wrapping up + +The cluster still has no public endpoint, and CI still never talks to it. But anyone in the right group in your +identity provider can now run `kubectl` with sensible permissions and open internal tools in a browser, without an AWS +account, a tunnel or a client config. The access rules live in Terraform, the operator is installed by Argo CD, and +neither needs a stored secret. + +If you're working out how to give a growing team safe access to private infrastructure, we'd be happy to help. See our +[platform engineering](/services/platform-engineering/) work or [get in touch](/contact/).