From 8c36317e18d79dfcb7ca80328eee707bb8af1598 Mon Sep 17 00:00:00 2001 From: ebner Date: Wed, 7 Aug 2024 15:36:16 +0200 Subject: [PATCH] cleanup --- .../deployment/virtualbox_vm/network.png | Bin 24790 -> 0 bytes .../deployment/virtualbox_vm/system.png | Bin 29346 -> 0 bytes admin-guide/guidelines.md | 23 +++++ admin-guide/guidelines.rst | 86 ------------------ admin-guide/mgmt-tools.md | 6 -- 5 files changed, 23 insertions(+), 92 deletions(-) delete mode 100644 admin-guide/deployment/virtualbox_vm/network.png delete mode 100644 admin-guide/deployment/virtualbox_vm/system.png create mode 100644 admin-guide/guidelines.md delete mode 100644 admin-guide/guidelines.rst delete mode 100644 admin-guide/mgmt-tools.md diff --git a/admin-guide/deployment/virtualbox_vm/network.png b/admin-guide/deployment/virtualbox_vm/network.png deleted file mode 100644 index 0ac148ac95895d2fac253f1be7d887dbd96118c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24790 zcmbrl2{fBs*FUUtby8H78rqtQqO`cpt(wP*AvL$9R8`avYE19afvPD&4WS4cLsBy_ zh(al#T5G?f6mPn}>2W&cMe3KajpQ8>UNO7Wn0``)$+PY;2`*C$}FQ z0e)wHW?<{b#&+i0-v0vx?@z95Z1+74b#7ZdccLTN>qV`Ds8(ml9D>ZIm31PW|-V;E}elL32>Ho}OOwqEwk-i#}2_mum4YVvrxL zgWw;!sX6>Z>#H}(uVO7?I?Y0h*R8%}Ojqzxe@)C$EGMA5XSpk`(#xx}%2HnDAzL?I zJ|sPLE&vvAtWizYUUT{2&~o;4d!{|_+ow)RuHBt0AhP+6FJ`uS^BYXm6Mx-!eSU}= zyku|~6KiBuVwi`Km27-EAlkD2K5Dq7GvHbX!pKTQ)VTDzk^z#GNwgeU@vzo9Hnoi` zMZ3H*aE@#70+i9(`q>D{m00a`9GPfOgY5oXxw7L+xZ5XOvsn9a4)Uqx44)=_` z$%Hhl4c0`zkyFyMnh&@Ug*HS?M;sUlhFYDKruLRp_o7vrvQB@;FvR2lYyZR6tAgeU+B(H0?bpDiDppPOQk_t_LJIqQnGrh9 zR_@I#a1tEBGRyMJSPyS<#%`5>n-NKNT8yg4_v%9{UQ0W6J+Uv;vk5`|WbX3Qs*N3U z$}+2?A@mxjkbbW)fq_ch&Jf0Y(BS%z;}mY#=Wp^a;EdFM-u*Qy_2^3XW)eLk%t#EX z*3HUz8alT4{rzHC@_g<5qAq6Rjp$C*RLdvq`fjs(97GBVjq+`3JNwR%OFy&2$Wkb^ zkAE#3a|^eeJm8co?(|-}05w-|efq**jI%z@R7PpSuO$kW+%J2al_r0Nv|g8 zYBwn;_v$F|e~Pl1(-kXu@XAOyqzn}mOSxo`uOXVI31KbVExozy)+A-sj~D8!N}u-> zhssYm4ELcH=E>lwEGCk)09b;mCS&wMaVA zTUWGnZF&lG^hsy2eFI;P+p}tWdV39v_K{xv;{e+&z6&;JPjToexo=Yt zTKcWft6N3yN%*e z5YM^={FBWGdNYv5&8g?2Nn9fF#{~f6eeSO!N-DGF)yin&S*-(ESu&&ss-z)itFNvIc-oxbO|HUH!wo7EGnu%LzV@vluW}EKg#&uxn zUncftx*(*zQYnmrMDIJGQykfw!yF)G-P?P9=k=SOQ2H@+dd|Mo-|p(%1$w&>JZ?D_RoEyNC93m5M%L^*B$~G?_TyIRHs5{HHmrlgXed-XR#Yq@~HA zWK|ha$+=$2)lbFp=daA^g8&BXi4r)zzxmDG3>-S8R!Bn zrS^5OMn{zd#X?KkCmW#@QI~jraV4)eUf|oPQZ<)*+>jk@er~h}*g79|BBwmH9F37# zX2%CwrJ+VwF8CxOvRwP(xD(|9)y#K~gRkpJC!kzcrEk14cDx&#VLxt0llEJauiWsR zS~b;?`>c>2!(dD&sJg4EXtJ^0sy*IG3dbelYW=2L;+|}fgV+Z=^l2Z%aEQH_b4GYi zGrvG24+sB?=sB6ai1VM{XVb7Oe=#UQDCFt(r+feF=-sB}U;WQxm!OvC_Rhxr=l`0= zB~~Th{WdN57@u z?Tnor-S8s-RC|a!VMGEkaAMXf%y7w@c5p53K>&Dwfn9y`JkcTa@$oz}&nwV|yi_8^ zzu#0;Uz@Zy4xbe+83&e=a-vm;15jmWD0uT2S|su;sLEdkdQ9iwI^CctI%ZI3PctOJ zfXdjjAQSD~^PJkl#w1Yn*w?~PswOZU_nr|P1Fy5c`Udq7!kGW%z^ff?2nf`6#Cmfv zM65OABm@x{zR)HL+nTCAMqTffhny~nBCefBVbnfEe*J~J$w873z?{6?i~^+H+%C*0 zy^~lkl6W&Ez6UUJjQyQG;g6u_&WL9}tC8*ew#NQuPTN2p(8A7hC+o&C$He-EL+Jj! zVN>mCO7GiezQ2uW;u9P@xA^!_iM*<;V2ps>(JN5+jOva5L(1`5Yd*YvqQDZ;eiCb5 zr(kF>a}y#gNFD4++eAUMr9^T;jGD)F3Y=PyLnv897YYK8iPL*XnO6<)L!JzKpECxR z^;~o1!Yx<@Q7@V!=CqlwMKzEawVItbnn-{`Q6B(xh6vju`WKQ!VLXOu#=s1+sx2ki ziYvyBVq4BxY4?dNj4Uj@MIUb6koKZUVH~rHzV$=XhX1{l)fK)^m0)oiRdwn6ZOa;> z7>R&*8pmbexV*)1q+#HeV;2Oghfw5BltWV_Mlo@W$r(gNlU^|u4X5ENXC1Pb-3i~2 zb2of9RQ?7es>PaXObd*TJ2U`0=Nuf9w{XO-(6>!6aY9au+(?|gQ2lzaBZLXf;o3bk zmp-7AH|i#Q(YDC=r;b>72G>#Zb9BucO6Sj)Ol!*CQra@@1r?N`w2QI&wDUE!kR?x4 z6xP}ZbEC=DGK8JXx#+{EjOV^Q6c@!*aUW9hGS_zNQ+GH6qh6dO&K+dJH4kMZbw_nA z3e=Sx?4NMB(YG|A?oZMedpE}&eS&h4L#w_d7>FtMx5dtUVa8|M#L(aM_LIAMiEb`p zU2$Z6LXBdD8(BE%dJd22RMg18q=|0sV6oTV>|@9Y%d-32YYb+j5C>Z7@I|D@R>E6^E|U>9Z!Vyhj_DI3w>O&G)JEBtm8Z{T-3B zZw#_5Fa zoDc3w^rSjhyY{`!p`Rux9KmJkTY;#(BJ+Lm?Y>8hq@yqVp)ci@DvX_3j)9Q-&E;*K=d1HfVb zgofNG^6ltMoY?ih^hY{BL!?>PLRpNKEddVmRl7cn5pBQKMN6D@Z^nv;o-WdW(2EIo zbP_-*jR-qq-*-fqhQB=wC+!Ofq1h=V;H>Z;iUYFhS!q3kqQvVDTDXg}mTJjMhtnJ^ z)zJCkZ83H`_u!8cAs4cE3Lwv50jg;kmeY!-Nc#OlifQ#EiH6}6(Q=sTzm2{gQz*bP zHeBX#ACrP{8m5{4x3g(O>szce8ns9Ke4G9S(=#yM$Y^g=#xAk!EUehdP&sV3FC1<* zbfha97(VkoIhas(Tm-gL`Lxdo%bm>}=3I0;_dBif278|Os{yWh-AC1(DBAG|a%P%n zx=9;4+^1~Va@NG=scLG*o4GAwZnd^wNw8|F0;vGm2%z~N^%dt9Eq5y$W%s5bDdB4d z4fvA|C*Zh`msAwoM|r{NZ}p@RDDUM1yw#Mq_6-!+qKo}F@^5_Mk7ZUM-$YjA6X^@+ zR;}7s$>*=$2=c5`zU)?60BN3WoJdX`JbhfhC~A=S%=KeLg_a6O_gd`&@f*?;u3255 z+Ch>)1Z?TurX80QcQmHlh%Ib;qig_3p=;pCI>hzUa>U5-?{lAD4$AqOYkz6&OpSp) ze1D{$)$|c_P_ZICs(N$*k8O`NwDB2f3gg7VF$w+6k%#D&PF9i44W zFboSDspwZe0n*>c+Hh&E&$Dx=p2wZqHndCJ0C*o&V6RlMICJIDKH6E1&qWY9K_-Ax z87sD$WO?TGJT?Vl=_C;C^>LJ}04gu2M)TLdVF#^mGpS+y|K>iDL<%+7_d;mg!hNn2 zZ{`5#$O7PhAGORZ4$SF(47>!TWRunz2a|kB0=?n=Dw@-jUe8Z{lEFCA4BZ? zAb$v*9=#uvPv$$K)o7n`9}jH*{elyR#6u^mbu|97qsorDY64^fuofsEwYzcP~4 zBv7@7gPuN+KGdhi4>$z?iRXg`AgQwa&}c--(S6s^4VEcBe_nTPFDS?YRX=J!A2h8t zCdupc{6P)=1OafLC(LTZIrxAGIexT0xzX)v0k4L&cC<8xX%rd2+tsdCv-Eu^GjIv;5X?I-=E5-14p zw~l}^L-rH0;Y3xnS;-|=_*=)ijWuz3T_fbEjdhS^RC#2iS!)tbhiiOh?k7G|N-3K} zIPqcDnO9gut}2#K`7#gqFKujfe}1BCEYdx+(54|P^G+UDYa-vdN(rd?ZPTu?pvJ0v zk8Un81ZG2}0As#&VRpsudrd$-Md*g25|#hMQr8j?U3&r>FfMdL1ZhlpdE{hAcS9_C z&u{^v&}g;RCMHOlyS4G3LY=`6u4P3fc0>tTYTpQVEi^zANL0RHCYU1>%oKr^Aks zqO?2jEHC6O)RqHBM$(Gb5m29Ymho7C*Ze-O3VoP>yawO#2@7-e?mm54*BJS*S=M+a z=_{(sL-`?m03&y|&xz^ycq?s_5JMn3?TS;O84R_2VTaF)KIEH1?2fC#=PEn>ku57R zK2;Y-<=lURV?|cAZYKJbwA=T4o_mZXMfHTW`nA^_-FXfqCuzU|s}EY~=$`KQv}dRD zLCi`$b(Mn1ZZ7i|HZ*_OV?~kC;?|5d`( zcW^3-^Y<8Q?KBr3rXBxb3H8xTOVh?a5TY;}MQg(A@041SE62u?e!S`$(7*`Y(A4vN zZ&I!SfqPD~AO)G}W29K`zjy(0UjJ=C@fLQJxn?vC0;g|uNWG-+vWi8yA8hCQI-j49 zoQv^cNEGocRUwJ|V6)e6K!$>+gcbvZ*nr@~InRtBX|7ecex-f{Ab(V%dXWMe^r^QDBeEWD5Fe%9OpDkyq>+WVZa!XLoCaTYC|mT4@w52RuRi=gTJi`#Yv zj^6w9OPeVmm&InEfM18akFopAbNlwA!N>l&{7+?k!#t%9?mZtRjEXhMzXZJ-04y1Q zhn6p3fHa>GUe|Q%e;X4U`#ry>QGGTbwCkJ{v`F7|xPsGGaF}FF#|5FDBq1Op zoxQ3W&}tsomTvZ`ZLq|i+SVf-ue!H5vxh2$I(%_LOuD5F%^}+Z{4AO)#|=6j=3AE)QCICjq&p&1PSV{>81LA08#fat${zry35TSJ+wKoVxRu3}SOkte$9j)!8<@ z1EVV_V}m{c_S6#(nmw=?7I5s+r|>={PKLF--gt|<_(WQ3p@CV2t ze-ym-Nr3NHl#aBRxzwG`D$2|cgW=WEL1UCDx3P8Klz{%EoS3s&h|#t-VQrWqulE;q zrIg@pPs@?Fxewyv)-Z!Kw}5i{ZVuiKxpG@&E8R;%%5f?qrxCL;$&Ym@M(MG*vxxyA zPNP45ZnjY2)Pzhi(EwZRg4?u@^ZugHMH+~9#=$BDccYqRx3jfsTDEb~-j%^^-lD-D zbZxkLHQjy!NmbT&p*<|9jK_^e>>rgl?z6eXC#lkw+4N7aE1J0OMYv+uI+Q?2{Z8|) zzC+KJw`+$?8}uVo!4IRKFfyyfE0?F&tI2$HDTjqN+h_Hf0dWO@qq_RVZs*5er>BjB z`N8vP?8u|QxdM=d40~YR7?kxvU^&a)wRiVvf=0+VQs&;d*0Bf9co9DAe+0oc<6jjT zLcS=$i|(cIAMO#R#(55qC|Q+)PdMI3bz!fg-#xS`+zzNi4lI=9JX&Wk+`R}(-g!?F z?NPRbcUz)BQd9@lvZU3AqgBJzW^IdqC~~Ww1`c0=Bbw}uXW>$Ctn*fr#g139Y?*Ik z!b2m}m+!5gKz8Svt4n&TJjxA)uyXTX4{Gm)htu3!ZyJ(c+vjza^d6P>t=5QA@V(%D z%p0#7MxhhEY$O(R$^sgLI|gZTzx?>6AWoGBp@ z@97IgP?1z6PjgD!K$wM0NW0?m#+~PVDW5w2B_Mzf)!o~L+a$9DMoImh#`SW#k7sz- zy~=Mf1N?R;(Q_Jq;O1(qLoFS1clM3M$becPSyPGJOGVjSvk1syebh0aZ8t{Mqa9kj z(8Erk>FI&xM-^UZzb78ri#LqDiq1BN70kZjJxCYNys22>K2X|v7OgX-&@y*Sihr2p z_cpQKyNi!|>!Z%y6NVlD5bvLdr%u*3^JjzB3@=XR*98(vpt8l9myRJn-*$p+AKmzeRbF!Ck z(YrzD`ABfkuTpFHp&Y^vlP(nUFs|Np$8K}E%C4je1?hkOWb%Q3sAWT#zr(o9?_0Dj z)5qf%8dr?~|ETc3j!Wrxk{L~jp_1+QL16D30MW72xz=Ic#bJ>U!8#iub^}VI@nE}f zCpvA0DxrbyH*anH`Jpgo%&`dJOcO^bC`b)bI|3f%te-`Do&bUMwBg3JeJKc>WNN&L zX>w$yw~Fs*(6la|#5S4dhz=PjauO4Pk@JXj9`+%R!07tzjrV2Yo>V$%aqRbt`8xlI z`SRxt8GdVFWo|1X=mFgOKzeeRSxqmo2jCC)*(cM{6pY@J6uaJcgr;#Y^DD`Y3{(|d zN8U=uj7I-_%hO_2C;egaDEgw!*RlaDkaCHNs=LPTA98W1Fx`x{^UTcJtoF`?TqDl9 z@!5lo2relfEl0+S?STTNG(5i#y@Z1hqSLsMOLr?C1g0GcHywQo0nc1RBUBMuEMnHs zr>JyDllByc>4#5E(0=M%r3TtWuzcha6rTDyo`(~GL#M8M7d?F|6#zvI?*MDFk!!va z)^Xp3<%TbDESQbGq%8f!x-O8E+Yh`e6!(7DwD4=g(|mP0oZyv|3u`0;ixmvJt9_&c zp$7gOI;5b$+j`I7Ylmjt@_Ajxn-+3FHP-O)!(4LIX#MAmfC&Mwokxh3Mwk49A zCVs-|?r8e9xUDp*I3m>;({&T4C5ltPvY*oGpY+<*iaX`?vv!}ioZp0FpPIIKmc*jE zeimocUOAsw7EeqKSWGTj06$n|&Q@uKzx@+*blyTOsN5)0SUfME>PLkyC&Imx@yxyw z-x>VqL(NW_+xAy4w~ny5ZM&AnDqE-EHW}XzIff{;(guRIMEfoxafx|xaO-mMYUev; z$xroI9aXU$-!s91AO028)PbsZcbI{4(C#z~gl)p_$8LHr*TG}MvLV8CgP}8DIzt-$ z-#Pd(bA8*6kSC6;D1R^7T|1)^OwDvH*7KZnMjOK}eck=2%`yh(>WKtZIp0^56K6dt zMQnwKgpgXQ3TUcyv15OND?n53LXHR#5sr->Mf2~P1y2s}LEyBw|h%v|Kx%D*X zg?L7BI5B1^w^9|)8kR`pxO+-&kCMMtyJu3?r$T{7i-{w~-bwD=pN_7?MjbQBvgx&Z zl%yJX#QUD+soqn2jQz(Ez^%ag^N1QHAOwfk*`TSI%HteRMwyiGy>fl0omXlT%F>>lRZ|}NSOl1bubVhD zprH_ktcY3f_t~%WedJyh&h1I5;nF_dn$l-X@tZ1!ld>u;M=wTEm?R_pAZP1|pWdU= z-I=vV(Q}6k1pN>0)jTPAt02Z=(E?&DwNy_p_EP}Dy}SPQc}$JAY{P0_jl${))EU(S z0LLD`018H1F4V7>iMZg}22Ew_<`rt^Fm>aFd%@An;k~*5&R8yQ;h#es*MQKp<`(TE z_a3D`D{CNl?hNP{vgZcczQG~i)Lype4pZBs8m9GC1u7iU_$^>GvI406oj8V;R#|eE zl82pc=Gr)Ul_f3)Rb3JvqkKvgZwD9bF0}~;a&_OxuBLGhFA9HCVR*EIl`A}2Y*eYp zVkb?R0XaTl)q-1;*PcA{H^ikWs`REz<3Sb0_O{a1pqP?V3{QkvETuDuTS0WTme|0J zPWQb86(byX(3Q%~#;d6R#gFPjK8My>a{72qruNvcvD3|mZQAY`73O&H@WM=5!^QUSfmP2M-{Kdfo8I#uoE$l{gX2%i)?E65VW;1reS8*= zOLRHX#e)0C61@N#z{c|7lCjR`L8sJDyIvC$*kKQ0m_uLY4!QMm8c=f+(`WOC`4;1J z^1!v@>nIyhgZ}x(o)c+fTES0kk`GEdH=Yyq8VypKkE^bPe3L@RMVfVN$nzO@X+6W( zdh|&!g9qXitIEPD9kiU16k-V-i&cM}`DVTKIfTCik)a>T8sBOsJgw7s%~0)1rLOw5 zv@lu0l4#>KW9NP=4eg`xYjdRb>^DME(l*79e-wD(%$YUxh9n#qzcpY$u{sRcDE6P( ztWP&UQx$oi$ETxHt7_vqYuM2>u<@=Ea3m3ZSd4t&iyw3Np3kzxk_~huE89@RI=9p- z4{;VeY$7Agk@n(eBn`*RkZ+B4xa`(cWhf7+-qMe7RG@-zxFvGFx8 z?xJW1=Zl`5p67uvh9NLQ&28F7KvTY{{$z7XUu3Bs{v~&sOV|D~ae> z2!gMst(jM<6j=yT@I zd6G+}cl@*J47)sy41}rCjyJOVfehy_1IJdMypE@_Mvq1iHx>ucUJPAXPuLq*3^BE} zTKv>$=E#Tet`i^V)1(s`0o>Kt3TbsdrX{uPiS3ZbkHr!$F|W}RnS#@CBzpb9!~p_v z=4bG$EnRf0!%UFJ!S2qMB1<*wKYo7I2x+WFmX zx6}X!>oZPv2t0HCec3{+K2_tcIItD_FWnEG^GEsU%6_fKcX@MYVg?LGou_lcqH9=b z-(Q~4o*Vc`lrbV>;>e$Ja~_U{OfPU82S&`2ep!_qa)zH_lLMc~@Um~&cx@kD1-oh+ zrme_wc_qZuqAt0?{539O!7}-c5}}nGMkwbu9n({gbeHDJ?eG$s7;A+k#0g5?kJ(HC zpujq>q&>`A_-Qa>^EBL{tI^qY^cDHhYEz*@rH_6+Z`(l-*jL@>hUnt^{x@r6i(G_J ziMKKOoiKrF0-`$_IVPo@Yf{K#Qe2wD;EZzJ)bs3jg1N8*rC~3f75jSdN=wRbjarsi z%1iE zt#dv6WYO{%!^q8T`+i-0Kr8>|NT6~%<_+vo%dK4?SOOf12vCuwh{=T^aBqY|Ks)0T z@0Zt%J+%w!eQ#TL{kUvuxw&(uzq|W(f|sGq4iys>|5VA< z0n#Nz%F%!_O0bzsAb2`I%8AozsN5;H-g&;Xb-ymw8%$g67JaX$R4`VC)uOgk6xWis zez0Eq!t!J*@eNwfHLv{_nXdNxpF?Uu!jytZQKKSo5$3~JvwmDzeyL);Qf}>3_AKnP zBcWOX8a$`ylg3=tGBng4l#-~-Q+Drn846<^@_1L&q2$h9yHT4dz~2;t z8;tavU>W2eno9X@DvDG>Y4GgDEmaVm|e^Eup$tkS&iA>}7(1V_}bg^q=GO!YUQ$k&{^e?rC0cvBO*rp`K3|OSeV1h;(}< z_2hfXd?OrFlF zH$20vwjUoo5F=Xo-v=G%#n;^1qd2Y4I7%2gtz?lW0^LgzU|Jm6(%j#!LIX#bHS>7a zhWf<}uhY(UEX<9?M6fV;_oT$-RgL7+&Y+S{>SBx8G2msBbY{3w7}m{;9EP2G%ivL^ zT6ooAcQ(_8-*|)QXcyH)KGl@x0F`SZ12A8_4KupUMwI?5=nz6)Tq~0lE%3ZWDX6PM zaoIW&;}7UVa@sj0tN#9i-R2A;uC3m_Y2sUo<`tNKhu!AR>CSMxLL*A`JVxiAhbl!- zzhS7!jAc)iMsleY%u?bvyO;ji)2;I5-9U?Mz7Vj1PC9RV1$;{GuFo6wweO0{Kt--s zCnW5OKZoYV{gFd${{UUW3M(CI6S@*3qQZ7{`Yna#ZKLgw#M-eR{EMBJ#0;d&XL+i0 zGDf`gC&Z;>Z2HS+8}w+cQPITuV*VxZf32#4Fgt2XiU02=lxPxA>6@KhQc^h)PcF#qlE zY$J$wWUrL8RU9`38X4`9v}qr=Pn8oTN#5aB;UO({K{iQ>f%CEU<&T%e1{Mk(BNMdr zQT}x~V~_4F#&eaRVEOTnfNCx|X=-mfTD}8nb=Zb=ZCd`7Z?aG?PKPDm!$wECF{8DB z6=&`(p8T}d5OA7xBTqJ5fI+&Dx-!fa=aJc~Nx`}bZCWfIVI zh7@{n3igNV&Ry|&oY{2(Xk?7o|La9$+#R5h8IP0X|ASXEp#o_IxkZ<^Yp zjzoOTTZqqdmKDt&M%Da}KV%wE7)t6y>x!1tX{WQr=F#kbsBwSIGoAgmk`A;{{KQzy zhlYo8F;@(OK-r}Lq2~mP6ahl; zC|U%07%c)<{>Ah!+jh6p5HgJrK00sgEYfb-s*up|U4)@SLpd}SJ?BYIWzceC;8!I@uJrren?*dFEozj6;TNIR(UN6~&<#$d6w=c_fgS+@-w6LV<(2}jY=t_m`jDBtfSjB^(9 zRKM3Xw25C9DF41v)@ti_ZL7MZd;oK`;jcwEb^&uRA0cOqV1-ZKGhId75uljx6euPj zY-rJ2TZ!gj%o8g=rYI|oJypa!lvF~|)(LHyS?j7aBKqv0&43M16}1^Dt{BQPb1tW2 zJH+T+@>+oQ`!!Ex-@)dNT4_7cS?+?vS$o1=~ zVh=e38P~)RJ-k8$Om*iRlfq=bxTw)nK^F_qL|qHMo&nYJKB@rWxb_Ha^Il1b2mU#% z5ToJrF}BwF0_lU2#DY74?9)qio1VlFYu9e-o%P4}Cv)8_Xt@2<%MsyJw>2psT?Co( zi)NDNa#$b9Msm>gIfLQ%2%K`5tL+tE$cW1k>O1SuBLAj}JnwX+7(XyE z$BXs(73&;5E=5;cIV^ZPvj(8$4uJ~D!P0-NMU8MBMZcp)o1QE0%X>(zd~^6a=FA1o zRi-}s;4+~l^>~c8fu6AR6I|b8)b*b3jCYuyDg={Q`l=@)e-Z5`G1$}CGm&onEj7tn zs?3H60#<+@8=DsHUf_5S6d4Esgl5B%&`rXL$|1r+_g%^@nGnI%0u_vtFry&EfikGd zM{kusxRi&9Cw*NkATOz0`0}n>(hs4y;LRM0#8`e)nJ^0;7egUy9+FIEZss9WSxJS_ zsVvpRfLxc#ma_iFMCXZ-n+A^OSn)5tZY)o2i~L-*Uh1n#3q{wc2tR%1d6O9R=yMd& zmh)QqkIT@?jcSl$s|*MnGhek615`omARz{*imW=h9yx1*cObl%(3XLyyNlPM*$L+A z+EKzyhjXbzWEXVQ5It)^Zq(abdKmGkLv=xOx3sQAD;=4_;*0C2Di=QkE?R8Rv%{Uz zjXFL=!>b+*3`Dl*PP<^=)N0~NrZ1?*&D6RXP8;!{?-92Ffs-)KC-GU3xy>Q3YRV!n z|Dt$BH)rp*M@A^ShlI^uO(=gAy~l2f$i##?^#tL zUy}wF2IUiZ2Fj!#+ExEj^1Ri=pEw|a$*LFr+**4$t|ZD+v@9)Q1TO;RkmMg;Ss{7mL zwK;Kwgw2;yR9iQhgn%mOKxc|FH_w&DPcy5Cl4SHChh}yD zKAv$SYTdL80LM35U}fDgPfDn`D45QKV^BSppcV?Ek_jq^?3q&Ah9V-9)^_hs$Ti(6 zN9yQcg^RXu(s82)S53D>7f%xDZqr<QhzeWDpJ_^fpzJ!(~*rKkEDrZCL8WSUy2027cwfep$Dm0#vXVVJTnktltOmf4ab- z8?PNf%?#iEFiRfyxM}7P3T4_t?=d%qn740$>PU?zre2zl^H;chIAq7kkS5|6j0I zm3Kz`*dMao15AtkYy3D0BDH_5B?-uCfw&T&yEW6yfms_Sfc62PN1%s&E6!r3{U-b6 z$cgqILkc&3RODn=z2hE*)eZ^msVH%*voTYh6;)Yk;?A=xNmKf7?8c)R6y%p}`s7E0 znW>#;>6@E~70gYA>IdJB4%PSoNzC({vnq_*t|BG{JziUY0!G{_+)ztv$Tm3f!y5=hxY0CM^{k`)79$Nj_LGOZ5JM!NM}S{t9e{7q`Cf8(9M3OwleNR)e5#o zM97-E?ooSkYhH>IfAuY`3rfI^7rul9QJ&Pd7y-SIe^%iT?Nrbx2KeWk_*0O?ZJ@u18cLIplrg9Fyg$cYG% zg3j+2B@GIthAnVH0IXyOC<8u!nl$ktxW2}eknzhfQQ9<>z`@`UmJ?r4=3L`@Ut$KH zm7>bT7NCZa!{`9>^A!3ifOj8DwrfoXsthECoNzha<{-fGdtlCDlH}D|N`P%D79IY3 z1zsZ`$eBnj9A3;$qlQeo)0%C?t(UjGu#l*aCZJQ_{DW7l9 z8MTRReOrFW(oA3YKn!p^434cW3IHx~Ec|ikz&0r@ozZ%$hQM*`GQF0^ zYX?N%AgfJV7Lz*!oGD&gVKZuEc$FAQ^Wkt~Q0sY1OFYf>*Vk9QuwJYZxwF@>*U|B9 z6?`)4;BN{2X79NPmSZ+9%LasJ_-#Z&%*Jk~2Ml z5!xuVcU3|;BcMDZprE2-9N5b{{oP}k6`lAg&i?gUZwHUah2rwAMC&4(W_^#>X0Jze z9?NrQI9`6+ESE`4WZYMQJJ1?Topy<$KYFGz?$AEWve)c1Vz-#JH*sYjRI6b1Lh_P% zUG?W>Ah6d$YFg5*u*)-ZDEu+LYG>q_nxBAWdF#?0Rs`XlGEa!plACs4rjL5R6BYpt zm+VjpCUEpP(5zbKPoy({7@kDmAotb)rLzJ8r}p==I*;~h27Aml^9KRP{MZCH*OZj| zV2Oy^nFv>zJkyG(CDD~!Mne|XQC{oa01EhNhE#Fl>Z_gUK%0cCTW@QTW|TPmV`@!? zp^RrAaX^`VZg{bBGQFoEidgbsozz|VE6iHsp|6pnPH2N?qJXpUZZIqkj`?E4Mk6Hkj6< zc818!e+~=BUy3vt1wc%y7te4sL@sX+S=)a81@;|xYelA#=9Q?UVO{Ge`llixc`xV9 zovj+*i$4rIIMG|Kxl!WkfeKb5^d8q~23VW*w9Z-0-$ZP{O(MWud*RSGap>JMAQ0(Y zjc~@L$aupKfXRFHg((e0)=qI@2Y%Mj);GNZQH>0W<70Mtdz%lBLKn{TCo?0sB*%Gh z@dlEYm-@U|vlvhfJsf#AeY`q7EeO@s=UfXE1i6D{prN;3o>ds?H%6z+yXY}M)r=A7 zavWG)Y6X%o5=06NXkF}#iCh>#PEC^=YaR1<=d*{YaBL?dQxze?Xmq<`ta#gqvTPNa zT1IvX@iiV;#6}LEnsv#C;9ozv7xYd@In3EQZm$3v+_>je;OaoY5ttGFE(TMt@20De zD6#k#EJZy;&sy_&Go+ja>l${eQuKZwxj@izeAHNuQJm!vycwQaSS}~((G{>fS`YNv z$8YZ#ed}Q2;FbNGxGtTeSrq~e@7NT-MQn&V!XScBZ9-B(LOdN^rP+Q zI=;?i?2c^FS{TDzNP%1s$~sZ58o1QVdojD8(5EGbwA z{VR;@(^tHso6M>U!ouq6rwa+DWF~eKu|2k^bxCe>)ypkws&ks2h{yfDys`mzAB@D5 zbLibF_`^=+V?m5`L}C5fF^;xX=#|CBW%hCwqk!d*k9=05?mop|PPvw)I_JBRA`&qF zgA*JX{x7x+kf8wf*)%iQ)q2$T*S9J6$#!rmqlxmI`rendMoQP}z>=jPu<+&6`Ei}@ zJIAswivCxmbVhCd^TMd5@@_}^grvTXHp5#nyWcz@^7%YCWI`sZIIS^DWlllFUoCJU zhM|rBS9@t42>d;TV=RE|W%{ZsC+l&EO_AOVKYff{l&-g7^i+1~hxlX8wZXdZ1Tb*zTY8 z-|`-&lZD~kj?YpARCkPnRt)DRe&$&R&9%-=_D_2w%wf}JC{K(q*4jOa6r$2lF@ABf>xRMq~4fQ6gu^#!c65>vfL>-2Xfnkvh- z3NMcTA1|nZ0?F%y2}R?QAM7-Q0Y67Gx#3Bk6PYP6Y`pz$YBn5LndS8{Vj z$|Su*gd>P+Qf$|c4=3Q@T@)$UTAuwxv16j^I!EC5i<+etPL+>KwoOHS78<{GH`tFd zhCC-Qbqmqb72Q1s$nXbCtrA(+B#{1zPk(&A40#3Y3>6DofS^k-!i8NK7FrU0qCUJ% zHWAMWD0x5~@P*rcb9;-zjH^$x7f@R8uTQh+l?(-;N+!#abko1#P^FXwKHsH+a?w4m zgk2MVclV!C#cWTmGi;|`2A~$OT7GZ=X1U|Cuv)WgmoB5ND5W@|I}=*Fy=h2lFDnu@ zS@)PK!I_`ASJATF`^t>(1iEfA*?xj5yjxT3j2}HtiIT{?3U-8A*Yj>208Q&iOc-Q=q?3Z28?8p;0+1iOjz#2(TG$pTL(e@NMWo`Fff>Z$5ISe{-uwjo^Gyl%r+oZv- zOYVrokh^qBxa$^3VO3e;imlZKHmCj0EYV`4G$5ZeG{=@c>0Oa>(hAYEaZ4=a^9l$p zn*L>k#5@#BJeLKBm5i+4hj}~vKkZy+Sd-bdwlj>PBUnZef+8SYK|qRdMWi=F2_2Q* zf`~z>(Ghi&5-9=c0-=Nwq=p``&x0^#leqi5#a^Xr};_dfUj%fq+X z-`;Dlz4!Xodf&ISZzh3EDav|%nERYGHrOztVC?7=a|(~3?AfOEig#`&SCL0 z0zPUKxOuj^m!CcqMpN8v`JpWvSxgET1XejS2D@^6x!VF$VbA$kzgbp7U2b~mCEpR5u;n4BQB&EuP8X`wV0}RR)cOFd^h=kg5i&1+;#!||{4ne;<4yVQt)Z-eHt83gL7nzeI=h9Azd8NU?PrhXgOyBlSv$FIZIa5_Q zfwAO*De2caGw#pzgkbvL#oA)oj2z}yEE&m`$)xZ`N7vvRBC7!Y#VIsf1RJqf8 ze7Sc?`W$3GBNnPnTW1Bu>noq+uJ(ZF*M}O7!24%BMr@3xZf6m3ec1Ovx5AWoafymk zmE2KyiJt6e&|GoR0r}wO6^hP{?b=;=kABux>0Nv4`tqWw9_4e0@JvWyS~!aMfxp|k zbchnA6k**KZ^6T~;r+HU#@9p;PSn6;>?*qRA}-J{p(sj$ShuHP>?pm+i{;T}4sN0{ zK?DV|ie8;gUYKp5$IO1>icTObPYBM|_$oAimc^ajYg%)M83~T#S6S24d?uPKX)P|Y zUOQvtnmb&l+J9#;D?;2afPw%-w_8NTv0u|EQ?zuzl_25D-a?1~YW$wm*T_-?ccF zOR^2c~H0WY}_(VBi@eU4+~p7s>c zs{G?mY-U~mQKc*_$w1r5(Udggu0e74W<58K5Zwla39H8hDSm&k(#UiTQ@$&kiSD-X zA3>M6_lR|84-U)#GE+&uHBM@0Om&uvH(CKXb7UDG=ss9R6$`@!7%$pF(M!Z*O#SiL zI4JB1i~I&6do?Obw9@o3iA((C$#MH<)rLE^Ib{J-z6ii&)=VSS?J8~-O4NV)Fq{-S zH$1M#|17@UUT|=kcxQMZkQtF*e#r!DVjt#RTn!XzOz`%!o?7fqsDjx~I+|lwvAoj~ z0Ig`++71A#^AN8Xg~-9Ups-s5Cs?H%j!bQO{ZbwC9l9U$kR&wjo{UyTB6HUdZ3woU zQ2_5J@DVHrmLAx);LnV;Xql^>4wSYLZ(Cpa*;l$+a8@_vWIZ3{rP`1@PsF$piB&^F(5pba9KyEmnN;-&2Bfy=qw5xubCRSHhb7qHdE?2LDaC~O9N6E&oZ zRa(P}zIn4zas>CUnj^*orS$8|4<34q@YoZmKheOR;(^hBL7!i`cyKsdzM%6?&7z9qFvhxDF?Hr-!iE}$g{{46_18J%cV?J z0cPzir$1RbMADlu<+I$)q)JP#PBCWZKbrZkxP+V>W8Eyb@%!kM5**BV=;zI_6YwP4 zhy=YwyIQ+Q!rh!zVz~IoN7R4l-Pz>;(>oqsubVPk z4xy0*ZX1WNANUDz0aVI(a=jkkK6aAy^(zcF9@E@u5Ity%8{OrQL-P8y@_1o37H^#oPzR5*F=x5`V&4p zHH}tV8>?vgEfcloBbo?NxTt!hu99{4T?OiQ%f2>um`vy8b@OtH+FH&&t#XInKGQ%T zAaYF?;L|`TJ-!QlzOFEDHk;dplQV@oR!Q)TBCKiN9NQm#%q0GVV2GG}KYW+g!xn5p znezFIaD&Q%=Lz3heE6<+1G)`Yxl5{+!5`7AIFi3}gh85hz`kwz&d-#ZcLPM*i|FjG z>~&|0;x-^sWeeTPOHFdGp zq11i*E6mQVRIquM%|-`j5Y8i_L-M%?d6^ZNXd!#gAgqU|l4K;MAcRVt4^n5usWAMT zoELW9(*bDP==KbuH*5JsH)Pe{kvzd70$uX{NF$rBdv|d|OTauBL z2#0jxXlvO}Udasc3v%JI5BsC}iZ1ZI^Esx_rD6Uk!TNx(6J?lw^ZhFz8}P@21C3_v z=;b}9m>UBSp_MXCp?7+nl!p;f7(_HLyz(S&N8Q%31@L)f3EZN@QTrgDphM%kw~m*5 z5?^Jmn9HE_LoGIKdiN&w9W-7$x~NJ2p*VA^8wTh-m%K5Ce{B{F0x*C<{Pdw3WLMVt zpmiC)4>|UX&-i}dUeiu_7K?>I{Uw z8Eb@}{Wd08W~PRfhsh02-NbpO@T1dO6h><*WibAo#f#%Ci#uJ@zmRo@TQxkgnvQQT zZGu}V57~Sk!hBO+b4OxSwoXqrsF6(@sWJH()$0XPJ&OnIax_F6X^~E64oZn@hamAN zozprUbSrf)-7miycDxUvq>kC#5Y;!|X1$?C7R%00%sInGVwEvpTxk_q#9xZs?y&xH;TK# z*9-d7ecdh?8nB{gI>M!Pe0L|8j@;I%X1=G9y^N_vaZu3NAg}^I+u&GaE)&LoD3pz` z^D6V1d9x_qtS^82bD6H0YNZ{p?v*WNBV#zYK-eUR#|7*WM^*o+MgZ(+a%!1w1|T<^ zRV85Af0RFJH5km=|A=Q3khHm}*<6f&&o5v_P?h=z;RHYrejlBe983Ui+m^<;De&|k zRY3fp4hOXD{yJ`tBV^32gc72lEH3d55fr{4MIV{eNgtc)f{qpJ;uWR#Sol0F+;&Mo9Evy-qE6g=!kx8{Qc zvUP@J?D}-@d%mxCyyom;(Gtng6R5snE1~$st1X8a`3q%mH;iG6b!oT5WTp9Qi?ct{ zT^HxygEaaT@R2=V<1VuZ)ZR>Our;iMTmN1pt0J@VZ!h=+q#msrOR;LuTas(y;uG8|K~7A95C7)i01t!4 z#F4QBdN@~mVEdXlB|&AxrKDVo`?oNXJ@}TukJO>B!3%Xar|XA<`Y)KfCqM2j`j`~e zIIrk@LU6!y&-a)Hc_Bv(G6;<+9!$7u@D5$w28p%#P!9~|M}WG(%2g)LdBHQ*3LTqi z%%zV09Ml}YxM??E&PqvR)tY|t7zNz#YGOHq#@3j=!6m_tP=oUkV{YUhu! zfuq6~j%(@jK4Hlo+g?B2P0P*c*oGby9b0rbrQ!DwcVw<%w-8C~v{jtx`YZP|{KbRF zdl@qixUZH(qOZOoVNK~PwE>!=>P_$KC4XETma=)!C!iIx0cieWkb(E$aagFNQCU%MclBQg_iDeK3%2#ZdWe8!`OD>( z!*7XRD*7LEp8R`GrT_2c-*vwK->@VA!b85k;`kvOWU&!^|5+jUQ7ic0^Q$bHtsoe> zPn8V`_R`}^P~og=+z@;vmI-YtzG9Mr1{GWKRru0|+#o3K{j#ZO=*SI#yX?jZyZ-AY z*{+&#@Y9mq)o?ib)3fVT`sAqa`9~O@YIr(Z(@^FLPxPu@X zS*ZyKXG`t6CDiNLy55kxy8LSl+IhX~{@xU40jSH{Q)79_0~tM(66bKiWBqVk@y{93 zkQqb;WpSZ7$hO)Di;;?w7a8@(S4ue-%qhFUQA>9hNSy3yC&o!v6rtoVg}?E6Y0@5K zz&cX#RjR4azB)|#<;DRhfBkevB;^W_vreD9USw7}*>%<&X}_`r;oq8B4av#i(fyWg zs{7Oe$F4+20VrAjNci0gDDA(dinT&DDi7QbEw`PE9paZFa_zK5jpYAIIV@DY4B{_*BAw+mnlV?y2# zWE14|Ya_o1d9Ag)z!(nMLuzhRbuFKLTc$n#+v`v8Nr#-sDx#gW@xHz7H??h7FHBZ{ zUHSGk1PC;2OnQ$H;>|Nq7IxHi!{CxaLtmo)wHE<5lo7?iU;T>~<~G`X>f{bC^)8j~ z&Zw__Lt6>Byrzgvm&)Hyo@AI9ncU-(SG15M9?7}e?7M2sbI=4YA zEPo+bSPoE*9tOUNF1d~bE(g3o+L|mCeHRyj4}Uw~G`z{eQWeX#cmELZnf0-bl@|-k z$uG=*2Rh*I99UR96?JdlH21Sx&SGt{bqsEWyOmp)me*N(mJVI)%Pk!hw z$^Y%Hc;VHhIJKuwJlssN0q%uTH>00%KYP+Czr;$FN}mw?hDrG+MWT%FfGLHVGo>=G zww~=fDd*)h*E5msl@s2dsx(jNOPBMSSM~3g5YWElU+|CSQNFOaA2IRD0Cgfm5=u2(cg!0+%ZXcytMst2-|``-&Yp+NR>lwVSQ$FVQX} z@^EH7>^4+m{&pj}zHp_=tL1VggXUOG{HBPRyG6h2Gl{zGfDtiN;Atv-q&{a@M9<|7 z7G7cQ#nN0PiNyPC%{yY2aNUWDyh7|W9G*xI4bza2C ztZA*?ul!WGxM%BnKUQtitzrH>VfJZ1J-stnq_$_2@$1ak&(+F=bE$Ux_0n=RYyZ`7mA3o~5|wWd)8+E>JaEk8iUHY=w6YawcM6vm`~93umNG^VdN5?*?1aqN z&v?$Rm+Y-Kd?sbU4zxW%6?kTrbtsA9l zQsVt&Wg$U$^FPW$C@f*Kzd!ct%)6J5=o>Z$gwaICH4D0V9lvq8@>eXuql0Jd%B7ZX z=S{1~y@Ex;7TN5FA9s}IKfB8nS--3cvGhMdD3Uh)vF4Sl$vt7j(HnDwh2@4nmlM*= z_O(}Pq%g2S3u861Y-iitr$Tuk35wbnp0mW!6s$wW98=r!fBAW)WHh+(%bbu+)4GAK zt%TizLy+BK#z&*hNnj$kPS_4v^w5U&t1s}hj@H-1oR1O^goEz(vEU|E%hsmM@fbO} zi(u7e$l7rS+f>!FfV9nCWhYw47x$V!aI64p7SE=jyJ*?sp6eQlvvlJn7)gQA!ToI0 zI#m)u;>>^j7%SZ@R#AW*Z%EbpGEL04|1d=CsV{8r6stTF#DISJwG2vqS4J(*v%yz@ zC%qx5`5wz}=b8h3G~5vN-50@l>BmYJSy;MX(82>tkDvD6avsFaiMNxOEGBceGv$pdPTeJcvYI9$81;6HDbIdPyS@zIUVq1 zb+;S#YpLl%(#9{*9`(apYPTmwf0>s+FPi1zA8M0iNf%afz?|;VK~O-ciVmxB*7F-@ zB0nF?nnYu?5^YEu!spXN_#SQD-u zykS^tZ7jBU-twLISfY?&?egK*vP8bY4Udl1ljrmW;CIS2?RPu!#{v@3P9RSEEg|K@ z2IB`pnG{sh#W9CH%iE`I zTHz~?-o~UOkczjk$5#SM(NUPnlh%DvJb)Sf^+gQPJ6moADW1(iM&4zNC{@E4Q}G=w z^nix-SM&Ot&BmNctHudsAyaTnRygCS>Q)`DYn+xXgbSViGB@Nlx{Vb|8xw^}1j(@8 z+uf;glTyAj4=R3;7{ya;s;ZKOEbX$8trw4_(;~g?(Q^$`?z&mkTWsOolA+tz8g>qbUeO3O7DQ--*q?^rJj+{s zy27Id2tIgs599MXQ8)M>1KRq<2oEaWn;!CVXai(}$kEV)g>1tG8+KcrGAV9-d%~KE zf@xzd15rZ2kB^_@(aoYPmqCFHyI^#N72v?1$PQHP zJMfR+|KE;W2jC^k4b~eZ;KHKE0s?H8#pJKk$iQDe!ddyk{?Y7=JB$Md$NE`7PR5VTzEh9njBV#HF$sI2Ls(faeW7)e6u{18$yL>`K3oVo0ey&# zBMncOvt*0Ro8d<^ANn7Uh|im|MLxrBUi!}=07BR2`xQ~rnHG`~5iyb2O^*NEJj;)0 zyl5sV(QTqfm`#g{iRp4^QeHSKfS3VsamB}*ik5fcY!kA#7 zXDlY~4E1hXiVA3;I@nNRXeb`0DDl}O4LjzyttJ>evnHdMH_v7lwuRKaH)@cTEGO=_ z=`$x|AXv4PhTS&B2f713?d2<`@BsPr+yW%gC5bT9(mV9gKQz^yJJRN%Pe)XIO>^uP zuDggT>*pEsaL#XiP;~CQ z=tbSot9yS%8Ab)o>%0`OcT&?8Jlhg9w%N3NuC;u56~%oIovIw}@KVA^0`e)n;dW=) zY@u1{Nwzc|>GMn(>KXjuYws<9uK;~_jxQOQM2Wldbx|-XuB)&b3&w#$8zgt-^_mQs z*WP0@ah-NrVjhrbZ>hPo_F%*3dvXX-Cfd3p`iG-iOJi%Gs)Y|cp(gzCrQ-%BUv{Qa zD`W8Z5kG23OoTb02C#y+0G9EL>AjA#|7OfentjZoRUCTqe|&3Xx-#@E!1Et} z|HmYOW&g`S|6iZn^$CXCY)lUaoa6@|a9sO>m0P^KChv#XLE!9biTj@KIMk`{ji|t` zO=+&4h7QF48TJ(55Q*KVv@brz8g^Vp0B%yJ;ThI&_|Jcb>afk8gSU;R;o)bw3u2f~ z6pT(mgC*X?y-J3CbdR6@vy>hVwB5lLk*dsd21$0$&?QKRtg#J!35!tz zT=9@Q@GKdgWfb8jc!<>xcC^rtC8RL%GHzp8WxyK+yCE@&h zds(i^dP5X#eTe9DeMjM?{ZR1rmtp@H0-Or>5}u7KtryzC!wJIhosDQ+P0eBtybG`I zaUQuGY&51tAYXR-f-_BE#wfV&G6GpEgb-5_!zQnNc-!tLB<3chQE{0MF|2S9VE|Lt zo!lKwoSicvu!PT_c#NBy+x~lRAQ!-axNG;ZQhCM92qZi+6C2wR$aTWR@&L(fe&uASp`q^{VXs+a+m8k zdYiYGEv8iuj#6fhfl#1PcSe(UL)L@{G&yos>79~E$k~VBXWmkRiWpsZbc|vAY0Cm^ zgZ<`Rj(BCwS4DuVC(BrOeiHEsO~`}DVWxPTCNY%^TKunq`Tl`m6iB)Tb7z!v`qvci z>r^v2MD~?&!h?H&BDBg>7P7sc$e-wSzy;>X`i7DPplSD)g7 zG<~b(9p-BJAd$YOzZpxEnS_-GUn{Z#H*AcHep+^`68L2`GkQUpmj8`9asWU(;s-R8 z-{1A;dh0DAICq}s%8{1Ma?hdOr@KZ&;z+Uw02-J?Q=9EYW}hVE6ZVLTutdc>2~KDJ z!%p{5lh3a#y+0eyR!BLEh188*lPt|DGph-#z;gL}8GWyBo)WHAy)9}@5*DB#-~Bzd zY3>ghh|(DWPb;id4@=2@xtl%hF*98dJ2hE`)9QOvJhBDx4zym0C2tzn^H$dDcYwBk z#?IczDv!h%E1Tq`t}SJyXi@J5R-okq#ye7CJD+M$@S~0kbBU7~wKbIUVr($+T4VPD zGrmDuAX!%t6Pve8a&MM;+`4`#@>k2XNt}0cAk?fwRHxa}V zX}~I(>Z2xd`hBo8U{WV?9)=bf?JJJEewJ=PO1ZGtWRJ~|5%l^DMK$3i_JxOFM^mhn za>bn|j~b+J-pP2wb=8LRp)<8Zq#@vga&**x(aAwTJM^j>wsRroi}mi{P57N6q+A9^5i~_i+0r&W4FYT>zix%%jE^ z>bq7i7+SxfAmFONmplByy*5_mWlTD}NQ%Z6J{t@}2B3QS21cesXs?6eb~8tW^4`_* zA?{ZTiipBJcH{;9^zJaidbWH|> zk>y?&ZxkjN+*QNj#j3DM>l=5rnJk%v_)6IqlWt)?0jP_wAPw-T{ZW4}RZ5Rrx_I~W zNwo%W4YA8?2+$JIeo9I^?WZ~IrN_qE^#o@ewqo;$be~)9(qKF^bZj& zQ+;qwaGm}S5T`!)3$dw3Kjx`^_+Z)*;Z@y8X}4_dD~(F_Htxq>(v?&1Wd*Yn zR(tG!#1Kl6)ccd49w{QZLnfK$Ib1(1@y7&cmV)=-(3bLng|rtv*!UhGF#WF> zlI=4a7Da!=q$eIdc^H{_;eR>#%=jnEJg@J@|KIL&Ya46`0)XQ=*6_reAnq?Ri|Q9| z?Yo@ecTYC?bKT<~01^2_z#|}=iECobDy{*&!p8q#+lTevE+YiN`$7K`kmUfOn+ZA; zba=YX?W6Sfiw)SDO8cqA;Y^>xm7ibOwMj(+OjP~x-f#t$Ctx90hv5Aiay%MOMn7j) zKab3e*@q<04I4qe-=7}gM+~3(y_zeSbn^Q5Cw+ym!8|QBwvFGZz#NB(asoJ;J zchByFGGMo`SxIpgg2^3Z;6iTrc=vz~;nIJlL4VdTC0z>o`Key^CrB}r9^^$u`~O#7 zby*N@bztG8tRCSYyXrt3P;|T3;N()UGU5f$k}iwPyqGvRD3cxq#vBJE@b4AtAB`nM z9LtJ^7IXO_GZo?44Z&?o``HcPc}~w=ylv<>fph~8#3?5}O-4J#`o@1-_In-+&a3A0 z4=IB*ro^SNcG*~J(pc9Lwe%c7mBf76(VuzBQps31_uA~*%G+)-lS=ooyzfTb{KMzZ zsu`EOb)Rffdad#@+NP500y1!{4A^cwL3#UWEbrSG;|;o>kdsScUuaX{nqRty_+Vtj z`UCs!JK=LXxzZKeTGISs*YtHJt51`RUu6b?6h-Y<+{k`HK)~#(8q7E=dUDu|iY{TKN$ z1yUh2{pNzg?v2g<^enf#D8Cu8wd?5s$@N)YdU6}8$Y(zNYTLERAvy%9#-*VKY;U?; z$G;QMn8H5w@AXFTERm0XLKR-dQM)(L!PC=!Z$Is`z9jq7l60DH$e}Yj*j6*PIXL92 zs1JPr>pm}mUShio(S!ofRDlhP+D+GO-Gk#Om3pMz6u!m5Ag(f8>*(6kR z&mo>8ecbK-9NCXzUFu?kGQ2UFWS)~&ATd*C3s0oEcp9w@tQQ=!78z^-^dH;zI0{XW`q`?zMzd>)a}SCqLfJ4OO{Aj1U*HoW>65dzt!(azerR&M!IZ~xp^W`60`(Z@zVKPhXIYA1uA z`7OH{ckb%?o)>+AP4AElQO#7f>*b}gz_{gn_O9b8Wiopq^y(>NT;`G)SGM!jZ@=v` z?v=q8GGxoqj3GZbV8WTxdMlbxkDj2^sZNp0vqdZhCRX2;vN@~4nwgg8d$JT@f)}zh zt10+QCANR7P9#=Ep!gfco{PPo(iY4O8mUsH)%u?3=Iy@l!+jy~B?SZswm9E)3j?Kb%gp_Min}q8F z)Os#-q)<1zY#cN4=XK9rV+1bP=B|^k9h63l8~eBC?t6@e!ak)}Nb--a=N5r~jVa7^ z4Gi?xY`Y8^jbx}NM{IvRx`%ntdEOeyrUpCpqeJ}XH*xxPI&amws?Lv;@b;hNnv}$l z=>EoQT#RR0q_>w-Y-@$CJPxVlxuIBaTX<7BEksQ}_=99byhd`lAAzP_F*RD*ALL#~ zMA8OovkT3bYF&>YkG@>Ep6h9-QLtiB8DOyu+O|msWaX(3DRxjB@b7Y6f8GPsXT0#gAx7KiOfF=|_Py{MVtK>a6g=43T?WRiTg^0=rD z;k(((d9LF}tR939+%!!xC22x!h9qtYAhd?Pkj%;#=oj-&Ja9+(^%jo{(rfqx{qFAy z)yIwq=3ZtBNV4!jaYRIS>Ku>;zt&g2Ma5S=`knU<5;6g*kCpEAwvj z34WYL9D1?Cw{_jIA+Ig8eEh7;OFAxg`S@@PDU|lD@9J_X9gOv{ELYKTAe{T;68vt$ z@RWN%eb#V3)kn*ly9292&aHiz=zRRlg3_`cp%hAc$mNd-$?C^8{E~Ce`g`{vNRc+c z`Ec8TbGOnWlfQj{v0IgOe;iD!m{eNlzfP*4TJ4t~U09?lw~NN@k-q%P=fv#Gx-83IIwV4Zk4( z_dYfI5CQ0aO$i`|PyP<<>8Ft@%M?kAnE@#nI zb$H^(Rre&{y?Ny^@`n-ORnm3NxB?AIAGUi)Pa6xJi=rbP)mIekP|rb?4e#? zOCwP! z5dz3Scq$0hv4_TH)i2^GiqN#ALsR(6u^Kz(6M69>d1$Svsms(T0>>sYGAriAzp9@5 zo70*~f*5=3m4s>6|&b}-UN47a_%69JRMAinb3aI2f{|&VO-ExCc$5#qh>by!l zcc1g;ST#fLXtY??Ys9PFny;DZDxT%Zu@=d(sreF>YtP55(q^hhf$umtcpC`MAigl` zrniaAjQ-Bh=%~tC#$Px3xl$t-C>1+hy0CV~BSUQ8j*TI`!Ys5SKjE71_s#qJByPSb z333CnbIeLgB^0eB)!UC0uTN`He);<-uzwCEdcbGy_MT`sv$+?ImWXv^f()k^l~{Yg3maVN0jB1gPp z(4(xq>6VU}A!STyY-hGeSu#q(PJDif^4QkenL-zt?alcx@~`uWYXpF37mY_loGpl$?bW2z zK5I#pkTJhSMC{CHr+!R%#?mE8>MAO5x+{x9Q7R=S8P-(+NGI4+$?Rj7xA(&9W2`!m z23@=NZsO_ET{zOUu=#`DdmYbUb0yr@{lOaI{Wmx^wa z>@IYTbFLCZ8!t9m*B>c>pP}+EKtm{v5UnHP;Uc^_Lb7;WGHEabzVI^4?&e+ zS2N{1fD~7(pyeScEq%t)pN52Fo#E#~_w>sv+vedWO?SfAg6< zC7*mL!Geq`b|Q}ws2`ek!)$ubD_aJFI0Hb%IkjD9Yl11`>T72_dQ@HA9J{FJ4KCg{ z*o=LU^ASn;v4cAXQj9*@{2lE$r}T!N>Ebuow`X(kNp}3M$_C?bGp6+9ojIdT#!IK5)_4Z%H$b#{|CDC$qW8N1&m&ouma zt^NV%kGvXKmnAnm#L#v>W|kdz+u;`)9?+r>QHbu>NVGqvJ-X3UK;gI!fAJN=umNj2 zMo4ax{eu^{0Qb|cQ6eT%!KpMmzD(&@$93n&7E6DE`EP(_$tq;W?H!9mU#$n*clYW< z0;uCNqh0rL8nE_(D&^g`Vd_ZR2Cp1%`WX}4X4i76cu`+plh)v_NvO?Ay*yV;XgQOx zviSyRk%Kxae8&HT3C9pPy6jB@IQNZ}Vjx|=E?S4i<7}%ty?OsF(>YDXTUhxOr!8#~ z8;JtN6^g5w!($C{m7yl|*)VxZMuSBnt`{n)*k0pp&8RGf#c9yG+Y4G_M&hwtZ_?$q zbr&^m_MVZwj3}D$pT-9;pnUZcs~Wd|XI;I3*?Gmj>t4dQ%`VvFB&3E?6n3c61U@RG ze|c`W4A!0kmkqu&PIpV++1#uq7sFER>2T*EXh*jsLd>E|LzmySYlt`tWnXk%01!`H znNX>zN)4>ICNbhemSVHopM8MrZhIHk+7gHi-1=dmBzyW&@2U8=v`uyeOk^y?U47&G z91V(wz?$5`gGfz=lsqLj;t7Tq>LSp<9s=jv6LXO38f}T$cJ-?$x6PZZ#ri`X8(ytR zgPD^?PAi}pW#Ym8;``Na2CuPdI?Y7L!YY{K`9PPC_O7qY8TZxmyD&k^N_Q+`c=L zes>A4eybHnG_JM;0*I;hRte>kg$gm5fk5q9I@Vd?RB7)=C}>7ASp6nV1UU|SC@RoRVW1r-wuGy1!{EKm3W#WGuIn7<@ouZ$TrtZ1U>H2`_mjA<@- z!JaE1N?wQXGe5RcJ*FTOX#c%+*{Bop&hG2J6u4v>h5hvSDK?qApn~yZ^AtBVmin;1VJrVH+>=kRhT270*oIbIDWa<pfY?#aNL&k)BhC0u#v@+-)3S#QDNh~)8aVZ1-%Hr}!D!2fKmH|$cTzot1p`0tC zl{?x|x^$u}%o$tV-Fr7atc`jvd<|u~%8QDPOr*S|pDHR-1flMKIXvc^6YQ`8T`T4l!7UL@}hgW+Qzv{%(t+QSFW}KbwcyZ!qnkqy{vO+fml_L z&(gO+bCTV4XU&t1PMNQzP!afgB=*H@`QM=Vkn~-ki{I<(v1>Y5;}QtqxIfAT`hb=E zwGxo-VQaBvZJyl9SSpwG*pB&d`0#625k&9pQZuBSeSOPb#s#_BZ21sN|C8hK%Fu-* zC(!oZ*cl2O?Cz#AUMY?oCf*KUk1N!r9q{~^jo?$i=bA`?+Ft3=y-YQ&MYrh@?BWL`Aq;(`nfvi$7)8v& zYl{XSLdpk@!!H1;cC(dhvRnSnpi)ZDsm2!ZCb`5_*Zw_9Ekb4elb~E9odpRQ!IX%> z#XM5t21I)cR<@lDJ9{vwbbM3QvP$b-3B@9{iY<1^?9R!%7q-0$9xWc&49WFuEDNR) zr4l!H-?b*qc&)W@imVN80Y$4TyW^*ojh%^5x^M#8m-7k&Zg*E+(^-z}oJs6Ade@zN zCUb`4>QMtWq(1920Y@bIBJtGB+?QiNjO#8a>F>Unl$(F+$%W!BHz#e<=@0$iwYuWc zvB+9vlT{Vwv~poOR&D+p>(0jr_c?_Pb!810HO85=7a-uCyFJk+2cPP`qL@&Ok^f{9 z@I=K82LU)J-7uTrhwMAVX&d)d`@ifk*@{6y0o=>vC@AcUAmm(vCS$nDsXBAK>t8+;%yS;SyFTh(m=w?0m*B(9jBC~MmaVOZV z)AJqfQ#*kq^N+Gpt!UbYXGw)~G9FPL+m2uV#pXsnBuL(rxyFq<{@>c~)LY^$jZmDR zr|pdti^Jh?Ip zoDA2voUXLD*GnmSQ9A22Uy*u*mzunIkah$>mp~1um`8~(v??gG!NQfgV8O`XD)+@Z z>p_aU1fJ*qlJh+zs87;Ny_=c)Ukua(gSNk&G48@^G#IsbX&Ejg;d;uukv0XcVj6@8 z<2z$=315aQ%3=>S9|ZQ`L%J!#LKRz2by*d2okfaM4xU!90{PN+=21NVG2o$OY_NSB z$Ii!8SYnpS%(GYEK4dpoK_AmZ{~&+D5&D4)rtI#N_HcS{MGuG^FFpW3@wLK=g?Dcd z83TTfIw@FDG1uk8EH{1!C19XL%zJ)vBhIR2Z`7RoW|O!mk+yH0FUmK6uVijcqSxO-1`bclSFe2%>80dI zSc&Acf@d9TO6KY=khsaM^c)zSv{ zx|cQuO=jF{*n%6AHiq0(Z>8>?P2zCY&Du^hs8`Kb-}EvS`U{Yc4uk<@nKuUi;FNjL z_BON$($|!`m5q+XsftxX{UV#bzblbw(YKxx^1}U%sSC9Mr6wrOqvUG}DlGipwS?6m z0C51b3~K0Q86|QCmH568)y1IBUKn#TwV2#_&58^P2K9X)g_!Y@!0iA6HM#ch1O+IU z=n{s`*$`J-9@{htQ$8MK@8rE`mAvDtgK2W<%XnEWV5v5?MFcZ^73Dwin!$zLVgBzf zA)oW*^MX*YFJG!x=i$kW?Q|PQx|YqXKG~-ex4K){FoKW_opKg&=!LK!qNYkR#Q=a& z6du;t)k&wW@|JDPw7RI#XN~-aU!%HFl>wKfPVE50Kc0_f{d+0kDg2}H9sfZY3oCDu zynE1Y-4+su9Wf1L9Zi%G2)#4A6YRy4#UrHE^HPj(? zYgu2UtviRtTpole9@V- z*1|X2clA5Y1ZO^aCk>3(`y-D8y#@>;zYD7sHd`aDr&D+7-$C z5h_VrN0wwKFFqFj1B9PG_O7>GRR7m?LIKKwy}1Jo*H;LZ>=)$v(uSB^|rW zm|}<=VR%PM5cp5*j2C5n@^o+QFNP-pQkT45WVkuooM`3UJ1GKwz6|mxEIV_PT!jUu zJP~Uk^?l@~2WSX@=QsoqDN`{8u(=Dmj{T0Av;Oe|G`NI!tSUuk;zAJ6ON@uc6dx1~1^KU5N6%rtY>rkAZ#DMX2;pqK3?CarpF$_uW=S3)o@#^@ zmUV!Nx5tXdsPq5Ybh|pWx$G{ITCQiYl@lij-(13 zm3U5!iWwdU{%dA=^X?z$*0+g+=KKl5z|o|G7xg2P(Z$-J?G^Ft zIQBA*u^Fr(WkSHR3-=HD>2J3_{6D}+9UHDQ7q=XDW>jAc$mj`kfx^F8&}Z$q#dpoA z{w^|&N6^`=Sv=U8_pGj!c?AYG<m4;x1Vd=BSnCLVFAY#g^ar8%T|@KyUH$u#(U6! z#ljPVo{{^|o$Dy_`6p&{wgMI3{TH;_Td=R5?+~8tg|-^2S6f=&!8bci8d8SWh@RAC z)R7MCHQL)SX}f?$Yz4Q~x^&xNpp$Mdh-a#|XP3|#C|YIZ!!4<%pPvN*Z3o+${my%s zK7Xm24W!5e#1=z2B<7YJa=5I8%;*0@2GzL&Z8YApsgv9MafMrQidMSa#d|3@GKdxx z*~=NJv2}NS>e*)NkYK#50Ibi^Ox(kxPyL-`Hc$z{X?IjF8{nUxEU868e5jf-5CgoW^JjI#EP97CnHLGk@>;2*lqlP$li$&~eF1w ze4Z9=f09K@?jI0NQu!rSa>+z>->2Stkkc?8lf!>!OIg5wN1T` z7gPY_%fzBo(DwKOFO(WYG*Ti?8+z!TFUR?ehv?C>MLHb3nPu*gicT30CNPpCf)wGC zs$SHHv5}a6AHz`O-&t)>zqz~{qr`u3inKT4=^NB#v9q+Z-Q~t<*y$V+0JY^WvctPl zQ$qXsTuGMQ)$QIPvrw}tjb8(g0+qJ*8MRo7ZGhe!GPDbLB>!60cg41#0+?(h0$qt3 z&Em>KDn3gt<8-1|Nwxk4`}<;__Cu#CZLi<&-Wbi>v@TjcqDPvLh4{8fMP8%=t&ban z8y2J`5lG|Bj$gFkRz7J}^uxU4g;+%3UnDs|1AuAdpj@+zx=>xghoRS;>mEIJBB}2r zQfD34MS9A$$aPuutCl3;jyqXnb*5aU=Q4JyB2p~A`lY7`E$3b1lKYh6=-ywNxTa@* zY4!QReGUnMICmc=sG535%{MW)DNO>U!rgC_yePVmy}#5+Eoh*iA55urO|^>}yR|Pm z<>s;yO3`U&R@ST`0}|cE(qeK0>f1dprPEprn_l7ZTo_VGXkG5t-W)f=&nGC0o5D0h z&BQE}>o~TN{ngR>Z4h>v;bDeR9aQi|eP0x}e%`2MHQ5#@zFo;^(Sw*mp_HD`y_c%g zpCzwl1Gkp;K#JD!-S5^bov72?m4~~Aiy#3qPV7uar9(0w-+&V$ASwHK@lJ;&@e9~J zm9qyTpg2(nVYY92)PtLsPSFg>A`r&>XDYG1(I;&;9Sl=kZp=c;VOo}Ug00KNb7i5V z2TBG`jI-tI7}Y>6u38I)LKACh=xenMPCa!N4ts&jPHOxY12^h_mV(_33VYE0~@myaep zIi5hoOtc|p0<7xQ<?_Lca5_zK)-~MRFsZ&!%KBpLY+@9o41+10AZU zw-)%;5xD#cCXRR>Mfc#0_V;McX&Eh;q@3E%Edccn*xVHAxD@yZ51MbeEP|SYj=>&` zc~Z5azz;>9%{I$fjxUuDkCv%0JdIOT@aG>h!-D~dGEhd7i!JLuQmWEh-fPp+tV>^e z3GE6g_35UcNpNWW00DzIB};V1T4x3qREhr)Ogc&1kYF$iM z!gf=I_R~0Mp^+)y@UOg4vHF}78=TB=XGY?XvON#4QyPZ>70XXD-TyFSW6>&Temc^+ z^dpv8xQ3E6r*7fIU<@ZKAjXZ&0X^t+(^?+DAI9Z~Chs@hf5#|o(h~f}s(Nb%mlht- z8kU`#q|2PlNL-8^n|d;du#}gJsOLV0EX|e(Tn(-^zlAXTOcr1{d*XM*HUgv4BrimiNKmr2Q+g&5xR^kmLlaCpPfpZ=>@CP`gf^dCD1VX66Q*qAi&}$W~ zmxj$rTk1L|#{=O?4Wtx+gsZ{-BB2mlxBltq_CeEKvP^HG)M;c5J5clQGfEvJ&Tglc z|FR&?HoK3#TH-r-|6>MpoF>+2_-;zKv*&uC0u4oHpQgfn@9ZbM`yT zcK&|q##|Y&k7pj4DS%bw@N|vbbZ&HX#@u}Uwh&*GlI1g!xSjI+r1Cq3m=uwjul618 zQ8!5Ejr?VcM1AY={7veA-5A`TEZA=cjPKn0+Cp7%Ye@w;_6c8eGQom8Epp=7daFkY zj9$D~DE09X^mc0R)yr%~jAtN1ouq(O;^qF=DjNscBWVBJz7kPSU2@jI+s-{wt&){< z7wK?p@or$lIld5{lbOb;mTQCpT;pUe=4 z2V;}U?V7FCx2j^hUW;U(Z`Q%tZQLg@{j_wUk;c!r3r8+j=Ut=S3*&{BP3sp56iEb+ z)#m1?bg4?ymjzPkZqa;MQ& z8h8g-tLLcvow?Bph&Xw)Tn+<a+>|HKc>18YRq?EXOwtwMg$X5}{q}8_D zKUg~SX2^SfW)yw+e$wL-fvD!WA8zp~1crrNTZPyrE6D9&P75ST_zb`J_+MQQNn9 zppRIOYAz2%HvWj|n5|nc@%$_w+quXd5%goUqj$G8+oQ5UjpS@&&@d-AvRt&(5%X=a z_qwi2!F^37Qa+`Y<+2(qeNm85KvRGcTmj<%%asJcdV*I2p}@VseLK{KdcY8DO-(1IHRjY=lA}^k=`p;Bnn0iWX$KCzu4g)oy+!8`v#x-DR zYfBGrsqZHCdUgxDc6NX@U?ldvu9SjDYyGIqYPpKCNP;A4;=xzg`dqJvE}MB%!fMt9 z;GJuQvt`M(FG$VH(NX3OsukV6ES>y-S7X_4KFT@wE!mRj#8TgGjFUxT&_bD^tWS=E zlgFmV@XD9@M@HQoleL7TU9UC<}V zUD>JA`0OQfCglbjP`ru_*~kZ~kJ6!aW|NGalBQqZO7^;h5YH6vQIp^FOc=X?VOzz}ECnysSXl$k@op^ADF~s);*P4{q#5{Mcs*zVgh`3W&KO9?pR>|#Di{6 z;B_}G)mxmWMTG?I&=sha!1W2w&^IRO)2W#<>pEG5t)Ah4-PZIemzp17Ns9rJ`*7Y6 zKcMkEZFPoH30{pGL+P(HZNE7}+>U(}w$f8Rw*>*9=n-3VdHr5jCZ)O9h}hX&k=_Z~ z1-U$vHuE8f8%rT~my=D>bGwMRf%BG=c|<*eu;U{v?Ys6W(-tBIb~nlT%)#vD%t^B8 z+D777xCQY!SWPPYw)%j?>h9X}qU8|q=y=O&p1TvxY^q_rrw`&Y=6GjeClO?Rj*G9HT14kTgNci zaFOBKy8*ZVJfDn~wta6EqLNS@`s((|7dI`s>S+~7&RSM4h3*#W+O7V0rgD}++c@RF z6FTWix&~Jv-`pV+@jaAc<5E_LGjG%rBPNCdlaB1a_!ZCbR1gBb!)Qw0Q1jGoDTso7Q>$|>_5(D z;om{&=y4||x%CE4!aNFqvRYTS+MLtQ}k-l438K7Gsa z%{isjruApU3=<|&8&38qtca85Z2?9CGLL0xX$)GITSgD4{rq^)L)74q4&+is5d5Bm zP2JQ+d0UWnZt_(xoA`+JWEJG<)hG<8Rp$XFp>oc3FYCK?MelVV5fV)qHpe`)yDpvwrQtA8c0vGG=gS((bEx|~Um zghO^@Qy4MX=_e-M}aybKI zVPAn3=Cyr}#wm9m0;L{=zO&V=c697(jxH4lj{IuqDDl(l@wh^Ebg4)M{JaS73DA5D z!C?9?kh2u-aABWtb}z<%$6_V|B9{xiNy%~*@*5&vDtpydD%J96M;3S4o_;rGLjDZO z31R4>V3w+M4vmGh+^upG_P(%xxc$-;Mtg-_@0aX6P9@cuJCuwP z_UkIN<>V>8Z&}%hsYKQS@4|!&JWRDN|4?o#JDi^G7FyJI$FU-Pz!k`J(kk}BpOglY zUBN{Y>iPhfk3$*rJNdk4 z(yA4FC|pqby(gO>_v$s3|F4#;=av;z{!bBh|Ir%#!Sk^}-PV`kI~+ zGXwrQga9yhotT(d?a*~vz?%bNS=G3LCQqMUkpJzb|Hq*TdgMpf-FuduZTM-^bw~crBkw0e2bixU=2hLrIime4gh!r;Lu-xb~ukz zSuHw3EC+^YLnnW|3)+3DJ!{MfCYFgSeyu~8FHCSXT9jIH0S4_^XcZ0&pzKfL0!Ub+ zg?=;LLsQUOQBBNQRYF+ISB|4HMNX}1I9*xAzE~6GGRUvA-Xqsbv|8Z#b7UgOcMiec znHdX}%xR*>-(EOf6)CtXX-eP%U+ep}=!kp4#@P+P009AScJ*KPY!5cG00~}hR#`4+@Mi&ByF+q4Eu9O;YSgLygm0PA(LbPCEgt*}>y(@i;U| zENAc(lKe_vAnrKGwj|`N3-MzOt#sgjcC}j8{g}N>*-CYTeZdl*1JJ9qD3S<0d-JJe zqlwp~paiZxapjw^}yek;m5+)*)JFNMGrVltm8|?y_*TslD1cO;X&lum8tBTI_JXL{*nP% zvjWEo8qXwMn-mZ)aFZjc?K@XpW2V!3uaBx2ZFF1!Nk|Hvzi@#nDMtXyNePEGy|lf{7Y|5$;xgdVQQ zleS#(Ak~N?bG?Y8BtK4Vs@Get2FJfYY=KqYm$EE54>+XyP*L|jf-zHCZ3v`xH~5yQEWYLR^hnhMo#%+JkIkzi0~_()v$NR9 zXO*6ilne0#rGz>%U+XVbmIXpUsz2Vp;6-gPsOxuKC*IiAcdg5YHSf0znm$km>i#;* zG)IDdeDDH`pkq8nouBsSB^K%$T&1@-y*$QE(@r`5K~oq^qXy{0O(q>r;T5B<_Af{n_@wiLU{h#x4bf zRZ0nOE9C$)sl$9Yi@JO;r1zB1xu49ioG|J#v!I{=5}X1(0sFP(b}~I%!sfwtx@+6` z+_@lr*@2bimCtta2v9ma*bW|nzxMv4fMV-rCf^F6sRBmAmQTl)Nk9gDPodVt7&6N! z>SV`jUlcbuX^)%?`1_8;tU0jpI9z5@OmzgoW_VhTj$xHpG!VG9EY$taM zqcC=LS3u#um1rF~+4}4D4O&Jwa%Fx9+t=^KKDe1zw#EIDO|HO8N8)yE33yPqI(-Ut zE((~gAi`8qsQl155Q8Qr5e(7oQ&Xu1 ztwpNOA5-k3d&lYbfPeE>o;#T%?K~o)n63Y)tmdVe8z;bOX}aZW1`E9k9?YP7%0ppi zRxqq$Sd;Vm6q-zIb{6O|=g)h3ii(U1N@*`20f zS?L%(2Y{;;KGPq=p;CQNOWNu+AuK!L6c%c&C=wH)4_W(_aA+LCcc?}uBSA_Z&^b5>1Zlwq_ zP3o-~Iv7*h0iq#bhKL(a!?GopClaAITjetUC~>>eOT8M1i`MmtM=F#Gn-=_z`x3?d z0!O~P^6v3Po8u{R2q3dQP*-P_aEcAmw0IZ99(}{|np`kk*Bj@$(jM0m?&-oYIL8RB zzOZaR{BB3KZ*3t}5UviIaTim8x)Y6^?!aE=a#kr>2BcJIh?<9z;xTaL;2-ZJ?A+VM z727Tv`F;?-(c?73q0uJX?TNSQa#`s5E*7GkZ)sU5eaUHjY4I`tNn(LzO96uX91M={ zNZQL+!UK|kbAWh`$`ymaGlE|tHOSat)I@16I<|grTROkdu>-T$F=u40rQ7505g!Zk?hzn^a$-#nHRY zLF&Vp2hdt_RmmB{w|FNHylR90(=)amp4%de$vJ55_N%q*f9 zQO^55RlDjq^U))mrmh*ANy}WGQ1!p2wJcObJ|sH3-<#^wTC=<&TSgr7dCVH^pc_5i z9xm+^%{QD9P9bQXnjZUFtgd2wymzj4mC=Zz`_lyy_t*HLTOx?C-WvBN8HjjOcu#k!gw>NPLNfIQ>{vo1X z^ig5|mi^8EF}O9hLys)Tg;Nv8K0YIWZ9&6!FKlM-p~>JoZ*=r#pgKPpK4EMgvCtD* zAga&}Ef#;IIl1|4N4C4Z&3cEVJz#yH(_p4qwuS*DNjq9f6aJ+JNL_@Z z#x*-iBHI?*pObL||wM*);+5 zfHm+gnPnGc#+bsOWpNP7+5Wu%I>oxJ6}Mc^Egx*l4c-c@ZRy>uJAont7>)m=W|K0w zA&ynx_7jp@D%Qe%I7trZ^BdnUf}~G=Y<>HAZa%(*cK>Q&N{zs+y?Qeh=)h|+ZE^uN zzugGvwZIZxuT?wUA2m)SM5CkL>xhGj`nfr)3D#Otxdx@W_=_4dBl z^#IGxu+!j(SGg+V6j zX?OFo+&dMVRIhs6oE-HiA1u3dgX^wWt!j`U^CF7$9 zprrNe)q`!K{%!_=Ntmm3fh~;zIiEMCybWWXkM3RDLnrhE_fLNI_fa?Q?l%oo4$*u8 z6Id9C+0AlM5!fH2wNFJ*9uY#tg;V}eX|PldB-Br6@`|G32NH7qsQOtavN#KF%^KKg zPs9(!r%M+6E+fVsl`u4VdK4hbgyN6z^j)TvxXUdogakJ5d&mr7iYckS%T)Wl?-Oy! ztVweJ!ac-`p*G4{N&Ea1@bCCfdgMg^9P%`1$!vp~&btc|+60te-?go$FGMHIxgzsz zG5FV>zp*@dUba;p8pg%NXT)6L`W{X*E`ydC1aet8=X23R0ne6T#kx6;WJ(lg8IJ}i zoJq}v636)P0-s7Bb&$#pe3a!+8`cboh&wZ3ZpbZ|8_W^#T4um~7xcdc`|=C4#OQtw zp^s}$NoK_1FT$hQu=>@X6v{uZ(!Va?;N2tqEEhe&PyusHoSA!}>HPKN33|&e%NH`&FTLAvAD7;cv6}y4n9zE>r-XNc)u1jL0Q7NbkKn{3owIB zBc}$#h5;wsfKzWzSJocix1GX>xh03MR`Iyq_7wdW(uhD7mOURWuz{437nv(hL2;|{ z!N{GD(u|#)bQ%+KvQKbc!m{c!jP0XBZy65sA^K&a9k%A?hfuc17>{)K5dE8UMt?2* z%}NE%1S?Qg-HfLfgz_QPz7Sr82mJf@PEn{-D2YeIEHWy2xGuE^pUW&os zQ~_LfEL{I~U>BnJ`z2P8v;kIA(WEIk!`juD)^U3%TEc}hM!)p7HJF?%U*qH5F3wij zBL|+I!$#8T__+=*2qEXK8TOcz&MKrV2hl;{$ddmE9wY`V2 zYs22UF=aAt^XEVPzL`8i5t&*%Jff(7gI@i0Y2~LL=XP^JaV*(2!&P>r!m{5KFdBiD zeh^0G9-sVt(D%4~W9q(Xf8ru*{>v~`(A8A9&uQAdU z`{5X26obI?$VfRNC4$ooX+ORag!%mT%8&-!6sw|nw}r8xozsku*1WpnfPJxLX{f=@ zdp`lo3nP8ITJc=qX1!50(o3w3gdQ7cer=UP@};;*^mkuwD;u&N&uFNuIa;Q$dyC7? z4QMO?oDvrpyP8lwrrMbPL;_`@Dqi;tiBjRi(Ls!>h^!kU=FQoUi$9GU^~f;8;P2wN zc={+9lqF-tSEP%9+_kMsz+TA?H8n#w6p0`}l7RW96jjNcH`USzN?ylZ%IuS@M*>=q z=5VlKy;^btx%&sIXFiE+2hRGy!UyG>X@S~?tw8w|eAOfEVb|MUXJGcU20tzcLKdF) zxhBSamka5(F#P^8<(!~Zdz|$GZh1C7twN!u-#*AYv@>9U{OOf~*G?10j!awev+O2V1xPJaeU*Tl3rfD1$^;dR_+ z0S+oUCf;mRrXYZ>mNnP?l(diKY+|!MADbw+-Y)2TQo$`Ycx6aCS;mgvz3i{gA^V=` zuHl=#Luiychicao$fw=xT?KTebMX58QSq1Jok2Rum((g-*9|=ZBXYbnN#_^iSlbA z)!)3ks!T^Xt;7>QzK9xHnB*8fj*$#(@Kr~&>mWs+toXGlESu~2gkx()hJN0s-)v<| z(w3Wh#Mj1^wIp-j<>M(kTlKon@N2lwKLMi{;7_42APOVi1kLR8tDOj}t_ zczHB$LbH@%YRc=W+rg(nf96~Vx3Fy-(>v^DM=LRonE0zIqJzk<-p#lp{NZ%9`m*PT zMOg{?UaW`AUn}iAie?K-hg2QgSNPT|dIAO*ta0+$+@c}qspdL-K`1?Z2Ca;C(bG<8a>tj+2@$tT8E7jmc$R&frTS?P zR2gqT8hDMcN0uB!&+?Yl4&IpAMJ$&)36V1|s!$o16D(@6=C>LknztQ$8ny#nxvuNI zrDQeox-$K<@VDIS#zvF=Xi?KFj3%lt_(BFgu#sxB(jsLV&}|UkEVO{8Q)XtlO?ouZ zVCGrHqP;@*^PyC3guImN?Y@bPu=hOOQtVQ621^0!PUxpJZ@Xgd9M-$zq)a80>?_il zh>=m;yNJV9)xqs9#`{($=}c)Q7t3m8y$SxQ)W}b0XAEAEsY6b(TurrW<#t(!UU?C}W zBbuU&$gG6YubE+Hl5WJ_skiPO3{M`|;G$Py^gE<$dnLRj=59;!r&9B{V>}D0PIYY_ zDD_(|XC|sltUcTGqsRBhD~8NG;3)r@_qGc?jV}2)d(30qCg!r{chKWuc3k67MZ+OK z-h1&oplp-JAP?~>ap%|b_yKojx`b(BZwt)-8&iFUbqpY=|4T${YvSBfxu-9Km%iAt z|4HXK$XHY4M>6d^qIX4G{7Zc{MwHglW`MpzS2;%U-V5S8+}ug! zoqJh&4*z=ehYwX}IQ)=cMYoz@MbKTXz$A2>PC#SS74jiuM*e;*emEua4SC#_zW6FN z0dWm3^RTp^;cD!$@?mJR_qHmQHg64T3?o3y`pFY`kpc@~ZDFRp4ncAg+@U3TT?a^U z+UWP71|_fbaavxn=P-9m!g;GGyNIwtl0tFpDJ^8Gdqjuhvpptlr>YZ_$7AovP>Pfc32 z%%%3*=Eo^z5-==dfLdGD(7mFjK(yd0&0}DfDT>O{8ykBZ`kafFbJN<287{RRQfq1D z;}m(7)~*o3yOLvmEvO86);;&!x2B$S&O|-V@yg%wW{4WwGqmEX6yaB)*vlDUlbzY4 zdP(mY85;Qq&PX?$Pjo(ogA0IGCHMth?TpFSY|c9mmYqdSKjw(JiBspNR5k@=yiXcU zsWlvEUW-qt3#QfnT(%5;Hb|M-NTXvBzt4QA=hODc^70;Y%eXMyJ&(KVHrK2~Zb!_` z=QIgyc)9TX8kQ(;YUg9UbiIs@3??kLl0rfyNWT7#CoNy!%ki3e<&`tyZTmn&@YlSF zHv-Si?nc%p60Te;*F{2lEQoT!>^Ut`ID-_Dn$_rwn3TjSXVXj{N$tPl7sqeY!|C5z z$81$#Zy4pXwsj=Yq<1fSc3lK0NG2ywswXU)yFC6IQ`*&0OcssiEXnh%>df$z2=CwFLav>y~aj>Wm5X6 zwGw(rX)NKdQW3#?8h@zAYb*;nceIALj(o8J0wfM{BijId287l(rr0o_qRkp{3x4Ofrzf}MpJHd8(bHVOCN69wE5TLh z8q3206LLSaD_i_ujT_Ir2zdsClg4%Z-EnJ+OR_IfP#Ad3%x-ZMFp3gTl~lFqaA z0A6CIEIVPU;U!o6>+Xx(`y&Xa_WZpNSz--!dZ@p%JOMH1|5XTM+eZ2YJ>#qZxRF;o zh6j+!SfA*fs72{RE@2QXkE&@B+{1A}0gwfi!iQB4vz$Y2trvJ5aJQbsMgt+k6KW$a zmK!yoTvNE~JFO`LVMg%Wd++1@9c#t}kYu)rM^~DHct+QpndHra;49+KbE*DJAp&^j ziZnObV}~s0gVfssMyMLhAf*jgP3QD@-oG)}y!ax@!agtLNM>`F+CIFfgQSwQi3)u` z%kF(U;M$wUDLOj55|?_tWUm!yj2}S1dxCbhJ1!^~f;KSZS*1>ho*S)AdQV`3n~$YS z=BKZX52Kn;3r5+D2s$Aqx+zpXt_qPxcQFU-2YTN(cCqZJ{Ut;}=_T}Bg@m#dzf0Li zdptu;1Z}!nDCu%C=~;2}h5}bhCn@C3#-7%wqC?1Nu0a87_Y@My<^q~?CK4e-EDkCt z-j%P18}V3pg0{;_ftL zaChya{SoA>!tEi&aX<(lR>?D}zG>`yq{YaK6-rX1ku98B0IB?r3Gq-DE_7xZANyR^ zw_FtP0SPSxM#@@Y2|$ax*;zzY3=8F{UyWV+u2H#|<%K#cXtEgKvbj#F9u{aBO{y@3 zqpAA?M}9v2odvMv0I5?t0=5Of3+C_qD$J`s`70u}W#MmK_+NzA{%4(Cx^4sDSz)mk zSl$4j9oQQkG1>3I$un9S1;HQ)X})c@gaC467m(+13!()kyc-AH=1bt(FK`34)?kCQsy*;nZ?>E(sDYIKOcV5JvN6i=S0m~ z2-5CS-weV6TQGzXF!b`~1535>C`i;G$qO$X-2jMB^Q8o~a2*m^oI3j{j>8wztc*V)nua8$oph1-y9B`=4PIuwCPaVi6N zlJN5V&Z0VeY!U$UxljG)r95{iz{}@cN~rhlQqm4t9~a25ypSPL*7(uJkuiX4c9r2nB|c2YZ$yHIXj@8j&)rAiwaKGCdlB2DQ^SM}@_A^odC5z`N^4%<^Mo3F1pZhAe= za{dI4!@&*xhZnC@m!(Y(OibiO9LTWsYFek_$$uS`k;7X#&YH1Q$0TQ*=b50`O7CR3Pld$Lq~0<1x96gFZ@PY=oNk>@UwHea?Z|GXi@I(OM+ z{a)BmFkbxNe9nA~R3t~WYBx!S*d;(L6(t*@hnV$zzm`i+-n@j}s-9!W_Xh&0_+qFl z&YcA1qyT*W636Wd{v#?90>#?os(9rOSx>= zT+GXJx(czENE~F$d~S9bVW5bE%Z=k~I{!YNOVn8=uE_DT+fu{y5@-3?<_0bL)wD(G zAQV)0He+Dwdt6(u-qmr8fA+KD%Rt(7Y&pJUxD|E!()r*sxym27bgi?`CkvWRX5V@z z`BFV(B=|e6&8>TO7I!`ZM{?Wz6QNA0k|wmu(1>g|{{7RYBTE)SrW0fd(-Hgoz@$`r=N`btadMCc|hlw4fdB@6L&WV7S% z6unyVnIMGy^5(Z|IVSP6yVLX*QybagR?5k|_GD3FX;Vz`%0{^e!nxDGEAYdg^zkaA zwXg+?W_+1@&M}(&<<3rDAJu9Z+d876Pv_pV%x$(UFPZxR)L}=b#WifK%|2LGs2>}K zwd}g0zM3Ai`cjmiN056yV@>eBE?g}tzcsnetADUYp`fcYe|UHWi~Q6ok4%s1KkLp- z9~Z7>$1Xy`AlOg-&r+*HM}sSfgiN0fF`>L~b9u4jbb*J4UVZQi1qC+j|xjz`CMuw-C+r*EZlfY9 zIyz0ZY2<~SR?xRJr*!Um+4a;=iYn?0^kd6Ehxi%6c`0xjILu96=>Q|yUF_;}%*bi( zXOo4o{XeJNY-azo-#`BGUu0}AC->>RWA|?U_g2UMEZP4*tBOc-V{PX7Ygi+||CCgd zk4_ZLZA)dI$@V6#X6wj^(_w6mpbyNO{$EetNh{#CtU_1mOx4yY%@$YcM24X=GOh~5 z!=`FMG1F0v_i~0hw{)Pnzbx$JHC%k0uObX>cS2E zojPPOZbO|*0bizbfouGCYZ)m}uG)KrLkXBb<%b%WG#;$An7*U^*uoN<(}=X1qrT&S z)5;7aL;fZ#DFfk(|A;Vf#k%_1bW#k`l->-`{8mnEcN+k$dm{QZ$%q0;$TFnBW=al# z=d>ifx;mzXt(qiV*Dl28lE0lOI<-bUD&W-ME)dh%mQM%JNa2s)-i|CBYkRkZ%1-!3 z^^b8f0_qhU9Af2oDj#N)tzVq_ld_f~2F}`|5qSlSbk@~;RppY$#)Q=7KhzMf0Eb

ggIJ#X`i0=Ys%>6pJ((;o zA#(~)&wfDbUsh!%UdZzdATgS!Yi@C0@}|66gq+IAP>mq7ygKJ9_L zj=m@N0jw*^X1%#x*d2ppf54mp=QM0A)Nt+4W>*EL~$rL4l z@YJIbwpTBVpy0l(=i7!P4nDbgpZhR2GNlq7Y4@p()(3F4%=G~=Ggf3v)5A)bfST%h zU7h{(6aVc(Vy;Axw-h_fY<-?XZ2jCR)VtrYvuYse8Wx*e{#B!b6YB1MBpxi_diL#` zG&nAQWaU#-4ERg<1M{LrFmt^hJFvCuju`(rhZ_rFJ`N7Ldif~rf49y4ZD(>|1@qii zdmgF%A?f$SB6QiJu5#9HBcr|8vT_30Wf&$Tb&5CA)UNaBlZ=$Gb6p zp>l)G+3fENrxnEo_75CSjA^!B>7mRmy06}Ty75>Leac?X8yw4(aQcbfp0o~Lkxc=k Yx6ND=BTgkC|I4C#1*Tc5apTYb16)iB@Bjb+ diff --git a/admin-guide/guidelines.md b/admin-guide/guidelines.md new file mode 100644 index 00000000..0bda5578 --- /dev/null +++ b/admin-guide/guidelines.md @@ -0,0 +1,23 @@ +# Guidelines + +## Version Control + +Everything must be in version control before being used on production systems. In particular, scripts and other software, SPEC files for packages, relevant documentation, Puppet code, etc. + +## Hiera +The naming of the variables inside Hiera depends on the scope usage of the variables. The variables beeing used only inside one specific class will be named `base_class_name::variable` where `base_class_name` is the last part of class name, without the part before the last `::` separator. Example: the `permit_root_login` variable for the `profile::ssh_server` class will be named `ssh_server::permit_root_login`. + +# External Code +Although the installation infrastructure makes large usage of external code the system has to avoid as much as possible dependency from external services availability. A WAN outage or a remote http server failure should not influence the installation system. For this reason, all the external code is mirrored internally in specific git repositories. + +# Servers and services +Every server should support exactly one service, e.g. Puppet, or FTP. This makes the services more independent (e.g. for downtimes), simplifies the structure of the corresponding Puppet code, makes it easier to reason about the environment, and prevents conflicts regarding certain configuration settings. + + +# Naming Convention Nodes / Servers + +Node/Server names have the form `lx-purpose-[0-9][0-9].psi.ch`, where `purpose` is the purpose of the server or the service provided by it. Example: `lx-boot-01.psi.ch` is the **boot** server + +The production server always has an DNS alias `purpose.psi.ch` and clients should always use this alias to connect to the server. + +When putting system names into configuration files, we always use lower case and the fully qualified domain name. diff --git a/admin-guide/guidelines.rst b/admin-guide/guidelines.rst deleted file mode 100644 index 8bc43997..00000000 --- a/admin-guide/guidelines.rst +++ /dev/null @@ -1,86 +0,0 @@ -Guidelines -========== - - -Version Control ---------------- - -Everything must be in version control before being used on production systems. -In particular, scripts and other software, SPEC files for packages, relevant -documentation, Puppet code, etc. - -Git Hooks ---------- - -`This repository `_ provides a pre-commit git hook that checks code compliance to different standards. - -Hiera Code ----------- - -The naming of the variables inside Hiera depends on the scope usage of the variables. - -The variables beeing used only inside one specific class -will be named ``base_class_name::variable`` where ``base_class_name`` is the last part of class name, without the part before the last ``::`` separator. -Eg. the ``permit_root_login`` variable for the ``profile::ssh_server`` class will be named ``ssh_server::permit_root_login``. - -When a variable is shared between a client and a server, we will prepend the variable name with the service name. -Eg. the ``grid_name`` parameter for ganglia service, used inside both client and server configuration, will be named ``ganglia::grid_name``. - -*Note:* this could potentially bring to conflicts, if we want to specify hiera values to be used both inside roles and profiles with the same name. -Do we want that? - - -Code Reviews ------------- - -All code must be reviewed by at least one other team member with write access to -the repository before pushing it. This will help keep the style consistent and -increase familiarity with the code base. - - -External Code -------------- - -Although the installation infrastructure makes large usage of external code the system -has to avoid as much as possible dependency from external services availability. -A WAN outage or a remote http server failure should not influence the installation system. -For this reason, all the external code is mirrored internally in specific git repositories. - - -Servers and services --------------------- - -Every server should support exactly one service, e.g. Puppet, or FTP. This makes -the services more independent (e.g. for downtimes), simplifies the structure of -the corresponding Puppet code, makes it easier to reason about the environment, -and prevents conflicts regarding certain configuration settings. - - -Development Workflow --------------------- - -The general inspiration comes from `this post -`_. - - -Naming convention for servers ------------------------------ - -Server names have the form ``lx-purpose-[0-9][0-9].psi.ch``, where -``purpose`` is the purpose of the server or the service provided by it. Examples are: - -- ``lx-boot-01.psi.ch`` is the **boot** server - -The production server always has an DNS alias `purpose.psi.ch` and clients should always use this alias to connect to the server. - -When putting system names into configuration files, we always use lower case and -the fully qualified domain name. Good: ``boot.psi.ch``. - - -Names for programs ------------------- - -Scripts should not include a suffix indicating -the language they are written in. The latter is an implementation detail and -does not matter to the caller of the script/program. A good name could be -``pli-system-info``, a bad one would be ``pli-system-info.sh``. diff --git a/admin-guide/mgmt-tools.md b/admin-guide/mgmt-tools.md deleted file mode 100644 index f816dbbd..00000000 --- a/admin-guide/mgmt-tools.md +++ /dev/null @@ -1,6 +0,0 @@ -# Management Tools - -Contents - -```{tableofcontents} -```