From 4cff9053755f8ee19d03b379e839e82829d49f16 Mon Sep 17 00:00:00 2001 From: Dominik Stadler Date: Fri, 27 Oct 2023 10:08:09 +0000 Subject: [PATCH] Bug 66425: Avoid exceptions found via poi-fuzz Fix one expected exception-text which is different on newer Java versions Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=63142 git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1913385 13f79535-47bb-0310-9956-ffa450edef68 --- .../usermodel/section/geometry/Ellipse.java | 5 +++++ ...imized-POIVisioFuzzer-4537225637134336.vsd | Bin 0 -> 39095 bytes test-data/spreadsheet/stress.xls | Bin 59904 -> 60416 bytes 3 files changed, 5 insertions(+) create mode 100644 test-data/diagram/clusterfuzz-testcase-minimized-POIVisioFuzzer-4537225637134336.vsd diff --git a/poi-ooxml/src/main/java/org/apache/poi/xdgf/usermodel/section/geometry/Ellipse.java b/poi-ooxml/src/main/java/org/apache/poi/xdgf/usermodel/section/geometry/Ellipse.java index 703a24b499..ce63d9fc11 100644 --- a/poi-ooxml/src/main/java/org/apache/poi/xdgf/usermodel/section/geometry/Ellipse.java +++ b/poi-ooxml/src/main/java/org/apache/poi/xdgf/usermodel/section/geometry/Ellipse.java @@ -59,6 +59,11 @@ public class Ellipse implements GeometryRow { for (CellType cell : row.getCellArray()) { String cellName = cell.getN(); + if (cellName == null) { + throw new POIXMLException("Invalid cell '" + cellName + + "' in Ellipse row"); + } + switch (cellName) { case "X": x = XDGFCell.parseDoubleValue(cell); diff --git a/test-data/diagram/clusterfuzz-testcase-minimized-POIVisioFuzzer-4537225637134336.vsd b/test-data/diagram/clusterfuzz-testcase-minimized-POIVisioFuzzer-4537225637134336.vsd new file mode 100644 index 0000000000000000000000000000000000000000..fd033e801f2edb330507d5177aef1f805930e99b GIT binary patch literal 39095 zcmeEt^LJ-Yw`Ocx9osfLwr$(C(Xs7xY}?i+w(X>2C)4k}bKiAm<~x7E%vtNysk3(d zQcvxtcGa`16r@4H(10L-pn!mYh=6{?4Yq~=0|D7X00E%_L4jxs+uOOA+PUbfcsiIm z>(YDJ+7K3kfl%fHf&6X%|DXSd5ok&omm6e63cHc$5iMO( z=?lRa$tzi*Ivb*?L!LG!2_zBQc`ukMT4)7@M9J_)YERhY#J3`UqO_SDHP*JSF2hLa zCg}%B{__;}MZE%o7tq&oXQfE7934&|EJ}w~HknbvL0}0bX?P8>LbGB(gz0?>qSzQMjX$;zPDH<8wl* z#-$$vg*ADEpG)!6p(PsHWDD#367^go`##!P>&w_aWR3S&FOlH8flL}rjp;DjM(QQV zxH;S=WONzNN`QRhDwvj#3z4XA)EIeKd`<0X95}M<GJdk(U{nAIByaqqK`ksc@jSZ&GsY81c$8#={{$U22p1;WapER;RCw>e^ z0|Jr?1Oh_&+rrJ#+0vfD#NOD|_HQKoR|ve+y>dQioBsZqdhq}Az~7bw7_oP3XqTLK zyyVQ%+oqRudwx5@9xgF>jn&K^J`6Pp>u zs_VOBMYa&C;WZAJ&l^!hnO?}TY_bu(Zx=wXrZBN_-N>=CK6^D(zVjo{-kg&PQMl%f zOw-G}6uC846VanVo8Pt`CjO%o&#w7W86x%0uj#4mxTrHsjC`A9flqKui<(d}oBZ1m zv)Zmp97qUM+~~SG_(9G`n&QkENdGC4f#E|zLqGPDu&#$!`@Ipb16DN`+&V$s-N#{- znV&%Jr@gAe^V^O4Gotp0dkE)eY9vxPG1v8#RKOFu5X7D_VIl_WE!RW-;Ea*K8;%!Z zVEPYt1nsHTa1O`h$Z{KNr%isF41KhR&{h-(UB83{hHg@D(K(p0-f?6Kef+@;gs~o= zdgfuOj$H>VaAY*{Zvps)mv+am*Rr)OTXwq{x!BB|tGL@%Xgaboh_jP;_D_fSZoGMc zK7E9SJmHatK_S8CV%pBFPk=*QFy3K2;QhL8$Bd9~mQz#e`*7D}@q{o3uYqSkA7Or) z=)JrD%q}fB0K;6D1FI>V_V?-5*S3)R*rRmq>DCs&?>Qhv^zj-=t7&pv>EYVKV;#Hk zv(U?Zk?RVsO(}AF%l0NFe9^U9$8m)5q_&I9;?nTT98_S3fGu2aS76Am(UIWIU~;G$ zlOKjr{pPK^`}zF}VAnfmdGq|VbK}aLBUTDb!m8uJL`e|;>(B};nd#wiS+u#8=(p^i_Z;2(6<;<a9hv(K4ONxU zuuxDehJkpwl`&p|1jbToB*e;+bJFl-rCymL3CbfsM?@xP>@gZM*QwT)92hMR)Pc82 zP!v*P?a95!@4Ty)G$a94B7BhVJZm9q3ve6eM-bpft{9`A*hLB|?kH7cYo`rCyqY5V zSKRbNyxk8*3X)lFQOaYYV2~rC+`p6hNr_D7cO^|>=Y8!!`{hnz0K!T_^Kn@ciq0bYwAq6AKa z7>6-Avc~--_sI>IJ&5=A^zThyyy0#)d)SHwI5Z$t6m-#CCdk0SK#9y7!%NEd{VY2dl}v)uop4N zT4qqZ=7YinvQul8?{3Fkb5thbmQ&}B1vTuyd*{)Stis1fIue0hz#iJddxI-1NJ+6jUYwe>wN!3PhU+U5OGqg z$eVO`s$w(Y8o{HbRapjQoC1;4Aj%k2df7N~DA3h{7qYs$Jo z89=MCmH;2BH!!j_x@=GT5)7qQXYr=|^E`(mT5TpjKBKcjnZC;$SwHefxTKQ%>i&uw z=@#nwq}(OQJ1p;Y0ixruH!QNfS>LI%EYC5mR{c{i?Xpyg`c{tc=KwXuEqD3Q1xlob z?huQ8d-A$@8JWg8YZzw`9^XO+X8{wmXrin@63jhO7?2|S0uD07Y!Hunz$dxWS_GTtC+r48qc3gk!4Qb5CCfQqlHS*?memgs%`|b3vLJ7 zU?{C*nXoLs!pmHD%*-Y#Sm~oGl~U8yx5A z0bKzof-n)^#~^idf`WP=pnY7_?z^5;)Y)MEn#g3KGqBYoh-TjbpRm_THld<(q@VN+ z<-avP7DdILyN3JK?~|yomP*m^SDC~iquS`ip|NDBH2MfH(}kc#{E9EVjS*&_8{%Sa z6q`c&7oOq#puT<^z*8bOC@x|up4~8ihGkK1)6adukO6UkN2+c#C7#kCfA2aIwcb|bz>tiYUpYUxCBIgxVpW)UwsC5>$%&18>r`o zm?+ZWl}wlp?p%;;Kuri|`Neil?qbO>^(%r4I&Uyz95egz#a~zY;^&dzP(dI`w{G^5f zro%*nf}z&(4ot;$Gh`!_s)W4hQ^y*41STv ze>oT^6o9H9s7A=nVyfA#PB(5s&OCv_qyZ8@h>RUrC8p-?HRmmgku-F5<)fBBn2QI% zvIV+CEMQl~AlzXl$YG*Fb*|mXMI5t&C-Q0xSSH$3?UhPW9QOLh%ad(NNf5nQNT`IG3b6^h2{RQ@We|{KPb+k!sEHVPOdVQLLSbde0*v|) zs3Mm_!M4E)(RYBkLuVC{UdBO$;}K*qWJg}u*X-!zN^L>ek}>iRfNQY4)gVSX|Il*o z=FDeC0k_Z~Me!%urB)_{dAbQ-DR*(NZlbyvD{7!a*d~eP>3@E=75WyfzQd%x zU^?|*OEkvY^*?A?F=dCte)r2WX(VTWy6>%8EfU>36dtbVCFSxdbJPhz>RGZ}&EC4JFS98|0V}hgYR1k(l=mpc&fLj>CNDLyt2ne>t z^r?8ttBZB>hYR=vUieM3ESwkiq&W8>gyUdUwnbijmS9rN5D?JH%#1OMmeYRlJr{Oq zhGBj2WxEUmSHZ0zSsm#MQxnQ(^nC#@7m0SYw2RH*1j&LEYYEWX%!2>kF97Yw|E(C# zwY)5}?`=4@5hf5aju!aBo-y)8T@6h2cA7Kiy2&L2JA&ur#T*(yieHS)k&hKu->SvQ z3VQjq8pnkQM%gyl$^!}2RNG3GgkH1v@YxB7MRv}uk{iNH6y+@G$791xvWP}_M;aDb zm?KPxmgCffbO5qz9J?`e`1PCNCUL;Mvykfz50g#7F>yha?MR*K7j@Vnz*{1E4k*WL z6oIF473CI{hr)P1ICD%)UlS?({G8LG%DzNWrAd4T7UxPyQ`c*af!Zu;3X7~&v)xv6 zABPi*vnS>P>3&#e+!g`Ktd`9oy9{3nFnq0$7hn7Gn_Gl?V(fIxC<%zR5=Af*nj(7s z1LvSe6(7$tn?)ZsKH(0 zCX|)Q@n{>Fk}JAfq4t`oRY^N+v(x3K!Xku2UQ|e@)o-cfijgH;)(7wNrI;}&}; z1!bsGu_a*ZyXD|C)c4ICFtbHEK>0f!Ubwtu%FHIMNZoBh4jU?^OFo~G)=6p zR_WpaTYR-es#sGoqf|=0EY-Kc4xVchIHf!b;7^z5jrl=QUwzWTy9LBCnqm#t)#me!i~(#X$XQA}$Vq61p8 zUmbe6+>fuz4q?AAdECE4{i2v4UCbriRpDm+7kS1{(kDm-4=SFv)3pk!UD)xm>cH__ zR;0Gd=m`qPw3FlJ)9$D$q9AWu`!~veH24FqAzOoG$CvjljYAh*z=2@E{ z6%RHuB^RXi$Ox8`foLy8L5d8Ns9IV1AG3*J&UWmM01-j9gn6t@ z_s>6y^>DhBB1_5>8+dDIu6bJZ1J#9f1wfkbJ>@SJI?tZ@96^$>hCPtO?EvtozWgJ(x)qy58q(Uc|F9%bMwGso=A zZN#Wute#q`1w=N?$x@k4@_AjP96?%k6c)EZ<l0$XDA7v5v)GwcvY&22RPo+!;k1%kPqhx6AbDOgn_6rXlXSu!N86T8S&!%JHk>p^ zgKNZ&TvdMu*cwzrMcM2gq71Ot*^I$fA|(DXJ=mOL$ynVa&4qWRG&i2FWM{EeOrtOK zGip<$aUp6os=~I|({85{k35;U0bq<8;A*Eim(gf8Yc_RiK6;qE6vxN7?n~lBs}S4% zv`TC%ST@xgi7Q&4O!Ly^T-S@a!71h5{Z_CuXh`vfE(`i(( z^CPmfEvmC#F|xF$o0k4K)m`Rek!Dw$b*F8kvmW`$cW0XRh^H@_e)6J4Ta$gfa0{`9 z3ToZp3h)O*r;Z9x3%hdov#}dKZ33PWPZr1HnS{A6Xj*HrQsFu^arBsw5Q#_^&^mn`__^cyjSJ~@MH1Tbi?AhUQ#wd6?UU5ZMd9>^s z+kwo;LgwzRoQ&)DU_Zs^X*WUV=C_s`o~bSBS$FZ9SA z|E>L-ZoAuO{nnS8zb|C1@`wKODPR?0@J zozT}_1W5N57OV$28hm<0i8F<3^Va#yq>EcZYG3xNJMJeHj{r-+>JD0(bdUO3;qK3a zn?2E%geZEhpdWRup22oOsDIDBKl;Bc7PFd+v_n@IaUJT1exuK5!sRKx1KH!y>ovyM z;{&?I6&PQ(uehBa8g?SA>8Fk^-*|kSet+xLDtk;L{x+j;r|3FR4&RdvlvARYaG`mkmK}JKy3?c z*}$Eyy|OxK=0bha?NGTbemK%C$0s5ABQxFhW6f_&Krr0kAq^xv|jt)a7vsgpCqf93-I=ik3H%>PIW zG$l@24GO}EK8Jn{=KIoaKoccLH`18k&Ld)tMDh*Y8?c5P-;h9sb|hbRbwTAggRc|x zeEzmeUK`FYD7R8T`>TXvvHIi)sPic3$ed22fm*hq4i7+G{7O*(vBr{? zB#5vPzYD8OryM&(Y2*+!!e_+xW&<_UUeTWF#h#r`KVP*T8})-f_mMaH8hipAkKHO! zGv0y7e>#)i?kPj*ZIraGEd0fI4n?+~#tSGx@!RZ|u%GKrh26 z8!g%KTu^5xBkB8c*H$w5y1AZetn>sV+U*MGh&P-zeZP+SMNW5+A#kx4#mQss$$~XxpFl*l zwu;g;q-2&~J<{iiZEfv`q;4T6R~}6|zU@MnOytsfLaNDxv$$4OH)uXKD~Jq)O3OWS zpq?rYLtvF}Uv{st!GI6Nb6bfZT_2^{6Fj|QnG*3*Wg%d`ohGy#0Plz#ge|{oxRYY) z46~k>Am1%omYC2cYaC(AXy2j0HXu{t*SZdtlaoCcP?p-!q6&VM{b~HF$S6W%kRqiA zL;U^Nuyw(=P(N0eLurok0{=gId^8wMTgx^Zr`cKRhpkRiDZenWb zz%ypyg+#5FXKZ|d(<&$D@s~5#+sD~{ZjBIE#4$Bd`|{H4y-KFAWQul!3Je+Z zRY~E4NNPP=7rd|>!$a^a4b{Q#Uq2>_EEIvow`Il>t&U*Y?Wo9!tEG2wBtKS@6cl2p zRRPqdYhe|IRHVNX^9Ah!qN}9Lxh0{F9i^o`BqEUgFp$hEMw;gfZCV{iKXUlRDI)I2 z3_2w&1Jm8u#Fz;4P@JyA>c7b%vT9chvKCH4LhSsJ9%r8QX{-}KEzCzaX&(Ubg+sV% zXg8H)UFWS!r$%t1dzeZUt4YmN3jE!-y$3Ri+ll&%}x zo8!W?DWY+&VS8nM@daroWV%#0k&keFvQ0OHC2uw;eyOn{)UTs-VYhDQ)R^W~>=u2- zK5LTgob0>oZpQB2CM%yaDHbk($eS~QYGBMNh)l_fyL+SZn4~T`ZSfn)<=_J{#Yrf- z%uVbKYbf`W(++t{2m|=L>L9v4<~t3y9Ck?adsqoh4C57=i)o7*KZc&jpve|Fi8x4n8A`fYC!Gqp*_UOXv{-4Ua2MPzjsyA~1+;b&P`44)` z+pN$1Pw0_D?z<7ADrX+g)fJF<`cWN*oU6^X5awC_q^-%x?stEVjiRoWanQ4wD@IDC zUAtfOWw>)zC4;+KIvqf+It}%tSc*eQ!fjHJxOCTyRu?dSi~0ZKyx<%7aqS2BcQzye z0>b{cYyVe__;1nSQgg?7pB>3>M&=8$_jS+V0~NvUCwBup{KDpsG@Y6i@nMXS^7?YR zpO&TH-tMNjCU9vw&N*)D>A=z#OXmw#WWIWU-gnmoN<>jnNzYDC&C$uMm+dHW)7+K1^I^n1oQtTIA($EJJzU+Ehpl-JU&9K5^ z1j3dHxFC|f#CC8u#8#TW6wuQ!iv3n_Uycn-ER1KcEn=^If7gcV@7Rq*QX6a`+_mk<8+aN;Xvb zn)Ke;UhQuhOBQzFR;<2^avnOXzOt(PP;LKFk>p;nz1U{r$a*5KYInT%_GzQW_@#M@ zWnQwBVta|^hXSJ|EeuDT4~;rwD5b^ukzHfxxydUDO^%_fQkal1riNfGGw2^z3#Ay?m*gJ>;`+jhf?*RpD@< z8?+}eUv`&6R3r$$SITCT2*oWw^+$Gb ziwjRBJnjxf<@`@!>c8XcholyZcx^1FY>CJHa=Ncmn+-{Zyw=9c0B|G;l+8ifM`0#L zjq?d$*6|Y~{yFl84FAg@Mg>v4jJ761rXtY=_1Mi7G4cf*HJ^4WqLX3**+p{u%_Ih9 z!S9u55Thv?he1DKTZ4=chYp##qq{EicBlEdLm{pa298F#FH{Vu&gjx7c&6-0UY z+`>nboWbMe!M%3+mWX?6h>&AhJcK15lt@`ghM7-@IUJi`%dRa_!Wh&mb*2khjbewp^WYV7GZ3`%X9)wgSQ&mQyb)cvKl7bgg(LfmL{5Bv2o{fm`;cWV~RwFI3 z-W#~heyp;TGrmB}7>KYlcUxs#q{(HxN_*=NIGgE9t?nA@%;hmbvnQ1j)9yc25L8u` z$uc-NqaM`(Hdld*8ay04?0gci!dQ`C{DX*NxR4hJ6uDBf*a@$VC zo_qVkvKWns_8Ma4Tkzh4PiOWXpIM}8@~0MPyztNC*yXkJ{F)7i2r<7i(+kC=#mLFIVpKDxc*3;Ex~v&SvcM1 z29%KdH7-U7oF5KUiMH4RX9_rojl=9u(!uHsr6oTe^dt?RrxRJbHwkRsWh|TG*i|h$ z+Hy##~80JVJ3L)RaO zo_&OpIIe#fGer-uas0`=P7h}Fe;taGb}7W-gc!(4;DME_FvdATyknU&?h!;pvPLI@ zeQ^cBUDRg}35AN64Ym?PrE7TbokH8q`oajEK8dN>Us{zst}kUH|0a#NK(gKKVSfuV z-pJkSCB@K#3VN6s?u{edoFhiyCKg)xrO{%*yWdZ zto22Ue(INVN$TSBU2?hgqpk_(xs-2f>uU@Icik*r@GPW>2Lv1a7)VobfSSy3uG>*_ zm`W2Q>Roy(Gm;h`3RZPcBPmf_fVJd{OMO&%jS{tJa)(9M^DQ%%?Wd9zF6|qI( z7=Hj)0v!^HdbIZ9jZVsd7l%*Z>QoDQAU0#XkkdAXZ+gID-uYu zj4W-KG>O-?T?l%cJ-tD;gGKv(=R~4KXdp<3y;B<gImBY~AbkdZEvs2W}~rWY;xzN-S+%XPeM+(MYT9XVpAE z9t{Xq$qP>+l{@H^$s4*?^Kr+Nv$!Av+oJrz*dUO>+Tuy4g3uHz~)b zcn*!w1c_)Q zI3gYbK>~CbElWT9$Isf(R%qeZFvv?$*0l3ji2BuX8DcnbYeok?-_&98G z;zZlii^1o^E0D$%{L7ADEWR12Lm1RZfoTwChVp=i7#_Ca*lDssS3?7(PeG-9TG-t*p^z*Etc zvTDU1m~!q#)eb)7r4?mq`!Z*JKQsp0$Wx!%b@|9Fn|6GuS<5ux6xFY5N;)^&Wz!yn zEF|bvx(1NHj5Mh+&Z(HsKK9EJ(#jD**Xbnkfr!TJ-&~G+GMa~|I!(DERZnOc)8~vf z8xszxqD6>0WDMP#;$z+3GQLQWTob2JlctVCRp5Sbj(^D!ykaQMa;GV+Lc)$5>8n;b z$tL}wPb0BC1J?wSd5@8cVufah4<7!^AI)1B-b-P?nT03rNQW3VQ-|GeM!?CBg#5e$ zZB3=cdIJQxH^GqT9oolsG#@_Wb}8b`?BKiVoWH|s#nA_o8mqUpBIXdje?r9P^=wf} zD4PQ90h$cVr-Y#>q^~M;pGQd&Wb=6G!Ct?&2&FIszHbZqa}Fu8B429qT|Im++g9DN zI@BE96X=I=Me?m;IoTT*n_!yBcT=}P za$K+^(157BARJy}oF(qNAslw}(XZ&>1g?%sRPYWL4h46{x2fI+DK$M0u1qD3eO8DK zk}zzGta4i-p`gU-{GK_Y?H9AY({cGfM!urD=uA8 zyK}KR{gEt2l?k85$(TJq@z&ua{uLRWqB{6F>bhk4*jyOwN0zTa~i{RRcDbe=TD zRotqz?gt@dt=DBqJ^i%TjV>ERd$+9NyCA$H+k%7&i?$3L8!W9B+1LsvIpICihP+%` z_)fxfP5Wnf|d5Z$#_Lek3&9KZrF93D7dz9%uo#B$JMiU%B zlo}xQftdjrdj5@f1T?4huZ+>tV=qS4k~Y=t32Y|Q%o0eS_l7nqi%PCxz#Pew^~|Fw z^*PG1S59`HaU*V~4WHP>8Ft@8ljh!Fpd{7Ao!~{Ol}ku_%rN3~h#5n}ibciFAghM&e=>rHu&1KX6)N&F6`}@r@0Dlv(3hhyMGFv zFjb~nJphc^-PQQ?XO>9SxZ>9EWSVnVOc|gX+Po4ADQ%H zk`<6DP=bdr6f>bvP)@Pj3u568-XG{nCVW$oG0Emw3v@#&#`VaJ^!YhNsX%1QB(MtX$53vx8Km!$T5I@NbXqo;3%NFx?m#vTx$c9Ur?0DB8)`2 zLOPQVcyXLQ(umn#O-OPXEitML}ZnOavZ6zUGcW@hE8+~#iHjJt|Duo*8znsu?1XVWG_NR%$z|G+xSZEKqyJVih zXT5T@!;CwiWLg-R6AZm%9{KCtRI6fth}al)#0Dd+_Y*QK9ds$h9eH4Bud>RnJY7<3 z5y7xQw9rD5aIUSb$^B+&3t59*YO7VgS7GK2)rjJR_>Go-{u2xexn4!%J6WTuLtQ|) z#*Q%V2kM_uehChu?4j0vQcMC2%bKqBRV2@S&Dj#v6_-UHBPBm>$@u+J)oI2Rwu79o;jT%^OZHxmD~{yIQ_^g(o0tLT(+f?#5|YVc=cI zYYs=q>$4{ls`Xnehv$NbHIRK^4r>8sazq;uNb)>Yg*=#FGLpM-al7G$l69yWr>0ga zF3(Lk8J&AiPea&&l`f^EbC{FWcR5Nm=VjZmJu<>!k+*u@)d?4h4Ry2vZs{cZ#4Ca! zDP0lM4M2P%Skb%laGVW5L?C{XASzpAPVyYW$r$z>yDBHWdjuvGh=<<~uXhyxxPp2v zB-vc~Yf1R4>Jk3^{^yC_|6K%T`nL$&lsNrY5rqr53GNP_^HobsWfIHThUkvH297Qw zH@ihlrMlWs4@XF4@|u*C__;$7==Lt1zLWv;jt1Y<0W3OK+&?qXu{-cZL*Fw2f8c1&UUs=3G^QYo+nM#P^q{LFd@-xbgaiytn z-}lkh#N8E%XJ&kn%_G2S+d$=x&er;J2sX)>Vb0Eof0|(qt<0G?hM)T|9u@V?Y*m|>Z zCirxsh5lDg$EAI1cWdK`+w)~f!$o&T<;L};i@TPt=St@;chaiL5 zy1aY$96kl}#YUxoe$>P_WcdY)JG4eyAQh!{tc=$dR1&XrQOc_)swv6S`c62kx2c? zRQl z7OX=2j&A#Y_WkYs%?y7i?yLn_A?xL4X|qIx;AjTq8M+;)`Usb|1bBE7s-1IpMW@in z;<5x4NxX%US6R1wvwaaA120F0hb2Q$I3)?<98i3ia9TxmpY=wj%k>ILH#p}Ecek*9 z{Z#2K#dR3v&YD&-!B}+F`XS}!@pI<-)*_0t4AhQJyGBTO(K(S51+N4FsYHYA;Zx+} z&JEaBm|W1OtOjpK6`zjNFNt2IMF-+~)YK5Xv|04P<(fj%pO;m;!^Cgj=#d&3{8KRjx7#efRmVe9+?l+0sm1`ncoQVL3EVg`J$`8G%iqKUjY@ix6bF#ZBaIobBk zqXz7WAO4nV7Og%fmnd^Rvdk~CkZfA;GGxw5?0B?HV!TEzDGk#3&|hT5M>o+K>-To} zY?D)9*F_^`*TN20tb{70{akVClsUl`*qmWdT73^Y%*`KW+^OJM!qLS}Y;RaGMWVJT zX1tjEfg-S@VraPr0pz4OUUg>dd^r%&6m2W-%3=BLfp*l+o>iiQ|{W7tvx(!d%DJn8M65C zI8x@%%vHAHuV0@)P3A2r7gWvbNubF5R+7ZtU%Pl+!9D zHQE_TNo*${_PbNe(juWV44-FA4zJn)ZvA)d0Ty`iJ2!-B{X7%aHmy|^GV3xFLrCdd z@aX{JxzLDMCZa{8SmtwpQY+wO-Ngg^%>4V3E?RjAt9!{ovn$+R-cUp)k7EO#ozK2y zNfRO~bPx^c^v`R@{HG55&93#R=}g!yuFamz;n!n#hcMjP5uJKID%m{p+1;g4^)2Fk zrre+^-eEUksRZ|*!a*Yw+G&X2?KoGCdyVl(!PB}@)il-t)zCgj0aJ8(hVYK=p5oPO!|Do0mi`%g!lX{|A|fystl4q(Y(cfxle5aDWg?ZSC8|+T(}0RZ zi8hOG@b2|Yy~^GS*h=X&J*FqrKF)b5Qi;0^OY@AGN?)Q84kgZUmEpAn)OGQXm9hN)#chlQb|l_=dBv| zLWg+~eC}-C1Mq1uwaKtR)A2s_>#3w{d%Nn4lg$GUMdHdRJ2*W1x)~Q`-1(JV9I|f74sa5Hr zrtjA&G3S}8$aY_Y1@%jHY|;hG;=MOOVO)8ic6LTr1#O!J7fgu)Y_s7vpuEH)e}Do$ zvi$8A18uSSAGUJ|r(vi=Mu#MGQeSc>e6PJ4)ZXMFaApzSnhF~-wcR=?d0@3JVJbD)nNowuMiuSt z{7-H-j$$yq1IZIf2_5v)M<=!V4xa#h3oZ$G^u9SQdZ-qDMwFISi=a^0MCMY(33YGfLLtlo`g zygS0zn#$-iAHLXBe(Z1iDSv)L)PDbCPPQVU<+qnO5YW^c@IU5c|6}cTnWOEzDVErB z!(sFdN^u!nP2BQkC0(@$= zFfT!O6HA9exyW=e%^|P<@qA+si1X9c)y=DBxW+GSJbbZmb?oqSbh|yjzTKFfoJkuM z|NcDk{~E;<$nMhG($}|9!_2xM(d%gI@&52?Z2#EE;aMrIRkxR`F}DZE)h@4Gq-Cw0 zy-nvlPNtccR`T@b&OPMNN;dM?%K_+Pr#t;S&%3*ObaZF0Cm)xxlBOSRd><<;_xs-- zu5kIKNya|_OXnXZ!sfO5dAfQl)t^^ycZV*n&o6gYuH7APuC5a`q?H^+^%n#b4jdmOi0Z;LmhiHLZtEmExETYP~D+Xy*rr`aL>1c42vjJo3X5R25iZj&uXBJ5H(X2Y_YQvr)t*N@KH;)14Dc|PU z7m}JLuf*E)3thC8oBI3x3xx08D;bOaTLPpqJTn3v9$Wqf7EN22NSFehB$-o4VyXpS zcm(xL0=)3P*QHBK$CnR>AKR~MG$w?^B3H{^u6bR4w;M?-7dvl|{W%!OT040*HGrvH zbz?XAUyQi^6L<+1w~$9bE_q%908yAIl@H|dNjIOaFWIjr7vI;d^P^(|27SF+_HFvl zv%?Qt5-2kpNVD^P_b-{PJ>TAhQDS)eFLg&BphcGIc9}zQJc}@d|u7`H?o-= zx-sb~<>&T#jkfQtABtaaTp3W`*9<6dmss@@{(G46bh`dXch4WA-gXF=J2O z4>Ew1q-fOG){CUBY%hi^bgcAmAB+wK-1>rzX|F5lg5LyyaDo;i|4LcHU>dJ0avj(x z7YA5U^tdJok?F8&*EMUtJi0VZk~f}##V22$rR*SEv- z!{ql&#L$)#)ZK)3STlTj)Bp%}7WH3{G`*mdyj}_dy&W$fUwrM;QvpE)-)7Bzjq5s} zj+?nKX9EkJqdT?!x_r7>1kcaj4`X*FI{Z)5U$F?e8^>8+S)W&Y569h=%J1V}U#c65 zc~Jn)ONN`ZSN3Bq9_AYeeQmnx08%L#RaiCetm7NClM&63mwA4X^k9sC;iCKQaM3Xj>5nKTv^=L?IiVg1B>x#k0Xh$HH~RS3Cg)Nku2J4 zesei=-0d3X#SS?y<@sXB=r*qE3`|IAul+g+imuIlJo4Z330WK;bas@DeYzvg_*8vQ zvOX`i01I=1+sN$#Q>IoQ&C9u#3(0+gtzEzqbcGiB3io!MlMzGFSb6>DY$>byfy+<+ zsxA@radv(eEZ2iTYmyo+1coj~=3T)VRf$q&VGI;sjNxk~6wxck`d#nB0hcsOHLRJ)VS@lp$B#78w``yx~ zPkLC2syJDV>lO8;CV3?*NP(xzV0+1WCpGtt*_jZ)Pme`hx|FjY6 z*#AMu?)=Q*u%L_NEo5Wm>$34ViN4@Bl{^b>19}BPUzfhWa!K{w*b&DuY#nIV(K$Z4 z57|bJF&caQBfWb=#QNO%smnf8mpfV%Fusmb6-c#-?BIQ?*0(-A+8MXkem^^Cg{Yrx zORIr9U`4ozpl0niFSvPuE=R%9XQe0*3awE+`=NzTR{w`tA}xx#I?^*&r6>1j#}u+| znUht+b%BTeX$-$_9k>d+sYBfB3TRo&y#}J@og;J~gDXtu z?bM&gO4j%9jag6)*dG&Nl3k{CPacmDy)je{@G6^u*3y9gbEG!0U4@!Oq*M-SxT;_~7 zH%(vw&L|^F?ZQ?nJg;M~nMt9)(VS#+lw4)owH?*%Yz=%}4n8kj({-{o|L{QA6n(n5 z3eIH7pbD1fE>LGC^og0$`$-9WbuuP^@(0DnM$zq-X%eryW3Da2$q>YoqXB*GzN ziP;ZwQ?ZgQ?dibGDfkL->gtp3MD*ZY?fSM2z5@<*@f~Y0itjqlyhD6f&OGZ4W=>Z`sijS~I^g!T!CJJ*P{Z#Nz65J&gBYb-sFavRNHnuTI}yoo)U&x?EkoIlGo5_QQ5s=CK3yGO)oI z)ayR8E!4x-PLlXGF?T#U$vnr7pA}iTSS*$EoEJf%&9qTRJVG@*L+wYyIy3r>GFvR@V^PBMl5|(3?+^DLfARzQFb!v! zrGJ6HZPKS+&z_~91%LiL)fqGE&ls1XVpc6OB5+CSTLHa^MA_R{WFbt#;2F7OU7qMB zO|%|Kt_PAg1JOTzp6hY&1v83n_GrWF?%@mHo&2%7`hNB17itsqiqSBQPp{5iy=s1E z7U-YPzJB`n(Kp{beC*cf;jdKXdiFIHp45(_`xD;J{}OqG4GLQ$ThQ;lLq|UJw7nn0mP!K{ycbAA3iTD zyRh&AG0(_2P&U*N^i# z*g$jcPS$&RT2gDh;wg-Ww^i+KPSj)(rc@Vsa~mP%Oi)SHFo}1k#u%PTiYT#dmw8n! z5&!dLwJ4H#okC(@H%F_bh@i0rNCND%zOhTHD+I==Z{@NxN;o|KBkX19En%2w$yun<~JNAAAxF6DIQ%-x46yTNN11gO@k2U6R;3`GFMO$+#*)Lv^(uw#= z`lVRBl}yuQSuTsLnzNwA(2BI{_&G)E(nUp}b~ayd_}BzP?Sjm31rNBy7Lo4am zyYW_XNnka&B&U+-lIUqb-jpNBNd!ozQjsH{S4n6gqbF`(cZ8T-xNVQ2)Iy-YXYQOs&VSIc~t|>H58=JyXs!{l7>TXy$2IQWS?f z)R&9BixVw$N%1`32i6$i2y)(`Hv6>G|Ea!=wu%xBQ&0k0I_mql`rp*LFbY3vO!?qD zrI{&-J}XnI1W|ElnJ*Rz<%~m}Q@8mn4Hwg>FYsrL@=+xu?5Y+C7fe~rMVj^0`(;GE z@BDmBy-y(zD%OBo+{~0#j61EhBtqxs-LD`U%}~-=m1h)Vno}lso+OQz-9LZ6_uc>d z=DQyse!_!|n)?|OVE^;ylkIZm%6_w{kh!|~Bbjki1tq0Ms&+AEVy4fk|I;`#Y`Wet0dOh==@zniZQ-J|^>VB_P@9_Z* zNn`dgeZMSo9-1=ksK3rk3Owj1&CGs>AksrDGZG(dfzt_7oA&7ab zvFDtDs0!fst)!1Yz~R1)>N|)vV8)`HrzEY;L_A1?_xz3Nl;m-h-)|1zf`;D+H0NNG z-q=%Bes5aqMfbL=Rm;&@7@V-nNrF_Z3*EV~gcW|SMff8wQn^ZjeX62e+i=dE109qt zMX^o2hJ&Mu>ieAX52bCh0)7pii*lJ z(QmLjrtt+Cr!WqDV|>Aq+ZE3hfGj{^8B{YYkZJWy_yQ@5NXfv(GAr^-(pE+BvO*aC z7Wej`mOXnvKceEt^p^zAvK3{}Nu#1n8jC3~YWJfOL?wmWvjH&7ipSS6!WJZyVumju zfupD~Y^;G5@zxQ;j@Y6AbLcS$U^DtKU8KO}VIj?d9b8BxaeN^oWI@G>WEk3T5fek2 z5$53q@zzo5S#eK+mdV}$5g%Cn=yBuj8zPh^-!7hlA3kh-IX`lda@4ZuQSd_UuDN8obNFc@dkj<=U7=)7(N?Ozl1C9{2hRGiMD4BDKSV=Z0a7)}6%>#^ zF=x*{SI~WWd#)fWC^$-iIFRtXv2=Iri0vUQX4DXNz5>E-_4N?N6<`2^0Az=e4Q^Ym z04f-4jtIfmV2+~!1Z4faZF~hvv8!W#fe-OI~CJyB3G z${(OxEx18Tv>>#<=a`2ME#-7A_YGb_+%}xI$$6)qYWth&Fl>#yl#8c&x*F^E^2S#L1~i-1b<@jo%Qys z(Z9nJ)&d0?Pnbi%wXVWtfY=ENH&9i=DAiVTZ5uE6JqmY~LsJlgQ8Nt#dpgP@_y+wT z3DCK_Lj&#I&uW+*rhzq?$O7!*H6W&Dj2>l<{*Z8U*Bf9Q(!#}nFz_RsLjk0Nx{8kz zls~q&k+xz1y4!ZbF&Lo%{Jq)uP3ZiZj-oL((FhID-NP_pMVwV|M=HPspvA}4lNb{K zM+pmn*A!JIObEFx~bh@>dCq2ZmXwgaX6@3m16puu2!!alroj+WyCvU(~3(b|4T( z_9!V(Zbb@opWc!bC})@sII+0W<)mR-aQ6BNM!O4ge0ejr0d4^W73;;ntpBtl1=!_F zDZ!ONK~aVa2#8SOg;uK{b0MGsaeZYyJK2|77DR!3yk*ngU(eI#tx%0-j7r}hS z^oRn$2yl+7xaVk9tFlY&L+{M{`sZEqevO_D-pgktS0E522N7b^;Y!=rR}hlMiGTwy#MtM{F84X8gFkPoT!^g_-U4srQ>IhX&*8!hrX zUtlN%J>(N0?a6JLQj4#`LmmlPG-~cZgHffv+daJeMzO|&s8c|%bJUz3?cA7FpUo;1 zFdV~}Mh0uAZ&#(h)12HB5g!AGhCHw_QK#?DYrX8=E;Vvko+?l)(J~h`pDlHyl(HMv z>3I)ICnKj-mSCk!%0(c`fQPcAg8ZrQq`>1DyzANyjxDOx54#4)D8x~$Vsqm*2E<0S zQlsdo?0sH92IODgxPbU)x}B{I_Ml4UIVHDX(J>X*|hi573T_M zPJB@(63QH|xMY&n!iG#~%|9DxdOIpE?1T8~2Dt+HHmC?s6qFFLN=ksvgw>S^z!N7e z7W2g%84W2u@R|<}_rv^jWZSr?{P$Z-_CS0wgIocN3DA`*6M-QCxP(njSW8~ZIG%1X zn~1RqC)K~$tpreuJ>!^Q!NiF{yoGb^s~J7Y!~8>M?Fa6)QTlQjE=P7q)Dphtp?gU~_hGUIBD>IwTdapeiy!-*6BYK+8rF-ZGHDZk*# z`&;9%(99=svvzg#nf)l_(y*S;WV>r7&=I2cU!Zn?H!IK0}}>3}S{5 zIt1`nIOmpz^O#IwB-FL?DvZw;$T>dPzCW4-f%76(!W3hNltdCcP^imVlu6M`H^#93 zSc4El3qWvWLIQzggg03j+C(euOKtae1c(0l0KtJviJ82;G`tn3k!lv^nI$zkKaa8+ z;c^9f9G$kNeq$fJM${jHNt%%RfSyNqk=r0PWG~~6TRTrTb?pb3jbzsBWpv; zZ=E-8h2`jUw5KQry5>EjDUVKD0h!Zs9)V`P$M?v86s$u9Us2`QUJR5TupkccA3*E` z4X}w^A$(=PoY7#D2P5o<>)afNwK1d$xAT-(gj_5Mst(`tCK9i#$bZmYg(MSd zn+}dF%6kkuGYGs?7k02Oy*s(>i)_yhGcuX75aV?m4aX=8d=bhjK^sc3kXVoYutL+K z7)Hs7W1M2f6H6kI|3g%V!o#=1S?GN{;Z%%ixo)%0aUB{H0CCEqyQ#T%cB3rB#~{AC zQOW{ZCRX^I^vVz2MIONr4xSJ( ztnLKJ@EF11H5O(ol9|3c25c+tD(RCI#ZF`eF=MdjOKvXwQn4%#ETDIQ(WP+g#8U#` zN3NuyW3Obhe}IF_?mrMc;e({q2f4}v5g4*t;!Fj5VtNFIs4M={x5`vdMMZ1z{?gmM zu~()-`C5qU#h9ywXf@l=5*=Hv9mGe)L=<87id6qR%0z@~>vWh1-Iik_^v}EBcpsRE zo8@ho9$C?{YTGao_zV+IPm(uDhKgtp9msdYMD)70A10#L?5#5qBpDb33S&$JS>c+6 zVyy^b8*Oho6+y`IXlqeN4ADfk?b`?!k&~i_(Lzn*PeAUin{g4kwWVAKx8{Z6)H}&5 z(f2E0vS9o0*T>FV|3UpyO8PV|LZFv-6f74(D3xagAlFdav;&YHx{7iU!#)@?232c_ z*q8Q00iq%7f-%l!5b@}<{e$0_PG)d!;_7aU%phclSYt^^g{nj@K%=;iuo=t~f(A_& zKMG<1a44!bUid8qmv4p2(8plHp_)!*h{x2J02!n*)R`dMHrklm#{oqMvNyi8Q6_^V zU>IO?gjiaUm}p3+@iZYaljB500&&t&%4Ivcw9OgyFIVp!JEu`qO2`QAwyusaV1Q{I^YI=#?M3$~^YrPoXmO)zf$} zgzPRuCs@4xEzIB?I6gL8x;O>?zGkB#kH(PsMRCtwO zWf9{_g^e^cLSKxbQi_KX&Y%RzkO+KPAe{S?qR9?C&4{bwQEUWFIE~iji@D|tZ0(88 z&qv%YMC~vG*h}l4?*)z{IfJgqA1N-t^@wkfI+B*n{a?VGgCI%vB>A4mFm%(F_rPv2 z=Mg^%x;@3uBARw$lAp!CvQi57QSWWcu|NTdY6@-CUVMq!+ZC7rlpcEHHn@*&M|;Yg zckFD}yl0dbMz^iN>1@3)0?m4l@6QW^(+|s=Elc7@thy9J0}V_W;y&oI7#Y!`@V`jO z-iCz76J0Pwa5N0y7gQ2tOF z1-+^yL+rqNw@+epH}m+}7-2EI9SaFyCS^bp#955q&L;b6Tuiy$*yk~XOo*>+FNkS=q~=itu%$o(3iucdNWzrD}!^a zFA-Y|DiByUc#2U>;wvBHGRXXcaYt%Olf#14mJ?T=h)ZCsl+rvR`y#7Qs9$bXTfNUQ$cD# z(HYtoN)o>LY{UdQV@c{X&lslPpB6)czcNuQ7}QEaNH{NjYQo>poNlQXBk3_sq>PA) z{wp6Cn=zgpBh54)(?*i$pLcyLT3#ccNfeJ4n^VuKW@UE##{0l8|_O40O`Y9A#r@RcVU5}`!m6F}C`VB-|wkeD!YF_L}4wH+MW?j(l3 zzajR$!)X*fCPd%Seqs;Vr8|=tyZK>|<^a;1Sl78wJYxS~Q-xKW7S}L_IyMi&oy70+ zypkCB-fP}w*;b47cjknRKEg=&+i!x*8D=ExHZ{eU8i(zW#Bn<-KuBf->#_&mus+`f49MdTM6E}1hOrZ{xNG2CWJ^auS@fwR#2TF944k_B$ z(0P;00r6FgQ3n!+CB{W5gebbr#APJ^GVV_#g(BPz$C)9n$ycQI!wh_g>o~v+NCtwa zqk};G>C8a)=`ERol&p*u{x6byL<&^$?YeSy zCSzvj=g~?T`AjncW)bxab=sQxjXh8TtijEk9-_%9_Dl(Qdl{1|*;<1;(`N*LyJjzA zDU~#a5*XY+-1{a30{!f16M>$2&$M(vpsBzBS~eiis`vO_$N*6bp|{BHMAlM#f^Zgz z-t1O)A1Ia~9t{!`Z{ltwoMXULXxoc&0o~3a$HqH{D2UeDR9&mWBUFHha|+xo z049Wva@&~R-Scbdci3^D{rZFElY!Ny!oK#_R0^hgjja@7xB^DKr(k361p6uRX zdyooP)Hz-=+=zbbutZ;2c{rf?OVOA{^RI7?`Y(5n&3~K4{N`%?_VW1X`;+U< z>gw)skgSt+B$X>VE!IJz?h>Q8J$b!aZ6LYRztl?jf3a{>r(nrASOi2VSIJhC7FtV} zjK^pRuBmTVXRlswXbV?fYyhBM)M*`e>Z|-lIp zM-Ts-4>oDFRC5%h?=;tTjzLS&4nEFU)j*Z(pHW)dVIgeHDB|O(uzmB?B;vh}wY< zZR8z2V|YV?J}E^7a3?)=P>EzTdeWwhC!%>;@$)}#&rbjKWb?=QO6=zM*XQf2dQT9g z=kFHx*w<(0=Mx^|voF@aO?dF@^~GkwW750tPc~O)zZ*&=-nsFo9=?3JI^A54KPY{R zJ=JAJ>J)LFcm|4WuGZ(Mea%hv>)G{_Cr_U}^%TKvwz5%FCT?O+xu0@OTIGIf^9;^N z4u5YC=>GR#pIn`sB59lH5Q}Z%O@!M3f2BC?sYE9B&)Ih;7q1>YsK2|q`27C85fzO- zPBB7H6C_qmRI}L;Q{C}DUH!iK@{7~Ux_o0oZ)HoYE;dK^-fmv6ude^|KfbtQo~h3$ zMV{(^*TtR0G7v`{5oJwvE(=TD_Co56yE7Im9-JtY=Lz+p9zvd@M&pqmS|cS0gSSd2 z>8h53a%ljZup1*ciI)p~LW@8(=ExwN@H)u2)%p1m?jLSSZX)BNEXc$2^RvtA6($xA zdg>i?EAc3Dga5Q-+=i-xUgO1JSI_hw(X-@MT8dGr+{t4Q8$z#7`Ol&CbCcgW<~*ZGGqE;Hd_Tq?rE z4O#+xdk@5ISV1rxu3zQ=tc9H5W!y#Z{lMB)s^T@R=m{4ob4|5yQ>vvA2rC(HpppD5 z-RP#hXic6_AR%AdBZjeENVnhU~Ah&3foE~%gu>FUd)pm=eu9Z;}Q zd<|~i3P5yGFqNpWq;Z}on$T1^>WK0EpkS;DB#Osd7=K^B77_{v6nsFz)65zN6nyu1 zIwL#*3)=g52se(R;3sFB)zQ5dZ_X~xt~XaFn=w`xo%?`;K?{9&v^|4zz`;VADmdb% zTx)ID;F$%^W5Gc6H%YauCZ*Y5 zn=-M35Vg1h=y|~q5;xf2%c89RTsw(0^b0Bh#yI~^twsItH1u|DS$y*P#cxkuuYao> zh#dSbClGn8>je;bjL&ww03r`|y#OMQN$)&^yfO)R!V4FL@u&J;0I}w@7l3-os1w$z z69rYtsZ_**=wY+y=f8}XdpzC_=+xSAk0z$!Ta*r`iwtE!bX9 zZ#WNFOow~zFQ4vY(Q8XYrvJPZT+{pMSQ&qDr~7zNiHm>gK0N*Q;r9#zGdoLs?id6_6Y|az=3DxRL=D)nnhecJzuEN3 z=ERG?zKJ(yrzhw4u1=q>jj_DHr*5)bc4;jTsy9)To%^bhQ2pZ-eZ>%Z*$jHx`$ugr zw;f|+4s7>bCwQj;2iQm3&gAjABhhpF`SJ3_iKuy(m**_D1d}_@AM4EOJbx-=NCV!m zM4h}jJ3Trzo=od2{82583;)glx{hzFKfNuUBP6w=7+r>Cop>Sat)UtBARB%Qcs`K9 znwV#*Nrs+QH&!a)pb0rJK}u2=7(g>QA{EP9BcaSI_1_1|h*8=v!MOs*N$P)KVHdC) z08s1Gc06L+3k$&yDd-fBgS^CK59-a9hCkd#R_%PoO@={%ETu?s+?DIuzCp`fS4#1f z`@)_;7Gy$J?3)IdE~{98YJD;vuitJ~wU?~HHOj9AT4`TdwcDLsJF8$4Qj*k83An7Y zlWWz7?C+#8Y;=|eDEjwv*CAB|)er0IGm%I=kPzsJwAQK@axl{^l!=nuj#+a(!ji<_u7cXa(@QCyKhA8M==xV4VVOg^7NLprYzC_=^ zK?^-uS_Eb|xvN?nj3DZ^ht)gUUU1zf6T6*7M<{yxwcXU%^d*xtUjI_2XlasPyWzz2 z3h`LwX{lR9T5M`Gh1y1BQUoQ-B=aaqmAqPB!I5nZP`yF;7j{le2i}-GBj6H1DrQsuaC!&! zfMP)oYuQSN!L{TF$Ja9GH%t&6kyer|3C@>l0iq0WSB#uXSxV~7AXp^cfXIW)T&McA z=&9S=b>l^u#?D+%?8gp?*H-k%^{$6lV}q;2T*X%@7P6XhAIYtRXFjoOQ&$NR+!LQw z=(WQtdD-KJJo-UB%6*At9ClyoJg}wvQaGuSGj_D56Y8H*r;7xcWM5LKroBd8<|Oxe zYb)UvA^8djTZ|?OaXH4I4U%XgS{us1wPriBQ$%aU6$CJKt+jpIEueLrV324jF9cS~ z$2(+fFD|3UJ!@Du^#bKC<8QPWZ%X_pAMvM|j7FG^BpCz&I3Ur;SCmy@CntUor<8ak z*BxdN1)?v>AWOj)t^(6cAB*D+;93|?Yq^GsQh zr~0O>$b&aA>jM>c3}_AS<*jzH$0bZTCyGm$5cK_w!I@*|Z&RZ!xtrFz$nH-!cD(C= z)}h%S6jR;d_lWI=(Z1LWhq8hR;%FqI%uQM3_VyVZg%!5G5Ok5O=m>;y`HOC!R}!#^ z;4_y~bDMNbu}YmFm4^*vC7%OoW#|i9^r;bt?+Yihx>ov_C_2RI*U_$Bg1Kv#j~8- zOG)LMq4{9Z@JYK?z+~1Q6+n<4wnZ26Uw0Dc19VafOSFTJlF6guK{mCcoCNOxyU0_0 zU>A9?1MJjOTFr>~k@z+x%&*EJEx6W7uRxXD(M8EuB;0plYSqDMZc3P9p`i2 zJ5)xly>u@5{ji#mhNfy9(I>kpb=A%$2E2WLO5%L#!O~&eBXFpx!kPZHnn>aevi>!x z_A@CV+vgQ)o8z+@uyZj>nTa-qq2c>~?$e7fm*~c4Hc&grAs@og% zS@Qdag<-U@XoQ{n{~X)d_v5YE#=AreV0>#w-CRjoQuhh?~RB+q^AVZ+22XSkS_!467t(!FA$ z$?@$~TBB_{$D?gdzGz4ksVr98{{}X5lu8p>5_fX%-o-jst?P@jsnz{;OV)8|;;NhI zZ3Kc0@Jh9WjC&h#T@#i@hI^`plBLCLcI}>E;jJh05^H>#Muw02}$iSxB(QIaahU54RLrSk@xXK8SykiPrx(1N+^Oz zV#&#w@d4k6K=C${LRO(889j0Px+6T_pxAlq3G4Cmmc`CnPpHS*8eSu=(D)if{EYC7 z#qEG<1bF!tIN1&e!1lC3NJ7w)9-n;db=7nO2J{&{tkIOz_~PGS6?Yp7-u}$lTIwGK z*7i>@wxlz!5D&h8tTg~FV0p=w+@xeAMsX)&zOR`$9sdKgyd1*A2|Vyu+Zk0lJ~ax@ zx~Kk~OfTWZ-jnUcMSc8?TYB{Y41|cV=$I{<4Pw z8)7Hudoy`_?nnd-Fz4%&7f1K5u2v^k*GDhU&R0Y6;b^NZfa_aV+TVsuFZC}CsN1{k zC7msayav`&e|SzHSkSKTa9Nk{+1B=g{=H?0c*EsRHnm6uN;v%XqcyLf6zCGm*1ppH zMby9&#`fCU(rwI@Deio}`<3^=-XeW}UkxtxhBh^DiKoN%qCF7(t9tJim(aI89(z}l zOQ_i%o9{%gH^kj-F1e(99Wjy&6eFg~cpQs?tRTFN=m>F59BpvA)g^E25bC;ecWiAE zg0u<-#rOM05aw9lMmT3#A~>~lP7#cfQI~f5z#O~ST~vF2j?G0@+}o_i7$I{tPbg9$ zW&emd#>n0=N5u3C&Erw}Ce$`ubVA?&1x9jc$y*H*mmqfp0@cgsRL845$=!bG*i-^4 zO~;8MWVn$vgOrtu9zX<4O=Rg~(9y3K%s03m6WN;KKS8y%V7zxoc4oz*q?Q*6jgm5_R9E1%9aiY|$>mBCqsYI> zhte02f)xD-ar<{u+IS{^4XXFS(-w9Obas|nS(oC*B-9|A4SrpDPC^Y2t+Yol?EmMQ zYQwE11PrOCx5m5xcp1l~U=2i`&{D{(~!lNVEG1~j6 z>zU67`y$7`aSj3D>||#lN3ed}xh|q!tcQSbi$9F%tIgZf6gR$EK==Uk#j{Ui-`lTu zjFY_(wSZnK{LWR1g;vsJvq;D{6Vt6D>>+0bs)im^)Wf72l^RA3RVT75X^`Zz#s)n7 z4G()J_)n4utoaj?wq5K=wPvY@oaEFd3|Fe>4K+;^w3mX1?Vre3^o*61T^79s%6*#O0%1R@VV@if$vU4ioCnq#%LH@-tXquP`+-NrFZZJt>)BEvt3U6R+IjD4g`+IInn zW-FKs*h1rp)y6M?w2fFa0uk^zu$0{i>bZm5U%z?t_Tr34+#gP^HW#Za=L}NI9F-`S zGL)9`segHV^!>^8W_4BnB^tXj)IWRF+8b_oIQDS`rVo{oMKL_U>C>q?vVW>`VFuej zo}tij*`83j0Z>2Gnu~ZbxQVt5^dK&G?r1ii0KQUKY8Oqw4+4gUSS&#?!>~ZaBZW!$ zU(9+wPu$9-DDqAT^dx6{MfPg)@e`uwzpfCa2HvW&vPO{$lH9xggcIs%2&qM^@<6sC zQ=HWg1>Km0_c&S7l!Z6yQ~2%=E__E7%5vG~6?Qd}){Fa2pQ`GrLKGgX;O(g*FelS_ z5qn2(;yE533lc{Vuu5p$L>fL@lm#VZP`c(gSgr)&$mA-Y1w zTVCe?6Y~|?=0gJ_M}H{b#1mRpJAldUhQboI7=Ygg-QiGzsIH9nrqyo0$pdf~o`)>% zPghqy=y-)m%O7*y?{BsK?Y!H{*+sUY3;m7OLpS!7uNtPScQT`I7_O7-FcdIYQ22_J zK}c+@?M_s?9UGgA!13@Ku)UkGYwe@Ek3Hb*WgDG5R(EQ8I_!^^bx6aD_37I;tBcJM zma<<~uTRcj9<5&J*Ci2KDT76F2Z_6ppHZ28nMN zD0#={NLo;Ub0NlweuYL2^ z$@#y2xLUnjU9B!oS89Oun9Y_Jz%EmGgVy+_T|9wG4&xh~GEn@j`X$R<;um(A?J1^j zorB^TGsLFhzvM%Nt{;R5!e~Xk&}@1pAuIP~{=6TzEN_?>dl#?H zSHa#$WqN9%qE+FkB&I*p9`~%Tf+OviBfV_k@K;V`*eD6hawD7U(th?{A$r)C#!>5r5_HH0EWVh2ToNIbmZKBZ5>2$t%h^dh5)`-d8HAj#b+r35 z?f%B!i<-~PRSOD|4n3%$s3yOqD5_Hg!=iJ_8$QP}&ArB_SUBQS927f*%aQ=DbU_3j z3^opzDDC}`@QRwJojfin_KD4Xk&#lBfbt~9>~t=igU6+I8S3PyQ{g$zvFPA&S#ztN z=tp;&9-1`Zre_bgVGbr9xt6P&cBosbZff%k?%;9x+P@equ`?ufyQ*u?T4ghD-Fxxo z?7|tPYRW}>TS^t%I3SBfE=|~G?FBb&=lHiC`EVDcu|U%xrEb~OAnDZ8Qc}Hl`vq9|df21o#F$WU6DsD4Oq}o->-KR6FWsNcyb?9+|2cSD zUMTT$zws1Ed%mJQ3eN6oV?KA$Kh)@0E{G$l^{G(x3dh=6PHhlrL(w)!+j?7)bIgKm z^`n5GihEp=JfpW3>>j2{|+p7VyNrYp{m3y=~I-1fwzB31#Gm`>3DPmfuxo? zx+-2c^W(wm@{jkvMCFu~_cfw!y~^;)D}{)>;M==h76}|MwYb zwVIJ;X63b=CdHqUIIFkOylM1k25$>S#9(p$oQ}6Ke#>?)tvkDt$PA6ls5oW98O5Ur zc%)&Y&V-``5)DN(+4KcprP)dAT;QtGM*&ojh(ew+Ewe~%+;uX6^6+fL`xXE3e)z?L zQDzdJsBhel#90IU*{vAmBPmV+s?2jfqPJ7PDnVu=Ju|2X)YDmY zv1PPF5D9_Uy`W;SyO6oFr+`#tJ+etS9|EzQ36A=6Gnqji!6BrTz_gUcO(hz5uI<56 zO)-1dGv#!IAQUvRrcwn`f{JgEb5o1Rjxbhd$G;xVPJ(Sgv1Z3QLQ^iEC* zzjz=%!tf!@3?B9&CoSBYEmcqeFC2PtA7w#rCCnISF;fl~vug%k7{Itvb{eD@+BC<@)V3)ZvdxV^{6C`=lgI2xcW#w zNmO(|b*#4VDR$wBJnH|bu0^^R0F>fIhsSStMF}TFEu@vYPq!j<_f=dgHF+~$q|~!D zo5Z_?(`M{tC+U8~d}I6xhmw9Peo}Oa1x@LYO>qZdAGQM!#rT7JqfC9ET+Fs3`r%C& zFf9D5tTyUu;LNoZ&YirU@?a`PxnSwRc~^O9M=!{fA0L@wY&JiDECQp@!&nvNfu1E_ zE`Xrmu|6PZnp#8e1)pAkCyIqIc0CydsVfe}n#^?WX$~2wuP^-12ruzx&3R2uQbUx; zG!;o5ChE=;K))KffJojEHe;TAW4eN1v%miH;o;NWz5TeLEIMl~ zSP%e=P~-`vP|2MJR1#71I*jJ{Y|7W!cU#>IfKhjN;edzO6b+4Rcs5)JGGFchhCpJC zVS|)6>ajo?&v{(P8u?{V(-pO_ZjncB#4u$@1a8|>O05h>c;;lS3fFT;!PAg&5xCLjsBGFol`LzWlQZwa@ z^g!F49wtJG1MR)CU?R)*s<<=%nP4J6$Ywz(?9DQ8A_O-Ea5P$7DnH@zb$09Q&Sb?rH1xu>nqE!S=>c z#aQ?sHWnOQF%oH>JQN*Q)S<%fX{c!CXNU5a6$)8vtD@uRw5pg_w;qa$l4k&^KE{Q^UjXXigAJsKA5pRR9@<=Z6C`GqAP!sXwKtAz~Thc%_?V4y8P=%8u z`P{IzcBzSWawK;}!I@C@sENO&AkD1EqFvL95c1{h;4TShj;tMU1cpnKe1@19yY?80 z?){aZ-onBCOP|i4e#n(KYJ$e;lO@i=;&)FGgQPnbbw5L$=rl%_YU_U|oEvxcl;Qob z$xBP=c1}t04(nX1L$`CE>d*6$;Q1d9e@6aWSQ z2mk;8;QyBnkoL#*002lh000>P004Grb7^lcZDDhCWpZ;bZDDhCWpXhtcx`O#TkCV$ zND}{kRrfz=eN`t|8-awtkPF@-JZ$O=_5pF=Q%Z(0Xd^U~B%FBv`s;ZJ%}B#zlXbG? z*dKOdX{NiUAHVMDmf!yNW#ws)CB(?c$&Rc-wcv z2n8+dN63#t4Yv7VLtjSG`c1JI&X#E9gvQF91vtbHkuk%oB7S&qXQ=q-0`a0%GOgmu zaebZbeG_DM<2CYu?gI{1P81qASa1?;Jlm{*Ef6VHivjYS2*eGS?mDE@-h^vsh8p@h zKp_eqk$&-Zv~<=e-*eTlZeUA%1}&(j7C{nqs-x^~yl zEyFBVt(tvq@gE=ngx@!Z?Og61TEM!~jz6E|i&kDQN(82yK&f80ZL0z_?5cTQ%@CLp z0@E~s5AHl#QVMXKEla|xz}QOcu8_M}Ms#^0wSLOhPo?$Oc(y%a$pABKIZ(d8!ZXEs zcA|p3fw9i)X!;8eQGvjHx717RrbM^vxof6qaaFf@J?doEG4A`<4N>U+f%uZxXWNf}RAM{GfmpYFSXYG5h z<+-y@{54VOb)9uwQ*9f7M{Izgqny4-O^^@}q!Eei{LY&NVOn;62_`4miFS1JVrCR1RNd>5(68jICeH*D!?BqHRMX%ZT-Hvnw*srZ%oN$ZsBe4)F5;`lNphYLiqYiwEj%A&cPUoWp3M2j3azLik+b`M5x zUo4&Y>!ItyBPK-#^J=4`4PL-}{H!7m+UHEQX!(&Erh9`<8E7D>e%^qb#ExD=Nkp)O zEK5n`5uM^@9kh$DMXkqpcXciKZ*RaCPu-1>W_gq_{x)ugu6)KJ2beJHQT_QLI%RgnBp!w1ToZ^&dU2>>EWr>!@4s zVCP}3TNnysR+Ej-YoOu#;)+^@iqJKRwbmT05$_$nlc?C}596>E3IzB*Kak($QYN2T zZ0A0}f~0~h(c0^o{mumw zaokthinKvL%@>#hnO{Yuw$OD2u#42&PP&oGwSJ0~6c_8vG_Kpc z==C1%s%~!E-)9hg+dC;!P893lr)QVs7h>J*q{DK91jhL<-lB z3|xoA=dohfVOp;*`&+#ZGPL8Mh3EQd#t#S;prvHF<>7*?SKXOP`>1`tBGDZ>{Bc_~ zF_DxY6&X#V6_yWAd$aCPms4P_esrsX50|JE+9!zvX`HDGrAiCwoLNy2k4K_FcIG*b zLi?z&)P=m^@^G8m?&O3z+MPual0pD6{bCg;Y@RLvVl^>R_~I`-ld5g%3Ba0@IxKQ&}I{ zg;{3y8f7UA*5@(vBO0K}h3jSnb|D?9*xgAjNU+zfx{rY;KOI6XVpGTN>=MozU}Do1Yz#Ezx~gVj!gF=~i3otmB|)SQZ^upez|7{{EnI^FQ9~{Lss-LVpA@3O7E2Xu z8UyM?W%Su5c4~&XPxY-_MY-6MhCGUvGDQM z0lu-pYZF{p?;ccUAz)+#@4SkNp2w9Ht$@OPxFsyc^6DMO){>qIi%>PmITh;%#!^v=2C(3S#2>a#{52IYbpoEm(enJ0D60sQ=k-z_@zOU z8^F|yyWya9K*BY}Y72s%hgKz?>f+lgE&8myVI)zPJeeeOu3PeRx@71G3OSjvFiQtT zDu+&x1|Ni0k1ETe!v*N#bzce+yIS2M_j|;B>C?b^SIyZqs99EzRZ`J{(7@k1Ty7-_ z2Z%<3m94&G8o5F-F^7rByPM%Uf9E3IZS_VoFcK65YIk{ec?HAv;y&pp=k(Nf+H4FA zP^sE**06L$5NYqiTV6co(iyvISZy&>I6@Iq!J=JA4`~Zywx~0Dp)Z61Im9-(hpXB; zs{mt3?x3%{&xn%(9B2dPxpOU!k-Yo2b5v8zJ7;LC)0XT*_`J=!7S*nJ4p1~QXlbu| z5xz2-y}rO>;Dj9}^z~fyiDJxYqG`DRRYteTzJ#XMfAu6A7&9)NyuWz;g7G}ppztz-8ZU78gYpBSwB@{G9vyDXb*8i-1T(m#k4gZgSea5G&>;8>jAI2OhEH; zh9)ud!3*-68MEKNStB@5@3_zrQ%7f3Lz+OI!8@X;Glie8v@}$KC$pa%V?H&)KP+%{}mRKe^80r@p$`q=5HdJbeU=+2NU17QR?&vNjX%sR&Kkm<(cmlubQ0Sar^JpTt ze%qj+xa<1`t%7!fY;KFZRsCuHqeW6`CZB@9AhODqfpN$mZkM^gHT6%I@uvV8hY z=-cmGe95_Rh~~^rQ77g=>e3TZU!vY?^aP`8!@SO~N^K_#_`F2cGtX8GmSpNt_8exs zz1{EdF~^BNSn14=9%cSnDjn<$iC=97&}qojzd0vDoTrm$uZMv582rD7n^1tP8qx|& z1OPDMp8bD*6u}>jtY`HMkz>NNK1^lbTin2^AyM)6>}mlV!B*lInB5u;T>JB-b*v*U zUOAKah3#NloZ1!2^B`iF04Ur%lJh$fSuKaqA6EmYe+HIZ9 z@W?y7uK}~#+>o+wqcEq``d3s1t-oPyDryrlJyBy3 z23*hRJ`WY;7um?+T2ZZGKkTI3_PRD(<(7xlDJEcD7FO9Ar_)=S(J_0rtQDh{9eP3Q zEJMv=TcsIa!e|!-`cVJ{9mS$R?8b82UOgu%T}tB$7Nk0A?IXQOepeqsWpR(16$(3Y zgf>YBTI$p0i&&RF3TRcX%ry$3-Pcc%=e9hS;ePfcwFMTd&t=nhYq2hhL6Xp^ZS}(x zm>{`mo8!6&Km5b|uNNGEwU|D5~1 zm+6!8G!=u>WuFGTWZD&O*?nqOTj~~a?=W(wCaL8_ELfZMrUrQ$b*huuAaNa%y~i@L z2<@DXpTBe7*Gt!n2a5yW@Be!aGl3YpLEU6xik0qdq&xaf>%EVW{#;=hj+%# zR(^c@AfR!4M-=HeX}NRLO-Y5{rq6Y(Rz9K)NOxynl>R-1m4fW@9Fi%yZYx&TRTpB# zEn3h8UaL=lN(2Fzu<6db7{x>uf@`6?bv8}K{2q5`0Jjk)sPX6vgY{I(d)-SwlE~ir zT9t@kzxgywhZVbP#kKkA@=~P!xR4AuC;JW0X4o*7#~enE_02%a%*Itk`M`ObIAP6N zrQ(fSYC!sCN%5K1`tpXIRN5?6j<~c6(~$C~mM{&>vruUbQTDV5cTJ7?9DT)gamFyI z@H)S}wB2-?88QPAYtG9LW=zs62qhJ}Wm;!MYsB>BJ;< z?apBC<;>jS01GVCY(Vk7I;G%<+>xL~#=vM>JMApw+(lr%(L&99t-bx{;Pe_G{III* z&8U>B;GD0N$+!Y?^z+63is5nc42m}7AVj7f`gY=Ocy+OQsQ+QE`Bqoc@coC?8g`F4 ztsIJ1QshmlA}%7>7$;B_rXN`*fL?rpO~;x7pgLEb|G!2#am%m?JZMK|IqrpZquEPf1f z`SNxMEdZe64**dA7DG&OG7J7Kk;RY47ZIN#8ZMp0pC~8)tR==L;!Au_iGB1Z#Gf_? zmmg#BkE8Xc-4>sPuf{!Pwc|{=zvlRO|6g~)F6MG6GW;y}=QcV1l5IzE5 z$9amtLQfDUBlRyiCq4#W5O#`5 z5~sA!0w=WJx9z8F0zWDI#?Pmi6p0he=_vn92OnX*jwBPs)$xK_`gcGx;M1 z|1jeeQyKkd%+G@k{A_5|tQn_pGx8p8{!yJWa7$hBCm44d1RUv(`qPBQ-zl9EMiWoM z@pn=9DWI*G+n(c6ko}(&dNTn4+|<@^MmnN+&5_O)e@fvqs6X2d7mmP%|6Y_za{e9e zigH0Z{0Z>l;_EBDH~@qg0H8eG0Nm1@yng}iJ39V~2I8vUkGG-$FaQAny@DTW{{co6 B8IJ$} literal 0 HcmV?d00001 diff --git a/test-data/spreadsheet/stress.xls b/test-data/spreadsheet/stress.xls index 7c42429886fc45460c405742a5c7110b7903a0aa..9ad1991a269306961d2741d462d0b98e63b306de 100644 GIT binary patch delta 2651 zcmZvedr(w$6vuzRy}P_*yD}=6+nuyY9cDF=1(sSVOhr=(#RvF6LfGmYaPj!jKXwViwS8|&SPojt?(?B|^CZ|_|m zwXI6+Ps*AUXSKjrXCdbA$?_}Rsu=te38hR@oHOJu%;qqKYaZ>Ht(s~!6sLLAk*I0t9j>f-c?xrgj>BpuAl?3R}9@usGxXL!5=J!u|K#$yYs zXJ$~K&m&Zok|@2@)VFunn%QMN^UBLBO3Qktrlfe?JqvS3>)rDmjvhV4O_3NaL_8yftXM)Y!4Wo9y6(7PX8ENXJM0q_1;{C$d;-wnDRf&P8$#J z_W#Y7(U?dQQ@DmY$(`{wL!FJgzqpgOC^i-DLfp>ZJ=$S8#6w~@IwLK-Pm#vH^p4kz zeHqxN_&XLV(pWeZhft)kun3*qve0fWjKM;?y#Ijqj(v8^K6}SL<8u5K|H&w~8W=Nz3Zd$nodt1XSY(<$8Z=Sv3k_8+&|)M+>%6Fz(~Z8)ARr&IHBw=AJM zTxZaOC)~1>hH;%q^SPGM<`XViPK_sA+AK^*o72WMF|KShe^`=4Io)M%HaSlkcJfJ= zRslQKV#mTRVQ&sCGwn@mKL@*$#qI?AEPKz>9n+3I<dsWn8+P|$EUx7=sl}yL!|r0SyTD${UJdPR@yZ3% z-r|-EDdDtRE}|^1i>ZR^5?asoMQT3nl}qUlt}oHRGj6$zinzW^E4ljheP?#qWG$7P zbIVsKz;!t_p7Y8TbeHR^lziSR>!{?sTfRmCuCG%g*Egu0>q<&!b;~y?tJSTp!eQO! zVOP_lR;_;ktY3(6cYuGG`tcj+VLt5UP43S(J4w7n&AjVvy2HEHU~T|*^}Ud+t_4d0 zE54wq>%azrtzt%CsbKprXufyAJR!!NaSl(!IrtYDpJP4TG|a0PHT7MvbTA*Y4PY5y zvo31BjbL6&jyEDF)6CffHxu(syz@P<$H8ths|R}mEU8WNy$|NINQRM z8f*fXkJ)~(iD0v?X})j33M@GV5jllsP9xkx%s27QZ^0&k-DdV3*krJz>zeO-uql?D zDG@nS&72?LPQ`rXbxl10Rs>ehtO;xy*fC}Y!HU7|U7xEqgG~pkyrHRwz)HaCnH>h3 z0d|bp5wOw_)9>AIN=mWE@4cC+#2f!UWb;!rY+XlV+PhL=dwk5U9V0ew4gM^tm%S_1 Vw*Sh1NEX~$VcT+5|MOOq@-KCmHW>f_ delta 2320 zcmZ9NeNa?Y7{<@pWdQ}cg5*}royI?^akdEvY@sU!DTOHpB+9oSQGp>KnpzQ{nGzV# zTUnW*Sr!tN+~|vfbSi5^!3KeyLR_Z?XPW+Nrm05hy_biUySuZ`%=w+?d7pFl-koh2 zw>ON~+hW4D2)q^uQGFt*-X4B!dU|^HQ_Gvz+B4&N0xE)USd(d3=Zn-GrDfGy%d0lm z?hy+_^8oD%ZE+lP2yseZ7?zT3`);1TF8x%1KAz=pL_`R$SQI2gsF95q;-^skul0Gd zJ}v8dgNQobk^F88_pNQhCOq?fYrC+Ev^nbl5g^iT_3b-^L!|9o^#8m-5h&WCeEVE4 z+k$7-!gihE(}#0ADyZw*!@BmpQyNF$7YiRnFFKtk7kgA+UK)KNzBON}Y|}kI9JML= zoVm*1iIH@Q0%|_9L>5x-8J8>~FY5*h8+6HHN@OjeGS-dMJ{ToSshjl?`f)HyE#(>g zJR^uN^Co@=m=l9}rc;!WJZrdB)<-Gvtj|5q;xE6%!ICai(hgjUk&2Wlx z@|y0etQBk6d&DK5rAF3z>K<{+2KtS)k<<%rxr?$dxa4kX zWPOghS@)2K^?7oPy5wGp9d#-DaQj{6?Qfz@qpI=(*zI5kMpfBNy_{(wFK6~+KN|Z{ zV@tFb!D40@ulo6S5yQU&Fk&hl%m6yTp0?TLi3YZ&g@3^YH3YK8$N$~4QG)ISOwo@>LV6@($Sj zUFTnV)Q2XQt3HUIzs