From c919319492f002ce3dd9ef048d3ab79d9798be25 Mon Sep 17 00:00:00 2001 From: hydevcode Date: Mon, 24 Mar 2025 11:55:12 +0800 Subject: [PATCH 01/10] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86QEMURISCV64-?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E9=85=8D=E7=BD=AE=E6=90=AD=E5=BB=BA=E5=BF=AB?= =?UTF-8?q?=E9=80=9F=E5=BC=80=E5=8F=91=E7=9A=84markdown=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../image-20250320175150469.png" | Bin 0 -> 100616 bytes .../image-20250320175511370.png" | Bin 0 -> 111472 bytes .../image-20250320175600428.png" | Bin 0 -> 74541 bytes .../image-20250320180052572.png" | Bin 0 -> 98981 bytes .../image-20250320180327389.png" | Bin 0 -> 19752 bytes .../image-20250321093516364.png" | Bin 0 -> 33331 bytes .../image-20250321105730494.png" | Bin 0 -> 41522 bytes .../image-20250322151217123.png" | Bin 0 -> 44007 bytes .../image-20250322151339894.png" | Bin 0 -> 26128 bytes .../image-20250322151348431.png" | Bin 0 -> 42801 bytes ...15\347\275\256\346\220\255\345\273\272.md" | 417 ++++++++++++++++++ 11 files changed, 417 insertions(+) create mode 100644 "tutorials/QEMURISCV64-\347\216\257\345\242\203\351\205\215\347\275\256\346\220\255\345\273\272.assets/image-20250320175150469.png" create mode 100644 "tutorials/QEMURISCV64-\347\216\257\345\242\203\351\205\215\347\275\256\346\220\255\345\273\272.assets/image-20250320175511370.png" create mode 100644 "tutorials/QEMURISCV64-\347\216\257\345\242\203\351\205\215\347\275\256\346\220\255\345\273\272.assets/image-20250320175600428.png" create mode 100644 "tutorials/QEMURISCV64-\347\216\257\345\242\203\351\205\215\347\275\256\346\220\255\345\273\272.assets/image-20250320180052572.png" create mode 100644 "tutorials/QEMURISCV64-\347\216\257\345\242\203\351\205\215\347\275\256\346\220\255\345\273\272.assets/image-20250320180327389.png" create mode 100644 "tutorials/QEMURISCV64-\347\216\257\345\242\203\351\205\215\347\275\256\346\220\255\345\273\272.assets/image-20250321093516364.png" create mode 100644 "tutorials/QEMURISCV64-\347\216\257\345\242\203\351\205\215\347\275\256\346\220\255\345\273\272.assets/image-20250321105730494.png" create mode 100644 "tutorials/QEMURISCV64-\347\216\257\345\242\203\351\205\215\347\275\256\346\220\255\345\273\272.assets/image-20250322151217123.png" create mode 100644 "tutorials/QEMURISCV64-\347\216\257\345\242\203\351\205\215\347\275\256\346\220\255\345\273\272.assets/image-20250322151339894.png" create mode 100644 "tutorials/QEMURISCV64-\347\216\257\345\242\203\351\205\215\347\275\256\346\220\255\345\273\272.assets/image-20250322151348431.png" create mode 100644 "tutorials/QEMURISCV64-\347\216\257\345\242\203\351\205\215\347\275\256\346\220\255\345\273\272.md" diff --git "a/tutorials/QEMURISCV64-\347\216\257\345\242\203\351\205\215\347\275\256\346\220\255\345\273\272.assets/image-20250320175150469.png" "b/tutorials/QEMURISCV64-\347\216\257\345\242\203\351\205\215\347\275\256\346\220\255\345\273\272.assets/image-20250320175150469.png" new file mode 100644 index 0000000000000000000000000000000000000000..ec8c803079bf0f4ae6f0d9372286c51b52544e93 GIT binary patch literal 100616 zcma&OWmFwa&@MV?a6)hi1P|^SBqRZX2ZxQjyE{P>+}+(a?k>UI-QC?~ACmVw_x`wd zopol-kDlJuGdTZ@=_nd~F>)GhTgNs!bh5(7^{Fm+eqn(%QS#^K zj2|BXp|`NFXW^%M@!T&aI6fZ`d_H{l&{hF~Xk!O1n2gy8q9|yBin<1@iHw->P~fxC z2EV^ z;N%qfMELq{CVT{rcVB(2*pwVSh@>Xzaf(~bgyVxSUf)6_S0}J7@6+7|_lRzVHPNg_ z{1n5ka`Ci7Q$d^9teQ}s|E2+T;{j3F=Eun|udhuI9`ODpX=80rpS3~V(f~0F1dbcr zCJ4`FJyLUGlztRnz^h7QE9xkjiCCq zXs|yY7!E!2m^3rbU^LJPZj=PoZ#)(r7jYb`Re|jj9DSc|)$1QAXdn7pE>~}Hr_?5k zLZ@96$ExOfKLsKa%1A1{er$~Gr8-rq4`2Aa_xr4_0V#I zF|zT{q0ibIPSR#Hn%4gB;CH(TA><0{*XOiXC;9#PLqSK&4nB$qgO}=j&Y^H3&cv0r zJGG3FUTaHyv8w+Y=8hWc3)53wxny+fPM5t-CZn)Zb9u1*pE2-&=y&I#l~xxe5>ej! z@fPae`1A7@BA3w^hD|~+=GOC@grplHnDUC&kLxdots2Zzp$2PEKgv+`oh8+qbhf_; z_Sz=KwRY7z5NZ~~){H96+q)>9+9{P4ZSnQ^}e18U*r2Ir?U z!Em-<&*;zG!vdb;kS-VWi|ZA!O{eb2_VHZ!VZTxk<@f9zN2SVo*glm`vuW)mf(UIuvb%%l-TBF6W*{m{UCRJp&V5DQY<$Ha=EVop^6qUXt0i2H z3DTxGg7Tl&PIz3uTV^thY(hf_IB40}s_c^#H}1|iH8nNKMMAi}Uff%HeylbqVB6nD z7D*vWQdM<^?CEf;^QU7 z5bx;S{aj7px(vy(K;59%FHAxJVORF>HnkPY{#Mpm;ZIk4+w5rC&G0F8nV>tt{nm>A zvetFwlmm>}S?#Y~mJYKf7AT-9!JhfzzRFGu2VB-p|1@)~Cg^A5Hk?Bv$gk^={4`ut zLx&r7+~?+Ce%SAncIjw-KlK{`m=Buw;+YnZV{Cfc@Hw^n5^S>JAEcM8pWi3ks5jaK zs1-^eD4YzhwmxOeb)v>kdiKy@VRyE;@RQ-oKf#%p}GF+a*?fN21{6T_A-*{SXVPb7g4pkaQ@ zXTFDY7x3JQ-Hlc~{yUs|`ipUJ)neP8&QBO%jlm<{^7-)zJeEH`N=CB0#4(Omrca_s zZU`9G)pW3olGmadD$2nDmK@tZrY?6!^+>EP3>0gO@UcZpabrCkx=Iq+^1}$X>dqut zyKRZtD%={%1QoGgg#5g9fcBe3f|sZJ%UxN~y!nmSS$nJ6Muh5qwza>x26=gMR4_|B z5f{IwVngBWOeAK5AbHyB-EJub2;PS5A9JEr=)K2_Zs`$1zoCJw_*4`A1r9Uuc@N1pmKKqUS2(jR`*678;=0v`ATPP zRWQVcjrKvWuuDbR;j^`|^HtRz^(_oqDe?NnOO#MImg*+vaqt>7STV8j++A zlBANSja52_FH``f-!^VLoeS1G-5Zl!cFwsu5%&xZgPaZ)yMOyb0i(OgFpsV8=fz)+ zPEz}z4?U|mAq^$SxYort&#tu&8(SiL^$>O4ahEK}fXg%eMHWf-4q*e@oo=+3R}0+^ zck0dqI-5&{)BHo>^EG9)6!KM&_iv7y?{Cs%^~ zlWQz?KYO28>6;qwse$Dfm?WKDAv4EklH^WpWwoUjn7V+UMwzT{Q+*{{=jjsKZt}gT2z^+Vf~}5{v9D|XvHx7odH)#(HRmM z#bo+_QWB(ywn?)t^FIZjMQb(^WUVwdq|c;&auQgGp|a#Kf1$vQJ37yk!6lNJc&iyanx1B* zbv1FuBxq+u^3%!4wH z42fEvG@8ORmhtMyi(GNA2953_a4woYNmIHqF3pF=+j(|#wfTKC&qqyK)B-Z3nru%x zqK5e&t9AHdoa--aSa)UnB(5KaO~yAL#}9N`8PqlIRYJbsigvzSVveWdwg|acn4m)l zP1|AfzQBv@`V;e&-Dt8|_ZUAe?rP-8SX1iNo+6*r)u~Cav0)NXC|R$+kR8ZW!@p?1rybhHe!Mh} z^`=>ongo-+#v#9!h?e?Fh)=92oFUN#g`As+s%kNbu1Un{Xk(nu+^!%u~-eFtN+|WzUj+OE4Nns;6V; zhYua`TbVWmCua|EH5l9Ri`MTgSV?fpm`9bq8IbXO}2BfGTg-26UiS3 z;Xw{7S;0y9%CdNOU)zq2Zn=W1>iKk8YCZ}f*jLjL{=|ADc+HVt#aNP1e-oC#_&!}QM^>a%PGNOxad#76Vt64E*nLI2m2`+|WmwLUG$`2gHEfB9>!%w$I`)6(O zV%S833)GLTj4sJ$>1j7^n^F7XjZVA$ah&EMAp*C9ja^oPchD2{Hw#SYmV$~Xd(+uY zgd*Qz^UYRAL=<{j7HzOo`xVo>Lp2#rskAfT)$&nZ77N!smTU@Vc19V+j?p(e!Y4Jqn3PvoGwb8WqE#ruzzl1%s63lnnQxy@dfv9U1} zx$Z+lQZ|5vl3Y~Cfwr!x+;!R?@UmL6oQ+Jj{*G^RiOqHD7{dG;OrMLbE&4qxvu=3o zKvaM=@u*8knKIf8YR(+3X-hw6n+79%1uIwMKxO$I&60|72n;3TuQppgYtQhCbm{j< zrM|=6bzb*Oanq5|DOS2AyY@X&M2q)#dwJ6AQx2RCn;TxTRc)8}>{-31=)?}h`$qnQ zUq>{=C{arpuQmEwxFiA2)f9m+i0Xu;#4I%2k%u4D6P z0lRQZ$$9Ir5~IU>tP{zJ^3c~qhwoLdyAsu`6%1}{v(G}Q=Dgeq>ynuoo6qP({ak%> zv!R_-PFPp<9f;_KU6x2c(LLNZ2ov2_ZZN-=N5ELD3PF*w`U!WnLI^+iT#-vN5 zr$4jy{wa>#m}10$Yd^an9D`QoYqk+2xxKsF)tFB+Qjm)jE1qFQ852PFkXxQ!%_UHA z9HfOV)vse+TCCgFUT}+N%2$dDEWq4|u3pnNGzk!r+t$Hu8y+C?)o+ecvRj4K@VMTO zfB!rR_prk4v~h|lRQ5+9QG_F)1^(WtERg2mYJYh(8pCLRF;ylP;>0f^pW@3&)8F5J za&q$O-D9^NoSdX3B&e*iu&?nlgz;Q`myltfSgAAbEnX(0*c?vW#%*I+qr-BT@Ame~K2t*M ziK=usJ|;H$-1m>lhc>&tcKGGb`Ey= zixlOI!F+0aVT)Vzytp{sd1#1?^a3vuX2NS%pA(L~Qw~^ZP8a3+P3A7L8IAzFLO>4qYn}+k-P(k4q6{vj; zt|gP$3o9kfHvaq;5)vZe$q6r%PFqs<{Zz}<>FQus<#@7GIBp!rq&1?=OxxsIP+V7= z7{^%ikf4m-Ux(OF;p}#MK-KK}*tI$xfylJUVUPPb6L(sxCGi6ac*RGeC??Czb`>^lOkW0sXs#QbfW8u)G9R ztm~HKuN=@c6u#G{(!`R>b8AX>CK;!Id&)EmWU>P}9|^%`?Yfs$eQ!%YNWPydJf$8- zl=U0GKD$DciDF|oO1LT$h$?OzZ*?Ic{O3v1k6gFfi$0T}9OHK99(R<1VJ86i!87Zb zqQ)uvqD@zF(K#rr(weQ==A27BTho>Cq7)BPNn=UaCcuEmN`7KMtawQjGM&}C_mlJY zEEE4Q*O=^9ITle;cuFmDaL8N!nD7P%7{FC{K^DN-DmO| zn4fSJvH58=o{N8h0qUl`$N59k;9v#H>Q>d@VPR1SIn5WUOqy`rw635ICnCA&9yKh&o|-E zo6ZdlP2p^4jhOKR&F*^>yYH#(pKq?VbueriV%kTfJWej*daF?BK#vD2&m|`5u1vhn zS@M!NUH!#5PJJag`uO9;skpmC+3ig(zJb#BrV4W;>piv5D0-?3O^!DSEAi3R7a$_U ztzvn%((pyrlEDiYNY#SZj!@;ql-=2`R*02w!KTa!Dm@2-Z!)@i#bDvq*PlaZ3lE$A zD5dQP*#_d2sGoP$1?%hH?5Elv$nnB?4`L$`U|zrxp(wZr^)e0}vvli?L}p}Kt%$>o zSTfwz^S-3(InfP?Ze>!Bwh}k>b+urFL%2P5RL==mm)Z}ESq1h)I+y&x3<}{V{PYUq zCw{-E!m7NVf@etvy(gN(MyZ+_C7%rfO^hp-DvMQf8$Rbger#DX`Jp-lf7IJ&R7nH# z=;^f8-d-1DqSL-XVyRSVROmB6md`3TDYnqqI}1^ZyuFUoh6&t2uXFvO`nq5}RUEO1 z8))%3TY~ZnTM0)}2#D$G4kzXjG5NXeFA{5e;x(Ap#}vIvE;*uVqwh-VX=ZO717PV&*^qavVyQwNohs_vA%5G-OYSF%1R3JTUWs>3 z30IRh+sEf9O(im%{2U)*ixERbs%*Chq>?#ZTwGH5-8dN;(EvVveroBIy^|A5L&I9_ z4xi;Fr&*b8VFK&aIFQD9pmhx`xFjOULe9ZzO0fajv*94A4i8=0zy`1P`KA2DJHp0x%eqF6AaSSx1ywuMorj zOpl0S!aL9PRY51BNd_Z^aQElaipO*ayEk>C-G;8|d55&t|{k)4t=f0GAS zJT&do&T}UV`Ls~{7Xu&zZM9~L`X&e;rYSsqJX}fKE;=i{t&fcE!NQE=Mz)*fP!v~l z@u>xO)XO}-^cnOk>U8<-TI|WZIC=gA(^D(B3%%-*8^nUrrtui4rU-I|!-%u;r?9_V zDzlAeAX;sbu*zfKUhgMgbV@B77UuvFlbrLF6+Z|6qKJKQV&i**THdRuQx|j*0nc+f zP@54IWNgz{R@FA3S*xvH=J-s+5=+5EdaylNXWCfQImkJt9eb)Yo|?W(->=cCt-y7v zc@x9FIW19(p>(*t6kDCtKSOK$$mr`{pV24ba&bzsc+(q!a@te(IzJW0^JN5+o3mQ( zdMdn~;8O>-M=&y2v(od#{RYl(d9Z*VsuePr-L)#t<~VSG!b@f^^XYmJRDB06`i$DAl2&o-pOi8eK+{)Lvls1Zm{CY6n)o2-? zY|ks4KdpJlb-J58EG}zJV%F&lKqd6?^(}T*^Y79+HsktX0j~w`t7B>k+AKmwLaJU! zlH`5`l8gEC4YYCQpFBx~sM5}~bSoVumn?7}zAZI-3i6W5=Tw+2cO^x;@BevTvQ0P5 z`AB+o@xq?%c;G~)Tf;S-*7+?WJnRgQy&Xz9aJ4adQoS+)onsK5 zb5MkXrpf6vEHt#`6>9qWMoz051QyRNn$HFlX%&YjQVoAtO{(QjTNgZuHtmG9vRHTi ziG+FZoUy9J4+qC?=Lmcvw!QE)>`sm-G>Z33;&&K{$>irnO`c-i?0g9)Wc8UsSZ6Wz zCNB-E$4*)13p_HMZ#SGTpz1w~{VEmnjf@n*r=vjgB4gT=^4(Xjsi~&}@Xd5rqnxrb z`YWCFHs|J*=`#D`%k+<13ZNzdftBcSW?!iNr0Q09>#u45(R&b?2ntmdl>#~Zvq1tN zR$NgA&NKNWiBy?z>-Mdp&Z4i#W(txi(+9rqGaN)`;!xo@} zB|P1)7f|$BcBA+rQ*X!=f9-d+b)iyvswE$T0vPc;`}m#h3HZRE0z4xZ~av0OPeBS zsc?eL&a^H5(UjDvpPn*1>hS53O;{2o!Af-Rejk*HM}E(lHZ6Wk7W*e7_&+k_1FMjj z4(*Sz;{IP=X~3{e2M4M6tk=uf^z<^hLQ}g>UjO9L|C4W^brS@?d(~LoNO0caPT?zw zx33hD=|}LFLahFeLcEkWX=B4fsaAgNb_B%ge=2=FfnR?~NCY{pA9?=&S0y~#hUQGY z&;O`ElQcX|UC*z*-v3%o@af1#uA{z(`8QVIt5~aMv6cnLcp3ioRVd=YhxLD#yTIEH1D>;h4ns_h^)%?R_w-<|=~u^+7o{wESOav>;8_fxhE#)$K6)a!7Zu*E?1aE9sob?Yb^- zuhlBgYH)$na*Vn-K7M~zsg-6_N~Py^h~stI0u*4Z^C+%TA@)#m=R@5GCGH?)>uGdBFXTRa4tZ zJ0R7$&ZL|!mX~-U?|4kKt5BS(Wrvq+q)Vm`lN%+zofPmJ>aTK86l|{}1{$v09NuIh zGY_r|dM-T~a1p-ZoNIW=Nk~#s{(0_H@Bm)45g9uNc2W|79e&Mluyxf)N3Nn z79jl87aIr#FnBobtQ7{*?Bl!m%Tac-I9#2unD*RtSdwT`QkVyL@a)X^Y%-;32#~ND z%eom3t9=c&1Z!22cRU_S1qUt={y>|YvzXgjpCu-7&6RS$Rzl{SHg}Wy62reF_$Z{4 z7Nxhn;&QcwpWPDV>PzeFaB12XT~L3wRpS0z{3}$~ckN}D1DVywg$>~Ij^CRn4_fXg z#agUQP*W`-_x+^UGT1&eN6re;O1Y*g@>8WKL*^-~Gc+a>$Zf zY%XVIC705S_CW+A%Dmf^rhwEOn);J)zFeYFtgPZVndHOKP{$;?yxfExl7VRwW%>0U zuj|be1~Fx?h$1EV>u`RTf2DsS`q7DVqVc-y64KSK16VBv{D&ntQyQ?NWedg%{>-0~ z;?_MtoR9q9y}|%g0sLXkiAjnDV?RC*T&(alHZMc+H<=U-e9I37OE3wuZNHxO&K@X- zCy2F)J%jDKUhXUh1zE^o*pN_QfQ;`K*+abJAX(`+m25?cm2TKmwWeD~PuUuUjpZ)U zvgKg$5qgCJv7kJfQ1z5>d_)@{qtfz3rE+I$*a%-2sh1hyuTC@}hWI+G6I~qv>>O+&mv~ zb!6{JU~~dgQIR1l_P0)WdaL9x1|0`QuHr8_a;vBN=an`0g@~ws_Nh=C02suAWb&cv zOlC*2K(i+W&5w`hy}wMBiXgazttSQyVSHy@BW8uajc%9m>OJ%avz*pDGwEdR>Sifk zF`p`kr{hMO=!xgW;2OGV=bgpkCyY!RxO1z@0#1f&I3ZkENd4MeRZui57|DC+H(zz9 zpl(N_R?nQWEFR6Mo5N#zvDL?Rg#4MX04d`_JI%KKi1?7Zgh(kmWwWr3S$P}Jbm7O= z_?q4(@8oXeW)T+?drWv8Vdo!HI9lc(nQYF}Ny| z3`ws+O7nR$WF}-Q*bFz_MHTG76|>h5{s=6Y_FauOhl+ohCRD^`pmiCZ8-?_-k_bG`k1EFLf>yxgwWu$*zxLu``3h)0W#}SFa#amm}8ZUTus;t;=%SGuDHsvu})M-KpHPP6pz0`pCODIa=`D zRqD5*SaIlGp6rJOlnqne^-vLUW`8{`RT3)1Ul_VlM+#ZB3cE~Qs5>9q4jf@@Y%|de z5X6x6uBZrc6Md;i2Na;f^w<+q625&wCIa++@L(vHwn~pGk4yTnLVwIbzU;=D>(guz z%LVY#x_aFbSy>hqniobJ{&4T?g!rhNNUyCwFVA>PD;9hbuXfEYY8E~nG%Qy^p{jfB zM4S*!cZ(3d3hQ6n%I=B+WMqEqDB5`|(*NgO6g&!B73Zu)5F-8196$h~eK)BM+Ig;z z1;e2sg1`zT89yI|lmc}cKNx>yMAzvNV4HnZxI$uRXtT5Y#@aTVz;Q_Rn4mQNA*5p+ zf1S4Q3(OIxombjqE?WFOAvD*9Eein3mOC_K1=C~Ed<5QhFQbOhJqL*t&pS=o>B-exZtk_Xt@~N?O0dFrUH$Oeu)CSN|mZ{29mC*Pq`G|0biG=bjco!AwYs zVG4YQD^3HT?4E}XG>c>JU>h5^OGyMlDis9$Vcbs2Q&yS#_q>0P>*qp zWir_C%TAY*0WHT2BFqQ?5cI{Y?yuj|gZu^kz~Y>4p5VlnI_nAPXDI@%ebZSH*ZUllKN{EYYOoE_Z+ zq{Xr!_lJ&9V6LJEvof?1E;c>g&;42=-*yVwD^u>`Pq#kq|4S{yhX;W5rQ-PEhDrR_ z1eNCZyeso-)XCb09y=qA5L=m{Cc;m#n!%ea+9KK7Ajb2y_!5X+Vcb$}(w} zatl3FHl)Ofeg6)xG{a_+xJAutN#bjQSbAZ4P59jVM92HJVVySg*|u*bq}o(1J41*r zHFUI)?ro`HMqEhj#K(8H#1e9);6z(g zz`9r`Ief^pewXMqg!%9t&OQ-t+;uBKx+j5ZeIhNmaQa?@pvz{+>C=of(O8d&@gHsL zVUPo1tNY?@x=Xo4%NxDVTzIfIyYhF(_9T$)KL#3<#!WH-21RXp>%jM>pK<{48Nu%Ypu24Ce zqW}}+t4FSRWP?`zERUWOt~myZaEJ3VJ_92WR9jG^C8Q*X-=d5B6jW*b@d<5rb;L33 z87RNaD&zI&voO%tTP)K*a919l6{_&i_@B!K!S+Y9ODU69NuTU}F`N2*s-LJ^?#N-o zQDhjI!%0KRv=w>>{!UJ5qlZb3ZWR18jZfzo6H(knko(>iM+`=rJ3?G4E^0__z431A z6p0+Eh9W|ze*j8p34X9!P{Bclb0h&Hr~g%t6U}1^Km8PpO;BJ`vM6+gB}>Q{r8vwA zLJ5<5@KFQ;a{zC$T+<}@p)m3Z=SczP2K(zcZ?}^Ocf&X4H5-N!^k%+I7)9 zY9vqsrwlFR?ojA8r=f*3Hrf!!rhDyJYC;*Z{~7r+T|huML2!SpMkAz38Lmo=e37G* zBg-YDd7Qu42Q90DCZ^}7M%}xgCPFV4t(-v>8jOZ!DKUAXbfCh~0K~33BvFHI7@0wU5>MN zzbY2v%d29|bzpUN4d*v&_DmU5Ba6v?DnbH3fhApT)q<2tC?y$STX;dYm1N~vxLfPz zS<3hqQ(tOSq@uCbBs)v|r&B!hcJP4DI<6-*37yI=rf_S9hEHJ@VEDNTdrZWbg0&&v z=5N21@~CKhbaY7fW>$*o9LBLQz_J1^NiMr!KCR$nB>V${9e2FoQIa)EgnpdDsR2p+ zW12r#-ICimTg&dUcsoj4C;_icmThRkptx#LkzgqcoZaF1g3FUep1^{GVzIK`9%1lFBHa$`-|4(Q0xbdxG_p4)A>%JxEt z46OtP7RgGDbj)eVT?=VX=y|`4S@}tCZ_I4ueu_xznxl1nYrip`)GgqL$&UFM|IRYF zz0!gX5+(vm*<}543`1kFTskdBLjGmdMzK5cQfO$~bwa{wh~t~6ggu7GLYX*yxjhv&w8bw zeW>iJgoQdTmOL4w-y@&^dJ`M&vA;U;U`5QTRq^4V8cgxl=X&vAK$!R!H>+3-sNPVC z@uD+^wxLue8ch2$IEwG>W(KGDWpY@Ti$M+ti%VWB{TJ{&sN)Q&hHu@;;e%f@-c7%6 zzp>djVWMH+bKrkYtk%zpkoz8MBF@|y6rB4pF(?a|BN7?^N`>dQGN^W7zOTjr=xlAO zuh)#zs(q8k-`}`PiTYK|gAa#mY08uRo|gbyR9H@qLl~w<2ea|om^-zf6M@Ze zmHm!93cZJx1Az5it1>S9@+@6S1?KQQ#&;!D+!iRh=qqfbzW$>g-1;Q~;`ItYv8%<1 zM8_pua+3hegmz&%y}XnI@;jz0=<4P_WhIC$&zx*tbBp}Ftn}zVnXQ7K%wySEQ!i{7 zt`&*(9FAtP;wgPYW#tk9 z+x}5%OgSJRWVm8G*3`zIWl%VtJeQS#&7m@NUc_UN#yP@9*}7#QNSrW2H)43?z!P)F3z>#x2- ztwX~08(+ha_PEO}8gqaHw>lk5eRgbcHGrGdqUG>bb(tN`Mle^bNh0D!TWA5w;IQ;MjXkVz_Ll#J+bIHwtB4-v`ujwTN zGGe`4Xg~qu>Sd0P5qOpl~xgFZdk3h=eaxiuK&mFdqBK|^Q zYX6p(()u#sHBE=jiDr2%NLNW;{2e>sCtDUq#W06g9{R@3wu_{{kFTH5zk#x@=%Iji z(X2GK$1sB3yTxe`1FX{6V)$ows@og^75EILD2q!|Y$+>t%{}smB`kEzS2==`rp~K4 zd`Lbg8sN^aqSpEaGi82IljV`)mRU)jk3-6(qDA^0)1Q?g$At_JmM|NOfB>%>1-=rFk0bF;3#jr6HL&{C$OFvU2{@zZ=gyKi-q5d~U_cO6sJOziCa4fw z9`IH}N_2QgmJS&;SOX})G(X1LnJ_b3abm@;n0avW{r@Y#;4)|-E6Y$WP@4X=XVE%3V^g^-1iHq z)PLOee3?5J$$A$JE#1{N6hBFnYgN7PBhu_Ie;5EfNbJnf#OllA<1g~7T)cQkeUYQkBwHiYMoSAGfQqw_Mm~$bVlvnrW zuq(=JF6%(@!v+cw;GHKphk#o?Y|}>(%ksO(@|c@GXeQ1QJAefr@GexCmXk-aNuH3;rA&8fek@Q#TB zR)Jzth@?r<7pI!w32gwcXPY%t74PR}F127ti8BKtAV*BV&_4+c+}QN6g@sliV|vF3 zhP*Q>rt$x7f9xLut*vsg%ZD}(A8ha{g(S(LY^Wqoz63*h|Fx3%vZaf1-I8* zX?x&Z413{B&Tf$+;8!T-WJUx-OT((OxvwmkB8?awZ;IGcy|sxqHsO?oD;Jcths5Ne zR5C!G|9zTYRcz>bMfufD&fsCl;o1BIx}X0(V)XHAI*vV|uI2p4_)T4+==Jx)G~u~X zDb3OGmqCz_y5n7eF2t_-=9w=?76SKA>xT{)D2y=jG<#7E25ZR zM6{ZI3b!nTh=Gq-tsZ2965ki2emsd%Iep&EN>);+v4}l}3z^TYaxnK4Y5sElf#O`~ ze9-Ur_AEIVwDGzdfn{|5<85k)>+{xd5;Xweb=_6<-y9de@O33@;**YK$9+h zFBzI`T^*>2^-d>?`i>lyMpvNZp-95R``}s`m2lWn_Ugj_bvR3ON=A;QP7Qaq4R)7@ znN!EIBBeJ#ji2aoaA4c$-DAPDKgK_=QGFq&qY{P*TPM=edgGjgnV31G97%@SV^~=t zr7CUM_-KM*sgbfnxVsdB+lCzpYOm*uYlt{DR9_XNG(6rv!{)l}L6&uI75U9l0uFtA zP;p={&IlA+uAwHP`(0Rc1O1lDuu7!7OZPIpHQGq*J2omk=cG?~n+zG^N<`~S(XS`v zdjg){6?1-x_`y;K5I%BPD*3>w&a~}-+<_`AEdNa^DiO;tbs-Kl1vWnF#eKPYBI;p< zF-h{c7Sv=Z7(m-RTc9QN5z8U&YN(Co9+cGm@gb3Tw8K$}>uEqjtjKRlHz5*Z@=KqI zMfVs4Ef{u)|>UBaqVq9OQN4xtwR55w?(x1trA z;dM3C)YzFF283lJwsSYXw757p>%F421cX;Di2p@&t=j*8lvK+9H_9{Vlaz=}CVHPt zS{6=-Gzm&nDV>H0{1+m+PI)Kd+&>(}aXfZi&<$1h`E}V*p`Ryn|FPPL&@me|Qo0)B z9X`Yi-VIByVNy`YL%8UEp_EtB7&LB{X)OMh%kW<`DrQ=ujE)#+BWNY)Y~0(*0Ymqg z%grDYF7s}X6*Fpp(hTc*y=s>b9Yo-ndvTNprXE9pz(4ybDeqSt;|KoK7QaD^7X9&Y>2s1Ba|L5sR zThL(4M$bs9yI?X`X&^(@mZEr+`|eV1MmZPFsVyazsIkecTNnhF-#=C|Jyrz!kNPKD z`aN0ou%K7yBXG4kF}<2&dRn>#S>S2cYxLcut+4o7Le1F$kMqIR&$OOK<(l=yRu#gJ zdBEEJ!#b{gE=$wh>9b7%OJ19>;*8tlSz7RD^n@*vJ_vqwB3HgmW;bMCR~YNopKQG+ zF&np2cXfxxm~-{dpB|$pQ;28iU4v=TRG$i1!p&&2hmh$#Wc-;cT(hYbI zATKuP_A)dSug)QEwv^mwFb)m;c@GPpqgwqm|68%xcTW=&*TQ-`SW8RL#`QWVCG?ZP z?YbUd@2UPRr_WeoqbDK z0O(;^*LzUQDO*v-z<{&7j32edsGOQ-Dt+;A+;lbVCBf9d1AvS2F2SQ;muXy&`DnG! z>g4@{;<75q96Lk-13|oAYo95OXPn0RWMSMIl9{iqeE;&Zp|a$C)qS0PdY?G8Qy zU#V!h?}2-Bqjk2-KMeIo8xagbFor@#Xic<0PDXEP9l*g?D6`AAv^cf~n4GM1PL58$ zo=}B2+4MpcJZ-T@nk;5^eR4anRS~6@@dYhfTQ@}#I^D_y)!T6F-4!7}g6s)cZTrq% zh~vy*qICX#vL=!Q&W65mlqp(muA3Io_-$p$M#f2s76~?in#ZcAS?NZyKoVDY`Y+H! z=z*Ey@q+RA<*!+l#h=RzL0sJou6K^w6oI`viuR(2OO?B8j7KqN2_*~5R#}bLtQzVm z9|S)s-@=H#0`ySt73#R|PX%1q7)2Fl+e~w4z#`c*##02LB41+}T6W4dpm#?$aliuB zwueO+GpEqCqp6MVU6FlAi^2cKLzayrbMF6+z}$?$74@K7#hmkpzRiwL z-IdyH{&7uJJk#mCwR>G|`06j2e6$NraB_9rKz+0ONJTsd00IVcmc69upPTv@nn6=I zVX>mSVLbDyg%E!c0kL;dmn>z`_5Uc>hjnu3SxxbEr;;)XuAE%)(c(T?4))H_CY&*@U(7OBHE zT_VeQqkTv8<|@d=XnbmI@~8zSy}x+s_ggHkU7AfO>5#=;(jr2(JYH zsJ+Vxb?7hV9#!#{xI~Tto{)+Q3WTS@b#juKX6Y<+e4!VHL`|6dbxsgl7YkHosrUSn zhj)tNS5E`}Y`CZ2wvr!EF4S7fw5Z)I^)x%e|IUk8QXKk()z6BP^XotBY&AqsuHRNl zf^JU?(;Y2N&+$BGiBEE=l9@{%hNsO)6V27+Ss$f_f}!Q9lW%dynaPin&1O$>-*V!p ztQ_tc-RFVLLzy$Gx?rrDNzLC6S(|8XOeVjnP5Zs^$e=Y*21f{^U2D%K({#RCSj==G zmLfMO+>qFBGpdUu37WUPmb}n*H~O^g8x2|h-UFvz`9a|7E^IS=4kn&qCRWlY@QtR| z6_ui-uae>&=fmLUEmkTfu+U(9jm25UZO^JU#nif2i z3Z8cb>3?o%OruZQn8;iCbP0RNmRAM?^?7@Rrvf64Bdi@GLenq(8vz9+NY5#muewE5 zPeWUJFn!fk@;YIs&3&OD&62@CcDWhnuVo`BL=JqJe$JNF2le0qBMwI!!>+bBV+<}$ zLdRfnB@2u=M#rMvI_Oc2=F2?;H15YMTLy>jkaBA~3N1LTPfjm4&k6L6iunTIP!<5p zPRBrV@)Fw~9Dgbh77wz2r5L;G9lN=VI-Sw@Jr$RFikEynOdAM5!$L}i9i1J`MeWe+f zTjs3OV+jTeGo8S~Y9iFXf0sOHf4J1;UsfgzKc!}pCmcMPb+U@k>iRO!0D&%B3X`1R zMbo(J-nt3B`$A;6wN&HQJEH_0qx%;=my#FD^A{El;4=R>jDX*?o2f?8a?a69b=LSC&|Rg#I|kQwryi#+qP}nwv&k`wsm`c=bmq! zZ>@9x>F#8`{dVoDU3=G4_0+o;$yHmt*{^*2Ae@;I<=a?YrgU4WudCXlVHXKvb zLNd}GV*8h9|3`e~D#)E?=Qe#n;DZwKERD@zb@9S+mG~OkCNmqKg8t~uYI>Qfzc4JT z-F^@<;JSTc&H3NK8boyxZAg+nuZ7&QV#~aPuX1$Ydt>YQgX0<=On}o_F6?{+KW0 zFYJ^((yl)yTfr|nt3Ymm_j^{vYbusUUAzRx(?d$hPU0Jh3|r(@n{PQ52-8++u!P{; z?fo-Rom4_>qU;mm@?3!l^uOQ`uP|?H&=1c?vL=H;vMeR_43OmL{j~mZa$!2TwK|tx zfM!gBmU@dR>$W7H;~AR|$DwLwFQHW~6;4bfS=KD#+*sx9Q^a%)*y+PK;R__eHW7E7Y9-ftWdgiO9Y&N_`19>_Yn0}M3jXo0vE)l+& zf5iZR0Nb@h-UfR8ouQ1V>@l2n&XrwQ_Tt&%AVj~!o3nj({|6Mus=3?0P<5v=cga$h zG`#?Th9|3&7_(}R=PaUIL|%mtV@$v@HyoERJpccVYc1nx%T*sU3YDZ|o0O7++hTdWK;JBkEr2?$w z@8{C|v2GQ&H&^G|e6>jM&`?Y5As9f;f(He<8`!GPBF#QT;h*8|bhb0gucTNInWi#+ zz%E(ac?i$pH;?rK1wEh5TDVu*-@LYMk9^ins5PrdIEtzOA!LewK^n z^D7T#>VtjWeaVU~vW^jI+WOQOHT!`x9K6pvL9;U*&*@8Zvtq?tug=>`u0ILkCkE$6 zT#x!;v@0dLqZe)qLrP*Gz(tEu6+k(!aQBa8e*T@D(`3{}^!Za#(4uoZo~Cl~{^}Xt zUma9DAMJfam2+r00}jX)Cg@=K_z|B?sUlCs|E&fW<=FRVB|HGc?{@0u5R1l+ckA(v z4vGZe$HHtk72go4-eZNKFBl6Ga$LicB>)1T<3__?r(1@s$?&iYQz6=9bG#Q&JKx}f zm^#WxU44$!z1W$7geqk)0n7$}y_`Jt?af>I@wjQiKLMWuBL_jh5{>=M12v^!Pp$cK zm(}`+)LQx`-=f94jzvxiq_-hzfEEk@(C4%tiEhJP%8JP=qBmWx?3nuUxt_ zHmIKi;-s0&z-n%Po%mhtK?rU*6S-e_cH*8l+ z^5QR*wpFSM?*@{7?s9OSFFz|=Cla8?{P;b1&EW&=HSV7mXEs#)esp%eukiAI4sLfDHiCTzw1fbI*|KmhQwOT9kB6KrHkb2Fc!Ept}4y%-(%{#E;H+H?Cnhhr7iE{cej zQdr-*7^}D<@+Sbpns?*ji7gxwNVV#JvSLeK9d5}Gp2N`H?*i~mZAjIOorJL2&G`@>m}S9(Yex8E;HD4TWPc^0w&03a=))F!=Xs?+yi1ShW9 zak(0!TCxFHOhOOTZN2AXv*=S*yr2g6`d*AI{?kR6RQ|IfG!(SuWx})#TK)9P@Tzm5 zptK#*=h7-;%}Sg$V;j1V58nyAP%?o=SibNVECm@31cZ<~5@L}zDt|csZ$B~H`9VIj zJQNM+6JyQhsm-gHEoqk6a~m-M(CwXpfrhoLG*6o}PSa`jr_D)A&lT&858@Ux@g6%L z2+aaQYY2c}(u@2y`dhO5#LUD`R#LUeC#+;7-=O+>k`~b`5!?zj~T%0))i>-O6GOA}qK(Fc` zi=5hbW$@@R9#*4~vF;f61K=4_%ebw+Ygwr+ff@yH2FlW2th5Yl|iWT`VZ#c-IdF2@=5g(3b4(8&`&F z{fjsjnsnfBeT=3aTCrI|oND*zUsgF+>n+i87l-}Nm} zRM|~xy-!{f1n^_tW-+wd9~B@pA~LZ!fL^mR*Yq+=7xB1%iT>w15Tc7R@zpi0`%eZP zuT-%Y+H%>CwXz5|AGEgSHv~D@2BAs@^(Ju1;w7!c1HNBEa6Ta^sna4tgA1&wWrx4G zOV~NPHn6VQrH%NcHy_AUA@pEiQ&W68d=+n94|i5aACnU~J|ULg-bw+I@a%|T5x)Iy zh*@BV&bQl6a%7bckmU?i<0cZrT&QKCYRk?Cu+1O$JSv^6Rr<>geWDw;zpN}>o` zdD-Wuq60V@Dg72=oKdUJyO|z{PutG5@s4q2)Qx0t!0}~}!ev4E83d?5Uv0pla>580 zoxN3Bi2a&xP3r9y@lM`CiPIyc4>$AXYWIWB$L{_BgmJbx*f0i&GO>z>P{dCIPXI(Qz7R%qMUd&K?;Xe`Uzteo)zi|?9zeeL=oD(12;$^DcecZ%LR{X6k zcJ^-Gl6Ag;z4pRwI&`1#mLdE4uKRw_V!M&eJz?@uzgXcDVgm-%6w_4UlmcFXyh6L0 zy>p!)&Mg=oA|mVoQlTV~`%BBZz!co(64|Ygs`t;K*Vee-M7Ilr;LtZmM`v<+J4)9B z{5&ym>`}N=uOGM94!$78_#4TUqg`@Ij9~tJ_=#aJ zbEA$=4k6#t*08~o8MgG4=Yvn~X4<+KtwpX7RymTIQv(^+s9^B!*0*)!wbyOBU0%a0j`y+je5vm=WZWFn zpi1M5kla%h>F!PuJ605}G4DTFDMZs3Q-8~5NBx#8f(nsZwMc|8z5T6d^Iuj59MoSA z>Ml|cVj1?wrC4|T3ghhl2@FO>ybASdjqTUkI|$NVJnwD6E0x+xn;YQ}L`YATGn>_> zs;#g)H%^K_vuaHd^uRV;^{p2CD08!Z;qFr*X}pXyCF1e;;KNU(r^yx!0AkR1J5`GN z-?u~Gj)zYdubEmd_tTJyuNHcb-B>Zr2h=vPLAA7$n7*3Zab{ih^L{;Nf8_Dj`d{F; zp~>956$1yI9lNVVyER=p=PHznCY2l=4pZ`rrx9~e*%qha_n`43%P|Md*gOeK%>iqy zLx-814t=PboYkB1SH_8aP%W4}WMl??zklR-7rb~Vd~v{)H^wPyxKC@puzS>YS`Qg# z0_gx4i^(;yDg z2eT=JD!W&9?RmtUGQrdRg}kIE^?{BE&;R1`bNgkq5s%czzD4ydRZo_FzM?*xPpBlY z7q;A8Y&};P&UURPqWRX7i0r^iCgYP1y?5l6@$GL+PO|Pdthz$eK*ZjX2Vez_N2}IK zu%K8?PfsJ5uCo0dWttBQ~0%Qjlgt*>2k%AE-x8r?d{8y0uRm+{KX<^w^ z{w-0q4g>#?hyU#bN9RNw`B};ILgyB_LUp&J*@A6Y^@VBIPr0ySD5CEtEY`{IZ|XbK zT4bM>cdUZo%4`mq9k+M)xhU2_NeI(9J?dluzu&|?SuVQ|w(VVJ@JD_);5W36#Xf1u zsB!peZ5L%*V~Ti)zmQ1VcvM&NkGu+d^3%!J5p1^O@LnJ~hbP*X3Y8RBi1n}j#>;r?@Fyl743cj6y(y)F|tA$m)^ z8_inIXZPBIAv_V|fUteY>91+m{b8^knpZ~60T^Q3&nAr+t1bN6{EjBMZtW58DeJXb z(~FcIR5NL>;h`aBCX!7cx1Q$W&-_E#jp4CtJrzPOmyYjKRsc%MS8K_|UiT1>5dZx~ z&g10s$;?Ya^PTn&m;g)8<;L@5%}9Kg*^#a6%2jsPaQ{a*F$~nD=4{KK=v2dlrgzg< z8oIUR2FcRG@2)jA!%y;lCa z?i;lhpPgHE&4)(UDwB`n&YdEgq8Qw4(TSTJW2x+Ji_7HNp#a0Qax8YBGq`)q`e+h7 zt;3&^>b^QpSAycuU4G6@?PTz_dN(RkpYWNCcMKi#x-D-sKh1W-hpdo0<2yaTSMRjQ z0F9xV3+fU1$>#k~93>fDCMEFn2TibGLq%@E;r736q3lOPLY&U4Z#=(OclY&(`Fz33 z-Jdh2tAVr{iE_uItIh51 zwTQ9jv-Yf|LGtYZLSX+OC?MYiI1zzc^>d5>^5cJf#8>(uv_SapLVvzeiqK-=|9r_` zP8m`9>?d0Rg|49oz3@*Z3-6*!*eBgXW2>}-`-3%jm%eS+jMr>zhCoQ)vzhb1zE_o8T$|@{F63szD^x2bdz)D z)5Z-O0RUsxey*4;Fzd7zez8vvdAZz9u3O0Foqf5e+T|;hQ56fXr4BG^NS+Br+-H ztc%mj1q^RpE;c*<*ktM{xGBbVOVJ|I_3CiX5@tUW5@~p1j+_6q)m$P&T6ujuK-8&MS&@QoF$1>Ph%A=WbfEx_>}K9HdetNO->d**R?=C~4;4{1_2D{-)9F(zJD_ zaakqzEC&D~*p;VgyP8>ZJns_e@*)S&ZLi<-z{li^%w#2K)U+|OsPS;y5pqvV5xVHFj& zA3TbrjgL*i$>vvC+x7ZSbA=%N&e$>p}A}YD-dK-$bXLCC5PcZd0^f(|b^v z(re!Z z*R-F2?FlnAJNd!`mWsXG+MEuj$ss_dPwwMi<_3?X*kDP{dY3i4u_uLwTPBk3K}xQ? zhhBYdEcd%ivX#6^V@3Hg>|Ac&TRiXkza-(q@2f=-GC7oHOLI;4{sZ6;uY3*~kdV57 zS=~+V=eYd+KpLMU?y$tW@!!3*dWDmd%li1~X#df+mb9d&&BdfJtAQxo2gkOo#7|}R zp9tT)H>+YWKB{&~yt}zctB*r#M4;qkWo*=*K7h5S+Z*aFYzy@F_JN}+AIiJl&9=9I z5id@*cqo9MnX33)TBr&W)+)iWZ1`>Um3r4hMUAi|`U7-6g&K{Dt{SWRt2}=O2wo5R zFd3dU&*O^BhO6%Z@^bSIX%^R}7I-Gb#pZI8q)9FA7b}Cmy?}}5u}UtpTc0$hyEUg1 zz4}gP9sA{w-I+l>eW@spD=fh7GU}T+guG#~FCsbQ(mv%IOI423$<2At)sSTDKy&?0 z&ku9)j>Gh`3~#f~72nq=4LYK5C_pIfLm>d*#_xShePYyaHC}zQIcH-^ zGDrH_`8k)}gOex#V0F4=i8&MeAV}#AOMaEqHc5JdA4M@CAP!vMm!zVW8e2Et${=j) zZJn&uM1h?!eFV$D7gb2PRO@m~_w4)OFoHIHUKct9z;w5l({YHii@xU4}HJ_;oepx5sB zP`_T`4kj#bOuq8x`BfeSl`pFl@`1}FMyJWabff4BT>ks|xXqVJAu-NF+&|eA7(nD` zW|md)A0FdCYbEG=B1c#bG1F&>X#7A!qr;O-5wcuvpSO5+<)ep#_qSUFAqpKrXLW3Ip>^X@%0E&8cFvQk#(`19W`t7vFSDsiKc@oa6`otAqwSKu9z zEU%Nl*M@hj&F+fA{M;xQx}@n>NDps05PwF_agCDV(|0U{ii-wridW)@D5PAdr4^g$ z1eMQgqwokec>R1|J;f;D{7roS4#ttyuIRt5HW$!l+|B+v=n zx>z`&et9EJDA7Z8xYTJ_@ZgA2V+03#>pZLS_`1ULsCg?K4bSi92Aw%NX+kjGx2lKz zmyH)ZsNu=o|elS#|lV`{&Z6 zh3gcMfzy$fu3y2-MB`GjzR}@Wb7{ z!+;CG7o{^(!x1NU=zjM>#1K}-x$G$H?`YpK`5)>`fx%JK0fEfn3U0}JRH z)cOoSvFzr(+%)J7&pd#g$o0f{GS zZCv7eVc0{g`*#&FT&TBh)xNDUV7rE*3|qh5`Ldp((OZz#u|tjr{uHvB$LTZurYZP{ z=P2kQjjO1EltN77W{8D`P(pt3AyJAZ$$n-IcFgv8Z*c;3`h1sGHYqRT#*Yj7b^2U-;cgRQ^DS1MMh3q^o0i_8DP+3>cq zdWwT^oyOhj*55B=Y$<-Hdt_z}JaG6K--z)v5ga(7aGJLLHLL6I;H zay~HlZLL_eC;Fs$>h;G+x}Cm3c$t1;8zyL5iomWQIfpkBllkOK#th3>ZJYZRG;OX+ zq1|!NL`+*~?l|)zyQ8th`N?sCo6Dnv!G9@3>cJRp4Z(96QhKC;`q5f{_n+9U zldOEESlGSkWa)3q%h^$-2~_jRy^e1^w$42H9Z>t5`CvQyBz_$+iM4G3^ zIYsh68^8FV0et^&#Lj05mXKPyifFSHo#PV9Aw1st-iYl!;9?&gFQ!_kHQsVJiYrQL zo6bdTs`nJAr&{Rg0RLQ0{oh;wPN>SW_qay>2#oD|U3BZiCo#FvmrRxqeHy)AIaU(WWzeB<_puaUz}mxq9@wZ()Un-9%d1Bn^A?EU8Y4d6yN zCV_#)_Yx@DZo|{5Z+h`LM>9T>79aTi0q2GJBE?eos61gDSLwpEpA>{)@wt||(U%m|fAp*bwuDh4+}482ICFpYWxd7Z>Dir4tGsA_+tgiGUp=UiTgbe{ahjh+*N!rlIacD0skh@jVdb3fvZ`|Hjh3P@X&WuX zuGr`!06;to=H1el#mCLr<;TQ#+ht&WC43e#D}hA$ME*dxljG3(J|8ST$&}WNqtrJxH@FiZ5Xo{)6r(J8GneL zKzo43=a%^gIe)_oYQWL?)-F}hX#z_IQ=C!}!ZMaxBwZ@DgBYy>1HQ&PonNrP*vvne zbg?*d^>v@1r3IaZ_Ln;w5c~kw&iT5z61z)X#*hyP0KOTE`&7z>*>SZVSBKu>%7~K* zaRi>~2{LjyJk8r?_>3wkTDW&XMkn{v1uJOSVYrRXQ&o%8-jiQpv&z)#^mqshRn z3Nzy{26*#qu!yHv;JXgAh_Q!?f1T1B>)u4?`vDOYxj&!V53(gsF`xv>QG7=gvC6=9 zVo?9wkvsh zvj<2-5F?Ae5Cczz@Rvj36ZvIKCkKhcfI*fOJ%2_X;6Hyx)`d$4721zl|8A?|huCkz z4Fe*_#b+`V1_ezw1O{727;I=3jh3;=t@~5C?6(^3)IWRr<$N|-jjME1A&?%!HI3a~ zf3}~_XpQS=zT6Z}So^-_xstoXtaez6%52@nf&ma0al1@ZXm?V)$!fsS+Q4~LUg_Tv_E-(Dsj@PV+yQ~=XO1T{^43dAu8MV{rdXS+ut5DFWp^8 z4dflB)4p1D4if#vR%vX$XI1Y4zwkl!kMPiTiZ}jr!+Svh0GnMGc;2;#(~O!&!0%D( zu#?T(1mR?Bx>)N{r5dvzM>B0{FnbMO6}#wGVXw(qeU951JkBQJDlSJwmAOn{18uK_ z20Tv$D+*|apOfjaLuP@IDnnv5q8vCyEAo(FKqD34(m@L8hl2)IerJP4)WeM__!(`& z7Q8FOG(v|xWyfS4FUF2w8?Da<)CH3y3U?W#{+pcOfAIbr{Rn#43n4)7=dR;(hiuOL+BdlLNlnw1YIVAs-Df-= z+r3~v*mEXJ>2F|=dO7E>w;c`6Bfd+tsZao~u#^H=)q~A+xD#{5av70sXqFRYS-S+5r3q(Uqn0vAkJfn2mgPyhm~ld@n%2@ysYvujMwF_Gr0 z2k)9;E*M1Tv8S_)X|Zbz&cT`5x6@aK9$`QthV{8Qm%7}65W74nlj-1?Ch-05`2LS1 z*9Q>*kjYO7$R1S8yLMI?C>?EMM)y$?P z*647F3D62uJHLP;SBQF4tQ!Fxg&QboLKslrXmx}QC!t3|PI2&I#%9qbbkrtWoA69i zbCD0K4e^7iOC2%iNPVA8 z9>zx2B)CZvDe^NOuwGn3=-SPk_BZb;NItypMB3BigGd^^J%z4Jd}K}?)jY56li@pJ zNVq4D3qk6pUg7X&X%c;+--2Oa@BI%N;o!OtdD}8;%R-K$Rx=(8d&!)DxlWhS)b6Ox zs$#>+HgCHpT~nLQ&Xnw=5~UyYUSYmZX?LO;QeiG>$C6X9KLC!3EG3kbrY` ziXM*CfK6jCU0MRpI^NBJX^KGwKCGBMo&HQVa}>L7P)T;BI}}dBenaj9O!!c9V+10mgFUDnSOL+At&N5 zL%VNj3HifwF}1GjWM=36K(bBr1M&YmdoZ2(hHB;Fg4^oR-V>UFB}ADHe~x%YD(t@U zRJr}Sw31&G;Q^l3^er=`)p3RVC8K~B8}%=F(yW+n?h%w)`!>J#MHA!ynn@ttZ=7Vf z``v+H)#^DG-Qy{3cJ{bv3(UE2veZ7_4wEY){6YH|o(_*Cv%T7BH9j>}Z$R%-)fL!g zfC)U#6KZsht2SJe=je+1DXwZIUjI;bV!in5-};THd0L$U?9(Brcofvkk26bW?$|C= z08Y`VTDSqAno;c|SCPlH&pis*feo+2;Qin7*O{rOcGa(N8hAk5{kcD%6u+P=tbaSe zOPe91^MMG74vja2$Z)#9+vHr6HN5^`s({k}pbB&z8c`H(l_F__kpn`bqms))XmxrD zEbsE74KCV9eQ7rASxc|>(z*m80EoyOK@wQaZf||}Xtpm&0~GzI^)_D(#)sl&?BxMp z5w*o~|0})W2Re0_*&%;tY^W+IN{P>dQr`(oEUnk=rMLRMZC#!*DrKiGjJ0$53Y9CH79;#M!i?)2 zK$;ZV)~H-3@>DrRnzoh4c&;Ev!^$KH--g_Q;)1+K05R$qvhx8(B;rUYJCe1s#~_tp z#(_gLnx;V9~)AD`szo6``ml4h*DUyj(Zg8${KM$T?kz`y{(9=9J$M~cCYch*1lP<#$W8$v(ulpp~ zKjw6w3AVP&pGHo*&|l$bUj*4-S6rrdP)jNyWX;^>J8=%BjInMLgAK2rOTZ|o;2fbdp^O{qBx0cy zZ(Mp)Imj-c7KIH=+GYW!a`~DpHMr1ah4pgxp(%(^!~6`XFWqR){_M&2^q|ZaT&?=| z=@`&_^@TC-;L&m}`S(sqgSsYJh>jut4<^7J@qaM^3`S|zXCTYMprD7@4=U_Wn zE;W6;zW8FFZFN6S+&*#F+$!qSUT7Fxkry81F+5Aen;(aZ;oZ}qUmOA<58 z9v+|3p#~ZMyt`Y%kK@=v2vm(ON#I5sLOzLDxkjfJU)Z3L0=fnm!)og)oJZk8-uSd$ z$ctBWb72J4cX{M6HOpqA$2d-GLk}Zg>$6k0$g-71C$a9Y;B=l@dzb>|UQAe^*!J2IsC2vf8n>A| zU|PTKLg&hw;&?dPZE(W`mH9q6fF} zqH6No=yx@IJ?rGx3}=#vh$s^_q^O}IB5?y5CDdx62EqyjVzdNlN$5b;REw2HHftLX zjr6I2bkfKBIQCkDU*-X5^qs~%H0$G6ak;T~?AEUXS^&HZ!P?utmpj&P#&UMN<}<@v zDVvoB>m9>T;<^xKL| zRQvZU2cz-VvO6YQ*YL!OE9~`q&3wx@bz7Ay8Q~fZ;W6AP$~m~1=S8a5*lFZA?ZzN_w52sD$C~%?bT|n)pjFaP~Ad>=uU2sCGy5Sy0E;zb-D(~x36w~ zKgrb+WyWN>!isS|d!o*1QkL~xu~_zf%^stPti zS=PfsKfSO12rn&rjq+5u4<>LKM+_s{L`_4f5IL#c9LAD`jXoJJ!Ds;)h{l$3BgDh> zw)H*!)bKba`=EYpwxfG`ACBbg{Ov4$bxkEf)L{-!;MU+aV5wUo2D%}&6r*NXw)CSJ z3+56WTi$4U?^NfXo*lHniNEVXkH{C82Zxbr$U{q(4aDxrGOENPiv0}VXPoMX5ZNRA?aw~S=F#!@n^ zF$<&ov0`FirMM>`iYLhNE1mtE769OH7_;oQIyNfS-d}?#=;kSAq*Q-zl}L%@b3;mu zKc5>8GZB9@lQFxusu$fDTtjO}XaL?AK5&v8V8udRNAp}_9$kl#kiFg*SRh=qgaLK#As}n}uqZyB4OBOby2E`s?Y38J}UzfU-@y?&+(5@La`6Iq9 z789c}#t#jt3>OnKks|+dN1&(>a^*lsUMdhfr`CC@ql+49{ZRH3F0q;ne1l}Tbk#}8 zNVB}rC}wG>AtPB$+iF>kXgw3j&q_l82wP~m-})vF!5-vt$^17B$&5@b zz1cEYHsloT0D@oNO2u_BGwdi54ukp>i6x9(u+Ae;ay^y}W#A_UU4=C8b{Nz6M^a2I zpXd&j7>LFyVN6{9Xh8ABfTI!1-TgPN0C0=!e?t;0JOsYv76n>Jn5mQlFNpw$JY}Ev z{?D&pXD&iZNA$Z%UAB>@jmU%r&@y%}QOl&IMv1_g7D_T=hOrk6Q5k(+N6w9&3!xZB z@XCbhmLr~z^ToKCT!;>!q*qB;NEor;s8fpwLR$YcQ*-}0QqAhVKFh*(^(_-whD!# ztfc3CJn6>ws4O#MnVj`1>}uI!sML4M%XlCFJwKN~KLiA3-%zMHLUsFoYoLl>yD}vnS>4D_is98@7&rvj9y1uf=^g-odBm;l++)Ic4kB&_j(JPp+*QFul5) z=Xgic000P_{K>oF#@`>Yc118-=4!d-6;XC`QCR3=v2 zY+E}B2Auy$BC?g4j{*7kudsoCmf2<6U;G_y8GZ!Cj|UpyDs+d|XF_C1xnmaK28dB1 zuHfrlO75s6#;8)-g0I>gS@?AROEkuQc9CN^W2_xZ6NlWICQwgt(qUD%sgCIn_q1K}i_(Rb%rhOPd&) zZUQYmc2n>%oznHi=rpKYH-Gf*TPhb>Z-`<|+Y6ic#q)DK{?#*wBS%MveGsXOR(49M z^Y(LIXVT*_Sjq~8<9BqR&be(+pELr)ud&C2Cy4H$4fT-l2gt{ z`rMGCp*GZV^J}m*()M9D@h|sZ$XazDQqHEUPTsi2{XAAFDPFo454t|x7hBkaF)ug@ zOMfiCKqnI5ViiW`t{|T+7jDEZbC}@$-9c{amC?O3Qdq5ymR#QlfXuE102kI$a-Ca} zMFmi1;>JL-v>(5+HAh?DqWdt+e;0&2sE+5x3mG8x9=97IGEG3g5 z&uz%g7)~ChP`|h}!jtE8^X2y?mvfSEWA7LI2xP_8~2#5p_+yNV=rex>o0Qgs< zy?NH}m{7CGR^wt5oOXnVD`y-Hy@@G1g+Bfdn?er3AyUJnW$d2cOU_$O>9Ba>#OB)^ z2YcDtSa%YWj0>}#P_KovX#l;(+$zObAOJXur4!3!yu-M>oaTq{+u|+Z*a!S$%rgbv z(7bO+z8CGy=k3{!L`hk%CM$Je_`Bl4(YB0>T7~3}%asTF(eTn_o#J+i^ahN0v>%$* z6((ybX~6zlAo=xdm7!L#k*i;N6kn!lUZ=y&w$DFP>%11q{d3O$s{3d|jKDzc`v88O>%Y%0d2dQoGYptKaPLJU)QQsdET=bPT4-qSmHOM>m@kk0-0s)#AgUEv75cyO359hGAMxC2DuM zu+Q>7j9eu`#l)bG$@5>p*>v;yWERCTyWhttk%0CF8fCF&p?(AOtxMV4>k|S~&sa*Rw)8sX=*QKR}WlLrx$Rivy z6^q^MDed+cSKQqbwueMH`WDo;>w^bQSIcDX$pS!bI>Y)huk-`$Rr`BPOBHf!wODAh zf7Gp{72=^w_r&s*;4P@kghd!uqq%^Ho;_AL#I-|bt2=2953FoFo}#(!EoV_yYL}fa zuORaa$U6j!g3wSgolO2pV`evo$R(mS9ORnRW`BBCfoYobpJc@ruD;&%E{-Z)SZ^Ag zo=9kuuxQhBL`~bmE&QD^LVbEf((*noGz2akZg;1f(DEGMg4B*%km~7b*Qd*j1#Z|8TcPlFdkC(a~)`$0*1I8s+-8jhFA?CQ0 zn#u8By3IF87N9al?ucW-a8bUbu}=q!4_zSg13D2OI`LdKnkv(dQz<1{zc&Kmuc|xg zsqfqh2{u0aFbHJG#!X%{;vza)0%aN7AliwTbprx5vSW*cUqrIwk<&IiIU3==yB1t& zd(iQwDJsr4U$LCvi5!=3VK*?+N*-_+h-umKhI?l+9F0IBP}zz&^|Yi%!icF8u@ zTWRw}9v`?G{zSjL4WnE@I69P<+R(XCJYBHXc&qODoHeIpI*JfNx*^d10Zr#ht9-H9 zL4J5ad)J_@AeUOwo^||g;aJ)3;l0{yMMLDZ>-otaDY`+{mnW2whI#h=!`^U2P>`Vb zz{VhrLl?>qW9F&D&4b`^_-6iWqHO-yE2T^Y6COj$>!aj*gcV6#OBmV}TOI_S@Ru1# zP@5(xjWm0qk@xSTXqYIM`O2ZPmdj4`HyN`|q0M^jNy{261)D-!?)N{l351ex-L6z8 z`yro}+p43AHV7}my!Q#M(+=XP-`evBT?#3DMiW(ZFPE$O9Bpm{30WiIu6LO-R6pJ% zJx)NAVUZ>Cxe)a(iacNEvrUXAtau$DU^bj1tPaC#oBup*x%zbEP0t6Y(LDZ+-yWN{ z5E}Cmadk=nGt%m&|A?7%s(btETF~Jp{^lx=t#aio!CfxIbNZZ@flLiI1?vM7D-f)3-;k>sIO9j&3Je7s7X0WRNi z)MUloY zAy$D9r5mg0+DViHEFn=rPe6(r0WSd#&VxpA=I2A3<|p~z?FH#SzasK?`SZB@!1=SI zv=IRzTVBDB_aFd?-|BE)c;*-g^O@=WrR`hk7iT6f1F=b;cRjMS3}iS&78}2|NmfMK z?u=`LhC#tBJ2P%%yM1FhZynL)^~iX#7`J7|IS3e1D)*8C3vTntP)_6ctL zWj{p*tAnAA{&y&w#@?aS91Xyqen%vIfTzNb94!rRO6d66OH@FKB<QJ;{ztOaarhx#?Fhqq=|^}7Cx zQ4rT=x!k$)HHS|>Qy>#g2n&Mc2xq!*$q+zShf}PVFzm%Z z-0KKML|ykhpF<`H0Px9`RO{kw;JJwnI=YA#jOi^JWGjjJ)7uWUXM8D{&?TeTkwjT* zt_|^ft9xEhnSi5$PGV+xL{Y<6E@X1p-!1OA1{nV4xkOTuB|O=hb{#oo%J}6627tXm z8U_GRhbUdIR0&7xX^_`CKqQjZK8>}_5O4uUxW>sA6b-KBgF&(cy=pmmjc`^?3bp`5 zLVqndJ@3aGVgYhc39{HQL^V}cm2tBcx!dnmlawjFYp=-^NeP{S)vP!dA>JtWa{LYn2l#6Y z14Gg|&X)EImvTu20GK>dE#LNo_`OI{#laJfo#p))km;ycA8qRxHFY34&av$^Bd2in zDNO`dn}VSId6dX7LFC~mwja|!5gsgH!+;b7a3m?JR-0n52cGOS1`*pXkN^@8t5~D` zdKG;8oMiQ<8i(!6JbofDW{+b+`>pYjt&wqr+z^3g^LC+*dPdd6oQ<((wT70sVP$$< z;8%$M4El=%l9JIBJ_~oN$CW7WjIp)$^Q8eVtV3mwoyWt;ASt;-)BMrx;rYjW1e0vv z;nc%G8T<=20NG;#Fy4wJke04sSSw*|L=PQ1DjAHA z4(6vsf()u>HQ7)XR#vmEEdwDFdWZ350}QgTNR=@tOdENl+Dv40+7>-$X{MK3l*%#> z4lOCO8=c_>z(zZhv#ct>^p~-_F9q(%{1hfRAg8)_X7IL;6$WafK!D)E-QC?af#3vpcXxLP!JXjl?(PuW-95N_;c_ckdmp)dPWR}a zjAB%M^4ffCc3Kt3gWlWC&3f0qRJ`fL=Smi0La?HlgE&98FV2djcO27lxwh?^i_v&( z8x3!#5yDZjTZ$wf0BRL;2ZvmV?ATHrNmM@op&jkPY(H-9GS zJ*3Oajjtz07fA>UH8}8o$<5-J%#dG#Dp47nU2}tLRJ>`CAjm6m>1a+SsI^T-Z40f) zgTY!pxX&dhfTvcX4}~D>S)U(y(m|m;dSoD-jJ{xneGwNA|IQbPxT>5M=Qs@z8uqBa zN6e)TO`5!1)PnpNQL>E5#xYnEDCX1ENT0FO^6VwR#FUP-ReewEr>M%XLr|Xnr1B%F zqT=CAr^=nEyH#-*QWo-#e`1G;Xi+?CzY^^$u?~#ByxMwqR4fW-CDTz)Kz|xY%{<`u z0U3;~O5s>DaSXlLca-^n$j2)A2a;M!;Rw-ZjUUH_EBE{&wNKNU7MQQg^0!+Sc{1wn z-#a39wR|?ZQncy`yWFcNczJQ+DfGxD1s-BNds}@u03yV&U>wChyqA6ZiH3~Ylgj<> z!|g9!DceW@EuZ5bkWGvwtg7cXCF{Mt{9JY`!TyPc%${DOCF)6|2gj3L4z9w6(e}R? z_<0`B)DtvVg;{FW|Dfs&&%?*QUI!eGFlJb7#9(!ob9^>PB5n6(gmWr*FT?{-5MnUy z;2*F+jR=Rud$&yQwGKQs39MW;628aSaq0vxMBY1r0lJ^Ys`kkV9kG0dO1|mPdX+VB zHOAVCZwJIXK>Jn?b6zU}+l@BBHf0d}a^(k)@6TFRy+n)*L(2~|Vfe$NCfqK6#l^3> zWC^P!)Li??I&pHoKTV$;Yj(}ia-Mm|1xevJ-a?)<3R*GoXpsZ%NG6)C9tP88w7a{o|MNvUe_;XUzcG%P@= zI}R8m$nwb_=hX9$>EU_pXgjj>l}Jt770HeZ*l-0`d|RP+MO>pDn{}icEu9N&y1=x^ z@Hpz`oD_Ib4G#>m_auY^fJn6ia*v`VI-40OT&(NVK&CVXt=+FEvTjCKy#vz z_}LO1(NQCTfqZheuX^V^tMht#;5nEOZU2Nj59GHKJ$^w?;^3nhSHFGujbvI+C#O%J z`$Stjf_EmnGnX*h3{6|niT=C5{O@un3}&P=+IlDbp!E5=!rV7sdyM5!ZLG%XbLaj_ zMZ^x$_$ZUiFs4HE`mE6jcV`T=$7}C1_6eu9mP2p*TNBE$X6qPwi*H7{> z&7KshERhn!_o)zPQt(%yChvJcL7p^;lLV;HRF^8=x)PD%QO(ZnYg_C@4sH;54IKIU zfW(sD54eF|#dJrTp}Q;MLIhkhY^MA4w2Zq@No>02u8fZHO8@*y@Iy6=60=eUb#TJH z_Z27r^Y*rAdOAU&S%zE+L&GyL3k{Z(28=kl?D~k(hKTd&Rp&>@47$}uayx%OJxq?M zT#xaWQEdxQ_y7wbmoKx z`!DS-dXPk4-0Dd*1-ihoY;Exb+b5rCC(!01T#6rx%gotJbxKRwn@ zQ$b2J91csQ*nhNhJ77d$*0!s^;y$K+)2i|28|Yrw;M@z3cZiR4M3lyErx`YT#z%j- zYd03|p=owU7}VEVfFFZ9=0AA86CEo&&E$T!?;oMYp9SiQdS8pBo&p&cBCTl{Fph_9 zS%a!_f~r#HN0Y$2OMBrqUeD!|E-)jDg~9BWgMHKMw>PB=CWeUp`}nC^?VDVmJLEeN ztXfV{X$u)U&hO9TDJo^NRD+b*vC2E^onPgX7zmx=s4v{QR|cETso4kG?j7t|-HplT z8a4x5>`msDD=uypiWLTwBl9etFacEe6xu82FD^&*=yCmqnjY=B6uux?rU7*WlpCvS3|5-HWGV?M2f3l^W4(-IZJjTnmncTMePGZ)ZJD+Th`b2Ibt~9Y1`9WkU zpy_p9QqN^EmG8 zcifiq6_m#8Nxig9rVFy@08ZB%NQ-QkFTf~^`B%1&XqQz=p9dQ+cUv|Ht0;18?RUyE1;R4H<$UcG4B`b#8_+pdbZ@J~-nfVy z4A9(8`|Pt}w{;px$A6|=rXK7XQ9u@G8Ia}7?teG8rF|7; z(6@f}o*C{P|Jq$LGhwaWW(0L|C z4s7ztx_i7!Z_Xs`#K9Nh=WfwozyEpjb##!|k-_hL=7_d%$rZ&Yo-9WnuUsIb_y*3JOHVzl+3$HY^67w)F)F~< zX;cENI9i%Av?B8w94=n@D2x=347;fv?%4R8Uw%(xyIyfQG^p)#H$(>M^lY@HIiP^W zJKw-miga3REV%67h~9S-W*5$*JWQY7H(DBOe&@bZ=VG|r)IFC88h2$pItPzyzN+l| zw>aKIM?bpQks$#9)0HZg_!ClVEhq6WZZW701DHtX};oTg~4&H4FWo7kQTI9bZ_UMH*Lvio6Z6R z*i74=mVXSrzI%(*Ec8ia_nh_wl7GZ&$bWqv+9-BpqBv^`dUb~=`^h1l+PFDa{akH6 z-N{zg>gsiNT&L>Msj4swE(Efq&1t@^cVQ}7uOxX$ff(TLvr27+1>Afm9fk`f5tvIm zzJkE$>P}yU${ZM(ZEz~T!(uh}yD4+Z=*=@!0^>~7$FLC%Dqxa_%>M38{#nrRl`W&eq*leNH{d^!L9?xZpAITTQvug0VKPlgR0{3R-dg5{O~I1d4P}Ee+7BjR982RV*gN;2v)!o86OhpemW67))0=Hcg- zQYP59>m)evsp$9>J0&ti^_H71jty1ivnjGV3u_`HmO&W*PYp3l^>ncS*)jzu2$!BzIHe`f<3^_{9ptotJ782YLY&W z&Tc+Y>4u=B(z#S|UNdjQC19wCFpy=iGh?b=K zOwjE!F1Y^#ikY))__Y1PNY$!xi2wAGD3HyPjhEN5IYBl12dr$_?fN>an8A6W$zC{` z5~8eBW&AbS2O<1>Lp-E+ms`PE7J*NVUJ2(Y)Z(&UVeYS=jI_CDLu$0W)AdGoFddkb z+YGC2^%ZL8T$+(EX?;thosWL!Kli_7qyUT+YSK*#18;a->Ni_X3Ll3uykI{U#j>PC zd^j6($`?xF|IrEP=4@UhNz?t9;pvvX)McYH-0koG zSsM?bq10JdN$lNb|A2ABgKd3P7%t>=4*Jo9p!1GBLOMqdz=Q&@!-M!vG+)3mJrP+% zce0`TrEUYF6^Gpm{96Eu6}$MC9JxeB%wE4Q1;3U1&9yp60%tNJ^SEl%{{ z_XCp9)`YEmaWWFA8IErkT{R;~l90_95+C(Sk226xLXrA7`~}c)6YUJE8Zn+L$pmRm zPK8O06sRSNW|<>a?XML)7#q{D5xJFUs1ruSr$C&xT|ni{B7%Lkd;_=EI#iUd92Efe z%d$`j0Kf^S(b>y(-nU%GtBSW`a)>==J9jA5B+G!?-)hR(_H)p-Nc#TL5G|jgYw?Wh zm%8wMl~1b4K_L+}is4g`N2J?#3i6LYC`@zpko3A6N-=&FP`2S&knJjS`Eh3Zz&x!2 z9R^shPSY{$R~*@BNZYSpP~ep{6s#XhE1fNljf9I=Y(9PcPNLU>W7fPMMgjcF!emCbQ%mVjq8&)Byv-VBb}uR({Mg6Sa9YZ2@Lcj7c{8(9n3udzlv?`V%c<#jEaYVuyuRma=3Zx|3}Y7LaVx8Wl|lnX9XRV_7f8L-0>H#YQ6 zY8}D!>o<Qb5vZep}NSXgl1;$Q1iW`SwE>IE!_y@su-B! zER%=EQLbX*2#2`NCEe8o?H4|~2AD38`ht+Gi}Sq6>bKCStSgGTnCfd>+?~de8U4>;zi(BI%%Ae) zsO3nKID5H1+Ds1w`S6fxe=^9?m9d#uSXMq0Gt+uzAcjkC5R8g$jpZnCyboj7#hP># z-@5Ae)sjgRbniQ38mYJoNo;(MDFIeFmy#-z^6v29aWGJ$4S}hZHdMh$2ltbK#zd{f zBl!5lpeE(H!|A%urVF##5*AEJ;Rky~IKu~4R>hUU{I@-z^Fk}^+>vIJD7wd0dAb{d zf*3v4;`ppTmj}CmAW`v4Kd}IXj+DF_f(vIin4NN>Rkx>-Y=vT4=?D(c50|GED_#qv z`CVGpU61;r@N_v1*Lnt^-8Cov6jC^IoQXk9JLdh~DS05HkAvlS9Ht}(8F99EA-U{M zx6S38&6y=syB{j#p{)bos_Q?pLt%v8mL zX>oW_=*>^hZd;ttu7=3w0oGX~pTQ8buG{$xH;onVIx!eC zy@S7EWR%6>9O1ZiI{4;AK2Xlb6WOe_w29qz@}J1k2(P3v!KmMrkpON|Jrb9t)dR=0cx2QB z8Kw#b#39D5Z_|Ca+YA?eB(lJdb%^mo)z3n9C!gmn*fNDibvn^)Yx&1#*WHe~6Do@cZp z>@}!EjLmMBUD@Y0)Pt(NuiBAl!~T_)27BCdElEYGFXAn!D1DI-80AzO4V*TswLe+n zMs|p?6#=xO94$EOs~zfcXN}w40;}iAsu{ zrIr~K&b9Ij-3Sm}&nYe}*KTVIC*Y8?L%(8s`;5^fBYD1tU1V@Q#bCDo5)0TO{IfGc zo%&dy0Ag}a^z)*yt2XX3#PYlu_jdRlF$5kh-Wk28kTEL2sU_F>EMK#N@_ckSr@oCB z>j}r2p6ax-xL#HoXISDFhX}nW%ICjx7|WY%zE|L>7|YgP_f|AGx(HllHW_9jg%tz} z5#fxByvOblmOd%x*Q!y(#%D2&&&@3DD8vs*j)um68pSsNal>{tnqZd!rG1vd>b17^750IT=s%|_aqssI@zh<&{|Y$4n1_R zuTnX8j8X7vcT;oMJC&{|JgtO6Rd? zzXoZk2{REgJ;Z<$HUWXk-E7ou(RZ8u$dA~{__?60xE^nberZ(9O=io1+sc*-Wd8@# z&#=0bS^Qq_&Y9xhW&d+0+m7eK|2$-7^t#{>U(_%b z@`Ru}Y2r_jLM3u?#TA`C=>9@4H;-(dA)?f8fkd2e{$_NbTO;~34u4($52{9_0sCha z{EMa4qYcge5$%GUt!C731(_HnF=0la?o+u5L}a-JXtoenn}PA6{o}}pSRfcKH2_vN z98Fty#Z=8s?s4-lt8#>WBIoq(*uI0-25;d$_~x-1Bo z_?p{qXY)D}5ccvZGJk{vSNfvt5l&Zv)|$JSjOKN)P3u;7I=|*m(G((=iziDv|I3_ zh&z{sW^`(8x@fV_oZqSe;5WpL&0#DkVEi8TnSu*I-T5^7fMEM<6_$J)0r3e^wTW@% zRW(ywM^uk3F|$A_*k>mgXwz#Uu0)u-wQydrN{|+X1gyX?R0>q8fTfn;^|@^QmUZ#O z{t!c`aK~^{Ag*!uVoZEA_zM1o&|INP>G-+dd~TEIi`l<(0eb3_JDW3Yv;2~?n&_9u zSNO`pQ)lTwbzg3ONox*vo*AopIh3t^p#^h^1|WN`kTbW%=xI`$eeZ@j7%Q@1vxgYg zObb;2Q;6Dl8k9y#TDzkXB1``S zkI$w0n97p#r7<(*533T0>p0AX{`PGXZ|cwfW3_qXm@^3$a(`}d&wQ@7KE0D`(c9sH zGtiO4cKLMwRuRdG3kx*xv^Dsh;3wu-f8TWdu<1Jb)Np@kr zvxc}rfAhyEtC62u3(nHaKaWI?u8$-BJ^{L#o=UZZIWxWXupoEx1vb( z`1(tbH1_grP|ol}Qm*u86yTU9N^TFyT5}O0>2;NnespDuFF(^6(*Vo)gBUT`fb+|7 zq56`Ber`KBH%w|o2Xf$5jc?-9#Myz`iIuss0=2HlH(jrR-{nE%H2f z-K{!LJ^3AFh&tXXM0wZ^2*>Ai(h=dlQX0-Fe7*{PkdbJ`l8^wupHmWFu(1II@8U4-h}98?C|I&f@b-LWNQ%oYB?I=pf<%nSj@8P4b+<(Q&F9qB>udX5cA} z!u)aB(>iqS<=gUWY!V8~O#xX#iKUtTg@E2uKH#P_MUO{Ec<^CunE+KV$J=kC%a;X| zpXJr!Rg;OK{=i25b&JXRjf|I}gY9DaaR~LdATqLM&~id}#L*HId>U@~Ce zk`;{N@w;uR>)xcQf|AJ6eF}5WfKaUW&E>T6&5h66oi%3W6Gju+%{@7sthW!aPk*1E{p|tm`l042-x{b=I z?t*z^4%u}Ci1}o^uQffUZ%@-E*q(`aA^Lcu#=BM(2~gvI!xZ+2JQlLyUL~@1cJBWebE74c$5lnJ*=Cs*$2bzkkLn zX*%-vuy z=}RMh3+sX>?HF*K{TKIvt*l!u*Q&i(<91QmsZQWah03ju10NR9g4+@7NM zU2+Br_=1PMafoM>8DR>g`+5M=`nS(#F4hmUU)M-K;bTM!5ott&W`4e^s&upbGQ0vE z)LX0J5AQu&RjtK=)x~u@XghnS9SpCI-MjGv;ZwZPRYjW3@o-&x;!OjS&)a>oSF#Bk z1n8VQ3;ad0XO{jDe&K0wVl2itzh=F8y(?@g_+uSy4vr2Ig*h2G_+;v@cCbE8IJB>nQh0PCR`TEe}pVfZctS`*OypQ2GErFZBG>h*pFrW2rj^H zKLTVAc{~UiEDeW8Lwo}GF~if3jh#AsS>t#GflEZy5htljZw!W7adjtfPSA8C;a zq#4cn_sp>FrOlO4jCOjf61Ihrus+_hM_L<=LCJ+B&++g~ZSM}fs!H;VZC-mv%bHrX zS$bW!z(%Gvu89?Nma>Bbx}7Wd`0&T=0j6SAE>FK%@6JPEmN*u!f66(ph7Iv|F*0m= z&s2W(58?te*E@pv!p%0u#)Cw8jAjeX5_imy9@XV9nVuJ&0uy_^#VQLES$oPErJ01@4_!M$K9E2=dnChy*btS+*@_4K0>X#boy1NP@eMAa>v zuXW_S*gl6<(Vdv1n7gj#lNovDvzfAD+Nmf>*HJx21P(G5g)8+Ft=qq{OOZ)}FtmRA<5xgiP@`_|p z;Xb_24|#n2usxbRKUh!21LXw=2YmY=x;O*=MSa=;^)ZR_y_$N|V{1x1uN*!_Wcoz& znRC6oi@WH`jn0iBuGsQYB34`^G2c3U!`Co@F#*<&KJHWZT=m6(dSiz0{^LF3qv6hs zcGsIpop}&%WQ;@sS;n_PCY!-wsiTf18xyWwxsrSk=JS~l0?>`nI-$$i=Px?HZ|8jS z+Mvsc2J81-uCzIq0R)0kE%19TXYl#(8n*@$<`J7upst zD##XddJS#DBn-~_kC8Bg27VQ3zX3ASsdHH+Oa9fZ+NBB^*)O?*in&B08;p9dVDq)m zI#bt5uKMvQ*5b|LX@8r9iO%CWD0$#IW!Q(W-45(iX6s}Ci8!n+v*SA zA>E0-A-{L5+FYAv0hoM{5#Fr+j$jP#kHxiSA?3_eey0aHu;;*(2r@oVHmlUZ7xr7* zEk-h*K1CloQ=ICI@D{YOQ-FZKR1AE;Y@@}6EvU2Z)R9uH+8uW`?*tnY`#xu(G?hn? zM@*cmkYAt$cbU{zkX&XQ+|!+K+4Wo{$M(6ttCp*C$09Oc-w7`3eBF%?FB{RcvQlZB zF7!87%*enKgL48AAbgZ$b06;Gl=Vx5{QA>>B3h^aLbS?`H%h5KfKyj7;xjffh%(h(lzP z#+4~$MUF0kip{(&r02ye&?YT03O4|B-ls7KF87Ll0S5#broO6?3#@e}YndFK={U!I zFg!N6#Es$gtucWsBL9f_s1dwO-nI&Sgi(5z7cnNJYPDg88;ZjjvyS{n<0j=DArcf&z@A8}| z8$(&#R%qsF#PrN*Qaf}8TWWi%l$j1W-#8J?R1Ns@wD>~(67j?*aN)tco6=OVX{HF4^SgVjIi#A8D z?OD6OD04bPEA(eBQpx{*tY^jOt2#1ah&)&V(ebE7Lp_$^QRG zsnW0*@i@=d)=51!Gl7%|#MUy&Kj@y7k^S6dI!;PeQ;#&GK`PO(^6*txc@GbbBkDR^ zLf$vZaX~hbfaJzziA`$n%0L3Gb`>6qC4buCR)+_pIGe37u)XJ7r4>mT7!*iOL_!ba zwO^|f5k--sa9P@2H{jAxsYzXJAd2QhlTqn8=1O3Z<5c}g>Q}W*qSNnZO4lkQYRkkg zEgv}<3xDgd@~2pggY3nh=*2-Gcr9<5PqX5luU6OMN^uE+1&=2PKD#dq$&)uldT|n` zQj}|Oc5<@TI-@aRXX2-1oQ$Y9EK~ismtA4HKV#nWWbeF4JVb-cIK<#{>8<+5^w)>U^>6N=R=*RT9Azw2V&6FQMDowJ3%lDyTmwk$$&q)sXk7`-?*TA46|{>L z+$QT~32X^t2cXP4e+GQ%GnDfp?f7kl7%8B;rS)O9S=;m`+?>y{YO5eT_`&>B?FWEi zYqU<=H^FPYwMz6sDJ)Uz7t!*}xgzVmw(J=d3rV@p%CK>hR@|@hRI1zXQK1zl-34`` zOR8$Z&ZQdO%4py9w_F8hzljn=uX<=_>)~*7IV3knd@0dKQ1H6wn+|T@LJ&Ca^#nmC zB2wSiWo5tt3Qqi1bId#QtDQGy^%n(R?WPkwl)7i{1xP$^xynReOVUg$-e>LRCQqPN zO0dz(Bl!&Pw-Z_dTU=QM{>tH-!-|*N2n_P zpQx8cVCWm^sGt(COx(CenuJ{EY%Zck(RJH!8tdMz5E#C+=V zr7xH=X0*ZI^aioyiHV(6%GJc3$Xjb9AD3IfY%KbqjjlfSTd&qszeh$=;rijZi4 zMj#6xU-@Yf{;(|M`WX91s;_8d=Q_=dCCTR7+q@>@$r~1+D9=w7h}2#gUU!$Ti|!=c z5~kRxZI7}#f{mI9<6u87?Y($N%_JVET!E}_Ac$&uTWO4duG|~qX)-N>qBq_NK1%G8{AhM+>s7U$WxK-uwl{@+;$fTxkX)RYh zCo?7(6<1XM!n+RO9N%e(`lAh97*qMk^Cy>x^A0A|UA6|E85QOJxeA$rl^S};CKtx_ zyCo;N5L^5!+JqL)MxS-x-@lXC*TA(Vn`8l$)~j*rzCKnVgV{rCy!L&nhWBK{0^Z6V zv|gu6XV@}?;Upj9UcTfNqda0Z1)fQmLdw8ItF^dX{rDxY@RTb0O6~2-xW5SLD29Z$ zZo3t61m}wPNDDd`3!!PP^SD1eymbWMpR?z_Z>7{F5;Vt9moWLgOpFNRsje4$)Y_`Q zJYBtF>SB85Q2a#(w>Nta#;5v%Pmt44lOZsJBde>Hfk}Js=pC%vZUbU7r7jr%7pxNv zh2Jl{yUyiS7=0jq^De0du8`<*pkH!7$4$zUNI1AKAk)jcHyKq96Zxb!YkS#bSg~9H z$w)}X?@c+l0s)AJ71)*cJ~+dk36dOw+oZ^d+Grt?LO~Xg4qy%W>wp)k$4jt5rk3Gz ziJUuX3-=cjit%aKi9z)5yniP%Or3&sj%7dif5T2EzN#|*O8wW5H7GcoHGmD z4>)o|z~6B+^^|`3aR=s++KP9nACWIHat(_x8d2OmPhc| zW;F@p6rgUSPinB}!AIDc9iQ;l_)D^`ANorJjAo~ORcr2h=j9~kJGa$vB;WvoANTwq zs2goo9~oIOeGU;KaV@&zDRI+Mhfpz+gk^@#s)9*g$3Oi8@XOEsNk&3mte+2;z(E6r z@PabSZEmBhb{h&aO`5-1jWUJpI}`=f!`O2!H(n<^(aPZ$$DqD-N*SnytJKBol?c8C zA)X&Byvk`sYmNm+C|yR61fj>_w#;eRK+RBn%P&*9eCpK)GRdJ0@CO-QovloE2SRio zqi~;7eggpc#Ua%ftcE`#{Yjqpf9I9$AG|i7tupYz10-2|b!#u@#O`BCXibxMxSR4w zIA7KB8!TNwjdZ@}C$qXXLzsB+uJrhg8|aaLftlArMGB7R4?)!S3cV%dungpvx;-_x zo$iOb?j@ygt7QWG1CuZ|*ZRzJ&mMJ2JAqQiMU8RIwx+4-2nFJB9^6*UupU!~Mu#CA z^F&EaYx^KZNiv&dUOf_msc{)meP1pMm(-A2)c-C{Y|wk!oL5iFxCPEx95@6t+DI!5 z3@#&^S)C-{s}`MnA9o&*PBHOau1`;Fb{-Jium+gwnON%A?jYO6oCFDPvV zoVgc$n~x}=1B^F2%c8XdaVSzlMRqecF+t5=%@=cpgz*4cD=iK^MHlOstB#{oaCm-y zv@rIF2zK~?v@j48aKt|#!N+2%LKQ`6L@wfdHVJPQ$}g-;5ePn`fm&Q&uX)}B?HLFs z>T6vVw3z-`5^1O}+WsX0k-;7A=JI%As}Y*&?g&si@#$UN%Mi>WQS`N@r$U1Th=K#6 z423>9Gd%Qg5xkupUi=ZN2*J*vW*O)}d@rXxm}hD%i$-mCd-<{va-iyuW|Gg>yXNWg zvis>bln)reoT>y8ZasC~L_0GIlfwK*^jOUMoosuE=csc*tKWqm7X0>d4Dr}g&inqz zP~x>TIc-;e)5=~;y|KdW|K&&?G>fr-*>V81AE}R@fiYyEU>n{28-7=VFY-Q1Gn( zv%dkdXJ&K%L+~JTs2}>bxWau662r*m1rq9AoweY8%X&qQkj#s_Ho%4{#qj=jHK;Yt zQp@5m1dqpn3lTB8r$_gGktAzZ!O;|CZlBi71!GvpMZ`!G_w&;H*+gAF_Jf*L6>|_qg#t}#tmeDA&1(@% z9ZF?ZSeOo47Iv$%im482;Ggu;58(35o+1CL)NF;!9#&#zf}?e&tTW1Skb7Yc?w>}U zd&i|xvP=m6qwu1S`=dBegm@_RCfn{k3m-O4+&CBI(gTGcBNjv}II8WNU|?juk435> zsBtM{{uL33cj08|a;u7aNw+8FR$sd;8u=$k)_Z$ApLFnbUCabS1v?k0EoppScpco9 z6pot_yJwYv;~h<1l{Wt?gII`gp_gusRZ(Ci{AU~^6!o-C-5nlQG?1S=xLk^dYedB< z#OV^zkS0K~KvIc7wp=t&!D|b5;ILYY{2C88Z(fv^H8I@n<~nct9`#ZFpjT-hlz-^#a6M~)_))hYGcrnM_5@vrz#EqHh;^^bQmS!M z_svT#yDR|=l@|Hnz|Xtd)p{Hk%4Wt@GRrat8nY@P3dUtivbGXWASEBS*}%_zwrIP) zL)2&UVtRyr6odb4adY#RS{WB7?T%0A0Vk<;!<@MBlA+x5&l6JB3&p5olW~TLZ(KOe zKkeQbs@M3*VQugPZbzB}nli9uag#6w+I$Wmli}H_(9ix6>x=Z3T-Gx+-e+%!-pJy0 zqEr(t6$im3ptgDW?AC=Xx6Fo{W_xWZJsV{)q1Ci#^@l_C%SO5n3YH=D-Q9AS8^2MeQK4bzG~A>#l1jxK|cEL2lX0 zbklYr3X!9-I{$kq8d=t|!&9DIWgj*ks^+4S?e|x^dz@W=4LiNsb z4;SGmdwH+sCgBwx{az#8Ol^RdU;vh`BW8`1u!!}0 zVmZOy#@sUJzrPwi%M?j4he}bw96|^VH ziO~}SKzaG-Qj)1BY#yMCFf*}m(n}^w>z(lMPlkCaTIBd96(b< ze?-K=z+xe){cRV8}Skn16ULsPsLf zl46x*&~}jEH9D?c=Ac_HqxHNmN2J$oGyLA>(hvE6o$ir(gB~>skgC?`>s@Pne>$;C zY_BFLKN{gI{+NW6lT@$wcoK|Qb-tTiK{86jw|?U;8y7cMc{w8swiy>-n6_9TGB$T5 zNc51+V9hmr1dFy_dkZQW$--Ah#R2{*+}yGq)Ton!(-9E&c={IA01co*_ZrH3npkDc zM@Wdl?3Cfb?{NH_NJiq7JTBO5sQmAnT-e?$LjI!`D!Hu}H{brXWB%mLDeYjad}D=% z#Hi(C%&IpjqAP$15H&o&ER^MQxq72=?V1cG-G;*N%1FDiUYZt`z&~)Af*OzIZ+
~pQtd$XgYFsZ-@-u_a_hz#A4tyH^DWCAjb%0C?tXabG_iJY54wY?T|?? zgCVt-T@aq8K=^Mh0Px5%z2D%s(3eOb^w}#Mo`HjjyW|I$Gl*NZb0_2BrVEgs{&LSX zyVW|pIgRRcMG93_>c5e)&#Le&C0D{(RPDYlz96~7m>0E#@iC6ZQX5jT0ChJWG|`4G zZ}m-dMAGsjc**w>min7>4hsiyPf}O_=s^6x^TuD@Ib}w4Hu!PSJ^6t$$iFyTZ*WFX*j=(fRm1F8xaG3$7Bx_^Cmst&KWK z9Dd-;`fFZOIJVw!F770^l$CCtK`|%RqSWk`sQp460LV^83=c`(R?1}kpE=+WQOPXr zsE$wXyGNsIUjE`*<@vQ^PmG#^?%vYuVaZZ;)eSu&?vM^BsmJEA zJ*%3FXKk;QLP}qzmc1~$^k)Y?EUTT>*e&)vh)TA5(l-IpS~iu)U2F{*0a0h)9`sREvZ+CGF?71#maRA=(*Z44Pc z<4%VIE89}21v94#5K2u1v@)7Y=reunck<>{^(KaC#Yu?e(JW!moiA=vbv`PSRyL?B0-+d9avRFA|H1CId4>IqPE!$CyL!$r@u*>zGt%vRl$*R5Yy>GBq?;7w+O%=s zB$4kw&N=-G=R31$?XfQBgf?}5Ztm@DlZeX}YJ5tg{_jjJZAyH;D7}V*{O?)cYZOe> zAcdFfeSdG5BVttWF?&GmrMYBSxBkkDgo~Dk`9|JNEM<=`2}vV-T^{)VXEi1l_xKza zSR~LIEUnGmi#OSVkKS@LNK&C)*LKM?&kZ5B`c0?J)@`GJ-I76L{KY*T0+cObcv#EE zoJe=oT^mAaqu8ahr#~_<+D9nZPR+5<%U%N|w?1eUi6g(X|gLTp_85Mh!|5fF>p^m|3);aLDKra|djn4GfcF`I&RXQ{k< z)$xpKM(K)5sRopD35bWg$Z7vgsw3!`SARYmB>xPqC1`itlhkFU)_D0f`dmjtc49pz zQk{RJt&)85zt)qDM53AYlqG$}xxoxjScAQj37`tizrLso3W57SsNEGzRBlW}Ejl~g zE^l{R0Z_y5>Y?!U_u^EQR*sF%^L;MA@I2h6trPMlTLD6YgAfRiN8BLK=r|cjpkd_nr}gV?+g9rJyR*#+Iok@LbJc)J;2rx z53s_;;y}sR=1JMsRX|?Z=%qYQ%f448T1qjemat$ZSwZT+AfiKk``~fke(kY$IvsUK z_okOXs{~pBBIlB9UyGYn8#0s&OKTF26F)nH0F#Hb;zQf;4sZB5y)c|OtJqNk>~C+)4g7_`vSUG*B@?x}1@BsLI2d5y>avD`Ki#Qo zsf$(dtfG_%66t5%Wuqf+n#KOb^yz8&ZxtPX6uh!y+5h6G02BZ0v8_0E5=?X=xz7Bj zvbJ)6`GQ#3P*6#EAnJF+dw^B4A-Qvm^MAzFscuwe)Xa%qlhCBRv zkFKQnX~vN%M{RAUQGIJN<0F{V#dw*CTGV?IAA#td|LO8D&u>Z0s30e6A0_XuHBSW1 z4}|#AmOl?U5W7Tui)FCMN35;Jc+TOzw6ShP$+=NsorO)R?T?sIvOk&!7E+Gqx^k4av_>@#@(vRYVBPq}%}xzVD; z=`B4(fY~7?!9~M;AUj<24E?l{z12;|h8WCdtc8w6>~7kx$W@vyaAM}a+q zSB?`{D$LnRl+FbP(uEvoQsiOB(>*vJMVl^FQP$c9{6B=fby!@>mOk8ANFcZcClK5{c!1#U!6CRyBS9Jn1PJaf zjk~)O+}+*X-Qnxx+&eROe&@{hS3f+o?Ao=fYQ3`7S_s5^u6CPn6uGHifm6jtG(`^C zfA!xy21i{{o;Wm}lTwGO!e9!)E;BXCGTQZ3=Z^R7HeB>Jzsx|nFG z50b&@D!NP&BjM{=7Ww3a#(pvfis_Lq%k@8#65kB1SM=82K|?#RyYeypGIwJxSoUo= zh)FzGF(*|4v14bB=Vdj05fu_ftfH<)-mtBcCq>1KlArOG4e8G#3Q1Iibn5+cmlJ0t z9S71{mLOpwy>!>NND+Me`-9-i`SdkrycA^8@4FYaIPcLUy!yUQ6OBglyI*=+9~fpU zs0lTBhCeRXtyJhb9WS5m+31H`dq~b7&=^>}QxZ#xel6l?;=NZEpCvA@EMvJiI@Xo8 z`5dwdNu_^n`Y+{sh;hvE!j1|Qo!G&`Sy^`bXky(tKAGDA=?1Q)NEObh!SJ7gwX#h9 z1RjKP{ir|keDG!F#JH+->=%cR=#`h<5-;J;%fhp}n8KKVuz(pwOx5M%M7lD?fEqa) z&*r$D8}0ki)w)$oL`~Y>hLUrEZ`L2hU>J2q!ElOJb7!uYFJW0`!%cRf=JXyY5!hH+D%@AoVPFNBuv zcLgnfc2kaDs#mpd_mv>vR7xm;*#Hk9f35?8;|Z43I8(p*@Du-*~*pex?SDkxj+f^ zHO=)Q(B~HsLrkk0v$5IqUEM;xMh>r$j_N%b)X4ni#ShG!;@-fZ#w)+CU%f!?vDazg zCKd%DYrIm|2X&b^>p(k-;@hXpXxdyx$|maSDRDgK%5H_!9zIuoE z!nFgdq1{u*zrJv6pY!;8wmu@5u*P@~-U_4nqgS~;Gd1G3YH2H8o<45jJbFFrAQACr zCe)OpF7r9fm{@S&?n?Uqjbd#BwFbF4K&sfCStF<;R=Z`6+2{AQB zzMqTp6tI6*NJpoXG-~%=RFfmhLUgc_Nr)F^&s{!;^K$*OQ0Zg(lc6TYD2c#)ZtPK; zc6sL+kF^PAwHWrn(ETece-7}DFVm|1ofwo~Cq8Jrl?XUb{c6`zjG?jaws?nW8PzX@k^Iz}Q61E6*be+=HAuk22H3x=@OQv zMIlJ94@sS1G;tnG998uDUVmfS;{~a4vjZ418bo#|KQLBeEu#)<#<0=7gIT#Hqh+K`F+er2m{VL*Web3ACjd0pk0!y^#FbUXZ_( zWqg}iuCp4D?H8wsDzw=@-pd;MX%uCiQgcyOjUN&w+LQ9LE|O8f-0t$un!lubYdD<3 zNEs|DL#@mHSIoiwJLWK*v?f9QiT$b(oT&U9fSGNbTKz27p&(F-Z<^buEQu9OY+amE zc@c2aM0nw@adujFFaO`!FWq7?Z~w?`OI`yp0z2+b8gcvZ`Q6-qoLqCHWNYCPDvARV5V%pDc6dln~ z4I18}pwK>;iJdD6asp+94^bg!@m_Em`C8^;68FlaR(ShNp9#u}X9{IxltXNKebUS3 zl|iE!o8WIJ%WpE!-944>@kfTVM79}remZovkYGB87_9ZbIY%h4G0MTa9ka9~IKZD& zl;1K%9t>Ni-`|jlpHi{^j1;m4lWml^t7%#{1tLT&!{go*%v!pAHdd{(i)8& z@NYg5$?;BdC3)p`X!2;rg4lXN{O5nCtFRhD@|G;js%3mS2b5MoK(<0vpkO&cmCJ}J zJVN*;&a{)oD{8m6JH-$5ZqF6rmm3^PUd(}8t5ZqP1L9jjvqlFiPoNtP-w#^N#A-#*rwPpp&3#~#i(QniTN|18OM9~nURL{hlC_ij6nTL22WHYU($MKwT|9 z`~Axy2ptnU{xK&s#hcP&X8*aWfORC-Q(kW?O;P6W%KgjlriKvQMYY54H; z=PWK@K3j}T0sg}g@G{$dbn?w|U{V6fo+4ZQtTu|E;c1CTQt5C}gQfPve|Qh}ZPzOn zYbATaPhM$O#1K~=r~I79QXO38Tk-dW`Xn)L(|SB?i^pp=EUlEdx(Dt-K0?8$xTd?< zQQ7taE>Ze>Dt$D$h#j()6}V#h+=30QfKrU}I;fw8$p{L7noWl%|K*i?OP|18*F9{> z&gMdMweKhQfIn`5^2wR!M(tm*g;BbORyOQBo)O{WojyGimk-wQoBajWs0G?9zCkoE zcFwiYd`VbQm!H=*ApY)Rr>N=UOyI|@o{IX0S?U!TzUbSs&Q`j={oc(7+p_QD~+^{pv8_seA6%#!vyos7r261hg(aT3gt6OE0}1O zK+e|pN}|_Q`gv9w5`yE)D)6QJwBcjH^RFD8u_?N{TFHwWq*Dc`e|badaw6E+XxE-x zH$p4C5j45be)N;U$1oiD1^ATeX!;!ZZaXie@ZrliMBcYyq)P#MbDIqXdQf0OR?P%9 zF-RBy7)>@l)Md`=mk5$^wT5&MCXZ1UYrSI_Uhg@QYTQ%SDf(6iyw3Qxg7nbSD6g`# zfH^5pdsaguwa8?Zt>=EZPqZ~b@>ypwBOrHB?Kt^JM#TyVi3E1fu2n=^@>`^CJCo%G z4x7`u+Huo4cbfS8N4`Vvp8zlTHP8seXauSM_qh|3vRW9b^WgyA>G640#Ob>{@>{+Z zsa&1Ro-2oK#K*U(n z`4wK-Girm2RD^DN+Kez)!esP@CNV59Ui;V*zQusaNm}-+1S)Ypd|XHJGj$JU?Ui8_ zU2*Rc4Kfgms=oUnIJ*V-z%@RlC6Q~f=8&kmrNm5#yaOa1-YP$<7>`Um;A0{zO*e2q zwhRjZkMe&y339R;SkB>Bo~^E2OKaooTp7YSGSh$CvXV!_sl-9?&E09`ET*ukM&xZ( zC!}ucKN=TsQWKq1q78EeRBs1$1?K4tMj~O#Lk;4dxj9(v4LVERdqSQDZ2{6f9D1{h zdZ1L~5Y$#VUJpH~c*PgbiKc3(ch_XXJpu_&3-d73t&wL^D{v7dd(si$@LyP0t?SPYlAnFdN#n|`*c^#r4`iIQj_L` ztOw=_-rz-4z>lQ|F-AOh7#EkB1f*&Q^EZ4G^!U~ZD~J8+lNFE4QOnx@ChL$E5g>%4 zgk-^}-S)T*K|F~^9Fg=rD!9wP_?Hq~*vKMAcJs#T_I$n++ufsj_+! z?R1N_!VxP~(f_B5rNC9(LfE~|)AeLoc|6@h?*)qQiO|ukm>zAtwF5HeYp;fv zV45I_5vCixy(vwH$0>);v9TXfxptgVJ*>GLE-KnM*Z^fUZ@O0GmfiR5OI~c1uB>SO z(fJX-2Kcnq=yFEOu%$UjC!YL``#FDn!3P?kT=~ld$ZAr$T#+sFw-PFvl%jh0RqmS+D{5uUNb{NcD22h8thX-y*KYv;k?rPNUcQ$SD^v3mt3c%f zFyg3Ujd`Hx=i@t&-Q97N6FmZ3C)BU(6k1C6`(;o$Uu|&3FQ{Ee?g;+QC}3s`k~_k7 z+12q+IUve(57*kDLz+v@I|pz-cfRa)_l{ON<8LZZMN>CWI1ag+*%_TE*6B0{#*6e| z4JJUJlCkC0hC03J??swt8bOo4pt^sc@^qEZTaW6JJ-TtQbkTq1cx@`?hV3bDkn-=0 z82w4-?<}C16a@Yk4TVk#w-+GCTuKbF zr10njAMJ0zY7(`E`+_rxtz&*Hec<*$0BlEAh^adQ0l?CUkj!n z)06Y!0>_3g@%Shm?z7Xrk2@cVuG>}DOd!ilnt4#xy(H4UO7m3$!nSYl|8ne@GbD-1yYLeB(xFG`&HvDP z)=4N7E zY--xxlkOZo_9=uxk|LEG*A|@K7B=NjnfPP!nPlUc<&-HHLRS8o0P|V7jwkU; z>Pe5lsgsGblT#fiJ|QLlp(%ux*1PZPcs6+#oBJ>)eBuX`MUO&_{1x zbK-HUh-BpC==K_4qAxV?Ag29Z`t%N(YG8mi{rgPXfr06PSx3ms9A-RCVaHn-O}C>! zPq2x?F9S&2t+85{NeD0WCJx=NWmU;!0_n2`XV${d6H zC>9VL%#6ol4E$wNnqu4Rj>k==`*jG1T)?(q%6k@f{s>j1AESLkHIHGPZ%cH0M1z~B zZHai7?|kIU03_lWB^`>TBSlN+anorrN-#y|ux2lFXDjdg*)y#yJdn^5wUFui21*Ot z(gk;ld0E7id>ClLKfxrjn9CFjNkqzs} zkcLPjt(N+uWP{!ce6wfI(LsZzRMUiTUQ={7EB!NLdC9jxPQz`VWc>LPCCUbpv+)o` z1sgG#m@qAi6w63n+Jd7j3a}XV)^-fEt$=ji7XPe??k?D*G;X<-b{BOwYaFm;%xL24 zV*M`rN>UI+aU1%TXBMZEnI)^lC8uaF!RJ#TK)c)C zc~mGDdp8*P&bmV(Iy!c_{^84zImG7#M@L5wbStJ1#{BUffX@zqDW#6Gel)q--n|~^=4v6dlf?V7fZ)l4 z4;uA|_sN0O+%B1&sXjh|iy77gEveQ#&H`Hr&G<$|iJgEKfhjvy%IXoXQX1>0Bm$a(3jGOut(31p?eOtzeYN#;Tbm=A@A$Nas<+JI zZjK*pI zzuH8_Awlqk1Rks7r!j+xk&88I*OjClhyuyY{}%jWHX;WELO%oz`F=L*&Lqg|p+muA zAne+QbS9R)z<<`E&mkfXt5-JOGA-^g=|9(n_@|ty)N2>ohhw6il(--)AC={kwvDiv zXigQ)o3?fHgR_-p73J%$C<((xiINcfq`Ak6y6ORzz(3 zMN5}G9&@p7_q5Nzc66nqOefi4(?Y>xjHa80ie#kOM5$Vm4-ZlO&54D|MWaS_SbhX-R$0>Ssth{{5cikrB>K31C@QMtRX?Bp?qX8TP{`IV;2 zTTSj9xg@`=pv26BV< zh`ucBR=|;RHM2iJR!;GU>^+_QU%ZL&pYB?s`8)8?kV{m9*YedNzbIM-;U zA~B9DH$f{|QTt-jf1T*d>ONPacYwE(gZMH>>?Sr~6Qdcm^xas<+!@SU>?XAX4NCc$ z6!3;V1^!1k^f^yb?qK~45D3|9s~6l^B%^Bm7={U|$crjZF+62GhfO8c8~V^Z_uxvj z)@+I`pT}JzS{tg|=eHl$ag&VeK>a|o_miZeZpfvNYf=x}qOU>wdF_{!38gyxE%%z6 z=d2on20Z%lQ$?>KX?Do~g?$@D)nvIs(~6FMou^9u;~H4~*14$8cgF9tewoa>{Y1Uj zQkXl_^jwUPZ)bL}MbW^Xl-iTB%PW5!+QAvLtwy)#@FbWT7vK?v`BBC8WZ$ahWKrb% za0p@L_fZ^VHxx9X-9nPWa8`AhkJ;a~C=8g+N*#afdo}yNet+p`HqL|yU>Xz>Cx2)5 z{s*eiYj&LAD#*+GABl*f8ju%Mp`on~@gSPWXtta7Zkw?#U*AbFo+O(73NXb|AJy|W z5iiKw(;27TB2@1#3@n~)9!GXA_+`@sjlj#OEM`MzCR;L|hk;_uNG>H#nCF-M6T~qL-@0qNYwA2zW-?6!YyQ^JI`&i!Iycm zT{puLmBxF~o-_K=a;o0?^~V;^nYxJRV`jr?mnPjFXGt_69F~vP}+u9u9o2?8l8JSM8s|SA~kol9R!Ep3cFGyn_v9 zy5K+eY+^w?$kmbGeu+KQbN5l7;{^T{mikM#W$0pDvT#ysTq;9DH9OmR#wgAw5;#&s&)9D%ivAkr3D=hCx&V!Bv&$FQ}mG1a^r+iV}FWuh|qRk#U(M%}(f zQhtzsA}heFZ>mrSM}5?BUou3q%b1W};P?w$!^ge;6#KJVvkq=m2H5HTz06eN-%|(< z<&40l4_Rqul*m0PU=Ce$?x367$VA*e0TpfFvh|&Y4N;#^GW(JMMyhP zG`PjB+-|I|sDp9@<0OO3WLOEc=!t$`gGvN;jN8?z?$+_d!yKsWnQCIzv2!uB2AMnf zp|!iYHl$yo?mpgT*IlbfVAu|Sz>;Vt7jj| z1a+6lc66>Ni$wuC(oSC$my&f#&mK`?e()_Xcs=2x%UdGOCV%n=nb_TSf1K-ME|)zg z4O!-)>2c0#`$JCsqA=<=@@TCzhIY%&%uyVVM*^h*-ere63N&Q!V2cYf;nUtxMGzxz@m% z5B=yIaKn6z`CPZfq4*(?by!_gKv{m-ePw98fO}kBj8VW~?*IUVd)7&$KC^|49~c!0 zMmIO5o@&k3WM-GwzXv_3H@y999#}igi~Rm@bHQn#z|#iP>Bj6)G5c-h`+=E*Y)L*|NH^ZqZxud+h zGKCOj!AkC%i}0M*n{$4H1P1i-w4R`wFO$zAi21!&!o>;w{ek+&%Q`kM2}ylMDcs7T z&9t81SnJydTdSQ|;d!NZ(vTE|K173w+vEUuXpPgGvsKU z_#j=iNU7VlfO{rlaU(%8Sl3$RZfRa}(OB3q6KOf$4jS!3{Cs?>AH(3~sKFc|#HWMn zd-$h-O?2eS*s|hH*U4d4BSPa6@OZOpwu;Hl%}wMErKng5uktpZn}RL83K=~6_m-bx z=jxx#&G7@?T4?8cTTHYRE+i=|`PuMivxHiQO0nZtFj$6@BLe8?cEb1C4v>?FFCV*q zW<0$+{?=v6#kq!~Y$l%0fqkMhKAz1=I!E|9iaHJ9{~hxj%G768Cv zTqi|Y96zpfP~}8pcbHqILs z2W1Es=Z1ixM{{+Net{S4cQ<&W)yHs0W@hG#?NK}98oouTvkMh1YbL^@F0~uPs7D^B z)p{x*p;LmTL;a`bo@~9W2 z2(({RP_>4Sjwww_ix{mmKNf`RXOmAFPBp73Wssx4(T=S$7J6Z4=Z_xv#oYQ6y5=(} zR80i7ro!H6^#~y6wl^6?^1Hl}8oZ>ABa@L)SK02^#QhB@&PLkyOwWW;M-In{V5-5a zKe&$-H6gJjWh-6!R0oD!JHE{A>braGUL_1&85bn4X_T_y9Ib0~dcqICw31q0e^w6Z zt$~!%`D0}qd6lC|lF;6ONx}~aBe~G^;*$*f$_m4FRc@L2G!ax-`N;>g*J{7Abq%)^ zNQw>&-(Gk~ss?`V|pQyRSc~WYD7`47A1}!4WE)=y+?M0C9JKf zk*YbCP^Gb>80e{U);a{O1H+1f$02a+|3#|&vbK^qkByE;F6y;=D-Wx;biYrdl7jEt zImL8SspKmqCzGdHHFcR-jtBeI1wX1bR|+`?Wab<3BPDBFeEz~s{mV_%Wb{H&1L@>0 zcPBcS1M@OP2~PK?D{~0jR+O{b+PR_(sfIUS7mBdTZxTT+q(Zx!#+n|S%sv)hEzR$* z!2$enZ$6oF)oF~?j%XK>4P-^+L-Bgv%4)oN1=L+itPoluFs)AyD3o?SxMXiBEp0@L92IaR*M#fIp^e zb1q)`=!xk>$I$1eZOwJDgiBPgPE6rirl)fF!;*x!c}`sH23kpd-A!|9fRk{m?JRUm znqJAE@lvX*ens=J-uIzm>B9_44-z}HnVuExg|U3>%y|nKuNyHvQPOW6)FemR*YAqWT59;V9{RSakg*EL z85d8uKRe@d*9n-LZ>baxjrYaJLdx>IyTNb{#_mbQS)|8eQ zUhLhqF(1c7lFzP%R8cMIbdg5c$WYr8flv%gbq%hMVUu$~kgYYpfM%TZ+xqwBOOxXj zV7FWBidzRbKez+YSd_28JnSc83LbpXHERvsaTg`vwRKX!K(0OK$wK{UyzEgWO%QGs70CCU=G3Rd0 zlIP)Iz;2~Nq@p|qUScD%+0w+74;hm~gLKN(ey+s05Cqhj&c{NWh$^uaRrk zfM?%byD<-KzIF&s);=n9ox+4XV=DcDlP7q)&ZgJ;W1M{S=5LnYZMUpAJ(wK%&fL3J z)16PEo>RUo_C{mn+JJeS+#D$`p;c|-H-l-fNFWbd6)GnN290M1dB6dM*kd+MoxN{s zHA0jaJJwyH)IhFP3u9`znV;sy&iK8gI}@kb0FBHtUc*P=Xl&UqvESI%-N-tMsLg$5 z-b{bj%A99spzrTsA$csd19BEFxQm=>3vI*xRP@v=TX)y!66^OroD#s_ww6M@PU4dY z)}J=a{}Y%< zEKSI;6Bev4Pc2xk)CWPQsO4 z&A|MQ|IeF`_=+fgV;5qprl8;0MZlMc39^N}PNz_mI?=BVdk0Ak`t!r6_g~kt!u|p* zaAfp<-m~o;f&Duymj||qA6&@CKC$h|irN875q{(aw!7yS;UWh+qe8A(R;6Ritncow zgY!v~Jp_ATBR2)nEw8S~zH2MnAWn;_*xj2crRQ_;apsNPdMyOXu#!E8SAlVH*Wce( zn4pCV%(t2^H>W0%J#m4Te8+uno)#u$(C%)R(pG<}eQ{e~h#dP_2PFukq^XP_{~tI9JQ@|iAUR+A&}0lgd6=qU8&dP{=dQPVu8Fg1#jnjvfog0b zxv)!(rGR={DJV5_uRMC*eH-Wi2N#Jq`E4$hWJ)O=%J6{t?w*v?NK}WE2E`54a&@r*xpb~gB#lJ- zD|_!^948DYz-X6*+HrJHj~xDVxxK=Gs%#AY7ii%Kz$b>S3Z^`Oms|}$*$-56g6t^u z7@ZY1kWq#Djh9YN124#F`V4HaG0bnqXVD>zg4KwVgpzM{vRs_a`W-V}D!Z#HCn5Be zpHja*NECup!^g#g^rxIJo$qgmmx33F!AWuM;q)~ZL|aqS1$QrpIZ}#pCrcov=i$m^ zbd3~ROuPnURzD_|d(N)DI22 z*UK)5!**grC>NY6`s{)R^9=bb>BUg*6;3JE4KDV5yHryZHhOkwr-c~a#uG3uP? z5y;?&v_h#-?vW97&ac_EMJLD8=>AxK8SIU~o?c&gvnwGy->RJ;sc*)1i(I1znV0vI zgVCZIbbS7@&&4S=M;dly3w`{Y;Fa>1(_wC6eON`i$C9$%2ic7t20P~U2rOT&($u(j zrfU2=?~H|GOK+maAdl!az1x|fBKJ*O2);|rd)A&Wh?D)gD}311o?}8Z_D}K_6o65Y zfU(M*)ad#vl+**g-dG&|`Z|lA>IJAwWfvCeeyqQc%g}++Kx_&dxXM0@9tPm0hgh$I zq9HWV@3!k8KnTf-Qi&&OwVAoUvrl>P{mBjhK&WQNO41SRgvyJ{OqW@dJw5tz5N?M5gtw- zAIeg495=^RWy0sPDNpDS_tasv^=KZnB*@eYoXSRDJ(nWR3*Qu=_MPT z>H8_Rxx`apu(D3Rk5BeAB)*kBcFHqre}(&dFI6(4PClP}D(twyxz@tnkE$}A4}9&> znNc1(wB#th#V05H10KOJtAiJ+Co*bVx|CI@K`Y(*Ba2Jbt7 z$yJS^@noiup0qb9i5J7HEq8p^mi*lVIxnNPT|=j=8X#1nosA$2Yk9d z1s9f9^EK8$I(^63IRLc^=E5EIedyEydiq@c(kMF4s}4CkoT5`EJM&d1`^MT>?)WWg zcpt!US;ocLW50MWkgm8y=H|%Rn8h zd;nBc7?`~Be*%#gw~&5ByhU$H@|%0gR?%b=r+q|`Zp;@X56B*i zr31O0ovC?hzjk-?nH-zMu$#Mc4b0C&+v}PPKzR)}0{MI`Hx}md-XGbA4657>w0i13 zZJ-GHh+Y#j8E+Q(gl#EGpuqv;BhE)!;ksL38un+@YpU4Tt@U>^fbA!$jPFXn#>0KW z`LOcs^T(UrFH5nX_g%j=GJz=;`_chk`U^|K%HKA=eua=P%8RYGN7Z?iau(Qte?hoc zw;E*yoIf=PHb*kz>9M|52izj3U=iEL#XVdLWkMT-Jy zqJc8|)2ha&_eK;45+m8 zQrGcW=QfH=jE69SIfCZ{Q9iX5kMCse$#|HXXy*I-pZd%I02%>C;=0g=LqDW3>(3>5 zMH2@eUy{DA2^iX^)f4&mdpeoz%m>+&wEl(cE-$kyPINp}ddtSq%`5ho4?qt3>9DgL z?TIr345_R#|ulBzt)JpAsd1`7^(x8~=l=J1PkB$S%z$Rrv zVQp=(QPGDOH~Lg>7VQ0w2hz7y!yrlJ-SQ@df;FEdp&IwsKF48W^}VTay|Q?r1LZzP zrQG{tW@+(wl5iVePx%8mq>qbKHWGv&a8DVO82cJo3`R0bq~eusV}%ylhc{J^KD=YT zZ+6fJxTO<`$Ft2BWBU#=BXCwMw-M?tgNk?&emGXkFbzJ?r<8yU@2<%wSScA&=T{`N zk+r;gwuH?*JgAXu{DK7kk}y@GVk2HHxp8$_Hl8}`xP>j?FvNWfxxrFdM*E*QQuRke z+8Pqe$xdl3Pu_=-w`9PGNBj8>DNgXmYxVt$lO|n;4;MP(NCY9u@2Yc}l2?WhQ03XX zVk5`HIlBlg1MY)Sh4R#^7vt6a@?*HN7Ms*=x9f$ZPL|!plQfc=Uz!ZxST?{8YH+kO z-^}}FRU~S@mSOOZ-Q1el82h|G$F&=~)MU$78-bxS6+^2SH9{6-f5CsKn+fGb5}<)k z{AJqu>rmB%|I2XBK0kRI#|byP{n>{`oCV|JpUr9+{aC2K6~_JRxk7atWa+I=aN~Pc z9G=#_B(mzp%iZ1v$4kTUJ>i+DhRfq~V=b=t4)&Gwtx551?93eOpofvqFFxusc!8^? z=A$BTk@uSkla*|0a;?`70aZ2pgbwp}HH=)1H=9a1zSRhXrZh1?LUk1_JQ+K9&5A$k zfQbIanJIq;r1!8wmJxdl=?AHPDmh-#C90d1+NJ@H}p zF{Vdv*XCUIo#@|ae=6#7L=zONJhi~Wnjy^;zR3aUVv?ul6%)lxy$r=1mA;t2Q`|1z zc+U(^M3lSOZ1U%{e)*uM*p)B>gnC<`XtyX9w#Q;%&>7v7<#lXb4=|KQW~BH}={L!Oe6dag#{I4Pe;OE?i~lk3M+lFK*5r`JPl-jqbM3wrl92dOIW zkW(l9l*p|95zWf5(fnkqs@UpDeK-<7_|9SOo8Z#qv~1;@70Js=XDK5oyUd7xUK}r6 zmfYZ|Bygn}T3j1LqitUh3oLd~`GO~73oqdMClEQ*DC_w?d7W6LRdeI{a81V@uG_sC zpwalUa*pQlN<|JES1Hx`Y4pA>*;|pTZyR5O>wYAOcW`@Y2YKNAuD_RBQmE)4|1ZqI zPO>AAc6D^B+Q`mBOwmf_b;_(Qzg+iNZS@AQ_vi+%!9s4-L|mQc+iIFOZ8luT?}u+NGEwT&l4=3^)`Fz z(snnR{S)rB%&-%r%SD^GH?ribvy|o1ocYY#{#zqfPnDpzpw+HvvJt?C5Wn!GH#w}eMsz$s+A!|bIQR*kocF9W>?J*`M54e%noHt?lFPD zjl;s|ZoXBbIUF(f&SY}L0tT(QhiD=^{R;1VK}6xc0;bH&)oX|frqM8+>m4h=Pk?<^ zVYhQvx0{g#Y8F9X!4%Jaeh z>JbnZ7afk5ob#scW9md)Ffd=oFiy|TF_9}+@6B5gXh41Rzs`sa^Mul$DP@_N;!>@d8P^BE{RPnGOl?)QZ%W%&_CcF zjGrBW-BEC|dvbXq(12Sjz|YBeN1|!D!`EL}tO7(i&G-j=<~gw{@()1EIy(bcY6E_n z@p(uP`LLpRNXX_9?jI3&Mxgz;c{01(v4a8LQR2m*3~Sr)yD2j)goq1qS*gp74|#F97#EWLDAZS<2D-$#g2lH0fmgF7YuEzJ>QZF zlu6F3DhGOqrADao(kB% zCI0~umB=+Aw{UdllUY{RI0SyI%->CyU~yKY90D)y2p>>R78eQKAy9(9&W>z^!*KhZ z#dnRngT|hWYeo%mkrHBa?F6HL#6ZhgahpmUAPVHl$(U^IMT|zn?E^5!b8b-V`M3PT zHDaJAZ}X#)(lY0+msT{qg)42P1e?$#L>hPxDMDIVB#>rl4p#&!3GPi$pSyFu;N~_NG67ed)-uj^=U`dN^DAE#SUe+>;d@u)D6w3>1kIUgX6C%8_7x{DVGXKE+D7#SSp2WKX2C=U4*A>teMK?4v6xC~uS z8(?x-`C6G3v18@y18e{YqvVGdxXlIV2oly&+yy&)ui%FYh zk3MIeSEW&m;+&bL;xX0Di;{LYTPL;i!T?Y$`IHO{@MSm)ca_Nwrl*lPmX0zw_@$zJ zXdn>ayuSgm&;v z!zV@t)~XU~r-I)R)}PBK+#HIu5mvSKs_COaHiMyM-U>5GiYT>~0XcwAA1S0kAgY#< zTbMpFSu&f;bf%xlhs4$ys4S{t#lz4joG>fR7$onmiBdAmuj-nbzp`iM?DGPv`gNZ{ zyR|-^lsSeHhSDvuuK8L8DxaYyBU4u!ztyNb&{E%F8IddAGUZ-a_Xv>8KdoAvhCh=jJW z8$$pDY}jyE=~u%8y6CXJ>c$DoaFEta`_ae{fJAPki$|lu+9FiXz|0J|=9}g9iV!kVNa3aa7PmW<_Z^Z_c>$%Le-qm* zDk2(LI&pgzN3@iO6tmm~4m2tj((|t}5HW_yV;$q!1hS;2;)$bX#K;(@Q_@HoOHps3 zb%vZsy>H9({ZU`v!p;Euy%j=F97fUhp|RX*zTC?`QSw}&P>a_)J%4f-JS;@nv5a4= zHxI@!JDgB@TnNpKvtL@Ed`fC}CN}F)WTyw9{zgMjrV3NM80INmtKre?%6?yxV??m7U?QaDRy0OTfU9JF@W|`fZqL zVY5jc`eX8YMU=^Gh9CF};Qc`v(t1iqo8P6m-7>AxBc#{oFARVV$iyQ?NLjQTco835 zy?0dBhjm~20-eMFRjFaI>5c<>Z>F_lt-=hO{=dD6%9@(8gl69-H!pfK7Mm0S)*(w+ zJN4a%$9Tg&Jv^N2iOa&TleMh!XDihzn?SUPvHbx8&ceq0z3Oqw71j6eEH6rw$c8Lc zOP9GVd>#4@^^4j0OSy)B2QOWT<}Ej`G6R9E6B8D&1aCu2pmh5XO<_w@a>)!XmU}_c zp5@}dvI1GbJJ9bYXMJON8$F%`-w-3DQV<1jC1))G6};4kn6CRppDET0NwJ@MZ zs$jbryQ2+j8(qoTp33`Am!E3$xcMxXy1as2()#3+<(;yJYv`|He^#)maw`7!e?%2} zLNrSnFm2_#oSa%^9PUQ5c*6z6@L%-gNPnA{#Dc^$y40qhZL_;yBvMibGJ6`ST;?PH z-lSKuPfu2Lv`|k$d8Cb}BaeVL-;JCiDiVBYx7xg*)&4g|JOrrMp+LP(nvVE*B{#A# zV<~F(l2AL^Qq)qXoWy=jO+#sy z9!c?xk!y53i&6P3lrAl^um~*jsf7$)3o`iCk6~Y0gec8#0_fKs`e*NpdHv`KCvs&} zxM-K}8T@49@+)ae5Fdyw#fny3P_7 z$Pu?I#WoN8wuM5!oO3mmhA;t^z%}m*V?27e3sxOXl!Z9eexHN9!Bza||6A2bSpSgn zJLrf*AuA61F?oX4(kccq-2MIlF;-2{@1XbZENB0r;OrI(s$gzQ84cO4RvhL^II{%C z6zhkf-XlQvj;hVaCVt^3ciNYbFW+jEx5$*WbhsWH9fPl6^&rwHNC zh5E&nRaR3{+UAP7k)Px^{pRk&ve3;`8ld)25GQdCCn{X^kpa21c}b zj66U0=9vGT=Z?DUo8np6dSF?T%DkBv6A|KXa$F$_Zye8!=m5&w_wue_hS zSQQ^n8soEHw+W4oFmhXf>f z@$XfcEOVo5K#YgSOpbsxpX>kw6wk_<~~}nT8Gt0BE@FTPYv& zAED$Q$^AwlOXSmobfVu^f)H%BmpS1drrZ3oDq*aenpO6BcoXjiCFr%CJ``1vqvRM| z9B0w2-JMZQRY8O!c(!^rN}Z?)wYsu?rqE)gyX7Vt%ub%LQ#( z*Zs)Ak%iO9tPAuS#yQZnf)le;YluzlG~5|wNlV&LBkTylhE>1fTI8oxC#SnxgFRe0 zEOQ~C+R0dyU)79S`Zm?dy=)uS(lU=t8`p8(o&IxOzM`^5{6NI3q6E=@SbR04wb%pqgeV2gmPFpk79hSZ4R~{@H z&$pvZMvVO8lK+fPhF}2=RLri|i%~4K&uu`$w{z$1lsL{ubxu5b(FhUPl`^O2ge!*N zfG_rwrtSM9px#1lBV{d}Hm* zg6Foey?QS4KBQ0b^Qp1DZ-VDRKOtsn?Hakn|36473DOJVg;=A5zkObACgZuL*U4yM z9$yKD&1P3!oBsbe`^u=gnl0OdI|&e6gS)#+fZ*;H++BlPaCdiicXxN!;O-Xuo#eaS zeZSZD_UrM+;Kv5`s8hSDcAYinnsZf(L9*9t4LjpBxyxHw$M3HIMfHa&ZpZiI%hw+~ zDgjT#G${>)zWCK9Wjl#0f6EK)Ip;MCpEPQyaeIK_d29CQE=>Org{A2~pCBdn_Dhc? za64TaMOT2*SdHd4#MyLYTs>;dM88F50G^&RyBO%ap~RqJ2I_$nxm)W!H^+*Mx!~M9 z!f6jdvY6|XL2*KF{~C8b@3qXu)#;|4QV0ou9(Vxc_Z0W5ami}Z1}&1$az#PCg)~Ip za$r`San7rGtIWQiwbQ}4Cb%Szv58QfD4=?J8;MXBS5wXz0|4JW^&ECbgbX)o(IK2=Srmct z^JT?HN`j_>d%Rv>QFc@H4_GW~rIw{D*khgWc}4cli8c0AMiy)K`<}{bxgsYuW#u#k z4~`8ufWtPfMTH^Oj`VQ#7M?1jiY&stOfR@F4=9Iu>uopj|H=)Wi~MJ9sQ3)`+1XA> zCQrLC<7_^YY|T@6{<$rrID?Aw!s!JpXC0su%BH0XJ~=&(hqvig))Ph%Ugo$*_x|Q_ z7s&^XfVJ$^l@wiz$eSQRBCMDjSw>7VJ25+&_j4t`)ex9#Qr|A8wnTTv79pA}wG(5+ zfCm7ryjACGwRfzZHg4!Uz7F<=XUkK&(E6UBVpk_dL?g z{$Xy`R(hr3?@UrnxZl6QK9CTJ{wXb-vUXTN2s1efRgp{E+8j_@`tsyDt_kvK4;`7) zRq9tn&_{GHF+#3 zPnE@2*_x0MkHVj9;^M7|%y9n=Y~vgaFP;>iVWf7wt$Xv>+`~rE1o=leJrgG6~-%4vY+=FXw)1PFVj`8KA?9N_%4wIHu@F$k(n`@QBFI0VtF7T(p z19L%0W(d`o;yAhu7>;IQ^ss*2MeHMS|+CTUvsPftC}j6_qnX<0XE`e|*em zR{Wq}JTyrMN?ZAstSJ7M%T1!ledB4f`#7#X0rK<5OPGp-IEY-F&E`&^%CMha`FnXO zs#cN>ZFO01-s5Mj656HRyXm1&DI0@5Q!)L_jO|S)oc6er4c?>8PaV%+xe`iDv#UwO zijrF#Z)Ro)L9lp<&_ViAJLNtt;wT-X_O@-#9Ic2ZSnDwI*l%wazm|8*eMW=MetLXT zZ^A54-jA}o(cVh6c2ReI*cV!vTRDBLE~WO7O7vD66=C1kZjDm3FHj(0ZpKlMNz{pi zVktI0$kK4S>A5pX`Weg2$l`tQ0bl&Y%Os&bRh8-NcB`}Y_wPdQ6Nj zwsi_cvjPXk!B`L zgm7o`mT&zQRquk0@+*56s2eiU(~5@&(AKx29h)$E|7N|JAq;grn#3(<{_w8B+jB84 zF34EGeesliXUhSRZx=JpR%dsc$@V>Iyj7==Ixq_#RNImhi{TldK#m+)_ux1$@2bs{ zd7)C{8M)%D*ZatgDZ0530W4dK8Af_2L4?p|{3Fp~*;7w{>7t)GmS~E>&Z%Cd{48kh z;lP~9;( zg6|Hu-Xm;!(K=a!{{@x)N#iv}gM(xyYg@q)7cqq3b$2k0XpOk4I@;OG{tv|aqT>Yl zvo?fgzYqz(pX^W~WsG6L9QAD1CJk}&JI5G}*RWS+#w9%=VwCeOoY(qG&LhZ_tWQG~ zKRVGqjV58GqzFognx8$*9f<7yO*DydC$UORvJ4$!F70v5Bvd#$r&j5i(&(X9Hs2C0 zjWwQZ4ou8MHYFzk06*pThq9ZVl&Xlle@)Nba9qU$g4%fY1KwGbWQ;@qBY(r6%9SY~_%C zi}E;*DMdAFYPM@&Qy@$7Z~{rl`O$fP9jGT1WYZ?*k|wr&9vJ3^< zC9Cm>{AJHdT!Hp4ApVwBC_d-u>-_TPm;Z8h{S9XSzRmtokcdW|H2%{l@7wocph(ix zKCO}Z*>om7OfOC3k0!HBar~NJVqy}%<7hKvcA#hY;a3N_=S5k3wQj@Z?)pF%j zV^_M~XE!{vV=8*50s`Ytd(w@z&pFJHEn>TC`%j zcGO5cBaxTSrhH6{eL~)|guj^rse%D_b$_P|;nD#Pl?ly~C(7Hh2&P87B=K2(p0JeK zpSC;`QU_@%Om=R1!sC-)Z?g7MMKxILJeWdqj#^T@FpT^XD(--y?8py+!fh67-#1hq z)HEVs7bVa;-G6-{EdS~eBeBRelM@#q2;>f)dPh9BOOo_Bn34!o~I$x@;)6LWJH-r_1d3`;0YLA?JB zv;pF6<*~FWg}Q^O;Vo9p;oMk;>g?JYG~o!lJ>-#w1>(_{lf?e$V3F<{<2y^uBnZI& z?UHi)H~B0G{V~?=QD^s?r@0zKvT?F<9MjPvYQWYr2T=Ry-=PkibFs;Q$d=3f;W7HV z_lp8uR_m4Wum4Ie*E({*t*|>MtyrHsG=WZ7r zR-=`(=BBiMe0Y7~|KJ|_8ZRK3XLVw=p@)JDP+zWQ^6P!;h*{Vi3j?RTS&BeWo6v6< zyPqZk>B=rA@|yNP<3fB;#WxYB+)(#$_#4`ovI;@R`7cn1j4$`k8K~K0jk=0zHK{DR z?P+e7Z#MPeUjk^flY#tSwv1FLAI>r^86Dng10^EX?*9) z^OQBzyR_tR%utd$&7FL+VrdX)5eZMX^OZ&Ey^8!b)rfc=J$Lp$<#Y<8|0$=VFlnyP z*udy#PRB$+PjuwFiyaAlfX{i{F$^d^**dE+H|$AI(=BL$ZB(8}5s*;WLCfGyT%a_# z>)S{u>BL#V_yd$)xm3o;Zyp}5&h!ckBgU0}@0dJwE_wY^bEwHFl=uR|Ma89HB$ckc z;Uk>w=YjPUXm3KKP$?(2MK8vQP8IE{4=2{tG&Hn%;vsSE1fu^W6LTj|^wIZ3f=F{^ zB}B4_fK-f2oCOMl(ZsziiOM)OLi6*-f1t;JVmW-WnlEkJKW$CaL1iqf^H0IQfB^kB z`ZqIto`B!O`%v$aH&5W8+tb`vgBZIX=unJ>VsQOrvfJN+qPV+<3aZmpx=bka+ZWVY zjs8yoIR&Pm)>Kpn=l`7tp)dIFc@TGSO|k!|3-C`l5v56^@|6me`0{@vQG0Qk!xD($ zAGM8v0&et0Xqo0a;0OS4v7&`U;r15yYu6viOKP11d&oFa2rWhY*Ap3kRhzKVgIw%e zn!7#YLwS9gWV)vn{JCo;vCiwp66zXT`d8rxJ!38T;e})Us_|Coa82&v^Zo`kD!q&N zIjWZ8JJ(IC`CU5`G3^dtBZ0pK`}gKcAd4=K9n zUAY_2`L9(_W~YJ@8Nh>rv;03m$e={_;YiP%HfUjl&}XEh>R_=D61Q(*Kpo4#^gQ=Q1SNFg`K)ByBMB$-! zPvP;11GEuuf_)SW_+c+3z7h6yO7ITXA64y9X(dCB`$oI4OYu{OdSdYWyJo+iJn9OXtHxf{rfM?=Yo^B>exOQevn6bK_w-*43wUH*V@*?7+C_ zFSp4rGmZZGd6Wd8+XTKQX+kPP2-qTY_N0>1#pmA<+($FY`Sw8e9N0gf^uHAv^;3;{ zrZ|x0HtEK?$)f&voY`*@4Ie@M9f0I@41JaGbY897vX?fHt+$d~N97)ybS}!gknQBX z*C)2+qQO7$l9>iGsi=K0aco%W~6ATjT^Emvvu)KbA_L10ISJ zhiS*@w6#4ej%yqd1zGb-z(U2D2juO!(P$~6WAPYK?EqeF@DlxSb3&=Ljhfs)-2C`; zxC~>E6|1a04bc$m(2kqG2k3A#`@hST{w`5+YaRRCy?xAlGn+|5{|N@LD^FWmjDA4$ zD}%|2Jz<0qkw(+8e0;87XdKh*rKBI@DCc%?Ilyn9=B$U-^YwK9aVNDvyN#2_qM_1f z1Y$X=hEVFY$JsSu7I2N#3<@Assod-Ntq(b*%D$!0arKzJjUP5z2Xjq6zP?>n8}y0@ z=X%b&D??!7QB3=y&G07_q)?N6suifI4~O@mJgD*Ro<|La--I(_zLTP+dGybZk98}Q zMw0-Nb#`N>ZvZ0HXB%uqWyy*PBy_;1-9Ia1{0mUrQ+3Ss#P#|dX*F;bIXN!DJA}6S zJ@VSje0~kAt?1UimGwROg_wp)hEm_|uB>0%ryJz#ZWA2Fp?eR3%1P5RnT8^F&V>*v zGW)YYhw|yMG9~B3)BUm+Pt*JR>AJHfiZMRma?@VzBl6cJH%`ouZNdC=IrIw3h?e^L zGmY}xh2lVuQ8yXQ-^KC~!gW)0@{{Q2TbylRT3* ztp~$5KCpXJ@ZPtZ5b@_v zUM{*5QJ{{wHA+zKIK)P`EAZC6NMF9oXN2uvf`gv05}}Qs8EFYW&c+nwN_cj3r#3kx zcYkmb>$>mXI{nfJ|LSl zD;6s1Vg%@_;?6A1>Zvt3-&-HuSxlA;HfPXW!-aDpARd-n!0-aHZuIf^XiYfvHw@TN z8VH~FezXsIz5ZBfdW377AtoYP%+Pt6nv^u@%jrAX8oamA7Ed`#+0s|-=qQRZWBhqC zO}k$*w;C8hotgMLtF!qC!}5^03lulKT^VF7P91f6Sjrgq<1Mvr6$(x?sI8P~Fr5~Z zYtYjP528+26gak@VacY(&Rp`0vUXgj@ftQaB4o;j+|E2Ktj$7Sm&|8B}PS$Ah)u5mA{5t!V( z6)U|N`q`sxRGBo*&4a}w3k(Eso^d`9W14!OiMRAUq+ptea%Z!=a0f@!N}YA>2Lxb( z7B2XBj6}2Ef~B9D%WrwiP>pb7?vnKzY-1F2SK4 z+emY0DFE|Qypj{|)t;V6w7034M0?CT6PsbWQgBisjQ3`sOOT^qm^ zj{2_%C;SuBKIc@7D5Rs?4d(C`M;6Az+cRqg^+Xb|>R$=-4!EjTRueX4T#5cQ83}}E z=gqyw=OP`$NX1D5g3>T*)N!%^rLxGd_SQP1KyHs{;pUYROS>cAqDzc9Cu!gzB*`Lu z4cJLqD`3zVm?Fy=6vPjC6F=J!_4H4;d^-lQ$wdvHlv949TRfAAxM?u*V z1{XlVO%X;1CGcsz&;PtbXOs&?j0NMhH?UOls7ao5k&HN`E21@^nwL1Dw= z8%(-7v-xt3+GxVKdQ;N;>58t_LOBf<;G<97Nv^C~b|O9nu16a+)osGZ#i6K#Pr;NP zC@|csEJ|%*V?UQyIoR8tjje}EOAqQ36!Nv%9qXs+y)InauVkOo43e3zusPo!s_`Bl zta;*9RK4NTcvI`I8k5HroW^t z{n-t6=zGS4{aV!qp7g#ZG5Uc4f2=1j;)+91QOrwO53*9m7nnR^HlFpMZq^3IgAT2F zb}Ew3-LeUZ_l&nA#Z+oEo$ALIine88F}p?ug(^!5`D;Z=+Qo&R$%@xB0uf2o9WQNb zQLvCn9;?}Ux4Tz1-(EckD{iv-eMqrE7pXNSwVroA8n5r4LZA4|LawPcc}91bxcW8fQSev`iI6EOkRVP9LrR6naB!gYDy3x1+Iq)6cw-K)pVWjYXN&4PWM@1 zXU3j7MfCKI516ZM#^xY^ZP#$M_61Jz!;$Im_kA=4i;QHgS}UfOdPn*hZf}v$p0_0R zH`a_@$5~&hws5E`i}djxnet!f(A}u2>~2qCIy|kJiE4YGL#_AEr{?qfB4^j)Ja-&0 zl%#5xhim(@--Sttb-!7h9dC8+u1-spq=*?NJ&vbj-p$6OcjDWw-{u$UqUuaz0sEoV zJYsS2Cb0?{IgCJ^`WT_j@SVT323fIF(W|%zxQ?r^gk%Vbj=2ziua*Ga%s4SEQ1SP! zNX*~=1iqi>YqS5~SBW3o)Z@M=_NpXK$yX=Mywnf)%7?&(D&3{Sp5|tM(hJsnw?3KH zXpcD{<@Lz;+<$=${3!FNjT2Lf7`n1|qo++axH>*dg=UraGzRHIj3brWA_3AaBxI& zwnx7et#Pd;zMxt%>FSCK#9L=%hY~tXYB|N@T|Gw>TkX*u5J_?&9)33(*9mRBVf8pM zUYIH*D)x_kf8HNT{V;%r5z)(fhOrt4!u*^PXk;ynG!WEZ+XH zGM{TkT_)+?T!RWsSkB1ZM>f=%P#`=ah;+CS7d~L;5*6E(%9Qc#rDoo=h4j7smAT6` zzyIo3kCMr7sD}>p^m%uXn*taNH0vyEShJio(xqVlx^~rG zR5ZX0u9wSL0w(h!(lxQmV0>B0Bb3&& z&HPy^v>JPW&7-YoLnGDXw%hfX8a@2u)8@vkb6=geHZ3GpWD;%AQnUN}-I6B7XpK_lIZbE}-MU0} z`b)t?>e{Ri1dv?%@z!kSY@%NARl54I;k-j<3}bO{9st5Woa%Q2I%zXlro+$`4Xo}Z z-rQtxZ@a&{2?nKRju)J3XsZ%=&WG~GO(7#hEVGeO6@L%BlG$(pr$DcHi!0%%VzJb6sOrom}!%Dhs@)ggm}cM z^{q4?UHB7#``PguJpe#&(XrHIs}3hcM3oW&?L86>zv1>%-Nhmz%yNHUSNV%yRtb%g zaN>@VPUYNgz(9VyJb5r@%kBYoTd+jpBbOrP_{vODtl61E7$k%=lYAs}ZYL24fWXVc>?)G%rY%7F{mk5rkm$B+1A!0K zu3`Kd#f;rRJq8Q4+>FioPPG-C3+;kq)BPoeZ=iFd)pG~GVSMpJ4G|zJ+I*7E^U#=- zSx;{J_EO)Cm5yZGY5bA_oZbYv%BH7O?OFNUR-0{o{cF69``MPkMJ4Npshm^@0))+4 ziybQ9x#|gStCukO>~vIWMuzGuCX6_u6>DoU!m(Ee2`?GfTP>26wqEDB($hc{g?8UU z7uXdZ4_8WJeN+7e0zmzV+GHz-${~@i1HqyPrC%G7v&O`8q7s{|Ve2!%sI-{MIdY`E z!S%6|Ri`|4E)4__G|aZB2P)BvG#xYO=A~{IJ5TiO{)>u`+(@kk`lN|Rd<)_rTvmm4 z@g%~X1eLsD!0EH4e%|<8{teXe!Z_%-qmWiRB~|w+Rp-0svgv*bT`HqE6Tj?U5J!OS zQejzLp)g55Y3u}8iV}xVRv2G3&78$)2(L1Dk!39W`uh5i0zv|F2w6{?;X?-R zJve~b+$xI0ae2LJt~(+ETo&`)iU;?A-EOvKimB zd!iy(j%yLjmeq=8eJ%CYq~oD7PZ9YP8t`q!wV|Hoxum>zZ0!HJ}SQVC);GD z1|J+0b8Hl#uYKewoGddLQI!FhCQ~b){>)Z12G>fr=OVSykktqQ#5?6YVP3Ch2j@5K ztdX_^fF;s|2KSyM2>mX>7uJhfzZXvZfIj2nabsmvk+ccSOKxQwXc zp5Fm=X-Y&^4IMt`hgW0xxwQlWeFdh3rmUZ_u4t%(?PsRr~IfFPjEou6NBZxN1a<~&37VJFSDw-blk;5zYUvM;uuaCo(Y z2H7dOMoVTw8X?p~=92cRk5Es8`3LLAa3%Y9PKPrkX&QVSrE9(SeIDyHGCHiq z5_d(x#I>wYZSDwR?RL)gGiv1h4xaYpU?3>DeRM}?ITYT-wz=4lYn3+Jb37@y9aSt* zF|!v+ZOaMWk$$f^T*UT;Iq}Q@zB$z4$9dYon8M>}#M6us13($_V$-}mKdc{YSuk!l zdu(T$Qh@X^bM6Je_!G-lK06D<8!h-t-OJHaC1j=714N3Vk7%|(Xod6{cD%jgY#M@f z+N-E1*TAr^1S;wJqjB%q$atcUd7-lMAc{gb_31dr$^oP9;=ut8YhnZxlr;kPuSDTg zUcZ5`vop0jC0?bRex&EcbZU!-Uf=AAivd!HVFYz*G#>#JfqtqqRY3*3yr2-1swqxG z7U575LV6q2g?+;37MfS_J8?^^B-3aW#q-fAYKC4Va{4Ei2ggIrN??feh9ZtF9Z>v( zf_q{jzbpItyFBX6PpgEcZ{uu2iwU0mv9J)B^%lQ=Nb})6>LiXBJ5utIiISKYEi@G( zZUzDbmUE+`f`b{h9UtEgg7M->g+31ELH0riolRA^v1LaATo&u|`;piP_i&A9)3;Pu zjST)kA=JfOIDAVDkK|JpE0^Qqbn^)|ot=vk$I_9STb!5jgP)kf*5{kt-w8~*+ZW;9 zUmDE&OG7`Fu(v6jb_#!Jv~DUse(QaARl$OpAz}NNX$(*D;|B?ITf2>@nkqR6Ugt!` zRq1h1RCP7X5FD%l^X2?m;fUi&-tA_&a<+EyID+MM$iIM2Tj{>@i5*Y*DaWXU&{<;K zYd>_Cywpuo1=yMGbu&GYl<4QW%jCiOEO_OT0_R%hMz6+r9 zd0|dE;cnlW-qlg^gHAe0p%xM{xx8|kIwLs5!?%k_K0N(Y_>HhiR;lAXEPES1Ze6m} z2DG3h<#{$fM-n{T#irPq)fp#

$^7XkhJ2vD=&+)m5x-)(;K^4dx3&{9s;cOQgPf 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 z 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 literal 0 HcmV?d00001 diff --git "a/tutorials/QEMURISCV64-\347\216\257\345\242\203\351\205\215\347\275\256\346\220\255\345\273\272.assets/image-20250320175511370.png" "b/tutorials/QEMURISCV64-\347\216\257\345\242\203\351\205\215\347\275\256\346\220\255\345\273\272.assets/image-20250320175511370.png" new file mode 100644 index 0000000000000000000000000000000000000000..f2ce888882310f1bee700d365f8de7b5c7e32c30 GIT binary patch literal 111472 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%0DgIL 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 literal 0 HcmV?d00001 diff --git "a/tutorials/QEMURISCV64-\347\216\257\345\242\203\351\205\215\347\275\256\346\220\255\345\273\272.assets/image-20250320180052572.png" "b/tutorials/QEMURISCV64-\347\216\257\345\242\203\351\205\215\347\275\256\346\220\255\345\273\272.assets/image-20250320180052572.png" new file mode 100644 index 0000000000000000000000000000000000000000..8cc1ac09e3b7d3358ad3b2ac1311bc1097beb657 GIT binary patch literal 98981 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 literal 0 HcmV?d00001 diff --git "a/tutorials/QEMURISCV64-\347\216\257\345\242\203\351\205\215\347\275\256\346\220\255\345\273\272.assets/image-20250320180327389.png" "b/tutorials/QEMURISCV64-\347\216\257\345\242\203\351\205\215\347\275\256\346\220\255\345\273\272.assets/image-20250320180327389.png" new file mode 100644 index 0000000000000000000000000000000000000000..d55aa1fd3a7cf0cacaaa04710e2a3bef40a7fb2d GIT binary patch literal 19752 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%0A5407IFdSz5;>9La=Oz>0s*IVjJ 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�^MV6N=e79Rx(A!`dyd}>XkM*h3b8XLYs}F#DJUVg~yO&oq@~X9)_(FO?iW`@kp2d7u zgLM1FR4-ETUyuy6e44>8BS^wo$I)#a1Xid6Kl9-OBIH#H;4z1CQC%HzF)6@Wp)fV; zq5PX?&nH&J_a%DqYkYaVSrug4%`5#(X^4eAJ71pQF|5js$G(ydgF>I*X1I?6az5Cm z*jZj89tFk9KUck#&Xz2vd9R9$?BNVSL3B3q`gjx|P)=pHW9fm=S%aGzOrkivIf?5! zUjiL2=8MSB06Z}NF^S|mZ}6!t=6R1yC=W1Yj>RQ+BD~<1gYS9bF1z+2Fz_+t_2D_i z;efx4=zg$^2u%pAyB`GjG^Cybd=d$hyy^~<(%Gd^HywW4%!?jYXOyB5?k5$<> zPeDqOa_T&|Y)%Wye{qW)1j496NIH=1(-spQszX+5X_-=mFyQ96lu*Su>evJJsS?>) z;#3aB)0A?q3b;hX{1Zg3LqjZTxybYmMcwB%|K`9P@niW?@CVw>f!)Cp6l$j6#K#KU zWsspL18eTlR=ny@;StlI&&%#vKS zxk^j(|D?U6P6}EmPKISB)P&6DEwxfNm9o#keS&ZK4{k$jWFJ~;N+PLkY z&?OiIjfjCs-@2!b2;{*YCUM5#uK}&ct*U7B8JQ}-&ecD?gm-QsaE@G|sHYo0vD^(?ukx{Q2>$6?H|MWpUGtpX#i zA!R5QRY7`4@i$%N7S`dl-x+adisu{|;M>CO)D|`Lh|17G725C&^L)b*omT z*-MI6lp_{jPnZCFi>qPEM}28)s92eAL4{qe;~I3;yfA1{HE}FK+{VheTab9K+|Hgc zDNbmi9HFBYDIAuK=<&=8_5;T9CznxSrlgAa$b(!WwsxbfVyG2o{(=#fhN#~egS%J_ zo!}94LHLfYq-aQ%^nKYPPl>-PH}_)E z=Q`}nfjyV+2HNCEQ#TEK-5Pb}a-VsqJ<>Qsi*PyCi6Oq?=gpxQ5(jqvbv8lB5EASr zTRB*#3uZlQe>AfJj=fQ2%FEi5d3tXhDxQxk?_yPz&(i8)sW1Kv@t@-khhGFknMmjH zbNob@8w=822oST9e6+T1lDdVuq^{d3Vlo#)JCg-00*obNc3ZoDgZNQbu!pCX0`2Ep ztEWv3FCtoazo23eNlGVtl%FVUhjsXQta6tv1zN#uduXQA?7y5nt7F9*+_)<&lexho zCFM}@>J7rj>~)ldug&9!3;u^;{jqDFsw?MT8tpNaOYo-kKi~N?E(5;xam~KCz0I@k zGc_BSbyDXSk^ub<6x)>$ykDQ^nG5nTRyB zzG~jyS-r=EXNsM54VT+!jj&{?eih?SM zyA0kK{9ojvj=__2rA8k(YWh61_0zQ6{Rr1VV2OjA`RjCm<;L_i%M3loeF{;Memh<1P4*iGOa`-DPd XHnqn)!rKC&nt-IJoJft3e&GKC+?LN3 literal 0 HcmV?d00001 diff --git "a/tutorials/QEMURISCV64-\347\216\257\345\242\203\351\205\215\347\275\256\346\220\255\345\273\272.assets/image-20250321105730494.png" "b/tutorials/QEMURISCV64-\347\216\257\345\242\203\351\205\215\347\275\256\346\220\255\345\273\272.assets/image-20250321105730494.png" new file mode 100644 index 0000000000000000000000000000000000000000..352dcf48f174499d3ddd315ab065bc8f6609b589 GIT binary patch literal 41522 zcmb@tWpEqq)}`HMJGNtHjyYy#Ow7#8%rV5wl$c{?W@ct)W@ct)dz|OI@6?&8`KHcS zHGfpCmP+bw-MjZ%YhMbIl@@{jg#8Hs0C+Lc@A3cuM*6W`0S)@`m{zNt3jlyAgNi{D`P}?*6{BtRZ02g`lNar(<^OW=lNSL2VdZ4xd5r7)q=k!#D`ZI=2gHY; z5D^+2G;=H?trip<^q;5i+kc!x{%gNA(Ixu7-Xpl$#ccrrO$RD&GkuenQsckqDRJTL zHn#-SSmi!<;K&|&(Kq3eK1$uT#B2J@1bO5VEzd!4DP*u^tsp-wXbGeg#^ugH3`nh> z!PnwWE|R;WOiflR=c8wM1p6%??~M7zcnopdk6yjG%^_kP-6~UQx!f9^LnX#R1mP5_ z-%K!l6?zdf`3X-YPxUhX(8pAtBa|jndg7}og3JBhmy2{>BDH5xscM^iA08m7_*U)Q zk#+spfDT(`k>=+tQE2!JqLL=n87ZRbQz8=rI2*I9@i+hEStj`FebC+x?81j%zTK1# zpP>Nno;?}Y1RRy)`2SEb=TDKSkS6QeDE+Cz zSy=u4I`^n^8J1s7a;ooe%PfYeH>MR?h`#M@vfKuDyrQ~|XZSXZ&!gd>P>?}rPyxr``7QQ`(7laYzL!k>zGf(NWF#brzltzp=pR%%|%1uz~Fa%!yZgv5>z`7fN7{JV<#hk(OQTT1i(Lm zKstXi*)5FGKiGmiW26Q)KB}!AcN%C37dOf*+nK|=GY1EN1L?dCpU_xya5iysY9hjp z2W_B_6fs&1Z9ZzwX{$HA7c8p6zBw6tj-F1xA|JX3`Wn+2NKCNV8)m!R`279%`y{v0 zVD3U$c{;+fEU+L+@EbLaN&pn;oLp$JPXA>e($Eoskr+@Ys(A>IZIE^;EAct(YPPEl zknq7v+thng*)ypET5E|ML?rCS(pawZ9c5>oYCPCCpD4+z6 z*>lz(XJ>r9LB@xPYY2l0Q)nIKH6;jjZBK1fjSXR1SLKobVwd;V=V1m=3OR*F%pKNU-UyWRJ99;G zxw4Jsl_R{q9ByQ ztE3UY0d04F?=jFa=A?3)TFobI^N5^J%jA_vyUP2XUskML>mVT1B6NM~Hv-n;;>7^@ z*({VoMk2kHyupfs=9i6f1m0HvY`m_e@FB!V;j=F$53pejFZqq9GCc-EKPE=T-i}r@ z_-F6Pn(3w$@r3lA5M5#`NNN)iM-HvVp1t3c65q+@Xq~R?3eTn#(|UDcVL2DN96wmY zunUo_c3KG(sCIwKNQMKZgPQNK&q?v8l_3-+hymmBK4cKW(5YY|*+D3Vi8(xr5Xw{( zIuzZb!!KpO0%9PqrRCRj05dWm3E>Y2K!PS;BGp*)Cv|dq#ovfk6LqchLZ&C|(E5m6 z__@31{h%^F{V>&a;oI+AIM(FC8ScIFXGwh*=#8C`yNk`FrYm0kKT`>y^oepO9+!8L z{#Lb<(=!8ao@6-cwS_4vdfMC>mg_zoBFyATeRb|&z=>+MV@HNO%vj+Fd@KLgZ7rl! z19FPGTqTX64TY!I?)h7>x*WDYO9YuV^I6RmBaMz8cWEm@I z>BMgrTD`6Mt)qmDa(O>=1vk66G1m~@K^|O{YOuH^r89wNsqhsW%g7F2HF$RNNzm3f zAw(P&08o#Y)bS=1%Vl-xCzIgRo_^;0B7^_7x6(mGG>qf2N0o`s396XN__4Lf{rKvo zsie-2FN7zIF5x4_cM_cv@<(PmGLrNb;7?%+}=*qew zH)nDe<6Lq+FysI5Tu*^%!2zet*6hLs3Z_1{jV6*F z08m>cPiI!c)C4E2(n=B}$AKd{n|WX#Yqd(rL-a$_cl~CXf|%#o-ZnGZRsKPD^q{?1 z2FpA6Dqb*Sow8{<7*|s@FRc9X)epYP2!8%cn$vlfV=NHAZTD>egbK)MlBQ@tSOA*E5>oF$F1&fiMuLt zw4;z-+_$v?rGD5C>>@j zn*voEbs)gzSZSz@n;y3JE+X=l@Y)_BMhlIm^Kj_vN@L$ALq_7X&dxRJaUvA&WLUN) zUIMrAvE_(Pamnk0x=%^0tYO#tRAqaV)Ziyn{mkBK5=OCg#DTxmJ3h${xIkoCT7MDL zha~oPKr4mY;soEA`{Hm;w7c)0>zkiypdWJhJ^WPk`gZ3>E?|mvmknIcw0;2xSa!ZxpN5GOrwBX7=ebwf zhb{<_L5(H+XpXH6>G&(Ph?}1iElrh@;xh#V4LUNI;)Mo{f8Dt)RSKW_Q0_eJWYd&d z&et<5@f$F}dq>W}<<`%vSL)gd6RF;K<^S}6EL1RUS>1P5k)sS% zpKnONee#*#C=(!Ja5CqF^-;YiLytOg_Y%#Q?_a1@yQRbE3Db;sX{oo6#=&SH+qfWLaIGk^wM(Xe2|--n5j4DT0(WXQ!fn!WlG+yNrEgl`F30b^t)1p;lzZ+0kK#2dwf&`0D1^dc^ zY~rwUx#l^jTw66QJoh@3#_~t<7-fKnA2-|P$r#4SnAz;Ah9WVKTVAA$w380YGWpZRqZjJFOCcWwks&taUydfu-y%5#2;tkWEX{L9%>=({#{Zm30}JluGt&jZ_aM zE%Wht&_;sX*cuDSZR687HCgnTsA_^%zrjAq<@7i!!vg%R`r$6c_?jLJBWoiC=j`W9 zx}!Z0u1z5K^-7K50PmGyZp|PhVFsA2^eM{d>cisj61PWEd4y@4w1lk!h5GLzu!y93 zkOy%Si___QEuRPC-Jlh$>h zUgJ#1>NOpR21*ESM+5-Ff{zEG4#wc#NPb3u&~CtuY5B37wqdWLPXdS{zL*1S7o1El zI#K)7BRS4jCH`%Ga?MBOlCOD+xt`tfP9d^TPPjW=3J@{TDEZ$z;wSDyfx2CNMMFrE zK7DL%52qhem$q^xkiTESeg-{0@Z8L*_!I(e6N z!y_4FOm$BOTcsqD<0x{068cwv6Z6k;b%Qp`gR0XCw$$p~j$xsgp+RSCX9{G*U8r;x zW#+3=bQe>UXjgD7poL|6Y^lFNSw(E$gR}UB?7ahMaZ#1*eoF49-iwKX=8rYfXe2;@ zaH>R7_j`Y$d)91*8z{`VO%52FbA`;a7xX}$s*s2ua zt0gJlqiCOw(a$C;7TmLt_5Gy8$=-Gj^~+9<{e74Bp)Uy%RJa;4fH8cgqZo65Wb7R2 zYf_B}plaVWI$||DjGNC!1%U2r{3^2fTEAKOImS|pYT3$gy4+G7jKV281r(rG#0~&} zl!e)YqtR8~qnu5EVy@n;lIa_orrjtl%< z>QMby%3HpByNh`5IoVIwBy4X-8axU2W&u!OT%@TB@!RTd{!ZV#&N#* z1fBqv8{v||26%%Sz-{DrI0)VN%KG5zb;yITVoV5iP-0R;R^ZtTVujv{Qgxhxc2MIb zMvPd;?qU7NZI`fD{n~2^>CtGS!mSl#3dc|Mc~vRC{@M3jlLP4_F9iR`VW2~*+ZLb_di0m>2{kBM?SGX{}TE)DuAZFxwK zW4;z7jMnPz2Xm?)`t4pcs?oTXf~p*AM<5}MjGUIcvy|QxnLfNmlxFgsXrA0av5~v`&{I`Oqe`vbEe_TEY%ua z$JOgNY!DzB0@t2F5A% ze6kIuAq3WE*=z-w;ZEksiS3!(M%;Th#Q+8rShCfF6jH-iej*YELil;Xn0RT8KH~<##CIy895`>n-<5w#xbns!# z`~hNqr|QD**jH5t`W?^!gKB7oWf__hb`iBkKO@9fPT1==X-z~wY!0xlgYY7U*}gi> zm|_vk3dx>%dyo$P!3SY^@xYFPZvmKpya{GICuHQ5u;2zjb}j3W7T}3X<_~l_qindt zSa5&s3s~gHfBMLgBul{DR*%G~6z6; zctVEa9+b2Nyct}5>r+*4D9Tq^ySi#**#yo7Wt^f-xS~y#zu31i(~Ph%^0$Ei zDHP;BmsU1$5Qn7oz1m?T(0|C}l&|!02lQbytPID?Ej6+&wNqGQWN{Iip08f+IK51? z_r|guE-W)K2sct$X!^}S=!ts)LerG_$yv&?f@nxEZ;tJywZ{23&8>Oso0tgn@x>o? zvr%sZ1QNv>3fK4dBZp~>c5^Xu#f}~ow8SqF>GkDHI7+U8sJkayzSoR)rDh$%1f0k$ zMpp;;SKIl_Rb%C$H=+x658Ay~*cSnMQ1^JWsdf^s^xtqMe$M~CwDN4i>lEjdPMKwP zA53v}JLhEpyl<&>0g{eS;7v!;p+Bj+ydRM}*_7r*005uH!Mn}BDJm#9xcCNiW0*9Efg=~0_NzM=ef+#3@ zD_e8-@uQsjA^}+yh#eiEkQtcNlqw(A0hov{&%97K-sMxaF>Z+qpG^eI(X=O+Q4OsO z3ZhxpGtsba3*Yj-zuCZMIxr@i?TN5C3rhj9V@5^TI59da1vU!Wv%j0n3{W$VpXgcZ z=Vuu`Et_ZO7t1yJPi24cE^^Vmbav3VYldI{F@cS#G5sNFKmhvM^Qwo?S~Y7bQm(An z+NUK&NO4JT5DFqk!9NioKywg1pvyGH&RwQ@;#bF?f+*MYMNGPYaoN(*BJ0x3@Xv4s zWjEzzaE^W(zRN+3G^Vp~EQ$NfCc~B_0EqU$AS$M>^#5l00)$?t5+iV^=x7K;;DaoH ziaEA)#E2+SdgnUB$>QVle5SQ)svRAa_qA%o)hMb?LHk0_ZB6E8*O|ofHD0e!I1943 z%^GtgYX)U#L^CPgR6U%^fs!t2cA6V9i9uplHPx$Y~C5~&0`g_I*p z6T~5p9}6x15~N?HOSzl1OTSCxM<4>2p%^CB34O|)YlhfA3-v)WSuJiVzK5Y!BWfx+ z-|nwoni&Equ`p^4J9&zwvG}2$)Zg)Y1epQ#5CAB!0dEr|LP-Vyi1~w}Vh%yFA;cJ7 zRE2|X!DRE+a?+iAluqZ#?rG_VQhYWq-4WmdhiY`_G8JQMb>3p(hS9`^^YY~XX#Xv+ z=Cx{k-^7mL!n_t6;?YI+kBJMTj|5K})l2Ix@w0QF_Q|EN*W>JM^KgXO?v-6tWk^1b zmZK@MHwQ5dSPU;dGvI(Zlb=@1xTC)iVMIEq&oF&@FA*(6Ysq|WnM)W73dCgQu>(Uv z$N4>QU7r}rY7PRUt|-9(8ny_VkvSBQFn-#;&a)PU**z*b7|#e4{NeJdQ$IG@M{dB^ zm^US=&mmR-8V%DMSr0=}Yb<93+R3I^XErG|PA4*Lc*h`v^h8&OT3}<>;EWck;|JIL z+6-)0m%L5E(l{lM!4Le=5yS!c^ZR(OHw2Mlwee0K;7=qSAkyhjwB+q2K0xhx`XakO zE!OhQE~I7vx*?Wt-!QK`I)NQM$+>#W+peYq4EkWo>AP$s{-Mi;a}O7{CFg=LOPQQd z6Bb$}01ee>FO4cn;_i`{ed)gzN)M3kB@cQF6UJUhr4H@cl{^Q2o9i$xN&w?;@Zs7Q z^!wh$_GfO4(qvBD@jI2pZ7obwya*16DTZSL23=-leSKp(4k7=bOU<@On%apU+LsR- zx7fD3-0Q(ju$n_3jj@N;I8U7ItuOJt5ou`I?WN1{VV!+f@#cWc2Tg!e>~PtHBlg&b zxls@w>}ula(H^x+5KD)WTc{W73p$v59JtfmS3^uWRYEo{s04o{D?Mo^@s^FaBxNHE zusKH8&%k9_rz?XWWwYDsS2H6C+PoPA2yV!sY7+Y2xpKFY!yt`wC3^Y7sD2j@jjiQ~0G=n`8ogAr;Y>7q^~C?}xOI$keX z5F6f^=KhqsYEVtFpJq90S@8ye8I2Y9to&ON7{gTrU-*sJtBYPDDC!Sm{9j)2MvuRFRT`H@NmuNr-X#A8_u zbfR2{KNv_VPR3c+ceufUk6}f{YFRHjq};Thn;9gcSZ}R99MI8g4lm!-tdZWqwzvLj zahw%tVeNu|KP3SN=ms~sD{FbZG{3r+KEkDYnVv%!+%urK!FjcpA6}eis_oK@n|#+4 zk9RzutkVA#SmF|*D;gqW46-mFrLg=Nd)DY7S?gE(;?IZVRkHI?dY+ZrLycBttm=k5$No3<$!ey;Geq+>Hb&`CTApN%_}rP33dIF&%ghTrbN1=yzY$mjcAcOhMRd9&UaByT0AUsVhD?zYQ&Pj#ab z_E}w)orObgqDY>Fv28zd&tzX@YqofiKgN&_yL}nr+xQ~@rs546-m*?`a}A?|nNr-? zVFIiRI@DL#oISZB{<&}9-jk=eMJsuZJ5|^*Fo+`?TfZE9Bl}z?1~CwY3$ek04}Frn z|B7Ypj<9MWYzQhV8$On}Y);%i2T?jxfEyl6!=KtxA>(bU1OOSn4x3rdOOaLfu!Ubn zsIaURRaPkgfPUw9+wVMhR`+fJiyt$mpfjB)Zcv!*rJ2f(74lWY>T0FsQa(r2ok#?p zH8|_Jv6&K&5s)nQgwt~AHDJ5Xd;QaWKT#82qdsdcsr%idP)55U{sOS%NlBILvCg=5 z>j&>+5l-Lpf(F+$c)GO-n2)V~+{@ z)#dZt0KWgRhSNMO53`hZG3I;ZS)R%c{IP;n?500NVvPux^b%veg#^Igry6mr=cwIY zV@Ab4=K4-6^y!ng2rd+=9};K@3c50`*F)ALBmm^u8|2)+)CgjO(TxP7sn`fp#X0bU zPMN@jwTMwOGh?Q%WzJlA3blDj!CWI zJwnFt8~^l!?XsA!L5<4OrG|(NPhQH88yf^dd^=jJQt%h2rFkX0*(oX?cXM2FC#3%R zZ4?Gg+edu1k$B&JXihd{?DbNjZ~S_W1u^gSZgE$fPRs6+D49;`#dWg}ifT^N6&j>< zj}F&=jOLZp2MqA&?9LHikH~}zfJ~zql9nmsjqC#eU6fam7=8lFvjblU>Y)iD9g{aX znckURjja=)t{q{Xzi*h5K1t4+A(w77$O;M-jc#c)>B;Tt4AkF6_PFo_`RgDwaNx)jev%DA&kcgX->|MBj_*#*Rbxk5U^B$Q2y<`Ent#?e^lTwovqSUs-GQ( zTQFS^{@*M>aZD^WPf>rEb0l)2E0qiRCp3!!=dkSQ(>=k>aB$4SaR_mSZoj$jxrgGf zV}Um8rtqk?DhD8YYvOA`pr!b$PO4OHsrl1qP_Wu?=@Q6i>N8bL<7 z>ueDb?LR+^ci&H7|k%X+8P!j zRTQiSSimrQ#YDK_Q)hT@Ly;MD!&%KtKVCdZ#c{KQ}pR;j~yEwrbfPoCRV1RPr&6R$C`H0JJVM@*tS8R8c?L5{+e^L zUu#7bO+l_a1c8Yr%`F60juFEh!yEeJD}@)f+vVTJ(%_Ik;;!`v%2)vvK`CO_l~E#2 znQEBy4g0fsSv;3su!u2UHl-jcC|5EBUT2cBQY^v`~pO241W1^{^rw>yqbGX9= zi$@gZR30aYuuHu+UU+KvBIGi2SkO)u1_=isjg2FjhEHjMjJnil20@8K<%&v;^|oqM z(z+QkWYA?h3J`QpAbsFnuwag7akEWmu%y8UJY{v`zl7HUQUl|ETtSR=(s!@7P(|}wvrz{Mf6CAV?KPFzAvbTe&$Z+_4 z>ouQnt^lqQvXi#q;$mR#S9&e_I6~YU3e118F17tADP@xXFfcy+1t27AU;g4SADbGY zEkgg=EnEL@I85QSv&6}Ai9$Ug7Kd%XKafn9S8P*weS&dyouwvkN1sV}8driclTDw9 z8A^6dkX%4>|9pK;Q^Tm6Ntss5?N5UH_gnrcBnw3IkoRyMBxvw1FE~bbUdZH&<>PO{ zbvVpVr+ftJ94e55ICZ9nWaaBcmHY2aAb1s!nRO2ck7yq>&P%`Z+Ib2KxSTfPvg9>{8|FTS1%^~=0Qqu6siDh~8HaXQC(>Ze)1d69RQkC{rU z(5$)a+`H`WI~tf5C`naRrw`U?Cdb9pra4~TJsQ}sA;yK6zc`Ba-AXAOD;4i<6PA0X zr*M0a?T^*oC?vOeyuac-%NVY5{&ZZN=o5VYn6VBfho-mlp1cISJU}bWEc#Ek2Zr7h zr=rm;wa(8Ny{B-L2S-o`H~w)ppMN9$M#X}&J7syW#X_W)nP08nZEu~@(CD^CPijY9 zOPjGgvZ#XEcm$s>-VU==&h5mr7s6^ZCs?)D&HJ|9arvuqb5YL=KjmF~Slq^sFnzdatk> zv8r`TM$&PwI&|*ne{E|l+q0jx>zE!6gDj}I5Oi^KvJe>+{!ZUs9cGi;65NNAYpy8ZR5=aBC)w%oOt#y)te2D6??(P}N}&Psy^x!%Gr z;(ES=m%&a58(~j28(D{tUL15Qv2eT^rcrIr#S91>R)^o}Ee?ADG5X3m7ciC-GNa`I ztLmbY&mn*Ow*5_<-1!cL^WtpHIPCVO1WwuL_|gVIfL*2^lR-bf?J|h4Sv}nfn=`~U zKtgW03FRKg)hQf9)1GOn9z7EWI>zBa&&Iuxm`++$#2?)>HX8$g?K1)!-tz$QN&js& zI@$Ft)R@l0tPXx&S-St8J^&15AJ-JVeyS^fbFi{A76`%*i5=VPsj90tGI8@XYNgxA zzvBE0vAs~ujD4e5?$zRPA&mutjtCvP=5Rll6)3G=2`OP7o5rW}XtaKWirQA_FXM|H z=8B3hyMIzaY3Xjmzdl>D#0RXuYtpE?c`TOP-%GxnwQ;h1+derZ{if@PQ)9GWY@6=Y zLX`ID;@*(J*!VK{+VQT|6zj-Q3iCVO3U-8GEZ z)(Pc|JJwzCyKM|Yn6gF-==Gc;L51lK71OBC>r4mf2l+ytJY5-EHG3_MD`9@mk_70|06N`e~VuOBHZ%6C~5MoGpRbbobMS_8c|b5zRnJQqH= z&h6Z_q)@l@Yslq8+t1fM?5#y}>|#Cq$`4OxVmVqLjRvLV-~e-f1*6P4;W0Fhsmq(4C#kg=Iy*U2{M9g>VQqt*oi6gy(j8JaUZ-2m&3~ z+_EuXw_8&YXAy`I+O~GHZU$Vg5*F4lRO&?IWm?M@NbPuox-`4Ub!WF#8b{~Lg3~m; z;B^Y=f>dsWmMd*2X4W21w{fwDmwmeDIoTrJQh+yi^X&<+Nz{BE|BOl7MGi|Z@>Ar7z&oUL6$x=f<_lZ5Dnuz0O zqcFu>FW93oFVwIfSy{%nEdT@WEyK~NNe>r+u9W=6Vgedw_b}&M2 zW7DSo6IrQz$exTx?yqs9lkudvu_(&^2%YjN=bMwIiT zbu7m1pY6lR(uP{2FsaQ(cNY2z`oCXSca2m_Z5ly)N!53bjsgi6^^4T~V$RM`NjP}7 z7C)#>Hur5dFuVE|HZGD*1vF>9%c=2l8Ex0)jfycKDVdMDQB9!{4fFc^t@h_6e5uIE z{x??|j_P+gL(5@o<(jSO>?|gdZz8uU_>UU54XO$wyVXZX+v}(G+tm}lB3P166-6qn zs5A=Q-!fY<;!3cXDt}#fwB>bI3sw)+^t;S=SqG8d73x$S=LBGLgwt?oTu`}r{4E>k zajx)__!|$XVv0y9-=?f zTG!||z)M-HLP*DVtN(HL$0gdvCYY7-xUqPQp!voW-A^VYOu>WkX81mPUYpL=;y}aU zZUCa$9=DEWa3;O(YI@9R?sgfw97>euVbrA6$wuu>;Gp2VoRgXOA;*rgT<)6JG|u%< zQ&K%VJl>TRhlv_f{+>+PjBt6bBJ^>NV0ip9yjl}w&+|T55Sh_yTz5YUisArGW6e$S zM09Z*@A;zHwNFI>91FRkGsIV={qU6W&C{GYnudcFf_B3fZW}Eyy(OD;tvO|qAB9jD z?@vRWv0Qg`PX^<)&j_`uJ148a*_$hE?-qXTS9W8Q5Kp6gy1&|W)1^Q29_6vdBcyL& z-;?KZ*kjr#MlCr#70Hp|4u#Jo9`g8GBj9;BSVZa@91942-YbrQ5hX^rAb7b}_ii*^K7JX z!JE5q<{oe0Sa+gQ_xx8-Af`FVY8-C=dPRi(>6`KF>nE~w=4N(M2DOs{`j6oFMfgh= z<>+(H0ewM)j%{D}m#|1%_%m+1H_YB%n>R7C&VMlaH;oT3A?qYtHu@BvHeW5^o$Swu zW!=igbk|ydoTXm zi_np6K8(cQ?HL-9wIT-nb>q|~h(X*}Pc|Rfk3a>8|myj*Xi+ZmNbhVcru#>luEnb z^X=2}G4l_zP-T|Rt%VOdNFpDf`<~3sxj^XBjZU+=bF0B}_cGs4{(*fvUzvEF@cu!x z<*>7+f)xoQn)lJcQ|u*BUrOQ*)bN&iIK3qzUWUhhy-S}PYjce|eWu&?W=S)k7@u!{ z)3fRi9VNoBFZLJ_L1w?{HX@e^FkWwr#PQrY35*DQQZkpY?bx_)=d`_YxJ$h_8Ga5g zcfU8{>&sN+J>Q}0hi&$9`Jv{OPJRvFXLIA^wflCfeSOrbfXV!0uPr;1qf#X*!bY8; zq^)L7ylzxsm=qD(AA9@2C7=Dh+^F1?^D8oK-)r+Pzu~0t&x1cUu7hWzO}_jh*BHtzgjc8{XZES2E@cdq$0e)c(iORa`3 zQFVu}s^?5BfnSa4! zH=BbVA0CGCawEY3TWK))%wF+x?toy-rqzINt6r_jDovdBW0i9=?81T%6h8WMznxd%MAVP>DwV7%k3{ zs;Lg`!u?>rx8pg>&qY3yvEnV_5Pe#bw53|F!3ptEWpn$=q4KUgdN6 zEop`R8JWe`*NEIsWfqduH5>)L#|SCD*Z>6?CmDgz=4(O^g2zTDFdc}It*;o8#S(7@?s zH9@5C$~q(tF8Zaq;5?svdKhZ3g39QfzCVp8j=|Hi-LYz7Sp8%E@tV=*!?FKaC=u|! zvsfF$YuKoKMxe9UJs&x+KiA}_a=*2~_$V-`ezUT6;K4>d-LB$suUv3Jde1+j-cV#nuR>)ve?( z^dm#6F?|Zp>g0K-K3c;j-}rPtrRLM*E7H~^m2{b_jirc<*=#SQ-mx}abM9Lk4fE<2 z^kCm9SLEKDldO%};;aqaoiwK_^9ne?Pr1tTNBJ)=6+9jop2)4g`F0aG{n^r^-k}tU zB0VTQJaB#PRJ4*)kx-ow8K(D3rYZ^Ql+4Rr%YUZ_H`J&9Z_x*2f71f+?uH(gsZ{^PaXb?r{)8aDaOpOo&64E}8cbTDe9rO{=+Xlh~6h zN{?Z!;`G$<$ybX)MTRXUxwvY>3K|4ZWTjqpHXbPF(!S3F03vWq4Omjkd}R=fot;Fj zRUU{tx}N~JH^{?Evy;5|Rn}J3Tj{F8_}_;05TO8jE%@@vW8WmR=(@VQtJM7F`NMoV zseZ{N7NIYuIs|rXxB@$}V)9q`_d&PtGa@KJZC^#$mE^^|XZ)CoY8d0N!RzOr& z>FI;L9mTWes5|=t0%^PbqO`XUWf%8x5hvSNu9f{bue&Pq=hCz|e;Qg+EKj!7%tWI9 z1BRsp3Gg0&Iev%yE-HaGXRM^|-(?&PV`zs33UxoGIM4Z(k43N>zVX)PZ$$rQe4v!g$-cDLI zmFUu6F-jHM>!0AAEe(7JT%VT;qO~NxM6_Mkg`3=!ytQ7|aAX$K2I(AL=1PQ$8u%n81O;Bt^ zOv!GJ*Sv!yo!z&>JP>h=oQq}dT^$^zwtcPgl>@G>ZjG6#y^GCdzMn~GN1;?LA-U*}QZOS6}i7PH+b&3WfH*B}r; zk|BP)=s3cwK7DqVocDcV4Yu#hfb0(Q%~NN3bNyTOkjQsl;w|~68n=izw0-sAqI4@30l-+S3d7`t8VvI`y_)T4_T>3f z6yruDIRe#nG%0D$qwvRD2z1AMja$aF=8f z9PZRVBXk&%t<6HgC0@F25BGoMEw4O^oQ`)Eqmn_BcTVx~dbMr4pHSmXBa4fZjf_s~ z%OOtGqV90oE|WnTHF(qUsywgQBEw8*Ut6SN?T1be;W8Q@yQ6Ns$W+4WajiT1J*sdu z<|?w#((%z!i4K{I+ILkxS-Ca8w&~)~a%_cXn(g1EMGVjBJU^C~kl9EP?3)ytj>c;B zUum>mU;6V)$f*2n%&1yiP|5lR+vdcKoAzaC4d3o@mzqyv+;fGU{+xAkM2HX2fE*Il@*3K&ttnt!kSCM{}W2av=>yP`9%W9B?Hp^wH zz56O6@`8_N#6!&!_y`Z;Q`GxV}P^o4K*cqvdNKz$%DylqAD*3hc3NQt@qQfJOl4btV&`pRJ<+X56D!(mpu=Epxg7l6ZA7KyzV>G0h3n;T=A+Rx#jA07reP?PhU%IY%efY984HySP8b_nXSY)QjY&c!#^ljhCtDA6hRr1KgxBPy; z!=alrCQr%^KozgfxCeK%D8l62MI%opV(InqCO5x0?Puq{7F?M70yR6!je704_yYB! zqc+qI^2fCD)Ne_g2Dk8I-i<3T;nCSiY<1tt>^Se|W#9|mc&FyzGVC2%dmgsncutuQ zZ2_uvUTgENHhDD?YDe8)TW1y;wnVBJbyZXur~QiJrtdmn_!DT_qZ*0}KzRPPxxBrbi-^!>^GOURL->F`7U=t;dV!9a%ccO<1>Rm=T7 z_VqyboLGM6%LfcU8i4Shq>lR|NBbY-y=7RN-@Bk2N|6>Tloprb#hv05in}`$cXy{) zad)S<7k5&ixVr~WfZ%R{liz>OoIQKa-ZN*;*K=L@u##NK%A2+FuDthiujl#Sr~vmH zF)efn4L_6eC;H)t?WYj<61B+Dy*x`%`aS9-Px9Y>>4(2$)BkjimktpE;k0<2jx|NK zbf4@P6s~g4y5C34K7xFE73X;)TYGjfd?++9&z<#nMr@uA5jD9xL29-yI=vjP+Zr=( z+=j+0jgY4Ca1@^F9j5ccsAT-<<441rtX{^T`m$JG6+JEf`NAy3_B>^YS?^%A3fTfV zezXFQ7u`Dy8-B~D8Dx{8yBNBSu1Sjy^Q~cqRpLXS>!G&U><>{T+Ug)QFlDkeKIku<-Jb9{?SiZSLatbwYewtYQbd6Bwmt3| z-+RB!N4LTtk{VpV9_+?LnDJEO;_+pikk$R6$iW}0E31}S_~_6|5V8UGvZDMp&E@Qs z5;lMMfYntS$MB$>{mODy*hQaN!AJjMkSnm zAGGOF0RIEao4>hLiC3M~4D;ylyBp4pE%z?`=qD`oxHH#gQ^=*>%fz3$ds$mW1}nZ8 zTL~qqf%ER~&4siYGJH&+JL$CWjnpxN9BcPuR^O4dDDKvBN%=e7Py|4{%dH}2HCgiQ zYI{rSp7%{=z3)7YCM*PN5_h|F42nu^VG*qzP`5n>82h;Qlr{K40CV26*W)L|EBD@M zJ*09NDO$2J&ASQDF*YwI7B?r%13O2*-u8HSW)cb1roww&E&w4oUu#P6vt4P!JVjT0 zt3jeW!=@*S60_b>zPQKB0R#>nq8<5PI@`tigmRwU{gsK+Vw3H-Q4W^Zo}^0@>bcVsND_r6RZ&I`A&&16rqu(Kj* zvmuGRDWaB2NJ_;gd1*5Z!bb;lebG-l81TcA2c_ zU`-raE7uJua^-d&Y$iS4sv4kxJNSaC5ZCjeec2RH90d7}B0*k_ zetg;ZGS05y(jNo|K3>Ex2YIEUmE9a##niH2@8hy#z4y^|Syf3My~+h>p7^x z``|X_>v|8%Q2{r|- zfFm{{&kkSD8#$^zv(xKEjHjhY6Je%ha$8U#M`v!Z;)0plOvv%1_JlN-zyX#dpvbS- zSZ+(qZS#9ViHibJwo`?=AysLe#mW-$+bXUhZV)!7^l~NA0%5L{$nsUTDZ@t(!@vXp zO2yN1f1zX5dT>EdLw;|J^evWPdte@AKdD%+IIZbO(rQ)~2M1uqQviCapqr!vJsl;r zXp@M+;4Ydf{ZoP8%k>5PuZmD{u@z5g1B9CbEc6#k;X69>XUj_kg$H=)DqS;jIH6tN zPreVI3kQIRvKWUML|?s65KzGc7@K-iLJWX0R^;k&vZhgvxjT0~w%%h0kF=@S4 z{@$c-5!Sj>3`fu(iXmk!*~U6Znk4sX@9>T&31FP~=f;xLcxo=)wYjy080 zlY}sH4mSH(E@d9=R(ezA_}{Arx>liJS*2cI4QHkAf9dVEpU?>q@++>&`jRu&(tGZSy>?;d@WubkRo)t|Fh6w zwY>)4o~tc97z3?!WN){-8eg2#ApB#G@xe{L1M|>~wBF;nIlKy|+wC@jDD|jKYJ$*{ zRTL8t@|=G?@uH9ndt7YZ0O4jfAMqItG>+VV%;M6rD61IyLt3k4wm?e%Kuv_cx_^@v z41%sIC|DrwxFp0TG;u{LaZnhsrn3OxGsMi;{Kw38a;ICGHM`NMt8Cr|&175h06^q> ze66X&pJp>*gX}u~ipIA%KT(9<#Fiqw3WnvDoLsMiTlWteNwCrBK%g@z?Jp$(EIq1| z#(+)N{q=d)ngB1OuZF-?J>G$u80LjX^zr5!PY-#K>thazJhjR@P z@HAl;IrBVO9h%Q?lW_L^_ml-N0Fz>9w)T3?_;cH)a<4G})Y`++I4U~PxHDIO_wRH_ zO$#zTtoyxO=&SO*-&9fy7qODF2I)+dV7NV6*#9P#`UasvMuj+iTvMRBs6re%`OQ;+%Fo(#Rt=}0Lu zknLv?Gl@@e!_dWY3*=$k(mibrt^d zcr5n{fWS&%e(t;dSyrbelD>KiefvDYth|>& zFmis05tJ&pdQe8Mj;QlA=Vi9|V}r?!>9D2uzJEPOxcPIJU|sWbm5{5gEe@xxtvn75 zqC{*9l+DahHImb6`Wrr8j#f$NAMdMeyBd#EYT$(|ma|*VVk9j)r^b5azyiR`L=CtQ z--Q`t#K=gbQp|L_4`8WjFJ%~CIkd!Zx2{w+%Mhj^yBdW~y)f+DT@DK1oJX*rgN4!H zdDc?HISTwtI9{n#1_ZOR<0K$$5v0UnrkNH?7c|v7wdZF-Z>6o}gGz1x-GRlA#nZ_PE?Pa<40&(i-^Ax$2?t_+ptT z<*qripUhIR5k8t7U6Q>+Qs3UTlU$s;c)xra-l7nGkBAegC5txK35iOT06Bu3FSAE` z{S^4I82zEYS38Pso~xMUoLzmD5p9UNoql551q;493d5)uBrvwA4j0IiLj+jy+QF}- zVwEK^kJbosQzzN#i8`J(zqkn`u4^1>7lPSTMhQdO8<0QXeL&FWV?(7B!&bgyE)xJaVDfedY{-kE-v)y(V5Qc~E1d$K2tRHcJ~!&s@Q zZ<0>9_MIyRIxpamq(daI!hi=q6CshphHU$wY8M@UX(=dZi5_g+WcooWDl9d-il_XL z)qguLEwN)sH48e84)PBtmz=AB#G_s&pz1WFJhVUskFuH9CyAATH30l%jyDIp6{r(xSwPgJ;-7CZDu#7d$aH@{*Uw|>d@;N#wx zcY@~Xk5%4|n-61sy7IYgObHF^R_CewgpR@}%r5Wfv^OGbsIJfXea3Gcqy!^IP8K}K zWhEA>|4F{`=>MwFNuTKlJIvPrl@FtFI4T-GX%ASGE0olAZ0Jbzg+8&Q7Op(HV9;F> z^YOA*4O#CdzG3P*Z7+Vvy`9Rb_pQodyii|uK|lqF$Q^&=M92qKE4P__SjbNTQ3vXm zHX}FXnoAv>J`%T2WLx%C-lJ7i7g&ca;1e7g`62*Z`KowN6Hay-fAsA!n`w*|d~VMB0&EHImIbyx1ozAZ)mP=8O&bDp_M0v8qFmCF(j2!H84&D_5^t+4i6dX zEu9=}cFqqkUtG;gWkkq#u&ExmzB7ypLleylRVBi!(bjY2pvq#kv!?OiKU6(V?aQR| z-9FKMg0xzVI~+w+T=*o9C#C=;xrv1uSYVDh0lAqoiRSNtWJb82`>xpr4K#a`iy{|C zjhqqafeK$>w=v6-nokXc$5&&l$NZ2uBkC7spvnz^N&e6pgYS8zq@l3pSiq?q78>QR z{23{nrQR0V$bzi@vsy|;;G)r9jY9}RTvxA3eI#$mxX*+(-^70Zk1Qv2K-t!0g%X%I zvMf!xoumEY_Vi|4l6}MGq+b=n>AOX!^9m41<P{Cq-6I(fm(PX<8=Is0TI4^GP_m{1wFFMh#nXb*` zpGq6mm~6_@3%Df1yzvbI3YX7G9hry9VXDYnLWIR9E{#$J;-FvaE8M+nDtqkh%`ZT;6v4> zyqKRo--Yl-G>w#Q8q`%SP$nOZK#lXN#G#Fxln*hdRy>#pfl5Da^UwxLm_e+5DWi%( zy}LXfw@e^!?y?zX1j=FKcK;S@1nhMCK!iqjm@0M9JGB+tvcj5bL~gkla>ty?zT zxp4cwW#Rh9i@!x31qXQfCSO;P9U+}FE#=ZQ3Xdi4d=$w=!GC*oGuv09tZXZc+HC4v za?!47ncd+!7kgkWvGMF@7UJ66Xp7QBA(};E9E&a&_@b96f-KC5TUNt2;$6($0m|c* zE@p0pLpw`wW4+DDtj+%Z-jKe*ZbXoTe8BvFUs~M{Z&A#(_f@H9u0kM-w+4R1X;Eq^^axBNxhVb6hML0_ASY7a@yW!`jH^qhdv0Q57Q<;>(;2pGlRN(bslRpYAx0FGl|f4+gvM|s|-;hPx7?r`?LFJZzJyBzp0PLgoJKF0rmEg z|88ODDzetp+v|1d((-`MUH_ITTJZe^Ip2XsK%ji}rYq=vQ)==u=_j!X>_geC)nJow zHI{s?zpgBvvwfan&HABh@nAB?G#Mp6wge)NHyLSWqX($f1Y14NyW&;F@RBg;k>#!9 z@LXu_9Rff8m<4hVht0f0&kC0;x9R8LADtcR?~;VJt8kNJj}9%zkEXs^snz;JjJTW{l55-?r}JmSJKXb?}R_0%kc*2 zWIbpadwq7j*t~3!`(SlVnQd#tnn#lDe!0%#H+n9_?*?M~=b?0O(T@9%%a%)%HCacY z_rpJK<6>6*1nWtYKFti-Pw`Yfa5b1Wtz?x{R=>(S=;q_IdWmX-iB{`XpGbc zL?1}5R%8}paM^queSLSVo0$~XaCjL}2=6zrF}v;Y&kgu1@TL7oSv28KkupD8-PMjD zP!{dC^|$bL7DIlD)4bzBn->{sIkRM4l|8v0-=P2p%=&_H%Nqib__?1awW5X#;a7(B zDPYYd#ZV22AFEbgQ~d;;48qq-cU4E%Jwde-NL5mKJYb6eBmiL0cykQNru%rY?MFTx z)An=9dtjb_>X~6{Wga3xZufpq|KtJ{P=Amts{rfLe7f>@jS*O%1(>a`anl2{ zp80EAt_9c{7unxEtPfso``Ck;Zw(G)(KiGtA*4dwM}*kO)siuF0bYnN3e&i@!w=g) z9u)0qW6noLh43&t0dJ?|t2|*IySL*U z_QK{lJKa7^3z&M)jPrisz;r|ad0NS!6as+mN8{_y&NDcL+8d!-h>c(NyM16$rQ@k@ z3Y6l80@5_@`mv08Uj$=VU+kVw1vGq|E-t^l_j?g*uK4*+zp{noSbk@n(}~n#lZ+md zPmUKZI`Yfh(i?8$M|r2=*np5QjEbs=Sfv(=zK$B2QIQw{?lCg5f+RkdOnBL7j7&_PJDj8G zfQs?j+b6%Y#wur5k^em&`v3s6tTUE|L$KEHnikb(Rwn=%LNEQq;+Y!Bp;x zS#MROWA3iSWqgokE#NiVLwkE#+KD*^r;pnU&+Dpu>B(^jrN`Twze_Dhu0XdYtlPff zFY8v|q7h38ZFx}VOF@?IOeFxGVB(y#RDtQxME%~(=0D|_6$&d4i<-r1U_{9C;mKCU z`GWB9W#i?ytjG%bE3+I)dP*P-`y#BOK>v`GhcosMS7ASt1(1J4^pm9&BeSE`FGX5* z1(RS-=Fn?JOfNU=QyoM+?b~RrWFzdtfllcb7EwliGtHcacdlYOZ8no?)-n0fpXW*o z9pgVzHbMgoD&ptSXPCYiw;k+2TCXOkcH>Wbn}KgCA1x>RNAzzft#)g1P*E{@nf0~> z@)jU+v9^1WM_i!WeC-IGAb%!?S&BJ|BCX2BKA1-V(iK>`Z=@N@GisuZ_G0a;rmh{fzgVa z63biY06o3hvM3A(@AmXg+IaA&H(cN1?imkq^zcSsED_o@`eP^jy%I`RvjGP z%Imu4u$t(IC+1UlH%w4|aN|nQPO1!ZFZWrS;(W#MHEPii0HDGGUX?<40>;U_EhB6O z9w)u3ZL6m{7z$D}>v5I8I+#Y;Wo5nlWMz0G)7pOj@xOp+s&%q=ELu`- z2ExY^%^v8oKIcvF%!v%62IayA#tYp@ZHccgyZ&BGpMMrMQO8PE+pe>=Dv~pIU*b|( zXZb&+onZ({AI4>L{h>am+5#AxWWW6L3$aX5{tp}pj&mgdT<0RZu* zRo%;LFq4Byy^8UTOmDkKb0e$u{J=qKcTDK$qxwI~mT`4u#8{?2S7W5PlUNdJ6*`ka zfUMa>o7>gKJf6jb-ClQ>sIjOe<1b6AiJ!u_AB?4$Il0&=J{_YihpCI|e^iMw3>zS4 zfD)#9Rf^Gqo_VCs#$$at!14#?+Iey2(*~oq@4z>(_8?$`teV$zjPsLkaK723J70y2 zdQSg3RVT<`a<>YajQ{rA#HcMth$KPZ}7R<&z#Rri<*@N@e-XEI^gaHMG275B4M zkfd0Qr0o;^`FC(;gHLpdS}LUOUU@BhSPkA#b*6hc6bX|#{f!EA`Z1Q*q=u4AS**%>0B;KDOd)cNhk=X^G#DeOW^V3Odt@N zRxfOx(_Fh#!`8BkzZ)p;faa9?yXZ__1Sncw&g`$+=*RbtgSotT|20E`j$bk|ga+LHTCJ+_B4%8iJfRHMN)curSTt0DNE;UwvxVM# zEMP0L8n3#sM&j)?T}0Z}99G_4M-33cUsWU^cQkCVhE=c4#8MK;Kl^0!!K~~t+>=*i zMoo(566eb~RfTdK$lK(QMFl@0@HXWTM61zLXL7SseroV0o(J76{A^+PpM!qw78U&n zs-M$rY?^x-whtAVl3eriYdk{F>V*q)s%vF=1Qqj8hv`e%L6CmB;FcRa?r(&B&bnSh zf;B_$U+$>m>M$yM8HpXBV4_BQcszif%rH(XCnul6qm}r<{c?Zc+{ZvG7Ju3BjJHt_ zMX4lj676g04{omnHm6g17`4oY3K^TPTru%W8>dLiW+PIg&K&U=VZ7+ze$R*Uj@-#z z=>`Hn*@g<_UrCgGkyR4R8B;TlHM$k2URdj&M+aAiDGXEA>)?6hjMG;-+A|l((fJkm zU3Vu*`k;57dxy<4H~60$s2Jeq)BPfkH{Tb_tG^znwVKv;2^Mp2j1%b1F3n|0%9|2v?iPRVz22uEJEwH|!b zeBNO3Smnp*%G9gj&ekzrm1A<%cMpu&E3J;>+rP3tEr(dCa-554lD&B)J~v9YPN0AP z=~_R}(_axB_+?OJjw}yzn*K%faH>-XceR|9)byH$**lu|X)IY* zlZ9E-27YHA@tLF3N6j-J{5o9~7n?bGL-&pED)t6gdL3T<5qV`|Lelpk2BQlDRDUar ztw6KYK%ceM>s6D>lb(BrQCqoHyhRKUpKsn znZZr?^~MKNiTpNLn*JY6m4|+q^l)g{>#|7kc0YWI0~=&g;1qs=894aNw}avGM77ut^mt%sMKXN1sqaD*)`iJ=|&4E2>B) zagX^gA>BvaZ>~?%Zn}2OW4c`yA#5#FOix>201teeX`p+n(XS3S-m{ni$OBwJtIY}V!v>bQ>f>l|i4%fz{JsuzEdKjO$)fVZX<`~~z;dI^jB+{=WdyKe+Ki`E2L;RuT778pgZn-Cp zhYjHl_;TZpe5bySMUeYpvDi8x61~#dSepPHvP=P3^9XULz2oDP^RY%LgJ4N^#K3#x z;CtgT;58F^$-+CDjiU$1CVnton!M`7rYYJblGy(V7c)K&>G|GG<=7p1ACiCchvBh= z55-&D%KI;2@O@EyOc?B_eb^v9kJ$5NsdasE-t(g4!H#GdR7(?JYBxW|`y6ZY-jXchkP1;N@`B%E8p@ziA=GDP=ZnCd(03ex|JX8J=Qt1WPo z2LkC9O4L*Ytv^CW2DZkbH{AdB_Rqn-TlXJ79d;WJ4zyJRi)decs>7^DR|xt0bOU`;S4eMxJLYkfxr;#C-)e zN?>D7fWp&Mo#tNYg0g#-9t<(9rQ(X9daNKy$y}S!83n-Tz;;v*-?3uN}Xo?T^#Et-e?GWpvXv12^7Z8+@O6u8kJ*9ApQ+lyvYa@}SR` z*VV>}#dIt4y;bt?Q;)8#_aF7e0R(a$ahde#x1bz2AX2lCcDFy=8YbDgF=QIERCja( zh@*Zq@N~2ZOZn`P_`HN%3i!YiEk^Khh$C_NRK1nDba?3`CE8~3yA=>#6TXiaosZe+ z2(Rd@?f|E1n`!WlE?K+<&_$t>6T?csTun-+kYw>}!pksSONYGbw#ou(yHhdFtcIEa@yyUZo*lp~@ylh9Gjafa``W+2jloQQ%{`f$!w_>J2D~0uabE z*|<(^1zHNqkA4g=J8|ZWLFgha^hQNB*rD-7Wn_F&$b}>hKX%fCKF94Qsu2QE3o=rS zX111X6loC^=klRvr!8MdT6Ed`PW+sf5qsQLssz0D@t{K{KizGy(hjv&Zb)WoLP^_e zOKgKCW{JlPki(h?x6e|BpqY&qCIixy=V$=}JHXPzS=Nl9%h8UtJ#2vK?B}%X2cO!z zgHu#Oz_2qrZiNmF`dDUoZ*z>khjQ<9i>1*1Dw3`{|Eg1|e4EC@1RGU%M_U#U^Sawi zJmK5CY~pBjNhfpV*xUY$(E{1j7!r${O*IK^&5*KFtU|es+^(xuDS1`vn2PR#A!!ya z7yWCb%~y0}hVbkK_f&vo=Z6!b$}uw1dz*HLst}WfZpjyBz4j-!#iL@vecAsNGW;=@ z{+Zq=3ytxNv5IKq)Zx%+zd8t4Yw1S+?$UbE{nw|B9Dh|dg5+@|?hN$_c6AQ%z9A)A zT`TUl*6@|K;=#-=W4?Co!lIaCFA9t{*}|HK7@|}rxeJtq=lNOPwhppbkUDKz%+kPw z#l-1P;M@>@C&Sydv0Ir+4hgw98^SH2rjl5^!?C3rm6M59_zu|aGYFMovd?)o`rC{G z*}(^Fx@rG5^Bd){>DKn=Y<6uI1_rb=X6jV-c;6HbMg(zBoIAF5x{rJ>gf234EsB#q zYYAcWc{8?M-^fhLMR{Mw*0p!p zm@4)`d1Qe-xTgKMznjKh$?CgjnAGHUv3U&sI@QT}VUR-xh;S1L+i`9+4N)J?0%b+o z9OkqQ0nO*?(=78tMsg?zO?hBGq-5}~9t1^&O6`gt-Pszd&GIuI`W%lCe&g4Gf`YHc z`Y*t=+Sa2kW-a7DLaJ(g;JS)<*;$kA_j`cpx`eOg5B_+iu%(^edJFb>CWbWaJ=FRM z+|(f@tT}l~x9=@fL=_L}3-xb-Dua32zi#o+--tBbU*`f(6I0bSpx<_0CVV?*x?MBo zU5C0WTa4j<0JnY|bZa^|kgghNS#|X0k6(QNW(z|uW=1)Vts!Qv$Xlhdd{@{iL<^Uo>L$#H460W)R63_~It>m0~G z-Z{gSv}&KK`u7s$Bx0g=arSMxk9O)htI56S=Z;!`y53!Rf8~({s9a*=KuK|Jfw|U(Tk0*JBJac-))3FfCwDvfbv`M5y zHE`Eav0GRp342+}+-0L=e?0mBjYjtt&R|#;k=AoJTIxd-l)VHA>WDcP$a4;D&Fl=4 zvqOI-BxlMpsplodfhjr~2bww;kV!I}z~O%hc{^B_Ofxex=rgmU+*C!_X;`)}^TT9& z%F<|%BY(iu1A~o^`Y!vwF;OT=-o4lTudjvO_B_5Ti#E@GpEN6ztIc{Fq4@^jt(P%F z)|X0xScY12H|<8qc94eI4-wK%uihmE4uz1RdOiQ#DWm;Gk}&^uqg`+%FDl?)J|)`2 z^{HNh)Pd`v)nuF(Ve<7eErOMh<+s~`2O2@iEBlJ)1=bF=e_5M6{wMMNW{}-wcpu?D ze0*&+Q03;@ary@O*ZLp%1lM@8Z#_4P97^IIkJ&8dQnP>H;L>O+YouB2!!5eJ_r&C=P3Sf+B13QT zXU~-1rcxgk4zt%?v9Mr_#Uu-le^-;<+j0|A4oC2Sp*J;&AdIuco_>zVb*W7ZFY=)_ zYt{f@8sz{{q+V;zjZqo>t#e7tq`G)symPvS!E?9bw758aU8!lxQqA9~(Y&y)uVuNX z{#smZibxxA6->kBdetMR9HT>8`BANKVBwp+O8;ALCY_q%v5{#`_TQIvoE6r?I{Cjg zWSA;180_vZAy_B?>Hn3DH*@tZ_v*+=MLXp`AjbXyz=+@Z*>kX_S!J!0y0_71^=Wn- z;C0t6V=nR;7Ur<6M^Bnb+d&{zLqFHgfHh6+@Q_wMO#HLVhA(0`aW?M*#M6#~lVx_pj72>e5C zI1CE38};w}V&Z{YC~B@jmnF@Q*BJTbi_6NE6ub(N__#6Q&!Y^s>ft^=r)Yt>OZyoQ zRb-Ek-kx{>fMYv4nQ6}RzIQl$qr1AhdFel&E~q{VJ1Hv{m*nLuql#I~Os=+|` zgt}ivUuL1+`@L__BwHptommSkt=||HO(M~y_5A6f-mSc_-}e{cU1v>W~Aud>6(82V6m)2l9XUoAb+t%7{1T>W4{Jt4Xm*LvASk zZeARa>4*Sk;w~8bHO$nQMLn4CnmS~FA~F^1>scZ5DRoy=m68(YZ;DVgd^P#y&0L1q z!)0v_G@a#K-LD*dwbx|bhRNQL&(3byJ2+KFBU=#>>0j9>hyVLgov=DgxDvYyC<2ei z4i3H~68?D~;c6DqAN_Zn$#(I^ zDB)4z@04j>HtQ4~j?(jN_2%$M`D53JTk2j>Cz-E82a`u9&pTp-Jh9zw-e#{Y@0N>D z#UOIPr@h73G{-kVZKZ~4jpAH}zMdU^ZF*f{OHd&1wNf+y5P?YAxmQiFrtb+c@-P0l zYm|2D70}_PaS8)2h?;z0Vlc4JdxpAw?wRLlfb#hc_wK|IRg<2tax`Ia+q|LK19z_{ zP1p%p4N8CE*w4%it`VR7yd$=ee>nqnnhvt_)%H#NDC}mid~H0+rrNDr-|ICUL`#(R z;(cXTpi@k5G@IrY`opZGOr*LkpSah1AYu12`ta7JvO*c8->Om(d34UE?S#ESwupk= zGEjrdxUPs^?W(e9kNv0dHABkt7`tls_b-4yRFZ>uT)&&Qh&=G8xtA#a*e{WXimi-u`?Jy%9T^oFSTwixpc=9vNW|yT zpPp-zC-k}Th^@8!uiay%&f0V#Gkm0@qraJc^_1A_UrDUu{M^XRP4%_Vcl19|Hs9ha zb+-F6nBHJ*T+O?AX|OUm&8rOrA&4Uc#&IXiZB$w zh%s{(-4KZj8LMYZ_%|ig#I#_8BpY~>hil5d36T{}V9BG!)l8Q9n=#d0M}SbybsMwW z_6ANHK@eTO?MUX<!P(pdNYmb+QiiP^U4{p_LFuc$5m1feCN|(|9~U%syiunzTHr{!wF_rr=?1qo^GGo z#u5&IJo>m4{atIVZqu{I@`br+;c!4)<7jfQO}g;){$fkv zU+C>SyExL3i3Ey*h&E<~4>sk#CN9`gR4JsA{S*xssnpxVe2{{jF|lqkdSxo+4*iT+ z55XN_hsV1gU{V7=TFmLobqLOAnYJc>nMDkr5%~-Oq(KEh`nUJ3)U;#zb`g9Wgg2t<7?~IWiH;-|HerOYD7Sx5c2z*C`-lbTJWu+ zn@Z;@J5J1Qu;p#p|7f>r@!Jfb0yGKuSM4XvA3-YprV zp;9;WP+ND_H`DlpWn-#@`*9SNgA#5bkKm2CVSFPl$(Jgrx3IG*8cVD&)0qEfjLs@$ z=JJFCp5x(p{hdv<66S}f-|Kj9xXE4%o)++%-D~k{?^f1#7`*|ApcjUwsLAV^Ulc7z zcNc5N#07}`KV{a3j!4!cf#azJVGnc%Ek#8YG2;Lro@v@=$_-(;`X1JwJ)QW9z({zK zxr~(N>;uT9=#*8yyn(6QT8B(P#LUHJzo|a(s;Fpkm%wlE>5G*6PNyWjN=J=`(kP)@ z(9|McP*qV;{RX*L1hK1|jn@W761aYm+T~7>p(7bf^0|S-qhV!Shi|>Tc~a(6*7bo| zlH+|xE%2DD!D@4L_}tPQiz|kK zPwr)1+4|iAptx|9cDH|CgL3Y(IuXr9Pa*4cK3SMLaV)JIvSNmDivOd5<$RRobw;m5 zwV;Nb^{n%;sRojbX}qL(XXpar#>Vtl{HuLXXtWnY_u{H6^#VvEQ*aH6-@S)$Dl1TGPe^X%BOR4y%%=9E+6_6C5lOmmRsk% z>iu=(e4VADSoc4YZY4je1=qECc?(HH!&6ro*Q>E8;=-FkO{Rk+FQ*I_)8f(B9b+Rp zvB2hoqcR(QMLp|)tzU*}G6>sIjPQ!6%aTrecl`GsQlqI4gDSW4oCVfBhb0#)TfVBU&yTECR&TK2qMH?1}(k`X=od>W5Qnk;3)z+%}@ zP!Kw34RO{ZAk3NuFiMN1w0jDG};k$$iul?ChGrs5j_G)fja5addH(fXJ z}!GrMrIJh*xwho8$ zg@&(W0%u=C$7FPG{!93O%TqVh7n}D+=Xd`E>@H<7QfFZv`B1Bn`JHz=Ux?mKPuVAJ z={KmZZXg!*LoA_v?$#Ne^f@%NRa?xm72d@5-0qBRb`$Md-O;=cuK*+d&DMuUn_j|W zS3i*^T%~S%<+b-4VaZ&QRNd+wm zgvvzSM!hoLw2AS6&Xy!7#GUM&^_FI5g;~D9sJeaA{+Q0yeg&>xA^`GJX0Lh4Z$UTL zLma1Aq6r^O6x!m-?HMu%-I{`$1th7jOC4f%D*w`&soAUH!um`H+s4N*yc#)~25#X& zJQVw6!IIoAwf9Q@1(a89Xr4EZWLNXHmD36l>K2e zwRWxJ?>F*M1=Oo0uA9lMHz}&&ndaK7T_r1X;UBn6YfOMg{>8Dv3|XJeUd;YojP+w1 z{s?%NBPhfKjmFeV8#D<(gB|7hD&v-E%yJ+`2Y2S=$ku-8ixdpq+6kNQJf&UhmK>UQ1z*w9U$|RggwF0R9-^sMT{%D2BG^zFC)mG~Q6X$qqmJh13h*RZ$ zTfVa7GB004Ji;e<&mkaZq;}*;1X6_QHu z=>7&ZPM%J-cc68=&1$g{ys&$RapLD%{q;Bt41cF21eN!c5{GsKIeIRVK_9o9{i41Y z!_Istte8HO<2`e9pAR!>Q|6Vb(SM2_(DxBIKWNqVG09M58io9^h&F@~b1BSGFlQ$HPJWrIK`GjxV~67z*V2N?jb#XH!2k*W^nqR>Zt-QxU% zJ<$P5&y(na>2+x^3&7>*QgkvTJ>PAMje4!q%&cP+szmDXQ<&!s!aGZ;mR}C&pLimG zLeVO}hh(NVZdnfcf9&G-+*sCgp0nDhbS|eBSRRh4`UjHg0`n*L}3}s!+tcpk5qy zWl_P1y>7a>#yyp#>*A0|Bz@CnJph0Z+nX<%G!ECFpbqtbn+Yc|@U0uWDsU6c+6)zj zlQh7dSYll}IoN>QlMF+CGsYF6lZ|4GwVj6+r>j9LQB zPJ+oI7|l{ys#V&imf5Qut^?NPX5wa5K6{HUYLAcWk6()l3(_!@9lMS{suusF`kaP6 zCWMjqWkb{)!z|X$5?lV8nUk|rNlN(>idfhcQ!JN(u6x5J)DmX(Ib1u~TIB?m<1QW*Mn-PiuRLAB5Cdio3t_&9Yc(6~UQ4|%qN z=C?%l=`?NH^K0lHvL1Z74YvaLnM>YeziaE~xKIL;Tex~jo(bINGA2rx}zHyI>kk@1D z!pW~4ihuRE2z&fH)S-|Sa6a_(GBF@z)h&K@AYE-4jB{xEPPhye5Fg<-oT_nkHX!#M z_YFmVQCN6zxF+_~>~KhTv9C5!XkCVFNWx}N(Hi6(_E~!v37NjoFMwrWvpG6Xl&!r2 z5nw7XL}0w0^xNOv_(rxqY-#;YL7=tP5OrhNC6t~^Y{0d;YC(a7qK4U1|^+RTsinbi$ zZ3OSRoatvL8)S<3Bv1gRdJGRp3v-1T0Zbw1UJ_Y|pfHu|ZLRoPAGJ3}90|cXtC0>D z2t*|0g0%_LlmneiQ9&+QXut@$h}10OO35bk5o4gsH0DBr41i*+ga80B*`$KCUy7$# z(ofz>!P)P{3#;%?f}Y$*HdsLX>mztjge)4#W;H=(JfzD(ayc2F$+;87i7Zb63`B~) z4d~WJOalSvQiueQ$%)V?!SQ4Qv5k=?8mT_d#3EJ4%60YSn}(L1JCLXISG=MSn{NPs z3TxC42*hIUBeA@>1?UPHBZ5j-krcB@)rnQ#c9lvwBKg+x(zIB?wkVPY019=qmJMyd zSm^*QBO=o{cjGvTNX zGdOay&eBFLN`!h0C`d&iRg^7A_AwL}0001~FzO(+YF(tSk3dG{CkYb+3?z935VTPj ziB(g%o`@zHDldVLOp5gl7)7RD)B_`N0T5<6UB~C@0w?iCgV+p$Xpr4wbRM7JCS0?O zQ|I@+vVH*ofHKK%W}j6dD+OA`tzKVCofnSO2w03g#L zNo`t`do8MVe2QOU)mLg_qR`Q!ITSF(oV+-_*Z}>!3ddlz74T#hU8D`0$#nG?k|E^z zoV+N*h+u)@gK6@G_y$?h?AwgS22lLkJn$JG0RSM~PU&5H%Ai31wTmHVAgd(-xE2Ks zS{4~u%5?Q<4i^!Kpi3x8fO&X0Wm0(*Omn);D?4?;#F#$w&{dgdsM~T)QmGmvC4QBp zXv$^{qa21Y?IktR0Xp6ALQXMI6TzC zQof*@tP>A_K#ff4mimap5DbNEEfuYF004{)>2GWpN_n@X*qR`UAzq51bxYaQ#!N#2 zGT|W-fFKbMP(wXL0ni0xYUwy4NGSjWps&a1s|dM-fP)BtL@`w$pu1Yp9r#3qm}G#^ zs|B}9!#Knxj?L$LRY6r_{}pny*R!9k7m7z-W%5IhPYhRBft z08v6BYaye@0U8l}9@DCkY)J=&MY*z#8p_95(YAU>pMxj@2m<&#K#J02OZgaSq*3X4 zCL&i3%617@q$;gjND~MEAt;a$xut(jrs$Tg!+xLNyV;jX=xD+2mm1>zq~ZR z^rr*C4C++8patDhhy)}O3YbndvX!0X&B|wyQah_T2TAimBf2-%H|aT|cT<%!vj)8t zrcD(D5Fcz9k@7~vGg@~kG%%n^0Fq1d4P}NlMfy4j0Dx4O4@qy=qrlLBAs8U}3Q-Gb z+pi_20svrit%?neX@VvYS0QRqAks$wh;NzSykm)`Bh1z>5W<314w4296&w;#e1)D7 zU6<}^u!c&F2!>MV87eqjU>Klu<%X@Z+YQUpDLayd1h(QX+G0qiZO0;gJ({Ee5e!cx6B!^>rK2y!HyEBco zpp!?dup|Hy+U7KATPQM7aCwLz07yg$7?4q@d=wN40sw#^6osU`kdzmaGPOij-Lg`t zRE&{wzfxrlLbsrSHBA6PbBbDjo7`h^dYfJadi+W~8|B&dD5hjOF;Dahs$`UirfJfm zwXJ0xLd|~}4gi3jg?x+&A`tQV9sg7!DHF-IbW@m?e?`|!HqjiBH0l0=e_KM3I*RFC zcCvYy7ZSF)H>M{BR$#&X@K$g0IO2{+?)7zXO z5#jera0$tO@2KDb5CrJ)000yUD8D)rg>nJ_5ga50$SH56Zl@M?bSRI) z_fj)O)Wx^l7#Sc6jCD|cwyH6TBN+`eQu91hjZ&4?ZP~hLg%zND?jC<`N~MsYawe){ z4W+Q?`yND)(7;SS)C3U#`FW&7jclAnDt3KKOWU_CT+|Tg9PS^%oUBTvh7IInjS(Os zD2#tGjS!m37qwSdh!hhWbN0j&7169lJC~}WY!2p>_QIrII&iG>tQHBEZ-rO014oZ0 zWt2=-W>}Jg%JTSf2-5;nLj(*Zj(vX~mfJk1Nh6v-l;oLN_*))hp51Lso}heiI8CI@ zn$iT#OLQ}fPoW5df|jEt=6Z#VTZzQ4${I+zZJygEwOt!V>f7LLeonU$1w0cOkKn6b z#N^O=W{UTx+!0Zd$tzZ<>h~q3+d9ug7eK*FbTf}nN4g!eI(09p?Nf1Tvi-~OS27cZ^802;MHd~}@W*{ovqrtlbWZ0{6U3Ob>5U1Fr zAx!|08({hB1(zWa&rqgIaH_b^m*X2mUYt%z+dP4&$kACJ@X74MBU8I$fB_RRg9+N4#5Osfux8?0tqA`t)vwzY45YUvvcd|=|1Pr!|Y{tHPbT^!eqmI zwY3l3bIyM~ef~cGe@=t7nW2D0eVPO~9X|6)G-DI%DiBrP7y+2w+jU?sH{UU~WwVEw zrX#yo7M1&WY#lvU=gQwkzJBGa4TwZBA^@-%cT50~R*TcpDUbd0;*9 zmhm)tS8(OM`NX#m?fly>y!xXZ-~8T>pZw*~kwQ(geGs4n;QqL@0GZRDy&&?uaw6<+ zQ&9p-#Jk*God6JJW}qj^+G6xVG-DHkLk7DuS_(3%vjzCaTM?bvrkueE1MF#sljOFR z6*+O)|5A%ey*MuH1k3h@c9h6h5*-YrDKN zrkXTz83iB;)npRN(mz}jr)EVd?KLttf6>=QQ13#bI#H3UcZqtmQ4PNG0su(u{0)2O z;(b^9_hGG`b+>oJl~1n&Z7KlBwEnYEk!55jjF)=6U2$F)_hQ4w;+D_~dR~;V${1XL zn%w{RL;EkG9B|hCPI7IRBo_8qX#8Y&u25Y2Td5{Da^fc~v-1OrBmH)ez`0OzY4;h& zdL5m>v*CA+n;x$io*Y|OFbG_PH88h+0{}J^KpalEv{c7HPFe$$ZYeclI1Iz!diDxZ zB)9&)RBSO&VsrTEj^SylL6<1n;S!+6BNxYnVic-w`SU?VZ7i`?St14`0)5%eHqSJm z6g-X6sa@8 zvbONI5qpN6BQ$Yz>-2ybo;({$O$RR7oxF;C18O2TozM0}yhNXOVO9@bn~xGW9iAAy zoQ1Q3o*FYtlTL23-bOxLy{n#mZRGD){@T#OQV_ThI{i%RR2G42XE)!Kv)VH~J<(I= z$?Q+9?N%z;G;~sDx-|LWp7_^?Zy)@_zx?#Bzj*BTKL2+ocYo*WkNnI23#;MOoA(kr z0GhAnF3@zPDK=^{0c5J1x|c=lLX^c@Kxs?~A`ln=Ek8@OQqMww6%>I05SEQ4M%D!Y zU5AcRGK+%-17MGGWj{Mupkb zSoOwapHAzWKupJ{OD8G#)1^t97#t3$b&cdG6bG%$q6Y}KlrVCJL+Qnf#Ja@*IAc_JcO^E0 ziU5R)Z5x+8Wl2-Z2YM;nhDDxNh;(`Ir%SAx0Kf%J`uFT}x1u(dHLWC(Rp`HOs&_?Y z@%*l3HbPPm;2L(O4o`B01i(yJu-nO_rM5L~#OC=ITaCMB+Y`n1?Zx(ODK{B9zprIv zqRg#Uk#7Kyfr&xA`vy1MX9tg39qU~JWlx7QtGAHb&qlTU%3mAv>*87=Bcww9OeA?j zzPCw*6CPba`-g3VpqjFqcjW-qLkz&!Fm+Q)?8MJwSq9)BMVZf?QxvaZLnBoizms*|*LO8e%*AW%9(HIH$!1Or4w z)1!fZ8U+BYnQ6W<3wipn8*qRGw<*w3mJzQ0j*OwV& zieNyP93vzd0JjDh0K1f}dtRwH2K_+NB#}=ACti$?yKd{oY}fiiB+SK&vD5p5i#5^I zmXF66N}nDwmj*nOECK)pq(SgjkYw^40+^Fchj%xv%&pMUD}Xl>96xCkr^K=jJfRp^ z2#+oWr(#DQk5#(iPgi;+o+F+~C|s(hT69rO8|8gek|@xh?rvqcf#K)lBa@m6W;gGe zZC>covo*!gbT<^?>A5Qk-WTf7E+h2!*Hx+4>G0rBL+4tY);_y^AluxQ>%W)XrxKG3 z17|h)1^`fQFr3|%ipF!DAC`$GhG&hPT3*$A1)5wWJwNvO(x$##)q(0>)-wIXJ4QD?kk^t@RR+| zKX&GW9B>H$ba75dK*Z$Tan^~W7MCU6XecQPfEIBd+~BPXKqEvf9!RLza`R=Tjek2~ z{vx@o>_ZhqQUQePx@25qZP_G5GX;nMH?!C~B3$A-w%Lzu^+F53xGPbsST;R=%#YyfVcF@n5(@uq@VDxvD0e;P2`{eLo4kOp_EOwf>hPYHY*5Rr;RRK zqQ(0zr96PRFCk+B!JxV(TyH#KyTpL7)OBHKgiug@C^o;AQ{6Y}(gwRCEdk>GglyIj z466Rn)j8#?TF>=xRZU)B(5WfS0kmfCz77@CxUK5o*BjPr#DVoc5;a-TH-qSjKepwX*=X6^F zq*?}SOJ{KzRkyx$S zh~k=iW;;4PT>}Z$!)_>4?<0U6&2a%z(KU{tu@)^xn`^eMWg~Liw&a@QiqqD_>n$gK z6)7;tbjx~PUA_SToDPqV63FeoIco_NhoY0&EuKAfzJNf;x+=<8z0d(*dfa&Zn&OUtx@)`r5ngyTU+}TaxUsuaeKNt< zt}Fh{y7}c_mf9100*7jbC!RPoMcX?$(d~Std*R}IVHTaw5Ta@zLeHEvzs26ix@C6& z1xK7u3kUG#^xb3Lr@MLECVShaQcId0H(n^OAtkf-THBxZ?g{a&TMD;snZGad`ktwZ6IBHaPl@TZURwZQIyxa1*2HVj^|CYq4CtI5 z)dn4nr?8_N#59~G05j9txKh2keDKcv{SFm@sHk_%+|Ne!DVqs2ydZb>TtO3#e$DjMmuA2q5%k4ZZzj zVyfnmm~LQdSWB#z)n!V1Cj&?8s%R}LsbgOH_AB7Ps zFP%uh9@urU&({`HQ-2kY2l3_zMQBU)R(3~ipg zZ8HFJj;8~}7?TuXI(xA)0CZ)$IyHQzeBvh9%*)<5UnkFW981|S{r=7_QToVKEt z#WcA5fuwX0IG_QvEEzYPGHZO}DDLm`J{09>08$}e5Tki< zp~$rh%zSKApHNjKT9V`7$v~Wncg0mqP&zA4X6s#UcW2Ef2Jwkrxi-YQLar#z=SzO) z;~RBqgAToIw!ytCu3`c?o6gkDRV`HR*{g%A>hk)6#mh&mnRV_*yJSz0sVD}=^`8yt z7q8X>N=?1;;^EQj28Lfe@XqD*DLV4;NGV}-$(K6p;OXaEz1!y6J0-bVE=A!EcWJpn z8DlSW<~OB#2kcmj)HNtavnO@AP><;c){=YM&bYI^*Ay)a?1^Gl&nK;PJzGPo z4L#dl*fH0&&IwvzsTH$YK55PGxv53hPaFOMO~+3B64z|cwZx?!lA0u$GxDiGZoX=e z^2ZZz%w&7Fy`g{WbATPw)50EGT00F&8L_t(WlKH+i_TGt(PG8dM$~0LL zYpnU?0q)ymM`A1#xp_UCB0;E8ELab!aaF@cwf(BPHYk0l{di$^-6lH{WfY9mVC>xC zP(A17lf}~5^retqFj+b}t)?>?uU%8CMW$l{D8i!=(_e+(M?lVaur9wIl;z^@P7 zbo2B_r^e!6GZ!9V(wf4Jlj znkslBciQLf_V9+Q!q@wS_xJmWO#gi>U~O_f-r;_x-Cex6??~{;?>oCs*vuXF7P?8oVHPbjl4ePR(770-XjLXrLBEhaC?wls-$A8(Vgn5{&_DwXG|<4W7yrNWiC1vCasv%C&_DwX fG|)f;mx2EUsL@w)NMb$K00000NkvXXu0mjfJ|=o2 literal 0 HcmV?d00001 diff --git "a/tutorials/QEMURISCV64-\347\216\257\345\242\203\351\205\215\347\275\256\346\220\255\345\273\272.assets/image-20250322151217123.png" "b/tutorials/QEMURISCV64-\347\216\257\345\242\203\351\205\215\347\275\256\346\220\255\345\273\272.assets/image-20250322151217123.png" new file mode 100644 index 0000000000000000000000000000000000000000..79947b256fb22813e128b468a87f636845ef64d1 GIT binary patch literal 44007 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 Ov>)i-uefLX`hNh_>)hM` literal 0 HcmV?d00001 diff --git "a/tutorials/QEMURISCV64-\347\216\257\345\242\203\351\205\215\347\275\256\346\220\255\345\273\272.assets/image-20250322151339894.png" "b/tutorials/QEMURISCV64-\347\216\257\345\242\203\351\205\215\347\275\256\346\220\255\345\273\272.assets/image-20250322151339894.png" new file mode 100644 index 0000000000000000000000000000000000000000..04084bd4b08db487c690d7fd7eb773838824f6ea GIT binary patch literal 26128 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 literal 0 HcmV?d00001 diff --git "a/tutorials/QEMURISCV64-\347\216\257\345\242\203\351\205\215\347\275\256\346\220\255\345\273\272.md" "b/tutorials/QEMURISCV64-\347\216\257\345\242\203\351\205\215\347\275\256\346\220\255\345\273\272.md" new file mode 100644 index 00000000..a64b66f5 --- /dev/null +++ "b/tutorials/QEMURISCV64-\347\216\257\345\242\203\351\205\215\347\275\256\346\220\255\345\273\272.md" @@ -0,0 +1,417 @@ +# QEMU/RISCV64 环境配置搭建快速上手 + +## 安装环境 + +VMware Workstation Pro + +Ubuntu版本:24.06 + +QEMU版本:8.2.2(最低需要6.2.0) + +网络部分:建议在搭建前提前配置好代理,主要是git和wget + +建议执行以下ubuntu的软件安装,确保已经有git等工具 + +``` +sudo apt-get update +sudo apt-get install git build-essential cmake +``` + +## 配置RT-Thread ENV环境 + +### ENV工具简介 +RT-Thread推出的开发辅助工具env,是针对基于RT-Thread操作系统的项目工程提供编译构建环境、图形化系统配置以及软件包管理三大核心功能。 + +其内置的menuconfig提供了简单易用的配置剪裁工具 + +用户可以轻松对内核、组件和软件包进行自由裁剪,从而以搭积木的方式灵活构建系统。 + +这一机制与Linux中的menuconfig源码配置方式类似,极大地简化了系统的定制化过程,提升了开发效率。 + +### 下载安装 + +``` +wget https://raw.githubusercontent.com/RT-Thread/env/master/install_ubuntu.sh +chmod 777 install_ubuntu.sh +./install_ubuntu.sh +sudo apt install scons python3-kconfiglib python3-tqdm +``` + +安装完成后需要激活当前终端的环境变量, + +> 注意:激活的环境变量只对当前终端有效 + +``` +source ~/.env/env.sh +``` + +> 如果需要在开启终端的时候自动激活,可以将这条命令放到~/.bashrc里,这样开启新终端的时候就会自动输入这条命令 +> +> ENV仓库地址:[RT-Thread/env: Python Scripts for RT-Thread/ENV](https://github.com/RT-Thread/env) + +## 第一步:拉取仓库并配置工具链 + +### 介绍仓库 + +qemu-edu仓库主要用于板卡的适配工作,通过将RT-Thread内核以子模块的形式集成到项目中,实现了对不同板卡的支持与功能扩展。 + +### 拉取仓库 + +``` +cd ~ +git clone https://github.com/oscomp/RT-Thread +cd qemu-edu +git submodule update --init --force --recursive +``` + +git clone用于拉取仓库 + +git submodule用于拉取RT-Thread内核仓库 + +### 配置工具链 + +下载对应的Smart工具链压缩包(此处的工具链仅供演示) + +来到拉取的仓库下的toolchains目录下,找到对应riscv的工具链,解压到/opt目录 + +``` +cd toolchains/qemu-virt-riscv64 +sudo tar zxvf riscv64-linux-musleabi_for_x86_64-pc-linux-gnu_latest.tar.bz2 -C /opt +``` + +配置临时环境变量 + +``` +export RTT_EXEC_PATH=/opt/riscv64gc-linux-musleabi_for_x86_64-pc-linux-gnu/bin +export RTT_CC_PREFIX=riscv64-unknown-linux-musl- +export PATH=/opt/riscv64gc-linux-musleabi_for_x86_64-pc-linux-gnu/bin:$PATH +``` + +验证下是否配置成功 + +``` +riscv64-unknown-linux-musl-gcc --version +``` + +![image-20250321105730494](./QEMURISCV64-环境配置搭建.assets/image-20250321105730494.png) + +### 配置menuconfig组件和软件包 + +#### RT-Thread Smart配置 + +为了让内核能够支持运行挂载镜像上的脚本,这里需要开启RT-Thread Smart功能 + +在终端输入scons --menuconfig打开图形化配置界面 + +``` +source ~/.env/env.sh +scons --menuconfig +``` + +上下键控制移动,空格确认打开,回车进入子菜单(如果有的话),ESC键返回 + +找到RT-Thread Kernel选项进入可以看到对应的Enable RT-Thread Smart,按下空格看见有个星号即可 + +![image-20250320175150469](./QEMURISCV64-环境配置搭建.assets/image-20250320175150469.png) + +按下ESC返回,直到退出的最后一步会询问你是否保存,按下Y即可保存 + +#### 文件系统配置 + +为了能支持ext4镜像,还需要打开对应的软件包,跟上述配置一样的操作 + +如图第一排的是路径,按照该路径来到当前菜单 + +随后选择lwext4软件包即可打开该软件包 + +![image-20250320175511370](./QEMURISCV64-环境配置搭建.assets/image-20250320175511370.png) + +按下ESC返回,最后一步会询问你是否保存,按下Y即可保存 + +![image-20250320175600428](./QEMURISCV64-环境配置搭建.assets/image-20250320175600428.png) + +由于软件包是需要通过外部仓库的形式下载的,所以用到下面的命令下载对应仓库 + +``` +pkgs --update +``` + +这样就算是配置好了,随后编译 + +``` +scons -j12 +``` + +编译完成后会在目录下生成一个rtthread.bin文件,这里就是等下要用到的内核文件 + +## 第二步:安装QEMU并运行QEMU-RISCV模拟器 + +打开终端输入下面的命令安装高版本的QEMU + +``` +sudo apt update +sudo apt install qemu-system-misc +``` + +安装完毕后可以看一下版本 + +``` +qemu-system-riscv64 --version +``` + +![image-20250321093516364](./QEMURISCV64-环境配置搭建.assets/image-20250321093516364.png) + +### 运行QEMU-RISCV模拟器 + +来到qemu-virt-riscv64目录下,输入运行命令即可将rtthread跑起来 + +``` +qemu-system-riscv64 -nographic -machine virt -m 256M -kernel rtthread.bin +``` + +在当前目录下有一个脚本"run.sh",里面默认配置各种硬件设备,包括存储设备、网络设备和串行设备,从而实现虚拟机与外部环境的交互。 + +``` +./run.sh +``` + +同样输入命令运行即可调用刚刚生成的bin文件启动qemu + +![image-20250320180052572](./QEMURISCV64-环境配置搭建.assets/image-20250320180052572.png) + +### 挂载fat格式镜像 + +当第一次使用run.sh启动qemu时,会在当前目录下自动生成空的sd.bin的fat格式镜像文件 + +可以尝试对其进行挂载 + +``` +mount virtio-blk0 / elm +``` + +![image-20250320180327389](./QEMURISCV64-环境配置搭建.assets/image-20250320180327389.png) + +- 如何退出 qemu,CTRL + a 组合键按下后,松开,再按一下 x 键 + +# 第三步:尝试编译评测案例并挂载ext4镜像 + +对[赛题评测样例]([oscomp/testsuits-for-oskernel at pre-2025](https://github.com/oscomp/testsuits-for-oskernel/tree/pre-2025))进行编译测试 + +首先拉取仓库到本地 + +``` +git clone -b pre-2025 https://github.com/oscomp/testsuits-for-oskernel.git +``` + +## 修改工具链 + +通过修改Makefile来调用 RT-Thread Smart的工具链 + +分别修改以下文件: + +### Makefile: + +``` +DOCKER ?= docker.educg.net/cg/os-contest:20250226 + +all: sdcard + +build-all: build-rv + +build-rv: + make -f Makefile.sub clean + mkdir -p sdcard/riscv/musl + make -f Makefile.sub PREFIX=riscv64-unknown-linux-musl- DESTDIR=sdcard/riscv/musl + cp /opt/riscv64gc-linux-musleabi_for_x86_64-pc-linux-gnu/riscv64-unknown-linux-musl/lib/libc.so sdcard/riscv/musl/lib + sed -E -i 's/#### OS COMP TEST GROUP ([^ ]+) ([^ ]+) ####/#### OS COMP TEST GROUP \1 \2-musl ####/g' sdcard/riscv/musl/*_testcode.sh + +sdcard: build-all .PHONY + dd if=/dev/zero of=sdcard-rv.img count=128 bs=1M + mkfs.ext4 sdcard-rv.img + mkdir -p mnt + sudo mount sdcard-rv.img mnt + sudo cp -rL sdcard/riscv/* mnt + sudo umount mnt + +clean: + make -f Makefile.sub clean + rm -rf sdcard/riscv/* + rm -rf sdcard/loongarch/* + +docker: + docker run --rm -it -v .:/code --entrypoint bash -w /code --privileged $(DOCKER) + + +.PHONY: + +``` + +### basic/user/CMakeLists.txt: + +``` +cmake_minimum_required(VERSION 3.13) + +project(user) +enable_language(ASM) +set(CMAKE_OSX_DEPLOYMENT_TARGET "") + +# Path +if (${ARCH} STREQUAL riscv32 OR ${ARCH} STREQUAL riscv64) + set(ARCH_DIR lib/arch/riscv) +else() + set(ARCH_DIR lib/arch/${ARCH}) +endif() + +set(ASM_DIR asm) +set(BIN_DIR bin) + +# Toolchain +set(PREFIX ${ARCH}-unknown-linux-musl-) +# riscv64-unknown-elf- + +if (${ARCH} STREQUAL riscv32) + set(CMAKE_C_FLAGS "-march=rv32imac -mabi=ilp32 -mcmodel=medany") +elseif (${ARCH} STREQUAL riscv64) + set(CMAKE_C_FLAGS "-march=rv64imac -mabi=lp64 -mcmodel=medany") +else() + message("Unsupported arch: ${ARCH}") +endif () + +set(CMAKE_ASM_COMPILER ${PREFIX}gcc) +set(CMAKE_C_COMPILER ${PREFIX}gcc) +set(CMAKE_OBJCOPY ${PREFIX}objcopy) +set(CMAKE_OBJDUMP ${PREFIX}objdump) +set(CMAKE_RANLIB ${PREFIX}ranlib) +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-builtin -nostdinc -fno-stack-protector -ggdb -Wall") +set(CMAKE_ASM_FLAGS ${CMAKE_C_FLAGS}) +set(CMAKE_C_LINK_FLAGS "${LINK_FLAGS} -nostdlib -T ${CMAKE_CURRENT_SOURCE_DIR}/${ARCH_DIR}/user.ld") + +# Library +aux_source_directory(lib LIBS) +#set(LIBS ${ARCH_DIR}/crt.S ${LIBS}) +set(LIBS ${ARCH_DIR}/crt.S ${ARCH_DIR}/clone.s ${LIBS}) +add_library(ulib ${LIBS} syscall_ids) +include_directories(include/) +target_include_directories(ulib PRIVATE ${ARCH_DIR}) + +# Execuatble +set(ENTRY "0x1000") +#aux_source_directory(src SRCS) +aux_source_directory(src/oscomp SRCS) +set(EXECUTABLE_OUTPUT_PATH ${ARCH}) +foreach(PATH ${SRCS}) + get_filename_component(NAME ${PATH} NAME_WE) + + if ("${CHAPTER}" STREQUAL 2) + math(EXPR ENTRY "0x80400000" OUTPUT_FORMAT HEXADECIMAL) + endif () + + if ("${CHAPTER}" MATCHES 3_*) + if(${NAME} STREQUAL ch4_mmap0) + break () + elseif (${NAME} STREQUAL ch2_exit OR ${NAME} STREQUAL ch3_1_yield0 OR ${NAME} STREQUAL ch3_2_stride0) + math(EXPR ENTRY "0x80400000" OUTPUT_FORMAT HEXADECIMAL) + elseif (${NAME} STREQUAL ch3t_deadloop) + math(EXPR ENTRY "0x80500000" OUTPUT_FORMAT HEXADECIMAL) + else () + math(EXPR ENTRY "${ENTRY} + 0x20000" OUTPUT_FORMAT HEXADECIMAL) + endif () + endif () + + add_executable(${NAME} ${PATH}) + target_link_libraries(${NAME} ulib) + target_link_options(${NAME} PRIVATE -Ttext ${ENTRY}) + + add_custom_command( + TARGET ${NAME} + POST_BUILD + COMMAND mkdir -p ${ASM_DIR} + COMMAND ${CMAKE_OBJDUMP} ARGS -d -S $ > ${ASM_DIR}/${NAME}.asm + ) + add_custom_command( + TARGET ${NAME} + POST_BUILD + COMMAND mkdir -p ${BIN_DIR} + COMMAND ${CMAKE_OBJCOPY} ARGS -O binary $ ${BIN_DIR}/${NAME}.bin --set-section-flags .bss=alloc,load,contents + ) +endforeach() + +add_custom_command( + OUTPUT syscall_ids.h + COMMAND cp ${CMAKE_SOURCE_DIR}/${ARCH_DIR}/syscall_ids.h.in ${CMAKE_SOURCE_DIR}/lib/syscall_ids.h + COMMAND sed ARGS -n -e s/__NR_/SYS_/p + < ${CMAKE_SOURCE_DIR}/${ARCH_DIR}/syscall_ids.h.in + >> ${CMAKE_SOURCE_DIR}/lib/syscall_ids.h +) +``` + +由于我这新开了一个终端所以还需要配置下临时环境变量 + +``` +export RTT_EXEC_PATH=/opt/riscv64gc-linux-musleabi_for_x86_64-pc-linux-gnu/bin +export RTT_CC_PREFIX=riscv64-unknown-linux-musl- +export PATH=/opt/riscv64gc-linux-musleabi_for_x86_64-pc-linux-gnu/bin:$PATH +``` + +这时输入make即可自动编译 + +最后生成的sdcard-rv.img移动到qemu-virt-riscv64目录下即可 + +运行模拟器并且挂载ext4镜像 + +``` +./run sdcard-rv.img +``` + +跑起来后手动挂载一下 + +``` +mount virtio-blk0 / ext +``` + +![image-20250322151339894](./QEMURISCV64-环境配置搭建.assets/image-20250322151339894.png) + +![image-20250322151348431](./QEMURISCV64-环境配置搭建.assets/image-20250322151348431.png) + +# 第五步:QEMU-LoongsonLab环境搭建与配置 + +## 下载仓库 + +``` +git clone https://github.com/LoongsonLab/rt-thread.git +``` + +## 工具链安装 + +``` +wget https://github.com/LoongsonLab/oscomp-toolchains-for-oskernel/releases/download/loongarch64-cross-toolchains/loongarch64-musl-gcc-nightly-2025-3-15.tar.gz +sudo tar zxf loongarch64-musl-gcc-nightly-2025-3-15.tar.gz -C /opt/ +``` + +## 配置环境变量 + +``` +export RTT_EXEC_PATH=/opt/riscv64gc-linux-musleabi_for_x86_64-pc-linux-gnu/bin +export RTT_CC_PREFIX=riscv64-unknown-linux-musl- +export PATH=/opt/riscv64gc-linux-musleabi_for_x86_64-pc-linux-gnu/bin:$PATH +``` + +## 环境搭建 + +``` +cd bsp/qemu-virt64-loongarch +scons --menuconfig (无需设置,进入后在退出保存一下相当于初始化) +source ~/.env/env.sh +pkgs --update +scons -j16 +``` + +## 运行 + +输入qemu的命令运行或者运行目录下的'run.sh' 但是注意要将run.sh里面的-m 256M改为-m 1024M + +``` +qemu-system-loongarch64 -nographic -machine virt -cpu la464 -m 1024M -kernel rtthread.elf +``` + +![image-20250322151217123](./QEMURISCV64-环境配置搭建.assets/image-20250322151217123.png) From 8f271f98bc270bc05ac5490de2e4cf39a5098e0c Mon Sep 17 00:00:00 2001 From: foxglove <8208210429@csu.edu.cn> Date: Tue, 30 Sep 2025 00:59:08 +0800 Subject: [PATCH 02/10] update config of git --- .gitmodules | 2 +- machines/qemu-virt-riscv64/rust/.gitignore | 37 ++++++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 machines/qemu-virt-riscv64/rust/.gitignore diff --git a/.gitmodules b/.gitmodules index 8598f9fb..086fcbc4 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "rt-thread"] path = rt-thread - url = https://github.com/RT-Thread/rt-thread.git + url = git@github.com:RT-Thread/rt-thread.git diff --git a/machines/qemu-virt-riscv64/rust/.gitignore b/machines/qemu-virt-riscv64/rust/.gitignore new file mode 100644 index 00000000..5f4fb259 --- /dev/null +++ b/machines/qemu-virt-riscv64/rust/.gitignore @@ -0,0 +1,37 @@ +# Rust build artifacts (now in build/rust) +/target/ +**/*.rs.bk +*.pdb + +# Cargo lock file (optional - uncomment if you want to exclude it) +# Cargo.lock + +# Build directories +/build/ +*.o +*.a +*.so +*.dylib +*.dll + +# IDE specific files +.idea/ +.vscode/ +*.swp +*.swo +*~ +.DS_Store + +# Debug files +*.dSYM/ +*.su +*.idb +*.pdb + +# Backup files +*.bak +*.tmp +*.temp + +# Log files +*.log \ No newline at end of file From ed5cd4ce1e979c1bce1fb70f60d84c5ce4c1bb87 Mon Sep 17 00:00:00 2001 From: foxglove <8208210429@csu.edu.cn> Date: Tue, 30 Sep 2025 01:12:22 +0800 Subject: [PATCH 03/10] =?UTF-8?q?=E6=96=B0=E5=BB=BArust=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E6=9E=B6=E6=9E=84=EF=BC=8C=E5=8C=85=E6=8B=AC=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E7=BC=96=E8=AF=91=E8=84=9A=E6=9C=AC=E3=80=81config=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E4=BB=A5=E5=8F=8Arust=E7=BC=96=E8=AF=91=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- machines/qemu-virt-riscv64/Kconfig | 1 + machines/qemu-virt-riscv64/rust/Cargo.toml | 23 +++ machines/qemu-virt-riscv64/rust/Kconfig | 29 +++ machines/qemu-virt-riscv64/rust/README_cn.md | 105 ++++++++++ machines/qemu-virt-riscv64/rust/SConscript | 79 ++++++++ machines/qemu-virt-riscv64/rust/rust_cmd.c | 99 ++++++++++ .../rust/src/examples/hello.rs | 39 ++++ machines/qemu-virt-riscv64/rust/src/inti.rs | 25 +++ machines/qemu-virt-riscv64/rust/src/lib.rs | 43 +++++ machines/qemu-virt-riscv64/rust/src/libc.rs | 36 ++++ machines/qemu-virt-riscv64/rust/src/librt.rs | 51 +++++ .../rust/tool/build_support.py | 181 ++++++++++++++++++ 12 files changed, 711 insertions(+) create mode 100644 machines/qemu-virt-riscv64/rust/Cargo.toml create mode 100644 machines/qemu-virt-riscv64/rust/Kconfig create mode 100644 machines/qemu-virt-riscv64/rust/README_cn.md create mode 100644 machines/qemu-virt-riscv64/rust/SConscript create mode 100644 machines/qemu-virt-riscv64/rust/rust_cmd.c create mode 100644 machines/qemu-virt-riscv64/rust/src/examples/hello.rs create mode 100644 machines/qemu-virt-riscv64/rust/src/inti.rs create mode 100644 machines/qemu-virt-riscv64/rust/src/lib.rs create mode 100644 machines/qemu-virt-riscv64/rust/src/libc.rs create mode 100644 machines/qemu-virt-riscv64/rust/src/librt.rs create mode 100644 machines/qemu-virt-riscv64/rust/tool/build_support.py diff --git a/machines/qemu-virt-riscv64/Kconfig b/machines/qemu-virt-riscv64/Kconfig index 98a4e778..61cfc28c 100644 --- a/machines/qemu-virt-riscv64/Kconfig +++ b/machines/qemu-virt-riscv64/Kconfig @@ -9,6 +9,7 @@ PKGS_DIR := packages source "$(RTT_DIR)/Kconfig" osource "$PKGS_DIR/Kconfig" rsource "driver/Kconfig" +rsource "rust/Kconfig" config BOARD_QEMU_VIRT_RV64 bool diff --git a/machines/qemu-virt-riscv64/rust/Cargo.toml b/machines/qemu-virt-riscv64/rust/Cargo.toml new file mode 100644 index 00000000..0393fe21 --- /dev/null +++ b/machines/qemu-virt-riscv64/rust/Cargo.toml @@ -0,0 +1,23 @@ +[package] +name = "rt-rust" +version = "0.1.0" +edition = "2021" + +[lib] +name = "rt_rust" +crate-type = ["staticlib"] + +[dependencies] + +[features] +default = [] +example_hello = [] + +[profile.release] +lto = true +opt-level = "z" +codegen-units = 1 +panic = "abort" + +[profile.dev] +panic = "abort" \ No newline at end of file diff --git a/machines/qemu-virt-riscv64/rust/Kconfig b/machines/qemu-virt-riscv64/rust/Kconfig new file mode 100644 index 00000000..91ae508e --- /dev/null +++ b/machines/qemu-virt-riscv64/rust/Kconfig @@ -0,0 +1,29 @@ +menuconfig RT_USING_RUST + bool "Enable Rust component support" + default n + help + Enable Rust programming language support for RT-Thread. + This allows you to write RT-Thread components using Rust. + +if RT_USING_RUST + + config RUST_DEBUG_BUILD + bool "Build Rust code in debug mode" + default n + help + Build Rust code with debug symbols and without optimizations. + This increases binary size but helps with debugging. + + config RUST_EXAMPLE_HELLO + bool "Enable hello example" + default y + help + Enable the basic hello world example function. + + config RUST_INIT_COMPONENT + bool "Auto-initialize Rust component" + default y + help + Automatically initialize Rust component during RT-Thread startup. + +endif \ No newline at end of file diff --git a/machines/qemu-virt-riscv64/rust/README_cn.md b/machines/qemu-virt-riscv64/rust/README_cn.md new file mode 100644 index 00000000..19c3d6b8 --- /dev/null +++ b/machines/qemu-virt-riscv64/rust/README_cn.md @@ -0,0 +1,105 @@ +# RT-Thread Rust 组件 + +RT-Thread RTOS 的通用 Rust 组件,支持多架构自动检测。 + +## 项目结构 + +``` +rust/ +├── Cargo.toml # Rust 项目配置 +├── src/ +│ ├── lib.rs # 主库入口点 +│ ├── libc.rs # 标准 C 库绑定 +│ ├── librt.rs # RT-Thread 内核 API 绑定 +│ ├── init.rs # 组件初始化 +│ └── examples/ # 示例演示 +│ └── hello.rs # 基础 hello world +├── rust_cmd.c # MSH 命令注册 +├── SConscript # 带自动检测的构建脚本 +├── Kconfig # 配置选项 +``` + +## 快速开始 + +### 前置要求 + +1. **安装 Rust** +```bash +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh +``` + +2. **添加目标平台**(根据您的架构) +```bash +# RISC-V64(软浮点) +rustup target add riscv64imac-unknown-none-elf + +``` + +### 构建 + +```bash +# 在 menuconfig 中启用 Rust 组件 +scons --menuconfig +# 导航至:Rust Component Support → Enable + +# 构建 +scons -j$(nproc) + +# 清理 +scons -c +``` + +## 支持的架构 + +| 架构 | 目标 | 自动检测 | +|------|------|----------| +| RISC-V32 | riscv32ima[f]c-unknown-none-elf | ✓ | +| RISC-V64 | riscv64[gc/imac]-unknown-none-elf | ✓ | + +构建系统会自动从 RT-Thread 配置中检测正确的目标。 + +## MSH 命令 + +| 命令 | 描述 | +|------|------| +| `rust_hello` | 打印问候信息 | + +## 配置选项 + +通过 `menuconfig` 配置: + +- `RT_USING_RUST` - 启用/禁用 Rust 组件 +- `RUST_DEBUG_BUILD` - 使用调试符号构建 +- `RUST_EXAMPLE_*` - 启用特定示例 +- `RUST_INIT_COMPONENT` - 启动时自动初始化 + + +## 扩展组件 + +通过以下方式添加新功能: + +1. 在 `src/` 中创建模块 +2. 在 `src/examples/` 中添加示例 +3. 在 `rust_cmd.c` 中注册命令 + +## 故障排除 + +### 链接错误 + +如果遇到 "can't link double-float modules with soft-float modules" 错误: +- 构建系统应该自动检测正确的 ABI +- 检查编译器的 `-mabi` 标志是否与 Rust 目标匹配 + +### 目标未安装 + +如果提示目标未安装: +```bash +rustup target add <目标名称> +``` + +## 参考资料 + +- [Rust 嵌入式编程手册](https://docs.rust-embedded.org/) +- [RT-Thread 文档中心](https://www.rt-thread.org/document/site/) +- [Rust FFI 编程](https://doc.rust-lang.org/nomicon/ffi.html) +- [RISC-V 规范](https://riscv.org/technical/specifications/) \ No newline at end of file diff --git a/machines/qemu-virt-riscv64/rust/SConscript b/machines/qemu-virt-riscv64/rust/SConscript new file mode 100644 index 00000000..48fd8ac8 --- /dev/null +++ b/machines/qemu-virt-riscv64/rust/SConscript @@ -0,0 +1,79 @@ +import os +import sys +from building import * + +cwd = GetCurrentDir() + +# Import helper utilities +sys.path.append(os.path.join(cwd, 'tools')) +from build_support import ( + detect_rust_target, + make_rustflags, + collect_features, + verify_rust_toolchain, + ensure_rust_target_installed, + cargo_build_staticlib, + clean_rust_build, +) + + +def _has(sym: str) -> bool: + try: + return bool(GetDepend([sym])) + except Exception: + return bool(GetDepend(sym)) + + +# Not enabled? Return empty group early +if not _has('RT_USING_RUST'): + group = [] + Return('group') + + +# Source files – MSH command glue +src = ['rust_cmd.c'] +LIBS = [] +LIBPATH = [] + +if GetOption('clean'): + # Clean Rust artifacts if toolchain present + if verify_rust_toolchain(): + clean_rust_build(Dir('#').abspath) + else: + print('Warning: Rust toolchain not found, skipping Rust clean') +else: + if verify_rust_toolchain(): + import rtconfig + + target = detect_rust_target(_has, rtconfig) + if not target: + print('Error: Unable to detect Rust target; please check configuration') + else: + print(f'Detected Rust target: {target}') + + # Optional hint if target missing + ensure_rust_target_installed(target) + + # Build mode and features + debug = bool(_has('RUST_DEBUG_BUILD')) + features = collect_features(_has) + + rustflags = make_rustflags(rtconfig, target) + rust_lib = cargo_build_staticlib( + rust_dir=cwd, target=target, features=features, debug=debug, rustflags=rustflags + ) + + if rust_lib: + LIBS = ['rt_rust'] + LIBPATH = [os.path.dirname(rust_lib)] + print('Rust library linked successfully') + else: + print('Warning: Failed to build Rust library') + else: + print('Warning: Rust toolchain not found') + print('Please install Rust from https://rustup.rs') + +# Define component group for SCons +group = DefineGroup('rust', src, depend=['RT_USING_RUST'], LIBS=LIBS, LIBPATH=LIBPATH) + +Return('group') \ No newline at end of file diff --git a/machines/qemu-virt-riscv64/rust/rust_cmd.c b/machines/qemu-virt-riscv64/rust/rust_cmd.c new file mode 100644 index 00000000..effecf1f --- /dev/null +++ b/machines/qemu-virt-riscv64/rust/rust_cmd.c @@ -0,0 +1,99 @@ +/* + * Copyright (c) 2006-2024, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2025-09-15 foxglove 1.0 version + * + * Description: Rust component MSH command registration + * Provides access interface to Rust modular APIs + */ + +#include +#include +#include +#include + +/* ============== Rust function declarations ============== */ + +/* Initialization */ +extern int rust_init(void); + +/* hello module */ +#ifdef RUST_EXAMPLE_HELLO +extern void rust_hello(void); +extern void rust_hello_with_name(const char *name); +extern void rust_hello_rust_style(void); +#endif + + +/* ============== MSH command implementation ============== */ + +/* Basic command: hello */ +#ifdef RUST_EXAMPLE_HELLO +static int cmd_rust_hello(int argc, char **argv) +{ + if (argc == 1) + { + rust_hello(); + } + else if (argc == 2) + { + rust_hello_with_name(argv[1]); + } + else + { + printf("Usage: rust_hello [name]\n"); + } + return 0; +} +MSH_CMD_EXPORT_ALIAS(cmd_rust_hello, rust_hello, Rust hello command); +#endif + + +/* Comprehensive test command */ +static int cmd_rust_test(int argc, char **argv) +{ + printf("\n=== Rust Component Test Suite ===\n"); + + /* 1. Hello test */ + printf("\n1. Hello Test:\n"); + #ifdef RUST_EXAMPLE_HELLO + rust_hello(); + rust_hello_rust_style(); + #else + printf(" (hello example disabled)\n"); + #endif + + printf("\n=== All tests completed ===\n"); + return 0; +} +MSH_CMD_EXPORT_ALIAS(cmd_rust_test, rust_test, Run Rust component test suite); + +/* Help command */ +static int cmd_rust_help(int argc, char **argv) +{ + printf("\nRust Component Commands:\n"); + #ifdef RUST_EXAMPLE_HELLO + printf(" rust_hello [name] - Say hello\n"); + #endif + return 0; +} +MSH_CMD_EXPORT_ALIAS(cmd_rust_help, rust_help, Show Rust component help); + +/* Component initialization */ +static int rust_component_init(void) +{ + int ret = rust_init(); + if (ret == 0) + { + printf("Rust component initialized (modular version)\n"); + printf("Use 'rust_help' to see available commands\n"); + } + return ret; +} +#ifdef RUST_INIT_COMPONENT +INIT_APP_EXPORT(rust_component_init); +#endif \ No newline at end of file diff --git a/machines/qemu-virt-riscv64/rust/src/examples/hello.rs b/machines/qemu-virt-riscv64/rust/src/examples/hello.rs new file mode 100644 index 00000000..6a44349e --- /dev/null +++ b/machines/qemu-virt-riscv64/rust/src/examples/hello.rs @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2006-2024, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2025-09-15 foxglove 1.0 version + */ + +// Hello example - demonstrates basic output functionality + +/// Simple hello function +#[no_mangle] +pub extern "C" fn rust_hello() { + unsafe { + libc::printf(b"Hello from Rust!\n\0".as_ptr()); + } +} + +/// Hello function with name parameter +#[no_mangle] +pub extern "C" fn rust_hello_with_name(name: *const libc::c_char) { + if name.is_null() { + rust_hello(); + } else { + unsafe { + libc::printf(b"Hello, \0".as_ptr()); + libc::printf(name as *const u8); + libc::printf(b"!\n\0".as_ptr()); + } + } +} + +/// Print using Rust-style string +#[no_mangle] +pub extern "C" fn rust_hello_rust_style() { + libc::print_str("Hello from Rust (Rust style)!\n"); +} \ No newline at end of file diff --git a/machines/qemu-virt-riscv64/rust/src/inti.rs b/machines/qemu-virt-riscv64/rust/src/inti.rs new file mode 100644 index 00000000..e3cea820 --- /dev/null +++ b/machines/qemu-virt-riscv64/rust/src/inti.rs @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2006-2024, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2025-09-15 foxglove 1.0 version + */ + +//! Rust component initialization module +//! +//! Handles the initialization of the Rust component within RT-Thread + +use crate::libc; + +/// Component initialization function +/// This function is called during RT-Thread system initialization +#[no_mangle] +pub extern "C" fn rust_init() -> i32 { + unsafe { + libc::printf(b"Rust component initialized\n\0".as_ptr()); + } + 0 +} \ No newline at end of file diff --git a/machines/qemu-virt-riscv64/rust/src/lib.rs b/machines/qemu-virt-riscv64/rust/src/lib.rs new file mode 100644 index 00000000..8b44fae1 --- /dev/null +++ b/machines/qemu-virt-riscv64/rust/src/lib.rs @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2006-2024, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author foxglove + * 2025-09-15 foxglove 1.0 version + */ + +#![no_std] +#![allow(non_camel_case_types)] + +use core::panic::PanicInfo; + +// Core modules +pub mod libc; +pub mod librt; +pub mod init; + +// Example modules are gated by Cargo features so they can be toggled from Kconfig +// Each module re-exports its `#[no_mangle]` extern functions when enabled +#[cfg(feature = "example_hello")] +mod example_hello { + use crate::libc; + use crate::librt; + use core::ffi::{c_char, c_void}; + include!("examples/hello.rs"); +} +#[cfg(feature = "example_hello")] +pub use example_hello::*; + +// Re-export initialization function +pub use init::rust_init; + +// Panic handler +#[panic_handler] +fn panic(_info: &PanicInfo) -> ! { + unsafe { + libc::printf(b"Rust panic occurred!\n\0".as_ptr()); + } + loop {} +} \ No newline at end of file diff --git a/machines/qemu-virt-riscv64/rust/src/libc.rs b/machines/qemu-virt-riscv64/rust/src/libc.rs new file mode 100644 index 00000000..3fd2ef48 --- /dev/null +++ b/machines/qemu-virt-riscv64/rust/src/libc.rs @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2006-2024, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author foxglove + * 2025-09-15 foxglove 1.0 version + */ + +//! C standard library API bindings +//! +//! Provides Rust wrappers for standard C library functions + +pub use core::ffi::{c_char, c_int, c_void, c_uint, c_long}; + +// ============== stdio functions ============== +extern "C" { + pub fn printf(fmt: *const u8, ...) -> c_int; + pub fn sprintf(str: *mut c_char, fmt: *const c_char, ...) -> c_int; + pub fn snprintf(str: *mut c_char, size: usize, fmt: *const c_char, ...) -> c_int; + pub fn puts(s: *const c_char) -> c_int; + pub fn putchar(c: c_int) -> c_int; +} + +/// Print string (Rust style) +pub fn print_str(s: &str) { + for byte in s.bytes() { + unsafe { putchar(byte as c_int) }; + } +} + +/// Print null-terminated string +pub fn print_cstr(s: &[u8]) { + unsafe { printf(s.as_ptr()) }; +} \ No newline at end of file diff --git a/machines/qemu-virt-riscv64/rust/src/librt.rs b/machines/qemu-virt-riscv64/rust/src/librt.rs new file mode 100644 index 00000000..296fc113 --- /dev/null +++ b/machines/qemu-virt-riscv64/rust/src/librt.rs @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2006-2024, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author foxglove + * 2025-09-15 foxglove 1.0 version + */ + +//! RT-Thread OS API bindings +//! +//! Provides Rust wrappers for RT-Thread kernel and device driver APIs + +use core::ffi::{c_char, c_int, c_void, c_uint, c_ulong}; + +// RT-Thread basic type definitions +pub type rt_base_t = c_ulong; +pub type rt_ubase_t = c_ulong; +pub type rt_tick_t = c_uint; +pub type rt_size_t = c_ulong; +pub type rt_err_t = c_int; +pub type rt_thread_t = *mut c_void; +pub type rt_sem_t = *mut c_void; +pub type rt_mutex_t = *mut c_void; +pub type rt_device_t = *mut c_void; + +// RT-Thread error codes +pub const RT_EOK: rt_err_t = 0; +pub const RT_ERROR: rt_err_t = 1; +pub const RT_ETIMEOUT: rt_err_t = 2; +pub const RT_EFULL: rt_err_t = 3; +pub const RT_EEMPTY: rt_err_t = 4; +pub const RT_ENOMEM: rt_err_t = 5; +pub const RT_ENOSYS: rt_err_t = 6; +pub const RT_EBUSY: rt_err_t = 7; +pub const RT_EIO: rt_err_t = 8; +pub const RT_EINTR: rt_err_t = 9; +pub const RT_EINVAL: rt_err_t = 10; + +// ============== Kernel object management ============== +extern "C" { + pub fn rt_object_get_type(object: *mut c_void) -> u8; + pub fn rt_object_find(name: *const c_char, object_type: u8) -> *mut c_void; +} + + +// ============== Debug output ============== +extern "C" { + pub fn rt_kprintf(fmt: *const u8, ...) -> c_int; +} \ No newline at end of file diff --git a/machines/qemu-virt-riscv64/rust/tool/build_support.py b/machines/qemu-virt-riscv64/rust/tool/build_support.py new file mode 100644 index 00000000..dc53ea89 --- /dev/null +++ b/machines/qemu-virt-riscv64/rust/tool/build_support.py @@ -0,0 +1,181 @@ +import os +import subprocess + + +def _parse_cflags(cflags: str): + info = { + "march": None, + "mabi": None, + "rv_bits": None, # 32 or 64 + "has_f": False, + "has_d": False, + } + + if not cflags: + return info + + parts = cflags.split() + for flag in parts: + if flag.startswith("-march="): + info["march"] = flag.split("=", 1)[1] + if "rv32" in info["march"]: + info["rv_bits"] = 32 + elif "rv64" in info["march"]: + info["rv_bits"] = 64 + # crude feature detection + m = info["march"] + if m: + info["has_f"] = ("f" in m) + info["has_d"] = ("d" in m) + elif flag.startswith("-mabi="): + info["mabi"] = flag.split("=", 1)[1] + if info["mabi"] in ("ilp32d", "ilp32f", "lp64d", "lp64f"): + # floating-point ABI implies FPU availability + info["has_f"] = True + info["has_d"] = info["mabi"].endswith("d") + + return info + + +def detect_rust_target(has, rtconfig): + """ + Decide the Rust target triple based on RT-Thread Kconfig and rtconfig.*. + `has` is a callable: has("SYMBOL") -> bool + """ + # RISC-V + if has("ARCH_RISCV32") or has("ARCH_RISCV64"): + cflags = getattr(rtconfig, "CFLAGS", "") + info = _parse_cflags(cflags) + + # fallback to Kconfig hint if march not present + rv_bits = info["rv_bits"] or (32 if has("ARCH_RISCV32") else 64) + + # ABI must carry f/d to actually use hard-float calling convention + abi = info["mabi"] or "" + abi_has_fp = abi.endswith("f") or abi.endswith("d") + has_fpu = has("ARCH_RISCV_FPU") or has("ENABLE_FPU") or info["has_f"] or info["has_d"] + + if rv_bits == 32: + # Only pick *f* target when ABI uses hard-float; otherwise use soft-float even if core has F/D + return "riscv32imafc-unknown-none-elf" if abi_has_fp else "riscv32imac-unknown-none-elf" + else: + # rv64: prefer gc (includes fd) only when ABI uses hard-float + return "riscv64gc-unknown-none-elf" if abi_has_fp else "riscv64imac-unknown-none-elf" + + # Fallback by ARCH string or CFLAGS + arch = getattr(rtconfig, "ARCH", None) + if arch: + arch_l = arch.lower() + if "riscv32" in arch_l: + return "riscv32imac-unknown-none-elf" + if "riscv64" in arch_l or "risc-v" in arch_l: + # Many BSPs use "risc-v" token; assume 64-bit for virt64 + return "riscv64imac-unknown-none-elf" + + # Parse CFLAGS for hints + cflags = getattr(rtconfig, "CFLAGS", "") + if "-march=rv32" in cflags: + return "riscv32imafc-unknown-none-elf" if ("f" in cflags or "d" in cflags) else "riscv32imac-unknown-none-elf" + if "-march=rv64" in cflags: + if ("-mabi=lp64d" in cflags) or ("-mabi=lp64f" in cflags) or ("f" in cflags) or ("d" in cflags): + return "riscv64gc-unknown-none-elf" + return "riscv64imac-unknown-none-elf" + + return None + + +def make_rustflags(rtconfig, target: str): + rustflags = [ + "-C", "opt-level=z", + "-C", "panic=abort", + "-C", "relocation-model=static", + ] + + if "riscv" in target: + rustflags += [ + "-C", "code-model=medium", + "-C", "link-dead-code", + ] + # propagate march/mabi for consistency (use link-arg for staticlib builds – harmless) + cflags = getattr(rtconfig, "CFLAGS", "") + for flag in cflags.split(): + if flag.startswith("-march=") or flag.startswith("-mabi="): + rustflags += ["-C", f"link-arg={flag}"] + + return " ".join(rustflags) + + +def collect_features(has): + feats = [] + if has("RUST_EXAMPLE_HELLO"): + feats.append("example_hello") + return feats + + +def verify_rust_toolchain(): + try: + r1 = subprocess.run(["rustc", "--version"], capture_output=True, text=True) + r2 = subprocess.run(["cargo", "--version"], capture_output=True, text=True) + return r1.returncode == 0 and r2.returncode == 0 + except Exception: + return False + + +def ensure_rust_target_installed(target: str): + try: + result = subprocess.run(["rustup", "target", "list", "--installed"], capture_output=True, text=True) + if result.returncode == 0 and target in result.stdout: + return True + print(f"Rust target '{target}' is not installed.") + print(f"Please install it with: rustup target add {target}") + except Exception: + print("Warning: Failed to check rustup target list (rustup missing?)") + return False + + +def cargo_build_staticlib(rust_dir: str, target: str, features, debug: bool, rustflags: str = None): + build_root = os.path.join(os.path.abspath(os.path.join(rust_dir, os.pardir)), "build", "rust") + target_dir = os.path.join(build_root, "target") + os.makedirs(build_root, exist_ok=True) + + env = os.environ.copy() + if rustflags: + prev = env.get("RUSTFLAGS", "").strip() + env["RUSTFLAGS"] = (prev + " " + rustflags).strip() if prev else rustflags + env["CARGO_TARGET_DIR"] = target_dir + + cmd = ["cargo", "build", "--target", target, "--manifest-path", os.path.join(rust_dir, "Cargo.toml")] + if not debug: + cmd.insert(2, "--release") + if features: + cmd += ["--no-default-features", "--features", ",".join(features)] + + print("Building Rust component (cargo)…") + res = subprocess.run(cmd, cwd=rust_dir, env=env, capture_output=True, text=True) + if res.returncode != 0: + print("Warning: Rust build failed") + if res.stderr: + print(res.stderr) + return None + + mode = "debug" if debug else "release" + lib_path = os.path.join(target_dir, target, mode, "librt_rust.a") + if os.path.exists(lib_path): + print("Rust component built successfully") + return lib_path + print("Warning: Library not found at expected location") + return None + + +def clean_rust_build(bsp_root: str): + build_dir = os.path.join(bsp_root, "build", "rust") + if os.path.exists(build_dir): + print("Cleaning Rust build artifacts…") + import shutil + try: + shutil.rmtree(build_dir) + print("Rust build artifacts cleaned") + except Exception as e: + print(f"Warning: Failed to clean Rust artifacts: {e}") + else: + print("No Rust build artifacts to clean") \ No newline at end of file From 76110e8b99f5ead4f6fb2c33d98d9c8183c62980 Mon Sep 17 00:00:00 2001 From: foxglove <8208210429@csu.edu.cn> Date: Tue, 30 Sep 2025 01:27:50 +0800 Subject: [PATCH 04/10] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=96=B0=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=EF=BC=8C=E5=8C=85=E6=8B=ACstring=E3=80=81memory?= =?UTF-8?q?=E5=92=8Cthread=E7=AD=89=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- machines/qemu-virt-riscv64/rust/rust_cmd.c | 252 +++++++++++++++++- .../rust/src/examples/memory_demo.rs | 149 +++++++++++ .../rust/src/examples/printf_demo.rs | 58 ++++ .../rust/src/examples/string_demo.rs | 96 +++++++ .../rust/src/examples/thread_demo.rs | 142 ++++++++++ .../rust/src/examples/vec_demo.rs | 104 ++++++++ machines/qemu-virt-riscv64/rust/src/lib.rs | 55 +++- machines/qemu-virt-riscv64/rust/src/libc.rs | 77 ++++++ machines/qemu-virt-riscv64/rust/src/librt.rs | 151 +++++++++++ 9 files changed, 1081 insertions(+), 3 deletions(-) create mode 100644 machines/qemu-virt-riscv64/rust/src/examples/memory_demo.rs create mode 100644 machines/qemu-virt-riscv64/rust/src/examples/printf_demo.rs create mode 100644 machines/qemu-virt-riscv64/rust/src/examples/string_demo.rs create mode 100644 machines/qemu-virt-riscv64/rust/src/examples/thread_demo.rs create mode 100644 machines/qemu-virt-riscv64/rust/src/examples/vec_demo.rs diff --git a/machines/qemu-virt-riscv64/rust/rust_cmd.c b/machines/qemu-virt-riscv64/rust/rust_cmd.c index effecf1f..689f2af9 100644 --- a/machines/qemu-virt-riscv64/rust/rust_cmd.c +++ b/machines/qemu-virt-riscv64/rust/rust_cmd.c @@ -5,7 +5,7 @@ * * Change Logs: * Date Author Notes - * 2025-09-15 foxglove 1.0 version + * 2025-09-20 RT-Thread First version * * Description: Rust component MSH command registration * Provides access interface to Rust modular APIs @@ -28,6 +28,48 @@ extern void rust_hello_with_name(const char *name); extern void rust_hello_rust_style(void); #endif +/* printf_demo module */ +#ifdef RUST_EXAMPLE_PRINTF +extern void rust_printf_demo(void); +extern int rust_sprintf_demo(void); +#endif + +/* string_demo module */ +#ifdef RUST_EXAMPLE_STRING +extern size_t rust_strlen_demo(const char *s); +extern int rust_strcmp_demo(const char *s1, const char *s2); +extern void rust_strcpy_demo(void); +extern void rust_strcat_demo(void); +extern int rust_strstr_demo(const char *haystack, const char *needle); +extern void rust_string_demo_all(void); +#endif + +/* memory_demo module */ +#ifdef RUST_EXAMPLE_MEMORY +extern int rust_add(int a, int b); +extern int rust_multiply(int a, int b); +extern int rust_memcpy_test(void *dest, const void *src, size_t size); +extern void rust_memset_demo(void); +extern void rust_memcmp_demo(void); +extern void rust_malloc_demo(void); +extern void rust_rt_malloc_demo(void); +extern void rust_memory_demo_all(void); +#endif + +/* thread_demo module */ +#ifdef RUST_EXAMPLE_THREAD +extern void rust_thread_create_demo(void); +extern void rust_thread_self_demo(void); +extern void rust_thread_sleep_demo(void); +extern void rust_thread_wrapper_demo(void); +extern void rust_thread_demo_all(void); +#endif + +/* vec_demo module */ +#ifdef RUST_EXAMPLE_VEC +extern void rust_vec_demo(void); +extern void rust_vec_demo_all(void); +#endif /* ============== MSH command implementation ============== */ @@ -52,6 +94,152 @@ static int cmd_rust_hello(int argc, char **argv) MSH_CMD_EXPORT_ALIAS(cmd_rust_hello, rust_hello, Rust hello command); #endif +/* Arithmetic command: add */ +#ifdef RUST_EXAMPLE_MEMORY +static int cmd_rust_add(int argc, char **argv) +{ + if (argc < 3) + { + printf("Usage: rust_add \n"); + printf("Example: rust_add 100 200\n"); + return -1; + } + + int a = atoi(argv[1]); + int b = atoi(argv[2]); + int result = rust_add(a, b); + printf("%d + %d = %d\n", a, b, result); + return 0; +} +MSH_CMD_EXPORT_ALIAS(cmd_rust_add, rust_add, Add two numbers using Rust); + +/* Arithmetic command: multiply */ +static int cmd_rust_mul(int argc, char **argv) +{ + if (argc < 3) + { + printf("Usage: rust_mul \n"); + printf("Example: rust_mul 10 20\n"); + return -1; + } + + int a = atoi(argv[1]); + int b = atoi(argv[2]); + int result = rust_multiply(a, b); + printf("%d * %d = %d\n", a, b, result); + return 0; +} +MSH_CMD_EXPORT_ALIAS(cmd_rust_mul, rust_mul, Multiply two numbers using Rust); +#endif /* RUST_EXAMPLE_MEMORY */ + +/* String command: strlen */ +#ifdef RUST_EXAMPLE_STRING +static int cmd_rust_strlen(int argc, char **argv) +{ + if (argc < 2) + { + printf("Usage: rust_strlen \n"); + return -1; + } + + size_t len = rust_strlen_demo(argv[1]); + printf("String '%s' length: %zu\n", argv[1], len); + return 0; +} +MSH_CMD_EXPORT_ALIAS(cmd_rust_strlen, rust_strlen, Calculate string length); + +/* String command: strcmp */ +static int cmd_rust_strcmp(int argc, char **argv) +{ + if (argc < 3) + { + printf("Usage: rust_strcmp \n"); + return -1; + } + + int result = rust_strcmp_demo(argv[1], argv[2]); + printf("strcmp('%s', '%s') = %d\n", argv[1], argv[2], result); + return 0; +} +MSH_CMD_EXPORT_ALIAS(cmd_rust_strcmp, rust_strcmp, Compare two strings); + +/* String demonstration */ +static int cmd_rust_string(int argc, char **argv) +{ + rust_string_demo_all(); + return 0; +} +MSH_CMD_EXPORT_ALIAS(cmd_rust_string, rust_string, Demonstrate string operations); +#endif /* RUST_EXAMPLE_STRING */ + +/* Memory demonstration */ +#ifdef RUST_EXAMPLE_MEMORY +static int cmd_rust_memory(int argc, char **argv) +{ + rust_memory_demo_all(); + return 0; +} +MSH_CMD_EXPORT_ALIAS(cmd_rust_memory, rust_memory, Demonstrate memory operations); +#endif + +/* Vector demonstration */ +#ifdef RUST_EXAMPLE_VEC +static int cmd_rust_vec(int argc, char **argv) +{ + rust_vec_demo(); + return 0; +} +MSH_CMD_EXPORT_ALIAS(cmd_rust_vec, rust_vec, Demonstrate vector operations); +#endif + +/* Thread demonstration */ +#ifdef RUST_EXAMPLE_THREAD +static int cmd_rust_thread(int argc, char **argv) +{ + if (argc == 1) + { + rust_thread_demo_all(); + } + else if (strcmp(argv[1], "create") == 0) + { + rust_thread_create_demo(); + } + else if (strcmp(argv[1], "self") == 0) + { + rust_thread_self_demo(); + } + else if (strcmp(argv[1], "sleep") == 0) + { + rust_thread_sleep_demo(); + } + else if (strcmp(argv[1], "wrapper") == 0) + { + rust_thread_wrapper_demo(); + } + else + { + printf("Usage: rust_thread [create|self|sleep|wrapper]\n"); + printf(" Without arguments: run all demos\n"); + printf(" create - demonstrate thread creation\n"); + printf(" self - show current thread info\n"); + printf(" sleep - demonstrate thread sleep\n"); + printf(" wrapper - demonstrate Rust thread wrapper\n"); + } + return 0; +} +MSH_CMD_EXPORT_ALIAS(cmd_rust_thread, rust_thread, RT-Thread operations demo); +#endif + +/* Printf demonstration */ +#ifdef RUST_EXAMPLE_PRINTF +static int cmd_rust_printf(int argc, char **argv) +{ + rust_printf_demo(); + rust_sprintf_demo(); + return 0; +} +MSH_CMD_EXPORT_ALIAS(cmd_rust_printf, rust_printf, Demonstrate printf operations); +#endif /* Comprehensive test command */ static int cmd_rust_test(int argc, char **argv) @@ -67,6 +255,45 @@ static int cmd_rust_test(int argc, char **argv) printf(" (hello example disabled)\n"); #endif + /* 2. Printf test */ + printf("\n2. Printf Test:\n"); + #ifdef RUST_EXAMPLE_PRINTF + rust_printf_demo(); + #else + printf(" (printf example disabled)\n"); + #endif + + /* 3. String test */ + printf("\n3. String Test:\n"); + #ifdef RUST_EXAMPLE_STRING + const char *test_str = "RT-Thread"; + printf(" strlen(\"%s\") = %zu\n", test_str, rust_strlen_demo(test_str)); + #else + printf(" (string example disabled)\n"); + #endif + + /* 4. Arithmetic test */ + printf("\n4. Arithmetic Test:\n"); + #ifdef RUST_EXAMPLE_MEMORY + printf(" 42 + 58 = %d\n", rust_add(42, 58)); + printf(" 10 * 20 = %d\n", rust_multiply(10, 20)); + #else + printf(" (memory/arithmetic example disabled)\n"); + #endif + + /* 5. Memory test */ + printf("\n5. Memory Test:\n"); + #ifdef RUST_EXAMPLE_MEMORY + char src[] = "Hello"; + char dest[10]; + if (rust_memcpy_test(dest, src, strlen(src) + 1)) + { + printf(" memcpy passed: '%s'\n", dest); + } + #else + printf(" (memory example disabled)\n"); + #endif + printf("\n=== All tests completed ===\n"); return 0; } @@ -79,6 +306,27 @@ static int cmd_rust_help(int argc, char **argv) #ifdef RUST_EXAMPLE_HELLO printf(" rust_hello [name] - Say hello\n"); #endif + #ifdef RUST_EXAMPLE_MEMORY + printf(" rust_add - Add two numbers\n"); + printf(" rust_mul - Multiply two numbers\n"); + printf(" rust_memory - Memory operations demo\n"); + #endif + #ifdef RUST_EXAMPLE_STRING + printf(" rust_strlen - Get string length\n"); + printf(" rust_strcmp - Compare strings\n"); + printf(" rust_string - String operations demo\n"); + #endif + #ifdef RUST_EXAMPLE_PRINTF + printf(" rust_printf - Printf operations demo\n"); + #endif + #ifdef RUST_EXAMPLE_THREAD + printf(" rust_thread [opt] - Thread operations demo\n"); + #endif + printf(" rust_test - Run test suite\n"); + printf(" rust_help - Show this help\n"); + #ifdef RUST_EXAMPLE_VEC + printf(" rust_vec - Vector operations demo\n"); + #endif return 0; } MSH_CMD_EXPORT_ALIAS(cmd_rust_help, rust_help, Show Rust component help); @@ -96,4 +344,4 @@ static int rust_component_init(void) } #ifdef RUST_INIT_COMPONENT INIT_APP_EXPORT(rust_component_init); -#endif \ No newline at end of file +#endif diff --git a/machines/qemu-virt-riscv64/rust/src/examples/memory_demo.rs b/machines/qemu-virt-riscv64/rust/src/examples/memory_demo.rs new file mode 100644 index 00000000..d688ed2a --- /dev/null +++ b/machines/qemu-virt-riscv64/rust/src/examples/memory_demo.rs @@ -0,0 +1,149 @@ +/* + * Copyright (c) 2006-2024, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2025-09-20 foxglove test memory operations + */ + +// Memory operation examples - demonstrates memory allocation, copy, set and other operations + +/// Basic addition function (for testing) +#[no_mangle] +pub extern "C" fn rust_add(a: i32, b: i32) -> i32 { + a + b +} + +/// Multiplication function (for testing) +#[no_mangle] +pub extern "C" fn rust_multiply(a: i32, b: i32) -> i32 { + a * b +} + +/// Memory copy test +#[no_mangle] +pub extern "C" fn rust_memcpy_test(dest: *mut u8, src: *const u8, size: usize) -> bool { + if dest.is_null() || src.is_null() || size == 0 { + return false; + } + unsafe { + libc::memcpy(dest as *mut c_void, src as *const c_void, size); + } + true +} + +/// Memory set example +#[no_mangle] +pub extern "C" fn rust_memset_demo() { + let mut buffer: [u8; 32] = [0; 32]; + + unsafe { + // 设置前16字节为'A' + libc::memset(buffer.as_mut_ptr() as *mut c_void, b'A' as i32, 16); + + // 设置后16字节为'B' + let second_half = buffer.as_mut_ptr().add(16) as *mut c_void; + libc::memset(second_half, b'B' as i32, 16); + + // 打印结果 + libc::printf(b"Buffer after memset: \0".as_ptr()); + for i in 0..32 { + libc::putchar(buffer[i] as i32); + } + libc::printf(b"\n\0".as_ptr()); + } +} + +/// Memory comparison example +#[no_mangle] +pub extern "C" fn rust_memcmp_demo() { + let buf1 = [1u8, 2, 3, 4, 5]; + let buf2 = [1u8, 2, 3, 4, 5]; + let buf3 = [1u8, 2, 3, 4, 6]; + + unsafe { + let result1 = libc::memcmp( + buf1.as_ptr() as *const c_void, + buf2.as_ptr() as *const c_void, + 5, + ); + libc::printf(b"memcmp(buf1, buf2) = %d (should be 0)\n\0".as_ptr(), result1); + + let result2 = libc::memcmp( + buf1.as_ptr() as *const c_void, + buf3.as_ptr() as *const c_void, + 5, + ); + libc::printf(b"memcmp(buf1, buf3) = %d (should be negative)\n\0".as_ptr(), result2); + } +} + +/// Standard C library malloc/free example +#[no_mangle] +pub extern "C" fn rust_malloc_demo() { + unsafe { + libc::printf(b"\n=== Standard C malloc/free Demo ===\n\0".as_ptr()); + + // 分配内存 + let size = 100; + let ptr = libc::malloc(size); + + if ptr.is_null() { + libc::printf(b"malloc failed!\n\0".as_ptr()); + return; + } + + libc::printf(b"Allocated %zu bytes at %p\n\0".as_ptr(), size, ptr); + + // 使用内存 + libc::memset(ptr, 0x42, size); + + // 释放内存 + libc::free(ptr); + libc::printf(b"Memory freed\n\0".as_ptr()); + } +} + +/// RT-Thread memory allocation example +#[no_mangle] +pub extern "C" fn rust_rt_malloc_demo() { + unsafe { + libc::printf(b"\n=== RT-Thread malloc/free Demo ===\n\0".as_ptr()); + + // 使用RT-Thread的内存分配 + let size = 64; + if let Some(ptr) = librt::rt_safe_malloc(size) { + libc::printf(b"RT-Thread allocated %zu bytes at %p\n\0".as_ptr(), size, ptr); + + // 使用内存 + let buffer = ptr as *mut u8; + for i in 0..size { + *buffer.add(i) = (i as u8) & 0xFF; + } + + // 验证数据 + let mut sum = 0u32; + for i in 0..size { + sum += *buffer.add(i) as u32; + } + libc::printf(b"Data sum: %u\n\0".as_ptr(), sum); + + // 释放内存 + librt::rt_safe_free(ptr); + libc::printf(b"RT-Thread memory freed\n\0".as_ptr()); + } else { + libc::printf(b"RT-Thread malloc failed!\n\0".as_ptr()); + } + } +} + +/// Comprehensive memory operations demonstration +#[no_mangle] +pub extern "C" fn rust_memory_demo_all() { + rust_memset_demo(); + rust_memcmp_demo(); + rust_malloc_demo(); + rust_rt_malloc_demo(); +} diff --git a/machines/qemu-virt-riscv64/rust/src/examples/printf_demo.rs b/machines/qemu-virt-riscv64/rust/src/examples/printf_demo.rs new file mode 100644 index 00000000..3a1a0bbb --- /dev/null +++ b/machines/qemu-virt-riscv64/rust/src/examples/printf_demo.rs @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2006-2024, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2025-09-20 foxglove test printf operations + */ + +// Printf examples - demonstrates formatted output functionality + +/// Demonstrate various printf formats +#[no_mangle] +pub extern "C" fn rust_printf_demo() { + unsafe { + // 基本输出 + libc::printf(b"=== Printf Demo ===\n\0".as_ptr()); + + // 整数格式化 + let num: i32 = 42; + libc::printf(b"Integer: %d\n\0".as_ptr(), num); + libc::printf(b"Hex: 0x%x\n\0".as_ptr(), num); + libc::printf(b"Octal: %o\n\0".as_ptr(), num); + + // 浮点数(注意:需要软浮点支持) + // libc::printf(b"Float: %f\n\0".as_ptr(), 3.14159); + + // 字符和字符串 + let ch = b'R'; + libc::printf(b"Character: %c\n\0".as_ptr(), ch as i32); + libc::printf(b"String: %s\n\0".as_ptr(), b"RT-Thread\0".as_ptr()); + + // 指针 + let ptr = &num as *const i32; + libc::printf(b"Pointer: %p\n\0".as_ptr(), ptr); + } +} + +/// Using sprintf for string formatting +#[no_mangle] +pub extern "C" fn rust_sprintf_demo() -> i32 { + let mut buffer: [u8; 128] = [0; 128]; + let result = unsafe { + libc::sprintf( + buffer.as_mut_ptr() as *mut c_char, + b"Formatted: num=%d, str=%s\0".as_ptr() as *const c_char, + 100, + b"test\0".as_ptr(), + ) + }; + + unsafe { + libc::printf(b"Buffer content: %s\n\0".as_ptr(), buffer.as_ptr()); + } + + result +} diff --git a/machines/qemu-virt-riscv64/rust/src/examples/string_demo.rs b/machines/qemu-virt-riscv64/rust/src/examples/string_demo.rs new file mode 100644 index 00000000..70bbe6ad --- /dev/null +++ b/machines/qemu-virt-riscv64/rust/src/examples/string_demo.rs @@ -0,0 +1,96 @@ +/* + * Copyright (c) 2006-2024, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2025-09-20 foxglove test string operations + */ + +// String operation examples - demonstrates string-related function usage + +/// String length calculation example +#[no_mangle] +pub extern "C" fn rust_strlen_demo(s: *const c_char) -> usize { + libc::safe_strlen(s) +} + +/// String comparison example +#[no_mangle] +pub extern "C" fn rust_strcmp_demo(s1: *const c_char, s2: *const c_char) -> i32 { + if s1.is_null() || s2.is_null() { + return -1; + } + + unsafe { libc::strcmp(s1, s2) } +} + +/// String copy example +#[no_mangle] +pub extern "C" fn rust_strcpy_demo() { + let mut dest: [u8; 64] = [0; 64]; + let src = b"Hello, RT-Thread!\0"; + + unsafe { + libc::strcpy(dest.as_mut_ptr() as *mut c_char, src.as_ptr() as *const c_char); + libc::printf(b"Copied string: %s\n\0".as_ptr(), dest.as_ptr()); + } +} + +/// String concatenation example +#[no_mangle] +pub extern "C" fn rust_strcat_demo() { + let mut buffer: [u8; 128] = [0; 128]; + + // 初始化第一部分 + let part1 = b"Hello, \0"; + unsafe { + libc::strcpy(buffer.as_mut_ptr() as *mut c_char, part1.as_ptr() as *const c_char); + } + + // 连接第二部分 + let part2 = b"RT-Thread!\0"; + unsafe { + libc::strcat(buffer.as_mut_ptr() as *mut c_char, part2.as_ptr() as *const c_char); + libc::printf(b"Concatenated string: %s\n\0".as_ptr(), buffer.as_ptr()); + } +} + +/// String search example +#[no_mangle] +pub extern "C" fn rust_strstr_demo(haystack: *const c_char, needle: *const c_char) -> bool { + if haystack.is_null() || needle.is_null() { + return false; + } + + let result = unsafe { libc::strstr(haystack, needle) }; + !result.is_null() +} + +/// Comprehensive string operations demonstration +#[no_mangle] +pub extern "C" fn rust_string_demo_all() { + unsafe { + libc::printf(b"\n=== String Operations Demo ===\n\0".as_ptr()); + + // 长度计算 + let test_str = b"RT-Thread\0"; + let len = libc::strlen(test_str.as_ptr() as *const c_char); + libc::printf(b"Length of '%s': %zu\n\0".as_ptr(), test_str.as_ptr(), len); + + // 字符串比较 + let str1 = b"abc\0"; + let str2 = b"abd\0"; + let cmp = libc::strcmp(str1.as_ptr() as *const c_char, str2.as_ptr() as *const c_char); + libc::printf(b"strcmp('%s', '%s') = %d\n\0".as_ptr(), + str1.as_ptr(), str2.as_ptr(), cmp); + + // 字符查找 + let ch = b'd' as i32; + let found = libc::strchr(str2.as_ptr() as *const c_char, ch); + if !found.is_null() { + libc::printf(b"Found '%c' in '%s'\n\0".as_ptr(), ch, str2.as_ptr()); + } + } +} diff --git a/machines/qemu-virt-riscv64/rust/src/examples/thread_demo.rs b/machines/qemu-virt-riscv64/rust/src/examples/thread_demo.rs new file mode 100644 index 00000000..50a3b289 --- /dev/null +++ b/machines/qemu-virt-riscv64/rust/src/examples/thread_demo.rs @@ -0,0 +1,142 @@ +/* + * Copyright (c) 2006-2024, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 202-09-25 foxglove test thread operations + */ + +// RT-Thread thread operation examples - demonstrates thread creation, synchronization and other operations + +/// Thread entry function +extern "C" fn thread_entry(param: *mut c_void) { + let id = param as usize; + unsafe { + libc::printf(b"[Thread %d] Started\n\0".as_ptr(), id); + + // 执行一些任务 + for i in 0..3 { + libc::printf(b"[Thread %d] Working... step %d\n\0".as_ptr(), id, i + 1); + librt::rt_thread_mdelay(100); // 休眠100ms + } + + libc::printf(b"[Thread %d] Finished\n\0".as_ptr(), id); + } +} + +/// Thread creation example +#[no_mangle] +pub extern "C" fn rust_thread_create_demo() { + unsafe { + libc::printf(b"\n=== RT-Thread Create Demo ===\n\0".as_ptr()); + + // 创建线程 + let thread = librt::rt_thread_create( + b"rust_thread\0".as_ptr() as *const libc::c_char, + thread_entry, + 1 as *mut c_void, // Pass thread ID as parameter + 2048, // Stack size + 20, // Priority + 10, // Time slice + ); + + if thread.is_null() { + libc::printf(b"Failed to create thread!\n\0".as_ptr()); + return; + } + + libc::printf(b"Thread created successfully\n\0".as_ptr()); + + // 启动线程 + let ret = librt::rt_thread_startup(thread); + if ret == librt::RT_EOK { + libc::printf(b"Thread started successfully\n\0".as_ptr()); + } else { + libc::printf(b"Failed to start thread: %d\n\0".as_ptr(), ret); + } + + // 主线程等待一段时间 + librt::rt_thread_mdelay(500); + } +} + +/// Current thread information example +#[no_mangle] +pub extern "C" fn rust_thread_self_demo() { + unsafe { + libc::printf(b"\n=== Current Thread Info ===\n\0".as_ptr()); + + let current = librt::rt_thread_self(); + if !current.is_null() { + libc::printf(b"Current thread handle: %p\n\0".as_ptr(), current); + + // 获取当前tick + let tick = librt::rt_tick_get(); + libc::printf(b"Current system tick: %u\n\0".as_ptr(), tick); + + // 线程让出CPU + libc::printf(b"Yielding CPU...\n\0".as_ptr()); + librt::rt_thread_yield(); + libc::printf(b"Resumed after yield\n\0".as_ptr()); + } + } +} + +/// Thread sleep example +#[no_mangle] +pub extern "C" fn rust_thread_sleep_demo() { + unsafe { + libc::printf(b"\n=== Thread Sleep Demo ===\n\0".as_ptr()); + + libc::printf(b"Sleeping for 1 second...\n\0".as_ptr()); + librt::rt_thread_mdelay(1000); + libc::printf(b"Woke up after 1 second\n\0".as_ptr()); + + // 使用tick方式休眠 + let ticks = librt::rt_tick_from_millisecond(500); + libc::printf(b"Sleeping for %u ticks (500ms)...\n\0".as_ptr(), ticks); + librt::rt_thread_delay(ticks); + libc::printf(b"Woke up after 500ms\n\0".as_ptr()); + } +} + +/// Using Rust-wrapped thread API +#[no_mangle] +pub extern "C" fn rust_thread_wrapper_demo() { + unsafe { + libc::printf(b"\n=== Thread Wrapper Demo ===\n\0".as_ptr()); + + if let Some(thread) = librt::Thread::create( + b"rust_wrap\0", + thread_entry, + 2 as *mut c_void, + 2048, + 20, + 10, + ) { + libc::printf(b"Thread created using Rust wrapper\n\0".as_ptr()); + + if thread.startup().is_ok() { + libc::printf(b"Thread started successfully\n\0".as_ptr()); + } else { + libc::printf(b"Failed to start thread\n\0".as_ptr()); + } + + // 等待线程完成 + librt::thread_sleep_ms(500); + } else { + libc::printf(b"Failed to create thread using wrapper\n\0".as_ptr()); + } + } +} + +/// Comprehensive thread operations demonstration +#[no_mangle] +pub extern "C" fn rust_thread_demo_all() { + rust_thread_self_demo(); + rust_thread_sleep_demo(); + rust_thread_create_demo(); + rust_thread_wrapper_demo(); +} diff --git a/machines/qemu-virt-riscv64/rust/src/examples/vec_demo.rs b/machines/qemu-virt-riscv64/rust/src/examples/vec_demo.rs new file mode 100644 index 00000000..cf187bb3 --- /dev/null +++ b/machines/qemu-virt-riscv64/rust/src/examples/vec_demo.rs @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2006-2024, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2025-09-25 foxglove test vec operations + */ +/// A minimal vector backed by C malloc/realloc/free and memcpy. +/// Only supports `T: Copy` and no drop semantics for elements. +struct CVec { + ptr: *mut T, + len: usize, + cap: usize, +} + +impl CVec { + fn new() -> Self { + CVec { ptr: core::ptr::null_mut(), len: 0, cap: 0 } + } + + fn with_capacity(cap: usize) -> Self { + if cap == 0 { + return Self::new(); + } + let bytes = cap.saturating_mul(mem::size_of::()); + let raw = unsafe { libc::malloc(bytes) } as *mut T; + if raw.is_null() { + CVec { ptr: core::ptr::null_mut(), len: 0, cap: 0 } + } else { + CVec { ptr: raw, len: 0, cap } + } + } + + fn len(&self) -> usize { self.len } + fn capacity(&self) -> usize { self.cap } + fn as_ptr(&self) -> *const T { self.ptr as *const T } + fn as_mut_ptr(&mut self) -> *mut T { self.ptr } + + fn grow(&mut self) -> bool { + let new_cap = if self.cap == 0 { 4 } else { self.cap.saturating_mul(2) }; + let new_bytes = new_cap.saturating_mul(mem::size_of::()); + + let new_ptr = if self.ptr.is_null() { + unsafe { libc::malloc(new_bytes) as *mut T } + } else { + unsafe { libc::realloc(self.ptr as *mut c_void, new_bytes) as *mut T } + }; + + if new_ptr.is_null() { + return false; + } + self.ptr = new_ptr; + self.cap = new_cap; + true + } + + fn push(&mut self, value: T) -> bool { + if self.len == self.cap { + if !self.grow() { return false; } + } + unsafe { ptr::write(self.ptr.add(self.len), value); } + self.len += 1; + true + } + + fn pop(&mut self) -> Option { + if self.len == 0 { return None; } + self.len -= 1; + let value = unsafe { ptr::read(self.ptr.add(self.len)) }; + Some(value) + } + + fn get(&self, index: usize) -> Option { + if index >= self.len { return None; } + Some(unsafe { ptr::read(self.ptr.add(index)) }) + } +} + +impl Drop for CVec { + fn drop(&mut self) { + if !self.ptr.is_null() { + unsafe { libc::free(self.ptr as *mut c_void); } + } + self.ptr = core::ptr::null_mut(); + self.len = 0; + self.cap = 0; + } +} +#[no_mangle] +pub extern "C" fn rust_vec_demo() { + unsafe { libc::printf(b"\n=== CVec Demo ===\n\0".as_ptr()); } + let mut v: CVec = CVec::with_capacity(2); + for i in 1..=5u32 { + let ok = v.push(i); + unsafe { libc::printf(b"push %u -> %s\n\0".as_ptr(), i, if ok { b"ok\0".as_ptr() } else { b"fail\0".as_ptr() }); } + } + unsafe { libc::printf(b"len=%zu cap=%zu\n\0".as_ptr(), v.len(), v.capacity()); } + for i in 0..v.len() { + let val = v.get(i).unwrap_or(0); + unsafe { libc::printf(b"v[%zu]=%u\n\0".as_ptr(), i, val); } + } +} diff --git a/machines/qemu-virt-riscv64/rust/src/lib.rs b/machines/qemu-virt-riscv64/rust/src/lib.rs index 8b44fae1..3e4a055c 100644 --- a/machines/qemu-virt-riscv64/rust/src/lib.rs +++ b/machines/qemu-virt-riscv64/rust/src/lib.rs @@ -6,12 +6,14 @@ * Change Logs: * Date Author foxglove * 2025-09-15 foxglove 1.0 version + * 2025-09-25 foxglove 1.1 version */ #![no_std] #![allow(non_camel_case_types)] use core::panic::PanicInfo; +use core::ffi::{c_void, c_char}; // Core modules pub mod libc; @@ -30,6 +32,57 @@ mod example_hello { #[cfg(feature = "example_hello")] pub use example_hello::*; +#[cfg(feature = "example_printf")] +mod example_printf { + use crate::libc; + use crate::librt; + use core::ffi::{c_char, c_void}; + include!("examples/printf_demo.rs"); +} +#[cfg(feature = "example_printf")] +pub use example_printf::*; + +#[cfg(feature = "example_string")] +mod example_string { + use crate::libc; + use crate::librt; + use core::ffi::{c_char, c_void}; + include!("examples/string_demo.rs"); +} +#[cfg(feature = "example_string")] +pub use example_string::*; + +#[cfg(feature = "example_memory")] +mod example_memory { + use crate::libc; + use crate::librt; + use core::ffi::{c_char, c_void}; + include!("examples/memory_demo.rs"); +} +#[cfg(feature = "example_memory")] +pub use example_memory::*; + +#[cfg(feature = "example_thread")] +mod example_thread { + use crate::libc; + use crate::librt; + use core::ffi::{c_char, c_void}; + include!("examples/thread_demo.rs"); +} +#[cfg(feature = "example_thread")] +pub use example_thread::*; + +#[cfg(feature = "example_vec")] +mod example_vec { + use crate::libc; + use crate::librt; + use core::{mem, ptr}; + use core::ffi::{c_char, c_void}; + include!("examples/vec_demo.rs"); +} +#[cfg(feature = "example_vec")] +pub use example_vec::*; + // Re-export initialization function pub use init::rust_init; @@ -40,4 +93,4 @@ fn panic(_info: &PanicInfo) -> ! { libc::printf(b"Rust panic occurred!\n\0".as_ptr()); } loop {} -} \ No newline at end of file +} diff --git a/machines/qemu-virt-riscv64/rust/src/libc.rs b/machines/qemu-virt-riscv64/rust/src/libc.rs index 3fd2ef48..bb6350f2 100644 --- a/machines/qemu-virt-riscv64/rust/src/libc.rs +++ b/machines/qemu-virt-riscv64/rust/src/libc.rs @@ -23,6 +23,83 @@ extern "C" { pub fn putchar(c: c_int) -> c_int; } +// ============== string functions ============== +extern "C" { + pub fn strlen(s: *const c_char) -> usize; + pub fn strcmp(s1: *const c_char, s2: *const c_char) -> c_int; + pub fn strncmp(s1: *const c_char, s2: *const c_char, n: usize) -> c_int; + pub fn strcpy(dest: *mut c_char, src: *const c_char) -> *mut c_char; + pub fn strncpy(dest: *mut c_char, src: *const c_char, n: usize) -> *mut c_char; + pub fn strcat(dest: *mut c_char, src: *const c_char) -> *mut c_char; + pub fn strncat(dest: *mut c_char, src: *const c_char, n: usize) -> *mut c_char; + pub fn strchr(s: *const c_char, c: c_int) -> *mut c_char; + pub fn strstr(haystack: *const c_char, needle: *const c_char) -> *mut c_char; +} + +// ============== memory functions ============== +extern "C" { + pub fn memcpy(dest: *mut c_void, src: *const c_void, n: usize) -> *mut c_void; + pub fn memmove(dest: *mut c_void, src: *const c_void, n: usize) -> *mut c_void; + pub fn memset(s: *mut c_void, c: c_int, n: usize) -> *mut c_void; + pub fn memcmp(s1: *const c_void, s2: *const c_void, n: usize) -> c_int; + pub fn memchr(s: *const c_void, c: c_int, n: usize) -> *mut c_void; +} + +// ============== dynamic memory management ============== +extern "C" { + pub fn malloc(size: usize) -> *mut c_void; + pub fn calloc(nmemb: usize, size: usize) -> *mut c_void; + pub fn realloc(ptr: *mut c_void, size: usize) -> *mut c_void; + pub fn free(ptr: *mut c_void); +} + +// ============== math functions ============== +extern "C" { + pub fn abs(n: c_int) -> c_int; + pub fn labs(n: c_long) -> c_long; + pub fn rand() -> c_int; + pub fn srand(seed: c_uint); +} + +// ============== conversion functions ============== +extern "C" { + pub fn atoi(nptr: *const c_char) -> c_int; + pub fn atol(nptr: *const c_char) -> c_long; + pub fn strtol(nptr: *const c_char, endptr: *mut *mut c_char, base: c_int) -> c_long; +} + +// ============== Rust-friendly wrappers ============== + +/// Safe string length calculation +pub fn safe_strlen(s: *const c_char) -> usize { + if s.is_null() { + 0 + } else { + unsafe { strlen(s) } + } +} + +/// Safe memory allocation +pub fn safe_malloc(size: usize) -> Option<*mut c_void> { + if size == 0 { + None + } else { + let ptr = unsafe { malloc(size) }; + if ptr.is_null() { + None + } else { + Some(ptr) + } + } +} + +/// Safe memory deallocation +pub fn safe_free(ptr: *mut c_void) { + if !ptr.is_null() { + unsafe { free(ptr) } + } +} + /// Print string (Rust style) pub fn print_str(s: &str) { for byte in s.bytes() { diff --git a/machines/qemu-virt-riscv64/rust/src/librt.rs b/machines/qemu-virt-riscv64/rust/src/librt.rs index 296fc113..109ef226 100644 --- a/machines/qemu-virt-riscv64/rust/src/librt.rs +++ b/machines/qemu-virt-riscv64/rust/src/librt.rs @@ -44,8 +44,159 @@ extern "C" { pub fn rt_object_find(name: *const c_char, object_type: u8) -> *mut c_void; } +// ============== Thread management ============== +extern "C" { + pub fn rt_thread_create( + name: *const c_char, + entry: extern "C" fn(*mut c_void), + parameter: *mut c_void, + stack_size: rt_size_t, + priority: u8, + tick: u32, + ) -> rt_thread_t; + + pub fn rt_thread_delete(thread: rt_thread_t) -> rt_err_t; + pub fn rt_thread_startup(thread: rt_thread_t) -> rt_err_t; + pub fn rt_thread_self() -> rt_thread_t; + pub fn rt_thread_yield() -> rt_err_t; + pub fn rt_thread_delay(tick: rt_tick_t) -> rt_err_t; + pub fn rt_thread_mdelay(ms: c_int) -> rt_err_t; + pub fn rt_thread_suspend(thread: rt_thread_t) -> rt_err_t; + pub fn rt_thread_resume(thread: rt_thread_t) -> rt_err_t; +} + +// ============== Semaphore management ============== +extern "C" { + pub fn rt_sem_create(name: *const c_char, value: u32, flag: u8) -> rt_sem_t; + pub fn rt_sem_delete(sem: rt_sem_t) -> rt_err_t; + pub fn rt_sem_take(sem: rt_sem_t, time: rt_tick_t) -> rt_err_t; + pub fn rt_sem_trytake(sem: rt_sem_t) -> rt_err_t; + pub fn rt_sem_release(sem: rt_sem_t) -> rt_err_t; +} + +// ============== Mutex management ============== +extern "C" { + pub fn rt_mutex_create(name: *const c_char, flag: u8) -> rt_mutex_t; + pub fn rt_mutex_delete(mutex: rt_mutex_t) -> rt_err_t; + pub fn rt_mutex_take(mutex: rt_mutex_t, time: rt_tick_t) -> rt_err_t; + pub fn rt_mutex_release(mutex: rt_mutex_t) -> rt_err_t; +} + +// ============== Memory management ============== +extern "C" { + pub fn rt_malloc(size: rt_size_t) -> *mut c_void; + pub fn rt_free(ptr: *mut c_void); + pub fn rt_realloc(ptr: *mut c_void, newsize: rt_size_t) -> *mut c_void; + pub fn rt_calloc(count: rt_size_t, size: rt_size_t) -> *mut c_void; + pub fn rt_malloc_align(size: rt_size_t, align: rt_size_t) -> *mut c_void; + pub fn rt_free_align(ptr: *mut c_void); +} + +// ============== Device management ============== +extern "C" { + pub fn rt_device_find(name: *const c_char) -> rt_device_t; + pub fn rt_device_open(dev: rt_device_t, oflag: u16) -> rt_err_t; + pub fn rt_device_close(dev: rt_device_t) -> rt_err_t; + pub fn rt_device_read( + dev: rt_device_t, + pos: c_ulong, + buffer: *mut c_void, + size: rt_size_t, + ) -> rt_size_t; + pub fn rt_device_write( + dev: rt_device_t, + pos: c_ulong, + buffer: *const c_void, + size: rt_size_t, + ) -> rt_size_t; + pub fn rt_device_control(dev: rt_device_t, cmd: c_int, arg: *mut c_void) -> rt_err_t; +} + +// ============== System tick ============== +extern "C" { + pub fn rt_tick_get() -> rt_tick_t; + pub fn rt_tick_from_millisecond(ms: c_int) -> rt_tick_t; +} // ============== Debug output ============== extern "C" { pub fn rt_kprintf(fmt: *const u8, ...) -> c_int; +} + +// ============== Rust-friendly wrappers ============== + +/// RT-Thread thread handle wrapper +pub struct Thread { + handle: rt_thread_t, +} + +impl Thread { + /// Create new thread + pub fn create( + name: &[u8], + entry: extern "C" fn(*mut c_void), + param: *mut c_void, + stack_size: usize, + priority: u8, + tick: u32, + ) -> Option { + let handle = unsafe { + rt_thread_create( + name.as_ptr() as *const c_char, + entry, + param, + stack_size as rt_size_t, + priority, + tick, + ) + }; + + if handle.is_null() { + None + } else { + Some(Thread { handle }) + } + } + + /// Start thread + pub fn startup(&self) -> Result<(), rt_err_t> { + let ret = unsafe { rt_thread_startup(self.handle) }; + if ret == RT_EOK { + Ok(()) + } else { + Err(ret) + } + } +} + +impl Drop for Thread { + fn drop(&mut self) { + unsafe { rt_thread_delete(self.handle) }; + } +} + +/// Current thread sleep +pub fn thread_sleep_ms(ms: u32) { + unsafe { rt_thread_mdelay(ms as c_int) }; +} + +/// Safe RT-Thread memory allocation +pub fn rt_safe_malloc(size: usize) -> Option<*mut c_void> { + if size == 0 { + None + } else { + let ptr = unsafe { rt_malloc(size as rt_size_t) }; + if ptr.is_null() { + None + } else { + Some(ptr) + } + } +} + +/// Safe RT-Thread memory deallocation +pub fn rt_safe_free(ptr: *mut c_void) { + if !ptr.is_null() { + unsafe { rt_free(ptr) } + } } \ No newline at end of file From e7b9b67fe2fee16cf1d880b5fa8117701a0b3a54 Mon Sep 17 00:00:00 2001 From: foxglove <8208210429@csu.edu.cn> Date: Tue, 30 Sep 2025 02:20:53 +0800 Subject: [PATCH 05/10] =?UTF-8?q?=E8=A1=A5=E5=85=85=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- machines/qemu-virt-riscv64/rust/Cargo.toml | 7 +++++ machines/qemu-virt-riscv64/rust/Kconfig | 35 ++++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/machines/qemu-virt-riscv64/rust/Cargo.toml b/machines/qemu-virt-riscv64/rust/Cargo.toml index 0393fe21..c881d3ae 100644 --- a/machines/qemu-virt-riscv64/rust/Cargo.toml +++ b/machines/qemu-virt-riscv64/rust/Cargo.toml @@ -13,6 +13,13 @@ crate-type = ["staticlib"] default = [] example_hello = [] +example_memory = [] +example_string = [] +example_printf = [] +example_thread = [] +example_dl = [] +example_vec = [] + [profile.release] lto = true opt-level = "z" diff --git a/machines/qemu-virt-riscv64/rust/Kconfig b/machines/qemu-virt-riscv64/rust/Kconfig index 91ae508e..f2451832 100644 --- a/machines/qemu-virt-riscv64/rust/Kconfig +++ b/machines/qemu-virt-riscv64/rust/Kconfig @@ -19,6 +19,41 @@ if RT_USING_RUST default y help Enable the basic hello world example function. + config RUST_EXAMPLE_MEMORY + bool "Enable memory operations examples" + default y + help + Enable memory allocation and operation examples. + + config RUST_EXAMPLE_STRING + bool "Enable string operations examples" + default y + help + Enable string manipulation examples. + + config RUST_EXAMPLE_PRINTF + bool "Enable printf examples" + default y + help + Enable formatted output examples. + + config RUST_EXAMPLE_THREAD + bool "Enable RT-Thread threading examples" + default y + help + Enable RT-Thread threading API examples. + + config RUST_EXAMPLE_VEC + bool "Enable vector examples" + default y + help + Enable vector examples. + + config RUST_EXAMPLE_DL + bool "Enable libdl examples" + default y + help + Enable libdl examples. config RUST_INIT_COMPONENT bool "Auto-initialize Rust component" From 684ebd2f36da8067ed6f38535caf3f1870988d20 Mon Sep 17 00:00:00 2001 From: foxglove <8208210429@csu.edu.cn> Date: Tue, 30 Sep 2025 02:25:59 +0800 Subject: [PATCH 06/10] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- machines/qemu-virt-riscv64/rust/rust_cmd.c | 49 +++++- .../rust/src/examples/dlmodule_demo.rs | 139 ++++++++++++++++++ machines/qemu-virt-riscv64/rust/src/libdl.rs | 32 ++++ 3 files changed, 219 insertions(+), 1 deletion(-) create mode 100644 machines/qemu-virt-riscv64/rust/src/examples/dlmodule_demo.rs create mode 100644 machines/qemu-virt-riscv64/rust/src/libdl.rs diff --git a/machines/qemu-virt-riscv64/rust/rust_cmd.c b/machines/qemu-virt-riscv64/rust/rust_cmd.c index 689f2af9..b64f3c74 100644 --- a/machines/qemu-virt-riscv64/rust/rust_cmd.c +++ b/machines/qemu-virt-riscv64/rust/rust_cmd.c @@ -71,6 +71,14 @@ extern void rust_vec_demo(void); extern void rust_vec_demo_all(void); #endif +/* dl_demo module */ +#ifdef RUST_EXAMPLE_DL +extern void rust_dl_open_demo(void); +extern void rust_dl_sym_demo(void); +extern void rust_dl_call_demo(void); +extern void rust_dl_error_demo(void); +extern void rust_dl_demo_all(void); +#endif /* ============== MSH command implementation ============== */ /* Basic command: hello */ @@ -229,7 +237,43 @@ static int cmd_rust_thread(int argc, char **argv) } MSH_CMD_EXPORT_ALIAS(cmd_rust_thread, rust_thread, RT-Thread operations demo); #endif - +/* dl_demo module */ +#ifdef RUST_EXAMPLE_DL +static int cmd_rust_dl(int argc, char **argv) +{ + if (argc == 1) + { + rust_dl_demo_all(); + } + else if (strcmp(argv[1], "open") == 0) + { + rust_dl_open_demo(); + } + else if (strcmp(argv[1], "sym") == 0) + { + rust_dl_sym_demo(); + } + else if (strcmp(argv[1], "call") == 0) + { + rust_dl_call_demo(); + } + else if (strcmp(argv[1], "error") == 0) + { + rust_dl_error_demo(); + } + else + { + printf("Usage: rust_dl [open|sym|call|error]\n"); + printf(" Without arguments: run all demos\n"); + printf(" open - demonstrate dlopen/dlclose\n"); + printf(" sym - demonstrate dlsym symbol resolution\n"); + printf(" call - demonstrate function calls through dlsym\n"); + printf(" error - demonstrate error handling\n"); + } + return 0; +} +MSH_CMD_EXPORT_ALIAS(cmd_rust_dl, rust_dl, Demonstrate libdl operations); +#endif /* Printf demonstration */ #ifdef RUST_EXAMPLE_PRINTF static int cmd_rust_printf(int argc, char **argv) @@ -327,6 +371,9 @@ static int cmd_rust_help(int argc, char **argv) #ifdef RUST_EXAMPLE_VEC printf(" rust_vec - Vector operations demo\n"); #endif + #ifdef RUST_EXAMPLE_DL + printf(" rust_dl - Dynamic library operations demo\n"); + #endif return 0; } MSH_CMD_EXPORT_ALIAS(cmd_rust_help, rust_help, Show Rust component help); diff --git a/machines/qemu-virt-riscv64/rust/src/examples/dlmodule_demo.rs b/machines/qemu-virt-riscv64/rust/src/examples/dlmodule_demo.rs new file mode 100644 index 00000000..28531c4d --- /dev/null +++ b/machines/qemu-virt-riscv64/rust/src/examples/dlmodule_demo.rs @@ -0,0 +1,139 @@ +/* + * Copyright (c) 2006-2024, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2025-09-25 foxglove test dynamic loading operations + */ + +type NoArgFn = extern "C" fn(); +type AddFn = extern "C" fn(libc::c_int, libc::c_int) -> libc::c_int; +type MainFn = extern "C" fn(libc::c_int, *mut *mut libc::c_char) -> libc::c_int; + +/// Basic dlopen test +#[no_mangle] +pub extern "C" fn rust_dl_open_demo() { + unsafe { + libc::printf(b"\n=== dlopen Demo ===\n\0".as_ptr()); + + let path = b"/hello.mo\0"; + let handle = libdl::dlopen(path.as_ptr() as *const _, libdl::RTLD_NOW | libdl::RTLD_GLOBAL); + if handle.is_null() { + libc::printf(b"dlopen failed: %s\n\0".as_ptr(), libdl::last_error_ptr()); + } else { + libc::printf(b"dlopen ok: %p\n\0".as_ptr(), handle); + libc::printf(b"Module loaded successfully\n\0".as_ptr()); + + // Close immediately for this demo + let rc = libdl::dlclose(handle); + libc::printf(b"dlclose rc=%d\n\0".as_ptr(), rc); + } + } +} + +/// dlsym symbol resolution test +#[no_mangle] +pub extern "C" fn rust_dl_sym_demo() { + unsafe { + libc::printf(b"\n=== dlsym Demo ===\n\0".as_ptr()); + + let path = b"/hello.mo\0"; + let handle = libdl::dlopen(path.as_ptr() as *const _, libdl::RTLD_NOW | libdl::RTLD_GLOBAL); + if handle.is_null() { + libc::printf(b"dlopen failed: %s\n\0".as_ptr(), libdl::last_error_ptr()); + return; + } + + // Try to resolve main symbol + let sym_name = b"main\0"; + let sym = libdl::dlsym(handle, sym_name.as_ptr() as *const _); + if sym.is_null() { + libc::printf(b"dlsym main failed: %s\n\0".as_ptr(), libdl::last_error_ptr()); + } else { + libc::printf(b"Found symbol 'main' at %p\n\0".as_ptr(), sym); + } + + // Try to resolve non-existent symbol + let bad_sym = b"nonexistent_symbol\0"; + let bad_result = libdl::dlsym(handle, bad_sym.as_ptr() as *const _); + if bad_result.is_null() { + libc::printf(b"dlsym nonexistent_symbol failed (expected): %s\n\0".as_ptr(), libdl::last_error_ptr()); + } else { + libc::printf(b"Unexpected: found nonexistent symbol\n\0".as_ptr()); + } + + let rc = libdl::dlclose(handle); + libc::printf(b"dlclose rc=%d\n\0".as_ptr(), rc); + } +} + +/// Function call test through dlsym +#[no_mangle] +pub extern "C" fn rust_dl_call_demo() { + unsafe { + libc::printf(b"\n=== Function Call Demo ===\n\0".as_ptr()); + + let path = b"/hello.mo\0"; + let handle = libdl::dlopen(path.as_ptr() as *const _, libdl::RTLD_NOW | libdl::RTLD_GLOBAL); + if handle.is_null() { + libc::printf(b"dlopen failed: %s\n\0".as_ptr(), libdl::last_error_ptr()); + return; + } + + // Call main function + let sym_name = b"main\0"; + let sym = libdl::dlsym(handle, sym_name.as_ptr() as *const _); + if sym.is_null() { + libc::printf(b"dlsym main failed: %s\n\0".as_ptr(), libdl::last_error_ptr()); + } else { + let main_fn: MainFn = core::mem::transmute(sym); + libc::printf(b"Calling module main()...\n\0".as_ptr()); + let rc = main_fn(0, core::ptr::null_mut()); + libc::printf(b"module main() returned %d\n\0".as_ptr(), rc); + } + + let rc = libdl::dlclose(handle); + libc::printf(b"dlclose rc=%d\n\0".as_ptr(), rc); + } +} + +/// Error handling test +#[no_mangle] +pub extern "C" fn rust_dl_error_demo() { + unsafe { + libc::printf(b"\n=== Error Handling Demo ===\n\0".as_ptr()); + + // Try to open non-existent module + let bad_path = b"/nonexistent.mo\0"; + let handle = libdl::dlopen(bad_path.as_ptr() as *const _, libdl::RTLD_NOW); + if handle.is_null() { + libc::printf(b"dlopen nonexistent module failed (expected): %s\n\0".as_ptr(), libdl::last_error_ptr()); + } else { + libc::printf(b"Unexpected: loaded nonexistent module\n\0".as_ptr()); + libdl::dlclose(handle); + } + + // Try to open valid module with invalid flags + let path = b"/hello.mo\0"; + let handle2 = libdl::dlopen(path.as_ptr() as *const _, 0xFFFF); // Invalid flags + if handle2.is_null() { + libc::printf(b"dlopen with invalid flags failed: %s\n\0".as_ptr(), libdl::last_error_ptr()); + } else { + libc::printf(b"dlopen with invalid flags succeeded\n\0".as_ptr()); + libdl::dlclose(handle2); + } + } +} + +/// Comprehensive dl operations demonstration +#[no_mangle] +pub extern "C" fn rust_dl_demo_all() { + rust_dl_open_demo(); + rust_dl_sym_demo(); + rust_dl_call_demo(); + rust_dl_error_demo(); +} + + diff --git a/machines/qemu-virt-riscv64/rust/src/libdl.rs b/machines/qemu-virt-riscv64/rust/src/libdl.rs new file mode 100644 index 00000000..79da98cd --- /dev/null +++ b/machines/qemu-virt-riscv64/rust/src/libdl.rs @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2006-2024, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2025-09-23 foxglove libdl bindings + */ + +//! POSIX libdl API bindings for RT-Thread +//! Provides Rust FFI for dlopen/dlsym/dlclose/dlerror. + +use core::ffi::{c_char, c_int, c_void}; + +// RT-Thread libdl typically supports these flags; define minimally used ones +pub const RTLD_LAZY: c_int = 0x0001; // Lazy function call binding +pub const RTLD_NOW: c_int = 0x0002; // Immediate function call binding +pub const RTLD_GLOBAL: c_int = 0x0100; // Make symbols globally available +pub const RTLD_LOCAL: c_int = 0; // Default local + +extern "C" { + pub fn dlopen(filename: *const c_char, flag: c_int) -> *mut c_void; + pub fn dlsym(handle: *mut c_void, symbol: *const c_char) -> *mut c_void; + pub fn dlclose(handle: *mut c_void) -> c_int; + pub fn dlerror() -> *const c_char; +} + +/// Return last error as pointer (C string). Caller ensures non-null before use. +pub fn last_error_ptr() -> *const c_char { + unsafe { dlerror() } +} From 78848959b3901b93510bc9b284915d1e96d39962 Mon Sep 17 00:00:00 2001 From: foxglove <8208210429@csu.edu.cn> Date: Tue, 30 Sep 2025 02:28:10 +0800 Subject: [PATCH 07/10] =?UTF-8?q?=E5=8A=A8=E6=80=81=E5=8A=A0=E8=BD=BD?= =?UTF-8?q?=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- machines/qemu-virt-riscv64/rust/src/lib.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/machines/qemu-virt-riscv64/rust/src/lib.rs b/machines/qemu-virt-riscv64/rust/src/lib.rs index 3e4a055c..f2db7e8f 100644 --- a/machines/qemu-virt-riscv64/rust/src/lib.rs +++ b/machines/qemu-virt-riscv64/rust/src/lib.rs @@ -83,6 +83,16 @@ mod example_vec { #[cfg(feature = "example_vec")] pub use example_vec::*; +#[cfg(feature = "example_dl")] +mod example_dl { + use crate::libc; + use crate::libdl; + use core::ffi::{c_char, c_void, c_int}; + include!("examples/dl_demo.rs"); +} +#[cfg(feature = "example_dl")] +pub use example_dl::*; + // Re-export initialization function pub use init::rust_init; From 6ed3785bac8183233dd6098740e2cda267bcf7cc Mon Sep 17 00:00:00 2001 From: foxglove <8208210429@csu.edu.cn> Date: Tue, 30 Sep 2025 09:33:10 +0800 Subject: [PATCH 08/10] =?UTF-8?q?=E5=AE=8C=E5=96=84=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E5=92=8C=E6=96=87=E6=A1=A3=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- machines/qemu-virt-riscv64/rust/README.md | 168 ++++++++++++++++++ machines/qemu-virt-riscv64/rust/README_cn.md | 69 ++++++- .../rust/tool/build_support.py | 47 +++++ 3 files changed, 281 insertions(+), 3 deletions(-) create mode 100644 machines/qemu-virt-riscv64/rust/README.md diff --git a/machines/qemu-virt-riscv64/rust/README.md b/machines/qemu-virt-riscv64/rust/README.md new file mode 100644 index 00000000..4178edaf --- /dev/null +++ b/machines/qemu-virt-riscv64/rust/README.md @@ -0,0 +1,168 @@ +# RT-Thread Rust Component + +A general-purpose Rust component for RT-Thread RTOS, supporting automatic multi-architecture detection. + +## Features + +- **Multi-architecture support**: Automatically detects ARM, AArch64, and RISC-V target architectures +- **Zero configuration**: No manual platform setup required +- **Modular design**: Core modules and example code are clearly separated +- **RT-Thread integration**: Full access to RT-Thread kernel APIs + +## Project Structure + +``` +rust/ +├── Cargo.toml # Rust project configuration +├── src/ +│ ├── lib.rs # Main library entry point +│ ├── libc.rs # Standard C library bindings +│ ├── librt.rs # RT-Thread kernel API bindings +│ ├── init.rs # Component initialization +│ └── examples/ # Example demos +│ ├── hello.rs # Basic hello world +│ ├── printf_demo.rs # Printf formatting +│ ├── string_demo.rs # String operations +│ ├── memory_demo.rs # Memory management +│ ├── vec_demo.rs # Vec implementation +│ ├── thread_demo.rs # RT-Thread threads +│ └── dlmodule_demo.rs # Dynamic module loading +├── rust_cmd.c # MSH command registration +├── SConscript # Build script with auto-detection +├── Kconfig # Configuration options +``` + +## Quick Start + +### Prerequisites + +1. **Install Rust** +```bash +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh +``` + +2. **Add target platforms** (according to your architecture) +```bash +# RISC-V64 (soft-float) +rustup target add riscv64imac-unknown-none-elf + +# ARM Cortex-M4 +rustup target add thumbv7em-none-eabi + +# For other targets, add the corresponding Rust target based on your toolchain/ABI +``` + +### Build + +```bash +# Enable Rust component in menuconfig +menuconfig +# Navigate to: Rust Component Support → Enable + +# For dynamic modules, enable dynamic module config and file system: +# 1. RT-Thread online packages → system packages: enable lwext4 file system +# 2. RT-Thread Components → C/C++ and POSIX layer +# → POSIX (Portable Operating System Interface) layer +# → Enable dynamic module APIs, dlopen()/dlsym()/dlclose() etc + +# Build +scons + +# Clean +scons -c +``` + +## Supported Architectures + +| Architecture | Target | Auto Detection | +|--------------|--------|---------------| +| Cortex-M3 | thumbv7m-none-eabi | ✓ | +| Cortex-M4/M7 | thumbv7em-none-eabi | ✓ | +| Cortex-M4F/M7F | thumbv7em-none-eabihf | ✓ | +| ARMv7-A | armv7a-none-eabi | ✓ | +| AArch64 | aarch64-unknown-none | ✓ | +| RISC-V32 | riscv32ima[f]c-unknown-none-elf | ✓ | +| RISC-V64 | riscv64[gc/imac]-unknown-none-elf | ✓ | + +The build system automatically detects the correct target from RT-Thread configuration. + +## MSH Commands + +| Command | Description | +|---------|-------------| +| `rust_hello` | Print greeting message | +| `rust_add ` | Add two numbers | +| `rust_mul ` | Multiply two numbers | +| `rust_strlen ` | Calculate string length | +| `rust_printf_demo` | Printf formatting demo | +| `rust_memory_demo` | Memory operation demo | +| `rust_thread_demo` | Thread demo | +| `rust_vec_demo` | Vec container demo | +| `rust_dl_demo` | Dynamic module loading demo | + +## Configuration Options + +Configure via `menuconfig`: + +- `RT_USING_RUST` - Enable/disable Rust component +- `RUST_DEBUG_BUILD` - Build with debug symbols +- `RUST_EXAMPLE_*` - Enable specific examples +- `RUST_INIT_COMPONENT` - Auto-initialize at startup + +## Technical Details + +- **No-std**: Embedded-friendly `#![no_std]` environment +- **FFI**: Seamless C/Rust interoperability +- **Static linking**: Generates `.a` library files +- **Memory safety**: Compile-time guarantees from Rust +- **Zero cost**: Performance equivalent to C + +## Extending Components + +To add new features: + +1. Create a module in `src/` +2. Add an example in `src/examples/` +3. Register the command in `rust_cmd.c` + +## Application Scenarios + +Rust components are especially suitable for: + +- **Safety-critical code**: Leverage Rust's memory safety guarantees +- **Complex algorithms**: Utilize Rust's advanced abstractions +- **Device drivers**: Type-safe hardware abstraction +- **Network protocol stacks**: Safe packet processing +- **Cryptography libraries**: Secure implementations preventing memory leaks + +## Troubleshooting + +### Link Errors + +If you encounter "can't link double-float modules with soft-float modules" error: +- The build system should automatically detect the correct ABI +- Check if the compiler's `-mabi` flag matches the Rust target + +### Target Not Installed + +If prompted that the target is not installed: +```bash +rustup target add +``` + +### Detection Failure + +If target architecture cannot be detected: +- Check if RT-Thread configuration is correct +- Review compiler flags in rtconfig.py + +## License + +Apache-2.0 + +## References + +- [Rust Embedded Programming Book](https://docs.rust-embedded.org/) +- [RT-Thread Documentation Center](https://www.rt-thread.org/document/site/) +- [Rust FFI Programming](https://doc.rust-lang.org/nomicon/ffi.html) +- [RISC-V Specification](https://riscv.org/technical/specifications/) \ No newline at end of file diff --git a/machines/qemu-virt-riscv64/rust/README_cn.md b/machines/qemu-virt-riscv64/rust/README_cn.md index 19c3d6b8..805b4bc6 100644 --- a/machines/qemu-virt-riscv64/rust/README_cn.md +++ b/machines/qemu-virt-riscv64/rust/README_cn.md @@ -2,6 +2,13 @@ RT-Thread RTOS 的通用 Rust 组件,支持多架构自动检测。 +## 特性 + +- **多架构支持**:自动检测 ARM、AArch64 和 RISC-V 目标架构 +- **零配置**:无需手动配置目标平台 +- **模块化设计**:核心模块与示例代码清晰分离 +- **RT-Thread 集成**:完整访问 RT-Thread 内核 API + ## 项目结构 ``` @@ -13,7 +20,13 @@ rust/ │ ├── librt.rs # RT-Thread 内核 API 绑定 │ ├── init.rs # 组件初始化 │ └── examples/ # 示例演示 -│ └── hello.rs # 基础 hello world +│ ├── hello.rs # 基础 hello world +│ ├── printf_demo.rs # Printf 格式化 +│ ├── string_demo.rs # 字符串操作 +│ ├── memory_demo.rs # 内存管理 +│ ├── vec_demo.rs # vec实现 +│ ├── thread_demo.rs # RT-Thread 线程 +│ └── dlmodule_demo.rs # 动态模块加载 ├── rust_cmd.c # MSH 命令注册 ├── SConscript # 带自动检测的构建脚本 ├── Kconfig # 配置选项 @@ -33,17 +46,27 @@ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # RISC-V64(软浮点) rustup target add riscv64imac-unknown-none-elf +# ARM Cortex-M4 +rustup target add thumbv7em-none-eabi + +# 其他目标请根据实际工具链/ABI 添加对应的 Rust target ``` ### 构建 ```bash # 在 menuconfig 中启用 Rust 组件 -scons --menuconfig +menuconfig # 导航至:Rust Component Support → Enable +# 动态模块需要打开加载动态模块配置和文件系统: +# 1. RT-Thread online packages → system packages 打开lwext4文件系统 +# 2. RT-Thread Components → C/C++ and POSIX layer +# → POSIX (Portable Operating System Interface) layer +# → Enable dynamic module APIs, dlopen()/dlsym()/dlclose() etc + # 构建 -scons -j$(nproc) +scons # 清理 scons -c @@ -53,6 +76,11 @@ scons -c | 架构 | 目标 | 自动检测 | |------|------|----------| +| Cortex-M3 | thumbv7m-none-eabi | ✓ | +| Cortex-M4/M7 | thumbv7em-none-eabi | ✓ | +| Cortex-M4F/M7F | thumbv7em-none-eabihf | ✓ | +| ARMv7-A | armv7a-none-eabi | ✓ | +| AArch64 | aarch64-unknown-none | ✓ | | RISC-V32 | riscv32ima[f]c-unknown-none-elf | ✓ | | RISC-V64 | riscv64[gc/imac]-unknown-none-elf | ✓ | @@ -63,6 +91,14 @@ scons -c | 命令 | 描述 | |------|------| | `rust_hello` | 打印问候信息 | +| `rust_add ` | 两数相加 | +| `rust_mul ` | 两数相乘 | +| `rust_strlen ` | 计算字符串长度 | +| `rust_printf_demo` | Printf 格式化演示 | +| `rust_memory_demo` | 内存操作演示 | +| `rust_thread_demo` | 线程演示 | +| `rust_vec_demo` | vec容器演示| +| `rust_dl_demo` | 动态模块加载演示| ## 配置选项 @@ -73,6 +109,13 @@ scons -c - `RUST_EXAMPLE_*` - 启用特定示例 - `RUST_INIT_COMPONENT` - 启动时自动初始化 +## 技术细节 + +- **No-std**:嵌入式友好的 `#![no_std]` 环境 +- **FFI**:无缝的 C/Rust 互操作性 +- **静态链接**:生成 `.a` 库文件 +- **内存安全**:Rust 的编译时保证 +- **零成本**:性能等同于 C ## 扩展组件 @@ -82,6 +125,16 @@ scons -c 2. 在 `src/examples/` 中添加示例 3. 在 `rust_cmd.c` 中注册命令 +## 应用场景 + +Rust 组件特别适合以下场景: + +- **安全关键代码**:利用 Rust 的内存安全保证 +- **复杂算法**:利用 Rust 的高级抽象能力 +- **设备驱动**:类型安全的硬件抽象 +- **网络协议栈**:安全的数据包处理 +- **加密库**:防止内存泄露的安全实现 + ## 故障排除 ### 链接错误 @@ -97,6 +150,16 @@ scons -c rustup target add <目标名称> ``` +### 检测失败 + +如果无法检测目标架构: +- 检查 RT-Thread 配置是否正确 +- 查看 rtconfig.py 中的编译器标志 + +## 许可证 + +Apache-2.0 + ## 参考资料 - [Rust 嵌入式编程手册](https://docs.rust-embedded.org/) diff --git a/machines/qemu-virt-riscv64/rust/tool/build_support.py b/machines/qemu-virt-riscv64/rust/tool/build_support.py index dc53ea89..87f1a5ab 100644 --- a/machines/qemu-virt-riscv64/rust/tool/build_support.py +++ b/machines/qemu-virt-riscv64/rust/tool/build_support.py @@ -42,6 +42,28 @@ def detect_rust_target(has, rtconfig): Decide the Rust target triple based on RT-Thread Kconfig and rtconfig.*. `has` is a callable: has("SYMBOL") -> bool """ + # ARM Cortex-M + if has("ARCH_ARM"): + # FPU hints from flags/macros + cflags = getattr(rtconfig, "CFLAGS", "") + hard_float = "-mfloat-abi=hard" in cflags or has("ARCH_ARM_FPU") or has("ARCH_FPU_VFP") + + if has("ARCH_ARM_CORTEX_M3"): + return "thumbv7m-none-eabi" + if has("ARCH_ARM_CORTEX_M4") or has("ARCH_ARM_CORTEX_M7"): + return "thumbv7em-none-eabihf" if hard_float else "thumbv7em-none-eabi" + if has("ARCH_ARM_CORTEX_M33"): + # v8m.main + return "thumbv8m.main-none-eabi" + if has("ARCH_ARM_CORTEX_A"): + return "armv7a-none-eabi" + + # AArch64 + if has("ARCH_AARCH64") or has("ARCH_ARMV8") or has("ARCH_ARM64"): + if has("ARCH_CPU_FLOAT_ABI_SOFT"): + return "aarch64-unknown-none-softfloat" + return "aarch64-unknown-none" + # RISC-V if has("ARCH_RISCV32") or has("ARCH_RISCV64"): cflags = getattr(rtconfig, "CFLAGS", "") @@ -66,6 +88,10 @@ def detect_rust_target(has, rtconfig): arch = getattr(rtconfig, "ARCH", None) if arch: arch_l = arch.lower() + if "aarch64" in arch_l: + return "aarch64-unknown-none" + if "arm" == arch_l or "armv7" in arch_l: + return "armv7a-none-eabi" if "riscv32" in arch_l: return "riscv32imac-unknown-none-elf" if "riscv64" in arch_l or "risc-v" in arch_l: @@ -74,6 +100,12 @@ def detect_rust_target(has, rtconfig): # Parse CFLAGS for hints cflags = getattr(rtconfig, "CFLAGS", "") + if "-mcpu=cortex-m3" in cflags: + return "thumbv7m-none-eabi" + if "-mcpu=cortex-m4" in cflags or "-mcpu=cortex-m7" in cflags: + if "-mfpu=" in cflags and "-mfloat-abi=hard" in cflags: + return "thumbv7em-none-eabihf" + return "thumbv7em-none-eabi" if "-march=rv32" in cflags: return "riscv32imafc-unknown-none-elf" if ("f" in cflags or "d" in cflags) else "riscv32imac-unknown-none-elf" if "-march=rv64" in cflags: @@ -102,6 +134,9 @@ def make_rustflags(rtconfig, target: str): if flag.startswith("-march=") or flag.startswith("-mabi="): rustflags += ["-C", f"link-arg={flag}"] + if "thumb" in target or "aarch64" in target: + rustflags += ["-C", "link-arg=-nostartfiles"] + return " ".join(rustflags) @@ -109,6 +144,18 @@ def collect_features(has): feats = [] if has("RUST_EXAMPLE_HELLO"): feats.append("example_hello") + if has("RUST_EXAMPLE_MEMORY"): + feats.append("example_memory") + if has("RUST_EXAMPLE_STRING"): + feats.append("example_string") + if has("RUST_EXAMPLE_PRINTF"): + feats.append("example_printf") + if has("RUST_EXAMPLE_THREAD"): + feats.append("example_thread") + if has("RUST_EXAMPLE_VEC"): + feats.append("example_vec") + if has("RUST_EXAMPLE_DL"): + feats.append("example_dl") return feats From aafa522fa5142f0949a2b5676f95e7560d9b7ee6 Mon Sep 17 00:00:00 2001 From: foxglove <8208210429@csu.edu.cn> Date: Tue, 30 Sep 2025 10:15:40 +0800 Subject: [PATCH 09/10] =?UTF-8?q?email=E5=A1=AB=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rust/src/examples/dlmodule_demo.rs | 162 ++++++++++-------- .../rust/src/{inti.rs => init.rs} | 0 machines/qemu-virt-riscv64/rust/src/lib.rs | 3 +- machines/qemu-virt-riscv64/rust/src/libdl.rs | 107 ++++++++++++ .../rust/{tool => tools}/build_support.py | 0 5 files changed, 201 insertions(+), 71 deletions(-) rename machines/qemu-virt-riscv64/rust/src/{inti.rs => init.rs} (100%) rename machines/qemu-virt-riscv64/rust/{tool => tools}/build_support.py (100%) diff --git a/machines/qemu-virt-riscv64/rust/src/examples/dlmodule_demo.rs b/machines/qemu-virt-riscv64/rust/src/examples/dlmodule_demo.rs index 28531c4d..6f05ab11 100644 --- a/machines/qemu-virt-riscv64/rust/src/examples/dlmodule_demo.rs +++ b/machines/qemu-virt-riscv64/rust/src/examples/dlmodule_demo.rs @@ -12,94 +12,108 @@ type NoArgFn = extern "C" fn(); type AddFn = extern "C" fn(libc::c_int, libc::c_int) -> libc::c_int; type MainFn = extern "C" fn(libc::c_int, *mut *mut libc::c_char) -> libc::c_int; -/// Basic dlopen test +/// Basic dlopen test using safe wrapper #[no_mangle] pub extern "C" fn rust_dl_open_demo() { unsafe { libc::printf(b"\n=== dlopen Demo ===\n\0".as_ptr()); let path = b"/hello.mo\0"; - let handle = libdl::dlopen(path.as_ptr() as *const _, libdl::RTLD_NOW | libdl::RTLD_GLOBAL); - if handle.is_null() { - libc::printf(b"dlopen failed: %s\n\0".as_ptr(), libdl::last_error_ptr()); - } else { - libc::printf(b"dlopen ok: %p\n\0".as_ptr(), handle); - libc::printf(b"Module loaded successfully\n\0".as_ptr()); - - // Close immediately for this demo - let rc = libdl::dlclose(handle); - libc::printf(b"dlclose rc=%d\n\0".as_ptr(), rc); + match libdl::DlHandle::open(path, libdl::RTLD_NOW | libdl::RTLD_GLOBAL) { + Ok(handle) => { + libc::printf(b"dlopen ok: %p\n\0".as_ptr(), handle.raw_handle()); + libc::printf(b"Module loaded successfully\n\0".as_ptr()); + // Handle will be automatically closed when it goes out of scope + } + Err(error) => { + libc::printf(b"dlopen failed: \0".as_ptr()); + libc::print_str(&error); + libc::printf(b"\n\0".as_ptr()); + } } } } -/// dlsym symbol resolution test +/// dlsym symbol resolution test using safe wrapper #[no_mangle] pub extern "C" fn rust_dl_sym_demo() { unsafe { libc::printf(b"\n=== dlsym Demo ===\n\0".as_ptr()); let path = b"/hello.mo\0"; - let handle = libdl::dlopen(path.as_ptr() as *const _, libdl::RTLD_NOW | libdl::RTLD_GLOBAL); - if handle.is_null() { - libc::printf(b"dlopen failed: %s\n\0".as_ptr(), libdl::last_error_ptr()); - return; + match libdl::DlHandle::open(path, libdl::RTLD_NOW | libdl::RTLD_GLOBAL) { + Ok(handle) => { + // Try to resolve main symbol + let sym_name = b"main\0"; + match handle.get_symbol(sym_name) { + Ok(sym) => { + libc::printf(b"Found symbol 'main' at %p\n\0".as_ptr(), sym); + } + Err(error) => { + libc::printf(b"dlsym main failed: \0".as_ptr()); + libc::print_str(&error); + libc::printf(b"\n\0".as_ptr()); + } + } + + // Try to resolve non-existent symbol + let bad_sym = b"nonexistent_symbol\0"; + match handle.get_symbol(bad_sym) { + Ok(_) => { + libc::printf(b"Unexpected: found nonexistent symbol\n\0".as_ptr()); + } + Err(error) => { + libc::printf(b"dlsym nonexistent_symbol failed (expected): \0".as_ptr()); + libc::print_str(&error); + libc::printf(b"\n\0".as_ptr()); + } + } + // Handle will be automatically closed when it goes out of scope + } + Err(error) => { + libc::printf(b"dlopen failed: \0".as_ptr()); + libc::print_str(&error); + libc::printf(b"\n\0".as_ptr()); + } } - - // Try to resolve main symbol - let sym_name = b"main\0"; - let sym = libdl::dlsym(handle, sym_name.as_ptr() as *const _); - if sym.is_null() { - libc::printf(b"dlsym main failed: %s\n\0".as_ptr(), libdl::last_error_ptr()); - } else { - libc::printf(b"Found symbol 'main' at %p\n\0".as_ptr(), sym); - } - - // Try to resolve non-existent symbol - let bad_sym = b"nonexistent_symbol\0"; - let bad_result = libdl::dlsym(handle, bad_sym.as_ptr() as *const _); - if bad_result.is_null() { - libc::printf(b"dlsym nonexistent_symbol failed (expected): %s\n\0".as_ptr(), libdl::last_error_ptr()); - } else { - libc::printf(b"Unexpected: found nonexistent symbol\n\0".as_ptr()); - } - - let rc = libdl::dlclose(handle); - libc::printf(b"dlclose rc=%d\n\0".as_ptr(), rc); } } -/// Function call test through dlsym +/// Function call test through dlsym using safe wrapper #[no_mangle] pub extern "C" fn rust_dl_call_demo() { unsafe { libc::printf(b"\n=== Function Call Demo ===\n\0".as_ptr()); let path = b"/hello.mo\0"; - let handle = libdl::dlopen(path.as_ptr() as *const _, libdl::RTLD_NOW | libdl::RTLD_GLOBAL); - if handle.is_null() { - libc::printf(b"dlopen failed: %s\n\0".as_ptr(), libdl::last_error_ptr()); - return; - } - - // Call main function - let sym_name = b"main\0"; - let sym = libdl::dlsym(handle, sym_name.as_ptr() as *const _); - if sym.is_null() { - libc::printf(b"dlsym main failed: %s\n\0".as_ptr(), libdl::last_error_ptr()); - } else { - let main_fn: MainFn = core::mem::transmute(sym); - libc::printf(b"Calling module main()...\n\0".as_ptr()); - let rc = main_fn(0, core::ptr::null_mut()); - libc::printf(b"module main() returned %d\n\0".as_ptr(), rc); + match libdl::DlHandle::open(path, libdl::RTLD_NOW | libdl::RTLD_GLOBAL) { + Ok(handle) => { + // Call main function - simplified with convenience method + let sym_name = b"main\0"; + match handle.try_call_main(sym_name) { + Ok(main_fn) => { + libc::printf(b"Calling module main()...\n\0".as_ptr()); + let rc = main_fn(0, core::ptr::null_mut()); + libc::printf(b"module main() returned %d\n\0".as_ptr(), rc); + } + Err(error) => { + libc::printf(b"dlsym main failed: \0".as_ptr()); + libc::print_str(&error); + libc::printf(b"\n\0".as_ptr()); + } + } + // Handle will be automatically closed when it goes out of scope + } + Err(error) => { + libc::printf(b"dlopen failed: \0".as_ptr()); + libc::print_str(&error); + libc::printf(b"\n\0".as_ptr()); + } } - - let rc = libdl::dlclose(handle); - libc::printf(b"dlclose rc=%d\n\0".as_ptr(), rc); } } -/// Error handling test +/// Error handling test using safe wrapper #[no_mangle] pub extern "C" fn rust_dl_error_demo() { unsafe { @@ -107,22 +121,30 @@ pub extern "C" fn rust_dl_error_demo() { // Try to open non-existent module let bad_path = b"/nonexistent.mo\0"; - let handle = libdl::dlopen(bad_path.as_ptr() as *const _, libdl::RTLD_NOW); - if handle.is_null() { - libc::printf(b"dlopen nonexistent module failed (expected): %s\n\0".as_ptr(), libdl::last_error_ptr()); - } else { - libc::printf(b"Unexpected: loaded nonexistent module\n\0".as_ptr()); - libdl::dlclose(handle); + match libdl::DlHandle::open(bad_path, libdl::RTLD_NOW) { + Ok(_handle) => { + libc::printf(b"Unexpected: loaded nonexistent module\n\0".as_ptr()); + // Handle will be automatically closed when it goes out of scope + } + Err(error) => { + libc::printf(b"dlopen nonexistent module failed (expected): \0".as_ptr()); + libc::print_str(&error); + libc::printf(b"\n\0".as_ptr()); + } } // Try to open valid module with invalid flags let path = b"/hello.mo\0"; - let handle2 = libdl::dlopen(path.as_ptr() as *const _, 0xFFFF); // Invalid flags - if handle2.is_null() { - libc::printf(b"dlopen with invalid flags failed: %s\n\0".as_ptr(), libdl::last_error_ptr()); - } else { - libc::printf(b"dlopen with invalid flags succeeded\n\0".as_ptr()); - libdl::dlclose(handle2); + match libdl::DlHandle::open(path, 0xFFFF) { // Invalid flags + Ok(_handle) => { + libc::printf(b"dlopen with invalid flags succeeded\n\0".as_ptr()); + // Handle will be automatically closed when it goes out of scope + } + Err(error) => { + libc::printf(b"dlopen with invalid flags failed: \0".as_ptr()); + libc::print_str(&error); + libc::printf(b"\n\0".as_ptr()); + } } } } diff --git a/machines/qemu-virt-riscv64/rust/src/inti.rs b/machines/qemu-virt-riscv64/rust/src/init.rs similarity index 100% rename from machines/qemu-virt-riscv64/rust/src/inti.rs rename to machines/qemu-virt-riscv64/rust/src/init.rs diff --git a/machines/qemu-virt-riscv64/rust/src/lib.rs b/machines/qemu-virt-riscv64/rust/src/lib.rs index f2db7e8f..128592d2 100644 --- a/machines/qemu-virt-riscv64/rust/src/lib.rs +++ b/machines/qemu-virt-riscv64/rust/src/lib.rs @@ -18,6 +18,7 @@ use core::ffi::{c_void, c_char}; // Core modules pub mod libc; pub mod librt; +pub mod libdl; pub mod init; // Example modules are gated by Cargo features so they can be toggled from Kconfig @@ -88,7 +89,7 @@ mod example_dl { use crate::libc; use crate::libdl; use core::ffi::{c_char, c_void, c_int}; - include!("examples/dl_demo.rs"); + include!("examples/dlmodule_demo.rs"); } #[cfg(feature = "example_dl")] pub use example_dl::*; diff --git a/machines/qemu-virt-riscv64/rust/src/libdl.rs b/machines/qemu-virt-riscv64/rust/src/libdl.rs index 79da98cd..a3734c00 100644 --- a/machines/qemu-virt-riscv64/rust/src/libdl.rs +++ b/machines/qemu-virt-riscv64/rust/src/libdl.rs @@ -30,3 +30,110 @@ extern "C" { pub fn last_error_ptr() -> *const c_char { unsafe { dlerror() } } + +// ============== Rust-friendly safe wrappers ============== + +/// Dynamic library handle wrapper for safe resource management +pub struct DlHandle { + handle: *mut c_void, +} + +impl DlHandle { + /// Open a dynamic library safely + pub fn open(filename: &[u8], flags: c_int) -> Result { + // Use the safe_dlopen function for consistency + safe_dlopen(filename, flags) + } + + /// Get symbol from the dynamic library safely + pub fn get_symbol(&self, symbol: &[u8]) -> Result<*mut c_void, &'static str> { + // Use the safe_dlsym function for consistency + safe_dlsym(self.handle, symbol) + } + + /// Get a function pointer from the dynamic library + /// This is a convenience method that combines get_symbol with transmute + pub fn get_function(&self, symbol: &[u8]) -> Result { + let sym = self.get_symbol(symbol)?; + Ok(unsafe { core::mem::transmute_copy(&sym) }) + } + + /// Try to call a function with no arguments + /// Returns the function pointer if found, None if not found + pub fn try_call_no_args(&self, symbol: &[u8]) -> Result { + self.get_function(symbol) + } + + /// Try to call a main-style function + /// Returns the function pointer if found + pub fn try_call_main(&self, symbol: &[u8]) -> Result c_int, &'static str> { + self.get_function(symbol) + } + + /// Get the raw handle (for compatibility with existing code) + pub fn raw_handle(&self) -> *mut c_void { + self.handle + } +} + +impl Drop for DlHandle { + fn drop(&mut self) { + if !self.handle.is_null() { + // Use safe_dlclose for consistency, but ignore the result in Drop + let _ = safe_dlclose(self.handle); + } + } +} + +/// Safe dlopen wrapper +pub fn safe_dlopen(filename: &[u8], flags: c_int) -> Result { + let handle = unsafe { dlopen(filename.as_ptr() as *const c_char, flags) }; + + if handle.is_null() { + // For embedded environment, use static error message + Err("Failed to open dynamic library") + } else { + Ok(DlHandle { handle }) + } +} + +/// Safe dlsym wrapper (requires valid handle) +pub fn safe_dlsym(handle: *mut c_void, symbol: &[u8]) -> Result<*mut c_void, &'static str> { + if handle.is_null() { + return Err("Invalid handle"); + } + + let sym = unsafe { dlsym(handle, symbol.as_ptr() as *const c_char) }; + + if sym.is_null() { + // For embedded environment, use static error message + Err("Failed to find symbol in dynamic library") + } else { + Ok(sym) + } +} + +/// Safe dlclose wrapper +pub fn safe_dlclose(handle: *mut c_void) -> Result<(), c_int> { + if handle.is_null() { + return Err(-1); + } + + let result = unsafe { dlclose(handle) }; + if result == 0 { + Ok(()) + } else { + Err(result) + } +} + +/// Safe dlerror wrapper - returns error message as static string +pub fn safe_dlerror() -> Option<&'static str> { + let error_ptr = unsafe { dlerror() }; + if error_ptr.is_null() { + None + } else { + // For embedded environment, return generic error message + Some("Dynamic library error occurred") + } +} diff --git a/machines/qemu-virt-riscv64/rust/tool/build_support.py b/machines/qemu-virt-riscv64/rust/tools/build_support.py similarity index 100% rename from machines/qemu-virt-riscv64/rust/tool/build_support.py rename to machines/qemu-virt-riscv64/rust/tools/build_support.py From ea6ea823a8258c0b3472674e2f6f9e4fadf1da1a Mon Sep 17 00:00:00 2001 From: foxglove <8208210429@csu.edu.cn> Date: Tue, 30 Sep 2025 10:37:50 +0800 Subject: [PATCH 10/10] =?UTF-8?q?=E4=B8=8D=E9=87=8D=E8=A6=81=E7=9A=84?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- machines/qemu-virt-riscv64/rust/README.md | 2 +- machines/qemu-virt-riscv64/rust/README_cn.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/machines/qemu-virt-riscv64/rust/README.md b/machines/qemu-virt-riscv64/rust/README.md index 4178edaf..4025016a 100644 --- a/machines/qemu-virt-riscv64/rust/README.md +++ b/machines/qemu-virt-riscv64/rust/README.md @@ -56,7 +56,7 @@ rustup target add thumbv7em-none-eabi ```bash # Enable Rust component in menuconfig -menuconfig +scons --menuconfig # Navigate to: Rust Component Support → Enable # For dynamic modules, enable dynamic module config and file system: diff --git a/machines/qemu-virt-riscv64/rust/README_cn.md b/machines/qemu-virt-riscv64/rust/README_cn.md index 805b4bc6..190eda5e 100644 --- a/machines/qemu-virt-riscv64/rust/README_cn.md +++ b/machines/qemu-virt-riscv64/rust/README_cn.md @@ -56,7 +56,7 @@ rustup target add thumbv7em-none-eabi ```bash # 在 menuconfig 中启用 Rust 组件 -menuconfig +scons --menuconfig # 导航至:Rust Component Support → Enable # 动态模块需要打开加载动态模块配置和文件系统: