From cf32ccd0726a262fe1d2b6dc85ef367558703fda Mon Sep 17 00:00:00 2001 From: Brian Wolff Date: Thu, 23 Jun 2011 23:25:49 +0000 Subject: [PATCH] Per CR on r86169, start adding unit tests for metadata extraction. This is just some initial tests that really only cover png's. I plan to add more soon. Also well I'm here, fix the svn prop on broken_exif_date.jpg from r90421. --- tests/phpunit/includes/media/1bit-png.png | Bin 0 -> 167 bytes ...imated_PNG_example_bouncing_beach_ball.png | Bin 0 -> 72209 bytes .../media/BitmapMetadataHandlerTest.php | 27 ++++ .../media/PNGMetadataExtractorTest.php | 138 ++++++++++++++++++ .../includes/media/Png-native-test.png | Bin 0 -> 4665 bytes tests/phpunit/includes/media/README | 12 ++ .../media/Xmp-exif-multilingual_test.jpg | Bin 0 -> 12544 bytes .../includes/media/greyscale-na-png.png | Bin 0 -> 365 bytes .../phpunit/includes/media/greyscale-png.png | Bin 0 -> 415 bytes tests/phpunit/includes/media/rgb-na-png.png | Bin 0 -> 593 bytes tests/phpunit/includes/media/rgb-png.png | Bin 0 -> 663 bytes 11 files changed, 177 insertions(+) create mode 100644 tests/phpunit/includes/media/1bit-png.png create mode 100644 tests/phpunit/includes/media/Animated_PNG_example_bouncing_beach_ball.png create mode 100644 tests/phpunit/includes/media/BitmapMetadataHandlerTest.php create mode 100644 tests/phpunit/includes/media/PNGMetadataExtractorTest.php create mode 100644 tests/phpunit/includes/media/Png-native-test.png create mode 100644 tests/phpunit/includes/media/Xmp-exif-multilingual_test.jpg create mode 100644 tests/phpunit/includes/media/greyscale-na-png.png create mode 100644 tests/phpunit/includes/media/greyscale-png.png create mode 100644 tests/phpunit/includes/media/rgb-na-png.png create mode 100644 tests/phpunit/includes/media/rgb-png.png diff --git a/tests/phpunit/includes/media/1bit-png.png b/tests/phpunit/includes/media/1bit-png.png new file mode 100644 index 0000000000000000000000000000000000000000..254e403a2376ea8c1c425824f3d07a5b5feccbed GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_{3?x-PN__%SjKx9jP7LeL$-D$|*aCb)T>t<7 z4`hZOx?BgO{5@S9LnJOICrD^5=<9F)%Q#`(^T!kaGc1|>yHbaxp(M$^pV7l^<92mM z7xnMoRGOZ=t~}T9(rVrumI+NP7P-j`OLY~t^!#DwI9r!+pq7*22!qJc1Aomy&S3C# L^>bP0l+XkKt3x^( literal 0 HcmV?d00001 diff --git a/tests/phpunit/includes/media/Animated_PNG_example_bouncing_beach_ball.png b/tests/phpunit/includes/media/Animated_PNG_example_bouncing_beach_ball.png new file mode 100644 index 0000000000000000000000000000000000000000..c2f45d900bab6e37d416ef3a94202ae786c426a8 GIT binary patch literal 72209 zcmbrFV{m4{*WjN#v7LEh+nCt4ZQHhOV`9$4$;7s8PppZZ2{-?DcdPcp`(=0gR-?LZ zpWC$zDmcvG}W&P#>hlf_N&JD$^bn2 zoB!N|WBxz;{?qke1OC(auOtJ00tVJD%T5dcpw~!=3aNVLT;%%1>aFNq3D^kCm`roA znj{eJOY99g;dV@eQ@Y~<>(?WT?$K%%ag`uagQbk7Rcl%hRSoF`EF!+_q}pl9{-%(>?brGoAFqo;ao*=8k`=xJ?g)n zcP+n6I&?j1k1)*&f+Mp1zZLi4B^C0$*=j%U7C0KUue$l7wRzH_*@00m+M>}~CfVXkWSSAQ0I82ckoEavQ zv@Tld0!wGPpBtyA+b=SL71IMA^Bcg?=jWeS4lUdN#?);#3cb6qO3F#1F^phH2qKrm zi)Kx=gz_vR4_Eb_=af8*C;b#;6+eMCh=(&%np1J&dzW&tkaHrth>P~B9mF~cwvkqg+Mx8R3 z>>@}m19Lj3M*vS%#t0)K2_)K6l!h5Fv;hqZ5Ic{^h}}H9s2$%qSIZDxZQrvd@N#}^ z=KC_`NVYVY%*#hi4N!Od@eB655}2Ce$TvQo)&LP)CXq!m*(Q+@h+|Nv-cpbpv_XR* zp+ak>lEj(34ou_g&c58#s^@MmX?qCrd)~bVJVs585Uf`ot5vU&UARiF+wI9`n;L}R zB150A?zZlR$9DNJ-tuj`MC00X%Ku~q*Zf@-5-BXYn`2n5hyk^or^5@1i9{S=3aB0J zV6=Qsb5PAb!>pzyBINcQ`RQNichg6&CxHgB_$3%keD!qa60fY=FOvvF0mBU;luh(& z!5Y$b+du04RiVyg1cD@HaxzvCgISyB#Sa|Ro6dwVZ6zxEOZ8FT#QwEsnvYA%?ZXHk zY;CnQ;B7zK{L@SUISn9{>^WoE6uC}+9*%VL8WD9i0MSP!9ao?VU;38{voIBici}!P z$B}C~lSeuFTPBCEBaIi@CL=J@%td}*H!spr^Q`t$YDf%FMM@;_5pOrMedV1C5gAmX zPifB{r7aRVMe(k)fv~kq0V6IA!d0{el`0DsrVb?tv5{~+cxQNY?r+%sdBgarz>%4S zt@Rj>NhIdw=TY1QEpnXq)?zIK7F>Z2xX#-p{CE8+%V39m4GSj5vSaA>l>=v_Zw1Z^y6KH_j$*lKH&3sWf08lga;rr`_6eTLqi*?d9ERq$IY zge=%GN*fGax)T?Pm=#VExn??1AmK}4t;>quC+_yXHV?(4<77hj1DC&@8j`6<@l6z; zyZXOf9j>(!3}uWQoP|Y!bkv{Nvm&Ob$onLYU`cnq6Op>2rbtO*qTZ4BP7I9Iz1nf9 z4Vq7XUghk&9^mN^u`b9k0SqdKg7ez+_wzmRPERm$jNXBc&u=l{7ym%=YO7_b z!kJp0s%6gQW?h1+8=K^PiT0a*LS3gUz$~%Pt#14C=&@WHOdUm zPH;Hi_cB#r3F8&`M!=PZ3V-uux8CWter^(J7*vW^rj{OxgqTnv8wSOW&9y5i-H+ah zH7;v*ED9v56&l8xJYC-Le!c}b9!;9(u$onDI;NQ^Q==Hl4(?zn1J4vG0tI_vsE8H8 zh%DJYah91AzPTNird52ak5Izk$HUGtF+Cvn?jj#a^#7Wh6{C!3tP5n3%4U>NiDP8FA)X}| zJryZL_~G@$4Hf}+dl-63IPX>RG2bmO23BK8e_>;lCNTs~{Lp~!?J5I-z#P%c63rda zt*&~O4yHFq>qrPA44EgFD?B2D(q~3Ziy{p;=e>Jy3%K0GDmg>3OWG7k>KAsx&g|ca zmHxMNw{ny9liRf;(Jb+p)+i5N>u8h(xj(`kTRa{6#ZM#;w+ge_-mgto?J4VPLi20- zNp|zLNS`^%VB-ivEMYijVE+6v^l@nT6MT$0fe%NDz7vg}kEWBqra;kjUJMwJ6HLD+ z=dOHEy7Ed_SWUA^H@>@e{1_73&g97ET38@eKMPCf%POj1DaVLxnvq+vzWNtNq=;B5 z=w{>iP7P!D0ML%23%R}v>!zd_4sx1Iz8*YB$zafICgW1yKnqVaOZVRnIe9{S?~bT% z)ttSsj=iyqP_8qRvAbL>w+N^lXDNU4lf>}*^eG-ahaw^bnj7ttz(l6Z=RCntO2YOJ zpwuDFA?@Q)x{WU!8^1J!yDJvJBbTkPP8@ah4~+h9vN`#E{_^Q^xjB&*H*bUwKy7Qw zCc7;>L~kIiJ4GmIuBuV*tD_|vTftE^=|m_V~WbT1Hq*H z$KQv^AFdEW6aN1u`f?q|6bqM!+N<1O`y76jpCb+6D5+9zUbFP^p+h_XFsXy7L?OW- z3WC$fVj`c&bozfIX#_j38^VjU&ssF-8O9P!F%@qt(b4Iyi9+;sGy2`cpkH;Q|Lgui z^MnF8Msgi+yzxg>B5M7E!jeyF(h%tqiFt)+rgjLwNwU5Rr}Lu^6Dr$AwyZv@&lIw& z-?0#R64stCM!Jm#W&8QHLON%_I%EM! z2UNwLDO=nCtiK$W;O;&Dz(Y6axmrJZSZaz71iUSN!VPGAFd&4GMOza{qM$aK!`O2} z;<5%imZoEBct_mj?NvP?=`<5ktZ?4ZG$jK1rY-&rb2zlId-?cjTL=RD|61&x6G8_? z4=`zk7Xc;e9uRan4k^85qV5E9oCqRs1Z)1HP8b0D?Pl%{2K_tpt8lADhya9MfU*y? z7db#_zq6JC#2AV7K89^)Xo>&*NoA#T=WQ;TbY#sduR*}eyMq(OpVVb)ltAQe^rC=p zc%RxIlLdjxVwUcOb0KA2&gSyqU7%Zx7dJ;-^SNT=x%YDey%2;>>S_}rnV0L@fpd|% z*4?FAR2UW*co_QD-t6j-K|vP+_V@32?+~)8>DFV+8->QPCa{> zqoxHrk+2OFhht#RJkv&)pxTZTFA?X&wU7@oW@Lv@{})Y@gSZ1U5gflW%+Vh();JFK z4U?cGeuVtM6oVkrG5jbLC0LYeLZZj6+B(--R8`h0|`ZRj-#*Z17+t&7u5+&5M@{qN6p(&ISF zAE3wr3E#V!Iv3-MAR?uSP-AmQ*Zl~zGrogkAyft)KvfMLEQff17mH$Yxm&;!_+3*_ z#Y!aLMI?93E~+Gru@sod)KvGnA4k^UfNHqg!HWZA3PlQeQ<7`v@w>>M-2D*H%d zsH)Q1cnT}e?{`W+y?VCX4yIiB{^q9S>XZSkL>f&}qz%==C($@mrDuYj25mm16U*$+ zn#PdjR^Psm_Q zBZ-V$nY;%U^gRdkf*PS>hb@tT)pLHI`X$>lzn;EVkIo9SYI8LH-P!E^lSGQHV6ee! zpr^*z3`Hc@a&E~E508i&j(7#|@Qw3~2;($EjCf`tNunST13w8=d~NC~l!rl&yA&&# zH_?UTwi35!JuXbUMIU4oeSPe*a5dheWnCfas4aH`95^moipCLHo^Z-bCR3dAz;z%h zB@3Q^E0%FCbpf1c!wISa%7KW=&vkxM4V4RKIzQntEOVK7Do-ESYfk~-U%9E2-7X(kQ7OP#aim#qS`zhl=gY}gWMiZh+@Mw{joM7~U7}>%|$oG`CCcTj|4fJ)^)RONk$%q3D=&ieee|nLl@}ZbQCkh(auFw zBrt~d)3f#*nb{Lo?BKEGX*%E3%?}N{PiY!}E1H<#UYvI9HdsJeJmqZ>EM5bnuq@F_urb6$c1N8 zq2t7bYoQ;!+fK(HBvm5!GpT}!PLj-st#Hx{Fyh2R{Ch?g7sU&Z?$O^Swxw06QI6Yb zqQmX*R*a76N(yW|fpUi$5p1;|Td!Gr#Ssj2gp{zZ9kZv;bz9*?k*Dr_Io|j=F(88Q zA{ZDE5RNj{VXc6Rd8est>a&>x-xs|lcSt@TtVIdHeiK2jNXS2<&cXmF6_Wf`^x<$-` zJU#+1H^WE*%=Lt^lnRWA)+7Oed-7&%%Vo2R6^y;6ZDkXW4F}*dIpvj*nH?jwkVeo@ z+kB)*BMPBi9k`~InX@_Md{tnq23MjUquaxnei4p%;r#7VO}9~kyyQe?>ew`Q{Ylinkn=!w&b2n^fe%6$-jh9aND!K3( z4DcBbmN2Xpbk2%{m4zo77#MK=c;lLDr`FC-HfK#rp+rA@K$A)qjVDw%xXb?xB!f*R z8@<18yTz6ZlA!ftROU(?8{=v9IF7NVi)N}kU#2qNhHv2Y+JPD#IqL=1K^s(?_VW8; zHk&f0JJIhz4iEp$;ny3go6h(~UCd>VdC-!1M1MIa9po81o%f@cV6wj=q@T+EF> zMOVQigL#62w>$R^259qFMD?A>uSYBYye3I3|M~k}nHlg~`tSD+_FHitei;GSXYFmB zly|qA{H`iWqHDeIqHdGRWx~Xu<*W~Mm+o{0UPl$hFOK)W`5xF;`@i9P!~&ZS003H@ zxv9{92qEx`@#T2Mk`MWf2rP}9c})5^n7g}MAiHPqb;8q);2^Bhv9As$(+49Lg*^*L zg*aj)uSVI9D20NNE8j-kLB}7!kZ2`|9gK2H)0M0e4~MVrI)@MRIy1tb_gzk&Px8E0 zR2Y1mJRNDe$JHCX689wBXV`;3dnmHg2TT}tCbNF@uq=hvRD0-X1oGHvawTKm0!w`Qpm1VcsrPnhwfkub~J z$%7~()LZt#9rz2@Zc#-jHs7W)8KmZ6bgC~eBoh93@yV8YeY@3!QciS359q!qet52_ z6en0~wG!Q3IeTux5%}ZJz?xzKj=9$=U-><%2~67}IMhhGrP8X2v!)F5=zl^2_ukGJ+?`|Y(0&mrls{u8ROdge~=xTDhV z!?nMPRIy8e?RxoHSv0Jy-}U{yg1_l&4s7byQ;JW%`DPSLY=|mB+jM{yhBDc;Tcj4S zoHnzpS_UQtt_caoJ2w3`J6Y>exA{K%89&wzK6F|*R5%>*g0B?&cPkc<&kIQjz%y9z-x-Kk>E&9kQ_-T zRd2H%9XGULb&vGI+{Vu-Tz0zeE%C_P>|+E9qbUATzo}H~)J9}gqHOhz6}Cbs9agf2 zl#VM>g)D`mI^6N<9~4blPzcCdkblLNmUG$ZCEKbAVg6#jnR!G|Ht0kQxcho}Ww(f& zrY<$%L8zkdyQd~Ix@E=2VAo<)7%|VJq|ZyJoz`jB{WzpNf2qEQE2DExOQ+&MM+XX1 z!<%mDOH!qA+phi2u-o{^`1g+j8p*a-d*cl2EU#2En`j=p!F`{?=JRUXr5dt#j0YS* znDutw!jNG;MLdxR-WnfLi~(m^tD3qEEzK1eqs-3)th(@u+}^l)oTo}1x7})ISkd?S zreW}&pi0v~bx0?ZQR?QHlT~T>gw3Va2W*4?LJsBYUX?f+n4-V`p4y4oq%sfY1<@+M zDZ>p?VFK+8kvt(SfvAZ9YH6#~zb)7?7sF!Tx_XcKJ!n%>W*%y)y!TAi3R39>-yP)5 z*AgTygBK@w95_eT3{F1N{fVS9JxtmIP*k?&A=?GvGoj0Zz`sBno~S95CBRO!JyMiU z1|`bJ4zfyr>nJ7vjbpiHtKnW6p33bxipqL{6{D zj&%M%s7^~Xp2!)Hl;N{6pve={bO%}(%)}ZF)!Yy}L$N_z4sKGc9MbhVe9Fr7L_&=j z-BT0eCcVx=KGY)A&-+%Z>R!vdj1V(coG*1bb9Fp4|m-`=lOA^-S0 z2}S#tS~`qs2?{PS0!Gt@nL_9+lMQjMT@J71OU)kEj2-I~Ig>@H4%4PT(7Sqp_1JQA zs)gSq6l2zLu1fZWblRGyNJ=fyJ1k!iSA_fqhcpfpSA=8x;lr1)HX`0?w4uaaeGcdo zo*CB;Yl1Riv-*)(hU&CQ9L-GzTT-4_wx)j8tu?>++kOk-XWk2w&!cUh_SQt&;$3A@ z4kVbz<~qa@o{%xTbfNdVepm>2r0HYpzT-Q(T6g;m({Ub9+AES1-cH0Iku%;KXuAB3 zT#8PL1b&xo%66mqo9E*i_i(0fWs$^mT)PqpY;zZIO-HmbNR+ACD#?k2mY%>1Vo&x97MExA#y=bmuAElDBMW__H)BIk>5-H*%9S z(_gr$uX{)nxtuTq*;g~eEnjQF$^mz#53x-L6O;srJQiA4P->yoYQ#ripKyIn8%-qp ztJOOTWMpaC@;x`60^!xT#FZPinWMWBqe@SQ>vk{3=YydKXKYJEuv|}vm$4fFQI)_( zm&1anjzUUAv`)fDEUH7MXAPANvaQIPBS7XD=k@6&wk}B}qlkaeH#%`;A=a)Ab>|T} z8`?#;!9O}`_P@E_1y|uxA0g^w?ld;`^<9YRHUQmpvee-2&lm0uhZgFikjiEByubv@Xq-=GhmmC!2q*o1%mO@N02P{@kLAKb4o{uNN8~jz9d5{f zW3llBa49ruv@eN)Bz#wOSe35?#!OMeB{=wHC!FMn=&q@8FIbI*e=RGl!3g-{`$@71>z{EuF(U4<}4MzkK#rn6p^%*O0>;8d@+bxKx-?*~zAn9GOD z+?5ik$m5c$5V^661)Kd6MhM?lr5Mg(v5ABLHEpX->mKd)EPvaZeE92FboJo39vs8wT?Ta zhViGKRI0N?xE%K&^R)kOaMb;wO%Z8!S) zP32Zp!D0{*m_&#PSQ@zkpCnu&MDW@hUaCW&ga2^})-EE;PVjx(5%9Vj!X=}36Jmn9 znsTuJgs#dH(66&&aOpqM@Q>n}9o3Xt!#;HB3fcje%%-nAq@=)@2;xdjk|5~#1NxF6 zaxKy!v?Yn?in{NVM~J=m4a62rG_pBNx1$5P612nG6uI7;*{zXh(E7mi#D%#nSLtm7 z=|@*1p!v0*&s% zGzYO_2#6i~6ZQGKc1Y$d!TEFMGuz-JGG!P5ck6RJK#Qx_5_;C&YEO(_yg1Bv2&l?7 zNMFAa3vPz7&y<2IFlJ?_f(rC|6@9?qRZUPI>urX!$9oo|m5?WaGUsXb=I7OLyiRPtaJz zy_Fm{)4n+B*4Moc@vJsdAwnTgvEnu%%Yt}Du|g6*TG5M55WU-2@`BV#i|A!D{M#M2 zyH8A0?;b|I^wskP%K!O$*wu5U3!=`@?!`^_b{O>HstLmKj^1;!PvBI)e{Eh)jb#Nw z8N99~N;Tqb4BYdx@t`?7aX!!uTd^1-n_~s;%vMXntGs)8!ib=!Wa({KZdx?G2VGwL^3N|iovUxA5V0l_IH1j;1Y6~FrK z@ctUF;)U93EkUwv)s$|yS+c>k))cMj=4kG58cw==|2<5-lBaPQ99c&KBR(%&2u!_k z{{Ss>NfP%y`M^CBg`t;&k?kY}f2*U;Jf<0C#y!exknO;=OmqyfdV7Lez4_yDTiq!yxEt%sBBu8Adta zcSAqs4q^U-b7B+AIEFOdRbLdH>17fOzVygMH2N+%si^Pf@n_2f2YXYfMwu5is?nmT zsS|4(Xr&~gL@>P|LX!erBqzKC&gDqcxSoBgqF;l%1GwJbI3E!Y$H+B=Qlp2SG_3Vb zl>gk)c)~e0^sSS({1Q&2{|B*(Nw7C@m1iUdTM&4a5yW6*dEs0H)vR=WZ$&75fk!|Jc?#*7@A)w zV#dHc=w=88pl)dQI4*L=K1(duFp{o~h(~Et*>LE9AA2*4qq|~cZk}8$p#UC#Kdm

!}%T|2kfuIN|}hC%wH><9TTdi$E%=I7^AhUMiznkAY>ZMEN}^NKWaz{E28 z0x7(fUn_-c5SGRW7%_=oks1inO|$D3*47pZbvSE3o{k(YT}He8P8z0ZRvVHjTc7jG z3XvEc0`v8CiAey!}%K0tkQ_@z<}T=WsY@}ST!2AefBEdi!7l}Q%Q6{uP#lJURi zH5>=+vnh@r){jgVZRyADvyHyYGOxjC_#g1LJQ47)yJvlxy^5^aR#%;Bueptm`w-@& zsEdsysf;_nkLJ8hx0xu@(F9=vX(82NRWr2eHPeje((E~~l73^rk!b5!u{X8WFe)9y zD9gc$(C5a}Ch$7{;JurKL>sB+lqWONJg*L@gFPRUOYI~?ICaHoKWN(eBNq*^im>S@ zkxiKpdfsY9?w1gV**l(xkDPJil$pm5Tr6KfPbNDUO|p_E&&)%j!q_?esd0N!{B7Pc z@a)H*e?Nmzp8abKvL^Hr-(Rm3@^a~*{DhY0aTy_+dz8fjNP}_R7|rDv%Nofxk5ROo zmQ4q)@F0d^1|qG$+gPmIwcbrP$;!R6ySVJUMg*#LHKJxc;U8z?QYL|E#@9)(tGRRQ za5FZrBMjZ!IV&$yMyYDiz8t^ekH4XepYav9*Xjqh>rF?n z0T%b&>5V4P=lZwV_%g~5D;E512Pd}Md3Nub7Q9eRLlLm5F{86{hcQ1T9GU4 z3#aokT{7OgG8y8!>#uH70()rjGhKj97vxQ!EAma3nW!4qt9mCa`|&7zOsQ*7|%|vMXmJH7f~Z>d#+GQvUyKx%r+2~zSRwZsCF0@bwj3RRFI?Sq1h%o3rR+C1SeOz|){az$zwa4TV^ zGh<=dKl=Ng9Dnq-w_bl7d)<#r)?9Q-TIQ}r{%e%D>tsF7xyo}n%JDHTEcyRR2Wl}? z+`t~HZ1%0TttaGjx17I`%N0f&-Lu@)lGyjDI1DsRzuOz{yGC}-gyx+5xH_#vV-o`G z4Zf^TyCv&8yKaZ8o6hA(v$a5Bo4C|uD(OHB6SP<<#fl6vsW(%MApw{HRu2#Ed_G-Q zZhrz?y~x$JI~hVNHg~_qErN~;^*g)mmK)xneHhyf08}Z4RYl}}DpM>r0?8g{eSDeHL~b+1gK)y4!QIU+#D{} z>DybF0VCiW#+SwVo7`yJpuhpM?>QGL~Y z_$0w?;IC((lgF%Dq1Ne+Te~%E)snO!{;Sgkp_V%yWgn&G$Dpm!7LDShBYoCo)qZTSTiCymhDdB`;B)jl z!NC8~hl8yC0w=@*A@6E``K)yc%Dq_V?U5pGLITAYVq!fOWdp?+UQq}J%rZ1Fa4<8} z+HJH(?`P}d`s;NkC6}8ux|8mNS;?79HM-#{dzrstIpK#)Jy*R@=%nrEQt_4Zw5@y4 z!;TkccYvZL19@z>J_<)dTD zTWbcfGug;5-a>zsdb@*$$D?hiZiwmS5?HMx@cMD4Vgw*;UTQHr~*SJvEkvHo*$=GDI@To6NA7^+v6p zDSV)jeo&%mB_gv#9PVAxnE475bzsYe_mY|m1nbQ#rGB1`6FY>&&^7z_QLR#(?eMlK z`fg;?5nC73);tk_2im`~-x`~nz|G-4a~xPrtf&OQ4w`O%5D(uomBlP?=?>CJyCwaW z_~9P4Phhl4F2yEgEQuz9XT!^A>iZ^@=WUHHWJqcjnTjec1}r<;JxMCM9i;v{45(fX z;=rbv*3)q~!d>B)+;l#@{1rqw8!sp`)S?%2XyW$aIYaZ>0tvHw+&2KiH4(IlTSlWM zoo6G92QT_1f$@-tRsvBfC>@d-&bAaAkHqPDt$*2eOk_kg$310I`h<~183tExcl=$O zGSWV#Aw})lHgu7QE_Cd#O2}@j-Sg@`J->7F!0Tfzi6|y9Uaydi;&_2-bSkVA8v2OH zo@R1cV%b3{DJ{9xk1(>i*!aiQo=^YFo=@vk>08Zm_aH6hDwOJ*rg+p`xjKktEJT}x zIGMIas`JB*AW1g~Y> zT}s4y=YqijUx#|R8iICAr!|^a)Tl6?2!>U^B6@f<(6G<*$ofi9nTAkZc7x2g>5fX zX{Holi0SsA28m^JCh`KBw2+0tX|^e6B7&SV5wm$6D}-m4Vxus!aEho>P$9HVK}h66 zj{3ufi7X&8uTh*kb=s0`2XZ6OA1IgKzj&!tBU1%Vz5et)X{xs)BDfASPqAitL#!LB zGKgWvE`rKkuyN+;GF6!sktl)rSNY|?=b1H)VoR6ASXfY#{RL9yt}KiYi4Bd7&%a!8 z0nbm6=2ABzl*76Wdz?2uadZ8aOz``&+P$i1i8dq{6f@obn=sJna5{pu7vrRLou|Z2#Jot2g(iADic#{LOkp zk0$3UgabchQJTZ*Ap6HN`p1oP-D(>CG_!!Jndb{ig=NB`$!U^M$k_IY?JyM;z$-)t z=Z3x~Gb1@Z7!Y!?=seGkg`)ro@gClXZ=}U8>Mm%SFO0mPF7t z6eEgTH7;f)sun6oMU%70Cn;ggGxbTS;G`GXQ{xOPHXz2W-*0{4-Go1CihGR4AuwRi zy|t}1E`x3<)$uArzjf&*`u?~>)jwHPp&|yygk^Sy9$dtw!&PH&&yA9ak+YVGu_vMgK3xHB4B{93s?FL~nWAG{mtR z3fiQ>D#4{4sHy+Z&|(bLNfY(?NG9C&I7y~FGpp+h1rY5#GWIUCi0GpB5C6sstwT*0 zj&(OQ#T0+t$*gkC>}*%I?y~a|vNif8&o_NKw|%te5%3aSa$;788g}4&?flD+K)web z?TRa+8p7J|SGZzapG@z(X)c!FMuDy5*7?4b+^*d#Gk06cp+mqiru?LgIXJx5er_?- z10_lqe)^NJV!&yBlS-y1#t(zAuzYim_%^0 zA!464q`cr2=cZe1Rl;Y*t{T}vbMEXW{MN;+L;oz~gKv)~j^)to-;ixEKj6o|16qPD zgG5AzgJrB|j{ZHQ6ZO0RL!ls^Kxw#UC>gU0XhCZs?I2f~oOiU$$^LH{`g3HRvh2SS zx2t*&ggE&iZ`(=>)@Sk>zurt-@trF}CTJ8=E$pJ05BTJ7Zt;ylYVk9{R*<;G04ioh zWXJp+<=aMcJ)NO17)3^*TOVhtvL$4JQn~P>&>*b8zaqpb(oKX*yj`J1%(VXO}DZdaEfT97ze_tMUu%7m=rS}#Rxtw{cko` zX8!w~BEOA7J^xVZA9KoNsL_1y?Q6DKC7oDZNEq-0%A5Clsk4$S{lhFJ8#FBy9UA4# zKp!0JYZ#RLh1$@iy+Ge|*1fj2c1f;qAX6}#@3?aP&Qr$Am|1r*x9aqlGd`|spG?;e z=cj$p0-(2fcTMRrQ43bcJm8-sPGxcqzLj3nR4OMSZV<@Xc7$*6Lp%Hc?}^?A)}%~z4o_w5w6Ceyc4x3bI)ade zkrvx^8!EG}6r@xlq=$%MZ1E_EoXDE>gka!DQ188iiAHP8wG1c6Ij<*ZzcyOrA92Hx zPzF5lF`Hut5?l>#p=UA;j++ zYNvq$QIv;kDxl@I(2w!g*jm=1CR`?|CM0uqewE2Kfx_*J*@U?0XSZ#a(#= za5`h4eQ~AwCs$cJ&5Q$&tEUETC6lY%Wzgy_ASRr#5d;s4zkGp`<-b-Mq}-Jbh|T)Z z70yZIvIAED{#;+DHS!#DnnU6K-m1U)rGGDKayKpA3OXfT z9}`o(n;sSuHnhNSIi7CN?LjxZdvV(X>2i=n8}D%zsq-+x6f8NPx)HYo}A<2+_W5aq9`ZUk0rjTNPOS7Z0DZ*I)|Z3ufgm;Q1p>hy@CECvQj zLlXH2jkuk)UUJ#;^!^6+P8jIGD8kWAh(!jPjFfTtxDyIPELt-Q5dogWhP4^^!sJtR zw7HAi(F({i&QHP0%$d zNu`i0MK!jZXJf7-4ZQlsp4NEnFFB7m@S<5wayvTMMWCYhJOKUTYYF)yV7W-&V{AQ^ zVr?RC3Vs>Pd-2S#w{ZL0b9doN<&M{vM^6w2{9cjftmVrzuf1C}ftE}rsIjT5!kiA^ z_-vllD2C6MZpYZnm5+b7IMnuCQblnn z9jsU5IdV(s?|{1tjp-G-6ykcq~^9&kg>^4ZyQ0( zzd0QJ3XnnTc2Yml!I7j$uKlLIEGUDI+o`u5Xb$H~U3ZO{GXQh$G|I;1+^H(!o5}9L zHLf6x?|u~HAkTWsYJP0qIDslHX6ltlai21e(Or@8sZOtK#<|uiblw=aX|2@jKV}}n zcQrDpY*L9w=jUtx^mKM`8L#~wh*dg)iu}EQRU&kBaOWy(9H=Ptw*_w;Y z$z=)(3Pb1QFb_ERdTapzi0i@Cx1 zGhIUiEe?{yD6A{4?kJ9UuhH32Hpgf1%{!7r{5gkXzilJhjjcYpFvB3sb8Mgjc*M%S z0BZ_8a_wjK1U7g+7{8sM?XPlv^8ZR1!Jm-74wyJ}=gGPM4;BOY-?JEE6F+kR044W- zu^6cT8EvGe@fB@!Y=5=YG97Et8O!&`IViPHOcf<2B8d?$Rs{1)`MWrE32ezHhGMiZ zZCZseXMk#{^{K!cWT`QAnzmf&{5*;D(x8<{NV2RjvAZNw{Jxp(jI8+){Zm&*PHDjA zllcUvlk(70>1KlKQJ&8X%NLP(&AnhqO!>c0cb}L^ZeaSzP3yZ!+80|K9hcKB+Uicw zC%{oSO%N%ra`?9r+nJG@u}>}Cw>_1>vG&P~iEQ!2`udq|&D!l3p6;uF0#%wTm#t(w zEvQ+l(j;XxF;s1t*eGTS;j=_CE&V8xchjE@*H1Aq0dFe^t(@SDql1GhmzAnWzU}I` z9fiu&+CxQg$6B07tL*oXQfOirL#`dnLbK%2B(bn_+@fa;(r%GO!~ck2x|>^{|B(hx zH=FCQ)&{KxlBf{O zLMU_AZdzJaPjsar%6h5R#i|kZEnXFCwr}<*zNg#2YmUvoqK!J-xA|O-Yg~G~igmGu zl2A9j@qg;?Pfqbj{^`c8rVZUinL1*cm~g|w61QYObLCDZinL-!|1rftON*bLu>nfa zj#LJdhLl{Rh|m7L6y39F{k~?=P;=#-Qw3iK`>L?*cNRlv$=lF@V-x+r9cGRBQ-1)P zz$w>STfWSOfQxzB9-}g8k5tnefVz1VZZJ8ktj4_8H)OQb$b7AvSBh%ilG)k zv!3Jl;R%=tf5*?QkBJ0Ry&Hb_Wk}5kPUi_Z8IQ)I`eYUi-UQ+5a2~c$omvw_WTQVE zu>vf?b`Ar-#p|kwLw^}=i2ZdN%j1jrg1|X8wSG9;J)`5&LGB&WAnDjSP%)D@7@P^& zuw>|otkwJUyYj~gj}`|2A(4oX=lNsJN7kpup_es0_-bFhvULegzDe4`I`YL%L~|KN zIF@7(Bpgd53QLSPKb9g66L#g1nZr9J$H5nW+||3*fT>;0QjSs%(x$Y`B?zExN%Ffr(L3-`Y;gK8xlooh~=^8<)FkWQyE2U6N+o{VG#CKH&W4rhd~y z2_{+{*GQdhBWq3Q8z4YC+TyM}F_Y(?6pL9yN5dp>E3W|{U4sBHOccGD@(${0NIO#V zVA{GaQ+Ei+0wZH7`=LgK7R2R5(qfWpx22o)_<1isCw~Cze!m?9Uflz(6Ob^c(_W7& zE1Ss*X^qnZXpK*X{fk=yF%7{u!8-$)kD1I-O>hKpO}IhmK&Kfr<3@Qv>&MG~4i0X! zaKH4Yo1q%-a*TQ&WwjBBbaz|Gj&z|CVGaTWss}RoHHW*I1<$aC*_e;WW3_rS??5h4 zCi>_2j0F!sZN_3Z^wJ-a*afQ4)E!;*z{c>44V_J|V-FBM-yH7A%10&h6mjdTpH{O( znO^!;fbGoeqYeQcEuV?pC<<<7WxKD9cWUkC_r9oH{+`Sy&yi+!F^*jPhmmO4@r~h3 zsA0Bc*f}C8Z8E78Dr>ZG#J$z3cB*-pBqr_`Afsj%T5r01Tcx?S=q zcZqt(uDc1|>juxCp@7YM&N53ECj;yY9gt2z+CdL~_RM>0|8b2K6Bmw=R^MMvBLM}O!Y;KTQ6m^i9FJN75sGcHP`CE82*_^K5 zgH@hSjqp#E^9*VIicXDSS!g#Cv~ssl*vb<%yG+B)CE!5~^Uqns#@dvZd&`bwvh` zR!5@_=HY*Soc#G}*`_p-$&EArK0csB>v)6WET5UYC=eH+jOIzBRZ;Ai=84FN5Gj-z zV<#52SQNTW3Uy#f?SF@Xvcn`TTTIq3LaC%XXl7JYE5ja#ViNch)qDhxbSUA+n;m+# zn)fUF47tD0(q`JpDVB$U%2(pY1&f%KP0$dd`Xs}mz9ZV*q!dglOmjA>V~AmWg=!qH>OqckL7`H05Y>5GDD;;_F2|7>t#IczVU zL-wybNx9*Bn&kLa>U&GK=^uhpefEX85zXxp_Ge7qP_|lN%9*32ae0?dGz-zA;K;ev ze^E*4Q7LVOa;oc|!1*sXaprj;#DG=&90X&v|T<;=jHm46q{?3yTD6j z)jWSJ3Ec5^Z8XDk%A-!GX+kF$b(KaPuJXa3YDpm%`}iofJK*EctH3KoiHf0NlaDgF zIZ+O#|A0%5F8&1)8Jc?zYw>%UlgNL0IRD!-90&uv9&7RXGakSlU&9lhVCS>i90L-F za@)e|hc?nWeMj!o_9#UZw~1x9ES-%KA3~#7qY+O{bTx@x-y=q+@8!NmQ4sj}L#w@{ zVHo)3g}cHcR{t1s+C$x7F#I2sy#;Jr0k^Fgj>FI-4Kp{)%ndU$Gqqu6W@d-EVPZsGmZbz9lbmAu0}IQmK@oVb95vh@3r?@-(Dw7Jv4mL8@yx(e_-q@iGPybN-^WVNIY5TX_!^1^CxKS^(*3aINE2t-X%MCCYUXq*UEj)Ii zI!H1nMFE)G_3H<});Vb3u1+ne)xazpCU*GZ1ZN?uAt6{S?d!OVi=T%F|Lf>nbx)#4 zEagkzf;PuaM)?z8y+Wa=ii&q_a*a!zwiDrzE~n4F4!$QxJZgj&iX!CoU6-yjOEoQu zskQ>?6aW349RKeKQy;-->S{-IoF`hwlxD=9=0$ym`-4!B*=yfZY8SfKMJn3 zIG8j+&YK&+D4|h_Tay5edGO8TdX9a@dEN|7KGDOvCqc#U#$`wca8Z{N;D=2mAV^I{z=P zJrBa2-3uP19#4o)2=@?Gs9z?uJy#JVC14KGdXJ#2kui`Ep)Q8{6=Th=(^ZzjUgg1< zmQa$w7nX$CR zpD6qX?dAQhXk~BTd>5+r$TF&nx=jDt9ODdZG&vD&|kY2V=J zoK)+Wzq8js4@DLMljN(3K6cU4f2^bHyS-hjRiX=(m1_z+I(jz4I;g#P1M7C)RC1p{ zG2#RJr^3Qd7 z?dzoUM<~+tPkj#-OjAe4aZF=LVH~$IXii3vzA)ooA_r;9qSD=}udOE+a9S*t2%!We z(#SMitmx0x3~I5@7&|!Br!}OVc%?xyg(8+t`{;K71rjuC8rB-TWSp@BXO?wqGMla^KxZS(=U+O9gCh#@l^|usa@#3~2rhlzGiO6*jMP+pV|VP- zR3Yg&M{XZ(Hh{9j+C{mG2OFzilqv0K#5ZVu_Cu?8irOEIT`pCtq5UgsCq_FeDtg1> zkJS?-F}1Z|C$Ltu3uoniM&N%IL5jccX}&4y_(2c|$28q+$AQAn7GkI2c>=yCD;S&M zkmjO~8MW`($uknx?T7Bas<%Js+xmS2W@RWr@Azeg#NTGAn84s6CI;LV_K3@mkl556 z`{+o!>jr8nR{{3PdH$JihlSTG{P0k()jpGwVpKJLQsXo!$$-(<=Qiv2DMnJ4O(`YS z%MlyUbD8`Jf+$x%ri zeqI8oKtHLeq61ARFxtm>ukgx@+$~~1vg|z)XV>a$yLmD>DI7~=@D?|+1j~{Xzsp1J zBn)1+o6%S@SUoqGK8N`_KR>d$UaTQBc6FuyI6r^AK9*Z*@qiUZ zMRr>GT)6MI)+$+sm4BL2r$5xw8RTi7`Wg-Gj3d-T@Vf3h(SMcjG{Q56K&iMF@OCxr zMg~te5+@+!wH4*bS`+Hw&EVcZ&|SednQ!tA9C;Y|oIvCCTdUjy=t8N4Wlo$$TF@mA!liK;wakHRq2NH!d*bvmb ze`8Pkg2YNwYgm-b&=JoS{syJ_#xk!CUbEzyMm1=Ct})GYoR;+kZ6^{7SlJNy@!#4R zu>W&AWAdRo4h#%M;J?}#fd3PaWQ#unYG*V&9S~f_Vi=HO{%pjTs-_b(=DvljGg%49 z!l>I^NI`-Q&n}DcZ)9GBu~TZ4qc0R%$B_J_hKG`014DWR?0oJEpbknJ@-#uN#{i#& zM^foB5-F51h6*oZ-C8;tSbIL}yf7$~QWqrGzSR>MaIDX(` zwt)8lis#56hxU#ZPws!$gkObY7dLIQnBTfLy`o5fMXV1a97duSX>KsHaJgUoI=mBg zvuId7n>*t^#3ttIF6SOQicF5;Wi>)^T~Bw7)Qs2hc)Sw%l~a$kI7}nmH4_HjHnSH zaP!%UtHv^Qe^!tfKh){wSjqCD*6HS%pHC`QluY<4(#3W5U5I3XgHa( zY$R3Et+X?-iz3!cHg~%5!@}BHJMs8x6uf+`5~H<;oEi?D?eV?NS3?kdH-35J^sBp) zD34Rsw`g}HXzKt*Ti zE@Zl|*=pJ=|E#^P8sp$IAzQ)M<2=( z0TGE_nGS|aKEaklhH^h%ng(AYU-jR6wM|+(2O5H=kYjmrw}Pq8@RQ%WEzpHO+j#>9 zICW*;@f4QZRI|bVPsj0)Wz{%AwoSG~+5C4|*e5;ih(iFaqJ)?wTX1=~z~cp;>2|jg zerY%WD&Xgtzc`stIbv**FnQFzsbsO^iAdiEt4)t=#lu5Sc*hn&`?#p@aWkIpHQ=w8 zx`zly3aLhUe3j~GvP=;z=6RJ5#_+2HPyoM_XoRLvH9(hP;QDt`3?52@$K4qQJnO<4 za*Q~Uu%Uwp6Gxn1jUv0>e2Q2zHpOj+2dvQA!iB+kS z0w9PnAQ6{NC9$(1o(Q*z-Z;+fhE`!__yf5N*4UnV)*I8t!sF3MvZj+xE-2=8$kk|P zySv1$LRq9Az$+B30mZKY_=ZZfx>3PrXeelDv$I;&9hVfiF_(;IF{M4g+kYUttijU3MC-}M{ zS{b0oD)8lP5!%PA6V8TKPNpnc1dk7Cj+#M3)typHPQXu6R zTqb2kNcvn%&#`e@bR10r@mzdr>&pV+W! z2wM*I`Pmn*D$BAf{J0HDm|6rCAWV$?4W^2obE`G&R#Hlb4RNfj} zBNHD9>xt>u_zX^)Y@djFM_ED!K+~5A3F+V?#fB!Uy_e!1qUd8AeMQHeG3>QRx$7fL z-`)6x9MgCc@x@W6N}@&`Yc*o=O^bO19pfxju1=4^xtWtpaYU%a6I(9FIMgi-5aRcr z5@QT;=FvZ66+;(8O9b5xJjXZ-`rR(6@wL?WA9K6s^t)hI!Hrp%N=Kg52fwfCTad+ z;F*FwZPPt@N|vTEi^{_?Y()-kQ4)iqE1QBCl77Yy!URCo)f&Ke-s^*x=HpDA&GU(- z4qCP#RjCVAU=Bw`fjCFG=B)UWQ9pCFtBUlNx1m*pb?wkAh=s4k`O`W+5Mo7f{J)tk ztcgml1;;Q1qN9F;4?<(Y3RH}jZx0!$_^bceRr+s{&|?I+hm$>H8>(N|T4u!|DqP8L zHJ!=cw_oq05LCKMAP;px*R51$JN=?&eNGpt)P z^cm>#KxA6R4p}Olsma ze=^BXOM}YA9BgVH@5qZTf@)GHOdSq|HLC=mTSBSr7H;hGgegRF;u$)7;JcF7>11=;LRtHW!P3l1uffb#- zaym*@K%C&F$=K@-zJ#*hyGZw3+mmv1%!=%^=&$~F;FU1PLcW1SuB&@D4s^TGk1WNM zpQD&I^D)=UkM|-=o47Ag=2kApmsf~dkN^z`X3LU;9D&7Z?}>{L#?WV@>?DC;pDKd5k7BkD7+_I@1DguIC2w!r$E`N6*+znwwI1ZYoIC zBe2Ow4dc{nPdsd=e#)+_P~L*=Lr=`%?uY85wfbVW_&85UwD7-|MA>_UV+JM<6iBl& zYL&RewqM%hq|f2u#)JyAWT)jY+{B}fyuA06%r6q0I16~HQbi@fSZoR`yn3jr)BF6y zL*L}#3}mN_4w7UefG^P_Vt%B%(sbai^+0I4a`~$gtw$j_YVoO4Zqkz~e=I5t1pT^; zV^)+^Am@k5cP%z9=-~t*(Jf&|6S-;`Pg6q0(=?UEZVvD=cDYCVa29sXCkBi2#zPi_ z-=j_$c2LfzMxNme!mSqR!DGOOuB;1>F*m-Vf(VYfIiI0>6K}4&e$Rhm^nN)}76x zU(n7Yuql0Cq#4=@G8S6NkYL7Y20Fd~#l{yb${?_Gt1B9_)v#SR9{CBW|2kLn13cXT z!I7{*)XZ>)DY+Z=&JS9l$L-|eeW*yPzYos+ zNON+SlKlVW&~4KV*e=fvgzQM=zrOxEbwsH_r;$z^hbYtz5yPiCZ>Ukbji!kyG#27Y z@M)LB-~(erQ4J>CT$*RW4*VB#^tHcx9T?I_NjKH6@;TIUwKsPd=Q>ED5f-~#;H}mhj5l1+TL8OgK?fCz4 zE-Rv-R@G=yHrRr*dXp#2H1Du7ayLL%gp56@psb-=c%eXk`i~3&dx=?7VVwrN9kQ`1oFEG65g0-#cV(7;V)Y z>#C1s-^TXsqLYn(lZLCy*_JzIxHUUHJ<^5l1Og?%77O9b@SQlCy`RuR@A&-LL(c?A zL#PM4zi;Hn&JMlX9bIcrfX@doNtjVl*+)c_{b?re=qZ3~j3uU8_bld&R|s&Et6!j} zmvfljton5<*KDvphM55*2eRab+}ub}QW;rlp*$aDF|n%!r*~APLwkrE-W4hxemA@a zt97CAVrZ@p)6)UJr8CH@G4NyQvQWT|i_P(@?D<;o79i4xb^WpOF+mGRmS%+@g3JlZ zK(FPT%n9o7k5h_V`fg#dKb&-OoP)4mXJ)c62$d|&#O$yflI}AWt_KC*N`1VqoqkTi2#hI&RZdsNju#R|ni+)EZgTaTkR{OS5>;@Sp*zKit zdEfBkZjk%)xbJdv!r-k{EDL^Es&eWxwGIyb%}+ve58rdpSAlFd zE$Is~kDZtLC%*Ccf79D=|FhmE3C*1c;f?eEOK-#fM{k3o9E(1^eir7JAZ(;h@Vf8|hvPgxuWy*NuYd&VmExkw?O#*JYoYK!C zj!5ZZ!zS`Z8v8Ol{9X>O!N=;ZtFD?1?l?ce$&HSV;bAVok#Kr^8T5dy zR8Dwu>ne#20Boq2RaggN~OHVlIn1HzC*FUi;#VH2J>V|_aK zevVP?xF@?1Fbt&-i`lI|J_wenmkJtG$X(E;K}u7^5i7bAhI0X(EUO|&MX^JJje;c; zfoFTVlK6}al~qlju133fegdP$Fxnslib+qikMr%#nN7&%<~Uolt%c=iq2@g`M(-0e zT38dZ37t{diK~frRk(RW5HkrW$&^c7b5N6A`{p9&(o(9xvaP@)qt^13$g|e>9pm$^ z$B8%}^Y@i+e!3p!XIE_cdpWOPj@I`)?`!I(4-ie-y`$j@#pq0Y_=gD1?DLF=3;LXKV+1yoNpB z43kntX!mCvW8lu6)p_uZs@xKNt`}^TGAF#nPC@uCkGzz8DSF{7(ZR+GO<69 zHZ*`EAnaoof@g_G^tEB51v%BBTWw*ETzz?Q)hAk!F)@j_YIN5Q2sDfg`U(dZ0EQeh z@{~!i%Xi|UQMdGpS@eFE!$`;EFF;A#fx}a$g!?}Tggc?d470RsK0=VzIJ`f*RwAL! z;+Yk_v|8G|a2)GDi#K0@=`TTpx&JdFU+ea$X$rS%`w#fsxH$Ep5G z$+QXH)t)w#%QR#4iqwFoEw5k&zgHVJTtUcAwt~dNlw0tSE5;3IlnNQ z5G@^Ao`fZA6ulOv5$)vB>tt+KW*-P+Xj?fUisF+M5%CT0DfwIjUpjkTVOTF|bdy7f28t`}C}JDCpuIFm5-$OZw8CnC8qz5o2y^7`0n{08Qv=!<+g12Y46dOb zBTfYX*l76qW_H@r1NyE!x zgUW)XOc#5B$_z}f`aJ3OP#p^^2qSi%8ql&liyx5-dcG#j?eu}0Mo{_#je#ar9bf69 zX;aHV8OvK9kL7^>K=B{giq#eWN#E6$571=f6v(SF(3XSBn`x9}`a`VTP+E-aFZwvV zG5)v;wL$>Z$ze^wnFQZfRo&}5Y3^GuM2-e|1S-*SB7k|=SXK<*4Q_zJfesr|JLw3z ziooG~hDVAtHS5%y$u8eO`O?%& zseV~pGK%@6_VBu?p>T%%SoZi8lC?mGJPJ8vg&>RGmdGnlotM2k4JTvyZ$Ih#YvnLN zu%~otWh+w5xg^rTI3;VHU3A9+5H{BY^$ ze)PxRCC*&5cgNdvqRn357L1~YhT1O|xdj?opCU>nH~OZVWtn<9&E8epr%uE$QXkSB z((cgrnSPV(m>}JmQ;CEG7P*N+RT5*xcEAhrv5U<_XW-8r{|vo1bM8o$ADKBJA5fQ> zw;pO-mtypF=Q1}dE*W4F0Hcx` zgjtImO-}Q-W$1Wl3P82xp9x1p+d;$PS-vS>P_Q`HxE>L|#n~y{*K9WsRnzsjXJEcc znX&DQ64+txZEytx&I)A&rNQ`6C<-KZ1d2vi%1D`oyK>o~U8K7~>ucif-B+RpGyhy7 zE7;^XQ7oO!pIv*H*aaGUyoAU>%G>BJ9P(pyVlFlRx%4x#E4g8&+#)MDWyz={c{$)N7 ze`d-sxJGu&cNOI3rGFfH(48nc6+`-blu#4sfxStlOzAi9g!e2^+h&WIK zLa#eXKPA6iX~gZsaCi2KzUa>dY1HbUvv~rE?e)?ZVM^&aIMNkONMqnk_SD5FPL)yU z*teOqT`>?KHr#JlEfjQf^$;qPJc7YA-wJ;oKc*TTULK^j{@f$AuMYh&y${bUzy5%c z#a4`lW+PixXEb*WI#>H>dkG)3_HSfUXkG#~80l%~r30k-WFb`W(1ReS{Ilnf|fkA)ys!bfzdvoL7YYK=xa zR=TAH3o)f#+5C$>U&5$ytpDKG&6*$o6T|XhJ&qU&P3}89@Z%dGY>Q0>r;I_w2UEOV zu{$_eQn(cArk0805yFY;%E-6-fdTWKfVo!$%=d{B`;!N_1?!lAfC^j8PW^KS@0uVS z;w%V`m?4l5&2$}&S^!?b_o}OE;E;Jo#FMZ7d!S%Yn?cy+==zUlFj4xISIGDtTxT@? zYE%**jQ39;#rE%$e^KqB^`MV~Eanw6puaFRype*RKdw)4Z!_e#OwHTMb46 z3ty`nQrush)`h){o&KxO4fZii*AuZG6*?C;AQy|VU91VNQn(6EE%9AE^F(KF>Cee? z6^vz{3gladDkQC`AJ{j{^v&PCWu*g)2f6$$r321$W=b1q4$s#@ozy$tFp8rA5bx)m zU!9x%sr0?6`%KLMovqF#beURboQ@NH8_;awLtgsTp2<+;5td2mGDc1oOcv~}_RKP| z3*(Myy3O~Kp5~WZ5Ecz2xflkYVyL2=oSj~7rwdleRPRz$&8mf~(~<1gv`%gNh@@5ysQF`h*U#rM1Unm_y)lHp3RLn>t^>YK|7HwzaV=iAwp=cs zjN}c|RB5}c82di&;<#HnJr=F}3$seQRJEpmaZO(EyecP__tN8WxZMBC->NaQ{TvHM z#Eu7W&s>>IPELY_8691}o@cbQWej}JWp6M#+C`w#sJcuO4o?IRj}Icm6UbORr91aa zX*5Y-dOK=j7+pA;{Q$#XW4o9kDN}C)3o`^OFa;w$$b)61X%)oj`YQLu;xOCh7~@f} z%Y0l=`L6BA+Tlt9i(>wE6b6nqH_;tb)j5v@2Aj0#Hybh<%2Jkl=I_8=Q6{s@H7}}u zB@ z1XHz7@SX&fxD6h?OsQCmx=}I}e~A*M)GB*L{(VdD>TIg(j*Ia#ef5E-*@kL3$L7R) zZWh?a%Ih?BwZ5If>eSS*bK}lO7&o&2|9ILE5?e)Tg*kYBR%y|wXo;56Ldj;8D>J%K zPBn|V(|YW$J3Q>VGvmC?c2t4O0KQKsJUnf`tXenuDpaX&qKAqGP2p5FSyug)hr~T* zsl4DSPMxNddQ?uFd|#iObn8Z{DK&fAmEM37apkb@xIppknN5GbP`BA6h!GdUmhML_ z!tfu`4pPo!QyX-U#;4*++tm$hf?FCkUETA>7}}275Axfv|C-QU?P|y8r#H3!;LL5U zN%8(zDgpjO+!(iYqKXMEQrAJ-0}EruDn^tl_~**nzM1UGODWe;A@ZNpa~PYRwq;9U z56HLPz)#_Jm3Uti9}qw#L4;Gm_m;7gfAPe|qpCw6*e9IR_E9*A=mYkTOfGEJ6Y97Z zTP77}Pjmi)wt(8qgBz4b7j0SZYts#H(rdiTbIGDUy_A_Zi4&U@oJ!u@Zn_7?g9dCj z0|smF!+ySOI+cs3F4hABs$pT}jWAY%GsXwIlp^;=cG*tHnRIlBOq`sfbte0uRFzZ* zy{5jrmbSE}ZgfU&oaB7jXd?2k^9+wjx!GQ;SLbHV%Mjh$l#SVwS4iGDOyyy|m)qs% z_)$yFDq67-W*G{Sl3f!ZOgmUqH2p&KUJeNj3bd956%x`XI)(-*<$eW$UpmrnjG-Wi#OLKy%xLx8p*2q6L`R2-X0_=++7cBm+1fczOM0@G~|m;V?h)o!I|9FMetwq0xNJr?|`k(KT2ew3{MI6RU_$4Z@ugyP;h6{_!! z9t%}d3tDM@KBi>`ueWRB?QXD4(eG^F|Asl1-`ltm8P%%H9$5QXsW+VN>adMg=n~z8 zYtzS#jT7Nfu>@kqf$cEy{^kiDG@oxGln#4;c#w~XLG8n}a0HkCXQyw#)PC1iP z-dOGi^Yn0?Jm{kA>H0VQXXY8Rgrk)jZ$>c3CPJe)p8qiJSghITy5V`I#bM7kYEvU; zRK=iereii-q)LJstyzI8^U*pPh!Jjl`6FKP)?u4_q)+I!qXzN1X?@D^i9Q}hqaJmS zNxU$bHkhj(u^utGK(oa(L$o}lU6^L#ZObivAS_F>!!v>L!9jWKy9*gmrfwGdQj(w) zks3Aw(hdy=a1oCSLBaLo%=_iR#oKLd_F@Ws#6l_&XU{#BOP^fIcy1w~q%FGhQc^`G z^N4hAA-=>_4MZvcE!x69mYt>4Iweb14#6%=jRvuL2MD#oWav5OTPKCgNgBc@L7HFH zLrN^gFTC{mv|ESUu|zsia*mBr3PK9P3SMe2(pU-|^r_R0x1OJ-TvE4(?JlMN&UjnU z6Zb(^U_pYaX{}nWDbrgO0KQ4P*Cl}pe*6oKE)&(G=j|j}~i!+Boy^DPC(PCz+ z%OsIXv=GNX7TH^wxxj7L>nfoxpcbVGLd7|rs)B^+0f#l9|3OJ1IFT9s`l@Y!E&`vQ zWtg_hFC#=k+T&k2-U~Kdl{zVXvYrh;%-WD$}F@IuNAUSJq zA*LkIfr~Afp8M;BE!zW8zG8yog-7KNYL$V0*`g~yr5JOA7Ix@^M85G<)Nfs4a1-H< zf`bPN4I>_F$LC<;Xx3LqIsD^QknsBtLbEO0o-+;YXQVvUz*;B0Nbl>z2dhL}_v`n= zpGEhG;3Te_`sGDLP_P_>^ja%SkXXR6VlF#}5I`xtd=))R7Ea~dg)3foYb5; zo33!15mO*1|l=J_@ z@>N12S)CKXQLRN)aA897DWE@^P~I22eHh=BJT?UtY5?E@UCfBE1^`k11O&JQ7V>ni zkk&J7M=;a_(Pdm*c4{hDD+pE*_`8;=@jo5~)d#l=u*W53aMM_SsG-{tWA&Gx&R2Y&Y@|7s{7B~*-1gRYUQ3UfZG=7O-e?UU( zkH93}*WLJo^?TDyg$R82Z=%s(z2ztYZO$tpfu2x{h!Bu-U=Y!hdVf&sLx=1=;Ajnk zeto>fTnz9Qj)YWRSGe`Bq#5ldF$uz5(w3Zw4E)2veq{{*!u>qyefV|Ubp@u|)iDFCMoOx6*uNKF@8K60GWl z?84JYNML}*7N$WUe{-p#`Z0+zt4+@rDgIx`Of#t3-hwQKduM<_dnXH1|(#H)3!62IJi}U-s>S2SJ{Es z3ckU6GYy75W@yO3zuDZlsLyYH2svN=7cDBImp-M8|bpourB;nPq? z-J3Q_$5Xw|mhZnVuagJ_pE$s(Q(ZK_mpbj$0oRrB#A&(u=elzFeRzC|D;I<1TnEy0 z$5qPrerT4+#jmj1&JWbRQ!njy3(qu2q<5e@{ktKGq~UHWNX5v-q^a#h4l#}c#79?GVu?8Py)Lp>Gujl6 zcc-Ix&tS)-@Zq~nPP~f>XQeALoIZQ_pMXvl?2tLf9{;xor(Iw@?{$*0ncL2Qw)X4( z^wgyH`Mi>94_Rb^PEhYdpg*M|nnS+RSTnP^jE&P;x+(ocb9YDG&C_&W++O{gFGY2P zP-?2WhIUm)4TOh;oAsPa622&66HEN#r=74TLN}83%@;^gbr3+qBSu z!fkxSoEQ7meGfqug3-M_PJ#BBwwLKtol7TY`)aYj+_*8}o_b2<)PZ1P_*2}C%|%x7 zi3iamGy_J_PBf%AOT%1gc@NDpiO(rF?sw%E7Z$#nkIxJi+K@^p=bxtrd<&b;7tlpWS=J8B4gG(aBacUNC?^$ zX}8xZ(<3--$TV>>ZwE3an=@H5;aY_b0Q-oGx8u0o?8BMimSU&F3La3aKzy*(n3neatz&dse%#+4eFJGK{Gq?EVWyQ3k zGLJ5;=?d#g$LLr7a*s3;yTMu8lnDR{0P9lG;`#i!?2s+Gz92p8Dvv-zW9nLQS)IYt~9uEdU+*M1{$@HXB#;VF+pZ0#%e^Tx!gMWU!xoK|&3! z?wRYq{Ic~r^bZ%x{r~=jW(ZblH0CS`xFNK;D(88UKH;q`2OKyd7(6F2y2SBwk%?fI zg)5dXm$PLB|AjemVO1r{&R;tRyO2T!ao7o@xrrsnAz8$ffikrmLu<(|FY};?q+i|x z&sC=r*%GZ-Br$NJjw6c?`Ks}8swZeU)NIKZUcUK><5C;fxA+hrJWnh#JCvE)W_G-Q zh-JYGW>kq5a=4e{nt=&|C3((YoW@HEQUXIu;Om9x<{-&WuEq^$%vh*MD^y+pC4I=M z_%>f5_$iY@I2yAo_#W1xA|T zqpKv@Lv6eML%Pqwchg|DRJg!iwEDhyxT=@?`Z_o12i+kj4X|yb^?v*G=ze%6L}p}n zf0Iq|I+j@Y5ldQ+Kk5&afJQ1R2E)}7)3lDwnhs=b1{pc#oP}~GUQ*4F(FXeam6n#U z!uL@@pgx)<{1qQ;Icff|#`QNs)QJ9Heh0pvA4?icf8!rgaBNw{NJAPz(+cBj zy4Ln8i12=Y=!&DVDOm$l0|02hr;O}knQ62w4qoEYDr9kGPa(x?#j%=rC z{_Xvj`408@k_u;aI?Ceai!{a} zlc`-lXG?-rW%T9SCMz4b~4UfD<(p=a8Lz)tb8;YA6;p+&? z<242|$FD&yGqlJ`DD#h05P8C#5qSieTvRIgPgE)8-~{qea^`!_tjWLG8#H6UP>;^R&zH&5*`^a=eq3!g@p~wqUgqmQy+-#Yo$-&`}H*~*+0IRl#f4DMN4JK*yy6N|7O7p^#0z?P})BgO>HibsEZ#;8H==EXU@l9 zKTjo9m(Ga`V@dw;`P3~Nag~tl&3N`(z1;hCm#J|=Isow~-vxb*hD#VI3WQX_FsS?y zIFn?KUqG*y$Ti_7s~vPGH} zM$wa)_%?zs@>W8Oa=C<+-}HtHeN76$TSeWC9cHQ1xUuUPb%2$I*N7!=j``WJZD>a@ z>?5~mPF^QKG(3f;Ibh@~C75hI-WRmInN@O?+FqtG#2b3?sPb#+>@=0B5-k*|zfCUi zO`qx?bs)7+ND@|=Obba8;!xXNKDUWOyCnywY8W#DLy3*?TJ%`Mo}&x%F@}=!x|_cH z?t?`2X)mJ*Ekr~C)s-FF^RjfYHo^dpktW5z9E#4j9ym{AOj=dcy#DNt#-A;2<|!+C zw@3FOLLg}Uq@h!g6g$sYf|1BNxihKEkH*O*0wrpwzO8x2&flix3#78izGD!-FL&UM z1#lv4`H78_ov@_NS|5-Z_@XLGxa@vw-Dq4nD_Le)+gjIV43pz#S<7Y??jz6>StO+z z{tQ2k`sO&JQY|}zXEu_`hf|jLCH^W%M{EigW;@qnz80_KD1fTUyQ?Sv) zW!S~6gbAc5-aWA2>F=qQT|$&egi#A@hy(GU0;Dp z2EoTmHJ6&z8yK+lCI;UgKhO|;;ik@^Ur?X6lY@%c|M9^}baT^xc|G`62M94dUL)1s zPoSO$dE?yvoN35YW0qr5Io{9%3z~G`;?Q=8+%!ZI4)y>6;xXT?V|NYwES~3oTj?mu8uD~yYznnhpoEn@aBt1q~;S9mGi_F zl=7e~QSB_DNb|ih;V|;s(a}YOC}{IP%TdcxsG%Z0E%U8~hy#_nqceq07lvX9*6Wt_ zYuuiEfi)Q(FAh_eYpGV~kv`SM9!0a2>+`E@8qGR27Aq4(6JdO z+q~}9)c>17dY+>0(XhVtd6M*eq5}Eys~?l{p!@nyg}|-T-y>dM^2h?WFr!wza@Pj; zY0^Y8V^l2;4*~7b`u9chldp->(=A5CFoo<&j>nc^OcGOj`{_s5w`QvKixU*iEY^mm zOv*?MZ3JRXn=vQRRI@>cNGEPmnkfpdG{ebNcQ)xyJC}zC{*OQ?QU>4v+#FQfQondM)eKO)+t9^RH-6B z84TGbgs)}LVahU@6}#yEjrqq9$V$2248v<^Q!z~Dl8JPTRn^G89!$@LrGKiAL!i`P ze>1yIf9&Oc9KBEE`cS)@8NU@3%%9cUu^fbYA=jS;44khxq}$Z+4;}p#)utCkZ3NLC zsNn&kAxrRz;nZ^r`Kq%`5nR0m7~hmk2{GED=+@tAFg2d|`u{+-#*bXJe&zb*_&ohB ziWP5>sahmGb&c@UYql+CZTj)^49zgWOe}a&jmx`rq%VjSpQ{$LN+;YOv?MAOL!{?PO;1d||(NyXUr^gCc9Q`x_+S4{l+ma5(+6x558Z&OJ9Jr9Gt4n^Ak>M2|+P{ESJk_kE1AcI5%ajnk)*5rJO@2W(K}5E9vpd@Aor~fD@I40i&Lm5Zj^;orng*q z&_PTdqSV12?pXbIbzD=BBWb#!U9=O{u@IDJSMp}ZSC0J?HEA_43&T+?)b9Djt705l zmEqtq$4=MjqOVNLl`fvAhUPXQqe=;p~iNDEH+kDs5Fv4F6tgoWYE|ywh3-{ z5Sx{F8rD>c$Ru*fh#s`c9AOv$qII3GJs^5LZE0;mth3O%=!MXft4m_Y=`$ueElu7j zT=7O)L!nwFgJV!r6nTuN4PaGF!}ov~{%qE8(u*Lg7P*kvE^q)likZfPFsXzLq%Kkq zu|>5wO#fqDY&|Ji=Kh^GFBF zb7ZyCqt?Kc&zBX?Ur!uQf2SRwVKm9K$}Jy-oJxHqYQnKds+5QGfrnE4q*3(#QC81T z0-0T<-uiT+w#!SIJ0e=bOdI}*0$C|WA}_gxU{&tyF+m=?(Xic?cmnp?own1r?`88 zyL*1;Cg0q9?qByLlR!eUvzg57cRla>S!)44ZbP6yZx*k~u6U=dCVJ$9M_z`5NAKPQ z@+h%jAccBnvRo*yrOG~T&djjwcNvGDyu*kt;iIM4$!Pq@_92?V*8Zli0uPTZhqSU% zNjpFrpFF;H+2Xr@jaOnxyuf(?t%JT)md@;al6e{}hu!KeiH@Z$BcHyx0u#Q;7w@v= zPjb%EJliVKW~8BCsN5>PC}kFW7aMJ=x*CdJeOSBVtht6ylE4{Cpe21LPaXHs3{Uzq znQl@Eb`ou9f)1<2SX!~UnoGlIj#_&fzNA1oN$em^fziCAy&nc0O9b9$syZSC>?qj~ z#GHbfz+P(W#xtv6i<}R04Q81MW&160w9WwX6~|hfXwLN^Mk;J`nw`iD9f@!9O{~=T zNV0201vK=TzG_sqRBVZ^1m?xekS%0nH?uMkC53#Qcp{BXsv% zd6|}x8@xy|iSN=KF*D3gw1XbbC#$k{x@eO|W!3-rvrm2n6Q$CF%^4uc{mH4R@iEVxYqdOl)f1lIlgFw~O5;$Yxh{{(>F$7UAq3^YL^^DN!mMmT9`;Q{fMY7G~JZd-aQOujh~*+SkB638T6wIn5vs#@cX7J*b8L?~oXz;j)Df zzs+sgC7a%*7nz$OrEBZiIA{K(LrN$9l4QDto=lvEyE)9Tv4Ci7JTq-Lf+C4BRqZv^ z`S)_Zws_`1R9#!k6kSI~wCm;b)8WldGnExK0{6FqxNZxP$HnA7I)Ss2Xv*F+W{F!4 zpL6<%HOXAVC(tLg>=^0eIlp8XCz*^-Ygi@Dsi!g4ma4Bl?6^*Kog=F+JnIcgp$Pt9 zjj~~rO#BjV3}0I;Ho8|_K`uRQ&(mJxioL(s!D7iWsiU{o(Dt*0kB4)|StCZ8&;)Pz z?wR`)d}sMyksO-CfeUvYd1u>o4`%3pIjvQ+D~@__z*!LFuJA3tg!HWn?1{1i9&iSDeDx3B;|aeHGe@ z3i_RCQarLNIp(xz&`RwITPSY$qW!`SnNSpV^n!)hkrv-1&AjJdrBN?F#$Q5fE-vUd$IA;uyk=V5P-BI;Oe-w0 zwNTJ`^-~1D)gW1u&yFCtKBsRy3~i76S-2ucqsO=_Fyq%^<_SQrE8%4s`SQ> z)lPdJ8)uVxSwyd|t#BbZV^a{c32CY>_(#pY0t{`5haK#BSF4*sS9H4DpO@*ImF3lO zk0(x{Z`v649jH4)fA;@B`H=tE{QrNkBmW>$)&2U?lpgJi;%DvJv&XTn z?NNMM2{r1C)E1m8Oh!a~4wpIvYSi0K*&H9pFCWdY3}-@@$}Lh|j%}tLmwxVM6+zSf zSC}X0nfFO}bJBlEeVqSU>Ql+BIj<~Mn zxO}B;1nEloH6-0nMNF{NQEJTU5{%ZYw6si;7=DsWDwXpha-@Y(A}du`37_ywaPg@^ zlo%zHHX`Lp8VGZIQMUE;xoIB>}5>llC(eX)BExJoPh5HppKK{UNHo4 zL7z6tMAdV9U*ioGnjM~Rd`M#T&wv2KS~x6+e)jRN{%zOu-2lpqCkclF@rh~lbj0R}*om;p(Vf?B{@Og3`MNYR zQtwZYXHe7rwtip&a7;j7uqYkD?!s#hj;l*{gY!o?vPDX$sMLTg^>UD%%V8OlW8{Na zdgd41tgT&MZiy%=_`fK7a@4o0)(^H5GV>$e8ead$S+jtxXbxAz8OfL}v4HmRP zyhzwNu0-3zuHr4#2VY$X2s?PwK}nl_VXpc)M+s$D`-B8#0hV45jb|F`J^7M)ZgBO3 zLACk*_k}ZKhF)eH*{c*pf_*bT_uJUN2I|-Xj85Tt9S6HoaXnkv?-*;Ys6^H3f&NAi zkoS1uX}Gr73onLOS?HY$#p5dh3qR!JdtBkye5UScyeT&PyR&>C()y8~(vgg;K$v%U zuuvG{eN7fF{535Yd8*NJinq8p`uff`#U_asV~ZCQ2PpE=ULWcya;gYV39=2C$_1M} z3f|ep$DJ1D(^Hbg+=RE`0Ve`IOZ;~~$?1w`Y?K|rGGSpdNXU`5Ez9m^@GWa9+pLbx z$Lk&a_AUCmy+MRT#BFj(C0{$9c{QaaHoG=*q-~`+#89b0m^k$*a`6#s_{3N9cU31h zOhPvM+}6hmAq_J=1tVE1SMtvRiu&N3C3n34OTR245(Jh(SO4!Ldq zd<=aRPcn=8{hQ8uB_1r6MbeuNvLnXCDNm6LSa=dI&lR{aS$Gb2qur@JLB`A{%Je&4 zL{EjekqRzZ09k`8z`7ZUJfx?TwAOYKm7t=ESQS48@GM5*%rpQq@FHX7Aq}=U8FN}^ z8Py_cNDxV|Kx`$x9C!KEFCOe0jjC$~eRHGPDQt<)Ya1%@b1R@XGYT{-$Y1G&IVj|T zM_yszj!@~7n4vR5DLn)x3FMj@aW3ba@2>m*oFq}qnq+U^>Mjjy;iyQo>^|q|c8Wa5 z%063%@9atN`p&@|rqS#3Qj`^6Vz4qn9Bq4M5`Oi1Q&s z=J*b+9WDbU8R2(6p^m2;>ZUMJtjKw#BsJX+^a;iZ4aJL0APb)(Zt)gt`B%Qalf>$c z6R9nDvaJAI62rx3P!V?S&datI6)-_#T6GI?SiB7te0%SQ&2$Zw<^=UK6lHvl5=7-&$Lb2w@1kZR{IIfef6?U-l)9_S_G52cp>H^ntW>2S z8t_=ajKjQ*h=E_i&J;DHNHmw=k0{wq8yU^hh(n3!-Rxs?Jzid7u+Z;Lmu^(ZTzPXw z;q~3tNhlRf_Hd$)V&LY;x_aa4%<97OjCA|>$KVqtgbfbOQzUwr3zUqfLN_|)>M0U` z_nCKzu|-a$X5yTplP$y(3+Psj^LtWIVId-~P7jJVf!&j(3^o55Bx6je9O68L+ zkNf4yk~z6oOr}FQe__SjiM>15WW&19@`+3QS!AVb#^_*(Az`zddUh^6)b=B#F$PRt z!@43Cv5|AVQY@XndASQqM~{2~*?b<2Y3c51`li&FfI;dY!t(90WkTB1{gu&<)5O;h z4H~0F(Rr04Z}ayde#Q6jR+0xS2;u`8X-zED^=`ho@-6NWCI9OyNdsz1_Ivr->R3Ut zEFO>tL*FCaAq|2^a}9r=(07%OX<*~C7?gZGB|F0LZ&m7ypN`J)R^{Rr~O=uIVN@j;FJX+t4DeC-RkC& zO!!53G$5p&6spBwd?%G38cNOB+qL^oOq=lvcN}~l!#U=xgurx{zNod9!%fmgq16?0q3Glt}$*CN&m={)5nyu73&CKA?nm`koR z*{W1x@5d0#c$O!mf4ng>LWq$jj%rXD#W9fKxg3rM;;$5KciO0@Fmwbi^$NjWP2+cFJ8j}epr-K;Jnnf6AIvpu%0{!)1jR1B_M^5n0?hI1S&M{B$cluB45M&B z@S`YlXq>XiJ+1B80bb4WSxov&T%E4EWN+r_*-*bVkG$I2z1B5D#RET!B)EZaHLwS*G^EMm}oAUT{bX0{6R6R zU1hQ=h6@bb9Kzrr9m68XRZ&wrSm=-%}4V?E?jKamH-wnzSyz0_k9$n(Y5t)2?IFKAj zn6P4Ku`sKVC^wZ=U47fsS#zThRfbXc0cC#shQ_Y_I*C|-R@70G|PEA8tU0|Ws)S(Q=Jm^$;cl8X|PZPnJt2_|IL;l?}2=*kFk(Jhk@31 zMgxbX1&LnQp7MIka5gth@f?TQ@0Grvw8V?_irrspiauOxA&X7MNY8Yf#uwS?Hg2PS z;6^CcOz5wTa-!(@Kys`@Y=TPszQuF}(bb5DDrok2%Ts z+8YcM`kAR_|Z@p&z{#Bl}DNl5Keps{|7KEaa$Ned`maBO4RuvejzzTOV7c1 zB}E0DXQ6f6h%+KodXk<@8?@doZrAn^N6&>4UDP+1D1BRhM$CKtDekBMb%=2T z_@O?JU$ZU7l_@GTQMf5l5jva=+qiamU0bC&kzV`Q^t`4Qx7-HxNm=3gufwiDj~J52 z-o6DnDlBg|{Jlp8q~+1F%6CFqsg{^1Pn5?EJ8Bi*1^(5(jEZ>Jc#P6zZywsI{QDJD zqe=}UalRUWr6~+|YMHM*pH>(^{K!8&Ozp1ZIxy3!X@omWDrx4I=L@|{xQ4xdyv|-r zC$$hlW8`~rxAMmvgx*w{yeOKW=>i#uw7wT3OCmi>>Dix#Q7P9jX#(KJ&O#6LH;(FG zx)Q@?(5CP7GhWbr?e#ll{AkuB#1^rCUaU7bqg?|HF;uw2`$l^tf-kuEr^`ry0H(r5 zLHOVJ;px|^9guh#yW>aGlNYe=%=zX)(xr=W7hw_h6<+zBi`5dIk1?Z-t+7_*^G*IJa#Fo3{{F8%>i|aHD>sDHveG<$Y8A`7_pQ!Rg;ukxu52@k##&nU;=MMS45Wyep=ykhVrb8Dg>Wpb`7vQ%w}!nQ9F= zJ4L;q5K*TK)am}CNNq=eqm-HloZ~>EkJO zZv43uDIoj(#J#^?LgITRBQre+IJsbs5(`|C#;dfCl{zv=yvt>aqW9NxWP=X3<6TCw z=D)1$Tf_%kyninn>)aQ*vRmOYa+xi1%cix)9m-;W ztHrNkp==s2PNCYuxd=q2jWl&lAGVJz^1OuFo*Yj#o`wi|u9CmrPS1}(+h=0bt5@G; zW`PdwWFLjLp2_Q8je>t`PsEXjt#@d)-Yk9xBs(bk<5V)O>FigyGkR=gPd3jpMpS9W zB0EVIkb!M3ISwBl=~e!b)Mz{I<;EsFv@3iw{G*u|t|XU_P?ACXpjvvxQeRh(qK`XC z?UVYKLbYs*??3k@Xn>dupdn#u)+X1~i_e7j*tC{j9-|aRGgSY%CWVC3{dD?jQpm69 z^rep<*To6g^vpka|2lF@mI@4N^*$R3(L+e1RG| zL&_y>r18_O7bbSKQnHq=LbN2y#yLdImIMjLvcc4)oz(hNkxY( zYHl^khku7Qm+N$pHc%IX6YhJ*FVDCt!lX;|$h4zfFptP@F~v=P!6C}+_7Z8qPQt)b zNmpJbm86I>8iIG_^%$oTY3SR|y6ZW)-Rk&Hsv=xaQZC9S33xr? zXAg1$=JZl@IW+B7afYUiG5OISH zWLfPFoA|EN@aGdOB;MH}#?>0E@-ZS1#SZG9SuEWnpTuI=$is-Eofl-!GPTQ_GeYc4=^Zl2)b=xCXHUf4XHSvd zwx3zpwsST@VhgC>zo+y0-gl&ACu+VYQEs^C`+Q@V z`TJEf{EQOvX)*r%{XXe71*xIdPF!{xPNP+>szG}e1O9f`FQ4$cfh-u?aH8+uIN)n0 zE)0xohxpDZa^Bva2=q<)-{R3L99J*WR;L!ZFY(gepvorI`be@&eRS9gg;Eq{;n1SW z;*F+q*1b!;NJr!34M>bXVLca?u0$xsl`xU$^@(>y+D9LZ;joZUP65sqbTuNt-@xBo z&B+8kziAp|(#ezB-Vr;I9+D;Ngi0tk>Gx9w(~Z6{5n`HU(6tw17A@9_Lhb%BZJNM( zp4}3oRE5YDSn(Kt$7|WRsD#JpC0xc}_YOV=C+5OdtcEq76r(RsXzINGEi&-c(0*`` z?}MFZ>3^ztXL8Q0uXd{^Zu#zueTC#EI%uU$F|vt$ajZQ_0&*NwVvRIAEpRe}qXZ}VuCXW1l2 zrJL)_llDix-vKg=u}%6i?+bY13Ri@ci+a&KMc?dhqia%ZBhX~MzAxkDAmli4p)-}v zL-R5a&d^Eaph$6s&8}EN@qDk)=y>~nx z4-JWqPLoR8jy2|DVlL_Yf?rbUr%wa`uRbfT8Cj{&j{pzt7yWsr)MU!Xciy1U z$`Iqpl>}*Oe0$sfpc2JcEk6D_P=%hZ>uc=X_U>cc_sqSv&m84bK1gFoBd$$9j0F7w zb_9R$__;&1eDAfg%vj4*zcU?w=q|v@q{y>o#%fS`9u$=&K}s+ku29f{TFTA8SWwj> ztMQ#+G*(p8V5R>JgkR72qRh_Tp#f0sh%q192Oq0b3i(x|9yWpgzItWNXbz5ZlB1X` zc@J-!>`2fQ-&GcOa)n?&9A~guzp?Wq7!B>p@g-r0o z@BT#MctfKrY8mBhm1??N-+|0iJ>y#_&d4C1oo>r(8!@caw49FqQmg0axBh9Gl&^=} z$NQ^Ic_A=E7J-xl7gm;d+@GoWrKAg*bEMXtC>GK_933t)FT_H1HBlS=HFmyGj-kS$*=)1jEghbpq z21HfZ6B)cd3BK+u)ybyUeRE?#fWf#EMzs`HR_LgcC?sM0VklAeUUcYX%K#<8Mn;#N z(=Y9Z7d;zUz-_MFOS*9vYUTa4GLbJLfqS=k)dltnjf_i#e%liRNe&XJ_)JLW8;eyq zyL*uDRehZ`VO^5jd$Uv@3Ya^p94OWc6OTk{crBag73ui|o2o-^jVeugh`R(#)I=&zofzlb6v|2y*jKd-WpyAuG*yZG_ltFwUl ze@J@#|5?&g;XE+`l3wb+cl`+fNxy3U&u0t3^L(5hx5B4g2KAJS&c`+8L%#;!(8+(v z;xh538c9g$1Kwpmt$0(-azyE}9YvB=i8X3x-=;~Rp zapRw`_)<%dNSh=lNmUBps}s!;#===*J?WG&bB1*xOc|QAr5ClxT($JM2YBpnub+zO zv3fa)%!Xm?q}eM9de*q!P@Yxy@c8*y_U`Ucbk7RL)k4L5zSGGeNssPY?tP1KA91Dy^h;|ISjry z7=*~PFF3fY(v3iT40q!Ug{OW7?`P!dn|XVGD&CAJLXuUXmIW2bU`xVLBTx;yhGSDW zd7i;UV|Oc8wqo_-RL`qI-+Q$#{dNlS{hNo}bD{OLAboq#UD2#Vd%`1IE9I{77EXaj>^mMg{CB< z%oOO<0t-ok-_v`SKhs!N;P>oAyc!y1?1RbXSteo2&P2r)q1eoKq^@R@ZI<1JxA(^I zh%RT7rtv~LM=!VTi1=rfYSpy01gRqg7dy1S<77#CmZ{^)6I@WK%dmlZI=7Grm>}#p z-o^28y}k2I!i=m(*sCk`wDfXzDR@aDBWH#9;KYQk&y}mM6bkiedSS6R!`Ii1ix;_? z-OgIo62w#PGbwMe(Se)56cS%oL*YV66}Pv@a&dZ=c<$zeR%tzVCng(^^@Fk|bt<2Bvi z&;|UYK|tYnk%Rk+U4+_yWWXv_&s-;xZrT+)L&J+ZuBBxfd03cOi`Up>s-FKK2&P3d|KRc**U4=I{P202|{F zxqnvtU&Q_QL&)5KWktwJXMTjJM?* zxLRwKQV6AtD0wSqz{d%*N*!>4-no^PPi;Kk|1R;=Jo`@KyOTazBV8H9MMAmeK=06T z6KdmQ@2sr=5`K-d7JiCceOR=|c)1@S=&Ol$U00qVyzqxT+jn+=J!9KkgPYX<+4e4{ zgCDgte9`X*g;DL0PQ2>?w=DXZ|J_pM0>K3&7LGK4nd|iZcRJ@xM~GGD$q7Vri_NYl zUe!lolMZCC4mE4#`#A(>$wJS}5pZo6JM~vDT?05>jKYQw$>@DTIYXSpZ)qGfV@NH! zfhqN7SQyX=2M-(*A)CgOuTQof)j2wE^$RTKDWdu}k7uQjM5Ih;pJ8aPY(C`YN_>$} zN<=}EiEl7!_^YdD{Gb*q!rMBYc8ehPg-XI452g6bH+GT4ROQlFChcZs#TXq(GxGWI z{uldTAsEQQ`>y~dPD_UYKF-5b+jQ;ZB>2R+NydH~@_O>&8RC?$DAb84WEA1M*2Gtp zXG>mxEz?@_tE_EQzyGuFr6fuEh28osD4E4s{z{@Tct4hqmxPIRaQnq*48{k zbag}-{K7W2?_a`;WKLk?Wy(M4iP}+Y<+6!27E9Y9`|D#9X&!TyExRHS7?3UU`B8(8 zNOZ(%Syi_)If$&n#Kn6I5k8P*9r4rj*U?Yq8{V7n0mA_~3Iy7iL%X-sRjyT@R%Uc1 zDTB@%?}6#)Hxo0EZ4%~r;vDyy&ENG#yWPuQfYMVE-QIqU_IfBjpk{?G_-l<5XQlqFs4o@B%=$e9D;kw|4qzr3)BNF1RLo*{A^rYic1^oB}J0!_A zU#qZ#W70_2iFH>R&6|WFBJQmDyw3ivUihtL*YD7J+bk!&0-)$MYx+68B)&RB6H899 zk~wO;Cs8IxMav3+mwCA+;|z3b28 zlUVIE9$`vjwj`TenMndt0SH@$KdMwRdv^$re^z{*lP6wLv<^mu3k-?>i}vN|$nLZH{zHGhlHwA}Gf9+QaDJ%^wfQ zUv8`$b1RQR;gGWK3+e>KFb*^B1`P4?D_S<8XJ)(U*QSObcv#O0jE)z$JrNk|?J%}z zl?pR#-GpXdZ)e=Eh+i>$Im31HLLg_qM0(tT%>!ujPk3U14{wnDu`ciWwhY)u6kh}y zza1>}=H+|Dn4H|7YDj5zf#D= zZaDbvC!{u&r*1om7b{j}Uo_T`R^19mmVr7_uhN=>OQjH{0*1Ok2IUQd$|D?gp;E;> zs#58#{HF>g8+-<5{B)jL=NdY9a)G$*n-xfTW^Sg>nb-Z*)}({UN6g5o9fy*u#JEZF z6RZ8TSI5b&yR|MfQEY@WqN-!qzbsi3(#=zlMjq$lkJnC z@cDEaP-NeJGodTI{-AIjbc-|DTwlKOTdq2F+Gc<&8$c^1x+s)urD!AR{^{moFx^x% zF~YZq0z9Uu)+&wa0NmTWiKgJ}Q}$*?_%_GA-tGKczrFg?=)CIg>Rct;mfwq&E)%)* ztp|jPO_o!#b=}@Um6hBi7}1LuOsS}{MUfzYsxOTi$uINYo~GM^#ggHU8t(%6Bn!Tt zCYzrg?QS(8JGDXAe5P7NPV?JrKimPKJ4~@i|2C){IQX~+`zeAK85 z4#g`19og|hEZJ8PUy`;! z?`x(1K)c?(Wm1*^ub0g_B>%{gIN^C|#=QCc28isrLC|SYs!{-Fu?wy5XW33Voq(k) zmi7xG9#2=3_$)25}Yc`4Yj;gOt;k=ojj#wGEgH-JQxd!0^Rr2Hp*gty20nv*lB^0 z`_NfDa$iRPpb@~;Lsi~>!arwFuaS(pkqMI-y*)wG3wWmX?m|?^_5KJ!GrAC#F8LG9 zL-zLfrSN|D>w-!(%%3J?7$@lXP>)N?QJnQB=FqbHGOMVgOGrtP7cxUBtWXw?n-Qs8 zY^(vWsa~AiwzBL1W_h}!G<$vNDW1_Hd1fJbuG8$f+mhbc%x5lzsc(7%*H-7Uy>l7d z7&A)q4X&Rr#Z`;!g(j@kCWx%`LjhI|92>k4l{h0jQHl%0Zs1LKYg7BpqACzfDoIDD z5HIW@6ahG39}os#k5AU`@-@7vTwU|;yM#vCMjwx2vlRyuo^nc&UHQ*G1A1HvryrLc zt1|>B*7zK89S94UN zaH7sW$WixJjXjk6y-9vTinzu(05wGo<2q4fNbj&nvJ+x!|9W~4so(UY+z%t2@QJ>o zg5%^AI_-IVGdM_qb5RVIz2L?^kne?WNl}dy8wt|WbOxVvOiAJ|j%@{%TMhvqHjm5H z)v|{zEGFI-3V_{@_6&ecbd4C_einq}4?RhC8vc4x&pFy$Bbmf#aF4iik7c~ zN>rxYsQcoe_g;6;j*5<;_0{T%Jc=s61qbA{CHh?`SJ?Rfh0skMpBN2sLCk!)9U4#m z;P(6|kB*Q8^efUQ#0VT^&wmuo3ZCuLKe)bwXl|g5Y`?YUjey7d2A{h*GGX7o!ACPQ zO)q>#z62nunFMEyu`8KSq&=oeN@*rS!>Yble5%y9P(bumI{LWBn7Ecxtr2)8BXk0L z-wizUQ{hB&LmAvnECVYb1Y1N~#Qi9XnEkTsIOi>i@Xdy}yQ84{5!}xz4pedj-$4Wi z3rY&uN6I>dKg86W!KKRA@3tKmS8DvvKt29fl0WKT-e7Nbksxld)AePfaGfNZe*+t# z6RCz6$Iwqb5AtZap9zou`o&60?;mw^Fbj+fcU7RI?T)tat!WzwB(2Ws-Ibw`7=`<3k{{AC47b?Wt7x|FGrB5TjG~5KMotC^G z#iF{y2WW5usUXj$anqOtbBF7dMDsXcC%Dt)XD$mcd8oiQx-YxEA9zB4-NJ(`gHqOl zE)slFa8hu7z@`#Df4@KoxL@l!uOC6rE-b%>kv?Cy92}IGu(^yzrSf#?3j!d43ULk_QKw zvokz`x%*ah6nYGE#z|vy78c56=l&}5nvYeMMW6 zNeOHP5#aW>M4P-;;rFYa8a@gVO(`Imr3(qyJ_o zq5u7ZOO-Oi^Q{lrSqF98RW?imH<3ky9}Zx}U(CLXAh*{A;HiDmql>{!*P$ZC`=6IY z<@=&H80x8dpL-moyND++Ioq#UdCRqQyw42TSaO~fw84S$*b&3Wjl2pJh?GIS zqj*Wo$$HR{1l&T!5+G`cOBmcfzlc{SO|t#+msHB)h1 zZs{?_2GGTT!%9=i_m$|Ra#;Os#e}Jk8}@QH9<|Uv$yd6C;J|qovmZu!XTVKFC@0Sx zpJxu36XX+i$zzQ1J92E;gR< zVgb)tvT@xCsdc>DW_4rML}QtY?a?@ncn9dLgD7$YqhEZBbY6oM$|3MfF+cuS^vA00ifTe-eDDSR%CA3*z?Z~T(owoF z6U3gp7jdO|-|s$(wsdNILz=zEI4F-VvuXNTH~(N5v8{s>p)k!a#hs>f#uuB_eyuS# zxH-z#dE>e7w%GaQm4PXyrkhTk~zVP@n8tjO^TtqM5f zvkbmP{?Ot@_1wo1X~*^H!Y=h z4Vz?|e`0s2^X2)`OBG~{;X5~d`j>es;7*k1;5E)}3-ImEhmi-M?NbDPJ&tmmV^l-J z7MP}x2wE~SVRuWA!gPgx15foXDRjpQoR`^Oep*}?crzCOxBg`8j66)*%CCmmoENnB z(ddG0BQhQG==^dFp$_U?=}K-md0(N2JpSz~)y&3+1PUk2%i{B`fL{SQY+en3i2dJq z{iS>!1@XQbe$4t0HBbCMt9hzx;(S2OU;nq7Cjr!a?!O2cz$WV|Vgaxo7CojumwGIUXQ@(ck2XzqNw{cq_EQz%%<#6%AKiU_+XeY6qSt;s zOt_(Da6@De%`7&YCuG>(^Sg8Jr@PP8gt+*d8*hmuh7`DS&ohp}g#9#@vEingl%#Dy zEj$u^|IpLkemyWS5KaN72d43MYX&Fe3cT)Y%>Mxge6P=>;GSqn3Idb(X4%v+yzP(9>>Cr(Aby~#hJW-c|deqU1>8>t<9m#)ZO zHm=rO#u)259O4cRFel28!er+7WpQza3e+STn?I%TrQk{kf-uhmfxI~g+8No*V`Mfx>SY~LjA~p{9St7bRe(`rBjq#ns(91KqL$_C4 zwu5)x!2zEQShx#<0$KV$h|G*P)h}2~obU)uxtqACzhBM9FB~-l4&|Fu6BHrt_qO>m z{2uaVVytnMEvrD-O_F=G*;hP|RU+|@!H6Q!AIdfvz{F5h-M;43$A?Mb8^)Du>D8uC zztpc&2>lqyCfRyvGfusgqS9pw>Dgx7&-3j*yy)Y>buro!mkzMEyHLEdC{iiVs84Rz zDXArp?Fh}Y;k0?MuF_f%W;Ci~9a2aETzLTAFzCGsZGQhB9 zZMd0T-s+O-AB1GzS*<_9kcI;(8q|cF8Pr*p9J7(PTz#wqxl}4zi>fl5qc#FE;xyZ z|D-#9r(xfdTMl!aLe0sxkf$Na1qCKK|JcvqcvU+Ja$SFP(DKvEXc8=K{d3yKc#WeM z`1hHaf2DlFuxj##7zXA#!aT3L=5pHGVrk>1aw)f`R>qDqznKU%0Fw-VLYnNYXMQ?d zyH-aW_=xCx9Josb0O>dU8iPgLkBJTZy+W?`%g+Ipexs9vPfJ^@LTmW^{HLy@grDCf zPxo{8c57k^xT{a5N{ON$jg2-hT%q})I6Eyfvms&!K&5OV`agxZVxD0v?rE(KWw`xI ztVQ1M)%nTiRF_~{>MNIbEaC{f#L>qdV+A0lNi-Eg`!Fjw!*6_nX@E8E<@Bp+(e1m1dPu z#+8u~_1jZFq%&3s)@?|g`aj<(uH;3?9nt|h%^(dx)i+S=Qn{e+BGjDQkzH&=(v`E- znT*5fOcmc0wq;u+Ga(n6vXfOyz!l!`(fa)W7`g`?OcCaRo_h;VH z0Cc*oVqWlKl%VDg->&Pl&af->l#tiy*d2ejIGZDfna_=X(kTJ7 z3g-3Xdh9`>n~ zuj@#YBwq0XlMu8CmpQQvu-T}nCe!gZahM}+bbnE=Y{wQKffR1TJ#R}iZ;$eD4RA`F^Cofmn*AuHLT@f>W#aP ziZe-5mO!)UsE2Sb`UkX_v(@v+ohMNLht*akz4%H@s$5kqY%!e@Fbs4o#!&{G_TiTr z2akqo`MBW6ktby&Sufw;+smtBz#z3tCf)Ua$lBa|jP&k;#BB3B>(Nu3 zz9oO4m{BLdm#$zClSIX@oG|$83{ejm!ZQ1rHHAeYk^!K!1)!ow!v^<>j>$%Ag|{sA>AD9RklRmMYn%WZJrtt9n+8iVs@ysb4` z$D<^T!ApqY*8JPo>%I8>*hY*{n1YSs_}*i`jcrPA#z~+{a!|9t+Tck-AH%;e~HI5=3CqZ?D20S>QBtLpOWEr729VzS^z2grX3i2k9CgE{Rfx zrV35l2YrsN_E2>GB+`UwYFX$^M$m&E@6Z8-eF&J`#1mFCC0(1v`%fh1|0hMiF*JsM zn_g>}SZi8w3|)V2ZJiDI%kbQ_^$w9~rw2BrF;@7UtF_mEObMj_^OP`QGU^TkgHH9| zQv%t)DZ%z%P-SnxK16_1K%jp8rfyq*wK7;%?3mU)H=?s5NzLB57y+b2sfIDlgBOIS zR%wHX7}-n-^9~k4Muw_j6uG;U5?cvGEp1c9#YnAeG9+6(A7?9Yq<`k>zVCb{6fZ(~ zx_;5_l{DCG$}4hE?`p|)`<#EZdX-bHfBs(vlh?nPElXt3NnUY%P1cz3=PXEU=o^f-zg%!S%< zxxYwt33Dh{hNv;YmL`Ev5U^{&M5eMyDZB~?UmqiA+fs=BO$5kH`no?S zxpY*E60NXtl9Bn4ZMY)PxZMbEx*iW6l&V&?6{yt+)u{ebjH6sHJ#T}vU=x{`nBc-! zq=t&p2LmkOqKv~*HS94(8~aQ^n`lbAGq-G>Z}Y}s7o#}y&LVlhy+;q{#jjw)Dj~?< zKg-Uic3u6Mm9@E}^J(d!$68)JJF?!dK7GoWC=ys{<;;q{V{53iB0nFEYuOx$@p!&h6`OG&Jb6 z^>U0H9HMr286W+`%Zs%Q6|GxLH8g!{YHEz_W5B?;^Uu!LZq+4KKIivi{pCs#Paisg zu8;L_$=X8sEcS36#8_L&MWU7^FE@cy+Q_k{ZW?2_RI)%~Zo_0U6qiz6Z(suLUdqVi z6Rm9)Ba^0;CC6!4G>#FsMKeo&m0~n`1J^awMr!fn<>&NuN+IrLuRW#j;ZhO=d59&Y zIKrh^wDNb!yd7?{PDZwFj6ysP!Zrgp5Fw~kC54?rM5*{2Y@2sfACRbXLThUq;$Kty0N>C-RWH zNGf=zi4GhekCQrx^6gCui8K(j6I-B$5U3JI#r{Q+ts&s`O0Bxy<#LDj=!iRp;}ab` z%j5wDN07|lLN5Ckp_~XbdxS9Qi1yd2vAnj0{?sItcQ~V|sHNVyDqT{`R@l(_5_h+^ zrGtTQQnJSDnaz^HBX^XH38178LPA4%LWeev)0w}`1ioQtNN^>SfW`OUd&@6zxc^Gm3%8ek+TQRI(vGx^vzq!l^^KXgL=^QV$lVw| z6VU=o2WmaaEr>A5?F;G=5)>pwKDFs7B9D8!#YIrEey?BV)1!w>&`@I2`vARSV)o1v z#dTO-N%~8;6Id8I_KB*p51TDv%+8PnI4^CEmc%lBdrh4}lYk4+4JS3e-v!PdGW@2U z!G}~0T(F*wy=}}+!r>^<3~~ON^gQRK&%t}OjznN(^v~BD^s%l&IeM^~SUThIlMv$B zBy~d+B;&I(($1Z8Vr-8AIhn`VC*{jPaz?*9e`jCOzlNiHloWYj2N*vUg>xfd;(1?N zT({OX&D}9a5-+@5tusl}$J>$Y&S5wnF8M3bG`tKS<72dHuGPa+>Mh6IjB9FPQ6Ynw zrfJ)Q;x@eys|5%bCc**B$kRwvPQUCU`Q0IH%YV(^&h2wGj=v2MhlPZzSBm(CMwOi_ zZvAwn@J1FQu5YM}NX7dZ%(tse<9B_Cu)Vrq@vBXYMyi|z92Nu_;`suKX8#~|;@)KV zQE8)%Kv=E3UyHUBKlroA!Jt|}qy5DJWL?(eA1KAg zRJyDOwFGj>w8`dKG{^bP`P_sO0pEusaH|_#Yc@L*pl!3maX;DMG7Rw(Kza&JQpWV7 ztRjEwgYZ+aU{Hcp;iNC+%YSO2D__hXYwYpiV2`4BGbPiU6qkQc5<6j*ckZ1nWbMR5ho?8-k8*CTp@BkzX_8NfSLoy_Pb5nBz-ao z=Ub+U2Fj6I6DR(N;R@#pr%4hshnXIi#TH1!9*xM#qQHT(&P~&0YEVMPPp+}BltVhZ zfn%wc{e$^E%_?}YpvgSR;;R7ZZb3Ms*TI_eo^}#V44(z2TmzQQxh!@@ByBvioGIdp zwGDm7v*PDzhhq1NF&=t#NJZNF*gD^@q3>D!%t$QUvNk|>o!^4ko}c9z_>jERXD&)b z+CVt2yWZG)+E?@T$eraIn5Mt)8{5r%eB$j076UpU+uStq#&}d|G2F7!2hUl-P+3qduYc-IB`^R$6uyx-R!sxNHi zm-FL67Q|oBPQ5wy_)_N1NuK-_{;8Va+H{Ed<>te|`Nc>u!0)!eRF}Hw;#{Kew*+FL ztPuu`1x+^Gj|{|a>R*pvfg}^ACk<>NR*?(%bMbi5ULMUqk9Fv1k!a^`p3l&Ps8b5& zo^l`)w~UNhf`YuBN1emXBbWeZhv#TD`VJ8R8Eh+Mu~*c^6h(0s@u~?!$lwaEHdW^$ zx_kzNftAAzl+k3EoJMgo6E8i!pF#WbJ^n-dskgT}L&|uHGCAW7DN2O+Sgfm<(@8(2 ztY-{>Duk)Y_{yE8Aq$X=)R41eBB8 zb7M<#G_EdO>AZ4O&dUv~%C{g?X~Tp9*ZAs`ztx7KNRbv!jG5wPWy+)uXZdOW{K}Vd z3t^Xi&hGLwFNx;nnOoI1GmVquIw{}3t=U_}W?~Xhs|HBXWi&iT?jol5+;?jU>)SD! zqedr!KSysgX_Zem?>J3UUeY-fgxP+VN*yoG)F1dj#KXPH$EajvwxBO9GJM0`k(YRf z?ItozsK6Sf{bRCfu6V;NP`?= zDpYn&sw+Jq#Jpu}&$)hy&53BvnwVgO`M(imi^kZY(F?r2C1C^WTM)Qrv`DAbk{@D( zETGS_M!n))9ru_S7HC3*XC3mrwxC8^ObT4e#DcSz^NIw-&n6yfZ*9xKo}3XJNU{|1 z+&#HHBjNx;-ERVH6Z(BvXsH15Ybn4u+O`*5P~JPvIcQKPR=eLOl=F`H?VJ>e?C;yh z-1pk;jvzd5Wz+)9AZ2}YLG;*8-Yr!II9vuybu*+ECaQg*FuOJ%E#DJKF?EF`vfi1b z()X*7lJ_rc#o|za-5$sOjne+qts9&Y?lO0iCX}?l(EI~_62~x3c(Ok+wJ6E)k}G>- ztNgLw%ytWx4+8tyP{tqAU{&53yU+VwgdVOYwkJMghGm(30c7Fdl=+W9aAqm{MOWwoArb6zyB)@t!8?W@18*9f6 z>&oLt?@l!#a4EPV@nO#e?gm0pdT#}J$7wwLhoT_+?}~!5tPK^SC`|vYD9Hb%D5^;R zQ52Tsoxb;Ho6mKw{`N+Q;N1>qI*9??!&!(NuFCBMV8Tb60;7jn}@o|Qf6m}dO_WgYvwdkUqqlIL9pdu&>soH=IBeC#Yu2;Vch+Hn#Dv7vnkCM#D@P1~w z3_fDatVBy|C!YFYVrQ3gdC36TuNq&i8ezzpg&Gx49$x!|OcP=24vPOg1YVb z%UI=|gs)=a>{Pn20mqA3uf@;iC4;w?^jZ6bqH&7v$9!fX2fG;8+QHp@&)APVk#IG4 zO|4NK{f)`_c`g(bP6#ebxmAxg9#1SE(#{{dj8M%iW{f!pCl*dQyLi$JOZD8-({MEp z?L|x9xh)}GExzd3TifI0+0x{#7-mx>=I)a0)gULx9o`v`{M7sr{v_CWg7FS|Q$Ck(n(3K_8E1<^@7mcQ)x}%Ps`< z_t_2Y%)%C-TEGax7l%f@&+HcU3mrdpZ{BIXD`+HuKZd{)`!S5+V3 zlDC&Gx2BY)M?7$aJ2=4vV}F~vhBy;U(`5UH8J>IkZ68d$CaL49zk4OPzTaw(!-}bR zz(9H03tgmP{5Gr#5~YW^8iFZN5%rBV-FppDtKh?d;Wp-!UmD9(3fc4PX;PCfz#U@W z2zb8U2z)Q%A_hZgsH>~!XUh<_pbvZu_^WpR+6)Rxe7(#)KFrf0A;-d{TrR8{=8N6< zfn)}2l`0<$?L^Lp<`#@w;^w?nmz;oNppDczaU=1%jk7H^mmP1RFp8+*Oh(`gYTlax660^5m8lkA$k6u z^suTbEr~(vM<<^c%pX7pl6*P|4{-vmmolvm`<2_UV4o;AOdTn6cnDhAG8kTRdQTq( zobK$3~3<>P4 z-}Wb$Hky6l7=Wz$oYPt&d=po9$e*#_yuN<>UaI@@+XE_6jkpBiAjKytYM}jveYqWa z`Ht;J-l1w=R6_9EtXK>x`WHS?5*K@o9U1zyp zmra_7^m^08Hk`!afv2|TQ*(>cq_b8k|A&&ThE(JuDb)FDv9hbq2t2lSP#=BW0OQXq zJyxZwjcAq;CbLQGktT>2QBA;ZfmD4x)<8S&7S44F;evIu><>68Dx$XisQ}0P;gEtz zjH7?3U^F(LN|PM$=FscWV^k0zf}jXcy(bCieVeCw_wQ0lXU21mXR=ND!Q5b%#AQGw zmp>fYC!R66a3Daibym<{Wb2b->+5he zyf4Nya|LsfX_%AEA)7F*gXI>4bv~FANda_GbdF+L7}vcC_W>cG_VywY2OY86Ni2HE z;OZLXcE@a+mc=#09QvGxK@3Zn6+~MkRJ=^DRX$!@mdbsR{Q{f_DXfm6CXgMkbuKQa zRls4#2P4wFev%!sQS$YZHeUX~(BP77UI=Q$ zaAx+zy2BvORlNCIT^(Cw)RWS~mbi`?rKtWZGLla!*LSt z;ZAG4E@dx}m~8F9Vama7i6DZOKx+6wq>-I;8u_C^oP=e?>LDnLk6MW=w11dE zqE@Om&#@eJt>Np@&|J|(pwl>{aHCnyC8vAAC3ckT=9eGYw>soC{7LXDcMhWKuCO^4sVU%>F@qMP5s7jVPU&3 zo`q#sjFd@HqMiuqC|PIKo8N}k^~0v}2I|^zGjt^NHrN^jJ2Wq^@&|TPpu3kqt3S-G zSqc}%f8TQH9I=cQY5rOdcsi!OPvb(hO=TI%e77F#CrSHrI&CEBG`44v$rlRx%J&6O zH~6!T@4HqQVJt-EDk%jhx{;R`*oN)PjqNr9QJ9r_zlThZarla%FH5_9S`l=5y2+BD zMH?ihzB=0T7n!$G?{5$>?Y_kS`XzMgDuyk3dl|&?v46l(6 z?=vkP!m;G?Q^4tygJ=8uk$2BENH+W+Z1;6Ls&HC4%p{zy0t=2^jFuV#5NR&T2s|V% zyRC}Eqe8D&1GsA2*R30?#Z95|_I z5P*iXDH&hEC-z46dg0a)v^&tW=Y(~oW1f8rkNy;fr47qy@KB2X$W#2^1jGNi?3j5E zowx*N;R+V-*g|i(BrO=hIyhgrh{ZQmo$zT zaTfQ_)E|dA#a~!ECVm8u>;U`zLz7VacTF-SY!U4h3qL35%SR~clqH3(P3X|s>ht>ZffhNUXiTt{t$CV z%dP4>5=DOOXIkJ@xwP3rceC#6k*@vPr)nH{axm$#t|Y24*7&9H;Ck!l66-tDTF(c) z(S*QTk|5m82+#cx%m$k!YR@KJE#XzWnw|o~+G86HtkD=cm?X*}LWNwCd9IHWYLXn1 z99_!JH8SZ_WPJWl4@T3|!Y{IOr`{i>bs@776jg>Tf75%jh-%;DOWHrLknAtous46B zlEc+S1VUO(ogv7s-n@m=A8wz7x-d*3acO@FTk!Gik>OuAbU%lHw{s7I%^p`Q$Y*}k z?tEd)>-PQeesIo9@yl&{D6stGS114Mx?*!TNRts#BWlHE`VSIJs8Dx_MvhLkSXDj= z91;Z;5+y?qjJf$qColZbW%C4bBS|a#_2?n3HfB%Yf5|AI*?n~@P_((UR2^p1Idv7y zkg?I05!Xt#Q&D->=&-4$sCZMRj;p#@tcJt^=}l6nqY_Vt$J&9k21(FY$n6QAye`MH z3*^yvbSn_?13eAhN4JIR{AOOYvKK0rtyJt=%bOsB$M|V+W-kLgQ|ryS3am=)Pk(Uy z_HdrtZ{}C5S}mbvzO`VfM$vT<*k1@Y*lS*hTybRyA2U)WpxW zd^QJ-Y`(A77oL<`DM7ddL}O9w_Aj?Miz|x%8gZEG2w!&prZn}9`{P=ZHLLB)nY4NC z+M3*zU_T)QZw`&p7K|EukAOu&pSERl+Wda@TEiRbAOcEEJgyhe-1MB==ymvAz#v+p zhLkmDhu!+Et(<4v9*5=@smU-xEro7LviuVyT~q?4T$$$bc=)_px640&LxYG>Lo?CW z4iEIu?&9^z(~w-Xn7lS(Z9@sd!oJGZstUM8-?r5Xf-74*p@GO6*Bl6;ptpVap_#cU zmvk&syc{XD0tUH+)CAoWbG&S&Q{Q=5S*Pa(GL%hd=HcOzNfs-9)&JbNFl`^#wSAj6 zdaAu1rg@uwFxQJa8Bd;9DhzD5gLwW1Cs?}y*NOhpL==Ds# z6L4Vx!@%?F$?Bi*QDjjXKz%yS3G=BkIBfbH)?kOm36(Ew49Pg)LN`KIm<}NcUI)E; zmov{hH{0O}-DJr9D2H#XzV~vs_2E0c{@CK`DlExH4)Q{4ziEn^Y;I%Vh)ORnZTSyT zj3n<65Kf<}Bs#3jKWHy{$s?>|;QZ*bor+5i=a?~`?eks6YS$wY{)bo;Nb~L129(~2 z@I1N~NjOUR@}7|*f^7hbxZuUmH)Nyd5^Ia@{$~~{vK^YO8Q>K@l?)O`JR14T-Yb0< zWSpVSZVwWERO`Br3KPnQ)DOMERBF9vO3@E8e{?!!C0M`-ZX1i^C2p;~NNZ*^s%T#O z_I(7_HTo#eA@e}Q!3erJs&{qaz;?=;__i(xU~iE;*c+Nj^V*wM}Sww$2j6tGZ(9l06mG&2apT#i}$r2TKhVAs6U6%qgA8`#RS8F znU;?ZASvsxLZc0k+ z!U;1?#7*qq6mc0HD%0*6tS`go-$h*#v=Ns>vDiWyLRwHyN>lJQ-v1)s^;nNLu;?sP zPjEC$CPRvXw9JWM*~R43;i0|HA_GbG$2nxu`8BJ3z7HFD?tl5$cUg7nK2XOsNRiV| zLQ;Hy4vO3;0x_lQ&m!E>;0U&Xu|3Yns3#Vau_ev3nCJuK$jpnaA*_W0hgM~Fc6R;0 zLh9y_UwkNYx@Q;eY!=>&P5?d4tSpNhbGdPG zfN74C)O#0RpN@R^ef0zDxq|kQ+K8D*7^Zu66s|)!8 z-h3f*zJHeaS~8#$<6vFcgfL+CzN+|*A+wH&N+tq#1Wg5(eebduL_Vd?<~26C#gB(( z8qT0AjKxq=E6oT-vM8;*|0LC!821OTwwEA-08HU~c*eb_DJ&HsbYSxL*WQ3$9f zchu)Q(oUFR685~wIcjbin20p=QS^0# zZZ(-mwdP?1t@~?-7kL@7TUZ+_7!^R#*s1h1W^D0+qhF<*LZu6IKurg$&V3#I>it)X>v~NH2 z{9OE~Nm*Y6cap|1gX9lmXEZC1m-%XNq%;c4VhkG*UoQvCw2REh8YJ2I3V`NOZFONR zpD&ifO$E0;LC|EdVmuS|$Hv~0`3`8OW9%hqpkaz%mm97#uNuKq6dWAlJ2eWBiq=e; zru{bju-|b0bHX=Ap=AtUTx|3=6D``Ueb6vT!UQt}d0@k49nTkd_d&>*)i-BzX8Ucf z<@N;xffLWX>*99bVyG4~I_sl|yMY|03t6`@7U)0eZcM~bm`7q{?HP=r^YR6(PVSs~ z--*Ngc4xgFP+0NfviEfaW&X1P3+an(wFb6SS^;i}kk28B(`9|#tbnK==3X_1xE-d; zG>9+&5T)7svt~0J;LX7S%7+lldQjs1VV}^TN(%d}h1k`PR2N2#pJ>$38b|9oi6^zT z&{W0!F7LhGWLo{l;vPgnWtc$%wP6oNJHMB}s9(Udg3xg+pxgZ2X~Qf|QP$upvpXJRmrYcLqw5WUir@ZAZL6b9ynnUJSmhwX1|NnM@GcZK2=V ziY^D~U6Hiq!nzZF?nOn+3o1Q|jcqLce_sdSWR#2d#Tip;66rU?*7Fhg59WHPCuV#F z1=r{+qz*orS9LQ3U&0L~E?-@O0qwlO?S%6fn2z>NGUGBbPsATlKy8VgRGA3{@6*mT z+n#SLchFTvUR+m1oCD%5!)&g(oAZ?g>kk2r4_#O`+$JkE;lB0pq|^+Mclq8r+ycLf zSJAk7E8H81@^`)2skS@G6fS%Num93@wE1*X_<8a9*WwpGX{ImIienPQ9(iO72Iq&3 z6c@<52@OtZk4gEz^~jmOQkw2(eZQWS5P9b9z1E_G93<0ym7S{xg{7*FC*HG|S-0X< z*ByZK-Vt;1qb5&DB0T>?2m$}Q5Tah6wTFU28~(QtqWVV&L4XQN{-Yw`$&Hn*ZU|7p z)4n#2Lgl5;p>GJfJxQ%9JvA})P1PKj%2k3?B4#5S#vtV{>;5*Lr?DtQ#ciXzD5+$7 zn?NV4I?s@wip@JTJiH1YVr1-lx_RqEanGLMI$aw$xzX8aVUG$oVC~FpTZ#fIeYv8yoNa?U$g5PYLI# zB#Mcfuq3gZZvP=JPFw+0Pi&b&4;DE~`QDJ-pJNiM*jV6`N z7y6a%M+p{|y*_*=SNd@Q1d{e!FN=9AHotn=`1s}tNtsm2t>jB2F{|Mr6W>GiK!E9| z?@=BC`AaseSS6v&_Mogd2%PK9+vmxMJiJJCIb1Kg2hZI6U>xlpwD|U_Rq5!kshMY1 z;lcRM^YHwT_UVuV7a4g5)=B#$ib?@fd;K)gg45ijVDQBcB}q!G%HG62+r#%xveEml z_1lyq=~PEf#{Spu!D(&w2N=RnSJLtVc$^ zrOJO3H;HmtJCTY5(>E>C!A~PO|AhjUZ^L87E_3|#ej6P5`^joj`MJX3vT?fa@UQOk zSdYl2(}O@~p=bsI0-Z)BZbZZdiF=D9I^o;YzLf!d3?G=2U*~8b+~jjE>Hfnd8ZI(z z69QHwJC9HrQ7S{eI&?M8_3NHfwdPxmT0&se!sAna)x>5=EtUB>;@!scC~xoO=64iL z0!cbFG*v?4LKTXE+7))s#c~ISe0Q?y6EDL!-RiORW@x?E+^?hY8RaW8vvxM$rm#TH zkds#!32Y#GU6i&YDwQhH#>WujO_4sv?{*4#v&tb}MqOWTRt>Hn;IZUOu!nV-v5GZA zrO9qd+~u1Qba_=Og4MWFEAmql)V`U{aR>(_LD?IZhOLAlC zkxQi2RDaTy9FxCdQe!t-OmVetzfmps^pB@N(h$f@F(%F|0}x;@7L{u@Xw6msU{)dP z6ZEW(C6qCER>D(A`}@`x%vmb0AWgZ$s%8Y`B9ViFRE$&=8%jKLGH5YDp^YhehGwL`gCcSzs)&vY@{mH_%mAnc*`! zqG&^8ybSpxxn8Sq#+kP_0Tb3(z}YM7<%GxCemLdT?%$J!E+Im2BE>OBx_!F4Us&CDR{5{VBXuCbcs zLlEN)HFrf`N)CY@$Ha!>=R9@R-J({tk5dAh%FFWlreE<5b}AREBgw&%0h&J6(2$@3 zsrlxvj<7pea0fG5r2-ZgnpNlu9!ynrYHW{araN>g=-d^=jsQuK`t&X%+pbJQ3Wb!t zcEb%6{t!dCyLyn1YbTmIo5x1&hS(h#i8w=RT;-RE!JTqViwmGXMA-N3S_^xR(l(*1 zR16nVLc(av#GvS?LUiX1s`zY4)kI{d5x@vw`GW-r!Y$nIy821?U9#kEzYvJrVtp)*;I@EhVcyNLC9R0oKEwP(o5;P4M=(>oh`AKV3s7r&<9a z?Tg>SOhgHF3!`X5m|~Iub9l5^)TqoOd?TaEOyg<1d1)e)W@0(91UV=v0R!1)vImK) zR7tS=l-N;lcqr?DPY7S}L>Bk`j>B(ra+xrtzOkt*fEH=EWe7i*h7~B48Za1gV0Zc4 z;=;l%7-T4#AEzk7NAE97QppAhaK@l0QOTPp&5Gsd9#G<{Yvm9cUPnGQzHbio?|%&u z#e$2*6r&XC)K6t|bNduQSr=A73sBTu0qpM^ko`?!@=rdts#VKYfQ5~d5i8g;A@swE z2z7g)QEI#i$xAU8T|w3^DDp#}#$fl>Tvb6V!Up2{rb`#HRqBe9Yqc3P&Kh`o#L=q?32pyb>&!E93h3;q64Z;ac`? zMWR@{3k*HeNRp~HOCJ1_zYI}sMo0StXw_}~2VQTIA$9&K7po@%pEm;X_rw@W-?@7A zsLz(FiJG?Fp%p6H?*qpRDS>%$jMxqMaBYohbgKy;7hp1M#yWUab17NaJCaP`>RH(L zeX2PK)`mFaJvS%~yA`OgJ9<$@+d4ryi95SlphdUS%11AJ!A z-!qp^;YW0g-OD9#KZGzbNosfcHMMGY-8NIa?A+R~bY5gEAYz4t3JvOd3eR^d$sEZf zJz!VaFiVHIN7Y9q8Jf%fb*k?V$0s1tH?L3Xk3d+6W>=jo0eo&2G!$Z0Gy)w@M&dRr ze99F<*i>Mx-d?a#GAAaRrNDy8pE#V!p-Wpm@TL{44FlWW*s~V2P8OgLm$=WT7#)ol z=VE>2%Z@q(4UZrY=qVC@+zVrO7N9~GcT(Yq=&&SIOPB6fW%Aq6n-K}*yRHnM6$#mS zP6$}MKFVdmjgi`BEpmsRxmU?fC~P$ne~hM-_ngrgrf)&mn<8N&8~=P zM%{Q7KlQXv%I|Y>%K-j0hf&G|mGgX#vmCHWkkvEFUz98$&g5W$%1g4((8wnj|B^d6 zD8(rjhSo8MX&S=Cux>I>sf{G`Y0%^yKeK`HW82$}QW(?Kaj(XojiOvFbzOpsE>jmv zS$8OUCnY&J=5tAb8|vp*H-ld(meRXcXbSFx27j291RoH3>f|C0Db3g@HyTv zIi;x?TU-0It#D}HBkQfTm*k!jc-q&&pwsUiH8D`(OO{^MZUU|{9JNENrONQoUI$oh z4;og>TKf9A!6QuSdMcb+EYYyKzaEf^LZFcY}|+eTX}o! zXEQ(#3}mL}9#VZH>VPTcW99V#q!WRfv!6ADHNmUG$PISEVMtLCM3}qZ{q-)%A)J%) zf48pR(@0Jq6KVh6nkY)Rk2C(zMgKu6=o@aC|C~o6oA^q+RVH2vN5H*Wd9aD2eJCn} z*}T(-c0D_dMmZ*o5u?EucxZ{bosI=7pjX#>PF*?!?`;P)ou0fBYZUyXZwfUj_MLWo z0nrQm=Q!|}8Q<*QALTkr`CjBgVdwyK{qq^$Mlx44B0!FT^zOf#wpEyb|0Gi-=kP94=odz7#Vf@Yjs9vl# zgqqzu7~dCocK1s#PSfCYZYTTjMxvAbyusTyc%l)%v(|3)3Ofs5-?9u|?_6JR%$WLH z-F>({!3Q_4P{R2RDYlc0l81v{&3Gf#*6%ncb2w$LBySTRz|#~;e6{6!62(-#I2`u- z8+fj_@y^22Afi)pPgGU)8xp~p@Xy~$QK)ID=xCX@V30kcfY+OT{)j-sIzBz_E%QQA zzi@r2B5~FHAF_}7zstU9Mc6PXC=9}X%RZWaWS=*PR3l(iq_(2N*XQZmg4enk+ofp; z+Ny1e)7NmFdZbuNvFO#!MB24bzMt}vB-I{ic2vxNDdga2R2$TatCFi8s2>rpWKzvT zafA8bEF=(uF#L@It*j*uIX)_AlC&nurVovhSu`EL7Iu5<;b z{{OFAOgYP)!P)J1L@h0b&hx9T`Ohovyqz_K2%Bcr^SUP;sr^lA{RPtdr=>Q{GJ&Y8 z#n*l{`dlHnvG?|b?RJA+e4BBZh%q?Sb||2)h}*Qn*k-8F3cJ;fyHs6J4=j+VAT*ir88|1^{CiSKg3| zrA@)|%8lIzgkjR*MPnnGLdtUwIEjQ=hupJ6cEaCf+cHaM(+rkZS~s5ev?8|Jol}+$ zo}R|;?)TGT79AN=x|^+2B1<&Y!GC0fyl z!a|SYbtM&Y!9?VDgk)&#S3mhZ&ioQ=Zt23s(YEgaAymsD%LpZ?YBrR_FBt~5-0{?{ zB#osEhsqs4O5D;YF*aU~Uwes~gf~lpC*I}?v>gBJOw_6-wy9F!S&T7yEE6S6S{jB4 zPx?_JFmNoLc|qUz^aK}~qOOguYz0x}=gzZeDa=$op}rcml(K zW~>IybJIW2`ch9LdQ4m4Lk6`T%RU~8R|$4M?N{Wy^TCOmT|QXATmt6Tu-{?;3@9LK zd=Vj07Ub|pYaG0N6pHbrqYF6zfuUj-H3RA6kJK-}D-xy$0%Tq#8H3NTBsY3blQSIE z0$9wLiEPJ@T+CynIEG;y%EJQvvj);2o5CVsn$q2YqY!NIYDL5;ht?C5lIU9;1Ebg0 zK8?oPM|U!Xvzu&)53IfznpNmQF5C#G8op2N6D(A#;k>tWV6>h=wBKdpLsQB3h$(Mx4kyK!Y&XE7cJzXOzC*9(V-C)0xZ@>Qvd z8AO@>qPnS&1ik2>rQFzBS=slXQbe1fxNzJ-IF7!s3(Iwb^e*O zA$X$66aS1Xgo%mP_;BEJD-lnCw@wuPGK%`N*{S5;X%l-gTY~zQX!cXD37RP8 zA>BHBh#|!1d;g{t<|fwZ15y2lTe^1!ISVlK6VV5__I#LksTs*+^P$2C+bJkB` z!zqLn(4dO_92=M&u}I`_pp$9H_~xjxd&eX>U1&VUQ10-&1w#*7GI3u6nTtRsts)5f9(xXIvdYpGYB z@AH}DFtTTxf2U!RZNogJh0nZ%R?M$2=>It;r3*k4UmqJ7tL_vMLg>~{t^Pu8QdGL|OGfey zpRqSjZ@cD7^lKiJfP#oA5>d2-I#7(inW~wG^wj2>Tk@j~22+3U4j;p~d~Tqp@aQOC zGHv?x%|ma&raYcIJK5sPyp2@I!F7yu5oU|7@;PySY#IVJw;rkK%~C??I(H6{HF3t3dzDxUf{Hcg8;DlCY${2zWWbNTC2TeoU;luJwOJ^LsL zyR;YVgcEEjxly1%?u{#@q~IUF$Ubh^RS)aNelPEvb*?I<2D;HiB_UL54QV@&eNf3% zkqUuBCZkJToJ0uW#TSfMB>aN{gaZascpzMTZNi6yZ(cSZ9&S>QG$bO2;Gx-$zVU`x zz4H*R=!T~0{Iw$&V2i^eF4}XT#~&;!<0dR;R~xRTc1dHM3zmGwK2%Vr)ImlY%?|Md z8(VB)$_LvruPM3(u5{a-J%YDi>>8Re=V(K^Tqf5~JOOiU#Hb^5Rok&y%^rB z%e2EZOn<8sypCzuN28muuLCQXlTL%`@F;%)<*jw&M+G5?R*a9tEV@VTW;H%18yky5 zYpze@3sS5M%^3vJ|ncM%jmy;C^Q0Y{Pw*1T*ItNP|CcV8E@sI zQ>Ib?6Mi*#>u7B-u@`^ta?sw}W;`s2Vn74v>(&CyZJm3&)KN!eOL<{iUi(H(*a95w z)2ksjR_Q#NDCtOK+ezy)TBbi>^8KAvEs;l;?*axN0Db-|{d*~OxUqY?d|AJz66ZA@g|T!*LQcQBlm%qBTQ~C-Kl0}ri z5Eb1n0>QBT>lc)eLSq%^3TSnUUBv!R^loSdOk=z;7lssLw-~%*%Hn|}J~p#~>BTld zd5Avwo?o&(bCr!+ghlQ&cDe`F>jb;IMbFs@bHag9=zSn`DE$+D6vMfTE7r-realCQ zWE5orngsz6#eN9FcvuzTW3T$*68Ge2*o<^2eC5DSi(wb5E@^_Pp$^$Z|19|uRnSY? zXRE_+p-$HR?z2ye1wBU{Jq#}g7+OhWTp%+3%~FCKNo8fd*bG;L0uy7}-%p-n0rD{2 zmhVrLsIb@9m+nSfJ;ugCCP#-a@*DhwggKT_gvIf$`*Dx2&-bk&xh{TO9g>NNE`x)_ zWrT#F5D!w*!9)95?^UPx@f@hug=Ckx{uSqJ5{FJ_4o=jB+?Qcb{lcP(&-WiY2|zW! z8>D64*&G$Wi2B_;jlpejk6hi3@fWkNT`E;MOJ^3Z%bA6Y%PoKP@K`+C7RmKuJPyIX z$_IOEmsO!wd3H;2mC1x&Z~Xb4@%`rZp8Df2q$ufEW{uT}Iqp1Cp^otW{vuK#9~%~z zcIPPaSxLkP7EE(-T;!#+8q;TB;oJ^QOWx7R#BO8;D@G&iY7bdHgjdX{+G+>sTr&3h zegJ*%AEA{@=XN|7&+(Kg8U(7xSZyqgtY-}MlGc|Y!(VcPU(yI0k`A+UA|8`)O$K69h9 zu;DC)x5f=|)9HHT4vPi)L(9;2SmIC3vL<~L^#7rxY5%*DrjBragMz~P^lv5o;eQNN zeXV~C)U7Om^Q`X%=j)vO3|IQ~Xf! z-K+X~0;-5^19H!CZM$%5EvF0j;Ooe(6Yob~HG0p4lk|!mC}LZ@Wdy=TTv?(Q-Jd() z>g9>;nkC_D4F}9%2VAingU+6tXup8b$e)MNgSi>l<*9wnOvbb8`KjVR6Da|8nh@bl zNMYtztY5~RUF`_p|0S@y$<37Zcv3&Ehrrx)FZP^*_|uK&;nhKpct35n`=wx{n@B%w%KKcPh;K@|Uu;+%l zL)7rR;b(kdQJxH7HeT@p%nH0Mv#xEix~#Po5A3(8An78h#R6*HWJO3} zRG_V1ynu%s?)I14fhjq3A0TQBqD4hBHsjQ`buwVj8V7Y5m2bY6-*U!|A9+ywgMrTx z6v8j{<(#EkHR&8#cIk@EF$OC3W8)!JGtxT%MhCCQTy^3_-oXzQoVDAmhXLZ^4V-8pVO0yk-qAW)b4GuR>U z__3Aimm$Jf`h-^+a=A;idPxYs8nD+AFj~IT@%8GFw5W)UzkM=^nzh~)jB?=Oo}Qr) zWLW^`Hc^-*gH@q$92u_Pdm1~W%$keBxcHcdC!~Nuw1f2 zeV|g^>F3u;y~r_iv|T=pFv0=npMWF@00s~)O}=k&5j7Iy9d)H!v^u?XjcM;0*^FyB zq8^h0pBC~b}%R_)^UQpH0n zcwj|+9Hk^YumP}(xr9YLTf89L>Crv8J6Ni%qqDowe(G#6e_Uw=Lh`kH%xCu$v7RhH zrkQ{$B-hweJRr~UJD(kRmLJ($T_r^vb#^i!*zIuYjK#DL8>5uO0!Cn&qLxufLIWEh z&oiTP?)Fx)kle*KxQODFD($CKm=h28ic$&b=!?Ys;Xl^t>)=vtFYso+Mb#XgvI^c- zXWhPh13_Fnj50n61{sj_XXwmOIqI{1?0z4ar~b~I%zJpXUf%ggT$hdi3EwUC#jHS$ z?FcW>S?uSb*&uJi;@L5t1eB(2*m9E^@;P)kCXh0irw(B;n5fDCL01$i3@}$-S0ul& z{`-Fg*9<80R<&bCgNGmf20L~<8-H_0jCfDDLWs;KuT!?KNaBK2N_TzYkeKV%Ww!Gn z3~3>0e@If=?h_Sy6KDX7z(wE!FpsrMz$&nYwUId1c7{+wj8OoTN+Iui-**@teX;kO zqVKf^n12%qcLfp`q?$GF8MZ3!wgEz5fx3}=`MwO*+uB&$jI9wD{vt4kwX?t+uz)d3 z7_*8oO|))x$Fa2bF-BnwSPPX(z=IEdhkU+lm|)F%67aMeDVA zsHBZCc7qKMx48G-|0TN3S**3OFaSfppHyi;R5K>V=;)u^W5r1Jo1=%h-#m|-b~(Mj z$p5{0n4s)p!ho-vA*Nnf;Oz$+SgUcIPCeoQX{-ffqGqhtZIo)ERFg1VB@EZlT4Ibq zYm3%k3}|iHyZ0jd_C3Yv(}%ED_Xr~PCs!f~3*tDV`>oZS@ecCKKW!p1E_ed#34{hm z2pYoY^9xnPnMK~VKg5^-$H@R5)}~@X490{gB?-e;Y->o_L@7|pc7;&N#^P9RyX|>i zd~t+!JJqdcz*dtilSBn^-OLWq*tHBoTdXn&*F|W$%`JhY?n*v;aR{a7`NRF~xM%KR zt%EUOj74jOQW7cK1c6Tw1hE*AAYo_-LmLmLMEmJ<$i98ga`NO6j0xjZnNos9lB^)c zh@3GJv6{z9jc@@iKsg8m2#Z5h$*&5-XJ#w-!3=+NQv)H=SnFbpz?f))DhxxUl!T!m z42jM5Y|Ul1bLR}tJTpqG)oJKib(JK)?j$M*Xko3yw1yGWIoR(boX#+aLEwO~U_iKn z&`I<8h3(9&zRaK9vP?9@PFzO_loCiOkTMcON*kL&O4}7hN<$E6!q8xhVto8p)awW0 zG`X$h$|K=cmQwAeG4XWkxvf}fu%QNJAdE~Xi=#k<(N>ETUkP^c*&l9Wso^4}LlB7A z=!y{pwrd?xf*>*}byt)i(2R}ElF4*tcAbk!mPw+57$aw+enNnGc?(8rOrWt+V`VIg zj7)?UA!AdPC*3jr=BGROL1eyf@%@e<2H!XFR`-~~_Z2~)0mHU!7vfae z=aMXwL`QpF_dqF|Eq+)Cf$)c*It>*`x3g>kYooo+bcV4A18B<<9zUEf5-uus79}da zOl?Df) zG)&IN9p{b^HlA0qU`*5k)3$38!E<4e)8|}2=-XHJ5 zN)~p+_j4NwU}G_?HqpK^SYs|;w^uZ#ByUW$;@4f7KxsvNveHIYb0X^hmk&48WZ3fr9~B`@fTvAPUwk0A|l&zwiQdAsGwV;7pp7{Rv ze{nRCtY1Q(2m-GA=!ZRT@!wOatmC>FTsMQ`g*Z2##@W?ExB}rg2yuxZHufB?qpi~D zP+_D&$q?m-s31i7a?|h4>+(|T+4Eb7r(=?)4{liz*8b#Y#@w^d+NC!{6G{rJ1!jH> z(_X{m8yKxHp+ZZImI^JyXd9^58x&z%qS^}C3J6=0upMB+D-BPT{qX$gE%>v`*EO?O zp>I4SM!-Y=?Kri!xvq!ndN@uR$4McI3y3}E5hG#OOF9!vR$HuzyhL{d3suxAyAoc( zr?%tmoIUyEb;{c-qTd98NR;owg?EAzFX>6+I4%f7NMvkK}^&vw$`9SeRUB! zq^qmUZ9U4lAN}<8&(5o(9|ei|$QR(kUqa|z79nPk)a>bSuK*_7TnoxbQx3>YwAz<>b*1`HT5 zV8DO@1AbSyL5EHr%)`zyI61Is$U0zDv~s-_!0ZZqJJChczbQA6Ajd`_KM4zEXkTjv z1js1Z(g5{q_{QAppT6G?H-I1?8HM&9xR|?kTm>l=O-PaLIX)Ud?mT?;!WB;J8~Rv~ zqbV4_3Fa!Bhbzd{q128hsB#KYA*9kk2r3;tim0;C&PArjd|KOIfUh;LXHH%XeJaSY zB82;3x#xkRH0g9)*p*q>wg~xsK(j8pq4T+aTI>1d)*tQpO_5PQaDe)$BJ<=_5goxtWYJ1-PD<0WxGV9+YR` z4QHXWF2kh+-46lCct4QH_>rnW#$lI{fyUkyUOL$~t+2ikB%gm|Je^+4L6&Sb17ugkYZ64UAL?tkL%_kzW{G~kuVQ=^6(0JAOP4FA=&8O)`DWo zfZJkAA!Lh?jBE*LwFK?<#?!Q(;of_XRG)nE=ZQUA*r5*uIp*c_jspc zStvldyO5-CN$aYIX8gxp$&!jc7Th)VltOlIlN1POHXWKx(OquW?D2=lQ_fz#LNWmo z7i7zp-I;XSRZv9AGNpq*hCS=ys$9PIMJjQe28-va$l@GVzOQ90~Z*O!C^Iqr;%V4)EGa>1=9 zX;1X5byF}hJbd|SohQ=D07DGd>pU=A=dL@TUSF>u>UAiWJyiU7NDx4?8LdPWB6?L* zspnNQCr>8+_nEXHIGN1ox&r$pxW)C*QCPcr&yM@3aqLKqu`!sRhg@#G<>ke-f*Y>} z9vua6nV*MBCF)1kYEf9NHcGv|1GwFV6N&w_MZ$uNi=`#Z_&6{z3*-LA;A^z59$|(D z?}V9|EbaEjzjlDNwP-sz2{SXZ@zFG6V=yxV)#?PkKLfy-Gijg%RHGjwNr;36nYEs` z%PcMeN2b9W*%-VKZ>KgMo|>NKu_>6ES|kWyhkOF z*|RZhe0*d4Y86hOelyTHxki#CEXZ@VRJzZ?6EJ%Q?z<#-b^YT};IX3+-RC#w&K?0D ze|%%uf%yGoPdw3$!NdeS{`gVgOwV;k6ZMdU2N$h4cI<=$C)N)g+dSrfT;cfDIC0{# zBbS69+a%6m3&#_C&ZG}UdyhNEfyX!wz^4I@ACLFoIPlnGuj%^Hbw9mH$noQsALMxF z=XesK4+OEoULhI6ZdNkaDyvtPrD#mcZWce$TUO$)8oycr+TW 'right(iptc)', + 'en' => 'right translation', + '_type' => 'lang' + ); + + $this->assertArrayHasKey( 'ImageDescription', $meta, + 'Did not extract any ImageDescription info?!' ); + + $this->assertEquals( $expected, $meta['ImageDescription'] ); + } +} diff --git a/tests/phpunit/includes/media/PNGMetadataExtractorTest.php b/tests/phpunit/includes/media/PNGMetadataExtractorTest.php new file mode 100644 index 0000000000..025127e3ce --- /dev/null +++ b/tests/phpunit/includes/media/PNGMetadataExtractorTest.php @@ -0,0 +1,138 @@ +assertArrayHasKey( 'text', $meta ); + $meta = $meta['text']; + $this->assertArrayHasKey( 'Make', $meta ); + $this->assertArrayHasKey( 'x-default', $meta['Make'] ); + + $this->assertEquals( $expected, $meta['Make']['x-default'] ); + } + + /** + * Test tEXt tag (Uncompressed textual metadata) + */ + function testPNGNativetEXt() { + $meta = PNGMetadataExtractor::getMetadata( dirname( __FILE__ ) . + '/Png-native-test.png' ); + $expected = "Some long image desc"; + $this->assertArrayHasKey( 'text', $meta ); + $meta = $meta['text']; + $this->assertArrayHasKey( 'ImageDescription', $meta ); + $this->assertArrayHasKey( 'x-default', $meta['ImageDescription'] ); + $this->assertArrayHasKey( '_type', $meta['ImageDescription'] ); + + $this->assertEquals( $expected, $meta['ImageDescription']['x-default'] ); + } + + /** + * tEXt tags must be encoded iso-8859-1 (vs iTXt which are utf-8) + * Make sure non-ascii characters get converted properly + */ + function testPNGNativettEXtNonASCII() { + $meta = PNGMetadataExtractor::getMetadata( dirname( __FILE__ ) . + '/Png-native-test.png' ); + + // Note the Copyright symbol here is a utf-8 one + // (aka \xC2\xA9) where in the file its iso-8859-1 + // encoded as just \xA9. + $expected = "© 2010 Bawolff"; + + + $this->assertArrayHasKey( 'text', $meta ); + $meta = $meta['text']; + $this->assertArrayHasKey( 'Copyright', $meta ); + $this->assertArrayHasKey( 'x-default', $meta['Copyright'] ); + + $this->assertEquals( $expected, $meta['Copyright']['x-default'] ); + } + + /** + * Test extraction of pHYs tags, which can tell what the + * actual resolution of the image is (aka in dots per meter). + function testPNGpHYsTag () { + $meta = PNGMetadataExtractor::getMetadata( dirname( __FILE__ ) . + '/Png-native-test.png' ); + + $this->assertArrayHasKey( 'text', $meta ); + $meta = $meta['text']; + + $this->assertEquals( '2835/100', $meta['XResolution'] ); + $this->assertEquals( '2835/100', $meta['YResolution'] ); + $this->assertEquals( 3, $meta['ResolutionUnit'] ); // 3 = cm + } + + /** + * Given a normal static PNG, check the animation metadata returned. + */ + function testStaticPNGAnimationMetadata() { + $meta = PNGMetadataExtractor::getMetadata( dirname( __FILE__ ) . + '/Png-native-test.png' ); + + $this->assertEquals( 0, $meta['frameCount'] ); + $this->assertEquals( 1, $meta['loopCount'] ); + $this->assertEquals( 0, $meta['duration'] ); + } + + /** + * Given an animated APNG image file + * check it gets animated metadata right. + */ + function testAPNGAnimationMetadata() { + $meta = PNGMetadataExtractor::getMetadata( dirname( __FILE__ ) . + '/Animated_PNG_example_bouncing_beach_ball.png' ); + + $this->assertEquals( 20, $meta['frameCount'] ); + // Note loop count of 0 = infinity + $this->assertEquals( 0, $meta['loopCount'] ); + $this->assertEquals( 1.5, $meta['duration'], '', 0.00001 ); + } + + function testPNGBitDepth8() { + $meta = PNGMetadataExtractor::getMetadata( dirname( __FILE__ ) . + '/Png-native-test.png' ); + + $this->assertEquals( 8, $meta['bitDepth'] ); + } + function testPNGBitDepth1() { + $meta = PNGMetadataExtractor::getMetadata( dirname( __FILE__ ) . + '/1bit-png.png' ); + $this->assertEquals( 1, $meta['bitDepth'] ); + } + + + function testPNGindexColour() { + $meta = PNGMetadataExtractor::getMetadata( dirname( __FILE__ ) . + '/Png-native-test.png' ); + + $this->assertEquals( 'index-coloured', $meta['colorType'] ); + } + function testPNGrgbColour() { + $meta = PNGMetadataExtractor::getMetadata( dirname( __FILE__ ) . + '/rgb-png.png' ); + $this->assertEquals( 'truecolour-alpha', $meta['colorType'] ); + } + function testPNGrgbNoAlphaColour() { + $meta = PNGMetadataExtractor::getMetadata( dirname( __FILE__ ) . + '/rgb-na-png.png' ); + $this->assertEquals( 'truecolour', $meta['colorType'] ); + } + function testPNGgreyscaleColour() { + $meta = PNGMetadataExtractor::getMetadata( dirname( __FILE__ ) . + '/greyscale-png.png' ); + $this->assertEquals( 'greyscale-alpha', $meta['colorType'] ); + } + function testPNGgreyscaleNoAlphaColour() { + $meta = PNGMetadataExtractor::getMetadata( dirname( __FILE__ ) . + '/greyscale-na-png.png' ); + $this->assertEquals( 'greyscale', $meta['colorType'] ); + } + + +} diff --git a/tests/phpunit/includes/media/Png-native-test.png b/tests/phpunit/includes/media/Png-native-test.png new file mode 100644 index 0000000000000000000000000000000000000000..a0b81ca99635b311bb01c153ab86f285e10a673d GIT binary patch literal 4665 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 literal 0 HcmV?d00001 diff --git a/tests/phpunit/includes/media/README b/tests/phpunit/includes/media/README index cbed0ac368..91e3c4f158 100644 --- a/tests/phpunit/includes/media/README +++ b/tests/phpunit/includes/media/README @@ -14,3 +14,15 @@ http://commons.wikimedia.org/wiki/File:US_states_by_total_state_tax_revenue.svg CC-BY 3.0 TastyCakes on English Wikipedia + +greyscale-na-png.png, rgb-png.png, Xmp-exif-multilingual_test.jpg +greyscale-png.png, 1bit-png.png, Png-native-test.png, rgb-na-png.png +Are all by Bawolff. I don't think they contain enough originality to +claim copyright, but on the off chance they do, feel free to use them +however you feel fit, without restriction. + +Animated_PNG_example_bouncing_beach_ball.png +http://commons.wikimedia.org/wiki/File:Animated_PNG_example_bouncing_beach_ball.png (originally http://www.treebuilder.de/default.asp?file=89031.xml ) +Public Domain +Holger Will + diff --git a/tests/phpunit/includes/media/Xmp-exif-multilingual_test.jpg b/tests/phpunit/includes/media/Xmp-exif-multilingual_test.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f7b23025cdb682cc7ccdfc845f00e18360d94439 GIT binary patch literal 12544 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 literal 0 HcmV?d00001 diff --git a/tests/phpunit/includes/media/greyscale-na-png.png b/tests/phpunit/includes/media/greyscale-na-png.png new file mode 100644 index 0000000000000000000000000000000000000000..4a4b7452d01c9a0b89a06983a0a473a1d270c7ab GIT binary patch literal 365 zcmV-z0h0cSP)Px#0%A)?L;(MXkIcUS009|EL_t(Y$L-a-FGN8U$MNsjy%GfRXc3JK(MZH2WTO+6 zMk$f#MYaEc=u{*gwN7V4qTvtFiiFroXsp;pJd(A^Pcd`3tgNdxr#Ulc=94)y%^305 zsKFCYJo(?m7-JgK`*xUdB>-O5CfbAMfrVqYQ(?GyRuTl~wj@cp6kqm6iF7l|u+@_v zlB>1(q{BW;u=y)d#^w9v!KOs#{DoUJ{ulGali2YNhf1lPx#0%A)?L;(MXkIcUS00B!$L_t(o!|m72D}+%L$MN4VqY(14MK&g~QSuT^cCxau zRLWjf{sGxpQC`+|c0}3m2iQuHS&5C2@sgJsQ(qgJ=iX;V(|D|$b5{3s?)~(fdpA!E z^yg6}8DfYbh8SXqA^!u3ePx4EI&i9sURNRBw5D;jDWN9yYhEYrk%U4{?ggp|E}X9K zNR#w-$vd$q0&vR=V#uKFf$Ah;H`KL?=;4Xd@gtJ; zkaOa6@$Pk{5IayAl3~^x7c3x_JfsDY3EgKINFm+vWND?2D+h@qJ}O1(8Dl^6ed~y6 z2Wdv!l^A##cT%jHrw?%)=o$??^oS5RLi7gKD~LgI(IPPA%>9{8#0ZBxkmrW2Xpl5D z&ia&g=dmQ%{5=AT-ujVc256+34(7P@_Qvc_%Me2hF~pDv;uE?y0iY#|#xVc@002ov JPDHLkV1nFPw2c4& literal 0 HcmV?d00001 diff --git a/tests/phpunit/includes/media/rgb-na-png.png b/tests/phpunit/includes/media/rgb-na-png.png new file mode 100644 index 0000000000000000000000000000000000000000..2f2a5ca013050e661e8f218510764bd38c877c29 GIT binary patch literal 593 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1SBWM%0B~AjKx9jP7LeL$-HD>VB+?4aSVw# z{Pu=r_p1OAh6j(01w%q&qC}-#HwqqMRlU(UwRfq)jqa)S4sX_o#AI1pyB>6_Z&=IG zwbDge`53EsN2B%80|qHG3v2S9`4;+%@;!f2chc5VfvZK}&%Phb`;82^H>04}`Vn2_ z3opOa=z8`2_oF7Kg$g${JmS`0&)O>0eN;z`+jA0I^TFqzpBC->SfR7gY!bg`_V(MN zA`?_B=bt~?``*~ZcXy25&ezi;eg$89{V{E`=km)80z7O--&NTBV|-n-bI+_fe(9^P zMy(B#IX?IN^Oq%2>#sX6yzp74vdKA1G`JXUy)~<{kV`e>nS3%u#avKv%K7Jv3nFy9HutsWxrp}u`!O87yn@M{%aLuf{7HTl=8%m2WLMO16^5Q!NSmgT=~TG)2R#` zEKD-T|FVlYY0UKLQh!!rb@Oc*14sMe=7S0Q?|-)0AGdz?*=PJ4GiHUY40-e?#b{&H z+DGgiDkt3*e|!rx>b82&1bZ32r9mg(e}Db8YH3jB=9`;tzDe3R!Dchlf8HZHXAZ&8 cuWJ>Il9qoSaB=Z<0MiJAr>mdKI;Vst02=fLyZ`_I literal 0 HcmV?d00001 diff --git a/tests/phpunit/includes/media/rgb-png.png b/tests/phpunit/includes/media/rgb-png.png new file mode 100644 index 0000000000000000000000000000000000000000..6f40cc923736f3a415ef3d88526428232f48ff93 GIT binary patch literal 663 zcmV;I0%-k-P)Px#24YJ`L;(K){{a7>y{D4^00KWrL_t(&-tF1VOJY$N2Jpwp8(5h5u`Ow%7;S_o zMG<$=s!hv4a38Mx2gF?~13%X8+8G9I^bc?=g5h07ZBp_JKR|_NRx>cey*Cq?qIn-U ztMl@n^W&a#HrGUw_y+lbZxVqBL?8kYh(H7)5P=9pAOaDHK>kOF$z=LtSglq>A`#r* z-|N;UlS#u~TA55HxVgDOG#Z7=<$|Ipu-RGgUI*D~7fhakW5`ufVt%S!^_$;pW>`tJS-NAe13lB zY&PR)G-9LCU@n(qAP`tDge2eI-Uxsei$$~c?CgvHSSpp??Ul)72!KAHkAuO0t7K(J zx7#&@G@DJD&1UZJ?{hkx8up4rA_TzO+gq-hl_2eQo3U8T@Mw`_B9R~frcxxd=ybbXI-O2#ZEf-C=}8x2Hk%26^ZESWLbkWJ84ib8E|=f^df9B2 z0C;h6p$oCw?F7J1r}LrXy_P$&Z0%yP;NjsR0kB%FYW50+LYhzcmx7RFrBWdP9vmEK z&R<_&69A8ok2#yozAl6$&(F_w&-!pUq}%N#00x6WK0G|I*XwbySn%cLg@r=l>p)ah z<>uz5?tHyo=kD&V?xUh83iJ8==R-&`nM@ka_xpXO(`g~A`pQHL?8kYh(H7)5P^JBegbd;RI_SegwFr~002ovPDHLkV1j!)GztI! literal 0 HcmV?d00001 -- 2.20.1