From 172b6becc68599634ef39677ab70ca2f33116e3f Mon Sep 17 00:00:00 2001 From: Oleg Kalachev Date: Wed, 4 Dec 2024 14:41:23 +0300 Subject: [PATCH] Use new FlixPeriph library with ICM-20948 support --- README.md | 17 +++++++++-------- docs/img/icm-20948.jpg | Bin 0 -> 37190 bytes docs/troubleshooting.md | 15 ++++++++------- flix/imu.ino | 10 ++++------ 4 files changed, 21 insertions(+), 21 deletions(-) create mode 100644 docs/img/icm-20948.jpg diff --git a/README.md b/README.md index 2b1ec93..64b4cd9 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ See [instructions on running the simulation](docs/build.md). |Type|Part|Image|Quantity| |-|-|:-:|:-:| |Microcontroller board|ESP32 Mini||1| -|IMU and barometer² board|GY-91 (or other MPU-9250/MPU-6500 board)||1| +|IMU (and barometer²) board|GY‑91 (or other MPU‑9250/MPU‑6500 board), ICM‑20948³||1| |Motor|8520 3.7V brushed motor (**shaft 0.8mm!**)||4| |Propeller|Hubsan 55 mm||4| |MOSFET (transistor)|100N03A or [analog](https://t.me/opensourcequadcopter/33)||4| @@ -65,13 +65,14 @@ See [instructions on running the simulation](docs/build.md). |Frame bottom part|3D printed:
[`flix-frame.stl`](docs/assets/flix-frame.stl) [`flix-frame.step`](docs/assets/flix-frame.step)||1| |Frame top part|3D printed:
[`esp32-holder.stl`](docs/assets/esp32-holder.stl) [`esp32-holder.step`](docs/assets/esp32-holder.step)||1| |Washer for IMU board mounting|3D printed:
[`washer-m3.stl`](docs/assets/washer-m3.stl) [`washer-m3.step`](docs/assets/washer-m3.step)||1| -|*RC transmitter (optional)*|*KINGKONG TINY X8 or other³*||1| -|*RC receiver (optional)*|*DF500 or other³*||1| +|*RC transmitter (optional)*|*KINGKONG TINY X8 or other⁴*||1| +|*RC receiver (optional)*|*DF500 or other⁴*||1| |Wires|28 AWG recommended||| |Tape, double-sided tape|||| *² — barometer is not used for now.*
-*³ — you may use any transmitter-receiver pair with SBUS interface.* +*³ — change `MPU9250` to `ICM20948` in `imu.ino` file if using ICM-20948 board.*
+*⁴ — you may use any transmitter-receiver pair with SBUS interface.* Tools required for assembly: @@ -127,19 +128,19 @@ Complete diagram is Work-in-Progress. |-|-| |GND|GND| |VIN|VC (or 3.3V depending on the receiver)| - |Signal|GPIO4⁴| + |Signal|GPIO4⁵| -*⁴ — UART2 RX pin was [changed](https://docs.espressif.com/projects/arduino-esp32/en/latest/migration_guides/2.x_to_3.0.html#id14) to GPIO4 in Arduino ESP32 core 3.0.* +*⁵ — UART2 RX pin was [changed](https://docs.espressif.com/projects/arduino-esp32/en/latest/migration_guides/2.x_to_3.0.html#id14) to GPIO4 in Arduino ESP32 core 3.0.* ### IMU placement -Required IMU orientation on the drone is **FLU** (Forward, Left, Up)⁵: +Required IMU orientation on the drone is **FLU** (Forward, Left, Up)⁶: GY-91 axis In case of using **FRD** orientation (Forward, Right, Down), use [the code for rotation](https://gist.github.com/okalachev/713db47e31bce643dbbc9539d166ce98). -*⁵ — This X/Y/Z IMU axis orientation is used in the Flix IMU library, internal accel/gyro/mag axes differ.* +*⁶ — This X/Y/Z IMU axis orientation is used in the Flix IMU library, internal accel/gyro/mag axes differ.* ## Version 0 diff --git a/docs/img/icm-20948.jpg b/docs/img/icm-20948.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5e6af2357e938b598f89a6b68eb69749c585904b GIT binary patch literal 37190 zcmeFXbyOYCmOpxs;BLX)-7UDgy9Rf6w*=?luE9AR+%>`FAi*7i2X}%dk9+6NojdcJ zH*fxX@2&N%TGh3?Y=7!g-K(qju0P9vegH5OWaMQ4P*4B>)LR7n*+%~@?Q3TZ04OU1 z7y$qP0stNg4gm8eK>?uOE?EDN|JH#J@b2&B0Dw6Z(LZH-DEj|s4~_jF?W61fu>WZ9 z{+9nO$i1bvk^YgxCjkKPZ+EcloSYoVQ2!=FLBjxw{=J-ooxKR^KSnHq{`V1K8;fB6 zDQlPhJL0#&{tACF@D~GrG4K}ye=+bE1Aj5_7XyDW@D~GrG4K}ye=+bE1OJtQKWk91 z7y#6NM6|aY4S?|$(EvCAJOK7v!U2#1hyVm{k?2ig0gwYI|B+Y#Qg0>$&bRb$S1EuH zKpyY`!1tEq-(*LCHbC($YQITA06T!iTM7bX0;1kxCZHG4@|GR}k5DR@|8E2M(+|Kz zfbN3%1Or70fX0M^!G!uV2;hD*RY1M_o2lfV0S+1l_8mMF0@OdkKPv!lW((MNaDP?- zC@^n^6AT!Px2mIW|55+{U#XZm<*T2mM5-lg=>KjKZ~`Hkc%c)cI}0xLz%%c5f}Rh4 zeg3NQoSHh#|Em#@Tsy86{aSM%Jf_1b79NuW(wD-y3cDS_POAs6IZ$`qD;wyCkEZiC zUgdaB%m0fZxvScuq%5!;dAi2h3InS*hY}!xxq_zXw>I_52iRc*lQ^;e2Q5(B=RzUbO{}52hKyemGTHPuPMBZNjdhzz zeV-u|9;ke6iF7xRkbsepb${>^945;(|K7Dlf@MIq53@)7Eh@K;NO;GXzxx4l(f_Oo zS*SAM5Y|&%@IlK99$=4ZcZNKu2!6nyL>uD6c^*Vk;`U9jcziR!^M6tegFiMSMLu!9 zo2J3KTICxGOG33G)?hUbmZ z{^K72y2zwq;Z3tQvx>znah7Y1lHg{3{hmi^!DiEb4_|TM23u+q`wij$070|%z>edf z6T*;5y>#b7rWdKyWPH;#NJ-KLGcygGDkj|WVTCkocZite2Na&wdJVR*vBd=ljCD+Z z7xMgWX@OSKv#Uj?zNy)!SFk!f-tkGb&0$KOGj>;gW2gIIb?15KJ0htM6X{=&dlcPF77%dZ`{nmp zOa9Hgcb-Fu{8v^?MC#lu{oVtvvDnMRKoU~jfv4o&{T@!{r1Py)77O*9Q7%_isN>u`Oou)Bm@yU*Uy$xy?XtZD2w(c`OHPY7F93gaJ}%Ws z)&I9}3=hXx4+N30HWF$_2;&1f=X9RyT!W)_j&hX>wnpxTX`Fa(2*MA}dj9}`yk9L^ zy*J__Hi0cP`&{!8cc`kYg7;)}=TR`j+`KD5%fA7~$54QCNsnqj+U`sv%$~RaD)8e4}v^)pP`74s1@MS%P zV1vdlz2Z9NPj`oh;S(085Kn>pd{4xmat7EBO1FGsCYE^7rR|IbupYurEeV@S90c}2 zMz3kK<{n_QWS|6dj&@@1CqQ0bS-01s*9Rw;!&lwaC;vvFa$v`@(aie34}PXea9Muj zRUgMqeTe*S$Go4W=8>u&x^Bk9f1ZGJ44F{$vBtSD?9_4IO`Sq(`jmB+lZ6+LH6;ypG@jbbvqlMoR<%(#?wxDg9jqC3V@hMF{f zSeVjY3}!1nJ7#+pSgD}-IVIdZY(TW;WE0Vr!R0rN+V5ECGY-1%p9nfHw8=DD9^SJl z{{AoX@C}H-IoQjgI=9Rj_m>%%>{U9NL2c=Yi*da2FaP>pbpMx2Npj6JkALr%`@rv6 zhcm&b273*uuH)f4z3@+T?v}@E_B7SKz7S7aT{xx_s&6 zza@BV%GJtRr|vUwlw>Js!$&+z^ZoH+^?FVlZ6(#Y*tqDLq9j&(;xS4}K#Hx-9kXc> z?WpJ=CAEB{zKkxL7)0yEYPjX+hPi$e!wuZA8agp6jL`RB-Z{u6M(&)mDsE<;Y5c~w z!4(@5C{f6?^>-M;zQUKJRu{;8UOv0f`ppyLcOcis$(7|)d#fd7gWk{o#EMVrsY8UN z46I|6k3+4f+q%Ap@0{l(OYtSM1Z-NWiA=km3*CIfxNpAS^?8l2J1R}B zt>LDJgUjna9tG?V`pxrVrrP^=Bv3zYr`fHDY`dM!AGze_M^EE2+)o%bZq)V*4{gA&W=sGtULYCtY+u-%oKqAKYrB7A> zeDdvx$iM|okcbdG(a&JzDl8%4lwp6U&oh?-UpkT}9>Uo7Uro7p1DKYj=7@Cdd9RGj z6c>DNHFINmb6H65e2ktee(q3YCni{Lp5wY3tC_N_46quGWiJx@%c3)NC8}SvF)%;+ zhlc_H(2o{gJwPI1)UiCfy@ek`&pNzSb!m=o4{~tlG^79AjMzVzhC}mC5db@Dhgo`T zG1bPg%sGm%RUi`?=I-4(H&V?8ulte41$}uAHibLXTy;yHKL{KsfA4!Cwx)|be9@U2 z_Z&cc)b*QI(1oXK9<|vz@y)-5xDdkooNh_ongS{0(&OT}=I8 znWbj53W!Fnw-BV_Q8c$+L#7dRXbeczwoPVMR^_Aqo+Ll`#) zT}v9=1NHj{$}Z2wj0|2+*g-H`^yB~lZko&eGNwP*>BO8O!#zVwVqO+!enCG(pGU_} zx4azpwD!s z*v=qyY8!6y@?Z09+$1a}U0;Mj%N@#;b#_&J!V#an9({y-Iwkk_x`N=1j7b9<>2^=f zFniEaKu0~t+oVfpUaRWTHD7AW_Xp5&v#r@O=^1}nfZ28y#D4++m;SXz_Ix=#D7|Ms z0V^Dwu6C+Uj#iP?A^vx1#`k46OEv$2`OOFIpx@S-<6k?M7NE*Id(g+-)V{ciGJeS; z*m{xRJ%F5{%>Bu*dvzfx%kr0rRM7aKpwdXV(&!Z4jT8W8OPHy4sT_hewP{>yBR2_D zEZUH2a!{t$7_w2%BpK@{KfVZ7ck;~On+Y+^wc{nM&Zgx(LD#di@PAW$bTI8;&G$XP z14fpsBZ`2(`G6KB)uBOApJ&NL`>3Kg^j~4ZOiSmH@dACf5zbOAE1T{qLyI4or%l&Ct zrB*AEsgkb48c%EgXz9ef;ahVU?~h~6IpO!#CqATWqf0U-tV%uHvjJ_VZQga-Ckub` z_y23~``HrK^o5&%K(Ko-SXah{rvFIIxa9Yl=aVjD%q@{WtPU=z;_~muzx9E-==Bdc zqx=K#{$Ys!1P4>LMEJ_rh921BT{XQJd-n9Ed|F0k31`{PHaW+yK)btos4a-Y=Q%$= zqtT&V)1bWjR_$MP|6NA*&Az3rTYJizn1nmu>kfgh7UPa@72FWM{9CoKZ0wN8<4>G_ z>&7?S<(T;1<=k>6CObyUu>7=zhcjRaTzqCyR{=u$w>JNJePbKnZ@xUaabYYOG~LC< zI(wIeD@8<%$^ZbM+`!$YetCHMwx@|6?4tJ?P#x?v;(4-mosvI*1)LJ-PR3)B7@W|!9IPc7-j)+Y>`+m5|Ognx(PQ>KOyDcGE zhYe$3V&GNw6HgMZNvCd{y@Xx4{vsErYpnspn$xdVy@}fGeUqoTE#d!jJ^vlS^}=@L zlHA?IOoI2h+V7Cn=9AGgr@I`Rdm!%IZkz#y9~QTd(s%q5gyiTz1%4hI+8$u1vsm4-ddiU6LvHz<+O|9>(QATbecD5WCi zF`n93;U4CvYPcIdJ~`A5wCs?;>^@cK`+vADWss~{*-EXe8Xir+??XRv<4u0wlI4b)0>HT*(%(%l9hu2!3*3#-%4^%dR z6JI)#k<_1U)m_VR8J(oEJZ?);3zDmjt_;<^LZB|g>9%|K8l|sH^lkp2 z#hlI1|4|75;HMl+i^e)8Ch3&`y##bkXl)rb2I*HLF;C6tTyf3dEYtDo_b_@ zUEXtWMc0qM;{xPw``aP4DNCXoc8_E)J^B!_d19gP&pykL)^x222!C{P z-smVkS@383BKDvA{I_?c{v4OQi>cb>$!25tNvGGKp{HY^>e+|eqW`w}e=UTWmQ8$% z1)=}7;{P-EWN-FKAq)UCG!zUBGz=Wb(V7tc+I#y65INpg<6}^*5HA8tC-a!M9fL^wNe7K6XY#5#KzQ z2XKgWcR_)BkF<}0BnCag<;Uq`3;s7Nt_>6xXv?GHP}Xv{-sxYAwr$ zwVlHEVlv|+<`s*T9AJV2M2xjgJspV4)e8Z7age`z}Bpc zZh%U`F2?s6PI!sc6?HOPBO(anX4_o^k76ml))fMpnB5 zn34@+jPbEuNK^UT&=q63o-sP>#La_Sg__upkuGILinDjTe3z>~w($wG>j?t2(j_VOf|r;jpuiIn|GbtW zL_w?vN1p5)KZXIOzQmC^nv=P3tjvQZt|61IcaAcGIyME(9v{ruHQ-dYTX^!oS8b_Ut^pQ@C6V@?5Q9w%!?S)0P_C)F z;ycdewX)Vfl{DbB@lp@)UQ6Gg`oUr}Ebb%)VW5G*F{u}9oRKx9^QKQ@WDp$M2dgFF zQkQeFy?Y4LA^G@wHp6yD;=E6nqjNV3#JFj4AQ7NqppUquZUJUNJY7DLVQk^J(p76H z+TURmuu-pkvf3-DnqQdJ;!wr6nm)Ty&BYBnWojgQjH3|>p051GG6?W$E%Y#Ud)U&; z(@|wCc5u&fV4NS(*50>>qiL@NEAt3q=RA;%;fY0CU9ld2({3^tdPt)I3PVvDeqb>X z98OKDa5XC*lUy=zPt{*r$+EB`Bcj){vfUukJH3~sLx?T2VndrO_TSu_Q)byng?DTr z*f8qM;a1h8VUd>{9CUzhFX|4Xan6Q%{gOI0TNITIBcdwme#6JAPN*sug1@*B z^UlTvoDyyBv#YUZQ!h`7OPj$pFLa#0-yB~WIM<&l$*m$_$Z@~#b@#*zx_uFP=ez4} zGCGpv>zLB;qX}c*!FRWgDGI;KF1t7)Zl!bSCqySjp8JlM-2P>?6~gnRq1GX+kHAt{ z=9|aa29Mb_sE$x`@?r`kzeHqr5?o^DIk6}ru-)C!drG06c1|LpEL~6d+EK86q!Yr{ zRjE_>o+nCtQ{+%>IRy?SUh4o9ok>(R4Q$4GBH?2XZu;tRF~V_}Pbuch22uV{ofAN)o@s$C%d<4pX}k zJ0GsmnANNoSpV|(-i@*HzXtomtFfO;8LraFQ^`t>pCjo<*G^ah^(pc=J9IQqKe%f( z;an9E(R49w3@RG7{i;}hf)?L%c-L`Qd_p{7z^MDN10#bDHh9ch8#eVD9`rLCD#&cOqzt~8K2 z&B{AKM$#RvkF;XU^I$5Qe2*jwj+CXDx$3kus*xX&Zp~TGSwTHCc_na=Hf!JnwMscO{d1}6F=0enKKWk z<_f%;otWt&Z1w>7r0E@jes#`$tqq=H<8vT9R*x~_-L6higL#*FFCxpNNkZV4_x7#A zJHMm0X~Ui{%=eh8U*2_Ir4VJto#ocsQNt5Ap`n?kab9A5U*?N|kC)K#{_4A>Lo;V> zjZPMK5~l|_bpQ!-ZAH?c9m|9`v<$q{*>avc3p3pWu8xVitt>%=rmZPZ?N}431ZXy#5x1-X~9zV9* z%e-nLA#0Fy+;fp?EG~8Ho$Q9%8Kl!?&?{qz^&RI4;L=UDjET+f>L_lHdlv~U7Gkc* z?fS)!nDKzmmqcxb_;_IqEa10qN08NU^Rsu?P&>_#sZ2!3?x4T{3p^3TabE%4bB!2x z@SKZ9WHOCT%lL*ZGz%)V5W5s7TqUR^E!CoNre4Q~O4rJH|Fb33ao+62k_n@$wQ)M4 zd7VvXqtM+jR9xd@%kb1-`@yuo-Px(5L;n^sa|6UXJ(kz9&J0Pu?h9dc_Y?g9`bUD} z?XWb1uM7<$hN6miNDari40&BC!Ith=>4uq(%-ZI5)WhQDJxKM-uCwRi35A_n3Ca)6 z712{MGj~JMI4elWlMlEOl>h+$q7OF7af&aAWq>_{37w7%`Ptbbzrqq)NiwzA=(oC4 z;?~`=gm?Y}lW9}NqYW1d+Q_M==%gxL8gA20uWoGx;H&Y9N#uHyPx8oUP8L7vUkAoV zIaH@}3F|cY1*jlfJ#Zp0%oUT6Y~=wVb#c8>wC~fNXdmP4Ur|7+_&u;O)ZfQo>u@Ty zcawLmEX`{^Z6eRsn=bS$#ML1S3M5yF2hb2Ir;5dJ*Dr*XdLxn=`sx=*q&>#)9vrr? zw1W%|lx;Y?IJHXk=MHwiiNt!f`DiFr>6~0XZuFS4<4L>W#y;aM1qMo2c5xqR4liQr z#+WCHc70HB_?~J!oFd~*-Mkei`6^6S51eUiEaVSbfK6uBnMQMO|K9y#t-Kz1Ypk_sQdD?$UvpCnwRE?f;H zefg}&xzK=e#fQaun8~DK&}^r$MDG~O0C-sRqaD{$&?oZJP-*#2qe`VWxfUF+i0np* z`mkl-0B$|#N_q4<8&(yJx*~adphV|po~74bM~n)a;vfdYQ;kxG@gnxMIv6wjSi#l) zyu~p|vrpI_3$tp^CvGzey351-(GPTUsWr*^bmQaaP>VN_bOV{Tk3lURDW0+E!^pfL zPU1nNLzY@?O$818gAKvLCz}lpL>dSab+q571~7vMRY-Yd>Bl7<-nAbNwd?Hvs7S5| z#<&~@^Ks+5Y%iMhOVAEDt~h>b2+EOvz{9V6xa#)wKah(+U- zV1HlpGZ)d7qL9WUMwfRB;jFR{C?<4mCBR69);~$R!XPh*qmD3&O~zqvPF|~5*G2m) z-w=6%61Q*{>r0m z;4o#Ls)ql?47XA|@QU5a91Y&@{)uT%2qY*M{j)FgM&AmEzba46X!R>`CxV!V`&#bw zdUWb$u?1Z`hX6x+z_JEt4%$O4%M!Vg;<0hDs%Ee$-`6KVM?v5a6(=jlb{kq#xSvW+ zu{@yD)igkpXRl+zSHG@+p~a&kySj5|JWkG%dafO& z)5PrI*=9xQasTC)VCq#q*|$znD=IqzZE-rxrau6brKxI7Ai^R&rQGf*dUZaxdg8eg zKgm7k?2JX#iL&vNr3Bi>2G_1apD3F_PnMHZ zs>Jr(4Xan?`aDPXFuH$WhRMB*#GKSv%i}8X3S5K z$1bd75MFVoeB@2zZg23zG9=v4`OU=R7>@K*#V8IN(Z*++C#^~TqFA_wVfl0_KInaP zYFNkq&`|@;0f|f0}L}pD^n|D2;{Gcm)3RTk(u25e#Hg_=t z-!W&P=C3)GBkOWLL!3Ccsv(=GBWj5u{<9D+G3!+re}(8T_U-7qZ)XAeAL+bL7s?Wcw@)yUsO8ZD z_c`rUiSznWyGW4m9J}1WDlimT&dtP9xm53Mq{PfEJ;S<)L zHQlI(7#hP$_vHPG_F663>5k)d@6{9Z{l+b8cYeRjU(8iFBQF#;!Q7BO<>lUyi-s*# zOwZa{hCNYh)RYQ62r@zux53~x+Y4*uoYo#}B16xx7+mrfKET1X3Jj$ofdO<8qqkAd z%_9ebAy&`)NTMXEHJB#qUe04^_2ngM0MbwS0Y4q`NeFN-5>HF7#eZ%1_EDQ+#Fc>f zPQTZuiZkf+oeQo=W40lR?w5uN(CPPVy)*e(q+xe%(&TKx(~%=^R!Q0Rgf-4wU*A^l7mBt1IM?q zW9?Cg43llF!49WPc!bo&qG*)aZH2^j3-Wz%xS@~}C0Lhx=-Ts!ML^sj6E89qTDSPKcsr5d?cR~wud%ze>Ik6c1KfRXqhfO#&-jqPZHk!{*V-hb2{i{ z=Wmnbc7!u4)t4O2kGhlksXB?m2tzh;{5pFgm;ruJ@n+u#^`(Tg1BKn|T0*AN(X)EO zY2hlJ_w$OF-M*YBudz$bBaa9q587cP=I({o;Fm>Rl7+UTRzdE|51avK#H+)i*F7GO z1Pxg^@5IsFc!3N?j_XX{)zV=0jAH2{;Og}O< z2cb`Ft=RKs(>LCR>K&eLq#Orf@2)!xD()Q>3~plYs{>i~yOR@CzuWF=Dg){L(=Igv zTrtQF<;sCp`)K+8kyQ*@uAX0wEu$XCdc?`Y(ONf8a><4qgnI1nDO!+}QNng#3haK= z5h-$46I!*EK$g%rkV;doPtS+;Y?%EPcv5=^5|e3}2ypSWM_EM8Wi)2x*L2&I$=){p zw8?mC20g%o^6;KfLL$t&A^*0^73<-(lZ>_(5@ujU-%MKDj<#T27ZX@*1hUQR&~ULY z^CcD^lOhHanV4&F%pw5)Uc9(yUm3QRSC3yu0h#C zx2e{}jmv`?oiP5eE;4H@#*If`7}O^}<&eLo7h zFK)*|HMlWm0lcS%sa-67U{Ie3Y<^vq948ok}6*&DXjG3?)Ls$jK(vsL|69YWiy? z5^6@kRc+XlZF!eJrrik>x>*%txAI~EQo9#15Qz;&pNL5#Attf=+(btN6u$=$n3b@& z8a*DgX4x^#nl|EJ&sWMLIi4PU$>i#^+x0Jw_Bq{i&umno?qE~%6S%(=W(P&Ss*Qxb z9_CxKs?z+bo|jTUB>Rk3;Ada(f;xLbIgzaNzVw2c3{m_Kpwo0%wRU!VW@x4PzHgVM zmm)!sqtbYH!ZPJ}6EAPM@6f@zx`2v-M}fx{Tx~)g*M+m+!~;?zd9*uad`)sTN`n-v zd2^tU=s^s%TvkVxXM>L`6; z&-+9omyV)Ym7^#l&ph7|UqH9WC#*|n2#iTM;xB-4pgkf%$|AZ)ncH1nihQ$fa1AkX z%17r?CF^q}7b|%m;QqW`H2;}hB1_B}QFF-4zg(L%e&8MKD-_hzQQ+vf!;r|MJ}adw zqoWlpM1qE1LAYyV7y9F-HvNP;fbphgDO)~I>vONF!d+QjK{}0ZZ2RspS&B--au)$v z7CR7ygmL-uN}@DaK7>Y*U^&n8!Heh(aErYT_zF>-&WX zSx%3Qx|7y>us%QDSygnT{*|wSMZr2o`oy7X!GXvp+y-9-r!~2gf#fY`I_)peSq=II z`cG`vY#&OT%Nb_<&wiVVN5k6rGQ%sJxJV`cxC(`4jaJ?!D()-tk|Xf+AflX~dZ-CYAN%FW8!hywHj{kP|-cp?Soi~Td+A@2*0dgdAse?*~OHmN?3aS49$Vm~X^ql$}@Ls8+!Xxb?B?qxy zwny&;vB~Bnte&c7@D`3i zv6W6@O2sYzOIZ#VqQkg)weu4YesD2`mM9Y;=&XIds{$i#T1h zZI7yS(ds>!XIZ>{b44AF7_pT4W%zKQFSNj5S=QSP%lW^wJ>s(zA zzv%iqlxgfPE6!i;87QsP3xYazD&#fDa?cJfBE*W!b8xxA#x*Ndnw==?b;rU`KO$3c*6& zLIJ95ebS8mS80C$!_^w+8HY&;1V?$ z`AI=DmhPGewoB{k=GPvO1dvYt8HA_$!cv@&%CzZQHEu4lE_y_GGe;LF-?(J6%(;=1 zzQ8U5!8*N^_@rX}Rz+ScIb0M{(~UAK1oixsH^j}I$2-2Bsme9lBHwgy?M34@kR znyG|cCtOX3BbpCc71(TT`t2b9lh@DqKNsH?L<`nPgcJ z^F;%%ibz&$qNs`lU3%nkRtxK-er8>tbwhFHyVc=AEFB#gD=Uf?UDpE;g3tqa7!ruc#{GH59jC%tlDPl`}W;)@-Y) zfY^HL#gTdMVd6Ys{nE<+zH(ceTJF=Yw{5kzPmayrHMefQ(|Xq~YiVPoZKm5!4tzFC zk<#LEgAa(XbO>H_dhew2r1E#?;bJ6aX+lM-5{Gh@-ZqAMjJfoQ&n3ZTBpf-+mdBS> zBwS1}U9BHYemR5o0?vNJnw+>P{g>5euR(F_+Mf>!w17grH+~&acu34Cfq&nlSpT|P zqYlB2lHa~_=zdfz5BATX`SB7OQ|vlA<4$AEEH3g4sb~TI0R%>6<3H^*wl?s7jy(hG z7?kTYPQ&XZlOB@y*3n@8&BTg1}&^qN3_c=de#ybd2kT5)96w7xhwhYud1p*Du&Cj^+1Z7-Q%5a9~!tQBFe!j zuGHCMYZDZgn*<6w!IAEM27us0J$VlEDKoChBc+Hh5i zNRce&@pRhUf$oANx+K2I?;$~AM3zV+6AF=q^Ugicu7EQK3p|^Q6EsF|!SBXBQY&Y1 z^qp)m6})*|7Eg=N`+HH6#)JBGE!E4e^ogzQ3$ede{dWj)w69~Z3`!cbt=w^w0GjmwrJC&TrVA|iPY_z zJADiqIFcX@%|olFWYM& zkID( z%b2M6k{YN_uotS((9yNf7^yfSNKWl_=a-3DN@*OT@6y*&)k$pqw>^C~lKXV3 zf`{aF^k{7NYP!q+0PaE5pIlIUU|!04RJ)4-(exa%tRWtPbrc^5f6$xH_+tn?zRr-+ zB>0-K*|?nha>mxHXtO#Sm(ree0ab{@5#eVM4{8{dQQ}i9JvxMPJ~dgSt0|p&&}lL+JeZX9{(s z65BrjSy>YM7YM3tT(`EH9xS?3d>hMtosq6QUDA-o=jy~c9RD(46lwI^VZK`ZtRR}b zI*N7#qc(}x)8@;)_6*2-Uk6Yq^pP4=5jXsu<2dNevpjqwr#BFDEq_st48WQWn7P0qdtC?z!|2&nM30(>_dPhRds1{q*A#6 znv7SoJC)Hu>#IW+BFE*3W%j&lok`R0zhxH zfyD=0^a!Ewlo}!J&a+?B3ntm|*o@PYM>GQZ=Z}!B+G+&5%W&{aDN@=}@+%r&T1AOG zsQB!`G;63$Rq97MTX=L`xkDDlludT(*Lv&0&Y6n0>^;gqR|}fA5zJy`a^KmN9hE7tk6(DKPwGMK4e@6-8?dm0YwsAuWj7~ zYB4)qFyFc4rokx#$J!8zbZacgYVGVR&Ltw7q6E{i?stMXk$qJcG$=IR+dVerdHd*fLcpIZ6GzgrK-KI z>#~K>qDol>R5b6NCPc2BV)C# z9g96Xfd2qK;mt&96E{1D}* z^?>h=)r)891q@p?e0vyyJOaQoROA_Z`^~f1KYVd*ORtJ_&ZmK^3m=hwiCjxP==tdtCwN*?UG*z0 z51Q98us~Bleoz-{mW(H9M;~gl=~dBZAQsR?_^!dk{0O)B&G`rLGC$wd`BF|@qXFwP zuCG-UGb2)Hq7H%zLruGwL7=hm;3#J|G z9BkEHz%8v8z8rm>*0`V`ZZ2SXboN!_j+IHk0n^zgOguKh&qqPlhx~{3y6?K6Io(0C z+_9aeL6dG~kM%;;x#~uNOokqNF+wjL8kI-kz-m%cZ~qkZ9|tw9sIhuZ%hq0@{RD6smOJQy_z*(=@n#$@ zPkEv97&5~1KIqS=^Clxx$;Cc2RZ)I#)+BsMJ$h2^s-jL9qY&++QJvw10A9UMkn?~J zjjO6tZ5yr2B6oQgIynKeng)3d7`ssBq!@J8by-@|%4Sb2YN@ZOwfgZxcPjG&P*fm< zGi4Jd4k2tbjeR|B78&h~ty)MF+U+2y(q&`g!QMk2T`N_D$h{}q@jXnr-pK}d<|~$@ z3BrjuF-JJIXLCl=FKsIGV5F_r=GBi{NwV+?6X3V+bJXT{n&3s%b|V*(x1XmF@bIs& z?Hm+;0Y(8TLm5mw=*)bV#%c4sj~`fwjbGBr8NXv$ByB@`NN9bvAF6KRzNfaM{t>Zf zUxUa(M#i{vxomet%J9p2%4w-&GN*J*H&Kq=8xO%{LpCwV43(^DOD&h;uNP%$N^p2od9XUxZRMad^MZCB5XI`VV%Ri#dOk4;T)WXn zrio&g##*XFw?|6?W4BLJ1vV;U>_1$=Y8YqMHj7K681aN1ndno(9F-|U)xK>R{6bTP zlNAZaP+wTUmRHj<1lIZ-YNiz|FAje5!DnFP(yT$IvtYhl0)P5G8?ZQ%Bw8vV$YVkt ztc2z+@eM$)d7WT&fS&Y~k&N`~6Z{-Z3yZO@qp?nGi+?)Dch3HB{#33II)*qR<&sz+ zYYW#p@_OS6Si>NtG_yqh7utFh3t|RFmHmPt&VetpjE0KWRL6q-wSE#M!y=iLcEkl+ zdwy9)0dF1aOdqVik>zVrYw>|nBxiRVPMd?&^E8*ip?QrnwY)vXn-?QF-%A%4;M{>M z_zp@;8z6JNlxzhj!DiSTA~X}X$SGjhA&-(_%~JF= zDs?!W@;vRK>?q^CT!#qL~H=<$ZV#wyN=zYznqg_qZc|m^|OHXfc$jA70 zMl4tVLm)CVrcgiJ0mbN#h`t+8{fpFp=(bt07S`_=EfE*m8qT znGU1HbKps}(QBEEHxfv{bcDxN$B-50xJCa=fij%)OcEK@lryU=!;Qg9%MS^NMWf?d zt_jEt9V%!gIAsrz+>7ii`hm)5%NqK-a~98IS1h{ld}G&f;X?~6aSisGC_J1Bd_f9q zBRafc2q!&cEpq~4bi7e!dzbr!t2;J~*y7_}hBYO(T$(K5JA%`BPjX-LBqG-zT&tZR`2Pv;G? zP>T+FIQCY?1R`$O;+lw}#x|wj!O7wuKq?3>Oy!RRKaSE%-LWSNVQyENa1w{Mr{i*V z2+vqr=-5_Ex^8p+G>hVHT~`e86zXMIADBclncMgz50jip_(;lwY5dTvd9D zPmIm{a|M~k#6r!0H31Y#>_7n@g6XawYiN=Gsbh_4q@zbts&k(7db-que%4XdR)c=E z<<$~$=NM6AV`J;)xXp<`6mhv_6lMthrT&!QRk!6(yixtsDD(B#qFMOlbWB7Gb#kDl zRX#IUs45W3eDinnE|yYhANA;gJ$A``L2uCpWKA`((nM*~+9-Zvm^+q7H|^n)N=SJG zYKZtl8;=SSv1jtLUHv80Tx8~it_y8f>KIXuS0 z)6XNxUwPJ^frBfLOHY%@O_H|OB?_kzyE0hF8nSdr6vA^iTaF%Yhms*G{F8bD2h*SB z#T&}&9BNtM!O+Dg#Ae^lTXWvXj?_R_tqc;_kz<7!-x-9Csg8R*Jiie0%G@gez zO!LM=GmvWGr?(-R>#&kiWLN(VL+DD>aOW&)Y2BCO0x8m2Acg z$<5j$qDE!S2Weh7um1qS^!;^#I11SHl8lim=69+ncyXRi+1+MBl(JIt_wkf+Q3SOD zzJ~xP)6}z(%G-*xZ6uTID`{Qc8?nnPD6(| z#7(*KZ+T)hsnn@Q6HG@RL{Q|n%}7h7C=AB!>F-#U#O=(UG^|mTm5Q@FF=AMj_2Pk8 zV5<`}n5%n6YEdKM9q}#9kN(f~GPIbCnUd zf1Y%(w7-RX9Ov-j&_iV;(qXbWvjwEAiZUBjanrzUUyW)mPHJLUvCrC4k}4$a87L=K zl*;hLM+)4XFSBcn71G5cvZARh)hwe(rWfTRV5FT!Np<9trdB<|2ZK^XfK4F?y#D|% z5rVmvW-$P<$&{giS!?2gOFWXvGnbLsn;V9)baxNk!m-xJuV%a@bnM*#fOX!n3j|c@ z)JbO3n5!>Q$KoQd!;;S|aDWGmDrgOH`4eh*&peNKOZzp68fjo#W2h)ugS-;5xhQg2 zRmce?u7PaHW;~QpK|CoH$48CX9B|%|MP_D;>GunzYhGG-V|8+Aob6RTo0?-CZrx z0d2{5Gd0G8CaoTc_2*prgQahw@-Q2QjM&QYO>Gi+M2`%emqmTqTA;!PozW)gV*D>8 z?VPj`(}IlZBh}n`*iJfm)QtsHFJ?dvLpwa`V~F|C)OqubsFmoJ=4>Y8%QDS+ zWLCL_y+XIdPGVgd?8gJa)XNVZb!O}{QmI-h5X4a#*-=N6PIEKFpfirIsL}Xug^i;1Jmh6pI7GO&e&kpYVbu%~eqmD^kBaI6^d>w3L33oDh)?;y7 z$ny+kps5s6Pa;PemTYzwonR)r#EvX9fuGw_%#pE_#_g#tkq~wtHB4>0W2({Z#af(j zqM{&GMB_np2jquNoQ+Kfki)@_Skt8@f1YR~k~d($>EY^TDb^n`h+FDrj3Bd6RkI+a zly1x1t1UY+SCx2uP`fn?mF+|L;N6z8W;(dK99zfWAcAj;xhc7KGrA~a3&f|rYblw% zm40l?%0mp($g#r{$oQnU9yXd>B-q~ke;RMp`VSi0d%KR^JdB#n;cDh<1bz}*^etno z%Ua5G$@Yh!VfE0--w+Dxc5xJ@Y1B&H$6Qw1&Yy?77j6a2;I88pY>B(c7U0QLhA88l z81LIN&hm8DzydkblBx>?GhCF#3U?lkAtG@kgRWTN;Wlx1|fVC|Zimcj=Q0o2!_t9zGIX z$FyaVQ)?K3wT;=iTT=f3nvB(khA$b1g^UrZYFypR?(ktC5^CPe&smyT<+)YmZIzw} z#85V_(X~Q$g3K)(n&((O;bR*JuRKP0bJ@u=R#H}hBVV`AthqVuM_LOGOc?la?M9iX zr?E6qOB=^3E2iSaoOHc$A^1-Ftes27w)WRswZ=lx?j*Qq(Lc#^9=}jQ1=ci+yE6oh zw>|ZSNUF#}VJKR-f?4ENqa~QIw=U323vPt{ku&yPnmW~NT$DpzBP5c;Boe$*FH5|x z!2>xW3ZanAVf#^9$g6$bIKCbqxf^M^JS% zN6At_S!80ua)3)*%!MXAr1c5`19Dp-N-T^+yqz{FOAS|-8(M&-Fmg@tH{dp54mW%}iEN=^`P2C>_-_9^UO2+ z5=)KA!tGNfj`$}H6ze=3>z!1p=B(a&R+?dub8S` zSEfo>>Ui~)D#RmA{{U$o%___9{P1<$JbUVVK(9em;n`of_vu zA1c?5)chnCu16?|V62dj<-v(nuGa6!V1~|W!=gc57Q85pBPysYX>Hd|m$W!(9l;2i zk)21D9L%TLuaA(Ce^u=3p1Y0Y8cu$ipDq) zB4)Rw5C(@G#IjklJ*l2)r$e_}w^RJ!!H@AnV5G zvN)x)9d}L{*_g3DT3%HZVvK2}1e4GdBAFN{;Atd=fh9U7o>^s?i%7+f@~hRF%W)bK zA+?UgIeO)7+P8Ae*-W#_U8&=hwmk$ zga}qkE!~zlKpIu!Kz?M(4yS{tYC5eQg6S(pRpgENbR1ZLkbItFyG9F8x=w_oklMo9 z>6HYvvRL$nC~iRLYkFfh!_=o0dFhExXL4W560ZHY3I39nQuPqxy@o)W&d970t09*D z>A!Zn*WxJSJQJv;Xo)HT8cBK))FP4zAIztUM2M>f zX)Qv6NG(GQgW@WV6ZyPrjdY*WT@C)zu047FixrH8=Z0LAzYkXSX(5(KaWM+84!KZM*;aG9}It@P8!niy^B5KabjPh#UBUkX5 z3La;Ggeph$5m%aiuGCE0jx0_w0kjs|*}G=jBhNEArH-?Ch=n;6aZ%C$@~q@Y@^FL0 zg$k?O@ZAj}Dsu8t!S@+uxAU}61p`W&1M|W)EI{g1c!?-ATEkAidly5xhHjQq%&@D5 z3PILa4J~OJdZWWd9gv-bB6e0*D!_yG>e4eQmEBe>eigE_eZm-O(8W>4pcUcamMI(l z0f|SsCq+OW0M|)BMbJ_88faVlSZk<`RhL;^uU6P;Y4Hr!>CaMEj#$|r`L(H;M6V$# zv*xQ%L0=e%$^$U~4o*J@AtCIqNOv*xs&Jq=F_vvVQTBe3UY(1?EJvm)7`pV=h?B}j z7fQMVTz+}Rit0##2ga>caq~v(jRfSzpEpx7M=0v)9M1q@aDL1x8bl5FakLIr(#EI~yf8-+BrwJl1W1P`-KA#s@B!3;&$OL7L&v-Ida*_v zIOH-kN6F=L7>II^eHMEarGi-_b?JZQR;@Lu1aTo^Y0#}+ZtURMl4p~oG2~XMJ*Vl7 zN!1*DR1`ZWGWVKJNE(@(5JGdNnr0z?6Vk%TArf3Vh6PX*002%j7eIc%BT_~VjAk}0 z2Rb(53?gu2(|Zj`7(PMPYYX3zr>Y2+P-QG6@hJon57~ft{{WmV6{A8F{`mNf3!Qfw zMl5}_!<8eFG$T~-Nn!&16lfnt9E~IY0AqO^5O~(?$BrVti>r#A(&-pP{zXi5)&Xkpdg3lo&l1@7a((x^VRUv310U|&(B!{@HKq2iZW6>8v*NWajx?xV3=;Gq7 z0gTx#$$~KNi8FO zryYZNc#_Y`iv$oy(Hd|Sk69#+B#{c9qBRA1ZnxYiBOi!@sN^p$k@29q1NKX&I-a;- zd}jUeV?H=}VR&RQObFDmls~A}I)25dCDd-NitFr8BmQBm z3F>Vs0rb&bbZetQb;hKLTyRE=Y@aFeKDx+GE7O`yOx;dT*i~mdDCa>EA8 z9AIm@>;XD+Am_%QhTWIwi1^0gp{xTD)gnd4m2?N}(lk^baj9Vk+f&bGvvmR1k+_uu zDB#Hhan7=Ml(QQGHExXbpQcgr%?E6CrzI&}maNGnZNp-+uw-E#K$nuIQP>{MrFCy( z_6vYKok?S#3!n)+on|u;P=|#e$!^S+C3kiuy%(iNkHsFld2e&mx(6uki}jV0aOiG zaL0~#3otN#F}GcK!ct8wrfhSF~1$CNr7x<9Hmq}~4j z>_*j%)ouCc0BX)g&7a3B5Llf7&boNfCsnFXX~LrFjtVG1c|K>JH9!LKq;yf`$1}WN z?&QI}bO-HHIU1HAMvNp9HQVSqkSNsj;hhL8<12@niYL8dlD3j&awDN zVBy>5k~lybRRch158B5>1LIR61IC2B_-}VobQFzPg=JE#HI>6l1dS{S%F72JGLfPP z_Zl9fKxnt=s?{d6{V{-bM-(f3@~AAb05}6uu_}1eOD9qDs+g(mvb@KoDp86ARYU+P z0rb+YfY%?kIMc5qQ$zY`ThB}AqOy(#x)hB~T^&f{SzJW0yG;U(OT@tww5Y@oeE`wn zb>yA~sA8UCuP7la*MhnQRRdDE<3@gxKvSiA79Y0?a%f@ENO^f@iUmM88dT6-ar<$T zokf`FjQSo!$TJjCzj$U(1jZA zsB%fvwii`sO>Kc?DIHo7LZB+?BjZ7I28Zq9x|SeDm^5d{uwee)2n3!8<5Iu~AdeZG z0!$3C_<13cCuDKK$6;lhhLjMn(YDj_8#!KdK3V32%hw9a~C9GWtN+om`z_9Gyo6i*3mT60SKS1Le|027>4far>Z+JbdZvbEAxno2is@9aTZ$ zMuKP!aiBkTajrGT{{U;h|HJ@55C8%J0t5pE1PBEK1Oov8009C30}&xHK~WGAVG|%C zGI0b#QgSdrP+($#k+CC!p~2BJL&8&YqOuf{pm6`%00;pA01ZC?{{ZlQOt;?AH=CXs zuio7U4!l1E8Xvuc%}*V~(8V|(yu(iT)bKsbgMH#0G+yW;TM^t6_yLJB*W_oj{pAAX zfY)I*XC`%7x_C_4#LY;=5!~uy=TVz6J^GF2Fo;hLN8TqFJUvCIW1(4E#deG;ZJ*H;aL(k}T+g4{)uX17Z#Y5!?<{S4SGT6neY@<#aebgK_;6V;|8$dJR*9db~7Z99B!366%H1&;$1J3aTTiaJZxuVwzs4WdV4a&TRf!v_2~4}tgTO#QAStX!=eCHWhdn%a2#r$e!`v$0Ks6z znlz$?k@yWq1CbwdzB#$>v?6Jt;PS*TQwhG))OQHUtu^JakApi89Yu_PHZfF~&SA;Q z5DyViN%RI41Q_m3H>L{*>Imc_$rCJ zd1Ap1;(E;%@})q7WuE<4#f&4%U}kSa`=@bgupHjx*<~ThgJv?nfk2oLzT!%VSN{Nx zkS)ko@j!S8bTNE|d;5LK(RgpeSiC)PnyJiBakWz@7QXzWheN^5sVHKSr59=?^Hz?9 zLk%w%8g4wUqCF*JJ3xO`9oHSJ`n(#LbE-%2ALSF@sK)Hxr10hbN|6njPGIopXH(rd zGoB;vFwB{&&b{S!0eCg=+k?L=!D}zZPThFZ!6h#t(V}@O^8gf4lh*H zAhS&iH!{WIs;CUmH<3LSXp=+}r@PdhB2xj#o)6S7eX6Kv1%Tk7vYn3rW=hcNKH+GK zG(pGE@l!Qf@d@b;Y-hT=%3}bFzVlS=Wkv`pRLPEmm|+o$vYf#X90-~`(L^Te?BBOM zMf4C#tz|Nrvr}=Jm_R&m3h{6iEpS(6o2B`TQIGj!HK`jGC%z5D9{&Ia7BAgDa5Z>y zCSS$NpXGT#p2nB}7zM5un9r0>tIEO*T9aby6slGPfXPt)>%*v@Ih(JD%U;e1g+n>j zpK}!1tqu&NTuQ-;YSh|jM+B`+*mPC|#uo%fB%^>x17?=}FRZ5Fl*gu4>*P!7Oe5TK zs*;sLp}39sd<(+gPpZM@Pqznl;FtgdfXc?xLf9T2(7gP;$}}#qDdO zGc!b9?ZnJVt$X|@uK>WY*l?vp-}$?Qa=LD?ua29I3>6i{F=CiST+DpmCun@m#_Z>I zV=3ANwcP`w{Oc)H01^%b9iLtxQsU-ACv(le|rpzp0 z$cd1v7+evz+RK?Z0X3{+97#8g<>ykQ`U5vO3D%_DJY$H#Dnc_;dFjH~C^!SwIk_>i z?HiIIvnk>-Ds3IY0_hhN2MS5@tkRmz5eW(*!C7<%Q_?B`SmsEAph4(@0hadLfYd-S zT^p**-88Edo`ewqRU(+OwY~0#>B+DHX+>bjD6rw{J!j$okLfpDX3Q@&L&dTq?N5Ow zl*S4;1A?7QD`Zv}D4(DZ&xs7us{a7WBUy(H)R1Sa>d~@QnWAQi!kH9@@^=BaB4m}c zY5F7dY4{tRj8S)Und-)A?N#m+{E4h$S-IBNX}39zlY$vrf}4UcA}GPZm1-BT)9Mbl zKz+sTdiOpd{pN&ZXa4g;YhHWEXS|xP+FHI&(|+K>1su)59}*p-3)|K>WNzii=hdyE zhzE_^Gu4bk&sx7tmLeND@_DK@*fKq1M?EK0^*{U;qh0OFz#2!fp}fl$QjR-pTSL zR^~MHVkNCh+35?p^b_3nT2E#_J5T$q3wiZUkKA|Anz>d{=P`z<_{+w3JIve!Y$ zOQN0O7aE3L)bQG9a_=n;1-NxQJq+o@#qhV~4Kr_1h?n3pB4o9`%p&Veabq;1h7(~0 zK&RRH4=@B=HTZN%vjUNgyGBlBjebgtic|`1bUKNu8MR6HTp88G{{XDwzVeW z4nPZ;Q9083uLP)2(O9C%O-3i8iT?nbaVFLiH{=Ag%+&(zDgtS|y~g0~Ao5gL!`7Wu zosml3!BsMt1CRYoNA6G{NZ9u!;v5P8ZqnIcu>D#RFQzjL=={UX)9Wm&cOE3u?$E&T8xN_6U* zycw!QYz?f+e>mi`JL-Qadv%2mBO$OXG=0R~&ChcpyHk`H3Y70=zH=_gaZ&R}2eCqh zoBsf&iw-F1iZGf5z3}v#n0ZgLyZHgxrd9&<)6~b+ptCcJHPdu~1)8R8Wim?Ph`)6l zGWv+?^a5+cla+m24(ZM@yV5XV%abYl8{k}*<}rM#1(AEVl$A|}q|UJo#>8x8N@~P< z!CBY1=%E}bYeGNOa8*_heWCy=q^VJ=F#Js^Q7ZhIDJE@7!DD3m9h-vwglt5~k=j_^ z{HFsxBt~=%s8S+OV-Tpd?TZ+3q;GYou}6Za{hBxo11VdGs9oL8KtOP9$99v1?UjJU z$2`>-61Azh7Q74^l~wYaVhDu^t3fdBc{XD^GL?Ofx>(Y6)|u4Kc0SJ4uy+v{t0~MF zX)#k#xp_n!DXT3@8>)|>bL0F6c*5atv=r$V(VtGcwd{2OzDYDO;&ZnJW z$=4}+O+m$2Y(&)4v!v@ugxP5o{;eBhdWIa41#o6EeMjNWaEmi&cu;ZQTJgBM- z8jTqOwK0fptYeHQDKM@ARiw%b4qyqCu85_}D%%V`lw?K(O{$J*y(b^D+H7f-pCO+m zrtEHJgF(Pr=RxXWTaYke21+uT)Hy@vsMxb`0yaNj+UrGp=4nNL<;B|Nfyb0UErf3> z4SfKI<7+XN=HzcHMg?6P5NEU{gE+ZVZGBM1VlTb8(y%yOlG9fnd7VnGaXne4wc0jy z1Ca9mI_^nP>d_YUMXX00oe!19##@%X2gI%a0Ch0GlVyVzZ|=r(e;eCMcoYp1J~b;; z@jJlQrzrsN zSMVc|*xPd%!Y*k=B3XbK(W21@$dr}~twgN2QFS&pgqto(y%cc>QMDmv#|9Hq@4wZC zAx;JV0K@~%2D_|deOZ{zD5w0)&}0DELU0h|HMZ0|E%ZgVNKoUVG;a8fCce+_cw&T(>G& z$m-KIrhnC{HROdrQ;Q_UAOi~*LtqmmuyV-Thr&s zXU4+?`9xdx=|yl06xgc^5yctVe;Tp8q@0F~-ldg9_}Oq@l6(u2{Khqfh5!M>ZVQQx ze;+l9k+9%$VZO#8#YMQa!CmMWWu@yMFA(f9BG;1Xa;Y3*f1vbZEJ$;0Pd$2qRG! zDzxWXO+WK)Byk{&uX&>#Hp&1lLgGYWbv7dp&TV;YLfo7tYfRib{Gtu;Be;voU2qOJ zBY&#?fDO#iLiu{4x9($9FWHv3nU`!7dYQ}Od)yzFX?$SQ`@@orI+>W+e!d0CGg{4! zIM^0Hu-I{;KUSFzlQVpms~CO2xJzG@`DzH@tD|BF+FQX;=#7dK+@j!i5G|?EL5TxJ zSokCAonBI;T8%|vcG)73Ljz(6$cTgeRYF6?3$pVzt=w>yXTfZ<l0p(G$&2$Pk zV?RVleb6pI+<_T6sMcIP)uqS4JL#J_+pf<hVP08*xPGahy)TDP_ zn~2p^8p8l-woWA`2=2Qai+6R}THu3Y4uo=vYiJV5B%R4TIt$LK zM-?LDaXs|a4CS|Ix&Cu*Rfje?$~4QB8oQl!dZ0COJj z1GQUNp+C6lA{)}FZ{kzvr)XD|?}{SqSk81%OJMvp92+n)Fzd}?yaYLuHsYvAb~fgW z4xFqAI`=mEWgP77nN84ZE=O%qeB-E&b2vpm>8=jakO5aP0D$5aD9B(3S@EAS^oJK? ziDT6Le`P)egUW*hUq#_pomP??GBC-S`JtO>28sk9f;Lqt#`3m}1o)KA@up|}=*|YU zOHY5%ZyJ$Z=*UaWx7$Nm}QHgnw=Nc6NN_>1LOt~d+K2tVgxxN=jvd@ zQ};)%=j-dRxg_Wz_ctGm_bOPyi*dmb01rc<9Ymo~%b#`C zO^S_65usK zi|v9KiOOA%ilEBiv* zk-8)z&s~7+AJmAJy1BM36kysvMu==d?qSSAmgNN6_)QRCl9JnH17RyI(HQcx4@QlW zvw%#cP`lL_t@aS7F*vtqH(O725B#9W3;=*wFvJnD8i>fjR+cLAtq|s-c-Gk&YUdj%YwA_a6(~YkJJu8VoYx(HN}q(nhnf0H|4lOHlFq~ zE5a>djm*-B%hkTZ8Ei(-WE;TH}ujpix^j5(+P z0|rVXi*MN})W;W6%oLHsMW#ql*-xO05BkBirQYc!+$PTH&} z#;Hu*R#dvGdET=^szN>t!*vjO)eVUeO4U>ZyDE%BPSjKnf2gJ}RKtV&L!c^tNJ%8a zlQ6}-1SS)QUrR%UvH(GyQalOJZew}e`J3!QGTsgS@wBGbC^M(kW-Ro@lvdo+{9CL9 zf(V+84-T%;{mKXuW*0R>!3fPR7#&5S0M6e|=Q}!V@}4G!k0=XJ_K=0yKLY{hSPhDi zVh+X=b3~^)N@t#zvQoiN?(;edJon(nzyWehR!&M5zcAOFk1V~yjE8Y?b*2sN>azUQ zu5MHFi{y0or@+6vO-aa0*jrQ597QqaKCy77;9W;XicMFbsGvDM@FF1cFgIhcj-iZSX3jAmFAemTJi)P8_C~C&wyYzY8o4|-Q&~l-R8Vj|BRK(xy0IC94hEPUtNB_E z;~M}X3$V59I@^lp50o6w(k^bs!ZHBf)K4@yl4r)+{IHM-2gLrSWih*NcrbdW1yAy2 zyzTwAA7hL}7a*GfZLolTurcI60XiO$1=^85VbUQ8mArv~_iA;DY)2M0RZ((G(t!T} zoC3(Yn`okbmFmi47C*Zgl_z`_qys%4qeNn?r!YqnwxVAZ4*)g?2$-!LkOTBoX@#gO zJ&Og@6AB(iVRZ&m8-lxYjSA?%?>->MgVQfb*)A$uK@1z4{SzB1 zfpSdevU@IU^GXUp5a0lUJgBUVVfcqq5Wsi*D1W|#_ zSRD+fx0yf6%V$r^R7GA|UeE?3qwXRf)NVLZd&XOqtlkQ6=UT2y(F7muEC%aLV2c>w zstG0vL$oJ(*i!CfmD~1sfc8~HL#80?N6`UbfyfaoyyTVxrOY5YRc4vHscu)Qki2v*!3m~9MNmSiIaLy-_qX}Ljv z7XzRWC5qelXii|AWzCe5Lf=3>k1|dcT}&v+R;$CS5^Odb39UmjW^Xfkm^XuX4mu*s zSRK7S%>yG7{VI!rj7fD|zI6WL5p``ID}|?5T1<3p)@H7lt1jb$Ww8e^V&PVns}3(i z`=l9{fqZpX-H02pfaC3TFrp)yoLY3N0KJaejw|HG%#jn3RDB&Hwn|_xLVC5JKxsx& z8CYBpVQ&XQXHj^}!D%V6HiP|^#eX9Ku?7uJcj+{D@i>*;g>|Udl0Edd@c- z7n)KT51Lxm6CkqST5W4P{{VpogY4}HiZjTWYoh^*9mMk?AG-elh@b?kYhR;A!Cu!i z82jlMb5p9GS4|jjLvUtJ6$`9BT1iQS7Ax#D&x85Su|nQLM=luO*(_13Opx zg&+ksLuZ9-)X(~n!r81;C85oj*+)`lO~`O3b%f&z+0%$;yE}M1W-DA_h2v%h0`Y+7 zQryf=qWc)x45lE59tvl1ykmc(rnhn}WgTTj@lSP`ML#hrqd{Ki;#*lwaCax*3c`k$ot2m6k8Rf$it0WfA?#$mt# zJ_9xbSbwA#+bO@k{{U+Amm;vpk3k#t278q?UZOr|a$&m4r}%XNzw)-sJBJYDV&5p4 zyRpT(v7hyGK^)zf{Yv12Y=}1oRX|$D0ND}3ojZ^(%q4YNa$_zzx?W(H_?5~gax=}=E-X6)CS#+$2-G|(ctwWgGl>aB?xiSb^`9c`XRvH7trfiPV;(Y$pA?9q+)B$=OQ20&mYfM+)_ z=TV33A@dzu?c6YflQoE0&V_>5aX3dMw{(^osFT-`H(`utHZThSJD#208X)jI zLuOr%(du+wtaK3=;6deK_#%rBPUcYgP-`@#uw)0^W05%%!t*k*dS~7yFy>>_@X&DF zP1xVMa)JUDq97o@9hp_YwgwsxKlMJAvcG92PIrdgDQXK54mGJXT`xr4F_|W_dXu) zN%0Ji9$DHy@7~^LbLPAzZNO>6S2+lCWA`}uLDPuxw7zpg!5vH@{{Tgy;1t41{d>Q$ z;i)-I&m91oB-nk>&~XC>8Hsbs^FzXr0CiuaIKOvuVqxGo>c=4tZr^nEU1we-;M^7g z;$NaU2*%|1v&W8rPk=%9THFjd9s+Ntd~iMMXgJ>&wgPT`?xOQQ&~2yC?Ka=;`Ig6* z0Dgwu?er6K_lGuEev?VIzj#36Mj|D_Ab6PmF8#8aaMb8O{#TaJgh{ZHQO&*(n* ze^dVe;RFA~04@;#0s;a61O)>G0s{a5000010ssR95fULWP!JO!FhD^lMd!B!h5Be30cvD zH9rw;uH_&Zej|c(IYq^Af2o+5JDOPcPp}1u0xrh zzi@Owm1V2)BSu|_EIV2I2i(WR;BB7ilo(oL1H~)iEV_yPN2^`8CnL(_y<=rq4?87U ztOyUxMyW1PNR5I%hEs~Q^F4io=r>jliwHD%j?2V9Gjle!X?E^cU=ACn&{^*`K2&a`#Wm1iU9HzNTD znEAPOvJMd}ejP-xjWUxde=@L4H6i;%2&>S0d-XeTsWI;2a_#>Bf?0j9)aZUD%mxFw zhmt|yWAcdutT`0}t|+#n^fM}hVA$&{rOD>9tb1ESS`wu4&@Z{a9r`Z>)cX8F35kl& z)_%lC#AWFUkaT5ahY>lV{G8huX+f5^28N=!;S4z$LzhJ+aEYPrA3*dGxqU{PH?6Fx z(ZJD~g(g*Lt^H*c7jYD50pMWxWrB^98!oXEBDdrW$fL~wiEb^YK(6&G!?chH(3PM? z3O*LSE`i2~kAy+pZK?iRa@OH&w&krw#IerZrFA7^L&JUp;pVyG3-p%R<&XfLVBuCD z+EB&oQhs*)3Gmm!cT^iD9Ms<-E6GPX=`WyKHy;ktWmrx~;^ZPIMF4gUO?)i2Ccr+D z`wG7bjcRd%sKb$zlE|d@J1ttrGY)9_EUzgX>!Fw9t+DX!-_XjioG>g#pc)$NI`_%c z1Vb)jZ_zRBaOY8+5{$fzubPi-m0}0nbIF8~IuFOQ~0r(sO0qt+*k>C%# zuGB>70rqx1-S#8k532mctB~f>%&eB@z7Y;aM*jfiF*5R3@7$yH0K_eWMk@vz2e1iH4#B=0TUB_V8X6G82e+P zPDUox)Q`+h>ODK{d+_~2lFA%?CK+Amz@i15GbIy*?ofuyfFGC!fE~by3?MKd%kbSC zwQ{`2uam49^=dwP>-dO#{FdYM37g#4btA`J-(ToY|HJ?$5dZ=L0RjdC0RaI300000000335d%O_5E39TF+md{ zB2j=c|Jncu0RsU6KLGy#16ZZIwkXN^9yxyxwCV1R@QSvP7+oYhW>_yJ*5hT7#@X>R zmQf*2q%gl@5*9zf6 zdrg(Y9XO#l(K=Q?JReFai)g+Of?|Se{zr{J0&Xl>nJKrz`1&uamHz+_8!d3hB~(UA ziM3?BzQuJ$QKKa{^|3ZljtTvdgMK2154M^ergO-0Y`)EG)_FM@O%Rn3nn;|{CvT;9 z6k9oBys<(L(D6i;Hno;fjwB%DN)0+>l``3HLY1*c=_D*^6f{*CA?<3siVSgRgt5o5}c^9w3sX_8+<^QXQTlJY_v-))kGI`WAsd@oBGS|pl$amkaCtvXGg z7~s(va*@iBEUAs&ojMjp?EEsIJc)QilYI+EjUpJ+R@o?Wy7Wm?*sNLvn?5!;G)3}} z%8@L#H+^-fz6oexza%lm#@Q(Hw!ISb+^s@g^%l>JaH2AyWhIjI4@j4N5lV>Thbbtf zYta1m(zB3jOMELu8PW2pC6fDzoW(f}HKVeGv@1mhsGC)xz6oroMJgVGwvKM=-Y