From 070751b53df0a4557d839e8e6751f968d155b1f3 Mon Sep 17 00:00:00 2001 From: Mateusz Bloch Date: Mon, 17 Jul 2023 12:30:03 +0200 Subject: [PATCH] quickstart corrections and adjust to macOS JIRA CI-264 --- quickstart/README.md | 4 +- quickstart/_images/stm32l4x6-ls-macos.png | Bin 0 -> 39080 bytes quickstart/_images/stm32l4x6-ls-ubuntu.png | Bin 0 -> 22023 bytes quickstart/armv7a9-zynq7000-qemu.md | 84 ++++++++++++++--- quickstart/armv7a9-zynq7000.md | 19 +++- quickstart/armv7m4-stm32l4x6-nucleo.md | 103 +++++++++++++++++---- quickstart/armv7m7-imxrt105x-evk.md | 3 +- 7 files changed, 175 insertions(+), 38 deletions(-) create mode 100644 quickstart/_images/stm32l4x6-ls-macos.png create mode 100644 quickstart/_images/stm32l4x6-ls-ubuntu.png diff --git a/quickstart/README.md b/quickstart/README.md index d40cd3e6..fd85b1b8 100644 --- a/quickstart/README.md +++ b/quickstart/README.md @@ -1,6 +1,8 @@ # Running system on targets -This chapter presents how to run Phoenix-RTOS on supported targets. It is assumed that `phoenix-rtos-project` is built and building artifacts are available in the `_boot` directory. The building process has been described in [phoenix-rtos-doc/building](../building/README.md). +This chapter presents how to run Phoenix-RTOS on supported targets. It is assumed that `phoenix-rtos-project` +is built, and building artifacts are available in the `_boot` directory. The building process has been described +in [phoenix-rtos-doc/building](../building/README.md). ## See also diff --git a/quickstart/_images/stm32l4x6-ls-macos.png b/quickstart/_images/stm32l4x6-ls-macos.png new file mode 100644 index 0000000000000000000000000000000000000000..2fb58181383e1fbf3801bbcc3ce0fefebbd24adf GIT binary patch literal 39080 zcmb@tbChIFv+&!Pwr$(fwrv|Vt!Z=Gwr#W8p4PN&yQgj2?mP3m@A=L-_rBkMcg3o# zTszl}s>~g^GctaW;YtdU2(Y-YARr(J(o$k7ARyo_f9jslkbg?9Rn$ok5KtQnQBfre zV`C5y>Uih)4p|Xp>_J~kL!t;V1QY~BOaw?3q&otV2KktR>j*k|3}H2`C5<9kSP^ zHMba4-oNbUvZv*|IZ$D4FP~b6ici*mo!ozRHWhLvbFkMs!zfy`Dx>D0AlfB44e<7Y z>oCTn3ZOpVISOrC6;YkO6>#YuA`M8;^FX;Q%w^hao4{Fd7ZUSPp3&`%>Fn~IP*yuR zI0&D_jT_1p1VQgmNT;*kBw?rOB#p1Uf^~JeFAfxr07?Q#V(7WAU&I+?mm21yjx3&U z)YL9~Z`oKA(e5v*iJb&=7hj>dT=O*=D=&@5%Cr4;VHhLjKU??M-f27<%bpQ?>LCs_ z>6Ubp_`nduT*ED-aPk(I`5Bze0VbedVtZjAk=i zFiT@n`!oJ9_EOqEKtSM7|9(Jc*L~hVK!`!4#e~(|49@hSwA6+$KU`CbG(F|}H#}n_ z^o_B^jKPfy>cr4=>6Ht^*_ks6n3V%NB#guL&-^+h3rd$Uj=kaF4kv!Xo%QxkiVJyd zymr2hpR}-=eLR|n+|JAU5Pi4vUAMPh61(~Tulm1VtiAk?g$gX^im$luk zC5>Q7o(C+Q8s#f6V6t8>g_0gF`@E+oSOhJ{a1372i3{dADa64|?^xHk+QAAlFs1qX z(*UuR4|00yR7P!~>N(#HSJ$Cx5^%mxX%rMXBTCDT8I3z&ptnKw2q?0DjZYKz_VT2I z86_iAo&`~}c%E`lDH=?!u@Xu7NN1*Y!Bwi#9 zs&stHQ1#*DTkc?J$*%8lbMPb}Ramo$4kV{RzTe|Ptip~y7`Ul_9#*nBfhaBD%ro22 zu-jNt6TT6ueSnvIv`D)@hN8~MjaIHT2;K#+5XeNS;0YZ`X4O&ru+)$`6`k6?^AV~8 ze}`3Vqa%LDZ>#EIRVT(|pJ=(#;9n$DaYmUd$3nMrsvI{EG%&ax-It`R6>-fKdfT7@ zP?A39*QOQ!c{bg;VM0EWa<}M+;Xm}@UtGvyHlYW{uI%~Ryuo~Ze&bTW%L>(nH9jK~ zR^6v$_rqkrI{T4RGH#Of1B1?bG`&3vG?`rC)34~N(eZ-zC7TS@2AUy_yuG#a-J2Dt zN9R*gPNHn1_kJ&tQIOmy6NBZ7kx?jGy*i^N<^hLrvsSoKoDHmd#uXurmV*YCy#~N+ z+FQxS-qg{8qIV&?=jP_N-l69n`8a7+X9tR&O3j$=Zt!E$c@6RpO2!;N1bZ(I9$Ut)-mcwc;$(X;NQ;=hTJOuothJFWDUuE!tAX23mKAR>J-@}S=Nxr+e z574D*QY7TLtr}v_mWI`NCRJi*c(~^~qc}9u)Wl)Vp`ak6Op|=O<^VBNHU#h3=jtWSN4KH@CM}Cyhc{vq9n^-pX!RXQ-a`4c@&0H{Ggx})kJadB0@Eh z47qiW*<6O>y7MQ$(f{_uP%OYu8tm$y@WsrxE2_L8z`Q@$DW-)Nc*iw5nvz6*q9q&+ zg68Av0y%HQv%_S+8W+L`^HT_C?~`j+CXY~b$Q_( zcCq8X$brh`{NT45$iMtJ?KaC;F%Pv_B^XeFB!XP1M9R2_s8E#|;8G<2D_JVCaNr1o z%W0RU00Xwavpuq2w^O+J(b3?8sxhMFnb~PSq^Ta>wDE}fgzon z!JuVa-6}96_q=DW|C{w~b-w(A#Ai~_YM*CS`)ScoJgl&a8=NK^czedMa$M3EiL86l zIya4`qOrop7y*QYT57$+fre7Qc!(y>XCtWmjaN;f)q=iF)jqP`6L?{mq-bjJ*OBl9 zU#o_9h~gXmwr0MtyvtH294w)L*Bo`f-aY?x8zqi{`aYJKL1D%X#9*FLOy2O3&d#Qz zL;~EIvM(vZmLst~F)Kz<5~&4m)@&L+?q_nk}3Q& zu}f-c#}~|%8BWS4IPq#nExC{+WoAZw^h)h5ELiJDEOYOalJSXpcaV9KuS~Lls(>s8 zsE~Lp5zjHs{XQNVqf_7xuZL<1D!bn7E&l2_7?&^+jc1)jW=iIQz8cfvygY}PBVD}3kRM%mw5vrH$Lj@*DDz2GTx zr8(!NHqDCW$LUHckPIa;3JFf!HUieYBAg4?PM?zuHvr}U9*$B8_0tB5%NBqVFK?X9 zq2Q79Fvksj`TJzdiPsxcb_p6T3^P0lLP5 znbklVn#owog}9>BrPh&VCw66Vq{oSZSf0kB$-u+e9xBU-t}FHh*5OpmnCv>TKN^;C zcvC_d76@;V_!Zj~Ga=R4%3~XN*gs36EakfTtyKgwv}O`4eZ14(n+4@7$=SH@qwpG=(HDN&RQpVv0u`4E1nO8_`X~Rn+&wZC{_mf08#}2acfX9x z-#fa!yUiO^TUkl7!+Dne+n)SFI$^05l$D*$YCr|`GyeECj+5%oe?xz5ALj0eQgO`Q zk}L=6-r0D=CGJml>S6Z7^UBC9D)pydmeyCGaVOa->^=&R?Z0Epk1)#vyxY`*r~7Vs z%?I;r=NmUoRtSLwK;FpGGCpu{gU+i)S^Z8+c|LxAmQ;aCjev+2m%J9U0_kiTfB~V@ z7$T5h3IqLDB>{I`Ya;r4oW{E5Y+^K_+GrkQOH22R9SDcoS;u3UNO1Yx@r9NOKv(LV zmSs}o+vO|8hyg9W;KoO64SqY{^zq1CjGKG6#@KLO5@sf>n)4oE#L`1%GV4nj+xzoV z@2cX>QmFeI{c&KCFnaqjS@|~#vebhg!-9KXqv=a7OUOCYsx?fF3~a$xi!}^nFgm$J zX$KIE%+BO|a+~>(%M0D#$9GfN72N~vjzd_2I3Aoyn)VEpY+*1?J7RLk2WA)43(F+i z6z*oue2)y|z$ofE6SM2kI4)!(5|=i#R9+N;GLSY(8pe?N8sakmaF)ZG+*p$eBBq+B zeV(_6wE5T+RbHz;hwp3zvQogrTutI8c)BRfCXBLEO+1>dSx_D)hM;PEKDpHQ#hHGE zOElhIMtTNigMQgPzhO``{BMuT@v_$}XABhsp_{e!XFoFx%IxOeB)H|iQ;4StV<<>Z zEvjCU;v`y1A1fXSS@RJPDi4}(NoCiPQ>gA4Fwth45~rx1<^~)uyyWzATn^XW%D~2S z$y*89$VThl75xqc#8DnIGT2&vTUKu>fZSXM4y|g;bWY#0HD;)vh^`gz+&iU&-pE1q=KfKn8b5jhfdbA`lv_|;0kTJGMIjaURJ$CFig5L z!Emmdk{T;p;_*noOVDs_oGF>2gOcGqd%?(W-9?;^3~Fnz6$;kFb(W(lqw{tT!9nCa zP~wN7-Nt$v&=Vw`^M8GM}3vdG`bFJs@PGR+SK6*z`Po`$8*=w)r)|MKGc`bF2*y zC*2E;_B|-)`r-8;1qae{0A{Zws?d95;QpL!qT54Au&u~JR75=V!W8WqE^5gFjaH%4 zzFF40Q>U;|SVFh1knPh6KZ zFT;0aO~Le#mX?>VfJdEoihH%2cEff(olgc@khdbLt5mJ$BKJm`=|9HEh#Ymduk{X5r?oW08wY zQJUY=wYvv!r+tv0^2{>68EV`%JxYU^C^d1kMs)W-IQ%6QUW%GI4Ghv#6FCip{7;Z| zmga;v1;q2LjCg}1-333J-(>SJs~Vi{M4;+>?pj(bQcZeSCvXCXV7!y!t3 z|AnJ;q@DFK1s0vL!0zH8wSJ^VwsrXqJ#v=Zt!G=VK^No6Y0HYmbjThhaD5QB600n^I264+5Zsi2)C+!kJ8|Fk079uX5NavI}qgujuB zB_4hU4M$(_z2d=~ye&AJ*S7bG+MR_hJ;tP{eL05tT&K|4iqq+Y6)bWpwf``)$xsE{ zTT42U)_iRmXY{u7Dt2mlJ(~MGGE!Q6rq)3`TNbxQ&jXc3?bDhnhW-?G<%L3E^JDm~ z$2XlFKP#)prC0?(1$9c#Xpd@Bn>5J6$G;sZoSoFB+YGYJ^URbk#xFQyB>c(S@0@yyy1!Bd1-;TBGqkO~2*AB8f&BcDC=!C6fgaWd&{1 zC1baq<1ao$cmFh0b(o)brxxbh+Dhi;cfU41w!inac)m^vOoigUPi#5i90%!}z%qOX zww!FeyTbB@b7yae&Wu)VG4I=Td%`I^MTs@0t}<8KcsCIK#7{+YS4E?w3WI8wzP$DI|dmS~@S1%kdJr-{4w7>!!uAR#p)pfQNJYvvdb8K)Io)Z8aAL_DIT7bgm zp*i1TJX+qjUdXY7Sl^|{-*5f4SDNeRcoRXXuN&*EnLRVs7HYeexX|C-6OCNI1m!6b z?D8}Mt#=YGQ2(%Hz(WLc?doFWQ4?GHW-w{i=I)HS|Bt_9^JUMGI|73)WM?1}u5E~M zfBO=9#ghk-%C)%P5(0Ljgc>rQ!w(!gs8oI}6)og0&H^I2m5hwibl3X2SlL zO&1cYE{o{zKajS!Ty2o+ZD9FUIYs**?`Mt*7u@2kL7UJ@e3yfYO5uPs+t3J{z6n`s zO!jk|NIpJhTWybu<0pdfzGA+9>6>?=%;#Ig4km->amWM{<641|IML=9yg&B#N-N+E zTJFf{l}p4OvR)4{v!EEd@1g?bB$P%oCx#lssKvyOH?H97dj_onB?Afw+VX?d$tQC< zC(h`tv}A3!8UXaxIpwHDLv=o3x?;Yu7%=F6fU@7&j7nH3bz1(Aq;{y?>9L+oAh6jAoBMDiih zG0*~MQHo1~k^0&|fFp5zW*(VXp9AHgZL~y39ksX2&Ahk*w2) zncogJ+5>^a2?)AR)N}s ziPj4qQvi&(`fIN~+@1}&UlF5oYKCHcgG~qm8SuA<@gWOH5y*&G`^Z^X?%~~E{>%r7 z-O|2g2XYhy{+B#bJUdhNwQXfONT{Y)QjW--?{~XQ)LkYw{MHZL2<}*Rzf$8xHr${g z7rer|775w&iF|*4E51s`0PMudMTUr|Ae)N+@#n?9$dTl!lwH03R^{`25#xL)0-7UW zVRnoN>5w)D@r^M?Lr%pq^^}|ikAq_9_ylRw`SfNvvpN*7q;gd>YO%$Kh0SbjOnzKx z`Cz3V?$9_)#ha3-^IEW(^2UR~z`~pnoRLU}caI^n%OulHB>CjA#+;4jRYrb!WKC7M zW%7BvDEnNMgF4wq*y7HE?B#Uos~zY(mMAdQPKllQpdiV>5uur#r7r8Jp;y})%{UQU zgOv%fxnC&@)Z`lQUvCBB{l08zS0~MRVXe1iUBzmkO0tzK%Ty0LL{)c`dm3Rp3L`kK z&r8%fLA7N<*(dhHiW~CRIbKZdGYUJ8N6~Y3~sA8V8)~?rCjXl;hw8?9{jxAGSC@1 zRwV<~9qI7>O{LH%N8p|)65Ru_{!l?ObluoKYN29U(n$A~X65$=7+U0J1Tx6#7^>ANB^mDMWXFF}w zMf)NNFJ`}jb4$Gf@oC@xS-fTZICC>``w-Ob+U+@E#r2kQl!VIL?rSkTE!ZbcSGSJsf=ZWHxA57&h(I@wIg1GT7_c0(IYSVN+%*91P5Ti*c5zXP;|x--U~(=s zaWbSVu}w0dBdIe+u$zV>7DJrx*k^!2?#L8ecptPEkx71@y1@Lw}8= zfKVRyBRMUgK8RaXl~pcQVAyl}baccg%zj6MThy178F^GCEh9I2>zd--YrpB}) z7oc6~PVUEz7POAtk&v!~iQI(IldeXXian`+Lm+CZH)90JY$q*mWl1Ds!H-{QfoO}^ zzG*bq;=Bx6JXYrWZP~0##a18Izd+Z+Lzbq=sGp5479vS1?u;fYm>%pmYh3$Xnsc2o zzem&o$$`RIQu*-(;2q`GhZCT0!OWcG;dnZr(4rdml)sa&JY<4I`>T5&~-GzSy!0! zV$1funS1K#UKH;o7t-;rY$Qab6lds>f(|B%dn}t0AnU_^1Z_K^Nnp-OzvUy0tBETehOp&aL}4Txen7g zf{TdY>*^T}f#|Wc*<`-V!y}FFr#xK#@l?Gqfq)oTt^D7IXj_q+)d!2MtI$Y04BHAC9(dGbFO&P^*GV4s2s9G7e=KR zQlxG(P4bMWH}G4?r2cyZJbV63T^n+7++Ode66}o%M*Ls}NjDhM(eQu5ZqP!0CJV(% zexx~!^e1u{S=ps}W7iF=VdB*?EHM!l3s&3^ZyiaL?)OELHY-Z0JwMDp$=C<*@kFa3 zQK~CXN2iNZd`g(Q0m zO!lu~-Gg*y_!z2@=@9CK&S|6xIkT8kvjGLJ+RjhWIX|VsUPFr@E~l43;i8yVQpMll z4J4}W;(4ngQ%W8iXCUsCnUf_4RT<7NVJ}s+v35P=5FF!0-*Fe6CqEfT4s9!rl~usj zf3t@Q+&h(gkR8r!yuzxizXq@H0*_w_qXjXfkz!t_n|Iqw0lA%Q_TykH-c&hkC{Pwb zRxAGA-dE_D{U&{f?`424AIKW0dvi6F(A<&Iw6jaoh2x4JureN3aE%z~K;bD#Oc)Lx zbEb*6QdZ|9{+Pv$D60Fw42{TMrw=y!9vAhET)?X5)hHOd=qEFO1EV+#~c8;GNcZYs|UMGj9LV3Ld zITSY>u}@NMuFz8mi2x0RtuIGC+z*L3J%Zy4P((f<{vbd#pFKklXLp?Ya^)CW*S8Rb z5WV7bXGg3w5e;KneI@eg`^`}0p_GX-_c>g(UgA>dOD^hme6Jpa@#CS)8espo6^#5m zSyszqQrJu{?b<{GtK)Fmv?ll(S@FuVqYj1J5kVPIn)CuA$6E?^BF~dLj-YvxDH^f& zsE?y8Ok!G5B!Ty!n^7;{xDfC*(%=hnlp^w+yt+%%2zVR6WX3qOc%D@dd9V9XUAuy; zu##cWc<^*?;$-c(sz5l;NFbx@&(Hcok6atz7!#^gGPaC=XzFx#tnZZLx_{+?l1}Gp ztgRqI$rnr`0g^k$Yy-~pHJR@hcjP7jPhy4@=lB3JRPCc9a}N|J|A(q9VSZX%$$2(j z;rdc()i>j#?E}y|106L+G;pOCXDIDn7c-W#29$+}1|Uo((@Z@V28}Ubdg6U^PVyZy zokIvXP`018d2}^lhF+znvQ|NSv&xbwK%cAeeYZ4?hGqm9gH-f-_*qQUju%(23{-@p zT{5M#X}gLmNb@fVgD>`zpDXn~t{kL})zj#UStz>mesQy-rU*Wxyu^njGgcWc+mC&e zPIQZsNS@G3U7@xvNslLzg2S~solI!0{EjjsC!Po-Z>_I|shb$TlMeX(g27hSoKJgk zYkpWXgkGeU$Z|uHz4?J~?&e{e@ek4Fz8@puN-b89F)X&GznH*$xh?-+zYb@?;tOS*dhIsw^Yp)?K&)_M4dOck~`tk)LG9f)7@cIy%9F?%1foZA9 zsiJ8Tb^;kn(@v=nzB20)@jaO)#A}jI0j8#Rm&GD{+(LZt^a7WC^s6xuRBB?L`$H!M zqYHs*olmo+EI3{xx`cZYLs|E`R-%|{t`F)eA?JCZ-?20smf+tNN{GbbMQ~&l87oVe zx}Gx&)CQLbuI`y|_7@meI=_L3AB@<|_iR~$W`Bs>&6SLd(HU^N)9E~X4LAD4N!e|r zFEC8SLyX+KYE(s`LZK2sO#6EFB;chAqN|24g?BMHy;~SL+~!Q-SZ5MgIUf>{$|T*? z(pph!pZX}jO@E+^+&-;%B&wlo*2jzXgCB+gI(vZcrqc!;lCX9?Ef%SEtX1HO{^3ok;oy4&t( z1nj>s5W3D6a{JP0WaqKpLYA5sfkVx~dy8IAq5Gy%F(SHd%FO&==p9IXqqVEraL2a? zcgE+t?=PjQMI0|vc#)$$6<>G0Ii0}Ed;N9g|AgluzihzvDZrV?^qW4(ox$Wvr`Xdg z!;0G^AYZ>x7}ax6zj636olyTnsFiA=welX8ZMgVbP=Og@?d=a(gWfM_ws7z-y0tu! zE#c7U=wO(okNcZk?A7F?AM26Qfrq5TWBM%+MUiR$#_IN88kn>C2dKAyh5s9D{i|R9 zUA8NKNu#5zv}q)H{LMdPr-sJ-<6oZN|0!V&kDmT37vLYC@K1~Xl7tZ3nE{>%^M76W z-{1b6k$-u+_S?YPzxFZz8i4;U4e&r`YCUbBHv_&{pBfGaurGTbaEPEL#1{zsfzH2^ z8|?PUMA`pMrOWwAbj%5hm*(M=#O;Kp0^m8Q7$TX6)W0pko)`=u-qCfx*;v8%{v`8v z!>AEj8`I@_>YysGh3j{`hu$jd@1%re+=w2FC5XhJ@9gPa8QJG3tyD0t3)S)jhZUTMz_~P2OQ-?C( zH%hJr?-em(Vrl5!vOpC(;qxQjeYycuHM@pdeDjtNq(u7t)et$QwwZK`^;WlBuVw}< zdgb}=<8`aJe5w#e%5zyGrVGaWr0Q7ARjuC!+e2KqkB4{}uSPpkG9Za~`>b+FvrA}b zaH$J(w+FW|uooJjc@YYIZwd)uXhno~6N&((b`VWXg*yiY{^_6Cq)H*n+^Q|)@?F!(< zwpdM)c1po$;hFST0P<53x$@_dg0WS$F=F1C@p5DFV~Ju=R;D(h6X`tj-58;yBKRU& z!1=e2kHbHVm$qX?0{k--sk|X_PZ*jJ2)#FCt6$3ta=t!K#{?yBO>Fft7BFpH z^Fg459)8Pf+QhyCe@mhX;}!rsdTxPbMR~#*!>FL@>cNU_C7Snm=X{OX6VdqrB|zp` zXjUWeWIiu~ztGUTCqGnYtHg-8@x>G{-Hr;>^M}T29h25B6VJXu1rLuhDZ^@!E$hWH zlPVIBv>v)(7+8+*u!$mBc&;feul#x~CSg4kvm8TEN6^OUSJi2Y!5enIj3M-)QqHzb zPcy${p}^lFAV_D~dc{FO@iLosqq5Cof2}4W{$f{X?~MGuSSE#t1$BF(xx7zbCRcRR z&mqiumBghy<;+B_?Vcr(Isq}6{(@O{n(CxcMA>94Y5ghg)=}h>82Yxm;}64MgmFAp z537=etBA48UJ@`Azjgp8Yx(g`Afxi~XWeP}b(GBs_+$Hv`SPcxPKx(&8cwyWkp!!C zWPf!HO;%QJc??T@{#lm@u-x_?dx#P}c+vi}%3rCx2<5~Vix)nlrvVERjmJ<}&*8t0 z_qmXVK|w^z>ZDKXXU6W9s{>Y0Q|0n2+Tx0cD{mt3KBtar9h_B!Qd)}pigVixz?wqCAO`r4cQb;8P++*;1*ZVRV*7sjm6EU}-FK=d#(U{zLNzfbAwFve zPMLdAvQ;(#-jw%Gp1_ZuFgZ0+<~M;i4msh~g!I%#?!8J6BT*;V9~R0+m&lS@9J*0$ z8EjY)eNPQyjLnRWU@Q0l`Hwbqab1P(16f6sv9$vcyYt?plt~;$&a&q^S^HD?!GsRY zYjPb>(>K|*H#3wMjnT7@e!A2W>up&%6?EHd+#b>+qO-Q_CdJa;#tx_}r49V-6|R%n zy3(L{sJ=LRXMv2>A_|88iOkpj%%&5+n0JAozM{>#JvWmF*T$>A_K-Ii38k3-wGtzu z?;NjZdRQh;E?mzV#bKe=0*l%`Gxu7`nMklH=|@ol9SI|$iM+PP59Ia?iru?|Y_}}D z<{-TTIC3)5D19S_x`0OYMIWgh6{3#zke&)p8?KC#Vz=A<|OX^mcib6RlO{db~)3*S=t5UVdoY;NTXo1R>IB)>1Ah`lvmPIkta3#M=H zbKIAHe(n&9iCHM+?s6g*YL>NQ`8Fe1notHy_bMs7L*Y)@E0o*r@KMoJtB97MTYuc) zQFWo`I~Nne)CL_E-b?iHiuOIZZE4x1W)|067s0IV>s${JmpxuL*UJC{GR!UWpLje= z9L#>Q*3;iNJfeOshhOXC<=g&18t1-&1-69yMaul*unjY!g#2o8EMcz3L6|zZE>X?r zyV2+chomTHm7wo^bh^mteb|l{&IS8tf zS-198)mlrk>YX6VI#_0b_6XCJ4XO5fzZ*U^H;TaRN>Qu1OoYoo0(+rh*AIG$D&O(q z0WiYI(Nf(p+!|Y!$7c6Xdn%D|a&fMUm+J1?R!Ay%w|lxXN6LH$p$>^NKD|2xy@dcK z0eDbuTm+n`mGGfji>WcNUs>v~vbwy>ys0A5jA+-pze2+JTVOuZYN<^x?+4limy9MV zZK;z1E>BjDLI%EUlrGAPo_CPCb&9?w>aV?pwxluVTtQN3`tD8tvP^VuWZ#c_)MQAH{A7PXb3+zX zh)WXLw{yxjs?xq$EM?Nr=nnp~a{}dd6}qS_Zumy^)Y`}4IjhfdnopO-i%TlOSbdDCz0_ZJk^kMt0nZet)?TB(3-Rs{}71!mz z<*ak|{gMNr3g z(OA9onO|28+&u{=3;1Z05=kg%!IWPHIBoT2Wzy!_RjF%k0@;GeX&qTwIM_x7zMu zXz)C;_z0ZpNz7+J-PP;r{3cg(Ix>jR)XythxMP&9l)u{~{4b(@E~N5;#)FKf7%G`G z(}Hy~TGZSH=CWOPCg$5duQWbrV4~{7bsjsdbTrwcwz8P$LT-6<&1Bnet?f-9TdMWA za3^%_r*U5@pOcxJz+(Ov2v-vg`U^@95WJWR;CH*?WXF2-P8C3wPWfdcr4G^<^=^onEL|j+^*0BbMNrau**F_u+w` z#n?rH^5t0v67+=`004=4zsAX-HCSKPova;Ed$s1l{$4beQXWsx;=R-K4?PKWN~k!N z?@aE=$ULqyEk?M4G(bdzyvw$f(Y=t7-P!Tqj4h{uu6p|fCGPuwUhepsE&6xxPsxRJ z#R8ju^Hjhi?>Z+pjOoPjVh-s6ozJX9jDLI=#-9!>jlPZMa&TbkcTVoQ94VuvlV?^* zZtjo^!(Ly+by6CYG3p3-jbt;^UrZ+*YuN;NGrCuvIn_9;vissas=Y1NCR-d7ehjn= z0hXM}Jw2fuX_n#yUYe-!c!3FeY5Bd%cv)kKIc_`6+p5?03P`R2dV(Mk}|s_TbIT)=&4oWs90LxiV~u7`>QPNVweh2-KDa3?gLb^IgJyK1F>o zQh41lQc-5J)>GD;YIn5z5}|jc?Tqn}I){G6l*s}RQ301=9i zQcQD4ukdN+FEMd)qUYzfzX8pd&ayyG%)^MttbG0Ziyg^-fVXV4oNbk;QWPp&s{pee z!Oq^7LLaVrUkHg{7DbOV**x%--5NuXlhvJS`QPzE6T;5iY_T|ooEo{94TODEO zGks(8*3KTF7v%HWD^Kj@T$=m0i8Oa44vu7RTFqCw!I%_s$DwOQXSmKifB&lb@u(Rz zEXr%IHUmxAL3gsoY`U<0p^WDc`g>E-OkF_o{Yy%+B;WChM`hbdl)(nSlWjf=roXE_ zS^wF6PtNpOJl+0)OO(YDZk29ZzG^OtmRBdaz-9wNA})4_=gv%wYDk*^*WB)3Q{<|b z$71EIE{1{4P;{iu{|A7(iI?{FAsch$)X#)ieb9fwiV&B>U!62!e5|`335yOl)_@=p zh-r~p<=(S}n$Y8>Kgrh?l|6WI$Hy6n4&EFYD;~l&$l8}@zLbF9*)c+SzJqP@(jfG& z5a{s>UUGU5Mb?|GpbK@Ul1%P|Bdr9O_S2t$S;%mS^l>9mDuIb;mzt^SXB}vO+@e$m zP+F_lE&U`rS?7yvo8ZY$k9J|Xj9895j3TWa`G28Wl)0(46gxw+Z;1Dx;bg3{{y|6P zyD`H5Fkj>Sy;8h+_x%lIOp#|fX;^Cbj@<^sWNo~}V)-Zfh`iE7_<_)K(I^!d)0Iqn zv|C)=-i-lmv*qj24iddM)W9RHfTBV)dVsB&GM>JYX}^KkGIvirL;sN25cVUIbuCY` z1J#Ajim=ZslXa`fw{tieaJ(}ktv!~B?0V?0X(nZM`u)zq6y@`kz#pLd3pKT4IN!(| zECSsQeXnk@UP&zt=0UB0ATiC#W1p=<*|&1)u;oL%$QD z>fEn~j$WQg(D7Q)=hh5%5n=Or_QKowR}`^BC8m~khq^?5#vEhD*qb0iE60bRJT8;7 z{^77uS}$aIT?PLG!|JXlF4%`kR$=2WUqmj`o3a!Fa=yjU#P4}7pZ&nSVcf7cGgR1* z4*jMyk@{qHu8j6_O(Rr}_3QW&O0bLdYWjynFmWYgH&Y5DBcgbtdhl!vGORbPw z08#yZ9B)thfLug)1hXT8!u;f>T#Ll*zqs6 zm+b;37lm7ep5ZrNpY8*pAoK59MN+bbCd?eK@cUXS^9j7XcuMX#ht;yo9TvuHinbxV znF0fKpk0N=iG%iKioaf#FbegBC#v?bx0>)cJbtSDA*&+_!GB&=y^}3jCuGiGlbC5~ z`33w6sRB@q4*vD*B#e|AOa6Z%5j6B)Zhlv0WJrnio7>x&`MS|}W$t@v%dGt%w?x}c zW*x2-D%l@Fa(EO*jf_^oNY-L&ZTK`g1u1@==TGh#s% zG4DO#R4D_3KGE+0zF7U!)$5 zQgYna$U$~^rzKQYoG(>|pG};)JzrC^WgoxbJ@yP_HdR7-ntFoxD6W+?g5$C->|UH) z41-E>vGyN~gA#e6Yua^9$}WoB-0>H{@a;iyb)Apm@zbVS_KQDet^gQ-Cu9)b&M!Yx zAu?(~U4pV-PdkI?UD^%mbn%g={^8(8tIbUdRwcO2+mMm|2P-I=ZRjdQeAqWJbM20N z?gt_g(_SoC$7b(AKR(_<9GG?I=Uo{66YEt^0z6mH*FxT#*k(3=?2eDVU;Pw(yD(!d zn?hjZp5UFpyjw?>if+I=cLmc-uf@*0j`?JcPm9~DIbFAv2`J2wPt=|~$B`<|1;|Nb2f!J@bO4zFuEfD21h&D22 zPaWC|cK#uY^cm}2k4}&jH9o=m3c8qMf?0;Tx`Ut;0BcA>-x{idp=*l?bq4iKorPw_amJUCK=4$6J@F_agQ2~r~9C4tI6DEHQ4 zxK@k0U#2I)f8cAn4_O#+_uLOkzVl@&-k6pUm_Hp%1vqSL5ZirWUvl_}z};VI61~6U z?gAGuUtRu{efndJHR~1utJ5Wia|>fqEv+Q&pHym!^4x^W*upZqp{Du#63&SYj})JC zTT>@&*88gh+Nh5+%k<;8?}OVSnHN?xa#fTA6Lw_+ykQnI*39e5l<_YEMDsMMuGSq^ z&&3be?)NegD(lsR^EJ6t(GM^{Ah4}r`}X6k8OpgTaZdl+@6&E|qKSigVkAqChEF`) zwIY7+BlcKCL3P#MBJKHZKPZkYM;<=l-N!Fgpc2IYCVkQFp_-Iy&rjp-rP)O`>SmFv03R`K*q)AVtSfQIw4n)$>#lC*gb zM6DmZsA~uL!n^uBKf|)LWjD4!j*QHGiOmWKEtXFqvp28m5-4D1vHOdR$FB$hHt6Br z5+Xb9jW~R`fUE6MPv9(H3HTV3Br9CX=Ha@8KyG%the*hHwZ_SA)f zbj^8SCrhFh_RG>KxZ6#mwPF|KM!vB?r1{H};>eg4x%~V7SAHqE;-HG#(iR&Hf^kU2 z?Ga6(*DV50atg?~YG?@k3}w2|SGfNx$qeaH{c>l;^L|z~w1TV>%2$GX&-zmML#Mk8 z{_W{bHu3Op>`v%RhM=`CU<3Fsl({+SSPjs>O8UR!Z+cL*@kX)@ml58{tC))RUA7v0 zKoEz_k9Z6k@RjUdmJCr^b`vH7O^UHpUVCeqRS-L;BPXV$G5p`J=$3AsU0dZTtN zySDnvi5KbntG?*Z=}oi@>^pw;rBieL2EGnJKA5__jRfnvI*^Yg$I`-A(=B(j6*w{F zK1M>4`iFq$^Q2T)M|!6Jyoia*UYdbp_mFraBTGKYo}LMq(~95AF|7fj?1ZCIiFj($neqt#YpDb@VpJ zB_lIHk%~nLchqoZiCCN)^C6iJBNKttA|IM^S5nS_!ud_;t_wiquvz5=C?Y#x%NiyQ-4Km)zy&QDj~^2gs2t#73M zYT^0lZf-CLZ%>cb1xA*qUt^z!Ccxv`k40XXq@~Xc*w9cQpI=#RKcqKH2#>cF9n=TcFK&_60mjKI}GeKyQqaOydFa- z1C<766X8ye$Lu~RUAokZ;YQtG+4Vb?y?=!mkfT}Tyh#u=C^tmkU>4+dJNUc4#Wfe0 zA|+BkDs#i2LETriQI|ZUb|&&mDB}#ma36>lJE<9>)t3~211ch zL&?St&6AZD(u9B*#$q4i=344JGmC(VS_rXou=X;zQTeIn@mc7B#( z1m5bNt#caksUZC%lvCBe=MLh*Nuf5_5v8&`XIimnVfB{T6syOFt=?b*eNyBxr)`|6 zZCqSA>W)a7(%Y+lFn9D0(zv{jrkY9PoQSR?U|J1$&|2RE=Z2^{c zn<4(Kz2y=U`}e)xE0@UF+~qdo7iMeb>%Y@LBjfKMe||x%!@h(ELoIQ^epJ^F%HfIa z#-im~a2%@4EzUbDMl^p@2f6v`G|d}mA&i-X<5JtS0ND_CL>d_RzmErZw?+FwoOnNT zDn!$ThxtAl&2F_6C_mbw?PSyN7m@dMJ`hK}?&&7c89^+J>0as25#>&xMYlFbf7yvy zU)3-!=p+UEPXZ6xN5GrtUm>3K--Pmi*ER^hi1l5Zm(eM!{vR;{qFg;-w9eLbB+>b?-87ekt} z`qwGl5_QmWihsk--$(yn*on_;?S18`s8%;(`V4WUW&}V3$GRNcmyDNE8ziHDVtMd6 zhjd|Xo$0Fp7^ccHC7J4bc{8KX(9|ujQ9WWX(6GXG%J7@1v=j~omn{(g(i}$mxV{p) z2mugUvAE?9e$ET3a|smFe?hY4du9oueRu`+&2EngHM~};zzFklLTSTvD`>T`bz`FE zH^@1VKs)D*Szp{rr$vs;I2dQBAUs7WYYnqlfMBI;E-&&)?eJ;e1*=)JDoc+g8dJJG zrBe!i&C4_u_}-W9a%LpWEbH?&li?zbzdb7hWg+?Xuikfi1sXh>Y$Je|$sv@-TH zu?H|3l4Y(^T0MQb{QKtAI5j_KI+|GmK_b0S6jMgy>nl*~x;uc{lNT!@!*S9;_l|O8 zW(nrPSIa{hYkYkSMc47ZUsHp|7a8?oOe$cDkT}}C>Z+enQe;xx1sO>5)a2 z3;w(HyI0y@amWO5A}?J+@;`#Axaw?)N1-ngpXPS=Ef}p5vO8Uam-ayIx$5A@m?|8z zpnxVq0}X7cIzNZ7rA){Z&Bulqv)*>#%jOUNFvN}`XIt?O zj={K-H%&EljkFUv3F~OjCzJom1^EAqI^ZbjKa^wsH*QSO+c7JxDZ6uX&xmw9 zJzXolXK5|*kfP&RPG~XfVKl zXgc!$!`WNFMzU;cx@~Slo1x8ZyUo<*HdC9KnVGrF%*@Qp%*@POW@cu#pZDH#?m1U8 zx^Fa6NGYYNQdJR45s~rz|61OG2N+rHa$>KKJi%QM;SyR=q%1cVtjg;bsvXWPUwMax zJ;u@A$DVhU@sDUk=;O|Q5O~4=Tm2bVEJCQ@{+8sQcYHQ|foZ$<#v(^;Hjg%0#8&bG zjnF*{j{%~2_gA3o#9-{Iu+7yEv!0q1-_3a{%tDrnzMa)3;$3>JADBow(?5dI%F1i* z`H>T!5BHehG}p{}qf1liqw#2^?0g&Vu|-U7Gf%_m6BBn1H_wUob z2fKENZOO=F6ibOo^qF^(kU!Dg50Y=ORL4}8mX-b6nS1}~%w?ys9uZ07tRfZ<|3GK< zN9rXe-mGVVETLqO5sP{#jspDT$2@bwy!^5iY)Yobe|33GKxKr7sZv|_hj`N9cXnm$ zOQE8!a{4Vidd=~yHQg1>{j2lW?&>QifGG_J)SKT80d$b7E!=F1!H`e>1dHSWE&})w zX`V(6K=-fElM2T`$iUJXk+5lUC;E=10v$)5o!Q%_*gDp{F=Qc!-id-VRUK==-uSWw z9`P}UQbV-S-Rg>Qi&gzaD0XeCxgi)tUDucSW!tM){+(vNWoaCP~f zdK-RJ20AYhF&4hunyV)Jb7tGUr+-calK=n6A>;vA)2@6+lJa7FGmc_!5T}iB%clmJ z(!{g2F@>eU|DbxWq@Rl%!>!>c$O^ro>&zfC`y*=Ux5+#htXn~LFfT(*87rQvWaVJh zHi+`CI_#GFOlYmbEuhPxkUit?p97Q+g2se)0`;P{#(3acAZBCe4e(VuwFqYyoBEXU zC5pU_O}WlqOhf}aJj214$%{1e0&=o-lnG^+-(J%7=uF@An5oe(mE{H3R2Q5aVw*e1 z+5Om&M1PX^*ep6i1kBe@3J3j#W(sMe`B#=6-+Qr>*dNGruf2~!O|zmxMy8F2wC5x_ z0wi2D4XrK@lJ8}emzTTOn^8^elY{UFnf{y(OFRzx36Q&1((b=CqnjBz@E4nFFpcL8 zj?StlNc~?iMC|+I0jK|jhykS_=rtwoTQV$2g8&@9JZKN2Qv8diE^?u1sH+1lS{aip z3{}iW2eDCSZDS!;&;`pLPaig_cbMn|{0MHxao$)X$}5$JhQm!RWIIRj-o5s1m5ET% zwCC+sm5Uvqy_Ee;n)eR8Z`E^`?JXmRljZ-w3YGHi64ZBS8J2Hipo)vEj|U@vM0LL9 zfgLmH9z^9@ZI%G0X1RP;h&?+A@>X-of_MzUg%zC%pUCCy9VEeYT_GV?Ug&FvcFzX@ zriX^I^aAI1IWxuQ?g5o?>)4(tag__wN@n*DF@$qj4~WMygXHrDBMlFNA<{UxlcKPW zO3sVdOan}n4Our6XbcC>Q^#gf?JRyWGqDPD{apN>g_%gvD~*z9ThOKGO&OkEO*7f7D15DN2*PKq6)!vH_X-=J}W!V7ze zMh;hDo%d!|wD4Mbu9|jK06E;6reubCv^C`1Y4<|LWcCNz6c#5U?8r>Fj~Fbv4P_k> z#PVe?rY>1dJf$vkB$MM(BA9hPY_0l>2)kW!qY-u20>}bfo`R8*Z#?ViYBH&KdPkEd zHhIns-p{C?^2xt8W3#%(Ye^lg=mH>G^FIx#Vhvi+AT~oxmg|%LwGJibUr0IJOvou| zgS^E%u&ch41@|<%MA;?Sh!}qiM^~NHbotUk%_(xq2sF%=A%0vDq5q#hHNweF*8W%GUS&_8*hIWDi^)J`xc)G-e z=J)FOXV%oNU!-p{qdn|2N&jgXowUJJNXFqANowC!;5%IP@5EIBs7O@KHJW%3h2p4F zIVcy$X3l1=&D?^i%w>ou%>~<=%d6<#(^uotwG2J4%mGZNlhDCS4v(%I%A^ux(w7#= zuCC!qqS+dEa6E64pkALbCu!|CL_haQyT%8Q7XAOGr$h}j<)uW~XEW;TlM*jzoz6Qn z!%qxa7|fOiw*7Hk%?hrJF>5^&xGXxSyRmTL!}H`!pzrIEQB;&>CMz-RY6l5aY$A2>9Am~LdX0lu*eY3UA?vAz!Q(Mx}+DPAc40PeCi z!b|^y>Dl(B-S_wB|{4@1&^qhL4Xom;6t4RT?b+_tQhG&amlA8RGN-)7DIYJP2aV?#{{BO}wo z^4eowWz%>2_X@g{!tc(rJrrjDgMe+h2}NFzNVR`LnU(bz(m}JC#m`@wOD+Z!hM!x{ z;?ZGYAkPGaE0mDz_$U9B&I@9$JYVuX$!cHQKth$H%>pLilNW!*$m{#TmO!n{#@2nk z2SDc>gHRAW74S<(!CB&S6Sohu`RIbYvcq=VuE@vTZT#pd5QALkh@!6&5f#VbwL72! zg(FcpR>QE-&uB`M<2s(BQ_oTcvmgiqq zy)SL2d&VjfC{QUUq}v^x&%+96oe%7zH1EbwiDPE^(mw5+4*LSz9`)?sUJ*mSX@rLi*XQdwDu#i;|U50V-BJp3G*EiE`mEE{2!6s zbLzB|wKFT1a7W-cS0Ta0_BTiLefj@pofL9OBP2)g9GqI8wfWr)R#1M|e>aHqwX+sM zs}*guM!CNMVd+sPs%k-4cXNrI4T~xaMOOAC=&iW^!k!zLc^W7Vi7p-P`8p1Tmv?L+ z$t`($U7H!#RM*|c$#sZQ4gLoC;oTabm_7wCsYtg=P(npP8iEEXH$uos)`=&i4v*;v zo-)MsdaJXmj88zyYYsG@$ckGne;D!ZLQB$N8JGHnZJ$$Z0sD(n%|iV&l09#>M-=Mr7&qNn)M znj`MN;)suVL9@i%9j1UH^S(^}s%AlE%cWRA)fYZ~_FsTP5?s3o>>wjQ`Exc*>KH)?4NQ zIyy=^!NCN05B7y!=yv6i;IPO2viOo(y+G@@yKN_xI4<&E>gk)I$2yM48 z-j{5uwO!`TOHd8)iM@x@Ue*uk7qK?HD%l45U=702fI+Tbu|zumcvM7WKqDQm^q8pt zA$hNd)dE@#cHP%nGuN_rnbnWBowGawsYTyDh_W081?&FHz=*vD*1zDV6TNn>0s!W< z_4wZ)$kZic1ho2hKO73+TuJX@7A-&44e)Zs+nfVW?YfdKkJ3=f? zeXO5U8Ou@~`OF&Z3SEKcRoE--^?y4aTR?)8XxiJr>qEi~nH#G1Lw-G^@IddzFRjK@ zY(6Icj;qvyNO^IzK8U!&zEwY=>BZAz1ye`f2GX!$Z)(tQ%vdNEtACXSm&9-N*)93h zJ^#OAI&p-u<3=8SGxYKE4Oceb7^O}=nnau?WU!S6!IK3{t5#Y75tTngO42l*C75Tg z1xR$!PXV*s=+Z3zJc-~LV%zl?IDl}Tn&Ll1oH<$Bi+RXw zZ=Cv1~{5mVp^mhE_(o;!nF zsARQp4vlj=i6J-wU9^v;jVD_!q8lmRzI=?Ht2H>iyI$aH^v=}PE<8rh(H#+&sz@Ip z<4p;oJa)fgO6e;b9E*3PmJ(Fqshh>HCsQmXneoA_1-x52y!mJx8yI<_wR?gA2Iu}f z;H6L1su}oQC`aB-C}KV@y{Sh%yk-TZE4Pq?IzWB+lefccZ;!+`85>;viPm{rUWo{U z5RDKRiY88KcqNpDK_6V%4~%Z@2t^MMiw;~;N~2&D%q3J+|82L_Q7gX3m4Lf z1EXEB_Rl&3zCR#4RZbR?RkaXzteQwUS>XCaWD33(bsW05vw6TzZ$EeNU%q<$6cwWC zCo84JY%}I;GkIF>4z*AySuY?TaV3-4#BInalg@ToIX}E&#I#|7*SXk(>ls*y4lg#w zxgXaE%EHU7+PnySe2*jwA_IPkq2CZQFi7>*d2R0GD$-)xAM(X8St!d%MPy4>Ae;nw;T zEA~c2Aeo~{L9K&HHgE9XtR43p`i^pt+_tdzw7OFD(q&GT)XGV0|RDZAMOr65-)A9-F zBsM_sm&CV7s662uS8Pw^y-M z(Q96w>UVw{9!x`xfa3o80DkeSQ1uxfv?5w=M|O$07wD)O2crJC6RtXQ9E9KEkmxho zXz1xaD$FW94NUGe{Z(jO1W~Jf9Z|!r0??NC_8-2Ot>lvT=H9*#1B_WyV>YC@X<+H> z`#%*q*}}qWwuKAHh@w`^e)HwFfG8B>)>-$s$puZi$yYXd?Sf~maI$2KIEVWaR+kx* zo}tdpgj$Bz>b^uRzU7bmrN>v(sZb>;2NqVSXO*MB{pa#pns3p>$+S;-ZyocyR^0T5 zxbxSCZrtn>RY<5L7Wz#WM)i<6zSPp%?B{1zHcl~KBm#>CEt9}{!9S7Dzt_$=(^_5d zWmM5@o%aN~xASiYb52`w=dBnPJJoPoVY%7^x7Ls|iaM;n`ZzxB7~NZS`_j7692O$p zw%)Plw3P9)7i>Tce8AH4Ip4BF%Z8ROGKo?S%$;ED?45wwxSg%^0x#kx%{NYCyT@S9A?fzLh> zOL?&dL^93ut3ySj48x?z?#m&9)2Y~8VWBpFhu@WFu>uiZQ6FHyq=7G8Ph#_5pA>B!f7JqOGc@I?_u5f#P}8ms1j44R&v?U+l)p z_*-H(X$f@>)mXuTGRD8oB<5r;E5qTUuhiA1UZL1RHqM1k4R*x^s+?!9=NE%>Ee{@y z0abK9sRR+JS2NS)T3Et47$cK%lI~SPc@|2bChT_x;Ba>f#eak%b!WivZNPmUV@{G{0hO_ z;1F0rcN4-D6(hA6#!z_ECr@`n6ccfwiD3J+)S|Ilv6|?y;uy}iGmrXkOL3NQ zB(}FUyQ@G9Ih9cODSKV@1|pFaJLHkgg)6Qt&g6b`4}wVh^{Um7PBB#5fYveP zDva`y1nT(8*MZh&oM-X`oRKouW7Uvc#%L3k7xy<}I%YCqebR!-mL8DA#usG)O_)~t zcBAt9l#`|XW{HCB<#z@nbT(?85y{>AqZFkK9mGC-4fhh@i>=24X-h&L34kVr3u_bh zF4^{4At4JMC1JXPf#pcX3CBcvJsN>#rox%Om=}a@B)1q3Q?S2|fwLJf0@={Bf^7bb zpnJmhoO-q^*6!aKizZ4KPp=^O+r%Im!S4;1C2{+ zJn$?~($JP%Tr!F{K14R|)HC5$8%iJ+MQnCB%Qq@Qe(`616#l4Kj*#HqbhQVQ%9LDY z!KDW2n`3`X&>qr^F#0XB1LKIusM(Zn{z2bJ*DcCYUZT!Xt?l8guB|R+p7`w(gQl(r zIj9|{>p)mIYOw>ETR|e-LS$5h zsE)SIYX`JaLS#}xmxQoX8LW(?7JyTWe=TLjTVyTBVA@XSx#m{?vk6=8iEk~Qi3NoSsf?a|;wxk2% zyzB=c-P>_pNnqOpsP!hr=Qxk?3oFG{$3K`T zGu1fj zI6~wUl@FjXFdJXUYxr3YQZ2rHK*&O_Wao;ZpJySK5}<5ZTrQGquf2iBkrKa@{(dH3 zjQ;w-;{7ER*d3luO4Wgpnar}h4ldai_P_cst&38K=lf}3bt_D(mTcOTQbe?YKiVag z4A}gLg8xNa^Y`Og#BtNG9-G!&j&_pYPIR_ZAUb^CEzNh1a)zj2|{_wC>*Rn8* zq8InY?t%XXk@P~@{JaPuBDNz&L~tE`U9$yXNje$zb^d-e;Pum53bA^Y+>UKY)6lUh z1ISKZV#9i4tP+BBpv7WC{ynOnKkgC>2~qKe2&fUf=9ao(CSTn~mgW`hRduFt34~Uo zYaWb9^`Fxl#JFwZwEkBxR3d@gIM!?C=3M3cb&u$WJ4+PU7I+@`V_(Dy*nd2E6Qy;r zh~8P|HwY}a-=^?A&YuB-4%W|)osSorY0Ccd2fSIlynY?(5llbze+F759mtz=T&2yE z(=@%1m((f!;Mx4MVuj=7bX`C2bwhz8T*~mEA)~9&;BK(5!zU32ttGtsQECH>9fb}` zL%edjFe_L!IHH19hT1>|jy+2!P%w5&a@7lumhMA6{&{n;o!1FHF$hSSSbcJkK{g1# zFg#}vm`=e#k^2xf{u>+F8{7dW11htB;UcwbWsGF^_@QNJc&~zt9{k-jcl^*oC{!+& z@;iKF!@&s5OROH$gv8|wr$)+J=zZl!aksaQfE@q%C{09~8)o(lr$;w;AkFsq&2QuS z;GnOp;S#ehIl44UtRmoOLpzPQrYLXz^gp+rr5x@EPQN9-JsBEK9n4$O;hFmUdRq%) zM_PoZM9gLlr$akyNE+i2eT#5-+vUR89chnBQF$~#qww^EPpQf`K8W#O`b}t}w-MFU zjKD#ks;PKOE1qb6bYXBud+$9W!~f$&{$NH$__IH25G^G|RJUfoxO1CC zx%m%5qqRiz|JKnREKj6f4^RJTNM}>%iV6>`HZ^wU0RDo|@?ge^MaSn=UvJzb!KELald@#B zZArr!$bl0$?af=~oUS#Jdi3bPSzIz{Om3;^de>j_KBq{4Kg(a_KD+Nvq_pBIZ1-}9 z%2-~T93DxOz<^aKhO7*Ps$=SiI2H`IEQ{os^Kz2hpB; zPUl}Pc>x# z6>}yEj3$!rkt3zHvTvoIH~(oh-sRPnC@hFKz;?gac=`PkqPU`VVeYma^RdbJ^|vDm zV&ccyDqYbRhbV(Wn30p#h@LtY6OYoiK0I^9>*&&r6T-wNHl+kCULi(RT|9Q(cZ`=4 zi4R<;;PfbV#`&=pu28=UoqH z8&BUV?%bAG0rr_|r%kF$&rO{llxs7q`Oeg~E3fc3K%~FhQk=t_9ouiM7pH$|0rdWf zv*CmNqU&KXA%QVHp}*V13~+Ron)1#@{v$@?jZ-i7=)Ip_3H@o|oH^s|E-9Y*+OTju zM^~0+lH+tj%;Y3=1l0JKJsv>I#jB|APaj9KH<1}>j)u)Fv2dXy34!ztj+pBlUni?8 z(k&JI@uT%BC+oNIc5K}RTqd7_`Dk;3=rPiC3%88!-4}_`#q1NrxG;SveEv)w_dH7x z*=*y{YGqf#??}+5KmFDQrsH#`>aw0{8sJzLBa|`Ydm6}!tM7F@BW zc%%8Fk5Fn2D$%)>2(@}EtM|vi`if8xU7S$_nQo_rszh6X1WohLy88<^P5AL&9ad4m zEi)r348|I{hvV(srY#DJh5|{-O?!{_0p_g~&(KUwRSu-*Y>Psr1DXLp(?+x}D-MFV zxzX>=1LB!&SbepGin}v{A7OXQq|d;@?&#hIuhz+t4!5X6Vyv{pwVGydjI~L9?tl zdLabWwipQSk z()8+WTxvM*`?`9a8GfFhKK{(eyAJToCwrs=^p)7y>toK^mQd)NVt&hEzN>EQUr+I{ z&4i`jL*-hlzHdff^l-r-L9cLveQOltx3k140oK3FWdQQ{khYwiU*UU@>!b($w$Go| zl12ggd6P2`1}^U*z5{H{?oJ?(@?vM&;qjy_oGW)Es=j3h9cBpT!s09Y78aBRCE^(3 zn$;Kw7aRiiIat+Fl{=T$GRBHPnl3;xYfWhj!2JEq6kO4e+a2{3ULyu4J^$%}Gz+Gzv^&Sp7i%fc+z{=>ZEw|t#q?e& zQ;-Q88hb-{KYPprnEtTID_xBXdBa{6D5OQOz)b&KfW>70p;TgOazqEXnCo zJ2A=o+!rO!H@FUbi7tXg_@oAVxMR_jXtBL5AaWHb7!1x}oyXbKf+NmrJJj~YTJ4nV zbxe|avpF4#0=Ycd4%}LLYEv&(tsIS1Q|&?ZrK5EX<%m3)iSp|7TK6_@Z*}daFje}D zc&C6|bS1SR4IWHnc&6S^h-=K5A-(9fJo94I+Sdsuir!?j%&*X z;fJ5G59R_C+qsi8-r9G@`syhBo^;Xk$79{=p`%Jph1pVyvTwNOe(p0wH9aWo>Nl)~ zmjk7>KY_XVnUw$C%1d5jOb7zPkGtCbxdjPp&V&4vbnYDZ`L;W?0$T@7fvw<|quQQ( zOIDC}lcyA0hq%xs8#OwH3Itv)gyXhrR^l}+VGE9#+lTYIw2Yse*#Z`8;SEGelHxlC zmig6#8Q;|C>RZ?u3xk!JA@)uhFSo9 zsx4iDJ%W;K;_Cq8-e3EwrRu$jHmmA3wAs(OZ@-%8?RP@1G~9j`(N=lbWSQ%iFvvj%_+nz;;lX6CeO~A($y@&pT3Y4KG|!E|mML zH%e{J*$rbTSYF=Vdq+lY-QU}f{-9q;O|X*GqN`HG7q=?3Es`6BI*xt+jh?6&arnhE zO>!hq)j<^dSfxU}A#2Ew(`;e~sKQ(}qve&3<2!Si|EA`(J7NHfQ7i6n6%-OKV6UGRze(*^rLm#C3Ci?b&hBlX(R+2`H4Vf_ zPOcY(h=U<^2t)6Qr9$U7=_<-boh znQS>@wH^q$(Oc3im@oOZuPE&tNU3E{=Dd*2m@&SNBwL8ZCRcI>Vw8>`^fj)jR~apU zs?$ey?5g8lEZFz#c=4Nn0LWlK-i;(yT0Ub4vDy{vo_Im1eOj0G!); zJ9G)gP0g!ls5Im_CJqOBsw&o6_!k`K(=aTD(tHmgMVFcr2^bpRgATZkVnRuQDf3;v z(`IXo$sD-#W1z2Aj-MS@Tl~_H@qHL+ZE0s?VDz`8vRXkXis4w7BXH%;5fZ@DHBT~f zz|^l~S`ulFzwE7Ig88j(IE5%9*)-U52bMtO3vj&daF=rFNsaGgiF{*6C?rV0v=fPb z|4ZRNf>`HOawuIHL`Zt`(Q&Z5U;e@uYvitCyIfi3E+ z>2`O-x61?JDw2~ zGo#1u&xTWh;PeSutsdZm#J*H#d$UbRhd#FPqu(K!ZSPz)c29MT74Fe+Nva+Umme3EvLHH8~OdiGYa*|0&fPE-_1uAgYwT;hs1*%rPy(6mh;6zKd2^43IESf zNwX}(oDcN)0>5jBf~M2zb}Z@oz;S6q)K^m&weI&hNnpUTpDh)nw0!jwIbw}eq!t-mW#gbn1#uur=!3kVOA)YQ%TZvwuKhMhGsIQI*6zoP?m=u_vk{tgWN z?pmrmYk)tjUZISc1SB*$IUg+3UYRuj#Ewg)t;WnNn`{-$!-5m3#+oT2XyO`UQ|Cho zdJAKc$d4^YHvd%`&n52Z@?3Y{oLCs>Ut9@Vnt12tUkUAAQO+iVei16;e!UHJ?A%Er z28fu01oq1g$FnDjxY`YmqZ{V|w52@zIXqr~t@bu%t+`@H8`X_!EboBUlDf> z-U9FwB6~g21UG|r9hm%6S=#&^zw~#bhQ@C8ZY%WHK-AZ5#fIIU7PCaF3r@OY+TRgQ zFiqDg5&M;!2ZAuX62v%=mv{xnKS*0F)kKwzU+I4?Ot#HHa?-4r-u?;w=0{3No=#l$ z<3rvwv5Jrk{DohvP$A9VHuc9{4a+ylC#{cnHFirE@xf9#0zW!tfhU<>`m88%XITLD4$uGP!oHaiVPgZ$dxKE@1E( zKTIG5F>VGIIahidZ|UOj8r`QSJ2@q0*BXOqk1siJ*7@jRmK z5v%W%hlnHFTfvuDv($b|nJs7q)2FYN8iS}fBGjUgsgu!*lk4BQ%DpuLkpDM&&DOo- zRxrj9RqopG2M>U^Q7pD?y#DTHfnR(O;-cjiPC|D=XSb&@8Y_d2cyHmuhZ7n_B=*bVNgxlEDxz`RH@NBlM6<5}PG(0-DpvRP z@nLyu%HS&dPvK!PhbIAS_>4jzp_2~IZ=wGLRRmZfO@1OB+z8*D^Nh+LuQSw}0>fGw zIiGuwr%5bP4K?O`blf-No(-YH$osN85zUFYPL5J%NwMV?Wp~Vl_BVQ$ig{Vx%}9CQ zcIz{FD@Y9`(&+mutvQNVBlFK~wrFzaPa=K9G^m}kPaq`=vy>Ug* zIr;c31&$O7c_DinBn_=H3!_WPI^>_Ir}O89s>M&-5aFy%4F+T3M#Z@@0jOi9Lr+H6 zUeCHL*Jao%+r2*eVv6trx!^1Nt4WZ#8XfnN4@+W~QI79EU|MyC7gIC3=v9O?)~w-& zOVKXwtqDHc_4ckFX1aExb6w;Rtrb~_3yo!GD!@x!ZrGtIt67wpRZZcuer?icFS_ef zd6}Wa1!xd?$?-xR4K=wH&5ztp-)-`vbG~OD*n70|F8KgYsuC&)kBvzm)XvV&&)C^GA$&hy9~i~UvZc*FBo_`5s8nuu`0 z~3Ob~Ai9Mp(m=}#~Rz%@M< z>}NHD9H&xR3mB<9h7E<`%~wA3)4W;wmP+V?dazPC&Bayuwt0Cr^x|Aplg~uLk?wEt zP!7uXadlGo({gA0&!zR>ttlk5oS%cQKMy->_mnS@bXI%*GQZ;FO@^v*C(bHb<20WQ z)z7N4y-0t{W0qLDa#V2H+E&>~kYtE!! zZw9h5Cz8S?W+eIU4WBwMG?A?U7WH$8Od@z3 zy(Kw}nN9K@_30@cGFa(eof{LWP5uzsQu6yH3APphsJk{`swyp@oQyH)p5&P9aZxZ} z$f<(b_#F(l-|B(rp5C?qufs~U<6gc+g5zKdFPaex^aCeQUVD z@*gNAKR;4f=A2C&X)Vmprl9j`;Fy=a+=lOq;1RKS3E^8ao_D9_T%HP4?t6e$Z}td1nN9;Dq>BY4}KO7PHKan{&1zk`68G@Ub>vAym@<;xCBXXc8t z1gFZa#M-a52D)0h9Mme<-`jAQAoGzMPl_MEU1cif=)yQ0{&b!_9_!<{u=4(j`9u+Mur+50ROYPgL zV>WZBa-V#xO~9iNvc^X-&C$k(P9vce|Fg?DrpwSXfkW6-;Db z0td$KEiFJC#t&@7K&YdhXifYflOs}m+ybY6<+?9INwh&RB$pzwP;aBp?`FHL>6&7S??yuYb#m&5N1bM!8p-!AroJ!)G&pg>jHXZraAJPm2ti5O6bzcbzCV3dL}fMz?AcKL^XrrF zt>A~L(BbFuEY=6vF{+xlNHSgS_%l3i>`cn!obhom+#8PQYHfC%EnPlWL$0S|f$P8` zZwAn(59%%_c^E%Q$~2kvTy74q;=Df~y#BW1#yfhTA(Pop&Hb9P^o44*aVg$!R<9&` zD-2s0P!X9~iPv9bOOXxehEL(Ujm7@m{6;ID@`xcBU@$NE6^$Z{E268KWhz(O)7(-0 zj;$j>vj7)Z&bb4$Ky|yp>wYC3M4ZU9{C8bdTKg@zll`RRr-CPG{ijeN~To9tjD9H#_zxQ2- zs9VfuJ{|OI@HzX}B-x>zNReemMb>%b@1c+C(GbuMk$2xm_{yg%8W>(9 ziB%?oVi1v#{j!>haOx)2ynWU%b}m~cg4UR!c09Nvtrr_*sx8%S&o}T4JkdT2H4+|K z>dr6jRG$^sMaUxBJVlEn$4E{Jb`A$3UhD=VheK|9YEATaq-Z)-4#TN8_>fYXk_r_h z6P@w=-1CFc7}Qm7MlI7CAOXQ%Hvn$Pu~r0&{Z2T zHF0wJ2;_G5oa$|N0(1pMZS z_gGZq+D{-8Qli6`Q4%u=qTlWtRY!2086v|!0-r)=xN)Q3rtnC>B$f`iWWNtvZN2a!y)s>FmCin=Q0!$QImXQBG>m%iW79#d02kGKM^NvD+5yXwF01*RMC|m>Qwd#z}Qhy}LM5tEK}Q z37?jTPuHr!WPF&_8h%JSLk9*R_-L&yJ>EZJbJdOp1GF>e+p1@lef6ZJzLwsLYEZ~y zKCz&;Iez7L@8ownn^vwnS6VGT52TK!HS!bbJL$F5xg>S@-3J}>+ZycyyfqH{itwC86paN*DR?FKrJjOds^N$JQ-BPCKN(|-$j7BvSt z#T6re4~bLxQ^+xy$;xde-q%)UgXVxXgJzG^&YDvpTN!rQTKAsU5_A-VCw%29YnT(3 z6mZ!%r@{~YVmG-ffb%0=jEcTvHFjmW8=LoMtO z?=rc&oMH^NkQC$stKNT4eoPT2P*AJZ$r}F2%*a8|6u!HMFv?IC=b9~x+)acZNC)jR zkDDG+)miP7=MYj4&MfaZl2P%B9Vbb*xO%XRpUGt;>4@&4?y8j2j<338oC^`hu$@Cg zSY}FUj5dkt!(B^Wi0AN(+o>++qTi*~Ci-ObN3(IIooA#8j@!{;7K+}EN0YVG=CHSy z$LxdH7SjdOaH#RGaqyZ`k`Nn9P60FIj%M0Bi|Si_fXw1905__;6o7x7j#zPe=+;XK zy@v61NW1;}gj|TEyxi&RiM`VknW>_3yd?MM9@jVf#`qy03N=1Sm`=)aD!Lw}Si>e? zW+Cv|O6;e`rMb%_s|2?~J+wVxhFKV$MmlSLEucperpA}ltMDIKDw&+ z!`0Me^3!lVB)j>44WkCdR8R_IJ`wSsJn<)FI>m#K}i}IfAVTnPY;UuN$TUW zAC(22vY(~8d>=LLzkETj7Wu;~zf7Oyr?NpXD`|0uU4d(2Apc1(MLp#%vZXd;^?fo| z-=!omcbC1#JY=m9C}IqtMrIhVi%7zQ=9zyCYK9rq&r2;U;4?pxU(a~qM%Psx?teQtZ`-p6-Y%U-0 zf;t^1`NXV_AVKujVH_DVYC!qZn01|2mWwny**$nkKJ1A_{R1vCBS`HVydO2 zsa2E8mtmFjv+VSiKd1qg&SeuwQ3K3XAZquMcmr%MDM6qUFy# zYbnXWe?d)Un0(R2!N(nXP1Uh1k3F?aagjA#a7f~=)>+4-^+I@dc&AcpUb5JWZNn-7tpW*y_@@><{R6}>Gxe|~F{rWdi-7zUqn!A} z+(^_3l*ip}JsW}bxp5d?h=WjME>q7k!d z$^XvVsm5!G5 ze`{gga# zKK>yt>Ar-!BjlQ}=+BRA0ph)=ymBhhUU=i7g24&Xx8>|Y^+;UGRr#+;=(*> z+a3lO7$8q=U}HYL57h7Y@M%3GlVVK_K07RIrH^nt_PYvR`MF+Sjy4$SB|{=(J7H9a z2@9+Luf6jOhimQn_#uR2FoG!2qJ<%bi4akS5JYbgLJ+-2B4czy^iiTjiEa>)D5FLv zWAt94Od`5yA)}39c;=jwbDsCTuJ`%$etq_r`_sPfeeG-Qd+)V>>;GSi3MusjyWI%^ zNE5N4RjU-*H)b_%;C0=7PxP@HPXzqkINGqvCCQ=G-Cutkt> zh5h@sgEe*YqePFG8@*H9a{B)_l{T!%;HtaoN3frHE$U@k1>%NFjL_1Cd}2KH_UVFETeOPwDq11@sfBA|6v)6AE@MR3rn8v@x`n^a@l$5-5c&# z$GPRc4r+ZY6$7@hOYZs}T`RF1=ofHF3DVvCHyVw;XHHW*!cYBiHEi~vbQ39_VQI#B z?oE|b><^gaSP^AzFVixafj$S;5I(X#nhHdSv+#7yFl9n~=LI;mSy2X&{h9T=byy)M zrYcHvu@d%g$OBso}IRD6lIOHpJJ0Ke_}Sg@WsWvX4kU%@^!^{O7sXz=>h?EuosHD zLMtj|vPE?M-$+FShp*L-b#E|S|44`oUFvxzFaKPc!pJv&(nIt>REnIP&}$(%I%gJ6CZ)NM4bNRXq4Z~1oS{|; z#)bpVbyRGhC!oO8!9f$`gKwm?n#=>D6u}vOi;omdqasnLs5p9z*tv#qZJD@PV1uNT z?Au3Q4Ob>upNdEfVl!~_oI?s;s&TT$+Srs;`S|S1a2$Y@clAu+@Dt2(dDynbsNvAY zqiNz1rpVQq_NMjlLzsd_EBtagL)|6^?V~)kHZP&d53VvnToPAKuD1Z~)3|ynMa}*C zR=UR$C(omgd&MFj$&I|tyyLqq94RJ17`DeE0*Qqmn(e7a_f+ut#?O{TvD9DHi2!^V zrlaVk!9uTJz)a1>xpOD*5H3y6?$t8iud?9^CbFhFo8m7-CZZ|Zu|ltyghPfRcn+XG zec+C7)i|r!^UT8W<<`?sUUXBbF{7*X>87&LBzgBO|I|=KA$`K23FCS@I^b|B`59Mc z)F|Yty(KefEA*A?tpjoE&B%t~iY3C{J|qMdvMF)2V_^yjW_nVD2wjWtONQG{Eq6s( z-l9>+oKh)!Bc*?WR{fZ~MX?$!Y3bIUBo0ggSyR8hG?sHS;gZjma6C5=cxImVxOwNd z)5{0kT{>GKr-WPXE$whTFH|IkZdf2qmd4-;Wpi^2E%qTPPOdG4y3oUr=*r*=GisV}D}{Va}Wc2XoxB#48-!j_`z2<%ej&PHlw zn{7lU6M%m@%k`A89;q`v&Yc+woD1gB!5(%TnJXLo+$+LYTS3Naw&u~60;BR`G zCo)z9m*S#C5)+W-EHOQ9Ujq_OczCR*FLZW6&&!O~NBXcWaMa9o%8R}TWUCrD?@Ahee9y2B`+ozq0_@^+xLWGPs0u{tC zq!@3c7|1lW-_A}`i&Up_STusGtVAc#DR$z0+ZG~MmUgYeFUjx?n8GemCwyM`tY!tv z?H?kO(Ifx4KK@G@&dO%^rPd}I6v4qco2e_xbX_Jv(RP}Erkk=2c zZ|IQ->~>INKn4rE1AzX|6x;CPnq2s&OKf!7&M+ja+RFEuvu@9 zE0lFT5bZ@52Mw?=GKS+BG{<{WG%@lCVVx9Sgz%7w{Yh%eHu4h(Z}n=NV0tsrK+}lt z$-?p|l2DRP7FmJ1moFq?J!V=nEl+#$uw~XC>VL~S3d%@=YR~@tboWC%w zb|`5VC`AuF0w9!Pt}#?AvL`Hslbq-V;1|X7mkXwwWZse*!~BVTbvIJ_h|pQ7y}Mg; zqfT>qWLKiRH>0Wb*X|(TbOUTMpJ&}S(oQLOk0$jmiz5t^lqA7|{dws($c|K$|WVJUmz$sM+)m)nLPWqN~1mwYCc!?KyMb1`KoYig*B+f4dUGyMCb7WTQ} zimq@;lj|NuwGrm!EizRWv*ri?f%{5@O)$I9hP3!rueXvK9^$=*G4dlUt=H3Xk4?%B zg4J%%toY2pucqa?`J?J{YYcd993azOW#DG%6Te$MRa+rQF;w|o`^*XKTn{du9|lN` z7J?Coe(`^P1k>@g7Yl{;*hW6hxwcsCVZJcGZ!}_jh#s((QrZd-SznoT2Gi4x*o>$0 zf8=DOS4FMjJ$)=n65`r5egz1~yo8X|Rt;Xk@LfDMe}dSOYvb8yT| z`JlctO>XAJs1N9iR=#x;eGi&m*!w3qqOsM=+UMAmlk-rVb}hNv`rDUq>J11D;4CO= z=UgT@qyo(@ZWQVs)Qir2iSaj zs8sw1^9Zz1?pxos6kz39r|IcvBiF{qt!{&e9x*Ej^Zxxi`NAbfvLM*8L4lnH{2GuK zMEIRswJ$2g*_$8X$aHexGvO|rS{{cU@Cu3QH39^l-=bDkX0h%iTYz!EL3_xPDg<7{ z7x3Bbc5FKp>M7WewG|zSv<_8_ID3wrKz!&yY`8ZeBYVkKC=R|Nr@ek;7zd5|2X*W? z5*}|vU2cjL%rs&JNqstZgXB{E|)ek>evhZgdE|Lr?^tE%i zDlaTG4Rnm<|3`hYfO63XKCECNx>oDXz4bN3B_h4eP_MpI($enokjmXn6GJ6_3&Y3K{uST^H zmf!DZsBs~Rn_T@2p0T_eU6zc_@`<+~NcPf>t`!IMnP9PmV9oR^nlnROr@?Elo{I(w_aO-x!FqB48@6 z9jD(VzzXWIu}H7CKMd^(QW^O}*YO*W3Hh(bzPRPFT-$EEu+~Voxe91~-2tbi;5z&O z#^>lFvnjpKcsTy5VAXL0^lsUNtWcMxz}YLT@i_^KDT8Kg*ct>H&x|a_Dp=S&G7m)M zV)9-U%e~%|4wuepP)~G$$J=yT$TkG=d0iJ&;2F&pfw61t)#ns$hGx5DWJgeruZvYX zDd~7<-2F^jU{f^~4t7x)fbjZd!O>(>p#}J_vWBczY$$l`5$uJ(VED z#F1=5@66*872}(win-}=q}=Mcg)x1QNh}PD9wfX%4{LWd+&nm4Qfy>RRx#B)n5Oeh{T$#!)q>fs(n3HL)WwqeJ|f;?rq-^nkJKj zE-huJl+3BW1lXT_kIovNh5OGl$zfwHBmGwG=MM(lUtrreoi1cRe_U-kebqSM2FbGq zXg3;C@}D<^KJ{XR&HBhg^SJxH&zdC-V4XxS)U36{^oD1w%S~C%rX6u&$b#A zPG(k?(f0oc@pR|ynJO=nFWYb0O0}izR-4LJ@uvon>{07!cys+3Kk+EsiN&a3J!5Ad zUHWrx_hcXwx=#$?B5xJDPy{B^1E0PWS0vJzY||1lU($3MFZ=^5$@s}SzGBi`8gBo3 z5}Q#JW7#jA!^4z2yrY^?YM%f@e;_&~dcpQOn@?hC44zgU!%qkEy*ejwhO`I7kZ5T$7THeO1g@r-i@}X%U@%E{udYg zHRqqhJR6A`uCc|-|AR9B5-R?Aa#h@KxzqL>emRi8b%KA$OMk8W-zEQhV}<@d;jfS9^ejNHQA$0XC literal 0 HcmV?d00001 diff --git a/quickstart/_images/stm32l4x6-ls-ubuntu.png b/quickstart/_images/stm32l4x6-ls-ubuntu.png new file mode 100644 index 0000000000000000000000000000000000000000..59928ae8853a571e223425c6f085ee5b81793348 GIT binary patch literal 22023 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 + -Now, with docker installed you can run Phoenix-RTOS using the following command: +
+ Installing Docker on macOS -``` + You can find the up-to-date instructions at + + To make this process simpler below is an example of installation for Mac with the Intel chip: + + Download the installer: + + ```bash + curl -o Docker.dmg "https://desktop.docker.com/mac/main/amd64/Docker.dmg?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-mac-amd64" + ``` + + Run the following commands to install Docker: + + ```bash + sudo hdiutil attach Docker.dmg && \ + sudo /Volumes/Docker/Docker.app/Contents/MacOS/install && \ + sudo hdiutil detach /Volumes/Docker + ``` + + Then add the path to `docker` binaries to the `PATH` environment variable: + + ```bash + export PATH="/Applications/Docker.app/Contents/Resources/bin:$PATH" + ``` + + It's recommended to place it in `.zshrc` startup script to export in every time during startup: + + ```bash + echo "export PATH=\"/Applications/Docker.app/Contents/Resources/bin:\$PATH\"" >> $HOME/.zshrc + ``` + + - Check if Docker is properly installed by checking version: + + ```bash + docker --version + ``` + + - Check if running docker images without sudo works properly: + + ```bash + docker run hello-world + ``` + + *If you see the following error: `ERROR: Cannot connect to the Docker daemon at unix:///var/run/docker.sock.` you can try to install `colima` and check once again: + + ```bash + brew install colima && \ + colima start + ``` + +
+ +Now, with docker installed, you can run Phoenix-RTOS using the following command: + +```bash ./docker-devel.sh scripts/armv7a9-zynq7000-qemu.sh ``` @@ -90,7 +146,7 @@ As a result, you should see `psh` (Phoenix-RTOS shell). All necessary tools including qemu are provided in phoenixrtos/devel docker image (run by `docker-devel.sh` script) - If you want, you can read more about docker containerization on https://www.docker.com/resources/what-container + If you want, you can read more about docker containerization at https://www.docker.com/resources/what-container @@ -98,7 +154,7 @@ As a result, you should see `psh` (Phoenix-RTOS shell). To get the available command list please type: -``` +```bash help ``` diff --git a/quickstart/armv7a9-zynq7000.md b/quickstart/armv7a9-zynq7000.md index e0a65069..2b784db7 100644 --- a/quickstart/armv7a9-zynq7000.md +++ b/quickstart/armv7a9-zynq7000.md @@ -1,15 +1,24 @@ # Running system on `armv7a9-zynq7000` (Xilinx Zynq-7000) -This version is designed for Xilinx Zynq-7000 SoC (System on Chip) with ARM Cortex-A9 core. To launch this version the final disk image should be provided. The image is created as the final artifact of the `phoenix-rtos-project` building and is located in the `_boot` directory. The disk image consists of the bootloader (plo), kernel, UART driver (tty), dummyfs filesystem server (RAM disk), flash driver with jffs file system and psh (shell). Necessary tools to carry out the flashing process are located in the `_boot` directory as well. +This version is designed for Xilinx Zynq-7000 SoC (System on Chip) with ARM Cortex-A9 core. To launch this +version the final disk image should be provided. The image is created as the final artifact of the +`phoenix-rtos-project` building and is located in the `_boot` directory. The disk image consists +of the bootloader (plo), kernel, UART driver (tty), dummyfs filesystem server (RAM disk), flash driver with +jffs file system and psh (shell). Necessary tools to carry out the flashing process are located +in the `_boot` directory as well. ## Development board or emulator -The easiest way to start programming hardware targets using Phoenix-RTOS is to get some of the evaluation boards with a specified target processor or microcontroller. In this case [ZedBoard](https://www.xilinx.com/products/boards-and-kits/1-8dyf-11.html) is the example of a board with the `zynq7000` SoC, where the default configuration of peripherals allows to run Phoenix-RTOS. +The easiest way to start programming hardware targets using Phoenix-RTOS is to get some of the evaluation +boards with a specified target processor or microcontroller. In this case, +[ZedBoard](https://www.xilinx.com/products/boards-and-kits/1-8dyf-11.html) is an example of a board with +the `zynq7000` SoC, where the default configuration of peripherals allows to run Phoenix-RTOS. The next steps for a development board are described below. - [Running system on `armv7a9-zynq7000-zedboard`](armv7a9-zynq7000-zedboard.md) -If you don't have one, you can check the running system for this target architecture on an emulator and follow the steps from the site below. +If you don't have one, you can check the running system for this target architecture on an emulator and follow +the steps from the site below. - [Running system on `armv7a9-zynq7000-qemu`](armv7a9-zynq7000-qemu.md) @@ -17,11 +26,11 @@ If you don't have one, you can check the running system for this target architec - Phoenix-RTOS loader does not appear: - When booting using SD card: Make sure that a proper `BOOT.bin` file - is placed on the card, and it's in a binary format (right click -> properties): + is placed on the card, and that it's in a binary format (right click -> properties): - - Try to open picocom for a second time (it could got stuck). + - Try to open picocom for a second time (it could get stuck). - Power down a board and try once again (changing boot modes needs restart by power off). diff --git a/quickstart/armv7m4-stm32l4x6-nucleo.md b/quickstart/armv7m4-stm32l4x6-nucleo.md index f8353151..073bd23c 100644 --- a/quickstart/armv7m4-stm32l4x6-nucleo.md +++ b/quickstart/armv7m4-stm32l4x6-nucleo.md @@ -1,16 +1,23 @@ # Running system on `armv7m4-stm32l4x6-nucleo` (ST STM32L4x) -This version is designated for STM32L4x6 processors with Cortex-M4 core. To launch this version the final flash image should be provided. The image is created as the final artifact of the `phoenix-rtos-project` building and is located in the `_boot` directory. The image consists of a kernel, TTY UART driver, RAM disk filesystem, and psh (shell). +This version is designated for STM32L4x6 processors with Cortex-M4 core. To launch this version the final flash +image should be provided. The image is created as the final artifact of the `phoenix-rtos-project` building and +is located in the `_boot` directory. The image consists of a kernel, TTY UART driver, RAM disk filesystem, and +psh (shell). See [how to build the Phoenix-RTOS system image](../building/README.md). ## Development board -The easiest way to start programming hardware targets using Phoenix-RTOS is to get some of the evaluation boards with a specified target processor or microcontroller. In this case [NUCLEO-L4A6ZG](https://www.st.com/en/evaluation-tools/nucleo-l4a6zg.html#overview) is the example of a board with `stm32l4x6` microcontroller. +The easiest way to start programming hardware targets using Phoenix-RTOS is to get some of the evaluation +boards with a specified target processor or microcontroller. In this case, +[NUCLEO-L4A6ZG](https://www.st.com/en/evaluation-tools/nucleo-l4a6zg.html#overview) +is an example of a board with a `stm32l4x6` microcontroller. ## Connecting the board -To provide a power supply for the board and make flashing possible, you have to connect a USB to micro USB cable between your host pc and the development board (`USB PWR` port, also called `CN1`). +To provide a power supply for the board and make flashing possible, you have to connect a USB to micro USB +cable between your host pc and the development board (`USB PWR` port, also called `CN1`). To communicate with the board you will need to use a UART-USB converter, like `PL2303 TA`. - Connect TX, RX, and GND wires to the USART2 (called also USART_B) in the Nucleo board. @@ -21,7 +28,8 @@ To communicate with the board you will need to use a UART-USB converter, like `P - Source: The Nucleo board's schematic, available on https://www.st.com/en/evaluation-tools/nucleo-l4a6zg.html#cad-resources + Source: The Nucleo board's schematic, available on + - Put the converter into your host PC's USB port @@ -29,20 +37,46 @@ To communicate with the board you will need to use a UART-USB converter, like `P -- Open serial port in terminal using picocom +- Now you should verify, what USB device on your host-pc is connected with the `UART` (console). To check that run: + - On Ubuntu: + ```bash + ls -l /dev/serial/by-id ``` - picocom -b 115200 --imap lfcrlf /dev/ttyUSB0 + + + + - On macOS: + + ```bash + ls -l /dev/tty.* + ``` + + + +- Open serial port in terminal using picocom + + ```bash + picocom -b 115200 --imap lfcrlf /dev/tty ```
How to get picocom (Ubuntu 20.04) - ``` + ```bash sudo apt-get update && \ sudo apt-get install picocom ``` +
+
+ How to get picocom (macOS) + + ```bash + brew update &&\ + brew install picocom + ``` +

@@ -50,7 +84,7 @@ You can leave the terminal with the serial port open, and follow the next steps. ## Flashing the Phoenix-RTOS system image -To flash the image to the board you will need `openocd` in version 0.11. When installing openocd using `apt-get` version can be out of date (0.10). You can check it using +To flash the image to the board you will need `openocd` in version 0.11 or 0.12. You can check it using ```bash openocd -v @@ -59,22 +93,38 @@ openocd -v
How to get openocd in version 0.11 (Ubuntu 20.04) - - download `openocd-0.11.0-rc2` from [here](https://launchpad.net/ubuntu/+source/openocd) - - enter the downloaded directory +To install from the default repositoriy: + +- use `apt-get` + ```bash + sudo apt-get install openocd ``` - cd openocd-0.11.0-rc2 + +- check if the version is correct + + ```bash + openocd -v ``` - - install openocd +To install manually: + +- download `openocd-0.11.0-rc2` from [here](https://launchpad.net/ubuntu/+source/openocd) +- enter the downloaded directory + ```bash + cd openocd-0.11.0-rc2 ``` + +- install openocd + + ```bash sudo apt-get install libusb-1.0 && ./configure --enable-stlink && make && sudo make install ``` - - check if the version is correct +- check if the version is correct - ``` + ```bash openocd -v ``` @@ -82,7 +132,25 @@ openocd -v
-
+ + +
+ How to get openocd (macOS) + + - install openocd + + ```bash + brew update &&\ + brew install open-ocd + ``` + + - check if the version is correct + + ```bash + openocd -v + ``` + +
If you have openocd, next you can use the following script: @@ -108,11 +176,12 @@ Phoenix-RTOS will be launched and the `psh` shell command prompt will appear in - - Note: You can also enter plo (Phoenix-RTOS loader) by pressing any button, for example, `enter` within some time after reset (using `RESET B2`). +- Note: You can also enter plo (Phoenix-RTOS loader) by pressing any button, for example, `enter` within some + time after reset (using `RESET B2`). To get the available command list please type: -``` +```bash help ``` diff --git a/quickstart/armv7m7-imxrt105x-evk.md b/quickstart/armv7m7-imxrt105x-evk.md index 8f0226b9..d243347a 100644 --- a/quickstart/armv7m7-imxrt105x-evk.md +++ b/quickstart/armv7m7-imxrt105x-evk.md @@ -1,6 +1,7 @@ # Running system on `armv7m7-imxrt105x-evk` (NXP i.MX RT105x) -The version for `armv7m7-imxrt105x-evk` target architecture is temporarily unavailable, because of difficulties in clock implementation. +The version for `armv7m7-imxrt105x-evk` target architecture is temporarily unavailable, because of difficulties +in clock implementation. Please check [how to run Phoenix-RTOS on NXP i.MX RT106x](armv7m7-imxrt106x-evk.md).