diff --git a/layout/reftests/font-face/507960-1-bad-checksums-ttf.html b/layout/reftests/font-face/507960-1-bad-checksums-ttf.html new file mode 100644 --- /dev/null +++ b/layout/reftests/font-face/507960-1-bad-checksums-ttf.html @@ -0,0 +1,16 @@ + +
+ + + + HELLO WORLD + + diff --git a/layout/reftests/font-face/507960-1-bad-checksums-woff.html b/layout/reftests/font-face/507960-1-bad-checksums-woff.html new file mode 100644 --- /dev/null +++ b/layout/reftests/font-face/507960-1-bad-checksums-woff.html @@ -0,0 +1,16 @@ + + + + + + HELLO WORLD + + diff --git a/layout/reftests/font-face/507960-1-bad-offset-woff.html b/layout/reftests/font-face/507960-1-bad-offset-woff.html new file mode 100644 --- /dev/null +++ b/layout/reftests/font-face/507960-1-bad-offset-woff.html @@ -0,0 +1,16 @@ + + + + + + HELLO WORLD + + diff --git a/layout/reftests/font-face/507960-1-bad-sfnt-version-ttf.html b/layout/reftests/font-face/507960-1-bad-sfnt-version-ttf.html new file mode 100644 --- /dev/null +++ b/layout/reftests/font-face/507960-1-bad-sfnt-version-ttf.html @@ -0,0 +1,16 @@ + + + + + + HELLO WORLD + + diff --git a/layout/reftests/font-face/507960-1-bad-sfnt-version-woff.html b/layout/reftests/font-face/507960-1-bad-sfnt-version-woff.html new file mode 100644 --- /dev/null +++ b/layout/reftests/font-face/507960-1-bad-sfnt-version-woff.html @@ -0,0 +1,16 @@ + + + + + + HELLO WORLD + + diff --git a/layout/reftests/font-face/507960-1-bad-woff-sig.html b/layout/reftests/font-face/507960-1-bad-woff-sig.html new file mode 100644 --- /dev/null +++ b/layout/reftests/font-face/507960-1-bad-woff-sig.html @@ -0,0 +1,16 @@ + + + + + + HELLO WORLD + + diff --git a/layout/reftests/font-face/507960-1-nofont.html b/layout/reftests/font-face/507960-1-nofont.html new file mode 100644 --- /dev/null +++ b/layout/reftests/font-face/507960-1-nofont.html @@ -0,0 +1,11 @@ + + + + + + HELLO WORLD + + diff --git a/layout/reftests/font-face/507960-1-ref.html b/layout/reftests/font-face/507960-1-ref.html new file mode 100644 --- /dev/null +++ b/layout/reftests/font-face/507960-1-ref.html @@ -0,0 +1,16 @@ + + + + + + HELLO WORLD + + diff --git a/layout/reftests/font-face/507960-1-woff.html b/layout/reftests/font-face/507960-1-woff.html new file mode 100644 --- /dev/null +++ b/layout/reftests/font-face/507960-1-woff.html @@ -0,0 +1,16 @@ + + + + + + HELLO WORLD + + diff --git a/layout/reftests/font-face/reftest.list b/layout/reftests/font-face/reftest.list --- a/layout/reftests/font-face/reftest.list +++ b/layout/reftests/font-face/reftest.list @@ -92,8 +92,22 @@ random-if(MOZ_WIDGET_TOOLKIT=="gtk2") HT HTTP(..) load 486974-1.html # compare fonts with and without bad head checksum HTTP(..) == load-badchecksum.html load-badchecksum-ref.html # t2embed lib on windows is picky about fullname HTTP(..) == load-badfullname.html load-badfullname-ref.html +# 507960-1-* : a collection of tests using DeLarge from openfontlibrary.org +# check that the original DeLarge face (ttf) loads +HTTP(..) != 507960-1-nofont.html 507960-1-ref.html +# check that the WOFF version loads +HTTP(..) == 507960-1-woff.html 507960-1-ref.html +# try damaged fonts that should still load (bad checksums) +HTTP(..) == 507960-1-bad-checksums-ttf.html 507960-1-ref.html +HTTP(..) == 507960-1-bad-checksums-woff.html 507960-1-ref.html +# try damaged fonts that should NOT load (bad offsets, signatures) +HTTP(..) == 507960-1-bad-sfnt-version-ttf.html 507960-1-nofont.html +HTTP(..) == 507960-1-bad-sfnt-version-woff.html 507960-1-nofont.html +HTTP(..) == 507960-1-bad-woff-sig.html 507960-1-nofont.html +HTTP(..) == 507960-1-bad-offset-woff.html 507960-1-nofont.html + diff --git a/layout/reftests/fonts/DeLarge/DeLarge-bad-checksums.ttf b/layout/reftests/fonts/DeLarge/DeLarge-bad-checksums.ttf new file mode 100644 index 0000000000000000000000000000000000000000..22ae2a93f6b553fcc7a32a0f8651fbb2bdeefd8a GIT binary patch literal 9700 zc%1E8eOO%8nSalnb3cGd7|0BagpV0uh5;@xfnhR1l3;?7)TyFk#DoY02w;W}fh3S( z#G2Mvqlp@~AB!tSv>H>*YW6YDCSA2gjfysDqeh#xMAJuXqno;Hq$YD`-*e^;U=r&- z`|P&=#!_L8#TWRA&*u(o^9X}W#EPLaFBL1k>rTr_4xmj%&4i>?s@A|@|;rp;LD$B>$N}cB0qUo z92{Egpc&a8-2daxOqm-BYl!LP*KMTlM9UQZZj^B*lM&;X$(K!>#c^I$7$9><%&0bU zNIMxg=#$0r6R-V6d;a%*l9Qg)<5eujv9t8`k2bRuu{?m*;sE3Jm{F%RW{>fmQQ3I6 zHtd^J14nbk5QJ`{?TBI4G0-@1=t_ACgqGT4q#SKh%-yB<0+S3z)!IB-n@`bpV=i&h z6P^%`R4NWY8nY9%FxL?a2jq)|tr?p`H LIS0+4o%4wJz}n=cu)h6c9tma &=W0jxVp3OZ!mdn3n;@QO zXTYB$mCnf0s+fMhlgfnE Kkf;P`{HJE>*z8{jr#ba1Oju5ri|oOjW-I93Xff9RDE9=S)gQT50j=0 zW-%Tp5g1|}V&pRnQe1@D>}x+ok%YT *OtL%V@Q^-xFmB^n-0J&CM5ubIh?`hXXtoy~^Ju%Y@k3 HK;c5?kAjh?`SM=U?u*7y1SKCQ+f fLD`?0< z>EX?f3nsYA$M=`^H4;_ZdwXrwYp-nI<{BmyZQ{V*a;q`z`l=CaQv1`xo}r&@Fs9VH z?%!!5w$1qKItiY}IevvQTJ-hCb5AHkXYu1pI_*`3oU@9Y9XOdSE0Z<_WtAOTUzu|D zl+R}{DJt3S3F#X=O((?V{7k^G^xR-DhgKxl8q`wRAy8*D-HXX|=Wi-yaXF%GCvB?d z?EWWzK1As4ordzT{^A(QmY}ak??Sf3%|wVLC>mgFs=`sHbdPK%#~iX|-j`=JW~zaQ zirEU>^9i9I^Vtz?q*Q67m$sVJuuqf`^l_@b{^A!h)3ORBHWS?99kPy1CT#ABeV3R` zX-jt>vzi5(85q1O-l!=@99IY4Tr7(fRoVg4a|zw7og@Rv)NG46v-JUj@jhZWe#i8D z;tABjs_S4jNEX~!Srp(&f)wLSo?bd>j~N~$Ye f! zcvQsLO>+a!$&SE5n@>1UrIMj38<0|%gc*S83J-JP@b#*Db7$D1oxM5E3VE`s*Il_h z!5GR>7tbOW&mtGkA{Wmh7tbOW&mtGkA{Wmh|3_yLA+%3Qg_zUX?!^BPhW^9MB3@wE zr0X5>fOWtglWRZQf6fjn6?&{AifVlE^YeC6oF{aCk^1rclJU(an8^7rbebW9Q}bW& zU_<8UGDObV^w;M!po+M#vYg*Ar<$4-o!VvTlF~0cWy*_2RT;5*{${o$WQ({+I4G5{ zefVn@8=69tN~R6*_pm)*1wuU1Wn>T}*o0@q+1Q!{$-z3LDV$H`)W%yff*X;#f{T!5 z^Y$Fxt_C+F&C~vfG@th=2>dHjH>Y!W&q8egDf>I+Y)A^e3CT#0;T%c91vp0%o VrIZ`)Ao`YJupperd{`P8Y&qkRCkg~Da;0N{{g2|Sv(^O7v!B>!` zb3TJp7pE$xd7S2RS`fS*Ta$u&ur(=2kTQfk-aj8(`k?@l(5h~os=?hz{lTZu%526$ zl;=UD%rb@CGKJ``1xWLeFXDZc@V86&+a(;i5^)|u>PO11Tp@bu>rX~FTOyUGcmXI% z8{!R^Lo;-qf^mu$`M0VNFJXI&&PQPc^y+*xmN0MR?FJy!fcP_EE9XVzqv0XWOUO&` zbI!}iEAR`>E65w+UpOCyNTu+S&J)B5^8zFYOLg9W776G)`z9CWMW`kPIxm5h+^O?X zkWL=fc_XMKgc;4`6rSRI4D#{hGtL{CY(gyOXR !Y{NV!8-+&YL+-7UwO< zn}uS|Cq&4632(3E{A^|up@;J++$JGAr1AD!IiJaFB8246 w##r#o2}5R@-eEdwWGDSwZ6^P-PG1p-_xXn (}Q;OqSo!*`B|uyI@sY zXER&{P0$S8NPD3k%UUu6I^a`SjV+BB%B;QDu-WiS!vVt!NdFnivCWTtyK!6-riE3| zkF*k6aU8?w!MhdO@NFmmlo)F7VgEF7-q=Ohrw!*Rfo1sI%}27&kTzU;`M9*)7i@Rq zZG+2n^fu%R!HWxn)$H9o&a-)2apqQ>kM&_XwqaosHk~6$-jpO4)}t~)kM;b{$JsB` zGanj|wqv~t$M~_m1$(T+HYUqjwCJb&bL(kr`xJXzfhB~%Esgz_ajt?(y^i~#7w7Nf zURsN&Axreb<=#qx0#NbRJYqdG$($O6DMcCAUWx zO45l^cB1CYPT^>1<&s1`)$3;_JWprAKfr~q2Z?}@PH|mF;|^_v84!!VWyIlcKeI3^ zT7doIffe%_+Yys-mrBEInSpzW1NV?DzI){G{GEr!D?m5SL3b8`2a3_TbHRshErClh z56y=Kun@{H02aYwbmZk|)GN?nOW`}HmLI;0f?tg$y9Ta>>)5|4@UP_6a3d^-6;J~! z`8V(eRGEDPZ$<~PZ{Tatgzab;7PPnUkYnyzhpz624e&h}fLmcB+y;Yi58Mlnzz%p6 zM&L1c9CPOr@FeVnr!ZqY4bQ-9a1dUHH{eYeg}2~s_%$4Y!|+=;0`I`Pa1`E$4^17N Z9qskqYg#*+yPJB~c6aD!hhPwd{|1gNyeR+x diff --git a/layout/reftests/fonts/DeLarge/DeLarge-bad-sfnt-version.woff b/layout/reftests/fonts/DeLarge/DeLarge-bad-sfnt-version.woff new file mode 100644 index 0000000000000000000000000000000000000000..8464123f98842a41de6327eb8e1cab55a859c4be GIT binary patch literal 4704 zc${^ZRZv{Z7KR5OoFKslcXtRrXy9NWBzUmF0|A1E02$mJf(Hqb;O;tDfZz_n27-HV zhPiXjJrDQg?y6PY{nh$culj56s_yNrqpAu(LjwQ+q!s`I)Bs@H0{ovxM^8W)06 l# sD1(1 zd~5Um9RNVsjN)`C_7tIs{@uw1g3@B9pz?B1oELabl;>>egX#s%_1}7om{$PHcb3jJ z007YfO6QHrhyA3>U~+YF_W%H%p!P+>LB*Tdkrf=DC5VN!g#} 2ql$;=)CEGc266pfcSm1{4KT~j|rUHnK;P3paX}aGTTpz93MHU9SOQs0|R9 ~gclSs|&!$76x-^O+=GJNu zQY#A!t99E?pRfot4=|{>1C&|_=;iS62*9OVJs)n(84HEl=-|be*aNrMT_S=20PPcE zWmLUdR6jvhbAs5|173`N6qq6-ire~3Gu7l|;XRJ?;04e*xQ_TSu <4>+4qQZEK$zV(?KO! zt`F*T$j}1aS*13Wrc~$L<&Jjm! z9n{H|@syHb7UsUw99>*+ciR!@GuLePxc$p&YIZB-?YzrMyQlP}wsGrdhlZ-Hexn$N zgut4u04FauKNlZQRcU!aYjI;`XMWAziGJpZ^Si44$tABYL=P-(?D<~?-sAFNyGI8M zR3I99YC2jwtM`tX8Ac5ajha(g2ErWE!9&kMj`U+_UV@?VE%rM!i2cI?r>y z49EPg7;q4z_EhZ }Iut3*$+}Ib$ai=o zGnv~7sfqg&2o96LVk~Tega-DQ!X4N%m_L6!ul`{z9ZIgNC{&c9t00;BN>@p&VMgyc ze(d>m@tP4Lobumq0D!^ANB}8?81|gT>EZz^T)PQ4v%8xk&z_KBB$Fo7>QPK{7b|HB zq!*=Eq(jmvg%}_KJ PBVt*>uPz=3d1xM7c59GtcU-44?Ze+PTaL~y7dCzRflP|Xz|%_mH7 z%N9nAW@xMq`KP}lLw`-$YwFJHhqic2vavq9?7mNgkLc#cI1Injq_D(RF*6&OW|wP2 z2$&^#ba&IZ%9&CnT9&>Ry=rfhGHlkwG_haxcIKYuc4C_oS6V`T++@s<|@v!owhJ>SWf4o;l_KH+plz zBQ!KhCr~n9XRymg^hxYe6RzhMG}`73_w|Zzjq2F!!^TrH9oU2EiSm@rZ!vofX6j3! z#TFv8Va0yX()|8|5O4xe_;7iC`eMR<#a3z1`{Fi%uS#Yn_!voZrxMdt^tCd(Ds9YU z>f0;Zx_P?WT$uvK`UV9b*02xB97Q+9;2r)Ad+GDAF1n(}5l_Zu_2JI2vhA;h{dp4S zW$ r3;QIs-JgG zdoPN2w8P~*wk-!mTcw)t35%~8 Pg@cRI)9_KoyfFW0SGRq6%4*zQF74~ke3 z-0yR{#IZ$sta1)lNu3F7AL8#mGK+?kbRkouriX CNoAc}Ao_GBKZ5UI+3kbZT2)T7gW$)CM*ANXhZ{)Xz&6_oo(mi+VRs_=K3w>IL& zzvtTCgaKI9ehf{#?ZJDL>~%{XNW3wG&!a=V{4@(hsxiu^n+1a@XSqTlq!(2PjIM{B zC*q%;YIO HlC}Tf+np41qAr!3<1$izp{qxoU#0N^6C} -Oe0!Yesh_Gxf;KO6^>9@m zGkDfZu!S75jxsoP{&;G9JvEv{OY}x3OEUkw{LH>i6=qa7&ig7yYqK9RUTo9ADiYa} zpGd6D)jU3)56sklRZqvXN~XpCHC)*)XUNx6+Q9>)zJQx$Yx{+;Re$FU;~56TMda5- z)!M@;9!+GkX&yQIO7)4cxr&{6%N#u<99$%8+v6+V2}EZw-kTCNk-4$ixPvcvJ{QOX zO%_`sD#2ljTHD(tWQ9tRp+9caXjo;=3 wU{-sxPnEOyF(#%j~DXhnG@B@O_k@S(X9);XCw5vuG AouRq^5JxpO>Itc z>ImPqIVj~jKoVUUmTAO=gU1?^0{47~Kmv_KI>KQ2n|hfn5Q39Hak8W7#Ocdi6m0@h zgp9Y8@#DmPbiBG~5FZ`C>&okF$%3@%-3Wtz1!=FV3^gahAa8un!@&<`)u#8y#xl0K zTkFE^u7-w*y!t<}wvs-1k*d?Hj+nib!w>J-?@CR5yP #l(`4XP^r2PVKPSQV6o*rO9w|>|L;b8q#2!NDqGZ4j1lN& z-Eg&^8p5*RlV98^F4Z56+=GUKj`0Xdr9@3@6G;=L9@tN7{g;O|QAcKyvAxRb51~Yt zGCKw(GI;)yYzmbHXno&ozGpJSqd@L9_XA%eT^mZc1y^Wxf2Zle5?4F4vxEx8-zCPH zSi_$#Hmm&4^iin^=zOT&7(43WEWL*WvRtwxhqjE&DGxrF4y2wL!&YbE49j^=S%=)G zNk>yS$Xa!E5In##KKZ`rHd!G3^6bRxC%BOmSs6}vC@5JT?|Zs7Sf4 KE!G4DI`9Xe~be;7AAlrXDb9G7=wap!II3~vQNW6q33(-CM?-_(| zQdS!VCc#>_ivj_PmM|fkeG73&t81 $m@fbVTt5`|I27#T)m}~kbd1at-H`TLbeCpcYL>m1()UkK%6g7@fhW=Jw zScKM`pWm~w`0|rw3^$Bg^Wz&Wu~p3Y!m8qQM^sA;MmauS bb1~S1gmKrgA=mo3cZWlVA3prH22Ly3_Nhs-lqpr zRfXaVv9(k1C*b=C$f)seCc7pcZbqMyi15MNETertI6+1O>=zU$x(In b7+6GfxdGcW@`a;OXpVEPOka%up8(=bAJJ>KtS&7$NHlx+YCWFHJ#YX^X9rzr+w# zSO=G1seKsQM~ e{M#qtRPFMnPimnb@}M7#p+SNeMcgxMU`CQ42YJg*6jUaXQ@fMAe2R> zur}7Oz&qPu%wQ+{BKF>{T-T&T!qOB#ObB|v1|E8r!?I1myg5zf+$t na&BXW9 NPKWJzIL&trRb#Ut$)_K_lk7pRtqKF|k>sUsdlgztN!W z;(_aNFv+u3A%|G?b?MGyf~m&Ph#Uvw>dD UZyQVyMhNohlsJozEI(>_@3?_U{cNF)ILKltgtEC2ui diff --git a/layout/reftests/fonts/DeLarge/DeLarge-bad-woff-sig.woff b/layout/reftests/fonts/DeLarge/DeLarge-bad-woff-sig.woff new file mode 100644 index 0000000000000000000000000000000000000000..de73d046285c63ca4869eadc6166573ffa30f95e GIT binary patch literal 4704 zc${^ZWl&tp)`kZkoFKslcXtRrXy9NWBzUmF0|A1E02$mJf(Hqb;O;tDfZz_n27-HV zhPiWc?~m`#*Hx>!`>FM=UiH@ARlT>js*WlE4S*V?765{OXSOZC|1)&-1cU(qv;@@h z1uFDA#M%lW&X%qK0D3!$&!T3ZYV~MLJ4<&IBQ-?j0RIgn5`ban )M{9PGg@NvpX@UTi7v0u? zLR}o0zh0*T1Oe!OEky^A00aPvs4fWp>+xT`WdBNU_i%TQRP<~*6sk+3C}M7{1|hYw zu&`RU{qzZoK=S~DiaS85g@9fT503y`y4CaH)||0WsErO@jEOyPd)*}>2msJNAy!7! zt3~w_WHl# KXtJ@_8$yi~$cw+A@NKKpgukW<~^A z1TjXxH_Hlc? XhG048^_>Z>3#G5L}RdK~Rg2 z2{6txi2v(VXyT&Aj4r5OzRN9BxI(nTqZ~At>69tnG|F2yRX;2G*)79u&D&j6!+p&g zfw8X@u^JRa|1n};CBh8T4Rpw~&$r7IRK1Mo!OU028QWMDxX!*uoMVY{mYxnO$#Q*A zr$dGo=*}v&sWhcJ=Pq}&dmpZB!`qg}1INv-6u^0M_DE=OPZ$YgHy>8aV)^{%An%|~ zwv4Bg46`uzo#yD`g1g&}K%cp0v&Zc}R#UTEDR1XpR@yzKFSU(ZM>{lBZS@<)I3xtt zYy~)Zx%s*Hc&bXv3tEdCD?9UR_D=LOPn_RX^-nH&bs>6SabwT_G4LLj58FLDV4wog z&{NaV+F8AK%*-%qkSU4MuThWf`IH7w6eQCC9eJFG_~xEve{SC-JTdD1!O?l1^JO^Z zcg28%AhoAzhma94!=gJxMG9VYQR5-!DNX4!h?8an7g@WhndFj-dc8r;V`an(HB2#0 zxSpqdesgK#?}q5loZWU^eDmb^%_Fp5i^8@*ojFw#&pyxjLeZf}X-?K{LPfsABbmwE zPDoAMpFnV!1Qugq6C^aS#}w|sp27V2<9YQDYw1vOT}7dy6kP?$)K|JnVhuBT&+%i= zuZ!1=5aE>ndj|j*e2fH;Qix&CX`C(|u)?*QfHS+hIr8iY8AdW`GOZrPG a)wbKE7(0kJrtxI`mCBYh)=6T^b! z!sP X5(v9U1y-(q2<{UO%+OTau0S*=6^AB78(QH^yQ3ohF4Pwu+hAz%;vD8$!S= z$)mfQ##PRgD$%m^wdiH*RE)!~-xco;JhZ}V?IT}(W#ludOKW^(MPdAc!eK0kymcz- zojwfxdL-c5QmNG=@CeR8azipDdvYOnauEQ;<2+Z<5q5CoQE|R%oL!`|be#(hhO`u0 zSWphp{nS$MEB}0jX~>ntb^Q2erdogn%P>uy=evO0Y4uJ&8XCp%+Me78a6Tn@l(3+{ zBpV@FfwL#J8KF;>mqIxUiPOmhl!;mj$!C5-Orz*iNqfm9$0{&cr1*LB!)bRCzKYMa zx)E5>VCwP!LGv~4tz?fi*JQWn41fpk#h|#~Cq}%-^!}2Yn?zYjwTmEPiH$BI@IHHT zY7-q*b`C7rXN(NGv6FiNK3LPPgt;fJ6w(hkP*Tm6xfdP=VN)lwM)b@v2e{Fj6CR MoVDl_*dLAvF*OW!_$*y;L{a^`bJ}}R zyrUg1=do=$DB3F3gily}%^>$Hej*qDvtHxK*+fRbpIJ%|pJoJQl$DuH>o+NktnVz< z#=Sq6^e{rH5MdK5N(@gaE*(@NOACc_5WLelCbw^-*Lt~b-KtVA@Wpl~(tl9Iir{{q z+a-=I(qol#xJv3wVEYh%_mNpNq@)X(A~iiM9JwhG-=EAP`SHTejrynG$gMDbpPecl zRR>XoyRawoNQFpM_Jj1R>!Ti>_DlZko%_H)!}m8-kFKEHN3!IfM^}Zv)4a72H~u}> z_9hI#s`g`O;%yJ!qhzmJ@<8H^A$%Sk>gA_dAX1G{KHV%BOgYOH3L(9yLSS?~>^u?w z^i-=$829|xwhkF-YxOD%Lz$1xqUUW6QMF3dYoo;aYnEqKyc+wa=|YT}u>-&`SRdo& zf;v|V9x%$U!imSswin)B!2ec|ls@S!p%?CMorXEl?zCR*#;zphD8;19Ll+^Hx5{fg z?( !S{LejK0#Mps-bl&@_Ahe%60Dq0McUO!Z9tC`uGdRPVDf*q#x%y*srIz+? zjgI%?4fDr?5y@qU?)eI@@t@j8iRdi{>-dLkr^~6KJ>}AY_*+315zEmLRt)MYbOyJw zGa33*uEIjR9rNj6IYk-!+0&c?E)1b)jVQ=-iRquW1|U9A(nLYiXh}DL{T);;Sn?O; z(+-^WD=Jy+3pDWq^~c}50q5Hhn%=L4Foqo+d<7Te0J)C{{D8P)3LZ1H ?q}F03k9~2>=QAmqq`dRE z{ptig5j7bzYV`(SJKC}*npd^Z*F8!WAD^`_mf=VFXH~}iNYu(Yd7cCIROVssXI(bf z-PxNaUSi!&(-QfIL>>btORV3cupDNA4IGfA!LEP)L$nPp-TJ5`;1bHDqm$njaK@B* zZCr-Vqc+0u*@rbjp80|dw|6NXWaRcdCW!Xdl(Dm7_T$^*L{I%xJrcBenX8AZ`k2A9 zUV<&;kad*7sq@EE BwC_3I$4tW=jCVib*eC Cmi$Cw zZLa3=@qA#W_N#h2rd2X6{;%Q6b~!`7p3)8;AoT^@EL+ rU6S=%08@lGH*gYn*!sEN#t&Bh&k!SlI59%!=I z5>W{bQ`FktE+H#aiVXd6qejCjb7mO0-yk0o8+JY++h@&A%5MUv)Wd3zS@TmJL;TS- z@ekac(Lndn4gnq>#jC}vk;N4(y4)QKv3tCbH_x1?R&J_1H;ryx=sg>u&vo5?@c9~T z{^lilbhm~eJMHc2BQQ0+<4!BjGNZ0%Q&8&VcxKXO_7_zsx2Qtco`%cy`%$wXacrfe zb}8TApC!TZ{;(v@opEwpiIT e~&Co7T`6->p8E@}-% !IG*j84recghH|vJ0 z{nQYa1)u!lPI0OJXyhI=6m*P7NGc_2TAN6kDD}X8TI;_&tckiZlZ@?ER(}X3x|G>5 zD3QVQmt<3@EI{k~X7fFh86E|4x49qq8tK|l!Y#N$v->+u50<#vp`9gEDE=-n*2EhA zbg^0G|12Msnt;xS>W#6Z9?sHxNFd84OLAz-$ei-vgXuu(nK5j27S6Do=ahBGeVTMM zg@deBR|mlZEaQ{!i*Azz(l5_WyncckNs*P|golEX+6!YlHO( f_$Fnw zVPF!hb-O4KplAsbve~x~hqSupN^rG_6n){2{^2W-ld~Csqo$>#prX@H@eIwo8+MVL zrBk@Lm~lz<2?s {h+t%9_@yqu`YT(bN1b(Sc zqJ2Gw$Q6&VbG?d{L~Ib)nT)xnZ<1FADtA*oOU9?J{Y|9N&qE!1*G^I67-i^h<%LCP z&H4E~8;dVLS;la~s5L*n(Gpw5j4!MzPIpAL#9)-;<3%o!H<^d%?DAY;C&6JfKY6%t zTE?gilSZ5E+#*ihn2eOi&}(x+_juAclL}Q4zml8|w-H!h=810+%+}Gl_&0KCD#)!c zQ@^A_+r)FVW*q9}b%VnP)ouOjk8|?4&a?$+;7g+bWHd@S5gd`v9Z91~Ekddw8g#?M z5*Ey~I*RQnn&RnzlN@Z<;d|;NLj#fVIkk_8L=xast;WcmG@YcW8eMcE4)-n)X8~2%N@o+QxlthFN-ewu?`@sn^8eqSmK+#3W6Lakg&?%RMVa1pT z5E5?$U5-^p*QRds?#Ug+_i_xCRD9{JJpL)iCZkDT^9YQ$kDnahty|a$ea<${wo$jG zd!Kn~Sh<5c`2|mBKV#wBsbq$_csSRjIZ)>yW5EbnSI{+SI(lgeB1>CrmHZ`!sKPq9 z{7UV^&^~fhJ^QW1fl3VSrKnwXW7hD}=+H ;vmBOf3g*peD(6;V*`mRF0k72D2+y?Y zA19H@1AqL|!{f_JL1hL$zJ@}JEbl4sA0WGJ0gasH2Vv!)+T5#M5mnPx*!mZ3+xr|) zU|j5qWb6Ce@__8=!Kc@ qYyl1eS^A%w}@T zThlvxk=Bi*bIiN%BWM)&SdkTvlyII#p?{yd9(9p<)K~rlCBLqc5p$;P@XJQ!5HBNc z3ciSaM%*97$kLj7^p@?)5YaOsJT^k=Hy 8?+RqR6)sU n6dIik@wJ)zj8UWq%VUGB%vTW)f$*vn45D4#mf#Xel*}eEHebtN-=9 zskc%_*6{1nSKDdJ$E9BLve&bvm)%P7GWsQE!5lPVzWW(FnH>|GMfz3s4)Yrg+Abcr z9tV>=TNQGMRbQ9xJSLcG42{TfFs`25t H>*YW6YDCSA2gjfysDqeh#xMAJuXqno;Hq$YD`-*e^;U=r&- z`|P&= ^b_Z+wY0RSTmfC0*`zOJC~m&N-Y1t1mJx~!qCzH|4|yD5O- z6oAm%T;JUp3Sm!h9K-iYbD(ea;ddI21IXI}5{xZP^^N0+V+--!2o`S(HkhI%JK`Y* zWVW>R^zN>NkMMa2@haCeb+rfm!cKq`_M8ytXsB1dn2Eg9f_>Ds`rb}@8tRdE;donn zeOuF8DL+NLw7mfI<<5@oo_F3nCL?q|_E`x`7c5(qml|qgOaBXE6kyk@Nvr;i*VQHF z&_|)u%COXj{i1k(2#=8$Xjj2vWk={E?IC4&@=fG=fVVsdZV>ph046AaMJR QYKF$u;hQqL0h-U+0^o~OyJW~n1XClxQewz*OPOlJut6f8i wFtdFW+kOon#Bs zm3|y9oM%30)cdgd4^#bF^hRWr=1r5E$*A+^${ HGx?%Pw2Axcu@ZS5z$h&XxY}UUhZlHP>E;xK(idvKy*zT)v`a f*o?81WI88Y=lSP3HSx l7kR}Oe# z2~@%|sDn=EJ>Q|Q9&W| a1$ceVt!r)jnDv1uo_yR8Cv0H2*4U>gAQniwQvj0-Zd#x4$iO< zt@1fZ!n@=f?iT&tMxG@f2_U2kON0%=PT^O=m?6nfVyH3fFuZCQqbBO6tLSFBn|>h1 ziwne?#qHDXr^R>03CSfbky@lJ(u>k5S&{SQI(b0eA&)6WC0|*ltW%y)-d0XW*`lhW zHbw1@`XF*g&(!aV=z(eXo^QEFzWt7o{`wvEsjy#c1YDc5?1hPO=3J7HLd>!xr)N3m z6VKd?^sG2 9;3CHD0B#5>oSRXmpi6Tj=ZwV9Rorn L`^}6~~R_a!g zw|Gp{ROYunvoah-EGujl2fz}>HOCUkVj_uBhK(Si$>B9*`ZAT?>Os<|m@>6=?T>Y& z>PvCJGrPX!$Wd*-cGTu3Jv(;TNX{2qrr{-^?nO2+A p(MbCiD?={hkgs_uU9g(|lUFfT zsbzzi@xqXyv8t+nmOa_M$ m=c#GFg%du`?sdhF v3&HF^`-vaLG8>;&Jzm9f96L*2|7bHy5z7N;Ee 6MM*!<5vt!;hY?GehN z#X8^F@rjnK;yPlhT{-5Eg-Xk0EHt8SX<^+gMRRdEAwwXAoU0w#i%DIv3A-{CZJc$^m3C;GxV;*gnHg<>%9TxjX-_t@`)A5Q^ zhfXDv){h%?ooFQ2*jTP%I8)(sghW5>*G{f~q|p-`_lV_31HGT$@6&1=G9FGw$|r5x zi?L_XWx+LMNl3KFb{ nGcPBUYSv{mVbUM|<5?EAb8Q zO(rXj*G$?uGvaGocn=|y%i{=1c)Ii?F)6MyWz1$Ln{F_De3xeZ+FGE4Xq(jOdj$ueuCE%_CbU02>>2#o24hOC z>;9c4V%v re<5rnXL~HjQ3%~@jIsG z6HlNHR$T|PL9*b+%Ax>I5~LVs^7PONd(6-PSwmtRUk!NT$ujL@1EzVJpuKU{7`!V^ z!R2C{Bdnl8kwux>7Y`!tC1Knmv^0y47?P-aFKnIx)kI_SgdX+aDH@d#97Qv=N27V_ z>JZVSjcL1Ra7gtCb;9x_Q{)Ub6tOuXN`yxRgCuhqF78O>?nLcPqIlwFpE;B(k~)_* z$fF|0Zkii>PId$j+I+%+DwPaQ+JKb81k3 )i6?d-{MR>%`oJ?_fo z3C3`ax_B13cow;M7P)v9xp)@2cow;M7P)v9`9C^~2;qHFD#V=5b|?OaF!Ud07V!eR zCSC84`>p- n|uF2nRWoBsNo22>FjR+jS{=2TO&qEkC9ol^RRr%ZX#s4Bx&&)>|JglrKP2?wPT zwhw>JVuO>2QpuDd{vNjHt3ZfHx{M5f1e@@TI2&7&AURZrG==l2oZ5IxMrb2aS7;H^ zY~G&3+ttu!q >M01;Kws>gIF~?^&qzBV~W5oDE5#Hz676F`OeQv;gNw!t+NO zBx$#Sjh$4%&S^TQ8Q7;CGCA+y)Tz@{9OcAbW^i#F7oq}E8>bnZW^(G_)X8ZUr`eq5 zaGJ}h%4r^_`J5JnE=TI-$a7F@7Zh?@#NS?x?b#@EKT f%)8G>_AKP76ZUV{1}q54I+S2vUZS$NT4FOCJ bTc!~GwE$^8@ }&dXW!%^ya?5#K<6c}k~?)i z3ew5LI&TD(gfXL;oWfI_k3l}3e8zbrlTC=_{7m*mpM*GXVtw@XSxgtf&UrJ($>O{P zd9zT=`GjdQU&7mKIX|1(MCj&x3b#qv4r#poR?cTKn+Rd~^LYCMj8~?~tR!%r+txU( z-Kfi7-sG?EYHqSUX>)b9w)fO`cee(bJ370N@6OJ*6}sK?B3%}B1R6`0HFb5jcC_2( z z6~{4*ZoFF|fNwkar^Il3H~XiF^Tsa1J^`Gk1eW1*7az$!L)viZ<>S(FU$EVc zw+$}S(F4dAf)^JCtJ%AGoM-d4;>@i$AM3+(3}9grHk~6$-lQZK)}wNo9_#s?kF#H> zXFfC_ZNqvMj`3rA3-(xtZA_N6Xwgsk=hoBM_9^zb0!tWyTN?W<<6H%odL8#e56<7g zy|fll! =#qx0#NbRJYqdi6?%O6DMcCAUW> zO45N+cA)0WPLXJ6<&sQ)s@Km 4-}(w=YkL2S^}41 z9-0peU?G%Y04##V=*Y{_s8^uDmcn;XEkAr01-}|ib`4w$*Rg+9;9tqB;YL^vE1(8e z@^9b`s51Ko-i!`n-@w `8{m7;54XZbxD5v29=I1CfgSKD z48vpaIOfhL;7QmCPhrM*8lHjI;2^vXZ@`-{0&l_F@M|~(hvBzy1m1yn;V8ThADY@b Z+S}^8*0i=acQy5_?P}N04xtbT{|${ !`>FM=UiH@ARlT>jj;bmE4S*V?765{OXSOZC|1)&-1cU(qv;@@h z1uFDA#M%lW&X%qK0D3!$&!T3ZYV~MLJ4<&IBQ-?j0RIgn5`ban )M{9PGg@NvpX@UTi7v0u? zLR}o0zh0*T1Oe!OEky^A00aPvs4fWp>+xT`WdBNU_i%TQRP<~*6sk+3C}M7{1|hYw zu&`RU{qzZoK=S~DiaS85g@9fT503y`y4CaH)||0WsErO@jEOyPd)*}>2msJNAy!7! zt3~w_WHl# KXtJ@_8$yi~$cw+A@NKKpgukW<~^A z1TjXxH_Hlc? XhG048^_>Z>3#G5L}RdK~Rg2 z2{6txi2v(VXyT&Aj4r5OzRN9BxI(nTqZ~At>69tnG|F2yRX;2G*)79u&D&j6!+p&g zfw8X@u^JRa|1n};CBh8T4Rpw~&$r7IRK1Mo!OU028QWMDxX!*uoMVY{mYxnO$#Q*A zr$dGo=*}v&sWhcJ=Pq}&dmpZB!`qg}1INv-6u^0M_DE=OPZ$YgHy>8aV)^{%An%|~ zwv4Bg46`uzo#yD`g1g&}K%cp0v&Zc}R#UTEDR1XpR@yzKFSU(ZM>{lBZS@<)I3xtt zYy~)Zx%s*Hc&bXv3tEdCD?9UR_D=LOPn_RX^-nH&bs>6SabwT_G4LLj58FLDV4wog z&{NaV+F8AK%*-%qkSU4MuThWf`IH7w6eQCC9eJFG_~xEve{SC-JTdD1!O?l1^JO^Z zcg28%AhoAzhma94!=gJxMG9VYQR5-!DNX4!h?8an7g@WhndFj-dc8r;V`an(HB2#0 zxSpqdesgK#?}q5loZWU^eDmb^%_Fp5i^8@*ojFw#&pyxjLeZf}X-?K{LPfsABbmwE zPDoAMpFnV!1Qugq6C^aS#}w|sp27V2<9YQDYw1vOT}7dy6kP?$)K|JnVhuBT&+%i= zuZ!1=5aE>ndj|j*e2fH;Qix&CX`C(|u)?*QfHS+hIr8iY8AdW`GOZrPG a)wbKE7(0kJrtxI`mCBYh)=6T^b! z!sP X5(v9U1y-(q2<{UO%+OTau0S*=6^AB78(QH^yQ3ohF4Pwu+hAz%;vD8$!S= z$)mfQ##PRgD$%m^wdiH*RE)!~-xco;JhZ}V?IT}(W#ludOKW^(MPdAc!eK0kymcz- zojwfxdL-c5QmNG=@CeR8azipDdvYOnauEQ;<2+Z<5q5CoQE|R%oL!`|be#(hhO`u0 zSWphp{nS$MEB}0jX~>ntb^Q2erdogn%P>uy=evO0Y4uJ&8XCp%+Me78a6Tn@l(3+{ zBpV@FfwL#J8KF;>mqIxUiPOmhl!;mj$!C5-Orz*iNqfm9$0{&cr1*LB!)bRCzKYMa zx)E5>VCwP!LGv~4tz?fi*JQWn41fpk#h|#~Cq}%-^!}2Yn?zYjwTmEPiH$BI@IHHT zY7-q*b`C7rXN(NGv6FiNK3LPPgt;fJ6w(hkP*Tm6xfdP=VN)lwM)b@v2e{Fj6CR MoVDl_*dLAvF*OW!_$*y;L{a^`bJ}}R zyrUg1=do=$DB3F3gily}%^>$Hej*qDvtHxK*+fRbpIJ%|pJoJQl$DuH>o+NktnVz< z#=Sq6^e{rH5MdK5N(@gaE*(@NOACc_5WLelCbw^-*Lt~b-KtVA@Wpl~(tl9Iir{{q z+a-=I(qol#xJv3wVEYh%_mNpNq@)X(A~iiM9JwhG-=EAP`SHTejrynG$gMDbpPecl zRR>XoyRawoNQFpM_Jj1R>!Ti>_DlZko%_H)!}m8-kFKEHN3!IfM^}Zv)4a72H~u}> z_9hI#s`g`O;%yJ!qhzmJ@<8H^A$%Sk>gA_dAX1G{KHV%BOgYOH3L(9yLSS?~>^u?w z^i-=$829|xwhkF-YxOD%Lz$1xqUUW6QMF3dYoo;aYnEqKyc+wa=|YT}u>-&`SRdo& zf;v|V9x%$U!imSswin)B!2ec|ls@S!p%?CMorXEl?zCR*#;zphD8;19Ll+^Hx5{fg z?( !S{LejK0#Mps-bl&@_Ahe%60Dq0McUO!Z9tC`uGdRPVDf*q#x%y*srIz+? zjgI%?4fDr?5y@qU?)eI@@t@j8iRdi{>-dLkr^~6KJ>}AY_*+315zEmLRt)MYbOyJw zGa33*uEIjR9rNj6IYk-!+0&c?E)1b)jVQ=-iRquW1|U9A(nLYiXh}DL{T);;Sn?O; z(+-^WD=Jy+3pDWq^~c}50q5Hhn%=L4Foqo+d<7Te0J)C{{D8P)3LZ1H ?q}F03k9~2>=QAmqq`dRE z{ptig5j7bzYV`(SJKC}*npd^Z*F8!WAD^`_mf=VFXH~}iNYu(Yd7cCIROVssXI(bf z-PxNaUSi!&(-QfIL>>btORV3cupDNA4IGfA!LEP)L$nPp-TJ5`;1bHDqm$njaK@B* zZCr-Vqc+0u*@rbjp80|dw|6NXWaRcdCW!Xdl(Dm7_T$^*L{I%xJrcBenX8AZ`k2A9 zUV<&;kad*7sq@EE BwC_3I$4tW=jCVib*eC Cmi$Cw zZLa3=@qA#W_N#h2rd2X6{;%Q6b~!`7p3)8;AoT^@EL+ rU6S=%08@lGH*gYn*!sEN#t&Bh&k!SlI59%!=I z5>W{bQ`FktE+H#aiVXd6qejCjb7mO0-yk0o8+JY++h@&A%5MUv)Wd3zS@TmJL;TS- z@ekac(Lndn4gnq>#jC}vk;N4(y4)QKv3tCbH_x1?R&J_1H;ryx=sg>u&vo5?@c9~T z{^lilbhm~eJMHc2BQQ0+<4!BjGNZ0%Q&8&VcxKXO_7_zsx2Qtco`%cy`%$wXacrfe zb}8TApC!TZ{;(v@opEwpiIT e~&Co7T`6->p8E@}-% !IG*j84recghH|vJ0 z{nQYa1)u!lPI0OJXyhI=6m*P7NGc_2TAN6kDD}X8TI;_&tckiZlZ@?ER(}X3x|G>5 zD3QVQmt<3@EI{k~X7fFh86E|4x49qq8tK|l!Y#N$v->+u50<#vp`9gEDE=-n*2EhA zbg^0G|12Msnt;xS>W#6Z9?sHxNFd84OLAz-$ei-vgXuu(nK5j27S6Do=ahBGeVTMM zg@deBR|mlZEaQ{!i*Azz(l5_WyncckNs*P|golEX+6!YlHO( f_$Fnw zVPF!hb-O4KplAsbve~x~hqSupN^rG_6n){2{^2W-ld~Csqo$>#prX@H@eIwo8+MVL zrBk@Lm~lz<2?s {h+t%9_@yqu`YT(bN1b(Sc zqJ2Gw$Q6&VbG?d{L~Ib)nT)xnZ<1FADtA*oOU9?J{Y|9N&qE!1*G^I67-i^h<%LCP z&H4E~8;dVLS;la~s5L*n(Gpw5j4!MzPIpAL#9)-;<3%o!H<^d%?DAY;C&6JfKY6%t zTE?gilSZ5E+#*ihn2eOi&}(x+_juAclL}Q4zml8|w-H!h=810+%+}Gl_&0KCD#)!c zQ@^A_+r)FVW*q9}b%VnP)ouOjk8|?4&a?$+;7g+bWHd@S5gd`v9Z91~Ekddw8g#?M z5*Ey~I*RQnn&RnzlN@Z<;d|;NLj#fVIkk_8L=xast;WcmG@YcW8eMcE4)-n)X8~2%N@o+QxlthFN-ewu?`@sn^8eqSmK+#3W6Lakg&?%RMVa1pT z5E5?$U5-^p*QRds?#Ug+_i_xCRD9{JJpL)iCZkDT^9YQ$kDnahty|a$ea<${wo$jG zd!Kn~Sh<5c`2|mBKV#wBsbq$_csSRjIZ)>yW5EbnSI{+SI(lgeB1>CrmHZ`!sKPq9 z{7UV^&^~fhJ^QW1fl3VSrKnwXW7hD}=+H ;vmBOf3g*peD(6;V*`mRF0k72D2+y?Y zA19H@1AqL|!{f_JL1hL$zJ@}JEbl4sA0WGJ0gasH2Vv!)+T5#M5mnPx*!mZ3+xr|) zU|j5qWb6Ce@__8=!Kc@ qYyl1eS^A%w}@T zThlvxk=Bi*bIiN%BWM)&SdkTvlyII#p?{yd9(9p<)K~rlCBLqc5p$;P@XJQ!5HBNc z3ciSaM%*97$kLj7^p@?)5YaOsJT^k=Hy 8?+RqR6)sU n6dIik@wJ)zj8UWq%VUGB%vTW)f$*vn45D4#mf#Xel*}eEHebtN-=9 zskc%_*6{1nSKDdJ$E9BLve&bvm)%P7GWsQE!5lPVzWW(FnH>|GMfz3s4)Yrg+Abcr z9tV>=TNQGMRbQ9xJSLcG42{TfFs`25t