From 02b4c693ff7a1017dccd326b359c0bd11d251684 Mon Sep 17 00:00:00 2001 From: Max Reichmann Date: Thu, 11 Apr 2024 16:32:27 +0200 Subject: [PATCH] test: Add single-file-only-test for deprecated libs in ui5.yaml --- .../linter/rules/NoDeprecatedApi/ui5.yaml | 11 ++++++++ test/lib/linter/_linterHelper.ts | 5 ++-- .../rules/snapshots/NoDeprecatedApi.ts.md | 24 ++++++++++++++++++ .../rules/snapshots/NoDeprecatedApi.ts.snap | Bin 6697 -> 6776 bytes 4 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 test/fixtures/linter/rules/NoDeprecatedApi/ui5.yaml diff --git a/test/fixtures/linter/rules/NoDeprecatedApi/ui5.yaml b/test/fixtures/linter/rules/NoDeprecatedApi/ui5.yaml new file mode 100644 index 000000000..dd924281f --- /dev/null +++ b/test/fixtures/linter/rules/NoDeprecatedApi/ui5.yaml @@ -0,0 +1,11 @@ +specVersion: '3.0' +metadata: + name: com.ui5.troublesome.app +type: application +framework: + name: OpenUI5 + version: "1.121.0" + libraries: + - name: sap.m + - name: sap.ui.core + - name: sap.landvisz diff --git a/test/lib/linter/_linterHelper.ts b/test/lib/linter/_linterHelper.ts index 60d21dce0..9050b5385 100644 --- a/test/lib/linter/_linterHelper.ts +++ b/test/lib/linter/_linterHelper.ts @@ -70,8 +70,9 @@ export function createTestsForFixtures(fixturesPath: string) { if (!fileName.endsWith(".js") && !fileName.endsWith(".xml") && !fileName.endsWith(".json") && - !fileName.endsWith(".html")) { - // Ignore non-JavaScript, non-XML, non-JSON and non-HTML files + !fileName.endsWith(".html") && + !fileName.endsWith(".yaml")) { + // Ignore non-JavaScript, non-XML, non-JSON, non-HTML and non-YAML files continue; } let testName = fileName; diff --git a/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.md b/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.md index db9f30fc8..9880d65ff 100644 --- a/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.md +++ b/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.md @@ -1222,3 +1222,27 @@ Generated by [AVA](https://avajs.dev). warningCount: 0, }, ] + +## General: ui5.yaml + +> Snapshot 1 + + [ + { + coverageInfo: [], + errorCount: 1, + fatalErrorCount: 0, + filePath: 'ui5.yaml', + messages: [ + { + column: 7, + fatal: undefined, + line: 11, + message: 'Use of deprecated library \'sap.landvisz\'', + ruleId: 'ui5-linter-no-deprecated-api', + severity: 2, + }, + ], + warningCount: 0, + }, + ] diff --git a/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.snap b/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.snap index 11120fef8024aaf7e7610ac6e8f1b433b1158c8e..f754d7acf0f6469a7d1b93174e211cdb60d3a7ba 100644 GIT binary patch literal 6776 zcmV-;8i(aURzV za8vO6Ss#lC00000000B+oq1pz#l6Qrv%2L&lJ6^tVju}etRzi<1SkpN3WO^M7q`#3_O*Q56ZDMw$S&=yMjc!g5RRm#h*Wy#r< zy^3sMJF)-q*wXCIerJC(-WvP_hFT`Le z5C|ar2!W^&V*kNPo(;ez;2Pi|;E%=yV6Mns$bC%b=}J@+Qmz;b1`$;VH=l9GFr74hx_B0#N>20!yFsZ=7hJdufO#=o3;Q?~g=pj+1D*deB`VfvQ0 zTa78l%G$bIH4{umt71c1&O? zRi@9JF*U9X1HUH=)8OCx4Imm$bcef?WJ-z3n$i{SHNXzfPRq$iMve3)x|CQXp}&oh zV-A)z`6&G#vrU(-&R+UpMU&N7dhp+k2j{P=DQPX7{hIl4Q+oGy4gT4dQ5VgPsc}t7 z&5bAK=G!(`PO9dYC9U)+DOKywKC?7vWUVPY(9YVPEsLEs2$)x_ovkj} z&O&2jXEj!&jD{u3WNI~!3wT<VVv#VVudc7v!kiifz3F4Bvi)Qdr5 zX!*Vye(Z)9-Qe)R3=bqdaJvUy@{ByRc!k&Jg@704dSQhZ6ffNGg*Uvgz-OxNwp3r` zgA;tv=YvapaJvt7@q_G#YyGC`9!vGje)ygr{@{my`=O}<;uUaP1-w{cs_wN^_f$ev zCG1%VhgCwf67H>p*D9f-%2eHFseW`7tf_)j6@0!5Zm9xCH7u)!v#U+j{g&$2R>O_e z@JKcMPc^(*4Mzpwa{>78fT?8dgD@)y2L<7ZAZ!UjFl4G;X{kOh1bc^I zO$d@9xF7_-2|=(1j;t|Nud-A>qXyR3z(qB1YYjYF1B+@QT?@C@nyOb@s{f)E9`@0-*1>PZu0U*Z^N_ zfV&#t7Y$I~2&)_6(neGDkfr+Fjc|V>JkbcRHA0{XPHBRxo8ajtQ}r54^|zaVW|-a# zOPb;MX1Jjlo^6I1EvD+Vmg)z#z#%OVZGn%rz%?!KYzs_lg;QHi)$1(PH?_hiTH%IP zc&HVgYK24F;FE3eaGR-m{dQ7`ni8pmWJ4w9+fs?%$icFvtWkTF74c+7o45p`2o!fO z6N(FMQS6k{N+hGHv4|Rv#xh+>dQt;Qkdi}bw9f|Vz1OA{6U@m}BB`Xb{_t#L-K%uX*1r&q$?0@> z_CXm3dDE&52E*J?)O-}A$Fq&<+SQyQpnPFVKT#m)UT4E@U-I;h)x8(3_S<~d` zx-~l-nx(#!W

_bJ0jIWipoOQRC^MP_B_XW6Dm6Wc_H6>`5gu$%FcLEF?>{@Fp81 zXN_p#I|MN*6}lE1=#Cx{x*kPap6E@=n%b$xRIUGbC6!ha@u6?!@j3YgY6hc0H;p@I645sHUQ4G0dQGd z?KSLIS4(zY7~5@N+|vfeqXxddra!q8gSe{=h`ZW=sPDV&yy%&q+>G8)BTm<8Es;`I z#N$e8Su(j=(~%r9Q%|BTqCr`7*WqN*)8dN$D1AyneN(gW9l%~qD!Dgz7c;Vi>uq?gVBw#_Yy}5Rr zd$YbERz}m-k5fOk#YB;Fh3Wf)7gYWeI*SLDOh`gUYoTy=>%ZQPGZ9(`si-S(Vse zAUKJ3t_IC*X3pGBIBMmgDY>UtiEAC*gN2Q~F{{;8M9N}yZ36Z#*6L0y+3MV5V|7i# z;bk;0Qzql{+%DiA0pAhuV*$GN(6a*mYG;rGUOTUgK@XsXc@H4nizw>>beEL#0D4u* zc>vAJdH{KaH{pQHR(rkF0pD`KPaV+agp-_bxzpAW=Uyi~=!B=7@VXO1F6eQ=*Ie)i zm#rfXZqR*&c6Gy2H=N>zJKgYiH|$|{1F|~e9N~duJrMW6`5ySX2j20(VlQZ3TSuJB zyl}M_?(@RqUU;~lD&LObW zm4VqBc5a^r^Mp_=iry)K*bHT$Omp(iryw~?M6zN^)ifb#Mx8E(`6RC17c>v^zT9w7cCN zIisN;Ef)d5FH63EB;YXt&j@%)z(0#4;P2%K_y_X@d{dr)Z_X3&ck%>$NuGfBJK&=Z z_>u$ecfb}0%yL4P6TWOuz#n$P51sHwC%or`Ru`;y!M9xSS9=2PcSFz(9d0yF#AAG~<2{+B)m#0}X$eE6E9R)*EMZcyRl zRb@juGPpcTht>3up`^IM;iR*c#?<&3VJ(qVqf0uKMGF@%nirLo`STXe?_RXHYoRPJ z-bdcMQ|?k0bnP2nn^xmJ;iHFXN_bBG_PcK?_n7S}8FahtH!8vl3vOc4xlo94g#~zb;jvONwjM@TFm35AkE*Ef3aZVUt z%Q<2EDJv9vCD>Jhr4oEWf?rDDAFUHcsT&|>nzH>HAQ?3hO{A1a)=_ri)6iK%O>B+Q zn~cet8t<_;Hs^23Vr(-7>{qO@eYj*}Gru7v8r!rHK{MKTW|_>+p*u8vL%`j3rZ+%2 zzmub+?}`CR>J?u7AeVzA_=p5&OK_zGFG(=l0i8Bh=oQ{`9q<_keBA-xbHFnWSnPxi zPPog4h)!TPf=OeHv2ag+XDJ*El z$!Jz@xrDE;3%E_dw*`Dxz|RCcA>jGqgs+!#L*ZWe)%h9u)%h)X;p?Tm@HHndeDye> z*8!h%z)cSLz60uYv-C=;wPC461T3n#|JMfKwSI)61fP)L1_>UL;3)}aIN;Q*^Oy}^eke<^pL4*w4rq45$xgT`8@*w}m*2|z zmrZlQVi&A+!4+G7Z*f7rS-|paC*>@4hPOL0Z*lc7nqNGwe5Xe&~Xqy5Oa(hs8`coa2VgZg|7q!@_LNUfo!F5~==SUX76l zk?j~{rO&c9uCIsmxMVpl$NJAy!rD4D9qv`Mb&0NURF7HiRHAYwt$(0|^~i92SW&x_ zxTbciN-Er*$Y@GR_m^nbW#{&R7jRDdE(2V*efN&s7v}8V-X4x7GO@03JfVd20orM&klw1E?Fi&UBWY9OV?&AI#? zzspa))%pA#%kudW3Ho;HrR`wkbVa zzpj8MD&UO@sIP?im3A7A>xoMEeI>kG39VJIk2&*)C3T1E)hc+S3L2|nQ8gTA&h}wR z*Ws!TKwSV924GbH;^qt=))XBxgD^V?hXg?m!loenBnaLREH`KPu;$o^hCmI$r$g|S z5Ih_LQ3D6oz?tR@AJ!ZjSJ%MxHSnDpc)AAuRRjChLSHT1Y0mIr&9U+8T6m%sUay5v z9n7tRbL-%dI(VnfHpfP5JV z+};4MZ2jHQ2&y^5hc(B>XB*+7M)+nU{J0VR+z5v?!Ff&ah&jWDHOIyun&5>da5h7@ z8TN06bGH88+zf9tkDOz}E4+<*HjftAuLVBT0_hgGckA!hTA;(6;iF-U3AFi~>FuG7 zpBxL$lwB38N_r@7GG?CqM`h;DBY|K?96wz?5KeAS%gOdrCk767j!BzF4};~&PaX=) zspI(YHsY{!K{;Lm)sXF#t|KOxMc6oFOBatHV8WP4wG9eamH(|+ zEhmr7ePQC*i+NkZjLfy~Gcps(c+9&QW^gVki}4h~V>>NrY7G;ud&%7~y1UlZ-N2=0`y+0nZx*h(RWg&edD*hb`bJ0+5KA%0UYU@7Et3bvBi zsyL`9yB&#e?v$|FP~EAwu_O{asbS0NZ|R)=7E?P@a;m?e_*Vb5vWRch0_GGez8zVz z_+}o9OBCPyd4!Ax^_0n1vQl?xc|gDq1pHEf?vnCn0j~&nCws(vNP;#!rqU#=S$ru6 zveGZe32W=~!rC4A;H1CjgOfV)!dh=$Si3DRto_ZA6TJ4w3TqWYsCqH0;^{@dv4{R* zHW;bG1+!hS+yytgz~_de%}yv*AI-QMG&fx0hTGln6E{RWaB)^9vvGlWJ$w9hvlkY5 z;W#gRJ1di&VwTFRF->Rt;9MVE?}N=gc+v+4_~AM~{Lw6%S!0?U72vCY*%h$70#2)d zA5_3@m2kSP9_Bs25-zTU+biKGmGD9(99adoRl%#a+L$*~y{#_RTMfUdh7SZ_qkUTY zD+6#{05%8U$pHK_04E0FfgrpWwAIXJgkZOdcWdCJT6nNl_p`Q@+`@G*s}2sXgOAj~*>&)29W1Sf^K8=Emn|I3Zb@>;pr6Oe z>@cGr{W)j%aBn7^-RFqLH5y(%G1UWQ=z(2qdLZYaKV<;rfPan+{LAz3YpayF+^aiI?3A5g zJ>fFDWoeW4_j6@Q6x$$RUa`BotH(J}Y;6IgjD{t~CrxZVE~ZzGtKCXk>o`4~h+8`^ z9GlE>F^yx>dsW+jWVGq@GVRVcy(mCG>+1~xk_38~Xp;oHNYEj{VhQv^xsQ?HBncD= zk`m~rbAKv(9_h6b+$6zW*`o`7B*9}6JY%<;-iYnJxL< z{GcPAwh_gUK|h^6E$FJ7e=gGTXjy%;iz0gn*}p%?YEmHOhVLWuM9V%@;`4|=hFAXAWDY%pHd zy}hu%7f$j*U-r~6J^ZE3yq|AT6FmF-2GUu6#0UD`{*^xXy${;Vd-)b6!Lz>~4)ViC z{BX7(uJprmeh8aGVJs?wXK4i-S^-@Z@UaTGwgO(r$^auP2%baqE&obTE8)CKxSfEu2*gSJcAY zweVIg>}%F1EI~P*6YAi@SzY4FI=H6}-mZhiW^KX}kmEVA9!{%=P4#e9J=|Nb&$Mu$ zZ7`1Kv<6Tb;1dn-<&Jc;JJ!|F+hz8jF!AQ_upSWE3l_C(DGv(s zY*5(E9)*lLiJyPI&GYYW^Zeb4zNqT89zHgSFj!!N!5;P)44xJ^c|rJq4G4SLgOFBw z<+!FsCo>ESZD5#V14B%XclD|1Gbb?wi$*yl_R43dmQ!#i(ev+Z^ZW(;3AcTI%h7C; z=;8Mn<@=wOqa8gdbuv?eeMdPR7#oWElsK8k!NsF|4>D>;I-_cn*%X%8KrqW5g3QJb zOkx1`8$AGhTJIzVVE<7rkus{XQR`6Sor#T;7=;6DP?&Fn!Um<&h&|Prp&_+QVk|y5 z$~WRnCB6ep4hN2Mtze*#N~F`8+&PJ1SZV{q>>^<3O0S#52rRcjpg`J(Xrecnh%0ez z8w@(S)kI3&kdl*0C1nFh`>=rIt~~~jm>;`XNRHY5(K3I!?!ct6D3VgriA*Z0q$8)> zjT57f${HDmQlqj?vB4oz3=T#Tsq{b=skwa%BWXp`ldYvA>Hc_hT`Cb*&y@8O7WLdx z#^H)t+F{h|FsgO*E$qnWpPHOlc8-jtew5VqgE_ZPmFMc^)yAtf*|9Bk2qmjp8K z6R>x&c6Q=;+ga0acp1&hl*`@*(+?G4Z@1*^?Ii(!7Xu!CyGwA01XoC~MS|dH?aj4A387?R3nT%uP}YXA zJa#6LB}E!J2@u-S(iIA2DQhXA3lwO|QuBx@9k3C&2Dl&ivwi`XEMzX^Jic|c98m=^TlD+=2xSOPgmOVR zL4ZoZhTsSYrIC1-oRm7`g|YTHf{zM8?D@i@E9P1)fazII8KqDLCO zhT&W8b|osGAgQae)eJD{t%~+)mAg|;rKAoyWw=u5Iw=`bVjVl)%)JACwjJJov{pze#55@ z9Y*~xSDE26dsK@3iv@&CI zREeo_a&jy_IoGzyQbIAlEGfB5PAck#%rlEUM%IuuvL*3cE9NDXKJBdW#iH0*wE$D{ zwX?~+TN^e-aNTwEiN`U7C_=^B<3-F-;4$WdjXb@q72valGbhHRdML0u* zRU)KBI9G(PiWa6C(EI5!QSYY`L3mQ6r}Kg~5JbIrqE@u&#f!C~T`&GlD?0RIx%NCx zy|`E_y7b}&-A}0%AJd8+z36qI-?~H)7HY*3z4#TaSgIEv(TZhy(dh)CTrVE!)VoM4 zeo-s>^`Ye#PWZJGUU!1c1>;Mm3DEnfJ!7hdwhzr9df0|tP~C?g`-O$QVMsK!h5CAQf8>`F;!nu2FuGJSq9%IgPY61Ru1#Z;hb_qb+4)V zwdHU_IXqYn|5FYhl*3{leBB5C?K4y_F;#!f2mk8>uOBA(VZI-(@WWO=_ydOOrKajr z0&s8umIojafC~cfL;(CjI4)?YUS_JkCJ1YTa8VF$3Bn^mm{9?#3fNp>s9tWW{@V(8 zssjFA0p*pje~^60bebgUJF;(!gIBT>OoWW4{L!s z7+VLk>)@n1*i;8E*1@=XL-h(%^~3Ao$a;v>!)NQ^ntFJ#9>z4l84ZT&m8R+&8{i8K zu&Dv=Z-8eT;HXCUVk11zXsBMblT;#DAe9g;sKiuDD$yA}LQ>`BN~gRqmPo6^mq6r! z;-n&>INcJ(Rw*Ti)2b2;E3rs4-6p3-G>~hG1muc*m~Dqf5S2(+N+iNDsY~gQR3#n@ zr{rXp5|P78vi~|pinT@Mbv#?Oo}&RQTvqaiik8^`u^ETUO*s991~ zDY9z$9*1V3FQt(X7}1Xlz6Q7Te%<}YganbNu3z& zl@K?KLR@T!$5=qzJTDTFQ>lJO({*xdmm;q#Dt6=h#jd9vyAi;#qW}&Lz>o!ilPv(8 z7gIWQ`_gtmZ=(&y=LkWv_;e-i|*T>EV?o#Ymd?;_oKl^fn0Dl$0DMFJ7pAz9aB0Mib?O=U_inSR%Z{TTBR!>q=N^4YJ z8egX)ID&SrddzKn*4$2Byy&Q;)X^!&)Ry+1!urmr+3HHdMX|a@0S?aB>P{)x>YPJk zb+!HBr8h5KB;#{!7T_lW{7isf3!r%qy(qxntPHZ-Yv+BT#{+13&I3sEBFcCG-63W@ zfZi3e9zatv9zbrv9k)SxyS-j&gCE=AF&i}6;Z!?ZZnt#Axyugs+2L6`yl;nq13Db= zeFwbcuyn-137W6azD}6ygwvgHyA$4a!v01#AhRRRu`W2l1u++V%>_Sj!ACBb4QM`DKGepZb06h z90Chn85pf$@AhdhP6+v;=pGe_jZpfEG$-$U3X;7*BuhqBO#_lfMDj(_=vus&J1rDS zx2<42e85ps$8Cofa+$1?F1c;EW7UI|aH(qs=fER+|sE6i|5%59L#!&*^3(3+^ z0zO0p+{!_7lz0n0jB25xR)2qxQ)YB zfsDJN52*B(C5l9`9a=>BjoUH0U4ShDJYq$yyGimBS!!LDqt-{{sP)+yYV8(W+BWyy zBK%Q=zl(634Ia0F%aTAlo9!^!4#(M{!wz@b;XPwD6LEG{IH1k}hd5xF1HR{g7ma+| zM3|kQIKbhAeVlOkcJ6(#6CQI8Oq9D{odJdqqwcsf`@yqTXn$#AKunkYL&q#%yeOo^ zG=mDAq{!=1;hyDLDx{=(4JG*v4yT?yH>$+egw%LKiOg=5XH1_pV@gDlr%stZwSC5{ zw&{{I>k#SSR;f*%);2S=BBjJSLQDE-N@!y4_LDXid(3te47%0!@zgBn%T7AF5U_Xg zvl`bzJHymR+Orzx;+@&c9#+rV=N!3IUYk~u@&I$BZU2!xM-Gt-MnxY`6?KjjFBjmN z{G2eppLN3cOGYSmi?FW32)`4-J6I=-LN`E+G-c;EK+;M$5>LwEjHB%Er=b&i zo7i%>GZB?kCDvhWZ1yLLVr=6DI5b~l`%J;cW_&{mG`2AVf~L3etRk76O>=1ap#XPU znO-;L{8^Tgek^oTQn%pN4sw|4fD@_+jQiswQjUYrYGPaY4Ha&U3+aE_lxcQ{51?7QQZU!zFIG%?*#c;jeC( z?Sb_kxYJtrdeQ^WdSILORWF3S@C`3K?giJV@HHH!j8WlhRQMWpNRA3$qr%s)f^k&% z8Z^0HePUWpZkXIAYv+6Q8C2z*F_Ou(@f9hQTpMvJD!H~_Ex`2x+$_LdR)o5nB|n%Y z)Sn1hLj9=>q1KL26yXaZY!cyq5uO!coDI&%IFDKI<@+-f`(+z^Y=b&GoMwlsGSM3r zeEDA)|FSU-nB{;K4!C0b@2w7~G74C(our(F&hSP8h?s-JJ1iL~H54GCn9`V?j19&q-Xok@BIoG&qMgw?-fC;F&wYvZf4f;_Kqmj+u`W(w0K5@e~J(^&OCPG)Zy5Y+1P%? z2H3m93kRO896esmuiC-pfN|CvIuASGF$cVn@vs>0gmay+#R=Q2JuHmo?ADB>Bc9yQ z&#N);AhHvKtoT({#I*I07MCo=r09mT>+Klx3+1>V_q(QhnmaZabqrj$8)x9{*JO-{*Jks{2kf*r0hNS(FEnpecrWa z?=!`by-(bcz0YPx_C9YpviCXAnZ3^%XZL;Fg5zc<+~$PeJK_JF;5AApW?JxL7u@B7 ztr_XWXOvCMwBWzoaK9U#cf&_+sIg4-;rNLM?)AWP9{9imm6qu}91nTn5ih*%1xE>t zw@m5b_(KUiT>{%mpsEz6mRe~zj;BlE`BM0}6dKCl5M$;KQ|b=KyJfJg3~I_@Mmd~l z%=TeQ*WoDlL8T9-`(UXLV#W*~<`f;{{m|@(BmE%xVWS@&^@BSA3yc{)%sDn90Z;<) zL6Sngr5cBxgh*A2s107s{(E}X817Y*!V*QJY50r zS3sZ=CRf6FmGEFCd{k+fW22!8##h1NRd8ArtgC{1w*TH%1=EZfKFm2bv?L%WS3_4d zTv832tKpsPzgucRF=qHM=h*ma4O~rw-2D{(DOuY^xhM$A(*Q*J#;1>fz9O_;fv_>fx^Kzu&8e7Gs8w>LDi3#&f23 zhBkh2C^%DQRjkOV-n>bld2$~WnL7^zf)#Q6a`8YottllXn$8#=I9NF*Z5%udrYAqG zH!x@H#)r2Mhs6tu@e(MyY%jMRJIpM?!Wmn5>^YUJNh;jM1n^&Y#IG6mDS&(N^4R|Zs=2dtNMOX#J6$*Cgv-? z9apgUW*mzP6yLl#g!Be=6v-+O0WZ?M+)&@Y+8ktd$6Yq7^eLo>uhg zd+4ucf{{ub(CmN(4!Fqy9w#g@I-!_-G-FOsop6a0Hap=_Cxl&aaYiPyaDjP0bNqFk z8)mrSL^u32Ba@wOl*-I8P3L&vJP%y&fh`_*#si0W;W{t;*(jTtW14Iw;3SCSc@I*Nr=@DCrH;)i?v@QL42GaDCx{WAL4$^e`lfIkIbP7pqCoz{L+5N-^@ z!$EjC2pl-xp^c{V%PwXraq3iM<3S=AYhFucAWwp>4?S@^_4Hcu^FdVv}dbAsc zLpRiocEfP!2CFR3b9;5e!qFZmLJ#a?(F0iz{ZRub2K*B(;9rn~UtKE4q)yFoVz2B3 z^9h%kElZ2Ezh5s(qS$HyrsTW3yKFZnimm7aDZOFw-IFFZ7Z=kh#gukArM9e2#bf5q z3q?nATujZ-^j_HxAn9#dU8LRl+Sdip&idLWfGC0%CR!`PJ|eV;FiQmOQ10VJI8_8$ zgoFs%>D*t+oJV@C2seswN9O2)Uy1Of2rpRe=GSD;59{8|-`AGi&0m=dlesz4kH=aHSVs_Cm-Q3S&|cTysm{s1j%^fzOq|wI%RcMg|yIL2wR+K}k94;z{Tgu^`atK?h z2Cn0Mu)+r^A6(>vTYT`A4-T|c3|x!+u+$F;KV0C4o3@wV@k7`cVPjGYT*n7sMF3I( zxF`U(1mOJuOg9P*CZ)i&ToV?8us#Tv1>v^s5w)W9P(5Uhn0ErW1eYinU$EnHp; zx7WgNYN4(UPPPodajnn9>s(t0ch|vFbfyS2xVIkuSPus_ zK<or^ZzE!tGzVv;l5!fZsI08x1hK5z>u@sw zs&%HSFOPxO$ADujj2{b!jfGdn!kBS}s`aL-hmC^;<3Jh*8^^&_;~)@%MIl4ghQ6ln z0SLP>ongL&J#0bP4=}q;WZ0K}>|skpYDq=fqirpnZASkI18)xX>j9CuU|!3X;-E0a z0)_poQAjHz`1z+=JpUw%=Wmy_MOCNy@Uanu!88jD_P55M=d{3)3&KGbARK57LQ3wG zVyY4u$uLZ}fMKEq3{ff8)}^G*8o?0E803)HDXmdVr{IpD=Reru`TOuE-0}HMN3)Hf zhd*SH?|({)v~(nukxU6@4strsHx#ugaU_p}vj+Jdq?MLbT2V)`Da^KjV1hLS>GcPV zU;qvsJOEv4=LiO1&LEdaX+>VIwkWaI`1%oy!eJIDOtnB^o!qL&o@&fcms&=kDV_h$M5`TnLAy#d(xN@PRglxIvJ5u;nh~- z#NeZ{2F9V#sI1d1a7gEagPuex)tyCZa@X{5N>;UGYpHN*LoBi?8ILJvN!kgET5c)* zaK#Mm(CfA6)mplyx8(9qjZ7?C2gXu6N^0l9oZO{IleO|P{Z$+3*cLj3wOhQWC!3+w z5$HZDqfcdGg-f1|2?@fjiqfCs1eld?f1bXZ`?GN%$n+Mj-%Y)mONWvf zD^{oUBzk?he-$ag@h(b-GDJtz`;9miH64n0i2zsTm)-b=YS{r zQGkQGbg}HMC;d*4~Vq zbEpo4+LIEd^;p|J{aKqDPekP|Ioh|qO)HAMjTK;KzV>$7?zXr3{t?p~xUN_hcdY<7 zxI*I(tdc_QNf!72hXU$m#>fBwibk=#