From 9a555f2be15d079dd64fe5146a0e26e4523d36ee Mon Sep 17 00:00:00 2001 From: Gitea Actions Date: Sun, 18 Oct 2026 13:39:26 +0000 Subject: [PATCH] Auto-update blog content from Obsidian: 2026-10-18 13:39:26 --- .../images/homelab-hosting-overview.png | Bin 0 -> 82167 bytes .../images/homelab-overview-simple.png | Bin 49399 -> 0 bytes .../post/26-homelab-page-preview/index.fr.md | 140 ------------------ content/post/26-homelab-page-preview/index.md | 112 ++++++-------- 4 files changed, 48 insertions(+), 204 deletions(-) create mode 100644 content/post/26-homelab-page-preview/images/homelab-hosting-overview.png delete mode 100644 content/post/26-homelab-page-preview/images/homelab-overview-simple.png delete mode 100644 content/post/26-homelab-page-preview/index.fr.md diff --git a/content/post/26-homelab-page-preview/images/homelab-hosting-overview.png b/content/post/26-homelab-page-preview/images/homelab-hosting-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..7ecde3c4548fd795aca01c79db0c1f488284a373 GIT binary patch literal 82167 zcmeFZWl$Yaw=GIS@DNC_;2{JE9y~aK;O-V6xI=J<1b26LcMTpSxU+G0ch~(E`ObND zUe){a{=BMt>vrv`bb5F9?p`wIm}87ZfQ*zdDl#523=9masK{427#KK57#P@hh|j?h zY`v5}FwbCMM8AGfaGc#=u=|ENNQ`it(a8A~{TUqAGc4GguU|V451scdh#SH7T9yy} zYiGLPi|oe6J$H}f;rjVDt3Ltv$7k+0r+DD z?}mH?psn~OE9MV1oR~k%U|{%)eE48t_%LQdlHw9mMI{rM>;_iZqxJ^AsVK}Zxg*Q3 zwjG$7(cET|JvCN3?SC3=ddBX0o>Umeq_3r<2wpuYL;vYZskd4GuPw^O@pSmxxRfMW z&mQIMv!~y^9~}7~Cv$@iQp-9$MOKzhqyLq$)ShK+eTEzq=;Q63{h^byTKQyme<}I1tqMnpI#<9ZZETp(`jIYF2&B>ye@NWX0X5a zFB2U}eg1D1DW$IL#`rikf}Wn9W07y132P)I z8)ncLad0rqrM%X0Fnyu^NMXUK(AOAg(TNEu@(K!anzAJC{?OA=73RMynv(6W_RCO& zF7kUm57BVysq;4+I(%$fVq~;&ym3^F!MwdaKJpl6`8 zAcK;+?_y`hZT5Nv)uM>q?}di8Y(>%*!V>)#h7-{QRrVZx{idcS@K|z@Zy3kq)D9*% zOpI+OrY3eqQsd&{(5=@8YVfbprs@kXIA4`5S;Z$-+Acy=ql8}%<$ltO$}>KY2QPX( zyH?ZaU~8uHMK+?iIy$sAw?vWG1>Z(fbJ0fmD5cRpEfJbF6SXOYKi5tyZK(w%+jEeW zCxBN!oG-5)lKj?kalQUm9TNT5hGIB@(N{fK!*A>;#zIKy;I?c}3&u$uW+}W)Mje?6I zJXv>|N57O@Z_UO;?U$&cs;UTnB02GJ<>3UpUsYakDudMrG&Je)M14qg&P=_N-QsCX zoU-25rdwFB)8;-M8D)iiui4#~O@h+e%u4H}iXiFa`TPK0omG#{&Ly|~CWGE$SpoCk zHHM}pCQ{#i+pRsGB_`qt>6r0boAICOQq(=nDXE_CUEIA2z$sfI`s`F+o*z%i&CQhL zK7P^58=qRK`w*#ZuSDyy&Q|ZHgAqAp#*Hq>Zm|>N3>}3Y>TZGSYa_!9dF4sroK$za zJJ%Mv2dQxok&r4awkMJtAcCMzwY_N7muN=p~Z z*Lp5t^AaqO;xVz}2zWhgX1cgzVia3zo}Hl}vmNl*KP)o6O41*k^pcQ;_Z_ROBt#hI za=Z+rhAS#8)U10ru4$Ama2SRB=uI?7&|Q7wF;23wd86IGh*2!-JDJscfRPr@Xt=YP z-w>+KFQW1llB};DDbJ+V(H#{RH`O-jnJD*7ZuepZWe+b?2P57DG7J%s)jV|YIOJ~; zES|3n!_!aiR{E_1+NR2cJEW0eKkm(Xx0VoOx1G;3U#}kqZmZ3fFUJ5bu>i( zQ7>xic&CVkg*mr#L3pUu`f9WM&k@h{!Dq)@IQ!0%GdB0mPMa|ryG0sV!p~0Zj8vsJ zf`P%IMf4*A%Bre%_xFQKwj#;-rh_G7M4`q#@9%DRgESJY`Zw_nzjPj0$E_IOZvBd&k}QRJn*r zZA_3s@i%5K^vb>Cdf`wyNZh5l2Fvtpu@CRN;)ApM7-5yK%<{FrHr+Od-!8SJm>4Jx zHB$_+5r3{t4a@Uw2()5z+bt;@&im=v{$3QxN(ebbNOv|oxH{WuDYf;^21jEU_oq;n zRna=?s@Q}xo}HDwOE;!4ItEq-edVQ5en9~eGV0OQ5?(yx@$vCF{}UcZ9toF!&Xx6%3&b?O$>j6ii zmP}`&;XGm^haUI+xba-RU9S{ zJ~=%m78aTarJ}GAF_VmZA6xi71Yu~HO@w^q0i&U???54D&^hU|#5WZ=wJyhFpCqc#AiX%uL0=esSBpWyj;V z#E3V?bCvp;sidvAt{1?O?csx>f{!J)hPgjspfPjOYQx<&o#>{!2hRHX6CmsC%DijK zcui?slX~%^ye6ACllHhiDmL=lC*3B&*3`<%G0Fm5_b(a29~IBU7vGgCl*C!FnWSgr z=8}JAPEIAEVB_Us@Ud(B)utWHC%|_=hsH5`kn@4;_~Hf3h>D}_bC`5R5%FQYgUnW2 zqBB^W*aykR-90&ZBj&`o;W*GCVA{k^piC&neD(Gjln9{+CTLIW9%_JgVVx<&U$HiHGy+j9<+9Xm*7uD5H@cWAIs%B%avM9Mxs zG78d?vZ;u~$f%^W*wmS26P&@+PFqqv?sNykg;x?YuB|UvJa8O#ift~BYc1fN0UQxS zw#HW;${V_Bn{A)x_@IKY1tr4OFhrUwC@|Bk`7_zKALjZ3w5{q)eZ;6;HQM<0Pn*0D zEUecS+{DuO{Vl;-Q#+cI?(;t{BD`M<6svFAP*9S%uMM;yW%+)jrbI+WG&0E#!8K^q zX|pYjZu&A`m{@>x_6ark8j(dt$3&;+I%zbBgpAf}r)e}ue*^&rX8DCPGl($A&uFAy zndTQ&%gbvI8c)u77X-O{7kNvPHB**mti#1kNIS_@l?zb|$oNGh@0*$VrZ30o?RXK% z())&_FthSp7MALA|7{-bMz-1jD(WIv9t78G0!+fB@aRY-1vxb}HKncTU$*r(KKol= zF)`7%jUhfP&06$pM-er?Cnyh(SvQT2z4Mfw&uelQnRhJyRByf)!+B#t_y%vca7-@J z>8ACT1;q35-$}o|Y~wFBf%y1(-?c z^aS%Yc5Mw~7SB6$bb{E_gp%xc!iWW>rS@m%1$I>>W#R{tXX?BTCpsZ!!J`&gT}+M=lgWbj{+{i{?)C z;)wR$F+wS7;s{SMXU^iKtTI`)>M!_1cP`H}dA^P5K zC2g13xi;$3K4o^DC0%C@w%AtuV7!dq3C zNOZ8pDl7Q<2;<-f7BA7(?OW)nX zTcR0V-41Lw@2DqB5hT1{Bv?+H@ODWdlC-xE2*6B^7@1AZEDOz~S7ERUC$#i*P*0r<06uDp;6g6d5 z`h-ErL4a_47BZXRalghsKNQ&T_B9qhewu=&=E}_@6N_88K5wqcW6N+#cJ^lqYGdnO z{La6H7kW;MZM@g&-;F+#UK`CzrlISY8U5)&M}HF=6BQR8t;YHN*E0Y;5)uDF4`gKP zN(oBH4PL>U$nki&b^RRmmOrPJj1rVtzO!Z;RsMVUr#F~A=Pr!&^ur+O?Zdy4k&QOI zU;O=jqLui;6TfB?Qa!M{YciQf5vii4A|=#-O7I4xE@%Sx4k&R7i;6I!#zDmbaAN!W z%y}+e8THRB+~Xa0St)i0S#ht~qWU4#z3HO-;_OiQ<02nkgikr;QXa=1ZX(AgC&niE z7YF*x_P-BmYoN*8)ghDuDhF*)CsmF=BStJ9_oU-FRdn)VAkLWHMaRb6!1>nJx{*+m zvZPz0ne-L0ElO0ef^d#&cW|G_<8T4`PyIT2tjgZdJALGsKDy)QV%9GJtINeHoW-m} zcNT=DAax)E*jl>Mg5v%Ouqb^M6#Zq~B*foS5LA~S*TmzBq>XE~)TA{WOJ81@$u-U# z4pJQj-Mrpetamm37kuXyaUX7HVdXRaLgk*glfE!92OD;Xa z!3-8xu7q572`Nd#M8vA0dJ^@0n{J_TvBma0%v^1}z(8?O1&lzIqT}S{Wiy2cw&O1e z-EtLO*+3XU{TD`PHzo1wocErY1O|1x5D_t&o*L1jUU+7{$3aVr!m(gz?sw)p3RT1N z$o_+3DD|yDn~i0o>tSoO0trKC1|(uqGD=M~wb&%Bw^$g&c#mrf2)wr-zTWm#P%N9b~?5w+iTWAZm3zxiudzL?^&&aaIv#{orOqB zXO)H|=9FO(y#cu}_8Nh@uOF59XrbBEusKu>)Y;%Zf`7@hUytU|F)V$ers|nci;mNu zfun1de9384tIISmfD-@76a&m%NQ*-YHivGlJr?Ff)=ghl(9Ubz9KL)4EnKq7`?;g+FZ9oRb*A`0R-3Z8@AGaXwmWnh-TuBrFXc_`DCEhN<>djf63|obZ9LO)ncm2 ze(4&390}Yvk#gOGnr$i|_g>o7&z&AHnU!yJY|&}It|2;ieC&I;p}v}go~&@?c)~4d~-iM^<7|h4-33Vl^=Z(Us(Gju9oaQulT)r9{xNPp} z$QtI7xp{-CB^r!LH6HGBJRgKOU+!j)|Dqf@&T}3t@9yrdbLdCD6tJVB>|uXdYnF27 zIYk05XMYnaeQlFmsyRc?1Ll8;*%Of(4l^PqhHV`AI{xPQ|PW|@cN%P)C^+Nav( z!TYkQiHjB6?MREgux#pNcxlI6qu!=tYzgluo=JZoIDphiWo!L|H@c4YJNv>o zsr|81idUK7C&mIa#7?axc047WFH`sKGTk^Q4mCI@aI?3U=GMbJ4&8-&)lZ}44C7va zn&@CwntuW}i+OkUW|#;21h)e$m;i_|5b6)`j*)T9ag=xj(w1!_moU#1>rCiuT0nfsQU|$~^VypTnWE#2=Uu&Fg@ibd2acoq+WeWMO`` z@`Lha>y;%2COV%yIB>7DJqrGTF;9-p?yNrP$di8iiyZ~j#A+}G|1N+kGvm?Hk+2`{ zU4hIreVyHO-+u4e4jS_HYi%S3Sw($85DWpIbAGfSzz4%y3T{@7{y!vuPeS13{%t={ z|2^c>{vVd7`1PM{>fOkH?|$SzE*!Ppe$6_ zPyaRhG!#;zeV?er+)VbLuYVt|9*aF`CkMEv!w7iW8Ma?>pDt5-^RT-I&5?(FK;U>f zGM$x10d>stj1(`IoK^$XtC@M-tDO3fqh z-@Z{X?_$BTCza;k_WzL4ZghXaa{<%@12ckGy_rXGJpTfQZ~T5HkK%tSJpaE4Z0^k9 zG0^!-7n~edW(m7=*u12+LJtM2z_Td_r!|nXlVuqnahJOYE-fyodl15Ub;K3xJ?_re z+0?6QkxmX6OpX@>sk08$5l+{&uqZ1lqY>B9(3gc%J`B~k;T~qS&1xp{DPtj3pqiRVifv89TU$&FthQgsAf!~=KWobfnldXmQhes_ z&cGl`26rRXKu9~_e8s#o)ZgJHWV*q6IDK^UNUAIQ_3QP9muWjczu6+A<<0F#Ibv64 zr04ybI?nc8;=}89*FT7ej?Jz=HNXoULpR!Egx&6#uNa4~uSoLz~D_2mcX>u-Qhf@;0?3d1@ri8mq&Qj1lK{{!5-C!qQtgZl~#o9;dR^W(RM zN~u{7<12pXe^q#ym=jZlZzQTgLrd#&bmt@a7+q~^0)9fr)I8K*PWOV4Ir5hN-Dga5 zFiW8HIyzDF^KMD?ky92&dlC*#XTOB9Dx3h|Eqg`O+=Z#1FK;J_YL5-V>d55Rzn!#d zH32)hm}*Hp%@Wx;A57g&8eJ-Tk5&)=M(Y^r1{eUabzStW;WoRlu%XwIo`&Y~1hw!i z=RA1-XZq1aGXo|2L;HrXk;gUZ@%9ToQ&}~&+J`?CoH){mh=}PdYCE`5X~SKW&<;a- zT*|b2&(l+s_)N5yr9?;hLATBvfXKA%A};rT~b{dAeeStE^3Ox0wUZ~=$oybv{WzlLO`Of$_*)JKFZ0Y8Sdzh zN>WG1N}WExqPYvlBT;f3;{FfqRaa&gwT)(yv#UEMC7DLM|rFw4^XeAmPC$-y;UYinos zFS1Z~au)|0GH=!F4AQEFcU6*mn{rc^`##+nx>LA8U>+TQo9k{E9UEg*b^ueU zoLKh6$q7z>11s{)s!3rWcQ7i!{vZ~X9=>`|a`L^f^tU_-g4t;{a`GHEl%U+)VpRs+ z-o9oypTEJG&Q5nTv*)^QmYSN+>}2b7?>N{1kuly4DGw_kdBw_?{wzJ@?Z{L#6p*KyeyqZNa37N z^*1(7D=US3HOPalME}4t;CsRe6aTBqA!QtSFngSx`{mw6-HD zxnnvjASRc&5mwPxNJXC(1_pbJ@O@A3AT<>oHU?HqRLrPR-eg&vXqqN@CF2-Dsmb19 zhh>xdLq20?m-Sg<4&*E1ImK; z1+UAB)#0jF=IWSQgy;M{z@=qN?(+?M%ubmP#XF?zxC`|jytu({rM(BkLgKdLrS*pCcFU3$nJibRY3b`{F z?9;5$zY5z{>AUkN0l{j)<#cuIqA^FmrVD$hpT4J`-ajzF#@2ouBD2(BuS&5HdLHNP z<85!L%H(o_*QNfAd+}mNU&oZ?XG?raRNdW(=Q~u@dU6;+;$nf~Vv+J=EpB118$yUAoUElLQd41hQgnv&OCPD|3f%1C<3dw;TUmR8yr0J<3N3xvJ8w*E?4=f{_2Yg;$Zv`4(Qk{c>A5QE7v$bAtM?^Q znP0r{)z{lBzpUEMU!dE+D_cajZ070iBv(_vJY1BN7FHMF=YQ#kanBQP_k3B}dFw2I zQt*pZ=pftPt+`7<9XCV-E<|X~YWceNOgX`#C!v$*ZS9G|U$|g8U~rljxzvL0)gEfoeIW4;_Z!yaaonvoIimyF?6#))?zkWt zVw-z3m8%%IcTrdqw!Y!~)-Ege_wQESzK-*G@9Jp1B~5O%>unCF$KBdy;rPs#9%3M& z&YBO%!k5l@?C-Z>Y=MIkelrtuXpajv*=^!-mrvvSTK@g}HSkff=-C^ZpC&#c=CRTb zWRxH+OJZMlEO!op&Vn@~!$sBFpm-MJvosu``v2kLJisW(r*;C>x!%=p(BLnzGl zEe$p81u6OAc7izQ%BJSB!otO-y^(_;is%@3cdc19R7B*P%lVm@78QkWm2S|AaX*Iz zkNxWzUjGVyeKMbtz1Rx0ML(!NHafaWtLrGAcvX9Qrd#)r`zeZElk@(*KEDVB;lTwp zwsE!m-70aD`B6mWsdZQLc2yi*(58g$x}{XkZ*_Wdd)C-ASWny_B+=fL2-#pdASz;M z9`VYZp;doc+uAbyQF9lXI^%FIkwRah+VFi{Mtw;9dOxRsp*s{3eR%*ekWTupGY!lg zG_>5~d(B4&e#41&1Z=r~TV8mNWO3PQTyWB+@XCu<5%LmyDA^B99lbts<83{=`ASIO z($VL^T72(^KIR}(@^+-ai!%hZvD{*{O`f8wB{zxLzH@p-Ku?S;XPRLw&lpbN=B^;JeyWCzg2ce`uBrz%Md$_waSx%~P znW_@DcWL^4wYnHXn4~nCCr(2})#9Ev$<>P?gsT3@6lhjWKY#vgNgb+ao?G8=x67xd zrEaucqho;v3fkCm+JC2k_wzmAcHNziQ4hv^=Ki>lG$rOA#HKRn#6*sYuR}`pJ~KPN z{Kq6_uCk!F58B~;@mz&hdAJO41r(b)M55hXn$m4=DhD=RWHPet4Km+g*PwXS9c@L9 zsiE1wGB#>KI;5hc<@UH>Wf2rs-#abvf*l;x%g%XmeFNl830&UY!wvbag+}IwyDWxZ zzUvU?-PQYqsFxgjfr0*r$jJGHA7|81r|XR`&Klz=g7L^dPDk%(fWS$&&?GF0yYb2K zWPV315c&D@=j02Ghj$L#EU~s1lU{&m@TJ$=yZ!wP2yvl|Z}*62T4&3PQp>~Blas4! ze0DOO*7lH?nRRN2dHpc4Vq{u3HwOqL2h$fa2<_hYMn*C^goUA&D#`JitzMG^3kp*V zL#k<{`aqst*?I6u)G^mq+gf_EF-0HybKFMJseU#-X%EQE+&6ex0<=W?lT-#vaXD*_ zP`W2@Q}X)t>&068dKlhDcOmZJ2Ew_EF;sHLJDvwPm3h!%oq>prz8LlO# z5_p`+w?YiEvbjqg+)EzCg@pz*$jHe1i%mij=Tk6(^cvjxy!7-5yj4}2-M+(=O-&v9 z?sl)umZVZBJASq_1CxQr0*u2*c1xn<&eqbsm{omhj#l9GeN=>i9u zZxiu$At$72f4b>^0f`V29RnQz!m@TBIW1ZJk4Xr*Wsa;H-&a9X^M$!9l=0NeIKv&! z1lZd|){IXea|Q+m7AX7K<L-ZCZ+7 z5%^r-Us(C3#^Gmp_&fRSudPvZcC!3UN`4)IfntYBf$A4Jf0=*l+DoNseMcnuK;OC? zm=u&!^-xcK%No2}4wpNHSLpsHMO*dHiCkY4h* zk4%bNN^W<3z}CFml?k#7MUxCs)24@}kL0>NH5poDL~OBTVwZsq9ybXi)#89N$9Sus z^nAWkq&z#Gi-?Mf(X1XqS7yEy+s-K;cFZ~SiXflvRH_5I|QbXJ}?4ld1{happ3YQ&nSs-6xcoU7e zz7y7G!!IW0nUi}DA$kFHd5CgRVbLD6WecPUIeI0bg$Ce4km)A;apE}DpWWEaNxVD7 zMUNJCz-RMns^0x?rnWun{BMQA3BaFl(lr&Vxh>v*a_c0M; zqIGK^sKcXG8?~G1NhpQ}2WsQZ{8AJ<$YcKu{WsCGvp-BF*TuysL$2g7x>hJZeq8;u z^#h^*E=+TrI59tClFFs<%} z<_|-&S;8*?r|{W!pF^J4KY#m$B&s5T0TA~8K%)#6g{Ua0AkYbwy~YT?AGT>-i6xnt zr=}_|&XhImrSueD`pNU2vYb=1jmP_&2~DjjfrcpKVD0Q+nx4JK)5kaPhPsxI4tw>I7x z3QE$Y6)en8UVq6g4<*IuG>&aXM(f>v8j88?40O=+&EECX_xDw~VR~Fi%Li-2Jgs|4 zXe=R66PJzM4xSM{vJW3Vdkm@M^1;?vQa<@QJ>c4ITU9so^z(ye>g$W0RPy9?2-UBT z3s7VktRw;eG*Q1IsJA-&C~xS!6rvt;>vn<1H4=$u^pTRb8M-cLbl~s1z!wzDs}S$( z@yS4axm0YjsBQpWsBU+uP8lQ%pyRcZX1$37V3+aDn<#-6x4h8)>+Slp>DQOLg;ay= zYM&c9ij8Nx0UNDm`If(Ya;CA|->H3Vq&)w2aqe&WT2@|bYVgR!Xp^-CCr-bC>G;u* zo1qj@;ydpq`!nNqa#vpXEgVb+-`LOYx3$0Hx63oIK@sC2o||p(DMzHrRuT>b;^m`> zoT|kq#v!P{7-MUF}0gZ|DDmvXjN&cRVSqx%-f5fDu3yYhzjHEAyCgU5M8-A`RM+PGWGs>1V zn_lU!TCSHS)L&5Sy~e>f(1wICFzX5mZg|GvcaVB$-i#Vmmo2s9;~Q-kE(NIRH-{3I zrm_b!0qe+;kWj;97{bcy3KnL(HFcg(pSkv3Y~79y7W!qrNqF<1k&%2j6`s$d*OGLx zFJZEozS`ca(<)YB^x?30?$X4?b!HHHQMd`{4XFEa?OAiic`8^JTReNviKfA zNr+|&VB?nBN%vfiK#>osS3?8+s+JEQKaOO$ahixZ36>xj`FOu52!eyN<2oH_%&Yi4 zU6w`mo@z5n>${uJ4K`7|{T|WoH6TJqSZ(*@Ob2#?2a;1f3FK(OkyD3?Z zuy8OE*h?m_dGPB}K0EBJgynm;x32=KZGWE&aEHnkTuF?kYfXPSU0q@E?|ujX*5o#& z27jOnlJbS`=hDXC`m4jKz5BePEY-c{(g6(;V2-XU-wskHE>rU`I`52uJ=juxmCEhB z+V|jBw!RM8#hvZ0#+T2APwxe+YdS4D4o(t}@j!w&+gr*jB2Hu^i` zl%tiW#}}_!+bUI1ntb5PN|9XKOqzB$A85%k1oYVQkmQ4e%a2MT+1C*O;SqB{Fx$CLc>lh= zB@H$|Nmo%r<6-pz->|OEO;QqYrTb&5%3m}!RYX40^FkN=hAo>+xZm|LQx^tC>U`sW zqk9rCZpy7;P6p?+%Zv@oPgS|0yjF))r1}q+ZfioX2#qXqi?iR+0QaZNTZ}mLQ`-5p z6lpWp_au6Md2N2|0yaYT_L5aWQC1{F0)A!laBuVQ?(9xh!Ess!1wgdhMIQHH^KY)F zC|hYAw7?S%I0@UmQVbmN&mNcY`bAe&y)uf551R+wvoX7L==T5tfZXM)@d!Ej)TjM}U+&Z^ueCHpXAOhxh@&T3vYtVJ=#qs+R#8?=^nqp7 ztEiiE3VIou@85Gw;+4wTSc%5w=yAROu)>tY1zaqR4ikB~=R3v{sLa=JzQL&+X%&te zkT$?$BawiDASg&0NcvsBIhve~dIw#ke^`U+*9CY|4rXf||27ER+zc!%t#4#ISZELs zCiS?Z?kNq9jZbhn>}bF4zkc;iTPJ&|WBO0oW$+t?mNd_^Qxh!rbgahiPY7xkJT52C z>}1vfvAi`*B#y{%Fu_7aPQpV{(1m@Xd~ejDY_SEzl~{LqKSmX|TA7bYhym znwWyf@Os#4rD?VbeQ-ZrWm(gVaBuvryGF&+l7{w9BIQ%!t-Obn#UiNcO-xMGoO0AE zH7`)FK2Ogk=fU|^f3I;}*{3y)wYEZ(1{T-_^~uS4ekb-BQkPm*51yXV+muVor9Ti0 zz@B9C9JF`cVg*goXuPAN^Tl`$^G8cuS@^8$uSQfC+D>{7pwK?je8|r!V71xx-;1+% zILPei#S{9h!tL_Ib#0d2tN5;ZN+u#4eQj+G0}D$@E_yG&M0>VsZyo89vyRr?@h&{D z(iKDO_xB+c)-pzJHWENpPeH;Z-38%h=->$pDCsPC4U6CE%t0?F+^#GLR9c;5JJ4-9 zN}U6dD>F0O0b9qzHxTfdPR%y?wQod9!(ONPfdQpSJDxf1KS{xP%e9wZ0f>WCgB7)ypGp`%W23 z(SYsgYv-l>EVrY+ouk*h?eE=zr~q;#NYmKZSSQEF;BMf2`^f`9?i$la9Tp$OM8r1O zUmibD&;wV=2lAZg=;+FX6H`DPaN?sl&=a@*Ts|fqWv{;h>4)Fb^Ua&pH>*0xFExQyc2s5XH<*RmpnRCgt*?AX-j~Is#@c!;Xfs5M+0r%Ti}&kSN~on@ zR78IGn?p%zAMk55NIRsC7RuP-OQKS-lgt{S8e`K2TrRFmNy-xw(U6H~-`RvUM=xxk zYEV5e+2kxbgnaP+9KWYS3^X2?dsX_T_edmb2sI5TRVb--NF-4M1m$7Cs=qgMhvOaY zgzfSD9Q8lztDesPUtXa7|E$N4yooKHn{*iI5gtxqAK*1_3vBTcYB_NY%Y}tm4u9zJ z7%0w*i;c~oeB=k}9>Vm1nYbUp7B!UA4&m~86d1Y*P?XFNZ?IebQ!W^x{%He(fAQ)Y zIU+85q?gFUJp(Hn8;ap^vdZ#|d%Aj)QzA-A$Oo_^m;YrF7%@PtPE%G=Iy~8pOi%wq zO!+gZ@hBBGj;g5eEhSPw0r(K}z_T~IJFGyIs+qn!)NwyK4fw=AS9oyZ0UfH&`R3f# zlv+;6V5p@-8C=$YZ=c9BlaW>H8=o&CWFVy@H+zTni@hFh+Vt~!y5zqF0-&$mgB*?? z`unLBqBp|!)d#N+lriETUss(Hfb3d8F3)l^gru3KtMX4;$V_cFMm%(ZqePP z=*%(8cF28+hTJ+Z z-@jd~tdB=>4E3xl-C=%WUvj^{1mTY)gSU{XXtqY4$iQ;vQ|ElUeJogJFgF#4I|Ihj z+3Bfsy{6O3{>5sJp{tIGs3>l8x1EqdXp&#quwVK*B>4WGUsTk}YlyHrj0mz&jxk=l zP3^R04-~}VHA9OEtKKHprrVV2tpS1w!B$ezBrrx#Q3B_ahl2bOG5AxPkDp4z2QunL z_F%J6H0cpxp^uc5F6RS-XDM28)@pWkA&G^VH90%p3|;`L)=!85oxmHNTSM}dOT3NT z2cak)J6n&#^@QkTx(^?}PnV1*CuCLEn7DB=*ZL&YCgGWFZ8EcL#pr*x3I9NrC!O3P zB`0@3^Pv0uc}?k6VPT{V~m9O4(xZ4DFVRlBC6EjfzeP7m*~7e$nxA%qQ^; zej3ocj{6P{0P9;l3+@4(D;1!iqN2i$AnaDQ00UK;XnM55%K*b<;Z)JUE6%SD$t8sD z+@5*DGe9f1^Bw7 z^vmkUQ~pfdYz~v-Cj3}(6o*N4p>7MfqKES%3j3h?XfHhI+IV8uN)z5Q5B^^pd!CD2>iT}T9~Szuyv zWQEBC$zuoEl62@Gb)$L zN^&2ms4h`nvb$_d)*VIoNhL4Uy2Fj%rZqX{lonR%Exsh}pj*}9wPZ0b8Jv+I_;aHK zm@FXJ>fE+tEwu=zHoNNf-Y0mYL(|KqEO^%ebgZ<;ywcv6hm0^y;R&BCdxdwC3h^ z_0E{yzn#;*jNLT}4E|hMSlRy5o!m{Lk&?0(7zT0;^%|RQew*cgcg3xII~L~ITyu)Z$ZR#fS8B8lm*Xg=g zS&ee26)*@E78F=HZ?I?=FZ>?$($o8pm4zXlT#xYvuikCA-i7Verv{||#Hi_NCgsG$ zjy`M0@L&Rii@&_*3FGRyd>vgqC1!ryh^*lsAir(Bmrx>(pp?W z4;jcqc6WC#)I-V0@`^t852rEJ=2iSEFPE_v>oRODt2m(yHVc`hCom~L1UjC&eKH*# z<-`$0dxtmb!j>5YIZ*Sni$?t;)6LWo&j;`QnFjmA^8mnq10N5-&Rz&=1PfJ)Khu^jN*vUj z$;WTu;NYb8mlj(s>4ld4?m*1x>~Wn86lGA^;o+ID#;<^?n)!GA zowVkEX*L8y>rH?^zv#!gV0@}q-(X^f$3@kA+H*VoV-KDU7VT!v5+S2;B8e z4CY2GO|qWxVo^(7Fo8w0-byw|A&^BAP{O40=*O3a=0<1#4i8Tk;*6APp9XE6+~2L*SDfQz!IxVWCdhO?uag*A$eKATl@ z0edlxA3^{yhru}|q%R+PcPex>M#?ijf8HuC8mRtiTU0tDY@FR;(g@bgTvk?FR(2(H z77xs-ab=Y>zyRv3Mdp0?J4~>|HBwm@9qk<+{vCn#0!jCPwK#RKguDdpuA#BvZgYJd z+zkjxxk2v2&z`xnv+v-_`$-e9d81ojwNZCDCn`BSi9P0T(9z2)_N5W6?A^pA9qe7i zvqpiS#h7Y*^>|zlD!ejXgmEGv3F@8nf{eT($*fV&7I$6eUW@dcN;y(@UCVZ*;D2D~ z7kcH{NI(eZC7`YBMyJ$2n~DY1WE2NiYvZ_qmDG+OYzVrG*~UrVs2$9yCS8$wH$ks+ zdTSo#6+@*ZG#l-nWS&&>J)rX$4Qb+=n9|aciAwH_Hsh0IR~Aw+Q8(TQJ}m4Zz!-Th zmqmDozwV$(Xh09eXYrRz|HV?#&@emNYXclSms!|o*oW-^P3RDc;K)8S=+HVd0VkogqHSTb9Snq z?GY+;);AdCUf0!wjY}wi7!VxFg3pzR&JR*QBKV^R{`Q6&>y?X!tc9N>=lZGxbUpc7 z++G2V0-Np$tc>q2u}S^X`tBbUXyuwdcb zgYQ=XjReYOLUCk5G_RniJ^j=J1ARH&!v8g)26wZwN=hbpI9MNR8mBr(I}l0QGPFf03jkL# zxoHq=2InJqUdG1CODyW;D zZ62|Zv^o3rTewOua@;@lM>Px)5mD~zMr-EqA3~JdMneVn6UK}vv+HrfyoetJJ&G&*gv_P=&rT!+6b&( zSH7%Oq8QR}+gX)DV{WoNdFQQiz9&hj@5c9u)Ax?q9Zy|S&EE`>Q0PLND)AM zjrH1Cszg1vFIYU`0(uw}7=X{&{={U@&zi!(c;Md-ry_|OOY8*vU+leASd`xvKZ>FV zA|)cyA_5}P-AGCc2uMpeL-&9PN~d%y-QA^hcQb(G(9O^@XY>92&&9brm*?W}%!LmE z^UfQ4ul1?*j=}oDg8)J?)8Q8;5RJlCS1+;0)9vI%LBYWe{*keAx#6V3hr=-c!xQI& z9Acu>KbxhCGp}f0=eQIIEnq-L?n&iBOR8AmjQI!5@r()!UrflXviz#y0~v~~a%;_FBhVEw_!Towl;Y`PZ3 zEUzs-`(q%@q#*V|)Xv=5`3%zFWih7?ICB8*e$rIq8W=JiIt}6^wVD1)2x=4^NcJ%D zuRp#~dx=#X^T_mgRCLT2LF42|o%49uIhC?=7bYfkQjE-VGVPt`h3wS+Ee@b0etvuX z&L|Q6%$1x>K^P=CY4Np}H26oFg+oZjwa0|qR{Abw-!i_%qMl$t$E0Q}mjTFay|&i- zd){InWMqm79$lYqOJUl3ZKnV&S0q6CM$Ur^cd`_qDIG{Ei#nHC$I)}gW=7KI`iiLO47TieK4X3iz^0KtoT_c$6$HBDde9;! z%mCT*HYlN0%??^j67PS-Ne$n_qSh!8xjkLCvarxpcS#FL9zL#qREH$W$a*7;)wMPBCjJn-R5PxnR9coz}W8=A*)P`S9VKNN06hI8LFqMS&e{0hR6ZiCXx?jg;QRG^Y62kd1eXb5s$jtY z_yM8V+O|hp%#eeq5|cvp%}v|)eiwH)ZxE1Dke3%4Cf9O)IJqbuuYJ*D#@^EqQB-v2 zEH1zaXls$y0EfA@rr)~f25;e@HeTUvl$vaAS-^R62l^M6*H(Lg)_-36ATNPeEb#WF zT+UJ$(b~GHJgMW+)j~hd0WDqb9sMP(t@<@xgpr;{h~}iyXQUA?9iq!Sw7kJNp(b+q zu%Y>E-)v4?K{ALf(!i(|Kn*|RhouP!mI3lV;s-;O=(E}UJ%%jN4C~d`gYJ@$v*ozw9e9KLzqGjHLmw9>*DM}PxK{hec43Fo1q!6JZj1RKN_ z0|1bE`eZ>vXL$Cb9q>^#`+|d~&oxOHY;BsGnvTcgOHX?-KP!-mbX38I)5U>%i;v|g z3rlHg@hnj9=T$y^jD=-8UnhFen%-AG)|OJ5)#76Nsd>9Y#w7VmVDapC#t6W`Zv`-q z7jBWv3b**4CfgMtZ$r0)JhnUT{Egieu{*ecDrZ-l>iFFHJ;LiQPe7m+S!uc&Rr*V0 zgK6BBYtY*y^8Munmm;tvB=*e zQ)kv~+*>q~Hfm>{2uB~}{8Ln`%;Wbb5(0?gdb>Sb8r?#ufSL&{kaQP8fEs10x6^1f z{B}YD%l=3=d7Aa?cC~DZNoT!M!}h5d;L~iR6-=Pcu%2K2D9?m%A>C4rxRhvLr;s-D z^M?aRgBlRQYf@5>G*vvR=$_D=z5X>VTrth?H@N~DH8r&hqGRJEp3?i~xVo-RLS3pr zBccR|E9@K)E4Iq?VPq(gJweaq0N%YSl!ZB}~MTC7CN%Jl;!Vob~$ z;73huEc%LzmB`JeWt4VS;gOJ~%*qM}fPh|JUOXdOZ`gEodSSR&9fHf{m>FDUJ6RM? zG1qK|kd;*=e)f!&eV5a$>&+hSUfulvuJMMfD$nOxI)H>!avogHP3ATl&`)VH;qK}! zFQ3iA#lNUHc<6cm3av73bm_x&*-(GpJR@?MSCZp&);1)q1Z!%#eHuOH=H~V(c3r{K znM}y=3pUkd(UZn)-Nv$=Dc#&*?_VHxq)qG_g+L9JDa62NGFgj3aeK(r6`ev!*6AG7)!sEl zNO?uLXUJaw;pOzi1gya>g`aVI%z6IizPLJ)!*$@0I)z*?OjiVrvm3kggILeS`{Mn! zUEog>>v_!)fC@1^#lEQV8uZ=&k*Y{B`_*szoUJl#sK5VuXz%UYdHH_zgLAwm^ELMO zpc~5Op8HKc?=ch2*huco`BT|{d4Y`$7|u9Hif7$A&Q%XX^V{JAFTVRd_Whx*H|yUq z(aXW}AuvSP$L*W59uUF(O0@fMXX`@a914hd-;yqFUF1;<$$jMC6dF2Jl(39Ms2Zwh+3NZF*L@~NPYqhdaNYR^ z|F(?!nvnq>qK#X)y1N zr0<eW8q@(|TVt^}On|aEx$h3E#@x0Q}t0 zFfdjR?SVr?;*|fWp)wZ@1hTOAsDveFEbD4rGJN2A9x9b(X}bDRg2RMCje%xf?s&a4 zQvEAznBVse`XBwkBX@|6QN^7rQ=#rP?Tg{{b8+C-)I!1*Yr4N(GUn7u#N7J_8BY>9 zs|$XJmclkNhxWBnVSXwO9p{vag8-OV1x7`#i*xUMpE5d~_eIA`q(}3Y&wruv0#7*5 zs&49=aa=9UD}6D5DKz7(gB0Hc*kJV|UQHbe+`X$00=B4bgwr(h_rIqE5Z+8S93x-% zpP-3Olk#(A2mqvjil6HScXJ5jAuPid=>)hkK$yw@zWyHuX&cs&uW&lFuiL}ILcVwZ z&^|nU;JRFog=Q`UN7S63{+9&xzhC@+;kUjqzyA*w2hBYYf-0aIL9?b*N@Y{7a9*CA z6#G*e<$3md>m)bg?><@{UYOMN4eh`7ZkDCCR}Kyi!NDQlzkkope(mgBr4ZT(Flyqb zPmQ6|T}+L_-iXpw&u{7aIy&-|%~E(q;sV-MBqSCH$i&vnGAv&lq!UaCR&Fo>flCI; z#>%MP_Dp3rhrfLP`<7~#QaZmc7u>f!SFf=_RaNRqrS{cuQyc^QEcv`-sX+;)Eu*}= zKZxy9v%rmNJoh^=yIKNP(TD?GLPEk~4*1mG^`g&3N6+QvzM8##IVv;m5!%0wO)L&a zM;|@D;Z!c?l?!Ea!aLlLORLNyzVUq6N|pNk`y~yY*BzbP1NG*6wmhW~p(#`;kPotf zgSz$Y<8W-Q`Di}E_@UH}E5w;VgoulWxI!X(m-l?q!fpT52bC>3 zD`zRaqsJp{_%D$tHMky7>43zK=(y-l8X8>Ni<7pI)m2r`=7MoLLgp!fnBh;9vUo9x zPrSybCd9=@vznW>SHpPTp^{`Li_uS=^*a~6cXjlX|Hc3S;JR%RyBJ4d1H5H#Fb>F( zq;q$_yv9rA^<1_joYGfOsW3w+qrQGY%rfh@>Z+-QE&L?{B%SSkntYH_dTUWpk;E$N zDfb=&Ep6{-C+MoC8MhKkIyeVizl+0&v?#Uwz&Yc?j)Tlp>~zY-C(P6Vv+P|?p3}v@ zC{@DTK}UPf{>#Tc7=eC3_Tpi+UF0JuxKuf;goke=ZATC$#mLAgCpUa}g4f`7xskPn z?Im*gOLOLh{N=45B})m1w$W-Q5z&B|bw>z5P0V$R20Z#cpc;aq+q=qU+-5uneSHP| z?S$`g>u=1428eM$>R@>q{ypAPnzyD0zDA+fZvcpApBbRv=+xJ_^|xIhKAtI!o|<~7 z=jO0{H6)(ddTL|&c%prMD_J9=RA1O+v6Y3UIVWdh_q)}uTy#>>{@U(0p*E(7G+xlb zbs4(5*JqAfabgpRh@^966An&~l%0mkPgzf(`8PG`;Qib;cfVK#myrzQKkO}fzGh*e zQc$J>*X^GMM-o_!3O{>4(mo+O*B>Fi{nkR8Ym&#n$Zq0^*w)w;m3d#H&qBk!)8uh} zS-0%>LWoGNzwbcM{d>+2Iss4QTdt4QUcEQJ#4$!uaX)`j?0=cA4nd0aPsPT^j}x-! z)mxa1wziZ6g_=tWI9Ds|XdnZFWn>gG>AO0*0EZ8R(`D|fVe@#_HboK={$%gC!=yYx z2JIlwS*YM!Mcc2M+Mof&2ja~SL zk%Y{djLjO;Dk_0eg+gd-IdN4EZ}>b&rWa&*hPhbQaI4b<;2CVQ!e(A^)qF}xciD_r zJ;IXFzq#*u#+j4b>R=B%%Z7dJ1!Z|}-tcm=zFG6Uh^RUZU0E>%S!HZ&Y~YVbEi~ek zSI5Q2TZt8;7To_WcO5@wLSve_P7_2!*zKAPH$ZCmt1NygURh3em#`X(^1j?5!PT>n9 zTBm47fd=Abs!2gD#O9n@hAMr_M!Bs&yip`a3`}Q7x7H9dKe_^VN57fPY`Q&ZZg+@g zD_s&k3njbT%T?2T) zXM3~IzR#XhFYfKQ{Y;~}0b#CBku=<`Wt&s8LPkGujUSK#neB;2T8L?QW(hSLAJfY< z0VDekd^x>E{t`ogL~k`y{$72$bcvC0&UNYj)@wOV|6@SfL!blpg(HTw+Ezirls4nc@j1uR&ygHatOD8aY>7SL8J?)Nq_vVc#o(o7O5^=ln zx{5i%ks_(FUg~yxcLJve3B@!VjDjoOjKt?dsZL5%ODM)T_@)=4jcXf1ASu}?^4k!o z-UPk3tLzp-quTd&=GC=4x^8^bJLzAmupIeFbV^7dXUbgMe}+s9sFaV^|Fm^+!EK(U z67*JVUC16ak4U=_Byi^0O-f2qhbx`?NA5M^Vm$c4n!3RF_SnJkgz!Uar-`Yt{R|QcLTP;`&(+>%=5{BC1r!NoR|-scfA}5* z&VT-z;2RJiotZiZ(;Sa0f&KX)uQZ&oVPVai@GB$ZFgB#o=Zl@SwU>c%RAffv@83<{ zX3g)>nVy^ql(T%6lG-?)Oddxv2BoCz{({cWTjc=}*K9;WPfv||``c|d`3Zc-13fxV z7uynuPuL6YwPnI?*Toiwd<#HQQ1Dl|mep35*Zj*G#b=SqxHnfzd#xqW!2k_ig_m-(+WU1YUZxrtWRwlJ0v0d+?HQg6&BU5lYY6=&{9Hd@Al%gt(CN z>x00FIohev|lnrr_k#3q8ufKks{Zy<3<}QoJIWaL(vfy~*j={4Pmyi;d66c#qzzc^{ zN$8TBtDVO;fJdKZL=^J~8*}CL$e(&ekB0U2b%H2m;Cqco!*ebBnRDuIyuPvD>*Uzq z)!rR$?STuzb5jK!gCZgzGb4YUP4f5h zcK^P(q2VgOxrN8Imobbll#JsBIC2%{RRO=zh@foo-irDCTMWo!?lTcm9<_I$a|9@3 z@N1LxbHIIU*+6iE;EFW85JguZU@9xM9Ac+0SF+SNfA#GRc1U@R68| z2-nnYZ`=ELAX}xc(@|2=1W>C^@-VQW@sy@1s}`TH@G&xauFn;RzVQR{)+ls=Piiq_ z@Av{##>e2yI`4(H#ah1ycw?h(XzkkPK!`eyU}c1xJ((XH>DO6=9~^{NTh=XC2Pi=g z_#Myw`l?QY@6frXH)++Lyx>|#(7-|Yq?-98EIKh&zhMWFQ02Nj)=P3{`MpmDn?kI z>9!3eu!bVf16ckpE8F|y^RVbk>6$80`mW-WGBOKCHRKg$>Y8yobE$2Ys_mvf&VdoC z2YBIR<^ZG9l&dnA>(r;N;@!b{yqVI(tC>Tvs!+jN)~=36LFT}4x^NSyPZ|4>p#}}A z<6~gQeBYeiE|;8Y$-&;k4u!~$ z?SBpol_MN6@fy5HVz1?CxYuXR(6_rKL?hk{$# zqk+PQaxWqczD`^=yflLbB>%)ap0Cp=?Tp7`Z#(6PfumamgT-=(i&_+xqGJC|DwCFu z76f~S9N+eg=ejBlO^f0^GMi{2^hT~sg1TKc+36_dXL7B>g1Xc*Q8mfSi{%ApDU!`> zn>MHi2&_ z=~gj-VDgr{;@SPKE#2Vbiqp=lm{Y&pQq@fKlbkSh4Yj_3J|V|5q3`cA?~O`gerwx``*N(|lr$np%&Ch?q=tHbL;ngGWBQUsnG}h>nXZIv9H|s}gM= z7QHm`kaks5e>?kb6FhrJib>riwcwH9l&gQg#chk-G{!HuLIs-G-`7XtL*~Mj;Yt__ zwAryyQ(H5>9)Fil$70z&YQhy8LW8D0#l)&J=|6jM%EiT$im#%szOj7SGL(M(;K2hI zYi$-r8U;-IvRWu=d7QX4-Hd+w`#ZSgifsN2;q&K|+)jskjS-mC`;g}A(|ryk?%Yv}_hCNlUNiWJRB|k8^kODvotD2BS9Z|V-pzz5f48GaGS@9USwXMe zI>FpQVC%_CKl7 zuPZIg05JseXNUAWMKRr%w@oHnHU3SfN2ClUao&$F8}YJcCg9x-(Sv6{y&Y%s8FE4# zqzYIS_=vKGNdY}WgU2oI4h4&Nqf4uI_)N{o*SH+1MiHgH3CD)7qtF`i~R9^maRq_kbHdEzog7OwAjZ;&L z0k6TUq^bI|o11THJ2hSOuWwyh%_-;3S*l(2QsW5}UcP-*VKYv8_2Sh+18LFchA#^_ z6sPfT85xC|y#Q!p)Qa)nEyB&n%lYl7R`C&zM~rVtbA#+Tb84O+1-ln+mY_l2v@fMe z#!r0WO16W+Kz&vR?^D#7e3H5+7f{dT2C5E}- z)vZp~GJrb;Ve;EH0b4;1>?-Yhc39X7)J$qS!PH>SmXypNdL#bcfZ9m8;Mdag&!yCH zEV?6=0R-39{1gJ8lg=}TVf)A_PgnxM*}4;0qmU~^x5DXCnVlV7-5p&h{&c4)ZBCyY zZ!;k=U?;#0_&zXPc>OkIt6c5<`}cj$e8pIID;eo)dPa^B%Rg3tw*CMTl2$1bEPBZ3 zK$aA!welg94nK}jB|~ItR*IahCj72rHe!yW^dF31LG>+1yYsoza2Di*XC;QuBP+#z zbWW1{9Yshb^o}AJOvq1MEP@=?dzyD2zWhb(!^gwYoq3mS%g{ICev~Sv+mqvaZeNDE zx1FYSCcwtI{UKY(^M$ff54aaepK#)Xb{{_!?0d!=YsiK-W+Ye2YW4eUZX686G28FX zxh)G?Rb*xRH=D`W-$1tHvCQng*~|Uu?|1w%|2XFjI`wNX?xbC9eZtY#%KYQOSyim2 z5=kEfS4rOkU#!XN){&u*lxw2luL5IFKmQEUYrA5%Rc?mCDB!WOtv4EP?raN%^O5u? zr_@1>BimI3_10Fw34m$l-2ak+NG{rs+t1ja!C468l9g9sqGf`Ff z#A|O18K#tSM%LgXgbXJeim`%v!z_afwi_NrnKr!1KUgkWQhv>yz0#4OT+OeCg@uI+ zF*on+9!?<*Wd~BN*7~VI3lbTuAiAP3;rFCQqvt>MmBGxO>(Zlk-bCDDzPs*c3e6s> z{KFI@kf%s@$lz-Nvi2Hq)0;C_4*WCo?6!1U_A;feRJIH5byf$lEUr1L0c< zTz#T%?yjLaqO{Oy4>u`=IEcUmAZ(hgrdyC;aLh3=2?x*el+#jBbgo7blq{z2#-!&h z6q_#0PcQjzH0N!DF_6@z zkC)nV(@ZSDO_Nzk&kbdixJ5-av;%)-wFV@g-1$Bs{cJMq~z&M!V_3yU?ECP z(S?dY4VwB)`8i9f1kvE1(L0=lnJ22y%Igw7UnBP9LmTI3wfcMe?3^^&jgA}7TY#=1 z35pIzlc@1S*l4szp=MT}SY8!#3)}$^8xhAA_nnQyMocEW|AI8Xx~f zbX1~b>$xrHfw#UjS`ZHdjm~`dZ8z?o?Z0}gxWe-131`#Gh`-+#BMNHQmimQVW z#Nz@vqttq#qUbklj~&>{k3@VbWo69Lj%aC%_xZj&BQhRm_tyJJm(7aDog95-l_aH1 zV8EtKaJArOc{N87Yu#xIaNfUKN`ECDc*f~_MuK0Z@5KdmMwF`vMwYyeDyFwU|EOX7sG zc7Iv&d%GT1#AEa>Mkz474|>Ed-j-GTl3N%Za=WlfWWfjA_tw! zbu8S`hNwjcB#W6u2S)TVb@vKaI6X3cVJ&}gch{8a%`_slKY}&J2l;%#yp>OgOlUG~ zZFZ>7}WSBJAaz+ z$tztk70Zw2Zm9>`CKKO}Tt7=ZIn(_v*$G*M8oontvR}COacp&c2n~{RIJue$WHA-L z%@mkEygfJ4xQLkH>qliP{bFql>MOvIByAi!A^V0M|^E$Zzo$?@SB{OlpJ+cWCl_ zbaeFOPOW?Mb!6&KZ8f#n)YKE2w_U5n=TWO>xr4}D3ql$0Umut>3n=LpNEYm8rr3k%6|R#WH(C^FXPZE_}`5jBiyQmruy`O)8ANEFCwD zkqK`kFC)Q#2fgc+kmx{6?mBu$C_^OQ6Z{A&0mI2-Ni!u%ay}SxdhgWdo}tuZp??>R z$yI+}ReR;HtXK^`Z5uv6(a@W+V-@QALq`rl##!KgYCqB)5rOjPr>_iw6 z9yDL(PCrhb2*$ikcpFbdNub{sfALeg41Rrt?Y#R0a0J^YxG51$;t|9g&r28UU@x(K9uS30Z1;ktklBcqRALJ7>luJcw^R`2B8jQ2s+P!QG}hTK;(0nf zS5?cWJDm?hG#tyP{PDZIjQsIQ!)grrnY&)y@=S`%v&$1^Dc{Fe=T#m_t@k>ax}^t} zRt~zsgi}Y;?6K&T{S6u{YB2gvkHvPP0i{#N{CXGu$4v>6GGSSYY?Q0By*40@0MKP` zKZaayaP1^TxjC|kmT`)M`E@wCNOD4qwaAQ=rY2i!#-ZNb5 zC+me(DWz1Zz*b++2QYbvu#GT1^0V333jlsxoxKqH$LrY@!>r3MCnLKCCth3IprxaG z^xYrhyFaB!RU_8_Zh!T+q+xN%@dsP$t1F0|EiG?v;jW)7Dk>_osIXAPB0Mwpd!ngl z*hE!T;q<{22` z2BYC$paFf$$l!$+A?UF3E_?sxIr^3T;#a`#h1Lt!KV|8%pz_7IXm_ffj{v3c3*MK4 zZ*A93iEvuvDpR+|>VJl(wMy!ThK5sd6o!Y){qn;Yf!DnD&&z*PqR(#yU&cP|1Yl}& zH_L&LcVbfOkG-!1t3UAih6V*35OB3!X;ftA4kAscE+{>{wYj0M@1ZJgT8p9&12db+ zR@dzr6o<3;*N^{!4m`N?KCCg-!~M8&g*5W)gfCyU)&k)*R1O(@mm zzd!h&0*Prx&}>Fp3yHI`OjUBzvvzVyGYg6?=Gt?IT$z%%(m*(WPrddjrags5GtDE2 zCSODnyG@E;WX8XJqxgg?TYKB(P1)<4#2gN;W58Y!}BsbW=a@QKuJ5?T1G|kxvhoSK}cD%bK%%ot?Bmnm4AR z(!f7Q*YyL43jF=GY#n|Yh}%$!K;NgwHI*<%jQ&`7a^Fw9_4{`-Q&af*I+*^3iH*(3 z(C50JWo2bFSuJN~i5#T~05U|+vnvJBk!i3Ev;l{{x3>j@3~-|%NcS3?Cl973MQcbz zLb$*VqFT`P^!amP7xVMx0Hq}lkKC*rY|KMI!<`?P@!JjrK8i@Q&z=&fDQWdYmDdh; z$4s1pbIu=f^hn$E@FgS28VVTyb+0hKL~laUtkyLIE{|NO964C3u|(CV`9}iR{JhJ_ zD^b{eE%C22;IZ;~K7e#KfMwYo_ADd7Zjd{y`wQW?3|k8_0!hJ?BDb^gh;cL2!gaXy zY+W#Nq@#|leX04})4kl5=1+m)BCEV|`geYL1Wp z@4(D*_Y&!7>0v7RAtC73d*~&Jl907#^T=7TlChHxh&uWzEHuTO+Wz9?q9@UcXI}($ z@a``?J&g?*TlY5ZKpHI$_UCw*;b9>x@7_Lt`t;MMkDG=g78$X8 z3**4-J}`!pLZs;$vCw_6cnv(4kFl|xC-zy54@Ir| zk@Kz;Ygv6@WeV9C_PFRcN<9x)i{aGMqhuOH;38^3*TPB78RT|^x?ML{-bxQ*`M;AO z9H4^`VQ*T0`6{lq#fM+hYacNC`bYXUH`d(bDDnEx_zzTa{LuqCp2ov%GHT2u#0KQUqy?U6feC`t#uFcti>;n>y)ggsds=yC zsviCR{Tq2-3=9&BUNasg;7F^)Abqt+H-?V$9NojM<%GuHyh^p+u~^ghhbqfcdv6T$ zoKZqk_O4TaY;6OgdW23vxR%Amy!(u6354L|vkx0O^lLo+UuryZs&L-Ql^HP1bnS8) zN>^0s=pN^LCa>SU`vkHRz*x`QZ$Nk|iDJ9X_;&Eb|kV-^t zy#AYnk$CW>|A=|jO7xgEo_zp&|mQCz>7A`X7Kt(8QdGp9LK>7GYG^N0ce zZ`yO7I6%fi0`RE)!2qMNflnVkltGke#6B1(A2s56w} zAY+WZ!i8Lr!}#V#k9&3Chdh{xL@6XhTkNZOx-m>Suc?Hs3}lt+xc}$lsW=Ps|NVEu z_f`1%t8(qo=`v9fMuLZ%4+!(9_rT>mX!l<4d+cy35`(;^VJZEJucEBU=ef19Ho^Y` z?aP3tE|r3U+AbG3X1xC;<>#RrwP2w#APa+53UlxihL^1wfx>BG&@uMP>S|6*YA_|_ z^qGZ)jM#^sT1=0azhJg;3lk%lLb4zzQZ(B&YVLUBy#FsY|cj~V%U2e8*ce7e;Ee!#KFO7+Xi=za( z+sYq6i!4)L^fM<&K ze}h8~T{Ss9w|~zLoFiWSHhizAL=r+Av6puO^zMQs5iIr5LN!1U`XiG9?H?*UcCW|RB~y8VF0Z7drh>vkz==Hk71|#L0y792 zhBxPXZFY0mx0ws$t0e$eylN8zxi>(g;XFA_VL9GfX&cb`ivZRv!q@6fb-^XbNFOm` z4kQ?+Ia1?Ye1QG_OK=};jgL z)sY=1MvS)(u26)4y4A$^1Ln1B(0b64As+gB<-FmyfCy6&1}*A|PBKLD=NxG@o!p zV&o0Tz<*DFUP5I(837n4y{LHoLm~F5-o4bHh4Hz=@j)lkB28W&q_ir)ByN^gJ6H-= zZ$1gwLdLtmkgVOp>|b;*|D>ly?Va##UfmMsGA~tDa*t2iM$kL}K`)@p**6$lsPp8> z+}8!ux7MlfL%HvvnXg}5xHY!X9SaVjT7{oX{<9lYc!(?GQ_qg%r)^r*~fpKKR zI?%&Wk=Hbg(w`(G6eJBqAwPpMck=|kwM$``-^$9$rMJ4R-y)3+RUE*_E(lgpBFt2# z*(D+(%5zT>_PpG0hB!D_IxB$xs>qf^m1q9IniT#AbYYGUseJOx`$8eBC{h^twT=DfF9@BbCg>H652y?x z;%go07ZS(mw_T^K#FVk9NfI?FAYr()d-_Y4S5z}K-vR;x>>UNHW@|38K6TB#%3P(% zTy2%^(h;dH92#6Fe#ZQ{xu1pCx=gKAd|qP=()v@C!}Q(kQ*aM>3h^u~L7Uu7Bk}@S z$7O4F1)!)zY@_m=AL{TL!9|~(QFE}RgCg2t>>2q~lEF?3$9Yo?;$yWDl^{ARfFm!}#n&a)`yPh*} z3%j2dsR3Y5gsi@TwKanksC)kHoX?w`j}em1_n;N4%UaGggb75edZ)S@u092?--d>O zQ&m)wksJQpxV)6LHs@ZlfVe!|>hVo|_3qIPK-BbG9E{$LnRA7<;!z2#-dy3_9)P(K zK(Gfr!h_XXF`fk%D<>B^YKJk|r7EV?pPpXIb^Qhcst@KfK{TGHP6FJ&^0aFYLT(5K zKM#NmKGgEhhyyqfXUxsd-pt909(ENs0x2p^|1d(;w= znplsx!Rq2n`1Bd)X4W3njSxGXZyFe-TjR8f{Jj!wi_ws*F~Bu44(xhfhp@AbY=L3D zW-hh~0BW&PX8~T~Z<6kjOupsY;6ha5VyT%c;79$lJ{?5dQ!aOQ6_8gPOsMwKme&~z z#cJnym#jeb4P2)h^M(Doj+mha3iW~Xu|ZLdk6*#8(6zDVl)load`i$`Vv_YLw|ZMWWeEQNKfRk^kxLn%gQzynmOvHuL2o41Cp@HB$pyKlyjIFflRj&>0|6 zmH^i0ex5j{G-+Kk1%ii`8NR$sVr=AVL`M2hNfD{LW@3U#4TROFlG4Pb z1G_pF3_*q6t}mSTK(=beOP1^5U93v_h*$nP4QKvod$Enf5eW~#&s-DZJ*g%EGv^pU zI%461H@Fg>JS-*)ec+Mo8qgw&k8HB&Oi^ImV6{aqxn2H{>@d$Ogb6oxj}_&ngvR*S zB_!sL#;(rOc63tmH^j!ou@ze$n_q|Z!<|MxnGu@2^j}*e!WVnC#+&rfuU$)(DN)Ga zXcud{Ko*p@&u=}3QrUy?qf_GSjk^ojaJe5JSExK)A(XO za*{H7qF-CB%u?mLk>GO34iC6^uP)4hAcQpnu{f55vF4DpguFnI*aqZ$?&DqLGc~_^ z!=8-r0|XtPIQ=C9gZ)YmB_lQm1A`1T^?N3TFreBl)vQlQgWm=yfkhVR*CHrkligJT zRaG&dumxJ{YgY&nA)&MPZBESkSE~IlwdP29ARR6;i}h7U2c7mWpb{7!F3p{{KPX`W zA&Z)tvuOujNi}>^HeA2{I421joWf>RCnrDo`}>0>qC~$k2LI`^r?Q!&NoBumlBeYp zIn{HG9?8gHfhHZ$zm+*k71iZ{5yQs3aToL4xfJH%Q39zZ!{G{Z6r2D9h?SL(FM!6jb16O7+9*}0}ojShAq(Z{~d;}&of|}^3h7;DO zWLpe^Wdg^SdYQ8ymex7+!pp-k`@R)(%B5$isOYZ2*jjt%A@g1tNFl; zZ9?%|KqibFC=cYWvV|qMrk+Iw@Y{d3Du_Z%O-P~(*@y+Egid@FrYiyimg?mp;E%j; zR+j%{d}F6A)|30SG>qvfl<+*g9#H-h3&=2t@z<%X5TBRS9g9O!dM%3_!@0vqe|&8+ zIWU~dvH_^vHT;G^w#9^Sc4&Y1)fBgfaq;Megrvl7z>`=04+8wTZ5)f{Eya9yIF0R! z&8!5>Er3ThHZCqUE|$wc9FX&18)lrgCgHQa5^Wq+ub}~3cZ-WNy?<7&*~rNVnZd=# z-~0FPPY{KZagcYvMfmi;3BDl8Xyl{h**EpRXB$ehY^dWW_j% z^#sYeD(W@JVg8CrAJvw^k4HKRaoLS1swMvP=#`awD#l(>!Ph%rP)xD~`lGk9$JH%= zBqZ;KK@1ER1O-1P6a)EZiDO{4rJ3UBC-5OmjCpE4aM0tPBVQc0b@tB=YAZ=sg6AS_ z0jKEd+|Zwh^uJBe!-I}mqL!wSL&;K$pL%U>&~qBHkV^><6>&I87=Byu_DtAht|XOI zHCRf3OYFmjPgKi)%b9)M4+5iHqG!+87qbg~d+p3=ZYL2vThkm8c?D>ySfW@7i7aKw z;{1HgR*PJpFAE$W*%i$bHD~=JUA7C}h2?}B5uw>3Y>mtg02Kx#%~u!R+-%&idK+}0 zF~qgLt54MQl)+&2B>dmGw~jCLNPiKCxz*KT3F|Ey_%WsNdy?~ewwHxas^Vc@eGCVa z=1~pmtVW?KCnvb+0Re1jte#-{rIQ1c82_oBs<@S1!jG=0q};S7!9jDrtJ;T3t0Avn zy>mLhX^B8mrwM!i{Y4PYtOssCph1UdSAL0Ub|xex`G+Dc{vm}DWh?pf8TaCCj+|Of zx)bkZ9=mW#*ql!4yrs48j_~E-A?J*5$O%q;D-=%k;vF4b1E4qd7aDr{`oIJW066J1 zIh^d@(ihE}+R%^(0Q-fjHos?lyoU9B`9YTqlV^NRV%gFPc9Ag8YFc!5e2*SYUB9a6NKoX&;)tY|Vv#rkcWo07^^rdt| z`aUP8wpX58o45CCiZxkHLWNulO--h(P`!l~B$~E*Ej4jC@`8U2itFFd3FljxQCP}a zd$Bu5rGk0!2v z<)ApLPSf3Ke#~^uh=uUBk*HY+#I6Ee>SuMsc(VL-yxw|9gIvSx5i2+5URLnhm^RFIipFV-~ZOg2rqT@J`tv6s{H+%oraPA(CQ*6#FcJHdpf0W|8wmJ1xYsW-UCHy0mHD1 z=LCSbz67jHYU=7x&{+)~`+yrd_SxDC zAqifVu^X_mrZ-*DvT`!f0EydMM*0IJ2l164aquyFYh%;YPz!05rk9dw7NrP3&O(Y zR>&e;;mmr&1AQeR2Qx5quFTy`&)c`DDW%g#q>szT5yr%-!3`7>A@~k^8_g`8lx+>slcQTNzP55&hJRVAeQ?z51OvC5{;tA8V^v45YD?I{bBRw~K#Dm*FKMg08pJXKKR2EwqkwW767d zWmB-W?tX!>#jCNs+<03Nlh=>2u_$NDwboi+a>6BLW%^GKkpujX;D7Gr2sMz6@SI!|7UR8D6byrvd+B>reKhX#Ic%ClS;A~Gv)v6PP2L=Zoo(}U0cXqro;$n>qEFk|S;aZgK(fjIgmgqkI)qCJ zFgq-^sk}a`qt_9>TmJ_PsqVt7buQz|#nl+s)9pOkI0C-8Iydh?g%8XB7kh6RR(0QX zi((<%f}n^rhzbZOh;$s@OV7TXEZF?CnU3sj1uI&EnAh;OTH$p}CwaRR^^R-_?sccq&Bm~FZDFJS~N7&o@ z@5J^M>i0Cut=S*4Ktm&ODJ8pwkmo|)Si0EYv)neu;XJ*9?Zz3C(8bSu_4Hq+68-%r zP-rgL0EOWzng`Rik{7eQ#&r{Go5H@IDg^i0H)Q{(@g2;0E084EqYvCb>u`Ze@duud z$$p+HH2q`GQ1&&u=^t0_lB&5stjOCwgr)XMN6@la)%MvnO8uC+nNK-)e*I=5E>Ps` z=W)MX72wAb^gm!f{5V1UpB<`~uYR}MneM*9^1BH!+KCbfP%i!!9{*2&gZsbo2LGKW z$L%h08h;2%7ZNieiVWjdy8Y+<)A0Bs(1;Zkgz^cQ=vjFsltr5A7m4}#Z<74;dlDxW zftoS5zg|kU--q;T&e_4uvW9ilkV(0|C%z)#GWT!XA1%&gqnm|grPCi=4*gNQyslL| zE}MoS2IKrn9~iTdXBn&ieE0F^!RW>UsORzJ`!sU5COw9gq1@T=_{d0qHcsu&d&Wrv z^pEXu)&xh1%|geeF8SMgY**I!9Cvq;>rWQ-zT_?b7d*J9H-9XnT~Cz)Ov3K7XR2&& zc`-$X-8OmfZRNF4I^X7nKt3m;Yc008D$1zI_t1rIRr8F`m^g-o43 z0V3?ZKYuV&Fj8@uh}L&abH`AUaICrHh8`8v5e=1{W1X%uoQg7c@pFvJhJ>ag%E2Kp zY-hWl!qM%ohK8nFx9%=wb?cm9s6zzOcjR@<=eD$By&T^SsWE76Y8afF=cU+|hI}KK zDQS0GdaqNQ3V~7xGLas|JLo%X;T%mta<~56fUCq4=VK32**!z#_WE|t*WsHFEMl9* zxm$L}gaQk^;0C>mN*rBx&IsQe4%ja}0e|4U&mm!4e{eSuaeZ4CecO}$hA+#h_MHlM zzmAd-lh-vs&(!6)-Obi=8E6l|jPkSyRsY4fFg)^+8%%!|{Gs?M_Hq^KuY;qu{`2oe z_&^}^v|N-!ZBEqX9MsJNXJv(KUtdqj5t8u@lp*IeQ__)Ra%HOiA91rO4rurb56Byz zVEFqSk`pDSBn&jC-JnczCaAm_vBYF8hWeqyi?tj6Or^hv$JREI*KuZNvu4I1xh7F} zpR{s@fV9YFIUWk~FrYgwC50PO^Dx=T4a>(*N?%_= zMJbPI-C``qJ0dRuykSjW&4JjlUDNs7@j&vAzSE?Kwb0r^bWn=apubfYT!+-s_Vp-# zpf}0>_aL#tDgcSwBiRgBo{~U@M!|#`xgT>xPJ~$68ol9N+_kMyzOJgOI8r0)Hrl1e zMFxzXZ==b&%V|3PpM?&I%2_q9tu2*j0I6=>fh(#9cUj0No8QJ(51R#7&3Vjw9Rt~MziH11WY+WSV>^7eq#7E3(IaEwJz*W}Gm^{7ha}Q0nHKl=TFSKA1G>4C zpzK_Tznu!bLct+m`k2ZA&{gV!fJA>4L;LKV^MUg9Z;yibZcZRXufGpsxu%FqfA?zb z-`9i{@2F?xBDK|fi~~joSaXH-at35y$d!qQQs48DPu{=TReEKNpG~d(O52s2$u9iC zGB)h&!-k)u2glpmnqF%2S5_w$+@S<>9n@;qAeF&IEm4(C{U>IqSyZbup7X-rPHR7P zS|lCLZ?qZXI*1nR3Dc(T5cSq$g z5NFux(onsN_qqZ_I%FdihN?lc5lNXT=t#d$=#)Sg6nAnu!k(GH*ts0|Oi_h#u%w^n zUQ(MjJv|+X3I{as_6%7Y(k$tk)#q+%ZiE6ZL&MpwNgV3X_#v_P^r>M*j9!y^7 zW}onaiTTqoQLnfTA3*-IYfEbHWQQHpDngG?gLfkHGtV`Z!f|htE% zVN$`$4+SGZANbCJZH+Y>lvgk*abmat5AFS&`l0T=r;op{HMK}Rb=mRN-Zp5DDG2Z> z?eSbfdjA_9hb0a9Bc(a|z9LUtXzw;wBjOSo64LQyQUv{|a=?7=c!TgiK8h~f@FGU7 z+k#mfUhXsc226gqTeXugHCc_0m}&MCjk2K%_?zm=H=i#CB>Qu-1orasahLG|n;Sjq z7UH=y%V!8&VhVL5JtC3Mb>xH%3;<0FxVqadg>CT+oKkG;O7bDi&5Rml)-ntAkM8hv$sgOe_p8LwjgAzjX4!ulyR$O4RA!V|ao9C%lpTePRokxib;R-9$at0U8n- zsmvuxF10+>Z4lrb41&Li;d`Fwg`INy-Itbhyn2mXlug|cX0(EayzUv zkv;mHxAaK!(ymq!LZY4ZK)pXf4rIp40ZzM#hYgg_lH87h{pZinUqK}n+b8cU>B*pg zpL8TwT1IqvQsHy$j4cz>t(r@&Y*|q`{hFD3qzCPdkttqF`NOGJyx)-a`(SRMhuftl zWpEJU&fgyO!XV`R+Q!5dpvmDfjG-4>6FLF66XcF(cp_0=R zkkur9cU_odXWhbWzNJn*xZ-roU~Wdt$A7n{H-@!tq-$g+Qi#9L{;+-YrsY^p#pT-{ zy0>od(>F94BjsW_9i!e2eiLc=qhFX1)w%OI7uE1LMac_1!N*c|*Z7Rst6|oYZeJQG z9}f+BpNtzyw0Nxemh;lp*_dr^L7#Bz@%8Ej=9?6ll=P1~o?Jt_I`Lr|Dua(O|K?8~ zaE6yL4D7bBj$E;n!U*SXk)J^D8N~)%I1NQ1j?W)+-*9O|R)TpYy-3^f8Ob{)Xq)!? zA@F+Wb)0*diP-4(t7r%AqeKmE?BwYJtY`uXEZRt~J>N3N-+o1&2xo+?(LwINqu;Cl zj+k-36cHJJ@5UR~4yfjho#x((#fw`+tswC3@bF$jlk%RYj<^yNgZB2*8%rzab}3xw zbM(*Sk|{VK*_y(yI-=eGmIgJ-orSgzmyYyHXsDIaN-2Azdlu!QS9Gz_R@It)pUL8y zp}kEhcyY_Xn9qk5?Rzj+adGdXD<(9-()aq%I>riSs+|f901w9sV?&!T?=C9b6u9Eb zjF*f4cF*I?*@|0PBFEqNeDsRc z2Ev4?-UaQZ<=di+Ixj-wp5C8C-oc7w`9Cic;GliaB=W{Nd zQ=J5p z2{e2Mx!^}eZ1!6B`aecyZ{rGD1+J7a!_x%RVS8x3GzxBMR8hmj`l;yu-bMa%hNfVn z6K{-Mq%j4&4o-sKE`EkR(0SO|>GB_e;KhsmH>S4^#AYn9ly~{(XYgfXi?h^9Y$mb7 zFyW6Qb5A~>u33$BX*=&Om?F3Dc>I`XVb*CI`cm?6X&da~gVx4W=d(0MT>CA#Yr~(J ztoT%)4K(R3LiU6cTUOz^Ps#ZtF{wa9Ua%suAk19U#6rrha%~9OI;Bv1MCfINB3WRqSk~^7;Gv9dV6)Si7fW)CNzr-Q7q;9C3^+J$h1SH-jtK_arhObvQBYftOhuNwoc;Bz%ISRN zqq9_qf|7k2D(-cno+mPY$t4YCvEle}2wrl-~`8_eEC zluaFMl94Q4XBu*9i#tuJZRVieSmSfw>Ca91wOhE6MZvA8sBA-JI6pUB?hsdS32o>r z|9NSvVLl0$5?GvG7ro(`{grg2VyVSyyJfeB%B&4$5a4`hPoz!M4!Z)KUB|q-XqE3K zO0SLIfB4YzrwNG&4hgi(eSdZYVO;besYa!079;kHwv897BJt5RX4$pFIM6aIPj(0m zZB^OE^j9T~GnoJJ)_;K?~yerxD z>}V6*HG$%2_n-hsf_=@E;I3F|OBByu@OU3ncv{kM$D)?%07M3T9&Qw$FtHB5M7&SV zPH6eq+O{dN5*Pa6r) zccu~t4QUp8Bj>ZVCgpNV9j~oq&&33sb{)jL|-t(WR4 z>jR1Uh7V^>w*4Y)gs!F{eXi;>Q|_H*@+4>pa` zY&2O6H+(txnJ~poaFYmoMO{^Kh2mh0edF|aV_~MCC1FaQl3Jn6Lto`dASF6P(!r}q zNwUt%85x=D!(6n?3k z_B6}sRLi-heB-v6VKzps5{F+@DLp+s#%38ZvBqp}b4gq^^e)+wLcOos51VbHTh+tEap@eGi=bf3^#2 zI1-P3xdLKiVX)PAN@8HI-pJSuwQHW+;M93xtD!H+b85F8acxm;5L{|{`s*1-in7!W zl)7iD%e>_0Lxe^PxVDW$-lS(|t8Fho=PG;d&D_O|7;_6i>91#um)9qn(Gb772iZNJ z|Oar&?sSMBTGuYTvXNE-S0ql1g?6?651CIKE0+LcO%p=>n18oyFZ`mullF#@)YxIO&6ony zOFbv9q$Gn^ZQ8M6AEZ;Sz7v7V;Ru~<{Ma8il=ges*S50o<)d-aAHQTa8*RlM6g3=r zlJ{>h(d?aVxzY`xw<_PWh>I!Hga(m|zoMe2>9YlD6ljobIo&i7y_^)MW4w7bTWOk( zt7~|49kQC5i0LzCI*-jb6r@J!L~7$-nXaRu@oQ9%fl(8F&sYDa=lS@GB*sIvjHk3ycnafg0dqqxM~HJi-jcEmR66IE0O5QZg;>~FMNs1R zJWHGopqS;#0G`yLed#OJ46$yFI&DtEvs^0YJug|mJALH4y zE-^qZ_jHbufcJL%y>qMDnUVM7x+klg+-7N+kLnMGyU){5{+Nv>Mht4*j<#j?xus6` zM~;2{Tls4Os(3;VM(VZ;_lLPu8fOcGqs;5!_<2`0?7&l5(WkS(;r_TO+^Qse3E4 zN|_}Ids9*y-yTDb>z!Exq?MY9sjjT7>Q2jGbVg(;)I5jnnl5QSc#bYxYN7ni<UoqNscfWx zcZH7x5jX}3g|WLN`Z5kPvB0~PbzW-?9wR@mS2Sax619Pux|8C8L`bB$lNmNd*B%i)(t` zay97vy?weG998*lvE-h((2+~&#<}a?yE9d-8k|aD_(tl1!M+kxq+Y&f9}x>wpwFqS z-dRl-!dUE0Tu$dNdex$(J|7tFEEBbm@;7Ro9KL%JAB+uGiC(nT#Bmrj+j*&`c6dXj z{arrwbc6TMMQ)5ish{L~DHamB0dj1pmxT}2y_Ntw>@x>}*ek>RUHnSQd8ArS{VK(F z-Aj+D>BM_2Y@Od_3@@oy-l#{u3Lt_LKRYF%z;v?ZlIw2CmXDv`iL0%*C41{l`49Q2 zLF`N`GUq$Ae7>T>!yO;f6&@I>mt#ZijwJirGp=vDQ@)xfk6&p?|FUhkceIR9kqL^c z`MfXdhYiCP&5ki*uwd^{eks_Ts_7^l0{neH`XNM6+1A zDw<#BUmhuJ{!H$2K8$kc8nIhOlAbP4MbBr)K&%q@$n!0dVxb-SQYI&0-2wblPbzS^ zrP1UyKQCRA>~Q4UknuAPJx;gNd-;RB-qO9lG2o;`EYA=Ks*Vr~-j9wD>|fgy!`#m@ z&c|EP*LHDk9zXLAmg~8n=2rGAH2u*PDo?#Lw5UHLQ45jDQDrKWA(~VP2asDfaB6hF znRd6yBip{g*Nxu`Yi>Dfcqvi`LaKN9#LDd5BG_b->>!_v?p0c7hd6_WZpbSeD|UCE z-Ke=2y=ygNP)R~aT|qO|?DO+er*wPy88^|3h!*8QSv`^OZFPYwnzIf6XpL-R?&~Q5 zh<*L=gaE0NANKR&6;3fKx`sx{T*5{-y=+<%fa#vd=8$XBL}0tEEs0^|BKK6; ztmuMUK)yj<^?XOAZ8N@AG<=2ADdsO36-8yP635mUt{B8CnDl)FH{JYX?DsLTZeqJp zkcVF2;qe=Y&X~mcb#1P_R=XHpi;7)6?}Vw_f-j|{q+oQ6Jaq-ME63R$e|7Et+uJ-y z!WCO-jgM@Jw2}wVa|v*YxlUnxRJm;22zb23h~vm&FUgn$F?0%n#Yg0@)j~KyLYXIjOUI{%uh1+%-k&a_71PZMsJmZg-H(hrHWD8IFc>#RXXcsayWIItR)y!W<}<*TQDQ$?J}2l)1< zxs;yhM@J?Dhs-p-zJ93oU!;)Mu|z7jBAr%i05>%?m5!>edoT|NeVHB^<;>?%8q}cX zzQcEbl&!B3KN>CMM)t2s&Ph>$(WenFa+3#2$294$RR@EN_!EGCt<+7Y5~9ITrF+y9 zns%)FiC5Qu-Y3X9J%wE!w)}&~?m6V5X}!(Cv6SQn21#Z#Vk=7J1)+dT$x3!j0A4GV2#!)U3X)kn`2J+11A{@GHq$?+6b>^9aRE`IEnqd+^?q;&SH!nsk9iKg1lqer75l=q039}Wu2A0@`qIZ)Ff*w z)T^V<#m~gVefrnh1Tb`-Eg6SbyxBdV1zNdV;TV&M3+O z*bcirojbPNmy3bG5QNwZv|8t2W%JH~s;!@?Ib|qF2`TNjTsq}scJVD5QT$h~OsVI}&#>vml zdA|{nMMCB#P<@?+fs$%x`Lj%C0Qz2X|2Py~Jb4hg?HZ2e!rCBr6>`HJF+(_wZcmjY z!>(}}s*SY0Lx4Bi67uC}_Q^*+D7=D1 z3RR9k^>C{q{)oIl2>k|6Os*rd@+&vz|Bii3LcB@oxzn@SbSR&x@HvZ9-5tW`&1yc0 zbLWFkKVCl$*V~O|2XN&T^)*hSY%QxoUZ*t?x4xw;<#}vG8-dsmXGO}Ie-G}|ECG*R z!fB(GC78xBKy1$X${B9X%QLLamZ5!`WwafA52W)2`dX5+#KLY_; zRz(6tUP3c8ZSRRWj|FYom}zppkJ5zH9cAcEKc+{td3Dc?(g^a4dWOSi z#61;@cqFnJq|J7l8^^eZ=?QsT3NBk-WTN~pP#K8ZOLp-EPn^$Aa1VW34ZTI{EJo}q zs=PT2)xvL__J5&epw&F6jt*k1%tvggKDJku)^boBK@hZSdY_ZCBk;AXFn5c*;l{r< zU=mkVHExdK2N^ zGe<#czd!Y!OWTT80ETO5H8|em7%}$Rq}H5q9JNAnfT|5~KdN-Th>9ATpAiPgY>Mp` zx>uPD)iQZYYaX%_%O6q^cU8;a090@`&)i}x0O0)j;k7E@YdfAjiR53+{;KCH!|-iz zWu8G>Yd~?_`Ms1BdZ$%DTT7cO-bTJjTVKM7J7YPW zj9-qvnjmoy-!v58Zw19IuR|QNJQVgMb!y8o^@k>GN&l zS9Ja2^Gn&U_;vC#?a%U}j<|GMo^o}_sw!3(YwC?XUx4Xm|Ep$CO1~Asps&;~a6g=kWs<5C7}BFP0w=hh@q6heX3)D1bg%zGIws3ruy@ghI z#Cy%-K|fTbEu52_)qC+(HoP?Dx<9a(m^vXIe=`<{2Fe38;ue>%#=#n>jN%YPo|hj^ z5S9B?8a30Qd*temDW>-G6~-o$n&`@EDoi(ST4o%z}$wFzwX6sDt>XH-?t+R;DGFLw}=nQ^*$alz<`F~ z5-^i?q_%NB4G+)}xv~H|aF zwUou?Ah2$N_iN+)gU`nsMuaz4rU~xst+~E%g2kn!V=b2M=~)ut_W@-!Y7*Llwc~6p zWpg&LPGB`uQgTe4Y8d9qYmaZF$#1>lb1W0(a#;wZkhz#A)5ylu%jer00=tj754<143OUDW{a%&;Ph` zghk#Fxot3s233{Poy73DeRvy zOq~1dq=288Wmu#D)^k}hkxHCSR=Tz5;+(5_JSQ7$zo@Wgx3#&=Odp?(Wg3;Glf|E# z(Jl;AK-->;w4aW+mwZ`xiRbZtm*-8VtZqWWFOMT4oTd8nhf}%%%UtMhG!(!`aDBQYaUA-Kp!jH=zfhAq}J27i^NGaS0_gIS~=A z>IuXf;{$Dibr(OGGaEbm!-4N8UO5f^jS)Vlw3P4jF8#wXxOuuW739-c4| z3%?(K|NYNX(9kfj{^^N?hIa2MOq@TDx8E;7>pzdn9{*o|^7mjChY=032hCl1TX(sI z4&-bD9`AZdKIeq^vv}JS49SAt8>~-uA2gE2hLt%jQwY&8fOZG2fFP*=pP+80yr{A_ z3fv~-ENLaO*J_Xt0`8+7!~jeQ42hOwwUnfEb5mpJ9fJPu&Z3B?rb927sYBhjE|J>6 zV9LUZWnbgn#!&b1#mkg8QZ8h`57)z1pYqLgcmzzoThq- zrICv+-DzQn(h3DB9Hes-bD$n(xb^(&jI&;~^ zzti6JmrAXrN%=*SQniOVUI-rs^mJ&Wh`VBk0jdrmvWjp>f&rw0{g=}iC`uUsf9b|EN zMs`Mk&`mV7N01bA-;B}89e_kSON~cDMzq``?1hN3C6tj%$efQ<{9ROeXpIR47tPiW zdX%aZgLv)Ae;o`@5B&b7WThwlBeih#h)A1O@%jdNpT>Y4 zS0Gz@$s*?gJCmeVsFn#1q@TlH$P~pWHCiq?UT~yC#7=fEV!D!A%C)=5BYZY;oez3u zCl%%gJi|V8JuA~Djm`Xl8ulL379Qn`obo<)1a)!}Xmn_psG_BPgQSwsRjVA=aOkL>&P;D< z?}2TUytdk7wq41pRI83$-pGYzfuY}t%}G~H2hF{Q@U%*Q(c|5&NyI6V?C{tqp?ayx$y9rlE3!L68wcfcvXd=nR$*L^okT}ai;KwP6G|~mYr&T;x=TA$k^X)XX;|;F5`Y~6&f|y9 zEdV--PlTj>8d-=3`g?2I`5&3@ys2@Mn6_AOqYzvW5E9t%hH(aFX~)uHVJv4GcS`=C z)VTK(|7D??`e1S=-El@m`cJWBKlEsyI8uNMg^-$94DJ>mPZ^+v9$^ppLpKy!S<{xX zwn^LO4-cgT8vI(1>FL#Wly)FwcMI@4y(wHjPs~=9VjMK*E#T*W-gk#Tvu9_IoF5_J z8VDOWivUfwGv3cm7(DnV#A-LeEvcGlX z>`tuYEG<2~cJ;KewU`O84&3Zd)<+Z7C+8EqWi;C~O3mgEoI+4Jg9`O-tnEvt%k?)Q zw*A8CXbx}y_=ZM%w*!L`UGB8r)i{bsQELe|{Na2O1G5*DOMrNVTd->7=Vye3$Uac^ z$eGH>E^?eJvmNUJsFJ>^Sp?hee4@&7vJT%D>T@J(tyWFc@qP`?(gpp zCLqI{m1pz6YCKZ211OjkMar(6UlU}H?=$EA5)##?P`sS-ar=0;4j`6XAPKa0v87FFEy zU%}5f&-Pn)T1cA@ms4e)F)xf~ezq(Q>XPT7>$XxxU}tbG^OSEnq8MnO4Cl@3!x~M~ zIfsnRwtFe+V`8(2-iOc+ksT@wq3c&l6`m5HVOMLQ$2Q{;|E0NX? z%2Ex^LgY@tZ1`a5O-n84lALapk?&oMK=t-1ju+UV43*cW=Pj$OgkVt&bzHXI-Ttu+nw;KtfCIDT7yRuz(?^UExcJ-N6Zjz^iwALj`{ppND*ka?h78Z?{7mbS( zgo6CY4k}LBQ$m0o#QV%*GJ+v5q*dZLJ4XQUCa$2%6`}OB7m53*RUsb*)fX*(+I#c( zch0Iz1``IgwU%4wgC=sr?iL24p%Fh9lRE>{I&wcsQmmQBwJ}1x2hxWThY4V3%FOz$ zW9C!GtYmxDj#rvsZI=2QNo%=B_;n?RmJ16*b?g#dQ+aWgBou*f?^yNOOjo0u*h*1u z%z4LMEYlu#mGs3`UcULaM`f(K07Icle72J~oHx(rRUm^@Q)t1YJo}-; zlLDJinbkat+wM)FZAT}elm$YyB|ETb&(w(|0X zN#mJ$A9g9H@FpJV{wH0O(&{fjL*N7okaE7(MR;`qaalrIxRvKjP2o zO?}8iK$$3vBqpU0_HiWPUQT*?eAV0x{)>9*4137SWi58ba$GSwN5(6ni=DvlV=-K4 zm@^UUWc}huYT~<$W=!ctxZ`{}vlV+>40v?%sBm#UW+d)KoQV-8>y@a%KHIsjPOf2n6CA zSHK=f|M-aN@m+4H@!O3oHp&^{cA9%7ZOKRWI$Oci>8@+WR~bWP2Fj#zdxC6R5TtI| zJOj`h#MM#OfBmDR&i|K^+MoP#$aQp&PBp1y-^?GW*%8Dew6BOgLjtm#GIKMQmZ(Vf zZT7b371iV#KmL?)2O{~lV4KDvk}!jKYyBFx>!@_yC_#HTpi<`RE0YsTy+WdyRx;5) zPMw2+7U)eeY4j$gtkwTk6+LY>UK}40VNmYt>9r#3r(8Ic zPWxYnwnUY{5s7Q4V@S6yVCxA-*!@6w3(Px;;I1QVj$=-v z0OwiAvi8SiYUsx@Un zIh$4G-UHQn>|0zQTDaL5ScwNz#N@Oj6+M5vj^c3Jo@x~hq{lV=lDV`*EV#6G>$`3) z2IZdwcJqeQ`Wf}p9ibj(qhOekpuBZ1%AVScyFLpnY>B+G)oD#@_xR{q2E>;8JTqQc zeZ>fu)onK0t%LV4DOp(+(< z`}T;jIs~^%tn|kz2Cw{&cFc9M{<~(V!pdauI$;hBX#(uxR7eU(&a|)@fVsZ!*Nz4_^*QmYf96iFPoHA< zurt>40zx_MVg|y*OB3}sP6?sTUJOGn?DOn<3y?m;E+Z2SQ0G#!9!DI`$5dcUnNR%+ zpHRL~5GuTd^H>&1CobM}5SzrQ?15_oI*GO%NC`l4k0;2n-uot9A12C_u5OfXXRhxW z-}AsR?G$SC-&>b~3y$7%4Cp9H%skQ{P)!ioilQLzrn|`rr36&hETnb|0#?e4f;m1tn~WK@-yEellVy#LARWX)`1i~Z9`s*|)8=Q+O0gI5YtR_nd}U(7Wk zFYU5ksDnO!);cpQCIc(UKp9EsJ;+G=#9!iNDWKDNQpaiZ>|+G4?MLVg8V6-*265=Ri)gH8=JEMxD4V@h3+ZGIMt zMIY5~lJYvAu9o9~tCu+&H%-ojdvv~bhqIthUV=s@#|($wUr2MUr{P#-^FMK~xT1Sl z56@jYbb9M$ICNZXp;~6xm<7pdDSdH$EfuS==tjrwy;~st)+j{f*-nqCD`7>7)8I}nkQ7( zv{HBHRIw?k5lgj9Dp|1_lRhK<{=R3WZvN23+Et+yM0$Hd$1okiu&%=wdIP|wz1Kz_ zI2mY|oZxucsG$iyn|N7MWL7%3ur@*i?Cz3^Z;R&wV{xog2IY1HM)Iz`+>vB6y_* zHxFR#cwCpOWU655+!8`(wT=0+#3jVUqXvo{XFpxBx-9s3J|~sAC5G$l3@_F23HzB@ z$gkczt(_;hFRfX#S$lW(v|IzlE+QOakXKC@WTkKRDmZIHiJ{LySVW9cqb@KDE9r^6 z_DP#NzJ~YjkDob1eBf$-yz}+?UfUYqrkDwqAXjEO7R9rT`S8#M9`sY^;c-sHX5Ry= zYGgR4BOD66c7;Y#OvNnh79%CW&GRyuS^AZ4cEwv8rk1|edwf@ced0|$7cbdYNM3G- zcGuOuz`DLO_|2wD3;BdRwBaSv0g4@cw~KjPJ)mCk;~jl(B5c)S^XyjU&nYY7Ab}bt zapQGaS~=K~k~G&9Q!7oV$STX|!kB)JS05O+rE!KR_K4hvj2}|^lb`J{P1sJD7 z{0!KlGfph^z~D`Cc9r^uyn-xJsu8DV&vX1ffD}od&0fzY_Sbi99y(1Jr{ejv*W60z*ADq2)v!$wvDBL88<`9QLs1ZZ${C=0y)W9qHxoy zI-CgKeOCi$-iBpq^wD&`ubwyJ)RfcBRbTQ1G8R#6l97&I~w+CGC;;mGbgV*x>t4?H?YvUNzFy5ER!C^eb%j@AY?kRcy`>+W4IT4Mg(5!xWKm z)am9fLX}<*T>WEKaL72@uD&1(Epa$0(nX%x54F=_uZ3Zyxi=XmBN&EchfqH~9V)NwbTkiUP%#(D4@IJ`w&V3L!Otco zk#_sX8j4+_Img}&G8O6ypf-nkwYD7Bpr}%EvPg%;y~HPGcenD3fItK^Nr5Kdt}bet z(i-qc&lwiTT|p>i<)oK$>(7lwd;4~k&xsF8#M?}CeS38hpe%(n+A|~_ zPqd%FI1ZC3oUX|aq^xZXO_etFeZ%WyvF_+9IQ&qxmA=W2VEAGHh-qTJ%9@%K;S&bx zqf-e?G}x+f--Z>m__I?u9$q(^{ZmP{$kp5gm1JRUArUdGU8d!qWiAHw2pYdan03~gPfoN3Z_1`=A%w~i_q zU2k3-8G`ku$nYtl27QY&vRj)Zw;4pL(OQ+1o-4;tlo{s!OaEEl<1=5RSl_RYskht| zZt>Y8DY(aq5#le!KYj=!H00UnKYt>x9LAWFR`F&!-Xl}xm0^*&=%U!P$VuLj5f2yW zDW2O)^HC-RYa!2Mpp=+vfBEb3BwkpgcG^7}Au2G}KdQhcN*Y(l%qKpVSWi!siY`8E zS)W^^p{C;+G5*euh#*|>7IxXf#3d#V|4Ll#*}# z@|cs%msOCG{M{xMarT^qkq`2pj_6Ow1%huvV>cb`461T`G{9#?@L} zwo{;}!;jpDxN#w_<`0tjmA4q`L1rpyLZbgiWOm%B=5X*nx&412yy4=7i)PL31yJge zeYT4mdAi;m19AZ8AWa{ip!2zwcV8qE-CZ?#Pfk33ir}!HAa7X-or8e$I`QSd`9VO2 z&D3Gl=kcvbW$Y5f@32OuMIs8)_&BNo0$GCwyQIs0{MAgH*E)$ z{$|Kku>5W(9}5a4K`U@<65sL+*`Mr$DFOS&VU+1nEz>%`2)~_6rG7TPtA&Q9CbLC? zn#U({{K%IWojnuuZ0|q4CnLvaHywEGdnD8q1#I6_=pfzowLU-f)doMhCz^!s-PkW& zu8ngbj$1OL%uL%r$bqE%jjAVX-+^h4Bt2=F`G*ib6&jCb!&LgUs2fFx^MjY44Hwv)H(XpNZmbArMb*yXzd)sAYYa^Cb!jOq@W+I&)N@x^gfVc;3bo$XTtVKdM=OyiE zJz93#ivb?}?8-1G%%6yI9xZ_S8vnc`#{#^PO&Al0kCUSj)nHiF!7=3)s!Z!3g^pii`+Pp~gl3qDiE0#7`$;_kHQfEj6(vLq_Uk~E3rePR zXR^co%~5?xAd(#w=IiO{;A9vyd$K#9J+^7Hw5C<3Uz@9|!}+-@SW>Noh(a4j52#LzA7$;%V#Gr-$qv z8&;B(G&%RE8B8FDOY*9Cvz>69cZBZMCFeWGz##2-Ef$RE{@Qx7hU2)n0`pBSR`e!W z1(ZaCIwi?aUz4{GSsUV3?hdKR*t|vBw1gGd4Zz{faePT&I3?+k+h%QctFtupg^#Jy zm!dMYQzo(Gd9${I398I~P9;$j+WcE05TXIe1Bzg%og#uI>3H&T40&u;oN~0+b2#2L z2wQ;_-|?$~pq#xdx4%R_VfMmWlr1}A9OO=P!oZ?d z(Rsy26h99v8)~It#~Fw75LiIqk;IS(#X0p52=+^_=YOf}n+spgIadc?gt53@FZ*jy zAXw!M8fA_CLHPhD$ixqj-Y0Ga;jaFax;ot~{GI;dTH;{hoDvYKwg3YzZ9D z{%X`*&X|rdpNv(*9kK@!aG8#zgzaRl=fglHSY0JHlr%m%n{p$I$SWF;+OueYBJL4D zhQi#7p!xw-lmN@A1{+sNMr*JZ=IUS)xQ7-T5|K)~G9Q_g?!vukM#&I4^Z;zT+;&|c~wQyjWxY?$z#aK2INj1m1!OVTPm$cT(^k6ywV(J@7a~86R+4kFwAl1WtX7SUQt4UxnDe39U zY83;jWue+suk4HcvJ+GgJYx=F;U6V17PDJcE~i@^{cK zv{zOznL^F{zOyHi62dwKWpCEGR~b%%;tharYTGPaAMR+J7Cqbdd2voGFNEQUhx-hO zi|X(Dic`o(3=CU&WSEp{oTX2ea!U5*UW$w33ikAJSAsrTzhr~Ju1Y*zo6oJ}&i#{%TEW4+fQ6{g%f5F7w$ZR(QXU>*w>w@uoLbqd(Zn+d=&%60A@%>-y zy$4W~>$WYbi>07QP*fxfND=|bISU91NRS+qAUR2rERqx?C^_exB7=`@&Z=a z{l8#iP!N47EhY&|sGs-4gQr&xw1cVnIDalB9IhlIOLJN6W&O63l<`7iepU@-_dUdQaG>^>dq_n&Ypdu_$_$y1vY2KC{{6f4P<0dYgmmN zc69NNFx?=`bCap7?5nG$0&*qRuywq&wS^yBTP&|`fW0Be>YYlEK&wY2B;`EC_ynSF zQcSdu+B=vYc-qJ--S_Vb(kf2>G#}kt+Vbhf+MKQ`a{SI?%8?4O!IzdD@jMwFQ=ly#mgzk&+5ZE4y}#Uj3;@yXv$<; z&_`EpVtCgNmxA$d(1b8a7jM$#19blQIuF;nnoM|eW-rnXZs}U0raXfH8s1-Hpo31t zIYGt5+|0PJFD}DFUo7`E5(N0(%|bXfs9Ckg*;+emZO{3!G>vEQ)CTc$4-ncCRz>CE zn7Z@F9OM-)n=a6qmY&KYetj>nA43M&=Fu1Lc^TM?)K~YIbCN6evO>E81N^?OT zIFT6S96cHiINeQ4|G1*CsROJ@XB3(3#($e6`p281epYMj_}ca!dKyE;=Q9CanAE|- z2#tF>2|ceKn~zuDM`HEXFKwD<01Tgz{cvdkzgwm7c>Y)&67y#r?ZAhSq+3D6b4kZk z9p<~4gHuFVPYn*}7yKu*7?NP%GgTaW0dfgqmiQ;2q0@Nk9~zh!`*EkN&TU0SG#vVa ziSO-NEi9tJD*Bw-qjEnNXYd;{(d&uju8Za|0RMbsU+BCA>+0118sZjJPJ>OJ2S|hc zYk7AF@B|GO?9e&40M~7oQi1>xnCGnFTivP!x!f0n_yTk0fBJ89Xsl1xychQFA}yB2 z?a3Z3<<8|C=S`c;+kOd2Y5L?6t!&P{O?|)V?YSe5%i+KdTnMYh7;cC44WC26ho5n* zC*nbe2t$|jMl65%8(zRpAnE{RnK&-DU@7QlOij5zybKG&A54Q=qOc0?@JB159Dkg3 zsUtWo>ehL)cOZ7~^zuByWZVBwxbnXFMrJmoGZIHm1yu1>Rf&4~DP&sQ=g_k~?Im_@ z-M<(g%@I=v($~4_9O;KolQ#4&77gM%cS7T8h2v^%r*CL;xDgIJIYcELo>J1)<*3!q zVSRy72tYu{?fHGDHICGhQYZzS(J+REDm$a(r8<7NF5IzP2w+gI9L1pYIIkh9WVsmm zk{{cu-@Qc?N;?UPH=7@w(GKVP?iO|x{51t4gi%uvRBKcp{21TTd?OPFSi7v|1{BEQ zvT#f6GZT+2EmoizFiks=-4r!8wy88?M7H%g7fUKI`a)ymyLSsmE6;!mHS_51v+Sa= zoXj}@53H{c>ZS1Vl{>FD9jn7%1btaj*9(EFkfY8qycqdx!+|kgFc+%mjf3>;lzxc% zQ)lycMaBX0X9D8bB*fCuIW3TELv%hbs%Wky4Bh}yS-TfdqFdp5pJ%vv zsr$tw5P1|USR&iA8CTmtPL>4fyns4B@$^#Up~Hp_&3?T-;S>I7qY4P@p%E6Sc3siT zKcPSt7z0N`EgyOjEp+;Ix(9ZKH^=0dG>*DcZT?FoAyY*ULfZp51-ZhSonbI43}BjW zYN8Gc2?cf!z*qi{N!hF>J}#=589uw$tS`7YsPQjx=Szmc&VPv9%^TO}`W6VOFD=%4 zyMG7{{WpwVQ`UgkDy!qexem7tg0{V#>+i#y&B^!`6@FRQu9?YVs4~BuLQK;_)AFU> z_7`Qd=zBl$KtCjbA2^V~A-J5(y%KVO!oIWl<5I$cd+i ztq`W?1-#n9?iexSzF`78Wiw6c;v#*6OTk@usf{1Ez@KuGs|}{c{DiW^x)$7dV~+;z_#>Ajs3n3ZFv#oQJgeM zYHGE!2SC^_9{oP$rD{;#6Pg4)1c0EZr3uODDfxlX4@wTQTGeV5mRFTIAU`6fW^HWk zJ}LO_K_deV-8wot-e`^%D%|-JoVhIvIcD4C6;O!rO7tkipWcX< zNk8S9ke3h2wgxf3e}}^sA0CRI2)F=WA)spyh+NdcnbYa5EqC^S_I>*1xWCyJQ84Gi zn-1$`5ZRs}v% zAf{Qz#8xieO#i$;#0t7y!FA|(Szq1hCrHHbIj<5&2g%E;9sVv2820-W*V>+9i$(o* zaT0|*Tb0}4>#bYhoez zH%$OZfnHu{c?7LN>A!@CXHu@ijf3e`Y!67zMR-XpdWMM0oddkP1Pv?XU-3Q3hMQ$Q z-n#B3S+#ldf1+Elk+Lz>fuAQf6J6GBFX&8M`H#qV@nXq&IWIVWUHvFPe;~ak(qsY7 zYdET~4piPx+I0#*835_=9V&zY8>2w2=VB$}a#$G>J!MkPy-W^=UQ{mf!?6WB#$4u+ zF1$3A<#GQddf2V2^bh2+E3H=iN$Uo;9XSP0Z7s4Y0C`s59eJ*%so9_9$0opRd-Aml zLXm-C5hXcD)8N|t`i8NF>ErezUS;n5E@3g|5fi=Z+q5(T1~pLektQ=?JKQoUP zeB$#8I_z>rs_P2BilLKS;HSEZk7TmoI$m(YtL~EC!M{n8o|k0`TnlLRizkIxboQ1! zP*b7l%Su1*zoTaEDbb*~9Uw(>k3bBF44F(f@Y?29W5fMH*s!0HP6r5RNrA2f5 zRTOml6R!dzZgy5@g<#Z9CLdL?vkf5OTm@0E} zoX-N10b4zDT-%%|u7*O4SG*qp{M^pVYw0*i%shY;2`R5zN-RBao*<$jyrr z@Aol)*ZyD%3R`tGk^cbydfIhDs$-rDS&rnN%2K7Js56YHXsFq}TXKY^qbJQzNWj91 zwCdOXsbL;A*rJCI8INsIbR5zAeNC@AP+7cL&Oc08UBxqRuiT^ zBAhso>$|s%7%O%C1hO2SL7*uqJAMD;z0tBUr(81X?$PKKEC#q|O3K4IqjrzUxpM(< zm8M?;aG(Am1@Q^<$@WS%Oh(wmYVFsIMV?9;jfU~lK$HuRlZAF&O0?2a&O~*#ecVK; zL%`lcxSz#jz^6&ThCmyG97;}U7SyuQkAWe!Tu1ax0~$msT+VI{%J_l@-CtBpWi1(M zR^H);u58c~wRAqFre>5>5h!UAn%i);QS& zhkm(>kM|d8^L*f%ZhL#X%d|H~o?aZclit!IIAnu>tDBHEznt7nDzRg5`elmc^v8XB z5wD#O`n@p+R5QCM3Zk#Sa7GHxBXlpY6yGi?hkh`W#fm9#ePK1F^ug8=a3dstz)rc= za~5r&67W(!B>c2p!GO^Za~s`seElQ%N| z49fWva;ONyQtdJD7cdvRd0!u-FhQMyr|<3Vb;xcQV<&RclNl%|a`KX@ojRldIONK| z*ua6=vjGTG$5eChb++D5(BI1(d80LaYGC2da1buBc7+;H1bcG~?kpMc&~gmlyW=aM zl&BhMFE9V=OKw)yYHe&km=fIRT3W%1Ow!fM)YUsasvshNK*gVJ<%PGsiB_@f)i-YmWb@ng&=fQ`Ni^uGrrL{IOd{d_EDmMGB9v|x$nW}@*X z#NOV;w6olcdd(eX^7Ws{k`o~2O3u#jS8J1laLlQ6Y-_0zxJ+(~uJG`GS=Sa(Xe`S} zM<AV?=6aQVDF}T;tY>?m@U$HOO3bp1(EG>!!KPc|~n$>~46T|YW5uJ6=$ ztICTw_YA%4uifO>MRVEvdo<6|(6AFiK>~~1Rxqhi$K{jtV4OPEMFe)yjZ_2vR6AJn z2j5&?7(Q{9&pI4Nw9Nfx85$Fx{w=b*DM18Mr5=@8EaVUP9tO1Hq5;+0GYIJ4Z@t8H zxW)bE%X??T{|D;gw?v}d$rt>fGb&%vHy7M@6fa3cEC26-ok}TD<*F6JowD8p&HE~f z;XeH8%3blyJJC+8jO1Pst}ZE5X}{Jl_WuoZkjOu3hdm$4A=DlRy2uR^R5If_*=UuO zwC#W5170v%ZDdHjaR{DbIBXAa0|Tv=FZ9t}@+TV4KeICPaQvL4$*_B~x(R-Uqn!BC zHQsX#3QJ%6@>#SCN~t^zjWc#hIc6mQ&EzDX&&#Deb9~m`h28^yi~2)(Xw_r>?hhrK zg3)!Ty#UiI&7^5s#KX@0Rb5KSv5ov$!H`_n-A@9WMFPHY$5 z{kS^K%r_p;(EG`G2GL;WLnV&8KmOm4@`0}k(Z+fo@h0getg!)n=yCBmno&eMTUXWsd@1Xjsw0RJEaNg zlb?CqIadR$rb4Ig5;T`;w=u6jlj#Zy!sR5>mpAYRURrybU1xXO-u^X0&^-vHZPJs8 z6!FY%53QWG9y>R=;!t=C&;PpMS(i4gI7;BVil{SW-& z?b*+pBA}_1i31rY*tKg_EYwH8$L%=Qo?_>Pj$9z>S_VKm_}=b9IkGlE>#Kpl+mFx^ z5li6dqr_`rEf}zJ;^*&*GrOQRjAiFV^fYPFx@%M+8sbex=C< zaHM;}LjN9B4YZ89XF*p4Ek99vszj|`ckTx5Q_mpoMYM1BGrYabg|~HBC|%;OKc;c! zg#8F}cmw{T)|1B9A>x?G?8}!J5i!%?m;U(_-g!v+(=$kQ&PIKVTKjDowPz>E8@g@o zI>+FTcPW2s9WN(F{Sm*XY2hUD!}rTxElM0x&`ZVI!(04Rp3uRKF7`V$zE2CG+@&!u zU{3KnqtW=YZlqOMEiT#+`<>$-m(&_7YBu;eg?s z8qS~ydlgic1(re4Qt)tMin@w5sB|*E@jt;Q1le;&}*xQB1+LG}y zpmh~ae^1B=?NT?#v;+|jTQ4Zdg7VL$UMck?kcXaF{!2;Lo)?s4H*a|2&T!OGW>$`N zF?}9Ow(dm#^$Sk_Ug_rzv5zxViE79TVciR@+yA>nGlFsTLO|Cr((Fa$!3UP(ZqVL! zKA^tIAb!cP*4oMGBTLXBp5c9BO`_F_>5H$$koEHq!9OQUE?*oG(Ep5=d}8X5QPaBr zCa4EqdVhCN%00}QUq}MJZPYsfBW2I=jdO9$-#5Nog0{#mgtnk169%|5jV>d>rWyx8glV!sHb~Ty1#c`@2(8!c8z*)k^Gc8~(b^{QNP; z_f5E=@58<~^!OM3{9p+!|HbkfRJ}qH1b@9H?2~!wi<>?Y0*IR?aNtnJ209_G&c(@w zyo`&vjw%vOF5V+7~@87CwKJTo}fZ}I71wVQX9au@!q0 z4IU>s*~t#)>)oX;xVs}-?(4IqjxiTs`9kvG0XNlLiIdQXk1Sngq?j0$DTlheyomJ6 zOrN~4#Mjde9*(S$8Fn!Rm-bx7xc@oQwSQkXKERn?S%}nBv@H{=QJozDb#w&C=$cy8U`~cJ@lh*RO@}^SN^(LRK<=0xjZsn%{RZ;%6oPM4Tbm zY>G;Sd^H}AI(-Jal@v8r$#BKpNO)4*e6YXTc5i3aoUX?|0^GSgU?x2OOb!Hy%_=Is zDswq3o{(0mDKo8$8X?C8DiFwcdXDI!Grr08&$#k0U+VLif2xey^%!rJ%eqK|kWYX9 zyvA!6Pe)5T8=ISxQ$2b2OL7syUtQKJgDs%owP0ib$#p?|1#Qhq=d~Mb{xbfo?%Lh&+;|&twb0Ho?a*(!8QXMz<-MH=a{gsAmHxgmb?|6GvLa+{ zbiv~O_c$_g%@5qa zv(-cdd6j)m7XNEg=k`YZI!M`j?xE@ityg0zwChjPd$fHdTJGGvYrA}ZR8lojn{4t6 z<&BfWpZYBKxNZTUZ(f4BRaJFZ7|8d!nN$5`-+Gtj#AV}ZQ)<0kKDKqXZ=~eZ zhjwkGGM%Z)3ETD7Yw;}}FMrBzK6?Eb_3)Rkuhc0%DJ_^8kY!X>Rwg9;K$%6L#=nUP z%Bq$cszpyc@3@xMZ7zV_t@R9FHhYg}yTXHpyva1ApuGHE?2lKE<9OcFqxEl{)XgNzvmF3nsCC!P6 zu&^BbDB67R&+RzwuS2XQ`{_s|Tuvydd^hS1D%_^a^|5sf_;=3{OfoWg$pvz)&mXVC z%2X)%L|9Q!H`&$NK-Lm@vSKgt)ZDzm8olRN(8rMZ&mhSF6EIZ97Y%(shQ&c~qvL7b z&8@WOq-Q^dnmc&882F>xUK!dCMzFnZ8etZFmv07u%;qS)ePCG|9RZ|}Fl#$oBUPkH zy9~QOTG-iXiN9eyvt3(kuH=atSdwYKuG@NpfcMQ)dHIuO`oO5#U8wLSCVtrxp`c8j zWo3B_1X-9_Fu4t|LNA{kJZiyFRt#Fu{8nV3dQ^wyWH?8RAFiRO;kY|;_so@_unY=d z*&EvLxT>lppG)BbN}lu6sMBz+Em)i*=|*cHk<@RM<_WEnu4vXTtfG#NhppQxC)tss zK|F}eZ{Hpdu94HxotgcTaC~t?!eA>Y=~f<}zaa&ujnf)YYXK-~_wz27oQ}&DNFE=@ z12DTV&-3s{hoMm>Vk24CuvbDRZ;o>qki@O<+}34XSz+PBqZ#c=8@W3J$jg`hY-~A6 z$?~Om*_CQAKjE@H>lHlAU~+1t(DI|Bt+-}mBR@Yqaf*(Lo%NSlM8WI2vEiidJPQo+ z;78(?X*k5aduG3Ua@P6usT_C;s;e6}O0>7MCUxfI+dJqjA6c#T3V)^7dAq%=FM+>R zLT}J>ywdtP>JcU7S>L2vx9nYho06lp9-RWs31>b1R3B`D?Z%(|9W)X2eYbZ7e0^C| zR0B#2iBt2^G+w@pjr+1Uqucq+9%U!MLI~?)uDY>WSh_Oq*-IGx<6%@bA@0FpVJEA1 z1g+9W_?>Kb3b70f4rXWjWSb@9b%ISdwDQyh`i@jSb^o}IUPUSvjlgatsom)k zrhu|5iVRha`RT~950uE2T+f#fuYYm`YLucX2lSr0kzy8>I62JBdhl3$W-|}ZFne=+-=7lt!~MMOKksh4$6R@w#lKTE3}!e%S4*_}fg3k;=nAMX$JcXu%) z1Q18JGAbq{!reanL^OH+Otz=Hv)yc&@VccF5b+MzPoqi0K42^B8!U;5H}i5kAqM&d zoQ%=8BIoDtnvU9i2wQ}(?MmKF zOGlNq?DX$4LE zuZ>nlffeyE_O|rrQ>F-mQD}rQ$qE_hJmrvaZy+lw+{+y8AF@-#^s%lH{ z399t;Ip{`AcMr0Vq$=l)3%>PiAaknqJ)f@LTi-osRp($VE<|#s$OOKBcQ|jMY(7%y zRNK{q%E_SRv@72E;1Cug%Rlgj*?c6`B(TP13ihowOH*p{`HE!p%)wZ9T%E_?%A{zT z@nzyLmt@nb*7@zXaq;n4iS(P?5*jv2roT&c7wpjKBvH7WF6U*i%RGto5cYQY?6CcV zj^!aaQ{4+C@k(ohJI^rt<$)G$iFtXYm4 zf1KRlQa5>My`9i_5w|%m8xL;w$t!6IWBlw>Y+m`p{p$PDMFrDaOUfW_&8Md~uTgP$ z)Ny5AC3uvzH9LcLap8{IwA0M;x^${`^{(Mauls@R3=FwbHsT;q^dA%kr5Gw;NvAEG}7F`0iIo+ zLB3L9XPAMhe(6IM7+ahTZ{L!j%H9Md3Qs2`eT69Q$rDd#QMq-iKj!?|15elyEY9@h z%JK+5Nv_bKDhWt}M?UJX5$QS~kLhw$`PQnXp<&(pVg(NBHZprw)O?Gqt`oh{W$|)2 zQhYEOZTECw5gL%ytjr+XmD?Gn9@zkw?Q}ueBEr4?&K+QP#ryeMTVu}6Dg5Cf5Vo^U zrvBnZvHo~l$iQ>QK{_fEg&rcYb(SZx3JrND}@mg@|?DizLt1ygllRQ(3zXdYmF^F%wrAljp z_B{Q=hto&3m^aS3CiL!aWjZ58%C?Z%Cw0-ds-q6@Biu0a_3P|`7;d>#XltjLsb+Uf z-LvVLA8iblP76yjcaB=)P*@}^@3S-9M(z0KU2Y$+^U|Px;tfORTz_jB`$C3p(a2gE zF;?J_eVsC=Wdzb;o4`N^5jaxX%z?!2)4P)4IT{Pi-{b2asZ>g{~rK5vr z>f6TrDDCtmY|{M&9a;VjZBCRE1vqLW_2)j=Cw?Iy;PwpK-Sr(NwMbVT{CV&Ust&^e zp#!WKXD6%X8mPU)Y1yA$x9xlCVb~kXQc+M;+arv#$QDzsrA=8(UAgL#;wtt0xyjH6 zwKBWSMQvF{q%zJ;5f&C}Ru=1;=|AyAnwp!%BeAu%_w*nLKUu6_YDXQevE*HYMto|S zdtZVgT9_krY+Rnf8hnb#*~lCYz39K@Fc|V|*#u3~e92r`L_~qs6+YV{!qZq-+RqlIa@j3=5wWk>Yn>T4I=zs>zeU zHVp~4=+q^Iwf7>8EY)AZ)rAK78GLZcKCYU%Sx~kmpj~PBFz^}!O@w33HP@NtHUdLS zo5Q@kJW}pPp)_5evEb*#g2)yIUMC5hhrL4n1gceAqAmi>)S5M~J6=70BSXY#)_(7b zL*%mTr*u^9+TmCr!qe`MDci*O5luvQG=D*Gp@^K7q>g;$876{8Vy4UIB;L9aw%;FxW*n}hWv|JN|UFmjQpR!9d6ckt;W}mLEjWD+upehiJKTT$k zbT*zk6Zi0VPlvzA?G(99jTIRT$MILL+6=ExW=AXGv&X1hMt>legmHEjQ&Q5*kKS;;mEAJcMhwwcYOBys2yePi2rT^~VkLDu7H};Ts0p8qzTX z*)zLMWDVlAt;T$KxH1=ylhbMS>E6-M32Ejpw*`+6-?g2p{Xa=|cD6Gx^;SDQYJ!jk-*<}WyHonzS7C*d86!L zS>3O<9CSYIToFDv{}YF-;@hYxN3_fQ$eo9BN=jp<#a45N`LD{t_bLKi&>0PlvTRp! zvJ!tvK6_Rpn{O^9wab_0qPHf6&TeB{5~ z;;Rg0l|{Mo2OtZqJ`Ad9*WvQ?ZqJWqLw*VSx&&(EDLUQB+S);WHj}7>*aF;h2>c`h z*(NH?ylBbJuCEoj?DauHoY8Z4&f7NV>ya5EGM!0l51Z{C(V>E3kiWm|jPtE+uV9)x z9vRkOA^*DS;ppUu4v`U1V|gnaftIv3uI|%w;5;+0s;Qt0q00%ob>{7}T7DT4l+>*OCLdk}O(0p)A z*N?ST{fSr~P_PWO3?1mcGgSbmyCBVRWkU8W!MR`qCKzpH=4x#EeRW+j0Keb-ezmR5 zR-@(|r%c(^_V7rh$a$!c-HA!NjD)}M<0_|`x~*+VvR_$o@xYH66sa22i*zN31f6C` zZzHX?69o2WyU$AI-2MBlC3*s93T$*mv;D?=Q(4Ehd3A2W*gMtJuXD^J=PVP_ls=AD zSeU=N&5Z(S@sm}xyxUZeUiAirYa_hahATh$escX3p*YNDuWCCubOeJ7auwA3Z*W#Q zxgCv#7mA8+SJz|vY0B6g7a$+RA+2cQ<}-+W*iOH8nn}}|fi69&A5)cZ*u9#P(_1d& z0jNy($FJGZfu9Oog?^#)c;V^@m@jiKQ8F>Hz6nVz$_AoP(pNDmnF8X$W$(0CW%hkd zH+$mhpx{pF37X4IG$}1KDX!P99;}xdH$Tr4ZmcD~ff6IQccZ10!Ouj3Ad1Tk8n2V5 zdE`KyGg^81fcj|54`{}M$B0al{VRHabGZ=Fpvo=+Vz9f}uL!VSpZbQw>=_j4ye|zK zu4>WDE1TzyjmN>^3{gWNoU)RVQoV9l+qV-vK>8Qn0(Ho}<%}PCEHn`~b+*Ij7o*7# z!+|XHYgA^Rq*ZUdWBfvl-fKeKqlSf42&|q93;#rp;vH)b{#gD~R)(rVM$2ts%T}OBnLKBLt^_Ctwe&r!&G^%saytrjdCx1< z=oD4zzQvVN#KX5?XKWY3NZcfi1u2dB74?)f?;tnOgKec*idcw&u+yJ|-Fambb(A^2 zPB6FDIfuV3z)R!SGEfl15DbtOztfEQ)-Pdn!V6KGBnZK^xZK`4ipzASH+{_Df>2v4w$PNPz9ZplK(gNnE-A zx8H!1cGhbY0${S3KnB`}KjcZI>Wo_UfpP+RrPRZNnBLldOisb1O_w!ig#@gdlADjh zZml%9t&Lz>B{?dp2A%Qt?c41A7g&SL)2B~WCE=2e_E^&Z2XM0XG)AhYy<5HdEdpZr z0;@KC{e>8uXB2VS4u917jo2z&ucI%?5J494(INFa! z8nm05p5TyH@mWv3!OUjoJ&f6LBO2P5PZgPJFZpA?UFy0gZrkZVmf#2}OnvmW|VdSj_o*ev=#Ll1lOjlvUY-JDiw$xPUon0_gBgL`!X`TSF^bb41tyNK`)HwXP4TjtwKS`lPCF4ouw?B;}(9rN=% z)agj4)Tp)slXGdKqYg@=xmK)H^k{HfVIt-~Lr%LH-H61RDY8n=O*Ma6^INwJVPwnq6;w49R&VAKs;jhV_p z)HDXB<2#@}p>9kj=N~6{souV~#ssuRHIQ`{gpQCoa+ba7eXrGVS9+~ati&V46NDmd zZ4X8y>ACZhq2Wqy!`(t4AusW#(MqFH)nWYjw}s`Ivo-GcpRcYnUn75X7vU1{p|Qud z`ymZYz8%F&UDrKs0rr=v?q^O{YcTB**NHjw>P-SKQF|~qICBL`0u>%+_{d1*<9j#y zXFLc8ekBgk@X~0D*5Da9DrrX7H#ezFH>t!ozoDT{^O9&9lDRmPFrGcG}MUQXp!yj%AYKxfApxmvpqW>{W=D&Bikj6IC$&F8Ew)_ z9pJp=x+@+#iF@moJQEV}_DOfRLN(S&L}=)6@50HkSD0nfdk8DIJ*pfX#~89g0C+1! zx%%!gpXU=|QE1l?W_8zYI=9c<`{L9|OZmOQCF5Z=z`@;|OuPAsRiCXBd^|k|%8zcJ zn5a40y?dgOJe&exRLq&7`Glidn-y z-A2oQAtR@A(>^c8n8gO~Z%m#+1m0_5<>&uws$kDXRn;p2f{JYt=mrQzZ7So5+zN(9 zC;ITN^>GP_G+p%7P~Xe$WL!Qf)Smkr$^V=w&~YX7A#pMI=3C=;CIzIu{4 z6;2Qz)OdX84snNeKmtel>{k|?e4*~!`J4^l0W`m$|BjDSIN7nZ&T`+zX+v2{j(a3Q zc4KL){CU(XDU8IcFHB!#uC5s06d~rG`tk$=^o|l+QWt$dpdDeZNi9q0u>Xr%IxeshS7e!n0%YPX1;Dj7p+v31ncBdB11G=UmI%k; z-Ic{9w>L%E*RT5`(Wc0F9QB){&X`d(^A;bPEgg|deSL+wb+P-~*E>7t^@>I-Dy{&G zsa1iFv|T(*O6A?#TdQ?{0oc~B-exd9;D{zUBwrjD<=vMB+m>o=p6#>2fuQq1 zwF*1bnU4%)3GssXMWZiaAOZq4u!ciRxEdSvRy%etbZ*MxL$dBIAe?@ZG(yMLG@T%# zGQyhF*KKuX&zk+Bs|+uWu4k1Wg?RWdu_p;EvUQtcoJCgJ%4%;|V_P3dL)2Eqt!Zan zxxV@?Qy6au-~pFcbH!%}g~0f7m_u*$<`uzDQ?W2f_ty7Don<~g^AIdnf^Sx5&L<{M z^d|CZmbkt%OUDRa5@LlOg6{V2B9~RWr73H$TL0xn_Cz@-oZM4o+U-ls*9M&;0LNfn zZScQyH`&b$mH;uW+8q}}M=2ipR!$1`;lre4H$lLhQW&%|a5Wd8`?i-^yO)TK* zh0CH(p&d9EiOso8%W#MImKDMsjpWI%-00G)wp~W1Bl*J3yjDmIYLA)aSr-TmGL2MW zFMCa<<2q_r-R*i51OG=t_cz=EIIpUyotop}M%7_T+)nQ5qnD(@c<{~@5}W<`lBSe> z$hMawJac)^Kg&J^#^_@r{&@)!UuV**{pnGk{60CpyJ9|V%kzM(Fd-o$DT#%f>iZ`^qF zK9bVdNU@qfSCQPhb=rMP#KyMRSkU5+uFGH`#O4Rvy3b)g%50dx@o^l~6w$G@=9w?b zeY0K)`5LDP>2AP^4i=V}ql8}dwt78t%a0W}P2XWS%poL-CMJsRr2HN;iWkL#N~A_x zc3Oex&SdC}JcHe0nX$i5o|DW(#J?08T>WHk{%Vi#XRdYLu-XV*r1$0}@V<#K%T?k>%7_}{0bG&Ah=p_fxsoNqnUGpgOl?K0jq z#M5<|a#-w+d+f3rz9fvC_9o$RjO-CkJc@)Rz*=KcQpy*xo>-%^@|hn0uul`Y?`Rk= zSkyoAEj}lw7@$yPGk+*4ZH-q{9uj-wki0vab%ly1gjp1gjiBD@adm&J%DTi=d-CLN zR$iL(%zn4|7$Hid;P`a*EGjCBK%o`7Oj7{Hhb=(DC=*iDyqM{1)t+)3pv%Xbz6)>!TWf7I~3pIcY%S#X40N9T-(QtD`xwQUdS7!aWWmBD82LoIdY zZBByN@@l?r9iuiMB-@*c$Jtr5k^U?KZmagB-z5ha2OZV%SzF=-YP%rDaHJL2(rPgc z*-5QK+#oyg(C+%N^!jnrQ`F(0hoCg)@M;n@HT6SA#1#E+Nj$+7;Culq`m?l$RcPY5J=R%$8eFB*wiihea@FJw7 z0AltI@+PoKvoZeKxHd@A|on_?Z+OA*oM{dt3KsxmKb4)d|2l|w5Tvd>g5)sv` zu+Y}DW)1F+t#I1n)LEc^sER|%Q*(&%RJI3#c=?xdgd8^YohyqRfw2~o1?js#+H8v} z?7zmR4h$t|g4B^2YGQKqKwAE-H*WA~MNxai&z4{se?I&3sXdgr#`3CRoM2T^qQn?c zyuH(5{L*s*eV!wTb_ODk5t9aIXy+~&h1%Maf`Jwb{Cf_VrTyPIA!9Bv-_Q^k&bm3S zZZHFFXN{CPq9Vxx-mOrrz`yMbLg4uL_zFs4Tce`m&J(=?HC21oF_2Re^SgF!42GX7 z&b36Dp6TE8Yc}siUUtPm7vvQAaU*yX>B=m~DH|C=hbB9>@M~R}#KI2`@mdh^v}7oY~^PNloroe?RxW6yLBu8Sgjo1eh`Z z>uyayeFbI2-EN$zbgj{?m-OOQ8rp>T7&l-57T+j{; z;aS5}&++lA{p_41R`BE{L%Ccao4r?(2KpQK>cw#v4|iPKZ8b+|ogyZUL-Sl_4_>65dxeewlv!TA6d)$GzZ->W8 ztFD20Kn5#~?cKBUf1<7a(?>>-5g69@|DKA1O3z%)KYU210kQhkR)POSbX`VA|C{Lg zOTy@Ql7RMt=~`b$HWlk$>`99Ck^SQHo!xS&+J%I3E(0@&fxKNvZ6F!%uU8T#n`Mb$ z;;QWu6pH;xxcq_#$guF}@;A3C3ERAJ8w{{7o+!amx|IQF zJW(p{hK%`4I-M};Y~ZVMAw27zoK`lnYjH<^L~5sEt-w5YABkpmg!5ok0f{O-V|JcJ zo~J3CM$4Stj(>syN*!+6HM~aM4?UP!PoiZ&g7+5r{LQGU)Cdw>#bG_CsuQ-Q~f`^fUr+X!J z_`uo+psU2^W1kM4Nsng6r&_MpsdBb197KbcuZ!a<@pRcsG1V^(uW&^ks^+9)=SMtm z$@Jj;jK1dQo4^Qy0e~2owf$%xby~N$>&KtrwzVMGGq90HMMV`E8XFuDvv|H}X6|~~ z7eg&-?zA+3#7G3=B605SvftZ2TWjEhb&EvY1g`|1*Q%ch^2Q`T z$vp4*k*8NsT$vI0nE6-d#2=KWN8=Lizk3+{cgDu+l9Iq+=@_}gzuy(py_y9c#6AQ# zBF93{K;x2^j;=GBnU0 zJe4trW)I~+b7wmO20Df+gVWhm9}9UYo~o=YaG*P4{_b{eR2UJFk&p&2I~gt=_4PA> zRFUS()Wos2Cd+y--vE-tD4(ss(UPDdM{+gQ?PA9_+jn_sisPVmTu%dZQ( zKLvDmxw5alnV#@mT{TwdxB`h^T#p54SiktRY4HcgCf9QeZhO<=$I0%fJaNetjE*ay z<2V^VnR3#8OGLh(HD7i7q!z2Ky9*B=Z|$e1Q{{pRX329sYaI9Iy~cH& z!eKZ--S4FGK&eor4rSFoIGGNkx8KJ#d2{Uj*^Z5;Qq>CwjO*9616?S}qy(52P)35zR5=EZ))|Yb}rNRoMymhq}Yq-%t zkDBxjS2C;YR$^RhoY)M%N58wb*Sl{!m;Sugf%I{S#*3qhAFV5-F60tt(pTzSJ9`LS zKO^^h{7=bWe|f~At{`f5GH(T@E$sJLMHQbssNZ-^8PIc;A=dtQ+Zx++_WHKKfJ4sv zYSY$50siaAiKDLF`GO{kI0jUOD=MA{C!^;yFn-z%$v52hJy{24cy5i7Jrl{+U^1_u z?JQ>?zkB#YgL5A{8ThMiDfEFs0{SXKt4J?EM!Cy7j^L|&UwWrDeZSn;!p@yMiKip$ zSyrrJiwpPy6)rMWemsKd?PG4I&S9@TRs{rzo_)~Nk(S0nU6C;{q7l7N3?92lb;UvC zhtJ1|uV3Zq=p?5i`&kN=%%-A4zRIM7eIJi~^GQh=YC!@0-E_>1^%&d;cJ)J=bl1=g z1!wtz^dmpF&C|uj?TXuV^}PqRc=5FWR|{ALtGS+jM+4?Gzq0(ndDBhg1ntl_f^kGmzMRy$+(x2NaH=bzWFw9C$&z~rA5q3Mkx$c4x zK%P{H)*MuV)~+=7X9wILmF#P;zxNP29$z&ZbBH)Y9d5EFWM=!L9bNk&|L5p4Z>KwY zw8nBjeQ6)wPb$xKQYRLp-*g|DE$tq1AM-_fav43L{LXD$E6fk~ofHVJKiKlgHu{Jw z`<1AD{M?O9%^$JIz0}rbZP8uBotgLg{Dg&0zrPfXiOyG4bWy?%D=6&;r;3AK8Ao3R zD}_r*h&Nm7lcA!AhBebu)~~;G#tS+h-Ls`XF@KJn(pGXi=2qRWXEieF{oXQr{@pX1 zbBh;inX-JYL>+xO7Gv*r#ZI(zM&N$^5@}6C zy(zuQyCT69-a$|MsM3!9q$v`U7~7!pBl)bIs-#?lMegtj!81^fG3qbzOLb@sDcf=` zB?}4Nhb^h6q>Pbzx#^%aic=~6e8IA#AWp!3=b{DwU;gWRdNZE~DO>(7H zDxww&ZOoyu!@-!3d1!sb+b*id52rPO>+=$Y zwF(^X-(>ii3!#Nb*qKmD3#|Da4H|PhwMUF9wB(%X_f&lQF{ovIMUcPtxfB7vnbi`u z**Rai*yEul?v7jWHM6LL?A9kYReG{s$aH&&$q;Vvn9o0kTarJWaMf@1lsrv`}%&VtJC8QH{^DGK2{f>3~=2!@h?a`Pt+uODL8%F zn_aaq#gHxW{DhqA(c77I$pg);qzO*s$>e+pn{COW1j4j$a7c&4WV}7aj2@h#UWiw` z-LMmuE2xd@&g-I&AY#Ybw{hK#xsbRxv+EqDAvAr2L5>iNXT!gJhbBFR8*BMHWi|cq z=Iy(o&>xK_l4KGusqI@Gs;!cfH{?7W#@@*n0AIUvi~s*>@4Ua^-nu_75(!E4JZcan zK}7E*=Nb@ut3z4zJsyxstyoRp_R;CW{4R0ue|l2gm*K%*7cuG)0%D`~`Q zZ&L%X`AVUwwM%k8v<@r?H&I2Iv4btnzYsf@`(aHSTt^vZ;mHh;e07JrgMmNLW%WS$hR)tpsrcVHmk3j73SI)S4^MDQ<})?7Ir2^b|S-^D=mI<%UK1gSo=)b zEj||#z6pgrnLOOVk{>?uC%lCC$3Ns&&S6N&OMaUTyK&8F_gN`v;@PV8+Giev-L|Fs?$iLD!w3K` zHJly7o-;Vq&byXE!*DTXNX~UqBAc9qV3p0heLtAJ$`)nab~phxVv4UxdFxcvs5w

6Mhv2)W-#_f)T(*p=kt@nVU|_&*rzjzgUu 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 literal 0 HcmV?d00001 diff --git a/content/post/26-homelab-page-preview/images/homelab-overview-simple.png b/content/post/26-homelab-page-preview/images/homelab-overview-simple.png deleted file mode 100644 index 0e9367251a1e40d3bde3d260a652382b63b5b266..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49399 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 O0A!ylLUW}IzWxUfbbHDG diff --git a/content/post/26-homelab-page-preview/index.fr.md b/content/post/26-homelab-page-preview/index.fr.md deleted file mode 100644 index 2ac4d51..0000000 --- a/content/post/26-homelab-page-preview/index.fr.md +++ /dev/null @@ -1,140 +0,0 @@ ---- -slug: homelab-page-preview -title: Prévisualisation de la page Homelab -description: Mon homelab compact avec Proxmox, Ceph, TrueNAS et OPNsense, les services qui y tournent et mon projet de migration vers Kubernetes. -date: 2026-10-18 -draft: true -tags: - - proxmox - - ceph - - truenas - - opnsense -categories: - - homelab -image: cover-26.webp ---- - -Mon homelab a commencé en 2013 avec le tout premier Raspberry Pi. Je voulais une machine bon marché pour apprendre Linux, et elle est devenue un petit NAS appelé Vezpibox. Le nom n'a pas particulièrement bien vieilli. - -D'autres Raspberry Pi ont suivi, puis un mini-PC en 2019, quand j'ai commencé à expérimenter la virtualisation et Docker à la maison. Ce serveur unique a fini par poser problème : c'était à la fois mon terrain de jeu et la machine qui faisait tourner les services utiles. Casser un environnement de test est une chose. Emporter les lumières ou Internet avec lui en est une autre. - -Aujourd'hui, le lab comprend un cluster Proxmox à trois nœuds, du stockage distribué, un NAS séparé et une paire de firewalls redondants. La plupart des applications tournent encore avec Docker Compose. Kubernetes fonctionne aussi, mais la migration des applications est la suite du projet, pas quelque chose que j'ai déjà terminé. - -Cette page présente la configuration actuelle. Les articles détaillent les installations, les migrations et les erreurs occasionnelles. - -*Dernière revue : octobre 2026.* - -## Un lab dans une armoire - -L'idée de départ était de construire un mini datacenter dans un placard. L'espace, le bruit, la consommation électrique et le budget comptaient tous, alors le setup s'est construit autour de machines compactes plutôt que de serveurs rackables. - -![L'armoire du homelab ouverte et fermée, à côté de la cuisine. L'espace disponible fait partie de la conception, ce n'est pas une salle de serveurs extensible à volonté.](images/homelab-enclore-open-closed.png) - -Le rack est un DeskPi RackMate T1. Il tient dans cette armoire étroite, avec des étagères et une multiprise pour utiliser l'espace disponible. Une fois la porte fermée, le lab disparaît dans l'appartement. - -![L'agencement initial du rack. Les légendes du routeur et des HDD correspondent à l'ancien setup ; l'architecture actuelle du firewall et du stockage est décrite plus bas.](images/homelab-rack-legend.png) - -Le refroidissement a demandé un peu d'attention aussi. Lors de la construction initiale, j'ai ajouté deux ventilateurs d'extraction de 40 mm au-dessus du meuble, avec des conduits en PVC et de la mousse pour limiter les vibrations. Deux ventilateurs de 80 mm dans le rack et un contrôleur PWM ont aidé à équilibrer le flux d'air et le bruit. Dans une armoire au milieu d'un espace de vie, faire rentrer les machines ne résout que la moitié du problème. - -## Le lab en un coup d'œil - -![Une vue synthétique du lab, de la connexion Internet au réseau, au compute et au stockage partagé.](images/homelab-overview-simple.png) - -OPNsense gère le routage et le firewall, UniFi fournit le réseau filaire et le Wi-Fi, et les serveurs ont deux rôles principaux : Proxmox et Ceph hébergent les VM, tandis que TrueNAS fournit les fichiers partagés et les photos. Le schéma laisse volontairement de côté les VM individuelles, les segments réseau et les dépendances des applications. - -## Le matériel - -Les trois nœuds Proxmox sont des mini-PC différents : - -| Nœud | Matériel | CPU | RAM | -| --- | --- | --- | --- | -| vertex | ASRock DeskMini A300 | Ryzen 3 2200G, 4 cœurs / 4 threads | 16 GB | -| apex | Minisforum HM50 | Ryzen 5 4500U, 6 cœurs / 6 threads | 32 GB | -| zenith | T-bao MN57 | Ryzen 7 5700U, 8 cœurs / 16 threads | 32 GB | - -Chacun dispose d'un SSD de 256 GB pour le système, les ISO et les templates, ainsi que d'un NVMe de 1 TB pour Ceph. Une interface 1 Gbps transporte le trafic LAN et management, et une interface 2.5 Gbps séparée est dédiée à Ceph. - -Une quatrième machine, `granite`, est un Beelink ME mini avec un Intel N200 et 12 GB de RAM. Elle fait tourner TrueNAS indépendamment du cluster Proxmox. Cette séparation ne sert pas qu'au stockage. - -## Proxmox et deux rôles de stockage différents - -Le cluster tourne maintenant sous Proxmox VE 9. Il héberge la VM applicative, le firewall principal, les VM Kubernetes et celle de Hermes Agent, ainsi que les environnements LXC pour l'administration et OpenCode. - -Ceph tourne sur les trois mêmes nœuds physiques. Chacun apporte un NVMe, avec une réplication à trois copies sur le réseau dédié 2.5 Gbps. Il fournit le stockage partagé des VM et permet leur migration entre les nœuds Proxmox. - -Cela ne rend pas chaque application hautement disponible. `dockerVM` reste une seule VM contenant la plupart de mes services. Le cluster en dessous ne supprime pas les pannes à l'intérieur de cette VM ou de ses conteneurs. Les NVMe grand public et le réseau de stockage imposent aussi des limites concrètes aux performances, qui restent un sujet d'investigation. - -TrueNAS a un autre rôle. Son pool de stockage est un miroir de deux NVMe de 2 TB. Il fournit des partages SMB et NFSv4, notamment pour les données Nextcloud et les photos Immich. Ces partages sont distincts des disques des VM stockés sur Ceph. - -L'ancien conteneur NFS sur Vertex n'existe plus. TrueNAS est désormais le NAS, mais reste une machine unique, pas un autre cluster HA. La réplication, un miroir et des snapshots ne doivent pas non plus être confondus avec une stratégie complète de sauvegarde hors site. - -## Ne pas enfermer tout le réseau dans le même domaine de panne - -OPNsense ne tourne plus sur le boîtier dédié d'origine. Il y a maintenant deux VM firewall : - -- `cerbere-head1`, le principal, tourne sur Proxmox avec son disque sur Ceph. -- `cerbere-head2`, le secondaire, tourne sur TrueNAS avec son propre disque sur zvol. - -CARP assure la redondance des passerelles, pfSync synchronise l'état des connexions et XMLRPC synchronise la configuration. Placer le secondaire sur TrueNAS évite de perdre les deux VM firewall quand le cluster Proxmox ou Ceph est indisponible. Cela ne rend pas tout le reste du réseau domestique redondant. - -Le réseau physique utilise un UniFi Switch Lite 16 PoE, un Flex Mini 2.5G pour Ceph et un point d'accès U7 Pro Wall. L'application UniFi Network tourne dans un conteneur Docker sur `dockerVM`, pas comme plugin OPNsense. - -Le réseau est découpé en segments management, utilisateurs, IoT, DMZ et lab, avec des réseaux supplémentaires pour le WAN, la synchronisation des firewalls, le heartbeat Proxmox, Ceph et l'accès VPN. OPNsense gère le routage et les règles de firewall. Dnsmasq fournit le DHCP et les noms locaux, tandis qu'Unbound assure la résolution DNS récursive et le filtrage avec les blocklists Hagezi. WireGuard permet l'accès distant depuis mes appareils mobiles. - -### De HAProxy aux applications - -HAProxy a remplacé Caddy sur OPNsense. Pour les services HTTPS hébergés dans Docker, le chemin principal est le suivant : - -```text -HTTPS request → OPNsense HAProxy → Traefik on dockerVM → application -``` - -HAProxy distribue les connexions HTTPS en utilisant le SNI. Les services d'infrastructure empruntent une branche reverse proxy HTTPS séparée sur OPNsense ; ils ne passent pas tous par le Traefik de Docker. - -Le plugin ACME d'OPNsense gère le renouvellement des certificats d'infrastructure. Sa tâche de renouvellement tourne uniquement sur le firewall principal : synchroniser la configuration du proxy ne revient donc pas à rendre le renouvellement des certificats redondant. - -## Ce qui tourne ici - -La plupart des services du quotidien utilisent encore une stack Docker Compose par application sur `dockerVM`. - -| Usage | Services | -| --- | --- | -| Domotique | Home Assistant, Node-RED et InfluxDB | -| Fichiers, photos et mots de passe | Nextcloud, Immich et Vaultwarden | -| Médias | Jellyfin et la stack ARR | -| Code et publication | Gitea avec Actions, ce blog Hugo servi par Nginx et Umami | -| Administration | Semaphore UI, Portainer et l'application UniFi Network | -| Notifications | Ntfy | - -Le blog fait lui aussi partie du lab. Son contenu commence sous forme de Markdown dans mon vault Obsidian, passe par Gitea Actions et est généré par Hugo. Le résultat est servi par Nginx sur la même VM applicative. - -Les outils d'IA ont leurs propres environnements. Hermes Agent tourne dans une VM séparée, avec des profils pour l'orchestration, la recherche, l'ingénierie et la rédaction. OpenCode CLI reste dans un LXC. Ils m'aident dans le travail autour du lab ; je reste responsable de l'application des changements d'infrastructure. - -## Faciliter la reconstruction - -Le LXC `bastion` est mon environnement d'administration, avec SSH, Ansible, Terraform, OpenTofu, Helm et kubectl. Semaphore UI fournit une interface web pour lancer les automatisations. - -Chaque semaine, Semaphore reconstruit le template cloud-init Ubuntu Noble et envoie une notification via Ntfy. Terraform provisionne les VM Kubernetes et Ansible les prépare avant le bootstrap manuel avec kubeadm. - -Tout n'est pas encore automatisé. Les mises à jour des applications Docker restent manuelles, et reconstruire l'ensemble du lab depuis Git est encore un objectif, pas une capacité que je peux revendiquer aujourd'hui. - -## Kubernetes fonctionne, la migration n'est pas terminée - -Le cluster Kubernetes comprend six VM : trois nœuds control plane et trois workers. Il a été initialisé avec kubeadm et utilise Cilium. HAProxy répartit les accès à l'API Kubernetes, et des sessions BGP relient les workers Cilium à OPNsense. - -Il n'héberge encore aucune application. La gateway Traefik et cert-manager restent à déployer. L'instance Traefik qui dessert les applications Docker est une installation distincte, et le fait que Ceph héberge les disques des VM ne signifie pas que Kubernetes possède déjà une storage class Ceph. - -Le plan est de valider la gateway et les certificats, de définir le stockage et sa protection, puis de migrer les applications progressivement. GitOps viendra plus tard. Tout déplacer d'un coup irait à l'encontre de l'idée de conserver un environnement utile à la maison à côté d'un espace d'expérimentation. - -## Toujours en chantier - -Le setup est plus résilient que le serveur unique d'origine, mais il garde des limites évidentes. La plupart des applications dépendent de `dockerVM`, le NAS est une machine unique, et TrueNAS nécessite actuellement des redémarrages périodiques pour contourner une augmentation de l'utilisation mémoire non résolue. Le firewall secondaire vit sur cette machine : le problème ne concerne donc pas que le stockage des fichiers. - -Cela fait aussi partie du lab. Cette page en donne la vue d'ensemble ; les articles racontent comment les différents éléments sont arrivés là et ce qui change ensuite. - -## Les projets derrière cette page - -- [Construire le serveur TrueNAS]({{< ref "post/18-create-nas-server-with-truenas" >}}) -- [Déplacer la VM OPNsense secondaire sur TrueNAS]({{< ref "post/19-migrate-passive-opnsense-node-to-truenas" >}}) -- [Remplacer Caddy par HAProxy sur OPNsense]({{< ref "post/23-install-haproxy-opnsense-replace-caddy" >}}) -- [Préparer la migration de Docker Compose vers Kubernetes]({{< ref "post/24-roadmap-migrate-docker-applications-kubernetes" >}}) diff --git a/content/post/26-homelab-page-preview/index.md b/content/post/26-homelab-page-preview/index.md index c5302ae..359353d 100644 --- a/content/post/26-homelab-page-preview/index.md +++ b/content/post/26-homelab-page-preview/index.md @@ -20,8 +20,6 @@ More Raspberry Pis followed, then a mini PC in 2019, when I started experimentin Today, the lab has a three-node Proxmox cluster, distributed storage, a separate NAS and a redundant firewall pair. Most applications still run in Docker Compose. Kubernetes is running too, but moving the applications is the next part of the project, not something I've already finished. -This page describes the current setup. The articles go into the individual builds, migrations and occasional mistakes. - *Last reviewed: October 2026.* ## A lab inside a cupboard @@ -36,12 +34,6 @@ The rack is a DeskPi RackMate T1. It fits into the narrow enclosure, with shelve Cooling needed some attention too. During the original build, I added two 40 mm extraction fans above the cabinet, with PVC ducts and foam to limit vibration. Two 80 mm fans inside the rack and a PWM controller helped balance airflow and noise. In a cupboard in the middle of a living space, fitting the machines is only half the problem. -## The lab at a glance - -![A high-level view of the lab, from the internet connection to the network, compute and shared storage.](images/homelab-overview-simple.png) - -OPNsense handles routing and firewalling, UniFi provides switching and Wi-Fi, and the servers have two main jobs: Proxmox and Ceph host the VMs, while TrueNAS provides shared files and photos. The diagram deliberately leaves out individual VMs, network segments and application dependencies. - ## The hardware The three Proxmox nodes are different mini PCs: @@ -56,85 +48,77 @@ Each has a 256 GB SSD for the operating system, ISOs and templates, plus a 1 TB A fourth machine, `granite`, is a Beelink ME mini with an Intel N200 and 12 GB of RAM. It runs TrueNAS separately from the Proxmox cluster. That separation matters for more than storage. -## Proxmox and two different storage jobs +## Platform -The cluster now runs Proxmox VE 9. It hosts the application VM, the primary firewall, the Kubernetes VMs and the Hermes Agent VM, along with LXC environments for administration and OpenCode. +![Selected VMs inside the Proxmox cluster, with TrueNAS alongside it. The OPNsense Master and Backup VMs form one HA pair across the two hosting platforms.](images/homelab-hosting-overview.png) -Ceph runs on the same three physical nodes. Each contributes one NVMe drive, with three-way replication over the dedicated 2.5 Gbps network. It provides shared VM storage and supports migration between Proxmox nodes. +### Proxmox and Ceph -That does not make every application highly available. `dockerVM` is still one VM containing most of my services. A cluster underneath it does not remove failures inside that VM or its containers. Consumer NVMe drives and the storage network also put practical limits on performance, which remains a topic of investigation. +Proxmox VE 9 provides the virtualization layer across the three mini PCs. Ceph runs on the same physical nodes, using one NVMe drive per node and three-way replication over the dedicated 2.5 Gbps network. It provides shared VM storage and allows workloads to move between Proxmox nodes. -TrueNAS has a different role. Its storage pool is a mirror of two 2 TB NVMe drives. It provides SMB file sharing and NFSv4 shares, including Nextcloud data and Immich photos. Those shares are separate from the VM disks stored on Ceph. +That is the foundation for the lab, but it does not make every application highly available. A VM can still fail internally, and an application can still break inside a perfectly healthy VM. Consumer NVMe drives and the storage network also put practical limits on performance. -The old NFS container on Vertex is gone. TrueNAS is now the NAS, but it is still a single machine, not another HA cluster. Replication, a mirror and snapshots also should not be confused with a complete offsite backup strategy. +### TrueNAS -## Keeping the network outside one failure domain +TrueNAS runs on `granite`, outside the Proxmox cluster. Its storage pool is a mirror of two 2 TB NVMe drives, with SMB file sharing and NFSv4 shares for application data. Nextcloud files and Immich photos live here rather than inside their containers. -OPNsense no longer runs on the original dedicated firewall box. There are now two firewall VMs: +This is a different storage job from Ceph: Ceph holds VM disks, while TrueNAS provides shared files and photos. The old NFS container on Vertex is gone. TrueNAS also hosts the backup OPNsense VM, with its disk on a zvol, keeping that firewall outside the Proxmox and Ceph failure domain. -- `cerbere-head1`, the primary, runs on Proxmox with its disk on Ceph. -- `cerbere-head2`, the backup, runs on TrueNAS with its own zvol-backed disk. +### dockerVM -CARP provides gateway redundancy, pfSync synchronizes connection state, and XMLRPC synchronizes configuration. Putting the backup on TrueNAS avoids losing both firewall VMs when the Proxmox or Ceph cluster is unavailable. It does not make the rest of the home network redundant. +Most applications currently run on `dockerVM`, with one Docker Compose stack per application. Its VM disk lives on Ceph, while services that need shared data mount the relevant TrueNAS shares. -The physical network uses a UniFi Switch Lite 16 PoE, a Flex Mini 2.5G for Ceph, and a U7 Pro Wall access point. The UniFi Network Application runs as a Docker container on `dockerVM`, not as an OPNsense plugin. +Docker remains the everyday application platform. It is also a concentration point: most services depend on this one VM, updates are still manual, and recovering an application is not the same thing as restarting its VM elsewhere in the cluster. -The network is split into management, user, IoT, DMZ and lab segments, with additional networks for WAN, firewall synchronization, Proxmox heartbeat, Ceph and VPN access. OPNsense handles routing and firewall policy. Dnsmasq provides DHCP and local naming, while Unbound handles recursive DNS and Hagezi blocklists. WireGuard provides remote access for my mobile devices. +### Kubernetes -### From HAProxy to the applications +Kubernetes is the intended replacement for the Compose application platform. Its six VMs already run on Proxmox: three control-plane nodes and three workers, bootstrapped with kubeadm and connected with Cilium. Terraform provisions the VMs and Ansible prepares them before the manual cluster bootstrap. -HAProxy has replaced Caddy on OPNsense. For Docker-hosted HTTPS services, the main path is: +The foundation is running, but no applications have moved there yet. The Kubernetes Traefik gateway and cert-manager are still to be deployed, followed by storage and protection work before the gradual migration. GitOps comes later. The Traefik instance serving Docker applications today is a separate installation. -```text -HTTPS request → OPNsense HAProxy → Traefik on dockerVM → application -``` +## Network -HAProxy dispatches HTTPS connections using SNI. Infrastructure services use a separate HTTPS reverse-proxy branch on OPNsense; they do not all pass through Docker's Traefik. +### UniFi for switching and Wi-Fi -The OPNsense ACME plugin handles infrastructure certificate renewal. Its renewal job runs only on the primary firewall, so synchronized proxy configuration is not the same thing as redundant certificate renewal. +The physical network uses a UniFi Switch Lite 16 PoE, a Flex Mini 2.5G dedicated to Ceph, and a U7 Pro Wall access point. The UniFi Network Application runs as a container on `dockerVM` and manages those devices. -## What runs here +VLANs separate user devices, IoT equipment, the lab, the DMZ and management. There are also dedicated networks for the WAN, firewall synchronization, Proxmox heartbeat, Ceph and VPN access. UniFi carries the traffic; OPNsense decides what can cross between the routed segments. -Most of the everyday services still use one Docker Compose stack per application on `dockerVM`. +### OPNsense for routing and firewalling -| Purpose | Services | +The two firewall VMs are `cerbere-head1`, the Master on Proxmox, and `cerbere-head2`, the Backup on TrueNAS. CARP provides gateway redundancy, pfSync synchronizes connection state, and XMLRPC synchronizes configuration. + +Hosting the Backup on TrueNAS means that taking the Proxmox or Ceph cluster down does not take both firewall VMs with it. This improves the firewall's resilience, without pretending that every switch, cable or other component is redundant too. + +Dnsmasq provides DHCP and local naming. Unbound handles recursive DNS with Hagezi blocklists, and WireGuard provides remote access for my mobile devices. + +HAProxy runs on OPNsense and dispatches incoming HTTPS connections. Docker-hosted services go through Traefik on `dockerVM`; infrastructure interfaces use a separate HTTPS reverse-proxy branch on OPNsense. The OPNsense ACME plugin handles infrastructure certificate renewal on the primary firewall. + +## Applications + +The applications below still run on `dockerVM`. Some are services used at home, while others support the network, automation or the blog itself. + +| Application | What I use it for | | --- | --- | -| Home automation | Home Assistant, Node-RED and InfluxDB | -| Files, photos and passwords | Nextcloud, Immich and Vaultwarden | -| Media | Jellyfin and the ARR stack | -| Code and publishing | Gitea with Actions, this Hugo blog served by Nginx, and Umami | -| Administration | Semaphore UI, Portainer and the UniFi Network Application | -| Notifications | Ntfy | - -The blog is part of the lab too. Its content starts as Markdown in my Obsidian vault, moves through Gitea Actions, and is built by Hugo. The result is served by Nginx on the same application VM. - -AI tools have their own environments. Hermes Agent runs in a separate VM, with profiles for orchestration, research, engineering and writing. OpenCode CLI remains in an LXC. They help with the work around the lab; I remain responsible for applying infrastructure changes. - -## Making it easier to rebuild - -The `bastion` LXC is my administration environment, with SSH, Ansible, Terraform, OpenTofu, Helm and kubectl. Semaphore UI provides a web interface for automation runs. - -Every week, Semaphore rebuilds the Ubuntu Noble cloud-init template and sends a notification through Ntfy. Terraform provisions the Kubernetes VMs, and Ansible prepares them before the manual kubeadm bootstrap. - -Automation is not universal yet. Docker application updates remain manual, and rebuilding the entire lab from Git is still a goal rather than a capability I can claim today. - -## Kubernetes is running, the migration is not done - -The Kubernetes cluster has six VMs: three control-plane nodes and three workers. It was bootstrapped with kubeadm and uses Cilium. HAProxy balances access to the Kubernetes API, and BGP sessions connect the Cilium workers to OPNsense. - -There are no application workloads on it yet. The Traefik gateway and cert-manager are still to be deployed. The Traefik instance serving Docker applications is a different installation, and Ceph backing the VM disks does not mean Kubernetes already has a Ceph storage class. - -The plan is to validate the gateway and certificates, define storage and protection, then migrate applications progressively. GitOps comes later. Moving everything at once would defeat the point of keeping a useful home environment alongside a place to experiment. +| Home Assistant | Integrating connected devices and running home automation. | +| Node-RED | Visual automation flows alongside Home Assistant, including Daikin AC control. | +| InfluxDB | Storing historical Home Assistant data. | +| Nextcloud | File synchronization and collaboration, with its data on a TrueNAS share. | +| Immich | Managing photos and videos, with the photo library on TrueNAS. | +| Vaultwarden | Hosting a lightweight Bitwarden-compatible password manager. | +| Jellyfin | Serving the media library. | +| ARR stack | Automating media acquisition and organization with Sonarr, Radarr, Prowlarr and related tools. | +| Gitea | Hosting Git repositories and running CI/CD workflows with Gitea Actions. | +| Hugo blog | Generating this static website from Markdown in Obsidian, then serving it through Nginx. | +| Umami | Collecting web analytics for the blog. | +| Traefik | Routing requests to Docker applications behind OPNsense HAProxy and terminating their HTTPS connections. | +| UniFi Network Application | Managing the switches and Wi-Fi access point. | +| Semaphore UI | Launching Ansible and Terraform automation from a web interface. | +| Portainer | Inspecting and managing the Docker containers, stacks and logs. | +| Ntfy | Delivering push notifications from deployments, automation runs and media services. | ## Still a work in progress The setup is more resilient than the original single server, but it still has obvious limits. Most applications depend on `dockerVM`, the NAS is a single host, and TrueNAS currently needs periodic restarts to work around unresolved memory growth. The firewall backup lives on that host, so the issue matters beyond file storage. Those are part of the lab too. This page is the overview; the articles document how the pieces got here and what changes next. - -## The builds behind this page - -- [Building the TrueNAS server]({{< ref "post/18-create-nas-server-with-truenas" >}}) -- [Moving the backup OPNsense VM to TrueNAS]({{< ref "post/19-migrate-passive-opnsense-node-to-truenas" >}}) -- [Replacing Caddy with HAProxy on OPNsense]({{< ref "post/23-install-haproxy-opnsense-replace-caddy" >}}) -- [Planning the Docker Compose to Kubernetes migration]({{< ref "post/24-roadmap-migrate-docker-applications-kubernetes" >}})