From 02a04f6edbcb7823abf7ec7c7b10b0a69b8578b8 Mon Sep 17 00:00:00 2001 From: Raman Varabets Date: Mon, 1 Jul 2024 19:16:50 +0800 Subject: [PATCH] I have no idea what I'm doing Signed-off-by: Raman Varabets --- src/cairo-svg-surface.c | 22 ++++++++++++++++++ test/reference/ft-svg-render-doc.svg.ref.png | Bin 0 -> 11081 bytes .../ft-svg-render-doc.svg.rgb24.ref.png | Bin 13060 -> 0 bytes 3 files changed, 22 insertions(+) create mode 100644 test/reference/ft-svg-render-doc.svg.ref.png delete mode 100644 test/reference/ft-svg-render-doc.svg.rgb24.ref.png diff --git a/src/cairo-svg-surface.c b/src/cairo-svg-surface.c index e8cd8c63f..dbff5a19f 100644 --- a/src/cairo-svg-surface.c +++ b/src/cairo-svg-surface.c @@ -2535,6 +2535,28 @@ _cairo_svg_surface_emit_composite_recording_pattern (cairo_svg_stream_t *output, return status; } + // FIXME error handling order + cairo_svg_paint_t *paint_entry = _cairo_calloc (sizeof (cairo_svg_paint_t)); + if (paint_entry == NULL) { + return _cairo_error (CAIRO_STATUS_NO_MEMORY); + } + + cairo_rectangle_int_t extents; + cairo_bool_t is_bounded; + // how to get extents ??? + is_bounded =_cairo_surface_get_extents (pattern->surface, &extents); + //assert (is_bounded); ??? + paint_entry->source_id = surface->source_id; + paint_entry->box.p1.x = extents.x; + paint_entry->box.p1.y = extents.y; + paint_entry->box.p2.x = extents.x + extents.width; + paint_entry->box.p2.y = extents.y + extents.height; + _cairo_svg_paint_box_add_padding (&paint_entry->box); + + _cairo_array_init (&paint_entry->paint_elements, sizeof (cairo_svg_paint_element_t)); + _cairo_svg_paint_init_key (paint_entry); + status = _cairo_hash_table_insert (document->paints, &paint_entry->base); + surface->transitive_paint_used = TRUE; } diff --git a/test/reference/ft-svg-render-doc.svg.ref.png b/test/reference/ft-svg-render-doc.svg.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..a223689806c0930240c0644254049c718e0709d1 GIT binary patch literal 11081 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 literal 0 HcmV?d00001 diff --git a/test/reference/ft-svg-render-doc.svg.rgb24.ref.png b/test/reference/ft-svg-render-doc.svg.rgb24.ref.png deleted file mode 100644 index 791feb90918ee40b5fa58095522198f2a28aed20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13060 zcmd_RWmFqq^fsDO3KS@WLUE_X9f~_aiWVu*km3%3;x0vlLn&^hkOIYuyR;Mt7ThUN zEV#Sn&F_ELx?k>E_ulvOo2<-a);TkKpX@pNdFI(C(Qma>p5asD0|0<$Z&X3LnEk*1 zK6qG|ZS|NE4`zpBp{@b~p#OV+Z7)s%02l#pK=S%NIs3W38CLHyH#-lxyaS zLoD=YfcEL%t4*HHU}32yQ{7_+>neOOF5aAtQ;rf&xYNMSVzk z_%vI`l6?89Q@QApM}5x0KC?q{fFbwl@q ziLg`b>;p0~EB3<9Mpsr)GN;=CGM$NsTCp!Nc9gSAOZ%hyIeIBk<=d}&Gt4wa@p)fb z(o!)4nDKbSUqvKAU?0fIL-&zQ3oemyj{sPVg1wZ5@za`#%A5vZF3UJwFo$)Wh%${O z0FcDQ%-B-dDoeDsH&;j_;?%VLJ)8XffcpDZuYHcV>hHFl<*O=*+fO05YrVe8jE=?PKcLstrZyRP6V*>dY2m~ z!1{8H5LhRo)}u`0EJgvrD<~ST9tR7MvwXv{li7|J&@>eU-F0tvKm5*(eZ8NKe z!XfdsI9C88wj6&Xr66wvFcgn+0u%`YQsO@Pxo{Qphy?hE3dG;)uwWCGY9?C_V)C8# z#%G3G5P_p!KS{GHsb39w-xm+#0sy*LTk|`kARlt+dALtb?1Th6_+Y0te7ByzP{rY$HNwk1aRAvPzk#()w9$o zbbCpAdwbrJQ1#iUe{pB>In5mLnyUGX*yE%CkWgCcf)((Y$JHJ)Q(2Az)*wJ;)nCu3 z7-6eocvx_c+EV=6f;XgzUUIsyQs^ohbCLG7Uh5d?u(I36OInqZQ|mEnE)?F)we7?~ylCb+i=Tk7CVD zQJJay;J;H^>;=XLl$&-wETiw2QR$cQE&*$ps85#(MyR>hl8QW+_{h>@z_zFZM zx&He;o&b#sVj-lS%Nd5_2`lnaq6o9ki>)9c{#va$14i!HG4iz^%(CeG6pP{?$$^lR zDj>#H!Z)A7LO4ah0^Jr$MR8=$lS#T_`yiL3o9knSoi|eykdN}kaN*2G74(@l+QSue z(;-Wd$joTV7-5zcKW?rdXr%yFK!ljD%+!hxDo8SGjqc6HqWZMvDyhk`yMGMJh}+V} zG1=5je|=W{LGwKb1RP>b1OYC={uS$BQi*>3;D$I_y5;-f6%*80!;L zEp%HVtg5gh8kQyb#Ka7e!$H`4 zCzfs7#wsdvCI;A8EO_Z=mj9%MsyfCagdd?o-G7O@v?>MrUP@=@`FtCWcwl|V6d|k<~J50H>2e+di;9P1XiKTPQP_K>ZIc-sZsudx?o>@*2 zHtUq?fSJmX2r9Q2xU*fSMV+hOdvoz{ZV?&z$A~|Xzg0jL*HO4hZ8<|P7MW8VX>GEP+F^!QUc6qf!I-T!g-a-_4cggtE1yfaF*r{Cdt%B z+L4ALpaQ9=9Cqs_(Y#UoQuPCJ#55>kxg;?@K6q6xKWOh*bD!&$SXFAC2?(Sy{}Zu3 zzVX|Qo0sa%FA{lvD?rYvQR#7Xbd%1r9~)my49&@+%xNR456ij|Y2p#Yu(zrz;Dl+p zKY%AG4M|=Do;Ty4Z-sQ~_nNmgSY6a{VFETnz0m#-#`6uNq~`7#v93s;*7-v3a`eWA zX^Sq0^+MY2te&181A1L4(PamrD0^(DA_u^ZOPvnUFk=6}N~ezhNbT*{d$&SCy^1ef zQ#)7dle1eTVfd?&PaSeBqS=8OwAbf;6}nGp;@OXq2~`LKI>Du>gQ+Dt{WU*DTIz*g zb2v4Qie?O7x@}_#ym<1wj;pIW+(Sx}U5rA3pEs$#z+MHk8|*vt&M-LM^}x3@fVb75 z$-AVgcnMF&v)?w~=cF{kbX5tH;|cK~ADP)xxy&hd#0a|)mo&+y@8mW63JhFn`v67p znOS*HsXd>neKRkjqU@Jr?9~DFP7c6JbgB$F%?lku!A4w9Qtiq0@3yPQ_7@OI`+g1S zS{t$3kYAoq?IbQa{@&&|IbmEgaobRLj`3T9 zJl9OM9*1a()|^RN#xP}i0}biw!3KxI$6wc2`Dd4ZJC7HZTajMUe5uuRGwRlY2?(p2 z(l4SAjbgoRaQj09pUL&vVV?bnCU!`X>9Tm8K((Mwd7MtX0}t#qi7K)v#f^?Hn`d@g zgEk_>&PHtt{LbDjFyA$EkYZ0mtqjIeDkfJ`Qwm{Z27M;1k68sj^;m)HrSXJY(SBlH z26dz$nTjlw1o8D1aU=V1#3>-EiU9EI8I9rWXPrSSt>}{~2pAG-{XXYuLT_yGY5QaG z&?b?>il30vFx9~QY;*uJN`}A2&DZ$AYIQ6@4&+K}UlGO#OLY#{0hTHhWbj#i% zjnzB6CVZ^ONXItLYQRL$T<{i59zsG0U%@VVr(cz}6W?{3^OL-coxj@UO`2M~Z&*+uLufX|Q@^hJ+R^*Pt6-GZQe5N|;ku;poe*ay9R| zdxPBIXVNwNWQFCbshto+1ULD~wMAYk=SJx^BYuW+i1mAuNUm%cEK8^$)SVaZH1!SS zf$qia^uB+F&CbKYGuYt75g|a8)$`ialSB28WHroF2y;}#Me=Nh03x@sUBRrkU8Z`;vhxg34ZIV}+1 z9Sbg~L;Ydo{6qkGAmlQPq5YOm+qlK*K}7TBobC|`e9frRvDKM3UE8)MB99)l8703+ zE0k(bV8l)C-(;gxA)=s!)TYsQB zZn`0<61tEOMtCx(ugyyrDNosx23>F-0B)W<;Y%6o{Zma%M^iOTv*@OZi2S!!&pvKN zXkSrpU?t4##?%CKuTnW|+dU}j@Y4i>bjW(D1u?uI)0`#r>l5u{9#k~+YI}G@<^)lg zO}{Msf%Ed>?Af|*<$4z-slwxrNb2(&Z}bN42=uQ=XLhF4uH<8^^iUWO*qn;Ac^YS+ z=C}_Z&x9b;#v7mj!mtn+WsMkNk}x%V^{YwMcW!w=&aoOiXXJZViCS|}G>>sZINlc# zIWX9ZEHcfS3L3CX(Ex42dktI*v5I4LsC;KW{QBPA^s?>&*;?6hLmj5!_7+T_s76yk zn1u5}WQR1*@;%nQ-|*o2cwRS#r(@NqRcwlDWtB$1Ed*AN|9&1<4X$`-N8fjM2F;iv z3ybr8>V$xl@KoIpv(|)tiE}rqB;Qhf&Qvca$y~J;F;AG95-ciSyv1fc=!d_uCAaO- zP{ZHrMR#odNxff--tPd@5OR{dsV53dm+tv`M!en!jij zL;7MYUtlxwBa@WmGqm8b(t#Vws+AS;hrWdw0BfvPmyOLfTnVZm~*ZM`4k8gB^K0 z{dEZ<)Z*!4dAr0x`rQq= zYz7ryk2;P4;j^oP8AEgiKGLfs>sBWjkl|oy@LDIj_jNdmoh`xmwl) zgP&ZP-P-lnann`+MPKk!Z6F^(mT`hOu&iAG$;WBj_7!F#MgE|Y=4_;zXv*-WUa3Zf z)cK#aM70H+^@QDx8mgJoq80PPyg?hO89FK|Dz3k%zUT2-85s~kDI>0Qd?JmR%tvwc zo1v6nfxl~<)M04`#%%XDTEBqef`y*6O1&BUgluem!IzVyLVBcw={({e&*j_O!!n&% zbKRVNK}_7rKMuN&Tqg@4e$-1mYO3Vo-WEfye1=2#ZM2_EH@!}hu=8vY6%}f5Cr|_` z*i8}sC`{F@k7VGeb@Z39#KX4oI^>eifa-10n4srJ0&Y?~Wn;b}O2lGPr(g0&rfXF| zs@-}9NM_tmdjeQf8n9{hhKY&KE-uflPo(j6x$C*Ht|A<6JFYfGUKWO8hIm^^N~6 z4rsX6r_`Y#Ax%-KVa<){H@m~+F1ROTQPcWIYQG1#;0MC4^=I8a95*uZ78jRCeX=ao zp;=f+`a{*su6$A4STFExExAfBCG+F1=6$ft#+MYn`#TEG4x1t=7{9ZyT1vdbt86|8 z=x=s6r{cGJnVEUYy4b97Yy1ZAOkD|SF&QeHASp5a*@cDtVG1eZO0dWlzoq(9!c>tt zjm z2~ml%Q|#}`${b(AMFHKmmisOG8wxSKqYf6I^`fw)?9c>KpDt9$P{w z)4P1yO^mB8DBqR3eDn$Uu|%1VC~mXpU`+bPzQ;%2+gBVD5r;x}ESvSrj5z<@6x()U zJ*~tH=xb-=lraYS^nmu*3L!>4!(YXlA-w5>k4CR1&n7+W`;cSFF9vUL68Yth8|Xqh zpB0v>m4dL%i{8GaEwjmJ2RENAHbhrQ(x|7wBRudbw1v2 zRhonxCX0#qR)t)~&jLI>etr|BE*22T$A|038-Bq|#+6^#SlPmiT1)G))%c7h&h`$2 zGIvHM8}?^)I5!0|A(bmld3EIhA`_zgC2L)uv1lo{eMgxb2lVuYPM5Bcof%Q`OviS( z_6K}8jF#MeNL%Td>eC2XW)X*ahkBXU6(m0)rF`!@oIdu)yhu$d?%jQsUxzGewq6JU zsw9tn|A#w1{EUc}zsB!{U`|#JJxz9bTD}hW^8AeZeG6e1_WArD4JG&fW=1SaJQ5%# zkpXa$0d@9F8vXrj`QcaaPRYx~Qa7HIW7hBA3EJCxLx45HudCZ;#-+Xug-ori>AkY| zmk{|TQ3@$@xytCzUAW_yb0+9LnOiJSp?5tKP`N}7eogYJa|b4iWHEnkzzGSc2EKN% z(x`m<^;LJG%!yqyWL%BIvT2Rvgi)U}ZUBC=vSKEa&u62T*Ry7XD{sVUC})%zKy2xD zdjXYfaE1y~r+vxvXzA?i9MvPd_cIN4f&F%&BvJ*by=Kb<<`b7V5>ovgH@>Qs^ z+KvsrO?Ib_Av&P@*j^{ld#szrf)lA-e*0SULak4#5gN5@=TxCV5#Q#40KI1OCMB03J64ho{^T095S)Zk#p z$$F7$0kET0mzcJ#d){tK!-i2BkhN=+nC*_Sa{8`oxyI5%#ohsoZ-TJK#l7+K^N&lY z*G=2!m}bO#$l%_DaQRDBjH zdJ{rILYxVL*P*-C1_|ZVTZgaJ&^Lyieyi0gL^4+O3_bLpEEfjT_-dVOnf}Lje&rq= z7%b=4(2zdszOsCwgwS6-Zu|u|r?SSz8RAezLe^r|q&I!8FH!NzZ_B1?6NV{mAvi&S zZVoL5mvnsa_y#e*G^=YT7nkbBD!z>t9ZJC4b}&b(Biw-{=KMf)lU;lbQD*?QhY}`d zTFyKu<+u&>r>zC-t>p*o^cNFRQt7z2WhFoo4IqEE2#nj#!GcYbo#7zt zkm)ka57+cRax`Tl7_ z`jMttgCWViRNoA&;xIvLmpt>?J>2-?*=OoHhmtw&j}?)A@G%WGbtvi7 zsVWqxbY%Fr@xpGU_D%m=zcqfmJ7rp&DTf|nk5ZDJtT-k)g%w6@EWl``TpM6Gg?5u};5r=R z@x`?|U(<@EWTT5Cl1kWNC-Wt!2E%sjs2vB|IA8niJjMKRn`GY2a8r4nb(}jx@p65H6Dh*NaD^jEOYgBw7f| zxQx2-xhkQk*e5fd*lVC9q!mtNq+TA%uM*`OVe!iq!n&_2y041Y^>t295cbpm>?ul+ zqQ!ffuJfXXFF;Gp(a8fvnoVCdMYG{hNdBjT0V~PcSj|3uXn@?1;Re4^6DI;g*}{aB zdrQQK?z<>s)=CU2dR(2}=wxQjRYMmvniaZkaB+w!-)E{9D|Gf!@|f1|yr`1lt#Myq z9VoDAXNjWqnk+kw_!gtEeEC|3vgesB%z_U4-_ZKi_;FGL+6N!b&1-$;+ z4n;=hH4VpSa-0d@i;E#M^|a~g#`7i}Nh}r{7>rFnWZ1goIRGo*5zXTv{cmskZlmaZ z&DQYq#BXLF`}_G*^<-*fsS+TIptteh$&$!;wL$~dickc0b?9FKM0Wiv=FbAuCB7O& z$#X9%0)FLu{QWepdXTrXO-iVT3aO!4rXdl-%t%d79Wau4IIMCRA$jtZdOC-zF9kaF?35dh$mP=lnx8-J|$st>IOc&^*< zbdjB@{$tk)3#LCSD=W9i8<((d=1I+3u>O0CpJPpY&9gT+P!^9>j{40&*>vYD50P;f*nq2iHArM=*^NY-W0Hy+{w9j zYJ2dkYTeSK2;2)LIO$onHoeo0BE-ksTJHRjaY75OcYe791^Rn4Wjzm%X3i~?8f@J^ zm3k<1Dbb2sy3QVj;kah1q5NZ%el_pT#ubdYTH7p=Z-E7K`=38@RcAsi>c&`T7J0fa zBnc>UY1$D|yu^M43}JdZ|Ht9-%FZ8pb2AfsJ;3Gf?@ugs)FncG%ltgi3;)*>EQ7Ll zFO(XfLP&h+b~6pQ?yC@XLO*|eFbxv;Njz;OK^WYl7WOo{$XdJsS}GQI7nu-f0~+v* z7O*LXApmUMO+57i^6d$61cNc%qmfwJRNeVw-HVL6Cvvd?$ z6@0(@U#+a|B(-XBunbe7(-nnDZDv@S+^AT_EgxCJ5tM_U)7CV!H0B$oW|kR*cM{hA z=&1IpGQH^=uYQE6DSAaa_@-aKm){=XdHU6bPKfcBoN9jrSwnY3#JC{Nnga$0pE6-# zF|vr^4muFc(|n~!nC(PV-BMs&$a?KKUH-lnp$p!Cu_TDC!dNcqW76Ss@8yvsMx%JZ z{%W|cYoSSEn=pw~V{?Ot5BvUXxScNt6C7$>x$D}e=uE|IO-T7z`P8P!n1iP;wIP1d zAaYf#(qORqPzV|FbM6KMU%hxCgwnF(;n-Gnx~^^}cE1lv6bOll{qr2v38?g3*Jr(4 zf=y{7q@~-thC&JLCb z^ol3TTYcG2rmhHcC^XJ#Ep8nNZ9Se76JGN73Oz{yeSa|b)7o(pivU*7F=i4%WE8Wp=*1-v> zOF0-h_x|@)fJE~P+Yk8{fEwop(S-$_xU z+)gdOi@2Yrh%R?rU*IY;`1oyZCk641E8m9PJyIcNXm{Rd5v4o(uFx{Nq^|w$J5Hq& z)2dDDQP;xB7|*qS5O1`Kt#bOq#JHBaABVka;s-Gs_1lf-+=xPqY?^l4>9=g?;&T@X z{QZ7HJqf+hg)Y!5eF6YHulR2*fE%(J)%FlFQ!BD>obiJBW@^(k(6ignWzoYj?znuL z=jT$#%|5DaGiOaX!7&|CI-q};dK!nQ2TC0^1bf^rN=uw+6G)4?(id?^ANN01>2MND zx%T%s-5f@l`aNhSE?Ir8e-?%3GyWr`vSsUsk`efPQcpYZY&`M7V?z6>v46Iz&yIYt z$@MmuVU0zMZaTEd?W9rS^OE6vCs3q1t@E}P4(Lql>TUB&t98A!_D z201fEat{1QU@wH}6c@IN)NZfDm1^fPEW*bcT__XU4py~rG$3X1q z%JU=MV;ct{cd}-8KNN3rl?iupF%|@CJ9Z*y{ZPqhaHPhsJ!mu2HZSmEZo|!&>15~p zhE3);dO}MQYGY%=w6T}$Q15rMU7YWK&^+bf$+R))P=AV)JUpAwHeJcqG{UR!t%LA( z?n7N#4_bETJ+Jd0&WhRc15RdVjau=sL$M1 zpPp8XhpGfF%kI}rIJfRMTyQp_A8waV(i*?0!5h99lua$&OgA^Mn%LVogJ(K(XF*)BFu`lOrT;V66g&IUE0JXlyJLq?8Mv4mG-AP33 zsAb8_E-L6?@p|Lcx5VJ>wb;?yN`o>~;J-F4(^vl@h7QKqdh?nN{xx{6Um}M)TdxhX zgI_1cbhaUN(m!m?&~c|s8#iU(Q$+{_>`($(j_aE3483oH7v6fLRe0@Ytmykn5M2qW5_W0Cb+RT+M* z_cXSPo4(!lR66C~`l_n^IDh;?@XS2k3{-o`K&bw|j<4ReIG%op_3c3q4Xuuyk5rf% z<)E*RVuw5JIPU32{*F;G`LA8rN(k!b9O>E|Z-rSB^Cl!v)VTKbrj5&rwGe}3__I8+ z$)n#(-OO%T#ulzcI8{11+h?3sR|hiHEM_6XeQQM%pX5##N&b0g-_`S@ZqY+T;A5E(<#xxslEjAJ-xWVp&d+SU*NI# za9*!q9{4j}Xn4GN5+eGI(L$%;+N{1gDW&;~&dI1>v0Cue=s!B$8VaHVd(HKZ=9CJU6@q9-y2RbWBtg-S zc+Nlcy_Db35k1k%EnyX6y1!#*(1NL0`dTZ~#r}WfhgPxM3%|=La(fDQm8W@v8n?rf zNx^EttB7bi-IJQPgUs4SbKskZu#msOY{?)0B3jyuGkXeEcw`-X9ei(J4r}RDUQD?hCSj)763cSyB@t;Ct%aOZ{@g*%;yg;g<;wATO_CwsawwGI zq&0eZj*WZ#D6btE6;4Z+5U=<2+m!+>p%?F0XO$#KIM5AucD^14 zZ)%C>pP`~geE*8aex(E;rEZ24acoPkFA+bM-Z6+>JciEHs>mE=5z~%(cS#9WQbA4+ z3YY$RVb+=K&E&P$@#h09Rd^(K=u|oi_c3laJC4vHkWBgukPc%^PPDRe8M~ZU2o6SX zZS5`pNVjxzbL;>7DwkYbSXfwETG}O9()(cV@X%+%cVi$GbHWmHqtl!&w^!SCz|k+< z8Hf7jtxU(ZV)Rua8u%?N5zsqJ9CQ@syFAS*`qxA6)Tt5~eb=uYR3n!>V;UT&f^rc@ zH7>dhVkrfoB$v1CiK`Y+!~u${zkRc5qikV{ebxkh>9d(GR+1M7m=F6GFS zY;#mmo2&7>A)vt@498{;B!$hRGz;xWn_gzMygl>U)#~|2H1K|@ZB1N zi{Y~yh2Q*lx1H$QhC0m%VE*-xtpv%?)a8Bch)gRFGtXelUd`a9&hQAEGB2j^u>dVI zr~t!O|NZ;NfWGR3+J|+}iY^D7o@@|gy)V7cvfzNP%^ewvF{TV4LEI4sa$~kZSzhhoK>}1 z{}9!=`?xQ_EXZ=@)Moc=y2|D1<~-2^?Q}lZu5xJGMKnZzb-=Q8|6sW!`^9)tk328e zuYtqOF_7!m63A^GcZ109^50<)THx?-gx5~BN!oUqQjpli-{-z|S2V#nz~gLe+ebo} ziDYgOd3tBA7}f5u@~$tD7CrE)Dkspb!P2fUxb|LjH~&MYE2>vTg@LD3*G>WOGc%Xs zx*LaB62l7Xxu!cTwz)1kxZ4WZE9e(5R&q!FUUwmJ>FEONiqs2;NXBfu@H>1AMb7qzoOcqffuYtm+PxqO{`Tn1*I9i3YCHGI^{}*}w zpKcfBn=ii|&tKgP?*_M@&LnC}$^6rv45cQ4=XxYA)P8pv)=^Zc_|WVnCfP=uzC$u* z=ULYrbaouw$3{&$Tyo1HIkkIHxozxzb~NT_SWY)Y-Z%2Lp4aT3@AFvix!)iI@0(FMzFM5GXN>-y_Fmps zp$BKGu6kY+#*d{568VLpDx?oxmQNc`mm*R|MK&AXxvcfZt1z^G&FGAx_uFa{#YZOl zA7X4(+3^5Sv0^6(7R=F7LX1X6>b1`q&GMD9u>%Fi#zwm7Qo;V9;RnyuwK}Gk@HH{a z*LNzHMr?bz(^3v`*Ry>x(@VTPxUyHjE^zop!NHhBW?!fZl0xOU&%Y>SEqDh$DiPSc zI~{SE!9^<|C3efb#N{0C{}Bf_kuuBP{Udg)SYQ?`cm+P%nld!~+bo~i0P<(~##Pz$ z&7GOA^X{YpcK3KSL+#akby%Knq}Se8w@e%VAAclxuiv|lX$KCnyt z?S|Z*Ut&n-aUTN%cCG}I9^P?n{{7y1infU=llP))ABGFkDpfog&yds|Fm`UX-k-0B zva55<);*;U05(9w`0v8fooEay!woy06G`Bi0Bh8!>h0Yo!U~C<%bW$!U!N6JqJJx4fbw1ry*3uSp#h>Ff2B{decg z2302aql&~l!d}Ch!$;@`hPe3Q&rUv+TGB7lc%OvW+T>kdPslQqjeNEi6AIYb(Mz|X zc>P7S`tntkXoKOndS+gp*9mfd z2HD8@Dpc|?JpY00hr5_z8#p40fmMB}H2-=oMYc@2*0xl6DyomZq3OKOYGQ78EXI`T zx-5A+UyCo4`tsR$1{lz}HogpYlo1zovg`i}_-SrGi1P%%3`XzWVBB&Rw>1=ORp~q(^(L3^JB8dH z)z9xi)$TD%eZA=+kmSzx>CvUt!~IXuPn*uC)7&)tJ`M(0wmlym)?RM2TV6;Ij8)0c z^4V!5&E4m0hw)7D&@{R@aSXB)CQ7~EaWdRik`ljP#~jtAp{9+Q5{w622OoVU|LHZJ zcz-@pnIHU6X`bf)v9H#9FR|7$GHU)5@vjjkZ>5{kHubqpdC!LhZ7bi ztUdCIfaH3>G$6S;hUG=`H0?BduRxucG>t24LAY?cuY;-ERW^_DZ?+1_@j+*YG0m`S zmv0@Vi>`VF+y=236fVsybM*^18rGSA>J|9YAI|Yv=m61Np`B~^db;w5%OM-r9>q`% z>Y%IRF@;K>f>;UqYaow#mFm-+Fo%M3=4W`1p{3+b&faHuf0fM82A#nncs%s=!_U?i z>VB86kO40ap_S1p6cI0Y@>S~FG=)H1C$WBH25hQQE$p;@c7x)q^KWkjtQ>EqxtlTq zHCD%z%;y9t9roo~tY1(;T@<-UDE(v4>dpHCGi z=qy(bTK^#>ZB4Zt7JfR@(fXG^YH=L=;0