From a2c51d0c33b30b11a8628046d1e587e08589f319 Mon Sep 17 00:00:00 2001 From: Lutz Date: Sat, 17 Feb 2024 01:50:38 -0800 Subject: [PATCH] V2.10 Updates - Added support for OAM - Added support for V1.12.x FW with new stepper library --- public/images/oam.png | Bin 0 -> 76143 bytes public/images/oat.png | Bin 0 -> 84174 bytes src/modules/Home.jsx | 4 +- src/modules/WizardStep.jsx | 920 +++++++++++++++++++++++++++---------- 4 files changed, 684 insertions(+), 240 deletions(-) create mode 100644 public/images/oam.png create mode 100644 public/images/oat.png diff --git a/public/images/oam.png b/public/images/oam.png new file mode 100644 index 0000000000000000000000000000000000000000..bcbda154e1a428428e0cd63eb59749140b4eb16c GIT binary patch literal 76143 zcmV)ZK&!urP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D|D{PpK~#8N?EQC~ zT}gJ|37+)cBjJ4&P=zvG-gH&9sqU_}WOvgvn;c2QW=o_-ZdWt2yPsYCu^;Ye^pW-> z=`$i{ha-t{6phFho3oATbEPynh51rH?Bd!M=Id*Yq<;@!N@WxfQ^)%pP^@4aD9 z#Etm96LI6lt@-#TetK0R)YQ~u&hk-PTbnscM}cU0AniiwSAuG!QCnM=Ijat;p;L@% z)m1fdz3KClg4NYb7p401dTaGS9*E!LY@X{tIdNB3mNRGhu$U?FUB5gQT5p3aH=1X< zE>yL%)U02RBB*AXo1x!EQR@C(k2?Q2!0WY;WU-0WTdg0+JbjCzKwc%{=Mh%1%vM%b zGH2HaWmiOLU@fk$u2fLD<-^nDxY6{f^H?@R-}S)DmJ}L%p4(>juy+Bxo~|ccEu9LD z*h-OR@o`?6D7SpoV)6BWe7%y~9IYm4CDYlAvXVzkT%2D|SW}mJS*`kgx8ZuLm+R#R zv6K#F6IQ7?ta5-d)u@>D#P_^GJb$$rmKN!4rgdTItN1+2mq4mxfWelL>uB)*Q_ zuLo@Ohi^UQDKv)#iv7@6#lot@kZ@%-deb%%ACdw!HMJSJHdfz8K>586Hd>dPiRAsR zRM%>kO=~SRP2Bib2`o;OR>5>jgt^*?b*hFw+~YXSji69p#2v{etabL=O7$$HR3+F* z8dR)T0765pMrFs)lrv|W2X7=^7u7C9HQ+kNaJSf9uQF#jxPKhpB@Jb{XHMg^(&8ok zT^xDmDY{>8NGnHtel_6+LmGL@9stgG$#YPlPV!dev zf^zXRs;3vIW;u(&^Wm73cQdl(i;DS^Q0{VZz12lE^vM#|)v$P6VPs_`D8AkaKQDOo z^k#Tieg59)4O%a*RlYG678d07qetbflP6_hU_hp(ret}!@MP#>P5nYt^uwozm6SC2ehO z(%jN4^>y`ErT*V7*a+cl6zj>ik|~$8a9-Z35f-Sd|5b;uK(#x5wO`wDpl5tDs;zf9 zusrquYR19^xUEMQi0|mpS7hMwB|Go!?UVWWdFk%ymgc5bIra9bOi0bo{%E6ynO+4(U)bYi(;af~(yGtM|tpX%^GfK)HmIhH?q3P#D~iYe-n@ z?RZEG;g{ z z_l5?2Fk#CZcW(w%gUs2rf!~u@XfWW7H;&2l^puj-lDe-LQDIpz=Tv9pqF6QR3Fl?N z(@q1;w6-RYS6yAB?A^Ox#>dBGW_nUyKl+-CjgD%lYg=FCBCTFyc{d_gwvCrBOIX#Y ztRii$AbhT<8aK@2Z#v45 zomh+B-d>rTo0aLAX|wcZ^!VDVFRA4r;kS;xl4QHb(nwOX4w$@JBrNneodxz|A>y-Ms&_0$_#q;wE^3{=Hc}1@njLgr^scWbYhye1!`g-p}k4R%XU7x_VJFMtaomU{7zRE&`Z+dwXJBzH{c3e0uk88CGlTf?8ZPHKgPL zy#ePU7Spq>FH_fBz?VoBx>n;J$N{fyavhZA2)b8(@@N> zS_t*$QW?rqt;}T&ppu)p-rG(dF4Y1_#i>;*<(!_?)Ajnps&vmz%g;_u$!Gfeq^-U# zOEJw#LWg>{goftTpi;pT==OGa88vwsZ5?spUOVr^|Q zHaaGA^RxEKkB5(~8^0ecwK#F&4VB|rx7fd!yxVa#%1g5APQMJ+G7F27a@esAa@TdC#%43rQ?-tVQn^yku$8kfqqsLoAs-5J-~m}T-+@U zh1_#kmG_K|$<&L_$;%hc>NNzhDwn3GWMaYJ1uTqOBOpCtc}RVOv^2HI-`cTPwy4Eb zQ=@Kq!VgG@7X!B~{ab8a3ae>uenwq`-jEXFNGlJ+#+P4yL52ngGcNBw#P>Q2y^P&b z!(3+w`W4sF%TZOrss_=((i^c1iow&a<_#pRxbs{K6e>?#R*w7w#p-ue38YCampv-j zRd@IAkR|Q>e>FNHzd1Z2Zh&7Fd4sO_pm>iSCUzUbA&u??%M!Ij$d&=C+v#KOzj* zE9(p8>KMwZ?Zq!jA=x<6P>uSz8Wrv3tzJH1trqb0T355Nq`~Xa8?@c<%uvDo(onNn zBSW*Z@;fJv$(`G_OM7FZ40d(PH>M_~RU6FVL{s6F<>7?|`LipRNImHwn z1|6RK`TYf>qoeZr(bsJkiA?d|74Uml=ssRegddR2)gzR3Md}V6zS-umN+E6pWkG`z zgZiu_syDpN1nKA9X!6XQZUp&lhYAiy^7GCWinh7s173&8V~jMn#l;1A@rCE)-1LmR zt|Y~x&@DD?$AGD;MRt`9-Wn_3**ad?1R<0*?7?YRZL;PK0 zH$WWbzL?WuK8*Jgt8=%n9+G9co^UnDDn?mD!u3=XF{o#vX6m~vaC2NX3!9gAGF>OF zP=}!&uTG=$GR8+2M|=)we8=B-!(MmcY1|pLO8&#;i}IgOo{(MI(dp{8!k=|Y#MS?E zU7d1aaYY_dBD$+y{grSouP#YfQ?oX%S{WZ2QW9L0B^_ceD>E@Xyi={GW=*eN$qoqr<>?nNX{0ZgN6)>7egWbBhek z&B?i`DH)!gl38tw1A4xs4Z20MuzZxH)YLL->!=PpLwgNf5-nQVI&A0Bsi_HBSe!Qt z%Mm{jj2pVwYwQ*}RJiu?`IN@)-FtE`XkRBlSJ%^#EYtOXWF4;;#I({T%3KO|uRrn0 zPnVT*IdfQPs8FXY{D!SJ-%5~dEY*Tlu%#W!vRV0T2&$55Y5Q9}^UPCfJuTa?%Nry_ z(bCi;EtElri;GHRjq24>TO$oxo+h=B8uYwYt*3fY()8+Uu*O6>^xpNfwaHeEzpbT3 z8kN-Q8yjRnEAtNP`&YnIQ!XjHzH+%Ia0P;kiSU|3R1Kiz@!2O$> zo8`9K?vOou_HMu?s6NtkH8)PLCq)%O*Ps;V=o{-_ET zFB+4lo72fjZ%vxGWlpON?g#l{wfO4_*BcnJz4+n_GCwzCb&l{u0a2JWqWUkW6*af8 zsFu^JOlw&t)o(&&QVDKB%Q&a!xL?tV9905pQ%h+{&lh!Qhn2+&hGu)hSfk-YPSuCk zd8i=rYwzxo;gM0xGk#AHKOYLZZouzjEWrJNyRnPJ&Ye5u#zQx$+qJ(3v5pROO>@7V zkgQ|g6I_qZp3Ztu_NzH4w%&}^6U{4vqn~f2poL&*TJqH=M@LTo>x-~>ayBwLBB$Pd zQ^rPzt^5dNrFN5&Rk%ifEUo3}UhsES{Z_Qf>gwxdQLiU7)~w2+dd?_$wJK3Cq{L#I z=Vf9&Z_>1{D2ZKZZ4Z<8>Q>X-sAM@WOF9gkotw2aR1POAx3Ylii6r4++%o6b-Q6wk zx#MnWY-}>OYmGv>U(X2j&%N+=oNEh}!tS{yRB3#Imo+5xUt4bk>%m6v&(*rgS0|6~ z=v{BQ4#B8b-e_OW)bHly59y4LkIT@ND{9SLvCnSh8ja?yL$!E4l&oT1!?95r z(&KcrW-6Yy^87$@4hlcu`caSGUf2izJ$Kw=FHc_$c%7ud^#^giIXqs{{aVA@CVEv{ zw@TA1dkzb%m#_-lzlz`uu<9U9tAS7ro03NYPFMjD0G*8M>gP>o9v>T%%aspPb}%01OzPMp?ck3;By1?xqLNJDUDlQS|pF)kM-$83p%Qj@yp2r4EkC!-j#KkzUO4UKY0hk-ZTc&M=c z6@q+7%a4VS^pE3}Lb>5K6Xc)Mfn&JG)x>(rSo85u{OHxl&RBaiaA`o!Upy;QlUPzYOUde0FPB%?0FQ@a}~LH*!>E^p{@%68$T(}zWuOtA9-Q!F6180I}atRm_dl0vv9tP?>aEsf!`MAR3G-lreA%og+<2eQ zpk8%M*6L3rTgE_)GZRxXJwGRx2M1+qhmxq4Wl~9u$$f`+prmz$d))c)BMiVoy!prx z>Fevyi&GU)O#V^kYNvhG;PtlF+T%JDi$6%d|FuS03r8Irx7{<-o zLe5ZT7yD#aCJaMXo+@IMK~&^pY3msaJS}ZoeWm*AfAx~??k@9#2mzK8mK3tARu=PA zgQLUJ+twkSt!*+kGbJ-i3l`RN%vg9yvWnq4=k%;K{rCiafB&|E@hXAUpA{?obGK@w zeJwz799A~Fi!P4jb#)Q)tsG?!3B5tA8yhUUH_EHgNY-1Km4G~aI7qod=PaIY*l9D& z=|CJOPo9vcp8SzqIDf{70e38^IwhB#JN9UdTzU`+){@7Ce8`hEN=(EYJoPEg*=1_#DZnqqAGKZQW*sG&{>0uFT5x%usP^YDRW!->qr4*frq(HK=|N z^pwWoZnE5AYI;hql{EF5Je;fuU+A6_4#Z@|Q$h6RW2?pBabw`-?tY#Omkd)1#q_^c zaGj71_v>|_oO&yStD>#nFZ5imsuYq&yph6QufS3X$I@GLFiC##;zfDti6`XrJ8v0z z5DyY^OJ-IHXmDsKOHw|G?!!XrkRz7W4L2Rp^Dxm4JUth%w9MzUCT;G^!_msa z!lrtJWet@ti|{Py{>`)GXc)Y*aB zwR-z9m&Fk`qHBpl4en}UGqVrF!m#Eg?!4TmnW<@c@rCE@JACXBg&#zPKn{QgXV%Nq zm|0AO>FMdorsEBgZBCAmqId+7@k%o>0K*uUyvsD}az3Gj zPR=ll2Fm2S6BFRv!*fpB2p@Q`A!pWF({pua0v?iN7zxRty8l|EYi(Vvbar*i(!!Dr zYn|jM;j&)aQ$f9mJ9ir4xIg0M0FWoc*qWL;x%JlDrA3E@X-K9Af{xcep;Ql)HA&pu z`>Rt28?EcIhlFW2yIdqytVa8|T8-@L++hO(LIuKyTPz4-ida{R;_N)qA8AJz}6 z)Um7}5`XH3drUm|-Fn;Y8ZSKUBV8ve&LJhpilf&jN4KT`@kpDza3`+2q0hV$6nX;O zJk7Y~W_8F{t7P2X(P=t5ASy)p&hmBLX=`cijW9^;&yk@m`R?C;z=o~G;N^5AuiyO$ z^%j@=$Egm=A}k8zvMy{=eQb6`Tc^-0uGS5W^P%%zIDbx_edcKy85zRU{1He4>t5fSH3HcQLF8uT=m)yl)KwY6Q{LOJmR9Q{1mp@63W@b|b3K{sR+GBU8?+sqe(ZggpD~ zGjj3b`D{INgpk}Cf{ff+I(Xm)B_&p~=ira_@h3fw#DQ!`hmP*)I3NW40O7HMz=9Iy z?A(lz7x9z#o;CqNj0}%tT*A=MiOT^AlP)XIy)1zAl4O*G=ZT-Ei$0VSKk|c2IZ|&Y zGv6f4L*nu$1)+X(_ZfoXI#|G0m#hH#thqN8pd!MeVKEnx)~L#c>be1a^AI`lT2>6stPK;&qp%c=peOTaq^TFu(3pF-kGw%lMlp!% zb>aSm?dhg*mfs+*|L{=Wg{c&Rn1MXOX;r`dy{26}e1+cO%T|AdpuAdYH zvhsGDt7GcyYSah!1H^f8<~nTz6)})!xSmWiWym6VydSKK)SFt4 zd}87@kB*Mzb!Hj^9TuYCoDVEOI0zPohw*#Fxrc?UaCZXq^EfPk@OV|nF*ZJG%PCwB z(xdTTxpKuwlkjfwZSCJ~UB6sP7r6@c?ywLtQW#HWaz_T>JBjRjvvEc zj?@F`zkc+n4ppyco*|w8hO1i--kuDZd%00mOjsaKk#%5$(X&7w*Xe4aT3JF0ECjuL z>7rhxC(0aBoqaJm44Ig>fgB(TCn`GUks~@}Q#Xg-BjV7pAqj}aJ2~}6JOmIPi-q)K z0wElh7VEuy$mco`H`x~Yw{16_!W>vA6NEuHBO3izTf^46=4I~5H2l6Iu|N7l)})V) z5GD11zb|coEIl0lue|cIOeW^|-i>feiaOI;)jG+ax=9WXuO{qPn=bkHc|E9zu;RvZ zJs{kiYk`gD%M-j8UU*I|sNsxDC{MCX(>fI6DIY{ZC-otn-v`_{-?#sOl1P}ZayOr2 z;@ms9=Ycp`0n(2xA3D7g6hr{I@>-BLnV9HY7s9exAbyAq{fMH19}SkYy)(seW4L~C z7=$%el$~-pQ2_{*^dT+$saq#si1n41U$V7eKN$$^Csa+YZmG{}2J*K2H?BiPgtZaG zs=EHwtHY`#R30)NWxZgVV#sP*hgl9t0YY&LD26vSmJj$^CwJor867)z%+B4N4vgT( zk@OKj7|yd{)q;Zrwr$&HouAH59L~`P@^QUxyy38s7i2-&fFp5mXX8NjPPaUa;IytZ zEW3Ylo5FtWfq;nTq~ma%0Dc~B*RI{BXT6djdbvL!j_VCcL1xUULAX3UoSL4HW3Tf~ z!d%+#HiWk%yiV5s@V#455n)jY{tH|&5>cqvOncif(C2F1AZrjC$ZJe3kQZNkUgl=QmlU2J@clUZZ%SKc!#EgjtmbwA|3p3gP=lV&aW@r>Kl|`R%&Em zV8GlMPC)=kLV?tpnwv~V$N?{o`}XZKf+Nq#N#0@PDPfJQEN3h@&8nrjRnt`6_1twz zgO{H$o;UA0vUN>!bC_&*f8gohPCYyq(w4Ar{hr zNSw&nC%svZH|Q|3Z8dDp=hhLrlNa}{PAQ;XZ{^{p7Cmai)^iq#)7i032pivH&v$5W z$lM?_e$^oaz9mQ=P8v%~^EQlyz#LdR^9x}jUz;;FmYv5SzJvV82aBn-wM7PpF3Z_- z@7P?L>jdIBoHGO@4*5Y^eog(nb@C*czpLQ)3Gk4EcRF)BFI3#UtAhB)CcanIKt(08 zMwGeZuF$mxHw&qD#Z()kYFWMX;&a-e!_zcC9mX9F#Do;%^1v1QggYcaJcx)+Xz^(v z$~K2I?l1N9$UoY*TOR7{m4*6XS&^R$AA@Mt?6HA9(%CKlaNmBpfgxOt4lV0e<ow1^g19tw>+7j zf}9~l^h?HfkPbQ#9$g?T!gJltmwNch#k&B$biwa~!|O3fe%rbl@Y;19s*Q>W%Q}bZ z;EGUL8$~tCl)F*Yuc#Ptxy#9mVc<(IJf|Hgw|CTsKJu7#KC9CVJl)vMapL50J3<@{ z+Hq^tf@#nOdAPn#eyO`x{y%&7%l}1(W)EwpTwbh^FOLq|R>Lu2)i0~)kzDpQHOeQq zZk0wgf*xq=u!hjm+9r!iDslN(GQivxodOAqM8lk$6BqMJ4GqnC@AbtX9v^~O&RTk` z(aJBQ*CSy)e_zk#%OptOC)}OL(m+@zt)8AO(yemCjW^lHRJE2vpz9ccXo|P1w5Nc< zjXQa5$jVVppI9#{A}kPB(ndg$tXNe@4xL=C2IBisDo;AwOE0~UB`bdIG1r?L*@G%K z6eJxi2=B1To4%^q(8=r7lDbI=;+ML5<^R2Bul$2O`{a?{9_h}kahg}_MPKP3mN?MRa5-lw{B-1dE42VCJ3cReIFMtdoEG#$jW0(q97z!aeX%zx` zv#0yL_ueP(dCz-P-|d=q#m)U1fjX$HEr&YH&Fx()Snf$3s;JYt2&*cU66&{Vzjv-z z)$}Wh@~k-KTV8rm$;v*x9>|J#bin7Hd)9U^aDwt79-YuFEH6ic9u8}`&v)u@Pf6? zY-Ci4Vamt?OU~CaSsIBt-MMp@kp={X&X5+Q-x!w z8`nlrjk3__U9KjI<;Eh;mtJ~FW@m$C;2ob1$K)vMuj=XpSwReR`dELPtI~hX+F^gO zw@?1TZY-%@*`g%1phOgZSq50=@Uk@NahGZ|yk3}<_K0@&_jLDYz9Eh! zqv!W2@i0YBoIset%5y@nv@-V`a-C4ikupJ04AqvDgdk|FM@ujSwPSZrm+knll&J%B z1G&63n5K;|yxgn9Tb^9*+P%lDI0%b8Av#vGQ-|aUAg!1H0Sj$!IdZEFoqv3he}4;s zIz$52TITOI{J7Z2CE+*DJHWLB9f6Xq6d(&^}I9tK_A!g6>yLI)OkxTRh0 zY3~$feNIhJ%GU-4a-1$!#?f6 zKectcU699ejph|-OLjIk$^Ohs$>?;`;Uh{03r3uT#SLlFa10BlCMJzYSgHVt5U##n ziKUM9R+KTMt2U&%H`;#hnoP)7%kJg${G70M?%bp4hVK)yJYwgrJ+_@PLqqD1I`cJF zKKw)J@P@D=fVvkY^`>F=6Mb_x5&pk!$(hl zphLYsygVQ;D>02}IxkI)$;jfeJg)@yloHi{xO`b=H9j5M?-4`3I<@8wG&jm$(;?j7 z*?)tyq*xt+6#qwIcl*Kwgj-#0Wv*M;$UeByWg}bRaFz*V`|9 z_w3J0v5CgD1?V|FRoeXgrVn(Auh^vtZhFfk@` z+F%!DMbtjAz0k*I=cG-onJao1=W1(=( zn~93=tT&>oq1^S1Q1<-t4-O8>n{TrGAk+<(0G~{6X>GSv*Ir*7nR^)-8I_Z7p3K%M z0dw3FmHvLd)NEdB08#aC-C@I2&dC>j zSR9JwYv*Tq@bXG{!P<4oZ;0A#Z2n6vzC}LD8lC`VfALv4ufQ_GDq2>O zvOE-AgKQ($f4AOxn{;(`o3+Fd_cYS!?(UJkE&WDXSY*_(KYfI>Alma8>-OD%&~Aez z73$XSL9%Yv*45R3wVj0c-_1hBgmpDK|BoA(>v`=p_Ftd3UwEHSfrNN%<;s=InO~m( zhJyj&6I;Xw%vBv=V!X4*c6NPnVnWVqhYVCg=o-02iR=+2ta&A+KN!3$6RQjmbN2+Y z3hS*_<&D`XIX*F^t}C`my{)!R{WK-L>-#m0<5QFJ7ncX*2|jY6;rV}{sYP}-G-^)% ziy0$!<9)((@Z^`9L7t9jziFF5`!6IiYAao!M{(eozMe6G7q+5yN z3q4z;tFb{&&CSX)N+k9fEKOlv!#C8`$`^L-k!C%9ZFpFoo1M1K=?$5;PQps|RjF52 zy1BVo634QsEmT|27^pj}7StPW9J74rP(I}GPRK7mgaSb^_mUhE`DA>PcJ`mq;m~32 zjN?iS-_xNW>#gjURsCo5_~E`D*{v4PF(sNm9T`;{C%*~TDKUfvq9P9|S^UDz-Ey#9 zJ39nnR8k{z%4$Ct9hMPDQ^SQ}=Ca(}+9Dkd^-7fU@|DpsTSfuUpNZZYjfXYp!&{EE zHEhUNXWPE$iS78{;6txrzACrAj3FEK0BKV{_uO-@J&i=SLZFV=eS&(*5}4}B@Q_Sz zyz!9i-o01)`?pG?>hx|w*n2F#yVn=|o?cB@AIqFyQ>Y$V0hx;`!aDmV*6V^=3$GtL zs%Oj6zh#@vV_65wSX%K-WzNMrY|tx^7~vqg_qMjl-ED0$uN3n1$cW6UpJP$U;-Gfy zw@1e1xDK)YXlNu$D2`eU&v1}f-AW*zRDBv$mwF`>p5~F)oDLtqJvd;?A(#u}H6Gj# zHn&P&Q?pE}E?*iMlvxc&8Je5gY!5DUBwTnGF91u4iGFmqwACVH;@wcQtd>vMXwd6{ zBiE!$wH&_bi1hSsDN0sJILWiOR)^N-;hS!f&JrI^{c(V|1rRS?D2Cj7gI6DMyT003 zSBbsDRSP5qY5h2Xq1uTP$7L?Fl6`hAyf%U*;6pydJK2Xn{Fq+n*BNVw80s8sY?6<5 zb(#hA>eQ5+XE>ILNAvA#X_ZeNzFGDvp?y!St4Xz5e0T(ykgwPFZbL`?JEHy*_Vwi) z=nl_}j>_9`?o2r)v9GRB9|7!cFOg2O*W_2*w|v$5=675FOV{p z4!W_8%>2T%ZIBm+!Qm!0Dbca}DZ@gC5uC;$Pu@d3aNq{J{z*sZOWYkuE0C2hT_}d! zMEunQ{nY#YwYql|6BdekXYo#nR0GsOwd;YK>YcM%Af@5KA-R0%l3imxup4iCYV{#_CDVmdB{B(D(bdHb7u*P|3e!+;u z5f+E4rKaU%jTX8c(IHbm^H+*h)KClUZ6&(rm9S>9wlq+K=En=mpWe3B=FFZ|qCD5t zW81=Te|ZAPyN;BjQ7syl95sES?%z+~?m$Jvs2#pYD# z#1Pfpci(TT)`8a%otkw>r{8&7Nh)k==feI_pKkAztr~YsS>#zIB^^X*U8t?3y3gn@ z?T2;P)S>>b>QL}|ljBlbANIq_-UEJV_204p*EM=ftAeZ+lQ66e*mveIq^5+vH(zj)+eKZw9@_oB_vNtn3BQrXjot>MuMVh!1 zhO$xi&;d+HFodtp=*tC98sp z35&*>?JQc+E*k-{H}jTNvq4bux86Fb9hg@`nzNJWhYlUeE@yDqLPjMU@*f%=43>-5 z9mjgLa2{%DlRMkn)G`uzdTc}{bvPDG{Z(7GaC=*)5z5fgqI_w1NUfzncy2K=Z^cdw zbPuFn^ZDhiJEUDLw;Hv8o}U<#b4oVf8yb)S9U`*ulwoJRrm1sQqA64 zn|rsf2NW(}YFkt{++D6K=>1E=`~TGjRdZd~z#R| zr&|{E{0|2QWJ1XX@-wnhvGrCeRGxBq7o(hbxll+n~s!;clGAf+G1iIH}Zv$DNjRvc(TcLsAElN zH7qj4&7Y70v%=Jp>{Uzg(4m_(&+DSeZ5l#-6bAk-4(^>#qQBegXCt7-u8-PLO}Kx> zZ}qhYjqK#{SefHT|d6QY1}u9T^=m(jhM_EI<0W6A|0L z(6O?X6?y8>UW?H(c%1;qkL{7~xZ^IV(>&kJ2t*XD-$DrfF4udDPvY9?Yjw*Hb>_Na zgqw5yRygF~5_h1DfG-^nk6e*v9ZoTk&5+5{r!L$A@eU5$k8ps+pFiE+Dcc$wWO#W| zp3|Wo)(>HrIGq|Lh0w2s_zi|yL*lY!hrDNu}<+z;W&pv(0J*YR2*&c7nU z;zq>c4SJ&>8I#O)HQ=45S|Gi*-h9i>+gjOyfLC5}ostTrGwYxRXYsSr=A{1X$e>KCHOGC# zQX+qJ<;bfs-bj$Pwhk>@lO8+GpC_U`6$};^X@oL5Ns}hvVZ)xi`)qrdYPFT?5pFS2 zM#`Qe9<0sk^^>a!Z@1S2s6Vg6vI)x@;fA64#`kZt?q${V&EWFo%Q7_;=6Eg-T-44Q zhG^u2c!l13@4aei}_b0kMnY`T0*Z+PRIZYO|@N+4)oex*C3DfZjrf} zS@}z~tj5$G;175r$PxzHQus)z$j7?7p-ltYHsF>G+~uE?=bG%v0G+m=WGcAWn&V3X=zUQ3N=>V z`1pv1(_yczbPuo5kUvLv-5J2CvNI*p|rs+sr=N|t@f?JZ;y@0TXTtzernq6 z9*PDmeBdpZ+nQVCBRzeV*V(Bl`SY{y$eUA>^8DD4EYv8uX_&627TJ5tt#V6Chb+JI zw!At$C8s)6kJfh6jaO$dj96;GaE_ZYKEYRNmTc)l*lUXIk120>t%m*E!#&dmq}P<6 zxafg!%~FVFt&^4$$E8;Dyv}cNRT0R`?ySM<#m@O>{>(OJ+|9r2u6Wgu)j87tY9Y?g z^GC|6rOj5hTFJ)+t0u6nrl-T_t?1;R{N$&sLxY(883qmvT++@PCa!J1hhdX;;Gb^q zk{xPcEi^UDtHYNqUTD^iW+3xTWd93iFRhtZLC9s~)wEeqrl& zsaJg(yE3^%Lo%m2U=6NlT-O^5kYx;z6$?t)-q}b=0YMR-veDUs zC52xgE37YnRR<7NY5AkUL77fWXFyWST`{lC1pCkT^~-@)9p>o}t~)dD#Fu4` zjg86MnudK%M;m*4W3$}yzW2)xCEI1Sy1qR=B5x~cEi5kC9$n~+MF>%a;a+Hx=n3f{ z{skN?ERZFuRX&Bz{1wCFFwaFi(jYwmIsb5MRL<$}x3;EE+LhSaPQD>EneQ|Hq=NdR zoeq4t~3z>=4rG-V|+1lMbee!`F+oehG!Z9Vp-@h^- z$LDx;IS@wx^HwX;qRHQ`R@mpa?T{PQ64RQHX3d+Yj^L6K&#OvUOKQn5&%`{~wi^z~ zA+@-cPo9w1r)T6xkeQMy^G_oqgW2^~=+6;L3qk^3rro>tX8j>BdwJWoMuv!2rM{uw z;t`e(2=O_&fdviz9UX#RR{fak>Quju6UTVBDHGx+6Xmv9{5>r9JRGk*l3JH4N3}pU zS_jo5r=+-hB|sO~$8VO)W>k#l7w7BeJShtwW60(E^wUpjfH2<^yF2K(bnfsAYA$kR zX+efEb6yOw*ez3YkQpV9g@rkp)pj_b>BS)a3d;^OnNRih$uDl(CAW5T+LDDBQ=0Bm zLjy9SX<}WWQ(a?&+_%*ZVGK|rjbLJ#!h+RFl=`F`nK^MW&VK-lmE zP&2R5IC{#^5q}41F((E{&oQlWzpYm4kPbH)LUt&5VQFb*nGpXCrE&d`RT^?_ee+RK zEzmy;NhP2&a0C1%_&I`~`)?*ZpCqzwdgMb4>_=WMoU8&V<#sEWQOoI_ln&a}&?HCt zx5|)OAAZZT`D^wzDyeySZT?E*BYnMFwVreDCb9!4+sg1lH<+59QlbiTSKcVGwzxNh z@q2_Hlk*(i&C9{x2~Gd6hDT&ntxMu}sU_BQLWk8#$T3{ULMY@{D&D&Z+^<3c7*2A2 zHR{9bJr;Eho|}X-g&(P14xSD6a*E! z`#C#ro>0F)D*>FbFV&xo49Qf+5xp#qc5uGdyj!iGPxST6vbIHDv-zt_1M-zi=jE&C zPRnycLo%SI&N<)06wJgSHr_Hp_U+Nbg0$W`qptR zXIOBFIQ%*(h5Q_8ewB!$kb8_`e%A_N{>$r$^R=Qr8GrP5x9WlHy>8M(|71e052mfB zv%$1Xp>iZf^12w3>6m2vss+D+lT(w~31kPI5DSIQ84vsD{N7<>pdWyoE^0i6XWp54 z$@zQZV{&|UKC|UZC=YA0SZ@UfVUt~$4_{0^KRqdL>G`6bk1j1sTW!7UY44E!hDN=K zI%HG5XEpr$x_f0?bE6!en~`J9t7( zl~h>rKsmh}kQBrRVYwSm1PQ}ORe_f;30y{uv_@n^Elzg2=pG-J*3+jneBw#NHA40t zB;f9`IMV#mzuc?g#&xLm<&ja@vVDh4tF?s1gns0$T1kUiW)SSGk`rsj@MB2l z!$q!>#>E#eTxCHKow zTmWSm8XVBGU@35Y|9uY{VL9lqbZRV-#8iw~Aw5bg#Pc~F2;!s$gfvDp-j{SJxQH30 zz;ZEiRH+MGCEM$3<%>IZ$^+dUYCVPdtp3I(d9ZJbyiZB0PSc*BotC!7dU;I4J-T(f z9Bym3mzlpjG9pTaX2tPTkRcsU^B@JbGiD<`bYqdL>j+sf45VBT6J@|1f38WxUw{UL zn;#jMy>;wHS|eklBW7vEAgqUvaY^gqn=;)`&7na8TIi)3jj~?VOBqSS!8IU_B+kt* z$ahAEWlWWtt%@I=E4TZydihIza^eG|fBQ8wuVbh=w^yIoG7J|mM8 z<3>Wv;XL@>hvnS4^D?Ve4oeffb7Cz)1bz)Tr_;j=r`5W6TRXaHV16E+mzr@Q%%h#1 za$mPvXnKJ@X(06(jdNOunm?MHlD`}umLDo1@l8Q|A*mVrZecEe8WENN6G8007Ux)e z9KntqyKMP_uh0*TFXW4*1zBNXxf|q1`rLR*ufj$U90pyw1bWFImriO`edGuSiFjZ08z_3%zbUbd!Bsk&jY1i4hL{C=VnD zsCy>av94NL+Vwc5X)oBETWd|7ee9K)G7sx%IY`s%AjV-O#SixOsb#6dTpcEkvE8%| zaW~p>yq?n#x1(a=t~Yr7p+92n;u`7i`FdSeLyu6NwQa;vHeo?TTe=(TGqpw;M8?$$c~ggb$7UDo%R19ITKcX>E+5a!fqx@U1=Wf9 zEcE0HI5kQze5MO><@4@CLt)Q(2No6OhS(hF3Q4yrSwWsGdjMo-Dxr(H1fU0Lx;}nP z-WOc&RARipvr8!X?8=gi-F!rr`?lJvN$)nKwaZFC{P-SkBt1`SqdJvBCFvInTkB?9 zX~~(8#RTN8OUGLe($cAx0QPC|p&LZS(APnH$f~Ic0%OSo!`e_D{TuQ# zmmHFM_%X!E0oPa5+Iw+w!s?<)e;itm9h2JeF{>A^v&|F`pKm7OeAg>6()_C_h4QEb zY4OvfR9KsIFGtEnIboCO#@E%7Lg|*mqIOK?qzJmTf17slcC#$#=$tPsEE>rqLE5KI zv8E_YJVR8z;1U9e;X_DIhfcafhefS5_42i`QThK}9*}=^Wk9~F9rjI@C20O^qs%gb zB|Z0aK}-TpIx$I*7w0yorD?H39rBr+9JlmHD~+rWuP^lEg=wtJx?1wieF+D|`Nbe_ zo-D@jaLIc?9lW5V^~yBQH*2I(hlX9RAC(#y( z6(8qm++?Puq!iNPR4SDqEq*bXpJNSD=v1vrP*w?sRr%1Pk7dqtpi=_An&bOm(JATV zkOX8GcV-_VK^j?ibvv&;_P0icea!H47>?leYhz%hf;`Q|O8d(t6({f1z!@9B2 zupJKbPfVB-muuoXnR9q;!Ve&xpT{6RpXX=N9+Hg1c)620 zGZ**t#FV@=F)EEs5V%Ok(PL6K%@f=7@>L7y;`;dc)sXcd88=REJyHsV!X(ovN6JB3 zJeT4YR+){2hF-3aZj9u08uE0iP|5{i(Qjc<$w2=B_ImQp<#SlRaUY^7d;dzaRFiD~VSUm^!-(cs&A)J?!ux_zAaASGK^bBA3 z3HOP-8R8Ph;d=UtP}9~$qDvARwG$!4k1s7)PY+XnCFY< zzW{DA89LA>sW*#Xe>gEAr)OsfAgxN`?XSNovJmFYk|X4Bs@c_xU-U;TULbc?Ci1~6Evj|Kmj3PS$W51u8gz@?_>oLxIVZi^8mQH zJ8py{4nwv0$tU_iR{olfmp4umB(DK`WRYH6c88bM$yFdKxo;mwrw=$Tg!iR)sr5fDF3|D=?gPpp?qb`C2qK#@D0 z4O2qmu*DF^sZ`?l#Sq6SB~+;PMvKRKrEO|0(K)@t(aBl)KCjl7-+&m$j=i3JX&R6w zaokFY!FB95H#ci@Mj9#O608!wD(z%~g%*=0{-nVWjA5O-$8d7th@cbkd{UfiK-!R% zTY*V^OM%ywNG}QUBu)48;bB_(u8U(%gM3qmrUP?oS!rFjPftnHDZUR`{GJ27qn2JF zu`ns_)s$)=E!|3`T%^SgTWi>r)8WK{+m*oq+or|ggobqmNSm;9-Xz&EUo<^6nO$nYk$7}=IydP< zR>a-AXJ0l?$cl5<19%zy2wZ2flkSJD+g&hxf7Rk z2%8M=ex8qmwP$~&*6uJ5Bq(S9R(tuIV4Epb0qImhu=-6@v1=uzU|~uJGbGb4SEzzi zk3v!kX>roT8?YlSOf{ukV5N9R_AmIx77GM&_Vj6cj_6jCryrLGco`uB2WcU6PLB)8 zAe@g+jHzEBC$~sQBQ8T%SC7=zg{_X!*E>4P7SJgU3p_8t$}UZWq!*R4Y2ubM*nYEbO=*aD*d-!q?fPy!iRW0 zKX3oZFtK>p__`4A*E%a55O}y!QVx>gOBE_91)*MP;VTjLx8f_v-fcnH9)vKS#wt&FN3__MAme)>lG zocpyO$%pwPHt_QgNdVp_gsdEdN0&6j>Bd0Um;fD|qa&n*Uciq4Kgb+HbHsVXVF52o zfA`E;TcMAiOANbCxUCm)9-Akb%*sT18ta!zkQP5pXrsySg^=`%6e6oaz`~;(u3HSRyZ9bEIgt-KbImJUt5SGbMvUR%EApcs z{m@9u5$kW)3AbvC<&inYi2ch2;p4Wr9`T1nz^*G$!F8@wN+G_Ngy*`Hl#_1VZMWZ% zy1k5N;tCd%a*-Cdka+k)2sdW^5+iowu%K4X<;xfCoKBB5RbSs^?-SC&5J&*=;U0Cx zHGah57qxSlY>*nbbhX(3f8GBkukUw!40=Bhv>Mv7+ zhQ<0){Z|)ljTLD)8G4*T>7@ZOV&XmxJ{N}0F>oUf7PLB(GJU%*>oxUl29JY8@`Btf<9D?55^c8+r8IfLTKw5sUyba~9H&@n{p)`oI5z#+u(kX@zCPYj2w{oOd^05x( zNQe{;hRk{PXD2OEIT9nyzY-~i*gqMssAS@l1OFxFCFdPGcHv^~3~grAy7CT4y1l(y zWZ(*0(1ebKTUv*wu|h(G@y>-+lDxqTt&SYIRnu6N`Gt8+`?AGz3kZ^m3DMI<9OO?} ztg4QV?u@?NVzr!f2s=GJC1c~v!G&cDaa>Qg954iAK8&>aum!rrU=rWgb|ta6xT2Qo zypoj0)8Thbtx8>!)HXER6F{EKc6N1}jSFcPhUJ_HldFfyr4-WQl#)U)f2+5QWX|huzvIqdr(`%3f~U)|xR7X?dx}_x z%}LH%pSiZHbi`>^CZPeiG^>Sk_RMMRFu6GwpL4>0c{!{tVgjB{JNz2o8kUxSyWZTrps&%U>!}9W? z4Z$E1^aq|6h>5Tm$d@`GF6Eh@U$7k?nwr9-I%z=e=$j<5fEt;a)?u~QU5%yzY1Jrc zK~C*TfIU6o>E-y?gw46Jf0x$*=_5&ujg6Wv+tn)eCsd9?agrz%#?vV$tzwANsfL6! z*Pm{PUw)Y^Yzfi7`A+onq+2BVH`P6s7DY8cIuV^8GV^G-)7cz!UfhW1!#BV+9gJbmf?865 zcq~cans5ktFh|te+h^N*EFj$0TC^a-|T0zmv{-q_B>$pI;XfZU5R)#5$3~{pg$w zvv^YI*N}jp_xJZ(c!(e-D<=wMY%HvMa$<5abdVNco+~C8Co_a|;xbp&+|;VK6}?C! z3_l?{h%k-=JT3A>3ct*ZKt#;&FhAhVX3Xba>UML$yoU&JL1k#6$z=#0-s`s0dGbP8tY) z#Dj4By*EF6d{qx&EVJRFA#OIYD8NZqm z*R2Eh7|A&0NVy2%skidP?x!9DfxBC-4CI{DrI6I!dFS1kAz{80Lo)MpDZc_hGXG-Y z;p1bBpj&#}as|+7Zoc`5b=Zp+!nQ8Jh(Ig6R*yXzmTw6z6HoKyM$m!L!S#TYa7&`4 zrBx0dJS0OyS1c@@9RlDy2`3-Iw6(Ttnpjj!=4Y(I)g_r9s>P)RnVS!v zjE_NFNQ9%43LqT1<(E5C<_LrV#AnFI(e-o^Gz(ATF{zKG2%({CeVr1T*5&l{jIC=U z3?EJ1vv;q?X^~HU@)PpQU-*K&{>E{6{-u{>Y;;10g3Y!SbWkJcQ%gN9FPSuJo%_6> zgD~jD(Q)zO1sx{0Nl$Ozy4z4CqIWryb7^>-_&n`;JrWWL2S=WtA`V}UcpCujRtj9d$JZ5fzl-I#DzseM%RT9hbc!2BRzb%63UhYZrmV0h69~-&z^nK zw6Y{0*Wu0k+dAYxON(^YH`qf0Uc~LMZgyVC$oLS3^;qoFKCJ|lZY|M~on)LWL7Yb^xUR$@t=Ni!0GW?suFNeq^u?Ve z3v4$%J(FASHLpauqNL6oUuQ?B5?8alsAToxOE0R`mD!ql6>@C|wNJi!s8jt}?y#)! zncG^x(o!8r)8Tml^t_-JabIt*bgE^D#peFGa6vpy8jAVF@Nk~?W=SbnxJ;SWBZZI_ zF6mZC3L!0QG0DV|y1VYW*9a>I&U2FQm&DqHO9{!Qx#uL=p@SYd0pUCw#1Q-EBR~D5 z#QuJsABS|Y9JZ@f-_QjO7&JgA%^V-YusXPA)Fmmiratw&W+28CjUjjl}X#)HhkZZS`=h{wT_sS*YlkQhY zDnVNKw6tQkQnH@#X)r(j|H>DCO`8P)a}77sh7Cp1Fcixq!2LbZ_}cSDS=>OJUed1^ zJgs!B)zh!j;-qJ2NoerPCyvR|xpUGtKPTI3>!nLQ>eP?U{AWs7FHDSufGG&|naW z0UZfPdaQEC@;iI>tfdp?wVI@(vr7qVN@i`-JxD6k82MKdh?8{c>sg@Ns#epA%qU4M zt6q(K;!O31oVvQZ^_Y22)5@b|Rsvp_<=c>IHEM;=vhRCT&t4A1;wc!ie&n%_DRFH_ zl?Z-8xcEE`_!sgE`4&cq>$&8@dY%ps0g~q+4xe=M>$NDZTWO@lr!?G8$42vrQ7Wwr zVdX$$A`;>^zhV$Cb6U9Kx#rxDN#xW*r{YNFk%l;rq%Mx2OYt&?y`xSaJ1X;M&&aBF z%r-ihcH(x8HlXJ}8XwnSN(O|^+yFnuzqoXK&&%A@W?NBm3VMV%ZYjm-I2l1!$-2Sa z=dA)U(CNk2b2T@&hPfssh{Yw=QH581JYEd+akrpve!bW{m8NY3qwegqdjEazm0EQ> zfBu5JdFm}0SK?ASR(~(E##ganw3eME4OmQAQwjN*ed26Yt*kjEEeH#8pV1+BPODH3&&&0PSRec7$L)i$sz62@gz@XR4si49H2)mP zCuEiGzcxP*y8+zee3E&lr4f+4ch!Wqk7~j1&w6#PyXT(!@}3fc0v&|C$OD-TsId_I|;&ic&r|< zWy@B%>82ynpd^Dkg$R3Y<<@37%s&Bl^Tq}|pDrbpl~vVAt)ZQ}cFK+&JLSN^{bnsO zcgNE~EJfn6&WcHNEGVw|*U%VNxo_#|R4ZtU4dJlPX0$%32dp;BQ}0=wk{6#po5Fhx_!+F@W^a@Kpat+rJ^h}Sd|5aSq z{Cpjp^2^?!MAg^VF9XA4vf9xuQ)(qls`av%$5~r9#k>}z+)&>jb2@BWT+rdCR)LXKjS{!kU!(d#;vGs> z?X7Go*lCs!OA`9~wrHI!sf9Lf#MEM6n^wZpzr@k1u(Vn35Pk?Ct=xkL*Ow#Wb$s!{ zCEJS({YlTm_;EAD5!!n=26u1!p>2fofDqT)pC5B^^N)zf$tUYV2;oB<{hK|{r5n4& z?jC0?a$(CCbS(#Q9JR3SPdp{`igXDbG`}!jQGT5Z8?g2~8NQh05T848)=qg+yp!j{ z{W(Gs`q%0-nP!kcT77cq;$^iInq*Obz0XXH$rUB71xVfT*2L}g@tWKXfZ4=%TlM`l5H8f~Bw2Y*~KlFoenwlG> zqrFwFv`*>h2#a8;YqpqXQ7rW_ImHvm1)FF`QA-{0%35aPJGG;;36g>boenL`A3$Q?bdUFjj0R{4?- zzowj=$6*VlPyOWkr6Kk&C61b3{k6ZBsBu>;AcXbnq#x%VJ$VlD!>1uurX1wLC-cgo z(li0>jz{Ms!$UHw!x0|UPfoJ7C`@oSYv=0e?UCM|EjA&{6FkT4?3^5Z?NwW}i3M}^ z>}l&{H0)Ryn)quifDT8;t=A6C%f7y+I>h5~0Qq~z2o{EyJqOaJgA>QCGIoD>cuBEL-Mn@);dF!QB38}TYN&2_2N4{EC>coBw0h+JL13D5P%ZLI_ zeyg`%``dp%3K?gV%ouPT&Wm#bte811fgI_jMJSd?Qnwr`%R7L{-wCyjh6V>@Y<$!R zfR}a2hDl#uk>Mp`IuhvHvPJgp-77nH?ow-@!+yPAedSe~%c3(mX}OhzaPIR{4sHUS zn&A)=ngXxW?0 z0)+TjI7%JQ>JJ6qMMSTu=_w;F2%gD(!k`x~MK5SwuC8jGYP~l$HYn+`?eZMHK`{mO z!$Shd&`FE=tdD%;W42f|ABEdhWe7UvgS3NHM%~Bodm9kKRf_yHKzyA`FBdEsJ_8SG zYUrPAuvn);gjEc2!umH6zocG@1YrdvE7MWPJq?wFEriX^&*M;Wtd4%=^NW5+Hzbm)){54XyjZ=O`*8`q9muU5w?>pV^{=tm!uS6+Qh(}ukHh(?#}KX6cvy?#u#C~38}wVM8{(VErz znwe$gejqCrnxY#|H?csm)*yD~#7tw22T83iLvZX_R&O7oU0BGGme(=&k2J&3xki6* z_RC`*{g~d9@Nl9~*}ZOJ5H`)-VRMCf9UKt8ocb*muCQM*eM+HlT-sbX%hgZLZ7quF zkc)4B%hWdxS9kAy53G5Yun_1BAxu!dm?RP0f+WKhl5&w2w;XXyPEN?vPd%x>>=V{; zu(s@YaHSEE-6RI+;|0dh4w><<#4!)S}T}Yzp0K&BP-f=p>W#n;A3h{UZa$*J)WaIO*2rhip1n5Lh2?~`#Bg#}>zH9U^K6h6 zproY5Vo~k^gv1b%eDS~!0;|_LjSnVmDz@&`0Yq?Ngld%n<~ z)7o@cZox6v#)2F5;85p`-+ClJeqqp_oh0Kph5KT0;GZ5ZO$sCD7l*IA|Ni$TUd@S- zpLiiDg>s3g5YoaHlX8LC&aZ5JeU0qjzhCdl_Gic6C*3^`Lnh9>10h@^SXc~`u-eE6((=6h=;67xFpEnvcxAwz zg!xdX9C&>0x!*6+&bjB{{xRNq>n(ZxwO4J^Lx`NXgad@V^Ugcv(MKP(p<`2PlU%+u zphM;}a%Et^tjf#7LsDmZyF)U8tmsNh)Q$dY)cVH)gt(k30+A(|R#_~E;Ogl}kQwmB->{v-o$Fmwip2+%3$ z2v}6aC5-z4t_dGoTIdD*nsrGF3rl7dK$ciC4i5_mi*A4?oP4BV-@g6QsGTn1`90#~KPx&Ket=b(q1bYpf^8gq=X^&CN(olO$a#+K*07{^SnQ z0;Cr@R?ecLgFC4q_~VX6#*m7gM_XH3&7DpRLOF6E9&QLE$%6zeE!I#0_p6owo_Ic^ zWOZeLO%8*V2@z0cZN~Dezxu24bD#Tpo6mdch6D_n1z*;+%I)VIA6@U0P@qRh7{K&mJm+QENlR$EKqbX z@5H*E!J#2J`ueN(7@bZ9InY`7CC6gIs^ZrdqGR}igjL<_Fu)VQ+^aMW?-16BGeiU! zDv~Ch9Loet%SjF3#x+MK;^$^{NYog}5jPO$69ac9?jbEKt$5v7wLqC(ef4E|>&+8- zo?HA%nOGX}-~$iH|MMUHBeR;m_uU`JkDho!&R@77FTU`+Sxrp1&#C3avWL6wy36X7 zS7_`Bs@^vy-$R;8{?zN@oc_qLwG8zc>X0~)7U5c&!xylFRm3}pYVE3ZwJK=IDp|YP627iu0+*D3ZPFF)p zA%x56l9Y0EqLI^JnM3*Zx4tEBym3?x9yn;juuD3mVy`KzEl7h^+vDS57Y62*u&%;T zD-fTp+0u$;j)l&m$r?!Ck1lR;`S1?n!VTi$oG@;kfk0Xd_WBB)DQr8F8y=EY8gPfS zE?vBs**LFymI63)=8U}b;`3Q62AwGfgteu&SAOF+ep9w=?U#4nIV1n&kN!x9*B$bW zuYX;}ShT7`Fm_xWxN^l_>$z~@qWv&5HZ@p1hw4--RR2-8%ZqAZEzTHOS-aM1RZTQM zhHv^qK|Sk#<^-*tO&=DL&TCwar=ZU8i^~w&K(KH9Hx+zhxE8g>60^0#Q!9W-uhsC3;3g;;l^FusJ z$6fzeSbm}TRv#}K(?QHHLI@K&hIb$v?x-6b9XEz4pb%-XQXPwqEn3n@%k#jR!yV$i zpu@0z`}b#7tFNt#N`?8Sr=EO5Ez_Y)u7P;H%*jZ46ulKiH4ChJ2aVnK^krp>8n+O*~97 zB;yp9Or!|K@-HT9k>;+}m6F8^fAw`ae)0|V*I#rUeoXV4iV_43H5Nbvrr|>ZMox9i zO|d2`Ow`knG_-a&+?eCy1EHY|fOPzv&cQhiopXrO$q{Rac{6^&J%9WlH>eMN@eCd)6wRjzfvS9r{!Yn0$V5X<0Wnz3n??EVA*a&b*mS)FQ%~1aV zt45Anw{6w@MBe|thva|$pZ-Ui$Um(=Ix{+SX5r~PuSzXW8xcbOPDaV{Sc(~UzZZb} zjOFD-1j4=0w3cgajtlGX)Z1^G^);@#(;l!KiBl;&kK8ewmn-EUEnb>vNR_zG*CH)m zDJg`suxV2F-uFIIbPg+tv@pe_6iN|N`ACnSlT4^Qx3EpgoOYzH`UYv#&c~CbI_)HE z(yIeEsnvT%XQ2txSZT~|0r_x|w8A#Q^R^rU;;Ln{I_-!I7a_C8hE{FNx$**zp#y}@ zf)&6pgLJVlSab<+YixvMcm;=5+#w(GMjxLC3uOx8=^`;{F&}gAh8ykmm?xfiLSB5~ zMYANvC&n^mYci57hNDMcl{a30)pSG$PoMZlZaggi*cfW6bPd)jh z%>xb&T{c~b2hoPSm}^>4e;ryIS!fybU%jT=-Px`d7dx5;5+N->-h6?lU5A;!@C!dL z_4>o`wXc0$jvar)2$dZomgmN8X#@2Wzgd8ualLq&xN{CkaSqUt`Uh6uq@jNNAfXeJ z$IO*sNnRPaqL$a&DsRfD4r@u3Cz#BAl`}<=6u{B-MCW3N<5nVRz&R~!F)0W6adOw? zqUQhl5C88)Y9S7^;y@F@5-zfBl=St_;e^;+)KC16iPPYE<8+ z-9aY+g!g$HtRET`1VBTjfzwG>R-ioQclf1dt_n+vuSSO@04@MMX`oI(J`vA3d5{;^ z1m|N8%gaG;e$g4OI!KRB=jjm7>!7EnS3dbupO!EG@t;aVbF1n&r$Z+tU)86(w?_^i zJ}kH2c86IeA&xhZ8o7A!qI~DuU$dbcAbs>jAgSN~o&PMi+$rL#4=+?ihx&BX{KNn8|50|Xeltp; zRJd}}DTYeYC>E9md{hZ*Nv#@g0N3XS24rAPhlN@*Hfy5M(<+H{5#rIPTN;{V4hu*H zD~xSZn3&IP=R!KGYHg|Ir16-$fxO7mJFDMB(&Ie7sdO;%qca8a3Y!5MF{+eft(FY>(MA}`-g4_La_>F&*lr0-I&bOglM^RS$ocaO z1#_K&blKwgpZw#0ET8|SU$i{`&2Rq)BhV+Fcv9Xxc|xs5p13Y#^9OFJ;!YZri*f+Y z(S@-7icTRwl)OJVH8q(@n;WL}$yp{pj==MFkgxyvI0!@i2pMPBwXu{lqjL=HP+sqy}OOP_U_wnc~k?*GQ}w7R}MBBA8brN z+Cb)1kw;iw>4i|-AHO*B^svQ}D3yPV!ePr#1F$9W(Qkf3mS$$G^5|^uFzG%sB{RH2 zqhX3wsZy4b5*DdOC3Kpo+Aa;5iO~u z=5`u2C_si&USPCX(|KmC-9kA)>7G2B|D zT%^S{x=~g@+W4WjU*qRxsV1nuY@H}PeXmz1QC{x;%x8aAy1V=Ap#e`{UwrX-Tc<_c zL+niSGsi`Gh*@4(TiQNImLD+YHhF6Mk;guoC2jI?9g^pzP)3jlmDOFT{N2BlzNK|6 z6ffVs?!6BcpTml!7=nKY6T)+(%?Gz~#_%A`Jx$UO{6fBkB&i3T@QVIYuBcVSH5D|8 zv!2gsBed;ImXt6sk5WK$tJkpJAo;bWfzl8mA|`+9^_nDMHl8Yi6%EVUAf7hT>G=hw z!^UfckeIkYd;>YhAHm-VfVnU_8S#K0JudkK&@r%Z7Q;U8W=&-3Ma70=${%b6!&)d? z7o#>OWu<(i!!UCHzJ2l=zxf;X0Sca+edQ}(wZ*vK|K9hcRV|aj!GS!z(bcUQ*V~EI zbp^N)FDcaoc{B7S-Iy!^bs2OEYwmclng@34WY-O^O%V`4OP5Lm5Mvc*@GtOtvVB%kFu{$8rS3Z5wb{EBdDbczT5-4ilfJ ziTdi1FlnNHQjkoe?xBa?mnE#i$d43Dva-{}Qb=)6lQg7-tCnaNkfBrW$nrv%f8r_O zIJ+ij<7M)@rzdP>5^wWDJV#G$y^2~j+PGJ=F4%LNp&pU2tmv4K9UIKClH2FGG!gr? zU9m4V&nd~(OG9JmxO5OB2hGMiEuAU&h3gpZ?^X-M1EDx+xp-KFbbz_)we8lK31ju5 zq@>;1&RGOXj=WsFqC=b(HZ#;AC5tE-_WtAld(;Wan;v1e{YA$imBu#AWvDq&snOD;I=^tRPKe);}u!-Bep9?lU~VX?4lkRCQ)JX|5fVG2nx_>E4BmnKOVVV!*Zc^*j~xI3O-RVUb+j zxqq%M?R$cnd2?ffv^HbiDfuah@c=>Unr!2}ZnZK#{)vytLk~Z!dA7(`{_<-!zjO5H zQO$o=1}6yD-h0a0s(GXK%??b5`+R^#?bFVh)1|_LF4c?%Qe_4N# z=a&{`YHmi@ZkeHBdt z*Bj8uNP~{fL^ty(_>oo&D{rQZl#MtJ9?#d-sP0CRS}sj%Wpz=9e=OgakrpMczxMf` zlVAG$&)Y+Vvlj+rYIZ>$eBeRb*PaEHSB8ho%3`}1bh&tm_X~4`iB4%`6@ze;k&f?h zorxQh3gYQHC=>1;CkEFpr0?;tq~e zGrZ)J^-cPV9A4$2W4b?Z(jr|t82+S>n}f2Mu6o4Zt(oACC>bnc`GtEhzo2BQ#L2sU z|HI$@+w${2`&qg5mLuGKxp47{{Hx#mKkYk&&CN}6-#vH9Yp=a#dtANw<_WF3F#iTf z3&JgQUt@RTcsz&e%n@-SM0enI0G!a0AU=eL9z0p}JaPB@&)aY2Qr_T#3TilMyL7cwpSB{heRF2axBq3}#rXel=LK3GFr=66#hadjHud5f{ zd4gvek_i-&bmZreCWYhXkj$$bDFpn6PM?v5nef=1kQ3T~=?8%IpXwM zwL`a3>Dt~_GtT(eu}`@+dKx&56B0O}mPdzLO0^6dm8cptT!&gUU24sA>u?gHquVT~ zf1{q)s2__~c{!W;j(RK<+ZUZ19BwjmD|8?leYg(i)(JFU*OhYwe+PaZhNHV7){tr- z#wOXnZ;x$p^Yk;%%B!!vZchS9hn*u@)Us-*uao0SWGrKVsK}9bGMxk=tJnepo==SU zIzA_zm?+}7loMS6N5Xi%jyMjwK>iE?u|x^aXVCb<5HDggujn0!kKVFTV4MaZPtpO@ z+tA>UOzV)C7w0{$hXpKsc<#Ap^i18<4CmgFhU-Z^KK$NC^oNM~G~%sS%7g1yt`r3R zc8GOIN_p^n;(U_=Y6KgC+vP@$ z)35q4zrl7l&2$b`kCoeWFdBK-p#WjwC|kKO(H^#{p#wnk zj>I)(sF8W;>}ZiayLX!3x$~Fg;^iyh>o=M{yMVSdH7aQ}+uYCDv*+Zw7hbe4(O{tf z(kE;T&kt~(Hf)W-HEG0T;N*m$GjQ^Ca`dnWAS^_~@SA#|J|Hgg@74P;tE9s#R-PX5 zD3{0gw8)2HJo(tQtk^a?Km6hM)zS*XV1zK={qDEr@yCCl$|*V7y$IV8x$cBxZ+jlb zcpu311@bIk%7N=v4WW%^&kO3Sf69cXRZMJ1Sc#N}w79v(woxgLT$p6MSZMHw2DhhQ zIfNU*k%mbV(-`KH1g`FHX_A)t(AjhGXqc_7>_nh08o?&t^}4&QUD~ywHq-eb9@U3= zuU$$4+cjRTHvU;1YAh`%ajE%+MaKJzVZW#_Z&R-pTOcj9hMM?ta+~Rb?sRhR6pliq zWnn_S0-NBZq;Ey2Rlp`oR_v@BE8^YZ!|C)DDYvwDmt z&(naOFLf$aVO}H@+^fzVecCRT%O?Y}7U2Xm2WLTe$1adu$z^r@dbBx=3?R zy2VloX>lqM*Q*+OtRbv&kc_idG65q51}-e6kQOIha^Z_1jzdLeK{VoK{M^mM=0h7U zZgnBwS{=64DU;OcunmN-DlkvaEGC zK0hOMYH>ALUd*M;+e^Mde+Y-hA1p3btz+TPX^hmeohoFGyOWle%l$dhVZGBbBzonQ z7v?KsI<2Rkeo~&*;U6F5IQ`CB z8XA29F^2VZ=o55e?H$(D4L2OJ>meI6`^5)EhEUE{?JF~Pjzdjvq?bHU{qG>iaHp!$~JbYccWpP1TG%PyNVd%h?t}0}| zZli7LATRZgZLfBx?zXeF$ zG|<5t+DxxXfUdD#=#mC^=ZNlpkCN9upXNlAW?{u33?RO0V($$Sm-TuqDRFon=o(vE z4$F&QA^kD4g{P)lu)Ya)|AP-n|JK~cZe90c@I2Qer9c?hp&TiMWWGr$hO~TK%pk~w zOAX*c7TNQZ3}Z$7JSoM1f1F<|z|YG`r!5GOQHh_vW@#J_ZTK*lGg zwL@z-wYnG^eLy_#t!ihcVIgt@DXmFl_yzb;2SpK{=O6_ZM^ zUVV~zrb!xb&RST-5GRx-j`%zc$#}7pMtZzhiX%Nv9c1H#lL1e9LW5S(BSS>Orh!m+ z1^*zHwz>0{h8hB`nq#J;aIPR5mN_(PgRjSm;>N3|Pr$pS)m2|7`x)kGr)h6wl0J08 zdX3kn;oBM+c8EP$SV&A-@!SpW-qE}>8Z<1V zH9tFPh)G>J{$tVf(^@;8@Ny5`ghGCdS{#ZxA zmm+|)bYf6mPZujS7akH06Y==t?)5}I#Ea*zFl zq(=j`vkWicMn_fmaB2AfWkH(0;SX>ne2ZF8cXV~jU7cOhr@!Wqs4ZyKFpwpr#nU86 z>wsD;I><5-W5v@H1fYZh(e<>oNlO!RDdF>5JW&j<+>jRkunwARO_i624(;<>aVNze zKmXN)w6cVzVa7)XWM+EI&V4^~$S4d+!*G+bvIi7jqh_%yAP+irF~V}43e`F8E)LFJ zR|I{qjF`7#=>qz+w{^&l9lKP=Ff1obGVM7*ECmL@nUs24Nb|0s`@`XLDZ85?P#4!TKk$>rAEnv=UQ{>H@Y|{qwF@S9I=Is`MSHb!}IZ1 zwzpyJ7Q@7#4+>GAy!h*LTg6BVH^Ku5%ZLbQkcqKD9Ue|-l8{!DlA)4PrjWeg&2k4i zHA7W<3a9CMM_*Hy8Q6U&;OFo#i0hMVBajiq!BauPI04;p$DMLu|3N*=5nK|uV+9e1 z_#PMiv(}P=dSeF$5d6Y084Hp{$E3|40TAa0#30xFu@q*CEEQDGIcC>S7By+7K z;$dTiD{Y0IR_33@RL@Me&k_K@-(hF^C&UUDG=h=E1$lXtuhF=5#ZgI1&$;eUb@waT zv@(<=rut1UEy$(OVHum8kS?{Lc5L4shBEr=4rwhe&1twWgz@1Sof>Nkpd%fSx`>B{ z=;Q8y&g&$B))V7{YH9IBn^kF3ONwEvtrpjO8kGbYUeB--s2<59uf9!}s6L|e7~}^5 zaEv>N>*?1nkT2ng<8_bT>`nF5Q%~AL-p-D$f|efhUc|>Ta|;c(`|rPBKJt;r)Gzmt zhTSz-PvvXQOtAEltff`3^yu)n*c`t@@fe>Cn9PsHM`X z{@F3%^x3o8%a>&5jy=-d(_@pweAYcIm?WLh;V3I)1ZiRQKnPqTPD&0) z#_tCm9e=A6E#u_)kdhL^L*{$5MCb*Ti&{Iwg(mR-B0XXlQrK9(*7Ll0EoUOb-~+w*(p!|#*R zt4nfRt(<}BIkU6?Pl`f(mwZ5)4&wA_r#al+ql6WPr8e=d?hrsAM|IOk9n5Lz@UUHn zTkOfjJAHsj_mijIl7TCi)RO41T~nKz!fQfvb5mw*)!15~0P>)N`Oce!qtgPe@yCsh z=++UW6?gdQsS%k~(xS%NjInIgnncj{x6Y0;JV7mWpq*=O8>`J-ipCVjnEZcdKZqgc2L;(Bu2 zefK@Gd(XaXdgVwZp!^QvdflW+C27a{B&8gr<)4&7X(jVR>OSzn57~!Q9ch6a@wvk@ zEF|S1EuKrx-%bmHFr{=slEA4+8)^T61Jbv1kB*vFWJG^WXS6|1OpHrwGh4be$Rt~X zDBQB}v>NreRV|A8#wL0AGe0M-Z5{T}(j^_DwQ0KSC<*a3x3o#~%CfX(NQHTydd;g_ z8@De^wKTP3@Gpd5T3$Pa4*l4*a$Y+JZed8FA@s+a6%B25^)jpZt!jr^(QE(2JJt;! zE5!<6H&Z&&s&-nIATYn>R+E>9Ywz%MM7O%)G7}!SJFqnL-+~T3IkIS!v`B-GG^{R% z75Uk)nR5r}_#9di9yX5SPZ>Qe*U5&UGu!Z}!(-`E&7IHa6zO_4Wod4j5`=@4)- z6C>nH`dCqxk0r;w(fX>dQL+u+uxx5>vI%vK1APyaw4vZDT5usD!=V1`?aYFDk z78hnUKzJI-_A}@@!>$PQUyHA#l+g`vBz@w$8{j;?23(^D_rSx)0wJKYTSqYW_LIT0Bl5~nAEsjgM@UVG|lT56XB#{;-Cz(J6kRB&riiIoY z7fUG+gtbK)S}$mFNEjByY4~}+65PYT^w;Ia2j6SgH17Aj=MI~krQ^mREnLOKq2 zCkoyOLqBNAjwye+&&z${4+ua?(Pnq41%x;d_5;^j^2p@{+>u|=P^7V{9^%b8B$Is96zEfL%l|q1EN3%v%Lo-bWsJzijExt!7W^UQ8+p z?}*P!fuPBB*2>x+hDxOv(!$3QgKO;v=>ZE#Ar$kAkxZ{rDTHEvX-K9UOZL}W|Cu#X zAP%5G+foFhoLrb)yLOp-CRjFnR!co`KR{mDGve71dql}W^|48P_3f;0kR2@@_I@8$ zlC68vfI1pc(yEn%I;`2M7t;%B9ci2nB{9lFhvZZ6yxxQ5$kx2*M91P?IV=y#lGRg> z#A8ApvVz!r4|EUbmJy&6LnhYIRi-D0RmSa_p;l*izgiyc($vyyL*-xlwO^BM+jfvs zHc!Agc`>YuK{{?Z#X15Xy2eih9fUz|KGFZlPyMvK_q~tE!w0UBsCA@X%}N%F+SzKFbVx#8nb_?3aC2+B z9ApK$4hQE|I+e8Anpc`?h8mbUG@ zpwaC1)UefZNFTjOk2tK$f~XjNH1_q`ifV?ASYk~Y?r>|H+@eIq0?u)@3TpJ&)7~M? z3XHW@c&}{VvD3=vab7@@w+IgAb}@+L_gH zJs_ILFGngtE?((=f)qonLm{Ew3jzPMJdw0`1&4%%fL~hTNGT-qSSy);Wgsp8Sjt73 z9`>uKY0&5`Od>sZCm-t^vE`&7jW9v0=X%Xru7J3Jq!}y|Ksx+-J2VL~-XyJzULM`f z6}A=4(!4BdXKmQAT|1kSmIYW*QWCkLwMA}eY*s^URVL@>WN30irqvReUs$qF>O*jC zP0jX|YIfVi`T|Z`ZbgOignI4l>@;hM;TOAfGIvBcCoRHq?WCo#HSKXFtx+o@PwLp^ z;dg)UzsQ+0XH%^r;AJFEmH;E*4j};_DgxXAy7I#JEk|ybn^inLz$r^W_U<{5aS1Rh zN#TU$1ngjEm zo*BPXkZ3YOIT<-(<;smmxMZGbQYn(UxTL{4o*v1ErpkGt@U&%nUoX;)a8}vj(O9m* zYxG>x*Wq4feG=i%D3QE0JS@XA>?WGa$H+>L#ACBSe6J|koLW$lQSzwi>z8FEorOgm z+VyV<^GX`SHWE}h*wQSwE5SfcObCz9&d9vR2MbCTlWKhthk`KqEKAE4e|b4rQfa{Y z!P>$)!-BzLNh7W7oRbQ#@Jvk%tM+PXX=lHDWk?oRsH4K~^HFb}MqIZ5QsEjf&(_nk z#lE_XE?gs6fscOpBdS**5#q+Ocke#S16?Vr=XK=fBeHGlPI>f0AGQ0N1o=`2d2}$41pBm-c$$<*Yz~tQTo% zxg?Pm#wC7r!pKIWd*!>kgUME_#ssoAOM_Yx+Ng5&6Uf8B`)t{>$Z| z$Fp;@^3>Rve0z9EzOBcnrf1}3mFEVBWJ;~7C7xGmX(AD(UBzCJ+ za~tc)^qlKic5_f-3ZEgXks14>*ow62FcNFaTvrxlQ9Cf!jT3HMcF2kO8Z0E-wr<^O z;UFx^j+>KKh`%axvr{rL#w$nEM6GS342gQ096c{U+N1$u9Y`O-B5j6(gk!RsAw2HB zzUr>K?zQE#{++pExP!&YzKQf9o6Smw(qt1Cj<|7`iGWBZKmX zfA|M7IWcbTAkMQ~(O4mJg&=BLdP!Li($aA$2Wjz;a*!5}AMjKU#F6HQlmic!j9W+w zAuViD3L!15iz9Y3v)=uzG3SS)fg^U#&YKzcJh4toOneDTAX3PL)eft6nO*a=uU$J! zNIhOb;vtD@bOZY?T# zt!4;PyQAf^LrLpMORG)TQ=++rc{^dtV^*c}zs8zz(b?mcON;Gu*m>2=^;-R4DOBe{r$%?cY zo{p)7!$X8ICG@a6!>TO+_50-U{ru9UOY*(%e#_h(goU(NKGN3Op8b>>zSXKtHMTNmB`0EA3wVQMZb4O3FZ0}_2 z7xmIm>T93BU)0Xa@XpfGYo3UWjEv}zZc!Ta*M6+2K_(!zbLXtX%uLV9v|4_wiwE{s zBkyc(l3Ue^Y7QBgrN#bPkQBdMbJ_`KmgeQk$gn+uq*L<2S4ay&^3ETU3-yK@!y|@b ztZUk~ZCiHDmJbgJAp>{kh(I2YnLic8jnBeE zFdhb? zSoYPN;K(sw%7J(CqyRsbLWq-}H&PDbJkz8S@H)-O6US|9T*^fU^cB!Pgz%vce)m4` zpgo<7!P=(RUVT+N7VC8uq`jk4#%HHxM1S?0ln9%7%U>ILkH%vtQ?DJRp-zW6Y8gz< zFUUEy8s3_mlIN8KMzDr7teL|O)d3Q)9R-xE>YDVIU(*@YVF~1hZ@$IqDK0}PA+1WG(F%zEG5>H}4`SV1Dg{w;65{6{!+9D! z&sgd{{E?4lU(G28#fYgC(&EKZ2!--YN+n2(??Pude*6t3ta0nCtjwOy3@@CptmCOL zJbB>3hs+xD_<%-P(bB(I?BMnWmZPzYKkNAOl^dEebDe{UEO+8kMcBDz|Tr)~~O-cYOY+0<9R)Y=+ zO|Oi8ZAy-8@*DP#ua!AHk}5+(hYck)Pu`KE!(wG=D)vqz>j4nKSAi%1J&pOjPnA%)<{qB9{j)s}5Qp8NCUI zxW41#qdMfgtfX}$kBCcw_~l5Z+Dd}3ek>*BA}ww#rQl(5$NV%)A>S;>AWncA5KA%S zGR(z~r4$I0%&%0QY4E(_ypvK4mZyfXqcy}_nn}>0v1notHrCx5v;N~3*sfJ(wPPM1 zACqsYJfT+7Xj`Z3c+cHZo0-sU)SvK1?Nih9;aC39O^4;?TW*yu9h#W+qa@=`0$Vkk zCQX{{Wq28zO;0AZlT9iaO=;Nil|{=F;xehJlb(ip*`-#4jZ@W=;Uhy#NU1rq+M9P5 zu{N#jD%0BO7iMN{c*uNFp?kx;79EvvJ9q9hOT$Tu&QE!~gF7hz&SQcjeZnC2R8GS| zK!EhvjPJhtAGYiLdk<&{GRsUzJ&5!hnkB+46^KPf!ep|l$<^P(!_Hrb}5ucYr>f?Tu;1|v-Ne{$2 zm6Bq>Kh`NtiXoX-QuIfDZ3c0GG{pX~E>sLJvNHJ|{Jg=( zc>orUrpLhfl&|Zriud=Bf_7=PqgM>NPj^ZQrI=%8tGJ?W;8PO|5dnpghRXj#8tR)w~kTloH0McJMJZ#ja>)TGC-ytr8v5pk?e;(%Pfs z#Mh;<^ytR(N?Nl@D2lvHxB)sPOuaz4O8 zJr%Na$j6@~o;h<`=6QKL0y^V==iPV72OfP?4jnoy@4S6VKKP*zsl})9^dD)X19~|j z*3_=Zn{U1$fBNM=*0QCqH3Q`9_2=h>q!i-%C%o5RDXA1my^uj%q*eQu?iXw_+;QQ;`K&eLfIJ!+!`vFf(=^h8NGTI*(AZ8W26_^A=g!^o=%XLj^ENqh z%Psn&aahitIcu-pu$4~GDG)sEhiikxMi!Fj5R@;fqNc(!vGF1So*?IF(5Zo)oELFn{P!dLDNy?@WHqd`}Xj znSJ>=6V|iw{E}(fEy&ERboTW~lMby!Et|o?EBb5RYUDG^oS0fClarG&JuoN@I;6v@ z!p8Dl9V~B6gXBW?YE@~vo!Vg`D+{kjguUV+t^G<&eEYDKj;HQu2B9zntzn)mNp=9T=ED^q`}ilV%;ZJf zTa>g895^6n&z_TyeB`5=R7m^rh z{^d%!NQ;XkkrpNvS^~lJ!h)M)F(eZxB{_tA3Q2z0;z;IEN(v)ihgkT_pB$x_i@`e> zY1^^}y9(DXG+fIYQD9}+bq0R!X&I?#qqjWGOaEvXg5ie~OBPO?ctg&eJ7X)W8(Ujs zuUcVPF7{PnVp$wZAPY!rM`Me0H#J9u#y`5TT3bp&?8|k74!s(*qtW@WfB?s7C8`-7 z0AM|6d9fB+>Kmn|u|cNhXJtt{Ji3jIkFUua;D)8eFpzVGh|~{4*^(3UUU!rWYnP5b zF)^mcMcW1AW_^>9Q82Mf=qgcL>K~NGjt}3Ir)8IhO} z68@owABpNL*Jc7~y+`)!-Yu6eU$!A5AEby$i*zZ2lh*UkKO^7#<~On=S_&b*IPY{> zFNj)P^iK&Sbtxo;fLEFng7?TgQ0bl#6(38bD5Y>QB=bfpNh^fSuQ-=tz}p%bM}85_ zEj=E=X!mJ;=u0QdJwgv*Qqv(Igq67l_R_Rw5W+K`ldFGw30a3UuN^xo$IqRU<>@Ku z&~V$-a_H^svf+$Iv_+!3mDE_h4Iz@2>6L+zmg>cEa&bilY|U4&Tp$U;+fzP`&qD#0 zP>?o6!<^c@T0J~;;8md7MI8ps&Kqe3vdIT&F_*-!3gXzleY>TNKI8`hI(ZO=r5q3$ z`SI>zU0su0yl~lwhl%VfSFXsP|M{P2-2CAjM1^$}5A{gj1ww@Q7Z&HN9Lf6u8KD;s z3|@HQIjV6@7%m~j_uO%(mE+Q-i}L;td_W03ti6iKnEU``d-AErFk<6zY zc;84$NGtz-R|?WdlS)ANSg&%B%+E!CU~>iX1l1`Upd5JEG${qoGfgT*THa--umx4sFKzH@#eDRb)DAK(ZXF1ERXnnQqeI$i&<4 zNOw)045?M}mRb$G%&aDgbZUp)zh|#~>T92pSG#t2Qt|YVb81Ch$&eFR&@vpIna;e9 zor75j>c>(C;xUh8Cp-UMh?fwbk#Zh7RYRC3g!G3s!H366BqC-6dOe2sx=kP==9pk)_3v zc0zg(2$u7Ye)v6k;)x$>uK7BZf|oN*+`n89G+CZBsT4`Q%GHT*Y5B+Ti)s^R=#k>c zr4VOYDUx}|QV9qj>k&(#w8H#T$jg2iwV~5FASfT|(D-SDJfZqezw__q!ufONPDh$l zYllbi?K%`A4f;tkuVm-(jR0xC=EbL^^dHLr>_?V2%YyLVkVoPL5 zreSGCE~~!psO5C#@?{x4b6TdkhlLCu=ask?v>s+= z!km#KE;mGhg$21_6(Nu|X)!Ego{PCN&D@5k%PX9-7_>=RnhD<}-Ccds+tV+7y<3$4 z`_(#XvwM;@BuytUUN;Ja1=(?KU%XijKOQV1W!3u+fABr|-QW3-a_-#OHR))rn(p`9 zbFXyi(3K~-InoMqT9nC2i*t_O`qp2`lTSXO@k4svF4qgv^NuTa-LlI7&xr z)6VkXV~;5lG|E#iy(s5&xO8@EQbyGui;B;REviLOryY)3L614L$WE&z)UM^(ssy#C zxkdKqFlVRA)~06ZYN(U`h9=cxNk+Bo%NiFlVo@z?!uSRvV21~La;I))Eh_o)e&VVQ z3zxMt)Efll_k&K4cs)W|J~sxKpJFom>8GE{TCg^R)A(iqg%V^X-0P4(^=&^i36NjD z6)X0Tg8i}x-_g;ffkN6ERH5b7vNB&dFfd?WQhMXq>-JLgj-6r8en64Pzp=4N33!W) zjE>m++1`D7<>H0&7KUlm z7vSOJ^kOLoA*`S0(kg^-hfT_ZCs>Z;!}D1yYl4ub;xuO7D>_&yOf|HC17e;2MB4c)r}X9v9N-b;;`$`bJTrRZomCD zdHnImWqf#4#`RafRXYsJ5qKZ4wYy91{on`Xr+)Tl<@KY-ERIcv>v2jgu9G@M`~JkF zysU9vU7VL;wU(yT>KamV>Fel}ThwYhs2z5T5>{(Nef9|=|EPw;YPqmaJY5vhno*+S z=_p_ESyIyD$zlVJEYNY7$jw^+@N}`mlP{e=IC51n!9oRv1SXq_($r+C3sG^5cF$Rt!~nK!83F zTW@cVJo&`qR;C=dmzuL4Ah&z&xliM<@BOOWcmIRx9;^d~uV7B=2H?izJ8QIFdg+C1 zIlX<9l8|Q*uOZ4brq=hVQ*X;Fue>5pKl8La`|Q*5^2;yDJMWy5iOC5oTRuo5bCyYW zt)#>AuT)ASnSY2=_tB4i;@1nsPs=DN z`fwIB@xr+_Zfu`;E4!t;ssIW}DeqCosg*XVX1)+NC!^fFf9d>HHF^uFl7=OOU7{l}PIsl$; zOLLp*$x8j;W^3zI>g&T!5?FhLWBnL-E_FN;JT(sA%6#_ zYenlXh@eS%}!yI+tdWK=I zvLKchWJA0r9Y%4^93P#<=A<%&gaEg+xW6P!K9%g_$me&3EKcITmsYTwZL;3qOonTcp zHb4^Ldy$?m?dMOv{3Rus*X_C#sGk!jPRj58?(fP!`)B`D{`imotGx8`i!wYkWcPSM ze;~Y$?A~j;MHbbacKhvbe@lMjU;S_LbtO1{luNwhfx}^E2ehfu<-;u7!aVe8OLLGB-kUs*b7tZ-H zptDiWSU4PUr_Lc5Z`7eot4aW^wmWD@N7GYp_Ofy^z}?SdkQPJ~=B+~hCQ2Uco5eaT zEIxE#g+1H#eC~6fx2=NG(o3SLso55vUb=YEhJ(F&uP$G{p!#STwE8I*W#FkNcVR`_ z82hko-@d~vH1tjiabAD@b@|elz9f%7{zJK>);DCnN}Z}dKT^yua-^Q@T-$4L7Z4D#o(2YChI|3 zI!GlzC)ynGayKb}8~Ns&C$+&28{x3qB)@>%K3<9OhDN8N6A_>H`v!IBz@vOR48L+? zW8*S2H)DHgb?A_g1n5Yd5D#PtOMkgZ8D_sCpGXdeC~7dH-6;{^6axO$Z!3hzhzITx>TR##s=wDMVfp2WKrYAB*9|R z_L|IaL_w$TV_lUtyaxTXWgU5+4(n*MOhz_>Wd2CGAZ)BhEWjH{5*Ck}Pkvl$IPMLvq4f7}&&J`%@S|OaNqndj z>x&N(KuY{-G098{p|Par#Z5<;BO@QzkFczuK6Cn<44ir=Omu6*-r3x&)=sTlnO~3x z-}_$q8(;WkO{7MC=Rg0BZ5-FuST9XI-O{C2!JY4YNIv(=zas7J-P&=Wp5ep&@f znvzY-t58tpn7Y(b>DS>KzskJIV^8HwFO92#cy)(;;ak*7*xAx7JG9}~E9*dd3u+-S z3}kB>BQA7S3x%N%9oMZRUhN5=7Mqq8?KG^jg2=osoSd9cxMl$6Zjvt=h<>pTKvW!2@rjft*p@*c6 zCxv?RnVjV_@GM`jUptK-ZltCOCvc+hv>lvdrmJhlCCt&VB;s-XHKqLw=}&K`4juYi zTjkX3lX=h^rD=Ez_FWN%V1|=Ac zZS}FJmRpnRMY?nlhK?);fwYzvc~4QTP9-jzyw8BJ%mq=G?6wM#xJ3$SxrISVm}K`k zE&LfGVwo|VL*fp_HBbLEq=}OiLo$YfLqkKRBl$rvyx9EFkABS3SP#gzM}I`#t3M!f zv-9?ap(FOGe6=z4o;GUw=)k;FAk9^)mp}OZ-;)=fe@=euw|+~0sO^9UIH*jyu#nIm zlCq=Kd^mTIX2#ic2$BhpJ8{*4A15Bn3=a>KEc5G%yx zAI<&^ppAS;sX!IjN+DrKJ{HmV^RG zhsp1{dMtq@Tii*9#odRQL0`7E=FNk!BA)xgx~eW6f?*}~YQ6OJ_1h6Qvq-Xa9)@Kt zYBBOafN22q=BXeA^YKr7O4?Ni@=%S+kR(EVvaKkF^*0IU{8GR5)|@+^z_OW}nNq*-EgC}&h^9D~4Gz;?KANq1XnYSWcCdW-4k zT_~)H?_)XC9+$N9Fbr9)nC(LXr~Snek3QA zFd?f02M)^O@R;o0zhB<-$or)h^F=}W>`VX=0Oo-hhJ@S|8jN$a4Rw)=XI7OGmAf}9 z5$$hNYezd5pz&}9E!5Z4NuQF)-iCT<<;8Cu-r1Lgw4BV7&Dc{>Oh6{geDFhN4ORlz14$xBS|5<1;St%t|DfzYaHDFY zCDeNZnLBB*a1}jChi$Dn&kjpTntPXNN8Ubdjw(1AVih>IaGWG`BOdwiB%JzUUD)$4 zJg+&1#Nx7q=(#cmzx?!a2zn>s=_S)~DTM5uuwToB6pNUKWTr0VAQ{$ms0LzPJdZf9 zB=C!WaRNekewb-k{2DV5e@ty?^6t}=#(0i7%kjaT_1JOn_09*@^btCo9bTZ_$K5zfNvzhHqW$ty|rXuaH^ zMAD$7VAhw$@vyT>oD46q7?{JNQ!dS`^|P>~R;7}d+LH6^bfIL!5RJ+BT>Yy)8k;#S z+^8>JX<;ZsokLipXW=w2NP2NeEv;3Et|Rj!qCW^qT$58{TEy^j^QwelCiRH5MtTed zIseqBJ|kg!=IVkv?eE{Bmhz)EU&a!c0|#zUT^K^E^{Mseq{T3IMTv{y@UoW2bk-{2 z7Mke2@EXEB+%K+jmc3cZ>dvLbC4ioA^tdF(HD2V!ig-R#$J5QVunh7*yb#~T-MII~ z`f*l+Jb3$cA}Nk~L(Vr&yeZE<^NhWG+}+bFBj+w?wt;Bl`XhU`R%X~_9bL_QCoh+Ppm*)wJ#t2e zc4Js13iJ=1Kt+#!f4t1>gEg<|Q#jlkl`MOewC-qY7uKC)&9LfSV_5iEwSG8(q|OP?DP) zsy4(6zjk!cLg1JF8(;s5Tsn6ygwssxH6Ft$sN$a_O`pjt?V%aourZGCmUtKMK8Y~N8vE*V{gVltsp?!#2>hj&b?)n!(FGm))U!^F6CeEfWIDwY>dcX7jd zYin(nojdo)eGfcnWpts;G29(^eIzCJOU4H{ZPWYrLAA6lT)HfK_wJSM-Yr%ppHl;7 zeMjY5)E|>@pL6ZrCZjXplyIRAa&YS_#Gy@U8X6?48*$XSRxitoq5GM$XY92i0(x1B zNq#xwa}e%{rxp51u1)2~O-HEJHONIQCy^wQN+e}Hs7BmE;&}YYAKC;uiyh6??zf(C z<1-F?kduZ$JU*0p=bd-k_5S?_}YPaS`A1ASpcy?kRXvNr*?+-gya1Jnd?- zYxi#XJAd!*%8s2o<>bjX<@g&X)H*1XzU3deLl(A~&uilzQ;UeLWh_jl;kK(4b#F(z^y`te zR|{&nV1actwMd;DBU_l%NMtq#LxRnNuA8Qb%V9YwKvyaSSUZEb_? zkilp9dFPLXxpV-+KuS5%QWDcNr)Q>&xaj;m1;iiHf~@>Uhvf$RKw!!GmNTUg*GUqw zpP#RlT3hqg-P0|vy>?W|Iqae4`a2N=FAqc$=IBD0Am){dI6uOXcFx^S?S9&Y{%0u* zVfdk#(;pG$voxfID}^{OmmD~EapWsrIBr0Ou;PRWn2T60@-xYu=iJIch?|u1+KFu@IFYf;NQ=hRuJv-ClGawW-smQ?8fIKce@63#=$NY_e_on~KpGlZ zV5&pQ)|RlIO9_dxS_jg563P+uqRx2>fj0>t99~kly3;T*Y4P+Bcjl)6^~}UFVSMtQ zr-H15dhD@}+HR+sd|B}NO+(U;>sSDDSbzM-e=Oho?ssjS)zFo&1`NG(`sdQ|YhI-1 z0gb(Z!4Of~SMU!K!>=u_Sy|jey$;THG>c77)HjnRub+ioEqJ*^kW0fZsXK%;t-s3CS~rBN z*Tf*M=GtIs?Z^-YuL`lh7(WOsYhdXELs};28=IA|H5|jC`sQY{w3c)j%MS_qK{j!1 z+Ip+@P9?1g9g=sLIB5|!?(~q8lNN5Qx#Gz81|hH;Zn#lyzx_SxOCdKO==Vo|^oOeZ zlo15&4#H+@>A3Aup12)TCcD;pWGRR(dbRq2w77@CqR+vvh?BX8K+BFr$z@2NAFmLW zdf^8c^27q<7^zSZye!2eAYW?--Y)Ubw`>&7upF$7S6TcV;&hTyF8DM#+ZoTzhFvOs zCjlBo+-@1qkB$x7jq^^xuMgMEeemngp5_c)IA$w9qf4+;0*IRiEDRbgz=FH+h8yJX z{oTJS>|FZN%dg7F=&1aNVI$qPF zdg+2ZH#i`#4PTa%!-Mk9$goT@d{R=RL)oveHsZ6I-pJy-v?&qIs@nxUpH=ro?N}>X z-bw95lbR;^_`P80_Z}q%NDE@KA);D{tl45s7P>63%YY6+=6P*LgK$-y{^sPA6x<;I{5-tJ z!VRH)v+|vO0SHFeSk{AN8X=uHt>kq;W=NP05}~4!5)!W*L9xt529>52>r@TA_S!2p z`O8gb5|<+g4IupD@GHcEN6dHpLpi*XMLIe=Ec~qfVz0;$6Y~rK)z2q7S5}q8is(#v zcrxSIqL$L%`js!rO}8A8qetJ+j<+N)zx0w!s%67#6yti#M}8x9uu?vLssz^5oyMEc zsF#&!_&W5k*285b@G(7KT9}hX?ZgYylQKR%Auo@O$y-Vu3@g|XqFo7xkE&i#D~Y|e z+F3-(4yD@ACp4~o$B^=?V7cAe)-F4hFraUCao_{3xTDi*UHHfaU*=)Unhv!#8k7iG z|3!KWvyc`YiRm^iQ&e2uHKfjYBFaj3ELBTW1N#q)LG^BFX)|jJ!ooV9pP#YvTp1XU zfB*0Qtu5+|?{7fzdSe(J9h1NM=3nWVTCtip&>XD2E$R50ogN@9F9+a=paN%Jdz|I32zD?8n%%?vspZ)otlZzKG%EilFD%0;?LtC&3+Vam2vth>E4dxH{S0)L=)Y2|2m6A}=w?uB2e| zQ<*$?^2fArjar9w8jg=sGyuRrKfkJ5i`EO|F{$-o9VC-|oz}q-C5nBG4Yp*1T~k}s zf@@P!qF!y1S&48Sf|_5H8O?7-iL}1C(S9su=NPW*kBWxH;_`CQ!MZwov~Ji>ze!qJ zJIwMzM<=aNZiZ9g)g9Y9roP#RgbNF^TJtqZT7&X$|Lt$d*!XBBU2iXTnY~^wJTBV+ zv1=(yXCNtulb2SvT3YR@*OHaT?`KXQ$VPt*GQ{OWUEHZB+95BXYskDdhrj=bLPVSc zyPx=}xSxYO>UiT_(+Wb0h@S&@1L2%>VttWH;B72VLIHA}u~N7aX$n=MpzD#8jlgw^ zB?j|NJ!;ADi=0FtrCdC2WE$AVn-6FgAGl@S{pR zgEU|zFBW|AeZncNyHO>uA=Q!L;C40{WTy!2T+~~g>TEAVYkkZpfg4w3^kd(x18U{$ zY^b&En3?OUQ;UghZ&-^(S*QoTzypD!7jsPPTso&6k+oEi7U6hRC0oB5m%Z~R#wVq> zr`O7Xg<|E>u*u;e+se$&O>4())L~?srppBXl8g+G$-n>Ye`8w>7eanr=h{iWdpZUN zuGseu(M3b69vP1eoJ8=aK8<{okUU+=8|T5b-#^L-tPb^`hjk$<6ZJ=LgC58W!JTlt zFz@xs4<5T)a2?1lmv;{C=IO>^as`Zaaj67GSnENY*?Q9ep3X+naKveqlOA(VJcZ+> zShgdH5pJBGm=sQrP0z4yc;OcU1b*WIv8?f!1V2d4;o&&aAn?DeLzBPz_y2+Xi+}kq zErG9mdx&|52>$jDxn5RM}v@=gAIgM#~ zbx>$aF03RP2_juy3@Fba6ALQ5Il#Rn-5To~FCxO2UAZ&j4P||`(DiEX`PfbmRDklw%!qLNcLn17CaE%a##=(x0SQY2a zp4E;T)*BTAad~LKyI;>f^Q`Uh{eS!)|GWI|@BOY>Af#Ie?nkNGv;$yMyr5RpJbGLG zhKB2y}jdn;L%63Lt(BVwK}f#yiOyw>F|;TtJ6HO)bjH_Vq+ak9_nOYbE|CE zeAu>`?PrKHr*&#;v{Vnm*J_@SWRqG?t}mp-8ZCzFMnI-(xMywc?XsvHoI1nz=BLD8+{aYigOyCWHr7(~!uO_V< ze%&gh45l-FdQO|fx}v=h1~+1b{p}%Vtv_@oLG#JvmI-GEz)2<;WJP+U9r9rN?p>LH zY4AkyL0q@CNIppZc>ua`?$-gia6ud;2y1-^iseh}UMbcSryS5gu|W7m<;hSCBP_Dz zPq^P}fL`r7?7*Mp2y_I8cM6aC|8MU-gDpv}JHLG0{k(s#y_xRm@dh)%U<}4^h6LdV z0*e8L2mo42WDp;urGnZBDRx)EPy0zyXc@s!$dJ?$mgJIO><-hYzwcceP2R)h2S=-RY#o`-kkYwNagJMlzUDUaYv5#ERisvA|Tsh78%>mm3D8 zl@lnxQ+CM5XZ)!vueryO1VRAm%{#Tnc9Pa95!rLd}$3#|N{KD_r)-!7X zWqaqmSQ~!bUAO_~t*m}e!nAMp`K=zk1yks46YWlowWLJe_M-Qi?N8U(d zV`r_SwYK?Z*Zcc?@_D&{NLbVfIfV;?igHs=I!ibd8*7p^SRleVQR-a&^EzBmF)nXv zOXC_oA3r}KGGb>|=Ck~zX|{jfrSl%CC7&2WCg?6}wq_tB{l+>a%7c6;$DD@VEK9K6 zMhTzEmd=jMFI*JyTU$~V5hDB7t9=?stHo~^L}yNmwE4O;uk{dqL}c~FFZ^rUSaG%B zrgr4WQMC=rG`MNW(~9JB0}u_4mS@QUI}$w;Pg9r7^U zbWiCvaw>ioJihP0Pr9)`JdP*U*BATPTO@&V@@b^;yi7OpK4$(jaU! ze3VJuRc>KJpfuqi1-3Z}atMVA@D~5j;AT@)kpGU=(bqd*mH~M(JS44=(bF{xE0;-r zo&z$#Q5PI(p}3?^r(sJMj$!36Ok>D*;>|Zz9(8&R`zSvhjRl@|)U|Jk+>+)*Ry<{# zQn(W$2JW;QWo2Pib!gbQU7d1A%VpcWlyzA41W~_HmUvo5y{R8$8s`_-N=9H97zD7P zRb^8rWSC>5W%8F}=|vl_Q`JceM=T%y^7Qb$)epjFV@5u+Ha<3yzVN%hlg^H;jEe%{%Xoa@cZt)FFpM5Pg!R#!`3g!HJby%8k(2sfZ}ua3+Ql!(Nd|O3AXO14TMb=u_&DQh(s&?&{3HpRkD6z0Oy_)Uhe=_3 zvS;%q-i8p=R^`20WY6qVoATtN7OZ5a4CEh{2K95Y@^wcsj}r@JRWolx6`Amas}Bz~ zv=nL4@sSa~*|s|xd=ihL)yymt`}L=?5Z}3p^XV&J`hvYoy;8jS=3#r9O!_uISF}sC zfwgxDECRi7p?(9Qo^eybQSNAC{`{j9MdS=F1OI_@yVif98axH$25vVXIpoEWPs}w3 zk)zD@^GKiT(3geC<1GYbr3|<{jYSEIfEJ-RUkxJOYU5Xdw90O|D91zjAAH|~>0kVh zzn(tx*J08PO32Tst;BGFFqqVyO$QqNe6)x zsNYa~SK1@uY(ozE<6TV%3I{Qn1*`BOEBvsckOL$pPdm4d#*$B={G?-Y)sSC7%yJ5= zjWl@L3u!^38(JC{(*mrMv9VFxC1NE&mVCezagc}K%v|nK2avY~KvwwhJM{q(p85b= zR-+qPY&-2}EONA5Tc{c10}s~w8A*s^(Z+Hb?bdVi@UQ^Nv}8az)(i*vsY z=ipd%-UyH5@>)Px3lnveud9)V$qTTYxXqE5smd*mD96IEwKUW~d?x(;@Bi8KfuH?Q zy8Vtj?T)S=EgWNhg|hPi@%sA*Z0>~ltNisB>nL{T!%y+_FBFph<2(oHg;L@|DIrdH z2;uip~WQ#d)5V%70G(O{pH|C4(^$$+#>9wvOSqb`_&X7LqE?xvSQqmvqb+Rzj zK3=MN(HS8mw~BC{3?Ajga8fd?M49UYd7kUML-C@V`_ znt}WxJV#q%AP2mBjd6`&BqQGrN9|YmaUSp*_-_H*_ln$ffUGE2=m23M)JGnE#BL0D z)g58#*OB`2;CUJ>F5skg(G-#2#*hB|$7>%_jRNOxC1{N68Mwb6SBl2;>TV_QICR2= z=~Ov(oaD>9nBM0!%wx$zM+fsY?P;W#a3vfa<&Hb0_%ydP0y;HY+*wUSoPkgA;;EE4flF`({5R3n7;EM8g;aHT6p~HV13gC`>5)tKK1EZ{Fwzl!rYkvg^KmF6W1+Z(=CDO0`&V~DTs6BW%Q}=gl z-MTG(@Pi*L^rW6Q@UX}(uIp~OPzrvuwCuD17iCvRjj+lEULHKo>f$br)ur25o`_ra z3s(jFX+S=H`O-@-oB8jgmc<9L9<5Fjf@F>u^^W$<8wk-=vM_eq7Dp+2H zZ0Mwf

}w{DZLG|A7z7Ped~}V{5>k{NWGMUw-{B<-VT2``vG+S6_W8ojG$_gg#@P ziUAbeiOu)o)taz1nMmIwS?=oVOS^gp(w3gy)Tbe2yKVn_F`X9)9-o>_uTM>-BdYhf z{HIyMA)=p?yw9tQlad8i(SV4nMR9o&$vdEwnRamtgZki{^!W`L&d>QAUew#`?oZLE zE7ma|i+fOB`GgO8Q6IM$&$cw>5ID?uc@eu%QHq&!~1aD}H3=`>5LF<#jb--jz) z)A)IMfF%e#{)f1D%Rg5Tz%@gUNHegoBo0&Jh$AH(RIlG6r5>1{O?~I4Q|H{YEEp8` zk_|yw`T$v75=pV^C}hQ5ALRSGn^McsnE?t;dE$2vc{8{1JHPe6r>}nDx6}Xmzx`(V z;=lgw^dJA~8|mPI*X*l6`QlpAU}bs`)Ol4OatW|1gbCc8y?tpw1jIHn_KErnvb!!S4IE-Amq%@QntPc3Wx2gwZ- zU)Ih+{F`sSIo)vMjU`>>in@i~WR=K3*3=>NEso2Fr)%|8RI5)0Bdq1Z6A4#%t^s)? zN8>IRQI0sTN^3E<6fB5Zm?H|oF^|g}#`N@@%^|S?8(?0Cjzj)6@=A(LU{(0KPoRc~{)`nS9`YnbP0V6E=O)8&Jk;&AY2tnzyHH=192Fgf>j){3m$L5}* zYNW`JFu*RNm$~B?4;|QIhvfn%C(os)RgbeBovCAJP-W^={Kk$GU`Whzj*A=H(~RW7 z5PXYxsbc9t1HS4YEOEzy3kp1>_3Hk7`B&T?RaS}?c296 z{nStWbe?2WAm0G_c-!*H`hKOSVRJz+0NI)R1i~?Nq#dXO!$$l(J#Hu(B#X3cCtUsI zR+>$uD_tkVu)^y4%8d(s;UB-TZ&+*t9brJ9tl$rQfT19H7BVxEBCl|uUPlMljnc_U ztL#>Ss0Xf`Yb7G^T7bY1R5;QrcbaC1{BzfsR+*qesDN_>Pa`6{h?k!)bbPX$N#XqE z;rNX_`Ui$&)o_<*f;X80Y}>Xo?cH}n+JECMBDAeG^e|;qco5~Q0tZ2Od81wK+P;CG;@BnTK_2+0Ns49c^iej>O}$`Lt_*u$H!d`_P9!l6qzF zlA@>YeaG`JlC)&YeK)R=VUh15Se&?;$6wGwUa)$E{Cu^D%I3fi;Vp(JOYVphjpfcO zpI^46pI9UwZt`0P$4uVebsr8=TF6&es zo&I^I4k`Aw?K^Dv0z7X=ex3vW)(aO?r|JetLR$7QRFRgv)0E0SE;lVdJ`Mq)@X-WF zD~Laoo3e2C?C9)C-~ayi(!qlV+~N=*E5b)PLdm(ti(yx*NU5{C+up~EMWUqXVVwA! zV2jRC$ZtW-2(Lc~X+m;3D$DRWk!XvC(;diEb&2$_VjwjZfI>)iGmsx-2grf6s4A8R zTfs0N2$AxU4lGQ{YL=F)&g=H>vtcFg?QPoBVjrxiQ1>O^viZo*eN<$)&AkeQELH** zVX9R`X7a|u3O^iqZ4e1ZJKz_{&jFWpAEf4OgSE@p$MVQE=>mq9%(;ziDl={G}T-_6shMyUnsnKUM_JmeXd-O5mvMxA)PlH?b8 z#(6WR|E#JUbL0YU#I$`IZ%%iemeeif>Cv#SU(7KuJD-Mm3@&2A+87@jwP6WQ6?x(L zt+$S(^XHiFLCIXaG}dsc;-w88}z zJ1>WIOr1NYhF}OGA?d%%8jiJMR?D|bLl8{t%^HgFaR`)+&WsfUf$_O|J`^!MUEd$v z8r2l38u*Jg>)N%PJ1Mx*ovP?SdZr|S7VI*=vLsFaX!1O3!R%i=PkDRpZ z$(a1;#4*nUkRRt&6V0RtQPA00#gBue@M}g?3-8I2pa|$BE5?=Aye;kMRUK(FbwvF^ zR<*C81}dnA+1ej>GJt^>cN_} zq9v9D^Fw_a0)O(8Png_5UFSUgK>4~EkoEiC_n?srQR=arWO#Dw`{y^7lN%kA>kOHF zKD78j@U|$(P2m6waXn2>g*NBrR@KgcX$AkZS@rMDKnwb@>^%QExLzJyzCq+%7e5pz zdb|I)Qh1_uw^|U_I$7rEY;}?<=aXOOzb_11_Yap}a~^ljJbX)7K6l#Y(W z(@6-5p*wJ!H6AP?ey{2zVN76)5G1!`$$e!%^f zLW``JM{LfKJRmNP)F-Z)5e$nMKP7ArbMiJ*4Er5Kz80V1q+i%Ib!W&tI5=c!ltDVa zuIy8$7mgJXbYCBzOZUzUvEVrO$zv?ENW6L3JM`No zl&rY6aB>@_Wz~or$%}Nk3kF$*3&L{!RvDS$QrvLyvTWo{Skj2$U05|SA)gZziVWGI z_z)iD2;u;Q84{r~+&HI>HhqcqWBB5ZS7VNgh%PH$3q(``ohHhU0}SJg^%~G9J3c*y zTp6}?Z zErYPRD+90I-k$Wt6Q5RlG){Vxr#mMjPec8J_7vHe?iFc*$etz`bcP1@VZGSiCq4uVI#dS6-rmY3;5)H0O--GcIA zN<4)?2|NtsT3E_qVe&hvSx(_>SUQ#*eOl*O|Vo2NFLBYt2@-XCp zOyU}#cRVTwnCiJA2J&-zPrk*60(D;&O=8k_Dl8kzbyzw+*PSTqqIQlnEtOb`@~Jj0@ja1a=i-1y&p_uc99pZ|RNC%^iu>A}Z7kjA<@ z(@CW{E5c#D(8PuLbX-;zllV0e3lNog@K5Pd7eJcq{8@#l515!3^SR*y_z(2=*?Xa% z`ON3iLk~YwY<^ z;!)Q-@4Q3g`bqN(qQ*M9RJ;r6K;LOgSw@A7a5+dZ=B@~2FOy48XgA*2;DzRVQD~0M zn}^eV_uXeB0j4$htQucts%@iO0%cvSuGNUTIP#deOjd%8AN$xRYOm%j2P@4e!aD(Z zrK94!p-)obA7Md$o%`qK%@AQi@Xh1oevRjcUU?;*J$~G-=v)jZE~!D8^xprjyVJBf zJHxX>2M;7(x@9XD)*an^({1UYM;=Wd{piQi!w)~2UQs#|HVMyuR|7U7&nMGCtz3$? znF(@agP;E5$gT!c(z*6_{|G2V4{`-|CC9(9jwDU`$dcECn19L%j`Sc}NGiABLiT{L zT(i=@x2NAe^3dPkYXk$~v8mllFTG?>>~6W`rgZCVx28=!1L@?s@w9p0^=Xnf1QgcR zT9rWYS#p3pAWnca$Y;39b)gInuQTO+=;4QT)))@3uhaJJ+e8d^rmb7Ht3!_0w*O(c ziM7m!EZAEN3noAt;rCyB?ibUJojXkiF5|LXi*_rJpD%@oyLaz(B9`9t^2;x)?rd!w z3q&2vL58Io(<2S}=#(q`C?fLVM#Glfe0#A9*6up?_jN05XF7B0WP0n^v2^<6nKU*! zYHRRl2iFmgLza2I4P{sdkY4VV!m{#ME~fTUw4AA8R-LFad0bLwpbVU2!9Y;4o~lex0EIlR?5j9{1n>Q2N0SpG+rD9JjCjY~Q)VKGij?LY;6TS@7Y=+!Qh+ z9SDmxT28VHLA{5D21JxyE(6ttyLOu;!kwLR@F7$>3W&UU zW;Z0_pcr%>h>0&H&&lINp)~BD1j#@+ULEMn%iWBuJbiXCkVPjy2#OAX%R#vyA1pA+ z8gp5Y2*(&Y`knWZbqvzxH{ufhVGY5Uo1vahKl4mFdGdrhhJON{EqMGPKpoV9I#ITG z@`%1*#nI`kz!e}KdDH2fun3n`z5;}2Vef6X-=5z6?su#6ZA@chV`+Ytc|8C41odJU ziqCxJvqqQ;(o{C&glusE(#{drW&a%1ft^zM=H%hSZ%DSYsZ+yjK0C%T4i(S{D>i@x z$Oe6d#JExNo+@?1%16)Y^H-$rWhZW&cXhQJdAGM$KQIBV2lFd-^y;a zs7k}m@hi^bw*wH?=vlR*-_fSn0$3e*&kg(2?54J~SIT|((4lnp&_NptqE1lAoew>j z28P_aA}y5aE)5~?yz?&m80txx;rQM2-g{GPn=dICkh1p40->Y$yoG-rYf{QJE2|AK zOkz&LJ3iD%S?wp4u{ah8e`Jjn!#o8Q4CQsj#5$T&hjqdTg36V>8Az9o;@_(CPQ|M$ zx88bt+P!B_dhnr#?8(##)fZxL>&b6k0rJ6WoD*SD7Oo-G?rwGtXbcPT@^H?Qg9jvQ z&iToY3tb?tSr&5BjW?xx@4ZiD98RMuADxro*)RRlFI%~DKoZ4C4KAZP8I+OdotGiN z5ct4>1L^Pn_HSfe9Ws(2AKIUCbawHMpoZ*{E&9RNg79M@FLLL@y>asaR!066<>459 zymUV_IG}hvmge%|I>Lwmt8`q%zReRBBEEgA;#(NRo)x1exA5LQ>S znq1KX`16E`wL8QkE!r*|X+T1}sLY+7JN)+T+tbar++uNQbL#PvpS-4_#)v67WeIqG zemAG{#&8hJt-U?wy6WLcGo1B8{noGH^?mPqAPZHEdOQbbT+-q9Tz8!f|8BYYmh{s< z^ZvAb#}4~F)f9ZuhapKSfAYV_<|4* zYl6gSXP!ppVaw;a3xDdoQbc^y{&J#AfpA{fx)Ku=p@$<(mB0hd{8xgt#9a!c9AxEp zD{rI@-Qkq6StQde8kKTvkfNZpOq|-bE1|g=C@V5!?H2E?jf{+@XPCB{!C_M^` zRVtbBsJ>lFHl(}b=1Uq9PBZ64`rbKkDC<&SLYv83wzYv+$e*~Bg$^4oN63_60ZPxp zO!oBV$zVrEryU^{NQUipCMHG^M|$e1r_=BJ_HU&ZUih(frl+5M#)ez|s>wo&DTcXG zAM%aK|9kJd&xSAh#llv#Gk%g*akV;-Y@6hK%dNK>Ia6-Pm?7}gv_DBbKY89=u{Mo! zzSP6KPpr;oh|jPX@(=44bH`R2Hb>s8K^~8D7Wtk$`IfB1pV;T| zc;JFO7%mo7ZHinLM$W4MaW{Va>r-XYAyJ;BynP9wt!#&E0xoJ=0QZ z=J@~M%P*&~5m{KepmWX0!eVY|&t31G!R>ciVLi z8Vs2L$~-7Z^J66(frzbq^ZumZSj{1|12V3<>4BSt3XAuKljLq-rmECZQ_m~`_na)@w{)EqmV zy5(w4vIxS8{3t(;HzeLV_Lkfcd7=~b{=gAAK-xHNFd)*=ZA$U6?xb%@mT0Z5d>yGf zZ5F}r*uFLO%c_F-qW?wO>j`ekkR^Sdn=fAhVk@E0;VP8N!g9Pj*gEjHO<6(1Cr|r=H$k zBeN5)y_PmgQ7M7cNESm%M^7D3?LEC|=gx&6pCnxrdPM2I^x_NYc@bWV6nLA4K_O$M zk~$K6>&(RA?oX#;%NKTGZP&1nC#G0`Hrx~uG4C-sdCoe{ zAh@AMtlNZSr=sted-rs@s6L#O!3Qg z2!wucBrhyJ>g@z2YfAFu1$GDuBEs>6j4ga1sURyOs)DS7u#k~ zk%m+LJkh0`ggtiTn2x?*7kwuj*T^4-#mP;9r+^SNN9I3mp{@vO%a+ZyYM$R9INF8y zxw}&Eq3FeAJG3fq-Xw6Nr3kPLtfri1VHM|wNFWy=>A5w<@A%`_NK}D{AMQ$H{qynk z4j(v}Mo*n|B9g+*%i0*+wk2&E#N6JI4!r()8kbqjzEyy3fkMuzDD6_RTW-5eNo|nw zUPz};pGrUe@sHB?zWd$u&2N4^ee19PV|qhobtgkM#T-Ok$_f#o&~z-`2&f_~!o_F604uN8}fI()ehgofc)V`7SF59XsZ|BxeQWX)l%>@143F>yC8e7=0_+igtm- zIN~B)go*ac9jN*(&@3J6-V`rE(x>-2&M>%f86MP4V(@@bI*_e$YR9^(Y#eWo!rsco%Z(jr*6fWn4e9PQhq++4w>##c{b~A%MglA4#_kF z`Iu!OM~6b`ql3rq0J37fjk2;R7KPj)qIRok((+-QPHP)`ifj0)4#aW+o^0_*p7iV+ zi?TK#voaW_QU(YGox*Zp7Y2^s_{+br`7vLUhV@oN5<+MEN$WlOjd{HwD7SEYG9Tvz zW#j}&sSO#{;cOmCq|UMnmYPh+iae*A5{oB^1Hn)(=ItODK9-BM!=g+(*AagR#4Jw9 zk#a$7R!03Gh|FzNq2Z?b8ViCxnSalvvd?D9DZ>O7r#YV%d^6T%*t5ow?I`G z&g=dgY)`ZPfqr{p95=wVpeoNCEx+@Bf9WzmmdDb5wEyiG^Ck-t;y3pz5IOgXZ z*Gf98jqlMse;&Wn;SarWDE&mk!Q*eqWS5fjp4D)7Pr4xGy5-*c(xGE-rB8kGiS&oR z_my9t`T9zOB`ACL?z6Rqkd}XDtXzhA z9af5{zaRX(<#)gERS_1Iwdi;|<%~?sZv1bU@qMLqj}MdX!xXb=z&Xr-vSWH2v_~-%bM>Cb53zbD#Ui>5u>4 zucfKer&FgA+$6=v^ydpPmsowSyckN(shXDu2W?0J0Z_i^KnxE$WQ}a=>PkcG4<+c{ zsxEse-KdVj!cq3X`u>R%wyn*(l=qN2zKKqx)w+30>iNJ&lqPdW^Xc1v_pS8QQ%_pi zX&F~&CUx0Th7I`qjtr1L=T;7t2^XE5Bf~-FMv%$LV!wJO*>~>TX%-e8o6bp{m{e!w zJJ(ns{R6|Py^W__zI5RD@#97SqD#v=ZzE*QWHsqPP@Nr(ujCMv@VV{)u6K#BKKr@P zdASRsvhqV9%u}f?jX;X!94t^JA1A08BQ1u;IY^g>3mqM@pn7CY_4Jx0g>{L;nxam% z;TZFX0&Pj2kRmcAPtGAO${l)V=S4jrTDw*lz9fC@=wT~YjtHCgmpG5(+XZB_bLXD4 z`?}rs;ybbl{mKz_FafL*CZ~|a7r*p-Mp%K|lByEQY6R7+A~=5YPPTT`g|iTl#?wzd zm0o)3#q{QzZ>F)4QJeEYkfH2BCV6>ozU8)b?|t{Dvm!XGt-*o8bp5{T)2WkhrN8=% zKTlIwA53mb0f{wxiTD35rYT*|sBSG%aMGmnl)>ucJsRq5QKx|XnZxQ78Qr8I2Txrl z<}RcsMHo!N-?MdF>Z$EHE<0{uD4oCa?sQa^;7O6%v13PV9_Xfc>7AOVJn zPCV^42~2u7-F$0$>dB{5udFlG*7B}uYs=s4QRa$Tt(<-{biKj)XAUcX4sPGEJ$>Tw z$Gy!&PIeSgn5-ER%7VhW!-|?yxp*SUjf%XM1M1P+H)s!7AZxd@{C!KFirGAp$jz-* zFQ+ZlP&u%;Y*DVt;AH8<>BCi(ub8NZG?5vWCQCs0t&SjRFK_fa{PI2+*UPQfa#7AB zK!4?(*j>A>OFMS%NPRq&lx1Dj#~a}~wici}EnoWb@7s_tP?d51`)U#CQt0&-E?6v0 zl>I4@)z`lEZ=?n+qO3pF;RrZZm2KPhowm&g%83Orym{CbNsgR3mHy&S|18apjixp! z8w53}zBsGAu&$O{!+lC~Pw<+fXqMZB|`cXw_We|^bQy=`$2i5Vp8TgU{ zzGB1|d1hzXi9*9X$;Om?mHJCONUB@qX9YSpEUd+LhKRCSsUth1`VbGf`_0$OBC--; z#!?85tes+41lCi{&G}qe)R+2`p3RHN(qv&OTj8)Yq>;$p4#+-M{n+h-Z+33e&4Q=2 z%lO*VEggRIpoPgvE6SFGa$>REdDq>hY`wjGc4yqSW!NUxpMU1rG$O*{snTLKA)RJ* z-K)FzKwF0q7U2drZAdruiLmr{LRQOjBF15Lj(fIlPp!I>+vL8)H=^=DSg10j@(Z8- zYw^!@MoZ#hv_rNhS{?z!i_blvs)%_>8Y z_(tE*(4fuDuwpspZ<>Mp7gMn7rTo1cF{ypRds}OJy0Nd-Dd&ECpBC;$jJOb#JD+4*x=VN;f;e`Tl9LamYk?NSD1Y2DPGIz&iV*4&7& zppBqqWm1kS*^dL|@|RIbSZitMT-gJ8dh1=us`P&U_x~Wh{`zaWvz=F?`vfr!%+oBC zZDNAgEGFzux0v9WNBXHpe@1sp4J|HTw0VpZ$B)?D4g?5U*`xasA(0++M&anZ(Sge# z%wE>9=*T<`ujK4h9yi)&mQp%6I+k9W7){&dch{C}He>{pc0@ytuN^&N78ay&-F17@ zW;WG>q*xPGC_CTUqa4pZ`%F4?=zz-Be25hOW`XUd3f7$V}N*^tYq02ll}H-c@=|&wKk-*r4Zdt zREh%`)pl1PBBwesi4QSRe?VObXT&CFdEyk`{A?Jic95KT@WMP8@@MW2s~SJ7UfSGs z)UB9E&-J4qU=bDXhH@Q*Y5B`R#8{7IL^*R*`K<&Vzj+!)SnJuyQNcy>To+UchT+h)FS6+EhjpU6*SS$b<2ynNHIgZ5y%%`D#_5&Z(aKjf`LQaPczGm_0s5pp_ zG;qU{fS}o?VmLe?T&di>-xxvqW{=c?uSN`aa{;0B(1iHFA(*FJX z7Sv-USS)U|XERj&hMzxWWFAUGJz3ARF}rMZXo$y=w!+yqE&3xL+9)REV|hki_sGk1 zq#zn(ZbMNKTntG~=VXNwo^*4RuXE&eS*qSkA@W%)zop?iR)y+`t2MwfT1#1%L{!E} zh^JWJ{`R-im%sew^uPSi|5N&n-}qPQxo4kFV`HPmD^iY&t+Teg!aw>kPjdoY=g4&s>1j~gd*WAP-Cb^_%xH*-14 z*DFOi?bW46oF+0}Zwu>6f<~kBJoC)cwjK(yn$#E`BAT}kaMrf~&K=0>$T`a7oo&t( zioMB?9Xn<&z&QTV$9_f~(chta{q>)uBZm)JXTi~#S*t{6j(kAvoFk26J+?PjEqkuH^yMMMp(F8R)h(>X z*K^7s|Gxh2^zb8(rYC>+WIC%McK{254d|GQ#6`JsnJ*Vn-zy2ox2sDx43(Ao+d|Z^ zu(Bl)OjqRZ-?0r4!#jWSSrAasCJ<3w)|c%@$CL%H!&rK9v`f4)mA9|OkgUq}UXA=# z1M*o-US8(511Q^d*X`3?use;MIh#gCPumcPp$kW>8XU@%gY;Qbl}i=B%j)cu zAos2rdSTaig_mAgJ|GSy1D=WDN{*AK~!RB zhjj+5Z3InBiD!1@B zyO{oHY&;#Go=Uql#LEc_T$19C-}|2Qw;B#(B~otcpO+`fPkmfw{(f9sbBG?>yH*k9i@KMu0aiR4=yB8Q5^=Fx zsLgBXreK66iz^7n=CzQ$NC_E-d}B=)x^42-A7mBr8A1m6@f4G^oCISo)n&h!JSlVe z_q-nK0n)>T4z30pKl!O&sO{FUScTp${PCasar)s8zc2H6zPM|sL1lgTEf0SZGrK&YOQa!H=A`V7+tn+D z+N3ntyiZn-j035ctgM!_xuetGEhN&2lypMG)-6TeDn$p;=o_V|gSXw0UVZ*YY4rTL zGe^f5h)dG30#08pNhad8ztyz!7$0p*%Y+voJ zbKQ8+C!DR!*Kc<7l|MvfH&Vju7*DqC=^+*tmX=J?XiJ8QPEvBUa=7gCGM3Tox5eVD z6kZljFZ3q&TMn*i!lF*kKliL{v&&O18rvTKt5N9CvA~dvAs0evMW#mO*?s$+OmKyUEl#31e+T=gn(e8w$oJORy z89|9;sTWHsY#5^cK~jVz94`)2A6C3#4MS3tk@WDVoGcX~t&sb2k(WKM1E~6K zF?XfG6Ki{Aht=;mkrU+4D?GIo@frohgB_d^S0Q`4IPztV%qH>+i^|$n=jLMmN{v8R zWV_n>mE)|pjG_VKB^=sZD@nJ3u&S`$g z9_SQ_Fps4~(`6}VyYd_Cl%JGP&6vhC6d0MCNu4Ug)=mu^^R{4YJUX5RRGu9w|CGvp ze1@;{$jY%{hYvZZZ@CT2GU6I}&?(~Xjx4#hj-ua5gY@VeL4I7Tg=?b&7)b7Y1 zIYB(=9C8fV`%R*7=x#A5Mi^T|rDLw^Yn4S_hw^c?$kSX2mLx2L(pB=s#g#=Uap1&> zld9MTTX@GFMoe1T9Z7c~h=j&r^4#VL)JZV_SbtRp!if$BImLcQHe6}piHj@|SvNGY z6JMjnM#p6#paR=<5ZiKrQBKTxSr={6#ChFOxvReWo_o>*_dk#hz3^lERM>!qdIRJm zOsJkGRnHC)z>cn-M#55Rti-p~@A4keU3XNn+aMCBttdYv6vP~I&5zb;G7F092#>sw z1@etf5*?weXk6m_k$#=%{Ws=hbaL5;@}e%KPyTiJk|wWx1Ywoaf4e|A*29(4S_t>| zHC(>EjV*bQKHGd(ajeaM={m@&W;tVVVR;o6RxC`d&ToxSk}C1Kr@fr?mPc5^6{&a$ z(V6OKNzXm^yoPP;%hZ()A3ki2!vrR)!ebI$F}-uCvDiw5)!ktoIQ*#~>w6eV_4f9w zgU(n7^iIeGFB{qMQ3Arr!VwYV78~_%YwfUxT8@=Pcse0RD~Iy6r48z+8$=9jq|&AH z_6rwNpUQUrjYH{@>NKGG_3Lg)u2@Z{MI_iLyJTTOQ0n(q1}v6yO6TzGbb3jo_PX3W z^BeJ($&zy%<)BWvi{B_GGR&>0kPjr1BjNz!L90*maYguG!+-+O8r}+!)S9C$9_f$GR>7R?I z0}pTBsyMB_|CO#GFXC@%+mz0o8@HEM0sh@xEI077^1?0O)C=UDjB`5Sd*1UN+fVD? z|NB3)^;&>BQzi{cQ}4yg8tQeV+i$u#O&>UrdPG!xQcTv@AdN|p>MM#jB+GA4Pk)+G z9A3#eBBD8?`kYg!pyV#I5mWy(GuNKYfv1|)#DWG`e!iM6mwh|N?vf<@UHrvaGVd^H< zh_)!Nqsx9{A9E)i8rOfvVM1@)wpDi}-#Z-(jaBeiNk&L29@~f5kPA~<$W=iTX1GkokivH9t{I(& zbTmLq7nIK_Sz^ym&!ivC%%+2?=ZLH;w<{gw6?r2EEGLe*AT53~WtTj{in6=2>V;pe zTtdXjCw#e%-{TmFxZ%o(vW1KCkT2hNgsgV&-fa`_ywFSet5D7-ccfPiLw)17IInV7 z0_2Bmv4~hi+SfOj`eaFAQL%><>(j8Jx@BeYaaXgRq^IazSW!V{w3973)r~cD+DNOS z9{Ks(f%VEe+Ov!`Sy*LI*k&0m7sQV=d>)4DOXjeSBP& z)T}i!jqbm>#ls#-C`|wF>G+opEj~iMrsUe6^nqNat3|Zy)j+iO zYSFB$>q=N_MXuO&vU1033y{cR4GW)s`ss9vFWN}Ka}bWzz3t`C%;$=STCY2AXY5elVG-F{b1_S4!40YKM7Z=yLBM1ad&r6TDje;=P{}9cop^(=NF(B1i->w6 zhfTJPj}sE}r#zeqE0$vrluwL9P%iTzDU(0zsdR0_K3U&oIfmTVg1jxR2G){S9ydR4 z`N~)S%{B3APA*KyigWLn{u|avZ1&HZte?F0lk`gQvTt4?fb}ykf}!&<9R`EM&cz&K1$M`)*-T^2B;c$>D{*i8! zkKd33LqZVYBM%U1hJWtx!=glfypst*VO7O?E5g*;mm8CA1zfWob2AI8s$N$UdEGWa zN=8Bu5|)$S7||JfT31Yj+b|9bN^KNR@bC|U;u`(rAx~MZIpVjqBA4OSkmp+RAZ|JS zHAq-eUCxUR6jm0Uh|Uy`;Mwzs9T|8D`lyC?tO(9Q7oa1sN6`4#SeluhG9^N(XnfLR z;b}~MUYJwb>Yy_-=WVT54lD!KYOy$yuY(*s_`1cXg9T7LECw<Zb$P#d-^Z3T5Z$ zb!|lWaSZ2axr_MWxNg>V@mua9eF(ujin~00WI_EQc=mONgl%n*Twdo$llXK%;@O;x z9HbQQ0LCzwaFIXA>llu-d0*6@{MNy5`SEIkI&$+t-qh0;ZE}RLVt7|fsGBtfQQ5U* zTl|*GI@-?9>uG~H0`kp~|F&MpE9<$eU%AZ(LYW4(>VI7}sCk;2-eQzu}A)Cgv^K?$i#@C*)+DuV(*F*7i zVe!0db>YQ1VR3X+tP;vgx}liOKz!m6KGMeJ*C1E)W^EN=0paLCk#-r#jo+vfzY{h( zR1g+^>|nuUc>Esq$sOt7@;u`@5Z8H~@*^%}cIwnAD_{P5UWf3%lCbi&sJ>W1s-q40 zYD5JY`MFu`(hu{;734%bu1zMH9~PCrQd764IL50p;Ya>CLZ(*=$hX`+R}w4DBQMtm zPO6mpYJt2Xe=pd=&Rcgr4;7o7*~)ZX)5&CW=L7YeV^7C-zI3WCR5f6}eTyrd6$1(iFA=8j+q|0@H z>nnlC2U)Z8W_t%~pkyU>^`@@wp44TZ{pyyCar&*Rc(Ru*-V6)N7jQ}^jI30jAS?1H z=BGSQuUE*U3WU8L4{E$hICuDZZ|^0T8q0mzmxuk7AFeAwn)+DMT-0$9f)I) zi79O1xW*rpWym>>vf_fA$e$x1UD62U=Q>v$&dDeC;vz4?tvOHu7Z1-_ap*5-D}EXj9G>Z`#*#eC?EdF$dS? zHxeT$#r0ue-NnQ@L%txZm6mtC>bM$&T&@IGQ>T!{#>YSTMCCfHT!ES)SGv^{0-&sb z>>@3V1a1B){IRTXSRar|%__OTq&J;jmX@yBOPi;Otfy*kLrJin)ESDj0DdSLO4+Kr zBWtOcbf+Bt=DXJeW$Wzh7C8*r9g{F9VkjuTN1byy#C3pkNQyG!$cK2*Nl1qy*MyBU zxrT_a7~`V=v3VV3fV=={6VGMib4-zb8BwkX6W0-zV>o_i_XP6J{qx`Bm;=A4NBqWh z_>p(y3-WWykL634DwOjAReno>IFu9Fw{8*%$)Z9R*k0O}BiK#ApYq|5w=GLxDnYtn zlkKz}!$Bh|tnA{5e?d}_2l<6#-YUwR`^R;D43w|0CdfP5?pi=o!U}}4Emi2K7%r}t zg9xv)!tuY3`iJ5|I2^;mVi@S3ATKsKV`5um1z|y6zC|owDM^K5`J^&LmV<0jM$CQY zE7qs|0<}S8k zj^6^DM;hg{L6u(_gz=jLgcIbHkrc0Vu>oE&zX>tb)=n|R3o=p~W;N*;&L++o`bkc; zp`XsfaUErhb9eRM2p8Zw5Wl~jK>m68)&r}p(~^W$Mr0HU6#@qkfGQGV1Obt8_K%gaNDBEJANquUm5gv*tR0d4BzN zA<7WtS!c#RR z4=;~98g~o6|2XGZcMxbUr#RN-7bu_S*KY?R|0v7bRVMOWww+flsM_8rBN zBmXE*-Q_w<`Qq4EkNh0u=hq_2i2BVqI2P zSN4?=u61tLaz0$FcYrdOAA0Y5?@u@0c#{;g&A;3{H!n-4H*MR#BON$+AWfc|G^KM; zCjS@%2y!rm%{mI;93o<9XUi;h?lfx((t^|oAC9o)>)bES%g3c0<)Y&SkM7)M;hsq%|+(k5?6iupDi=P``U+bXWZfjEN5t1N%Qa2{bf zC(NdeZE2&1c5RYJtiLM{|7_x%;UDBAlCyZ6>uC8f?6YG*Qbic@kGU%=3pY=>Si0aA zRijM3Y_40mA80slu*R-kthIc#IxaJrWfN8?#7dx|EEy+PuqZWT<(3l83Cs49k}}66 zJn?D-R&>Oel)qdIA0zD?ZXwO4&0DsLPbp zWJa1Hw<-{yFpw^U71#MO4~Gjxx>!w+Jad06M1`an_CZoXR1r4XDcUS|IU;ZB!%z=0 zqA2)B_$ZIZg|v`CF+9W?mbGOTF=SPc6z9k(j^x3y=4u30Z_Ev1ax!H`0eRHz3Z6SU zgKgG7>#N?4glhX?Pp0X~sWgAVKb~4v`T&#cx8LzD+p8U=*7V<&p*nagLsfrS65$(&usD1I(|+@)T>?(a|O}(2ONsuAgZ`lb@@HWD&ko<9fPRi znw=N)zg>eWxmmdEx{Um{kPCjfjII?>rnQ!9vG|J;7FbG{>j78NjIgM*yy~3{qGG7$ zWQB`GmvlBrYkJBz?T4_Y&QF@3f8n{hqXQIhSfumryWf+BhBu3}j;A-@Je*#A_2twp zzn9BSZ$tQC3g0T2{G#v-1FcxT?m_{RmUlX#znA;V5G` zIykbU{E!xNN%%*H0=M0Eo6WgZrJr}aJkKgbd7~VG{5*&%2kE+nB+Ezn)h4**&=Fp6 zzi`3HHsoIh#MIN>pSskB`3iL`F4D3+(Bzzu{G4OMiuACS_$z*op&winadXEH9CE7) z#Cbj3Lf{{=i7;F@3!lsJS^;HRZMhbUwoCj%j>pZ@~OuGm1SXu3#*DuoMcw|5*tv-72Z%<}NL z46ij*^}XeyS-qA;SgRH8O5h4?XJ+cN{)!6QG6s>CFBq*43;AXnljVFaX;MQ#)=yz2 z@R3sdSV-E;x}pwIkH&NFB)pE%+uLWK70c7`GP<~k!#TrIEWI-F^m9ah;lgjVsA||M zza07RoYT>x9L;Q-=-9H)$xx za228fcH=6nZ3t^x)-}43gS4=wdV2cpeNwDt=JRk&zSoFH#Zzf(Ww!Dz@UsLh-P#b* z2x}qXfruB#&jVF{iy`C_2)SL0$lG+KXclK#gayjNUvE%AFC#}MEBr2A^bX~(=14iE zpf-^!a>61Q9UYMyli!qCTYTW4nPTMrah@N`=W!jV@(Wajjbk3KS-91r*cgZ#HDl>PJglxZpXmE-4iS`4dEhUK7{Yy#zLP_ARd!+Cl< zP4h69FLR`h{vd#Qa0HPyb5^W-!piFC=(eYP3=JVN=Csfap7`>f=RB`vF`s2*g-#%w zdU||~nmyI~`ekKlxX&lEI*b5C$_xvOvXiq1d)Cofh}HtL}~qO4KRKz@ETfWAbY zx$fW>*ZKL?#7cE^u`;e`4(m#Tf>JpYF(!l0j+{-WPo7F6Bd6u(A5kqMDu^QU7X5~e zZL+wS(`fucGw0#rx~8a${FWnrZ-(`f)p8Zq@yX;q%CD-mCm{xwU`N)fx zc(UhKP&mT5MdgIVwz~syD~lZ&7#7OHB2TxLfR{b$7Ig}kzy8(cvw(Sd__rHny`jALMSbk|qP*p> zR|>1q(Pm}4W-KhMDejhM&YVt%55JjCojfVR8nah!RQe)RBTzK%ynOMd+wPit=Bw3| zbz*!X9e?XBrOEE0jl%=r%H4RL|IRV5bNDZY2-8g1OEuhT6==OkE3ZE&pXb*gzYZBf zHdVmitJk=kfjE#xYb&3+-(;`O*yOs>W4K7TaNNi)+Dq!Ps){}Md1<+;vnREy?MaI; zwr#bDiaD;ixoHcBuJ|_q2UD+owMK-+5(iec>o*%_X7!2lD2HDa|7YR;ApqIsWe(Y2 zZA3dR2hGA=Lxjbypp)r@i0a^h*VD=4C!}z*l?7)pvMxaefumD#bO;r9(Fsjlt!#xg`W5ar9u83a;Q_QlAhStBh5 z(xW`9iMv>v=5+)nlftk38^DkBASOTe32j~I97%c{+DNS}QepyKVF<6H6UVj`7FqEI zf(`$4O&Zh<{lHrChc7;#i642Q11wd*N@6aHPq^{@Nj?tZ@0R)|kG(y7VoMg52&<=? z&G~$8%<_>Au=pG(1#WKwk0cjJ=#J!r`4h{5Ypg zafFRLks)Meb6Rq-&lw;ctT(p84$F$yb?hS&v~f|k1$DHV{KE&b$?FBm$19Ds=y+h` zTJ;ogL~NQt%)^Bc@`W#Lw%5<(*5!#L+XYeY<%`&V@{CvJ`k16bp$M%t`seU|CFT3nWWfsd^jO zO{CEQbitOsC@-_TWL05V*_#ixE^FG3Zq3EbPz2TP%Ngv0rR;wt;$t`%`79-qf9Pmd zzpGjAwd(&hMOZ*;Zpyel zvTXjtUuL#+XeIsQ{XsjmIjc}$5e?n(GWAz}SOBFtt!BtOb-9BFn)zQXc&(%el66>6 z9FYy@L0%zmmw98E@r&?zSiloKcF#cG_V$9VIr`At^9t9-#Jk!q@<-%BP)wxTcOZ?N z>YF55e){9ck_Rj)UpnFBYW_-(wOkNY&B9`GpL`1vjq?8g303V_dFNRtgkIoQtM@Hm z`tt8tOzvvUK%>8%pmHcF%N$OhI-TBp^Nn=&%t=$o94H>-cHQ3nX?S=@*PASi-@Sc7 zq&+#3@{f*;rm?ZJN;?)R(paTCZA(}axcUle$`dZGL0+El3zW;6qa1cU;B{Jf1bNxv zXqhuL!ixG+-j$Rq($D3`IsSQCT;soSqwkzx1hZ+QmBD_4d@|xA9`R!XN1GF4E=$Bl ze8Tt;(8$VRGu6U2~)A?(Vav$+Zc05tj`K^;;0_J6MR7=)g)qyDSIg{LRAh z)5b@iIf&HkxAg+)hbv#>u#}iAwYjZ9{P%MrpxF1ZW8GRlop6=ppUb+md)9w8Gt zWZp3wEDFg^7Y*S7WsGx<;Ue6I4Q|PVU;J+26RXEL!;->s!s_i1$*3(h@|zFAeHlZW zwUb#tYG3=Xtt~ZBc|}aL9rK#ZIn^e|vrK|ZXY#bvVM{08jkBG zgRGHrWJr2JN@WtN6Kw2(rQw@MjGI>tN}If~vTP1ZZjP;oc=7$BtgAv_xH+*~12-@T zi+mz|%IRf&2UWNdvLVgT%Vwzhy@9a6QiWUZ!js-g(j+Vj>yz?bsjsi!-p2R&4S(_! zVBTbGY|Pf>prE#9OA238QieiGi#s~XYzp1U)+23Fb~>S3Svhhc#`$7?`ETouD!Jho z^$S>COJTXDY*D(rlzAtPc=>g`PDWJ?b>w#=8P;K8y(t7kam!1h^rw3oo?qgr;6?qc z@FJv`YcxVCNQ`6TPdoUov;Kq-lCqbd)#kA$8vCH}0`$x*i$$5E^f^#oX3w{lK^I7$ z{KCD1tBvwv7!y;qRBNMuim-V0$qQik^=T{2$uu?KaiZQg~%KVl8WqvDMpnM(m##M$j zDwH4T74?UN%#VLXaOzu6gCjo^j{q)LhIa0lJBmqnU$}`sB4hrEw(`~N{>FlBB_wjP z*KPPR62IZk(?f`?Sa-$KNOH4vcMJi$du(BG?1AM=8Jw)5&GY)cgT+zSkF|odR@zT$ zPYD}9!K~>QVm%AJo|OmO`LVDV2A({5G95d5SR}=3IrU*3d7`LWHg8M2_Uy4qeCAZ> zB=Pw$C#a%h&}l?|EK(gEJ7d=Ygk2W+)gY<>(jzz7F?NPs#XogJtLNqHVMGr6@?(Ia zd->~ih`1cXF^5G)_FD^@1k&cEikk$f+V4gAI6@+vM}C2jsSN|I zU3@5rB@L1B@-yMF>e%p)g~Sa1?344wFfbd~DRZroAE} zg|;D#{>;iMtOPp56k9KAxWSgo2-rL4!iK8yyHY@Elol)MvMxB{Y4Q|NvBQB81J@-` z&gifa2FE#bPkgRF{POrUKlO9Bq7rLKQVHx2ag(F6QJNyA_D)$-ZdEZ1v_+ykdCbTv z=F7@;dk0G+^gCp?9{Rr0G+Ms+rLRiYn=~8+(_b^JSEDyegUYNneH5GF0z*JvfIf2M z%``DSYGjkA$@$Rm7TY3upnt%AXXn!K(Xli>K4!$m?f}h5DnL4PP>_dRk46m?>sl=@ zQsuLWoacF$uK{JCOgSKsvPEMgls4IQ9kM)aiHFz2(!E^Y*&y;`@}0RU&PlhmwZjM^ zK-!U?kr#x;u^663dI1}NQf^tjG4x~Z%B{KLw?fWL?%Rh_JKHt%D=aEryGQWe>BlKY{DC=Yu8uLl%{{s^^w(izx#%llo002ovPDHLkV1lQetyKU3 literal 0 HcmV?d00001 diff --git a/public/images/oat.png b/public/images/oat.png new file mode 100644 index 0000000000000000000000000000000000000000..fe62b215f9c4a808093afcf98736e25be5022f29 GIT binary patch literal 84174 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 *fF(2Y_$S8deG7 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 z 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 {

diff --git a/src/modules/WizardStep.jsx b/src/modules/WizardStep.jsx index 3f0aad1..4553dca 100644 --- a/src/modules/WizardStep.jsx +++ b/src/modules/WizardStep.jsx @@ -15,12 +15,20 @@ import { parseExpression } from './parser.js' const { Step } = Steps; const Defaults = { - PowerRating: { BY: 150, N9: 900, N8: 900, N49: 400, N48: 400 }, + PowerRating: { BY: 150, N9: 1800, N8: 1800, N49: 400, N48: 400 }, PowerUtilization: { BY: 100, N9: 90, N8: 90, N49: 90, N48: 90 }, HoldPercentage: { BY: 0, N9: 10, N8: 10, N49: 10, N48: 10 }, Speed: { BY: 400, N9: 1200, N8: 1200, N49: 1200, N48: 1200 }, Acceleration: { BY: 600, N9: 3000, N8: 3000, N49: 3000, N48: 3000 }, + RASlewMicrostepping: { BY: 1, N9: 8, N8: 16 }, + RATrackMicrostepping: { BY: 1, N9: 256, N8: 256 }, + DECSlewMicrostepping: { BY: 1, N9: 8, N8: 16 }, + DECGuideMicrostepping: { BY: 1, N9: 256, N8: 256 }, FocuserMicrostepping: { BY: 1, N9: 8, N8: 8, N49: 8, N48: 8 }, + AZALTMicrostepping: { BY: 1, N9: 16, N8: 16 }, + OAMSpeed: { N9: 2.0, N8: 2.0 }, + OAMAcceleration: { N9: 2.0, N8: 2.0 }, + OAMMicrostepping: { N9: 64, N8: 64 }, } function WizardException(message) { @@ -48,7 +56,7 @@ const WizardStep = (props) => { const getDefaultValue = (val) => { if (typeof val === 'string') { if (val.startsWith('{') && val.endsWith('}')) { - const words = val.substr(1, val.length - 2).split('.'); + const words = val.substring(1, val.length - 1).split('.'); // console.log("Need default value for: " + val + ", Words are: ", words) const config = configuration.find(v => v.variable === words[2]) // console.log("config is ", config) @@ -132,13 +140,14 @@ const WizardStep = (props) => { const shouldSkipStep = (index) => { let startIndex = index; let skip = true; - // if (index < stepProps.length){ - // console.log(`Should we skip step ${index}: ${stepProps[index].variable}?`) + // if (index < stepProps.length) { + // console.log(`* Should we skip step ${index}: ${stepProps[index].id} - ${stepProps[index].variable}?`) // } while (index < stepProps.length) { skip = false; let nextStep = stepProps[index]; if (nextStep.condition) { + // console.log(`> Check ${nextStep.id}: Condition is [${nextStep.condition}]`) const expr = parseExpression(nextStep.condition) const exprResult = evaluateExpression(expr); if (exprResult.status === 'skip') { @@ -147,32 +156,30 @@ const WizardStep = (props) => { else { skip = !exprResult.bool; } + // console.log(`> Evaluation result says: ${skip ? 'skip' : 'dont skip'}. ExprTree is:`, expr) } - else { - if (nextStep.condition) { - let result = true; - nextStep.condition.forEach(cond => { - const neededKeys = cond.neededKeys.split(','); - const conf = configuration.find(config => config.variable === cond.variable); - if (!conf || (neededKeys.indexOf(conf.value) === -1)) { - result = false; - } - }); - - if (!result) { - skip = true; - } - } + if (nextStep.immediateValue && !configuration.find(c => c.variable === nextStep.variable)) { + let newConfiguration = configuration.filter(config => config.variable !== nextStep.variable) + newConfiguration = [...newConfiguration, { variable: nextStep.variable, value: nextStep.immediateValue }] + setConfiguration(newConfiguration); + skip = true; } if (!skip) { + // console.log(`*>Dont skip ${index}: ${stepProps[index].id} `) return { skip: startIndex !== index, nextIndex: index, atEnd: false }; } else { + // console.log('> Skipping to next') index++; } } // console.log("Should we skip : " + (startIndex !== index)) + // if (index >= stepProps.length) { + // console.log(`*>Skipped to end`) + // } else { + // console.log(`*>Skipped to ${index}: ${stepProps[index].id} `) + // } return { atEnd: index >= stepProps.length, skip: startIndex !== index, nextIndex: index }; } @@ -181,9 +188,11 @@ const WizardStep = (props) => { let nextStepIndex = stepIndex + 1; const newStepHistory = [...stepHistory, stepIndex]; setStepHistory(newStepHistory); - // console.log("history:", newStepHistory); + // console.log(`Advancing from ${stepIndex}`); let res = shouldSkipStep(nextStepIndex); + + // console.log(`Advancing from ${stepIndex} to ${res.nextIndex} -> ${stepProps[res.nextIndex].id}`); setStepIndex(res.nextIndex); if (res.atEnd) { @@ -233,7 +242,21 @@ const WizardStep = (props) => { const onSelect = (index, e) => { let newConfiguration = configuration.filter(config => config.variable !== stepProps[index].variable) - newConfiguration = [...newConfiguration, { variable: stepProps[index].variable, value: e }] + let newVariables = [{ variable: stepProps[index].variable, value: e }] + + const chosenOption = stepProps[index].control.choices.find(c => c.key === e); + if (chosenOption.additionalVariables) { + newVariables = [...newVariables, ...chosenOption.additionalVariables.map((vr) => { + const o = {} + const ov = Object.entries(vr) + o['variable'] = ov[0][0] + o['value'] = ov[0][1] + return o + })] + } + let newConfig = stepProps[index].control.choices.find((v) => { return { key: v.key, value: getDefaultValue(v.defaultValue) || '' } }); + + newConfiguration = [...newConfiguration, ...newVariables] setConfiguration(newConfiguration); setAdvanceStep(!advanceStep); } @@ -250,7 +273,8 @@ const WizardStep = (props) => { // console.log("Next step: ", prop) let newConfig = prop.control.choices.map((v) => { return { key: v.key, value: getDefaultValue(v.defaultValue) || '' } }); let newConfiguration = configuration.filter(config => config.variable !== stepProps[index].variable); - newConfiguration = [...newConfiguration, { variable: prop.variable, value: newConfig }] + let newVariables = [{ variable: prop.variable, value: newConfig }] + newConfiguration = [...newConfiguration, ...newVariables] setConfiguration(newConfiguration); } @@ -284,26 +308,71 @@ const WizardStep = (props) => { const stepProps = [ { - id: 'FW', - title: 'Firmware', - label: 'This version of the Configurator only supports the current latest released version!', - // label: 'Which firmware version are you planning to configure/build:', - variable: 'fwversion', + id: 'TR', + title: 'Tracker', + label: 'For which tracker do you want to generate firmware:', + variable: 'tracker', preamble: [ '/////////////////////////////////////////////////////////////////////////////////////////////////////////', - '// This configuration file was generated by the OAT Configurator at https://config.openastrotech.com for', - '// firmware {v}.', - '// Save this as Configuration_local.hpp in the folder where you placed the firmware code.'], + '// This configuration file was generated by the OAT/OAM Configurator at https://config.openastrotech.com', + '// and is for firmware to be used on a {v}.', + '// Save this as Configuration_local.hpp in the folder where you placed the firmware code.', + '/////////////////////////////////////////////////////////////////////////////////////////////////////////', + '/////////////////////////////////////////////////////////////////////////////////////////////////////////', + ], + define: '', + control: { + type: 'radioimg', + choices: [ + { key: 'OAT', value: 'OpenAstroTracker', image: '/images/oat.png', defineValue: '' }, + { key: 'OAM', value: 'OpenAstroMount', image: '/images/oam.png', defineLine: '#define OAM' }] + }, + }, + { // OAT + id: 'FWT', + title: 'Firmware', + label: 'Which firmware version are you planning to configure/build:', + variable: 'fwversion', + condition: "$tracker == OAT", define: '', control: { type: 'radioimg', choices: [ - { key: 'O', value: 'Official Versions (V1.11.5 and later)', image: '/images/none.png', defineValue: '' }, + { + key: 'L', value: 'Latest Version (V1.12.x)', image: '/images/none.png', defineValue: '', additionalLines: [ + '// Use the much higher stepper performance the new library.', + '#define NEW_STEPPER_LIB' + ] + }, + { key: 'O', value: 'Official Versions (V1.11.x)', image: '/images/none.png', defineValue: '' }, //{ key: 'B', value: 'Last Official to support 28NYJ-48 (V1.9.30)', image: '/images/none.png', defineValue: '' }, //{ key: 'D', value: 'Latest Develop (V1.10.3x)', image: '/images/none.png', defineValue: '' }, ] }, }, + { // OAM + id: 'FWM', + title: 'Firmware', + label: 'You must use V1.12.x firmware on OAM:', + variable: 'fwversion', + condition: "$tracker == OAM", + define: '', + control: { + type: 'radioimg', + choices: [ + { + key: 'L', value: 'Latest Version (V1.12.x)', image: '/images/none.png', defineValue: '', additionalLines: [ + '// OAM requires the much higher stepper performance of the new stepper library.', + '#define NEW_STEPPER_LIB' + ], + additionalVariables: [{ 'autopa': 'Y' }, { 'autopaversion': '2' }] + }, + // { key: 'O', value: 'Official Versions (V1.11.x)', image: '/images/none.png', defineValue: '' }, + // { key: 'B', value: 'Last Official to support 28NYJ-48 (V1.9.30)', image: '/images/none.png', defineValue: '' }, + // { key: 'D', value: 'Latest Develop (V1.10.3x)', image: '/images/none.png', defineValue: '' }, + ] + }, + }, { id: 'HS', title: 'Hemisphere', @@ -344,10 +413,11 @@ const WizardStep = (props) => { ] }, }, - { - id: 'RS', + { // OAT + id: 'RST', title: 'RA Stepper', label: 'Which stepper motor are you using for RA:', + condition: "$tracker == OAT", variable: 'rastpr', preamble: ['////////////////////////////////', '// RA Stepper configuration ', '// See supported stepper values. Change according to the steppers you are using', '// Using the {v} stepper for RA'], define: 'RA_STEPPER_TYPE', @@ -360,11 +430,42 @@ const WizardStep = (props) => { ] }, }, - { - id: 'RD', + { // OAM + id: 'RSM', + title: 'RA Stepper', + label: 'Which stepper motor are you using for RA:', + condition: "$tracker == OAM", + variable: 'rastpr', + preamble: ['////////////////////////////////', '// RA Stepper configuration (OAM)', '// See supported stepper values. Change according to the steppers you are using', '// Using the {v} stepper for RA'], + postamble: [{ + literal: [ + ] + }], + define: 'RA_STEPPER_TYPE', + control: { + type: 'radioimg', + choices: [ + { + key: 'N9', value: 'NEMA 17, 0.9°/step', image: '/images/nema17.png', defineValue: 'STEPPER_TYPE_ENABLE', + additionalLines: [ + '#define RA_STEPPER_SPR (400 * 9)', + ] + }, + { + key: 'N8', value: 'NEMA 17, 1.8°/step', image: '/images/nema17.png', defineValue: 'STEPPER_TYPE_ENABLE', + additionalLines: [ + '#define RA_STEPPER_SPR (200 * 9)', + ] + }, + ] + }, + }, + { // OAT + id: 'RDO', title: 'RA Driver', label: 'Which driver board are you using to drive the RA stepper motor:', variable: 'radrv', + condition: "$tracker == OAT", preamble: ['// Using the {v} driver for RA stepper motor'], define: 'RA_DRIVER_TYPE', control: { @@ -376,48 +477,82 @@ const WizardStep = (props) => { ] }, }, - { - id: 'RA', + { // OAM - No support for A4988 + id: 'RDM', + title: 'RA Driver', + label: 'Which driver board are you using to drive the RA stepper motor:', + variable: 'radrv', + condition: "$tracker == OAM", + preamble: ['// Using the {v} driver for RA stepper motor'], + define: 'RA_DRIVER_TYPE', + control: { + type: 'radioimg', + choices: [ + { key: 'TU', value: 'TMC2209-UART', image: '/images/tmc2209.png', defineValue: 'DRIVER_TYPE_TMC2209_UART' }, + { key: 'TS', value: 'TMC2209-Standalone', image: '/images/tmc2209.png', defineValue: 'DRIVER_TYPE_TMC2209_STANDALONE' }, + ] + }, + }, + { // OAT + id: 'RAT', title: 'RA Advanced Settings', label: 'These are some advanced settings you may want to override. The defaults are set already. Please only change them if you are sure what they do and what their valid ranges are. Enter the RA stepper specs and desired settings:', variable: 'rapower', - condition: "$radrv == TU", + condition: "($radrv == TU) AND ($tracker == OAT)", preamble: ['// Define some RA stepper motor settings'], define: '', control: { type: 'textinput', choices: [ - { key: 'P', label: 'Power rating in mA', defaultValue: '{Defaults.PowerRating.rastpr}', defineLine: '#define RA_MOTOR_CURRENT_RATING {0} // mA' }, - { key: 'O', label: 'Operating percentage', defaultValue: '{Defaults.PowerUtilization.rastpr}', defineLine: '#define RA_OPERATING_CURRENT_SETTING {0} // %' }, - { key: 'S', label: 'Microstepping while slewing', defaultValue: 16, defineLine: '#define RA_SLEW_MICROSTEPPING {0}' }, - { - key: 'T', label: 'Microstepping while tracking', defaultValue: 256, defineLine: '#define RA_TRACKING_MICROSTEPPING {0}', - additionalLines: [ - '', - '// TMC2209 Stealth Mode (spreadCycle) - When set to 0, tracking is more precise, but noisy (high-pitched sound). When set to 1, they are silent.', - '#define RA_UART_STEALTH_MODE 0', - '', - '// Is it going the wrong way?', - '#define RA_INVERT_DIR 0' - ] - }, + { key: 'P', label: 'Power rating in mA', defaultValue: '{Defaults.PowerRating.rastpr}', defineLine: '#define RA_MOTOR_CURRENT_RATING {0} // mA' }, + { key: 'O', label: 'Operating percentage', defaultValue: '{Defaults.PowerUtilization.rastpr}', defineLine: '#define RA_OPERATING_CURRENT_SETTING {0} // %' }, + { key: 'A', label: 'Acceleration (steps/s/s)', defaultValue: '{Defaults.Acceleration.rastpr}', defineLine: '#define RA_STEPPER_ACCELERATION {0}' }, + { key: 'V', label: 'Maximum Speed (steps/s)', defaultValue: '{Defaults.Speed.rastpr}', defineLine: '#define RA_STEPPER_SPEED {0}' }, + { key: 'S', label: 'Microstepping while slewing', defaultValue: '{Defaults.RASlewMicrostepping.rastpr}', defineLine: '#define RA_SLEW_MICROSTEPPING {0}' }, + { key: 'T', label: 'Microstepping while tracking', defaultValue: '{Defaults.RATrackMicrostepping.rastpr}', defineLine: '#define RA_TRACKING_MICROSTEPPING {0}' }, ] }, + postamble: [{ + literal: [ + '', + '// TMC2209 Stealth Mode (spreadCycle) - When set to 0, tracking is more precise, but noisy (high-pitched sound). When set to 1, they are silent.', + '#define RA_UART_STEALTH_MODE 0', + '', + '// Is it going the wrong way?', + '#define RA_INVERT_DIR 0' + ] + } + ] }, - { - id: 'RMS', - title: 'RA Motion Settings', - label: 'These are some advanced settings for stepper speed you may want to override. The defaults are set already, please only change them if you are sure what they do and what their valid ranges are.', - variable: 'ramotion', + { // OAM + id: 'RAM', + title: 'RA Advanced Settings', + label: 'These are some advanced settings you may want to override. The defaults are set already. Please only change them if you are sure what they do and what their valid ranges are. Enter the RA stepper specs and desired settings:', + variable: 'rapower', + condition: "($radrv == TU) AND ($tracker == OAM)", preamble: ['// Define some RA stepper motor settings'], define: '', control: { type: 'textinput', choices: [ - { key: 'A', label: 'Acceleration (steps/s/s)', defaultValue: '{Defaults.Acceleration.rastpr}', defineLine: '#define RA_STEPPER_ACCELERATION {0}' }, - { key: 'V', label: 'Maximum Speed (steps/s)', defaultValue: '{Defaults.Speed.rastpr}', defineLine: '#define RA_STEPPER_SPEED {0}' }, + { key: 'P', label: 'Power rating in mA', defaultValue: '{Defaults.PowerRating.rastpr}', defineLine: '#define RA_MOTOR_CURRENT_RATING {0} // mA' }, + { key: 'O', label: 'Operating percentage', defaultValue: '{Defaults.PowerUtilization.rastpr}', defineLine: '#define RA_OPERATING_CURRENT_SETTING {0} // %' }, + { key: 'A', label: 'Acceleration (deg/s/s)', defaultValue: '{Defaults.OAMAcceleration.rastpr}', defineLine: '#define RA_SLEWING_ACCELERATION_DEG {0}' }, + { key: 'V', label: 'Maximum Speed (deg/s)', defaultValue: '{Defaults.OAMSpeed.rastpr}', defineLine: '#define RA_SLEWING_SPEED_DEG {0}' }, + { key: 'S', label: 'Microstepping setting', defaultValue: '{Defaults.OAMMicrostepping.rastpr}', defineLine: '#define RA_SLEW_MICROSTEPPING {0}\n#define RA_TRACKING_MICROSTEPPING {0}' }, ] }, + postamble: [{ + literal: [ + '', + '// TMC2209 Stealth Mode (spreadCycle) - When set to 0, tracking is more precise, but noisy (high-pitched sound). When set to 1, they are silent.', + '#define RA_UART_STEALTH_MODE 0', + '', + '// Is it going the wrong way?', + '#define RA_INVERT_DIR 0' + ] + } + ] }, { id: 'RTR', @@ -459,11 +594,12 @@ const WizardStep = (props) => { ] }, }, - { - id: 'DS', + { // OAT + id: 'DST', title: 'DEC Stepper', label: 'Which stepper motor are you using for DEC:', variable: 'decstpr', + condition: "$tracker == OAT", preamble: ['////////////////////////////////', '// DEC Stepper configuration ', '// See supported stepper values. Change according to the steppers you are using', '// Using the {v} stepper for DEC'], define: 'DEC_STEPPER_TYPE', control: { @@ -477,11 +613,44 @@ const WizardStep = (props) => { ] }, }, - { - id: 'DD', + { // OAM + id: 'DSM', + title: 'DEC Stepper', + label: 'Which stepper motor are you using for DEC:', + variable: 'decstpr', + condition: "$tracker == OAM", + preamble: ['////////////////////////////////', '// DEC Stepper configuration ', '// See supported stepper values. Change according to the steppers you are using', '// Using the {v} stepper for DEC'], + postamble: [{ + literal: [ + '#define DEC_WHEEL_CIRCUMFERENCE 816.814f', + ] + } + ], + define: 'DEC_STEPPER_TYPE', + control: { + type: 'radioimg', + choices: [ + { + key: 'N9', value: 'NEMA 17, 0.9°/step', image: '/images/nema17.png', defineValue: 'STEPPER_TYPE_ENABLE', + additionalLines: [ + '#define DEC_STEPPER_SPR (400 * 9)', + ] + }, + { + key: 'N8', value: 'NEMA 17, 1.8°/step', image: '/images/nema17.png', defineValue: 'STEPPER_TYPE_ENABLE', + additionalLines: [ + '#define DEC_STEPPER_SPR (200 * 9)', + ] + }, + ] + }, + }, + { // OAT + id: 'DDT', title: 'DEC Driver', label: 'Which driver board are you using to drive the DEC stepper motor:', variable: 'decdrv', + condition: "$tracker == OAT", preamble: ['// Using the {v} driver for DEC stepper'], define: 'DEC_DRIVER_TYPE', control: { @@ -493,12 +662,28 @@ const WizardStep = (props) => { ] }, }, - { - id: 'DA', + { //OAM - No A4988 + id: 'DDM', + title: 'DEC Driver', + label: 'Which driver board are you using to drive the DEC stepper motor:', + variable: 'decdrv', + condition: "$tracker == OAM", + preamble: ['// Using the {v} driver for DEC stepper'], + define: 'DEC_DRIVER_TYPE', + control: { + type: 'radioimg', + choices: [ + { key: 'TU', value: 'TMC2209-UART', image: '/images/tmc2209.png', defineValue: 'DRIVER_TYPE_TMC2209_UART' }, + { key: 'TS', value: 'TMC2209-Standalone', image: '/images/tmc2209.png', defineValue: 'DRIVER_TYPE_TMC2209_STANDALONE' }, + ] + }, + }, + { // OAT + id: 'DAT', title: 'DEC Advanced Settings', label: 'These are some advanced settings you may want to override. The defaults are set already. Please only change them if you are sure what they do and what their valid ranges are. Enter the DEC stepper specs and desired settings:', variable: 'decpower', - condition: "$decdrv == TU", + condition: "($decdrv == TU) AND ($tracker == OAT)", preamble: ['// Define some DEC stepper motor settings'], define: '', control: { @@ -506,35 +691,53 @@ const WizardStep = (props) => { choices: [ { key: 'P', label: 'Power rating in mA', defaultValue: '{Defaults.PowerRating.decstpr}', defineLine: '#define DEC_MOTOR_CURRENT_RATING {0} // mA' }, { key: 'O', label: 'Operating percentage', defaultValue: '{Defaults.PowerUtilization.decstpr}', defineLine: '#define DEC_OPERATING_CURRENT_SETTING {0} // %' }, - { key: 'S', label: 'Microstepping while slewing', defaultValue: 16, defineLine: '#define DEC_SLEW_MICROSTEPPING {0}' }, - { - key: 'T', label: 'Microstepping while guiding', defaultValue: 256, defineLine: '#define DEC_GUIDE_MICROSTEPPING {0}', - additionalLines: [ - '', - '// TMC2209 Stealth Mode (spreadCycle) - When set to 0, tracking is more precise, but noisy (high-pitched sound). When set to 1, they are silent.', - '#define DEC_UART_STEALTH_MODE 0', - '', - '// Is it going the wrong way?', - '#define DEC_INVERT_DIR 0' - ] - }, + { key: 'A', label: 'Acceleration (steps/s/s)', defaultValue: '{Defaults.Acceleration.decstpr}', defineLine: '#define DEC_STEPPER_ACCELERATION {0}' }, + { key: 'V', label: 'Maximum Speed (steps/s)', defaultValue: '{Defaults.Speed.decstpr}', defineLine: '#define DEC_STEPPER_SPEED {0}' }, + { key: 'S', label: 'Microstepping while slewing', defaultValue: '{Defaults.DECSlewMicrostepping.decstpr}', defineLine: '#define DEC_SLEW_MICROSTEPPING {0}' }, + { key: 'T', label: 'Microstepping while guiding', defaultValue: '{Defaults.DECGuideMicrostepping.decstpr}', defineLine: '#define DEC_GUIDE_MICROSTEPPING {0}' }, ] }, + postamble: [{ + literal: [ + '', + '// TMC2209 Stealth Mode (spreadCycle) - When set to 0, tracking is more precise, but noisy (high-pitched sound). When set to 1, they are silent.', + '#define DEC_UART_STEALTH_MODE 0', + '', + '// Is it going the wrong way?', + '#define DEC_INVERT_DIR 0' + ] + } + ] }, - { - id: 'DMS', - title: 'DEC Motion Settings', + {// OAM + id: 'DAM', + title: 'DEC Advanced Settings', label: 'These are some advanced settings you may want to override. The defaults are set already. Please only change them if you are sure what they do and what their valid ranges are. Enter the DEC stepper specs and desired settings:', - variable: 'decmotion', + variable: 'decpower', + condition: "($decdrv == TU) AND ($tracker == OAM)", preamble: ['// Define some DEC stepper motor settings'], define: '', control: { type: 'textinput', choices: [ - { key: 'A', label: 'Acceleration (steps/s/s)', defaultValue: '{Defaults.Acceleration.decstpr}', defineLine: '#define DEC_STEPPER_ACCELERATION {0}' }, - { key: 'V', label: 'Maximum Speed (steps/s)', defaultValue: '{Defaults.Speed.decstpr}', defineLine: '#define DEC_STEPPER_SPEED {0}' }, + { key: 'P', label: 'Power rating in mA', defaultValue: '{Defaults.PowerRating.decstpr}', defineLine: '#define DEC_MOTOR_CURRENT_RATING {0} // mA' }, + { key: 'O', label: 'Operating percentage', defaultValue: '{Defaults.PowerUtilization.decstpr}', defineLine: '#define DEC_OPERATING_CURRENT_SETTING {0} // %' }, + { key: 'A', label: 'Acceleration (deg/s/s)', defaultValue: '{Defaults.OAMAcceleration.decstpr}', defineLine: '#define DEC_SLEWING_ACCELERATION_DEG {0}' }, + { key: 'V', label: 'Maximum Speed (deg/s)', defaultValue: '{Defaults.OAMSpeed.decstpr}', defineLine: '#define DEC_SLEWING_SPEED_DEG {0}' }, + { key: 'S', label: 'Microstepping setting', defaultValue: '{Defaults.OAMMicrostepping.decstpr}', defineLine: '#define DEC_SLEW_MICROSTEPPING {0}\n#define DEC_GUIDE_MICROSTEPPING {0}' }, ] }, + postamble: [{ + literal: [ + '', + '// TMC2209 Stealth Mode (spreadCycle) - When set to 0, guiding is more precise, but noisy (high-pitched sound). When set to 1, they are silent.', + '#define DEC_UART_STEALTH_MODE 0', + '', + '// Is it going the wrong way?', + '#define DEC_INVERT_DIR 0' + ] + } + ] }, { id: 'DT', @@ -658,6 +861,7 @@ const WizardStep = (props) => { title: 'GPS', label: 'Do you have the GPS add on:', variable: 'gps', + condition: "$tracker == OAT", preamble: ['////////////////////////////////', '// GPS Addon configuration ', '// Define whether we have the GPS addon or not. Currently: {v}'], define: 'USE_GPS', control: { @@ -675,7 +879,7 @@ const WizardStep = (props) => { label: 'Do you have the Digital Level add on:', variable: 'gyro', preamble: ['////////////////////////////////', '// Digital Level Addon configuration ', '// Define whether we have the Digital Level or not. Currently: {v}'], - condition: "$board == M", + condition: "($board == M) AND ($tracker == OAT)", define: 'USE_GYRO_LEVEL', control: { type: 'radioimg', @@ -693,7 +897,7 @@ const WizardStep = (props) => { label: 'Do you have the Digital Level add on:', variable: 'gyromks', preamble: ['////////////////////////////////', '// Digital Level Addon configuration ', '// Define whether we have the Digital Level or not. Currently: {v}'], - condition: "$board == M21", + condition: "($board == M21) AND ($tracker == OAT)", define: 'USE_GYRO_LEVEL', control: { type: 'radioimg', @@ -791,11 +995,13 @@ const WizardStep = (props) => { ] }, }, + ///////////////// AUTO PA { - id: 'AP', + id: 'APT', title: 'Auto Polar Align', label: 'Do you have the AutoPA add on:', variable: 'autopa', + condition: "$tracker == OAT", preamble: ['////////////////////////////////', '// AutoPA Addon configuration ', '// Define whether we have the AutoPA add on or not. Currently: {v}'], define: '', control: { @@ -811,7 +1017,7 @@ const WizardStep = (props) => { title: 'AutoPA Version', label: 'What version of AutoPA do you have installed:', variable: 'autopaversion', - condition: "$autopa == Y", + condition: "($autopa == Y) AND ($tracker == OAT)", preamble: ['// Using AutoPA {v}.'], define: '', control: { @@ -822,12 +1028,12 @@ const WizardStep = (props) => { ] }, }, - { - id: 'ZS', + { // OAT + id: 'ZST', title: 'Azimuth Stepper', label: 'Which stepper motor are you using for the Azimuth:', variable: 'az', - condition: "$autopa == Y", + condition: "($autopa == Y) AND ($tracker == OAT)", preamble: ['// Using the {v} stepper for AZ'], define: 'AZ_STEPPER_TYPE', control: { @@ -839,12 +1045,28 @@ const WizardStep = (props) => { ] }, }, - { - id: 'ZD', + { // OAM + id: 'ZSM', + title: 'Azimuth Stepper', + label: 'Which stepper motor are you using for the Azimuth:', + variable: 'az', + condition: "($autopa == Y) AND ($tracker == OAM)", + preamble: ['// Using the {v} stepper for AZ'], + define: 'AZ_STEPPER_TYPE', + control: { + type: 'radioimg', + choices: [ + { key: 'N9', value: 'NEMA 17, 0.9°/step', image: '/images/nema17.png', defineValue: 'STEPPER_TYPE_ENABLED' }, + { key: 'N8', value: 'NEMA 17, 1.8°/step', image: '/images/nema17.png', defineValue: 'STEPPER_TYPE_ENABLED', additionalLines: ['#define AZ_STEPPER_SPR 200.0f'] }, + ] + }, + }, + { // OAT + id: 'ZDT', title: 'Azimuth Driver', label: 'Which driver board are you using to drive the Azimuth stepper motor:', variable: 'azdrv', - condition: "$autopa == Y", + condition: "($autopa == Y) AND ($tracker == OAT)", preamble: ['// Using the {v} driver for AZ stepper motor'], define: 'AZ_DRIVER_TYPE', control: { @@ -856,6 +1078,22 @@ const WizardStep = (props) => { ] }, }, + { // OAM + id: 'ZDM', + title: 'Azimuth Driver', + label: 'Which driver board are you using to drive the Azimuth stepper motor:', + variable: 'azdrv', + condition: "($autopa == Y) AND ($tracker == OAM)", + preamble: ['// Using the {v} driver for AZ stepper motor'], + define: 'AZ_DRIVER_TYPE', + control: { + type: 'radioimg', + choices: [ + { key: 'TU', value: 'TMC2209-UART', image: '/images/tmc2209.png', defineValue: 'DRIVER_TYPE_TMC2209_UART' }, + { key: 'TS', value: 'TMC2209-Standalone', image: '/images/tmc2209.png', defineValue: 'DRIVER_TYPE_TMC2209_STANDALONE' }, + ] + }, + }, { id: 'ZA', title: 'Azimuth Advanced Settings', @@ -863,18 +1101,39 @@ const WizardStep = (props) => { variable: 'azpower', condition: "$azdrv == TU", preamble: ['// Define AZ stepper motor power settings'], + postamble: [{ + literal: [ + '#define AZ_STEPPER_SPEED 1000', + '#define AZ_STEPPER_ACCELERATION 500', + '', + '', + '///////////////////////////////', + '// AZ parameters will require tuning according to your setup', + '', + '// If you have a custom solution involving a rod you can uncomment and use the next 3 lines for calculations', + '// #define AZ_CIRCUMFERENCE (115 * 2 * 3.1515927) // the circumference of the circle where the movement is anchored', + '// #define AZ_ROD_PITCH 1.0f // mm per full rev of stepper', + '// #define AZIMUTH_STEPS_PER_REV (AZ_CIRCUMFERENCE / AZ_ROD_PITCH * AZ_STEPPER_SPR * AZ_MICROSTEPPING) // Steps needed to turn AZ 360deg', + '', + '// If you have a belt drive solution, you can uncomment and use the next 2 lines for calculations', + '// #define AZ_CIRCUMFERENCE (725) // the circumference of the circle where the movement is anchored', + '// #define AZ_PULLEY_TEETH 16', + '', + '// Should AZ motor stay energized?', + '#define AZ_ALWAYS_ON 1', + '', + '// Is it going the wrong way?', + '#define AZ_INVERT_DIR 0' + ] + }], define: '', control: { type: 'textinput', choices: [ { key: 'P', label: 'Power rating in mA', defaultValue: '{Defaults.PowerRating.az}', defineLine: '#define AZ_MOTOR_CURRENT_RATING {0} // mA' }, { key: 'O', label: 'Operating percentage', defaultValue: '{Defaults.PowerUtilization.az}', defineLine: '#define AZ_OPERATING_CURRENT_SETTING {0} // %' }, - { key: 'H', label: 'Hold current percentage (0 to power down)', defaultValue: '{Defaults.HoldPercentage.az}', defineLine: '#define AZ_MOTOR_HOLD_SETTING {0} // %', - additionalLines: [ - '', - '// Is it going the wrong way?', - '#define AZ_INVERT_DIR 0' - ]}, + { key: 'S', label: 'Microstepping setting', defaultValue: '{Defaults.AZALTMicrostepping.az}', defineLine: '#define AZ_MICROSTEPPING {0} // steps' }, + { key: 'H', label: 'Hold current percentage (0 to power down)', defaultValue: '{Defaults.HoldPercentage.az}', defineLine: '#define AZ_MOTOR_HOLD_SETTING {0} // %' }, ] }, }, @@ -883,7 +1142,7 @@ const WizardStep = (props) => { title: 'Azimuth Always On', label: 'It is possible to keep the azimuth motor energized at all times to prevent any shifting in position. This is not necessarily needed for 28BYJ motors, however it is recommended for NEMAs when using AutoPA V2.0.', variable: 'azalwayson', - condition: "$autopa == Y", + condition: "($autopa == Y) AND ($tracker == OAT)", preamble: ['// Define AZ always-on'], define: 'AZ_ALWAYS_ON', control: { @@ -894,12 +1153,12 @@ const WizardStep = (props) => { ] }, }, - { - id: 'LS', + { // OAT + id: 'LST', title: 'Altitude Stepper', label: 'Which stepper motor are you using for the Altitude:', variable: 'alt', - condition: "$autopa == Y", + condition: "($autopa == Y) AND ($tracker == OAT)", preamble: ['// Using the {v} stepper for ALT'], define: 'ALT_STEPPER_TYPE', control: { @@ -911,12 +1170,28 @@ const WizardStep = (props) => { ] }, }, - { - id: 'LD', + { // OAM + id: 'LSM', + title: 'Altitude Stepper', + label: 'Which stepper motor are you using for the Altitude:', + variable: 'alt', + condition: "($autopa == Y) AND ($tracker == OAM)", + preamble: ['// Using the {v} stepper for ALT'], + define: 'ALT_STEPPER_TYPE', + control: { + type: 'radioimg', + choices: [ + { key: 'N9', value: 'NEMA 17, 0.9°/step', image: '/images/nema17.png', defineValue: 'STEPPER_TYPE_ENABLED' }, + { key: 'N8', value: 'NEMA 17, 1.8°/step', image: '/images/nema17.png', defineValue: 'STEPPER_TYPE_ENABLED', additionalLines: ['#define ALT_STEPPER_SPR 200.0f'] }, + ] + }, + }, + { // OAT + id: 'LDT', title: 'Altitude Driver', label: 'Which driver board are you using to drive the Altitude stepper motor:', variable: 'altdrv', - condition: "$autopa == Y", + condition: "($autopa == Y) AND ($tracker == OAT)", preamble: ['// Using the {v} driver for ALT stepper motor'], define: 'ALT_DRIVER_TYPE', control: { @@ -928,6 +1203,22 @@ const WizardStep = (props) => { ] }, }, + { // OAM + id: 'LDM', + title: 'Altitude Driver', + label: 'Which driver board are you using to drive the Altitude stepper motor:', + variable: 'altdrv', + condition: "($autopa == Y) AND ($tracker == OAM)", + preamble: ['// Using the {v} driver for ALT stepper motor'], + define: 'ALT_DRIVER_TYPE', + control: { + type: 'radioimg', + choices: [ + { key: 'TU', value: 'TMC2209-UART', image: '/images/tmc2209.png', defineValue: 'DRIVER_TYPE_TMC2209_UART' }, + { key: 'TS', value: 'TMC2209-Standalone', image: '/images/tmc2209.png', defineValue: 'DRIVER_TYPE_TMC2209_STANDALONE' }, + ] + }, + }, { id: 'LA', title: 'Altitude Advanced Settings', @@ -941,21 +1232,33 @@ const WizardStep = (props) => { choices: [ { key: 'P', label: 'Power rating in mA', defaultValue: '{Defaults.PowerRating.alt}', defineLine: '#define ALT_MOTOR_CURRENT_RATING {0} // mA' }, { key: 'O', label: 'Operating percentage', defaultValue: '{Defaults.PowerUtilization.alt}', defineLine: '#define ALT_OPERATING_CURRENT_SETTING {0} // %' }, - { key: 'H', label: 'Hold current percentage (0 to power down)', defaultValue: '{Defaults.HoldPercentage.alt}', defineLine: '#define ALT_MOTOR_HOLD_SETTING {0} // %', - additionalLines: [ - '', - '// Is it going the wrong way?', - '#define ALT_INVERT_DIR 0' - ]}, + { key: 'S', label: 'Microstepping setting', defaultValue: '{Defaults.AZALTMicrostepping.alt}', defineLine: '#define ALT_MICROSTEPPING {0} // steps' }, + { key: 'H', label: 'Hold current percentage (0 to power down)', defaultValue: '{Defaults.HoldPercentage.alt}', defineLine: '#define ALT_MOTOR_HOLD_SETTING {0} // %' }, ] }, + postamble: [{ + condition: '$tracker == OAM', + literal: [ + '#define ALT_STEPPER_SPEED 3000', + '#define ALT_STEPPER_ACCELERATION 1000', + '', + '///////////////////////////////', + '// ALT parameters are for hardware as designed', + '#define ALT_MICROSTEPPING 64', + '#define ALTITUDE_STEPS_PER_ARC_MINUTE ((1640 / 60) * ALT_MICROSTEPPING)', + '', + '// Is it going the wrong way?', + '#define ALT_INVERT_DIR 0' + ] + } + ] }, { id: 'LAO', title: 'Altitude Always On', label: 'It is possible to keep the altitude motor energized at all times to prevent any shifting in position. This is usually not needed.', variable: 'altalwayson', - condition: "$autopa == Y", + condition: "($autopa == Y) AND ($tracker == OAT)", preamble: ['// Define ALT always-on'], define: 'ALT_ALWAYS_ON', control: { @@ -966,31 +1269,131 @@ const WizardStep = (props) => { ] }, }, + //////////////////// HALL Sensors /////////////////////////// { - id: 'AH', - title: 'RA Auto Home', - label: 'Do you have the Hall sensor-based RA AutoHome add on:', - variable: 'hallhome', + id: 'RAH', + title: 'RA Auto Home via Hall sensors', + label: 'Do you have the Hall sensor-based AutoHome add ons installed on the RA axis:', + variable: 'hallhomera', condition: "$board IN [M,M21]", - preamble: ['////////////////////////////////', '// Is the RA Auto Home addon installed'], + preamble: ['////////////////////////////////', '// Auto Homing addons'], define: 'USE_HALL_SENSOR_RA_AUTOHOME', - postamble: [{ - condition: '$hallhome == 1', - literal: [ - '', - '// If your Hall sensor is not on the default pin (53 on MKS & RAMPS), uncomment and change the following line', - '// #define RA_HOMING_SENSOR_PIN 53', - ] - } - ], control: { type: 'radioimg', choices: [ - { key: 'N', value: 'No Hall sensor homing', image: '/images/none.png', defineValue: '0' }, + { key: 'N', value: 'No RA Hall sensor homing', image: '/images/none.png', defineValue: '0' }, { key: 'Y', value: 'RA Homing Hall sensor installed', image: '/images/none.png', defineValue: '1' }, ] }, }, + { + id: 'RAHA', + title: 'RA Auto Home Settings', + label: 'What settings would you like to use for the RA homing sensor:', + variable: 'hallhomerasettings', + condition: "$hallhomera == Y", + define: '', + control: { + type: 'textinput', + choices: [ + { key: 'P', label: 'Pin that sensor is attached to', defaultValue: '27', defineLine: '#define RA_HOMING_SENSOR_PIN {0}' }, + { key: 'S', label: 'Number of degrees to search for sensor', defaultValue: '10', defineLine: '#define RA_HOMING_SENSOR_SEARCH_DEGREES {0}' }, + ] + }, + }, + { + id: 'DAH', + title: 'DEC Auto Home via Hall sensors', + label: 'Do you have the Hall sensor-based AutoHome add ons installed on the DEC axis:', + variable: 'hallhomedec', + condition: "$board IN [M,M21]", + define: 'USE_HALL_SENSOR_DEC_AUTOHOME', + control: { + type: 'radioimg', + choices: [ + { key: 'N', value: 'No DEC Hall sensor homing', image: '/images/none.png', defineValue: '0' }, + { key: 'Y', value: 'DEC Homing Hall sensor installed', image: '/images/none.png', defineValue: '1' }, + ] + }, + }, + { + id: 'DAHA', + title: 'DEC Auto Home Settings', + label: 'What settings would you like to use for the DEC homing sensor:', + variable: 'hallhomedecsettings', + condition: "$hallhomedec == Y", + define: '', + control: { + type: 'textinput', + choices: [ + { key: 'P', label: 'Pin that sensor is attached to', defaultValue: '29', defineLine: '#define DEC_HOMING_SENSOR_PIN {0}' }, + { key: 'S', label: 'Number of degrees to search for sensor', defaultValue: '10', defineLine: '#define DEC_HOMING_SENSOR_SEARCH_DEGREES {0}' }, + ] + }, + }, + { // OAM + id: 'RESM', + title: 'RA End switches', + label: 'Do you have end switches installed on the RA axis:', + variable: 'endswra', + preamble: ['////////////////////////////////', '// End Switch addons'], + condition: "$tracker == OAM", + define: 'USE_RA_END_SWITCH', + control: { + type: 'radioimg', + choices: [ + { key: 'N', value: 'No RA end switches installed', image: '/images/none.png', defineValue: '0' }, + { key: 'Y', value: 'RA end switches are installed', image: '/images/none.png', defineValue: '1' }, + ] + }, + }, + { // OAM + id: 'RESMA', + title: 'RA End switch settings', + label: 'What settings do you want to use for the RA end switches:', + variable: 'endswraadv', + condition: "$endswra == Y", + define: '', + control: { + type: 'textinput', + choices: [ + { key: 'E', label: 'East direction pin that sensor is attached to', defaultValue: '19', defineLine: '#define RA_ENDSWITCH_EAST_SENSOR_PIN {0}' }, + { key: 'W', label: 'West direction pin that sensor is attached to', defaultValue: '18', defineLine: '#define RA_ENDSWITCH_WEST_SENSOR_PIN {0}' }, + { key: 'D', label: 'How many degrees should the mount slew back to get off the switches', defaultValue: '3.0', defineLine: '#define RA_ENDSWITCH_BACKSLEW_DEG {0}' }, + ] + }, + }, + { // OAM + id: 'DESM', + title: 'DEC End switches', + label: 'Do you have end switches installed on the DEC axis:', + variable: 'endswdec', + condition: "$tracker == OAM", + define: 'USE_DEC_END_SWITCH', + control: { + type: 'radioimg', + choices: [ + { key: 'N', value: 'No DEC end switches installed', image: '/images/none.png', defineValue: '0' }, + { key: 'Y', value: 'DEC end switches are installed', image: '/images/none.png', defineValue: '1' }, + ] + }, + }, + { // OAM + id: 'DESMA', + title: 'DEC End switch settings', + label: 'What settings do you want to use for the DEC end switches:', + variable: 'endswdecadv', + condition: "$endswdec == Y", + define: '', + control: { + type: 'textinput', + choices: [ + { key: 'E', label: 'Up direction pin that sensor is attached to', defaultValue: '32', defineLine: '#define DEC_ENDSWITCH_UP_SENSOR_PIN {0}' }, + { key: 'W', label: 'Down direction pin that sensor is attached to', defaultValue: '47', defineLine: '#define DEC_ENDSWITCH_DOWN_SENSOR_PIN {0}' }, + { key: 'D', label: 'How many degrees should the mount slew back to get off the switches', defaultValue: '3.0', defineLine: '#define DEC_ENDSWITCH_BACKSLEW_DEG {0}' }, + ] + }, + }, ]; @@ -1015,7 +1418,9 @@ const WizardStep = (props) => { } // Collect all variables if (allVars.has(stepProps[i].variable)) { - throw new WizardException("Variable " + stepProps[i].variable + " defined twice. Second on in " + i); + if (!stepProps[i].condition) { + throw new WizardException("Variable " + stepProps[i].variable + " defined twice. Second one in step " + i); + } } allVars.add(stepProps[i].variable) } @@ -1050,11 +1455,13 @@ const WizardStep = (props) => { if (index < stepIndex) { let foundConfig = configuration.find(config => config.variable === stepProps[index].variable); if (foundConfig && !Array.isArray(foundConfig.value)) { - let foundControl = stepProps[index].control.choices.find(choice => foundConfig.value === choice.key); - if (!foundControl) { - console.log("Could not find control ", foundConfig) - } else { - description = foundControl.value; + if (stepProps[index].control) { + let foundControl = stepProps[index].control.choices.find(choice => foundConfig.value === choice.key); + if (!foundControl) { + console.log("Could not find control ", foundConfig) + } else { + description = foundControl.value; + } } } } @@ -1065,7 +1472,7 @@ const WizardStep = (props) => { } if ((!skipState.skip) || (index <= stepIndex)) { - steps.push() + steps.push() } }); @@ -1078,75 +1485,108 @@ const WizardStep = (props) => { if (configKey.length) { configKey += ',' } - let property = stepProps.find(prop => prop.variable === config.variable); + + let property + let properties = stepProps.filter(prop => prop.variable === config.variable); + if (properties.length === 1) { + property = properties[0] + } else { + properties.forEach((prop) => { + let skip = false + const expr = parseExpression(prop.condition) + const exprResult = evaluateExpression(expr); + if (exprResult.status === 'skip') { + skip = true; + } + else { + skip = !exprResult.bool; + } + if (!skip) { + if (property) { + throw new WizardException("More than one property satisfies condition [" + prop.condition + "]. " + properties.map(p => p.id).join(', ')) + } + property = prop + } + }) + } + let defineLine = null; configKey += property.id - if (property.control.type === 'textinput') { - if (property.preamble) { - defines = [...defines, ...property.preamble]; - } - property.control.choices.forEach(choice => { - let configVal = config.value.find(cfgval => cfgval.key === choice.key); - let val = (configVal ? configVal.value : null) || getDefaultValue(choice.defaultValue) || ''; - configKey += choice.key + val + ':' - defineLine = choice.defineLine.replace('{0}', val); - defines = [...defines, defineLine]; - if (choice.additionalLines) { - defines = [...defines, ...choice.additionalLines]; + if (property.control) { + if (property.control.type === 'textinput') { + if (property.preamble) { + defines = [...defines, ...property.preamble]; } - }) - if (property.postamble) { - const postLines = [] - property.postamble.forEach(entry => { - let output = true - if (entry.condition) { - const expr = parseExpression(entry.condition) - const exprResult = evaluateExpression(expr); - if (exprResult.bool === false) { - output = false - } + property.control.choices.forEach(choice => { + let configVal = config.value.find(cfgval => cfgval.key === choice.key); + let val = (configVal ? configVal.value : null) || getDefaultValue(choice.defaultValue) || ''; + configKey += choice.key + val + ':' + defineLine = choice.defineLine.replace('{0}', val); + while (defineLine.indexOf('{0}') >= 0) { + defineLine = defineLine.replace('{0}', val); } - if (output && entry.literal) { - postLines.push(...entry.literal) + const defineLines = defineLine.split('\n') + defines = [...defines, ...defineLines]; + if (choice.additionalLines) { + defines = [...defines, ...choice.additionalLines]; } }) - defines = [...defines, ...postLines]; - } - } - else { - let propertyValue = property.control.choices.find(choice => choice.key === config.value); - configKey += ':' + propertyValue.key - if (property.preamble) { - defines = [...defines, ...(property.preamble.map((pre) => pre.replace('{v}', propertyValue.value)))]; - } - if (property.define) { - defines = [...defines, '#define ' + property.define + ' ' + propertyValue.defineValue]; - } - if (propertyValue.additionalLines) { - defines = [...defines, ...propertyValue.additionalLines]; + if (property.postamble) { + const postLines = [] + property.postamble.forEach(entry => { + let output = true + if (entry.condition) { + const expr = parseExpression(entry.condition) + const exprResult = evaluateExpression(expr); + if (exprResult.bool === false) { + output = false + } + } + if (output && entry.literal) { + postLines.push(...entry.literal) + } + }) + defines = [...defines, ...postLines]; + } } - if (property.postamble) { - const postLines = [] - property.postamble.forEach(entry => { - let output = true - if (entry.condition) { - const expr = parseExpression(entry.condition) - const exprResult = evaluateExpression(expr); - if (exprResult.bool === false) { - output = false + else { + let propertyValue = property.control.choices.find(choice => choice.key === config.value); + configKey += ':' + propertyValue.key + if (property.preamble) { + defines = [...defines, ...(property.preamble.map((pre) => pre.replace('{v}', propertyValue.value)))]; + } + if (property.define) { + defines = [...defines, '#define ' + property.define + ' ' + propertyValue.defineValue]; + } + if (propertyValue.defineLine) { + defines = [...defines, propertyValue.defineLine]; + } + if (propertyValue.additionalLines) { + defines = [...defines, ...propertyValue.additionalLines]; + } + if (property.postamble) { + const postLines = [] + property.postamble.forEach(entry => { + let output = true + if (entry.condition) { + const expr = parseExpression(entry.condition) + const exprResult = evaluateExpression(expr); + if (exprResult.bool === false) { + output = false + } } - } - if (output && entry.literal) { - postLines.push(...entry.literal.map(e => e.replace('{v}', propertyValue.defineValue))) - } - }) - defines = [...defines, ...postLines]; + if (output && entry.literal) { + postLines.push(...entry.literal.map(e => e.replace('{v}', propertyValue.defineValue))) + } + }) + defines = [...defines, ...postLines]; + } } } defines = [...defines, '']; }); - defines.splice(4, 0, '// Unique ConfigKey: ' + configKey); + defines.splice(5, 0, '// Unique ConfigKey: ' + configKey); defines.push('///////////////////////'); defines.push('// Debug settings'); @@ -1156,7 +1596,7 @@ const WizardStep = (props) => { return
- + {steps}
@@ -1184,58 +1624,62 @@ const WizardStep = (props) => { } else { let control = null const stepControl = stepProps[stepIndex].control; - const controlKey = stepControl.type + "_" + stepIndex + "_" - switch (stepControl.type) { - case 'combo': - control = - - break; - - case 'radio': - control = onSelect(stepIndex, e.target.value)} buttonStyle='solid'> - {stepControl.choices.map((ch) => {ch.value})} - - - break; - - case 'radioimg': - control = - - - - - } - /> + if (!stepControl) { + setStepIndex(stepIndex + 1) + } else { + const controlKey = stepControl.type + "_" + stepIndex + "_" + switch (stepControl.type) { + case 'combo': + control = + + break; + + case 'radio': + control = onSelect(stepIndex, e.target.value)} buttonStyle='solid'> + {stepControl.choices.map((ch) => {ch.value})} + + + break; - break; + case 'radioimg': + control = + + + + + } + /> + + break; - case 'textinput': - control = <> - {stepControl.choices.map(input => -
- onChangedText(stepIndex, input.key, e.target.value)} /> + case 'textinput': + control = <> + {stepControl.choices.map(input => +
+ onChangedText(stepIndex, input.key, e.target.value)} /> +
+ )} +
+
- )} -
- -
-

- - - break; - default: - break; +

+ + + break; + default: + break; + } } return
- + {steps}