pax_global_header00006660000000000000000000000064147165410310014514gustar00rootroot0000000000000052 comment=56db4da2f4e8c78fa67ba7e72390e267655a0cd1 pyshortcuts-1.9.5/000077500000000000000000000000001471654103100141375ustar00rootroot00000000000000pyshortcuts-1.9.5/.github/000077500000000000000000000000001471654103100154775ustar00rootroot00000000000000pyshortcuts-1.9.5/.github/dependabot.yml000066400000000000000000000007661471654103100203400ustar00rootroot00000000000000# To get started with Dependabot version updates, you'll need to specify which # package ecosystems to update and where the package manifests are located. # Please see the documentation for all configuration options: # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates version: 2 updates: - package-ecosystem: "pip" # See documentation for possible values directory: "/" # Location of package manifests schedule: interval: "weekly" pyshortcuts-1.9.5/.github/workflows/000077500000000000000000000000001471654103100175345ustar00rootroot00000000000000pyshortcuts-1.9.5/.github/workflows/test-macos.yml000066400000000000000000000013141471654103100223350ustar00rootroot00000000000000name: test, macos on: [push] jobs: build: runs-on: macos-latest strategy: max-parallel: 5 fail-fast: false matrix: python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] steps: - uses: actions/checkout@v2 - name: Set up Python from Miniconda uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | echo '### which python:' which python echo '### printev:' printenv echo '###' python -m pip install --upgrade pip python -m pip install ".[all]" - name: Run test suite run: | cd tests pytest pyshortcuts-1.9.5/.github/workflows/test-ubuntu.yml000066400000000000000000000013231471654103100225550ustar00rootroot00000000000000name: test, ubuntu on: [push] jobs: build: runs-on: ubuntu-latest strategy: max-parallel: 5 fail-fast: false matrix: python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] steps: - uses: actions/checkout@v2 - name: Set up Python from Miniconda uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | echo '### which python:' which python echo '### printev:' printenv echo '###' python -m pip install --upgrade pip python -m pip install ".[doc,test]" - name: Run test suite run: | cd tests pytest pyshortcuts-1.9.5/.github/workflows/test-windows.yml000066400000000000000000000013201471654103100227220ustar00rootroot00000000000000name: test, windows on: [push] jobs: build: runs-on: windows-latest strategy: max-parallel: 5 fail-fast: false matrix: python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] steps: - uses: actions/checkout@v2 - name: Set up Python from Miniconda uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | echo '### which python:' which python echo '### printev:' printenv echo '###' python -m pip install --upgrade pip python -m pip install ".[all]" - name: Run test suite run: | cd tests pytest pyshortcuts-1.9.5/.gitignore000066400000000000000000000001631471654103100161270ustar00rootroot00000000000000*.py[cod] build/ dist/ eggs/ .eggs/ *.egg-info/ .installed.cfg *.egg MANIFEST doc/_build/ pyshortcuts/version.py pyshortcuts-1.9.5/LICENSE000066400000000000000000000021301471654103100151400ustar00rootroot00000000000000The MIT License Copyright (c) 2018-2024 Matthew Newville, The University of Chicago Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXP80RESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE qUSE OR OTHER DEALINGS IN THE SOFTWARE. pyshortcuts-1.9.5/MANIFEST.in000066400000000000000000000005431471654103100156770ustar00rootroot00000000000000include README.md LICENSE MANIFEST.in setup.py setup.cfg pyproject.toml include doc/pyshortcutgui_screenshot.png exclude *.pyc core.* *~ *.pdf recursive-exclude pyyshortcuts/__pycache__ * recursive-exclude pyshortcuts *.pyc recursive-include pyshortcuts *.py recursive-include pyshortcuts/icons * recursive-include examples * recursive-include tests *.py pyshortcuts-1.9.5/README.md000066400000000000000000000225061471654103100154230ustar00rootroot00000000000000[![Build status](https://github.com/newville/pyshortcuts/actions/workflows/test-ubuntu.yml/badge.svg)](https://github.com/newville/pyshortcuts/actions/workflows/test-ubuntu.yml) [![Build status](https://github.com/newville/pyshortcuts/actions/workflows/test-windows.yml/badge.svg)](https://github.com/newville/pyshortcuts/actions/workflows/test-windows.yml) [![Build status](https://github.com/newville/pyshortcuts/actions/workflows/test-macos.yml/badge.svg)](https://github.com/newville/pyshortcuts/actions/workflows/test-macos.yml) [![Version](https://img.shields.io/pypi/v/pyshortcuts)](https://pypi.org/project/pyshortcuts) [![Downloads]( https://img.shields.io/pypi/dm/pyshortcuts?color=red)](https://pypi.org/project/pyshortcuts) Install `pyshortcuts` with ``` pip install pyshortcuts ``` Full documentation is at: [Pyshortcuts Documentation](https://newville.github.io/pyshortcuts/) # Table of contents 1. [Pyshortcuts Overview](#about) 1. [Installation](#installation) 2. [Usage from Python](#frompytho) 3. [`pyshortcut` command-line program](#cli) 4. [Making a shortcut for single python command](#pycmd) 5. [Note for running wxPython GUIs on macOS with Anaconda Python](#wxapps_macos) 6. [`pyshortcut` graphical user interface](#wxgui) ## Pyshortcuts Overview Pyshortcuts helps Python developers and users create shortcuts that will run python scripts and other applications. The shortcuts created can go onto the users desktop or into the Start Menu (for systems with Start Menus) or both. Pyshortcuts gives a consistent interface for building shortcuts that run on Windows, macOS, and Linux in the way that is most natural for each OS. On Windows, a Shortcut Link is created and placed on the users Desktop and in the Start Menu. On macOS, a minimal but complete Application is created and placed on the users Desktop. On Linux a ".desktop" file is created and placed on the users Desktop (if that exists) and in $HOME/.local/share/applications (if that exists), which will often get presented in a Start Menu for windowing desktop themes that use a one. On all platforms, the shortcuts created on the Deskop or Start Menu can be put either directly onto the Desktop / Start Menu or in a sub-folder of the Desktop / Start Menu. Shortcuts can have a custom icon (`.ico` files on Windows or Linux, or `.icns` files on macOS) specified, defaulting to a Python icon included with pyshortcuts. By writing only to the users Desktop or application folder that gets read by the Start Menu, there is no need for elevated permission and no writing to system-level files (registry entries, /Applications, /usr/bin, etc). After the shortcut has been created, the end user has complete control to rename, move, or delete it. Pyshortcuts is pure python, small, readily installed, and easy to use from a the command-line or from Python scripts. This means that Pyshortcuts can be made part of an installation (or post-installation process) process for larger packages. Special attention is given to Anaconda Python on Windows. For that environment, the shortcut created will be sure to run in an Anaconda environment, explicitly selecting the "base" environment even if that has not been explicitly set by the user. ## installation To install `pyshortcuts`, use ``` pip install pyshortcuts ``` On Windows, pyshortcuts requires the pywin32 package and will be installed if needed. There are no depenendencies on macOS or Linux. In order to use the pyshortcut GUI, the wxPython package is required. ## Usage from Python Shortcuts can be created from a Python script with ```python from pyshortcuts import make_shortcut make_shortcut('/home/user/bin/myapp.py', name='MyApp', icon='/home/user/icons/myicon.ico') ``` The arguments to the `make_shortcut` function are: * `script` (str) scipt or command to be run. This can include command-line arguments * `name` (str or None) name to use for shortcut [defaults to script name] * `description` (str or None) longer description of script [defaults to `name`] * `icon` (str or None) path to icon file [defaults to python icon] * `folder` (str or None) folder on Desktop to put shortcut [defaults to Desktop] * `terminal` (bool) whether to run in a Terminal [True] * `desktop` ((bool) whether to add shortcut to Desktop [True] * `startmenu` (bool) whether to add shortcut to Start Menu [True] * `executable` (str or None) name of executable to use [this Python] Note that the Start Menu does not exist for macOSX. The `executable` defaults to the version of Python executable used to make shortcut. ## `pyshortcut` command-line program Pyshortcuts installs a `pyshortcut` command-line program for creating a shortcut. From a shell or Command window with PATH set to include python programs and scripts, a command to create a shortcut might look like: ``` ~> pyshortcut -n MyApp -i /home/user/icons/myicon.icns /home/user/bin/myapp.py ``` To include command-line options for the script, put them in double quotes ``` ~> pyshortcut -n MyApp -i /home/user/icons/myicon.icns "/home/user/bin/myapp.py -t 10" ``` The `pyshortcut` command line program has a form of ``` pyshortcut [-h] [-v] [-n NAME] [-i ICON] [-f FOLDER] [-e EXE] [-t] [-g] [-d] [-s] [-w] [scriptname] ``` where `scriptname` is the name of the script. To include arguments to that script, enclose the script name and arguments in quotes (double quotes on Windows). There are several optional arguments: * `-h`, `--help` show help message and exit * `-v`, `--version` show program's version number and exit * `-n NAME`, `--name=NAME` name for shortcut * `-i ICON`, `--icon=ICON` name of icon file * `-f FOLDER`, `--folder=Folder` subfolder on desktop to put icon * `-e EXE`, `--executable EXE` name of executable to use (python) * `-t`, `--terminal` run script in a Terminal Window [True] * `-g`, `--gui` run script as a GUI, with no Terminal Window [False] * `-d`,` --desktop` create desktop shortcut [True] * `-s`, `--startmenu` create Start Menu shortcut [True] * `-w`, `--wxgui` run GUI version of pyshortcut * `-b`, `--bootstrap` create a desktop shortcut to run GUI version of pyshortcut Note that running in the Terminal is True by default, which means that each time the shortcut is used to launch the application, a new Terminal or Command window will be created for it. For many command-line applications, this is appropriate. The extra Terminal or Command window may be unwanted for some GUI applications, and can be disabled with the `-g` or `--gui` option. ## Making a shortcut for single python command A common request and simple use-case for `pyshortcuts` is to wrap a single python command. An example of this might look like this: ``` import sys from pyshortcuts import make_shortcut pycmd = "_ -m pip install --upgrade pyshortcuts" make_shortcut(pycmd, name='Update Pyshortcuts') ``` Note that using `_` or `{}` as the command name will indicate that the current Python executable should be be used. An example that includes an icon is given in the examples folder. The above could be done from the command line with ``` ~> pyshortcut -n "Update Pyshortcuts" "_ -m pip install pyshortcuts" ``` ## Note for running wxPython GUIs on macOS with Anaconda Python If your application uses wxPython and you are running with Anaconda Python on macOS, you may experience problems that your application does not start. If you try to run your script from the command line, you may see the following error message: ``` ~> python my_wxpython_app.py This program needs access to the screen. Please run with a Framework build of python, and only when you are logged in on the main display of your Mac. ``` If you do see that, it can be fixed and your script run properly by adding ``` import wx wx.PyApp.IsDisplayAvailable = lambda _: True ``` in your script before runnig your starting the `wxPython` `mainloop` event handler. ## `pyshortcut` GUI In addition to the `pyshortcut` command-line program, there is a small GUI application that provides a simple form to help the user browse for script and icons, and set options before creating a shortcut or generating an example Python script to create the shortcut. ![PyShortcut Screenshot](doc/pyshortcutgui_screenshot.png) This requires the `wxPython` package which can be installed using `pip` or `conda` but is not automatically installed when installing `pyshortcuts`. This application can be launched from the command line with ``` ~> pyshortcut --wxgui ``` Of course, that command might be the sort of command you might want to be able to launch by clicking on a desktop shortcut. We have just the tool for that! Doing ``` ~> pyshortcut --bootstrap ``` will create a desktop shortcut with an icon of a ladder that will launch the pyshortcut GUI. This essentially runs ```python #!/usr/bin/env python import os import sys from pyshortcuts import make_shortcut, platform bindir = 'Scripts' if platform.startswith('win') else 'bin' pyshortcut = os.path.normpath(os.path.join(sys.prefix, bindir, 'pyshortcut')) scut = make_shortcut(f"{pyshortcut:s} --wxgui", name='PyShortcut', terminal=False) ``` The ladder icon was made by Left Martinez, and downloaded from (https://www.iconfinder.com/iconsets/free-construction-tools) pyshortcuts-1.9.5/doc/000077500000000000000000000000001471654103100147045ustar00rootroot00000000000000pyshortcuts-1.9.5/doc/Makefile000066400000000000000000000027511471654103100163510ustar00rootroot00000000000000# Makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build PAPER = BUILDDIR = _build INSTALLDIR = /home/newville/public_html/pyshortcuts # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . .PHONY: html pdf all help clean dirhtml latex all: $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." html: $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." pdf: latex cd $(BUILDDIR)/latex && make all-pdf help: @echo "Please use \`make ' where is one of" @echo " html to make standalone HTML files" @echo " pdf pdf from latex version" @echo " all html, pdf, and doc.zip" @echo " clean to remove all output" latex: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) _build/latex @echo @echo "Build finished; the LaTeX files are in _build/latex." @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \ "run these through (pdf)latex." latexpdf: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) _build/latex @echo "Running LaTeX files through pdflatex..." make -C _build/latex all-pdf @echo "pdflatex finished; the PDF files are in _build/latex." clean: -rm -rf _build/* pyshortcuts-1.9.5/doc/_static/000077500000000000000000000000001471654103100163325ustar00rootroot00000000000000pyshortcuts-1.9.5/doc/_static/pyshortcutgui_screenshot.png000066400000000000000000010050551471654103100242340ustar00rootroot00000000000000PNG  IHDRi IiCCPICC ProfileHWXS[RIhH RK E*I ĐD.*v*ZY+ZZ(bʛX{;79sJ;N O*Euȓ#BXRX. QǗKqqrE*zq@σ x _*+3 J<bLbgqgq&1n4Ov3Գ YGĮX@'8Qyy3xƙ1e cu-*!\ެ[rC1ࠉdʚan̈RbĽX!~/!F"Ed59g )ܘh>#S΅H\M.45C8Sak|x2U\iEN[K$)%sƨ!fs6M3d#S+O(Qc2e{Y|^lH̍Qbg7f4#OE S׎ %IzNiAH47NcSJĦ/X%3yE p@(``ަ^K=x@h4C) &bDB  Q A!֪. S5[!Q V$ђ##: r:6Dk4!^ΐ%1J$q<ǣ5w/{cB!:p{xzX`55g|]3nY=<Cn|,ƃ`lOh2WV-j;+SvfQs+gx:-o-,v; ;5cJ<VPxU>9GxQXX;  $T0 vY׳ sBP TM`+ '"hzsނAHa ƈb8#!H<#YQ srdRlAꐟI<ҁF =+#45C1FDt*h Dkh#z^G;h?0-Yb.b4,a2?_:^N8 w+8Ox>>_W;F4~_t)G&3 v!4uD&ў Tb6q6q)qq/E'H$gR)#JIIIIWHݤd-ٝNN#Kȋ]c+'.ŖG(()(-˔nUjO &R ]k---+-_ZbZZi=@ӧ98)4mm65Ne:)}{mhm@{vv:[4b :uzu)v]"ugmۥ`dȞk_l_oׁPp͑ ut9U;]vF;FFuӅv)twy09:zM_6f嘳czns6m[+w'w{5G|fc n{˓9V^^2ot>>q>K}|C|WO]Oُ6+*%3932T0:X= ۑ~" 9Ǚ9F%U q"2&׌q{;t-*!*aS,e:aHbbA,7vu8_&'M8-~NF] oC'IrHR$&$OIK~*sҘIs']L5I6ҒӶOvr)SnLZ44iӎNיΛ~ +/Wfd9u`A0@J$3 sUӬY= QWW_fGfo~#g07%wo9/=D_#9=|FьTڙ6O%.GSp~I^0$Ef9Z2IqxO٭s,,`.{yȼy^`Bœ-r]jћRk)1+YP}ڥқ?i1XmǒK .WZ_zG+\m++$+n ZsުU]'n\ZSkWشN2y?UWT1YRn`Õ6m*qx-[kj+n}-yٟ|~n|;weky=Z=ew= . [2Q[h8h{PY#8IٜqxCe#G .?F=Vrlx'NvNosjҩk'n;uܯ῞:>{\#sKۡ6ޗ}[:utЫ^^x=zǍnNyKp//}΂etU7_/< t??]œO?@ozԼpxq?/M~){9jk;ތ}mہweǔOf~"}KԗyR `p=NVTϦ*VU` (ᰅʭzb0@=_*87<~oBq/ pHYs%%IR$iTXtXML:com.adobe.xmp 1794 786 C.iDOT(n6j@IDATxmWU7PHIc H/G'RE >tT0tTC1 jZ{u>{xufs99fYkh A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A  @A G2[2sww%~J_vW#WC}tc_$z+?ϋ?\Cɞ2oiVY*e?矺G9/kAr)aSVΟ90}4 A =n>1(ȐxKzsYϐ22C|O|Zf]vccda!3i'`d>qchu d>ì?̘?؃k y O|Zf]¬?Y.03&:CvF7:Y0OK1Ì=ΐͷe%n 0cu Rfl~^KH(w$dSiyճ/ՒMCDC-ByUۓ_3mXbj{ ۃ,#/Pmz^ {(֯bj4/ՒMCDU{e|VH=j{kc _CBmza{eĕSbR zaoU_/WA[f7E^Zirȃcjն UmO~m̴( C@0W#yi)ixӭUn?Bņ W)X@Iobua'7{ {閕vx!e`wb'v<ǠE_9-B<`3Ͽz;/s#r1P׌J7 uC!^䵜"Zw.( ʫLc:[ Uu5Ufc:CY?+΋q. m%>1#!拕e]]2&_Ţ)uw R֟`/զ 3@b%VG<αbNRob3`-i_T[q1bW{6o+8:qe}-pbmI"[c0}9_qw.52SyW=K|oC!qʢ؁Q؊`/ɼ̿~aވBXל ~mʺYN\!n~֟?Bɜ`~0/8er>eMh+7<ע?@h$5Nx'X xqcF> ι ~mʺY mE^G~Z4đ)/1;x+q/"nN? A`/D.>..5 \j^ǰU<(-y5ch7e9&k$#'se8f&0=zݥ'm4v'O|pd9oiQƵ6vTDܲd3Κ?' 2<e&﷣c! xH)^ĽZt,3?v |*Mdny[3e[ ЂڊkI FӰ׹b|ijfN9~YJRx_{nϞ@D{V2f4 Wh1YiX)LY4<g:2293m`5Y&k5xMBߜ?r9rwrbݜ^xNrR91Y''9r 9?PDöp?MFb 'E2!?*&,#C¼8WL\3#]NfO6#f]h%X.׮KXG,gTi e C]nؔxq]kYc0v,We<//+dvf"6Λ?%; a_oΟ|;s;c&=w^)߷Z&C[ 33Mn@abs犜?zf8g9w96 &y0Vr9Qד:_'_g>V<7N/P;I}HEh@[nWdrIL9eG]!'0tPO=kfgTDs32T\@$osj\[a֟?؈l7'o_ɽ!ָX0o_l}yeh>h:2  1WǼFNdrs\[ Zl& ֫.&[$UG|Y! |y7^ˉGr? Vx-72YHV?uVx-'O?u4/Lߺj+bg7oߝfWC#[ȟUo?K"iGh ϋqqEI++ʙL)#TeNa>2 !GZM?CtФ"\5v[?/OߕL9u1TzٱC!_%_ѳd?;ϟ|ҢcۀZj)Q{._~Z':]804dNj?atURʯO=u7h5Wޔɦic|rXf.r2e5"O7{?Vڇ&!T{1Nr+篜nqM$\Gs`Crc,]H"5v i:I/D&,ݘmԔKBsWY1Qae:C|#(aUҵN^A)f}lEM(_/OoۨcIo~7?]O֟?Yd[}7o߬Yygw-o쿛Ati'iW鳘Pn=g2 KG++<78NPSDR~ J"*?2C4U?|p֟5s~#~~۩?u'O֟?s7o߬Y=f?g-O}N;~Ͳ?C@~S2YVӿKty<h|1")FHW"8f\u ep4uhY]PA%BA-ڕ[Fl~=__֟?۵f'O֟7o߬Y%_kC_N!Yi~ ʤe`9ԯ3pf'{C" 4_'$2cN 2R&:!f4yC9;EٮGo{_//۾W____9o?d bm;y}w!-_Eg?j}YWG]`01$ CC4:/iec!.NJZ4ꗿq6[?}ۭ_?/o筿WG?2{;ϼg>8xY ʼu''?矜ȰR_aY:(5?/ljb=G9{A_!篵=3Ϝ?tߝ~;ǒy Y߷kWm,A]Ey' #nEބJ4Fs124\ӄu,.L>aր͇Z<<[g2S"N:|G cՏ]3?'o8d'O?g[y7o/N?pE-߂D~ȣ> XFu#qhHe-9'iO=$q&V#Wh.Bs6n%[7?'VYf?G[#篜r+???L"EtE;2Vh'y6rʤGk22\Ir : N"'FjܴƤqR.Džm5\E?WGO~e"wF'y_}5VuF?ǡfؿ8kUן?thotoXHY)׾ `,x ߲p X3?YL#,5uYh+7o߉5d/\ݎ̉ԏ$WӋZ\Jơq995X 5jD|C\I{K#ͥAehTyUR7yEĭG_D?ՏYZ_7}wO?˞?fwo91yt qP9<`nTZk??fչ^eE0o )'Ŝ"a˚ ݵ>2C[t":/.aLO3:PCԨ53ȤMh)cbhNaգ GY_[f~x(O{6#g^79"'~1q @W__֟~'onuc _汎:6Õd΀G֟?Y^ ߳fY#of1Kr3ɞ|~➒枿6:B.׼e[w/|<YV4g2lڌNWoɎlCDQ:uC|jj&Ɗ 1)FH9 aڿ]!kGٳ_xhW_]k? ZDz?KGoYdww9G9Ͽr+篵=~m:!ԗ=OjӎMD g^飘O_mKv: ^KjbHK'tRSCBYϼ~lעmԷV_C؞eO_Ƞ ۥֿ|n7o߬Y@1y>/`~ldW_9F[|mwϠСncvEu ewH#2ϴyU*?˷ׅ^ױ!AG8" >F SԪ'jHACy LB< ~? ae#yi o,sV7[~F{w 9ש̿̿?Y?^ &Т9}`_t۵0OѬegѬ =/ooO{㏍we}km-X_ТKBD[:s{[BXs璿ʅO0>MmyiY:-_u(OYia]F ׫6Fo㶈;Q6IC'ceܫLAu0o_ A6H&XYs+$Ϝ?}@Ya9=9S;O:Z`8n#zV;s3vH>zkkkrCH9':<ǰ+[Щ}X'`k0I B^) Ã-:&ȇ0rdQOCk,&T<ʐTy 7U_Oj#;دY7\dddz6{.kC쿜6˽0OQYdgcfݻ'!R.sZ[َpۼi_^?~oCz cȅ]Xmq~Mp (uL#12\E.|<[22SGvd^ )f=uRW'4O^q@,<'˿h?ڶ? i#n?7X'\d?aobP];'{Lڂ6d3扔gj;S֟ŞW?žd_ױ_,:Suָ2ho;ɃLW#˿W`6e# ӫB}=wat NXD.r-#߅W" (Y<謡 d}e[k},GD޲G~oO}i\ħЏ6eeq}'䟽cZ9/篜?s;w!>,s{3.y^?g|n'O4g?ԧlZu! ":\?_mɎcNgtKr58 72)؏: d|!i\:وcdW~'@^aPyP.NUu|s~/MH}۴~tP?rh77_4O?"Q?&k_u%_7jϬ?Ydar5>r/oߍ;~=9Od$9gΟ{]5k ]'C2CuZ3BMyCq=L6 <0F1.xx!'8ug}~ow~M/}e[pV[QGeߦתٗobU-\24G,cE_=̿?Ckm˝\w d}}?kv#H, q1\aΟ9nSpe?jssEz#=O?мSPY!Mw=`! AMu`O8H=ʽ,'-:O\֫}2ڿ]UPi\>O;^z2?M[~o=~,oVO=۷~< /ߢ[T?|oB"of?ـkVY@ߜ?rgb~~}29`ߜ?rcok?f3>8oylgY}\_d^Hy/l>Ty;/Ym5D7n?l$zOՁOi4Z)#t[tWMã dVÀ|mQj؇I[3I#nV4[M_U'qdT^d@÷OlW<{5WACvpipi(mtT"3.e Иr('.Kq#҈SLGδz$_x~oAsr2C>Dh:7^ˉ/9?ovc<7Y}ueqAu}q!x-'Zɹ4U&O]_]sx-'o?rGo篿V?63Eֺnfn ?Sj}K}hY7|uRϸI_YOPNM7N搗gyE4~O : i TR}dI# ~ E;cRC yy)3K?  i~ۥ~d@voCYo\CWִլѿ_ֿ?YdY7o9?s3Ϝ?{q˜/yY/6L8r1;<ԭZC}?K?lWCWOvSNrOҶ櫟=cipk( u0 \^B*?|AWˈ+G~[o۪~j#T2#m^peR a&=$ĕc޴W[oiW8E? __֟?싐o߬[q'O?s+W9=?wQ#o_-~34YϿ)><>ZRm7y*^{Ia~x)__eэ4A:/F@qBPb0U|4=֦9ouQw~Q7eB4NY3K?rkͳj; mTְ"_đkYk`F3Y3'̋iߴ;2o_CV쿓{3Y3?s;5y&q[>K0='_&v7kF]K]tUjʝfԥCY[ܡ~γy۲/ۉ+@?:U?;hB.05H~ucL'ⰾz 5j?ԏiiC?|7MװwL` jz cTgPC7c?c?&󂼬 '{rf?gYfE9H쿳џgΟ9.~Lœa5p'Ϛ>k_CԣL}|C[GPG_Kq7^]UI6~dCo3_]]ukD<^ԁ#И(UëZ腪~%_ZVG7M8oiWS~:櫟z!i "`2QL+Eǎ#d#_<7ԏe#CG[tvS~'iHD2S'o/thț_cֿ̿?Y,w7oi9 xڢW_9-+Ϝ?sO"ϟ!"<{WgӞӷYV4_K'Y k},Cβg_ǧHP?֣Ύ$;#W5C0d<`K<'O ?<EC2_ 9U[ AP:C"miV뿼Ȁ5zQ9C ϾCzZWoi+CBӎm~'O֟zL-o߬7f?3owygyꧯ^.g >랦߫GάP?P-MZm$T?:͗U?Itnm@3;(AЉ9xi(:1.yɃgᕨ!~rL蘧U?5GE#6 k5D?)2ZoQW?yȮu?5?M_ MTև~qpIYXE'Ֆ\GyŐtOm,s6c q13˲N߯ mjtkgSΗrbeXҜ?r c_Zcǵ.}y|PBysfcݡ~D8p$@o2h?K?z#TOoկL'X;K?@ގ$;#%5e "˨@>x d)Ð|ԁHCL2ue]#id{*/UWm4ncoHh:ԣ~Pu4qu8nZ:22֫?o2ם? d V[d3Yk\?L0cmhΟO?s_ |y52>CwK3&LsX4m-Yl[D?<mog\oZj_u~R~h~pZCh;ԯ>+"|JG#Sɶ2$ 2 >|qxpPFZg!4qnYcQBN~ޡiC"хl_~W~U?baamr,峿N펉m1_9Zr,o7O֟?Y!&Mp dB"_?n@n󏬿Yf;}eϕ6re݅]{Eh7|:Q~;:峜g|eoZfeQ.(7~.hy\d'S>j8d=ㄔHv\Z|ʁm?O(ؔ[Fyj9駌 :ùWç~C[^<ȂW[|v]]_[X>[CtpUi$?2,#N9DCG=hG !u_uȏ|)ps?39gd6s7o_֘?w s?ze?r+篜rϟ7|~Y_Ys9{]7߇?/Oi/Eή-^VB?iCU?mfy}h'OC>4?2Ć2oB鷾|Ȫ:qDv2 9hMr98Kq9RGr4PՏQ4 G'rI׊2ҕl#yCƲ!.5M*=x;Nm^W( @A  @A  @)x_>W<|)VvBή-pRTǬP z!ʆdKW.$/W>tK\iC͎qc@IDAT 0!;1pPjBðӢZa/|NӏZo~#R)j{_?#ڼqvPOA  @A  @A  |jrgu?m>3[I? |,?b~}-:Зi.~ҋ߶O}ҶEh! =6;694P^>.׷k6GyE'q#^֒]yU2~UR?>YuX?'7Mw>@A  @A  @A @O[z׻>Rxg1?C oTGKv$#]WqB}?LT~%S'Tʠ|o[v)x@ȳ̶ $ĽHux(|/yU?:!B>ux1?UꗗB4x˯Ԯ}_~gW# A  @A  @A  6 d\:9 B@:iΟb>~ }AY姼?Z1'>|5~KCU<7M??jAPhY`opX?D~52k\rIꗿGWUl2 ?s}o=GgG_™( qFp׸7htk_?iV#}A  @A  @A  H>;>]8{OB\߉a, GH9# W}.AX^Ӕ#W>yԁ J7ã<-%]nvj[jH^x,@CPeC9ʬV !&n HWrwvm4O^t?]i#s9w蓟`x x%.ѷGk]P?WF70 @A  @A  @X7t!<]m>σ2'4ȫT}4V C%pU5ԃ6eꗇz QN>T(sϽE[#Ӹ%X<*S.56XB|xijR>B7CHªߴ|/eԱ g#xx{+TsEGGy)jWZPЌׂ֘G7;1ec?vjT9iTX@A }/}KO1>}ӗ^zrlo]@A  <xI>S]8p􎂉cMG C !C>/eQG9ꓱ ~> S#~WY| Piy [l'Heg{x<: LdHSi#ke-:i{~Bk2ZPni}畮tQTOe:w󡷺-'\K6H A  ,;I8h~pt^w?Sy2F'tRϷRutm_|SO}}_/x+\ F=Gxi @A  EO[=Kt oѠ_ D~.A~&#:,Y!KIܶFq 5%!.:rUiy `oq>A&򑏵7vJXP {猎:-oy6iEoI @A`8Gʿn6z<կ>wGx{Io.w]wn2%#Yc{ݛvZNS@A  <:?SjHjnj9S8xU[ Uʷ-\P̓bB9y[N6p7Uq齕PHY2h ԅ~KBO9mɟ|eضVe$o@7ji޷^G~uWm?-ʼn H# :u^twFg}97['@A %x+\a[|k__jyxDӟA87u_mG~'=I &?NcMozӭP8;'wO:'>7-A>O~+]zуqzGvtҾ @A }Tkv/ρҧA_>2! +׺C,kYBTndMoݪ*E;^Bˉo)"tsyB1ݲ||@R!"o?XdԸrZ؛MPyd"{GWm7Gut[F׼5;4:qtЁ<>+L_* @A`)t__ۭ.ۿ}ʶAGnóTv9q*?Yj_9ko}*}S_ .PYvl<;4iXA  Fusj>>.!“~aLX: uU( ~O/Wrz\Ehv4 y R.MW=zZIPu 1 c_G~}Աmկ_>C7GFzv/{٫FvX{ov5'@|fGӾy1K@A y~F i@}_}s]8q j7+{ _8ᓗߙ[mED;GWպk,p7Noop\ >'>f^tE]*Wޖj% q>j=яF2ru{]vn?|f=Bpoħm=!39!Ly!p2䛖79br1Y˘c CY @A e/{YiM)?pRCsp OV65$~ 'O\}Q߰oHAȄwKiVF7/ -o,!]ueȯ~x7/^A֕v>.A}u#[+~=xټmYN@ 7 un~N_kӺzi[@A __??N>䮜;7 x+Nۿ۝CF7 ·?[~3GGGGW:>u<ήO=8;gG1z8UDŽp4>iO2ǎ<ѿۿ:.}h_i!ԧ>?f{m[V+~Q'wWe0ze׼fWضN8--;.S"dox;;Sm 8 'R]7n8򐇌I"ęvAge06}kGr p07wq<ȅ^cB\ NAi1S !'OOn{*z.j  @A u }BQMuq'> >HixwIP9""\"ɗr4EigyxO]l}|2o[Mh!2hV`Up|\A2i]i; Ңc e(o\^BȴuS O-'nK]H^9g}%f8kS.]o]zFWUo‡ C ܈C>8 .8eMV[*sA  foT\Y줓N0~W]qm!}s"cwXp8~~i#?#mo{۸FP%;8p"|#W^"oofWq+o;x ooƟ\5}qԅ>ώʯʈ??u}#h2.Wz;ߖ8pJB#0Op̴+}Hmn ~{V aC~"b1g0څ@=y @A  ^x_&ӠCz'AD !DoCq@M>#I~iɱOȂǸa'(E;~cyJ6pSnaU-Crf0Lð[vG'Ӡ/mQ{߰WzuZڟy@1\ًy}G_Ŭ)Lևߚ@O @A`F`QGwo։'}J7Ⱥo>_ݰ|_߽Iv$"qΝ)S^<)cH&ަY~z[ܢM5K7L%õӋF8 J8pACϏnwJӎ8<)_aFѻ.}GGvZWvwF[#፼|+[ٟIH7Z ^wg(#hX!}f? ozӛFc%NVW =uQ1Tcgyn#~'#D[.TG <~pHՙǛ~‘cc3o<ڽ)g>{{gw<sGw#[o'VxL!6$>yꩧv8otp?]gW-Jk*cDZʘ@=gN|#ߤ#2'uk>?|X8UyO~Tiz'wo鐕oޘ?ORYmUޠ,k)aA  @X > zV⇳߂iq}%8ժ%ǤC@{=Y.<߶O}ZtgR !-3}2Į+ت?6d+!Ä$Wdx +xʶ\|7^dakG׈MkIy:GúWeYWj׍ڏ7M4 '<5s#A  @>qyk\c N@3 '!Z &8pzO=˛0ڃ#6yN!g߸*Ff8:.4yVs{?x;Cw]{5[=[t峵G:q:ژv7MkYI.wKW)/aA  @X ܧRkv].|*ࢌKڥ<.O Z+K_i BeBhc]SNm$"t >hɱ"{Ӊmyt q;cF׽μ{' gt{SO-V3ްⓈx ~o__Ɵ?ZmYg5!B:_vwk]qAľͧDi>=!4oVERh47"y#з0Ǯ4藾 f%]CoΪ3+Gv 3,ơ蛅};묳OΪ8XژvoZ#B;xg )/aA  @X ׵{cZϴ GN>8]p < !)S~Bx$UWO-Dg [^tZvlЅxO1_V< M%m ; E렴|xGlj&_veG~ꑧ~RQ\SF=+##'F or/Eѿ>OVwMKuo^g}N;V_S5JA  >v@<ꨣV`c"ޜ񝳇ς,9x#_|򗿼,{챣;Nc8 e]}ӟ>vE/8ɟE8yO:u<=# Oxn^wotA7vc8ņO>'I9)\v\4u ,oR1[e}3/貮ykjmr9Vʹ97Oy^yk.68}7%c.VG2g @A  b`~]i4/8,@:(a~,G񡎚o] x)>o[OU|YϡL< Ҧ*%]t@OTOA #2(g~y oZGQ"mۆ/U}hlc6iÚ#]q~^vavvְ]A] H2~C~vtAj-Lևrh; @IO6ɵN?UwᐙӋ '>s=~w8_׎wo4 _0?Ӡ8bVs u{]OgJ=gSUGG;_EVG`ȸTa"%M薷Q7'8<[s9H$$xGw_Xol@n7^ieo7A  @K y][ioDIH2E84m}!# H-G&_o߶:~뷢_? 3yև_;gXgiU."t\Pler9($i\' g2,@GmQ:ԯ\0léG]B!"|ȾbmMzl5M !Cpp׾~O{+L_* @A`)|#sk%l8xYzV`7y{s⽗ews 't=Hb=@~Ndd]fs%tmqg=}O3.țOzғ?O9x#9-n1.3rEuI҇z(ѽ5|vX:Kh}#Ć^O7o޼[#Ҽ~t!?~ σȊ7IW:E}gtY_wϴ\9T A  X8yszŝ|{ޮ-O{Ɵqo|7piF姝v)G<{+2~!]>쳻b;lv |ܺ!ရ8>򑏌xOfb'6#Xr!cUWMoz<㳞zԣp `4(#`䭷Jk*cZ{O[go&f? ʛUzCPW~+ذS1#|e}[{8&' oޘvo߽"&?e& A  @kAŘkׅ?>c29_qy'ARNX&NO<ԅ K)r+8:HoCe*^''/iM%o䫃+H.7n>y!h<5D<4<=PGv<ҷZmS ~M<No>;59{||]89@7/ȟ{97h(0(#( @"Q@`)҇zύ]vk)B8\ Ek# GD&C׵V 7x+oFG}tobyf|Ӭ|qȤO8tq:_ PS&#=oD7oq< ]ic/~{[|&?ۘ0 @A lrwku?Ӯ˟V׃XOC?c! k\~Ep#iu,m@<-:Λ2IZ}@7s7/ 6dL1 rp?3`O=2u#Wu`[#Q^;GƇlHWC4iw71}jF*JEt^`oʶaoà @A DG #~#q{LE >,C'ؐ_cg?wq;to|4'ԧx //ֳ'A&g>]7owY45?{fU@CH"E0!"*V0 T{/)t+*,X@H 4D;g93NrgZ[_Y{Μ^k?Q:g{ sNT+//w-N?ew>_6VWy &7}w^j+^队繏yڇ|k^3??Y_}!-nWyp̯뿞 L>?{q{^V۽6FhFhF`+xpm:V?N# #ѧ]6:lMߨ.#WKY<C=mxJ]<;S.}wE?Z"v́p[`$NV|nr d2o*_QC;}nT>}ɛrxBvWV JY|U={57l X^p:7)Q;JvFhFh" 2 ޥwN4O:餕!=Xf H[=""AY"U(wև>kY^xS:mxi-TPV!'NwrbT4/=7ҵiikWU qrJDc Ao[GZx_=Dte P4%iHG9/ˁm| _8)g-YO>EӖΩs{8By{޴ڮo 0FDPy5?cB_^֖][9bU]qַ^ymsyuhFhFvfixT.Da#|g.H|}OIK?lW8FƝ&ȸЉdiqk9]Id&0/jԀ O-8$sQ+G.?S^%5F\1ԓ/>'OO/nx'k_LtҴ?yLMw흀SjFhFeVق`: Sm9B< ߭r;ܼ2[E`NRCzƾʏ gl_{  Y__.Ƚk\Vyyb=\,sG{*Vιz׻k hFhF < 7Vzz8.<_&K e:I{pbSHR篎P /FeHͭ83́=5Vr'RGjēwE)H[NSf)mDQOHb|vr' '\UN] 9M|S+:t'Ċ3NJW6( ymCBmw\ڟ89}zZu[;[#4@#4E{Odrpm4@#4@#4@# ǎ1VeپA‘6HxuFJGx~=S)_vͧ/>rKɯ5#$l?eƚ8J}޵&ٵ&n8 0ʼn'v{ؤ/$]bG?>m69җ1k$V1?xAnmèhFhF+{;ޱ:WVxjHhFhFhF`M sǁ{c4+*_pu#H8K['ve +Ֆc0ꐸɟ8#"~mbYŮ+|d7 !&(Pzu1RwsU^=|5vbdYmu^/ި./$Dc T'^9J7WZFhFhK?<Z׺VT]6@#4@#4@#\Jm b M֠FÈ2qYtD?†.<̨N>_b6ʛ]X¹?}9TSLeFG9K;cc8';]bCBo҄"ҫ/#7[m2N[L?yX~cIaGmR5J8o|+֠#~K#4@#4@#-^.>ʼn'uo=bq#4@#4@#4%N8aq0[~h Gi ^dT~%~A%ӎlkݓ zX_7|;q2ƌ#cSFVI;1'~W-1hYIDh G8cR#4]͟ >agb7Q]|W~N7x[hFhFhFhFhFhv+opXx8l jMD›h?D`nT܈:Wu5>B_ˑ#bcG'vV_7I L03F:1qDS&'11jy\H+W+9,(_+_I_ulGG^ol ^8hiFhFhFhFhFh]E;ˊ#expDB Oďm?$${xNO&?s3y6O<)ckGK2 &@HN| | kJY|'<cmӉ'ݨ.sӧ/'^;u6Qӱ#IHQ_+_ǥhFhFhFhFhFhC֠7эrD|8>x02RPj U2\A;HOqg+ybW_eLYgƕŬqGsxWu$v=XILNN,)_lH7ӟ:tNRd'N͓\ɯ^ $ʚgW$";\-@#4@#4@#4@#4@#4@#V$QgE$cT$dYß/|Km'%%]Sg}씑ɧtڮKO_I~ǩqI8Њ0 H9&orb_`W'찵$@LF=jE}dn;%[}_-QM#|7H4@#4@#4@#4@#4@#4"ck/ADžWNop9kh+>;"ꋎ|!QD$Gl?'2Nͯ^}cJ)sV`L@SM`l9|H]^=<|r鴓_I_>Ğ6e򈝹&Ď5__JۖFhFhFhFhFhFhvDՈx8@F$Fmk4zx6C$:ʋ'?\Jh%LJmrOƌ}1jdScIjLLL@vNL՞3G/ّWig,J՞ɣ[:uDu_򒗼CШ4@#4@#4@#4@#4@#4@#{\ WX7êgOH* G3oW}[a_}\-cI9klmɟUO~>b%vgrh%ұRvp3a΄j&O]t+`.:s>}&O%ڙ;td?qMO&Jn_֨WOFhFhFhFhFhFhvծ#q ./p@y >}IbCN%#/aWgM|$^r8Hs6$.L] wH;vEWIDsW܀]ja<㤹XS0J]_N^xfLr$g%fb\i|}LWK#4@#4@#4@#4@#4@#4e.siV@LH 6ނNY]'1jlùБolLU$Kڵ3zvV,Fk |Dz$o‘N64'4Gu" e *KɏtŇmxk~~Q5hNzkxɯX2+8-@#4@#4@#4@#4@#4@#A?4| Y.uOކ>'e .2}:IĢLL6OC8ɣ/u} ?[?|8919ir9|ʀ_3j6u`x:]eG_N,Ɣq鏮'O:?ƛ6;1Hgxq< p,yLgk#Ɓ )7БÕЅQL+_B>6XcCqj~|߄ۡW?h'_k;_I?W] v I'| یU?z$ġīv9ij}k+̅9K&cjN|~c;iDHl &S5@#4@#4@#4@#4MWN֠IDž/HYszƒg#Ge uqOObgܱ_ڱ~L$zqj󠎍~cUp7Eū~1g}{G>Rm-j\KkFhFhFhFh&{tVsG&[7¥*HtFj;\G;\R#I q&F'~S^^N[ԕڑ~/}i秗5&Sҭ-Iv(P}~23dgB&RFKhʚ]N{bXS]ƐvbŔbWO{7kG<|Qo :?FhFhFhFhFhF`([u}8UdRpCGFuj#8Hbc>>GbMܱMJ}è.ǝd#iIWOӯ-TLT M2u^Q) G|?i$Ō}I5?[<e/L]%"wc3ܖFhFhFhFhFhFhv+o;"? Yh;‡|FmCp%m6lÏO8:O>.qx?yG_XM%q71o[ܩd:Z73^'2ySIVS)#=_Ĉ2z1U\W]\vJ'5ߨ.!lsL["&'lG#4@#4@#4@#4@#4@#"'pSN8px.8 HZIj^D ?ue=;j_tWtb388f9̋'KR :c.l#y֒^S&)V$i*MXaBm|c)VafC}bU7ިNvlWf.913j0c1WLЙH:#"A@e#4{.}]7}֙FhFhFCٓN:iܜ+tMg4@#p@rjW׌e_EIe5_÷T;7f!irW_elk!| ;:e'%h'bduSĎ6'tDl7uDw*/q2 V;|@ |MZ=meoN}%]F}k'؉'VƓ{퐆| ԟ|+3wCK#4 aw.:k#4@#4@#{N9jk^ ۷4@#4w""Ɇg/wAD(0B+ Il5§k_nx/w2֡Z#j.cmr(}_[ߩ$H,zl&>ѳA]UOMr'qDW.'M[]\ ɯO^H~Ģ]K?H$;x{sp-@#4{6 wFhFhF8d൮uCthFhvA"#ΛQ !oØDp'Jm`O“^I&13:G?wwC{q{2}͟xtEbU_ˇ8U%Ap12Ѐ]͔N;:Pa^=HДt$zƧ/>.o$?G&_6sӱS_~{>x{ނn 4 `;d@#4@#4@#\^&ⰴhF`oa?xp'!+s_|S/-~x٧_N'0LsP&/<+v2_1;[?h ץAL&Um2jOثρՎzбˑ>:}W?L}&і#qabCk~q8;xv#p 4 4@#4@#4#pWY\瓮4@#7"1NBE^хIz8\ ?qpo [}$9nU8bV;籒/;>ϡ4*?:^?cӮ6w-1ALZ=>O;@.c?z6D_Ouz*HQ_srRrw2C1H ~_KɯlOZ[]|bxG|QFh}?-@#4@#4@#= O'@z@#4 ?{i}ݘ8 ï+q3cp1IڸlKZOⰉOmtJ?ĢWwFHQ$cͼk~}v_i5ƪ_}m0Xbd&cɑ92''Z$G ,@O\z?}_UPk^>z͓ߔlO~zyS;ɯ'q;A;_h4@#,>y&o}[gn6@#4@#4@#q 8.n7@#4p SN9k/[{1pБ<MK=wq&}K_&$c_=zz|O_Z"nH&`@$L]LNX@B'{>$P-s 6cCħgCU?a b>U7g+ 83;8hiF`8x}S6@#4@#4~@gtD~8=Fh"1O_@ql!Ybp)Ov.†>:%0:It?|6cN=~'+cL]_??N_tn)N%N&2LD.R/'"I%O[_򋥞bLLџqXIJR"0~V~)qj9'֠/AA4GHDUzc?4@#4@#45h">=Fh.Q\x17s2H8B>>}l+#|I'~7A>O͟q%R?|ti[Gq'5NeKjW;I::X19 4I&Ceb''8j\/6I'OVEظXr՘rdCGj_a?}Ao :a?F84x!@#4@#4G} 4@#SIw/#*tIPOliI{T'1|>6I ڪX/q2 yČ?(Wuю]ѫ:b;P1 dp٤N2zBk}&|nsƒ)T:W$`[}O["wIK#4&=東hFhF4߯#4^SO=#y@*$xHw#aI?H"&O+%WI;Q'Ud<|)m1UE2?}ۖd3L3!Le\þk$IŠsXzHk[$QX6FzJOU=q;H4@#CW{p:e#4@#4@#p Dqp{ @#\(DcGx8 u/%G#~zqlO[?Nm؅sI~:%~})v͟J'f痶U}I꼮44g]݃}]4@#c<ƀwFhFhFX4A#4D֠w9<+ Q%GH7< nD#p) V_V򋰍?}Ñզx|brfɟxq"'r(3خUS`_6$_`*%VD;9.6;~U5:'1OؤF9ԜͧOLO9ck֠Fh&N4@#4@#s@OhcݭN;l G )Cvi:‘h6pQe]]>F;u>ZgL9$~|iǦ?F$'cNM!nI'^KQwfTI 8zGs) jبV旃#ܨN0x?c[LO^%}kQ&礡;QK#4{@{{gmFhFh3MsoF#PV?6x 0؄JЇ[Չ/AuJ$cIh˕ɑ6?!D__:vl(|ɯIuT߱$N%FIdSAG+>J\Nn'N.$}Itl%c:E.'7j>χ-QPMbI[\D80>tY|_W\\*WYڭ[VZ|}ݺoר/i^+F}qxmծu{q55˿}v9=kiFh.i4xI;#=Fhƽ ~9FuK~z$8i$>}øӗq_eV2N3#q]4@#kvoiO~ōo|e[Atk\c//.ۗJnwYzr:}߷xl_ߟߺ2sY "}k7oy[׿^?3?37}7-O;?Ku+>{qvPooX<Ϙz꫾j񒗼dTx#|+ozӛ&?w=qX'tbF◱(3j>w&[[ةAT*13b0J؄?XJ[%[e*?7:${1tGIi\OKOؚ_7dMČǤ=|dsM_*VYSћя~t2x'on\zȓ'x⮬(4G~??q,ֵ/G9HJVX OOYDΈ9H{EZ z|+gE\l5?1Yw\k"~'~'<я^~[hU<<#bu.|C?sgyfLlFh.4x8 =Fh ; m@Aue*2ܘ+֑:U[>fn/?21lDĤsX+JKn$w@#eB&3١ZPt[ ZOe|wBcN+78bVW%>=.SN[~Vol>WՍ i>Юs=oo\m[U뻾kg?{2ӞÙw_#\)h׼3OD  Y!K3`@D^->?nƖE`@/G`U //Uմ~vn߽x _8žmnxSrHu7 o|ՍVh "vD`PhF@ckFCkkN;;u3p)x $YӨt|@=w;cT6?/Jbkd{'1ғ鋤&)و'FJGѱ%)GuWO.m; ҠI%>=deI"O*tk]}=&cҟX?zeGH~:䠋d^iV[xXuW6XrX>V&T5;%+9DVvo1IIlm3={Wݧ}ڧ]lU/Ka\J[sl+Dp뀝>]O0RFl%_C>gW3GzGy^pln^_|~c>qt1 f*?3?[~VWcNnunLsw3~ٗ}tnt~~ U0>>m^>;I.Fh'M޳nF`x8.#[q8=M,n,Pz8P?_u\H5mtJ1AتǦ:(x.9i#6ѮsՎ$r>dˤSf\& lӮ}bt򰋰Ѯe\s"أl'Xɥ$W đ?Ot<'fr8c7u3axsΙndΑč,$BV#KV@7s?`.gqB׭ov#M_>;L{Z"k| V~>ة_*W7vdk?e#4E{{@#g; LJƁQ8vD,oo6xP1p7tNMQ]A 8Fqj=1đGAzr'';ɟJ$cr?x+2qr^k|H/#`# ?WO~'Lڵc1%\/rgɯ=iKO?/q& Snʸ)Wrh8O{XY}GyߧU*<̓nx~צh~(/ʊ]ÍD% ʚCM7j${dNj[iOOf]RpDv14J;v2.F` MdcnJS"9>볦<>G#T-nqYeegj>}fԃ"pcs,*hCV}7#6#;7*!q *!* A j8n۝1J+"缛_H`}!KD>>Vٟ:]z2[m^a+߃A׻L|EbWHIJ29{n]w+]Jw '\7r$r.O׼5#ibV9|erV[Fno괚?+OzNNg?eɿj\b$oƓS# }2kxwS"^P"3%nfEǭt,I'>qzJ<7imF.qcɓЛ:pT\O7zjTw^oTGF~ۍ7#Vi4>ӍlInz_8fӜtSb ܌.fXn>h;!3nl"a+{r?7"@$lxH!F9fN"lLjlsLD8b1'xs3>2UD ms7*U[^tg_rsY,bn}ы^4}QG7_n!i~H%Aխ>)b]uuUs 1#!sS"uitԴ19]p 9@Zm*fbD3lNz8֜cscs=ܩ+ HYmC@IJ1|ײFvyD|زtߟhF`#D>=Fh5'"_Bp!k78zGp>ڶQCJ$o">Xv`|le*Ъƞ!ݘÍXa;nXY&wt+rtN73"oo&QX̉@`yg;Aq3K }qmoD>O,mb\!^xs{q[in\g a ݬ7.1̉J^4(x^E0"vJ̺Ri Α#B^z@ );=^^NC*!{ܶ6ww" ]/*"Pߛ>fxNEsA!ѶBnBl#ΉX[H|d>A %(3'~'zЃ&YB<'k[I<טsOyHCd)Dy>\\[I.Fh/Ms3oF`/x֠oLJw/>\p(|܎?i'V8xeUJ>udž/I|7__e'1اrv*bl祉drs' nh?~RX;m1rmcxӯ1$ƛq9`"lǜ|hw[G|@lml/K[ R79ߟ@#4&yY7@#W#GAI1zSBĎ D}8by䋞OՅǑ#j?ġfCJEG؈Бn@k Pkg|srC'l':W&>q[<2U?Q$0ad$إ_?W)^RqK؊a~l zxJ91ےn|IV57BiiE cw%sP?$ZMm7"ndKOtnrHV\7h<>h9hL/<XxoM$["rh=;%mX yXRzﱫPgϫ<1Sr7~j"w}3׽Y5wͱ،4偘DR!<#[nڹ@A@+ĪۨB? kҏdP";_Vnmcn!DENYѴ!3<$@4?#$o]l'w>|{QnI,͈@rl%7[v.ξ'Gx焇"W2Y ,3L[ge$n +fuj~2Vd~!ns"p~Muʼn@MEBV\9eEmFh@F+ fkPOPP %.~cT'qI{8姝8:q$b.l'>8ɏhu)'W;;S?|gGu$g2 @$耑ѱIөmwTbOϦJb['/ vbjW+&{%aC|OI_Qɟ}|8m:2'mi*q{h%=OO_f|EV~A4@#h"p_|#4B7#q!|GD=VDП:R#ɨ.q5_mjg[I~uŭsHgC_ƐOOɓIUk@ `3zh&h/0"r1aˏMU;qFuʛ<)k~;2%17Sm38tr"]}G`V[ZY!VEPzғaKl+C[o p$"͙leUd3"+xgV{HDvƀ\"p[T@IDATD '>[-"jML}jV!EY!ߠ鲴Ml嘎,"3_dDt];rmo{4DZtu{]>BCdY_ii [,o%}ZF׺#qߣ{ޓU!d"pe(L?|.~,!i=0`P~}g ω@z كS~nxYg-gJ?9HoWĭϱ|Ϸ|L+Tv26gH״ω@q'kV&vO:—(c@(*zi%iM|u$1>vkT9ůW%<Vg8gbd~U?דdJ0Ǧe =T;WO~1՗~VNQ%='I?)%}SO|bGtiq1h)7e6}z"X5J57Sit7|w)}~rԖxn_"MC}[ben޹FlisOg<1~Z DBOs{m{fb r5oFh"Fhckéw9qx79ԕxy=xۈ8JLiap= {b|O~cNSFJccbF? >Ž=;!$w$ Huc;A)k,vɮ m9hU la\28U1F"V:a>R#1mgno#"ۢG?1>[_%8HCԭ7J߼g"EZ9|5ZU ֜+`wJ<|p:$Sq!$:~$z%%+R96;vLOOmxɯOD/FK熟RjGC5H;6>ySү-T#dM8'MDĨRgtM}M;}|!CKEu1b/:S겝1FHzI[nDVwVXPE~ՉjTlO{֧yD<X8ܴ&n~m?C?tSnX!liK4?UqLn E*StM[m6tn4ChGohK[);"y0hF8h"x;=Fh.$m q|h|GxQڈ6|R#GU`O_=.ꉑE%8=F9WW'%POqcM'>2VuzRcmh3AT1PTFAh#2*r_TM/I%N~6ڎ%gڣky"C+1:xY!FR! /ԲJea=0ne?L$呀AyGUϪ SiJ)f۲Rב`Nih"p=ګhUKηmw9+A֯rhF4"DF"pw؄oNKI_88xۋ&AH7q#p3iC?UiT'Cb^.gKl_J}{b$1_柌DǠLALࢗDt)W;c/f׎zˑK.: j>^26~3?uW;9Fu9n]kX>c3;mFhF"D1S5qD);4@#74xܜʞH#4 5(ACHHx>ԕvJ &܌Af!Wt)k8Sk%cgC26q36a+%.]lRɞ%PM}%_;p4(b g$x v>A}!F^d7$:%}|7?WJWۜN%}tR"@# M 이hS?|4mivx0KJ@۶;ZFh&3jFe.s򞮷@vAx2B|)"i겎=8!;R %KR )MɟXx?ڙ7ࡔ?GI_M9Ŗ[[|Q ReɑϤ 9IX&# OIK/l2Q&Q9ب'~Y[$Hđ$g&GbONẻKi+c_ڒA`8f3 >aIӧxԎ.?U;cH~!IqR |sW&?C>zH_J>en}Wu֠whc@4@#4@#wW@ϿhcwY" 8p&A&|8x9K?%! ž>񔄯*ӓ؋!nl#Q3>~8|92Q]Im@k.]2ȔˎQsdp21:.'vwT@:\bVcO:ROjƗ2ɣTOʗGR"A>8hiF`h"p@@#4@#4>G}~F8\]zwiƁ@/!R$x giTvѯ]%~I6>O(v9$v+eqV<u?vlqXxs|#¸fUVVՋ;'G<+>Jikjǖd\W3q|$ٳUD/)UO;c:d'Xģ]$qLϫ,oiI6iJi钶ʢҪHPvREDP$]Eeqc"@&im蚴>2Ig$\יg=~}=w^̷D($ V:cV<$kyk,vbVg6ir:qoY3G>L5XB51ѠgѠ A |B|1 @A r E`=V^ͣA׷ .8 ܆|~<x2tyȫc]uL禎V^p-ڮܿ| L~j1 vzЩڽ4S#a!vEnjǃ"pM{4y4(0E@;[#w1 @A c9fj@A`RD;|G M!1Dr6aF\ k9r᳿fyډwS^uO'ZEVI C؈lH~q8c(<85ukĨK⹐:K;gn.Sg!9v|^/lql{GYm .@.@Z @A   {pO(A  @r  :>C۩Mx}gԤ6M^lvfr:aCXb[(BkqxDk 觝5}Ey6wbI@YCI~ glqR&3`3A=jY8fb~k<~ki'hІB$  .ظmA  @A`&k=?E@A ,DϷj(O""Iqr+FNco,aOԢ}yXkc,7Sֈ=5?}ɳ'O\%B=6Aa6xxl3f|ȸӓ68j׺CSn q 1CoJ>734+[nȸ#A  3ˆol^A  @A XjpwCA  { Wm\ѥh`/#w]x'zcnSuRz=Z^c&a5Yz fYGN @XLSZ\py֒yG M6|'NYn8bL=:f3ȧX83ٿ3s/X=ڽ|j(/vܬuML%+IdF3>ͩЩ{L>Fg_ko:S[1=kD!'@صЫ4\÷UصJ @A  '{~ ǁ.kS {װrǶƍm@"ppƎ^r&1HQ5ٟ?:>\C9i^= ƑsFEa[X|!E،¦ݜ6f @ڈCwM[8sY۟Y[SN=7=3'n ~)Z\pt|>~gl)rx 2qA>8 "v@炒}u/o-r㫱un܏04]2_H3@sx?U$ @A  @A  @A%7%܅\1p%MՀ1!ܑ̊>p*Q\eOwJ-r݇E?LN}; VfKނ )B AD@y,5z35S\.v~5%5~r^'51pŤ:X.lHD@A  @A  @A EE<V"BnN>xb C5#r!KC'|:"ȕ'y[qƻgquq_7<9맖>\;k3P`Bz >g;[O<=^|bX1$W=y<S »̓?>/u!{5B)==#ub˻<ȫ2_?uNhЫo}vT @A  @A  mr9+m3۲ob?޻~A !P ڶy4(< .CaQuxk0ϥ< 3>s7W۶k tžQmtrz&ṣw\}'Oݺ 5I~`\s<3₠ ~ւ!\Bz.kęxc{<.Ї|Cj]bgd1Qڜ8cu9xGy4(D@KO>yl(; A  @A`Y!pNDB]s5}@Zj8C,ߎfo~C{ڀ~1q8uhwr!6,.liL73\c  ~kt9k5ST؟fu5W5 rukfO ?{18a=Y#75NTƄ?-'8"N[K=GܸDf&JNrD94Y8vP86gk f\}5?uf/@QO{6Տ1F8֧ϐŦk#gHA` "p\$ @A ,7&%  ~)ry!xyL輠Knlw֎ڀCpߐbf _R M3q#ԭ 7c_U6sAcSgH'r֮g:~t"gNGGo:OM:JlZnlg,=aXG]0t|\6w4uLf#5Gn~5|ŏaY3] O.5Κ"BZl0Y`Gg::46/yē+8cSgVc ç>rĀ/,~_F>L E=bݵ>k/!~Z>5Q\g9@KKbd+A  @A`!0 o{.(:#"9N?\rICGHF#pC҆$|x.ͻ͓iQ 5Љ[a]{X{ >flNtabٟkYXS7Sm/frcOrش&*`CnMs`X_?6sO+r~B nXژkjl=_цt41W'b_l:?"A  ttEv@A  7tӰaÆ{{( L??s1oő 4xZ67ƹl{I: ;!Ƒg ٟMx8>|N>Gbq[=9jl#'x|3hj þnjs?lĸ6<a'&}ڟB )7H8sp=8kNgm#z`f]l6SA艟:ʉ1@EXwG HA`!"p]l' @A ,#&%կx9JX<.w 0 P #!p.7y r1}q0A\>\sPj =Mo"r,c=^\ZXtsn>c>6+cCG탽`gL,lr¦&8|A'Vܦv$ܬo ~|bs=bUk`ݫ!ums9~֊yǾ_GA @s- @A  ܮhγO{ǰzS۾7qClr:Y3>ԩ3ܑ_3lڟŸ0ïس#:C܃3߽b:vr'hcF?ksġ#kQ"pM{GyG D@KKZd'A  @A`!"pnW"^s5 UVmG D9 {K zA ǀ@9Խ;< q=氖1ϙZ 6t'k1}<>Wbƀ䳇9K>g?HZTƄ?) :U<ÆP9d6v+.Q؟5m =u='k}3{7ޏZv<е3>Cgc cۣAr ^ pr!7n&(^@pےnaԧ>5_~ظqpA p;q梋.1{GSI[#"pkLb A  @A`q87BJ9گZ5E_\8[4<< ȇp(%ڱaȇ4ȷ{Lxbɐsκ˳ؿVS;cfw35s1#SE;Eg_gۿ=}&~A!RM:Zx0$P*CTk 5ڧS? yNA7=zةG,rN,1Ƈ AYѠ&}4Yg5{r2tz2G9*=nxקr7q-(spg \rV3 }abjkcOo_g!XuG bѫX=_30:1 \XCШ967̚C2;8qZ5ǚXękccMMRdgb3f?5 `4h#QD͘u{ wثdžG?ѣK/tt//~7Mح?@wݎMOOYz?֎̯BA  @; sCv$OUz;9o|׻5tyןŗ>%<:wgl6lxoO. /챇vB/Dಾ9""=۸a4"8O+Ak cЫbN3MS{N][X5Ra}G b f|rEEG̭8nfySk'C'8 7N졉{f >XpqXb.3l ;%kMfD;mwr׊+z#'{s=wxԣ5J@IV@>-2c_uشiS" BmGs>pwV>;e\w$!"pn8%* @A #"pnH^?<,!O~g;<鉧&Yy0{'u'tR_<̮:$_T7L)\k׮N;g n,9GsP\ubK\W@,k&R!}؟:ؑڏ|ȩQ=۟m}Wb'z) .J\~pV|@7x<'8" ՜?/ W_}p׻u8c7?n믿~8}w=,~~i{6<ygw]|#?#*[c8ے=Av7t#>uo}׼x39<)Ok}v||ڵ[}M |^a.泸EB.W:\(cѠ<p/^!̬gӘ'5:p">jBƲ{'p/G>:brs[:H=v{0߃'Q78i Ni} ~x`| yh|7tĘo<*uM/g_3XZ1COc4׉|G`%[.~]_j𖷼ex+O?}:zկ??:ZG Y9;իW0roDy߄O}S;fmfu]lx3fGdP ;^ M{ _8 C g?ٝļ.<G|fxޝtP'w|xӞ6_u[euG^G?5At;u5> d=C nEA  @A`G!"pnȎ|J<]Gc֧a@u|Ěma).|Aρ>Ϲ?32'=2GDk_ځ/nYϗy ovY<|aվovY$,3%D29Cw#66O8ccż ecGι\2P,#Rmjr̚}Ls+byk扅b%`=- fAG a{Oz@+F>бP\0$څǴGxX|_N ;ZLOOBo |_N> |eȿT*!f,{U5VG.?Ы!οnfL<3Θi[}CN9唑owNSsNCo[׏^HYbs&wL"z;@IDATG g?cVw&/}K#+Cuvڞ p#o `<=yOw!w3.wm2wQ ;1'p& 8\ 1hf}ijGk3S8ktDj*dM]fl,2X?:vs}bZ5ܐ&:v03kN<61's?e xSG9E,6C?9#mG-fGzЃFwqwq$#-{|>r!x^9P s1u/x f#5#л*z +o]/#ŋius1y V w3¹.=yѷq7" ;AAWGdz{D`>"\7+}SGL|;~臺-D`!?@A  @XB T){|oP@>:?"w~#}7}̷[nxK^ăp K| Ox賖Rj38^ύ@/CLy 1oB!lԃrN $…frѹ388g#ɚn;~Qщk" .iT^Ψ98v1i^=!B1Ƌm_dNaOH*׽nG?:"C %^| ';jD@bCNj혻@(/6`TCȗ;_y]q/; ^ܱ__[Rgy\#ۚ5kc;;_c LyϾ<#;d(;5;?k){Qx)[{G ^[b`] ߄ @A  v!8{<ᑠ]tQї;JV;>'XWyMc˓3_j?o~s7qJ]},e{:ZXuQBsxs MDžM_l~'#^uZk[Ýȟ0kTt=_4pSеɇ4SaxtrO]tjufXߞMasmr=Eg_^îO"N80m| 8x=,fS; Bg m5a?ktuq=Ok٧؉fC<4\jc!޴i5۫Acx\_vm0/8qXcͣ?5݇5V4~mmf=o>$6q7Dx2SPJMCٟњGwqq)@5ŠsT"n<4gD<B0t 6cE1C9cLJ~DUe.D wqpC"=+A  @A sjD l/Kz%yK_nwy},lDy'A\ dOp;y/e4ϝӑ Y$3Ou/y+_9<#Di"QE;q38 AɁ4c6b]Oo\O"z6?xC|;OzMuLAz#z@P8n A  @Ax1N}_= ַ 4' ȣ;B<nj>0*x3FO"yӞ?y^62ND?KLJ>)O鯀!~<_Hl}c=/!5 ]zjF#E^E.53D\˃Xv1l6fj0S^ :s؉s ;b]UgΞӳkXpج;$7]U:9$13y`3kfDyP;[]^Lڅ5̥/L#kwZusw?><x5DƉ@>sWɸk׎Ȭ8?ʒǃ*MBrwUgc=P\(S~{/gͻ^\g=Y~u=G/&2ջXӇ;ox k_ZvfUR5D(eG D1KFA  @sC Dp'w?Q[#xk9f};]}mo{[_f}U<"Eyt**T^wbpOz_ xMjs]z~/qHL6x|~I n|CmnŽvdO1{s:a ZH3eY]3#!#a{`c@D<7_d[ @'}c}|î=CX_%o]L<Ӈo.< vb>tD PRe yrq"pÆ AGGmG=^<;ѳ޷kw^?򒗼v}7xd).<Gz~Cd_ԧf7)G:Gq´|+E/z)#vHSoBA  @; sCv'>3T~kD _xt[n݌.OӠV\T#`Ŋ54~ώnSx)wE(ْVZj!C/6z!Suk_|ݫk|xH$^ܚ뱶?8=,ooyBW2tI[-;We4[F|j{ܶ@}3o]viO<"n}vھ/; _?:*dR; @ZWY<}c aȷ :)>{ NJ{ D"ȵ5Z==8?@/xq @A  sC=yό/pgAξOzk^ӉN@bsoS}w-ѥ_宇\W8[,ʣA׷ۀ`Y0$u0?B<| n=lm،KnYIƻ:ЍC'M v:HJ u_kF^oyn8.F<` wߑ/1L-  6F5Oe{b#X[HE-zcM?rk>9#]ÎR#曹$S=rn[D ?j:Arpm|@'< F1 wٝ}.RG.&Ui _x8~gg%UCT 5#pkLb A  @A`q88.v /ŗy w)< _p;x!'tm /ׯ:%DxsIC9GnlcyS< d<e0˻0K5S'7Y~xka7Rki3ǞG'}KZ[y| ^YZH&1 vMPx"rx6Ap8\fH el3wP(5>'E®ӏݚ*cЇ:N԰?v؈'#sԧSƷ#-'?oS^g#E+dGM18q{c;֫_]y~O\# ^rbuuǤr6^Ao/e4Fy}[=ړ? ǏJl%wpm"A L!"0 A  @A (B(dSwwC DvsI~4D |\:0JՉAʟG}99f }r wu1fY#Yq]_SxfA,BZCbEť&&'\lټabx8lLt5_hsͣGzq3g"xza73q^L@tz1{fƚwhǶ2NP{^͛K.yی"rK_p5t2o3gϵB.첁wcѷ=b &In/oJXdvdx]/|Q#D#A l' @A  &G D%3TBV4m#P z^Ѡ̐XU.7EM^cGA<jʍXxkߵƒ>S{g⬅^cg6"zj}X(PPh?Z0\te#Ƙ,G5E~ݚ5ֽ{;Oӟ;mDt{33x7,-f# iN@A   !ʕ>n_g!0hZ m\7WD5Rb}='?>8WaroNݿaݦv5у5=km[_{3_ LŽ^xFWUQ3YrBK  /z@A  v!wi/qHLxj+-mcgw3*7#_xiy8zujQK'=v;emjtgryS}#(ę\㌙FCFY;81Wp=\s͖]!<8":w6\5OH]/IZ;~D16m:vy=~>໾O_]@]={N@A  v!w; "pw9b P Z= c@ bv`/GM"]7xks ĸ:oZ!j u\kLE 6#܃0Q0^L6z6 ȱFS7_8=#ijWjc=z!:zFuk&? :Ck7yQ\+ lg>3| '0t ccM @A  ;#0 xM7 _ׇ{þHؽ~Ý|ذ{*s@`Ѡmqt w!^rC\]Q'Ρ<vx"y3Xc'oN3u!r/aX[ݓ}>l95g)?m6A(EP7Xʦa XرA awM11ظ092ovc_""ٟ~0[W3!a&&ƙc_g *`C<H0ɡЍ~Tbo6̦{Ѩ@O=8be z4Ϛ9:9İDs#A  ttEv@A  y/qt"d~HX\C{Z'¯;a}YΩ"#0Mʞ m@H5 k"ya Qm#ġ3>ư?:|bs^l?v mUW]. A @s- @A  Xȗɷl ܴi)šϖnflY{1L]{w' d  A&OmqMhGD>?3p:áP%֐ >ޚ]O>p;9kǚډH(PaSpOP?'z@Z<,NgM1c#}R53btrYGrG= #{ft!|e# A ,1$ض @A   {pI'MtniG[HLG"cŊq>$nBxG D | 1pm3t 7kkoK~o?}ܣ_;5Q?"X{޺7ŘXlr715?vǦ>z*?63ӏ < B"p[2 @A  0lw83)h>wz'lZ{ 53;Nx岧H?sc׷/ÀbFC xfxt5iSg=oXf;={Yk`ƺgk \37|bKl>`j.=(vX@‡A<x<=tg(b|~Đ~מL2!ޞR [g k;A  @A  @A  UVh ౞|p]c-'By6u}%QOщ'zAkn]F b/'̱F$5!tU^=vȑ|kjjb#?3XZϞډ1MGG+ %tA;14s~#g@ A  @A  @A  rG6)x``i4+ςl@NL]c#ݽR[qOc'~͡:^M^ȧ6>cgx8rXBMphJ?ENɷ~\ka<$>㚫}&y3{P\߽Wj{b~ӇcȳYCi]44$"A  @A  @A  "0}Gm@8 @GC֑f\[_@ةkڟ8cٟ?bsgO,~}#7ql<~7ǻ/Hd]"Xzƹ&t3q{gb3:#טvѠ<+HA  @A  @A  v9Z ڸ CaC 皹r4$'2wacϚiw&F?uMobdYOlqo5mcvd.N}Sf6kx=usbr[\8 6@k] 7\lȸ>a/gM_tlfF<|!?loMfѠ)p3 @A  @A  @X<@D |M~ύMbq[gk@.^e~Rc1Їa/>G~c6O{]7F =$32^$axQg]uA9sx|uћx7fɌl9 =_vS{{`5hQW\qm @A  @A  @A`Q{G `(p- cY#b̧b *gD.~|̈6ӋksXG#됃J]K?L5]7url~} v8ZglN5RB!5ڬz1H݋l?g1a]:b¼G HA  @A  @A  ի}GBrlc-8sZjkcWk˥4wM< BRXk{M9O[ݷ1}efЋfv̓ KXl/u%V 51A?:%K38k7:DWx:'=xq>"N;:!oEXcڣẠA @A  @A  @A`Q#wnlG(< .C8t8f1njיã`Ckjmf؟8{v:ɱ3BOjv[j_A)ԲuM4[l$k!6ѱW0ǯ ?i31 it?c5zK^R^uO!G\(nf% &wS$ @A  @A  @Xlxj{A[ڀ S kse@)暃_؝zbƚZg!j$k&6q\ko>-Z1s0j L1 8c 88gz!Úq"/Iܙ^LԮvو?:=9?3y?}A߷c;׵9@A  @A  @A EGCmІ$\wyc q،i g r WR=fXˌﳙFq am >_Eg_^î,'Zt"uŁmkP\aa95B=khyY3뾈s}Z>-Nx=\!a#OlsGRSͰ8@A  @{Q`tI[c A  Ll\䀌7NiÏ\Ս6qe-WW?~yp_cG]3޺rƓKz&l䓋X^S ~tFU9{zX|ؽ@C 5[Hn샽a)g,5BM}i;:~c bh+| L A"O^:N@A  @XV{CeuIs E/^;7QǐW b ?Q@7b'\P3u1T]/^(BYcg`=k:39c/|ukk-m-ebg~' 7])`YsHbf>,?:nm󩅐Cj !֡?b{cc?654X|,ˊ)O6J/HC NSg< qm{ qM[C^]33FD"^G5ѠgѠ HA` !"p ]l% @A ,3B.  8ѠV7?`Hx5/9(a<~xuhf}lX#ڍojHZεq؟: v=]\c u/{LLFMZ\p@S;e"?uE>~bĦ.69|O/Bz/jkڟ[Gl(D@K Kd;A  @A`!"p]% p@vp!hЍm@ ae0˻0٘cC[ 1ؕZK9:K]djXtw]ݎ=^~9'c?5O /TZ=Hw ;MŢهxYѭI}9ȡ~OM| PSQW?ڟ;xvlD@KKbd+A  @A`!"p]' ~4D mr9B]^\ :v8X qԗciΝ!מp'ةPm؟5B}5 D[5j ub%an4S{g⬅^cg6"zj}X(PPh?Z0\te#Ƙ,G5E~ݚ5ֽ{;Oӟ;mDӬ(Qr0(3 ("*kVq̘aYE1cp]]EQ,3 (,KF=3M^Wuƪ|uN@` f!gγN@A  lC Dl{9OA`f#0jЃ.*ʑHPp=8//"oN ֯^=i8Gjh 6b:{A;9~0#کi\O9M 2$W{;}&~='m|o߰ c}w}  u`9֦m#w.jDh$ 6!H @A  0{8{mN@w]weukw[ݪzd!Pnynr_|q}f$n[lQks9]y}lշrn޼yUi?ϙ3g=Α(@A  @nBN7@+C@y8 x8 l[1>2Rv^3ژEGׂx%/ٿ=Knm_mnq NΌz^f5Ǎsh:Q/jCIis6p԰31ؙWLF?q l~E}#ƎFZ\F >?o| 6-c^! adѢEGѕc7t.wKwe]~N?^W_Fwݭ_Oŋ'*K.q{qu[Ӈ˹u[mUOO_T @A  @  A Xo[Zƥea0UwZ$66ffEuX 7BM5~lm̠-W}Vo~L<}3vO%N|8?@!>Xk!R$O@Q2l*q"Ї5@IDAT v~X"Zn]#rM.BG uSL~FFܩ+>7Rnbf?n}8()#.Gu'tЇز>Їv?Okk^+J! @A  M @_tiW〫@<,C~NDXZ΄x"Y?>bdV'[~Ƒ L`5EX38]3# ޵:9EqПm\[Ԝ؇NU|a>8js<46tg>6uf:jguM}}>by]S ְ?qކ$\b~^ :RqaxGeLo~ ?k% _=cL|Ӈtzhկ~nx@6;M=vicmfG[?Ojᗽe>M!@@A  V#!W#)@AFYkQN-"B  GQZmkcԱ1gfŞǚֳ>ԠB k}ÌML3Ǿ؇OUMy`&C7WP1#~e<݇F]bY#^g֣y$Q~_~úUKW2-|{^?Mu^[)rWwgqF%tnvu7g&?s=mnV:묎򖷼k?OoqK/s:Do}UzzvmA!\1D`kUt~w6لK lvqNJđ{~_v߸G>3nm6c˗/$q&5!{6pU=U!y03j>#:"|ds1ܚk~y{77w~QzTY*'pB`#pn:48s:^|` ;NuN>G~ <>_q{\-}'g 1ܹs|fk%pEx~EuA  @A` "p.A  0(x@Y]Ees[H{ !8Pxm(6\a|f?яz]x #JU7!'aG=٥^%7?O7Q5A2[?7-@v-[B)?O[ oxF-L^oQFӟtun1=q16L7HX $ %ɹȍ֬7%r\yo{x]wu }s=iko[!}b!"ZA  @Ӌ@3Ղ@A`߫Xqi2 fxf>B `FGǮ8kQC8?k2뷿5ч;}E57;6r=[[[;?O*i lXl{{F.9 \۟dgt ,kCю͞SL2^؈me?_>ZW7 Gg<6;;=wx#}T%ƫ#@b^TW,~6,#oA02_r["r2䕍S 7yB-jB::H^SK[rD dz7 SxE)5H/~=*Tk!E_ހn7BX'Z#+re X57 b!x;WbD 1}AD{S~;Y{oךP+S#^:ǫyf߆wKu @A Շ@Շm* u.;]V@G%Z>pİ 15Ѧ;| O_ۮaja#vu}Z~jaXx6!tõ:\{#V*F~`cgX5\='6GcGG+ %tA;14s~#nRƼZ|#Bss07C}D{ݯ!i$%8Hr+ b iIH nI,>yϫdqw-ؾ"RH/~q׽J(rJYpa% 7jvg^_ O0$}-W$B=7~.#2!F@ѾNU3FVê%n>#QN !scmGW HMH`򕯬XnRi@D^ !pːypnJtM783ήpksoוoWD>GODr"OX^m=أg~B^?FA  @A`8B[@A`8Jˀঋ:\|3\CNu,F1Ĵktl·?Vܓɵ~sk 3C$&C2ؿa -lh&8qSG!a'\[O.Z5y0AqUtG؃\6^ٓg!}?} ?y7k[+zR/wU^_!a&y7ȸ-ͷA"%>Otzիj ~"AĈ?<ꨣ:H1oAR*! xD`zspoUH&o8JBA)ܲu 8z3D OT@TW8{zNd;lμJ -yoj8۩޲VK[Wy-(+M9X O-&{u2Do8HA  @A L!  A U@`F%2F \o@|sa#!N3yxy Ե?z۟8cٟ?bsgO,~}#7ql<~ƻOI{"}p37wkA  @SG D1L @XuFKƲ2Fu-G!599I.A:6 ][sP7r9ml1\e6Ӯk+a5pؕ6~Rԉt=3>qga#xk2#\_ Z_,njQ!p3կ~B8 o.+&pWŋwU;iO{ڴwߦd}U*㕔Ń  #3so^!D dɚ Wj8n!S5aFsxv7+k!VEDZo<">яZu}Gvy{z_KBЂ7 ݆nX*OS7Do}[«tI@*ߌ"l8ڇ~λy~Ou{Ux(X#CչE~?!# @A 5@5t @E`v2 F3  l#},:~_+<GL|۟=࿨?>Wj߹QC}N~c6O{.R{Hfd.kI,ϺQ`g =Fo|k2#m tg jc_6kƻfZdnޒ2-/}K~c!A~}X:@yk"7cHnZA\ >'Mh"wdvx4Ugo s#~N\IGme&|7G(oJzo=v>fmVgl}PX7_>"۫VfTvj@Ȱ5~tgq)u^D [lQ:gΜo*[TX^C|c7=!AɿYH^bۼ+d!t!^یsds @A  Av@XF ۀ`(p- cY#b̧b ZΈ\gmuݏ3vG!_+\oglvl~QvW9oYXE'ƚ|ҮCf9 [GL7+cTX;^g=DFujoqKtH6`xLǫAAEdɒn#E1(Ybܜ@KW/3dSXD[w_W6,[S'^{{O;sK.\d>"WbS-{%y._smuA'?I}-i ؇8HzRן.X~ ۞+/ YA.D~A @A  0BN drFee\^dېlr-mJV_1WAۮ03cO+jߞhu1oca͠ѭl1'.qsl/u%V 51ntKbqn.uXGuO{`k؋8 ˰6 >BX^ hW*- 﨣vi'ML^z7*;s%y nWyɸi|ӟ^Ws;SΟU‘W$B."|)|[ΫKǷ[x;ޱ9}ݷ[ 7 Jyͥ߈?s{{ks5u iG=;czUK.m5O<ĮůP9zWxb-\{ӟ;}Ο?$ َ>fu&HCB)%ϙLX[x {Ƶ"pm!A  @A`#"p?0 0FeOʸ HԆa p*p`c`CXc 8H<\sKQ<Zj!Գ6a?ktuq=Ok٧؉Ǿ?B۵1VX䪫D@}{-j\/&7I_z-%LS0A  @A L@ # V7**256$'\ka`j!mk:1N^߂bzą1o:_ ZE@oEo,ST C""pH@A  ""z!J@A L#D9e@Sٴ|:69 cF c&W.kucoPIJAWY硯}1AwxZO.3a#\ZS6P=Pc?gvkbRck=`o3x>WǨq1xkK}5\E@/\dI G<fHX=\=jA  @]"0 @X9sp#py@x p#p-(F`7 **Ƶ9_q/Cg!_qϬ3sYמm:39c/|umɋE&ym5n=ԵQ# yk[\ mXk2vʫA#@YY# A  @ i,A mV\Ze@o g $8.ׁO^okȧ>6s!g!untkO-Fz%ڰg9ֈvGAZm=tЉ?u{@"V[Q~ڽC1_ O2mL8C06axjqplMwc"?uE>~bĢEy >퉍\c?/!i5msC"A @@ @A  08f@ p߸fmx52F Fo2]l1\f!⭅J[K9:K]d|㷿?=K1W;~D{-jl圌H)uީQ~|mj{,D,D@33ad+A  @A`!"p=' 0}5Deer9B]^\ :v8Xn qԗc)ʝ!מp'ةP-؟5B} D[5K.,.070l>y԰bg6= ^;nqn[ {p3g!xza73q>L@tz1{foQce$ f !gʓ>@A  C D{9QA`&#мO^ * ds{ɋx5$7CMo-tX}ڞY8kֳs g=|m}Z(:UPh?}ZQK.2^@IƘ,G5E~ݚm{3m6foڟ8?7w*D A $gΎ @A  f'|r{Φ#,A  0C}5Ae{gq6H$Xc7a`'nO[W/PkE#^5`4 ՝n?cԴbe.qC ŧC@Rṙ&=yyȾRb}ޞ?>qoXɱu;w>fuZ:`GcvokӏܶY؃oλ ]}G"4@k$s؃@A  @D[I= ˸ 8H tFȗ`G7p#sQ+'B>BO3>rCױ>sag\`ݢVNz!Gf|-Ql9ŮKB` ׂO{pb:w6\m6bv;`ok;XbUWb @A  @A  @A`4DRWk(.႘Aj`+j'^͵HƵb WbbO;o65C5#5G ZÞg$rm0ɴ1 6aYA5ZuLx֏grљxJ\[X^HSXu{Fuk&? :CkWs\WO$ @A  @A  @NF_ z`yvֆf"%7ρ5ucX`'1#;yu q{aMZE{?cku[o?BSDBY{(Y{$[ ;D78y9#kW;{?3>OjZ}ommG?:u8'~)\$+HD@A  @A  @A iEqp1ش6b} evx;b/m#ԀkN_Bnvk۟jÏ]^uqEԶvf>փ073L9nC#Н9zQ+(JO}lb6#c`+jC'1vd5W6b!NfKXi 8D pD@A  @A  @A D`zKͥe\ZC^~Ibil`+af^Zp#DX ߒ~lv>3{kd_ćbN߈u6"OAn,s˦a }XرA awM11x0m-renQ8X۵?""ٟ~0[W1!pô| 9P㡱 '83+TcqgVi9m>qm=CO 1!İǚ:8s}hTlHܔ &mora.>t㩡_pXYQЉg]sc,3X&"H7MQ6ɬMf\6@@qm cc#5Y!a(q̧1N<{2X7,?vF /ثE$ @A  @A  @Ӈ(x@xv!o!ȇ0gpCᵡr!Ӈ:$m.caSQP۵>36b\OOiw۱5A\{>NPB  Cwxj 98zpaMv̷?kzh7' }Z|˚=k=o?BgF'~bqB$ @A  @A  @v"RoBd_ȑ ؼd d:c';53G'D"5B,moO۞'DMcG6,{b6{N>C.PF&<1D1ؘܢV-D-&`kƌ`GB-{y}obk~쒏E>z*mlg6w"D D@A  @A  @A FF7Q7gΜKe\Z B"aCCQѱ3nZԐ!N5Zc`moGͶ6yjo{1̥=s1x'~RbI% SCpyh6A#>t%LJ!?3DSX#퉮>T{.^؈me?_0xOA  @A  @A  0z[oͫAk=%:uɻֆ1r*f adG1^?G'8ں6b{?aWgݏ}e]6揅ms<BG8\˵9oEBMlg6vu]X ]S;1X[{bs1}tĽR RAǮOCMs<G:B&e+\oI$ @A  @A  @NJˀh_k@3:rEgG 6r uA']c#ݽɥNC]{^M^ȧ6>cg`q7M 1~8ro=j-xH2}WMg3>{s,ĺ/5#f 8teb ZG'C3{BhA  @A`׉d={A iC`Fe@8 c%!q0ڍN]3F!1}?M~};Qk`MăLtnkacx ?æ ~)(֤'"jm珃x쮍#Cv،7:V!V??kCgWO$ 0?6 @A  0k8䓻q A (7qfk-599I.A:6][sP7r9ml1\e6Ӯk+a5pؕ6~Rԉg6b&3ՠ p7 0S8SD@A  f!g3͉@3Q"ˀ`3W/ɏ`|XG`9ƶ3m@.^e~b G^8;}[<&6J6!%8Çb>VDA(a>7k|c6ߚH[]o=8b<3|b]k͋>_RHA  BΠ @A Y@Y@s  G`.õ0af@3Z5k9#rcFٟ^ev?g&\=Y|kr羝ɷ}hE^ _enx>fb`p[gl[kC?J&i{,&m1aެyF`A!@aa$ A  @a(A 7э9s˖/$61ڙ3W̓a-Wbr)E]klp,mͽF[oca͠ѭl1'.qsa rX.tpVG /^_ԡ bm#ֱ?qc/ⴣ36,^< cy5袼  A  BΠ @A Y@Y@s  G`F \^Q/53x(\\ qp&bs]Ԫ3cGPKyc~ԋZu&^=c{,!=俨Se/jPɣIpClMco$6 삧||Ɛ'.$~rFOk xQzK揽@IDAT= q}(DHA`f!"pf=& @A &BΦ f>܃}Jh폝z[ a#]8oŊKK$ f !gʓ>@A  C D{9QA`�z#dzʸ x p"$Z;|yEb<>b!'B=}W"}`G1;b]xko5WlI'6 &Zʍw`njg6B Zd6j6YFyb|8#zbY8r?M@rĹqe˫A  C D { NA  @EE3G A %/[= @x 8@&d AO~|ʅwn J۟Xr5< }?q Yomq _nHA mB'A  @A`""p>ۜ, 0эn͙3hocHN`h@7b'\P1U1iug{:< {f!ͺlՙgI{?5hcL^,2k3p5$a&ClX}a7ܖnVb?=xk_>ܧCqcmXf6k?sˍ\CN~wK..nmnsnw>(]ƫGdM$# PInV[mu2W_}uWsoMoQ@% A  @) A Degqep, t/mJb0Oϵ YG'c(eW Q{b苴uF,#x{ ׂC)FPb#ƶkb=lkAEAGNM']{cmmu=O1=<Ӈ_U zmTNS}59ӽ o/P:nu}٧k~_7o^^ʕW^ٝwy-הoq[-t%6t?qۏO~a{Xoo~s%@ @A  0+8+k@\`F2( ~Cn>'A v|"~c\G>< Nkt[|j!{3~;:yu8rͳ~1 '.{$ònn;Kpi#krcvÆ}x腸N[C^]33FoDŭkyʫA{'%oO?}ykw\{8n~sN9nwkZw=5)adOzғ|c"p Y!o) A  @7HB [6@"мti9eO0,^E:<75Ǐ/n=m، kDqԣ?ˠ?v-wcq؟: v=_"Q[1UqMtkMHc$b-<ɴ1l<!X- TԚC]E>~bĢEy >퉍\c?/!i5m}sBr}o)3"s{vmYM?&7IM4|3<䓻=qn\o=`_s2#'w7""J " @A  pC D eA 4\fmx52F Fo2]%Ȋ7Y~xka7f=:K]d|㷿=K1W;~ >5gJ(o<ޝq&nv6ߜK&f\|yw;ܡ w饗vzjFיNv6=Xg""^Wկ~հnUs=_Rr-StMA<v-k^~ݟóp [w !"p{9pA  @Xc\cPQA F_ *xY1W娃:\\ :p>l/G#RL;B=NԱS>f߱?kX= 9+jό8E/P'Xrfqaaɣu6= ^;nqn[ {p3g!xza73q>L@tz1{foQcev.x?d+^O~una@wcխnΐJD'?ArݭЇ>4&?yG=q++_J׼Ԇ:3o})5gΜNm?O;ztPGۮ_?A50<?*/2LDG?5reDe]qխ>K 8!RulyZ|3QG? f^\?\ }ݷoL/x5 6ؠӝԽnZgHGG֛?D:(ͳ / + _UQdMvm[VN>^q:LvQ@?F̛7toJo>!~5UǪ{iv"Q[ouolF=a N$wDx?c>{ҥ=q~u 0[8[d@A  f!g3Ɏ@Wr{2.=kx ׃" & @ikjm?qث`#Dsg 37:A%n(tHA٤ Cr ?WjWϚ8sXٿ#ڟS q'-jP=X}okӏܶY؃o+D"ns #{βc={F`K3Hb \&^'p[ ؑGrRveRƖ qiMohכ}k;nA<´!62HB~_ ٸkA<{׻m>+?xS Ş']P }[_M}}o}u?uyc+{_}s.7 !諬ʍ@bWk ΃D1Sq{ֳUC7lJ.['w^7^ EVv%㕡k<xYCB*oy[g>u ԧ-ZJU:G=qcق@$s @A  08Iv@4DrN_ c@ bv`/G!M"U7x6#m[/:5^Aq?lu԰9P1Hk {I$Ƅ{f6*ƇfY9(jݗ3[?z ĞDg+qmc=z!mOubխ͚8f _\o^l|#pA^,Yҵ7Nn]A"W>yS |%ߖկ~5rp{ww&3mo{u@ɫ>(+# ȱGU7&ȫS 7!8~D *pgW2n0$CEwCB>Jl%LI}W*ԧm@P[TE6h$K\v@A  ,!,@X}5;QpC$9&NCyk$?1#;yu q{aMZE{?cku[o?BSDBY{(Y{$[ ;D78y9#kW;{?3>OjZ}ommG?:u8'~ۧ\0WmcMŋ_&G?ѵ'< qr ߗn\֙zj[|_Cbʈ?#00x7!_v_ mB;06}]'XI}'p@ E ^W[mU?Ʌ ֵD_JA+Q 6?O$" 08iN@A  f !gʓ>@͍ļN~àǀ@#(/c,uã {hc6\ v nvk۟jÏ]^uqEԶvf>փ073L9nC#Н9zQ+(JO}lb6#c`+jC'1vd5W6b!NfKXi x"xxoL*;sO{WLnSN9qM#;Cc1HVx߶$;wnRovi5oL䕦ޜۇGqD-7D _VE{SҖTr-; lo x衇^/ 2V"Q[ 08۟p@A  !@X`[oKup yf& YAzQk2ÍPa[3~Ks߳}{8Oݓ}>l9m<:~#!l>EnX8Ŏ{a<쮉36E-jkG\83ӏf/ڟ< q~RbDug?e?GH"kwꩧ*D 1~'Z|Οu!mvVߘuNF" ye$CxI'TupLBl9yxr3:bA5Ƴ>⾈GG g1<ѩI}kk؏x|zٟ8toCg.`~1U?[^߹0<"K} eYA(9NYɲj DhtĴHRsh-R9 f-hK 0MD .b dV{^ u?y^l\s:޻IoЉ*>3owmI@tv[^'5O<Į?X|JϘs1m^wFڵkW]3?oӠƽ=q-L#կ~'"<7;~'=I7''[o馁y|S7D%WwP? 9=n9M#@A  ""pjM A $7h-yV^SA>X`Ch~r+bml!:0|Ϯr2k>qm=CO !pǙ:ޙ8s}bR $h @ fM5Ňn<5 kcGl~e!݇F]bYc/sf֣y$\~ù_;rQG G;=vowyÍ78{9ԂRx#O^uU駟>=أ ȧJ'!_paOdv}C =G= >zĂӨ6l˷Xg v!/""ۛU$y'< 3^zigy,oJB@p%\oOXb83P8?.lxSk8?s 0+'{ @A C D=L@e#?!.Yp IX#dv`ǯ 1 :q6kueGjޜe-CA]Csfq\GPi r|bԱ?ѱ𛺞3v:_BP3Ʋ?3Oq[5[C>>*i΋o}8蠃Fd}coMJB9Kco~{Æ~ρn z$ԅ^[@؝z 6<묳:27 K*x_3,T뾈@r<́ϤV|k^3|#u1r|T"F{pHBj(gs @A  !">@E_ms[H !8Pl(6ZC.z[GR ?.9v?5=O =O_c#Ƴ4vw[ijL L$X0`!\rTc^Ћs8/Kmrg9Cy? eqfsNj1 18#A'33k=ȯ!;o?xx[&ۅߠx{{;4RQhe][/zы޺T3Q?\rtͰ}s>wx7ﵯ}mpdW֬Y3| J<=_W[}#ü›,F1 Ҋ{tI=~T-@~/[nӛ 3o|M74((D ~V/yK:a}6۬?/oC*:y#J%'k6%ϩ swq^L¿;~1f Ds @A  0=gI@ xE/!G`a  ~t9c';3;G'ڛǒϲ'~t綧G3oSCuj~;#bEjQ0kbZ"C! b=txbȪ1IJܦv`@b}k`0ճ#QTe/&ƾ.;sFjg7wT"zm݆=ܳ/ x|t)|n []tQa!ǭjXfMLb -~;=я [@s_BN˓A  @A`8{47 A L3h;amum B"a?PC!!7b-jz9Mvz0{|ԬEPxcٚ6s;7|b_/Jl`j./̀kt@‡E=ky?;DSX#ю͞L2? za#oQ,"pu'^%@A`쐦`A  @? @x b-wޙO^@G% g9bTB.b~Nֲv&cIrk` tU^v|H5 5YL,b-tgOlmbcLSGg$]8h'x/ۏtmZ>xʤHHA ,?!T A  @A`@$[ۂr~T>%~< >bc :1XtgɥLc'~͡:,&a8vl!__{G.q -UK{ < t!"pG A  @@YzKA`'ۺe~bx BMNDF `g'Mx׍\NmKFsyO gŮXK=tcS'Y C.U!hc@.́9s1v1]pc9+^>;6Xscmxc#13.0;غ#טvӠ<%,  "pzE& A  @@Y{OA`|͇]v6m|o!0!H先^9x}gbYUXYϙs͎T;y΁:>gؙ[{4hsoA`Z8-O"s @A C D=( 0-@ : ~6y;W:1@. 2G{suQC}0 wѫ^ͽ4R0dGr",.=;|ޠ|c7ߚHy1E rO㝁ؾ+S A )B D=@A  f 3@s #0|.õa@3Z5̫#O/;3pvF#됃J=K?v'shM\ꀓW/4,}cW+ךؼ4>ck]tbi 7_z&ylCGA,[ńs_ vmo6"A )C D=@A  f30s &fm6X !Hqnr-5n\֫R{&^!glp,3^S{~SV6Ͼ,z֮y2rQχ%RPr/e%=ÅXt_Y_ԡ bm#ֱ?qV؋8,ڲ6 >B>}tm> ڐ S02JA  @1Bu@SFຶ4(܎!@2JC3awCv;<\ 6Z쏽Sf'7LzRc3翨Se/hDIp whtLk.xg ykf= Oi tohg A[(e,^gq(DL t!"pG A  @@YzKA`I/o뎶 *o'BT:p6bYp"x/vwkiy8Gq9cGCڼ53Mܴڛy4BKCQSཌ`B!) `^qvVpgZ} xI> . yŚ-`7z^3xfPScގ8vXjjlť[K)@A  @A  @A ,'b \V}#C^E.3gF%%ވ1&rAŸSugP |ř9cg`=k:;=c/|ukk-m-ebg~7,n$1;y^ycmck#1m9jj,6ۣ[p#ơC,Gcm~olorݤG@A  @A  @A  |ug[p,, t/mJb/΃Xgyjó`Ǐ/cԤ/欜YΆSGb= u,sk=AGCY'k RG)^FPb^c^|rAU@}|SGc}|î$8_%o]LBҎ^cg@3HA  @A  @A  lN;uG[mrC< v8buAG8\w|}Yotr=S !^ַ5j !֡?b{ccqgfL,>Y\n;A%ɅYcÙ\tiz}O;gaC<[>cgJ$/nM8۟xZmj=%mHD@A  @A  @A eE|V'Xp, v75Ǐ/n=m، gDqԣ]m=ýC7SG0ښų>浦wC1wZ_ /2mpK6ax jqqlM߷1N-  6uPgY?oOlkq 齨EOsiOn'\" A  @A  @A  7|e]4躶@ e˻٘cC[ 1ؕZK9:%g.Yhmp25o,{winL8kS`/d&K᥊@R!N݋tG\Hx !Q,:@Pk}\#}삌nM*kjcQNj'G^jjlDy# A  @A  @A  OJ֊WS]^\ :v8X qԗciΝ!מp'ةPm؟3Bޅ}5 s"حXA:1ĒK7L&'\ h e}5zu75zM;^Q㭅>,}H7^otNqޙ;FGロc$ @A  @A  @ˇ@4%*`ĪY/^_";b PSn:[ 8n-7|ONuz=[zyWk6Bѥ\FN ̆,vu3NM_8V7P|9zc>DtdHz &~}{Nj|qoՖɱu;eݦv5у3]km[zo~;^HA  @A  @A  /hֵuG[p8ȗ`G7p7B>~v N|Gv|冚iT_InFgeNsM휎C.G߾iP @A  @A  @ˉAk5lpHx s`L,:vE8>83:I|C⌝:ԅ8˽p&ez?ckS[Ǻͩ>o"R!Ð@ѩ=ӯMAD࣯S﹇HA L /Q& @A  - ӟ bA  l7׵FDg<1شW[3xEycK~F5Zo$%>8/E=3o]^@|e-}P>twuVojJis7|^j݇n>a4tX$##ΝZ\16b!U3'~o| mkU#OTHA`zgL@A  L!p9 !g2A E`-vy#ڀuk[p,yvj.W"_gsFpƏƌ_IfzyN<}3[ɾĉgbNGGo:_M:JAA^T Dk<;6H1{a<잉3y8SkC-sa7ڞG\8ӏvoޟ zY[wカ@bXdW'ַ#\kpfq{fGAguvs㈡?k\Bzx} *>L0vB5Kc#AAOqcSgW#xWGxQ]#gtjR#!^'ݷ!3}!?6щg&5}fy7Wp wh A iA D<@A  fLs 4#0Oxe[7%o!ȇgpC᳡j nyK-ĻX/.>1l>}ώ||vo rޏ353P`P\pɅ.O P?'zA/Y,NLc#ř9,̎\H#ֳ~xN#mo6"A )C D=@A  f30s &@!hYr$!6_r2^NC xvř棓g"!~?s䏨|s쯝SqC,Ro:59X'. a9_%҈Ʈ6[ٯNzB-{y}8715?vǦ>z*?6]< t!"pG A  @@YzKA`l͆+V&]֭m˰+$v1>1>FE yYO?g[=Nf6yjo3[S^mR޹FB'~QbE%SCpyib bC`W=۟̇igt ,gCh=ѵۧze<;B=GA/l8ꃟ@nxr~#?A A D< @A  f3Hs T#[ ;3->)ׁKU>r"ȩǙhSׇ]xxgdgֳ=O-l ®;}e]M“/@:<{. ȑ|kjjb#? XZϞډǘ#J-HI>qN 5^9۴F)@  ,2IA  @5B}@Ӎ@y#6mSsP vFS,F$13:6b[Н'ڊ3\7n꨿S8Yȧ6ڱ3|eaM, Tq.EJ>$đ|kq&C?3Ol<16.:~Ӈcȳ9Cn={l, @x? @A  f3hs T"0FmK7r0tx KC?d9a'^1ϳ/G3F!1}?M~Ç|wۿ=98$"K)6z1"8^ (ZSPIOD>[=#iG&1C:+:6㍥]O?lHB|unf̎|TvqaժU^%R88lI A  @A`# %$  7|e]o/oֶ+xA*/DgCG8˟˪♺͇>kݝ93aL㼞o5حmcvg2EuE-^/g@]BX.8\b'_쥱 f :BEdžkovs|G8s|؈5ޚHAuwxӛ4Wy׬Y3r!+^av@Ԧc~K^2q}N9% 5 zkT8JS@D0 @A ld]A l-@ : ~6y;W:1@. 2G{suQC}0 wѫ^ͽ4R0dGr",.=;|ޠ|c7ߚHy1E rO㝁ؾ+S>l hw}a͚56}ɹ z=gWk^3p 'tAùkuQñ;ܽF 0G@A  &@Me &+@>!Hq@v%DI@窛̽gb$7A ;b >l9İ{n xgǴO]O^}>r뭷_җWå^m~1/N$V[q񪫮uG?ի`d[ooy)A\nݰwX_<Ї7"{#.ᢋ.G `<3g$3A  @A`V8O6 A L'oӠp;:Oeȕ"Fa~xx=>O}S?+W^뿾G>rq W^y@$(d%<9=qw wuww__`/by[ؑ'?>e#d?o{wxi}?묳/]y睇sA`bA  @s̿ @x \  ( q0gk~6bY#s)Meg?B_lF=󘇅؋3~gjY3v8t{Z8sϚM{Gs/Z(Ta05&Negg5Ν^gpfy'Љkj\^ic7Ө>ݙG'^g'; '1۴g>t!"}s|3oAAFpq@} __^{6o|i%"Gyem~x0mE b .葼idcvx/o}[oF} t2/~{vmBEx+#g>!A!>>H`}vc=FN?~^j#_ B?jA  @"0 @AFsxyY[%!"M΃8vDil rItjtjg=2s6(\z!̜.E]tr&z:wSYîb 'RZ\6~><^Zj!Գ۟3:˺Es8sZ>-Nx=g a#\u7oeDXRXvܿۿioA}vۭ['Io~c !>q tMS+ȜyK{  8s^Y h5k峢vm+zۿۡ[ S )͒Ozd' O5o|c'O=AC Du: @A !jO< A <̿xx⊶܆gx 8 xl]b^SغD^ ձq%oCC}ÎX l5Wy^nE':D%K :ǎ"~vj#ԀEnMvcgحyb^>v8wü ݻKa,j's mkicx{߄CG&$GGzyïbv6cC!4&r/{˺>=G=j?Q O =7@ro!2'(oxz 7o}:ațȟٟOC={@\sM'ay`uQ3H/!_|S= @A <P~{AG`|~p@&d qO~|ʅn KO,gtE폟8y|g|[Zk5g/M* P^݋7_PBz vcg5;Ho=cgF5Y;c5v[[\A}Gbdc7 aM__ #8bz׻: %YE$ݏ??> Io) o*^ܯ~ BiP~;SN8~%`D~WCO"oG9Cۆef?>@4 A  @)B>w.@xgVXڪocȫqۨD1擃=ةi㘝ks|gk }iԓٟ>,;vq6ں=Oy UV7^ 'tܧ@|]w5_E;O}+wiE]C=7NЕ+Wbc@~xzy͇Opw}DigP V{-qCD9!E"{BNsA  @A`8O5w A L/WxY[w!AA <\:đ/Wc;>>'?gntkOB=o_k89@#CC<654X|,/ˉ 8ܜw/Kp i#P3vÆx}xxNխ;g|xH$^ܚq?Z> zlEƼַuLCAy=l#! ['2ʯJmOӽ$dg>Q룷0򛃼]ۇ o[U6| _Jnᱏ}hE;^,gH, C~G~uZ?y#0DeӉ@|.* @A !g)A MiԷ?`Ix5/9(a<~xuhf}l8#ڍjHYq؟: v忈.15Cb"Zxi3 ^}\ KPc#h 6}GO]vj_9F$'>"ouYb_' aR?yM7N0\K_~8 ~O}j'D=p'v;s}S~~9(瞻,DvmIG9SfRts%_`؂!T{g;ۅ[dMXF|;9گڒ@\Dg$/@A  |(?= #υ.|t][F pFo2]l1\v[ 1ؕZK9:%g.Yhmp25o,[zfvD6 6ԤoɄK 00:B9 @CzXtP<߹G+ݚ9UǢ5:N԰?vg؈SV^rNB[o8K.9;'-ۏgqp饗jqm{m ~)PNT|!5|6; =;a裏$rHMw m@n!DvpۇoYh-r{×D򶤟2]ۛbhȒ@A  F""p#JXA , Q 6vup>QT/G#L;B=NԱS>vL߱?gX 9.kjD[3j ub%anLO5#˰0kn6j&4vĽѣ[ {}8YƳԉo<,ĝ8& :b=ؽ3whkuj6FA-}x|$>#\V"pC 7 zիFn<FgË_ !y6|կ~/Ӡ!E-{xaNA  @Aࡆ@}@.ӠI4<;$V xkh'r#!Z!lwk᷿;}jOtCkȳZ_'.U2wb/$yA3Z (%]Y($1KoMbjfu6cZz]cF~F\;)ZHT%N@ߵ~#ΫFq7~#>-HzÛaʕo|N:yxWgJF>YN>~k\~~b糚_| QHnq`z沯Yf>0{ag\fnS;c=|O]FQ3AC tp..E>v|\thja7l bW%!vg'YZƙi#g ڟX`ς|̍7޸߮5h"]$ A yBBA  @!/dS7 B7Pб]#&.ƛOH͵\wb 9+11SwSkS:P?Y_n?bk {:\"`i{vl.dX A5ur'\b|W O Ϭ:c=z!:zGuks&? :Kg77x'3 ,+A ;!x@A  @c @X<=e^0x3Xt:q.}qguÓ1#;yu q{LZM@" uS}ح7DB C!x^x^8 2Q%;Db黯W;ٟBMv1֦.1n}tS{_k G_wusi "p)%7qB#sA  @˅@B2u@A`c(okFDg<b 6F`G%?\tp-؉\[HI[̫ ?vy䋨m}=`?3I9Υ|\F.%ya_wb~X$:򡓏;wkmr_1l7 ۶ɻ.E:b0@" @A   PA  l;|DyY[Waߩ6I,mmr%,՛p6ngj̸kQϪ9>;ՙKp@!xtD$/O@M%@sc68c1x092ovcDE?;afC zY[wカ@bXdW'ַ#\kpfq{fGAguvs㈡?k\Bzx} *>L0vB5Kc#AAOqcSgW#xWGxQ]#gtjR#!^'ݷ!3}!?6щg&5}fy7Wp wh A iA D<@A  fLs 4#0Oxe[7%o!ȇgpC᳡j nyK-ĻX/.>1l>}ώ||vo rޏ353P`P\pɅ.O P?'zA/Y,NLc#ř9,̎\H#ֳ~xN#mo6"A )C D=@A  f30s &@!hYr$!6_r2^NC xvř棓g"!~?s䏨|s쯝SqC,Ro:59X'. a9_%҈Ʈ6[ٯNzB-{y}8715?vǦ>z*?6]< t!"pG A  @@YzKA`l͆+V&]֭m˰+$v1>1>FE yYO?g[=Nf6yjo3[S^mR޹FB'~Qt&@IDAT eY_fD@A45J4[RS6)M-4RKԬ[̌ͽլKL2T`fDAaa=><|NX.>@A  @2>aӦMSv' #V֭[wb6vq>%&GaT>щa bkM]v5^3u _[g$vu}ZB~i2d7gy6p˵9oMBMlg6vu]X ]S;1X[{bs1{ ]8h'x.ۏtpey E@A` +&U؃@A  @3쵗a}="!X@A`Eׯ?UƵmumY, fH F uYi#^tbڞ·ԽR[qOc'~͡:^M"1Im}hdžq7ŊM 1~8ro=z-xH2}5WCOy;ckrx{eOX&6k=oo/rC"@A  @A  @A ,)wҊ6r0tx KYHvrWsm}akgfCE!Fy?Ə`_bN>X( )&k-l V}`Dp<6P+X };_ⱻ6FҎLb}^ѱo,uMB~!?kCgMGO$ @A  @A  @Xjf@j>| &'"G#@?3@&Aktk_.6s%^g`#9u=^S_ q{ŮXK=tcS'Z \XCШ967̚1;8qZ5ǚXęk[8q&=s~L af[S~Ԯӿ?g A  @A  @A  ;!rrۀ?D>q+GOa-B,kz76Ivgbh[&N5fwЍW|c6ߚHy1A r؃5k7ǻfZ〦u%HA  @A  @A  whP8 8 05!|j)0rFnj8k?~L7{?95s[ul~S'ɫ ϵYǬ`W,5yh|ֺXo<*uM,RԽxn}sֵ#&!l(D@A  @A  @A %G`֯_;m /$61ڙ3W+1z6\JS{}ë !u aO޹ԞԨ:}g_knmfk6zZ]:ڏ{ A[(?e,^4rągQsG 0E@A  @A  @A F`'$W6-d \1X#ƘC,NO1l-m3k6Բ>kq7V&qX56Z_{3`b!lQS=`B!) `^Ʊv9 aM ׵ xIbv{U>+[#@C}ÎXũl'1׳ZƑcw[>ąwlcC P @A  @A  @K,V6 )l*߁M|ğ6ɕ ZjڟXr5< }?q^  yŚ-`7z^s3x>wǬq1xkK4襗^zM7u#A  @A  @AnagKzDcԯV 3"A ,Z~=wnm!9!ĚYGoĘOvf䂚ŸSug^ux;"cZZK[K]Xd7gPPm9pHbfr<16Cmnv?6:3v:"qX۽{9AapGQ3-@}CLGz@A  "6۴iX۷okvرK202LIիWk֬a},xRymhR!.XI =UW6< voO{epoO_7u$@ }Zg2ۓtȶ ottԴqtص8F @[4Ө'g0mŽ:&HA`y!x ',Me7A  @A L g}DD ޶m Ynpߌd. ]vـ~1q8W~lA`#{k׮d|OrEƸ&|c3Byb\GBȃסk f5vtqgfL,>YLe܌w' $Fdkr;< qm{ qM[C^]33FD"^G5Ɔh3D$ #A  @A DBcR"+wzJ G pE \rI3#Mݍ׶O0,^M: wk!^>Fz%ڰg9ֈvGڠ?Rksn:1a_jkjد5=C >3v g#xq}&p\ A-x.8){y2"`1 bSGEy >퉍\c?o!i5ɭB6"A e@evA @A  0ELJr'ap~r#xyLKCkr!<tk#ǀl@X#7p.p6o.n vf=N>3B,~8o7]׳4sgOĸצv_XDM‹at8u@/DSGEya"cdtkR_r_S:`AvrՏF;* 2B D2JA  @2&%e?)C$  GsVZdA%iLJQuylr%|b{'Q_F:wB\{cB|7:c{rA.n "5ԉ!\Y\an`|am{f/f^FMD^SƎ8mllĝv,#A  \\D@A  I@>;.(:#(, /!#r)(=EhPy fH*"&/#֐N5:[ 8l-7|A8g-k={8!򬇯׮m?9sy _ cEW(>jyy[Xt෿ڭYcݛ1-ژ#_?#F"X"A @s- @A  0mLB^wuÖ-[~yB<!r?OG}><-}4ͿfH$Xc7a`'nO[7P}jbg㈱WF,3{Cg/vug 37:q%n"RHAy٤ CrC߁#5+gsP#u'q'{mjP=Xӏsؿ֦[K`.;< @W @A  "0 cǎs6m4dA`{z5F@w[||:r3%э1߹ga!'Qkfձ>sag\`ݦvNz!G^CAw_R*ƛOH͵~Cs ĸ:oZ!j u\kD. Safal\@cv}9o.1+p{'Gg:zBjOubfM3b@t~ol#<x"A @s- @A  0m+.B.wOC`Ѡ'}mojkmG?:u8'~)րB^mseݺu_e "p\t;R#PC"51j#FBQ^X`GA#l.:B _.I~-Iaٯ6uXW/3cGI~Irq^(aԛAP~ڜ/5L vf5SO_SG>tcgV3?M}k#Ruϵ7†;gHA` "p\$ @A L!wE{n1}{rG<c>BN5͉nVZ'Nio60*;& YAzS{2ÍPa[[~Ùg=i?QzD f_ @A  n+Bq"C%n߾>C GޅY\9\<[Z5,G;aTE>A 6tyj'r-frc c'̊=/'ǚֳ>ԠB k}ÌML3Ǿ'/VMy`Y{C sO +m[6_KQ؟z֩qh5s4u/o?ra݉~gx#˅K IFA D|PJLA  @ "p~gv"xB_~^7*xi zЃF빔s=wTO^»QG5W.a˖-:{_[/xc;[ j_9"0KJу jj 8 fExr%#d ksg.>u_[a~^clo1q |7n#κPXfX" H3MQ6ɬMf\6^ m cc#5R鏐0Cy(q̧1N<{2XW7[|r|wi'Wʹx>w_oo{5yMsGܸ8?@A  8?n?||Ϩ (O}Yysux֭[WwwO}S}߿iT ۿ ??u~@Nnڴ_ gqF|;}{ۿy]2z'i4 Ƃyc__V"p\s':_lc[h|3~f8g8 !֐ >֑'BOC/h꨿kɡ>36b\OOiw۱5A\7NDB  Cux\8cЃ8KmrgYCy? efsb/c͌\\G~g*xaGǚ66,%_pGo#ӟpW pGo%K#ꫯz׻oR ??_C~~lZ;zӏ@9aA  @]Fzοw#߽׽(T$;v?|x_ߝW#8bx??^Wv҆Ϧ'< '>CA zSO=uگ?=wG+CBS.BnixG D | 1pz3t 7kkoK~o?}ܣ_;5Q?"X{޺7ŘXlr715?vǦ^ԡRc?7.ȳ_ohGOukE,LJ?17[o@"r ?|/!ͯ~LB?x X.H};U8tӺu N 0 c @A e@]q"c}.ӵx4PG~GD8@rw}ws,tpg/՛ǝ??0=gk>wӝgf8Ԫ7u]7<$_W zԣ9ϗ~=OG~k!88?}+__y'(`ʔSvAs >_~I6n^_!Ō0Ç@!!̈7b-jgzYMvzQ"FB u֤F\'~Ab%SCpyh6@$|ăKCck3Cy1o>N_em?bq?ڱٓY}\ƛC=6bk@ 7[Ot<kfwYq{7a׻I@@ٕ.ȷ|,'ww./~rd ~{@G?y=pqƇ#A(r7_&S ??}<}{_CtG}k;yG<"~_,38dժUG>e zғJ$b(|F!y(ס7~7x;~\ W9g\ O$@Ku KM]@'5\y6u}S'x}r(Akn]F b/'̱F$5!tU^=vȑ|kjjb#?3XZϞډ1MGG+>q\9#?8X䏘%RhoU[L<bI4F>'G!>&XP1I bЇ w/^r%)2rO9!W\ W9g\ [kۀ 9 * hꈧ :@cl\]ۓXڟ\j+|9ԵwSG!|j!C;6|PG_{G.q Z AܔAH؉#W;k6y0qqtG؃\6^ٓg!}?} ?Z<ۛ5Dh%zA2}wpWZ;sҹG<לKy9%mH_}' >}9v 'too |+J%s͕˯ǁQd!D  Dҗƚ;sy/汨~؇HӍ@龾9]A  @؝D K<]Wpk^їС;}y/~I'$"H^no'aqWgM}sg?Nófx[7!9ꨣޅ+=GDžܣ/_6;"0{G)ym@8 @GCf\[_@ةkڟ8cٟ?bsgO,~}#7ql<~7ǻ/JcF`xOdG a~衇vG=[\xm_ŸK+oogUm߶S8x;9pcJ+*K,76qlMx BMNDF `g'Iݚ˩sɣY#؈?|N]z^+5~Rԉ_"| _E~>D oN'g}v_2ޟO|xB??}vcKU{0t?_eԉ{__=h+z^1yL-b+ D/Qwa6n;8 !H兴; / ORc۲OaTqM=Z5L ~b0&Wa`uM~lm\]'sqꛉ\O79 C@7aBlq$ب%ı6@hoؐq}^Ϛs͌T;yụBYcg؈5ޚHA;O Ϲ 3y68;Hz_nzy Ę2'O_վ5"'A7ߡgd{?|s;N;= xZ=U6???%/hs%"y)ALJy}s|&k |3G"A|9^yw}{_݉$DJ9R 0KrG6 F3  l6yM_.|Uy<cL|e@\+\]j,rP:셳ӇՏzi^h1UؼdFaxQg]uA9sx|uћx7fɌl9 =_vS{{`5hQE;+s|swQN{c?c0|#K?ӿ@^w̍=9g+EB+s.whP8 8 05!|j)0rFnj8k?~L7{?95s[ul~S'ɫ ϵYǬ`W,5yh|ֺXo<*uM,RԽxn}sֵ#&a1w\+=#^xpw"JzիL&^H ~;s4"*|c/#<^~3YC98A`j86 A  @׭e=)OFR3^>+Ow]tE 'S8OZvmS*W>A~39峫}ݷLJXn]c=SyYs>^~=wnn6/$61ڙ3W+1z6\JS{}ë !u aO޹ԞԨ:}g_knmfk3;cvzT}-UϨ^Wv"rsA>#8b] oxCtєM6 /}K$DJ9b#Vck<nGQ` < .C8U3>\7QPjnu?6f}3{zR#1=bz_S^>Xl-nCQ;Ϭ ;;LVH䚏AC=sK o}c~ť#>J"pRHSG<|W`yʛfBFLPF.'=iݑ3D(A` "p\4 @A !W/~35(m<z[ Oԧ>5|K_w.7"}<^=9p7J+̓ 0[6Ux 8‡p`tlkc!?241l-m3k6Բ>kq7V&qX56Z_{3`b!lQS=`B~!) `^Ʊv9 aM ׵>5~Љkj\c/wnQ}jW{lsٟ< ڟ|>Ơ1n_Eg_^îO"M80m| 8x=,fS; Bg m5a?ktuq=Ok٧؉Ǿ/5A8׵1.򳮿ߗniزeKd>򎾹:ym۶uoϕ'sսuM[fOSӺFp3oΠMC5,kI Lp?،5jsvk5 Qe|On?X{Qs#ơC,G;6c7ڬ <x7 A @r% @A  0}kBuC`<6v)@f$0m5ýaG?}ԑX1EjoOr3 ~ZpQT=c㈱uMwy@n> *^|^zؿ#ѱS>Ia$X_%o]LBЎ^eƂ^qL  B DMA  @&&! _<`o?2 +kf>6nwهZ#A  {Xv-w6 73xp`'/75qSȳF?ͧB=o_k7sGX퍍 ؈#<7dbɲg<,+f3?(W 96"k uX.8Mݩigm?lkߋ^kTb15z%zOFz%ڰgڍkHw?pЍC'Q#]XmMZg{cf^`Nl<!4~#_&bSZ,fAlh#Ϛ{=k-=ͱ9?5uTB$ .H@A  I@E xQd|w~HVXA@r!<tk#ǀl@X#7p.p6o.n vf=N>3B,~8o7]׳4sgOĸצv_XDM‹at8u@/DSGEya"cdtkR_r_S:`AvrՏF;* 2B D2JA  @2&%m6|K_wrT$T;;<\0A`>T"_!N=uylr%|b{'Q_F:wB\{cB|7:c{rA.n "5ԉ!\Y\an`|am{f/f^FMD^SƎ8:xw A DIA  @6&%o_pWt2c6hr p<蠃;êU| A(=hPy fH*"&/#֐N5FCЉCocw=щqBֳs ۉ"zj}X(XPh?Z0\te11KoMboc[ƺ7cZzǧjc@gcxF@` !ϵN@A  !0)^{p8:~wcHN=UW^ypvذf͚?qث`#Dsq3NM_8V7P|)$ ǼlR!!E9ٿƑ c}w 6 u`9_kӏڿ-w%pe7"A  ||Ev@A   ||/|agKszf.۴Lܵ4.ظo}ڵkd  A#m@Jgw3*7#_xiВ߹gaVzujQK'=v;emjtgryS}#(ę\YFBFY;81Wp=\s͕]!<8":w6\5OH]/IZ;~D폶3n7k$ v+ui@A  "pg6m|]wݰcǎo"8[zh>!uvAo5tlppA 5I5/Rs?q:xXa=J B֩araP1H͵=L`i;{f6*ƋfY9hjݗ3grљxJ\~G/T'q]Ϩnm1#Dgwm;OϣA'@X>@J?׻B& @A  ]ɤD ;gc3?/w.+=-wf zR6_ŝy<6ĢcWԉs35>c;am L] krj:<11uߜn& -V8"8lggA o-eXC!̬n>ٛ!Ԥ~P}`#%ntpNۧր<=Q֐ @A  @A  @KDz{qp1شW1>2R;< 6fsj`'rIKo!}Or7~.ú@|;LLkBa>tgu l~a_gb3~$:򡓏;imDbmİ'w%N=8ohD!#@A  @A  @A ,%InݺSZ۸  3NIbil`+af^p#DXVcu֯_3zVÙx gfouO%N|8?@!xtDf$O@(vc+Jbb)f/l5qƸ`ZPܦvq؍k\gfl]3_~xTl(D@A  @A  @A %G`֮]ˣAoc{0 DcGp"r(ƒOS~ l1361gf6:cX(X47< @ fM5Ňn<5 kcGl~e.݋F]bYc/fxףy$Ѿ8!u'կu,#A  @A  @A  @X:fSZڸ  và`V$/g-W?Asmv3º˭Fae/178>YQЉg]sc,3Rf, i(dY3X.GPܶi r|bԱ?ѱ~GG!mx8tzӇXG'=OqΫnC>xev  @A  @A  @A`%Olƶ69-$=fpp(<6B^!b=}ح#ORs؟x 3埚'ڮͧ/xzO3܎A󱦆vb& ,V` rTcЃ8KmrgYCy? efsb/c͌\\G~g?xaGǚ66 HA  @A  @A  "pK+;!/HCld d:c';53G'D"5B,'~tmO?&kͱvjNoD Huoԩ11x-M!lzn_%҈Ƭ6[ٯNB-{y}obk~쒏M}Tjlg6w%D D@A  @A  @A F`֯_RۀaWHd1#!b|< 3b<:v}X4)Y㳞~FS{,3vԬEPxcݳ5先f.ui>{1u~$6_PX05 f;B, C \rH k3Cy1o>N_em?bq?kOtisόoOu)腍ڿ-G}3A  @A  @A  UV ֭Ѡ౞|p]c-'By6u}%QOщ'zAkn]F b/'̱F$5!tU^=vȑ|kjjb#?3XZϞډ1MGG+ %tA;14s~#Ɔ3@  @A  @A  @K@#ps{m>T>!Ծ< >bc :1uXtRKm=\7n꨿{a6q{!ڈЎ 9+k%nbaC7=w MA  @A !+bM6E}᪫aǎ$/4y\zf͚awݿ A@r!'-on6+A*/DkCGX˟˨⚺͇>kݙ95afM>&y`um.ݓ8D.Y`ڜp͡KaBlq$ q=4vL#p!>XП5}ѱ!ڛv>tG8k5:Gww΀A D '\} @A  0e}{۶m2dݺubd~?r׾6Q<Ý3 Af@D |M~ώGU~8r3?{ qi|w2GssuQC}NW?v1{qbTaZ0(泮 Bs n?MdFj tg jX==0S4K.6G@A`! PG@A  @KƤDW\ۃN.uW9kYX\kbuщ13x|UX:Q[!{,&kZGLocCP !v@A  !0)ȝP vXH)}Qd_<@1 /+]~!!Hlr-5n\֫R&^!klp,̵{νF釭ۘf>FX3ltk3[oɄbK%nz^,`:x@+م\zĠmzKz@+F=y6bNOLvzO>BckH A e@et1 @A  0eLB^wuÖ-[~y>8!r?OG}>|< Ah_$۸ 9I0ƃk {Ͱ}6(\z!Y]=}7 6}ՙ儰SkbM80m| 8x=,fS; Bg m5a?ktuq=Ok٧؉Ǿ/5A8׵1.򳮿ߗHA ,B.+} @A C`"pǎù;lڴiɉ{z5D@w[ڸ x p"$>ļv1uȉPcq_-j ơ>aGKp) x#n16C D]ӜA`֮]緱 6 ! ;1:ɋ#qMf3>>,?:nm󩅐Cj !֡?b{cc?654X|,ˊO6J/HC NSw#xY:i:Uw]USHHW&_J%`EZhzi"zAAT0' H. <(K(JH$$A2ʮ9g1g9瘣oセ9Wƫ$ƚd=>O;٫1Ў֠'ͻ5_QX@kļϾkr-e7?313Vv݈_|o.]t.xb;_Ki$ .+e]6\q9%glI!y("pI!P@!P@!!PDj>ӟIOzRn@ mWt?Y8+kľFa>&c.vqo}f'?MHS:'BOA=Zug9cGcƟ F $PNS]s22 L*?`)bNJts:}O~?96d%I7? Q!xfiٺuЇ>t_%҆Bϩ:,?F8,x7o^tHw>Eעᓟkkc5KVc:ʯx ʑ :az&2v 'DlᤈQ&ŞGҧ )~>|čo!.zH~}|G`#OwEjo?|x;1lݺ5k>0,W>>>:>t[r8ꨣspݹ;}Rkrկ~upanWDn}zkrAC^B+.ce•(SV ;фci;MNROmI~m6 򨧯UG1NBla˗(˨G0??1' .4LF'^_ƎNL`'^'?9+sRgE_ɯ )d"IN9n1'|[k)"ƅbД`tg]椓N9x>pԧ>5~l9blTc./}XO~X9y{kl/N<ı~dx׻5֑X/x 38clǑG9qլ^O>LTCNtMst[~5hx %d~/D`OO#F|ČOO,uv$N?c?㐧ϩ.q%zoxɑK<}}裛?^ɤ2qnZѿ/ K>YP!6Sclџ>1{ی-6}F̊gߊ-EwygJp饗$OA׽nUzqbsH$6ۖi`[֔|$q2vg9 JG(Rbʗy$[>}Cxt[w"eW2w=.\r{{??\(w{x}1_g~gfKW]u? c"sV{#1Yw ǝt κ;W x>ߡ2cɉFO٪v'Qv7,N?ҟv敾ן䏯1$nN%_^\&l"b@6B$fäئOOك ZuQ7>tG#l12Φ)c{ؒm\&~"f9?MJY (ԏO4Ft/i6"ȫąՑYpn9>ϟm艨73?~n7Gr4>zQ˽1搇m &#rȸG>}SN9ew}wxhO|*{N)/ۓGn5^Ûe) nxV A7x:BA?RNǟ^MOϟ88H ae-FC?N_#cCzHΌgr?`n;g"J &iڋ'1Zug\)ǗM&!O@LXq2ē9SgKzbkSG;ҟvⷮY_oK?pZ"Њ1V."yB nSM.Z<uo$WYq,OI٪C#_'l`+\^ .Jgd+<2D[仾FRϘ__k~2p9ys3υ~qEc=Do~qaė D \}~ltNI6Olu?dKxz"pɞLE*AyP+B( B( BX EadWՊ] p߄D=x_ONXn۶mDH<#b}v>rߊ[Ƚf$v@v}$1xX|*sC:R|6k~{'F }kǵXXȪ |W^٪GRg#}ġǓwhiQ%?۴8Ug9<$Gb'NOGx+&Fi"kgR׎=dQǖ="gO~y_=;q#VAV}lq',sWO~uq̓|}~c o}n&Y-h+L+"[L"]"/zыfzar;n6r'N=~j̔2=i3;Ģ}ܭRئS<6[dz!")\!zUzոeh?`c%Cv"!ZJ?O|K DP{tV;>ZÞVh?O=ʬ>ߥ)a׼f$~YC:FB"򙴝^LZچ4/~j6c"PDj@!P@!PF!PDꐜ=}*@;=D`O% vкDV:_߃|̃zԣׯ݋/jdOA!:>蠃,q>WW \N=!W}TcpGOGV"pRI^bWzH l?6ŏmDdzN%No&_ۑUKLv9Zu6.O>>lG"??O<"N.".HlurzֳFuجT>I&pALWzvy<(DPd)"Q dOZEq#W$~{6.c=I`{oo{Kds=wX2.bHsh$K4Dēg<)f ׼{oD.E^m1^<"pdOO* y("p^ʯ( B( B(VBZU\ A{wZؖ׽}5yn?y`/WB>vߊx3;SvxH/H NGtǎ#["w]N8!w7D[3qY;ZumC y{p%7D_=#}>^íh>ƛƒ8qcGQ&nc'J-h3Aನie.vh{ φ'WM~m Dɟz9%şɯ1şmRt}~zv|w.:Nc-2%mi<% #9;<=dEA7ƶf.P)` 1mns+\㖛yHΈpWsv3-;Af#-J$l$R,|K$ę'"pGN'|Hg^MJ΋RDSEj'>~|eBNJI!B9FWe!0E)". B( B( B!9%VrO$+خDq?sn*Hm۶Cv0uYV*}g<;4-=ވ~+7_{[֚Եv"-a_xh>D_HCm(xO$X$ٮ{@IDAT?(ɑlN;򊯤cv剿Sv?13?m1g3^1(p\l@&d3L\;ebז#)M~t?mG2N>m%Iu7%K?a9O>zV}qF#[Vs K'/>xHr![3ΘҶJ_ # 3DR2bЇ> /[iz]m'\.)OW7Zh aG18iڄ->ONwr&Gbj?>oĆ-3~l6[xѠ$^I>zuu ƷUGD{XċNIbFJ%}|2n6![u̕9k>v+@^N=ԑT՟'/yKF'Oˉ/ ou"ueFpcfU\^|Ǐ ޥ8kfyD ,q\(پ7bag/|\O|b[Z.V+rDRH<"ʵ;%ټ8 #h| nլH8Eڅ@!P@!P@!QQHnlfe);BY!kS.SwOg9B =~{[ 'J{Y9σ 5sqi;2|E,%QCbPثӧ/v#< ~m}~mUG[%},.<c1'fx!6WϜjR.6k$_X+6L>L$'')LeD=W"r2?%V;xsGq-(}On!wV~V6}s:,/vo'ڼO'fZ={G-@>/^|\fZ'"kL=yoX7O!PDrT_!P@!P@!P"׃^W#PDXTX\A{`֠n۪-$GRyia DzC2}':>G_4Fډ۷#ŢcCKl}/>ɟ$Ob%nO 9$|W{eNL˕v&`>>!Zu1wޑi%ӗѳѧl.'6:˯N2VD>}!z6b'?oэH:ijv KΓHmǧm:\CxR e[LxL}vQ|y獫F^x=ev-A2%/^Ə,])i}Ez  GݶN{oݺu\=9YYh;P*I\g}w5qK96|&Wl PDZ*B( B( BX E-FBG[xV_D|#nr,?1H=$?4#v|-^ L:ɠLT>Ig7zLuGŮub_?>cm</c;saqO~yĤOɭf.D$LǢsdb}_?1 8](#}̀rz~ˇ=}ڱ iǓM#o?VuV: Gɏ$Lo]֠,@S@!8E.Ki B( B( B`~ +B!"sPDwՎK{kN$MH.\?{Ӆ`zbN뱗?\Noԣ/?_бO~|NߞL_3#cO=RgW;V_ rM<42`mS0ةVm#tBNb('1{:[Mb'^fu$%;c6%%Q:Y)||cӪc]qkF"׏aE(Dz͹( B( B9sp,?Ef1|w|pעՎKہbh$S'O:zI[ܬN_b>%p4md|#']diP&vĶu}_[\ fnA?8blM8&rB3i}S#ӾIc_[^u:V^/Ч~ 'aG6$}9n m3#paxO|+_9Ne$kF@!VB( B( B؎ID1LRIqCb#'%}= =;/4~ i>2$} _z|˸SO er>9oQ&/6XyOXcebUg/KfGAz?6K>e &}>N0Qߎ B(6EnR) B( B(v#!Ms QS)Ccظ/@y{C;/oS_S'!۴D]|õ~p%M>zVBؑMcQq)+ZuџbuqǦǾ&ɯ7|"FI'^NVP&WC2A ٥6%ب'!2?#P=8ѱ'2>Or^Aݎ䢃-"fmkkkІDI!P"7ɨ@!P@!P7/@J =cMo:x{* 5B`l_֠H [2•SǙ(svu%=%\ + 4$?4[u'6R9یpkCEJM\e)12 Ϡ{0N>E}pf'ƟNP:OV?c;vt?+b%z?x!SO~eES+TRBu>j4@!P@!PD;_HnٲewR 3YՎ+ځ NAp*6tڄh&>l~)xG?yS&VtOO.mN[צ'ԓ?e.>/1[t>~M=E711|&0bB.SGxN;c]J<ڎI}HVs2X?eS3̍miJ~>?"OlԽyK{GV@!Pl"D'R@!P@!PfK/կbp#Ҷ{o N!p5^z}m$/7pa FU+ eolE8Ÿ xpl^]4LN%ĕT|K܌6^f:ΦW.vWݸ2&93V.}+ ы5ds(Nb0n6~ #}A Vj[TR+#}Eqv\0O#Dx ^.dWV%G8k8J|2.$8bG=I\~ӎ}bO?>NbD$Zc2 T0 (S+&b`kIr(S[6b;e٬ȣ#l3rr['\%VI;eE~j][6J Bddê@!P@!Pn{^\A^uUÕW^9; r {k筆N>K@)p6=ߡN(6}S/:|ÅO;؈o*}~j#Y՟م7GƥOOM7|Dǟ/IZSF'$_L> ~%1hCKޏ Oز7Fm"fخW;e$1׎}bqkжĺPSI!PDRRB@!P@!P@!0E`NUY ))c3mG_e!tXX܌gƴӶ"v+Ui4FOxc>M5(}z_)E0u< HƬMCۧ$)3OqK_򋙸}6k.kYb82~RW[-ml_&&cۺf}c#rժ8tɯ}b~tn?sRq&8ӓة#ٱI쌝.JIlmaEQmEI*) B( B( B( B( B( B`#N><Wǂc8o.!1b&m}UƳ'b]ƪՓ_oՙ$yIgAON>_3pd2&K gbNb۷d^&ǟ>d[hN9UgӋ< F]"N;?4,'\%<9JƦ!>R[( B( B( B( B( B(65<Wن7 xzp‹&mvŧoJ}D,l':ߴՓ_=/ב#712Azu~$q'ɟtC_7|y/xeZ&-.4Pn4X6hU8CvёG"i#G?cM[_l2mHdZuhmkГjDI!P@!P@!P@!P@!P@!Pl(֠g?Y8BxXǿX9^# 1'mtKp6$؉'U퐟w)xSgD1b]v713~,Hr,3趃di} pNF&!ӱwӟwab_\X,e@lI_bNǢ//W''&Ē3>ϷGP() B( B( B( B( B( G;;>֠; ن PwQO ?>cCcEKq3RYɯ?cQO|isiQߘd: pNM9~ ^ b XK=;ڏÄBUgpRč_(?bO#Sd?>F7G cGb$?}>#'׊JI!P@!P@!P@!P@!P@!Pl(۷ xY  WLCZ='GFD79q'ӋAѧL6$6a̅Oyת'O mDA}ٰKeT#ןp D |&/cG'&0UMOR~rEߟzG9IO墏Wwr2$b̜W?Ǵwoi@!P@!P@!P@!P@!P@!qt[~E5hx %d~/y'r#z>bIΎ$ɟ2'lg9%Rm/9R6!~}tA+T&n2MK6e9cbχ"|#*d&~y||Ç 9# /LiI!P@!P@!P@!P@!P@!PG`ǶHvp |f—Ы6ÍןUGE;N?S~}(nfqͤ?̋ޑ^C$^5>~5n&.>.6k* d#Hbf9Lm=UGe|C/}-?v#.c l8ɟ2v-ƕ }mw ovEo-) B( B( B( B( B( B`tDY-T5"t u\2pDH a:J/&?Wǒ!l2}H>b'c|lHə,XgmLDidr2 V{1 $F+%~8^ )+>NƓxr>glISOlmvJ@uGN5h:V[( ͉ieI!P@!Pl̰ő( B( B(F`֠k_l7[2 7&]lcѪOC_lORlޡMoFa^8Ug9<$Gb'NOGx+&FA@xL*ڙdQǖ="gu7W#b_2Fcˆ.☧~Y)H@k_us!QR&CjjP:כ$p B(Hk,H0j҅@!P@!P v>C5ws0Hlul Vz< '~&:e|Չz.)R7qLn2>N~N?}xvN$}Sh0Ϗ fd9Q&MLdRo ]O+FdC_jOsЅkY:ۅ曼鏎>_llf6׎xRXGI!P+w ߰u#ٛ<( B(v-z%_~å^:>{]+wǢ@!P@!PlBߺэn63qi;p*JN  WtOU8UF$zi]_Sr~Ord/I|cJ^vБ$}ɷg:s )g>ʞMeg2/=R,}bhdžΉc+:ǎ>6v>Di%_)e⦿J~${GQ"PR&BDxY׀@!P{ !71@`I!P@!P@!P\4: [َ+ځɁuqW#N$JlWj3aXlƑf_즾ɗh;!V1ا2>:ڱ_]>s땜1 Mɤ|cԕ \d\\bObH;1=/WSjHvU7okУ.)J B(v=`_4"wy@!Pz6 d%\2>FGI!P@!P@!P, н#즹Qp'{ †>l{,~=גtWĈ vɯ$g;GI~1s6GIL?sV.>ɛ~n|2L oUGSm&,VIA_$Wk;1~.GeLJHfI!PF.M>CJKBS@!P{?q|( B( B( ||юځԪh;pHȋk+QǏ D_=#}>^íh>ƛƒ8qcG>K:]G*I﷠YYˢ2 Zۡ \W(6O?R_6'Qe ;IċD_HCm(xO$X$Ǣ?SF/J:6i^>%n'I;#z6s2 1&o|M6ĵ\&+6z~O~m9ROv/XVQm|>^r :'lطG; %@!Pl<__>,Xd B(v9h;7w=_J B( B( B#nhxG " B)6x F6uJlJDžz4m–?'~;9__#1^?bÖo?6qzp-I>7䍏~:#_["SRGË.hn`\, BC،D >᠃Z=4 B`A/<+_p W]/X+kF7:h8Æ-[iݾ*) B.#Cy\9x"D(!1(I;Hb]DKѪa}O>[BF ͘3+NgM5G_r)?5Iib,F@ҕI`&JOIz&哓I&2v+e9_]|ld<9գOg^Wəz>rѱ,~q%uL{GzGG( B`"l5s̲("pYx( B`A`@_?g6]z׹<묳 |ky?vg~q%Î)vpvM~~j@!P\[FF5YHH>\'F?m.чdO~u}ǿio'GEdž$W'x'7gL4ϏǷ H\_+L3}|B(bұ6#qfKK=/9gO;$']'OlZu_db!%:}ClČO%Q'lvzG HJ Bص -eB( =haSN>Էk}g|p3$R+VzꇇϿZ;ҡx\+wRͫ(\o_xVSsfJ\#Fgdžu6}[-E=c;1şo鏏ݪRlvXM2Ňd;Zd&dPM&* $ѳ=K&ݺX#H2Ӿص?[lKg ئ~ؙ یK#&~>OnmD1mkmuS!QR.F`#@+{ÓXgUNq_[yZˆ/x+}gpdv]uke<֎Z ?z嗏;HwWM_S9ҳ5#H"JN;nn>E.N>SLڽfrv;ܶ۝ૹ@!G!}EۤhwrpDoA_9ܸR'}qCG>?؇7bWg%aɕlO[? dO{ߪ}ơ~]'HE~bp21PG%1$9/.Ǘ{cҎ'G~t89Zu闏Y[kkP@!H"K_p/9)7O7񍇣:Z{w|A+d@ Dbd=Ylgկ~uj;+;3ړϏmzc|sҞ@lKݾWAq{:9;F S;tG~"\r8Gbx \ycIe3ago@wխMw!)"pPa!P\x3| o޽ۛT( B:v";}Id5x P 'F?u8.:]i'{M=+ oOcv򋑱Gz[؊t|⫝z/^I&|t)sHnڑL?!'1tɓڽ^-I&/vi~1撒(lC~dV[6"XչnO}S7܄-oy^BnxG}˸( ]$ ^m{"[c}[-yb`DUGK/ōbO1Oň@Oa\pOzuW2^]cbkpVCYA5]Hc}3fΚu)O>o>| _E3R@!p]Bo|[9`}D'R灿_?+1\,%bp;Aȥ3N!Ȗ-[6|ť^<+fJs}Hv7xϲz!;#ࡑxV;܄Wdk0BV $}D[wKf5v_)ل϶o'8'M%2'k3L߂f0kt[Լ\ ck21YĖM@`Ij.%Oӑ&z~>c?yצ7>:OL%qkjr--_/|7򐇌~VkBn ٟo}xpI'2j@!6~?_O~]r6s(n2s9 S]t"Ь =13<#gg>4gul`6lkP "[n=8ىN+DNu(b72|B|] S2{{;N^,"pIh(v3m{$}{y{V͟9w܏;w~wVC<ǯh3 \>яᶷSO=u_5Z|vm|_?O9~A?xE|wC=}~~lqWY\Nڈ@+݄@Fu~A~.b^')v|bׁۗ%:%~*V|ҟuR#~#zOxE߷[$3I%6qb"kZCt1M'7o'1ԣO~e'? W:c $vR8ՏjOʹ G VӭDBZb-|yj!O lcG\\Db"sZ++;wxߙHn4D|v y Vy\y7_$W+7[{`mZBض۵|[vt~v׾Cw˯hɣVDtD`y~ Ӽh__}Z,됗e+~[̷tu[zvGe8"GlK_Ŋ$FzΈ~}J2K\eƓJ~Mhg^6_2C8Oe[u~8 d VSF#tq$flҷ"H'vO__\c=v?Y_U Bج,"0wSߗ@m[".Mnra˖-QdJ ^q쉗@1Y(ߑG9}#a")=t-_e]|} q/FqR76GϹ$'"M<#O!A0ۺu5{97fZtjž'}{AH~#Q. ;Vy9|a=}9f +,|ޜە%V_DK?WDqDj'1v[bFIcYAFloQ<}Ob{D|) <%>6[Σ` |4Um>˝{'sED.wUi.<7WBw݁gkƐUso5U  ~N9唱?Z++) B`wF`^"0׆8`g}_?0>t͒u=6<9OջIOz,pM8XGŶO}Sw*Ea=^೙;hݑ[g&gC4U {k9^bfzk6}cW.G8D+IתcU;ҷ\+8䦐џ}]>~ܱiOmWOlebz>l$/'+(+u!ɆRO xlԓ_]~@<91Gz$qO'e 99t}>lѧTc[\t< "fȉg?ܼ?c)[,2Ox>+nCFKm%<˕즖n"o&nPcp!M16nHRm B`F/Dؖ-[W>VDI]=} A0*&?&\k!5zd1"{no/V/&Yم2]!H́bRb0LV)x$GF $#7W7WZc4֥ė·ϔk>{σ5Yh [r{"Bf+\l s"U\ĔHgHیM -| /2}%D-{i9ˍ}H#?[I<&]5/"pYx(v#CNta[{N\%uǭ{;<zK;rMƜ{`S]zx8St׵ǵuٵ`gdOfN6=:sZ\ۯGւ@y}g3d)"d;E~klzgߙ_} ^* C7эk; _xza/t\Fv8e6nձǣ爈]_ډ'%ުc=q$W _|b16bM/qXɕ雫L;%Fd:}&{w/6nr7R?əUg؊C'~lǎGrVR4"dɯt<ٶַ͝>/~ΓJiGK\EH󶷽mrdc]m㦡1nS{zQ_W|Go~9 57_&<+o t3?] Z Bpߗ@[EiደqzIQ~ ܔWɂاbΘ`F_Ċ<YCDGHs1I.sGc5Db{7iQ?|3w7w2N+v6aTt?|>K)֍Ⳏ{@|= xEwbJ<99=u?%] Y>~wK^;G?K|\s.wƂ`wc˖-;?قs~=T`>GˍA]@x׌`n- B`@`"g>͇=30N8㵊FIG>rv᫿gdx[2~㏟]+z[V>v,Ùu_Wܿ@IDATŎX;'>.7}]jg)WCڽ/|8Oo<?cxאzի??1PͶmƱޠOOw?<5@ύ[ MrmK^B+ÖK"x<я??8|#= G!^kd$j-_\=Y8NNć'ċ7>'ҧLċɟ\ XMOة'l<]|[_b}z65@#nbbL&`" ]lvrmyi$>HCҵꘃ%S6,ؽ>c&a^ɯGP'F^N[ڍmK\ VYLl׾vfln 4]L)OyJ{:uӟLF2zGW[,.OܨWRJ 7ՐYgxԣMئ|7cwOƾBؽD/LȠI >H0l">Yh߻~ |o/fK#VV;Ȕ|H!B\c+@ғ.Hl:%H{TUz7̼[ʹ%=6=ˬ#Jj?:NM7#J+Vp'r}am9:bsVXNU 6V!v|&~)bZC2.7)L>|2>Z~'DϲK|&* >ayI\/(|sn*~'n0ф`Ľyub>|ٹ#UnUa51.=|fEl2~!/5}%z3JԘ B@`^"u{ՈG6oag~:w\CdM"7$\[faИ:bx(= bC_r<1;RwLlw/okŶ9u=m۶:+1WSDʏ Ә"\!JKߧW=ܟC(Nk|יY 3^Ckin[ gD;U>۰Y\ɷh\k8މb͒'J_… %[|#"NɖDZh'G__] ϸ2q6.rȘG=䊸ƕ1əqo,tO]i/ܒ s(Nb0n6~ c SY ^7,x[Yf%XOLI3—|ɚKdC>#ҡ_a'{P)YE+,U!=sb/R/#З/dLb;l=9&a #[)u7p }d[wB~K?{HV7wH[>3DUY/g)8_ZFFn䈋|qY|9Kp>W9r+~}Yno{CYIRc;.C]}%. B`D`1"0KA5ɱާ+Yje{0N^!l;7w!Xku??3YRVKh H?_뀠I%u+wq<];<#HO'bD>׎C[fŵw r}:o}@Fg>s\h w^t$q$Y;cꞥkӒB`wEww6qq;6aE؄(Ƕ?‰G܋I؉ˎOƅo'H<'?v}`k'}.5IfΡDOXes$})Pb$@ԯ%ɡLLelوv씉ytm!WNKQ]eX)#v[:·/f\~lA=p6/zыҼFxC:{vS"Њ /{(ˮMHBBBa 7?q"6" 3f`t` .'a)3DH W,ŀ"Ef25@<@Ϯ^ӈ@@r γ8MnSm<-,1Yy|\AW> 6Y| سl˴3o6bN\a A`A`#zR3z~rDݧ yQEnj A_Xbŏc[V҅͛7jJ=NYIAȉ%\rD`%G֫HBzS{_%WKKWQH~Ss.?+K!nN#gwzկD WI=Hct<&71tG%*/@ [H-c":JBR"B6ʘ`C_X,#zUyڞ ,}1w 6 Bylw]qU@=v8)l|B>Į$|?z̝B|C'W)g]-ozӛ:V|'z=cmRsY{x%Wq-Q׽fc"9-S䄭m۶8;[szo Uze'CDej*\ToY@>wrE*Vs5[+Dm_oD <F;裓nۘS-r!ׇRXB'`@RzrDdsH5Dzu>3X xMgzrEarET]}\=sMkbZ9բ.c"ݬ< Qyj1Ѷ+!`oU? _WB.y ╷i뺧1A9!קiΈzbA[i#g[n$D`w߷VkDq2x{~K#Xx6g?=M|o&{$'!AzkxNV ЪMmݺu Y\_Yxݖ/| '/p5ݘ§<)" <8t>v絯}m?ֶ޸X^ )W 3kw"|<x3>5Vx"pG*rA4cG6Nxxb7 ZٯԾyOK}B>|h8g٘7zļ֬`$Y9Ե$GA6']uY$>-q.6Fz}rպ]رO\;8i-P=}E1sG/-1+mDά.nRoɃzo߾l,_v8E+ڏ@yP^g}v7Jr]=Q a/;c"YPA"_8Sh9 䋔ϸZ/ v7ȁJ;Ńޕl9^?WI4TB/<\чLrDӴ+ (%{@jGF0K \ նV"S*uV8fI*凭-g1šٿWF>FBNBB 2;5hu5;#uHkA3"RN$wB`UF%9O7o!קU>R7gsB$_8|!l|{q"5q3YZ9DR<2 A`E`gﳞB_}P=mQ~pC@Ht2\X&ÙX/q<یr@#\6z_K_Ғg[ JcB+}3&RABvc3{!o}$/JVrl;#duW1K8@m" W 64?r^">eTLU&LHj' "ЫEpx:ƾ3"гEǯse3"s̑Oǯ?;WZ"еkJr'?ɉ ϱƯ zn k!|&ؙ9 JW- pkA`ȝ0wjwCZZ>Ok]<'w8>O;KoۗήDJdzv9>'*"+~}9vVoJJD d!J|Gzk^s+9c`UV"9ɞI7r#'*y˖-IJY@~# ~@4Fߍirp("8Əxcm!Ա>O>OC [r CC}F|tkj>1| Q. pr օLZ+,HՇ9Xr9V‡[ R ĕ># HFmbgDZ]o%Ug*;# /^Klӈ@}σcy/8S̹$'*1yk`R?&{HT%/kx@z\7_i#J"w6#q'. ^ehg_,1 !?燓NZGXNj߇ȫ/+<~xͤg@ ?;<;Yq1|WxЃ4ͱ/X:~p O߁E3 KK<ߞ݄}|C8$eB*Їw;vxD 6#A`_ADmlpl^/\9(?v.цN?T_>RXö棯}|O=S5૮u8|\!X3-qg"q8v  G?`W %V[wSg\i>oMtkZ䢦1>'3] A,pSxv ?@x{%G>2z/y*җKTnoMnPF䌧>s|) orW(Lqt3| _0Ĩ'"!]o9 xHNT )Wj|lDܪghIjIA#Oa< %Dtg+ɘP[η%;*bmb"ljB+oqG*e:?t^Ѹ2hzLhN#rD 1OHD qIm.';#?Co\엓N:i`!;rD lǤe?Ǽ+Cb9"<8`'iC>jjQsͺM+͡Ƥ{hOדX#yp@Pe%s,DJނ4"d['>Oo=.oo']Oz=p7"7 ǁx+^ M\D1qZoI+wzCz+w\O"]z7k^o|<i+}cT6[}G>oGxF 0Fo2h]hcC >蕚K1֤}1/% ͭN[5cc\҆]9\[I_/*I.7#w!8$^ ZwK )5:w^#mر7'}qnC0_GM6򐃹~vl>9޹sO4l}om @_ΠD 98B6z@8[]!NzR@2=@r P9묳&O2|sE k•$[I~l(p[ ĉs+j޳y:'L|Aq+B n1W,ྲྀB~،Ǐz^-CHH{>Wys+\ ;@ÕhƢC-[`dDA c+M u[?+)B[k?ksʦ{0t&/d"+VC9Hz6|&m_¼j>bה$X}=,Gl;Vb`ok:~!w-൹8T%*(ڸױC)SVCkN5lijo^h^^üwZPVՒ$1_{\ 7/!w88G*x9`~x[>8rqmng̙KGֆJtA @g+wĢv&'>vT|gD '|$Wq5% o-OqRd|/8w!WI$]W "|Kw>;%wx pۿ]}Ws{EX:A`/F\D5mr9A>"WBk=/W򁢝r4r,Mչ Zѓ!6ZT߱>c_] 1nԡuf/B}ɸF,B+.]1'0o#O.'h"?!Wx#v8A[Ϡ6s9O;P͛d1uփԅ`ݐςk~r#_"a?wl+ck;JY\YrwykZ}~]'OسZ>_ >10x"]meN4F'8&"W#!WR|@F.w; |_0]wt/zÉcE/zQr9WL%", gNNcm3wxz^Qkx,|W;w"PDg֠6/n ?-$V xzs'r#\Cn}}wԩ5gEm ?DՍc[HVqQ.Ũ`&ƹ@ws4v_K_P}Uh%7'7gun^H 6gs.ةk|Sjh+D \pz8ۜ[ֳ%+ \g+R/ܗ|e/[suNW@A O ^Wqӈ5LxA Fփdc22}  8~bѴBrFqg^~ۉs;&q"juiOVjcS>g͛'qowQTrg8FoeU6}VjMgx]q|+ 駟><9Ɇu)Z[ë?>G=QXUѻ4/uwTuU'^oX_Nf;'nwٺuk?fɱPn/pwI;u4' kiNk˺mW-.ODr1 z|A UfjN/b>>end7$:[X'}cj|g09$;>dIawNrk.g1k}l֯~sI Æ qhۺ]\-6jzӱ~M=bk6\"< /h!XoƓLiR@:6.kvy1/nuƗETT;!p:Z歙 nܽ-D;Ղ@j.[B"DJބYgݮoY27^޼os7yVs5>xqoG69wX ߉`Md,1D8ʼn쫽s\βSvlp A >WpJ3humÁπV ]FnۺyQCKnrCM5c~b/$7ݱBf}GO}cy[s:3̏8˼|~2:s:qn, _mh+uƠ^8qǂsp|jg_/>A "v m|9(Fn\R7 ܽܽxZA`XO"̜?gZruB` v>smW" ԸzSi_ +3[A "6Mo GwA. =v9"H taE㉁_ooXa>橹abȁao=|kk:Z`ư%. 6qg2YӀ ˖xcqNg}b_|G-ִ/⸮ѾGX>vo߮xFn]IAր@ݻ} g(#\3ث&/>Ok~֧O։zW 9 r饗nFIB>u@' d֛\\/$'=+jԧ}7/7ptM}-E%3 vcN}#(//yã kϨ5>B[_.I~ͥI7:uW/"ӢG1<<8qwz`oko Sgkx䰮->iT]G};~l$ZwbO/i|%dVA l$~=c7{Zߟc;A 5"Dw'4aɫT$:6ZZ6nXZr">>vWү'5kX enuNO|X?@!T6-hk9B'! H.:QV6?ǢG)f-t1~8c\ĐvcnǾg}ZCk^M8_ЁvxF_ A ?vs[?|8Ö$D@k=м++/?jO߮Xsr 2/.oxXjV|nj=,>b6o>!W a@{ pߑ5mm0n|hu <@߀Cїx231Վ 6k׫#q9E;EȁcƴnÇ֯~5Gs1 UܙaBL8;b3}ZbM`1& >9dž6E'&wʹc][s *`B\H0!O+Z_u[6]w >Syգqϭu'b#ƝַF@A`&v KA  !\g,7 @A ,"q^ۮi\PvaAH^X>ͱ1豫'XlZ.!G8|'6ذ†B?C}iIfꤘ(U1\&N@@q٦9AӒ䧏XH3>B}#A  pbUW]5\wu2 @x$"[tAáxx2 @A  g Hf]6yx I4xD>;--J5q5\7gIJX %7138ZZxtIJ1f<\Ƙ}b3GbG55 #f[=/5nqyF`C!@؃zk(brH{V7M=K0@A`_G`@?7W|K> @A (DM3!/HCt^$O?z|gcLK~g"Zz[;}mMc?"'c㍱zrh#Oo Hwun>̃mn Z BG;J჎> ۺ]\hȅzul>uzj19rY˵h#yc]c|l GMGg}ZcmHA`An*+K93L@A ~6ЯJ@6=ݿ'R1 @A ߑ7mtjѶ/_!E‡@!!(kn\䐧O39Z"kmGΚ _< 99S^uƒ&`?X|39 f.=/ aB\ĸ\5hO Qδ>} ,cCQ_kWo]ִZpR;xB{FyF`#@{ }ܶgH@!ݓ @?p0/ @A  pK|Grk m=%:wU>r*1fC׆^E[>/8cֱ5O.t ֒Bo_1w>1y;^h?&'Ƹ&DaqO-.;lHnr;`g3c|spmT6ǚuiI}s%}&Ci뢾{۶מxf$ D ۞7( D`$ @A +/h׶ ޞۀguinW>舁ăч>>uLp+KO,dZ?}Y;|cf/vm#䗘7~o?vnw_$q5:6VmuaDp\:P+5 ~#iG$>·u/yZ کIh[Kn < @A  @A  @A`X$yFmj1?| &'"G#gOރ>:7縯?roSXe}:Sښ[>9+zR_ѷ>:coIU!hc,^fhX~u/cE"8Egs2z"|9_[3w-0Z6|F}nSg A  @A  @A  nQGr^ж_~< |Ry!VD} lU׫1fN#G:6>p2U':8_a76Es2:æP'G_B _8,b']c ۬cB}ԥ1ڴH<׿qA>cm5h{FyF8@A  @A  @A D WhD |}6 t#}o}*n;#F_3b_ .Ε\hm.1 uoکC}Վ|Ʃf^Xh-YEyKb6wk_{ z6㹂n\[ct_xs"5}֧cl 9_1wv@K^sܮK6@A  @A  @A uE`@n GЇkaӇ1!xr)0rFbFت>K|OK7s?21ت1s޶ěuAk|/ugYX6Y`FW,9ѹhlּ1>3^lU_:Ƒ>R⺵ZVL5ڶB$ @A  @A  @XwoaӦM>#VBr>"X>F=~ʵ8r%/Һ=cU:FB[0'k}ꡫ֧ͺlԢ>}sӚod%N|,}%q,Vc|XpC/\Y_ }-zxtY}ϭ@MKgMcu{<-BMr2v~r/ rY˼jM6Wb9wW0Ǯ;zSg<6}\k7d$vbGGMs֝9P _ ͯo7?җ\֢_41BJ֧V'@` @A  @A  @3Oiy/hum ׁ::>'k v?ꢷ5:Gm[1vcr1z?W4'~Ƙ9щ:ښ_}SOAf!Z!LS]`B!) `!c\˜:}%Z@G,W16$?96|OuY8lk}CmܞxFk#A  @A  @A  @Xw>hrNtޭ6iГknqs'X $X0nBk}sy:͵G8f/sX~֧_@wemwyD@A  @A  @A  ~,^xZxaۮl܆cx 8 xt]Ub\vu!zkMc䕈q^-r ѯuC86c9[_}cugn-4s` &HHb-9`kkКV_|X?ZYC<Ω/6ZEg.[9q!m;.7@IDATm(D@A  @A  @A uG`<%z )l*A>p#ğ:h ؾ>6Z_r5yb>vyhGwMO,O,b.k-hKѵ UWTXօbCbF>@ܸt:kzv|#fnXǮú93o z饗n&{$ @A  @A  @kG`6m;Vǐ b ;Q@7|'\PSuѯԾvR_~Ź>< sfM>yY"}kTs߃㜧C}~!cnv6<]x7 A  @A  @A  !H2׶)&A_K8WAX^,#X=9Vsٜz֧[w"CugA[qȸv&#tbY,z˜8oUx.ЅO,6ȶ ;;o ѓ:IW$[_%o^TBæ~߆]jԶ͹5(pD@A  @A  @A F8'Aǁzl"8Əx3By|[>['B5o]s87cȁ`G'1[AGqoE/DXF,-X2Qj @ uxV0&:!C}w:j!Sp;Wq W"qkݞoܮk=3mHD@A  @A  @A uEڶWIx5Up堼||}C$ _9}oh۱܍5lk>Q#́ZcmuM0Lg 93@@\? ;Eßh :^}G/&|\c,ZAlNQG9sԲ5kΏ5[>{`xF! U#p<ܕ-@A  @A  b;gǒ:(n m>#mhAoxJrɁcCËRs#بEK}68Z|ݹ_?ck3śx$A)>A  @A  @A`B D޵?wjʭAmu5(\\vzb(~ȥU Veuy㠷_Vme߱5oK\B 9.vZM];9:}k}bRoX5ϹcԷߺ_k,:?uL\رqEFn ؐ )NA  @A  @A`B D^;wbo zZ+zaۮj|b+xS/!C^M뢳>m>;Wo=}hXx;7t 9h%!LN!܉ {ͦ |ذ&vج_zHܩw'вu>yllw!cn}'/<}%5M$ @A  @A  @T;v]۸ -| \v7 /A^Zc#zbs,7T==9ieO.[=[=em<2?'/BQ33SDCD(|b>nZ,z_|9 >~Eyo1;_l/'/b|CemwkOA  @A  @A  ք@!/h5>tDIr Ad׷uANxZܭ;cwhMszxV0O9k9[~i?'B˄Ÿ34i@c}eK06αbo-ZǼ1=5X6׈Ģ>Uȃ>Yb,zvmg֠ A  @A  @A  [R~mWM>+9!}ӯuVU?9Ga\sXeXƘ }xߚ 7ySm7m.!Z#,҉1gg?~dͅ)THCYLY=ZBN`;5_s7s0cbk.^NJӇ˥^p @A  @A  @A`(WhYyFD< F%,.8yEKsӒZWGK<\ ueZzsVCAzZ91j>q2E/D9qN`A6Gk?Ƣ$ٚg<_rXU}|ƜVwcc.m!׾"sSGf[6" HA  @A  @A  ÑGĖ]689+t!jhkњnĺ h_vRVr#s=yZG}h3GYoA;_: qarb&xb hk.)w>:\T2 'uCb/"ÏXԴOk DaqOv\l(D@A  @A  @A uG8n z^ۮo\c>Ww'C18tp1%-9ͫx­8?֥:!r;EwsRXjfv}K(V2;R=}&]c\4:O~ƣOGPqɏ8/}ё!F#9⃝Ǘ 1c熿zt#ج6q\r6#A  @A  @A  @XO3/hyk$|%2ee {З_N̍\lꭁ 9tzE;-b r/cm!z}Xc>b}lƈ-Bks0!' /`Gg,6G *Gq|`W}f/&hzqN9ZV7Ӊo}[os$ @A  @A  @"Ėܶ]6H x <$cZt$dCG[y|Cq":/sC|Гr<֗f}ru9_c+ 5nA3_20QQ1\&NP2 i7+[=B:/e\kx棏9֟yZ>b}ZÇo]K @A  @A  @A`X$Oiwʶɇ}Hu@Vc`O{8 1#wҺ߭u'v3G5CO.b\5돟Ǧv'1ss>K blxQPX %o}Po-g[u{.lڬO.;Rчi>9m HA  @A  @A  "guP"/8DC86rW௏1r(`E^TEq.b[ϘӺ}l đq=a[ZI!.<|ccՇ>Pƶn*\́NgNG]]5s\57>Z߹ZR1u`gg}|M7 i@A  @A  @A  6oaӦM^xMY&#E‹J\hc>yj /"w$T֧%'+l݉>C-Z߹}ziQGǟ1v}:㨁0g [Uh&B HB\ĸ\5hA֯"/}Եn'[Z1~sKkƏ>R` 1y OhܖgM$ @A  @A  @XO#<张m\ GsJ<4Xn8[r)ї2Ct~al-Zsctl|0z^kPǚج~1_&Hw\;C1dlRK?D#b}ƾ̭515]'ck8OC 6;`CgMg}ƃv\{F<#! A  @A  @A  rE-umǨdĠ|/Sc#r7-}6j o}9|%b vp9X<1j⇈zt،1/Zߚ⣟Km ']F6 =~o>.z c⬡?55L~O˜z@Л8ׅ8tG#Q}c3-:Z][Q|6/.>l·O>Ẇ/>FO3>m[V{kPnʕˑ[HA`@ z`])yޕ&w{>7`5 @A  fE`aȡ< V85 1N̽um+AcjRGV:&+5εss1o2_&V1-D WHZ7bn+fcZ[W>̍19k1D~H:Zy@[6"pJ놫jk믿~Y20D !̒xpzpA~2@ػبլ. @A  2QGڼ.h5^'.n&Z$G+|֝qة䒗Ƙ|1!Z9Kl9haӗ>b:ǚgk&#!uq8c._a_1 - n,QaLC>5n=jY;ǎyw:X_s?bA3M{F W\7ZyvG$ W#Q|gh;oHDާgA+A UW% @A  HrEAk OkȻj7VxD=|xah3uɠS\dׯu'$Ŏ8Wb:X+5#E}o?1>k'$LE". dsϸY(B}|3uykXY7'b}ZjX~%ȃn7~Ƿ΃8y:^r%VQ/_ xGwӝ) @/xh?|, ay^| A LE`=ߧ2 @A  !0zF E/2p 6ah˕Ǐ8ľ93q,&_B[ MO^1v.p2uz}ib뼍s#Bkx|;b``;Y[md`IaV} Pz[x8 gNPEk.T]3O3ZӾs k$sr xܴgrV49昐 HA`= 7-Mhާs$WA`)>4cFA  @A }i&xmCM1BC4?2/Akf>5GctHEsuaw=r=AY-U7o7cڹd%,|fJ `2F 5@X'_W%[yԓœ;?F}|Y\Gj^|["v3Ƿm`'HHA 3_ΆjG+sާ-AA U#UcA  @A`/G`@m\>\ |~nr#@C=y̋rKӺ]{+R1f}Mz^9X#y#cK:;gk'$p.`Ϣ :'Uo @j:v~c%5[wG`>}*ZbW~9voE xoq,hTLL$ ._yͭO,YЊoA`>>=_D @A  Nxr[mm\&.E''7%:8H }| 6Y1ff~r=>^뛟>m儌N1qc#cPXzBٺG9#GD#Z1yL9K[kuQG8Z73&Dq]vٻ]^ r{<@U @|v yOx ւk @A  ކʶU(6xxt3mT^`#VNyɉoZy8qQy맞1X0vƢGWqh%yA̭9ID 6A|æ-tyycNZAk>6_Rys$E9\ZZѪǗCv֠`<<lHA *> =">J nF`3@A  @D/5$6@΢Qq0D_SXt,gα_~1ݬϼߺOG7/>IJ!cNtw ΝB>&jBbsH]q谱!5>~՟dL}w15ynko=tmXϼ菞[.3o CJ$ sާwI @C`@A  @7#~ 6mE~CrBcZ"F ~'b 1gSXxiZG6[Z >9qf:uZZ"ց["8s1~a4_ĝlN.:0D p>¦0tڈ#`1B+1r>oQz27uEsY2C9d8餓Ö-[ 70|S2o*⋇׾^j=ξ/~'~BU?x?|2.wd;ֶ'aKy0U2{6&r֭׿Ν6QG5>uBk|^A!헐}s~5r; ~lOZPg}lun\̋Os71B.5ݚkId& `$ R}}sW觞CюM?0D/u;&orI֠+ ,2~ƕJ~%$JӞI}sʏjxc;pEJU'o{ۆ<K_G>~=vks9Ē+b>^WҫB vq]:$A  @A (.npjnۀ,@?cZ> BN>y0&bslnxkxZm9'rѠgk}#Zcm2'6v.1\AL !.v K#cH3\ӲaEώ/YxGc\kw\֧}c}J߹Ա|wʟozӛwc' oOl\|;Fw>O O}S'??pez^%WA@ȏ7kBr / s6}M7R}Emz3xfr K^7J WB{SO=uU5^~\-9]W_OH񶧬OuoC;N8 1 @A   v m)mNǠρfjhs˘6Oǹ0F&vZ:o5_c?c,Y@>Ӿ/O>SvvWN}}kqw ' <:kR''gW0@t^xi8-l/ @!y_Wҟ) V#0+'CA  @A`A`֠ǟ&1Zѓ~iug<; w{r*HfL|+Jȶ__̗SrLrE%8_9X\۶m< ;~3k W& xA2O͛7\3>OwS7|3{?߉JOx&_}fy0obվ/>O>O0{s%ex__w;OSP{֭x3va>oo"YPLᢋ.x="q _NykPbv oy[&'@>]~vx_܉-uq܂~ת]yj0O>NrbJ >pZNYhB=nPps`>s.䒮bO|$<?#Ґ|*Eu8yߧ篘 @A  އAOi+;mrJc`0$2kq.ǐzmd9ʳvve_8GM\|f:s[rR}3 Gvӄ۝B~ïNW<* _UItv)`|eȉ/{&|;1d\7r֕j<)@Ox ƼoV^[N"wW]F." /G19s@9x9`rD#DJ(["&6\ 5DĨ!F@B)<[ mgzk{~{~C3F29w5Ǟsmo ~7^ثo>e|;qX}׫h~+^/9wy|}Yk!?w;kMCeu2 L&d`20 L&xՠnжy5(FaؒU鉼6C-,ЊӘLؒu|ԲM1χ>yCFNS 96֮[bdCj5ImF ggϏq+>҆/"o~%k[[ѭgo>?^ 羪 {mz3ul[1v:x}xW8<x*!n&ϹoU;‹_-Oɮn>*z*gGbM)79m¸8~yz2'ױz2#fW|OcnG텿xVx蕯wMpǧ++.*>l񳗁Ko0O!}r>뢂_9y~kSO^Tzk^ZY<տz~w'srls}I8s敯|oͿyUz9 'soomqtdu5ИmgXƊAë}zy9Eo|_goo6J;t,*yeP*y'^7m݌UH_C7ƫǟB:Ǜ^^[v|z~3?36oMe GO,ByE^vOOomOO8"d1 ?W_ݱCQ7կUW^zW˾lh_oHz^'()tO}W aOgSl\}EO 7M{ozbIO=u]Jغ~3o$jzEwbZקڽkAcqj]E mo|S_j|pe݋?V|K_z@W,// kmu~c6xK"ukssK?ZRovCb20 L&d`20 f`)6K7.lhWөfBFi4>^:[kTf߶uϘtVţ"at5vQZ<6+6鮶ld+/&xFMD+vvLn|S"ؤu1oM~r<%3>>}>Q~ъ?UhNr2[{Gm/+q̹, .΍` @OLo ;x9<u3X\HoȏzKeؓ;J}yZpYuyeZ}B5oϓ4+U @L o+Oxm)%׹ӗKh]}v=EΓ\+zmWz%)r-9~ڹ'kA|*z:9Å?fŻ-7t*OU[ s~|zmm_3ܜS.=wrEJ1G7^kX#$$/?5t \Ni,&d`20 L&{n~5o3mmSPtRpӠ9^":h&.0WC!svGYq ⇫-ޣlnm|EEOpKq!% _LB(]z|O_1mNeGnӗDzk{L4tmǖ>d8W)&:}V^( !nzSknx{=ۣnzu{շ~iw ߆w+PAͫI"%]OxXTWFn铮^8zB{~~if#Oyyo}O~kc-ĿnZҋ*3yvkl[~VjЭxS2D O?MPkHr +<{/7N?|BbS'gYs[!;;Wvw=Woy[vuy+iߓC}3p )<=}d䳨Uh}]\+~B6YJ;?khpfT4_ˮ3EQ z_ZT07'xĺiNw=x|<=1Sw^7/9wےWTx~k ':{#_1ӏ~&d`20 L&"~c omSCQPpwgSSV&elPZeg[Yoت(آdƯ 6}r0|?|&U?6[r*=\R(y1:USӓ@K;xOG|sX66ͦvɰN~lCf#_:OnYEUk]}ʧ|)rSk1W]'E<=՗w^+H{w}w]y]Eؚ]s]?G:/+7#iSXQ }wdBoEՓ+ǛԽ0;]rþ"hEvͺ;-/O:76h eݧg D}EuH}F}I|?u!th-y=1#O~4z҅u =וkj-z '")cHPso]](v.w =i낝1X.]Xh20 L&d`20 dۈjضwnچ:FcnuSs}TCI7[|zQᑭ:O:+~~᫫ <]}:gƫ?6.K`vP&hQ|ٵ)kBtV|JZ(gs)W1r[H'3+d%a~ )FsL<7<FrX1 cwП3f?8i@z޾+b5&} װnrn{"^6!?S?(}؇շ߻ܟKTWy?f?goVyB/7uEnkLW__<=j߽o$h׾?7'*1kg?`u}s_^Em=u~ .zkSO=^!k5ozzԹBƐUW_%gֵ#vOy;ޱo?g)޿ &^ J;Ѫ0iow0`>vTu)BOG?u BU^I`j@0?QXޝK黽t20 L&d`20 <2^ _OfCVaNƸүU@ PRl vo" k_1W*8' Cw~xg8\G (`~ ք%GNH?}%7+6dSLbPpӒK?q1Y4FxpҵW۶3b [k+Bm@IxɫžkT7D$:^F, ǧ'&?בbFԇ׃~}9OxnȮJ\za+7ukA+핥n1+PdcL+K#d`20 L&d`20xӅ?ۦ>FVaS,+O/ĆBZa_O[\Cbk끯6Nl{cWfl_L%bO@KNglrHhKG-O"xɲ7c6|r|!PQO|Dmzߺ.ْpGjwy"_tf`޲՟r/>>Spzիj+R\_v6\:^QQGIEm-Z*7M{MQP؄DZ{wOg\Zt# ~c&LwܸFR|X Sꫮ>C?t{2kO&`u_( w],BW u{O&|RkSO=^!P<UOT4/«//; [m@.<5mM7k<]X"ۣ<ȧq;wym[,ؓ&r.ZB ޟLvby ]Kj20 L&d`20 gfBȶ̶UQ 8u5u 2-U |w>!Cx1l>hL#C[ً/Ւ5_>%6A (xI<[&3%:2tco}IYz-rŮE슣h >J'};b}#f`޲D^u%_%'!0RdSOevuW g<ӗKhE7J{eۑZƟj%=Eo:hO)d[ug{R?S_;|o}]/e^݅uW/B??kOYg=};ow_?z]sk_Qi|)?d1F>=:(f\1F.YnK:琝ؒbj; ?B_K~:%\<KMxϦ8Ҋ1-^h=5Vtᴳoiee<SsnǍGOk}Pwi~_IQ̍[)\ J_O4oWy # t3(E/z>0!OMnzR#?#.fy"Ry:P.q~u|ly-(Ll9QlPu(8<Gx//YC.Y/I+_[y9Kqzojk{ݨaA.s՚lnbQLT]tɹC.Ϳ7?x%~=>Qx+OL>ܜK雽 w20 L&d`20 :mQK(~BޤvG+9$'"2}ĒKq7.3wj_1m٬;B˷~wloJd`20x2p )>;y ׼ʓs?)?3p:yaRlZD>lcm_`޲24 L \zy`oϖߵcq|1oÝؓsc θ B|A|!7)zd4vwzť^xj1|q{|zG |߸6?͉X!e۫AߢD$ M& `BssY׿;+/˯雾i4%3y.]iO&d`20 L&21`~a0R։i(U3ɯю}/c5XђmV}vƈ]ɫ1|eg[kQxstd j  DKN3+76 ٺg*>r[F"zQ59llۺ;kac:g>j{5WϫAjh20 <|B/x&}>f3[3d`20 L&d`2ps}P)aZ[/:6j#Xm!W-'UOnD;~'rC80Rvx:eHKh l㭻45!hb%m:V[+_?ޱ̿am-5v2vk_6D;E7|ݶ _;@) L&m.OX;Ϧ!z6O?jũ7zw]Woy[^W]:4 L&O:x;Wza#:d`20x <:c? L&d`20 Lޓ2t!CۦX]V͢^5.^ Z}c|-G|ƧoS7Yن+$5&_k|ᅟ]ux<$EGMDLB"7NԤ՗lVk t}vA?b??ѧ[ l_SL[}''#t^/N&^߮^]:}ld`20,N_8Vd`20 L&d=3o~6ß۶j&H_CZָz*^MZ?b&{#6Za6쭻cj۲_OE#&TZ+vQ}j٧{Q[p/Fkk`-dt&~o}3\xؑ>>mZ%O'Fϟ>1!oKW~jЍwc?cW88ád`20xIEyud`20x <:@8 L&d`20 L3~/?MMM_ <|߆VdëPuwrNGk۟Tk^_\uNmqj#z+j'^mgOn܎ /~ i&SVXӏFlgډ.?GlN?1ㇿu?xu<jRLOۆ߆ِ#|Vp ~qG~؄Vn?+| _._~ o{ۮ~z//T&dq3ַu/_+~W..Y/L&gIGd`20 L&d`2ӿپu޹m|H DBBMƆW}P|2?xZ7o>Ҷb~By񄏗/-#7O[w7g+>~~uC ! M`ޓ]w{zM y2[&^˶9>F߁T!n݊؅/0l95ڈd`^Fz57~ǯ~~>W~Cd`2x~gg>>>î}Q]ܨ7id`20wuށd`20 L&d`20x@jзn;MBvŨ$'tEU!S~(q8t(V/rO^)uƥdž? ZA_2Z8gGޔ{ ɗɡx@;DMr)ЮIfgCK7NA%_~ؐmS1cck~aO_\ ?]w?b+q+~Wn^{ B6w-d`20xπ S>S_yGۇg~XF> LsN?>d`20 L&d`2ˀb[]^}6޶6HUt[kD,rSncvrp,ժېۺ;N+<'ǧ?;2:fgqGn nP\XY`iPZOo/6>?qt5W2<=ٷo.(7/Xũ凞_7 ᯿&w &d`20 2঳{{zz"`0Ni'exˢd`20 L&d`2𞓁g+_?mgvQMi^qT1O:b\zDpj$餟0gVqlZ37jO/V~e>q4oMlxZDo[/A.AtJJzᇍ_ہxt~|҅G;;_*?I[V`OV8?d`20xdIc@]'v!+5~.wd`20 L&d/~ʧ|ՠ=QW X;ԝƪ Q@zԯ.LlvGӵe-~TmZ:.~g~-񽈣ǥ8#g8 a[?[G&>"[+^ /}oO|||csbޖd`20 L&d`20 L&d`20 L+,_׼7g?Cu*4djHߺ;jo%SXTi}xU?]3|~qg_&|GQvħ{`9،JI ̄%䛀q>&qɢmغ{u$׷qgk\e0_!|-Җv튿 $|:ܞ'^җ~Ys:d`20 L&d`20 L&d`20 L.̀~~{??ſis3ORB>To\ͣ>bIӫF>^-Kء]aȲ]uW /|St>>]2o#c.Kli&Ppɵ֝WB6Sϒ&wiLWHmx/>pkݘOx1?b/p>u{ݫd`20 L&d`20 L&d`20 L&K37 _yy۶_xڗ"zEzM }w=n^IުW8P8o?՟Vlï`Aǥ&OGM">m%k\"K|E2 Z[]c-bK>ᓣUotKW>lWc]ɋM=u>`ͪ_?>R24 L&d`20 L&d`20 L&}3I@uoox7o65HMM! [#ZɞjwS;At7濚mOMڙ?{j.Om ϼj^G|:ǥYvQgRq4Շ[IDa'XX?1nk8|:|#ۊLnmv`q }~|+>s?OO dd`20 L&d`20 L&d`20 L=-/fV,1ij!k-چ RЯށ}j%d(d'xW|aOfů?|mDOO XɲՖK.v8%WKOj%n^Aom' m㒗_xdosL+&;h+[㦃 cwq뇯O_?6_&{jmCd`20 L&d`20 L&d`20 L_+~p|w|w|wlOzTP`X vxd+]TugcT/O?_Fϖ  ~6'||DvߺVG5nA(M rqĦSqgΊO[;hOn|קV/m>]£Ow>?_WF/| ?/x@DXުS͜VC|b_IMf%={93%+TUd$#o˶Wj&1%V٬wLQ~W|}zd+!Zrj w*Nb`l}1d/|G5cl7/uh%o剌^~ym?=xdHk /O7tlކM匟݊G Ŋ޼^m?sOs1?;s teב\wLJe鯾'^ƨ|4<:b":q&^7_8:#~?y96]+~Amq'6:|&ˇ6L}81v ]aOG1>/'}{ߜ;s5ןs9߮4{5߿4?ccιi_K?m?5xضgKDk/7X;_}jz磍N;;bk6mߪJ hŊMj+]m}Zj\GjWAƈ ˘~0f~Mp1h"ZI35:&kc܆gKw~;;gZT |ãKYv[wׇON~dl [p'S5c}o[o,{Y/x_>妘'?6*׿ ?;ҹ ?w,9/Gܴ9u9st;cd?ן9XEv?5?;ipo>Gs?:jV~k.~U?﬿nuգ\;6:ui?ƶt/]W=u'kGŖo~?=~_hb{2= ?1mO?|:Ś|C6o)t鐥1~:_dM|9r9NR":`УO^´ UvXc7^c:dxl׶`8Pk_y:C苅8/`~qevv'knw߆yo~AKgxbclu/+>CG|7C )q1EsZ[Ke919X?{_s9ןs9ן]K?ȶޗ*gs}:k>7lo_?gt}\x)ߊ<;_W*d>LtGrH nll`? ç+u}uu^vǹ>(nli%k~+q5 w"Og'׊C2Jz͟Vgء?l}bɷ#rX[$7lf i ?Үkyd(?= ?t^}^ȏ'6'O?߼ÍO'gQl]5ϸ9~Fn;Nfy/w:Zfm}]?OsOsFԷwοؙ's1s0_s38Юe}GL_?WlQ3p#+k[coD_{S@뇫5jӫײA-lڊ)LR,k'1ݔEokV'|(᝸g5IvSՖx蛌Dh8;< ONЎFІ/ ?]plEo}O2WsWKw>07|t1 jEŮ/l CrEt>?_母WٱKN7mczo\>[s[󈿱6?0W|^Kgigω]33ϙs^K{:>c:_:.{׌.5_U>'}ϹϹ<޳s\u}7뜌`tdZc-w&=>ϯ\1=DbN7['j'_z jStئGx_vtmtزC>_k_sԖWY1 Ӗomteⳉs=?SK3,4֢G|s%{b g?[Zy?x7Yf{}돹p5׿>?s9ןϹckڭ#/b_7]v2kA~/>: > ?}gb?GۺW{mGeg+dx_\鰡ʶN͇5}zk'c#Ct!5^Ϟ?[DᓧC8x 5_+>ǥ|Tl;~bhS o *܄_5^42/\}<Ϋ9Cv=p-/|lC<z9t/>cca׿sy\9dk6߿|_mIN{-u>p|V!g=[zmʣЧ|9s랱ض΋/*NdO[?ULO[P[]M">n:X݋)';xڐ&.HIWTM>JW+Q=jjlk鳡Vٚ4AljO 5ߘmo]n Fֆ? e=jj_qq/C? [l$/~Wz׸4<Z}Ce\||=υ;_:wޭskk9ןs9ן>s~>_}>ow\_~_ksvp/~[wY!VѢ9(Y۟;m#:?yhN~q׆v>>?|65.>8rl] GF?*'9x\I4yXk#IF_&7|%UD҉G/[2~+c.|E+1 8FycoKOߺgֹE?-G/;}]Wmxƈw>e:kކϞ~Z" .|Gŧ˟?| 3?sg?k?O·])Oc9?O|:awbܾ9~o#oi-dc=A>+~2~PŃ 81\ o'G#{q-_S,xAoxPF_K|~ٓn?]lهW?l__9\U_xYߛb 5.AlLc~!Aw!Kn臹uԎ[}'ClfS.6|rT,Z27G+3꣘rc(u.O7"]OP鲯OڮYŬGxZ~rP:Aܮ6dacZmnk97̺1Ϭs9}3;;s5ןs=?U;߿NN|>c2_u͜v(>mi_W0Nyf&okVt֘|tCL)'ClodէmK؉ pWn?_dN|#8#7(|[WNb baIKè$Hl:0QG_$~Gx>>_혣66:df˃> xfgAb&[ ,?t?Σ2FV_o/|:d_޵4dans?٤-6<)|eOy7go֟Ys}K;?wο>Ws1s1ւzo̹돮j딋tTrqdw]t]gжw[W }OLkso;(~קC£æ1KW|c\_ա׮Q1v?K'U/0[Qk]D= *GM6YX'\Bubxlێ:o3)Ȏe r>yM/nnzp.ْ7>?5p#~6'5&;7fq,h/zD?/[2M.b Y7^GˊO͓o+?+s:g,uws.阚돹\Y \\\_ s߾>Ǯ~z _gmɫl-K'"+hЦǶ>~7^:(|mlO/I8S~1GdaҩOG6lwRAHN/AOG[|zN2[WZl/boŝ=>=ҫ ,pYxl۶9֖^~0|dſ6b 󴩜q'wm~Ex~W|xWFxɲ'?wQ7O;}|.|7Ϭs\:}>]Gx}{5߿?|sṹ;%_ѾvW^s^H7PB'_e H#lLX_|m*{dGy v';>o'B+/yЉVÎ2c/"Or1uc}vu~,8Y2l-WPj#)><>=g[>V|o>Ϣ>ʗ&ŞN&:JM}x+~7NjP?|M?_l>y6[wDaٚ=V⃧oy>S|k\W|+t_3Yk}߄u)s𯏅;]Ku2w?sg?믹Z\8_]mڹ\\%tm5=[mȸб`/}ml;}g_,_}KMm/q]ϖ:u]/{- ]1^L7ZYt?qlU'QT /|6 cG]YW |jgt7tV|mhxZzk^y9ElQor~[|{mdaû_}|1cwgv>kuD>.sYO1G!9g?ן9\_鸰^fyd?k?}N4c]#5|:ɣ^ҽUycF[[vײݺ{qz+>G|!xOMW{.!5??!V~2mZr ?1,W_a3uw7֦_L+N6lb5utKRU[cc6Ck|ӫ>^1@GtiI?m~s _-j|>L˿ 6>?ZDX}1=sF㇏~v3}ҏFg\/=`G+>769|7Ϭs9o8'rS^߿t~a\?Vٹ믹I΅\]s9֠G9&z|/u7u'l2v}Gח3_'un nGᇻdncz7]<[' E/v}[QԦ,\|‚_mxc?qdrL-:5g"MBkxڒSB6NO_§>_ū~;v+>\:+iwc5 @IDATj>}Yż8mX5^m}qænOG翉 vZ!6/|>tɎ7fk+ٱ s}WO"+>5}1? 03;?E4Ϭs9}s돹_Oo{cIѹsZTi_>=賋wλk]s<9-g}md֟b[m7GF'CI/}/{vlQ,G|_<~-9 vOsbOa/Yt#'SpOp6N|f+\.n pݘN|7AmI'&/3OkXt#&=|~PG||v'ƛ[?mz;bGWnqk;k#G/d7X/;9L[OźdLgew<5GDV2\7wٚ߃kά?us9Fs\u5_׹5\\uk1?\kcd?6לs} g:ԛ5>3>G|O~c,U?|Gløy˗>Gmtcoܜs϶oݿ1Z[>1O6ɵbV;~MwٓvkW}ʗt,Ad8gMVd^g~=k6% _\m=*@Ed웿> ;6ncNaO.Y1c^sՖxY\_笏Ѷc;ɢxa_Ny>|9mMr3);#ֿYfϜ 9s{:.Bs\_cy_ן |<`Okߧ(R}?ȷ5Q>?h;qko;W4~c, \-;\eo]ͯ6!-mxO?>d_-_+5x iC|y!KoGx1<[wk~XM9{\G 29F7Yv|ᥓ|>&,°sDŽӵo,t>~qA6+>>~_xVl­WxnߘM>B| rV|>cc3̖6|QMiMmz9|t?Mq믹5c{|8k9/"m{{7]fc̆c.jMW8|)ѳ#kfcGx+~ح1e?1'QLHOKO{~rȏ'<+>ފ/rm=&+&,âc۶ugewcOl$Pb kdh-8?x#&~M8H"o뽷^eɍV|OšEE|fXh'~ds>X.+Me7ΞX7hw?یGZ\_?j xg <8+>_#u6O aoq9{|:3z1;sy>߿s??s=ߧs|x<3ϜZ~ᷯo=suNL6䗼mdlC fwߙ6?]y⋜>oogO 6Zl~Z7)W?׆ዅd[{b$߶&FԤLD( 1.ղK |2..+qղs(Hᓭ+>+~xxgۚmǣ̟ ?l#io][ŹK5^९ =gMGo[nmz7xhݩ7- >3>/}v\/t|g?{|;棵vοkM߿Z_gοs9_k\v~V>odDw}?p'?Y̏>b]?]Nq[o쳏Gx[w~Qa v+:m>m/7ncqi]Y w*-?k̻٢|k`פɯ;*ؠvF5g~>W=([~QqTHG'aw<䃍>;T$'CnלtQ'gOaOgkЊo>@7苵x }B7ڛZmW_l7?97ϓ_g=sf5k9Yfi|Rg֟u:9Wc?^'s|^zՓY>|΄:v.|6kqo^+|F'_og<~6­Sn8m8o)(g.k+?ފgp63ꓟ@線Ѫqg[>K݆ b$G~.Yu.lWKvOZ[ia#GtWx#>αdOl'}7YNkU9Ɯnc;O皹\sn|wF=_[pz8?kYl>"[ du[t+/ZgT|6G# 6]yx+++N:-wF~M{?^O-'!N:h$'&&M>_*d_ьN1dx/dM?cf:Z1S\[6|:7ŻWwu>O' ~?d?|M,I'gc4"1&oOO^Ɨ{҆2r?o>ά7Zk{Ȭ<<ǜ3gf?s_Zmx{ȜOytg?s9}'oxtoJG|cZt#[׿t7'~6cţϷuV?^d WK7lc?Meކ.Ϳ#Y>ōV5[c/u1O|v_p;dE%m#*Ix; cq;+>{c>`n_c&u;ˊOqxŤ@k6[<'- |_竿?dgs ,3l9*_ٵ֊_ޏhye?Y}ҟ=|g֟YfY3?Nd<s1aο[9wο]?G9H,=~ȜCMu\]'k 9?p'>~xWنQz+~/cڄ bsG0:^1'ӲYq1e?ߘmh=q*Op]%OB$7^e%.yEW<2ImɊEF7fW|><ۘߵ>o_mt kۺ&|zӧ//X?|vܖז޺g/;|MO-ZEd܄g=ߺ' t<Qn7?YϷ+sy0Cןٖ9g?s5ֺZ#`.:ќNy?ckοshѓ\:0·î}7Ѯ vNx;;'G?6=_5vN7@~o~|k oݝUQfgimAk|G͙ndR|vh𯏏:ZXYs|k֟- kfDZϺ{:g?> Q's(?tÜOk\\\g/۹ ' m7qЯإ?V|:_/|}G8{6e_Im=E#>>y6U= ?1&xZxߚZc0ȳ`h'gW|Fq+>aMu񊏇k _\}Y|m~-[?od~O}5<-;uaK0|O~$>߃;ZGgwg֟Y39ǵ8g/W1t{6И \tg?օw;8HL]ָ֫9m{](h=__L}7g+>yC=Ҋnv[ _ǿ=-?lW=7~>݅_,|#7G>8Z|}#My(+>"9$Ӯ ٢{n$-|f'մHɖv1$A? "V sWמkMgLՋ ]:^8d>*=I6}%=9X0ǟ#xM|9^th'{r59tf?{7zo~Y?'~{fڣaO{gr{?'&o#^y_<ߍ?{l柛)by1}Ol})w)\ᛛvTm}'?է=UO~z}'n"Mf$Ɂtv&>,3~ޘ*cSfIN0?Y6?򌟽tYt?Y˜m~lφd㩧]\r(o=Q{w?3_z|e?{?˽o".?6׻<ә_g}{8ݿh_OS32t'*Gsٸ?"?ᇓpkǛe|6{d+Y7mcOiS~_P2 \}J.'WBqFR%QS NGbCsT/x4!(|es(|еMcYrɦwT_qġhl3.t󐫿5_=|2߅{ozWZ__=o߽)ws_mߛn柛޾M5f$O蛝o}z& Ca+lL7>TN.e>g~Əꋞg4i͟搜gFmn|X _٘v՟GN[sЅ[+ط(p8<9} rl&CMH?"CMp+;|eʦvv/فK>%]:meqTVoNᦧzʇ%ٳttv:(]e>tON|}`[ϧ>6TGճ~-0/k7z]oƜYo?jo6n=g̝Jߍ rwg{oCg9^)~Ԟec37!rhwӯ(wu%k}Ӧva cg[iZEś?\='ȲM稾0|íNe}QՇf +Yɡ2(LO}חS_n0 d2')'3gtrlmlk6~2Ge<?]_ݣL UFׇO>O˦Nt371/cM/3~bMt UoGMz?M|c/;OggOG_6}>w={pXYwk.޿l_>7{?o?ûKTިNΞi߸[;9[Ɇg}xlfRԭ~/:dͥo_'/?Ջl |nПu:ׇ>O~ю⇁_Q_9}Ay#tc5lg|Y٧d"Eaϑ-:m0aG lfqdVט`!yM/39-~B ?;ؘ8Pzt?saeq7m:V?o\daDdw㳏w{�c?7\ޓ6{Ϳ7oim?d~ibC߃Y>n9>X?¯_C'{<0wmuxG/aU'W?^Ķ>zQX<'#Dg~(=UG\[_7g|ܬ_9'=Գ<;Q㰜lzЩXy,Z?: /<:up}LzJ}Y`]_c v2/G%^?1:Q6̟n?=)_,{ׇGe{QVO^ApAaϦ:{/>ϭw]|ꛍ?ؾvv>:7{/$qek5vhuu6n-OŇF{dƋ?{noh\/Gutw6\?rmu5_:N? lůLOilU:GBOyN8Hן^caq?~f9ӫrɳ 3ƫ65K?_Kx (;S/)s;a{:J;(9My8CהO^x-^Jrak'{#:v0TWep%|pCev6aecC$m\jGΟLƣQPxemrg^: ?Sɇ2.>w;;{n1D<)n}-q>=6BٙOm_?75zʥ߷=R{OʿUϳtùt -Kng 'F6gݘ'>]2l+OMϔ '["{dkQ;pCçG1K2E7{"^'Vrl|.jR&5&I#Kvr9-j;uV_6R6Ǵchg|}u=7*v2V |<0"ɟo\x+;}ҟi6G?(g,u`]Hx43>LoƟ{+(O)(屮$ǟ?6~yG~5b}}}}}OwU^o{S?1q ug/^ȢgK>|v#wc!v뢛sćʃu!m<2'?=O6d*!''O~\=ذg?{n柛5׾'~/ט{oy9ߟ>^D^k}zrt=}J\s){#}}'>9dFڞOwaח_gLg/ ?˸ח/"09 G=+jOIEׇWOFcKO__l4ab/hJc EW5XC#OOM|{sG2e|vҙ6zfO]G2XC>?{q~ _>OΜ9(wO硳vnp&y޿]?@1k׷?޿b޿lG0x/-w>@߯Z3 c_ N[~MM>ᇗ6JںG=;{dƯ'Y%CDM+fqMا>:J'>y4@P{oV?~ ?9mz_N} Q&g9ԗٱd(9H#x_7|?yrlCFNg㳓O2GRW /; `]Hc,>yPk?Ÿ3O;x3ك7ç7.'s/>'Sgwk=F{rrdP޿{\޿{_7}3lW7ޛ֛Ά{t~Gbȯ|(~!yogׇzRoSoG?jx-ЦOφS_x7oJ^]%b/;ʩ/W|%e1q5G&L;}lqt8L|:dv2s#r O~ lfmvP崕acOUf㨾+l[9mG_r-m 11TgGf}W9m?w˧;w?{g߽uwTnow柛ny̡6g޿igoo_6?fg]z3y%$aOQ|NH/|mT9m39>xl;'s';K}?LXIGyǣ;('A6|9l(oǰ1x9zK;c?X/NjgLrJ/J}-2vdQcؔmdDm6|:g|0K=KfbM|2}u M3d!7v(K}A'&~=|Y_vŞ[3W߽쇽w=D{޿yfsv9l}+ԧDE"?'xV69m~kğrG>ꥭDm\WO7L(Qxƈa;7=¯O> 5us)_tjajGe?M(jM/ <x4uԑ$Z&~>GBf^L{^ٸvd,`=x;.'!5{ٚlh{N|}#y7Ɵ-6?9 UG~7^w=#3md.|v3=7{\}?su/޿xZ,/{=pߴg+7{k/?{1dƽ=S\w7?{Ǟ[tve,'~49dQ}?ԑtF셧>echd?D^?[Kg˜zsQGd/O6u1$ K_4 _nA()CIǩM6~3ˣҟs ణ/~v_ Bv'?i<|~c#_9_6ĠGM[Y|vqT_h'{W7d;~W6vz]tϔ'9̾T.mU}~w=sʞ?_1s {)pvPm%e߽dNt*7nuDslk? C}|Qݿ|oȅҟ}s>cDg5?әvȆT_Myzڑq4I{|23޹=?̽9gO1ξo'UԂ7Eˉr:H=gD-t7iʲE6g"Nm|tճun,d[EFOLeÙƐYCglm(|u6g? 2OʉOvRrx_~O>~v"Zwƅss߽1c?oH_}6%|EfͿ7Ϳ)oo8oxaܳ^{t_0ٺ\7¯~^+"'m9O_y?X//~'(Nٖ6R?Ͽ?񧯪GU0?_[}K WR^I9hÔ?JNPZJ6,f?|p+ɫ+vvO4e߳NeZ򌟮qCsxS6.>-;`kFOf'Ɛ l3xIW_sQ ~:-?{/=n1bCwۙxuf*7VqdͿh?7?7;rͿ7v&ۚm9~&%l(TNtu)ӗ l^2J4a_}W|e_ٹPGl#V&,'5>|y$o&6c2>vh⧛l2Wo$n2Ys'$$G&fj~۸qG6R=DϦ2['++'73Qvx)O|s}ٍ0QP&~fcw)bˌ7Ɵ"z/og߽N=3iߛ7~s?6c?6x}?o}^St߼+>S6?GC^ Wg!Bxa+ɿ?'1?LmXSM<n]|46GrĮ=>928;د"E&&ߤsN9.3\3ɆuT/bjOg>'>>;Wm]va#洧\+鐇>lz>颩l‡q+GcolS1 2G~W>s{=|yg׹9)oOWl9K=޿ Aő7&mql{Ƴ޿|_6}-AGG$,3l1=* ,JWXGUg\xPW~aeKqm}QuS/|`&94צ:%u1N|| 04ճf}9z3GZx-&9=4N9hڴfɆ,՛C'~`ey,9% Oeg\KЯ>d'vmg'=d٭ _{_{O~Gĵwgek(n(w9(|lߛ %~4l7?H:܌x_92H_qO'p}M2}+[z[g|N2a'~/͹~zV's.Gd'n̗ WQXJg3i36zzWFG匣l|M@ΤeSiө7z;39O?V|6QY|s!o?V?/~6h_=Y}{'ç ~";w]<{D+gPߝl)w߽U6+l9?s?߭/39/y +0j];JVonxJԸ~is\|4>> Ç /L[V7Y&݄yqR]ʉ٢Nt`-|ȲNc$-C2-X᳥NMǃӥ779:JCNmO1)e?ʰg/2{.;[&>'?G?=|}okŸOó 1~ew7k?7SNWǾVnt.Ӿu˙p6~;w_} ޴>yzȖk5GOm3zkSgdP:񔈬>z~DT~2S=?=|<%E!`xUH_m%_I8I♴x8 XsPli l$˼~pf%'ǡƑ]:О73||,7}kקDl4§ïn_;|cRg(|ƪ|9{w7ſ=G:+ƟOŗ{ߍ?{s{\W/lo8z_6agf?~5{{{ xнKrJq.~6{dG5b1 sEh}gĉvD vu~§r5.性Q}??/&KȜ<D-'_lS9$Gyƭa`oڹOn!;wMwWoJm45wdF9w GCu{į^df߬g+J Ħ664.e O?JfᇣM8I& }xӞ܀:yΣK|8a4lS'73>-Dnb:y@ 7{3froQW_ǒ|[o_qrm9f}-C[?{83~ޭw߽o1s2Y櫽얽7!l_8o?g/\tѵ뛸wʪ3)^ܧMC"7e' >\niԋցɮ~}՗9"NcWɠ9F3d8/¿OXg `9a̱T6CvQ~vPxj'Gm? '<'_;lk7^_5&ğGgD[>iow]ȞS,ڻw?={'sţ쯍7lw{Wᕽ{c߽}?7}3|3^m%:_xş쇗㣙ʾ?mM^Q[Qo9lgӘ"hlx]=3~1?k?=͙uT_(L}OEWTЯ:cz rV \<^>6s>@[6& =OG9՗{>5ޘ-|vߚ'G\l4o;{](|Doo͋(9Ms?Vo߽nwC9޿ظ-HLu6Ř?7,kͿnq7aͿ ?m@IDATߛ~36WMfsW^Ϧ63~m+O~ʄ.T_džlÇ}.Jo(|zS߸dg#ed8og_ksZ<-Hfٱ6+ȪמA\T{g/&~cFm77rás&F:<Ͽ4_kx(iEs?޴2㊧sgz6+??? {d5N{}l $*v[7|j !d[LgO_W䏽{a}#.|qWMʞdql|?YVi>[\ß%kO_]?=}#W'Z}ٴ{_m<1?Q7֩NV^JG9ϜqNB`?uD7x1QG?{XE?_ӟ9sz okٙW5>ƜgƟ~^gu3wnw}}F~?l?nl7sOZc~/Mׇwgt5oM_=|X2~xᓽj5?6'꿇\J%o\7*u6&\22IWrh 6D2ʜ5~{,~6 5K^?A:IS/~:dw|e}lGecWC#|z ,x'FtO|vokv.z~'aƟ[e?/7n$lwxa^w7g[mslO=W?Y52ϣ7w'; ̄y5?>;(ÝWc#.9Odg7Q6N'd^//%9V6S֯K2S O.µ( KM/% tOy7\h⇑]O~gʓ;bG_cUz=~NGM{tPvȤX'3O.=eOy^/{o| za+Wݰ&ǟs:?/|v5{r޿!pV?{|޿{~ީm,lyr{7w巏7ww^dLA?ÛH?l4|_?؝xgDs9{͟|ǛW&WќmM{1؟@9X8PѯϩsdQ֍S&|CdmO q;dg^uv&n(tϦr?]|^8_~Kݛ? |';aCĜ{#o5߫W3j{|wߍ@T,g?bY2ŔYnuS޿{Qd߽-V_?lxګ<ᵿkolRGazC/ǫM䗀c*9='U2_\ rZ(}'0fgC}Q|6v=xQ|Sbr?>Ygb5f?{37k_;dͿ˯K6Oȿ}~Yz&N^ RDwͅl߿O{;q|=>v<?=9m|ğ7星"m@͟/OgXjsaZ elgçW=['{ٙl<۰a9/sSϾ;?G60OJs +tӟ?W?)Al' ~27[_yPw[_gߞ?cz/t&{=~?6ߛ9HF秶/lǯ?UGyh}wcۘԑNd6C1 5 :n|?ۜick͗: _̴7d@Ov(|6jпmq)zOb*- BhKf=?]q'=GF^t'^;|z矜ݛv?od'7Gg/|a՗Wgġ>c ?ϝ?{=7lgƟ??={]?6lc2u_0~cӻ7?lቒɩ7Ow+9t٦7lhgkԍSzW'/+qTğD93G+97r9G2{ȇނ郛@@= O/lv<8q̽oJ. {iNړ| 9{ _tQ6g|x[ue?V^:^ebMDa5p+á2Ypgwg rsyu s;;==7WxlqiͿzӉZő6[ c?6P񱸩9׬c?n?:u&s7w֟=Oc+(]y^UNEs?e>WoW/` Nj+9;{x*e#A`?O 'gYHqt_]Cfl:le!W9eG=g#{/Gl'Vs>9֯DaS&>~~jt }Hn'Q}ugCvvߞcƟ[(v߻b9og-gqW'{wP#Ns}tR.̴O6m73wog:[_tfwyo2oed+Ql@?٩'ؤ|?3>~z>o,͇?8O$6҃:BD9 bO>:mp:e>3~xV`]]^{#|2{CBW_΅3g3?{8_?7sOwW}Un߿7v."e˺V=K&uD`Eo|d`/nGBdWxs# =&>^JДGl8a'?/O|ħ4S4?eGVsFu#{+?ى||vP'tC㨭"(6^E2 ep~rGѭN>jQƯ)S;7_ߴM'RDn<(QzW?Ǟ'F6ÙG?[g{޴8™7[ſ/Ope=v?`펹3ǝm׾f/u8}}?gϿxly?kGl}^N|?Y}}g[͟aLr㽕Y*/cGoD0-lm|XGB=ɜlOeoM6P!xg'ߐ=?^?O/f?l۽'~ڰ'a|av{6go}/Fn_a?'b}ޛgc?67R l}&6ɽWn4< џ/?Ga|h⇑/tK7_[Ah,EOq'9eu^H-|Z_v*LҦPW!ԳGm\pꅴW{p-;G _;=il#^xShGn_}Vg_~9S~wx>s[O=Wg6c/Xˣ*7[|̿]i|MSy[y{QQ3G0QA9&?=vȅO_xGBd(g8slN{?}8͑CEh}dm^6l^fʖғF^<։mQg~gdXO\ԘͿ9"=hsow; w׻QS?x{?O\RW׿nw߽q{7߿lkvƿϟ=UW=qI3[?{bVcK^t=ƫ?s m(7׿u[h:pq׮n1nɠěx&YD_=|t+|o?|e6|lPGjg|نsʨί'&ٞJ}߅n֬[vQ`;n>ssog˙Dh5{gqrgnlG6$\i?6m%wBP;W?l[&yWl[^/O6;7>t*mcn|͟|:Jv)Eߚ?Y3l9Ӡl6T<-  ߏ_j>fSy [d"rm=3t=#wo3OwIv(~y+Eں]7g=ű?z"^romg,Λr76ls[l}N=߷[&ۍݰ*UڅT\cK{`_??f8s<4|d |sٛ'>7׽DAؕ-b9ⴈJls!օPǗĴɕټ(Oƭ| ~ yWt[6g6Döz%|/;{ꋟww?{OwNh_lq{G?7~sغߛrR<5'Lae>9toůJxƟu7qy46QoN+ɝM7-E[d+Dt[`e禱Svbz28q'LpP?1g-|}#g/3}cC4oƿ]Q\qvf=/ܞ^Z~Q}ß:[|gyxͱ!2%s_2W4vO Q٢Vo1;ԗlg+&.V? :gp l }3uzOKߚ}{d{6 ;|E5(_(_?Moy\ZxY~͒6E6;7tՇl'+e1ƫnv rƚO=llgok?:w{ h縉[HqΞrߞ?|np;;{n9̾b}M綇6堍W7IZclg?ěrűbW{? xLeֳgb7u}NcWF⧛^XakJ۩m6P-OC"w8/mʹD0,l;/:dֽ'zԸ+' ߼}S3󇇦=s_-|;mq6=w߽? {^lߜXDk/W>{f ߿73t)Tf೉'pƌ{.O[߸-2g݂5J-Q}GgR_|2Y÷4V@hSV_^߬1Wn{3?\]oƟk%"g#Tn}.8\vW?kߍ@QީgC>*gn_i޿{a:9GϜ|>ڳj~3!yW-vclQGeaL-=v3lM=|WԼZƟGݓO%K?Çh0E߅_wW=6޿?]}w7w7OLwz}/x? 8<"r慇»L}-Ӊ/ Ɠ uc6 in-nª#7ewox 3~0?<__372=5} ?.Wo{ooUwƟލ7ng?Ϳ66c?]O~WYl.¿7o@?ȡG?c;nāhyNF6aZV{.Bj>u2K=e4o#e܆ ^oxetO~6;K&=daǓl;d[+';g}?2g?63vOgo{~s;g+m|lbߏunqf;J{E>Qvv^w߽?*nqg>wğwmI=~țsL~b?O-MH"V7ɳ!4w`V+~ "w`{ >{ú=|szls9/7|]S_)U]_ w=Ň?׽zz#OƟ7l8?b޿}t.;k>TCʍ탍7y:L!㾢C==|&ӰԣxoͿM,u4yaߘ9e/'_QdN07@-<);dӳ$Ji emt |a@m6?L#w{~ؿg[bbWns>XwȒ)N~Gv8'ǎ:yqT/#GEGLyA'Gy=?LgcnߍOc_#obgmk[{?{{%pC}*;w/6o?[<|Y :Cx#|w:'?.D7jؚkx'G_Go<-d{snɐ|H>;wwxLWKy|Ϗ?ߺfgU{;)ϸ[Zݭ=瞿W3>~w?ݳ9w_~{i~hG{#?D] cCW[x%ݙ$8- SeEF$g?%WW C|pt { 7{9?zߊݏ6nW6_޿saoxmo}}ƗG׹06G-|9${_rsd3W⚷ak/?u΃:ҎgCmc#Y'?cn#vvg31ms&/%j7Q9 ǟ=_z#vwob?{tVn/qu!ka{[ٙ|7æ6z ~㊟׎ >I^v꿗rпw?켙(SfaOǶ_umdt#3_׳qA[aҫ\{?ol.=ߍ7n;s߯{w?6c?6s?!W97R& O_lʆ6}&?7?a OPOLI6gfhCa>jC|6Pz|?ȝOWCnktɲQ|c>7ޏ7Otewq~wOߍ?О=g?{|޿UŘh?6Ϳ6kg/J^GuLY~}eӽزORz:{9~)ޟaWZ6Y昛M27]6P鵹UOt~;%K?(QؚwwRGu]mW1d?7c߿Ϣs~{9G}}UCWg;7ߟ3{r?C9?3Dm"dCyL&1lGRWSчa'ok><2qM|6U`x~S?iÉ f6*/ ?_^wɳ|?_zw+6Cw?o+'gga\W)k9}(6w;{preLoy[*?il6Y'?=̾U,]_0H]@U͙XOδҏ< FlfG8;,B*ld~cK7{_pwwͿs?7s?]ssk{ ,8[V/?XK='oOמodPmn~0PS_>gي~/?WZȥ}CՕ|eT/u|r2x%^}am=`k'LG/>7/1l< ~s]kߞK}*ng__<޿{޿_o?6K\uZ__ Anv~Wtw stqE@fMMFlKMOW}ntQ2#[}OKXտ?D WO4uw{7mc[#oQ%JW&b^k(᣹W_;zdup! juAg[ɫ+kK'M~KO?'/;??GW7cl]T?z6*>{?6p3^7O*޿jo[=-{c_7z^6lqQ{qO?׻8trS^ҿ޿E{Wܿw|otP>m23jwގU]l:߆T=6]4=|ȅزSiLoC_=W]풱{/6lOqr?{8/l柛^sz?6xgGxgs>p<@?<؞ٰm|>Ma}SVlaG-d<} `'5;tV4Y7xM"=o٠Q|s7ogoƟk޿)g[m]i^Pl|87~/.GR]977i=|~n>p{dw77_]Nߞ?~p._d#2({[w*e>?F+a_ű{oSpo/[߿Db�oȽo?黺[oѿ%1GOߙN_۽ Xȥ@_9Hpt` Op+)uվnzڞy ?㳑d9<꧷{6\@1W|w7(?h;cͿ7{Ϳ7=s?/}}*7y_*|Ջ4J&߿>)g?qx`:W zWI&3=;x%!٪MlEqԳ)?xſ}oƟ߽}tXt/oO2ߍ7vuf ?Iі?PgJfзs?ã;m<.9obq_?}ڱݶۣuεy?_L,9SPâ`p cIs}?_:~|WA_X;Fz_'[9>gk/˿ttg>on<{ ?>oKg.Vϩ ]6kg0Ѥ>4$}CsHLyޚO)5jÚ:K{Fg{I/kGҿşoс򯓃椔{V7$syb+3àkty?n. 27~G^rFⓏ% @(ۿ"  5we]c{ކ?|ߛsN1~ 3#‘ܗ~딌;pA??"?s埓sw ?<=/t7kNB`|?;CDy>#os;? -, 6k:ܺ">c|*}!o2R?_nw~?#-n?'G''CE IDAT?F'ʿm>((~_UC?&??сZ%_`s_mn?5dOHϚ7J 7D`4 }ҐmRҏ\߹_|/ngI??;`,[W?/|B'>^wuprSc?z|JWWWG*35=ѐ ~A"hswx ru}  ^d nUyTğq·peӿ/1׋?VԙoGWgG{05,{?;W{pϿp5]~뛻k6r Cw+wcұ ssF\C]c4!4"uC]JOW?(w3if1NU.'}O^c/_uC_RQQq#Z>_"@.Hp&\ S_!{1R1J~zc{o&:s=l d@j}<ƽ_wlV湖:s=';Ld >x/\-Ɏ:=3Ld/y?6d}4&D{} c?h%uRO@?N--}Sl3gd%om??O\JW_sq42DOb'bmc+tau;zbXe"HdpZ=3:(P9}tcǣzFpU&WA{?Wضb[-8] L}ߣ7>X/'`Hw8*}}w_Ms_t7@~ ߷1<sJ`.{ su]kiw=7x!?\(!J ^_юd-{A i769ŒDnrod(79ٟ6j:#ڍv$;JN2!s?(srhLrciCJ ^ЯhGgA/Jg 3f9.ggpkc@+?$d{}R՟/xGqSEG?>PWʿLʿi׽xZyɥ](65C0)v{+`M@lH7oC>e;9jI}'R, xXa̠,*"w0q^/,__%%?t}'V3(|'%%;g^TrKLx\?#KseGO?,Hw?OǸJG/Dtʫݔ +WiWò P?Q7+2pz3cA; swu{Y\(R&o;Gҿ{A_o8>%5^~ۮqC ^?BP_?}:9ԑp53, %ї^~ۮqC ^?BP_?}:9ԑp_?V@"4PL \]c?}~1sw!8 XPCWu5=b?;-RTỽG~S-(*,4^=˿t:y66ݿ j μfG{x[DI5ށ7hf>_gqܳ)۝:D=J (_ig/KOFNҿY7bG!91~qͺa RZW/ߖ>Dl?e|#6AAqstB=ϕ }܌mSxȕ6"yFz@"I & s;}3r'9N32c`~#ymۥ)_#ap?:1SoICif'+nE^e_QZI#!ug~wcQ"? U=mv띛/[ԝ]G֯c޹Gt~@OpjGֵN{rsU_e됺Ku?u~;1(k"|);i#@n;n@D{9{ެxm!cJ仹ʚ9۷10m·ay_[.'2ٜ!$;6&mowqks5socr[wC>׶q<@OP(?(<觭}m,oc$;AySm廹ʚ9۷1?@-!kf}{{ _~xOI"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D zM Oϳ!IENDB`pyshortcuts-1.9.5/doc/_templates/000077500000000000000000000000001471654103100170415ustar00rootroot00000000000000pyshortcuts-1.9.5/doc/_templates/indexsidebar.html000066400000000000000000000011231471654103100223650ustar00rootroot00000000000000

Contents

Install Pyshortcuts

Current version: {{ release }}

Install: pip install pyshortcuts

Develop:   github.com


pyshortcuts-1.9.5/doc/conf.py000066400000000000000000000151771471654103100162160ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # pyshortcuts documentation build configuration file # # This file is execfile()d with the current directory set to its containing dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. import sys, os from datetime import date # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. #sys.path.append(os.path.abspath('.')) # -- General configuration ----------------------------------------------------- # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = ['sphinx.ext.autodoc', 'sphinx.ext.napoleon', 'sphinx.ext.mathjax', 'sphinx.ext.intersphinx'] intersphinx_mapping = {'py': ('https://docs.python.org/3/', None)} # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # The suffix of source filenames. source_suffix = '.rst' # The encoding of source files. #source_encoding = 'utf-8' # The master toctree document. master_doc = 'index' # General information about the project. project = u'pyshortcuts' copyright = u'{}, Matthew Newville, The University of Chicago'.format(date.today().year) # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. import pyshortcuts release = pyshortcuts.__version__.split('+', 1)[0] # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' # List of documents that shouldn't be included in the build. #unused_docs = [] # List of directories, relative to source directory, that shouldn't be searched # for source files. exclude_trees = ['_build'] # The reST default role (used for this markup: `text`) to use for all documents. #default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. #show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # A list of ignored prefixes for module index sorting. #modindex_common_prefix = [] # -- Options for HTML output --------------------------------------------------- # The theme to use for HTML and HTML Help pages. Major themes that come with # Sphinx are currently 'default' and 'sphinxdoc'. html_theme = 'bizstyle' # html_theme = 'nature' # html_theme = 'agogo' # html_theme_options = {'pagewidth':'85em', 'documentwidth':'60em', 'sidebarwidth': '25em', # # 'headercolor1': '#000080', # # 'headercolor2': '#0000A0', # } # Add any paths that contain custom themes here, relative to this directory. #html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". #html_title = None html_title = 'PyShortcuts: create desktop shortcuts to python scripts on Windows, Mac, or Linux' # A shorter title for the navigation bar. Default is the uame as html_title. html_short_title = 'PyShortcuts: create desktop shortcuts to python scripts' # The name of an image file (relative to this directory) to place at the top # of the sidebar. #html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. #html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. #html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. # html_use_smartypants = False # True # Custom sidebar templates, maps document names to template names. html_sidebars = {'index': ['indexsidebar.html','searchbox.html']} # Additional templates that should be rendered to pages, maps page names to # template names. #html_additional_pages = {} # If false, no module index is generated. #html_use_modindex = True # If false, no index is generated. #html_use_index = True # If true, the index is split into individual pages for each letter. #html_split_index = False # If true, links to the reST sources are added to the pages. html_show_sourcelink = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. #html_use_opensearch = '' # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). #html_file_suffix = '' # Output file base name for HTML help builder. htmlhelp_basename = 'pyshortcutsdoc' # -- Options for LaTeX output -------------------------------------------------- # The paper size ('letter' or 'a4'). #latex_paper_size = 'letter' # The font size ('10pt', '11pt' or '12pt'). #latex_font_size = '10pt' # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ ('index', 'pyshortcuts.tex', u'Pyshortcuts documentation', u'Matthew Newville', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of # the title page. #latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. #latex_use_parts = False # Additional stuff for the LaTeX preamble. #latex_preamble = '' # Documents to append as an appendix to all manuals. #latex_appendices = [] # If false, no module index is generated. #latex_use_modindex = True pyshortcuts-1.9.5/doc/index.rst000066400000000000000000000046461471654103100165570ustar00rootroot00000000000000.. pyshortcuts documentation master file, PyShortcuts: create desktop shortcuts ================================================ .. _numpy: https://numpy.org/ .. _numpy_financial: https://numpy.org/numpy-financial/ Pyshortcuts helps Python developers and users create Desktop Shortcuts or links that will launch a python script and other applications. The shortcuts created can go onto the user's desktop or into the Start Menu (for systems with Start Menus) or both. Pyshortcuts gives a consistent interface for building shortcuts for Windows, macOS, and Linux with a result that is most natural for each OS. On **Windows**, a Shortcut Link is created and placed on the users Desktop and in the Start Menu. Special attention is given to Anaconda Python on Windows. For that environment, the shortcut created will be sure to run in an Anaconda environment, explicitly selecting the "base" environment even if that has not been explicitly set by the user. On **macOS**, a minimal but complete Application is created and placed on the users Desktop. On **Linux**, a ".desktop" file is created and placed on the users Desktop (if that exists) and in $HOME/.local/share/applications (if that exists), which will often get presented in a Start Menu for windowing desktop themes that use a one. On all platforms, the shortcuts created on the Desktop or Start Menu can be put either directly onto the Desktop / Start Menu or in a sub-folder of the Desktop / Start Menu. Shortcuts can have a custom icon (`.ico` files on Windows or Linux, or `.icns` files on macOS) specified, defaulting to a Python icon included with pyshortcuts. Pyshortcuts writes only to the users Desktop or application folder that gets read by the Start Menu. It does not require elevated permission, and does not write to system-level files (registry entries, /Applications, /usr/bin, etc). After the shortcut has been created, the end user has permission to rename, move, or delete it. Pyshortcuts is pure python, has minimal dependencies, is readily installed, and easy to use from a the command-line or from Python scripts. This means that Pyshortcuts can be made part of an installation (or post-installation process) process for larger packages. Pyshortcuts also provides a number of :ref:`utility_funcs` for working with Paths and filenames that may be of general use. Contents ----------------- .. toctree:: :maxdepth: 2 install pyshortcut_app python utilities pyshortcuts-1.9.5/doc/install.rst000066400000000000000000000012751471654103100171110ustar00rootroot00000000000000.. _install_section: Installation ------------ To install `pyshortcuts`, use:: pip install pyshortcuts Pyshortcuts requires the `charset-normalizer` package. On Windows, pyshortcuts also requires the `pywin32` package. Both of these will be installed if needed. To use the pyshortcut GUI, the wxPython package is required, which can be installed with:: pip install "pyshortcuts[gui]" For development versions, see https://github.com/newville/pyshortcuts Acknowledgments -------------------- Pyshortcuts was originally written by Matthew Newville, The University of Chicago. The code is developed at https://github.com/newville/pyshortcuts, and distributed under the MIT license. pyshortcuts-1.9.5/doc/pyshortcut_app.rst000066400000000000000000000105531471654103100205260ustar00rootroot00000000000000.. _pyshortcut_app: The `pyshortcut` command-line program ---------------------------------------------- Pyshortcuts installs a command-line program `pyshortcut` to build shortcuts. If wxPython is installed, this can also be used to launch a Graphical User Interface application for build shortcuts. From a shell or Command window with PATH set to include python programs and scripts, a command to create a shortcut might look like:: ~> pyshortcut -n MyApp -i /home/user/icons/myicon.icns /home/user/bin/myapp.py To include command-line options for the script, put them in double quotes:: ~> pyshortcut -n MyApp -i /home/user/icons/myicon.icns "/home/user/bin/myapp.py -t 10" The `pyshortcut` command line program has a form of:: pyshortcut [-h] [-v] [-n NAME] [-i ICON] [-f FOLDER] [-e EXE] [-t] [-g] [-d] [-s] [-w] [scriptname] where `scriptname` is the name of the script. To include arguments to that script, enclose the script name and arguments in quotes (double quotes on Windows). There are several optional arguments: * `-h`, `--help` show help message and exit * `-v`, `--version` show program's version number and exit * `-n NAME`, `--name=NAME` name for shortcut * `-i ICON`, `--icon=ICON` name of icon file * `-f FOLDER`, `--folder=Folder` subfolder on desktop to put icon * `-e EXE`, `--executable EXE` name of executable to use (python) * `-t`, `--terminal` run script in a Terminal Window [True] * `-g`, `--gui` run script as a GUI, with no Terminal Window [False] * `-d`,` --desktop` create desktop shortcut [True] * `-s`, `--startmenu` create Start Menu shortcut [True] * `-w`, `--wxgui` run GUI version of pyshortcut * `-b`, `--bootstrap` create a desktop shortcut to run GUI version of pyshortcut Note that running in the Terminal is True by default, which means that each time the shortcut is used to launch the application, a new Terminal or Command window will be created for it. For many command-line applications, this is appropriate. The extra Terminal or Command window may be unwanted for some GUI applications, and can be disabled with the `-g` or `--gui` option. The `pyshortcut` GUI --------------------------- In addition to the `pyshortcut` command-line program, there is a small GUI application that provides a simple form to help the user browse for script and icons, and set options before creating a shortcut or generating an example Python script to create the shortcut. This requires the `wxPython` package which can be installed using `pip` or `conda` but is not automatically installed when installing `pyshortcuts`. This application can be launched from the command line with:: ~> pyshortcut --wxgui which will show a form like .. image:: _static/pyshortcutgui_screenshot.png :width: 85 % for building shortcuts. Of course, that command might be the sort of command you might want to be able to launch by clicking on a desktop shortcut. We have just the tool for that! Doing:: ~> pyshortcut --bootstrap will create a desktop shortcut with an icon of a ladder that will launch the pyshortcut GUI. This essentially runs:: #!/usr/bin/env python import os import sys from pyshortcuts import make_shortcut, platform bindir = 'Scripts' if platform.startswith('win') else 'bin' pyshortcut = os.path.normpath(os.path.join(sys.prefix, bindir, 'pyshortcut')) scut = make_shortcut(f"{pyshortcut:s} --wxgui", name='PyShortcut', terminal=False) The ladder icon was made by Left Martinez, and downloaded from (https://www.iconfinder.com/iconsets/free-construction-tools) Note for running wxPython GUIs on macOS with Anaconda Python ------------------------------------------------------------ If your application uses wxPython and you are running with Anaconda Python on macOS, you may experience problems that your application does not start. If you try to run your script from the command line, you may see the following error message:: ~> python my_wxpython_app.py This program needs access to the screen. Please run with a Framework build of python, and only when you are logged in on the main display of your Mac. If you do see that, it can be fixed and your script run properly by adding:: import wx wx.PyApp.IsDisplayAvailable = lambda _: True in your script before running your starting the `wxPython` `mainloop` event handler. pyshortcuts-1.9.5/doc/python.rst000066400000000000000000000047621471654103100167700ustar00rootroot00000000000000.. _python_section: Using `pyshortcuts` from Python ------------------------------------- Shortcuts can be created from a Python script with:: from pyshortcuts import make_shortcut make_shortcut('/home/user/bin/myapp.py', name='MyApp', icon='/home/user/icons/myicon.ico') .. function:: make_shortcut(script, name=None, description=None, icon=None, working_dir=None, folder=None, terminal=True, desktop=True, startmenu=True, executable=None, noexe=False) create a desktop shortcut :param script: path to script, may include command-line arguments :type script: string :param name: name to display for shortcut [name of script] :type name: string or ``None`` :param description: longer description of script [name] :type description: string or ``None`` :param icon: filename for icon file [python icon] :type icon: string or ``None`` :param working_dir: directory where to run the script in :type working_dir: string or ``None`` :param folder: name of subfolder of Desktop for shortcut [None] (See Note 1) :type folder: string or ``None`` :param terminal: whether to run in a Terminal [True] :type terminal: bool :param desktop: whether to add shortcut to Desktop [True] :type desktop: bool :param start_menu: whether to add shortcut to Start Menu [True, except on macOS] :type start_menu: bool :param executable: name of executable to use [this Python] (see Note 3) :type executable: string or ``None``. :param noexe: whether to use no executable, so that the script is entire command [False] :type noexe: bool Notes: 1. `folder` will place shortcut in a subfolder of Desktop and/or Start Menu 2. Start Menu does not exist for Darwin / MacOSX 3. executable defaults to the Python executable used to make shortcut. Making a shortcut for single python command --------------------------------------------- A common request and simple use-case for `pyshortcuts` is to wrap a single python command. An example of this might look like this:: import sys from pyshortcuts import make_shortcut pycmd = "_ -m pip install --upgrade pyshortcuts" make_shortcut(pycmd, name='Update Pyshortcuts') Note that using `_` or `{}` as the command name will indicate that the current Python executable should be be used. An example that includes an icon is given in the examples folder. The above could be done from the command line with:: ~> pyshortcut -n "Update Pyshortcuts" "_ -m pip install pyshortcuts" pyshortcuts-1.9.5/doc/utilities.rst000066400000000000000000000121471471654103100174560ustar00rootroot00000000000000.. _utility_funcs: Utility Functions --------------------------- Pyshortcuts provides a number of utility functions, especially for working with text files. These may seem like an assorted mix of functions. The author found many of these useful in multiple projects, and rather than having different versions in different packages, used this package to host those. The utilities here are small (adding no extra dependencies), but useful for many projects. :func:`isotime`: get time is ISO format ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :func:`isotime` is a shorthand for:: from datetime import datetime def isotime(dtime=None, timepec='seconds', sep=' '): """return ISO format of current timestamp: 2024-04-27 17:31:12 """ if dtime is None: dtime = datetime.now() return datetime.isoformat(dtime, timespec=timespec, sep=sep) There isn't more to it than that, it's just shorter. :func:`get_homedir`: get home directory ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :func:`get_homedir` is sort of shorthand for:: pathlib.Path.home().resolve().as_posix() except that it also checks for ``SUDO_USER`` on POSIX systems, and it always uses the ``win32com`` module on Windows. :func:`get_cwd`: get current working directory ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :func:`get_cwd` is mostly shorthand for:: pathlib.Path('.').resolve().as_posix() :func:`fix_filename`: turn a string into a valid filename ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Given a string, :func:`fix_filename` will return a "good" file name that will work on any operating system. Most of the disallowed or even "inconvenient" characters will be converted to '_'. The filename will not have more than 1 '.' character. :func:`new_filename`: make sure a filename is not in use ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Given a string (perhaps first run through :func:`fix_filename`), :func:`new_filename` will return a file name that is not in use in the current working folder. Generally, numbers will be incremented in order so that an input of `file.001` might become `file.002` or `file.004` if the interim files exist. If a file named `foo.dat` exists, the `001` will be inserted before the dot: `foo_001.dat`. The filenumbers are not limited to 1000. :func:`gformat`: fixed formatting of floating point numbers ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :func:`gformat` converts a floating point number to a string with exactly the specified length, and maximizing the displayed precision. This is very useful for creating tables of floating point numbers. The formatting will be similar to '%g'-like format, expect that: a) the length of the output string will be of the requested length. b) positive numbers will have a leading blank. c) the precision will be as high as possible. d) trailing zeros will not be trimmed. The precision will determined by the length of the string. An example:: >>>from pyshortcuts import gformat >>> gformat(1023/78, length=11) ' 13.1153846' >>> gformat(10.2, length=11) ' 10.2000000' >>> gformat(-102.e-8/78, length=11) '-1.30769e-8' :func:`debugtimer`: debugging runtime of code in a function ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Debugging run time in a function or section of code can be a painful process. Using Python's `timeit` module is really good at timing a single statement, but not good at answering "how long is each section of code taking to run". Sometimes you just want to print out times to find where code is slow. That can somewhat challenging to track run times and gets cumbersome to manage. The :func:`debugtimer` helps with this process by creating a DebugTimer object, with methods :meth:`.add`, that marks time with a message, and the :meth:`get_report`, and :meth:`.show()` methods to show a report of total and incremental run times. An example usage would be:: import time import numpy as np from pyshortcuts import debugtimer dtimer = debugtimer('test timer', precision=3) time.sleep(0.50) dtimer.add('slept for 0.500 seconds') nx = 10_000_000 x = np.arange(nx, dtype='float64')/3.0 dtimer.add(f'created numpy array len={nx}') s = np.sqrt(x) dtimer.add('took sqrt') dtimer.show() which would print out a report like:: # test timer 2024-10-11 14:07:27.868 +----------------------------------+------------------+------------------+ | Message | Delta Time (s) | Total Time (s) | +==================================+==================+==================+ | start | 0.000 | 0.000 | | slept for 0.500 seconds | 0.502 | 0.502 | | created numpy array len=10000000 | 0.073 | 0.575 | | took sqrt | 0.038 | 0.613 | +----------------------------------+------------------+------------------+ pyshortcuts-1.9.5/examples/000077500000000000000000000000001471654103100157555ustar00rootroot00000000000000pyshortcuts-1.9.5/examples/README.md000066400000000000000000000001401471654103100172270ustar00rootroot00000000000000# Examples pyshortcut -n Timer -i icons/stopwatch -t 'console_scripts/timer.py -u 0.5 -t 30' pyshortcuts-1.9.5/examples/console_scripts/000077500000000000000000000000001471654103100211665ustar00rootroot00000000000000pyshortcuts-1.9.5/examples/console_scripts/timer.py000066400000000000000000000015721471654103100226650ustar00rootroot00000000000000import sys from time import sleep, time from datetime import datetime from optparse import OptionParser usage = "Usage: timer.py [options]" parser = OptionParser(usage=usage, prog="timer", version="simple clock") parser.add_option("-t", "--time", dest="maxtime", metavar='maxtime', default=None, help="maximum run time (seconds)") parser.add_option("-u", "--update", dest="update", metavar='update', default=0.1, help="update time (seconds)") (options, args) = parser.parse_args() update = float(options.update) maxtime = options.maxtime if maxtime is not None: maxtime = float(maxtime) t0 = time() while True: sleep(update) print("%s : %.3f " % (datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f'), time()-t0)) sys.stdout.flush() if maxtime is not None and (time()-t0 > maxtime): break print("done.") sleep(0.5) pyshortcuts-1.9.5/examples/gui_bootstrap.py000066400000000000000000000010311471654103100212030ustar00rootroot00000000000000#!/usr/bin/env python from pathlib import Path import sys from pyshortcuts import make_shortcut, uname, __file__ bindir = 'Scripts' if uname.startswith('win') else 'bin' script = Path(sys.prefix, bindir, 'pyshortcut').resolve().as_posix() iconfile = 'ladder.icns' if uname=='darwin' else 'shovel.ico' icon = Path(Path(__file__).parent, 'icons', iconfile).absolute().as_posix() scut = make_shortcut(f"{script} --wxgui", name='PyShortcuts', icon=icon, terminal=False) print("pyshortcuts GUI: %s" % scut.target) pyshortcuts-1.9.5/examples/icons/000077500000000000000000000000001471654103100170705ustar00rootroot00000000000000pyshortcuts-1.9.5/examples/icons/coffeecup.icns000066400000000000000000001634031471654103100217140ustar00rootroot00000000000000icnsh8mk     ("*% 56@[6  OMfz٩hK) A۫a i59u ERBv"tT-,6"H(JrF\]mvbo3?Sf|׽kXB/%2@OZeqsh]QC5(   (/7=BFIJKIGC>81)"    ih32ܒοܴ!ŲѥѠ~"ُɴ½rBADXz#kqkikWC/)-#/m#ƻʱ|gcepxvrzwhbYa_K; $[$ݸnWJM_nyyph^TWLn]0&M~$՜oQCCRfsnc`TG99PqZ<-%#:#wNLCDEIPMOH20/8BIYbL2/0.U߉#]I?87:66321,*(9B>(2<0*2#s}ފ"VD1*,9<61..0,(.-*'/5'(7'^qߊ"cE.!",:=DFA:7755=6/(+6K~!f$%;FIFAAEEB;53/./9J`!В1$(.489850..2:FY ؞O $)/49>Fc ӻⷋjSIHKWfzي#Ŵ׉ȶֹ҂ ý݇չʹɀم'¹œþ¿܄)ͧ{ڃ)ήx~awquxwwoۃ)˼Ϋx~up~o܃ɷγ}Ƥ܃)кʰǶۃ)¶ÿh}~}qq҃)̻tU^wffp~HKsѾ)ƼǺlJEJJS\hpsqt|m3Dsʠ)ŹtO9/3=KSWMB75Yҵ)Ǻ¿xiZLFGNX`e}~۽~ҿĿǠJe)][¾Ļſ侜L8):bڨR-)Cڹ7Զj  5 ƫo+#nǼ['W΀ǹV& (@KPPK@(ޛڒ;ܳߌ!̾IJ̖͜s"Ӂwȳvuo`++1Jq#ƻZ׿{{koYUVZF0 `߉#µuɯpRKMXc`]hfWSKVS@1 C$ܷ^@46J[ff]TKBGA:#"",4EOU\suԹ{}̹{yĜIc)\ZʼýຘK7):aեQ,)CԵ6βh  4 ©m*#mƺZ'WŷU& '?KPPK?(ڛԒ¾܏Ƿتڌ!ܾƐƌeq݋"lcªook}[$$)@cۊ#?Ӹ~o}whmXTTYE.Tډ#aĨbGDIU__\geVRJUS?0 6q$ٱR905J[ff\TLBG=a{R# )jڈ$ёV5,->Tc^RPF8*+BgyO0! !r؉#e27025:B@B;%$$-5=OZC'%& ;؉#ܸF0.)(+))'&$ .84(2& ) Em׊"־<.# .0*&##&"$"&,-:[ي"I/!"16-),0-&# $*#&+3#(|Պ!6,!2;403;=80-.+,4-%"+;f!иS3?A>88<<93,)%$%.=P!Ɖ* ',021.)&&)0;L~ қL#(-16=EDLU`gjgjpb'.Syun|)±Ƹ|]A/&+6DMOD7+$;]zwj{èz)¶͹saRD934:BGL[uviv̰t)~zȿűol|ٻE])YWôٲG4)8]͚K))@½ˬ}3ہڀũa  3 ͺf("iU&Tſ}R% &>IMMI='il32 @ ߌ˵͔֨ʮLZtĨ«lf]D0'"f֩tTTjysj^Xa^&RpMCSid\I7:^e5*DL@:;::6,+?A3@.09|D-)9:202),(*3'4%(oU/%:@9?A:352:5).I߆t 6@A@D@71/3DpʾƵc $)/39Ev̶༗} сȾ܄έ×ý܂´ہŤmsr~~wu܁ ͸ǽ ϵкځֹׁŸĹiivlzKwȁɿ[D?Pdqph[=tϦv[E?CJRc̽o̽uH2 ۳y ! t [ , Ӹo##kɻ\ 3Xs}|tX4 ݌߉ʴզņʭ}~8Jj݅r}uhiWTM4"Wބզe=NcpnfW5j}ɣϺoR>8"16/581*+)1+$7؆f.898;8/'%)8aچǼ_$(,0):M%Rہ v*,-&')P݁ Ƚx*#*0,>܁ ǴʴӀ]շйhor~wüԬlmyú~GBOMZyMȽ5Űq"[Sit32yJނܴ ݀ Հ Ӏ>GзôûNþɫT½ϨUŽۤͰWûĹЍwjjrzXźɾ[JA@FNYfu[Ş~ùǿ_GB??GIK_p|ж^YM5,,+& .9/AHOHJPX^VK>4.024.$ /DEOz弊qYGIOME>H=<<=<;79;=>;8=>8494+*,1/,/36@HDETM=1*2w}bx[踂bIFJHA74334369::732231/1-,,//+0.(%##(,8GG9069)!$(/5==5,%$*370%2hm뼃^FEHE;3//-..38<=;75211,7.**20*%$&),2:;0,+/+"$)04891'#%*285* (xffȉ\CEEB8-+*))+.6=:742*/./0,.130-*++./.-)''-,%(-3773+%#%)2991&   HuZ`ڔ\CFD@6)'&'*08>@A?<8321202 351-+(*)+*%')+(,3783-'%%&)2;<6*#  /LJ\`BECD8'#"#%)19>BCB>8434456779850,)*(*%$$%&),0662-(')++.6>>7,$ !&.ACl w@GDH?( ""#)18>CFD>975679:=??=964100.,*)%+/342.*+/69::>@=3+%"! #&+1DFDA>:7678=BFHGFC@=:85432248853/.2;CDB?=:5,'%&(-2:ARU]0sCENS6 !"'-5=DFFD?;9878973/+)'((+.39AIVcn1ւCHXC%!"&+3=EHGEBA@=<;>>?ADFFC@=<<:#8786789<930.,*))*-/49AIP]j OPR2 !%)1=FIKKLHE@=@ACCA%@?<;:878752/.-,+,-05;BIPX`pqO@)")3>FJLNMKEBBA@BGHIIHGFCA<:745311./.04:AHPY^e~X."A '/69;==@DEEGFDCEFGHHGDA>;751//-,--./026:@GNU\`k{2@"$&)++-159<=>@?>@?==;9741/.-+,,-.036:AGMTW\fe# !$&),.145565354220.-./1158BHLLMRd¿ڙV "(%(*,.0357:=@BEGJHFWvT¿ϓ]* !"$(+-/279;=?BDCCEIWySS8  $&)-02468;<>@K^rI¼ǨpT93/,(',*(.7:29Ygmwʍ9¼¿p][RCYuoifehklsy~2ӥA-2Cair9ǿfYUJ;Nvyj]VVZadiptz~,Õ:(/6Ufo|ȹoſ}aVRF6AeqbRJMRVY_dkqux|~~|zxxy|~p.%-2Ofo~оoþ{_TOE53APQNJIMNPUZ^bfiklmmlkknqyn@"&03Pis~ùxm¿ÿ|aRLC8.(-9FLOSRSW[`behkmononprxmT5$"(-9Wny~}Ǻдm¾¾jUKD=5+#"&5CDLZafjmrxxztf]VB7.))*+3Fdw~|}߼پU6½üvaPGB<4-' #.46:=@2?70-+/23115@Zp~||}ԬʭVpÿ¸teZRID?82.)&#"$%&')+/5:?BAABL\m{}|~ɳձhÿ9Ž}vne_XQIEB@=>>?CFILPUY\_biqz}|߸#iq»|tpkhfdcehmptx{{yzz|}Ǣ^=½¼~ͣ5Ձ¿ÿ+~ϡ21b˻À0̠SP{ùÿĿĿÛjN¿Ā世v  ´ۀÀ2תw(Ĵ3šsGqɸ΀֫h \о܁ݸP7ʿ$࿝3 &۾kN ـֺCp ހȱZ$кk"5оn11w;b*$cR"9tā.Ŀf3 9rÀ j9/]ÁǾ^1 1OsՀȻvT5)8YxǷx[<+  +28<;?CC?;:81,!  ڂ$ڰ  ܀Ԁׁ:>G¿ϴ²ºRսþɪT׽ΦU˼ļ١ɫWɷút~e[[eozXԸĹqwθqE2((/8GWj}[⽏nø~srx{lpz}qJ/+)&13'+Ih[ՏRHO[vԿſ|nd\[djg^cbcZUC/(%#%*$%29Ji\uKI96˽}|vph`VQSX[]``^aXG>3'!+3#7^]ݾa[I˼{p|yuvwtpebsydUSXVOPT]`WM@?9,$&! 4a]ؾdVhj^fpojfcacgdbdd_X]s{leg]VKFKR]YEHJE;0$#) $Fo^еdOŷw[QUWOLNORV\b``_[WU[dknplaUMIMLPOLWZZPF>.;Q# (8[^ȭldϼjMLPJB@ADHNV]aefd_]_cfhfceeZW[^SEBM\c^WMJJ>. 03Hs_yǶ_EFJA:8:=AJTY]agllhiigd_Z[[YSQ\eVA;GXdeeo_SQ;-   22:gHӽXIT\_aejjd]WRSSNHD@95768;VltkmaM8#  0&%a^ª]7;?6+(),2;EPX`cklh`XTSRPMMKE=6/-.69=523234467;@EGFCBDJGEI:'#&"!  !.7(&2KadgolRK?,# "%(&# "#%`]Ÿv_71:=8100.0/01./38;=;GNUMA2(#"#$(*%  .,?v弉lK04::2-,,**+1)(*-./.,02,')&#$ "&)3:99HA0$%0<=5,*(" $(*%  1@7`渃b;.695-(('4(*)&&''%&$%%#!#! "  .=94=<+ *14/,& ),$ *PPQu[X2.560($##"#%(-,(%%$%#"#  ##*:<-#*,#*02*!(,% "]sLh뻀P-/41*# F$).0,('$%"#$!!$$&..# %*,.$'.* RqF_ZDžL*01-' )/12.+(&$%%!!"#!%'$! !""!!',,( '..&1M:Vۀ ؑK)00,$",0232-($$#$#%%$$&'$", ',,(!&02* 2/P P*11/&%-26640*'%&'()**+*'#!$*,(" #+34+  ++`Yf(224+%,27971,)'()+.1230-)'%$$!! $(('"$+./0351("+42%3263E"*38:94/*)(*+059==9751.*)'%$%'**($""%/78540.(!$(/=9F_*/89%F *29;:71-+)(,/5;?@?>;63/,*)++*('%&(,472,*%""%*07BHTp+0=.'08<;85311../034689631-#,++)*+-/-&" "&+05=HPmX927"&3;>??@?@<831//125533223210/-+**)&# !%+06@BCBA>8554358:; :963/-)'%#!  "%+06>=Ilj'   ' !#"!!#%&'),.159779LyؖO. "#$&)-.0126731@cTľ̐Y% !#$')--/11//13Agʽ{M21 !##&&(*+-8MaSԿĦlP4+'"!(,/6W~smgddgjkrw}.Ҥ<'-AFJLORW^iqyxrru{ٵ#ipſ¾|{tmgb_\ZZ[`dhkpsqoqrw~wssv}]5Ϳ0{tsswɟ54ԽǾ¾.}wtvw|̞1`Ⱥû1{z}ŜR{Ѐ=Ľ¿濗h׽сMഒt & ֿľ4ӥt_±ᾗq]rǵ¾ѩf \ϻ߁8״O,8Ƚ'ۻ2܁ ʀ׼j Mހ 'ѶB,o؀ԀĮY#$̸i!4ͼm01wʽc*$cǾQ!;9t¿d3 9qÁ̀¿ i8 /\Āż^1 1OrրԀŹuS4)8YwŶw[;+  +17;;?CC@:;71,  Ԃ$֭ Ԁ:;¾ĺ͸ͽGݾĿʬžú6Һſ¢TӺ»țUŹɽӓ~xrtW̼ӽ~}hsYMLW^iyXʨssvؾ~yv~hn˳j=*$,9GZk{[٭zlrw[x׼~to~vklruej~vylB)""** "=Yo{[};.7FgϹ|quvjaWW_fd]a`aXT@,$"%".27)"# )QtǾ#ѯ{G9O̹s[Q]hhb^\]_aa_ZUZr{leg]VKFLR]YFHJE;/$"' 7^|^ʨN6fKELMGEHJMQX]\\ZXUTYdjnok`UKILJONLV[ZOF>,9P! )In^̿ZO̶zYABGC<:- &'8b_fðuQ:=B:457:AJSY]ahlmiijhd_[\\ZSR]eWC;GXdffo_SQ;-   *'.W_xиrJ3;=4/.1571./7:=Sdr}x̰vSMA)   ![_ӲxW/1;5*%)-2:BKT\dkhd_YPMRUNLIB>3*()'*-8PYjywnj|NFHB-!"#! *h_Φvb5*6<5-.138=AEKT[[UPLLMMOPG>81,&#! !3=<@D<8:/  #&&'+.9F=15:C6-*($"%)+&  +6-RtzU1(064,))*)*+*(>''%''$#%##""/>;5>>,"+250-' "),% 'GCEj[uM+*241*''&%%(+/.+((''%$&"! #" %$"-<>/&-.%,23,# *.' "WhB_[vE',11+%""!""&,01/+)''%&&"! # '& !(00&"!"'+/0' )/,!MgBCCB>:630.$/.,**)+07:50-)&! "&).48CHPAm+2A0"*3;97542234579<<:63011010..--/12/)&$! "&).4:BIOk96=&E )5>ADCEDC@<753467997676776321/..,*&$#""!"#&+06<@HMY]8. !+7>CDGGFGB<::88:=@'>=;852.+*)('$%&%$$&+06><:;=?AA><:73.+(&%$%&&)+05;BGLQYWn'""#%+.14568778765310-)'&%##$$&(*-16LqS}P6   !#&)+-.02568CWkSεħnQ8/+(##&$"'256=FMRb~žUؾɹܦW͵ȿݤ1µ̀Ɂɀݢ"xѻǂȃʁɀˁ ü ܠ&ò~rõÿǀʁˀʀþٽם/н~utѵɂʀ'ɳۜ&˽}t޺'ٶښ+ʠ$DZۘ,оڮ*ӹؖ0ɻŘ}~3Ÿ֕h¼ի}zyxx~ÿ֓^~yvqov}`v~Rq{mxؓjÿ¨zͪzvliov{{Qe+OHU4eG&RWJ5;%;iZø׏n̵w|kecdgkpyi9'+=jcARid,amSdprvLX\[rdTjoijqmïȿՍ5Žڷq{medfimmvyvy~C@6Ĥſǽэ:żʻ伦~k|oigikmqswz~}xz}q`0Ûĺҍ<ǽĹӺvgrmlkmoqtxz}wvz|~-”ſՍ:ʿ|qdvpoopprtw{wsx{~+׻ĽǼ֍(}tldvvsqqrsttyyrtx{,԰zԍ;Żvokejysqrrssvytrw{/˜ssz¼ҍ9yqljcTs}tqqrrswvrv{2ϰ}cjpv}ύ'ĸ{rlijUJbsp rsuqrw|3JO_elt{ɍ)Ƚvojj^OIOqzrrs romrw|,נU.8RXalu{~Í7÷tmkfSPH=Q~ssqnkhjgkpu{-ٙ2$,BOWeqz|{~žoǻ|rmk[NLD7Pxwlfa^]accintxz̜5 &2DO\lx}{xx|o|sngTKH?1FnrbUNOSY[^fjqtx}~~~}|z/$(;ITfw|urqw~ǹoŻ{rndPGD:.:_j]KDGKOQX]chlortvvsrqmmnpqzf#!$5GQatwolnw|{~9ÿ}tpcNFA9,+;JLHCCGHINRW[^`bc2bb`chmze6!$5HR`rzpjit|y|ȵsmȽǽvpcOE@:0(#)5@FILJKPTX[^`cefggegimcL*&8JTbs}rjhi|xx~¨múŻypfUG@;5-$!.>?FT[`einrstn^UM9.#!-ANYhv}qigfsڰ~zw{ʲQlź{qj]LC<51*#%,.56:988.'$!$''%##*9IV`nz~phgho̞|zxz~̽knǻxoe\PD=73.)$!!'+/0/-.3?IU_lw{oifhq~ťbk ýʼvpkd[SJF?:41.,+**,.13599850+ l8mk  PT08o*Qïo=~5*O?@ mc R*VSpuak$ 3J_x{bM6! %.6;>?<70'  s8mk)3%5 #o:lo~\a4=\e 1uѲy5 $%t8mk@   +$                     $%&     #5> 13(#)0486+%(   +4HdxG.%!)8H<679CQA47*  ?T55699:>K@:z}P/4& 1JA?6.2=LB7}<49 *`ŝI5822'!2GFIə?HE% <] '@Xov}¾lR>( ISؿU5PȘ_ $`j) ]MhXjXjYjWjVjNjAg/]Dg&Y?|&@|"Q Q  }$ "= $4R&" %/Da2+ !/9Lk=7(  )9EXoMA1#  $2AQ`mXK9*  )7HYfoaQ?/$  "-KYgs~ĘznaSE8,"  '0FNW_gnu|̳yrkd\SKB:2*#   '.4;CJQX`gntz}ӿ~|wqkd\UNG?81*%   $+17=CJPV]cioruy{;~zwtqlf`ZTMG@:4.(#  "',16?@BDEFFGHHHHHGFEDCB@><;9640.,)%#   !"$&(),--/112334444433211/-,+)'%#"  !!"##$$$$$##"!!      pyshortcuts-1.9.5/examples/icons/coffeecup.ico000066400000000000000000004741061471654103100215370ustar00rootroot00000000000000 (`` HH TV@@ (B00 %4  Y Vj hs(       !!"##$$$$$##"!!  !"$&(),--/112334444433211/-,+)'%#"  "#'*,03579;>?@BDEFFGHHHHHGFEDCB@><;9640.,)%#   "%(,037:=ADGJMORTUWYZ[\\]^^^]\\[YXWUSQNLHFC@=852.+'$  #'+059=AFJMRWZ^`deghijlmmnnoppppnnmnlkihgeb_\YUQLHD?<73.)%!  "',16<BGLQW[`eimoqqty  *++0125789;<9;;=??@CCACC>@?9:;8;:578011+,, ! {vsrqokhb^YTOJE?94/)%    $+17=CJPV]cioruy{())788VYYtwẍ؝㱶잣㈌swxX[[9;<)++~zwtqlf`ZTMG@:4.(#   '.4;CJQX`gntz}011MOOorsΉߡ괺판ruvQST245~|wqkd\UNG?81*%   &-5>FNW_gnu|-//Y\]ÅڤZ^^/11 yrkd\SKB:2*#  %-5=GPZcluz799mqrΜdij689}yqh_ULB90("  !)2<FPZdox~699ottЦ`df033{tj`VKA7.&  $,7BMYep{#$$_ccɛzNQR !"~vk_SH=2)   '0<GTamz/11swwձ]cb(**tgZOB6+"  &2>KYgs~345ܼgmn.01znaSE8,"  &1?M\kv"#$|}}cik !"|rdTF9,"  $1?M^kwlopʸ{|~TYZrfVG7+   "-<L]i{KMN||~?BCofUC4'  )7HYf}}djkoaQ?/$  $2AQ`587{~/23mXK9*  )9EXZ\\}}LOPoMA1# !/9Lnrq|_fh k=7(  %/D}kqsa2+  $ 4ltwR&" "~~mtv = w{{}~~dhj $ ^`bQyro{mzp}u|NRS 345"~q}kwht~hvjwp|w~/12Q|zxxxwwxz{}~}{{}{{zo{it~fs~fs~kwrzmpq@zwupl|h{et|^mtYgpUbkQ_hM\fMZdMZcN[eQ`hUdmZhp^kt`px`s{_q{`oyaqzcrzdwg~lwulwgs|fs}jvp}xY]^| լvpk}dt}[kvSbnJYeFS_?LX:GQ4AI1:E.9B,6@+4=*5>*4>,6?.9C1I5AL9FPAC?CDFLLTZZ[`a`efeijinmnrrrwxswxtyznst^dfU[]MTV9?B.27#).$)#)$*%+!*3-CPWYxw~lsufmoagi^df]deaghcjkcklirsnwyt}~xz5$,2,49BRYOagWfmepwq{z|{~jVvozjxj|^luOY^IRXOX\qx{zr{}r{}sz~sz~sz|rz{oz|mw{r|w|U]b.6:8DKRdlXgnamtlvu{~jW{r~lyixj{UahJRXbjos~pz}p{}p{~r|s~uq|r~w|JTYOai_nteqvlv|t{jYyq|lxjyct|T`es{}tq}q{r|r}swvr~v{}cryjv|p{v}jXvozkv}es|jzysq~r~r~ssvytrw{s}s~zjX}t~lx}dovvvsq}q}rsttyyrtx{zjM|q{dpuvp}o|o{p{p~rtw{wsx{~h>vgsyrmz~lx{ky}m{~o|q}txz}wvz|~]*~kw~|o}ix{gsxiuzky|m{}q~swz~}xz}q`twDq}{mz~euxdswftxix|mz~m}vyvy~CY`@V]"ߖw|ky}erwcqwdswgw{kyp}yix|9KO'=D+BI=RYjyctxAV[Reki{dv{,EJarwm~SglduzprvLagXjp\os[ntrdw{Thlj{oi{j|qm~[m|dsxcqudrwgvzjz}p}xhwz/4,AHhx~`sxEZ`bsy/FM3JOE\a)BH8PU#=DObiasx(BI>U[Qglex|+DKOekH^dUjo4MTew|G^c&?FRglWjpJ_f5LS;RX%?E;T[i|Znr|}wgvxcqvdrxhvzlz~qu}5IP27bsy@V]Shnq?V]0IQYmr^rvVkqJ`g~4LUK`fxVkoew}\qwTinJ`e\puZns2JQ0INQfkYlqj|.߇|}o|csvesxiv{m{~qw|.EL3JPt~k}Peki{fv|vWjpCX_fx~Xmrygy~gy}gy}(|vjz~dsxiw}o|tx~H_c.HM^qwCZawex~{z\pvi|rfzey[qwj}Fzzvl{iw}o~v{{8-@C8KWM^kar@ ZY]'%*       !" $!($+(!-)#/+$2.'71)95-;6-=8/?91B91D;/C;/C<1E>3ILAWqgy|JROV  """ %"(#*& ,)".*#0,$3.&5/)71-:3.=70@:1B=2E?6G@7J<3H:1FJ@Wlcvځkjq)'/    !!$ '"(#)$ *$ ($ *$,% ,'!.(#.'"/'!/(!0)#1*%3,&4-'60)82,;6.>81B=5HA9L@7L@7ME9RVLdy) ګ^Ze#   !!!$&")$!,'#.*%1-(4.*5/+5/,6.*5,(3-'5-'4,'2+&2)&0(#.&!-%-% -&!.'!/(#1*%1+&5.)82-<60A<5FB:ME>RG>UG=VQIaulQnj{'!2  "$&")"+#+%"-+&1.*51-940<50=62>84@73?72>82@71?60=5/=3/;1.90,7-(4)%1'"/&!.% -#+#,$,$-& .("0*$3-&61*:60A<5GA:MF?TJ@WLB\ULfwn9G>8F<8D:6C;6E=8F?:GA:HA:H>9G<7D:5A71>3.;.)7+&5(#1&!/% /$-$,$-$-%.& /&!0)"2+%60):5.@;4GB9NG?ULD\QG`YPkr]Xq81O.(@ )"!)+'373>>JD@LGBNGCNFBNGAMB>K<8E:5B:5B84A83@:5B=8G@:H@;I@;I@;H>:G=9F;6C83A5/<2-:.)7+'4*%5)#3(!1' 1$.%.& .% .$ /$.&"0+%40+:60A<6HC;FA>ID?KC?KE@LD?LC@L@;G;8E95B73A51@41=2.<2.;3/>40>53?74A96D<8F<9F:6C63@31=0-<1-<1-:0-:1-:0,8.+7.+8-)6-*7/+81-92/;GB?KC@LC?LB>K>;G:6C63@3/<0,:.*8.)8.+8/+9.*8,(7*'5*%3)&3+(50,874@:7B52>0,9-*7)%3&"/!+ )'(("+&".)%3.*940A87ICBVHHcPTnD~%?/3H22E86L63J!-!#(%".-*653>:8D=:F<9D74A3/>.*:,)7,(6-*7/+840=85B<9F?=H?=G=9F;7C85@41=2.:.*8,)5+'4(%3($2(%2*'4,*8-*8,(5)$3%"/&".)%21/;;7C;8D95B74?50=1.:*(5#!,'%%%&(#-'$2*(:0/A;=R69UAF]`[fw"(@.2G.2D34H.+?(    ""#)&%1-,842>87C;9F97D41>/,9+)7*'5*(6+)7-+90.:31=52?53?20=/-9+)6)'4'%1&$0&$0$!.#!,!* ) ) )" +%$/*(3+(4('2$".!* +%$/,+60.91/:20:53>75@41=*(3!+%"!  #&+!"1)+<04L*2HzHP`%*B.1E/1C0/D)&8'#"""#%)(%1.-942>86B96C64B30>,*8*'4(%3(&4*'4+(5+)6-*7-*7.+9-*8*'5'#0", ) *(((%$$%& )#!,'$0-*6-,6*(2$"-(')" +# +%#.-+653>54>-+7# ,$ !&.(+A&+CU`l!ߘBK\%)C-0F/0D-,@&$6)'&&&'*&"0/,830>52@63A52?1-<,(8'$3&$2'#1'$2�(%2(%2&$2'$2)&3+'5'$1$"-!+ ( *!)"+*%%%') +(" ,*'3/,7.,8*(3#!-'%%& ))&220;32<-*6!*#  /-2L)/JHP\L|BL\%*C+0E.1E--B''8 -+*))+" .*)61/<31?22>1.=.+:*(7(&4&$2'%2'%2#!/#!.%"/$#0 ,#!.'%1*'3%$0#!-! * + +#!.%"/$".#!-)''-,%("!-*'3.,7-,7*(3! +%#% )('20.90.9'&1&  .1HEMu2:ZKV`kڈvEP^'-F,/E14H11E+*;%#3" /"/!-".".&$3,)80.<10=/,;+(7)'5'$2'%2%"2&$1"!,!, ,#!.* *'$2&$0 *%$&)!,(&20.:0.;�",!+" /+"$)'%0+*4/,80.9'$1'#% *)'2/.8,*5!*  (MRxgq=H;9E54@>=H>GPwCP}EQbjuxl^lq=KY(0G/4I7:O8:M12E-->-,>,,>,*=,*<,+<-+=,+<+);*(7+*9.-;/.=0/>/.;-,810=22>-,8('4*)9'&4+* ,$#1%$/! ,#"/'&3*)643@<:H99D99EIHTAAM10=%$1*&%200<<=G65?-,8**4((2$"." ,%$/)(2+*4&%-#     (+1G6@a-7RR`itʽjvxP_g.7M,1H5:N:=P78L11D00C00B0.C10B1/A20B21B0.?1/@53C98G=;K>=K=;J<54A:9HCBO<;H?>JHGPONXUU^NMVBAK32>*(4$#.$".%#.%$0((2**4%%.$      /).D$,E6?OivzXxcpvBM\)/G16L:>R:=Q55J22E43E42G43G64H84G96H97I<;MB@QGETIGWHFVECTDBQGDSLJYJGVGERJIV::H*'7(&6$"0!-"!.! . +! -"!-0.<97H+(8'&432@LKWbakedohgqpowkltSR\LKU@?J.,9$#0! -$".'%0)(2(&1$#-&     ("2#7%9S`iz÷vbnw5?S*0I6;P=M33C**<('8)(9'&6*)9-,:88GPN_YXejisyywwnmxjjt||NMZFEQHIUBAN-,:!!-""/##/!+&#    + 3.*3Ehw~xxN]l/7Q6;T:?V16J(+>&(<))?-,B22F;;OFEZQPbZXla`recvlk|nl}ihzb`rXXjUThTSgTReRPcOM_NM]MK[FEU>=N76F1/A.->/.?76G:9I=SII_STg]\o^_pbasfeykj}jj}edw^]rWWlRReSShTSgNNaHH[EDVA@Q:9K55H55G55F87I76H88H;;JVVdllxttlkvmmvbalNM[:8F$#2*($    2)0L&@%9SamyղxrJXi3>I-.7%"       1&0P'3X8H`bszyHNdu6O`fwK[mEQjLUoMWmGOhELeHNeJOhMRkQVnX\t]bx\`w\`vZ_sX[qUWnTUlY[qddxjk~nnopkl|`arUUgKM^IIZLM\JL\OP^NO\LLYVWa[ZfZZeOP[FFQ>>I,.:9;FPQY!#."     -(H)8VI[kn!P{Gdq9VbOhts[jxQ^s]fhphobj^f|\c{]a|_c}ag~ad~_b}_d}_d{Z_wUXqZ]trs{{lleezgg{]]pVViKK`FFZLK_RRc]]lYYgFEUHHWJJXEEV;;K/0?$$3("#1')5#%%    &$?7F]^oz|}HoEasC[p.I^tk{aps|yuysusvtwptlpce_b}psxycd{TUmRSkWXnVVmMOeOPfSTh\]p^`qVWiLM^?@R>?S79M),?"$60)'%#)#&2!.%   *)4GQaotCau/K\-I]9N6I{n}sz|svmpeh^`zSVoLQjPSlVXoY[oZ]p]`r]`r\^p`arVXjEGZ=>Q23G%'; !62-/.)*&+903@!#0!,-7HO^lr@6};Rd.HY7O^F[jgv|quv|jnad}W\vW[u_d{fj}dg{]^tacv`bvacvXZmTUi@CW,/D$(?%:#6"%:%*?$7//"%6.2C29I(*`I5822'!2GFI?HE% 1JA?6.2=LB7}<49  ?T55699:>K@:z}P/4&  +4HdxG.%!)8H<679CQA47*   #5> 13(#)0486+%(   $%&                     +$     ?? @@?????`  !_;Fp(`     !!#%%''((('&%%"!   !$'+-02569:;<=>>>=<;:8531.,(%#  !%*.37;@CGJMORTUVWXXXWVTSQNLHEA=:50,(#   %+18>DJPU[`cgjnqu y {|}~} { zwrolhea]XRLFA:4.'"  #*18AIPX`ekpu}/00ACDTVWknnz}}ʂЈԉՎ֎֊Շԁy||knoTWWACD/11wrmhb[SLD<4-%  %-5@HQ\dluz.00LOOlpq̇ٚ㰶󯶷刍orsOQR123|woh_ULC90(   &/;FQ^hq} 577bfgȍ߯_dd466 ulcVK@4*!  !-9DR_kwADDnqrΕ㳻`ee9<={odXI=1&  %0@N\mx%''`cdƔv|MPR !"|rbTF6*   ,9H\k{9;<{׼`ff-01qbP?1"    );L^q 355ڴfmn*,-yfSB/"     (8M`p"##quv̰|V\]ygU?.    &7KcXZ[FJKmS>,   ! 1DX+--ͽ~dlm%'(bL8$ $%&,-. $:M344{,-.ZB+ ,..467+ FUXX춾HMO V2" +./$&';=>CFG.bdf굾OUV;$ '*+034KNOSVW KMNhBFG* "#<@A`cdgkl  UXX\㵽~}FIJ (*+KPQquwx|~RTUgjk1ÿvnzjwm{t~.01Q58:HMOX^`~xlxgt~hto|xx8;=mtwgmpD|vo~ixcs|\mvVemP]fJW`FS\DQZDPZFT]KYbQ^gUclVhpWgrXhr[js_r{d}n|t~ju~gs}kxsgmnrpwzxȤyk}aqyVdmJVaAMW;EP2'/8"+3!(0!(0!)1#+3%.6)1:-7?2=F7BL8DO9FQ>NWF[dRjvb{p|wjugs|jvzejl(D}qdvO]eELS:AI28?*05#(. %!##(,',0,03/4715906:/48(.3&+0%+0'.4(/6'/5(2;/>HCYgTn|c|uwjvgr|lw}zz]bcjy yizXfoHPWAEGEKLTZZ[`bafgglllqrotuotvfkmZacOVXAGJ5;@&-1$*"("+41ALD[iXpj{ymxgs|kx~xy!vk|T`hFNU>DJ17:/4659:;?@@DECHIHMNINPKQSRWYW]^[ac_egahjckldjmdjlcjlemojrtntxcjmJQT,27 &(.+7@CWcSjve}|xlwht~w|xጓ:9sk}YemGPV@GM38==BDX]^Y^_IOPEIKHMNMSTQWXX^__ehelnjrrmuwpxyqyznwymuwjsujtumwyr|~EMP$)&,,8@AU_Qfpi}|~s~lxnz||e_sk|[ipMU\DKQ:AELQTpvxipqZ`bRXZTZ[Z`b^egdlnktus{|w}~|ry|+37$*0072?84@84@83@93A92@61>40<2-9-(4)$1&!/$ -#,#,$-& .("1,%51*;70B?8KE=RJ@XYPiݪNIb%3#'#/2/:95@<8D>:E>:F@;H=:F<7D;6C95A:5C=8F?:G@:H>9F<7D94A4/:V1,C'!%$!-42<>;FB>JC?KE@LD@L@50>72@:5D95C85C84B84B83A51>2/;0,9-)6,(6+'5(#3$ /#."-",",%!/+%51,<:4GA;PHBYZUn/@CEZ10H;8Q$!1 " )(%130<=9E=:F:7D62?40>2.<1-;3/=52@86B:7D=9G;8E84A31=0,;0,:/,90,9.*7-*7,(5-)60,820<.,8)%3%!/", )) *#,(%2.+951C@95A51>1-:-)6&$1 )&&("+'#1.+;53F??VOSk~$*A.2E23G+(;$ !#!+)'331=87C:8D41>.,9+(6*(6,)7/,931=63@53@2/;.+8+)5)'3'$1%#.# ,!+"+$".(&2+(4'%1# ," ,)(31/:20;31;52>2/;&$/'#!!$*#"1+,>15N`hy\dr'+C.0D/.C%"3%###%# ,,*631=75A63A2/=*'5(%3'%3)&3*'4+(5+(6,)7*'4%!. * )((%$$& )#!-*'3,+5(&1!*'(!)%#.0.943=*'4' "+(,D2/>/,:*'6&$2&$1%"0$"/�#"/%#0)&2'$1" , ) *"+",)&&**($".,*5,*6'%1($%"+,*51/:'%0$"#46<\;CXx-OQ[g'-E-1F00D('8" / - , ,#!0,*80/<0.<+)7(&4'%2%"1#!-!," - +",&$1" ,&&(" -*(4,*7" - * -)#((&1-+6.,7# -$$"++*5-+6 ) :=ZU^EOcu~;8Xck+2I-1H36I0/@)'7'$4'%5+)9-+:*(7(%3'%2'$3%#1%#0$!/! ,"." / ,#". *%#'$"/52@=;F/-9.,8.,9'#((&20.:21<*(3 *%" ,+*4(&1"   (GLoWcR\k}Aّbns3>P+1G48L45H,,>**;*);*(:*(9+):*):)'7)(6+*8+*9*)6*)6,+8'&3&$3%$3*+"!. *) -('476B:9E:9EA@K21> +)'&244>65@0/:**4$#/ *$#.*)3&&/      #39Aa=J75B53A/.<,,"!/%$0%$0)(4//:==OGEVLJZKIZGEVGDTKIXJGVJIV@@N-+;*(8'%4" .! . ,! -&$142B.,<33@JIUdcmhgqpoxeenONXDCN.,9#"/#!-'%0'&0#"-"   +!3#*=cowa᢭zYfq2;Q5:P8;P-/D*+?..C33I=;PDBWML_YXja_p_^oXWhSQcOM_ML]QP`LK[CBQ<-,B66JAAUONa\ZndbtihzjhycasXWiSReSReQPbML]KJYEDT98I1/A-,=.->54D:9HVTbhhsyxyx]\hLKX;:G%$1 ,*$    226@Pp}OLZj6>W9@W27N+/E,.D12H:9OEE[TTh\\n__qedxjj}hgz^^rWWkUUiSSgLL_GGYBAS::M88J::K;;L88I??N\\jqq}mmwmlwQP]20>,&    $")C!)D7BQp}5uwP]mH')4!   "%?1@Z]nz&Qmz>Xiqwap}bmt{{u|pulqjoilimfj_b|\_xstpp__u[\qWXlNOdKL`SSf[\mSTdFFVCDU:FSekzo"@Zk.I])CVstwzorlodfVXqNRjSUmVWmXZm[^p\^pZ\mKM_>@S/1E#$82,,(-(,9!#0! 28DSft~еZo?XhLap_p~{zv|hm\a{`d}hmhkacxfi|dgy]_rFJ^)-C!'=$8$)>"(=1#506G?GVQ`lm~&}|wj}uyzyipJQf'.F (@!)@,6L2>Q6BRKYfet~y01xq|YdvCPaDRbM\k]mxm~y:y|$l f_$$/  +6:|6 "_O$  G|;  I9[z^D&?j57<=8SejfjSB:/ad?;33@F:=5$  %U?.,4>==:fp[=( "0D1(6+*09;0)!               !  ?????????????????????????????????(H `T   !"####"!    %).259;>?@AAA@><963/*&!   '.5<CJPUZ]_bdefffdca^[WRLE>71)"  )2<FPZbjpy 466LNObdelopqttvzyvzypttlooaddLOP466 !!{sle]SI?5+"  "-9GT`lx$%%EGGgjkŇڟ簷񞤥臌hklEGH$%&{pdWK=1&  -;K[ky122dhiǕ䰷[_`,./~p`P@0#$5I\n~"##eiiȠQUWsbN;* +>Ul577elm*--r\E0   *AZu022ٻdkm&()~aH1    &>ZnqrĶSYZcF,  5R.00ݿs|}&()\=# +,-&?NPPﲻ@DEK- #%&@BC +befPUW4 +./),-VYZ UXXqHLM"*,-:>?nqs244 \^`G跿~vuz8;ISBOXHU^M[eP`kRalVgp]s{hzuhs}jvuyntw p[jsKU^=FO2;B)07"(.$+ &+"'-$*0&,2(.4(/6+3:.7?.8@1?G>Q[Tlyizwiv~iu~ioq9hzfwP[c>FJ27;(,0$)+*.16:<>CDLQSTYZ\`a`egafgU[]IOR;AE/5:").&-*8BCXeZsqxjujvy|qwyۮvds|LU\>DJ1697<=>BCAFGFKLJOPNTUV[]\bdagidkmelndkmcknjrtovzcjm=3FNCVlcsCZX^!%  "$!%")% ,)"/+#2-'50+95-=:1B>5HD;O]Th2wFCL   "$")&"-*%1-)4.*5.)4-'4,'3*&1'".& .&!.'"0*%3/)85/?=5HE=RWNe~a ܭa]q!+!(*'20+71-951=85@:5B95B94B;6D=7E;6C83?3.:,'5(#0% .$,$-&.("1,&74.?>7KH?VZRjA:G;8D52?0-;/+9/,9.*7,(6+(5/+741=-*7'$1#- ))#,)&32->>;NNNf%Wx,0F33H+);  &'$031<:8D74@0-;,)7,)70-:74A:8C85A51=0-9+(5(%1&"0'$0*(5*'4�&"/1/:63?41<1.:(&2'$%)&$3/0B:=U?tS[k*.D/0C$!1#"#&(&220<74A41?+)6(%3)&4*(5,*7.+9+(5%"/!+ *(%&($!-+(4)'2!+ *$!-(%020;0.9)  *'+@NWg[ݠFN_*.D-.B#"2)()$"00.;20>0-<*'6&$2$!/%#0#!.(%2%#/!**"," ,('+'%#/,*6)'3'$ )-+6,+6%*6<[DL^QIS`+/F23G+):$!1# 0#!0)&6/-;,)8(%3&$2$"0$"/!,!- +%#/)$&%"/42?,)6%#/# .")*(31/:%#.$ *,*5#!, -.DZcQ\jUai-5J37K13E**;*(:)'9*(9+):)'6)(6*)8)'5*(6'&3%$3!.,! ,(+*(5:9E98D>10;))3!+#!,*)3(   -3K@Kmamtjkvz:EV05K8:N11D0/B0/B1/B20A31B98G=K=;I97E)(6 .#"/$#/&%1-,8<:G43@87EA@MEDOQPZNMV:9D('2#"-%$/((2 (   &%*@>HYyʣ]hr08N8=L31A+)9$"1! /! .)(687GEEQaajkjtsr{YXcGFQ0/=#".%$/$#.&  /#*O<;L<Yjvybos{zsyosmqkoae~gjpq\]sXYoPQgNNcYYkVWgEFW?@R-.@ 0*&*'  !3JWgxHϡgz.I[3K\|y}jnY]vSWp]`u^`t^`s^_rOQd68L#&; 4!5.!1+/>)1@GTatzfyrp|s{x~syv|ty4;R!)@#+A-7M/9JFS`hw} yYfuTbo_myo~} t_^a8%  H3 7u*Ht8J8`zU6.D8-0FR=5  86/6=@E}k:'  (9&,$.4+!           ?????(@ B    #%()+,,+*)&$!  #*06<AFJMPQRSRPNKGC>82+%  '1;DNW_fjqx  yrlgbYPG>3*!  $/=JXep{/00PRStxy͙᳹uyzSUV022~sh\N@3&  #1BTet)**bfgǛ\ab&()wjYG5&+?Uj| !!hlm˫TYZoZD0  1Ic|./0hop%'(jQ7"   1Mj!""gnprU8!   +JleghNSTyR2  ()) <kٻs{}~D'133)$%&]谹!#$x/ (*+JLM)++$%%D鰸"$$` ;?@ehi789 9:;ٴ}z|2 OTVvjvivtzUZ] ekn<}rfv[jtQ`jGS\@LU;GQDOWYhqvzt~ܣvkzYfmLUZempr{|qx{nuwkuwq{}{RZ^5@ETdkhs{y~̲ܧnzhxYcivp{~q|ur~{csyjv{xֲܧyju|wtq~suvu}~ݲޙr}o|mz~p|tzuzޭu{hwzguylz~tx|rm~܎  "!&% +*#0/'52*:5/?9/B=3FNDXyrOROX !%")'".)%/($.(#0)$0'#/'!.(#0+%3/)75/?<5GC:OXPffbt!%&#.+&3-)540;83@94A94A:5B;5C83@40;-)5(#0$ -#,$-'!0+$43,>=6JG>UZQjGB0,9,(6*%4&"1$.#-#-)$23->?9MJDZnjunr10G52I#$ ,30<=:F96C40=0,;1-:73A<9E>:H;8D41>/,:/+9/+8,)6+'4.+741=-)6!+(!+'$11-==;MQQj>',C23G(&7 $%#/31=:8E52?-*9+(6.+852>86B53?0.:,)5(%1%".$!-'%1+(5�$!-/-852>41=1/;# ,$#&# /-.@49Qjnv)-D./B"/$$&'$020=74A1.=(&4'$2(%2)'4*'5*'4# - ) )'$& *(%1-+5$"-'(&$/32<'$0!()-Fu%^hq(-D/0E%$4,+".-+91/=,*8(%3$"/" -! -$!.%#/()$".)'4 ++'(*(3-+6 *$$"-.-7(+,BFOxhrwdot+2H36J..?(%6'$6'%6+)9*(7(%3'%4%#1%#1" -#!0 ,! ,%&(%3<;F20<1/;%(+*521<('2'%#.)(2  9>[LX}vSu8DU16K68K..@.-@.->/-?-+<10?65D54A98E21=.-<+! .$#/'&210<>=I:9F;;H//;;:EGFP65@('2#!-&&0('0   $+2LGSaä_js.5K9=Q23G11D54I;8LA@RNL\PN^IGXKHXKIXFFT1/?*)8#!0 - -.,;32AJJUgfpoox_^hGFQ-,:"!-'%0#"-  /#*E[8=U>@XLMcYZobcvhh{ccvedwcdv__p__qTUe^^kLKZDDR^^j`_kYYbJKU+,5$   2,7WZiuVƠe|TkwkzO[qV_wU\tTZrY]v^cz]axY]tWYpnokk~cdvPPcII[RRbNN\PP]JJX56C()6+,7"  +7E]oӜQjy.I^o|z}knnqZ[tQSkTVlVXl\^pVWh?AT-/C 3+'!/!#0  %->\kvF|wPhw_r|qvagkpimjmjm~PTh&,C%:&,C 4&->JTbdt}w,s}\fx8DW>J\Q`njzvP~}>Q06s7ٙ\oA5JNvkV;$%=94D<;+ #;L!9/2@5+        ????(0` %     (/7=BFIJKIGC>81)" %2@OZeq&'(>?@IKKMPPMPPIKK=?@'((sh]QC5( +>Sf|&''TWWԞ貹}RUV%&&kXB/$=Xq"##imnȡUZ[v]B( +Ko345fmo(*+wR1 (M־ahjU. ?@CC}367H  8:: %]abKQR-),-Y\]WZ[qGKL478~z}4o{ly|EIJI]cesaoxR_iDQZ9CL3=F4>G:ENBOXGU`L\e[s}uviu~vt{~ 8|]ltAIO/49&+/+036;=DHKMRSOTWDIM7=B+17$.5;MY]vzwju{zP}uXdl>DJ=CEEIJDIJLQSU[\`ghgopjqsgoqjrtpy|bjm'.3.;DSisyunz|ݮt_mtGOUT[^nuw^df]dffopt}~~<3FYPc٭*'1 $ ('#.,(40,82-91+8.*5)$0& .& .)#20*:;3FLDY~xJSOf$%3/;?:FA=I>:F84A83A<7E<7E94B3.;,(5)$3% /$.% /.(9=6JPJ`(66L,)< !*2/;;8D40>0,:30=;8D=9F84A0,:-)7.*7+'5,(541=-)6%"/("++'6;8Kfh~HIPc/1E!.!"" ,1/<64A-*8)'4,)60-:-+7&$0#!- )($"-*(3#!-&$/+(430<# , '(+?|܄(('221<&%0 *)(2  #ENsmv}"˩eqw28N79L00C20D53E:8IBAP@>MBAO;:H%#2$"0$"/-,854B==RTSfcbs^\nRQcPO`FET87G*(9+*9BAPgfqyxONZ0/?<70' 3J_x123UWXpssy|}y||pstUXX234{bM6!:_"##gkkşUZ\d> L*,,emo ##T# GostSZ[R022 %nvy 0 !jmo}uksuBFHE08?3?INP]cdipqgnp^fhOW[*5=Tjtyr}~wVbi^eimtvbjlnwz:EKcpwyn{|r~to}o}y{zޅn{l{Whmn~[nsYlrgy~pgy~_rw]pupܐr~y$akpuS~yw}~zV_^c $$)("/,%30)9<3Emfvٔfct .+684@95A83@;6D83@/*7'#1% /)#381Da[p>@U" /%1.:63@/,952?85A1.:*&3+(5)%21.:+(5)$ .76I* ퟥ,.D -).+9/,:&$2%#0'$2 )" ,( **(3'+)4%(S[oRԆ28L/.@*):,*;-,:.-:)'6 , +53?65A('365@$".'&0 #&9dn|c Zdp48M..CA?SYWiTSdML\;9I)'7,+:RQ^zy[Ze))5 *-4Dm?Yet7=T:P&$4(&5+)7&$1#!/)+)6#!.+)5 *"!+*-D_it24I43GMK\MK[>7Glovz(*(5,)7-*7&$0'%1)&2%PScy//C=;L>=L)'6:9FMLW%$/RYf#jt\`ugi~YYmOP_IIV!FO\ hr}%5)3?pyshortcuts-1.9.5/examples/icons/shovel.icns000066400000000000000000002031051471654103100212470ustar00rootroot00000000000000icnsEis32STSMyyXsqU|~qopmABC<iiiiii[Z:PNBX~~XO{{KNL<=<<fbfbfbRT:GF8JnnKDklCCDs8mkedLLRPRPRP~|qsZ^[]il32s%%\\zvzvzvzvzvzvzvb`rppqMneeoKsvuvtuPP?}~A!!IIbababababababaNLRPNO5MGGN5PyxSRRRR6qr8-XX.!!EE[X[X[X[X[X[X[XIEHGDE/C==C.FoiioHGoHGoG0cood1(LM)l8mk66DD{x`idi ih32k#dd#mm,+ojojojojojojojojojojojII=pdcbdq? !!! 23(\m*<=PPVV$#XUXUXUXUXUXUXUXUXUXUXU45ffffff*NEO, ippolrlrlr`e#`c#@~K*)KKQQ !SOSOSOSOSOSOSOSOSOSOSO//YYYYYY%D<=<Wڐ <2~÷rY;#f1zU`|?/h~$`1%rr8|v2N:'"MB;ΘȤFoJPE^G"`ܮ/h>`$b!.{?Q{6_+l>\!'J'b;o% =h8P+h>`$聉 pV-MeQQ{6_? J2JȔIC9n~q $c6+MD'R'[ХoQO 4{k TZ6Ripe(J'Ǘ@5u8_zR~0J@]30޽b\M-UvfUp_ijQ^p cv{bg&""?7,cv89<43 ᰮ2 '# Ih9% y|wWi4>@ZB [f#*`vΚQ`]0m I>&?=˄+d65dRR yʟG9<4W^qQeOoJ]vKQi4>pZD;)8@/6־G2=˄+Jm9*ւcz!5g ?d8e._>n{vW1Kddo<92gronQc/Zü $|LttPjx s?M<}PII~rV;=QqOdoNLɭM,o{/xcHV"U>}}ZLh/1q{ٕL0u9咑P~~ Q&7~&\)rrڔQ~Ƭ4NUV:`ˍ?\%.+ `J:҃ drK4AbLI#0Vdߝkdt,6@ư@DOOvXgJIyS3jHC"*5o6Qg:ԙh]-)¿ع|{G3xȀPIJ͏5{p T~=eZ?ey7t@p6>i2`gj~Rz5K#aR~hN1~5!M&Zc1_/+BH>&Rک?}îYw0._"uMN7T=eZleUVUHqu7+|ث$\#q=E_\\~|6{/%m@x׬F]V":!4I}HGHgm6i||bHʲl0^܈=7a* WVdWVBUB?`;rxP~ Q,F.!'^ "47Lw 9w'd.U#|VCνJaqz⡞kk|"3&}KWe*: &r`H-s> Tu|i`;O)\Uz8eUK#DiZX_k{ɼ}Ja?0?UDVHKsӛl4UdSTFB3kI0RPUU_n߻n+!҈ ;+n04Qiw:@0 O²~P4+K[^t"lTi"Q]1 6Vzeu2%Gzq+FD (~̴l3jRg|$hZ"1<CoL.]AϫKbj n'`A B8$99=Kz[X\G 5Xd2j2\ғt%x*n(r9-x(نgRw!$pUPCMܧ U%LPfBګxGJ_KT. :hb.@Iꅸkm\my}`Ј ƤƓ}Ýa1}u͏]6ˏM*0TCuuT 7}{U*j=ޥڸHt=k]ס R)pH6ƣUOkPj^U##ȩ͇{;J<d$QREM|9C'ѷ1R R訝{XFx~+:*GbގF\vԣJ +\Q B>//amj0zqmf :iD*j\Tm$B2 adI}wUo5mv;Ko= A&E A.baXp&_ѐ:`cƺHkBx'A$.NJߝ? ? xsK=>}g\M x}ub''~.WtWvDMٞbmwfk99BT:>XyjzpK!a_30 q  _n >w172բ\^x`}$5Kk ء$ T9@55%eV"v/wN";~ 4L!s@bX]Kδm~;7!|9cbo}y|1uL-V t #'8`oc zQ#EEnO̷IR8wtaJ2 [i/^ ,t`}jbfF |l:ߞv)D{]F3\˟EV~ òNY i#| 6G&Z>Z*ѵZÒy^Xтt[$O x~_ڻ[1DhQX_Peڐ$55\?$pXV$$ 04Bo+;u "몮Fy]HJîAW_%8L:(K t XCw9hTA@ CWEL{gF*'|aB"lfE m,a~v)icH1/ o؍ܝkH|r :COe d~jP@?m oT`ٙ)"=^a֐$>qwױwQ9qPȐ#B͘>*]bڡY5b6G9zPHOx=E9/[R8$%,V ";"4h.=U0zS{u-ia!fzej;+3w W`y?h_1~Q埬k#I(I94Ct#qaQy7p6J{) _BXХ鵙6dӁol%F[kxʹV6q,8ZY%&Lo0r6+Jp{Tػ^}?\Pu2lעrV#2 b up>+kNƑ +Enlh!O8#Wz[$gptetrpjN_̲m;Z wr#ؾ^yAOЏ‡el΢ZVRQ17ljMatƈMtO%C!,5Gz/8Ĕ],8ZY%&(o}O1PϹ=#?]K%QV'rl` K\'N<o8WkLa{=#\Xv"zOɁ}W<_ZSgcK?j7K>xlqm[? @އ%iC9Ӽ-|͟/ 3a=Va0'Zb9L+d8ICB[a1 ZV5PtLRko rP0u|7ԝgT$yyyy_$M75/;dW[Y |L" 3ڠrN#Č k:΃nŚiút16:I1H ĢƶvF%_B+q. $$}Ďx3~x-.HswsƝ`ٞKG\?(sCD5="o!2-+v Y7p 3./P}]X̥v>RHe*niK"os{bW9(C^Svb43=ٕA]4= iaӵRor? !vZ'VA W[a{Q+%t9ZBipjmm= ;ݕvaNR/*͢QB&X+N?(Б{ku[ pT;c8l/DM[6:"mULo=Z;v Ш/3kouP&ٿ)p v76> bT2_nٚ1!vic092 jP ftypjp2 jp2 Ojp2hihdrcolr"cdef2.jp2cOQ2R \@@HHPHHPHHPHHPHHPd%Created by OpenJPEG version 2.4.0 1߂PSd&Y R6@c;\{/$XU 1fL8A@&"> `. ߂PSd&Y n )%Q8x(qɂ0k.IM!:Slu`wH/H5ک RmteL.M߂PSd&Y n *V0VnR>H(qɄ_bZ5B/H?K&_RψP8yufUQj7$L-߃PSd)2p P0xJnA"+:IC_ju-i\˨)xwPVBxpwtâ s^vWI0q?Yӷ/˟~0J@ZHZЉz|ID$ ->rƋUy5l;`ZB [f& _xHiؽ_I–k_=˄"`i+š2%krfGh;WZ#j|YMREEt4O 4TuQӉSi4>PZD;)8m`2)~$L24ה2X=˄- n :jAh/ȫv(T)Ÿ*h -5d Z>j5^;6^uh#-Zü $WRw~`PVi,hfk@%Vm{ Ż=QqOdoY6.᪸zw~6y"Żs#c>}}쐴F:i%h͙/p߸Cd=#>E)C~nN!Hcc1n5'Dd|/\6_(Es%=i>R+Ow~AlxPX[܁T\Xii/Yϻs8icdT"xS+7*p;b7)Hޮzd9@LrVv~%yع|DE}J?OůD,^e?|Ӧ4CqP;\| NwzHܳZ~R@ziQC*uZA/2v (`tMOsa8 NRwBOa%n?o a}6Qs^2/$, 4fHޔ)IYW%Xй[e` K7pmqKfKπ>Gz4Pfgׯ_Hf/oeEџ-i%j䰬%ڭ?H}îY4ӄ@wmzoeL:H6A#R5;ʃ`zJ=ֆNMmޜ[^c=9b\Z QWIͬ7bKN>Vmlan/I2hVל! %]7q#J ֣bq4aȩn~ Z7@ʰ/a r0c334]ccQpRڝTbbRn\nM% Vڜ r`$SS-״+_^w|8hڹ ԮȤyqM![qcEOOx$̎ cI+V>U40xxM_81c-Bo^NFlHuU!7wziNq@}~%6PSbY{*t/V"!|4ى2pi] i׾LOmr|2SOkj^ȭaw C:=J H2ՐcGj1%;ƙ| &8j.;LEsG^P:] G9brOHI6)Ad۞ &Qÿ[q}v|<ٔ& 0ۙ= |]?CsT4(=T{ 5wEROkjkcS4j:M1s'g䭈3i^ֈ OV}>uy!eLMQL`QNzE]a=Q$X8 (!?~ȌR-eRnHg'"/hz^%sLetJo5{e R)hxHsMHmԵ fe]lBsL.kt#,5aP[w;ΖjtN+Dv؞ 8:s h_k''>/}@$?XO@.!@8 2  jQWw1Wgkx 4bZ |6! |DǬt;0‰U3=VOV}"sE\I@v6& 1J½[aK!&EeXqזB1QAqahвm+1ģyT$S3ln`w _)[ $+ x3:sqRaJw&;Iw=t^uGOYpg_`2 KZ<-1<. y:W>/Qv'*IqE$oK!@s@solyy>XP+A 9nL;ZlNIYLbp$v(--e%bL͇;38UpQBM{NCCm?M.SNӰT)*/݊|q aP_vО|:<0Q&㽎Oh*;ET$|S/?g37%ɹPzJP_QT1ynv岛#o&?D1O4Z)3GgdUmEز} OPM2M˦smVD"!D,E8v=Y>}>ߘ9}l=#n UrM/4~ӿ[1Fhv/JjN$?^rT$mSj/]޷T4B yP6qD7DwV|7Exl6| n1VVu5qQ| ~zT3g.80"*Hb+Aue"O0io 9}bo 6@hNhma{(;HKyP%F~2TBRO#vJ Q꧕Tꅿo92PBr;V>)&Rf]IzO2NI1%gRc*^fG1 Uɓ*vaQyy>OtxHnjf}_F Tpmj<ȉ([eiILMŒ,RԳyh$_ [kXDVSωvw?f' yQk먧Ӳ(bI7/V@™-MOSgt"(cO%߱\4Q |rmiI&RhKӎqZ uˎ+[a|vG]K2%1.en-n@~zXnnbS57o xUb 7rgoGA}S T@^- VR\udk؁R -f B ?I p+ε]S@b<H-ϩsD ]z̟.4~1%7h.vQ/s<'qa[u|9'9 V2 7ox~,MtN0"αiNٖh9WhkH͢}[@ ݀:BXϥئ^* *װ.PP{ؖϏQd+[Yc6uT/C߅'~>&LU ֙](0K5V tp++`AE͓I63zjR#^NMx=a+yf?]b@ ?Bs]8.:YiJ X1:Pk|(GM?(t8blYoވjQW6u2)w׍߹@@ZP찶L@ѬZ}'3";uZkxY?jYcmKe0!,D Mo@mc(`yIBoKRʺ篞2^_) ؇Zut@7We3iMd8ES~f_[aɄ9ܾ+B 8 E3)`{)8 ۍ/PiϝSGX_1khc~Җ7 !ѿPBOHAmnO"g> XB*xb{I 뀣@bǴa!-m9C=82gI-nooOܦqx)A5UͰ6S?C;[%&BPXJlOEwv])~'Ad09ta^YV4sYyzO3R bi3yO뚤b|'-kݠfzꅌa4X0_z޾6a3gCd]ڛ(6 CcRLGr 6= -.r&9d l*=)raOredhƙ(5Hs 5.S@`1.ٚtb5&kXt |ȱtO !X8%fG5q~B2q|01EF fM3#*rZ<D~kKq c0}z}x2N:ᒝnu7Y^3DPzih۽Q葞%#bChD-Y(אH1Sq@vA4Ɠi_{Ps(6l{P0˞z`xU T8-}~|M pܶЌ mm0zg}VB3c byY[롒*&}0u9E,/8ZMOR1xp;+Jձ!KsLBk P av4!kMU(au%%4r<:Ey?#O@#3tN^EPpQߊ9ҋSSxA}ELE}dFהixGg9b+-4<133gAT]Kt8 1= Ir$ wON*T7ibO;GZ(~Пg"fC~Kb?Q"HAhu X*;2?[^Oj- 뀚$gÛԋ\=TH sx :B_Om}`ۭS>՗BYML VGZAUi3bgGלw8?/(Ƿ"lKCu~>&_s3zh$U]q+ZNΚb" O.DA[uث;ڱ>BR?K tR &51,j%JBdq"%V ;)IA-fѯ6u|^\9*O. gӯxU=`%:YjYl U r`%}Y1aI:OruEq$e?8%5'Wۈe] dHQi/&ܘrSnQ)*+,u/!8hTҀq_<яL5: j&⪍7QeiN+2'R QגҖmSdFJ aISәaɢB@vd۫sZb̈^2Q z=,Gq˻^C>3i`ݹ`SDI{N8=EENYpQ+j֬G*T8D z# #^ܶ硙 * gҩQ;u)kÚqX)HviE=60!X\rcwb?՗YEѫ%𼒀zOZuywM|jYg[XbD`N/Cx?G詖!@P-xj&\C>#[ %:# S'8T 9~;CSݴ\if[}T3y.vY?3gKO,_fnjXuWcEkN Ov:f4\?-k^ $VC~q Ծ~DH*%P;^g! X*ΒxGXEϳz'TI-G&ɋAD7Ƨs'؝ -8@G gTLs/.1|B?jwp)H¥C+?ث;]t9]/)0-h }{b6tVI"tet[إqx.ԇIվYBjg[{z˶Fzg*i:\kfUtoAʆ7i<v /N}SC9%ZHsqmƃYDeS$l4Vc5 7$N[0o|[}w+GOruw̙n qm8?5'?7ۈd(- ˝b#wTӁVE , jö]$kp2s3uX<_n l n/T9`:0V 5Y7\8˜Ss ?~_?~TGcS+ya Zd8Fȃ F+хq,~3ֶ'(bd?6k{;;ٷT L@'It@5lqv&E&)VW7JX^qzPd?&TGD#DX&`xI1?j֬{sT6iGT Z ?2ܶ黜9 4-l{ߩ,'|{%OHU9, ag.6@iN$Po'qKa82֙ݿE[NBu`rՠ6BgՍAM4Z+yK1uI=ILB.y67YC!<0Jܦs+q7kWIyC*,ޯ QD0iSo]e3gKOtc!rYRdVF :sNOi~g~([6imSOqMZn?i5higLiL\|mvO$m둑@v-q\۾fJ?o}G N\K;"}ڿ50jD'1 C%9a?j._OZɣ߫HeyL% lKqx*~#J& Gu `ijvE*,3dyS%m}*< .;5Ѥ#-(bA/&RLѠ_ C-=PʖI[u|7|7|qH Looo }sooor ye歄V$`ooo/%qhsV|ZXv(-kY!]\+ZC̰i,;wS% ODȵ"47VnH`RVW};Z¶}2LZ?RdRAԩo&/Ly; |$ߒ0DW>瓵[= ]3?AOm&T[~kzG^֋*cB-sk4-e#-{?IW8-g202#9&)PU32^׹1FB*ϼq k)cy; N S9Sph,GGhcm u`w]blȊAlX\?̙D.88{l%dGhLug 1-ǿsJ7@kPwԐ YQYH1{Ȫ_)Ν{nɶ4~s0G`)A΅Niئ#Zc<+E"kv[|;zIru|ÛI熠%C+ o0'IU\Hl}=/v"DFn&AgXOUĚ^A mYx U!(/2fSIyg/cY=^^Do.@Ko~ZLO]g5`4 ᡆdrV9_ PS`Mmic10\ jP ftypjp2 jp2 Ojp2hihdrcolr"cdef\gjp2cOQ2R \@@HHPHHPHHPHHPHHPd%Created by OpenJPEG version 2.4.0 [߅PTXtUO.v b|x?3UHz]јG 3s!1I02*osj9waUM_ʊew\ 37 BiOD$8~&jd CgT;踄8K"[Q" ڋHK::u@7WQBF)Ipfީ'E7ő܃PdxN ԧCp2ɸqt C 2JXz@$9cBrpQ``c!?mxg0dVr0E8 F3LݤJLr3pyɓ0+*Sx5hfqA ߅PTXq'nY2\^u(E{S aw=P5۔pb(.kЫrMP7wxHO]Wb喭,,]5}'#aDIUZ4Ø PG1!+BCj5(D {H:/Ig59,XN Xa"@8b Kѐ?"g<"G0W p'{  BRve߆PTO0MNЬ]%?5 7AךAԷRDOfjI[2ͺL(YuOF3' S6`o^rՅpꋕDNBߔ `9#Y>B & h昙$8~9>?#VF:2ҕ #'~vUHUaȐ;"&.$oOᣐ$/EC &* l9HK\Y ߋSrg4^A0E,F9`F%dvcL!Hc>m0K%T@ʴW.E7;stNDHf@91G 51mL>AD $.O/Yϻs d9[6&qDz.~ Q-EҭQF$>:x,b!HG#u7q H(kE fuOr7A>ݢ5Mb<2mr MS8`ؼhkB+++O􇜢HC ]+srW-қ5"\ba̩n)NJHrG-ѿFAs axVW`$] `5y<{L8|F/ >\6 `S;r+MX) kw4i ^4~_2V먴w$#"Y}N;Z#k»:?j-*K)+2 4WpN.6,To89Lu=:D5yOi= Va| ]kWK}p&2 ^!Fr;+}3J吊wԀMq{LkBYq>1CBoM7=V؇٤~RhpG]Yvue 5頋B8ŷl+cQҍ,l[k3}= cSϕ|s.{gC>M&13**%9M-DNG&2pdW c1<;*T9=TaNV'+V>&/z.2?ex]חm׎{?#<;)3`ΙN6/bL̼i2S2Å[HW.m5'.t-ª~>aaK p7UVqTvV`W.H@ Fs Yz>`|w On<6lt[U8?13FaSY2\k,"g:4!Q+CfŚ3fZ][Kad=/c:%x*L˃v<97. ;'i1KA3E>;UBbpfJt> qkicEu:հ )=>B:sb INfcnuQkR2pM;oVVkfj\J!2K2F!WmC_-?!}Ͳr3jO(ݧ|:# % r 2%-:Opab"ARm:I0X%OjgD*ec)8D|G[? *JC`F`Ћ]=֘]mfGB*S >Ey&=w_w#>*>yIZض?59=Xf]BnE I-0a ne]ٔ+ OD[gZRD>Z3/K|0-EEt.C91q[Q ;) 2޶YC\S;]ƲFWSe ]${=tTl7is9Ee]^Y+o}A}_P[ `qi;aL@bbHA܀uü&7p4B 2jAU=W+V|XOyyyyt:42#1a'.d'Go+,|~H`OhcT딈+>@Y'Ge\kʚ0WX p(KWrNWA Q4%fn*^y gj?7`Y9fa^z|Nύg8GcatY:qNIYLbp#-']?Kbʚ6cN`uK#R= k PωKe4C%B=7e!۠YErӁAz]HͳaĸudeՋSի zcPѨѼFMD}1=|*!}L z.!sxGcF;:i4I uC^Hj?NIZCOj0_kRN8z}+'|vd Mhp_^7%F8"6Z?(DSsQF_ W(qҜ]l"(fQTT*oLjf}4̗'rTh>oշV'Nh{!9Bdܮ}ZH=]{ N~ jpSq#QFaD4\/&RhK҄@&|k$75 .GN%872R.qT/;q̣O v"QO>)(0V{Mwe_71V'  a)[NxeK!y!Ŏ1q6w0TQz3)~ * `|PϜ]0Χy_;&1J4\ZHtVڋ9}$g.US"vGTgo={g7 w@U_]=z,褃m+`. ƶ層 <^O2z N(扬Qx߶95MQdJB(nѲ JIdUn; hrW= E!\a?G@f \i;:b'}#& ! 6`BpOF߯NgQ0ct3w ;v=Kw \p`;GE~\Y8٢|"i1t!mR>jUǤem7Zx]ƗfqЁsasx{h5IV+W>%]qhYyEsSJè>G M.[^z^N\d ;`;]P%s]}BϺ4fIZ:?;N0=;?(v y]r7'؛XC[}8>t n[v: *ik3z++ ˰!$&b,Xݯ"ǽb6Bo4aL^٢>ͣa૙ga2C\d!րms(~w)IGsCW+fr+sv I-" W+m/,eÈ6eNg%w?q72{4,O $5\jћ?mm+\m|eiK5y)c~? ;_QKK|_1_B?i]4O4@Tei0HA5y{6YiZ X*th@%-K?+`w 9F ,$%%+d定s.P>Y~D%ڶ#7bz_7|7|߫%"Q4qG%m@/OdMp,n'<=~TE(~cܶ">M>Ш\]q/ԏ p8}˵/Eth{O\?1LwEk.qk^$%77*fhlF!D&v1㢝CYQ&- 6sث@U4@R(z&`Mc)'vep/{//xZ@{ebõietA'(XA9[zx $d"`^b ܲ z,mxS4@CZ{ Hh7^\&,ږuq]“TW * \A_m+T)X4 I$Ԫj^/74jWL~=%hC^UMP|c}*S0+A{FS+>Yg;zi2p<l(c,R`NHSw,@3+ ZmD2f&m0Ku^ maQ0!!br;q[&%1E&?ӞIz,Zi5rmQҫG&J*4Tg]E׸Gw9C/Nli΋eruً#3У-ˁb½G-3vc-L[qataX@5Dz @]؈Tڝ/Rxd?^u2S73;Ipfh8a֚rAe<} YɆ a5?m:v4l_-m8~WZFHAi5z|#T XB* : C+`7R;4HAu3$"~_7|7|߀W~s뀚2YT@*rE؇V %"պfI"o-5xTXE^ZA !2@b?$WApCoVP>U|v3sʪ'0 @e6K&!HKoKuPϤZq\좞YfG }x%ל׀0]ثU{5y5y3Ga_OװTxg<1Kds};TH5=5)zb \IB,7 jJLt٠ѨQU˱RhfJNxP}Y")J(C Tk?2b&;5H5hrdVw]eI?bIJ:nRa;I7WeҠ6\D Ŵ]w=%>odc䔂&9YuxՃ&P4lu#Z_Qf9k>C{g3AV6aS}vG-)t7~е7hi[BA/p5HAh.|)G XB*(籷OĠ+`7R;4HAu;^s ,ku|7|7z,_7|7|7s뀚$gO&LX? ۯool;qp,$%ϫ%"պ|HtxLsKr8M@,h= s?/K8-})A?H&f TiSs*Vfݧ%7b[yo7#xn46OB~dh,IqoB 3ٖrzgث2_؛C #bx`D?=qkTWaQэ$S5¹:9[؄IS#,Я',sd WqLV)l.{^aR^c7Oz;{/!_!/Ֆ6D,ŒsÓo/؎8]鵱˹p\[;`!&j3#Q8HwڎN ESHC\>(' c6Xqx3 XCEPG0ρOrfz[X\q,^˨$aE5(ɇ?ۊ6C :?7^ؓp)@H}Zc}Ae bb?$/=xAk;.ZPX%/z5dQG 67xܓ͚=GKJ:I#_- o!?|*oeRemjci]>TCI,n Y1wS)Ⓒj@O\ O REWnyA T8Y ;CW킐xǓ 5ݍ0yD>hYVh;-[Ϲv:vH ! zaJB("RW6mG2Z.4Pqb; eg>t49u)rA]cv\[^϶dyDH/ܝ#[:LIz <[Fxʓ*NhMJXڌD+ rH?UP4lu')?LH"S28+q"*\69B:#,mAX1%^?=?w_YaR:QOJA`yZ7siWu0Ź8нw)5ʟSXĨ>xImy&;޼OU\ g$ ,+耀h }Z+4_ _W yUF"d`~FC9 vH[I%m+-C7~M屷"3ƃtXOT":<*/{m|+6%rh 8fgEKYұp|H1j[)$;M!2 >=%bz*K?m F}>,63뇿[P$' yN2,п,߱a`_82l6 al6 tv̴@0kw/,*JlV.^w7!HIUkkYΖN "&:y@/ #):UWa&͑6^^RqzkQs@|k{NRb Uz4jQyyjgM8uG+_7E&Z PJ[ ՂpFUѰ(`v XBM[V44N Lin8] F(c8Vtw09Ak2Z^>,/lSuUrOuzՈs\f 8=*ÕUsZ>Fq> H t0aed~d[7&h,PsG9X Ԅ3~H (vr\GP߇‹۞7.PǯWtjQѠY}ǑΪL <7hgTi9yW蠓ճVy#cZX, @^r98z}9_6$jK%_toZs7&^U<5ёpF?8y}tE1-Xn6{}pŽKڑKiJ#bb aeH6 .k޼b4(ZG b~͌ٿ0&bßi9c&gOj_ ٠1wwdԝ 1v\&zzJPǚ$Ew*ɓ)FOGGܡo;(jzNY =|:SKu5΃,+DQ2}in2ʶw|&;S&hʯC-r@~QU{85(n; G;ʚ)G %BݓY|p$>2f&nzs%HeBQ^LCѭkݕe)R9)=8'Gͫb50kԃГNl;CN毆2 ygk;sWT~\`4?APFA@Wh@ i/ $/ vڷWPچ9cc!^<8IQI]?퍽,Z =%N[ ?yXH=a!atޜbX?ϷH=rxB0w+noo +ש/1%) BJN e^F"/i☀ $$?N9M4~_7|7|7(ral6 al5/0P rJS7 _UyԊ |UUл5o׉ig$7>\v)Ik-ܖxU!"`!Qja쿈nWo@X0v|7~%twt7IiOfko97vfN"G4Ћ^g Lup{3OVQ{UYG/J)=N$ ;kJJn~~ Ո(Uͼ<&bFWH4O Xsd35Mu-AZxd# 2[a.FNa{n|ʋӑ/_Hmԛ'N<b8s}v֖8u76 Tǘv) 9/NWpCd]soR̃叅S`ګ=P,0<fix+T1#](Kҩ/Pu?q3 ѱ5 ll*@e@C+Gbb)T$:_ަMȿ|E~I|EɮJ2P遲{9= {+.ő;\zPv&IQ7ڄM^QQahnRmM3ƚ+X,r*ve'ʖ!L-J甑!*Q5Hɹ,7TڰT_xs r2Ez9Eq1luI TPDVdϴx ,lP-Yw_UuZ'6^=XҙO'O /'?u)ŖW^GUg ףQT'Rү}U?F΄lݭڀWݦji !ϮPr-`!,drawD!U't1D޲-zY@33aAbl7Qߝ~}#OަW=}Oe== +!ZBS½tKY"IgP7` aTdF?ǯ0X1iW[ uߍlRz(~Mo(@p= Bm 5^xX&૒^(n Jfh4{wm?ۘC%5"R409IFUܪ5\WYe71:IE[ىJ :q@t1ENWe@gyQu\r2|RرHyQ*]k&{XK ? ŵJTWs;U6h%UUo~rUEޑG?А$wm#ؙŒgx>UU5d8_WsI)OX/Lc?2f(Yw_☀ $$?LXL߀a!//0h!SkÌ(ZaHR[s?Ge?BϚ,C Ug0"(2,g̿ 8k W*m&Wp\ 5,LvA~ \R㊂lj?OotOέ1P^zӁ57525AәW%f;\a+I-h=҂a LUC͹$^XpF@ս |t?2L WGXl'qkӅ)ܞQW" wE({xA|x]jʬC6~+KOUUB:bU(ZCk)h-0a5,ۿ ֻkiQS&=M&:dW E6Ԥ*]Ԃv񒆀f,3oZ_g?>8 qa&KA_rݗx8iuz?o_ȠyN9<:t͊]y 2FFjBL]quz'K7xyq llXPfxg 8b4D3?ަ8cKߞkĒ7|BPY&ZR*4MZ@}^.b,ٺa/jZm Y2OB9#}O6S+h/zK#RhN aZa?P?І?jUOXD6 9b?ќ0&\ <" %.KE(?x OrLKߜm(,=bAKҶ[bJ2xߒOY(,p'O_lE43@\ZuT% rM #q]';<%eobB:H^V%8ԠYW   9\; uW8ם a@ ܍L5"2g1vPe .dyjv>-P.y3uÃz; vY9숽(O]P!_Ϡr}.-z)yp`f=jpH~1y| 6߹{?>љ"7Ee.J 6t[gy -mwHރ\qp͢! pzjP5EoޚJr aXό::XVŕ$zL9DOc_+_S9~GyPHKw v{s+TA8ĕ )w)l~/Ԧ_}9F5(W kp퍽8= N4[ 7 1p|`fg ޜbSObV`HFd% V|7|7i/1u3BJN e`y&F "Zg7☀ $%>茰ŭ|7|7/0hNB?wxq .m0ω,ҋ1pCE y5fCd؃=)"J0} G+YHq7aj. hNN6D– |o i! V_DPLo*~tw(r^XXEG[S2[rXklC>>Jqh˻tb|1?<x+ʥ3:"}.AɼΥO%.9KzmsdS-=o0 ;6CwBf/m>!G0x37Sf0E7Z1 zU |^uP` AFK{ Gd#W>,Əb46ަ8c32oȿ|E~IQD|ʔ ToJ%;U: UBpk-Q=w܆0'A[d)C{xU[1еdC#'o]J.1ʗV6_O xdK2 O}!',' Q}+Ҳ;'弛ل rF c6`mPƎ-mxEp+2?QRSLoަ혎.O܄sOq&<Ӝ-+x@'tm{9Los pԧ|>GO`奥!õ 51kG~Liƅpp)5 zMKZ&Sdp~pu=̢M aфVxLEFqmEv2&O1:IE[قl;^{C>I13BCٲ $ %8Lxԟ4\z6JvGGܩ`H}7<'K<=k@vSW!aԗ!~u,xũ4v* K2f%ijY? ݺh~pDUn ?"{@]NVpͫ+UӱЖ*8=: !1y鄿S vQ_t~[ߩ 0a@o_?jP/a5 0Sڢ_`+UJe_^-IRr,B)>txtx*ra:vcYҔ Ape87[ ")/!)mɌ,\>`0U*{ aMrK*rxR2CSo>Y uM]~؛J`*s2?bwA1<"DggmE|) >9{Kl>LwE״Scwt){BVPydgJH[F?8KdEe1$"!Gz (ڗ^D#tDX> +K&j#:*PMZo.Lc؂'iQ*":'Eʫ@U5Q<{q`*$55X4*Hau~h>pΩL=0H՝%Qe; 'lyh]IUū30lMq3rZ!a΁Rt.qcZǣO' B_;Z5?@F97LHwP?*AbG`V.$f3v2,V. ly y.u ixQ^@xCkP9@}{&;qYreּ);m$A,>YPXNkG"H$2:\"$P6G/2UƳsA{zT8B/go `Q294/RkT ǻꓨw =Qdg Hna/k?_N- ily<å,]z~y`ρB>YfLG?$ITXWHӃtk- ,qL~^:yGZEA\l S |(9\,cf $ al6F?>S7LZ|7|7~pYrbڪ`.VuN!VtYB.#i4tp|OK18(pʽ}CHme-3"oN ƿry{R_>V>׳! eN hWoi^W n4 1tIi ~H9ȍ Ґ%%`Ⰸ?9!<iM:/&DS ͈8C@},S{?CBq1=j8W*%C/i(A8̵wG.za;$l.厹cK44qvޅsfO~{۶Û 898%bd*cTvsò?L/ _5h?ZkU2M;e1 GV?)G? AE?yFG\~6W,aKD]7ԿٸU֛zCb ^jEiiN2A)Tae?gnoTD;nrlVBg"??~ Ibz]tA(rR#Gb+T6_P UK-㴛80 +'_,[SeK- *FOr-RH e@%5kRG%4g-ڢ+) RDL_@ z,Y~g"Ϡ^Fwp@.i:ypqJ0|{^ U*Mhf!⻕$n:aJ} oæ&vB ̦9_ P؟"Wt<_ St:_֕_R/5 z5rCL$ }>#2c'(A]DǏyJzEMW%fq?Z@aG5\Z 2 <=&4^gOV`zR^Nۂٕ4~>熦\тڠ á>pJnXv[i@;b;?2e/wlCM{\0Xoܛ$娦功|iu#Tq9P\6߻e{{Q|a >Δx S{U+k)~( *F`?fz)Ș)Ș)Ș)Ș)Ș)Ș)Ș)Ș)Ș)Ș)Ș)Ș)Ș)Ș)Ș)Ș)Ș)Ș)Ș)Ș)Ș)Ș)Ș)Ș)Ș)Ș)Ș)Ș)Ș)Ș `ڱS5+ŵ.yLW֕|`,ArO>||\pxGgR|L--n)R'=5׶Kqے96 XÕn127I}ok抷hS' 8) f =)qތX2^T@(Ș)Ș)Ș)Ș)Ș)Ș)ȘS|cύ)Ajzu+厔ym{֐)2j~2-{2uz+tw-fqݢiSk:=@LlqֹܳE<-?Oʚt)Lo\8>s="\Z]]qƫ\zcOڲ7_d]k/M=Fwc]7V|;%Nrf#oYt|5jѵlXOqYuٔx948)NwkW:_P3Z :ƟRb[2HgYwyjwt7ۯzmdL@dL@dL@dL@dL@dL@dL@dL@dL@Fw޽nestW۠3</iѷ|'Z%# ?>QUϠc꯯A>PIEm][.1*巡xs#d#'}Tc%Jtbv |@ 4͔݃)PsB9Ex1̋Ov}FiѷR.tA;>'ެ bJoYMqh~˯xQ1&eG;)q|$ر Mv颔 8"j߁)w)ԔBy4>c{+|@%==+_вsUoy:ebuO ŋpŋq-$(Nv#q)zF$櫇<ض!;#GURWh$8glܶr/ x¤̓#{:p,NGh$(޿h-qODZc?շ%? @SR| Ѓ[{0_N9Z$-忡oǮѣ㘔RMIʄOfܗz?苼Hm)SC?^2HrIENDB`pyshortcuts-1.9.5/examples/icons/shovel.png000066400000000000000000000114671471654103100211070ustar00rootroot00000000000000PNG  IHDRx pHYs  IDATx}]e}'ټBbH@@"H BI!HD!AuP€V-L bQa8cgD봣cmNkSmmuPOl{sv|f3 {y{nmaɃm Уq)I3 h]nȺJ hP}-Z/+2{~O[R,qA5oX|{ڒbY NΔoC^ N\w& @osr%{ F/U`0 J L4UP^(YgK^w^%{ Fšyn*yP%;{206嗡@}uM็_p[R,qnx/Rƴu@&of< _^l7d<|mxP(e+@.̓ 5ל?LпN5S&wy )ixw0 CxskƧ\vsQ{udjv@*tOYJu}݊o.̯q`x"4~5#yu`9*'y %)j\'qg)gְ.:`_/BAʊ cE{6S:*\ܔ ÷ri7[W~*tzʋ&@7Ńg6-eQ߅[R兠K:_dX)~A"Wz<⵿L_x"aq/`gkR2~5_LYV}rNB{~q]R\hGx}lqqQ9Y36ctcx}USw51S0@ȐR C dH )!2@ȐR C dH )!2@ȐR C dH )!2@ȐR C dH )!2@ȐR C dH )!2@ȐR C dH )!2@ȐR C dH )!2@ȐR C dH )!2@ȐR C dH )!2@ȐR C dH )!2@ȐR C dH )!2@ȐR C dH )!2@ȐR C dH )!2@ȐR C dH )!2@ȐR C dH )!2@PS7ƿco?TI=K)+^w|hO(sU|Zth?Og`Ⱥ; L/_s%)x͔ڲemz0+Gaps+3;6ϼ}[YK^Ӷ-4}_dQܻwkYy²J}9t֓&>y: _ո}@.e?󖾪L o< @Lm+nfA\e4.!@ )!2@ȐR C dH )!2@ȐR C dH )!2@ȐR C dH )!2@Ȑġ)ܔr_Sv3O X"NٖruAد0LyKR~k2V#)ں`@ʏV)m@և  p ϥLojMHˡ7i8ʬiSw˅gh\n^]'1G{ M1zg8ym7vǀ]☎nqũ\ްn,cﮭ^ kU+O ^1s]]׭5U Qʲ!كd8^|j̓2@;㔦^ޛ8iy8S{67R4סa]v|Nޱ>v4\_r+}˲8n̘AW 6yMWD)U~4ת%rݼ7KO#]W^x5[7k..ZP׽J֤t&7)V{8. Cșח}oל0@wݾ߮'ɶ RFwe#%}]٥Ijxe@MtHsdyg)jx!@ C @ ) R2(dHPȐ!@ C @ ) R2(dHPȐ!@ C @ ) R2(dHPȐ!@ C @ ) R2(dHPȐ!@ C @ ) R2(de@M89Re`b}^ˀ=:>kks$S5x-Sꇶ\_ Yr3twNh(^nswnjX>Zak/.j=7]e(|2F7>Dky[1yR/Jִ14{}hxgm}Ǭ>5ewvt Ckj-]uپ3( )up'>syܻ:kWDZe]ATYy̎͵ء4;l=eBMz吔/0g[A;/_ZvڿwSs(o|- qc:mU*ylx隆P~5gzaM:s%qRN@JٖP2fMq)Nx3[ ߦQʸ:aF[.Z޼8qV)kP~J)oX[ kzqSaڔ #ޚScOmS_yA0)\ZǎɇnXSo>{%=J% +#p5 ѣF Ko.=kNc'p4%Sc~S[|Sױ`$XR(&y;7dzOxeO2}#I) %vԨQq鯍WtIۮG?TyᏅO?/>y^8)M9(. 4 ᩇL_s堜_dQO_N{u?K)Sܷ-}\Lj:R:jSŧ?uC7wFj'Hn -%0n̘x+'ԧs%qz:ٔYul,R)E8w:c[7t]oߺ}ZNʯRM]&e&<Zn9t8吉g*7轵aєUnwcߓ)'V?1|{k| I~Ž~FS)ܟrg=նv);vIENDB`pyshortcuts-1.9.5/examples/icons/stopwatch.icns000066400000000000000000001114251471654103100217660ustar00rootroot00000000000000icnsit32S;;>BGYu{kc]VPJEC@=9;AFLMD;676<:=BGYu{kc\VPJFC@<9;@FLMD:47-7&9=BGYu{kc\VPJFC@<:;@FLMD:3B/7/9=BGYu{kc\VPJFC@<:;@FLMD:3Q/7/9=BGYu{kc\VPJFC@<:;@FLMD:3O/7/9=BGYu{kc\VPJFC@<:;@FLMD:3O/7/9=BGYu{kc\VPJFC@<:;@FLMD:3O/7/9=BGYu{kc\VPJFC@<:;@FLMD:3O/7/9=BGYu{lc]WPJFC@=:;@FLMD:3O/107/9=BGZwyh^VOIC@><;9;AGMMD:3O/240/0:4:=@AJTM7'#3@FB:4F1JN@50$ #)*/1332/*)# ECKJ@50.0 %19@GKQUW[^``^\WTPKF@81$ 99=DKJ@5010$4?IS_ksx}}xsmfZPH?3# @A>;=DKJ@50 %7ERcqx}{wrleZNC6$  IKEA>;=DKJ@502CThu}~|zxvtrojdZNA1Y\SKEA>;=DKJ@50/0 9Lbr|~|zwusqomkid^TG8kpc[SKEA>;=DKJ>25 ;Qhw~~|zwusqomkigeb^VJ:pc[SKEA>;=D@3/09Qjx~~ !~|zwusqomkifdba`\UI7VKqpc[SKEA>;810031Lgx}}~~ #~|zwusqomkifdba`_]ZSF0?-" ",=Whpuuromkifdba`^]\[YXWUN<89=CQqpO300+&Kkyzz{{||}}~~5u[8!    3Rfmnkifdba`^]\[YXWVTPD$789=CQqb400*.UqyzC{{||}}~~x`6  1DcaC0 1Reigdba`^]\[YXWVTSQH, 689=CQW7/0)4]uyyz{{||}}~~sO)'I#ӸH&%D^eca`^]\[YXWVTSRPJ2 R8 9==200)8bvxyyz{{||}}~~tL'*\ބrtةZ)$@[a`^]\[YXWVTSRQPK58 9600*:dvxxyyz{{||}~xW-@ܳ_^!Ԑ>)G]_]\[YXWVTSRQPNJ68 59)9ewwxxyyz{{|i;##J``H""4R]\[YXWVTSRQPNKG4 6cvwwxxyyz {{}wS.$$C``A$$,EZ[YXWVTSRQPNKGD2  1\rvwwxxyyz {|pD+(4̓``ȅ{3(+;UZXWVTSRQPNKGCB- *Tjrvwwxxyyz {h>..Rqݳ__܄nP..8PXWVTSRQPNKGB??& "Kajrvwwxxyyz b<26yA__As539MWVTSRQPNKGB>;<AYbjrvwwxxyyzy_=7A^PӃOa@7;LVUSRQPNKGB>988 G6QZbjrvwwxxy`A9571, +HRZbjrvwwxxyydFATxDDRADNSRQPNKGB>9517% ?KRZbjrvwwxxyjLFXR\YTمVFIPRQPNKGB>951.65DJRZbjrvwwxxoRKX]ٙ^VKNQQPNKGB>951,./&=BJRZbjrvwwxtZPVVQRQPNKGB>951,(1" +7951,('1# +7:BJRZbjrvwwm\YYZTNKGB>951,(#*% +43:BJRZbjrvwtc^rބp^]QKGB>951,(#!/!$ +/2:BJRZbjrvwldg[Jgd[LGB>951,($%% $ 1+2:BJRZbjrvsigv+-;ǧggRFB>951,($,"" '))2:BJRZbjrunjuѬ.0.gukaHB>951,($"&y/%)2:BJRZbjrsnmBfI.04cBllQB>951,($)2&&"*2:BJRZbjrqo}LH{20.RyGM}ocD>951,($$)++ "*2:BJRZbjqrqtDRX.00QEvqoM>951,($#"'(")2:BJRZbjst~^A7//CA`~t^?951,($&("-&"*2:BJRZbkvuk.0.vupE951,($() I&"*2:BJRZboy|@//8{xQ951,($"1 !,$"*2:BJRZcv{/0._{g;51,($ ,!&("*2:BJRZe{}L.02}vB51,($ +&%#"*2:BJRZk30.LކKUł~L41,($ #$"*2:BJRZuݦ\.0/N0.,hЩݍ\51,($ {"*2:BJR\|̶9//?^3.0/-zq90,($ (2")2:BJR_o.0.mq:.00.7r}>0,($ <( "*2:BJRcC//6܈C./0.2ZF0,($ $ "*2:BJRj00/M~P0/0//JՏN/,($   "*2:BJRtQ.0/--4P`4.0/.>ߖV/,($  "*2:BJR{o-0 .69.00.6k圑a0,($   "*2:BJSA/0/0/1W術l2,($    "*2:BJTx.01G首v3,($  "*2:BJTˇY-0.JՋ멘|4,($  "*2:BJTFEKT.0.TJEG묛4,($  "*2:BJTÁR.0-d譝4,($  "*2:BJTR301殟}3,($   "*2:BJSy5.00/0.T䭢v2,($ %( "*2:BJSB.0.6=/00.hᬤl0,($  '$05 "*2:BJRY-1Q|E9920/9ݫa/,($  40AC "*2:BJQvƌпr/0.]׫W/,($ CBhc "*2:BJQkH./8˫N/,($ dh ")2:BJRdӹ3-E⬻D0,($ *,"*2:BJR_ʩܘvɯỰ<0,($ GX"*2:BJR[Ԙ̷Էx51,($ M j"*2:BJRYе^31,($ U?pv""*2:BJRYnŷL41,($ tq/"*2:BJRZfۘۿ?51,($ <T"*2:BJRZbރ܍߄Ҽm851,($a#"*2:BJRZawۂھۋݜ݂ۙǾR851,($o&1"*2:BJRZblńQBۉyARA951,($0S"*2:BJRZbi΀ʏVCW͋˗VCXˀýd<951,($bұ+!*2:BJRZbjwئ]CQيܟÉPD_ƤJ>951,($!{?!*2:BJRZbjq׀Mּً|MpA>951,($Aq()2:BJRZbjr|ʿڍڤӾ˪OB>951,($vᷓ <(2:BJRZbjruڎqEB>951,($4Yf,2:BJRZbjrvzՅՄمϠPFB>951,($l±@1:BJRZbjrvv׃ΐقݝ”كfJGB>951,($4j4:BJRZbjrvwwՂϋփ֥قІNKGB>951,(#"nJ9BJRZbjrvww}׀ϋׄژلצـ֧WNKGB>951,("= {>BJRZbjrvwـ΋ׄۘكצـٿeONKGB>951,()z\AJRZbjrvwwxwӏׄքUڗڷUքץvPPNKGB>951,'PĒMIRZbjrvwwxxyքٱL[ٗXMڄֿևRQPNKGB>951+7ʺ xKRZbjrvwwx{ۄhFيًFmلۓVRQPNKGB>950.sΩfQZbjrvwwxxyy}ۄDsقل̈́قmDكݚXSRQPNKGB>95/Sپ _Ybjrvwwxxy~݁پUPڂԯӁoqفӱԂٶOWفߚZTSRQPNKGB>94Cú^bjrvwwxxyyzy}xBׂNJӁYXف҃ق׈BݔZUTSRQPNKGB>9< ɴcjrvwwxxyyz |xmقڶفZZقڂk{׉ZWVTSRQPNKGB>;w־ jrvwwxxyyz {{΅ځZZفڴڄzYXWVTSRQPNKGB>hǽ qvwwxxyyz{ڄ҃فZZفƋӄkZYXWVTSRQPNKGAb» uwwxxyyz {{|{فNJӂZZق҂فԌa[[YXWVTSRQPNKF_ vwxxyyz{{|ڹقYYك!p]]\[YXWVTSRQPNJb ƻwxxyyz{{||} ΄~ӄ }b_^]\[YXWVTSRQPNg⼪xxyyz{{||}}~~}قӂ"淃haa`^]\[YXWVTSRQPoȻyxyz{{||}}~~~%إjedba`^]\[YXWVTSRSz|xz{{||}}~~#خxljhfdba`^]\[YXWVTRXyzz{{||}}~~#ӵ|ronmkifdba`^]\[YXWVTc{z{{||}}~~-{xvusqomkifdba`^]\[YXVXv z{||}}~~'~|zwusqomkifdba`^]\[YWc }{|}}~~ &~|zwusqomkifdba`^]\Z]| }|}~~ %~|zwusqomkifdba`^\^r ~}~ #~|zwusqomkifdba_`p~!~|zwusqomkifdbeu ~|zwusqomkhgm~|zwusqnnr%-~{ywvx} hnbPg;;>BGYu{kc]VPJEC@=9;AFLMD;676<:=BGYu{kc\VPJFC@<9;@FLMD:47-7&9=BGYu{kc\VPJFC@<:;@FLMD:3B/7/9=BGYu{kc\VPJFC@<:;@FLMD:3Q/7/9=BGYu{kc\VPJFC@<:;@FLMD:3O/7/9=BGYu{kc\VPJFC@<:;@FLMD:3O/7/9=BGYu{kc\VPJFC@<:;@FLMD:3O/7/9=BGYu{kc\VPJFC@<:;@FLMD:3O/7/9=BGYu{kc\VPJEB?<9;@FLMD:3O/107/9=AFXu{ld^YSNJFB>:;@FKLD:3O/240/04&8;=DKJ@50vwvw{́΃π½{wvwv IKEA>;=DKJ@50 vwvx}ˁ͂΃π}xvwvY\SKEA>;=DKJ@50/0wwvx̂͂΃πxuwvkpc[SKEA>;=DKJ>25wouw~Ȃ̂͂΃π~wuqxpc[SKEA>;=D@3/0tuv|˂̂͂΃π{vtuVKqpc[SKEA>;8100+wyɁ˂̂͂΃πxuvv?ιo-0 15.00.6kϽA/0/1Wx.01GŭˆY-0.JՊǭEDJT.0.TIDFɭÂR.0-dłɭR301ȭy5.0.TƬB.0/100/00.h¬Y-1QS22>:920/9ؾƌK0Tr/0.]غx28H./8طȔӹ>0i3-E⬺ֳǍʩ`0@ܘvɯҰۍۗ72̷ǮN0Lݽ™}26ڶԠB0^ұԏ߄܌f1<ߝ߅ïJȝھ~ۊݞ91uלۙ݃޹Ф܀ŃPAۈS0Fܛx@QۀѲΑ紞߀ʏVBW͊؃44˖VBWˀߑ̤ئ\BPىڹE0UٞÉOC^ٶ6׮Lًl19ڡֻ{LŲԓçʿڌڦ<1j٣Ӿ۸կڍY0AڦŴӽޅՄ53֝م׸ֳۃΐفٿJ0Nٜ“كĮف΋փ}16֥ٞفͷߗ طǀ΋׃ُ>hٗلץـڻʲ΋ׄлٗكץ ݾȀӏׄփTۗڶTքץǸ ӸȁքٱKZٗWLڄ־ι ɷȁ߄gEيًElلӺ ¹Ȃ߄Csقل̄قlCكջ ׿ȃپTOڂԮӁnpفӰԂٶNVـּ ҿȃwAׂNJӁXXف҃ق׈A~ԼȃwlقڶفYYقڂj{ϼȃɁ΄ٕځYYفڴڄɼȃɂڄ҂فYYفƊӄÀȃɂ فlj҂YYق҂فѿȃɂʀڹقXXك!ƾȂɂʁ ΄}ӄ Ђɂʃ ـ׀ €ҁɂʂɂʂ˃ɂʂ˂ "тʂ˂̅,̀ʂ˂͈̂΀ʂ˂̂͂΃πЂ˂̂͂΃πЀ˂̂͂΃πу̂͂΃π΀̂͂΃π ΂͂΃π ́΃π Єπ vڀ ۿֿ;;>BGYu{kc]VPJEC@=9;AFLMD;676<:=BGYu{kc\VPJFC@<9;@FLMD:47-7&9=BGYu{kc\VPJFC@<:;@FLMD:3B/7/9=BGYu{kc\VPJFC@<:;@FLMD:3Q/7/9=BGYu{kc\VPJFC@<:;@FLMD:3O/7/9=BGYu{kc\VPJFC@<:;@FLMD:3O/7/9=BGYu{kc\VPJFC@<:;@FLMD:3O/7/9=BGYu{kc\VPJFC@<:;@FLMD:3O/7/9=BGYuzkb\VOIEB?<9;@FLMD:3O/107/9=AFXt|nhd_ZUPLFA<;?DKLD:3O/240/007;=DKJ@50ǵ IKEA>;=DKJ@50ȀƲY\SKEA>;=DKJ@50/0ǯkpc[SKEA>;=DKJ>25Ȭpc[SKEA>;=D@3/0ƪVKqpc[SKEA>;8100&ȧ?ơ78 9=CQqb40/Cš68 9=CQW7//E  šR89==20/Cބqs¢8960/@ܳ^^ʸ80C__Ȧ__ҽƤÝ̓__ȅMâ pܳ__ۄ n¡ @^^ @͠ɽ]OӃN`ںɞEwqEwCCќ˱Q[XSمޣ˚\ٙ]ݶ  Θ潗і秕[Jԕv+-;ǧЫ.0.gϓ AeI.04 bA KGz20.R xFLֻsCQX.00PDvS֑]@7//C@_k.0.v@//8Տ/0._L.02 30.LކKU  𤐫\.0/[BN0.,h Ш ̶9//?T^3.0/-z ݍ o.0.m:q:.00.7r C//6w݈C./0.2Z00/M~&)ȣP0/0//JQ.0/--1(`a4.0/.>o-0 4.00.6kA/0/1Wߍx.01GݍʆY-0.JՊݍEDJT.0.TIDF܍ÂR.0-dł܍R301ލy5.0.TߍB.0/0-0/00.hY-1Q< <:920/9ƌ,r/0.]XH./8 ӹE3-E ⬺ ʩ;ܘv ɯ ߗg ̷$!`8܌C ߅݂ھ~ۊ݌ W՜݂ۙŃPAۈ*ݛx@QۀʏVBW͊iv˖VBWˀ ئ\BPىڰ-ڞ ÉOC^ LيK ڡ ֻ{Lʿڌږ H٣Ӿٍ2ڦՄuj֝م݃ΐفڷ$ڜ“كځ΋փa֥ٞف΋׃wEٗلץـ ΋ׄѹٗك ץӏׄփTۗڶTքץքٱKZٗWLڄ־gEيًElلCsقل̄قlCكـپTOڂԮӁnpفӰԂٶNVـ wAׂNJӁXXف҃ق ׈A~wlقڶفYYقڂj{ٕ̈́ځYYفڴڄڄ҂فYYفƊӄځlj҂YYق҂ف ڹقXXك΄}ӄـ׀t8mk@L={ QOF"gخb!=W߯T4'с% .,'$yrDA5Z! !"} & qbE> \O :4 H? D;/-pH?=9i 87pV|((66;:=<A?KEEB?=9833..""saM31{`41u;5o\y,()&pWL %!QHw"3.B<HBJDA;4/"zSN'$ WT  }1/64.|,SQ 'ZܦW&>hլh>)@YoøoYA)  pyshortcuts-1.9.5/examples/icons/stopwatch.ico000066400000000000000000002040761471654103100216110ustar00rootroot00000000000000 (( ٦աէܦ߯ܨݩޫުݩܩ߯߰ܥԚӗؠ߮ޭ߯fWWfެݦЩ٤[.yQ~ ~ U :^߰ܪ ܩ߲ߞެ۠τެBh仂㺦亹仹亦仃jDޫ!w՛ܪޮܩrޭڣ @x伱߮ݩۦڢٟ؞؝؝ٟ٠ڢۥܨޭ伲y@֙޲߰d彮߯ۥךӑЊ΅̓͂΂͂̓̓΄τυ΅͂̀~~͂Њԓ٠ެ徯dޫѴ߻۩ W彶ۤՕψ́~́̓΄΅φχχψψЉЉЊЉχ΅΃̀~zwspqyЉל߮忶Z١ްL"彋١Ҏ́}}̀͂̈́΄΄΄΅΅υφφχχψЈЉЉφ΅͂̀~|{xvtojgk}՗߰#۶,徦ݪԒ́z}̀͂͂͂͂̓΃΄΄΄΅υφφχχψЈЉЉφ΅͂̀~|zwvtrpnkd`f١.%忦ڣЉz{~̀́̀́́͂͂̓΃΄΄΄΅υφφχχψЈЉЉφ΅͂̀~|zwutqomkjhd][p֘'濋ڢΆx{̀̀́́͂͂̓΃΄΄΄΅υφφχχψЈЉЉφ΅͂̀~|zwutqomkifedb\WjՖŒݭTܨχw{~~~~̀̀́́͂͂̓΃΄΄΄΅υφφχχψЈЉЉφ΅͂̀~|zwutqomkifebaa`ZTk؞Vذݴߴ忭Ҏwy}}}~~̀̀́́͂͂̓΃΄΄΅΅φχχЈЉЊъъъЈΆ̓̀~|zwutqomkifeba`^^^WSvޭ®ߵM؞{w|}|}}~~̀̀́́͂͂̓΄υφφ΅΃͂̀̀̀́́͂͂́̀̀̀~|xvtqomkifeba`^]\\[RXҏM*Њuz|{||}}~~̀̀́́̓΄̓̀}{~΅ҍיڡݩ߮߰ݪڡ֘ы̀xsrtvvsomkifeba`^]\[YZVMn߮ňz忸ܧ{u{{{{||}}~~̀́̓́}yӐܧ٠φrjkoolifeba`^]\[YXXXNWכ¹%֙tx{zz{{||}}~~~̀͂}y֙эmcgkheba`^]\[YXWVVRK΅&5Ҏryzyzz{{||}}~~̀́{xэޭ{`afda`^]\[YXWVTTSGt5@φryyyzzz{{||}}~̀zxԔ́\]ca^]\[YXWVUSRSFf@>̂ryxyyyzz{{||}|vӐwwxwwxzW^a]\[YXWVUSRQRG]߯>7sxxxyyyzz{{|}~v̓KKLKKLgU_][ZXWVUSRQPQDW߯7$~rxwxxyyyzz{{}zv١RRSRRSэUZ]YXWVUSRQPNN?U$|mxwwxxyyyzz{}ẁQQRQQRaT\XWVUSRQPOKI9Zъ彰~ctvwwxxyyzzz}tҐQQRQQRuP[WVUSRQPOLGE3b忱pxŃχYlrvwwxxyyyz{sؠnno]]]RRSRRS]]]nnoϊNYVTSRQPOLGBA-t˃IԕScjrvwwxxyyz{tݬxxy**+zzzMMNMMNzzz**+xxx֚NWUSRQPOLGB>;,ωIܧVXcjrvwwxxxyztKKL@@Addedde@@AKKL١NUTRQPOLGC>:36ڢӑל亠dK\bjrvwwxxyzs001kklkkl001٢LUSQPOLGB>98(N仟ךЉP@TZbjrvwwxxzrݫhhi112112gghՙJTQPOLGB>953 rPݻ לCIRZbjrvwwxzrؠ==>KKLLLM==>ωISPOLGB>961++֘ ۶ٚܧ|]9LRZbjrvwwyrҐ779778sIRNLGB>961/M|ۥؘ̓3DJRZbjrvwxù}}~}}}\LPLGB>961,*{э֘౎H4CJRZbjrvwwt}}~$:_}}}߲KOLGB>961,*9్՘ϊ s)961,(&m ΆҎݫ=-;BJRZbjrwẗ́B,AaGHB>961,($1ݪь́p!4:BJRZbjrws+*_y۩FHC>961,(#"jՙڧ߲h="3:BJRZbjsqґ2V+3r?D>961,($!4hܧ֗x*2:BJRZbjru0+=_޲FC>961,($ uޮ4H+2:BJRZbkmӓ{{{334{{|Ro*,{{|334{{{t:@961,($  B3ޮabЎ&*2:BJRZbjqVVW../AAB;,!HAAB../UUVܬA>:61,($ Ѝ`^_$)2:BJRZcfψNNO,,.JJKv**mKKL,,.MMNg7;61,($  [ڥ.9$)2:BJRZcfڧEEF%%&qqr(N, 8qqr%%&EEFԘ8;61,($  4-ڥުjjˆp!")2:BJR[`t-*KjN661,($ ˆojiۦkoY")2:BJR[\ЌGg*.t181,($  Wsp߱ < ")2:BJRZ`٥ 6+-R߼Ԛ561,($ 9 ߲Ώک߲0'")2:BJSXk޵ߴl)*޳G22,($ $ߴ/ګΏVWoZ")2:BJSU~ޱG,>ްd.2,($  pYXW޿Q")2:BJSUѐ߶ݳ+)\xݲʀ-3,($  P߲`e9 ")2:BJRY֠ݰ޺;^*1eeeݹ޲Ә41-($ 7fa՟]& ")2:BJP`ک۪1+9]$$$000۫٧?.-($ %|7֟ˊ  ")2:BKNkۭ٦d~&+:::...666'''٦ۮN,.($  ̌Wuƃ ")2:BKMtۭإyyzK)Hsss%%%555'''TTTؤܯ\*.($ LjyWFKW)ߋ ")2:BKM}ګئMMM !$PM?I^.0u238,,+*++,,,111111)))إۭj).($  X)LF25<0ߊ ")2:BKM̃٨ا///222666***,+(11240#//-111111111222%%%mmmئڪt).($  =062ߏݎސ8ވ ")2:BKN͈פت!!!***22211100//03011000000000111+++LLLةئ{+.($  ߑ7ޏ݋ۊݍ@ވ ")2:BKOΊ֠٫KKK---111001000000000000000000333٫֢+.($  ݍ?܋ތۆلۇ Eއ ")2:BKOΊԝثOOO)))222000000000000000000222''']]]ث՟ʁ,-($  ߇ۇ Eڄ܆ۄكڄKއ ")2:BKO͊Ӛը##$002../../../001&&(QQQ)))222000000000000000000222)))QQQ&&(001../../../002##$էԜɁ,-($  ߇ڄJكۅ܆څۆBއ ")2:BKȮҘ֦UUU(((222000000000000000000111,,,BBB֦Ӛ},-($  ߇ۆAڅ܇݈ ۇ ܇ >އ ")2:BKO˃і֤!!!333000000000000000000000111,,,666֣Ҙx,.($  ܈ =ۈ ݉ ߋ:ވ ")2:BKO~Дӝ333///111000000000000002/01000334..."""GGGӜїp+.($  :ߌߍ5ވ ")2:BKNxГЕ###33311133333333320)42*0/.%%%433555***$$$^^^Еіh*.($  5ߍ ")2:BKNqϒΎJJJ+++222,,,!!!"""$$$+/@ ,f|nj[ !$***555333&&&+++yyy͍Д\+.($  $8> ")2:BKOiΐˇ 555***III#I(LFFG"""...666111###888ˆϒP,.($  @:# ")2:BJPb͌ɂ222///333%%%*&h555###222666..."""KKKɂ͌E--($ Ж)܀ۀ ")2:BJQ]ʆȁ۰mmm$$$666%%%eee:^*3ttt)))'''444555)))%%%ddd۰ɂɂ:0-($ ߁)܋")2:BJRY}Ȃј'''222000.../+EhZZZ###+++555666mmmїɄs31-($  ۊ҃!!"b")2:BJRXsɄʅSSS(((555"""c6[DDD"""///!!!]]]Ʉʇa02,($  "a! zގ(//6")2:BJRXjɃx"""444,,,>>>>>>EEExɅN22,($  051(ލ(MT ")2:BJRYd~wب>>>,,,444"""اw{>41,($  ] U(Ԃ$")2:BJRZavzɄ"""666(((TTTɃ}i661,($ "Ԃh-.+w")2:BJRZao|q///000222'''pS661,($ *v-+dԂ *414 #)2:BJRZbkxpҙggg%%%666$$$oooҘqtB861,($ 437*օՄ &}*(")2:BJRZbjsusRRRyyy%%%333///222yyyQQRrx`;:61,($ %ٝx<}5Ձ ٔ9:, !*2:BJRZbjqtiئllm**,>>?MMM)))555!!!??@++,kklإiuL<:61,($ *86ڒ'(1+A) *2:BJRZbjsror667//0zz{"""555+++DDD|||//0667qqdA?961,($ #-@3''ևՇL @-$)2:BJRZbjstodӟ__`999---444###__`ӞdqPA?961,($ +2؉׈tt6<+{,'2:BJRZbjrwnkg###777'''\\\fmbEC>961,($ #,{>6ttۋ܍΂́#0*2:BJRZbjrwtjåvvv///%%%̉akQFC>961,($ ,΃#΅܎ڋҁg QV+10:BJRZbjrvxleZPPP555Zh[JGB>961,($&+XNh Ӂֆ܎Ոу:43:BJRZbjrvwvb^bb_^OKGC>961,($ 0х:Պݎ׆ҁ p~)99BJRZbjrvvyn[SzzS]SNLGC>961,)!,*ymԂ ρߓ؉π } >6961-(&2~=΁؉ߒrс c_t"?AJRZbjrvwwxxXQGۮۮFSQQPOLGB>961-&3%}^bсyۍ ik,2FIRZbjrvwwwzsOKE99;99;ELMQQPOLGB>961+01k,j ܍zd))׉?LRZbjrvwwxw{nHEE??@JJKJJK??@DFHQSQPOLGB>961,8׉0)B~Ѐse 4$LRZbjrvwwxxx}hB@@uuv,,-,,-uuv@@COURQPOLGB>96.:&؋.fr|}yӄvtM2UYbjrvwwxxyx~e=;6ܯ--.qqrqqr--.ܯ5<>MVSRQPOLGC>:392tMwӄ z~~')҃@\bjrvwwxxyyxd87.ϓQQR==>==>QQRГ-89MXTSRQPOLGB>98;ӄ2(~{܎o*3 ܎Mdjrvwwxxyyyyh63'i%%&LLMLLM%%&j&45NYUTSRQPOLGC>9B܏҄* mݑ{zxy`e4!Xkrvwwxxyyzzỳo9-%>tsr^^^WWXWWX^^^usr?$/5R[WVUSRQPOLGC=E$d4`xxz@@@888888JA2(0>zusa)`tvwwxxyyyzzzxD'%!tUUVUUVu!%):Y[XWVUSRQPOLGAH,ravЁ ~{u555888888888888)2?<;;sՈ/gxvwxxyyyzz{z}̀X("0ԛUUVUUV՜0$(F^\YXWVUSRQPOLEJ2w܍ ݏ{z999888888888777999888 889Q+%'2wa4iyvxxyyyzz{{{{΃p::ՠVVVVVV֢;2Va\ZZXWVUSRQPOJL5{a.e9x555888888888888777888888999ȱ320~002-..i5hywxyyyzz{{||{̀́]*2ʇRRSRRSˈ3&Iba\\[YXWVUSRQPNO7|}&oxy777888888888888777888888888===>>>---10..020/-l3dyxxyyzz{{||}|}΄|R$ Tӝa_^a_^ԠU !B`e_^]\[YXWVUTRQOQ5}ĠL ;rzz888888888;;;888888888888===AAAQQQ\\\1110/..0330-j._xzxzzz{{||}}~|І{U( Iʁۯܲ˂J $Fcjc``^]\[YXWVUSRPP1{©Wa syyy888888999 888888888===BBBNNNqqqiii---21/./200.e &Xt{yzz{{||}}~~~}̀Ї́e; )D^uʆΐ֛֛ΐʆu^C) 4Ulngcba`^]\[YXWVTTQO)xT tzzt888555888888888===BBBNNNrrrtttRRR///21/.02-.0[Mm|zz{{||}}~~~~̀Їщ|_?"8Ulurkgfeba`^]\[YXWVTRKt8tyyw888888888888888===BBBNNNrrrnnnaaa^^^HHH///11/001(-3xPߍ@cy}z{||}}~~̀̀̀΃Љы΄u^H3$  $1EXkx}zsnlkifeba`^]\[YXXTRA׉p~ӆvyyy777<<<:::999===AAANNNrrrnnnccc[[[RRRMMM>>>//0100110&,5]Dy -Up}|{|}}~~̀̀́́́̀́̓ЇҋҎҍЉ΃~wsqquy~́φЇЇ΃}wtrqomkifeba`^]\ZZXTO0~mRixwxxr:::@@@XXXEEEBBBOOOrrrnnnccc[[[SSSKKKDDDBBB999///00031/(-4I:&zݏCaw||}~~~̀̀́́͂͂̓̓΃͂͂̓΅ЇЈыьҍҍҍҌЉῦ~|zywutqomkifeba`^]\\WSDߑvǼk%cvwxyz888888HHHuuurrrnnnccc[[[SSSKKKEEEAAA===;;;888///0//31/'.5 p ,Ohz̀}}~̀̀́́͂͂̓΃΄΄΄΅΅φυφΆχχЈЈφ΄͂̀~|zwutqomkifeba__^[UL.π pnwvxy333===>>>bbb333---ooobbb[[[SSSKKKEEEAAA>>>:::<<>>:::<<>>:::<<>>:::<<>>:::<<CI16>(.6-06rQwxv‰wxDDDLLLKKKKKKIIILLL(((000000000000000vwG>1<;:26=<:8?=17@8=E?DJIKOMMNFED<;9541+/6764:5,vxDDD444444555111///000000000000777:::999999<<=<;:8=;9BA?GFEMLLNNMDDD:::222333555///$$$111222111111,,,---000777:::999999<<>>BBBEEEWWWuuu{{{kkkccc]]]VVVQQQJJJEEECCC@@@===999:::AAAFFFLLLNNNCCC;;;mmm777 @h"D oȀE @/KP ?@_W+P @@?_OG''    @@@@@@@@@@@    ''GO_?@  P $#K_%K@O @ "EhH O|!? @E@@?@@@@@@@@Kpyshortcuts-1.9.5/examples/make_pip_updater.py000066400000000000000000000012401471654103100216350ustar00rootroot00000000000000#!/usr/bin/env python """ This example shows how to make a shortcut that runs a single python command Here, the comand to run is python -m pip install --upgrade pyshortcuts to update to the latest version of this library. Note that putting '_' or '{}' as the beginning of the command will tell the script to use the current Python executable. """ from pathlib import Path from pyshortcuts import make_shortcut, uname, get_cwd pycmd = "_ -m pip install --upgrade pyshortcuts" iconfile = 'shovel.icns' if uname=='darwin' else 'shovel.ico' icon = Path(get_cwd(), 'icons', iconfile).absolute().as_posix() make_shortcut(pycmd, name='Update Pyshortcuts', icon=icon) pyshortcuts-1.9.5/pyproject.toml000066400000000000000000000036201471654103100170540ustar00rootroot00000000000000[build-system] requires = ["setuptools>=45", "setuptools_scm>=6.2"] build-backend = "setuptools.build_meta" [tool.setuptools_scm] write_to = "pyshortcuts/version.py" version_scheme = "post-release" [tool.setuptools.packages.find] include = ["pyshortcuts"] [tool.coverage.run] omit = ["tests/*"] [tool.pytest.ini_options] addopts = "--cov=pyshortcuts --cov-report html" [project] name = "pyshortcuts" dynamic = ["version"] dependencies = [ "charset-normalizer", "pywin32; platform_system=='Windows'", ] requires-python = ">= 3.9" authors = [ {name = "Matthew Newville", email = "matt.newville@gmail.com"}, ] description = "Create desktop and Start Menu shortcuts for python scripts" readme = "README.md" license = {file = "LICENSE"} keywords = ["desktop shortcuts", "python utilities"] classifiers = [ "Development Status :: 5 - Production/Stable", "Intended Audience :: End Users/Desktop", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", ] [project.urls] Homepage = "https://github.com/newville/pyshortcuts/" Documentation = "https://github.com/newville/pyshortcuts/README.md" Changelog = "https://github.com/newville/pyshortcuts/issues" [project.scripts] pyshortcut = "pyshortcuts:shortcut_cli" [project.optional-dependencies] gui = ["wxPython"] doc = ["Sphinx" ] dev = ["build", "twine"] test = ["coverage", "pytest", "pytest-cov"] all = ["pyshortcuts[dev,gui,doc,test]"] pyshortcuts-1.9.5/pyshortcuts/000077500000000000000000000000001471654103100165465ustar00rootroot00000000000000pyshortcuts-1.9.5/pyshortcuts/__init__.py000066400000000000000000000114111471654103100206550ustar00rootroot00000000000000#!/usr/bin/env python """ pyshortcuts """ import os import sys from pathlib import Path from argparse import ArgumentParser, RawDescriptionHelpFormatter from .version import version as __version__ from .utils import (fix_filename, new_filename, fix_varname, isotime, get_pyexe, bytes2str, str2bytes, get_homedir, get_cwd, uname, scut_ext, ico_ext) from .gformat import gformat from .debugtimer import debugtimer make_shortcut = get_folders = None if uname.startswith('lin'): from .linux import make_shortcut, get_folders elif uname.startswith('darwin'): from .darwin import make_shortcut, get_folders elif uname.startswith('win'): from .windows import make_shortcut, get_folders # back compat platform = uname from .shortcut import shortcut, Shortcut try: import wx from .wxgui import ShortcutFrame except ImportError: ShortCutFrame = None def get_desktop(): "for back compatibility" return get_folders().desktop def shortcut_cli(): ''' command-line interface to creating desktop shortcuts ''' desc = 'create desktop and start menu shortcuts' parser = ArgumentParser(description=desc, formatter_class=RawDescriptionHelpFormatter) parser.add_argument('-v', '--version', dest='version', action='store_true', default=False, help='show version') parser.add_argument('-n', '--name', dest='name', default=None, help='name for shortcut link') parser.add_argument('-i', '--icon', dest='icon', default=None, help='name of icon file') parser.add_argument('-f', '--folder', dest='folder', default=None, help='subfolder on desktop to put shortcut') parser.add_argument('-e', '--executable', dest='exe', default=None, help='name of executable to use (python)') parser.add_argument('-x', '--no-executable', dest='noexe', action='store_true', default=False, help='use no implied executable [False]') parser.add_argument('-t', '--terminal', dest='terminal', action='store_true', default=True, help='run script in a Terminal [True]') parser.add_argument('-g', '--gui', dest='gui', action='store_true', default=False, help='run script as GUI, with no Terminal [False]') parser.add_argument('-d', '--desktop', dest='desktop', action='store_true', default=True, help='create desktop shortcut [True]') parser.add_argument('-s', '--startmenu', dest='startmenu', action='store_true', default=True, help='create Start Menu shortcut [True]') parser.add_argument('-w', '--wxgui', dest='wxgui', action='store_true', default=False, help='run GUI version of pyshortcut [False]') parser.add_argument('-b', '--bootstrap', dest='bootstrap', action='store_true', default=False, help='make desktop shortcut to wxGUI') parser.add_argument('scriptname', nargs='?', help='script name, including arguments') args = parser.parse_args() if args.version: print(f"pyshortcut {__version__}") if (args.wxgui or args.bootstrap) and ShortcutFrame is None: print("wxpython is required to run GUI") sys.exit() if args.bootstrap: bindir = 'bin' if uname.startswith('win'): bindir = 'Scripts' fpath = Path(__file__) icon = Path(fpath.parent, 'icons', f'ladder.{ico_ext[0]}' ).resolve().as_posix() script = Path(sys.prefix, bindir, 'pyshortcut').resolve().as_posix() make_shortcut(f"{script} --wxgui", name='PyShortcut', terminal=False, icon=icon) elif args.wxgui: app = wx.App() ShortcutFrame().Show(True) app.MainLoop() else: if args.gui: args.terminal = False if args.scriptname is None: print("pyshortcut: must provide one script. try 'pyshortcut -h'") else: p_icon = Path(args.icon).resolve() if p_icon.exists(): icon = p_icon.resolve().as_posix() else: parent = p_icon.parent stem = p_icon.stem for ext in ico_ext: x = Path(parent, f"{stem}.{ext}").absolute() if x.exists(): icon = x.resolve().as_posix() make_shortcut(args.scriptname, name=args.name, terminal=args.terminal, folder=args.folder, icon=icon, desktop=args.desktop, startmenu=args.startmenu, executable=args.exe, noexe=args.noexe) pyshortcuts-1.9.5/pyshortcuts/darwin.py000066400000000000000000000116721471654103100204130ustar00rootroot00000000000000#!/usr/bin/env python """ Create desktop shortcuts for Darwin / MacOS """ import os import sys import shutil from pathlib import Path from collections import namedtuple from .utils import get_pyexe, get_homedir def get_startmenu(): "get start menu location" return '' def get_desktop(): "get desktop location" return Path(get_homedir(), 'Desktop').resolve().as_posix() def get_folders(): """get user-specific folders Returns: ------- Named tuple with fields 'home', 'desktop', 'startmenu' Example: ------- >>> from pyshortcuts import get_folders >>> folders = get_folders() >>> print("Home, Desktop, StartMenu ", ... folders.home, folders.desktop, folders.startmenu) """ UserFolders = namedtuple("UserFolders", ("home", "desktop", "startmenu")) return UserFolders(get_homedir(), get_desktop(), get_startmenu()) def make_shortcut(script, name=None, description=None, icon=None, working_dir=None, folder=None, terminal=True, desktop=True, startmenu=False, executable=None, noexe=False): """create shortcut Arguments: --------- script (str) path to script, may include command-line arguments name (str, None) name to display for shortcut [name of script] description (str, None) longer description of script [`name`] icon (str, None) path to icon file [python icon] working_dir (str, None) directory where to run the script in folder (str, None) subfolder of Desktop for shortcut [None] (See Note 1) terminal (bool) whether to run in a Terminal [True] desktop (bool) whether to add shortcut to Desktop [True] startmenu (bool) whether to add shortcut to Start Menu [False] (See Note 2) executable (str, None) name of executable to use [this Python] (see Note 3) noexe (bool) whether to use no executable (script is entire command) [False] Notes: ------ 1. `folder` will place shortcut in a subfolder of Desktop and/or Start Menu 2. Start Menu does not exist for Darwin / MacOSX 3. executable defaults to the Python executable used to make shortcut. """ if not desktop: return None userfolders = get_folders() if working_dir is None: working_dir = '' from .shortcut import shortcut scut = shortcut(script, userfolders, name=name, description=description, working_dir=working_dir, folder=folder, icon=icon) if noexe: full_script =scut.script executable = '' else: full_script =scut.full_script if executable is None: executable = get_pyexe() executable = Path(executable).resolve().as_posix() if Path(scut.full_script).resolve() == Path(executable).resolve(): executable = '' if not Path(scut.desktop_dir).exists(): os.makedirs(scut.desktop_dir) osascript = f'{full_script} {scut.arguments}' osascript = osascript.replace(' ', '\\ ') dest = Path(scut.desktop_dir, scut.target).resolve().as_posix() if Path(dest).exists(): shutil.rmtree(dest) os.mkdir(dest) os.mkdir(Path(dest, 'Contents')) os.mkdir(Path(dest, 'Contents', 'MacOS')) os.mkdir(Path(dest, 'Contents', 'Resources')) opts = {'name': scut.name, 'desc': scut.description, 'script': full_script, 'workdir': scut.working_dir, 'args': scut.arguments, 'prefix': Path(sys.prefix).resolve().as_posix(), 'exe': executable, 'osascript': osascript} info = """ CFBundleGetInfoString {desc:s} CFBundleName {name:s} CFBundleExecutable {name:s} CFBundleIconFile {name:s} CFBundlePackageType APPL """ text = ['#!/bin/bash', "export EXE={exe:s}", "export SCRIPT={script:s}", "export ARGS='{args:s}'"] if scut.working_dir not in (None, ''): text.append("cd {workdir:s}") if terminal: text.append(r"""osascript -e 'tell application "Terminal" do script "'${{EXE}}\ {osascript:s}'" end tell ' """) else: text.append("$EXE $SCRIPT $ARGS") text.append('\n') text = '\n'.join(text) with open(Path(dest, 'Contents', 'Info.plist'), 'w') as fout: fout.write(info.format(**opts)) ascript_name = Path(dest, 'Contents', 'MacOS', scut.name).as_posix() with open(ascript_name, 'w') as fout: fout.write(text.format(**opts)) os.chmod(ascript_name, 493) # = octal 755 / rwxr-xr-x icon_dest = Path(dest, 'Contents', 'Resources', scut.name + '.icns').as_posix() shutil.copy(scut.icon, icon_dest) return scut pyshortcuts-1.9.5/pyshortcuts/debugtimer.py000066400000000000000000000070051471654103100212510ustar00rootroot00000000000000#!/usr/bin/env python """ debug timer: measure run times of code, display results """ import time from datetime import datetime def isotime(dtime=None, sep=' '): "return datetime isoformat" if dtime is None: dtime = datetime.now() return datetime.isoformat(dtime, sep=sep) class DebugTimer(): ''' Measure run times for lines of code and summarize results ''' def __init__(self, title=None, verbose=False, precision=4): self.verbose = verbose if title is None: title = "DebugTimer" self.title = title self.precision = precision self.clear(title=title) def clear(self, title=None): """clear debugtimer""" self.data = [] if title is None: title = self.title self.add('start') tparts = isotime().split('.') self.start_time = tparts[0] + '.' + tparts[1][:self.precision] def add(self, msg): "add message point to debugtimer" self.data.append((msg, time.perf_counter())) if self.verbose: print(msg) def get_report(self, precision=None): "get report text" if precision is None: precision = self.precision cols = [("Message", "Delta Time (s)", "Total Time (s)")] w0, w1, w2 = max(len(self.title), 32), 17, 17 tlast = tstart = self.data[0][1] for msg, t in self.data: tt = f"{t-tstart:.{precision}f}" dt = f"{t-tlast:.{precision}f}" tlast = t cols.append((msg, dt, tt)) w0 = max(len(msg)+1, w0) w1 = max(len(dt)+1, w1) w2 = max(len(tt)+1, w2) tline = f"+-{'-'*w0}+{'-'*w1}-+{'-'*w2}-+" out = [f"# {self.title:{w0}s} {self.start_time:>{w1+w2}s}", tline] for i, col in enumerate(cols): out.append(f"| {col[0]:{w0}s}|{col[1]:>{w1}s} |{col[2]:>{w2}s} |") if i == 0: out.append(tline.replace('-', '=')) out.append(tline) out.append('') return "\n".join(out) def show(self, precision=None, clear=True): "print report text" print(self.get_report(precision=precision)) if clear: self.clear(title=self.title) def debugtimer(title=None, precision=4, verbose=False): '''return a DebugTimer object to measure the run time of portions of code, and write a simple report. Arguments ------------ title: str, optional initial message ['DebugTimer'] precision: int, precision for timing results [4] verbose: bool, whether to print() each message when entered [False] Returns -------- DebugTimer object, with methods: clear(title=None) : reset Timer add(message) : record an event, saving message and time get_report() : return text of report show() : print out text of report and optionally clear Example: ------- timer = debugtimer('timer testing', precision=4) result = foo(x=100) timer.add('ran function foo') bar(result) timer.add('ran bar') timer.show() ''' return DebugTimer(title=title, precision=precision, verbose=verbose) if __name__ == '__main__': import numpy as np dtimer = debugtimer('test timer') time.sleep(1.1010) dtimer.add('slept for 1.101 seconds') nx = 10_000_000 x = np.arange(nx, dtype='float64')/3.0 dtimer.add(f'created numpy array len={nx}') s = np.sqrt(x) dtimer.add('took sqrt') dtimer.show(precision=4) pyshortcuts-1.9.5/pyshortcuts/gformat.py000066400000000000000000000046331471654103100205650ustar00rootroot00000000000000"""fixed length formatting of floats""" from math import log10 def getfloat_attr(obj, attr, length=11): """Format an attribute of an object for printing.""" val = getattr(obj, attr, None) if val is None: return 'unknown' if isinstance(val, int): return f'{val}' if isinstance(val, float): return gformat(val, length=length).strip() return repr(val) def gformat(val, length=11): """Format a number with '%g'-like format. Except that: a) the length of the output string will be of the requested length. b) positive numbers will have a leading blank. c) the precision will be as high as possible. d) trailing zeros will not be trimmed. The precision will typically be ``length-7``. Parameters ---------- val : float Value to be formatted. length : int, optional Length of output string (default is 11). Returns ------- str String of specified length. Notes ------ Positive values will have leading blank. """ if val is None or isinstance(val, bool): return f'{repr(val):>{length}s}' try: expon = int(log10(abs(val))) except (OverflowError, ValueError): expon = 0 length = max(length, 7) form = 'e' prec = length - 7 ab_expon = abs(expon) if ab_expon > 99: prec -= 1 elif ((expon >= 0 and expon < (prec+4)) or (expon <= -1 and -expon < (prec-2)) or (expon <= -1 and prec < 5 and abs(expon)<3 )): form = 'f' prec += 4 if expon > 0: prec -= expon def fmt(val, length, prec, form): "format " prec = max(prec, 0) out = f'{val:{length}.{prec}{form}}' if form == 'e' and 'e+0' in out or 'e-0' in out: out = f'{val:{length+1}.{prec+1}{form}}'.replace('e-0', 'e-').replace('e+0', 'e+') return out prec += 1 out = '_'*(length+2) while len(out) > length: prec -= 1 out = fmt(val, length, prec, form) if '_' in out: out = fmt(val, length, prec, form) while len(out) < length: prec += 1 out = fmt(val, length, prec, form) return out def fcompact(val): """format a float value, removing extra trailing zeros""" val = f'{val:.6f}' while val.endswith('0'): val = val[:-1] if val.endswith('.'): val = val + '0' return val pyshortcuts-1.9.5/pyshortcuts/icons/000077500000000000000000000000001471654103100176615ustar00rootroot00000000000000pyshortcuts-1.9.5/pyshortcuts/icons/ladder.icns000066400000000000000000001773371471654103100220140ustar00rootroot00000000000000icnsis32߳yxxxrr{{EDZ[gppgc``ac__cd^]adbbcflkhcnnde54c\\NO]ii]YZYYYXXZXWY\\Y[dc\\gg\Y0/YPPs8mklkↆ㔕㓓㓔䜜朝垞01ooil32 z|~i,22+l{|tnttmvsmrrluyymBHH@p}mCIIApy{sqwwpvunuunvy{vMYYJ{!+.&  `X[`gUWe^cuwwud]fK$((#Lc_`oppna]cXY^^XXacVW[[WWa`\hjjh\^fO5;;4Qc^buwwtc]fN4993Pc`_jmmj_^cXZ^^YYacWV[[VXa_]kmmj_^fU=FF:Wcg_`e`X[_  SOORYJLWRZmnnm\PXB!%% DVSYgiigYPUNTXXSOTUORVVRQSSUaddaURXF1660GVR[mnnl\PXF2660GVSUceebWRUOSWWRQSUOQVVPQTSVdffdWRXL9CC7MVYRSWUNOQl8mk Կ &)]RR_璋雔i__kg^^j½藐蔌PEES  ih32sb\yr]hoX]iy\cqyUPSNXqy~qyDJqyny{xoqy^dfc`qyHKqyyzqyM271QqyY\^[[qy{{qyEJqyqyYZ\Y\qySHMGUqy|qyEJqyhrtrhqyckmjeqyDIqyy{qySIMGVqy\cqy\cqoW^sfbupcFEAQNBJN=BITAEOTp@@B>BpOT\o{o\OTy04yOTcVbcaWdOTeJQRPKfOTv37wOTXutYOTu8'+&9uOThFIKHFhOT`amomabOTx24yOT^ftsf_OTkEHJGFkOTo=9=8?pOT[p|p\OTx03yOTcS\][ReOTdNUWUNeOTy04yOTYr~q[OTq>9<7@rOTAEOTAEOM=@OFGQME2::HG9>Do59o@Io9:a/Rs3Acs3Acs3Acs3Acs3Acs3Acs  csqpcscs  cscY#.Yccs3Acs3Acs  csqpcscs  cscY#.Yccs3Acs3Acscscscscsog)5gocs3Acs3Acscscscscspi)6ipcs3Acs3Acscscscscspi)6ipcs3Acsvq.:qvcscscscscs{w0=w{cs3Acsvq.:qvcscscscscs{w0=w{cs3Acsuo-9oucscscscscs{w0=w{cs3Acs3Acs3Acs3Acs3Acs3Acs3Acs3Acf#5]OUU:BUUN  9>>%+>>6To)oHdo,9oWeo-9oWeo-9oWeo-9oWeo-9oWeo-9oWeoo  ooWeooiiooWeooooWeooooWeooVN(NVooWeo-9oWeo-9oWeoo  ooWeooiiooWeooooWeooooWeooVN(NVooWeo-9oWeo-9oWeooooWeooooWeooooWeooooWeooaZ$.ZaooWeo-9oWeo-9oWeooooWeooooWeooooWeooooWeoob\$/\booWeo-9oWeo-9oWeooooWeooooWeooooWeooooWeoob\$/\booWeo-9oWeoogc'3cgooWeooooWeooooWeooooWeooooWeookh)5hkooWeo-9oWeoogc'3cgooWeooooWeooooWeooooWeooooWeookh)5hkooWeo-9oWeoofa&2afooWeooooWeooooWeooooWeooooWeookh)5hkooWeo-9oWeo-9oWeo-9oWeo-9oWeo-9oWeo-9oWeo-9oWeo,9oWYo.oQEJJ39JJDt8mk@H9f KdLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL0000000000000000,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, j}#qd֦,]ic085 jP ftypjp2 jp2 Ojp2hihdrcolr"cdefjp2cOQ2d#Creator: JasPer Version 1.900.1R \@@HHPHHPHHPHHPHHP]@@HHPHHPHHPHHPHHP]@@HHPHHPHHPHHPHHP]@@HHPHHPHHPHHPHHP 4߁OBbޅ:7z HW;%>[1.R=d ` ߁OBb6--}|ŽU8Z2 (7 _> 4߁OBb6Bu]S9<(d(zҭp'D7q%yG߁O>u6=Ybw(1J/'` 6/ha{ᴳ>뜉GC70FM2V=Ne1gNFjo 3mI`CbDh }e#ȿdKo2O!L 5.)8,~Q/h^HOu!ҢOiV(<3w nbR v_^__= KE ]"4?5.)8)|3Bʌ,((<3ws?xʽ4wjVDR%|+?%Zk(ʌ;]f-m`/E?}ٮcΘ]H/rahGݑ{ֶ)A9/(<5 b]WX8G\fPSP56Kg^oȨ!\0VZd~DԴ}Y3@'ϫİMBG)3L4{ R'zA@'ScļVIVjAυċl'bТ~l㽕\'`7%O;M O-Sv¡f?V%`6G=?gbEf~1Թ,IJ34*%$@=Vm/" `6@Bn. n"ڥk%N9IJ. uIKR)73UN@#=;'WɽPW Uyq'Lrr?CUȩ-DMGЅJDuzPp{c$uF/̮pno~Թ,ITf+v$XlOu!U:4V-.qu/8+0*e83l>;7[?' `L-F|24N/1Ef߂4"V PE_+A EsaSHtl肣.^[(ňH?%E: -WICuKP v*lU /z9u~ j_È |k}ijiQq(L in@l,~~J,&ǛF$pԇm H1tM׶ %ZC5o6b7>\ I3tpa*];DO@Ѵlt0b >2Ա3K _س%ly{K``s@UvȲ؞ ‰:? ~?dXSFǬR4` =z l2&r} -$`zϑZ&*WTTQ K $΃Z0> &j0CE1J?fG#o-rBZ`x?/\8S I*c _r- ]' (2\<;ђHIֹ*f ^|,dIwF%c"* r4yWq\FN,[]:Lud'`Jm e 0$@ H5g cJ\Tz'is?PNezM$iRvolEE7ދUܻoKM<5{hq%!P*Xg_\hBߨL Hl>f}fALыJXL)1"@ِgZW C}CcL)'O#&j,vkpIG UPKwbXOFҞ h=S%o$bU3V]ܝ"^H栗23?Fpf50EW) 7fȔ,sS'pnY TKqyCtӚ$en=trh;M;b`\#$&–7ɦ]`auiӥX쯶3,K+._-oYTꠝ U5*epI+K ^^ZHiSJWqNJ:"`N-OgmpYٖ5c$@ Ov0>>y~Iؑ=[SD\תhVy Y Ev/tgGJ'ᰐ}VfBДZ` &1>wI>ƈ3U .Y\rgi(hlc!Tl d_.`n؝@m!L~x?EoX/Nz E9<1_.DgHyKfeG]>O7b"jUy'VCV'7vdDU9V. Pbl9zFF:HPMn ;fbQRc9jK;z2XJra)G l`^ǹW `r|r6IAjhK۩k% 鍱2X]o/=,;Rmkڠr;_R!o<8:fqsnHאgMF0w}(m: bEBU%Yv+쐩I?0 ,sXJ`dbp# K` -gb}O^I)YAlwd$[;iĩ#U Ø$6 KJskIN:o42$y пfN4UƣPŅ AH1=夋}tW668&4(yP<%_O&\}$lI(O@p;ѱ.\ *+f!^\jٷ8 YY[`-۩mX:[L^BzA#Q\?ӻEꕍ,$EZ>SpWu^"[M8WOq;t{ci.hBfӴvM%Hߵw6?RYI`@̖r${򯏀v iݾӍp J ~gP@}QxOǮ?sۡ89O)ucW٨\cev ZMᴎt<U-qBxXof>k`/TI&)c dwk3 p*?9itq=}Gjm/ш#UL38_ |+o  KWڎAj.9vM  ( g ^gsOMOxj۠P[)eSXW*f`7Jy+ari2+_y90ړVjLwڼ`vKI#T^|0Zs)@?xgA3tkaKägmJ|3E:yS 8;ZJ}Nw֬cIN0dbO"f"תn2g\EOB5.Sf n^"PTgw3wRı+9K%5G.2K ECā0t(:dO .p|u$K!H ,Iķc0L4e F1쓔ȕ]Eˏ`[yt|TAH͡&ܴw~X6#jȾ '/n{07nv:#/d`z)s:.*;Uy PE_&6٪KK2qCQ=F*9+͡[}m{ <J˘[= [9ƀp"@s*;BStfc&JL|Y"/{<)m pJHE=љaYuds9t`<1kPJ(;r<^1? ~FG<6*c{4="67aPG &s@ڣw1^գ{]Fcd&$V#Ld_7>Ʈ C[d )-a=jMR*t'v+Xm!J_æ|pöL>kķ4F6WƟ T2]!g4=(Sru]SNY+! (Eàs2v`E/Dq?j;+FQ"hHKw69l <˘z@gٔޔ͜ɻ# )LO;nD 25WT,Lve30A%iCUl6*A@@Cd] C1QB̂ "Pj0!̥6v|1e؎;cUnj |'5F_SnYHQCJ̴Ɛ. lYq˻lyx4CF2QKM7(,ǯaZaC&gY˘ Gz>@Wf F?r;GtpSlw,M9y\`)R;e߈J $fhU(xry Br:~dyFO`$czmA~RA2-|[_v-^O dH6ue%Sve@Z3FF10ӹb ;;KfZ4QrnUa;X|1"Sȼ*GǞKƓiv [`#f ͸gHܒX];ه2^0:}to:f8K9P Y<l ^=oRP}JQW&b.ie>sI 99M,s[-)+#mؼeX3Lً0ǖt67KwvJ_Ҷ& Wa|9zv ~ɪss lo\֡5:UETdQl$ 362|B >*Wy")}Yp厔lv1OfoYb.”bqR SNU\,v֢*Xŷq._=N+޴I3AHlɘX{ O߅eat3= {m/Rme%e +E׏ƹH:bx? ]-ǝIJKVy1G@B5g \rKP}HL(GZ _5]NwQNyYPyvAb鿥 ~/'ԠQH?'jPMks?&/,:jmq'L pVU~D}i2;%e7f6Y۹ /J\iY5󛩮k^Ob+4b7 6%tťG5vnD~hKT +O@p-D:vcaT+ w?~_nȝS 9tJߦ0(L<2#?x$(Cvf낝(^֬+nClY)9~P2//ȅȜr*LK|aRΣ{u; q MtGG?'.'v{ʏj+g.S4#>,ȭiR*WK&%ĥnQg흵 ˔F\?F61;ZHSd;&Wzߥ$ک5wgCp]QeB5(κ%m^1X+HP:2.; Yp LVT=)%wRMYHq Waic09bm jP ftypjp2 jp2 Ojp2hihdrcolr"cdefjp2cOQ2d#Creator: JasPer Version 1.900.1R \@@HHPHHPHHPHHPHHP]@@HHPHHPHHPHHPHHP]@@HHPHHPHHPHHPHHP]@@HHPHHPHHPHHPHHP a,߃PT٭L 䇸m#J@ȇQJ#0cX] ,Hub.n`-0"=@W82|E(T߃PT٭LY EodF)rC>?hkŠC/I]8ݥ# P)k,..L\B߃PT٭Ly"JܖG}jП߈-]p6U1?ֱ&#d" ^hW#}&Œ- Sba4e=t߅:POQ*`ѳ:@v)_7"~280_̴=iTM퀍 /=B$Msm6a./' 76oWu^/"'4b# ̍B'j7xR$A.B]R|L^PQTL(H-8ϰr/)uߙ'愣dYď5$kϫ}+D c ^nztG =9ĪѩU7SO!EzY e?gadMg %ͩ/#aw==@D;EEK:o&˕lU~EG˥Vi OrTAG6܉'%b3MEά"~)E^ofaCE eI:==Jtl"k̕h\)%ߖ%FՆ6`۳SZo"\xku/4YZ0}Fe67ʷZFl9!mH T}bǃ}5lTXɿռ H]7?Uۧ!̉6=3χdn6fn8\RO}HSr46b^n/*9DwzV!y[cogx;jlqtxOEM}m^m} ~?dXS{eR`ʽPa/[Dr$+uʝ&7@,Jq#o.6p%>`ΪL+3ɩ6]wpg]b25cUS":% AR[ǩSׄZFV6s"+ʣ*'5Dw-]ل _M=ކ殌Yu᯿Y23Vd!&ziZQ d),|{X[eE\pQRJD%Z5?6zd ^?:qdμ+n[m䨨e\h~,7]0ȿ9o$] =JYW8NN,W8ZUy9?-\pYSUTH…KI+%UCgd5 B*8(Z#c-" t-k?9C#as@oǩz\`^@tCL50p&z*,ci݂%?^n{jP 41alrS qppXܘI+ǯ?8os.T+X(B noZ8k Vkґ ~9~$uA ݧHc7L9\{؈]5yk(ȉ,/ꁢ8@ K0߼ -XF@ɽ"&zg;dˠDSkDĢMsJ¥aXSfm iTu5AQW8 ,4-&jŚb%0?Ql+]=JPa­:?` $`iYYŬŸxyU?ݚRD(\h6I[z0?έhOY{9aYSlQg dA3|(nڼ:r0ܑ(b͜Z5v!bƦ=S*D%Ϧ}QGe:̹q!!TE]A´LKKqz8fN/QWYh>n}B*H;MmYwJP-oB y설 @&!6J>@_/>d `a gJP`($zԘ3JFgKov\u4(Jxb*i,eXW0opY Wѭ+#ڲb:wT274LZ`V( `QM>5<5{<DX+"&%4l}t!]{OMq =aQPLA- 䧚&pfeeڗ4osCƼzWavQT[O1z:L~8.^xd?wL7;` ~$?COS@mv&]-?ǾǼRa7FύC~=8Դ_&usKdjD (Mb$3J܏WaURc/Bkj']bVW [Y`yהza8.2 և$:IG=]M=:= nddbl4۫ JX.55/]~[}R('1lMt]/+}p(GIxrpo{̎u&b:DTW%OIoPv;D0h"n`J8{|8 gCD Ӭ48^3okQe}ofA0w|2[O&Y _EmR vUdO`82*.|Da[YsNuC4<,I s޺ug>+a.pgKL+:Ph^Y5fׁ$خ%fF>J |~׻{E+WP'pn@Z`vq}F/3Ub"ȷ_[$6)m=2sDFN=,7ŕ{Qm w%2T.|bCã6@ ɛ5r *-[,j5:;_H\U%'~_k8 [P+ȷ--Os7NsʄP}C׭}R# 鐫@3 xi Rk^q}#pk\/pt%x硠^z[n0z*Z %?%g,5x٭oonݞ{/{R4u?鍔g[dTNR"y$z2i%kbя-ycZҏ}Lf*^ZyԂ)بAvM@3B+1D%l1Cc ,( С."QIYWXj 0xo:*1<\6HrUܔu%P$Y'@{!w*҈ojIتHШF. "jB/T|53Sn sxOX`n8AjCo}ɚy<#%2)?6OM:Iv3e0DEEsƴeOo ˋ1Yj3;3) tD5Nty%'"c?kЀSET&-cUS)[?@$t@[wybdf۳&t6Gd}*jB*J%+2TgTKjFOC`sKH0Rf4_꡹nb&KـsQ8b8 iH{`}@ʿ 6' `i!s~ӡP*МHZL̶ok:=FVi3.{.⣕58紊fݽ@N_G1N(lIZ!~}(K׼](?]ΔB2Q/l\yUEY-`r\&EcA<&|)ު@JWmSݜGSC25kQl9N:ij&IʋHx: ֆn#9bS'QHpZBއ~~Vy*xI\+ItnJrDSE?VҴ6q!T=dP~{xtE:IyWHYcp:"2$ɄI7,i\b=hq(/{6jOL1N`0`2"]l@̋=@a1*G)Ij#v1V֬^H@F&:תPݎ 5y RTy" ɣ6AJ C~cb+d,AH0sħ0&W7N yoR]Dx VC?au )Ra+:+O`'~mB= ͝u+V (9JB#Q>dž-Q1BtEYU9CG6[UN2%И=T`{FN6ҰG{s tv\l0E"l0lpi+H ֍ڒ袋Td3%"Ihv(L_¿VY/ ^~ׯ\kHValT qV Xhi$t"zʵA\KJ3<+;n| ;PoqyA|}c j^뺕GT w;BBT5iJ5jK%/y|a! ORzON VX?`Ȥ /Sq qʣ&\X %'3ԎahoYB,luL)[WyHPc%0]쵊Uu\jr}$E}I)-hϯT A5*\|UݰcDb ZJ~xԷVͭD|Kb%3L RXzq^odK5/T`vkM޻ n{1 wʩ*/۝?D7DQl/.R]7f4i8܀)~5Nq]IW{IO,XkF$"YD쉺lݍNipA<X;vsvY ^`BbK+཰ ̎-R;w xݜ.n̟WGoUZ*I]?דz:? EZT[-MSSjmK"-mWYV,ŸWuۂOx#e^ +N+voGZ|7I꒼~udv|.a  (qVKiy |0FFBUX5LZ 8! !?n e[>da3O{oT*'ZGgU'^ 'ܒ/jP\U^+żTEҤm@":ƒJ2crJ}c),2#4w0B0=j-k:CprD5$F@.z^I?RDFeo9"JPZ #UifڥWR^Oo ".pg}IDwT"T ư?^|8}Pf6 us/^_|۩ۡ\-} )/F.RY&sYdC[m׊̝9ߦv9aI_T$baj,qr_}TNf%7Mu F- 84d5bޭŤh!%6;ܸ* i /y0\#̥$o:R8fͨ:Kmʣ3TrvS׼!HOӪa P,ƶܡ̥Q Sy%1B]PW*=6{mC@ tã`gqa!b07ڥd?JQ."Q#%QqQ˄XV'I ќ^AOzJࡰ#sKӁEgZ*% ^J CePhNۄ3\$킐[-{&Fzi;VZpw0 ֙Y$R%p*VlI퀪}6۹ٿ 6NlyOEJ9s@K_k`nq觛٤<~>*|W,V- 31Ɗo:I֊p19{>{2 dV< JeCr$R7` tY*5IxJAZhh PuK[mS8ûc/#zb]^.g=i%݇*"FEILO݇a^܏vg7;y0UOp11w Ǣ"+Z.h)lӱEǞA#lWsi*+(D;]_G?UE aeIC8-2T?&,6lޔÑb6Q2W//3ɚ9Vϐ0i-|SW־h:ʣ`qR'G6 W u9Bkn 'D4vcvc7fz(LQTu?1%$DN0.'WcCӝ( SF]7s*Y1玅YpmaNKU4^7@zιM- (]Rq}*$4 #_BeU{[c[g,tq2;oHOHGmpjy\LU6)lol6p[\G(&W0=^Oe=nbq)IΌRDʾ*i]i2ע  1y+NuH(U캎Dx" :5, ڠoŠ3 7v5CGA=D/4J׃Y}hY#/XXB}bԈ1Z?>@dhݱx<P; 6ab`͇mȩ?GvTX/l@eVtC Du(NqKo!oaE+kxSHrZ FLw2r^p-7%f1;S˳2stWJ4ĹOFmʥ+*7QpfLBdֈ)f8( F;rņ1E`*ò86F9)]O;X/P)0 D~wwc}UDL* *U) đc--@|FѺԕ͸; Bۡ6IM{'| ;ZH$iT9~[lAZ7Iubu@SZB$2K]=0wUI[G* _`('=&McAD#Dt7КEbHjtjTJg@TV΃zG\ƖdRM~ ) mj&{h(хI' ӘWoA“pcCNOɡLhn7IA^,C,u9xko4 L8`(B~l3:] ~SU 9 [B"]RBak1]|AbڣߕZòxWll}'C⻛$1֜@hY]49쑳SYtP\ @pmF'_EEMU8.|5O?td;1n }Nh Vx Lm=5+*pux:1@ͽ~.VVLP?*TA I{H+Q`\i5Z'HJlv 6Nn:Bҩ:Jbč,3؁(GSO\h 3qƉP|Qe}e8(;m>Q2br#5ps4 1-45#40qTP9\]d̃mN>NB!?h8q~P)%8ew=ݨ?amaůO8{d(-onܒ;KFp?sУMLLP$_~X؎^<;~|ő i.AV@opqpDD8Mj&0VV`F skId}?G,/-(ЀFT?iVazK( W7A|$uC "&۞HB]Lar#hܓ7cpDbAQ?O+I7WAa.$SW?xnQ_xh4h"$@$³os !t('嗕gM#uZuw@F40MdN& v 1R1< m7hM˞|GS͎:ZoЙ[钉Z;B4I5؋Q{SK\|( [u#xl AgoioS;3E1\Vibqm]F#>1O:BXYNdsYlc@vGAQEGmd@`?VLk̡"Ge@r>84IVsa^[bDp?-Bw-̆z0#ti_AdqbVS2QL*yʚs1[FN}Z8P<ID@7ʂ #GTGk蝞vCs' C0)>ѢZbBڇaDGw+ٌR8hq#)PZ})1&@28;9Ŧ jY*}R6sE,E9 o{QrC9wUܔiʰbA^~6ѥT9*0<7i^fm\O15KX4.}Dݲt> s0I0|m]A^`WgZѭ8.Fn;o\ 6w0$h=m/bv8Jgćg86܁% ? ~oiƲGʣp110z\ TxwtĜy6/?U9xhŽĽIW0^[V\ESL#GJ*8Ӕ=lXZ8\LWA%x7k +ojjݾ~@s::D~gd?XvEw֜Ȥb;i/k-_ 4\M2 ' CbALԘS j^qJ=g*M# iyX:fȹn꒍SeAVA,=@EMLߎ5XEa;5UɺzN|th{ThWfSWk셭"X  ;Âwd@s4}_K:(Qq$GhzV_km!DS*v>c~8\JJ\D9~~zW^lA1Faݟ0O]X+n*8ٹwXW7TC\-]HnT㍠}ymx0|KV{! b KiSMH IۡIi#BC?Su52wԺ~8-~(B10f{>LA-1ߴ9ζWec?&RKd0}?~W [v6GSjWVyI1 a_/)b$q;ee3^+=_AxD}8@ ~0֬Yںw- .iut?dc08I |,*Es"c! JΫe GȚ)U/6:}-vXQQ%,Z?:WʼB'3|VeS\\{˦(k剝J%PzbF)vWn\S[wx=*5dUc?̩zlow[q,#P" AGIBLE7)'ŽSYY$:@ݵnjz6Y؍PBp8Ro'l9lkJUbEI/D`BdY(޵纰XO8 ef]*gok%P uz@_tt\ƒ!(Wf,1\5s^Q ȧm 0nԌ}2R&9$̈́KD[j3+5aЩr(&uqd-!8ڻK  -NM@~A=gޢB\aevoU'tW35| RW+O,95Z20u9rA3CWm6{X_\DF kw YcJV&zntxف'CG§x⏋Lf[z*>o(# 19I#H$mz_ Wzƿ^U}&oWr AL t}GJ_&26SZğʅfsg=6X۹%yzm?-޹03֢)Bn\SXxX7 ^۾XzKL h Q܄)Xwo/{EV`{PY$N>Rziw Ýg2$VG{yUi=xO@Թ\:4DؑB_ϰ'$a[ȤS0*KN J%]Q+p)Օ8|md߂~ 'p k=,Q&0`3cy,|+PK|t׈}ְRW!> ~2}k;5\ᒠ^$@(w\l1@1  wbmM] T=+N9*wƀl (ƶ=@ LA7pZPS6@4iz+Wd q wa2.F?SLxKo>I50#6|N2* x$CB&t5+®9[@`GVνW Qy  4权M{"jy*G"J f۰#_spR T~h¨DG vKಯC%v&*&@2ciLX 4A;- jrmp RPv,E@h@mϋ2TK} ߗ8cN]Lؐ+k)S$2VgV.IA{cp*"gi9} rs2q լɱ[@ gBpW.=/@xAӑP"(@% cg jwbx/ބO-w [fJ@seg* z,}Q0NbG)YJ%\xY+Pa#3҃/--6z0{PJQJ )h5uK bW3 2 >S2I [tC`4I AdWSwo3یWx/Ht.G,ɕ}~\!]"tȢ̪$KTؔohR:c gT)6k>pԒw ISߥީ@`o+8Wf[uPL~uxc25&f95i&:|kєFԷ¢44׷~DCIE,sIO)ANqw7:Lh. >x l $uNvC΀Ð_GX5*2(o) Λe0=I!h+;[D0GXZM: !9A,ҿ1mVjY3WM&}`&.Io xXaz˗[E߮7I`$m@]hO"KkbWATw *Ѐ$p΁ _]*S,)Q'%IIP% @]/-Oti Nh7AهetoQ7}DgmR6/Z7CPt_Q-=4_=S;-KX>3𭯱ʅ? xe .$`O9wV_̀'E<%~T#pݟ RS6G>% g Z܀WA%<HEn3^H;vN4:Yu*Du[-[4k+`P[49hɾ!Ȯ$?-H?aݯb)ۈS>B|r]^nrt/ý1y;E+w:ze=&ol)Znn+jh|`{D eH^3ܔӱ'&W M~lUΌ}$:LHlDGτ e-Dm+0;{2)#6UEuQrŅw;`:}#x%(T$ &@5H U(S86@Ǜtj}/T}Rͪlҽ=y,Cp Ǝ&}Ms#5fp Txv $rr6C7U!"߮^& ~{zjmOiw VcpdۥKE0KUcv-L:: gx;;h~Պt vM/n'-r%,yK-ǖ5m]Ϩ,-u6=36AKB6/<^8d'j_Z%]nG``h/!&cRMC{@>]þomQb,+3/R Opy]vƺc<ёe_*?^bDZ0gn^ *q[r |Ս|Ԕsگ1|A g2?ZXp=L{0W4܂\}BC5zͷArMEn\SXy7xx >\jb^O^AmL/ Z/I"%EƢ?\&ydzar$A ~tnIOըD`P&Q[p>IMc@8%@\K֑DPLH!Be `u{2ԙ L( ^@l f~ iꚠ> $Xf~8d(8 P]Y<&qrT"ԒytPE^#2yq ׁ٤kI<\rGdJWEqmq߷p>T x<؃?.n_i]\uJJq7Wq.^bG֫$~ #d\َW(C0PT@)@P a, +d(&Ȱs^KGl) $=BPx VbKCKElܗgNYJL"H͘ +=n wr[B ?Ƴ)I_ n4 Ix}VmT%r2T;6Gc 22O@sĈi3\3,;:ҤU ‚!?d ߨw>IU=_ah XhIe1 :v P]Z_ CVT XO#bk_SkxxEGHdvP`%|¹86",Pz။2 6lpfTؠ>J j[%@ foR5Z,`2T2&FH%DRUyng)ۆ5taxAoa(6 Ja}UnH]?.%@CϯO@_#LH19CdF%@D,6҈7$Dfb_M1Tp=RQczM$a%@m xXaz[JdtsYzAdTn*xJp9uHO+0pLa"E9CʩP-|j,7Iv.c5,0ҵ5ؼo_:{I'Ԉ$߹Q>DGUL6/7GPtۯ}DBP_=R7-Ry,ݲ]=X}wvG:F^?_4'_&Rt=k͑жZqOKsEot6(u~W͢ rhH U;-dѪ3~:>JWT`Hy:лl֍*I<z&Eiw2Cy#нpѡLb"8w*JcۉT]o$`}68Խ4þ*BF^O6V-x6i~'y:e{1o5(['.LG.,ΝCY[n\S[`~{Ps a |شυ֙'cc&xMxzSD`L!\)w=?MS8gwO@CA1`)N4 pmj}!A?5s`z+jQ`۠ycZIr$Xr[@PsZQ鹺T{w4)&{K@'ۤFJ<0ENGCufx)T?R NdH4H7=6OA}OnXְP^R@-W.@"$r =w`BC% Gy R*1ݯ0V5%?7oT)\p̝12Fkg( " ] Λ4(E)M+ Q4W##MD6PfJe: \>$dLq_x^u@Dqx%@ Ü$!kKma7S}0b̨7T ؃\$WD[Z+<;%(3*'8tmoa ;\c6Gc 2.ڐ6l?:`<Ț0_EaIl`Ɵِ ~s+&MbBeWW|HP@$1T)8KWcJ%" @W` ?W_ۮԞp&BH4Qr 벒:Cih1] WkK4j!M$h^ J$Sl!'c;%@2&FH%DRUynN>d.m!W )WT]7펶 /F.#- #1cS[+P覢VD͔W& N>MZu3 D?q(i 5d$jpPK0TUG{Ek/?QT*]r b7rR*TըlǦMWJ@'T_ -pllgX<ژ{_KӁ í"mJLlWT)6k>plR|_uc w]$dS3~RNPBI"򠉛LT5\iÞ3~u|-3kdl-2p?pĈ6{C#%0d ,Mbv-~%k60!Y ?60㉇\M b)97^ G6H#a4m y^#Ó,XKl.țcO;ov:?P,S >P@3;T야x'&=#<(4?qZpCkv 5YUI l?%p( ~@ b߿%@*j6v }լ$`2bFOX-7'B6`2l,MP"|,G4``P`3:89kQ0 [vtOO; 1#t)aOp¡x1UiDZ|"wl貐.^cf P&pcw {9̫y1ͳHu;^ IAa@FX`!rй`yS ҘMhY a eX vˉa^ 0푴>y J?oX. $KV6`7ռvӲ1sJQH<޸??pu뻂WWPN8SMoѼӰ@dBT 2ID*\Wv9{nWn?)q@u@%+l{0#X Ƒ;9VZXE'JZ'qIoš~3r_c:Vb^&b 8 2q.$ rxzVbf)#%:%RMF˼m 2)rgMFrQYszR;U7 Cx(ӦV1)fm\#Ir  @夼nbJ&gbG&9TK v:_pyshortcuts-1.9.5/pyshortcuts/icons/ladder.ico000066400000000000000000013226261471654103100216240ustar00rootroot00000000000000 ( f h 00 %$  J (F[@@ (Bnc(   $xx%;ovwe$);&+>&+>&+>%*<*%+=&+>&+>&+>#(:MKV{oooooooLW}Q [ioooooooGQt33:Tooooooooo4ooooo@IiXeoooooooooZgLoooooooooo@IiXeoooooooooZgLoooooooooo@IiXeoooooooooZgLoooooooooo@IiXeoooooooooZgLoooooooooo@IiXeoooooooooZgLoooooooooo@IiXeooooo`nGQtGQtGQt:B_f\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\GQtGQtGQtGQt`nooooo@IiXeoooooooooo@IiXeooooo  ooooo@IiXeooooo ww ooooo@IiXeooooo ww ooooo@IiXeooooo ww ooooo@IiXeooooo HM`HM`ooooo@IiXeooooo ooooo@IiXeooooo&,?&,?ooooo@IiXeoooooooooZgLoooooooooo@IiXeoooooooooZgLoooooooooo@IiXeoooooooooZgLoooooooooo@IiXeoooooooooZgLoooooooooo@IiXeoooooooooZgLoooooooooo@IiXeoooooMY-3J-3J-3J$*<-3J-3J-3J-3JMYooooo@IiXeooooo  ooooo@IiXeooooo :>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M ooooo@IiXeooooo ww ooooo@IiXeooooo ww ooooo@IiXeooooo ww ooooo@IiXeooooo  (Y_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_w%ooooo@IiXeooooo ooooo@IiXeooooo=Fe***"****=Feooooo@IiXeoooooooooZgLoooooooooo@IiXeoooooooooZgLoooooooooo@IiXeoooooooooZgLoooooooooo@IiXeoooooooooZgLoooooooooo@IiXeoooooooooZgLoooooooooo@IiXeoooooMX~-3J-3J-3J$*<-3J-3J-3J-3JMX~ooooo@IiXeooooo  ooooo@IiXeooooo :>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M:>M ooooo@IiXeooooo ww ooooo@IiXeooooo ww ooooo@IiXeooooo ww ooooo@IiXeooooo  (Y_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_wY_w$ooooo@IiXeooooo ooooo@IiXeooooo>Ge***"****>Geooooo@IiXeoooooooooZgLoooooooooo@IiXeoooooooooZgLoooooooooo@IiXeoooooooooZgLoooooooooo@IiXeoooooooooZgLoooooooooo@IiXeoooooooooZgLoooooooooo@IiXeoooooooooZgLoooooooooo@IiXeoooooooooZgLoooooooooo@IiXeoooooooooZgLoooooooooo@IiXeoooooooooZgLoooooooooo@IiXeoooooooooZgLoooooooooo@IiXeoooooooooZgLoooooooooo@IiXeoooooooooZgLoooooooooo@IhOZoooooooooQ\:ixooooooooo6>Y&,?ooooooooo(-AAJjooooooool{.2:Shwooooohw3;T0bDNol|ooooo`n %5 k     n     :ABi">]```^?J_```Z0(    P\oP\oYe05E0/4D1Yc\cgngn\d[fdlck\hYd\b{\b{YcXdX^rX]rWaYcX_xX_xZcYcZ`yY`xYa]gipip]gNZlO[k(0` $  =Ffi=GbIQu?FMpI=Ec,2F{DMoo6=W 8@^oFOs!ITyo9A\ S79Ip:BS{>BS{>BS{>BS{:>NJhV ( @   !+.& U`NX O[Q_ YgR_S`WeXfLUv9=MPCFYECFYE7:JSMW{VcS_V]ydkfmfmdjW_{R^UcOWuQVnV[uV[uPVnQXvTaUcOXsSZqW^wW^wRYpQYvSaS`U_ycjemembjW_{R^XfFNm24Cg69I^69I^03AjGPpVcR^[b}munwnwlt\cP]XfFOm15Bi6;H_6;H_04@kGQpVcS`U\yahdjdjahU\yR^UcOVsRWmV[rV[rRWlQWuSaUcNXtTYnX^tX^tSXmOXvTaS_Y`{goipipgnYa|P]XfBKi!$,]%(2R%(2R #+_DLlVcR^Zc~munwnwmu\dP]YgJUz&)LW|We S`OX O[R`   (   d    ,    ]}EOqJUzJUy3:R#9B^JUyJUzDNoqYfoooo#3j.5KooooQ] esoooo,3H9A]ooooWcesoooo-3H9A]ooooWcesoooo-3H9A]ooooWcesoooo-3H9A]ooooWcesoooo-3H9A]ooooWcesoooo-3H9A]ooooWcesoooo-3H9A]ooooWcesoooo-3H9A]ooooWcesook{hw)0D5=Whwk{ooWcesooooWcesooooWcesooooWcesooooWcesoofuao&-? 29QaofuooWcesoooo-3H9A]ooooWcesook{hw)0D5=Whwk{ooWcesooooWcesooooWcesooooWcesooooWcesoogvcq'.@3:ScqgvooWcesoooo-3H9A]ooooWcesook{hw)0D5=Whwk{ooWcesooooWcesooooWcesooooWcesooooWcesoogvcq'.@3:ScqgvooWcesoooo-3H9A]ooooWcesoobp\i$);,,,,,,,,,,,,,,,,/6M\ibpooWcesooooWcesooooWcesooooWcesooooWcesoooo-3H9A]ooooWcesoooo-3H9A]ooooWcesoobp\i$);,,,,,,,,,,,,,,,,/6M\ibpooWcesooooWcesooooWcesooooWcesooooWcesoooo-3H9A]ooooWcesoooo-3H9A]ooooWcesooaoZg$):0000000000000000.5KZgaoooWcesooooWcesooooWcesooooWcesooooWcesoooo-3H9A]ooooWcesoooo-3H9A]ooooWcesooVcNY#2LLLLLLLLLLLLLLLL(.ANYVcooWcesoo !" ooWcesooooWcesooiqipooWcesoo                     ooWcesoooo-3H9A]ooooWcesoooo-3H9A]ooooWcesooVcNY#2LLLLLLLLLLLLLLLL(.ANYVcooWcesoo !" ooWcesooooWcesooiqipooWcesoo                     ooWcesoooo-3H9A]ooooWcesoooo-3H9A]ooooWcesoooo-3H9A]ooooWcesoooo-3H9A]ooooWcesoooo-3H9A]ooooWcdsoooo,3H9A]ooooWcTaoooo+d)/BooooHRv f 9A]>Gf>Ge%*= +1F>Ge>Gf6>YKH      9(@ @  ` TX] #'8ZgLX~"&6!%5Q]Xf%5 7@[oo!%4%*Yoo$4#(:oo18P!7>Yoo$4#(:oo18P!7>Yoo$4#(:oo18P!7>Yl|NXz(+:-1=-1=-1=-1=-1=-1=-1=,0<*-=OX{l|18P!7>YcqHNeGNdcr18P!7>Yl|KUt)-;/1>/1>/1>/1>/1>/1>/1>/0>+.Yoet,!!!!!!!&"1eto18P!7>YfuELcSXoY_vY_vY_vY_vY_vY_vY_vX^vSYoDLdgv18P!7>YfuDLcX_w_f_f_f_f_f_f_f_fX_wELdfu18P!7>Yocr*''''''',!/cro18P!7>Yl|NXz(-:/2?/2?/2?/2?/2?/2?/2?.1>*.=OX{l|18P!7>YcqHNeGNdcr18P!7>Yl|KUt)-;/1>/1>/1>/1>/1>/1>/1>/0>+.Yobq)*******/!.bqo18P!7>YetELc]d|ckckckckckckckck\c}ELcfu18P!7>YfuDKbOTjU[rU[rU[rU[rU[rU[rU[rU[qNUjDKcgv18P!7>Yofu,#"2fuo18P!7>Yl{KTs+/>14A14A14A14A14A14A14A03@+0?KTtl|18P!7>YcqHNeGMdcr18P!7>Yl|OY{&+7+/;+/;+/;+/;+/;+/;+/;+.9(,:OY|m}18P!7>Yobq)*******/!.bqo18P!7>YetELd]d|ckckckckckckckck\c}ELcfu18P!7>YfuEKcNTjU[qU[qU[qU[qU[qU[qU[qTZqNTjDKcgv18P!7>Yofu,#"2fuo18P!7>YkzGPm,2?36C36C36C36C36C36C36C25B.3AHQok{18P!7>YcqHNeGNdcr18P!7>Ym}Q\"'2$(0y$(0y$(0y$(0y$(0y$(0y$(0y#'/|$(5R]m}18P!7>Yo_m'33333338,`no18P!7>YesFLdgomumumumumumumulthoELcet18P!7>YgvCJbFK_LRfLRfLRfLRfLRfLRfLRfLReGL`CJbgv18P!7>Yohw -$4hwo18P!7>Yoo$4#(:oo18P!9A\oo"&7%,?oo3;T!&5WdISx"&6!%5MYTa"&6 S I M Qpyshortcuts-1.9.5/pyshortcuts/icons/ladder.png000066400000000000000000000132241471654103100216240ustar00rootroot00000000000000PNG  IHDRx pHYs  FIDATxmU'7tC(h0cLtAkŐ};bōS[ɘXqXSneu7qY'  FEp01 ("b7~@Lt7v~Uyιtu?94Ǧ'D0$y2}I~d+C[Q?Hrԛx$'3ɯtI6ɞ$}#z-ɍI쭢-ɟ&uF3K6ɥI6>3IvI Iw'I3K4ɬ&h_OcO:KnoƱI Jr}+$?&m̬iS1~Oгwoܕ6._IJ)[$&7mqLԕl~lٹ+}o~2lZIV&9 %睕w͝Ütח>Lj7M2?#%7LЙK=+zϩ6yқ~/ehaʫ7$IPҵeg|/ɭ޾|vWI~b#W^GNx'򁌋pO -`\fLO|w @vܖcgWM[o6$yǁAq3k3g=i yhR [p;]&'8}A,w!>/pi'6pI(@ɦdg9膿 ׿ǵ ޼' nlˀ&PC.uIAN:grBF56*=?qHFgi{z{+Vvo Ak,}uG(:*x#M?Th j1Zϒe+Ϝ64R@ H)P  c@.'.@1Zҭ;h}µߪ;aY)PuG(c(Pe {℺c{\p~1*x,As] dG;_z 't[_h2{LhкhbGGxې`ӿM~25Ƶg̷וa @(R@ H)P  NPA_{y,k7mNybd%k*?ӛ{ܹ-9阙96Ѡu)PY5j_ltV7tϪwxcZ%=RwbxSz{0"Ƶգa}C5 4Ѕ ˍ|-iugɲogNZch~R@ H)P  c@K=-Gh+y}H ]wb9P\p~&OPwL8!-_w hj N3;7}eq=>>XnZv%yj45k\|`0y„\̘6%;:F;4*ё>jk7ot:dv {<ưR@ H)P  @(r'@`]oϺ7>QlW^ǯC֖gg洩Zwn[G6n}oЯ!8_o| <8C}}}ٻo_ٸ%7ܶ0?`8 T߉Qr݆#@SS@OtZwGC5 4Ѕ ђڲ-Kxc|ȅ[b @(R@ ,[ ;FKZv}(`NT@3c Θ7rKP>7GtM[Ad /m ^Q,NM2`~nKN=# .*?>.8g}\p;N_ݐI?1H)P  @(R@ H0Te|GM[C׍FVWo|w}N>ffg洩c Zwn[>?=iKnmy1)PwX+m;45 hXtIZ_|AcP tŋђL,[Ƹ, ,@(R@ H 4Вe+a3uhIk֮;̉ hvBuqAPX=Tc *eʤK‹yrsW$yy5S90?=?gےK=k AR5;?sI\, I<0ٙo.@,@(R@ H)P  @([Cܕoݼ>thi_y5w3rEɬiS(@7vHNTvp]uǀ@;BXD)P @ŢKВ[ϴ(@.8/__-MdɲojH)P  @(B-Y"Xw6Z D4KPA{_8P '̭;B{TCeʤۼ5|gw [+Ki䍳qy޻-9q\<1K :Ǐ˿v;<΁!dnHr\O` @(R@ H)P  NPѯؘu }歃M_z{_=8N}t} Z쁇5^(-՞xuag *X3N XC@\ tY͍|-iuYӦ֘ 4urwN;FKr\,@(R@ ȧ^;FKZzM(@;v ˺c%(LUwbMv *s9~|.]pN11onny[=N/Ji5$ā >1mmm9ӽ)PєI]9cܾ݃Mߟdhej20=>غ@1,@(R@ H)P  @ *-NY̶L(j&?ۛ[>ohkKN>fBE T~~HzU=={ߗ>z~>~cZ%~SwbȊ:*Swb I 5@>xђ_q.5mji)@]]XwUwh)@ H)P  S@KWҕ%-]Rh/e @Sݜ.=T@.8': ssM_.ys//r=[~`gllM$:0Йk?avO}z2T@ES&]sg}^dhej2Ƶ{<ưR@ H)P  @(r'@h͆v!f`W&yn25-w'3#yǜQ N n]Pn<Gi{zzv?>5Y n_#k x;(P @}3s5_;FKZ|ݷs}8pִ5@uwukb1ZRwWWX)P  @(O@-]:KW>Xwt#@KQvr.ںc%(Lvs8P\L;Fq&vtk3|y޾#}}'r LY\S:sg?5mmɜMn (P]sCn߼W%Y?Z̢qyܡ'@ H)P  @(R@ H)P  @(R@ H)P  @(R@ H)P  @(R@ Pu:)wD޽ !󵆿P0?$?pjۨ4 ='-;w5E89{li 5֓_z/{Hx/MDd{?zk %YɁwՇJ^zu` }h2 qvf2Ol>pzI^5*K}0{k ܱ;Ѱ&Pg[̶]~ݟbIn䭥7O߸4Usi(x`| }{.۬ @Vy+nٴ1XFz5;c5e׿wLM]SL}N fL|Zߑ ނ_))Sn'>4Wozm1}P}He*ΘmDC몄ODyERc{m7Jo\;5Gn P^ld>_SS%t]!jYȌVZVq,H(» !k =I7sMDI)':^8jWY1jL*@7(!H8?G~+AYk0p3, ։ ;-u?LCHBTW5Ó! $VIc<ќPh0ag4 \pEŖk@dvdnqfGlse[Xy$ؘg$Ͼ}1pz Y) A(2y'1@33tyr[za]kd82!^r5W#eplK ֲMj'nShϧH؆rp"Ыbh0YQQc?eVJMz/`W0cMVIt UfdPB73y | " kWTB x͠9_wPf]|k❀̠keѻrPiGnv(`^JՕSBrP[l!2`~4}lmf@adb.l o ֆejk 8[jbx "qZI=z30T!Up^EcM/ waZ7GGcvh˷^*:Z(4+N>g‹bVeI .Xp.7! r7 gzv]F`A(~ylXb2ZT69"mmZcC^_qɃTSl>}~@ hp #,1+j?BKo^@uBm06j@X46+SNn|Q+. {sFןA)I c$t(bZDWWTgYŒ㝠ki w,9XZe 17k ]D ߅x< 7}_mlQC" A*="5\k])C@5\C#J^&yW a0V3MOR2K7 qoRԦNa%\^ي q3%rwRSdbEK->s7B$XwJ7aI_'\'m4'&7s@gN{%[;׹pH--TeOb>3]-&Sz$vG5gFdFjW{m\ȯJ -*W~GO|@`ϱJd:)a*e8"f=~8Zܰ\"nogtBʪR&NIr4騃A.ϿG'ߦSа…&z*ֆيY}TK<0{(9v$o#M^#I^sZeiz l-6tQ BaEN6v_.j 9 .4QC7_HuniLsSj)<zC+0foK<v~mXkSAS[V fz!͉GfuR7KP/,FB >!gICkxWł1*>iAuw\5⧾`u-Nh/Blκ۹~KO$pº <j=1Mfr5Z2ץQZj ;=(h,eHw[ӓ53?QS>P-7i7,IsrC:>c  !zH`֗*tbїS Id(9/D.THr >=˚^ 'D୤#w_K$לQvcSH~J;hS(<0pBI)ASD--~v{tЂ|@fǮhzدmT+{#j8 5S(`c?8϶@9I[RKS~A78~U3v{P6XWKT@a2H!5` OlL@Mm4o)S;{Ѿ96=鳭g^'q=`d3{Ʊ -DjEMpJ?1&3MA'7Nt-? Ð?١x/tu}'P2 xběiϿ20.-.B}NqSy1&BzuJҭ"$|OeDS\UJiuXl_!ϵD!M N5'L `S/w}H䣫S\x$ﳛtֹc*]y=(MAZ*:LQ&'-%[*_Ri,C{3$=_Y// y?!p|@ P! bh(VZ  ܲxإi]^.EHp3 W{.eqnαV#wzn,51KQQrMiL%lve)WOP恲#3`;<1m> 3\QqÔ+3F H 4­ ].K@bEs܍![ia=WB AXwAY jɏo UŶx5ҩt) mvIDktN7+Z2UI S_۫,mO,,Uq@8VZ)6WhT oeXJKCW|E2zV74hSIco͆tdNYJ‹,H8^9#pϠ?('?U$d/U `Tۂ˨nX$YH#$:cxIkWWL ~rF C3Faò\5]4w=Uz ۃ Pzy ȥwR*0@($"5Vސ,^pM{b($DcX8ŗn+V `#d^H })P2c<\0>] /SC_1gLz#!F-r^M<4`m`\kSW,"')<\zy=,A,/c"= .*gF7"ؾ9VPcmE_Sd[FGanfy@P Nڡue̠n1K@m~&wEEr?-9Oe`=e]ƤYߞ_I f]UeFزBB4cf?j M; }vϿ@7(9w "RCH%?^D>?-ݗ vt[o\X!˳y[=<:OxCKF5.sqokI CK5Q9Lqn%=Fثi[Z_uLn[d'iDf*:/&VU[J{kw*Q|>I}G1{w[*KA7РoV;mUP `#jma`T͒ҹ v[`Zdd*L:lBL(dQIE/4D!Ϛdזk##xiY|"F P.'#O#"6A3Jw3b,Ay}y. 4F~[ :uMeI];}ab4< kNS-O_Lį4Bޓ권)J+l>4/:©3uog6ͫOpqZ s;eeJc\ow$dJjR?8͕h}jRF?H?I{!|whd 2# bZǫ)Tdb ` Qoŷ]A 6J<[*sa4FZ-Iw~|mГz"@Ƽ%œw/j-PWU%F]@w_8)i44In_ׁzv6˗@Ki8.z訔-%agE&՝{f%kJsݽʥKm؜Gwx'>2kytCŏF፵vss[4$ cۺ5G!P`ʟ}N`0Og~Q j}ʩO<N{|NZ 1,@QWutԙ2W#R_XB:m"ī[v,VF1-ܟ,Bz+'b? `] 6 ֔魲E:_q +._/p"ubZIPT_>2\q~*wH't\X.(&MxZd;g;[d5Ma4?3J|: ~ۑF8>'Umbܫ]t`  Tu뗗&2匚X&ף!aU"m]wl!Qɼ/e~/;8^ s$>l #G|>$B,rtkI. Fߊ^>"2J7ҫ^K `Ƨޥ!+}rR<<66W9\HQ$Y߂wD#@~XlDO>Qa݈eakR`hOƁ dmh1y*k8.R`f4an;jV^ O~ ʝ,-guH:wO18U2Y.V;| Vן" Д}C­ wrO1B> "pveב(2[NhD+v%&7Y㞽xs hB7!TKBIGZdf{7#VT$iDѓS4IJ}n!PU*Zζme+/3|e _4I a5 !'ypH*XP Ad$0_kG`;7,Z1'D.(5G0433 G( Ի|>a9|ؐ9KqD RAo,MruxCo֤6eUݩ/+ErWJnxicύ >En8u:R'8?\Xz*@DB;VʥNH+^˜15* N. o-[S\Nʋl4-kmtmMACW0 o; nYjX <1L *9C`Ʃڵ ;u4 \$=@`v]Դ; 5S]:B9xz3i{Ygxwom|}Ҽ#6:n.p [~?>\emSlU56l^NR](p]A NDg.OqYi{p 8f&8FuDDl^FC5L,=om^CpѲ6ծ[)w ڧG2y0@E.:=nz>: Z#0Cvhri+*cLtbLkNmF=ϙ!2cKHif,0VMʸ;, |“Wq5hAх_Dǿ%GgVܵ.a`q#\5g+8ȝ4tMyO:63&\eKDrqD)і. l2 o̿xUZFA|ݤgnkO( ذ |g>h7r,8v 2acfi HZMSGu os$i6)VizCaL5,*7/XrcwbK? Mލ׏c o]D e>|X3/O3|weK$W^K5%h*.DByDQATIaMS)k Ti "kװ B*x40 McbLإ':HxKtWQx}[p0ηnaaA:•,ɜi=Z@OebNA=(A"]t)W 8lX0ָLmu="*NӮA:I|3J2٘(u+oP4]~7bh0Jv:"Q'2Ě@?̳ClF3O{8þfh͹j]*S7lgϖr 嶯ea{s_^̈08]/zVlʓri{ei P+V!CڜI"H%& NR-~cL.#gޝN.yU1+)9iJ ԛgn=Ň>k,]WWQ1Jq3esX;6V2y"南0oI&Wg .T{1DA3Ax;j3s|)H!囂4> )piՁEtd4i4׫:!aCw<WcH@ۻd|%IB5حGDߝ0URSg`v9z[EdS 9IqX$x$7jw 30=ߎ緎uI7t/r}Ӑf'e^؄YOjZ$(!.i>ۭq<3X7 O큾MuZ.%d3C̆E4-=b*M 'JAv㰔Z5?x{Ӱ2U@S cWVWNgDa{,˛`|LK4UouJ+:<3.D-{ ?\qf+AUSe{{,zLg&|nqyn1@ ދJZ ÌgҫhAʌӮ"R %h2it&L7MC%NrYhH} )]D ώtUPaPVAv= k*kclmA&?e#qF9qE)#;kV7,To{LΰBXlseRU>OÐm]$ί ')>2m&ʨMbֳ4&KiXy+F/9 YA3_. QGd"m0hY!h8-ܔNrSlF`ܥ`2'|_}^ "pTwϟ,!;Y[W߲7q,i\8oE `ـ{iײwxXJ:Ѽad y:t} T5h]mwSRKJ/)*</>>5Ԧlǎծ빅_!YPf^[L!8nL2šQ+)Oi?[H誢.q@U@.UXPI:ԸњƬJo!j??Ѯݺ&WbqҶOb?w1Dŗ;͒zwyXl~+ʧ֦Kzʻf@ B / }C&Pƈ.M 8{4WFf"ȱfd 5C&2 ;  ʳ|R(g<# 2XE'fnO}6s)iX2qg(vT[ a&5Eg*Ri6Tlm"W͎NNY 7iݴTB!x! 2B(J_|h 1ČFemlkGsM򖙆 odϔđz'p xݭNusǽiHQ8İO8cY͝WPQּfHv=tw_ٮƨLY~IYUѠTVVh"Q V$yM$*$5V.s Qh~FWbb'|JʹzEz7Pǁ/͏_"]mIߗ٨sw2yD-8sXDPzOsA@ȅii=~Z<-UXT)UlIɆyu! hݒ:@mD.aϨ;=}Jw>36RO]bQ72x)&3{*}ױSd67!oGA' c# 9_783B? b{sԌٱأ2NHLFzBZwⷅ=9n`0>{n H n唳mGdYNqOI-mxf*eJ|*=yesUՙ}⸣)]󫚘N3ߍIր1ݤ+۳7XG-NzqwtdsJn[U1`cDaG|]c7W.j={9#M}Ҏsc[< mqqmibWu N3&Åuh6!tB4;4}Pdp[GPG#vw~W֥S/K:Z6CxgcfC Vur_)VjVx^ yw'$)rX@`A9NrJ:K4& PCeJbvut(m\c)R,=i+HXNv,"42KD&f$k}]AEL. 襕W['Hc<\J{7EaI~?j3a3T%Wgq,l~Z~J'?`Evٿt3ML!7C1BKN r}{TRwgs^C7罻hdR^|AKV%J4XbQKǏ s¢U"Yw'L?v1vJ+HŔmj? b>Mry?q9G 9,Nv\0g|i?N~~;]hU10H }Oz 42A&-GR5 $u b-ꇆm}hE/,J (ymO~ٖSBikA%dEzq3yZ`A!7)h?++sxࣔ_~ o7ŜE:&Z]BO :GPD"&Ľ} @ d92֟"&l0#ӚGLGnh@-r6J;eSΝ7{&!_zP^POMQX7c#ƽJ):xO*@Rq")`ܧ9›(35̜ jD,;yPv"+g>f#o AV{> /-;F(Yߥt/f5VW̃ $$UZ,4ɣ>NJ/|367ծ6oΧ$cͰO1W3 Y-YdQ0F(?QEqHҮy8Fg@D8cpQOӏC&B;$ucV`w"R&oU[A}t%޷{ǩ?C= Cd SZRq eeJه]czF1D$;b4O1pZ##=ϖR'R|. :Qi=bcmIP$'/lJk8DfB\H|?߁RVh'KG+}&^ [`NrOeB4rKXim8n{NbpM>_mjL Xkbdl?0uƍ5tA}1^65Cu+ f*ҩSQ;%Mj?q=L?˲ف(R|0².DxN׿ gKnAOY *MRj@ČPJuސ"]̆~c8Iɇ!Hw)ZΩ,MZ>:oGg{%U.b~D_~ͣ K0^ϘGY'؅ -J$]mF#5C U&bxH(bAwQ2\pC@tю}rk?ֆ4 :kb|'ڽ6A8iyLf~|nD_XMOGF%..q2ǧ-z-&lB[!ύTea[z(T{%x|9- 'kV|iO( ZD㺁+46Ϸ%`iG֏WfZy:ޓ.gB:L.T)B,g2]BX5W 4$tG,::ltJ8eu`h  f'"'ǖ.׬F'}8C[='\\2zc  }屡GPb&3:a$39± 0S<;SqSZ ;쀑/CB^KOsEpnN;9#_Zބp=v"}yLtf at8}*nuXhEr{-[8xNno9fijo]m%)"%Ɓ]tΗloU C?uoֿV9ߧ\Cuv:Mb ݀{iײwxXJ:Ѽad!vsȐO*f_~%+Qǫ'0 }$BbN vXO.reƛYx #Y 7|qLJ [4ߋ-0BM *}F粅cjr^j)pO4xꨰ鉟B8RF 2B BLԒew[cEDO<".*ۋLLJY]T'g,>g]a-G&DacmW8 %u."}EhfE$Q}Ud'_~ҙRǶa`Kyk9%*>(!aQ-,LNĉ!;k0_i(: )0F")zLE]Dv T=lCjn$=>Bj7*hÄW#ο|)qJ.<ZI/̈́z% z" ]>Ҟ$ެ%e!_I`TNƔSU/ΘlhO:6 _䄫PҴˎ&e=D"aQWU ;v+ 9R@RԄ@&!¦Q>S7lol09`"׻J+.kI=y(*چ2k'Mh=#8-)yC8᫥j} ԣk޺ʻ4foM헽o'Wr`oc^tbݎ^>K)I0LOٿ)bosI ݣ.uz|2J$ƄPLo/bp>-_3P~ lZV 31Dɩ}ޝ[ `Î/;Ek[t#9/J‹K*v"]vF"jMn|Ʌma>MHqy0l C6Ac溑V0n xb&˿I.WqY=5sVe۽ t&A[Ad+fW(= Y6D/=]XxoV{c"aWŠTn ?q34GE$g`ͬW2#(d}Gr-v?< ɶv.fESOX/;H*sGsr>7W(g_y`v3^ӟ|z\dkjTe*8M߷Jn/ᤗynm?n`s!> 8vW_($W}+:<~scؕ`m`\wؙƛHAp ~G&]⾦L6~&X;fQ5Rg|4mhIb^_{&[.JW q J>4vX05QQ0ׂ3d.'3x5>:ׂׯ|_|S>MG ]'FXC25m[:<{M=/0yi,=h 4 %emetu1//|損vfdԯes?"n]0S|& y'0lo aj\NqA Td~Hn1&4k2q-qC0UL]SZpi!!浌ǗTN~2cnw2xB"MTndB]r#%-}:o*p %GL,6JDvSM]/(T!}Z"t@c@A:3řS###?SW@)nQwXgUq7F?r)MSR<.` ~Z{C`+b˴b4rx?o>ok%5:6$꜡(A M{=^?ߎ`hmajn|GN/O.ьZ*Dt(DY݈ :6Lb cTV9!Lk#WW>42<:g:HPm$9; (%UuЈo<`:QIj]]CN,%˓9Ek˘v*\hNf 8Nl8$PdYBRy6"ZFȗ;_&0ySDA:+pn6RhǝQ jӂ-Ca3L] h;n 7|:NrdEq99HbΌV [\O)4 HϞ0!tߩ&xO gQ\by e笑hVPm̹NX]()k:k0.)~嶗Hi3]}i0pX'?fl')h&3uӔeГwd# su~`OLNB4Ab#4@iYVV#SAu RR"Y߯YY Lpb;&r|+*{/0_MR FP䳤)snqӀhW˯ D7ƥ`f`RuΡI@sG?BkHi 3hvAyeD>uiirc5ٯ^xU@y 0ʓ7ɌG&`W/48uxxau>坲_*uZNJxa*:Б9w`;fJpO9򢊦|5*7?j ˒y_k5EP*D7q{H*6nO!M qYh?Eǭ;J?hVqGq/3Tש:ZY.SEm6oUXEۀݬ2tf%ӄ^ /s4@]L8Dtp&\* r 8z 8@:t'EAh@U!:ԾBŐjXt!?''k?#ˁk(`a[L'8}$ (/ƿ -em[ .~wdӔ՗&/Y,,?[o =5jPT1 ܿs?#mH's?rdFLYFkHwՍך1-ic09 jP ftypjp2 jp2 Ojp2hihdrcolr"cdef:jp2cOQ2R \@@HHPHHPHHPHHPHHPd Axialis S ]@@HHPHHPHHPHHPHHPS ]@@HHPHHPHHPHHPHHPS ]@@HHPHHPHHPHHPHHP}PIck#o3N-f/wL,@@˓kkp˞y4g98%j;Fhώ7$bBCjC"mܩ]s.JcJ:'m޵s:kfLA xpTH" .y6wg}fGH5o͋`|nN wA/ms7f?r0#|T X/g4e\O@ pܙ|;[oriv"? 2keBj>8|hٔ\ } z~A!މ'Fr: :ƫ-x%k6tO\kGϲ7]vT .^-_5{Sg =غgЙj [ D2((x'ܛ fom !f-NHYj?kRrqS(RyI!I;y$R "/ls}PIc[ gE 4$ n;\!'3Ī9Rfڟ/k30 z GbB<~@=Y@aʄY2DaSbu^Hؚ8õqZ૗U*lohM@z̸GOPm2dUQφ%DdG$2KR&׫-D 7C?3|rt}WO9DEէ^ݏT k_:VޗcZn%L ~$ߍ67Z%hXnqh ٦ etɽXk/hx^:jJ>1#8|¼0p $Gt +M!1O/c;F8m1+RfO~vo>CFeSDE(N60 6O)gDGLSIFIO#Y@}d:59s=AQR?v|+9fwYϾ}'pNe䒴x9Q3}d&1FMWb8ޒs=>Jt/ 1#>7>7U6UQUl߇-\oy*I蠛eiC.mқ0ݻ|h4pb 7. %:L,[I$Ę>w֎ѷD槌 i4c{z,>%TH^fw.Y ~I B]2ZT69fuZ% LPefWBE4wz1m. U R-O+.Sz3g_5OOk]B +uͣAE-jI֘VZGjG[F&S(Mv|.tib1*\:@[f?3MRhVJb!]"'v ]\q~E*(U@DIS7.s;8-g v~,еuiLt)`c2-&WotB^|bWӍ:Brevݱ-~&1某. [0%gD0`;(zN'oPp8sBu{H%0O|]34,e4@J?޿4<Y ] ϿH'q'r tEjE┬pzsqwDhm&Em!02+AZ\hnI2~.zy6-!"d2ʳ^dE]19m@j`[CSUJ*wQ jovQt%{U fF3\ ,KnΜпq/c"yKf{>dD-|tM%@}4ҎO[53r!{KP~T vp~"[tCKآѻ?"I8 MIzM:Md0j c%xSbF\ˈYH&x@xjz&PfXq]>z5=f'_8%bP{ww6J$dXj C';fCL`l"m35/ 4zxx5=el6~U)/ۆ0VK&H#=rZ޹zg=h?7^p4P{ZhaL}HR5+A#UɍsROm?G{|X44{/zs^^q;5H K%^?m>>(B2#6Yy% 2A-JfX>]<Г§)L."9d-Upg谎>-(2OlOBr.>& ^ )@˅faίN_ǭKkQj O|K܄[[9nz >mfiΊ>a;*ۍg^Яoq^p3%1)B(IF ֚VĿEƔ6d"*뛠'lpEXKtMf 4 ï-=D8I7[N٢s(l$;[;W{۾_/,ڞ"pT%g(!4S*R,=8W4<uD[އbE C;K8msED .F_ }sncNۋh LOI0,`Rihg4[SS?\)*܆ ̫Guޤh";a8‡>t 2eos;@Z VV)\cauW}`m8w lꍜV;4wjG>^Pg*Y}%a6<Ӏ$9~Jt&3*U) Aqw޲|tr)N,kVjgfW:'isY"Jx-[?1K-ꇪN3Y ܹoSK>de3r:Nϝ?uko tiz"Xt#t࿛}Z; AZksggdc? GhXE-V5@ UF^'K^ilT7P]=Gl>D;:W/I&sD>̓<%^;>28:PIV{ ρF:L$ Mbdlo7]bǫTB]P!w֕Ana'"[pB`q{)dM:p 8es;\ bdhUlL h \GQRQz~ Z @$_DyވVtA:B] 2ںW|gAp7H^<1_ݚ앀h2gpBscOܢ$*;^]x4Lu:-Tt9]oX w{e7mdxVa,$ӊx-P ˼"oR,ެSK O/izh0 Q#qDH09c5/V٠O4>q`?ԦUVP4v f"֒հ$=Po=oA> hUp|t; <~i XeO/[TcYǽdל#ʇ j4Z' brIdXM ٩m' D'^udCp4 d{u >n$Ʀd<$fR4)u׫mxߖߖIY6#?Jtx u<9I PUzB[#-K<_re zM?YG#,;t} oϏj2{Ǣ_!IbT-d@Xf(+> fv G FON;Cx@L6Y1Aǩb k{ԫeE*m Hާ.M>n(G?*D~Z:hr}F'lHqYy[ &s?Ҧ/`vvkUD~uH[AsS~*S vuJvtbR1Z#'U\#2sG7$8Z \)Uqzapcg6|R{C[#'{䔪$3ܢܰ#u$AӹѮ*"v~#4&Y@*M}f^&Y)!7`qa ]7f`o?'B5K3 ڌqYN󫪜-` 8B\oi=/vH21ͫZQ2* '@֭5֒P NGf/hG&\+o?12oaX[Ŷ-X}ؓ0eU ǹ'F3MU߸k[!R| "~s6}YEAOXp<7*Om7`{C=շmvn{%O4)2@")TrfoD BJ`%;'NXC7֏ ޮo4h^dU[U*g*_oevJ/uUghf!uNE] 7Gn"vO~a{Dsjlq- ogDl<}&5rg0Xӊ=GZ_7Km1;0k%u}bh:lQ'çv(#Uɮv<,XlB%XeVu8Nu wžpV,fM vtM!WK:xΩ@xV9k7?#Y+.OQGP {5YL2ӛB(Xm?֥ŽIzIw1+fܴ~~QK[?d3/PHt%-Xr-,%9:&F"?3*\ˉWFmBYVcMJQޮQvۦ3nf-#5.?񼅺8Ƈ fӸ3mr&ۓHlO F},J#qEqSI=NJ-K\Y}L4+KUKLTAX*㄀a3w@C̾ipI]t%k8r$a| 0 GkTn_A:6߄3BIfD5Cv A}Z]efd˿87au=`ԁZ| X(m$M@VT*אmi Yrj3샹 q^eʮKXG V  0 6sTJm-$/{u%h9XcY,A2)0]h8 ;~¾E Β8p5^YN} APiL ]TM۩L}&߾`L;{})@Zgk4LW\6\$1Jz ^|HfEǗ&K/Jb댷CSoZR9,$ʲD#>'|m^2"HXq.Fop$#qK2U=q|`F)>=\2kc*6d]25dzk~O S|=[d,|Nrz&;F&POpUdqGhn/s:E=M DX%0920v(7^W1!Qo>ȀuK0iKY^Mt@CN *i WsW|;maw?_l J4QN] vT!Pc/ɟV"V0YqY_ae7:kn>خnP(u-(Mr}I{p]8Qqq?ke {̀%e|OMI+XK= honԆ;UʳW_d N'ΧX60%|Waݮv\jL_Pf!:u1Ő&wO?C'1mh/Ś,z ?[+peW_c3%JmV(*c bWU2̺ADk/4pljcoP3 MFbaIW͒n|&2zjm5B9.NCq)=<< %V`}֒+h !M!g Acs8 ԧHܾMa_`34ܐ)}'=4 VhVfP <|̒ Z[,T|v 9T)0Rv<]֥XhO%k;87D[3T1%u28N# fF-lctq2r'BXJ4A)"Siy(b?vq ٖbb6P)R| eδҋQճV5%#f%P>kp,5ûSASfXɗ3Sq{_Y=O>nD$4[n/GORy'ַq^nm̍?<\)k$"aUwPItޱt Gf'ϡ$}ilYyKY 2nu#4g=qw%񠿭]`W^DjHEiQߌ:ȿaZ }ΥB~T/(c{}Uь?}[fwH29X'Ec"0L׉ϾE}Ƞi,IYBtWjQ> y(v4x;iU1\ŀ(A`i/ ;N<%{5zNMPS Pk>;MM([|fNZ5|8b1:z8mOWv O~,-HO+\U.Fl2Ä>%> 92օ;nyوrcԞlv=7,_C^4L$&U/Ƨ%-}#(.ϳfJ"9|Z(˖PP2=C)87l5Y4!xdxr6V 2l?&;[c1iٚZh[`O-UDЭf+ۣ0mGd!*HU*+=U&O(ac = 7VS<;h.Jw>! R_2K{u}|<~+ xݵtT?_יWd0+$zV}Y`21\YjIè9m?>L2]⃡B]JstRFWDSixh(o"AJ)\U~9'bS3(i+pΔG^|@>HA~m`*|Qďeu p07J$*6|2{Bn ƈ*[cp̽gA F< 8_.\QxDfN[zyCz6dzj8q>"鶛J57jɽhX2B?ׅ l{bsZo-wsfZ"<3!!o^m92*wY"hɫ+`RiCNrsgBIumjhe9tLܢ;Om] p Aھ@Fg1#;b<1j&mIw_4_kȦ>?BQf&D&`A&8tv>U絆SEE&$rQe;bI2+3[݂oJpƸ>eI鍿 p7k@—mae@KIvaMtm$ˑ=xGB`xet\[{TOQqad8?"|XysM5>@(r#̡On/.Ksݺ5&5 0~{7=̠J }s?[ lc8e'PcBo_A7]Ҍ^bG8Q]6$Ti.hq XqMND*1QHA[>$&$`ciߌEXrJ8/Q\+<.j8I`Ĕ[ sInӖahc=\`ƿZSFkRQළD}FgԤ2?TJ&@A%| @wi;@1H@sdQWjX .W``D|V! -;GRr ht@u?־02xoVXv'VEy%5x]vOHZQ$9AIhtU? 0cyd 7GƝ32 '֠VB c41Va_cxڇ? &n)ay8K3 c.D"362,d#ٿk\|,!%js8lK,R7hOӏۤ߳K2t44K/oߢs"}7MJ!x&!< 4,[oso$ Ѷ7lBao`!z'Wuk8GQ=PHX-v%!2lSX (I8 :TG_o;TC/k5PuآS;KәXV lO`aW0ӒK_WuBB}Rm;XcY`,Gx`'"d}c%Y&/8j4%``<_H]]XZfQYWK[Hi“vj?lqdӔQt['@c/ 8e``<;eJ:5Mf߾R(2y2P6qV.tRY< 0x7gDg DK.DjIS Զm_3B#eE`HYB׳$") &ko2itzѾtu~D?/>AkUb^*)٢O4@i*x#m"RE0)m՝ZpQnQcTD|LgSyS{5 -GxT܉97H᠑aF}3E/7񊕩=d$$X(1.yd><?"$Ɏr -?RT=e}=]a( ]3Gl ݰUYɳS#bڼxZx1ٵlř jeDo^Lq19< Sr48OV0POJT4<ˊ-PH;ˈ3 'ϭ Ix^?"m:r^ 2%܌{-wf3࢏JU>"Tt),qG/XIZ=Ou XDu>HPI)*4*dgM<>}ՅoK' ˏ/UxԶF`)p$IkmìkX+TES}>u |Ɉ0{Pki[\ޙ2C \mmFy]Cy1^{F>X 띋=)Ia 5=K+QEsYA97 s]&,\Ԟch̎C@$J"M=fQPVSNGh1Rk2y !ջlʪTX>8t|2jC%;gYs]# !*Y8q&U'!D6[Kl,HP޺nTM ?rBhF'1cկr^cKC]"_ %vD)[z] _-uv)%@'NJw:(II∈^@^חl7|{3hL\'sM &4yY&t9o-vז* DS"#dI'Px rG KNy0Nu%܊Z~"]Ub?n[k !/syH=`pEjeQkˋJD<Փ0ᮋxL TGpMFvŁdO1 Ʒ=%Џ{ pֈK|o3.:s oӓcODm*S@(#'|tb9sᦁ<<3,G4m.Y夆/]N֡oo:^])/mefDӯ)6ago hP&?U].r|;Ÿ!uz.Q4V b|Rxt/֚c OE7&R& W3RR׸@V-tA !;w?9؛6F\Iʨnc]s J0A&x*MXYU` 'E-\ܯ|f }Y F80 K^ŗ^3· )zXZ-p#JHxLwLn1r'g~]*.2/ u_>ݹ,'Ѳ: 9n?13"$ t#\!A2.讽վD8Gaי%S"!#2WۥЈF&˚ݶ_kSN4&Ysfϙ>!jFQ'vXހ6H/9B\(2,:}(6j8I9Lsu%&F; 3-ƞ}lC99qTZyMVCj)n{3l`1H-%`q~:>CV[AI%"2Vš7`Ӏ.V:@}HR]Y6CԛCҟVw.[Y&dJ&(O:[rhxS+ |0dInKNUX5UhsXPDz 2~s8J;6ob*]nۨӇ[<]8}i?@~ 5I좙}{=0׬烶5R-5y&!)7tfD~%)*5.W<)9bf UɵCgOa-QTVX/&p(}ΫdV7Sv~5>o[&u+E?38^6~E^rވ@r r^~4Нzrx ƍSDL(74F *~Cn,ކ]/S[w,9AfWqI䢡;)u yoi27iG C+j[:נW 1PJP97DIH~K4EZ$q-?VHV?2ǟ3'Y0'e-^fCZTV*.2K6'Z~jLM[gZwGJv+AOY r'.cV=M. ֑f_Ogr`'z=c`6^߳Kn~!ҟ٥YQp2s"}-MJ6_Oj)$4[lgVL+Fv~ׂfòuG˖)Xg{oM DTU˺X3s~3mpnM'fLzV7;;N~ rHLi; '͊ /lv0`|>јESgº͎"<Sl`lk.vop)Pb9zw$^B2WB<iZsN$|YKvG$g[4p=(s/o2O-VKOwZ_x;?\pD0;gN .)X(Zz\L)"Qdwh>Gx vFlGM6!ȓ5L藷/ԴAZ[; pF4UyA?mphGm6XM*NNuq@Աj9MuyݫũQbҭNS(2 6 f,)P Rm W1HJYQx! MŋNlɟU^j틛R#S|y&H0YgϠp0.x.X:6a1ݑ7ȦnN{}<„}6%x'u, /}(1/!L#cŐz*Ydg.߀Y{e BBk.`'a]U솳VnsK\ F'x$G{1on.HTµ#ʚw% ybZ%nY>cX`^7VC:ywԬP/ʊBoBi\Wciψ^\^B&@9woͷrzGQ-C})WTKK)MlXCASmQM(A);~0_+\602u"2n- HD(Ռh -Z2"F@C]7ZJq fn"^=j]E-6<ߒF.>jD$>ZkS/儴m[a_ 13x34*3f~ǟ&y?Yd_fWfJuW )s֬-l-K)hroGU M229*3:>7xh+VR-옠3_D["H0Auwaw%(y|AψdwGq]8.xì7E*c K O1YMe?N eiBݫD# @j3gPj^'9{8h/Bl(N"^em==|79% vՂ4$2iA( Y uTRQ{&Գ8"@R})k?ڵy;+jwc13#RBByz_\ۏtƢjFz*,$reVUi,>/vM5ڙ^ wQt_ſtpȝsj!|32Ufbt] c{pONwR7"9׆Un5ps/ !{BdZ4竏.\JpS%H+sUoDg0m$GdTf,{^6 m;"Rz: -"TgĘ!*K2n~vaԅQ_wl]xH@K-?65ݏzgnujo* _MFiGy,aER~"dS&ifxwழMY(S\GhuEDM%f4 "PYc? ق]v#@̓J4g 6d僿ʡw;{^\ A>l I][3+v̠ȭsDz$>1*E(1RGsu E%6|`T[^][ %WrSMBPߞ/^^~IwgS_o.<`6 9DQ.zC#;@5&*k94lSmPoWT:8Ycu !@FSVurD{H|ۉ ڈSD*b0 ;Ճe =g5կNZ_}]_]7IŌ8 N!]C}}+.Z8k}S"xUhESi8Wl-ʸ7x_@̲ H`p6TW"xIՂЌՎ~K@УI#*8)K@8Zϻ1$h|0xKstr]crSڻuLVuE8wtӾN=ZӶo`Nq }C hNOZCQkγ9(ggytz Y/UT !V XhOŮWӮek xXcr/p[Sͱq9p.NV8GK,\٬\Ӟ[p*}jom?FHQ 7OTȭAwǒP?J/k^9 a.9A!Ky$lFY/HXQ|{\"Uk*-> Q;3 շ;]~9mN͹-:v.M9GJL);k7D ;Bp’t}@ &czjo'v (]|BlnJ:_GO:(-W^~nlw߈ۣ9f*:cì`H\FX?,%=#uK9LTX񗠬i (Fc$9"UD܉yѸ3Fk<(klav,gj,`)?"*R. zօEIuz;=YmQ>UGy@P9igm7})Tܥ 8ηC&0yQ.Wb.qPl5p *z&-J$Z]׊xgjUk<@׶=j>B`Rh6!\[ю*Foڇ6vD'LtJ}8N_{Fݠl=> NO m]MxPuzĊ%yO2Qa`q2ΐOȌ3a5o%P&2'Ӳ~4fed?H;kZ;à7#t sbPJe=G'ac.\9eW6Ix⸣+ mk-G՟RcZB+Kt;kh}2+^ 'V{WF ΨP2[n>B^^?PFZ/pRF>X 띆Sʜu4d r^()u׊5a7`hSZ:N5i'a&yopCC\LN2OJPOlX5ˌ 1~$a*?? W5% zwt֥ ӦnH) Ζ/mcMQhz_ڻS֌# q`xL\`yk.tNԇqf ٖ~1[WnwLF%(+VL[ux] 3u Bc}Ox'#vf7'So;꺔zwOɌ޺6ɅZחD0f)tB|9BK*_Z w o#k(/ZWv6|&p,b`z\]eDֻ.?Fj8op1/ۓ ڣ;C 9 rmeR*V8 >Z+8]ɚ\(Ly4ڏ} n?-p"|5Xg"˗eL p/Tu_׊aL"L( o|FbGgn/؛TgV3)f÷R$SbsjJ2CmNR2q=lCT;m 7m{c&p+uHBF T›(H%Z͠)'8(o (e⛺IBE|pA^ W&Nzuk{Vi)lW>cߪUxz,tt2RleW8vlܔF6Էu\z@AWpۅXS8dVv}U't8^G> HhFFPiS;lSc/:_&Wȡ\KpEFҽbYP7gƵVmm% X5%ۘ(&̐DAD!2XQg+~ >=x0>ɕ[F0Tŋ4n}`ɚ cG Y0^6s0+_o9F*ƒ*6˂-J_(OP.m2n4ZPbPeT"<iN `#h&i|QLI>A1AhDhWlviXZބs2vygvx+7QͬBq_'ͻ"g_&| 8܆1OhSmNøy}RmԞ3z5="pje0"4TmF01ŎJc횒s,;p*'RbFml\I?;"MF @~JLGNgrH~eƄw8 !ΨqE\3k Sf-C!9x-w՜n=5(86+%ۅ5aaNo3ӛڪ~rvZԊԓliHY]hgqDs^[w0špֽtځ)3s=4eq'>JNީb@IROӆisB֓: 5q) .W[E<=zFp]: }aM׽Hm|Ǥ;l=>#kwΟVYN abJ}nь3wYDT y] r7Ǔy.EmxҺv|#AC6IC bWZ3"[NTSg`lmrAvi35u8Gͼ&`H,ZFft/7BBnI$ u“Yڙaҝ&7S@)XqXCK 8Y3 &S?0sϐےI#u~*RS\04[GQOv~:[VšEke!dkŔ߷&v 'h?nznqb&>$WL V&B/v8=x'*nFk(εYOK8͚f]Ψ]X q.c'DJSwErC"v8^ (^tn%@ѹIS{&ցlf3Hr) <8y IXSY("vb$7vFl>N^t69GuE+ėUJԢT5A O;Z &\r,4gcl ᶊ Oi&@6ǐ ᐟڭiq&Tf4-| ] lW ߤS4>-~hmyf"Z!?VaÄV׊}2=g5pXrF*>ԅ?AAΰ؇i[c2 ;Djg'h<~pDD@b5ˤt&󰀍ièAqLЩ.\SRa\:Ak!ڔ力Op߭ŢdOx$ft8]u[F{j^@ꝭNC ZJxjb~i**X؍qfi5OjRڶ}5,PM4]0^T% ,%1Q;M>2_6^Ur8owTkTHЧ2GM8'Ո1TQSog#$MI~\xA_IuNMHРےI$s'Ϩ04b%|E 0[[穀2Rb@cG꥝*P/" y$ېk 4&0^Q f ̰GIC_heJ,+^+ܷd5֔@eŐg0NWC1tX1-SBs̀b1 5ѩdg@Ρј[1d-Sa=vi 8)dic]ˌN+  S Cʃ^R5ȏ,6)墧oN2K s?*guMD(Y d/H;l%^.'lD|E6aՒʘ2Oi s|- R+}[ά,]a(h98u{S˞tKZ f9+l~g55V^v%'? lY.Z&322A~6?'Y*Vefstst@x܀Ndخt) }}4nMvn̜RpcZ?yQq +nqcI#v߰F(LL 8.нξoc#g4}ZV|8)MeW"2WN<^Mn\;*/dN8vD  ..r ع*֜wξ '?9^); ; E=F.:u:V_Qם3ƬLsX~R*/ߔaL}{ ֶudҫ& *ZWOt" "ōyGel‹=xUmEbd-a{8%{'[N/d] a$:XpXkc>e,R~0\m[4="~k .B+nsSvaݕ M`KC8nlm@.`AaWZC&~RY?=%Ɗ*Rz vE(W_ ٲ[*T銒=x* vFpx T bVԺ0;eؤ@(:zy!Pb6I"|zw뿮-^ EnSh=8̦Hw PSLw]M4!/ERy3,0ֲQMzCjn~kbҼY>U-emWniیRGqYpdIP~ُqFG(<( X=p/cmIWuRxһBU,a{?iMc*L,}?ȭ:U{Z^^*5 0榺+ѾB I}(pw :}yprb`*ё-8ޢ[Of-alƫ󃺋g^\$%Cp1B]u4t j6"|Lp4ϡ/އ\_I*1 )@Xy%/NtDAp^mVvXpGp}gYYYKhp,gNVaN}0^–iS*Ą2AC#}c~ED`'Fϲ"ut6>_jݼ\T. \\Ӓ];)r4C" y^J! ?nPg-+oEagʁAKo.͕MJ4nE}=K[|D(˷αit~AA-Q3X͸  dVczHICHD A ֱ?~g_d4v cN :/#p 9aqls{ F 4Hctglƫhys6s(sa1U6.,&Z 7|`Oy&ܐcziv[ΨVej L!> ?3b[,'IkkWt#XHKV(#hs+#|My!֜zF/ސ'ϰ8220Gm{c]C+vBîҽfO8 }}WgHO]YAoy3*w7Z)o׆b Q\O\iȸՌ ǥ.(hP ,gу?=!&qc֘ٿw"Hvǧ괟9#DŽCЪo ;ϷrUF?d/]|f̶ߤd G . 0("/Y"jP<+cFX1?A^}d D%dO|zO7vݦTW­M! 7(C&~H,Pq8JiP3_Hnv\S:-dվ©k9 Ъj#bc@) Gq>I&Qu:e˲X[2&իӔ1踉.r+ehz?&2O8 Dg¯ʯ8LZ f~uT(.NsTDU$Ox=&,0 V&m6(r\tue/(Zp@L} عtE5)*V !n3h?Π \H|GNj'@P3e-iq T5cYo1Z[ҫQ7`З݆F1r7l4=YyPn,-A/~ں~yl D&cz0mG)J%'+K>ت5~RIku.wl9bbIS;0p./x+rr10$weM[J~Ѐh(?F˫y5T>><26'IuF,ĿC}(m+~qGYs~l=7r1T?LO-RS~1(ؘؗYK`&9ƈMi2i@c-6Gє|̌%ʭ:ĴF7M@НQQ6.h˫.c;* DHI "0sKBNf_M$1.N#8ݻlt?FHQj, m^UsķyB[&V8HWgnk#TiLVb> i > ۮ϶E`%>ӌsM۩T>.U"D;XFFϯkHXpbAgဪKh{>eONJJP&} א֊&c枒hڥQUn$`y1O!/ H)x6]ϧ;g+?pÇDz3%錣R~X1Ӧ#s"6>M˂?satQK @7ʰ=c6]G>Κ7<|PtS_oShyyy^i2"B7RQW@M1D.\ pzvgti2qJR/dq+ QQHmtOG!RÌY?̄`G_$``U6fUQZn2 Wcʡq· J#EROU!p,ďU>XUDȉ?,l=eOinEu܎-DXx ڸYd(dǵ2X.QYL$y#ӶS76{hsak] &E)XņHsyÔ:-m`d=T9 Le' P՘ Ġ 8KKY[έ)cd M{Nd jF&es[*PKwX@jgp-5ˢ1Qs2݉8V%i7|Z^WǂF?Y1f v ah/x5#O?棺 >7%h ؓWbjRugG"l`hGs$>j6pXvVU50QPX!y(BN ؃dFy 2ǂqug";5rQ]Št~<ȝ1!zAض2.#t%{vs@Xʘzs 5.mߏQ}%|c=+{}wY2TzWv>A$DFp it^ƍ@J?vdAWe-U7 KH4ʙq4XB/Dmp{m3'6 fw>(չb$J%Z`%9 ~uUIU.NދHT؂ZHo=ņ=$.}kӎoH\e6kPd5y/}v󥐇r8>ƍLY@1#PpK}Z;0x)rڮ%+$*}L2l~0!(e6B]aܹr%Mkӟ,$%t_ §`g;^t|#nOl>/sbY{gqƷ 'D#ޠ^HF0Y^f@-,@7=g4-6.61tw35i0BJbSӯ&{F^ByxžğQ+`ޱ\dRX(MO. 6sj~;6/JWR8o] EhALdQe`s*Ȓa !*ʩ|P:Z}e(dRWG4?ub1@R)_`gb kbpf#op!3)l'G?k0E[]a3_JHW ?.B_\qUg_9*M:d 꽸~ֆ3ioWY0y,?~+>"}kDHQ$x1N b~03[`4\(0K^ uلGþҀf(dhF]'#c|}!KvLnn5W_7_xr9kr+loJCJ@BN:G^P',4 Nuy&sH9gx]f-F5ڀBLC{ܬ߶u!h8CY@H՜g0%3[6_~GQO?7,$NRIT#.XQ}ԚmE:4^WF 4_V^2؈nmRB7YL3\`5aaQgY| pt)]ocV&_K-!*ʔ!0%yܣQ́}~3 7G&҄BFʤ}IJ;¶߻ĤGM AI\f9[奍v*%WJT5 +FfubdR+d8ԼJ0ŧۧϊx67t&-+fۼTƋV{UV&VPKnSmB 珱:@m*їY}[Zh<_Qh~?17/oBdJߝE ןWfgC+x}g;X2t"0xM#   -=whJZz ?51m|&DB_B_l_H PVHٌw2H\X5BC0|yXAjpkXVb-ҏ6I&W/k)qJDOmHd/E/l,lT u hN6(fY9òw*Tn{DpӬ:>Y`MK6"NfCe̊:}O ") |c!Ե@;YȊ< W[o!Z?u]1swM" -pQb!C:P*5̿ xF!6\&(b~uZ6l\l.v2b,^QT8PeR3Á?4+o;Y@) Ta?6x$SK{ عtE5)*Wd3#Ōc$4a#ԁCU` Io68^⫰UE hjya{NC\}o(qf0[3 /n` v1zI}R:F QmM_'qg2E.~r?i$ n т8d(9}J4r˗(ߨ.`v8K:k<AyF]pNJ"g{T-Z:cYg8CK`M}UJzg_DwR-/|HS=.H]FعN&6ҏ_X&u|?Mu|imן?M:3{毿McփtwiM&?Mi7|?MhSҰzat3Gn" aK|zeZUaMưwk^xp7-d"l򄺸t?&M;l^f)jl52v8n}ETl/̬OmvNRG?qgWRSI a.;1@7I;Z+JnAD 0|G+rԑF=~ 99041F,`avZ/ ?ŭKz,NZKjAAoSS[.,DZė 8I GwGHQgAjSx8>0Zr"N]>z c.O E&+xFPU ^%M@?<}7YBuK^W|dǵ5ZfEYNKQ밯mV)/mfmp}' AT|.qa],xEsWYiU{1Ĝ $|ZX>^>P`O׵5JH9)d(ڧX [G%k (Rf0 p#'@:kݞҔ=pyQNkm+'h(h98u{S˞tKZ e{`?ΐo][>=ʂLt_MJu<788~AB]h/o'_oZq, Cҹ#b,g~}t+F‹S}@8xãeN+{ ϱ|P;uO!:#p>S'Zy4E%Q2[,Cq1|XAVc_& 8w*Rjhraݥ%w)qr,8ydN8vD  ..r ع,F'A2Z_Nu|$ޅ( gn9jb҂Hr_ɭF'٤'oolD*V %'(D`aPK魺|8d͑!+QWWTx}JZ[w3}S=,#8vu&O4c55}>Xe[f0d+ϏGDJgK7v7.n&*S;8r/0aDWEZs5Z&Cq2CF h{SZVXe3z)8-ay93uVXϵSwf=]V2$A@w2եMV 6b$ds߶:lW~|2tn0#''Q!3wW -E $%hp |*HKY _΍4/sL.{WLn}c4tS~.u9a$k:`"QjNP{0X4!FugUjA jdB9#˹WZV,U. O<>c𹺎D?":>wTř&_?. \\Ӓ];)r4C"'r= D0__'b 3"xuW[P '" {^o. yb ~X4Sp9m__:Ga-g2߮̕P;^i%a}0usa~N=9Rm_J{ڵcUwSDs7<lj+70rvU_g^n~Q[Ε?92U)"Ɨ%ړ腿Rl\|3h L!> ?3TcB#־vH}ЍfvG"x " 2O֜zF/ސ'ϰ8220Gm{7+a+{Q~6 !1lY7@s#nEfklpC9 0! N+?fx994:jZ3uN60IH_A.ZMyWmiUBthaëٲE?HC()̩u.zvfVv!\s: EUrf=Lxo7g޶Ll;f3 YX(YaB9oTvL*Xy*Tz{" y`ӫ)o od9ηqaCc@) Gq>I&Qu:e˲X[2&իӔ1踉.r+ehz?&2O8 Dgc\l^mW)JA/}Z~6aBЭ.GmDRie5y357^wjnߖE& ĊVek+)!:[ 0!Ȝ3g\tt䮎9L} عr 85_GΠ \H|GNj'@P3e-is7X``~Woj?^(?݆F1r7l4=YyPn,-A/€] ں~yl gzWD+}'+K>ت5~RIku.wl9bbIS;0p./x+rr10$weVtFz{qɉOUl0eHe1)Sna81ˑI~)ﶖ~3 /+~+~WM}iE_m!m,M(_B,o}E_n}F_]?mع^& l \Xًѝʕ])϶Bay^_ GJ('# 9~rMC$?P7nZq%ONJD'lۅT'Kx0GIjD8"r"`2OV]O0R_WzKfEX r !ˤ1@KV .Ca -f[= >dӉN Y2d$iW25%` ,yY{y!M5ZEOOqpPaPG|r%pud`Kt椨p!nst;?0`⃂997@Y,2G:_Ӥs8Abβ؀cES4ƎEpysSOx;]ǃYbm 7bc\5QO!F;<<csguR`%?c2,iMzbgm@Hy00) _i1,'"X6_|m*u"5Rm^p9̀[M1>u2bM 2kZ}Ksu: @?z.dĻMe  fSL|B̡) #z)d䶗:躓/RK Rma"3q sl;{NylS͏CFG<59UTMkbU2;, $6F#ycz.n؊[lz߽%lp$Y/!l8n&mNi%~t` Zy5KeM ̋ N4WԨd.: _s1})|SI'Uǃ׽#[Sxm2 "{;_l#1~&|MoH}%H~8AVİ#wP;EueND “,r X4Ҋ$ !ۛOpF+ggV]^ rwQH>QSscOs׍Q]!l)O¯gn8ﷃIA /1`"x<\|yrY!Q/d)'"|wqcpǏVi{/;?LH!iO? .̞*{6g 9ڴi;B-s)^PJi[ ̩>IL8UtY@ny Ea~xUĤEV@[Uّ)Pw|"`?}yiNⳃ pکb$(GWl }#UT:K Ua)8ku&5S@xic'.HZ|gƺ.w>v>n/TM`ɪ1F]לW$/ ɃOqő7_nـE{lcv䡮ïɏQ0+ m Lo,3YC.r|ͺ# L%G"D NkG J \1g$oyW`̔y2,2Өb&h݇n?N@Ưalȑe 1ߔ'zBpvرTÐhe^yM$ΚU$ON,<<H1[Y`.[4xY n-WJ8+Rft.uP~ba[,A_ ՍL!$I9)̰ᒅc ~.rī(Zt=Hc uJ;!^ MQ qn@[A3IXO)\sʪ afUN-7,G?.WՌ@YzJ.6fw,O A? 0 9ixl:5+y($MJl \4!N,obkm]3!jtɢeV,} 4pjt9gT@7:x^b5}.5q{1(cȭɴ!?$p+)p~"@L&=v집7PA"e?W<3Bń>O'θgǜDʼPq!LZ7؊f<,VW}!=ur5dSWއL H8"N˩ukf.rK0*}C^K#aցvY] ίE UoRޙR>uY(/HM3t. n4rwR-t*$q؆E@,n 4-c&I9vq B1?7,vܔ:%/i;A+x\yO]Dï{-NLHg7\ZN:݂0+ e%lsJ }jk%h(XU#PMBc*4(fSiuC . a%[#8=lȻzE4Z\ZVzgl]s%/1!NWg?˕3vYbZ-kS99B9uj[OXcw\ahs#^$LBy- kb_3a2EVl䂢s.0YSOe Ľ/"&k#*gqd%9+E7(BY>i~ĥ- rH|2OÒziCו;l|^(*|Crje]p*:c7JS[9ù޽Û{KS#[ ȵGA ^"~~h@Li eƪOG6rR`o<Ud [R(4XݹY7';܍t^% Ҭuu;'d m9[EIEnttlx[2L)ܔ>CiV8yE層FTwOeúc/$/-3Y0$Si,~C@ N):}_!38, z]2~Ɩ)E-qsslU h(ew7p=ȲևSw"cs )DB(רݞ˻JˆJVLM?]%TA [Jh_ I;tt5]se1d~2 oyAyYUA-9z ~VxDb#K$PuԻ+GV*㿯zm{yp/Gź0{ 偐x|Qi h'p/$<.vhK;-H mF11tnO˸4 ' x&Sp:kNxЩHysIQ#RI!t8b`"뚚]aħsKt~%_t .? l@*X3&֥GQOWhkC*lL)ХvwkxuZGf&Nz#h[-/oF8:Z5U&RȮdRcoaƚo{iN,,6UBՈf1~PxA$kor  v^dgCos} vv[1 k\EGn+~bC砽ӌMT_uE}ˉL kSޢR$:TDăT_~m6KI"O5d|q)mioK"<NyuJ8L8= q:B)Ӻ{*a8Y?|3J9"HP+uE d!rDg " C\=!ӔE߀*XU|no.&3`63E&&U[S$9؋RTJ )@m&( ?aǿ^M* ^]:Sz WnO<9}Jx p{u8wΠm~[Xģ&Tx?[aMiԐ`-إ0Jdߕp* ʗv!iDJ? k 4| &LWNfvl7`nj ܸozg_"MaEK%YEXRy!wq6ݹH0v݌O 0w7Xa/~~.S?%J"hN۽ޅߔ-ʭfW+|GH!3‰-bOy+Eskԫ%N/s1{=Vg҆똷o**nc>-*4DI/>at ?$5aU-F\V혯T7'fJ]SGгsbJ:JkDad7-wDs9S^+Si﫷vAd(uv vP:PH|nQ `cˑnf2:F7{7j3~OުGM y=Pih32  #%!/6% .677677677677676076776776776776760776(677677677676776-67767767767667767767767767767677677677677677676!)/6E_1676767767767767767767`)7676767767767767767767 lG77676767767767767767767 pLJ#6q,377676767767767767767767 p6776767677677677677677677967uŅ677676767767767767767768mم677676767=GHIIJLKGGMaم67G؅67767676M ؅67767679 6L2776767[ i"776767] % 6]&76767] 8.6767bp$v@ttttTtpWԙ\gV Gny\.3FQVL=&8l}{Uk}~~}~~}~~}~~}~}Co~}~~}~~}~~}~~}~:0}p;~~}]*|~~}~~}~~}~};~~}g=}~~}~~}~~}~};};~~}~~}~~}~~}~~}~};~~}~~}~~}~~}~~}~}L^m}Kq}~}~}~~}~~}~~}~~}~~}~p`~}~}~}~~}~~}~~}~~}~~}~ 9$~~}~}~}~~}~~}~~}~~}~~}~ ƟQ}#t~~}~}~}~~}~~}~~}~~}~~}~ Y}~~}~}~}~~}~~}~~}~~}~~}~~Ł"}~Æ)}~~}~}~}~~}~~}~~}~~}~~}~ŭ3}~~}~}~}~ŭ3}~Âċ(}~~}~}~}ŀ Ŭ!}~~}~}~~ŀ Ř}~r~~}~}~ŀ TM~~}~}~ŀ }ėY~}~}~ŀ - k}~}~ŀY>Rz3\ŀ\\ŀ\ƖC\ƣYFŀIƿREÆp 9XhuusaJ%)btHl·4$o\ՙpPptpppЏ1-, ==<==<=" ==<==<==D ==<==<==1<  ==<==<==<"p==<==<==<'BA<0ON<==<==<==<5aljG=<==<==<==<5aVFEB@><5Me= <==<==<==<= <==<==<==<5@|=<==<==<==<==<= <==<==<===<==<==<==<==<=<==<==<< v=<(%==<==<==<==<==<=<<==<==<==<==<==<=<==<==<==<==<=.<==<==<==<==<==<=2<==<<42=<==<==<==<==<=/<==<==<==<==<=;-<7"  $$# il32 "174(67+ 777,7%77567%7%$7T|m 757q7΃(78ǃ/7z527 =BCCEBBO>27A>/782'7H7PɃ57Pf7R V̀lZMMM])|n &ۤJ  Oq~x]0@}~c~C'~~@d~V'~~y}~V'~V(?R~xcW =~{~Z=~\~l~Ń*t~„1t~ ņ1k~Ŏ(Z~Î :~Ŏ z~ŎQ6~ō7`ňVG==ƈ=KƆ!ňcX† mů;  3؁[z/K{KKLxt=1=t=2i=΍?= ބ ؙD=݃JBBA?>=͂{= B=<o>=1>=g>=-:ib=2=)=7==)=<=) <=<=, !2;==<6(is320747-7 7=>/77v7 ;==@777At.7D /x6&T ԁ! U}`0DE5 n~w~g~+ .~L1m~Ƽ&~^8~ z7~Ły%~~Ņ\k~ń5ł`+CCdfL [f ҁ$%āR=%G>==947=  =2<4=8it324   )37)%7,"37)"70 37%"7, "73 70 7%77 7 7,37% 7, 37) 7"7) 7, 37) 7037) 7) 7) 7) 7) 7) 7) 7) 7) 7)"07;]7B"7L."7VȐ7\Бɝ37bՒ|%7dڒ 7fޓ%7gߔ7gߔ|7gߔ٘,7h.7m|7|"7;,7K>79oܗl 7J| 7=y7:a7:Z7:Z7<^)79Ht)7;Hj)79?IU_egiknpmhc]]chnx)7;Lnބ)78Fp)79Q7:X78R7Eɔ7:i 7G 7\|78tM)7:.7<7=7=l%7=7=37=]7=ٚ7=|7=ٜ07=M 7=7>7A ,7Gl)N苺]>>>>>>>>>>M>>M.>ن>>و.|M|]M]]MM٠|Ml]ɋ..lي躪|>>'?7?^v~^F//V~fFNv~^/N~n/v~VN~fN~vF~n~FV~~/~?~f7v~V~fv~^~'N~^~fv~^~nFv~^~^~^~^~^~^~^~^~^~^Nn~J?~N~%N~ 7~v~cV~~{V~~c7~f~%~c/~N~ĖƖf~Ŗ1~V~—c~ŗ?~Ø?~Ř?~ŚƔF~śƔ^~ŜƔ^~ŝƔ^~şƔ^~ŢƔ^~Ɣ^~Ɣ?~Ɣ?~Ɣ?~7~~~c~=^~%F~'~~VV~/~v~J?~~c?~n~=~o/~/~{ f~ĿV'F^rŮJ 1111111111=11=%1 1 {1{%c=c J={J J{==c =V  Jo%%Voc1 1<=޵zL>=޾^D=ĄuYE>=ۻuaXSROLIFEFFGFFDB@>=ไXC=՞cD=xϐU?=xՐS>=xV>=1ig?=-<G=)-h=R=H= D=9KC=)C=C=ZC=-C=xC=5C=xC=5ґC=-C="ZB=-Z@=&-Ím?=9KM=9-)=-=-=-=-=-=-=-=-=-=99=-= =-=5=-=1&=-=95=& =9==59==&=-9=&-=95=9)=5)9=1"  "-5=9-)l8mkCwUj vҳK :DDDDD Q]PJ"'^oWHm񳣡?mAVL&n!Z| V99999 7 citf @t}Qs8mkBEw9w $1ȏU1U $u Tvۑ@Ct8mk@/CRY_ZSE24pէw< Wa".%d{JQ (l ` $COPqa0aIaaEa/ uaaaaaa!ז.  ~6yUs Tnsi8[XE>`>.(IPQ)prq j7k׹}{ywuspnljhfdP(]gIi Jy}y{ki^pNFtn&(F}P~97:1G\.J+M2(PR%TL"WlZ/]Kw`bcqd{ddž!aaaavaaaaaap aTnaap`_wMo > BX!$bc  Tk!GR&bǙi. !5DJOKE8$ pyshortcuts-1.9.5/pyshortcuts/icons/py.ico000066400000000000000000005065011471654103100210140ustar00rootroot00000000000000   (`` HH TQ@@ (B00 %I  n Q hوPNG  IHDR\rf pHYsodIDATx{u},0p UgaA hEJ-J(Jm*DڊEGZ4 D7gE!D4aH2I9'gwg;y=>'='ofg~?8H"`o`a ͟s!`+6n7nKב>RdX\  :v?k_?~Z}jSD!rmw8` pO7WV}!ZrI`/X|X' 588m5Xw.& *kG_ :/= ߲.d)p9x237k4? >k b]KF=껿.d)Xi]KՀօ @4Oxu-bp^wa] QA\{0JtQgpjw.dP(bּ`'@~yBujzӀ.jSG ˵SωN>SD|Щ9+UvbR,׆.=ç>KtM].[,FwAKi8k ɲY ?f&i*k?nvā2 \JtٴtIyo .E)k2@ ~Du⪪ݴW[/u3 a@<^KgS6W懈dL#:|ndo/(~չe@>uBOtӿ4)l5lWzה`:S 7OZT~ n1"9nOcm6tIH),6' bp+DZQ:XY,Ƀ1=/3aOuU;k hPhK0\\T,~VX<|PlC[}(k{͓-Ŷ{ڛ Hs5 OJ_;d˵/%ޞ\ 0$vO2rm^\e`u=j? H;(k*kL|o oa 3h.5 n]dFO`., 3V~ ko- 9;ѺvGjwPmo--0R9zM[!֨XֻanA@\K,:$Z}C/.b(k/>m]dBH`{u2{X!.z뿄ZCXxuY !UP,FLi3 P" e8Ⱥɔ 'ߺHQ4/ĺɜ,Yi&f ?ҩmm=$x `sϲT@\[ ԺɤZi@Ro, @tOlB- <~hrm:W,@t$h]zª4Hf{0Lf6 b6Hd ?k}D\O,hn< <'YH LKCtkiw7<5`5UR[mhXdqjY˵gAI=,os#N Z/VspA=q8!-8ö%۶Bm{+$Y%ݠeaےmUyqbxA=qY޾I6hrmW%Z14NNdcV#?"J5󞜼;-/)cWcة*reI6f/1jW sV yt<ǡe0dP}*vت;߲_X;G_ ICU;[ݹe;k꧹a-L1xQ-u;VohuŇ90x@\[H.Ԑo_Ͽ՝Ϭ8aa]{tb҄ ڔlYP*Vwn\dCc1'G6w?w`m;7X2kdh++Ic ih\:i:.#CcNOi  1v3qw$"mJݡU_MM+_4<4=dJ3X.n]> myw<7.>dة|; `2qmVuunOP vU}ֽ̯-8Nk>$v,~X-ƖQEgk12#5Cԗ[6z:(XchGSqΉꗮj]Hڄ7|EAb}"ii4>0]\W|pN!ZrwۊR%>b[ ڴ2:+Vi) a`O}!ݿ{6F ʔ';su_0B"$G4ճKFg\ҏ%꘩^a=2l;4.AF ;7o!Z 5+g U@6mV3݃z;NSA %RK!h{wmw=]h\ʟVl,=4 ὤ@,q5+Kv[ i5I%GOnOjM~ce[PMY_f~Ȩݘ5>_*' }^"I(ags~pv`xP$5k-rův.HB}*~in\~+Kr7ҽDUkn\u`%#cW0sK2V3I]q"Zd ~T}w+pE1XSG&ovDӝIo&K /&oP9qpE12P)*KAa۽F,g0 %e`%',`a۽xt!RBdܝtf܏~ЪL9X"gy Z b0b&^=\(U]"`ڙsRդYKˤ/X&:~E\{5tUX̫ cFߊYNRHܾ=z L ۗ6nj]G :8SU] c] )$.1CJ fH q!&KS,%+$ۀOZnܺPH\(U~k]Djkj"vB |غHYT}hf20:P:BֺHYT}wٺih 5pu;... t\P(UXC*OE:wZ(d&)*wY1Q*껷VY \j]d .bVd:N/*۬ ,P1Ok@ : pYNL 3pJTu!>O :Jd"8;V0)S(U~n]d&껗'kPH;O'J) ȤQ`~8 x3Pd}w@TLTI+-eu77˵SW}J9+FuQ'q~YWgOOWGfaU]@$"91Hek@aecx](pzl1H)DrL c S@$"91 (6M5x>,Gڕ%|xTikx/|,4; ZBrt**o l .I'1zฝu 끱U%-)$nJ;}RTˑ($NJ;zxCq#;8s/OnNo1"3l~,5d J$ Q<Nj4Zk)ݺpc|y<> |eqHx AOŴK x^(ںxko@<]wwpO Ӗu۞(bQ(U]w#7ۭ'wp}Ora)su)qp{x g0tR#8ںxxwSW=:|RemOU Fa y&%p P# `._Bry fa}u.Jx푎2n"cDs@#>o.BcBF}P(U6?elNW珗O3e]5plTc@GReZ:֤s }օ "HHx|˺Nf:? 5/u BޏwJZ2;hM-M BR.&Fd[p-Bu1y0 ?' Ik_J)q]:W7n F)ޞ3%DgY&nP\x.p:0׈_|K>N/'7 >G.jx~ixH#Cᘛk{h#Bۘے(Tx{ '4o#͟r\['|{u#ReSH?Cs2sIENDB`( = =!=5=D=J=O=K=E=8=$= =&=b==================i=.===G==========================R==================================!======================================T======================================k=========================================== ============================================= ==============================================B===================================X=!=$=b========c==================================== =========================================== ========>=M========================================o=`=================================_=w=======a=================================p========a==========================================a==================================T=n========a===================================p== ==========a=================================================a=================================================a=================================================a=================================================a=================================================a================================================v=a=========================a========================?a========================~7~7{~7~7~7~7~7~7~7~7~7~7~7~7~7A@d=================================================================!~7~7q~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7>Bd===================================================================~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7=Cc====================================================================~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7=Cb=====================================================================~7w~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7=C`=====================================================================~7/~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7=C]======================================================================K~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7=CZ=======================================================================~7L~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7="CW=======================================================================l~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7=%CT========================================================================~72~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7=(CP========================================================================R~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7=+CM========================================================================~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7=.CJ=========================================================================~7:~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7<1DG=========================================================================\~7~~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7:9H7=========================================================================~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~8PR=========================================================================~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7}==========================================================================~7&~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7G(=========================================================================F~7N~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7:F?t========================================================================n~7p~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7E>=======================================================================~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~8S>======================================================================~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~:i?^=====================================================================~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~9kD====================================================================~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~8F C=J=y====================}=y={==========================================~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7;I>=i==================================~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~9]?E>g================================~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7}~7{~7y~7w~7u~7s~7p~7n~7l~7j~7h~7f~7d~7P;(D===============================~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~9kބHL>=============================~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7<7Q>============================~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7:jQ============================~7r~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7:qK ===========================~7P~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7:QB)==========================p~7(~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7===========================I~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7C=========================~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~9.========================~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7=>=======================~7>~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7@=======================`~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7=======================~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7E======================~78~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7[======================X~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7i======================~7T~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7n=====================s~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7s===================== ~76~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7y====================U~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~===================~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7=================== ~7 ~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7==================~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7================= ~7!~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7===============.~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7a~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7a~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7a~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7a~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7a~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7a~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7a~7~7~7~7~7~7~7~7~7/~7 ~7u~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7a~7~7~7~7~7~7~7~7~7E~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7a~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7a~7~7~7~7~7~7~7I~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7a~7~7~7~7~7~7~70~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7O~7~7~7~7~7~7~7P~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7q~7 ~7~7~7~7~7~7~7$~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7C~7~7~7~7~7~7~7~7 ~7`~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7J~7~7~7~7~7~7~7~7Q~7 ~7~7(~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7l~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7d~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7{~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7%~7"~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7.~7 ~7W~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7a~7~7~74~7p~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7w~7<~7~7~7/~7C~7R~7Y~7_~7Z~7S~7E~72~7~7?????????``80 ???`?```````````?0||(` = <5<_=<<=<<=<<}=Z<-< =*=}==================p==<=<<=<<=<<=<<=<<=MH"=<=<<=<<=<<=<<=<<=<<<=<<=<<=<<=<<=<<=<<=<<=<<=<<=<<%~7S~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~9څLRMMMMMMLIFCCCCCB @!>K===========================+}6S~7}6}6}6~7}6}6~7}6}6~7}6}6~7}6}6~7}6}6~7}6~7}6}6~8>D݄IԈT ϊY΋Z΋Z΋Z΋Z΋Z͋[G==<<=<<=<<=<<=<<=<<=<<=<<,}6M~7}6}6}6~7}6}6~7}6}6~7}6}6~7}6}6~7}6}6~7}6~7}6}6~7}6}6~7}6}6~7}6}6~7}6}6~7}6}6~7}6}6~7}6}6}6~7~7:l؆Oa@q<<=<<=<<=<<=<<=<<=<<=<<%~7>~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7<<=<<=<<=<<=<<=<<=<<~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7:sN===================~7}6}6}6~7}6}6~7}6}6~7}6}6~7}6}6~7}6}6~7}6~7}6}6~7}6}6~7}6}6~7}6}6~7}6}6~7}6}6~7}6}6~7}6}6}6~7}6}6~7}6}6~7}6B>x<=<<=<<=<<=<<=<<=<~7y}6}6}6~7}6}6~7}6}6~7}6}6~7}6}6~7}6}6~7}6~7}6}6~7}6}6~7}6}6~7}6}6~7}6}6~7}6}6~7}6}6~7}6}6}6~7}6}6~7}6}6~7}6~7H<=<<=<<=<<=<<=<<==<<=<<=<<=<mg(<<<=<<<<<<<<=<<<<<<<<<=<<<<<<<<=<<<<<<>}6}6}6}6}6}6~7}6}6}6>nj'<<<=<<<<<<<<=<<<<<<<<<=<<<<<<<<=<<<<<<<>}6V}6}6}6}6}6}6~7}6}6}6>oj$<<<=<<<<<<<<=<<<<<<<<<=<<<<<<<<=<<<<<<<<~7~7~7~7~7~7~7~7~7~7~7~7>rj!========================================}6g}6}6}6}6}6}6}6~7}6}6}6>uj<<<=<<<<<<<<=<<<<<<<<<=<<<<<<<<=<<<<<<<<=}6}6}6}6}6}6}6}6~7}6}6}6>xj<<<=<<<<<<<<=<<<<<<<<<=<<<<<<<<=<<<<<<<<=m~7}6}6}6}6}6}6}6}6~7}6}6}6<{m<<<=<<<<<<<<=<<<<<<<<<=<<<<<<<<=<<<<<<<<=~7`}6}6}6}6}6}6}6}6~7}6}6}6~9=<<=<<<<<<<<=<<<<<<<<<=<<<<<<<<=<<<<<<<<=< ~7}6}6}6}6}6}6}6}6~7}6}6}6~7A<<=<<<<<<<<=<<<<<<<<<=<<<<<<<<=<<<<<<<<=<9~7}6}6}6}6}6}6}6}6~7}6}6}6}6܅J2i=<=<<<<<<<<=<<<<<<<<<=<<<<<<<<=<<<<<<<<=r====================}6~7}6}6}6}6}6}6}6}6~7}6}6}6}6}6}6}6}6~7=lބIFׇP4ֈQ1ֈQ/ֈQ-ֈQ+ՈS)ӉU(щW&щW$ӉU"ׇPۅLׇPщVǍaGI=<<<<<<=<<<<<<<<=<~7}6}6}6}6}6}6}6}6~7}6}6}6}6}6}6}6}6~7}6}6}6}6}6}6}6}6~7}6}6}6}6}6}6}6}6~7?mv]=<<<<<=<<<<<<<<=<~7}6}6}6}6}6}6}6}6~7}6}6}6}6}6}6}6}6~7}6}6}6}6}6}6}6}6~7}6}6}6}6}6}6}6}6}6~7~8ƍbb=<<<<=<<<<<<<<=<~7}6}6}6}6}6}6}6}6~7}6}6}6}6}6}6}6}6~7}6}6}6}6}6}6}6}6~7}6}6}6}6}6}6}6}6}6~7}6~8g S(=<<<=<<<<<<<<=<<=<<<<<~7}6 }6-}6C~7P}6T}6M}6<}6"}6??AD@\>==================q~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7=y߄HWنNIهOGهOEهOC؇OAևQ@ՈS>ՈS<ׇQ:܅K7܅K5ׇQ3΋Z-u G[================q~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7;q Y,===============f~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7ŎdX/==============P~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7ϵtEk=============.~7n~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7===========~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7҉VCq===========r~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7هO1Gl===========~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7هO8Hh==========~7m~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7چN=Id==========~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7܅KBMb=========:~7~7g~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7DBU^========)~7~7~7~7~7~7~7~7~7~7~7~7;A~7_~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7A~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7A~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7A~7~7~7~7~7~7p~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7A~7~7~7~7~7x~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7A~7~7~7~7X~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7A~7~7~7~7x~7?~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7-~7E~7~7~7~7L~7~7/~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~74~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~74~7-~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7w~7 ~7~7f~7~7~7~7~7~7~7~7~7~7~7~7D~7~7~7~7+~7.~7&~7????????????(0` %<)=<==<==<==<==<===<==<==<<~7}6~7~7~7}6~7ˌ]I?=<==<==<==<==<===<==<==<=<}63}6}6}6}6}6}6}6ˌ]K?<<<<<<<<<<<<<<<<<<<<<<<<<<~7~7}6~7~7~7}6~7ˌ]N?=<==<==<==<==<===<==<==<==<r2 ~7~7}6~7~7~7}6~7͋[Q?=<==<==<==<==<===<==<==<==<<<<<<<<<<<<<5}6~7~7}6~7~7~7}6~7}6~7~7~7=G{߄Hu߄Is߄Iq݅JpۅLn܅KlGiGgچMeǍaF G=<==<==<==<5}6~7~7}6~7~7~7}6~7}6~7~7}6~7~7}6~7~7}6~7~7}6~7~7}6~8Լm,Np<==<==<==<5}6z}6}6}6}6}6}6}6}6}6}6}6}6}6}6}6}6}6}6}6}6}6}6}6}6}6~7鴕uA<<<<<<<<<}6K~7~7}6~7~7~7}6~7}6~7~7}6~7~7}6~7~7}6~7~7}6~7~7}6~7~79p#==<==<==<t3~7~7}6~7~7~7}6~7}6~7~7}6~7~7}6~7~7}6~7~7}6~7~7}6~7~7~7==<==<==================- z5Z~7~7~7~7ׇP>=================~7~7~7~7~7ׇP>=================1!Z'&~7~7~7~7~7߄HB==========================t2m~7~7~7~7~7~7~7~7=BCCEBB؇O?D=======l/W~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7zH?======\('~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~8i^======o~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7J=====2"{5]~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7P=====~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7~7Q====1~7:~7D~7D~7D~7D~7D~7~7~7~7~7~7xT ~7~7~7~7~7~7~7~7~7~7~7~7V% ~7~7y5K}6~7~7~7~7~7~7~7~7V% ~7~7d,~7~7~7~7~7~7~7~7V%~7v~7~7~7~7~7~7~7~7~7~7~7}6j~7~7~7~7~7~7~7~7~7c+ O"q1C~7w~7~7~7x4U]((0 ` Xo )E/g0k+O h9s======<Xn+E<=<=<<24<:{,b<=<=<>>======9V%P~7}6}6~7}6~7========\t$j71~7~7~7A?>=====%yUk81~7~7~7~7;==@ȟ===%zUH& ~7~7~7~7~7~7~7~7~7\֩==^v$m/w~7~7~7~7~7~7~7~7iȧ=:~7~7~7~7~7~7ZL=~7g-9~7~7~7~7R+n0w~7~7~7~7w4[0DBEEf5??pyshortcuts-1.9.5/pyshortcuts/linux.py000066400000000000000000000106201471654103100202560ustar00rootroot00000000000000#!/usr/bin/env python """ Create desktop shortcuts for Linux """ import os import sys from pathlib import Path from collections import namedtuple from .utils import get_pyexe, get_homedir DESKTOP_FORM = """[Desktop Entry] Name={name:s} Type=Application Path={workdir:s} Comment={desc:s} Terminal={term:s} Icon={icon:s} Exec={execstring:s} """ def get_desktop(): "get desktop location" homedir = get_homedir() desktop = Path(homedir, 'Desktop').resolve().as_posix() if sys.platform.startswith('linux'): # search for .config/user-dirs.dirs in HOMEDIR ud_file = Path(homedir, '.config', 'user-dirs.dirs').resolve().as_posix() if Path(ud_file).exists(): val = desktop with open(ud_file, 'r') as fh: text = fh.readlines() for line in text: if 'DESKTOP' in line: line = line.replace('$HOME', homedir)[:-1] _, val = line.split('=') val = val.replace('"', '').replace("'", "") desktop = val return desktop def get_startmenu(): "get start menu location" homedir = get_homedir() return Path(homedir, '.local', 'share', 'applications').resolve().as_posix() def get_folders(): """get user-specific folders Returns: ------- Named tuple with fields 'home', 'desktop', 'startmenu' Example: ------- >>> from pyshortcuts import get_folders >>> folders = get_folders() >>> print("Home, Desktop, StartMenu ", ... folders.home, folders.desktop, folders.startmenu) """ UserFolders = namedtuple("UserFolders", ("home", "desktop", "startmenu")) return UserFolders(get_homedir(), get_desktop(), get_startmenu()) def make_shortcut(script, name=None, description=None, icon=None, working_dir=None, folder=None, terminal=True, desktop=True, startmenu=True, executable=None, noexe=False): """create shortcut Arguments: --------- script (str) path to script, may include command-line arguments name (str, None) name to display for shortcut [name of script] description (str, None) longer description of script [`name`] icon (str, None) path to icon file [python icon] working_dir (str, None) directory where to run the script in folder (str, None) subfolder of Desktop for shortcut [None] (See Note 1) terminal (bool) whether to run in a Terminal [True] desktop (bool) whether to add shortcut to Desktop [True] startmenu (bool) whether to add shortcut to Start Menu [True] (See Note 2) executable (str, None) name of executable to use [this Python] (see Note 3) noexe (bool) whether to use no executable (script is entire command) [False] Notes: ------ 1. `folder` will place shortcut in a subfolder of Desktop and/or Start Menu 2. Start Menu does not exist for Darwin / MacOSX 3. executable defaults to the Python executable used to make shortcut. """ from .shortcut import shortcut userfolders = get_folders() if working_dir is None: working_dir = userfolders.home scut = shortcut(script, userfolders, name=name, description=description, working_dir=working_dir, folder=folder, icon=icon) if noexe: full_script =scut.script executable = '' else: full_script =scut.full_script if executable is None: executable = get_pyexe() executable = Path(executable).resolve().as_posix() if Path(scut.full_script).resolve() == Path(executable).resolve(): executable = '' execstring=f"{executable:s} {full_script:s} {scut.arguments:s}".strip() text = DESKTOP_FORM.format(name=scut.name, desc=scut.description, workdir=scut.working_dir, execstring=execstring, icon=scut.icon, term='true' if terminal else 'false') for (create, ofolder) in ((desktop, scut.desktop_dir), (startmenu, scut.startmenu_dir)): if create: if not Path(ofolder).exists(): os.makedirs(ofolder) dest = Path(ofolder, scut.target).resolve().as_posix() with open(dest, 'w') as fout: fout.write(text) os.chmod(dest, 493) ## = octal 755 / rwxr-xr-x return scut pyshortcuts-1.9.5/pyshortcuts/shortcut.py000066400000000000000000000067241471654103100210040ustar00rootroot00000000000000#!/usr/bin/env python """ shortcut function """ from pathlib import Path from collections import namedtuple from .utils import get_pyexe, fix_filename, scut_ext, ico_ext Shortcut = namedtuple("Shortcut", ('name', 'description', 'icon', 'target', 'working_dir', 'script', 'full_script', 'arguments', 'desktop_dir', 'startmenu_dir')) def shortcut(script, userfolders, name=None, description=None, folder=None, working_dir=None, icon=None): """representation of a Shortcuts parameters. Arguments: ---------- script script to run, may include optional arguments userfolders userfolders returned from the appropriate get_userfolders() name name for shortcut (`None` to use name of script file) description long description (`None` to use name of script file) folder sub-folder of Desktop to place shortcut (`None` for on Desktop) working_dir directory where to run the script in icon full path to icon file for shortcut (`None` for default) Returns: -------- Namedtuple with the following fields: name name for shortcut description long description of shortcut icon path for icon file target name of the shortcut file (without folder name) working_dir directory where to run the script in script shortname of python script to be run (without arguments) full_script full path of python script to be run (without arguments) arguments command line arguments desktop_dir full path of desktop folder (may need to be created) startmenu_dir full path of startmenu folder (may need to be created) """ if not isinstance(script, str) or len(script) < 1: raise ValueError("`script` for shortcut must be a non-zero length string") words = script.strip().split(' ', 1) if len(words) < 2: words.append('') script, arguments = words[0], words[1] if script in ('_', '{}'): script = words[0] = get_pyexe() full_script = Path(script).resolve().as_posix() if name is None: name = script name = fix_filename(Path(name).stem) if name.endswith('.py'): name = name[:-3] if description is None: description = name target = f'{name}.{scut_ext}' if icon is not None and len(str(icon)) > 0: picon = Path(icon).resolve() if not picon.exists(): for ext in ico_ext: ticon = Path(f"{icon:s}.{ext:s}").resolve() if ticon.exists(): picon = ticon break if icon is None or not Path(icon).exists(): _parent = Path(__file__).parent icon = f'py.{ico_ext[0]:s}' icon = Path(_parent, 'icons', icon).resolve().as_posix() desktop_dir = userfolders.desktop if folder is not None: if folder.startswith(desktop_dir): folder = folder[len(desktop_dir)+1:] desktop_dir = Path(desktop_dir, folder).resolve().as_posix() startmenu_dir = userfolders.startmenu if folder is not None and len(startmenu_dir) > 1: if folder.startswith(startmenu_dir): folder = folder[len(startmenu_dir)+1:] startmenu_dir = Path(startmenu_dir, folder).resolve().as_posix() return Shortcut(name, description, icon, target, working_dir, script, full_script, arguments, desktop_dir, startmenu_dir) pyshortcuts-1.9.5/pyshortcuts/utils.py000066400000000000000000000115761471654103100202720ustar00rootroot00000000000000#!/usr/bin/env python """ utilities for pyshortcuts """ import os import sys from pathlib import Path from datetime import datetime from string import ascii_letters try: from pwd import getpwnam except ImportError: getpwnam = None uname = "unknown" scut_ext = "lnk" ico_ext = ("ico",) if sys.platform.startswith('lin'): uname = "linux" scut_ext = "desktop" ico_ext = ("ico", "png") elif sys.platform.startswith('darwin'): uname = 'darwin' scut_ext = "app" ico_ext = ("icns",) elif sys.platform.startswith('win') or os.name.startswith('nt'): uname = "win" scut_ext = "lnk" ico_ext = ("ico",) def get_homedir(): "determine home directory" # for Unixes, allow for sudo case susername = os.environ.get("SUDO_USER", None) if susername is not None and getpwnam is not None: return Path(getpwnam(susername).pw_dir).resolve().as_posix() homedir = Path.home() # For Windows, ask for parent of Roaming 'Application Data' directory if homedir is None and os.name == 'nt': try: from win32com.shell import shellcon, shell homedir = Path(shell.SHGetFolderPath(0, shellcon.CSIDL_APPDATA, 0, 0)) except ImportError: pass # try the HOME environmental variable if homedir is None: test = os.path.expandvars('$HOME') if test not in (None, '$HOME'): homedir = Path(test) # finally, use current folder if homedir is None: homedir = Path('.') return homedir.resolve().as_posix() def get_cwd(): """get current working directory Note: os.getcwd() can fail with permission error. when that happens, this changes to the users `HOME` directory and returns that directory so that it always returns an existing and readable directory. """ try: return Path('.').resolve().as_posix() except Exception: home = get_homedir() os.chdir(home) return home def isotime(dtime=None, timespec='seconds', sep=' '): """return ISO format of current timestamp: 2024-04-27 17:31:12 """ if dtime is None: dtime = datetime.now() elif isinstance(dtime, (float, int)): dtime = datetime.fromtimestamp(dtime) return datetime.isoformat(dtime, timespec=timespec, sep=sep) BAD_FILECHARS = ';~,`!%$@$&^?*#:"/|\'\\\t\r\n(){}[]<>' GOOD_FILECHARS = '_'*len(BAD_FILECHARS) TRANS_FILE = str.maketrans(BAD_FILECHARS, GOOD_FILECHARS) def fix_filename(filename, allow_spaces=False): """ fix string to be a 'good' filename, with very few special characters and (optionally) no more than 1 '.'. More restrictive than most OSes, but avoids hard-to-deal with filenames argument `allow_spaces` [default is False] allows spaces in filenames. """ fname = str(filename).translate(TRANS_FILE) if not allow_spaces: fname = fname.replace(' ', '_') if fname.count('.') > 1: words = fname.split('.') ext = words.pop() fname = f"{'_'.join(words)}.{ext}" while '__' in fname: fname = fname.replace('__', '_') return fname def fix_varname(varname): """fix string to be a 'good' variable name.""" vname = fix_filename(varname, allow_spaces=False) if vname[0] not in (ascii_letters+'_'): vname = f'_{vname}' for c in '=+-.': vname = vname.replace(c, '_') while '__' in vname: vname = vname.replace('__', '_') if vname.endswith('_'): vname = vname[:-1] return vname def get_pyexe(): "python executable" return Path(sys.executable).resolve().as_posix() def new_filename(filename): """ increment filename to be an unused filename """ fpath = Path(filename) if fpath.exists(): fstem = fpath.stem fsuffix = fpath.suffix if fsuffix.startswith('.'): fsuffix = fsuffix[1:] if len(fsuffix) == 0: fsuffix = 'txt' int_suffix = True fsint = 0 try: fsint = int(fsuffix) except (ValueError, TypeError): int_suffix = False while fpath.exists(): fsint += 1 if int_suffix: fpath = Path(f"{fstem}.{fsint:03d}") else: if '_' in fstem: w = fstem.split('_') try: fsint = int(w[-1]) fstem = '_'.join(w[:-1]) except (ValueError, TypeError): pass fpath = Path(f"{fstem}_{fsint:03d}.{fsuffix}") return fpath.as_posix() def bytes2str(s): 'byte to string conversion' if isinstance(s, str): return s if isinstance(s, bytes): return s.decode(sys.stdout.encoding) return str(s, sys.stdout.encoding) def str2bytes(s): 'string to byte conversion' if isinstance(s, bytes): return s return bytes(s, sys.stdout.encoding) pyshortcuts-1.9.5/pyshortcuts/windows.py000066400000000000000000000126661471654103100206250ustar00rootroot00000000000000#!/usr/bin/env python """ Create desktop shortcuts for Windows """ import os import sys import time from pathlib import Path from collections import namedtuple import win32com.client from win32com.shell import shell, shellcon from .utils import get_pyexe, get_homedir def get_conda_active_env(): '''Return name of active conda environment or empty string''' c_env = None try: c_env = os.environ['CONDA_DEFAULT_ENV'] except KeyError: print("No conda env active, defaulting to base") c_env = "base" return c_env # batch file to activate the environment # for Anaconda Python before running command. conda_env = get_conda_active_env() ENVRUNNER = r""" @ECHO OFF if exist "%~dp0..\Scripts\activate.bat" ( call "%~dp0..\Scripts\activate.bat" {0} ) else ( if exist "%~dp0..\condabin\conda.bat" ( call "%~dp0..\condabin\conda.bat" activate {0} ) ) echo # run in conda environment "%CONDA_DEFAULT_ENV%": echo # %* %* """.format(conda_env) def get_desktop(): '''Return user Desktop folder''' return shell.SHGetFolderPath(0, shellcon.CSIDL_DESKTOP, None, 0) def get_startmenu(): '''Return user Start Menu Programs folder note that we return CSIDL_PROGRAMS not CSIDL_COMMON_PROGRAMS ''' return shell.SHGetFolderPath(0, shellcon.CSIDL_PROGRAMS, None, 0) def get_folders(): """get user-specific folders Returns: ------- Named tuple with fields 'home', 'desktop', 'startmenu' Example: ------- >>> from pyshortcuts import get_folders >>> folders = get_folders() >>> print("Home, Desktop, StartMenu ", ... folders.home, folders.desktop, folders.startmenu) """ UserFolders = namedtuple("UserFolders", ("home", "desktop", "startmenu")) return UserFolders(get_homedir(), get_desktop(), get_startmenu()) def make_shortcut(script, name=None, working_dir=None, description=None, icon=None, folder=None, terminal=True, desktop=True, startmenu=True, executable=None, noexe=False): """create shortcut Arguments: --------- script (str) path to script, may include command-line arguments name (str, None) name to display for shortcut [name of script] working_dir (str, None) directory where to run the script in description (str, None) longer description of script [`name`] icon (str, None) path to icon file [python icon] folder (str, None) subfolder of Desktop for shortcut [None] (See Note 1) terminal (bool) whether to run in a Terminal [True] desktop (bool) whether to add shortcut to Desktop [True] startmenu (bool) whether to add shortcut to Start Menu [True] (See Note 2) executable (str, None) name of executable to use [this Python] (see Note 3) noexe (bool) whether to use no executable (script is entire command) [False] Notes: ------ 1. `folder` will place shortcut in a subfolder of Desktop and/or Start Menu 2. Start Menu does not exist for Darwin / MacOSX 3. executable defaults to the Python executable used to make shortcut. """ from .shortcut import shortcut userfolders = get_folders() scut = shortcut(script, userfolders, name=name, description=description, working_dir=working_dir, folder=folder, icon=icon) if noexe: full_script =scut.script executable = '' else: full_script =scut.full_script if executable is None: executable = get_pyexe() executable = Path(executable).resolve().as_posix() if Path(scut.full_script).resolve() == Path(executable).resolve(): executable = '' # Check for other valid ways to run the script # try appending .exe if script itself not found if not Path(full_script).exists(): tname = full_script + '.exe' if Path(tname).exists(): executable = tname full_script = '' # If script is already executable use it directly instead of via pyexe ext = os.path.splitext(full_script)[1].lower() known_exes = [e.lower() for e in os.environ['PATHEXT'].split(os.pathsep)] if ext != '.py' and ext in known_exes: executable = full_script full_script = '' full_script = ' '.join((full_script, scut.arguments)) # If we're on Anaconda Python, we need to wrap this # script in a batch file that activates an environment if Path(sys.prefix, 'conda-meta').exists(): runnerbat = f'envrunner-{conda_env}.bat' runner = Path(sys.prefix, 'Scripts', runnerbat).resolve().as_posix() with open(runner, 'w') as fh: fh.write(ENVRUNNER) time.sleep(0.05) full_script = f"{executable} {full_script}".strip() executable = runner for (create, ofolder) in ((desktop, scut.desktop_dir), (startmenu, scut.startmenu_dir)): if create: if not Path(ofolder).exists(): os.makedirs(ofolder) dest = Path(ofolder, scut.target).resolve().as_posix() _WSHELL = win32com.client.Dispatch("Wscript.Shell") wscript = _WSHELL.CreateShortCut(dest) wscript.Targetpath = f'"{executable}"' wscript.Arguments = full_script wscript.WorkingDirectory = scut.working_dir or userfolders.home wscript.WindowStyle = 0 wscript.Description = scut.description wscript.IconLocation = scut.icon wscript.save() return scut pyshortcuts-1.9.5/pyshortcuts/wxgui.py000066400000000000000000000304361471654103100202710ustar00rootroot00000000000000import time import os import sys import wx import wx.lib.filebrowsebutton as filebrowse from .utils import (fix_filename, get_cwd, uname) make_shortcut = get_folders = None if uname.startswith('lin'): from .linux import make_shortcut, get_folders elif uname.startswith('darwin'): from .darwin import make_shortcut, get_folders elif uname.startswith('win'): from .windows import make_shortcut, get_folders USERFOLDERS = get_folders() DESKTOP = USERFOLDERS.desktop PY_FILES = "Python scripts (*.py)|*.py" ALL_FILES = "All files (*.*)|*.*" ICO_FILES = "Icon files (*.ico)|*.ico" ICNS_FILES = "Mac Icon files (*.icns)|*.icns" CEN = wx.ALIGN_CENTER LEFT = wx.ALIGN_LEFT RIGHT = wx.ALIGN_RIGHT ALL_CEN = wx.ALL|CEN ALL_LEFT = wx.ALL|LEFT ALL_RIGHT = wx.ALL|RIGHT FONTSIZE = 11 if uname == 'linux': FONTSIZE = 10 if uname.startswith('darwin'): wx.PyApp.IsDisplayAvailable = lambda _: True class ShortcutFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, -1, 'Pyshortcuts Creator', style=wx.DEFAULT_FRAME_STYLE|wx.RESIZE_BORDER|wx.TAB_TRAVERSAL) self.SetTitle('Pyshortcuts Creator') self.SetFont(wx.Font(FONTSIZE, wx.SWISS, wx.NORMAL, wx.BOLD, False)) menu = wx.Menu() menu_exit = menu.Append(-1, "Q&uit", "Exit") menuBar = wx.MenuBar() menuBar.Append(menu, "&File") self.SetMenuBar(menuBar) self.Bind(wx.EVT_MENU, self.onExit, menu_exit) self.Bind(wx.EVT_CLOSE, self.onExit) panel = wx.Panel(self) opts = dict(size=(225, -1)) lab_exec = wx.StaticText(panel, label=' Executable:', **opts) lab_script = wx.StaticText(panel, label=' Python Script:', **opts) lab_args = wx.StaticText(panel, label=' Command-line Arguments:', **opts) lab_name = wx.StaticText(panel, label=' Shortcut Name:', **opts) lab_desc = wx.StaticText(panel, label=' Description:', **opts) lab_icon = wx.StaticText(panel, label=' Icon File:', **opts) lab_folder = wx.StaticText(panel, label=' Desktop SubFolder:', **opts) lab_opts = wx.StaticText(panel, label=' Options:', **opts) opts['size'] = (400, -1) sopts = dict(size=(400, -1), style=wx.TE_PROCESS_ENTER) self.txt_exec = wx.TextCtrl(panel, value=sys.executable, **sopts) self.txt_script = wx.TextCtrl(panel, value='', **sopts) self.txt_args = wx.TextCtrl(panel, value='', **opts) self.txt_name = wx.TextCtrl(panel, value='', **sopts) self.txt_desc = wx.TextCtrl(panel, value='', **opts) self.txt_icon = wx.TextCtrl(panel, value='', **opts) self.txt_folder= wx.TextCtrl(panel, value='', **opts) self.txt_script.Bind(wx.EVT_TEXT_ENTER, self.onScriptEnter) self.txt_name.Bind(wx.EVT_TEXT_ENTER, self.onNameEnter) self.opt_terminal = wx.CheckBox(panel, label='Run in Terminal?', size=(250, -1)) self.opt_terminal.SetValue(1) targets = ('Desktop and Start Menu Shortcut', 'Desktop Shortcut only', 'Start Menu Shortcut only') self.targetchoice = wx.Choice(panel, choices=targets, size=(275, -1)) self.targetchoice.SetSelection(0) self.targetchoice.Enable(uname!='darwin') btn_script = wx.Button(panel, -1, label='Browse', size=(100, -1)) btn_script.Bind(wx.EVT_BUTTON, self.onBrowseScript) btn_icon = wx.Button(panel, -1, label='Browse', size=(100, -1)) btn_icon.Bind(wx.EVT_BUTTON, self.onBrowseIcon) btn_folder = wx.Button(panel, -1, label='Browse', size=(100, -1)) btn_folder.Bind(wx.EVT_BUTTON, self.onBrowseFolder) sizer = wx.GridBagSizer(5, 5) irow = 0 sizer.Add(wx.StaticLine(panel, size=(650, 4)), (irow, 0), (1, 3), ALL_CEN) irow += 1 sizer.Add(lab_exec, (irow, 0), (1, 1), ALL_LEFT) sizer.Add(self.txt_exec, (irow, 1), (1, 1), ALL_LEFT) irow += 1 sizer.Add(lab_script, (irow, 0), (1, 1), ALL_LEFT) sizer.Add(self.txt_script, (irow, 1), (1, 1), ALL_LEFT) sizer.Add(btn_script, (irow, 2), (1, 1), ALL_LEFT) irow += 1 sizer.Add(lab_args, (irow, 0), (1, 1), ALL_LEFT) sizer.Add(self.txt_args, (irow, 1), (1, 1), ALL_LEFT) irow += 1 sizer.Add(lab_name, (irow, 0), (1, 1), ALL_LEFT) sizer.Add(self.txt_name, (irow, 1), (1, 1), ALL_LEFT) irow += 1 sizer.Add(lab_desc, (irow, 0), (1, 1), ALL_LEFT) sizer.Add(self.txt_desc, (irow, 1), (1, 1), ALL_LEFT) irow += 1 sizer.Add(lab_icon, (irow, 0), (1, 1), ALL_LEFT) sizer.Add(self.txt_icon, (irow, 1), (1, 1), ALL_LEFT) sizer.Add(btn_icon, (irow, 2), (1, 1), ALL_LEFT) irow += 1 sizer.Add(lab_folder, (irow, 0), (1, 1), ALL_LEFT) sizer.Add(self.txt_folder, (irow, 1), (1, 1), ALL_LEFT) sizer.Add(btn_folder, (irow, 2), (1, 1), ALL_LEFT) irow += 1 sizer.Add(lab_opts, (irow, 0), (1, 1), ALL_LEFT) sizer.Add(self.targetchoice, (irow, 1), (1, 1), ALL_LEFT) sizer.Add(self.opt_terminal, (irow, 2), (1, 1), ALL_LEFT) irow += 1 sizer.Add(wx.StaticLine(panel, size=(650, 4)), (irow, 0), (1, 3), ALL_CEN) btn_create = wx.Button(panel, label='Create Shortcut', size=(175, -1)) btn_create.Bind(wx.EVT_BUTTON, self.onCreate) btn_savepy = wx.Button(panel, label='Save Python Code', size=(175, -1)) btn_savepy.Bind(wx.EVT_BUTTON, self.onSavePy) bsizer = wx.BoxSizer(wx.HORIZONTAL) bsizer.Add(btn_create, 1, ALL_LEFT, 3) bsizer.Add(btn_savepy, 1, ALL_LEFT, 3) irow += 1 sizer.Add(bsizer, (irow, 0), (1, 3), ALL_LEFT) panel.SetSizer(sizer) sizer.Fit(panel) fsizer = wx.BoxSizer(wx.VERTICAL) fsizer.Add(panel, 0, wx.ALIGN_LEFT|wx.ALIGN_CENTER) fsizer.Fit(self) self.Refresh() def onBrowseScript(self, event=None): wildcards = "%s|%s" % (PY_FILES, ALL_FILES) dlg = wx.FileDialog(self, message='Select Python Script file', wildcard=wildcards, defaultDir=get_cwd(), style=wx.FD_OPEN) if dlg.ShowModal() == wx.ID_OK: path = os.path.abspath(dlg.GetPath()) self.txt_script.SetValue(path) _, name = os.path.split(path) name = fix_filename(name) if name.endswith('.py'): name = name[:-3] txt_name = self.txt_name.GetValue().strip() if len(txt_name) < 1: self.txt_name.SetValue(name) txt_desc = self.txt_desc.GetValue().strip() if len(txt_desc) < 1: self.txt_desc.SetValue(name) dlg.Destroy() def onBrowseIcon(self, event=None): wildcards = "%s|%s" % (ICO_FILES, ALL_FILES) if uname.startswith('darwin'): wildcards = "%s|%s" % (ICNS_FILES, ALL_FILES) dlg = wx.FileDialog(self, message='Select Icon file', wildcard=wildcards, defaultDir=get_cwd(), style=wx.FD_OPEN) if dlg.ShowModal() == wx.ID_OK: path = os.path.abspath(dlg.GetPath()) self.txt_icon.SetValue(path) dlg.Destroy() def onBrowseFolder(self, event=None): defdir = self.txt_folder.GetValue() if defdir in ('', 'Desktop'): defdir = DESKTOP dlg = wx.DirDialog(self, message='Select Folder for Shortcut', defaultPath=defdir, style = wx.DD_DEFAULT_STYLE) if dlg.ShowModal() == wx.ID_OK: folder = os.path.abspath(dlg.GetPath()) desktop = DESKTOP if folder.startswith(desktop): folder.replace(desktop, '') if folder.startswith('/'): folder = folder[1:] self.txt_folder.SetValue(folder) dlg.Destroy() def onScriptEnter(self, event=None): path = self.txt_script.GetValue() _, name = os.path.split(path) name = fix_filename(name) if name.endswith('.py'): name = name[:-3] txt_name = self.txt_name.GetValue().strip() if len(txt_name) < 1: self.txt_name.SetValue(name) txt_desc = self.txt_desc.GetValue().strip() if len(txt_desc) < 1: self.txt_desc.SetValue(name) def onNameEnter(self, event=None): name = self.txt_name.GetValue() txt_desc = self.txt_desc.GetValue().strip() if len(txt_desc) < 1: self.txt_desc.SetValue(name) def read_form(self, as_string=False): def str_or_None(wid, as_string=False): val = wid.GetValue().strip() if len(val) < 1: val = None if as_string: val = 'None' if val is None else "'%s'" % val return val script = str_or_None(self.txt_script, as_string=as_string) args = str_or_None(self.txt_args, as_string=as_string) name = str_or_None(self.txt_name, as_string=as_string) desc = str_or_None(self.txt_desc, as_string=as_string) icon = str_or_None(self.txt_icon, as_string=as_string) folder = str_or_None(self.txt_folder, as_string=as_string) executable = str_or_None(self.txt_exec, as_string=as_string) targets = self.targetchoice.GetStringSelection().lower() desktop = 'desktop' in targets startmenu = 'start' in targets terminal = self.opt_terminal.IsChecked() if script in (None, 'None'): dlg = wx.MessageDialog(self, "script required", style=wx.OK|wx.ICON_INFORMATION) dlg.ShowModal() dlg.Destroy() return def cleanpath(val): if val not in (None, 'None'): val = val.replace('\\', '/').strip() return val script = cleanpath(script) folder = cleanpath(folder) icon = cleanpath(icon) executable = cleanpath(executable) if args not in (None, 'None'): if as_string: script = "'%s %s'" % (script[1:-1], args[1:-1]) else: script = "%s %s" % (script, args) script = script.strip() return dict(script=script, name=name, description=desc, icon=icon, folder=folder, terminal=terminal, desktop=desktop, startmenu=startmenu, executable=executable) def onCreate(self, event=None): opts = self.read_form() if opts is None: return script = opts.pop('script') make_shortcut(script, **opts) def onSavePy(self, event=None): wildcards = "%s|%s" % (PY_FILES, ALL_FILES) dlg = wx.FileDialog(self, message='Save Python script for creating shortcut', defaultFile='make_shortcut.py', wildcard=wildcards, defaultDir=get_cwd(), style=wx.FD_SAVE) if dlg.ShowModal() == wx.ID_OK: path = os.path.abspath(dlg.GetPath()) opts = self.read_form(as_string=True) if opts is None: return buff = ['#!/usr/bin/env python', 'from pyshortcuts import make_shortcut', """make_shortcut({script:s}, name={name:s}, description={description:s}, folder={folder:s}, icon={icon:s}, terminal={terminal}, desktop={desktop}, startmenu={startmenu}, executable={executable:s})""".format(**opts)] with open(path, 'w') as fh: fh.write('\n'.join(buff)) def onAbout(self, event): dlg = wx.MessageDialog(self, "pyshortcuts Graphical User Interface", style=wx.OK|wx.ICON_INFORMATION) dlg.ShowModal() dlg.Destroy() def onExit(self, event): self.Destroy() if __name__ == '__main__': app = wx.App() ShortcutFrame().Show(True) app.MainLoop() pyshortcuts-1.9.5/setup.py000066400000000000000000000001341471654103100156470ustar00rootroot00000000000000#!/usr/bin/env python import setuptools if __name__ == "__main__": setuptools.setup() pyshortcuts-1.9.5/tests/000077500000000000000000000000001471654103100153015ustar00rootroot00000000000000pyshortcuts-1.9.5/tests/make_timer_bat.bat000066400000000000000000000007651471654103100207440ustar00rootroot00000000000000@set _prompt=%prompt% @prompt $g$s @echo. @echo --- Creating timer.bat with current python.exe path python -c "import sys;print(r'{} %%~dp0\timer.py'.format(sys.executable))" > ..\examples\console_scripts\timer.bat @echo. @echo --- Creating shortcut to timer.bat call pyshortcut -n "Timer bat" -i ..\examples\icons\stopwatch.ico -f Shortcuts ..\examples\console_scripts\timer.bat @echo. @echo --- Look in Startmenu and Desktop\Shortcuts for launcher link @echo. @pause @prompt=%_prompt% pyshortcuts-1.9.5/tests/test_pyshortcuts.py000066400000000000000000000062151471654103100213250ustar00rootroot00000000000000#!/usr/bin/env python '''Normal test run: python -m pytests Run and see manual debug print()s: python test_pyshortcuts.py ''' import os from pathlib import Path import time import pytest from pyshortcuts import (make_shortcut, platform, Shortcut, get_folders, fix_filename, fix_varname, gformat, isotime, get_homedir, get_desktop) folders = get_folders() root = Path(__file__).parent.parent.as_posix() def test_shortcut(): '''Create a shortcut from examples dir''' print('---test_shortcut()') print("folders:\n Home: {}\n Desktop: {}\n StartMenu: {}\n".format( folders.home, folders.desktop, folders.startmenu)) script = Path(root, 'examples', 'console_scripts', 'timer.py').as_posix() + ' -u 0.25 -t 10' icon = Path(root, 'examples', 'icons', 'stopwatch').as_posix() iext = 'ico' if platform.startswith('darwin'): iext = 'icns' icon = f"{icon}.{iext}" scut = make_shortcut(script, name='Timer', icon=icon, folder=folders.desktop) assert isinstance(scut, Shortcut) # , 'it returns a shortcut instance' def test_none_script(): '''Verify we get ValueError if cmd is None (#19)''' # print('---test_none_script()') with pytest.raises(ValueError): cmd = None scut = make_shortcut(cmd, name="My Script is None") def test_empty_string_script(): '''Verify we get ValueError if cmd is an empty string (#19)''' print('---test_empty_script()') with pytest.raises(ValueError): cmd = "" scut = make_shortcut(cmd, name="My Script is empty string") def test_get_homedir(): assert len(get_homedir()) > 2 def test_get_desktop(): assert len(get_desktop()) > len(get_homedir()) def test_fix_filename(): assert 'a_file_.txt' == fix_filename('a file#.txt') assert 'a file_.txt' == fix_filename('a file#.txt', allow_spaces=True) assert 'a_file_txt' == fix_varname('a file#.txt') def test_isotime(): assert len(isotime()) > 13 t1 = time.time()-3600*501.0 assert len(isotime(t1)) > 13 def test_gformat(): base = 7.54562 ntest, nfail = 0, 0 xmin, xmax = 1.e300, -1e300 EXPON = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 17, 20,25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 96, 97,98, 99, 100, 101, 102, 103) JVALUES = (-1, -0.5, -0.2, -0.1, -0.05, -0.02, -0.01, -0.005, -0.002, 0.002, 0.005, 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1) SVALUES = (-8.75, -5.93, -3.87, -2.33, -1.44, -0.6, -0.2, 0.2, 0.6, 1.44, 2.33, 3.87, 5.93, 8.75) LVALUES = (8, 9, 10, 11, 12, 13, 14, 15) for j in JVALUES: for expon in EXPON: for s in SVALUES: x = min(-1.e300, max(1.e300, base * s * 10.0**(expon*j))) for xlen in LVALUES: ntest += 1 assert xlen == len(gformat(x, length=xlen)) print(f"GFORMAT tested {ntest} cases") if __name__ == '__main__': test_shortcut() test_none_script() test_empty_string_script() test_fix_filename() test_get_homedir() test_get_desktop() test_isotime() test_gformat()