pax_global_header00006660000000000000000000000064141256541600014516gustar00rootroot0000000000000052 comment=bee948c1b68a26b97e6e2ba03bb7064ae35342c2 python-qrcode-7.3.1/000077500000000000000000000000001412565416000143225ustar00rootroot00000000000000python-qrcode-7.3.1/.gitignore000066400000000000000000000001221412565416000163050ustar00rootroot00000000000000*.pyc .tox dist/ .coverage htmlcov/ build/ qrcode.egg-info/ .pytest_cache/ .idea/ python-qrcode-7.3.1/CHANGES.rst000066400000000000000000000145711412565416000161340ustar00rootroot00000000000000========== Change log ========== 7.3.1 (1 October 2021) ====================== - Improvements for embeded image. 7.3 (19 August 2021) ==================== - Skip color mask if QR is black and white 7.2 (19 July 2021) ================== - Add Styled PIL image factory, allowing different color masks and shapes in QR codes - Small performance inprovement - Add check for border size parameter 7.1 (1 July 2021) ================= - Add --ascii parameter to command line interface allowing to output ascii when stdout is piped - Add --output parameter to command line interface to specify output file - Accept RGB tuples in fill_color and back_color - Add to_string method to SVG images - Replace inline styles with SVG attributes to avoid CSP issues - Add Python3.10 to supported versions 7.0 (29 June 2021) ================== - Drop Python < 3.6 support. 6.1 (14 January 2019) ===================== - Fix short chunks of data not being optimized to the correct mode. - Tests fixed for Python 3 6.0 (23 March 2018) =================== - Fix optimize length being ignored in ``QRCode.add_data``. - Better calculation of the best mask pattern and related optimizations. Big thanks to cryptogun! 5.3 (18 May 2016) ================= * Fix incomplete block table for QR version 15. Thanks Rodrigo Queiro for the report and Jacob Welsh for the investigation and fix. * Avoid unnecessary dependency for non MS platforms, thanks to Noah Vesely. * Make ``BaseImage.get_image()`` actually work. 5.2 (25 Jan 2016) ================= * Add ``--error-correction`` option to qr script. * Fix script piping to stdout in Python 3 and reading non-UTF-8 characters in Python 3. * Fix script piping in Windows. * Add some useful behind-the-curtain methods for tinkerers. * Fix terminal output when using Python 2.6 * Fix terminal output to display correctly on MS command line. 5.2.1 ----- * Small fix to terminal output in Python 3 (and fix tests) 5.2.2 ----- * Revert some terminal changes from 5.2 that broke Python 3's real life tty code generation and introduce a better way from Jacob Welsh. 5.1 (22 Oct 2014) ================= * Make ``qr`` script work in Windows. Thanks Ionel Cristian Mărieș * Fixed print_ascii function in Python 3. * Out-of-bounds code version numbers are handled more consistently with a ValueError. * Much better test coverage (now only officially supporting Python 2.6+) 5.0 (17 Jun 2014) ================= * Speed optimizations. * Change the output when using the ``qr`` script to use ASCII rather than just colors, better using the terminal real estate. * Fix a bug in passing bytecode data directly when in Python 3. * Substation speed optimizations to best-fit algorithm (thanks Jacob Welsh!). * Introduce a ``print_ascii`` method and use it as the default for the ``qr`` script rather than ``print_tty``. 5.0.1 ----- * Update version numbers correctly. 4.0 (4 Sep 2013) ================ * Made qrcode work on Python 2.4 - Thanks tcely. Note: officially, qrcode only supports 2.5+. * Support pure-python PNG generation (via pymaging) for Python 2.6+ -- thanks Adam Wisniewski! * SVG image generation now supports alternate sizing (the default box size of 10 == 1mm per rectangle). * SVG path image generation allows cleaner SVG output by combining all QR rects into a single path. Thank you, Viktor Stískala. * Added some extra simple SVG factories that fill the background white. 4.0.1 ----- * Fix the pymaging backend not able to save the image to a buffer. Thanks ilj! 4.0.2 ----- * Fix incorrect regex causing a comma to be considered part of the alphanumeric set. * Switch to using setuptools for setup.py. 4.0.3 ----- * Fix bad QR code generation due to the regex comma fix in version 4.0.2. 4.0.4 ----- * Bad version number for previous hotfix release. 3.1 (12 Aug 2013) ================= * Important fixes for incorrect matches of the alpha-numeric encoding mode. Previously, the pattern would match if a single line was alpha-numeric only (even if others wern't). Also, the two characters ``{`` and ``}`` had snuck in as valid characters. Thanks to Eran Tromer for the report and fix. * Optimized chunking -- if the parts of the data stream can be encoded more efficiently, the data will be split into chunks of the most efficient modes. 3.1.1 ----- * Update change log to contain version 3.1 changes. :P * Give the ``qr`` script an ``--optimize`` argument to control the chunk optimization setting. 3.0 (25 Jun 2013) ================= * Python 3 support. * Add QRCode.get_matrix, an easy way to get the matrix array of a QR code including the border. Thanks Hugh Rawlinson. * Add in a workaround so that Python 2.6 users can use SVG generation (they must install ``lxml``). * Some initial tests! And tox support (``pip install tox``) for testing across Python platforms. 2.7 (5 Mar 2013) ================ * Fix incorrect termination padding. 2.6 (2 Apr 2013) ================ * Fix the first four columns incorrectly shifted by one. Thanks to Josep Gómez-Suay for the report and fix. * Fix strings within 4 bits of the QR version limit being incorrectly terminated. Thanks to zhjie231 for the report. 2.5 (12 Mar 2013) ================= * The PilImage wrapper is more transparent - you can use any methods or attributes available to the underlying PIL Image instance. * Fixed the first column of the QR Code coming up empty! Thanks to BecoKo. 2.5.1 ----- * Fix installation error on Windows. 2.4 (23 Apr 2012) ================= * Use a pluggable backend system for generating images, thanks to Branko Čibej! Comes with PIL and SVG backends built in. 2.4.1 ----- * Fix a packaging issue 2.4.2 ----- * Added a ``show`` method to the PIL image wrapper so the ``run_example`` function actually works. 2.3 (29 Jan 2012) ================= * When adding data, auto-select the more efficient encoding methods for numbers and alphanumeric data (KANJI still not supported). 2.3.1 ----- * Encode unicode to utf-8 bytestrings when adding data to a QRCode. 2.2 (18 Jan 2012) ================= * Fixed tty output to work on both white and black backgrounds. * Added `border` parameter to allow customizing of the number of boxes used to create the border of the QR code 2.1 (17 Jan 2012) ================= * Added a ``qr`` script which can be used to output a qr code to the tty using background colors, or to a file via a pipe. python-qrcode-7.3.1/LICENSE000066400000000000000000000041371412565416000153340ustar00rootroot00000000000000Copyright (c) 2011, Lincoln Loop All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the package name nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- Original text and license from the pyqrnative package where this was forked from (http://code.google.com/p/pyqrnative): #Ported from the Javascript library by Sam Curren # #QRCode for Javascript #http://d-project.googlecode.com/svn/trunk/misc/qrcode/js/qrcode.js # #Copyright (c) 2009 Kazuhiko Arase # #URL: http://www.d-project.com/ # #Licensed under the MIT license: # http://www.opensource.org/licenses/mit-license.php # # The word "QR Code" is registered trademark of # DENSO WAVE INCORPORATED # http://www.denso-wave.com/qrcode/faqpatent-e.html python-qrcode-7.3.1/MANIFEST.in000066400000000000000000000001461412565416000160610ustar00rootroot00000000000000include *.rst include LICENSE include signing-key.asc include tox.ini include doc/qr.1 ignore .pypirc python-qrcode-7.3.1/PACKAGING.rst000066400000000000000000000003201412565416000163330ustar00rootroot00000000000000Packaging quick reminder ======================== Make sure maintainer dependencies are installed:: pip install -e .[maintainer,dev] Run release commad and follow prompt instuctions:: fullrelease python-qrcode-7.3.1/README.rst000066400000000000000000000145711412565416000160210ustar00rootroot00000000000000============================= Pure python QR Code generator ============================= Generate QR codes. For a standard install (which will include pillow_ for generating images), run:: pip install qrcode[pil] .. _pillow: https://pypi.python.org/pypi/Pillow What is a QR Code? ================== A Quick Response code is a two-dimensional pictographic code used for its fast readability and comparatively large storage capacity. The code consists of black modules arranged in a square pattern on a white background. The information encoded can be made up of any kind of data (e.g., binary, alphanumeric, or Kanji symbols) Usage ===== From the command line, use the installed ``qr`` script:: qr "Some text" > test.png Or in Python, use the ``make`` shortcut function: .. code:: python import qrcode img = qrcode.make('Some data here') type(img) # qrcode.image.pil.PilImage img.save("some_file.png") Advanced Usage -------------- For more control, use the ``QRCode`` class. For example: .. code:: python import qrcode qr = qrcode.QRCode( version=1, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=10, border=4, ) qr.add_data('Some data') qr.make(fit=True) img = qr.make_image(fill_color="black", back_color="white") The ``version`` parameter is an integer from 1 to 40 that controls the size of the QR Code (the smallest, version 1, is a 21x21 matrix). Set to ``None`` and use the ``fit`` parameter when making the code to determine this automatically. ``fill_color`` and ``back_color`` can change the background and the painting color of the QR, when using the default image factory. Both parameters accept RGB color tuples. .. code:: python img = qr.make_image(back_color=(255, 195, 235), fill_color=(55, 95, 35)) The ``error_correction`` parameter controls the error correction used for the QR Code. The following four constants are made available on the ``qrcode`` package: ``ERROR_CORRECT_L`` About 7% or less errors can be corrected. ``ERROR_CORRECT_M`` (default) About 15% or less errors can be corrected. ``ERROR_CORRECT_Q`` About 25% or less errors can be corrected. ``ERROR_CORRECT_H``. About 30% or less errors can be corrected. The ``box_size`` parameter controls how many pixels each "box" of the QR code is. The ``border`` parameter controls how many boxes thick the border should be (the default is 4, which is the minimum according to the specs). Other image factories ===================== You can encode as SVG, or use a new pure Python image processor to encode to PNG images. The Python examples below use the ``make`` shortcut. The same ``image_factory`` keyword argument is a valid option for the ``QRCode`` class for more advanced usage. SVG --- You can create the entire SVG or an SVG fragment. When building an entire SVG image, you can use the factory that combines as a path (recommended, and default for the script) or a factory that creates a simple set of rectangles. From your command line:: qr --factory=svg-path "Some text" > test.svg qr --factory=svg "Some text" > test.svg qr --factory=svg-fragment "Some text" > test.svg Or in Python: .. code:: python import qrcode import qrcode.image.svg if method == 'basic': # Simple factory, just a set of rects. factory = qrcode.image.svg.SvgImage elif method == 'fragment': # Fragment factory (also just a set of rects) factory = qrcode.image.svg.SvgFragmentImage else: # Combined path factory, fixes white space that may occur when zooming factory = qrcode.image.svg.SvgPathImage img = qrcode.make('Some data here', image_factory=factory) Two other related factories are available that work the same, but also fill the background of the SVG with white:: qrcode.image.svg.SvgFillImage qrcode.image.svg.SvgPathFillImage Pure Python PNG --------------- Install the following two packages:: pip install -e git+git://github.com/ojii/pymaging.git#egg=pymaging pip install -e git+git://github.com/ojii/pymaging-png.git#egg=pymaging-png From your command line:: qr --factory=pymaging "Some text" > test.png Or in Python: .. code:: python import qrcode from qrcode.image.pure import PymagingImage img = qrcode.make('Some data here', image_factory=PymagingImage) Styled Image ------------ To apply styles to the QRCode, use the StyledPilImage image factory. This takes an optional module drawer to control the shape of the QR Code, an optional color mask to change the colors of the QR Code, and an optional image to embed in the center. These QR Codes are not guaranteed to work with all readers, so do some experimentation and set the error correction to high (especially if embedding an image). Examples to draw the QR code with rounded corners, radial gradiant and embedded image: .. code:: python import qrcode from qrcode.image.styledpil import StyledPilImage from qrcode.image.styles.moduledrawers import RoundedModuleDrawer from qrcode.image.styles.colormasks import RadialGradiantColorMask qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_L) qr.add_data('Some data') img_1 = qr.make_image(image_factory=StyledPilImage, module_drawer=RoundedModuleDrawer()) img_2 = qr.make_image(image_factory=StyledPilImage, color_mask=RadialGradiantColorMask()) img_3 = qr.make_image(image_factory=StyledPilImage, embeded_image_path="/path/to/image.png") Other module_drawers: .. image:: doc/module_drawers.png Other color masks: .. image:: doc/color_masks.png Examples ======== Get the text content from `print_ascii`: .. code:: python import io import qrcode qr = qrcode.QRCode() qr.add_data("Some text") f = io.StringIO() qr.print_ascii(out=f) f.seek(0) print(f.read()) The `add_data` method will append data to the current QR object. To add new data by replacing previous content in the same object, first use clear method: .. code:: python import qrcode qr = qrcode.QRCode() qr.add_data('Some data') img = qr.make_image() qr.clear() qr.add_data('New data') other_img = qr.make_image() Pipe ascii output to text file in command line:: qr --ascii "Some data" > "test.txt" cat test.txt Alternative to piping output to file to avoid PoweShell issues:: # qr "Some data" > test.png qr --output=test.png "Some data" python-qrcode-7.3.1/TESTING.rst000066400000000000000000000011441412565416000161710ustar00rootroot00000000000000Testing ======= First, install tox into your virtualenv:: pip install --upgrade tox To run all tests, you'll need to install multiple Python interpreters. On a modern Ubuntu distribution you can use ``add-apt-repository ppa:deadsnakes/ppa``. Depending on if you can install the wheels directly for your OS, you may need the libraries to build PIL, too. Here's the Ubuntu commands:: sudo apt-get install build-essential python-dev python3-dev sudo apt-get install libjpeg8-dev zlib1g-dev Finally, just run ``tox``! If you want, you can test against a specific version like this: ``tox -e py36`` python-qrcode-7.3.1/doc/000077500000000000000000000000001412565416000150675ustar00rootroot00000000000000python-qrcode-7.3.1/doc/color_masks.png000066400000000000000000013723041412565416000201230ustar00rootroot00000000000000PNG  IHDREiCCPkCGColorSpaceGenericRGB8U]hU>sg#$Sl4t? % V46nI6"dΘ83OEP|1Ŀ (>/ % (>P苦;3ie|{g蹪X-2s=+WQ+]L6O w[C{_F qb Uvz?Zb1@/zcs>~if,ӈUSjF 1_Mjbuݠpamhmçϙ>a\+5%QKFkm}ۖ?ޚD\!~6,-7SثŜvķ5Z;[rmS5{yDyH}r9|-ăFAJjI.[/]mK 7KRDrYQO-Q||6 (0 MXd(@h2_f<:”_δ*d>e\c?~,7?& ك^2Iq2"y@g|U\ @IDATx}\Wyҍ6tJ‱[`^:NHqLJ@2k2Ib42y!WOךY+ZMMI!Kx-;da vUs{tSuh9g        $ cJrR:D@@@@@@@8//p        4"0FtL        n 0{@@@@@@@@F|aS@@@@@@@@~1{@@@@@@@@~1V:E@@@@@@@S@@@@@@@@FF:S@@@@@@@@n 1@@@@@@@@~@@@@@@@@S>]{f       4*@ƔFy@@@@@@@Sg        M 쟾@@@@@@@@:*0Sg        M ~7        @GHхg        @bJ       tT_L3m@@@@@@@@i~1iaG@@@@@@@:*0ԙ6        @M@         cJ7םY#        @@@@@@@@:)0g         [);        YA8        @sdLiΖ@@@@@@@@N FQ<        @3dLiƕ^@@@@@@@@ ~@@@@@@@@H/@Ɣ        -/p        4"0FtL        n 0{@@@@@@@@F|aS@@@@@@@@~1{@@@@@@@@~1V:E@@@@@@@S@@@@@@@@FF:S@@@@@@@@n 1@@@@@@@@~@@@@@@@@S>]{f       4*@ƔFy@@@@@@@Sg        M 쟾@@@@@@@@:*0Sg        M ~7        @GHхg        @bJ       tT_L3m@@@@@@@@i~1iaG@@@@@@@:*۵kWG_~~'h깞Oτ w|QWnnnRٳǽIC߽{lY֗ϷR H? x v4.ݧ^|/:S<{~ګzSϫoI=őŷ^˟z꩟^6uL}WSm|5kμg]ǿ K?ו\87n+<+~-=GK]g^ʵJWu{l{}hxUVS>ħ]^yo٨yֿmWpd\[S7c~z^8*Aɼ[^ԏW;)~]- K@ %Uձ|+伟 Ou?Oʵm?F-:qnWw <ůd;/Q-nD        !׿>S_⎅ wxst;vl8꯯OnޕoK-ڮm}|kh7v,ZeHѬm 8b2$v+e qDu;R q/;g(9Y_=?.wϟݗdEǵ/x;#偵\|c!ޝyc/NWa}㺋WlFPX;l~B&P7~R <%4Qaj3z "_sS_A%]gc+Nŭm=W=y(ӈΫAŞWۯ꩝yyů:q_5/ <\ Ey^3K>߸闹NL|㶛wi:nRE[oz hZ-(oFT8h@@@@@@@@`iV~7eiV PSԩS)E;vC{^0\]]Q'ohK-ڮ}}ۥI4 @@ifYI#d(| GOyev\Ξ+YẄ́]geJ㎛!E+N(KY}_O=';fG?kGNxkwsv-'O Ojw^Wr>_Vu)nš u}O]/>Cl=eȞ/?لgs/ 6>9(ѐW'O\n&AW<:1t2wu=ݏ |ӫ7ׁG,.e׵sY;Nf:1['novkGv8̏m1꧘`zѭq^WeRxU;ۏEc[iяߨ.[Y~~[~os?џӶ7]Hg+Cu>}^ޏv8_r?˛ʋ^(2. UcK3Rf ]Z2.<se?]Yqow߲]\Dv݊b|Bfub?[_IT|/KN~Y}gpW6Ϋ?iǵnG:ʔ>2ճ^JM=;+xqyg.mG @[3,eוcL'&# V ;HC~B%@b3(g3q|P\oĭuQ\el|e31nUhy! S'~a'r۟GEKxl9d2gBYV2Wv>6o+m52 ʅ˽~EQIeͲ| 5b$m9̥(L3sF@4;S;&Rz~j<=ϕC'.I}"z3(RrU)#Jڇ2LX8TϏR<FRmeu^ae ?L7q}B*.JZ%ڪ   tP /dV;[ʮkGv*N;3ڞNx>V;W{{^;mƏb>~>;s}8qƭae)>9~n_Y}_}OJuyη6Nbܖ7OyaLznPff]PÖZ~?{̬{|hXAeP 9P=WAz0L1+:?C|zOY @B{J}^+s.80!9j^S%sA\vvmopR?ַ]1h)c4!~@@@@@@@@&A ٳŰphDCOVM=EK˺ "w*ǀV\[ue;yL'Ns;;gt]ޞkHW}k3Y-eюn;ʔqb=^]a*gwq Ml\E| ǿJe ЏZ^~ɷ>+[q'?mkeTP+.Vi.ʌa}&b}Vc޾nlF U?t7}pe=<TOzk|187ʜl&e:L# YHca@z\ʜbU{o9im˜yP"zn,B=˾nwR;O)V{7a{3hf,^82 O=M?vo{bm=SV-MN`}sVGZhsτ        J`U U`uuՍW;v̕vN^[Kũzcc}mEWア]ūv'v/J4׼[qG\檧~4L9/Od=QgR7매}E;[㴭ܻ.;2W+x?tU{^j Ϭ{,;Vd6WS^j.êfd2 v&q+.S쿬߲Uܵ,veC>T^|>z뛉+sJ8 e]׎9%\mv=5^Vg,;ǿBS42(K/Tm#eN3f!A FL|q9ԟvk*>۸l}e~ bOU}ūyZwo[Zm߸ǻ><\W^cW3]zk՞ylgn83}]Ь3Arե~'_\ᅮT\m*efXd>6SF 0sL2K\7̫\E{]n=}aD^^EjRTLfeWՏPͫ,Rs iĥ/e ,t+CJ:y}^HGq/sռ)Xdyľ~j7c>;s':7+v;7<Ǖkŕ'g|9|}.ϭowgζ[ճY (        .ۛ쾂evҭMXzH)eROG 1l6#~>ݬ3rrkWg}nکqGunw~շMAku8d\xS(R;57+DW^r{yӍʵ>CG)'}up;>+!#D[!dў}+RƉ~)^<_+bЕ>H+B=7 ?\O{ѯZ['om\W꽹خ =? kӏY *W^[{ƱtF[uC&!Ͻe`\askmqC~rZ_=g۽su9]Nijѐx"D`^;F-_r?,2=ݏKBq`.=)F;Μ{_wT!Q&//'ePf(eNuU\] fЎ̰3[o0po_r7}y]Wc'^zv\O`j fD SY        +% TԩS?)EY ;`o'Ajwu׹~VW٩Yg&]:cѶZ`@n؝ځi, Nx>:lK;ַ~R:i7ջוډ ;B;qwru/M38uS]+عa޹giaVbf u?ZeTTOS'O|uy'#Sy|*~^7?ڟ<\WdqGF1z;akӎq`^L$?:+Ci7TF&g&T@#g.8;K;uFry@/^M?x_cz@ HfQ8F@@@@@@@/2w>#= NGɝf8{3}5ePSrQ SF`1uaX\R%Xȕ)f^릝#d{qX~Aƭ T ꇌ)n[~wJ#/uOy%fd2JEF~~qQ\6^HmcsT{Tt"[]I1E[T4x x (qCUSZ1@̓om2w^ cީ51ϿIT OT֤        LP D7CL)S[cs#n qRYʊγ^rLrɿ>Mye +UUͨb3L/pG2Vd_ *~~>E/$D[Hb z7}N/0 븽cuu덙9E#v:A$(|ۗr]z\ey쎨D`fI_:KzB (        $ cJRN:C@@Y ؝ځI2QC@;ʮkU])y ;<{Y=Ώ'G6s>kwV57Ê2qT=722Cf̈́c8ʜOJX-222u}z*CѤSlFs@{w5&<~5قhRw۾morqZ 0?y        Vzv   }@;[2])]&eA<-dd Id.Ɍb}T9Nާ^dبj?nNʈRveRQ|USoU^σ0#] )1w ~d3,F .ipt\ 0C.Kڵ1$ZE`<2@@@@@@@@& cd^F@@ hG~Ylb#SYC a:Rv?T[#jz ůc MbUf*e3T3aȤTyBxt#8z)w P e ~0S41% Z@JkYcIxe?ךZ         nJ @@@vp1^)B! ۹&eW*c^Ȉ]+}:z1I)G~VC2te2ac^ΰ/vڌ*a;V{C3Aϟ |qR^ٌ'.f%qz~%G?N:3SAg3 tF@GpfwGM۾m/r3Rf         @V9ݛ<3F@@P~Ie;ôS5~h}v.vUOV׼eQde6dkOc +P2HleUvN)sXa3LA~<|ٌ(eTFFP?9Eo}WdNQ3 uH.PUqCڵ1$ZE`,jL%@@@@@@@@VdM)Y][۲{Wrlmm vrƆ+=MW={rښ+m?߶ry.Y:.zh:q₩/е9f'2(cշv& gĩ6^HG l />/{U!>W=렬ޣkxkSuu\]_5[!îq><W]z;>t]?8gumJygNJK/w׸/vN&qףo]W~r<;wr_JOQMCNe +6zWUFe(oU&ror:LP?ff(T8zpg~~Zɣ|ڋߞf{ c}57G[q/CՅ+>^_i 'S1^󽢡ս8U@'Աߣ7nsW/t="SÓ'wqu8le8O9(Áv1Iw| UU%ELgITo;(ga32N8ЙPL*8f%^&>Sf}LZ/Noĥ)) 3hX濝;u!/9}Rwwq=yۿ|g2s=gu_*sJWqeĜuği>g}Wy;y}uV`~֡5nN`*W׳㶠^A        d;/x"FG wCwrOf멟e˘2QYU:>K 2 hgs2ddQr::+b^!=__:V\Sӗx-#H-o]ץ+ơf,-~W#y 0T!ϖ(\ i[~߻ 3q*8nX=2mEݗ6cJu;κ>mYLnU]52Y@F2txkی:o3OtԫȠꖚ̮@B_72^YdR={Z1Bg\9eNIL?H_'USy }8nk/?qK8:1M}NI1Eq|yZyM!8E_MY??+:A@@@@@@@XX@S(˔}`~lE?|ֳ< cD;m 툳;֯{dz[ʵ3ڜW\HvvRz<3uhR b$I^EUgǾ}󧭏s2'aU:Gv}t]qϝեqs'w8l?;4gN.HUwɼ]Je: N7]IòfWCkh6Ʃ_4C>?{OS4UOâdN䬽?qc<Jq.@G1Г⋟Vw;(t@.h Fe=ڵDSOߤ}|v_,~]@@@@@@@@dLi سg,hƶٹgM?|[N;Y|u=K*IAeЎ|Vg|N;9nkCe uGeRv~Ȑ+|2??.^?W\:xCG~'{U~KY/W~8v~nu^eUzE'{dz2 Um$U> =q3dvj2ۯb.ߏOQ *:nxhz 6ax[ L&g^W/Rj" ԀC6.R/ՙSXAv_Ceګx*8 cR/zT| ƣFyu~ϲo3͎xUܶO,ٴ5 :vZbD @#.Lpkl<]q&D@@@@@@@@ y/}>.ݻוʔvVΫΫ*w^L:YǼ\7KGzAIŚv&kY몟 [)wvkJO)%&\'oh z20Q~z@IDATڊK߾'~xW6U?ɪ$|_]o~oP :ձ-}a/o֍oWT<6#qP?T)ߣ&'mڎ2I˪[?MCq)N4t?4_aA2(>-O_9%c6?  eN(JWbbH'UdQ |tE~_ܭ~+9\:╝W?TƗjy3|gş%Ÿp?MþVx3+@Ɣ][f       U`e38X]]u8cǎR;lک[8Uo'c>_O@`yvo2؝u@TW2>?aG u BbaGi^&*(CT/U;ݮ?umUlc/}wߞ\T{uurϮzY/8ulK{(\'/kWu~ޫ]}|ЕeGvՏ;Hǘ> +d(iUZ6~8e6F*m?Ys4T?u/{=O>?Pu>_Ş{myS9%G!eQՓ>u9v R7ug:l͎O,^-`kkkg @@@@@@@@f.2hf@)_,[__w=]s5]=ߕG+Ϝ;Ko鵮\g4ƾ?8wg=ʡģuuwC v}^竏}$?l}o}>몧\o]vK]~RGy ]@,.R]Ǧ~)7ʸWf2W̮o_ݩC~Еe3ROz*Cgo|3'Oq85{_@JԾS3wFC_[CkC?߶;~*nv+ҕYOOܕk7\J\Wg+E+ǝ5h,ʼ |~ɻ,e@QsYOtglK夽R3Ӣַ;ΣKv~{O ix4e+Pv֛Xj| -SCͺkk~KFaԏlavܪ2en?u|;⯦3ʜaC?L>Y3q):R=Ze(f9 ~΄旾Q&q.GW@ϋq/jsQևR]|mk{|R\+,uq"'R@@@@@@@@V lmm[=sC@@kr;lmk=V\-at/3yNz]CNDޞW{{XQ\We*SpU])L'zzW[a cvL"(>P ۮvM熭(&s[ r2j k\n2~D_B's$<7N~ʜq~Q p@u\-ڊVk~]oغ~moU A`/p/        4!@Ɣ&T@@f"n3u) w+*A>#x +e}/j7nX߲;062`akH1s`&) fЉĥٺ#sLS4ꕞWEa d77}&~f?1\ aU ¸_O 4_:D 4ߔ:9N=<15]'g_ڶz^n>]n=f        P*2):\@@@V ؝ʨwpfB{ԓ-`ڸqC\.dNpWu:qf_':f{_T?U5GRbP>>:ZwYƇz22LnE*6 o2c|}UoK9 -fNQ1?L$ʬajVu ujyeR{׼8o,sJx[SzU1g"]Kr-h6BV?e}^׎kLt>sWtꡁeS'ݬcpUƁX߲澝ʽi3Wuޮ\'Õ{ʼƥm+ @̠3ʜܼ8&LZ~Delu0Vt^ yyf u?ߛsT<7fya9dxm4e2)ߺfG%_[(n߼ǟ?vAL)e2G@@@@@@@%r~@V_4Fسgssӕݺ0a[oُ5IRtm=6 !Uʨae;G[뽰S9ێjCڞ׵Sω;M;9huw秭aW^?zjyB<_R?^M"pť{ȕ1E@O<ҡWWy9wZ 2.<[ aw@z\g5mWG)],>v&kW\ls];ʔCϷAxV1w0N~njâ'>tg_3ds w>_L攬^Wz+s(uqe~|=?FCo ЄM=>=Yr˟-nuoeحkZzTU߬[6Wzy.&o/Vk        L,# 0cÇJeJsL;ΫΫwԼKҵ|S/L*tʔb.71#Rc/)E4HR:VSN'p\z;}fy2 ͺXVId zÐI!>rWwAM}F$븙TOPB7%n_ -h_vg.M;fNifz/lਟsLMC~zvqS;aIեWH)`?Sd_w&n7v{. wS?^k{ZFMG޿M7`778,vA&L@@@@@@@@ =@C$^8pǎsvhJ{^ԏuԼPڥkѵ_W 6H~ON0`vv.gҼqGϋXG_k)Ŷq NV {s;?!W>.{]}/+WV+ e)L+?w [˧vCe0 PzʼQ #Ax*^}^sG-;kOAȈrPS4vR!9b+Zeĉ3׀a^p eQh>̮S_Za-˜á|u/hEw@{ԕwO&gKPY/5AѶoM>mU|niqƴA@@@@@@@@L`% PV @;\ 뮼k\y7777sٳ:tȕkkkT?v_ͻ'HJ{n_W֣kMz @@;{at;cqBZ P6~aW6WO[et^^Mtl>u9ah+}t383}_y0'ܧ^|+!꧳ǏOcծ53ʬOB?zESʦ#o6$rSM$/oI\@@@@@@@@Ș2hvzvv`zV_{+)WƫX/kQ-˔yhl>ٙ4MU|WCF%glo^fz" O9rkٵ)|I!$3߉>Q?dLwdǃ>!Ӄ=؞7f//GM0+S׳OWTS6^/zϕԙS>_yhvCe`|J2h^ <z{Fmm狎ڥ>oU\]˘yߺzk~e>Ӟ:L۾W7>ﺾdL7!       XL(K(լ2>ڸle=.el?e8 ;ePհU;m]O\j7{uV%euū)@KW}]yDy+7Wԏunix.S=ː ʘ_=kv{&7]묋UNReR|Gz.(Ӈ,!(>C oJHEɜ(@şy]OJ3ą 󫯌D%DE/ }+y_5UO8WuWq~QѼq)~Jsa,ǚ+o`K 0Z0 @@@@@@@@`ViXЉ@@.=6 qI؁z1mN'?;Öm;vLǸm槭־]wlʮ~t]_SGi:擟oYjT|YN^Wx=~e;?6q^Ye8D>?4ͤ2 ]W<0~Ff&|xNeNIqU,^Eg||={?<5szljݶNVfN ظ4NRq(`vXO Xќw܅k{|cYZI֣zodګwC:DG'         +8F@CgϞ=@@@[qq =yV\JqtxlO$Szu ]_W+'x^[u"qY5 W5KUFw3x> $7kΐZ, թ2o|CURCp߇zlTym3~Jbo/)HzWPMR~feк+vd.$'|q SLv_=/5>6~UwURq)fqBmE{g@%scVӛxΫ-yϟ/lҩ,ER`&Q~Ƨ4h@7zA@@@@@@@@ 1[,eJQGKJ@@YokgZَx=8֎f]Z+C*SvP~];}Y_W8?NSC)N1JW_T^?_5aWG~\:UN |:dlg}( eqJT/]K6_뮝SGauSPϷqgf'~ÿrs)3xtէW7+\~qe?4>4Ka_AŮޏ30;_AEe(Dl>ϻ>S_׏QC6SUeNټ}I(&5ֱ]6AhH[ả}=nFw3陯ǣs_}е՗~;^߸~>ig7hSڿFD       ,[dMYȵ#h@`"S]o33w++qu]ڮ;V-8EyRv U]7r8#hGy~)A |q;W!fr$zO|~9u#?Wj' Fت9j2/h>3؉r Wvj߯1cYeP3hR?7S'^}/qe?|Ѻ)2hũz/sS l@wƦ@2+z#M Lxlmƻm_S'>0ńvq7$kzL:Y&>}        B hBς@*93M]p?vqSrS8@ @ 'P3HSeN\gP`L$Z? |@ɈeJSkUVpe:c+dPfiZBj^v>S[T|O7L iF%42QGa`V&p3G:c< N|uNmnM8sSWYߥq>J1Elj/~g\ 9[?Rz@@@@@@@@X(`@̵Uܠv\q^G vIzl2Vva'|PemFzʬ_r䯭͠IEzwuA0ԯ޿)}*J|^<ճRy"y3ilt@ ẟBc]\ Ьnv{o{|h[}=Ξ{(38ڸRvM+G;/0oD         Y0@@@?l)V(/׵Sf(k h#E\0zaWXzrX{8i!c3x-n11ltj H -{m9%}//罛K-– 1 [mx`תomuzLt>?zZjշj]ujȀ̏d{7kfh=L ,0ن3Zx欿)m3,Xmc2MWSrC:D lp S2#3P9)" =MkQt/6_˛@~8'" " " " " " " " " " " " " " " "c|5]g{ffrR!ivn)" " '`3>RHcr1 "Id@A/3Gu~+;Ͱ`3*${՛|n=I2_Q/`[q7E{6g BYxIvZtM+}l,8~:#b ܟIay?ɜݼ%;/208ʹKt,}v&ge&J[SID@ 3La]_'^@ۧ4Ձts,iǝV}5bv}kz<=OD@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@Duʘ:;qWrL)D4E'ѣ;mԿƕXH1˜Ƌ{hb]\WP\oA/>͐|h|zghO.OF˙YWaI)RÊl-'Hb3A% y3,)? eEf^~TOz18s(fN h7SVT* qq>ّe%G~t#x3,#I.{qsA4 kWKvW6_,={_R_A_<e>5y$" " " " " " " " " " " " " " " " (cR^=."P(ΟQ''''vvy/{" " " DY5Fl'9KQ"#ޱG${*{-,;y;>4n_ׄyͫ֏FKǕfj:JZ>mSX3'_2Rp?H,'y)я!)yyϺ畾9%K;5U!" y(秢:,;CkeA¶'xgSsrۜ})ët+]z>;;oy©8i{?Wƣ QT\bɨb-L(!!H~sEbE/j=G2SpZfZsSK {Μg2~LSzcE0h/zy$" "p$<E[솝>ʷ=x ΊOs#ret<^ǿCz'4 [҈_{[#)QQ@X}۶zҀ䲷~6''iϫno5oO-=Nms ">x{3?ݕ:HrޕS(uNsp<ϕܛ>h%q\G u~y4eAk^Z g}<|ڍߞ0>;*^…{Y[W%E62/l@*ܗ·=Į@S|S?\_~!9::&&&oUIFOʛv%@IKʛ@mƔL)4BaD&M{hEQH9| &I#F22nq8"#DeПz ޿vxوLƍ\gc|Ńw3r=m>F<~yΨuәmwku//&Oվsq[{~6_ٙgY׺-c)1O|yCv R&W?lJK>Ugig" SbyA_wev3~g"ܮʫyY}K>#=G=So#c{k$^V`'~=~kgBBdfX4wx0TJ.eL]9f.9s Rl=Λ 1gviw=x?k"ߖ*[?jHyNor[oUIFOʛ_)jΏ!C:{9w Ğ+1ş'QSً+>8F˺d@ #l7qoߺG])%" " "yvm M{8}"2`XdGS5 >Ƌ2zLT1g\ [l(Y;?a=v<#,Q2 ~oa3M]z>ITJD@:KmgGiz1OOڍSOgCCLi$hׯMsw!͋u{ިt>ud4 PƔ⬅<#qԜe]JزT\z;c vŽK=RABRD@D@KHRR?S?3H;D[u"^z??㢟pHk"Ntϊ~4;yv /G&eewE>Vj7z`'/y3ž l?HdogwƔ?mw,gp_1eGSbrP#"@IDAT q9$w,Md'eɀ8dgIޓߨݢqM{&fË!vΘ]g2^x-vqz@w]lD@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@R?az׀" ]L`ff&5L))ճv~ek׎eY;YvYO" " "4 |tcdt8;qDxٜՉH)[OoY?2#`f^'|o=e/3CĠ>ʉL?GMZ˥[r d`vz}K S (̆{Dk~{KůzU_N^@v3CfP^ۂLa7'&s IS Uy9%Ly'^{2 /#ohj3xˬG%Y;[P{qŊy{pa3D.ϊe}8~dOJ>0أlK7?Ϥ;am}QN I98[ Sďq4+YhoW⟵So)ga1k42=d[_C@vJgKTUTLw2l/S *bd'>Xd}}=9YF?͚L%ۛ97jxx&I|=v" $ح2A?v#`L*kƉC+XX<vBxE5J==IydE@HȉrYMɉ̈pc8\k4KV;kV'OZGH" "zJ1>rL)ԣwء,)`h5BVGjFD@"2lm2dυMsF졏V?h?vѷ(اK걗ӭs^᝕v;>ecQ^'o^6s_:kِ?.8eeS/eN=r^}cYl;e7e~0nkU_Vud:22%葉buaM d#eP1[.o\=j+p3-;ѱk<^x =ڋJ,_2Ml;o`zgTd=^^$'~xE]{5 >^܌?i=D@D` '~wCN$y]-ZgW*oZqlm%H=8wYD@D@D@D@D@D@D@D@D@D@D@D@D@D@D@Djx2-"#AgmttI'f;V_e8 HhjįjD@D. <5&&SJ~ yDBgt!2N&L!b:h>r.Wq-򨙧װ `Nzx2d9S;wɏ}3)ӉL)t CkWƞ= _2ˈR?vZߪ_\{f뜜NȠ:qb_ HG a 2ODBdn3"ݵ;}&g@DggH_Zp)hL)V`K^ovBi^;3o8%_p d_- a볝tǜsm~qrxENbSwK-QYƬV^o\ϚY}K@B'7]=I9ɫ\y%>K\;y?oS6 -h'SF֙yOlS7[I߽7X;y#ϳNeNd0+W(&Ӈmo!hzOX$sW9%mzg~/ڨ~g_'R~߼?KERD@M\KÓ[LOm}[>Xw#>s!v~wj~ȿ oZUgz@B;ID@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D sQ|>k2!" U>55c3kot.rrx䷜Ğs֯;( ,b΅e炼F=i^//n)zrY8t:CQ=."9<ʘ 9@֯_,NNNl=syF_i5rw#\l~-W'O7] D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@ F`Y;" H`k)f#q*z g5kָ7"a .\0vLdJ!C j2ҙOjڛ̔b3tx펓mMw\vLy91Ws%JdP6VȠ}ƛIHS dHaJ냙?3~7#NVBD@D@D` /&5 'WRKPXE/ovݶ}}5=nhy#=PƔ/J`.Ʈ,թov ^ڙq\]TWdh{?杗,ku>pvժIRg$%fv2B0}2FP&$ㄯ֞=?E Y~Ny٦y'É'J==!2C._CɔBZqi-*" " " ">{?<2\W긧^^/WxsƊZ/}>ok+]7jRD@(2%((eKn,20tQ2dwg#;^UND@D@DdJP7ACE)%t6ӅcUl{o"DWl3u$S TϜI&d%KdPi7fJ|)R_P s FjσL,Y~^D@D@Dw r+ UIݿ|yugeMD~/`?]&" " " " " " " " " " " " " " " "T,;M5}9e,Vdz`~d)&JHBy;صkbv+$# 5ii[[/ujޭ{ٞ1 S OxˠBF*bɜq@VYݿE7o~'"P|ʘR5" " " " " " " " " " " " " " " "$ ,[^i#000433dc+R`v0Eo{ym?$ny/q;mc gtzH((lA][" " " " " " " " " " " " " " " " K2"$'0>>&144$RYE9~3d%E@D@D@DD d~(6rd͐%yyvv;۞"YΝ0dg!s y k]߼Ӱf<͠9P R+_VC@Vp`|*#Pr Eo{\qؙ|{0@9c縼^wby'{" '0\H>]y(" " " " " " " " " " " " " " " "T,[*O&088&8::䤓6rP~3/T!?E@D@D@Cl&L)dC{6ζ۲8yIkY?h.p,?Kܔz'?u]d!o_22HnV40/{sipE5E@D@D@D+8>ߢ>Z|gڝtc7}x{۳~r#2/" $P.OrID@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D (cJ, " @`v 7 /͛7;933,˗;srxP_)/E")Z"wF&hi=2N0ϖ~3~ީqbsKN"gWNVRud3}f3XclR_򨒏Zy*gj%>{UO8y7vϔ><[ jrI2, g"" " " " " " " " " " " " " " " =GСCUEgF$k255圳xG}_3LIYWO^;um5~}}X]4~7,!4?o۲ǹ_vr/B8zI=Sʔb#4"us3F΃;G=Y#?ve3:.bO>]]NIkvZJ8T8Ool=5or3G<O?R9̧+,Cr2ghW8qrxg~QiNm7g4>Ozk1_g~D̞y>nYڟ`S[vM9Nvc=q!"QrCp7 .?ѕs^4'Щp9eqrg?lxK\}W9=f7+?m?*T*DAk1l|/v岜39c [?]nZ$R0UyDaot-Q%SHDzDK_ٙ@& mDbM}!|髜鉭Gٽ+wKKO,YDYOIJɐS Ef\?3\{W}/(aJd|?95dTD>ѵ~>C^)FsrL9'/?H4q7WsS8'17>lFG>ڍ?Λ|_祋^tӟN';nNvO£O珼pkuq&&Sʢ/m8wfeLA 翋^~ݘ/;Eo?d8{.e>Iɘ|ѣ?ύ?9?vdsFG/=aP|&u5]>o" !E@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@rYM)رùc37o7QvIȃ@lCk}DPՎul$ډhe$="8Es`؇fJd\v_4v<[rb}|ot}rg5dϰfŮ);j 7f0l ȸ-z>ґl0 '뫾\o?3.ȜB?;_oSCk}ƎVg<:dYϣJx'%L`zfqÝ\mOur⧵dg:L*V>α*m3<1{̞x7.;۬]uݭV#?1B(| dԠ=yTەy3[K|އ9I71;R8' _V]?j[A>?e܈ޙ'-եoi,?gxO2΁}[>1g]b\d|)Ax8s"_5ǤN P| 8;wGN-sd>9Rc~]}/j%JߕKy-" " " " " " " " " " " " " " " "P\Gm;)׋ҳv+~m_Y~j}Zڵ5N=;v\W[v,;Vz;cD9E2#4)KqrQ%Rt a1.$ 2[2ЛXeL2Fu3Ĩ]$S *S>/eeeJ2F2#h^w߳'e}O%tqk;+_AD({%B?l\%y"yx5zAa|e޳!.3+C ȄqB"[p_O35Y;kWqڵw;Fj,)JM%bʌDQ3ݎ=͚z?ўkj~ Lsm=zoi{tdȺd mda-x!h\m_7!p1z˱)%Au5NK80(d],`I_9֏ΥmJ8WB:y ." =HjO =a)gњ6~ՐѮ R(eL)؂˺e"$000q\ߕT f)`=_+?W"oD@D@%@D{!NwcZxӏ? z;҃򞮍rXӝo<"'Ò`?WyC{^2F r$oW#SP_;l0ec٬/5&ӳ:l_pͥҕw-sx(X=9Oƿ=^9DfpwW53]՞d9ypT7d|Y) w2dp?&؟dE_OeN蟗d oo<9[ *x33VEOߛL_gd"ZȀ zS$[cYy_:T۪{3˸iw<5~V}=Ye[Μ'_ 4VyҘUi@7XFYq]gL`||MohhI2/G6ءnQkSLEF^tDs^M;;~/ .Nƈ ckgRi_keWu-/$3A`d, S 57V+7S)vmXo2e/kmD,.#%vd[t>Igb"8W{:$SjIm;9^][?yd`(i3XTG(_vTso8LpOv@&)636s b9NI3M{~be'yF#uYjH&^^wF{;6N:6>3@iQz(; ؕ-¬E&%3%I`ْZNw AMQ7pBuLF6yI2NkSLEF^G KG^5j5F.fgPzCCtCGjڍpH{´\—8I+Tzv/~I'&>rthsh~3d: Zp?yzA?̛~_^I?XWrW~CC92cf~|?$#K;Tvo*5=zb7G}5 dBb#UrרLEʘ4N`hJcu3p2V̶gsshZ {5{Y?0^t(Sܢ̯EZ'w'8 ~Uo]ɬG&֬@ (cJWG&0DlEkJE_Y7ݔܼy333)<66NSkh_@ ]yۿ?޶{Mm[˸ף+Fs?L$I$O>?ϵMּϷ\t'9Vp+oB'G|k5ݶ_MW^oMq+\y799<"'T6 Ry%ꇇ_夵Fڝgmt;s깮~l[טkwjs>Q|掳O^ca ˟#pmDf9gpQ m&Qo3Ў_xz/&M\q_!Ml9?ɐ{=aacL%_1g;/̛b}5*" &pyWR(s|3;q.2>=uV9?ڲ/9qS]y{}Frk)þ~dxYy©nԱK})5g☓^$a͔98cߔB9orCv? /˔vLmgU[sI?UO2FșʤQ}"t1B3DQD~a-+">yܩ|$ȳ\>G9Վ.v\;N2o(؍hc b==d?L;~۶[go ?Θb/1CG\;dH>#+]$E`! }85nNyNVȀϻyM&!ʘy~Q}6cK<>gIJi>{^_!ygL)sDnJ8/6]5^!feQ>F[}G$eb4蛈H"+^/+S | yۓ[߂ m c YOL}XR֜ 37󈊦catXLS[+׃gOomRMFG?l7D$~]Ė4uDO}1hl?<>}")ꗌ3?xC8у{G2 /ZJ%b3 %z>ˡI/?z3x{?=opZrtZg]}71\1hn~ϛ1G8soh֌)5 }v|&^n :1%)G#p>h:jO`rJ?s]}#4־4}G٪qʘBp IȠ=DSk~'Ix3e]^8鳝ԏ(cJc%" " " " " " " " " " " " " " " "$eMKرcR_rӚ5kACTE^%t/׫y/ 煾ߖEyY;\S.2>$ĐrJ۟rmqME/"k_k~CCDUpe0a Hӏ22k݇5 OBO9obMH?Pfue::fCdsvLuH22p>~ >ʚ/u׾9hOOO DэG !oN&PA;KBx E8Q;hvH\ļP ]̯*DsZ>Yxþ"3շ? e x7vZ7'iTh2Mo_=UWO&c}Ƨサm[`!3tuªk"_r6S 2+X[3}Sz1fePCg{D؀d۱ ŏockggg{/" " " " " " " " " " " " " " " " }Je.ou‘js'e9KuJrpڵ#QݻZi"B=_Zo鬀<-2/煺ߊxtN;'JDDMrV=3#"~uWb|BكJ%nO&ne\?N}%TsǝLǤd ?+r7IQF'kbOG!YB{2=B85~;I X}h>C~a?1埸7g9O^Tv}w[sG=?8ΐd63״Gq$ 68~Ўe^dAva}g۩.J~ead&oG; >Ud,ӏ[?B;_=?c E>7ٹ㗜_xS{#7^c.+S3_M7ݏ$</\5f'U e%z=؝jO?qpysL~9G?7߱=Csҫd3eֳz}>+¹"oB'e]G}_Zu 8-Nsߏ:ǏYO\| ܘZ%Ή*0=okء}A?֛2q<IeM$v>CC9 ~aySFswe6p~ave_-Nqޡ>c^3·:1V|Y#?u2Yo%@IDATz>7}nf(" " " " " " " " " " " " " " " "-X]9R2@"---@/bb~[vfI_@{kg1礱{R@D\Dl#Էj="4LWR?!"Ci\JAYî*}}N;vN)J}.T^L?#kYhl-w3Tld lZ D~Nk9J!"[&-?A݈c_h7tL"+}Ϥ_(L} Gr;DM0D_q~R%/ܗį%Q?\:ܚkMl#?KhH_㇝7ܬ~Lx}iA;Cʒ"g11 {xix+/[3&r|v[.qoE`! 2;)WOS T4D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D Wʘ+N("ْbJM}>&!ޭY/ob"CfX߬A|z#ɀ`ۓ$}vC!Ip>%k8T_Yꏏ.(JROm^dUCjC/|vr;1ȠQfignsxBRB< Ydr" Ӯg_^f˅հfǣk2N"þ p[+ _g}K&" KZѻ 4 }_5_r#IdQ8uCRܒ;F\߁T7mO~>bD̓'ۀXz=bL)ií1~ozyq3N&~s. f;D7k }cVNx$Ċ=l"\lk"BfGv( =vОD[[]eJgfJI_;t;a>z6sRhla#ӫxx\ҧ WztNVBr/ΜsdS0>'$r_# z'<(hfh?O39 7#ϡdd8 ]/;-_uqށ"* ,r=/^D<Q}K Hb2("09Ql@뜜ǽq_:md k" " " " " " " " " " " " " " " "  C`Y, ~|ttԁM &mynt6h{ hIࡾ-GtN셈O$M^z{_{a&J!;_󝅡g6mI`Y=`_!:7$nxTn>X}ƧݎCġД Ǿ=NNȅ>+]AuMH2bz:vXKCC|n6#E2qpDl!5dԠ. sJy^)\u 3ZP&"}+}XoLf\>If𜡗]NeoN\fqÅݿ>"  K > 8X-ޘ 4cgwklh Ig k;_<^  ~*My#I@Ju׬E@D@D@D@D@D@D@D@D@D@D@D@D@D@D@Dٿy5@OX|cccN;9;;d!E&\Y8xnMLLA/B'7ǒtR?D@D@Il"@{^^WBH6vЧ8d>i\ÆK_g;{M4fKvm֋z^"'N?=d@*D3-yeŸ~R﯎ xV*.{}l[N}3sR$ݮkp<'7_Q'wߵGpRML#O7202py 6LD/0jsydfe*~ÍfF7YlN=l{ 7֡5ChNbe2?g[8"kwXx<~ڣOrox xd_n93҈MT*??ΪSV9'7\6'_$4}ls oX?k&u>|iF" " " " " " " " " " " " " " " " J`Dt;97,)OMM+^yemW#軭Ռ8dBmz7ʯxQϿ^u|!Rge^ mKy|;7_q'tU\!=DvM?$16Ho^QL# hǎ=gDю>vDiop)s]:/xt$CpS{.ܳO=Umx#t>\"tw|^ ϭrS2`RGxސXь*<y޼204J;|-ەǟMo 7hy54oA=D[ <7uR"S͜2g/9l吓o(< <ȣs^g|W'8'_ ¸vcw kۅJ6zр:w[>Je}VCڪSv6qOj_(lfcSgud;(cJwf!" " " " " " " " " " " " " " " #F(C9&<'''z@syyC^\zCwrN^''&z'"i w_OƏF3п2}G\& ^%R85:* >wv'"P<dNg,ngЋϯp,HD o1Pކ{8d <>p.ǷlcA" ">6--h&!cgfJ!owdp#ϥ5k7֥R#@ "9g擗;˙R'bЏ\CHzb;wD82:&Y6K=;Kq?1Mc9='ޛ7*Go2a^?7>f>dd|^R@}Kfkv뵿ùȬVrer }q9 F33j׏IKWrX@쥵KvyT-fnarԩeWDhbR.=ߎ)D@'ř <ظEg4t7b}*n֚e=5[MpfffR>)SJ " @>sj\Ґ" " G!@D9FB6Q:Iyޠ?v!3@>`0^=!ة7C@ }_k3peۓ)w (GdXSww졋y5<yS\ ӯklz?KWd?̈sIȱKiu ^Z]y(" " " yFq^oT_z" ",b?uX" " " " " " " " " " " " " " " " K2Ň岏T,y7˯{hf" M@g|^mB< zSɾMl7MOuN.v6ĈկWDZΤGv?덏v^Y~DiOk+<9s!;h OY =%zYne%:To=oU;(,WYaD?]o|cN2Wyq8{ɬ`i=ssdFIYD OYv3z#?iӖ?K3C|(yƾw@9hV9kp|wΓ{<~cpH.TzJ^~Š[|?{lapAG\=/pvqNeN3;⟌.eLYUD@D@D@D@D@D@D@D@D@D@D@D@D@D@D@\ *]?׎Npfs:ՉFt^"NJE Kg)P*N7zIiwݯ$Dz_$ӟ'|T*_2d1G RЃ7/lد{~BhRdb}?}'eȘD; "ʏDJ\].$J c[MLi;Ds ㍼?'q^Xn>$i4 ܨԳ>?NXh']w1;vu-lr;Q\?o|I7>Nrj#~p%Ms???eT!0:۩n לtӟf:]>\7 77Ν/eYzkxgSԋ̜9;f^]ص`?O-'E?{/u҄V.yUa֏sc_x精$?yεs^)WB=o3~ ?<7ɩ7:٩Ι!7'pb>;\?vyW;\j8/-w+:g-T61GD@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D`q U*/ׇo'-/Krtrrf233+99<<줵;,~b řX/G,ֻh-ZFA}_bL3Gj~_v$2nűOuc#Gqekg1c<3[=# M"%IbM$h?+cOe_ص~R~ ͔1#LIXpdL2ɠA9]q2:#B1})g~_r]𫜴ϩNw_yOm櫶9"͉K"=.Q?[V=띵D~2vx΅ qrx7v;+?pyiW:y3v\e?eLax&wuTI.{OƇ'l琓+s/GSƔ'Õ1n%8לy"enU!Cņ #\ԩP'۶y;֟8q.F2PN;1q8&cvҾ XS[<{y?ڟlgu_k'/1%/ٙ\Ƀ Jb!P e`) JeXV ʰ]{?z++;߻~k&`#1 ?xtۃw:"8dW{N{*saNm66]Ig_wYv+B'G㤵*iT1HSw5"6ɘBD+:cB٧ ouv;fͶ7q7m'ofus?2^hnR%8j_z2L<*-sW "\]?Tg n DI}vo*i=3M;|,2}9>?vrqnΈm&g+8=N'u~xG.Z;~yOm$:9GVZ;?rVUUu(*NlFqAgPtAEmfT:ą48RI7$.(*AV@# $@HWs>ԩ~z?Խs[sNSWWc^9] ySbti COiOs3oR=KENiN k73O}N 9uԯLύ lTX87qns8%sYGWzB&j3[\u={XY_qpq9OQ&.ĢrEb\v4>뙚a.T̆Cj2yg2kM{ OUH-z֎TFbf"V׮Nпyasmѩik'„/.~;H_ė@|nu̘RA~ڌQIHHHHHHHHHHHHHHH< ٰ􈻃e-e+W9;z"i1xP_/Qj~q4 z}п&Н xF>"Fԁ/WJpMUݝ_zwu?xCy+_+ZdLA䤏o;XùCz`)ũ?C!o@ }UU=韹zuļ0(F2X=k=[(jIdDJT)LzdLdb@P6sʡ3`-7*,@.40tuRw=][7Oj0p\qfb~Rej+Erp~\KESB/Whfo2p 磔|[N9C\jͥ;b'Dd@i s^\k*ʘU[eǹK`"y*hYc`pmA[\F(lQxUo(22z" kIWoG]ꈞ.}^6Ͱύ.3%3/z9XXIs̍5!Iϖ_ocܧˌ)Y!fL wJ$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@ O yС\KKKO^&8:y. NGFF-NW?ֿV~c|D?C9=3ozP__yg^6;#@@`tV)sW\FeLAD$"4Q߾50;pAD!R)ȡWkXƔ`y; Nf}] 3HMNYIu[ƽ^oE"S "^/v+ZUi9gPl="Ӳƙ_׌o1-SsO38Q@;ma#P^!E|^^Df ݙߺ/(xC~ K##? ӌB2}"6?;^]G}tFd^qrW=\篭X*c &kȺe"qH1/~H'Gdt.OnLߡp@[ƹ_ +ΌԿf3V)?-M zD3:Ƌ+q]#()3NIQGF/uCw?iD*_*C_V&z.$8o7ftik L7Y]y5x˱ Ku,57fLڀ$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$1%f+l2hllLd*⻆;lZ[52sӦMwfmY }՚O?S~"Y__4P=+/4-@qgX3M>p_D#"P2~k|Sj]hD.[?{.)- {YM[>|#rg3XXD"`3 OĸKN^(MƮJ$rYbg-"AeF[0w4ևXR3`*cl/|dHeL9 Sf+]/Q9CbjF+#II3;L!XbB`?-ymaTTL)"5m;[d*>oy0V/s~!L 2ͻ4B%8"txl>~mZ9"(>6"[ѼyV~P#G'Na-\#kƕ=/ ;|&0g9]Ʋ3Dzd΍tBާ\:"ߗڵ,{xcdSmz[ u2۪tغwk-}b @&ڼ'P_YouRpM v֎;7[ w?C,GO>>خ3?N>jjq_B07{ɰoFL$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$0  ie     h(L Ɏ QI#b%B}V5t(_?(ökIY?XDZa#~vTVEڳu8˟ϛlOhhƿKq0oyQ̙'v-2_}^@d ഹ+X;^)WZꄔϹ ?OZTl5ю[=PD 3P:e}>(=П޻d2eRG}6iiW0l3mL%z&}o] )[u|}>PGA \p~E &NwȄJ rris07v=|M0TYOuK#-eq|N9ye/Uսu ֞;Drhq7qQwđ@a emyw{YVpc²W>uS[ Z}-R1܏MJWgEI`rz4tC" -?:˰w%,ł?.&#So j￸7.kGԷ7j9׿zqq]jjV#6&L  |9(_WILgUt~M_Eb|<ݡ /^*f_ 4/3F pC;2V^{?oL|zާ ??({Rl| :u#ߎz %Zd@ɷp>`~ K-sNʳ`3Xl_y*tDL ߤ8('#Dy_Qg_\+ʅR?prpx)gFlww|Gƹy 1Xh/}ȜCQ #t8@" MgT;_\fgfοZj`_5w ggP'KMm*H矚{ Ϗsn㜀́uIN*7:#ȁsV']HG]hEp=;#sā\sZ^ZOfqxEN3aϊ-܈纄<'b|)@[ZGj T&8|s*E qwK&[&/9*^tZש7*Z]vEDL;?{lr_;|eoQow~qq_ߨ5|G{M`CnG$n0 @Sulxi^y%"7"c 8| C#YMżQg 3LGx?@ⓄrTR#¬I%Ca&Uo3"QFD&ʈ8DzJי̷d_eּ!c廤>FN^ z`2$88y7[._57"q3ֻJ#]iodycX޷S?Ww>~H"VdK#3i 93CȌ>-"w?Pf+߳TdK3X;S iFO}N 9uԯ";:v/e2$~RΌ8cJˬd]+.YQTSp/8;? S(7bWEnݽY9='Jsdpv_7zXmm5w7w"?{~DBpD;ΑrQ|S m>.sw#})3DG                (' B2@e@OO,\ww կ\r_tjjq/q/uv~Y& @O?HD!{ҎH)jt}FLFfO-ο+͘GovzQgL=]:ᛮCHHdiOđ7jwN߶+ a/wZgLysṑ1EȠuƔԜD"x.r1me{5| "a#'~Y\D& ͘8x.zrߏQEI$@$;4cMc?<2ԅ3Uu '2|\Ep"~{̷OfnpUwm2`te:#pލjlS]kwyߟ]f $% ng@IHHHHHHHHHHHHHHHbI`V,SMC`ttTj3 B~q֣mmmN WhbK. # "0: ͔s>Fm᭢:^#5W ]##?;6S ~ >0r߹Y.Z"V5."HF߰t}Id~u.̔b}q3`<@ 26Q2V-gPA}T)>ssƟ);#ߕ27oE9D 0 )Yz7]G$@$O`dvƘъ=nƻ~*U뗊l[ĪTTY+˞ȋE$NFFt4獘NLLݜ[>iQёes;uF~qX GB$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@MG f'~_NiɄ-[&LrJ^kkoڴi~6ݿ?Qcx]G/y}ݿ#׃HHY .^%SNx2&< j""cHM[1R˖Om{Dr sR?<|ޙi˗EFrıa~܂Ўk;p3-{LN8.6c 剗?A{Z"@IDAT|]G#l?uC&|S 5-# LB`V*DU$@$@$@$@$@$@$@@hW_W}lvvmH[$ Y}"Ld`dFA2Xgp? "va^ ˭z+B$@$@$@ x<2`O -P[78: @h|H JbnllL$2 e.2/d0;!&hB.{}WQ=  ( qib?#r"Bd6J7k|y8 0J/iMNa!),l5Rv@݃!*'}R~n:v'uao[ucDcέ_ҭ[ _׫|A$@$0=U۵H:#Z/s TY_Gq|~m9xytuu[ ;DyVM$P O)C$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$P6fL);4>n{{HdJߠ4TXʔ$@$Bחz5Q# $H F0ݙeːwl9y8UWõD+ x)c9k`4ȔXp.:.*ht_^A:e:b[prL0B0]+qùњz#s Ce6q+]>q)7wח˜܁ߎpW5g&I&}13 iK*$@$@$P3P~Ǫϊy{!gW]V9p*0[c^[C?*h]}=]hF$p3p TDK ʪ2@hkorwwwEvb`L$мp]u%jR^EMHH .C5W9[DZ0>28'MmJMX3IŮWyS;g(|ZbX~L!rX("wl@wXkFD@c}K RSUbcrn(X@9*ϓno|* @ch_2VyE1)PW^޶U ESc?z7@+r };yMUh/e>^ULSHK)Sa# 4 0c4[s8Q𿁁o}F0KyllL$^Z[[moot:-vE0$uš={*R4F$@MOJC\k3"vR=,:~{|H؉y|f"L%4Z_EfDH映A2#j#Cf_?U.>; ac GgGv|J. /qaͬԿkR޺g'GJ$WX\uȎ"W|W&_HHKog\F3x)g9`ѳHw"ӝ)vx, RiԨϨO{. ֌Kyۃz}9sυMc;/|bq媷|HUDiF@V$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$d6w0l672cFvB{ei^ԯVN"Zez\b*[]*󚽣&PU&0ՈFg4½3?du=$a#Ϝe ]qT¾5B;z~<_2u  :l @:|ѿs Q9Eȵ.+AdGM=_29c(SMu9%z$\ij܂z\sȘg&$o߾%UKt^)wtEd~Uyg "toKXG]uuG;Oǧv^~<׎uWzA/;}Q1Wd~v,dE\?}"{?:%""Kl}ޯr.ϖK:N#MrLk28if֣w|tgZ0#s,7ɟ /ӝS ;H>:Aw<9gd~/Y0>1`$29D_pu;gvw iAS[+5usJW.A38ßܹŹ8a(C✃x>D;(Z'3ÿG(Gv]8N%DB e\?îʜ;_O'ɟG ;=z~}췜ܣ~bq}ko-|d?+7XY_2_dKѬ0[ѓ]HHHHHHHHHHHHHHHHH` _x,+SaS"#-eks̨ٶsYYz}Ư׃^4=j_@w捿HD|! -#r?}f4SB3z14ı/N>r6]$!"/2)د>5 SC$lԖLE"GI) 黲o"V ڿc ~95BakY#l/#EEc,C s"'"PF[`W[C <8؏=]yfH?. }_vv}jgёaoa;,J8v|lVv~v)]p_21uJ9v\}`3*2q_X9fL:3T:ž; p춟o<_Tߍ]s`KM,73yC%9eK]$$ !=_^DN6=W̌)gz뇿.o5Bd3M[Lj\S۫ 660Ș/PL띿]m>HCԨ\7ooh2 ^dɜASؿ/?t}S0_o'D28vD>}n:;>R 8]D(젿8_X*W,B% 8u1rc>s \̘R:3cJe10/q wTsĝڣ 0Wʪy, sN?9['5 =_ ))#y%JEۊ7)/doZ٤fH9^x,~Ϟ+QfƔʘ *>ͤ\T:IfL LJ`"@*4h'l2Jw}&2+kmmM6.QͲٶsZjىz}oQϗQӽ{zQ-3uۘzdb/߼%<2F 3@r$hLP!bƔ0%VG1P_z8,HO\~܌)7Mǁq9C{gqѾ7Nί@fD9ae:w׃%y`ӦC%lyBє F=wJ*KDT"|d<2,ٽiti l;e.2"4=ouu/zy=!#R:A(~X\ SvQNзޞY;1lD}G% 8}&/wUoxҕQ3>ZȌ)gƔ:c /oӝPD2c;sTeA𿜋Oty]$P/FZkw˹, D{DS3cIG6M!N/$ 2$Zyp~$@$@rE]ϠG}xT}}R!S268*)Wl]T'xL $m[M}!$eCk1Sq5y (G#zЊw 3XN,72_:_/WIqh.S+{_'sA8GqgqhhQ>omLIk̅8O1 6 @ dc-#               ̘RRn&/@Y$ ,+?#.20da<hV/6y߸FU0-dL |_pozʢ`wE T@[d 'ԞrhuҞh7nNk6 ~g{WȽWJڑ&x99/YlI1vpe_}?3d~G&SҴLԻ}RN*Z:R#<( [1wƮe^9[*);ܡ4k:g279mȧÝn{~DƔɴ1G(zKxr^7OWȉ3Cg\>n}Q;][Ӂ Uxb1{%"i=aJerΉbs7Y-^!h28W9~2$1>vH*`srx .٤?0xe7^3\%̹vp.<®ʜ?1[saYϫve%'?oW~v{?_v }χ]O?7o`/~9ukT9* @£jbNU R|kq!1ow5JF?gPBQʨ5u_$0Lo.@;c|)ȸt׋lHe _kFEn۷]d6'}eAN6e):j Џn N""0Ry@L#:{-XM$2jlަCEDdsB$)$hoW=jF/hmm-; 6T!C֎+=DȲ#\d?OLI /+E!-`E1; گܺG#y(NiOwjD+QgLyUR];b+v[ɢ}/*yg#09^?gƔHFHnh̴ sィ^ ""33kr[E8Gd6|QYߴlcdKp..=s=~Ϡ^Eٟ>ܹ} sǺ[յ_pdBv3k FnׄpƃFvU*>πNݎLG Hqሔfjh]~QaKtv] zb`/ʘbmjWER߻Cd:j֎TFuƔWc/sV[Œ)D:c_}|3n̘R-MZ$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$Pd6WZ'jqzpp,绻E``~V|kw7kGG{/Q۪~&x￸եw$0==zDj{h寓wBtx:} `~mr"|D3JCs=*h8ƾWG}VP)({o3Vϕ9N`hjk )wqϘt}T|49DvgHeS ">}T5,;c 1c Q@Y#q5C?׹8<矱T {C]M'NLٌ!8gVϟp~s=YȌ)nbpDzxαǺ~ =zeLxni s}aUQQ`sSr(̀ok|)kwy;2Ryfh{ùo`C0dƔp2cJew*xn)r^$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@ 0r̙#0:l6S DO/H6͠ʝoy֩]k\Z@e.w?_!C֐ @=Yg[Ɉ?hsG;oiPd{ʸ}dO۾-oc*6dJA!8n"$^}"41P~"3QJDȠ=t(#3aMn&hzyD?yUf6|F7Cg9a<*2 +-5jM%>BE0ׁtHL#7ZfOU1y3nȶų~<+<\: 1%0:Y< /857PaJ֮R |!%5$)                %0qIp˖-Ʊ1fw*Ef5y_*6mCLj;ߘ_s7~9|DL]_H0cZډ]Z'%OʀȀl"wMsOMcW[X-s#;D8]F 3B&c/TUi2[~ܙU^~A8uә0z L#[9ZR<ۼKD ^A=?& >NxZh ɔ W?|fG?HLA ;NL(z\L&0~_zh؏0`$29D}FĨ7~vC5lEbgEJkɹ->aߴ9_02y[8!$azC)<=쯐w~)Rn,` s~`]ߑC[>!e xknʽOW&fm\ ~uHr>/Hϫ.(#i-ЉcŮ[8]༆SG}Oغ762n`K(8_ěHqR잳,|> ?>#E\נaj HK)1Z B$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@ DSh19     hfȸ 8jp.Fg }Ԉ諆|p 3G3&  8;SJ$@$PVJ$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@MO`V*4.hmm鍍zgMgo`grm֒>,w?όw%n_fGc'liH`*̓]wL&4 m6W^ s2 KZ,wmrygvXs|L(Ai'$o_&3N:~Ů-N/SK- '-or- ;~~  7.2zgO {Uie;L;q AIK#/}A~tQOZAOֽzoq7fЕ 1`lW8gZx".9:3mWp-տq7ӟ}zT*_ӤDZBSjS:N&u*l4a/VJ}%               !0 hYD]$2`s曑)IKϵcƇ@e/>{}}1g$ꏟ' E"S@؁\IZ"(P@KE"c"5EF%bx9S~XЇ}X%wr. 2&]FqL3IK!7."5ya]q_}{"zI#8Y꾫/ܷz+>+ >^M$%{ݟ<>q݀֕ o)IfNN_q3>pc+ʼn.79##缄;U{;ŁTd>`ֿWt5mb^+{nqw'\waD՗՗Bt "n:N>^<"kW &               Df>}@O~cppp,ݢ?00PVZ)s/WFFTfz-GAZoe/_q]ߨwe OS#@\äe_I;ky !0I7?L">*mu!?x'eo݄Y_#[WqmxèH;'4'L$7Nha=;hUpNŴ2{./"l'ʈB@7`]b\Z;"}?MuhF׉Չ?B~_\W70)4ӥ7k$_pN\'-s5#ՅF#X" 23}/z<02BoTO wަ ~^'"~=f"1~3DBO?{Hs$xzVH&z Ή.#;?y|w]*xH.~~ĺo;*~6Q\m^ @ L|5Ʈpjo"L&#_XްRNEZ;ybT#ȕ_> #t??)㾾Q/6ଚ@`.Aog<4g̝/Uoҵv:Ũ0SS0e\!h#+Q=EAADq{#`.$"1S>dn`VC1 etED^:5wU-nX&ȯ! B(HK[=W.aU`DxFΘR_4G/cwk:,9S#zWODZ;Rif2kȭ{Hw;E;5"ڑ^kDn`HD.>~{|HkG*;3K5zݱ w|שb)#(xV-)+}+; 8-8R:/ekG*cŒ)XOo)nX3L׌[]F'9V8O9 y>^ϙP7\L7G;#W;L֎Tv3ÿkny#Ef:/|;O:_9t/R^Qv=;=.88)_uT+3Tp:pN_!                P_x_= Ub @7c"m؇qQGr|/j~~>?Q=9׫a4YF3xd8ȷϚ/ULwD#D1ɇ#p*&xFҺ1]QH㸖1U&g4p-^VFjvC$>Hd0_38C`0:c S@)})3Sow?KYIw"ӝ&ڑ0cJ .@lvfHߟܝba%2J?x_y+Dvt.iHe/QgLٿxU=G!_DEɘR=XNA`ԝ۞m{3wQ|1%塍I,ܸY3D 1Ŗ_oΉLvSSVגjC$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@MF`V͗ӭXRoc[~˗/6R @V3HLKz\DjxqQxё?4DⷉwlS5WhPptD.L;v,ʐrLS-i#?vmŋ;D$@]K,}cD{7F33#fH@STH Foosā,]^54ֱTnaEis$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@U#pRWh,[L166&26eq|VU7m4yiڈih雨#iFoE͏@oQ7jG3G`Yk "=S}%Tc͟+c[D''d3>o']w|[hD~0K}h;G67Tg9%G_AKYQ}0_熋h'_8FeU#&l24A:u`뾵z Η6_33(oc~P:brb :?9@m i8Cwsm.7nzF{ܜ;u痊g^)7.Ω'mzw~9*תbߜ7_<;柴we{O*~6ɛj/Ts?_ۡ̍?E?_YBϸ'pq8>=߳?#r/:oؿ~vWީG(]~uG7R/4ʹ<ho;'S  @IDAT                Uڨ)+)%Lځ% Ԃ/VU$@صQ+5 _oc;hFH$MvN7PK5!C}3W~B~56"Ft][nفHHHH*!h%ؗH3ۊ_               OI%hmm1Z6;o}Z=)iP* @}:[8Ku@g&^|dȔ&[xa'pdR,#JzHl0y Mh6 S*9pgO9 @X0u"q.6 uX?=N*; @N9٢{Sg2œXWH 5>>^X                ,d@,")%龁s.ꡇIʔ$@$@$HpVs!x軺KkDfYŝy<qNGxcBA`gL'6R4'-{-I"3ݫiQߝoHrN}y_*y-+[HX7 w~K"q%a8Gdȕ"@"%Z1 (޻DQn<_:?R@2[IHHHHHHHHHHHHHHHH,Ҧ2 Ĝ@[[x-rppP$"0`L$@$@@9xlUH`j٤fDH4&w+^.7lH͑۾%嬉̄Ť FwΕWA)$FYfD"N qf\|0~ o4DR dh6@ Cݯܱh[wLF@^!LEଗɛ"H@ۊ2yz/,;SLd[׊~?wHHB w'm7\7_- ՝M?Y:7Y3B0_kV TFS*1#0>>. |[*_ؘH^tZ$촴@HHs_6̒r"$0A@#mMLA@חo~5#" ,|R^]d:jSqd@d9"/X!WA=Hh,IF3j~¶be߮J؟FE|62d-xV;eKO@)шNӝqvZRA& H 0!]{wأssIwE;_(Q2Ԍ@eHBze_ .{zX$x?||.ՇKfL) $@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@!p~Ǡ= # q?ܼ-]T{Wt֎TFrL +__Y)w*3`zu &"=?cJߙX,יw{&r}۝9]'iUK}Gl֎Tv3͵.\F+gJ{6?iHe/sN!\9e]u)dD{ @A|kރuqrҜ9㾝>ۮsSsoG?nII;O&9<~]Gmg~)]s#rܬg:pJ(Ϟ:Xg9=s>}ި-zuXE"oz]^O5ü>by-~3}JGQXwy癜'{\kJ;v_g"֮N,|.2M;:_!q*nf.ٿ?DރV 7ϝ/+W#2uH{ߕ^iQҍ}} HoWKF#RmI9               fLhzzz`D I66ztwwVʖ7b<Qoڿե^̸$%НA?7D> rET+aa~.B+l;ʾݹǗ1%oGLd`ͯ>]k= Gpo7hZ{Lo ϣ)R:Xgjԯ)frE:M4ȱCW-CW?'* ]/N}⡧FM"BMa_8o<_>Ȟψݑ}Kd?H$ C2cJ@ij@]3~{}:8 87 NϟU3l Cf,z̘2ufU܍& 88͌)Ym*kH\?Ngآ}Rq/ZtCќ𜀿K2cJ4Ob4?b=:pPw^I#!Vz:]Z6쇪~H2բ?0\Y53TƏK#(MZ$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$P2YR2IGG5BfJ7 Ip}H宇s|rX[VvfIoH`zӣ^$@q 0~qӦ>UE<"V/j)FG7Gͼ"bye`p r-4U}: mDd"Ƒ96hs"1x[>rh|cQ| 1Z AsuE ]+lܑˌ|ɜ3NO<ӱ~#j? /"N/*1(1ZHZ柊?`B nK*睡 dfD`lT3@|chAPi6KG53D6 vMM~[ fL#8ڻXŭ}Ȟcuӭ׭ϔbf ڵa-ˤgR3EH>|N|Ki! @KT˖7e*do#ۀןiۮanroXƨ,߸]K~ը#q?6$0%o~&B=gȄ1qߴ/2C`uo"Ço#G?؃9~_vz2ˡxbْ+ŬvHD:M4~[Ů~++Z@3^~1ZcO9wuAؿS$2?ܾ/>7u_,]]cE;9GQEh^OXWQKEWԿT_AIB O;Q)> eKWI_ 5,ߴϤ>EZxBѳ}禙&O^vBEهHS Ϡ*9묬 n_HW؃R]TB$PK.̅yuvܙ2煴+sޏ3\ʕ~;(!8a>ߍ8?ǎO s={||4&X:}ߡ"q;pN<=w/ֳSʽk΃XwW|G&.=H] "юZS; M#P]mp}~nTJ8% 'aJ+!('G_Hg/cGZdJ VNeϏ.q?)QE{Ԩjq 4CGFЂw@H7B,4s{(uϩ;.C}'Pk%xIw?W_njod$tO)n-#               h32kECIHHHHM~s<k.B2q:/߄ohB~9@wޥhPfA)2;^aeE ;Q6v?a õI(_g/cnhOGa.2 sfbO4` =-$@$@$@M%iN󷩛 m                HI06@R twwi"3.W>Oeee nb'Yz4jim}qs>  D?MBOO ".;,{~~.e0딈ȴ&<GqMQW=K.;ogR(GQ\랿.v.]zw)3B AAde̫.Tne n73>¾j ɦ^( n_ȮOwKY *!7jo7+S$@$@%;qwhH܇ 1K{3Cw_8/]ϻӟWq@%<~{^(Ӿ):/yZZ0>͕HHVV?@ IHHHHHHHHHHHHHHHC`ZJM`ppPf")M} vD9vRtm_|HH5|vZ;\DsvZcu*rڷˠN|urzKCD?~KC5W LhiŲ(=)]7xU]<+~Wd ,qf²V62Uތ\cR}C^OkLȔ2Y!8فJ~Iq=!HlhTH$@$P%uW_*#/_ix{\5WI? x w ޯAk ~/c8fߡS_-+Vg'AozsmHHV\V=O$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@!3B%HBzzz'rxxX$k7IwvRh+/nI͗HHIGA\X*U] .d/o ź'z7BSG !?2l܂aJeɛܛ?=ׇJj!HLi>'m66e:.}ӴmDnՌF ;!lQT"yuܛ]!={i1j[1)}.Eeosj89$@$@$j+^,&oZHC*[wԳ>^(v]&rM_i Nz[2([8ݿ&R7%vn^GG GEծg|~H]g׵֘Eˀի)2OhMv|YLܰD߽S$x-]D/2X#1zGFnV"ܯݻ=zd̴>/.]TPd.q]Ub, wH.rσ_sz*&ps^!cld *y)" O?0݀Ok؃>S?F} *b'(2ܟX H;_ܙ(k8{ʸkRx9̜k_p9mcOy]^8/=>>Xr{sk_{q guʫwxq~_8\<ν-<\o"s^P׮M7=sc`֯Kﰿaz_ϻQrgT_h0oOL8?y28/s9 q.wtJzfޥ <.۔)q>ݟ 3n}?8cR).g^v?%~T~?c^J(@S~[33w38r82PAd "U/49D 'ID䡟#Iu^p&=o>V<귤lSVJrܼ6QqÆ!Kkի#+WITCE!Zwb"d`T1#Q8;hF#l6"uhFhG3Qd>"\.!.I5c  ?щz\i 8_v7pc^z@ ĝ1gzk=lS^g2t*"H \pȠrߝߍ>Ӯ^lùx܏ef֪2ڭ۾l8aDگD!I;>߮#Q{z̋}0QSl?CʰΏg"@Qy\3 Dˍʛ/v`ηxҸM>3f<' _q쁡Mox/p@4Aiu넓Jw.ʫ. BCVC=2w{^LCد XM[ `-pN̟p`r/QpWvsovo'.ʛ]-T׿⇢և3Ø3 /-G5ӕ$>*ٗHHHHHHHHHHHHHHHHHlj+{ ;>@_Ir3P6%GG5RG#b\L:6?l6MzG AB7Fz^k FJFꜥ]T1~L ]%yv7];}ڌ)R46،( ]NDA3}5' cwȨhw4ޮ7=k;#B㸎VDLFw?ȫ] E5z CFqjGD&B?C=owz*g?jF=ړ&2~r|?Wv̇C];Q}: SJ&RfL ?`C{ s~Ȯxbc[v?/;dn}  |E &)1ԁ *d'eW;8{foϩD/VUYfbBN "               ht> h -=kؤBߤ7'1[ۓbbKڱl2{||\WH}Q|ڵG_v9nNIרW(N/Y3>8lDꑩ3xz.#r*)DD2s|1e|_$*,^.vޯ3ouHH|2HH9 EqpR)SY}ڷoHg0/}*~7C( رrt\G!B3%'D?Dᾼ,;nDj3`߃d1'D:D?pCD+"bq/ x5>vuDF7bauϘYu.b}w}$05W/zgD˾'ϸ`_WF2= * 0cJkgLAt<ԟΖ }m ˖D|Xϻ|8?;ޟKX=-~ڷߝq3 r>v_xN )͍Cud$is_ oquQEeC=[WeZ[뙼?F~9                8 $28d@:zUZoy~VO8OOr_LD쾶[55$POHPmDls֍quBLFd8y}^5"z)ŪDX%2s \م>rm #f>y 2drF'}w(ʰᚱX_pßJ%ctT_TGmt({Us8⁺LUyKmuJI:}ā΃Pw=>Gs~;׌&ӏu˔ j3(֖"`9ZΥ8?4@u#u1#itzyy`yNIHHHHHHHHHHHHHHHJSꊗIHHHHHٝvc ,ѿ2Rm2෬AU3S_e#t!!m2'j*ToD&횲v s iAʚ`=LLQzpM؏دAM+\l}SNUHzGW_'d_}-1[ʑ$@$@$Њ֊\v\UD$].`W$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@1111QegEf2]|r~ 6^IW7@vr> xP$"҃ߤzF2E;̩;& )y#r"HcvkYrbaM.pdZz"N+tΒP K:o#ÄQTas=Oe(d}'юjǺڻca\l)N[$"3)ݩ~ky7Ly?lE%̃\H;?ʰ<-Uz7D8cɢ#դ꬙Ϯi<@ ,~B1kzϤ[rv}λ8o0e";Z[:GA+#AelsOY U4@qq& /^#a3 ]cIn54.r/2d !K(37gsT琏s"33Ouֵߨk/N"'܂"C>8wzܫxź k|dξC;Pu6!X?ѢxdJA=$<*9oNu׼[,{jȔ"uV\/&M0#VBuww؞U1r|☃:H>2ŕϞ>^f\( ;u97=Vx?jHM<=ȫ| pAzj2'Ow8F5apH_d ;1$@96-M$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@LM1L**H>&Dhf3`,@K>OtZzi| Tn '$ :Ȯŗ O$"aq_!{V7vj}DQCIT∎L yW|LW"g!ГL@oM( reŗIl Fs\HHHHHHHHHHHHHHHH.ғ|pmZ{}m*!0Rrte4kd.O}KOh&"WV-iHe4 xcO{(h20\˸:#2]?W~~\D=|PO UU(>.Z6"wҺx^-FY=A5ޑ/ Zaυ}\bVTONLɂԀN6G&8L>8@;$pȝb o!}:\ P[u*l2R!Hn׫^#_?֘?oU/;n/:yբ`gx?6!`#?5~?*Ιg"+\٫RiLS^gbUpNz8 8>a}q|ᜏ\2^=7&p)Z${>٤6ؿk?λoLk͛kv}{b\J3 Z?7VJ`Ư,tHz/H; )w9'|mpdAȻWQw<|Z0K,zGUz 1GUYpDX[sqY~~K9NoW[u\źsf߀aީkc5 awktHHHHHHHHHHHHHHHH|~KP[[ʹs Iq]9s itoyJץTr%=cE_ү߸WF^K\2n zq)I 8]RHID2NVz}VOƗȐ?q`xjN8S;O{s 5)_d 7]kD->]ok!DZ=RßO}hr:aߠS5cړ&gu&?l#_n+("͂vy8Sch 4@Sՙ9j39#25ʘ[9w32U)^V/2ޝ-ya` }nĊ"~. 4{yIudhfY3%!fƯS$87sP226{=-:m֮˝'qjʊp5cʡ}٦z*8[ߏ1%#mfLg)xtQ x?]B|_@4|30Ge-qơH͡N/+m}uu>a꺪&~Ūvzԋ8*;mo׷$$gL7}+gV7G&DR"rsTGCF?9V/".{P~+.DLTw&_9}5cŮVQGbmc"Z(;WU#?եIsL0Nʔ|z'x\#lVTmfv^|[Py!}XD"ۗd*}%0k~SPasq (͘z;Ŷǝ1kd*kQO_!$@u&)\jqeLZ8[%7O^$Ε]ȕڗt>閭I7"V]ϻCoh\N>ܮUJ%ʘ'zc_U$?P{4λ=HmT*1e_Hu:`/Z2"nG{sλQtr>kGw^}Sue 4&I!o"BL/HȞiFW46QW/0oRe .qJ #.C$@MG97.HHpLD r"榐f ,vS78w3IDL.߲v)UՏ~CmRT ReɋVdOV^[mm_鹹fI 71 a7tT#YD$>\(:WS8@>WV@C-pL)[奣ͪD{\2౯D5\\hOaӶc_y~WO]/Xx能ڃ}wX2 hϤ18?+(CpD8>>>=Y-'Ayq.8{0?WsGƍ f/uYY.{'܍Oq.=s'mb?G?ery;~r}VםJ9ݨr9ZQqgP(S1  v&L)MPKZvިyl?'j\[-ValUmh9GgY=QXO$@$@z@D4NΧ/\Pٳ"b&#OU "Bq5"n">1~Ϗ5Ij둹' ?_`Z4Bz:E!xz.V\(U3 %eD_0o/\qJ\ofJocϏ5JTjxќ~zZްV?yj$@$@!dPy޺L|#sPb6o8fͻP~xŹ Vu?9U#4BYg?2A|o$@ 0cJiFA$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$PfL @ je:SIfFq B&f ʸ/N&~z=Amw*C?dNA;2*FuH{8 ~/ZpƗ%O%)^=v^ySѢe C[\2j~G;SbDc/Wcb4=)TTb"5yQQgHHZ@?ɳ&H ^>yW/ t8fL P2d||\d&~-ĩ5~3uo6օ۬༝D [k׽ҨKo ͚-n{sWC=#H $8!ĐwXLL#@ex$ ױR{rˋN?W>xȌ8̧'T[~}5Es3k}([}d-G?r~nl=O*q}Z.֞3a (Z -n\oi|˴_a mX>W{~~蛁ALP־sNY=S2`}3Tg1a:_ΝuLqߓļۧȘ53`*% @dOt3G*kvF0PM>'Œ.2t}ߢ.e4~v?;L3,qq]Pc S͚cz8m?]>ǫqlNOMJ:hy tHHHHHHHHHHHHHHHH`cS%088(]٬ȼ˔=o|CЃ2e2`]XZ~%ݾv~?D`ow/gEo D&Iq "15)" GEdɸmj2Hp Jy(}U" .J ՞v)?'>ZSStfTF(i~zD鉪/ewԸZqXKۃZ xE cܱ+p]aQ)%_HN\QR׾] Ⱦzb_J#܏<} i5c~0~vnEHW~N~.x2 @ dw}| ''ˏ zlm kW}܀dqxB?ԯ=xa2}0Tng,.leN!p.y&>kw^^$aPhpX7xtӰ?eG<ŏ^D]oפc[Ň)HHHHHHHHHHHHHHHD =M]MiZ@~qxx"7PEl#תu&u}NPu)z_j$NW?qg)f&q^CU'=f~L8||P Aod@cw>?Qo=ȷ:V'oWn1 EF<ޤXCנkGɮB?Ki 2mYY;"&~%zsB=2UT^xCl=m'hnhE$ /C?5Ū{L*Ǿ~HةcPzLCXikNbn[22PT Wo2-TvEc[~D*LQٟ&zoY.˷t\>qTJ$0-_/oX@˴%K5{h꯶s?(Cq~7 Gq.N~2Øs8Σ~B4_'dWzmX-q-_Aىs 2z:ȝTuS^Y>&eR^}V8\ sp.C?QJW4}? {dxqXwUKML Xwk,.TZtNk=a}~>oT m9WP}"_f^̖ãEOy2H["                r䗐ܷ>M_do 6\.' i{0Yh]oj[3gΔ ݝ8E1pǿ"C{E}뜓Jy7j#19, fDf"@x)i}YQSxQF}CU,ҮE r;u3R˽^գo!'JDYA^ﶽr+ݴlQQf>Wy9wN6)E~pYx՚A65nZ##i|O M qw™R^G1w {eOwD{aeӥrޯT_fL}ߴ]vhg5N?w=ŵ-@|t~qkMߔM"w]=-:M?kWJ{."'mdlw"y|ȼˬW4Z͜T_z1ĔV+{gK^VAO#sÜϑUWsCT)[=R?2Yd6 @&/Gs HX>\L h߬nWpT~ЩwK ,H_6}_"<&oO5=dIoی)sd ~g>8nSa  Z_V^+Ү*ޑMw ?'r}p4b*p=.kxӘ"T'ydQ8d<(϶#2֣<i!4Y;$a_Y=?۫mJ3o[+Ynh95{r!q# S' :[~*(lH# t4{_@ |{_LsLp+?s|pq'SŇC3묬} F%s ~ŸGKdi!nqaիĄHd_)vyqkb!:8fljL3<ëbRߟ2}OTs=R=9LL)[=:E Ө8 @g`ƔZz/ ' "0#[>:44T%u}2H~@"^iZUZC$P U w3 }J1 a?=OSG=FyˡEU]d5wm"b# _hft F{e@+Vbl}T#ʨ(^G253@b2X?T/#4)KfL1QC&)ޟ,/owDv O+s]oy+۠HBVK%8o !(s62 Ӊ,~8'wxd6˘6~!3Lw$7 G7zSܪF34u3&Jz0[˘<^tB?ePExjjԜHHHHHHHHHHHHHHHH 8wqn^;o6S "xg\m+/_\ +N*#`O}ॡ$ƶoDo/AD \ɀvdRвK2^j 3D +w<(W" ^DSn{?r"S_:"Y{kOoءe4.Z?; x^C*gp 8@$&x[e؇V^ԸE۱n2ӷT:/Di>Ql?D_1Hm~h'+Jy}S?K,}lv=2˱-KDX&J '0ee{!:P@~]Ǿey-%gy%uTͷLE•d_ %0q}32KcOٳRe/~)%B$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$&>zh_N Caq-[&dF5Βg "n6td-n`NY*k{qX99RQ[nK$ ˺E \& @c4MߪO !S!3wz"3=,](}߰qOmhrGo/<\itE.[J~xHd(o@%<^?a_oӏ.n,n&L#l^\$\oE(_n&koh;՜8&>_ʴ޿CX^g'4R2zu}ݕrssg%oƳH$Щ^ _xA@O ywN`}ڣč-qC{!֥uVVyR'%3O g)L=>OwﲥE9 8K5@K8pf0FMdPڝ_qŹ<2]\vᔞUe]NǗOTr)ȗ.Jaz)Y|Dy`#xe\GdNAQ__!C"$k%%wo//-WOyU٠;&X,`('>rE>5|u|fݱikQѭd5ֻdG!mb!\v2'vS#ϗF U #__'&/y* m_~ɇd!Ւ *׹Uy4 #θwnـqu'y+TG$@mJqUvty<ܿ`Ɣ3$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$f./$     pan3Dħ{Q#aZzk"6aa6s 9G9. >Lj؇ %~d keAVc&QvdFA c#XCR;JOs x;.*o-gb7DڐU>2TDxf  v!PYO?HHH D*Y                 Z 8ThZ'-NdRկ®<#͙[@Vd6W{j~I}7 ;'/yx d"2xa3yz_p%rdT|pDrA$}9E„tXx°!1z#)ySn)W9e?d("m4jЊ}2 zGK)i휾?W#ZëpO£RLK Uޏv}n(h=w֜0=l{8ᝋk9'QHu pʼn྆;[c| ϛ517i</GZHHHHHHHHHHHHHHHH ̰dx"P2_6L)ؗ#2k3`^h](lجmu!1^qr Tzj~I}rf? X7V1ꝫ?L"2PS#/wU?D#2*R0]YWXȜq/`2`rDB@x 4?~2x2V^SgIڕ#303?> sBf QPh ar <~#kMKd{?S K piԜHHHHHHHHHHHHHHHH 'T/ݶ3?~4< ImjdPco ӷ}/|HJ(@rla~ըtRH n>/*~!xZ 2c&A9%z?ʘ~T*?L.a{|l}ލG 4hG0.OD$c2DBrv[_oَ `De+zh}a^[Rϓ QmyMݯ396/KeM`M[W~_b WKMRFE?/pE,iK$V,|i_̹q95̃NF<8ƻsW'v mz{]:K3Ï2s=7[P?^f97_(Sy嫷O`ŅC8,n}8і/Y2?BSߊ#ϣ8#/F΋Z(SfUd*Vq                 ')-Ą8%rdDlÆ Ryaq9s900 2ˉvIe )T4_˱Q[vxͺ>:|{ٍ~H}BI$z/FR04tЈKD "".~:rFZUgϗk7Wzg0_Y_$*`'"+9baDY4rͶG3u;fGDA$ZPWd,&qi<`Kdw^/c䟶#`yd {yR^ "s7iD^3]# WѾE:]0,)\Ui &` #|S&\>qȉQ8Ӽsudp>y :[Pdʘr;,<\sWy٤o{>b @ <25Uz`79] h=2bç-ާǼΔ@?.#1zG6> Z?;DOuy_ ޳HdWzt6~ب8 @`Ɣ~SU3B0c!w$_V3`^dL}q_q{UwƨH>MB?$(HF:Et 9o3Bh32: r0Q~CAĢC?E0q2d`@3z_$e{zmyFꬿF|7a;5z_S`XGTԈJػ茅RzfX{䟶#KC>Eϋr͐rQxqI:M1q E:Gq6^#nDgՙ7.Y+5?]Ȑ+eڋEz:@oK{~>' ]Dԯ\ݹѿdpd'b'?_Ï̻Y3} 8g|F =TOWSsy80?"x=T\\O?>=2,V_yswp}*tRXg?o׮SouNo 5&BX:p+Ѿ>ȿ'ھ Mb;WFWq)zS@锾#p!<8g~\i<@Sbm8]fz\f7qp?yc"|b\:@v{C9HHHHHHHHHHHHHHHH 0cJ4Z6`EܹOZWӒyW/K+l}A\2^oqixv_]1o_N#n}5EH]$"iQDzA{Q&A}D ߥ/Uґ/߼CDXFc~g3vsG_ÐXeE>XW\xtQە6$0n㕋3ũ#!B@LJKT3;,C?<?D2b<ơ`zK)@/"8#*|j0"5aǼ_^u(t9&HٷfK;<7_פihMBIM'З%6jX &8G]{Q& wF RuΘ{/9G3 m~]7ӀU_}"qEɬ'ε2=\qƵ NGDp}M31Ἐr?pa5'pnt+˨ƽE%Kё[Oπc2π/2fxT3t$* PX!                H3"[P1g3HY&vvï˗U===MS"X/ TzEkbK9x St_K"0^1;[dIv"" Yw@Dp_w ̸q*ьZR*u7G, !Ԧbtٍ.S ,^,wX=_G~DG_\rl˷D27mʸ:ctplfXtT#Y죞)׮zGQdx|4 7`@_ F|$2/9YGIXpp?A=$ڡR#|Wlļ ^řR>`[~N8:٬ʩ_-S({]a?pݲ2nl˹"{V,P=KM 02<؄?I6ٳr^'M [k!p_SB[KQǹh1[Γ=+T.Z>-?.]?oݲHgW,ߜd4dT[ݭ۷oo04[vn0Lm-q_q/_[vt>ޯtūiWLk_zߓyE#SPilyq}%ȨUI}uV=A~s}G{-VB3*-bswv CF?9ԏ@S,rْwݏy{V( 'NI\.ʢS5iϣ eq~Qԟ 폈g[F}VYsDJ\own/Dx?\%b"rP8dB}~x׶ۈ]%~^VȔ>G?̃m22@y'Ε!۷Ў/~߈:(2w= > yy^*Jh8\yp-\iz^GFApd缔? 9cىs{o/vጛ9ewT )<^9w;ЃqXwd婃Ŋgْ}{[߈lӌVw}V/xM8M}%79砂+G_qD|=2ٺslp~vw6wp eZn=/@?vdp vv=B8ÿHN~sO8S^+Q%]|"h3{n:Ɍ)x                ) ̘e@ hL)Q~X?ѯݥ]7jݪrzc= t2{먓wٮC=NnegDc= ԓ@i:3)"UL4#>@ cqz2.0'a|;tl˽ wsu5yڡRn` 2Ir;> xG= p( o5 P+𾀗ȸ2$(rj=Ex@yeKZE7""QoC$ơ vCB~ڽnv =Vz}.bӶ 1/qGCahGÍy(% 4CG JrSp?sfgC,dY[5{~25Hywl?'jۃ@}N TxϢЌ8zezJwA1ґ?31N ܙ5 @fd2US 4"P~<{13s8,)A7U7ңPDc%`} ߢCvmAD:淙S0>nImF lOg+SPjJ~ i ڍAsT,wg0κ!=uިvp"=.c X{:~>Jx 2%2xn_Ao~_# HH!xQK~mɯ6~MH`5>0hEHHHHHHHHHHHHHHH:Nv>߻EHd 1MuX?g ihF&#CHH>2xo2HXCav!4Gdͬae?iHt"ő!1jY N/.˽"}fqvpuDB5gR">uAkQ_?0>OٚJGN4u$c߁Z 6)_~+1p2zz1[}hGR/^>_o^"wca^k1:.LPqHp 8cbGka/M:S;QC/Z.BySs/ e<-M )e{^=Յϩb%_~Q @4>l!                0cJ"͊Df}s8l]% ?~)~7k}g5x}TCcHH\}ywHD4NKA&eP@ -FE7"}$7!8R3?9y?EnVoEKC=` S5mф['kߎ"q)9Nv#9_aߙj2Cy5gU$ W?y29_oq_J_v0/$Ge& N+Zp:ý~tIDs#%H{Xs_ AVnJ\+kWڂ]}X}O྄'8y<~]o]&e]Sih~xEywkH XXQ TWWʔ}}}"Ekzwk7M7ophr=h墱$@$P7=+m7țw}_d&ʜx 2"A C$" 0~CX5{/x/~!`ozDO8=o;Rӓu1\6 &ȸ y׀qh 9qC j"3 zgPZFf_ny29Dz}V0Xw'oY_J2gJ%*LLO]eetxxT=+'o;SȴMrD .@V\Lp!My?h?,iXEz]HᆷMWoz $#r"uT$"Yqlf9ů#Dl֬ yfEnFe|j2 cvaj߶%`2dX?l=G(]N3]Z,=Vy\u"u}8sb|odD?[^>grk2~wcqfbg0 "k)TЮ?0o]~)7Tkw<ȧݗ9uxTF+}E8|½g&~zΕ2w |[|/yFR[9isqL<7] F]ϕWߒr˜y5zp>h:|tCh @{H/Oe^h?###$3ZQ "7?M%Y+i/Yi @3 76-"xȣ.c2]&dA.mAύ]E?dPA퐨!EҴfMȕ׊~J%TLrѱω}`#b}fK|fvd@/c#wn]"q}Ha=HCm;eĐqĎ棴ގ!Ov?(f'vgzuǾA{E{\?}>8 Q]]kH:=oDŽGy gs0U#|aWScI7'$n~Pȗ'A+'ϱJ[)Wϣί˘+4-\_p~P9ۉ<~>k12Bm@ޕ/}ΏO $iF)դYE{HHHHHHHHHHHHHHHHZd`V?H ~1zxX#Zσ-H͡;*I/z;JU-4o)|㺩fprGH,OKq[)eHqOUATL͈9lA /CU1Vl)!bk)*5Erb Ho(Sy嫷*$cˈpp @!"z'fMdLXGL r8[ '>yUqE(Ox'ߵC(IH# ~FF' 7 C٦I/O ?O=ԋ'M2c 2cfLIN Ì)a, D`Ʊ1i ʴRpMۈdžU$n|rӣY=K4K`; @F-JE"r 2%SXw/׻nM]"CeЪst_&B>d]p" m˫l'E/>+x{a>yC\??%L"5,}<6S~s|pPQ/~^uIU=ޤ.K/{kI*E~sy?ڼZvг Z '[}8>{5va~|ka| m2.%v+}/H#iS Z[D;TJʰWJ)Ɖdg,Q9/e-2[ڟ3~0_̛Z(B2oUj!?P0!ߌk<%:T@!C&6,5ݥ1C{W+$p7o 33\n,`m3/;ڜB%2N97se&su8vJ#'yGo1znw08bTm'ϯ?g3n;W+v A3bhc7#_ɴU^<MgJ'I֋-8Y;'T[D@ƃVQvK`˸|з3 " " " " " " " " " " " " " " " "0Ve ZF5k\$ N6w͚MWG$`19?R=Swsr"T^8X13>0)F(+{6i cA&]^ !C?K&TfOJݹTphWV9x\ٔ8۽7;;N6WŲJ0n*BoY;S!^Le8CF>%_(=7:D}$vy1kֳzWzzm9ev" " 8a{8z}=!`oi+S#5Qʺ" " " " " " " " " " " " " " " " "#)9jpؼysxjjI*CpE%oGsJcک$vu"*;" " " -]ׯ-NR^9 %SC&'J@2~beP!g֣m @~U%UonV'B6Ԗ7m?p2VJ +8$8Rh[>3 AϮWf}7i9yQɦ G{:[*J)Vӷ9l cLԷ)װE@ƌ˧]/;_gy1p-h{`N%#Q@>5" " " " " " " " " " " " " " " " "p*toذY' gC#=[qб:?R=tN?栐Ng3$C&1P (ءj6_3?ҮKb)jJ0DIńNQɡG;>/mpS1%ש)e 2?gǭQV1ZX?D|G\~"u 1"P|+߻յaGsw { vb"Sҗ\KNN89N埵;]G*Usqny r1z-TӬ_b>Nj>]~>q}Y2߾?7};| m qO}**)U&" " " " " " " " " " " " " " " CL`)qJ5~+;.vK}Wᒊ3~W`TR8{GqI;Z=n{;BȾ1t~?T`^ .vX ߯_By럭tQ[Eol~~e㑃zzeGKy1t _#pa{˱G?gpm9YqDǷٽۜ_ͭsƣ[ʔcx߰gX?X7~tG25)9P閻nsm*tГ]{ӥ/qrzӜLϸULg#JG޷U1% ЦL@l6~)?".YIsoGmܸmlGa333;uMqUߏuדzSK_w4{# EE D?3!dD}&_K"Gf)ء8~D=S,hǼn8Qϻ)v}x`d2>nz  …@s@^ᚺb 7];7XmoClw[1~~?$ @~?`ůvUI'N=;6Zq.Y'5b{>wkӝ\TȢlv=oEx6vY;he6?7y۞3,3kW@>ҩC=qyǗJO|>ﹶy*_ڏ8p>ω?' ݻ?uSS^a Ks,W" " " " " " " " " " " " " " " " #)c+" 'e˖]fRBo05zQŔ)OR,' lx\q>a:lSɽ߹ř燊-Ȓ{jusWt~yG''2N^7۴<Y2}ggtz+{{z?<2;%O~~bq a[=^qdz/q,w׃r?X*g%"  XZkVþ"7A|fv_UyuƱQm~o#{>:^~hRYkPŔsE," " " " #C c[ ,*uQVQLf TVyddzȘXy^Zhı< ccUfU_6*xѓr_9e^5V[8TB *%y$Y{63a+>IfkY<3fx~dVe~z8ξܦidN;[2Y8h3Jfczec+vG~*TXv`lύSX~UQuR+RxwE"0p *៵?vt>8Ty;:i3>w,~,U{p?2s.)ӧBJEcϨu< =/-cNʦ%xf~FxbI&>0=yC~:i(_*;%ckDD@zCjoժswcV;_kz\>z~Uq]rR" \:a<(y昄0E@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@E`U/@/l޼ٙrJ)|,+aq'ЖMKW[8kQ%2M%-wONy~McJyC^ + dtgX"ķDb,C+gĮ=[9գ:Txq.xXb폷d$qw:^v0Lyf:lWrWI3QhEvymNs~}j[vŃ3~[Ǯ9 O%>S>V9T&}G&A_fMKW_ZFD@:% wE|_srYxz%p^}<|ma'{KO5XugWz^xlKe5D }ڑ56d6;dn]Xu(C^}_m" "=IgdÆ N:i+gvГM3}[>^ ;䎓 eyxzeU׏XPgvd>X7o zI@υyXJz05Do vH Q9u!oů0N%4QTN{Q3M- + /Qvv~q0oXs{ɝ||ܶON=ul[i̾Uğ)3aBCڳݻO~O^pO;9]NM=gs̢ Goyxc/ ǎ~=g%~Rk\g~D@Ds s7kI?u}n2_x>vr4X'fz^R[5{~sijc@o=]Tq&*g ]D@F]333NNnݺɅ'g͚5rӦMNNOO; T%G=ꨣzYGg RF!liLf9RD78Utd Q9JT^&~°ӎG? {;d/ 2#3)(PW;򫅍aRTB+xpcxMfh+ %~aO;^v|߯~syw8yӷn΅GJ ^^'}pFs㢘XZy~Y}{e;ϥ1*N`ikϳַ]{I>N=׾R_YgzN֧sb8?3>_ܗ_%Vux#?qW6h\`hCzVVO,#`>E-v:{Ws۞W[~I9ؓ%^_Oyq[QRѝ#rM\Dxwhv+ܱE@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D#K  v4Oʁɕ #4vq:ᛝz?@wGK L׹9w`lţtwV8;u+tCƔqgE^<> P)*Vp񘒬fǜ*Cmyݵnq8ѾB…6Th#me ?@%|У^c .5E> )h#DIH*hЦm]ڳZ+q/jg=Guie";i ^e'-c۲ lѕo8?k53H?zx*dzJ)w}L85}y=3|¾Ǡ >^Ƚwg\ߐoޏ |9׸Sa 2zOY}4T){>C%2{5_i^Dm_w;<}i;uߎ_l\c{;AxGX/L UF`ת" " " " P)eƍNuvv2=|ȥx2O# 4sp T6(G00uB؏l*ȐEĢІMv\2K!L2Jf'J j#."H2x0ӎj~_i;#7| ~>Q؉"ۇ9z+mO4ݍs&/86֮C|?ѲGGrWKD@S2cfߘ^:n+^87S{8YЛGMcX[P)" " " " " " " " " " " " " " " " Xl:E@D@D@D@*C`׮][) IU|Vɑ  ">q٠qܥB eT?3P0{喭,`+ԸA'-%rJl].ӪW3쇝}daXekkB | m~>g0SkQ)#9Z?hgгp=r~^gVJ/qգx%ǒ@}oV=UWuFD9"Ǒht o ZToZՍ^S7LD@D@D@D@D@D@D@D@D@D@D@D@D@D@D@* yq e˖\fS90j%2`ai\'bVS* c,Vrm~gҪrJb/'_[UPAW-Wd ɰߨ%M*DĎpa̾oaΧF6Ε۬^Blsc"-_nvcWbq1l?g^*֫>3e_)/52η^]u@Ӊwί1~ێ+ѻn@[U%Pn&)ý^D@D@D` ,,,T5D GaC%_1"**uQ)d毴rJ3Tho+MԮ}me)4!=GK ü]D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@J`ա?_N/# SR2 uBsi WT7 +d0+smVPIo(đz}`?YY>-$BkǞ۲ss!oֵ8ўAºلX~OqÓ:V?>ayH# wYWJ)W[D@dPUݿ:-K}aV" C@SgD@Ɗ5k\ N67~9X=qyA*mlTF f,z6a#NF"3ڃ$@F9QE*߄ d)yCOuV'``+PSvJOq-ҪJڳyE>/z'hIfɋX'_) \W=)c~@@#mx1]|{G~U[}Ie]ktJKR'dL*J:y?cUʟ;8x`}" " " " " " " " " " " " " " " " CH`C\8͛7;R C8GC[r4 힗ѤD`y?|^~_[ 6zE1/7߷qآrJz/ȹp ]Tl˺RVŚ" ˶lt5oqVusל7H֣^*E/]Z^͎3Ԡhσ~Nfqw8f›;0c^w}/N*LyE}e~f%o3ARD@zB9ؓeFe"+1=\~c'o$ )힗kʆ ?8W~R.WWʟ;}1Ů? j8ܔ" H`rrҹa'gggR3;I&}ou^F y}Qo~R喝b>idCe$Fo,y< '݂Lr**U_LM=-8[:7%B?ܼT >/jSkԮN䟜 f~ KH;JnaiѮ|J)<2pw A<΄ W/ju:mN=M:ޛnp1^УL>'SkOĄ|"#ltj5ur?0\x8}&'hh@Lh}$tAD.zmϻpw2P_Eöx? bʀ7@ˋ(8x̸0?|'nB.5kooڴOOO;E}nu^80Z+h:ys$ 4aYe,Syph"%۷*` :vE1\;?+ɛ0:x_^/ZwI>^!=-ʸXi}jg%۟Wɛs?*{_T^x`]yx}2w`JyiqNffӥ/q|E k Vr^^yNq0fIe>.=kj-o߮?t;N儉y#}K.egzz w0+c*0eV a+`_~^f7_\^kaۮoՂ~^/g^nX>~*"?gw/la@ p 1?|qy]{!}=:{ vtibW>}vfd>~[=7IR~Ǟ~ILm_v^/NrN;DturzNZ;IjX?UE6gٽ"P|AwxA=T`޻ה[w^,CL@ :i_N%hƍg} _p֭s|&UexAřa?/]@0GȠ^FH$))Z2I A2CɠqZXNeƋB /Wxw=$e>UGF)ROogO~8Wgͫjx7 #&@L?MElfLe~+e9}{/mN^w xr vݲq7*d릺WgOBʏG?V /{>a7oΧ99,'gk?'c<;1 zVrRjJ+ݎ|3ҝtrj. (_}ϿU!?7T@8 /^r y'u;})?cRxnpЎ7z" "0 Dn"vt ;yv>͟\DLƫ:l0>;HE@E3j}+" " " " " " " " " " " " " " " "0Ve#&e˖\tT@j6~dZ=Tb ~~4 +" " CK dtSك62MU:dP (NZ@A;ŸBy0P6N|gv5_ u֡Hf/U;KF|cuG*-{)?*d -N+\~ټs8`B;;>>oԷݪ ڭk?6|9/ σ7ow.Vb q Vϫ5SWHa}Wjvoȯoa71O'0bn_e8<ǎ:WDn+|%?s2V;U[A9i/Ji@ T0\+CrYBOגqr*䔖VڱUi[?mUs>ZGD@D` Gz!#*[|ײJbUHr Y8T($ KCkd㾟Lw2fTzA/wG4: +v2+sVvx*0hJnR#JG{=U#9A7I2YB Ӌ[9.)6u^:ey~R d,k5 U\ZgwS]f=U?l~ɴ>," "2\qe5KD@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@J2J4-" " " " " CB fLcxVP#ҫ}.@*BY.P(OH%GtdT֥G62lVO-m'Z[A/wOoM;+CyOy8/ݻߩOY%q;\by>C#_9^v{2n+ ߿J)xe{V-zWJY'SGu*x/ܠ?!I ~x;W=>'h?^U%~oUt^e b@IDAT ߼5;ZxVM'" " " " " " " " " " " " " " " "0lV WD #0937l:ggg73Me_6~wx2l;&I`~Z"{dXbE0dթ8b&Ӑ)y8Tq32cP^Iē =c.+D3.rP lt*%t';~?} sCSSOArrο=WdH:kB1K0`: W3Т٫sbٮ9|9[SSf? p^vr'>9f[1&y\eA ۵~eRX뵫]yNCx?*a}sdl^Y<8<,74tT$E@D`  *~E?qnhg;/_~ə ;yxpy2\%oK3:+MݟT:9'" " " " " " " " " " " " " " " "P=Ktrtџ훙+Wm%4qum ugL4zXHM>Lfs?>m>뼧w>vaR?o稼~ތ5}=z- =u`n˻5'^kwH}msq;>[x];i&Ua,o"Wm\TFq֞^￿T׎Hh5RQ)7ͥ_zRJw"5Կ(ڿr׼K_j꼤`3KHmosj~>OGHODx9,0dd#d$aF*|s==ѓC<_q)Y6NfWȼ,vd|^xع+oT3^4 ‡6\{nyϏm_p~^yr~vjtNNNnRw*k0&IQvZlP6Ne,No;1Set%=c)eu\y?Ks *-|:_#ܗ%jy{sݸ]?HKH"Jz"Gs77Lt|ŔRElϒ,Wg/~_[bJ~_W8Onu_؇J)dp2J&vY:y]PŔ*>w-lNjk$ڿfl{]= ;K r3s/n\qWz^R?ay^; rc0}9Ufz/znٝa8e='itH`URavrJ)1dh~]pRhtRt)["a +<(J dNKōVkC;dVbEb9m$i`bBExXSqrNcS oHg*d~pZʰpvwcg;[;-yͧ?$q_CGO}ȍ?ɩ)/_5d4*,yGs._vF?BڳM`N-(Z=3>gXz]]ܴJ)yW>yTy[ծU5sSkO*j޷νԵ7~ޛ |hl?w4֞nfT9n~%>:/wpڱ޽_'_ovI''/_kOq/5' " " " " " " " " " " " " " " " " "FMJiVD@-[rn|h6{52dvT1%s3s@_n ?RP h;u_rVơK@L2@Y$1:8P̿ǽBA*ĸb~O]94+ȩ}[ukg&+vVƻj[qU1mWPo.x.:b n Vgѳl.gؑ[ǜ24ZZ6?^~x|[gbJw"0xK o\zG 9!#v^186g8:/9g8do4 \OxۘSMV)I1ml~=W" " " " " " " " " " " " " " " " "PJ`UD@ƎB.J)9ճvڣA=ҮkZG'`ϡ=ڮkڲ-&@yB"9D#2|l唾Kt*)9D ÏLw*~3 Uûy9[QipهÆ}YQrSF]|<ֶmEdNpq?2iMU1^ E<|;Ɵo/gdgn[nBfvV)̮`$VH &#"0b!vX^);9ޒ}G;ezUM͝}9keu~6NK|-4=EoRrp@K&UL}UT" " " " "0L2/|d/Dv*e*cؼT!b*y=lS?$N)q^_Xh1|0έ9?]6yUdk1Ljwƣ]dku? ef:y/H:<`Ƹ%_)h5|s'Hk+۷<W91 rWo}E/"9UL霙fA`kmJED@F5k\@ N6wMWq[=~yS-:/y3Tn+,PS"!]xZUN! d`UrJ2LƐW )5讬dqJ *̯<\eøS|7EPZ[N>$J 59ڭ﫝m;;/w8Sfum|<>CcKvFģ&߶s>dLG>ޱq͹2CRD`T seX8?nrhNHpVģDsr^+=/} ](7IޛʬT4K)CD@D@D@D@D@D@D@D@D@D@D@D@D@D@D@E@SFD6oVrJ)dN̻*vhK@}nV*EdSY"f` /3y4+ԃlWpyY5Vcg9x̨GNfyPyzGow3fLf*TJL៥]Scy˜z;rÁUvͿ?>L;1s?5 ym0'Eeoz372U8_k:mq%WFM,7U,l s+GORD` p$>Qվ[ozݹɫh_aqU9/2.Aq \s\ǯ_q|o=ZSƥ%^)" " " " " " " " " " " " " " " "' nJXktmذY'L~a[}ou^zWKwHR(Ax‡ψE3{I _̦HH+8ƼhUN!2K7 B~*IDf #* SW]|FQ[NլV{rSC{v?ݟp쾱˞a'7y  V @.S7.2e{j| X{dA<"ɵ{9+9v?Y}yq H #PdT*ۧq=~Cr_,Clgy,4U;/yeB[E'W?nI~us1Y!F_?" "p'?|'n‚fwi&'=$pQG9y9p@a!2,;%?G7J2>JhFƌ鐈Mv7-U9_!Xi#dzJ3,m?qgR18T r ZȈ^dODS[Ps׾[!36]ۧN==/ex^p?zHqɥ/r*yf涟W{_|+s-stl<l쎟sw}ε-'`d "짝ϣ.D@ZXG=>/3;^Pm[UY'I׾przNbgϩ#foPeTv^-㟵ͅL*dq;ﻟ5&8/(~e|,z<ky}q?zpZxv] {3y>M\djsx䱧sƇIPmkw>sVN=gHnz/8|^ܚU~msk997CV<OB0]mcݼo'p ,↬o6fyQ)y25J|*QR)%؎1s];N%:͸78I&eG|c16k0Mj#xULiTD@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@:'fR:13Rg0ގU}/jeÆ .ęԡƍَxS^Uݏ::lm(j?XZ*y2H5BBH12|!q2 >+L"{_:;ǿ칛xLQǕS2/ 2uŔ>RY\ʇzz%*)=_s`2.#۟gp_\xs]_Pȍy>ԑ/;ω6DR]]Ǟ|&S%E``ƯbPڶU:hW-hJ`eU_|\/;^ JJ\xS^Uݏ::lm(j?XZ*TŔ>*}DV]eT1E@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@"ٚ,"  PN*\pnɄ7k.gYUϼa8*U5sLϫaQ[t |wd:4xO[=B32T sWCNb3x7pkrJv<<+Ϋ'kEqPo*#O l*{8ޥ|Xlg>LSklMW=?gw@1`gS\Ԕ^mpˑKxLqXߥm up`g?ꮲa*yM?s6gŎUJd5 sk6'ßs{ΘG=g޵1NN}]Hm-qj^wˍ<ɩ'Uߵ KU;/pT}?T['kq=a]h?K-" " " " " " " " " " " " " " " " +"$HH_k4|fQ3lVz~KUڏFz^ 㮍7^c%|>ڠRr d̀^#I%2I ;xl3n9b|./|&*@LRzA ЋmsF';&U8κN%βGzIո8_!uSSŔvhO)ӖI`UzRR .,,pYiiq9oy?2r.myq cvyxcB%nȸ'Ә)dNJ%%]AHmTr qr VN@r!6sLrXngY%"9 թ,a*8)oq3ngɜC/~xlW?@MaǎWWv`:6}~ p9槒oߠ**^钀_87܇"N7o`sH?v~_?]J&*ȥ6;tƍCE=G'IF6t#5^O*4QM ]H:t9D=e[^gQ(VTUTn7FZx8| q+vY Vq/Ϙ]`$+AR 8m`~$y4$E@R~Leoq77~UW>'"-?֐拀T1p.Y^XXp9ͦD.3mS_~jU*(?D@D` H-E>}:JFL<+Q$=oqw?5<@OiqDd+Ϸ3 mbg9tY]3,G9y;@VQf9qyŊx~n7^)[V?$gr}_s2{O&}{. |ж+䟈~m@ sgq7}?L:XOZOU=ު'RFEgT[9'" " " " " " " " " " " " " " " "04VS>唡/9*"Pa7ovMMM9IOяavU%~V5ުW}_" "0ır,flϷ?R xA *FP#hE7W@?5`b^*cD6+'~rE]'U3~J>T`<ʒ|W o17z)/{/9~ 2zyp_~Ơ7ߓ.{㋝W__-o{3߶?g:uaPjUO[>PŔ>@" " " " " " " " " " " " " " " "0VcЊYD@zA`rrҙݰaNe~a>]x_ʽ-gd 7B2'gV ̋a8zŒ/ D-V9To2^zi3+^R I*6s Tʠ>a2eY%[Sk윸fs⹐\j?놰cOُ\:_縡O*Iݳۯs>n#gkJ*09eL_YCeWJ IXמ#{+JΈ@ ̽q4n>XSkL^N^wW:ZOphV?o8ZRLqE@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@FF,jUL" ";̌[jߺuk/,,_gmڴOOO;~Yx_S Ӧ)9i*P TX*aȠ*D_~*i#id Tm*P&ϯ?,?9GQ58?B/v /U}{ڷ{[.SYڛ.}$v}$[?=$wٯx8}[wnߏ+gwNO܏Mw]}%OgB-y;8QƗjdKWV?7 *]\9(s8R %E}>mxjq7mfmqܒ'?].Zkc'_n jUO[C("0drWD@D@D@D@D@D@D@D@D@D@D@D@D@D@D@Dl[E=[GQF&ܜh+t8pZ`W͸/8GKU/Sq{>&;iP=T$*$m~w?3ѓ,ysxCEڇj _7p@#on;۷u'Bѡx>}=qi#K Vq<}-k,d` .Q-Iӻhݓ\g ۶/;['oU +aa,DZ~;n}'o8IS~kog99t'יkwn~g?~-'zяr,'ׯvq 91V~f_vNl弔UJ'Q85 }&ug^َZ:?knUnW(~h{J)WqeC~^X'&eo~c]~̪ʿ(| x潻Yt O78۱baZhnw^H!蜀*t,7L\g ewSe7nC}vvcr\ TgԿ6BJy?R^~h/vC%ђyIe ڌI ULL5N_"gnXhL]uҞ3!C6qжq{E:,~^~T~Iks( ?3;<@ |c9/$uZsMqz3z?q2 1͎ MZ1Cjyx_eRWxsr/%{ӛ y.Fc%>xi34Rd=7<_>ydvfb8PŔ#ǟIg~-=mX w}E0GM_9t_t.ٝ?SsU=ޕ rVʯ_繪>{0׼bJoj*D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@CǤι j۩}{)~~GdQFd)d7ßrD۱%)FpF7T #L/XZ29&g/}+ F?z.=":!c?]qmYJ*Y{~\Ļ?G*xioeO"wq?I&8sw?d8OOB*]ksr`*];} [)V(_7>߮~3^j*p즹߹R],>7Ӝ\{Jǂ];+[)֯;W;9`9} z\)Fwzj@{/KQİ5D`~0 + (f*d]i=HPTu 0 $k^y?9}kj's[Ͻ]]Է{N86vεdpׇ|.O[5\Z*=C{]{v_i4w\ ߤs[GG)6d@ @ @ @ {̐$WeN@[Vޭ^Z6?Zf\8kǨ7m˗/O_Op57ĮybWQ-R|䷴ tK^[_Sk+__gw{;h7s}aazO[Z+5}}ud\5m0~~Z"^Va<ߟ?w?M?9/̈́5?94Zƣ4or]ݮB{v-RW",\w([?B>V~}WD,\x wGM看mX}? \ qNwwIjB>wfi.zQ8WAԐL|wBnq}a!},ꗤ*K)ʳh|,: v|(s[wt=;hϋ~ {xX^mͿxҧ?WwK5|M_7w[?T_ڥUnz}G{W6*jM״~w6NۅEϽ.Xliߣ_}=Zg?LJ @ @ @ @@-ȵF&pK)^R54rLLQ%w/ͧ*ݰii7kGrNcoZnU9i4tC(V:bJK/W8% /_|KdśV[Nnauϧ.[nhgUN.~_Qs,<8[X#_jۖWyH*'Dϯrm +o~Wz|ssn<ޞ_Hߧ~B~/D+gC@;qŭYr5-M`Yl-=O7,\~M/}.Zx;RO@ @ @ @ E"n E*b @ D->_2R8dS_ =|ya9]NjA!"{[Ib,7&-$^_[dMgv=K9,\(ϩʒ(ǯ/uRohi;dj娪O>o~ti{ꖻ~^~*rJuׯ}2|K蒳"Mڋٳߏ_딫ػ-$r{K;Cϯ{Ç P75].a.x#ߦ׷5i:?kz ZMkri0 @ @ @ @#XW+|5IE˗/^:-]5k]ע %B`>o{Dnz>5~V߁*_1)|Sje(@eP޹uG!Y:,8'/HW<ʣW/ssXJI+uԋq@f忛52rvGt a 4O;[jFSu~e( @ @ @ @ P?uϒ!"{Z*s x=guz;~Y7kC 2^hFNnY#M7=5-I}[N)j`$4HX^{V?2h:2N+ tDv3-,tV 1PO(#[Rgv7#R[[j9}?[57;r;#M9hbgS,xrOC[>~i"~zwZp!xy|ok\|@!0d)=$t޹~ɦjg.innד;tf7|:Ѱ+K @ @ @ @^xU$o=Tz֞x3I'իW[o > ,m /_#<2+Vsu"&[?w9+h/~L-,XhۈΠl2ݫZւSMUg<-Ko{WU\5ZP1[)z]^eePO1]ô-JEÛ(VG(3ZTN:\|\^nrg,a,Qj1cP )s~VwOC}mz?`Cw;K{W}̏/ _כwᑇ<<ײL_zG's<҉ϯ{-ֻWqāתrCPSI{pxx̦ 4K=zhT7o-kQb&gɥr ꇿ`دepR9/5sՎ@ @ @ @ 5sO&ܽrdċGyBKZ[nZ}}V{TA1(A@Osmn9em)דOWyzi<)-`t]^>au|xEx;c//K}K6_w)A@IDAT%WQNeOtZ7E7ҿCiy]~<ނ?X>9y꧜~ϻr%!I;O|گg4mK [eY(#Vd/:J-GA:_x:q-aiF~?:רeߙĢBxEG~j^{V{TA1(i5:m#/ @ @ @ @@c X  [o5{e} E]+WiKzm׼_^\lxo/v'y WWz NxM{kWcaggvnI-m[$q s"-Bv neyExz"̷Z+,x%ɲOM),,͹myc!oR";xO xvӊOX_O9{۱4]y_qUZoOtuEoy/`:s ^Gb~i=rW׻O7| }@.MWkW0X  @ @ @ @` `1e o"CX Wjܓ=>PF=hp$4@|d_hS*|[NlҢXv~O wn[h O0|ZXGaWSZ9UӾ,ۺ;ִӺU+ST R^܇ Uy|zS1 n5 g,MCj9}B9iyKZq=ߝޯ4O~.H(%M|xi;r^Gs^|AF8kR9>%) Pa},bNPs8{묵?[W-IѤN5kt_s @ @ @ @ !V£ҐD-Ϸ־YZ| ')Ҡ(} О""\nUw^*S^y{}[4)V{_Z(+Mbu kb|Ŋ[oԲFwym *~?r‚JPn$8W-!Ї .oς_ŔYkԷԤsݵR7Ŕ  @ @ @ @KK>Tj&R<իW!>ynC`-7%_=mS[p )rJֶhmrJ"[BJ;[N)󃶟~2__XN鼟B>rJ|eAe!~g<~EW4mi}қSqTIL*X\8J[I-7zϟǮϥgZn?m1~TբN6"9Xo[z}zR~U~$^a-xFW H ~T@`A(~7DЙN=-H^~  @ @ @ @%k[9$ @6_yZtnZN)VEܭ ҉[ ų r!V iynALѶ@J}.gj#]TN6|ݯϟ)g^_8oIa!(otRJ57,#.&|mBfLϝNRlal @ @ @ @ 0֝uX |pzE5k,DhI jJSߺe4nRh;ZI@ @ @ @ 01XLZ28{WRZ96}UD!}vIy];h[lꪧC}[ko>N,V{\?k.n3[9w}axGzW~m9Ϸi+-" r_^DOLd 5YK- bFlJ%_^^W^|}sڂ{ phXȯ%)oO _ _ۃ}ޒ< u3~{;XKjrʉfX]y[7 ƉXoI[L_:~ׂM+_P*‚Hgny|02Nӥy?}o/XHi]ozg~i,˯f) ]^+,-yzR[PIwFY ߅?v)׎vp_;TKU3 uzNLUn{lw噻OTWol:kWw]f?ҋxpǪ)_A~9zVYHDnϫ,tk{+ޮbw|ꆫi[H:p9 |,PlŒ8H;{(bMy &VJ9j[,<`^Dz ̣R/Pr @ @ @ @hbʘ-)c4o= kgyf8?餓zz$z녊-_^@궜Z׽,ec,U+NSn!X&-TYNtiZP3/?.~wT~we{sUi6Nr~Feϵ,Jlu֊#}bb~i;K43?Z)w|%q-wu;oΏ!r)Oԉ?n{U7,O>_s6no"v|;y 7 ~NCoU[>/..emډ3khR @ @ @ @X֬Yc :WAu @ @ @ @` `1eo! @ @ @ @$0f @ @ @ @N)~ @ @ @ 4|  @ @ @ @S!; @ @ @ @h0h @ @ @ @J)z @ @ @ 4) A@ @ @ @|*;rC @ @ @ 4\C4@ @ @ @ i%V>z @ @ @ 4) A@ @ @ @)z @ @ @ 4) A@ @ @ @|*;rC @ @ @ 4S|s  @ @ @ L3i!@ @ @ @J|zc  @ @ @ L;,LD~@ @ @ @ P @ @ @ @>U@|@ @ @ @ &7D  @ @ @ @` My @ @ @ @0ĻL @ @ @ @` @1e D@ @ @ @HŔ&d @ @ @ @K)K&R@ @ @ @ D~{B&@ @ @ @ )'0: > @ @ @ @@ `17 @ @ @ @R 0*A @ @ @ @G`\B"@ @ @ @ 'VB*@ @ @ @I`~nn! @ @ @ @TbT> @ @ @ @%0ysC2@ @ @ @ %Ŕu@ @ @ @M`~nn" @ @ @ @TbT6 @ @ @ @'bJB @ @ @ $0T  @ @ @ @&0?77l  @ @ @ @`* T6 @ @ @ @'bJB @ @ @ $bT6 @ @ @ @'bJB @ @ @ $0T  @ @ @ @&Ŕf @ @ @ @SK`~nnnjGp@ @ @ @ `+$ @ @ @ @SM)S} @ @ @ 4|sEC2@ @ @ @ i&0O@ @ @ @ P*bA @ @ @ L3i!@ @ @ @J`݆ʅXi_N;-[o$y\ve_mVٮ.wYR @ @ @f\nnV+O!0*ٹ瞛wb7a>dx`Hr{#o~3Lʸ^{mvdR|q< (b}_SN9%{+^1Pu׾]z]ek3)Hqf]̦4/E5w~/_<(@ @ @ @aҰ8$/[guKPswٱ[Sl6+k(&dwӝ%{/yPL#w莯MX:q_}Q 7P;~.-'?I0:Nfԛx{ޓg_#=X35] @ @ @%bOr _B&EY*-[,e]2Y>=O;s=9&I`յ'+GgvmD#eeM6/;Q?zW4Nj;w*SJ 3<3vE31l7϶nYzVh7tS߮NfTQ|{9oJYcb۪U k=;d;SYƄ5kLTN8!{?ge}e{Ghu( \8!@ @ @E`o[N44ivaog#⁶رg(uGdñ ƱI0?k_g?;+2Mv[w}2?o{_:蠰5xlʕٓiAѭ^ !!@ @ @(L ?n ARgnaW?`X)lA?w믿?~OYmY!~_A. >L:ZK\q;5N:0!zi˩m&{C]~׿²[BdZ,%I %V,}kldm[wuo-ֻO_;/8W{W?ø-"/:묰] _a . @ @ @!0K>Tc _XėEYxߝ{a+s܎Z?:.r2YJ/^(t $X#i;)m9%+r!eVWdկ5=܁c׿MPQDwKtd @@R|+C=4EUܽuꕧ @ @ @X]ՠKL d@VR2~[V>UmV? Ľ}`~pp{ܣ*DµйA~x\yJn-\/_,w ͑,}ODp;ݞH'z'Y#vlet\#<7~w _җBp?Ŕ&Y ^\r>nя~tR;VVJFϪg>_B,ۿ[RřgG eiHwYꪫ?Oٸ=Q V9ӕK STxp a֣ЇUϬ(_b2lVڔofR|Vlԧ>5ӖJ^#7 ~i @`HTJw9j[E. r]rC @ 4 Q @M'JJzYUxsiһ=v,^Sär7qSř+w6[\R>c=;d_¶GRX2Hܡ풴-#p)V.Ѷ3R>?_l#-iO]iC@m2յ{P8s=aeBח8^ziWUN9售~4&rG^e1ɝ8my+_G>Mod} @K,]yE%{e"U:(8ך-)Kyܕc7xXqܛ^]p A^(5WbФ[x"އZ-~  8ɝ> mޠ,aX$,r;cvuׅR(sVBb' [neH_:\AyC d)dn 7 Id"u-L^v. {WV6e A^_֗5Y` TSen6TLey 'з]j}tZgIɥ{L[NXW+;bQ,#L @BEYDɴH>mwlv]wmN.vj>'=IE4MkWoyhbs"mݶdV҂>裏ַVe[[-рjZ:m+ӟlٲeam" i03r?iOV( y*٥vE]> [ſ馛: ipͷZ5kjS.m(&R4s),mE#*)w [~a ;/Цnqnr&{]zWd+iv<o6D44&C8cI8=_~,±-nGYzun-X9V7r߂Ge^|d꽙~PaV0y\փrᲔ^PL)#E y{[ ,IAi)? -2GlmſcmGGY:o??i>6h`P duCdeo:KUPKnЭ&dN:묁 UMhJY[L[jP;Ӗ^o[9PzRHcV~l9W<`*灦S4ߋSOQXm*7E"Y?)G=hj\^pTӳnVQ0"GnҶmܔ!rS\(6@Y\׳SLQo|c fcE_mQ۶9!_h!ܔB<~+ASRmҦgeMC:^"O=A_G@``VĬdfQ,]vSX>SͺX]N7@?M2wqvnJEzgS囒$V4?An UeuBsSہ86{6WFxSmaR6a|ڶ%6;z꩹)i aLQ'?ɹ-ˏ?ܬ8um[k{_ _xm<{1*Lr}ƱEQج ;W@2O b뗁d{^ۯży[zOs~5T`[QW|3r8uaQw-z_pE@+gvj+1-kz8Hix#Y(6f&/{ˊ~ԜuŔwOu$uMm+p1;er駇tf#[)}bD,f/ )[ۊܬ({r,hٖ`EMiiUe}rbY CJg'tR=#wЋf)Sy/Ԡ@ HRrJ?5PJw_oNE]T9bJ2j_f1ࡉG=Q-[>o}//d*5FE_q52rsA DK^JQj(ۙm2jqcY $~ӛޔkyկ~4۶*7Rqn;`ܤ_ T)fB*nfŴ% IowX |wIEBr"d8H>uph,ն6_*Mg+VLk0M#3mCz9 "J5Fذퟬm<ܙ%Ivmv" s߸mv䲉W=e|x '?i9նIU[ (OrKfoj;5yM0/覌տmxdFo03%µݖ]m0̬+_[h; 9c %{['3Ř"&lRss#H @`,Jdz{E}Y" Vxb|dca9 57ޘi[Bi%mo}+l/zie]w]r” M8hm{>Y*_fJa_W-bʷd`MqiPآ+;@/oH`(;رC[PŔSK_Wlk7mۈk?̔Kp_4E򰵦xeN\چJdfy$Q̊Lؚ2i`"mηa|+aKM3E|,K|`[oŐo2Mל_B׮,5sgwkn%cz>|midB4Rx$mAqQ59Y֍vU4-%2*,dW^ye}.4=59N{>[|=51t'}zM7ͤFab\:wEtiD{k݃+\qoj],iFL9SSN6lBJ3@Ҷ芲gfͰ+WslfPDʐ>!3̥RxU@UN 4ɮ̶ ERGf]73wWdRl6+x6}O>͢P+${x?/FsNxfTXjI}C iC| ^Tu f/(;y_*k=_җ~}Z}\|řէVRN YJyrIOoӄY Aj~&Pm-\QIJ hƑiq>:Y R3&OþwYF c209ۖiT{I>ۢ:r+-tx5)-A 5俥Z(d:zϛ,ErZ'g";Go]Gr +{59w@ŶSp0)Kٿ=5;-*S$Oif.Er}gi ~~)yaR uXRqO1c*MO/| q5,xP.b~xUXDo̪ ƫC;.(WUAYw ҃f*>A  B\mp?4.Nato}tڞawkĐ_WyJ1yLf&36(L\nYK/4{3VQݬ:ju:rx&FV唕aЌm|(I@&/Yb~vmK.)GZ;MH@el[el Nn,E]IEe7C6fr6jznlG'V*KV]pkܩLlKΠRd>P?gm 42ʕ+G)PNf*W|eQVS'E]2 <^QYYto{vgԌäܠi_AϥeN0yeQd=#TX;֓"(iz9=#UN 9)U9s KZg}_OEAEr nV _!믾R Z:O8Nh&8C:)r)ips- WNz/=^WᲙ}A~KSDo&B5-Np(Ig7XR o4sgº4(Rӝ>)O Vס\Rh*4' %I7}'iVcZ|&*"9UmpGSpQF|uHE `84¶G 7٠Na"kZՉ ic^#=meP" 7/['=qn!nx<9 9lUԀʣ  d4bu$qf'-]=öMp.}_sSFmjnۀrկ~uQ\I:mg[u]Qk~Inr0Sn4aoyL饈8ۇMnܹMim&4Ys[9_ 6 3m#_[=hRAy6_CmmVijmJrDkl:7^f!; '(O*GwnJ]m'ߔYrx(Li+?̬6)Sb81lT0u}C2&:2tn?]M)#^Y^eazNL+?Rg_]Tz~>$]SV\!_׽[$}~M+/iew_] q]Ɏ󲱥8~ԏowUΔsS,}/-Snal:٢Tc+;'OIU?&-Ma4)8^YẘXW|t,Z(' fW4i1u{rlr])NgܟRUXY{L w)7?>cJTonwDevaz]r0K#S|4}QS.|,TG5_g2]*S֒c@IDATx'-_TiyAncu5PePlj)zc^B5Ͳ\$_:NPLL1VL5 mS]omvroӎ:>^|S|שN8rq^ֹ4+,A j\A&M&7k߷դX kŔڿm;ӎzR2)aBȬef᳈鹍}iVCNJ8ɫ~:=qfA)W9=U~rq9>KJ[\Rйy}q> I0M"iZtIܝ;/}/E#-nSRrUuY'/KJ(zwND19E<ݛ^[DضaE7A]pE*Cw@Էw&9f8~cJY{W@;TǠ_ŔS4i5{A?3\ukkMm'F+զe%Dw5; |-sZ.(UXyE'nRիJ[6p?c@Xe :Y^q&z'8*uEX1E ']w]ܶ+V]~[<{YByX$>^t,J )yZ/`.! *xy}~ gS03ugb\fj~59 2'Ao4xz3nwY⾝V=eʩ/)e+|!uR'#-ޫ ޗaI"Rh/VX[Qc%x}3 }zwK˩R&TuY) zYWUN}K?[ĶU.ޫ*˶yir\V:W_9,f%_c>(d!Kc/}Ksk|h})~Kx[ ?T1Ee )tl2Mu)2ץ*d5T.;YI}LP$GEX8(Er8B1e6T25+w/ iP'V=u ;P׊' ipIթ,ۛ;\OiuL9 :tCq|)4lMW^L'5QIJ_"⋁|;B$xUXFiW^p@!xUsuW@b\#:7XxHkO'_GZA,zj;5? eSlri$f"3c)N9?`tW:~U~B& >LԟV=iPBٱ'/W+6d_ӊNA]`>=ϾRl2GfY}BieHP9*hN@ybuO2X1Ul2G'Ѡ,ISO?xg?J[y2*~\<ѻ)I 4A8xG.evv۪˰}agu^Շӥ)RnǍ,VX^N} R֗v;Nw⾝&/"T?v:Wkb(-+~uʔ4vr ngIMZ}gұ^uQv=#GDz#ňXYl".k6 d6QGݮbw z)e:ڲ|trDk8@uǃ&g>a,zH)1J˗wH~L(NYJ!ESx bҌΒuPjЙ2Y<%I߭XENZ(wг?oSr"y7~"6@EVBPLYztH a-2D/'QGaU ѱ,l]ftmw +)P 6i~e7]A+}zMjX!MlI MdKIF.6i| I_&HiPi`8VJӥBY^Ml.ћuV]qK>Ox4ATo?0=x!vL^ϭ|b!Nɜ38+KWn~EZU訣L T "%)rRV,߈/[FH++۷Pދ"jYL[իD f2]^=֥"6R2)= S_R~e&ܘ›s)J;bJvH>_?7hei}pnCz|M4>gWW5Cf4S7l,fXkVX\iSJ/·9;Il{q~lVfՊ,rCW,6WE@u핢׼5DPZfRY vfF3թR\S[~PUW]mT>lZuKb~Nϐ:_/xGTxQDz[Ye.MH$vӠU2'(1SN+l\^[|J _Rrmb&ԹǐmS9A^MϭCN8ᄠrbwivRg I7_r%p鹱i!@`@R>d8527PJo~SmoW$O)~n8&dzi(L& Ԁhf%3zx3sMHVφAxxL *y;ٰBr-fۨ㹶JRbR;DqJ(8$\SR]gJ9'orXi)N.ڿ۬4bVQ2ۖ)=\|z^|{iv x&i'vU 8 ;&1Hā {_] uZXX1hI\ζ +՟w+ ح>b*ԡu-9RhLyDA(ݑ,ǠH^fPɫ *Έܮt)"y=+(; q W`3~A @ɶFYQՎ 1/K'MJR*wUyVIޠRu}:k^u; 6jI㺦YϸrID8qքӠN US,Ҋ^NZz_U9=Z=>>X{=w|3ೞ}Ylӄ8)>aյQ 2))KV@mio;)oN߃LARɽ]t\J88^0wKxз5Vj\JRY,) H93)Ũoζ(SO=5DѤƤ~?bvnQjec\]zˣo7lY7\r_dחζ(}OJr P<Э>;M~pizmVw>RθÂ)Hyζ%;zo7;U;75+_l^;+ujejGNb?EO Q T;\ ϯ?-TR]FzڶA3=:?H4ͨu)2Z~U.%MTG8^<"y9lgu+h텢H^~1Uz:(WLL$3'oK@Ÿy ‘EtꔝW?Ay G@R2CY"{{U`|rYJ}LGKM]{t /K(TǪZUVi,i2[Vw=7:/+G &i^rmJux2Ln"9w%)ī,{xTTnk)iUsK16=t{&HCc:ӂ5-16azHN,E)h!0JVZ0;Ȭi28v@.++eIIEc-RkzG+w<}YZNoeco{~Ev0ȟ>6[HZ vEr?Yt߽w_HKHoM-(p^kTW$p)㤰ο_,Er/IrIcԇXG<ҫREqlH>ȂeyKxpwEr)D%uW$0Er'?,y$6!!@Xz4X};1R%ӷXz4R$ .P 5m; tSRH;R K1dy%^_&;}K=Q䑉뮻ntXiSN>tY['u1ӘBlcTрXl9buOR؊[+)+O۬u˴=e9昰u¤p뮻֍x~,m-*c]nWҠr=*Km'xOj\-bZi6F=momDKvAaDO|ix{~yҏ!&ܙgg?)bly[JW'?ɪEӵbU~8ե?Q*xk€(wB LҐI 3sEKoc9J4\|l*iȴD @` ЄP3C4Wn-;C4 j}뗄 &b%_+(I'mf!D5ziWjBR+ t6;j=3蟶vЪ8L+ _Wq;beVheehVN[mߢUΥ(rB&9`V:I/Τ@j)h+*VJb)xtѺVI[l6 }c˾/YpY"\ ~u2Sr)7RJU=%'m}g=+w Dz?u]{]J2weuū+?muW0+"<+~._mhJ)Z:*?=3KJָܣ>:{cb~Rr>ym읣ix2RE϶VN7^Aw n }W[xQO~ԖXhZՖ;=fs)gɲYQXQωoA,}vdY][)NwE)gR7v_^wgq9 h76d WHaKdYQ ծ(wCH$}; G)}"y;ђ<l @ `=y:?)t\wb!|n-s"6oٟ͎b?Ow}PijU]tMI/2̍w+Ϭt3%"/Ma+NY^i,-сM,WYf#?SrвEnV&:҉m랤 My(ۤu׹u=/=?Ay϶$BW=l";Cєx~ {6PL+W,4x6)W/=mJӕLHf)Nw$}h]YYGlPVm;&YK._kӳj_նRW̃:+_G eŜ,t=[n<: ծ|~wщM~vsZRW8 ~$Wn/=AV[mUc3ܶF(”9s!=qt򲗽#/W*Y)]x6 qTGQĵ MzUnJuo S?)Ly&7\mS}-h֊8_jUnJ);BEgʘ!)a~M)NiL \ۖ)1ޮ7 EbjwɊ+rSB虫/uؙOQE<I/9MGSp[#bjWTu2˙EjuS䅯o;/34h u0YS6.сm₎8jAO߼b'R{3/f'{Y]ugX׿>7l}o?3|t~G/7O|bLw.w9=2EZ=uI]r{/vwU 9{eM>ͦu5~ Yܙbя~4Xla_.|[ Y]mY^?[<ۢP"S$/w|S1:'&) trk]{h%/yIDf\ |x㍣ f#Kc(M@_P=#@d4`ww|as)x _Əo\65Ƀa.ױm9_uN r{ 9)jڎAƪ PJd6 I#hR# ׹MVmzL۴躭l_f3[ 1K g҆-WLyӳx{űAްMLa+_ [;tMA6m}eZoLF!,3ӞpV]-ENN){mA-;u}:*)+uuWHI]m6v՝.gxŖqS_\߼jcfߒq?>nuS<)g*iUm_^L99\W})\}%ڕ7E̬>og8oMm^#}aGKawF<>WZWU޾oة}lm2 :ET9U]zWc.>TWS (-}sdjהB @ @$ = mvAqTA5 ^9ۚ -F͊tJ b&P'k&(-JDJRMN˚crmwS(JSbJrc\Ylk(W `)JBJR>޽eD۶$R%9)jېIA,ܠ?)KqHJ˖- +fq_6u1"+`"y/e%\)g\-lp')jDwjB>dIn]34RRN"?9"u(+/qɕǥ^:Ң gm:n>Ǯ0߮+)Nঔ Rf%+Rޔ2N @EgwUeWԟ Ͷ]7_{11:1eu3D@@@@{W;ꨣB?φ?0 c+֮][ԧ>5E@@HݳO̚     zk9yN7{nnןy]v饗C`        Uȧb        pWʀO G@@@@@@@*gYVվ/@@@@@@@@ bO]G@@@@@@@,eY7@@@@@@@@ bʀNF@@@@@@@.gYV>?@@@@@@@@ bN]F@@@@@@@ASa#        0yYm        Pu<˲!        g'.#        )0K@@@@@@@@nLI        pc }D@@@@@@@P /rM@@@@@@@@.@ĔC@@@@@@@T ϲl@N@@@@@@@@,7@@@@@@@@`2G@@@@@@@@* U}C@@@@@@@\j n9        @e*9:        0ye{z        PY¥Tvj        0ܘ2G@@@@@@@@ pcJe!       -)=@@@@@@@@j*9:        0Y9v#       TU)U        @>        ȧh        pW }G@@@@@@@*,gYV5@@@@@@@@A bʠF@@@@@@@*.eY.=@@@@@@@@A b }F@@@@@@@@ ϲlI@@@@@@@@M)6c@@@@@@@nL        eYZ/        Y @7"        |m/        0 ܘ2 E7@@@@@@@@AƔA1        7 DM@@@@@@@@`,@@@@@@@@`2D@@@@@@@@Aȳ,~g@@@@@@@@ |*>At@@@@@@@T" o@@@@@@@@yG@@@@@@@@T oZu        Pe|*!        @eـvn#       TYp)U        7 u@@@@@@@@ܘR١o        pcO]G@@@@@@@,Z*!        @VN7}         bJ'!       ,r;        @uyν) lPUk:׺f׍^\ǼG<<;WWIXr}_ip *se]{>қ9>lBai!M(T;Yy~V2Uk]U7U[ 滻/}56ޞ$?=FjR. gE~@|fbr"j͐ *{`?<2M6'CڜeaߋiPaC[SJ|'?nɾg7/!M ;+Qw>zy%[nGC:9nӛ-_/qsx#7:'_/_s߇tj/W؞0-loXH ?M;~"xe''xƅzmg~Ӷ;i󾦅jd[CVl %SClHS7r1?ewen'㡏yz=/?GY~jq C.G۩{w?4?~XvJ+Mtտ?_]N by=zP>57v=ԯt|j8f -^1:&Tp̭Uۮt @@@@@@@@`;xounj,NiNj)ީ~[\;_Ȫ[9}(ow[)jJ$٧33=AzURSמ/1r:']_jOlxמWW}ƐjqUu税A.~Axyeh@puuώgZw&qUuzrZ>o?FLQq>aOP\TS;H%#k=)~"HG{LOt'g3쑥鯹1c ELcL uգ~i~Dz1ed==OY[;"/tf7[>M# <\]owN]}}CY&pzO~Hl6zw7_="l}"O6=G#!:Ժ,rDѰ,>&˟ꗆU ‹^/\O<1byғ[H"c{a[5 w ;QĔG.H2^ftY "n-_?׶[ų$@IDATOEJ)P7Jn'lMt~'P8KIΡ|4~׈5zzV+ߚh4.4߯qljA=Rjb#>c"o9 G>EGڏXMYoy"LͺU)t6        ]wꮷn@WlZ"ik+oxןiW-]k_÷O7NaغZv'˟ʬ?{(fuƳ}Btm xSB'U@*$p I#?꓅u:ݯr|)!gB\]0/C$' _OhbjGOdw5mV秬Zmdx$!-E~EP}"N(rI|dch/t|: 5{\WPjɓɉPDnukXͧ%i\~=vꋟн>{EH6jGLە_2rEܕKޣv[!S;l{bEaUE*tRrj3|_{9!=u֗C!wp~/88x(l}!-u7=PVT"ɴzEl6vSl2^e~>壦]4_@]ot9~:EVTڹ/]?g'T2zo<5%O_h̝v,g-mCS{~숊gZiwtT{~JG- s<_4GuFޢe-,I?Tʩ_m ݓ}Oy8        ;{tSϜ S`/ڝwDfMp9ZNNEm^*ֱv>գi9V9~{Օ?OҴWip:i~ݯq+fD}8۟΋qիڔj\~U*>혷~-4ED5^ LMEw|XY*>? c._28&?ͯ;eu\ʧu!W=eݓB|TӟЯv߆6g{~yqWs&gs(T7.ޥc;T!'G|cO1c)@ƽftMȧ'&-I|\Ru0I{ELIMϧg؎fVYcn4diN;vh3Լ_Wl&wn%Hs}?ny4Cnr6Opݍao!-s1޲?7=I#y<2G\!i(Id}_yd#u+>^S5Oб- c=.l/{YĔ5lpu!}GT_btr}X`=KE?VQ:no;QJ]|vW2:/_*͏^nK}ϭuŊz782әz,'?]OcBW;1^t6ӹ'ͧ) TJwm$^wVt $l]ف        y4[- IwNtMCPw^޶4K%cԍKv+cw/U jX)ZW^6w߿Ɉ@eГFo7nRnKR|;ǗcTg;7/YA_ߖl,P@OjȤqU^f+}!U\P]=UߏMMY'c}eءh|Bn^uIOȫ>=9?+MC>쟩?]ݲ?Tp߯;)[Ei!N!u!I?z7ڮjz;B>E<]|@1DO$.bZaX+"~oÀ`-"qs=xU()5n_p|=Gt-J#ME(|mU{ ]@Ҭ3EY:<׍Zɤ!{2Za5~:30oeDVXuzPWH,jW"t(*7hi:^3֫eYLTqr{H@}co~n}T={rcw}e\uO\ihtn4~!(-  @ 17n~:inꑜJ+[x=AJ]3˸@jYn[=H׳?s}sS4-bF jO)u:^=a]o SyeԌtjg5^N[i~=^4q!R }&_{B@Kw66FEx{RJ~C~TwLj\saw^P~l%НzF~g4^OD3ƕ'w3 _}cHϙ|P=UR?g;~g4vY)1+e&T] >ݣ3Qlc">FO4gF) q-Résߺesk!}!3VR#Ol(YO%ROÊ|=2x#-<>lZ_װ/|y[jMtx>BsCZlO: Wߣkl9w~#זC998Zo5T|[1blOS|/+Kϛ+]o{"^S؎%a'֕>d[jESߴuS͇j]t $:Mo=;Y۾w7f˾j>#ZY_3|(֓O4c( `_ﳱfdMxTv;,*ףDeGX/5>ߑkzϳ/$ϴ`Tc        zf?&3?7 _+Ő*"Dw>_pb8̟UJgӡ\!k7Tw>* BbZ |/|5IK&vu#G% ! ` ޞ=3B/sE:tYr'_mswݯ+>w(A (BD鋑x@H'}e|"ڛyD)d042r>Woxe<"trIiJn? z)ګOsԃE֏n:>(vo 7l85'ϙ;{c  A[.ep PE=GzGۏP_79i n7PJV;ܴYhz{O/'sHw7ķݗPK5}>>vpҋBɏnOoyo㧞vJHUOǭ~%9Ϸ_ot[HƏ_\ ڵ]("DZgS,Uu?/2AWIv[?wA% ITSDXhʯ=Cs~GJlSk{EJv}Λi,ݷvIF=3 ϥJ5zQw]f玱ub|>lg5g?)i=s/(vO:tg ~8͡=O^ W@оGe `~~C}!ݔD`9#=19hXg;}#[}}|htK}~pLߕ9uTwHgcC%~Xr=zn X}p|~ܵ_ߐn,Y6~Bo4'9 ÿ:O_-[ijY}h?19a: {f}"x[ m?j'RM}:3QIV"W*"v?ߗ&9Ǘ>PKiӭa[{E7/9񴞅]ȟߧjzJ~/uS wagn! A^!Eߓ S!m,Ηzf>'[*0w! [C@@@@@@@@AȊ~|iHKW",RFĔs'BEW}*k_DI#^n"ۂEF[G4?~Ok% ڎqRtFLѸyWnq|{seO9&竪DL+g*#bJ妄-@'Phk=;ٳloyo.9Uէ\9#;{u]|c+{M3+{~W aeYX:[='bJ̛$}?{G<͟ _yU!jOgطT*Xky:B[w|(+#hYm+!ň Sv$OS"wX>~@)%XиӴSϷ߼C5/gCEvELQڭT(G#nr*یiIo}Ω{<,w}DL̈́NMv         0;rvyɅI`+R NWm+~ݷ{C8tg*?|S(p rc{ *RL>z7ܹ%xCLKg  z6n|l)EB"~{F{mStsy4A9u>8?KVXUzb(J'g'`ȶDz#TŊ<.KR4| OP䄗0'UA:¿R]ey,lbͩ^qEJv\!#q?t:u?5/׃"^L^aUey˵=Ү:q㟿d]EC.ؤO/~NrϋYEDj7!bGL{C[HwgQKI+"D?\to1GvvG7(@@@@@@@@XFժ-BTXmw~ 7F)ET;bw k>j'7+_3%#pV,v^m(RxP/I@U)PdŠwwaӻΛFדpI3d|$ssB w>7ۙ|`޽"@Ԓ'w{7{}˻).F`f<=V~gh̘ћorhQ+LuI0R"OEV!#5]#4"(qG[UQtWy~nv"̾?o7, >- V:g˥FgTU4utӑmyɂ        2k*2"     a`ҟNO׃EUIZ!@VS ΛNT ^>JjYk6CֲχG_DG(fti lE {O({ă<$b«u[z,H)pRX !{7CHo!};-{,͖]v~3ko1 t||۟핞/JDpw=^z}%a XB@u9EYF[sr" -"c4}t=OM5w|HvoW-qw)횟/R.J X>Tjyi d^ѰLs K_nagI/+C7oc=2l^N~^Hz: -`1j?m( y{mcKo+4S-Ȳf P[}*ny0]^ Czɥo i|s߄C5=y~*!2ݳ  C{Ⱥ,޿eACUמ0\{G[n ~B)_=K=^c+rUXwUlDZ\[.y] #: {rPH{Ѳ>Г{mO<~s1Vd$t=nZgZ}"_3ʯ~׉)GzÞ|ޭZ^ZUwWo;B/ַ?o'^E_# g:oS3i&S;Y׶o5|7?;WyH߷}WχpH\9|₷IHO{Eγ }Kj-u]Wdf5l{,T}hMMXdV"|yz\%^:I|1J+yy؎ MS 99ii|_~vT"xuzD\~H)k^t Ig`)whض#փz՛v"fGԦ_GZ-[kTadͳMm:8>n1|f-Wdm.XHz]Xq{Xpf3l@@@@@@@@zEbWC ֌ߚ'ҶW~ʽjυgnZdw<0/g>ߍ+tͿjPmvsmi!]Yy  P9WX4RJ秼v*w/ ֟vj|E@O |=i' 4 ToBxR`й gTQ5uE0ȭgx/W=qO/{ᡦ?ڈ&wq?i5ξN#':zAEhx$>gOzC"v,t;G },30ge Vj12VL=5yF۾jaN|AHO<fhN{5WZe8b- ΣKmէTơUq|n+r7HX Oy$]H?-գ5.t]Ծ"6iYx QD>vԔq8w^7f#}WyzU{>hilb,!^֟Z;8k--,I}jcS? "6[y(쟚5#{G҇C:.eMNG鮡p|ץ6JW)$@@@@@@@@賀sTK!wmG3 õwYeÎ]+-b<)kERѩq0lؽ'yC8JĔn1  Ux{>=7dPO)K=^9=u~K?K Jh?O G}\Utݟ<"Iq|^">՛+'EV77XH_m++QOS LstZcd͚nnP>j]mzĐyġs/΋,f?x#~r9_7-EbWDgX(RG)Pc _Ǖj1~OͿRLѸT<~8?ozhN8ܜkׅMXqdEDi4,Pf騯瑆E4{q͵/^n8V~EzJ;>=ή۶=b|b˖{?MxLCgd#tH؀@g<‹U90"       TP)lnyjw*RL~~m6S>ހw]2;ƾQНlCO`o1v% I`=]cUR,m0+|ԏ;rK5^9jiS=w5[]U_/U_W ~U!7} N-w"8(bA#NDF#EPĈz~)۫u5imB!s{2_oksm˖-#,tSobj"d͝ Oޒ"R~}\4GJʩ7^RT~f=IlA3y^ܼvk bm?qvF-Bd3l?莐*rJYHʺ #ŷ-~(Hy*X+ӿ;BYb=LըG-yry %VzZ_7/Qor:&濩a02O254d{ni=H$H)OIvzI3UnݱN_Upb/w|iJv~i_2U䞢i祮K=ʯg]3@@@@@@@@N.nNY:pZB@@@@@`%Fa9X"x=ٯb)gUᢦz^OF$vQյ2uC'ԎHF"+Z U=ɶpѾW]}yk=!vڰz]gأlwk^W$W'?faRMvd?YO0EPQC3WAzi2x&^ׅm=liSWn !Ңfvpx!JQvuk-ۯI^H.3\@t(H뭯z3E5Ef}}i/,Sւ3c~*"Ti$US{ޡЌM)C'&XHSv9j_U\m}j}:k]Ϗ8 ajc[m]휴|1{:pDѐnBևB.:_??E$S:}B(׿u6znGv&/ Dž`{ODLٓ@@@@@@@@-ͻ<@`zSC,e]RGR zc=/l0?JWKC`?U{ưޭ#IC~|"VӞ_ƞ$0gw 2 {ۯ"q^CCá0X|Oos}߼ys;,mPU,'Y}̱E<"("9Fpx>HCQy+bFյ^2J9ȰM4wK`$=vq~Ȇ?Zk+ Hv^:"Y 9+rJ#?<#"!õ#Idz0*|xE [ e:P̈́"pyIEϸ>h\~*O췊VW?:zq˔G׳^ ؇Zי&xCUN_SѲ055Z}dԶ_P#O@??ZqmVE^yA;o-l24l~MNNTXR4 O[PIi,PkUum oԆ        CoC0~Qs*R"pc={m/zY_}ǟT7>|"/._%BvG}(ֶhwUmw˔(;)EKR@`U Uuwճ^֐LN_kR3.|̴.ڋ'z17֏J' ),m4m0!I_w>wfPzhxqOELyoM GСzJ#s[gZׯ4EfѼ5G"uTP]>͐@IDATNk Sx2-TRQ;+{V?k/{g>q r _Rhk^ˮjN] +zTxU|7&*e]YeT+DAÞ5,=]"ޣWP}Ț~){\OXDe`"Iʘ aR !1^ EiWc=oq׋噯Yҍ V>9m3'XYr^zi>12E\rQv蕾O W~>lH*yrګO ^xPSP05iMЎ j频~}~bZ)BF7FѼpZyA 끖U7ݜoxo[_oXuh^j֝ZCu=n{x~zQֽZ~U3E,R?Qߡu-WaO<~W>jҸvI$5qG-N\اZjZ$"Ķ籱kFlNLةT|yצ<۶roc1Yĝ_wکϷ֣֑k_ًEYz_~_Ӂ⫅VI= r@@@@@@@@= 1eO:C-3N/{NH/zgCzң9*l_pAaö'3 ;Q|歡^?Bg6<|[Huix/0.}ZH/z߅ֱ;}t6G;,l gmIL@w>ly^svx/Fw@`Ty+~v%^EͷA|LJ= !}Y'TꝩSG;;hƵQ,N!Ns\+-OZrt{;kC߫L? ^m=߹sG(?ٴ'Ç-BO+@'wԓQ@5as$翏~ꃡ '(_tM:j<[;7xEP=y_xIG?қ6YZ-Xv':P mGyjЅ""lodd~~^o5'O{>*RHRS'W Jm"=RcoYZĊXZG4GZ)2U~xwg D|S~>P]aGwJ!'EiR;렮W_3!PsԱGkBz))eȰEP>oG<)Ć"Jylxƨ{jɣ[}햎O =WBVYhqɧ}P|~*Ru+s96F        ]w-]8.F`U"(-BZl͔/5g=7Q:SڟH/lpO)m?zf[nm}¾Oʶ[R%RH% 0ɽ([Vm4di=3d^K+򌍽k%߯kU_nPC=U_/j]/U_}]̋P~J&"Y}ѳaTYœ I{S乞Y,MV}2sJ߫hKf͟WI+v>W<Ԭt̶ͤLzO}KC3OGD-$;+bA]Ӊ ggN{˞(hBӲPuK9"o qhYIO yDkֆ wj"-5=2Je* `}]W qdi[JT˶4bG.tb+Da Y9$㥯?Ҷ-,dxb"<{(`8Q21=lONY/3Ek=Ĉ)#xm**2GWxu"/Y@@@@@@@@SfMEF@@@@@aۣ'{EdjvAcވ5EvMOf{G4 =?{79ETOZ^ʰ{/U\wd$&@n\k&|G(zG5 H'{-SG+g#+#M(PHc#D X+R"EzI#,VߐG<аOL*3D׮+T9>1fi"]        LxG2uf@@@ =To}.W{~.>^՝~U_hW7 GpCkO'黚'I ݡ_F{?W(x=]9$KGP޼+BwOzw_؞\n|~|OZľO["+^d_W-Enr繭_Ei6-"ʈGJ]\ -K(4E~#CCQ >om[r/X,ĔGf7/G(B#B!#$5;u=WtChF?5q9]N9DO ӣ׺7 U_zHVmo ykׅc۷G[ ERin)xnqg}^ֵ"}"Hϡ}X)-o/,vjz4y䜦NLz1%헍%o@@@@@@@@V@Cw̭q2<@@@@@@G# zEşQoד}Z*OFLjiC W<[w@x,T'ӈ, *i7 -ٮ 7׌ 5;vQLa!ih:n*ыZ=;cžٟ)E~w"M[;_~=ukx"D[A"o Y5L ?"dҝ;w&«uQ^E<t p#'Eie%^tuCԟ.r-zo3o)G<" m]N?w<,l]6AcS!ehlk8Y(kzECCzH򖍸5i"VH,Dlyjy?>lF~d5_O9 ?ՏWMDLY5S@@@@@@@@@hMw-mӴ  ,T }va|>-"zVwުUݢڃ_,HVEnO67|=A{==yH)##vZvѰrE[v^dňT/CC^2~*XH(nFl]ں=BKk"j|ދ>eRORfEjԭ?Y_n3֣Ȩl{}{dt1!        0ow D@@@@@U(ϊǤ׳`iO$+򀞐7ஈ oֿhJgh4FH(z@NvKqcȞoFc7*k aU@}yD?9d>e׎ZD" y䈺"VEGR,2ET)bNGEUC#kdggSLto|^Ehg|{*d9eE泞 Nj}{"xʕ:!|9[8Z Mql|^Ά=P"OXX"/2/c"T{C(D@@@@@@@,5EU)p^q9vGHuGhםԝ{rculaw Xwv.5ojkjZO=dEA!?{o WU{ *,7Ae}U!FwuT@M~QI'适8* dPvP׺:>Stu׭'[s9wɭs?V J_&f(9`Ϊֈy2N*}*%'wheMeƣ9߱o#ys!F Lgx2gZݧj~ǣH#Uh$jNRZ}֏n%YUm)MqS;|(2ན(DUO,юsk10  1c:߫?*64e^,/eW}=eʎňB^ 4 r٘jsSnQ J)6arv=I00zbqxu_>z#MCRx4PHIMʤWZUO82دQuy &@{ڜ)z>i$˙KhOl'/Yc - рt 4b K<Ԥ@( "j5YHƘϒĖv: M?]r;-I?ir)lCy`0>_7^1+_'. LJf'5]rɹМ\,ssiD=c<ZŢߵ˚X;~o[k\o~ x'%7 )Ym) io+@ /g4[tN0ņ @S;$.4Ah;]x9}PZA@G߯; 6n a8i3!?&~>>}.{͇ a3g9%/L1`)8켂I)l7USUQ"N"=#(**UOQ`*v>CvYzy a SHd &&랛_&ڃG(ɼ3]燫0P܊M#-85 IubX2EPlpBH@hzTχv?,ic [)l0 !V|f ~/uJeu,j[fmGެIa$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@N$@7H^wykGW#$[2fϔ/.7 u<;gO4SQWlHHHFK`V1Ru@u.=w{眤ৼOߵ˚HG7B$@$P+(6m.mh(RJ> a dwB ;Ɲsxh){*YA!R -Jǵb)}(=D */#^bX)l} x>|ib @%Y'K֭70s't؟G]l!6d *wUdZN[=RU o+$?0E0)&@<9Ξ3}BN&hҴ~PB .g+qשaNwpiGI;ZȮ) hli'0~]~).U>eJ@P-b[9wHL!%CK-n%1i8/ҏ6=zz6I\CimhhnM%               hTLiAfI`c >$]ZX!v3ʺߎ{KN;,] ?9DzJ8o-vy_C=RURo3UWI]?gr8d)J 矫 =s%IHʢasE~5>xH`'w.+/vH39s ?-< ovQ'lgXxQPůJ8_EMA~M6 .Ўlg46`BA}"/E*L1%/Fu!Va𲼭ϡJyr؊m١rAE3N^0rnպP> `7Mm@GjLH_Rco{H:g >@Iw=$}~{)SPe]~ņwmST$5eU~;~˥|i6j3CXT#N/SV,ye88a01E@/#Ak.'t}>}(LJCq^⸈&b〃Q E_ ؔT0?&i[[ ݏv&9=_H_b=haBSB`Y@(HK}}zø8 ?&MIUvHHHHHHHHHHHHHHHH`, P1e,i-Ș¼+]:Eo+vZ+8-C=}!vYی~\r0? 9gU[kZ Ww]i=[ WI;,UXH2g]u70J~\tjLژ(ͤtB$@cB;PBW롹m]]5 vfC~|1V$񟣡[k|?\?6j<~m;OL5'{>6{|uanȯahx Ħ3v~ *n+u^ Qs k佮 Bp;e7kǡT˩CG8u[T-Xoқؕ+mNaH,Ҽ)qiL) 3|Dmγ$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@#߲BSI_f~KYsP82'[I`'Ī'wbWܠ?y[50gC)+/A+On·Њeu6Ғ 41<3sIP`ӆ{?n+n8]lt<ȯF LDPmv>I7> DZBrPVhV >sG]$GB(J)ؙM9/ s>W,?ذ9k?5|m tg묚E&b-ޫ)Ʊӟ|\S׿uV)]_6y;.;~(QzBā*z@ )$a"S/[Q|T-9FEKe)O܍VA{PGR?nh7! /eiM+%mPVI:H.o U%R.~c[OhwAk|O<1EcMy#&+*LeHHHHHHHHHHHHHHHH`_lH)oo]Rp^CUuAKQll5EIR-@wݚR^jBAZ   *qn04;ݺ&tċe)4L7G}oqޭ; gu=jHǃ;8=f#FBPhx˅|$ILCX~٧U+= Zoz M(oSh%x $vrN>;{G3\a(*؎w[jJK__4xn=C+$i8?QÏ?ز&{gVR)0n~nzzo;bgt:T1qqP@>3׵$a Fzާ-FDϊ~ rp]\캅,'9S.I2$U"8?ÄpGR{ zOSUPI}ñ;/w C !{쾗82EϛDҽߡ9S,+a.֫A2 4@+} 4eq~h+XNoa,ZM1/NY JiElŒQ+'7?*%- T'hT/2G=qSCKm}8Kuxklh%`'j5;†Hc]MίkA&f!W;\;Ü[N(MwA$TzaQlF^(+|( ]B ~q˗*;-H E?CkWx\l_W7 o`)N>o-OڦyNYGjpBq                .CM ưA;D)ڼ&1)$:'6Jo7{ pfwhk_Ҟ A)5)Ǟ| }2>,0rR_[瓂 2dx=ԙ2ESwP%^ULyMr|sseHU2[ ϫUP*[d؆wD2sIj8YB.WhJIigyZXZ՞ߤ0 h H@{d9nT8&H"g:qi?TLiq`$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$08r\6F"q"P0g)6K$@$@$zܞ&zפ\Xί9o'hw[CsGk1Vo9ۢ3f Ox|KgY"yvH;m6I~V2!_n{e؁Aݑwmm\Q8AT,ER Qi3 ;w;zR(R?IogЪ&1pV/,L"(fؗBӻR>_wSb}QPhkktAub:.pJ$tf~*C8.C7Bi9?IpG4ퟖ*=8AHeW瀾~K>kYÀ6 SL5S]s61:`ʅςt&̤;D$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$028 Ll-,V<^|YcHHHH&윅R B#- 4Sa<Qjعn1dCiw޾)BsQAlh;ÜnA/-_rْS򥜆|Mαs3fJځ-,`Q]BY 8J)Pmڴ19,NrxұI-'4BIV`p`@z8a=6C 0PJi"+I Q&') ;/r c+L5;EܴMmlu-b^1?}HW­[/5\U?{3D~媥QqwpQ<Š V)ѹCG/_$M%R6>H{Njmq<4 8IbT~%b;MT)COIzp@3dܟ N뤙o^V(z}AP6j;\ Ks@ԵW( a a޶\a                oYU@mǃ@yx46'(Go$r*d1s'X ήk6}<$6%7,Ȗ5,GMRrPgF|T3wX?2M_h؎ewtͿc:^&%.bϜ؉ϺyΓ2EG$@w]n&h;ҙ-Lx`skOUW5;`;_P%};l#k0ʓh_oԚQk,G vzx-Ҩ Ǐ=hK;UX2&᪆aM 'qJ:.)#X[/E 3 u30'{bb٨CTIKR{cwEtnPj.tLUe_C!i/LU,a{Phy#3TOS{XO)U*?}jqPaz+N;K ֹ0H@ 6 [!ʰ@̺P(ID{/pl|_ CzۋTa캦ݓ)I߾r8ߋm+L[ia'S?۩s걧R1'fbHge5n?I& +UJ:m;)fU@yYQP nU'.|I),gF촩;Orvyn{CS$1e&XdSR<$՟M7Nq&u'WhJ)i6ԸQ)$;th 1!^O(Lq[P~$^Pj2 Bq);,ÿ\^̓#~26 .Sy=  `6l~H"o$Seb^]y>VOvxI|%   hbk][K2 5!L&oB'hBAc)bvǶ>jtDӖ׽ .%5bF=gPFnq<(&E9BJf0#M;|J@:NƗ$)bS՛^FߏOjoWeVQUB6M˵HO'UXx>oJ)Oh5'4EĔ@?u1UL0&^ )Z֑8zPDr {_m:u⩭Mf*I?Ɠjj:MU +9ܲB~֛aCO P1e $               FeiWHHHHH%`gCKt;ڔih/_˚cro;ݎ|9R8;uv*Q;[xov|юbێqS0 &oSJ$\~3cͦ)y46I}``PѶRs?ʼn+X0t~[뎎*i[,J8Eǖr6L%(]UQ%I@Dg$IbT+ GRD *( jخ4 i#;::Ta&WEq\9ߝ%CR^jR_D_4q BEܶzV dK)7 &i{H7l~P,v $XiWeTwcloiWV"  %Pځ7qhm3*u%5N0;r_C:98Qd_61(Ҁ{f;cat|hq [}z`HbbngyFm6bP@ˡ)S6PNcS.Rҽ\PybS>;}ƧY @IDATw(K*LjE?5ߓ|^"}ꯏIz&ULA#S q`@ShÜAOE($9OERw9.EF QA4-7H@O5Ld8o!L#~S\B S+3>%\KM\ܼ x ISj߅>,J}SBQ%%q~E|fB`]Kq!                ䷬<` l_8MV"29]|M_̨]{=TN5SV$   h_! f>-J)%G9~oe. @C x_{mcةS lSTkNd}nB2*t Veu 5~P* <5! i*06N)x'$」ot 6_3Q$S{滏.^UNM$TA!mXyiOG) Pɓ)a^X~M@!*Jf30Sb|`ea;e( "PBI<^/bL9 !cq%ES}H1{ď \GʣeG14 ʊOySio"aU +<l XƳm*LQc$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$0p$H$01t>X]zj{J|ox} djg͞)^bL ]j 46{|i׫[nc-zϟ}r~P.+ Kk/vϏؓ_}6ǷG񍀀I r.e3I7IMQ#>vE XG[ E(LR{݃"Nl !1~SLg>0 GFuNJ]q7A灯tqiZ#0և7#z޺Wb^;d)}DPȰy6P?ESL"6r9jZP%?P,PwP~e s(iUI %7DAƅ}pqxDG@tG.mD٤pIq7m< #cFjXtL$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$Њ~ +Z3 dG Y.qڵ@W^ϻVI5Ke*I_psk$ ?VN]S׵3byH,VNKHHH pc[P56{|up}͵_OzyWP꿬)ӌW/ .9s4d~^#FB ^kEI$BQĶeLd;sm'ۡ /:Qϙ:3j9΂w?I+漿As3}i{I ;gAb5g*Zvf\v2|Oeڍ^u߽]qϩP(WQyaybe|E;vcpǽ# ^=8VfW'ECQH v>H`'n5 (,i4?[k|(j׫]ĶVo&NHj"NvWX=k[erFV~^e'՝ʨ;9="Sbio*=b;k"n.)&D.v< /,C0U:Ca{{{8.`Sx r;x$*#@1}b/{~S1! g Ffaϓ+|ƽ,kkH#{ؓNQmOY:[nS?]jX(}|*gKۏSBߏs>,՞]߯}P\lƫw ͇jzRV#s҃~)PeDgXjWP v eFg;o: \WE<Z a|÷%*;A9&qc0VT_q4 6n&xSCYttLpTQ;_n 5qO''(ȯ^Ex!~&                P1%tA$uX|oIXB^W] I;Q$S9{_p$]}}ˏ{͂w;kR Jk6oTt3HHHi`B@Z@?+[Ty?w#Y?u*J|_fF|} lb1O%:{_{;Ue?&t}!Re R(/=C~sgOR9޸*5Mw!C:9W(MM!)Xؑ)UPBFa97>+)T9A\M*cpڢlqE%'(?~8^ͨlUGPjw!b6rԅ:E!+ ~BI=6e8e1kRv0ګ[%`c& @~oaᨽ" l@J.RP+E>V^C vVZ.^tw+]sPX?O|t/W-/̡v:#z+ {~%/ʜ5{!  C \L'@Ͽ;b-"^w\wZaRSmVC#Kj36;z$@@/l2ޫ`Xj9S(hvYz  v^cG6`yiK}ob`؉]aJ.Q7nZ)@1_ le?(Hb=^Z:TNϹwqIʶ;7>կv֛}d1n=߈-v:8L;#=|~nSJ1a*Ms*6N-Vc;Jjw# a}|uR :)ΓeV,G&Y~'/UT f)*uŲۥަ=Lg_t&c@q o$Tn@=QjkS^i|RSr ɇ|b#'!mJ.λ Nl;o1`]}]%02W/*~ՠT-\edJ$u/gyPwt_R+JY PjqKI<l$ؔ\\ټo˛"!6A' hij#qQJmXHHHHHHHHHHHHHHHH`d22^,M$0_4V+Q+][ȿnbe]&bE%JHWVPuz֊)_-" [_?.z|b_   h_N&G3m/~DvDO֊)`|? D!EċP|,*t+^UL9Imr) [xψʺ?v,/@OE^ Ԧn oST ЁCֱz*{є<kz :b'~i8ܝ~Eq}ZIu/Z3ȏcWESN+8 w@?}ae^E&Jz$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$0jyDV$ *?ADbʂÊ (EƆ`wig@abd|Snu土Fum}1QM;W@H v t}f94&oySN%/O<.ky؁E7)NeulO%aG] PBYiĎwGn6^8@j PK5&(@9ӕ7 ′E{q$BލWbW٨]z@S#̐îY(BddL)^wS|XL[da>ҡ)@ X1v68/1"S|tKD7JdB$A6^tszN>3~ws7ߧPW0[ ( Ʀ$$P^_΍V j>/;r6_UfI߸@Y J~|V,c}J/ͯB}|q}*-u8uaxM;VAGC[RK @+FXIHHHHH` `gŸZ@?Wߴ$?@}};&\c1v.'n.kz%#\oJD$*w`UJ2k+އź%[r8甗cK;^"}I>j07,R(IH%zl Kk_+6gqVr_:xVf??_}#G~`m h {]1v(P^I{Ůݠ)9HlPr~8Pv77 B UP}e)E_.)b/kd((4+B km;± aٰ uLk}$U E:kԃqr|S87? j5pEA +'[)\|r%3Nnza\va)P,Qިю5Bʀ)W`K)OdX~02-@8im8l"Zw7Pgn׻tx,rJ?8eTһOۙU*ZZ?{Ce?`_h&i\qVs^:| `XC'o xgv1(|E?*3O_oy}S#Nb)TB})j~B; ݏ|^CC830%d-EYHHHHHHHHHHHHHHHHj'w+jÒ$@MBA"9B)%k/Nc$]z9^I&I`xh)K(+rXi ʤܻ"m;O9mχ^NXǫnZV-@{* =o>ۋV{C iڽőrVCO#v?eeNrXo*>JgL=#N+'HaJIj@ G6 mF<8ׁ(1ϡy@ m U%]-65.sh-)b5?HgeGEbbΆ(Wv}_}ྍYT+O2P Ly \>`@OoV8)?sD:2f?c^۴h҇w 9pj1br~z"B( mKUgek Rp=,632"܇o ,yU _5w/'"                (aza= q!0-O[b+V "8?#ެοGZ3([ ||#7Y wCtbo_wT ceI{)ٻW|   6ia]bqg/4 l ߶(U?F~ 68:vPCدU`x>Н[E `~CR vXcg팆N;w>qvpcG4vl#-j?ny u&gobdO>V'᧾h*kǦ̂@qM#UXpzqģ97y%+B4RvghKfmRP-3mwp_:F]NJ~v},qc٤qq~Iv;v==b/rW&SggB+fōWI`H)d^xHHHHHHHHHHHHHHHH<yőwI &&oο|.]a:^:^M*S\xQϙVZJ4$M]kίy_Ի/b#dy7g*~O+^9~_pT׵{2I_]\-?Ư $@-Mi9zXN^pثFGt.Ϝ-vY?Y?703Fg1o8otXH"9B y`|h;Hd;mKrNoAbC`̶>Nkā$ο<ǟzDld|AP"-i TNп}J}̱Grj'TA?O㘇6 du9 o;rv򪄒S0@Q/)eku(|4mP8l}̛O$C4S*v bq}%}滎#_+~t6!98)JIڴOf%Q)^:׋.{ϟMM~L9~o ?Y5}bd "iъ Z Š%W챧RNf}F EY:ʼneCڅop˔+/. ZGp="b;1~Ӽ>ຸiRe&~~_TF>UE= }=D?n(C$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$0rC Tp䱰 8JA,ZKhBuSKVlk\H f;nE%`E%y6Y@z=~K"B.^ߴ(nߏz~tM*Ax ӺJSZ_cᵺJ⽿OwTܶl<*@+` `G~6v<{ʮRsu{I'Ӓ @W`)z=Vd^.oʕi27_oBQ @n\v'{V҈_iu_mm!ޠNA<誊d7Hu M(0ոP -PVXmSQ*yP$PQ[+\IwI~x5;hR_N#q9R([ )n^Y8Q% 1!Xb~J,)IM!c_x~R}-#uC$GK$               9A|b $!O K_7=+WH=IU0bJ;LMr T%$5ŗK=(uxqsuM+_/ƥwE݄-qjv uc(g ="R~jCZ!_UrєTHD[͒^jBڕy?$@G … 4@2FD$@MO`q%F( +AK нhxߋmve|}݋ ŋt'٢Z`Q[nrivEf/Y0zǢ Yf͑HHH&.[n\)}Aʎ%$)15%f? Då~r8XqQ5^%=}b 7Jm#Rcǥ*@J2ô?A%=]qOc:N/PIL1b:a9M&ƵW\=i45)r 0O{nb:bHu ` HHHHHHHHHHHHHHHH C-+ٸ8%CtEe_S=VnǶR)exȘQ&.;8˚о]_詘2! *k1[mBL@F&TLh L"_8+pJ{Fn7Gנ )\@P$YHRUP,]~~sb@xIX7ސB ިZGL9KwHP>laУ7t溜J7T޳?#^7}k ?VlPFZ?g&:?$6U?u"ZSZjY               ;lmcK$@ML`3[HQKC{{FuiucY}->۰!k LZZ'}s;3\8Iff/knu%y~f͏HHH&>+WI'BS.߳ gSH=3EXLT)SsI\0gq6B7wͅ$=; bѫ\Oݸ?PHI 3zj ttWZkcU&Zy}/Dǵh'C5R.vS*^RO)ES>A) Z~GqZ !0t u:͞ 4@M  S^.6>" '' j=;^:<     1&0IkZ';"78~HHH&ƛ8^}( <*1iZ@h 9===rW%)S$?˕^`(Ѝ>RHZ@z]fIHHHHHHHHHHHHHHHƂSƂ2  .8\ʼbK+ڔR]׌4e HHH` `'G264{=GK-.9#Hgn u&lTK$@$@$0q y'689=C)s@{$#R|@AڛDkEMbӢ+֙vOM #BUp68QsJ!K<߁B~u=SO !)IHPHd?88|Λր(>68$@CߛNS                1!~,ˍIclHH=]-bjE'DmpNg9{ ?$  {6-Of/Q5rғ.&؛uˍ=!1+ OPATЎ'[-w*W2Ibhgcfv+D(qMM9% (HÂғq+˖X1 7 ŠԔoR7 J2N+I{3n$w/M7HD\Zޒ XbXf;$@$@$'z~)Rn{#b[M]%U9s4+Hl! #le=V[ubO^;]Pk[+j9I4|[z*2^3%9gM,ɍZM8x HHƙ TDREbBSI\ȁV<4E (Z@"4 x:E AIAW4C/SN(VgFjpEД\\́q \IjJԋ[x?X*v=<ȵbP|_Y6*ıZB$~fw i"#$2Leˎ |d 6Fa+VHyW]-vUefN) .9s}?e(ٵ@3oU?(Wmb= .|9g+#.x]]_}3g3!#vuBλv=NE Ebł.H*_kss__g+%}'̝!iߏd9s/3w}rRk7Jկ\GnG.8rtgdB{D!̙UW'o5ï~~ <]e/"ga'{;lk}]M\~GX$6=?ynb:{G xZ5_1AL_+L`>N,>?0;R:/=jUY۷yփؙY+Rta'r$0׫%Ks }qI8O8@Gϑ _~oq}VIlޔ[iXm2E:Uv?c>p0 ??G7'캼{Ks{zq1iʤ;B$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$`b[S |B>u]I-}Ê8:t]i9!kBs~Niŋ~sN|e~L眭+ӻopp;,4Ğ3+ww(^\.nyPO~;XYylbN]fH7m>fbm?^}M9s冻u+"h?N9ɸfdѬ,SMďx1S{w&O8qq`)s9aw]?ћQ!wߛ(Bc^ULEb֕h?k{v*on\OHk*$@cLWݷNZiǷ^~hKVfX$@>^}/{WN8B@[]F >ӝxP8 mԟ}XӽHbe^<|^Gx?#ʨ;ί0+Nt5]0-@_/i`@p>) ~#ul_SgŲ$0*͙b$`xnط:?{Wu}OS\%T dC*)@B1`M,!PBB N~I# 䦼7_,lۀ !Ml61\զbahty֜]^3>3d3 FO$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$:ޝcnY被~mng v NG#0AjڅcKƢgۉ[GvfllQ5:@IDATkG1Q U n%7pKVD@9OWa~gXtv 8xVwT;vr\]ٕ ŋV7;㎸2'>E{?^Cu[W=:]t.1r> y_.ER v*~ZrU. 1ľb_gc| >_ݼ^%} UMSOr<"=bDKDU.1J/Gw6+/=T>74 Cc>"D&m5>0MO?>d }>JuIix`)y*Ͽ ';S]c1(S}>‰+_⋓>|sgX`slxJ>?q4Ulޔ纔C&(K9^ ߋ(8Ƭ=/_J '>1x zYRJYj|vʹ-ty>+c> @pܼA8>PK~9)T>,Q(N*?tm hq k_/;T4W#DJ)SJq xakDpBޮG5N{PLqτg"s.6U uPvڍ %7cbPBn0.+Th]4gb2P)=Eu2G7-MPD1(G(/ǠI=b`h44Uj{nX,~0e[Rl)SWk^Ï8n[S5}_)}c8P rΧ{zxC2P;Nwnx>'>@k~?&9@Ғ'9@gTmR*MP.ssM * J38q<Kp99/,SgTRj>a7ubPk}W uu"_Dl, 4 X`D#t[Zg{ q9V/:A??mS) q~7?:>Z/u۲7tH?XO lbn%Y%V"c xX8tΣ?b1}aEt=זwNE@]ziJF?edw;fq'bO8/G(#4|M$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$Vm01QO`>λٓ=osn[ಷ -_ ӔR6AR |"% |gIًxX젎ؖ(~,I[06RfHb]|8A9 'Scp_RwX۟l9]t݇|  QDKʂ\(+9y~߰Ƈ݊sv~a[&f0H pR`t@'5 7xDp|%>G||+!.=IUy9}$d\A|E3ĢK ۉ|p/ G|Q"-vuCHsoʯ@qs_xV=KUs~Cx1nY i 4q+>Yגp$-s5nJ W_QncK(6E*zMbJ4_ "z?GLaoSg31|ߗ8 ^r:i5YȃNܸo,V*ϿLޮUרSOMuJvQ$ܖшԌr*< Ȣx"Ku QPHI"L"QPDt1L0HHHHHHHHHHHHHHHHF*=ilRŅ͖[Z~?C5=yԤ;W,?W\,y.O=jl0В@N˗/v_ WJCzϱ8wjo.u=}Rib \\meK-V=Rqa$@$@#؍^}c~^X 7?˩\眤'r!V c|6a.6τ)$@$:[h;Glb ~W?75i|K >?Bmُ1?AtZOG)&X5zAWDTxM}7@uXd_xNJkZ038/)b~։RtN~?~j#qxB9̌z[;k[WJUL3ps|,#jJuʽ8}}N*,uF *KFγ~8|d؎tG-b<?!녟ogy?|#ߨrKP##_~:/>_i3>WZ4o>つ=ieI9aAv9yl ^+"woFX-qi|uWH쏪'~W,P\]jUNSӧk|W^}ϚJ%\9~?]7N,9 J %Gvxn=Sjx ՟{y_Qĵ L^<ۺ[c;7txjn>7O;0N4z||Mגv5ݛh'h[)'3{to ` '}%>$vS~$1?ߖ{6ׯ7:^vm ͟OX4POeRL)kG~:ʣ8}p>r0>s׎.[8"q bJ|[O|ETB{HBO]?oOn`XON%^?WBQ[Uim)~$qefy|)p|NC~;N&.t.rbS*mxЖ@K Ғ@1uTx{>׫zrs1U&^_%LZB|k?#a̞3K-+׸1{HwX @I!_9 z͞?y|?P?(\"Q9PiS@> p$vqTCb{zL"k )'h |TGl{*dIvTK.,‰"뻎\]>cqr? MU#<_}bw>g})V1%[U>̘ I\{Xhs^w5[ouϽ@ƔO } *Zk\kg5<<LJMuQܔc~ ;j3W^Zp,Q5Hl$nM)'bedv$x;rϚncP& T7>؀İ K D{wuۭv] \xᕒwOR+L_aDR8Y|XA_吏kl+7woYywU-SOScd uc:E+n9#^Z\qum%X?~>y \]`;x߁ܡ#=[?wkP<QOGB}?#yxЎA?hqAW;8Ey~~w`y o_b®6 ws1H("`1#"]Oj}l| &Pey rv}.>_r*u,*A4*UrS K H؉zt;WO|$n Z1 eޯ$Θ)F<Ss68P>qXMR!)J5D?my]<jT{;Td**E S@4{go[TGFM9$Oi-,*Q@߾\5)|*fWǾDI:=cw])$=iUHGTAK)JgQ:u;ϯݯ.`ӘSp?A1{3~źz^uq_( ?X/|RLI20D\k4JPXjjT{L*u$C7~b ivz_=JS^شC%ݲ%|/UE ~ ~Œ, @.΂>V۱UJ# O-+I%'ml:Հѐ T:% WM,vee*.>B4Ν\lբʵ޻Q9j {722(ձUf>P?,OAh]Gq+$c A>|4{MAa$@$0tחWNVM|~eX\oRSHPp@:G 'MXr;`Qp%RN{ά]]8 cz:h?_y|P9fSV@z{4'cq(X MwnRL ygzݒez-bm&vm*=iS0ժ\LoSnJS2_c՗}E LE3q:ZS V-m]G5(>~OI}f_n|Y?i\Vp$:?Sv[@a(`7_;AB_j=(HݿYQA%mXuj)tuwJS /gPtrI#xh?ښa:vP1!E-a^dɵ\zeiÚ"2٩#ү_ָ:vu6ms*ti f;vb޽wsxAUݯz. hNJG[#GM?Az S{=bfz@ *-# ~׃WЏl+q9߆?^>>4A;5ll7GW4se~MM(4ή71vyJGՌv^;7PjmxA,vm ̍vȫ|c=Ηա7y~A7P 4/8  ^3/C=~:' #ڱpC;?=?#ǠH =go?/o)CQMпJҒ8jisݖ bq$ʐ}.G'9hnH#apBz iy9t֗WZZi^_;~eK#p>"͑=(x$[|iU;9Ev!x^kcJEMtu x?>o׻n$p>,?-6cT#eNm8R,)!f4{(x$MG[սwWexF1R.ΘG2jU]HEID#XĿR9Ut/9J1~*>خ֩*EMJ$w7^Cu5%d*z@A'n);ӣcAa)juĭp:XU (yh\9a鉪1ZFOQ3noI% @l*wc4N@=*H=iggov.[ vǖ2q_bgoOv]$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$P,[;SVfHdzAtVPJgUa״$@$y;l3?28uNݱ_?RN|l-xYs) b O9/tgyYA`'OІJnΣg~X@?B*7tE;_#Ly?a+cJ)W._ϡP7SAѢk?a73N8U˯c)ݝaϏv¼M4`:;0΃ 9KW>/׉)GN;iabׯ_'6m Ѵ H @"bJ)x<7A']khoM1^5%)D#fz Ԯi^/f 5RSGƔ?\"r5R1%n =)SLq1Lp@ ܒTng,L/xUx){.f#Yn%Mp_U|2ϖq>IZ6sX|풉i=}j|igm 4e4H{wR$UI%ꐂ_c$Jb :; SϘ- @fSLݠJo@s*I`\1EPԨwvjʋ38G_'kׯ NC "<v|1QS"0E;Uag~رU,Uĸ )8)Y`)-oJhaӦ1Ad%G|@Wi'$y*"ond !P̨2%(PM"ZUKh/L+N񨾯DK&?*)EQS+w}cf)H^,+HiR.FXG0KҦU bnI܁u'_Uz?%^OZZ:{T)cܡaڔlIǀtVc$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@E neEtT:;Zg/G%&vO;qT%pHLVpē yE$@$@%:ɓɻ^HpC-$J8tF$@0A Ŏf;!=(@*@q;J O/ύRv!Ȣ-bAM`( /(ddev&#he~w6jcG vTt-pQw-OIm[UzoW'=(\`ћȆ".]kwĤ.֙ZU&CAَmdӵS\fv3[fݦaأP *Qiw#               j <^eR z`xIK#m=u;>-[n9w-}P^r A7Ċ$@$@"BTAcv2)e'] 2(cۗg羨utAcd'(o9=FPRxez|bzwMomMGk>{$zIxc%yɘɯ?%W~bqa04G$g83L&OmK fX-^(7]/n57\N " S> cL[]]#ݧ.nh1,9joHDb|k?`x8*Ioq?XFsj;ucvO!*:xIuzݼcbD44h6IQ_d                [;m Y!cg'N-:ː@`%w+NFS;Zu:% (( V99M:4 =2]w]@DTbLio飏sE|)03z9ԓi;13Nn rw~m">/A_Vر1S@l^rRLϹ́_BY4[2f9ئYnWo#V߯a<|Pnp*D+z'9M~ݷFn:I+/1a؂~Í˷1GU BWiSfAy(dH29E'5>{9//a&nDV[ƎGMAv!6REx*`:`E:r@_{ %J);U!fӫf1[*-[_رE֨R[_ߢJ+= jU^]=fIHHHHHHHHHHHHHHH@OXaҐF*@?l.ܬ'oN nP ;1y҃o֝#ל#t`vN,} r$_ob7tNY8 @Y˔&o#v/eNe"\&#-֭}F"?g{.uصrG|HHL cKvD;#P?/\mp{W+۾W<'QӧK̒k|~0g }{És ˝A0H{ )1Z$w&TDvҪPX) v*1/t;˯8\U|  S55\ɞ\Xn6/[+ij[f/G?/mOro971ni01)q)|)Sڱ&=)#en< H Qk=~cú ^OR7VQ>|IU=*v=[W (3b9+b65UDR[ -ucUETPI%u}פZkcݯ} Cծ2#               #rsGvbg"[="]mOĶmjNh r> ?]/><ت]!U ik5~uҘwHzJ)qU6?ʩQcݣ/t(Xe˲ @i4/ڝϯ^Ww oO,(2UJ2zII%9aeޠP'ʬGJ Oȇ_,֯B_П_ qe: (=RIi.8&wtw(K=qj}>ܑ@8ac'j)nL؆)=ī_txGG'WpQ9  =g:wMyץV7W| VO[\H0Gx57NZEM*?}ŞqbuJ{ žg?";Y)A(F2Ͻ)`c:[pֿODn.wdDb[Uq}cϽ$?Q $on,;IiϪ,_[p>eƳ^3HUAj[\wwyF8]ŰαO$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@G % -W2줽pCC8L}' n1С'E._\}`Ż})C  $( zW !,=>sXHp8&\58ۙb { {|a_Nm>-nyKnK'Νbw>f'kjT &tJ%z)SzgHb/ybpg/\2؜"l~,~z+I(85MbNZ_!rぢP2PHxgQ_#v76P!W=8Ψ"E Knh@#xS&Yt?PJV4Q-Ym~|P~'{K5)ccviz|X5bi*tF{7?                &-j[g{OuɯP?%BCI,&q@HHH KYJ)8.4E$@$Kuic^>3IH@4g_q"QO翹WiI[/7pH≣e' ʿ*'g?U5_3vcb =E.*`>^ d[j ٸ6`4%U^./H DҦ2券)IDl>u՟ַXFyH{GÌSO;Vʟ;Ԯb1 B!X ߽-O1SY]3%-(@$tbmPWJJ2K"?!3E*LT'qRXg*$#cuoxQ5v*xo}Ĥi5 @`J: |Μj1A 9  ! د|*S>  Az=K+  p N"HF?'NUbJxcd {|#sp~~̍P:Nv疮ܫo,tJOWWݶ}ID~zb ]R_-VzE%==Ȁ1;v R̻Ҵ,h K5cNC 1$ @>-KXԷ 㔘L)f)D 12l&ΝU[]''Ue@M*tj;SںCh{L #_Qߙ쀣,ZcKwo!SŔ q @ŔQ1#mϭ >#{d</HFS6u4g$@$PipT7n |uP @x G_3= 3 tOy +_BGY5||ҳ:=au7^'M$;;'J+PNn(8y.zyW:dA)I t\ܸh2t|2z"?J3^FE}ȘGwUbvcc}t(* ՁA:%f"~1_;:Mi$%x?BqtR"Q[ئ3&;~#{Ł Swvlr)GsGKW>O$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@yo7qa D63oKI.N==I=^:HgT Q|pB3C }ku#r 0Hݱ}dҦWN6|]a$z l+`J*()"Yq +1 8u%7W`TBIzxkuڀ7%eR&Rr  J_goyok?Ai%f^dS d.q6kgDuttHGTR^ Cipz[؁k?U؁S?+ҌJڞ3~=Jn vc1?2DxH^=<.LL(K0V'3񛔶6-, @8|dfq}> X=L!g:F߰)wxB~%KOx;hPߝea}Eϳ'/\ Ezp1uL*'ӦSt,He%Pyk w^x0!h7tzTߠm_޾VTd㚱+4̞HoZÎaG+&$~׮^/6,>(eL `~Je׽qg_Stχ_ p['               m5:6TY~Jl; $nؑ[|/+.y\#6˥^Β =tŧDSIeqŋWHp )_+|x*W̎o%+\u?霎W'ͭo}}kbv⼶j\CƝH$w2Wz10>H#=%y_RI>@IDATs\'S2Vj> {챧ؿ?w?$0 P讉f4'eMX"[j dm_}}2lm_s~yŧtΘWl`5/$u-51W )zxP/QRMUdJ.,}SlڔERQ]8ޝTe0r`mG|PFb xAaﯸ6w]qGoC                !#ۣPcҩ爽uv;}?) A(囚zieŶ<$@a%pwJh keqyd= oS6ۻ,M7ӓ7ZN!S'#/$Z *v2$N$^ O,ˍk{F;*;<PŇv| f>Gœ;Ws/^*јq,߹cq\}~,}>d~755%K m(DL"RJNCZ׃{p_P0.R} ',{ا{Jl$ҟc+FCC@lM"QJP||'yC/8K<ļp{NrXzrɱ: ar0QSN:IN`;sN_g&C=KcOxo2%3&=x2TI?M,|A7j~dHHHHHHHHHHHHHHHH@wP=[Cˈl/jε-kڬ_mir}Íܬ;|?Vi->߶'b6)Lg3~,wVB#54?т;P}~:#=87;@Q M}ɘy?owZ~< ƼC W@l|U Io@ @F_-<'׈XXg3vRG#t/4X'7Oo-ÎX[,gn6NvCiW^_SC ?AlŖK!hŔ7"Pb~ܣwMox)MWN$S o=ψoZI5/uyrɩ4/~?}V6?v?~{hbJƄ@aQ` {|ɡডik%a߆//yYߠgb ;/pŇvj>As tB_/]!*dO؆ir͵2 ,y}gjUc}rWID0<:QSL%T)9m'cPxDngPH H<~MK\ן7,Hڽ]e/e:~ur_oQU >~_P1hF9U'\m>Ob~{Ə >2}?)Ƌ?r\/Zcw*Ie;8"N^y3ϙ!I BD2HpaPHUF0&Pn3@=+;*M.ctF9;,ժps 13-ݰZN߳RB^vXS9.{kTv ֹ]M(eC_W\M M)}a* @iRվkw}I 4t=vdu7Q,7E.c&g'wU-p) MQE ˪_ݑ 4v[;/1Q_8рk;(ǎsWʣ\6l o/?ϟŃz6Xpw~@^բ;ؑ b y{,¹mZ'Xh`q]?XF tg#28bc:p[w/Q9CxAŔ C ŅxqzEWa 5⪍=dnb L7e/ePtZ)F VUJ0^:v_=PD@s;xb5wɒ%b@NPdu$65I;~UiNsRNÑ^iOۉ)JDL*)=I&S)XM)vcGw Ts7㥋s?BkiS0I#_w!7qq bJ,:FVO ŏ=[_5q?vnqY"Ob)=bSinNJStK֟l?4) iuYRp_ r>xfl\Pp2ٿ")P{u %̀_NjSr8\)?4[@vAnW ͇Xi5G>UWL:Zߏ#1UBnPLJ:NTn%\(,                 !9ڬ8%KRR赈hyDw55(u#ݩ N:TKN&#vP۾Gu~Z~H\Au*s#/zcG{zF)RcIbڏe/YЦVQb=k]'8Fx{_< b$Slmw/,*ˑ @7#p)K+އذH'd>Ўo*)_ ` I$P_|b}d*d T%P*}(u .(@YݻX<4hgG3H2E($oI?/8 8 'b.Mf{uR|<?]&dm*>E;}sB[}7gik ?@cPX9ۄhE Q%!m['V @~'[y`vZ͵rWȀ_WP֘@ ̏@~8 N=Η5xG̻?&'%C+ċw}qL׫.w]߃kA5b|ԿH%˷>j$w"+v3$B i,"8 RcvEwª?|O&;LJ>17>:c>BiĆ14|̽284~a0tIEMߊ8xtpo&m~]tgH6Uƍw,SIӖvG+Џl|a49`/{, x^jŕD2O][zzLKP?~J vƇ?mLL]Sr|-[ybSGJoI̸;?1`|>w/-j5ckRnGV;_գJ*dKh"LSkQ?ߞ"zc44LW.&'~.jNAz1IK)@1H\pr6_wMŝE9(Lk_ܙOlF|i/WuT_4F5B G",; #S'K{j>﫟-eaFvzk|iߺPdWBp|UIHHHHHHHHHHHHHHHHvz$'#U+)_C)J)HbG'r۞cvVQt6nWX#3{9-1O|"(6X(1l1pV3R|' ^\_8zT Y|ko[[hIoPB~"}۶OJ-_gO&e끙Q$u~0/ Jw~Ox3$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$0X nXHHHHHHHHHHHDSzp mw]P΀BF:#-dyU"Ub0*ƽ6QHK`xD; o600P0:I! /kwtKSOy"J$P䀢pz6>^ux{4"zMtkśVGXDQL:%jHbܐy:b\/-*LmF4tJ-yjۭtmdОH,q6`_eE߫=t V )x8f{eO\\hHK@S}A"*_D7֖M %"TBb܀q΍"AnY tм>)#YLm']X#n.1.`~~Y3(l})SѶm⾎8Zv]y~Qp؜R#'J'״f2XXy2 _?B?).A 7q#ugj~^@ .0HHHHHHHHHHHHHHHHL @ e!p˂o'.6bR{˂k2P`g_W* 0 KL;`;qo#W &puKn]lGlr;#[`K&I%ŋ.PUj~{> H 0?~7źU'p:ϻs!t7ACP?<&0ކ 7w~7XB`h'p|O\"]͘R7sy響QzM5x\OBW)B N{.唘ªX7xo)L[ ߱)xGvjDB/\R:'Gr(\>*Z-õoO2zi{jJ)&,:?.~m `lH0 ax(D`(W\ RRu9rEk>wY&JJON߷{8d͍{Gm|Lve ĦRz}.:!SPƱ^}a~|uW|Y,֫| PJA׌"ᶹpGIHHHHHHHHHHHHHHHF ֨HHSә҅+mov ;>νg7J3^N>*vуˬDe0:O76jhF2wGt~4}Hc'> 4;Lҗwؕ}es&Om4SHT•;m|=To 7'M/_'~2cvvcs݀0 s+a.[vX|;DɅ %5@:I'EWt`,He PCƷPFsf-Q6m)#gϥsO6?Ws5X)(h>7@c?(O;8QSqx_~/a~⦔2nԈr+%Mi~orֹ~Hb> (S`:ŔJI 2FPpXwQ WG7bPDtZ=уr߫qՒN#77 KC(Ԇ{L/W e4Ngr(.^,'=Yx`h>_wk|֓؁5ӖGnGs]-h8#/rȇƁm<+//qӶ[T vG9꧟^1-l7:섄U8|;ғ'ɵNJl|x>l>yʘ/t!*roY۔qX\_6WߏV _?ΖjyC}:Ց! UFa/+J JӲH'l.7ެ';uS o+k#؉~sC=#rr A;6h+Ao} ;@'K}|r7h~7 +÷=mmbƴ뮒~W,{@moP^үVQU@> tqоGxn0qu<[m)U Uw߽ˮسfRJ<Ԩ2̘IgWăP֝[$*JYH@TzGQ}?ZA+t҃z.~V=nzoa'4v4Rr_t[1eF_m0BrܑIMQpP1eXFWhg;)vc+bP2c㗗n'|#}Vi)'_ @? ,n!r:, 1؉SŎMUŎoGrjM %=a?># J%-3ܮ mm|<ӎ& 1U`[bnѶjؘ=B|W^s3LI 8]PϾP֠~?g)ǟP~ɞnI|\ԔnLU#i;w}nRu۶mr[nefgJ1 G"Ͻ,5C> ?r"Y\)ǽ۹SLI/-l|#ob *i(*CXؿ?XghKyY?q JTn 在)='%@XZH7$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$K ֎GnN\.عx/J-~cЏ뱧7.牽랯Ev]ooú#Ρ8U}_׻T !^/bPQpي'X!W! ;+ >]xeBݢw·ȃ ERRz+sCPy $6A!#4C@HH KKS}~B_zRRzA] ^\. 厨=Mc=&*|Qw&6?n +Pe1cj;TABЁ?%ei}bԀqt<7 ݥJ$34z]Re„w?nuΧ_Q'u*+}A|}d*)Qb<bSl9gu֪2֭oo1^ Oa>pqgкxX(MQAM_(3PNQ1H 0TL % e[ف} aM3:!N(*dGqq~tg%EuuQ1[[@֯sntwխUO޳=sʽ$0:7ޯ+!¹RNJɅhYuoUZUz{O޽.k`XaUX~im{Fc/tJ)-V㜖@gPJiF3 Xk bÂ-Cކ;zRʴ~+A$ZW3""H# F`U⠣]H{n )&wʉ'O?'T[[TQU=('(N&0 qޱXv±ēE=c悜xϛr ."-h}8{pÒcX_)3 ND BQ!M`5E~|Oݭ*)< A3N1옠v ^goAP1Te f 6qN9d S]߿! đ30kLś: շ"@P,N6XHHHHHHHHHHHHHHHH M{vy \{͝Hu(`EqV^{]R4iŔv<[ɌX9B;g+.ګEk2Ŕ^4b4qÊX!@-C OHHAPvA!7a% 'iEiq|r^-hq}= @5X5sp|߆RI2}o'iŔ%څBP>Vbd9X مnSɚDsu8+5gTUhϠxRXY2[ZoI쒥 PW?v'I/RHb#A:9o@41z洡-%lh9SBєm2:nٌ߅R;جcb}x5%gT Y\3H>zxwC$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@MF@A6Y|~],(i`x,sK6>]nr ?NOPJA?Hi륣X!_/6+H$@$@)`?9c+gk׬ADm׺?uVa_tڵ1?@844^MviyRK?5a EJcܼcF#lJ)o} zN?(a/u~:&_V ]flT}6q1k HS#@V'               ST           ;JJ\N| h =WRJYHve$'Oq1ńO&dMPGMYE( *PU`9z8hpT .=Խ|}&RXRٔS``Xz̍'u7JvquJ8ME%tbJ:ƁQ @o[QU ;vj$p؞u/=d?WV`m꡻ řL$Є~[L$@K -?FJS6'T/w֔v~i&#r#%=_cWIM$@$@BB(c|v׺.q2kWܘ2eW"S(OYxiͻ:IdK Gq-|W1~܄peV<@˰BS܈ߥ>o^@`el~c"1İOB{V% R6T cLrXLЁPi PE)Sl2;,#Ȫ(Ly>3@R.JI % lO)1 x\I9ycJ)nGWd_}qHK$@B ys_-+ aO9L-Y  a!Pi ѰS%-b ;Cu?Ale_b1B}<_Ì@/ 7߻Xr* @l25,W¾C)'(pT_yx<牅Qsse.FD-s u azpøZ(o#\tW.لҡb=xAyr=`'E]sHj"59ae                 䃀kS|(<'hk;JW,)ĺX1k}ɒVH@`V4lϰIHH`{mmKVu;,%~<"hv/ 4/ޯ&J$@$02 r~&Qb=w"pӥVKڗq(8 >㼵49e}}(W(+P]I?n|~l&3Px cE8ܡ} C}T*I=.te+ƫ͏L'-Nmh:Vk?ZgHcoL%WԌHHHHHHHHHHHHHHHH"ʰ2FNhw/__7LU~LI3h< 4=b+{Xtbo7bo}Y,VnI?i󦊝{~bW[@tA$@$B$$|^rhbOlZ/?I}^wv=r?IO;LJqkH{|I duP߯ nHH&0~NdJ)[yєnnyy7.uM;nصk SsO_I?ԓO3=7)WЧpGp$ae2| XrRƵJ!aR)t<+/o3_/~+k"*$ےRI/9|%H:}ᆛ:FJ{r޹KljfLfBo~Id%?"zC\߯\< %w?{N$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$P'D+U^MYVȭrn" &\+u)u+?-so~EyP4N^X9Z* 5=t'ؒђ[:9.Ìr ?y|Wni`]N!a"vD] gh.^ OUCsK%^ ^"1.^۱:jT%ڼįkoCAɔVl{aKROYcf x]z[HT^R]ˏWPM~{(?ԅ"x!ϝpsr})YA>/HSعvfRz=~!N<⹡ t /> ؃K=;c|* Fx "=oJ(/4yޢ^~~pՏ%~nPty % kȞמaTUjE犟VP%ž7ŖL*,y!P[u>'Ҏvή7ܐ\:8)ϫkd̿&k%aTmG*,Ò^>JvҘ]Gŏ #_>*%OyXxnxp^:OIHHHHHHHHHHHHHHHH&B- f|YJWXb]ֵTBXlb|p,I_7dg.Vz|b9tAY#£y]Tzv"GNk/o<޿ܴIҳ)aCrqkS+n"$\PjAyg-q NdsHHHHHHHHHHHHHHHHH*>KcpR r .됬Ymm'(- @BWh.JCl#@;JxN:GmcN2=)J$ۤCͯKƋm;nH@b_/h߰tYt3@źSmZox) :uj;~0w9!~ o~ olx}ԛ0B`R^} %^Iuv\cGv9q43gl%Änǻ\? n|`ϩq;Kg':Vl˘b7Kb{t'>kR#KwTv-?vڈٖ1cH dr9v1bq_Hz/Wy92' wg#sZ!k\Bu ~xw‡u\?xhOs2qWqߎAtwwwKW^_7b_ӫb{;2%(H6E;3< kJ)w~9g|L6_Zw9Er* :xT1qr(0)d9aG-߬>M/X!5;b?I-M . 0HHHHHHHHHHHHHHHH!]_T&#ޯ}rzCVod)^hK٦NBݚG@25SyEKXig| Q>T/@RK읍w(]v𛍈ަlj'~$b&Qŋt<|A9wJJ?@GDC/?āQ#:0HGFWώϳ?Gٌ)c=%?;E¾v{ƁO/@Bz>G:8qDhڱ{ca~"?t[l^F~;X9^OwԎatwNw}QG~I\<srG0}'tnͿԷvgIK{ߴAx-j?jkN`WiE;Z橽v(akv`;C{>e>ϟ+ا{}bUgT_|e=_6x鏓@/O`N6o* njUe|^ǵ؛ SLqZ\xbW@9<Ǽ6zq@V@M <>j`(Pr2J Â-7Q4~g8ytX>qa:%dߢ)>0Y^IE@}0HHHHHHHHHHHHHHHHj ˸jpU<_ `؉]Rv9- @Tsg))v8>al CkHPJk#t>z}+G\GpCR :Ǒҷ~T F$AF.\5jf'C! @)inڎzjQ]]< l `+ vC{.= vQ>o>ĖyH?*{l w1zP`R mSL")*`~E2 Tt2\$xUjS@1(vG^~RP(2&I*lƞtٍq0_<%aJL8) 9tJPo(TA~aq=a׭_@~X(A\ I=O9oׯ&xEʩb B2 EI&ԁR g8'4o(}L 09BAAf1`q ^7o|O>1-RP/4eGR]޷\$O .p (hzA:MYוiTkFE$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$0\2\. @[5;jRW @K F(hQdH9`C2t>%ɑtPqu}˨Q߿(g?'xJhF ДN$S8Țd TrX( |(o+e p>R,gAy+a}̔HWRIh`͹=<ˆ>LG%kREi@ P. )**M$ߢsy(DrP=vBqŮ'\gAVZe|^Zc^{Op,һ 7J^.lAgHH (^~kX|JM7RцN'چWjCu}4*J#V{?_F ޱ6 @#:etS,b'u[erʕtS ˀr@w;~evE:e<;sQ*=~bWݿBNw ^Gs켇JVK޶? T )&qM) pMZBՋ&0%TB%goή|*@*8tC$1O_y-+XfDaEߚɄ% dhиaP2nѣUi+`v}OL[Ul|w]Ё.e%K]G-(U~j{H)n[fU(^{Y\#\k`Z SQs3fq#¡1%E:,\;$лwX$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$0(m+8ePbf>l!tVXtUW_,'W_stu9+?XÏy 0WxXqy%y: `%HG|c?:n f]k^_S <}.~/ؐ1|<^mz5$v TiR-B)eTN2_?bD&pЫ`0>Sw=x%aEJ9 +>UH)*,Nφ‹>?\X}5`Q"qx ؀~{< Γ*>pٗH")^(RzP2L?eUA+^vZqlEH&D2V:>aNb,!o+'Uo+p=bpBhLFRQ-7$onRWq=> NS2zفuyqG_aO-sŻV TL Z                D D]63&% -=( *=V)vb`#==},Vo>V[qgNZgR X˧X=# Zm+OXHH>Rzb.zAgO;dJ ou£ο_vnP~X :yIw=xl 'z9 Ƿw](Rڻ}{t>\lV1ˑ 44|{љ{!=,M'ᕟsNO}D3dp7W?-Yj5G8lg@rH|WE$Јq?MgrrvXN>eӬot{m۹{p>EJY'mV~ؑ_vc'mτaA8U:ț2I6E3zۼer-hH$l#=vK?mGNbc?Rspa< ?.YPJI~Zqp(E}9@vž>F [ﴱq4RwߧboKه;J7oخub܂2?I(}`w7QlOuO?G[>^Pf)>?}\٬Iydh(`%I& G*O~׾rW)"LtA&ftFsY(dv]pkȝ8۱& 02 @ ԑﰻ K4wjw|+5)˕W' sN0h\ r׾/.M,߁k=D7ːeԃ<,C?^ގGڱ~ŇP$l|\Um_[/߈AtpF#C@_w@>\r_)̟VqފYp_g3ə"WW\~sϘ,J)9ۡjE|QxQ {= wF/ڙ4fO9wsrUvAv4\ c>O[vc~7it[{q}~W/\Q _][)p~ Or4E7qZ<{;S ~C|/bLd$}} t>#Va>eFI#/])oY^֬ѝvwE^ vևg|ڬTI[W g^ 6aQwG<̪rH1EAQW'9m=ag=vc_?yCI!#4 EjI"G8vm/4nx[h^|99|ZHǑ?W+y$k5~sM:)D r1mWxS.)v傜yD|xo5qR-oݸQN:C}<\y{NsGɞ[3QI$;L1ΖN>^k UcG?7> WX߫WW_uO8SgsO":9pwbG쮻&v=GwV9rDGY}srn]dχZuwo)(pe}zpx+*|IWGL$                j jk^ `YgN{V,V [ꯟɋ޷b^pH{zw{@wIҲ Zx˔?Pv8 `Go=#a|ϊo{.Ww g6bΜiTݟ֓[^r{-w/V$ y=Rxů+=i}~YR zil78K\;/? _x`UEO~\~߾+Sҋbb¸|TNCƏs9_UmyТ{ %آnlU`PEH1@"OHaB,(WdJ*RV;@_r-RMGa`|%¥u{O&hN[oJLPPkJX;![,)$*\1%7, "N-( ]}k'z캀bCPTo+I矣No :ZHa>ϻjqܱ泓T5oѧ>;Ok%7rHv_47_CX*bJ:. (lt#[ qShQNQ\kgw~~VE]Uf%                @ *B&`JR ~/0ɹiE+)Ljmk)#l)W&tVGliӎx/>Lmv$ĞD틟7PJ'VbOwIm??' ZuGϊ_-y?Q}Rmv776%D㛦|,CI;osnxk{AuxuhX-m_:l(A r|vHwKL4lrd)0%=F~b'e*lڴY7U3ϯ[(sl$̿d)Bfl/7:u;$=2܁eǔRl"s)Sv?vȴgNb&((HpF9_龅?hϕA.>9tƮ׬'R@@= ?XkhA9Sܕ-m_&eMoO:p$CX\ul1fqZҮc8$Vfhwm6oC1^P,o Ix> 7N$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$TLIX%뮹97o!~#JmjΖbu!%Үr5w~.˓FtƊUS8t[?fSL->Xf-U.nߴbO$@$i>HoX]1q_72ب`gϿW}&tcn/آ(߮7I+t7sԨђӄo7|^bGx~ܛb[}4?0QUR'} 8}kjTL`̘}WHY778A$(@T ׅ+P'Ga|d%.~EY|2׀9FQqnHM\_ŭGx^nv)0l):ā͋Qv}֯<gmJ|F;g\@[EҊ)ѼQEB¼(>ȫ fwoT{ճ@^g?%@s^ }                cE_[bBuڮ-ՄRJ+:J*6>-UIZ ) +$yiqmO㆕6}v?eݟ|.@`%=Ғ MĢXb'~9OUR#A2 p|Fukc0~}.~*c: ZںG7~|aNe<.HNvwϨ@`6Al ?e^&MNz(s_(@ew` 9~P(u]RpA2k1(E3nq)K9D1; ComR堬)@u}p[n]~!;7^ N6ε*G B-xct}<*xM JExqzVђmZEi, FdbJ 8K$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@CE 0& 4Ri6,zXi/1%8#y; @})l-@[W6=[|wAmP pJ̠;ԢRf> Z{< 1 ~ю?rZbJ~9,ҡLaPq歛SS\\??p^/Q*-d zv^4eRF[;F @)) m+5ub  @]䷭yu[g=/X酕aS) =IF޴^l4O>~-A>E| ݾc`]<<bnn[؁RU&~ߨ]qTv  b%0v" >-r$@)%0iD쩷෇>;h)a<,`QT;T;_7#tǗ#mF1ޑL`~ggXG;~M[^[̪JO"K(ƕ0 NzJd5+XԷf4#DY/}bS:'O{~c~ZF''tbLjS?ā .(A|oq]kђ=v-hE a(k $Ħ/pn]'PvT>Pk ϕ];'Qnê ZSN]]zΖ8>>?47z.>wu0';N sukl{K3yqh<}x kG/*\Pq4T                '/[811 \u%m. 4l몫?`TtEV˯Shc~|qyk`xB_{ׯvBwYEa:R{ӏju{MNF`$ ;yqz># H`{W r/%;>p?u~P@p6C`e/=s}|g$\2>JE>*~>gﻕ=F6%syUǰ_~?/H`\|)?)< 'U cH5<|a:/Cuc|#rZ 8贏/?/<,H58m*1!؉4onjѯ Q,PBU:c *zGT ;e)WPs[Wex_qydSy͕l{j`]?|);?ᤣ%Ntr'9x\W\@@KI7.}e`8ʔ깁֎@TSz^bMi^ESY)ek~|;>~RശS.YL,qE|ç͞)M?Jl|ncE,>'1c ;8mr?HOgplCRH*gډ:o>|rf<'WB>4ǟxEeƐӀQ]"               ޅ)n0&LXoݻpx|';;:Rm麢S簫vsUFb9 KfWjyGK OXyQPQX/vX-/>TZ.ZssWW}b 2fgي[>76/擕C] 8S)̟Vq}.H/3Dd75ע@"h;4ry\p/Į߲Uey=CB|?Vf]tyÝ~*lIcy˜3sj}y^\ub7t*|.v&{т?J vCMI/=K~ɹGtGp35_fQU!$@:^t$s .MD{yW|HXL8E3ByS?+gw;$=:_P7M&yۘjVĕK kǧ/|ɟa)I+σ}s 5ȋeUds2jC"cZΏ_hiQ?=Pe&m+4Zy(Ydk P/0i}20%ύvO3{N|H  Gye*?WC;'smb g5=T6c62 ufm~AeT<ABbĄpzYATnQ0E|*5i3 a=Ǹy-6|ٗܟ/{X}_.#T >!'|Xߏ$&z#;U,sƀOya~ޅX9Hb|x]]Fͳ)S'K9)vڌ~$ ^}7]k]/S;~ο \\m)#Ͻ8iw@@HHHHHHHHHHHHHHHHHTLZW-ZИwv=_a>y0s$ib}?S_eQ=t'-VT)_x+wӮR?x?#[+8Ewt@/g~P8ͤwP4sTr>>Oȴyb Z%(QRNƮ-eعgbG+/S7&JTRV h_̫ڤ#~&}<&_诱 -i~&J$0t-S%n15Bb ,*jaw{QbOd|(N@Y$ލpX ワ"I#_8/ 8E~z(} BCZ'bϏ  m Q9=(ݲ-T%a'pߕpb!"u۾Kɹ};S4 bJ@HHHHHHHHHHHHHHHH@ ȹt=QK.;R 2:[CZ  v/^;k =o ˓ <*3EG%J(^OߵJ$@$@CAs)U9xr?k2H!ٹVemx%wTN;Rh &PlJJvꇝs(ki! +WPӤR)Ka9p(wYOQ(dvl@!PVx-'sDYS@N‘z%^RJǟp]~|/yaO<~z<'m'C$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$ <~#*AtE$@$@$@$@$@$PiU 8M{| t1| Om<)r )A6 N"a&BöF9@i(dLy"k!%ܠ)N[1rR^P~eYA"l/l FI%{o_xA?AIW ‹9) R VGkk`gzwȋC(࿇8!j9(uDחg))eߴNAyH vA 9:jJe2T\J6jz# B?W;3w0k?}7SsĄbc嘬JN>@*|Z# @ P1%ͣMkΓ:2E[V+Ջn.s6+ H!]B *d/v> 4>>wtcWXG@"JŃ%  F"9~^6Ҩ/B 7W}a)P@%ؒj&s?-;"łFEP. !Yaa\zTo/hlc{Zy?iC("J "L`C P,(4 zUZ`;ZpȠ%Ehւ E}+KORE}2Ҡ_zŅ}gZ$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@L~_6WMOĊ姈w ne"vp"y 3尭($ђ @h3A>k1cws  N{ٓ-vok|_IyUNI#RG·@g|5O0@ p 2sgm';O \c@%               SZ)%Mhۿ\#vƢ;kLX,9;w.R\K$@$X :-Z *7-?S9rٜ]%}OXe $J,Kkrp_{YPTiɷ5v|G{~?_>1Mpllm)]lϹfl7. z ̙rCNsOx}ӝ_w;صk;fJC >}ؓfoI6% E`5%qj ׅ)dCw(Yh~+_, {l'/ybL.7M$8_\ga8~y4q4sXIk֮}ԩr~yy⌑y014 @uZ)X]8#VTaE+Muyk)Rҭ4"~[jVzVf1 (H?.T&vV78Ê?>+?jX_]%Ǻ~y)sOXOOH`;,_tϳғFWb=;pr~ywcTÉwтۍ{Jݯm⨷gu< ݁B3h'8̝YOO -߾BG}G,(p|Jlh t<HWA?hI` ~}=0n2C9 刺'z=ߥ@o.68KryTB8 gk{AeÂ\YSҀN?s[W;p-<'e\f:Maޟ|WT٩ ah됬)+{)pߨŌS,7{>S}$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$P'ޕy ƩNq{YJ{:XI]B[ 7XɉsX(b0+TZ! ?-qzP<̡O/)Iw)=8/Id\ W?騏v0߰tQ=bk)ŇP$SڎqSwd-Xx.$jO:;Ϯ(x`\J6new|<]g7@-ћfFG̷ZyoRNߤt|Iqi~_Ǵ%Kʋ-UeQtG[[ߐbJJE=7ŒLN5}-{$(~9-7*?Z~2"<<829mxad<SWIvb|hm_<AVJQR$tJ kU^W wIǭr˶sg*̧5ϫ"+҃_UlEjv 0>H}/0n]8G3gw[K7gL-z%a_qJ>Z{m&HПJ?>x>X h\|V?p_y*f\^y?I,VC%Nmk7RX}|.qqauיw?鳿W%S4=5=                @~ =bN~GR̈́ϽJp5BtJ≔R^"0NRc_mb@I7Vox̺EWGyxVWw,O2[gS^{_ګ7>-@]>gh{mvYHq /^/5.F7]Yx:m_6[>^6lMnSگz } ԗ0vihܸ bM Î~n O 0{ZI;M()~LyρTwJ-2ⁿ؇|bt[!)ܑ=ٌ*#dZF".5K|SfXY( k6k)HF (|#_ qUJu1e)e0m|pqE Wz:2xGOݯt^X@Ѯ}-G}o䇎{_QE.z'r]\"nƎ0c}@򏟮6V#+;PY7nkI*m#}F*Kw?Jj=)s('9}Y) NW/?=w} ̚bE|J5&bJy~ F2>ApD5q#3XY?S(@+E+3&߸E5Q%!rpx3m$r׿_>Y'kt}#EVLyE_ 2"HHHHHHHHHHHHHHHH!OK;Yd+Xh돽ÖJ7 QK3V"w 8%!?$җgɳ=IU?g% Txz9Gv aPe8eH5Oot'5ޚ ,J"?jTMg|Ս+k@FΔ?WҽIl6w<-P|_AsŁV_I7S/I$vc']|a,վ֟$b.X' u }?PړLl7N>bhPZ(Nh9{Bj<Pn2Ej L~vvG܇ބD?`s&OVn մnp߆B @DáKٌr6?Q` DO#=)w.n!| )(P-97g[(8- lO)1 @bJ:jDW]stiL)+o+dL+ ht+Dme5ם֐cq]s]F+^cnySc~:ꋧ}V~|z-vd`sgO\obƊ*+  8:mx,YG_kq~e"`c[m|I;TmI~_b|M2MrƷc'}'n))6͖T"c*?xn#E`J"~C o;\[2ōXqz(]*Fh@2 l82y1 e|(?j>D+@[ {oW|\h *(_`Et+qEgT/sɹW0agGBJwAS6r S0c/DH|^z㑵> ʆ!D縌q@p}~1YSND+.~b~c#7`."ց%l;Qd2B >dFq9pB? q/f"vߩMN 9$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@ bJ@鮱%Z|ta鶯qKm;"zsRUXG,n,ĚVMVHk;Z2ZgKִ~8\L_[)}!8dNIQbG//+_#t XI9b;wHm%rjGZf}Hkz;y_?_g#KWOt7-[SM<@^UY&KHB + N&P%:28F;o}g Yz9|onWQ]=s{޽wwpc x>_ߐd٧o;!xJ s[}9O/@=bbSqJ\QYY%)UHZLFq;O2q#|˅-ɧ7wUΘ/$-Mb%!zwQQM.~T]cmxpBōx"hP ҹ0c9(~$gM8I -?/./@.&^PH;ۇ:ON@W]ٸ/_ݰܼ^ ..L$8­;3(+O%ڕJO$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$!ĎX\!Q*+)[?cW_9I]wRVmoQ}$3GZ/A64hOd@#B3fZ~ػxHk}[U2U耟 3gTڝ3(wVJbq[:rprͧmzؔhoTNU1GWvϙQʭnzI,V"=ToA]TU\ $@$@eK Åe;;:fտ:R{=QH1tx!-ן(vTUJA?K!Ĺεt;_Ʒ@Ŗ~@DRUNrC,ԠRl?g1TF' -m Y(m.$XDx^qX?җSҿc'sxٲbP10JaR%ZڤDV*xZRjkŶ"?בH<0.IcƎ{< 1b?B7w!v>b+*+Ď;J+&YsY;oN98?yb<\l޻@B?ܻʘ gNQ"'fLH'?nib'W)q9^U\ԧ?&]8Al# sh}" .ĕI+\MKQ}< }0q ~'/P@".\fEG- D);W                WbSt^Xێ+uZv^v-ێ n*RZAGqMn?roNllh??7a 9 顺/ECR+T s;iqw]֋$}e]7g&jۺF<\ou؆ɩăNO`;KWu5z}pr+/qu"t q yd9]0UwPqi{A)?{bHp+}+EzƭHlC>*wl>Z8?RQC;/of 7 M n M[lw̭l!;chV8e؆i~$$i[=RQ;QY0ʥ};8IǿJ#>p/\gr>GͥҒ@gv*mfa= ϤT no>{*sϯDE)1|>j3%+tO+} ;<c0G@9bxU|3W.:K,w*B?}O<% {M7vr|=s b}?ZOcIg .yn،)$ٟz=b}?ȏ.9>HG)HHE(}3.8[,AymO#>.N%vJ} n>*/;|w* #k_ܾ)cz>TLή9PTl9ߏ+/b+:Cio|6-8y*u̜UԤ?/zL,VXb\6NI'vE~&n{).mxǝ*Y3g Eh# pyÃn6n|,z0lHt%yt̹g"-Sp߀<8ZSɅy|^6s0dN{U>ѸYVYg%3ghH H|" Y:B]8bƜ u;W" +ImHz^n.?]-KLj+/]'0 {C+G [7Em4vO- %sIa(t|i|Y0gغU?,OQE}芏r/|dWG`]?W(EKEKʝ@2,]|vؙ۰xv=v+Yl~7 ;Էmou P7"OXJhxO{D>%N&JF,o$ Uthl.6݉Т'$3{j  RK7ѳ3hGIb=*U<$Zr.xJ(Ɂ;q^Bj H^ )@ }sքK(gsB]/z^UmiO7/Zz7ܰG%Fig8 EW@ y!9qGL` *PT1l> %APAa⦌PKU)=#UAB?).(C6(,s9MhCkfq5*~?$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@L ־(w)T/ךU/!cZ6~[Q=}X ҍx)utDN@'@8rӳ榣,|wʼn#n);F[wh>dFi~2 ul]'a3gR̵~ x|}nٝH5N;nϛ'h b'V~0\aP I 1y:@xiZvť<_Bz>.Gl\A񛋨Bs(~:7;O6-i9ďTЎ3z_R|?"?~F_/^I*t?Aqֿ?pJҒ@k푶#u|4jWdv3᰾e>|rR/rMxDͣ_q9jN_wϷlj !׽i3uiKouEKAqb.=qw.P<_=Nv(;Zj[u{jE#uW=5{T|EKeK L);dܬF'.[PmA;(}*4)e((\ ^AXYP.hKR)`TuDW^WTPJs(!7LJ%/`V]j 8\qpw٘(90y7"?{2OhjVx= #8F%_kq/;$񂪓qWW@s^.YJVl*8* KCY7[o~uF[]                $@ŔWHHHHmdobKWq)UF js/x!Koƍk݆p۹o;Mc ]ڼCW*jPp;-h'}+0Uϴb?;͇d˜w DNr@) %(V@m#u|q F6WbTuexj*֕…PBBɘlW*@Xϸ]'0mo鉸^'r*Ag]J{:/hgl;׮<-o';`8ÿvw`8%{} LƉv'nP +pW)E4Ļ+;vwN,w\6LނYL#                nH`f7J;#%75aae5~+k1 eG !ٺN,h_/ ߵ׋GNGzЪZ6RlHzMŎ #OX~9S$' `^QAgнFf$@$OzosSۂ{N CU8RJ[*!Cx ?.]kD`#h5bH2E0Ga\Sp1vN^:v(q|鴞P֩HTh"m2fiG`VuG{uFbV~-RUeB%mG)-_Zlu.g\Z<7=SJC^uܿzvHtvǸmc%AE=ggy5T]9_,qQ-/dgNdwv~.C~>wO`׭Wg. @bO+v] 0k7ɗJͯRq[+֭H\znm] {O籜7'$@$PFrӇ7W|sXw8䗬CJ6n+0K(zezQ^_ \Pw |c;& 2@&HɤSi+.Z9Rp [=buz ѱ9tcSL  t@b ~;_:>u$,TX0g'eKK$~!!P?ҙŋ)UrȮ=Atԫ@QM~Ʒ=X?׸[bq_|ܩU_J@/rzBmG֯<^M @qO>R/b^.5tIyR^('40K(2/ υ}Ϸ6bww>|$OxZ3=#FwhWTqk*4m.T/8I}b=@Xcc;6ޣ<]ŎdR#Jhk*!GNi21/!Sj/9M1SbƄ+VE\2Ik~ =E'N8ss g"TE(4KƁRc^7^79u]|ߣbql5p6g߬"[i'vexrxOw(q-]WP]];vA+nb}߭7قpkm\%wwBf$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@}@+Bc~sƌ{%ϟ ~(v. 7z|g64\ ~4$' `^Ϝlݑ|ʷWkԐ#[/;2] ?Q;cޜ٪r=,ǫܪ+j'.- t@v0̘w3KTxmb#[!ޙXHz3莘GHwŮi~%'ë[׿3\JSZΩ0K(3^"l;{)L6K$@s/}F=bZ,Dab?yĞ*5O?_{g&;JR(!| Y28 2)"$TbE[Ml~~4;br `^pG>Z_=.vղ5bSOG]ϟ?|*ONs)g/Sg ǯ$Ϙ!'~y1 \/%7*ɘ_z>(@%Ħ-;>L %.~W\o ]dpI:P.Lu"A:_\'Z/Z+A͇ FB  <<1?<6 ?mqxB<U/>>~l^0|                #о+ү  U@,XAcXz2)&Q xʾ%uHVYio_C<|i _Q=KHwޛx7\vXzw?K{wߡ+JW+}GJ- $}?R|37bWmו)?\Mp8aS妑C7"b0O|O?緟xX#Yl>ʿ5s3k[k[igDr|5۴S&ǾJ9|u ֟TvӞo7t!n8HǼE7~{,Fb?W;΁7Έ*JᘖHx:[:__E\7FvnNv)^uΙRThmSPORR%X[ߨW/=}E=Ql*._:>H#wPJ!mLv{&w47xD\?>h<t2Z.z QߔZ#E촇LhVA-^Ib(SINa%3?u~'v bwX}>wI "G2?.~Ix+׊yu~5%;RN!w|2*~iUB$b8ŇL*BI3 ]m6Ǐ+ܕbϿXZ~JfCAN|f@zǿ}b-Uw̸#$W\"sN>s*a;^#JϮsї#}@<]dcͨR{O N ~|ȯ?7cgW_q:_JX^5/[lKjwG!xugC1GrS@mڔ?ׇר_76?>F͘w\Ej=#@ώ-GF38#Ub HВ >"/E/" .gVƙs'D-iS_9=_nw]~ד܈=~F}Η66ooI*!&]7oHw߫P>P7\IhPv <2-PhJh))hJ-5߉JIM>9S%闋-=_'*8`a圔)yR_)mbq߯=pb9nJݘ'%(S兴Mؔ)LQ%2x,BA`pzv) PR@s,O;m UV Ś)@Mi*<aK?.zL,3X.,o}{G8\_k^ɸ5<@IDATNGKbaಏ㴝.M(We )C ,(]J8~/vkInT?oj$@$@}@JW_^X0Oۺnᅺ̩`9F;]zŊ/'<(_ v)'boW[Np}vov .AcQbyP~>˘SLIhzq1NUh}ϓ_󁅪 g'I)/V]蛈$Tb//cݬYƙ& {xo K:jq655Jz)!%b71uG{XW\XWwVYb"z'$3=)G>ʵqĵp|J#Rb5J8z"(|P4h/:݇}b32;/cq18z֪(ogG{5%               (yTL)!b[yh+tO`Z1f* IG~1aKpupSL7>pwJd*6|AJxqe4?ԝTL#  )IGoO1|.Hk7qG9#ݷ~9xxL$@vgMQ6>bPk/ l턇 NLX9<NJ*b͢S2*{RR2ش]g?q+ߒPEF3~ɏZ1eޯ ^_As?_SLg?B_2d:g3P>SVlJqi;UU:OW[\1e"̻Lχ 'MMiw(qb[z ;oGW?nh 1*+Y7)ʣdFP8}߃^N}(ů~1/Ҫ܃6~yۦͪԟ~+E0ƁXcxA0nN{C\z=@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$PVRVΔ/dOEͫ/VFB}inKRQ_en˗krه۞u/K7|]y\=ed$@$@QN(}Fn_eͯunej;~*~(lƯio|;_8_oaIoq-[B&ԿO MU T"*# )dÆR'_8'׭|E C}ubKܶ#0V'ZQ)$},_e(x`~M$/N)E' ;Ҧn~"Y8P~֯=;-ӦX%R OęrUz~ 4֛oiPDKhCIxmW,HP-4 dMlɍ NYoc|XiM 7aCA#N&tJ5n,-vX/8D;SpcT_WKGC$vw+vstZ <SL^v>珞"PFqKVIfcfJmƚ %N9Σ mzt(d$4ckJjcV!aqAY(8y& El89|2)SfnsͮQ{?FWsXYe _%a&"E\'n <,DJĊ,ȃpZ Kʔ2/HP1%tB$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$o~*I 1 eIV4OVcCG)$p#UBY0d 7/ !0zZ6wÄ!0j|E JZ.Bh7Z95Ym␸T%;:ۈrw[r$@8Zwmh>M ֝Uӡzƅ۫ R?J=&=s bʟc˖.PX vД2zsnAERRIl{>e\5O[1SS9LLUø^T(kL1RM⭪aEf3T|ZX(ġb PŔCFs9ڐT٥>@k>oJx%LJT^7מZƌ.ʎ}ZlXp?Ό[~K                Q:?+!6|3bJ)nIeN J)Ȝ>|-!ӿ>MMۊH(4bgV6BA/H#+)WXt=v>H9Z]' Ui '?~pQzo/vɿbd@]$1!xŷyq;j9]pBg(tq)-uPW[W\URaWBuIw\kOb݆r(sR(ߞ79\,_?Ω)C G)Z@) RUL%<*SIUغuMΡD'obmǔbԂU`U{\^TeQDNT!zࠁFUؼm9n:a|)sP*c6lI5?3v*p&O=tdy|i /UHTJqU1WHD[[+~+6f (PNAQSx W]ګn7կ; BnAC(\a~" - /PM:# R?l* JRׯ0[;ddoڋ$nT\y8MqD|oHhYr^گO bd@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@}.ꃁ3!PW4ܰHW ~;5.wVaTyHzluuE܂'PD(`u~O В !P?0YPW?fi+U7\H'mfM>H.^0R#/;åhݔww DStNY|;W[=ѸK~Ϩ,tGP*0 @A&uBUzhų]wcʤ:wyy:m- ( >(>jtx[Bvʻ΁ƱSCLÕ{!>}bb4%L*OF1_1oP#@?8 UIh) (@ȮS(@epw\r؇xJu(W". ua}>rQٓO\_:Q\>XsƔ]#'&{S[p7PA:p=D>^vJG{o]:IL.xGe>4qu=B](_Ϟx*h;Aet( @ P1XVTϘu8(2o$/^!ȏ^'q1? ;]*&`'Ө}UI['I~e' @~[xS$ά~gĮmy##vT-?qdϩ18q2gbS)-9`Dվr+Gm+u|H|`Є +˦bߙ TfLUPޜMBuC)Pt!0MK~89x@E%n\Q4g0i?صͯ?Z>w7Lտo^?p|{}(@? P[W.S$n[!{~-~GxtO{.veb{Qxk?)/пOM Ntx T34\OANB3Zy>E^sp#ža[[[%Csc* HrM٤UښT lBD yOI $O1brJhL$[N=A*<kr(nΟ8/֊I% r#0;ҥǶm]- uG~Nd1 r'`y~r'лsK uSFD7RtF$Џ z=- N}^ض6U¨cy. ? @>,8/(]=ZT1%.VW5=C6mo[ņaBlBm)+!vc*cJոXS,b/55r{)lxqƛ͘ Y?PHk;PPG9i|5ᄬ͝iISr1(|(4p,]:,y'y;Ӗ DQƔ3D I$tr cERU%T!'QJ>8d\gP:I8ghn^^< k7 Gh*(N!(PD92#LdtyK~=ԏ>œ=n!;ӤO4=I)=Im @?"p+Q!p +m!lN '%nm3[Ԋ)_>;'h,DXS$@$@/t2oJwQ1$iIq*~ú[]z GɊSߌ/Ӓ =%r}Ӟ狛$@OmV v'L P.B??7 ?4?TL顁{ /$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$PĎBXEX+&XJPp+2sryV޼:*9~VmY+Xy9x@$@$G/&ufR x%~pLK$@[t7vxRɎCij~s2h[7 >R.z=E~ϊ5Iʋ嫤CqSHNIIaR P^1<{0q9)ݷ!1(z@9Ķ^'ScI{ %[[Ķ%U;JIܽQE*!6 *UJ%*l۾MmoT/`p2s) @iSi(Uq\w1d zn0VTH3h TI%[?[ $\Cy}`bJ` ( (7øAqIbMQ l\cǹi?mpܡ ʊ]7ăy>vVxʘbVN.v^E&_ElIHHHHHHHHHHHHHHH#?B`IHHHHHHHHHHH' TWBCB56S ='x_\2Pd~dC;2<<ח̞7T"BuKw=vQ{aaXj0 WI82Z/}iXzkVlIݨGu,TF)ni#һ#kŢ4N$MnVs`7=Z_"ppbRRӷ\1Uw[Єz);i˃g1H_VͯK;z 4"-Nv K@wW=5_J=MFC$Ǽ()a͋bۚ[&cIa'r>_AK21(X2w <38ϋSmگ* Uvu OhZ[Tq$բONk?q Ty5wj6/i.o*h[M[6MDB;cJ& ("pt6´M 6cms hoʛڷ82PFr[K5֠gÕC@EBMMۥjEN@~;Lͬ[+k_XIiuv9 moFM.Cȏ) ydE)9jxn%1}˴6.`>b|1y:vk2}yҦ 4z̑e9~}S!8IHHHHHHHHHHHHHHHvpekKSNlK_BK ?g+rG_E /[bb+*(@|\+? _>qhAU|خ*??Ғ {']ĕTH\ b~Ke|#F'@Ϗ~tUKGa '> bS Vp x h&^ )t@?uc>VU$Į]9ZL"PP㹶)$LVcbnRC[Fa rDM?wK>yuU}W![T17JI00*o`LXeI۰hsLe#`!qTUB$eR0-mhat71P`6fJ"I7H&kK8p>L:[yLky|㔍dKdq=_ N5v}$cϹ18"<0?B3P |]kFR1u ~+yEz|޺Uy W(~wFGIHHHHHHHHHHHHHHH[ۧbfeD e.;{wYmv K})=GO5B9eiJuQ;p/>KYcbJR)l?Pݔ1f+2oԝ+,ij(uS"){c[7uSv ?ä//Kz'#Q7E/8vs>?9ޒ~׫bϗR t>,eϻО.T%C( qMK1(oUMX}*\T8"rG>j'ΨΟ(1ݒutFԑr+ቶp%{秏<;ҙeϯ=~>oSlsD)]{r~|T9>/t^>g)47iUC!J+Lb@*†1$ځ.}Ğpb ~n۵BgF9_@}oIw<#v|+G\ۮvv6 A[/zPCrPbto|yRv,\"t`q${E|><.~X%8fJ*9T+%-ժ`Ra 1S:RE -M-R/m[;HjD)@;j).x+V0 $ ڽFKF':Sd^[U@PB ۆPLǙ6V%-[6V(<YAkYP NJ?O>GU~}/d"Ķ7帹MˁCM^'[Ta赍\c>LROk[Cd2ڎS@ f~T|~tO. mmA)';ok ӦJ=RMʹ-)k v[*Aoۮ+7oRg0a #Ku/[޾a 2CŜP\p]BF?T<=;LJ=S([7@.ݔkο_qbϚp \@ݔa t@2Xڬ5^W@-Y\h@ALr}rglim>ʡs9|#ǨAxssw/w{Ը˥_[)֭ n>OaQOG}uGjYqjGץX'q= 9pznP s 3+I6ta612){SbmkJ:f0&Ӫ"dCM*o ǟ*ǛP /RXqFe.xߔ1wP 5K͛-6)1חtFKyhҔWR)Ko=`*OLQ#qq)X %.G_mtk_@!=HgCK 2'|T-[B,'嚴q'(;KbR!                .],ϯ^&B*V?PJ/ݰ_]񚮔z,W+7u{Xz˚rE~@d!:--T/WPl弒ҝr$P /4O;',6\GP o?/u<話(|@˵~~*xs~zZ~-yy v*CM? 2l1Kf b.];Br@IDATBx-[%BUBm,c8cR)S&H$T *)l>iiVIx\flgm ]}!N:y#pq{gs'm$"֮5F=_-묝/PƀbÀz=4HQ*T)(4eT4breruIK a]pn5v1MvA9VUTml0Dvކ͏A)Jra"ס|A\o;xqqkNhU%[J)HY\1B)kہ)4S}v6<&                P10~M$@$@$@$@$@$@$@$@$@$@@Jw47K?tJ<Ҹm[;Ƽ[5(rGvTtv(~@{tQ)'%QI)?TT2D(!mu\L[l%nX`RQWo:6œ PI tBP"&fbv?=Rcb*6/ ;b6?׭W%~[+,%Nua}[m̔bvvSTyUzP2KR&RPH )#p2qq LY%tU>ql0490 ]T3?w O"A|掦0n5ͧuǶ*ܪ]i*D;5Vy/>׼˺_8Zcrާ\\( ù ʹ[w!vWwUʣ\y1{U+ֈ-+.b;An9VTե +Ţ*`CaWwqQQ ` A*, h?XЕb CSFL$rJ:~IWc0WtM2]n?Uū^JIώ;F)}^FL2Ůo׫=AvU$fIy«6T}-&9Ƶ _)@aO~V,2(XDNpʻ@qd$,0?0oa!.otj\}&ق]h*d;/;MAc!xn>7q2$מک:OJ|Yb0]N{&:ԹeG3?@{'٨'*D8yP%Hr o%m_K`WSr)ُM<&6/6 D$t!*Z wW>Ny|B)y(Z%M̏.)V~ @Ķ mF8C5*n͞>G{Ws/% ` dJ`'lJ3D9E/X.W-N4fژȺ=ٓNi~ܷLdikܣ%U[o'Z[b0=I3j~Ie |+$9o[# HH`TG߰X5GU?O_~=ެC2>Y/OHFJSOsŋ~,i׬7t"NG~=g?μ?\Po{6_SG|Byb*($:@H*qYuJw`mkͧL%(D_*jF-пAoqy` D*tuHEbJJDSNb~IWb]Q%Bhw>51&I-N iv]%[w}f Hڊ@i‚\3u@.5a!!rV/,Cf'X=B%}T*}.S,HmB1B ɠ^@Z ږľw[`P6PLztܔ)4"e['Qr] S-KlC&$̺HałD Rl6QĪ@0w0 /5g$@Rτ9$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$z ?G 0 )m_r5bWN@x{ ,G;Cv(y{3Vύh@CDO?䵏ܿ/rEH:@ <5SYb=by3>2~?;iqU/Yv7{3쐳e_v|Ϳe i TJ$fyZz_}$>{S`\Q);jv;tKГHI!t!WKL᱇Jreҍb7>%-пIi|})WlWZ/v=4SZICL5{o2\lrIW*2wb&P.>]PhCJNj L:Pl_bKb3]ݽr-ڏBC%-tIzv|^s]YVNlot]{6 `Lu^d_Mb7>>MUThPpIM"{SI D!3 ?E$ݫ~uāiL]N~E[(#cֿݰZ5N?ZOmS[%[L                ;"| $,3|MB[kBGk'gWJPKtb‘7WϘ{[{S/#ݧ麸yŽ5U2QS    |8c]RꖵyvUry 'VE;2UvRޔP*fKvPzS{;UЈU!اJ(*eUv(%?7XѸ4xFc2|r>/[aTq2SJ$%z濜ǦHQ (XxS%"̝_&G>w!%@$IA}4V)=w-]raXӥݲ)='c*2k']A(-ЫGE[W?PZMM\g6{\\b_rGݽs]I)`ݔMˆFTA|'(`~V#WOLJQnn1~                &`ϥMvlH`,/ғnV'kJ)c:yu#~;),^*s檝[.xo#xV(>(nZqV]|   'G$[֮`}sO{p>_ot{w?^! 'nt[D,;6GQҡ *L Uoޑ0`T~nX'v$ UaY3>* "DrJJPk(U8T 埱-+[d߯@i;0|Ly<1E(~o_'v[a_ oؠ4 mޡHZ>!` DjmVRq `oU_ƕ.`穪ozQQ< ^P34B^O]vlڼY7‡^#t6lZ/&rEl(Ѹy]hgE DEðIHHHHHHHHHHHHHHHrB&RNb$@# pTShW'R[M!OPuwTLQ'.j޵wtf'uk 3A$@$@$@# N$|~R1v/tZqh|vE$@$nn tvW^bSSjX}*Eo$RMU\xHeUpHLˑ*W%{F{5C’ (I)ı6BG`JPP.婘"|GB!!IQ+RIM1`́M6yua/"Tz< Cd61оi)T>&KloWؤG9GIAaPr*N6ezwIt|;Vr. *JLű;qPu RQl 95րP iږ&IHHHHHHHHHHHHHHHH chH`8YeEL#R&_Vo~(!D|8[=r~};p 3-1\ HHH<2'̆8tZl~%nplso?۽ @> <*쾗*$ЁMhqӒQ)$00EoN^'#DvE"DJY۫Cbq(Nm ++fX:GvQ[^BA\qu1FE[{K/kNӔy~i2otw*m|NݼOh4QH_}*D կ i+ʿ;:T1ō]݋$Q理~Sz%G) ^Fc\gMOkNHHHHHHHHHHHHHHHH9@$@$@$@$@$@$@$@$@$@$@$@$Rve_7.uJzbgr̞,<'I)fJ~ E;&&AKZsIUɡ&~DJ/Ba L&oI-Cq?c%Cl}R${z{>b}V?.u< QA& bܢH ,S;?t5'~\qb0EUśZPԊ]q UByni )[J`4s,/C'傖 S3L(u Ś`j^m{rs4qvhŒWu1_Â=uvR5>e6 3?x7VF@ jj}&b$_@KSk @=*3a g,z@-Q"oʞ!~ I, }zv<\߮9;F=eW ⷱpք۽SWh̦e>KHH`#VU '.'>ӰHLI 2enUd U!eS€@"J ^0O ŌizsO%**jXU p ڡ(>>Cql S6UsϩNP4(yaq)tJW* rH +7{c0^I>!vݣk[PrIl>'οBq,2lLj6lq~Gm_QEȔW UpKMiqa-ngt~u_(`}΍)~`FRB%#{ (1ŝ)R`wۆ$]UtQ?],9RP8rJ \\ƭmAK"ݐ#"MUc!                6OHmCU+/^ \ J)k S(|Dž=RE t$ϟR~{Mk\b iY r}dM66AQ L4NO㗿[U%(8D91E({Ib.U@TL;*CRS(TgUt}%LUxه$K)B8eĉ#vLBS<BUÄ(ktKtӣ# |8f+e #>cx}Ysߗ2kL"1 7M' 4b",QҀ5 P2D'n-_&ES CS12bKu v DVST1eUIv#JLaB!bksBSjҸ^D.μNŔwHHHHHHHHHHHHHHHƝ>6Ͱ 0gv'[&(O0ů)J\͝wHV.k̙wbo^qou&HHHHYs).,>HO=ЬK' #p>:o1n~>&K$@$@$@ #ǽv-CZN$ œؔOPUDTPBپ:q)PHL"h Dlv7lZnfJznrOlU↢ERL 4Д8RSN:/>Bcsj*u_W.BOY{sSrN:x\Ծ8~-~o.jӊN8^SꚢJ1]]jSS^Y^odQTSesҮ ݽ6Q`\#'CS`gg3*ΠkRP`* -_LJ8 +pcAk۠Ptip9!6Qr                hE$voy V{Rʼ樗]t/Į\c>CWP~SEb 2]]cJCJ:2š]J2+D*;(D >']uI6A} [‘ 4nuEhG@y$0!gHHHHHHHHHHHHHHHH5 k|{w0^5&}W5z 'N'RAv5uuQ]fux)!:WuUn%}Tyo$UHYgccu;Zyϣp{Pa$3|N|XOM&B(`_pi[b ѧW!) >Ǜoe.vҕb ?pI̡?G)=ᨳhscd?!vDm)}Jxž^.:IMha9oԼJݧWxH҉)4{/I;]?zÛ^)F!sp}e(F׷֗(RWg&rfpF M8c2j,H$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@&@ŔmU 6&'8_?B12ts|t^y{Osp78'g^WT +XSp1OOJ>O >-Y\P7-Q+VҒ >͏F={pIV%Jk_ۨ GA1 XP1 @& Pƨ׳P*TP~F8Tͥ(/A$A'ہjԫ*nUF6U0%;_ӷ봅p4=,6)k{KhДhp29/^mtS|v#O<0n~>N=(B')6? Cؔ0SSJ_n>aX~})IY;~\۱sTMwEw?~Ѝm]K#VwW/H ϘQv]&               ?TL?L$s^r Wb,~k.HDbJ Q'|5upOR\|Ar_zb /jW.L*Գa @V |@oL 07]1lԯGsn_~|F|ƚ{Κy QQS"SJy%s8y#gq#КKLLZ$1.;Wta*a~)'fjm *?/O.CAݣ&4aUEۍ"o3E|}0q/=\ow[IL 'ܖ`w;sU))'?'/"LH/N}|)Tl"EjS(:ICUz?H]1%L 4d:1!xK%E :ol(WT'??Y+P*mS LbYx_p8N:~D/.k\a{k:-H]1%HM/(&}!NPQͿBnK˶e)                I$P`X4 L([ִg?k. Q}V3x~^P/GA`m>"'s 3#(5|GJ_%HHH:koM_gzd|>F^rFm>Gs~9Oz' i'Uzzo?ntd{d>Q}b*tQB9*IqR?NT 5e wNGP_دC{ҁS@V'Ae:Wox(p8E#֒)ci^])CwrMiwI/0/0^P+%P.xIugN[3ҥ%*6Љg(FlAXG˗_GwrE"lrf*H/Wi(/Zy)g HE/x$s)yXW6ԛ7n_051 t˥(1ͅvD֮Z8>?AIPh K Ƙeeyì̜Q7jQy>$0D)$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@B`'(ӸS     q'Pmqo @{|YxqpJ%P|BOP(rK)`AjbJmKN ("lwq+}' #Lm8٥kN#Om]Ztmͻ#NUҿim'vJ}8gSqd]?U+@ٺ:mtaRggu}B kX%#P &Ȟ/L% j~h&zPa%-^BSq kptl&X/coCQʏw\jc]dHHHHHHHHHHHHHHHH&@=i7M  #p_EzEQ IIca@WOI äF3?uGG?in@ P!} /3#|\u) ^(vM2U:10yx@S(@Za.RSdAk4UŔĔ- (@P/?<`ŗegXNF/TL+Ʊ vf-                h@@gmp$@$@C`<=ǯNpos%=zK_#/̣3oޒ呇Fݷ쩿9GU3vsOI$$@$@$@mBN?'|&C;.|#vό @_&/[!P(Mc,ĔB}Qo)o|_LɤP=Ӌ87w/j#?(;SHj{8MXyShPЀG> RC5k֊b+P>njWcܓTo@I,$A*U>Iiw\,i_It cP֌;N05`4ݼ ?&9rR]sN{ݢb8مw{:7E3ICQ J n?0dGپ~EjݾITU'ؾ9:PnIC'۷j yTTʦS+؏j*ex'z؟xX(})}hNzۛy8qi ;l\|p #TKsɪY$Moﳶ\ۏ=}^Iݭr Xn̈́ЁuFn`IHHHHHHHHHHHHHHH2$PT+   +Γ^'\z[''(?hO?\,+%ڎk_+}[x՞b/Z[zFҘ/$stz?#_OyۉbJASqKTd+TB(@$^leCQ YTgSv)Rmc]~&-<|G?jSNS$c^-v/?3pi# Gbchp}q@\6^}ߙI ǝsy@o|7,pw p_)$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$0*󨪰xH8{g$Kb/8aGg&?{i2'9K..帎rҞ Ž׾krOvD&]?<«6_؇>0NX |& Lԝ(ʦgߌ4K`#ܬf˺x_("8Hg=ߌrr8c4.H W.2\{9}OҥGkK%pw|6<-靪1E4#gEƉǟyxG5=xlU(sb*IE(0q1 (8a#Ppox %qaqW6nUA/Z(3 N=N^"8|ױ6pb/;@oHWw\*vwuKqdCPS-NAM-huBH-(5I,t<#ρpwQ/N|A@:#?2]u\[<ÃrƖ?_9?/q߻ZKM9 Dy֏!G#"@Ŕab!   ܋@IDAT             bh< L0<9K˿xNOd" <4- @vyy[[sz"']즴T*ңNf88vzF~)$=k?8(}MJz?1]mwR)9Uׇr|q;DU)DiOL9#0 [P01ŠJ߄œe Y7oL*؊4E%HrXm(%NJZ|(}B$ f3В6ym'AK_e'P~$XnwnXpqoԳLm|#ԳPgr?5q亟haPeOոD!V|0#SXU5|A=^ L*LyK$@$@$@#$蚍R=k5=>B,FmDj>+U*;7\ʣ7w|Yti[wҸ_v'q9+HFPhAZ)x {YW&*wGHWOC+%˹SS9so>z؍>TbTI8He7[gEu3R VʇϳPrFQLx#S2I,0(u6ty ~h==Sۋ}<Şa0=mtAa )pF`$_)$כc>`l^=7oBGڟ>*v$vHHHHHHHHHHHHHHHH [)B7   ȒW~X;=/_ tt\;F;_s[6ǣl2#ܝɜclu:N;G>d3N$N;$T@m".MgſpԔ :f _Ch'Q^](*lg8}hbu Q\hz" 4k7bl|q)2 nTh%HL$h?ׄzLx%p˵`+JDaY `h>S<3co̙b{bn}b$8Y_u1S`#-=Q\~ُ(Cw_C.N{A~bhh, ౵W`A    %H_{Ol,lHHHH:åeFL M~91OwNqӣJN** T![x=rћ">W U@&6k" Cѹa 2 o-$Ɠ!os0/5GjssA;uȀaC] pI;yʡbX#t@B|bGl,,M.bÂZ?bN)g6u4y߯㑘BMb| M…^ CUDISSZ1e̶ĔS"(I/ @fD4L.O T: L2Mh$p!i_N`Q8յ_e4A5'Zͦ=F,,?."M;Cb$XHHHHHHHHHHHHHHHH!P:/ 4sk1##_4Xu7eO vmcbd #% ]~4toC5vQnT$0pb"bOgGJ6hߨ2ǷjLNlu tykm)hp C՝PpOMy!om}\NJ':u uY/>t?SXuهKڤ]찫X(Vĉ^Gj܁Sxpp(:١"^lnF?,&%y`5o|BkODVmb#$8K;EVOSD'T<(Œ4A*h_cʙ|/$ bUyW<컷Z|:`=xǼL x஛rQujBkJ?vhV]?Ǝ3;I$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$02 t* .<]OX<< ?/e |Wj 6+D%WCoAѺi<ʼn^0>'HH|HOV"?M9a87;_rQHc %V!~v8I_q_kb6lԽhAv'H?}BbBy>32S:skGP@\_x 6OQ)|R,KXe/U_AѮN)Ihq/2)-<A>_b2 .bS`"ǦM-yHL+nܩD@a }iP@>6,.д_wS\A}ͦ?|{kN06omm#` v2H,B$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$0z8B6zA$@̝db/ '7ݣL;~#{:~g+ٰ *6.<㾎o:X3$%%vj|񺟾'K7\w$ }*@sO&?5">. $b$@g$)Wdz+:[5WB?\OzAI!;$/?󹷉=? ?| IkoF:cb'Sۓ{E>\\Xxb~bj+dڧ+?}*4I#~3vFB ## e2#m%+8]~ֈ][Z_~;H/{o IO`/8i73I%iwNN<}{!I`\t{ ;y=#&A!}(zrކziQǩ|IJP:K/ͧ%~8ejHIj a N|?^$N9 b/b޷Lll"2L*#I%UN1en"I!+} X1 ;y&bq`u~k74E( NnCn c>|yQo|jK.[1:&2Kc^>\_JO_|@\(['`6[\                +p艳=M5V/\/g1Bxb1OT嚵iAު+?n\sur~?vpUm=^<*LlWB8ѯ/5[Nw'VyȮDg>7W?R*q.n"vՆb+cu#WpP. /FuAjqwΟŃzZ~1 #?hO?\,Ne}bqgegߋ+SpFM`1߿x뮂[oGpvp>Z^6yh m/8;O:h\8\k[7ӯ@Ov.ђ 3ޠ)U3OZ6+YǗU\'\tU ڼ(d=#/NXf~VWHSg3U8I`2~5N2Uұt/ J:ջ w7zfMf_\u8{.@q' (>}QXBAcud%#П'-Cp#߆X~/o]v5̞ ;K{罹R~ߺR S`zt*|r)Jc>ISU:MdPLI:,\&t‡4Z Ap 5e^@^UƺzD(a0gonlF|89Xs2zq[3D7D@?S                \(OP"*A$0"x_^"NC`k䗥M7(ʫ>9&K(߅' Sdx[}MKIy(rVУJUQ ¸'J.8_UJ1~\YZBٽO|X$<3~c_[|V8@TQREz{H)I Ђda>r- ϳC)(UbL%΍zł03(%OR[OPYt_$}?^LˡK@ /KC&TEM=(؋m0/ePxL%1eW æ@lax" I+yeF>iu7_E(/*2 7뷃.2uԇ_P޷X#-g {                 OGeIƓEwEٓ1Jc*a̙:ͥ]$R ijHfAO.\Í]|yh>HHH)yLk T;E<)n}Q]ԟ{.@uM4߱̚h2Q& hMpRnzO#(;cG( GvJ QQҥ^UxU.T"*(0N .8|(NLbJ^7-)psWHu:.vYXVM )y˺xOGUeh՘85~Qhk‚%:Z[kk$y#}v+d<#ie:|Z\9 ( (# $iŞR{Wȫ+|5œUwԠc$'syt?&2FF$@$1Mmf_f'Gw\ws88}pl3Ip;7JECav2ӦO+Ţ4}O\ե]dپ"˦P=z;+Pd]|z_WD*RGKӕIFC~;uix]mgyUWeԮ(JCQse)1PRPƥI~S1BIǭOSPHAXZ; b~`_b󰪤PHTWw4TCjxGbW:\0%,Ͷ5.{6 c|Q%l95PNV,j~ڋSk<                A@HFA`38\U<7?$q@ ̭? <km^ $@$@$@$5X©s|6E(2U/,_Ǘ/[Vӓj/Ҹo$-?8Ů.ڸUbUH TVՁ,@) R@G$ Vë[WV0rKTг+WRR)s,ԾCGVM(T2 Py_$e$*vkq/"pcRC8b߄Q.z6M7gf3v$q%BA%FD(1HHHHHHHHHHHHHHHH`r ݓa['     QIQW yo0{|cߠbfA ;JՃ8{bBh'S;衸e6<+ES@ДndSwZ'5 ~SF~ǚ7USba~ݑs u{DKM EkNV9tھ u 9j1*Շ"HQ,ܼF5 Zr?`7/jF!^-\_Ko\uY(k>~Z%PAPIy%0?,5E`Uʹ #/ыnznJMJ _W,晅},4 kf0>?0̱ :̃ 6&`ImCvHHHHHHHHHHHHHHHH`R/kMJlHI:XT#VԽZsMC\3'آA5E#g$к'XهǗOjըo%GA]3Pkd߉Z|ido%*#^ L6wF[) b(E>E8:i͏pՊR*$c#(Fx,9tR;jFbJ&$?*:ټSU(@Ss֎7x&˗LpCP5\V:z9=L\tW$/H|8Tj;tPk :^w(8 (by  4(؀/z<@*B9d͏Lq%ٳť\fϖ-})i0?Й0y#u\tc?[`Pіʽ[ֈbxi۷N' .fC+jW{/\=WmjuI+~[Ŝ{86+ޟ2kI3 e= T%:6MA$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@MbJSX&/|s. R]{!|"BN8NX#+k88vތ"_7􇤁|SbDm0_1\p@YgR3%4)[r*S |zOL([\b ߱>y9U?u|A?0>UG\G}=c,4ny!(}i<RPlwWLS`Qn)?)yA޶^bEJQk: '⯮m,J} 8pG4|C$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$*dH` ̙{4^{b} D7gP$vWI|K~uŋg5sݝ/}3o6rm;PyŽ67︛t`i;vG= $=z9m'xbUS [vKϨ*OBa9NBm$K[ ';1V[wH`R T4 ʼnzr8><*dd㫫9Zu2|Hں(V >U)%1 P(1l4_w9Env-^SH@`os?$#97JtV-Al%)_o27q *tpB($:0ߨ5:C.œ럔40P?js#ubQtpᅹrJj;CB>z '#:_0^`v׍ FÁlL.@(`)/AAgJQRB/U1ڐqN:/L!p0^Xe2_ŇNpPXW-1GZbHWd+u L6 }]2z~`~1OCLla~ghϏߘC%7WGX?΅W-1^rOĮڰZlŞGxύG ?o#/~qT[xpj-~'@NGr?hO?\,~k=nsc8^k;q2L`?XU;B= @Q_oÿ|᷃ȯ֯C˧&! .4WD;>XH~3zi=fDT\ZkgYpq\c(Fx'qQw?a߮z?np8<ޗU(/߿Gbݿ\,a/V%3>CO|~$38o/]&6;P0e)?ż,~1ƉG(ۺO,}K{גU*vkUw?Vx5~R l<źA>"&>:bO~ bqp 7\"e*vbR _m!(j:.H~U2jfIl*GHrgKܛ_k.5%.-n;/d-u 'ziI-W/%{; ki~σo`E܇R}8Eه:%=^w[N%@ŔNyHHHHHHHHHHHHHHHƙ@8{ujKTLޭ JDZx"O^vb de'^ /\XXCb1~t?9}"r鯗G2sg~爫 “H77du;1{>ɥ%Q'܁E1xb*\G>M'i"7kE>~؄CB|ߘvuW pd}!qyiGG \/?][٬q8a|*~c$QTz}Z@֊$Y+jd_*/F$h5^y_[Vvxs|i5N[Y? vӨ3v(!ꏗbJ)@hHY^CCٺ*}2?x z[]>^GT`6kЏ'u)@!ŝܷ=k*J5tuCД :/msN{2[Iwva' oTPM{gTPVY]tC&8#3b6@H$BBϩԩtu[]Oι=T=O~$3﬊8ey1Q (kL(JUAp8?!P"/9{ *2 WXWYSП8Q>3R }M,M:?TI'6oS;Ad)O-)~4[moW7vlQVI׽Xn?u%D/Ă1:<|7.( P.TKP\Lce$|r3%ࣧ|D,ü7,C!                MeOޑ @g~0hbqr PTXI˿)&&&g̘/'x29){" /~SY]=瘤7Ti7Vɧv+Xדyzn5VE7銪M+FWgL~x-̲7?Rh=hr7i=K&`5F[2g: Qi ]]z9Wa(z'nm߃'niz]SZ NqV(@@@ N@e׮GJ$"=):B(=;|nMGg)Y\)QvEh22Ee}/^uI5\e@J]c#;n|ϋyw*5ݗLQ [X@wL> Şbo{M(_}i-Q--Ɔޏ̙r)X!Y}mVGgG?b y[}5mb=7#ւWt/S6>|ۀ0"$n=5/")p_{"s@4FHHHHHHHHHHHHHHHH>v(e?IHrJ)('N~M^ONUË@< u ϶M?\46oSOoha$Mm7^5> >,X\:w+irtj@- TR6;/CQ}M0?e}?QOP [mU;n/Ic|IzĆF[{4ٻz!NRJlPA?P#f6;q;I[y{Ŷ.+vC[bG'^X_R[,NA .jh\xPQz8kh )k|bW*A]?+~%=ޒB^hJ(_uvuHy ~=#J-۸ig/SC mu<?߇@)~`FLVO6:m+TA7rg-؎;)p 87(87n]_ < RN)lPB>qso7dəb80G}X\\f˛ @( |%sOE+UGNr_\u]R)%8]o?V'< 'XK.0v׮b f$0ɉb5O|g+ *5  ~ߖ_ ~Үt`V_Y0++chp'qG{i'{); 6-[ԳY=+,čn}ܧu\dA%WPQͦbDEHu'ӭcwSFɱ]Tu,~I;o ~7v'E^g ߺY]1%.u1~e` _'8a^ĦA9u} ),u0e(@Q;*q%cSJ PJ 8h!vqg۫+b _0WW}W^R)aFCĶ5U0>8>iFY4y Ÿa2c}:M'mQ12Z^$lIHHHHHHHHHHHHHHH@6ۆ jk@2 #Ԛk< Ep9{x%mxQ'`b>Q{r`{$99]%zE^O$H` QW1\h4~/7ap~`5&Ս3`'@?YR5ΗJd7d}Āy$0r9UKp?PuPLɛ2ʲI,nd䈑׈G_ھS\3VǪRʋ/}-Jci|8IpL'}|!EvL>y^ظQʣ_䓃7h waDwc՚ H0Ә?ΰxΗnq2^EF%Ue6E O0`Z\~LA^x NslHHHHHHHHHHHHHHHHQP1QF$    aH Ƒ- n /U@b%haOwB݋ʶ8ŔwdsiIPGrHҙcZT$|;]ma2YUlI\9BvUVzm$n7n'/X068RQilwUǞq n^8W@P^jƼ h[\~xPXnTC6EZ3ھj -q My ȔS_ܾ (HC^|SR;a\ƹI> flHHHHHHHHHHHHHHHHdF H`p 3z4bqB['hg Ux0hb]2Qg_71mnM/K_$p !tb)h7m%lEn݀fۮY=< 'uX9V|áf hB$:hT!$8l'Qz.2Ej…%5C))'[ZFɥ,^z?i'SHp8b.QdJa v*5\J2D*`q=בI8^;o.'S'/=%]dчFPqM&Iu>8iT]guRs BAWVhCa'h<:h? %I` Y|_~NZ0Qcs#m ; bP\i]Hs&J,KGn[3eJ7mJ JK tlW1 Y|@1lgl0DSriTi6F$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$0 ddp$F$@=ʏJ'>X<1'7kB)W\q^IW\>{UQ^>YuCzpŃݘ-eK @|{Is?]q|1j5;2p|4l6#*M8(;I $c3?q ZC8oYSTdÆ ZK+%? TA?#+T1 h|7h&Sa/!?C/**hS{/|lD> *x@IDAT^|9g^ `72h+}PYg_hI`65K.;o!XΑsμL,9+0P񈑪(mj"P\~ E*ms"í<@d-rJdmS2wY!/ _ݾ`{1}Y\v)ȇm6KTOTF$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@=nzr=s $0wJ?T=Xn .Iz&[o%vuzW"SBSfw8 qRP v7n;9/κQE c?BB;Λwiǀ Mp7deڟsJ?/>~y}$= 3N{}?V)uf/HLz<)^Gl_vWQ r89;Χu7Y3{YW8}?L϶]p֟:>I#W!V1Gt}YKˌzVҒ@5竕S5V]&nx _%y`+`$_sjib*$=_^i%=k4C=_}nhks;8=Ab(}q޿A@!կ-0([P6A:tUINj;e UNɠ;y5ryN};ıw\2zG<v7G}x(^~gKM쾣ޯ |Qu%rW셕~T  pދ_b\)Eh \aƎZ'c>UGHl/|).ZTl!0;RҾL៝cT7ER)3B,Oחe"=woUE j;6o9'uO"u;4 n1W{w^T0X. Ih6~ߘ/Eew/C-jQ[1OP>%q; Эi q TL(R1E-b9]|QKv[JqO:R1շP)(T̏S>OqٮH=yO%XOĎww̙iWL.-UT4ݿj);Plf=TLIw6Ԋ)P9EOnqسgO`H4ȕjI9M:⪕K:9mN٭&՚9zoV#4>M* jims%B/^w 8ViĕCC`KWC3jluP}1U "L6lxSCc/tܯy]\fdb'dQP2Ҋ;Qo'L6r9U1+B2k)xW`I`q"]oV/KPƵ)";zTm<1~H].*_Pָm;xU?#z `h/wOHbᆵ|AѹAӦ$/G$ڇ{1MlVǯSBr=0&cOϿؗ^zQ,I$<*R7!v mVbk~X~Gj}|hrd k/Ima$N(tNY?Ӷ@\uajM~']I/ 48}!$@ 'd^*]1媯[OW~B]}7ACŔ}N|,<+YXN3? *l/vg<;SvJ$@Ì>bGד|iWLAȇEri|ȇx- (gœbd' q^rFV͑#U1b5A_(f#[m+mv)BYBj%Qt 5aAydLa旅xMJ'.f^eͺq5s_m@ ~˰rOl&v0BWOy GI+V ܤoUŔ$.nZ]˖?)oW%^>L.Үum }`ءSpjotld627\{s(?Abwr7^wMzO:D)^gX(,/|ۗuV L eإKCtC-otGQ1h#|b)^$                >XIH,~ٷes~vs%ܓ(Ce@qBϻk|Whe{ћb9=ⱼު: 4 _ym@O=TfA5'߿[٨%G"OiG?8"N_izRq%~7̗Z{4ٻ `bc(@}~h(%7TJ\zҽLy#@B}e4(+8![M`lj3:Glֺ?jv:c~q`86%-}WXofyvV$C F ./GNj11 (.mʄt! A!϶bߩE W7ĮK\uԔ0 6>KOХ ДS״|Y)+EPZJË,oR0,Yx)WN}|v??+/.8œ iJ-Pr-~3RR\uX/x_xQuYJtJf ȓHHHHHHHHHHHHHHHH6'DN _ ?h>ЍƯk4~i/KzPH|J6l @Hvr}uwIUzB?)P*13l!oq@PpB:iР@0fXIvabxMO}xplJ }wJ؉}d㠿8mW׈ u(1L i : yaP_aw;gՆҚ]0Q{^ĎFWT &,h9#b-[:j.86ց ]_AXyW:\nZM[w=yS*o $天(; BA*f#ln0Î;m}pTO' tbb}6['z!B hS2Cu Y<QjOŔF? Ԉ>^V#tK$@D`{Iw]XNy}F[T\{ĢxBR([vD]߲۝h@HHHHjC`qR-vٝԪ_~*OK>Lk_ZƑq @89\T;+NnŐ}g%E#1uvvH .h;Nbl֔S?\Z^[) 'wB7/WCa9dqq$LNMt'p1 i% 1aЕ!):Y n:/:6hK0 u  U,Y,64E&@C`8q_%ă%K_eG7Kg<+(LPR01_bU_|1|[zUʚbVK{x()T(!Py?a[^\oǘz (߲dMIi&HHHHHHHHHHHHHHHHHJYdfXHHgW|D/,D>zOv+fq=7+p_b(I/:ty˗}@j~Vh7wr:_Uu  !$! aM=-Ư'U1=-q©_y~9)/ę=>tGb|CI t  #dq#|h'ݓ  ƌQe.;1ޱQT'+ŁGNs7J5k~:&py(E>;٭-:Now !J&hܑ3O CרQ6y ELt5sd@!`Y;P)qS&HͪHGO8?صn)9/MP}Nʥe|x'?+ 9wܥ.DD@sb&&C)\4|Lb|uC"J麈lKg*47H|<=b﵏G{Hl)!cj`s|,z$`cQf t;Z1f"               fu(C$ v!oŖ+'OʅiRm:A[p>|ݧxn)?TSOOοb\OW[ʁ:Sc9  %A7_3b5NV oՓ] #Qrǻ$Lk[t|I0!&S|jBr[ɏ\^ ־J&ySdu { ~n/r1*$ZҫVW/ @VQlWA(ؑl(ળ΁IE&2޴+]tuHюywWHt)t-lIj*tؼkoW ֔S0F {.!~.fukJ]IޔC y]'JⓏKO8FB:mwu#@G?M1?V,1s)=mo(-!>*%r_2)~ Š"6/~}Z?a톍:Vq{[R#yjBl1]4It3, P)j˴YHHHHHHHHHHHHHHHH*bJ%2' >ۓݳԜs^_}z2O?zIQbgJ38arǜ%9wɵNoQ,~wQ{HK> v骸?w"@.Ξ{s?Kٍ+ }Fs]$=q*OY4$@$@$@$@ m]{>ӓrgvd~Ǭb Vv5uO+{ IキręzT~Rܾߑybow.^H,L9'q'C;Fl|l7=-(0-XD?:gk5WW#:e/W<~z85@1__: .;J_}fsAm{Kz֬qbDs\*_?}N0omMg]~OSŖZ;gnoz|X:.o^::ܡte?~F/|M,?b{I_}N?]OP~b|sf7sz2I:g$3?G8A歷{ʃ:NhGRmzrE? H]H3[?<[/鼿&f(\4v|1{eGˋgzU`Jy[xpaJmPksK?'ō~!w8? 15J%*ūj٫zXWZl&"Xp x1, (jʪb?֛ (NGPd@;d =dL!>[P]]z?x a>pCҥn1q\?BU8)}Ui涛/!/ZX,?%}g=DU~[tzǜȪ {ƌ%BF?cL'tf߾D鏉zB]dHIh]`878]p.*eב8$gŢ=\~x)2UP>i{4Uyd% q!N:r] M'*$ɺ$ՍxgR'23>'}t :.u}w| 춽;=D7Z~?Jzj$' OҎ8֝p8R8l%SJmO,64a wl'q"=.-W^[.sٳekUd~y7/ H;dd@9`URlʪrL,AW.'ǎF&U[7ߐUkh.:ywuq0 ni>*Wn V>g_*γ E%])rRֶ~V}ϤّbX_PHq @N1EwnPGwSLѤtAGdMI⁢J`V[-UIO)#ޏ5Ϳzi7B {aoGoy]{L                 D dD]^H`P|ʟ's>%Θr_ܓܵ;gW}SpMb׮Mi'K.np\,kN^%rwf4v|%Wo.W}?MZ1?ZVu [*x %JF$@Ç7~YN~si@ןvĉ|'/E>m ?ig%Qq'!bzAc=__60OG|*PZ喴b ,4bA.^{E-6+x̡SN14t n)vmTqoOW幍+jҿ7D=@xº&wI3/$Z˲ T~KOTYH $1.>+ BqMR< Zןv|y}/`Ňu1XvH>c QnJN$U2Jz]0nCRPV[ɫgR%η&}Z*7P翠REhׅeuWy ']\<+J@QDIE m \ta5Px!W VBP*X[.%&'p2H$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$0C H zM-k `  40=w?UfL0Qu-OؿVyݚ7L˯ <ь'w艃;HN`LTz1ʬA$'>3 TՅFoUPXh D|Q@7b(=R68_TD؉tw/-܁4A,]X(/*Ed Rdĉb_x---AP nNAmWi/ݣYO "l1OXjA-\ 9>f~M_ߴzr iIqsip_oGV|lx=ǷպI9h89iJ)N<5NLl'M+;ӋAKN9^O;u681b@֑bp{kk'vbW^)͵kĺ?v7/J )t&1JQ O)a%N8Z#v.^Hl.%LT*hG)z .zOշ|_/4 l"(<]@@"4ɊB"KS7O . eꛃ)X?`خ.|C!Y ,&푍Tae&Jg1GOX3J=RɂO~@n|'q /w{mb/~R,8Iib> xc(rT㛶*~r/3fw3KxR?h7 t~ՇT)hI ;fq=ʇ 7[usU;b )j$=m5Z]C5r>r$߸qa 8(Ǫ`QL\>4e V.5rľUljjHVRkq¾RiǽR/ߏx ^q]@qu'֭૯તŮ;-aG Y;A晁bEi0BS( {(`D~d1CN6.A|qE5L([Pc="g Ny({LqןQϻ`m}vԕ~G1`vEgKS'|X_ҊUef_w15'q~ybm}%*ňkN+v)Ye+T!)]&!;nGM0"R3~sФ'>=UGZJ7fU? x}xa_`1%U!hpd+$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@A @>^ @5g^S^w97,C $v!C/Cҳ['"NA$PZ$|NX! ų_{bgRm5F|H?/4|'&Vkx8 Uw|?UzRהNpC~o﯏ǯv\^Ч 1/ `?L|t~umѡ=(r]DnGڃG\*Iǩ'땨MFܵieb\mbS43G l\y5=I(GW; Ga~Pr/uҝr}!e~MS'#sc@ h@7Im wZ$@$@}"P|jbJppJ |Gt>S1%#İHw8A{I |N!o񚄑bJ?7 9j5]͗&0bH`W.'6,peCTy" pzyNxCAN|}z(P@:4GWUki`$@XPrG]2Up\G q.Ŏ՘%믋u_\/pĕz(٥:T@7YtH @k塔U3|A*D6ޝ{|Lu7>ҴjRTN1n=j\ knRKa1=0 ziGbSJq M$<\El %3'+{۟CǡMa臷TiWL ?)H`S @&5M*V̮ @q*  @c(oF6ؘ aIa/v;!Hf_-a;v弞TMiFo3j5MZ6_*@l&8Ce OW0 S||lVmW^9PRcxJ;ߔ(@J8[Մ7P0vR]x?} UȃB ߏJVƷC#raT8Z׊So/6OMC),^D ( 7OXO>ŐZ!Vҧq-Rb|.ޠPTq{[ۧ#'               H'*s\ @>H;nG}S8@9e]ׁҒe{ibŒ%X;nnu T={"GQI@=8K Xǯ`| `QWri) ': K9[]ZfQ%իWt/L1?r*y x7摫 ?1p7WzS> 6 ݢ]X:B`E(LhߡZ&MDD %KĆJ/b4aT>-s*kB{rPwOk֟/K'[MM|\[&WIezX1c.儴¼Ke' 4($@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$02$ W͔θ* Mϸ%d8SÓmȼ}y֡3W%'"lǓ_1Kx5?Ïލ.x_4/' >wRߗ;UT _>J@Y)HT,_?J=eAuL[]`$y?}mz>21 Tw̓οZ+L0儘CO tXpv듓:|:xq6G=Sn]\ځJ݈ʗnl|T5-G{rÂ륭 e.N~gig4%D>z4[o ‡RbѢ'ľ׿%v͚7Ď*S(xEPΰq<ۤ,٦&8j_uرcYWKo_+6i\VW e\v '6qEV7лߊvHuve2/ڟ( .4ERm/uw)AÖEpeZ?՝ t_9%\^Md<F@1RX/~әϗYy_+mi>s}-C_z^ںP, @O\xv _a<ƓŞ3Z1~ksW~ /ŖzpH+뫲^tA8(G\=+r8-lz2=nqyc)Ȫ=cG<~ywIs)鿑|~70q{o1ibI|g~hr ac(rTi]Oqq1U9_̩Iӓ4Gvb1zv*:- ;p0H^ypAji`̜J<֮'捵 [n۱]<4qTljHL0 'sNMy ?ٸeG 8)P #=fLiB'- s=9t/Пһ^$NzCXC[Δ2nn}ŶoPB1*s7^곏pgUa^k6+;_ȑ2nψ#b_~Eytlh:ޘ^Οp)601?q; FHk'0+=r5퇨ѣ3>-v/ѤoӿK<߱{j)~g vʌ뗜1SOX~REB&@Ŕ~kȊiWL988wz!;WFO^2}z"՟'I6; ?//]״$0VL)@a?2ڻ(k/k\\țbSqo3_N!J/cƌOo)V}Hބ%\t}}ᷓv{.rmb-Z$6_P޾_j"/O.tvw)Gmx!ދ [p ֕ۮȓmj ZFǼ^Vy/)/|.WLEƔ&Ϲ,zISߴ,~M|IO_9'|Xʧq޿m7@_(, qwʉ'mD<~+LKmg~a.&OO=SceRg8aHb۟ 5iuN9A}?0yw#               laouy *ۈ1^               Rd& *ـ1\               |0^Fq @8. @=08# @Oـ1\               |0^Fq @)u6` HHHHHHHHHHHHHHHLb$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$Pg8,dK$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$PRIHHHHHHHHHHHHHHH Daa HHHHHHHHHHHHHHHH S>i!G$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@uJ)u:p HHHHHHHHHHHHHHHN J{HHHHHHHHHHHHHHHH> D|>#g$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@&uKu HHHHHHHHHHHHHHHH> Dag䌚HHHHHHHHHHHHHHHH (ap$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$P`J#'               T)G$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@K1r               H5(ϧ:@G$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$P¸_}ΨIHHHHHHHHHHHHHHHL)iF$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@uL : @ DRC#               W|*^Gq @ d0Ly HHHHHH`8~k׮ &Omod?b'*bFMDYv_߾[C93sfΙ{wWpwtWUB`B(~<~[ޡZSO=5{fg^{5u q뭷{LF`]Qi/?j z7˗>S@Nkߑum#z뮻&l+Eiٲe)B@ u)9Ն;+942%.rlhaB@! !pק+V{Ѓv}=|/~1]z w5UvmK^j|'y}ogK^`tgREW~W7xcni>d ni;veti鬳-`J}[ێocaC7|g:s5פ|#QPr-[os\9_P(QomRLY9~zrE)IOzRg0z/2amjCokx`uM7%}s3czĊ,S!\sZ,ntASm&گT֜:C#lɔ VY <&oT:3̩x,D6giXZ\P0[vU 7;sO5xXDK[fmc]0|1M]??'E{vm}^ҷt$ Vzwߙ,5\ !X0^o% E y1ˁCͩJƄo&?jҟɟ4mzಣ&.A@)(.S"YsL?cB !0jKTB@! "+;E]&3 77lzc26 '~'MȬ䍳 ͥH 7 dɒt1Ǥ[o5}HrJd' Y]}Aek_Z~UW]Nz׻B?1PVᨠ.K._@41?Ρ%\Eu];jۏq6{T*8L7(K>)ORO:{P! 莀Y̲wޙL̛Q=+r/ O|gHlfAH׼5iʕGx@-gɁmeLpY uE]}B7(O'RCuG -6P0q팥n-ai&t1F XPXG?*aߺB`Bv)!a5L}٧%7tĩ>6z!6}olٲl/|!dK' ZȜk"N%MA o}+wy|p;'|0&փca> s'|(CqKXY/~ֳmy|ߕW7%w?R(򗿜N=6oP& 7]vYAO}jiqo3{Xds=81Ms o~/܇q=/yb^6L^'3r-eNF.PWsD3m)lt|CJcޓ~\)後SG~W5fy_ޓr:F@R~U-ؐ,8W҃1Sl`||kui пU׃o}[h2ͫ_r__BQBxUK>o +mbŊ,oM.d_o^җ9#X&}۬ 9RFSW&)#1Ic! y$SEynʁG?\qn7̳fH=MozS<!2GCh3XЛ$N LH0 U⮻,(|'|.mi.,{йxjKh±7qve'Bfqb7E)8KbmSS"! F8sʶo ~+lk.Y*Oi.-Jqx[qm^ޛ0mA+lû6)NEqGuTqXy3Gyda #1.m\rIAmCZ6PrHz,(CaJN#Γf*l@~9M6d=ƶ1~02;TB.3k.ͽUa֣׿NS/L{9u>)ԾCexX|O;DMS)L*ShviJc3g^Φ{wrg;OQa:%ɴ:qqMJ鄀B`JLaXGm;0fՅ)|׎ihY؁lSG&^f[aceGAG}t,|͝IFu>ʁ̩݇S-f9 S^WUuu!@s?Z9~8 zJ+!:DN{la[GXhSdv` a#7Lf4EةQzT}:aqN|(] W@ |gWU鴂I'; 6l' f >)r[<LXY~DNWBV2&ƱTn^-d͂pL|I"qkm?7~ 6G2h__T`Cx@n+m#޿ yqS(T,|(8k0x~oEwܱ!?'sTlm4iT>b`jy,A/NlPo=o黈ugXZU^mY<~)\9]!1c,Ey6Ŕ=yXCԁjYPTAA,<cQWc KǤ{s;/ʡg8 5"E]|beA1~NC=Iɱ5LY#ܙg6A h~ lPrX+PB7u,f8chvɼ(*0u\fh O5mHtMh_HXbG]xm]5B@f*ĉ >]/_>V!T_'󵕋gUg@)Jfexӟ^ eb9~wN/=8j1ˁ` u zZ4l˯|6Z(9ЬЏȑYIr*hG@),Ӄ:hfNӳy>d j,pt= >e7ѹkiY 4olf(p"L <4]YA JԜy? 8s)'i&/ヘߢ7c%)l{׿x߼FVLHqx F)o\f,}!S 3LVE /̭GsҕMIӟ4{}>?qÔoUP|XX7asmQTe^b. l)1'ՋEt|,7C̝J>7\F'5Q EG:+CaHڣx{ޓVJDm)uV*7 I䉂2{W( Y k4(xneHLT S"{ꐹ"*z!2) D@"/8am+M rI7#(wHB\,ڢ Ox"R_?n@~IbvIu{ݘmjhŔ/S*VSt&2s%?ˇ)B@Cb \3|LX,F|\G̕VR!Ը)OYPe<#XFW1We0q0㘹*y1y~}Ωdh9p9&"{}D H`ʚyULUD2~^r`GLSnZމҩ/ۜ_<&@y<E>XiBZylZY8d|o^>a'_}S68 UYrl.'"낦hrNʓɱ֙gj M 7"P bv4S!DB %[Lf!!}_Lq2W2 #Мwympն[;}ycܪ$SD?j6}-(\ebsP LM'YRn0MbC2k':ߡc YHج$]hN9 r% yE6 -ɬjeFbv'dY^N:L@l>lf5&\7SL>,b L,mST~TLlC1,tq! d ɔ_SSB x8,ΣɬnPr2 @ 26y}!cbR3K#X%ORJSy_r^@CE>sO^H+3ܘkdN[OXd`# ' @fZ.ىd'yi^Puκy`׶ /3yq3;)d̜[fp7c!,% v:( N9pB(fV B;,x";[*xņNݢB:ىgY^Y@gNQI)l2C~>Nwde2x3K_F1lKu}d$ dJui=},3f21IΙ\^l:unnfnI1ce`Ǜ]wݵH7yc!B`:F^#5JQ1s2Gɬ e¸ĸs'kK"H'3ۨҘ"}@Ĝ9AbEgV1笳J'|rB`"x>J2uuc.uJ)ucR|6Q0A#Jı< uO}3SYA ~̢Oӣ2,a&Q7 D "k&4˻Ae2.&Nf$gΪBmv c 9s;QU)~f!K&n_ָ<~ꊊ"̏DB@!~"NPZkЬUi15ʻ_͏ZU1%Yz+_YǦ y#iiTU=23xGwjGu#V~ %.Q4$0+Z`>Oü[)U7Eᶹ?by+~=F̦q[)D i܎q_y啵]g1HeM &-jf4YE?h7WgDx\+XjRbp'尅V䣴B`c@,l1i޶X5T#Wy{fZ70帑|83r}77ݒoWW>fELcJˍ> p];{W9^߱=NڼLQ!mѰ6 8mlv+ڲψ6\ :yTpMo"wnZ]uUe~޷.9Ϧzf˔ts4`DZ3NywRIsDekss4k?;|pq<dh'5MAŃPdh7(S婻LrwMWyt]Ce{\;?; 3_X3Mb ؈ cAUN7_3ƢH$SdƘ7c<+oY{e-[sgS-f9Д=Iuͬbf3V`H{cN 9pZNLF`X&'ф5?{^i^7h^|xU[1{ &jzNi![umb7Ή'L2!O=3N a%ZXZ{rbɔo0N OӲ6FC%=s8;֓ A.}BAXfh{[iANa?6?= V !28d[rrb>e񓧸3d2Do5d_ 8aUkFX5G$LMCF8z)RJjKt0Ox+^^pXA}i[nHϫnI#h]q]l(q٩ tťgϏql\,Sob3h8'՘;T-Rbm0ZtYES6u( I%$]# "'e aE0Nqʔ%JS+]t!`M4,\UwSӔM6;Y^̵}-o9_ s15tmMw%Xs||_p 3x; 1ZG7qߍ7XWy5CPaec=v$Lb:EW ;-MEN2# ScjŭLb|0GQ}AIf=CQ{/RIDATva*CY0"  l`YDJ)/me]rҸ8ċ!X?#QIĄWMb°+!AB,q#;/}Ks,χ(Ðm'Ye|$&t嗗0W{Ŵ9њPqM-m%^,G{c&Pvzq'iVb1))0]}rod1D?kl|3Kp)m C_Զ(6])w-K~(u*[{ѕX(vB:' YP'{9,)au]HBqilYkd@Eɴ)§i;KOK1oP/쒶k+ok҆]e#/w5:(!3ݕOLe]:?6\rdhf%% ByNx%Ho"H)P누B`A`1լ~q0f8\]%Y@)#IhKLY0g[d^Ě'>~"pXpbM=:e@؄…"C&E@t價\قJ6OUN[5+t~ ~?bFyZO׾]lίnXF0M.N*-f9es3EX7n?Ӭn^kbڰlsS9/[Mim&]{Q2lʻ.|:k 8Yf(9SƱMNguֈ6W>ՌӴ%3{kS.)qj1q|-Eae2K2e|;)iʅ˼L%\8ff4m]z뭥[8L؉2>mlC̫npw{IЦ"p7&eeJzSR6ǔ?rNfC_}ԍ]y)@nEM!WGQl5H؇'3ܷ(ap-F؂lq' 1~[6Qs&›xx߱tѥ$uxmd %.u&W>Cb-XnL537eƸH\ktV[^\Uvcʵ9o}r.XS!h,)<7 % :72 S*tu';ͼ3cnEm eX+84µdcmIlOd\[^MkBф{lS_!x"ܲz0ѡ؊B@t@V臻kDgW|Sq͜gk_ מkEȪ(N3ZH9pVW>Ud:6.oFHr(eMy(8#+Zdpڭ~T K~iI]"Lҹ+FM1 'tRv]ùo˳wߜB DqaG!1\ԝR]h8O-g]G Ť;P #< tM+ڭ#'0|ɶ:'28AM PYeY,<@XРNaNBr7}O<1C9$ĢopuACg܋s:)~+{pӀ&o9ۮ ݗż%Зp;9$[nl;Z2!2? _N c=0G>}ѽ('qoNrD )2TOS-ո}~cyɉCX1s~ P6 }ޛO1N`M懏)%a-Zkcp/6U qںǃaV15Ŗ^˛16UL]\&1YGnV$ |jucM:6~Cbf7ח,U'x(Jo(ZX{ۤc奎ϔŗh| |zh y,hISX9.r}[)3XsCwQGuʭUwkN}xeN g=6bA(eyZ.= i&r+<瞲}7[% u `] Nnr529|EB@!q 0h] |X)wfkXBnȞnêW֣L9?ف{H#q582eD:E+6:e@8 m=e,4.olkrǕW^M5׽=zn9F䁙UBMXU4gk7,\R}Cq;7=Mx.4f,7VfB|-}1" h!Vp[dYPG|WLFYXE7<`Vبj#GeC==ʲ4,fU擈v⡄EeB¤t}/t_噦-s1GN_ĘB0.{_ulviߔ3(ȠT&JܣHC\̋w%4͜BwF q%}S`xR41۔NB@#.1mF{,PSo8(7 \ݾ0Vb"qpJ]q2&zQ< @xmݶdh).B#16~:]tQzSDal r6h(Р TOp ]UAlVVaJQ!{k~6kmNC âtT(6rL:+wߑ9PpBƉ#t܊wW$ 2k/(.ĘY(e6pQeC^8ed6|ee#Vi!@`pPU)聀Mm.)ZDW>m pcE"G,XcggiG2>|p`}٧r-f7n*oYMcek2Gc<\m3[+ytuc }e?,/\ݛtZguQ:>U^]~㺩J2Ə9U* N5_~#G;<+l>G]°o|H4Jp/nd hcV׬Ń/. oK<Y |Ώkάy)B`cFH:~ٔn3lȫ9=g{<;㘂sI@g+;TxRVS,qfngey\$m$pܓyk (=JjN{Ozғ <8>c=j݊wCʁqr A@Q<@3sh6 \ObIN Ih=%uc;LXhzY*B{|bg7uX-DXhy?Ljk9k~y^"N! +pWMig[퇹c~ZZ=R%ui|ψ!%1_G F5U- yں_DO{Zm|[S64WSD)o! pܗ|Cfs ?k)U9%sԡTb+|X3el}+X d>s;Ʋsu5d1s-qn%`ⱞE:Zrsu%6ͩn} 6ɀ.1Wfq-ĉrapV8+J/XXO'n4nNQZUJy^MM5m}l|L8_wQ9,>Oy^Y,&Ms{l1Xi!v.M/T&fKl6p6EqWkXBCɦX$ڢsmwyOPhX($4D3; @x~v1eydž*(ո~M̘g їaE LnߘIĆo8oۈ> QfYbE6Mr a[ڒ<'qm$?7,X L^},e7(3!&YXaS?X6C\3Z!36E1u<>~+am{O3ɓ.y"lfҺ1 M$\0BBLl$߳!0馛;;QP@PT`SޕH.|cZ3] ~E,Vlw$/|UyrCmeh[f5/nH+2n#[}QbJ%+3>[AcfTaRPsY4/Dwh(ЗԏALmuQJռ7wujpwF gQ.\5P,ߚz5m4fEf${|qax$CKY1mwLʼM̧NQ扲k 4Gcu7:xFMk陯sb6I]Tp T„;#FBl3'XCQy#CB`~܌V[Ve!Ӑc _1:1+&UpLæ<#SL ^I\9r`UQwmS-v958 'D(K-){5(q^{euVlh9%#8TPnCg!ɁB6`C1,؂lن_aJ7ƟՕCc̵Z5KW^y9`;>f2 W=oB`M 6`Jrق5^1G\[{DQ5eʶU]hW> 7NXh"NbS\xܾܗqs|@=Si5]qpq*1-(1.Ejx~gR.ϱ s"! B@!!ݗe'\OKSpbd*B`XǽDB@LFnuǐ)#lJ9l(M a&<\ ]Y`.tl""pC Uk&U1IULbטŒ1~{lb JlEb7bx.fvfhq5J$w,Y;]`ӭuNuyp[n%}(n < Pt [bn3Ml 2d3UeeK.)<˒x{w-"PjĘ DŽ7QpRbo[ȑ̂H>M΃f7\e][{9ס,w((P&CtAaO?uoMݤ]oy)d_,1S"m4q_M;/|'jKCb| 0-aޟ>ѬDw9g;>(AQ(MPh&!Z~}nvG]0Я>xqED~ݗ ՖiUw>v3&uӗGL_0t_ys r{/Ą+WGWgYysr 2n#YfED51D"}TVg}Qvy}B@! X8+̸fwS9xTj1#*B@,bp$.qKĸzJ)Ҟx܌{1lozӛrdbpڗ$ELA0})#-,A1cJ5m&쌸8k0ppϻ^bd1ro Zyӂ|ލ!02]xᅞUaJlS0ņ2^1eզ>gyfL^FfvJ_?SīZ6ۨ?haxTa 8)f=MkgQ ]gW}~GG6Ř4]b|m:C^v4{.Nˮ&}Aݬ7\wu U>cSfɿ1H\M3)zպ/--*E7V7Ű},yb,p9nc1j47 +WӺohcW CЋ_!XB@! Xg2y)Z,_LIB@! &"` (#nZߛRJaN'R! Ev;qvx>x'9#P&fD`O'Z4(8-D;餓U ,>8[0B89!~UWeFT-g8[rK:ӸxߘFs]&S7HՂ я~4m4vEﯿd (#ϱVSN ?8ueK1j}R4T-;dKX`% $ۈu!;0k{9ekSyH&SKX#ʉ$ʶN;D#aX< ?pǂ<+ںn9f4{.Xr!nֆ<%\.qZY%N}_MuIJ[B4XvRTtϸ1N=| ї Ֆ߭.̟ݗq2hsX;<}_;^sXrB֬DnTz! B@!N롇H_+s, sV$B`H|}'kXvM.(Xfw'Oh_!0$K"!!'?I6{H( `VsWyܸM|U6Fq?܂.d1_'-yFwKKɬ l W7yf1el#(,j&bW\ ?,fqeCve09mWH|6Y{&\և<:>(`ƌqApYaӞ̏t2 -g0/&,KǮ:§.-[ޏ?ܮD6fyW6Pr!,cc.JeB!7 <|r7\wĭ5G]@Y,=#_!ے=ׇJY7I;=}G lK]v/ -Ҷ&i'?Lwɏ8+(851җ Ֆ\U֡Oa先kYq]4T_F{DLDeVM흾 mV.?9]OZUAGQo|cfGY7̛N FFpwT9P! B@b-{YVgn&᩸B@! "\}y]1H߯qW1jzBYzGɁu(L STB@!0(,cVX\{қKd.etB@! B@! B@! hE R̵FC! B@ufP&q:S]W\qE1"! B@! B@! B@,JY(dW! "p '.pŃyi.],m! B@! B@! BsK,QB@! }C[\(ޅYre:s__N˗/C B@! B@! B@!YL郖 ! B`"pC=4K/]/| {^•y睗GB@! B@! B@! 2NjJW! ,~nB<H|p:@! B@! B@! }XzB)}aS|! B@! B@! B@! B@II)eDz.B@! B@! B@! B@!0 s$R! B@! B@! B@! B@!0 )LBHυB@! B@! B@! B@! B`(jժ+B@! B@! B@! B@! hB`EZtis ! B@! B@! B@! B@?UB%B@! B@! B@! B@! mdiHτB@! B@! B@! B@! A`?ʧ(i+B@! B@! B@! B@! E`G_JZdIm ! B@! B@! B@! B@i}t9L! B@! B@! B@! B@!0w<0yCW]%)u)L! B@! B@! B@! B`*L1e?$嶺W\[2 ! B@! B@! B@! B@Lbu6f-e.| Ox|z6LNIB@! B@! B@! B@! 6fVZ_ҥinn鲴>K&l6_O?я}<=M_o~3g?KuTbs=cqYuqT<^?k5 jm#WB[g~!\߫Qu3VGO[uVw_iW~:x]h;̯4QV?b{?.ji?^?k5 ՏXg^ muǟ;Ho>>=w=Ғ^_}inҴr=iժw<+?O+qwZi,ܽ2^:ܒ%o^Ö͙ŕ%֑JKݯ\ywlٲ|OUhB<{{|=/ 'KQJsYf.wK-{Y2X>:ZK2/xX|:D<+-K.ה0 >s',v%?W\  =;_/g3 1ל?j?w&kKn]N3/< 1N@|[~ypGx>U| q<?}h:_WWgאاצ5jwOu<4~u#7Q4@Sk5z;ߧ:OoCq]K」νwi7?$HcOZD{Mb X5J~#'7Qٚt9ڨH){\yd:cxh~["e Gr\g{Ld}Lyc)G14UZ\QP^AI[j(6D斘rsea^H*PiQX:9Zb %9]+SCd̔ex&+)7< SZ2+Pcf9.g.\mrf^<%>6Q?c&wS_on="! B@! B@! B@! lϫoOY66<5 qMH>헬&hM#Y!ÊIENDB`python-qrcode-7.3.1/doc/module_drawers.png000066400000000000000000005507731412565416000206320ustar00rootroot00000000000000PNG  IHDRㆤwiCCPkCGColorSpaceGenericRGB8U]hU>sg#$Sl4t? % V46nI6"dΘ83OEP|1Ŀ (>/ % (>P苦;3ie|{g蹪X-2s=+WQ+]L6O w[C{_F qb Uvz?Zb1@/zcs>~if,ӈUSjF 1_Mjbuݠpamhmçϙ>a\+5%QKFkm}ۖ?ޚD\!~6,-7SثŜvķ5Z;[rmS5{yDyH}r9|-ăFAJjI.[/]mK 7KRDrYQO-Q||6 (0 MXd(@h2_f<:”_δ*d>e\c?~,7?& ك^2Iq2"y@g|U\ @IDATx1nY0`ڌ-rHLA#!@B% v0x$lab $H ٲӗ~ncT/uܪ;o2;? @ @ @ @z) @ @ @ @.]򀊅@ @ @ @ ЫTz @ @ @ P֖T^'@ @ @ @/` @ @ @ Pl6JW8 @ @ @ @` ; 4 @ @ @ @NNNRcL @ @ @R*Cj; @ @ @ @2lfz\ @ @ @ @vP  @ @ @ @u x@~ @ @ @ 0ɉgPq'#@ @ @ @T&0-TvF^ @ @ @ @Ae#=Aٟ^ϵE抧!ns] ʯXW]Xl]ot&Ϭctśj_%~vGAM tTλfvxxXǏ qD~vDehl׭|r u6_VvP @ @ @ @&%`]Kʧg.z=Vo-+l d_ݪstv_+nc_u]cft<o}Z}Q7%scSy;f߯n޼Y`>~Xƭ}||Xs=\rJmjRt{{{~뭗h_y%-*;$7 @ @ @ @Ҳk VOE^Es\M7[u.KzM`,z,u6݌7:^g1MYW?c ~nl*o݌@UcJTQqVt 8E#:^6~ĝ@]*;$? @ @ @ @1N @ @ @@m]ot zk7p݊젒9"@ @ @ @LE*S: @ @ @VvZ;[,zmfSG[[M"@`GGGvP|H @ @ @ؠ%;lNM @ @ 0ӧOI_xQ2Nyࠌ;w~7~)z%/{,ׁ<جl6f[ @ @ @ @ ~[z'/3S=XU kwu<~Jso@}w*?LEKM덎uxSkֺՏ()y7#~sΝ2~n2޸qCOwoooN.h_>V[fO[ @ @ @ @Ҳk VOE^Es\M7[u.KzM NpS8Ϸ)tq5_w<˗/e/ׯ_vvvw˗eu¼/덎խ+5YGoY;3͙]젒G2$@ @ @ @VTZ/ :OXl@0n~GG#:-%{~_v?s#:S婿9*/QYo76s2}^*OxppPׯɓ'e|YZ _Gmֆ?h3N֦ŁMvP @ @ @ @&%0X*-[ `#Ư_/{v(^/~K7{Fzn5ӳ>cDGmǨ1/K^yE6[^ERzR{soGJ7o޴ x2ݻwezjM@t?j{~&G-zL;L @ @ @ @ڲJۮzªظo~}tt?/7ҢQ[~K~%`=Gt6#1猘%ŋ|_T~]Zu,Ygc=En/>|q=y{{?<<,Ǐ8^ǃJQ/zE#::mΞ}~S@m{~mA @ @ @ @- ~/*y-:^kݬ Xϱ٢oܼycq/_rLEx~핳E7{ݏ%-?}NvPie2 @ @ @ @@Pi#c'Zlvkn~GG#:pGme_/˾/ohW3bo~/~Quk9f_f=VzMu1%s8*N{tt?#/E٬~Dɷ_|j?^a<  @ @ @ @`r\U "@ @ @ 0^T- ĭD:JvH @ @ @ 0=;L*"@ @ @Pڵkl?^8#8{ݏE7*/:?F`ha @ @ @ Pl6d*[h @ @ @(OP/^(v=Nyࠌ;w7Wˉ=jʫϊg6lvP @ @ @ @&&0L^˙o;fX͐_7裣_x~Ԗ_=/r XϹƈvu9#FGm;_׼p/lncXl[G^ܹs>|hpww}oܸxWN_t?s[~Jsu*! @ @ @ @Ҳj 6ۭaEݏNj~Ԗ_=/r XϹFGXҩSzٗd|R=e vvvw˗eu߬"~5NQ9e|m_zUO>ࠌׯ_/'Oٳ26;_K2?eʸߟY*c%{Gm\'>j뜯e;L*$@ @ @ @lL`˹_N6OZ4t~[O~V~l X][C~~?Mv밯ʯzǨ1OvYޢesy-G^{k{goh_@ z=G痽[kѣ7o4Zi}vݻ2^zuN/:^z._[~w ~oG/:77+_t~̙wg%@ @ @ @T#`~B- Z >=_P?5e% Dz~5ʫjqkי-گ]6gr店o::z~vuq Dst~ٻ/:Ғ.Y.2~z!N=xTK#ŋ^/}}9Q~1:z~v.Aepn @ @ @ @.AeP~*:>.E_qʕ2۷ok~Dx륹?ϙ}S/:&a @ @ @ PTZv= 'k3~|I{B8Ǜ#Gְߖ @ @ @@O\^xQ2Nyࠌ;woFwJ-~qw'@ TH @ @ @ @ lmm]NF[fg/e_MR?:94% P<&/n-{CE:+1j]ghvٜ=k^ˑ^~ڞ-}?^eVv^ZrΝ2~Uvwwߗƍhrt~{{{唵[[?[[}٦ߦ<*C; @ @ @ @2VvPi'Ԣί%ӳo%q \oLzYZ[[[^@ϻٯ_~ȏ |ջϏͥ/st~Q˗/5ϟ?/~~вݻe|eoݺ0/Et~lԖ_t~??6K1:}|v*:" @ @ @ @AeCP~*:az~!ݏhݏ~E7m\do.} 0%[o&W9wvV1ҜR˗2z>}*A_^'Oٳgelv)/*/ENj7:Ϸhn??ָ*l  @ @ @ @?,d-Ut~-y =az^/bqh5R8~VﹸkW[ ?~MKWK ~}? so]N6扣Y֙E7F:ӏ[7~eOnAz/w7.]_~ߣGJ7o޴:۷wޕիhxENj7*^G/:(dί/Ǭq3"@ @ @ @LD*-ZV|zv sm^~D~d/Oi _o {sM׾D*9S_t*E/:ޯLskD_w-uv'@ z=G痻vPޟ>\լ󳮟2𰌏?.ׯLE߃ Y~Vomg]Əo<:._t~Cf8*:! @ @ @ @D[AesP~*:az~!ݏhݏ~E7m\do.ڗu2\1gS(Eius.:|_6Drw*57o?~,9?>>^)ts=\rJMeR^ڏ^[7~uvP_dL @ @ @TZt-zZ̙.~tkI_lN=qD-GGz;-;˥/_~d/{?ʯ뺮~Mt~덊׵<:_t~[ ~ ;dOS8]hަoTFUg_qEחcָvPy @ @ @ @&"DP @ @ @I nm׭GGtƾC@{Tj켚  @ @ @ @ Ae@l"@ @ @ pkʔϟ?/LǙ/㝙oDoͲFfT&S @ @ @ @R JH @ @ @vO/^q{{x޽sOhީ[uTa @ @ @ @~lr Ѥ0'O4t~+_t~}fkG_ZGmF#گF#_t~~M[*WKl%z Wy̙T+Jt~~eo]\&o9lE_>9:ݸt)_t~K;wÇN[7nhu'G}//:^v2;::9A @ @ @ @[`kkTZ0 'k3~ FQ[_xpAҗ S~/{|e6)}?~mzsgo)i|Rzyׅrwvvw˗eu¼Z^DENjCt~덎-Z[fuiJ}V% @ @ @ @`cvPiI Z >'7/'Gm~-/;!_t~b$x3~_r)H z/{k~e@_t~;_~/@_.D;::*/_.۷oի2~e~z}fk{goh_@ z=G痽[kѣ7o4Zi}vݻ2^zVJfBj~׏Ϗ_t~) wTvq&;, @ @ @ @sdvPi'Ԣί%ӳe/aF/zO?˾hu) d_e] /:]\+:^g-#\֏m۾ί/:}o_neoÇ i~2>~<(cTׯ_x|Gm~D?6nQ~}׌vίه/:7{F;l  @ @ @ @~B- ~nVtENjjӏhnit /:EaJst~{}?ίG}fk{goh_@ z=G痽[yfiǏ˸wWjU>\RJyLeRt?j^M?t_t~2~B?YPJ? @ @ @ @?\: Pou=E_t6?/zίVGG_$}=G痽wh~ts9xMruZ?GW.go::z~vuq Dst~ٻ/:fǔz'kGm~cԨ$A(^4߲E痳 d5J? @ @ @ @?l  @ @ @c=:^f>rׇ1c};G 0Tv6 @ @ @ @@URUK @ @kJҟ?^H~ݝ#-$U ~!6!@ @ @ @(0 @ @ @= <}ŋe.g)޽{e~`}GEt J@vPUH @ @ @ @_6ɯv|ۙ?EG~ItENjjӏhnit /:EaJst~{}?ίG}fk{goh_@ z=G痽[{iɝ;wÇV--߿_ƽ2FŻqF|>9E_?F~D_4vvP @ @ @ @&'0*-ZV|zvE7,E_oG@xst~ݴ?:~_0%9:콋DE痽#@`eTG_t~!\st~Og}?ί˗2ׯ H;;;ݻw2޺uJЊl֏it_TcctJ @ @ @ @ 1Ҽ}'΀ X/e7ɾEw[[u&@`JWSZ @H .~C;>>.vww?+OxppP?w26_[3^ ?=::*_|o߾-Wʸ^_^ɓ2>{N 7ӏ]t]H_tnAe]Ϯ}]>̲f_f=Vz-{ Ç蚼.2~z!#:/{Hgݏ>;} ocA# @ @ @ @V?eij$9fo*ή*{?;[bw ^zJg/:%@ӗܗlco,Ygc=Eߛ7o?qk`Dwʕ2۷o+g#:ue7_sjo]?7S}l;7s @ @ @ @@ ;OUKMݝޏ:-~8{Kw~/:`> 7ӏ]t]H_tnt&Gt浜Dz^+z;[s͎)QsQq6ݷM?{?kuz55]vͧ7 8::d<  @ @ @ @`r\U "@ @ @ r3{?NjaAekg!@ @ @ @T+`j[p @ @ @8]VB;=,L/:ޙk_xk29vPI) @ @ @ @,`)wWm @ @ @ <}Tŋ2noovvvew޹󽹚@~Dwue7j,"( @ @ @ @o.~|'}7+0~u]~ӕQ#:ND[_tj}}om+(Ws~Dg3v}4vdGt~bqRt~Eus9e;;{-Z~ݹs>|hE[7nhuɋ^Ⱥכ/o󪭀wT @ @ @ PTh'@!=:$/DF_zf/ ׇVn='hB)oB Z/u{:' H$`='jFdo#|Ryݻe|eoݺ0ϋ#:x멟}Tt~-;UF@͏T젲>Ȁ @ @ @ 0YKLHʖDsnIFu˦MlRjM} |KV\ܯE[_?}Tƃ2e_/ |r߾}[W^q9ׯ?yϞ=+cKy%:mlm˾ot~m| `1tI @ @ @ @ ޚ 濑=ў4^붴k#P D' M DO7Ys/:+FT~z#ܚ5Ʈnfpwj_=zPy۷wޕի_uV<~wYVZmë|;y*J @ @R@IDAT @ @Ae[= 'n 6]ml@o|2ޤ@t8w}ݯþjDH7[ϭ9_#nlf]ϑȿ_~}=~uB2nm{ʕ2۷o+$*y~w*y.EϷeX @ @ @ @ A%'ZU>= 'n 6]ml@o|2ޤ@t8w}ݯþjDH7[ϭ9_#nlf]ϑȿ_~}=~7*N75skH7|[ϭ֣??jrA @ @ @ 0a?> @ @ @h%7ת&;EZqL젲A|&@ @ @ @ `F @ @ @]VBYvB[Zךl~ ^ X*#5 @ @ @ @2. @ @ 0aO^xQ2[Nyࠌ;woo];ߝzfxW  @ @ @ @G`)yf fx/+zWu~:NM@O2 PП@_밯I5skH;csd>W_ߩE_}ݹs>|hE[7nhuEw;w]$t>@b鿲{B @ @ @ @A%'ZU>= 'n 6]ml@o|2ޤ@t8wW;1>bkN*g_f}j}2ׯ ;;;ݻw2޺uka^ u~}_$ܯ. A.K @ @ @ $GPjx"V,4zy"4e&U>J _w2'@|mr _Gm4nww.m=!/_.۷oի2~e~z;뉌 @ @ @ @8::dɴS! 4Ox?r#Y-Gc9~%[}!@s֯G.nt?۔ @S^7砨xQqz-1jG^  Aexsg$@ @ @ @T#0AjU( @ @ @;:DNjnEŋGxݴM2n @ @ @ L`ϛA%YSC @ @ Яk >puwT  GxtB 0r;'@ @ @ @dfvP  @ @ @ <}}Exxxxvvvew^߿_ƨx%XzS+痽/O<+`N @ @ @ @FoIL%H@/m2=E[[~k%ENj^/GlNE?gDNj_hx  @) |sΝ2~Uye˸Wƨx7nhE-|۾ݏ/z6e @ @ @ @`_j$[( tͶβ]?#-Gc9~%[}!@ @ 0&}2ׯ w-˗/x֭2F+A/3 Tt? Ae"T @ @ @ @ Y%'$eyFEvot?Uh @ ЏQ |2}^*OxppPׯɓ'e|Y-ʋ_[[~e)We믿|čM2h{bߒ`36EEk}]׶vPWd @ @ @ @@f?R9^bQ)dogzk/j'z=_~Vfvn՝>ZM|'M-Uu}-zEGu˯~Voh>^K}ʕ+eoV:nS[[~{{{e)Dx빶u?^]o}nsyO TN @ @ @ @@T1 <α;&onf~2}/z=_~Vsvn՝>ZM|'M-Uu}-zEGu˯~VohVhvLy:**3'{|ExQy5kk:ޘݯ뭶zzWJ_ @ @ @ @\?| @ @ @tzk/xףW[?jjstfn@vP! @ @ @ @& ` 4Q  @ @ @`l׮]+)y!)l-zXZ+MJLgNw&JoDE[עfo"LD*H;  @ @ @ @RKvP&@ @ @xi9/ʸ]s)޽{fzkeiDx붶u?^]o}G`6A%O;dB @ @ @ǿx2Q)?ۙ\{}Ċ^ϵ_Uݯ[uVi6~iSjzGGCzk/xQ~Dm9U^ݹs>|X?gwweq/_[[~{{{eDx빶u?^]o}f朶j.^ @ @ @ @ As7Og֖:z=_~Vtvn՝>ZM|'M- @ @˗rϟq_~]Hegg{n_|Y[n-"{]otu,nr֏]*;$? @ @ @ @.17zoHG= 躣e/αɾ=/ESo7[6&@ @˗2z>}*A_^'OٳgelvB9>>.www?+r?|._UKt~ԛcScKx/u}EEx/:^z/FWSϐvPj%@ @ @ @ ,0Xh7`O>O<8"6 }M4z=G#:nZM zί7F}zy/ FmdޕSytc%:?~ٮ7(>'z~f3 %Pz^F+: oS|^`5gElf#0@* @ @ @ @ \`kk*mUCMmoLnzn<;z=G#:&p@y#p@:-Y@m%{uͬ{y~t~v^͎^/a>|Yfva?~\x_.-f=st?~n9:P8Y*5tZ @ @ @ @ xJdCi'SG|-nMEm=w^ίkȾ󫭿z^^ǵŋBQj[/w%Tߘ~EO_*Jω^Lq7o,>~X6?eKs\rL+c-}vr]o9ust?~n9:nbIS1 @ @ @ @\_J˞4Ox<X0v^}϶ G~DMѵ d__tO/t(ֻc*oLVD'/UrDl&8fǔúghZEչ؏u0z#z=G#:'^/zί[7u*l  @ @ @ @?Ǩ2, @ @ -F6ֶ^;R]Dt~uPm~ݴNw F*m%@ @ @ @h-`d @ @ @ \v-yZ t@tOMy8H!'0b9 @ @ @ @&0.A7^  @ @ @t>}ZyExxxxn;;;2޻w/c-J-`n@zfίzݯjg:^ @ @ @ @嶾H믛_s7ݏi969:u\[.zWbLWe|^$'Ν;eC໻e˸WZݸqɋ_z^\m_E~DW^Wst~mcowP @ @ @ @vPi٠t7+炬[[-M^o|/ +}=Gw.7  @ @ @|Rrzyׅ\wvvw˗euVkWemKzn@tYы~>߹^9c ;}u @ @ @ @JKߨojhG"I⵭$?ڮpW[~ @8::*/_\ƷoߖիWeSx2>yϞ=+cEE_ij*|&Wjwr]m&;T~ @ @ @ @rTZg >=o&vПrz~?ޏhxutGnԾiݷ@ޏ-*=zT|ٓ~۷w߽{WƫWf'jk[ɬa_jll_E*쫪 @ @ @ @iҲ]ct\߲j[t[ #{?ctj/!Ʀ'^Pkevٯ߾?{?_xN o>|p;2𰌏?.ׯLE߃ YT?jW5j>#hKGGGEб @ @ @ @ lmm]ʹDl?z9?*/Ź3mF}ev}dGhxutGnԾiݷ@ޏ-*7o,c'q/\W\)S}v!z?oooDxI]L(&#{?- Z`V\& @ @ @ @JK 9ߜ;+ ԶVB1i0ڮ^-W@.:zxV@믝} d~?[/_~Ѣ8-LTәN_sߋr-^[&]}o_me_EghQ @ @ @ @Xx @ @ @7ѿSL[~Mz(nٯ߉*/{?;XvP%@ @ @ @ )pttt*C; @ @kJ?^ oN/$~lEk d~.lfGt~m_t]|T_ @ @ @ @6.`@ @ @ @`O>-xe<<<]m9u;_;~?ޏhx @ Џ@W|RN2ׯ ')޽[Ɨ/_֭[ jy'W˵3:_S4?ÇRn>2>~_^E7BPx__7گz"JX @ @ @ @Fqv[(hܤDIAP$%PA @% Ph - dG}~3gyΙYv'T'SG>姍_=5H;Ttū_ȴ߸lwzZݯz?Acϓe_緊3q\M~i^K'ް.~}I0VNOEƍ->SJW/_nuݨz~ֱ*ۥhzt>z~ݭߴ_oA%-* @ @ @ @wP9qfN9ͪܦ'ݏt/]ooW~&27.VO#dׁLWSx~7 __2L䭫wrEo~{S1%~3,^t?fܤY޴_x+ٙs5w,n_o$Hr:7{ @ @ @ @,(˂ٌ @ @ 1@~иx~;lJToںz~xpX @ @ @ @A' @ @ @e \zӧOU;t?-H'޿r}YlRQߪz~Wr>[[3UummT @ @ @ @i?$* @ @ 0Jɓ'mϟu}}hݻnwں_k_ϛ<˯GxOi:AN/dB @ @ @XYnV7?%'%+ݏt/]ooW~&27.VO#dׁLWSx~7 __2L䭫wrEo~{S[Km}777޽k;)U{=ݏF-^oח֛_oz7헌wb2X @ @ @ @+p _s}7'SNz~t?^/]ooW~&27.VO# @ @@B`?={mˁlllwi/zۥT/UTvL'ːMːc/m<ͯzs9;,d @ @ @ @S ʩxicߏ5}fv.z~龦Mo:? @ @Sk%\to޼i˗/Ƕڵkm}q[>}ٝdڃLU7Nk{Wϯz!pwl @ @ @ @@A+@7-iq,3N#]o#_#@eoo\~Zit^oo~~G^>|J [n߾}+W э巨ϷKUs:ϦҕUϯz!pPwL @ @ @ @@'y.wPU͢:ܔ߼iaG? ݏtޏt~c߇!qNU7Nk{Wϯz!zn%?x@^__oѣGm}Ձ8co`-ԼoH[=âI<ӷ7ZR!@ @ @ @;T;QlDirN_:t?Vϯz?O< }^;W=8Kg\=xMƍ>C(f;/_nuH~J|V;Pj^s?G^{mY;Lo2&@ @ @ @LF`ùk|d, >*$=י߸lwzz~/t~ @@V`77ii-_:U7t?#@@o;NřA~3ӭi>:{z~' "]oo}ٝAڃ~|U?W[~~1Cvٺ.7헞t~~K-:nw.]:Hs:^OqT[<A.%@ @ @ @ ؿC3D^߸lwW'2]o:tG^ v~Ӳ^zc~&3W=8{q,z[?Z~o̟ؔiaؚ@VÇ-ׯuV۷mrʠWec~:o{gϜ~̺s!Ŧ7X6Fr @ @ @ @ .*I~apߤ}Ѵ߸lwW'2]o:tG^ v~Ӳ^zc~&3W=8{q,z[?Z~o̟ؔiaؚ@F`{{zFݶ>z^mo\~o 9/}~T^o߸{W??ߙϭT~9 @ @ @ @Ae Tw;r>Q~߸eGuV/=zU??7Nc%07ii[M{f׫quתC~ædM 27nh>|֋:<|rׯ *ɴVK(5x_zW}Ɲ߻x~YYuAh @ @ @ @Ae w;roRኼo\#~Y_z痞tz'1N{}̴_x&=Uo8κk!aS2eckSSqN{ޏ8캜tT^3~뭞_aյx&1}=ʹۻ*l  @ @ @ @0/X @ @ @8v~Huxt~x3LoUw\7wOq=7޿{;='@ @ @ @,]TN @ @ @`W^mE|@1o:BkfگzqZV&UWDzz?7M՚e*뙌  @ @ @ @pIK @ @ @|?Uz~oٿUGT  @ @ @ @HwP9o:rc~:N[=DM痎WH+8ΏqZ&@ @ϟ[QϞ=kv[|r؍Ν;m}E[o޼y`^_xZ׫qx"k=SwjMﴲ;Lg%@ @ @ @LJŋߓZ _}</ 6uB%/}=߸aJf{; @8I`[\to޼i˗/Ƕڵkm}q[>}ٝ_ڃ?pk[jzjg`xߑ;,e; @ @ @ @_ulw ^t~UÁVq/=/q,o|cG 05ׅвo~V?7cÇ^~=谷njۿ}W\ymxշE[?zw9Xtߢ]t;-*5w};A @ @ @ БAe>"տwU/}=߸If{; .L:x绷~Voz~&0a՝;V]`{{ήG]'m}Q[_zu Nz߿JLUNiϏ_z;?~1"%;y @ @ @ @tь>O⏍wl>S_ֱ7=[o\6-LM`uajtū>߽z0 F 7nh%~/߿/T:rׯ_6J׻JIUΏ_z;?~>qߢRps@ @ @ @ TwPY*};u߼IכrJJV37wiq,o|cG 05ׅ]GR~@IDAT|֏M_O~16'ق ,=]:zTwK_z qc67^#*T @ @ @ @~) @ @ @zz sظ~Voz~K v;{5}^~~;>UrDRr @ @ @ @?R{뮴h#]oowMZoe^vM[[?z7=i? ǰNld .۷V۷A%onn߽{ׯ7N׻JHUΏ_z;?~g2xoXۻJW= @ @ @ @`_p}ϸ7o׿w;\7?iq,o|cG @ @' }ϟۦϞ=kv[|r F{|Νx7o<]z{WzGoZ~fq7XUW˪T%+. @ @ @ @@ppos/VǙH3j*nt~:Cy>X @ lvK.͛7m}e[?~֝^v?nӧO:SK{Q=`-ToHǫ^o:? ~ em{wfr^K @ @ @@ŋAF)77gV *=GJKsoWw痞MWt~"P|R"V"&!0T_~=([n߾}+W эhn[v~]痮Wm{Jȋ @ @ @ ""\Vc1WH|KJ7}{7' ce_aoHǫ^o:? ~ em{w.R|TgQgwwwѣz@7{wj~+VYE~KVo/TҢ @ @ @ @p > >iƫi:j=ʡ~rE[%>ֽ՛@SKz~x~U7xT?߆ԲȶջmTqFKÇmx~}g˗_~]hE7ߢu,]o.r^ۥJqWG'~Kz~x @ @ @ @{{{A~?{4ϥY=OogQt?59Ң⭒@MoiMGxש{[itt?כO<CoCjYd]6 {:gV=YzSnˊ}2ui%@o[yn* @ @ @ @ؿ/+^ @ @ @z~OءzO8HKU/]x-RC#@ @ @ @LX`mmT&? @ @ @KxI󶮯uww#nllwvvzc?;m]G[G9Ty>ݏ{ҜoU:,UHխzz?AzG @ @ @&qO/Y`6;V=~Moo|K[VoO<ƞ˾NU/MWt~"P|R"V"&!P]۷o-۷oRlۿ{ׯ_IW[C}zt?Z η(>oVo/oQJRT, @ @ @ @w$ f|777_ǽ;koo|K[VoO< @S`?={~F{|Νx7o<]ARuVkxioz>RC#@ @ @ @L\駿|gxK)Lt?R~~Tto9 @* t.]7o޴˗mc[wvvzڵ>~O>mN#}廹?W[_{[.߿?ۡfPnG:Wt~ū~~Tϯe:SJ @ @ @8c )>V.>n~>/Mws9tz߹J`uf[â:Gt~xM[<2Ugo-Vׯz֭۷ozʕo9l~!8Pz)_:ީ:fJT[ɱSHwP hw @ @ @ @AxCfǡ=1MjT7_ɲI_[Oux'H?ju(ݏtuכίxe\ǫVS`{{g_wwwѣ޿{U[?Vz]YV^KC~꼸 *E5 @ @ @ @ > >p7Q[{GRt~U#gGzYMW`uf[ꓣ:Gt~xM[<2Ugo)pƍV؇z߁B˗/ׅk[?V;y7=~&q ;YwP% @ @ @ @&.*8lT[{GRt~ծ''=~o >c3׽U աt?եKǫ^o:♗q7:{XMS>m@/RuzooH[}^כ{^O_[SORTb @ @ @ @0/ @ @ 7{ROGv\H#]]:t-y~㪳we繃Jɍ @ @ @ MT @ @XիW!>}tP&vo|Gt~xM[<2Ug{{{RAr#@ @ @ @L]ŋAe]? @ @8'O<m=޽{kk/Z­h7_zPt~K_O~iQVE`mmTV @ @ @ @TX w*^T7L3=~os%kS{zVHW/zzg^u߸M`5} }v[߿?Ͷwں^]~}Yo[{GRt~g}8/8~e @ @ @ @Ae`~cVnoV+֏tz]OOz߲'@| @ pvgϞu{{_|9F{|Νx7olkoZхG._:^zϼxuqٻ;T @ @ @ @ۻ*X9qt'7}bӘG&S&)8rySPe󗞗t~O @?tR[߼y֗/_Ǐmik>};p+&Z颫痮zt?{KxK-;q @ @ @ @P`B2o }F8Q=q;ݏ@zUK[%_oUoF`\OmV~_H7L`-ݏ ?yG <|ܺum۶^reqyUoڥz~zK#bG[*m9;4 @ @ @ @q/Pձt?7[_?zϻ_'ޯ%ݏw~O_:~z{뭿q2SotӒK[=^x ̿[a'o; nAL%Nί_/=/zz3czjsz̔%ߴdVG:ao~o[N>-nܸт~im=<|rׯ'rj\a%ݏ-@R_s[ݡbA' @ @ @ @R_pOxrBs*cV…ӆyIz~Զs;lBί_/=/zz3czjsz̔%ߴdVG:ao~o[N>-fwLޜH8=I]Ru:uU_OK[չ8t?zTKxG]9~oAe}T @ @ @ @~) @ @ @2o4)DVwHw.Y.dE6L#:s^u<7.{Wpƫ;vUG @ @ @8wwP9H @ @zjKӧO]o&@S=,Nءz~'r/W<]xviU/]ox3*;$7 @ @ @ @.ě(} @ @ pO~ί_/=/zz  @ 0Us+ٳgmn/_߹s/^h͛7lWAa*yz~zK#߸t?z_:TzZ  @ @ @ @ 9s҇}jEci7旮7z㥯/~Tϯz?G @* fK?| ~oݺնm[\2hE7NW=ޢ.nwvi}SbS.Vme?[,o*  @ @ @ @At{?d Mt~V{\/_5|߼Ȱ󜮷M[qmülM׭ue<_x}wl>S?W=^?&:~k7|7,[C`{{Ϯ_Gmݶ>z^:gt~o)Mǫo|,{7N_z߸i;w=s s @ @ @ @.^xTbITG}6گ_:r=qiݯ_z߸i;w0go(0ogjKGDv=Vom/{eck}ܸqÇ*|']._6I z=V;~t~ 9llơWKs7mNgpmB @ @ @ p*};UcRu.+Nut~rL5$9]oo{qq~&c[ʼq:8]|گzt;Ltja՝ooX6&Ї)/gov]N噎kY~fyV]߸TKs7mNgpmB @ @ @ %C @ @ @J IW=^ut~Ut~~Kǫ^ooU;Ae: @ @ @ @ ]psm @ @ @^Ӂ|S<_xx7ҤBK7G4=/x[9ޥK.Jɍ @ @ @ 0qwPxO @ @,Gɓ'-ۺc^iݻw/w^K%Uo:i/wqV_z^}W^oo[s:^ @ @ @ @ \x?m51hqK-v [a4Y/=z{oܴ;ݏG7U{J_WU7_z3~aS6̗=ò5>} }v[߿?ͶwzAq:vTx~@u<-qvxt?\{T~nY @ @ @ @A%!~e&Mt~V{\/_5|߼Ȱ󜮷M[qmülM @!0?n={~a766;wŋmyRUrI;˚/W4=/x[=;T @ @ @ @p/_g 0]P>N2[;=Ϸ_[:x @ @onnМ..]j7o˶~;;;mvZ[?~֧Ouv߿dzj|_=￷~kGt~itKzt?;.kz~z~g+"@`9c3׽ttz7'ް Zǰl=5R=[xa{O.ۭ[Vo߾m+Wښ@*6I痎76N'lrVGoXLVSHsڡz~z{*tZ @ @ @ @spscylo=z ڟ W#L }}NK~f9%0:3KKkK޴x&hoêKo pvcxf}zzuww=jۚի/CJVoz^[89=/t(븃JW5 @ @ @ @L?*gB 3'gG}Byr#pW$ y-N4^g{xit~x՛o-McXu@y-_.\qFcC[/^;߿_gv]|r~kk+ׯ FM_nlTlGq @ @ @ @%ADIb ll+h'_%39=/u///z~ e~ S>/ZK ;̿fvJKřգޙt;]f{旾5TϯF;Lw2'@ @ @ @LBId)I @ @ @0OKӦK޴x&߸]] =z痮xu:V @ @ @ @99;$ @ @ ЗիW[>}:Pi)w t~xH'޿UΏq`=X9<痮xkkkSJ @ @ @8kY; @ @ Н'OZϟ?oz[wwwhݻmw^[SZoz^[/BH_%V/]oOAn @ @ @ pNkFs:v(OV/4@uu//]q:tM7l}1:[OMToj/.|1ܾ}߿IJٶ][ښwAzk7=/v׃^?[9=/;n.\\TC @ @ @ PIŋARG:e7OM4MSXA8?*q yL=G @/0?n>{mˁ;wŋ޼yx-hG:t`KG^jo>?ī%tuK[}ٝAkv~hT,5=/x՛Wq%_z^Tzz  @ @ @ @g,*@x3߼oHWoz;y9`xU;w>/ixs=?eԦ~Nez㝦']xú7;lo鋨`>l~zPnjۿ}W\ikx\{G%#tcR/R^kQᅨ:[eudζwP9[oG#@ @ @ @t%[r-M;{fK7߹8 _u@ &1כ_eWQNw:iwrt ﰽuz^/) loo /wPIG @ @ @ ?wP> OOt?;S^9k>כ_eWQNw:iwrt ﰽuz^/) ܸqÇ^w`P9m~P]Q7ߪժԑUKzn7d??*IQ @ @ @ @yo.}Y}؍VƣzHכoN(%=/iW/ݏK/=!^F`\qxDziF =/x,I+ްͿ{[e"*)yv^Tk*t?gz^׿W/ݏKطsX @ @ @ @?ˁg< @ @ @D ~BO֏t+=t-J+^/=/^62ɘ @ @ @ 0 d%Q @ @ p~W^mӁ$NUoN^iK:-;q @ @ @ @P`mmTۡ @ @ @dOz^׿W/ݏK߄ @ @ @ @A~#ڢoToz:dhGx%헞 @Sϟ?={~@i;wŋ޼y$;[?v4*]tMI+޸/=/z*u\ @ @ @ @3p3w8c߀Y;DYkQ}^^oz~zo/KG @ k;]to޼i˗/Ƕڵkm}q[>}ٝ}kqj[t~oDǨLR!@ @ @ @;f_UA7 ryIzyx#z?MowX3.0}i:Z=^[o^o:1~ a{ۚ#Vׯu֭۷ozʕV7H譿Mw+DO7;W @ @ @ @qwP H`ycY̖7ƹVt;N>Bgzo-6/V7}N7egWoMK:^otwPIG @ @ @ ?8B3dx'3W?JyIzKK뭿it/'4o; zozt~ ǰmM ܸqÇ^wPq˗/JBu%Ϸϧγ7=/x_Lpx @ @ @ @Aj >];\v4β[q/Vw\7;|ZZm xƾ/_GcﭿM7v>Oa01lo[ @`߾}kEܾ}߿Tfݻwmjkxׯ_T Ttכ>~ޣt/}FJZT< @ @ @ @ (B`cY4*dA?,N[yIzq;Vzorm @ p6vgϞu{{_|9F{|Νx7olkx-I?N-[כԃ1~{H{*R @ @ @ @ŋ/-*^*F}1U[:^*YG:%ޏt~>,+N,q~VuW湏>L_OSyCǧڹ;l677[Auhx߿o)??~lN[׶mںZҥKm}M[_|]֞q[>}ٝiڃ?HK~xK#_گzooA @ @ @ p>Z1''&_D+}~_yI#[mޮW.?ƞ'v_ ?Tz$f~KUQ%]~#pvc2u B?Çׯ_#uV{۷mrʑێyz~cjپ-Ly.W=훮gr- @ @ @ @N)UwP:߼OϏ_ҧKz{/Ώ[~⭶@o׃K_OqcϓeU/ӅQ[~c3˨Gd8;s|v:Re]Y氽>xO_7Gywwwѣz@7[~o-r~ObG:bs1ŭ Ae3 @ @ @ @`"t͚}un6TOD*GHU/=-t{;?G:^oM]V˯.}=]~ƙ#=OV=L~D^ooVI/#JFeHweÍ7>#nvm_i^ij:nVk㸩=w,+ ]T @ @ @ @; lwy}B<}~>M[~v~%ݏtozv7_]z3G{,ۭz~.R-W=^FGt?" ԑ*, 57SRur,Z:g6o18ݪsqsTz켚  @ @ @u9@IDAT @g$a_XC @ @ @`%wtH#Uϯz#_:y'G:޸]=3U @ @ @ @A[  @ @ @) \zӧeT~Tz70B;P|A@J]pۯx @ @ @ @AeƎ@ @ @ O/~V︳޽ Ϗ[?oFtϋe0(~o:dZ*Dcϋcx/,Çۦ_^tݭ[۶^ren\=EX-ުuTu,]o.2Ae? @ @ @ @; lO;a7Nz{1=q Go;ݛ@H#]fD:._ ӉGoLGQ-0;{InooMo/}~TGoVt~ @ @ @ @;8쓮'oG}bvmq7Nz{1=qQ}^qg{H~ߌXeta:Q-t:ɴz3U[?*ƞw<>^@97nM>|֋Oڵ>|r{ׅ[t-ZǪlVI_x\Ut?zsx @ @ @ @ۻ*X'X|BdBiW8eGyIzǝ M }~W3c}^T/ӅDIxt&T#Joo{^G^x=WgwLIu*,eMcvzTSGoNeSyJJR @ @ @ @CwPг @ @ @ @`a>Vo2Vft?z2`!` o[ ìȆ"T @ @ @ @T*vFN @ @ @zjӧOrN @74ݏ (zЦջ m*+L @ @ @ @ Jȇ @ @ @`ZO3W=q;ݏ ˸Go;ݛ@H#]fD:._ ӉGoLGQ-0;{I~mr]{ׯ_?ckkzQ}~K[}*IQ @ @ @ @T'O6;{7Nz{1=q Go;ݛ@H#]E#@dMud/?={mˁlllwi/zۥT/UT[9gYݽKI @ @ @8'_$'f,tKKכno[?z7=Ϗʏ* v}vZU  @`~`oo|ҥy/_lǏۺk׮m}i[gw.i?f󷹹٢֡J,?=믿:믿omHW=ެԚtǫ>/#u^ϏtY.Tك @ @ @ @`A )f>aHKչ8z/9헎t~%-*ǐZlK@z>UGut~~^7Cem~o脇S;/ {Oa:3oׯgO-޺um۶^re{t-Qa^Ko~i٪wwP}O @ @ @X; N; t~y|~9헎t~%-*ǐZlK@z>UGut~~^7CTLv -{]?uk =Yo_/v#~Yߏ:z~ww=jWĩ ][)♗ϐӞoKoV??]{Tz @ @ @ @,*g ۑ#w8t~'_[~m~xyNg^Ң ~~ Ŷ 7_~TK7>/+Y~5]x:d^AeKo+ p:ו__8ݸq/߿/D?˗/~~QޭVJʯxeۼVo㼮{X`owP9 @ @ @ @; Ĝ}vnGnq:#/BuKEoKKs:?o@cH-%P] }O_:Y?yYyKz!*C&f~^z;߆Xٖ u5ovǔTTe=]H[y;BU:Ab @ @ @ @`^`L?1 @ @ @J}C?]x937ؿ;,e; @ @ @ @S ʩD @ @ pVW^mӁC|p 9>H+޿4/ y7/-6U"pޞ; @ @ @ @ \x;,Wd @ @ @'OZϟu}}Fhݻn_tkzWe.ü6zKX[[sy  @ @ @ @kΆ\hIO痬u_ǽs//=KZT!Ϗ!ؖ@u>}ޏ~fe5/oX˸3g_uaٚs:=۷om} ͶwzAzZ )♗q[o[Ϗ~;٫ @ @ @ @ @'ӟ N77[~m~xyNg^Ң ~~{goIQ~3hDC# u h".(Qp1QTuBbL (`[@hI ~۷ҷϽo}>U/էO}ouթSmBZN}z{y[ @ xwk͛gWر#;c}_uUH7l;o۶-ƛ7oHw~G}Iҭ,n I2!@ @ @ @f&{*-y[`]K5F&o29;?o{]By/޹7w~./|^跶 x?oχ~f˽< ̛w{׻߼yv;?o_A2+\pA:_q1޹sg8|1>bl(N-E[޲7w~呻<;e*V @ @ @ ,~-,M~˳|FWA Y^o涟;?oo߾=<D[=c]vN93 'e˯7o~sLT1{~s]r{}{zV1W_=U=loӦMQ\_͝w]^%sT" @ @ @ @" U˽4s߼ʣkK>߲{O_,ij|gUhCsVw;[[?o1KO/94y˖_˷WW^K=3^_e)ySeyE& @ @ @ @@$ 㲽a@ @ @ e"l3-uٛeo#wy-/w~˦T/ @ @ @ @X0<,8 @ @ @X]T+Pd_Î7?oyY_2NkokdK{~c񠲴O!@ @ @ @ xP?g@ @ @ [Fm8_>ƻv ;w#>˖_o>b/ϻ./;e*V @ @ @ ,JX\={}; V/:כ7M6Es7w~/wyחϹ~xP&<@ @ @ @ xP1yۂ[DV7E]_ȯw %ϻxλy뗻{y&y?^/@?@ 0o]~U~ʫ~cǎxOc|UW \aÆax۶m1޼y@\w-[޲7w~呻<;eOee*q @ @ @ @VޫpOn Q3B m^r<˼Ƚ>{?F @ @/޸qc<_z1+bs~1>c|A޽;n^1 b|YgŸ.O>vi16O-qY~>(⶷=m3)w}ɽ<-oRs~<˲ƗU]w @ @ @ @k&ΥsK7~o9/9ϛcen5ܻ>{~h _;p KZ]6χ[7w~ͫ<֛z>+^ro;ɩs/oM&LE._oyd `cc~gqW9xQzhLx}VJBb;QeO{yx-ozҤ\kxPYJ @ @ @ @@FҲ0--kgs筟7˲#jw}.o;wHԗ6Hl~oWyt7|z˛Wv$ՓS^y˛L$]ɂ{At&b%oL\y]۷o"?VF~~׮]1>餓b|1K9ϛVҹ~uҿ2VݻwxP @ @ @ @ZXn]re#yMݪΝ~s/Əvٻ^o^ѵ-o^K~ۑחvWON{yx-o2aR,wz[$ #е3=ss筟w9r!Q_c )ٳ'ƓY}g}bM6KW_=IU=͏v+[e{޺Վ]M}_*mh @ @ @ @5ƻv ;w#Gc/yQXeըZ]6yϻ>S_K<M*sϹ]  @ @ @ @ Șn%X2׼(@(Hɽ|6?)|xorϯ~{R|${o~S^RK/,/Q e_ʷhWyJ.[:)˦_d؂h]q]r]T?b |O<oC/1]^L;_w~o:zO R'> @ @ @ @+< "O ^^6»|s{~[͛w}^6wyx뇼M wmӟR]Gs7W=.oo7m^6rp qz~Ƚ|o`LQi1]b|I'cq9眨߲._oy]M?]W>[e*q @ @ @ @L@FxPi ,q[^62(ޑpbr/_o A=;뭟#1Wś͵[ . pRԅoW=9mDxG=.ϻx6~Ƚ|9/u޳gT,OLiӦ]}Sk$._oy]M?]k=>m>2-)A @ @ @ D*-mF&B|$U9{z*[tٞ͝_֯E_śJySy#N@@9Ԃ@_ʷhZH]C=.ϻx6~Ƚ|cW*K֢]=-ϻ>/~ϻc._oy]M?]$*T @ @ @ F\{ ]V_wblχw/z7ߧt Yk@_a_ʷh[I.r8Q/wy};5laz~Ƚ|d˖-1ZڸqcLxӦM1U*}O]=-ϻ>/~ϻ蠃bl޽;kb|Ίq]8 ?c|i<./w~?:Eyϻ|e{~_{  @ @ @ @90yYX-ܬrϽZw}yC&DɣtXM ?FkyFvow^y?Y|e/'Hs<#K'xbFzhLx}1W~nTe;NJ;E=iz* @ @ @ @RrUxPiYXs>/ym}]kgbr;BP_AU9eG ZD.r5}*2W'%m}G;mz s>\1<;sۣ?~VG~~׮]1>餓b|1y+Zw9|yykI~X$^ xPY  @ @ @ , ]ͼp}oz>gdo\MʻLII~qNŧ^xܱ>}3:N;2\y!D_~y׭vN={=OLi&kW_=U6wo|L~L[sIM@*xP<@ @ @ @ AWkYac"rT6w֯ iҒi(-. eq xOC^^rO.Wӧ/yuRv|f񩗭,0w#Eγ.i>W/=@l;?r5:[?+&Hz?ԗnճPà @ @ @ @`[=! !@ @ @ x{@^;n;wVƏ"m @ @ @ @" c+<"%3 @ @ @1ɕW^9tVOȻZ7PIv닃JsA~ś1vlYDAWŅ @ @ @ @_VVVү"C[@ @ @ nEq1^~}w5V ;w#GcM~py?G"~K!; ]∮ҋbBI@ @ @ @ _+a/^s!@`Z?^iKt"]럷~ޥN~vG}Ə!ߧ=@z]'tqMSyח:)o;~>iV_O;@碏yF Gf4+(x˖-1Zhƍ1_M6ya>xMʻy7e6NF~zP_$t&T" @ @ @ @:2vƃuRȎB8(:B @ @ @ (*=-;Ԇ @ @ @ @!B @ @ @ XYYJ !@ @ @ @@A_其 @ @ @ @w0P]0 @ @ @ @,Y?Ņ @ @ @ @VVV0P_1 @ @ @ @Wy- @ @ @ @ TzWd( @ @ @ @E~B @ @ @ @wE @ @ @ @?ʲ,0POy) @ @ @ @% TzYl( @ @ @ @A`ee*(* @ @ @ 暠@IDAT@$?,7 @ @ @ @!B @ @ @ X_ @ @ @ @ ww.0Pɽ @ @ @ u0Pq: @ @ @ @Ȟ *ٗ B @ @ @ ` C @ @ @ `{  @ @ @ @9 Tz^@ @ @ @r'J%~ @ @ @ @v]!8@ @ @ @ 9źu늷=q=y5{)^UT9zŃ*(.B*7('7эF^3u_I09oŹ[ܹQ-=m>8{V#| ^߽g}vЇ>tj?wⳮw>3$ ޽~ W4/xjc>)O:>pܛU3k_;0^!T} ! 7_ŭo}UzLn  `oY.O{ӊ;v k׮f׼:YJ16VSNR@4|k_+9!!98 y2ꪫ>׿E6CԿ{/{ӟ^|#Y^WgOzғw8/??*GKfwⷿJ+$ '>}sŗ/y:n %?P[u֭>e\mti2a4Ka|20^??̘ޯ$ʵ/;;2%p߿S_|SoT3LOz輌qH @o0P[og^xaq' )}PST|g>@eɪSde944y; V>{(ִu};M62<A%42pmo{[q!Μ<<όZۿۭ4_w]wЬ<1d@_#a{Xvi=|/'/mۆc|?я"k s,90 |#9ud7]:5$̇@xBz\rIdM d@@LW^ye]ƾ*yj 7F0^zKF Jŀ"َa)񒗼$jLjyg z$A`g/+4Hoon4}!=8S -ݢ ?C iW\qEq{3z;ڸqc<ƿ JO}j^{VZi@PAy x5F.2'|x#Q?ܝک:s'jw_:' '<''x=2xyZ^<ώK4H0^xXP2RW<- U"bZB]}w4 =BsNq{#OwLk}Q*ڰMq-7mov52gZ4[c*O!&ʚ.^2W'Fxx˖-+_!koŘVO rIwweDP '/n]ƪ᠙v]24KKַt:5x=@K/ZEc}hyq"wݕEKW_U>Fq2K^N~5:}r_fҠNKO>1؂f=ꕎЃ6Bl<9_'tR@z!|gZ]g󨳳>K(ճ__NLZzJuq.*H:s?sv(]cڒOzv 'T X=o~;NZsGw4kQ_ v ū_bH@ [m-_mRqHȋy,`? |Q[|Yg߹jQn{ZUANB?xw.gei<~@K@7KՃ>.N/~P{wlc{/'[MiZg5Q" ?MP]sҗie7@MGcKG|>!TZTG1PYL 5shY5;*scUO˿gS V\ TÌ@ |Ї>dɆbɗ'&/BqH MA隖͑ lVG_B2uFǷn6m^2/{"[փ7q@//er,#uuyofj96=Q[4P$-U.&5??. OZ:/p[ݪP"GYN!x_wḌvyd~h Ӷ(_u^* #6̝~鱓>ԻT,iMKQ]ըez,m%6꿼`Սv^FxFe޳ML%IMd5F6=ew$YWB,Zo P_\;)(b՟[}WC7@}]oQc k@"@`iAM3a&|Ye0hLk0[NJNc72x(rehehi?-CH!Qs~yи)Ȁ45b yJ 2X:C01 #; fM~0H7iOu&%{J0;GFXJ\n$G,#nf n;G>[aiJ/,^K`RigwRisOdy=zV`;~ bܶkFoRmٴ8`1t?C`\&YhTKmz8S'>QɟI qIaVN񺨁00[jekaz2̄i' ֮XS3wVR~AviV?=:#gQ!,4`or0.CGdu_;gm0u9gZ7FrgBK2ڡŪGayաkz6`G TK}G4SQv0*|5vWRM OxB>6Tm|Տ4H7 %e!Wd`;a~2,_Ýk;;З]c>V /|#ŔvOoM]m=Sm¬GYJ7\;,xҪ, s&Oލ ҷoPRqq;}>g0jcԿ==σY=cbi'2LP7.< 5C@`4[v|d  rWZX1Tr53J_0nEgT[v:tiz話0*'7}[1,U~yu #cAq+qRUԞ f5+!@`iٟՋY?5z`@H?SBaUh@`ja8pK B@E RStw ;{JLKA ’CŨA 3lois-,?HŒRm(¬43Yc]H +hhxMoZ*?6x\Ťao^E26:yGk`DQ av@`Z7eX|k_[uQ%Q{\IWi띄J"ՋMJg:?MqY1mxM2PAC1E:+]ڳ2Ӹչ '5x)7o2 )5ܹa6x|M'?ɤK&>V jOٻM 9x@F&bJtNmF ƥAFai^&oT, A]&yxWg[SP{nL !vΙoj$*Lq]oqwJj@=M 㕹y@Q[xm4mea.)V+tAeUe< 9i,U5I]< 㻼`?f*' MLMCvob@kW->U vV׌ K~Q?Mp5 ~O^7Zg~_4UCi_8.\Sz4J@V٥zL׫naY8R䑅& LS> CT+oe;.}o"cXJ?1R>.0NΩM&žU(~/UPYk,% jh&7ygnmY۵,%g>tAbe< DR&4*=}z~4M*5ԤRhj4&#m]o}>z?Y]σC]cS_%kdiB9+*9,@,Rl:c,ah:=vzVu<>u"F}^4H w7M>! a!rڡ7ntVX,:{_SihZDf٭t(N $fRR8fo{'څjʓWq0~:f1IyZYoc^/x 浺:{%pc7[TԽƥKx)a\M*m&M׵.KvO6}XٸE5a|wvq^Xs0WYx1,yx,+e@kkX{E}K 9M">M5'zqO}y3=e?MbAΘyyL=/܌bMMRn%2Ӷ۶e:6}話ƳҠXi⌼ؤv.&vvj:KރƋFċ=KnږS?rXwRT>I:q$<";krfȐm(ifxN }E]ꍳNNI:ڱVkH'IZĮDA֨zSXoPJ'ycS#7Tפp"坺!l&}2P.KiӸVYzy9w&YMmnA0-/8 ;U--@o7M^ciiYkT"mǞr)1yC ˒K(Bbdz?NLm \IﲜEmq`ekMڻzwqScl]o,E0̋R?y }CdE1,ffSup }{O`8. jW[msbFh m:};/+",G_X[䄥oSOe:`PMkGa@[I;Bai`@7x*xS[17㘁K~Ўmշ~>v ``>Lx<`q~_dw"LګK0-6}r FS2p2xGZSզ=/*xe[UmVqXʫ}s cOǾo`=_g< S0A7 5⸖1jw㷸QG̃'*[!,SK~WabzPcb2otTr@ax!B#?,h?Iu*aZTNu1M%3廙cSQS _(goB %jx``}C[#9 T,9Y5GI:c3E#6tjYHMOnqܻ,Ad5*mbg)&*j|Lf< BiQ_mmZqf.G@}& CuOA-[ d}{_)勉F52~u:)xݮjWJv ?Ayvjɐ{RPrj֮keTiCS&5 3'I;&%0~ͦe)m 3NR]of0a*Hߟ@EA_6/0^C,S?M1a;2KKn^Gj~gZ"aIڬ2đ@ڗh}@}2PѠ&yZ_[ެ lOpdZ4~ _ 4设t}Ϧ*ySRFnfb %^f!Y5ӆpdQFIp'?`bkK׆eGmȑW &;c)%I 8fT}{NW7²7Cu ͳGYSR]W,@iO{ZTO(W=Q& DCATڰV4ϫ_:L-ʩKttN@}'}Yjg(}Z{HiվK#!h)?uvh&4/.*Mn\5M'NILE qkt?yуyO9l4:MJ08m˧m=չq!MkmOtXsN4j?OFMrzE{1/z檗t?hqX ҾtfykqOy@ 1._YGAD|ԯ>#{'5uϴ8/o);nI/yBL'hlj,o@Ż,1j:g+4gM_`}8^^zSI׏O F}@E@eĹߪ_V?bմZ6o\:\)\g v:ejizPܸ (znb@1o;6X-i6 Ȥ*jd5zSe"׼5w\i=m.XЬ^> dشC\NN i=NXL˲*.(^"?z?K8ј>N>Th] /DjjxV4g\3=eKC:# =6 >8蠃*h7U[׆zrAGX8쳋N:vcv\-ו#v4Ev<^UsiKq!س{jfa~' >SiPSZK 0^zF|L26PØcxܩQZsw?k4f҄5JGYGRlsʘ6;(;-q> Ǒ Vn7AkqO1*2XLGz>Q6퇞Fv݃eqVo74k:. h$zlwp#NsώӷON}wR 'ͯm`@%`&jh^|3ۨ#kmd} MK׏:PLYjst;u,4yw@Y[8IYMAr5NE5\S$IKB .O޸n>=fZmkY'3Ѭ#o-}YtQ#Qutpg4ҲQ1)B. $oQ,[ZXK_ҙvxϒ:]Fr rӮp'.d3޵ko5۽%Fz@` ȥe򒗼dfj˘g8sԞzl[K|L, lJ452OJm u]hoc^G8fE}4{KS/?;WjWjZ22Jz?X7x 0q¦1fo&dN3iYyeUk7phtwY΢<G?*do)]}kcc? ěIW[UȾveȥ%4Qǖ{!_m򙞷<رvm\4V&!E/Y[Џ~8wyсj;h=yOlLW o2lI)NXG9~rg&YKeLtiZ'n}tfV::LLpTK_Rg -!m<7iZPBK\\j#Zô|[~TubԽ,a W1ٍ/o37]<'-Y^T/YE$>bfOASB2ԉhb:+ ~:i}_/4pb[^O;nqU7#f)_UZ2DQ8QK85u{YgIyUw>:TH˲ްyOA3+k1 |7-9abO+ևGH[2 ,fAm7M*ͶovW\/.䑰& [wq57YH6Ty)WbguVl/8-LfSZXmG<c X650e_ E0@Eg4UQկ<V ўTGdlOQ= u8ˤJe5|@6>cnF_>w}w`?g0P B 5Um۾>p.cAO:͟?U&Y  jjX 6GM(:64kF!y{e[1Tr&{?_t~>agT7mA!aafl2tN-nQk(.4`(>[#eFy˫x3䆎2+U|2UקT0T! j _״ R1epW_*OMi ,e0e){Z:z>Ksh|(KeY[z]Hx׻Uo\HυeR5&nz~=BQT ςFOڣjo-o)ߔ`7!̠ޕx`:r I`p]2 Ҏ~, Xm۶Rm oe15$+ <#2,!P, e0d-`S e0L/ۡV]mA*V^r%e0mVa)2Ю[Kݠitepy\IOzRu^TGW)|F}w)t$|ֳU>eP-8҄N2eS<>D*/xX( !]dּ:sBȬ}ray2tWm ^4jy7d[2햡ne0#}BGso7LPkmt߸ 5`ʧ@u!L(yv^f2ow 3h邡qcMuWeƫJ:#\`V]/yvb]Sei2'c06+!Pf χֿ3%Ob{KzcyUƖOäxtйo Ğ (vҾ7B0x4^b@ [aRP?4Am`2MҘ&Lv V m//:;n˫avT3cxהdڛvzjv !Jil`Sxkδ;Nv3*MzDa'!W^n¤Z='wY~w+ԶI7O02x&;XPWn~Ouo핐 u*u9du yAKXiLz]oHc&m8k_eIAa$CB9(q)i % anتSvHsih꤬_Ӵ,B67zFunuY2UH#ȪΨ=)t,5}1&.A6\ @`>ϕaVQ:24d<[71];.N;,H2c2 3Rvj2j:}ePli-Vgpg[jގq*8$N|#9uK;V,s0W۴<ОƼ0)Km/6:ֶ} 4oxI9˰:G2s0^eΖ;V_ xL20x}@VD 5{P2m :VӾ+W@E&;>xEo^<S[pd,*Nj74C֤S o0/]9W^oL皬P62+^[^5tW}~N Tm;lGMW[ﲔ TӤtI&k'b^KxJ:&ܚl{we=no7If139k+e<کN&rG@.! a\CBh#qYIp€r?ۺUhgf錒fYhLx ܅\:Zf*VnÏs!wfbT\p%АtS\iI '0ZĎ7šAmرE0ЈaB՚xiܮ5| ?1O%j[7ihWǴdK sa@f͜G?K7-yCR1_uM;%r(24&wWX1\jjmE\+cH.K,Q0(KZ*Qe'*W.e˽갖PP9l>f"c8?:,jBzjպ0c9W?4׻KAӲ M7TS#SjwàNCĕҩ~Y.< ^P[A-uC^?OĶf=3jjə8pJ_eT^}IH% q#Njz3mkU'†s(.aӱf27 O=ƥ1Àf:ۼ܎k\6Ҡۏ~R9mΔ.gSq9Ov$n%@Ck:]q%(lH`P#"fZ) jS\7b1nV;Cz-r=X7-iH -=>Ij[nõxKn۱IqЂ@IDATk9'}S>{OAuC?BKqjBq:՟0ZB"Hiզ;00.j)0K 0j)E}/hI.}c=K2=7y`iMbedՆL9B:~L'Z4t{UuAK)MM~C3Rzg) <*xlofu}U/xXϘA7cA CX̶U+XuwclTjkzO iEKCӠw-Ѣ[avc6tɰ%ߪ?-%~rY$Lk>zPFzXNS(xtL-oNd{ Fȅ-.v/{ -Gv] K}&`ƾ|;wa::4P.!O~6|KyџtS<'WF>r\S h>!2u(鱏}a;0w$0jZu! ^ux"+#Yu0MQ6i Y zi UT(x=oMA2 71ukr d/)_>h 27iBTm&dДO3=Yd]z[A' uJLxVMVT>medlAm14;>).jMe)YfDWjʠjڠ]} t4a¾ĚDi:@G82hQ_Č]ҺTGmیMoĮAڌԿ~%r ߯Ü̙@+t n 0Rxƿ;Zz!~ 3"@hO toT7!LԲB0XZ~H2i O=lNהΎC4y\R(L{M0 (v=8n Yխ`P-!e:i`1 2Lx(%,b-'? F?Cz{rPT֨m۩u 5e٤FuiQqF0\nKP>4=6JCXSO ]]'2TyvB `XA%73!,3EYokvB۠Y ןN h2GyPU]GX,^O-h%8xiX"k ZD Ƀ:˄j)QAS_cTz;.O 低+ZF BJD(-\Ե AXZļ 6]7y{Ty|A^G|<﨣d|==D Pi/[*K` ]RuIHQͦófcNQs-}2{J%k\unʜ\t4nt >N|F> ZԖ  Gzw)xP5JnuLfD @`m03N㠤׀x#@ @`^LZoqY便xx$9X2@@SGY0Yo-p!rQIp/פۄ/<h%8 =B׌>^qBp\Zx8 wnA/CZ]Kb@Vm Y\rI|?Ks'х!$EM0ύyX0^Mر#? Oh~1tUzUkI @ YV*g/~jwyE ˏxݽuwCk\y`y=oۺ ``#\!9iF [$>܈I&&&a4ѝg%"$+4La9 Q]oUzzǻwUus&@ @ KWSNW727 ?0iUיvH/3OTkϙg[:P @_ZYY? o`'N_< @S+t%m @ @ @ Acn?̅ v+07N @ @ @-O˿ƿ>pJ-9ʷ5 @ @ @ @@ҟ\) @ @ @ @s)P݀ @ @ @ @z@?6S @ @ @ @x2w @ @ @ @z#ޤD  @ @ @ @x܍J @ @ @荀Tzj%@ @ @ @t/۷tnD @ @ @ @@<ҫt, @ @ @ @[Y;tKn4 @ @ @ @@~l  @ @ @ @ Asr @ @ @ @'0׿)1 @ @ @ @@W;;;3PJ8 @ @ @ @ y@y7e @ @ @ @@gPL@ @ @ @ @ ?=Mi @ @ @ @JW!@ @ @ @T*=Mi @ @ @ @JW!@ @ @ @P`gggf=) @ @ @ @t$` C @ @ @`1L @ @ @P*b @ @ @ 79;-K @ @ @Z*] @ @ @ #Y;(ߦJ @ @ @TnP @ @ @ @@?}f~,  @ @ @ @L @ @ @zY;L}M @ @ @ 0f;9'@ @ @ @LT=G @ @ @o1 @ @ @ 0P,  @ @ @ @`Ϙ`x @ @ @ @ x@e3l~ @ @ @ @1 x@e 0< @ @ @ @`<26? @ @ @ @}61& @ @ @ @>x@Y6G @ @ @ @fgg2&{ @ @ @ @z!O"&I @ @ @Tgod @ @ @ @@oz3S%@ @ @ @\`ggg* @ @ @ 9'fJ @ @ @^`vv*ݳ @ @ @ /_6[ @ @ @ @@P܀ @ @ @ @~ x@_6[ @ @ @ @@P܀ @ @ @ @~?S6S @ @ @ @ҵ @ @ @ @=%T  @ @ @ @8ԍI @ @ @ܜTzk$@ @ @ @M*c70 @ @ @ @`fgg2i6C @ @ @ @x2^ @ @ @ @Z۷ovP  @ @ @ @;! @ @ @ @U`vv*Ӛ\"@ @ @ @"`R2! @ @ @ @ x@eJkZ @ @ @ @}O1 @ @ @ @U`vv*Ӛ\"@ @ @ @"O q @ @ @ @TΫi AG;;;)CuV*766R_ӏ7nHKRY'/ƹ|BC_XXH e-iɯϷbDRD rdzpRW)?׮]KӧOSӧTΝ;JŴJ @ @ @ @`Jf?SA{Τ\^W^Mݫ%zʕTݻڍ󍎛_hYMZ~}~JfR>JwhWUߧԜ>}:o޼3UgRgNF7ҼDϷoU=K;VZFʎϷDT`ڗ~;ɭļ~VR/^2_I7:T~Ѣe7iV)=?JA  @ @ @ 0vPDOyҟ{I2y5qjܹ~J;;Eߤ7_hJ~>Sj:֬J_߼y3 Je~t*裸^F7?~_t>+=>JPYVhܯEW/^L xQ*t\?t>opB:~a*K};y-Io,Uє*P|(5R㲃J @ @ @ @` Af"=AWKԩS)Cׯ_\rի=ۍ󍎛_hYMj~}JϷL_Z~:qDJɻwR_GI?<ԮF/:_ogNˊV4&~5mmw>߯)_|IuÇSJt~2-NZ~so h7*3 @ @ @ @&J*5 `=^to^EO~ʇh N>_5(~t=>j_5Ҏ۷Jg5x&?ܯ&3.~6&kWmJezޓɥ̔KΌTJΐ @ @ @ @.0777MDO @ @ @[T.,,rkkk.r?{6*d|C-ZV߲EC`zAezkf @ @ @ @"RDA`<iTUk*w{VsuE;Lk;5/ /pw:o9rdD7IqKۗL'뿦WWWSy`+~@X)Yw!-IoY!0vP @ @ @ @`vP{ @`|G; _77^%K-so<&/ci˨ @~4͛7SY[9kkkDo0{ ɦH,"?SϟǏ/GM?9s&~'+qt-ZV߲4EC`25; @ @ @ @XvvvffmQL7',lI`R.W&{ՒrJZ]yF=i~VR{&mTE{PGRo P)QON7oRKϞ=KUVVVvZHWJO~|?TiZhjp:/N]|_ |%ˁߴʁT$@ @ @ @+`b{n7) M`СC|A*oݺʍT7RyҥTVK+q6߭Re!vt 6f#0)4k׮ӧS*RyΝTt;y묬μ/;NhKT>^﷥Vf_|Tzqۭw>n߾۷C?~<_|9ׯ_Ocdž9h&_> 0aSZ#sv_R~URN>DB @ @ @:BvPVOXWݻW+WwޭNF޽Nٶ~p|}}Mofg=OwY~߿:8}t*߼yggRg}' DQ~[zGWi>U]=[h XwmSj׵:\ZZJ_x}V'*Mi>QO~h{5GMB߲k! @ @ @ @T ~*5S `V]~%ɓ'u]?Nϝ;7ԏzuQ]]Mg\7]_yrw47KTTLr}}=upT.,,rkk+ٳgөJl&GY5ut>~;MQy oFkWznwܽo \x1uѣT… Ç2@|6zG2Zޣh;[׆Tڐ' @ @ @ @@<,dV5&6KةSR ׯ_Zoyy9՞[`|kF?>{mto;,'NH{n9r$P;ks||8;4ormh;T^Qkqkq @ @ @ ;L'jMXum0~[G#:~9:}Rz|W\V>fM_4䷎G^~W\qW^~"~,mfί_t|DWz7ѷJ_/W+/2kHQ} @ @ @ @ v@ @ @ @A~T˗\XXH֞]T~lٱn>x*tFGWMYZM@vP):=#@ @ @ @Lm 16S/ut>+|-KJ_YsYF~6~l6::}/zD_5sUdM_5z8RzR䷙ׯSܬbŋT.--j@| 6Gmh;>^[V~RV>DC @ @ @:;L'jMXum0~[G#:|-KJ_YsYF~6~l6::}/zD_5sUdM_5z8RzR7RG|y*?~r3gRreA0Du1w|tD-om [* @ @ @ @` `V5&6Kf~ѭ_EFZt>_J_,빬|DG#DEh6oJ*2VEw)`=wX۽ (C<%;ZvPM+ @ @ @ @ T!@ @ @ @M`TFӊ @ @ @ @XO ZOoswgg'СC|A*oݺʍT7RyҥTVK+R]Ϸ8(m}A_q@ѷ74 _MS6wf:yڵT>}4>}JZ*ܹʓ'OrR_JoMjK[~ȄϷ2 phj|!M۩~*߾};4Ǐ˗/W|dK/:yƽGV>76B7o*X @ @ @ K£qOEG7"SgJ/^z5x޽ց+Wzw=PJ[m7GPv)}~K\2V~bMܯ}>%ө|͞ Y\\L={ʕ=7=ԯ[z|[kzV7_z{___t|]o9:ҳU_t|ygՔׯ_JRŋT:٣rzSϷFBר5KG/:q~ML7vPT  @ @ @ 0vP'Ԣ&OKɓ'C9v{ǩsizkϨU+fJ:og~ۗ_ԲtJ̓p*+/󻾾pT.,,rkk+ٳgөJ]6_t>_t~J~TM7E7noO@ z=GWzvJŋ)%=Je޽0??.\H>LeK>ˎ2^/yWGMi#/oE梍J C}NUY'N{n(99r$P胦~y>Go_io5\=__]tmDJN~S|RS>>U48r?Ϸ K?juO~|~ۻҵ @ @ @ @=ٙJ̈́G?Ut|5y:^:_{({89a%f}oM{.}tWZ|TG_tx- ^Z_i>#D_5ҎK4-}?^񕝍W !fs3[-#:>;D @ @ @ @oT~ @ @ @e o)/_raa![[[{Zٳ'sua=>Z/Òz,`'  @ @ @ @m ~Nh񕞻;uTJF*ׯ_SKrիݚ4FXѤ7zD_o+=+K ~+KhJĉ ݻwCsȑTCksi:6>/ho5Mη:~_5ҎK4-}?^񕝍{uJj*777khqq1E*j߯r[z|uoW}l5tMN;;LNDJ @ @ @8V'.jfTS'^2{W?uu>b%Q/ @ ROݼy3տǪOZ_6_~f~Z @'g g}}=ϟ?OǏS_=~W@ z=GWєӧS͛QNϞ=Kﮬl5]UVoz__t|EϷo:j_t|xK;./:S@ z=GWv6ffJ|EWzJ|D7J @ @ @ @[Aed'Ԣo(/:~СT>x nJF*rƍtR*Mjŷt-}( l^/[t|~(Dst|pt~ekRT~)kkksN*O<ʮ^k:Fͷoh/z|qD_U-tJO_ٰJ#YK䵶L @ @ @ @Jty&XգP+=-s׽|4KI_h~n]sމoh~n^eS_t|e鋦tAz|_z_t[_5i>~\_t|C|e Dst|eM~,Џw>|&zT޿?o߾8~x:|r*_cǎ ~~ۡ$qoJ^G/:()/:Kw`g3#& @ @ @ @ JdF?Ut|5y:^_t|yܷ|DE/|m[~Q_t|~n}?(=eM|Dg;B_t/Ftxv\_t|lAzl̔_oss3uׯ_bii)E*kMv>6D~DtJ*gH| @ @ @ @ JF?Ut|5y:^_t|yܷ|DE/|m[~Q_t|~n}?(=eM|Dg;B_tJSϦ}EW+_J RT奮_K|WTiy=5gRڗߤ%*N;DI @ @ @ @vP%oF?Ut|KqtP.ܷ|DEg>:}ot>|_[FJoYG4ǎ_lԳi~G_U-tJO_ٰJi_1˗/K>U5)Eϳ|mm'ߺ~_i9__t|Ӓc`gHC @ @ @ 0&Gn! @ @ @ۍ˿ߴFAqin;} h 0 * 5%@ @ @ @[`T6r @ @ @@[˗\XXH֞qT~l4'ESt7:O#@;tl @ @ @ @@<SWɾ~gz=M<~}G^G#p̻w;}Ϳ9r/G1/3ӷ @ ktuu5 "ﰲ~x*y&*}otG@7;;;3?n3  @ @ @ @@m%t L=|*)O6W~*}㾔yv[>6? @<=uTVvzZ>2/ғӷ @ ,--ATc*ѣGӏgΜIeRy/ڥ|m 4;tcm @ @ @ @@of@𭷳a7Gh&2,/:; իi{ʕ+ݻwkʣE;m7:?~+/:h?M@ z=GWz6K|DӧS͛=ٳgʞd_tMWY=_i~7E7noO@ z=GWzvJ|EWzJ|DghQ @ @ @ @ Aec'Ԣo(/:jw?NСC|A*oݺʍT7RyҥTV{7P_o\ M΢EEW_t|~nAzl_h+kRT~)kkksN*O;D @ @2p@IDAT @ @o_8CjOXEw0*/:1u[;qRFP_t|#zEEWz>W@9:&~_!g_J~edZQ4_5ҎK4-}?^񕝍C۩~*߾}TFϧ?˗/ ,n)F~DMVEםl#A< @ @ @ 0vP!OE?aD6)/:{{[c)\ƽ{X/eQ/6YV_t|qrkGQ*Pz|Xm2u |l[Gߏ{eT_t|efvvPiV @ @ @ @[AR~B- jt^tN:766R9iׯ:rիW]P8_;鋾E_:㋓k_;zVst|1~߉'RJ޽{79rHv uރ~e%uTliW(3:j_i)[ ~+;A%˗S7y>|85;gR7G.Dzl[Gߟ{eT_t|efҞ  @ @ @ @W@ z=GWєWz|?6{'z͢iu7 G3k~A_t|틖3*C$ @ @ @ @<,ML @ @ @`Z~4/_raa![[[N:n ,ϻn>$@ Cɟ漾ϟǏlѣ3gΤ2jkR>h>IhW A%RO @ @ @ @w~}o"wt=Wz|Muʕݻwv52 xߛ_3[Gk_$PzEJSO>7o7ڟ={꭬YO6]/|LWfMGv\_t|lAzl̔_+}L_*Ѣ#@ @ @ @OE?a"Q_4{o///&7nHKRC//[zK<#KVhJݵDEםA_9DnlnnT_v-O>MOR;wɓK[>:cTUG^U-tJO_ٰJ#YKdAer&Z @ @ @ @ AfJtTpNal[nrcc#[[[׎;EٴyF;}}oI3Į4Sq63vNJ>wȉ/*+m#zW*2G5z8RzR&%>|H8oNS!Ǐ˗/}:o޼`qq1Y*WVVG7yAt>_PM:~~Ssgi߼j{u-¥Tŋ߿juJG6Ѡ^7oݴWo~I@~GbkTZ1 @ @ @ @@*5ׁ'jMX[z|ᖞ'O9?~h9nq?~9wP\MxM)}O5OW׾ƑS7JR?XϣMN4>صXz>ӄo޼ʅTnmm2T?{l:wRFotQn~\d2J-#cK^x1=z({v:~ϧ{؅ ÇSe4Q7vo|wL~yѢU~s t) ]j=ΌT6r @ @ @ @ܜTyªd/=7Ynm8uTF*7_iW^t6~oF_Bty`TY63vY'N {nh#G?jPotdC]4~Zqۮ޻zwLKyw>ҵWz>_i4ޟϯ.z*7. @ @ @ @'ߟ֓LV!vRz~KĶX/1/:~}/߾k=hJo?cWL/lDWzUqzF/U] X]jw?V-=36KGt|џϷo~[ׇ6[AvPi5 @ @ @ @>?>&@ @ @ 0.~- T.,,rkkkϐr?{6rr_Xj>Fo߉׬+e5yޕ߾@@T(uD @ @ @ Pٙ7UO8]ߨfΔ㛆5PgNJ766R97㙿_Mrի==9j|u~O1꼺jW_t|]N8ׇNJyYϓQ,=Msue݉'҉w Uȑ#ϟEDW_uЬw 4>oUqsݏUz~_~PVWWSY iqq1E*jWyX|4ox͏^ͷpm~pTW@~늵[* @ @ @ k*{-`h ϟOe9%?Y~2{ @.~4͛7SY9kkkTe: L@?L3[__OST旣GϜ9\?)GȎn|)ު7.1ڙFR+F(j @ @ @ @H`nnnfo;Pm@!dL?b0y\z5}޽Z_r%տ{nvu+_q֏E_uuwƋ>wVdz|Ս6ػSӧO͛7{6ٳgʞf+_tG58RzR{s# P_yh+ mK~J}7- @ @ @ @(0xX*ϑž677Sk׮ӧS*RyΝT~Tj%U] X]jw?vonDp+#mE!mɎ֯TFsӊ @ @ @ @rV~}y%zEw;rKQD|Y`,}o8_uꎯd D~LE;nqg`Ə_5]얍'vM'[5(!I?4ͲU]~o~Ç{T޿?o߾?~x:|r*_cǎ Ջ>_3Q~]_>ߚn;;!H @ @ @a0;]MW~.zEǗ}{[*\ݽ{@G$J_-U_W9m}~LYE _ENw/:j޿:}t*߼yS2t={ʕk&Zxlt'MϓIoMFkq D߯N|ij_5ťTŋ߇kuGesSG~{Ϸ 7ϷuܓғD& @ @ @ @`\vP) `=]ɓ')ϟ|:n?~8?wP?ML0Y/o]]?3O-*S N%jK-7~tESzz͛\XXHV*KgϦSy'\/_3ןƛfk=imLxhz6Z[ ~u4G2NzO .2E|$@o1nϛygT~v @ @ @ @@a0;]MW~.zEwԩ񍍍Txׯ{jTիW{{R|uņ뗾7G~uW??&kո30YG߯x8qDzݻwCȑ#ϟEhO|oѵ46N@dVMWyǔ/_ÇSJyFs˭e|V}7k'@ @ @ @h$`| OE?5[[FM)}?\ݾ@*(Hc~UE77ړ.ɤ]v}U_Ǐ_]ulԝ< 4*&@ @ @ @Gۧ @ @ @%o_|ʅTnmmR^gF#oM[JJ>c3$6 @ @ @ @~J̣)D7X/SNylllrn3f_~s~z˩WlWd'o {=_]'K hz}7񊯙ǯ$z%^y|Dz,Y ~4Tnnn֚bŋT.--j_e'y~{w~B{џoýOT?fH @ @ @c?Rϧ2>򀹟|$pnh\&!@&￧o޼߲󩾿O) ,`Lk5(A xpST~1ѣ3gΤ2zQeW|-%,0RrF @ @ @;.|yt6#Eghں^\ݻWʕ+ݻwk;h#O|};ldkk7^ߧ >}:o޼sBo?{,[YYٳ~ӓMh|Wwl֞v|O@3M?ϛd _MVDK>sV,ٱJP @ @ @ @ A'jzt:֭[He~Y^^N?޸q#.]Je\i}}DY7z:jO@y/ Dw6Fo[f ڵk|i*?}ʵT޹s''OLe/Mŗ%fZO@i02~Kp*1+b"@W>~|&sVM- @ @ @ @ Ae47LAwt|@~oE/A绰vcAS(_ jGwVW)_ڢ @JC ۩~*߾}TFϧ?˗/[Vm_}'_t|/0=z{{{;wx~~>;… Çz;]|Qn>[wz)O@DT*R @ @ @ @Tji@`N:&ʹϬ}F?\rruuxUݮ'@\ĉi޽~39y];4&Z5 0yǔ/_}x?}éjQev=t}4g\^/㚗q h&0x@* &@ @ @ @C`K޳ߟGbkS=EϷoE|D_zO @@MU_D-"hfEiiML@/mT7/z}}t>v^Jx8^`YE @ @ @ 0nƚ @ @ @D~-T.,,rkkTqE;_EgG棝hzjE'J#@ @ @ @H`'~f|ќM7oO[|Y:!?:u*ʹL~5quRr իW ɸ @@MVF&hf8q"uݻj#G>y'P ǝOyc% @~͛7SY[9kkkTe:y @J4z*?ʏ?GϜ9<~+zA+ W7í;z' "*`JG @ @ @ 0P6RKxC=EϷoN^w^[C+Wq޽; J/ihtтmSON7o0 gϞz+++CP @ @[T:g7  @ @ @ @?_nJm~hn?uF7Bv=߾Կ~gg'uСT>x nJF*RYB myy97nHKRYgz  @@E'I|Ѣ1mnn]ʧOӧO\[[K;wRyTV_oT|x @ @ A{s# @ @ @ @z%`1 Ü/}_;N_YwoU[|_~vx1_#y$0M} ۗ~~/_hG~8grJ~Cz۩~*߾};T˩~z*;6T;mooS|Zϓߜ\~YbF__o}o^~ AeF'@ @ @ @LT IիWS$ݫѕ+WRwj7ʥwZw_кF_ŗ_Qz~QeWy~JoWe%x}:8}t*߼yiqq1ٳTVo>߾Kht+Y|DK>Jo_tVϭ爛Sz|f5;~քR/^2_IKaG<巙]ӦojF=BTm;4jE`eAZ @ @ @ @d;d1OunV>v['@`ff}}=1ܼy3 Je~t*裸^>߾ŗ?F]7FkvM`~}h ^+:>,=B-xbGRwoooݾϧ{ ÇSYKJ]9 @ @ @ @`Ae >uT`cc#ss?랑U-//^ڳݸO>ioyuoHOnM˾WQz~GkN0<+&Yĉ)w Mc#G?jWA[|MTitY|DK>Jo_tVϭ爛Sz|f5;|%MfϟÇyGڍ|ƕz#lӦA땾^:+}mwP'J7F!@ @ @ @V*cN}~",*OG{~Jo;hU/z=-IwJԙ&_|_|^k&ʯ,omڴ&@@Kuҿ>߾W]?G_]_|6N:sQ];kw @ @ @ @@f~a^3< @ @ еo|e*Rg(z=p2Y|5Rg]i/kZ3SڳI*=T`ێT:%7 @ @ @ @ַMor:u*ollrׯ_SKrիݚ~E:l}{'f?z5|6Nt>ꌭ. 4_Mzĉw zy9r$P^/FW_GEs)=fӚt ~:Mpuu5&x"KKKw]N{|]xmi/M_i{_]/Jz'@ @ @ @^pt*Ο?ʼsJMonsl'GR㋚~(}u#* PGOo޼}U_[[˧Z-K|?}Z;矩T><?~Le~9zh̙3s?^eN[|Wy/wxv͏J_/g8C:aGʸ3`| @ @ @ @ ~߱ϱBt^z5M޽{~ʕTݻխ\j|륮Ks_t|ٷ',0ZFbV|w>ș|dLuUjҮߧT>}:o޼3o?{,[YYٳ~ӓ^Ji>[qO|2k6[G7{Nk @LT'fB @ @ @(N*oxTPopߡCRT޺u+/7nҥK7-_ziv_O|V|kϭ׳l\|[]}hzuss3ڵk|i*?}ʵT޹s''OLeW/^J/:/W_^6[EvFV @.hʩ @ @ @ @ߊ`V3 oaa!u'(T '+Bf:4~lW rgU#AW]QerzNoOL *͢ؽuT|/,`V>r^ʨFţM>|߾};O۷oSʾϧ?~PN@iׯ_wd ~E*L,ʉo.X|4/VKo.Pzn;iou~vP8&@ @ @ @Tjr>y$8P3ߠԃ?~fܹ(7z#뽎կֽ_uoR7_{FQ箯AS7oraa![[[/Ϟ=NTrqݲzF_?,^J/zEw8; DՏ/zEge}>랏o')pݣGRwoooȱ'0??r…tIF1Zݦzn׻z:ukWK&Pz:i^|W^B @ @׍H"Q!H1i"=p%hIjʧKk )Sf#' f忯a^{^ˊP7.?VG?=0ϩ_ @zeHk3/k_};2o*?^~_\}=K};Rǩ@@@@@@@X?|X9     4Kۖ/_l5ͻWmYxOǤEԶ x_U; q@@@@@@@@?/ID7kg...lNcxW_YJ\z=_nkc~BT.F("(F~^i)2ɲQXwI(@vs&`Ty,Lu?2@b;ʊgЬY{{{6.,,4gٲmYGl~Z-]z.;7_wPɋ        &F7BSï4FܘVhnYp] b7KI rǏ[̭-[60jx*3zI@(USW*9l )!0@ȧOlM?lmL׭;w|[.#O%:<yOEs(_%}=W_JkA%S+        P??6-cWֳ_z9ذwvvDC`z=7|BS+ɉ^^^c7gwww饥42ɲQX(@vs&`Ty,Lu?2@@@$T,RE@@@@@@@& wP)صo<<\cXNgϞCmzL7[ѽXE&^oO_޼ycOxnkcNH@o"6$"_&?~h?l\]]իW6޺uA?7`}7nd楶1,5i'e%XIU_8?7~ Ϧuw_OgJ;Lm        @SSSWJ&~!Ta;;;y+HuUH̡C5S6o{{{mej+o@>{rrb)///xxx89{~wwƥ2g4p~xWhzG+\;$-b<lޞf ]sW [?](_o_ܘ0A1"Q@@@@@@@@A`b?\je(kj6C+py{޽{gTGYTw|cK-XOK |S_Mܴl~{=:zV_`\u?+b3\uR        R wP)ؚ ^5 _Cvfjm#M {?ԧjSx=WӴ~+R_Ŵ]u~jS[>rj~yO 0l׃PGu~xAg@IDAT{@@@@@@@h@*E:     /pm;ȗ/_l =x~^3t>.BJKbUr=l~|ƞVU'#[٪AU@@@@@@@@ԕ~ _%vm#qЏNcS'k%84!pRJϗrm>WIO}1(nԺRP/z:j^zV_թj?z7u~CM_YYWlޞ oX_w9~V [?%~_|ocA9"S@@@@@@@@q_k\5's`mmpM7a^H? ۩qRqN^sּm[ԯf f <~ ڲ1jCuWWWSIj%x(õixUG<$x'+kssϟ?wÏׯۯwܱ1q¼TP~U',Y*p~dXw?oUߢ~&G*M#       7_tƆ嵳S(u]hMԯmu_w>~ϗhNWv~/W4899—m<<< [ZZ:OR{=3Y׳z,l~ŋe#FRo@@^ocAzw       $#>wP)sի6y/^vm ?:3>|hc>N1_ ^v  NmH6oM 733cr} \W U?G$cv'OGaꪍ^֭[6R@J)O@OegYSUWʏ8   @UA*i       $*Tjno\{ϯU~oL;pǝI;{_]Ug7_*;5?[됹Bmcޯx:?SYY}PS׫罿zr%|v{򥍯_ׯp7o޴GSoܸ𞟺^FLZJ{G~AiSW妌1%        @F}!occcS(u]hWΏƍnO]ojz=Frl߼__5|+Go'''򲍇csssKKK>W/+f1c+Ώx/>w%yﯺ^盺^!PD Iieev;88(gcx^(Ȑz+SכZ<%c[^_?/Ӳן/z~xAE-J<@@@@@@@@wPpT;Zo z{2qb7[_+priqo8/.czy/ֿS~o#0L`ssӞڲqff^gcݻTJ秮{i#z=_zI-?uxxxM}ٙm?izzڞ߿oo߾Q{~:h?uy_zS罿]EUe_j[qٌJփ-@@@@@@@@wP ht].?3tqq14T~^ӱC+u}W_z&ޯ/{oe 2F~ /z_WΏx+<뾪z=V|{/o%O+|d^'_׮]U&ߤu5u~{^_?/Ӳן/z~xzAE)J,@@@@@@@@?$>>a:jO:F߶Px_zS罿"~qٔz/z_AMGڴƩEuqj(2G_E^鏞=;#5wuq Ğzկmu?^ןy/ŭH_\6ﭾzKWPJ{#        3S      Z˗/6*?/O^󛠤F2i?E{_zS罿w"'TI/z=l        ~FW hl {۵qj3CCkt:6~E_z>_7&jywR~PWw?{~ի#^L^Wfggmif?z_WWOW}~xOݏy/`{reeܜ=g_fM&{C]7xK~_?/Ӳן/z~xAE J,@@@@@@@@@&ײUkkk6;o2aB!NV!Tug=oUSU/S#5?uxKj!  A        PwP)wtstU߼yc/lv6N~}왍>1'̏q[_ۤخUԩ[_Ů_uի#^V'Ol?~quuW^x-=>N+^W/*^YcGTTcSTk,"  @A%@        @/r op{/Z g~޸zqCS}xO@ck~_zUU~{{~eQVE)7K˗6~Ư_fym?zƧOxƍ<ʼn;;;;@{OOOZF#z|TzGֳANR>F@@@@@@@Z.27wPiyaJq}}oooگd~-P78'},?U׋T}z~x_yG@&899m<<<hnnΞݵqiii'[^uV?uC)䵲b Jtaaޯ 2d2 X1Q딲ן~]COUK<" wPiK7@@@@@@@p(055T)}[[[F߿o߻w/'v{~#ΰ;<>XoxOz񞟺Y! lnnZ[[[6l ?߽{מ wR ԣb߿zS׫^xuC)Kݻw6ggg^[U?/N_߻h?{~uC}ΟxE^;ԁ       8XߟR07RjUvmƧŅ~u:?h_De'?_RkCj?u׋~~x_~HU`~~J?::z}29SW/֫=?uz S 1ϟ`ڵkZ򋓌;z{z|:_!&ҦnR         L\)mO'|"QUgO:.oV{~O_u~CľzA~q}VyUj?u^oj~~HU #~N~ybjbG~z+PC]C@[wPiK7@@@@@@@p(p*t)!     m}gfflzCK q4!.M{I&;Zu{UMڏ~󨪿꼉@JI-        C~_" xz&vm Ўu:?tOzSWԧ/~z=Mz}QQJ7@4S;;;kOOO37SCxx >, %:77gl\XX(7Jh~ãlO]al?ʮ{~Χ%mwPiK7@@@@@@@p(5y <܎fcsJfY0/$mF@ \ƽŸ^E PǏ-֖ |uu5<(BLB.^x @%'>}mnngncquΝ;6!NC\LdGnן^:!&ҦnR         Pw0/Rj@ƆS(u]hq'{S7K]ZzP=?Uq&n}͏@}UWyrrb-//xxx3zww_ZZ,%===mG{s-T}~C*s@@@@@@@@ Y߸ʄذ=wvv EX__ۅkohR/m[_o~e_ogH9LVN6D"PK Ktyyá󻻻6.-- 'c4[^Q^C#^~G<; nEv`l idw.^WdUv~#^@Gޟ{s?Mx@@@@@@@@@(T b~X[[ F߿o߻w/CUg[k:C^A8^ySW4p|]eh~U/Vu~ZΏj9Z1Makkƙ{GwSN*a^jc8';9iSgu~>Sy{~SS/w?#E?y{~W:C]/R;?[-{J}"~i7i2쑲Wc+  Į|6%|۶/.V=?T׫OxqqZT4@@@@@@@@z$     OVԗ/_l -6?/S u7Ys'hU{S̪U筎PE8Ώ8A{sA2<        -p~~~#Wt,..ZnƩ\\\ Ut:6~m{oUu~xS_zw\Lz Z@jGUg_\oc^e=?,^uxu}ċHso        wP&Lϟ[kkk6;oBTSCur~ iEm>@?~ll-%jx*?_WCϗ٨X/jQ_OWS ӧO榍?6ׯ__ܹccyn&xQɎR^Uuy{~Yu>?/N#oAe#       L,055uw5qwذwvv )Bm2~u4qdUO}9V׫/IaƲ-+ظHݍ;99m<<<F[ZZ:OSu8?Vq#Su~zO_+#   zq+@@@@@@@@Jp~~n{\z7o ݮGӱ_={fÇm >ƯXcqSh͞Uߨ퀺^u~^z^,D( wR SP5v~@!8>>YO<Ǐ6U_ze[lǥ~AOu?&s/:ޟ==Pj4P,?Ux/@@hwPiJ@@@@@@@h@[Aw$1E8j޺8YƥE|orǸ9ts7BaT^G~WB F@ \W]xӦ>S zx~ qT TcSTx󞟺Co,/_k~I͛#>}j72o{ -lLߨA(B9vUYUƸRX        J=VNmv?&]:Zn{~vT+0??o<::x?==}C]xQ[PyWz?xן|ulwL*+׮]U*ozgd/dUpSyPw?hqv@@@@@@@@J-&>ᨊZG]m<ۖN6S_/n])o_^vTכZ<:~Vzȯ@^?U7z6o3HE zw~}Uכ]z~~qٔ7|6;Ԃ       8C#%@@@@@@`\۷o/_833cc"?/'CEuz)J9XN7./mz󞟻PBAD`B#       \O=VL۵qj3HCt:6~u?fuS9d7zG~彿K۔>'۴Q?==}#wQ_:xU?uw)N]#vS__b6 Xy+++6*wnnٸPh'[uu݁__Z곑mwoV}Q˯A97Gy7z W}# {կ󷝫R8>>6'OGaꪍ^֭[66GeDWV uސzTWWG~Au}ig @@,0 @@@@@@@@~~cWiW3߸W)G^u~E/SoG PSǎPSo^_yJ1߾}^|iׯmk&7oGl|7nSoxϏzZggg҄-盔` :K][8jL^:wPQ@@@@@@@@ #T2l ذvvvM_}0({Fcjm[u}Wڏxix}}SsE@u'''ve|nnΞݵqiii'c/M{?ZPS=?uk7>ZxT'b=88(tgcx^(ȐDOVDHuojQY -|SۧVO;E        /MÇZ͏7={޽{8xqz^>(u?gY]:I/MopE@uv-gfflz6޽kO;y1Ҵի^/x~yW("H-~} wwvl8ߧ[U?秪3IPױh?upE@M݋Uq(@@@@@@@@*R E{85uAu^ӱW yu=Zu9{\u?=Y]:q]@_뛺KjQ!P(sQ64z#2uR7֫PS=?uk7>ZxT'O;hv{~:C u{cM-J6 ĞeojU)?TB@@@@@@@oO<CQsjC~|SMW}SWG<=˾>yOݻU^u~CH-MqL@Sb|Z^e:_7($>:z~xTB@@@@@@@?,t3     -pm勍3336z0y!Н&x2% %zb8xr~S|S/Iߪ7uRWTԢC@@@@@@@W'~׿ 9kqq2v6NM]~"WIv3?؄Dg[ጫtP'U#^R[ϩ^{R]j׫_o%GGG֌:?==}{?SC{@[Zƙ8&A)ʊDžR{{{6.,,dʿ[ԧP%^b߲7}jfTB@@@@@@@T2$lbђ7ꛔ?|`S2SC z{2qmUy}TqSM_u~k@j9v^KM zU榵dkk"?~]{jww7Li@&:T =?uk@j9v^KUg϶ mΝ;6{Ƈژ{ÛWW}U#^R[׹^{R]j׫^o5O<Ǐ6U_ze[llڏi:ޤu {~q&zNo=1@@@/TX         p~9fjmK?BCN7BeUW׸^BUc=@s@/z[TCUPSx/}9t |͒򥍯_ׯ6٘ʏi+͛6>zƧOx Ma]յ^/uwTu#?{?/HEJ-"       *.wذ_vvv&nMg*m{?D.儋W)I'z~zU5?s#899m<<<Zܜ=kRfx׫ҏ}CuAC{R-LwfZYY܅yooOBzJYyŮA~euM[%wPiz@@@@@@@p.T 6ÇZf͏}C1SD}Ro1<|{IWy840z */^=jvU8 =ě^#ݻwp'0{UӮO#L:z=?[jz(";3n"37\ߦmz)߷oߎ9moj޺׋zί GM.մ08l#J#D        @3f*{h{t].?sqqQ0Rӽ> /='nAU׫OH׈P^:?zn2'I*0??oe2;;kOOO3y{pA?4?)В_:RMWXI&Rpǔ?ZM{Yu[ڵkvpGxmoj(^o{e7yޖy~_[Vu!TP%&        A_~ o6?QZS뇺^{כoןH}'{}_RW_;2ϩY~V秎^u~cuܻ_\u@bv댮.GFQZ?z_/UWբןW!Wސ        +P     %pm gfflzeq.{1!϶7~TUު~}Q78"пwPiK7@@@@@@@p*←in.R0E嶸hw]wqqacSt:V&GUN{UvOz>D~4W Q%?/Y{4:L7~9lA&%_&`C:LeM`X@Mv䕕kʤDl\XXpxZ?ʮz^o\+WB ҚVR        Sϴ z?n^[[19%|h7izQCޡ03!qQuES;{ԾCHCV֖E򏯮2:^&xj?TW:z@ pO>Y6~߿ۘׯ[wܱ17.!϶7~T]o{Uί8$TMjA@@@@@@@ _!~9u:t\SƆ)8,]|U;i~jRVk_*+:@@@FҜ~)        8+e^c±@ɧ_]oDUy9;lxKc~4j׶\.z4#U8.#^Uxy xi7x^_OsG4KPϧo,/_k~I͛#>}j72ou Ӗ_[wrKȿ~x/2ҶA~˲{Z/m6TajC@@@@@@@j;lB7P Nu^__NUذzvvv UU?W'퇺֟*_UNMS|*<yU{rrbX^^0ܜmڸy^/= Au<ޯ^j?wZYY %`l 7 prl:ѡ֏pRv?Wa\*"^|K-^/v_j*uz@@@@@@@@ _*c?op_v'{K޽{UԪ}Y[[5}e{~6CMR++u\U#P+zU_5-a}NZO}qO]榥ě^#ݻwp'0O/eL{?7zsRCϻ3Ž_jڏxpbMO뭩?;5u٬ {ظ\_`qq&w]΃" iCQS{ߤ[UyyV;??o8::j?==짎 Fa_a:w^g\A_jڏxS~i:هӵkpG0PIO-)MYXZR zQ{~%mXu?ԅן:?~zS^/Ro@znU=^`ouբS=xȿZbgF'_V[w=yzQ{~u_ySכZ0C@@@@@f ܾ}勍3336z8CwrdȳhRBS1(ON^&:ɪ֟:o/~RWtT_j}*uz@@@@@@@@w~~U|Fnqqv6NM]~bh]yNݯ'zFa罟۾g___&][IH:vvGGGCZ647SSW]z>׳O:^u<󞟺^[ \YYPsss6ooƅBW=9ު-zh}UϏ]/e{~UCO7?u}+{ŮKA%S/        P=jX[[19%|" xB͈@ºz~xϯ k(ˌ#! <~eco_]] O%={ڽ:N-}=SSx P@ɧO젛6~߿~\~~s玍a~yC뵎W:]/U{~^ZV^EΣοn?u=ūz]/UR*)uZ@@@@@@@@)_5ذvvv ղn󷷷 Wp_q94i?KSg+$ O}KT_TvY^^ph7bwwwmޞ=O7~O}ySg:?uQ].^u~j?!&U榵okkƙ{GwSN*a:^秪8j?ԎWO]y׻%mx;г3ο=޿߶߾}kGT-+w+Y'Y_hF]}k|Ү~R         N;k'TY?QW_l>.?;vqqa!;CXEݮ:X~^Y :'_[2U?==짎 .𞟠RCSc_u_oyˋ^zS˯=[ݏG,6jlҴ/        T.a&U@@@@@@l۷o!|b̌^oB;Md[4 U.ʯR ?xj=OZ/g,U6#wPiF@@@@@@@hԕ~ _̞+X\\t]Ņ~u:?h7&*jN{Px~o]^/SoՉ%0??o e:5;;kOOO37b:SU=Z7y_/hbqlޞ 596Q~޻_?QBßWz7Ar6uZ@@@@@@@@g/\s8xefcsJU0/mF/G?Ȣ7muTzI۶'%Ǐ[[[[66o?jH3֯^[[) *~}_*|8~+ $$x'zssϟ?wÏׯۯwܱ1q<⎛eWu~e9$z=רcTߢbTOA@@@@@@@\ o~\eE2.666,BB;9|}MW굿wTϷT_ٯlM^F prrbe,//xxx87{wwwmO^OzzWכmuS3zoyO_!  [ wP !       H_*9??^j7ol|⅍nدϞ=Ç6c7b_o?oYqR;RԵfffĩ2]ǖؓ'Ol?~quuW^x-{=zԮzyyx~Vo~y/8Ǝ=Ȉ  %Tʒ%.        pB~UW8ؠop狎*z07oaD``c2:Y^} bUߑ%+wT}wT~|US{>ThJnv _Y:%K_~mׯ_m<;;QczzBݼyGSoܸacY?7SA;U[ըsG3/@23@@@@@@@@ T 1]#avvv4EQFì>V/^[Flz^fV>^&VuofNNN `yyá sssKKKӲ!Iu~jjT=^yAR}#4W ܙieeŊ888;ޞ*)ꭷ>' i(6s{~LϾ        ҚV6>Xkkk7geP?CUP8~ݻ'{'V`>VPO>*7 @vЭ-gfflz6޽kO;yVGWyx~xg~O]|SG<h,wwvUxܿ߶߾}k^ﭪqǪڜ*^^/kN}fT|@@@@@@@@pִ,..ZnƩH]\\(@ º;w:Ki_J%X׃փ5@Y^&VuoXI#0??o[GGGyʕQױYzz/z:긙MO7AICwQ=ޡ'/^jΏx \pǔ?Ze%׮]*y5.]A@F \z_B>A@@@@@@@@ pb̏ ROSo"4% %Kzxϯ 7@@%SSSSK^񊭠_u?U x_/kZ'{}_r~˿_= ? U‘&>׋fc p񭘉        PPa?,XpG#     /pmgfflz7% Ro4 FTu=OW,0=ժTZRA@@@@@@@ p=iuFNv6NM]~FҺ yUDXw+P-hUJzUz_ ͛7⣣LVlf~P qUG˕1^/YM^Ծ7\5ka wlㇼɄԫ%:\z񞟢8??*6@@@@@@@@*_*UHs?n{SF}3&E B^a-cǺۖQG5UTQ(zzxo\g!?Ǐ[R[[[6vp8jx*3e;^:?*  K#HdGzFgm׋ڶO>ٸiϟme~s玍!/qC\leW?[A5W]s{~븟_W        Lwղ(Nٮ񷷷K#|㾔-ސ|Gc\S׫֋GBɉZ^^ph7wwwmRf:^&`#x.{W|^/K! x_/sZRC@@ p<<        +TbٿͿzo޼ŋ6v]Fxӱ(Ϟ=Ç68Tfoeب޼cU-@Tu~@K`UȺFh%?~h?l\]]իW6޺uA?wP ZoY%dz=㕵B\v j%%   PwP)[        @/r `o4R0͑ӹ߉w78^Gǭ7DḌ>baYvC:ow Fo4{eG_-#^x~g>߈7wϪK{ ߾}4_|iׯmggg6z1==mݼyGSoܸac?oUoX 8junW{>H3rr\        [eZ2Rذ=wvv&suKl{{ge嵿e}szY/-H'eeu~|SZ|YkkkGe.sPƠ߿oݻ'8JsBxz}Ҝ\FeVT}@Xux_ػ8+ْ@pG/,B@X N#8& X>0G2G" b$@L1wZ,#HXY)v=f웙7+y7~ͱGzri{{{T*oO8!wT|?8j?}iwziϷq==uež׋v|!G͛8?Hw{ũSdƍ >o;ߴMad"qE{YNixYm߸vϽVdg< @@@@@@@@@Y]UJe[y\7<<,+Һeh֖YАLeqq1Sj+n>]۝/Vye~'ŨՉhl|ӎhxv1٘Rp灾>鿾^j-v>B_4Дh74-]+7xzϿE;>zю#WLyq ǃJ8~E &&_9 KGjgϚ_k镵zіiTE@@@@@@@@TpB+ez~=_Юןu?|Xzhi_xa_ieoC{8Ю̥}x}w{kKEAB9ks/jC{e|{eixEO槙g *        P#. Ś@@@@@@j;&7ܻwO^i+JmnjmE癱ivV| eUvE5`Y?+~>^VE۵O;;㱂J2        nlѺt.vw\㳵 {F144$Q...67|kRG֮v:?ڍ~VWۋGW|$ĕPe_____x5`h}|nV(BMQ^7ɰ׋v|i2^'cccҮv2c˘ t>Bt|k֋YϚv>z i-T4E @@@@@@@@F]6 \tILLLHWN;|~oT~GQ*y#ю 8wLjffFgGowմǫ Iff73K)m?a@ ~E;wH޽{WڇJoP?.gVwv>78:qEό3)vjcZ@@@@@@@@+~l+Yᦦdsssgvv6W;+M:~E>pRO&kKJGh|E+vh~E;?wmmMBvyya3bHM[#]/ۮPMhO;i,/A\F@@L JE        @XA%f677eH{ui/_,m\RHk[oo644$ŋ=s挴yʍwZT>B- ׶vөZ)V+Z=^i_v~de祽}=v||\ګWJ{Qi}>^z{Qq^πThoG[⧝|e~8s@@- *sDt        @XA%)dE /yYCE{<_ίv|ㅾP;W+z?"V|{g-h#PZZZeZV~E&+Wv횴ߗvccCZzzz$#GH{Yi/\ Ç囎@=_,=3JOYϯMgH'VPIR@@@@@@@@ 7ϰJgS`jjJD=99)Xiu>I5:f' }a'c㱋Vy!sBdQi/K;22R?-x_Ml·vĞP=u&[O;xA !RؘDԡH9 }"Tkt~W’ӎW{WK{ן'+h2        @-6@[$)8wPL5h~^O=~IS0_ṽ@@@_կ~ WNJRs0+_J߯RYqz|SPEˇ|D(HZ@e @ϟ)uƆܞտƍz}pةzV~;=_zJO;~_m?mg,3        ,]^Q<.!@B2r\֝kkkKڬ~chhH)zh?XvQhiǧ=bY{\kOhמ{!@dZ+++5k'k }~W;`و-z=&;hW{<~Mx;~v~ @C~ŔǏK K?Ԩv d^ίjY~jj{iWdmQC@@@@@@@`6-г^ty^O׋v~ϷKۯ#wg֏Zk] wϤWZv|I׏/^7 珬I1_ ޽-E˯- *a~        D`tn@@@@@@:%p19{핶Rt*$F2x񎝮ke%v5NQڢ;㱂J2        P,uU?#i ȆZ.޹lkk+%O1"ݭ|&aN$Haa~R֝Ҋ紤9XVVVjBk'k/bvЎOO{|(mV:tHB=~~>~Y8c%vzuv->Qڢ㱂J[        ݥ ۊc2 055%GKh;Oa~Qfggg$Ώ}Prpzix|cgȰښD?::*r(~###5 }&=Ю FЎOO{sg}?Z]a×]+j#LR/,{ E;~iwh~EoBϏV$^#,C~ͮVm?P{hϷ( z։Q"Kk<\"kפ~MGgJ{i>\O{z|E|4occC5e===2ic(ڿo=kVPK6        `P] *11 ޽hWkIMMMIeŪI?;;kNu&a~aݻh|P-ӎ/L&]E+|xz~$&%8::*rÒiڝ#,#~nm?P- 簣w~}iï666&--- qppP/,,H_Ag57񵕴;&*z~M$! XA%El       QTbf+c{Ѯ>?nݺ%911QS>O'Oچ_+Oݟ|DE򵭝_z֎/_c6I hs2~gxz~$5==-133#mooJEZ-z'.g%a/lv{~~hYoonўoX4@@h=&KkOn޼)]!Q>uSdƍj}<8盷VQ+^jE~$s!+q@@@@@@@@ XA%f]1w{AWDAeiwjh!鿸pNI>2޽v~X ݢ_m?´ػh\4ͷhWG^R+++5}}}}}f?#,C~nm?P- 簣w|WLyt;~?ǧ-Z|-]/hc|  L~vڏGv#i/|_滷"n>^޽܂@z^ɂ@ү/-qw 燶v[jl}EO#(]/--\ZA1J        P ; @@@@@@@-cǎ~ݓWJph??NÝڸӏk56pk| Ɲ;hKB~S6q0:+HA        ^Ϭh/Xvzi~>;er,mw5[[[ 744$NЎ/OG꥙oZs%q$`9Oyu#i/iw``@\YYs_____O{z>O;E|O8oc7^d3XZZƤ]]]d_z,,,H;88dxw[/l>߼K:|KǙ  Isgff~-z@KX co@ɝ;wdii޽+Ç:$??~\Zߏi~\iӏc}yϻkqvo{[^NҊ+q@@@@@@@@ tUA]й5mvf >?Ǘ 255%C:_C;V]Z}~^|E?߬8!`9ʼn2KG^ښ 9::*rCܞ~### i=iݿhEm=ӌcu^ ח!  @MVPF_@@@@@@@@x%VPgV `^+ĵm?i.*Dui_.˗-oCCCŋ=s挴q|z> }~Dzz+|KKQsͳ<'KG^K*2祽}=v||\ګWJ{Qif=iT~R/I(~I"Њ@1__G  PL"       tBTbk_!1pwlz|a[;hE;hST ͽfVPV!߰|%}>X/L?{{',/{XO{j=׏{H^ Fn,@~z+Wv횴߯ȑ#}Yi/\ ÇkioXO{k SPG:K^:719$+L A!       ` `N~fz|a[;h0^/IcjjJ enn.`Nja2\Ng[B~`=05Avyy!J???/HMǫ ~iz=kϗ#zFn,@~4ׯ566&]Rsl/,,H_/t ذ_2kh>29造>?BKeWkt>6TAXAP2@@@`@IDAT@@@@țfTbf+ce; Ku?goo|dO ,⢽zh֭[R 5Ws6:}BKy5EYKRg`=0iAWJ"ĉr_IӎO{<gQZm?`x=JGxl7 }{irMi랍 ֻَSN7f=>yfeʼLЊ;q:]/ihMn *V3C\        @XA$+u]WۉS a=a^1<<,R.޹xkk+p֞RX SV߰|%}>X/L?{{kc``@VVVj0U_____O;>j-x)^e<c5{g;YWLy eJXTm=g"-O(3LxH6V/IhYuD.Padl@@@@@@@@*ތUsaѸ'}Ҿ[_~G".zGv6whО/  K|_~G^"߰ݻh+-=?#'#z< >g=fy_;yi6=X|m=OZa鿾^Fh~C;޼]/>^#:C/HS +Qn0%`llLXKic߬şC7fIhvNo^GJ+)α@@@@@@@@ alLt钌>11!_9_y}Gq6m>|[|*0+yV@s$ęi >>>-Rd3x' Oܹ#Ǜݻ>|PZСCǥ8Vǵ<2N|de^Zq}~hŝ8Q&U7Ve!.@@@@@@@@ '] s2TQu0$u!:SSS2\'''lZL~[J_nVW;Iv>/ڏIBr#akkk2訴 =??/FFF34_^k}Zo-x8fhY :7ߣ"& ]cg!       pòJpqLu'a ܔ8 ץ|rYZmhhH~xgΜ6:ڒPAyW/JE9h0>@;:?z{{&g|0^|'?;c*?^۷oK#iǥzG6o|M&CZ_% 5ZϬx~\Z}<{T䷳@"J@@@@@@@@ JL|Wk'Wki;}"V >yY1AmO*x_TG@+ڏv|tu?u5^>K*8>ίZHN YhVkgO;>ʕ+^vM.9rDڳgJ{i>,mV5FVb2Ξz1@Ώsrw         +վ[ bbݺv|xjjJ~7NNNJٖ[|ğ8V/E{j]5ż~> Jc_~񭭭 訴 yiGFFv|CϏh>>ƣ_Y#Zl#@rȢnki_illlLbJiX9t)CQ/L+R4mQp XAE!@@@@@@@@  5[nIHѕS;WGo=S2ɓ'M&ٙYf@@ _jï+ەJf$+_J߯Rjg}<åRЬ׋v|L2F0'pyɯ_woll>Sƍ; gݽ/?^۱G~~?Cٙ%VPN@@@@@@@Ȝm;sw0`Vi3qi7<<,rYk̶G Iņuv鸳~K^gy_>o>M{W;>M$Ʋ0p6;N_____|CϏv|dz^/>zюz>ć@Bq{[ӎϯc;w>\ bkv6 P/}Y;?-{g{9!"@@@@@@@@ W3 ߺ[+Z|PzO^E/#\苀u{W;>g->xzΗe,o{xooz#@@Uq{[+Z|/Z=ki]Q/ڢGg.MV`ss *3:        Ph#     X8v옄w=i{{{T* Î4>θ5zC^2>OX G, C *1        _T⛱cei2HkkkKzߢ8[wVjKV3GidHÆc E8rLseef>kV6W;>Ym?ՎOۯhi@l uƤ]]]m)PJ㴴s;8η!K.$ö) *m±        @kҚ0!p%cbbBZr.}禿No~mq:_J\KV2E 3Qܹs2i}||ߕ|>>_6v>@vi{>;txqi}?gq:_J\KV2E 3Y_Tp        @fv8ݿZki3qiǹ9SKmNJYzj; ip ~zM;=CǷښJܐiڝ =?Ԏx#vXOۯhEmHN 4Y=zm?Kۗ! +2"        XARо[ b Ju~}8p@ׯK{ei岴АxEiϜ9#mtZ|+3OooKd*m@^Ώ8 h~_*Z]]ϟ?/۷}葴^zUڣGJoZ =?S+>8Z~b}F#v|Si)g :~YAEǒQ@@@@@@@@.uU`>n#}6v|ulO;>mVW( i֋6ZB^8EgmǢ~@g?tu?2^1!8C =?Pfk׋xo~z>^.k,]5{Ȇ@itE㵶mO;mllGT=_U`ӞҮk"^^nA@@@@@@@PpJLL+ ֎/&OݭiǗԔ =77vv6~}~d%֋vIןvh_{ֳcQm7C v|ql:׺v|kkk2訴 /K;22Ұ;CL[^ӞvXOۯhi׳xEͷ@iTG];hֶiǧWbbppP/,,H_$E6mvm[nɐ5C:_~Z?yd86|ZqE}Ƶ:Nzў_=ӞVWy bh?>k?ig= 933#mooJEZ-z'.g =?3izO{b}?Wۻzю#ӮmV~E;?8ڏڏűD_~i Ȑ+++5C7Og}#hb}i׋x]/NjΟx=^i?kڶu?)?_QE;N6_-7?NGMW͏?NQZkB~mW+!       `)W\ܭnWwhxߺv||3dk|֋E6C _t?o@@@@@@@@ ]R _3KYӎ h׋G\{N~CCCqq~yS^I+K~N4;z!2Y~>>?㳞~i#^/500 7l}}}}}fmh׋|hǧ=^Y{E{@'B7{l[;f^ZZ!Ƥ]]]u~鿰 `\jiǓtYo>zI񱂊         q@.]$}'&&+wVD~@~M@yn^Q(V!.@KΝpfff~65zVQz>ǧ R^(_Ν;2ii޽+Ç:$??~\ZߏYm}Evi?|:]/ia9>b9CĆ       @zv;ͯ<Ǻv|ڎb}ojjJ~7NNNJٖ筓vv%t~i7mdzZ/7n&oY@HЎr.\lGhX_kmmMnvyy9ڥff>22Rs6z>h=_=_Cص_hڶu? `f        ТxTZݴ־X;>?ou?]/绹)^|Yr,644$?^xQ3gH{]/zJ״szT*Nt?ijpZ #|}~hǦ}iǧmZ/WkuuU:oߖѣGҎK{Ui=*mѿ%U/xEo[1Bs~=_4^kO<  _T⛱        @ VPj_}v|1yRnO;>mNKVkuܴWjEm?qǥmOS++v|bO;>|Ki =ߤ+|X͇xy`0kb QzgZ֎vu?r~ }i]&ؐV[OO uiϞ=+ =|Yσ_h?ch:p *+3B@@@@@@@twwXA%f:־X;b[ G >%kWrS?κv|$Qi/K;22Ұ;6_zΧ|hi ί#L&z~Dg֎/oO;>m_ؘ }X JiX9ԏ>2Oɏq^iVPw~        qVP+ ֎/&Oݭiǧ zǏ:=2Փ'OjOYu[nx5֛W۳2_d6yJvmPvmӧOː7oޔֿNؐ#O:%7nܐ그~wk=qӮן T@@@@@@@@+4;z޹VnkkK844$U岴y;X_V]/|hիvoGqߎzuoCO;>ٴv>B%: qee&h;}}}rz.Evh'z> hE=?^^D7֎:}u?)?;߃J<~Eyk|kW ͋|?k?K3 */C@@@@@@@:*Yb)Wܭnw+r;iǧn^|*\_޽GzEߢ hڏYϯu?Z/i=_oθ~wf=Ƨv>b=CaJ{#       4.uU?SkAh6v|۴v׋uaII\=-i}v1qZDg&%3"hگ7qCZӎ/N C%:?ZBG WVVj∺Y듛ףw޶>_i._ lH Sil[;f^ZZ!Ƥ]]]>D‚Osͯ|Ƨ]Y?[zs XA}?D@@@@@@@h".&>ؤw#t311!_9ſS#m|g5ą dUܹš>>>Tk}T @R+ܹsG7==-ݻw}I};t }qi}\IWk\g~wZ轛V8~\Vr8KV2^Ҟ{!        UB_[ͯ<Ǻv|ڎźԔ877oj~-|f<eguFZӎuzKt~6Z[[J0oddakwZ[ίxE@h=Gw[;Ou?x  +^)!       p.V~Ծ[ bZ1d~i[[~H{ui/_,m\/^(3g[kqZ8߬Ux! hگ7v[ӎHxfӹޫrK{mi=z$W^ѣfZO/׸=^^ݙW6B9:q{[ӎ/m_ oʈ        XAeF+?j_ĭz~[]!Rv~_OΊ,ɮ@j>8|EֶҮgi?yghZn#}~P:y%+Z!"tO+YG+Yjŧ}~hTh->jT>VB9zl+>x@`\"kפZ#9rDڳgJ{i>,mQ5˯wɋ6Wm3?W9iϾ"kk?VPIΗ@@@@@@@@ aYA%fd Ӣߩ)xnn.׹+;(l|ۍ/SI֮_Zl5>#zL^d| hԳ:ߵ5vyy!`???/HMFW{` _d=vh->jC @h=G}=tׯ 666&0KKK%|A9‚kff|C3SXuI^BoU2g>|) *M-C@@@@@@@lJ?g[a=633#mooJEZ-z'.:hj,J_n=vh->jC @h=G}=trMi Z=y^q)پqㆴE7Y>߸YӴ%VP\ڽ÷GxT/E@@@@@@@2' *1S毘[YDrrt\{dvE;?orqqؖ1>Kǧ|r!Q^Z<,zUX;00 `+++5pꨯO:qǫ Nf}ii׋_ίx`<sX3NWz~)?Տ?xϯnth͚׹JjIKXk>|V垻YA%d        YVPTvu';W;>i)_~_7m?z.Z|/|'?; /i}3n5Xv|ۛ[޽ P_ #G_Eg;]Վ/]G+_~_3 =EۏҭfGG~VP[F        `H]ܳAv"@@@@@@v ;vL6ݻ'mooJewg&wf|ۍ/ =zi׏vJ]?J+q[ϭ. *3Dl        @˨l`MgYȗeiw1eFd|zE7$)k~nrӚo_1?3+z߁Jͤn57z\j-F)VZ^/~oǗNL~ߥ%vuu5]/GXXXvpp0#>4Y>lUhP?xt>Vh~od!       po=0Ztt֯lJy;~~(wE+|RΝ;'H,b.ZhQf=;֭h~Eo #@"wܑNOOK{]i>|(mV:tHB=~~>~YV~ޭ7~7>:Hj%f>_[i#7n h7aGݻ78W[:%~'eNs\@@@@@@@@]]]R<3E \tI֯WwVI'Fׁq[Ӛ?NZ^Țs$䙙i }||U2d+lh׋BH|m&[aՋC ܹ#wޕÇ?~\Z_N_10 ;޽iAy+-`Nsl@@@@@@@@]w0o`jSVr-kjjJ077|0xlcnҊ/tvgM@$ʠtDaA_[[QiZ@~###5/~5VЮ:?ME2( lZ=0E@@        XA%W+c+777%C^|Yr,mRo,!ŋ=s挴:R[ҎWe        m lnn_mN         *- @@@@@@@@= g^        - pJPtC@@@@@@@/ *@@@@@@@@ +Ѣ/        @,.VP%Fg@@@@@@@@@@@@@@@@ZfV        О+^        -tuuJ NtA@@@@@@@`|^wo}k%/yɞJx+ܞ:W]]u/AT~@@CzСC96;    @F߿_{/7zJ>K׮]+,mnn>v;'|'<-k?Dvӓ)}^ז.\PT ?}߷*}_\.ݸq7g=+;vWs6~gTw^>>n?Ȇbe/{.ױv?ϋ/MMRp%hs/:ܓG}GFGGKP$/K]qzj.wdd_ѮO޽[}/Krq݅H־xl-#333Szի^%8={6x p7w^! @@L ~ow\f4??oL11%ʋ^膯܊?S?e"Jeywh8_\_wq_7~7}S!Wҗ}ٗ588Xr-CG;R;"Suv{>ig ;DU.VPj 8s|{k^RsfTwZꤦpNgΜjگ59;y᜔q4==-O y@ *077䵮{GZ%̧  @Lȏ,]}[}=y+{WVJ''/2SH%v_?Z9ہ']h?oVҽ{Jo| %]:r\ Ԁ]nOO/}۷}\G<__!`ϟ?;f{S[]kQlDvp0v( en98JrOs/tv?;wN.n};?'nqyu|}G|ľ݊)/w~_-Ov['CG-ڼ//;C6r-??*򕯔>?ٟٱ/ F-@ȑ{rr/Q_U_UrWGMMMBzvkXA.:ۿ۾[E5݅i~* |C nu}"{ÛrͩozӛJỔ~W~KKO O_Z{S韖~¼>̽~~I?9)MNN]ii;[/`9^K i]ϕ1U~o}Ą|4| p/[O&ۿ[pSĉ7s __|\( ?n:$ٟ~G~D~)/]_^<;l|?lllH ֲ[\ol% p/z}Г,?w]/[н ֽn}s_yTt@gt˃Փ{Wrr]M\m}G|ky祗nGr ҏ;&ic\ytvՈHN=׺׊?knw_ح˭V{C{wFG|g}VÏGw}v7OO\>J½V8~~}buoFsdwc?cM>w??hzSͰ5V7BEDO?nKDr~ 7W~WGCH|;;%ǽ!'o*uD9ߎwײ`nUvEfܻ/~J+í@8.{K_ڰ{sϕCܛy_ȹ[өig=v碫~VԿp\?%"Z?6s=6JEٽ.wϿaڝO__]ccc//|gx-Xoo,/m !B Mic!%j/yKs(??^3۽p/>s>B^PO؟) t˭^t/_ IIrǽ{1wS瞬˿|/"1{s^Ը1 /|f0] {^'gSNI>w_ryv͚r.n{ݷ]yr?..;B"2k9jQ/zhRf/r_# O_pnW@!E~_9ܻT^0菨q| _(^:Q~EV~p}w~gZ;+};V㷻}T$v!6ڵk%w `O]v}_Wߡ{hm#sWP3(_n79w_gwU}=ݭ.fpϽ?ݼݛ~~wm⠗e2n{èro*tp4Xr=ܛ*cr7_9\z^Wr劼qD<ы)ߤrJ6~? r!_ w>_5_;'?~i] rKE}s]=z$sykj>Γ~w7s񹋢vSfr)/r~=S:7׾qO~pB@uwg IGIW}]I_?$׿~"f ++k^QӧNȚ'~nÍW:ૹݏ3>>]dXo_"Wc;F] .&wsc//lݱ}UDw,g[}vyV_/_aWBn^P]V~^K<خܮ^ #}m{zp;эP:Ʒ{.'.?koo>qXHI___tܷ;o[}T]}{8lK>{LXɺU_8qgHݤO¬&F's,ڷvm]l #d@=Wh{Ś^U#kv0^;Vf8R}[}߽zv6^Z~\}D‘1@ s}IH`A C (A4[^zQD!y_&6 {_4*8ܣW:Yz>{ν^=]=j?CWzqM7{ҋ߯6xݓl]N'9y7mI:0&\v6X;MKK~f8љJsˏ fѫwPY&IM<#.meoC0׆r!HDIO[M3.˗~(Xt?LjlߓO>Y_t i3)n4㖎kнX?G7<}Wrô%sM.yÁ~(C_2ή~FXŎȣ3#\Όzgջ4#?vY9묳J~rHo_<:^ZJm}+/SlYBT pswk~jC"?sVl}x>կ~U6b>zltL2P>7! ro}k_:odz–+G\-~Ysc l\$6ˆь+ͭ]nՊ ?}RC5/C)ΫP7<U0:CsY,A/" @4So*ly k7#Ot$2PYn-RG0ǘ F]򿧞zcbwj-Ws4R꼰 ,f[gŒ y.R%'mEcD@D`+e T,yg;i{'J0%^f.Y!x^Mf2aAsvRҴ -F1I|\71nwμؗr7!U`DVg`arE1oy"+ 3Ϝy)i1}2d7q({QO@k=,y IL33Ixx%it8xE1C n [j1M/~\8)y쨳=Pޗbyvw/uy~,ͳB X T%B` Qd P2 ʴwlN$?O?>{t` âNXŒuw|d?i8wK?17\bzp5pLRn:-͵ag.;,` N< ˖+  BX[W[Vu+¥^=3h@"$)30$YHcBIJFT?43 ϒ?(4.8KLE@D`nqb14;^'|?6ȚPsN6v|XȜ 3#t&4|gd(XKR6/#E=Ypm|-v&<1AG,p3δóExc&^!ͥrpYDСBty ^63ill2OSG{ U2P-A.PM O~(G4}ǙhgǴ66 c?vG}8K"2PY Ve:hBaMg\ŌBݡ -&[*3${:b,:xe|:Z/~q+J@<1ا qw((.(1 V֫:js}zh71vt//uôJŚ7%ʐ=ߡy;^U)C)Iq^,byҟ/:?)CPT" "1 D]ֳc!b'XZ3 cZhgG=-aV!$ַU|Iy늺torZhV~yx,*m4ڞ-S{ZΘʒ|gGGl *WܶsNkJ4pz8zJ^&$27CHΡEɲ!9ɓK,&" "0N ~;i2P~Vl<3$xa7cz CF~y Tf"+ <6N;߽ f@΋EYwi*7 0Ƚk~av0 ܓ,@ä%e6O}ݗ'r7xc68=^C$?'Iq<Iǧ?ȃ4~/n̗ 0&rA~m7 o/!yË4KJz&sF OH4!ϡh`DI2KD`SYvig2d!#p2*o3%SҘ2U,NW,DP2=fӰnYv)%d T2dsZMK#Y|#k2Cdر:CX}2+dَh^RZlfhd:qz \23S\.Y+6$bk2r+VL L6:̼ma0$٬dd \udF`\d!r3,K*3یdr]dT9X_'eQVV.Gu.~G&kh|lqt!eY_r;Kj姹g.q]n[dn;M:}OQJ`3z\1z6TH6K9sm^gɼ$tÖ U)_]hIŌ򱴕mp/ wsoL}|C],<{_q0o6w$czxuf/)jf;v-$jks:z4Ygټ,ƅc>69OkP43k@9w˃ \(,6d$T=wO0ĢidgY$zCr ]<__;tzeײ /,ҭ D(E[jڟ5NCgrJ?}e ~NC0q1[<J  dW\Ѽ0֑`u3!񆈽,C=ui ׼Ƹϴ{' yf2+O^Bh:'Ԟ{1a}Pu~yxulk[ng$fyF; 3uуUo7,/" " f{HkqӼ[}uz~EujL=+yg]˂?c5a? 1IV,zPN=e]Ycf<ǹ"ꋾ%NfQ_#!'R~1m F} Ĺݽ{y]zDE;Ъ~}: L:n5S"`C.Z`Vq/c^}+BoW3ܪQ -񠂘;|{:?m 8)Xf#pN>%Y^,z5K,3fT4 7bO˳Ȭhe>r΄d:3olyjnSLSO.2r4;>_1ɽcvEbx;DntR*W L]y̌ד{ j]\@#IxmD4bj #6\8# ޮ?0{sydCuY݁bӄ61q? 3AOA4m$`l8Nj<#F„EB7FlD/+cG.Wo9%p3>n˜>GC(Cwlׄ"$2b4swhď}c9׾3nfnEqCw?7o0.Q]Y\_ 1O̺0>{DWzh!;+`UV%C øz>X`bᱲW<ƵŸ/,@%}`4`'6-E`Ux@eUt 03Nk¹13;oܫP(0;+CO-㾡;믿>{; $e4?oeb?):ڸ$(5HTĊ%c@0H/wkcUVetX#C OjԳ!_K))K'OW/8;-E@D@3nLOC{ xhɺBwhkF !B%N+òqLږF_r%y1F%<;gf>< Lddi-g|(7BKG,mn(獮g94Cߌ!95WXG YЖ[F ɍARf8m&SNp"2]fa1P1NA7j}c?qz~3_Y2OLܨNѸ E.keh0RrmK!W\qEvz>_tE9 nc.xAW/*G(0- ~x16r |矴LOԧ׼5j }{.}g_ug^u ,Axt[:Q\d+nӱ>N|l;W Vu 8/jIeCQuE wk@ވ!- +Lxw!CY>37Z't-c}_suץ={%>(6{h~Vφ~,QNR)7\Z圧)Cqv8+m^J3Jqҋ%hF0:^*oYz 'x ׫pv [1?=586Ft{;>\DzR\fhǍS8~ SO|"&;2N>Vk c-\7cq:%?tw 00G=o&}Ѭfxg*:w}wԛȚC}cO0 {P/N?'xހ؁~7O# )8Fq 82u͟r:uq$HSΞ?܎n01~&_񪫮*x_,zMlPF6DE A#` Nghg;SX:X^杹<+cԙBܙW qg)9)n}:|IgV%b,;˼}:`\,wH`3E#OgVcL[ v7):KS:S{キ3%gQ;WLQc;).#iM̕H:`q;SlFZH^f}< :\̲5|:SGP;wvyqah9e̔sHwwd|&SQt\[ne$/~Ķd}Lmc,1x=y-:m:B͗L7\qXԬx;o[1Ό򨏉i qf3ˊ}!mu2Gf%`ְŽ{bce3 ¯3nq<ЬyV^l㚢<2AA)RpxO;r sSBӄ3ǴLpb6OףF5PSmVo7O0e{ N^9o4Ro1:lFm+I7>-yюf8*a/ e&L7!i󮊲Y?fԖŵ PeS, 0.O㺅[yoW&{y01occ|w6b#peO~Xz'̡,3t;rI%}49pDs19+adRhOLGlU\ _K:;??6N-}\?y WϿmsy!P ߘnw{f$",ج0劲8ٳ\ͬKc#3NFr78}% N(h@C)ky zFC}u [I :y>.8ӘW ^Kن2:B.-n4O9唬8k: `@c6M*f^ny̓RބqpA("N(r"QOJ1$lziҡbN;IG뤥'vp!61Y¼Nn N8] pE\FEo<؎B- t9߇M[u:(!pL% %t"txaX SkC j#`>196B61<fahtS0 "$!Eo[ܶ}m^I^ pː\'&Rޢ,ށ eޠ"t&s٣?# I'!0HKԵ( AF IDATLL=&!WL04nRwL[# uv-e٦C6ʲB]^!<˴b]_6/" " " " [}-z HlV.h3#fߛJ'~,' gKO*Ol|Jf:r"$1ܳ.mf,ib8i@rg%o3*Zq~X+1 a:BR2dġBUڤfhc.Px+G> mzC'r ΌrT3k{,eb7YO=f ?1W~ɟuFf4W,;ȌRK܍;CDD@D@D@D@D`gr]{E}gꪫJ>œ" r֍Ni-!ghNwQ%$ ~Kw >d҅f 7x Y6f"T*q i8A/!q7X"} YCx%`|u /zы Y0,袋s=7"QO?t郑aj3?)۷oO_җd2<-H@*[E@D@D@D@D@D@D@D@D/{ң>vܙ^CMİUbG@!~=Z ȃZqd" " " " " " " " " " " " " " " "t]dVD@D@D@D@D@D@D@D@D@D@D@D@D@D@D@N@*kG!m6yP:[W*" " " " " " " " " " " " " " " '?g3" *[vbE@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D`ؾoNl=\VӺFGo.}^@u T; }D`۶m@eiE@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D`'sϥۻW*>"}{L*N+" " " " " " " " " " " " " " " ={7=~u" " " " " " " " " " " " " " " "f]3z3@eu: oK;w~0ݻ7m߾M* ˿|(i6Nl*wsOO~ܵ {9hKSG;3~뮻#<~/KVȐ}w_ׅIu}xL_Z?տX_|=.߿=y駟N{I3SҮ]>=`MY(9IENDB`python-qrcode-7.3.1/doc/qr.1000066400000000000000000000024521412565416000155760ustar00rootroot00000000000000.\" Manpage for qr .TH QR 1 "1 Oct 2021" "7.3.1" "Python QR tool" .SH NAME qr \- script to create QR codes at the command line .SH SYNOPSIS qr [\-\-help] [\-\-factory=FACTORY] [\-\-optimize=OPTIMIZE] [\-\-error\-correction=LEVEL] [data] .SH DESCRIPTION This script uses the python qrcode module. It can take data from stdin or from the commandline and generate a QR code. Normally it will output the QR code as ascii art to the terminal. If the output is piped to a file, it will output the image (default type of PNG). .SH OPTIONS .PP \fB\ \-h, \-\-help\fR .RS 4 Show a help message. .RE .PP \fB\ \-\-factory=FACTORY\fR .RS 4 Full python path to the image factory class to create the image with. You can use the following shortcuts to the built-in image factory classes: pil (default), pymaging, svg, svg-fragment, svg-path. .RE .PP \fB\ \-\-optimize=OPTIMIZE\fR .RS 4 Optimize the data by looking for chunks of at least this many characters that could use a more efficient encoding method. Use 0 to turn off chunk optimization. .RE .PP \fB\ \-\-error\-correction=LEVEL\fR .RS 4 The error correction level to use. Choices are L (7%), M (15%, default), Q (25%), and H (30%). .RE .PP \fB\ data\fR .RS 4 The data from which the QR code will be generated. .RE .SH SEE ALSO https://github.com/lincolnloop/python-qrcode/ python-qrcode-7.3.1/qrcode/000077500000000000000000000000001412565416000155775ustar00rootroot00000000000000python-qrcode-7.3.1/qrcode/LUT.py000066400000000000000000000042741412565416000166240ustar00rootroot00000000000000# Store all kinds of lookup table. # # generate rsPoly lookup table. # from qrcode import base # def create_bytes(rs_blocks): # for r in range(len(rs_blocks)): # dcCount = rs_blocks[r].data_count # ecCount = rs_blocks[r].total_count - dcCount # rsPoly = base.Polynomial([1], 0) # for i in range(ecCount): # rsPoly = rsPoly * base.Polynomial([1, base.gexp(i)], 0) # return ecCount, rsPoly # rsPoly_LUT = {} # for version in range(1,41): # for error_correction in range(4): # rs_blocks_list = base.rs_blocks(version, error_correction) # ecCount, rsPoly = create_bytes(rs_blocks_list) # rsPoly_LUT[ecCount]=rsPoly.num # print(rsPoly_LUT) # Result. Usage: input: ecCount, output: Polynomial.num # e.g. rsPoly = base.Polynomial(LUT.rsPoly_LUT[ecCount], 0) rsPoly_LUT = { 7: [1, 127, 122, 154, 164, 11, 68, 117], 10: [1, 216, 194, 159, 111, 199, 94, 95, 113, 157, 193], 13: [1, 137, 73, 227, 17, 177, 17, 52, 13, 46, 43, 83, 132, 120], 15: [1, 29, 196, 111, 163, 112, 74, 10, 105, 105, 139, 132, 151, 32, 134, 26], 16: [1, 59, 13, 104, 189, 68, 209, 30, 8, 163, 65, 41, 229, 98, 50, 36, 59], 17: [1, 119, 66, 83, 120, 119, 22, 197, 83, 249, 41, 143, 134, 85, 53, 125, 99, 79], 18: [1, 239, 251, 183, 113, 149, 175, 199, 215, 240, 220, 73, 82, 173, 75, 32, 67, 217, 146], 20: [1, 152, 185, 240, 5, 111, 99, 6, 220, 112, 150, 69, 36, 187, 22, 228, 198, 121, 121, 165, 174], 22: [1, 89, 179, 131, 176, 182, 244, 19, 189, 69, 40, 28, 137, 29, 123, 67, 253, 86, 218, 230, 26, 145, 245], 24: [1, 122, 118, 169, 70, 178, 237, 216, 102, 115, 150, 229, 73, 130, 72, 61, 43, 206, 1, 237, 247, 127, 217, 144, 117], 26: [1, 246, 51, 183, 4, 136, 98, 199, 152, 77, 56, 206, 24, 145, 40, 209, 117, 233, 42, 135, 68, 70, 144, 146, 77, 43, 94], 28: [1, 252, 9, 28, 13, 18, 251, 208, 150, 103, 174, 100, 41, 167, 12, 247, 56, 117, 119, 233, 127, 181, 100, 121, 147, 176, 74, 58, 197], 30: [1, 212, 246, 77, 73, 195, 192, 75, 98, 5, 70, 103, 177, 22, 217, 138, 51, 181, 246, 72, 25, 18, 46, 228, 74, 216, 195, 11, 106, 130, 150] } python-qrcode-7.3.1/qrcode/__init__.py000066400000000000000000000011661412565416000177140ustar00rootroot00000000000000from qrcode.main import QRCode from qrcode.main import make # noqa from qrcode.constants import ( # noqa ERROR_CORRECT_L, ERROR_CORRECT_M, ERROR_CORRECT_Q, ERROR_CORRECT_H) from qrcode import image # noqa def run_example(data="http://www.lincolnloop.com", *args, **kwargs): """ Build an example QR Code and display it. There's an even easier way than the code here though: just use the ``make`` shortcut. """ qr = QRCode(*args, **kwargs) qr.add_data(data) im = qr.make_image() im.show() if __name__ == '__main__': # pragma: no cover import sys run_example(*sys.argv[1:]) python-qrcode-7.3.1/qrcode/base.py000066400000000000000000000163171412565416000170730ustar00rootroot00000000000000from qrcode import constants EXP_TABLE = list(range(256)) LOG_TABLE = list(range(256)) for i in range(8): EXP_TABLE[i] = 1 << i for i in range(8, 256): EXP_TABLE[i] = ( EXP_TABLE[i - 4] ^ EXP_TABLE[i - 5] ^ EXP_TABLE[i - 6] ^ EXP_TABLE[i - 8]) for i in range(255): LOG_TABLE[EXP_TABLE[i]] = i RS_BLOCK_OFFSET = { constants.ERROR_CORRECT_L: 0, constants.ERROR_CORRECT_M: 1, constants.ERROR_CORRECT_Q: 2, constants.ERROR_CORRECT_H: 3, } RS_BLOCK_TABLE = ( # L # M # Q # H # 1 (1, 26, 19), (1, 26, 16), (1, 26, 13), (1, 26, 9), # 2 (1, 44, 34), (1, 44, 28), (1, 44, 22), (1, 44, 16), # 3 (1, 70, 55), (1, 70, 44), (2, 35, 17), (2, 35, 13), # 4 (1, 100, 80), (2, 50, 32), (2, 50, 24), (4, 25, 9), # 5 (1, 134, 108), (2, 67, 43), (2, 33, 15, 2, 34, 16), (2, 33, 11, 2, 34, 12), # 6 (2, 86, 68), (4, 43, 27), (4, 43, 19), (4, 43, 15), # 7 (2, 98, 78), (4, 49, 31), (2, 32, 14, 4, 33, 15), (4, 39, 13, 1, 40, 14), # 8 (2, 121, 97), (2, 60, 38, 2, 61, 39), (4, 40, 18, 2, 41, 19), (4, 40, 14, 2, 41, 15), # 9 (2, 146, 116), (3, 58, 36, 2, 59, 37), (4, 36, 16, 4, 37, 17), (4, 36, 12, 4, 37, 13), # 10 (2, 86, 68, 2, 87, 69), (4, 69, 43, 1, 70, 44), (6, 43, 19, 2, 44, 20), (6, 43, 15, 2, 44, 16), # 11 (4, 101, 81), (1, 80, 50, 4, 81, 51), (4, 50, 22, 4, 51, 23), (3, 36, 12, 8, 37, 13), # 12 (2, 116, 92, 2, 117, 93), (6, 58, 36, 2, 59, 37), (4, 46, 20, 6, 47, 21), (7, 42, 14, 4, 43, 15), # 13 (4, 133, 107), (8, 59, 37, 1, 60, 38), (8, 44, 20, 4, 45, 21), (12, 33, 11, 4, 34, 12), # 14 (3, 145, 115, 1, 146, 116), (4, 64, 40, 5, 65, 41), (11, 36, 16, 5, 37, 17), (11, 36, 12, 5, 37, 13), # 15 (5, 109, 87, 1, 110, 88), (5, 65, 41, 5, 66, 42), (5, 54, 24, 7, 55, 25), (11, 36, 12, 7, 37, 13), # 16 (5, 122, 98, 1, 123, 99), (7, 73, 45, 3, 74, 46), (15, 43, 19, 2, 44, 20), (3, 45, 15, 13, 46, 16), # 17 (1, 135, 107, 5, 136, 108), (10, 74, 46, 1, 75, 47), (1, 50, 22, 15, 51, 23), (2, 42, 14, 17, 43, 15), # 18 (5, 150, 120, 1, 151, 121), (9, 69, 43, 4, 70, 44), (17, 50, 22, 1, 51, 23), (2, 42, 14, 19, 43, 15), # 19 (3, 141, 113, 4, 142, 114), (3, 70, 44, 11, 71, 45), (17, 47, 21, 4, 48, 22), (9, 39, 13, 16, 40, 14), # 20 (3, 135, 107, 5, 136, 108), (3, 67, 41, 13, 68, 42), (15, 54, 24, 5, 55, 25), (15, 43, 15, 10, 44, 16), # 21 (4, 144, 116, 4, 145, 117), (17, 68, 42), (17, 50, 22, 6, 51, 23), (19, 46, 16, 6, 47, 17), # 22 (2, 139, 111, 7, 140, 112), (17, 74, 46), (7, 54, 24, 16, 55, 25), (34, 37, 13), # 23 (4, 151, 121, 5, 152, 122), (4, 75, 47, 14, 76, 48), (11, 54, 24, 14, 55, 25), (16, 45, 15, 14, 46, 16), # 24 (6, 147, 117, 4, 148, 118), (6, 73, 45, 14, 74, 46), (11, 54, 24, 16, 55, 25), (30, 46, 16, 2, 47, 17), # 25 (8, 132, 106, 4, 133, 107), (8, 75, 47, 13, 76, 48), (7, 54, 24, 22, 55, 25), (22, 45, 15, 13, 46, 16), # 26 (10, 142, 114, 2, 143, 115), (19, 74, 46, 4, 75, 47), (28, 50, 22, 6, 51, 23), (33, 46, 16, 4, 47, 17), # 27 (8, 152, 122, 4, 153, 123), (22, 73, 45, 3, 74, 46), (8, 53, 23, 26, 54, 24), (12, 45, 15, 28, 46, 16), # 28 (3, 147, 117, 10, 148, 118), (3, 73, 45, 23, 74, 46), (4, 54, 24, 31, 55, 25), (11, 45, 15, 31, 46, 16), # 29 (7, 146, 116, 7, 147, 117), (21, 73, 45, 7, 74, 46), (1, 53, 23, 37, 54, 24), (19, 45, 15, 26, 46, 16), # 30 (5, 145, 115, 10, 146, 116), (19, 75, 47, 10, 76, 48), (15, 54, 24, 25, 55, 25), (23, 45, 15, 25, 46, 16), # 31 (13, 145, 115, 3, 146, 116), (2, 74, 46, 29, 75, 47), (42, 54, 24, 1, 55, 25), (23, 45, 15, 28, 46, 16), # 32 (17, 145, 115), (10, 74, 46, 23, 75, 47), (10, 54, 24, 35, 55, 25), (19, 45, 15, 35, 46, 16), # 33 (17, 145, 115, 1, 146, 116), (14, 74, 46, 21, 75, 47), (29, 54, 24, 19, 55, 25), (11, 45, 15, 46, 46, 16), # 34 (13, 145, 115, 6, 146, 116), (14, 74, 46, 23, 75, 47), (44, 54, 24, 7, 55, 25), (59, 46, 16, 1, 47, 17), # 35 (12, 151, 121, 7, 152, 122), (12, 75, 47, 26, 76, 48), (39, 54, 24, 14, 55, 25), (22, 45, 15, 41, 46, 16), # 36 (6, 151, 121, 14, 152, 122), (6, 75, 47, 34, 76, 48), (46, 54, 24, 10, 55, 25), (2, 45, 15, 64, 46, 16), # 37 (17, 152, 122, 4, 153, 123), (29, 74, 46, 14, 75, 47), (49, 54, 24, 10, 55, 25), (24, 45, 15, 46, 46, 16), # 38 (4, 152, 122, 18, 153, 123), (13, 74, 46, 32, 75, 47), (48, 54, 24, 14, 55, 25), (42, 45, 15, 32, 46, 16), # 39 (20, 147, 117, 4, 148, 118), (40, 75, 47, 7, 76, 48), (43, 54, 24, 22, 55, 25), (10, 45, 15, 67, 46, 16), # 40 (19, 148, 118, 6, 149, 119), (18, 75, 47, 31, 76, 48), (34, 54, 24, 34, 55, 25), (20, 45, 15, 61, 46, 16) ) def glog(n): if n < 1: # pragma: no cover raise ValueError(f"glog({n})") return LOG_TABLE[n] def gexp(n): return EXP_TABLE[n % 255] class Polynomial: def __init__(self, num, shift): if not num: # pragma: no cover raise Exception(f"{len(num)}/{shift}") for offset in range(len(num)): if num[offset] != 0: break else: offset += 1 self.num = num[offset:] + [0] * shift def __getitem__(self, index): return self.num[index] def __iter__(self): return iter(self.num) def __len__(self): return len(self.num) def __mul__(self, other): num = [0] * (len(self) + len(other) - 1) for i, item in enumerate(self): for j, other_item in enumerate(other): num[i + j] ^= gexp(glog(item) + glog(other_item)) return Polynomial(num, 0) def __mod__(self, other): difference = len(self) - len(other) if difference < 0: return self ratio = glog(self[0]) - glog(other[0]) num = [ item ^ gexp(glog(other_item) + ratio) for item, other_item in zip(self, other)] if difference: num.extend(self[-difference:]) # recursive call return Polynomial(num, 0) % other class RSBlock: def __init__(self, total_count, data_count): self.total_count = total_count self.data_count = data_count def rs_blocks(version, error_correction): if error_correction not in RS_BLOCK_OFFSET: # pragma: no cover raise Exception( "bad rs block @ version: %s / error_correction: %s" % (version, error_correction)) offset = RS_BLOCK_OFFSET[error_correction] rs_block = RS_BLOCK_TABLE[(version - 1) * 4 + offset] blocks = [] for i in range(0, len(rs_block), 3): count, total_count, data_count = rs_block[i:i + 3] for _ in range(count): blocks.append(RSBlock(total_count, data_count)) return blocks python-qrcode-7.3.1/qrcode/console_scripts.py000077500000000000000000000075451412565416000214000ustar00rootroot00000000000000#!/usr/bin/env python """ qr - Convert stdin (or the first argument) to a QR Code. When stdout is a tty the QR Code is printed to the terminal and when stdout is a pipe to a file an image is written. The default image format is PNG. """ import sys import optparse import os import qrcode # The next block is added to get the terminal to display properly on MS platforms if sys.platform.startswith(('win', 'cygwin')): # pragma: no cover import colorama colorama.init() default_factories = { 'pil': 'qrcode.image.pil.PilImage', 'pymaging': 'qrcode.image.pure.PymagingImage', 'svg': 'qrcode.image.svg.SvgImage', 'svg-fragment': 'qrcode.image.svg.SvgFragmentImage', 'svg-path': 'qrcode.image.svg.SvgPathImage', } error_correction = { 'L': qrcode.ERROR_CORRECT_L, 'M': qrcode.ERROR_CORRECT_M, 'Q': qrcode.ERROR_CORRECT_Q, 'H': qrcode.ERROR_CORRECT_H, } def main(args=None): if args is None: args = sys.argv[1:] from pkg_resources import get_distribution version = get_distribution('qrcode').version parser = optparse.OptionParser(usage=__doc__.strip(), version=version) parser.add_option( "--factory", help="Full python path to the image factory class to " "create the image with. You can use the following shortcuts to the " "built-in image factory classes: {}.".format( ", ".join(sorted(default_factories.keys())))) parser.add_option( "--optimize", type=int, help="Optimize the data by looking for chunks " "of at least this many characters that could use a more efficient " "encoding method. Use 0 to turn off chunk optimization.") parser.add_option( "--error-correction", type='choice', choices=sorted(error_correction.keys()), default='M', help="The error correction level to use. Choices are L (7%), " "M (15%, default), Q (25%), and H (30%).") parser.add_option( "--ascii", help="Print as ascii even if stdout is piped.", action="store_true") parser.add_option( "--output", help="The output file. If not specified, the image is sent to " "the standard output.") opts, args = parser.parse_args(args) qr = qrcode.QRCode( error_correction=error_correction[opts.error_correction]) if opts.factory: module = default_factories.get(opts.factory, opts.factory) if '.' not in module: parser.error("The image factory is not a full python path") module, name = module.rsplit('.', 1) imp = __import__(module, {}, [], [name]) image_factory = getattr(imp, name) else: image_factory = None if args: data = args[0] data = data.encode(errors="surrogateescape") else: # Use sys.stdin.buffer if available (Python 3) avoiding # UnicodeDecodeErrors. stdin_buffer = getattr(sys.stdin, 'buffer', sys.stdin) data = stdin_buffer.read() if opts.optimize is None: qr.add_data(data) else: qr.add_data(data, optimize=opts.optimize) if opts.output: img = qr.make_image(image_factory=image_factory) with open(opts.output, "wb") as out: img.save(out) else: if image_factory is None and (os.isatty(sys.stdout.fileno()) or opts.ascii): qr.print_ascii(tty=not opts.ascii) return img = qr.make_image(image_factory=image_factory) sys.stdout.flush() # Use sys.stdout.buffer if available (Python 3), avoiding # UnicodeDecodeErrors. stdout_buffer = getattr(sys.stdout, 'buffer', None) if not stdout_buffer: if sys.platform == 'win32': # pragma: no cover import msvcrt msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY) stdout_buffer = sys.stdout img.save(stdout_buffer) if __name__ == "__main__": main() python-qrcode-7.3.1/qrcode/constants.py000066400000000000000000000001521412565416000201630ustar00rootroot00000000000000# QR error correct levels ERROR_CORRECT_L = 1 ERROR_CORRECT_M = 0 ERROR_CORRECT_Q = 3 ERROR_CORRECT_H = 2 python-qrcode-7.3.1/qrcode/exceptions.py000066400000000000000000000000551412565416000203320ustar00rootroot00000000000000class DataOverflowError(Exception): pass python-qrcode-7.3.1/qrcode/image/000077500000000000000000000000001412565416000166615ustar00rootroot00000000000000python-qrcode-7.3.1/qrcode/image/__init__.py000066400000000000000000000000001412565416000207600ustar00rootroot00000000000000python-qrcode-7.3.1/qrcode/image/base.py000066400000000000000000000042651412565416000201540ustar00rootroot00000000000000import abc class BaseImage: """ Base QRCode image output class. """ kind = None allowed_kinds = None needs_context = False needs_processing = False def __init__(self, border, width, box_size, *args, **kwargs): self.border = border self.width = width self.box_size = box_size self.pixel_size = (self.width + self.border*2) * self.box_size self._img = self.new_image(**kwargs) @abc.abstractmethod def drawrect(self, row, col): """ Draw a single rectangle of the QR code. """ def drawrect_context(self, row, col, active, context): """ Draw a single rectangle of the QR code given the surrounding context """ raise NotImplementedError("BaseImage.drawrect_context") def process(self): """ Processes QR code after completion """ raise NotImplementedError("BaseImage.drawimage") @abc.abstractmethod def save(self, stream, kind=None): """ Save the image file. """ def pixel_box(self, row, col): """ A helper method for pixel-based image generators that specifies the four pixel coordinates for a single rect. """ x = (col + self.border) * self.box_size y = (row + self.border) * self.box_size return [(x, y), (x + self.box_size - 1, y + self.box_size - 1)] @abc.abstractmethod def new_image(self, **kwargs): """ Build the image class. Subclasses should return the class created. """ def get_image(self, **kwargs): """ Return the image class for further processing. """ return self._img def check_kind(self, kind, transform=None): """ Get the image type. """ if kind is None: kind = self.kind allowed = not self.allowed_kinds or kind in self.allowed_kinds if transform: kind = transform(kind) if not allowed: allowed = kind in self.allowed_kinds if not allowed: raise ValueError( f"Cannot set {type(self).__name__} type to {kind}") return kind python-qrcode-7.3.1/qrcode/image/pil.py000066400000000000000000000032521412565416000200210ustar00rootroot00000000000000# Needed on case-insensitive filesystems # Try to import PIL in either of the two ways it can be installed. try: from PIL import Image, ImageDraw except ImportError: # pragma: no cover import Image import ImageDraw import qrcode.image.base class PilImage(qrcode.image.base.BaseImage): """ PIL image builder, default format is PNG. """ kind = "PNG" def new_image(self, **kwargs): back_color = kwargs.get("back_color", "white") fill_color = kwargs.get("fill_color", "black") try: fill_color = fill_color.lower() except AttributeError: pass try: back_color = back_color.lower() except AttributeError: pass # L mode (1 mode) color = (r*299 + g*587 + b*114)//1000 if fill_color == "black" and back_color == "white": mode = "1" fill_color = 0 if back_color == "white": back_color = 255 elif back_color == "transparent": mode = "RGBA" back_color = None else: mode = "RGB" img = Image.new(mode, (self.pixel_size, self.pixel_size), back_color) self.fill_color = fill_color self._idr = ImageDraw.Draw(img) return img def drawrect(self, row, col): box = self.pixel_box(row, col) self._idr.rectangle(box, fill=self.fill_color) def save(self, stream, format=None, **kwargs): kind = kwargs.pop("kind", self.kind) if format is None: format = kind self._img.save(stream, format=format, **kwargs) def __getattr__(self, name): return getattr(self._img, name) python-qrcode-7.3.1/qrcode/image/pure.py000066400000000000000000000026061412565416000202120ustar00rootroot00000000000000from pymaging import Image from pymaging.colors import RGB from pymaging.formats import registry from pymaging.shapes import Line from pymaging.webcolors import Black, White from pymaging_png.png import PNG import qrcode.image.base class PymagingImage(qrcode.image.base.BaseImage): """ pymaging image builder, default format is PNG. """ kind = "PNG" allowed_kinds = ("PNG",) def __init__(self, *args, **kwargs): """ Register PNG with pymaging. """ registry.formats = [] registry.names = {} registry._populate() registry.register(PNG) super().__init__(*args, **kwargs) def new_image(self, **kwargs): return Image.new(RGB, self.pixel_size, self.pixel_size, White) def drawrect(self, row, col): (x, y), (x2, y2) = self.pixel_box(row, col) for r in range(self.box_size): line_y = y + r line = Line(x, line_y, x2, line_y) self._img.draw(line, Black) def save(self, stream, kind=None): self._img.save(stream, self.check_kind(kind)) def check_kind(self, kind, transform=None, **kwargs): """ pymaging (pymaging_png at least) uses lower case for the type. """ if transform is None: transform = lambda x: x.lower() return super().check_kind( kind, transform=transform, **kwargs) python-qrcode-7.3.1/qrcode/image/styledpil.py000066400000000000000000000121731412565416000212500ustar00rootroot00000000000000# Needed on case-insensitive filesystems from __future__ import absolute_import # Try to import PIL in either of the two ways it can be installed. try: from PIL import Image, ImageDraw except ImportError: # pragma: no cover import Image import ImageDraw import qrcode.image.base from qrcode.image.styles.colormasks import SolidFillColorMask from qrcode.image.styles.moduledrawers import SquareModuleDrawer class StyledPilImage(qrcode.image.base.BaseImage): """ Styled PIL image builder, default format is PNG. This differs from the PilImage in that there is a module_drawer, a color_mask, and an optional image The module_drawer should extend the QRModuleDrawer class and implement the drawrect_context(self, box, active, context), and probably also the intitialize function. This will draw an individual "module" or square on the QR code. The color_mask will extend the QRColorMask class and will at very least implement the get_fg_pixel(image, x, y) function, calculating a color to put on the image at the pixel location (x,y) (more advanced functionality can be gotten by instead overriding other functions defined in the QRColorMask class) The Image can be specified either by path or with a Pillow Image, and if it is there will be placed in the middle of the QR code. No effort is done to ensure that the QR code is still legible after the image has been placed there; Q or H level error correction levels are recommended to maintain data integrity A resampling filter can be specified (defaulting to PIL.Image.LANCZOS) for resizing; see PIL.Image.resize() for possible options for this parameter. """ kind = "PNG" needs_context = True needs_processing = True def new_image(self, **kwargs): self.color_mask = kwargs.get("color_mask", SolidFillColorMask()) self.module_drawer = kwargs.get("module_drawer", SquareModuleDrawer()) # The eye drawer can be overridden by another module drawer as well, but you have to be more careful with these in order to # make the QR code still parseable self.eye_drawer = kwargs.get("eye_drawer", SquareModuleDrawer()) embeded_image_path = kwargs.get("embeded_image_path", None) self.embeded_image = kwargs.get("embeded_image", None) self.embeded_image_resample = kwargs.get("embeded_image_resample", Image.LANCZOS) if not self.embeded_image and embeded_image_path: self.embeded_image = Image.open(embeded_image_path) mode = "RGBA" if (self.color_mask.has_transparency or (self.embeded_image and 'A' in self.embeded_image.getbands())) else "RGB" self.mode = mode self.back_color = self.color_mask.back_color # This is the background color. Should be white or whiteish img = Image.new(mode, (self.pixel_size, self.pixel_size), self.back_color) # the paint_color is the color the module drawer will use to draw upon a canvas # During the color mask process, pixels that are paint_color are replaced by a newly-calculated color self.paint_color = tuple(0 for i in self.color_mask.back_color) if self.color_mask.has_transparency: self.paint_color = tuple([*self.color_mask.back_color[:3], 255]) self.color_mask.initialize(self, img) self.module_drawer.initialize(self, img) self.eye_drawer.initialize(self, img) return img def drawrect_context(self, row, col, is_active, context): box = self.pixel_box(row, col) if self.is_eye(row, col): self.eye_drawer.drawrect_context(box, is_active, context) else: self.module_drawer.drawrect_context(box, is_active, context) def process(self): self.color_mask.apply_mask(self._img) if self.embeded_image: self.draw_embeded_image() def draw_embeded_image(self): total_width,_ = self._img.size total_width = int(total_width) logo_width_ish = int(total_width / 4) logo_offset = int( (int(total_width / 2) - int(logo_width_ish / 2)) / self.box_size) * self.box_size # round the offset to the nearest module logo_position = (logo_offset, logo_offset) logo_width = total_width - logo_offset*2 region = self.embeded_image region = region.resize((logo_width, logo_width), self.embeded_image_resample) if 'A' in region.getbands(): self._img.alpha_composite(region, logo_position) else: self._img.paste(region, logo_position) # The eyes are treated differently, and this will find whether the referenced module is in an eye def is_eye(self, row, col): return ( (row < 7 and col < 7) or (row < 7 and self.width - col < 8) or (self.width - row < 8 and col < 7) ) def save(self, stream, format=None, **kwargs): if format is None: format = kwargs.get("kind", self.kind) if "kind" in kwargs: del kwargs["kind"] self._img.save(stream, format=format, **kwargs) def __getattr__(self, name): return getattr(self._img, name) python-qrcode-7.3.1/qrcode/image/styles/000077500000000000000000000000001412565416000202045ustar00rootroot00000000000000python-qrcode-7.3.1/qrcode/image/styles/__init__.py000066400000000000000000000000001412565416000223030ustar00rootroot00000000000000python-qrcode-7.3.1/qrcode/image/styles/colormasks.py000066400000000000000000000161121412565416000227340ustar00rootroot00000000000000# Needed on case-insensitive filesystems from __future__ import absolute_import # Try to import PIL in either of the two ways it can be installed. try: from PIL import Image, ImageDraw except ImportError: # pragma: no cover import Image import ImageDraw import math class QRColorMask: """ QRColorMask is used to color in the QRCode. By the time apply_mask is called, the QRModuleDrawer of the StyledPilImage will have drawn all of the modules on the canvas (the color of these modules will be mostly black, although antialiasing may result in gradiants) In the base class, apply_mask is implemented such that the background color will remain, but the foreground pixels will be replaced by a color determined by a call to get_fg_pixel. There is additional calculation done to preserve the gradiant artifacts of antialiasing All QRColorMask objects should be careful about RGB vs RGBA color spaces For examples of what these look like, see doc/color_masks.png """ back_color = (255,255,255) has_transparency = False paint_color = back_color def initialize(self, styledPilImage, image): self.paint_color = styledPilImage.paint_color def apply_mask(self, image): width, height = image.size for x in range(width): for y in range(height): norm = self.extrap_color(self.back_color, self.paint_color, image.getpixel((x,y))) if norm is not None: image.putpixel((x,y), self.interp_color(self.get_bg_pixel(image, x,y), self.get_fg_pixel(image, x,y), norm)) else: image.putpixel((x,y), self.get_bg_pixel(image, x,y)) def get_fg_pixel(self, image, x, y): raise NotImplementedError("QRModuleDrawer.paint_fg_pixel") def get_bg_pixel(self, image, x, y): return self.back_color # The following functions are helpful for color calculation: # interpolate a number between two numbers def interp_num(self, n1, n2, norm): return int(n2 * norm + n1 * (1-norm)) # interpolate a color between two colorrs def interp_color(self, col1, col2, norm): return tuple(self.interp_num(col1[i], col2[i], norm) for i in range(len(col1))) # find the interpolation coefficient between two numbers def extrap_num(self, n1, n2, interped_num): if n2 == n1: return None else: return (interped_num - n1) / (n2 - n1) # find the interpolation coefficient between two numbers def extrap_color(self, col1, col2, interped_color): normed = list(filter(lambda i: i is not None, [self.extrap_num(col1[i], col2[i], interped_color[i]) for i in range(len(col1))])) if not normed: return None else: return sum(normed) / len(normed) class SolidFillColorMask(QRColorMask): """ Just fills in the background with one color and the foreground with another """ def __init__(self, back_color = (255,255,255), front_color = (0,0,0)): self.back_color = back_color self.front_color = front_color self.has_transparency = len(self.back_color) == 4 def apply_mask(self, image): if self.back_color == (255,255,255) and self.front_color == (0,0,0): # Optimization: the image is already drawn by QRModuleDrawer in black and white, # so if these are also our mask colors we don't need to do anything. # This is much faster than actually applying a mask. pass else: # TODO there's probably a way to use PIL.ImageMath instead of doing the individual pixel comparisons # that the base class uses, which would be a lot faster. (In fact doing this would probably remove # the need for the B&W optimization above.) QRColorMask.apply_mask(self, image) def get_fg_pixel(self, image, x, y): return self.front_color class RadialGradiantColorMask(QRColorMask): """ Fills in the foreground with a radial gradiant from the center to the edge """ def __init__(self, back_color = (255,255,255), center_color = (0,0,0), edge_color = (0,0,255)): self.back_color = back_color self.center_color = center_color self.edge_color = edge_color self.has_transparency = len(self.back_color) == 4 def get_fg_pixel(self, image, x, y): width, _ = image.size normedDistanceToCenter = math.sqrt((x - width/2) ** 2 + (y - width/2) ** 2) / (math.sqrt(2) * width/2) return self.interp_color(self.center_color, self.edge_color, normedDistanceToCenter) class SquareGradiantColorMask(QRColorMask): """ Fills in the foreground with a square gradiant from the center to the edge """ def __init__(self, back_color = (255,255,255), center_color = (0,0,0), edge_color = (0,0,255)): self.back_color = back_color self.center_color = center_color self.edge_color = edge_color self.has_transparency = len(self.back_color) == 4 def get_fg_pixel(self, image, x, y): width,_ = image.size normedDistanceToCenter = max(abs(x - width/2), abs(y - width/2)) / (width/2) return self.interp_color(self.center_color, self.edge_color, normedDistanceToCenter) class HorizontalGradiantColorMask(QRColorMask): """ Fills in the foreground with a gradiant sweeping from the left to the right """ def __init__(self, back_color = (255,255,255), left_color = (0,0,0), right_color = (0,0,255)): self.back_color = back_color self.left_color = left_color self.right_color = right_color self.has_transparency = len(self.back_color) == 4 def get_fg_pixel(self, image, x, y): width,_ = image.size return self.interp_color(self.left_color, self.right_color, x / width) class VerticalGradiantColorMask(QRColorMask): """ Fills in the forefround with a gradiant sweeping from the top to the bottom """ def __init__(self, back_color = (255,255,255), top_color = (0,0,0), bottom_color = (0,0,255)): self.back_color = back_color self.top_color = top_color self.bottom_color = bottom_color self.has_transparency = len(self.back_color) == 4 def get_fg_pixel(self, image, x, y): width,_ = image.size return self.interp_color(self.top_color, self.bottom_color, y / width) class ImageColorMask(QRColorMask): """ Fills in the foreground with pixels from another image, either passed by path or passed by image object """ def __init__(self, back_color = (255,255,255), color_mask_path=None, color_mask_image=None): self.back_color = back_color if color_mask_image: self.color_img = color_mask_image else: self.color_img = Image.open(color_mask_path) self.has_transparency = len(self.back_color) == 4 def initialize(self, styledPilImage, image): self.paint_color = styledPilImage.paint_color self.color_img = self.color_img.resize(image.size) def get_fg_pixel(self, image, x, y): width,_ = image.size return self.color_img.getpixel((x,y)) python-qrcode-7.3.1/qrcode/image/styles/moduledrawers.py000066400000000000000000000244631412565416000234440ustar00rootroot00000000000000# Needed on case-insensitive filesystems from __future__ import absolute_import # Try to import PIL in either of the two ways it can be installed. try: from PIL import Image, ImageDraw except ImportError: # pragma: no cover import Image import ImageDraw # When drawing antialiased things, make them bigger and then shrink them down to size after the geometry has been drawn ANTIALIASING_FACTOR = 4 class QRModuleDrawer: """ QRModuleDrawer exists to draw the modules of the QR Code onto a PIL image For this, technically all that is necessary is a drawrect_context(self, box, is_active, context) function which takes in the box in which it is to draw, whether or not the box is "active" (a module exists there), and the context (the neighboring pixels) It is frequently necessary to also implement an "initialize" function to set up values that only the containing StyledPilImage knows about. NOTE: the color that this draws in should be whatever is equivalent to black in the color space, and the specified QRColorMask will handle adding colors as necessary to the image For examples of what these look like, see doc/module_drawers.png """ fill = None def initialize(self, styledPilImage, image): self.fill = styledPilImage.paint_color def drawrect_context(self, box, is_active, context): raise NotImplementedError("QRModuleDrawer.drawrect_context") # helper for figuring out the context, which is an array containing information on neighboring pixels # I refer to these by their cardinal directions, like: # [NW, N, NE, # W, E, # SW, S, SE] DIRECTIONS = { 'NW': 0, 'N': 1, 'NE': 2, 'W': 3, 'E': 4, 'SW': 5, 'S': 6, 'SE': 7 } def get(self, context, direction): return context[self.DIRECTIONS[direction]] class SquareModuleDrawer(QRModuleDrawer): """ Draws the modules as simple squares """ fill = None def initialize(self, styledPilImage, image): self.imgDraw = ImageDraw.Draw(image) self.fill = styledPilImage.paint_color def drawrect_context(self, box, is_active, context): if is_active: self.imgDraw.rectangle(box, fill=self.fill) class GappedSquareModuleDrawer(QRModuleDrawer): """ Draws the modules as simple squares that are not contiguous. The size_ratio determines how wide the squares are relative to the width of the space they are printed in """ fill = None def __init__(self, size_ratio = 0.8): self.size_ratio = size_ratio def initialize(self, styledPilImage, image): self.imgDraw = ImageDraw.Draw(image) self.fill = styledPilImage.paint_color self.delta = (1 - self.size_ratio) * styledPilImage.box_size / 2 def drawrect_context(self, box, is_active, context): if is_active: smaller_box = ( box[0][0] + self.delta, box[0][1] + self.delta, box[1][0] - self.delta, box[1][1] - self.delta ) self.imgDraw.rectangle(smaller_box, fill=self.fill) class CircleModuleDrawer(QRModuleDrawer): """ Draws the modules as circles """ circle = None def initialize(self, styledPilImage, image): box_size = styledPilImage.box_size fake_size = box_size * ANTIALIASING_FACTOR self.circle = Image.new(styledPilImage.mode,(fake_size, fake_size), styledPilImage.color_mask.back_color) ImageDraw.Draw(self.circle).ellipse((0,0, fake_size, fake_size), fill = styledPilImage.paint_color) self.circle = self.circle.resize((box_size, box_size), Image.LANCZOS) self.image = image def drawrect_context(self, box, is_active, context): if is_active: self.image.paste(self.circle, (box[0][0], box[0][1])) class RoundedModuleDrawer(QRModuleDrawer): """ Draws the modules with all 90 degree corners replaced with rounded edges radius_ratio determines the radius of the rounded edges - a value of 1 means that an isolated module will be drawn as a circle, while a value of 0 means that the radius of the rounded edge will be 0 (and thus back to 90 degrees again) """ def __init__(self, radius_ratio = 1): self.radius_ratio = radius_ratio def initialize(self, styledPilImage, image): self.corner_width = int(styledPilImage.box_size / 2) self.image = image self.setup_corners(styledPilImage.mode, styledPilImage.color_mask.back_color, styledPilImage.paint_color) def setup_corners(self, mode, back_color, front_color): self.SQUARE = Image.new(mode, (self.corner_width, self.corner_width), front_color) fake_width = self.corner_width * ANTIALIASING_FACTOR radius = self.radius_ratio * fake_width diameter = radius * 2 base = Image.new(mode, (fake_width, fake_width), back_color) # make something 4x bigger for antialiasing base_draw = ImageDraw.Draw(base) base_draw.ellipse((0,0, diameter, diameter), fill = front_color) base_draw.rectangle((radius, 0, fake_width, fake_width), fill = front_color) base_draw.rectangle((0, radius, fake_width, fake_width), fill = front_color) self.NW_ROUND = base.resize((self.corner_width, self.corner_width), Image.LANCZOS) self.SW_ROUND = self.NW_ROUND.transpose(Image.FLIP_TOP_BOTTOM) self.SE_ROUND = self.NW_ROUND.transpose(Image.ROTATE_180) self.NE_ROUND = self.NW_ROUND.transpose(Image.FLIP_LEFT_RIGHT) def drawrect_context(self, box, is_active, context): if not is_active: return # find rounded edges nw_rounded = not self.get(context, 'W') and not self.get(context, 'N') ne_rounded = not self.get(context, 'N') and not self.get(context, 'E') se_rounded = not self.get(context, 'E') and not self.get(context, 'S') sw_rounded = not self.get(context, 'S') and not self.get(context, 'W') nw = self.NW_ROUND if nw_rounded else self.SQUARE ne = self.NE_ROUND if ne_rounded else self.SQUARE se = self.SE_ROUND if se_rounded else self.SQUARE sw = self.SW_ROUND if sw_rounded else self.SQUARE self.image.paste(nw, (box[0][0], box[0][1])) self.image.paste(ne, (box[0][0] + self.corner_width, box[0][1])) self.image.paste(se, (box[0][0] + self.corner_width, box[0][1] + self.corner_width)) self.image.paste(sw, (box[0][0], box[0][1] + self.corner_width)) class VerticalBarsDrawer(QRModuleDrawer): """ Draws vertically contiguous groups of modules as long rounded rectangles, with gaps between neighboring bands (the size of these gaps is inversely proportional to the horizontal_shrink) """ def __init__(self, horizontal_shrink = 0.8): self.horizontal_shrink = horizontal_shrink def initialize(self, styledPilImage, image): self.half_height = int(styledPilImage.box_size / 2) self.image = image self.delta = int((1-self.horizontal_shrink) * self.half_height) self.setup_edges(styledPilImage.mode, styledPilImage.color_mask.back_color, styledPilImage.paint_color) def setup_edges(self, mode, back_color, front_color): height = self.half_height width = height * 2 shrunken_width = int(width * self.horizontal_shrink) self.SQUARE = Image.new(mode, (shrunken_width, height), front_color) fake_width = width * ANTIALIASING_FACTOR fake_height = height * ANTIALIASING_FACTOR radius = fake_width base = Image.new(mode, (fake_width, fake_height), back_color) # make something 4x bigger for antialiasing base_draw = ImageDraw.Draw(base) base_draw.ellipse((0,0, fake_width, fake_height * 2), fill = front_color) self.ROUND_TOP = base.resize((shrunken_width, height), Image.LANCZOS) self.ROUND_BOTTOM = self.ROUND_TOP.transpose(Image.FLIP_TOP_BOTTOM) def drawrect_context(self, box, is_active, context): if is_active: # find rounded edges top_rounded = not self.get(context, 'N') bottom_rounded = not self.get(context, 'S') top = self.ROUND_TOP if top_rounded else self.SQUARE bottom = self.ROUND_BOTTOM if bottom_rounded else self.SQUARE self.image.paste(top, (box[0][0] + self.delta, box[0][1])) self.image.paste(bottom, (box[0][0] + self.delta, box[0][1] + self.half_height)) class HorizontalBarsDrawer(QRModuleDrawer): """ Draws horizontally contiguous groups of modules as long rounded rectangles, with gaps between neighboring bands (the size of these gaps is inversely proportional to the vertical_shrink) """ def __init__(self, vertical_shrink = 0.8): self.vertical_shrink = vertical_shrink def initialize(self, styledPilImage, image): self.half_width = int(styledPilImage.box_size / 2) self.image = image self.delta = int((1-self.vertical_shrink) * self.half_width) self.setup_edges(styledPilImage.mode, styledPilImage.color_mask.back_color, styledPilImage.paint_color) def setup_edges(self, mode, back_color, front_color): width = self.half_width height = width * 2 shrunken_height= int(height * self.vertical_shrink) self.SQUARE = Image.new(mode, (width, shrunken_height), front_color) fake_width = width * ANTIALIASING_FACTOR fake_height = height * ANTIALIASING_FACTOR radius = fake_height base = Image.new(mode, (fake_width, fake_height), back_color) # make something 4x bigger for antialiasing base_draw = ImageDraw.Draw(base) base_draw.ellipse((0,0, fake_width * 2, fake_height), fill = front_color) self.ROUND_LEFT = base.resize((width, shrunken_height), Image.LANCZOS) self.ROUND_RIGHT = self.ROUND_LEFT.transpose(Image.FLIP_LEFT_RIGHT) def drawrect_context(self, box, is_active, context): if is_active: # find rounded edges left_rounded = not self.get(context, 'W') right_rounded = not self.get(context, 'E') left = self.ROUND_LEFT if left_rounded else self.SQUARE right = self.ROUND_RIGHT if right_rounded else self.SQUARE self.image.paste(left, (box[0][0], box[0][1] + self.delta)) self.image.paste(right, (box[0][0] + self.half_width, box[0][1] + self.delta)) python-qrcode-7.3.1/qrcode/image/svg.py000066400000000000000000000112311412565416000200300ustar00rootroot00000000000000from decimal import Decimal try: import lxml.etree as ET except ImportError: import xml.etree.ElementTree as ET import qrcode.image.base class SvgFragmentImage(qrcode.image.base.BaseImage): """ SVG image builder Creates a QR-code image as a SVG document fragment. """ _SVG_namespace = "http://www.w3.org/2000/svg" kind = "SVG" allowed_kinds = ("SVG",) def __init__(self, *args, **kwargs): ET.register_namespace("svg", self._SVG_namespace) super().__init__(*args, **kwargs) # Save the unit size, for example the default box_size of 10 is '1mm'. self.unit_size = self.units(self.box_size) def drawrect(self, row, col): self._img.append(self._rect(row, col)) def units(self, pixels, text=True): """ A box_size of 10 (default) equals 1mm. """ units = Decimal(pixels) / 10 if not text: return units return '%smm' % units def save(self, stream, kind=None): self.check_kind(kind=kind) self._write(stream) def to_string(self): return ET.tostring(self._img) def new_image(self, **kwargs): return self._svg() def _svg(self, tag=None, version='1.1', **kwargs): if tag is None: tag = ET.QName(self._SVG_namespace, "svg") dimension = self.units(self.pixel_size) return ET.Element( tag, width=dimension, height=dimension, version=version, **kwargs) def _rect(self, row, col, tag=None): if tag is None: tag = ET.QName(self._SVG_namespace, "rect") x, y = self.pixel_box(row, col)[0] return ET.Element( tag, x=self.units(x), y=self.units(y), width=self.unit_size, height=self.unit_size) def _write(self, stream): ET.ElementTree(self._img).write(stream, xml_declaration=False) class SvgImage(SvgFragmentImage): """ Standalone SVG image builder Creates a QR-code image as a standalone SVG document. """ background = None def _svg(self, tag='svg', **kwargs): svg = super()._svg(tag=tag, **kwargs) svg.set("xmlns", self._SVG_namespace) if self.background: svg.append( ET.Element( 'rect', fill=self.background, x='0', y='0', width='100%', height='100%')) return svg def _rect(self, row, col): return super()._rect(row, col, tag="rect") def _write(self, stream): ET.ElementTree(self._img).write(stream, encoding="UTF-8", xml_declaration=True) class SvgPathImage(SvgImage): """ SVG image builder with one single element (removes white spaces between individual QR points). """ QR_PATH_STYLE = {'fill': '#000000', 'fill-opacity': '1', 'fill-rule': 'nonzero', 'stroke': 'none'} def __init__(self, *args, **kwargs): self._points = set() super().__init__(*args, **kwargs) def _svg(self, viewBox=None, **kwargs): if viewBox is None: dimension = self.units(self.pixel_size, text=False) viewBox = '0 0 {d} {d}'.format(d=dimension) return super()._svg(viewBox=viewBox, **kwargs) def drawrect(self, row, col): # (x, y) self._points.add((col, row)) def _generate_subpaths(self): """Generates individual QR points as subpaths""" rect_size = self.units(self.box_size, text=False) for point in self._points: x_base = self.units( (point[0]+self.border)*self.box_size, text=False) y_base = self.units( (point[1]+self.border)*self.box_size, text=False) yield ( 'M %(x0)s %(y0)s L %(x0)s %(y1)s L %(x1)s %(y1)s L %(x1)s ' '%(y0)s z' % dict( x0=x_base, y0=y_base, x1=x_base+rect_size, y1=y_base+rect_size, )) def make_path(self): subpaths = self._generate_subpaths() return ET.Element( ET.QName("path"), d=' '.join(subpaths), id="qr-path", **self.QR_PATH_STYLE ) def to_string(self): img = self._img.__copy__() img.append(self.make_path()) return ET.tostring(img) def _write(self, stream): self._img.append(self.make_path()) super()._write(stream) class SvgFillImage(SvgImage): """ An SvgImage that fills the background to white. """ background = 'white' class SvgPathFillImage(SvgPathImage): """ An SvgPathImage that fills the background to white. """ background = 'white' python-qrcode-7.3.1/qrcode/main.py000066400000000000000000000347721412565416000171120ustar00rootroot00000000000000from qrcode import constants, exceptions, util from qrcode.image.base import BaseImage import sys from bisect import bisect_left # Cache modules generated just based on the QR Code version precomputed_qr_blanks = {} def make(data=None, **kwargs): qr = QRCode(**kwargs) qr.add_data(data) return qr.make_image() def _check_box_size(size): if int(size) <= 0: raise ValueError( f"Invalid box size (was {size}, expected larger than 0)") def _check_border(size): if int(size) < 0: raise ValueError("Invalid border value (was %s, expected 0 or larger than that)" % size) def _check_mask_pattern(mask_pattern): if mask_pattern is None: return if not isinstance(mask_pattern, int): raise TypeError( f"Invalid mask pattern (was {type(mask_pattern)}, expected int)") if mask_pattern < 0 or mask_pattern > 7: raise ValueError( f"Mask pattern should be in range(8) (got {mask_pattern})") def copy_2d_array(x): return [row[:] for row in x] class QRCode: def __init__(self, version=None, error_correction=constants.ERROR_CORRECT_M, box_size=10, border=4, image_factory=None, mask_pattern=None): _check_box_size(box_size) _check_border(border) self.version = version and int(version) self.error_correction = int(error_correction) self.box_size = int(box_size) # Spec says border should be at least four boxes wide, but allow for # any (e.g. for producing printable QR codes). self.border = int(border) self.mask_pattern = mask_pattern self.image_factory = image_factory if image_factory is not None: assert issubclass(image_factory, BaseImage) self.clear() @property def mask_pattern(self): return self._mask_pattern @mask_pattern.setter def mask_pattern(self, pattern): _check_mask_pattern(pattern) self._mask_pattern = pattern def clear(self): """ Reset the internal data. """ self.modules = None self.modules_count = 0 self.data_cache = None self.data_list = [] def add_data(self, data, optimize=20): """ Add data to this QR Code. :param optimize: Data will be split into multiple chunks to optimize the QR size by finding to more compressed modes of at least this length. Set to ``0`` to avoid optimizing at all. """ if isinstance(data, util.QRData): self.data_list.append(data) elif optimize: self.data_list.extend( util.optimal_data_chunks(data, minimum=optimize)) else: self.data_list.append(util.QRData(data)) self.data_cache = None def make(self, fit=True): """ Compile the data into a QR Code array. :param fit: If ``True`` (or if a size has not been provided), find the best fit for the data to avoid data overflow errors. """ if fit or (self.version is None): self.best_fit(start=self.version) if self.mask_pattern is None: self.makeImpl(False, self.best_mask_pattern()) else: self.makeImpl(False, self.mask_pattern) def makeImpl(self, test, mask_pattern): util.check_version(self.version) self.modules_count = self.version * 4 + 17 if self.version in precomputed_qr_blanks: self.modules = copy_2d_array(precomputed_qr_blanks[self.version]) else: self.modules = [None] * self.modules_count for row in range(self.modules_count): self.modules[row] = [None] * self.modules_count self.setup_position_probe_pattern(0, 0) self.setup_position_probe_pattern(self.modules_count - 7, 0) self.setup_position_probe_pattern(0, self.modules_count - 7) self.setup_position_adjust_pattern() self.setup_timing_pattern() precomputed_qr_blanks[self.version] = copy_2d_array(self.modules) self.setup_type_info(test, mask_pattern) if self.version >= 7: self.setup_type_number(test) if self.data_cache is None: self.data_cache = util.create_data( self.version, self.error_correction, self.data_list) self.map_data(self.data_cache, mask_pattern) def setup_position_probe_pattern(self, row, col): for r in range(-1, 8): if row + r <= -1 or self.modules_count <= row + r: continue for c in range(-1, 8): if col + c <= -1 or self.modules_count <= col + c: continue if ( (0 <= r <= 6 and c in {0, 6}) or (0 <= c <= 6 and r in {0, 6}) or (2 <= r <= 4 and 2 <= c <= 4) ): self.modules[row + r][col + c] = True else: self.modules[row + r][col + c] = False def best_fit(self, start=None): """ Find the minimum size required to fit in the data. """ if start is None: start = 1 util.check_version(start) # Corresponds to the code in util.create_data, except we don't yet know # version, so optimistically assume start and check later mode_sizes = util.mode_sizes_for_version(start) buffer = util.BitBuffer() for data in self.data_list: buffer.put(data.mode, 4) buffer.put(len(data), mode_sizes[data.mode]) data.write(buffer) needed_bits = len(buffer) self.version = bisect_left(util.BIT_LIMIT_TABLE[self.error_correction], needed_bits, start) if self.version == 41: raise exceptions.DataOverflowError() # Now check whether we need more bits for the mode sizes, recursing if # our guess was too low if mode_sizes is not util.mode_sizes_for_version(self.version): self.best_fit(start=self.version) return self.version def best_mask_pattern(self): """ Find the most efficient mask pattern. """ min_lost_point = 0 pattern = 0 for i in range(8): self.makeImpl(True, i) lost_point = util.lost_point(self.modules) if i == 0 or min_lost_point > lost_point: min_lost_point = lost_point pattern = i return pattern def print_tty(self, out=None): """ Output the QR Code only using TTY colors. If the data has not been compiled yet, make it first. """ if out is None: import sys out = sys.stdout if not out.isatty(): raise OSError("Not a tty") if self.data_cache is None: self.make() modcount = self.modules_count out.write("\x1b[1;47m" + (" " * (modcount * 2 + 4)) + "\x1b[0m\n") for r in range(modcount): out.write("\x1b[1;47m \x1b[40m") for c in range(modcount): if self.modules[r][c]: out.write(" ") else: out.write("\x1b[1;47m \x1b[40m") out.write("\x1b[1;47m \x1b[0m\n") out.write("\x1b[1;47m" + (" " * (modcount * 2 + 4)) + "\x1b[0m\n") out.flush() def print_ascii(self, out=None, tty=False, invert=False): """ Output the QR Code using ASCII characters. :param tty: use fixed TTY color codes (forces invert=True) :param invert: invert the ASCII characters (solid <-> transparent) """ if out is None: out = sys.stdout if tty and not out.isatty(): raise OSError("Not a tty") if self.data_cache is None: self.make() modcount = self.modules_count codes = [bytes((code,)).decode('cp437') for code in (255, 223, 220, 219)] if tty: invert = True if invert: codes.reverse() def get_module(x, y): if (invert and self.border and max(x, y) >= modcount+self.border): return 1 if min(x, y) < 0 or max(x, y) >= modcount: return 0 return self.modules[x][y] for r in range(-self.border, modcount+self.border, 2): if tty: if not invert or r < modcount+self.border-1: out.write('\x1b[48;5;232m') # Background black out.write('\x1b[38;5;255m') # Foreground white for c in range(-self.border, modcount+self.border): pos = get_module(r, c) + (get_module(r+1, c) << 1) out.write(codes[pos]) if tty: out.write('\x1b[0m') out.write('\n') out.flush() def make_image(self, image_factory=None, **kwargs): """ Make an image from the QR Code data. If the data has not been compiled yet, make it first. """ _check_box_size(self.box_size) if self.data_cache is None: self.make() if image_factory is not None: assert issubclass(image_factory, BaseImage) else: image_factory = self.image_factory if image_factory is None: # Use PIL by default from qrcode.image.pil import PilImage image_factory = PilImage im = image_factory( self.border, self.modules_count, self.box_size, **kwargs) for r in range(self.modules_count): for c in range(self.modules_count): if im.needs_context: im.drawrect_context(r, c, self.modules[r][c], self.get_module_context(r,c)) elif self.modules[r][c]: im.drawrect(r,c) if im.needs_processing: im.process() return im # return true if and only if (row, col) is in the module def is_constrained(self, row, col): return row >= 0 and row < len(self.modules) and col >= 0 and col < len(self.modules[row]) def get_module_context(self, row, col): context = [] for r in range(row-1,row + 2): for c in range(col - 1, col + 2): if r != row or c != col: context.append(self.is_constrained(r,c) and self.modules[r][c]) return context def setup_timing_pattern(self): for r in range(8, self.modules_count - 8): if self.modules[r][6] is not None: continue self.modules[r][6] = (r % 2 == 0) for c in range(8, self.modules_count - 8): if self.modules[6][c] is not None: continue self.modules[6][c] = (c % 2 == 0) def setup_position_adjust_pattern(self): pos = util.pattern_position(self.version) for i in range(len(pos)): row = pos[i] for j in range(len(pos)): col = pos[j] if self.modules[row][col] is not None: continue for r in range(-2, 3): for c in range(-2, 3): if (r == -2 or r == 2 or c == -2 or c == 2 or (r == 0 and c == 0)): self.modules[row + r][col + c] = True else: self.modules[row + r][col + c] = False def setup_type_number(self, test): bits = util.BCH_type_number(self.version) for i in range(18): mod = (not test and ((bits >> i) & 1) == 1) self.modules[i // 3][i % 3 + self.modules_count - 8 - 3] = mod for i in range(18): mod = (not test and ((bits >> i) & 1) == 1) self.modules[i % 3 + self.modules_count - 8 - 3][i // 3] = mod def setup_type_info(self, test, mask_pattern): data = (self.error_correction << 3) | mask_pattern bits = util.BCH_type_info(data) # vertical for i in range(15): mod = (not test and ((bits >> i) & 1) == 1) if i < 6: self.modules[i][8] = mod elif i < 8: self.modules[i + 1][8] = mod else: self.modules[self.modules_count - 15 + i][8] = mod # horizontal for i in range(15): mod = (not test and ((bits >> i) & 1) == 1) if i < 8: self.modules[8][self.modules_count - i - 1] = mod elif i < 9: self.modules[8][15 - i - 1 + 1] = mod else: self.modules[8][15 - i - 1] = mod # fixed module self.modules[self.modules_count - 8][8] = (not test) def map_data(self, data, mask_pattern): inc = -1 row = self.modules_count - 1 bitIndex = 7 byteIndex = 0 mask_func = util.mask_func(mask_pattern) data_len = len(data) for col in range(self.modules_count - 1, 0, -2): if col <= 6: col -= 1 col_range = (col, col-1) while True: for c in col_range: if self.modules[row][c] is None: dark = False if byteIndex < data_len: dark = (((data[byteIndex] >> bitIndex) & 1) == 1) if mask_func(row, c): dark = not dark self.modules[row][c] = dark bitIndex -= 1 if bitIndex == -1: byteIndex += 1 bitIndex = 7 row += inc if row < 0 or self.modules_count <= row: row -= inc inc = -inc break def get_matrix(self): """ Return the QR Code as a multidimensional array, including the border. To return the array without a border, set ``self.border`` to 0 first. """ if self.data_cache is None: self.make() if not self.border: return self.modules width = len(self.modules) + self.border*2 code = [[False]*width] * self.border x_border = [False]*self.border for module in self.modules: code.append(x_border + module + x_border) code += [[False]*width] * self.border return code python-qrcode-7.3.1/qrcode/release.py000066400000000000000000000020671412565416000175760ustar00rootroot00000000000000""" This file provides zest.releaser entrypoints using when releasing new qrcode versions. """ import os import re import datetime def update_manpage(data): """ Update the version in the manpage document. """ if data['name'] != 'qrcode': return base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) filename = os.path.join(base_dir, 'doc', 'qr.1') with open(filename) as f: lines = f.readlines() changed = False for i, line in enumerate(lines): if not line.startswith('.TH '): continue parts = re.split(r'"([^"]*)"', line) if len(parts) < 5: continue changed = parts[3] != data['new_version'] if changed: # Update version parts[3] = data['new_version'] # Update date parts[1] = datetime.datetime.now().strftime('%-d %b %Y') lines[i] = '"'.join(parts) break if changed: with open(filename, 'w') as f: for line in lines: f.write(line) python-qrcode-7.3.1/qrcode/tests/000077500000000000000000000000001412565416000167415ustar00rootroot00000000000000python-qrcode-7.3.1/qrcode/tests/__init__.py000066400000000000000000000000001412565416000210400ustar00rootroot00000000000000python-qrcode-7.3.1/qrcode/tests/svg.py000066400000000000000000000001401412565416000201050ustar00rootroot00000000000000from qrcode.image.svg import SvgImage class SvgImageWhite(SvgImage): background = 'white' python-qrcode-7.3.1/qrcode/tests/test_example.py000066400000000000000000000003721412565416000220070ustar00rootroot00000000000000import unittest from unittest import mock from qrcode import run_example class ExampleTest(unittest.TestCase): @mock.patch('PIL.Image.Image.show') def runTest(self, mock_show): run_example() mock_show.assert_called_with() python-qrcode-7.3.1/qrcode/tests/test_qrcode.py000066400000000000000000000422061412565416000216330ustar00rootroot00000000000000import io import os import sys import unittest import warnings from tempfile import mkdtemp from unittest import mock try: import pymaging_png # ensure that PNG support is installed import qrcode.image.pure except ImportError: # pragma: no cover pymaging_png = None import qrcode import qrcode.image.svg import qrcode.util from qrcode.exceptions import DataOverflowError from qrcode.image.base import BaseImage from qrcode.image.pil import Image as pil_Image from qrcode.image.styledpil import StyledPilImage from qrcode.image.styles import colormasks, moduledrawers from qrcode.tests.svg import SvgImageWhite from qrcode.util import MODE_8BIT_BYTE, MODE_ALPHA_NUM, MODE_NUMBER, QRData UNICODE_TEXT = '\u03b1\u03b2\u03b3' WHITE = (255, 255, 255) BLACK = (0, 0, 0) RED = (255, 0, 0) class QRCodeTests(unittest.TestCase): def setUp(self): self.tmpdir = mkdtemp() def tearDown(self): os.rmdir(self.tmpdir) def test_basic(self): qr = qrcode.QRCode(version=1) qr.add_data('a') qr.make(fit=False) def test_large(self): qr = qrcode.QRCode(version=27) qr.add_data('a') qr.make(fit=False) def test_invalid_version(self): qr = qrcode.QRCode(version=41) self.assertRaises(ValueError, qr.make, fit=False) def test_invalid_border(self): self.assertRaises(ValueError, qrcode.QRCode, border=-1) def test_overflow(self): qr = qrcode.QRCode(version=1) qr.add_data('abcdefghijklmno') self.assertRaises(DataOverflowError, qr.make, fit=False) def test_add_qrdata(self): qr = qrcode.QRCode(version=1) data = QRData('a') qr.add_data(data) qr.make(fit=False) def test_fit(self): qr = qrcode.QRCode() qr.add_data('a') qr.make() self.assertEqual(qr.version, 1) qr.add_data('bcdefghijklmno') qr.make() self.assertEqual(qr.version, 2) def test_mode_number(self): qr = qrcode.QRCode() qr.add_data('1234567890123456789012345678901234', optimize=0) qr.make() self.assertEqual(qr.version, 1) self.assertEqual(qr.data_list[0].mode, MODE_NUMBER) def test_mode_alpha(self): qr = qrcode.QRCode() qr.add_data('ABCDEFGHIJ1234567890', optimize=0) qr.make() self.assertEqual(qr.version, 1) self.assertEqual(qr.data_list[0].mode, MODE_ALPHA_NUM) def test_regression_mode_comma(self): qr = qrcode.QRCode() qr.add_data(',', optimize=0) qr.make() self.assertEqual(qr.data_list[0].mode, MODE_8BIT_BYTE) def test_mode_8bit(self): qr = qrcode.QRCode() qr.add_data('abcABC' + UNICODE_TEXT, optimize=0) qr.make() self.assertEqual(qr.version, 1) self.assertEqual(qr.data_list[0].mode, MODE_8BIT_BYTE) def test_mode_8bit_newline(self): qr = qrcode.QRCode() qr.add_data('ABCDEFGHIJ1234567890\n', optimize=0) qr.make() self.assertEqual(qr.data_list[0].mode, MODE_8BIT_BYTE) def test_render_pil(self): qr = qrcode.QRCode() qr.add_data(UNICODE_TEXT) img = qr.make_image() img.save(io.BytesIO()) self.assertIsInstance(img.get_image(), pil_Image.Image) def test_render_pil_with_transparent_background(self): qr = qrcode.QRCode() qr.add_data(UNICODE_TEXT) img = qr.make_image(back_color='TransParent') img.save(io.BytesIO()) def test_render_pil_with_red_background(self): qr = qrcode.QRCode() qr.add_data(UNICODE_TEXT) img = qr.make_image(back_color='red') img.save(io.BytesIO()) def test_render_pil_with_rgb_color_tuples(self): qr = qrcode.QRCode() qr.add_data(UNICODE_TEXT) img = qr.make_image(back_color=(255, 195, 235), fill_color=(55, 95, 35)) img.save(io.BytesIO()) def test_render_with_pattern(self): qr = qrcode.QRCode(mask_pattern=3) qr.add_data(UNICODE_TEXT) img = qr.make_image() img.save(io.BytesIO()) def test_make_image_with_wrong_pattern(self): with self.assertRaises(TypeError): qrcode.QRCode(mask_pattern='string pattern') with self.assertRaises(ValueError): qrcode.QRCode(mask_pattern=-1) with self.assertRaises(ValueError): qrcode.QRCode(mask_pattern=42) def test_mask_pattern_setter(self): qr = qrcode.QRCode() with self.assertRaises(TypeError): qr.mask_pattern = "string pattern" with self.assertRaises(ValueError): qr.mask_pattern = -1 with self.assertRaises(ValueError): qr.mask_pattern = 8 def test_qrcode_bad_factory(self): with self.assertRaises(TypeError): qrcode.QRCode(image_factory='not_BaseImage') with self.assertRaises(AssertionError): qrcode.QRCode(image_factory=dict) def test_qrcode_factory(self): class MockFactory(BaseImage): drawrect = mock.Mock() new_image = mock.Mock() qr = qrcode.QRCode(image_factory=MockFactory) qr.add_data(UNICODE_TEXT) qr.make_image() self.assertTrue(MockFactory.new_image.called) self.assertTrue(MockFactory.drawrect.called) def test_render_svg(self): qr = qrcode.QRCode() qr.add_data(UNICODE_TEXT) img = qr.make_image(image_factory=qrcode.image.svg.SvgImage) img.save(io.BytesIO()) def test_render_svg_path(self): qr = qrcode.QRCode() qr.add_data(UNICODE_TEXT) img = qr.make_image(image_factory=qrcode.image.svg.SvgPathImage) img.save(io.BytesIO()) def test_render_svg_fragment(self): qr = qrcode.QRCode() qr.add_data(UNICODE_TEXT) img = qr.make_image(image_factory=qrcode.image.svg.SvgFragmentImage) img.save(io.BytesIO()) def test_svg_string(self): qr = qrcode.QRCode() qr.add_data(UNICODE_TEXT) img = qr.make_image(image_factory=qrcode.image.svg.SvgFragmentImage) file_like = io.BytesIO() img.save(file_like) file_like.seek(0) assert file_like.read() in img.to_string() def test_render_svg_with_background(self): qr = qrcode.QRCode() qr.add_data(UNICODE_TEXT) img = qr.make_image(image_factory=SvgImageWhite) img.save(io.BytesIO()) @unittest.skipIf(not pymaging_png, "Requires pymaging with PNG support") def test_render_pymaging_png(self): qr = qrcode.QRCode() qr.add_data(UNICODE_TEXT) img = qr.make_image(image_factory=qrcode.image.pure.PymagingImage) from pymaging import Image as pymaging_Image self.assertIsInstance(img.get_image(), pymaging_Image) with warnings.catch_warnings(): warnings.simplefilter('ignore', DeprecationWarning) img.save(io.BytesIO()) @unittest.skipIf(not pymaging_png, "Requires pymaging") def test_render_pymaging_png_bad_kind(self): qr = qrcode.QRCode() qr.add_data(UNICODE_TEXT) img = qr.make_image(image_factory=qrcode.image.pure.PymagingImage) with self.assertRaises(ValueError): img.save(io.BytesIO(), kind='FISH') def test_render_styled_pil_image(self): qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_L) qr.add_data(UNICODE_TEXT) img = qr.make_image(image_factory=StyledPilImage) img.save(io.BytesIO()) def test_render_styled_with_embeded_image(self): embeded_img = pil_Image.new('RGB', (10, 10), color='red') qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_L) qr.add_data(UNICODE_TEXT) img = qr.make_image(image_factory=StyledPilImage, embeded_image=embeded_img) img.save(io.BytesIO()) def test_render_styled_with_embeded_image_path(self): tmpfile = os.path.join(self.tmpdir, "test.png") embeded_img = pil_Image.new('RGB', (10, 10), color='red') embeded_img.save(tmpfile) qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_L) qr.add_data(UNICODE_TEXT) img = qr.make_image(image_factory=StyledPilImage, embeded_image_path=tmpfile) img.save(io.BytesIO()) os.remove(tmpfile) def test_render_styled_with_square_module_drawer(self): qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_L) qr.add_data(UNICODE_TEXT) img = qr.make_image(image_factory=StyledPilImage, module_drawer=moduledrawers.SquareModuleDrawer()) img.save(io.BytesIO()) def test_render_styled_with_gapped_module_drawer(self): qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_L) qr.add_data(UNICODE_TEXT) img = qr.make_image(image_factory=StyledPilImage, module_drawer=moduledrawers.GappedSquareModuleDrawer()) img.save(io.BytesIO()) def test_render_styled_with_circle_module_drawer(self): qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_L) qr.add_data(UNICODE_TEXT) img = qr.make_image(image_factory=StyledPilImage, module_drawer=moduledrawers.CircleModuleDrawer()) img.save(io.BytesIO()) def test_render_styled_with_rounded_module_drawer(self): qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_L) qr.add_data(UNICODE_TEXT) img = qr.make_image(image_factory=StyledPilImage, module_drawer=moduledrawers.RoundedModuleDrawer()) img.save(io.BytesIO()) def test_render_styled_with_vertical_bars_module_drawer(self): qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_L) qr.add_data(UNICODE_TEXT) img = qr.make_image(image_factory=StyledPilImage, module_drawer=moduledrawers.VerticalBarsDrawer()) img.save(io.BytesIO()) def test_render_styled_with_horizontal_bars_module_drawer(self): qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_L) qr.add_data(UNICODE_TEXT) img = qr.make_image(image_factory=StyledPilImage, module_drawer=moduledrawers.HorizontalBarsDrawer()) img.save(io.BytesIO()) def test_render_styled_with_default_solid_color_mask(self): qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_L) qr.add_data(UNICODE_TEXT) mask = colormasks.SolidFillColorMask() img = qr.make_image(image_factory=StyledPilImage, color_mask=mask) img.save(io.BytesIO()) def test_render_styled_with_solid_color_mask(self): qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_L) qr.add_data(UNICODE_TEXT) mask = colormasks.SolidFillColorMask(back_color=WHITE, front_color=RED) img = qr.make_image(image_factory=StyledPilImage, color_mask=mask) img.save(io.BytesIO()) def test_render_styled_with_color_mask_with_transparency(self): qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_L) qr.add_data(UNICODE_TEXT) mask = colormasks.SolidFillColorMask(back_color=(255, 0, 255, 255), front_color=RED) img = qr.make_image(image_factory=StyledPilImage, color_mask=mask) img.save(io.BytesIO()) assert img.mode == "RGBA" def test_render_styled_with_radial_gradient_color_mask(self): qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_L) qr.add_data(UNICODE_TEXT) mask = colormasks.RadialGradiantColorMask(back_color=WHITE, center_color=BLACK, edge_color=RED) img = qr.make_image(image_factory=StyledPilImage, color_mask=mask) img.save(io.BytesIO()) def test_render_styled_with_square_gradient_color_mask(self): qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_L) qr.add_data(UNICODE_TEXT) mask = colormasks.SquareGradiantColorMask(back_color=WHITE, center_color=BLACK, edge_color=RED) img = qr.make_image(image_factory=StyledPilImage, color_mask=mask) img.save(io.BytesIO()) def test_render_styled_with_horizontal_gradient_color_mask(self): qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_L) qr.add_data(UNICODE_TEXT) mask = colormasks.HorizontalGradiantColorMask(back_color=WHITE, left_color=RED, right_color=BLACK) img = qr.make_image(image_factory=StyledPilImage, color_mask=mask) img.save(io.BytesIO()) def test_render_styled_with_vertical_gradient_color_mask(self): qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_L) qr.add_data(UNICODE_TEXT) mask = colormasks.VerticalGradiantColorMask(back_color=WHITE, top_color=RED, bottom_color=BLACK) img = qr.make_image(image_factory=StyledPilImage, color_mask=mask) img.save(io.BytesIO()) def test_render_styled_with_image_color_mask(self): img_mask = pil_Image.new('RGB', (10, 10), color='red') qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_L) qr.add_data(UNICODE_TEXT) mask = colormasks.ImageColorMask(back_color=WHITE, color_mask_image=img_mask) img = qr.make_image(image_factory=StyledPilImage, color_mask=mask) img.save(io.BytesIO()) def test_optimize(self): qr = qrcode.QRCode() text = 'A1abc12345def1HELLOa' qr.add_data(text, optimize=4) qr.make() self.assertEqual( [d.mode for d in qr.data_list], [ MODE_8BIT_BYTE, MODE_NUMBER, MODE_8BIT_BYTE, MODE_ALPHA_NUM, MODE_8BIT_BYTE ] ) self.assertEqual(qr.version, 2) def test_optimize_short(self): qr = qrcode.QRCode() text = 'A1abc1234567def1HELLOa' qr.add_data(text, optimize=7) qr.make() self.assertEqual(len(qr.data_list), 3) self.assertEqual( [d.mode for d in qr.data_list], [MODE_8BIT_BYTE, MODE_NUMBER, MODE_8BIT_BYTE] ) self.assertEqual(qr.version, 2) def test_optimize_longer_than_data(self): qr = qrcode.QRCode() text = 'ABCDEFGHIJK' qr.add_data(text, optimize=12) self.assertEqual(len(qr.data_list), 1) self.assertEqual(qr.data_list[0].mode, MODE_ALPHA_NUM) def test_optimize_size(self): text = 'A1abc12345123451234512345def1HELLOHELLOHELLOHELLOa' * 5 qr = qrcode.QRCode() qr.add_data(text) qr.make() self.assertEqual(qr.version, 10) qr = qrcode.QRCode() qr.add_data(text, optimize=0) qr.make() self.assertEqual(qr.version, 11) def test_qrdata_repr(self): data = b'hello' data_obj = qrcode.util.QRData(data) self.assertEqual(repr(data_obj), repr(data)) def test_print_ascii_stdout(self): qr = qrcode.QRCode() stdout_encoding = sys.stdout.encoding with mock.patch('sys.stdout') as fake_stdout: # Python 2.6 needs sys.stdout.encoding to be a real string. sys.stdout.encoding = stdout_encoding fake_stdout.isatty.return_value = None self.assertRaises(OSError, qr.print_ascii, tty=True) self.assertTrue(fake_stdout.isatty.called) def test_print_ascii(self): qr = qrcode.QRCode(border=0) f = io.StringIO() qr.print_ascii(out=f) printed = f.getvalue() f.close() expected = '\u2588\u2580\u2580\u2580\u2580\u2580\u2588' self.assertEqual(printed[:len(expected)], expected) f = io.StringIO() f.isatty = lambda: True qr.print_ascii(out=f, tty=True) printed = f.getvalue() f.close() expected = ( '\x1b[48;5;232m\x1b[38;5;255m' + '\xa0\u2584\u2584\u2584\u2584\u2584\xa0') self.assertEqual(printed[:len(expected)], expected) def test_print_tty_stdout(self): qr = qrcode.QRCode() with mock.patch('sys.stdout') as fake_stdout: fake_stdout.isatty.return_value = None self.assertRaises(OSError, qr.print_tty) self.assertTrue(fake_stdout.isatty.called) def test_print_tty(self): qr = qrcode.QRCode() f = io.StringIO() f.isatty = lambda: True qr.print_tty(out=f) printed = f.getvalue() f.close() BOLD_WHITE_BG = '\x1b[1;47m' BLACK_BG = '\x1b[40m' WHITE_BLOCK = BOLD_WHITE_BG + ' ' + BLACK_BG EOL = '\x1b[0m\n' expected = ( BOLD_WHITE_BG + ' '*23 + EOL + WHITE_BLOCK + ' '*7 + WHITE_BLOCK) self.assertEqual(printed[:len(expected)], expected) def test_get_matrix(self): qr = qrcode.QRCode(border=0) qr.add_data('1') self.assertEqual(qr.get_matrix(), qr.modules) def test_get_matrix_border(self): qr = qrcode.QRCode(border=1) qr.add_data('1') matrix = [row[1:-1] for row in qr.get_matrix()[1:-1]] self.assertEqual(matrix, qr.modules) def test_negative_size_at_construction(self): self.assertRaises(ValueError, qrcode.QRCode, box_size=-1) def test_negative_size_at_usage(self): qr = qrcode.QRCode() qr.box_size = -1 self.assertRaises(ValueError, qr.make_image) class ShortcutTest(unittest.TestCase): def runTest(self): qrcode.make('image') python-qrcode-7.3.1/qrcode/tests/test_release.py000066400000000000000000000026301412565416000217730ustar00rootroot00000000000000import re import builtins import datetime import unittest from unittest import mock from qrcode.release import update_manpage OPEN = f'{builtins.__name__}.open' DATA = 'test\n.TH "date" "version" "description"\nthis' class UpdateManpageTests(unittest.TestCase): @mock.patch(OPEN, new_callable=mock.mock_open, read_data='.TH invalid') def test_invalid_data(self, mock_file): update_manpage({'name': 'qrcode', 'new_version': '1.23'}) mock_file.assert_called() mock_file().write.assert_not_called() @mock.patch(OPEN, new_callable=mock.mock_open, read_data=DATA) def test_not_qrcode(self, mock_file): update_manpage({'name': 'not-qrcode'}) mock_file.assert_not_called() @mock.patch(OPEN, new_callable=mock.mock_open, read_data=DATA) def test_no_change(self, mock_file): update_manpage({'name': 'qrcode', 'new_version': 'version'}) mock_file.assert_called() mock_file().write.assert_not_called() @mock.patch(OPEN, new_callable=mock.mock_open, read_data=DATA) def test_change(self, mock_file): update_manpage({'name': 'qrcode', 'new_version': '3.11'}) expected = re.split(r'([^\n]*(?:\n|$))', DATA)[1::2] expected[1] = expected[1].replace('version', '3.11').replace( 'date', datetime.datetime.now().strftime('%-d %b %Y')) mock_file().write.has_calls([mock.call(line) for line in expected]) python-qrcode-7.3.1/qrcode/tests/test_script.py000066400000000000000000000046241412565416000216640ustar00rootroot00000000000000import os import sys import unittest from tempfile import mkdtemp from unittest import mock from qrcode.console_scripts import main def bad_read(): raise UnicodeDecodeError('utf-8', b'0x80', 0, 1, 'invalid start byte') class ScriptTest(unittest.TestCase): def setUp(self): self.tmpdir = mkdtemp() def tearDown(self): os.rmdir(self.tmpdir) @mock.patch('os.isatty', lambda *args: True) @mock.patch('qrcode.main.QRCode.print_ascii') def test_isatty(self, mock_print_ascii): main(['testtext']) mock_print_ascii.assert_called_with(tty=True) @mock.patch('os.isatty', lambda *args: False) @mock.patch('sys.stdout') def test_piped(self, mock_stdout): main(['testtext']) @mock.patch('os.isatty', lambda *args: True) @mock.patch('qrcode.main.QRCode.print_ascii') def test_stdin(self, mock_print_ascii): mock_stdin = mock.Mock(sys.stdin) stdin_buffer = getattr(mock_stdin, 'buffer', mock_stdin) stdin_buffer.read.return_value = 'testtext' with mock.patch('sys.stdin', mock_stdin): main([]) self.assertTrue(stdin_buffer.read.called) mock_print_ascii.assert_called_with(tty=True) @mock.patch('os.isatty', lambda *args: True) @mock.patch('qrcode.main.QRCode.print_ascii') def test_stdin_py3_unicodedecodeerror(self, mock_print_ascii): mock_stdin = mock.Mock(sys.stdin) mock_stdin.buffer.read.return_value = 'testtext' mock_stdin.read.side_effect = bad_read with mock.patch('sys.stdin', mock_stdin): # sys.stdin.read() will raise an error... self.assertRaises(UnicodeDecodeError, sys.stdin.read) # ... but it won't be used now. main([]) mock_print_ascii.assert_called_with(tty=True) @mock.patch('os.isatty', lambda *args: True) @mock.patch('qrcode.main.QRCode.print_ascii') def test_optimize(self, mock_print_ascii): main('testtext --optimize 0'.split()) @mock.patch('sys.stdout') def test_factory(self, mock_stdout): main('testtext --factory svg'.split()) @mock.patch('sys.stderr') def test_bad_factory(self, mock_stderr): self.assertRaises(SystemExit, main, 'testtext --factory fish'.split()) def test_output(self): tmpfile = os.path.join(self.tmpdir, "test.png") main(['testtext', '--output', tmpfile]) os.remove(tmpfile) python-qrcode-7.3.1/qrcode/tests/test_util.py000066400000000000000000000004261412565416000213310ustar00rootroot00000000000000import unittest from qrcode import util class UtilTests(unittest.TestCase): def test_check_wrong_version(self): with self.assertRaises(ValueError): util.check_version(0) with self.assertRaises(ValueError): util.check_version(41) python-qrcode-7.3.1/qrcode/util.py000066400000000000000000000417141412565416000171350ustar00rootroot00000000000000import re import math from qrcode import base, exceptions, LUT # QR encoding modes. MODE_NUMBER = 1 << 0 MODE_ALPHA_NUM = 1 << 1 MODE_8BIT_BYTE = 1 << 2 MODE_KANJI = 1 << 3 # Encoding mode sizes. MODE_SIZE_SMALL = { MODE_NUMBER: 10, MODE_ALPHA_NUM: 9, MODE_8BIT_BYTE: 8, MODE_KANJI: 8, } MODE_SIZE_MEDIUM = { MODE_NUMBER: 12, MODE_ALPHA_NUM: 11, MODE_8BIT_BYTE: 16, MODE_KANJI: 10, } MODE_SIZE_LARGE = { MODE_NUMBER: 14, MODE_ALPHA_NUM: 13, MODE_8BIT_BYTE: 16, MODE_KANJI: 12, } ALPHA_NUM = b'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:' RE_ALPHA_NUM = re.compile(b'^[' + re.escape(ALPHA_NUM) + br']*\Z') # The number of bits for numeric delimited data lengths. NUMBER_LENGTH = {3: 10, 2: 7, 1: 4} PATTERN_POSITION_TABLE = [ [], [6, 18], [6, 22], [6, 26], [6, 30], [6, 34], [6, 22, 38], [6, 24, 42], [6, 26, 46], [6, 28, 50], [6, 30, 54], [6, 32, 58], [6, 34, 62], [6, 26, 46, 66], [6, 26, 48, 70], [6, 26, 50, 74], [6, 30, 54, 78], [6, 30, 56, 82], [6, 30, 58, 86], [6, 34, 62, 90], [6, 28, 50, 72, 94], [6, 26, 50, 74, 98], [6, 30, 54, 78, 102], [6, 28, 54, 80, 106], [6, 32, 58, 84, 110], [6, 30, 58, 86, 114], [6, 34, 62, 90, 118], [6, 26, 50, 74, 98, 122], [6, 30, 54, 78, 102, 126], [6, 26, 52, 78, 104, 130], [6, 30, 56, 82, 108, 134], [6, 34, 60, 86, 112, 138], [6, 30, 58, 86, 114, 142], [6, 34, 62, 90, 118, 146], [6, 30, 54, 78, 102, 126, 150], [6, 24, 50, 76, 102, 128, 154], [6, 28, 54, 80, 106, 132, 158], [6, 32, 58, 84, 110, 136, 162], [6, 26, 54, 82, 110, 138, 166], [6, 30, 58, 86, 114, 142, 170] ] G15 = ( (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0)) G18 = ( (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0)) G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1) PAD0 = 0xEC PAD1 = 0x11 # Precompute bit count limits, indexed by error correction level and code size _data_count = lambda block: block.data_count BIT_LIMIT_TABLE = [ [0] + [8*sum(map(_data_count, base.rs_blocks(version, error_correction))) for version in range(1, 41)] for error_correction in range(4) ] def BCH_type_info(data): d = data << 10 while BCH_digit(d) - BCH_digit(G15) >= 0: d ^= (G15 << (BCH_digit(d) - BCH_digit(G15))) return ((data << 10) | d) ^ G15_MASK def BCH_type_number(data): d = data << 12 while BCH_digit(d) - BCH_digit(G18) >= 0: d ^= (G18 << (BCH_digit(d) - BCH_digit(G18))) return (data << 12) | d def BCH_digit(data): digit = 0 while data != 0: digit += 1 data >>= 1 return digit def pattern_position(version): return PATTERN_POSITION_TABLE[version - 1] def mask_func(pattern): """ Return the mask function for the given mask pattern. """ if pattern == 0: # 000 return lambda i, j: (i + j) % 2 == 0 if pattern == 1: # 001 return lambda i, j: i % 2 == 0 if pattern == 2: # 010 return lambda i, j: j % 3 == 0 if pattern == 3: # 011 return lambda i, j: (i + j) % 3 == 0 if pattern == 4: # 100 return lambda i, j: (math.floor(i / 2) + math.floor(j / 3)) % 2 == 0 if pattern == 5: # 101 return lambda i, j: (i * j) % 2 + (i * j) % 3 == 0 if pattern == 6: # 110 return lambda i, j: ((i * j) % 2 + (i * j) % 3) % 2 == 0 if pattern == 7: # 111 return lambda i, j: ((i * j) % 3 + (i + j) % 2) % 2 == 0 raise TypeError("Bad mask pattern: " + pattern) # pragma: no cover def mode_sizes_for_version(version): if version < 10: return MODE_SIZE_SMALL elif version < 27: return MODE_SIZE_MEDIUM else: return MODE_SIZE_LARGE def length_in_bits(mode, version): if mode not in ( MODE_NUMBER, MODE_ALPHA_NUM, MODE_8BIT_BYTE, MODE_KANJI): raise TypeError(f"Invalid mode ({mode})") # pragma: no cover check_version(version) return mode_sizes_for_version(version)[mode] def check_version(version): if version < 1 or version > 40: raise ValueError( f"Invalid version (was {version}, expected 1 to 40)") def lost_point(modules): modules_count = len(modules) lost_point = 0 lost_point = _lost_point_level1(modules, modules_count) lost_point += _lost_point_level2(modules, modules_count) lost_point += _lost_point_level3(modules, modules_count) lost_point += _lost_point_level4(modules, modules_count) return lost_point def _lost_point_level1(modules, modules_count): lost_point = 0 modules_range = range(modules_count) container = [0] * (modules_count + 1) for row in modules_range: this_row = modules[row] previous_color = this_row[0] length = 0 for col in modules_range: if this_row[col] == previous_color: length += 1 else: if length >= 5: container[length] += 1 length = 1 previous_color = this_row[col] if length >= 5: container[length] += 1 for col in modules_range: previous_color = modules[0][col] length = 0 for row in modules_range: if modules[row][col] == previous_color: length += 1 else: if length >= 5: container[length] += 1 length = 1 previous_color = modules[row][col] if length >= 5: container[length] += 1 lost_point += sum(container[each_length] * (each_length - 2) for each_length in range(5, modules_count + 1)) return lost_point def _lost_point_level2(modules, modules_count): lost_point = 0 modules_range = range(modules_count - 1) for row in modules_range: this_row = modules[row] next_row = modules[row + 1] # use iter() and next() to skip next four-block. e.g. # d a f if top-right a != b botton-right, # c b e then both abcd and abef won't lost any point. modules_range_iter = iter(modules_range) for col in modules_range_iter: top_right = this_row[col + 1] if top_right != next_row[col + 1]: # reduce 33.3% of runtime via next(). # None: raise nothing if there is no next item. next(modules_range_iter, None) elif top_right != this_row[col]: continue elif top_right != next_row[col]: continue else: lost_point += 3 return lost_point def _lost_point_level3(modules, modules_count): # 1 : 1 : 3 : 1 : 1 ratio (dark:light:dark:light:dark) pattern in # row/column, preceded or followed by light area 4 modules wide. From ISOIEC. # pattern1: 10111010000 # pattern2: 00001011101 modules_range = range(modules_count) modules_range_short = range(modules_count-10) lost_point = 0 for row in modules_range: this_row = modules[row] modules_range_short_iter = iter(modules_range_short) col = 0 for col in modules_range_short_iter: if ( not this_row[col + 1] and this_row[col + 4] and not this_row[col + 5] and this_row[col + 6] and not this_row[col + 9] and ( this_row[col + 0] and this_row[col + 2] and this_row[col + 3] and not this_row[col + 7] and not this_row[col + 8] and not this_row[col + 10] or not this_row[col + 0] and not this_row[col + 2] and not this_row[col + 3] and this_row[col + 7] and this_row[col + 8] and this_row[col + 10] ) ): lost_point += 40 # horspool algorithm. # if this_row[col + 10] == True, pattern1 shift 4, pattern2 shift 2. So min=2. # if this_row[col + 10] == False, pattern1 shift 1, pattern2 shift 1. So min=1. if this_row[col + 10]: next(modules_range_short_iter, None) for col in modules_range: modules_range_short_iter = iter(modules_range_short) row = 0 for row in modules_range_short_iter: if ( not modules[row + 1][col] and modules[row + 4][col] and not modules[row + 5][col] and modules[row + 6][col] and not modules[row + 9][col] and ( modules[row + 0][col] and modules[row + 2][col] and modules[row + 3][col] and not modules[row + 7][col] and not modules[row + 8][col] and not modules[row + 10][col] or not modules[row + 0][col] and not modules[row + 2][col] and not modules[row + 3][col] and modules[row + 7][col] and modules[row + 8][col] and modules[row + 10][col] ) ): lost_point += 40 if modules[row + 10][col]: next(modules_range_short_iter, None) return lost_point def _lost_point_level4(modules, modules_count): dark_count = sum(map(sum, modules)) percent = float(dark_count) / (modules_count**2) # Every 5% departure from 50%, rating++ rating = int(abs(percent * 100 - 50) / 5) return rating * 10 def optimal_data_chunks(data, minimum=4): """ An iterator returning QRData chunks optimized to the data content. :param minimum: The minimum number of bytes in a row to split as a chunk. """ data = to_bytestring(data) num_pattern = br'\d' alpha_pattern = b'[' + re.escape(ALPHA_NUM) + b']' if len(data) <= minimum: num_pattern = re.compile(b'^' + num_pattern + b'+$') alpha_pattern = re.compile(b'^' + alpha_pattern + b'+$') else: re_repeat = ( b'{' + str(minimum).encode('ascii') + b',}') num_pattern = re.compile(num_pattern + re_repeat) alpha_pattern = re.compile(alpha_pattern + re_repeat) num_bits = _optimal_split(data, num_pattern) for is_num, chunk in num_bits: if is_num: yield QRData(chunk, mode=MODE_NUMBER, check_data=False) else: for is_alpha, sub_chunk in _optimal_split(chunk, alpha_pattern): mode = MODE_ALPHA_NUM if is_alpha else MODE_8BIT_BYTE yield QRData(sub_chunk, mode=mode, check_data=False) def _optimal_split(data, pattern): while data: match = re.search(pattern, data) if not match: break start, end = match.start(), match.end() if start: yield False, data[:start] yield True, data[start:end] data = data[end:] if data: yield False, data def to_bytestring(data): """ Convert data to a (utf-8 encoded) byte-string if it isn't a byte-string already. """ if not isinstance(data, bytes): data = str(data).encode('utf-8') return data def optimal_mode(data): """ Calculate the optimal mode for this chunk of data. """ if data.isdigit(): return MODE_NUMBER if RE_ALPHA_NUM.match(data): return MODE_ALPHA_NUM return MODE_8BIT_BYTE class QRData: """ Data held in a QR compatible format. Doesn't currently handle KANJI. """ def __init__(self, data, mode=None, check_data=True): """ If ``mode`` isn't provided, the most compact QR data type possible is chosen. """ if check_data: data = to_bytestring(data) if mode is None: self.mode = optimal_mode(data) else: self.mode = mode if mode not in (MODE_NUMBER, MODE_ALPHA_NUM, MODE_8BIT_BYTE): raise TypeError(f"Invalid mode ({mode})") # pragma: no cover if check_data and mode < optimal_mode(data): # pragma: no cover raise ValueError( f"Provided data can not be represented in mode {mode}") self.data = data def __len__(self): return len(self.data) def write(self, buffer): if self.mode == MODE_NUMBER: for i in range(0, len(self.data), 3): chars = self.data[i:i + 3] bit_length = NUMBER_LENGTH[len(chars)] buffer.put(int(chars), bit_length) elif self.mode == MODE_ALPHA_NUM: for i in range(0, len(self.data), 2): chars = self.data[i:i + 2] if len(chars) > 1: buffer.put( ALPHA_NUM.find(chars[0]) * 45 + ALPHA_NUM.find(chars[1]), 11) else: buffer.put(ALPHA_NUM.find(chars), 6) else: # Iterating a bytestring in Python 3 returns an integer, # no need to ord(). data = self.data for c in data: buffer.put(c, 8) def __repr__(self): return repr(self.data) class BitBuffer: def __init__(self): self.buffer = [] self.length = 0 def __repr__(self): return ".".join([str(n) for n in self.buffer]) def get(self, index): buf_index = math.floor(index / 8) return ((self.buffer[buf_index] >> (7 - index % 8)) & 1) == 1 def put(self, num, length): for i in range(length): self.put_bit(((num >> (length - i - 1)) & 1) == 1) def __len__(self): return self.length def put_bit(self, bit): buf_index = self.length // 8 if len(self.buffer) <= buf_index: self.buffer.append(0) if bit: self.buffer[buf_index] |= (0x80 >> (self.length % 8)) self.length += 1 def create_bytes(buffer, rs_blocks): offset = 0 maxDcCount = 0 maxEcCount = 0 dcdata = [0] * len(rs_blocks) ecdata = [0] * len(rs_blocks) for r in range(len(rs_blocks)): dcCount = rs_blocks[r].data_count ecCount = rs_blocks[r].total_count - dcCount maxDcCount = max(maxDcCount, dcCount) maxEcCount = max(maxEcCount, ecCount) dcdata[r] = [0] * dcCount for i in range(len(dcdata[r])): dcdata[r][i] = 0xff & buffer.buffer[i + offset] offset += dcCount # Get error correction polynomial. if ecCount in LUT.rsPoly_LUT: rsPoly = base.Polynomial(LUT.rsPoly_LUT[ecCount], 0) else: rsPoly = base.Polynomial([1], 0) for i in range(ecCount): rsPoly = rsPoly * base.Polynomial([1, base.gexp(i)], 0) rawPoly = base.Polynomial(dcdata[r], len(rsPoly) - 1) modPoly = rawPoly % rsPoly ecdata[r] = [0] * (len(rsPoly) - 1) for i in range(len(ecdata[r])): modIndex = i + len(modPoly) - len(ecdata[r]) ecdata[r][i] = modPoly[modIndex] if (modIndex >= 0) else 0 totalCodeCount = sum(rs_block.total_count for rs_block in rs_blocks) data = [None] * totalCodeCount index = 0 for i in range(maxDcCount): for r in range(len(rs_blocks)): if i < len(dcdata[r]): data[index] = dcdata[r][i] index += 1 for i in range(maxEcCount): for r in range(len(rs_blocks)): if i < len(ecdata[r]): data[index] = ecdata[r][i] index += 1 return data def create_data(version, error_correction, data_list): buffer = BitBuffer() for data in data_list: buffer.put(data.mode, 4) buffer.put(len(data), length_in_bits(data.mode, version)) data.write(buffer) # Calculate the maximum number of bits for the given version. rs_blocks = base.rs_blocks(version, error_correction) bit_limit = sum(block.data_count * 8 for block in rs_blocks) if len(buffer) > bit_limit: raise exceptions.DataOverflowError( "Code length overflow. Data size (%s) > size available (%s)" % (len(buffer), bit_limit)) # Terminate the bits (add up to four 0s). for _ in range(min(bit_limit - len(buffer), 4)): buffer.put_bit(False) # Delimit the string into 8-bit words, padding with 0s if necessary. delimit = len(buffer) % 8 if delimit: for _ in range(8 - delimit): buffer.put_bit(False) # Add special alternating padding bitstrings until buffer is full. bytes_to_fill = (bit_limit - len(buffer)) // 8 for i in range(bytes_to_fill): if i % 2 == 0: buffer.put(PAD0, 8) else: buffer.put(PAD1, 8) return create_bytes(buffer, rs_blocks) python-qrcode-7.3.1/setup.cfg000066400000000000000000000032771412565416000161540ustar00rootroot00000000000000[metadata] name = qrcode version = 7.3.1 description = QR Code image generator long_description = file: README.rst, CHANGES.rst author = Lincoln Loop author_email = info@lincolnloop.com url = https://github.com/lincolnloop/python-qrcode keywords = qr denso-wave IEC18004 license = BSD classifiers = Development Status :: 5 - Production/Stable License :: OSI Approved :: BSD License Operating System :: OS Independent Intended Audience :: Developers Programming Language :: Python Programming Language :: Python :: 3 Programming Language :: Python :: 3.6 Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.8 Programming Language :: Python :: 3.9 Programming Language :: Python :: 3.10 Programming Language :: Python :: 3 :: Only Topic :: Multimedia :: Graphics Topic :: Software Development :: Libraries :: Python Modules [options] zip_safe = False include_package_data = True packages = find: install_requires = colorama;platform_system=="Windows" python_requires = >= 3.6 [options.extras_require] maintainer = zest.releaser[recommended] dev = tox pytest test = pytest pytest-cov pil = pillow all = zest.releaser[recommended] tox pytest pytest pytest-cov pillow [options.entry_points] console_scripts = qr = qrcode.console_scripts:main [flake8] exclude = .tox .git __pycache__ build dist [coverage:run] source = qrcode [zest.releaser] less-zeros = yes version-levels = 2 tag-format = v{version} tag-message = Version {version} tag-signing = yes date-format = %%-d %%B %%Y prereleaser.middle = qrcode.release.update_manpage [tool:pytest] filterwarnings = module python-qrcode-7.3.1/setup.py000066400000000000000000000002231412565416000160310ustar00rootroot00000000000000#!/usr/bin/env python from setuptools import setup # See setup.cfg for configuration. setup( data_files=[('share/man/man1', ['doc/qr.1'])], ) python-qrcode-7.3.1/signing-key.asc000066400000000000000000000042471412565416000172450ustar00rootroot00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1 mQENBFDTudIBCACagG1d2hP80O3aNi+9S4rgpd1Lfa7To11XI1HsGI74jkshSxCU dRPc/OmPAgLjjr+iEpEZeI/h8XyCem0QOgmr2mr1nu58dJ6UvCG0yX4DvXX9SDfh ZeAHRzFi9tUEN4BbBf79EYfma9iqNpQPXKurvxLeHGDW48rMbT5dJd8WSN96rNEo OrS7EMHy3tvrU5lX4JURwHQUYmO+wXYbX5aZdvZRVG5onD1ettP3Ie87Mc/bRJ91 6NIGXX3vlk9Gou0EpJbs6zhjvTxmjU4trjmnhUNf7+dDZpHpId5eU2sMl959qjsO zdQWtSgyjZ4rN8kw8MuaFqaMaBbbWnrECBAJABEBAAG0JENocmlzIEJlYXZlbiA8 c21pbGV5Y2hyaXNAZ21haWwuY29tPokBPgQTAQIAKAIbAwYLCQgHAwIGFQgCCQoL BBYCAwECHgECF4AFAlc+K5MFCQwdXW4ACgkQ1vRASXANOvCRMAgAjHOqeoBYZi6h OKPFcyshl+qiDkpHNEAZnxMvCX5gqfc+aLQA4FmmjwkbIBKYYgT/SmnAB/txpTgN QByOw+LzWFjhsqKGEUlpva/o6N80Y7EH7HE9PldEandEZEAb4XXqQHItrDkY80/P WznO66TmmsNYa4cbb21+Q9bRZDZyaGPc/ZukL8rzFpXsQWwVf41fVAp0gWrnXwwC GqGIAC8WcmKLK0K62LmSJ5HnO+PSC0K6UFAcBg8XwCWaI+BqGw81Bi/Dho2GxkDv RyF8JK+HrNm1AJgn3kILhQKDxRb9HamCrAbZ5leB7NNX855MyXCoIsZMJkDksHxW PcF+l39thbQvQ2hyaXMgQmVhdmVuICgyMDEyIGtleSkgPHNtaWxleWNocmlzQGdt YWlsLmNvbT6JATgEEwECACIFAlDTudICGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4B AheAAAoJENb0QElwDTrwhPAH/RAD40WAqHErF47yoJhrurTUDESRqcz1CSEFYEyJ vx4a3ZOAoCe7okw/DWz934vRggToTNfhEpGFqDjwM1rrnYvlT577ay095ZZveDw+ zU4SzseamBHO07uDugBF2XDXiW7iAWLgvRRp+9fFuHdJxAy0OcYceIsKVm9O7QOG EyZSm/rugXQzx62yZkMMWVRDBkClRP2AmubqXhZWMYll2jnqo7dSFUKSHikt/Dpw 8BG4vFZiOurFoThgkQt0yxbXNjKa1Q3RfVQO3f0WtKwIiE8zg7abFdK1LlMybfde Jf2l5H1d17wfdXnnzGnwzJ06Ss/1NOdI8Pd+/Gnh+mlm/Ou5AQ0EUNO50gEIAPmL jErCZsDkBsijy6LAvC1C9uiye5nRAPxB85H58u/IyRaPwoReBcMQMTeT92f3A+uV F7yvNm598L9dY/+QK5L6JOwvpOMEBBInSbJNXxnSlSSeyaEN2jbRbkkTrxWz93xQ lLAjU8ROjTLojzW5LqC4A8XebuH9XKp7rX9XMb4yKkxmDyqPaJLWUtMig6XZStwG odILFURHPLfsreWx7spYhA3NiC6OIrPmN4kORt6GT7g6umBjellsG/h+XZZW3jQV v768BhOsTeTdZZxbPApwrWqO/Y2fswVC+rsrd0sRXUnNFv8o4EVWdIsgQ/cdG4cM S79fczQVxLL+UGYLswEAEQEAAYkBJQQYAQIADwIbDAUCVz4rgwUJCFr2bgAKCRDW 9EBJcA068AB2B/9LGmNceTLY3ckKqtxTaTc9OqSbu/B9kbuOSaOO1KB4A7a1F6Ay I5z3r50x88GqAIr3FigDlGNLfgWQAdeAzeaOV8CX/J7MHwAvZDg4qLPIfiVeq9r1 ztXi9wITBLrn2TUugj9lK3x1uUzwmFhmyrnLl8wvqw74m6b3iY5zvSY24mpTBupD ZjuYt/fCrdAtjyGIKXkQBQzmLqrOFX2jq3tOBE+qGPECiUVdDYH2X/NrJFqMgu0/ IjsGMlA46GlzypOXDNrgPX3EJ7w59H3Fn9cQgH8C2OIE40Nr6AF7oAR+/vxwG/Er yCUbp4StCe9l6Jv7I6XTqofSZaQVkWNLwbOi =OWh8 -----END PGP PUBLIC KEY BLOCK----- python-qrcode-7.3.1/tox.ini000066400000000000000000000016261412565416000156420ustar00rootroot00000000000000[tox] distribute = False envlist = coverage_setup py{36,37,38,39,310} readme coverage_report skip_missing_interpreters = True [testenv] usedevelop = True extras = test pil deps = git+git://github.com/ojii/pymaging.git#egg=pymaging git+git://github.com/ojii/pymaging-png.git#egg=pymaging-png commands = pytest --cov --cov-append --cov-report= [testenv:readme] skip_install = True deps = docutils Pygments commands = {envbindir}/rst2html.py --report=info --halt=warning README.rst /dev/null {envbindir}/rst2html.py --report=info --halt=warning CHANGES.rst /dev/null [testenv:coverage_setup] skip_install = True deps = coverage commands = coverage erase [testenv:coverage_report] skip_install = True deps = coverage commands = coverage html coverage report --omit="qrcode/tests/*" --fail-under=98 -m coverage report --include="qrcode/tests/*" --fail-under=100 -m