From bebdc1501a6526f5c6ec3e4f5b77e498cfc9f55e Mon Sep 17 00:00:00 2001 From: Crabtux Date: Thu, 3 Oct 2024 17:57:51 +0800 Subject: [PATCH] ops/virtualization: Add introduction --- docs/images/pve-web-ui.jpg | Bin 0 -> 127037 bytes docs/ops/virtualization/intro.md | 123 +++++++++++++++++++++++++++++++ mkdocs.yml | 1 + 3 files changed, 124 insertions(+) create mode 100644 docs/images/pve-web-ui.jpg create mode 100644 docs/ops/virtualization/intro.md diff --git a/docs/images/pve-web-ui.jpg b/docs/images/pve-web-ui.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7cce8f9b3b125352668bd279594486a841a79ae7 GIT binary patch literal 127037 zcmeFa2_Tf+_c;F8Q?j?nSYnW}%~*%AMV9PQQ4+>jBFoHV4^brhzGN$fN@c4EDZA{H zNFlo-YqI-2V=29FulMu5Z(pD9|Nng-({s-~_uO;NJ@?#m?|q&-({k%_7eIYfL0JJH zARqvgz&~L51MuL8qlGB|C@UWXwgCV@2G9}^0R$j~|F@5TWF<8QVa7H190(s+qag%g z7y%)$6HGDSKR5`}gQ*Aj&%%dzrEWL~<1bL$N`5_6R94euh4aA#_yonkngVbkaRG!l zT$B|iA`SxqI7m&9^j#M`kL3>(_2xL7tvElwHI~oF#KsuShq5`(?`UMp591Ty2awW^ zwnivRG>+96ZDwID$u^o_#Kvl2BFT1ASWQ69Rt{}$q2!D~Ydfp!pqwpH2opAGDORMT zxZ`=-^JttAtK)eqYpl4VB-;veaS+C%`Po=kNN|>tY`UP@ayA$=s}P?Mp8zjtK6^MD z$OB_yDt=5}VT}WrlVn>{)xp7m&q0vS24lt#Lm&|R0&spfoEN0v#X4Ezj2wBbvFz&{ zNf$%q?pDK?R4Yp8R-Uf96FGN{hk`2#E+{6ZDVIsZ)qR;{eAz`#Auc)vw zj91852*zt<3>V`S6M_rF1O!BdU@-VPA7yJS&d3^t#`6I=^I3pQOoiYuF+mYHuK-LK z#VaI?g7JzOqfxvtm z2Imu4%W7H~;Y>kVNj6mr>kE!+SRIS=Xl8y{vLjq#r0-#=C zTgBCEOe{>D{)`kqidMQ#$pQkSKE_ zYcn)BPC;K;CA0WR*MVJRDrRad$SWj(hVu#unxc3S!X^k_Q2|pyL1PgS6G0)t_4-&F zQ=Eel1}$p_`VnXW(2G{W4eNmw>vFHtIhdpIrUPxjD}dmIi>}!~5V2+heo%jY{7_tN z3jc3gxl*=a*shacQ#3oTNt|6c!E;9m>;Yk_|)@UI2_wZQ*93w+<4psm4`jsv*$ zSnejwP?nQBt9eXAL0R<(xHAI)!Xzuyc`UIE0GzkRVU8&tX4Ta@#Y#2^kOPe19*qtl zGD2Z(Wi>Tb@mr#wU(+osdo7@u7tibGG=GTQX##FSz|9&fNFjr=#o$2L5QIe>aJG0j z8ieV=1)B*7r-LvL22>D)Tk&|~Rd^T=o2|h3O(H;#(K#juwhg~KWHs9W8*hM7=9u#! zjSxr!H92n$@+Z_?g-!6VD;_>?bph0E<-+e!DbUu(wZRk${(}IDfHI&4XacN&F>nE} z0IUEUzze3J zzJem4I1B(J9m~s;9N-o@3;-5`mzU>nEH5wK1OTFU0Px)UdwrWE01*2E;)B2AposuL zbr}F2mwv|?M*+YS9{||fW^05oT9HEp-U&^??fOJ20PNHQ0J;VM*nWD|ZeSU{97uix z06L(pRBHhsCKdoV%|PDzf6#9Hp8uQOHl_H!N*<>%xU;@;0DAPW;hNJvRZaq!72%ORCSC8Z?rObE8` z*g?6I5<*Q4kvPD1K;kc7%f$fAHWD~_2N3}cKuAMCL_@G#3JwthfCzlRL4Y^K>P0|A zLQF_X1{N~l3&3l=1WXADh=@s+-vSgw1OOp55jE(?vxfF@KFLWv8>qg6(BSVd;JE?* zMW9H^_&FhD!o!=nAE#^!Dkhw5EqSMA=dZ%mZ0&aKGYi{o-y!LA5#qeCxajbqJso9L zClq8xP+#&$5;0f%<+`GQ;de!N_`buy_G=y+a{nnvlG;MMMk}TNWqADbo2x5X!6o;` zPhVzvKb5Xz??qX=vpi8|T_x4*$Q$z0vXSVRJ*#nYaAD4LvcRB*<=&)JQ)>7}OWOE!&J=K|xVq=LMLRM`h9P&vg?muL8x9zAn^dfInt$wpBLGLRfcl#%0w zq}4qk0{{j(=VC}NC79Fi+QY=bY~q1HV;pYP1enD zX1XQT&0}+>3|TafnK6-7GWw90b$|KjcrkYwP<)a7agyq;l=&yJDi&uqr(J~;&l0c2 zfhN2lN_wLl6JL>x%w!4zhad&T7rg)b`vB6P4r$bWQ_*XJd3@OZh75G`Y1saDe3aey~S?yxJKB(qLe}I zv)rLigu{339iL*qUVp=c{ET^Li|bpn)SRNv`$@Nld=3Ws4)qWCABa0Y&p#NSz!$e@ z+NkYzl1%+LW<=4ev$a0QeCDyaNJ&y?XmN@E$N^*w#UQU(5bt0@^rL-lET%bc8ZJ^% z^bANjG*nF4Hhgi)++G(ZUnBZ*XLHqrcA*rDwb_%3)b44QuQRz0JY+^sbxjxyG>%Im z+V=FPJXECOQr0sX3=7Z6>67$o>z#5$GW%%&QcBo z3ifo^^#N>ozfJAj#b=$n?}?jEP-sOw0H_Gnbr3B;g&;P|ZrlA3Ixk zV!Fpn-4LH8ah*F}QMA6&xYd{t{d%_tzTk(8sESO67?PUt1M=5rsIAm`bZ{QOV@#N( zo@`Q&P@QP_UC}Q?5ZK|FQ?ggx7Y)#AvVxf1q~c1#GWlpdr&8qZ+8~B3xv?uPOt(Wa zk{>jlB(wp)D-OIX$8|b7J-fO$XV0F(&w}f z)CyLs!JDIp5FWe-#p~qSDm6D!{W^G#E;u9oJ%WnkikYm%q$0tJ(SFZD0KX~t=hyTPEXcxE zMs|h^lF=+I>A56RYFL$>*5H_|-YaZGxW`6X3e5ABEc2z_l@#i+lKjKlk71RdYs?Z1 zb`C#f`hjO78tSnz_c!33o*9~_WMA3E-In={=OdYSS`?h~0{|9NCm6-=Js^E(bYP>v zBd_bh_0~VSm@4#IFiZ+Y4VbvHKT?OJ&#W_!fuY0wdO-WzB1L5qA6WTsgr2Zi)CiS8 zOx;YmyFu-H^@Dxm^B%vU{X1C#^B-z4Q<3I$2p{nvY)YOYq7|E*n7|x=)BgUIY;V8V z^B*XI?X}W(CY+7u5mV1>sG9p2J8Vuk7)YsLE#G~;Zhdl(I&N*fOK>u=vAXB$kCp#k zj!@=@dY)^Y%1C0yQ^9-k@yrjUV1_VTK7>`x=Z*i{@Qi2q!1~&3KP}f#&@sdSJE}<>(PTyX|;4cu>BE!BM*Yr zUfzgWhY#_kt%LY9?2Woxd#Xfy?x8mYP7;{hX;*7-8xQKVrxnLA5Y_m=rn@mg|A_3I=mS2gNB-jZO_%>SM~iV*qh5F5cS-m~dJbw4PGq!^^i# z);boS5@tQ$kR@svcvhg`|Hj%zYQWltvtLqeR>#T%0Gt97*ru)p2gjmXXtDL0d)8ETf1XYd=ngE20SUdllKD3q#>0SapYM*X2;h*_WXKLdIrm}3yG{c7Le~d0J8h_7ajcso!dV_t|!!;uNJg? z2a-=RA&JwDd62VyJ|G!t>Ht089%%jr8LUWX~xFo{f{B4Y(Ycc`d`1@8*g$AEkYl}LPUmb59$zQaVsAAx%4 zkh4xZiBoah200AwN>B+RVWpK3-$5A`H*j!W?0ULcw-xtHX?x6IUp&yo#*&dIneFqo zFpAV%skzdNGAkfi^icPY;|c1qQt;aWu|7Kg2)|Nk?MAp3Qa0k&;1jye5*l38LPvd( z5qs$4eYjiE9xFw(KOz37DC%>y|B+XNK3e~fb;c_k*zlxbT{sxT!L4Kh)k@wTVrEpX zzq-MqLZ>2(2FD!9Wb1Ts5JP~#kq5D3N1b+BpJar`dhJcpO|7)Co-%377tXWNqFgM@ zitabmzBKS7L+#^8!QpBixhJ6}d&86l0CT8;o$UT2tktX_3!=6R6r%zx9m~*#&nZDj zLyTlA&(X&WI5}OD0f=%wA!GV4b)|>3_11v|e|l{?nlgsT81#m{D%ZIXK=+xwVsKq3 za9x-!yy*I-Gp%5X%8cP9c;M&?Ygq8wEU`*Gd{A8duu32%1I+H&N#s8Q_X|v3*~S{2 z(sV(_E0W*DKnC<$(7O}r3<+*3>(#hOsKY12r`PwQ>q38;ZffZZy9k@Z=j5XMK!(k% zYxT*Aqo{Q%&40@6A0UbMW&d$B8Wa!gp-68AH)6L2#B0{2kjShtKwEfcb z5yN7^08CGnlLr`n32x%z$@aIni0zcS+K8Yu?k=HteNg;`^5vg!T1Vj<@E>01|9Cnq z){vQy`Oan+(I6FT4T7=>jQ>4I4*)0_Jj4SX)4UMQ>^zMkf!Y0(M5SEg53LCa#gC_7eYJvn#h>yeL3{f?#U%>ZF;&RcStjIfx6fCW%%?>T1V9DQd#*U=TxjGpvg1W^+|+rGN64%*Cotlu;2z9L@>oaw^>pRw!ykB*Px26zV%;t#A6VD!UF$NS z>%d=^^@lY!^`%jfdQOW-huu-kJJjjcg%fCss|m*a5HSCc`(G&_eTCmU{;b9!9!W+h z1BdAi5>DUZW0-ZCgJezDO;`wJjhe6t8fIQ?;FMvXaI{`AOPO0T)GoeH(X&Y%zRvHJ zn0mASFkrf>f^0)RS^C4XB2Y`;`+kz97H>x~4ZpiG@m9b30mIs54!nfM)MuV@#DS&fvW&+|zuf1r& ztm?A$!y$W+V6uYynXaa;jsb>=q=LM~jzI>m%$AP`k5>o8E;*SCQDk)y^m>LS;gtaX zT_voT;n&$le9PBN z;`M0)H6G`Pl9G}>15?;N5bu!5Bv6@;e1b2a->mfOfX$`~j}2n}4bU5m@sGjHmuM_U zsbb0WxWu5lRt0VOm;jGM11yPNs-F*v`}gF|_N=Z|wmvWe7G45OSGcm<>Tq!~tG4(z zF8^ca`_5qVxJ*<40j8Ex711k&j;SFv^r)zE^908kJ7{nuWbKEd25YRfxhgYf@CSlZBBsK*9X zei692+3l|n)Ilne4Z9EUiPeT(P0PvYmxLsNqPN}>(M!93)Rm&^v+G0qTLj|JrNwzS$sagO6;${xfjXCyX0dZ@njw z=}ocD_5^=A@abuJ=SAl!VE-$+S3# z8Io3%fO@PXzx4K}jz}=LG6?V|xPGbN6=s`H*&F0RJvL;15x9BN_4TpL-vn*_{7hs% zm%Vq^GZ}ZQn@=(vJjAnd{TJM@ji@hB+p$la%FL_k+Nu`+$2?)R(f=L$Z;-w9(HMA# zj81A6d%5G9%&Hz+zilR%CT3yXIiW6>+s7~Ex~j$2uL;PUI32~+yyZlBNE!N~u@oS;l5@U1_f9^b%U25devZxHjh+RjStyn)5QP)11vKY>#8nHWMY3S zSQAV+wI_{r_(%t}t}^pMskm7T8!}%Y!DtV`IYRs^Kx&-ZeG; zo_B6+!%yJNY=0%CN-O-tMRG0K7A(VB-4cUG z*9+H^SybW@0*QoHS!}r;0KgnL;kn(fo-8zYMTM6G;YI5;Q^%Nkw;wU(%8dU$y(z&yGYn z>HVZ3vAFmnN4VBDwos2><^fc4mNH8xoD-_fwa82=dDbTq7RXAWXreM+$9k$6QsVZ-Y0 z4E=Ycui5v1$lu34N_wnG_#qi{*_efTY|MR!#e-y+ud))w{qS=Y-;4hoVr{!#k~aP4 zbU&vc$|ckw%Oc={DgC_s&#^mw3$6wJPptO;R5a0xRQ#_as_aktQ_^2fa9V!=BX}+$ zVJD*CTwvJ4C(P=SPsK4JZ?B~+sJ|BZ<>LN?Arq6Bqs?RNK{M%x89%qV`Ufx-N7HK7NiCUhzSV@Nr;Gu3BjMU22UshghVvNv~(o<>0v^ew$w6) zyI2L-*x`auSq@>3BXZzRSZ@RA2uKLQpW8*I^YZebZsBsXWh4h`&z-pa7e2>NR>vQD zmBwo2Ma9~~e51Ksskp=xqNgnZYc6eV5uwPFo3e_SlR7FkL0+U#bvD@~Jup#9&~BWg zN;=tuy>UVYmX{^LtUwIA#m=%@HHKqI4+hWAzSUcpjZ!AQKg7UiGuU>Boz%*(l7$tk zvV$GxtrXAFnO#5HIc9afLyK6(wlvpRAI7&gibBPkqlET@?;j!}RgHPBz7>9b@5KF6 zkIwxxk@P>m@8eHP@W^9AmW&Re&rkD4R-?1ptR8Ow!fQ#TB0g#}qp*;+7@w$8OqQ$4 z?O^!|v4W|yQzjQIj4NM!h?WzTaqT|E_9D193c==(&QWsn%R@Z^G9TlC~- zQbG9`x~9RR&kR7HVCpi^TiVrINAPh`k+(G@Fq?P4{j9n-iY}4S%xtQs0_v@(vg5S> zejBfd`zHQZ>djgluQS>iT~m;FVL8Q&5xyTbL#&SDC8-!y>mVhyXyd!QkohPXx6?BFx$78s&m4yx% zKTW7mSO#uc!IfO-2dh!0f*pyBG0-syrlHP0mKn&2=g()*2(fo8ve!PkFflHLWK``R z*0FsmGwdKVqcJ4upZI|+?TjchBI;O0AWJ(VMW~3V&e`Nj)bZYU?t0Z38J#@wu zh(K5M@-R-OrT9IIv?wESrQ~9d+R%3isUb*BI7OV5*K5p7@{oZa8@a2ZLcp-Q?w9C> zwzgZnayLM;)kVK}^ z5kc5QszCjq{u@W1{3t5^MMsYNmnKn>Qf6gW+9nf+yZ4OOwI$RjB%tXZgdvp%pW?C$ z!yfqus`_N9T9`S0d>0f%$MnEWj`PxNsa7f16{?Z+rBSn3?3Kp?Z*qMU+IualVecjx zS|2myFXk`ptoQ=`Nb#`u%BX9Is8W{un~0?VMxL6bkJwXXT=Tha6BjeecdPCtWrAgU z4^EU{&9TZBoxip}{hsLSl0JUbzNo3o3;a9$-*)n_(AOy`g{iu8KVF(VtJ$|Zs$}t< zed2QY)lUjdw<&W!7*e1#?(F7B#E(NCzoCHW0^ zq>HIEGwn`85W4q6cU>FVhjw-RymV#9yKdgbW9KJ@p1NLqd{|L<&mLig{+q-E%0qJ} z@94fWI>MNhDAdp;yO?mpf4;&^DR3;i-7oNK40C1&TcWf?SsEHgiyn9p5pe01>w!fS z6LU6+T1YpXDO`wZe+TyiQ_9mYld8C0RV;^CYYf+JtMt#RDHozu+;uDT-fL<==-@D+ za&1b*eF+LmMllU4(7;GVbYZ=>gG@|#|B)WkzVU~5IB=d6Q8IzL`zP|oCH8-IZKFys zLra!Je2ST(*lz{xZ|r5zH^hB*@z(dWz??aBCip9wB9)ljVtish*EA}o@i9W|m6Npz z=H+Zcy>N|XMEldjiW2G1-g2<+32hqjX_xML=YC9~q$J`)edDlIfECT7dT-Gvg$hw` zNn+TQU8WGf-U?2G#DT~J5(7p`gsm!QTxL0CbMRy|ZU zyYdah_b3CckL2f&#>&BjHb@omLz=wL?v40SgX*s)OcX&d&$6(GVN6j@%*hE#US=T= z5VYZN4oa8z?8&i8;i1p8^K*{5UuM1`c;{ug^qrT}tY3u`ks$;^o{Adm3GaLeF?%z6 zdt3%0k8}?_Q+%N4)+Q-^^oz8rb(-CW%1SrY=)6$lBEht{6qib&Cp&Ea!iT(kX(#cc zk~{W`O8l=p|H>^q2wvGH45^O6@}X<;qTv1d-@!Q%HN_tgYi04A&-Y2~_e&72-!~9| zEzj%GAAjKZ25I?IMCh4{qhAimto8U{rw;6f@?t=k9fr5L;lhw-)$N zQGvoT1{RYt2)=BAbqX3fyWQCTmYJKOxpVO-H!s|}*s!;18MqNdHD~IaywbL>T(hvZ z@v)E3wcWE1dO%LZc|eai1o0rCDZ5mmMTnslilZs5P^&uBOH~qhg1qOVOq+YZYyG96 zNmxyC5h*j`>VX>;`icsVJBm@RtWoLpI<8Mo-Z{N1^H+UNXw*BB&9fBAR!!B2hU1y* z@7&tIWuS{4G?m7%Jv&jsA?*y*ImxTLU7^dsu^k#CtU2?Nn=GzgFY^A;y6X>@T>slD z;Qd6SAyW*9t9;xd)Q@6c(sF-lte|?|;$@^jWq)H^XvtzKg?(YLjwvauRIzlXG!HH# zRMlg-43M%wn*JoJumwedaa*RlGx@fUwNi6R`GI91j4}%`Q?Af^`aRT@nN3QY$CXo8 zWtPnaaVn3DC^eu7(MWR0tM99gbOsAQ{fbL`540O%?%xEbVdJKIk$O~7K`)+|%Di`F z>YXvA3!scKV=BEW0|C z#}QDAbM;5q?tZq7k)A<7Y#Vc}V$O=kFJ^|1-@8p_(a}%7j{{!5FSCcXciaBpI75@M zu}dM_{Mu2a2`8%Px*a--s{5K&^vjVxamV9H6@9;H3{&W-79;0|VMi8HIR-!Co|4{5 z=26RX!!UM1wzD*ul|!A%h_^U8)fpKx@AHpI$NUX*$Y{-T6Q^w^X1f2xOCJv6&A+$| z+%=)@xWP_00d-P!Np^qos4Nhd>%^TxaaF&m!o8EuVVnY2?>_Zt#Ofh?ab@d3MBg(; zR9Ko_U8)NhAe8)II`nhW)k6Nt#5kCY?VI8k6HrdrOU~bzjHeD6y zhp>>D0?f9Kes4ro4VJ1sQMfDs0!L-;jjyJVkT`j6pVF(3#v%8ujv<8~*zve%1$-#V zxVTru&04~)KWbN|kzJ8O8G96ccx%U(d%n11!sjl$`gHG3V`1WxrEnO-Ei2tnsRPE{ zIDsM-PRqaZzyQxLgCp{m^y&Uhcs37V)HRMXbiKI1w^1j zA5z?Nc^S|`hE^a`1F{*5=dt}+7X_u0sS9AWES)t=DX2M9LV<+OChbO%tu0~D!={r< zFQ)t!n<}~!zCJdeJtb)3WKHf8bP^lSybWs7gJ_oEpQCgCQu7wZ^%YiRw#dUgp-6W- zmWiz_47xYFs4e2{wnZX)6AZI1`;z~YFlNT{ljNsRi;WILGlfZ2t^t7t^*)Q^N0$MT zos!)rqL+cIPK)qVn#v|ulUy`vBP>S?1GR*j%v#3W_*-< zhJqtqIhEhW6#|&h{m`-sFg}!nUx& zOf~3%dhSTom=qhoL`BIuOZdB%Dr8ow$;*kFJ3VIXIsA5J?TJD)Rjn0j?7h~iHFlNZ zMIqf{eXe|N@>yJc_3R2dAN*fls1K=T%o=b(u#^rNe1Qf=3|=I-3Fok!Wh%!E@PIs! zahbg;+xo-87={DQaw}&BLg_Ia*jq1SPdq(Y=;-UTlsHx3TU&{h52Q((NcDZ_ato)e zyxm^@0UWJ%$kpJ8AoP-y;{LFM7N_TvBgVx+eJN{$Ni_~Ja|Kg>CB;bLIV}U!lXFsv zN=^nkG1^C4`qj(HZ_zwt3`+~CH4fr5zYYzGXsn#M8qzJu{+?wR^`3Efq??2GnUe{2 zVj$!}#HeA&i@*d$A(NvVpxof2V^8diD#O7&X~`FG?B7U`gH^|+ph<&v9f(yvD_EET zE~Km4iOzRwO^i1W*b#~vEU(V(Y z<20rRdt4uCb%V}Q!Z>3B8yu02XbpRGwcCW0s|0G8S<6z{lJ_~1+-MFFXe?0KvRh1a zsMwLNb+G<&W%JiEiZCuYc4*jc^H@I!12fM=jwgj<_R*$o{HSF2UPXMrl~**UI)7q( zb|#*S+A6)r**C;dD+p4z)6+gLcZ}O^7M_(k<@fc2H|-k{T?$oGCI2J4wRLNPj7qL4 zL0$AKu&BKlwyyXX3XLnH#MJHq4;sfuDDI0tg%9?la>5*MA1mWYtoCU;(n%1=V~?$_ zKg5L#QHEcM%g(5flFwpk?g?p>knEi3;jXMr&zWCy+p6|gc+dn9zy$;4`|~d6Jo)ScHe%SPmPq<(ZUuC-H-ucK z%=+Zseov9f7i{)A80AAZA9i|4GX)wNv&;UX^<3 zRl~cKeZedPkNKzjoF65S%60C6!DMDqe8XyH*afNrh|gN>q8A~HL|4O?ZXeOoIlk-P z+qw;C+VSz`(u)|X3d_VD-DOus;Yul04{mU(LgwWt*f~Y2c#^#lAA$y~BR;w_mt7~x zZN+>LfmqmHj(OnQCVisx%${+%J^UlFeEbh-y5=(TpPjIKc{|9r^Mqo)l<1H_>i977 zK1=|E^V-9uhwZG2%p{`FKTn78wS}OVWP48HSLbnI(z}8z?K;|^RUvh7fo6S*&^odMq>6z=S%!AwY7vvhvDWJEXaxPgXcWg#yGZkZqB=gd zJUEqi+=ZCwq&J0I>I;aZhVQKQOw227SmsRg%i)wU3C>A~y~CIyx33`YFbZR0l>k>; zKz%BcDt$mh(MCv@dwBQ`6C~zXRp`Q#!oc`C7mPuhEH4i8D2CSLsZyOvogn;OxgxBy z$1URH#ZltC>xmMALA&Jgxn*M}=!r(-LhzdWdF zag&87kq>lVAc)WLdMy{!30~S5CJ-`9TRFN*ls$_Bce!mI_GKvh@!oP%n0l?x^bwkf z&I;ngI;|aJ1a??R@!&1Pg#EOE0x0U2Cmy^xsh#XX-#DKCInypa;-EEBpMNLS-dj(C z=B24v@M0KQ46aw-t_$*gGvvo=!h=h%hChRxXozJnb#4r;CY28p$d##iAWb(furLs+ z)XqO8P8Y&WX_<*dE&~h0sV`r1eKAo~i>s_KRvVJ~#E?#_^qv{R=^Nv3<)o#?UL6DR zRM^}5b+-sx{mc5*CGrDk^a#Psok=6nPrK!An)!vr)BpW5O3Ij}a z8goKb4EoasB3WG$eKbI6QqwI_Pmzv28lIweP%x!raLbqX0QD?ZB51^OIG?XN>)+dt zHduLRQ`q&!PkLzB@Z<6BQ@pcvTn9yp;1;k44eK65AUEKua; zF1}H}oBo=g)ux$Q=ABkaHryQ&`7;d)zp z6I#_T_c&>@1JBx-ktRms7jx5m+WT!pRS)!kDEs2arhC%&dQ6PALSA17ci$C?sKN=f zj$L0poicRkdH1U}6GKW~PQ|=(3uQjO(@ggE`Lv>LRWZD@PZbNSM)cTwG^;DP+C>yI z$PhQOBrg#jwhA&UWdb++J*NipYOzdTZ)oc5B9Z;~_8S|3(e2{MeSX{S;xeRO?gI-{ zL3OzlEDVBxSj2XcYt1-R@%w}y9d3cj30y12%7rgfG7dOB+79m8H)wlj>5{;^CW+n9|$t<6{VzDfL!xUj^vF93Yg zUF-VsB&t`L1uD2llzBfyHIi+JD9OL>O_r4#XYo*Mi`ul@T7?Yn!WiA0h4fQSl+Fk( zB?Y~HYdNtxEo^f9&Ak(<+0yf39o$zC?Go!6mshN6zMi^Rs&vlb=9GPTROcHfW+(8= zlktmZ11=lSTDYeB=%8dv+%FXZ=~J^To;pmw8}T@oVRc( zQV&*}llS?=$wMRM=*Tif-GTJ)ac?e3IGeS~;o|5%2U$^_aaxJnsKJHk>%`T9#WV4z zhQY@a(X(`wHEpfzp4ifUDdpQCWizfpZVv33nMXv~Lz<1;#nw7I@eVpUCfH<7?NCZs znR51o{XR9W?QmbZRvRCk7=i(TIf|?X-BEE zD-YT_kouF^$wQp3ZY&Z96{<|-1KD=>UYs+gwVBESGspio!u3c_7W3W?}JDGz`Eb8yvQcj;ap&su?W9u#Xxs> zZ#-j@5yhr=sX8vBu*^$vfBO9XA5FGy!p_#p(+O z$H6nsjp)&bvIj{V=H;EIS*_IRkoGW zf?=$1a$KqaI>)_$q@n>|H+w564eLdxmSW*1p1R@SYqQSYb(Of!5GUTLeDxv#YJERU z`b%T}5~q6RB}nq!L}bC8o3SFJLB~ZQ!N%joCT< z0X}6Rb!^;e_SVN2#1#t}m{k(KhN=WjP(`gRvVKUV7X4fD*{lv=dVRJ-l;NjZdJl}7 zMLa|$JAjWZ@fD;NFNMC-yA)-NZkOiB(-yE=$PW{4%&Q1uYDQ$L1P-E@RFqKV)=2&+ z4u6!?bJu4pyYbO^CJkz@SL48(xRq1m%K*Xs_v0r@Tah}wl~ zWWHJVsr9hq7RXgIV60v`EiQVoVa>Gf`SN0@tq@`*dh9q2Jwe-E4PU2YsAodMh;mVqm%k^-=Qv@Qmt?b`+jFG>t@t>Gh9GD?K=z2>Q}v*s|%$)*n${C+`q`|Yds_-pBU%WA`i?Z-uT1qz=*eh`gm5WOLf$*C99+MzP$P)94M^)Z-g{vIu4;vDCkf0Sg zh6*lYkI!DJP6yXi2JBs zesA6Kzy_g^>5{d1vb=;RVLOjiT(lF0xkBL!7j!~?ATAw|Fw})*xZL`lLK+=#`Q6pN zp%HKCwb(go*yzP><%?;f)Sr}K(`qd+e)%DcZUQAXQwJA);TYZNHLZ1Y@N7u%g3scb z->iH0dg=y*C66k$?fSYlTNmNFr~4*MW?HJkx+neW%oa;R%jx{H@z}aRQXW9!#YjCssn-VDpnn78So{>Qp7nXUm`#c<81b3 z?}35O!G&_yS1zNCz>p&;JHRkfWq1wE<95(ImG7mm$ADbG;?-^|2HVn#5&^@gZ|VlT z!zjmAz=LlJnC1%%9vGH{7F^cO)Rd>8|!n?dOA8{nJ^$+ z!92jLD*BQ!LUKx8CJs(N5z>S z(r(zeNtNc|p*|N1o62%G*tbxX)FUY05nE+qqlyc)tSnkoiVyIgK}8}@l$E{Cp)=_( zsO(%{)hq*)3S|+YtXD-X(#)Oa@g}>E3c`r z-P;ldub+LCn=d`v<2$kRVr?RabwDd#kOa(`Dg#yL9l7$O?l7E&s@hsT@GpMvA5ylo z3=9mN9sWqTU%Fu}D%M!#!Te|W6F-3wL6#dovsSuk$CU(6`Y+^}TrWp*_DMcia!hrV z&iJu=*1PFj3f(ama<*UNL>kL@2qaO}k zen7@Yn2QI%x0P~#;hfjs68gV@zu{9Y@Px$Ozj4^$?;cY4UtZ7hE_gWEFkyh6Wl@4R z@}*Wm9NI3T{3L_^|Mld=Wxi19J}T)Ygu~1fc;c*qIB`jE=dNrT^IN0iLk72;(rv!p zpl&E0X(ux1FW%RpIIQy(UOPGZ6NkU#(!{<<6n~h=)lV# znF(AMgI}89p#kvUm>?t}!GB=_e-Q!%L^QN85BmLD)JALqa9LYoIvGtvR>75TOMu_2 zkR~X}C{ogtZ#&}op@n|?lMDM8NeUiY6okmYET+s!M}+2`2#5nxDzB9F4(`uugNW`} zsM!1R&cW&kJv;X7!!Wzx!L%#p1plwJFIA$2tC#^n`vI=W&&B&qd%J zv(@ET*0hYY3#2z}UVf>>^UXO48n0t*_#VJ5QplXRERZ2P{Ho^2Zim~Pe)vR1?N!-y zs6c9JJ8pz4?2GC3>U%q$+J?@%O%9Q@bo%cZtQ96@qIhoM#thQ;7 zi{DA**td&cWI|p)LG?;3by~(!*KqvpNyynbwo9UME!Uqq>g*_JJ|q9-sfB-k>i)Pl z`T5+R`C_KyUa8y|-*L@mPSEzc(>~vk21%Y|=l46q&Fq}u{BoR6eLvxv8EVz#5Dy*f zwcni)96_W-9T`M(rC5N^bl;2oKHjOvw4#vYI^kDf1t4=7t?-+_N z>#vG$>%Z%yEK#52tf%nh>9$)3y0Z&<h)H*kd)=J-$r=K8 zPJuk)7$L*(_fO8Mm&*4q1DW2oi&N zHW@DcqK3R<;@0U)^y=>MgAqq>AG@Qo0pN66h~2YSo(bFgC_DI*%g_w zH0E7I#Yv7jRNMan>R7FHzWYO)10d^VKy3QcaQ;J^@sU2NsvGVD%$+@L8n+f+%nI=@ z^t6vv^fs(^$Re?0An*RCWY>;lrzz^z_azlg(Ud-hO)Kt83C{AMCtU`3f6{M1?acoV zA(zYF&> zJjYq@qc#gy*FE>Y(bz8z5o3*2!!N`7V3LVxXVYyI6(xIXV%d*cbmt4b4`H4#J$&5A z7U_BJ2+l?zQL{*Q>B?8H@G@Csb9NYATIOC))xg*%ZHFCP`D`fbQWDFuFMxiM`d&hC zc*bx0Q!8X7U3qG*Sq)j@K9Yfgv-=7xSD2ErsRsL za+O*l((Fzxoy{ypS;XGRKggK%AKYw1LNAv$3(MK-h@$`OrltGVY$TA%&@n{a@&-cI zPgko4ROv(X72z8<g#cu+kM-kj-DevcRA?hS5n{bZsYtT zq@1T8$<$Aaoo%_!eE68Yq6u3|*EOFe|9Eb0wWiP+;Es9M)fVNrupC?Pl(pW0A(1q9 zu@(8u=e7~6rhK8-kqS2%Qa)-O9`&3=MUhw`OSRWWPkYz?7TbV^i*Ex7GuKC||) z0tD%K1IV*u4k<&`@|_fBqHGQFQ50Q6kEjj{aTTO#UKU7}d8nBrhea$^kR@>wx3V(a zq1drc$CH;V_SV6DY1_y#@`O+=!1thhzegn1$AeTd8s2X><=B;zfWAwpqrpd#CUvgJ z9VZ~*Q_5jB7ot3Rs(#yhvUWydlT-3hG;MZF|H)0LGRK#XJ*!*dPj9ZLE*EBImza6i z?@VAsia1)0wS8F0Qq4P2>ixq%jmxJv-3_ID;oF~ZK6Pf9@>jSFVXE#_99s04T2xHtF?r}LM^=%Uy75t#ST(<67>?xS3t$D5$7CLx>ykyn{&{!;nQ zC);5tb@A!@r}x|M{?c1og5#%Qra6nbu8KbUv(hC4O`xDpUNf$DjQF)WQxYFgnT|HA zfku`#bh%x%-B(SJB?d(z`uTI!orC`k%IXSnR?iT#P zvdxMgxu!$CJ(UvEu5a|1U#coZCO(#6LZ>~8z1P^z>y3wL7{^{y%wcLynWS3IqgXV$ zj@g1cP&v7lM_s_VMP*w4L?d*Yg}G+ysYUIBsYj>@&=qHF_gVTb8HT*9u{`LA*YqS9 zl#hbno+ct9AR#8%Movfqet{Yvlxc`)Vf*RW;Idl8)J7P=!=qt z8Q-}1;se$bDyNMK^D1r}6VeIK8ejWTHK{b==R*JBq^k#8d=H+3OQqCJI4B=DmS&pB z-gutdZt2{B9rhr>HM!aQ+c`oAoQs^lxP8fFcUlFoX)Lg|R3?1?B zec<7?eOCk7+sD@XX1E(J-g`a&s=%V_)`3G8Y+Pzk&e2*~W*-cE6EE}2*B9@(Y4%}9 zqu|(;!I+uDQ>qL5ojKj83+be{{bhnwSg!UC0z)1WkBr@f&viF|OwAiI-$8Bi`yY+W z%N4` zeCcbJ(VQof$;(Q3KV#)cuZSU%4maO?)OPaFzPNaqDf#lQ*ZbImbPxm|6O(@zeUpPriP}?fYJ#(ctqjMYj|h zii;zQgNrJ6hjy~EHiiapPJ2Ji_`*K_RVtGt-O_})u=xJDc7e}KoX2l@vB^Rz91F)Z z4rscmEx|rVCdN5z$8}oAMjIr!@}AwfJ=fE18<}uToWAt2eyk1ls%1b5t83I^V(2-S z)0!TXmz+-?EKYvlU01~X0oz(^3(>N?Ow-Xqkz3)ya!XSCmFtHltrQH!AtpLVeoz@P zi;m<3mjjFQlPQe2Ro$Hw6N$7px%$%rab)zTJ`g)R^5TPaoY{Y$Is2Mb-s60#_+9PJ znywmlItwLvb!mK0LM`w3S@%txdJ(nvgpji4!6v>T%%kFMi^`K!pW}N+-*6~!`$uHk zOCEc`@Y$h^cAjtGZeb+RxK4VBD(krqN5sO-y~nYi?@U^E4<_h0?P+~@uF^ry(Nr<>bk?b#9qzax0N)HJ3}h!gtdm3fvNU~r4QZ?Mw>}z+DDC0JU^7R z4CGIqN!Z(TT83$uW}(xv?uPnT3;rS<0YJUtZAm)FYAphquQfeOA{A~1_O#qi)$$xKIThi zw6`|RKvW*RB1z|Q6^g9Adq(H@U8ZEOZH-pm{`^4Ty`0QIR*_p&{dXRvklSAo(@xPl z-bA9o;u+|d9$WvcT1o`W_Jz7$@TrxM-wgds1q;XJuV;bQ}sMp8s=(7Wvl z)@qh^EY1R~onJX6Vr-rsb+h$Fh9y8`CFu*xUR-}0-dG>YY?vIwwo5JLanFlmsG7%A zZ)02Xm&}`Qy3ZZ;88@pqqAw`RKCI^bC@ci`vZw{J^jfdgJK#7QgH>GAx#Nz^Ma#hU zl;+cRU1|Deej~?E3GK6Zw+v)YsHwZXpE;-FN6SQxJz&iRvP6yg;3vZ?pFC^;}Fr@{ujtz8j4WF#5exa1p zD4SJRuOI zrB>S0u9cYu(X*E-v(VrX)&&S1XQX`BiflEi2f4OUIHf%X62q5mlrn+>n?Cxef zW4!H>dQOjUw;SC0!=F=CV_@ML5toj}l+DtnKGidmwJHq)6W9lb5O3AJuz>MX;)DRw z*cM&lvL=Q>7GaeHYM6r5HX5j3oc(2km@n+m?jhh;BpT*G|4-8>L^U8&vI#&x_4$JQ z*LnU0`;buelgT>KN;Ij4PMrChJXIx3Jwaj#2Na3k+qjjibz3TOYWvq+l@-L4d+2yo zIT*S|Q-E}a5NvK47Tz@PpFQph;L4e?Nr)H8H--|&`gsAtFyi9Z!_iOL)SfQ~4ER^t ze`7Qqlf#U~a1;30-GHu^m&+3*)7YraMw(p|6}&`QRv@(_2+7-4)0^==(X@iL4V1UcIpoLYqRK;*k3Od zjt3qn3p_V|qu@=pp8iG&-GyKOM(MtA{1veFU#qJhh$=dC=xCp@4b3T~Zp)sPM5jVe z$O1Sjh-tYlqTF3AIaCoL@PcoHRv&VkBulyeRpBNSt9e=DQny4-mn$=p3@1~-=)53< zJIm1`$}3~KRHi(80z1A+E3ata$bhn@G7V#ZV+KlS1J(w0O^yQej8KRiYi5CYb?6OQ zttrh0OLKyx8%bvtA6Rt;#!vE>x}wE{At%R@80Xbcd|x02M=VNU#r_*o^z*AD-(i)g z-zW+3x8Z&{sjh9{!vIU~)_K&Cx>l%hJ>hapHpekv=~wCHd7qoA@0$<19yx{;3-?Ht z`Z;Ah3IJmW9@1Zf=TWB}@nw6_1}uyT@5~YYN@mnZ1f(c2oEc*owrh+nVd(uvd1x*4 zo4jxT;*Tww?=fQ}EJNUm5);4_5b~f5Ee99Sy$ynZ06(7WyRbl{$J=9P9Jj;{D=joY zGxwh}ZCg%(A#1`j`&bLTOvJ^AwR+8RdN@@w{dbk~6yP?YoS4GZpioO#EgHIW^Az;x%K!Cwa!`IJ#eT%aQ#yTfynsh-y)t{m0^& z1;ciX+AKVr6Q_!d!<4bUx!wXL=w8wJ82=)r9@qRTWC@4BAq18e-;S=K2YkOU_;ILu zA;V|FNV~XSzU0+UcF)8PjYC*c=Wi6{k4A5<L@OA>Oyg4&v z>v)0Sj&DCCaQnkuOmGw`!_G&Nia+N~!C4^{0$jw87S3CM7w+}1Rx>!DyYCZ|cJRsm zwB7oT4C9~ij{j;_;vC@sS{zTD?lOkiX70FeGOEw^*yZR;wzxuO7rMSEs}<5S9yV8n zyldFNJm1L3e|-nL364=dwtRaw&WO|SZCxRs=U~8FQX4a>Mr`sX)s_}$tR}^I^~=cQ zslFRm7tTeFVZCYu6iuMA+((}6>wdX>m++xGXPIvzF#q7Ez!>+4a(@dX2`?Bgf*}j= zMg*_EX*^gShRUqJcU7F3;YbrBo_5SW+`vLX_N;&U(@C<^_@h;3Z&RRGd75PrZ|2vH zArY{ksLf7=F-F;Ik$y7h-+gq zR3;v(21cbtIKj-?)k5DG%4L;3r6>xK6)uq#s%z$chB{m1vzb4x-3g>x#OAK)8b|_E zxHx}RT3R>Yk6|vwb1(e$C>#pCj)j$p6wjna!Wn^nf{7}5k<40PjWpNQ2Sn-oAgB3< zmT4zlB}`1c2@BGy7tXZiso}QO+V5TTZHWFGw`i> zpH3;;n^$MCt{km|V#(jQ!75oTgr8}qrq_#RmQWF7Tv*<9r4K4)EKAGePc{gKI4;V9 zcDX4+!;a#L2Nb(xVaBKQr8kqvg@Qs5>af&U65KcHV|0urPu4}czw*qxg%YCE(_4!U zT?G6_F}?$s7XC&VvTZ%+ZX&A$y6Do~z#QPGCwlU;5brP|mvjHR`>J2bLYsSfb|#lA zuZP~6f)6cKLUR#o69?)CFdu2h)#jcV+)#{Y= zU>9XeN^S3emT{OVF4#|L&3@fscd!h+fuJt<*@t&|#O=f8^)9{`=$1h(N@-X5Lsg0- zWr^n=_DoBLCHYl7tiA<9s_QCFc3Ed27}C`hH-YvXp)jzfBIxaa{Eti6ueI;|x|9aK z!LE36{sElXZ*w%kA}fPsVp!0D1)R>7)>;BlImP8t%mj>aZ4m`YSn0u#4GWwWNayt% zMKRUaT(|Jd#I7;NOa)AI3!2{;lf0L{;p%m0ii+;AE47_>g<*4nq)TtypN?IO7@x|- zQ6V~44qT(tnUXD)J9Y(q$H+%_Z&X&J@4re9`fegt$^a8>IVSN334`70e&VX^a7O&#gW9LyzPj>@^4md7tZ zb7G=uexnozv>dW+q*V34soL-Orym8F%pGuuI@_(bGFRFxx$(U-u%R$9S!6eZM0q4X z(P+eK*FyndGD z^aa}MyRG)=1I%wQq>m`u^x@g&1`BiktTPA<#d|i$_ow!0dIn$gobj(MJqAp+GuI8% zOjD;s0J~SAu(5&gI|y*-=wA8jCs+2>Ryn;gpmcdyx~`#Grg=l)m`5)1ElWmcB@0ru zDx@5>Fx&|*YdSU*DNKLM%gNGoDOnhKy&$lEpByeer+0`NyXVl29CW#J9QU*`cSyU7 z8f{f$Ysg%ie~M>g=7^~D+4MBtxE=ZNHh=1#Na~TOpxhQnb!;P}{y2Wp5XwWGG3Dk+ zp=06^8^PR#x55*m>{0a?Ed1P9EAWP$*Uh5{ldQnyPRqiK!NQHR0L+ER+U_tw9P&m* zZN@wOh!%#knVYIl=${YG=~b2G4S&_;=FYy-^(yuL#D85ZutN%01`OzOHvpSo;WW~r zqEfbv#16&}iLc##UpE$pr-z!CTHsW$yEhpdH{O<7tkNmXw0grxGqtZA(uQ0D>x~vjEUOvv+r)QIa&OV#Qa$h*AkDV^o`|iT>Q(-`Ei!U|ZQH-M6 zKL;IiVmIrspihz34V^+`UewuzW*FJyGe!5AB_pIKNCfaMF$(k+^JD&HtAUk!Qa5cm zx}e-PTFXK4v9t5_bF&-zs?>BIoXjN}3EcT_G6W!XOtLa~%R$U8Eaxa|!p+~O(qh%k zK)kPyw1<>YBu%txP`y}V-&yp#vyU1{sMut=|ILu}xOaRkhCRgQL&m^Uf^Jt-xCfAG zN2#P|HCpR_$GT4-&;Q(IH3us;5>sP$v*F5j=d~uM*gM*@%Xz1tW{F~XJo%McUGZo) zfaE9pP9mZ1iprO+ZP`m8$z=fAB3hpSxO2&Ja>6d_JoTwo#GxB@DW7Yafh}mBASw8Y z@uBHgs*QP2Ck-f?;ybUgf$Sv!I{H`|z7?{66=lYV%MSn&^!MfKjZQ9_Tuf@Q&$w4# zTS}AwkFb4c?y)@+7X!z*WiE6BPD6~S)e|!fY40xf#2(HwA?~t-T*T5; zDsX(i!y0_6nnj>^;AhiM*z_j^(gFmH%Z!C=C{6Rr&V%fBsU$6i|0f^cUE6XL%kDc8 zVly{lUOpf)Ma8WN^?V1mQp9A#>w2EB4m62>flKz1*w;Ru0J?+CDf@#p=S^(WjykL? z#5>z#Y{X^IV>lJ}WsO*}l|a;FON${UEDTpXT_srz>wH4Ti=-%NXz54c*gSyy^oX1p z+Dt3n21oOz)#urRv}4}XRo%@<|M{-o==)G~yGpMhi3FtB`k1qL!^L*{W=S6!;eepV zHN%7me>n0pXjq>|;Wy2Kz6Ol-6as?4uhhptop9cCjUwJ1Vmz=1rA?`AOHm=pg0t5$Bli2dz>NgQZ@%4PWp}n`r*-B6}Os?WMzlAm>79r)RGY08&7= z4ucjxwES>B=mj8=ZlGnd;z`K1T8un5>^>J1Sb%}+wmxUe(l@U4LGm^2#ISfd^a)p* zwIIXCm(!xs4ekWno3u}Ov*%Wb1lw9?vFD(uWXOlVg^fQY{{mP&b5)Y=VeZoMskKEv z8L6)96XP_fY5nAgGe`FHuAk)K?lFH$SR6lYMA+t;fuJOg0S#>WSL$AS-kd91X40=Z z=}*Rjq@}fyFp)T>qgn`V%*}Ani@j4dxJ_N|@WGM4XEU2bL8ypsUn8Ij-$Amp+X}v& z_7)xniJh#vo7F6gIrDL;psNYRs&CX>1z_1bc60*M{D8D`$UyZx8ELZEMGhnyv}CI5 zm_~Fjwx_`3pC}Z>WQEHYi-J`RxiGY#_A1u>z)McQ?6a$((7PkLx&~oCB4!{Pi}6FD9t-DC5vCF3H}ocC{5rTrO_} z3#n7sV5MMV?kW`2YP;D}c`*zp9TV`v&4qWkUfuRLHSE5^ZilC((%+Tk@UvDWSU+pO zPf7?lx_XS->kjY;5C%1B?mIs6CiV`kEz#&71zYLXq!1wpcGMC_z#OP+8gWexME+S7A#YC4l@+6{5Q?Lw39%js;@*zvxhUw z0m4Wp(ifjatIXW+y!7QD#l48Vo2P#GIcEMp^ss0~f(Yo+>C7thkf;cp`HgZ?Uok*k zOvMJw{;(lFUad5k)6P4z;7}ofTVOi_6DdxMz=;bDAMK~wH#bKz zutoan!IcOGvymIcM?gKm!$-gYoWm4wtv5ba;nn~m&Xm$Fv9BbABeF#3XXbvR$PY(7 z>%<5g&|rl@rfmp84ak5c2+I_avzQ{`HRMj^u)+wHSjb(fci{cQaPh>F(Pfud%78gjX72>GsdP8^Bm4A%SI&8rPVT%{))&GN3tk zk1dZvle-MM+Qv0^#`0sMx=+ttma7P(Y7gS+@YBOHmS_50S5{P(!(;@^$+ks)O}|F- zEfii~yn^M&iIkRYtj;-a8?yUBJ0I#SJ?eTPqLzX!USFeCLD{DLU=^kUD_0DSQA5iV zFLvz`Ii9L{-f){nbX#!}@c^CO=C@_l$QdA6oGFEJkIeoT$yV2+ooEMo z04Y)BrVr9Rj0P10d~cNEPj?$UYNFE_gIEc_7v&D)zbHOgre5TRc!amSq4L#i4fhsr zZdrg!)R*V{Mj6&^!7%jKo*W+`EQiK(mw0P&MC)I6J_{Q2O0FAnx5>4 z=~>>5^0KA@bxP~sC?DMFCu>mqn(Yq0gDiBir_du9JyI#fXe&sUx(~ABdM{UkI=7B!)$NVm5}#nO3}&6fjnVSg*LXGn>U>td=3hc53PpDVB9^$JcVh!V ziFcyawn1KuWlkGF4cV$wiT@@qLBA4HO z@PUUt*#9wE{}{yrX+p*auKtX8UM8#^^*`_ltxH@1dexTKk5w3}n%qMK7riMlT|=Sl zY$*Fjfy%s$c=Cx@|LxS(d#xf zkJ#I!dVDw&(^Kg?u$=(Wj;yx6%92+mOeAqb4)RFf^6J2DECz^1TjMn9ZL$XTt*-T(Kz)-rul%GvfSAoHHhSHeE{M&iseEji|_P1k*aCg zt3}VdAo7mgNum2AyV90=HM`Sp|DVWZ@!&TP^U~0LU|@L&Vm-={@YJplp2-Aft#j72 zM<)c6*?t|yRiE$XKdZOVSWU}brYiMsaJ=6sxbS|cHb9TZl=gRxW z#NjGk^u@1@wFkSoU-^b@nv?40-MCX)^qgX&#$7)w_&3ci`};;s5AE1F5wnZrreYN&4x&$i!Jn z5^Kp7N!mWM+E#G<@;J!J5PI{j97Fnn(G>UTQ)Rb1HnnY zq%??z{b`yRFqT=hhl}*)OjO#o*$U~*33s~D11h^g#p@KKC5#TRZd2qaa+ql>h3f*^ zdYKUu0>rB8<`m9{QPa4?#)yTvd+-z+oXsnIB@ji;k7l`&(L6eRX3PXX9}?ovVk0a! z*Z#VZdm>pkz1Y4si+*&QCz4q^RhDt&J2PWE$PSc%*n5QAZ7-qQ1jBnbTExUBkSaB) ziSqTs+`f-Sf8lwTkwoAfE^=MKLs0SZ7uqBH%P+P8h1Q!zvmU8hETW{0S_@54QB}+k zSitE0i`t&C3ueLXk5WYqe`b6V< zO0H2`zUEeLba&Gl=uiJ6;h(xxJ1ID<1!<P<*wXW<$V~x$X7YuUYzZKT|c>k=>`-0X#WV zR^2Zq0agb`#Z#*Y^A>l#>`s#jcSa9Spsn*lnC+|tfAr%4Tm0>h=ztVmXV(gQLqy1> z8tk24(RonOO84J!f$4HNUGrBbW|14mK-oGccTaC}ILeu^{n$OQ(%0nuZr0sZHbatw zn+8zcF7^c>n3qEH8eHT2i8It5AoVK=tT{9hFY?TOY2qUVCktJkiJ5B4aH4kax}}|R zG)3*(Gkp`#?kAScPJ<=Keeto`iWBm^++%E-B=h*K@<( zkcb04-wb6MJO5P8Ibq#p274dtkF6e?AhkH6`u@IhW*-k(Lq6c)GUCD~2e z`T*>(O*5jJ#*7DdAriR)QBje-T-^b&Na0>Fhr`s?L>N`W|LfhM7^Q8_Z2(-GfftX+B@ zqmK`q2*eT*xa31wtqS!#eU;J4NBCW#CK-IN?M9i&^-PWNapOn(OI#d><|)B>fAs>D zNlM7bpi;HxxzSI^wK*yJBNw>4**ML^dl6QVf*;tfAgFCVe!0TQGVN}t-ndgCsO5t( zAnDj)i9b|{|BJazBQTGa;;qer(*#~&(zMPe9~je~{6J2J;9uSK(?qIPt2RU26z3Yt zjnBubob=PLej%av>}Fsaya2)4L`<%iIap0h^my`X7ohffQn}sH3JTuy>wursw+xA( z)4H0?KS?3?Of#8e{e+;voJLV+P=46AWoXz3N=3T9#BLLgMH9&Kxj<^PNs;#_X)q$R z&%0iTY}heY*n$@V5`VYTJYHyLIN~F(KS8%T*@BNnXP55!WDNXvhrcbTO!ph?W9AMZ z*4hg-nFGgj6D)`013*ahDW?*M3Zq{PS0GwU7LC~dD2ca(YHH9}|EjY;-MY<2j-q$Y zMY1|%Uqa&qf- znWPuO(?nZv$2D!(=A$aTTh{S@YL)Q(tFN96qPslJ7@d$pO1SqIGE_*VpceizVMjr` z%x3xEDt=f`R%_|?8Xes)}y+?3tu#`Gt%AMz!$QO3B>ngm{p&vwT(y{{#qaFDCO1dGfH}i^wuZV z9d|8jmTmlnhD zu98<_-XN7OhsB$_kcvi{aa-@<>AVLhpgDN~njQ=R0R2{5;Bt1^@FxDJDZTzxm%=$8 zU%Kvfo?i7MvF@ohEO63U_b$jXuzR`vsJ5&DlPIWM7o6e25#1gZH zecjmpWn=N8()oGc`0}Oa*V8cUE}1{MHys<`nRR=+bsYVVQ2N6P{7`(dP@Q{=g>$iJ z27JmI-YV!lXG#4k?DVy9o#Ikt`D^3rjmzgfv`(-8Q0fFGp8Jf_fKY|&C!Cs#P=8U-s+ZP_bG@#w>{V_0%a(C*k_<(U8|`Rtm4t12jc0bP{~_Ph}_!u)F~!BH?eLq zusWCXS3WM$YKxOKcBDWR1d<>6Xy-0ZAg>!p3Tj%|M=D%;>v zNxEFSmBrrr z+H8x-Q?KWjRZ;Jl=bSA!;jOP4_oKve4U^G{fI01KYvP2Bq|u0T=ma1dU{# z&$YiW%n8XC%+iuUX4+Rf0yFGNk6wGQ2zXQIcp5UvHdoEeMPI%09KczWl4~=fhy2uJAEBAdu_q-r8#qGoRBQ@JNTwXWIcC_Z*gK}q}gZs|BuDz#P3KJ=xF%PGL* z{ZENI)4v$tPq9DnZzCOd4&UvIMvJJYpHihE!ujC$DeNqJKV4G;GLIY^zPm!!+B&vn zh?oRo<*H0&{&;=!WKGB({z0Ry!)0#;&~yw5v(x8CIY%p z$2S=NiUV4?6rT?hP8GE=CM|6ZO_qjdTO|BOIbD%IKSlRB^-SEwtY_|?f|f}<&b}+J zUoYYPZm4Z#Dg$jH;mYx7l(=9hMX zrj7Kgju9jV=g5E(Y5y?lzdCn04eE0OG8&yoUtJn~*Oe7%jtP;SGe(2pk01m3An z_qNi;5_nvYoocwNFhwg*5m7E2kNpixp@^p5yN{d=rRKN?pBzof(S;7r|8m=b+ZT|P zbQmCA5WHYmO%)ftUAa=L0e?emV_WJxCpTZMHvmZ0a8_!H{&?Iib5|u;o z4?=G4;G7!!o{lXcI|_9$u4WN+m6hTEvI{vp)G9fxe*Tb%XV@A4gA?JU%yw7 zl&GYPibfgA VB%=2aC!gPaCUd;ishEbDgm>eILf5HC=c@9f>#O9F^UB|xywlD>u znK2ShD~m|*STEkN>z1i(uRclEfO+tY6GN2HOaxn=eNK^za0;@($h-92kpkwZR81{& zGVr(!k_v0a9PvO@RsG6{aef^>>VOS z;2{H}iCS#XvS@h7szk>1H_8e*qQ8(*KE)6KA@|nMNl>SeE^GH(==mn{4Eob z3}k=24KX`sxyp!%6es3hAip#hDEKfHmCtf^A3yi8TYONd0@Yoh(TjHQj@ZZUDB=^| zBH9|Z-aRvVHkxp6Jic1me+Ou^BImw|~ie zn|5R+MGegHKl;0Y47J4>LUVl&Q>m%Rp~qsOf{*u*0wFr{B~N6CdmRYF39feYMPs(Yhg;dmXfS|XIicV=c(>s z_m&6@7i89I8d$}iAqp22VbtyLZqf+u{o}gAZm#A%xGpQ*yW0F`!VN%`+JjY^sgpgS znokc$%Xr} N6!x47=j(2wJC6c(fz-l2#TQ*&`@X`i$q{cZjix(3bFjj7|V@_|J) zGv7U}k+XGQ%YI{iUaxNruv*zH_4sV@A#XsYp%qJ?iyLJ#^ZY&5G#f2q7p$uVYdJzW zB93_L?4-Mi%?k>l~sdypP+jsqwAv6(k+#L5{h>H1IfQvN+muSO|qQnH%Zg9-y;?9lex__ zT(Al>*bL5xfan$}QMRgo%%4YEbdSeo8otvg?4kk#tP@~i3}?@p>ZFsUxBZ=uWy8-j zL2P8UJ43kg$Su*$jB~#SwL^#Kejy3?+Ib>WBibmneZ?1&WUE_qc(+AKtE}!R`)sy& z>QZ-xxRsyMC8IHZQrAxkL`g{&VH)xqh5lj7u!2AC~)y_1?xLyCK*14qk6f8r>OQqYta4i*;!ce29WgoX0I>N)y0O*C4P_Jyo9j_)P!%k5xQrE7uj z0SalPJIkJ*CZ)O(B(@Z4)?6I}7Lw(6xEy|?NdD0zQ7o3t^K^ZjO-uY?-}QgwU>{|I zP*AYs<@*wBp^d^C1&+=~pEKXRaPT?zO#H(E{%BT?@#=MtfKCo3>?`L;DkTf)f24$# z;ffzg6aPh1Vs!xe#tg)sP-avbuQ`hVX6h$CE#6Q25!9qGZJ^mDJWE9@ny+`5KO6(= zugF%y(zcWgW?m^rHWVKhY$vodHUB@0_{YvY zvJp`zkNlS>WctW*S<_YBNi&{cg7e^4(Au9elHkB6==bWZBY~PEh+e^u?g0&hBoWqS=+VX!ojGoz5gW0K^{h^ckg`zx@Z=s>)|l!J|ZFZZUh} zM`ymxPjAz9ZhXW4g1M*V|2h6k5U_4umPgKld;VEk*%;9=uRtMce3q9R)xgMb-36RM|ut+_ia)B-|>g>%!oLvoVV6pFK=?Mmzh5&M`e6!8b&8-Y{PdkQ!shnc&qmB&L`TVN z>t-6LmUn9?MJ=vT5Fz&vF^xy$FO9rfJ&D3lZbp;SeEw#js_%|UoZwdD8@4>IUdXA& z5(oKNw1TlG#mFd*d~d=Sfpo{3G+ChFN)HfU-n8=j#-YTcBI}1QZ!V%KLnUBEA~a%8 z-?5n+v*73DFXO8}!y%QQ?rH|{Da6m@CNgCf=Ret_O3;JotsO5@Eo8l5TesN9_oeMO zc;6k!3^`sMA$f(nz+g%6_~f0flu`m$Hd*|{D#xzd)556FZBX{I&IAq(+PQDk$1T?a zhSKa`7cAxG`~SKR+i`J7KQR)0R!95LG_U=CqvT#`Ca?B~6eW)a&N(%EyyUzqP z6Q&+K!Uu)AQK|C~mG&a?bAO}o@CC+to5txD4)Nw@ys(RshvX+mrhTRMcZGqO6C?`^ zfHa);;$_A~X|Jgfs0^(|B&i=>Nt;H=+Ewr}QE^YVR38Av-H#=&fzup?3B_HXJDQV9 zVo{Y%GD&6+1b8k|Kad#}7PFKxNZiP&_Hw@YNKvVQDj z;&Kp^`g}*FP`bBI$crr9zXg7`hvEy3J-2?|{oz-OKW;q{^8r0psBs@*sb#*hDxM`< zan3CriXr;05y8_vX(|Xo>706T<_|u@8HtYSf{B$v1lO>##rTLvAgZym#n(#_VLLxb z9o|XmO)WjS1c#`YO*N2ND&7xs?o>4M8FBipICdQ{k$|2ym{KP3bG`@TWD=2eA$H52 z(S%05RuH5ukzVz6+Kg+Z$TKJ|ZfSyg{0HZnXW1bfT#rX&O2VPnM98H`)PdM~bUV}c z8P-}Q3QC!U;8535C<*bJ5u6Z%TUO;z-1;D9)}SV5kj?4EJ9%91XeyS{YH6it!h%)i z*F}4DqcT1kqD61KiSu5Z*vAbhgN}Pv+63!=;Z0;?xfo=F?QFt z(BQreONM>?zCa79wvdcdTYla9nf#oJPg&b6D4vQ|vD3g~gqHQ5!0yyb*^^RYC;xQC zZ@x+<|gIz&k>xb==>27AtZfe$Y{Fg)>yW-PZUVydZ z>25z(CenPz-c3Ns2=*aYWhi^YQ9PhRt4;W2k1liwCOf#emK9g(*E`xb>_^m&TW5Ko z1}Ub@l?=iqaOpgaX2l?KW5k?!BljbS)W}ap(S*ffU8t>^u0X6oQLZv>^BXyXxFIE6 z^l62fwEYmr)ZD7K6kAf?0Q1^pO?PdHqICX~wr8v&j+tLJyJb}IWsA3sk(!{FC5dG> zHn>Yhn_Qy?a$yud5xT|pm?enSzNw!VGr~k=A6;25<96`E1c>+Z;v@A1SiVSwF@B1? z^5t)opsx!++gG7$y3ea0@jn`i+bj)^NDq7_f-9Y8pEeYaI%XuqWqJqV*;!T zRuM9DquB#aN40Rn|4=)%GV1bfci7PiaN?yyS$V4K<8S+`cLTl6lwQ}#5+u0FO<_v- z+f?eBE+bkkVW2(RPLLU^jIUulc!E}<>xC7&j!ICkk2(h{#lCcHv3p3>y-#vZl-Y z6wf3VNy_p+^@BMG$-^ECo=e8vrc*^mC==@UCd-}nI=o()x7t$n!w)D{`!|wi$6Xi? z@$B@;Uk#jCq(a|VqR~F5h6ZYBr<1ry|C|kEefpW|V?7`-PLD2xEuOVxj@8<1iYXW)mP5Z8a?n&X&d5eOc{-QxuDQEMhhtL!oAz zEm|`}Kg;tn}j4* zn_QdT1$D?CL?Q1=+i*X1^@i9$x6^?`fBeY95c-+3DIK~NE0?Z_|2JR7G5P)4sxGS+gj3aMe`tH+Bp zp#ov+dHDnccOusye2v@;Q(Dhq=E>44>M#rEkv?{%Q!|?ko4AiZLIx|sYZDpOhfQ2$ zf|9~=G=gY<7TM83lm$@i3Djn}l0`mod%DpoxU#wQs=n|3lC=It7k4V;eC9}av{*|3 z3c}Mt`o6#v?KW5RAur1&5s|}ii$FhxSot-6kLbN2O{)ru7k~>t>D@$@G;KKu1p1Vf z){gNdk<*D6Qn!wJs#Xl-NE)`}P5;kj3flbJ%Z4FV^OnEJ$(&)QvN&U@wSVvnciT+i z|J73#Ik)*!tlN!D$LeMfRR2VHwpd7G9}mZ7fKz8sRu@jiE}1Y+AKarfSv{0jXv)8N zv{}>j!daDubO8Ooo9P6*t)>XE#^6{4z5YL$|K9)st0x#Pp;f)cq)YTeC270@7kbE< z5KvF)x!=I0Gy$Es(ZOjyQXGBs&q$P^h+&A}uobM$>W^uxa=*jOad z{(35&XE|6;cXbzX4ism$1|X|Z@1PULQH)JbFBbrEteh5P9$lAuBsB&uwNwB#^^{fh z6lk2DH+}ew6Lt5e5o|zfd|_B26!PrtPrtCy5$(bTf(gd28fUg;X9fWiDhlfnyPllC zt~~s+o>#MV{9$j;b8IE1{0i@sFB1>hVVcnY=ZZ1Nt?YT$kr5u^@SLI;TZ(2xxpo?C z7^AJ<{Tf83KIbkv?BhVUE$dl)II1^{qt=mO%x{oOd&r&CJDH+vX`^ zSXBhs3CD!j6LFC0s83Zm#H3FXMP(Gt^k^zRqL>r_oPbl2?U}UeE2Lj4pzl{wU-vR3 z1hKX>ljHfBL;-4%i|-qoz}kd%2lSPe03TG1aBAwI?Ra*gg~b`f+POg8-zdQS#p(2a zM>UIEx<*Q*(15WTBReY3L{nQ0m4niHY)6yY_Zmi+TO()l0a#=NNm7%KKp$4$XbswE z#n(U2MZATmbuqY1DopFw%C&L~q-<6(GGXVZs;G7_MYgE3e~sI>Q?%7%5qFY+6e-d7 z2bqXU&eUAV{0%iJL@LXK;*vkp%KJAzXxJwIZluN1LFoLk_~hJN@<@@3HZV+&LAbe!GsBpQSHxG{9KWFB0*&WRNBQ&S_LAk zF7hmPwkj7s7<+{t>6#nW0a#~6`g7{9L)BC`8d^m5?UHv&^U4aJi}FoOK6NY(&m9|T z!>NdI6VfK&f*_vt6)IZwvC*?`BtGUffA>*FS1H|!;Bx>aD4WPN`ti1_PE zgdl`m{X-^+N{32xOEmw{1LpHUe6>2vKFI;=fXAPPu2>`+9MxCN)I1z?gsQk=vCI|K z>@Ht^-p{S!bADfK-x(HI>Tc9upg5D8Rl%qCxU{92?xJ4NPIAcDIv8q)H^V6I@*Cxy zs7}IRng$NO9<+ZZttc0w)q{O*^tsN_=K2X!z7dP=)FkPTPobsYlE6GuwKd@$i2{|H! zhzTKHpxBPz>xKH%Q$=GYCil*#pO{T=AkmYkJuclC|CVK|HblQP%k(*f>dpwSRL`SK zz-<|ejA{BO-`>R!Pk|)OvJVc-+P3l%J=4s>bF;F7&(p4hP=`WUI%-s*%-v_gQzjMP z5<1=;J#amj3DG%GQIX^@VAj>npvggK)Z*~RGUvu$^Q2a7&@M6|V>3WwhfLAqQqc=3flHCG=r*=tXg}e<5`dG3Wbti zlx&p*P)tQBMXFE?xg0nbP3pg-wN6qJ+e{d8QJ{EU+R2T>-A(8j*d{k z>%Hq{pWMz_^kTkbp4Cw7vUEXSGVAGc6_b~9?O<3hDR;(#tcJ=S6^=IE*O*h#bJA0m zZe@eUAjAGD;IB6?gF+-F%p% zPETgZe>3qDoL_4i&wBIXxpQ1iJ=wuW96?(4a=FiJ;mREcrYk*)vI2_F-hdo|HVSJg z1Oju^HLU{4FdS81S)Df0@QOTA6>{8(6M?2(twf(1&PPn498NCsZkP_4>(Ys;);nqlo^2p^{ZygFt&KFlcbr3_j!YhUZZ@q=8SxIJmAq(f}_TA zW%6T6PE}cDO+mUn0Is2_BHzd^Cx=7A+-#|eXVe4Nq8MK@X(;9YV(&ZPqFA!M2N-hB zQ5j&!NsuI{3>k);lSr0~fS?Eh1Co)PqvV`3n8-m<$snQvf)W(Li;5`lH9;A7Dm6*37T!banMP^{-QP>U4FA)q^HtDPF}U&9)6Js$J-XdT|9%j>@%Bbpo-UyE#`odt zOa+xym(x7#TFWwn6jkn3S-B8l$vXjWXnX5z)SsAV#;JSsOvZDUCNrK-G1T+Jbz|0g zw{G*IOUcVQAKS)SHic2ei3!5-hmodokO6c`*)vvxOjng>=R9`H<=s@L3PiJCUn3Y! zMl8q?68hM0ioxGnu|euw0eu*`+OjOqkST{BvpjyMK6_nAqCy?`m_~Ck^Xc$U#Z}tu z{ibE?gX|??pP={6nQ8hf%M`@ICS+@uxVTTpe7=^lyba2`VzuG%X;awYW|5W8kj|40 zk1Ky@?)dPpdA9IchVyGhAA7+mS*Vr96jp!0;;(+FBW?{3VJl23-R)k$vPT|1mrc9O)WjP>jbaZWzl8FZieAx^F&M<@c;zHNO zC2$jr*aPQ0)8|X7jtO#dd>C^?pR(At-F?{vv@B6Fd^L7(ZU`NTMI} z$PpS(>oM-KrPO7EiaV%M^qy*-mQS>wk(uK>xEY^|(deGwU8V)Hku`>5#4#gUYqqcR zpM;GW7BB}{<2J&ZPH_|4He<8?W*Yg!hA{_3Wt~?Ik{oGOgkv^tnx|OJF-J(Xxzz#9E|!J?)asc(ifk;m$ofM_gJ}QlaF+cA8)R;(A)!;t=nw!vl$Ee1WK1~77#mD zeXUFi7bE2fP4*~i;KE=Yc4J`9{+yKZB}K)}q39YO$r_`+!KA6v_~{TvJ7uFhVH;}$ zuFwj;O?UMZoTL8dZB%^vXU?%1VGIjGQ!^?^nAH**X567MBgUqkIc_S3qivSWkNU4+ zc`)doZR8rgsJ#_Ul&fda=+{Zo|GZ*@X~d~;;B2nhgS_bbr}$Ji8TL<72y^DojLm*D zj-B7QO@wXyw(6;jhcI(|Y7loC+|Q#cB4B<||7*9lsx}(?GHxR2F&~5FE(vt38o4jk zs_!CnqkkO0|KHoRQ+kj0yRFFjHCGL2RaMM&vD?{g0o)pSQ)pLKWM)I7v5F~O`yRlH zUr*VOFtg{z7Gb7j)k!Wjolhv7U^;oJIO&Q^{)^JOCmXH%I$|_<^VNjunZXsmM)15q zzvD2q;~ow*}zY3J$v zul1yKK2~kVOTJt2dEwi+K!{z1%_kl2DU*naB=f3zXdF}fG$yqEP z#e2kiXaxj-_Z&3WJy~xa&F=U@=*g9#Wn4L?=#Vodn2xHgdi^Sv5$R;6o|{AMhSgTY zT}CURc;FojZz=AC@{(L!HxjMwSTk$8Qs61~tiD$a_-4dS!}H0E!3I(9ubJK8%Gm6|OmL}-M%L^y@G zs~$T#qlQlR;-xYNP{+Bt(Rokyk83aYeF^+>2W9k8)hZc&&I%}D54Ro9UF<+?5#sCV z@JbuFgOtyTgZ4RcY6UrXV^_35*6qAebp77k0`^hN6NVzAQ*es+(p%XTc;mDG{rzuk z0mrzZ*!|u>7*b89KSS@&El>hC<(jc2NN2z)Ba!V!Engr`9~3L(<$ZW8cX>nup;Z)D zq|X+v7+1m(BdgKotEF`-iJJF%ZfbS+BH(w-tUyDUucXL!u&e6q8=);1x`f_b;41#B zi4-@U%$VK_3?lCHo;}#E^vTWHS(h1@<@2ebjylwzJ4Md7Ml?>|8@^Su8njiLr^p8` zU&GM!JSFjLz2+2+_ux$`;5E0nMT0b=S=Dc7>2NFfd)Y5^p5s#pxiBo6o>x#pRihX{ zQ0B=iP)(!+H9V>MsBuV<-S;D7j% z;#G8OuAuROBjw_@>Z}`-Ie67QNxj%qu5l-u7gVQ#NGHYw{I)bgFHXZ*q>c}6<}o+XqS`&w`9n!= zxx8jyR1m%9B1$%!)A&wzNV9Mz_2fsF7cWa*!xtuFhDX>`gi`T1X+EiJDw}2(wIn3? z+hjvuV??HNGMnkOg>A5Y%vI`S7GNyvq>K@*E26Wmd@eKIoPUMFT#wp!r;buuVdLgxo+tE$>Qm8JK;(T{Bq)o-=G=0+{B4I0;kwx8oAQHJ2e z%-Z7SE+?=*_4hY8*$kGAg^1UBU`K2y(460h%n|F;X1!{nfxJ_~q0a zA+&23`=#THD=Y|{b@6kZZ|f~dYd_WI)agyS9eOgUBv`kUU9?*RBUz?iP;!)aD!-Xt zFQ=M?nlo@nMSq@a6q}v(q?xQB8}k{Kjz@#bwyxf@HU$Jr9}@d%(eY|7q_;cUJn+?? zPh<*87&s$4cZ@#Uv?}f_(Jikn`rO@16sN9iu~#{8i&p|(KrM?No4}hM`!mL$NFJY) zy?9|!Y^aUp*fG6E18a45`4A&HMxpeOc-G3;Gks$Lv>%VDoGcRd^(g!lYP+n|GuY>) zfFoi1RQO6!ZZtYz0UVsA?r_i?ZJ2kIt(8cRGDYR<)un4BpPM4w^?5al?yB;gl&LBnt@#g>b?p~lAS;CoG77}cU`hXc7f}|Z5;Q0ikOhRrS}Y6 z4!y@M<_BwQ^Hu@#^6iw9`?9z2TkOl^m%AbZ&*{V)&P9}8qg-T;vH5r*OP?nl;yUV! zQBX=wDs;RwpIL7-Mfq&sZ8l10K5QZ2+XuI<`l5F{k@Si+4GE7h^w>J7)sfXvem#Di zrHFh)$AX_Jzy4y(_3E5HSH_}X#Uvwef{cz!4vP+AP9?T-qIiBj@U>OlyR%!wk7g32 zf~RWqNogcCi>V)^(~jFuK76IY@CWG^`o~MpN<%{UOah5Tmgz}&lr*Q(sbZv$4J4CT zo{a+TLn8k=_oCD0mc^~(sdpX3J(m0WrvCf;-`WD!@h^6-;sO^N$X!cs1ef&jy7Yu@ z-5ZvBsxO zp;tJwjAHV%6`$B`BwqHe+#l*I?)=PxIS_HHTzasa{fF3D4}RvmrCG5=-Vu?h^Mcl6 z!)0+{yul;}?CfLkR$?3tuNr$g`8$li~pXrItXOjxLMA*NIT&MS( zx5V|3+?UdCO#qeVnCF)19>eYK9>SF;CTI>*MJM5~l*Z>0y^8;Ycj8vf2gLqB4s6F4 z9!_w}qimP1DPt=)6sEGd>!(~Blb|@6pHnxW#jFL%y-aR3TP8ig(VI zBC24}F-ooA8`vS#>ym!YWnI$@baI$T z24Ai%zu7cFa&EpU2DuT|xvv^J$Hysl(#Xm!j!k|D)-|QDPn0EEawKpmZroHnQ0O*@=ffYA>KhFQ z?THL^$6fudZ+i7Y1zV|}HjyQHEoJ)`H>mwnHLd`kQo?FpeQ6R;%B9rXn5pRAO#r&>S^v3(l)n2Ou|)l28Dy<+h~g+GRzIF{qsg9 zSFS2;1t8UwG>B8`-IkxLr6akRdtDJV^MDLmd$gk&U+)Ry%Lzx>2?IAoy>`wx-$~5!w@sC*WojIdL@Ws6_bDx~QyvAnt^7UvL6qG_`Yx(Hmu{Ar6YBDDjsfV|PNKPA48 zFmIP!RCS&%a$CL1ExlZ<6n@|A&be`?SXP^;oeSjB?75e;2b=?9Y}{WX56aJw{_qB= zGb6IebZmE+aimdL~;D0#eJQGhQ^`c`sfRtn1c-JaKjhK z@^=>Re`XZ6luTX*V(B{EaGFWLx@@!lq}!4<+|xp-Z#^h0D?mdnhqS)z{1vo^?n2L) zr_Ic=o0m3(4>*0*t5dX=*RMCYCG1_Yc={=)tnD-1Ve=9EtO}g7%;WuU(? z0^cJjC2_lk$`!!Tk=@H!Rb8pZ*)3@(KvMRM0$#f&O3~MY) zkXz;5XU7AxwqAy+iC#n0b&_agG0C4VDX>5~pimOlU{(^Vgyk*GaExfplx?{1{&Vt5 z9GU#nwD|-qU0PaiwB5|kiNi)5eWn)FRWYpx3+GRyP1fjJm-4~kRfBTc)|!jWc&P$e zu3JdvZfvu8{e%ZOKCpYys9_g=ivG4=z} zG`2q1Pfq41J?~+zQK=ApX^e*272S-sQC{hSXq+kAwKKHJ9mT?v_RIrzrd;@+w6x?J zqlOJ*N7#>5`)Oq-eklx4R(o|)g3(&uVL8%x0BJnWq%k#CkH6C|*9Z4tI zq&?8lHt2Mbj7y#Z^6Y`!hqgh~(~?P&YoiS$6TWr2uG=6-|#o`7Unw82gt*FJ&P~5*iOPG zgl2Ox2-j5Dr%o1J46$C(Nyjn7$bUHLf1g@L1DbrfSS`2EAjX-tr>93K)=exJH%4IN zo-$HjILz?%lppl?&-~A1PD(A|c_s+tJ1*fo7f@N~x#<^>51G(#J5OShCKl?WgA6Yg z+krs|-&Rb-Fv<%epj1-O>N8}3(pT+$!NGhdiq#C#>{U)s`J zB3GdHgl>UKIl(2Ums9N)+&(FlHcvI0Gp{~2?8%)AVZxq5gTB#Ybtk%K+S z&5l?hto1`?Hsr^S6Y#f;SGHbO#)CTvhDrK8fcr_OW4$OHlo9gRisy)w%(7XgjI0Sa z%X8<~-l5RF1$k>_A=Pe48GY2k*)B-OLi9zxO1EC)5lc(|X z-?4L+Rah^ca2t7GY;BAU_dOq?-kwzRd<2Kh`O0Kja>mWir2Ffi`g0z79-}RI`s3YTj*>|N;8kKqpKQlF<#IR#HUdzC2V(p zj@7XC_S~lM!+5Y}iAF}Z>c~fza&6mcZ(zy^)DD8v@FzFG-zY#bGnxZ*iq1@) zj(kRrLzR$qLILD()+}8|{5|X5`VR0&r6_4`MD+dYen#zRg0S*e4SWjlm^8h6>PkhY z2(_!O@B%Y`e-~}IWei&^OI@=-B3xMpL)|e!KaTs1jF?t|(u3?|#u!dPWs00_5aa&r zkKBonC)BSr!PaV@`3CAvPTwRj5PTSY5<)|O9qBE8$TQ;SYv+`JORrtN`L#ZENVcN0GDQ2@ z^{7VsIq+lk`T0^ub|ZE;nL#LnmK~`z()+{N+zqz_mdCkV>7uvfHuyq0hb z3wm~xHtV@$f!U+ko)Es~oki9FA6vU;j4vbNxV+;JjLui23I7K-`F;v)=9Mu4w!-?U zD=EZ~0xa!rB^BeZ+{5fj?q;3Pt-J#sz=Rj;fOaXm)xSuFvraBPbdpAv7%T{ncbmqs zK3VmKM%oFxAT9R$trmkaCB9p6nrXFp6syS(wr&hwjvhxwvc;{GmrslPd3f_O zB~f%Kp7TZ5PNvppBXxGRRKYq41Z5TTuBt-k!UUj-NvAa3)YrtRlVdgSD5yLQV;%?z zB$1A*wf$q`5D)Ojd5SszZOj`F$IrE!w+>ozi=$abR$BWNWs`-BkELCpj1eJI4v96q zUiD)!-vF$PjeKOG=Y6FzTw{rnmq9Xy7Z#QKAfB|O^0{B5-K4{0r&xS{d9Oxs-kUn) zS#ygQLps0K0`tw<^{L>u8P(S!Wu+TN;`q%72L}G|!YHHJh_8;eT&2lZ%8ek^t#r>% zB#3l266lH_GTgdhn%8jASMQ}(Gj!ybzSSBJ()7e75GF9?Zjb-atRTyo&mcTe zt4380RkRIkossk4{Q`!M^Rjd}pCp}Fl6O!fvUhOkq|vUg*(XU)X+Zq(SeIcET(R;a zcA@Th>;>|r)NIx)0T}$rvtyXd_t&Z3q=~WR-mx%^dW34{{ljENrpZt$%?R8yVODIP zvIx7Q>X?B;^B|y9cIlRV9eLrq#Yeu<#h;*W3@^X&2$J>r?3ozA{lhf>S;1+fW1gS- zYD47M?dWMxomd~SCxt+YjZJPe-t+2il3T4ACBmi1Q|O_+nZo3%9lHK)!ARtF0KaNh zZL>K7n4KQYB3)`Ty6oE$X@>6WZ=1dJiamqdJm#YZaLSW=1z3yO6>SA=;)SLc0BpZP)EX91*FDDyS;mwKWK%4fSH4DXyI&7a6FgVQyMYuwb zG5V!;_i7afTS>5yXXdZ5$d%i2>I_9%1n1~H#3Uv!$jLLb^1^#W`7&^l%qVHY&av)E(vU%(pee?^DJouR1bkSoi_>rEyZt5884Zct zD>(Z6eSJ!zgSa@9qOmz*fXAvI7bD8k3XTsLc1_su0pti~NGbzvv zY75@VafU zO531_a^P~oZGOD#ke>fW|LHcsKBEux6yOa`cxWgfR1g{n1R_EOqMwBr1?czx&-VX& zc}`e#*pMicueT+@v>N{&s~?Xh*{ilZG_cSU+t41sj+Mc?glj4?UJh;;#jZ0ARQS5+SHCfch3t0I*=7+y7Mo1sny#MEpH> zd0@;!Nd7+mXmY@Si2z+auz|o(-Tgz3hW#O2P;gcA?IwHiF8S-x-!O3oBLMTegBMBeo*hQn z8$>^htY4M;H%u`9gb&f4#rT_g{>cG{?LvY4?O=2Q0hZzKg3zwb+_Rk3f4BEv%s|;` z%pZ>dz(RzAf6N26QbG<|eC6-<{z3-q$77s8AaEb*-(-UD*Q3;LqwXnN^~VE#aqGvi z0DuLD_WT{ISG+T#<@2w=9_9pDHQ$j*K&u%A2>&>aX1;s@B?zwN_7iJyZ7+^4ATErzP4p8#|%lPGK? zUk-4z03cX9V1Yjo3fNBp0!TsZNChDzKrsMV!05?C{ebxt@W=ip{2VOcKtf0WKDz8hk%8Fh_JtPB-l6NSCReXxSxXs3VxRb2JK89Nc%MhSP0VnlQu!9|_2jq7O@}2qz#GzonAGf1rz}Nyt4*`OF z&jqH21NvX44go8V#2@xAGyTU090E3K*X-{e{_kk;F!_go1%XJuTVvSHyha2p6QMv5 z2fgUqEPNQ_KhHk|EYd-MeE`aZIC#~HCl{Yrc&*aK!e9eBquA{2lg z1x0+@0p$F8_{U&>o%i8K9s*VZXiUidQLw|0{^dP~fQ^!X`oZ>?{>E+$OaZWOreI(C zULB4oJ_IZh_umK>Nh%12ym3VIVPJvjWBaSdV46FiV-{n4-aF0;x zA!8O<0t|WMi0H$>9_+WdL?0D-m}U?7|4y)A z#CN%{@6^!|hk!-J0)uwXK7O--0x5tId*EPu$&to~fJKt=J2i_W7KTJ075P64EEw?} z7wkKAbi`p`fywsA~|9Y9PH>Ye&=);*zW~?uTya#7Ir`$8Fd)gJvU}Y%j6t4ej@B3 z>*rv>G5d?gfJ6REU~ymvB7Q<00u~!Yv|kwfORI~h+K8VBJIMMuSYZD*j0aBg!9o9+ zqD=bJGKYXgJ_d%oaYXc?V88SKhWdNP5fF!fMM1hh1a<^s{+7idV56|1i2b6!5iHiX zlUbl&!S=-;WpW5uBoV(6ERxjU2^RG~GtYv6`xS}yAj6Q69}#_sW`UDgl6?ukRkNrd z5Moa*Y+w9QCWnAU67gHX9>|3qkVi%x1{Mp7*q8BJ!AAYZmSy(P{#LO24Gbi(1MTdVeR_gZ}jYK{tj1w-zJz5X1J8 zBaIIkv%rlFzyn#k;kRn`KLQr1L4PaQ1G%sR^2n$|G>gRlH-g2208b+9i-zr|N16N_ z?9LP7fakUwej`|9U@+v3Bcgu}7Mc0~eXt0iNA0!kuPw_Ux7JVSLr&g-vjBO>Zt-7R zmidXKAF>Y7ED;F05BArVWqy$H_Zx?TJtzu0AdieX1S}H&|NGr|7c3aDll*S5Bzx-y zupQY)9R5tR&|O)730TC>U=aN*^KbHiN4Ec&Vt;eg-X`i#-axYV*!Mq*<)NtZ|ESEN zPi6k>bt^xu-;rjbx}P{we*Y9RG<#M*0wR-ts_YRKqBe795OX;~hW`{RR1sDL%KAT5 z^e77nwEg52Nk=K*5MHc*!2`(ucuYn4Y z0SiMd*XI?#N(2dS&7b{9&OP8qZ^&Ym!=`+a_$R+`&QnT0)_0Ro(iKr2H?q-r!LV!R za9?<*nAZAJ)Sr6r$8lkm9%;68U;aN-pLe1r#H~`_6}qEv+g6B=_C~&NxVd?QT$h}~ zxOHyB1H6vM7T1iAg`#t_&z!vG;1TOSY;P#S!)4BHdwjEthHvaEO%SHnxVyc)-BP52 zdA+$L=VJ<11cfi{wZNQVPe<&-G zc?XbOza$WgBSXO%iSDeP_UJ21F3*a?OA>zTF#=*?%21Aq@!>`_XmXQo%HVOsv$$3} z)oVR*KV=eLwhfYIU~Kk(-HE%#7Dt<$o20>3bCrnBLoHQY|gzDxtJ&6Ddx7FCl4n@QmL%$2@jf<;FD*8I3mj z7JO2JE%UdxuxY#4@RRNYGn^!8oZ$_m7Rq3_pdgB2FlYv@9^gQtBud37Za7E(m@?vOz8fAL=)vJDdG zHD87*bOtG(xY^4Xm$^uC_6ud==g;|`9Yn1H!mUG}$!;?fw@F^8D*NJ0O<&Dp8__nL ztVbdgW2ct{Cec81WSo^2(qQo(+BvHDBFbG!1vcZJsu)K;KE5Oi?=HS73Z_h(OMxL# z8SFaqAtWxJWRHP`0<`4bxT)WXb%CzVoM!HfNT;KmIDN8V-6gGn{r=xYciRP0Rn(q3 z8bAMvx$))9HprB`UgqEYNwW-aht5jM7E6r}Nov6HJ;b)|+pA`m(19x(gy2Do!kcm9 zsTZQ)YLb3gJQnt=PXryo?YpX0s`bU7j8C->2B*JWJ`1?JdvmZ;`ygnL7@SEF>ApGy7YE)+94-ikFlg zq-27xC<=&}&lJJnyJJ|L0kf*^1XDA~Y8`;A?iy9p9iv*)xZ;4~*QSCQ9ID};V6||g zBL%JfI1x&BcI#IL9-Ho0r`jZXwG248$tgm^WMs0l2h^<#YyT!Aq@7PBh%thM0RGe6 z2j!*t5N2mn#8+b&y5fjlm-^6c!oa9h*)H*u%t{`D8lsr0$*`W2%YN8YD*=`EK54k) zs2&hBrr;arqIg@NO@8xWBCzwo7nv(Y{fuM;HQA7R%YLhGTkarOvqAhK!JWORUojk5 zf#;eoJOg;(7 zkr6+DP6a!G#TX#IpO#|UNJXqOFIjF#1zEmW$Z5GTiWM=2ih`$!b z{RzE(1md_Co`92f8#YXhk&rOyOZj|i42}!PwoVNrZC|IXY+EErmsY=Nj6UF&kDzIWh-2toPKg;!+Mhr_!dR?O1(JH z8r+f7_C7z!B(WE_P+(X0nQ|>DkMmzcWVL ztNR!KPx<}<_98y5&exLT8QDZ{rWVAyF~6}5x_3fufB^U%tS1JllZhm%OzECw-bfH!?kGOd*Nu-S6BCip#Whic7S$i;G9JZHw!)e*h4mZWHeIK(@UqMS%Gwo_%_W*m-(miTv^V?jsQhVpCA24*Fxi)x z(H)UgHE&z+?eQRBK6g!~AxD3wsf?*}v^*|;y(}Egz}`3Y$&^Vquw>YSuJyMDxiVvC z$)aJL?o1TXOKNkvb;D<#f`@o4J_%Kt<6dS6ohsGN7~|ZTABa$P{BCr#-3el6h5+UV z2EJ7Zb<=?rBIjr|-)X?>&Z=rXVS?D5A5cKR{IGU`>b!*aSgDDGyoRiU7WzZR52oT3 zWv3*cS;e#d8$V_@+qK8@>9i#lrsrtFTK!)hRuMf5=x5OYwJN#rm6d05N+io@ z8L8ced1`@Ccx^VJJOQHkGz2zM4iqMCt zE&(4V3JtwKp)_40K4N8t(*pTata7hOeM)~SmaTw5<+Hhwf0Axu&Vw|BZrKg5 z4l#_9BFsKha*vp6JW6#jZ{&acqc<~Tq2+`@lFVuRGXma8w)gq@O1#ccu*kS*qpOMd zx#FSfDH}_w=}Q$24#}57uo5sCJ^X4ZHf)?-y?EYzqW`po|Ni#f0Lem*azE7fpMB#X zbQ#%__2m%tJk{G-3~Zq~;Tocm5W0X+<1H3MaFU|-wX@-qoS|u9y+Q38HN<9JMdV2w zFggsDwabB{T@e_M6Z^wwg3@X7E6Sv4UDx@@f

7@UWO*y5TaiWlZOj@8^%eWAQ|< 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 literal 0 HcmV?d00001 diff --git a/docs/ops/virtualization/intro.md b/docs/ops/virtualization/intro.md new file mode 100644 index 0000000..89324c7 --- /dev/null +++ b/docs/ops/virtualization/intro.md @@ -0,0 +1,123 @@ +# 基础知识简介 + +!!! warning "本文仍在编辑中" + +在服务器运维的过程中,虚拟化技术的使用十分常见。运维人员可能会将服务器划分为若干虚拟机进行使用,或使用容器技术将应用进行包装与隔离;在需要管理大量服务器的场景下,虚拟化技术能够为集群管理提供底层支持,极大地提高了管理效率。 + +本部分介绍与虚拟化技术有关的常用术语和基础理论知识。 + +## 虚拟化技术简介 + +虚拟化技术是一种资源管理技术,它在下层计算资源与上层软件之间添加了一层抽象层,称为虚拟化层。虚拟化层负责分割、隔离并管理计算资源,并将资源划分为多个抽象的资源实例,提供给上层软件使用。上层软件拥有对抽象资源的完全控制权,然而,其对物理资源的使用会由虚拟化层进行调度和限制。 + +使用虚拟化技术可以带来许多好处: + +- 资源隔离:在虚拟化层未被攻击成功的前提下,即使一个虚拟化实例被攻击,也不会影响其他虚拟化实例,从而提高安全性。 +- 资源共享:一台物理主机可以运行多个虚拟化实例,每个虚拟化实例能够使用的资源都可以弹性分配,从而提高资源利用率。 +- 环境迁移:虚拟化实例是软件定义的,抽象于具体硬件,因此虚拟化实例可以方便地移植到不同机器上运行。 + +根据虚拟化层所在的层级不同,虚拟化技术可以分出以下两种常见类型: + +- 硬件虚拟化(Hardware virtualization) +- 操作系统级虚拟化(OS-level virtualization) + +以下将具体介绍这两类虚拟化技术。 + +## 硬件虚拟化 + +!!! warning "部分内容仅适用于 x86 平台" + +### 概述 + +在硬件虚拟化技术中,物理主机被分割为一台或多台虚拟机(Virtual Machine)。每台虚拟机都可以看作一台独立的“计算机”,拥有自己的虚拟硬件(CPU、内存、硬盘、网络接口等),运行自己的操作系统和应用程序,通过虚拟化技术共享物理主机的硬件资源。 + +硬件虚拟化使得一台物理主机能够同时运行多个不同的操作系统,此时,被虚拟化的下层资源即为 CPU、内存、I/O 设备等硬件资源。用于创建、管理和执行虚拟机的虚拟化层被称为 Hypervisor,有时也被称为 Virtual Machine Monitor(VMM)。被虚拟化的物理主机称为宿主机(Host),而分割出的虚拟机称为客户机(Guest)。 + +在 1973 年的论文《Architectural Principles for Virtual Computer Systems》中,Robert P. Goldberg 将 Hypervisor 分成以下两类: + +- Type-1/Native/Bare-metal Hypervisor + + - Hypervisor 直接运行在硬件上,可以直接访问物理资源 + - 例:VMware ESXi、Microsoft Hyper-V、Linux KVM + +- Type-2/Hosted Hypervisor + + - Hypervisor 作为操作系统的一个应用程序运行,资源访问受到操作系统的约束 + - 例:VMware Workstation、Oracle VM VirtualBox + +Type-1 Hypervisor 通常效率更高,但配置相对复杂,且灵活性稍差,适合服务器环境安装使用;Type-2 Hypervisor 虽然性能稍逊,但灵活性更强,适合桌面用户或开发者。 + +完整的硬件虚拟化解决方案除了提供 Hypervisor 这样的虚拟化基础设施之外,一般还会附带用户界面和命令行工具,帮助管理员完成虚拟机配置。例如,Linux 下的硬件虚拟化解决方案 Proxmox VE 提供了 Web UI 作为管理界面,如下图所示: + +![Web UI in PVE](../../images/pve-web-ui.jpg) + +当然,有时这类图形化界面无法满足管理员精细化管理或高级配置的需求,此时就需要使用 CLI 工具了,如 VMware ESXi 提供的 ESXi Shell。PVE 由于本身是一个 Linux 发行版,自然可以使用 Shell 和 PVE 携带的一些工具进行管理。 + +### 实现 + +对于 x86 平台,目前有多种技术来实现硬件虚拟化,包括: + +- 全虚拟化(Full Virtualization) +- 半虚拟化(Paravirtualization) +- 硬件辅助虚拟化(Hardware Assisted Virtualization) + +全虚拟化技术采用二进制翻译与直接指令执行相结合的方式来实现 CPU 虚拟化,能够保证不经过修改的裸机程序(如操作系统内核)能够直接运行在虚拟机上。 + +半虚拟化有时又被称为操作系统辅助虚拟化(OS Assisted Virtualization),它依赖于操作系统内核的修改来减少虚拟化带来的性能开销。使用半虚拟化技术的典型代表是 Xen,这是一个开源的 Hypervisor,官网:[Xen Project](https://xenproject.org/)。 + + + +到了 2006 年前后,Intel VT-x 和 AMD-V 扩展被加入。它们属于硬件辅助虚拟化技术,在 Ring 0 之下引入一个新的 CPU 执行模式,Hypervisor 特权指令和敏感指令的执行都会使 CPU 进入该模式,免去了二进制翻译和直接指令执行的需求。这两种技术出现之后,常常结合全虚拟化和半虚拟化使用,以减少性能损耗。 + +!!! note "I/O 设备直通(Passthrough)" + + 在通常情况下,Guest OS 的 I/O 请求会发送给 Hypervisor 模拟出来的虚拟硬件,并交由 Hypervisor 处理与调度。然而,目前许多 Hypervisor 都已经支持 I/O 设备直通,这允许 Guest OS 直接使用物理设备。 + + 虚拟化 I/O 设备与直通设备各有优劣之处。一个显然的点是,直通降低了虚拟化带来的开销,但也使得虚拟机的可移植性和灵活性变差。 + + 选择将 I/O 设备进行虚拟化和直通是一项取舍,需要管理员根据实际情况进行选择。 + +## 操作系统层虚拟化 + + + +在操作系统级虚拟化(OS-level virtualization)中,虚拟化的对象是操作系统内核及其调度的系统资源,而不像硬件虚拟化那样直接对硬件资源进行虚拟化。在这种模式下,每个虚拟化实例都认为自己独占操作系统内核及其所调度的资源,但实际上会受到真正操作系统内核的调度与限制。 + +目前最流行的操作系统层虚拟化技术被称为容器技术(Containers),它依赖于操作系统内核提供的资源隔离与限制等功能。 + +以 Linux 为例,其提供的隔离与限制机制包括: + +- chroot +- namespaces +- cgroups +- apparmor + +与硬件虚拟化相比,操作系统级虚拟化的开销较小,也不依赖于硬件支持,但其不能实现跨操作系统,目前一般用于应用隔离与部署、环境复现等场景。 + +关于 Linux 下容器技术的详细介绍,可以阅读本文档的 [容器](/ops/virtualization/container) 部分。 + +!!! note "API 兼容层" + + API 兼容层技术实现的是 API 级别的虚拟化,这种技术的典型代表是 Linux 平台下的 Wine 和 Windows 平台下的 Windows Subsystem for Linux 1(WSL1)。 + + 而 WSL2 中的 Linux 实例本质上是运行在 Hyper-V 虚拟化技术上的轻量级虚拟机,与 WSL1 的架构完全不同。 + + 请读者查阅资料,了解相关技术之间的差异。 + +## Linux 下的虚拟化方案 + +### 底层:QEMU/KVM + +关于 QEMU/KVM 的详细介绍,可以阅读本文档的 [QEMU/KVM](/ops/virtualization/qemu-kvm) 部分。 + +### 高层:Proxmox VE + +Proxmox Virtual Environment(简称 Proxmox VE、PVE)是一个开源的服务器虚拟化环境 Linux 发行版。其使用基于 Ubuntu 的定制内核,包含安装程序、网页控制台和命令行工具,并且提供了 REST API 进行控制。 + +Proxmox VE 支持两类虚拟化技术:基于容器的 LXC 和硬件抽象层全虚拟化的 KVM。 + +## 参考资料 + + + +- [VMware White Paper - Understanding Full Virtualization, Paravirtualization, and Hardware Assist](#_7) diff --git a/mkdocs.yml b/mkdocs.yml index 2308a7b..8735549 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -98,6 +98,7 @@ nav: - 问题调试: ops/debug.md - 虚拟化技术: - ops/virtualization/index.md + - 基础知识简介: ops/virtualization/intro.md - 容器: ops/virtualization/container.md - QEMU/KVM: ops/virtualization/qemu-kvm.md - 用户账户系统: ops/account.md