pax_global_header00006660000000000000000000000064145537132360014523gustar00rootroot0000000000000052 comment=ba9fd9e050d822c590a87f6c3cf31d60f556209e UnitTest-1.2.5/000077500000000000000000000000001455371323600133075ustar00rootroot00000000000000UnitTest-1.2.5/.github/000077500000000000000000000000001455371323600146475ustar00rootroot00000000000000UnitTest-1.2.5/.github/workflows/000077500000000000000000000000001455371323600167045ustar00rootroot00000000000000UnitTest-1.2.5/.github/workflows/coding-standard.yml000066400000000000000000000004371455371323600224740ustar00rootroot00000000000000name: Coding Standard on: # Run on all pushes and on all pull requests. push: branches: master pull_request: # Allow manually triggering the workflow. workflow_dispatch: jobs: test: uses: "zetacomponents/.github/.github/workflows/coding-standard.yml@master" UnitTest-1.2.5/.gitignore000066400000000000000000000000711455371323600152750ustar00rootroot00000000000000vendor/ composer.lock .phpunit.result.cache .phpcs-cache UnitTest-1.2.5/.travis.yml000066400000000000000000000003231455371323600154160ustar00rootroot00000000000000language: php php: - 5.6 - 7.0 - 7.1 - 7.2 - 7.3 - nightly matrix: allow_failures: - php: nightly before_script: - composer self-update - composer update script: - vendor/bin/phpunit UnitTest-1.2.5/CREDITS000066400000000000000000000003451455371323600143310ustar00rootroot00000000000000CREDITS ======= eZ Components team ------------------ - Sergey Alexeev - Sebastian Bergmann - Jan Borsodi - Raymond Bosman - Frederik Holljen - Kore Nordmann - Derick Rethans - Vadym Savchuk - Tobias Schlitt - Alexandru Stanoi UnitTest-1.2.5/ChangeLog000066400000000000000000000052531455371323600150660ustar00rootroot000000000000001.2.5 - Tuesday 23 January 2024 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Make 'ezcTestConstraintSimilarImage::evaluate' compatible with newer PHPUnit versions 1.2.4 - Tuesday 19 July 2022 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Fixed the throw of 'BadMethodCallException'. (Remi Collet) - Add assertAttributeEquals method that PHPUnit 9 has dropped. (Remi Collet) 1.2.3 - Monday 18 July 2022 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Add support for pre-PHP 8.1 back in again by calling setAccessible(true) 1.2.2 - Monday 18 July 2022 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Fixed missing argument in call to reflectionProperty->getValue() 1.2.1 - Monday 18 July 2022 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Fixed typo in variable name 1.2.0 - Monday 18 July 2022 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Bump PHPUnit requirement to ^9.0 1.1.8 - Monday 18 July 2022 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Add PHPUnit's deprecated methods readAttribute and assertAttributeSame. 1.1.7 - Friday 11 February 2022 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Support for PHP 7+ for regression tests. 1.1.5 - Friday 21 January 2022 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Test whether the temporary directory for cleaning up temp files is actually set before using it. 1.1.4 - Friday 21 January 2022 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Add compatibility for old PHPUnit 3/4 getMock() API. 1.1.3 - Friday 06 August 2021 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - PHPUnit 8 compatibility 1.1.2 - Tuesday 26 February 2018 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - PHPUnit 7 and PHP 7.1 only compatibility 1.1 - Tuesday 26 February 2018 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - PHPUnit 8 and PHP 7.2 only compatibility 1.0.2 - Friday 10 October 2014 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Fixed regression suite. 1.0.1 - Wednesday 17 September 2014 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Removed composer.lock file so it actually works. 1.0 - Wednesday 17 September 2014 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Initial release of this package. UnitTest-1.2.5/LICENSE.txt000066400000000000000000000267071455371323600151460ustar00rootroot00000000000000Zeta Components Copyright 2011-2015 The Zeta Components development group Apache Zeta Components Copyright 2010-2011 The Apache Software Foundation This product includes software developed at The Apache Software Foundation (http://www.apache.org/). Originally developed by eZ Systems as eZ Components Copyright 2005-2010 eZ Systems AS (http://ez.no) ----- Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. UnitTest-1.2.5/composer.json000066400000000000000000000021741455371323600160350ustar00rootroot00000000000000{ "authors": [ { "name": "Sergey Alexeev" }, { "name": "Sebastian Bergmann" }, { "name": "Jan Borsodi" }, { "name": "Raymond Bosman" }, { "name": "Frederik Holljen" }, { "name": "Kore Nordmann" }, { "name": "Derick Rethans" }, { "name": "Vadym Savchuk" }, { "name": "Tobias Schlitt" }, { "name": "Alexandru Stanoi" } ], "autoload": { "classmap": [ "src" ] }, "description": "zetacomponents/unit-test Component", "homepage": "https://github.com/zetacomponents", "license": "Apache-2.0", "name": "zetacomponents/unit-test", "type": "library", "require": { "phpunit/phpunit": "^9.0" }, "require-dev": { "zetacomponents/coding-standard": "^1.0" }, "config": { "allow-plugins": { "dealerdirect/phpcodesniffer-composer-installer": true } } } UnitTest-1.2.5/design/000077500000000000000000000000001455371323600145605ustar00rootroot00000000000000UnitTest-1.2.5/design/class_diagram.png000066400000000000000000005042621455371323600200700ustar00rootroot00000000000000PNG  IHDRC'MʍbKGDtIME 5 \ IDATxyXj(e&z\Nre*iM4$DõsZ oGBezV.inC(?Ax>k˹?hzs/.yyyy-#@2@@2@@2@@2@@2@@2@@2@@2@@2@@ճsN͛7a;;pbf((wgΜњ5kК5kP4`8:; pbf(*C@QIJ3Cӱ(G((M 3413@@2@@2Nwg*d(@Ы}j޼1G۷WDD\RJp#G:t͛7oi޽ڻw֬Ydծ]#@eP*"//櫸םV\:wu+--M3fpvH hZz$)>>Q"# PN>#Gqƪ^|}}Ç۬>zuC͚5ӤItrرc=zTzuթSG۷oYָաCIb*͂Yg=򒏏Rd{'9Y9}ڷo5kwPչUOʈShhy vIbby]zꚧ֮]򢒁^^^4O/͛Vu۶mDլYLzƿg=3v;6md=Kaiڵ VӦMubdu]=<b];w}WC$:4 >\zΝ;m۶Yf?RϊɱctA]rE~R(gyw~ ̓7e'LPu<77 P.03_$y=<<\y۸r \S3gδ_KƎku`P^^ղ񲌿QF6_kٲt9ⱥF֭>cmٲEֶ+bUK%WʓO>Y`/7gPY-ޱc 6rH:uJ~~~jq㒤G}Zs$ɓ'kذaJJJRRR gyF{?/cKtE3Fk׮U&M fqY`uVWϊ) 136k8>{_|!:kժxvUX0%$$]v沟Y˖-S~ԢE 8q\\\t+&&FuƍYGgs_I?+5j(v_UP2bo<u #G4n8hʕjѢE}!^xAN> >\~IǏ/qlZbUEޓg`';KI>+(>eĴLzvݗ*33SӧOW```u5k&I2ZG7iܸ h=zT6l$m۶Tܹy_w}W)))6Uv+offյ~Tb)>kP2sIyZ],_u8p@AAA:uj}k؏1 @q"fHHHHHHHܜI f͚5T"$C5nX/P&t.]8; Ptqqq uv*\Ν3}( gJҍ7tAVZ)..N}զMhE>{׮]͛[o*3PPm۶I&O-[]ڵ"Q$)66V|j3I8i$uIjݺL"Iںuk}رC{Q-i&}ᇚ={$뒤ڵk+88X?v-f͚j׮]c)Ȗ-[$I|AM6Mq"(θ=*IjҤM67 )9shΜ93fЌ3$^RYIR֭-k۶m}?^ӧOWrrxb >\!!!ߡCmڴ$s \xQ&LБ#G=x`^ZK.UN{nݼyS;vW7V~gΜ$ڬ2)θ/]$I65卙R0%L,JJ ңGmڴIzGE) @k׮[nIR{nΙ3GGQF4x`[w_~ڷoFy }%\3N-LqbUfb*3PP!***JASSS5|IRv픚j~IRF$I{hǴ( Ttt/_Cի;wUX߷o$c'''Kbbb4~xznnC V^ݻwZjܹsQ___I҆ ,镒Rd}'Ir2S VqO{N=1ݫ\:tHNGA233C_nUwޑhTnnۧHIRϞ=+))I999JKKԩSW^5W>}_իӟ:uvaz)IҔ)S7o_Շ~(ѣGFqKN>muT(o *,{7|Gjȑ={LiСԬY4k,k-{fQ֢E 0>wﮍ7*""BVԩS'^zIk֬T%m۶[p+j7}RP>WT ;Ž$&&j„ jҤCʓ^dn:5lPt9WFRxxxŊn}*TfT _K}fС_bcceZ' @\ouKӦMӸqk޼ytrtHT ӕ+Wd04e:;$o^cǎ{'IzWlF'T{nܸ QHHH)G8=CT $CT $CT  *5k8; @i" *;;Pt:< NsN͛7a8@ 8ݙ3gMk֬(5 3Pg* fHX&*tN:uYWƍ˼G(3 VUڵkM65j,&Seև3+99YԡC2! *<(IjٲVZy߯o^[temݺU)))Zb7n\1Vӂ zjiW6m*  d}Yھ}{SSSͯ}j۶222'y|EVV|MW 4PPPN,gJd( |rIRTT VZ%I?RZ55lP$I}#{,]T8plРAJOOҥK*Jŋ7ovܩ,5kL/&O,rLEGGk˖-_Tn]Kd/={t6iDtoFk֬QZZUn]u]cǎU5hѢEڵk_M꥗^R@@@~Z~5~x,g'6 **J7of͚O>۷޵k״j*=cW~!Ct= )?*$$DM4ڵke4&řgdd(<<\gϞ5ywѣuas#Ѩ Z5М:uJt}/^hz.\ЪUtUےK.iСx7ow6?ƪe˖9r]}ճ[`yV$ݸqCPIW_}LuɪN:)%%E7oV~l(. -aIgϪAQRR,f\RVVNjӦRRR~zI!M&77WGь3$I;v4_$I&MҮ]{n}GDsO?T/^T-;v^$wܹՃ>g|ϲxv vIIIڱc&M$IZzޮ]$I͛7Tf3C@VÓn*I2eZn-Ij׮Nul"IT $I>M}jƍ˸ SОzwء<9rD6mұcǴgIv)I8q$)Shʔ)6;w >ըQCׯ_WllN8ݻ+88Xm=zTSӦM-%A2THsќ9sg̘aӧOKڶmkq_v>s$)00fǏw(fWWW{j߾F!___/j„ :r}yyy$=ӴUktevYVn>}ŋk ޥK$枠2S$HJ$$Y';gM8*IGQFOYfjٲ_d QBBd͝;>MJC:tжm_hZhV\W^yż[}.-$C@{jȑjժ-[$/QveQQF駟~=[ӧOkÆ 7Rrr~HN8a+777=uqhѢv_}Uխ[Wӎ;ta},Çoѧ~s皓w.\+WX:%IW\1J@UÓ$g$͜9SFQ:xfΜiUt{̴4ݼyS>C =\4#Ѵ<4M:\~UIRΝ%I.\l͙3G|R~ty{,gקO }C=$IiKr;ʊmPf ˞dhhhK:uJaaam۶'ty[ 4Kʬv+ IDAT<ݒ%Ku֩aÆsΩo߾5j˴T\Tz BnS^zUnɓ'3۶m++66\+___3T mOc^kyyyiڴi7n "IZ~͛'OO2UPP)jܸ6mڤ'O*''G<:vpիW!VXٵo^cǎ{'IzWTJd(U8;NEzv%TN J  J  J`PPa8;Pt]tQ||PɱL@Pt;wThhP9;P PjX&J  J`<:u믿ٳgշo_իWO7n,=~آ`0ج[zu5iD_4pwx%''K:t;9"TV$C@g4%I-[xߪU2^ۋ?ꭷRZOqw}iZz4`M6 @WP2,m߾멩͛7+ @bŊ2n7|SU S*++" *$`~-_\%UVIϟ_rug{K9h*K*==]4 4HZt#@e2yPi\xQΝ;f͚饗^ɓ%YhmٲE֭^z)<<\,g\Iյ[{of);;[uU5vXըQCt-EEEi:լY3G}uy5ZJ=իg._9=ds=E>oH ɔt&Mhڵ2 322gϚ̉;h:|󊉉hԂ T ht%_{]x-pVZWߖ$-XL4i$ڵKwG}$IJLL4KHHt{$رC&M$^ڡ]$I͛7T(-$C@VÓn*I2eZn-wwwkNSNjs˖-HU>M&Iڸq񺺺m۶Zp~%מ{wء={Eڴi>C͞=[tus=rX VjjEӞѣG%IM4kӦM-eBʟH3g̙c~?c ͘1CYO$mvY}IR``;?^8ME^1cի̓Jү=^xQ&LyS^^Ǐӕd-^XÇWHH<==껸m^tIl j*3J 3C@rgO}Q:9{oƍ9syjikϽsё#GԨQ# |X|>S͝;|xqO.\Е+Wt}Ys413TX='ty[ 4K}8nɒ%ֺu԰aCIҹsԷo_5JNAy^jɟ9sF}]i_|!XnݔI&GUN>ٳgKڶmСCKz7$IZ'Cwܩ҈(3/ @ͽ*}||KQqxyyiڴi7n "IZ~͛'OOO'GʨP"لȴ Pjܸ6mڤ'O*''G<:vpիW!†kرz$IՁJ@i4yP)TVM!!! qv(?7RO(*@~ eQTll<(8{  *;;̚5kDHkܸ1= 4 .\;;,.]K.@%W8Cyv\zu* @u} ws˼x/ hȑݗ .hӦMڴifU朜T]@u9; PITdhA'ޛ\Vlx֭[_] 裏4f̘ @yao@ݸqd((5Uz|ekZ`$)**QSOȑ#ոqc>:|!_|Q<<<ԬY3M4Iׯ_/;ѣGOիWW:uԾ}{M>]8m^dӧO}Yz]` ٣~Z^^^Q``RRR _8;JOO`HΞ=+rѣ C^ɿo͙3GAAAԩ|I***JW^u/[c){W_ի (L>11Q? .(..N ZvceO?/7oN8ٳgkJLLT͚5%={gѵke999ڻwݫe˖)99Y͞=0a]#FرcQffnݪ-ZԩS>}8m^Tଔcǎrb9|pK;wTFFmۦf͚)''G?.h~J;VP2,m߾ݪ,55UTyY#I222O(..Nڹs>c=#:y{KA#++Ko (((HSNUVVV RЏ>H3IҊ+-^4g]^^^޽y9_|P?X{bYρ#>w.7_|{a ZJ42]~79p$wޑ驶mۚsNghtRkA)==]K.ubd5K?pI͛ lʕ+4hrssճgO͜9_-I;vսAyyy:ydߨQ#IR@@bcc?lRyyy:wݱ7Fӟ3fƍz S'W^yŪ$!+Uŋ~Z;vyf^fffj Tǎջwo-ZH999:w>Gnݺ%K(((H;vTn4l0S {5?7nT}E' 뿸vVZ{b~͉;JSj:׷zǎ+ȑ#u)>ǏK}Fk͑'OaÆ)))IIIIn'Hy[?<<OOO?aÆŔUi[n~p1-&Mhڵ2 322gϚ4ydsrr4zhCΟ?F-X@ժo` XB ;C#G^P.]ԪU+xEg_}233թS'v:uꤔm޼Y+P,'|xs=/cUtZ|Zθ k\?kٲeׯZh'N}Tt15jgA1٫GbܽTI:{4h%%%)**A+WÇժU+S||ڴi_^lj#I n/OJJҎ;4i$Iի^Pdd駟jĈz'5f[tDA3]vI7onվT(m 5"l&L;O79rƍ'\R-Z(SR" /ӧÇ_O?geU)I[n$M2E[ڵkSZeIRdd|PӦM$mܸTbbcc˗/+88XC֭ӊ+?YAFQsQHH~RW~ѣ&MXӴiS:@i+e~~~ڻwvޭ^zl 8PzX`f͚~hTΝK#l3G7iܸ aÆIwڶm[Yѕ9YΙ3Gs11cf̘!,ӧOKڶmkqߝ3LΜ9#I~0mSR3~xM>]JNNŋ5|pؽ:yj޼”e˖)**J3,-ҥK{ǪT(m:3瞓t\rqqQ@@E믿(((;=ShkFQ...YӦMCYշWtp$ɾ}8+˳xoQau+&ӣGmڴIzGE) @k׮-]`0(==ꚇ*IJNN.4FG3N֞2[?34k2tر]vڥ{N)))֭[5j( 2Dnnn4߳~z-\P[ˋrIҕ+W1\ 6T\\7'~iEEE)''GS6mےVZrqq2y衇h"h̙_j֬gyFRǎ͇Gռys9rD=zPZ?Oꫯ԰aCo^WPV8y'Iҳ>+I9sFrssuA͜9Ӫi%ɔ)S7o_Շ~(ѣG뚾gÞ~#?\z衇{y"xL|ѻᆱǏ+''Gׯ_׎;4qDx$\nt ͚51ߞq>ÒT(mg$~ٳe]pA5j?'G䧟~Ç롇̙3L= ĉK\7~ooo%%%i/tIݸqCM6U>}M=K.՘1c]w8^g*l>G@dO2444T_~N:U*0m۶M-yzzj„ >>>t钂 6;~{:t"##5k,ڊ穧Ґ!Cb ^|4iݻwWBB>} Ng;we4s5|vZd#=*I6ѵkWH=KRڵYeM6զM(Eo#HC9tOin[P///EEEiڱc_|PVDD<<Pbb^z%UV-( 2W S\\BCC͉ݻ4hחzߒ%Ku֩aÆsΩo߾5jÝ!*RZ{nݺܼznݺ'Oj钤m:9B :TWll,66VVD2T Yf駟?_|Qȑ#!L4m4_^ϟ~zM6MS (mo7nM6ɓ<;*<<\svC5vX{W^y@% Bjgb2yUPUPUBf͚j(;{@~^̒/@%eԓ ԓ;wԼyJY.`?( @i(Μ9þ>p5kw4ٞPgp;PJ}f(TD$CT eL P:u_ٳ۷ի7zAj.;z~yjժvjӦF%???ۯ㕜,IС]q?o~qBih;y'խ[W:tPXX4hp~*6T> 5-[ZoժUkiE֭[|nݪXB7.>{wu)D#R)byJ,̭I;ZQ2C35= w *ޗDhަ[":?fbf㺸.;g2}?|{}b͚5F^~e|}}i׮]eWMDD+VL>A3Y IDAT}׳ehӦ܋צ0YDDDDMU3Y;w,o߾͙3gcʔ)eVֽڵkL4@PP'NdڵUr ED'~(i=BYuUd'bnܸoFTTIII{_{oYQUb{WgZ|9zj͛gsZ ooo{=~JQճd2338pؠAdɒ%X3ԨQ͛'˹sشiSeWR""""ru,]|,99QF1m4y>}pi"##0ap!iرpB?,Y[ŋٶmΝ~< :`w}|||rMtt4۷o… ԯ_'|aÆQV-ϟ?Ͽ/õkhڴ)*v޾}hnʙ3gpqqiӦۗ~9.;;իWci>ޠAC+Bڵ""">ի={6ԨQ~ѣGG+ZoeڵdddpuׯO`` Ff͚ձ0eƄ صkŵ8ʑkôiعs't֍#GR^=tio5T""""roPS|aaݺu/qqq9sctn 7|c x"O`0`.kdgg[eĈ8p|̙3ĐNTTNN =v@Vݮ\믿ѣGiΞ=K\\ĘիW:t('O40wb]#팊2y&iiiqUBBBJ_z֭[y m_3|p?)_κu}6%ۂ XxűgϲzjtS󚗿Xi޽Aa~Gbcc7O{Gb{[L7_u?3yyyl߾'''~Ź?ň&M`3h?#%%zʕ8p֭[?@||<ڵ#997۶<<ԩSܹs4u[|9GۛYx1 6ȑ#cccc9y$ 64.׺(+W2vXDڔ%S s-WcPi+W74eo:S=mif:VT[DDDJ}Ykf̘iԨݻwiӦjbC"{dee1vX݋ ? tؕ4N)޽{h޼Xi?S8đkEDDDVa(ݻaÆwOLL䭷ޢCDGG[ٳ'?3˖-ի HNNfѢE\rlڴҰaC;?OnZ/5]5j/㏛/vh;ӧ}|,[ٳg[l`OzqY._\`s)Ӧ6CEJJJ &&"YLC=ԭ[?l(8͛Mˤ=~.?p')I!\C,"""" [3ԑz)Xn3K.eOihxx8ܺu .0w\1bTHRSS#55iӦеkWsZZӦM#==}:ӧOHR{u҅;w^`Sg!篈TNgXZ`` 7o&""gdd_d9矷&%%qڜ&|GֵqZlٲ@,ӬY3V8đkEDDDVi#CoZϞ=ihIȏ;oooVZθҥKkfɒ% 0OOOdРA,]ԼӇ:uPzu|}}2e `z3((7o``0дiSN׫W/j֬ݻ kԪU>$:uĀ*j""r̤wԩSo'Oү_?<==ټy3~~~8xh׮ÇG)]#($uH`~tԉ06lhGڦCDDDDʋ:CܹR*{߾}DEEfF#/2k׮)""tZjeuV۷t}ɬXƍw\N>ٲe QQQiӦ)iUΝ;\׮]cҤI///6lHPP'Nڵk\Kjz wFTyK_V\IN޳(Vi~~~6ZIճd2338pؠAdɒ%X3b???/_@tt4~~~^y[<䄷7?CsQ͛7O>חsαiӦ奘CDDDD}72?>O?4:ubf֬YSN}ܹ3?<'77סBXXv2.F1TjЋ/ǎ9BDDnʕ+=zԜٳőLLL 5kִ{懤ׯn:n߾Mxx8QQQQ-7o$--4^JHHH={6en[krrr/𞿿?lݺ_|ѡ:4úuHOO',, ___ =,ǎ^zc ,`Ξ=իbʔ)@| jՊaÆ9TիW:t('O4`„ eĈ8p|̙3ĐNTTNNܴ篿ZlZF1Tjde8<-[dڵ^xs˗sQ!11ŋӰaC9ҥK IHH`Ȑ!|wׯ_ܙΗȮ]?~<k֬,wYV&MHHH0?e +;!!-Zt̔FDD$X`C !88WWWozpŋԮ]{c4"""eɺcrƌ̘1zԩQZ{3u֥cǎxyy;}جϑ#Gw:xxx:Q!"""":CRL89ZjJu~Mk...EӳgO:uĎ;/_?>+W7ߴkFFs6;(MMZ/tUDD}xb/_Nhh(YYY:0=\z|Vm-"w,"""e%%%h)))̛73ѴuQe}5IJJ9z!߃yIv25j/bk#ٴi4}%''UoAidk``(p_uv3grY_Ό33of𑑑Gjj*ӦMk׮ݷo_G=4m()h6lڵk=zӧݶ6M3Mt$EDDQ͓{oi$&&KFF'N47n=8y30m4#--ףGܺu .0w\1bDƍ3zh~WիWYS!""""Z3^c۶msYo e8q¼3Iƍ Ghh(L>@e5<<޽{ծ]%K0`<==qvvӓAtR]DDD͛7`0`0hڴ)aaa|tcǎggg7f<`ߟI&ݶի5kdݽ{7j2@)k֝x]{%1n8z쉛VZ1m45k߃iԩSի˔)S˵:kժELL xyy쌻;,]ԮȪUZ/""""R!k̟k-Xgh|6ۓgec[ݻ|+d{ӧ;v4>]BM1T2}fLhh( 4 66|,66//S>nܹs|pỺׯSR+Rk׮?ʗ_~Y)#׳"?wY^ݺu3۷̣a۷o_5,b)oUn֠*/qsscɼۼ+lܸ_VrJk׮ 4^z|B4o߾m^m7˗/ʱ@;3me}UՎEvgff+W2sL[I5+Zq׳ݒ~YznsT^9DDDDjPKǎ5j3gd̙wH={oM޽YbVM4O?`۶mwu9R<==;w.?S%צl+Rr.-Z''' "66ooʮbCDDDDN>Ry?c3>F`tss3/x2Ecx #`tqq+}Qi*TO?mY^z#F\b+U|v[lINN+V(2>ˑh}DDDDDDvlHU4b;tqi|8xxxwxxxkk?n:>#ysghj0deeGJnRzDDDDD"JqqqEn/}Uė=BBBӟСC^:˖-ٳsT3gri8useԩ,åΫ(Qݻ<Ξ=˸qVO>9O !!nݺ1w\o^d+kĉ4i҄s1yd&M6Zj,XlڶmK۶mѕ|g\z3rbYQG٪#Mʆ}K_}jRݍ#$$<:>>L*(∸86lPh1VM4'AAAu˃)xW͞8ZN^^_ٺukiBCCYd9ʰ>nOp1Xqe:uDFFFsj֬ɞ={h߾=;mڴ/<;vmNZZuԱY\\عs'=zٙTZh5XhQ&}/`Ĉ,Zb˖-sPV#} Kg^\ޏ?DDDD쐢bرɓ'+N8=mqhyO?5vu5>/Y~j*c&MիW76h:RT[/^h=zXzucݺu3 4-[fqeˌqРAEV\ˢF[owϞkbxbcFWWWc֭Ǐ7^tɜʕ+Ƒ#Gիgtuu5>SNsPV#ŕhne)~{mdh))_UU "R(~{2@n@JJҗCѬYO>ʕ+IJJٳCѽ{weYORR:u2(""LzM:uo8y$ӓ͛7i*_F ||| k_UȽ7P?AHHHfРAs rssz*"::wQGTTƍcر̛7ٮs\iҤ 5j&<<ׯSZ5VXaqz)#yiii<3_>#GիiϞ=ː!C_>nnnpʕ}64k֌5jPvm:wg}fh]GЪU+׭[.roܸÇyٹsgU.""""Rhd ֣6*r4GaZfի<4i҄<<ȬY **)S8TuAڵkL4@PP'NdڵzѣE?Ndd$|8991|v[oEiܸ1'N`ɒ%`֮][2ѣ.\ '' r-ҥ G5GVVVǏl~KRRIIIdee;z}DDWu^Cܧx"saͬXݻMi"""""UM {:@jj*~!T^WWWڷoOdd${*-YLh>6h 233͝5k)))<۷7o~oN:,[,^}UnݺEhh(׮]b)h~mo5k֌ÇCxx8_|3grQy~nܸΝ;?L[lƍdgg3|͛W~|ݫt DgX|9poW,xnݺ;[9UYi"""""UM&üyӧ;wgZ3=$9rQFSO=Ŵic&.\`ʔ)䓌3;w;իWy y裏Ƙ1c;LL?Ec0֭ ,(WZ={6QQQdff2rHF#[۬]{푗`s {8r~ˈ# SNC  /@@@[ť#߿@>$''uV^|Ee4iiii###ٶmIIIlْe˖"h`&ccGsu֭@^3gdȐ!lݺ[2i$=z45k,""ӔÇ֭#==0|}}+{F#/^d֬Y|(YRs,Xŋ-?{,W&++˼DHUS%G\кuk]v$''q~z2d}+Vp)5jIJeHLL$::1V\~=pgabb"vbY\,%% /@dd$,[7xݻ3rHRw hѢ@c4`m͔ Pd9SmuV8SNC.]Sz!.\hWDD'֛%ٻy=^k?cՋ[oa$JI]jpg鄄{-ZݻnoEEDDDD pak:v۶mٙ&M0yd6o\ w}ƍSF ȇر &ЪU+\\\С?K&GiK||<.]_Ϟ=ٰa+Vo~~~3c 9w\RGy!N紵~"-4ǎviɄ HKKc5hxGصk$=<}lo_ӦM߻#O< @6m,k߾}s|],X!Cաr[hA- #77Ǩ3Jܞ8N:k.t,Z^xONpp0ͣM6?Yf1sLza^u|'}v~ikUh:\ ĉ>|8+Vs۷ÇH۴iS=8poe˖1{"7hѢ{eݺu9Ǐ,TL#"^j޽*Eqٳ\|zYgZx~<=SL/ԩSӭ[7L_NGo-[f| e…58^}U^:7np GԨQ;v0~x>s۷/-2f2|p\\\O͛W<# g߾}?'''G}cǎqM.\_|aIhW_8k׮o޼ə3g*0#jqwwwϟOff&ׯ_g͚5Ԯ]f!CO?q5]FZZӦMN:E^MI7OEyҥK:_KDrss`ĉ5moEEDDDD*924,,;v-suue̘19x`[:İa{e3/z tJJŋ ˋM6ѣG^yVX5klw@֯_Ϝ9s3gň*ߑvv҅;w^`a)""Rt{->ÇgڵJ8rn`` 7o&""yeddow{u_Y ^;4ZjCpp0^^^8;;N`` K.-@tt43nرx{{loMTT<899a0eȑX<`̘1ߟx?&M*Mwzf͚޽@޻wVZ<3]hoYw~߿uQC 0[nY+]xősǍGϞ=qss`0ЪU+Mf韤WuU3~1 1O~- xb6l؀7N_~ >C[<Qu )S)UrPҠAbccbcc*0ODDD6EDDD^P)snnnL<7rΜ9ƍ7իc:tCi&/^g}Ś5k0Ү]R+""tZjeu֕V'), """"RН;wVHѓ奰6Κ5WOoӤI8x f"##(LPym*k|5&MD (('vZJ] 5?TŸ^DDDDUښ~~~vO㒂RSSz긺Ҿ}{"##سgOeVlɒ%dff2p@Aɒ%K*f""Rb???/_@tt4~~~^y)(fV%G޾}hnʙ3gpqqiӦۗ~aYxoYv-\~ȨQY9ь;___%EŋٶmΝ~< :Pfm[.8C  /@@@[ť(#߿@>$''uV^|r]L;|0n: ח}Glڴ ׯyf~gV\Y`sA8{#6>)ISQq*fPi䋲~zԷDvXf `91%%zժU?{-Zݻ դI2eJykʕ8p֭[?@||<ڵ#997I^x"##qwwgٲetޝ#GOnnCuigBB-Z()-֛%yҞ={׿Ebb"1114lؐӧOri=ΑJ^ũŞsA1T Ϳ4*㦩bs%OJJJ]iٲ%_}s壏>ʕ+}ЧO8~˲e˘={v :cbbѣ <///?ΦM*6}IآE ˺u9rd?X>LTV իWUPQ$X;իٳg|2ճx4"""RRRػw/Æ u,]Dz-:t@ttRSS-F۷?ŖJ^ũs3HE(???>srrrxG-4:4+Drss`ĉYYYE]Tѣdddp-.\ܹscĈeAw>c9Bnn.W\a׮]7΢>kÆ \vG2}bd|G٬Y3LLiDDD9y~Hzz:yyy۷HzUlyJR^I㓒ԫ,Zs3HE#CCCCd::t`Ã/6m"00͛7ADDD322/l[y+,,;v-suue̘1e=z+b ֬YcͯY~=saΜ9E^w]taΝ[ xڵkSI:C֭KXXű-[/[#8G+m|Rz{U """"FZ_PP4o`iӦӍ;ooo_7={`UVL6aÆ8VU111关3tR i#oMTT<899a0eȑX<`̘1ߟx?&M*Mwzf͚޽@޻wVZ<3]gXw~߿-g& իɫ… Z'ܑ{#6>)Iʲ[=W1TjV/F\\!!!E_,\ŋa8uc :QDPMvֲV*2f;ޝUY+&5,455%s)K532s)MKs_fL\"L1.c. *(s8Ѓ~><}_o"""%(T*AQV-Miḻ癖'""".DDDD^Sgs*T`ڴiDEEJjj*QQQL6;<)%f{Tn$Fܹsxwl """6K & {!""v wf{EEDDDDDDDD䑠Py$3TDDDDDDDDD lP{uiyH """""RwYҗ"""""r?h<J|dhLL %}Y { ""6PAD {f+beZD$MG:CEDDDDDDDDpϦɗ$$$Ҏ?N}Hhժ})5EDD$ .ХKUOJJ =z͍oʱnVA(9Bzz: 4Ctޝʕ++f[{VR;IDDDDJ341cưk׮"Yx1֭`0oMfJ(R1JNNQFfǍ7[L9׾`ř'&&Hhh(SL]v1ڂD[I$)i f]v7n`www<<<ի&Mƍž˯3x\Rr_bĉԩSf߾}DEEDzz:ƍ#))YINniY+VpkJׯ.\`ŊvLDDal+j*BBBeڵ,ZԶ'bbbسgիW',,]Rzucܹs`{[bNҬT ]j߿___onޭ[7|}}6t:tNל,`ѢEt ???vJpp0fevZZh)VZ_J>DDDzoݺCL2/Z[P!'9r$tؑO?41֭[0`Y!7|#FпBc+.]bƌt֭ؑ[3i$222򭷂%;;KҫW/h۶-o7o6I""""RڕЗ^z fh{S˗9wϟOZZZtXYr%Ν#++TBCC5j٦}n:uZnMFF)^):툈ԩCBBaaax{{[guVn޼ɵkoHNdd$W\w$$$uª$""""]{ۋ/7Sghtt4ʕcȑ_$99GGGڶmkvm3gw ĉ/_ @ʕ3󈈈HiΜ9̙3t)S777ҥK,/nUhԨ...TX;nQAli8;;B޽quuٙ^z'^zŔ)ShР8;;S^=>}\Y&111kҨQ#6mʧ~ofDDD _M >~-]˗yf<==8{,=z`ذa 2>QDAt/> ڜQEvv6{aڵlذK.sѯ_?x <<SNCp%{*""":CB L6(RSSIMM%**iӦY=MDDDav<ʖ-+ʕ+9<ׯf͚5 www^{5+^jPEDD >>>9s(@DDDQv#˗$11/ݻsN{iW;wڵk\v푯3;wlpO2n8Uc:+V… ה֯_?.\+كnݺlܸYVZܹVZѱcG6nhHEDDJbo$"""R;Eccc={6۷o}j֬'oHHcǎۛKFHH;vҥKԬY:0tP*UdV%==u2p||9JC"""R*;~gS7n$99 sg}fy&| bTR,IKK3uΤosIS ˗/3h IN8)Ss]vn3|p=jʗJhh(,^Gǻu/^l ERRIII\~ݴ^S۴io=WX~,͖z06lW^5ƍfĉ6\lk?֭k׮e֭ 2$ώݐ~:C !%%Ŕرc3g6m2/[ OOO֯_oϛ7oGGGNZŸ%> Zn[fDGGZEygV]4 fƍrA#''''O0vXN>qrr1F&/"""Z͒ <)&& w^BCCܹs^:O^///bcc1cVɓxzz޽{Y|98q0ӹ+Wŋ4lؐM6{nz @hh)ի9z(7&""}IfؿNEw^vXn.]g-`TN6mDll,`okE)Ȗ駟8wX~<ӌyJ=zмys{ٸq#w^z4mڔ-[K/ѣG˰a=z4| wܡM6,\Zja[*"""'?֭[SlY4ibՖcΨfӅy&NH&M([,M65۱c)oLL }kŅ'_mʷ}vf͚7NNNxyy1m4S^p"##r {&!!|Q_*?ԃLڵ)Wi4qv[b.JF5o$PݻX)7kޛ͛3iҤ|cyꩧpvv& [n1aԩCr0`iT'^P3zqnknu5S.[VV˖-c :]...dffrIٶm!!!/ݥڷoυ |"""BB IDATɋH{c9s0g̙39s&`>jUVf5k l ٳݚs2N=w)} 3gw_[r Fbϒ%K}`vlM9KJJ⥗^bŊԬY#FpuϟgԬY *hyegg3eׯOr\2~~~,[:rqqɳN#CEDDTJHH :ƍ޽{L x^bb٨҃OZNСClҔ~!Mi=;'NaÆ^ݝӧOuVSJuFn8z(?+WdfXs|7ӥKWnVVvv6K.`0ꫯR&mK]p/\>qqqDEEѻw믿ra{9SÇupp3(+kk58???7oAPPѤő#G5jiƬϖz1lk_~7O<~~~G:u8ziK|駦w/))sNl޼7npIfϞ]–Z)`s5N7.)1%'l1o<hٲ%4|MΪUʕ+vΝ; 4k׮([`:ׯ?LFFi=k ϝ;'OOo>nݺŮ]HLLs-cm۸uiiiw742TDDDJtV^ oZޠAرcgΜ1mTvmz۷kfw1}Ν;ILLfʗ/ѣʟ5kgAsIkݝGjڄ(3sLԃlmm]7۷oS۷/}QQQ3&rٶmN֮];6m_|_|`qdjqYՕ˗/ӫW/ٺuϵM6ڵ$WfȐ!tЁѣG3|>_,2-ZSO=ѣ_jV͛/M۶m˒%KxWͮUR%^9r=z`Ĉ1 yhdZ;?9bvlCL21p@.]j+WfŊ777pss_~6SzWXAN\2e˖駟>K.|*U"44qrrJ*k׎0pzbʔ)4hgggWAAAL>|psxժU|4j*VHǎ ?ϳf-`-kc.NuVV~-UTӹkFʕo7_  [nTV2e͌35FGM޽Z*δnݚɓ'[[V彳رcɴΩ_Ņ={={TimI02O> @RRYYf3OÆ kk`e\"z%rXn۶mk͝; *͘1cxg5k.""(s0H 0044qQ ͹~=ҵkW<<ʖ.]ټy3={=z0lذ<(yQ|ynݺϝ}֭[hт$5jDBB #siKη^\9233~:...fy+Wyf/_Nll,pwY# A#CEDDDDm۶u3]Fvv6id>kKAQV-Miḻ_\uԩSu>s~0aIIIhт#G'x0N߽{Yz||[İ~ƍǕ+WyH*""""R efϞMxx7HHHՕC9ҡB L6(RSSIMM%**iӦYpn߾裏pppC;voҶm[,X;Ly#8"a~0l0vMVVgذay֫W,YBZZM6iӦV- """4y4M^&٬]o~L{12dnnnT_p߭~^\zVZqر}_;l0/_N)_<˗qƌ?+WDDD~*"""ݽ*"'}^H Py43TDDDDDDDDD e2\P)5cDD e>''''W?ӧOgɓuN-_Xy,FQ9W{6l|=,?bPg 8#"rh%Ui(J*Ox{{/{Q5rףGluZQ Y͛޽{$"r$hd]LL .w"REFF; 7l>1*@1>|q~cmZp|ϧ([GY͛gVg)lCjjo߾Ю];.VX>[Ř޼ys>yhi""""""Ŕſ/軗_~9O|J_>?3L8b^Cណ7o lْő#G'44jժrJ]s ڵkz_.I@HH۶m֭[ E_wwww֮]K2e2eJw|ԋQÆ ૯*=n"""Ȳucǎ` >>>Ν;Xc)ҹǎ+hر0j(K/d3[pڵ{ZT֭[||| ۷7ܺu{8{n:ѣ G6[H(#Cruu5:u9Jkb}˔vE`ptt,4ib 'O4K?q0 f~0j>B)JY{-J<== SNy~W]+S7رk>]+,-bC,և3o߾cVX>[ Z"hSgzu!!!۵k=殉'SN%::}EPP7/-[kepJ⾧7n`www<<<ի&Mƍ%ٳx;RRR,^ԨQ#ϜM2m^+Cի(NA߾}9{,i4OK.lWWW-[Fff&#Fw0~֭|Y(FMDѥP)|}}M_Vڵk3R#&&={Pzuڵ+իW {=Ν;wL=jΟ?O?+ƍZj߿?b .\@߾}Mi… XŽ=܌ scG3cXn`0&Nh1l޼,pq}||| gϞ5K >>>wy'Ox.ϨsûkXz!%%>O???!##bݻǰo>{||| z||| -Z0Y[E)Ȗ:3DDD]c8qYzaSQޑҍLJ6]~ݔ?322U>CK[\.^g/^4tb\Kl)Oe+"""bYsaΜ93gq98"̙3遖8qqܣI7o^hFbϒ%K˗/Pr<0󈈈o&/"""D@Yڨ'9Lԩ~-SLiӦܼy`tƍ <(1&Mu9B Ν;YPXٲeM[EaeRg۶mwS%[nַ)w=W~AHμQ\99>&,?=CK}Yۘfr888XR<42TDDDJ8СCiܸ1aaaݻ?4oޜӧٺu+}_9|0=)VUJuFn8z(?+WdncKܹ3| t҅իܸ`W_ N:šChٲ)CL5uQm3㚙 .uy~OTT{.Z#yFZY\%X˚ZF Ο?իWQMr/*"""'YҾ}{&NȱcǸs.]bK/駟۷IJJO?-ݻˆ ੧< 8G? "::48rF">>6mژukYf۷ILL4?_hEmm/'/ߺSG_~)lyG\]]ؼy37nɓ̞=EI?YzO}%r2\@ꯇ@D"""RjDghPP;w$11|=tȶm8uAAA6:h f͚ٳtx\OՕ˗/ӫW/1*gr IDATuM1dٌ1_ &y9sAcΜ9cUܨvyҬam]lkl˖-7ߩۗ>(ƌo#ڵcӦM||GWI?9YzO}mڴa׮]$''YKo(""""%A#CEDDyckTTPpwwɉ*UЮ];FUPuFj(S ̘1H^z1e4h3ԫW On7vX<==qrr2iK^:V>QFPbE:vHpp0y͜*W̊+ӧnnn899F~ 3mc k8e[SgYYY|TRW_}_{5*W̷~KVVVlyGFM޽Z*δnݚɓ'[[V+''K冀_Ņ={={Ti`}""" 4M}\ڤҵkW<<cS`{jHhժU%""""6u`̘1ڵ+O`FFǏ'..,=11DBCC2e ڵfŴk777{R,dŬ[o7͚5wh""""RhHve1}ĉԩSf߾}DEEDzz:ƍ#))>Gl ̙c0ƍL<޽{zbҤIܸqቈH)Ȏ ]~CRvڴlaHJ혘C 3Y{g d;F-ZsN~GڷoopdŊ\p}ǚ5kXb#Gct""""R!![0`| 4hP`?ׯرcܼy5kҮ];F لMjj*e˖^ztޝ=zem>O>}ӲeKSyʼnXO̟?)S>}0|p^g}ݻ)[,m۶?bŊ6=4֮]K-̞CZeڵ 0 ڭ""""zd;C w"R ;)ׯ3dRRRLiǎ3u攙9z)-55PYx1&dަM|TX~,YΟ?ڵkv3fj*S,HJJ0kծ]!Cŋ㏋ќ9sشixٲexzz~zS߼y8::2uTgwߑA֭ۺukOtt4z%""""*"""pRRR 44{bqի9z(7&""}Ifؿ?QQQH҄K,Vk֬`Ǘ_~ ={L-b޽޽n:4p@ذaŎ(995k={6NNNlܸX ݻMYlbccxoL3G|dhNZCTѣ5BEJ JOHHnlԤI7oΤIxo߾YfػH$j]WZDkoP=TITciTKQT5$A%"KE")JEIUUvÝd_&~ksoǜQe71VZqN>]vaggWgӇ={L߾}ysrrXz5SoG(cJt5kЬYblbb-̝;Wk7YQt>g(xEGG^9ߟZjabb~)VVVR\]]Ynhӧcoo1^x 60uTZhtޝUV_i3ٳ'昚ҢE ,Xĉؼy3fܹ+bjj#ƍc޼y\AԩÔ)SJkiի?~\>ǏJ3bX!B#U(### WV%H*Y'W^ySNQf2yPPWsːG5J !WHHF;{^ׯ#<|SO}.vO7):2rHԩ)mڴl|_x_~Y˸coo)7W3}N>Mn077֖pq< G!ijۛ>f͚QF U&88X3ZT=L<%KdLR B!sFyNJppp;vLQFݻ޿\uccce[nZX[[{Æ BYrۺu(sssFFFw}o\nݺi^>Bڳ$k^oR9p@u?uRF LMM'OOE_Q>j*JQT !WppֿͼB&?/BQNBжOe< !B!3@l@G)2k,*0_-22R111QeƌZy:N>hɼv$~K|LL(+spuuU222J]ŋkFw>yD|VVҮ]BG~:yўe>>> tUOZ5폹 >>>oUD{E8px~^WV>{~ʔ):i:> Q!B!UX. i&N͛7iܸ16mX+ڵkꫥVWIaDFF <޽;Դر(( c۶m888%CLL m۶[}ƫ+m,mϲhy՟7nfii @NNN.He< !*aÆ:!D%eC B*DF+vZ°fΝQoeeU@WAƍ۵va}6֭cȐ!4oޜdddK/D`` ߹t&++~mcclZ ER,OIIf͚z󭭭HKKӛwtnYG!DРAj0СCB!ʌ -%<|0ߎ\tSbddƍi޼yHII!55(LI4h ֭[}:ϟg̞=gtڕs@ǎbbb?7oެ6lH||<111hB|>EQٰ0}[n%!!SrI/%àA8qK.GZS%K+R,IիW/~g/^LϞ=ޓMw^g(00C dBBBرcB!DUa} P=WsRfMPwOJFFr!eĉbbb={VsΝ;@iժZh,bff$&&*iii-Z('Z}ogI9s(͚5S߯*YYYʅ ^z)2tPX[[+e%++KyqqFM7Ɋ(C QbccLŋʠAKK|*(ފhϒޘo߾yO \xQyrEe XXX(7o,r݋_XyTSTJ\Q~N=B5y!B2tQPEQݻw+ǪU;;;[6[@@bdd\핌BߗƟ4k,:h֯h;wV_VJUEQ'Nhuz>@166.V[VD{d{)]vVD)JG5 °sCQTB!e-}r9<<<_>իWf͚у{i~zѣGӧjԔW^ysR]mll?y昛cbbBƍ9{,Zѻwo,--111_.v_5&&&ܹsGg#Gz9Ǝ&&&hт[2b@),Iӯ_?Μ9ѣ5cر={eY< !D~\\\pqq)=di!B!*(0###QTzEvu7nW\1t8F@pps!D aԨQ=%݌ٳL:͛7( ÇgŊkeUƳB!N UFFF\zUoڵkpvvȰBT%`Μ9aggGz4-fddqB!B3TTIoÇСCիW裏Xh'N4dB!,RPP,0rHݻGPP#B!`b(K.{={ݻpB\]]+>8!BIz)-[ Æ ӓ$-ZıcǨ^:]tKKK=<Ȗ-[|2=_Օɓ'k֙;M^}ʲe8n޼IVVu֥SNL:v:L!`l߾]svZٲe Hhh(|>wҤI$%%im6rrr5k#==:\ۡCؿ?C )yB!iz/%==,n߾ͦM#T!6mɓ'`…m6"""4ˤ;vLsݦM9s&|X@ftU!B!ʇ B!Dysoh4sL4iJb<~3f cTQ.]޽{z*O 55XiРF"00dM+W41ְaC2B!B!B!R6my^QZgnˋK.)RssMڃ NSB!B B!D{'n^j ^h\toH-6lXb^浑N:M_4} !B!ʎte_dUז-[:tBT"N 00[[[4٘SڵILL$))ڵkk婧MB!B- eǎرa!€"##y뭷A>99^xmڴ)tzk!B!ʏtWQB!Dʞ={;w.sɿ|2:t(;vѣGM6 IDATZy111tܹB!BN:C !N:CQ ZZ3f ;;Ǐ4iѣql޼Tzb?~cj?~+++zQj!B! eYCP焬,DՓ_GiQӭ[vĉ^W[ZZRݻp]Ν;ǤI{/!B!Dِ\QTCQFe!wwwvMpp0vvv= !BQU3tB! sss|}} '!!FO!B*OF !BT ggg&O̒%K2eΆJB!B!Et=KZsN:ٳU W\iӦaaa:u vfYB! NRC=ZgϞeʕl޼EQ>|8NNNkB!B!0,Y3 U?=Z鞝9spssΎz1x`fϞMFFFG)B!B! M:C 96l?...b \\\ GPPcĈ#Gr= B!B!0&YjҰaCƎK߾}ʥϡC?y֭'NJSN݁ʲe8'''V^U&7};gJ۶mSLݺu5cƌںxoBreC dB!ʒt@)믿Rppp`۶m0n8 )8߾};t9H;̙3ؼy3=3::ZggFO?-z숈5ks_uBST("rȑ!BQddhz'N0c 4hY47ԝf͢UVC1ydk55j$''k-,,HMM%888\]]qssͭ=SSbֺʕ+޼6lUF!8qa!*0C B*@F@yRxx8/Ņ~kʔ~ MXݻZnu5mll넪M6 333N:ŗ_~ ѣGE_X\E><л&:M]F!ݺuKBe B2##CFFF>wf^իW/9={]v9r;w/j*6nȔ)Sf~BE<333S'4V_[n:*/!D^!!!EZ^!(ddh͊+hӦfʼkdo̓ R^=Ν;>+mll߿?lذwwwYlYLKKӤ[QOڵ4CNSB!B! -7Oر#K,!11Gi7puuϏϓY`;w.  [n%==&MUz֭Bikk ; .. Zs_uZI !B!BgL/De ?~<Zy浻;֭[4hVpB6mh^vl߾˗|r:tS;rQbbb%B!"^3GJ*33޽{ ?C6:|\r< ԩSk׎aÆEhu?J:tCBT!Z/^:k&((+WɣGhܸ1ƍ{rrOj׮Myw5$111!,,8ׯOΝqwwה>}:_5zˋjժq222pqqaΜ9ӧD^z|r?رc{qѣGC!x9rd9r={4pTχ~ѣGKթ}YV\͛QÇkV C;qℬi*D9S!! -Ğ={GQ^= -WfM.\~_ߟx={"3͙9s&3g,|QٖT*{.ܽ{s1i$,,, BQ: ;w'<<\:C8zh`Μ9imӻwoBCC Z߿W_}ʼn'ёc㣷M_zz:8p?_|>}0a5Q>^;֜ٿ? T^GGG 5פJ۶mS&nݺʘ1cqU!*DB$Jsvvf,Y)Sl$jYl)))ZP1i$x۶m#''Yfi\;5͐ Yel߾]svZٲe wMjO4eE_~ӥpBCCٵk&LȨиҘ0awє|#4JZL<==5e $&&+WR+WdÆ ,.\ HKKLܷoz7СQQQ߿!C3@d !Dy2"#8+/JJ2tB!*HF ,9|Nf^7 6=ϧYf2g]ƺuoM4 '''~Wi۶mqsիg}Ff͸pg޽{Eh~7n$66-[ャ#ExxM(};UQb \\\bϞ=,\͛7k:"""h֬NiZIg'k !**BJKFh޵BK=zt;BiРfff_ԻF޸> YhժիWW_Ռ޽{ge~mVZ޽{|˙ʕ+9v4jԈѣG3w\5F+ dڵ>|{aiiI6mqžILLԬs:x`LLL #..xl@Ν5zb?~cjXYYѣGRXQ_~%:vOOO[>3vaPB'9( !6JT|υ+88X5$xoү_?CR)|7rMڝ;we͚5S^Tt|7oT}]~Rn]ER)/^[(ӊ/*իWW5j|GJJJJwϒ믿*&MRSSSf͚J6m___寿*R=LLL@yQuWf͚%(^P1wZTTҵkWFJZ~)?Sux2b套^RWnZ YR/K߻J8-B!DunJrr2999ܸqyкukGX9Sn]1zhF&eǏUVY۷oIbb"!!!8;;gϞb\|k׎[r}cѢEtEkC8;;ru233IJJ̙3Һuk~"?_ -( >,U姟~K.>|GCvEΝ)\\\ ? ++g2`6nܨeBQHgB!(}O֭:C%::[[[%<<ח5j:< znnnիW 22 &J"!!A:EϺ~~~kj^߸qI&<==q;vƍsY-ZTa{yy»իW$==ÇӼysn޼CRj>&MG|7ƒSOQb-}ĉq>*CT* 0/cΜ9Cnx>8m/Ϝ ZPit]QE}ӧc|NsG޲͛7ZYyfK*^jiBL{v=yD VFtQi۶o+:J'88X>@ 1t8ϤSe֬Yz󽼼 WL1cV(Ç׹ 4lذϔ_F ;%;&&Fz(999ʌ3jժiMMR|M?V$m_*w!D Jg-[lY5jT>$V\ɽ{ F={+W2c OΊ+8wB!*jժR8qQQQڵ ԩc*JҥKYt)#G4t8{n͟0aIII9lzł G&Os pƍ ~ܾ}[עE EݻEȈŋsyON˖-122"55G`wNӦM9vX//SLI{HNNJߵk}ժiobbgu !De"Q~r󋲫nIv-Lzz:/fɒ%e~9spssxKٳٲeIB!BJll,{k~^oĉy&7fӦMk_v W_}*I>>>?HZק{׏~SSbҢE >|HTTQQQDDDp1_N^8q%4nX'@gʿֶmWW !De #C 96lfi+Vb0 m۶9rÇ: ޽{1B6rHݻGPP#B!B[-vZ°fΝIMMʪ3ʍ7۷ӦMM۷YnC yŕ*ZjѳgOfϞ޽{ILLd„ >>tԉ]'fYzJ۶mխ[WٝRhB!>Իxε.]bԩqF7o^3b ?L||#IMMմKhh( .)xbHOO'99kײk.}ϣGHIIaZS}NtߡC+d!ڌC9ʸ~!F>>8::QQQ3p@Ǝ?֭[۷oImڴ 3gү_?p&M:cbbشilذիWpBضmuek-l^zDDDЬY3"""2dHQ!Duԉ0C!V޽9s 9=zDW0N>}سg&}?^6~AvʹscǎZy1117oVH 6$>> jTS ƍɓ'7oo&Z7VR:u*USX^Y4h'N`ҥws IDAT###M(QBg -n^?s֬YjՊիꫯjv;tPE\,'''iԨZfbbٳQ>,)!ǎ4oޜ{E̜9&M`jjJcƌuW\ͫaÆZeB!0ɓ'SfM"""ݻ7QQQGO>)p*¦꿊뻧: !({mJ!r[[[|7:{,+WdƌL>+VhB|Zt)jٳt+++Wfs jf9 !@FbϞ=Z?ck֬7377g̙:1EҳgOgI޲>>(ֽ>|8ÇJwI/j=,--QTp]{.ΝcҤI: !zhyѣz3223gnnnuٳٲe BʧM6\pKo>n޼IVVu֥SNL:v:L!P22T<ݩ[LBQ9y$(({iv9r$#((Ȁ !0_~/XlڴI:B% -sss|}} '!!FO!D1;JϜ9Cn4ׁ7]}~5&OLN޽; , ##D1b OׯVY&''իW3x`ڷoO.]?~<;vЊO_)))Ҷm[ԩ)Sn]\\\ %%%D !BQ4y\svvf,Y)Sl$ٲl2RRR:cҤI$%%#mFNNf*}233$66V@`` 111\j՞]zʕlذAS.++ .p]'`߾}݌CDEE~ RB!ddxT*.]ҥK9rBQJ5"""O?D;88}v"""žƍe˖O?kFTTᚲ۷o`ŊDFFr1ͺsI9Yf:1eB!xP!BTZ7=wGѣ155-3iРF"00bQ^=iG/dϞ= 8 RSS &..WWWpss+9W\vհaC2BeC 3G!*t !JQw浍 tMuכ5iӦ1oaԩvVT'NpY*Ude!"rl޼ӧt"ڢEJ:iڵ+]v-0Dtڕf͚t"R |}}Xl.\L8g`ȑݻk׮q)>߿YsxbrrrS|up!,e:"r>|Xܤdm'O"""w`.]ʴiӘ6m-[獎櫯b׮]DEEYWlYlnݛ3qDƍ?ri¨R +VUVlذ >T+>>>3{lњaaa3z၇k&::wyǬ7tPpuu5=Сlڴ&M6Q|yڷoۯWDDDD4\BCC5=B"w:I>|8Ç/~~Z>>> 2!Cx / !!!X+W8z(=z;vЯ_? =Ƚ@hP{KI޽Yr% 6 DTb/"r;۷/-ZDZZ͛7[nur^^^;ҳgO/_)[l G'"w7| 6)… 1 ݻ?^3atؑ+~z9Bhh(ZóXYrr4oޜhVZq ;g^ԨQH?:| w:gڦ$""'|0yd^{5DDn 6-pG&<<*U7H5jxyyg""":CfY~V 4(n˗9vK.e͚5аa"=ǥKؿ?o6˗駟.-=}wEDDhsRv?\$$$I=̲_|瓐J0:W3AuZK7[.]⧟~"&&4򗿰tR ܘL6UV1wܻ3Niw)ɓ'>}:7o… Ԯ]^z1b>7''8֭[oFʕyg۷/uXl,X@&M7<`zI EDDLeJ:;YPP3g3f7ENIzx ~cŊEz??? _[=}$!!#vy˪Uʕ+ݻߟO>cǎq?N||< >#''-[ڼײeKrrrXvm]Z,| m۶{999̘1N:ѢE yfΜ˗mӿi޼9='O&''ǪީSxw_ZlɨQl8ݝh6nhs=\_A^ {δ˯oMvh޼9=z5o^ Eiӆ^zfqI&ٽΝ;ӤI~ ;;~PÇDΝͺ=}ζ{%&&rVJ||<[l!66b޼yٳ ֭[Yh?8۶mcHts;%%Gyؖ2K4X#߿?ԨQ%KAtt4$%%7uT͛ S={u,OU322Lҳf"..x'N`dee7:ѣGzk֬7u$B潾ӧ2e `;3rizɓ'ͺ`̘1\vޱ -ZbbbQW\a޽i bڵj]vqQ5kFj՜^ *н{wY~=!!!{6m?}߶mk׮K.7V""A H^%B/,o휎/`ȑ}kƍ5joUu0~xsZj1vXBCCYjk߾}ԨQ潚5kZ)Nꀼ%xRZHII1;.} 0|NJJ `ӦMfsrQU'|b>u3???~B潾rO-ФI:tڵkquuW^L|'>>=޽{3a|}}yg8.>56 'ʼnZBBBh޼9_}~);wd̛̙7^{-6_x>Ӷm[VZE2eFzu???tBRR yw)4G8nC$oߞ &0n8իτ l>3̞=#G2l0ԩμy;w.AAA|{L08|Un]N8Cl:=-E=ADD -@zz:| * 4`lٲ_ƍqyܘ2JW^͍jժqAs,)θr効Tpp^zٓٳg3~x|I|||ix_~裏[r#vyʗ/>Q^>>>tԉN:g>s>NoghժUi޼9)))dddqF~iEnzϞ=Yx1 .$552eЪU+}=}Dsҿ7/225k?]`h+vETT{e˖e涯/O&,,*Ub Zjņ Ȱ7K"""Epv${yjeڵk*Ϗ?̜9ҰaC7t?f~ :8#^~e֭[ѣGeС{δKVX`'OfTXӧh"Uƿ/7b˖-K.?~':oΝ9z(ÇcǎԩS_~wwҥ eyFo{OΝYx1aШQ#*Vh"RhPו\^^^ƍ9wj"**1cXeM/_x>cK233?l:t(?8qℙաCMƦMիU6m|o߾x.\DD$u(:Cy̪U3f cƌ9޽{iٲ%QQQ|۷W_}|CfǗ=!{B;oM~HNNK.\K[]vsYͽJ}pp0K.eڴiL6 jlaz8qM'U6s{ꩧ'33jժYW^fjX'z."""";T\٪LJ!C0dȐBHHUYr刈 ..GѣGٱcV/GDDi }ն#,OU#""R ٳF[兇g„ f… s]/oީ=<ؑ4yR '' .G7Swެ\D 黈0l0Wի駟|2<-Zo߾V'|0yd^{5uHRgH);%>00n=///Ǝ˗3}tʖ-[,ͻ +)Sbφ+sG"~0U* IDAT?gϞ%((#Go]=}O"U""""""""42TDDDDDt"""b:CEDDDDDH֭YhQI!"""Pgh.ɸt"R ڵkI!"""""""H,[e˖t"""""RJm޼ȒCT3 C:CC؊HQ"KJJݺu+Dnݚ7xbHNN",""""""rQgh.DDDt"R ~#"""R4Gݺuh"h޼2DDĩ3TDDDDDDnʛoɆ HOOyo%&& bݻw'00"LI """"""ӆ _pѣGN*UZ*aaa5 .s"""̤cǎTXsBCCgժU%St v {{yy/L˖->fWu%$$~ئ΁Xv-c޽|g{j?G)HDDDS-o233ѣY/2|0`@ F'""2u:(##[m7hРD)($܎x.\Ν;4h1114mԩO:EJJ )))/L0mPܬׯڵk9~8Ԯ]Ν;jU7''8֭[oFʕyg۷/ܝ,X&Moy bٓ *UXSg l7{(y;is~1βjgΜ!&&˗G9jQjUn)S3C\~[믿ZHFjW'""""w̙cn_rݻw{nΟ?o.0yeϞ={̺Ǐ'>> bbbɱղeKmڵkҥK^c4gh̗!66| 0c q...ow7oNVVw*ߵk4kb-.effPHitR0[laƍ > ͛Ǟ={hРIIIlݺE㏳m6/_XHOO7SRRxGlbYꈈ7 -BΤdgg_|S\2m۶W_|f=KGkll,C%00fG:5L{&SYf,]5jdдiS󆮠֖4Nʿo֭ٳ{lܸwwwڴiða(WӟRDDDDJP-Hޜ;wD>b߸q#mڴ:N&M(S Vo޼N4inC@rr/^dʕ)S~psPܪA;FZZf͢O>DDDPlYÇԩ8p>}zKHqS.I̙3@||<[l!..UrfϞmCZHIIw7Q8zMh{{j۳b :uīj։ۦ,O=Uc߾}:u 'O?gU`ҿ&N+K,!%%Ō#89(HDDDtW潿̯v aՌ3FqEfΜIǎYdY0sܹwqq;RGDD3.d͙ȢE8s ᤧ[ul}9 NF1b_|M QQQViӷ"wK`` f U&{nek}Gxx87Sݳٹs'ʕq6h֬aSSS1 H >|8uÃ.]Ĉ#QgϚ99(HDDDD:u"..9sлwo:uYDzX+l:kٶm[T`}ka))n -enҤIfƍgցi'/^:ѣGx'8vM,;%HL˼?^&{nf7Y6l`ҤI={#Fxb^TTA\v-Zf;%>wgh[Qn]Ԯ]J|J5[չsgXx1999ԩS@z< pc޽{vN> ((̆:d,=HqRghr4$?ׯ_ Υ5j{+Wm2k,ҥ ~-lڴ MhԨ1{n݊Q[n/-(7g>ȭݻ7pcJ6mТE F `u_M͚5ٵkQQQ4k֌:0w\ʖ-ͺЪU+uYoZtbcc󃦧3c ͂}I;ȸcY-i)i/\S~ne_ JYYYV={à J2e<<֭kU@zzz4Yhiii4o\jDDJ)u|M6lp;=so.\atޝ@MDDToÆ oՅ =z4TRUƨQpBI'""NPeffұcG*V9rjժ)o%0i쭤؋ˋ@^~eZly6lX),ŕTT#"""rw(m233ѣY/2|0`@ F'""Rg222_v J$;-vsvɠAiӦ7u/JRsDDDD'Odl޼ .Pvmzň#NԜXn+Wgo߾xxxփ鈵Y`SNe׮]xzzҮ]; ׯ_'66krqݩ]6;w&44s$''w^.^Hʕ fx{{; ̙3IIIܹsԬY^zѱcGsY`M4{$(( гgO*To[ȝEʯ3Բ]쥙余)ΧEb0 Μ9CLL ˗/磏>М&Mɓ$ƒ750SsnEDDDt;<}ȑ#f޽{͎._LٳgYvq &&2en~v~qY.^Ȓ%K~:#Gn <3gYʕ+޽ݻws5kqqqVe'N`dee:ӧݻ7'O49pcƌڵk|8)))M69'|ɓ'yGYt)7n^ >>6HIIGRf#""F!GRD,/ԩST\mꫯR|y566Chu3q?M g#?'6חKZ=>|0aaa駟G=Nft8ԩSݺu={{7N6m6lʕs3PjHfȑ#iذ!7fԨQ`u0~xV @Z;v,Z{o{ F$>>,}oooΝ;Gbb"$88p =ƍ1 իW?}vΝ;t,7o୷299jL۷W͚5ꈈHX:ODD5j`ɒ%dddM`` IIIf}GSDΝ;/ͺ'N ))m۶oa7uTdKgBn%V8s ӧOsTPݻ 1oܸ6mXzۗ3gða=:&M2|lŋYr%eʔ#"""";tO|N:=ցn)ڵk?7LX 4wy4Ҙ5k}!""ex'O2x`{ p:cǎ3mvi,e:""R:(MyKo$GRD̙ 0^Z*`61ԪU}ݛNqp&-V^mrOMо}{VXANxW:x{{۴39n^U/6??{M`ҿ&N+K,!%%Ō(5GDDD^cO{_9v^anFX:ݽ󇄄zjƌCFx"3gΤcǎ,YcO4jժo͢En:{e8fcڛwRyEDΠP8xe4gbb"-̙3nչ7ݝF61DEEYNߊi!i!Vr칕}sۻw\@w߿TF*Ν;)W'nnn5 0_ʵkkƍl߾G}իW{o$N:u ""K.1bjԨ'={0'{>戈[UΝ;n+VXMOOg۶m=^:uD\\s̡wdee1uKKKn9h s#W:<>֙6T`}/oa)APtM4 ֬Yq:p#Eӓ4}3ŋV=z(5*X;rtzi!GbZ}5s3 ٰa&Mٳ1ŋ4JMMڵkh77?4lؐ.]pΝkɓ'իz+ .439w N r[ݙ@9""""0a222z*wf„ 6uy@{r5N:|@PPh- ;w&((ŋC:u w-[pe˨Q:UVL<'NpEo8BJ\Y-Sf)+,-_DD, -B"UTB[[mrѶm[f͚`5]to%##La"믿G}đ#Glw6Un4ܔ#""""f͚/DGGӼys^z%~ԬY]vEfСsΥlٲ <ج @XX(̛ջwoTQmڴEE3;881cвeKؿ޽{套^RJڵ{֭[Yϙ6tڛjRV ""rgQghӉnΌ3ۛǑˊ;v:eےq8Jsi/e%O{쉇 .$552eʘ7+)Wo.]b6uN~#"""ro+h///bccԩ+V͍@s1%ʗ/O||<TRWWW|||fVJ@@\|H#,,1cP^=<<|8;vN:)"dǏϸqxGٳgȓE T^ݩkzg={6#GdذaԩSy1w\&{8o~_Α#Gx9Z~:wŋ1 FQbB۶m[ڴicQ^[l]v>m۶Eƍ _v;)3fU\UC aȐ!3$$r{u+ԩS+t *X-L,UV9fʕ#""8=J@@pc;vЯ_?DDΧp3޽{Szu=J>}h޼9}رcT^>}׭8r+i/[36mJXX6mݝի3)Ç{Rԩ:QjV׮]~_[()Lhhh^ܪ_<쳄L.^Hjj*Cv,["ҦMsά,_O?dt޽{h%&&RJJ02 -Dj;7GSD*T@BBݺuWWWy={6>>>u+).ΤJڋ͍￟mG)Ws6mn^{5NɏRs41 |]vz,׿8ŧ~ZǶ< IDATgQQ~߯֬YC@@ \r2|p~wvjN""wKJĉi۶-M6k׮k5jRn?///Ǝ9~8Ǐg;e˖tx""$+ŅD"""nKi&L5ZcٲeV9׏}pOdd$?{n6lȃ>hj>(uZvgq~^εrJ{9y衇l?~<#Gm۶|=N)XRRrqu,Xի駟|2<-Zo߾Uℤ$kFFۋ/X}nH*RNNN⣏>n,t7Sji,O:U*₋ w}+Wʕ+?ԳlvgÆ TTmۚ-^mRbE<<?cFVVVm= bFӦMY}^[o5e~=C`|wNwđ؜^{]bbտyEq}b]#CTӓVZ1m4\]]K:'dL<ɓ'kia)vW\믿6fСM(7{<ͨ[.'''\_ݺ#o3m裏ܹs6m3g$''/_b mΝ;p. Օ{om)SHOOYf|\r֭[~zQ͛7ի\W\aҥ)SUV֭[h׮*T`ҤIٳZjʥKؼy35kdL8жmȐ!L:zjʗ/'qsiX֬YåKf̙̘1u ƈZg8q$6gWDDDDT)ɮؒF42p3z5~g~y=v'O4L2w+n-vasׯ۷o7>#_7ׯo)))fYVVYsNܹs614lZ`<ӆao[oea\ҀlcѢEaȑ# 0GyuY>3^z|РAѣm00BBB)S?4ܹsNw؜^{F>H1Lǩ'881cPF : yܸz*/_f_˨D774h`ܘC8.yYJ8~8?hCa}'̟+T`\~}r?PV-q޽]2ds… o| tڕ[RL:uO?@VSOY[޶̤jժvG`ӇkײvZFȑ#4h硇r3 ,>9s"b_rrrI RFD:CED@tyȑ#v;j:@JlyZ "ݬeZm| 55ɓ'mձxʕ"9O͚5y,s^j޽;׮]#++{?朤gϞ%,,2͛kٶռ۷owzLK/@/̙3 2DFF0uT233m޷oz2G@;q$6gWD+""^zKDv\"##YlYI!" 99CnBn/yqss#""~W/^̸quqq0 O``-Vtڕ={ЧO3gy8q"̘1 rILɓyg/g|NP;2d>BCC㇆2qDϼy bhDK ¼yؽ{7Gf͚5qmj׮9s&QQQ4jԈ~:tO?͆ h޼9ǏرcDzvZ:vȟ'cAGcszE͛>}zI!R[D(c?"riݺ5oX%ҹԷW\z?]6:{&!!L2~ñ-ϻ=|VZ:cav3gݻʕ3ʖ-k4mXp1vX0:vXΔ>}4hQF 3BCC]v1zh7xqsI`=1p@ԩS7s~ xgl;˙37nl-[([ѠAcƙ3g:}rrrFӦM *>>>Fxxn:9q46gW^կE~Dl #"" """r3z%rK$" ]s9EOw34]jn{KLF0 }F""۷ouֵ* Aʕi޼9TZHK\7}t1͛GZZ'Nݝz~=zsǶ׆yZhiii4o\kuA""""""w7| 68Yve;ҥKYf 1114l𶞳4ۿ? ϟ7._̾}طo+V ..m KK~İpB à{㏗th"rSgh)Sܼ,A}RXODPDIxg$"b߆  |?.]⧟~"&&4򗿰tRw)Spy5kUW^gʔ)ݻ}]m i.\`фSJ5jNDDR@ o -Oz-ʌ3رcGI%""""RbP<==W>oXúcڵ oFٲey'?~<7o.]BB,{$!!#RRvA\~X֮]qwwvtܙP999űn:~7*W̳>K߾}3ʜsww'::#FqF?dŋ\2 0ooYؾyo„ lذeҦM?QR%zϏ_'ORbEWnos-w `Nʮ]]v 4ﰓ'O2}t6o̅ ]6zbĈVtY`M4$(( гgO*T`sM""ANS'SDp$$$0`NDDDDÜ9s+W{nvͬ˗/ӿc=~8dddC2 h~0f͚E\\U'N` Lwvߑ#Gi&Feؾ};/_ީcޮv۷/Wp-6m ƍ :ϛ9~9^N_Mjj*ZjUVİc^y|飈4M>%%%1uT:t耟cǎ6`K.,Z4sOs;&'$xDpɒ%t???ڵkvׯ?"""""͛7`8@dd$_\o͚5=z&MvZ;"""x'a֭@XvTP+W>Sb0'.3fNMĉ,^.\`v_M^~ef̘| =#G$""T^n~-k֬͛bȐ!ڵ|<< LX)))siѣ=zsNf̘A]6ӦM[nl߾jݻ@ɒu0 ;Ɨ_~ɓ'9x )))Yg!!!<4mڔFŮ]9r]m}  cǎw??rA"""Xx1+Wu5qDjԨ@߾} ڵkhHHM6yL<7xâ޿'NժUˢ#(?U{wiԨf$&&ZM4pҤIԩSg2c nݺ\%oN'ܹs۷М>T2TDDDDcƌaDGGŋ2dAAA;w@:u*ϱ$%%P|ycr1ad۞=f|ӬY3(9m0kFhԨ "--+WtR̙ٳܾԩc x0ٳ槁۷o/>DDDӣGbcc-艠9g6T_~ԩSi֬nbѢEtܙM6.(͜hذl;v~gNNNM}vvv͂m۶j  :::WUuK32dnN\[3MeY""R424T-?fNģ'"""""ˋ@9z(| | 7Ϭٳl۶ oo|Ν;]s)f1ziwZLOs9bU}_5j?M3GL,诛=q~W~gys?l~N_ŊIHHիTX|fNED FfÞ'&9yVOsžxDPDDDDt___6nHjj*գ~Hf?~{̇~/#F05m۷oǘ1c8y$>>>tɪށHKKLkRfu5ywΝ;|{t6 x3gN"--"##y7-ڴ}[Оev^xfΜI\\w̜9ӪnN_ ?LuDDA#C=OՊģ'"""""c̘1PBCC-u6h v͡CׯE=777Ǝk~]|y._Lf۶m3ۇˋYfY$پ};SNeԩV?~VZټfN5iܸ1 ӠA>S}ߟիW~z]Mj֬iQ^n}-ѷo_+Μ9cu3kݺ5{!..jd\\`yG|dSz[ģ'"""""yckIݙ:u* 6ԩàA>}'aaa퍳3^^^rJ'LΤe 5kW_O?X/7$ www\\\x'9s&Æ 0'm]3L4N:B ݻ7K.x = Oʕ)Q...ԯ_#Gzj ukwww.]J`` ʕdɒԯ_~x`שS'<<<ػw݋#8͏~H999NPPיjg7oҿΜ9RRR4hͺnnn,_`@@ymOe>3'͛73c i׮Ϸo0`zV;SLk׮/L m6l@׮]- ֮]K߾}Ne|-RӥKWnInN-Y˗e|||pݺuc :yyBv =O )nn< `ڴi8:)ڵ3v~3˸9pN 8jժY 4ji¦5CY ֩RJ^^^7qef@@V"ss`^/4+K&((˗s'?Ç#}GqFڴipDDD$uܙ7\|δi=z4`֭-qF棂zV鉠H5k,N8HDDD L8qѨQ#(QtޝphѢFbܹ̝;_jC%G|TPOՊ3=)GTT}/޽{8;;;:,G%J (((۽3r -%CĉQ_~%iiiTZ???J*UC"艠H10k,ZjŤIO[DDDDD=%CQA?U+t_DD#G_ex *VHdd"""""RiP0{l5jD.]prrM6ٳaFٹsXv-˖- ma2ɚ~_MJټy^:}1k׎ &p17nDD6m0DDD$JaJ*0Dlذ={:: "%))˗b.ꩧ(S JHdh:[la˖-CDD!>#:tEyɒ%iժ{eĈNDxطo}ut"ŚaADbJ~يȣƍ,\QFium۶,YOz!bka8%CW^AD Y6mx7H|rnܸDvO>d)""OPLʕ)S 6 IDATaÆIDD2{)r׾y&SLGx{{н{w&Ŏ pww/0EDhxG1q ׾9:EDDƍcܸqYKDD ŋ\)T+V 11W_}\֧OYb#@VS8.\?UTq@dGSQDD$*U0DD$.^ȢE"%%Zj1`:wlQ,]od*UD6lz֭c:tWWW:vȘ1c̣&߿ҥKٱc*U:uеkWufVccc͟/] &P~},YbQ'=[;k_~uO[V[SL""R(Z d5}$55ٳg3wB(i*HѓDf˗8p IIISN1uTݻG.]HII9}^BBk׮%&&0<<<,>|8W^֭[lڴ<j*s;wpa>̍7r~݃>ro[kRSSiժձVZÎ;xWIDDMSQzO{nvPrMSQDDD*V0DD$>hܸ17o&22_~0sUVqi||| ,_իs)V\iv͚5ټy3QQQ 2͛X` 22`֯_X䌍Yvmxߙ];** FYk*3K|ԩSС~~~׏;vL`K.,Z4sS82׿̙Cjjj}71ZlK/ܹs-5]ݻ̞=vѡC,YիW4imڴ}oƍv Tׯg/_III~ Gپ}x7Qg}fgJbдiSJ*Ef͘4i~U'NFGy^v|44<<~wzAll,[nQťmi5kZUE)4M>ݸqCrysHƈ#8z,>>0Xp!%JdQCeѢE,\'fZw,_ܢ,!!uq5g6?Xl>>>lذ[/(Q=3&/""ygkfӿo4he .X-SOY^:u̟{yy 53f ӧO'::h/^̐!C -G񛒏im|25AMe:""R|idh> T^$111'M0`kfƍeߧ~ @pp0QQQ߿ݻת~\\~)gĈ̦MbذaDFF7T(9904M^Dsrr铛*U*_2uT5kƭ[Xh;wfӦM9~fB 0qYf\[RLey""xJf4e<u[嶦4oޜɓ'[sNf̘AqvvvL6 ۷8ƒ%K2yd w޽{6EFFrA7n̗_~ɇ~ȬY gLzpqq!((۷o3i$j֬+0/no4EDtUVup$""Ӡ;ԩSY֫^:?EiS{yyyYjڵk̟??W홒շCmLLezP("R)Ξ= 1ĤyVuϝ;@``ER[ny7mڔW^ySNzju0` we]#?a5I?$ݞi*Hѓ@JV֭;w. ܺuٳgkPx0СCܽ{C1sLڶmkv튯/7n$55zQ~}R/_-[pMN>Mhhhmڦ?ur3^DDOmM@z1hk*czFjfٳg1;v:>{l;?s=G:ux'ի\]]mg=}T'99'''~)Ν;9t/ű^{o9wygx5jX1cV Eʗ/˗޽;l۶-6ټy3||}ro[nݺ5{!..j@i9$EDh|?[g| L7ٶmi3111v_tҼܾ}3fX ,,1cХKw޵7ME)z.^HJpvvvt(""K+VdŊPLJ*EF5k;w6+S +VW^TRgggTB>}Xry${tޝSҰaC\\\pqqN: 4ӧM0mرcѣe˖ŅVZ1eʔ\ֵ;uꄇ݋'/CDD G/+3gwޡaÆ;v<$۳rJBBB8q"ʕ+YիW˒%K## ܹsԨQ#:t@v,64tؑӧO[ 5*To 4 !!gZ%=5ED1 JD!Pzu$2*[,'NdĉYlv@l/ ]ݝ`~ۺvҥ b\p.\O?-I|Էo_+Μ9àA;h v͡Cׯ1777Ǝk~mxQll,l߾S2uT?ns雦=TRa_nNmFDD'%CZ,] IJJ kצ_~L:s]OOOXlv"11ҥKӼysFAݺuu'LG}DBBBGT믿Μ9s,|M޽޽{wգ_~o,]K2Ԟuԉ>{2`v4ED1yH!0G c;ӦMc[777G'""A|VBQ^^^7qe٦=GLzM޽-ʔ)taÆe۶=9훦=ԫWa8D-5js_&""ŗ]vL@@={YfSO98¢ISQDDK.ѺukG!"΢+(( G!""@#tЁgy={K-F_LSQnJ||8q"5j/~#--UСCE4EDHNNjժCDDDDD$)J(y{'"xܽ{W(CIP1KNN4y<իC)v6lDd%&&PZ5G""R<ըQ={:: bI?;"R K.*"[mڴM6CDDD2dh:}o߾CD ֨Lٲeqqqqt(""""""Npt"RjԨDT0DD*%CEDD,99YSED5BE ~D (z+ "<[_~uOSJsjժ˺u~zcwD ~zL>Wp-6m 4FѣGe񄅅… )QA>|…Z\Ν;>|Çs ukRSSiժձVZÎ;xW_DD WRRZDDDDDDZZj׮MTTovίY&7o&**!Ck.Yf GI&]|Ibbbغu͛X` 22`֯_XIk~@Fb0ꈈHѕQ"""""Pld>h~kN85jзo_¸vܹ3fPzuAvڴit֍۷ӭ[7<<s~g-ZĚ5kx׳\iLey釈DM 0q̂ٳgٶm"00@=7|'|LVX^JŊ-6X.""EϥKl,"""""J|lٲ7oriBCC ۷ $$Ǐs=eĈ]vח7Jz_>`{i >@ 8{U 2S)52TDDDDDjJ>ڶmK^(W\_wРAԪUCѯ_?}Y:uիqsscر 44vGHH͛773%vwN.]hݺ5qqqV1ڶm[=tE*"""""5%Cz;=zPlY\\\hժSL)IXXAAAx{{쌗\bfݙ:u* 6ԩàA>}ބ ټiN`޽V1ݻOOO^x﯈͛7qv G%I &888]5^^^7qe`^/4+X.] /_΅ … O >l/""s%MFJ8p ժU#<<\7s`d""d6/ݙ6m[n%>>xnʴipssstx""Eҏ?;997KJJ42TDDDDDn&/E5s[l$""֭9a8:Ixyy9:d䫠 H;: ɚ"/"""""=MV)PJPJJ Ԯ]WWWjժEHHn2 ɉիW[vZիyN\3HÇy(]4*UbȑܸqânBBC RJӷo_RRR,\t *0uT4h+eʔϏe˖މNFQY999nҝ< @xx"ݺumkucǎ|ה(Q+W?ׯs!jԨshڴ)>| *XaF+V$99٢kҥKr -Zu^z%/s ;fcܸq&,Vkӷo_l0DlذA?.#66g}%KФI~СC)W| ;vd|7 8k׮qFʗ/adfg9Fz 4`ʕq[P{a:￧yM*UD%wM4ȑ#|7t_b~\xk׮@N֭kΏ'"""""R*a"=n޼ *XLW}6O?4q|Js oܖi]777n߾Mjj*RRR(Sn ѣk֬1AHHcƌ#[$"""""Rj0mD}0%@ErYzjǜ2=k]ǔTRypaaanݚTBBBxXdI """""Ritu릑"%B^jĉ9s5kf[ҤI>|~׿?_ȑ#DFF/ˣ͟FVR3x`ٴifbܸq1"_bq%Cٳ'={tt"RY_&44 ,X@ӦMIJJb޼y̝;ӦM[:vȇ~H.]v:99a ׷9էO&OYz5~~~ >\'11 h"Gf8u`9U$;waH1q""SZ3?#A3[5BfdիlْǏ[`߾}|rQjUsf͚9s&k*}9^>}Oعs'/c6%bkjľ#VDD'hРcvb֭9r6lHڵycV}}}=/66֢nfs+""VZ ,`5k¹s}]װ+w&887r5v?s2411RJ1n8ʕ+G}ѣG[./oV>E)!"FǏgϞ=V Tٿ󼼼:u*eˬߎN㏌=c{f<䓹nSC#CE0k,Çq?4Faޜ >>0Xp!%J:u֙)]4̟?ׯ[AX >Wp-6m S'TZjeNVaǎ+H~IHHe˖CDDDDDeqm޼ p"## `zk֬ѣ4i҄kwO>ILL [n,G4ƚ_'''S]6QQQY?լY͛7Ő!Cص IDATkya{⎊QFVLuDD$*U0DDDDDD ,fxuDD;=z 66"sNf̘AqvvvL6 ۷g3`Z~AׯTsӟ'RF \]]#f]VȜ=q8qxͨVZuDDDm$IHHpt"ED4|4fONtt4,^!C޹s ΩSN*U8<Ԯ]f0qIsӟ:u?KV}ekLuDD۷os5 ''\Wk~L8XV1;;;SLj׮_ƏOٲe 2ԇ;zX-[Fdd$gΜ!--rѰaC?kzѶ(6J/ -[{n>s~g-ZĚ5kxIfQJJJǛ6mٿ#G0x`x /_nMj鏕LckTTRsF"\MeꇈH^\t x!< ݻǕ+WذaJCo&ͳ{799(={6aaa}nEDD ˋ@9z(| | 7ٳgٶmv_3۷o'<<Ν;SBgɒ%_s"jhvPs"q{X" \z+Z3m\D8x"FBfV؊޽{\x`?;ܹsaܹsqww筷ޢ{Ԯ]777\O?G}g}F>}ؿk~ G]vח7Jz_>`9}pqݻGrr2~!1\ǴiJ7͛7ҥK 4;vpuܹÑ#G3f Ѵnݚ=z+_<[l͛>}<۞䔭~7{nРgϞjTf#"R$%%TI)^:C 1o^>֭oӟ(]4TX͛73|pܹûEDD hҮ]; yz VZ:t~ҩS'V^cǎ55%0wN.]塡ԩSL4ٿ?۷g֬YSh۶-z\ry=ɩ쉻uYc*k۶m)"Rpuu5,R={aÆ7co߾=zf}''l?2gϞT\ԩCpppD'OdĈԭ[WWWʕ+G->}:W\ꧭ~۫e˖@GҧOT ͛7g۶m6c؇gҢE J.maAϬ/Ǐg₏ ɓ6LС/_@bbb2@Nl74iwQO_|L_n3^z ,0]fQիƼy^zxgǏ7Naرpwwd^:ӸL:t0޻wB=?iQticΝ=::pss:ؿyk6ձ{$Uϳ^aBDDĆ ŋ ___$7 y`ĉ9~$RPrHNN6Tb899cǎ5Nm1b~3ҌHnݺ`L2%˶3K&֭[k'O4ҌTc׮]Fƍ 9rdݱ[n1{lt`QR%0vj9rĸ}??m7>l\zXa>vՈ3n߾m]v5|F||v7nlƾ}7nw6ԩcFΝo>cǎƢE#Gݳu{Vy~,(*""ydhfE2JMM5^z%c֬YYf]t1n޼$7 y`FN}{.:ub̙QFYao?@Ν _OS-:u f͚1ZkҤI <pA矧K.Ka9r$6mf͚]|iɧ~f]??l5%%3?fFr^Fuֵ*+]4O<saΜ9\rbbb"22_N:o>Zhe[~,F)((y1o}:֭SMjԨY|9'N0Ź{|u)̙CLLUI&|6jcIou?;zyaZ>˶izݻw-M뚦Z믿5D _;P2TDDuE%Cxx8899ѹsg &p!wɓFX|ձ8UV_V-8rUVZټzyw=jt`n/0o< 0n¸u ٳg[}M߿o?2h OΡCk1}t#!!!s{#00(_b'Npt8RQ 6h AGyRʕ<<<ݻݻ7sgՕ~e˖1g HEDDQd#*>>G!"y?[wrr"44NDDD9%8FrrɋHk޼9f̘14jwwwJ,c=ƫy뭷<"42 66\v 4h#""e˖@JNiii8: 9sޟ]wsjժ&MRD%K`߾}8tʔ)p055vDDDDDD` ϳg̈́fffTӧ#!!!ݻwGhh(ڵkpmC-HJJC!"""""7LjJ}0ڸq#"""0p@lРAƍQQN?hӦ BBB^zJDDDDDE oE>|?/_B__ӧlmmzUUylzذaN8ׯ_\r֭F0aLL v؁o*T+V+++رC ARr}UsΡ{hӦ ; j;,"y8g(hvvDT{r\-[HSRR 1LNN3޽+|'tt>>vѪU+vZj?~8>G˗ǩSЧOkQA$ DDDDx|.ڻw/`ŊtΝ;)Svܙӏ"M?mp]4hr ФIq.\ԭ[W}yTRѮ];tC"R˛7o`ll CCCmBBnܸqt#"". Xŋ#66>>> `ggg8q0o|ȑ#ׯ_KS\@)VVVؽ{7QfMԪU /311߿   >پ|Ԧxh߾=`ڴiw[,[ VVVpvv֮]ԶL^rfƌ={6Fkj;"%_P"""-dJ*T~!((He}uF?Pu܍74nGUYmܾf>yez ~gԪU FFF(]46m3gݻw+/ߔ E,Xmۢe˖6miӦR= kkk 0eʔd$j~ЫW/aPzuܾ}FѵkWlݺŊÄ [n Vj[^fmmiQ&O9s`̘1Xj!R+J梘Y燉'bĉ(4~C6mBϧ*L2{ݼyM4'>|DDGGƍ5kkYTp0@S ```sss 6 f͒M0vvv(]4 ЪU+}oWWWT\%K7`ff]]]6mRٵkW/^ϟWj(Y$:w%!,L: ,O?OOOmC$y-G}~ͩU7n܀'&MWWWX7oTƪU|S!miiix19s~ԉA޶'"?^_&L@tt4:w7o"99qqq8w6mPL2EMys2|Y122”)S>dw]tQjX{VJ(lذaaa\2 ,, 7oѣQx, "q㐖k;$*޾}/_^ۡQ8{l;!!nnnׯO]v(?$RSN4hlmmQT|_GG5jʕ+ѨQ#8qPCT]xDžwH;v@ZpamH#CCbŊ|||`ffk12ϛ+<<<0a,YDP`2 =+++XYYi; RƍJe BDD6nܨȈgݺuؼy_|bHJJʗw}P#+1((;wF%P\93qqqJU%y?gϞ):t ۽{7:t2eժUt|JJ ~glٲpww:8%J hbcc1eԨQ^:MDL-Z(?@&)M-W_A&aΝUVcĉb\\]]QlY{SFÇpwwGڵahhRJe˖X~T'/_*PfM!񙕫V<)" Q IDAT,00PnZxBxBnZ\vMa+l2!ĢE/̜={V/_v(DB!|||D_K3>όT cǎyV-<<]e<Đ!C5jR7oF|ذa Je?:uiiiӧS91rH@Ie^߿S~Æ c3ĉѬY3[ّε4iRŋQDٲeɓŹsDRR1g9ȪMΓU -,--1vXxxx?#'%'ƍÊ+0yd,X@P%Tˑ>:t(>#55=;:$Ջ?۷իWHMMExx8|}}1rH+=zh 11QQQسgX~=={#((sQ'+K,ALL *T'ʱcVZ)kժqq!ke˖N>gϞ oFǎQJ KIIk0rH{(7VV]6>[nqQcXj㑘ӧOﶀܺu ={6`رŽ{3f(xbyqRRRpiQZ5h:)))ػw/tttpgǕ+W:uBRh"ܽ{5jŋT^AAA*x-қ8q",YFɒ%x%Gk#8z(#-Tb Y}v`…h۶-J.;bʕ2B359OZjP"PիW L&Νo}ɭ^Zj; "Iadaii) "BCCE\\3gR+W KKKѻwoq-,n޼)z%,--ʕ+c"44T$&&JwQ׮];aii).^(E\\صkzRj/=y(uG{ުsqqFf(,--ń Dr9LFŀc,,,֭[5:b LLLӧOծ~ˍ~ԉ=7oBGGDv͛7ჸzXnE!ɔpT-ߺuK*UQF QѣGh׮BK bҤIB!>,l???!ӦMBԭ[W'NPhرcS'Ezer5kBʕ+ K.b^``?֭(Qtҟsf|8MΓU.DDс3RSSCDD4ihР5kLHen~*1,_rhݺ5.]߿:uBammÇ#66W^E6m03{7...B||}*#~KMM~wHKK… ={z!I~I|W7_N\-]TaӫWj| `x&Ne?H֬Yr(&?ߥ'<7nñqF,\ƍ˷QTtyPl~Q޼yS\,[wذalقC"::Za%MdЋT筊|Q/2.F# 9zzzؼy3マ={*s$*`ƌ/0,[ ;!}ɿ{ (mqQ$&&ptt{.W۷/Ңz&ML&Cvvvёv=ztl2t3.]\xQ))OkĉRMՄ&2 WFLL 7n,݁jtrsŸq$DEERrYi#..w1c>yN<)6% 2dJ(DFFbƍ/ܤ=^""ʹn;vn+S /_???TRE9eccM6a޼yQ^=ܽ{l}郰0L2ݻwG͚5PU*g>ؿ?/_\uXVwڵP~O)7nPSjԨ~ yB{ȑطo?I&aҤIJuaÆ帯#""kFj}mWu|9gʔ)ؿ?.^4lűxbyŊѮ];>}_tKwڵannǏiӦ N<{ŃЪU+k֬hzzzXv-Zncǎ… JMͯ ggg;VivIU WWWxxx`Ŋծ]-bڵpuu+~Pտ&Iy1DDy_~8|0틾}/Ӊ՞(# %ʾÇĉ}H'''СCq)<{ #FPWjU2u : M6:i666ػw/OiьHꟷ[ng"88X!N0QVlmmq,jpaxyyA2eмys8;;K Բe0m4<{,s0+V %%ШQ#/1sLX"WKŋ1{l۷aaa066F۶m1{l;>}ZGX|E(S .^3gb߾}x*V&&&ܲeK5 k׮N:Ak3zhcʕ{.={ɓztWF@@^z}}}Ԯ]vvvpqqAɒ%/cPտ[2QXMd2|||re?~a||| pUt ušCPL{upQ-EHه;vT`QJZd|^мxtaaaaÆcǎ vZ9so߾):v'''i$eTU燐@*U`mmCJ?~+WDxx8ʔ)cǎeGBB-['N !!VVVpssCnݔsުCnPvm[N'''<|Gx%`*(2 B DD$H'Cspp(Pwt;v +V1jggr 5k0_|SN}@K֬Y 6`҈0b9r#‚P""ʡ"{<% uߢM68~8nܸ;W^Ŝ9spAmJׯo1"0tP>|>>>_| rtTPbΜ9CXX777iz+Wn݊!CHʓصkT1!N鏻}6&N/@%:u*<8k׮U:>`̙عs'>} 4h?C&\F9)#C ׯ_[n All,鉿 }͛7ѨQ#mIȩSбcGzJZ!Hr{dܖs̵k0~x)Qeoo˗+#JESbb"U~:ucǎAGGׯJ.۷o(]4J,  !_o߾U///aii)M]!׳gO_R_xbL81k9ckD@mG@DTܸqCd2_4ʗ/DEEaL&CϞ=ѰaCiUb"u}:::(WC!"cǎ<<>> }ܸq&D6mĖ-['OGd2 ߿/M2EZ׮])))˗U۷(c9sQjUqY,\"j׮TWߪUDttHJJ(]t}Qr%"*ΝӧyXf 4h`Ǻu0rHSЩS'm'ODNpY?~:uz}MߪU+lڴ _~%Νs\rx5`;w.,,,&M2d={C2eG χ>|SSSxiii077#|TթSpwwv(D &={ W\rTD䷌)344ٳW_!..HII[pE8:: B2e_ ""PZ5<}QQQhѢݻG U'%%e˖qBAa u׮] ggg߻w7=g (Qؾ};4i===ԫW6ml۶MۡCL0gϞE6mp7NJFr+V@͚5add &"##f͚m۶ի*Y$`ɒ%0w\<|FBLL ͥ_׬Yoߪs{ %"x3gzCWW%K7|sJ_o߾Ŋ+ށ=cǎ,[ 5jԀKŋjժAOOe˖-._,%B5ahh3g`̘1(_< 1`]Vѣa4mŊCbРAL27oU#"P"*/L-[V!9oAAAW]bŊIUФIIIdB([X1$%%!>>FFFR[(UB;v`ĈR ŋǴiH,^^^^>pqqҥK3hT߿ 6C!d*NDđDTxdQUV_Kɓ'pqq矹*}lmmBCX7nE{WrLQUGܹsYuB ;w."##cΝDDDDDDDT0JDV߾}~:RSSI&A&CRSNaҥhӦ .\mbٲe8uTG>C] qިs!%%=zR]sssd2^111hܸ17n @q*1i:}t899iQQ9CRwEߣQF­[Pzu<}7檣DD@fsjT+++@```2244Dj=zB&7}|J^p}Ԯ][LdFu;RZh䨽TP/DTx"رc):Zz"ꨣ#d27n Ń>oIIIxf̘gj;#K,߸q4i\]]b ܼySa %"*k..B@T9::޾H}> HH8r4iV 1S}$Ɵ{{{tƍ,]'OĮ]`ddvSA "B#POv^aQvF~&rSٲe#Gv8Tlܸ8pT&gƍ2DDD3&C$v=$&&\rرcQxq۷orJ={ СNMMf%55N/>>6l'k+Wݺuȑ#{ /_$$$Sƹ&Zja͚5xyyx%ann>}Vz111©S[+W:tQPdIcw؁%K044DN⒭y #AՍ;&&;v7| *H+VPr IDATv؁!CTRIDDT0JDDptt *maذaBYxx8v؁h̞=ш#&;z(ԤnfŋW؟ gggܽ{W*{% OOO|?..#Gϥ29dH0MĖ-[z))) BPP1խQll,~HeE@@ǹسg>|iӦez Tɋ4رcGViժpq?'""&Cd V>۷oL2zL&CPPFKn݊0TRsAZwww65^fIl۶m{.4hS7opAi?J*aΜ9[.0}tDDDFF j޽{+VRRRp,X;wh˖- Aʕ ̄nݺ{.#lڴI6jժa̙/ax{{'Cs:~rTgf MFj uUjG^v&Cd(D9B՗Y(cy`` Ν;!_x!^ D3gN*lڴ)~7?^]MfEWW5ѣb?q`޼yT ̙3gG[OL6 5>}8NFVuZ/X $$666BH4nSNO?SN)%CWTZ,x{{#:::~Tɋ4>&3^B""DDDDy &LrNo1'k4|_tt4ƌPtMerٳg޽{lѣGP7m4XIYf˸|2V^#FŊӸ^F7nP.?/^(cnn.=666qNOMuXK###@圠2y""ϙ ""r$00Pa˪|ѢEQJ <3f̀Rh))Ф*pssCJJ ϟ/TGfҏjU2e\It邿hܸ1j*t{ѸJnK:Oɋ4[~}s'/5$""*,82(eOAS֭ïweY7o?BCC *y>|8z葧q˗/abb 󤦦BOOUTAHH_LppRL:u0dlڴ ̓4C,˶TǏ֭[h֬T~-Ѥ?cBwݻ7޽'ObXd\KRJx)n޼͛K7oޔb+yu&q"<<QQQ055U'_*c9#CQF@amm޽{HHH@rr2?={gϞѣG#ҖK.!99ӥroqׯ#55wܹsҤnV~T\޽¾8o{obٲeTs#88 ՎE+++޽Y&jժ@q2޾}}t>j:9&]q׮]WHO^&CDD9P""\Oy=4;^zVZ!$$*Uĉѭ[7|Wœ'Ok.,ZGA޽?}k06ȑ#pwwW{ЪU+ <'O1j(i׮]F͊f̘ѣGc׮]߿?+apܾ}V8Xb0aGӧO1l0OOyaX`B[/CԩSxFjժJe)/ "##ѯ_?СCZu8{,^L8JDDT >!!!h׮ܹ_~Ճ PvmL>/^D2epYYFa)ޤIХK}\~}̟?_Jbܹ94`ggsΘ6mRMbHKKŋ%K033.accM6)322z2e@OOjٳx?EwwwԩS0009 Yfi\/RJaƍ0`*T]]]TP ¦Mmyq\]]Qre"99Yqwŋ9_fmf7ѣG sssa`` J.-6m*fΜ)޽{y !ĹsQ|yOǚ5kѨQ#damm-ʖ-+tuu޽8}t!'ש0?Q|d|Nyⅰzv(T^ZXYYϟKeϟ?VVVbݺuZL} "ʑDDT?5ºu!99%9qFFF 7oތ-Z`x RRR m۶˷^ KKK]?Frr2pu̜9_5^zV۶m8;;lٲ?l0?W^bbbкukL8ϟGdd4oݑ#GСC_9>x mJsWFGGÇx4:믿rT :+VT333쉈>WLQ ;;;`„ x!p%9ppp˗/B(m͓_^z=iiipvvƓ'Os7n… - & &&NNNx!ӧO^zx >@U ѦMo,Xׯ~G||<qelBf49^']| v͚5=abb0)}3gK|̙3QX1mGDD/ %"BmڵԩSdXXXXbhѢ֭[#** +W̲˗/KL4 Ҿ5k )) }V^իC__ؾ};`֭k-add8VE_֭H#lق֭[h޼9l}1CnD_'NDݺuQX1 *WرcY.lEDDa2 Ç~'G 8~xmDEEaРAHMME׮]1|`رJZYYA'O[UTqT?i_!@XXZ'$$Gv=}BLWȖ#9Lсn СC:u**Tsppŋxb 4H+=m@DDweYÇ5j>} l߾ =zhܸqUNÇҥKtŎ;W^ٳZH1޿.]:g?!!!spܼyn9LDDDDDđDDTEGGRJ011Q g'5+zÆ ޽{Fbشiz!$$Dv-,,S;T;wݻ7̙'N*r:LQ!WD U.$Ҕ1~xd2l۶ ˲yR ߷o_\v ƈ#PV-ǏVcǎU055UXuDHHԩ777lذ2mKsLDDDDD$䉈PqEtM1p@cݻwuqMuֹ$UZÇz3gΨutR^&L@Ro>DGGC&Ie׬YѣG+OXu!׉ h;"*`vڥP""*Ծ[rnL&C]]]qmӧOϲ6lؠ/882 իWϷWL;w(oժ~>(7k ;wFxx8;gJ9U t̒%KQ:STjUk; "*@DD9#qpp>/L?.J.-;+Wq)1j(a`` č7c8 FOahh(~M8qIQ~}@̘1#6U?v)SQn]qq+RRRDPPڵ )U v%RRRDRRɓ'\rꫯxHII"((H,ZH|pwwWhBcƌ"55U!CH @fs ]>>>*?DD""U "*>ÇB-j*Ma!TkٲHHH2̒ى?**Jԭ[7+WO>U8& 5kz*%B+cܤvwޝs:1; i* %"B{y&.\'N <<ŋGf0i$tYǏ5cĈY&ϟK.!>>5jԀ#&MCC|.]… qM>#49DHS2!vDD>>>*Q˵b~~~ @ %""""jӦ ڴi0jDDDDDDDDDT$0JDDDDDDDDDEDDDDDDDDDT$0JDDDDDDDDDEDDDDDDDDDT$0JDDDDDDDDDEDDDDDDDDDT$0JDDDDDDDDDE "HrppvDDDDDEDDqVaYUVvDDDDDEo'"""""""""#C˗/-DZmADDDDc20C-mDDDDDDDDDT$0JDDDDDDDDDEo'"O@QL?x9lmmQB9rDe]vR^```ʕC-0l0TTI1._ hѢ DDI+d݌ٱcVZ)mժpq_xGQ2.I7oƛ7oP^=ݻΝC߾}J֨Q.\۶mݻwѠAʕ+C&MJn߾0e\p/^ڵkϟ8e``\~ԕ6}v\xQi`bϞ=pF@qԦ?/_K.*U‹/m6b/[,5pnݺJue:DDDDDDDD%uOL4 UVE1m4b߾}J<'NwqM]_%E *mp8 hKm]uкGk hVZ "Xuy<ȹ>ބ ,YA6m?ph\rvvv8y$֮]˗ +-:Q&ǜ5kڶm }}}Bo6={6Zj=wvv>̙3pYb///*,R񚥧Zj%uRy!B!.aB䪸0RHHBBB .… y#@vT:>Xƹ>Kn;w?{ SN͛7e1*=:Q&ǔ'cccokkkVbwttz wV!p4jHiފŋSSS\B!Bj %R-/Pވ)3$$7oD-kkkcJϫyT1 UuҊ=9_~D@x͸k.\!B!$j %"WBB;"<<oѹsglٲE*|Ν;S|aiiYi޸8o"z4fddbaꜧ&b.Rw(++ruuU;&M ''yyyhҤ6nhtB!BM4g(!T]< v Xr%rrrPZZ888 )UgϞ9s -- x9֮] ~!IDHKKܹs|J䆱kz/^b$%%aɒ%}*իWHII)SpmXYY_EP,m\&B!B@=C !(Ncرc_!99R&L\8w1j(m:u*'N@pp0eggg4j/^,--qqΣ827F@@TF!79`9fffX|9Ԏk׮8}:add}}}cҥ ߿0m4XYYAGG"H&իѭ[7شi̼UV9r$ݫ|Ƹp̶ .AӧF&B!Ŕ@!]\τZM6!44GÇ4h&Nru !Bykg(!B46f|R w2B!Bj5B!DcFFFq1<~?Ʊc?а#B!)!BD ૯ʕ+_̂JB!RPc(!+sV$ ! k; B!BTk >._\aR/l]t0!B!BИ~VBH 2!B!BzavGB!B!51B={ 9pͷJ!B[RCiQBҥ 5RK FB!%1%}]mA!B!Ԩzʡ9D Q={v[c!B!o5B8\( IDATQc !~L"B!PB![8lذzȑ#!B!vm@999!B!B!---Pn݊3f˗2۸iN`ǎAVVaaa.]`ر0`@mHHvɤ?zwF\\rrr>...9r$̪2annN:aĉuVUdd$>|xuF!ByQc(Sɓ2۲~ ػwoX!py$$$Hߺu &L@QQ&t?~sk|gϞE||=::УGSP\\ gggc8;;#>>QQQ2dB!B ċ/0tP`ԩ}6JJJC$A(RɛN @j{aĉ(//GPPݻHh )) ˗/kO:0an߾ Hb={vvv)ܪ_}vɓ'c ?ܿ}[N˖-Cbb"b"..NNN`aRB(HMMūWK&M:ЪJu}}*Qkiw^YpE\t 7o𦡝/ 66ј5k`j۽{7nܸ;bϞ=|2"##ѩS'رc2i/^Ă  <K,v؁ &&MBddLOHUcbܼy .899UZ&عs'222`ee0"44͛7ǝ;w.s[ C#Go???5vpE@dqy!B!D.VDDD0bW|.iɒ% 3gSNt;'662lRf̘#Fwnݺ[M744d˗/e򧤤0y*m\zddTzjj*m͚5Rfjj*ުU+]zU@dffbŊUE:::h֬۷Ri~*g=z$s GGG:udggi5UߣF?7KP^^'''꾙ŋSSS4.!B!CsVMޗNIoVlcc{BGGGj;IgرcXo0p@xzzJ ߮q_xŭh>IHMME||<._k׮.8թrssQPPsssePF2{-~'÷o  ͛7ѢE >|T>www8::ܹs8z(lذw_j~ES}{())'dǘ1ceĢ\q"Iy%4nܸ1 ={ %%ZAG3nQ;yri,G!B1ho۶m)=F4VנqU/ XhXσpX[[#**YU5pVl81{lB*Õ["E+kR666HHH@ZZtbXQB2{-z5 w}mff///xyyƍ8}4v؁իWK-~J>KKKdeeJѡC$&&~;pVV醹E͛7Gff&]&"/dޓۯ8zh5߃cǎիW.sLES5ӑ#Gb͚5ظq#N*w;IF~~POM(IkYWWW8qٞggg3K,e˰l2<⪚/ ΝCrrԏ`hhS*QFx|||`iiǏgϞ=z4vڅK`iժ;bw4f9sǸq㤶lR& x3T= @*#FT}sq ]v瑒"327F^B!BPJ(X,=22ZZZJ6m#+JMhh̶hiiiЇnZZZHMM,<\]e$nѣGl[z5CZJf;V\)\_|>} ''#F@qq²dggcʕƴiӪTFu;_X0}tҥK|cѾ}{C__㩚A P(%ttt`ffWWWSpڴiD">yd_h֬[[[L4 v풚EXb>|8,,, "<<\4!WFnݠ cӦMRs~d}R=zHm۷/D%]p 4@>}B!RBuTDD,v璲9˗YII ;s dLWW%%%=z`| +,,Tϭ[~GÊӧ=~J@n4֬Y Сb]~ۗ`Æ :)8ثWƦ(]m666 4iabѣG,~|fee!C7n0HRSSsiR1v=ִiS}lݻׯ0,88eTZjZ6P(dBPsR"ch&7nd,;;Ofl֭o+jEGB!Bޚ+ZIc(cHIa@a^ɇP%7+))L5^^СVVV,33SjWWW{QyX۶mvAbbb=%aaa ѩrr_Ǣ衣#i512E$ՅТ"36zh&Ç+..fl|H!B[CCc,==7hт1sss֧O%aÆj72'LYÆ >k߾=[p!+--UZՍ1rssُ?옑e666~`O>=֯_?fbbtuuG}4l e;vN:1fffz~wc;wdX޽e}6gLWW۳bʍC:唖-[~1KKK -8q"KNNV&eTZVleB׋H \ 2X0oBBڵ+{{ڵ+z[zc=A}Է/"-*L۳gy"+>'xҺ lmm^r@qo9s¢{իWmY#B[~~~6lXB!r$j^266FII nݺml߶m@ !䭫FPΉ'/ ! k(R[ V!B{ȑ#! #`ȑUGO9%4rannN:aĉuVF^T1*>Ddd$4O5p<==ϧ`Ϟ=8t?ץ:ر_~% ,_QQQpLLLJW\ 4HD$&&"<<qqq{ 4nXi4R6lJJJGaǎ8x 9޽{=˗Ro?SNܹsprrK7npuu9ϟ?lj'pI;v *G*ӲeKddd`ǎ-ڲeK/X?Ν;6oތC0n8cĈjSպwTQ4 R$x{{cΝ c;BX=$]9!D3B BIBKLzzz:ѣrɓ'zNE=z`YYYPTvU(M[q?MILLdݻwg=b>dݺucIII Qgϟ?gLKKM:ݾ}X6~x٣Gwɒ% """ f`` v=&Xtt4aؼy*=6wꈿk׮ 0a}6D={1lҤI*~y1kРYJJ {KIIa kԨ{ܘYLL +**bΝc ڧ:.E,//egg3={6YLL +..f,..9991Q1ZVeY޻woa IDATW'N }v˞۷/:ֵWYUg95˗iӦk&55z%&&2777T1BJkPBj}z+00 W_tVVVJJJXbb"c@i甗^^^βtκ*UmskiWf `rףzϸ9s>uJsbcc.O.mƌ 1b~W\aX֭+=FM744d˗/e򧤤0y*Ą`yyy_1gϞ2 qgϞr$s3g0aÆRYvm7o֪U+]zUf۷fllU-_~ͦOδ|X ӧX,"##SSSmk֬ږ0SSS!u-):WuSCBB֫W/LYYstt{U !uEBTHNN,^Յ!>3,Yk60sLo]ix)Fɧӧؾ}{-F?@b>ǏDEE)|!U̘1_''O믿IK\\\d233CΝe} 5YU--- 99ӦMCǎB?K.ڵkhݽ{w綶C֦M@]UkyOQNMb49skFWWgϖouBU %YWꪚm9H]si8piii(--EӦMꊯ ׯ_c˖-Ǐkkkx{{cРAT _M6E1~x-[`ڴiz׸qc*F+KgϞc"664azU (((Febؑd:WɛRYvI\#"HMME||<._k׮sqSVUcŊXbrssx\xѸ{.틘٤I纺}MxVԵHuSSRR(;:!Ȣz~FOynݺ &ODHOOGzz:?P/uURR֯_1#F:uH=qFJ`߾}ǂ ׯZ( ׯ_QTT???D"_ CJJ ֯_/ c(((PZ?~</^@ <ݺuCǎ~A$udff2'L/\GXXY|Ԋ'Nkװ{n#F ,, 7tgS=TT'Q^$zO*xE@dqy^u`)|HϹy&&O ---޽vvvk <W^EVV0n8~ݻw1eϽN:R[nI&5j5vJR+U֪+g9h߾=͛P=znݪshABvvvLMM4.u&sQRU!(F*o佯UEsґEQCh\rvvv8y$֮]˗nPzsDDD 22/_СC Րj>n%K:::hӦ ~g+fԨQ*twwǑ#Gk.|7ppp@JJ BBB  V)E$Gƍ7`ff/RiΞ= 3g>O?%;s1f͚gggO>9siշ9[nҥKn`bb"w^6UzO*꽘 $nZ*7옻WTUZZ#Gχ¼Z4ӲeK;8wJs6nܨҜF~~>4~k.U-2/lڴ 7oĂ 0n8xyyItx{UpS6>|Xi^V,hLUQZMbر#իrGѪ_BCӧWWW8::+WDqq1شi|||=z`ر8rԱT_~0p@lذA:11zBPP܆pyb1BBBУGՋ.//gFnгgOO2ãT'xѫW/899aԨQu;~ET:Fr2']U&'DSϞ=?h"߿>&9w֔)S```8Y"]ZZ*u} ''#F &);;+W6MƧ"sׯ_cʕ777VUu]k2V^]p?>"܂`ݺuI]kMiVcT!Qch5ظq#fΜB,s-[Ϸ~zl۶ GYYqu,Zjm۱c=z2~޶)S,yثWK^:nݺ^zŶnsvvf,33͛73@zv=q8?L$WĥNpN:żc999 ~Q'֍:2e ի2eb:u̶& P(T-^/U _xݽ{ߧL~lݺuEE|||@ `=8~y&L`mذAә@ `...5&2d,..N*ҥKL 0c\rE*ŋ@ `~~~|ZMӧɉ͝;ٓ}˗*+dc*;{qL gϞ3&6zT[@0CRhh(ҒɉTZ&y4<֡CXff>m۶և [cǎ1 VY(^e,-[(<ϼy:xҸ5)_xݕfff*85٦95KmLLLƿ*RB!PPhO PvO*خ];@VV14.\v ƍC-sssQQQ4iTw}q߿?6l}}}o .ٳgJ񛙙!66?#`dd]]]~@RR۷_~011.>#;vױeӃ!lmm1qD$%%)]8p@$&&bԨQ.,--$~ꌪ+2aر:uлwoX`͛4H55jSN?ѣѮ];C[[fffҥ ϟ[naС5cu u)Mcڵ+]5coo=ι} cjLسga~sT],)!!Ϟ=ԩSqMy ** ǫW7nBjUuڕ#?%WK.I5rYΥ]x2RC+CzrvvH$˫NTF$!<<[lA^VUuX,S?\9O )~~~OP9Qq̝; W<֔K{W@кuC)գG~-U" 2 7@)ݝҒ_cڵصk2j ۶mCFԎE9+cy/((1c6l033:Ƨ~G*mƿd}o~8p oNzOV I| 4@XXB!,--333"<<\xӦMttt斛E pwwQfE9UJ~sss̘13fPX4_M7^ߪU+iFcʣ=YΡʽhbbPP<|VVVڵk8q!Bo]ts0b\]tݻm۶aŊd?/BZbccѻwoddd`|z~~>7n ooo<|f͂ڶm'O|={Dxx8̙3fm۶ݻk.888(gGKK 1ܿ_)>}ݻXt).\͛k֬0!VJ! ͛7DZcj;Zi&ȑ#Rs 4'NzLZeJJJc޽J P({wU .(h$`o: >Y*(d&je.\'*"I IDAT @MA4[\I0 \HY<0 y^{sν{f<=y3"""<>+ٳgzbo=\CG-0&݋~cǎœ'On:_صk~m:B+NZgȐ!oTL*`L:]JKKk$m6ܹC>}-Zi ZgΜ9pppqU_&N}WV`Lw}W+a޿GmЩS'L6 rFDDDDDDTg3jCCCrr}WuNU \\\0vXtڵFʌC\\\EDؖ&'""H;CjKhyӦMwIDrppwjDDu?_q%"S?~ 899 Z󑟟/000-[|||F(lSFΟ?_ 6D1e>>U5Qܽ{C AӦM?͛ 8 .]Bvj]lKH82w<믚IԪU+kT֡X!ypy .\q ', .sœSXX۷oc3fHKKÚ5k0{l|'įi.##ЩS'#Yf+m  %:cĈJG={ٳa``Ji'Z HLLD~IJ#ߵ*C]cǎĉ(**BJJ ҶnXnrssѭ[7t TҍTWekMLL֭[!ɐsӧJiS,\F-0rH,X@!OTQg]?~֕Ͷj vQ#)) ={ lmm `ʕ" 7Ɩ-[`bb͛7qÇ/ꖡO>=z7 SSS...Ji̙:u*,--aff&Ըl]suuU{j9鏙ڷoUVþ}kƍ{.ƌ#;v,޽7DWWW|(bJcU;-!""ڂK.){;>>ذaR@DGG077GΝ͛7kyj_E^L&Ø1cԊߗH 6 nnn:t(֮]B?#&O@&᭷BXX"SuL:?`ҥZ@Rb E1p@_@iy^^^XhSxxx`5 (i-:{,(ŦѫW/H[h!u@jT'm]nn.V\7|SjctYϞ=1rHxwg[yEET+*m &~n֬Y8~xZU;}B\t .]¾}E.crر `pvvF]*ªUjժ !..Ni1~xi{̘1 #T4)P^y---vZ]Ҵ&L [vm+t]r())СCUWXXɓ'ŋҾ;w &&Xf Kvn:DGG+۷#''}{ҢWصk={ktnQݻwK_}sN)|߿Xh˗/Fs_uVXZZ]w|riÑ+F^^ݕҺ#%%Gov}%~W!]v!##pvvV뚺mǏ{!++KJ8 && 4PȻ6k͚5ҨX(**qy}޽;RRRw^)m3HLLDRR4ɓJy;::bHLL:gM:222m6$%%I#-[###ڵ 4iŵ !!WƩS;;;ܾ}ը x'''$&&Jʉ:(ijJŒjz$uۺYYYGLL N:hʕ+شiRޕYX"##q)8qAAA;veuyͶjvE6^+*/Y0669z聐ucr.ѧjc3{l888A?>RSSVXѣG!!!pvvxbPy 9s;v˗ҴS4̤SaC:жm[Jq_ 0o<8:: ƍi$Xabb]J#4-))W>Oa.1RZ1P+DIߋ'։ѵkW[n7o(,'G">>FTQsVm &&#?#v܉Ly0`N*}q}pܹs&&&hݺ5ooo)/u1좣qQܻw͛7o'*|;+'Y(INNFxx8{'OƣG|r8q&&&߿?̙ jtXz5SnǏQ^t_iӦ 988(RkuV}_^\ƍCƍ+,H[oP &nܸ6l\"|}̘1R:U!Zn-,N-FӴסlVN)7oTZYYUV=xT>1 Qu+GPJ۟9>s*uۺ[nu린_=-SVem駟"99Xn&L\sss_9Wmӕ(..)褎"^}U(**0`uh֬}bꖚ(ASSS pqqQx&m_U/n튦,--1l0DGG믿?rrrU~b'd%Um󙙙())Jp(ԩS(,,DffB۠M}:._ {{{+O{u}L%ҖOo?@ ==HOOҥKӸÇ| жm[8;;P=T oUe-!""ڄu@vyR761촍UqԽNb1E8mCСPXXM6!** +VPAJUcVDxGɻヒG"==o{~رcHOO{1c=`8pV+33SeҤbmm};vѣUh?KKK,_\p @iǑPti6t㧟~7EJ,[Lò3jee`ȑž}*sؽ{7 |UUͶj @)_6-Zx< "88ݺuC~~>֮]!C`׮]&]UGS:ʟXR\~wUJgjj N}׈=o jfͰqF 47 :t˗cȐ!٨Q#@.FFFĀi&?>̞= LMMѩS',]T KQ6.iRG] acccj㦦pttĘ1cm6Ⅺ2x`4h@e'OQFx׵ʛH;?/\]m7n7666022 ƎM6I $ibȑFajj SSSnOt| addTi3f`ԨQhҤ LMM j}ުf[BDDD G@vT,bi! 1ӰapEؼy3ޫׯ_Ǿ};UԽN-[sΡwΝSSkСC={v”)SGVC*4Ti֬#[E5N]U9s&fΜc7n\abhEeҫsުf[BDDD GPe1ԍn:]İ$TvđK.?^U&`رJ;WX+W?Ɖ'0{l bLM5k`x饗`hhSSS8;;cʔ)زe4=]1:SNEXX\ԎyؖQm` T &..;巩s ;;;ݻWթ֯_hٳG!&71qj)o巩vgDDՁ/DD*rd(:bٳgz4*GzaƘ\DDDDDDDD3j!C-[wxw +++Ik޽sܹ{bŌEDDDDDDDPZgΜ9pppqU_&N}W+ crT B.C.*u!i*..EEEQsNw,~P""B>}J'j*xw] ":/DD30m4L6M "xxxC """;Cw5-\X}WֈADTH;C?Ƥ"$LLLeHWx}W j31t1wy!ٳGU&i/DDPƤ"""""""YJ`mm |ҥRzA*ͳl*GKKKC=4GUϣi=3mo#G{gM꼼}Y^U3K.]vҶZǥVWL9ydc49x$''d2U3mSMojܻw~-~G9sux{{cg .77>>>8t$$%%!$$S զRo;Cez1(ʬYpZݱ+}6vލCa͚5ڵa͚5رcAѣݻDTt&} "Uo4h5VfNgϞڵkɓ'_u*G:w}WmyS!q!/ kkk矈Bhh(y}VO>… 1j(#GĂ $EU)DTÇAÇQRRR _~%ѣuᅦ W_ҥK矣wu\. +ҳgOgϞY5Gyu.,,Ǝ+SرcVB^KwW^—_~UT=}_$Bٯ+Rꮓ.g@T?h"2L | <{LPa[_PP LLLJ45Q.kB f͚ 'O?~8/mhrرc%sNKhҤ`bb"888ӦMrss/,,>CqƂpBAѣ M6Ə/ABCCB>};z@qVAG㏅-[J1c Çj] Us֬Y0k,sYF+V0ͣG?\ؿ~MϥDXp, 5d2O)MꬫgD3 %"3޽{… ///A& ÇUaСC IDATL&[—_~)(Wi)lEEE˅~ ^^^ºuA }  \ /+xyy .ݻ|P1/"xyy BNNЯ_?aԩJN2EׯSaTZ}=ׯ_\]]#F<~ذap A~OOOO>›o)XBxIuWDu:DGU:CAЩS'( ΝI׹q9вeK?/MM#n7kLWy>;C]\\OAX`ƍtImܸQիO *yׄڵkX3mĉaԨQҾK 999Ç;̿K. o]s̙w Q+".\qڜKeٳ+=\R!:CzhR w䉈zϞ=I)'44CNN+۷}9|b S:~طo󑓓`„ Ѩbܾ˗/W6<<P:-//Jiݑ#GhTFqOOOǭ[лwolܹ֭sǏؾ};-[VV%M:D.'''̟?8wƎm۶[nܹ3,Y,YTT_~'N }> 0uT!33yyyXh+WDjj*郴4… ?8::B&'OPڽ{7 qN> xиqcŋprrBRR VZ*?O_fΜpt DFM(͹TvEEE:bڵHߗUw4JDD:7o1118un݊/sΈӧݻ#%%{@5n9eedd`۶mHJJɓ˖-vڅDL4 p zj:u 111۷uVnmm xai(}MLLtA)OLCR*QFm Bbb"aV_QI[ѵkW,]W^EBB իWupqq9sNM355+Μ9+++,X@gPDFFm۶3QUo߾-[`oo4X~~~ߪ1 q)m8BLK߽ U+JTsb癮fʪҴbHkj/"q_m@K>>|86n܈'ObHJJ£G0i$iD1c ŴI[ضmN3gbѰ*O]N}E9ָ{.n޼ '''͚5Sz5_ʏ裏/M6>|8:w޽{+tnUwa3"ur۷/N:wbϞ=xK/_~ؿ??~3g/+WըP>}:`3?z {FBB:1c`سg#,, !!!Ҭ꽣i GQi姨WPC/em9fff*Y~EEgϞo߾ҴeD^sUejth&i1444&44Zl ???,ZHQ5ڨ*krlHS/^… ѦMd2:ttRRR0sL;Bk#6XܥKSu;|0 )) aaaPlgNTk׮Z\\,=z4JJJ|r୷RLGaȑ1b\΄rgժU qOϜ9/ҩF>{ Ǐ/s) .s̙3ʯ]cg(D˖-ΝS_~lmm~(߉ԩ)",iii4 ^TT8Sx5%TP5_ܧj4ыD2 '899EP^%v,>yDڧjTkzlH7n@hh(wN:aӦMٳgEYլ>>>E!,, oFqq1nݺ| S 3r^ǡCgJx?1\.ٳggϞ  8PJ;j(bJ;A`Ȑ!Påɓq)) vk̙R… 5>_tq.OOOܾ}2 ۷oÇQXX[8r )ST۹3 n:[n֭#4չ/ީgDD:`ҥ@qq1Ο?K*P_433%%%WWW)8 T+K,?-- !!![>}:._ {{{V7ӸUEo(,,N*ԩS(,,DffBL䜜P{ӧO+_Uɹ} 4hժ/_777;v ׯ_GXXR8$Mh⻾L8 Baa!fϞ {{{W^ӑT,qzwv Ç?ٳ€qRU}HJJBϞ=abb[[[AXrED^^z!>n׮Zn({;w.wwwiѡk׮m۶R,ucÆ 000Ç^`pǎܹ3^c fffӧ<#F`Ν χ̙:u*,--aff&u{zzJ4/ީgDDhժO@&wş6 ZBzz:ЧO <[l oGȑ#FJUFrtZ:ر*fye}۷/piXZZb011Ѹb }bu~-[D޽Gi~~~ 233UC}:all kkkx{{#99Y]\~8JTi*jڴ)xW#99YX幹aҤI/#%%+V@޽ѸqcXZZbԨQ8z(vޭVAuK`` ssss ͛tܗ}T3b Tb""5ĩ *Y'NǏ???IIIRڜ|Wq]4l...(DEE?ƸqҥKqIm۶իW%\|)"""pQ<}Xp!x t_Q} ?~wr\o/bADzP"z&;_ܹCNUu={Hӊnݺooobĉz!Z}DD*֟DDTWWW|7gpU|PS9hB?<kFDnx1333j G~~F.[lQ86..qqqHHHPN>ϟ?_ 6D1e ;;&L@aaa___<~XU۵k3334nnnnꫯt2:"` ыaȐ!ol2AX;T3,,,xb{իann>} 0 AJJ > CCC]'OG}OOO888ƍ:u*4h޽{We兿ףQQQo߾ʒS\PPVX!m"99̙3rDDP""҉9s`̙Сahh[[[9TL9={ԩS0|pqqw`@T\ӧPTT .?bbb.yf`())?rrr `jj0-].KQVv#//OZo CVVڴiӧOǏGzzR^bCPPP\]kAPEы1C!($=<2f(QyݺuCzz:ꫯJi8v옴֬YL&Crr2>cܻw@1C5)C<_~py044DII sθp~G 8P b+֭[4h ooo899U1Cj˗/bipy!!!ҥ ѱcGE((Y[[()r M+ 9rfB.]JNDT %""""""Ev0ѣ Swm055}n9#MLLҎ3nBLL +MW~z΁H %""""""EZjvX ͛ϣW^p ump *[YYwEBBRRR0w\?\<W'""Ν;j;;w;CjJ;wwCt &طoۇN:aѢE Z ۷̙3g!""FFFP:SJe1˖-\.Gdd$vcʕ ~'=vX,Xزe ܐ@[FVV֮] ???tMf_v*3EEEf"ڀmw.]ܹs_pAرcb^z%ܽ{CVp5aϞ=HJJBϞ=jРV\q}?ڵ iii;.]RH;gL<SNԩS+{,q<!66V(f^ixurN/zOGGGHOO҈7oV8vF&M ))Ieѣ;)Sॗ^|||a annΝ;#((H?Qu0A<H|}}@Yz5Y%zӦM|qqq4!!WsBDB*GN>|DzsN>}ZըUnܸ6BDci)@Tđ:,>>^U "BDGQP"""""""""8MH\]]JZ5ўs055E!;;;hr^HNNd2TD{.VXA.?TuDDDDu;CB}6vލCa͚5ڵa͚5رcAѣݻD,XgJyv@bڌ-ֹW^Ś5ksbݰPJ[Ob…5jlmm#GĂ sN)O"]IOO[={DqqǪso&"""{3tpz1}Xjq=۷O6n܈wb̘1ҾcݻظqLHem CCC|DDDDu;CH'NgbѫW/H[hWWWl߾ՉyޗzR1yd 0@j'p:ZyOM&ODD:\s'Oŋ4wALL 222f*m.44w+cΝR>ؿ? h"Ǐ{!++K:6;;qqqHIIALL 3g ==]!ezz:nݺ>}e˖Zս25y=D˗/Fs_uVXZZ]w1˗+M[>8|0)))8r~mCu!::Za_vv6oߎ|gj{nP"")'''$&&J [nŋѹsgӈGݑ{*呑m۶!))IYl2a׮]HLLĤI(R믑{{{ԩS\M69~r85juLM^QBBV^SN!&&vvv}6nݪQݭ>4m 11СC>1 .*mo۶ D$%%aÆ 'O?i"""DDT!qhESUM#SwQ@HHadd''',^em۶055\.Pϼy3337@Tq? ?>v t OGEQQ؂G u+Sף011A׮]1|륮qK.]8::*mժBh&w 9s;v˗NC&N'"";D7n 6Le+W(k׮s [n-j[nu린G۷o(>|86n܈'ObHJJ£G0i$i]d2mq͛7ը8VVV-1 Qu>f̘~M=A·4QP"":@ IDATPi _V՚+\P5LeZMs={oĈؼy3{ 8!4Խ2GrCyY@+M[>000Lq"ڴI兆~C˖-֭[SNѨ.&vQױo>VkYvvvv~WG믿Ju)V&!118q<==V+LNKKjQTT8a4լY3dggѣGh֬{Crr2 &&F\vѵbBA&"""38())J It#==K.O!oPZ8:^Cddddiii  {?'>Ժuk[!!!Yc*'U$C(@.]5auuoΝ9s-[&czꥈqѓO>o&_kȐ!pu[FFۧ}iڵ;wBCC 6׫CEstr~ך/j޽*W*Uk׮7n.^X}7cpႚ4i8m۶M7oٳUN9sGm՘b" @PF-I9uIۺO>:yϟ_(DEE9] $%%I^~eEDDWjР&O,Iڼys_#HfI@|j۶nݗzK;wVfԩS'pXGVVNVZm۶zw%IΝرcբE }ݚ0aͣtyM>]<6m;jƌJMM$;vL7V׮]G.]Ըqc/nŞ,I>w?4as=jڴzO>u)vg}vڵ5kVZiWjݺ|A]rf߱c.]X.]T7>,I7ttR?a;9-ȮB SN Sbb6lؐkƞ1zA=jѢ5eN?m۪Yfׯ֯_\#H<6c ?쌌 >\ .Ǖ]ȑ#[4uT-_\iiiJIIќ9svZ֯_t?^֭ӴiӬǥG￯?CYYY:q4x`),,̚HJJo;SիW(1믿qz6izᇵn:={VYYY:xy]N!g͜9Ssѱcǔ4޽[/,Ybw|a_`KK}VZI>syv4o\iiiZ~g %W7|XUVռyuV͝;WUT`IRn$I֭i2ò{.=+**J7V~zhȐ!6eic…:u֭իW+>>^111y;իWKz-mݺUzg$I˖-sXGa_X.]ڇoٲ$i˖-H:,,ePd_3ڜ~oXh … 5dnZ#Fmf8;k"sFZzl٢AIk%K_U*U0k,IV=O~~~߿ Iɓ!|͚8q$=-I+] ˗̙3޽&+ -[Vݻw 㾻vR2e԰aCIҾ}$]MTfM2>d1k QW7k׮>C-ZH=So߾?]=s橧RXX+IJII6lq[M 9g:Y1mq1IRΝyAmrgKbNjժe900~MT~} 4$?~\.]hڴiڶm;wNCDZK_1BGӆ%ק 쳑#GjҤIڶmmۦwyG R߾}ఎ¾Ѳe4|5o\ |5k&_߫riIWɲR\p$22R0`222`͚5KNg9Ǟ3ٿBBB$fIGla1F13౜1we=hʘy{{?tuF|AkOb.$$DǏWffLbX'm8zRnם rYv駟W~[:tЪUS״B ֭vܩdmڴIߏK_#Ge69CwU7Zl(W^yťX%K.ʕ+ڵk+""B 5G VTI]tg}vm*Wue KR*;˶^f$7# ^{5CZb.}7JNN5991(9ʗ/ӧOk׮\֮]w߭kѢEZl-[fF5fAg}Y ȵ,c3C&((HS߾}Ure($$Dmڴт tRppϟ={*44T>>> U>}`%٬gٵkWu 2 gϞ|OQ+Vծ];TRԫ:Xˍ5JݻwWٲe͛k.ڵkW=SZji4iR5-Sg[-ڷoҥK[nӦM ΢)5BGUǺOaÆiER\\bcc/;→SNR֬Yc~= 8PpIKK_ٳgK2%G~atM6[d*Wlh>p=hժuߔ]rEGnРMy- לGDDSNjĉz' 5k7T@@@ :hʕ-_j1`d(愆ܹss='e5jG}TӦM$O?SO=0}:r222t7YfڸqMYWbr>G-[zOիW#<8,I[^|Ifȑ#&##Ǜp#Ɍ?>׺%=2̐!ĆLFFIKK3_[dFRy駟~2Lxxuرc$s뭷͛74nmf5kf$Mn~ 0m۶5;v0.]2{5111FP9ydr{zs{omc._g?yڦInкu뚘yfsqFSV-#t3gΘnH2]t1{1.]26AAAdLX PPKsԨQغu5̘1cl=SFիq}uYn%<2̙3v哓$SJk_N.\0LҥjԨa$;vؕ?p]o}͚536\b$/-w+W̘1c,Ǡ ӺukϚdeei >|] 6I\r6ۧNj$m%}333MӦMɘ  ha{1LƍwYSfM#ɴo.dyolrH$ڵk[~/6ǎte#T>++s~u?ᱟ}Y=lFmիglLZMO,dݻʧIf{˖-$ ,֬Y-OƄPyc!..NT*T3gYgr圖ի/_pm߾]˗_lYٳ*[g$ _r'/X@_zuEGGSNر\j?}9?^!!!*_N>mڳgo߮oV?OҮ'>}ڮ-+Ve:|m{ 8{o߮۷k˖-WZZyf5j(_mzz8gvEt%ng}x)UT8OƄ;79$Pg/59bF 6{qX򘲣Ǒ]%իVZСC.׾ve$zl_t?>SffdJ*ܹGsbl$?mzz8ڗ}h%0}3C@>|]VI˂te͚5KԩS'_~Y /As rK䷾]v9n+\q%I|Ae-geekovpbbbu(d}'jR+{2bRl=ZIIIڵƍkw}$iܹv奚5kY5k֔cWy۱jBґqiϞ= Wǎ<(I߿13f̰|Eb>iӦ٭)SHMۓܽ$I&MRRRIfc9-ZM) HOnׇM6q Y_5e˖5Lttoŋ͆ СC5;wGIo7yƳ~o$g}֜8q\p|W[o5̄ rCN9$gyH2f&55dffݻwIG6IfŊ&33\t)233͚5kLvm|syxxdFaN8aLrr߿ͺGu)&Ol/_ӧ駟̥Ko$fRRRߓ>4͛77y̦M̹sLVV9yYn1IHHWy'CUI[nf޽&##ٳĘ2e8<Γ1a +d1Ƭ[:}IomSQF.\&s///5kf.^9r7sΙHVj~gcڴi\LPP5kcƏoj׮m$+WY,^᱕*U2;vw\wcN>mMB 1+V}}=?q6IyIOĂd(ȇOc̾}̠ALMRLٲeͽk֯_oW\r.%r7)W3u1/IOOJ 1Ɯ={<쳦nݺ&00pO'Oڕ?r䈹L2eV]l9?n0͛77'N4'Np… waMHH{l13=rLԗ/_ԭ[ה*UTV͌1?~bw~[|g[n1K6&$$4iL4)~qĕ{(;OsCʕ+___s뭷+W4#IC2w^XMqqqw%ӡC۷@Cb@ tҁ3g$QFES$CxI&^ziÆ pႲt=zW%IC-0|;LӧOWttvܩh^^^zWԦMfHÆ {n9R U޽{+!!AO?tq `PV^% P" P" P"ښ={,P+V(?X'CԣGnR-ZE]- k( lf(k(j! ܑd(k(.|wxcLq,5C$C$C$C$C$C$C$C$C$CiIENDB`UnitTest-1.2.5/docs/000077500000000000000000000000001455371323600142375ustar00rootroot00000000000000UnitTest-1.2.5/docs/tutorial.txt000066400000000000000000000005661455371323600166520ustar00rootroot00000000000000eZ Components - UnitTest ~~~~~~~~~~~~~~~~~~~~~~~~ No release ========== UnitTest is an internal component which extends PhpUnit to facilitate test running and reports of the components themselves. For this reason, there is no tutorial for this component. If you really want to use it for some reason it's sane to expect some community support on IRC or the mailing list. UnitTest-1.2.5/phpcs.xml.dist000066400000000000000000000006141455371323600161110ustar00rootroot00000000000000 src UnitTest-1.2.5/src/000077500000000000000000000000001455371323600140765ustar00rootroot00000000000000UnitTest-1.2.5/src/constraint/000077500000000000000000000000001455371323600162625ustar00rootroot00000000000000UnitTest-1.2.5/src/constraint/image.php000066400000000000000000000125171455371323600200630ustar00rootroot00000000000000filename = $filename; } else { throw new ezcBaseFileNotFoundException( $filename ); } $this->delta = (int) $delta; } /** * Evaluates the constraint for parameter $other. Returns TRUE if the * constraint is met, FALSE otherwise. * * @param mixed $other Filename of the image to compare. * @return bool * @abstract */ public function evaluate( $other, $description = '', $returnResult = false ) : ?bool { if ( !is_string( $other ) || !is_file( $other ) || !is_readable( $other ) ) { throw new ezcBaseFileNotFoundException( $other ); } $descriptors = array( array( 'pipe', 'r' ), array( 'pipe', 'w' ), array( 'pipe', 'w' ), ); $command = sprintf( 'compare -metric MAE %s %s null:', escapeshellarg( $this->filename ), escapeshellarg( $other ) ); $imageProcess = proc_open( $command, $descriptors, $pipes ); // Close STDIN pipe fclose( $pipes[0] ); $errorString = ''; // Read STDERR do { $errorString .= rtrim( fgets( $pipes[2], 1024 ) , "\n" ); } while ( !feof( $pipes[2] ) ); $resultString = ''; // Read STDOUT do { $resultString .= rtrim( fgets( $pipes[1], 1024 ) , "\n" ); } while ( !feof( $pipes[1] ) ); // Wait for process to terminate and store return value $return = proc_close( $imageProcess ); // Some versions output to STDERR if ( empty( $resultString ) && !empty( $errorString ) ) { $resultString = $errorString; } // Different versuions of ImageMagick seem to output "dB" or not if ( preg_match( '/([\d.,e]+)(\s+dB)?/', $resultString, $match ) ) { $this->difference = (int) $match[1]; return ( $this->difference <= $this->delta ); } return false; } /** * Creates the appropriate exception for the constraint which can be caught * by the unit test system. This can be called if a call to evaluate() fails. * * @param mixed $other The value passed to evaluate() which failed the * constraint check. * @param string $description A string with extra description of what was * going on while the evaluation failed. * @param boolean $not Flag to indicate negation. * @throws PHPUnit\Framework\ExpectationFailedException */ public function fail( $other, $description, SebastianBergmann\Comparator\ComparisonFailure $comparisonFailure = NULL ) : void { $failureDescription = sprintf( 'Failed asserting that image "%s" is similar to image "%s".', $other, $this->filename ); if (!empty( $description )) { $failureDescription = $description . "\n" . $failureDescription; } throw new PHPUnit\Framework\ExpectationFailedException( $failureDescription, $comparisonFailure ); } /** * Provide test text * * @return string Test description */ public function toString() : string { return sprintf( 'is similar to "%s"', $this->filename ); } } ?> UnitTest-1.2.5/src/regression_suite.php000066400000000000000000000072521455371323600202060ustar00rootroot00000000000000setName( $theClass ); return; } if ( !$argumentsValid ) { throw new InvalidArgumentException(); } if ( $name != '' ) { $this->setName( $name ); } else { $this->setName( $theClass->getName() ); } $constructor = $theClass->getConstructor(); if ( $constructor !== null && !$constructor->isPublic() ) { $this->addTest( new PHPUnit\Framework\Warning( sprintf( 'Class "%s" has no public constructor.', $theClass->getName() ) ) ); return; } $names = array(); /* if ( $theClass->getName() !== 'ezcTestRegressionTest' && !$theClass->isSubclassOf( 'ezcTestRegressionTest' ) ) { $this->addTest( new PHPUnit\Framework\Warning( sprintf( 'Class "%s" is not a subclass of ezcTestRegressionTest.', $theClass->getName() ) ) ); } */ $mainTest = $theClass->newInstance(); $files = $mainTest->getFiles(); foreach ( $files as $fileEntry ) { $this->addRegressionTestFile( $fileEntry['file'], $mainTest ); } $tests = $this->tests(); if ( empty( $tests ) ) { $this->addTest( new PHPUnit\Framework\Warning( sprintf( 'No regression tests found in class "%s".', $theClass->getName() ) ) ); } } public function addRegressionTestFile( $file, $mainTest ) { $test = clone $mainTest; $test->setCurrentFile( $file ); $this->addTest( $test ); } } ?> UnitTest-1.2.5/src/regression_test.php000066400000000000000000000106611455371323600200320ustar00rootroot00000000000000files, array( $this, 'sortTestsByMtime' ) ); } else { // Sort it, then the file a.in will be processed first. Handy for development. usort( $this->files, array( $this, 'sortTestsByName' ) ); } parent::__construct(); } public function getName( bool $withDataSet = TRUE ) : string { return $this->currentFile; } public function getFiles() { return $this->files; } public function setCurrentFile( $file ) { $this->currentFile = $file; } protected function readDirRecursively( $dir, &$total, $onlyWithExtension = false ) { $extensionLength = strlen( $onlyWithExtension ); $path = opendir( $dir ); if ( $path === false ) { return; } while ( false !== ( $file = readdir( $path ) ) ) { if ( $file !== "." && $file !== ".." ) { $new = $dir . DIRECTORY_SEPARATOR . $file; if ( is_file( $new ) ) { if ( !$onlyWithExtension || substr( $file, -$extensionLength - 1 ) === ".{$onlyWithExtension}" ) { $total[] = array( 'file' => $new, 'mtime' => filemtime( $new ) ); } } elseif ( is_dir( $new ) ) { $this->readDirRecursively( $new, $total, $onlyWithExtension ); } } } } protected function sortTestsByMtime( $a, $b ) { if ( $a['mtime'] != $b['mtime'] ) { return $a['mtime'] < $b['mtime'] ? 1 : -1; } return strnatcmp( $a['file'], $b['file'] ); } protected function sortTestsByName( $a, $b ) { return strnatcmp( $a['file'], $b['file'] ); } protected function outFileName( $file, $inExtension, $outExtension = '.out' ) { $baseFile = substr( $file, 0, strlen( $file ) - strlen( $inExtension ) ); return $baseFile . $outExtension; } public function runTest() { if ( $this->currentFile === false ) { throw new PHPUnit\Framework\ExpectationFailedException( "No currentFile set for test " . __CLASS__ ); } $exception = null; $this->retryTest = true; while ( $this->retryTest ) { try { $this->retryTest = false; $this->testRunRegression( $this->currentFile ); } catch ( Exception $e ) { $exception = $e; } } if ( $exception !== null ) { throw $exception; } } public static function suite() { return new PHPUnit\Framework\TestSuite( __CLASS__ ); } } ?> UnitTest-1.2.5/src/test/000077500000000000000000000000001455371323600150555ustar00rootroot00000000000000UnitTest-1.2.5/src/test/case.php000066400000000000000000000145741455371323600165140ustar00rootroot00000000000000tempDir = $tempname; return $tempname; } } return false; } /** * Get the name of the temporary directory. */ public function getTempDir() { return $this->tempDir; } /** * Remove the temp directory. */ public function removeTempDir() { if ( $this->tempDir && file_exists( $this->tempDir ) ) { $this->removeRecursively( $this->tempDir ); } } public function cleanTempDir() { if ( is_dir( $this->tempDir ) ) { if ( $dh = opendir( $this->tempDir ) ) { while ( ( $file = readdir( $dh ) ) !== false ) { if ( $file[0] != "." ) { $this->removeRecursively( $this->tempDir . DIRECTORY_SEPARATOR . $file ); } } } } } private function removeRecursively( $entry ) { if ( is_file( $entry ) || is_link( $entry ) ) { // Some extra security that you're not erasing your harddisk :-). if ( strncmp( $this->tempDir, $entry, strlen( $this->tempDir ) ) == 0 ) { return unlink( $entry ); } } if ( is_dir( $entry ) ) { if ( $dh = opendir( $entry ) ) { while ( ( $file = readdir( $dh ) ) !== false ) { if ( $file != "." && $file != '..' ) { $this->removeRecursively( $entry . DIRECTORY_SEPARATOR . $file ); } } closedir( $dh ); rmdir( $entry ); } } } /** * Checks if $expectedValues are properly set on $propertyName in $object. */ public function assertSetProperty( $object, $propertyName, $expectedValues ) { if ( is_array( $expectedValues ) ) { foreach ( $expectedValues as $value ) { $object->$propertyName = $value; $this->assertEquals( $value, $object->$propertyName ); } } else { $this->fail( "Invalid test: expectedValues is not an array." ); } } /** * Checks if $setValues fail when set on $propertyName in $object. * Setting the property must result in an exception. */ public function assertSetPropertyFails( $object, $propertyName, $setValues ) { foreach ( $setValues as $value ) { try { $object->$propertyName = $value; } catch ( Exception $e ) { continue; } $this->fail( "Setting property $propertyName to $value did not fail." ); } } /** * Compatibility layer for PHPUnit methods that have changed in naming or * behavior slightly across versions */ public function __call( $method, $arguments ) { if ( $method === 'getMock' ) { return $this->getMockBuilder( $arguments[0] )->setMethods( $arguments[1] ?? [] )->getMock(); } throw new BadMethodCallException( $method . ' does not exist.' ); } /** * Implementation of readAttribute that PHPUnit dropped */ public static function readAttribute( $object, $attribute ) { $reflectionObject = new ReflectionClass( $object ); $reflectionProperty = $reflectionObject->getProperty( $attribute ); if (version_compare( PHP_VERSION, '8.1', '<' ) ) { $reflectionProperty->setAccessible( true ); } return $reflectionProperty->getValue( $object ); } /** * Implementation of assertAttributeSame that PHPUnit dropped */ public static function assertAttributeSame( $expectedValue, $property, $object ) { $actualValue = self::readAttribute( $object, $property ); return self::assertSame( $actualValue, $expectedValue ); } /** * Implementation of assertAttributeEquals that PHPUnit dropped */ public static function assertAttributeEquals( $expectedValue, $property, $object ) { $actualValue = self::readAttribute( $object, $property ); return self::assertEquals( $actualValue, $expectedValue ); } } ?> UnitTest-1.2.5/src/test/image_case.php000066400000000000000000000054151455371323600176500ustar00rootroot00000000000000evaluate( $image ) ) { self::failConstraint( $constraint, $image, $message ); } } /** * Asserts that the compared images are similar * * Uses the compare binary of the imagemagick package to compare to images * and will fail if the difference between two images is higher then the * defined value. * * See http://www.imagemagick.org/script/compare.php for details. The * difference is logarithmical scaled. * * @param string $image New image * @param string $expectedImage Image to compare with * @param string $message Message to append to the fail message * @param int $maxDifference Maximum difference between images * @access public * @return void */ public function assertImageSimilar( $expectedImage, $image, $message = '', $maxDifference = 0 ) { $constraint = new ezcTestConstraintSimilarImage( $expectedImage, $maxDifference ); self::assertThat( $image, $constraint, $message ); } } ?> UnitTest-1.2.5/src/test_autoload.php000066400000000000000000000025601455371323600174610ustar00rootroot00000000000000 'UnitTest/test/case.php', 'ezcTestConstraintSimilarImage' => 'UnitTest/constraint/image.php', 'ezcTestImageCase' => 'UnitTest/test/image_case.php', 'ezcTestRegressionSuite' => 'UnitTest/regression_suite.php', 'ezcTestRegressionTest' => 'UnitTest/regression_test.php', ); ?>