From f6be70113101726647794bf13528a0dcac1b0e99 Mon Sep 17 00:00:00 2001 From: michabbs Date: Wed, 23 Dec 2020 09:17:19 +0100 Subject: [PATCH] ZFS install instructions (#37) * ZFS install (for Focal) * ZFS with Docker and LXD Co-authored-by: Gauthier Provost --- docs/helios64/software/zfs/docker-zfs.md | 71 +++++++++++++++++ .../software/zfs/img/install-headers.png | Bin 0 -> 38802 bytes docs/helios64/software/zfs/install-zfs.md | 74 ++++++++++++++++++ docs/helios64/software/zfs/lxd-zfs.md | 51 ++++++++++++ mkdocs.yml | 5 ++ 5 files changed, 201 insertions(+) create mode 100644 docs/helios64/software/zfs/docker-zfs.md create mode 100644 docs/helios64/software/zfs/img/install-headers.png create mode 100644 docs/helios64/software/zfs/install-zfs.md create mode 100644 docs/helios64/software/zfs/lxd-zfs.md diff --git a/docs/helios64/software/zfs/docker-zfs.md b/docs/helios64/software/zfs/docker-zfs.md new file mode 100644 index 0000000..52c890f --- /dev/null +++ b/docs/helios64/software/zfs/docker-zfs.md @@ -0,0 +1,71 @@ +When you already have a working ZFS pool (see [here](/helios64/software/zfs/install-zfs/)) and want to use Docker - it is good idea to configure them together. + +## **Step 1** - Prepare filesystem + +```bash +sudo zfs create -o mountpoint=/var/lib/docker mypool/docker-root +sudo zfs create -o mountpoint=/var/lib/docker/volumes mypool/docker-volumes +sudo chmod 700 /var/lib/docker/volumes +``` + +Optional: If you use zfs-auto-snapshot, you might want to consider this: + +```bash +sudo zfs set com.sun:auto-snapshot=false mypool/docker-root +sudo zfs set com.sun:auto-snapshot=true mypool/docker-volumes +``` + +Create `/etc/docker/daemon.json` with the following content: + +```bash +{ + "storage-driver": "zfs" +} +``` + +## **Step 2** - Install Docker + +Add `/etc/apt/sources.list.d/docker.list` with the following content: + +```bash +deb [arch=arm64] https://download.docker.com/linux/ubuntu focal stable +# deb-src [arch=arm64] https://download.docker.com/linux/ubuntu focal stable +``` + +Proceed with installation: + +```bash +sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common +curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - +sudo apt update +sudo apt install docker-ce docker-ce-cli containerd.io +``` + +You might want this: +```bash +sudo usermod -aG docker +``` + +Voila! Your Docker should be ready! Test it: + +```bash +docker run hello-world +``` + +## **Step 3** - Optional: Install Portainer + +```bash +sudo zfs create mypool/docker-volumes/portainer_data +# You might omit the above line if you do not want to have separate dataset for the docker volume (bad idea). + +docker volume create portainer_data +docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce +``` + +Go to `http://yourip:9000` and configure. + +------------ + +*Page contributed by [michabbs](https://github.com/michabbs)* + +*Reference [Armbian Forum Dicussion](https://forum.armbian.com/topic/16559-tutorial-first-steps-with-helios64-zfs-install-config/)* diff --git a/docs/helios64/software/zfs/img/install-headers.png b/docs/helios64/software/zfs/img/install-headers.png new file mode 100644 index 0000000000000000000000000000000000000000..9bf3c22a5182eed721877e0d1fb3acd3203a8c01 GIT binary patch literal 38802 zcmb?>Wl$wcu;#(t-8r}n4uiWp!vKRH+}+(>1|Qr8cNpB=-Q5}7-C6E^`+n?3yomQ= zH#)kbBD*T9Iyb603bDeer)0SC-V*@8F7{AS zcT(1OCAD*~H8Hm`CUtVRGbS~5GdBSM+*T^mOkD`L6N5htv1%drstNlXO<-zYpKP#b zWfP6c)~%iCV^yKHf(Za=Z@wR%V;`4H$$Ii~1^d5h|AMS)o+g;)H$I;4)|cJ9JKvM6 z-*)Fws?xPdIz4=#eL`NM(=M{lpPqL^4ip!k7}`CRGGjOg201m`e4n4Mb36sUnn^r+ z^ApbzqrkuW^zsu=T^KK~S-5uw)m&u9yj(C}c1|~{3o5+KZU!G#^l^2+5NTI?J#=qk zz%G7JIc;2eJ@~sm^53-j9D926MfrJQQNP%z?Q_uEcD5T8EH~nMOUVp9V1?iaK(lqe zy+1UQO=$ytI2}@K|6Xo8Yw39EOx%1ps&O2gdOGu)h@_E3dN5u+MZ90$^)_R|cD>-I0t-0MaW)3%_;qqo~_kBX3;^z4x| zgm0kpM|4f~-1tsu4~VMg#^xr=H5VjK9pkOPO*6d2h2@@kwjceAjVL^llouHR%jfDW zOjTq?_#+t|j#zN^2O5$`@Rv6yciGqYLwYSe+U_=uyFPtV=ijtS^Xw>j?DTgI)-5Z` z2O(h545_Jh!SSk>gZKW__P^{9+UGM4LAURV-UebeCB7Q`5(tTvR=C4Y_l#(*yc^zR z3e=z=o0bcntD72Dg?+0peNU?Y@7zb{UL*m!PQB0F(1ifx>4wA`d& zIT@tyk3nDc=h&jmwvo1g$aTd%S;uwtP04~f!)<1`D8pmr$X3H~U*V*vD%*6NzjnV$ z?x^Sb7l#eQ-zQjVF6j|GyqoE`tKW!9Q@Y%FnTEF#CEq8kAeKe0$5?5(M`;a>m~9Sb z?QNT1lA2N6*;wAo+MZ1Jqm&;&MiVs7n?~o38y!O{=&N!BV@bgJ+yD!RGtONDs=U59 z)3v;Deo?Kw%z@H1T}#5vC$>iYlTu*3w4gkf;ZKw8vvvhd^7>!NleIjB7&oU$2qNn3 z)P;^NmMlae^a-i0`R?^t1I($ZKbwcP!&hrh`7$r+#|gD(y+&;82h?`J!D~F^d7UJ*Q5tc_urdDS zZ<)YTnU&Nr{d~USEki9{u=8e2nM1zt`p$ugGy17W7Xnj~*_P~*M`jUC(}~;wr}nwxqGFMKR5F^44FdM8IE8<){ajLU@e>Y3;xFna<$VKD;-Zjg5}L>80KEi7P@0 z(#Eaz-?R5l2uzC>z|It>VTHqrm4A8AQ>M~n2x6H>FwBzAp3@!7PL`qj0hx=PnTqr` zJ_WC9MnZfFt?74%-SA{#^#N3d0&9o$X51PtWvWDZX3fUP%$l?N-|JLqO4grQBm4aO z(sMEbKBvu==w>&G2@V%9Lf#XzUZC5dxRy#a+4GKFSAO$f@|a5ZiEE}gZnP~6akU5Q z37h?6UK}`d;EClui-MdexYed|zfZ4t&Wm>HNT}a@lvI{+*#q@|8&{;f?M_eVvY91q zk<*&kM(Mf}XZqY%CQ9-V;q4ggbdu)&-qc%pN%noYfkE*|Rn&YZ70wN=D+WItyEx0t z9i>pNKsa#|)bwqS{<+2QYgPO1Dx;%9kIdL3$>0uey48!-E*rn^Xa=9st|~o@`3Fn#JIs&FT0udOcXg8QpUTrd-zUY9VlXBx|CIY^ihUhM^OpZJv zUp7HyPz}OJF>|%NtHAB%F+YqzQM(K45$w=WCdpKd>(GlWSCx+?^{Ew-D{}>qZB& zoQ0}&;wub%{vP8z808m%&FF{63LgTW9!z24dCH2%Db|>e)><+3mR53iVN$IIMBKJn zn#Jp+3$RSKVw6ZRzcGQ+1fm*2V8r>>`iwJp@8Npl=y}bi3W#(feMFm#Oxf``Q9(7| z^T)33LhM&|SN4Z6nTE{3+udQk1+_*Nr4f=H<(E*P=~&czh^emkOaHi9Hj_I67iwgHTLQ56!uc zw{S4{9S{q%KgeO(+5N);p}I7PE;{XSB_ez*YeJV&pipmP|5EH2Uk2<@ zSQWC*8Z2justMvRn79_lNr$rM5&z93Z~M0~YLmi!E%2Xz5HG(LpNOk8;9hlw19plg zNRAk(+pjI1ArGy+FIRBHQ@)nsdn7|jvi7`G^6$6>QWm`Ujncm^%9*Vk7%AIse%b%A z+^)7>1stCoe0_`EKQMgvk?K2SG%OUJ<_vCtGExV%t2KrB*v?wdf91x#-J+GB8GBIp z&=7RsCR*Q%1YYaAx#Mq50||1{cBgCTDmzw1T#U`ACNX(tofEBvDnJVrU&TDf(IWDH z8qjdbkCZT`k)ekLTEJl-eqktD4(yBo%PIxFtlQPP4Yp)8GT5ePeVtb{I=%fGB|)%4-AQ7I0x zNg8n)VAG>QXm*)GAU8#{q@7Jct!DmI$A97ymO!l>PY`YP=12E(Lr~^^J!|8hKUx!l8W9XY zy+P#ToPsdo^~nBhSHUQE1zAPI_dbBA6%fsxmOxF;@dl{)_9O9ZkCCo;r{RbwC2DO! zU7Cm!J409d(j9nPW!j9ct$xJ9J4|w#|Fm9ID><7FWJgqd; zA=U_)dmT;MFCW+0h&PedB#P-@#Q{s&D{X7xu2lm?ffLKYk0xqe#$Zz#X~gH$&@KGG zRsDBFIOfi#DkC2qmWJ;h+k%z zl;Bj!_UE3$>~ycigrB0%TiQuo+zMib$=AxraS}BBN<~M@bEuAs`cefe~N_MeE4 zLk=W879Pza?HG}qJb5r3&Z#yYBpwWlv!*W2j>j~{F;_2t1fh;#ZSt`~WE3HpfVgiZ zVmD&btjuaddVV;FPa28*{<_kSr82fFAwf!B76OC9<|l`FaI$}3eVYKQlewaN;m~H? z_)GRLkOb2N*yq8zHKZ!UD)wvEt1PJm%-cuxAz!w(=|V`21*~{rDvZ;t7)!=zpF-eL zUSc_uGqHZd&-AW96^-u!tHm6$!p8B5$sp48 zc;&sLkOa*|E1ivk;&8QyxcW-Fi}-baJ66vrvCYog=rkqTBD}E*4Hb}cC~%9W@$d|V z;q@NY?F+ASnA84vR)>K}=pvDE^lPJVozj~iGcR146^UZ!@@lwEV#k^-0%dm0N{nFs zIwZAJF#;Ehaq;Wqj39u6k=cdpN}ljS80c!%~^AqXOmIducV$yr*sh4dB!!ZEtxt4duO<{gMUj;ul)-2tC)P)vst~_~k|?O7WmjU7 zD;htjK1SEHwrf|UlU)_C3%SHCETGLiwD}_=hMpns+~ZdNBg_%>hd2=lkIrn%HrH7= z6FIgKa@J(oVFm*@kOgaJpm0bK^PZ~5n8fChE8KdR&)EH^z!_siiot_vIVO zL?{?VUp0bNC#@1$q+p-d%(wX`b@#M1SAC%}7l%edK9_hCf4_v>fcu5;z=+6cMRMFQ zTqhR_HaO=PRgvz(ECukZJv_FHfIcx-U?*|`pSq^MD!!c5H5kJXW<+Hiaaj%48c)rQ zLA3-Nd7m)$h&TyU%C%;`qD7gK4~2#?rUWyXc~RhkMQ6w_j>Y@b0r-0~f4<>KTRlhq}L22MJVFJ4Xobeq%2)W(X~1 z_ok>BOb~xhlOIb^cxOmYq0W5O`pRF<`3JbEC_H+$$2BV#%RB9 z<6WQ%X=;MiYCaFQOPu}g7r*&J6f-Ddh%jy`Wdg^e5!lP(A4=aB9{MGT&Ywf53y2P; z-MYtQUyoNV$taPjY%*nTosyR(2cUcR$NIvqTQIZDCcNG9Q!6fVC2o}Mqzge88%^RB zqzoV-K+|dGzUGQNIqwz{QGoirje$=C8SKEbRcbl<}mls z)~x*S1Y|=`>x%PO9m2SORDQAFHR6yJM9U26h76>2nV!)o`V_dojWV7xwNf6o9~%)8 zb`N2sOum}gmrQnB+7D5pUcNT^_>fZJvI_au>!M|-L;v7m7m@`13SA7U-=QanOZq+a zmd;-)whq}W(BV4j1w}R~o)P2vN=X$Odu{Gt%c<_HH1XyMFsIp8!|+lqQ=|& zMPl)xjfUG;<7HI@yiv8}GtYbA(rGv#l3?(@YR8|zhG|dTkwU*)_f{@SrXNbDPy5Is zfS|tZC?Vx_6UZ&$qpvXI`K2Nr0RmX1iuMZz>T%jPNUU#}@}HwC_Hmkyt+vUPECc@% zsUQ@K_Dli^+==mP!1Bnnjt3~LecRho>VOFB6x1yC7uJ6Tt=>~S9}ZT>v++7MUP~4? zV%lAN36s^npG;>ZQpN<^Xb6jBxE|_qGVd5ur(~7RW6}voXGft9o!p>YRI+w52J&~b z?ZN!W$3&FilCYmo9Pj6WxYW%~_S2CK8x2fE(hkno5&-8J+b#c1I|8*0^q=IQlK!48 zVRHyUB97kHC#8h8Lt;CI)HRpFmn0&N-XP@9q)jzKsx5Zl!faDX0SjTQtnFREe`jjY z6vj!rZHz9&oFQ(*IUWWlZ#WHr+Lg4ek5D*BQwYXktPETkc5<2>J2ih> z*PQljVQ#s}QSZGx>wR|IT7-kYHN;}LsKKLxbjN#P)D&^xvPMnFohwvYI?HKhd`cTz z6v(C`+l*2&+LjC(m{R>Wyb>y_)Z3ja4%@VW)qY91m>#y@9?9`wG!9U|#Y}%9O{Y!Z zC}|pdc4bns^72a|yM!e!qe@v~GDETVDDe$h(mmthgo%9>D;Y)9Oi1Cn&siYFTX{ic$ucf#Mv-Kb;h2Vj}`X5c0=&`TZ1o#@SA+MP{BU_ zs4kgPBT@xSp6|p8hC1Z5d5h}V5-nXH+M;h%XC#9&QcMWs5+CC|fR7Io{fDdLPIX-E zl367!H`K2%7u8e!die0dl3oy-T7wS=U{%o0I!~0{m5%jB_hHX~3n$TqzGF!6>GiGJ zddP(RjY+pSGF#GB3pwz7lXy5h~^U}2bUbWG@ zn4)^6$eyIPwOA2KHyy*7$_9GohcxQTD97DZ&#t25`gf-dJ+vA_<`TL zpM6z0@d5LzPIRJ7pR!*ZZ%f=G!NB6&e&H3$w+ZvLn-gR_gp-$3l=U6-?NaH)KE|Cy z4BBQyG9vJ?8JNu6^r0ElEOpDk)W(;fDWXZL$`^S7PijWoBWu-4Y8LpP5PIFcjZ;t9 zC1d-@evt|X1>lbqcS%I4WnvRF$QZJGdq0Afk*mt0`n2Lxvm*J497&9 z0cZgc9vEUCE<>d`4?YRFWbDJCdO=s-Hgv84Oa!E>8tV_yraFiN z0$$bayq*($2V)tg6YNk!;~n>ZQ(=KYs3Kv8Y5G>GKl~HTQuYC>>WB}D?eB)(Zw0=e zZ*f=UB!4(ZG1Ei*M1V*~n}c?9B5=AL{q8tJnum~81yS_%{`%Cg=6(6Qp1#?nE4z9J zvP0|7?mIy#pSa5tIWyWo>IXlM@_Q6}rL&8hd-5REP~NM^aQ_5DU^l!b=P5&I<7gMZ zOnuGLHU$hWubv@9(~9IpBTDEgZ8bAw#|ofqbx_xqYw7vNVmA+UpM*%8`RM=?0|a9< zbU%`9d9c@{q7f4+EJ8ex12#Z@Y8s4JW_#4a?#^crzNnygPp=Egz5i09K4!HD{QH1# z1JUmay~7}!MbYs6-Gg3KROCg4AU&jwH{=G7pYLa$bqyq+pFH2kM21|63-c~yieqMi zivvFJP44xT!6VwDbbA;5aoT4SqN<9xcUwT>1f&U808dD=W4y(awg~c1MD-pJXA_Y@ z-Q#>?e-2%S{w|tR3OB+o1s|A!$n4x3isWJSGaHustC@YkJ_;LKP8oz+-6Qtuo|K(i zSHaOstiHEE)cP{*E~)x9fHx*Dd2%%dRfMpiZxYrKqYD&x26bt};TFX#fa!r!{1&L! z&4o(>E5nJI*lTJ$g^U}pJy3!=1G#CzOpn=;w!KcIv~&K#CpYa&Plb0b4Xt=lq6>w+ z*L9kOCVb*|;CLronoN#AAsYg#XUQ!_DJnJ52aDh$jz}5I|*j5PCNnIXOl!gwto(RIE}XxU5xhO~hALA}Y!5 zMF#H|Kj9J&UhgHOgE4>F-nTVL+F@pK|33<0jfl3(v3BYyh{Irh1o)cz{R&I#XRG)8 zDlc0VZ{B)HAy6f;Xs{BTiE}-s;z~s$G*m&j*qb)z%uA%xh!(u%l}F3do_eP30>!lN zc0Sm0NCCgF%~-qkRGOF@Y)#?x5Q8ysFdIaxi4?+T1Q)fd>%qTrp1>SWU=LOJA>DZg znwWF!sfpydY&~ZtL$jEe9s1RYg?&S2B%7{bo=4;@&B=lI5+QI|$nEE{qzSj0frmbmgky&wJv zET=)(XYkMp&L6m?l=B;Uq!q{q8Q^_J;>Q4M7r>3H5aD-?Y$w*;Ez!K8Sew991+mq^NT5q0tF z^JO#VFH|lz{DupEonC$@egELpSQCGuzp+{{jPzV`0yZQ94U?an!&%PW&X*Lcz!4sr z)1W=Brm?}l!KemHY(5cC0hmg>Iokk;?_v~DY@+hCueNArU)6aa;thZ;=%t=0r5uR2_@^`>L=ul0m_g@1eDWbaYh^m%9~%h% z_IABZ{=7OMcg?L}2JaK|LvHKaVGpwhp&Y0&lWN7lAU)V`IhD`?CH|)XsXs!(!#=f2 zy2pY$kI~gQQFZUS?iw3fPYljV8Q`?rsP#BJy`(bJFx}7JcnXqH;i-^Dw7PeLj=G<_ z6}~qnzw7&PAC7u;z+eaaH{%N&h19Xbo^#&hJ9U*2n0laXi~vtePk_hg>8l62Ia-Zr0Pnh(ZWNB&ZAZ{}xE(oaaQFEZo_l zcoHJTw=Vpe8C za4=NY!grM2UBR@~#W)6?T^ue8<{Njl<3XSli!j`Jp8BJTL@DnSHRq@XDwX*V>E3n! zY*@){-q-vV@~}FB3i0~@Ah`(_ZfAhow6Zk{@4c0soIA-wq?U&%_!o8YMd{T`pTQ}l z_tESSb|Im5nrD2~lQz)6zkvGo%`;x7b3p!XM$pSfz*^}0^Vq>VXTW=I%68P3H}-qZ z)vZ+@JQdHz_ttlbAqD^gfQmM!Id_+)DZB@*c=8WJ8dBu*+so5U*JQF}UU9Vnn~H>J zAyK@jeg{zxhg+-7?aJWd{SW9TPjRHvGyJ6uEW@K37?H4=gvSyEnxl|v0M`WA#r*C1 zT1_kQaYhc$Ey9kx{Bu|AUR5@Jr63{>38$-HsgPH-kFbv(Y!E$!Yb~ zG)oSxlIE&wM6EBlt4y6h|Fv_{g=>0f$RP}SMTOG#jO2d+ef43th~W)%0$h-^lCSE~X+)KVkQ zpl_w=DOsad2z`T6F(=Ok`vch{3>9<$_w7(K*j-y)oHE7a&Z-1}_y=-y@-3}7K6}TU!AzPg%l0E-Ldlw{ACLRi_l72 zyYRumgv1ZJaR0;l-7B4odaH`!ScwBd2JqUJq4+34OQaIPz8`i@V=eH&0mRMO>=uW& zX-v#v? zx1NV&DNCV7Yogbv1O)36!xTS*||fyd#9^5bu8OkQn1FoTuc9RPhp zBjVTkLzKSppR*)VWuJgVlt>V?_@Q^QSyqSHVLM~WXEM_9o;aQLX0J3_0ZCi<=AT>T|< zsd~G}LHY1-fq-TcTYi3bRQK4a>M1>oU4=BEe{9|g1y^6*F$9ATf;#RrKWmm1C@+cv z^oLHOu#D$jj0T7Rsf9Z|8_MB-{XkxOhd#;fXqePHyRd$lUfGVWsIJivOlRpv2GZ@R zo+NL<0{fV0glz8XnI;KuEO$%;Dzj3-YKd&d0{o!ezS!O>a)*=mZa6l&m;>9CpLX-z zw4t@J;XrSI%?8=Fe=z@B%w0_C>)jk4>L#4?Ix1SJpoG3_udt2<)lXJomlOZ$+Id_Kj)F#%UhsM=@cyK{Gl zPW77*PMzhYDx(+WHo6Eb5ZduH;~49+5ritrDh2yFIV_Ok3gcfv{Nq15MPQ|0{}l&O z`1~stK^Od23=Gfyr*}|npW?qv<#DW$({+s(L`L~fca~pkALGJQJ}~M^|Gtf4a47xp zZ|lDpF117bKbif%xv2l9*8kzB{uf&R3-N!~fdAL<|FrA>B}V-puJ!+qx&Qai?o*6D zGAr(L?98HI_{RytSd5Q0uLra?Lv?Sg za>md?8zrQFmP6sQLp?GJMi8N|h|q+HiV2XOX68ps{6^QS0cCp*233E(Meq^V_#Y@J#6H&qxe*Oz@cnnffhlg{;N-AXEeoO~04lbxL73M63&2 zLy~%hG5GGc1eKKe8GdW2gu}qya@I;FJ?d1uS3SG2A#f;;Bt?;oFNHNWPs0|V2qJT; zp|t(xNt7}4O=ybcFSET4Pid<?zwpaIt3h9Y3S%W3`~1Gq+~COajBDnOT$+y&O4v)o|pZg8$GRGK(y5 zrC^scZ7zeCMdtKCvDBb)WdP`7*`Q4B6oAe8{Sq{13x?=xv(TfQ!WBpk0l-dZP1P{@ zfZ5+UmK1+I_4=V{>bux^F&F$sAu*KoCBjgyu9Q2!zi!W*w82=Ss)RF7^p{@7Bm&=H(4TrOfEzrM3r&vjxgc! z=7F3e@p@H=1UC+QXA0tK+jCPQyul=Yq|I^esiZoTAi3QMxI^l~hK_?avz$>($Q9PW zD2Ata$bjEy$7x^}*5fh~5A21lC&~efAjy{$^{9T=`4Ae43V@44%|GmH%mXYe1{egY z@H#bim3kFl-XdnKPZj&g2e+{@LxGDhg2$kV{*^TXHh>=L3=S9YKKkBAJy|)m+k2rId zQ=IqR$M(9W9SXg-`!Il^HD``3>Jd>{(Dv*^_T$Q=_#H~A8ew4}U==*hM+pQ2!o07` z29HBy?gj&cr!kQ_D*+XE%f2D$J-{g9a6Lqd%i_?yqgvr=ym}pdh`@e2nZa#}zGj=i zY>hFs)k9z+O$vSmidO`ba$xQsJed{X8f<~WCs|zvku+(39_-1_$4w!eVw=vtM?6*= zQdp?UU0DbJ$~$(%Ihx0#FG-&wvRy7$4bIVD-KMN~TKIstaU`8{8lsJ5QrPuuV&-~B zk*ur6!idMnBJ9f9q*Co7VneUudK4~lF}BvHlClGH7OgZ_k{wZBFI*y@*_je}u=}jY4Rnz6|KEh($f7 z6nGb1oXkO7?{GU2)MZ=9eMw#bdm7Jy>^jmw1+y9njAl?e48r>=6%`7J!@eL~1XV~S zYGw=7emluXKLxPH$FvP4>N3Z;?VCi02aEdRqxmxRCiqp`<(tUs9!6(VF{C*ji^WKp ztbJcku*;GvQt+LUI=FF#-Gtj)oq+*Yxn)4S#2e#~2NGG2r^%^blhTqJT(g#*C!jB+ zdk+`(F4xPoRiM}-O>g-DLeTQ$IDMXl?s*I^;@uP?r?i98=Z>Sg5L}ZF0!BZX;4t|S zO7r$ZE9#j;zZANX@$J??j~S9)57y5Nf!zs(X+oIgG7{JBYwse|bCl8}X4tW-Zns|W zk`JdBF6JR&!8I0JkjAaxsRLC-jV1tpK$0jOS zX)gS3X1g~RuOalkF1vhdp#o;U?is~Cq&BEMHXyDb#{L4>zbkzQ<6ZG>Yhx87n-Lsl ziQ4+5s0C{TDJ;)6*F@!xC@Ci2t`6>wD@qxJy_%!58a()Oc z^BoL8O2~*4{UY!IQmNDA>Lxx^;>wRu7&YsF^@^$DBM4(#<$}vy4W0xnD|jxfA*m_T zdO!kKVM1#+{g4tphD!AirSH7@p@Wp8QTNgOj>Rl@5hmDyXQW3b)MF{gpmb1$V zCm0|FDKz)h=S+J$2$w*m?oe7UXLD$GR?u8P>E(IGw+*kUS9o6WPOZ+b z&~KgR`kDS66?~38U=;cY-pU$4{e0(pz7W?xY59R8@)@7|im!$A(aIV8QR!3GlooSA zx5TryTTzjKPLIPmQXZ?V%z{<~y&|yR5VwEn*Pc1d-zNV&Jss7u$#YbXAgPh(Qy&%) zu?6bsAb8bb8Gz@sB3NWH0}+%ZThL$*i!jqyNjuTNGh;9M4vwe{N&B>Ns^L1;Ai9Z^ z3U+QPKo&S&wMZ)rs74Dgx7eI1qNEcJhocvQt99PgDrt9?NLXwX&;ccuMpsuW9T5-j zyW>i4vNa+mu;u0fla0bD;HnDMK|&r~G;^DXK$9Wcz#+RZm7Hc|l?0#6eW{n^ZrP7) z#=Kb6(4@6_`k(F*P=9tvXTTMx=bA|=Ab*bfrTA$1aYOEmKdZ(4*<4S#SGsiU&Y~MC zn@vdK9`>%q0SurHg+r!8i_gdYSid3Ug`zU)I+eOSSuhQ@XeIqZXdto8m(>kDNFAUP zh!k91gR~Qx;EW6OBMhS%y0kN`z354b16P^7(Md!m9wW zncarcn#bzl2S2)5f=E6ca^v}j1pb)Ap|q7Mb&zX6WkG!RYv=g zOke*xY9xLSR5kzlFWAb4{@b=}m6F#>uu69`tZ_+-bIF!h7R`U+ zuHy^BC;B|Bav{oEP2Ni5NUuDdwbSw7J)ay2c_1KO(u7AM4vP*7|Ax9!70Ok18+7^R z5PRkG<*zw|mDd~GdHb8oFI{JhADge##6H##s_TOb79K90<3x)By)88^)dnLwE!5dN zNkvsAA@0RYbm|yXY)tg-+Af~_VR%%TA%zs+gXqv#4D$o^V2KB%BNeFx)^F!18Ja^KKo!4)Zeck)as-V!z(yZ*n_u?DL5&RgBbu9o{KuUF@; zOS{vZPlB>lFkO6iGQ^#4Tvk{lH!m*@tPhi}4lYiUYTGLl9~)1$JXKBEpndgrstM7B z$<=3f9p8(VMZr<$n1h{}F1{!D_k#%x+@|6X#|If*orVA;Pkj5;-$Q)we3czW@cJWD zcR%O_wmX13IQfrCKBjn}&TG1hO8Q)B1Tt<<;13;l@ZooOGX}4xOMWjrZ)6O*#cC5* z2+c7oANx_`v7d+LF_o+x9!IJhS|E{xK@?9fXoO_l(Ey6xp-NFHjFN`GWi)R81aupj;{e-Rm2RgC`JV&%%gNmP?qUk zOaL4A-`U5iucZ9=JgfRY5FVjK{vcrnc9b(9 zlF8<@z~Q33Ca*_E;5uOsB)SoKse9 z1pKbQena>$Xufgtc`Dk4t9p(w&1URLU^e6;$LUX}F`O) zyzeA-!uVQ{qI$a4XpiG>Wclh09eWw7$*r=l?bVHDMXO2_v?~W}KZ4u|5AO5D!M;!=Pb;v`u(3Aj$$pE%my;3CY zPmDX)nShH@i$RL3^o5xNZ=WKt7Z8E?5+-^8E9TEF4(Aofm9KZdNw(S1e!wR%K7`kRQ4quq7TO8ddC6{K6coS~ z!=V*5)_!SK*e@Q-e51`c)PUqD^bK~LJL!qV1T!!56pDMPq0%(+I|L#{winvL#3%(N z520iaCU$0;f2|#kD)GhLjV4N9poU`t4d?+P$wKk>9~T0-N#N*a<9hzXGg7@zhnK(~ zBcF>!Pz~ELVrA!-(7Hor!tey{lbHl57S^aoVhUH_W~H^^NHdPTc4^>HqK3AMF80~U zLfq!Mpg<9`;6i|bLo6Fx+|PLBW7T$@bo?|W!V)W z>D?G#34XQi=eP*fLNAcQo-8N#L-$fqv%3Hq;uc9+2p2enrOETtb94j4?7StE2$3)Y zOhLnMc-D1lR)6z8+6HCmzc;O&ffTotDV-F^jF>FAQ(fc$YsW`;w2ujvkAAS6~5SJnp6(-5j(Y&l?n|dD9F~-VrLGJh&P=C-p3iQd2dn` z%1Kcg${^oRiAU|o7>jRla^Eh)>aI~V15O5?bP|#nf@1YA`^9u0F0O)?9v1~g{FKg^b(Qb% zL;{nka%a2WvVnk5I;|g=XeU^|9y7A9uFU+Dhi6`4t_6R>%sN!t`$HqmM01*_ZK{}D z4&1}DX|w)vjPGvO-3{;#A#(y%yZ)xb* zcL;?a(|GFnxgdL#gg8}tW1r}BsllI<_$gzp%xCb7IwWRAU@tbwcWAfFpCzFn<~?He zRCIA)uMy>HmTVAuu=EgjDr2frzgi>=oTy?d2b@mjUmSn@qDU7ZU{-PrHh}xN&H61M z^J;bD!iGDfJroz1=eW2$v6Jh=x^6LlRbHK1JtjW3IKkVP9pF<*R^2{+N^dOfUMZ?EE2cxTtqtG)h$G@F3PzE5j} zc4-|LGmReq7`{P1!O>LpL7wIMBX|Eo_+^`I4W;Afuh?kdil0I7SXTb&jrFBDv6V{z zCGHGF2us_eKb~2szp8k3B_#gKS@;fF7m5;xU6622-Pm;89*2$IvLngWU5FR_J!V|v zzG#+@CGUFzb;5pcU#3BNU)wNI`I{Fx60zN4`R=T9bT4rbkI!QYr^9GT#nJ?fZB=hl z(l};%06L*`zAw_#le`vlo)v~r^Xj%F>7Ea-%D>G|oIyHGve;CQ*og8(a#m5e){4Kil%Rxu zv-`ld(x7Va;TeUf6PPlSl5A)=`eJ)!{f(&JbFubx-CEtzgr&PkS~cl+)y95reQ@GD z$2U+*aQ#z-Sf2!O;dkYZBtdmAuk+5071!#?w_2{ZK2isedsfWXfq6S}tEtn2P`2>A{N*3&7m$egx0V_TZUsF^0537lZeZ>8V{` zR(7+62q{olS^538n2JKhLTNW883Ur)hUgH#RqAp7wM(pqL|eMz7zJqy%R5p-ipBo& zhI9QgF;G+#P9r?_)X$;9_k#bhaSx5{3D2E?!Ge5(FGx;HEmw3BIQS?ZPVmx~&~#L) z;qmmI@U%S7&G$9}YI<_^4IoPW!sQOX+JUz}_Fd{LPF7>EZ~G-olr>2VVT#GN*j2`}_PoW=K$-6ZS{pB%Br2S<#tjMa-YlG%35Qw^=bzci zuxVP~smI3^Ul>bJ|LOrYD`Ru87K82Oz9Y(w3BnTD&hQv_rrq*zL|_h}d3mve??y^( zrx~P(fBEp4IQmQ)p*%k@f*km(+HULW&bPBPj)VScjtHawiH(MtCw zdB{TZ*+Yh{qw4T_6c8YAh4F2s0o&cy?94NM3r5Y$0%>>bJ;xCxD|X&h4+@#Q_6-g4 zGi6dT zc#~jhxxQ~=72C6+?|mmp+j5>B(%?;v{yJn46J+oc>Dj8H;s-qI{-BNqMv_JcH?WYqR z!t_4C@!%^QeUEVnGA#50{zP_&-eh4`w`9_dJn?6s`8aU?vRH8VaX*Hx9fNJ~IKG;a zJV5d*jjL>Hyj@SxPu%{RurseTnf>q0HvPqA|1Sqk75eR~-64S!1MCB_Ti)mI)l_mO zSwIWS%{cg!KTYSuMNO673?CN_lPDU0W;GwNs@mVN1W(QLR|TW?ju4ukkDL4O)~r0w zZQem|?yv11j&Juz2IGc}H!(;MMK$BI$=8#hNuW^6Bn@7Rulpyzvn46tHC5Cd{4%@E z1p2JO^ev&|fzfw}v{FF@8_Z!v)5PUvdlZ-mm5O;rU^hNj(-^VdpM5#h3)17dGO%eS1M6&X_*zv`Bpu9Eb-?jOu62j; z-NQefkKQVKg7FI1a&I)%@i{vhq3*Z0m4< zNjftjOdYg8nz>2A+wR49V5dIWe2KcgjdVLaaD@8~*pbfM^AtfvMN?D`O2k;;~9$oMxb zp#qaP-nQ3i3HVWhBlczK%w|7&MnQkfvOl&E@7pE3?$aK$$xq&cC-knn z11W5R+4sNrI?J%Q!fZ?9?(Px-1b24`5?q6OaMwbsa1z{tYj6k_+}+&@cXxLi(tUg8 z&fM<#TTj(_PMtdEtG)Jm_xc`4jpnZduPtTJ!PuN{qA$(ZAD#>l_tYNz4uh6;DnrGZ zNO3e$-FvP`b|GvNzus} z;HnXSt!e_)^hsP4$g(>;Ln{fs3NRx+M}gXs<-(N~Lc_awvet`7I~iLZ0D{jQOzHS- zkrtVHV!UNdc!xLKK;u3{jC+_p^tH{N~iU?Kpqdu8_VziA>h}_ZR&hNU+ zPW@=%J~fd3(3cB5oU)&1hWGfx8PkmyO6_~)l3&4Pj3&GlPNYq~t#jmp3EQWX=7TGO z7vtUyto!f=UhNgH?_Ft$$~xS%Y@tLZb{ULZerJ>&(Qv{AbF|Er~a> zKd(B(M}}UB(K>}rFXW(cP?iG~VD@~I;jc@H!TKwmpS;Zja~$7@mn+8sF#j)4!_gd1 zzSh4K7AXUoMmRYciLV&L0j4(I7aE{UF!IH}2D&9qqDtJIUH;5dq++xj1W?2ZqU-+D zUWmp)+c{Xw%JNPaCN8vLUS*9uh@^?G=z=y91;{oX-k!)9>cA+eFl3bgKGl?j1Q~N{ zg1S6cc9UtDXlK>6iPnk@aTi51U<6^WC9Ss@T3y-E!sc~O%zus|{o^dRD37w=5zPi2zYHSpk`-uxhw?8%J(Z7BpdoN{T-=EZyI z4QIDsM_C@t*_>udMOF62lBD55{dN69#mBb2^RR;NN~?8nU^yJ0jY>G6!D`QOm351u zXY#!xNhTMk*p16MnzT(4yaKeuw|gLm4jfcGmeVnyp&UG?Tq?!R*TnOPXR<{~P!g*0Lb<4Eccc2o z+Gt$k6sGG%D`lW*;m*qqQ%aQ|3f zzN-K#;oFbK4Of8VvbCkj6@C<=UcsSO)dOm0tW3gPAykN%ZHKyEXo z-*E&2g>R;pHr^$E>48agtNZzRI^1FP;pa~&Lqqo>w;>V;^?UZ_7PyIKS71o#{LOwyE!T;%3EbgA25O~ zs|wl#f8NdF3!WFnMxy7!ttw4o4i;?_SQ zylaNq47(23XcYkDptZsG_j!5U5NtO zey<=mFW%&?l+eGNr4c>G35tlYLce=LB?#c3qPg5iJK?cTdl!pTESIY#Wyg%=c{LPC z^#80Ydhx<8+@Icz7Y=~iW+uNs6hFr?AFj8mnVd{kN6WEbADc(FF|0lRDa)2OKnd2 z;*gK9&yjb!cJ({5;71qf$;VyS@`ksDH>=VN5E@=x3E{H9!yd_ok;XbOlmG&;$vQMH zNF9J0r!EU&c34+5fXdseNKTIq{pu*CIj*SHyo993=tZM%=(G`7b++ZX-Lnb+hh6XF zA#%<($ar4+)X=ll=NJXtNOgPtu~6bgvnizrZRe6Z+7DEy%e^sk5E`OdFe9?3jYr@m zGWp;*>rZDqShI5yLXSJ1YF_q-tpB$fbMKXV*u)@Tm5hyD9=(h<*vMVPYl;x-F&o?H zTN?YYfZ!qPd6n6IIo8HweY{h^UuEcyAKw=hBF)3DAX1R!IxzaWYH_zq&PzTqr$ zL%3r>=F(|;|MC3nxnMq6=<2h5lePP}ejiX?&j(u0z$=o6tRb2vKqk|ZvRRuK;JzsWOnpY^YL>QFng`S35^f8~g#ftQYs=J#%~>8!1K?kC|> zAu7F7cbtCSpREonr?mZ_dYIWqAIo9=N$i+N7UL z^p>ZtlV9tiqUUO2e{ztCAVv}dZmU=PWzrI&*xNiWL|U|tKG*iL-dx*g@e9b9*9X6o zZQrvfs3SOlcYv`NneV0vZ+TaZcR5$o7@NrygwSbWfn$v zq1Y*nhdn7yv2@+D_}zqISy_lfcy^ImY8eYq!RNK3?0I8rQR2$>kHpK9!LY-|aH##x z9r;)CWeGsE>kInC265Xx@!awoEZ3qE#Vb{T>ca-K-b)fo@mve&EH(7&BqRC(c0cQT z@u)S?igstkvstVn#^%>fYW8?Q@b<(VVRcyvNf~sm*qO?j;u+EgVE*ft@s^}bIbNwH zQc0q9RPCzC{Pr;+1M!=(z}v>4_mQ%4poq+*^< z>pA;awr>US0r9sqP!RG0q8PhRZ=;Z8LbSewu#r zJv*wX#XDcEW~mmeKy>M192+Xy9$lICJkOl|o?y}TJvTyc3&42z`}2zl$H%CCBQ?=L zQrOBiJRIV@#hhl?uR9WwZ-AT<<-4@J#{!VE!i?g$7$jvVT9Vx`=U z52PCFXYiRXiE~XkDv)VNo@Pc!FpD|aU*1}Z5sCa75Rx$Wv#fk%Eu-*iD zOJWOezjExgG_%_cm^t*79wDFtC^(QdL%cQ*jgBfh!TOcMh%}%HBI80AMmL0?hqx7& zs>UecXRlPz!X5%V=_#@ue)FF5&5!W%7Aqrxptj71MWW2-I{@c(k73zENI$t}*5$TK z;}#2O(_diB;@6^R^*FvA>dg}~(wa{|Avb*W`R>}qIdr|F!991Tr!y?B_1YzMqxW}h zXC9^JD>7!3NB^YN@&4e78#Ow^7ooDNMCY}$w{XwJMabdknpc5Uk1%|s+{XL*yNd~s zp{V#|nqVDc)~ei>rGKM}>Oc=fWk*TXi(YU5p+^Fx7dJZEUR~vyuWg_WLq>q&UZ2QI zW;33)cKsiO@yf@JNm5X4??6v}`*uK4M$1cN%J6ApSTSm;R%<`U*EP``SZ`g%Jc#tYQo(&DFU2M+K#`HyQ{8HtJv;1xA?BVRnZo8bw{^@UH ziJ;DYMkGseZf3!CR50yS<3}=C6I?HXwZO3@tlFn^E=Wb0(D+||W9SPE-V`hgkEMi#UY#PHSPPk6{k zfqZl^=EPo8*P=%ibrLE91W@bOjJy_DpCgNNJt7N2XmF(IAOB7pLK#v}< z%@PU?gbm!V8W})Cl(W@D`jV%rxk3$juk!W8d|59U467(6E= zW5n)H2u}9{#jB=8bf`Sn23wl`kB6oWXI@x4vxXb?q1>o~3YEuC{&KZ$lYk)^f6?$) zP&g(hdXW%0xBGr5;um9IX=LE5h+?{U+2h^sCnj_wby1b;GeX=KfVu`tdm9{BT{PTc z{jBk}S#ItxKUeJz7u<$Bkqs_RBHspKNOJ}LZU^W0kBcC5p=4`O^dbE`G0k@%_>w6U zIxn5*bmyCv%ue|;f{t$_4QKM~gFAGrlP`WP@h_9_U~V=23NcH3T(cXP!h9?~OXcSK z(=)*3IO?N|^T>3?<`2VBnvT%5JFOu)n+oI6m-g)~$Vk$^dQRo>@~_ykD_P&OfYZch zR$y83enAP648A!&$N3Ej{PdJ~cS7J<`Dml_FSicP`~SFgB#Yr+FAo2(%vTmhftk@$ z;X(!+`R^F0Sm`kPfk)Z@5_tfC9VPdwe~y<&|Gl)^^QgJJpE-h-<>TvAlgR4URl>&sM8e%#c| zjl=Ms_hSAf<6H#lqb3KH54IBkBj6oVBGVP4=0))_#i+OX1ln@V*ih1CaEx>qZ>y zdi{AFDKsh13KKe3`s4FFczVs+nQCCA>cp*kJN(6k7T=j0K^_MJD{pjXM-bBRo*l(Q zd7^C2{tQP?F!wh)J#s(~! z1z+k@NSCq$>zstF0!#4BE%?^P%C9@st<_`!_MSwv)du6jl!o=>wLir-mqHiWQfNF{N1>A88S&>z zeKx`cCJWD&ntUH2x5rC{a^ZV^u&TQA?`J#eeDx)7Q)jgaYvch31hZp}3z#MXW#!^e z#T_Q5W^Su(_lGvcf`8VrkTrhJuK3Wb1~0t|*|q1M5KLs{_->`RTR`0$;Z<|D12Q+u zuh=#UE3zxE2X+uS%-?Np94#vYSIO3pqndOZXpw+v|I!ACio;G7_^9t zR)pu%VTq@VJn6R=8=8b>*7&`@ro)$_b@V}>d-BiRbfuI{4yM*EA{^AlXrdelHF$pD zB#`GHVAyZ*?1egbh)ICg9t9WBGgQB}6c!xCyJT<#31~SmE;vH82|G?Hu(|JAI^+g2GB374oA3VZHu%n7INwKO9v0Y z0`s3Cn__z5fe_rKf$Di-VWqUTZU`EKUD?aHXs!DC??XeXf7~662PYFT@&CmFEE&ey zSK0A^uP$%0pF`RrWL;_8Ze;8BzN)0uhnpFm_Om(hR!J!@%O{i2%P3WJL)9cb4}>Z7 za>K)gxsc?-)y32p^Kjv@Y94Q=Wz?>qOffIto>@I*_ylZXfv`a&s~wBzZPXR`CL+Cb zQImm8&kZI_-m=zoEA^SRbffGCv}3x?#dp7qrF^&S7uVD~#&Gl39Iq>cLfTv)L2s7I zNWc9xfLsKT>pQ5B+y+OLE}>skDytD>iL*N)UfVK~RJ|KQ)zXdSi`*g&WeaXpI69eQ zJQF*!HX$VB&lLziCUw;Um6h#Vr|-TWS{L;_eoFNiXO6~2IYf?Jh*^Vi&z#UiPZ`xW zd=xgECnox$e*WvZUa>(G|0PIoK}-Ox-@i1!HwJDwNQfq1EY zZ|CUC!^wfj3DBJJF=*%Qj?t|FOZb?EtdR@M?{dN#BeI+^ARuS3oik42cok_p)!=dK zQ0pez%zhbN{Ym>Aaa`~ZiNLtG^k!&TiKk@2PW!V^Fk>Dan%VeI|LQ%gH@X1hLo z>26yOzNEA}hNqz8o(b!Jdbeiy%a3Z6Zw3p_!ftDR)Mw?5RUNHHcxEFi` zDN?NSsuBGQPo&T=47-73hy8Sr69IRL}*t-3F;r>7m<|)Iq2u868z< zvNoc#+T;{MoXuO$ay{!xv@-D z#HrkJ#`YP%I&)1X7@W4INvHn=8hPyJMl(!6|I$2vL>t6QK0wqSE;fn9U!D?b4fcYYn!j25uJYrafMM}3Sxj!goTlKT8MNj{x@GbV=`(k+2hUmAAt3aB6T zL@hu_QIybx`Bws`q}}*va<_Ye56-wCk0*l=V&=9-#J}g&PLm<>sQDHyoQLFgrOFt+ z68Ly&5~1mpbzb$|@_WPgv<;JrHSJ0Ig>&$dPg%s)SpV6_`SO&@bl>B0d(rMasFLpi z{n>*fM6OltGrb1y(@QYGU-;34a0thNSmeRNK-Qs+V%L#361y&;PhOwKLvQjkSQeBi z-e-CNLbo@IvNFtpC12n9^aaAlP%%)_*g_cId@QUd)A|9ju!3VHA{KlngtyEp^3!4t zhyv%QSU4Hn=PslAF_aNUR`T09@o+eU%oqYRUa^|3DBuJqMaya9r@+0^OWoUu$oElhHsq-uUSW2+;pLDu6WZ_er5hI5>0n@Cu z%venDL+kqaCq)nI=KPQqL!TiFT{P82+a4Zs&ib(ye`8^Ha*MS-1accM9bbOKmOI3?yjc^3FYAY&Tr)KX2+?m!_=i;sAI(W~~Uaykm zoJ9C{N>!_lknt*(6wKeFmf@5>geYuA9VAWlPd-wXQ3h%t<5dfnp_vXimj7Tjlf1<+ z$P|FY)}M<8f8b`(9!e5GE}GUuRBA|VK5a>G3>_1%!L72IRQ-BFpFL(0ZQ;nNIo=Zb z#h8C4uENuO41e3Tt?gKZ<9(ur3#}=Bj+{KQbV}m|f;06`eWmLHAa8rd#Qm1ad<1n_ zh>MJ6XXF9-@6U-ZB<*Sn*FA(YlPZ#Pr{U-vOn`fMlzoqLwpUgfNJKFJPr^A+5s;z1 z&VeA`(Z)Dn4Fyj-VZAX?Y@ex2dB^(MOH>Ls4^R9XNdpw2c8ogwts?k(sMN?5UXR>n zB{KuQ*lqm?*>ytR$QsQd`SAX9t)kNM1|wv7gjkh3Y!P6`n`xesfA?WH*@nVv*f&cQm3`(dOIS zFWBEU4M8GrzKlSPC6BiZJw|_tsAwN0Ly<+k1|MN^3n`AH!IaMojlVqsY;Oj;!^42y zO+VQOfSh&$VTX{5Ip)@~l;l^UpBWAi)364;SLFI`eR8e(vr1+2Lq}I%r}=leGm~+D zczd%oyQ{ls!Lq!hT;Yo&AU*@pTYQvjP-?7keQp}OI%QY}26^3#aB$GnP~W3vPUv~- z#GRoN>iwf(ozukjV6fr+0PsH5__9iwQ!3dYn4TpGm$DnUa4%Fn9m*HhPZ?`>khgiA zr(Q=-9-;hV5)9dal@J8`GoGKm3IsAs%OKR3UksPSTPP8DP7$@2A8IO_Gszk8%3s&7 z&dz|5boQD<#*^QI$BZe|UNMG6@Y@HD&$@n`tVN4;vlw4P#B(9oDr_w=kw*Bs5}D?f zHN#|C#mjivV$vEfw%EAk(GPR53Z@ZlCd54YLlQx7T--5D_ z8rdj+yv^S;YnK&Utih9RY}wO1?~kwQ0VFvME5?3}V9CkI5s4g6x(rgyv2o5LbjCMQ z8pBuoOy~7b(rky|ia+@h*|P@Z$fZhGIp3)xzKyAIq&=86CA6I>DlL|{AXU&S;;~2a zc!Zg%nB!NbcDSNJd(a=0tEa}whCbg+oiMHT-{S`TeMUB+l6MbQ`%4*&q!DLy73FhR zP;>-1t=HF)4EU9gDLOD^(?BVO;Tbn??p_m&+1A;09mc360`2G+`*7Z=*>$jvAr$EI zhDd|Ojva_ltwu%=*F!(QmT{1i26>V;|6Ez!&}tmFdfn^H@|3vpUI!; z1cI66KphEOT&B#=u>52%)ql{DI+~dRFTGG(Zi1o-zO1*Hjd;4FUsPd!?x$s^A1h3< zpR&x&D~j0@2rYCw39)Qa79Z(T(UGV9D(loO+4lM?PU85I=%v2W z)xFtjE04`@H<345=Bq^C9E<>LC6`{wB3!p8vV9Je49&SvQWpkJn{1a*xd4i;qaGva zs`~Ok8>`B(Wh+u;aOB?h0ZC`;)e{$ew)mIU8}`z|+#8M)yz|?TSQW=DjD4FRFkI2B zBFZ9;s7AA!JRGbbN!i2hTt{ra(n(prJwX-qTlkN_Bz$Ha2Bxy?JJb*J<;fApcw+@k z{0@dbH?`_ul83tBk|FCE!-FRsJIDvroQPKXOi_GjBzjzGTrK|i>4)U=X-#DnO-+?Qvd;Q;>90}XM@?V2?+CjZ7QxT_aX)4!#uv1r* zbm)Il%Q)c8%)nW9Gk&XsUhzTy5-|i6yn=% z9;?cF#N%a(5*HzTcQ~IEG!a};XW@ioF$;&*t=s*Lak2>hRUa)J% zCHeF;wMwdgO^mDcMwVNB4Ra-a)OLz8o$0`f<329vgW3(t@Tsl_?^68fUjuL$I~P$1 zwW1+U7+g{@aO0Ar9^(}9N}<=CZ-vz!(-r5tu6cnAIG4z_i5}VMCsSr-85S~iCCyfu z6MY-W`+GKeh#=LSd3?tf^W?)y4vU!Osp(oFvqYy6lhj=^S3Oij4_E1R76tYzExFGM zy8pfYO6PlDdhUCf6;jtfnZPX? z2>I;Wob(p#?X@TE>H&W=$7HN;CS>QO8DJuHxhGvtsfTVPeLb@vXj`9-OWrmV=H+;c zNJHcFVYP0?(8+9@+(PBgI(DY#H$L}FUl|gDuvIXZm%i_s>Ofc{%Z21*EZW$XzW{z< z4hzTY1&rnc+BQ0X_Hrx^-*cY>e%Z$~nUgv5MK?O{OnfuK`;$Rsa{Vqan#~nvE((!W zK)32*WG?e{`qZNDmy*^iXk0avVWZoAGgj9$dMsk;-w3pXEfy_?Q^aLg3HmeNXOg=% zD=Bi3?nhqy+R{h5eR)&QeZ)wm#IoI4KCa{p`D}~gO?X%JZBk&Wxs}iA+duS<)_>PK6wJS?KVE(n9uKFUyL>zj z3O7eB#Q0^?N@^&dVc3eg9m8a+`u{2(1T1_%aQe5nRA|EGIe6dMai7}U zSV*-eV-^Lfp!W%Sa%qF-DuWpM9#^B|f&j-CVFS7#1Jo$XN(1lul2rMi3G%55K$r*HvwHz&3CfY@!u{V)@Y5)UAjNTce;qg#P2f|suQwI>sT z5|NQ9^my%L3piRO`}E~#x|fyn$uzn#CgX!td2S7zwS@wY;Hz<3lkaq+dn=5z<;16w zev@6NwIXbQBvO!FrO|yM zg=IeK)GwHd4JJ7SkF0AIN;|m{Cx5Q6#INb!+n1P=JhWHKnRgx*cZJK#uFH@ba|2BE zuN~ci=%&nwn@cDb=}+Izk2Aap?Hy3lyK<3#OfAbS5)X!{qhI?!2zm{R!RRV&6NM(k^`9=XA&yx_1pkZw%T%-lf#D= z5>_KzzVU)uo5>}Vyvl-wSrfFoj|Y}CM|j}VD(4TPZemx%ho9;$Ouev6LV4=-af8~S zT&Z3%Um!hPxH1f-46(80O`O~d3CHNH9MRPBajO* zxsl#ShV9CZZ}n*_Eh$x5JfmL7A6ZEEw)rH!X-RpdVYAWjvEYjjL}c+!i|N~a%qzaQ z_bB3+AKFPgM_XjazQ6hPNneAtD^CB#dVp4#yj2U}4e}S)(zM9X@#qpVv#EA%t)o{)NXZQ5u~i5f zIk&^v_$E6v5s^Ebt=?6EaynkW$n=OFpHLPiSz+4yHYn9Bp%*Iph^uS@$@?zJ7^FBh zOcrD9>Lg)1S!pX#3~8?sC-oJNf}Zk~V?S&hA`7!LiPMA?HclkK zTyBpYM&)Ow**6ow%=@D6L<-VxHquw)a?p+Z{DE0&qy0CAOypy0y?Yuu7H@P#Vcr%` z+~+$(oWjLi8@K{NPHoIE2iYI8i4X3Az$2;DUwpJq`qy?*Ow@TUm9%Rk2}kkL^-dhQ z=T(k`0J+DIenZg2=)?UJl%!IXyLE?dOL^dDS@#?^dgF z5Fxq4eH+dFyOcY5nI{c5I!st1CGgvS$r$%V1+NLDpkZf2H}8J~3uXEEeDrI#K<4j_ z+TUpQaCRl6L|d#PB&j9kfp@&H?9x#AG|Z)91nCm|LkJcAhkF&9uU_7mvI&r0<0_mtND<#5zIJ{6q`KkK|=2{E=30-TPi?&qI% z9Cd4+5_|IUtd_fYvL%bW?6k+0&b>b+yC~4E!IYQMO~NgkktTy?+K% z^ZooCdn6}6jTh(4L+xH#-_A;794yM6NMjF%rY3t8;{!z4qv*`sp3}efSm??P@(cqN z5Geh#c+(a{afrgiwSR7TEHeg(OIDGFOauxFmE*jjp@SXv^h#-cX;x)`Q z<{tD(N%5AZ=b{vZ10&g!@B)tu1cpORt;v7OH=bg&1@<~mO zEk#J{MxQe{Lo6*GfcnaGJAY@>B@Iui&DPRH9fY@H9MDhp1T@XyKury4Uo+OjRYDUW zr5RGF=JPEZHf;*nnpt$lcJ{sNhblKE`sXlRbcxRu{}QlrkTn)A46TE186 zaP{fb)>&w#eb)>8nOp#;*z0 zPx=H@(?^a>4WR45#m~?5ve5jnl3+i3HgZzfyZPuYG}3|)Q=NRE|SDQd8jvt zK#M9Di;Y_+4_wf2nZ6hAx~4Y<(tol;Y5m6X#-S`NVepYWZ<^s@ZjOJl$m;sbb4oj( zr^?dlU@EHdw%a67x*)hjPN+zg0g*U%1X;07-Icf6O%8`{)M9nDxf*!#+`yJp1Iec6 zrC}IC!rw72DfxR4eWUFh`21u{ew&cubm^FHSUGga<6c?WXu%PKmo_z5#B7zVbMwJ< z8)BDtR&{o=D@wuh*lsg@w>|GyEc@(dM@xvg-a0irl1?|sp{ff*<<7B3BbuA=-Gwwg zx?ALL6Bk?W)k`;s9m;s90*Gil^W$N(vShZI9)58}bW&H=+gZ!4; zYV=Tj`bNg`h*vUx_S@jtsca*<9~;3H5(85|ulAOJo2wK6AS1uMWex24?vPg8A!AP; zK9(L<=Uo3<<%Hy;K1bZo9l2Ir>Ub%#&0DdX8r*B+)l?ZIJFVw@f+Io!_IRtLZyZx{ z(D{Kt=;~zmFEn#ER#nC^ONk(FMG=Fyg*0bhQtVI*cDv7nl>ANh?TVxiFUj>QpNmz; z&3>fF6Kl&vlt`}4-~ST$mQ@_ubK~fQr=|aV|_3M9?m5CLa*B~Hjl5} zeb{{ae1+(vS7JgzH{3CDt($^{o9jjgKG7$|`<7O-R6HVolQ7;(SY%*O;`xZ0h;#3O zR0&_qo&nkDT-lWR-{g$S9Fz8>z8x6K|Asu2=Yh;g0S^^Eo~?iFv_t7GV&;VL$)o&_?B|tR|4v z6}5m7AtxY&8q0Vn-0AMru~h9GMTH9%3(B?AVEl*K!r_F}a}&Dp9yY-BZ(Nl522}Sw zadV*>=qNM{Or&l>(Xv3L>5Tzw;}YbJTyatKtx&OKG;0RRMwAkr9DQgDi+ysq7k%cA zi(g!Eb;lwtv3R}EN{VLLrBI1P?w||0EIU3Kt7^=(^V*XVO`R*ez#p3lD5>-Qg?hHGLKhtO6d-!-zx6UQ z9_sO`JO@?VmbFDQc4a-fW|!Ue@`D6EWzSx{l)5Y|zgcCb9fzV>u3X@umm}^vu;?iz zw}rpw-sDK+(!KX~l6<9Q6`9N}L`?dYJ66=TE>wZRkN+?_+No~KjSM3b)1je%DS8UA zQ6a}2cB~@Gi+bYP9{U}ccGePW7c0ap!%-TnJNWO81>2B@ZY;?c!7uA~YS->gV%VZS zqnUS%a;EeViuuO4S<2Lo3rCXm)5mKc0?95cGn} znXI%C5|K~uQ>zdP(p4j~nsv|U9u*gJM%&6t?IteZZ+p69VAK%`q6FOakL_NMC;l5- zLfQ}j9_!q>df??q)m9q&s559b+8q9H$8KoQ#()REM0{5B9x76I`PedB6V(_=YcA;= z=kW>wLDukhkATfpgOPI5S(2}va-j0RQ<_-!FKxVrVH+2*t}U(tcEg(!s7jv!J2(5% zp?*+0$a&;&y@)hu5adQmM91Z!BQykuGm$Mg1bFaH8PakZ)qN?jX37=sDS7X<12dVO z4Xi>HTsS;&$2#O(j~|utBwt{X3cUZSzQxfYELAH7?G}oE7SszB#VT2<4Q2hT4vl7Z z4(^1Q76i)i?+VG2h*(le%H^g$mS(baA>(foKQ3I9dF8o8rQvHz*XNN2QI%KWXhM;{ zrCYuOe_7+wOTNh$Gbbolg6zbJef7Hh1W)^%eNwsrMB!@Dm!m|6tzL`%|wUIn6;lRuDTx}`5{=!5%bed82(;g z#I*Sw`4@P1>^~|X8S#||=)^befSm%6@!gEf3?A=q|6B$SH!@SG6(c3=nL3CSglE?% z3`@}RI8wG-L2e*xg((1K0RZ>;WOSm)KOZge#nr?s(hfXa-^y-P;P)>_1Kfc_3gg-F zsw$%x46TT<4+{<5(cPE#FF$0Y;swe}GoAX(X4j(D6fsTS@2SeDTUA?L#RXO%6BJXS zxNl1?e?xRn{sPNvoCD6@OQM1Xpx2MJX;#+rhwn|?7M=^q4)C$ zzqYUmarXjAv$@n&CO5yRXKzh9nUmxA0d(PZZiqY<1Rs^u-neDMN}P^}{SR>LTu%S% zmJ{}r`qj*gwc=La-P1n(x{t+p7n!YjMy;_fuWA01rt9DBN*l!1w9P@>j<`$_umW5^)XzVZyfKq|H?y42`)ED=jdbw)~L zS77Q8XMYu7vs8!B5V|0+w+}W)bvShI${mYYh|LbK=o95YPGb%V?Bp)jSpnd?3z!a>!@m5zjZg*soEJFTo z<6&p*tEy~mD-R71EDn{Fz`o_#{&Kmh;oL-IT_r8+eA?qN3H=P&%zJn7omt>MnD>8Z zYd3vxCbsrMTO40A0X}fl#K5?|^5aNFegotXOn?Ln-0_Fu$y*9#H&HzCa@A`2k@_Rr}Y)ZwYcoU);;Aec%6 zri8|0^U^sskkoC9s|qKi+O54FDLejX{~?0rU~~e%7B>gUi(<5CR{oLY;k%o6c+qc0 zYMVQ}#FiJ_gG7UYDeyI_e-NyC^;76e!VK7@;k`K|`h^-Wz4u#TD6gm_>aa^aZi@IE zkyD$+ir_za4Q2kimPIVM#olz*@U_Ajs7uIIuBJRhzz5#PpP=sMVfR=K138TgG49{< zQkgrNmWGr;`*82AFqNRQoc+zk%9gti)=pdmEy`Flramu9pE86nGTVsw>oiVw3!oB>HZ zF!Prk2DnH=Irj|<34ggMqJ~~?_l%%I_<2n+MIl$C)*eB2lI5u8%K|{?XYAv0|7GWi z>vepT%rRD)nfE1{ditHTGQvNKWTSNrB#uDw%R?GqsUIuie-iWStUGBpINlri@5GV< zBIUn9rmB)wFO4m9ADbX(R-8}?&sxUSh!-bNlgB`>&UB~T37xAGGKVGTT57;#?p#`5 zEc*@r!JLd?tmA(NSltYew(^V9tajyHM|*C>+IhhBJM~UjqR_3}V{=CCQ3-^2pR34 z6?YG;BD{nN#VrcCQ__L(-(-aMrjOIPV?6iYiW`W^p7i1G8!rSXIe-Cw5hK8H=P=}k zWB%LweyFas`rpae&h}Oo94hlwpnVb443oPPj51D^nsZtm8O~Z-Qxi6&Movv1KyOVM zyxqa7!at{KD_HM32wu&$Oznf1exE#EuVS|FTeJw8NdG;}2+}0(H?+k!m-8OOBj^cG z4Ut4wO7p@#%F9bmKB6;GQ@eip+2Z`gS-&U8PLHMuLFmYKS-;ejE{jstH_&_7j^;&Z z{h65u;Fd82a{1}j=hRMdGb`G5|J6OM_K(F)(zlS+K880IG|fOv@9toAVc7l{|A?sv zW7*qH*;^Ke zHzTb~cmlL%%xh{sDwC;2#cW$5{7CVo(+@nRD`pQkf^Z7vU<$&?zr{X`Un{<>eESwu zI~6?6JtgcPKg4bdtw4pr7>A%zxWIP3#fAYo-Uk@$UDJXt?a*Idm_&HawqTjky(i7R z%htDVCUSsEs%AJQBN$M+FEN!5KZ|zVzb%IU8`uN<2iU{;zrmhg{{bwz&?NBD5n5}1 zeDeSq?mbpZ+PjBWsKQ9piETR zK;E@w$~VLH`2*57BWcWmnQ!=b{HsHDw<4DdiHz3j060bOpisfNi}NY|U!-!p^B7~b znh!D0JMPwj6}uPxzvhMSNOex1MNUawH#a(b*0IUFrMKEZt6^uS<&S6A4u?Cp3=Oeg6|%6%Tct z_xkrK3flL@LyB`Dc$*UJfuWvY!-1ZN&wX-NTxt8b6DW9joGPx%U4-w z+*iZ*z#Rv<&JwcRaPx?-eE~R{2C*=c_SzcUV^%O-nXQh@yMPu{olKt%*S@uU?bT#? zX7QG8?@-%Xi5e}kYIm9jXb5*Cd!Umur_a8Rv(;c?p*DlBx_hhyZx$sQxOQT{+QBPi zgO3j0Is$uq9$6CYP}c_=0aY)C4EL08s=vfXeSRAL;QzGV(EP$#a)oS#*qp#Bq`oi% zDjYM+`Tt0RnFVg)tGfjD*OWbvj+ucm*osTAILH9_36m%P=pz3;4eZ9V)QZ%FSZO4z zr?oX%U!a8Vcfj05RT5aducY3?#eo3ib%_VpMDORmdtEE#&ZN`P6e4$jwbs9>SsQt` zHrR{Bo5wM^TGalxU!XRqC;H?E+YgL-;BaR+m5e0~uQdKTLFFW93Vot{PVJ=iDa)2F zPv=C*PcgT=0Ie6m>6EkDK(~H?EhCaP4aO8cHSdakJsx$_{CstD$T-AU6*QD5?Vvzv za@!cRR1w~*3D0|NR>b3a4A<%a<7AxU`q^Vc4`0&NhyWL;a9lje#y0iY)1J-lUZr(M zjoZ?+@ygi{>1v2gGH4@je)0WsWr0_Gn)3szq7_YTYi?q;IP9>#MB9DHH-Ykhw!bEGctO%wIeQ`nYxV`?Aj3tUKtg_&m2nkyW~`3VW13 zeR>bO3}zmhllr20nt6#Z7mwZ z(iFG)`=7T0-wIK?{W$TpZF2)FU6}J?R9$pa=H4zUmED;b+NqN9LksH1wf|Mwbw@Ro zb^8D+N)ZJant*}@l%6Qk5{in95E!Z}tTm0koQgMickp?8FU^d?B? zHS`V%p}xSIS!&Ne6%K^)oEVCCgPk;bB?Z;rMD zaZ_hsNSclodGEy}s=7etk$M#pO=Z-&1>&I=n(`x?h52UTa}G*soH=Ks1Qet4x=haf zjuI0y@MYE!G_mH)E~jNRNr+9p6RnY+X=A0D`N_Iz_gnvlOLuaB%B5buvdA|S{1MH|usy*#5n3jz7rIi}=-)6!tFNIV~ky|1_PYQ_P7pX0}Zknm4i)^awMrhsqgIXRtDsNs??i{^Q!Z#6uyXZcqv*zv+SBY0`8n{UL%EUC^*^(K zqWPAjMIt$(czGR&1*|PDqdV?H+F%b_->Qtxj$~zpda%?dh{|3gaJl2u!VghPd$hmC zl)C3FRJH+FnLBEV}WE;IxQ@DzV{L!@RHR^Bky!0#`eNAh)OUYsjG4A8lpLJ!|@#2b<#ziXE}DA?-6hi-d{ z_aWYm3dFqjx+$RYNrJJ(rmmZRpC@^1`k>}7ph~YngM{2Gc$u2DJc;V-NWzQrQ>)dZ z5 zbd>s$_m#Nm2YkD2G}2?7H-ZC^NBs!(GKu*R+iz~Oo=JmUe$Q*S*!bZ+eI&kwBR}=Z zw`%kJn_mTo)|f)30+PEqwL2m?mBeyqMD35p_pS*8Z zM1-Gjt(qxf1Jgp$K)tZU7+L$}n%;tcDn!WVacJ)9o$a|=m_w2F5|x-D969lo+LjjC z+Y4bjK+*n5T|4Fk8gHj&+u_~Rz%6zTR^+hC z`Wt-Z9kNGIvS8^e^?L-uud{8xI($dGGfAW_Q#+A_uSd5kqjsJQpM(5NZVOgXDG-kG zj@g~-*X3J*2CoqSY=CYvoFXqCZPdDmV?!fY)M^0#z;;s+@qLy;;x(Lw*ExUqkhREQ zvw<8p*M|WX4{L5mzVN`8$1OAqFXg*Tq>E(RDZ89E?P`FvU7iRqYG$XhE>wIylI-R< z(|a`2vRV4>yrYgAkzeOCw&Apr*q>`iQ$fZt@}_>!QqLz;%`qrHCX0{7RPy{pOhxG@ zVk%-i5$BCO*aOT?jbTbCL)g#hC#Cm3WB4Z-Q;1JYTXS#QPI_@LmVKwjPQCuK8#RmP z*vJXAITrtyR{zDBpS7Yb{5FeBsk1H1fg{~`Ln3?|r~v8G-3klsXC&w>sxCQs0f%Yw7e1C7O_2{T72 z>P9_Om6rcIk|&`$*5NMU*0(t*V;s@>B@g0N-i^soho}LoXuCZfxa|u=)kfUP37#8Z zI-HGHpS)amq1vC_6*=i*b;>~OTkrct)BbJ?@X=%(aH%Eo%MCl`L|y>liF!XZhe(-&No$d~ex=&tF=a{c)@V3+Kep0acSf;zmD z!Q3N8{h>q6G*V7zo2&I!x;ji{W%xW?H-6-_TPZw(+Ml(wh^M>94s<1j8fBc?Y+DrE z0V{+D`v*dIvLElD55dW-dzsa36oDYAqNa&cN%ekfV-uElSAa-XgaN7OE^6R+Y$6d3o1p;OLBg(i-(G$mztCc@%d-ukSmSL}AmW}^M zuS8H@^x395&Xx(&CX5t%$GR3 ze>vb<)UNOp<~OH*f&cw6b#I7w0=y!}FTN4el0p@yv{d9Go5p?FMJtF=(*lEYXm3&E z>#(OZDprzaMt5FDI>KUG$n*-2ZY$iK&%MX7Ina*3Z-|OLg2~HySSUn4wAE9vfId~P zAYkCR)>nkfy!#;0dFhQkDc<@C!{0?C(+(T_m_H7@`ox7%iji>74s7=cPrVnXhe0aZ zvb&!iA9NLR1k2W{>k(;MqAm!Wc{pX4F+N_cTTS`;zLx&Rg>3)ggkTX^bs%^9MNF5( za9iJ{rOss11{)nDM>x;{Jo4z3Kg)Zs9Tg5G%yvVaOeKFEgi5zK8%%Hl!{4)sBbPn_ z5~g2=9kaBKN@q}Lnzq41Ib!Z+Zvuaj zHLNeyyR44#k0GT* z8opPcp3#B(S!JhZ2Sayq^FF+h4K~Hz$89-6}J)lUc0UN~bO|`016_i!a`% z{TX(?^)`%@Fi$teYUQ>Hf1v5Y<%JINKBkbv1q5;r*s!Bg04%POr@rgx#^J92p^yfC zzwnvxm{$?2FZsZTcN7ZS;O;+&ec-a_=v-K?Z)kX@%SH$b@&yMCJi&In9byO>HMtq= z!yWJ#;LDRVDmG#=ZohRFIlVm*R7pBR@}lrLpm)Vi%QxYE?6k}vu8Li8%DjOlb8iH| zFoZW?p~$k(pozW=&$xl6i~c6E@iH zzW!h~B5aVWSC2PD8HsK;$EhAqqH%+?~|7Ix-vD2*1~ZI7hg_ZlKOanK%g9 zHzEp?r~;|2PoD3K34*$)7~fzIMK%#fxJtiih*YjS$x1_#Tp)W7(3BEj2ErY&0yh%g z9cOC{;{Q7Tr8`3 zWhJw)W;Ai;x(;snk+pU|X4m?yohPzscW_{cXK?|YEmGH4|U4gcNa+@uWB(t#v=`{p)w_dux2*Z zYX?nEb6twuM1#*De8LLT!+vvcMb=l7_O}&{t7Z4T`g{1B5F#`* zAu;xHh?XHBkr+bU!x4)Ibq74W*L*c|pPkW6_!gmw`KHqu(mY%S>@Bc*O;qQJ>(8AK z^%Xt%-kqI^ZC$C-bDuMCohcF49Gf@aU#h1}GUMe@hlT2|WfwNu{wPMJ9x7J%gB2D- znUT+`ucf5x5{Z+|c7xv&gDXthyL+Qw8YLa2O=(x;$v~cz3Lqc_H@(JsqP_TJqbPc8 zM_5=sE>LdQY5E0%A$1CfvsBK#jY(KfHJ+E-#lEb(Co6q!>(0!1leYt?SaKzf}R zkAAfHrUN%Jo#rb`Zow&e>SMBpL>kMLOTE%{+_{Z-+%X*zwM=n@sTi{8e#W}Vx;UG( zg~oemQ_v6A`lkzvHCqBIpyt~JEAs1B8YWfK!9qmy*(8*6lh)Q~lyKbiOOfQ1+Erb!1NUaQelzNX+H9sD1%}!8WdGjLhRL3Eg%mN_Cn(OB0UUZ zkekJx6ixC3laWDOyo_|}!kh!&rs-f#EV%f6u#&W6-WL%*8dd8E28@4f= zdZmVu*XCo%BM@nHB+vS&_kLhIp4f@x`fCH>-O3L-d3uWY9Nf)$@pE z?QrFwk-TZOxV!nBMb*8Y&R}2W$uJGzMeqeQ0PvLs;GOjz&ug?PMwWR_zqcs9Mh>O{ z82E8P0DuX4fcF|5Kyil#aAh9=IBtKIDh6NTA6nee(}-JN>3m%CGChnIP|978CA)RH zmvkN|n*#u1!75cJy8lT9N(lVRk99ci`BC1=k^XG`Lsq~zZ5!3bvF_jb|Fz%o?SJt| z%>SZ6eT0yMTkRuSfRXqA +``` + +## **Step 3** - Configure LXD + +```bash +sudo lxc init +``` + +Configure ZFS this way: +```bash +Do you want to configure a new storage pool (yes/no) [default=yes]? yes +Name of the new storage pool [default=default]: +Name of the storage backend to use (dir, btrfs, ceph, lvm, zfs) [default=zfs]: zfs +Create a new ZFS pool (yes/no) [default=yes]? no +Name of the existing ZFS pool or dataset: mypool/lxd-pool +[...] +``` + +## **Step 4** - Optional + +If you use zfs-auto-snapshot, you might want to consider this: + +```bash +sudo zfs set com.sun:auto-snapshot=false mypool/lxd-pool +sudo zfs set com.sun:auto-snapshot=true mypool/lxd-pool/containers +sudo zfs set com.sun:auto-snapshot=true mypool/lxd-pool/custom +sudo zfs set com.sun:auto-snapshot=true mypool/lxd-pool/virtual-machines +``` + +------------ + +*Page contributed by [michabbs](https://github.com/michabbs)* + +*Reference [Armbian Forum Dicussion](https://forum.armbian.com/topic/16559-tutorial-first-steps-with-helios64-zfs-install-config/)* diff --git a/mkdocs.yml b/mkdocs.yml index 3a914ce..7c50c28 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -84,6 +84,11 @@ nav: - Recovery : - Recovery Mode: '/helios64/button/#recovery-button' - Maskrom Mode: 'helios64/maskrom.md' + - Software: + - ZFS: + - Install ZFS: 'helios64/software/zfs/install-zfs.md' + - Docker with ZFS: 'helios64/software/zfs/docker-zfs.md' + - LXD with ZFS: 'helios64/software/zfs/lxd-zfs.md' - Hardware: - Overview: 'helios64/hardware.md' - Button: 'helios64/button.md'