From 2d5936099c8ed00cb17eb8ab28ad9d282ced6fc3 Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Fri, 17 Jun 2022 08:49:40 -0400 Subject: [PATCH 01/17] chore: Update MSBuildSdkResolver to 6.0.400-Preview.22301 VS 2022 17.3 Preview 2 --- libs/Microsoft.DotNet.MSBuildSdkResolver.dll | Bin 117360 -> 120968 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/libs/Microsoft.DotNet.MSBuildSdkResolver.dll b/libs/Microsoft.DotNet.MSBuildSdkResolver.dll index b66310e42cb1c72ff1637beb24f2b510544a4541..8a8df3fd8e952c5cff81c2cecf416adfeae5771e 100644 GIT binary patch literal 120968 zcmb?^2b@&Z+4s43X6}^TS$4L}_Cnd^GG(da(mOVkj(~+?1%<0KpvW-mB0?-!5G!Is zG4>c+j8S8WB*th+q9##8G#X7zVhk}F6J5Xm|2cQcB6+{}{oZeXaL)Ok^PJ~A=Q+>m z_ue^r@s-M>l=9;LS6?ahIDGz16!*V&x{+Mg@B=~aQ$Bh{;_nmk8igfE)Dd)7* zvQ@1oEnB_XS<|}wl-AVR)vYU5w@#fow{?|s@+lqRaA<(bde$_hW*8pz-rmepIg3{mP%L#cp{J?904TM>R6zEb59HnrT0u;}ow6_NOtX){r;rJG60e+A!#jKW`k z@SVv3_`XLaAv_<^D3<`Lj@&Psl>MpwXQ;`JDxXGw;T6gdCjIhOsP=pMD3e3mn~7sXp4GwW>Jtg zHrkE%90(z=w>r>&a_vHC6_ zy=Jpp{OLA~$ue!!&2mPP!LSsBI;+YqK@7l@Vz8H+zu-S-zWy( zDF%Nj22ExWgDJ(}{9^E}V(`ae(Bdg#a9lCCv=}^G3_d6Z1HDBIW)_2N0bF8wlAfx# z<*^T?wv(mpse6%{?gUz&g^7A&U1m=-ghp{jA+C>61nkjN{RRIqz1|)}0;MX4n5quO zhBk_L){aJWp>lxgh&`kQGCf&Xq}TLjVUk|cmqp#YW|=n&UhsWc^k$lGhE()PMxS)_Nk?Dk zt}^Y3DA=@N#&D;KJ4sx0dn-KwPONf>NBtZ!qaQ^)NwX%VGnG^r9*4PYbRP@VFfF7o zb28*{=qJo-Hzwi6=-iT4qiHpzgXYV#V96ebu5Q*GYsyI0^fhY6HL2UWE34r#9i7V zIfS-SD>)|vY0>HhyTBL(yFlCI?BXyK1`5h}G37>AF|GB_XSI(ERzk7w6l;?JczC zg}KBcfm!LI1Wci*3B`7%_e#)Jq}T_|LDl7Q(2ByYHI>naHF1oEi82}{%2=3aA9^rR z%&A^lII)9@VK6l_jMQMU>G4+eSeRBq=_BCy>{+Zl+Q(8)8VWOwis%x&_K`?Wl&2m> zS55hS7)GQ|dUEkih)SjN@!p!tPM67{C3%x`6tYHlR497}0?A0~QjmG=qXE*#z*(Pq z2N9No89uai1#(#q#K;9_BWNEBu_Vc!16YFkMp#3C7L%UW%n+nLC)bo=sk7|4ASw;m z^WY^8F$4B|1iIFPs4ZF3-gO=VJ=Pf*AJPku(ALcq8`X{5CY)?FV3{{jRpw2N12;3n zLhMB#jT=>Ax3mLND!su3R4Y{;}~b zJ?V9*XPcSbg5+2OZ2I@8C!@&7O}`&EoPEHN%(cV04EFKWYGS|Xm)0XmXkPN`&N&Y&Y75v*(shlHJ`91p8(ayD?<^j(#n!}JW`@-R%%8{ zX~$M&I1;v3vA{mAG^LTS2m(^6)lX2X64a_hi=nBcY8d8}F_ClMBsDapLVyT=Pqn?R zm!PJ)L7n(nE?jPmm}+1EAL=gS5LMLkw~AttI2Nv{=~F|*yMsO8CCK(DAn*sCFD zb|Ygmbfxu@R+oe5m>YE#!d)387WKt5sSgf7ZQV=}i|*Rcn`Tu`XKmd~k^b71?M<_q zG-nGRrf?-0M?0Lu=oF&4sEn8R5p`~_D2x@*O+3-0Wejks8JG2im0=yF^T%{GxZZ(L zamy3&h+Txb&du6EhjIIjr6#q6dNG6AU`WaL4{eNhQu5UEevQ6Uqv(50ymE`nE zPoMPkNl%~j^o4$Wp_qPdy!aP*q!VBU`X!X07qa6Z=6cB4pM=Ml8TuY^8}#b*fVe4C z&U9%EP3){=j9v>sO75qy7JzDH4NISE*p;X?76gz`3d;HIeUwM14aXv-eH}av282X=+pGU2YCinFS+32z%DMA8LDtc&0m!D-!J!X2Uy!JOK`%2Tk1tyHeu4(T;V7P%q z`${HN4#9c=ZL0g}y@*N#>@s+v_%x4wpT<}h0UzRN2@Vg~n#Mi*BL@04C+KUT-QVhjD-O7tJ6Es$pPZY}~CABuOb3?uet1oIt>YRkEHb!(S4Xd@*rv?>EQR6R`0^_Dt z(pioSsY%6Dby!st340yLQ0+fJGpS>X>1qQ-WM2Dv(3N&ROR_VH$!dZ{WcCf93U}T} zs&k8}!an<2B#qvPl=%5J#_qh;Mto=~-`6cRSyEI{)AD-)+CE0)V*TY5T0y+fh+*_vB8Sl{6fwuC!|#W8l$p1_XHRbgrq zX~f#|0@{_|^ovbd{(!Ry5%IwXR8=#~RrTwg+ZFR0z3S;x+aV){mz<2E)PsswVQ2yE z(;=Q8!`033OCcTxZ7m+E8mD*|yZ^t4Cpx?e@?m7j%hwI&q4-$`sBdU|XkNZYL_Yf# zS3FE0T0GQJ#KS!D|191`McU)|;Zs30{ug3hQ6!eM4LTCnym`4U7rC4RraD zvG0k3DBTqYN_XY|Lb{8KrPFiIAdga5twlV!xu?SDsm8$5P+|5|cfyx>sH)OeVf9px z0`B}hW-E`LlCb;YloZ00^e2q$oi|Am^;_xJlY!rzl59*#9&9){C3(E5jTnv1tteM& z8?x_2l|!AEB75pl4%E49$6^dZ?+X=W7WGt?L`rHZN;%)h6J-_L@LdhE&LhCVt_8E) zA|z6R;oS4J;XL*I;!^ro81^;2O2KKNjZw+sG!g3jJL;yVnVeiBG0o(w(*+{EB?A*2 zkL*JI)0oJxC1VN~NAYkc?^mR@k-9L)y>0#!6PXt(Gi_c$5BM(hCXeZR}wRYcpwkcQu&m6T~WMC%CK!lbgsb7zrlF1uDbQ z%Cd?uNBK~stj9o*#;_#O&(b@ZdfL;$nc^UV6PRT61|z=o5>WP@n6(k-W~;9oiAR=B zqszbSH8Hb4W4!qu6oqwe?|w6u{iU=MTg6-t@kYGtAzt*5e<5cl)=fxa4++bfE$H@- zD2`k_LESy1O+uYGh1b0yN3#Ih!Hj~zsuv~CdTP)N82#86jEH653aU;&^4oQ&b-pif zY4i1Jrp|`?b7dS7C~)tB^%Yy>9R<5)3fDvN(oU4s+hTZ3_w`b&WW5c26*X29dcSJ{ zZpA=?A>rU8rUjzgP_IDx{{PpOJiYf4YZ!)Huu5Nxdc|;_%VnIs3q^Ec5$|P4&U3wL zBC3cL9oAvH5f`#jo1ig|b2~^=-$c;910gxUDe?Lp(1a4EKjv{Ts)foil3>3T8vbGx z_A(~NTG>}&@q*g$8o_VbcYz>QCC3cAAqz%MPQ5^M&EefvqxA=`)!=(_^Qa_CpXb(MS8veJCi}W9ril$qC(h)C$xW zoes7l)ZrrPWT-;*RF6j+STGLg4F|!kxr1OK4^(&@Sa&E945lA|AKKUA9s~bsU#QRk z6<*CI;*H5Yoq-v~RP8D;N9*H){MEt-u#VmbJ|kEc9PZHfh+8=DDUO4U6b^it;2!wo z?kq8yrbOJNMGNH_uEJ@*p*u8=FCZh)vD&Ft^ zULUklnb&@XMf}{GwCmkVl+<=G$H1MsUHsbAz2euU9;RPz;>1eJb&l!v+0P+64i90< zUW{WuAhKT|OPsKrjLN0I4JSK>$!TKKoE2u9S0tqYNUN^`k#OOIVW7&s^AUCSU3|sf-^|$86 zx)ycmJ-KkHdh}TxX8jXhr65-%jptV|o0wUs9yOxEo$o?8GedN#~6w_D+WV6hLW!XYtmkz0jZzI!_}yEGn(=*xv`pX{i%*tT+K`Yj_Te!LU0SDhVkknS$C(DFLALmWL=#bYUWzJg+jsGpQ zf_y#J3ncyx;<$0)RoEUz>|;a&BG_8-%JN8g=50h(Mk0~KEP!_iDk2q$DWuAe7Lf?= zSgl-h0@8$BSR1Kul~RXLQCsR7Marn+xbrSqSK9rMG1nU+l~Q^!vl_%v2$y4R4i>SE zO~M$BF0Yp0KZZ6{4egb|=O5#T0KX4E3Q!zB6nH1%Up^py4B{R@93Irl(=W!A*;~*U z*0Shg-ZoDby$CmHm^LOMfI)vU@eYsk04n5hF#WGu&}(Txa*UqFzL|?0t~;tdwH7#hU4K9i(8Zuit%h?JZ#6$vr#Y4 z+!fa`rl$f^G5V;i_kFnW)#YGrL+38A8<1n?wKh^fvzOdH8^&S9ur_0wFFL0RV#}Iv zDg0KB(NJnAHzI$4a0!nL?LQz?;jNJQB_8obyrr2xA}VYK(U~!pSnarw4`9;x5V7sZ z@F)1mJ-RE*FLZ^NUI$jF@w0R@@Xi7~LG`81xJhug&E=_4C0G}3f}K_Q|^sc+1V7Yp}6M-JQ#ek??T>)%zrx{7PiVcB`4}E% z;ge8$ThiMe#d7Cwh{DntPks0;8T@PvNmkcAz1crS_WMEF*3A?f8jQ#M4s6#dmBV)% z^@_((Ki(HZ=c*rd{6l2pJc#v!7c(C00oUzb=SMW7b6}LeM*v2NftN=43O#QYgP`0y zd(|@V=`Z^FUXi{&r@qFN7W6d^89eNZaT?nvkTQ`#;2#J`<6$~)#Fo{>d_=pd#5q8s z#Iz!K!~>Ith0UJG?Nt~_)d0%Yg!#d0uWaBO{rxxZv?o4E(Ui9MiY@464d71_=AN!kO_wr-}_ zP(@t!zP~^Mn&ufqN>lw+V~pr*Dh%9gs<)V`+x&Fs4)sL;m3|sBy>5S1(*2XUae((C zxbK40p+sM_k_2iI^A%!B(MX1bWcR`+^Ym!sl`%=5&oDMB&j77NnNVxQ%uIwJdeBKf z2StQ182kXfyJW>ahR^wcwSiEnCCf={a!nw39(c0SWPippBBA7Kx<4-|^k)YHr^T^P z_vA}sVu*Z7L~2vO5TT~Ct7$m>$fZdM^_;`L9>|7B#sVt5-`6{^r$f?8%Bn* z5%O~AdKNPC8rG0;28yxM$Va?cs0)D(oh&Y^6c!&sdXYHAT+rLP80 zcdgAapa0*_GbxwnY{_$Qf#MCRZy?#XwHeZC^WZ_fo<6{!6mnn#lk`Mw)3|o zOWM(xxhJ0g8F)*sPK_!O*@-$hjCN@%cT#r4Njl00~IDMFn zH>{W|a7!JkiLLhZQFa8ujUa090#p#33gC`Ejc6qFDOo=_m1N+z(pB(fp>Y}r{TMU6 z>SoZvnj`4|#!8G6SZWX*vwD(tzJ- zMpX9Cpbc!Gn`r^IGFZ8wt3_osj;9{aMtPG0?^jKv%0-4NYMy&Lv zTfwN!Ws27kLQX$8?M0>F68@j)!aNptzCa*R>YIh2=q(=fGTa|o^ugNbqh#}4I9r1n z-0`-bdU9WGpY2iT+U&*=sdC7427pCLoP%f^LZy5v9<9nl>UQAd2YNI=E8j2{mw6aB z^;jNOO|hJgJ#vNt8{-)U^6KLY%uZxnVmhCr4t{Z+fruHs8IqXJza{oxa2=d+g%T-E zC_5kOpShetNHHA}iT1)c_mCVhi6;wJs}UT3ND5a7f#BCvSb{5@oCYI449QYgC3Vg1 zwN+2FP+fN|>Q|3Fm8++zHbQb(WL}3f?~?ej&>77epu5pT^xE(C*@uNd~Kd#?L*@wskcuCG$l7i-(&yfYgz@DEQyuYp0eMY}LY=qU?J z8LY%D_7v>eFl8|XJMS)xAH@{@0tHic@imAzpOxc?zzqc-X3I=P5|qRB^tmW6%6g|! z?@*R0?x|f(b~-?6Jw^^W|HM+a+DbhJ*x(F>47f{=3W=E^VPg1RER*%SOU^K)JHz3~ zgKMeh$YVA5m-zJ)=eevg?3?^*Ic8Oi2@x}e(Kp9^rGC7@8+8UkYC5o?L;PF?@$~9p z7OABcYk}1n4VfrmifMd!m$E>GL>kEEi)x z8aO^E|2TETpW2@<3P(t~DBL{a`DzxHd%pUW1D>z;>9TNA`Uv@=e^|W!Oq_~mrdb*N z7i$K1TPQ> zgC%qe{bADb+&SY8HFB?hzPSN5h=D=D60qK4qb9AicT5gX+l0BY9TB+lq^jPXty3iHZ-#GA-yS^&>?=07n{Z^_A z6k?omzcJ`Ub zUF_4;1EB3b0vS_ZFmxnCoe_kNVrT`xwp6zv=}9EhjRfqI(SMjlq~b4wgA*SlZlpia(5*Md&y-h z2tE2GmnoqBZ@lF4PsqA;1*}+Jaw#_&F2k}L&!F-UGW8+Y;hb5XC&VeUXIEQ&>I=r% zQz>!&N$|qc+c3u5I0&W+V`J!w3us_(w}oU48dlUrzXO3sg%pA|;! z2yXDP3oel0uFE+ZIW6ZHac9D@RTVh8-4$t_%|$Y()6nK;|n_TA3btpryVsU#d~alU|R;=Q$XTAH0??Yr^ZA4?2bhPP`TGFll1k?%a_I~!)@%rE4-0Qs;J z$KDuYZ(c|nD^^I6ITQIyw3mdBp$jk1dE!RYwl^YTIof|WiO_49Go>1(a>BxI47ZO*;bs)T47CkDus>s)?jmBI;R7a z?(?+oTjjTpN4~I`8--dL?Gq5ev8WsTITl?leqB)B+^e*3(0d{%QV$^7lE+CnNIga( z8Kklp4!mXn=O0;gS}$fWdRcUSHazzfJjtGNg7RSaHXd>pZG{Tr)Ll4uzn&d~8IuyY z!mUIN%#3E*fcfhRaK%9<#y(P{mq0@FrKRx940#vL`#2jybh5fwGSkXpkn--sT`GNj z`s)+IM7`x;bq797k)RFjVr{>#6>CN8p{-o*^7eh<_TrfsdnoiXr5x3#OL;IVW0i>T zM&-d=YM6L>V8w-ce&+KSmw|G8p$=#{JQ{nvzh#_r3WBA9=&+gCEukSpHH$i?`lA8o zG=$lhp|C$tv(Q8nS7qxqbaC=L|%)l_Yl*U+NYs zhJB1}#xF0dJV(pgk;bWm)y-icw!Uax;g?sZ;=a^A6y3d)$%T0elboKXEVU9mVTNcc z%u3$mae9@E<|Iw(56CQQgxs{NUx=)6&V;C4KJ;r@cVH;P1lGm=jfF#~t(z(GN}00? zglG~n*F~TboTpAjxf4-tx?7JIT@+E~?krC6(7&)xv%0L_C7jO^U_mH>DKbT3VA+@} zSc)uun8(JDhPTh8Oj8|?GNV#gsoeft<=jP4lJ9n>Mpt2ytV7|Lq$+g>FZJ73poq4l z+3v@V<46dQD7PKd%sGqB*>Digg^jFvT2Rg;mXj@*_lIy`zf))4|d}*Ba)u`=hXSs8Pxr1RopSNE$0# zD26vx1V}M_Cm%hLJQ@fmX^+Pf0W!@5HU5+JM2-Yp+Aj;9e$( zUD@XWFJ8IOUJoB{0(<$=U;GZH%dx9wwPM)QroXEd`DJv#5gtZ|tD)_52HD!WnPOu? zjf;3zCIXD&)8JAXt@OpmR#+$>ixpjd#J878Ul$;NO|oTUritG{0zA&TkkhPYxMJ9M z%|KUQFewt^8Va#NgkXw|5k9UJv)q&Ld1^X>F)XCG9-z}0o<%aN z;BZ-{6WxDIg{g(#rHPo%M6@`*-T=3wq8JUqM=9_L3vQv1PM7HgluMs1>2#T1K)LiO zNYPKJh4G<@97wd91&~BhMQQrRt0sh(frLh;NPkC}Mt-LY)x-J?ckpDFOVuc!8V&?I z)&%efcuU7{un#8v0fty3=CbVRa4Wq!my3A)fvMH9&qoQB{wN;D@!`F3L3m|75?qqN zSxO|JtHy|>i2xoK7fl6%Iy#W3U`bwo&B74=mvkPAV_tr`0{zBRC%f$w4aMhUi@>V1 zOd8fd7hF6PH?=x;*|2V0O%qt1J$))X!b1mj&oJGQ-c@7%OWli=N zph!`y~qn7jz90Rk)l-sHq z8qQT`2&tgdQk^+a?`#BBIH+^uoG4#E917?aAMsZY zp9Uy3$679zIfBx3Lkuosve<`+;lcM0BEAD&gPe_KfI;Gm30lp?oETX%^Z+gqe`UZ- z;m!B6B5rMX;8)$z$Be*`BW`QO1ArnLkN0eBsHN$oa2())z8dd1Xabz){bTGv|fKneca=gHm|;ko2cN!ogUj9)$|gLC``e|6;D?6d_FRNwZc3`O8jDQq-9sgAO!^z(;#>p=PZYAW zR1_ron=JTViNq|;$CTwh&*6!LOYoQ*M>X6am*FXBk8?4YaHEee!T7j2&cDVIfFbGR zU0NEq4q95?|5}xObbTUy^ijb8A2;Cn$L7c((gzl(sa!TTPBW~^ax)Mq*X1_&>?H@3 z8!2~*QD4;Co0uH&LCY6GaIRSFWuTYS{vb}smm(Gy5ci|9En>}Qh(B3KV>1+;M0;C##|j3H|= zvzbYJZN-D9LclcU*F^f(U=gL{Sb}|OD2bPxaY~VY*(MTlYvzl{1t3m0E(3d5cmV=8zXt&J5^)YaN{PABJGG#~bUAUenE9gfH-&3s1hlhZV9G%>4o%6YvGTb@cEB zKJlm93&F&+ae|cp0^edtSH+Vgeu3|*V(@A)=%^_o+f@u+Er5Fqu#B%oa zAkXpzQ=wYd46{_4{>o9M4|^9p48xcRZvsG_z6KQ{I6DW@XbLNPAq%OIGHOEmlDYES z(yE}6n9YijLP@0u(lOdW~omx6D*qw<^qetU|6sy z0@tDnEqyT}-Il%-L7dGNw=+`@XlKkS2XALn?STBVM1JN&wYS1UI|uwV9Sfkd^Pv}} z1Tr`=a_?`Jnl4%f?Z{1T7S=6oPSSY0nIYC~ZU(cLFtJA1S&1;+G)w}qv?Kz?*1*b?)hTHD~ceeNNoq0hYu4=o}E z2khhWeeNnyvJWt!6Al(DjB>jjR{USH26Y%Juli(#cWlEvEnG#GrY zTQUcGA{J(aZi&T~2D)2fXkb%Q3^etSoJg)TZ0ga=v6VD!ssXJ{A$4nGQer%Hh+o;gi!d2QD6ScH8)h!>WlD5W3Y89Oo zZ)ZuI6Fr4@P&16=tvQy5*iYiML^(LSnxvQx=sVXVX(hjXDCh>DJlH{Sftzw8z}n?F z*p^GUBheiC6)q{$RBNDHSDIt zyw`BZElHh~7aVanarE30FE6TmgM4*GGr5g2y&J`X0U@g!9162?vqzriz?3U**VBK5 z^J-xfyaD8H=evc`OU0;wPK;mn&8-6e=br+W|{I-L}l z*@Ezl)8!&+Ah>c4~RE|jMmRg@uSTQvF?pQ`*u*tJJ9y2q~{HZ zJX~`J1Dpec>D>rsF*dU^kwtFY)G`RODk}U=(`Kd6lNhIa(w(d&&xCV*>DgxseW}2J zeMuPQ`Vx!F^(ELV;Z{uk4YI!EJa=qfKe|6r?S=j%obe=Tl)_7YLi2mG)R*+9`w&}n zDtHUxaVmH#Jzw@VdN>ulU3_157knNyl8Qdb=#!3qE}iruUlZiRogVh*-$pqlethA_ zU)N#91309z@ZZEyT+vnW9mt2$cf0He$yRVj`nzD!eW#AoE4`vcVn0t*UUua^)Zm(1 zzTJigjG^}sdP32iKdd(MO~mH?l>1!mi7;h1xC}x4O!$GsPlKlix#d-)TsRH#T=-ms z<+de_d8@F7fLuQHEy%S<+6&f;#pAoMmbT2>a6_4Q;G*%rjRbkJ9m72G!@rAJcOr z{Zo+hndR?-*37*tvX?x*Ksoj#psoN`4Ov4 zT0E>@BlQNIrKn5tP(H;gZ&)M}5`2@feN8^w`x2CqeVUwWgfRx^VYx!wBJM{K$tz8p zwbD^N)mZU2=n?u=*0r$K`QZ=s_V`W&n=5anS6QH^{QjlVOeU%e9}BtT|&6 z2_Do3uiJjVVLc1&_x$sP_ABt{i84dJ{a9YE{m`5OQDKf>Q{XSn>qfU7 zbzW#Y;VNzS7K&!uQGN1eD8fHvm^GJnd>0f&?f4?%-FAdN^6fYTWgaGFk^t@a#iE*# zJQ-+G2O>=+Jd$5e**?4rMWhp`8PISOJD|Apoz3quAowxDpY24f7uRExu9XR z9wOeSwy}tt)QBk5g@5CrIR5u*sCZ@}S`^)IJtu5sJ-0HaJy(h-rN|p2E0HrsEcFPt zZUzC@G^YIC$?|*~YI~&Z6zow-6?^FTj$grZZ4bvtv^`ATv^^;}{WGx2 z{suH=M!TfX>bXxx{F)J*@L)HX0K86|#<`CXFivvmoJx)vMmdl_6xOp((D@E5VbnlL zBriQ}a$<6mN|BVKh4S>ivKvOl^7MtmG-1$?AM;tAgkJA z{haw_u~Hexk_3`UHku7G7ldgtAPPJ;Y4d-^qFV(RNR}EZDtp7Q6o|WTD-Q z$qq z`^H=+p6E$n=l(gOJo=R$>{a-y66`meM^1tK(U7KaoAnSraYsL2SEkyA>vwtz582=mK|W;T;r$4t{2is_<3bWZ#Jjl& z33Q}=Anblm*GVtHM|&L;ksfgu#g=>JC20A8gr^W(1n!!iYvVbn+o`CVN8YnCIqS={ z0@ubNFw^E%nq_=|pYe@{G^uFLT4c%_f&vzmXw~`CU$I%Rg#G}T+$D6bOvHZp_1Fbw z;cYyffo;;U7b_cmw?U2k1^GlH5~2_OO;QfH9>BL0?(kidzq<;cf@ z_`@x6n=e^#yySR25&mh=P5S$2O?=brIUGee7%BK>!5jH79<^>nrbN(cX?4)Uk=l}V z1Nsqb^12Yb_-8){3Qy{H`Rw?xW;wDu&oiedW!2@%Kmy-J$tAQGC-D7|T*92<1inp@ zOXw<2;Cm=Kp(fUWXTbO(40U{r>FEfY`1Kr*(-%>&cs?8ADaiW+$Yt7nnEeF=^$(`l z(_rYjMf4Au^onM4^org?9@09_4-s7GQvXPz*)-0JMbST&Xf}}Z5~E>Bp0#2LBB9;~ z-l)~7OwX9B5cG_?1g@47FU>+)`zOeoIJZbrk64g{9bYK1#Eqw@9x)^xf0$j6)uSbT zh4h2%g0Qla^*Y#q;#WZIg0vp7E(d#14jeTw*>r!ZG`|+5$gag{S+cZbQyUKoD@|z;%!@f}9{W;Ky)#O@lFgfM4jgRAJ_p>SN0gUe0OAX62 zgB+WfB4d*T&<+P1Kdky(-~OM~^*K~j)KTh5jm`7$q$U@__;okdQU(#-!4CyKKr>?~ zI4yI%X~z-n)oCfX?zEyNshwoN9OPhQ9g6LOz5r}04~DOY0A}+@^`!&lR5y-A%>glW z2)Mro;ejWR_vDuILQb56eg|9|wkHO~(+vJVvNb2{(= z`aBX*2hrziP?njY*bY`u?)W8jlMMe!pM`85o%xqkx;v1}U{OW-BzIAs=##R}=H~*k zpHQFP>_6z`43*tJuT~O>S|tF>C8e90p2@g(q?En__5%I_m$I><29BQDRW z*mhijfRm{QLfUmJY+?oHTFEN!)xn~eQ^F-y!*Xk(e_7GhNDtCb^jGlmHP`lqc~YKL zGUZLS)MzxJJiV5Ct1;Blr!Ja)o1$0;JWbU5xf$@`9mOs1S3)*E!{=7bhE7WH(UO`) z;dmwx+`)UX!b5S~H-v+oNi{IQ*UBm;fKpwI`Y2(=a&am z@$j=>lMTa{wmlI%7wBtA%F9gA!Fc$jBpwK&@L+WCM$4Z*mp0Ln&a%0^V4YXUk%bp< z``zTc!zybX4Md&J;9C3wDTm{S;#H z%Z`W?vx_tKJt>Io+JJJ-WV^}>C-!Ahntchp63f0Eo^Z(>-Ur5dz_yaRS@e#UoIo-elfyzwdZPxGKWKmHHL ze;ge1%;z(BIP($t@H<5mGn0U;&+%b#JdR*$P3SjR$meN=R6e}M&c=KK94u}_Nk16h z4B|lMVOU_YDWE^B;?kXn-mE{YA|Fu0=}{p&PRv4C=unQ3SZpWMrOXYCvT^LkBP8++ z3WHJloahlm$hAgLzCtB$Jo-SJ=#Og*3jsdss?U1RI}&`T^<{|3hbogt*nJ^R?up`H z?pm%$R5uEbE>SP;xifE$2wrK}?<_(R}r-rJ3QaWtIkm_$0$@ z73p%ffI6lo&pmRopJKhp!9wiRUQw$y|iz zu1T#}eOj6nvwp19=@>xz&!4Lv|Goab>;8w$KLQ5}>PNtQf3E-JGaal2UswdzTM_Xbt`!1&p@gHvrWPbjARD^i#PHy$JqJ{GWjT?5EJT zq>~rh1ljqnsl3q1^_Z?xqb>E_X1eQI=>D^D*QiQ$(HNMc>L>9Vn$Byr z)RLAFF-v)x#g*_gO$`4=+z%zbS;F%g8UJi!`4~%eHxG%NsE-h1IG)<7HXAYt}Pv{Sk z8nsJmcktryjcPi^&0EwlXh};gt0m>RBZf_|)cjhy*EH=KWvS^xU)9dkqeKsfip+Bp zj8PqU8dv>sR!yuz9p3(Y!cyN6Nv;t6j1(Cj9=yA>LVYrrsqadyS2pc$yU{Io3M8@A zpCs4H(EhgXxbdH%)|=e0FR;HYs@`kcGN4{94X&!Sly~UfSy6S|v@HXo>h2o4&YUd+ zEHww*n$=4KmyNa5Illa zJ$j_2{w8|+qK>KA3H#eZYWbvHqe7~wj#jY_l=$sj(Zj2=8Gda%%epd2_cO>=p`JmD z*Q>TUY%l+$k4K}EsX7iJ=xgX@IP_iJIAz=sc~lDfB;p8Au9{(MMVJ1p2WL z>E-I9sUMG?j}*V^2Icc(|2c>#pl$>2wL@MSO!)^0su-rxKotb#M`bS!UWK&b!sW<8 zFAbg#9-{=k(m)izc)=2moJADIlkP-UfaiStYSK(Wj|ht5iI~nhO0|}&z44a@FU1oY z>jkZG(fO(yX?EhJ!7m`~LdiG2gQdsu3(n;7o54hbF;-G9PmL!UqVAQn5Bh6#zm)zh zDSd=`MC80dad50&Bt5Ce-X-! z^&bzNkM-Bz1PvW~bN~6+>3$;Up98{u=0ktjU4qM&xnD+!K3BH_F9lL~My5vvAoY)` zzl^Q|GNHh7_4%;Y;q!4GA2bZ4y)>3+fhspxzq==0g7S`6QK39^2+=ZCBj|?sB|~4p z{amBu3j;j@)GX*@7qu9)mk{#tCa=}lh!#r^CYO^`U*YoNP@+>*8`4moiv~)*(Mjez zMGX?3`+!Ip7nBlo8s;iWUD3g`mFiI8dDAqaGkLd)w8nu~K!Xn6_#)-o!>$;%%vht2 zk@`J9mTBjzg~n~=O8s=u9fOoQ58v4$x+_?WcGPHevZVdHRio1c?RE35Fg$(HJXt=$Wf96JK8>%Qfm&$@l9ZDQ{4_4HNmEN)p|o9uSli zbccGhDBqpxamnYEIy|VJ7sOTgeD$#Up`ceK?NRljpb;1Z=d16kp9<$a!;u=y&R?B01l~ z+MD^Vm3$v4oC5%TF6cvr7mk6>@G;+?Raj7cBhg<}AKY8P=BE+uR|8BFl&1i78~fD| zLEVD>t|kcDBj^)#jG%7|`cy433+?`?I->~v6LbJ1o&)h=2lsLsuIb~|_)jX;#;B5;|H-hPpwr=&(r#wAkvL$jFH zY+P9+XNz%_q-kCEGp-f%GwB@zjq60RIa0z<<2FIJxM+8;w7Ywy-EX$5>&Kp4-L4k5 zo(}iUv1e3A)bT?dxNk(#)rLC1e7DC?nL+2GV|>4S1Kfuzy5SCv?Dq6kA4~W=34b4y zebvMYx_5*x1kL6)y0`RWOfpLMlQCPt`KeJ?BL3&%URjiSQTg?V4_EJmTUtr_8zQ$L z?5nyR?jcq8!M&vF(Q3<@8-A*KL3eESEpXRYljg(<=B2cK)kWf7T|t@uSoI8C%}vYp zVdYDRIi%`!xSBE}GEc8&-g&6YP<8C&cO>;gxH|QQ$VUhds@(7DBqu}HfR7-=I*W&zO|Bx8mUr*eMczaw2!q3;d1D>zL?W=ZIb%JtG z^<>1iH%>#iynH9Pom;otv!MGWxFgldQo7MF-I%yXNzBLM{sL}awSM?+&+P6i;2Nqm zdL;OatDOn=^|1@1LzOw<1h~hIKOHd>226(gVPEDNJZ&c=`FHJFl)kWGXZ1++uW1XT z3%a+AV(G6;p?fR%FX;Z3l=bjz@-G>;-sL}1oj-YJ_3Z9%ls*MMnTjL9Cj{O04u1<8 zHq_+GjYwTmc}W!ei#fYJmO31kfE90ot^Z`@Q*eJF?%yK}zaTbNE3U3f>G18*h&pE2 z^>7OoJ5p7b-V}|hChMK*sLFU|B7BjAHwAW~to>5Tqhszzc+|MZ;QITs+|SD>)$m42 ze)Y^JAls<2r>ZrLq2>mjcJmf!NS~wG1A5XFQj0m{Qqc;1?+1-%$d99x^QVw)h50Jn zzx(#VeGuUShd&@p{)Va+naknoQfRjaTINo%d1{-f>~14ELH4-LK4Ha2F|tJ0*UvnpT6I-J}I@M~yoj?(3d2;bsP}&By3?HM$Ei?~mIK z_sWu;a5oM9Q1r%JhYzRwt-#KjLcQ)pIH$MM5uO|Pc2Vl{2c-Ti`VqMO1THCmR7Cm4 z0hHZ+K0sL+xQ4oW)}Ii*11@v@6|N`5_?JVBsVw;lZmzAb2j^mWw9Hc=xuKGy1K11L za1Hf}RStJdl!^hEG9wxxu!+)3*}g7mR(;c6B5ASG&4-;M&@D_03v_JJ542^$f-bw(oY>_TOxd zs29S<$Y;IeW#6ec-+}&LY$xTW!EoKN_soX#Yjfew5f|1j=pNAjLe#Xq^w$9m}0i7SrTBwZ&rIjCr`&96+HM3f= zpioo{K)O??&36iHz;)=GJjoY4x~is}jr0@oOVkw<@(gaNAU(S{IEJ)aIhif`+-M zLC^#j%@j1lMP<{;Ws!^e4 zp`LZoM>P)_mFiU&J=3}a==Xv&PrMM_pT(1BpZY4*>Y~zQb$zuOD@gNEE|Z$?!7L0V_*X4VHa(IUK-W+T(o!))1G%xkEFe%k-Dd0 zDAGO_^uAG=90{~{Ku+qh^-XGC8vqPCoM^vW~q@G;g zqQ+~a9&DRe-(MZ&qSb;H<|!8;?JPl?kZ);yyXv%A!utlTE~XB55v?w!HpG~=QJpmF zHK46=ji#1AX2jLKg5Ec1AqkuiGHqM!ic#lRBvdVSbr=iOc5`)oLiH82QLPQUhM&G~mRgGPaxvh#5Gc40oP3+Q`pT5QT3 zd|&i=7oCvUVRWjOTy#WqXMHEudX#fZ;Jned0ln#>#pCV;de=oe$3F`6CygNW)Agg& zzumMW`kz-nMtQK;)+2N|&VU98VoUF-AFDcDbj|pm){Rp$1np65+wp3ti)i!X)n*sb zA}6TJ1YH|=YwAzxC#Y*&bl=>c*H2Wpxae`9$?85qY|S_7r>Z{++5)}oFpk2Bq^@84 zK%yQ^85lqCtNNqxDJ`aL3WO&68jezBg0=*xr5P&fBHGyu)$F48MnxKCsCE}E9@hla zp%F^Q+Cz=Zqd`cUm`6CfQ%B^H>7A+O3c3*aLf+ZxgnSy-H|mr;8q_dXIeAo$J?XkU zGQA7b1%fn}g=%Xa8MxoMI*$f5ELOMYQ8~`P?#m<7dxCl_k3!xh>KQ?_&qeji)JGbL zK2KJkx`_HbS@pQ6b1spElN#F6`>@uNRhgh`)giNnG@PvJ1Z`7e+DA2_4qJN zd0)%ChBfL77uB_|ZCI;r9j?=+P1xLUj+!_^qszu!->^=-?V{&q-_>xQT6&01dv5ll z4eQl=E*drGCk-3ahLJjL)SNdOva0b=jZTj3Z#ZAglauOg>WBSR;{~c=tWJycEor<^ z@e6tiXF0d@t!~_`CJNdP)Y$k9wbf1QniXrjRNd#Ih6%$OFH=tn+NSJkJCI4nRQI#cC|s!HWlf+sPQ`Wo*=fLp{`ed)@d>>U9Y}!^UZ8q)_A?L zc$o#s-kr9r@di~Yi1|)$+@XeQ#POx^W;M!1Z1NiK>e zHzDmzjnv~4FK@g>eWDRcC|9?tYF@Kp+$~Ms)Oed3|&p<9))C=hEcc@DQan!iG@eXyBi|(8It;XGIr;8p3`lh;1BlTXxcN*`8 zeB^SidU(>ajrXgDNjda#<3nneppB4vU*n@{bsl}x__(@9(EA4G{wLI1I!!eV`JxeM zGP!J2&mrx5YTaQ(?;BjPd{12=Xp@T0GMk=Mw+Py(?n+iQJ*|G^qTOXJP0y;@!!?)A ze(|Q~)Q~(H-t>a%cF_yt#y7pFz7X`j!BxOEdiqV&z94{!Rh3LiH*VM1vw7>Sbpy`)t z#tfa0>z-e$S6#%J>kai!L0eQTc}de7YT?nEl54Ox)g6L1s!M9GYI;k3-$hfWT-CHs zz3NhOefG9$I7a8=`s^KbxS)-=so2rRCw0KK+g!;uD+ePsrgIQ zG+!uz?rrW-F^vMtrksSc)Dap%76a&ULEDtk`fX57Jyz#4TA#%A#PJJ>t_>`%TVC!n z)@h`U?MJlJMeY6eH2aKy3esy7%NV&x@~Qg=+-z9JR6*O-cL!__2aK}>ZBtM89cPA& zev3)D9cQeo>r0KeAZn>xg^jU--Z$J}c|^*pJR&8wjxHrjs5PDwF1qwuIkIf}xs>U3uhdX)+!cv{6kPP}$OA{5gllH@5UM z5+|_qE$Zrl16$gRlU?-soQ{@uW4|D+`Ir$nk(3-!3>7mz5ybLt0qVO%bD7pKM8?19M|z=O2qMqXEeYd2K^p`A9(zSy(l~w@vO&%(`(ia} z@bPP+>*wq+I*iWcMAriCY3?vi62z62p#~dg6 zmNYHrFyk(b)S@{rhldGex7yY^H9VtbxQn*8{K`x_>qXp?!8DlII zbgepfzzHp5jJsSkV*FeacVzOnC)_^p)RqZ(l+MR7gGzuIs;vr+U zQRkvXg8I5>dS9ju%B9us02=C|6&Uqr8>2LWEWZlRHcl6`O}$t4Sjz(AdO_E!W%WQMiVx!wdYliM=InMZzi@rJ0Hcv3duF#a{hJVs>qOnHMwd%HppSLVE zyk{_Nk76%gZp=DUkm!23ajc8>%zX%HCkoQFU2dG4N4}Qj#?_iq8Le-&oNP>V$Yq!n8OHFlB%iFhRv8ln>GP#k#u69t zd})<&s*8BOw8~gb7s#yi5_v$;sHd@ zx~Q(4h;n)GvBf1g+tP@m@R&)S)&g>{mO496`B~7w{Vwy7@(p{3p;3-YI-k~wF)MAn zBIW7+zQ%Y%kk<7Y<9C8KsdmiFYmC3R=w{Drb!&}(y69e{onwU0W_g>`*1*7)bB$_2 zn#($)$xZu#cV7KEBj%!;{6w9-C?~pU0qw4n? z7rh3QF>cLM`qT#FNkQ)zTkx=H*7(FlKb$oO=npAMy-_U-FwHAZv%M4i`!VIMS))`V zw<3U011V1#y-)ubMrcp~Pcqo*!T1D$?br%~$G(y_&)=P|08U?PN zJ*&^9#$hfRRex{!rN%rLUDp30<5FXpM(Rb3D3=-+y6EE2=+;XO?>b$=g0?wot1;O{ zfj&eh3(`Gct8tc2L+J+6)(P5#oAZgSTMd3ylCAlrZ+h!x#ziiA0%?~USLXBi)D^~k zf^=(MX}sqm>hntDC+CriZp|x=KL~m!xcA5ztydZ!Yb5&IW_;$RQJ>ok?|SBY$JjLD z*w(9z!(2ptZZ~EMqCQV+z1rBIk?aOZ413)1?$(fBH#&rmlS{tWA|NgeBX z43rfvI?p<`qo>F=`Ok@bbafs#xX7mdhTky%{aqFC#maO zcNzROS(Y#v`EEBdE_y?Kr}YlwUO~EV?lvBA({_7*TDRM9Ht2j^{vWj7X=Ghg9{hRh zUB>l-biTWdTivu@djAi1Zv!7?aqW-KJkM@+^R~%uKmr8F3kXpX2=6G+EJ=V!LP8Qi ztePyl8(7)AxVu53v}Ofuee10i+pE45yPCGU3mw2?Q>_M6h% z<-E_RIwv^xmfR_~7^#<>@0H#qziy&&b=k~%9)>~_Nbg)+$UFYO4;E3a>z)L4c;%qmlLP5!TaS^oH~|$ zT61pM{qhSc#Wwg|d6SVxHuzn+&&d1ff^lWvldl*lvcU)BA2_92e^BNPQ46Z|@5_24 zMXi5d&Wux@YW@3i1*eW>?^rXV?E7+!N^$Gom+Oo?YW@4N%g8%>QFYlv@-8Dqtv@Wk z$0^nNBl2k@kNnxAa^@A(-Z4q7KPqqCnQZ-0`GAr7G1kpTK=QZ0}y2W2~_lq^4x{YD`Mi-wtsj!F8hO_*Jg@AqtovND^~dFEPEqTDvLDJVD&;(} z_%mfkWWSL*kIo?Eb|dw5P7N8UhLSeir}`qNXm|EGl=~*9)CtdjNayFNJ!;_#W&a^3 zs}#5Jggl*7JDq=8d`sCAa+Z-7SbC5AiCk#pMVH#ePh>5pl%IG~HYrZji8sfxLve~- z`u?&frQb;1khQ<;XL5&y^XGDxk@taqSJ}_yZ;jMjS$j){)r9k?NX#7%9JznmXr+vghPhBei(WQ%J>()Ro@n%6=_( z7^$y#Uqb3im0~SDFNZm$V(91P8=Q)ZTWa4fdtUCihWhtq=L7BUm%SiAZ=`NV>ObYJ zoKmBCRL;DXIMrVJs9eG+8h3m7F?pO*SK+N|Uiok38=Rt@um`ELucLBg1yUTBb(}h! zO*%U+TUDOe*f75QxO|&aO3s&L?e$ddup~KOl69OSIj5DsEL)7!?MS^U{hU&A{!R`U zDLPmDo!qHXkaJe~>vE5gl6Z&rhCIM2I%i*k)ZLsSISa+_&pKqLq_U$r2Zs7!zm^8+wxW;MN+>l zzs0GS@!oJ&`8)Dnl|mny%ionR7@X9HzsM7uB3*YN^&Y3L5bopPU{x2j8^~hKL zp7d}^_2_SMvdVM5g42V)$pvtzD&%_my(H7UGoZkwY6$dCr>)zFqFnK4YZrD7YV~tBlmaf*+JSwJ#W{pA|fb z)W32{^)_2O!KuUC+iY#|4J0S^_QmoXt-(m$j#QqukyC2?T-v`FDeA3DyNy$-w*}fa zRSLa*rMysk+u)?$y0s5DMZJ9!sYzd=_Nce-lzX&UDup~L#%K#UrFuI?tLK!GdW`l( zmB&(#(Qf7xNu66UR@-l+ZbxdI_MlOY#%R2D&`6Qg zcjXkV-ALVKuc#>1x{TD5az$yG){`iAMn$={lT&0%b1J54cXH~7{KkEn_OOwn-kz?# znkY9`oUZ*>A|=HP&AFST-YH(xr%#!oHFHY&tV-=%Bd^uAxS~?iZz4|BhcmPSPASea zv~ir;Dc+EHv#iZDQWYBBENh(>&Y9X~BkzT*XU5Oe1}u41+GmWs?>d)P;O7MJPv==Y zPOCOjKa^97zc~e8`r^DF$_d3QEAX=cMyjy5ynm1iKT|2Tf^)QIReOALa*lQ)CGQPR?Zmegc2}IE*}qJ^*eRykZ>w0X6>~~y zw@E8ar0k+eTf!+7IW}v%jTFU8&Dsn9O0}rSu~~c9NKx$8tQFl%dB?KbnsUpUwTUXl z(bF2O+{mNoX^l49$je3)+oD}-q$qZ4Wlfl)vern^sN6ZFJ&~GF{C_IeB~mmh8&k@i zm<^e0|0FiPVJR`zkI>q^R7clyd$=9<>)tq^P~ki4>LFno)(gxUo8g;45nj3pMd3<4>JNl#MQ`hyEcJc4_!-&O1v@y2Oo7!dK0uZ`M_v zrFaPbdN#o;3kmktBq7}|k+`Xrq^Mj)r`pi^bdvjPWAS}d5dxu;X9@l;=bR$xrK#x@oR2N!6A!cRdJ4Zi zW;5jc0?)YI(}`yd>{(g0Zur|cehGvq)Gy_MlROePo{9fu)-C-+^A&_ z|10*8C&QKhyo~*A8GCHfnu*OJP!| zUy3rq^8B6Uzk^4o0N%hR?q&Mxus}`BZlJQNr%T5td!6*6N&`5pgx;k1H`d-ekVF^v zvn21eP(7PqvATExwb{f(9(R(*lxj*l$+;1JLs85%SB*RM7wZe#o}yUcU${lJ7L4YJ z!zXBbZ%*=UFHPig>*PN*!>-z~#$omW>Y}xb=Jjn8XkHKTm=3_YG+~GRNO7T)@PE%H zT=@{?g+9$I6md%N0MF%bax32{B^xe*Zj}zr(fKacAhqJ?Vu z^w}D4B{S(nX~u+^YgVn9>zW!<<=bgw?S?;8I;TiO_0%k-MxXqT8LOy>Mfn+pD>#mQ z&T|&;w{tO<0yJw&`Z1GYt;dS1-dQOh-n-1XC)29g`pHTuZBUe@i~HaY&Gn9AAx&Jt z6zhB$fn{pq5ADQh#ed2+tn^b^n$)4S>}cFmL!3|5Q=PvAOvP2~s^ZvZv5HBdEMM9D zsg|8$@cJ`lSgk+ny?=dio--HEv#a>=UTYE7qvQlJ%=mQ|r-3l}gqx@!co0-Skp9*m>pP zzg&E4BUgCvOEstAnSfNOD8MrYxAVt{Ibsri^JS7)j^AXMDo)4m!^{v@;JFGpBVxYz znOJ~lsraL)#qSo>;696Wd6S%GIio&#dNXv1>{o;7&(<2iu8esdn4JMgT>vmeg^ z{Kc6~c<#V+A)fts4&Ymc-T1AEi$s^`6+RIG$2RIl2sjpJE>!AjKq>YB zP84O*zj(E1lsDtO)>?kIwnTisxuGtoVC=8)r)(@M!6biD?aekt$X6>VEQ0a z;tcNwycyrsC!Xg3zm8u}AkG+bUdQ-u#&2bOALF+(ejnoxGk%!yt2L_UX22ctDL{Oe z9dM_7jp=UzuEsqf;yJ)@ygXifjl3K9YH>Gi5Zox;`fClh$niRrJ;1k=-1_b9UjyAY zVV^v}--)P1?pXYY^i9jYi|?sx4Nn5zwCq_qmGP;JQ|_yvygBY&Ig{x#8J~xpUiWpt_m)2b z`17^D(3)8PA$|DlDf(Ldp7A-Lyk0OvzgRDyI9sRO1-eiF)y#wPL z)X&F=4+7Fjolh@o`>gKPf6+dJTVIO4Jm0=w59v>y-L3^#!muG{S=$lR`Ng$Q>oIxX zveyBrl^EK69qqn3?k)XlP+-sK@B56y4nfgu1o3?g{bk6xi+QeNxEpYRzFXSbUI!%k zcQL+;@#`4Bj^)3V`ELdN5!*h-Z)g4NV@eZq-pBO&44i5sNxJNZ-+$4hHiu9kJIu17wBVnE|f4l!1Cm2H_XDDKJDkzZqg2jwG$r78ZRG3>tmQ+ zV&u|@Pt|C|XKFO!yD|Ff9rJ*P9ZR&|ti2F5P`gXCZ%i4~=V@dQyO^h*d77Bs!R?+8 zI79EyNUKd;Ho%lIEJHy1M)na$J=bs@*AV6!V$2!idUh~>3G?q@{xI{;WZ0p7art|W zUEs-gUI#c%+ogpjOmXhgNI$!oaw|ihUfS@qe!kZ13_8!}dVKo9)~6vGY2$4kows?U z_JLoD5@=w(<93#32bbE1Uc9c~&h3t24cx~yyY<7T|HVl*BeMg{`7pPB*l73p_PNdPOaqW)XEr)_&Ch^x2JwqFJb%xNqr|vTdjQ{N%Oa|75Vi0mW|1ss?%(ms?$i# z`4EOEe+e?Rmzc-D%(=ST@k4x%%CVtzsN6*LYVp_!>a@{H&#raN} zSx>miZ0CB90=mY(?5ebV0bZrXmR=#AQ$-uZ=%+MWq* zg^Tr^_DzLHv}bTr;E47CV59B&s_w##`Z*ZK#rkB|UtRN{rE%Iu$cZ?IeeV%@>#TdE z&qntZeYTy@o6q)*DSnY>qnS9yfHWWTQ0fs|9&#@fJ{#RkBn$a{;adH-r{}=u-(2;V z!V>Vz(5KpHUeC1A9O=+#R_;JwX6XAgT0O_G2bgCgZ#>UNv#&%WkG;f39=jg&K|rE6 z*=RmCfj&F019Ym>zxV}r2j`CAn)hj6T1N9rL7Ls?Gw1otp8&hg?DicySRp3%y}JCu4Bq>#&4eVnLc<>8yo5ncB5W`(! zGw^2_e}VC%A`Hq2aWUYlV%r!Oe!=K6z*2b&V68j=*e{<1jL8=Px69uF?vQ^5{}<(1 zV?AQLwrPw<)BtMY5$#-14l?C&hED;yU^|}zeXNZnnPDRtW-~sI@qQb%9dLujXLn^C-UM$R zQ-}TB<}vL|@iWEG6u-Du)Kv$uyL+@a%DFo^cPHoWMD9h^S90zirtdW%)wY+*?&sWl zx$Hr}TPhEOvZd;ArvHNJF99AY{xjoJl03RB2d7;Uy$JA@%2KA6F|6R+X`EZj6feUD zrnCd@uJkd*&zydy2N}khz7zD_l{=YoCBr>T-^=`anX;eZL8c#K`XQz~&hR)>jx#Q` z3F3mP3XSTl&`9P6hCzlqLBFMPr-8qY-t7VZma4r>-^=tvj2~kBIOE3|e~F>gStmNx zqvNmm9x1jnEMs~F(<_)VjiHz6bxf~gN&`b5)BQTxRgfuhrtD%W%^#G z>}PmTC&>?T?&C~3&OFB%e~F=Pqx$VOlC#1_GFLD@jiJ{@eW|yR#u}L7XC6P}L56YW z*~#>sOu3Tb9;WYQ`d+5&1KeG?pYemJGg@_!c@8npA*MfWdtdyt_;KXER(y>4k1@}2 z=6Q*Eq@AR);b7Lo5E93+*^K`q)HB-=EGwV>~=Y+$^RbGw)lWXcfZaR+HBj@-+ub~>n!I~`GZ zL-kI_W%41wopSS-E17=}IIpYP!<>7Wb1yg#SMOy`P{6sLIS&G&7tC`AJa1MXVjfVy z^EmSy=iKASEuM9pb3sAwOQ`?RV&No7r1O2Tw@NxE;MWm#rsz(RO?O@^m(KzP{H07U z1J9PK3dW~7NdvWvdzoIxco#z-LqEeIhH-{F84f#1lY1H8&-EN){4ns{mB$%>2~w>b z{}O6`tys?{IqlihVgWS;81Dk!bB3RD1G!XZAeZXg$&|eeM;IPr zDDt?rJkqV6N41qQrIukA!y$${nP(^S3^Qd9!@Ud-GCaiaD8pk6C4M(~^O!P*6%4%$ z>lpeN`tzw@Lx5Oun6j7QA%@2o9?$nHsE7?h~ZAxR{8#{Va7*X zRPzYqM;V@Aeo;WRNrpPZ>;hg%87~74KgQ6<&|k1ser|T0@tutCVSF#}qMCz@A7cDi z!31%n>NQYqsg#9OPZ`6hfV(Rz0dJ}FG9|?LK86RGa;%VM*$LqAY;GQ3H_6$>FaXLe zl|zijId_=xJ&f;jlV{%NCXZ3(Vfj5&TRrewD)%sDAK>oFgG@ihP!|x5t zSd#M~Qw}oaC{vCxE>7dVoc6vrQ6*0!&tN-^YA6FdQalxuEmgJ5<7JAEVF3Jls{+V< zq$*1svh{t@%6wjuZoYS z+V(Kq$2|L(evm0g$KNRa?aX70iwP|41a5r-)lfEpYMu(XrOM0nt_e2^G1JHR5b*Aq zamIIn|J~wU;Jmy_PUIRGdKvl{#u@HmI5Lq(it(cp$tN6T$}xuY17GldB|KgXOF=>0 zTS8V*#*|v7)H21(lrF}7jK@p3*9`ZSP+tx*evF}y$tIok@kFy$0xln zCRN8ld9-+#IrlK!2g3U<&J#p_ieL;jSs<^L?cx!@kl9;(Ij*%g&%4l@s(a z+{3V}f+)ikq{9)0$112!IhAW>I6Red@gc_Jj1M!uhw%}{ z4>Ep?p*Wo-Kb>nkovf&oDYXo{7!ENUW_XmLm`J`6_~9%U$I{es$MIK*(6;l5d1-8L#KudgQ)V+{Kgt=MFJG%y8FS^0$Wp-z`1?=pJvIM{p|OyT$d42N({|qxwe} z9tPz^m2E!3()rvj@Rj4I&ZjwE%aksLLkxEz_fX9+HoKrTG?Lhk!Q8pnFZyBH5JKE(Jg#)lan zVR(2U_4n{Xs{bfcPB4#HMD^Gfu}&7Tl`>`OB5sB80OPwD4l`vR<0FiV#W#wPnYD}A zt{9Fm6lW2o>nzgS5W}Mk#o0tDWmwCwi{TK%VTNJ}^DwMsSigkkco*YC42KzxFsxll z{9O!(7!ETWVR)3GSjIdIhZqhs9AS8r;fZC`O6jL~PBH9aIQ%KHYEjE0$gq}S7sEg; zl^Us~{vKsm>SY}8mdc}EDkYY4S%y=W6Mrq^T?~g94l^8Kc$A^2<5CQ}>ZrCMhQoln zEBDpWnmEF^s3%G(!&<;wDu?T->%diU&KD?3U*SrkywT zxOV>7m+-uzT{!k3Ti4jf@cahPaXfd(hvbNSOHR^`YB%Ud^>_6#wu!d&whL^R+P-A_ zmhF)3nC*|Y9Q)_&_u3EJU$e`snOQYiTeJ3L9n1Q$muA;xhq4#uoRf2L&W$hhv_H|2@^=KP!U_vimS{}1`^00bM$F<${Mb|y9$6ar@ z{^YV3xC)93Y6`wwFkJ9p!AQZ;f|m>W3bz;TD!iufONIYhxWDl3!e192FU)f1xo5e( z?v?Il_qp!N-B-HrbAR9cvilA9SkFYyY|mED!=7nHHAM|YzM}3T2X4va;p8$Ow?Ya< zIqpGJ;54&RjK!^v@nViB!EKE)oL!cSCCFJSX5z-kJp5IV`M49YK-7taxJj`X_dCuK z&ERUmjgSqv0kRR4Pvfq|1-QY`g`7>e%drKwJ1)ZgjW9TRaa*GwToK&s*oGS$+rjl& z+}OAroN+;?n*rQHxm0`(mvowH4&uI#XW|b5FP`~h!2R_E&tiBr!zm2g8G2Sw?(|B6 z+fE~>%^=vrxsNiulj&b#c-wNy{aPKtFP}m1g$jZT^9UX*CD^}~U`GMLoy<9#>wnYr zQ&9eM`qO~djC~I9!b-xm(+GdlMKGs=pe%S1u)6NIfLF~V%8yQa8Ss{~UI(1M>>a@2 zW&Z$dt{_fXKs@0}g3G5nagWKh+y$u0sye&QngGi5Wv2sL`Iod)so$|YvS1E!RXsmC zZ6WYm7LyDUs+IuX{i&6J!MZlU3&&IM{;^~|@NngYfKyoVli`0FPpu481;BZ%su!?% z-gdwX7@kwc_ypp)lqFI8|Ito#>zMwUN8wvMMjg{hhBIdoyl^VPNreO#p0fj`4xB@B zUe!o-D%?u{*R^rvE}d{C;0+bj%Ip=_0xHhYdWiGrs6J|iq!TqpO2Zee`f{S|;l^(y z@ZlBTOyK2>G*YVmuCu-i`t)TZfP0q`Y%HNV75$Q>B+vM|{{TExPV#rmAb4yx{aS3# zoM!;P>iu>NN1^VM^t-(pX1p8FgITZP84EZ@i~}5t`Hx#|@C_Q$lK_ixPfP=~3~&Ox z0sSS!X@DhSI^ZOD4Gs6b&IFtyssKyzZ8qF;$4x5ScE(!}4Q1v7*1~Jx{vP~>CYHl% zXz(LT0qfycGR;MPe$2%BJ+$nkh z@4{cA(ZqM~SBNy+bBY4qgZglv95rd;_ozd|U-!8TuvmTuuu@(Qc!rDvo{4u7^h;(t zfmg{ZfmZ|KM!ozT@ESl(%#rkWisk}pVxGJf_ z^oHM1g5Km!fOYaKfc5fbz%}x#fGzSiz;or-0XND$D0?2DCeD|80WXmI0WXyQ2H1&v zSAzaxJHc(*(Pc#r%s;JxxEfcMFt0)AIM1^7Mr3&3B=X8@m*zXCiep9B1@ zd>-(3@%rM1&ec}}o(Il#;+x=HC%y&Fb>dFF5%4?UTqo`U=Q?qpz8dhm;9M`h56<=CVQ{V& zBYHF755T!z90uol@k6}@@ZZ6?K|BG@4dO{~ZosXJwSd0_=LYdCI5&u2>+OIqfb(2& z6rAUZ--7d8@v^=S@Ktc0D}D#gbHy9_2EaGLd8wFfpAI<3UJ1C!-UxV>y$W!NeHP#{ z`)a^i`&{9k_JzffeEfYBc&7#MJN1xiGop_x;Rn8iJE8aD?(2`llj243I&QswfZu_f zB&Xpv;yk%T*2^Z@A6AA>L>JK+j3izt>5-t z+s|yz+N8bF-fBPBK4AZ>eUJUG_K8`wS*x^c> z<0p<^IgUB(&T-B&oQ=+}JO9o3gwvT_n0;RMRoTDEel`2=*{9`n=4{E?m2-E_(VVi} zGjr$X*5~%*4&`2*yD#_o+!MKf$<56>EAKz@p2~YJ@3p*z`Ca*U$B;z$R5Vmq;+i^r*&<-k)CLuU!h|zPO|@PoGxrb^es?< z_w!g^@i|iTFLUVrckXugHg+;_4rjF2lFOzLTqX+JJkpRxZa=ho>G-1D+LVX(gUj zcp9+=o`YvKo+doaSoPN6X~ENqXDyyKJneWo@T|kL9?u3m=i=EY$`JjQVSOsYuU3~~ zg~Hz%!qX|rvEr3ul`6+-SB`b694lQpR;mizZay8hT8UV?6021u;^|7PS7#!oo{1G} zCgSRuShH#nTi0OKs=<0#gLSJ0Yhevmt{SX^HCVgmVhvn~)$1(Gh_zV12E-0LpF!?t z@zB3Yxt!I!(D*!Ceih#fMeHJfy_R%!$VfkKq#rlZKjL&T{@$44e+K365`)^^cpefD zXpi9YF+4xP^BmLe(eDz6^jGk_hG&Kx)Mm)*Z8PM4+jQA)Ux3dANKcms>}LUgNUYC# zMEJ5E!}9}qKc0siKaj6G9>QPwyi06!J|;Ih9|!+orX6=aBr39BLAf7tdT;hy^2zMG z#D3e|cSBg zc^kF+@}5RI#ChM#e@Of&|3%<`(9S9NgVt5>kci;(GJIZNkgrcId>s9G4(%L9-IwY6 zZJ*Hto>xG7h5LVQ(IoBMqI`W&%f{&8-;%m;UvF^PRIy}bFt)Bg;EM$V8~P$!!+pL$ zbXlOYbM9=hWZB}*&YIbsz#4l)v5+qux-__KlSy0V@9eA(Mf=0P!Md<78daQBW-gb> zR51#x%=E&Usa#K6FxnU17HswTx3>CXTb6C^>_pXOa>tw+5|Emm#~AV&d!sR5I2;T# z`+7s&!DuW>QmgFrhRrhTqQQt!Zbc}J)>KPPzG!SteQ0wi7VYSpy4D6w49I7a>-%E8!Pu(49;GHT zC%wKzbu|m9;+Xy6KqvheII#1OaU~=jBXtpsG-oJ! z+E^x-7aL74hjF$KY~G9yLl>O00@k|;eOu8NX%0oB_>0b_B~zQslHOTGgdD0*%}{U8 zKu>e~@_|q|us#@x8ucSvDH;_Sti~j%4@H7B1fd|Ch{`m3pA<4F6KUVV+T0fih2YP}L z41p;(&9;W^u^=WMnbwEpVMpLl;4EdaAY;2bA4=6c%`qu zhN?*)DMcg$oJ-lLhZQ->hnTGyOds2aWN30e%Yh~_6OsL)Gtp?4855Smsq~Iueu4R8 z%n+l>MZ|8MAqIUh(V>P+lL0v&H5sUuMd+F_bX*lI$LhF{m*@&`v}M{-n$fFF(|D2= znZfA6`pFC%1wYKNQ{`h@uMsN-di`BBV$DF99Tm_2r{w?!$#u+7xP1HPD%)fx!~ zLVipMRS3(XpL`8cs)kUM6O9ch6Ar}&6*U;K)C#9SsrFzDAFF)PEedOF3Pp+17z_45 z>SYT%J1>dA=tY!LJ)ND<4;==Nz>Y5`~2M0Ob>I+4XY^)ElUVV{4O7-*%@BpMx z>-u{A1CdCuH|0CJ<=Ibflg;MuoX2xsesV*KtIZLhc*wuuVLUItf}caB1);G zrjbf`xTZco1#Db~Bf2?rEq-aPSaQj-`EXaP)Q_bluzvVRsk+RWrJ_iy&gKeoJg|iY z^F&9V@fjJ!pemd#0#0S#$CpWQ_fStz>choT)tcg2CqBYmWSUx4eCa+JJaguMe8J|6 zbsZ~e7I1+?IBKey>u%{@jdhViZDOOzptwz@4|P6@)$9wadZE~iI1jBZ60NaFM_+p^ zg1CXxG;c-)Imr-AS;t}$LM&FcR$YHzIP+UsHa>`Tm+LEq5Q zwz{dsTi>~^wcgv&(7C3iqjAN?&icl7@A9Sw;caSa+0fbHZClyU(YR)1XREhvb!VNo zZWR)O%WY`vSk>um>S$h0$0Z>(LNZ(B&cp|5%nz{YZ^K_5zVY?YywmL z>dv-?_Lipg4Q-uuO^s-*Eh&f5vTA8%Tg$puobhB9vT+SsUGHt`T-CC!&BDb(wzaf$ zSZK}OHH|A8+B-TGy+br%tJDc5ELSBh=gLn zj!;iDY8>zQ-`?FzZDHw*pn242YF@#l!s)$`arE~1_0`Oy?wnf z%P`jx;4l^_HL4mjm55}I5ikO6fqKayiRO?$(iiRPj#Xo0vnCj;Hk*qkFwqz_4e7zV3m0EsxGiQ`KmOq@qUW@pfr6xnVm(9g;A)ksr-u z3iY8(Yl4@2Xg)6rqg1lS*ApDwAVRy*#JYhnoi&Wkz%JguB_lZlRc-Ox`ubqMI0+dg zklEMFxott53i*TNfkqcKH>0EK#2zskOzc%hWt(Gg((>4Ho-_|?KWSclFzSzl`gsRF zs#R||BcZoQ-?mU77#Ur!=~IkZkb$GwcM%RsMoEe- ze#u96`Oh5I6KCdp7J z15=&PzaUYbtu31_f>#@zX^y5D zOb(7>AwSJNMQl@NFe<@80{dapsx3|dPIQ#FVP063l?`4#jS@{|pvFxRtp$mm>W4&c zidzz$-AP9$XhUL59y-Akn+SOONv|vxxvazzPsgsN$+1nSIF}iX71El`Wl5fOy<2B)>6ATlkj9hAmix+WX-ng*p)7x)2^2JHA8`1Kbwu4r0%UJd8s! z(b7#%Y7L=f`#9=LV?R95c@0P((C}s7oL=XrquoH1uL$ zwyke#P%IB_4)q#1$~E+E3q|^Rd$4C+?~8;eND!USb0)gw5Q4VDQEaH0--zR_F>Ydi zj3~lXmlzMf6S zCwAn)NH^@0bZBhi38SVvU?;syk0mfP#T3d%SYn(l1yOfT-?rd}EwJF^UWf9-p%r~$ zEP%As)cL~x0W1T3k-9$Q_2a=#i8q=QcOshMc8ziI;zb5#kDsEP#8!7eC8>F1=d!NR zh=jPTiPIpOI5ET0$*f^uDr^#dVC%?X zB~oHdZ~zN-n1ZB%2xe;&+}J=0M`LvPAiQN$Xse}IeQ*=rwvbn{RAn5hCMjl5Izllk zVabUA$cr>aL+93FVnH910t-oh%fwo@TG|yLl4!4RZ>p!oPgFXb7HHL z1JS+R;55?a@g}hvr1k-d;i)Ffu0+_Y!hb|hgGTU~7GTxEQHA?d>(&!e+y2e2$~1^egp`iSmzeRT<8`eE_@oiTiDgoq9;%?s~xU69|6rC$c z5=TX*V5$I#XM`llWuAIzNv%R0w_-a70HV`uJIeLYj>9~A;BKWJN3aglNCCc+kW#4G z=nq#(u9hyhq!7_eO4^iyOKj%8bzX#Xu+DxOut?AsW`s1@6zts$8ljfc4)7#SKE%3S z_&PcRq41jTeTatb{$PKMX;c!{Y1Cl^Es8MeKoZeXBGQ3{dwZiH(YNU$o->K?8DqlY zkVD5QJ;k^wc?h>?+-R%EpWf(TuOFco-!u>~bA@12vK0bH5nZ(pba#jRAvooR?Lj}= z71lmv^QM@FbJRP3mS7zpCU*3Z4ab5wxu>uW{tEK)RUSg2ddtBp?~1DvYa(}yUOgZj z+6vc0=EM_1wBxONA~BG_nsIcr#TOR1y@2ftA^jMkXtV<-o-Gl6wJE$|d>_QH0y1$r zsKu@aAq_IN1|z+}@Z34o2)`|I!N}-9*tkXkxs4t~n2%i6^1i+>B;*e$gg-loMoqvq z;nbc_nyvHMAoBr#271`yb1XHOmTHhpTQ!noP6$wXcy2JFq=nyCDSnxPxH8lOaa-EW zJ&K@Ekm3Z4`9KdVK5=9ss5e1huT`6f?0GrjO@N?7VuhK$56+HmYw=4=dZUT!!7N&C$MF?`W#$GJ(zJo#~_B9v*iY6$dZvZxo zYanKxaX)5#J0B+Ch^cf)^4lCK}O*^k&-QEL}3P#BIjCR_B z7Z2c$PvUfw3#4Ao;pvp=)(+ky@o|yaI!#dDW;5)=i1BX3%q7{(GbNK|o+p`U;>mCp zW6g%~m`UCnB$H-0lN8(q!;3DO;E5thRJFyIk<45ig3xk@5-FBpfPh+T8kwQo5|Ul zIpz%6X6YTxeu{{N5fE8Ic8eE62#&iM?XiJCsIM9xaG<}MoP6R+K&EQ~W(=lY<{0+? zEOlZStD%i*tN$^}n9*4~-a{s$pG0P`+qgoajs=p(I&>w%k|OVD`rG7@ov^+ivyf>d zGOSz{4qB?Prh#c2?J=OVx|U|Opi-i-C5hw2uaS18w4VqDQs@X-`}t5gNi_ly^O!K1 z;f-uY;EgQ_c8EzTqT0So*7cfiy4d|Ca}7(u%SG%JAy+cT)P-p=v!4|j|aSdI-yGDrPq!7O4#@%^UZ42i4P((dg(Zb9>bcFTxNfhl=OO& zIjn`meE^JnGK+@N@=k@PF-FZFv7DV^pR%UU$`nYxgh{N@$+He}j;YtfZ~|~i3`-Hc zwxv}_&`A+qRQDMxH2D_1ilnV57Ww2WO@Z~2tqA+52;F@$kE%NQSWvHe-=m^)(9p1{ z1e%EObPsMBP%ycSau6HSG zRq8@Tt2=HT1eOn`)Oubp(uWHN{i1zqs2}@k9C`HhV>2EY=oeeJfvoPg;OO;YoQL9q zw!jPe2wNc?$Kr~}rXap%80%g{2Cm{fa;hK_!9bIn1=FRc509lx2aYq0WJJ}}h*HX) z;T8CmBwuVXhc-%4cp}GQ2nibL$mC8C$r?uy8`A|#u)|st=5taeI=1|1E}S+;@Qs8~ zjVE@P$wt``@XiAo>@<8~wNK69iRjKJvv=dI438B#96EzUlRlh>364=yD19-U zf75Ci!etm*yXbsOgnDt$$Fd@0u3_R<5(yd-DQ!8ft zfV>7WOpzEI!+)y2nS+ra(!h=)^09EpKZ;Ig$(CJcqLNFDU08yUv|&RDqc>a@MUAp^ z@*=WADQ?9FgLv4MlVf^OE4(kO)ueKj|pnx z>W_I$4wHs&;9Y3)%_$LScMD_f#tK8p03UE*BTfm3Y=qpDO7=6FNal!`oglX0_8`4b}>j0tM?<30i$9YIdhMFfF}8<0*? z+JjhX>EJwZO_}fvZv~B;Z`GC;iA!b}d?|5kwPlSoUf9eu_>|$3(x~amWw=g4&Ts_4>|L^pX z?2#$Nf4>`MxBhqbqQ@|tPb&Q>8x`)>eKPA$nM$9qj#HM_^pMqNc>B+8m?kj23EYr& zGW;>xwK%9W4SR9!x{ZAuf8j(_`{^rHxX6IFD&zorW4N3x`tb}zgt03#!&i2mxQj$P z5Ys)@hkSVZjJt>asB!HzDmrnP6`+@<=6q-jfXLTptQ2y^X5XT`A4#ULdBv$&a=nSt zQZZ^3imJ=1q4d>>xzoRMK{a^Iv$|wUiS;fjLJ*UL;)6Kgrdv*oK;i@snFv(r-WJtr zxw>?+Z%>-)GPYQ_w!^_TwmI8E*eR!H)7Bd+L}XOH5z0j~L>tzFl4`ZeM5}2%#bLFtH%e#IDjB#$eRk6;VPhX3730>?{s)c}P7 z%KQ~Z7HIi4EZql6d^MJWEX3gETO`aX6?G*EOP0;+?2K&*SuKR_ReAB!VK53ZRZku) zVd}=!NS=VOd@~9AHc@g!=7dQWO}{xQ2GXulrc7B?E-_P8GGd-Ot7M`A@_LE{%Q0I{ z9=71{$T;{^OnCc6{Q+-cej^ZO!l?H@&~zuxZo^L9HH?@}xcTyFVDPK8{c6^m4*21@rRi885b`>jOyuk=w zB;xe}IW4+L(i)85%VjCIVhz3z<2d#2D$=_ZZZK&Xv<9VrkC%?X;B4D)tkE05MJg+I zH1XBus8AcBe$`hx=wL+|$E7qi6|EJgbFpSzB*H0q`j$CL*P_S_X@!K98s0v+r^bXe zzF?OjD`FhEC3fH#K}A{>3}dei(^Z?ADEC}#S;(r?O|;Zc#e=b5y5whiB#L7v)9qR9@tNTS)0`3sA1 z$b8|zG(2-9Ftly#Gn3TK@K=c!eo1m*)U|2qTQWbfn5b^>8z*R=_FV?9x^3P?Rcsq@ zc+z(X>zz*FTJUyU5l9N0AuBGJ606MY0?vwCXc{ns=}nBCsCv)HD?(??45U)NNol?@ z+!`DN2c1LvV&(-{XcNceqFa5C5bT5aTd;5@xDal}WXAn)oD`Z@#qk!^6p-FE;5~T^ zSAa}Ds>^b9oZi;M2;k-D-3eD(H|R$pvkJ4%oVBjk=v`u2NMz%MIMzB;QIDUEKwK8V zohIY7Lv-{(Q}o^3^m#)wi^v(a+-4+;5ThDa2qxBo@hu+Zsl2%C)1970uZA;b@cWRI zoV0f(DR~V>OBAs2Wim@s*0&2Og^au6u!jUW9PEw>zQ#o_tIYwyX&#&`Mv7L62wmkw z7>-LA0Mt!5ZMqjlmd#;EOT?tC2t{yzI+4t9t#kRH$=m3qixg@KV+^q78F)KPTpdGz zVBE_wviMRaoGbagQJJcS)B^MhY7}EbPk&6EEb*%%qwWYh6LcCng*;7tm(VYp7}s2d z7gu}{iy`<r)`-Ci=x{QuiA z%|Bfe$%y3=V*~s@dO-8PO8%bY(ab5zeaZ$%hcc(wM%r=ADV9EE3E9oy)Y@_o^UrGX zx0EteFE7}*%--R zeS&tVV~n?~ ze#R1KDL8+joa9j!?GNz6kPfkow}_n)!bA98KDP7N!1o5|at*eQe0iCV{`hV}-IgFu zevCaQAN8606>}%Z#7w8?xQ}zP-!P+HJnl#JS`S$2)RlTPm8d!8PP#x)Og}e70WE!S zfR1DJZNW7-Ni)?&*BjJ#FmVvc3G85S0~difogOh~@)fR0QUP;n3QAP`^}%f!zlMn4 z@WA)JwuOS1h)iEdv}Ds5o1IcSZTdRGdUXpBSA`Lv;~QMtc~E)t#G`^^hv0UB?Ro^~ z@`U2eFW<-BPWQ^Uv)+yE8GRoGdg1S-hz{(ExGMTY&-i$na5^wZoXRPJI!_~ft5L}O z;)?M04rclhBTKW%Q#FAD5;}6j0UN$M8KhhG#=hS8c@!Ev%uZ~zR$xnwBLRVL7V@V$ z)G!aE2Wcm!j8(no#$K7Y)gf#O$(ZZ`)SN7B5R>otlUbqdzvWLwYu zAb!%mn3Y;SeGFPr+7Ag=bNvA!=6^i?^j6lPtzg<1d|2O!AKwjujF$kOWK_>iG ztfrgg4x!(wzlna#`tY)&`n|Xfwc!_MpkHN0>8&YiZ9z+0z!5QIjzVM95|xUgH(`tn z)stR2y>@Z7njPJSb(8#LQR(F}^-;|FcxBB#is_^0QM%PMVh)PA=~QZ+W>qhGM9`19 zmueqmpQ-kjsZ6T1kX`iQm!)a!#q`wrmZLVB)9HE;Rdr|^ziS0O`A6lB(r(o$%@I4z zBmB^I`*gG&fL*4_J6)8bP3k4tYYeGPkgyb~0mu^uMt-dnz1afk$d};71<$LXkYh8| zDAt)RwV^E4Nn=Hp_1|i1oN6n*&SYz&`xQl-ecX>gqF+8>WW~5!i2jflnaOzr+;{Sm zqystbGBF#!txbQ=yTt>_(jJK^?Wd`ZU<);x4wK= zitYzi1)Cv{uti8;x<@NT&8aI+6tl|5RPrs#(+q-#W?Q%6YX*UbSf^p+m{9`NLlTpB zB>SvFnLZ&a(%Vd*an;aWHGXTK<`H6rvh>-u0`*Zlrgsu)gwNgZWT#u zBTFW&2k;jZN{zWv4Qw@NDpI5VrpgvIcxep~dMV=m>Cl0SDnFsz`PTBnU&k6WXN0-_ zv?F3!4cRE}rO_B*Ez;U->YMaR(RJyl7+G0Ia*RaHXq`+q`cHZ{+fM37R;16Rq$SV{ zrSTSJrTFZFd}KFf9pptQqNmkLOd=~%@xQXDs)X*a(&^yHr?riCLHM>c);q^!vZT@GDKrg||% zq3$T-Z#AlNKD$!$bGcG+q!rCbz+ zBVi$Y&8UGKhBZ`C&aN6Vk^xtb>Yo>q(@-|DVbElw@Q~{0M++1-lOrJx$m>wfQj}#X zRgDs6xlblbx{-IFW!$<)?{F5FF3YG%lwP_TrL5)Cga7oAHtkCkqz0}cdlk0-&Gcua z#;t=M8?ack;%UL3v1x=LYBGkt5E|RNDsB)CO*<(TlOSmM7Us zzIH6AAFpgP>R5yJRzRY5?vtgCc55BU-j0@F9r{p@nmSNRC+Z^^sLqW@)dOos-f~C` zjr#s4>LkrkTW#24k#^MxtV0?-Z~3?_q)KMh<4V-jfZ0(~z2glQeHg~+eR7}0-=QI2vJfFg@V`yMfVJ$tkPmZ2T8 z(AJDLB*IaR7CSL-)W(ZuDsRLvzsMJo{|RCXK!MjKpor{hVB7JCY?=ifuzj&Ib^MeU zUI!~`f;^oV5%PDP7$LIQ7Esr-B_!>W#63yu zkxL$>N8ykvz}gl1nOG$-?-=$aZl zifl!P-tY_NRzLLdb)>Y{4*eNg`X8uC>0d0)EcGh%lY$l+dHmoe^xDV4RTzI9%-Ar@ z&0I1QFZps>_0@Kn4lH|MeLb)N>X~_vM=hzIrg{9_8t8g99*p?Hbe)r3sSsZs-I2_L z7$F*`6@V(F72fo66tk$g7=Z;-MAD1#q$ngQo%I+*Y)s#%P|NM;#YfdcaYkzFl-9rK zC#^ZP9Fj7i7fgU~QVF&XB34INyXkx>Wql#DHc(B9}RnV6qxWT{QHRid~>9T=@Z zy=v=)jp>=`>-y-pAh884q8UZwkUY>9)6_`PMvDA&^7x(NNb`7Ilv%kpflg6f3dgLE zmg5XqSVER@wDItB_)Jzwo}1!c;h?P%!uty42~>p9#w{if@=Eas7{N1zj?UC9NgXL8 z|4hnH?{WI}#LAoAhottmK{ncMa=X*0UaS0yj}9y;ax=I-MHY|@^3{<<`dC^^l0F9! zRR(#}C(4qoC&%8(FXp#nB(F&ysiHl&w3SNfv;(-u66&&-YSIM=LUYzw&&AR`10MtG z<6`NV$tnIoYPL$v&H}$@=z3JBImUX1ZjzpPwo?2lWe`fh;zK&SRB%p_u$KzY&;gLa z=dx3-i>q zd5{jm#OD>7+<({IF%LKj41P1My1^p(AQF=3ZaiRo?l3-wjL%)h=jV;j>x|DY@~3-f z7@yD~e^NcSlEU2aM)lF-6r??O{K~9S&E@i30JXX7_$$6H7ygp9)8%rOf7Z4$o{T*I6W>H1Lw%2c_pT zHi0n*`_PqOBnv1h&T(XUhOTzeKjdmINIJxAEZO7b)Glr0BhCFrP!T08Raxb3v zQ_w?_DL&QcwmUZ7VOJtkM`=Ew$K0ow(Q?emuB5O?lGVgej|)x!JTIb0m?#P%7Y%(I zsT|m-foA6@U+vOz9MUXiwC?F37fi;(%;bU%0?7bp-|y)ta?oJYVuJrZga10vMVbN~ zyo6jo6nBjA#B0HiSxlM0-l7?D0?0dz7&J06rV-+4N@=+%QIZXuN)m#S3iD@QhK1n1AtA)TH8q+=dQ3L%T}MRxwhPL4(akM|~g9?Ptm{)=%yYB0s)Ko_|Xfa;W0Q)q1xG^LbaYSdH-k*#)yWYW%%$mi~x zBSrC1l3g_($TN(ATt(nCc-@36BMI51X$T<9Re7>d3)W;YnP=BKSQjTtZL)+pPbOVI zBPU~-SD&RYgm^zxcRzF(z-OF4-SKSt#Q!uJOrtoM$VFJEjO<)iIrD9C=4cAx(b$4w zaXYHmQiXUduKY9$n;1z?oR$q9Xl?@2NVUe2z@`nWOB5&q+f8Y6MCBLaF9hqLTFn|Lih94 zlCD0n6vEWgVm~LA37P^lk*OR$nH%8^LR}J<(oiA@8U@0%e8gW|;Gp0Tu>=>xrU3tQ zglLiwHh_d&1PPuvO$>?)%`hhJ&ZY3lpyrYR43%h}MV=jqu4GA}2FCbUDmhe8iueUM z1%dP+qLw9CtljaKu#Ri$!xR5K1^u-9g7s2_EwS1<94ZQ>RH0|zIP=Lp4z)d*BB{{i85|_*D zqwdt8I|xHDkB5%B;7IX#HU2N4$;5aZTf4tH&HcJmZ z3DXm@+}LJNG<1cV#`=n}tkUn;9kj>Lg>aJcub8A|6+0<5dZD=3nGLCij=JLyJGsgi zoJzr-p=V9xX}81Sjvt=nj{iHJC!EF3;w%ogi!oP`f!$dSx`@d6dI&9ZnELNZ$tXiL z!P7FrSx=Z*Pk4r&<}5-Gfnz_eIdx~ABgg5~A+b|)l16kx4G_?#X&7Kf9){WYhg}y6 zk#Rdqv1N3Um7}+sHrwIm9ZtNGmp%GWwhT3ThCc6!pCAi`rDH^Ca1mK!46jDd1a?x` zs?qw$g{e~|C8e-)?C}hm`rrz&g@WNAlP05DV4-Q+MtQENgif4fH7D?Yt|LoxdKRHs zr?S{F4s^)rS)x)Uc@AuBk@CcgT~4;WQZkjHrzRkPCwH4;f#kYDQ6aeT;UqgDvX)Iv z(KNmQX2x>y9u+4E%H;#$24-U~t+}^TsF4yZ8KWT(0j?<5Iau0wTp2km!Y;i%#^YfMCi_E-sA=v=qM4h_+Yt3+`l zU}tYYfjd02J4Sl|_BI-qIDdvCn@U)kM*;HEW&mXh&+J`!4qdHI?p8YcAouKUB_hoQ zUTbLkiUhe`CSkr66>79I9?R<_kVlZmJJ$FR*E$}K$P*t=ZV4Ycj6*841Qp>l0yaXX z2Bg&ZoJwYPv#OM=RC%21!AM)0_%2Tz_In*N@=D=S*eYRqrEH>Vv{63I?!f><)=Cfn zan(p;8BnbdYobXtQLy83IZj*F0V<-+JMuoJYSnX>aoxUpxC- z&ySff?nj^f^W(u6FMP?q`i7tSA6jzJ1D}d~`>eZOTUv1F2lKAo)^gW(?jDIQeQC_b zJHNf+Tz%JLxBcJtz5}j_rg=CCp%)<(5dkBj6d_!CKtSnY1Hpf?^n{^U1@LpB;!A zv_AdQYk4%NMV>tRw=VauAF7cQ5=UxuEvSPzdL;lIsQXiffvT1`Tt>&6(DIg`#OkW% z7)(*quu`XKsKbq>rok8vzi>Jz)*h;9fHqHq;e_NNq=5qf1Ep+a0MCMH8UPR40z%ti z6ifybI1nt|Gz~3S?Fi8%`=K(3_K#!`_J4RL5E>9F1^m*ql{sL2AoC6~B0?=z1~LW7 z_prXeo(3poYHN@?c$AkAN@*IFP@9|#ba5t2Ge8wwi^x!l3wlJ5kS!1>UjtHL-k}^~ znD#Yf;3~?x23-me938I8VgL$;Dox1(azuuzB;_uHY(3>dk8gn) z894c9SB(c?;SDxH87te!;p9`2dSD9B2C8Kq1zYhDR3RRe*oI3$i#PKvXdqws4Qhu9 zR0{rRDT1;HUV&Ot3=|<`1bqvXu{gY|anTuaBQju^5PSnL+TwjoNVte_e5J+HluIYz zn~#t#Ci@ZOPl#tvLy24I8X#<;OBGF{1G*1H$+c*-AQpqmNva5vjL>6WlIma`Dg~`6 zFxx2VXoaD4AQCi{b~m+<$(LX-V?m+lQPF}3e^dapAi%Up;{sabM^bR$Or@X|N`v^q z+4v_GFOA4t_{YD~Da8t7o~zEKzjo1r~~9Fj$*j2K|tAS=jmMo(mi?K^Na=tSU31|&|I zAs~z^^n0X2hi9s&%x2DNhmrBonbqV5IuWr)aX_rwCezXQH767=x{tND&S5vo}5u z@PP&U8MMWP9+ zPy-?ez@mr;&_i_~6@*b7AKKtGhtV=hrlTxyDg&(E63$T=gA5p%20E}yGX#Yzh@_fO zE(*e3M|r2AJE-Id7;B0?g$~(3e6d9j+M!bgd_$T25XBitE=8mv)gOxI*peWqXq2Rf zXMsjR5i@-63rz&uV2DCqXkAo@5-koy9K4`X+Cr%zg}bsGs0I={QB0cx!vd!dc3MbW z)<>r?jBo-y4cZl|%?QUSBehuJaJT_bN@UO|sG3Mk3#UQ|8;k=Aj4sf-!#F@XZIyZ( zb*=(kV0@$A1Ulh440R+Np%DPQ0q<4?T%ptO&Q;)@3(6*KCZT1vWm)^4iY4Jj3gik%|n79MiT6;44^Y;@EF~p z(P+ewgq2)jOiVI-eMAc@F6XJzNbZ4B+o9@`?FVr{i})*`NAnuSFN#CD4wH^r1U4iz zJ!kpP+sv#B# zYrp#tZBB5V5(?x1!7>Iu=RT)f%tu_=NY~3TpuIRDenkB zOdLkeZ1_(=qZ>e@8>|tytbt}e@o+ib6D6>p0bz@#h8BjL;pQ;w!!3zy!*$Uz0J^yS zjGPz1wzOcvy=js5L7CPFvldnjI)zF#M^i%!bPLeQ*)<^i;(@E6W&|k;(4(1;3edx2 z0Ei;64P^{RmvDG5!+>s&{dJp~a32T?HsDL?;gdIsgVD z0>YtOJ`f$`RL61f^zjtc+(LK|8&g&VF*Ljeg$O4TU2O5XC`UYAF5cZlDlt5?s1z-H zOJI%kB!g&X$gc(1#!xv6!rcg^Pyr6#Wl(a`sg#`5X4@}d4FU}E{>%X%ZU)nd8JsEs zGm2ot!UMxNJPiHuMEK2>h+&ujF9I>mMD-nxj5;l)5W(%c4p*)f+(l`V}Fa3vD1R3Mg!xRFARSi%*HBjv7K85Sw!LJ>TXL?{4SBPE!GEyaXfu1wBn z^Z2e}xmdyz@I@FGXpTfxk@Dmm5nI5M2&FPPhbN2_xw0iopf zTujvyCJqgIa8p%pGQr~>cs|2zjNp59O{E=f_%N4BVI5w_{3$4l38r+IxMj^0CfJh! zi|TS2di2{d@sS+00FLohJ$GD_`w^0hHGSuY>&V%7g6i{WrdIML`RLH56 z(ai<^$(V0xZ>Fs+B+|1`cXzNhLuw^bJY^9PLJB343LkvMNWnlg@>upKrTisVN53tG zOQ9rDDY5^?Vn_=&U@{)n3*P;gP$}Vmxxlt9hHPlble@dCtj@Qz(Sw)3fja%I4kC*n z#|hp_N-I3g{tl3dy_BHHzF_$Z)q@S=ZWx%G_}dj}RSJ$YFoC21A?EP^736!31K)Nn zjchgB#3LHXl|mT~OT#}$ep`nQh<+~2>+EGzO7?<(0=K6$B0{-T;m+APya=qjdvm9g z4c5Z_gJ)DkglbUyF@p=RGC<{m6<>f6D0koF@ zbLP4F3Y@+Cx!%rPA1>e9$Cb+!@O=qLZyuW`fMjQpNFZ?LalQG@-acHeGshbf2nGH^ ze;&t=fOPfp75VWne`l_%7snX_Y-ewO0nZup68P{jUtd>0KOiH5N(oaM6b!=cXge|E zQ^5aKT#UqtNis+tupap5#8mo*@<@=Uf(h@q79t{UUCl!x6pHyEZn0gtAk2wi?!eR! zLB0f1nB#$SFp=?j88}A)b_YJ*z*rkR5GTu-35g133h6$S8I!<7eju1&DHXXNU?xT~ zCxEdvCbF6jD)D3%47cp*MCZfOGB`z91EtORwk}FoN+aF>(yD1HkPrp70{Y#kxzc{jENnbF?kUDO5k6>^A z(jM*d+rkJR24tCF=N*x14nOo4?B$F8A9HJ(Y;Lruz`N$zrpCPfRdpVM6T95XPo)HI zxwhD7PHhhc<6-+W&W|BmkFBM>(!rc^}MQQ*HVPxx{Fkc7A-2R%SuI3LQ(Fa7t zCv^QGJL|7yC%=Kyat1U2kHvoNX_j9X!k0Faw+brk{z27s;rw5(w*fsSfKC3 z(AQ>&9Q4IsOY?l80O*8h{j2u)5+MVpZIhwyCk-9_+|1e($maQ1vbFv^4Aqddv~~kf zbVFaaHX9Q}-@l`;yW4(K=nqo?N^1!k1Wo&Q>bV$Duv(*NTM9X9Nt1mCAPeuWWocc@ z2ar*OzT!jQvM0kG8G&qD+V7d~(}N{|g+7Cnw;8U#KRVD#V%z%5$)C@dcmQ;34cL~f zpUr%-L1vMpHGiSmHhbGPJPKKOs6^BZ&Gw6a`({ns=K25`seMV&mnoA+f}eY2WtC}{ zj%C_0LGloTtU-9yhR5TW zX#7(krV0qvOOY5WPiR>fG=T-_-h&D5^`Oe2sR0)_sbIEu0@Xz6jfs?L-B9aLgMDLU zxaw=44M9Je>M-C_n7Es1 zqJ`|pIpeHIw4>TKd*D%y2_k2UVF)9mlhUou@6H|`37~4F7ON6o$)BNR{U#S)``?A{ z+wA>_3D&Q{KC^OIwQ3l$e#)r{n=w`U6Qcs}D3GQol*1r9{@2UvKqLOAl-F;iomyD2 z(r&HA*za3!Kc8@VSx`U6k%{?21ppO-thER3uyMuzK&L?|2U&vm57~kM6oS?tv=in& z{@i>As9-6*+GdScy*&EYEO;~kl3{I4Tl}kxc-(@PN&ZKXw-#v-dq(y`{)!!s|$71rQrMt z7)4@gRCF^LEio{`jjRj43QEDyK9r9NC5vh<9Oh>WVp-Hz)FH|>9F-5MlUDUquIM1) zD43{L3Kd3R;s{!K9Kd1@g3^>u5tw39OR9oyhD72LFbh;aaY7V9rK(wfk4)4Jz-xISs-tqjQ3G_` z-|i?U==By|)E0ZIHbBLLfP_5OIT0+bMb1C(-0FW>T}dfoNK6Wtyk~|gQe`oTf4}bk zKpl#xe>fFe(Ga6R!%H=((3EJNfPdCpO#7Hf$T7hI7?=Y2{>7(4Gcsj5Ipc6?C%$6d?9*ZS z#dmI+^0B}jlWg|oeK+-)>k?>`%sA|Bl~S&v04$Zl2Y4?ia4km_nc1?b^g; zdt**B=3jH|kY*XQaze%%(~MyYZ)&E4O){_mQ^P5zQ2PhN3Ww`x(vDIoY2~oYD*sT( z7=Cu}Yl3G@EuJ9|Lv(5J7ZU0ldN!gy)aFWPQ0|*q_qQINI|SiyiEu%VMvd_)Nv;`cfuHn?xH!iL}IIgAOI%~O{C5r<~l<4nAS3uIXNr*@P(JK`v z3RH;Mt;rxx1JIFB+jJD~4ZmTvR7wHtT*;)r`ze>8T7MlxWPg{PTqf6|f?6bEI8lq!B?jVbPy0V57iy zBgi%@`mTkr4Nd6sZ~)3y`cuSpfu?3f)o(E!#bJ=yLgF6}jIKc&fN?G}$cq$$NFjyF zm;f~rLk!N1;16j|TALb02B45Bv?TnBj8~D=BmuQlRV|PX;wQGSe~R-TGJglgqTt0( zRe7yN9YnhTH|)j&lZG4!aiP9!_=jo@N6Zv^$V=)2lW{pGu0_p%Tkn5_MwQ_}N;Xgc z2V2l4QP8?^cpD}`TO-wC6c__TGVwZ?NWU%j_u88U&|ZKk4(`oZkSQucOM}cxjf3)J zP%;IyP^i90--gPIQP!6nCrHX8di=NL|8w<@#>WIAmu zZcs82YD|>Vc0{1@Kp6W&bHEwK0BR}H{3J0>h*84A$4PgXBQp4L0ZN3YAnWU5*t5vM zKqm6mz=IGUhvGs?Bo57is}x`&p$s8FNZ_9ka>-ykQYh{ecn2B!t+lm(CaeIczevvr z#Mo`7718~_zdvn(DtMg-fYRW7h5!Bi|JMQq_E2XUje_OcXJ}|U=J(G3tWVXXmE_vT zLsAU9NWpH0>1$|@&hJf?tI=s-qzfCVq0?Q1N~h)uX;ga20IVO@zC}tqOk0ggDWR{T zWmDko%GP=5Odq84~%+Pm; zU$FR|`w?~Lox^MyLxzmxr8iZ^I+&lkp>B5O)BCN1o}RkmR50^g(7>zH-*=kO^Umo$ zp~BCmE}s(jk9m@}Xi=}gkH_~M7nJQTKc`qp|N1FI8mb{%0b%S>(S>`tA`+f_c&syOp9+<3tjo68TH*c&`YFT60>H0SLvx6*wd zobz*GnY^A}ZP+7>zjnaRkBq)&=M@GN+Gy>b;L0uTK5AE5?Uvf8i_=Ap#*XtSJ;rYM za-_omKYmYFVZWyz1Gg9y+OrDIUtXW~^pV-Qy;Fy}rkT0PR&~@=lj-Zu-SGa)Ew$C# z-0QwyIAGhBv1M_)Pu+^bC3*&5`n5Mm+g9%Nyt=N@V`u@b z-0ib--ShByXPOR&WIlcQ;H~r8RkGrBRl4bRmaj~s)~xLE%xLh4nxUo^a}%!(TNz== zd6jTC_T(J+l88cGolDJv9+`-Bg08dbN;k*MRFkKl7F9zFrj|NbmQcg25P$*QjBaAB zxrN=^Z>@IiB=*y#mM7Mhj2d+w3r3HP=z&#v7l?*;%!dwwMe}7nF4Q1 z%acK?5fUR!WSe0o2vprzpC{nKi<;ee0+E0tASmjBD9SeJogjM@tbQeTeS4wMrZRr* z=~UVRY!E846TLsy7Yi&2DDlhpK`&mydza(Kk7vcJ-f={)Una%IBqpV}NR#8xb_^yB zOc|IhXtG40i!&y4#zZW5j)}=SQ>pa9SSU7-jAOKXzdtPis+IC5MJO;mM7S}P`h!jb zF{bs}p_U6Tj#)b{_1AdiJ^hZsq0)Jym_GvZYI+1tT2NeJXz@bJDt_M4>{;=HO{ea7 z_AYT-$4i#0rr@xT5$ZTP$h+{H?j?`{%Z+|2CeuM?O^iB`0gY5tGOl-d(q zUH-U6=D6&|>~sA-Us|(1Ld^l2(jnUxdu=f3y&xv#`)7;LqJ^xBgKxVf&zo*KcKNC7 zVtO{GgEe`XEcr+>9JMReN!Hd4Jz0Vdt-kbhXzc_8B z14klkoG?j0V12KuIwq%b_Kg`~z1Qz$mz~>Fy>zY9u_N!k*B7Tg?l!`0)`7<7v!+z` z*Np8QDV#ofz(xBq&-t1uISVXOx*g=`_t`h$Zim}PG!GlU&Kh|yRrsbdLvnl5WB0@{ zO#Z6)BZ7vNgDz_IOS7|$aCmLyb2i(Rzi}Lvt2q(NRhJMPM@MWh`!X&IsI?p{y1;01 z3jQrCIee#prlgv&Lo=sAZd;i?FuprjaQWep-%SRQ@0hS}gL>!Foin$`5Bfz6< z3`PIrJTaGM)3Wt&c0_9j?1-jALvwD!o3F`+maI)R3F~tW`}6j`+cm87O7D)2u?=Ct z>wnP@S>vC&;E|%^z(Ww`E1(@`mV9 zm+vnN-LB(wWXsKU-8WCv-g0B%@YAC$)EgqlJ>`USW4JuopcQ;!hwtw2nxibW)D6+^ z&&0oX8(C`h!GCY9NVYLS#!o9Rk+yTb(raGhgL|6#*G5h#3v_s*f3U=O{K5GiuYY~e zJD$xuJKpr%HZ%O`w4gkTccm`FAI|RKyqP=f z*ly47oGUxjJhpA$GFOy!xj5VD7c#cZ-E7&VVqN45ai=kL_JPF_1@&FSuXOI~ z8FI98Xirt6q0#lMbwHVu3fo5T|A9+IR_*8rO+MC6wf3uHYQO?o zvAJYtHyV4k&mI%?0d>zRPOvX^na0Dy2sQ_t2n#CdU(z=}P|1aWTm6>J;XDqM=CV|z zvV`di^A=_;OjZ@Mi@>-M@VNwHcB4q<2Fxx53&sYJabR}df5hxuq$H>N1N;gsXC)$@ zNzYk?<;=%&=BOHprH189#(I*)(WqwJKPnC}Z&{)=#U&{@CLa9zN|RDp(TaGimkI$5 z<5_c4l-GxSV(z#2#7iM0bpf|f(9>H?*Y&?>DDSqobGWbVBPBXF}J0MZ1`o1 z!sU6hGiUe*53bRhn{nBqujPAp?-?N%w|lT!WJ)lIQc_W z(R=^y_nLZKJivdQ&~@{pEp{(2-hFSdWr_Ww#r+LDbl+)ByWZ&t$GrZ{G3WCmR_qLP z)j6(n`1q#HkG9{uZCWtUZo z;;V3}*Mkw7%cpv3jMuoNu`RWe$w9HW^39#&9q9+}dz~<_e|1mp@?z1a(vb^mDA!B< z4-9|5s7$+WZ^I?ooi0)wj%{03*3)miHUIeKRjXD`oM`j4_kvCvehui7{c%O(q1fGh z7u7#cO|y9MOt@r%dEXz`cXWwPeZ1vs(~Rf3+0SBnY-z$?()-Q2e?K)|I>+Nu@sI&Q zhq8y-l%^SRI!}Dxft@-|7d(fJyZ6}sq;b(YVOz6M%{*8>!zlg^x_MUq*VN!U9%#$bA zpJlI%n%yfW@@wOhQr6MIAKgxs>z#P`ai+m@zW0`zVdd_Zx6B;J57j*0QB?L(&8T63 z!5hc%?6HFy(n3GYDC)mLvh-=y^a4+xE7O+PbkIHg_N->?hyWY2rBz>+mme)~I(dZ^ zVH`Vio}@B#Px$U9JGk=k=WO?84`2nny!_bcY#o|?TYvSf`kLXl|CqbuQI{oU38N;RqF28=n%wt^ zU~8a#Zr2)Z;CFQ=_tT%|2qeW^Yv^1gT=o>LKYK zjjHxrRZK2*u!b%<3JpOUlS}o5zU>7p)g5M&5_R5i9X0AtbTMydy!1~@*tzLeUTD|O zw}oZcv#mOrzuKofv=(liPHC7((~#u7k<{HVH|Ag*4)HlHpT~A(aYfuPjGj%SekjSg zx+dommUI5!A{PIRO>H;K7D>>$##V!(#c^<&Iw&-h=@&Y{&0i?=clP7*1iRPFGTk%VwG2QX zO`)!DIjPX*AmiWC2+EqN8C(67VxGnM#%HsY(f@OO1RIGz z-e8mjy-413t#az5I-fqB2E3fP!TY8@=X1c>w58|Y7k9aG-okxa=jku5NoOu$uDe(C z_~4nM<%5bIowL%eO$gb%`DyV7?z!R7SBk!s-`wPGzG-rnaLMIeJMtCX2Wm9zduF+B zz=0|mpR#ekOMZ3PD8?iG{z=pGw{dF+S9R(AV$Zyo-1V~(GV*#mNiG*y56E=kR&>c< zQM}^}{l_(N!O4crI-So{T=e(dsJmwOyu;rm^P``MgR2)W^Ld-K&_ly(&(_a(&W!!#Go-${G``Or?h5+;{!hBWwG@7hR>DIY%RM1dA*UJHBT{y-dm)i>t%np9jJ9L%rG_RZ;H$-b$k#t4PgR-!IuU65)XHrbGY9BmYxv;Eh z@{92oo=3aR%vihT`Noj~tM$T}+bbsv_cHGlXN^f4I`-Zo$%Bc*D4~=3MtmM@Ec^BC zoWXwP!?UIO^Vc6gB~b)*-eI_}`{@~3(&!ldrL;4Z_pBmfxC~j2>G2udYlo6MKYG0L zeBr`huHAi})OY((DYew{#Ng51AIS}d09Hdzi|s_ur6&7Br?P4y#{2EKXSAtU-G9xB zR=a|g6{g{oQIhbJcW6k)B8XkVFl-1ms3fE$IDf$J@!B@ZFXGGJt{kj+ znSlsQTe!j&0kda2;9G+@QnZGx!Dwt0sM(deK-d}t|7ls|?%=PL)>b8Ej4Icau7~N6 zg{o<_S>13+{k~py|Ji~yy&}^-Z<0R?DC#)(T*>10lW)(aUX7nn!1=Qio0$1 z%lk)hAuCL#Zu_*rv`>29l5w#^9yrPiR)5$sKDBb_gyo%Q)+Nk6IdFK;oo-iby*!hg z>muq$=PDNa`o3G;Q1Bw-hyAfBF{U{Kb48PT#UAcDZo%~Fry9BlR%|HR)wF1JX@dF> z+ixAu-bsAs$deWn&Y$_d>2vR?Zw2KZ4I>+8+kTKUd~CP1Uv7LXs=Z@rz|`AKqn1B$ zGJnvJSAMcLO@Hygbj)o1vhJ4>zXX|!PYv^I?DK;@e8=lAW9ok~xiEWx`_`gfdp3`0 z;)>QU@hYLc=-@STs;{F%@lbj6>$k_cd1sand~HyDr`C7T$?rp^ciIuMa>K=LODJZt zr!Q+=&&`_`bxag=kZ1bKqn>B#t}ymHwrkSybx=@>uX=DY+&?*d6&xMqU0yP5Q0<%* zTNW)Xim!->h}p{>?zn#G=6moR{vfwL3k!#f>?ekcjh5RU8#;TPAvx>4-Arv5m7FR{)gH3pK-H?b>;n@>`d;gJ7LwC8@3Y;7+lM} z^6k}fP0h>e;s&IiJk1~ai8?8+Pi_5yJ)Z4HbAOBsIuZGKLFm}9`m8=--+vKAP4Vxd zS6OI$VLYeG(ERD>%rPO8eRr47@{iRtd4Fu&$NbVgBm2|x`rrm|`58r2n zUby~Z%8>rA@9r;L^I%TVc2}o?%Nvqn^iK<%lV-6`^6d{i*g4hqNbRYjtja+}cfP6* zUK}6YW2ygvmuogpbP#Sl^L(=36aR$MoNHD2*vKHKddc>4d+G}d9xmKS?X&OT*mdnk zM2)`JICqYsWCYPz|?@BXf2m)n^U*?VuV&l0>4 z^!wC3VJ&0e(?jZNt1qRL_ZKSWTk>+-y)k^ZJHY&9#nUAjJ^S6>GV1XAYc(kzJ_D+` zuKi}w_IpRO44>r<^sm2kV2pW~n3{4rYSpM4_Ty;vT=V1`70fq>zcO@gNE7u=31l-y zl$1~I93Fuw=FFd8vnTkA?lkdxfd=0^FW~l_j+ee|ziN3b_S49af#HnXUH5JYR-YJm z%*ZPFb>Wwgqf^??t8zEJZ6Q3NWoq6tZG+#gkJeL1-6~pPmK<|@bNcSxo@44+n@DbU z7r5C?jGU<3mmbWWy z$b-$TbiHwStf1#DSzN}&RM+@@?br_w7yTM{sdT=%&8vpUD7Vo5cNg#7Wt~nJ&)%ujo96f8bM-#PcNz3BEi~13=$^YP-_Ppw5pWk1;NqV0iRC5JlfVla%tJ?v_GEfj71{Ka9~k^Swr4w~Y4L*nN5m;Cr`Ys_o=)0nCJl48uN!ecaJ52j|BE@*dv@icF$KvL~4@IBmP(PhNuK4z;Uvi@1hE(hrZ|lUG;O{!a?)Gv&F(|%Rs_5;s zZ9sr?wF!OfA=ww(gDLT+XK5eUK^+=6NOm*j#w66)0eAn6c!Yk4v=G&QS zufVLVc?Zul_ISA4^w7@po@MNTdHWC1s&iMRx3@B#R+#ktN##X*i)p$=f?Iq0eOdNH zr-9dK%a7__tN+X6nM+4R zU36fL(bQ1yZlFf9P&1{}#&^58!kRW*n)Ktr{^#GmFFEx5cnPSmbF$ZD{fAj~ivwhJ zFfpf2dF=II0%l|0PN^ngvxS%|n;WJ|;3yL?1?JYQlc7`DPM9O6qeOttJT&1#qjh5` z14i-0Qy<ZdCIuNw_<@$^<4H@3k8!A|I=A+fwTYnjPn6^7A`GEY} zJ^#Zj;mF< zb7AK^!*ZTrIS;X%19aw)N}7*l*nXqhl)L;_*^YCj*z~mRHi9akccCADyTiH)%US$i zFb{s-aG=ok$`)YiMkSAnt4`Q5!Y$9P3%+B!UApX8p-Z2~m1Sj~Ee9m%&FHx_N^+FW zsh7{I4UQW#-fDKwiN9%MzsGdxn7R7xdt_XwtT@+HT2RDIuD`|=&3!$vB469*9P4HK zb(8&G44Jgym0(TEit>&Y(WcV&-OuluxmbUjk7Dito7;8winRi$hg zcbzNIT5)1>epD~Ljf3W$cyQ#!#cHSback{f&~t6vzTc9^>d;~1g+0NG_xe(d zoGQl8K9?JNem&*x>Vi+F**lLMzdR;$bhn9uHLTUk9KT(#beLph)5WI8yWNd9no^~) z%lF+nn$8J4+OgfB6=GYXot1iLdS3oC_R+LsZ1;d)Lp2^5Wd~i|dvR#3+RDhh@vfRoARTorVeLH;VfBi`~8_OViKg zr1;!i=v_XrUi;DJ6|vb8VcdH6c!f#KoC{4ec9fJpnKF!;w4rVp_)<08Z631yb75h} zSNG=LwL3CujV!2hP+)fK%U4b3zb7^J>oSJp5)c;XGVPAtjQ9oB6OZ&SYsy9e3#-tWEte6((T>r|aOb?Q{Or|LFG%(+mQ zLI@B3|K%4U?#Gk3#){_qwVuCcqQ`@h9!L98B(X}B@_7>tQ zDTH68-tZve4TwLErx3*)HQQIdeT4`{=BlSrv1z^#vMFp{l}1IL$Pk@w?hny+ zPfn=?T&m)#G>kL16hl#zoqidzwQsSB(~ zX>UtB3?<^fkm?nWJs9LzaUzYviQgkg4ne|d(@p=J(uaH9bWg>mLN*)42Q#(;? zv^8qOUZd$CV4){gR_ICiEOCmFqDt&>$QqSp1-iEVD5ai2tgj;J{I5ggSbe}APeN1} zm75l`J_6gDDng#^X&9|18p23Y$!?Oj4Lb5ThoexbH{^{CGeTZhm2DG{sK4&J_A)PCHe{X)siunM!J}~6u8<6ZlvPUHcoLMO2%tlb^kM=0>+jA%y zFhT*adqk!Uj_7;}-JHm}ZR4aByiYzC#Rz0l_Yqo1*HY_L_J1#?* zlOd4Rl?FpfrKNe%Xedv$EZ+#_+nCO*(t=QdeGFAtq@~FZ6|f-4%B^}Ct;$2I@{|}V z7dI^etxJq0LyQuA5(45;{2|fwfm%`wak-fLcQ;-v`;V1{D$gadb+_bYr?j_6e1$|< zStxlF+l-N3freUU`ZPRp#)CZe*g zctEyczRu-yIOUnoe279*e-w&7nvxe#K7kXzj#h$ps8mU(sX2onwv2jq9q=~ zlSYSmc+f9E>oMq4E?%l|J7Gx9`LJkXvJawkfllVK}d6g^E2tL-JEi2c%*QraQh87i{_qjUST3wjDOWXN0r`HWbRc|ARYhGidt zR!71lAy?!+n~Q|0XnoySxI;$1&!`U^N%>Xu@TM^(vbHcsvbO5@X{GD==}TARNp(=E zNMFOov}LgoQX=u7r<;kG5hiBzBxdv^W_a2#H7nALMcjs^S+En66rz)$1|385t^Y-K z48tJycHoY|7POZUq$)VVwK|lEQ!~7_*o*MRP zsNp;aBey3pGOX2Bh0gP9(m@6mWwZxd##JbVy^dGF-f0Vty$;LVMTx8g$v3cZSxrqb ztcXoQ{b$}^YX)VS0k_O&*eR-r8~C5g(w=J^$W?8hLNOpt?u)Q?J z^P3YN()c(Px?g=jJ%CqfZ=cA=f{!H#TM2G?S+FdxEWfOvtkl!`K2{(v_fV-7vZ`7N zLsosk&}B$%y_89$q*8Cr{R@*eTVyC0OXmQ3o67?#b%~nj%S!G^UEVLFOt&MDj zPIVPZqb=SNpVDaekgwsFUw&D;v{zNgwCegLv9Tan`K?b-w&A(i zDgrs#?9-8}p!G`1H7++-f!D@X$QrT^l;~O;Gh3!RLtgZh_tzF1&&z43VfjpdQ`~A! zCZO*C$C8MJJV|VwU`yc~j!N_HVE8p_)k8zV9l!iSFMV2X?- zs%){WiWZ{+2`kYPdCIU=4odL#{%ZxTeO_@Hcm#-tvMsd)qVd6C^i;*IAW+rf3)C01 z^o?S^BYOfn>aG$)nMe)xh3J=H%xC!6rYxV|K?ek*z4mLWV(2#Y*MnP&`I}Dd^olKz zF_@K+m3lz&N~99dJ{;otFk!91Gauriqm_6VnNbpN<^NCOu?{bSd|1L=9VV%(gV9s= zQ(vEGpNxDc0r~8-7H^d+9wt#1Z}tB{yp1{9qxr)tV1%?u3>lR?eE{6Rx492Nq94&B`Js{>Cc$iTd!skFG)VN82I#(WMfG(@iItD zlIclI!)$Dvhk6bBOtgmrEGOrpc;YuSQM<)vVh+N7C74r~)l-@m%Bv{Jr}aJ>D=eXx zvELwD>o{<*u|3RA=XsdU&0kIDiOspSbSshe#!j`ANYlo$ZQ0l&1Y3VV+tf1S$~6$n zOr|+)kWjq^p&4*ptc8Imu}i|+6j5k%6fJ1IotRvgTWu>XeOWFWI&*0!F0g8FAqs7+ zqF5P^CpLHIvgrapM3#+>!H5k(>j=vCTy8$Q#In!p+)B%2Z6*(=rf#C9`cbU&dgwc# z0$pAc5jh_POZ{4h@d_(mrh6@(7xKh?fw%_}R@vA*XZL2@_j)&&_z+?yF94U-U~(aG z3xopk;r`NsaA{#lfsHW~3>9`rM9CQD#kyMREu@O<>A+0kB%lS1i+TbfZ*nwpc3zm3 z5xc9^uZ;xD3;JM4@z0$WW{hW=Zyti8&?TM6O`K_Bk(<8(a^3VwJV1)b&C0h?> z5{-}o-m?Yt_z1%tVg}Uk;64eq!j-8;gPUgtw1b5OlU1jjvdVXCJOC`qWP`c(5y}tLoT#m*J8!1 zY`hobbQXrGp)Ei+3|Zh0I&c=lLZ*w+E(0Pm1*RZh;TgfEa6@jajwsH0) zsG_Zbn%7R%pszh*B$^2AVjqUd7f!jvbZE?Uwjyg{6{7Z~h_QDi&*O701Be;Ei0NF8 zSTSajEAZ_1LK)s=41osndlfb>SpL8)=Cf?&b`6{XVc;6TK=p9`?wPu;LMDEx zI15!O&n!f_k?O}wRWQ#NIm3N-GU;{1hZn=;#4YY?R*OpnysFWjF?gc$;5WG%1uK%* zAcU*&x6CEE0%h_IugAu;LqjNuN5S5*tb5RkS=wh)Th+9vI=-OY!-J^-|@Rg56BiL`;-asm>GU|iy z284}TgcoIe0*#=-C(xB1-gGy5z=Hx^^XofN={26n^dx%ZID@7pD^{eQ&NfsO?l6=` zf=fcTrdWdZ!p>nUoVy?=cRW}kI?DT_4=fl*EonR2;5unJyT8PAu0?t*5J+yvGq|^2 zyJ+9q8_aeE+keMLo|!nRHctIGH(9|U>%*EG)>eNIArK)a+r0}F5;2L^F}n0@ki_fY2s7;b8k!XU)ri=#dF+<++R+yHE& zdEVGSjEL8%598W#-Bh`00J@_o?5#-dKpi_6RhT&_KU!X)Gj&RC8%o>rtwyohUTlMg24}M(Ld~3TM5K#-Z|i%!E#$S!@#uz45%np+VP~ z;E9J1BviEPf8QSTQlZDjh_@oIdE$1JKHx|k3+9-(6D#;xnZPj%aF@hc^ei^uWm0mT zW_Y~zHWY`$58FWx<}p|*-Yd|@Rsy;!tR? zDRnEtyr$GnJo1}Tx8YHcx*Z{ogq%C*>BV^iM=W2+8?yZDAS?B$s(skA!W^UV5gI$Y zsEpsPLk(4~r^~q$iOyXJph9ezD*aGh$nVTSrtQf^2v_gLp-9e&hZk|LJ`mtzf*}*& zY1xbAz@1w$Af!#>daRhc-8};sDw4Om@qF>nb85Vk9%3FLs-TDDb+E9YWu(z7aQ>6x zox35Jks`%A_aJJOr7_8X$hy6kM86L~Uh9FpcUOL zN=*9!fKtt(#A81QSmJda!Xq{l_+doQJ{YiNH$k9qpJjFfK(*GGE&^@o%+ML~&p;Mv z&hJd;NL42d+Vx26@+$^z=E_c)A>t#DVaOEHYGH}l5k3e5T`An}90g9!qo9{st(Xu5 zc2AEH^1<`Gp!iaM$RF!xrASvz@ldmsd;+AV(g15O6hQxu0-uoIpL`Mo=P3lO zXMvm2I#@l86wPsY0n+`+XOKegC(-!4PPv?CK}bD^pfqS>Ma?QoaXF7>cxY??#=^>i zuCfrzu{Sj7d9WMOs1#szgh%Em;Am373shZR>)E7$Jo`mL`N~Z2X7v&v9xvnJPwqxY zTS*q1>_}&DUI8KXDuU7i8w*-iY{lR_H1$7-U62vGpp)2nHcT!!)^hfEvfj`4D43L}N z2ly(a@7^zcDAI068ZJj<^3TB;_l?jP_Ow_DJWXaAlQT}iuzd7I1e1S1!dIBid1#R7 zY~t{Igq|XdS~4JZrzg(^6U>RU{}_XMpjFKI7a(6eUzOz@Qv@e)y}{7g3`!m>W-oLQ zD?$VvN}Js6ctps@(H}f~YJZ$aQFcgjk8E#7k>S6ibmOKlL$^ z3XA{-GuBS48B2)Y@;jd(wHXCI#WVh_8VX0C3ca30)PAr;95h*V1D##Gjk;kz*z->T zC-)F9FAw{}=?L^89Xd41j%IcOgx9EnzP!jfP(q-_)5V6`7@HRg~rVcpT(1(eH*B4S9WH9 zHL?E-vNp97#clxmh|f6`S@YQmZ#Pm3+DB)-XrqAsLdjhyM(f~Cl);LJZ2*qMJ@>_69 zKZLkpW0PU!S#)~-2=XMq1I6w}y6%o3{UGH}QBGudlrsE48JZ|VGlG1Ne~O~}oxg#i z;?9qV(yN(erI z-4j9Nb|rh;)etVnZhlKy|ADMc?L@JmiYUJWKMex9<_RQnSG}t63sl@pV`ZYQ!kUDx z;yynCx`Pd1{PH*r8Xi4f1rPtYI}gzL2+qBDN@zqcaikI{|AY|v=p@N8ev66Ya7E2V z9-fnwpN3Myd{1X7>O{APj8q>8q9&c>HYg&9$zVI4dVBRRu*O{+u>LnyV)3R6FT4AI z@c0=I-eA&r?f{7YQH^J8o!s&4V2QG5?o;EsN%T5Wjq7vNmY9Z9S=8&Gt1+~2>R3$% z%EOLq*$~qpD+~p)#v!X|N1%@2T1U65vTf+ST=U#c=4nELrgoy(80wg1Xf9nZ1>Ux?J@8<1$6>9qf&6em>ye=N z1J?~e=aqWA2YVr$`~O13!9r}s|E<465b~rv;LeU^Iyt7*f|ojV)1}lK#_kl8MkeFm zA$O6qFGFh*1B zj4BwVw<4lVE%Y23gJUxzhuO9aNqfw;(5*JOskpCp(Fn?*{Ynwpp;mz z9N@tH8I0BDq`;^iMJ{#@@r|!YMP#5FxTf8UI(LR)Isqz1C#_g3f{0f{mYGGu&O>w^ z?5x@YkWXMPfS!M_rVGrKynk>Ch=I>a7UIbpjd{rE!<^v}*B~Ee#ZdASm=@-VG&Y?c z%aeWs5A{lHr6}$#kr*^jL0I1XTTT&p6+}z0h~NMn?_GYpvf{olHUXwxf@l0w^^UUu zRjEyY;m2J3DOqqS=r*=QQ5zFgG~J);dJepuGAfCSJm}9vOQG9|nR#ZQsGqLp8It`= z$ljA=|D0tv(rribZN;E~sQ3$iA^M7DgtRG`W@u;uc0v21=vcx zjVN6qrWNB0l9JY{rh+u32k0_$Gm!@Ud(t!EcGO-z^F+xtw!9bLC~C2 z3l8JoLP>IuJMSS9%lA%3l=T)3cqm?rBFe!wtzbIZzSmNZ;=y+00lvGl;Ni|H&H z#B~agqD~JMeTdJ2qcNCo;=sxiZGzseAhYvZ4qiy%WC+0l;_(NgC5ZGb2ze@I(MB+E z{*u0b(Ei;=bN##7wZ2RoGDq1Stvgd71O4H)@<}kLrf}PPJdSW_`dvgitiMuE;#v=u zETX_+(DtX!Ilj*3Aj)k?xvfP)dYYv{UgQeJ_%@1s7fX~53guGW5qM?b_BF(oTkQnL4 zN%guGE5J7)bRRs`sSoIOZ!}qNKqE$CAqwkO&EElXYK%P|g<};OWt)~PCJ~dp zpiH`{ocIZq8+>iNDN$F9v-E(o3B~zJa`1>@Ywx8 zj+g4B?~#PB8jut_$m1>aBr*5nm4c#V8hBwclK(=UCXe$SJ-p5j^awaV(gVxj-|)zI&?hH;);2&DUU3GV!FIMDZ5#m0d?t6PQ_&Z~$5~>4+rp~wjU+chIgFTkG zBn&foFe3aaOZQsU1zP(<^tgKeLjMTN6Cs?~<83#a1!r5%At-4%hjMrr!m_gDI6Ts$ zAXa3&k)o%`p)(%o`z0MtNo?>bPOJ>JFH;>%Ol<+aK;8(!W5MvqVp}{c&A9=i6h_C zH}pVW(l_)VuqfkuA#^_ZyS@X_@}|GXqwQb>IJlbz5;oei$vlpLpw2{YCYL8Zm<2=0 zIb7aMV<+xu!@C%qNfbr7qo~|`n3XdrTkZ^$gB9Z)7;|h!NO}*26se<8GEY6?cw&me zcWh=Ues0 zpwqrF#|U#0;9YuimTe%s>&(IP>*AQqh!n$-EldTgqGDQ&IsO809ZdS-9Ld>`5MyZ$ z9!83I=dACRa}<)}<++j>R(c$A?Zxc^dMYokmovtyEazzELllnM#{kESy$#qC!dNZ0 zbaC_Eg67;67w<|owbv0vZNi+4_HulkFfkuX11AAX&Q$9#-M`p`oai364RcXRFnYAF zez-Fa(R_cn?yScM_ogj+uPN0jzwZqUi^yOmx2{BhyaJ{BD4)tQ=5K7Kh^FI993#c)rheP(@SRX!haF0zBdFw3nb|&Qc0aM1b_GkdFD+Ab-EW zRtR^M3UlXfY`Bup6y`MtP2?|i@cNbWtqpy2^KVW07d|jFVC$WM|&f_rOq!WZ{q$U?bIeyzfw18VhRtA;BzPti!lNd?m;Ulqvp12u~ z%8ERt*Ra7n;Bc{$XM=}*B7$gHPU<>JJpn;JnhJi(Pm9GdlspxwLB*%cfF!2?CpS_4 zlMqBpGHGW~+7bjNVr+~XJcBy7M$1TDU@Hom%;7H~hKpQSH5~h;M zou)Y_m!a1bCFxLk{4)J_!o zARPCSAhDH#l~DB#xa5aRz0qMM7V0-C7u6r~?jh2z1@P0I8nV>r4$6S5s73LNn$yD_Q~(Y??49c<4!63%D%QZxcZM^At|a z*Uts|xllhB(ep0XPSTVeTqrj#0#atW2uPXfQ%cUP_F0V>57_2}jQSSSIStYUt@0Lp z>28^`c?E&Pn3oPUehh(G1~+$*pL}^Z5~8rBBp3BI%He@F9QX}Er;zAb+}N?CSygry!;N+UYbz%pvlM@zVE6UG%AFTU4igipmo zfq60bM?!wpG)kBs^W!QwYsw!`$^KXg)#UM2%nIWFyw*W*-G*JgFV_7O4o0Wrb%2^u zKdNsxH#(;ePG42(g1(vP>OM{I`0MoEy)xD`U3lT*iB~WV{3{p__~5G+Y(^DFYfop3R=%Vhx=m#TOY@hf7QdV zXn3==GVS=EiPKc2G^E*Ck*Y+0@QYM6Y%IkA&w*avd!hEo zGX7ea_TrdmaQW4fq<8xCu>fjp;8$YkcYQ)RAMxVjsj^bbVf8k}+Q!<_JI>s``>Iqt;T(H{=F%zmXzY=;{JC zYEB#S(v^RYvlcPl+?L{mnj{S6c^r&gWFm%^11FJHnjgyNckeikXNRMSHg=6TE2PG1 zN@5K(quld4C3yzQJL?hP!XQhmUln!3Cxkft7Q3R!9D zac2YRWDhmaAHvq)H-HvS66m%ip9!p(k4}%{2Tx3|V}WVJr!uKS0lZ=JNr3Xx;aldx zkkf!2xf7_=p@={*BbuiE0B1KNJ4 zIQST4BifvMjstJ_qezPQ>~oRd9tq3hH|?DD2hw7Ps@6QLnC@rkK@Zl92n46S3ViQP zh=w~nkruZ6b{YxzC931`;9sH|=nAHPiHZpLC8`tXfnTEH=OOk0FfquDpZO)K7a?64 zIqvC~sElw97@G^O$ps}9x!JOyB?+&i)xJd4sWzk$^>Z1Rf+Kb6S4z-yUV8(0_D0*O z#n@)!^9Yl@NSVDXoQc@7d(^i=HGb2zLC|*zx2d!+cO|mrng5M{Nqff(~io? zTz-|{zT?b=zjXyFQa^hICPAM3BG>3-3pD;=ER+4vM)tRJctXh3h!&kr@?J@;g?$nD zm3^&5qPDNqi2lmHh`yhF!9(_+>}wx%Hi30U<)Cg%sIGn81sd$@T|Ce$T(6&A{j_~y zvSs@sLhJdIDMd-z#O9*T{Y{M8DW^+8}dg8$?6tcz{*TKRm>?cLGv#rjs-Z>+W7l z6+_O>^9g0xufO4VI&go}$*~XzG zcI?%u1ITxV%JrEVCDQ5kW|%Gg;El=7u=SJ`Lzte0%vH-B>*e1 zQ5FJQZg_z9!odi_ZZM9j3r7_V+rp8oyXD>Ph`hZmH~|= zX5@|~s?HrtuvdcTVMWNUuhTO6QR4~f$r(?~88=45^ftod={(TWq%R&%*uGjho<1xZ zfM5JsQqHijv%pRobeH-FHyO+YAQj>#khqAj@5ptO8eFJva1>9 zPgo<6i^fkFPcP)d<=<`STa1{Tvwc{1>RO~`o(X+Vb`(rrN5>+n?s)H?c{OSAII0ifpuRgCaBzQl_)C@a^~A7(`C)SC>+;r|;fDyuFUKb$Xpu_lD97?w zt!9XusGZrp&r?sS`QbQMdX}yuOa=J*G8sM9=gtl;M1$#lbPS#|GrCc81F1Z_*0N4` zt-TRd)4qq)$6uf!j&^#|)N(e~+mQnmsu9Kf>%o5(_~R>~)A4$Z;^}(4m*c`Vj=bo? zb{#!(y8brs(p?XG&+MCegAZgyA5sSN{l3{11L;kyRv@l^!fS6x>@76x`$$8EeJ?#C z>bDN+h0&<=M89-dZmT%m#m0N4n4RGZ+rWb1+QuH#3EO}Rnrwpw^BbuJU8 zrw0aD`d&(eiBP82-6&_ID2eV<(nn`}u|9ntWl|q(q<=^86s7RjSA#LtqD%%m&~-4} zXC;olvuWu1VETS4Sig^JiVil`5Vmgy1y0_OW@)5|eG&!~Oy5rVD>yrB?HISHE_f@l z#2-{TQ%N1=>tH%qlvvs_Ehsmp9E};$jkn~aT;!o-WtMl7wsAl?ss>4D3;i7g#nJyh z1qHn$vKCo4w1zQTUc;8U+S5{mNs5dCQzKjh#_~q+JnRAS(E!=-B=Db;=|g41WII_K z=33c??}D6U!_>`b3J|}G;?%8(-$QZgT(;u}kvrF(J(+vMIg`ARdI0%Vf|>K}-Bn2C zvp8C3I;?BJOMiPu6uSW)9KI@^+=))W6oIKJ zut%XZ&6#v>DT*>jqm0R41Q@A@x#DoMfzLD^rxHJ)L{l(L=@x$xKy&g#K&EpW)qM`$ zgQ*Sbn?V|VW6+Eo?1P(}Pg zTmeU`RIMH5XFv;TkUT?e&CcD=J(r!kvphP&R3KyeR9}wi6FhG$n?BqAAShsNMn}r_ zAE(BWBa3|}%$aTfX;e?PPijn4z_$GoQZqLGk&$`|1Qqf+XsQp>KStY))YG8tpK4>Y zTXdA#5iEQ9eJYWM{ zZ*n(SrC&iFBc(#hpH^*B2`^FtH3V}jT>l;i!zY-2l@eeu#HDpCainkYJr2YV7AVUK z&jtS- z4T(KS*ni!418SuIbJvY5J6bomYk1wjc7`g?86gCDo67GNlQ2H!^Y|bRYJ8AcX2%C} z=JD|=WTElFCPM+@FX53UlRQ3rY?TnaGyk_ zofwhv!M^=23iJ2EG>6YMV|b%~8%d`6BnOLWkiU&p`?Cd*KO9s!oO?jai&nyGfHfE& z!Q!_C)kS0YhJy=&NXPys7=K@Vp|jqdN=V1#FEj8tPE$YiO-|-z$^H;^<3i2H)Fepx zI!Q@agE)eOKe!1Tan}M`d!|Ca3n8D$-#QtoH<6Q$5oqoC4D6K2=$vW0O_?Q`4=#1haZ%5uQsJa zJkCc*G&!6dS?J-9t@(#4%xrXaq-76QVRb-58re%cNFy9U!uxIlN09J=o4^qyeCQ@{ z1PLFx2^^WLEr);PhdykH+W(|xL!Y##8Hwj2=r#EOdK1S%ec_^TupOZ<1jc9LxI(=T zg<=7#zQK8jsr6|cQCFvl*O}l&fA+)3VJ4<#isJ_|zeRE95h`gWPRk{HpF`N1OZZz3 z;mKUWPdS9Ia|!>*5Go=qxbM{gO#L&_Fk1?Ym><`DaQBohg3~#?nUxnaJIwwYD*hOv z4Lzq%zkZI5Ee)0;>ImlvL}ztMrtavJjC~Yxe?ZCDJ!NuZEkrVPje}J=ll&|vQwKR% z!h^G5h2{#j1eQ?k(XM1|!aU5O7a?j6J_n(a({xB$`+1a&ot`79spNfu(&y=P64hiw zayb1^J1eWHBz}?d_p-CXno4A>+4z3R&Pr>tbvZ91oz+-pBu!E&+Y&|{|7nX;valr^ zs{S;Ig7^n`q$xn0RFkFvaneVct=1hzEqjj63=h;{3G8vjVwz_Q0xPg*Gw@|jU0}sr z#PDsp9au3Bv3!5Le_+LY#NvlX563?*Py!K62TOLa%)$B+jNp^W#%x+ynS&`Asr2h) zQI*l}z@YItVqb)sToy@`b-{;P^rH?qu2&!MLzW<4>QtWC1CFU9QR+Zr%JGBwe=(+l zaC^dxgUGd?85bal^?!)Xw(EG2z_!bVL^^Xg&uK9I3YzvghshyZjoW)g#L3k*ewaS} zF?EIQq2!i5q+vchrn!kIJU4L!{cxc9XfiaUJXsf|2de7l2L5gW;%lq z>hNz6S&^y8Oge=1QZ`m!q!|+)$vTC8>OcJn(lZ(*OU-DMD6CPA98jN6X4>C*KK}1) z=RfIlUxpuKq%n}I&t~BL^cg|Y0rdHMD9cEZ*bcT@dj8_Jae@D&&ulSM6@HzRPThrx zBt})`=##j!@>riF>lFIjKm94`)06&;9bbD$e>X;H z42;8ApuhiM!b38wp>mp4+;wn%E`cVR+`bqDykB1oMG`CPjZU`x2kr}MtMfKE#m<|Q%qGuzVm_HJQftjfZUMES1vabfzn7h5ZKk+_x4;SGBFo!UHDFVj>Br$D z<{8;>K?PN(sm$DS5q#&#%9w&qq_$6?Sx8Si^E179z`knF=p}B)K#I%Pf(qxhI3Qifo|Go$$q(pV*ae3Z$ZWFHe+6%hkFTkUTg(_f zlcf}sLwX?yVmU|=)#T8APxT$`Ko&#sY9b`NZV*BoOKU9`xblkt;~l&vp*;o1!0-k!HU z&L0(pd*K30Ueq5z<$-Xob(SwVllsu@F34=scUAff7w@B<#4Rv8z6yhHSjM8O;=%f& zF5%>#NPX6Rx24p*pqAt@)Y(6xbcXZz>_@d-uXgrQVXCVK>N=kG;R{iMerM#LC}iUW zC5Z1W79lP90pj+dFaw$uTsi4qFZu`NB-_cR8YwDn+J}+VATQp#^f!{#sOJRgQ~t2T zKACH?m*SCU*~{?oMW*7#3csq1Sq-PM=*=Q{&NHlAl1XH0FV0O{Xr_F?X3EcD0AaEW zog0A@FOQSpu<#@cD9IH(>&&YJP5W`G5XFlL`Ehzf&M|CzM9=u)D>Huh$`(WW;ZqO@ ze)!e&_;391UeRC(`n_M+H1WkNemx%fzJpEF=fnT~@c$i>{XKuj1O6VC5C47;^5I_% zLa6+6T?kh&wIcW@Y?L#3IV=BY8Vxim$AGRs2ID?BlCD8!KmEw5CtmAUKZ>IBje@1C zA4TCGKZEBeTO6;G!E^)F3ilBS)!LIPT|-IqMosP`;u&BDgQ0R%vJ(mHt_<)mNby&U zzd(*yH@GJS3emk*<>$dji_rzv=Rl?#lkstOBgAoU4+q>Mxg1e-60T8^Ui86S7meU4 zcYjC~PECiJW=}&9D^qgnG?q5D0CziancIfv%TgyDjoi|G+*152f+@m$%z^9LA%B|H zU#ZoA#ttjLpmK|k`IZ@SDkbjsTzut!63bk;?yfVHNns|sn;r-{ekSN}e2 zw?n6o!(=G-09W<}ZS+abLduLks7%frvAsS}5AZM9j}Ex0_Ve-oYWxq?hzpSk(;Iz9 zA<#GUyI|rV3`Rem7^n1`T>|2Wi}3#l{7>T)`er)uqCP=!rUmiDtfgB>zo0{ZmMEzC zxYZI}YAJk+!&%jr3@Q~VwA&JAF!jCax9cqNSnXFmEU~DDLyk9ad^m^WIi;L7rWUk@R!6r-@a0RJ%MDeBua z+!7y$Df|&FwZtKuzgu^r-pU$ygtx~r}Qx_&x>g9rCNqDkjfH&=KM>8visdS{qJb?S{?WLW%sc7q1&5X ztHk`kzr&Wet7ZPAu$VaJ&8}fFC`{omli%zLy@6Yuc&F*eA(l8TFn*#Xeu+GqZ;3Vb z)6m1&HpQ3rB$TRvs`u00#Q&U0#Q)z_lxJrpg?Cp| zcrTY7TubqvnCC#&+q??m@FVky)l>XsuJ_!$6%#J z-AT4Xdr&B2lyfUfGOL)lHFl%)34>(!3*_@HRQARwdxV3_8 z<3!}N#Nx>mK0l0VIV4KqZIG%&EJH6>iF+qgAN}hfvb|EYg2q)}nnEzvFv{TYeWhyP z&~X`b60Cv{%>c!s4Hh>JaSx+wFb2k99D6}879WoOxOF-xKGBYx_YJwd2O+<>7QDN) ztcsKT-55RIOQB{iHypI-p!H?6kWro(Cf0#xADd_eVkFaM0`-O?dbE%bbxirH_`SHD zN75CGD@PHn0w{pm`xdT>KZ0L=Ih<)9O(ZT|=*Cb(vDnaaReZ8&pmRc?h(-%VJJ4RB z-Jl)M<<5;$xdzOp)S_L(2sMhcnbz7>p>w&uEnHs{<~EY72TRtBU+E>us(Vw;7!Yy! zfVuP+k3lQN;tg(XfAJ)vvfc}NPsi^`yu>++x?Iz1I(|XnRYu*1eA74`-`2mzXk53C z3a4YHd|hlq$-AeVi)C_zfX5s>-v%PuyTXt9E-X8@{1Guqe895Y*!vaKFj{;LIg7=k zLkJxrzGj|Rjc7%E6U5&*=cjQ(Q^b#qCiQIXwHv==`7bW_l-=5E8_+&RH-JXyXYSkk zQBDALh;`6JBXgN1eqk=B_adItg(=se_L&-a<+YIe+X$7LE_{+CyEv+H1{m3lW{N^a z&oi2X-%BR#UO0ww9xbq9qFl6TI9fDM)N#)9dk^n@tXwQ&QduO?ju!*uwK&x{tH&J7 zwoAkaMmGg=ksVfO6w{8XS7!d4x;xOjd4wD> ziP3Rb?xy2j=PX7~Fj^swVsr&GHC>!8<}#Xz#c#S;DHbr=$0#k9N)xSJf%SK~I71|5 z9%`74G4+U8FIMEpa;8Xgxwiw9bE7x|Ug%+9l$W94?oN z%a{w^;*s-OaUG*GxJ5g}jf`k-Jzd-?b}<^nwA;j8jQ+so9>BkoO`7O$QO-xilZ0;vv@qJi=yNf`$XdbY;_w{wrNCJQxU8Q{HT+dfW7MUN&^KZxBV`5OiCK)m60{%0 z9ODd>YsHRjI>zGBIXr(P1lp0T-G7MrjP`PC|0xz4Ui8RqBZasZ<8(2j7a8pXDv%}O zm>Aj1FBEpUxaQ%iYVKO zP;qlYM3tq#L&}8GC(HYY@gsL5eoXNj2w!FD7sc-&KC)zQxnyo`U9Wb12X%eU;om1y z{Fo{V@90MP`;YvB__ThHuwj@dEXB5#Fv6D)T8@HBsHLn0 z=^Lv0ApU95dT{ert~6(~&qg>Tg*5KbI+BvLNy+JbO=1C{DJW<6v$yJ7+AeWlC#@`2*7W5$MOw67XO z^*%9*!Uw>AM*H(z*O&I}xAe--SFk z4Za^CrC8#XLXzq~mwG~%%JL-sE>D-*D6X!*A35)gKNBViUxZXkj8_r<;C&n6F2u7O zK1Q54NU?%-atcBv+kvd{RMrXUnW$vv%AS>-ligB{e?=`5P14CJ*7t}Hld>W#+Pz&6 zUKynD7bA{vwxD<`r|%IXEASpQVk*Me(8UPfFi)t+%6Tf{Zc7&8XmSohlJ+#@ z?-}2y%VtYmxL>L1MOP!wWQ0--o^&nZ{Sgv}>k*nkN`E~_DY3kJH8)HAFz8Xl-yZrJ z!khEnLD(n$2I_Tt_7mjKm2H~;n@riCdQ)5O@V|pRZvM3>o10(d`3^ayXlRv{7XBSa z2?xL{Rsi8Ne_XH`gnf3pd=h_6nB;kK>CNJgAuA;9#Bdn?&9LHNV&K82<9^j9IA|= zVd8lV;tM79^$p&Ih(9CW4mXSFl$B<)xUK2r%4RX3g5r-(BHNA)T?;#ZubE_C)`v!S zKE?>~NpM*jK~=_XP~YlK`TN8X>N)nKE~i(z@jZRkRL*E`Yg_|eZKzv^Fw%qa-&apz zVj`ui81|<^yghP!HOE!XvoNROZG!V}LG3PwY|51OHF;-NPH8vt&jg=+SSd)tvms%V zI3Hn^_e!K+I+4n*K`Zc<-b~@#qOnM??tNy?_;PJSq8AQid!&<_xR-B3_(4^SsCv_}|i@&DBF2hjec(V{MM zu(W@ok<;aE(EdV5ZV?@IzsG*4L({rN-tXcOd05hf*y6uq|t4RuF$BJ%iX9^4WoNBI&UO# zc|xO2qX@mC(P1{BcQxwSmCzR&O~@zoqejE)2^n3LCiYDtRHRW;5uqB55?ll26XIEK zkC7jPrv9Gw?iswV3pQ!|_pEnQ*>W?BJ}C24Wzq1W;wo&GbNS?}i~4z0o_TO+D3i~6-r$)TMbU079^$@$6%N&i}|E?3fL zX;qQv$?YR+J+-P>jAXPPXk}HY@MG78f1^fHYb!*hM%3C$F@fBDc!&RC;^?YMF&6Jy zgt`=`3c83zj6RbjS(P}6(dNpd2OU#VCH64dBDNSCs;b1>y4(u?=&EY*IU|y#9RHHb z&x};i6_SN&uNSo%Q4RH?i4m1Mx2j(BSIGbGg3VP8VpxW@6)34`wWC^aj+4@; zG_u_6A=Yd3X4ySeJ;b>hoz(gO&=!r382S{@l^R_zY&Xz#3ZeEls%&w$rd`*#xhf(a z%Fy76fDcKv;mOF}s;Kx@qm9FcRmFs-C()i2Yr=2JxTw@<e^S*Vj?l=Q`c+jgF;k-=pgv+TBkIlXtNMv+8Et@GmYYMw%^D48B6Oe1=|7^W zqI!sURHL6q)B-)LbCQ;ZidQtcse#ZN8ofEFXZ28cSEvme{6`EO0Q8wcs9oZ>^uErZ zQK0=JgNpH+aQLZ6DuRP{J=+v{me#cv$shv7XUp zF~0kh>SiOaXjqL85suzg-UW(Q_{Oan3Vy8y!Lw8j#78B@5 z4&|m!e!Tiv@p1<3u0Bpo?xScgO#Y<$1o1@%eP6vqY{aPmm8-IYH7AP42Pjn8wX$ZJ z_zk?)L_4*ZLzR)>Otv|J9y_gLDzq_WMDP}QJGs>Cb zL`GZ1wr;Cx&J+oa-Wap0<}9%?Q?9*cgSc8Dni*=&5!Y)(Bj6lyn?`SzZ3XRKjm{p_ zBF+)7YV>mCO3>a?NZfkR4K?SA`9oaEip6AwjqnS^hZ@lczfgS1XoI-9kkC(zXuLmBb0OZKsJ^X!bLw+7n}vUAP!@+ zPP`N^tGz)?K8R@R#J!;1DE=~9<)k(4Mq!eJ1Kz5~CRWwnBuW{r6LX`n+FQghjm|C{ zRC}8^Pov8k#?;;}$k#$VFKalw_D=CPjqV>hqxN2L%2=X(CTZQgSIjzC0)e6PGdC zDjq3%q4srgyGHkpdbjos@v=sv>%OUdTl|d?&8^!UUB~s3SBvT zYTZYoY$Bn};;G?_>pm9y7;OB7--*8{B;IczR17yi%_tihUa$L3oWw}Y1>cKpn%2>EV8Qod7o#mA*v%>U zn|M#<6m<>1mp_U2>BMCVe9jxH{y|avJ?r(h?ydW$0zjXYe^vLd40;A=Uj|*>`a@lZ zIGeeUc8lQ=zl_mml4!q(;u)0rGf6yu5z93qo|p+{kEyxUQ*xeMmm8(Q#9T)|beMv#FfYd{{1KL^BG$j+T?> z5RK})6ez8bc&JN@sFW8oS|?t_fq12ybrj`XC%)@S$a6Fy#j{ctcS5}w5zj;GE9FQ= z>-=92+1I6uykF78xAmi|y2u!ge#n;WDcFC?iy3VNdcCenKE{alL{e1C=Q0TAIFc^W zy8Tci-_9Vs?MtGNg}fV`T3;(aWSWw*PI~4NZL|1t^6dpU&BtH6*xWF(V0Jy4$Y@JL zIyS$)tDMg{Ka<3zSzf|O^-2%9jnP)|eAlJ*J><6<^%(YN8F6bb7|@igk7m$o=-a3q zG>_`|ETCv37_IYy3QmYXz5s0eA0U6Pb5=&z z1HGeZYoh1Z50oEi+Q#T*Kz~*=aJjC2kd*VOwMu7$Wdo!2B2{;9{b1R;fM|pssvjz+ zFj6^(%h?L~KkW0S94;4V^c|xm8r@J&v{N z#q)(v)sL1RFxo1`oJh2F;)G_iVTK&aNLl$Tc_<_0b(kfO z*ND6hv*a?3$m=jmo<>M}9cIgonzk74??=f?G};Ug!BKL%M)OenQSuIr{um?lutvAy z{rxEUf<|BCt^6oSQkwWxxq0w-C`4nkWkjGMi>6`sbaW=?-*MON7)F%yndarDLN1rN z8QSfbrRK^vxIWePdGaGhO1tyqSB%z+W~{~Y8nu0y z9II*6c1Qk3BWn98@&ZQGcCR>9?$k8Wd_sPr5!IfMSDl)zJt6OB^kHE35zEbld|V-} zJt3ddG^#xz_h{O}f#VyJvNVy^{Bl{%h-#nKutLTZ5{bIeRj0`b8QR>2)8%x9{M{!< zi&n}-8a-EePVq{4ibi`I-;^sQ{U#c%hCMNdtdw+HjL-$aV;fe=2EHw}LEPA_MXZu@ zHTqK_p>{@U1gw(hDHDO>$6RkY8vUYO*Uv+b>A}@*2+a1 zQE#@(6B&^{FKSpPFH?x$|2D{N8qxdT26>Z4^!~R&?$T%h=8z5YevN4T+aMp;==Gu& zu|a;R5Nf!(VT1fd)5!Od=VYTSQV2QA#YWkrY2=MLN5(bccTqWjk<$D* za#W_A6z9lsjMj^pW~$&Ed89_GtQ`&K%J~`{BJXI}B+t<39Pd*N=gV_6x<2?+!v*pp zjRNND4HwEgG+HE{YS=7)r_pGXyGTB!(L3U!hAnb0BQ-NzEWgmS>pjD&E|%AwPOV)p z+I-(OTq5t(s5sEkaH)Kmks4K($uAfwE4W-XtfX?v3NDxaRfLokTrRsZ`Y>?i5qXW5 z%ZNg31((Y{nnqS|xg4fxHw+9lULnubh^*jBxrLFE`YL%9qxIrV&%D~JXn`HEsbbw?vzirW!t_} z?q&30V8Ddq8+Xdj6ynz2CjY8w)Y{wRK1~}kAlZ1k9I;llomzW`Jd}}=Y?qwGXuWvJ z|4_{?xiLfYiaX^FU5@#0zd_=yZ(RbEEHIK?Ka&kTJt2GRoM)P^H9jFnXtddSt??;2i_tp2f7ET( zGjg#i=kMRR+`?=?OnS7_wNj_g^P)~KTSy~bzd295q1|G4ovdA>%4Enfg# zs?lq`zHNM7{#K*Ud;JJ>lSV5?{M`70+@;YuBLZDtkPj%tI(t$6fsxu@zbG5dqSmex zn+~e%`l8&$Xsf?yYJJz2G2W=sg zOfzX4`be9k#VVLgGm~~`UY(ir0jLQrF9m@MsCg9@85mdP1{l5Qy?Q>?%Ov0nwd%xekUt!j)z4qFBuf6u#Yp=b}J`)S69~w_cN{{A` zjP9#gPVd8iWDH4)<34M~6UOALnRgYQ+MPAyNux?q+$Eol)S%82S$=Hnl+=*|>g>nH zUc21t=JRI!*x>K+Is1U8jFhB~7?krVW2dAjXX}ig8hh-Nh1Ao=C+%`P6L`kB$4>FQ z;2GnaIt4j9X8gkVshu*^`)53BJTEDpo_8a4LQ)*}GWDGCnxu}%*glUdAkse{*T&}! zpPhR4)aR<7Hzr6*YxkE%x1^4Uc7JKyBq>V0WyTA}op#DX>X`9>U5-+}Xgp!3DD{iR zFD3PBoOyK2IBxt#r_hJ(Gfo&~AJtl7AAW6ANQ%1Ng;brSu2SC!ePqUOj72(yyent? zv$0%Kx<@Y=?K;o*3!E&xWW3)_9Y5#eGhQ;HlF~i;7vn3sob>2ljAN2wk8YdsTjO_j z%0lXQhVd~i8GH15qsmUPN541fC8c}x2V;>=p+|Skc*W?pIoYE>8e1jB9(@rh{uUoC z>l>j5X1r=#ty9SR){NJTJ0+!i^k?H9o#z`U{n3m+8xPp2D@vb1>L2XXCrW=k<1fZ{ z?9|<*e?;nWN$K9cZd6>y_VoC@ZuCovy)|myFm~H13#q>v*Go#zj=vd?*eUk*Z^o07 z(!Kq6<2ju|Z;NXFk8#HJY~j0@EAOA7%(EoL-Ue%wxn5H2ZDoyN_UIJyaO=a|CMn%p z%iJX?EwyDH(RngPmia?TQR=xh9`hMHWg(Ss{?0DPG4h#zvQv~AZxDW*l4+?6%wnB_ z)Jtj#%~K?$r7kjSBt@y4YKqJ`lG6UO*jy|r?LUjnCQ0p4=a|c;6q_quoPM*@#pyRM zvN^XImzDUuS zLz2?Htu$LDwMV^d;DpY+$WGOmmz7L0Z*Xy*Vt&%jdoCZ(gw4BMc~i~%?Yswly){!! zwq}Xc_ZoP`TTe8vM#!uHY*r}VUZm9lT&HQxgno0N7EHsZuEuT;~ zRDaqy+x)HW1J0!$s99vrx?XHn$40rRwmn}M*4aF4CS+a6Yo>}^SKTk zx5AKXs6U^@x1p*Q6aTDGuBj(}Mm6adoJP6Z8*(X+Pr_S*LU&r!wS7T2w@e^^Lmgpd zx*mt~{bi&Rnrcpn^{+gWwNd6gbt@#n8!3%^PwP%VcPUeS4YldAhMGE;xP}vEWawQb zta&RS^x(pEi}Oy;wD`ZP*y0CWEly~%8${Vxft%{5=dhmZ(O(TsHBZ{TV-9n_+D7_+ z1t;}ssvp;sm05~%@*XBB_`Ad7;5ye0O|@?wId!jDgQc!Lm3n49Zce9W=8i|N$l=GR ziPh$LVharikSZY-hTO6NCw)-&jQ9p;J>3@d$%~Eob$FZV!Z%g|zM@;p8SfeF#M9&37Y5H|*Ick$d zw)TdyvOM)eX-nr8oy%M|Wh!Q+Lm_Uua-F$MU72blAdYrn?WQ`8@v_uTnX{zmf6V1f zFG0VuDJ$UtETLz6h7F~xZ3!&d;m=UCPjKj8z@njjh(mFEj~0IXB~qppd3?~C#qYP#6)lv?7y1g@>xvi;s%EQO@7U)mF9cnsWSCI2&` z+gBH{2I3}e;gWyOQnped<1$C!J!_f!(Iu2Y(>2@+4`8a``K;mn!uj-MQaGBZ=Pc4S zCEFg#@Wwm+q@g|ruV|{zh*x|oT>DJTL%litZhV$_*Dp&wnm!h%f5Y#p3moeqDUYfC zQGD9c^~4{VNo#x#e%??Hh5gc$0cr78k^dnXoo~bMc~nH`tEyN-O*6~tp8jBRrq>yt zsWo7zSu!^l0-9i>Q!kmM$J?Y%Gl}trXvB24E~LUXyvQoC!a@O45jTy!<(l_nQ?);FDFxK z{5lQwX<2KuejdOqc1Dw$(fV=V_%&!DwNzMz(#I8rSeN@j~Cm+;qzB5U--)+sot7Ht9mZzS#Yvtce{MTyD#gsPRrCaoaWNWd#gv+a1|`gRQHIzxi$0N>bwfS9^}+^ z@-<{ES;vY$5O1bu#3$jO9p6jO?^uW)oeN|Id>-BjPaVXMX@BCLFB;dD6NT5puRY4H zMEh9n;WN0UdJs8y6glzkm8>Zb!AF_u2q3&JRtirRUGpSl4!#>s_RCbi7u(aNbWg8> z-$pDTE78qZDe&fw#4zK}9cPBRd*ogzGWd8sa+gZ1Foleyw@ELcLR| zO#OI%oNhO_RH3R;MfjBAXE(~!6uj4d8a`(Nt5q}b+m|)?d*n5E@3>Cgr_NFjsRn!& ztLJd5`Y1ln;jdg5;&Tr^`S|R|=WewOv}K?z18o^-%RpG5W8rf*e(CibeD1;LY<%|Pb2r|> zzW|?m@L7(}etho6`=e{|3+C;3i+dy9%6~t8o%(}#hkLW?R=xN|(}dcAdUl}94%D*) zWpJ30*)BZ0G6qj0IxP) z5&9c|r{gGzJog9;7~3a*+;{-^>FNPI?f;}vX?=atr;V3Ex!0(+@+UoH%(AG5YU|l$ zhjB-6@|5p`{&LfkLNCM3z+(-(JIGs61;)h_o<{D!H9c#DtOFG<8m(4W6YeWnE6(|? z@tV}R-uhd`8^(I;`=N;@d1jiMgy&^-|D-vf81v?v>#c2}vjJaj>IB@p?h^A&k#>`H z^O6U_(^T#3DEq###Djix!6K&>$Y0=$StaBYhL>8*5#A#v~EK#tPUFZyx?Vc%FH(u2p_aYp-H^?Ey=;0pwA6ui-3k5&u+YS81JPQfq2`Pdw@Qz&mL)({msZutBmLoc9=N z*qiqx;K%dsFt)CJ+PK45HvLC=2c+g|>$&EXbszAD&94LAizk`X)e%5M-vaLu*&Z^^ zuQSwB#v0#^`A-?2Ew}}6XW^#+Pb<13|2b&s0zCITRx`)EN4-#Se}2GNjazz0q}1aA zA2Mhy$HiJ+7HbIuU*UZX_{H8gjlp%SfwH}c{+3y-vqaRyZ%0*7w@&&TFqMxXz^2U1!pYSpOT| zTkPBm+CEcohu~53vFbOxQ7L;sDEA5cy1)ZsT@Q&=4~bMqL`z3ROAm=uk4r0$ODj)F zsr6P%%|z=tU7J`1ZSqCqKCz9}VrlEG&o}z*h+Xq|I<3Lfmf(9g|2k!luXm|W6_b{{qmTmLY3Zb`LO+I}|f5wWK! z(3h7Sw*IheW65JyZ_@`#p0rA8BPE-xiuGGdTCKjeLGXXR@v@R*sI5%VZ;zB*F757> z`Zrm{=R9a$Eg}Y1;*0aYX2S5)-3{G0xVOnSmzd>>wm+loD}vK z7*nRK@>g2_Ue)ejV)6Ftc4@c3!&~D8p7WdP0r!Oe}Of5%60zz*6r{ZTmkR!uQqO-^oEx+>wbT=XVv+K0q>an zJ^w7vRPZ!-;?tk;H+ahHp7$RRIqwtrigkYF^wI{;)rGT5U$H(meJ*f3&oBKta^cwo zQj+1)YHM)mHKj|??)AXGI{i+x`_<`REPV`pG1QZ0@02#c{d4L87vg=oC(Vll-Z=Bu zrAs{X+Fvex2DM>b_Rt%*nj3IO;)smth7x3GydnGnR|_=0NcveLr$(}U!6Ws_NJn>JZW4|_q4Ie!+V39JWoMyn>^<9 zHubp0`Tmp*IqM&XByrE<7T1VP9^Me7ojhI^vR0bKrT{JZ{lXzASTO zg3QXt#V5Z8Yk$*x6V_g4y(x3Vtvw|e@r0+;2bYM>mzYmXXaoMlgpI+tXZwtc z1&;)4J%3uZ9q{r=mj&ktK1c8cf-exfQSe5=!-9te4;WVa=TYjK#s`861U3o`3v4xc zr;lUw{UG5_gZIc2*ws?QYN=thaCQo%Qz#b+ev#mvl6#TBP1Y%hzN#$?^SuD=R%51Y zT(q#9cHUSXvUV?BSsukG-)p>Ld1h=Xzucs5`$Q*wqLUzgZL4d74{c zen7=R`GOh%yiX-3__4>>1$bP25>OeR13b(40pJ4T7l4b6-vBlmf0z(Nq|7?k8H*+c z)nmYexYb8kV0KL~Rlm6b^zFcdYFOZ?z(=hv)bNDWIMIjkr#!EL;#02+zQ99C7J5io z?1`gn9Js0O_H3BwS4N(~UM3F^^t`SKGx7akMLl*?(FyhVyI!?3>+$!R>i}!iYQWiQ zgTNo3R*&Bg?L4C%`=`$WHmh#~u2TO9h~KsX`~ZH_tsc9RPQYyflj=jjFH>KdH6N`U zoYjmcv(X97*k?s2v`D)hLhliJkI;M6$5elPOmdTwyGL^ONbVlw-cr98Zy`NYu@}3& z#~Q8_&i%r3mkn9}T~g28lKVBO=TX6bBKUEXy`t`fP+k>^Wz0}7%*ivTjdH*j=2RJ! zwnpepf`<&2Y8FbfaCQJ5oYfOLmdSQ4 z^Hor)gCTksy$*G!ZTBNLPBX4O0!T}q*RNPib!ru=%Z4@s8FsH%H0C*0sZ>A zN2G>FgmOeU9~JyDz=N}n3+04RUJ^=P9wnS9uqE$i6|QW_qntf?ls_i)D}{cg(Dwts zv~oZ2+v@I?+{2)JuI{i<9u>-Cz^|w~iW&~iItI$YSuaX$C#38NsmIC}{p5>&1XkzY ztiD}Woj*lAT~{NyHA0^W`lXdKL0?oE0>liG+-Avb5f~AAOz@HX+ttIfM)RrRD}}OO z@B_dP&bnJDM+ARV@E0Zb#r&l4t@;=9FEdU6?lGbhPDrlhm09LZ8vj~vd6^3ea`U{D zyhd_skXtdgMsh(xZmpMNF%$6C$|m7ywqep(Hn&+gK>=r2IJ>G5W%N)V)$v#+7EtDF8 zA%V>TBLbt~!Ac?cBLZJU*#|3(5~)XEb&2R%@Q~omf=2}JDe1wejS9YB-~qscvknXX z7~l(Y3_ty_fjp>rV}c(C{_VQs;CZ^vKn#d>Cy>8-0^Z=RuLcfpEc7ra->wUT@^oE9C?gYYSKYJs z3VpB8j|n|Akt;=LBFjb)nPTh&?wfeK`tIyQ6Q#f430EEl&#QGukc-irM9!*7x2sd< zR101Uh|vV)$~hsSL;a#$!wgmMIw+v<)9#hA=Gs|D6hW{b6xnHvH= zt3Cw$-1>;*j!c%36@1@h&Z&JuIRKt3>JACzkWh{Se__ti$+VecsOQqkW8ireKP^ML zsvzA{LAs}cZB+@Sx`L8~gdPGNni0yV!2JS`R#1lOO5qgPT}etr@KJ&L1s)c7OrV+~ zb72ZOs|2qWymkup6B0Zka8%&_DXjmH;D-f2g5L{zweFbU#wnsPfwiYhQLi+FPPtjF zs1E_ZwK5F)3v(ipJ1TI$zyrc_06b6E9X^GU920n4=*NX_;MYdbJAomA5rLxu_X|8M z@Yqz!U`(5$BK4kWToWJI*e!5G;68x|&ZLG934T;y)oj+*BydFFK7ncuYpa^WdYT08okJhK zcMg5{KA{|#Lzxc=enfJQAh)>ks8EheuBu}VRRWs?b_+aE$J!3mv9?1(Ia0^kjtYKU za*rdoxKh=#22Z`{NAML{5QC0;3J|#v={X{62vPK)JN?kl;svhbxZ?eq3-hkDQ))U6wNEGq7P75Ff*+CGBgkD;c~mIJCAaGA+trCVO=nA;XOq8M@TlN>1s)ZOS|lSP zut{LIzN?f!zZ4HBzc0jjVa!dBhJ1JPL@_5JOl`DBe1GjY7^Kka0C$RV^~9xIV`ma>=ycn zz2DMyj6WAoMTj0oYa_$p&2oSOftXd(m3G5a)0{Ft5 zy(?rkt)TTDSV22HB9tSbEUG*%6t$9Vb+2R%BLWWzJStGNlCCZgeF|(6II@=7Af0N zc6r&}vKz||mVKw}MA>i4{DG=KTVO-r1A(gp*9UG6d^+%G;0J+M18)TU!Pelx;EeLq z%a@gZu)L?-i@PetICCq(*H4LtuxJR)YoR{Oy1Yg+wxB3$`N?lX=FMy|?`Fp@m zEhDTGc)7r!z~ut-!p!~4X@s7Mguk0f*e$sa2y7I3mB1UDn0r%*aP=94bu$Rp6%&R| zB~u1gY-Do-kP?x>0iu8`f3qYCD*aY}9|7t+ZzhUBf;MXr=TTh(15%|^TMF8Iy>H~av zGNtI;ZLB{Ush61H@NTA5?r9@K@Dr zr6&9hK%F~Q4>8fC?&H&?)QKJotx30@_pUsYuBW@@yJ`H)6;Gw{U#;Ni=(ai*9|e6% z<4b^_IG6CADXd@9FFBX86^H%^xJop9{%P#R4fU^sa>`kM1N`{;ChoUs9u2je8b9q^ zj*-T%D)oc&p3;gm|0T;EsZ9I@5=-Ge7jB>84@Lo+n44a}643a!t&0Flk>cM;C1`O%=Q|J ze06|TnDHjK8vtiu?wgqF3jv!k|4rNiS_0UDCk`g=Mx6(^0)NHB#HUcl>&`vI>vz6{7aQ_!37HNYEAy&2{;9RD@3(jTgAHlgyJr2%g>Yu>5Og#b4W$MS^Y*s%5 zXS4b_IGfdT<`TePg0op21!uGRm3c1Uad57{UxuCq=(A=67F#WVerqmZnbiOov{nF4 zuohyjtOMs7)eg=zYNOQ(_&#v1QSS%m8g-Gi3h;yAY*W49Y*SmoiC+e?)&mY%a{&|J zY*Q(#18@g8+to+G*{-ewXS=%5Lhb7Bz}c>D0cX4Vgw+Q4DR6eGec9`kb`^ z@C)GVR9^&Vr@GI&5b#Uj+@b#9nFaVq&uqZgJ!=5}%`+G9O-}>hzkAR&uGKG8n`=fF z4V28ooWB&e7_Y`Gzf;|-{$3qY-&aqnXVgDqW_yjv#;L|>#$02u5i%|?I*f~qm@#1N zH10B9F}`HJX8J7LT(LfaI|Tn~y>3nQZ1!C4+3UIA^C!=n9#39%-kEu8@($#EFYo2N z*YalM&(3em|4{zE{Dt17-VSfvoAiFjd$spd-p_jf!F$B}Pu@RzE#D;HLf=)s>wRDK z{j2ZKzNUgp3Jw)KR`7hmp9{_}Tv-?`ys7X|p;c5;G`Z-sqP0ccMe(A&MF)$%Q}k5P zZ;B=q?<@X%@t2DqE-oo)EctlJXG(rm@~S`O8-)NZ`oJNo-2E$%nZ~8 zmInF*!-1~{@`GE0qrq!}HwHfy{A)13yu5r(`Ay|{mSr}T7|LtrnIFPyyLsl5p6d(v z{S!}DBi=hQpO&;`K4Yh!_1sWxDZ_l;bIl}6c}Dp5qx`*cSU>)XO8I$b@!oUh-)-d) z+{MqO8CauoX_mZoC(O*mzt5KMmiOOErEX2TxBO|`cIG=1nSb||{}pea@FsNT-`C4K zaYI`FBYgtilj<(gJT1T*vF4qJ5AOh;jCHLApXKAL1D%PT@SZStV9h!!< zW*TDAX;^Khscw8CSQR&81?)kP7sV%rPcJ@OaIbkQ*3LLSm*BGve>JNQpMHD>@EOEs z2%qivB=AY%{&5PC^DtJ?9guJ*a(3af8@ZR_!+$5#Qc?A*_V-`ZU#F4&5#tj4^;v%F z^r)R4wbOefU7_~a>6?tDB{#rl-h|KXs?EF;-=D$fetZrJZMk&=es$?le7=XzanO#d zC7$DIy{E*On)gS1{}JgDV?*Abfn!z5zf+aue+Hiq8=uGLKJSN(pW}(x>AoBAmjl0M zwD=AhOFSb&d(3ycDkyl?Sns()(pMFnFuqc71M0a6pBvOy3T{{bTyT^61HOHQSD>yu zbAREZ>i)vp)suw*lQIt%oiILJbP)UpjgJpCzo9%}ZYZ~`fLWlvP4zZ5 z_YDrjme#7q6|vNYp=cx(i(WXG*w!}~i6)muySnC|r5cwm>FR1Ys|#4`Ks*(X^u;fY zE#2(UmiBaYh2zPgzR2$8zDP2uIay}Dlo_vL6xNx!g~z8#J?*jNVBe0|x=7Eqb&=H8 zrCYkXP_>i1d|m?uWU~tdLtg7ZG8O6Ti$&K&2I9T3WGYFib#`vUPMHnKSi&y1Jl==a zbW5uv$<(}Xd`mo)>>NDn@_9~M^X3z?CJDBK)PKGdWV3#42N+_Km%?XUOWN3QMSf-hm*iA2kadr%E*@7=y7m~9a*1H*f zTRxar6Hg}bS79AXW}Cv2+gVM79J)_ypx*xB{xu!ThU0zFjj=@1t{>T2(WuB~wI@k9 zo``V>;xRE1o$2&GBVeynm=K#xi}e zRLqsfUZQ>G3?|dV;^@HLrh9^;M9aW%e=LC^aOCD}YuS~GVdBxW-Yy>#@p4olmUdQG z!#GY4G?~?s3&R=XHz770S%d1@nA+U8A~Mv#YH~+P6KR0+nT>ixkz;&_)0)lnu6@Wj zO)eBU&?IIevfp+l+RX}M+EOHy+Y!t!Fu#i#VpqAC?Cu$2)0dDAHHKHfwe3~ z*X*H_s$e;8$A!FfSAe4}$Ch%8US~SSld;Hgj2^7-&9G7M?F>6xKC$%%wS0J>ryGC9 zZMaVy70_1J5lPT(F=ZRJliEHUN!eNJ60vB!2U9{9!m`*yUxSpcA)b^(YYWQs#Z$XA zHI{JI3a7wSM=XV}m67CDjkT_hCrN2d#rh%j(nVceI}nyCuCY5>Fu68jg!zBZ=Ki_4g0U0Ax{{2M2nF6N%VBDvP`oj?#UP|QdTKy+ z+t%5-d{bArwIj4_b&CqEUfp(KS7)ewMN4Pv+7(^vLd~nXnnTSikx)|Z!q(1}U7^*T zE$uDgu8x*ad-F+)%qT-FA)m++V4&Mr;wRI9N~S{>hrwdbfe(zvcD41c9UNH87$x50bfbCD@yW^h z6|n)yqD~nGUzmueVx95+*oIV(YRpV-#}-aDyjdER;cC@i&Dt4Z%pzN2(ax<1UZcor zT-w*wCEME*{Dp9s`;Su6#+5PKfzi6O-f*c&&*em&dJfQvmtv3Zc^G{8J0 zhx8X}T{{fW92poKfQ9u*El~+ofwIx4>bIjnplw4j?5HA9wI<$^7)%cKrs}am5evgB^Y^i)6x3HcBB~yFRFFJ{CV)FKS(4a43d&H-mq8X3Uo>2XbVq~d*j%mJk< zHozD_XRYWP+#Kn<0E@k-e3(nga_oDM9Y;^>4Kq}dp25+!;gp;UsMxL{1P$QCaK{om zfKbKSkJ!r$XkBrP$1p%+Yjo+huC8T}0y~%G@mL>dV~k-eOO86mGGvr7Hc$3BW69!5 z#|X1F(jObki%4lKv3atdxz5g4Nja}MX77fReJ&E{`Y)r=#4E4n$Fw?P;v=0xY z;IG)>v6*OY{0ztFFmraqqp`%;qRylqW2)l7 zjKeR^VBBgFk+;a(Fpz{XBzxmA@s8tFY9BX@lZC>A2~5XKATSP7bEIc$EDCMGe#glU z$KWWV$+iJU^W*TeCPSN(sYIkFHMVnIeS4MRX6Wk8oS!L%$F|M#JWXvT2o142QaNY5tP74$b4FT*LI+oF*Y3`ivJ`*A zz_x+Go#|6O7JaL{Ot>T*vJz~g46MgKe?eU0M4G$T4yKk54kN!mmfAY_t`@3#+dn(s z`p8g)V>~u-7;aNL|;9Zp7o;wS~ zS_ZH`*fF>*rk2IF#0P8~6+rgtd z>Pqj{u>3jdav}rS4oh61c)$hCqH!0oe>|e?1Q{o}C`c80M;FYJ>#wD)Ml*mNiCWI*VtG=`>x!hEdi_DM$!b@vbMh+Vi97MzK`nco** zKG=tKhaSE;($_N#?>m@i9z@;{K8W3Acf)`Q!9aQ+HQdA4K*X?P=?$%Rz+e+4c#y$z z(_zsxUl@{(E)*I}*VLAX^4z3#3)ZbzGXhV>sR@YO7h?jZj6;>doh}k)+8CNcLXep* zif2Bkz}Y=z=0v?lV~i{%V1T0Nx?|~}JhRjw5Rb+g7TT^tt%2xJPBKMzw1pX+F&yX; zq53;g#AvM=)9aGPyLx1i(uu~U4P9MH;nt2#ink^?*XZX|D4C4)Z|>X8{S^d=gi@(Q zeDg4JTKYG~qS071Lt!BpU_$m&5Wtni5H-V?#x~FerBiBcY#1wFAES-o1m@prIHut& zj@IO|-SB^_q6(89$ME8|esK!z^y4xbNXNREV@dds(jAz2a$`Knhbh=8rN?tE7O@=&Aycs}u|$TmUD~?)udv(Tp5^rk^WF35!s!or!~pVR@*?Ii{>;+X(I!!413`bIu@-s z4|FqCE!&OB(kZ8wGPyJcDUvvma1zco7;C*I^+$#>MX++~1Y8BYtj43U-Uz&aPVC@W z2pot!wAC&EkBxC+BFB;RrOu;dm1IT-KwGc)IPRJ|h5_I%gyc@>;}ga4a$J}`oWSad zh@oc?UNfCz>!IGZO6Fv?tXzqliLE!Ws&|*oX{Vi2GP2sFj$sDFtO>KL%L$ux9F2Hr zw|!EO6EZc!QS}Y#*4-zv4jo~1`jpn8!7b`SYzQk-&sLm<5IP6NJy`PNsjjVvqR=hG zQ24faw~DLfGNw>3)(d%f%Wl9X7$-;;lH&-&$?jy2^Eh0OJ#7I7wf#QdFLerwh>o^G=0hFS=K97SnYJ4r988I8=#P zq)!m)Zgp&63ur`Ldw%ew_y20c0K6Pe0#wVcp4d=IP!@nW+C}YnL=(mwh9Tfd2Qe_| z&_FV-1~*?KlO!DhV-Q3NdT^ZXGEB|NL&U^^QUkG_@*PU<9_T^zB#*8Y>{=t(S8T%s zO(Ih281C(j_r&3aTXw~I#E`JqAzQYS9G5W&c#NA)45zU*I5*iE=~H+djvWY*Aq-41*@@G( zwuC$@Q=z`Tbbv&g<{=?AE{I`}u`QMui1p2%SC0tVB^RuPhmp>{kny@W%7pOIM=cv1 z?1O~z1%=3WCuwW~z9<&yS8lIilN`gflQagz6a8YMfF0|j(JCOEd z6jRR_99E|Hb~t?Q9efM!h;vzkRVH0b7hus>^o;gqD19`}$VR3-^vA`Y8H2;HK->y& z^6cvp8#`n-kE50FDtkdt%irf<6xP8R&^kEjS?6qGvyPR9S9SEmAYuucj@?dsZ2K^- ze54QNq(Jsv4Vet%UE;u_1vyD^TIckNY;mGAjF@Z_oLtIguT1W_>&}K@I7tc9GfAfl z849lb;JF5;Ub;vI)osbW6DJoZ3|x6oB1;XOTVsyK^$C$%0b|wW)Yh-{;Urh2Z+c0T z=8$bJ$S5a*4%wxNHr(_=m=aHWWrqhfI*!^QIflH$C8)R|T9qAUxK=3FR7YToC+Z!k z;b?rY9&ToMsGgoQ{UCR|hr3Q>qt`S0>8-0yj7U8?RxiHG$+kCiPR!GRCrIg-!l@8p zg8krMZ=W;AAAFGQO3?*5mXbNzQtk&JE;5xm&hp^m;Cg_C157&@xkG8qZEN(Z#YAgc z2FJ-*EBAVg(qqvqIs(BVIrGd=?Pc3JPRnG35?c_?BGAXaD?>%BIJk4efb%Fryi_LF zwg)^t!VU~_WpW%{ICjC%dN3(h*D_4DEaJ;$Rm)^y=^BQ=Ng&FNhI)9ClgZ1i8@EjG zj3ATmRI5)$5XbPT5)TkzO&KnyzZptyy_p=*Li%AXMn03pp>!Sj%Z$XR^(0(pjEMf% z4!W75nP&v)r7&|=Kp&QUsR#S&ohhssd@jeuLh(cej~)j_bvwjO;8_zlcvwj@QJuoF zCRT*qNrE?4oFkpiK@l{hA4lkz7c?~ND1nnxwZaW8!=Y;*c9lqSDHVjBc1>bgE!}Ap zb0-s-hZ}4{Hl(Z%xP6i%wdzAu#zd0TTcvc8ZDI~fmhEr_M_XyKoh?hgtklAhHM5;E zuCq@eK^7g7=4Ln+EL`c6I7vB9Zk(k!8Qmt!aeB!fho{#$Yj{V_IJM=pMn#NMoA59X zJKy1f0StTVfZLbidFA+YmT{J>tmP(qt>NN}=f}}yyR&M2e=ISGC&@#qV_SR(yHp$? z3=S!rDh&^*Z972Lmkw|=xgF<)xK69^-K zB5}u+J9g>}kE={44hQUHLf6!aQreE;4dh9gTt#roCK=+Ub6f_Hrcp-@cbZ5m97Al) z6)epTD@~ivTQczw@SVAE8k@lV@iC33_hFev#Q{iI4~A!HV1FopABu99(FYv7v2(~FPTkud$;jgapDH#wa_qCdT?yNsr%*(Mw-Zh9Yd5u)_BhtI!|U@ zTfB57JMArOnvk(!TM1)#GcHAqv2%ST8Ag<@P**cfEo1emx(4ik(p7$pK)OPA6LJ6% ziNf6Q*cH8WEG{jB_St-R1$#_W(|0u$`OVU?u9C1mD?TYcyn&hD;f+zGgE6Pog5cE99197-C zLP_&UxI%ag$a9E}7#33=IH#|V5+CRJn0+g$-t|bW@eG?UD^jg@t%CL=jX5@-HgT$l zP0w12t4?@qr*CVYe5<;){`9?{>{hsfWZkxKvUxzCi2ryuoNoQk?1eKi-mCN{ZB)4N_1-3QmUnoMb)2-cj(e|nV)A#)5^fZK% z(H-JO-K5`! zWTb{b-g#hyS*1g_454x9g08OA*0|e3czG#=#{#>PAhUXUlC-JY*ZyPz!t$LY?At-P zqB|2NQ#AKhpc>A(CYUv4b-DCR)yaf&vaFNo3V0B!cgbKx=l2qMXc z3#kZtn0c_kBNuTdJh@NOx#E^LZzs#4oqeL8#3dP_$o2d*G1+Aw4QHRUyQZFd!lyk* z=5SOSyraEL*paQM@$$9v=)g-7sW!P$tNT38O-{7}#v4oE2_GI2&}s2<$GTVo?-OO+ z__X=nj^pHCPvi3wX)t3MT!V67-Q@WhoNYVKMh2p|#pLErrr%~wD!rQ;(tYJ=i73iG zYvt6`v~_T-sWrIUgCq9beRq;~l4yopAz`Jqx6f?MF=6d@s>aDm*ynZWZ9GO$lUBz1 zuwjSk>itqudaidvv?_hwt7BLWY}2z2w;mya{bUuJJ)Y(=Gl#+#?&!jkDt+}r-^sBR zA(x&IgWy@1_EK4Qb>)d#3R;Ev zuhI|oGUVu(E5YnrCO^HH=x)fRPH3N7IvdyBb}oEswhM6rGq_Xq&ZE3GJhs*ZN`V7t z%>`2ul{sC&L310YfiO7U#NOoUXNj^Rbfug?D(mGr=c(Yf*luv}5Id4`Zka-xIAd46 z`inw{50V!j;Y@JZ*@?;QyU#dobgn_;NvR_sA5`E;b_%z096r|Nx)#mn=`aF#IX-xi zN}G50ppa9A(`U)rFktsCy)2}&@yHr$9jXZ9mjV!%C2-A1>4-yh4nk9W9W!^{aAuKg z$JZ_&mfpo9#HfcAf=RSszvH1jRS5TQdULb*_;=h4d6<%wlk=b@E3d_Fi2>zS+8GcW3Bt)@q_|2Xc#jfcIIc+mu$yq&ysAXYmN29( z;ZT;x6S%ybPL6Y@a@lT&w>8A84tfe>46x?ecn3^epKyR+UzM@5OkG2E z0Y1MP!`RY4l+wpj@|?-8J0Z>lorX>!&+5UQ{4oprj;RXa9xY-q1mEc=?4k?((i7L0 z@L-QTG86K;2;Wd0&vJ6lfnY)Z@pB;Cd7f;0+D`lbo1FliY-cht^Z##WKmX;L$b?@z z?E~un)Kj1TQSv*}0Ovg?DfdYmAWwQuvW=WGo|7zn(h`c##5um}bmwiFbk23S8omwN ze~Ihkg7hBS{O{@h-b;s0dVJT(!S~RA|KsofC))Tgc7y-p`rvYf??LvHHb%O`_s~v` zOMDMCoV29lxW#v9*6kYItc^?Obvc{v@xnH4xb!azNIcn$w;fZm(e4o}eFB72Bj#id z;JB;7vr-4lLzbM)TGf&a3R5vK&x4yDVq_ zikn7n^_yBeV!+L>0r%;TeHR}!rYp$0!>$mq^XG3EZSzZZ4>&b^Db(RYc? z?Y$%4Ux8laJr>o8Et^!uZ}d#g&WZChBYkA33Hq>)_%^$c^P-Ci4eTE8M|E7yW{&(6 zPH%V~h|@p3JsIQmd;8GA{>csw9;O5Kfy=Sq$9aY7wZHX=i*s7Oo7+Tflln71V7>`Sg9;wR&q@vEP> zca2~3jN!LF@x~z13H&lBZp`C%M5Fk<(g=PBbS+Y0wSxpDkTC}y>kRI|ePeb6EB z$B`G2I#z*mH+}^*g$!LNr70q+s6D1IY#5dZa!<(!+#*$Npc-4=Wj zWBKcH`8&W(IR{W;j2yFbxjP}nHq<;YmUkvw?m>RP^ik_5jC2or-7jU(v-8)WEu00~ zE#lXU@f)uL_|4Ra=mjr{0~W?b5@ZIs} zwz2_j#d5~r?fOoBydDA>cLKh}sGgh6l`A`~rdQ;Squ;u}>3+<8`?6#Dy`≀RjEk zUu{LXt!Zn;??&TyZfPl6<|H)6mRKr@-t=K)SWj;0+}hQ-dUo{M)=l|oQMu*D>!X_c z?#eoSRHu)fN4ZwhiaDs}=Tg}^XVn0DMA(D5mu(-k&use}uS~YJ&@Kk?>%<&;b$WJv z%TOEVbgmv$T{GIo?jJMTj6>J(i^9XwjLo#1Z`oYya-nSf-RJH6nqhm4e}9%GQbTGUH<{Lm2Samb+7 zpIqt97~cqfTbi}*L>rrtqF=?2OaSkLb*Y6XS0gow`QLJKrKpD!YerbM_jN#O#U)l|Dv$ zoZaBztn0OX&Timw(QO}coOPe|P-6N!+G!oi;IDSnfBkk z9QCms$4jXIqcQqKwsa|SRP)K%#kjt*buE6Gz7xMv&)J3-xzQWEk%=BN)?#n*vNved zJkwmo>7|;X*9h7v`vUYNgx0bN3Ua65D zS;n#Tbkv#c&Di^QyF$2T-o)|hQ6I>)ij1|Xq?w)tIPP zTSsP$RKr-EoNo7@dUx8+=*OtZol6-@;0)z>tLiFz4?;fLjZ+7`2xD}vT51}tNJsSA zqUzGR!-{8tql9Z5_ceHh8tWtH-DdQQequK)+0hiZCvwg+rp%(Q=oGu6UFtE3$lj$2 z^=VI615ADjJ>-&Wv6@{SWw?x*)^zRE!tZSi8`cDt~xs0b!2)wR)P)a zLl`x6qLwbyM;Tb>CZxi^I*_*v5<{br|BO1RAGXzwtroSbM_>ce=($y=jEkKO(sGPj z#;tRs$7P8w>OZh`2{4qP4W@&{awlNO1U5>JTIl2G3FtM(^+B!tV~&fUtFtij3(%W7 zY=@emwfVpn;JXF6b)e73AFgQzwg~xQXp{dfK{@7}4T@1d)=Q|$jpBQTMTQQ@!p#)7 z5XxJR7Q0~KdaJ}aC7};y0=*VJMGQeZL!_OcsDgT6yYNv3v{(LdNwp$-EVaMffbm`p zdAcwb^h{kC71~xCs2gR>GL}T!XvgBj|i z7p<`l=*-s4e?m=K=W5CLQm;fm8B%bx@iUds>!5@_efWb;b~rzO{F3AG($jKH)|*-$ z5cb33`Z4b8nR9T)mUK^Z{BcnObbS^+80AH|I;Sn^09+rHQD&Sk%Q!6u)B&do<(6Ya zq32%$R?B!{0OQFRAtRmputIIh-A1tG4)o%k>R}X+9ogjcFZo_;&aTI4M;{yV*m*ZJ z%ot;wdEUT-LMLwNgq|`he+=3iyJ1ob#~WF;sW&o=D)h0=a@4CgM%Xsa&RuoKuG;Ah zVmW6N$02iotY+$wp%Ho*&&T^ay3rou~ncIRM32teX z^wx|@m6sbA1m88<6X^B7U0Tc>w^iX!rGe*E9&qVdl08y({%q#w_BeO*;O5QkLq_{M zAR9M>((X*w>y}^h@mP^@mCbcNEg%zu>jQ(_v2>TDK6fMLi^-NuRcBhyjJ=y*E$qNZ z@*vs0$$!UEd6Zt2IzGdecF7u8G3Dn&nUkt7;MA1vIUbB~Q^el9qck&}7?=8G>$G>y zmk_)aw_%x))`zq_s2P(#YpqD%_s;Fj?iZaoJ}BF3Wm}QL-^KmK54NxV*3{Lvt8X4Y zb=uF5affVpstm)I2N0M@)Sp*n8h$_!)(}qf=K}^ut_8C>d17$nCSzhC?(zF42K$ZR zb`3pM_@lL8m^x`r+2tUYJIIJe0wdQEK{qwR3a_JL1EXv7*LI(xmII^L z=2w}1fAC_D!Z=WtQ6#C8sTGCZ{NTuye*QzQ$&s1npJw@#Y5L2Mlc&Jy$2j=B3L`Xi z>Qwm#El+{dsm+{RW|-{Ubc~9IXk@xFtwO_JT4op%gC9!gxG~N~bxko$d7pN8S`A(~3rJWihHe^A#AmlRaSrPL>EyR_ICS zelK)Vjz9XFr&MtCfkG&AVsP{uAn7h-x>qFDcbiFOD)ctgLK<7qG~FJp*a)HnY2|3O zlzXk7-?=JG9+anJcY?SjH82w1ODz-DGE97t-9)MOjE1<{e%J0a4aYufclSGabAR~r< zx?1Wj^<(Ishjs}Ai>0POxBhC9FU=5W@&}sOK|h!@Z(wo0F6*@k_IHy^ov8(72Gnns zO;_y7Vq3U?co;|-XsYyj?Yg5{oO&X6d z(`niS$^a*OQ7}B$OOqLIao{}8EEVYN_Fx$Qja@~od@LgQv8TE!tuhl$yb~h84QC zZ&w4E?P_dH4+VKM10&vV^cfKZ8f6Cy#8<{JCpit-S9ni$>~A1ZoY8b+5W>|oQdljK zotDrnvh9ZAV(O=@@(eHPMq?D@Pi}d{S7gL9wM^Y*xqR@tx)t<3xPWdq(2ejyH%`r^ zbN%Io6eyckK(8qag{)v$3Q_g}bTw$#kzVfu-K8w=O2Z8(7M-s0yqJ@VCwcSWO*zYS zn->Mcfo@ixMVf+{I|}1*#Tr@z!J$(exphDywb0I}p9&FvoQyJAiN#B5VM=XPJ0&?{ z7^!ZvJX5`sXBO(rrr>C;m$rj%E=;4ffebSzGAMqR1V{!&@z3j_<5!@20#?ASkea5= zsX$|v2_OW{1fc}Ih_{e%^n~i&Izn<9bcC;L9;9^l-L?g;jBO!N!p^712rf?hATdSV z_~;q1)U+t0XH0^xPCG!#D2~uXEaEKi)0JN4rmN{PbKk&fI^8g*8!+VQ9P8(e>4+Hg z_o*;~QLd>EK#QFmJAMU5OZbid#oY1DSeH~R>P~Kvs9f0I=PNWdBBSv>jNxbjYIxsl z#CD_IV5AF$sLntJN4e6-Fx%FoBT*|KYy^K6-gI>U>V za@1jvrfq{wivc$x5l*?P0`nM!a85bOneO#60z&7YVKoh%4(P>Se`C>{u3+!!z>9Ow zhdTMqiOX{M7H$MWKKNRO4oE|FAYg4CJ;)_u^!c;B*eqa>bl`~H05=3oI3xrZAc1fz ztax;yM*L2|Gdi(|ftF1z;-C*rHG^jaw;~QRrk0tA6fpI{K3d80L#0)a8aUlQKZwln zm$&ft90-I)x^u|#{lI-aEfSedawU_@!}6X38$uHyn2 zXkxv7@kb55syxHzL%@ib0oK%jFCV^;Np8BV8wK9t7~XZD03TflZsL%c!b*#jS-3yN zJ}pF_5Yu8Jk38;&55@PD_`j5MN#idEM~?fP&B~w9#i`h~Fv7vk1YiEZ6^54q^OC71 z1|)Dr0c*h*{+IpB2|olk8Qxmh)%blrpne~ei#?3#qcS*Bh;q5L30zS^Sw;`|%V8Z( z5G`_JzrqmeiU5cGiizyP$Q^lJ?p7?Nd}e-ykD=7}D=K^ikZ0ua!03HGsqAqdJtrp6 z$PouQ6!3ZjqhFsE82x*E9`aTAD)J?2ufQ}#2Ez72bPj>`wGh`R6zbn=^`Z=Gf|C_Q zvL14>9tw^ek}M(!*s;|%eU`7-Tj=vykkx1Us0+(h00i`yCWh8qi~+X)$@b6Z_px)P zIoBJItCb$7w6Gl=kWKqMytX%PXd#j68z{RD5lr3({{tZxrgN-Tv~?N=P;f*gWU+#V|4v zQMS4`Fwp)Uh%_)Y&kGxjGRDY?5{lrWoMV6htOYR)SoC5P3~TYXa(e^Ygvs3Ij$>Ha zoo<4(v_Rm`1KvDzZ)>`;0HSo79KY#R1KkY##buaMqETQNv9}mETAV1#+sfq<&fSs9 z4wEtjDYx=;ZvoqLG1^|*4xF4yg?nAG*V1cKpozyWbkl(*5;+}Yso^dd3B88~36rh7 z%!F)kbX+5Wd;>07_P(P-QtLE$q2Q<-7vamo95gg#Dk{2S31-{11qv<)D35^*_;5IQ zq`0$ZewF=Q3u8lC+M+FMFLW)+)6qj`+$#o0Vd}erqnCrBxC-t@Y#26LB?hf+VO*nz z*_%@l9Z3@?fYm~`#`%eg5sweq3JLic?{p}P|U@VOYcKVO0+zm<>EiG1YX zpaB$mhb9NyPDEwD?#)i`Ct0gbub zghT1pMu?paq^v5)cTNCURtKnN{!~aZ+DFjfwC1O9w@?f_awyiQ4l~HQguUh3Azxf5 zZR8M(-iX#xME)RMf&7?bzDBWRVO`wVA zyqJQH&hevd23bP%o0D}CsjOAO4*|&LUL3lE4$WB}u#-xYoDGPhP1`+VIe~~BUI(UW$MoxM;Lcs<2giG0oy(gd#L1lUY5g{MQ-YnQPISRlk0<}6zhct|> zcxLS&JCC?2*J_dSCZwPw76G5^Pno$@%s_%|$W$xit)pL-lE^`5w%0_7y)1T(GpGnl zkw(}H;yzD4A~AxmnE93b-azsbv>Yg12T|z+!zN~Pib%hk^5{`in?X0H3j5Q)l@J*7 z1DV0GzkxZ4B=0XUi%k6ef&k3b@-JFrHXaaV1*qP)#UYT`LwBHQ5;rx& zAlFU|?nbnN=x11h7AXZX+JuFmd2EGrRl(6S%2TFx zkqjRomSV&>+=75si@M=qo{-k{VK@o_fddtUnRyJDpO9lS*&=3ex?G3OB6w1RC}1ki z>~YW$-0m;L4zCP{yNG4IXqPCy3+-={-*_ybd8Vrp}rKcKlouQxm*?x_w9Dj4aU4o6(Hi* z@?nFP_es-40$Xk~!yI7vt#)xa`WH6n2xxzJ4eJwFS3hC&gp=GS~sn z&(lZg9NcaKm?B3Lav~pA$zUHRiLfa?OYjA{#r(QuaJyx2aY$8whG1kcsUnppn2E5h z41)uzvz|@ErUobOu5<|oF_VjmksAQb?xOuw$QZLKco78Rl+gkOFM_f8F&HMY`3g3T0Opz%czGw>&mBkU(_%Nvdx4q{8 ziy~QiXIXMiih!^R3J5H-iQQE}vI2rAD5!9_2|=Q;NDzfZ53?A-EEvEDX3UBKGoqf6 zGoT{IGvSH(ubvGA_0GF@?|bk2zqhbE(>>MIv8t=9r>l@WqCs^29O4!LAqJ3xYT+!3 zA?wL@9*IQ6)03bEQ8Cj4wF8Nwp=V|!J#26Ac+04pT41&DYTFgnNu!k}0|_pmKor-#OFHzR2e zBWawG)B%W-2s!}k0&IYQ;CT0e@QlWqz)<{3`07GX$f=6g+3tDH1)8%IB9AT#+7pRDVGSYK6OhY5+EP*w1c`p3%DB#4NJG^{g={5KWjU2mW^!Z- zF-e)Hfda4MiEJlGrc^LcB9e=dvIz`{U8V{`^iWV6Vj>D|;z6{uG)#*aq42~*L$-@U z+@fkm5V~g=2Xz^%3>PoD;r3oPN z%OVnpMnVC|EdjKoib3TdgG>P$ltHEtkSG9J~^g<9r7V?$*%}M(36og5B_D)=mOB_0<43OI}k&VJp`5m&*s272xKI( z3gQ>iC^KLNd`nrfC~d?YKq0otNct;GVHzL^+-VbcUmo`mh#8m(g@j>dh$b{Z69K66 zj)9;|+#CjdB}i0&9x()zfesM@Koo%0s?l)t69w;y=uzxJ!cwt^S3T@y0j{P!B0;qF zRNjr!kjLq%+7qG>5d@k>Vv+ow5QP-?Adeu#qtK5?O95>-inx_=b;!?B9X&x)IA8@P zC<`IZr?@)|P#Pu>`icX=11(4fLIc7n=N<$esxFF9k|ipig8GSS5cC0 D@^&on3| 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 Date: Fri, 17 Jun 2022 08:50:18 -0400 Subject: [PATCH 02/17] feat: Add support for new manifest format in 6.0.400 --- UnoCheck/AcquirePackagesCommand.cs | 8 +++--- UnoCheck/Checkups/DotNetWorkloadsCheckup.cs | 4 ++- UnoCheck/DotNet/DotNetWorkloadManager.cs | 10 +++---- .../DotNet/DotNetWorkloadManagerLegacy.cs | 4 +-- UnoCheck/Properties/launchSettings.json | 3 +-- UnoCheck/UnoCheck.csproj | 2 ++ manifests/uno.ui-preview.manifest.json | 26 +++++++++---------- 7 files changed, 30 insertions(+), 27 deletions(-) diff --git a/UnoCheck/AcquirePackagesCommand.cs b/UnoCheck/AcquirePackagesCommand.cs index 8a397e58..3ca3805d 100644 --- a/UnoCheck/AcquirePackagesCommand.cs +++ b/UnoCheck/AcquirePackagesCommand.cs @@ -105,9 +105,9 @@ public override async Task ExecuteAsync(CommandContext context, AcquirePack var manifests = nugetWorkloadManifestProvider.GetManifests(); foreach (var mfst in manifests) { - AnsiConsole.MarkupLine($"Acquiring packages for: {mfst.manifestId} ..."); + AnsiConsole.MarkupLine($"Acquiring packages for: {mfst.ManifestId} ..."); - var manifestReader = WorkloadManifestReader.ReadWorkloadManifest(mfst.manifestId, mfst.openManifestStream()); + var manifestReader = WorkloadManifestReader.ReadWorkloadManifest(mfst.ManifestId, mfst.OpenManifestStream(), mfst.ManifestPath); foreach (var wlPack in manifestReader.Packs) { @@ -310,8 +310,8 @@ public async Task ParseManifestPackages(string directory, List GetManifestDirectories() => manifestDirs.Select(m => m.dir); - public IEnumerable<(string manifestId, string informationalPath, Func openManifestStream, Func openLocalizationStream)> GetManifests() - => manifestDirs.Select(m => (m.id, m.dir, new Func(() => File.OpenRead(m.file)), new Func(() => null))); + public IEnumerable GetManifests() + => manifestDirs.Select(m => new ReadableWorkloadManifest(m.id, m.dir, new Func(() => File.OpenRead(m.file)), new Func(() => null))); public string GetSdkFeatureBand() => $"{SdkVersion.Major}.{SdkVersion.Minor}.{SdkVersion.Patch}"; diff --git a/UnoCheck/Checkups/DotNetWorkloadsCheckup.cs b/UnoCheck/Checkups/DotNetWorkloadsCheckup.cs index e6022e79..90216490 100644 --- a/UnoCheck/Checkups/DotNetWorkloadsCheckup.cs +++ b/UnoCheck/Checkups/DotNetWorkloadsCheckup.cs @@ -64,7 +64,9 @@ public override async Task Examine(SharedState history) foreach (var rp in RequiredWorkloads.Where(w => w.SupportedPlatforms?.Contains(Util.Platform) ?? false)) { - if (!NuGetVersion.TryParse(rp.Version, out var rpVersion)) + string version = rp.Version.Split("/", StringSplitOptions.None).FirstOrDefault(); + + if (!NuGetVersion.TryParse(version, out var rpVersion)) rpVersion = new NuGetVersion(0, 0, 0); // TODO: Eventually check actual workload resolver api for installed workloads and diff --git a/UnoCheck/DotNet/DotNetWorkloadManager.cs b/UnoCheck/DotNet/DotNetWorkloadManager.cs index a0182c97..a80f7376 100644 --- a/UnoCheck/DotNet/DotNetWorkloadManager.cs +++ b/UnoCheck/DotNet/DotNetWorkloadManager.cs @@ -96,10 +96,10 @@ Dictionary GetInstalledWorkloadManifestIdsAndVersions() foreach (var manifestInfo in manifestProvider.GetManifests()) { - using (var manifestStream = manifestInfo.openManifestStream()) + using (var manifestStream = manifestInfo.OpenManifestStream()) { - var m = WorkloadManifestReader.ReadWorkloadManifest(manifestInfo.manifestId, manifestStream); - items[manifestInfo.manifestId] = m.Version; + var m = WorkloadManifestReader.ReadWorkloadManifest(manifestInfo.ManifestId, manifestStream, manifestInfo.ManifestPath); + items[manifestInfo.ManifestId] = m.Version; } } @@ -112,9 +112,9 @@ Dictionary GetInstalledWorkloadManifestIdsAndVersions() foreach (var manifestInfo in manifestProvider.GetManifests()) { - using (var manifestStream = manifestInfo.openManifestStream()) + using (var manifestStream = manifestInfo.OpenManifestStream()) { - var m = WorkloadManifestReader.ReadWorkloadManifest(manifestInfo.manifestId, manifestStream); + var m = WorkloadManifestReader.ReadWorkloadManifest(manifestInfo.ManifestId, manifestStream, manifestInfo.ManifestPath); // Each workload manifest can have one or more workloads defined foreach (var wl in m.Workloads) diff --git a/UnoCheck/DotNet/DotNetWorkloadManagerLegacy.cs b/UnoCheck/DotNet/DotNetWorkloadManagerLegacy.cs index 2d729d52..de0db666 100644 --- a/UnoCheck/DotNet/DotNetWorkloadManagerLegacy.cs +++ b/UnoCheck/DotNet/DotNetWorkloadManagerLegacy.cs @@ -151,9 +151,9 @@ async Task DeleteExistingWorkloads(string sdkRoot, string sdkVersion, string wor foreach (var manifestInfo in manifestProvider.GetManifests()) { - using (var manifestStream = manifestInfo.openManifestStream()) + using (var manifestStream = manifestInfo.OpenManifestStream()) { - var m = WorkloadManifestReader.ReadWorkloadManifest(manifestInfo.manifestId, manifestStream); + var m = WorkloadManifestReader.ReadWorkloadManifest(manifestInfo.ManifestId, manifestStream, manifestInfo.ManifestPath); // Each workload manifest can have one or more workloads defined foreach (var wl in m.Workloads) diff --git a/UnoCheck/Properties/launchSettings.json b/UnoCheck/Properties/launchSettings.json index f7b15d9f..6f3e88c6 100644 --- a/UnoCheck/Properties/launchSettings.json +++ b/UnoCheck/Properties/launchSettings.json @@ -2,11 +2,10 @@ "profiles": { "UnoCheck": { "commandName": "Project", - "commandLineArgs": "--verbose --pre" + "commandLineArgs": "--verbose --manifest C:\\s\\unoplatform\\uno.check\\manifests\\uno.ui-preview.manifest.json" }, "WSL 2": { "commandName": "WSL2", - "environmentVariables": {}, "distributionName": "" } } diff --git a/UnoCheck/UnoCheck.csproj b/UnoCheck/UnoCheck.csproj index 22a1d2aa..f374d20d 100644 --- a/UnoCheck/UnoCheck.csproj +++ b/UnoCheck/UnoCheck.csproj @@ -38,7 +38,9 @@ + + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/manifests/uno.ui-preview.manifest.json b/manifests/uno.ui-preview.manifest.json index 39f6149b..97694520 100644 --- a/manifests/uno.ui-preview.manifest.json +++ b/manifests/uno.ui-preview.manifest.json @@ -3,13 +3,13 @@ "toolVersion": "1.2.0", "variables": { "OPENJDK_VERSION": "11.0.10.9", - "DOTNET_SDK_VERSION": "6.0.300", - "MACCATALYST_SDK_VERSION": "15.4.303", - "IOS_SDK_VERSION": "15.4.303", - "TVOS_SDK_VERSION": "15.4.303", - "MACOS_SDK_VERSION": "12.3.303", - "ANDROID_SDK_VERSION": "32.0.301", - "MONO_TOOLCHAIN_VERSION": "6.0.5" + "DOTNET_SDK_VERSION": "6.0.400-preview.22301.10", + "MACCATALYST_SDK_VERSION": "15.4.408/6.0.400", + "IOS_SDK_VERSION": "15.4.408/6.0.400", + "TVOS_SDK_VERSION": "15.4.408/6.0.400", + "MACOS_SDK_VERSION": "12.3.408/6.0.400", + "ANDROID_SDK_VERSION": "32.0.415/6.0.300", + "MONO_TOOLCHAIN_VERSION": "6.0.6/6.0.300" }, "variableMappers": [ ], @@ -25,7 +25,7 @@ "exactVersionName": "13.3" }, "vswin": { - "minimumVersion": "17.3.0-pre.1.0" + "minimumVersion": "17.3.0-pre.2.0" }, "vsmac": { "minimumVersion": "8.10.0", @@ -109,28 +109,28 @@ { "workloadId": "ios", "workloadManifestId": "microsoft.net.sdk.ios", - "packageId": "Microsoft.NET.Sdk.iOS.Manifest-6.0.300", + "packageId": "Microsoft.NET.Sdk.iOS.Manifest-6.0.400", "version": "$(IOS_SDK_VERSION)", "supportedPlatforms": [ "Windows", "OSX" ] }, { "workloadId": "maccatalyst", "workloadManifestId": "microsoft.net.sdk.maccatalyst", - "packageId": "Microsoft.NET.Sdk.MacCatalyst.Manifest-6.0.300", + "packageId": "Microsoft.NET.Sdk.MacCatalyst.Manifest-6.0.400", "version": "$(MACCATALYST_SDK_VERSION)", "supportedPlatforms": [ "Windows", "OSX" ] }, { "workloadId": "tvos", "workloadManifestId": "microsoft.net.sdk.tvos", - "packageId": "Microsoft.NET.Sdk.tvOS.Manifest-6.0.300", + "packageId": "Microsoft.NET.Sdk.tvOS.Manifest-6.0.400", "version": "$(TVOS_SDK_VERSION)", "supportedPlatforms": [ "Windows", "OSX" ] }, { "workloadId": "macos", "workloadManifestId": "microsoft.net.sdk.macos", - "packageId": "Microsoft.NET.Sdk.macOS.Manifest-6.0.300", + "packageId": "Microsoft.NET.Sdk.macOS.Manifest-6.0.400", "version": "$(MACOS_SDK_VERSION)", "supportedPlatforms": [ "Windows", "OSX" ] }, @@ -175,4 +175,4 @@ ] } } -} +} \ No newline at end of file From 926fff2cdf6c3a4735548e02a49d2d9137a4319b Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Fri, 17 Jun 2022 09:09:48 -0400 Subject: [PATCH 03/17] ci: Add unp-check upgrade test --- .github/workflows/ci.yml | 71 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 66 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 11fcb626..d2f47dfa 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,7 +13,7 @@ on: - release/** jobs: - build: + build_tool: name: Build runs-on: windows-latest steps: @@ -62,7 +62,7 @@ jobs: testwin: name: Validate Tool - Windows - ${{ matrix.manifest_name }} - needs: build + needs: build_tool runs-on: windows-latest strategy: @@ -72,6 +72,14 @@ jobs: manifest_name: Stable - manifest: 'manifests\uno.ui-preview.manifest.json' manifest_name: Preview + - manifest: 'manifests\uno.ui.manifest.json' + manifest_name: Stable Upgrade + previous_tool_version: 1.4.2 + previous_tool_params: '' + - manifest: 'manifests\uno.ui-preview.manifest.json' + manifest_name: Preview Upgrade + previous_tool_version: 1.4.2 + previous_tool_params: '--pre' steps: - name: Checkout @@ -101,6 +109,17 @@ jobs: useConfigFile: true configFilePath: gitversion.yml + - name: Install and Run Previous Tool + if: ${{ matrix.previous_tool_version }} != '' + shell: pwsh + run: | + Write-Output "PACKAGE VERSION: ${{ steps.gitversion.outputs.semVer }}" + $ProgressPreference = 'SilentlyContinue' + & dotnet --list-sdks + & dotnet tool install --global --version ${{ matrix.previous_tool_version }} uno.check + & uno-check --ci --fix --non-interactive --verbose --skip xcode --skip vswin --skip vsmac --skip wsl --skip edgewebview2 ${{ matrix.previous_tool_params }} + & dotnet tool uninstall --global uno.check + - name: Install and Run Tool shell: pwsh run: | @@ -112,7 +131,7 @@ jobs: testmac: name: Validate Tool - macOS - ${{ matrix.manifest_name }}/${{ matrix.os }} - needs: build + needs: build_tool strategy: matrix: @@ -137,6 +156,16 @@ jobs: - manifest: 'manifests/uno.ui-preview.manifest.json' manifest_name: Preview + - manifest: 'manifests/uno.ui.manifest.json' + manifest_name: Stable Upgrade + previous_tool_version: 1.4.2 + previous_tool_params: '' + - manifest: 'manifests/uno.ui-preview.manifest.json' + manifest_name: Preview Upgrade + previous_tool_version: 1.4.2 + previous_tool_params: '--pre' + + runs-on: ${{ matrix.os }} steps: @@ -172,6 +201,17 @@ jobs: run: | brew install gtk+3 + - name: Install and Run Previous Tool + if: ${{ matrix.previous_tool_version }} != '' + shell: pwsh + run: | + Write-Output "PACKAGE VERSION: ${{ steps.gitversion.outputs.semVer }}" + $ProgressPreference = 'SilentlyContinue' + & dotnet --list-sdks + & dotnet tool install --global --version ${{ matrix.previous_tool_version }} uno.check + & uno-check --ci --fix --non-interactive --verbose --skip xcode --skip vswin --skip vsmac --skip wsl --skip edgewebview2 ${{ matrix.previous_tool_params }} + & dotnet tool uninstall --global uno.check + - name: Install and Run Tool shell: pwsh run: | @@ -183,7 +223,7 @@ jobs: testlinux: name: Validate Tool - Linux - ${{ matrix.manifest_name }} - needs: build + needs: build_tool runs-on: ubuntu-latest strategy: @@ -193,6 +233,15 @@ jobs: manifest_name: Stable - manifest: 'manifests/uno.ui-preview.manifest.json' manifest_name: Preview + + - manifest: 'manifests/uno.ui.manifest.json' + manifest_name: Stable Upgrade + previous_tool_version: 1.4.2 + previous_tool_params: '' + - manifest: 'manifests/uno.ui-preview.manifest.json' + manifest_name: Preview Upgrade + previous_tool_version: 1.4.2 + previous_tool_params: '--pre' steps: - name: Checkout @@ -228,6 +277,17 @@ jobs: sudo apt update sudo apt install libgtk-3-dev + - name: Install and Run Previous Tool + if: ${{ matrix.previous_tool_version }} != '' + shell: pwsh + run: | + Write-Output "PACKAGE VERSION: ${{ steps.gitversion.outputs.semVer }}" + $ProgressPreference = 'SilentlyContinue' + & dotnet --list-sdks + & dotnet tool install --global --version ${{ matrix.previous_tool_version }} uno.check + & uno-check --ci --fix --non-interactive --verbose --skip xcode --skip vswin --skip vsmac --skip wsl --skip edgewebview2 ${{ matrix.previous_tool_params }} + & dotnet tool uninstall --global uno.check + - name: Install and Run Tool shell: pwsh run: | @@ -235,13 +295,14 @@ jobs: $ProgressPreference = 'SilentlyContinue' & dotnet tool install --global --version ${{ steps.gitversion.outputs.semVer }} --add-source NuGet/ uno.check & uno-check --ci --fix --non-interactive --verbose --skip xcode --skip vswin --skip vsmac --skip wsl --skip edgewebview2 --manifest ${{ matrix.manifest }} + publish: name: Publish if: ${{ github.event_name == 'push' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/')) }} runs-on: windows-latest needs: - - build + - build_tool steps: - name: Checkout uses: actions/checkout@v2 From 03c5435b52d0c1f88ba8c2bd79bbc01d861391d0 Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Fri, 17 Jun 2022 09:29:22 -0400 Subject: [PATCH 04/17] ci: Adjust previous tool condition --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d2f47dfa..bbce80b4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -110,7 +110,7 @@ jobs: configFilePath: gitversion.yml - name: Install and Run Previous Tool - if: ${{ matrix.previous_tool_version }} != '' + if: contains(${{ matrix.previous_tool_version }}, '.') shell: pwsh run: | Write-Output "PACKAGE VERSION: ${{ steps.gitversion.outputs.semVer }}" @@ -202,7 +202,7 @@ jobs: brew install gtk+3 - name: Install and Run Previous Tool - if: ${{ matrix.previous_tool_version }} != '' + if: contains(${{ matrix.previous_tool_version }}, '.') shell: pwsh run: | Write-Output "PACKAGE VERSION: ${{ steps.gitversion.outputs.semVer }}" @@ -278,7 +278,7 @@ jobs: sudo apt install libgtk-3-dev - name: Install and Run Previous Tool - if: ${{ matrix.previous_tool_version }} != '' + if: contains(${{ matrix.previous_tool_version }}, '.') shell: pwsh run: | Write-Output "PACKAGE VERSION: ${{ steps.gitversion.outputs.semVer }}" From 350f130bd922e9eedbf125c219ef443c47ed20c9 Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Fri, 17 Jun 2022 09:38:43 -0400 Subject: [PATCH 05/17] ci: Adjust conditions --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bbce80b4..54b3c1c1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -110,7 +110,7 @@ jobs: configFilePath: gitversion.yml - name: Install and Run Previous Tool - if: contains(${{ matrix.previous_tool_version }}, '.') + if: contains('${{ matrix.previous_tool_version }}', '.') shell: pwsh run: | Write-Output "PACKAGE VERSION: ${{ steps.gitversion.outputs.semVer }}" @@ -202,7 +202,7 @@ jobs: brew install gtk+3 - name: Install and Run Previous Tool - if: contains(${{ matrix.previous_tool_version }}, '.') + if: contains('${{ matrix.previous_tool_version }}', '.') shell: pwsh run: | Write-Output "PACKAGE VERSION: ${{ steps.gitversion.outputs.semVer }}" @@ -278,7 +278,7 @@ jobs: sudo apt install libgtk-3-dev - name: Install and Run Previous Tool - if: contains(${{ matrix.previous_tool_version }}, '.') + if: contains('${{ matrix.previous_tool_version }}', '.') shell: pwsh run: | Write-Output "PACKAGE VERSION: ${{ steps.gitversion.outputs.semVer }}" From 6002a325f442ccace114c0563153f7128926a61a Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Fri, 17 Jun 2022 09:44:57 -0400 Subject: [PATCH 06/17] ci: Adjust condition --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 54b3c1c1..eba772ea 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -110,7 +110,7 @@ jobs: configFilePath: gitversion.yml - name: Install and Run Previous Tool - if: contains('${{ matrix.previous_tool_version }}', '.') + if: ${{ contains('${{ matrix.previous_tool_version }}', '.') }} shell: pwsh run: | Write-Output "PACKAGE VERSION: ${{ steps.gitversion.outputs.semVer }}" @@ -202,7 +202,7 @@ jobs: brew install gtk+3 - name: Install and Run Previous Tool - if: contains('${{ matrix.previous_tool_version }}', '.') + if: ${{ contains('${{ matrix.previous_tool_version }}', '.') }} shell: pwsh run: | Write-Output "PACKAGE VERSION: ${{ steps.gitversion.outputs.semVer }}" @@ -278,7 +278,7 @@ jobs: sudo apt install libgtk-3-dev - name: Install and Run Previous Tool - if: contains('${{ matrix.previous_tool_version }}', '.') + if: ${{ contains('${{ matrix.previous_tool_version }}', '.') }} shell: pwsh run: | Write-Output "PACKAGE VERSION: ${{ steps.gitversion.outputs.semVer }}" From 39e6c06f7e4167ae16844629418cb22ee7825bd9 Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Fri, 17 Jun 2022 09:56:48 -0400 Subject: [PATCH 07/17] ci: adjust condition --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index eba772ea..29ab01d6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -110,7 +110,7 @@ jobs: configFilePath: gitversion.yml - name: Install and Run Previous Tool - if: ${{ contains('${{ matrix.previous_tool_version }}', '.') }} + if: ${{ contains(matrix.previous_tool_version, '.') }} shell: pwsh run: | Write-Output "PACKAGE VERSION: ${{ steps.gitversion.outputs.semVer }}" @@ -202,7 +202,7 @@ jobs: brew install gtk+3 - name: Install and Run Previous Tool - if: ${{ contains('${{ matrix.previous_tool_version }}', '.') }} + if: ${{ contains(matrix.previous_tool_version, '.') }} shell: pwsh run: | Write-Output "PACKAGE VERSION: ${{ steps.gitversion.outputs.semVer }}" @@ -278,7 +278,7 @@ jobs: sudo apt install libgtk-3-dev - name: Install and Run Previous Tool - if: ${{ contains('${{ matrix.previous_tool_version }}', '.') }} + if: ${{ contains(matrix.previous_tool_version, '.') }} shell: pwsh run: | Write-Output "PACKAGE VERSION: ${{ steps.gitversion.outputs.semVer }}" From 0761ad3a31586cd989e2c89d00ab13a0ff1093ab Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Fri, 17 Jun 2022 10:21:55 -0400 Subject: [PATCH 08/17] chore: Report installed workloads --- UnoCheck/Checkups/DotNetWorkloadsCheckup.cs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/UnoCheck/Checkups/DotNetWorkloadsCheckup.cs b/UnoCheck/Checkups/DotNetWorkloadsCheckup.cs index 90216490..79280c4b 100644 --- a/UnoCheck/Checkups/DotNetWorkloadsCheckup.cs +++ b/UnoCheck/Checkups/DotNetWorkloadsCheckup.cs @@ -69,9 +69,14 @@ public override async Task Examine(SharedState history) if (!NuGetVersion.TryParse(version, out var rpVersion)) rpVersion = new NuGetVersion(0, 0, 0); - // TODO: Eventually check actual workload resolver api for installed workloads and - // compare the manifest version once it has a string in it - if (!installedPackageWorkloads.Any(ip => ip.id.Equals(rp.Id, StringComparison.OrdinalIgnoreCase) && NuGetVersion.TryParse(ip.version, out var ipVersion) && ipVersion == rpVersion)) + foreach(var installedWorload in installedPackageWorkloads) + { + ReportStatus($"Reported installed: {installedWorload.id}: {installedWorload.version}", null); + } + + // TODO: Eventually check actual workload resolver api for installed workloads and + // compare the manifest version once it has a string in it + if (!installedPackageWorkloads.Any(ip => ip.id.Equals(rp.Id, StringComparison.OrdinalIgnoreCase) && NuGetVersion.TryParse(ip.version, out var ipVersion) && ipVersion == rpVersion)) { ReportStatus($"{rp.Id} ({rp.PackageId} : {rp.Version}) not installed.", Status.Error); missingWorkloads.Add(rp); From 90dc2a9445b5644b2bbd26909e364225a2064f3f Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Fri, 17 Jun 2022 13:42:10 -0400 Subject: [PATCH 09/17] ci: Adjust sources --- manifests/uno.ui-preview.manifest.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manifests/uno.ui-preview.manifest.json b/manifests/uno.ui-preview.manifest.json index 97694520..4f93fc90 100644 --- a/manifests/uno.ui-preview.manifest.json +++ b/manifests/uno.ui-preview.manifest.json @@ -1,6 +1,6 @@ { "check": { - "toolVersion": "1.2.0", + "toolVersion": "1.0.0", "variables": { "OPENJDK_VERSION": "11.0.10.9", "DOTNET_SDK_VERSION": "6.0.400-preview.22301.10", @@ -96,7 +96,7 @@ }, "packageSources": [ "https://api.nuget.org/v3/index.json", - "https://aka.ms/dotnet6/nuget/index.json" + // "https://aka.ms/dotnet6/nuget/index.json" ], "workloads": [ { From 6892e894547692d3bd2369192323fdd72cb81e7d Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Fri, 17 Jun 2022 13:59:28 -0400 Subject: [PATCH 10/17] ci: Adjust feeds --- manifests/uno.ui-preview.manifest.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/manifests/uno.ui-preview.manifest.json b/manifests/uno.ui-preview.manifest.json index 4f93fc90..eb438d46 100644 --- a/manifests/uno.ui-preview.manifest.json +++ b/manifests/uno.ui-preview.manifest.json @@ -96,7 +96,10 @@ }, "packageSources": [ "https://api.nuget.org/v3/index.json", - // "https://aka.ms/dotnet6/nuget/index.json" + "https://pkgs.dev.azure.com/xamarin/public/_packaging/maui-main/nuget/v3/index.json", + "https://pkgs.dev.azure.com/azure-public/vside/_packaging/xamarin-impl/nuget/v3/index.json", + "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json", + "https://aka.ms/dotnet6/nuget/index.json" ], "workloads": [ { From 48cda2162df4642b39168ca8bbdaf87632c3b94c Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Fri, 17 Jun 2022 14:52:42 -0400 Subject: [PATCH 11/17] ci: Adjust rollback file --- manifests/uno.ui-preview.manifest.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/manifests/uno.ui-preview.manifest.json b/manifests/uno.ui-preview.manifest.json index eb438d46..f1408c93 100644 --- a/manifests/uno.ui-preview.manifest.json +++ b/manifests/uno.ui-preview.manifest.json @@ -4,10 +4,10 @@ "variables": { "OPENJDK_VERSION": "11.0.10.9", "DOTNET_SDK_VERSION": "6.0.400-preview.22301.10", - "MACCATALYST_SDK_VERSION": "15.4.408/6.0.400", - "IOS_SDK_VERSION": "15.4.408/6.0.400", - "TVOS_SDK_VERSION": "15.4.408/6.0.400", - "MACOS_SDK_VERSION": "12.3.408/6.0.400", + "MACCATALYST_SDK_VERSION": "15.4.311/6.0.300", + "IOS_SDK_VERSION": "15.4.311/6.0.300", + "TVOS_SDK_VERSION": "15.4.311/6.0.300", + "MACOS_SDK_VERSION": "12.3.311/6.0.300", "ANDROID_SDK_VERSION": "32.0.415/6.0.300", "MONO_TOOLCHAIN_VERSION": "6.0.6/6.0.300" }, @@ -96,9 +96,9 @@ }, "packageSources": [ "https://api.nuget.org/v3/index.json", - "https://pkgs.dev.azure.com/xamarin/public/_packaging/maui-main/nuget/v3/index.json", - "https://pkgs.dev.azure.com/azure-public/vside/_packaging/xamarin-impl/nuget/v3/index.json", - "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json", + //"https://pkgs.dev.azure.com/xamarin/public/_packaging/maui-main/nuget/v3/index.json", + //"https://pkgs.dev.azure.com/azure-public/vside/_packaging/xamarin-impl/nuget/v3/index.json", + //"https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json", "https://aka.ms/dotnet6/nuget/index.json" ], "workloads": [ From 9051364f894b6f8d641592fa79a629218dc1dbbc Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Fri, 17 Jun 2022 14:55:26 -0400 Subject: [PATCH 12/17] ci: Adjust for 6.0.400 --- manifests/uno.ui-preview.manifest.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/manifests/uno.ui-preview.manifest.json b/manifests/uno.ui-preview.manifest.json index f1408c93..2108cedf 100644 --- a/manifests/uno.ui-preview.manifest.json +++ b/manifests/uno.ui-preview.manifest.json @@ -4,10 +4,10 @@ "variables": { "OPENJDK_VERSION": "11.0.10.9", "DOTNET_SDK_VERSION": "6.0.400-preview.22301.10", - "MACCATALYST_SDK_VERSION": "15.4.311/6.0.300", - "IOS_SDK_VERSION": "15.4.311/6.0.300", - "TVOS_SDK_VERSION": "15.4.311/6.0.300", - "MACOS_SDK_VERSION": "12.3.311/6.0.300", + "MACCATALYST_SDK_VERSION": "15.4.414/6.0.400", + "IOS_SDK_VERSION": "15.4.414/6.0.400", + "TVOS_SDK_VERSION": "15.4.414/6.0.400", + "MACOS_SDK_VERSION": "12.3.414/6.0.400", "ANDROID_SDK_VERSION": "32.0.415/6.0.300", "MONO_TOOLCHAIN_VERSION": "6.0.6/6.0.300" }, @@ -96,9 +96,9 @@ }, "packageSources": [ "https://api.nuget.org/v3/index.json", - //"https://pkgs.dev.azure.com/xamarin/public/_packaging/maui-main/nuget/v3/index.json", - //"https://pkgs.dev.azure.com/azure-public/vside/_packaging/xamarin-impl/nuget/v3/index.json", - //"https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json", + "https://pkgs.dev.azure.com/xamarin/public/_packaging/maui-main/nuget/v3/index.json", + "https://pkgs.dev.azure.com/azure-public/vside/_packaging/xamarin-impl/nuget/v3/index.json", + "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json", "https://aka.ms/dotnet6/nuget/index.json" ], "workloads": [ From df167e1ed7ca739ee2f17a910f0e3c2b58783576 Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Fri, 17 Jun 2022 15:26:34 -0400 Subject: [PATCH 13/17] chore: Split workload managers per workload sdk version --- UnoCheck/Checkups/DotNetWorkloadsCheckup.cs | 31 ++++++++++++++++----- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/UnoCheck/Checkups/DotNetWorkloadsCheckup.cs b/UnoCheck/Checkups/DotNetWorkloadsCheckup.cs index 79280c4b..3def0b6b 100644 --- a/UnoCheck/Checkups/DotNetWorkloadsCheckup.cs +++ b/UnoCheck/Checkups/DotNetWorkloadsCheckup.cs @@ -55,18 +55,33 @@ public override async Task Examine(SharedState history) if (force) wasForceRunAlready = true; - var workloadManager = new DotNetWorkloadManager(SdkRoot, sdkVersion, NuGetPackageSources); + var validWorkloads = RequiredWorkloads + .Where(w => w.SupportedPlatforms?.Contains(Util.Platform) ?? false) + .ToArray(); - var installedPackageWorkloads = workloadManager.GetInstalledWorkloads(); + var workloadManagers = validWorkloads + .Select(w => w.Version.Split("/", StringSplitOptions.None).LastOrDefault() is { Length: > 0 } workloadSdkVersion ? workloadSdkVersion : sdkVersion) + .Concat(new[] { sdkVersion }) + .Distinct() + .ToDictionary(v => v, v => new DotNetWorkloadManager(SdkRoot, v, NuGetPackageSources)); var missingWorkloads = new List(); foreach (var rp in RequiredWorkloads.Where(w => w.SupportedPlatforms?.Contains(Util.Platform) ?? false)) { - string version = rp.Version.Split("/", StringSplitOptions.None).FirstOrDefault(); + var versionParts = rp.Version.Split("/", StringSplitOptions.None); + var workloadVersion = versionParts.First(); + var workloadSdkVersion = versionParts.ElementAtOrDefault(1) is { Length: > 0 } v ? v : sdkVersion; - if (!NuGetVersion.TryParse(version, out var rpVersion)) + if (!workloadManagers.TryGetValue(workloadSdkVersion, out var workloadManager)) + { + throw new Exception($"Unable to find workload manager for version [{rp.Id}: {rp.Version}]"); + } + + var installedPackageWorkloads = workloadManager.GetInstalledWorkloads(); + + if (!NuGetVersion.TryParse(workloadVersion, out var rpVersion)) rpVersion = new NuGetVersion(0, 0, 0); foreach(var installedWorload in installedPackageWorkloads) @@ -90,7 +105,9 @@ public override async Task Examine(SharedState history) if (!missingWorkloads.Any() && !force) return DiagnosticResult.Ok(this); - return new DiagnosticResult( + var genericWorkloadManager = new DotNetWorkloadManager(SdkRoot, sdkVersion, NuGetPackageSources); + + return new DiagnosticResult( Status.Error, this, new Suggestion("Install or Update SDK Workloads", @@ -100,7 +117,7 @@ public override async Task Examine(SharedState history) { try { - await workloadManager.Repair(); + await genericWorkloadManager.Repair(); } catch (Exception ex) { @@ -108,7 +125,7 @@ public override async Task Examine(SharedState history) } } - await workloadManager.Install(RequiredWorkloads); + await genericWorkloadManager.Install(RequiredWorkloads); }))); } } From f69199049b43a70d8bdf12209a7f41eb906fa436 Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Fri, 17 Jun 2022 16:19:11 -0400 Subject: [PATCH 14/17] chore: Remove preview feeds --- manifests/uno.ui-preview.manifest.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/manifests/uno.ui-preview.manifest.json b/manifests/uno.ui-preview.manifest.json index 2108cedf..4ddb94aa 100644 --- a/manifests/uno.ui-preview.manifest.json +++ b/manifests/uno.ui-preview.manifest.json @@ -96,9 +96,6 @@ }, "packageSources": [ "https://api.nuget.org/v3/index.json", - "https://pkgs.dev.azure.com/xamarin/public/_packaging/maui-main/nuget/v3/index.json", - "https://pkgs.dev.azure.com/azure-public/vside/_packaging/xamarin-impl/nuget/v3/index.json", - "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json", "https://aka.ms/dotnet6/nuget/index.json" ], "workloads": [ From 9e4c86193f487bca698fc142bd911f06d80feea8 Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Fri, 17 Jun 2022 16:29:12 -0400 Subject: [PATCH 15/17] ci: Adjust preview vanilla testing --- .github/workflows/ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 29ab01d6..e64bb211 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -155,11 +155,14 @@ jobs: - manifest: 'manifests/uno.ui-preview.manifest.json' manifest_name: Preview + previous_tool_version: '' + previous_tool_params: '' - manifest: 'manifests/uno.ui.manifest.json' manifest_name: Stable Upgrade previous_tool_version: 1.4.2 previous_tool_params: '' + - manifest: 'manifests/uno.ui-preview.manifest.json' manifest_name: Preview Upgrade previous_tool_version: 1.4.2 From 01d37f721ff5b7c8025e11fd5a870a328e632dd1 Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Fri, 17 Jun 2022 16:42:58 -0400 Subject: [PATCH 16/17] chore: Remove debug only messages --- UnoCheck/Checkups/DotNetWorkloadsCheckup.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/UnoCheck/Checkups/DotNetWorkloadsCheckup.cs b/UnoCheck/Checkups/DotNetWorkloadsCheckup.cs index 3def0b6b..e54bb9b4 100644 --- a/UnoCheck/Checkups/DotNetWorkloadsCheckup.cs +++ b/UnoCheck/Checkups/DotNetWorkloadsCheckup.cs @@ -84,14 +84,16 @@ public override async Task Examine(SharedState history) if (!NuGetVersion.TryParse(workloadVersion, out var rpVersion)) rpVersion = new NuGetVersion(0, 0, 0); +#if DEBUG foreach(var installedWorload in installedPackageWorkloads) { ReportStatus($"Reported installed: {installedWorload.id}: {installedWorload.version}", null); } +#endif - // TODO: Eventually check actual workload resolver api for installed workloads and - // compare the manifest version once it has a string in it - if (!installedPackageWorkloads.Any(ip => ip.id.Equals(rp.Id, StringComparison.OrdinalIgnoreCase) && NuGetVersion.TryParse(ip.version, out var ipVersion) && ipVersion == rpVersion)) + // TODO: Eventually check actual workload resolver api for installed workloads and + // compare the manifest version once it has a string in it + if (!installedPackageWorkloads.Any(ip => ip.id.Equals(rp.Id, StringComparison.OrdinalIgnoreCase) && NuGetVersion.TryParse(ip.version, out var ipVersion) && ipVersion == rpVersion)) { ReportStatus($"{rp.Id} ({rp.PackageId} : {rp.Version}) not installed.", Status.Error); missingWorkloads.Add(rp); From 50f4c4c285e45089ebf55a242ddc2f78356a0e7e Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Fri, 17 Jun 2022 16:45:42 -0400 Subject: [PATCH 17/17] chore: Adjust min version for the preview manifest Needed for the new workload versioning format --- manifests/uno.ui-preview.manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifests/uno.ui-preview.manifest.json b/manifests/uno.ui-preview.manifest.json index 4ddb94aa..e9f79dce 100644 --- a/manifests/uno.ui-preview.manifest.json +++ b/manifests/uno.ui-preview.manifest.json @@ -1,6 +1,6 @@ { "check": { - "toolVersion": "1.0.0", + "toolVersion": "1.5.0", "variables": { "OPENJDK_VERSION": "11.0.10.9", "DOTNET_SDK_VERSION": "6.0.400-preview.22301.10",