From 0062d0d3ebf1ae00f4bcaaec2b00acf86a69d3ee Mon Sep 17 00:00:00 2001 From: Dict Xiong Date: Sat, 25 Nov 2023 02:20:55 +0800 Subject: [PATCH] init --- README.md | 5 + .../6386bc2c5a9d3dc7dc0c9ee5a4b67ed.png | Bin 0 -> 138554 bytes docs/networking.md | 39 ++++++++ docs/registry.md | 79 +++++++++++++++ docs/services.md | 2 + docs/testbed.md | 92 ++++++++++++++++++ 6 files changed, 217 insertions(+) create mode 100644 docs/attachments/6386bc2c5a9d3dc7dc0c9ee5a4b67ed.png create mode 100644 docs/networking.md create mode 100644 docs/registry.md create mode 100644 docs/services.md create mode 100644 docs/testbed.md diff --git a/README.md b/README.md index 9af9372..aaa7390 100644 --- a/README.md +++ b/README.md @@ -1 +1,6 @@ # NASP Wikipedia +NASP(Network Architecture & System Protocol research group)百科全书,开放编辑,欢迎纠错与补充! + +- [集群注册登录说明](docs/registry.md) +- [实验机使用说明](docs/testbed.md) +- [网络配置说明](docs/networking.md) diff --git a/docs/attachments/6386bc2c5a9d3dc7dc0c9ee5a4b67ed.png b/docs/attachments/6386bc2c5a9d3dc7dc0c9ee5a4b67ed.png new file mode 100644 index 0000000000000000000000000000000000000000..d3d619b0fa58fd65f0771debd15bb5d939344cf9 GIT binary patch literal 138554 zcmd43bx@V-*FL^ICh1WD6$uqkq`N~!>FyA4(~Y#m22?^&Kw4>~yStQBx;sR=yX(82 z^L{+%yx)0ee)InEo%!vVGY4?*XYc2}*S*%YuIpOcM^;({51SYpg+k$pi9V4>p)S#( zQ0G-IU4XwBv<$Ps|FB+&s@b4WL{!LsXT;-U#vsAyih-;Q<{?R@k!@Db^)rb}sR;2z?^^misJM4IRCHTe_Bz(UH|h4pg^Db=Qq^L zC`(C6Nwvm*{Rx$JgXX`#WV5Ngy`6FK_P?I=u=la&|K@E-uyFqM>aUZcs{i^GMJDq9 z@DBe!-g;J}@81hT*t>tO}n#eG-?J4x>DO{`>V z1wWUIKK*MAL&XgYlGxQ=rC}>6_z|-!7F%eF$%~8ovaqs_a&Z2))fe&%CN$|uk!$FT z%Q$!LoNBNV_6nB6?SIF`bL94eQZi7cHR9j+C-DDU4B<{sO^Mz`pE<3(_&>Z*P_Q~f z=ppxHoAc}cRUrP~+vL*BgHj>kdhzfb5q%Kl@?gG*v9WPbg6r{t@l4AnY;0_r=C!4r zJ`KzHI-hG#hbk&7+0BR8defAeC)dq}3dDHrmvW5BSqRBkH=G@kvs+11^>-Cup8 zR9ag4bf~tbhRtzf>S`mofQzb#KZ)GKhwdkPje<0EbQuMY>95NxC=}}b2)b)tRaND* z)hRMPIjOKTkdZ;x8Y@^W8W|oQPUbju<@~vGCH%@1{aKpbzv|zGhKCzE`2_?7G`zn_ z;pXO6oE;kzlLZ@2Lq%1ew3-xYArH?St-AMn->97ldC=(fU-d(I`tPI;lcXYh(p4C@ z=ev_}zgUli(QBApC8C`FWEk@x*u!(R`gCl~u5z=DS4-VLjWFJ3%E#>U$>guCA`Rf;McJg&nlgiB00=imbLQ@ z{4U0yL5X$+QAwBu5mFles`KHoUsApKWa_4sl@*8it5>f!w&}SU*S6-nIgs^BQ_hUg z(4qaoSbg**_`ZyjUS`e4#zukbu@mNKy)o$rlA`~5#9623VBriGnbQ`zwa4(=^V4Ia zUc^T8Iz;SX_NT+i-q+=~#qgVUD?@abH^gw;G$heeQr1m>TnY>gP267WcZN$dXqF`u zkGpDIyiB&WH}vB^Zj>k+?bm{6z@MrP*D0>%dqe!K~M*_S90ZZ<^BX7s#Y zHGZn>V0*EgB$!`df9jgPp&?xK4`ya&r_6_&DaY zNMB!HUy8B#y)v>^N+lkiBO}k~HHunR76tdGg5}>|K*_2u_GK0tv=SFuj%!U!Okm^T z^?rSIwos=Y`}~CqVRkPQfBkEJ)qQkjqIvYYXQrnUdF&QSs5n?PiY=7jp3vIkRhZEt zX;;@O4$H9&SZE^WEsx^j;)UMy*`j~evi>I|Vy=Zq%PM9*3Vuj}Yht~jv??YLT^qZ* zyH8%CWT!`+7Bkf=o$S=SCzyo^i5@?GyhLoOXmy*5Yhe1Lug%GkBL+6f3xh|@)tmZs@If4-p%eAMqb?Q}mN zrc|b8XKCr_TazlGG}!xb4s}=#_cBVhzOJzm3C5&KtH}l`|4NtrJUF;! zLlk%Kj$DoGbUNH!-e+ugOOKDHlq7{|b~HoiOk=aado%`RqF_j%#n zDnQp>pjR&tJvlk?>fb*&FoASf1{Xz=x9ibM?>^*C39ns?Zw_ZnS4vmrIDYWpfjxQr zXsW{fT5g(h?9iMXh{)QVGiNV|2BoQFXPq1$n!+-3^qY;ADaDHfFcc011qIp8b=-j< zS38CBmZIMrW-^$Us9s?789qW&V`FlU4mBMVT}TiG4b}@i58!;JI&RLGbbj$vFEUHL zClx`>#MD8t&UF`3L=rtUwJ4O8eAj5mv6#c1`F?G;-arbGkcfyhSnkC!=T)WEu}Uhj z!NEZ<8AfMk=V45hiI{^U-+K`V<(wggMXD&_o}%L3F^TKT!} zt}}9swpfl;lnTGUA@^%USUE!#{qfnv^z`&rl>enmmpZ-&QY>c){7$9r`Sz=0^kNGg zpWhhgJ$`jZ$ZM|lvY?`*YnbJ|EDkS4$;Y<(0 zeL%?Q4ycsm)wrKIi+hboIa^DU1`7v@5o~(k$#%9|=*!G{oz4Q|ZnhUcA38dRw;7W_ zWFe_>rZv*AWc}1xhJQN*-pc3h50w4`4i04@FWg+?>cy<`jO=wdGpWYiN%QcLIr{ha z_tpM-i_9Ov_an0u@(rZIb^QGOIo_j3N~|KdtaN-P9actC?H2ot4|kUBvj^ivF5}%~ zdBX3!V@ut49*4-NFGG!EnXz&!2)Q@0F4*er^+s}2zyW11CLa6P2n!1@?9axk6kCjn zyT~6ThHG^pSYQYWV>;d~j)8s68xo?TOc)lIi5ky^p~Cd-#qMO8>-%L7o5Scy54exU zJ~HcWEffz{=u>Se=Olu^k46nlq-TKh?@1m7EL#AcheHxlt{e%4_3C?Vs zoGMTqyT(sX9BL_Uz(L-Tcg$3PAPx+iSmVmqJLe4P>DE0Wf-P=}d-sGPidmMRLPR#l zdQ%zqriEU(OlB5*`*%WhFV`%!t}pZMFSZ=Ni-F`*(0aE0{Ap4woFQi2h8ruB4C)2n z4Fr*M7|y62W{V+Dpagu7hd$hxZnitvn!nnpqD*Ko`;{8&QCXES2?2rLahXIoL!K%f z$1QbleA2G$>XWovmKB}!>w5b7#sInC?0y>6?Shk5gTrVvn5Q4XVIDD5U_2S7icP0c zB*|*n#x~Nzy17!mYO=pEjr^wVdDX&`rDtg;-?tAbgVgrZ^yx~Asan~QccEjQWC20B*k+*Z3~ z1lgAX!)XR)OE{56DXDMrPzVTUA?t_!!}Akdg_eg${mliuE&#onX(d0GOy#;t9w;Qu z!5i80Fc?PjId)B&5;cCBybB0c>Y56q*vym^YL!}+spVyQZEbBlGQJXV1CQV6qNyQ< z-A2LOFlDJI)xa zcRuxqijK{=t8RiBL1^gui;Rqnek9yocyc!vJLA2}?3dHr-QDFi&i*coHGoMVCEXM2 zLas1>kc$fqXPRbt(Ke4W8E#v1bN4{5uK5t;U-L9pLqo%1%Etr((tMnp{RKLwP`rKp z;`7q~#KO6VPr@|fp07%`FpwKB<$QW_jQ3v&YBttw?6ZxCD}Y=v-G=wfBj+4?Jg}}6 zm=AM=&wOuf?S)FgQubt95xVzWX*2r5qw7R9BclmMXi zCQ4k7Tm(SrOCpGFXC70M^AuH8Ew+e8AD+F;_q>FABukUm)60v7nK@U~Sx4u~&gyt} z`D)ehylRrG(*T6f3RR!A$JNk5-Fcjhe+(ctJmRb7#|;B8=+$bD#L4) zTMUU9IC%!U&wgXy5C_OBeHc$~a#vLW0RbN8oeX>uuG>h>7s?g!8>R&m3Qa0(NT@AF zaAWF6u(*s&Kl$mNh*GxJs1s7ak>b=n$U{~FRx5YSIJjFmn45z+%!lSady~mS)l(|BH=mxF zSy&p(hh?X=))WEd3uHhpT!c(ju*u8RpQkUue=rxnFkEaINO1<(8wB$qf$Hny z!%Qk@Gb4#G0A3h5IXN$%CqV_K{S4*Tc(8{n9P`nK2>Q|0SL7 z!PEVAr?qbv-;o3dhKDB)45+q#Vr@*4_vB6c9^!?-e<&$ZksL~`5$tx$L+sH!c1_dq zaxESZ?QCp4Iqh>LZ{akhN=NfhwK)S^j^uzcVmH_EZQ@32hGw}kWGydDq9eh%-#e|3 z2C@n^uUJ`TAP4;hnu_~kCIAsED%OP;3$NXm4vCG8?KVYvwV(v(wUM1~7dXtw%g;wR zoI<0{$3aM9q@tqYX0v?$JPvUCjO{Z*xzh2@;Y#OXwDXfE9z#XuraW1e<5gZ*IFO3F zAX|_M44(`YnjS#EXEH=iMwUfLt2{tSLtr#gl55cN@iPFA659qBbav&AdhRg}5nTuW z?g#)!fN*}dIHi$5QIO%+$K)%Y%dR>|Lkdvj4t%~_T7oavp4WPKLY)UH=jpd^-|#c5 zttN$QcP^5>{F-wNZ<-Xj*R@S^(_zHQ8x40Ci==zr)e41t!}dPd0h!uGB6{^H>zW#f zc6Q8xZSB<+AOTHA%L>C7G}9m)jTd@Sy= z9p6A`e7M+Dp4#uNp=zvmui;ntt*X?TYI8&haKKS*Hky3M<)(i*% zXst8EuvaTK{TKQ&7kkvj#KaD^`?aaWAUZiJE#U2a0|JU;?sXv0yYZ=Le}Ee!*O=qp z+Jyb`yduXAxtHdJwpc;SgDE#ibrK|h#r6)s0B(|ZgWNy6w(*3Vg9x#EvbD9LpxJPF z)z~i&=?`%N;w^{2BcCqXVa#gInHmRr!k)E>T2ivv#YNMIDcP-9JhgGki47==Q+j2R8KFO-)UC#+(v; z`~2}&Wf5MDn?dYgDp&?rH#mztT>e=e`R{Nh>^04AMel9FqHDx16Bg|n+Nz-IRO1C)vm`Gmr2Hf;sJD{ z9Vl4ow4K+seVCo@Ypsd?ma*ju`KTvDE&poc?tHfhw8weI0e*hH>ywSk5kh4r1m@qk zDXTfn2AB$syBo3`vCG#RZfy_f1{j|l?c)c8wr~z1q}~+@VJ<#xS=kRr>H@gOLl|)X zJu!RJyk8Myfg4qQP$Cc(K#C*yX1=ra_YZfHbpJSe7B9Apftr8v?Jo}V_GsSZoE#?a zS(lklhPVMZ)Y7V|ABFvh6A@&-70qS!Wgr(?ivINMDwFOi$Y*|J{6ksWjM`OZ5iPcm zorl>)^q<>PdQnzxG|}RpK1*DTH3mEbDa`vBR%<3n=G#du!?vhg$O5Yd-aVqXiv3B3?`#Kx*>-mGZvH zyyh`*i^fzQb8|-JGe$irfkVZXmLJV>pn~vkwy@f_D(p2JR3^u|4rOt_=YuzqrlO02 zK55HrqZ;C9V{_AnCI%XU$SSSrZ@^wHZw>TiYDAJ<$un#xE2pvlNQxjP+jjolkN&r~ ztrLcumJav#AF!}=G5K$8*(T2{L06|R3GJuxfGae4I*q{KH!`6o4p*!DJ#nrtrEQ_% zP-r@gDy`6ZmISNS2fTfIX?t~iJe3=Q4tjA)U6^%rA^%8`wON)4qa!rI1W zdUiIsqJnRcdFj!kM}VpdZ`wc`G@$sHI^`{9vz1eWoQzI1j(QDvmXf1NCE;lf^aNlt zCXD=Wp!|(D7cX;+xN8H%yC?baIsG>|lKkY46ciMiPU`GjT&hUJ1Q~s%qXcqlcNKJ) z$&-Nzz{Z6)dmvyEc&zZ58v-sR6M@)31Q*hx(X(yQUdv}M;wwT(OXPCj1p<``{p}{e zjl3UIc`CJDczDC_c&|PVf310^rjl%XyBjHZRKu$qN3Yc8dMk?Ym42p zIb1Go*2$#?#&n*0BoPp>KI!W_@z^*!_nM;s!z8ti(JQbIH!O{eY4(K~%%qIuAHPeh17U zp?v9RB?5{5N{d1=!$fTn50+{?aSkBEEk#TMob+1eciPI~#b-5GC%i8pFqTsZTr>w~ zX}oVbfovEk6hAje3`EYG4Hva$`3=el?APUBzPg`bsGp{Gh!I?ET3l!v08-&rQ6$w} zg0PSfJtq>6{NB4XU*NcOANGZsPy$TBnVvSnQ%T1UA&PIGfP^r}-Z$sqn;!b;*W~0j z@J7Tth33P3YpTS5uU4?z>EXC~$&1gF4}d5FCZ$J&9Fw5!y8jd)NH^pY%E8ms{S_i; zQvfCt>~}-6!{U?3_aK~*h=qm4tnHAR$*AMD_YBAgO1mqgh0ePckyW7BXs{alBK2`# z3>qwN9cJrBQU@-+q@S%*{-v(j=vpt|w{Mx~)U?8$WoF$LgF?$%d3|SPRKu)v3#24s zW%f&#FZX8_k1bf6L0j01)XeP#B}Blbr>6f?|}ux3{Mg9Q5ARHHgiu{%RK0Z!f?AQ@Bo=5%9{Ahk!a4H;y#R zY?=AP8iSh_+j~;ZDFOk#Ol-QvTc4rhQyIpnZ85O2x|$72Whooy?-eBcw!b<1&P5ZH zt5KKDR;2pabxU#1!|4m51Y*9$>Aj1+eGx!lDlq`meYpq;)7GX8hhK=fuAyO}nX$SD zp}aueA{cZ#8Xi9}P$;Zii%?Q3mHeyQnGddogARmAHc3Rba;Cc1GSJ7JJ*f&3BeN%FW0|7k~JT)ESd1S+Gt>CNXyFFoirM1)&`s?H8=NQ4hS7+&FB}WV?@&eihaIX0Q%Za4U z?PQZ20HhE=M0~&W_ZRR9^@C4}zWb4Kx5VM{YkJ?9;3(@s6Ky4jZ@qa?& z(54`Fe6-n~Bz6Z#iZ|#(*jx2q758Og*vtg2etEP-aRWL86G3;7tV-51X8yZWEG+Us z;W9G+Eg#dofh3e77JQFm8J;2sh~93zc&)m$KTSyjI(Z~~;J}1_`jiTQ9eC>>I=OQI zbvQPWj#t6LA`6XMXwuu&$~m3^1#eifE{5GSto7_1AWEkR&+8<|%Cw=@;W;lLV!DG? z6VY(7`g?RYLXR1K`s-pREXoM+2IYJ}gsGLRuKAUhJmnQYvGf47Q(!wUA6bQnB~^zj z`G0lY_@q2~-DA+9luLY_otZH~2-`e8pUFom^5(-uO5I6Pb|CfLU9Km^ksGo46VPJf zRYOPpok2zDwToM{wE}e3LXa(1eoXC8D`MmVvS|_qgc(*TRn;n&Qgq=(K|w+90NLMM zP+Z=3pcP-8y@<4uq}DKR-Y9oQ2SfZdRK;~=}xLi$4*G*A}MHx$4$0FVn{#1 ze=|Y=Q+5|bvXh7qm1zd_w~CLQ4|M?clgW%Tz2Yae113iCi9sVr2w{F2=eWzJ-_@&EaSwr}r*m^V z?ZW--$8oo&;^tOEVi2~9_ZZ+npDr<_T6!$>m4nlE2JJEC-8-EkZwK4?^C zAo9oe?=MoyUhBCQxxil}atWAtt-s`zOowR@T)Bb{#w!F)3uMte+UYHrAzuFpGIrk2y83 zjg`&DI1>;OD$$t!4yfk=u#5^K0c3@)qXotaqk#XBzSk~0OSjR#&(+d$RsP*H^!foH zsEu#EYzg_5>Um+j*|$fGmN6 z%Z`AfTcQlP34t2jC&2qb6J~=jcP^M^XI`QZ-&9=aR3erO_S|4i=e1UH7u7d11G|jpIs+2~p zI5zON%FtXQ&YoH;kS>4%0v0uTrE*s*TnC6UtC#NwgL}1I);%S1MZ2KyYS!EA?LOF9 zHvO2hw(53TE?QFqdI4VJWiq~jEIXj=%+w!I(9nnjC-ecx8%-O+66#?8pw~+)gubZVK_nzllwi@M8+8?}t67lThBW9l1vS8sZU?v> z)jAP;hab%w)ai)IC1N8(%`OAR0THTRv?d>w3KY#YZ5{4$n<^lQ+FYj<_ds5Rcf8Lc2 zQil=rKrv_%NNhYEdj0zK7O)**T&w=1yk-J6E-o%x;M(flfBqX9xKmEjOv7o2;I>H; zI6bmiBr}CPTxL73GwN2gT6Ku%=%A^}0GW*B_=LsF{e9q=0MPcpY8lpK5kd|d;0d(> zc(lNs)%KY=RBE2IWg-p=)+YhXP`0*UamK{*vbnl|E3_p@KZPEL_Dz4l^;aDhsi5n~ z{7We08IXT@`Lcj%O~N?uuGsO!0CQkIkn?SRozQQvQg%&mAGB$_fHyCHzPh+1&Bo-s zae|b?MNzEy{g$!&gi26-*??mjhiRJAh^>YHuyh)8Qxo{n8?!RHda|URzkuJh@87zws{TjR2 zZ{EB?l*z>tZODyEU}J$+U;XR_Tv=$p#Gg%qR?*Me&NsRCW}4{TQ^tz5*IF+p&U-f~ z-J8CLMnmEBT1FUR5Qs;L+92In4#b3o8I(P6nvHgdXxoL5;3a*RuM5GK4eux-51Vb`wP!w-)f!wXYojnZSLF`F-l#)6$=jU|H>N=tFI2 z&1qkH@Y3*j;Lc~CA9$3a5?`D%wtYHBJ11G?80pTHdftWXD@IdJE-?j2YnJ=P>> zSd)I-6^5E)_%a*Fn3{=~0c8AXKp61wW!;?vC&YvmShCFIfJMX&_W2SYKfSuT+QBn6 zHkQ;_(-O@K+~IZ*7`sL{A?O|<2(a z^+0W923-Z3rt-($HrsJRtM>4doDg;2vd0_|9(2vyxYmFTLH+Z<+IRx^@1*)Raf@} z8mPCR3F{410Zt<2d)bkM0YVbL)p93c19*fG0Fk?VU`M>JhN`*}%$_&w^Xx zRxhD1+TKjmiVzDs3S3(`qoMzJQr&&Co>9_$G#4$h93RW_yDhT4GCEw)p0ZUz33iRT zg7}akBtkEY#{YyOUDW(QLYm;odVqAM!n2LekOvCBQgJjnp!L|Tj%h-6g`1W}P^j^^iZ&(@cHkD- zQ(0BmRpqQ_^Dp$n(i-OY=iu-ostXqf14CO*}Bct^&!}JPwJNwav}$zmzs^a4oSt|BB)VOCZmSpYG7eXJ9}JKz?rUCrt;cquAWK zYOMwbX!xXK5O#WCpAdOjv(l+|C6l`r0UA|J* zT)+rz{wRiUw<_0(HvauVQl4{VKEHIn-J`}aX~NY0K{Vag%M7{p+is4Pq%-j%O2 zYT23y@qq9Jq;@ap!BW}WAcb$I8aw~WRiy*hMl>kQt1tKnAz2@@!N<6oeTzl!ZLLi| zR5ru_0=g95p$zyz5x`WY#eSQPPVzrp;6!^9@M26%IbCGq%urttp^ZvQ<=I_PF{HY7 zNiZ4%0iM)vHkkJm5=6m9o%OQ1cktN$94`2l^|W9eROr>*-q=%uhDfwh|+NTT}uW z0346OBp^hRQ&Ura&)R>F3#KSIK{gV6L0jO-NrR3;x>4Z@kRg&#acI}efCS`XKZV7? z3y9vUgz%yUUSfwL!H_)( z76Qb-eC5g&hSqC9s3Bbkw8IRIQ)y7di~(aKenyE+4{vYNm61|}zgEx-6#`G;Uo6XV zsW(`E%>6NeOEUJq?+TTY(ZmMYgk%*Z7}GL)`Z*Yl+dw>VNV(0-vyRnpz zR0`OPJMF7`r`0V$ci`@fQP8FO*Q^WNzyx9sHX~;<`XIt_=G|}#ALz2VxQmcR${^?=3XoK+z-Si5IYg5>Sj;vB(gJZT z7LI<34N!}v6;uE~S-S(xX!2}`qS@VcC>YOTs&gO-EIi1!e^6SAE;=b2r^(Fuy;Tz{ zWD$-e$1;+2!74YqvkhHdA{0qENNS1@h1;`#38ZjM2sOLI2*PiGX(WS*h#0jpKoZaI z>GKD_DZ*tUwGi55AdN!6GX~3)1cVm#-McjtPrl@Z0bdIg?*bG=@TV#OISS^ao-a>v z3e5)Pp&X>X7{B)W7T2O)ALoNhAk2!A`Z7>w6!QnQ2P+S2{P=|biM|9t4U4xxXuXxx6-oRapX zEYe-OonmUMpx_4oQ%X^aci}}%?|ghZp@!iel3}*w+Ak>7!=#8d)M_uxWxh3cZ*c7Y ze#l0Msy+E#oC3rc=uMGU1}1?7hcU;-97Zr@K$Ax1f9dzDP;e;pN&jfN z=`eP!$|4erx)GUl06vBW^ca%+6Ho=HDNH>)!3#U&|gvgTOFaAlw`H z>603z+P7$tH!xpy6bpeM3k0@&@I9#}o)8*K@EoZFlL$4kiHG3#HQZ^kA-?-Ck+1JB zrxwZX!DnAing>G0LYD-MXb=p5fnop4EsK&zu!##@ ziSLlx14*emqc-Cz^qjHDvWaV6jmQtjgNDaix1WuH^| zam|xQf{D?x&-(QBXJ8nS2f#bwm~ji6BOH1#lN z0h4oYs9)SW&LASw$g00?A8JRPqC4;^hP+@x~h4f5e-Tzd?^_pflt2(BT&B|aq^om za>@}q_$cp>rqEQ8S<}r=r2jgHa2*qUb@T+>;ppMCF3H(f){X7W8s$9gDzzqf|2iuu zR7wb7!I~P~W-;Z5r6JL=$)1g2;dVEEzY_{2YaFUpQ}bynU)=?*qDFr?#Aw}9lPB1< zD5LhDC%KEKwp=CJsdH0PmN;uaDeyP^M!9#%0YMIH{5d1+!cqg~U-z0A53g|*=au`P zUt^^f-fUw0)nX+1pZAgFX`%x%N-+C>zSuucgdyCg{~qN;Aw#&X$qwH$Bf5?zAbmaL z4gzuxa z>4t^tI}SZ8IToqe+%y%DV;0-jD@PX?7f7v5Q?tF(D8SCoShe>BVRbr6U_c@r91Dv;-O}GYBuzv6iI(Q%U4L+WoGl_dSh>_9=H-*pwz}+KCh{dN}u&S0#`txp$*tE~b2MExtAHcoy7ul-Y%NW2Czj2`d0{dH%P&a?9UqpTO)Miz^9OFx6#69fa{EjeAv6SNstI#d zK?z`E{Af``#K-OiCPDL|f*)%UKw+gmeMe;Bvx&$P_A4U~#E|v{St#(E+gp4pe+U*D zz`|x2;$0wFxmvfyJ5E+dj^wV zJ4j<9u8JABZK0?^;J!7ipfN1u*KHv+XMI^VWQFEHnjb_5Q$< zAS8mtz%KanOX$&`AtsTD7c#daE2?|#lLEA0B9(+NsNS{)9O;Wzg>WvbD2enhBW{hv}o@dv3>L&~3x`psEfDv|+YfI}rN3 zd`S-<{UK~*WR&Z3xB6(~o#uMDUdu;jXv|`ei4Y)l%h=I(;2J>$1O$q|3eRKVfK%T> zgPd?2hn!S?No+PidcS-03Nc27qPRXE=A#heCMfH4>;{i*N{riyBPk4UBM2Ktq>@1P zN}k=_+35pITN>;>j8jS>PD!xPp`DJSxKEEyYZ1>ERh!$h2S-hcKog@i`G=JAA{ zryHqu*3CvDQ}IpjOc8#*J{OPeR7}2}r!N0V`Gft~1oCb8k9~6Bm%JZuUAEV27l|=Z zD`C9q1+V4a%47D!q}i#}WkVj0j{9*PeC%7D^xYw$DlVVaKUE)R`|DA1U8j>3hx%CH zvTuzzijawG5aK`!kB9WO09|N5MF5`;mj(3bFbnn?XsLAIlx}F*fLElHy${J%(Ek%N z>v({YiNtpI{b|9&C02T^3RR$kyTAdi`fCJi3U(%w!)iz!fkc|os8Io}*7P z1ZNk$W*K7YRe13tXMRxtC;(GWPsof=bfln_DFc6cX8+#7K^mk92!ZfIb@xwjz~=lo z$3EB|S2-vlu4O2N-6zm-b7_nOK(|#UOJf2ze*&r3i)wkpAU;j{&AR;1C1sx1h ziVvKXC&I!yFy!zNwBxoS98fPr#l;_ko%;$AQBwcp4S9JjwIFSp(6neUY47Q2D1K)mVC{v$(KYe&XWX_GP{d4bCoW6l)!G9^HnY+NzybiQD6@S9 zVH6N>nU9};`@}IMLH+?aPQ1aNpJE=~Jbghs9n#c5nH?>NL&!H9yuZQx2MiZ`M@L7$ zkVK>Jz|=nuN>obfX}-Y_?XnRo*dJWrOBvL6>l+(!=y{OyV|P`9TP`cg>>>)xq@a#m zht`|Rdg>DNPRy{!nP*-jdt7q-^V`{HRW3JyLajMH*%kEDt*orP6DYcNv~M#oIA~mu zjJjQ*k3fvlf(>}bdY~X|S6~9kvkhZiN&@LJ(dn5`8!d2{968TLFWtF+|01eDpm=LF z0r%FP<6yjJGA6aXnk@Denp)#I8v0Y1A|gdSIVeMWvHwd|(nx96GG!n8H2uZ$JePh8u{S%Nddb8etQi)$gqn4*|01@)bYdv@w)MCg5@jwO4(5C3F$=OeWt6Fy|h z)|IB6cTetSJS)8l+!ah2%SQHui6?#p8IEaR0E}X9?pKlvy1oaNe*(r#FGQ=50AmN= z7J>ydN&_SbX2%UZpjB~n-}(D1^J=m4$p(RMGWt-_IpZ=}2LIH(t3IfQ@$|2AbD5#s zctIic@bCyxUB1oBtMRhU*VOw3%-K$`lia$M-f8j+3J@x;P)bZ#_yQ0k_eN9%EP=fi zc5&fDJvH?L3ldgilmLbpA-nCD%2ZWVZ-Z0J@U6(r=bgO_LgTvP*mtQlg60&^k8Y|y zm$>wYdrHZdcJGPRmvN=xn#>}m4*UXVRVG=Q6cZ-^uzlpTBm-27`;d8}8cZ~P&;3k{ z?y$2Hg5|aja$jez?t1kbI4`b@r&F>iUaU&!;UyMs4 z=!QR`oTJmKUd&bo38o4{r%9w%f>uMC+t4|ocDUcH8Gws>-n$5o5Y_z z5AMH4QL78PJafx=!QX3tm2g6Mg`)6~ev=rdSf2%p;T^dNf40(!!bFiGL$~8It0`-4 zS4pntYmVaNj$8EhEUB5gv}|@Aqh~d5+32!Xwq231Idg&N`$JF?>S1ia!}D(aruOBl8Dg0QD7&8uv(wVK=YdkJQ!G^#lPynH*RguphCao_EAON&$YqZ&Hz# zUo=s^(A_&Uln^|k{^0cc35^4iaiQ`7vkIe8R)CS=Me))Y*2# z66O6~cn4V@Hun-lMMV{4r74$T4vU0Ug+jB!{)8_FxWQ>b0*@RJS0^e{K&HR}l?_O! zvw-}S7Sb*@ef1ESr5)GK$a&cN>KQ{LL?$y-;0YTg71c)%sHraj-l&E3`4AD|3(FS| zPv(QjGi0#ke+b-0dcm2m5Fv9)yNb5rq(CYzn6LS(pb4-pxeCC_1j@Q=YI(L@3 z?OXdj6&dPV$|n*9shk9;qfy=7!G+_EZQjkx)(MshQI=={~2D*{(0t<>=s`iZ^`KTXKL zo|m=mvq@EQbo*@5Jz*oo#tYI#5y8Itq&5~+=g!N29XXei*Kyn#@>$4d5Ko z&qF;uN+eGJ#hVMgZdr{pe4~Ru@r{ADPZTH~bYG8du2413)%Frqn-vSQstm zL}otvUn(MIn;Len%jEu0A15GOE@+E{!z{=z=uk`S7KxyjMLm?e^GNM(C2ZLxYTtFZ{yPll*QSHxu+MNgigS+eB^iLfCEWyb_ljaW<&%%%MS3j z7IG8_GuXMR@1dbPf;B>N9|)q!SM04F92(&#_AHyt8L0{0X~e;N5Di~)M5Tzi$*gm3 zs7T3@Jc)Rr>uKSyKma6&D6y#u1}6|h&x2^}rApWE^V=J%wV#hF$Huc?yP7Y=X-D!X z@#Fpu<1gat>KBMmai@t7K5DvosN0=4N1so;Dukn$6*JA>NZ!t1G%gVmq=Cbf1p+XZo^6P2J(#)AD8wzua1DbFtEbZL+k^-x`%I7_=aYqJEt z01f@RyR{Y1{R?hoV4z&?wb-JfA{4>$S=&q<8ENST_;M7#PppPDV_MFqThPDb-r~T8 zjPWg$HX>G|=?7)v>Cvp<+QvrBTxa~1YuDa@Xn}p0Bopf&Ab4`4p&=2+^X-$nNCT=a z@g_VpFz^cGO8iff_avj1M@kh2!2I!IVh4P<&;fm+>VR1c&sY(L@JSeTzkq@fP?5#< z{rcMNL5=x@9L8y0-0&)4p5g-pweG{6F%H9a^2$Zz%8i_(PZ z0Hwrb_3Ip}{#=F$4z>~i2ob3D;KA?#YXoS|IB;S_fY&G_%a#C~hKhr9Tu*jC_=kr$ z4V+i@IcD)7ZR)4euW(V%EzM~>8dvz*YI?nIrWhOghiT#0%qB}RTz{<2L3FR)tANFt z^23j5CguxE1s)A6{6BbZMN-i~_sNSEm66~&36@NTPu;y-&D!AB=xLlQSeq^mHwgsg9yl>P%6C_=?^?U&Uvo~0U{=>x?B#-)Tz z35in`eG3ZM_?&leA+rj>Q>|d(DXFN?K+M4;w@j*f=@fxzpf>dzxHIdGgguITgl+aS zMvDrN$Q!%GvnLv_&! z{>9H+SlB&PY<;|zvCenA(~Mr~xrxsEqsI^K>UOVF(qHz|G+*~Bm-6Yq{rk+PiD#QX zKO?KCE{jJuhfPcUKnRDtzke+L$j(s5>~&|>s05}eHSmPp^je+IM<+wSKFqdxrH42X z7I%OhS@CEZ(U`q!_u4CED#y;&i|u(GvLDWX!rrj{rst zzy5qAX>m`WPWuvnh+T^~i;+M~jtoQpB9~typOfOpOUl!~e!T{Hoq~sl7@#i0IuDfU z8X)j&S5ARR?gR~Z;sgv;OwcI-4t)+jyvIzB!oj^W36+MJcE4VS`D8Qp^!B}b7hvSE z5imlbbk4;K7rwyvCc&wC3R-eoG^d?u#3{0AC3}4sh!Ua0Ty3O|8Iq z5des(q{QgtFzk9SRskF_I+$j0|HASRnspCMQ|Jb&Cng`h{{#zt&itA!bbyUuyJIiX zu688_j)~FU3~HItK+YX#BPUi?@Hsg-doneyXJuu*u(ww>z5aOtfK7?RDjDiF71eo! zZW+O#WGRb*(GwMM)bP<;(UgyF0{ndfO?71rs-)NHq^injv zCj=5wUQ|?6B%^rpZRX%0f>{2trU_bpw-e|mfiD)i7aYn{vYAJp ze08l`+t>b*L;jH^VIQ!3ihjuIQs7$7dQGgFoK~!qA6cS&+a0tWc>fP| zZyt{IzP63uB@#uGxfCHGMHC{XWT<2&^AIvCnG=d+N&|^XnaWIM%up$mM9CBi88ge6 z@jX9#t+n^NpZECv^Zxbz9LMwQ)>`4dzxQXjuJbwvJ87n@>4z3)?ffOTiOJ3Lso3;| z&A;N8R@TVrnEms0e==9yp~8d9eFqDi_N=31+c|0Eq-N1_-O%%4`VjrcX>)Yf)6-O9 zHTvF@TsI6f7QB`wl{g;Wsmv0<9z+Qe_nejjEde9O1zaHP`D4ekUOHv**%UqY`jB!7 zw-K}g{U)F1levrC$5)~|W)@Jyk$v+1{&fTixNt!fMUKD%3k%E6;_%#{8#gMzBYI}? zX64mN5wlNBi9z%o{Gtjm1^lX(=BB}Cwu!x)G|cz6=c_obEBlgqpy;~4eNe6Qc*D}c zf*B!&!BLl9%Zhulk409ppS!k~Qa*a%JF_+8?~zA!$F0V8itgX~b@@-|y|%PNHI<2- zKNneSDx1&5m^JvsyiIswY4M*+d!QqiK`5f)3yY4^WZkP5@mDs4j(KP-R(;X<_WhK4 z`uj|C$DsY|Y#zhW^&ac4rS~$~8EJd}_=pO~4|e+)`DqqhONtH}Q*b(8x=O!>`IL74 zWRAi-pZJ&0;W3 zXMA|*xUOYQx4&umvb##UH@GqG=<0%(FX?8&w;p`bc)In&hc&1`geSUSCz$+Q*5fx1 zNS`bC^+cieJ7wjvDhXYlIiQxZ?hH)=nS)bCDC6+y# zHyuz>8Q7Ex$bho>j(O^e)rX&L^uaw>=8>Ak1fM$zNy#@KKhk5WEVn%lr#maET8atu z`Pd_YZ)88BW)5iGv)sDkH8@0_eSJIAmsaPjW{!wlMM*9hIq|lkK`TM#*!eA6w}yOQ zo*g&G5TB0e^vabhvkCCc#h?XJ@?pT#B5?7c1kXSlQ#1yl_Ub0Gs@jBiWsh}#*wmSa zDh+pkuJ&{Ow63N*0b^w!9b~j~vc|GTDJS-A>Sj_tKcXU#C@Og}RQ&2z*))Tv#vD^V z6DJt!8b2Cv<2`HkXYcprny77-9Ser?*{|O>E8e>q`LUZ+ zQqz}PXcz?I{ActFO%|2P2QMxgpT=IcObV9^TFYY2GwQjnl=ntw3JH{;Xc6LI?xYgEJ+3wsJ^chB<#4qRGJ}U;8!Y~~E z;u*(-rnYSOx5FJ#w-JL}SC%T@*h9y-H?Z%wqs25RF)^_N_Al^6SPeYie9SHCckUB* zZHn*Er64_EOL({YAB4WGi<9pxo9&Y<8$F@B3=Ee4%zVe|pVf^dPn9gngTzc^XzJ38VX4hs^b1r^Sw!`n%VA#x^jPOllm z7`@rYXv(Bo1Nq;sOZ8jf4K={&jQFd8fr0CvyB9wEfc3e8pKmZ{%2tPl-N3-W#L}|4 zY62xBRKBY*mc1GfKn=2TI9@Nu#dU@#M2T=Z&inY`!xTv4ebH8$m-(+@_uHlgDb^b} zH0=c!cLAC~*1aZ_e<2HUHxndM{iqx0=vtD|l61f#HuL7|vJqJ(d$B`y`YaEn6!Rdb#HMZ+HTeMWRKljiWfGkM{n7g5X+UE)a$j-EH2;5zR7&YS}JTI6490Rel&w?#a2jYd1`<(v4qnqE@-0DCF zkvH`@mzJC2KrPb~WGO5tAT_nqg$q~i+}T7>ZAe*?wbIoVtKn}Y4?6qUSm#mDE{Xq= zlbhQCcj@D}Xe86wgg%AtHFb_y|9MMe%~q-(7v%fza$NU`y~+_TDqbTlE`B`fNe%1l z-88+T$o2${v4%HZH$QeaUyxd{EhmMFe&5vSR`VS@wmcla>$I#NDZo8fwfkn-izniD z*IuTonPzssCv?2Ikz+lJ;;p-ezG;m6I&`vTKlA(p#j1gh6BpC}vu;If{LkfVn^ik< zTm>$xKPl)M&}|alpS?YBi_X`0WzKZY*j^@Cu4BPknJr~>$}$T!oq^8b6pBJ7pLN90 zAy@G;1u|n9@l3f?EicUu>wiy6J#{Lyb9C5uU;ZPUZe7y}cC()6@&xuC*r!b|$SBS1GM+zJ;^G3F)sJMiITnx8@TolD*F49HrW$<6b)5GFI5;@c_465i{rYtd)5@R* zP9tit+$Fr{#GtSWMd=r|SoPr-kQA;xdl>KDy}Nh+{t6(I=V5?Hl$Tu(KyL+Fv=XY3 zsc%MTmP-6?Tpf&TD zcU=c?x%uEVv|?Ro2T`%0G8As8jqC31<@2YbnBcU4Vw`2f2Rv5z6G)&aWjy@s%6!iN ztFn5^W&rS#nMNhSs5ZOs(wYmMpN<(}!YDx)>R*)Q8&DDlv;u|<0CoVaN8D6%RBOru zNoN|M9=kht3O{6e8jpZjh-+_Qp` zW3NhO`DB1e_j2?cU%HT(&-aP*xo@Jj?XP&35xiz>ht6#m>}ZoeH=mpvdNP}t{Y9YOBg# zw2MEk8<*8MVF@X``6cf z{i+7lamEU6K|w)yn9!gAd_Dn8t$TljGkG4jH=LW95jm-Dh>l zO~5E2?8JQW(l$4iSL@eQBD{7=#_{{t>3>zSE!8rQTW_J^0LM{lOub2_8!%R-S@ zMjG2j)rR~qlxNF>Q=4-?ETexlixtq$lWNs_{q>vPXk}z+y}o4r;rJ6sr?BE~_ypJa6*!XBh znlk0_xveYsS8f5raYJ4>+rB57g4%+_;K(09m^mspa*!Xw^fse%m(C8DsBMw))J#tP z3wcoDqIu{B+sX{V(2#>aRHLI~()=bSCeC-3 zQKLFgXy#)M;o2DF1TW+`I(cjOgQ@J!e$2j77q;E1x!e*GtVM346^ybAzIZ=fg!Ns} zh(84gY(md>H6dXKM$RD^fSQAzgWYpa*5}aWg>i+4U258$su+Os-`FA;?H<(<-KLKFXl;> zOxuO!#|xW2%dgtm`rCe=NpgnO=121=u348uJcH zDzA@AkM{3;@}xp;ecZLGr3Wi_rGH}TJnF3RJtGDa9k+FHsmj0UzmMiVKiB?QX-9Vb z@uUXjI@wqG{~Yiev<|El(%e+^bEa$E!B2(VJF`_E)D*2cVSWo|yhy!gh*C9^c$JW~aqr@CFrP(gu2?wW76G0y71s>dGm zJ;r?ms4#{I4SXKe)z!pnCRczFtLOOr{q}3wy|C7ws60%~lRG3MvlY))ykE-f87mQz zJG}yVs)0Lu`(I!W4-ZcVDkrJst)LbMj8Rhv)QU|dI6fB}8#^{xFJx+b8!!Wv>Z(H^ zDw~?BEqEDN19qbLLWYW3{VuCJ0N&Ui4f`84Ux)SID4XJrqB$F%EM%v>KNLhytq~pIgRvZMt4=7P>`p zBM>W%G%;@Gkbpi5m=n!{g6A~)Lk3e#6a1spwgfRL>ocYqC&pScbuX%pznuM5wj*>n zes<)pqD8^%Y5v3d$%lUd!g5`>bv<$N(pe_O+{=uLJfgd;1PUb1`Rs1hjgd3hF7M!{ zY5piHaQBwi7@>Ts&wGk|0!HM`<>4)N1pQs3A6pA{FU4_2m@2`dxRP+t+ z+`<{D!o~BAli9Yn9eQ+O!=pB%6p!`3A}(IEegOtbnKfNTz2+L5b>BzzcAmO*fKQy= z{PlZr-r#NK0}sW^IW?N9m|l24jd0JJI;6oAjxRN zAQ0Par}I!TQyIg%%>t&EP(w(CLnj~HvWPl~&ezzKYkD_E}y$@WZ2TYe@~< znHfu$m%PY}fTfV|xI2KWfT*fru%J%nI~YTdp*YO5O+c~9 z&d*m+R;GjhHkZFAA*1GYP*c{ji_xOP_JvDlMQ$WS%%ON5l;HKGd|sMwU;f$oHW22~ zG+<}!+%gYriyl&>d3$$HPe8z>uOYLllF9B+({N+DALTOXQt|xlvzv-%C0vK2*Xz!T z4-~43E422dYVuV!hc%7wl}~>*YVq7mpuB#)wa?|Su+5taU#3=1S{trzt>HT?aHnf_ zYV)LB5^dVnqUp81W<8#PPkQtVf4WTdf7t=pJ>riP7ONf=Jud9oL!QyU=aqOi{#yGR z&YRr3l*VO7ySo!}PpJ>L#F&=DbgZPMmS1)?C+7QD+st0+X=%18ud*WI*ePo&? zzrIpfbvY%c-{sMR*l@K@om)D|GKr4|dX#l~%D-su(@oUNNHXJ${CE8^#HyRzyQMlr z`|^+X1sc`2lDdQiVkWEZ^d^*s?QD_A75FNCU$R)u%*1c^^7T*ln;y$i&v3X7#OIt`AOaZrP_9C^C3L z`-o3>(-Rzw1V#L?j~U45c)!k|0mq;u#{Sd=VAi4oaPd*15kl*IMA2oeu_%NsfPq4#7;2YXMV8 zfIN0ky_e&IB?mm=?U?^8l7{);HZY-%pFFviL{7MwK*7%ljXTHyyQ{oUibk99W)0NB zbkrHI@i9gj1R+HuMl2X@Wqdx|=EYpQ3@R`G*K!{8YuCQRVViyK3paW3kh~B|4374l zt2AJhK?^t0j6N0?ZOY~b^#~wA9mB(6Xo}5oMM$^~v7+)0129P;fKq@tjCp`61%hO} zl5yLicW9Cu&43nd^Z$ij#|d9Qac}gZp0$c+ec=@jbBa2oh|<4D{#`9 zQr{|ELzC-#^aSHUiB|oxcgI8`C7mpIxAQ^++e%LNoOcS2Luro1~nPNS>;ipEa zEHU<+D2Rer68)&GH)th0q@|0S%>hPS0dKP3`_u2e7G62)wVm8@$~s&fl8yEK+4uME z6iyP}MezjYPI zzwfz_*!$G_d!LB|qlS6;2@UQ$+e;45E4v0s_N&Qrb^+U2;>`v7iT}g?H?r!USzK1ydj@ zaM#(eO0VIdg(ET}+RkGEp;;iL=@z?-+~AZ6#w4*!_e9FZ6wTBP_ddIEFJMjb=7mxy zXiMRnNax`ZJQJ#@S^u-Vv5^@LBFrNkzwYf-QC8llebUR_{oK$iP%0V^pCF@%H7ed= zZ2M?%g`jR;7at%08SZ4J?eJWl%w+g28gz`?e?1@_f2Qt7m*;lXJdzEEo|!ljmCY{# z-l1%cREfyoh6FzZ)rtuWKxp!{cAdVu^1G9?vRbrBZGeJP+OHk{8}!_p-&Cki=)Amh zK!d_Bz;;RY%Ql8RTFURMcGnl3QnhZ@jfqcsDwA1mwSCEhL0$Csv%az&rpu3ATLc66 zkFI@r?XIve|ID*e0m95g58d?Gd2)?VfBf8;FDRAN4HG2LX7^nFRCO0e-p*gawR*KN zjm=^|829+3TJ}EQO7%~{dP^Afs`(p-QTqI(3%eY84(;mguS17lsLjK|$1huIIk6g3@4(dM zYMq8a`@x@OGV-*YW05=yQ>R~Dz%~t2Z;_-{Ph8x0%iP*BUK~m~ovyXERwn#ME7CQ; z)~x*5Cke2{olCf0@5+L@-JfuMzB>fYc1J(dF)|`-hk1~UO=G=bsx%+~kPE-eivWt| zjhJ`4aG?x{v1)$i$d6%8PENG?mADnRGlz&kDT=yNeo$Z{XwyzebvIEqZ~BT#Ru2D{ zbGPGwxHw@J?FC7U;By4u=J3_=`)vi5gB;L07tR^7c6s07K&C%<@E~SJt0CVVwzAgLghmEEWum@Gs8spf{u}L^>NB`rCQsXDom9%g@pK`A%D|y1ywk2bXe>V%u zwnX!$!uX)&j>DgVd?bC_R+a}lj>c%Sn^IG*hn~vH9v4_gckykmd%4w2=0y1U@kgUn zz>OZ-i`ZqH9228@-=JnBE0XcM%yv&v>`lMHHP?Jtv?ga9 zd-BpS=T$8FCx_}&e3K`i&zLUFjkp!WUVhP*sbeTU^ZaU9z^>;Lyb>3A+4fx6oHn_V zL#phZ?qcoF#$LX?;^NniaUYG-yjI;N*IZJ6+4S3+dCw``%ybb!@l^AxK-4L|_D?tN zO^NdS^C$3w*@NOp^~|n_k3IJex(Q#N?OcsdGL@PcbW>Av^MnZldwZ4~55h1zb^jXZ zj4M?AnQ)UC+6hu6fkc6c&N>(#AGWa(KvfxrDXJ-a4Q$eWQmtG`x{}%XdGnsCNM4n9 zKC_*HICp3ebl?XGXFRT8cc`@|=R8u?K`$cw12AC+nZ4Jh!SLx6w) zd1D!2OITL3E}$z(ig~~1MquD-+_LN0*n;r0Fau_=xnl*(1^3x8E>b40!c-RoNg6}h zy?fVh3`%_06|v&#=nw(~Xl$@YywIohd6+DLj64(rP>V6rIz zOceRTSzvu9p-0J@2~7nqg1T3+U>VfT= z8J|U7rDM{tP&{;AT$oC~mM7wu-j4Q$bZvD*V)UC_XMT=@?kKCe#hbFSc)2T^EaKR+ z7Y2>kkGrZaAGjQQ##ck6R?tiLKdUyhX+OBw%Es0pMCPP_IoTJy7+icK?(Y5=+Ji6R z*E}f+dKEEme)9M1Vf(rX_W|BX*UW;*gjZI_x@OkCRqki$(^KKjEML@hXiBSjxj!qw z`_^f2d^Bmi4(ku!k#Velc0|*R4^y6N-d@xXy&ryg=|{!M7cxHoN%LLO_1svUNOKy> zE6?fKscZ3Vf8x@V6gRQZHn3(Ms($w+x%!I$(r`u`q)$E?}4WH3-R`@G%RphfpPn)$M;l0@!c>D z3lURH3{ghOp}<7vPON(GMMpZ?MnjiP$cJPt!qodJ#`*N~oYL;w+Z^C%Rbva=UUgbN zeq&i*v)pC0Zd05m%*?nctP76!!SKpar}$#d76;AQIVg#;Kh@S|ooryFl)oB;n(hi9 zp0og8QhuRmBg|O5;z|^n#77HVm&)iExbTAh9~#j>o%3cOhyu3FN#rTGFTi9YIpAby zSeOW^uUr)`N z6PDlYHo_M)-u0)lzgLGNPn(aB9i4rGca6_P0Vm}VsNAd=e0k@Gnme!Ca{6anoHfkv z-Pb;K4mPWQePOPD*Dv7Pl)^dxwGn!a=bpF)`2T)+BQEAlVJB6%QJHtp$t&A#`|O#i zWHZW2PIS0nMEBfc`A6*MhVQ<4nPoP5lx=G-y;i*&*=s_C?{J_k}We1mO5Q3unVHMQ1SZ zXLnD}n%ZcasrBCJklx>WJ^Jm%PVlrt(bJ$*j`Lo89^!!9)visT&1Y~Lr35#X?R<0zV7G>b2H~=!wxywn z!S9B4bqb{C^q!Obeh>wAfZ?YAD$W<&CUr}*NtS2_T*DqX^}2qs8UA_2#8hU$yhTNx zH~wpWY}e%ODXkw2jh2ebPgknQ&y5YgwDAj|U{<%&V18ABN!RH4n^oP4AF3+Ha-$li zbs7t_aKFBFd_lE=DeBA<+XyXOY|x^vm3o@}IlB+BXAJl}%N8-5iAYuc_$nYJNaPSL z|J*|>{G{etuLmt6EPRL5pBTRSIcGt>V2{JW?(*R=ZnLn5vrBx1$U z_=a@-ZA0(CCMG1zY(pK|xcE%->kQMUo;CVx2-TG8xXeRNK~{nuYEY=J@wK^=9cBMUESGq^&73tie9#>>}?L}zHWH4@pK)N&(KJV+zj1f zg+pGmR3qb8*B@nFECUuVWFDlCdl+w9V2|Wp#e7n;B5rh6Gc9h=X58fcy-4PDm#HQ$ zzr0Fl1})kcjhLQ0=vLgLagPR>)?vTfTovVkas9eH(| zEU-2#)Ab`>9v;7>r+X-;p=eVzO+*g}BT!!G)HXo9%N+XQ)2DKjq$akuX=?F?0+D5~ zYZ`7hP(wVMV zbL7~uRmZq*HJZEZ3fKBlvS35+NA0E{Snrzs*~4ydj^SS0$JJ>!%H_D#vbei?&jmOt zh`&`x6OMbV`lO4le4mKg!u-G-r)nyf=+&YGrj5(iJ!74%<;yiDmNub|*Tmmi9ZYDb zur#yt|FTv3)`MGnR*j!rSL++8>*J#EmoDF-+u--?}AS{ z2&-(G9~A$1kdFmVsiejlbu_w3{nT+bn@cxYc+@4iGn0KDajVqP@X9Dx~f5`@;~pKx685Lz&zMMrRZAE`J#_g z=P4#;Z@-k;OLo(S&ntDYa_r-{)YLn8!Dq;4pE0BU!v3O*_6MF%1kW|j?0GVCfKq=x z=iSUE{WXiPCU`H@r&&HX)z5Fvcn=7=;CK5K7D@te;>JfYycaIiUPFiRdXfj{ct#E!+MSof&1R2a-ky& zA&a-FicVWw8-7P`afGg*I5_mM90Quq0<(Or-+p>St@)@+f=kEYQCT*Pf|WFiyCr^h zcKQKdNq;kwL z;HgVHrH#R6(zxH|^9{ue8FfoYNNk5_4Eiq|#Mhi|Kv#KO{0fv&kbE;jXp!uM9+yy_ zHB(e?ynXj>739%xalmtHa#MV9KO_LQF7xi`F8O^PDzz~9Fd;#D6B$t8ci)PLNEBH@ zhiisSF12$R)=1f~TE}2>tW@QPGWvCW5|$85=JUo8m2$F3A7QRoxnoggq(! zbKuUH;QPxKVe1Mtwff*Q3XD?hNzV&m&0AoL&!A$vs&5uL&>f`qP#P*j3!m?M=r*sr zl;#jrIWv|PApFVZ=g3z(Y4^KSEUQoCjOA=9+obUHRnkP;?L&_F0XcQH)zD{fE^b0t zdnfZ-1s+YEHof|sU=5af$xqFM)`P_do*JX18^Nqp{&pfdUKTcn(^R(yfN7%ou zheC1sJ7RlT9yTadL3z54OrU0^d*+R{kyMg{+1bl44v6P{8fm9}F@He4by|CeLdGaP zNE`lBlNHG-BLx%3LMyF3&J77%0YQE}W%tOUW=p&M#jvN+nWz3K>NU^&qnX?5_uT$1 zWOJ!QQgi35hi?R}lhtm$d-u^bE*;B$iG;}?xn5Ml+VUj{Sx@A-v|{wD*)$ub7pFEy zFP~gG;QT^YKGFW9VOM_u?9{QgP z^g@)w_;|-rZV}lM5ZsMrbVL&I^y#z`F-;}z4)(v7pq!V-h;^Xh>sq!I!NE*KW&E-h zTwf4~8=E8zllI%aB|iwm3j(xYy6&sTdOQl-!W^-o{xk6``%1A@S_|(M!*}(GHkBD!!&aL}mk71p=d!n@ za%p?Xn5LhTUG^U?0D2;k{s&jCtSp|oJ7PjdxfdPH1z+s~Srl?Gx=Ylw4-K76_9f2% zI5x*6`=esk>VNDv*=1CJepyPT$MQ&)=O5x7H`Cv;y4*$v-}sWF7DftLl~qdb7Snab zvb7chCe#PCLQD6r4)|RcX)RoH=gQ`@ES7I8s%aolz2hiU=lK8)AXtf=3 z{1Q)%R%zv75w1<^*FP4IP<;TrX-$)As(!vOyni#DHx}if=!Wdq_oa(VR+%e=H@Mcq zi;Lrbw1AOK;IDe^TAd`Qz*D9)bYL{GANHwN2)6)|&9UkIm&#p0!UHbkk7YV&5HvbC zNDuGBoO65qpFZ75_;BbvJ8OjkDGkXZG2_Qw0_>SIPm zobb0mHrnc-V=Mp2?hcK}I_T`|d(!qt{-kTv1U$1X5tB6G3SS-vm&T!<9(ir0dq!w zSIN;oQabY+M{yF~F!Z`Mx~#bBF@N~BExH%9XzKuv>`>&{D0c2Mg_yec8-Qd23O{HI zgXw2cFBwpbE=q)R7h?t#v`3A^NG;mWk`^HBC+j(*`Xo zS!4GrW9?n_o^ARu(H()ye-f^}Pp4DRF8*;s7~^lPR^|m)!_Z$tTH;g!$NQ-JR#0}d zPw{J=2*mDuHWeCwr7GC;lR!?{%74Gx3x5`x&ZIX`77NUPJzzz1>wm(lBtc z%gmBqK|`M7s+bbGjb$k&*R6cYP?nNn`syIi_9+F)M;Q)4&2q6K+XzEN1ugpsx5!* zvc0QGVHgsx{{HH3CtURPk%6gnLT7uJxpx<>XW({j)_=wRUH|VVv5V~w=u>Z-n`y%g z?2V&q8wH>J;=fs?di3nIYcBR`7v6@YCg^d+2`THx{kzz^-rqjdFq?MZ%d49ik!*Gu zsg8w?_J998P!gT;@{BGfm~RQ8TFnok7ZCWj!+Z=Zpc<_5bxtO77w%P$&rljMt*oA{qP?1^4YR z4^5RVNDV||@V|XcwxrhO_}+Ih6mncp(!yU%>j{%Jb)o+ESxx>BPp8?_v(B^7rM#GC zo6gkU>#HW%FNGR87^Zo${%=1Ef6Nl!QD`8XHE;xypYY4&5%-w*BR-~j@=xxuusj<| zezfj?K2Y+;lQ(MKf4!0-UF8w_>Dj?&yMLY4VhmWaI9^a3s5Z6w#ky7h^|sV_Q?&i4 zlN2Pw&rAI|ZJ=CqCx|c|#R?yaFMyIj;mg4rPk7=HY$27xO+1TFH*Kfv5H9I#qARs_q zi}7ElQ~&a}q6t{aFD!TMaa|=(&0-*z!{D5oQYu>`>SsG3XrGWi_;MJ>7a?Gsf(8(&FJSlWHkJ82_pqczwKr1!E^+3Ad zn?591kuO!vRm>EM@8GVu6$NPUb|J#_w&pW4dHDW*Y;DyCM_b;3Y~vn zEnd{E#NhH@UlFDwN#9|7>RX3rW+_BPn_qTtV@0AU@_)BiZ7?Ud92F$u^W|eQ6sH|*t?LS_y z)c<;kBkmY7+~y&fEXaJ*u>fD{(ayhr5#4bUyrj1AlYDo007_*{`IdqE|RDF?=Ro4|9Xl4{^$R{eskZMmaP<%S7_mql9FJn zr;qpmq2Uo$=%#^a^8y3(@cga2!a)9v$CI(O|2&_Lns>>R4sHzbB4T3nTE1rspl1Zx z3{e1)06G>H7f%$OpwOw_jol@El+vWBEqA(b!6tgGtG?9ZRZdq{uBp)WPl129!iZEBjf<#Bv z)7hzJvq;Rj0r0zk){Us;BO@agJ30E5Yd6Po9sbr$7x%QSnu}jx_up^BqSjuPj-av7 z{V{pnM}w^eu(koST{HV4iQUGf2C%~+iQLy1w%SY-0PE2LkxLygCm$L$|@?_@LZUJxgpcbtzOW1p2F7pjYM6*SIU!mH}FaYhlMvQ z!6V>mn8iuB*}|_P6BIm>rp^553u4f^UZBepBT44O_YHqe1Rd3YSnV~2r>6^9SXg}X zE-otaDy3Q`#?+4vdGja{gE5$&2u(jimSfyh0}@QMQq*~i!fUNN%K~65xWub82Mc53 zH7}Q|vC&`{AN4zRxaIRGVcMYyT8DDs0Uu(e1XNHnLr+|0>@`(+iz{9rp8wNIPOp

B33 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

uH4ThCs4j+$(X;j${=m5~KL=BIj`$*nBjKU{T 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 literal 0 HcmV?d00001 diff --git a/docs/networking.md b/docs/networking.md new file mode 100644 index 0000000..afc77ff --- /dev/null +++ b/docs/networking.md @@ -0,0 +1,39 @@ +# 网络配置说明 +现集群共有20台服务器、3个网络。 + +## 低速互联网络 +通过标准以太网交换机互联的网络,用于管理、访问外网。 + +- 网段:`192.168.16.0/24` +- 网段:`2001:da8:bf:300::/64` + - IPv6网段全球可路由,但出于安全考虑,目前仅开放`12022`端口 +- 带宽:1Gbps(外网带宽<100Mbps) +- 固定IP: + - `192.168.16.1` HiWiFi路由器,提供DHCP服务 + - `192.168.16.101-114` g1-g14实验机 + - `192.168.16.115-116` lm1、lm2实验机 + - `192.168.16.117-120` g17-g20实验机 + - 其中,g18提供诸多集群服务,如**跳板机**、上网代理、git、dns服务器、镜像源等。 + +## 高速互联网络 +通过RoCEv2互联的网络,用于RDMA实验、分布式机器学习训练等。 + +- 网段:`12.12.12.0/24` +- 带宽:100Gbps +- 支持RDMA +- 固定IP: + - `12.12.12.101-114` g1-g14实验机。 + +## 校园网 +通过以太网交换机连接的校园网,用于访问外网。 + +- 网段:`166.111.130.1/24` +- 带宽:100Mbps +- 使用前需要准入代认证 + +### 准入代认证流程 +- 登录 +- 左侧菜单栏准入功能-[准入代认证](http://usereg.tsinghua.edu.cn/ip_login_import.php) +- 输入**目标机器的IP地址**与**你的INFO密码**,勾选校外,点击登录 + - 在目标机器上,运行`ifconfig`或者`ip a s`,找到`166.111`打头的IP,即为目标IP地址 +- 在机器上修改默认网关:`ip route add default via 166.111.130.1`;如果报错已存在,检查并删除已有的默认网关项 diff --git a/docs/registry.md b/docs/registry.md new file mode 100644 index 0000000..b80aab7 --- /dev/null +++ b/docs/registry.md @@ -0,0 +1,79 @@ +# 集群注册登录说明 +集群登录账户通过[NASP Registry](https://git.nasp.ob.ac.cn/NASP/registry)仓库管理。 + +## 使用方法 + +集群的跳板机(`nasp.ob.ac.cn:36022`)、重装后的实验机(`g1`-`g16`),均强制使用秘钥对的方法登录,不能通过密码登录。如果你没有现成的秘钥对,需要先创建一个。 + +你需要把**公钥**上传到仓库的`/authorized_keys//`目录下。路径中的用户名将成为你在实验机上的用户名,需要满足unix用户名标准,即:以小写字母开头,只能包含小写字母、数字、连字符和下划线。你可以用下面的命令测试你的用户名: + +```bash +check_username() { + if ( echo $1 | grep -qxE "^[a-z][-a-z0-9_]*\$" ); then + echo "GOOD" + else + echo "BAD" + fi +} +check_username "111" +# BAD +check_username "a111" +# GOOD +``` + +**注意:使用非法的用户名可能导致集群配置崩溃!** + +`/authorized_keys//`目录下可以包含一个或多个文件,每个文件中可以包含一个或多个(由换行符分隔开的)公钥,可以按照你的喜好安置文件。 + +[NASP Registry](https://git.nasp.ob.ac.cn/NASP/registry)仓库的主分支(main)受到保护,用户无法直接向其推送更新。所以你需要: +- 如果你是新用户,联系管理员,把你加入NASP组织; +- 克隆仓库到本地,创建一个新的分支:`git clone https://git.nasp.ob.ac.cn/NASP/registry && cd registry && git checkout -c ` +- 根据上面的指导,添加你的公钥; +- 在修改完成之后,提交修改,推送新分支到远端:`git add -A && git commit -m "add my key" && git push -u origin ` +- 在网站上创建[合并请求(mr)](https://git.nasp.ob.ac.cn/NASP/registry/compare/main...main),拉取从你的分支合并到主分支;可参考:[#41](https://git.nasp.ob.ac.cn/NASP/registry/pulls/41) +- 找到另一位在NASP组织内的同学,让其批准你的合并请求,如图:![](attachments/6386bc2c5a9d3dc7dc0c9ee5a4b67ed.png) +- 随后,你可以进行合并操作(创建压缩提交),并删除你的分支。 + +至多五分钟后,你就可以登录跳板机。跳板机的地址是`nasp.ob.ac.cn`,用户名固定为`ssh`,端口号`36022`: + +```bash +ssh -p 36022 ssh@nasp.ob.ac.cn +``` + +随后,在跳板机上,你可以用你的用户名登录实验机(端口号`12022`): + +```bash +ssh -p 12022 @g7 +``` + +通过配置ssh的`ProxyJump`选项,你可以将上两步操作合二为一,做到跳板机对用户透明: + +```bash +# the same for scp/sftp +ssh -p 12022 -o ProxyJump=ssh@nasp.ob.ac.cn:36022 @g7 +``` + +或者在`~/.ssh/config`里面配置: + +``` +Host g7 + HostName g7 + User + Port 12022 + ProxyJump ssh@nasp.ob.ac.cn:36022 +``` + +从而能够在vscode中远程连接。 + +## 目录结构 + +- `authorized_keys` 用户公钥 + - 若干以用户名命名的文件夹 + - 若干用户公钥文件 + - `authorized_keys` 历史遗留的公钥(将被移除) +- `scripts` 若干配置脚本 + - `jumpserver_cron.sh` 跳板机上的定时任务脚本 + - `jumpserver_deploy.sh` 跳板机部署脚本 + - `testbed_cron.sh` 实验机上的定时任务脚本 + - `testbed_deploy.sh` 实验机部署脚本 + - `nasp` nasp用户组的sudo配置 diff --git a/docs/services.md b/docs/services.md new file mode 100644 index 0000000..63722d8 --- /dev/null +++ b/docs/services.md @@ -0,0 +1,2 @@ +# NASP集群服务 +#todo \ No newline at end of file diff --git a/docs/testbed.md b/docs/testbed.md new file mode 100644 index 0000000..68e2b24 --- /dev/null +++ b/docs/testbed.md @@ -0,0 +1,92 @@ +# 实验机使用说明 +这里描述的是重装后的实验机的使用方法。已重装的机器: +- g7、g9(2023-11-22) +- g4(2023-11-24) + +本文档默认你已经能够登录实验机,参考:[registry](registry.md)。 + +## sudo权限 +只有部分命令能够通过sudo免密运行,定义在文件[nasp](https://git.nasp.ob.ac.cn/NASP/registry/src/branch/main/scripts/nasp)中,列出如下: +- `docker` +- `reboot` +- `whoami` +- `nvidia-smi` +- `shutdown` +- `ufw` +- `ip` + +如果你需要以root权限运行其它命令,请联系管理员。 + +## 启动docker容器 +实验机使用容器化管理。所有实验环境均在docker环境中,裸机环境仅用于启动容器、配置防火墙等。 + +裸机环境均配置了`dnew`命令([源码](https://git.nasp.ob.ac.cn/NASP/configurations/src/branch/dev/testbed/scripts/dnew)),方便用户交互式地启动容器。 + +``` +================== dnew =================== +=== contact: xd21@mails.tsinghua.edu.cn === +Use GPU? [yN]: y # 按需选择,默认否 +Use RDMA? [yN]: y # 按需选择,默认否 +Image name (default: git.nasp.ob.ac.cn/nasp/nasp-ubuntu): # 如果没有特殊要求,直接回车 +Start up command (default: /etc/startup.sh): # 如果没有特殊要求,直接回车 +Will run: +===== +sudo docker run -d --net=host -v /home2:/home2 \ + --cap-add=SYS_NICE --cap-add=IPC_LOCK \ + --security-opt seccomp=unconfined --ulimit memlock=-1:-1 \ + --restart=unless-stopped \ + --name dictxiong_231124-165705 \ + --runtime=nvidia -e NVIDIA_VISIBLE_DEVICES=all \ + --device=/dev/infiniband/rdma_cm --device=/dev/infiniband/issm0 \ + --device=/dev/infiniband/umad0 --device=/dev/infiniband/uverbs0 \ + -it git.nasp.ob.ac.cn/nasp/nasp-ubuntu /etc/startup.sh +===== +Start the container? [yN]: # 检查上面的命令,选择是否执行 +``` + +启动后,`dnew`会给出进入容器的方法,可以保存备用。 + +常用docker命令: +- `sudo docker ps -a` 显示所有容器 +- `sudo docker start ` 启动指定的容器 +- `sudo docker exec -it bash` 启动指定容器中的`bash` +- `sudo docker stop ` 停止指定的容器 +- `sudo docker rm ` 删除指定的容器 + +## 使用docker容器 +在容器内部,用户拥有root权限,可以做任何想做的事情。如果搞坏了docker内部环境,直接删除,重新创建一个容器即可。 + +容器默认配置为开机自动启动(`--restart=unless-stopped`),除非手动将其停止。容器在启动时会自动执行启动脚本(默认`/etc/startup.sh`),你可以在这里面添加你自己的服务。 + +### 安装软件 +默认的`git.nasp.ob.ac.cn/nasp/nasp-ubuntu`镜像是一个基于Ubuntu 20的、包含cuda和rdma支持的镜像。要安装软件,使用`apt`,用法与物理机上无异。 + +``` +sudo apt update +sudo apt install zsh +``` + +### 容器网络 +容器在运行时默认指定了`--net=host`,这意味着容器内外的网络是完全共享的。在容器内监听一个端口,等价于在物理机上监听一个端口。`ifconfig`、`ip`、`netstat`等命令有与物理机上一致的效果。 + +用户可以很容易把容器内的服务暴露给机器外,包括web、ssh等。 + +### 容器内启动ssh server +你可以在容器内启动一个独立的ssh服务端,从而能够自跳板机直接访问到容器内,方便vscode等应用远程连接。 + +- 配置`/etc/ssh/sshd_config`,取消掉`#Port 22`的注释,并把它改成一个未被占用的端口; +- 如果你使用公钥登录(推荐),把你的公钥放到`~/.ssh/authorized_keys`文件中;如果你使用密码登录(务必使用强密码),使用`passwd`命令设置密码,修改`/etc/ssh/sshd_config`,允许root用户使用密码登录`PermitRootLogin yes`(不推荐)。 +- 启动ssh服务端:`/etc/init.d/ssh start` +- 检查容器的启动脚本,确保里面包含了ssh:`vim /etc/startup.sh` +- 在**物理机**上,开放你的ssh端口:`sudo ufw allow ` + +随后,你就能从跳板机直接访问容器内部了。如: + +```bash +ssh -p -o ProxyJump=ssh@nasp.ob.ac.cn:36022 @g7 +``` + +## 自动开关机 +按照FIT楼的消防要求,放置在4-103的服务器应当每晚关机。自动关机的流程是:每晚的22:59,启动一个[关机脚本](https://git.nasp.ob.ac.cn/NASP/configurations/src/branch/dev/testbed/scripts/schedule-poweroff.sh),该关机脚本的逻辑是:检查是否存在文件`/tmp/skip-poweroff`;若存在,则将其删除,然后脚本直接退出;若不存在,则启动时长为一小时的自动关机。机器将在23:59自动关闭。 + +自动开机是通过Wake-on-lan实现的,每天早上,由g18分批向实验机发送唤醒包。相关配置文件可以在[这里](https://git.nasp.ob.ac.cn/NASP/configurations/src/branch/dev/g18/wakeonlan)找到。 \ No newline at end of file