pax_global_header00006660000000000000000000000064145307007620014516gustar00rootroot0000000000000052 comment=136e79c1251b378a605b343a2e2517cf718f9200 khard-0.19.1/000077500000000000000000000000001453070076200126775ustar00rootroot00000000000000khard-0.19.1/.github/000077500000000000000000000000001453070076200142375ustar00rootroot00000000000000khard-0.19.1/.github/workflows/000077500000000000000000000000001453070076200162745ustar00rootroot00000000000000khard-0.19.1/.github/workflows/ci.yml000066400000000000000000000026761453070076200174250ustar00rootroot00000000000000name: ci on: [push, pull_request] jobs: tests: runs-on: ubuntu-latest strategy: fail-fast: false matrix: python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | python -m pip install --upgrade pip python -m pip install flake8 python -m pip install . - name: Run tests run: python3 -m unittest type-checker: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 - name: Install dependencies run: | python -m pip install --upgrade pip python -m pip install . python -m pip install mypy # vobject does fancy dynamic stuff that is hard to type-check python -m pip install types-atomicwrites # types-vobject - name: Run the type checker run: mypy docs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 - name: Install dependencies run: | python -m pip install --upgrade pip python -m pip install .[doc] - name: Build the documentation run: | python setup.py build make -C doc html man khard-0.19.1/.gitignore000066400000000000000000000002411453070076200146640ustar00rootroot00000000000000build dist/ khard/version.py doc/source/api/ doc/source/examples/template.yaml .coverage .dmypy.json .mypy_cache .pytest_cache __pycache__ khard.egg-info result khard-0.19.1/.readthedocs.yml000066400000000000000000000010601453070076200157620ustar00rootroot00000000000000# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details version: 2 # Set the version of Python and other tools you might need build: os: ubuntu-22.04 tools: python: "3.11" # Build documentation in the docs/ directory with Sphinx sphinx: configuration: doc/source/conf.py python: install: # Run setup.py first to generate the version.py file. For some reason it # is not generated with `pip install .[doc]` - method: setuptools path: . - method: pip path: . extra_requirements: - doc khard-0.19.1/CHANGES000066400000000000000000000250101453070076200136700ustar00rootroot00000000000000Change Log ========== v0.19.1: 2023-11-26 - Fix documentation builds on https://khard.readthedocs.io/ v0.19.0: 2023-11-23 - Remove support for python 3.7 - Run tests on python 3.11 and 3.12 in CI - Fix yaml conversion of multiple addresses with same label (#323, #324) - Improve error message for address book paths (884f1d9) - Add pyproject.toml file and deprecate setup.py - Remove deprecated options from --help and zsh completion - Internal changes: - Add a general ask() function (#320, #326) - Use an exception to cancle user interactions (#325) - More and stricter type hints - Promote AddressBookCollection to a Sequence v0.18.0: 2022-12-10 - Move project home on GitHub from @scheibler to @lucc - Catch exceptions when loading the config (#294) - Split $EDITOR env variable on spaces (#314) - Add special phone number field query - Add-email command improved: Attach email address to an existing contact - Add-email command: new option --skip-already-added - Add partial support for KIND: search query, display in details and listing (#309) - Add show_kinds config option (#309) - Add nix flake - Remove support for python 3.6 - Remove deprecated subcommands "export" and "source" - Switch from Travis to GitHub CI v0.17.0: 2020-08-13 - Do not modify (clean up) search query to find more matches (4583efd) - Remove special search handling for phone numbers (a570a85) - Remove extra pruning from email, phone and postaddress subcommand (3f315f9, 1b9ce98, c704ce1) - Add query syntax for search terms (#131) - Add newline at the end of "show --format=pretty" (#256) - Add -H to select header from which add-email should read (#258) - Expand environment variables in paths in the config file (#269) - Deprecate --strict-search (the new query syntax can be used instead) v0.16.0: 2020-04-04 - Require python >= 3.6 - Require either default_action or a subcommand - Twinkle sound samples converted to .ogg (#228) - Expand documentation - Build and server documentation on https://khard.readthedocs.io/ - Allow display=formatted_name in config - New --fields option for list subcommand - Internal changes: - Expanded the test suite - Use of python type annotations, checked on travis - Represent queries as custom data structures not regex - Use custom loggers per module v0.15.0: 2019-10-24 - Require either default_action or a subcommand in the future (add deprecation warning for now) - add man page for the config file - make all options in the config file optional except for the address book definitions - allow lists of strings for editor an merge_editor config options - add a CONTRIBUTING file on Github - handle ABLABELs on most fields - add formatted name to the yaml template - show formatted name in contact details - make it possible to sort by and display formatted name in listings - remove the khard-runner.py helper script - validate the config file upon loading it - internal code refactoring v0.14.0: 2019-06-21 - Display ABLABELs for URLs and Private Objects - Allow vcard selections to be aborted explicitly - Unify edit and source subcommands - Merge export and show subcommands - Turn template export into a separate command - Require python >= 3.5 - Add html documentation (generated with sphinx) - Add man page (generated with sphinx) v0.13.0: 2018-12-25 - New action postaddress: lists all postal (addresses analog to email and phone actions, #196) - New zsh completion function for email addresses - New config variables for the contact table section in khard.conf: preferred_email_address_type and preferred_phone_number_type - Slight speed improvements - Test suite created - Several bug fixes v0.12.2: 2018-01-21 - Fixed: Found contact twice when the whole uid was used with -u (#161) - Fixed: A minor bug in the contact search function (#160) v0.12.1: 2018-01-14 - Fix for issue #148: Config variable "sort" not longer mandatory in config file v0.12.0: 2018-01-12 - Vcard: Support for anniversary attribute (#138) - Config: New config parameter: localize_dates (#118) - Action list: -p / --parsable prints a tab separated contact list (#141) - Action remove: --force: Remove contact without confirmation (#140) - Mutt: You have to update the query command in mutt's config file: set query_command= "khard email --parsable '%s'" - Minor changes in khard example config, zsh completion function and twinkle scripts - Fix: Results of phone number search improved - Fix: Yaml parser switched from pyyaml to ruamel.yaml to allow special unicode characters in the contact template (#133) - Fix: Accentuated characters sorted wrong in contact list (#127) v0.11.4: 2017-02-16 - Unpinned vobject library version (base64 decoding/encoding bug was fixed upstream) - New option: -c / --config /path/to/config.file - Changed short option of --search-in-source-files from -c to -f to avoid confusion with the new -c / --config option - Minor bug fixes v0.11.3: 2016-09-20 - Pinned version of vcard library vobject to version 0.9.2 due to bug https://github.com/eventable/vobject/issues/39 - Added some new action aliases - Fix for birthday date processing (#95) v0.11.2: 2016-08-31 - Extended the photo parsing workaround from khard version 0.11.1 to all base64 encoded vcard attributes (#86 and #87) - Show additional/middle names in name column of contact table (#89) - Added khard-runner.py helper script to simplify source code launching v0.11.1: 2016-07-31 - Workaround for the photo attribute parsing issue of vobject library 0.9.2 (#80) - setup.py: try to convert readme file into restructured text format (pypi requirement) and specify encoding explicitly (#83) v0.11.0: 2016-07-17 - Made khard python3 compatible (#59) - Enhanced read and write support for vcard versions 3.0 and 4.0 - user input parser: - Improved robustness and error handling - Fixed org attribute parsing (#57) - Support for private vcard extensions (#51) - New action birthdays (#64) - New options: --display to display contacts by first or last name (#66) --search-in-source-files to speed up program initialization (#75) --skip-unparsable to skip unparsable vcard files (#75) --strict-search to narrow the contact search to the name field - Added some aliases for program actions (#65) - Removed davcontroller module due to the python3 incompatibility (script moved into the misc folder) - Updated zsh completion function and khards example config file v0.10.0: 2016-05-02 - New Action birthday: list birthdays, sorted by month and day - option -p, --pretty was renamed to -p, --parsable: So, the pretty formatted email or phone number table is the default now. Please adapt the configuration files of potential email and phone applications (e.g.: mutt email -p %s) v0.9.0: 2016-03-17 - Fully restructured command line interface for better usability: - general help with: khard -h - help for a specific action: khard action -h - Updated zsh completion function - New Action addressbooks - New option -p|--pretty for email and phone actions to get pretty formatted output - Fix: Only delete contact after modify, copy or move action was completed successfully v0.8.1: 2016-01-16 - New option "show_uids" in config file to disable uid column in contact table v0.8.0: 2016-01-15 - Sort contact table by first or last name (take note of changed behaviour of "sort" option) - New option -g, --group-by-addressbook to group contact table by address book - Changes in config file: - New group: contact table - new option: sort to sort contact table by first or last name - New option: group_by_addressbook to group contact table by address book - Moved show_nicknames option from group "general" to group "contact table" v0.7.4: 2016-01-11 - Fixed uid dictionary creation v0.7.3: 2016-01-08 - Cancel without further actions if the opened contacts editor is closed without saving (determined by modification date of template file) v0.7.2: 2016-01-03 - Use of module atomicwrites to securely write vCards to disk v0.7.1: 2016-01-01 - Added support for multiple instances of one vCard attribute v0.7.0: 2015-12-18 - Support for vobject library version >= 0.8.2 from https://github.com/tBaxter/vobject - Contact template syntax switched to yaml - alot and mutt actions summarized to new email action (please have a look into the readme file for configuration changes) - Support for extended name attributes - Create and modify contact from stdin or from template file - New action "export" to export data of existing contact in yaml format - New argument --open-editor to open the preferred text editor after successful creation of new contact from stdin or template file - New argument {-u, --uid} to select contact by uid - Added write support for categories attribute - Added wrapper script for sdiff - Fixed a bug, which prevented the creation of new contacts with the add-email action v0.6.3: 2015-10-24 - Added note attribute v0.6.2: 2015-10-10 - Added completion function for zsh v0.6.1: 2015-10-06 - Added title and role attribute - Removed input restrictions of name and post address fields - Parameter default_country in config file is not longer in use v0.6.0: 2015-09-20 - New options copy contact and move contact - Changed behavior of merge command (have a look into the readme file for details) - Get path to editor and merge editor from the $PATH variable - Code cleanup: new object class AddressBook v0.5.0: 2015-09-05 - New option to merge two contacts - Support for XDG_CONFIG_HOME parameter - Post address: Added support for street and house number field with multiple lines v0.4.1: 2015-07-16 - improved search results for phone, mutt and alot v0.4.0: 2015-06-15 - new option "add-email": Get full email from stdin, filter senders mail address and add that address to an existing contact or create a new one. Feature tested with email client mutt. v0.3.3: 2015-05-07 - twinkle option was renamed to phone: Now it prints all phone numbers like the mutt option does for e-mail addresses (more general approach for external phone clients) - adapted twinkle plugin for use with the new phone option v0.3.2: 2015-03-27 - Read-only support for Categories attribute v0.3.1: 2015-03-26 - Nickname attribute added - New parameter in config file: show_nicknames = yes / no v0.3.0: 2015-03-25 - Added support for jabber, skype, twitter and webpage - Created a filter for malformed vcard attributes v0.2.2: 2015-03-14 - Added support for alot (MUA) v0.2.1: 2015-01-14 - created pypi package - missing attribute "fn" in VCard file is handled correctly now. v0.2.0: 2014-10-01 - new project structure - added twinkle plugin - extended readme file v0.1.0: 2014-09-18: - initial release. khard-0.19.1/CONTRIBUTING.rst000066400000000000000000000060621453070076200153440ustar00rootroot00000000000000Contributing ============ **Thank you for considering contributing to khard!** .. toctree:: :maxdepth: 1 self bench API Reference Khard is developed on `Github`_ where you are welcome to post `bug reports`_, `feature requests`_ or join the discussion in general. Bug reports ----------- If you want to report a bug keep in mind that the following things make it much easier for maintainers to help: - update to the latest version if possible and verify the bug there - report the version(s) that are affected - state the python version you are using - if there are stack tracebacks post them with your bug report - supply a minimal configuration (config file and vCards) to reproduce the error Feature requests ---------------- Please stick to the following standards when you open pull requests: - Khard's development tries to follow `Vincent's branching model`_ so normal pull requests should be made against the `develop`_ branch. Only important bug fixes that affect the current release should be opened against `master`_. - Write "good" commit messages, especially a proper subject line. This is also explained in `the Git book`_. - Format your python code according to `PEP 8`_. Tools like `pylint`_ also help in writing maintainable code. - Khard has a test suite, please provide tests for bugs that you fix and also for new code and new features that are introduced. - Please verify *all* tests pass before sending a pull request, they will be checked again in CI but it might be a lot faster to check locally first: |travis| Development ----------- In order to start coding you need to fetch the ``develop`` branch: .. code-block:: shell git clone https://github.com/lucc/khard cd khard It is recommended to create a `virtualenv`_ to isolate the development environment for Khard from your system's Python installation: .. code-block:: shell python3 -m venv khard-dev-venv . khard-dev-venv/bin/activate The you can install the dependencies with ``pip``: .. code-block:: shell pip3 install --editable . khard --help If you have the `Nix`_ package manager installed you can use the ``flake.nix`` that is provided with Khard. It provides an isolated Python version with all dependencies with ``nix develop``. .. _bug reports: https://github.com/lucc/khard/issues .. _the Git book: https://www.git-scm.com/book/en/v2/Distributed-Git-Contributing-to-a-Project#_commit_guidelines .. _develop: https://github.com/lucc/khard/tree/develop .. _feature requests: https://github.com/lucc/khard/pulls .. _Github: https://github.com/lucc/khard .. _master: https://github.com/lucc/khard/tree/master .. _Nix: https://nixos.org .. _PEP 8: https://www.python.org/dev/peps/pep-0008/ .. _pylint: https://pylint.readthedocs.io/en/latest/ .. |travis| image:: https://github.com/lucc/khard/actions/workflows/ci.yml/badge.svg :target: https://github.com/lucc/khard/actions/workflows/ci.yml :alt: ci status .. _Vincent's branching model: http://nvie.com/posts/a-successful-git-branching-model/ .. _virtualenv: https://virtualenv.pypa.io/en/stable/ khard-0.19.1/LICENSE000066400000000000000000001045131453070076200137100ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . khard-0.19.1/README.md000066400000000000000000000063371453070076200141670ustar00rootroot00000000000000khard ===== Khard is an address book for the Unix console. It creates, reads, modifies and removes vCard address book entries at your local machine. Khard is also compatible to the email clients mutt and alot and the SIP client twinkle. You can find more information about khard and the whole synchronization process [here][blog]. Warning: If you want to create or modify contacts with khard, beware that the vCard standard is very inconsistent and lacks interoperability. Different actors in that sector have defined their own extensions and even produce non-standard output. A good example is the type value, which is tied to phone numbers, email and post addresses. Khard tries to avoid such incompatibilities but if you sync your contacts with an Android or iOS device, expect problems. You are on the safe side, if you only use khard to read contacts. For further information about the vCard compatibility issues have a look into [this blog post][sad]. Installation ------------ [![Packaging status][repos-badge]][repos] Khard is already packaged for quite some distributions. Chances are you can install it with your default package manager. Releases are also published on [PyPi](https://pypi.org/project/khard/) and can be installed with `pip`. Further instructions can be found in the [documentation](https://khard.readthedocs.io/en/latest/#installation). Usage ----- [![Documentation Status][docs-badge]][docs] There is an [example config file](doc/source/examples/khard.conf.example) which you can copy to the default config file location: `~/.config/khard/khard.conf`. `khard` has several subcommands which are all documented by their `--help` option. [The docs][docs] also have a chapter on [command line usage](https://khard.readthedocs.io/en/latest/commandline.html) and [configuration](https://khard.readthedocs.io/en/latest/#configuration). In order to build the documentation locally you need [Sphinx](https://www.sphinx-doc.org/). It can be build from the Makefile in the `doc` directory. Development ----------- [![ci-badge]][ci] Khard is developed [on GitHub](https://github.com/lucc/khard) where you are welcome to post [bug reports](https://github.com/lucc/khard/issues) and [feature requests](https://github.com/lucc/khard/pulls). Also see the [notes for contributors](CONTRIBUTING.rst). Authors ------- Khard was started by [Eric Scheibler](http://eric-scheibler.de) and is currently maintained by @lucc. [Several people](https://github.com/lucc/khard/graphs/contributors) have contributed over the years. Related projects ---------------- If you need a console based calendar too, try out [khal](https://github.com/pimutils/khal). [blog]: http://eric-scheibler.de/en/blog/2014/10/Sync-calendars-and-address-books-between-Linux-and-Android/ [sad]: http://alessandrorossini.org/2012/11/15/the-sad-story-of-the-vcard-format-and-its-lack-of-interoperability/ [repos]: https://repology.org/project/khard/versions [repos-badge]: https://repology.org/badge/tiny-repos/khard.svg [docs]: https://khard.readthedocs.io/en/latest/ [docs-badge]: https://readthedocs.org/projects/khard/badge/?version=latest [ci]: https://github.com/lucc/khard/actions/workflows/ci.yml [ci-badge]: https://github.com/lucc/khard/actions/workflows/ci.yml/badge.svg khard-0.19.1/doc/000077500000000000000000000000001453070076200134445ustar00rootroot00000000000000khard-0.19.1/doc/Makefile000066400000000000000000000012071453070076200151040ustar00rootroot00000000000000# Minimal makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build SPHINXPROJ = khard SOURCEDIR = source BUILDDIR = build # Put it first so that "make" without argument is like "make help". help: @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) .PHONY: help # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) # These files are always up to date. Makefile:; khard-0.19.1/doc/source/000077500000000000000000000000001453070076200147445ustar00rootroot00000000000000khard-0.19.1/doc/source/bench.rst000066400000000000000000000014641453070076200165620ustar00rootroot00000000000000Benchmarking, profiling and performance --------------------------------------- When benchmarking code it is important to reduce other load on the system (music player, web browser for example). One can use the python ``timeit`` module or a command line utility like `hyperfine`_: .. code-block:: shell python -m timeit -s 'from khard.khard import main' 'main(["list"])' hyperfine 'python -m khard list' For profiling the ``cProfile`` python module works well. With the help of `gprof2dot`_ one can generate quite useful graphs: .. code-block:: shell python -m cProfile -o output.file -m khard list gprof2dot -f pstats --show-samples output.file | dot -T png > graph.png xdg-open graph.png .. _hyperfine: https://github.com/sharkdp/hyperfine .. _gprof2dot: https://github.com/jrfonseca/gprof2dot khard-0.19.1/doc/source/commandline.rst000066400000000000000000000145041453070076200177700ustar00rootroot00000000000000Command line usage ================== The following subsections give an overview of khard's main features. You may get general help and all available actions as well as detailed information on all available options for the specific commands with the :option:`--help` options: .. code-block:: shell khard --help khard command --help Beware, that the order of the command line parameters matters. Filtering contacts ------------------ Many subcommands of khard accept search terms to narrow the list of contacts that the command should work on. One can simply give some plain search terms on the command line or use a more sophisticated query language of khard. The query language allows the user to search for contacts where a specific term matches in a specific field of the contact. When searching for ``foo`` there might be two contacts that match, because one is called "Foo" and the other has an email address containing "foo": .. code-block:: shell $ khard list foo Index Name Email 1 Bar bar@foo-company.com 2 Foo boss@example.com But when searching for ``name:foo`` or ``emails:foo`` one would only find one of these each time because "foo" only matches in these specific fields of the contact. The available fields are the same as in the YAML format for contacts (an empty YAML template can be seen with ``khard template``). Case does not matter, all filed names will be converted to lower case. For field names with spaces (like "Formatted name") the spaces have to be replaced with underscores (like in ``formatted_name``). And the five name related fields "Prefix", "First name", "Additional", "Last name" and "Suffix" are not available, but a simple ``name:`` query is possible which will search in *any* name field (including nicknames and formatted names). .. note:: Typos in field names result in the query beeing considered as a general search term. So ``email:foo`` will search for "email:foo" in any field of the contact, because the field is called "emails". .. note:: Nested field names like for the :option:`-F` option of the ``ls`` subcommand are currently not supported in the query syntax. You can only search with the top level field names. Show contacts ------------- After you have created a new address book and you have synced it to your local machine, you can list all available contacts with the following command: .. code-block:: shell khard list or if you have more than one address book and you want to filter the output: .. code-block:: shell khard list -a addressbook1,addressbook2 The resulting contact table only contains the first phone number and email address. If you want to view all contact details you can pick one from the list: .. code-block:: shell khard show or search for it: .. code-block:: shell khard show name of contact The parameter :option:`-a` from the examples above is always optional. It can be given on all subcommands that select one or more contacts. The search parameter searches in all data fields. Therefore you aren't limited to the contact's name but you also could for example search for a part of a phone number, email address or post address. However if you explicitly want to narrow your search down to some fields see the query language described in :ref:`Filtering contacts`. Create contact -------------- Add new contact with the following command: .. code-block:: shell khard new [-a "address book name"] The template for the new contact opens in the text editor, which you can set in the config file. It follows the yaml syntax. Alternatively you can create the contact from stdin: .. code-block:: shell echo " First name : John Last name : Smith Email : work : john.smith@example.org Phone : home : xxx 555 1234 Categories : - cat1 - cat2 - cat3 " | khard new or create from input template file: .. code-block:: shell khard new -i contact.yaml You may get an empty contact template with the following command: .. code-block:: shell khard template Assuming the user had configured the three supported private object "Jabber", "Skype", and "Twitter" in their config, the template would look :download:`like this `. Per default khard creates vCards of version 3.0. If your other contact applications support vCards of the more recent version 4.0, you may change this with the option :option:`--vcard-version`. Example: .. code-block:: shell khard new --vcard-version=4.0 For a more permanent solution you may set the preferred_version parameter in the vCard section of the khard config file (see the :download:`example config file ` for more details). But beware, that khard cannot convert already existing contacts from version 3.0 to 4.0. Therefore this setting is not applicable to the modify action. Edit contacts ------------- Use the following to modify the contact after successful creation: .. code-block:: shell khard edit [-a addr_name] [search terms [search terms ...]] If you want to edit the contact elsewhere, you can export the filled contact template: .. code-block:: shell khard show --format=yaml -o contact.yaml [-a addr_name] [search terms [search terms ...]] Edit the yaml file and re-import either through stdin: .. code-block:: shell cat contact.yaml | khard edit [-a addr_name] [search terms [search terms ...]] or file name: .. code-block:: shell khard edit -i contact.yaml [-a addr_name] [search terms [search terms ...]] If you want to merge contacts use the following to select a first and then a second contact: .. code-block:: shell khard merge [-a source_abook] [search terms [search terms ...]] [-A target_abook] [-t target_search_terms] You will be launched into your ``merge_editor`` (see |khard.conf|_) where you can merge all changes from the first selected contact onto the second. Once you are finished, the first contact is deleted and the second one updated. Copy or move contact: .. code-block:: shell khard copy [-a source_abook] [search terms [search terms ...]] [-A target_abook] khard move [-a source_abook] [search terms [search terms ...]] [-A target_abook] Remove contact: .. code-block:: shell khard remove [-a addr_name] [search terms [search terms ...]] .. |khard.conf| replace:: :manpage:`khard.conf` .. _khard.conf: man/khard.conf.html khard-0.19.1/doc/source/conf.py000077500000000000000000000114321453070076200162470ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # # khard documentation build configuration file, created by # sphinx-quickstart on Sun Jan 14 10:35:27 2018. # # 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. # 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. # import os import pathlib import sys sys.path.insert(0, os.path.abspath('../..')) from khard.version import version as original_version # update the template file for the docs if necessary def update_template_file(): here = pathlib.Path(__file__).parent src = here.parent.parent/'khard'/'data'/'template.yaml' dest = here/'examples'/'template.yaml' if not dest.exists() or src.stat().st_ctime > dest.stat().st_ctime: dest.write_text(src.read_text().format( "\n Jabber : \n Skype : \n Twitter : ")) update_template_file() del update_template_file # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. # # needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ 'autoapi.extension', # https://sphinx-autoapi.readthedocs.io/en/latest/ 'sphinx.ext.autodoc', # https://pypi.org/project/sphinx-autodoc-typehints/ 'sphinx.ext.autosectionlabel', 'sphinx.ext.todo', 'sphinx_autodoc_typehints', # https://pypi.org/project/sphinx-autodoc-typehints/ ] autoapi_type = 'python' autoapi_dirs = ['../../khard'] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # # source_suffix = ['.rst', '.md'] source_suffix = '.rst' # The master toctree document. master_doc = 'index' # General information about the project. project = 'khard' copyright = '2020, Eric Scheibler' author = 'Eric Scheibler' # 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. version = '.'.join(original_version.split('.')[0:2]) # The full version, including alpha/beta/rc tags. release = original_version # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. # # This is also used if you do content translation via gettext catalogs. # Usually you set "language" from the command line for these cases. language = "en" # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. # This patterns also effect to html_static_path and html_extra_path exclude_patterns = [] # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True # -- Options for HTML output ---------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # html_theme = 'alabaster' # Custom sidebar templates, must be a dictionary that maps document names # to template names. # # This is required for the alabaster theme # refs: http://alabaster.readthedocs.io/en/latest/installation.html#sidebars html_sidebars = { '**': [ 'relations.html', # needs 'show_related': True theme option to display 'searchbox.html', ] } # -- Options for HTMLHelp output ------------------------------------------ # Output file base name for HTML help builder. htmlhelp_basename = 'kharddoc' # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ ('man/khard', 'khard', 'Console address book manager', '', 1), ('man/khard.conf', 'khard.conf', 'configuration file for khard', '', 5), ] # -- Options for Texinfo output ------------------------------------------- # Grouping the document tree into Texinfo files. List of tuples # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ (master_doc, 'khard', 'khard Documentation', author, 'khard', 'One line description of project.', 'Miscellaneous'), ] khard-0.19.1/doc/source/contributing.rst000077700000000000000000000000001453070076200232672../../CONTRIBUTING.rstustar00rootroot00000000000000khard-0.19.1/doc/source/davcontroller.rst000066400000000000000000000032731453070076200203610ustar00rootroot00000000000000Davcontroller ------------- Khard also contains a helper script called davcontroller. It's designed to create and remove address books and calendars at the server. I have created davcontroller cause my previously used CalDAV server (Darwin calendarserver) offered no simple way to create new address books and calendars. But davcontroller should be considered as a hacky solution and it's only tested against the Darwin calendarserver. So if your CalDAV server offers a way to create new address books and calendars I recommend to prefer that method over davcontroller. If you nonetheless want to try davcontroller, you have to install the CalDAVClientLibrary first. Unfortunately that library isn't compatible to python3 so you have to create an extra python2 virtual environment and install in there: .. code-block:: shell # create python2 virtual environment virtualenv -p python2 ~/.virtualenvs/davcontroller # get library from svn repository sudo aptitude install subversion svn checkout http://svn.calendarserver.org/repository/calendarserver/CalDAVClientLibrary/trunk CalDAVClientLibrary cd CalDAVClientLibrary # install library ~/.virtualenvs/davcontroller/bin/python setup.py install # start davcontroller script ~/.virtualenvs/davcontroller/bin/python /path/to/khard-x.x.x/misc/davcontroller/davcontroller.py This small script helps to create and remove new address books and calendars at the carddav and caldav server. List available resources: .. code-block:: shell davcontroller -H example.com -p 11111 -u USERNAME -P PASSWORD list Possible actions are: list, new-addressbook, new-calendar and remove. After creating or removing you must adapt your vdirsyncer config. khard-0.19.1/doc/source/examples/000077500000000000000000000000001453070076200165625ustar00rootroot00000000000000khard-0.19.1/doc/source/examples/khard.conf.example000066400000000000000000000036331453070076200221610ustar00rootroot00000000000000# example configuration file for khard version > 0.14.0 # place it under ~/.config/khard/khard.conf # This file is parsed by the configobj library. The syntax is described at # https://configobj.readthedocs.io/en/latest/configobj.html#the-config-file-format [addressbooks] [[family]] path = ~/.contacts/family/ [[friends]] path = ~/.contacts/friends/ [general] debug = no default_action = list # These are either strings or comma seperated lists editor = vim, -i, NONE merge_editor = vimdiff [contact table] # display names by first or last name: first_name / last_name / formatted_name display = first_name # group by address book: yes / no group_by_addressbook = no # reverse table ordering: yes / no reverse = no # append nicknames to name column: yes / no show_nicknames = no # show uid table column: yes / no show_uids = yes # show kind table column: yes / no show_kinds = no # sort by first or last name: first_name / last_name / formatted_name sort = last_name # localize dates: yes / no localize_dates = yes # set a comma separated list of preferred phone number types in descending priority # or nothing for non-filtered alphabetical order preferred_phone_number_type = pref, cell, home # set a comma separated list of preferred email address types in descending priority # or nothing for non-filtered alphabetical order preferred_email_address_type = pref, work, home [vcard] # extend contacts with your own private objects # these objects are stored with a leading "X-" before the object name in the vcard files # every object label may only contain letters, digits and the - character # example: # private_objects = Jabber, Skype, Twitter # default: , (the empty list) private_objects = Jabber, Skype, Twitter # preferred vcard version: 3.0 / 4.0 preferred_version = 3.0 # Look into source vcf files to speed up search queries: yes / no search_in_source_files = no # skip unparsable vcard files: yes / no skip_unparsable = no khard-0.19.1/doc/source/index.rst000066400000000000000000000032071453070076200166070ustar00rootroot00000000000000################################# Welcome to khard's documentation! ################################# .. toctree:: :maxdepth: 1 self commandline scripting contributing man indices Khard is an address book for the Unix command line. It can read, create, modify and delete vCard address book entries. Khard only works with a local store of vCard files. It is intended to be used in conjunction with other programs like an email client, text editor, vdir synchronizer or VOIP client. Installation ============ .. image:: https://repology.org/badge/tiny-repos/khard.svg :target: https://repology.org/project/khard/versions :alt: Packaging status Khard is available as a native package for some \*nix distributions so you should check your package manager first. If you want or need to install manually you can use the release from `PyPi`_: .. code-block:: shell pip3 install khard If you want to help the development or need more advanced installation instructions see :doc:`contributing`. If you need a tarball use the one from `PyPi`_ and not from the Github release page. These are missing an auto generated python file. .. _PyPi: https://pypi.python.org/pypi/khard/ Configuration ============= The configuration file of khard is stored in the XDG conform config directory. If the environment variable ``$XDG_CONFIG_HOME`` is set, it is ``$XDG_CONFIG_HOME/khard/khard.conf`` and it defaults to ``~/.config/khard/khard.conf`` otherwise. An :download:`example configuration ` is provided in the source tree. It looks like this: .. literalinclude:: examples/khard.conf.example :language: ini khard-0.19.1/doc/source/indices.rst000066400000000000000000000001331453070076200171110ustar00rootroot00000000000000Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search` khard-0.19.1/doc/source/man.rst000066400000000000000000000002371453070076200162530ustar00rootroot00000000000000Man pages ========= The following man pages are available for khard: .. toctree:: :maxdepth: 1 khard(1) khard.conf(1) khard-0.19.1/doc/source/man/000077500000000000000000000000001453070076200155175ustar00rootroot00000000000000khard-0.19.1/doc/source/man/khard.conf.rst000066400000000000000000000073751453070076200203020ustar00rootroot00000000000000khard.conf ========== Summary ------- The config file for :program:`khard` is a plain text file with an ini-like syntax. Many options have a corresponding command line option. The only mandatory section in the config file is the definition of the available address books. Location -------- The file is looked up at :file:`$XDG_CONFIG_HOME/khard/khard.conf`. If the environment variable :file:`$XDG_CONFIG_HOME` is unset :file:`~/.config/` is used in its stead. The location can be changed with the environment variable :file:`$KHARD_CONFIG` or the command line option :option:`-c` (which takes precedence). Syntax ------ The syntax of the config file is ini-style dialect. It is parsed with the configobj library. The precise definition of the corresponding ini syntax can be found at https://configobj.readthedocs.io/en/latest/configobj.html#the-config-file-format . It supports sections marked with square brackets and nested sections with more square brackets. Each section contains several keys with values delimited by equal signs. The values are typed and type checked. Options ------- The config file consists of these four sections: addressbooks This section contains several subsections, but at least one. Each subsection can have an arbitrary name which will be the name of an addressbook known to khard. Each of these subsections **must** have a *path* key with the path to the folder containing the vCard files for that addressbook. The *path* value supports environment variables and tilde prefixes. :program:`khard` expects the vCard files to hold only one VCARD record each and end in a :file:`.vcf` extension. general This section allows one to configure some general features about khard. The following keys are available in this section: - *debug*: a boolean indication whether the logging level should be set to *debug* by default (same effect as the :option:`--debug` option on the command line) - *default_action*: the default action/subcommand to use if the first non option argument does not match any of the available subcommands - *editor*: the text editor to use to edit address book entries, if not given :file:`$EDITOR` will be used - *merge_editor*: a command used to merge two cards interactively, if not given, :file:`$MERGE_EDITOR` will be used contact table This section is used to configure the behaviour of different output listings of khard. The following keys are available: - *display*: which part of the name to use in listings; this can be one of ``first_name``, ``last_name`` or ``formatted_name`` - *group_by_addressbook*: whether or not to group contacts by address book in listings - *localize_dates*: whether to localize dates or to use ISO date formats - *preferred_email_address_type*: labels of email addresses to prefer - *preferred_phone_number_type*: labels of telephone numbers to prefer - *reverse*: whether to reverse the order of contact listings or not - *show_nicknames*: whether to show nick names - *show_uids*: whether to show uids - *show_kinds*: whether to show kinds - *sort*: field by which to sort contact listings vcard - *private_objects*: a list of strings, these are the names of private vCard fields (starting with ``X-``) that will be loaded and displayed by khard - *search_in_source_files*: whether to search in the vCard files before parsing them in order to speed up searches - *skip_unparsable*: whether to skip unparsable vCards, otherwise khard exits on the first unparsable card it encounters - *preferred_version*: the preferred vCard version to use for new cards Example ------- This is the :download:`example config file <../examples/khard.conf.example>`: .. literalinclude :: ../examples/khard.conf.example :language: ini khard-0.19.1/doc/source/man/khard.rst000066400000000000000000000064711453070076200173520ustar00rootroot00000000000000khard ===== Synopsis -------- :program:`khard` [:option:`-c` CONFIG] [:option:`--debug`] [:option:`--skip-unparsable`] SUBCOMMAND ... :program:`khard` :option:`-h` | :option:`--help` :program:`khard` :option:`-v` | :option:`--version` Description ----------- :program:`khard` is an address book for the Unix command line. It can read, create, modify and delete vCard address book entries. :program:`khard` only works with a local store of vCard files. It is intended to be used in conjunction with other programs like an email client, text editor, vdir synchronizer or VOIP client. Options ------- .. option:: -c CONFIG, --config CONFIG configuration file (default: :file:`~/.config/khard/khard.conf`) .. option:: --debug output debugging information .. option:: -h, --help show a help message and exit .. option:: --skip-unparsable skip unparsable vcards when reading the address books .. option:: -v, --version show program's version number and exit Subcommands ----------- The functionality of khard is divided into several subcommands. All of these have their own help text which can be seen with ``khard SUBCOMMAND --help``. Many subcommands accept search terms to limit the number of contacts they should work on, display or present for selection. The syntax is described in :ref:`Search query syntax`. Listing subcommands ~~~~~~~~~~~~~~~~~~~ These subcommands list information of several contacts who match a search query. list list all (selected) contacts birthdays list birthdays (sorted by month and day) email list email addresses phone list phone numbers postaddress list postal addresses filename list filenames of all matching contacts Detailed display ~~~~~~~~~~~~~~~~ These subcommands display detailed information about one subcommand. show display detailed information about one contact, supported output formats are "pretty", "yaml" and "vcard" Modifying subcommands ~~~~~~~~~~~~~~~~~~~~~ These subcommands are used to modify contacts. edit edit the data of a contact, supported formats for editing are "yaml" and "vcard" new create a new contact add-email Extract email address from the "From:" field of an email header and add to an existing contact or create a new one merge merge two contacts copy copy a contact to a different addressbook move move a contact to a different addressbook remove remove a contact Other subcommands ~~~~~~~~~~~~~~~~~ addressbooks list all address books template print an empty yaml template Search query syntax ------------------- Search queries consist of one or more command line arguments. Each can be a simple search term or a search term for a specific field. The field name is separated from the search term by a colon (``:``) without any spaces. Spaces in the field name have to be replaced with underscores. The available fields are the same fields as in the YAML template with the exception of the five name components (first, last, prefix, suffix, additional). But there is the special pseudo field specifier ``name:`` which will search in *any* name related field (including nicknames and formatted names). If a field name is not known the search term is interpreted as a plain search term and the string (including the colon) is looked up in any field of the contact. Configuration ------------- See :manpage:`khard.conf(5)`. khard-0.19.1/doc/source/scripting.rst000066400000000000000000000165001453070076200175020ustar00rootroot00000000000000Scripting ========= Many of khard's subcommands can be used for scripting purposes. The commands ``list``, ``birthdays``, ``email``, ``phone`` and ``postaddress`` feature a ``--parsable`` option which changes the output to be tab separated (normally the fields are visually aligned with spaces). They list several contacts at once. If the search terms are known to match one single contact the command ``khard show --format=yaml`` can also be used for scripting. It produces the contact in the yaml format that is also used for editing. But if the search terms produce more than one result the ``show`` command first asks the user to select one contact which is unsuitable for scripting. Specifying output fields ------------------------ The ``list`` command additionally features a ``--fields``/``-F`` options which allows to specify the fields of a contact that should be printed. The list of supported field names can be seen with ``khard list -F help``. Some fields can hold complex data structures like mappings and lists. These can be specified by dot-subscripting the field name. Lists are subscribed with numbers starting at zero. Subscripting can be nested. If the contact for somebody would contain several email addresses for example: .. code-block:: $ khard list --fields emails somebody Emails {'work': ['work@example.org'], 'home': ['some@example.org', 'body@example.org']} One could access these with different nested field descriptions like this: .. code-block:: $ khard list --fields emails.work somebody Emails ['work@example.org'] $ khard list --fields emails.home.1 somebody Emails body@example.org Integration =========== Khard can be used together with email or SIP clients or a synchronisation program like `vdirsyncer`_. For synchronisation programs it is important to note that khard expects the contacts in the configured address book directories to be stored in individual files. The files are expected to have a ``.vcf`` extension. .. _vdirsyncer: https://github.com/pimutils/vdirsyncer/ If you already have ``.vcf`` files containing multiple ``VCARD`` entries (i.e. from Android/MacOS Contacts app), below are some scripts that generate the corresponding single entry ``.vcf`` files: * `vcardtool`_ (processes one input file at a time) * `vcf-splitter`_ (needs to be used with the ``-u``/``--uid`` flag to generate the required UID entry) .. _vcardtool: https://github.com/jakeogh/vcardtool/ .. _vcf-splitter: https://framagit.org/rogarb/vcf-splitter/ You might need to preparse your ``.vcf`` input files with `vcard2to3`_ if they contain ``VERSION:2.1`` entries. .. _vcard2to3: https://github.com/jowave/vcard2to3 vdirsyncer ---------- Make sure to write the contacts into individual files as ``VCARD`` records and give them a ``.vcf`` file extension: .. code-block:: ini [storage local_storage_for_khard] type = "filesystem" fileext = "vcf" path = "..." mutt ---- Khard may be used as an external address book for the email client mutt. To accomplish that, add the following to your mutt config file (mostly ``~/.mutt/muttrc``): .. code-block:: set query_command = "khard email --parsable %s" bind editor complete-query bind editor ^T complete Then you can complete email addresses by pressing the Tab-key in mutt's new mail dialog. If your address books contain hundreds or even thousands of contacts and the query process is very slow, you may try the ``--search-in-source-files`` option to speed up the search: .. code-block:: set query_command = "khard email --parsable --search-in-source-files %s" If you want to complete multi-word search strings like "john smith" then you may try out the following instead: .. code-block:: set query_command = "echo %s | xargs khard email --parsable --" To add email addresses to khard's address book, you may also add the following lines to your muttrc file: .. code-block:: macro index,pager A \ "khard add-email" \ "add the sender email address to khard" If you want to search for email addresses in specific header fields, append the "--header" parameter: .. code-block:: macro index,pager A \ "khard add-email --headers=from,cc --skip-already-added" \ "add the sender and cc email addresses to khard" Then navigate to an email message in mutt's index view and press "A" to start the address import dialog. Alot ---- Add the following lines to your alot config file: .. code-block:: ini [accounts] [[youraccount]] [[[abook]]] type = shellcommand command = khard email --parsable regexp = '^(?P[^@]+@[^\t]+)\t+(?P[^\t]+)' ignorecase = True Twinkle ------- For those who also use the SIP client twinkle to take phone calls, khard can be used to query incoming numbers. The plugin tries to find the incoming caller id and speaks it together with the phone's ring tone. But it is more or less a proof of concept - feel free to extend. The plugin needs the following programs: .. code-block:: shell sudo aptitude install ffmpeg espeak sox mpc sox and ffmpeg are used to cut and convert the new ring tone and espeak speaks the caller id. mpc is a client for the music player daemon (mpd). It's required to stop music during an incoming call. Skip the last, if you don't use mpd. Don't forget to set the "stop_music"-parameter in the ``config.py`` file to ``False``, too. After the installation, copy the scripts and sounds folders to your twinkle config folder: .. code-block:: shell cp -R misc/twinkle/* ~/.twinkle/ Next convert the sound samples to wave: .. code-block:: shell ffmpeg -i incoming_call.ogg incoming_call.wav ffmpeg -i outgoing_call.ogg outgoing_call.wav ffmpeg -i ringtone_segment.ogg ringtone_segment.wav Then edit your twinkle config file (mostly ``~/.twinkle/twinkle.cfg``) like this: .. code-block:: ini # RING TONES # We need a default ring tone. Otherwise the phone would not ring at all, if # something with the custom ring tone creation goes wrong. ringtone_file=/home/USERNAME/.twinkle/sounds/incoming_call.wav ringback_file=/home/USERNAME/.twinkle/sounds/outgoing_call.wav # SCRIPTS script_incoming_call=/home/USERNAME/.twinkle/scripts/incoming_call.py script_in_call_answered= script_in_call_failed=/home/USERNAME/.twinkle/scripts/incoming_call_failed.py script_outgoing_call= script_out_call_answered= script_out_call_failed= script_local_release=/home/USERNAME/.twinkle/scripts/incoming_call_ended.py script_remote_release=/home/USERNAME/.twinkle/scripts/incoming_call_ended.py Zsh --- The file ``misc/zsh/_khard`` contains a khard cli completion function for the zsh and ``misc/zsh/_email-khard`` completes email addresses. Install by copying to a directory where zsh searches for completion functions (the ``$fpath`` array). If you, for example, put all completion functions into the folder ``~/.zsh/completions`` you must add the following to your zsh main config file: .. code-block:: zsh fpath=( $HOME/.zsh/completions $fpath ) autoload -U compinit compinit sdiff ----- Use the wrapper script ``misc/sdiff/sdiff_khard_wrapper.sh`` if you want to use sdiff as your contact merging tool. Just make the script executable and set it as your merge editor in khard's config file: .. code-block:: ini merge_editor = /path/to/sdiff_khard_wrapper.sh .. include:: davcontroller.rst khard-0.19.1/flake.lock000066400000000000000000000007741453070076200146430ustar00rootroot00000000000000{ "nodes": { "nixpkgs": { "locked": { "lastModified": 1696009558, "narHash": "sha256-/1nNL8lCF0gn38XaFyu2ufpWcBFwCDZyYUxdZkM6GxU=", "owner": "NixOS", "repo": "nixpkgs", "rev": "c182df2e68bd97deb32c7e4765adfbbbcaf75b60", "type": "github" }, "original": { "id": "nixpkgs", "type": "indirect" } }, "root": { "inputs": { "nixpkgs": "nixpkgs" } } }, "root": "root", "version": 7 } khard-0.19.1/flake.nix000066400000000000000000000026151453070076200145050ustar00rootroot00000000000000{ description = "Development flake for khard"; outputs = { self, nixpkgs }: { packages.x86_64-linux.default = nixpkgs.legacyPackages.x86_64-linux.khard.overridePythonAttrs (oa: rec { name = "khard-${version}"; version = "${oa.version}post-dev+${if self ? shortRev then self.shortRev else "dirty"}"; SETUPTOOLS_SCM_PRETEND_VERSION = version; postInstall = '' ${oa.postInstall} cp -r $src/khard/data $out/lib/python*/site-packages/khard ''; src = ./.; }); devShells.x86_64-linux.release = let pkgs = nixpkgs.legacyPackages.x86_64-linux; in pkgs.mkShell { packages = with pkgs; [ git twine (python3.withPackages (p: with p; [ build mypy pylint setuptools setuptools-scm wheel ] ++ self.packages.x86_64-linux.default.propagatedBuildInputs)) ]; shellHook = '' cat < Optional[str]: """Find the name of the action for the supplied alias. If no action is associated with the given alias, None is returned. :param alias: the alias to look up :returns: the name of the corresponding action or None """ for action, alias_list in cls.action_map.items(): if alias in alias_list: return action return None @classmethod def get_aliases(cls, action: str) -> List[str]: """Find all aliases for the given action. If there is no such action, None is returned. :param action: the action name to look up :returns: the list of aliases corresponding to the action or None """ return cls.action_map[action] @classmethod def get_actions(cls) -> Iterable[str]: """Find the names of all defined actions. :returns: all action names """ return cls.action_map.keys() @classmethod def get_all(cls) -> Generator[str, None, None]: """Find the names of all defined actions and their aliases. :returns: the names of all actions and aliases """ for key, value in cls.action_map.items(): yield key yield from value khard-0.19.1/khard/address_book.py000066400000000000000000000266731453070076200170170ustar00rootroot00000000000000"""A simple class to load and manage the vcard files from disk.""" import abc import binascii from collections.abc import Mapping, Sequence import glob import logging import os from typing import Dict, Generator, Iterator, List, Optional, Union, overload import vobject.base from . import carddav_object from .query import AnyQuery, Query logger = logging.getLogger(__name__) class AddressBookParseError(Exception): """Indicate an error while parsing data from an address book backend.""" def __init__(self, filename: str, abook: str, reason: Exception) -> None: """Store the filename that caused the error.""" super().__init__() self.filename = filename self.abook = abook self.reason = reason def __str__(self) -> str: return "Error when parsing {} in address book {}: {}".format( self.filename, self.abook, self.reason) class AddressBookNameError(Exception): """Indicate an error with an address book name.""" class AddressBook(metaclass=abc.ABCMeta): """The base class of all address book implementations.""" def __init__(self, name: str) -> None: """:param str name: the name to identify the address book""" self._loaded = False self.contacts: Dict[str, "carddav_object.CarddavObject"] = {} self._short_uids: Optional[Dict[str, "carddav_object.CarddavObject"]] = None self.name = name def __str__(self) -> str: return self.name def __eq__(self, other: object) -> bool: return isinstance(other, type(self)) and self.name == other.name def __ne__(self, other: object) -> bool: return not self == other @staticmethod def _compare_uids(uid1: str, uid2: str) -> int: """Calculate the minimum length of initial substrings of uid1 and uid2 for them to be different. :param uid1: first uid to compare :param uid2: second uid to compare :returns: the length of the shortest unequal initial substrings """ return len(os.path.commonprefix((uid1, uid2))) def search(self, query: Query) -> Generator["carddav_object.CarddavObject", None, None]: """Search this address book for contacts matching the query. The backend for this address book might be load()ed if needed. :param query: the query to search for :yields: all found contacts """ logger.debug('address book %s, searching with %s', self.name, query) if not self._loaded: self.load(query) for contact in self.contacts.values(): if query.match(contact): yield contact def get_short_uid_dict(self, query: Query = AnyQuery()) -> Dict[ str, "carddav_object.CarddavObject"]: """Create a dictionary of shortened UIDs for all contacts. All arguments are only used if the address book is not yet initialized and will just be handed to self.load(). :param query: see self.load() :returns: the contacts mapped by the shortest unique prefix of their UID """ if self._short_uids is None: if not self._loaded: self.load(query) if not self.contacts: self._short_uids = {} elif len(self.contacts) == 1: self._short_uids = {uid[0:1]: contact for uid, contact in self.contacts.items()} else: self._short_uids = {} sorted_uids = sorted(self.contacts) # Prepare for the loop; the first and last items are handled # separately. item0, item1 = sorted_uids[:2] same1 = self._compare_uids(item0, item1) self._short_uids[item0[:same1 + 1]] = self.contacts[item0] for item_new in sorted_uids[2:]: # shift the items and the common prefix length one further item0, item1 = item1, item_new same0, same1 = same1, self._compare_uids(item0, item1) # compute the final prefix length for item1 same = max(same0, same1) self._short_uids[item0[:same + 1]] = self.contacts[item0] # Save the last item. self._short_uids[item1[:same1 + 1]] = self.contacts[item1] return self._short_uids def get_short_uid(self, uid: str) -> str: """Get the shortened UID for the given UID. :param uid: the full UID to shorten :returns: the shortened uid or the empty string """ if uid: short_uids = self.get_short_uid_dict() for length_of_uid in range(len(uid), 0, -1): if short_uids.get(uid[:length_of_uid]) is not None: return uid[:length_of_uid] return "" @abc.abstractmethod def load(self, query: Query = AnyQuery()) -> None: """Load the vCards from the backing store. If a query is given loading is limited to entries which match the query. If the query is None all entries will be loaded. :param query: the query to limit loading to matching entries :returns: the number of loaded contacts and the number of errors """ class VdirAddressBook(AddressBook): """An AddressBook implementation based on a vdir. This address book can load contacts from vcard files that reside in one directory on disk. """ def __init__(self, name: str, path: str, private_objects: Optional[List[str]] = None, localize_dates: bool = True, skip: bool = False) -> None: """ :param name: the name to identify the address book :param path: the path to the backing structure on disk :param private_objects: the names of private vCard extension fields to load :param localize_dates: whether to display dates in the local format :param skip: skip unparsable vCard files """ self.path = os.path.expanduser(os.path.expandvars(path)) if not os.path.isdir(self.path): raise NotADirectoryError("The path {} to the address book {} is " "not a directory".format(path, name)) self._private_objects = private_objects or [] self._localize_dates = localize_dates self._skip = skip super().__init__(name) def load(self, query: Query = AnyQuery(), search_in_source_files: bool = False) -> None: """Load all vcard files in this address book from disk. If a search string is given only files which contents match that will be loaded. :param query: query to limit the vcards that should be parsed :param search_in_source_files: apply search regexp directly on the .vcf files to speed up parsing (less accurate) :throws: AddressBookParseError """ if self._loaded: return logger.debug('Loading Vdir %s with query %s', self.name, query) errors = 0 for filename in glob.glob(os.path.join(self.path, "*.vcf")): try: card = carddav_object.CarddavObject.from_file( self, filename, query if search_in_source_files else AnyQuery(), self._private_objects, self._localize_dates) if card is None: continue except (OSError, vobject.base.ParseError, binascii.Error) as err: verb = "open" if isinstance(err, OSError) else "parse" logger.error("Error: Could not %s file %s\n%s", verb, filename, err) if self._skip: errors += 1 else: raise AddressBookParseError(filename, self.name, err) else: uid = card.uid if not uid: logger.warning("Card %s from address book %s has no UID " "and will not be available.", card, self.name) elif uid in self.contacts: logger.warning( "Card %s and %s from address book %s have the same " "UID. The former will not be available.", card, self.contacts[uid], self.name) else: self.contacts[uid] = card self._loaded = True if errors: logger.warning( "%d of %d vCard files of address book %s could not be parsed.", errors, len(self.contacts) + errors, self) logger.debug('Loaded %s contacts from address book %s.', len(self.contacts), self.name) class AddressBookCollection(AddressBook, Mapping, Sequence): """A collection of several address books. This represents a temporary merge of the contact collections provided by the underlying address books. On load, all contacts from all subaddressbooks are copied into a dict in this address book. This allows this class to use all other methods from the parent AddressBook class. """ def __init__(self, name: str, abooks: List[VdirAddressBook]) -> None: """ :param name: the name to identify the address book :param abooks: a list of address books to combine in this collection """ super().__init__(name) self._abooks = {ab.name: ab for ab in abooks} def load(self, query: Query = AnyQuery()) -> None: """Load the wrapped address books with the given parameters All parameters will be handed to VdirAddressBook.load. :param query: a query to limit the vcards that should be parsed :throws: AddressBookParseError """ if self._loaded: return logger.debug('Loading collection %s with query %s', self.name, query) for abook in self._abooks.values(): abook.load(query) for uid in abook.contacts: if uid in self.contacts: logger.warning( "Card %s from address book %s will not be available " "because there is already another card with the same " "UID: %s", abook.contacts[uid], abook, uid) else: self.contacts[uid] = abook.contacts[uid] self._loaded = True logger.debug('Loaded %s contacts from address book %s.', len(self.contacts), self.name) @overload def __getitem__(self, key: Union[int, str]) -> VdirAddressBook: ... @overload def __getitem__(self, key: slice) -> List[VdirAddressBook]: ... def __getitem__(self, key: Union[int, str, slice] ) -> Union[VdirAddressBook, List[VdirAddressBook]]: """Get one or more of the backing address books by name or index :param key: the name of the address book to get or its index :returns: the matching address book(s) :throws: KeyError """ if isinstance(key, str): return self._abooks[key] return list(self._abooks.values())[key] def __iter__(self) -> Iterator[VdirAddressBook]: """:return: an iterator over the underlying address books""" return iter(self._abooks.values()) def __len__(self) -> int: return len(self._abooks) khard-0.19.1/khard/carddav_object.py000066400000000000000000001763331453070076200173110ustar00rootroot00000000000000"""Classes and logic to handle vCards in khard. This module explicitly supports the vCard specifications version 3.0 and 4.0 which can be found here: - version 3.0: https://tools.ietf.org/html/rfc2426 - version 4.0: https://tools.ietf.org/html/rfc6350 """ import copy import datetime import io import locale import logging import os import re import sys import time from typing import Any, Callable, Dict, List, Literal, Optional, Tuple, \ TypeVar, Union, Sequence, overload from atomicwrites import atomic_write from ruamel import yaml from ruamel.yaml import YAML import vobject from . import address_book # pylint: disable=unused-import # for type checking from . import helpers from .helpers.typing import (Date, ObjectType, PostAddress, StrList, convert_to_vcard, list_to_string, string_to_date, string_to_list) from .query import AnyQuery, Query logger = logging.getLogger(__name__) T = TypeVar("T") @overload def multi_property_key(item: str) -> Tuple[Literal[0], str]: ... @overload def multi_property_key(item: Dict[T, Any]) -> Tuple[Literal[1], T]: ... def multi_property_key(item: Union[str, Dict[T, Any]] ) -> Tuple[int, Union[T, str]]: """Key function to pass to sorted(), allowing sorting of dicts with lists and strings. Dicts will be sorted by their label, after other types. :param item: member of the list being sorted :type item: a dict with a single entry or any sortable type :returns: a pair, the first item is int(isinstance(item, dict). The second is either the key from the dict or the unchanged item if it is not a dict. """ if isinstance(item, dict): return (1, next(iter(item))) return (0, item) class VCardWrapper: """Wrapper class around a vobject.vCard object. This class can wrap a single vCard and presents its data in a manner suitable for khard. Additionally some details of the vCard specifications in RFC 2426 (version 3.0) and RFC 6350 (version 4.0) that are not enforced by the vobject library are enforced here. """ _default_kind = "individual" _default_version = "3.0" _supported_versions = ("3.0", "4.0") # vcard v3.0 supports the following type values phone_types_v3 = ("bbs", "car", "cell", "fax", "home", "isdn", "msg", "modem", "pager", "pcs", "video", "voice", "work") email_types_v3 = ("home", "internet", "work", "x400") address_types_v3 = ("dom", "intl", "home", "parcel", "postal", "work") # vcard v4.0 supports the following type values phone_types_v4 = ("text", "voice", "fax", "cell", "video", "pager", "textphone", "home", "work") email_types_v4 = ("home", "internet", "work") address_types_v4 = ("home", "work") def __init__(self, vcard: vobject.vCard, version: Optional[str] = None ) -> None: """Initialize the wrapper around the given vcard. :param vobject.vCard vcard: the vCard to wrap :param version: the version of the RFC to use (if the card has none) """ self.vcard = vcard if not self.version: version = version or self._default_version logger.warning("Wrapping unversioned vCard object, setting " "version to %s.", version) self.version = version elif self.version not in self._supported_versions: logger.warning("Wrapping vCard with unsupported version %s, this " "might change any incompatible attributes.", self.version) def __str__(self) -> str: return self.formatted_name def _get_string_field(self, field: str) -> str: """Get a string field from the underlying vCard. :param field: the field value to get :returns: the field value or the empty string """ try: return getattr(self.vcard, field).value except AttributeError: return "" def _get_multi_property(self, name: str) -> List: """Get a vCard property that can exist more than once. It does not matter what the individual vcard properties store as their value. This function returns them untouched inside an aggregating list. If the property is part of a group containing exactly two items, with exactly one ABLABEL. the property will be prefixed with that ABLABEL. :param name: the name of the property (should be UPPER case) :returns: the values from all occurrences of the named property """ values = [] for child in self.vcard.getChildren(): if child.name == name: ablabel = self._get_ablabel(child) if ablabel: values.append({ablabel: child.value}) else: values.append(child.value) return sorted(values, key=multi_property_key) def _delete_vcard_object(self, name: str) -> None: """Delete all fields with the given name from the underlying vCard. If a field that will be deleted is in a group with an X-ABLABEL field, that X-ABLABEL field will also be deleted. These fields are commonly added by the Apple address book to attach custom labels to some fields. :param name: the name of the fields to delete """ # first collect all vcard items, which should be removed to_be_removed = [] for child in self.vcard.getChildren(): if child.name == name: if child.group: for label in self.vcard.getChildren(): if label.name == "X-ABLABEL" and \ label.group == child.group: to_be_removed.append(label) to_be_removed.append(child) # then delete them one by one for item in to_be_removed: self.vcard.remove(item) @staticmethod def _parse_type_value(types: Sequence[str], supported_types: Sequence[str] ) -> Tuple[List[str], List[str], int]: """Parse type value of phone numbers, email and post addresses. :param types: list of type values :param supported_types: all allowed standard types :returns: tuple of standard and custom types and pref integer """ custom_types = [] standard_types = [] pref = 0 for type in types: type = type.strip() if type: if type.lower() in supported_types: standard_types.append(type) elif type.lower() == "pref": pref += 1 elif re.match(r"^pref=\d{1,2}$", type.lower()): pref += int(type.split("=")[1]) else: if type.lower().startswith("x-"): custom_types.append(type[2:]) standard_types.append(type) else: custom_types.append(type) standard_types.append("X-{}".format(type)) return (standard_types, custom_types, pref) def _get_types_for_vcard_object(self, object: vobject.base.ContentLine, default_type: str) -> List[str]: """get list of types for phone number, email or post address :param object: vcard class object :param default_type: use if the object contains no type :returns: list of type labels """ type_list = [] # try to find label group for custom value type if object.group: for label in self.vcard.getChildren(): if label.name == "X-ABLABEL" and label.group == object.group: custom_type = label.value.strip() if custom_type: type_list.append(custom_type) # then load type from params dict standard_types = object.params.get("TYPE") if standard_types is not None: if not isinstance(standard_types, list): standard_types = [standard_types] for type in standard_types: type = type.strip() if type and type.lower() != "pref": if not type.lower().startswith("x-"): type_list.append(type) elif type[2:].lower() not in [x.lower() for x in type_list]: # add x-custom type in case it's not already added by # custom label for loop above but strip x- before type_list.append(type[2:]) # try to get pref parameter from vcard version 4.0 try: type_list.append("pref={}".format( int(object.params.get("PREF")[0]))) except (IndexError, TypeError, ValueError): # else try to determine, if type params contain pref attribute try: for type in object.params.get("TYPE"): if type.lower() == "pref" and "pref" not in type_list: type_list.append("pref") except TypeError: pass # return type_list or default type if type_list: return type_list return [default_type] @property def version(self) -> str: return self._get_string_field("version") @version.setter def version(self, value: str) -> None: if value not in self._supported_versions: logger.warning("Setting vcard version to unsupported version %s", value) # All vCards should only always have one version, this is a requirement # for version 4 but also makes sense for all other versions. self._delete_vcard_object("VERSION") version = self.vcard.add("version") version.value = convert_to_vcard("version", value, ObjectType.str) @property def uid(self) -> str: return self._get_string_field("uid") @uid.setter def uid(self, value: str) -> None: # All vCards should only always have one UID, this is a requirement # for version 4 but also makes sense for all other versions. self._delete_vcard_object("UID") uid = self.vcard.add('uid') uid.value = convert_to_vcard("uid", value, ObjectType.str) def _update_revision(self) -> None: """Generate a new REV field for the vCard, replace any existing All vCards should only always have one revision, this is a requirement for version 4 but also makes sense for all other versions. :rtype: NoneType """ self._delete_vcard_object("REV") rev = self.vcard.add('rev') rev.value = datetime.datetime.now().strftime("%Y%m%dT%H%M%SZ") @property def birthday(self) -> Optional[Date]: """Return the birthday as a datetime object or a string depending on whether it is of type text or not. If no birthday is present in the vcard None is returned. :returns: contacts birthday or None if not available """ # vcard 4.0 could contain a single text value try: if self.vcard.bday.params.get("VALUE")[0] == "text": return self.vcard.bday.value except (AttributeError, IndexError, TypeError): pass # else try to convert to a datetime object try: return string_to_date(self.vcard.bday.value) except (AttributeError, ValueError): pass return None @birthday.setter def birthday(self, date: Date) -> None: """Store the given date as BDAY in the vcard. :param date: the new date to store as birthday """ value, text = self._prepare_birthday_value(date) if value is None: logger.warning('Failed to set anniversary to %s', date) return bday = self.vcard.add('bday') bday.value = value if text: bday.params['VALUE'] = ['text'] @property def anniversary(self) -> Optional[Date]: """ :returns: contacts anniversary or None if not available """ # vcard 4.0 could contain a single text value try: if self.vcard.anniversary.params.get("VALUE")[0] == "text": return self.vcard.anniversary.value except (AttributeError, IndexError, TypeError): pass # else try to convert to a datetime object try: return string_to_date(self.vcard.anniversary.value) except (AttributeError, ValueError): # vcard 3.0: x-anniversary (private object) try: return string_to_date(self.vcard.x_anniversary.value) except (AttributeError, ValueError): pass return None @anniversary.setter def anniversary(self, date: Date) -> None: value, text = self._prepare_birthday_value(date) if value is None: logger.warning('Failed to set anniversary to %s', date) return if text: anniversary = self.vcard.add('anniversary') anniversary.params['VALUE'] = ['text'] anniversary.value = value elif self.version == "4.0": self.vcard.add('anniversary').value = value else: self.vcard.add('x-anniversary').value = value def _get_ablabel(self, item: vobject.base.ContentLine) -> str: """Get an ABLABEL for a specified item in the vCard. Will return the ABLABEL only if the item is part of a group with exactly two items, exactly one of which is an ABLABEL. :param item: the item to be labelled :returns: the ABLABEL in the circumstances above or an empty string """ label = "" if item.group: count = 0 for child in self.vcard.getChildren(): if child.group and child.group == item.group: count += 1 if child.name == "X-ABLABEL": if label == "": label = child.value else: return "" if count != 2: label = "" return label def _get_new_group(self, group_type: str = "") -> str: """Get an unused group name for adding new groups. Uses the form item123 or itemgroup_type123 if a grouptype is specified. :param group_type: (Optional) a string to add between "item" and the number :returns: the name of the first unused group of the specified form """ counter = 1 while True: group_name = "item{}{}".format(group_type, counter) for child in self.vcard.getChildren(): if child.group and child.group == group_name: counter += 1 break else: return group_name def _add_labelled_object( self, obj_type: str, user_input, name_groups: bool = False, allowed_object_type: ObjectType = ObjectType.str) -> None: """Add an object to the VCARD. If user_input is a dict, the object will be added to a group with an ABLABEL created from the key of the dict. :param obj_type: type of object to add to the VCARD. :param user_input: Contents of the object to add. If a dict :type user_input: str or list(str) or dict(str) or dict(list(str)) :param name_groups: (Optional) If True, use the obj_type in the group name for labelled objects. :param allowed_object_type: (Optional) set the accepted return type for vcard attribute """ obj = self.vcard.add(obj_type) if isinstance(user_input, dict): if len(user_input) > 1: raise ValueError( "Error: {} must be a string or a dict containing one " "key/value pair.".format(obj_type)) label = list(user_input)[0] group_name = self._get_new_group(obj_type if name_groups else "") obj.group = group_name obj.value = convert_to_vcard(obj_type, user_input[label], allowed_object_type) ablabel_obj = self.vcard.add('X-ABLABEL') ablabel_obj.group = group_name ablabel_obj.value = label else: obj.value = convert_to_vcard(obj_type, user_input, allowed_object_type) def _prepare_birthday_value(self, date: Date) -> Tuple[Optional[str], bool]: """Prepare a value to be stored in a BDAY or ANNIVERSARY attribute. :param date: the date like value to be stored :returns: the object to set as the .value for the attribute and whether it should be stored as plain text :rtype: tuple(str,bool) """ if isinstance(date, str): if self.version == "4.0": return date.strip(), True return None, False tz = date.tzname() if date.year == 1900 and date.month != 0 and date.day != 0 \ and date.hour == 0 and date.minute == 0 and date.second == 0 \ and self.version == "4.0": fmt = '--%m%d' elif tz and tz[3:]: if self.version == "4.0": fmt = "%Y%m%dT%H%M%S{}".format(tz[3:]) else: fmt = "%FT%T{}".format(tz[3:]) elif date.hour != 0 or date.minute != 0 or date.second != 0: if self.version == "4.0": fmt = "%Y%m%dT%H%M%SZ" else: fmt = "%FT%TZ" else: if self.version == "4.0": fmt = "%Y%m%d" else: fmt = "%F" return date.strftime(fmt), False @property def kind(self) -> str: kind = self._get_string_field("kind") or self._default_kind return kind if kind != "org" else "organisation" @property def formatted_name(self) -> str: return self._get_string_field("fn") @formatted_name.setter def formatted_name(self, value: str) -> None: """Set the FN field to the new value. All previously existing FN fields are deleted. Version 4 of the specs requires the vCard to only have one FN field. For other versions we enforce this equally. :param str value: the new formatted name :returns: None """ self._delete_vcard_object("FN") if value: final = convert_to_vcard("FN", value, ObjectType.str) elif self._get_first_names() or self._get_last_names(): # autofill the FN field from the N field names = [self._get_name_prefixes(), self._get_first_names(), self._get_last_names(), self._get_name_suffixes()] names = [x for x in names if x] final = list_to_string(names, " ") else: # add an empty FN final = "" self.vcard.add("FN").value = final def _get_names_part(self, part: str) -> List[str]: """Get some part of the "N" entry in the vCard as a list :param part: the name to get e.g. "prefix" or "given" :returns: a list of entries for this name part """ try: the_list = getattr(self.vcard.n.value, part) except AttributeError: return [] else: # check if list only contains empty strings if not ''.join(the_list): return [] return the_list if isinstance(the_list, list) else [the_list] def _get_name_prefixes(self) -> List[str]: return self._get_names_part("prefix") def _get_first_names(self) -> List[str]: return self._get_names_part("given") def _get_additional_names(self) -> List[str]: return self._get_names_part("additional") def _get_last_names(self) -> List[str]: return self._get_names_part("family") def _get_name_suffixes(self) -> List[str]: return self._get_names_part("suffix") def get_first_name_last_name(self) -> str: """Compute the full name of the contact by joining first, additional and last names together """ names = self._get_first_names() + self._get_additional_names() + \ self._get_last_names() if names: return list_to_string(names, " ") return self.formatted_name def get_last_name_first_name(self) -> str: """Compute the full name of the contact by joining the last names and then after a comma the first and additional names together """ last_names: List[str] = [] if self._get_last_names(): last_names += self._get_last_names() first_and_additional_names = self._get_first_names() + \ self._get_additional_names() if last_names and first_and_additional_names: return "{}, {}".format( list_to_string(last_names, " "), list_to_string(first_and_additional_names, " ")) if last_names: return list_to_string(last_names, " ") if first_and_additional_names: return list_to_string(first_and_additional_names, " ") return self.formatted_name @property def first_name(self) -> str: return list_to_string(self._get_first_names(), " ") @property def last_name(self) -> str: return list_to_string(self._get_last_names(), " ") def _add_name(self, prefix: StrList, first_name: StrList, additional_name: StrList, last_name: StrList, suffix: StrList) -> None: """Add an N entry to the vCard. No old entries are affected. :param prefix: :param first_name: :param additional_name: :param last_name: :param suffix: """ name_obj = self.vcard.add('n') name_obj.value = vobject.vcard.Name( prefix=convert_to_vcard("name prefix", prefix, ObjectType.both), given=convert_to_vcard("first name", first_name, ObjectType.both), additional=convert_to_vcard("additional name", additional_name, ObjectType.both), family=convert_to_vcard("last name", last_name, ObjectType.both), suffix=convert_to_vcard("name suffix", suffix, ObjectType.both)) @property def organisations(self) -> List[Union[List[str], Dict[str, List[str]]]]: """ :returns: list of organisations, sorted alphabetically """ return self._get_multi_property("ORG") def _add_organisation(self, organisation: StrList) -> None: """Add one ORG entry to the underlying vcard :param organisation: the value to add """ self._add_labelled_object("org", organisation, True, ObjectType.list) # check if fn attribute is already present if not self.vcard.getChildValue("fn") and self.organisations: # if not, set fn to organisation name first_org = self.organisations[0] if isinstance(first_org, dict): first_org = list(first_org.values())[0] org_value = list_to_string(first_org, ", ") self.formatted_name = org_value.replace("\n", " ").replace("\\", "") showas_obj = self.vcard.add('x-abshowas') showas_obj.value = "COMPANY" @property def titles(self) -> List[Union[str, Dict[str, str]]]: return self._get_multi_property("TITLE") def _add_title(self, title) -> None: self._add_labelled_object("title", title, True) @property def roles(self) -> List[Union[str, Dict[str, str]]]: return self._get_multi_property("ROLE") def _add_role(self, role) -> None: self._add_labelled_object("role", role, True) @property def nicknames(self) -> List[Union[str, Dict[str, str]]]: return self._get_multi_property("NICKNAME") def _add_nickname(self, nickname) -> None: self._add_labelled_object("nickname", nickname, True) @property def notes(self) -> List[Union[str, Dict[str, str]]]: return self._get_multi_property("NOTE") def _add_note(self, note) -> None: self._add_labelled_object("note", note, True) @property def webpages(self) -> List[Union[str, Dict[str, str]]]: return self._get_multi_property("URL") def _add_webpage(self, webpage) -> None: self._add_labelled_object("url", webpage, True) @property def categories(self) -> Union[List[str], List[List[str]]]: category_list = [] for child in self.vcard.getChildren(): if child.name == "CATEGORIES": value = child.value category_list.append( value if isinstance(value, list) else [value]) if len(category_list) == 1: return category_list[0] return sorted(category_list) def _add_category(self, categories: List[str]) -> None: """Add categories to the vCard :param categories: """ categories_obj = self.vcard.add('categories') categories_obj.value = convert_to_vcard("category", categories, ObjectType.list) @property def phone_numbers(self) -> Dict[str, List[str]]: """ :returns: dict of type and phone number list """ phone_dict: Dict[str, List[str]] = {} for child in self.vcard.getChildren(): if child.name == "TEL": # phone types type = list_to_string( self._get_types_for_vcard_object(child, "voice"), ", ") if type not in phone_dict: phone_dict[type] = [] # phone value # # vcard version 4.0 allows URI scheme "tel" in phone attribute value # Doc: https://tools.ietf.org/html/rfc6350#section-6.4.1 # example: TEL;VALUE=uri;PREF=1;TYPE="voice,home":tel:+1-555-555-5555;ext=5555 if child.value.lower().startswith("tel:"): # cut off the "tel:" uri prefix phone_dict[type].append(child.value[4:]) else: # free text field phone_dict[type].append(child.value) # sort phone number lists for number_list in phone_dict.values(): number_list.sort() return phone_dict def _add_phone_number(self, type: str, number: str) -> None: standard_types, custom_types, pref = self._parse_type_value( string_to_list(type, ","), self.phone_types_v4 if self.version == "4.0" else self.phone_types_v3) if not standard_types and not custom_types and pref == 0: raise ValueError("Error: label for phone number " + number + " is missing.") if len(custom_types) > 1: raise ValueError("Error: phone number " + number + " got more " "than one custom label: " + list_to_string(custom_types, ", ")) phone_obj = self.vcard.add('tel') if self.version == "4.0": phone_obj.value = "tel:{}".format( convert_to_vcard("phone number", number, ObjectType.str)) phone_obj.params['VALUE'] = ["uri"] if pref > 0: phone_obj.params['PREF'] = str(pref) else: phone_obj.value = convert_to_vcard("phone number", number, ObjectType.str) if pref > 0: standard_types.append("pref") if standard_types: phone_obj.params['TYPE'] = standard_types if custom_types: custom_label_count = 0 for label in self.vcard.getChildren(): if label.name == "X-ABLABEL" and label.group.startswith( "itemtel"): custom_label_count += 1 group_name = "itemtel{}".format(custom_label_count + 1) phone_obj.group = group_name label_obj = self.vcard.add('x-ablabel') label_obj.group = group_name label_obj.value = custom_types[0] @property def emails(self) -> Dict[str, List[str]]: """ :returns: dict of type and email address list """ email_dict: Dict[str, List[str]] = {} for child in self.vcard.getChildren(): if child.name == "EMAIL": type = list_to_string( self._get_types_for_vcard_object(child, "internet"), ", ") if type not in email_dict: email_dict[type] = [] email_dict[type].append(child.value) # sort email address lists for email_list in email_dict.values(): email_list.sort() return email_dict def add_email(self, type: str, address: str) -> None: standard_types, custom_types, pref = self._parse_type_value( string_to_list(type, ","), self.email_types_v4 if self.version == "4.0" else self.email_types_v3) if not standard_types and not custom_types and pref == 0: raise ValueError("Error: label for email address " + address + " is missing.") if len(custom_types) > 1: raise ValueError("Error: email address " + address + " got more " "than one custom label: " + list_to_string(custom_types, ", ")) email_obj = self.vcard.add('email') email_obj.value = convert_to_vcard("email address", address, ObjectType.str) if self.version == "4.0": if pref > 0: email_obj.params['PREF'] = str(pref) else: if pref > 0: standard_types.append("pref") if standard_types: email_obj.params['TYPE'] = standard_types if custom_types: custom_label_count = 0 for label in self.vcard.getChildren(): if label.name == "X-ABLABEL" and label.group.startswith( "itememail"): custom_label_count += 1 group_name = "itememail{}".format(custom_label_count + 1) email_obj.group = group_name label_obj = self.vcard.add('x-ablabel') label_obj.group = group_name label_obj.value = custom_types[0] @property def post_addresses(self) -> Dict[str, List[PostAddress]]: """ :returns: dict of type and post address list """ post_adr_dict: Dict[str, List[PostAddress]] = {} for child in self.vcard.getChildren(): if child.name == "ADR": type = list_to_string(self._get_types_for_vcard_object( child, "home"), ", ") if type not in post_adr_dict: post_adr_dict[type] = [] post_adr_dict[type].append({"box": child.value.box, "extended": child.value.extended, "street": child.value.street, "code": child.value.code, "city": child.value.city, "region": child.value.region, "country": child.value.country}) # sort post address lists for post_adr_list in post_adr_dict.values(): post_adr_list.sort(key=lambda x: ( list_to_string(x['city'], " ").lower(), list_to_string(x['street'], " ").lower())) return post_adr_dict def get_formatted_post_addresses(self) -> Dict[str, List[str]]: formatted_post_adr_dict: Dict[str, List[str]] = {} for type, post_adr_list in self.post_addresses.items(): formatted_post_adr_dict[type] = [] for post_adr in post_adr_list: get: Callable[[str], str] = lambda name: list_to_string( post_adr.get(name, ""), " ") # remove empty fields to avoid empty lines for x in list(post_adr.keys()): if post_adr.get(x) == "": del post_adr[x] strings = [] if "street" in post_adr: strings.append(list_to_string( post_adr.get("street", ""), "\n")) if "box" in post_adr and "extended" in post_adr: strings.append("{} {}".format(get("box"), get("extended"))) elif "box" in post_adr: strings.append(get("box")) elif "extended" in post_adr: strings.append(get("extended")) if "code" in post_adr and "city" in post_adr: strings.append("{} {}".format(get("code"), get("city"))) elif "code" in post_adr: strings.append(get("code")) elif "city" in post_adr: strings.append(get("city")) if "region" in post_adr and "country" in post_adr: strings.append("{}, {}".format(get("region"), get("country"))) elif "region" in post_adr: strings.append(get("region")) elif "country" in post_adr: strings.append(get("country")) formatted_post_adr_dict[type].append('\n'.join(strings)) return formatted_post_adr_dict def _add_post_address(self, type, box, extended, street, code, city, region, country): standard_types, custom_types, pref = self._parse_type_value( string_to_list(type, ","), self.address_types_v4 if self.version == "4.0" else self.address_types_v3) if not standard_types and not custom_types and pref == 0: raise ValueError("Error: label for post address " + street + " is missing.") if len(custom_types) > 1: raise ValueError("Error: post address " + street + " got more " "than one custom " "label: " + list_to_string(custom_types, ", ")) adr_obj = self.vcard.add('adr') adr_obj.value = vobject.vcard.Address( box=convert_to_vcard("box address field", box, ObjectType.both), extended=convert_to_vcard("extended address field", extended, ObjectType.both), street=convert_to_vcard("street", street, ObjectType.both), code=convert_to_vcard("post code", code, ObjectType.both), city=convert_to_vcard("city", city, ObjectType.both), region=convert_to_vcard("region", region, ObjectType.both), country=convert_to_vcard("country", country, ObjectType.both)) if self.version == "4.0": if pref > 0: adr_obj.params['PREF'] = str(pref) else: if pref > 0: standard_types.append("pref") if standard_types: adr_obj.params['TYPE'] = standard_types if custom_types: custom_label_count = 0 for label in self.vcard.getChildren(): if label.name == "X-ABLABEL" and label.group.startswith( "itemadr"): custom_label_count += 1 group_name = "itemadr{}".format(custom_label_count + 1) adr_obj.group = group_name label_obj = self.vcard.add('x-ablabel') label_obj.group = group_name label_obj.value = custom_types[0] class YAMLEditable(VCardWrapper): """Conversion of vcards to YAML and updating the vcard from YAML""" def __init__(self, vcard: vobject.vCard, supported_private_objects: Optional[List[str]] = None, version: Optional[str] = None, localize_dates: bool = False ) -> None: """Initialize attributes needed for yaml conversions :param supported_private_objects: the list of private property names that will be loaded from the actual vcard and represented in this pobject :param version: the version of the RFC to use in this card :param localize_dates: should the formatted output of anniversary and birthday be localized or should the iso format be used instead """ self.supported_private_objects = supported_private_objects or [] self.localize_dates = localize_dates super().__init__(vcard, version) ##################### # getters and setters ##################### def _get_private_objects(self) -> Dict[str, List[str]]: supported = [x.lower() for x in self.supported_private_objects] private_objects: Dict[str, List[str]] = {} for child in self.vcard.getChildren(): lower = child.name.lower() if lower.startswith("x-") and lower[2:] in supported: key_index = supported.index(lower[2:]) key = self.supported_private_objects[key_index] if key not in private_objects: private_objects[key] = [] ablabel = self._get_ablabel(child) private_objects[key].append( {ablabel: child.value} if ablabel else child.value) # sort private object lists for value in private_objects.values(): value.sort(key=multi_property_key) return private_objects def _add_private_object(self, key: str, value) -> None: self._add_labelled_object('X-' + key.upper(), value) def get_formatted_anniversary(self) -> str: return self._format_date_object(self.anniversary, self.localize_dates) def get_formatted_birthday(self) -> str: return self._format_date_object(self.birthday, self.localize_dates) ####################### # object helper methods ####################### @staticmethod def _format_date_object(date: Optional[Date], localize: bool) -> str: if not date: return "" if isinstance(date, str): return date if date.year == 1900 and date.month != 0 and date.day != 0 \ and date.hour == 0 and date.minute == 0 and date.second == 0: return date.strftime("--%m-%d") tz = date.tzname() if (tz and tz[3:]) or (date.hour != 0 or date.minute != 0 or date.second != 0): if localize: return date.strftime(locale.nl_langinfo(locale.D_T_FMT)) utc_offset = -time.timezone / 60 / 60 return date.strftime("%FT%T+{:02}:00".format(int(utc_offset))) if localize: return date.strftime(locale.nl_langinfo(locale.D_FMT)) return date.strftime("%F") @staticmethod def _filter_invalid_tags(contents: str) -> str: for pat, repl in [('aim', 'AIM'), ('gadu', 'GADUGADU'), ('groupwise', 'GROUPWISE'), ('icq', 'ICQ'), ('xmpp', 'JABBER'), ('msn', 'MSN'), ('yahoo', 'YAHOO'), ('skype', 'SKYPE'), ('irc', 'IRC'), ('sip', 'SIP')]: contents = re.sub('X-messaging/'+pat+'-All', 'X-'+repl, contents, flags=re.IGNORECASE) return contents @staticmethod def _parse_yaml(input: str) -> Dict: """Parse a YAML document into a dictionary and validate the data to some degree. :param str input: the YAML document to parse :returns: the parsed data structure :rtype: dict """ yaml_parser = YAML(typ='base') # parse user input string try: contact_data = yaml_parser.load(input) except (yaml.parser.ParserError, yaml.scanner.ScannerError, yaml.constructor.DuplicateKeyError) as err: raise ValueError(err) else: if not contact_data: raise ValueError("Error: Found no contact information") # check for available data # at least enter name or organisation if not (contact_data.get("First name") or contact_data.get("Last name") or contact_data.get("Organisation")): raise ValueError( "Error: You must either enter a name or an organisation") return contact_data @staticmethod def _set_string_list(setter: Callable[[Union[str, List]], None], key: str, data: Dict) -> None: """Pre-process a string or list and set each value with the given setter :param setter: the setter method to add a value to a card :param key: :param data: """ value = data.get(key) if value: if isinstance(value, str): setter(value) elif isinstance(value, list): for val in value: if val: setter(val) else: raise ValueError( "{} must be a string or a list of strings".format(key)) def _set_date(self, target: str, key: str, data: Dict) -> None: new = data.get(key) if not new: return if not isinstance(new, str): raise ValueError("Error: {} must be a string object.".format(key)) if re.match(r"^text[\s]*=.*$", new): if self.version == "4.0": v1 = ', '.join(x.strip() for x in re.split(r"text[\s]*=", new) if x.strip()) if v1: setattr(self, target, v1) return raise ValueError("Error: Free text format for {} only usable with " "vcard version 4.0.".format(key.lower())) if re.match(r"^--\d\d-?\d\d$", new) and self.version != "4.0": raise ValueError( "Error: {} format --mm-dd and --mmdd only usable with " "vcard version 4.0. You may use 1900 as placeholder, if " "the year is unknown.".format(key)) try: v2 = string_to_date(new) if v2: setattr(self, target, v2) return except ValueError: pass raise ValueError("Error: Wrong {} format or invalid date\n" "Use format yyyy-mm-dd or " "yyyy-mm-ddTHH:MM:SS".format(key.lower())) def update(self, input: str) -> None: """Update this vcard with some yaml input :param input: a yaml string to parse and then use to update self """ contact_data = self._parse_yaml(input) # update rev self._update_revision() # name self._delete_vcard_object("N") # although the "n" attribute is not explicitly required by the vcard # specification, # the vobject library throws an exception, if it doesn't exist # so add the name regardless if it's empty or not self._add_name( contact_data.get("Prefix", ""), contact_data.get("First name", ""), contact_data.get("Additional", ""), contact_data.get("Last name", ""), contact_data.get("Suffix", "")) if "Formatted name" in contact_data: self.formatted_name = contact_data.get("Formatted name", "") if not self.formatted_name: # Trigger the auto filling code in the setter. self.formatted_name = "" # nickname self._delete_vcard_object("NICKNAME") self._set_string_list(self._add_nickname, "Nickname", contact_data) # organisation self._delete_vcard_object("ORG") self._delete_vcard_object("X-ABSHOWAS") self._set_string_list(self._add_organisation, "Organisation", contact_data) # role self._delete_vcard_object("ROLE") self._set_string_list(self._add_role, "Role", contact_data) # title self._delete_vcard_object("TITLE") self._set_string_list(self._add_title, "Title", contact_data) # phone self._delete_vcard_object("TEL") phone_data = contact_data.get("Phone") if phone_data: if isinstance(phone_data, dict): for type, number_list in phone_data.items(): if isinstance(number_list, str): number_list = [number_list] if isinstance(number_list, list): for number in number_list: if number: self._add_phone_number(type, number) else: raise ValueError( "Error: got no number or list of numbers for the " "phone number type " + type) else: raise ValueError( "Error: missing type value for phone number field") # email self._delete_vcard_object("EMAIL") email_data = contact_data.get("Email") if email_data: if isinstance(email_data, dict): for type, email_list in email_data.items(): if isinstance(email_list, str): email_list = [email_list] if isinstance(email_list, list): for email in email_list: if email: self.add_email(type, email) else: raise ValueError( "Error: got no email or list of emails for the " "email address type " + type) else: raise ValueError( "Error: missing type value for email address field") # post addresses self._delete_vcard_object("ADR") address_data = contact_data.get("Address") if address_data: if isinstance(address_data, dict): for type, post_adr_list in address_data.items(): if isinstance(post_adr_list, dict): post_adr_list = [post_adr_list] if isinstance(post_adr_list, list): for post_adr in post_adr_list: if isinstance(post_adr, dict): address_not_empty = False for key, value in post_adr.items(): if key in ["Box", "Extended", "Street", "Code", "City", "Region", "Country"] and value: address_not_empty = True break if address_not_empty: self._add_post_address( type, post_adr.get("Box", ""), post_adr.get("Extended", ""), post_adr.get("Street", ""), post_adr.get("Code", ""), post_adr.get("City", ""), post_adr.get("Region", ""), post_adr.get("Country", "")) else: raise ValueError( "Error: one of the " + type + " type " "address list items does not contain an " "address") else: raise ValueError( "Error: got no address or list of addresses for " "the post address type " + type) else: raise ValueError( "Error: missing type value for post address field") # categories self._delete_vcard_object("CATEGORIES") cat_data = contact_data.get("Categories") if cat_data: if isinstance(cat_data, str): self._add_category([cat_data]) elif isinstance(cat_data, list): only_contains_strings = True for sub_category in cat_data: if not isinstance(sub_category, str): only_contains_strings = False break # if the category list only contains strings, pack all of them # in a single CATEGORIES vcard tag if only_contains_strings: self._add_category(cat_data) else: for sub_category in cat_data: if sub_category: if isinstance(sub_category, str): self._add_category([sub_category]) else: self._add_category(sub_category) else: raise ValueError( "Error: category must be a string or a list of strings") # urls self._delete_vcard_object("URL") self._set_string_list(self._add_webpage, "Webpage", contact_data) # anniversary self._delete_vcard_object("ANNIVERSARY") self._delete_vcard_object("X-ANNIVERSARY") self._set_date('anniversary', 'Anniversary', contact_data) # birthday self._delete_vcard_object("BDAY") self._set_date('birthday', 'Birthday', contact_data) # private objects for supported in self.supported_private_objects: self._delete_vcard_object("X-{}".format(supported.upper())) private_data = contact_data.get("Private") if private_data: if isinstance(private_data, dict): for key, value_list in private_data.items(): if key in self.supported_private_objects: if isinstance(value_list, str): value_list = [value_list] if isinstance(value_list, list): for value in value_list: if value: self._add_private_object(key, value) else: raise ValueError( "Error: got no value or list of values for " "the private object " + key) else: raise ValueError( "Error: private object key " + key + " was " "changed.\nSupported private keys: " + ', '.join( self.supported_private_objects)) else: raise ValueError("Error: private objects must consist of a " "key : value pair.") # notes self._delete_vcard_object("NOTE") self._set_string_list(self._add_note, "Note", contact_data) def to_yaml(self) -> str: """Convert this contact to a YAML string The conversion follows the implicit schema that is given by the internal YAML template of khard. :returns: a YAML representation of this contact """ translation_table = { "Formatted name": self.formatted_name, "Prefix": self._get_name_prefixes(), "First name": self._get_first_names(), "Additional": self._get_additional_names(), "Last name": self._get_last_names(), "Suffix": self._get_name_suffixes(), "Nickname": self.nicknames, "Organisation": self.organisations, "Title": self.titles, "Role": self.roles, "Phone": helpers.yaml_dicts( self.phone_numbers, defaults=["cell", "home"]), "Email": helpers.yaml_dicts( self.emails, defaults=["home", "work"]), "Categories": self.categories, "Note": self.notes, "Webpage": self.webpages, "Anniversary": helpers.yaml_anniversary(self.anniversary, self.version), "Birthday": helpers.yaml_anniversary(self.birthday, self.version), "Address": helpers.yaml_addresses( self.post_addresses, ["Box", "Extended", "Street", "Code", "City", "Region", "Country"], defaults=["home"]) } template = helpers.get_new_contact_template() yaml = YAML() yaml.indent(mapping=4, sequence=4, offset=2) template_obj = yaml.load(template) for key in template_obj: value = translation_table.get(key, None) template_obj[key] = helpers.yaml_clean(value) if self.supported_private_objects: template_obj["Private"] = helpers.yaml_clean( helpers.yaml_dicts( self._get_private_objects(), self.supported_private_objects )) stream = io.StringIO() yaml.dump(template_obj, stream) # posix standard: eof char must be \n return stream.getvalue() + "\n" class CarddavObject(YAMLEditable): def __init__(self, vcard: vobject.vCard, address_book: "address_book.VdirAddressBook", filename: str, supported_private_objects: Optional[List[str]] = None, vcard_version: Optional[str] = None, localize_dates: bool = False) -> None: """Initialize the vcard object. :param vcard: the vCard to wrap :param address_book: a reference to the address book where this vcard is stored :param filename: the path to the file where this vcard is stored :param supported_private_objects: the list of private property names that will be loaded from the actual vcard and represented in this object :param vcard_version: the version of the RFC to use :param localize_dates: should the formatted output of anniversary and birthday be localized or should the iso format be used instead """ self.address_book = address_book self.filename = filename super().__init__(vcard, supported_private_objects, vcard_version, localize_dates) ####################################### # factory methods to create new contact ####################################### @classmethod def new(cls, address_book: "address_book.VdirAddressBook", supported_private_objects: Optional[List[str]] = None, version: Optional[str] = None, localize_dates: bool = False ) -> "CarddavObject": """Create a new CarddavObject from scratch""" vcard = vobject.vCard() uid = helpers.get_random_uid() filename = os.path.join(address_book.path, uid + ".vcf") card = cls(vcard, address_book, filename, supported_private_objects, version, localize_dates) card.uid = uid return card @classmethod def from_file(cls, address_book: "address_book.VdirAddressBook", filename: str, query: Query = AnyQuery(), supported_private_objects: Optional[List[str]] = None, localize_dates: bool = False) -> Optional["CarddavObject"]: """Load a CarddavObject object from a .vcf file if the plain file matches the query. :param address_book: the address book where this contact is stored :param filename: the file name of the .vcf file :param query: the query to search in the source file or None to load the file unconditionally :param supported_private_objects: the list of private property names that will be loaded from the actual vcard and represented in this object :param localize_dates: should the formatted output of anniversary and birthday be localized or should the iso format be used instead :returns: the loaded CarddavObject or None if the file didn't match """ with open(filename, "r") as file: contents = file.read() if query.match(contents): try: vcard = vobject.readOne(contents) except Exception: logger.warning("Filtering some problematic tags from %s", filename) # if creation fails, try to repair some vcard attributes vcard = vobject.readOne(cls._filter_invalid_tags(contents)) return cls(vcard, address_book, filename, supported_private_objects, None, localize_dates) return None @classmethod def from_yaml(cls, address_book: "address_book.VdirAddressBook", yaml: str, supported_private_objects: Optional[List[str]] = None, version: Optional[str] = None, localize_dates: bool = False ) -> "CarddavObject": """Use this if you want to create a new contact from user input.""" contact = cls.new(address_book, supported_private_objects, version, localize_dates=localize_dates) contact.update(yaml) return contact @classmethod def clone_with_yaml_update(cls, contact: "CarddavObject", yaml: str, localize_dates: bool = False ) -> "CarddavObject": """ Use this if you want to clone an existing contact and replace its data with new user input in one step. """ contact = cls( copy.deepcopy(contact.vcard), address_book=contact.address_book, filename=contact.filename, supported_private_objects=contact.supported_private_objects, localize_dates=localize_dates) contact.update(yaml) return contact ###################################### # overwrite some default class methods ###################################### def __eq__(self, other: object) -> bool: return isinstance(other, CarddavObject) and \ self.pretty(False) == other.pretty(False) def __ne__(self, other: object) -> bool: return not self == other def pretty(self, verbose: bool = True) -> str: strings = [] # Every vcard must have an FN field per the RFC. strings.append("Name: {}".format(self.formatted_name)) # name if self._get_first_names() or self._get_last_names(): names = self._get_name_prefixes() + self._get_first_names() + \ self._get_additional_names() + self._get_last_names() + \ self._get_name_suffixes() strings.append("Full name: {}".format(list_to_string(names, " "))) # organisation if self.organisations: strings += helpers.convert_to_yaml( "Organisation", self.organisations, 0, -1, False) # address book name if verbose: strings.append("Address book: {}".format(self.address_book)) # kind if self.kind is not None: strings.append("Kind: {}".format(self.kind)) # person related information if (self.birthday is not None or self.anniversary is not None or self.nicknames or self.roles or self.titles): strings.append("General:") if self.anniversary: strings.append(" Anniversary: {}".format( self.get_formatted_anniversary())) if self.birthday: strings.append( " Birthday: {}".format(self.get_formatted_birthday())) if self.nicknames: strings += helpers.convert_to_yaml( "Nickname", self.nicknames, 4, -1, False) if self.roles: strings += helpers.convert_to_yaml( "Role", self.roles, 4, -1, False) if self.titles: strings += helpers.convert_to_yaml( "Title", self.titles, 4, -1, False) # phone numbers if self.phone_numbers: strings.append("Phone") for type, number_list in sorted(self.phone_numbers.items(), key=lambda k: k[0].lower()): strings += helpers.convert_to_yaml( type, number_list, 4, -1, False) # email addresses if self.emails: strings.append("E-Mail") for type, email_list in sorted(self.emails.items(), key=lambda k: k[0].lower()): strings += helpers.convert_to_yaml( type, email_list, 4, -1, False) # post addresses if self.post_addresses: strings.append("Address") for type, post_adr_list in sorted( self.get_formatted_post_addresses().items(), key=lambda k: k[0].lower()): strings += helpers.convert_to_yaml( type, post_adr_list, 4, -1, False) # private objects if self._get_private_objects().keys(): strings.append("Private:") for object in self.supported_private_objects: if object in self._get_private_objects(): strings += helpers.convert_to_yaml( object, self._get_private_objects().get(object), 4, -1, False) # misc stuff if self.categories or self.webpages or self.notes or (verbose and self.uid): strings.append("Miscellaneous") if verbose and self.uid: strings.append(" UID: {}".format(self.uid)) if self.categories: strings += helpers.convert_to_yaml( "Categories", self.categories, 4, -1, False) if self.webpages: strings += helpers.convert_to_yaml( "Webpage", self.webpages, 4, -1, False) if self.notes: strings += helpers.convert_to_yaml( "Note", self.notes, 4, -1, False) return '\n'.join(strings) + '\n' def write_to_file(self, overwrite: bool = False) -> None: # make sure, that every contact contains a uid if not self.uid: self.uid = helpers.get_random_uid() try: with atomic_write(self.filename, overwrite=overwrite) as f: f.write(self.vcard.serialize()) except vobject.base.ValidateError as err: print("Error: Vcard is not valid.\n{}".format(err)) sys.exit(4) except OSError as err: print("Error: Can't write\n{}".format(err)) sys.exit(4) def delete_vcard_file(self) -> None: try: os.remove(self.filename) except OSError as err: logger.error("Can not remove vCard file: %s", err) @classmethod def get_properties(cls) -> List[str]: """Return the property names that are defined on this class.""" return [name for name in dir(CarddavObject) if isinstance(getattr(CarddavObject, name), property)] khard-0.19.1/khard/cli.py000066400000000000000000000562541453070076200151250ustar00rootroot00000000000000"""Command line parsing and configuration logic for khard""" import argparse import logging import sys from typing import List, Tuple from .actions import Actions from .carddav_object import CarddavObject from .config import Config, ConfigError from .query import AndQuery, AnyQuery, FieldQuery, NameQuery, parse from .version import version as khard_version logger = logging.getLogger(__name__) class FieldsArgument: """A factory to create callable objects for add_argument's type= parameter. The object can parse comma separated strings into list of strings, and can also check if the single elements are spelled correctly. """ def __init__(self, *choices: str, nested: bool = False) -> None: """Initialize the factory :param choices: the comma separated strings must be one of these :param nested: if this is true the comma separated strings may designate nested fields and only the first component (separated by a dot) must match on of the choices """ self._choices = sorted(choices) self._nested = nested def __call__(self, argument: str) -> List[str]: ret = [] for candidate in argument.split(","): candidate = candidate.lower() test = candidate.split('.')[0] if self._nested else candidate if test in self._choices: ret.append(candidate) else: choices = ', '.join('"{}"'.format(c) for c in self._choices) raise argparse.ArgumentTypeError( '"{}" is not an accepted field. Accepted fields are {}.' .format(test, choices)) return ret def create_parsers() -> Tuple[argparse.ArgumentParser, argparse.ArgumentParser]: """Create two argument parsers. The first parser is mainly used to find the config file which can than be used to set some default values on the second parser. The second parser can parse the remainder of the command line with the subcommand and all further options and arguments. :returns: the two parsers for the first and the second parsing pass """ # Create the base argument parser. It will be reused for the first and # second round of argument parsing. base = argparse.ArgumentParser( description="Khard is a carddav address book for the console", formatter_class=argparse.RawTextHelpFormatter, add_help=False) base.add_argument("-c", "--config", help="config file to use") base.add_argument("--debug", action="store_true", help="enable debug output") base.add_argument("--skip-unparsable", action="store_true", help="skip unparsable vcard files") base.add_argument("-v", "--version", action="version", version="Khard version {}".format(khard_version)) # Create the first argument parser. Its main job is to set the correct # config file. The config file is needed to get the default command if no # subcommand is given on the command line. This parser will ignore most # arguments, as they will be parsed by the second parser. first_parser = argparse.ArgumentParser(parents=[base]) first_parser.add_argument('remainder', nargs=argparse.REMAINDER) # Create the main argument parser. It will handle the complete command # line only ignoring the config and debug options as these have already # been set. parser = argparse.ArgumentParser(parents=[base]) # create address book subparsers with different help texts default_addressbook_parser = argparse.ArgumentParser(add_help=False) default_addressbook_parser.add_argument( "-a", "--addressbook", default=[], type=lambda x: [y.strip() for y in x.split(",")], help="Specify one or several comma separated address book names to " "narrow the list of contacts") new_addressbook_parser = argparse.ArgumentParser(add_help=False) new_addressbook_parser.add_argument( "-a", "--addressbook", default=[], type=lambda x: [y.strip() for y in x.split(",")], help="Specify address book in which to create the new contact") copy_move_addressbook_parser = argparse.ArgumentParser(add_help=False) copy_move_addressbook_parser.add_argument( "-a", "--addressbook", default=[], type=lambda x: [y.strip() for y in x.split(",")], help="Specify one or several comma separated address book names to " "narrow the list of contacts") copy_move_addressbook_parser.add_argument( "-A", "--target-addressbook", default=[], type=lambda x: [y.strip() for y in x.split(",")], help="Specify target address book in which to copy / move the " "selected contact") merge_addressbook_parser = argparse.ArgumentParser(add_help=False) merge_addressbook_parser.add_argument( "-a", "--addressbook", default=[], type=lambda x: [y.strip() for y in x.split(",")], help="Specify one or several comma separated address book names to " "narrow the list of source contacts") merge_addressbook_parser.add_argument( "-A", "--target-addressbook", default=[], type=lambda x: [y.strip() for y in x.split(",")], help="Specify one or several comma separated address book names to " "narrow the list of target contacts") # create input file subparsers with different help texts email_header_input_file_parser = argparse.ArgumentParser(add_help=False) email_header_input_file_parser.add_argument( "-i", "--input-file", default="-", help="Specify input email header file name or use stdin by default") template_input_file_parser = argparse.ArgumentParser(add_help=False) template_input_file_parser.add_argument( "-i", "--input-file", default="-", help="Specify input template file name or use stdin by default") template_input_file_parser.add_argument( "--open-editor", "--edit", action="store_true", help="Open the " "default text editor after successful creation of new contact") # create sort subparser sort_parser = argparse.ArgumentParser(add_help=False) sort_parser.add_argument( "-d", "--display", choices=("first_name", "last_name", "formatted_name"), help="Display names in contact table by first or last name") sort_parser.add_argument( "-g", "--group-by-addressbook", action="store_true", help="Group contact table by address book") sort_parser.add_argument( "-r", "--reverse", action="store_true", help="Reverse order of contact table") sort_parser.add_argument( "-s", "--sort", choices=("first_name", "last_name", "formatted_name"), help="Sort contact table by first or last name") # create search subparsers default_search_parser = argparse.ArgumentParser(add_help=False) default_search_parser.add_argument( "-f", "--search-in-source-files", action="store_true", help="Look into source vcf files to speed up search queries in " "large address books. Beware that this option could lead " "to incomplete results.") # TODO remove after version 0.19 default_search_parser.add_argument( "-e", "--strict-search", action="store_true", help=argparse.SUPPRESS) # TODO remove after version 0.19 default_search_parser.add_argument( "-u", "--uid", type=lambda x: FieldQuery("uid", x), help=argparse.SUPPRESS) default_search_parser.add_argument( "search_terms", nargs="*", metavar="search terms", type=parse, default=[], help="search in specified or all fields to find matching " "contact") merge_search_parser = argparse.ArgumentParser(add_help=False) merge_search_parser.add_argument( "-f", "--search-in-source-files", action="store_true", help="Look into source vcf files to speed up search queries in " "large address books. Beware that this option could lead " "to incomplete results.") # TODO remove after version 0.19 merge_search_parser.add_argument( "-e", "--strict-search", action="store_true", help=argparse.SUPPRESS) merge_search_parser.add_argument( "-t", "--target-contact", "--target", type=parse, help="search for a matching target contact") # TODO remove after version 0.19 merge_search_parser.add_argument( "-u", "--uid", type=lambda x: FieldQuery("uid", x), help=argparse.SUPPRESS) # TODO remove after version 0.19 merge_search_parser.add_argument( "-U", "--target-uid", type=lambda x: FieldQuery("uid", x), help=argparse.SUPPRESS) merge_search_parser.add_argument( "source_search_terms", nargs="*", metavar="source", type=parse, default=[], help="search in specified or all fields to find matching source " "contact") # create subparsers for actions subparsers = parser.add_subparsers(dest="action", metavar="SUBCOMMAND") list_parser = subparsers.add_parser( "list", aliases=Actions.get_aliases("list"), parents=[default_addressbook_parser, default_search_parser, sort_parser], description="list all (selected) contacts", help="list all (selected) contacts") list_parser.add_argument( "-p", "--parsable", action="store_true", help="Machine readable format: uid\\tcontact_name\\taddress_book_name") field_argument = FieldsArgument('index', 'name', 'phone', 'email', *CarddavObject.get_properties(), nested=True) list_parser.add_argument( "-F", "--fields", default=[], type=field_argument, help="Comma separated list of fields to show " "(use -F help for a list of top level fields)") show_parser = subparsers.add_parser( "show", aliases=Actions.get_aliases("show"), parents=[default_addressbook_parser, default_search_parser, sort_parser], description="display detailed information about one contact", help="display detailed information about one contact") show_parser.add_argument( "--format", choices=("pretty", "yaml", "vcard"), default="pretty", help="select the output format") show_parser.add_argument( "-o", "--output-file", default=sys.stdout, type=argparse.FileType("w"), help="Specify output template file name or use stdout by default") subparsers.add_parser("template", help="print an empty yaml template") birthdays_parser = subparsers.add_parser( "birthdays", aliases=Actions.get_aliases("birthdays"), parents=[default_addressbook_parser, default_search_parser], description="list birthdays (sorted by month and day)", help="list birthdays (sorted by month and day)") birthdays_parser.add_argument( "-d", "--display", choices=("first_name", "last_name", "formatted_name"), help="Display names in birthdays table by first or last name") birthdays_parser.add_argument( "-p", "--parsable", action="store_true", help="Machine readable format: name\\tdate") email_parser = subparsers.add_parser( "email", aliases=Actions.get_aliases("email"), parents=[default_addressbook_parser, default_search_parser, sort_parser], description="list email addresses", help="list email addresses") email_parser.add_argument( "-p", "--parsable", action="store_true", help="Machine readable format: address\\tname\\ttype") email_parser.add_argument( "--remove-first-line", action="store_true", help="remove \"searching for '' ...\" line from parsable output " "(that line is required by mutt)") phone_parser = subparsers.add_parser( "phone", aliases=Actions.get_aliases("phone"), parents=[default_addressbook_parser, default_search_parser, sort_parser], description="list phone numbers", help="list phone numbers") phone_parser.add_argument( "-p", "--parsable", action="store_true", help="Machine readable format: number\\tname\\ttype") post_address_parser = subparsers.add_parser( "postaddress", aliases=Actions.get_aliases("postaddress"), parents=[default_addressbook_parser, default_search_parser, sort_parser], description="list postal addresses", help="list postal addresses") post_address_parser.add_argument( "-p", "--parsable", action="store_true", help="Machine readable format: address\\tname\\ttype") new_parser = subparsers.add_parser( "new", aliases=Actions.get_aliases("new"), parents=[new_addressbook_parser, template_input_file_parser], description="create a new contact", help="create a new contact") new_parser.add_argument( "--vcard-version", choices=("3.0", "4.0"), dest='preferred_version', help="Select preferred vcard version for new contact") add_email_parser = subparsers.add_parser( "add-email", aliases=Actions.get_aliases("add-email"), parents=[default_addressbook_parser, email_header_input_file_parser, default_search_parser, sort_parser], description="Extract email address from the \"From:\" field of an " "email header and add to an existing contact or create a new one", help="Extract email address from the \"From:\" field of an email " "header and add to an existing contact or create a new one") add_email_parser.add_argument( "--vcard-version", choices=("3.0", "4.0"), dest='preferred_version', help="Select preferred vcard version for new contact") add_email_parser.add_argument( "-H", "--headers", default=["from"], type=lambda x: [y.lower() for y in x.split(",")], help="Extract contacts from the given comma separated header fields. " "`all` searches all headers.") add_email_parser.add_argument( "--skip-already-added", action="store_true", help="Skip already added email addresses") subparsers.add_parser( "merge", aliases=Actions.get_aliases("merge"), parents=[merge_addressbook_parser, merge_search_parser, sort_parser], description="merge two contacts", help="merge two contacts") edit_parser = subparsers.add_parser( "edit", aliases=Actions.get_aliases("edit"), parents=[default_addressbook_parser, template_input_file_parser, default_search_parser, sort_parser], description="edit the data of a contact", help="edit the data of a contact") edit_parser.add_argument( "--format", choices=("yaml", "vcard"), default="yaml", help="specify the file format to use when editing") subparsers.add_parser( "copy", aliases=Actions.get_aliases("copy"), parents=[copy_move_addressbook_parser, default_search_parser, sort_parser], description="copy a contact to a different addressbook", help="copy a contact to a different addressbook") subparsers.add_parser( "move", aliases=Actions.get_aliases("move"), parents=[copy_move_addressbook_parser, default_search_parser, sort_parser], description="move a contact to a different addressbook", help="move a contact to a different addressbook") remove_parser = subparsers.add_parser( "remove", aliases=Actions.get_aliases("remove"), parents=[default_addressbook_parser, default_search_parser, sort_parser], description="remove a contact", help="remove a contact") remove_parser.add_argument( "--force", action="store_true", help="Remove contact without confirmation") subparsers.add_parser( "addressbooks", aliases=Actions.get_aliases("addressbooks"), description="list addressbooks", help="list addressbooks") subparsers.add_parser( "filename", aliases=Actions.get_aliases("filename"), parents=[default_addressbook_parser, default_search_parser, sort_parser], description="list filenames of all matching contacts", help="list filenames of all matching contacts") # Replace the print_help method of the first parser with the print_help # method of the main parser. This makes it possible to have the first # parser handle the help option so that command line help can be printed # without parsing the config file first (which is a problem if there are # errors in the config file). The config file will still be parsed before # the full command line is parsed so errors in the config file might be # reported before command line syntax errors. first_parser.print_help = parser.print_help # type: ignore return first_parser, parser def parse_args(argv: List[str]) -> Tuple[argparse.Namespace, Config]: """Parse the command line arguments and return the namespace that was creates by argparse.ArgumentParser.parse_args(). :param argv: the command line arguments :returns: the namespace parsed from the command line """ first_parser, parser = create_parsers() # Parse the command line with the first argument parser. It will handle # the config option (its main job) and also the help, version and debug # options as these do not depend on anything else. args = first_parser.parse_args(argv) remainder = args.remainder # Set the log level to debug if given on the command line. This is done # before parsing the config file to make it possible to debug the parsing # of the config file. if "debug" in args and args.debug: logging.basicConfig(level=logging.DEBUG) # Create the config instance. try: config = Config(args.config) except ConfigError as err: parser.exit(3, "Error in config file: {}\n".format(err)) except OSError as err: parser.exit(3, "Error reading config file: {}\n".format(err)) logger.debug("Finished parsing config=%s", vars(config)) # Check the log level again and merge the value from the command line with # the config file. if ("debug" in args and args.debug) or config.debug: logging.basicConfig(level=logging.DEBUG) logger.debug("first args=%s", args) # Set the default command from the config file if none was given on the # command line. if not remainder or remainder[0] not in Actions.get_all(): if config.default_action is None: parser.error("Missing subcommand on command line or default action" " parameter in config.") remainder.insert(0, config.default_action) logger.debug("updated remainder=%s", remainder) # Save the last option that needs to be carried from the first parser run # to the second. skip = args.skip_unparsable # Parse the remainder of the command line. All options from the previous # run have already been processed and are not needed any more. args = parser.parse_args(remainder) # Restore settings that are left from the first parser run. args.skip_unparsable = skip logger.debug("second args=%s", args) # An integrity check for some options. if "uid" in args and args.uid and ( ("search_terms" in args and args.search_terms) or ("source_search_terms" in args and args.source_search_terms)): # If an uid was given we require that no search terms where given. parser.error("You can not give arbitrary search terms and --uid at the" " same time.") if "target_uid" in args and args.target_uid and args.target_contact: parser.error("You can not give arbitrary target search terms and " "--target-uid at the same time.") # Deprecation workaround if "strict_search" in args and args.strict_search: logger.error("Deprecated option --strict-search, use the new query " "syntax instead.") if "search_terms" in args: args.search_terms = [NameQuery(t.get_term()) for t in args.search_terms] if "source_search_terms" in args: args.source_search_terms = [NameQuery(t.get_term()) for t in args.source_search_terms] if "taget_search_terms" in args: args.taget_search_terms = [NameQuery(t.get_term()) for t in args.taget_search_terms] # Build conjunctive queries. If uid was given the list of search terms # will be empty. If no uid was given it will be None. if "source_search_terms" in args: args.source_search_terms = AndQuery.reduce(args.source_search_terms, args.uid) if "search_terms" in args: args.search_terms = AndQuery.reduce(args.search_terms, args.uid) if "target_contact" in args: # Only one of target_contact or target_uid can be set. args.target_contact = args.target_contact or args.target_uid \ or AnyQuery() # Remove uid values from the args Namespace. They have been merged into # the search terms above. # TODO remove after version 0.19 if "uid" in args: if args.uid: logger.error("Deprecated option --uid, use the new query syntax " "instead.") del args.uid if "target_uid" in args: if args.target_uid: logger.error("Deprecated option --target-uid, use the new query " "syntax instead.") del args.target_uid return args, config def merge_args_into_config(args: argparse.Namespace, config: Config) -> Config: """Merge the parsed arguments from argparse into the config object. :param args: the parsed command line arguments :param config: the parsed config file :returns: the merged config object """ config.merge_args(args) # Now we can safely initialize the address books as all command line # options have been incorporated into the config object. config.init_address_books() # If the user could but did not specify address books on the command line # it means they want to use all address books in that place. if "addressbook" in args and not args.addressbook: args.addressbook = [abook.name for abook in config.abooks] if "target_addressbook" in args and not args.target_addressbook: args.target_addressbook = [abook.name for abook in config.abooks] return config def init(argv: List[str]) -> Tuple[argparse.Namespace, Config]: """Initialize khard by parsing the command line and reading the config file :param argv: the command line arguments :returns: the parsed command line and the fully initialized config """ args, conf = parse_args(argv) # if args.action isn't one of the defined actions, it must be an alias if args.action not in Actions.get_actions(): # convert alias to corresponding action # example: "ls" --> "list" args.action = Actions.get_action(args.action) try: return args, merge_args_into_config(args, conf) except ConfigError as err: sys.exit(str(err)) khard-0.19.1/khard/config.py000066400000000000000000000224201453070076200156070ustar00rootroot00000000000000"""Loading and validation of the configuration file""" from argparse import Namespace import io import locale import logging import os import re import shlex from typing import Iterable, Dict, List, Optional, Union import configobj try: # since configobj 5.1 from configobj import validate except ImportError: import validate from .actions import Actions from .address_book import AddressBookCollection, AddressBookNameError, \ VdirAddressBook from .query import Query logger = logging.getLogger(__name__) # This is the type of the config file parameter accepted by the configobj # library: # https://configobj.readthedocs.io/en/latest/configobj.html#reading-a-config-file ConfigFile = Union[str, List[str], io.StringIO] class ConfigError(Exception): """Errors during config file parsing""" def validate_command(value: List[str]) -> List[str]: """Special validator to check shell commands The input must either be a list of strings or a string that shlex.split can parse into such. :param value: the config value to validate :returns: the command after validation :raises: validate.ValidateError """ logger.debug("validating %s", value) try: return validate.is_string_list(value) except validate.VdtTypeError: logger.debug('continue with %s', value) if isinstance(value, str): try: return shlex.split(value) except ValueError as err: raise validate.ValidateError( 'Error when parsing shell command "{}": {}'.format( value, err)) raise def validate_action(value: str) -> str: """Check that the given value is a valid action. :param value: the config value to check :returns: the same value :raises: validate.ValidateError """ return validate.is_option(value, *Actions.get_actions()) def validate_private_objects(value: List[str]) -> List[str]: """Check that the private objects are reasonable :param value: the config value to check :returns: the list of private objects :raises: validate.ValidateError """ value = validate.is_string_list(value) for obj in value: if re.search("[^a-z0-9-]", obj, re.IGNORECASE): raise validate.ValidateError( 'Private objects may only contain letters, digits and the' ' \"-\" character.') if obj.startswith("-") or obj.endswith("-"): raise validate.ValidateError( "A \"-\" in a private object label must be at least " "surrounded by one letter or digit.") return value class Config: """Parse and validate the config file with configobj.""" supported_vcard_versions = ("3.0", "4.0") def __init__(self, config_file: Optional[ConfigFile] = None) -> None: self.config: configobj.ConfigObj self.abooks: AddressBookCollection locale.setlocale(locale.LC_ALL, '') config = self._load_config_file(config_file) self.config = self._validate(config) self._set_attributes() @classmethod def _load_config_file(cls, config_file: Optional[ConfigFile] ) -> configobj.ConfigObj: """Find and load the config file. :param config_file: the path to the config file to load :returns: the loaded config file """ if not config_file: xdg_config_home = os.getenv("XDG_CONFIG_HOME", os.path.expanduser("~/.config")) config_file = os.getenv("KHARD_CONFIG", os.path.join( xdg_config_home, "khard", "khard.conf")) configspec = os.path.join(os.path.dirname(__file__), 'data', 'config.spec') try: return configobj.ConfigObj( infile=config_file, configspec=configspec, interpolation=False, file_error=True) except configobj.ConfigObjError as err: raise ConfigError(str(err)) @staticmethod def _validate(config: configobj.ConfigObj) -> configobj.ConfigObj: vdr = validate.Validator() vdr.functions.update({'command': validate_command, 'action': validate_action, 'private_objects': validate_private_objects}) result = config.validate(vdr, preserve_errors=True) result = configobj.flatten_errors(config, result) if not config['addressbooks'].keys(): result.append((['addressbooks'], '__any__', 'No address book entries available')) for path, key, exception in result: logger.error("Error in config file, %s: %s", ".".join([*path, key]), exception) if result: raise ConfigError return config def _set_attributes(self) -> None: """Set the attributes from the internal config instance on self.""" general = self.config["general"] self.debug = general["debug"] self.editor = ( general["editor"] or shlex.split(os.environ.get("EDITOR", "vim")) ) self.merge_editor = general["merge_editor"] \ or os.environ.get("MERGE_EDITOR", "vimdiff") self.default_action = general["default_action"] table = self.config["contact table"] vcard = self.config["vcard"] self.sort = table["sort"] # if display by name attribute is not present in the config file use # the sort attribute value for backwards compatibility self.display = table.get("display", self.sort) self.localize_dates = table['localize_dates'] self.private_objects = vcard['private_objects'] self.preferred_vcard_version = vcard['preferred_version'] self.search_in_source_files = vcard['search_in_source_files'] self.skip_unparsable = vcard['skip_unparsable'] self.group_by_addressbook = table['group_by_addressbook'] self.reverse = table['reverse'] self.show_nicknames = table['show_nicknames'] self.preferred_email_address_type = table['preferred_email_address_type'] self.preferred_phone_number_type = table['preferred_phone_number_type'] self.show_uids = table['show_uids'] self.show_kinds = table['show_kinds'] def init_address_books(self) -> None: """Initialize the internal address book collection. This method should only be called *after* merging in the command line options as they can hold some options that are relevant for the loading of the address books. """ section = self.config['addressbooks'] kwargs = {'private_objects': self.private_objects, 'localize_dates': self.localize_dates, 'skip': self.skip_unparsable} try: self.abooks = AddressBookCollection( "tmp", [VdirAddressBook(name, section[name]['path'], **kwargs) for name in section]) except OSError as err: raise ConfigError(str(err)) def get_address_books(self, names: Iterable[str], queries: Dict[str, Query] ) -> AddressBookCollection: """Load all address books with the given names. :param names: the address books to load :param queries: a mapping of address book names to search queries :returns: the loaded address books """ all_names = {str(book) for book in self.abooks} if not names: names = all_names elif not all_names.issuperset(names): raise AddressBookNameError( "The following address books are not defined: {}".format( ', '.join(set(names) - all_names))) # load address books which are defined in the configuration file collection = AddressBookCollection("tmp", [self.abooks[name] for name in names]) # We can not use AddressBookCollection.load here because we want to # select the collection based on the address book. for abook in collection: abook.load(queries[abook.name], self.search_in_source_files) return collection def merge(self, other: Union[configobj.ConfigObj, Dict]) -> None: """Merge the config with some other dict or ConfigObj :param other: the other dict or ConfigObj to merge into self :returns: None """ self.config.merge(other) self._validate(self.config) self._set_attributes() def merge_args(self, args: Namespace) -> None: """Merge options from a flat argparse object. :param argparse.Namespace args: the parsed arguments to incorporate """ skel = {'general': ['debug'], 'contact table': ['reverse', 'group_by_addressbook', 'display', 'sort'], 'vcard': ['search_in_source_files', 'skip_unparsable', 'preferred_version'], } merge = {sec: {key: getattr(args, key) for key in opts if key in args and getattr(args, key) is not None} for sec, opts in skel.items()} logger.debug('Merging in %s', merge) self.merge(merge) logger.debug('Merged: %s', vars(self)) khard-0.19.1/khard/data/000077500000000000000000000000001453070076200147015ustar00rootroot00000000000000khard-0.19.1/khard/data/config.spec000066400000000000000000000016541453070076200170300ustar00rootroot00000000000000[general] debug = boolean(default=False) default_action = action(default=None) editor = command(default=None) merge_editor = command(default=None) [contact table] display = option('first_name', 'last_name', 'formatted_name', default='first_name') group_by_addressbook = boolean(default=False) localize_dates = boolean(default=True) preferred_email_address_type = string_list(default=list('pref')) preferred_phone_number_type = string_list(default=list('pref')) reverse = boolean(default=False) show_nicknames = boolean(default=False) show_uids = boolean(default=True) show_kinds = boolean(default=False) sort = option('first_name', 'last_name', 'formatted_name', default='first_name') [vcard] preferred_version = option('3.0', '4.0', default='3.0') private_objects = private_objects(default=list())) search_in_source_files = boolean(default=False) skip_unparsable = boolean(default=False) [addressbooks] [[__many__]] path = string khard-0.19.1/khard/data/template.yaml000066400000000000000000000057301453070076200174050ustar00rootroot00000000000000# Every contact must contain a formatted name, it will be autofilled # from the full name below if not given. Formatted name : # name components # every entry may contain a string or a list of strings # format: # First name : name1 # Additional : # - name2 # - name3 # Last name : name4 Prefix : First name : Additional : Last name : Suffix : # nickname # may contain a string or a list of strings Nickname : # important dates # Formats: # vcard 3.0 and 4.0: yyyy-mm-dd or yyyy-mm-ddTHH:MM:SS # vcard 4.0 only: --mm-dd or text= string value # anniversary Anniversary : # birthday Birthday : # organisation # format: # Organisation : company # or # Organisation : # - company1 # - company2 # or # Organisation : # - # - company # - unit Organisation : # organisation title and role # every entry may contain a string or a list of strings # # title at organisation # example usage: research scientist Title : # role at organisation # example usage: project leader Role : # phone numbers # format: # Phone: # type1, type2: number # type3: # - number1 # - number2 # custom: number # allowed types: # vcard 3.0: At least one of bbs, car, cell, fax, home, isdn, msg, modem, # pager, pcs, pref, video, voice, work # vcard 4.0: At least one of home, work, pref, text, voice, fax, cell, video, # pager, textphone # Alternatively you may use a single custom label (only letters). # But beware, that not all address book clients will support custom labels. Phone : cell : home : # email addresses # format like phone numbers above # allowed types: # vcard 3.0: At least one of home, internet, pref, work, x400 # vcard 4.0: At least one of home, internet, pref, work # Alternatively you may use a single custom label (only letters). Email : home : work : # post addresses # allowed types: # vcard 3.0: At least one of dom, intl, home, parcel, postal, pref, work # vcard 4.0: At least one of home, pref, work # Alternatively you may use a single custom label (only letters). Address : home : Box : Extended : Street : Code : City : Region : Country : # categories or tags # format: # Categories : single category # or # Categories : # - category1 # - category2 Categories : # web pages # may contain a string or a list of strings Webpage : # private objects # define your own private objects in the vcard section of your khard config file # example: # [vcard] # private_objects = Jabber, Skype, Twitter # these objects are stored with a leading "X-" before the object name in the # vcard files. # every entry may contain a string or a list of strings Private : {} # notes # may contain a string or a list of strings # for multi-line notes use: # Note : | # line one # line two Note : khard-0.19.1/khard/formatter.py000066400000000000000000000101321453070076200163420ustar00rootroot00000000000000"""Formatting and sorting of contacts""" from typing import Dict, List from .carddav_object import CarddavObject class Formatter: """A formatter for CarddavObject. It receives some settings on initialisation which influence the formatting of the contact. """ FIRST = "first_name" LAST = "last_name" FORMAT = "formatted_name" def __init__(self, display: str, preferred_email: List[str], preferred_phone: List[str], show_nicknames: bool, parsable: bool) -> None: self._display = display self._preferred_email = preferred_email self._preferred_phone = preferred_phone self._show_nicknames = show_nicknames self._parsable = parsable @staticmethod def format_labeled_field(field: Dict[str, List[str]], preferred: List[str] ) -> str: """Format a labeled field from a vCard for display, the first entry under the preferred label will be returned :param field: the labeled field, this must not be empty! :param preferred: the order of preferred labels :returns: the formatted field entry """ # filter out preferred type if set in config file found = [] for pref in preferred: for key in field: if pref.lower() in key.lower(): found.append(key) if found: break keys = found or [k for k in field if "pref" in k.lower()] \ or field.keys() # get first key in alphabetical order first_key = sorted(keys, key=lambda k: k.lower())[0] return "{}: {}".format(first_key, sorted(field.get(first_key, []))[0]) def get_special_field(self, vcard: CarddavObject, field: str) -> str: """Returns certain fields with specific formatting options (for support of some list command options).""" if field == 'name': if self._display == self.FIRST: name = vcard.get_first_name_last_name() elif self._display == self.FORMAT: name = vcard.formatted_name else: name = vcard.get_last_name_first_name() if vcard.nicknames and self._show_nicknames and not self._parsable: return "{} (Nickname: {})".format(name, vcard.nicknames[0]) return name if field == 'phone': if vcard.phone_numbers: return self.format_labeled_field(vcard.phone_numbers, self._preferred_phone) if field == 'email': if vcard.emails: return self.format_labeled_field(vcard.emails, self._preferred_email) if field == 'kind': return vcard.kind return "" @staticmethod def get_nested_field(vcard: CarddavObject, field: str) -> str: """Returns the value of a nested field from a string get_nested_field(vcard,'emails.home.1') is equivalent to vcard.emails['home'][1]. :param vcard: the contact from which to get the field :param field: a field specification :returns: the nested field, or the empty string if it didn't exist """ attr_name = field.split('.')[0] val = '' if hasattr(vcard, attr_name): val = getattr(vcard, attr_name) # Loop through separate parts, changing val to be the head element. for partial in field.split('.')[1:]: if isinstance(val, dict) and partial in val: val = val[partial] elif partial.isdigit() and isinstance(val, list) \ and len(val) > int(partial): val = val[int(partial)] # TODO: Completely support case insensitive indexing elif isinstance(val, dict) and partial.upper() in val: val = val[partial.upper()] else: val = '' # Convert None and other falsy values to the empty string return val or '' khard-0.19.1/khard/helpers/000077500000000000000000000000001453070076200154325ustar00rootroot00000000000000khard-0.19.1/khard/helpers/__init__.py000066400000000000000000000251141453070076200175460ustar00rootroot00000000000000"""Some helper functions for khard""" from datetime import datetime import pathlib import random import string from typing import Any, Dict, List, Optional, Sequence, Union from ruamel.yaml.scalarstring import LiteralScalarString from .typing import list_to_string, PostAddress YamlPostAddresses = Dict[str, Union[List[Dict[str, Any]], Dict[str, Any]]] def pretty_print(table: List[List[str]], justify: str = "L") -> str: """Converts a list of lists into a string formatted like a table with spaces separating fields and newlines separating rows""" # support for multiline columns line_break_table = [] for row in table: # get line break count most_line_breaks_in_row = 0 for col in row: if str(col).count("\n") > most_line_breaks_in_row: most_line_breaks_in_row = col.count("\n") # fill table rows for index in range(0, most_line_breaks_in_row+1): line_break_row = [] for col in row: try: line_break_row.append(str(col).split("\n")[index]) except IndexError: line_break_row.append("") line_break_table.append(line_break_row) # replace table variable table = line_break_table # get width for every column column_widths = [0] * len(table[0]) offset = 3 for row in table: for index, col in enumerate(row): width = len(str(col)) if width > column_widths[index]: column_widths[index] = width table_row_list = [] for row in table: single_row_list = [] for col_index, col in enumerate(row): if justify == "R": # justify right formated_column = str(col).rjust(column_widths[col_index] + offset) elif justify == "L": # justify left formated_column = str(col).ljust(column_widths[col_index] + offset) elif justify == "C": # justify center formated_column = str(col).center(column_widths[col_index] + offset) single_row_list.append(formated_column) table_row_list.append(' '.join(single_row_list)) return '\n'.join(table_row_list) def get_random_uid() -> str: return ''.join([random.choice(string.ascii_lowercase + string.digits) for _ in range(36)]) def yaml_clean(value: Union[str, Sequence, Dict[str, Any], None] ) -> Union[Sequence, str, Dict[str, Any], LiteralScalarString, None]: """ sanitize yaml values according to some simple principles: 1. empty values are none, so ruamel does not print an empty list/str 2. list with only one item become this item 3. multiline strings use the YAML literal style: https://yaml.org/spec/1.2.2/#literal-style :param value: the value to be sanitized :returns: the sanitized value """ # special case for empty values if not value: return None if isinstance(value, list): # special case for single item lists: if len(value) == 1 and isinstance(value[0], str): return value[0] elif isinstance(value, str): if "\n" in value: return LiteralScalarString(value) return value def yaml_dicts( data: Optional[Dict[str, Any]], defaults: Union[Dict[str, Any], List[str], None] = None ) -> Optional[Dict[str, Any]]: """ format a dict according to template, if empty use specified defaults :param data: dict of contact data with keys as types and values as values. :param defaults: default dict to be used if data is empty. :returns: dict of types and values. """ if not data: if isinstance(defaults, list): return {key: None for key in defaults} return defaults data_dict = {} for key, value_list in sorted(data.items(), key=lambda k: k[0].lower()): data_dict[key] = value_list[0] if len(value_list) == 1 else value_list return data_dict def yaml_addresses(addresses: Optional[Dict[str, List[PostAddress]]], address_properties: List[str], defaults: Optional[List[str]] = None ) -> Optional[YamlPostAddresses]: """ build a dict from an address, using a list of properties, an address has. :param addresses: dict of addresses with existing properties :param address_properties: list of properties that make up an address :param defaults: list of address types :returns: dict of address types with all properties """ if not addresses: if not defaults: return None address_fields = {key: None for key in address_properties} return {address_type: address_fields for address_type in defaults} address_dict: YamlPostAddresses = {} for address_type, addresses_ in addresses.items(): entry = [ {key: yaml_clean(address.get(f"{key[0].lower()}{key[1:]}")) for key in address_properties} for address in addresses_ ] if len(entry) == 1: address_dict[address_type] = entry[0] else: address_dict[address_type] = entry return address_dict def yaml_anniversary(anniversary: Union[str, datetime, None], version: str) -> Optional[str]: """ format an anniversary according to its contents and the vCard version. :param anniversary: a string or a datetime object, that is the anniversary :param version: the vCard version to format for :returns: the formatted date string """ if not anniversary: return None if isinstance(anniversary, datetime): if (version == "4.0" and anniversary.year == 1900 and anniversary.month != 0 and anniversary.day != 0 and anniversary.hour == 0 and anniversary.minute == 0 and anniversary.second == 0): return anniversary.strftime("--%m-%d") time_zone = anniversary.tzname() if ((time_zone and time_zone[3:]) or anniversary.hour != 0 or anniversary.minute != 0 or anniversary.second != 0): return anniversary.isoformat() return anniversary.strftime("%F") # default case: anniversary is a string return anniversary def convert_to_yaml(name: str, value: Union[None, str, List], indentation: int, index_of_colon: int, show_multi_line_character: bool ) -> List[str]: """converts a value list into yaml syntax :param name: name of object (example: phone) :param value: object contents :type value: str, list(str), list(list(str)), list(dict) :param indentation: indent all by number of spaces :param index_of_colon: use to position : at the name string (-1 for no space) :param show_multi_line_character: option to hide "|" :returns: yaml formatted string array of name, value pair """ strings = [] if isinstance(value, list): # special case for single item lists: if len(value) == 1 and isinstance(value[0], str): # value = ["string"] should not be converted to # name: # - string # but to "name: string" instead value = value[0] elif len(value) == 1 and isinstance(value[0], list) \ and len(value[0]) == 1 and isinstance(value[0][0], str): # same applies to value = [["string"]] value = value[0][0] if isinstance(value, str): strings.append("{}{}{}: {}".format( ' ' * indentation, name, ' ' * (index_of_colon-len(name)), indent_multiline_string(value, indentation+4, show_multi_line_character))) elif isinstance(value, list): strings.append("{}{}{}: ".format( ' ' * indentation, name, ' ' * (index_of_colon-len(name)))) for outer in value: # special case for single item sublists if isinstance(outer, list) and len(outer) == 1 \ and isinstance(outer[0], str): # outer = ["string"] should not be converted to # - # - string # but to "- string" instead outer = outer[0] if isinstance(outer, str): strings.append("{}- {}".format( ' ' * (indentation+4), indent_multiline_string( outer, indentation+8, show_multi_line_character))) elif isinstance(outer, list): strings.append("{}- ".format(' ' * (indentation+4))) for inner in outer: if isinstance(inner, str): strings.append("{}- {}".format( ' ' * (indentation+8), indent_multiline_string( inner, indentation+12, show_multi_line_character))) elif isinstance(outer, dict): # ABLABEL'd lists for k in outer: strings += convert_to_yaml( "- " + k, outer[k], indentation+4, index_of_colon, show_multi_line_character) return strings def indent_multiline_string(input: Union[str, List], indentation: int, show_multi_line_character: bool) -> str: # if input is a list, convert to string first if isinstance(input, list): input = list_to_string(input, "") # format multiline string if "\n" in input or ": " in input: lines = ["|"] if show_multi_line_character else [""] for line in input.split("\n"): lines.append("{}{}".format(' ' * indentation, line.strip())) return '\n'.join(lines) return input.strip() def get_new_contact_template( supported_private_objects: Optional[List[str]] = None) -> str: formatted_private_objects = [] if supported_private_objects: formatted_private_objects.append("") longest_key = max(supported_private_objects, key=len) for object in supported_private_objects: formatted_private_objects += convert_to_yaml( object, "", 12, len(longest_key)+1, True) template = pathlib.Path(__file__).parent.parent / 'data' / 'template.yaml' with template.open() as temp: return temp.read().format('\n'.join(formatted_private_objects)) khard-0.19.1/khard/helpers/interactive.py000066400000000000000000000167421453070076200203330ustar00rootroot00000000000000"""Helper functions for user interaction.""" import contextlib from datetime import datetime from enum import Enum import os.path import subprocess from tempfile import NamedTemporaryFile from typing import Callable, Generator, List, Optional, Sequence, \ TypeVar, Union from ..carddav_object import CarddavObject T = TypeVar("T") class Canceled(Exception): """An exception indicating that the user canceled some operation.""" def __init__(self, message: str = "Canceled") -> None: super().__init__(message) def confirm(message: str, accept_enter_key: bool = True) -> bool: """Ask the user for confirmation on the terminal. :param message: the question to print :param accept_enter_key: Accept ENTER as alternative for "n" :returns: the answer of the user """ return "yes" == ask(message, ["yes", "no"], "no" if accept_enter_key else None) def ask(message: str, choices: List[str], default: Optional[str] = None, help: Optional[str] = None) -> str: """Ask the user to select one of the given choices :param message: a text to show to the user :param choices: the possible answers the user might give, if help is not None this list must not contain the string "?" :param default: the answer that should be selected on empty user input (None means empty input is not accepted) :parm help: a help text to display to the user if they did not answer correctly :returns: the choice of the user """ default = default.lower() if default is not None else None # ensure that the choices are lower case, in order but unique choices = list({c.lower(): None for c in choices}) prompt = "/".join("[{}]".format(c) if c == default else c for c in choices) if help is not None: prompt += " or ? for help" prompt += ": " if len(message) + len(prompt) < 79: prompt = message + " " + prompt else: print(message) while True: try: answer = input(prompt).lower() if answer == "" and default is not None: return default if answer == "?" and help is not None: print(help) continue if answer in choices: return answer prefixes_matches = [c for c in choices if c.startswith(answer)] if len(prefixes_matches) == 1: return prefixes_matches[0] if len(prefixes_matches) > 1: print("The given prefix is not specific enough.") except (EOFError, IndexError, ValueError): pass except KeyboardInterrupt: raise Canceled if help is not None: print(help) def select(items: Sequence[T], include_none: bool = False) -> Optional[T]: """Ask the user to select an item from a list. The list should be displayed to the user before calling this function and should be indexed starting with 1. :param items: the list from which to select :param include_none: whether to allow the selection of no item :returns: None or the selected item :raises Canceled: when the user canceled the selection process """ prompt = "Enter Index ({}q to quit): ".format("0 for None, " if include_none else "") while True: try: answer = input(prompt) answer = answer.lower() if answer == "q": raise Canceled index = int(answer) if include_none and index == 0: return None if index > 0: return items[index - 1] except (EOFError, IndexError, ValueError): pass print("Please enter an index value between 1 and {} or q to quit." .format(len(items))) class EditState(Enum): modified = 1 unmodified = 2 aborted = 3 class Editor: """Wrapper around subprocess.Popen to edit and merge files.""" def __init__(self, editor: Union[str, List[str]], merge_editor: Union[str, List[str]]) -> None: self.editor = [editor] if isinstance(editor, str) else editor self.merge_editor = [merge_editor] if isinstance(merge_editor, str) \ else merge_editor @staticmethod @contextlib.contextmanager def write_temp_file(text: str = "") -> Generator[str, None, None]: """Create a new temporary file and write some initial text to it. :param text: the text to write to the temp file :returns: the file name of the newly created temp file """ with NamedTemporaryFile(mode='w+t', suffix='.yml') as tmp: tmp.write(text) tmp.flush() yield tmp.name @staticmethod def _mtime(filename: str) -> datetime: return datetime.fromtimestamp(os.path.getmtime(filename)) def edit_files(self, file1: str, file2: Optional[str] = None) -> EditState: """Edit the given files If only one file is given the timestamp of this file is checked, if two files are given the timestamp of the second file is checked for modification. :param file1: the first file (checked for modification if file2 not present) :param file2: the second file (checked for modification of present) :returns: the result of the modification """ if file2 is None: command = self.editor + [file1] else: command = self.merge_editor + [file1, file2] timestamp = self._mtime(command[-1]) child = subprocess.Popen(command) child.communicate() if child.returncode != 0: return EditState.aborted if timestamp == self._mtime(command[-1]): return EditState.unmodified return EditState.modified def edit_templates(self, yaml2card: Callable[[str], CarddavObject], template1: str, template2: Optional[str] = None ) -> Optional[CarddavObject]: """Edit YAML templates of contacts and parse them back :param yaml2card: a function to convert the modified YAML templates into a CarddavObject :param template1: the first template :param template2: the second template (optional, for merges) :returns: the parsed CarddavObject or None """ templates = [t for t in (template1, template2) if t is not None] with contextlib.ExitStack() as stack: files = [stack.enter_context(self.write_temp_file(t)) for t in templates] # Try to edit the files until we detect a modification or the user # aborts while True: if self.edit_files(*files) == EditState.unmodified: return None # read temp file contents after editing with open(files[-1], "r") as tmp: modified_template = tmp.read() # No actual modification was done if modified_template == templates[-1]: return None # try to create contact from user input try: return yaml2card(modified_template) except ValueError as err: print("\n{}\n".format(err)) if not confirm("Do you want to open the editor again?"): print("Canceled") return None return None # only for mypy khard-0.19.1/khard/helpers/typing.py000066400000000000000000000064051453070076200173230ustar00rootroot00000000000000"""Helper code for type annotations and runtime type conversion.""" from datetime import datetime from enum import Enum from typing import Dict, List, Union class ObjectType(Enum): str = 1 list = 2 both = 3 # some type aliases Date = Union[str, datetime] StrList = Union[str, List[str]] PostAddress = Dict[str, str] def convert_to_vcard(name: str, value: StrList, constraint: ObjectType ) -> StrList: """converts user input into vCard compatible data structures :param name: object name, only required for error messages :param value: user input :param constraint: set the accepted return type for vCard attribute :returns: cleaned user input, ready for vCard or a ValueError """ if isinstance(value, str): if constraint == ObjectType.list: return [value.strip()] return value.strip() if isinstance(value, list): if constraint == ObjectType.str: raise ValueError("Error: " + name + " must contain a string.") if not all(isinstance(entry, str) for entry in value): raise ValueError("Error: " + name + " must not contain a nested list") # filter out empty list items and strip leading and trailing space return [x.strip() for x in value if x.strip()] if constraint == ObjectType.str: raise ValueError("Error: " + name + " must be a string.") if constraint == ObjectType.list: raise ValueError("Error: " + name + " must be a list with strings.") raise ValueError("Error: " + name + " must be a string or a list with strings.") def list_to_string(input: Union[str, List], delimiter: str) -> str: """converts list to string recursively so that nested lists are supported :param input: a list of strings and lists of strings (and so on recursive) :param delimiter: the delimiter to use when joining the items :returns: the recursively joined list """ if isinstance(input, list): return delimiter.join( list_to_string(item, delimiter) for item in input) return input def string_to_list(input: Union[str, List[str]], delimiter: str) -> List[str]: if isinstance(input, list): return input return [x.strip() for x in input.split(delimiter)] def string_to_date(string: str) -> datetime: """Convert a date string into a date object. :param string: the date string to parse :returns: the parsed datetime object """ # try date formats --mmdd, --mm-dd, yyyymmdd, yyyy-mm-dd and datetime # formats yyyymmddThhmmss, yyyy-mm-ddThh:mm:ss, yyyymmddThhmmssZ, # yyyy-mm-ddThh:mm:ssZ. for fmt in ("--%m%d", "--%m-%d", "%Y%m%d", "%Y-%m-%d", "%Y%m%dT%H%M%S", "%Y-%m-%dT%H:%M:%S", "%Y%m%dT%H%M%SZ", "%Y-%m-%dT%H:%M:%SZ"): try: return datetime.strptime(string, fmt) except ValueError: continue # with the next format # try datetime formats yyyymmddThhmmsstz and yyyy-mm-ddThh:mm:sstz where tz # may look like -06:00. for fmt in ("%Y%m%dT%H%M%S%z", "%Y-%m-%dT%H:%M:%S%z"): try: return datetime.strptime(''.join(string.rsplit(":", 1)), fmt) except ValueError: continue # with the next format raise ValueError khard-0.19.1/khard/khard.py000066400000000000000000001422431453070076200154410ustar00rootroot00000000000000"""Main application logic of khard including command line handling""" from argparse import Namespace import datetime from email import message_from_string from email.policy import SMTP as SMTP_POLICY from email.headerregistry import Address, AddressHeader, Group import logging import operator import os import sys import textwrap from typing import cast, Callable, Dict, Iterable, List, Optional, Union from unidecode import unidecode from . import helpers from .address_book import (AddressBookCollection, AddressBookNameError, AddressBookParseError, VdirAddressBook) from .carddav_object import CarddavObject from . import cli from .config import Config from .formatter import Formatter from .helpers import interactive from .helpers.interactive import confirm from .query import AndQuery, AnyQuery, OrQuery, Query, TermQuery from .version import version as khard_version logger = logging.getLogger(__name__) config: Config def version_check(contact: CarddavObject, description: str) -> bool: if contact.version not in config.supported_vcard_versions: print("Warning:\nThe {} is based on vcard version {} but khard only " "supports the modification of vcards with version 3.0 and 4.0.\n" "If you proceed, the contact will be converted to vcard version " "{} but beware: This could corrupt the contact file or cause " "data loss.".format(description, contact.version, config.preferred_vcard_version)) if not confirm("Do you want to proceed anyway?"): print("Canceled") return False return True def create_new_contact(address_book: VdirAddressBook) -> None: editor = interactive.Editor(config.editor, config.merge_editor) # create temp file template = "# create new contact\n# Address book: {}\n# Vcard version: " \ "{}\n# if you want to cancel, exit without saving\n\n{}".format( address_book, config.preferred_vcard_version, helpers.get_new_contact_template(config.private_objects)) new_contact = editor.edit_templates(lambda t: CarddavObject.from_yaml( address_book, t, config.private_objects, config.preferred_vcard_version, config.localize_dates), template) # create carddav object from temp file if new_contact is None: print("Canceled") else: new_contact.write_to_file() print("Creation successful\n\n{}".format(new_contact.pretty())) def modify_existing_contact(old_contact: CarddavObject) -> None: editor = interactive.Editor(config.editor, config.merge_editor) # create temp file and open it with the specified text editor text = ("# Edit contact: {}\n# Address book: {}\n# Vcard version: {}\n" "# if you want to cancel, exit without saving\n\n{}".format( old_contact, old_contact.address_book, old_contact.version, old_contact.to_yaml())) new_contact = editor.edit_templates( lambda t: CarddavObject.clone_with_yaml_update( old_contact, t, config.localize_dates), text) # check if the user changed anything if new_contact is None or old_contact == new_contact: print("Nothing changed\n\n{}".format(old_contact.pretty())) else: new_contact.write_to_file(overwrite=True) print("Modification successful\n\n{}".format(new_contact.pretty())) def merge_existing_contacts(source_contact: CarddavObject, target_contact: CarddavObject, delete_source_contact: bool) -> None: # show warning, if target vCard version is not 3.0 or 4.0 if not version_check(target_contact, "target contact in which to merge"): return # create temp files for each vCard editor = interactive.Editor(config.editor, config.merge_editor) src_text = ("# merge from {}\n# Address book: {}\n# Vcard version: {}\n" "# if you want to cancel, exit without saving\n\n{}".format( source_contact, source_contact.address_book, source_contact.version, source_contact.to_yaml())) target_text = ("# merge into {}\n# Address book: {}\n# Vcard version: {}\n" "# if you want to cancel, exit without saving\n\n{}".format( target_contact, target_contact.address_book, target_contact.version, target_contact.to_yaml())) merged_contact = editor.edit_templates( lambda t: CarddavObject.clone_with_yaml_update( target_contact, t, config.localize_dates), src_text, target_text) # compare them if merged_contact is None or target_contact == merged_contact: print("Target contact unmodified\n\n{}".format( target_contact.pretty())) sys.exit(0) print("Merge contact {} from address book {} into contact {} from address " "book {}\n\n".format(source_contact, source_contact.address_book, merged_contact, merged_contact.address_book)) if delete_source_contact: print("To be removed") else: print("Keep unchanged") print("\n\n{}\n\nMerged\n\n{}\n".format(source_contact.pretty(), merged_contact.pretty())) if not confirm("Are you sure?"): print("Canceled") return # save merged_contact to disk and delete source contact merged_contact.write_to_file(overwrite=True) if delete_source_contact: source_contact.delete_vcard_file() print("Merge successful\n\n{}".format(merged_contact.pretty())) def copy_contact(contact: CarddavObject, target_address_book: VdirAddressBook, delete_source_contact: bool) -> None: source_contact_filename = "" if delete_source_contact: # if source file should be moved, get its file location to delete after # successful movement source_contact_filename = contact.filename if not delete_source_contact or not contact.uid: # if copy contact or contact has no uid yet # create a new uid contact.uid = helpers.get_random_uid() # set destination file name contact.filename = os.path.join(target_address_book.path, "{}.vcf".format(contact.uid)) # save contact.write_to_file() # delete old file if os.path.isfile(source_contact_filename): os.remove(source_contact_filename) print("{} contact {} from address book {} to {}".format( "Moved" if delete_source_contact else "Copied", contact, contact.address_book, target_address_book)) def list_address_books(address_books: Union[AddressBookCollection, List[VdirAddressBook]]) -> None: table = [["Index", "Address book"]] for index, address_book in enumerate(address_books, 1): table.append([cast(str, index), address_book.name]) print(helpers.pretty_print(table)) def list_contacts(vcard_list: List[CarddavObject], fields: Iterable[str] = (), parsable: bool = False) -> None: selected_address_books: List[VdirAddressBook] = [] selected_kinds = set() for contact in vcard_list: if contact.address_book not in selected_address_books: selected_address_books.append(contact.address_book) if contact.kind not in selected_kinds: selected_kinds.add(contact.kind) table = [] # default table header table_header = ["index", "name", "phone", "email"] plural = "" if config.show_kinds or len(selected_kinds) > 1 or CarddavObject._default_kind not in selected_kinds: table_header.append("kind") if len(selected_address_books) > 1: plural = "s" table_header.append("address_book") if not parsable: print("Address book{}: {}".format(plural, ', '.join( str(book) for book in selected_address_books))) if config.show_uids: table_header.append("uid") if parsable: # Legacy default header fields for parsable. table_header = ["uid", "name", "address_book"] if fields: table_header = [x.lower().replace(' ', '_') for x in fields] abook_collection = AddressBookCollection('short uids collection', selected_address_books) if not parsable: table.append([x.title().replace('_', ' ') for x in table_header]) # table body formatter = Formatter(config.display, config.preferred_email_address_type, config.preferred_phone_number_type, config.show_nicknames, parsable) for index, vcard in enumerate(vcard_list): row = [] for field in table_header: if field == 'index': row.append(str(index + 1)) elif field in ['name', 'phone', 'email', 'kind']: row.append(formatter.get_special_field(vcard, field)) elif field == 'uid': if parsable: row.append(vcard.uid) elif abook_collection.get_short_uid(vcard.uid): row.append(abook_collection.get_short_uid(vcard.uid)) else: row.append("") else: row.append(formatter.get_nested_field(vcard, field)) if parsable: print("\t".join([str(v) for v in row])) else: table.append(row) if not parsable: print(helpers.pretty_print(table)) def list_with_headers(the_list: List[str], *headers: str) -> None: table = [list(headers)] for row in the_list: table.append(row.split("\t")) print(helpers.pretty_print(table)) def choose_address_book_from_list(header: str, abooks: Union[ AddressBookCollection, List[VdirAddressBook]] ) -> Optional[VdirAddressBook]: """Let the user select one of the given address books :param header: some text to print in front of the list :param abooks: the address books from which to select :returns: the selected address book :raises interactive.Canceled: when the user canceled the selection """ if not abooks: return None if len(abooks) == 1: return abooks[0] print(header) list_address_books(abooks) return interactive.select(abooks) def choose_vcard_from_list(header: str, vcards: List[CarddavObject], include_none: bool = False ) -> Optional[CarddavObject]: """Let the user select a contact from a list :param header: some text to print in front of the list :param vcards: the contacts from which to select :returns: the selected contact :raises interactive.Canceled: when the user canceled the selection """ if not vcards: return None if len(vcards) == 1 and not include_none: return vcards[0] print(header) list_contacts(vcards) return interactive.select(vcards, True) def get_contact_list(address_books: Union[VdirAddressBook, AddressBookCollection], query: Query) -> List[CarddavObject]: """Find contacts in the given address book grouped, sorted and reversed according to the loaded configuration. :param address_books: the address book to search :param query: the query to use when searching :returns: list of found CarddavObject objects """ contacts = address_books.search(query) return sort_contacts(contacts, config.reverse, config.group_by_addressbook, config.sort) def sort_contacts(contacts: Iterable[CarddavObject], reverse: bool = False, group: bool = False, sort: str = "first_name") -> List[ CarddavObject]: """Sort a list of contacts :param contacts: the contact list to sort :param reverse: reverse the order of the returned contacts :param group: group results by address book :param sort: the field to use for sorting, one of "first_name", "last_name", "formatted_name" :returns: sorted contact list """ keys: List[Callable] = [] if group: keys.append(operator.attrgetter("address_book.name")) if sort == "first_name": keys.append(operator.methodcaller("get_first_name_last_name")) elif sort == "last_name": keys.append(operator.methodcaller("get_last_name_first_name")) elif sort == "formatted_name": keys.append(operator.attrgetter("formatted_name")) else: raise ValueError('sort must be "first_name", "last_name" or ' '"formatted_name" not {}.'.format(sort)) return sorted(contacts, reverse=reverse, key=lambda x: [unidecode(key(x)).lower() for key in keys]) def prepare_search_queries(args: Namespace) -> Dict[str, Query]: """Prepare the search query string from the given command line args. Each address book can get a search query string to filter vCards before loading them. Depending on the question if the address book is used for source or target searches different queries have to be combined. :param args: the parsed command line :returns: a dict mapping abook names to their loading queries """ # get all possible search queries for address book parsing source_queries: List[Query] = [] target_queries: List[Query] = [] if "source_search_terms" in args: source_queries.append(args.source_search_terms) if "search_terms" in args: source_queries.append(args.search_terms) if "target_contact" in args: target_queries.append(args.target_contact) source_query = AndQuery.reduce(source_queries) target_query = AndQuery.reduce(target_queries) logger.debug('Created source query: %s', source_query) logger.debug('Created target query: %s', target_query) # Get all possible search queries for address book parsing, always # depending on the fact if the address book is used to find source or # target contacts or both. queries: Dict[str, List[Query]] = { abook.name: [] for abook in config.abooks} for name in queries: if "addressbook" in args and name in args.addressbook: queries[name].append(source_query) if "target_addressbook" in args and name in args.target_addressbook: queries[name].append(target_query) queries2: Dict[str, Query] = { n: OrQuery.reduce(q) for n, q in queries.items()} logger.debug('Created query: %s', queries) return queries2 def generate_contact_list(args: Namespace) -> List[CarddavObject]: """Find the contact list with which we will work later on :param args: the command line arguments :returns: the contacts for further processing """ if "source_search_terms" in args: # exception for merge command args.search_terms = args.source_search_terms or AnyQuery() if "search_terms" not in args: # It is simpler to handle subcommand that do not have and need search # terms here than conditionally calling generate_contact_list(). return [] return get_contact_list(args.addressbook, args.search_terms) def new_subcommand(abooks: AddressBookCollection, data: str, open_editor: bool ) -> None: """Create a new contact. :param abooks: a list of address books that were selected on the command line :param data: the data for the new contact as a yaml formatted string :param open_editor: whether to open the new contact in the editor after creation :raises interactive.Canceled: when the user canceled a selection """ # ask for address book, in which to create the new contact abook = choose_address_book_from_list( "Select address book for new contact", abooks) if abook is None: sys.exit("Error: address book list is empty") # if there is some data in stdin/the input file if data: # create new contact from stdin/the input file try: new_contact = CarddavObject.from_yaml( abook, data, config.private_objects, config.preferred_vcard_version, config.localize_dates) except ValueError as err: sys.exit(str(err)) else: new_contact.write_to_file() if open_editor: modify_existing_contact(new_contact) else: print("Creation successful\n\n{}".format(new_contact.pretty())) else: create_new_contact(abook) def add_email_to_contact(name: str, email_address: str, abooks: AddressBookCollection, skip_already_added: bool) -> None: """Add a new email address to the given contact, creating the contact if necessary. :param name: name of the contact :param email_address: email address of the contact :param abooks: the address books that were selected on the command line :param skip_already_added: skip if email_address is part of one or more contacts :raises interactive.Canceled: when the user canceled a selection """ # email address # search in contacts matching_contact_list = get_contact_list(abooks, TermQuery(email_address)) if matching_contact_list: matching_contact_list_to_string = ', '.join( str(i) for i in matching_contact_list) if skip_already_added: print("Skipping email address {}: Is already part of {}" .format(email_address, matching_contact_list_to_string)) return if not confirm("Email address: {}, Found in contacts: {}. Select anyway?" .format(email_address, matching_contact_list_to_string)): return else: if name: name_and_email = '"{}" <{}>'.format(name, email_address) else: name_and_email = email_address if not confirm("New address: {}. Select?".format(name_and_email)): return # name if not name: # ask for name name = input("Contact's name: ") else: # remove chars: " ' name = name.replace('"', '').replace('\'', '') # backup name for the "create new contact" function part below original_name = name # select contact previous_name = name previous_selected_vcard = None manual_search = False while True: query: Query # search for an existing contact name_parts = name.replace(',', '').split() if len(name_parts) == 0: query = AnyQuery() elif len(name_parts) == 1: query = TermQuery(name) else: term_query_list = [TermQuery(part) for part in name_parts] query = AndQuery( term_query_list[0], term_query_list[1], *term_query_list[2:]) found_vcard_list = get_contact_list(abooks, query) # select contact from list if manual_search: selected_vcard = choose_vcard_from_list( "Select contact for the search term: {}".format(name), found_vcard_list, include_none=True) if found_vcard_list and not selected_vcard: # contact selection cancelled # restore previous data name = previous_name selected_vcard = previous_selected_vcard manual_search = False else: selected_vcard = choose_vcard_from_list( "Select contact for the found e-mail address", found_vcard_list) break_outer = False while True: if selected_vcard is None: if found_vcard_list: message = "Contact selection cancelled" else: message = "Nothing found for '{}'".format(name) answer = interactive.ask(message, ["create", "search", "quit"]) else: answer = interactive.ask( "Contact selected: {}".format(selected_vcard), ["yes", "create", "details", "search", "quit"], """You can enter one of these choices: yes proceed with selected contact create create a new contact details show details of selected contact search search for a different contact quit abort """) if selected_vcard: if answer == 'yes': break_outer = True break if answer == 'details': print("\n{}".format(selected_vcard.pretty())) continue if answer == 'create': selected_vcard = None break_outer = True break if answer == 'search': # save data previous_name = name previous_selected_vcard = selected_vcard # enter search string if original_name: name = input("Search for contact [ENTER='{}' or -='']: " .format(original_name)) or original_name if name == "-": name = "" else: name = input("Search for contact: ") manual_search = True break if answer == 'quit': print("Cancelled") return if break_outer: # restore name name = original_name break # create new contact if selected_vcard is None: # first and last name variables name_parts = name.split() # detect format: last_name, first_name in name variable if name.count(",") == 1 \ and len(name_parts) > 1 \ and name_parts[0].endswith(","): # remove "," from presumed last name name_parts[0] = name_parts[0].replace(',', '') # put last_name to the list end name_parts.append(name_parts.pop(0)) # fill variables first = name_parts[0] if len(name_parts) > 0 else name last = name_parts[-1] if len(name_parts) > 1 else "" # ask for address book, in which to create the new contact if not config.abooks: sys.exit("Error: address book list is empty") else: selected_address_book = choose_address_book_from_list( "Select address book for new contact", config.abooks) if selected_address_book is None: print("No address book selected") return # ask for name and organisation of new contact while True: if first: first_name = input("First name [ENTER='{}' or -='']: " .format(first)) or first if first_name == "-": first_name = "" else: first_name = input("First name: ") if last: last_name = input("Last name [ENTER='{}' or -='']: " .format(last)) or last if last_name == "-": last_name = "" else: last_name = input("Last name: ") if name and not first_name and not last_name: # first and last names are empty, maybe it's an organisation organisation = input("Organisation [ENTER='{}' or -='']: " .format(name)) or name if organisation == "-": organisation = "" else: organisation = input("Organisation: ") if not first_name and not last_name and not organisation: print("Error: All fields are empty.") else: print("") break # create contact # # build template template_data = list() if first_name: template_data.append("First name : {}".format(first_name)) if last_name: template_data.append("Last name : {}".format(last_name)) if organisation: template_data.append("Organisation : {}".format(organisation)) # confirm contact creation print("Verify input data\n{}" .format(textwrap.indent('\n'.join(template_data), 2*' '))) if not confirm("Create contact?", False): print("Cancelled") return selected_vcard = CarddavObject.from_yaml( selected_address_book, '\n'.join(template_data), config.private_objects, config.preferred_vcard_version, config.localize_dates) if not selected_vcard: print("Could not create contact") return print("Contact created successfully") # check if the contact already contains the email address for _, email_list in sorted(selected_vcard.emails.items(), key=lambda k: k[0].lower()): for email in email_list: if email == email_address: print("The contact {} already contains the email address {}" .format(selected_vcard, email_address)) return # ask for the email label print("\nAdding email address {} to contact {}\n" "Enter email label\n" " vcard 3.0: At least one of home, internet, pref, work, x400\n" " vcard 4.0: At least one of home, internet, pref, work\n" " Or a custom label (only letters)".format(email_address, selected_vcard)) while True: label = input("email label [internet]: ") or "internet" try: selected_vcard.add_email(label, email_address) except ValueError as err: print(err) else: break # save to disk selected_vcard.write_to_file(overwrite=True) print("Done.\n\n{}".format(selected_vcard.pretty())) def find_email_addresses(text: str, fields: List[str]) -> List[Address]: """Search the text for email addresses in the given fields. :param text: the text to search for email addresses :param fields: the fields to look in for email addresses. The `all` field searches all headers. """ message = message_from_string(text, policy=SMTP_POLICY) def extract_addresses(header) -> List[Address]: if header and isinstance(header, (AddressHeader, Group)): return list(header.addresses) return [] email_addresses = [] _all = any([f == "all" for f in fields]) if _all: for _, value in message.items(): email_addresses.extend(extract_addresses(value)) else: for field in fields: email_addresses.extend(extract_addresses(message[field])) return email_addresses def add_email_subcommand( text: str, abooks: AddressBookCollection, fields: List[str], skip_already_added: bool) -> None: """Add a new email address to contacts, creating new contacts if necessary. :param text: the input text to search for the new email :param abooks: the address books that were selected on the command line :param field: the header field to extract contacts from :param skip_already_added: skip already known email addresses :raises interactive.Canceled: when the user canceled a selection """ email_addresses = find_email_addresses(text, fields) if not email_addresses: sys.exit("No email addresses found in fields {}".format(fields)) print("Khard: Add email addresses to contacts") for email_address in email_addresses: name = email_address.display_name address = email_address.addr_spec add_email_to_contact(name, address, abooks, skip_already_added) print() print("No more email addresses") def birthdays_subcommand(vcard_list: List[CarddavObject], parsable: bool ) -> None: """Print birthday contact table. :param vcard_list: the vCards to search for matching entries which should be printed :param parsable: machine readable output: columns divided by tabulator (\t) """ # filter out contacts without a birthday date vcard_list = [vcard for vcard in vcard_list if vcard.birthday is not None] # sort by date (month and day) # The sort function should work for strings and datetime objects. All # strings will be sorted before any datetime objects. vcard_list.sort(key=lambda x: (x.birthday.month, x.birthday.day) if isinstance(x.birthday, datetime.datetime) else (0, 0, x.birthday)) # add to string list birthday_list: List[str] = [] formatter = Formatter(config.display, config.preferred_email_address_type, config.preferred_phone_number_type, config.show_nicknames, parsable) for vcard in vcard_list: name = formatter.get_special_field(vcard, "name") if parsable: # We did filter out None above but the type checker does not know # this. bday = cast(Union[str, datetime.datetime], vcard.birthday) if isinstance(bday, str): date = bday else: date = bday.strftime("%Y.%m.%d") birthday_list.append("{}\t{}".format(date, name)) else: date = vcard.get_formatted_birthday() birthday_list.append("{}\t{}".format(name, date)) if birthday_list: if parsable: print('\n'.join(birthday_list)) else: list_with_headers(birthday_list, "Name", "Birthday") else: if not parsable: print("Found no birthdays") sys.exit(1) def phone_subcommand(search_terms: Query, vcard_list: List[CarddavObject], parsable: bool) -> None: """Print a phone application friendly contact table. :param search_terms: used as search term to filter the contacts before printing :param vcard_list: the vCards to search for matching entries which should be printed :param parsable: machine readable output: columns divided by tabulator (\t) """ formatter = Formatter(config.display, config.preferred_email_address_type, config.preferred_phone_number_type, config.show_nicknames, parsable) numbers: List[str] = [] for vcard in vcard_list: field_line_list = [] for type, number_list in sorted(vcard.phone_numbers.items(), key=lambda k: k[0].lower()): for number in sorted(number_list): name = formatter.get_special_field(vcard, "name") if parsable: # parsable option: start with phone number fields = number, name, type else: # else: start with name fields = name, type, number field_line_list.append("\t".join(fields)) numbers += _filter_email_post_or_phone_number_results( search_terms, field_line_list) if numbers: if parsable: print('\n'.join(numbers)) else: list_with_headers(numbers, "Name", "Type", "Phone") else: if not parsable: print("Found no phone numbers") sys.exit(1) def post_address_subcommand(search_terms: Query, vcard_list: List[CarddavObject], parsable: bool ) -> None: """Print a contact table with all postal / mailing addresses :param search_terms: used as search term to filter the contacts before printing :param vcard_list: the vCards to search for matching entries which should be printed :param parsable: machine readable output: columns divided by tabulator (\t) """ formatter = Formatter(config.display, config.preferred_email_address_type, config.preferred_phone_number_type, config.show_nicknames, parsable) addresses: List[str] = [] for vcard in vcard_list: name = formatter.get_special_field(vcard, "name") # create post address line list field_line_list = [] if parsable: for type, post_addresses in sorted(vcard.post_addresses.items(), key=lambda k: k[0].lower()): for post_address in post_addresses: field_line_list.append( "\t".join([str(post_address), name, type])) else: for type, formatted_addresses in sorted( vcard.get_formatted_post_addresses().items(), key=lambda k: k[0].lower()): for address in sorted(formatted_addresses): field_line_list.append( "\t".join([name, type, address])) addresses += _filter_email_post_or_phone_number_results( search_terms, field_line_list) if addresses: if parsable: print('\n'.join(addresses)) else: list_with_headers(addresses, "Name", "Type", "Post address") else: if not parsable: print("Found no post addresses") sys.exit(1) def email_subcommand(search_terms: Query, vcard_list: List[CarddavObject], parsable: bool, remove_first_line: bool) -> None: """Print a mail client friendly contacts table that is compatible with the default format used by mutt. Output format: .. code-block:: text single line of text email_address\tname\ttype email_address\tname\ttype [...] :param search_terms: used as search term to filter the contacts before printing :param vcard_list: the vCards to search for matching entries which should be printed :param parsable: machine readable output: columns divided by tabulator (\t) :param remove_first_line: remove first line (searching for '' ...) """ formatter = Formatter(config.display, config.preferred_email_address_type, config.preferred_phone_number_type, config.show_nicknames, parsable) emails: List[str] = [] for vcard in vcard_list: field_line_list = [] for type, email_list in sorted(vcard.emails.items(), key=lambda k: k[0].lower()): for email in sorted(email_list): name = formatter.get_special_field(vcard, "name") if parsable: # parsable option: start with email address fields = email, name, type else: # else: start with name fields = name, type, email field_line_list.append("\t".join(fields)) emails += _filter_email_post_or_phone_number_results( search_terms, field_line_list) if emails: if parsable: if not remove_first_line: # at least mutt requires that line print("searching for '{}' ...".format(search_terms)) print('\n'.join(emails)) else: list_with_headers(emails, "Name", "Type", "E-Mail") else: if not parsable: print("Found no email addresses") elif not remove_first_line: print("searching for '{}' ...".format(search_terms)) sys.exit(1) def _filter_email_post_or_phone_number_results(search_terms: Query, field_line_list: List[str]) -> List[str]: """Filter the created output of phone_subcommand, post_address_subcommand and email_subcommand by the given search term again. If no match is found, return the complete input list :param search_terms: used as search term to filter the contacts before printing :param field_line_list: The line-by-line output of the commands listed above """ matched_line_list = [] for line in field_line_list: if search_terms and search_terms.match(line): matched_line_list.append(line) return matched_line_list if matched_line_list else field_line_list def list_subcommand(vcard_list: List[CarddavObject], parsable: bool, fields: List[str]) -> None: """Print a user friendly contacts table. :param vcard_list: the vCards to print :param parsable: machine readable output: columns divided by tabulator (\t) :param fields: list of strings for field evaluation """ if not vcard_list: if not parsable: print("Found no contacts") sys.exit(1) else: list_contacts(vcard_list, fields, parsable) def modify_subcommand(selected_vcard: CarddavObject, input_from_stdin_or_file: str, open_editor: bool, source: bool = False) -> None: """Modify a contact in an external editor. :param selected_vcard: the contact to modify :param input_from_stdin_or_file: new data from stdin (or a file) that should be incorporated into the contact, this should be a yaml formatted string :param open_editor: whether to open the new contact in the editor after creation :param source: edit the source file or a yaml version? """ if source: editor = interactive.Editor(config.editor, config.merge_editor) editor.edit_files(selected_vcard.filename) return # show warning, if vCard version of selected contact is not 3.0 or 4.0 if not version_check(selected_vcard, "selected contact"): return # if there is some data in stdin if input_from_stdin_or_file: # create new contact from stdin try: new_contact = CarddavObject.clone_with_yaml_update( selected_vcard, input_from_stdin_or_file, config.localize_dates) except ValueError as err: sys.exit(str(err)) if selected_vcard == new_contact: print("Nothing changed\n\n{}".format(new_contact.pretty())) else: print("Modification\n\n{}\n".format(new_contact.pretty())) if confirm("Do you want to proceed?"): new_contact.write_to_file(overwrite=True) if open_editor: modify_existing_contact(new_contact) else: print("Done") else: print("Canceled") else: modify_existing_contact(selected_vcard) def remove_subcommand(selected_vcard: CarddavObject, force: bool) -> None: """Remove a contact from the address book. :param selected_vcard: the contact to delete :param force: delete without confirmation """ if not force and not confirm( "Deleting contact {} from address book {}. Are you sure?".format( selected_vcard, selected_vcard.address_book)): print("Canceled") return selected_vcard.delete_vcard_file() print("Contact {} deleted successfully".format( selected_vcard.formatted_name)) def merge_subcommand(vcards: List[CarddavObject], abooks: AddressBookCollection, search_terms: Query ) -> None: """Merge two contacts into one. :param vcards: the vCards from which to choose contacts for merging :param abooks: the address books to use to find the target contact :param search_terms: the search terms to find the target contact :raises interactive.Canceled: when the user canceled a selection """ # Find possible target contacts. target_vcards = get_contact_list(abooks, search_terms) # get the source vCard, from which to merge source_vcard = choose_vcard_from_list("Select contact from which to merge", vcards) if source_vcard is None: sys.exit("Found no source contact for merging") else: print("Merge from {} from address book {}\n\n".format( source_vcard, source_vcard.address_book)) # get the target vCard, into which to merge target_vcard = choose_vcard_from_list("Select contact into which to merge", target_vcards) if target_vcard is None: sys.exit("Found no target contact for merging") else: print("Merge into {} from address book {}\n\n".format( target_vcard, target_vcard.address_book)) # merging if source_vcard == target_vcard: print("The selected contacts are already identical") else: merge_existing_contacts(source_vcard, target_vcard, True) def copy_or_move_subcommand(action: str, vcards: List[CarddavObject], target_address_books: AddressBookCollection ) -> None: """Copy or move a contact to a different address book. :param action: the string "copy" or "move" to indicate what to do :param vcards: the contact list from which to select one for the action :param target_address_books: the target address books :raises interactive.Canceled: when the user canceled a selection """ # get the source vCard, which to copy or move source_vcard = choose_vcard_from_list( "Select contact to {}".format(action.title()), vcards) if source_vcard is None: sys.exit("Found no contact") else: print("{} contact {} from address book {}".format( action.title(), source_vcard, source_vcard.address_book)) # get target address book if len(target_address_books) == 1 \ and target_address_books[0] == source_vcard.address_book: sys.exit("The address book {} already contains the contact {}".format( target_address_books[0], source_vcard)) else: available_address_books = [abook for abook in target_address_books if abook != source_vcard.address_book] target_abook = choose_address_book_from_list( "Select target address book", available_address_books) if target_abook is None: sys.exit("Error: address book list is empty") # check if a contact already exists in the target address book target_vcard = choose_vcard_from_list( "Select target contact to overwrite (or None to add a new entry)", get_contact_list(target_abook, TermQuery(source_vcard.formatted_name)), True) # If the target contact doesn't exist, move or copy the source contact into # the target address book without further questions. if target_vcard is None: copy_contact(source_vcard, target_abook, action == "move") elif source_vcard == target_vcard: # source and target contact are identical print("Target contact: {}".format(target_vcard)) if action == "move": copy_contact(source_vcard, target_abook, True) else: print("The selected contacts are already identical") else: # source and target contacts are different # either overwrite the target one or merge into target contact print("The address book {} already contains the contact {}\n\n" "Source\n\n{}\n\nTarget\n\n{}\n\n".format( target_vcard.address_book, source_vcard, source_vcard.pretty(), target_vcard.pretty())) while True: answer = interactive.ask( "Possible actions", [action, "merge", "overwrite", "quit"], "quit") if answer == action: copy_contact(source_vcard, target_abook, action == "move") break if answer == "overwrite": copy_contact(source_vcard, target_abook, action == "move") target_vcard.delete_vcard_file() break if answer == "merge": merge_existing_contacts(source_vcard, target_vcard, action == "move") break if answer == "quit": print("Canceled") break def main(argv: List[str] = sys.argv[1:]) -> None: args, conf = cli.init(argv) # store the config instance in the module level variable global config config = conf # Check some of the simpler subcommands first. These don't have any # options and can directly be run. if args.action == "addressbooks": print('\n'.join(str(book) for book in config.abooks)) return if args.action == "template": print("# Contact template for khard version {}\n#\n" "# Use this yaml formatted template to create a new contact:\n" "# either with: khard new -a address_book -i template.yaml\n" "# or with: cat template.yaml | khard new -a address_book\n" "\n{}".format(khard_version, helpers.get_new_contact_template( config.private_objects))) return search_queries = prepare_search_queries(args) # load address books try: if "addressbook" in args: args.addressbook = config.get_address_books(args.addressbook, search_queries) if "target_addressbook" in args: args.target_addressbook = config.get_address_books( args.target_addressbook, search_queries) except AddressBookParseError as err: sys.exit("{}\nUse --debug for more information or --skip-unparsable " "to proceed".format(err)) except AddressBookNameError as err: sys.exit(str(err)) vcard_list = generate_contact_list(args) if args.action == "filename": print('\n'.join(contact.filename for contact in vcard_list)) return # read from template file or stdin if available input_from_stdin_or_file = "" if "input_file" in args: if args.input_file != "-": # try to read from specified input file try: with open(args.input_file, "r") as infile: input_from_stdin_or_file = infile.read() except OSError as err: sys.exit("Error: {}\n File: {}".format(err.strerror, err.filename)) elif not sys.stdin.isatty(): # try to read from stdin try: input_from_stdin_or_file = sys.stdin.read() except OSError: sys.exit("Error: Can't read from stdin") # try to reopen console # otherwise further user interaction is not possible (for example # selecting a contact from the contact table) try: sys.stdin = open('/dev/tty') except OSError: pass # these listing commands do not require any user interaction if args.action == "birthdays": birthdays_subcommand(vcard_list, args.parsable) elif args.action == "phone": phone_subcommand(args.search_terms, vcard_list, args.parsable) elif args.action == "postaddress": post_address_subcommand(args.search_terms, vcard_list, args.parsable) elif args.action == "email": email_subcommand(args.search_terms, vcard_list, args.parsable, args.remove_first_line) elif args.action == "list": list_subcommand(vcard_list, args.parsable, args.fields) else: # these commands require user interaction try: if args.action == "new": new_subcommand(args.addressbook, input_from_stdin_or_file, args.open_editor) elif args.action == "add-email": add_email_subcommand(input_from_stdin_or_file, args.addressbook, args.headers, args.skip_already_added) elif args.action in ["show", "edit", "remove"]: selected_vcard = choose_vcard_from_list( "Select contact for {} action".format(args.action.title()), vcard_list) if selected_vcard is None: sys.exit("Found no contact") if args.action == "show": if args.format == "pretty": output = selected_vcard.pretty() elif args.format == "vcard": output = open(selected_vcard.filename).read() else: output = "# Contact template for khard version {}\n" \ "# Name: {}\n# Vcard version: {}\n\n{}".format( khard_version, selected_vcard, selected_vcard.version, selected_vcard.to_yaml()) args.output_file.write(output) elif args.action == "edit": modify_subcommand(selected_vcard, input_from_stdin_or_file, args.open_editor, args.format == 'vcard') elif args.action == "remove": remove_subcommand(selected_vcard, args.force) elif args.action == "merge": merge_subcommand(vcard_list, args.target_addressbook, args.target_contact) elif args.action in ["copy", "move"]: copy_or_move_subcommand( args.action, vcard_list, args.target_addressbook) except interactive.Canceled as ex: sys.exit(str(ex)) khard-0.19.1/khard/query.py000066400000000000000000000277421453070076200155230ustar00rootroot00000000000000"""Queries to match against contacts""" import abc from datetime import datetime from functools import reduce from operator import and_, or_ import re from typing import cast, Any, Dict, List, Optional, Union from . import carddav_object # constants FIELD_PHONE_NUMBERS = "phone_numbers" class Query(metaclass=abc.ABCMeta): """A query to match against strings, lists of strings and CarddavObjects""" @abc.abstractmethod def match(self, thing: Union[str, "carddav_object.CarddavObject"]) -> bool: """Match the self query against the given thing""" @abc.abstractmethod def get_term(self) -> Optional[str]: """Extract the search terms from a query.""" def __and__(self, other: "Query") -> "Query": """Combine two queries with AND""" if isinstance(self, NullQuery) or isinstance(other, NullQuery): return NullQuery() if isinstance(self, AnyQuery): return other if isinstance(other, AnyQuery): return self if isinstance(self, AndQuery) and isinstance(other, AndQuery): return AndQuery(*self._queries, *other._queries) if isinstance(self, AndQuery): return AndQuery(*self._queries, other) if isinstance(other, AndQuery): return AndQuery(self, *other._queries) return AndQuery(self, other) def __or__(self, other: "Query") -> "Query": """Combine two queries with OR""" if isinstance(self, AnyQuery) or isinstance(other, AnyQuery): return AnyQuery() if isinstance(self, NullQuery): return other if isinstance(other, NullQuery): return self if isinstance(self, OrQuery) and isinstance(other, OrQuery): return OrQuery(*self._queries, *other._queries) if isinstance(self, OrQuery): return OrQuery(*self._queries, other) if isinstance(other, OrQuery): return OrQuery(self, *other._queries) return OrQuery(self, other) def __eq__(self, other: object) -> bool: """A generic equality for all query types without parameters""" return isinstance(other, type(self)) def __hash__(self) -> int: "A generic hashing implementation for all queries without parameters" return hash(type(self)) class NullQuery(Query): """The null-query, it matches nothing.""" def match(self, thing: Union[str, "carddav_object.CarddavObject"]) -> bool: return False def get_term(self) -> None: return None def __str__(self) -> str: return "NONE" class AnyQuery(Query): """The match-anything-query, it always matches.""" def match(self, thing: Union[str, "carddav_object.CarddavObject"]) -> bool: return True def get_term(self) -> str: return "" def __hash__(self) -> int: return hash(NullQuery) def __str__(self) -> str: return "ALL" class TermQuery(Query): """A query to match an object against a fixed string.""" def __init__(self, term: str) -> None: self._term = term.lower() def match(self, thing: Union[str, "carddav_object.CarddavObject"]) -> bool: if isinstance(thing, str): return self._term in thing.lower() return self._term in thing.pretty().lower() def get_term(self) -> str: return self._term def __eq__(self, other: object) -> bool: return isinstance(other, TermQuery) and self._term == other._term def __hash__(self) -> int: return hash((TermQuery, self._term)) def __str__(self) -> str: return self._term class FieldQuery(TermQuery): """A query to match against a certain field in a carddav object.""" def __init__(self, field: str, value: str) -> None: self._field = field super().__init__(value) def match(self, thing: Union[str, "carddav_object.CarddavObject"]) -> bool: if isinstance(thing, str): return super().match(thing) if hasattr(thing, self._field): return self._match_union(getattr(thing, self._field)) return False def _match_union(self, value: Union[str, datetime, List, Dict[str, Any]] ) -> bool: if isinstance(value, str): return self.match(value) if isinstance(value, list): return any(self._match_union(item) for item in value) if isinstance(value, dict): for key in value: if self.match(key) or self._match_union(value[key]): return True return False if isinstance(value, datetime): # currently we only support ISO dates return value == datetime.strptime(self._term, "%Y-%m-%d") # this should actually be a type error return False def __eq__(self, other: object) -> bool: return isinstance(other, FieldQuery) and self._field == other._field \ and super().__eq__(other) def __hash__(self) -> int: return hash((FieldQuery, self._field, self._term)) def __str__(self) -> str: return '{}:{}'.format(self._field, self._term) class AndQuery(Query): """A query to combine multiple queries with "and".""" def __init__(self, first: Query, second: Query, *queries: Query) -> None: self._queries = (first, second, *queries) def match(self, thing: Union[str, "carddav_object.CarddavObject"]) -> bool: return all(q.match(thing) for q in self._queries) def get_term(self) -> Optional[str]: terms = [x.get_term() for x in self._queries] if None in terms: return None return "".join(cast(List[str], terms)) def __eq__(self, other: object) -> bool: return isinstance(other, AndQuery) \ and frozenset(self._queries) == frozenset(other._queries) def __hash__(self) -> int: return hash((AndQuery, frozenset(self._queries))) @staticmethod def reduce(queries: List[Query], start: Optional[Query] = None) -> Query: return reduce(and_, queries, start or AnyQuery()) def __str__(self) -> str: return ' '.join(str(q) for q in self._queries) class OrQuery(Query): """A query to combine multiple queries with "or".""" def __init__(self, first: Query, second: Query, *queries: Query) -> None: self._queries = (first, second, *queries) def match(self, thing: Union[str, "carddav_object.CarddavObject"]) -> bool: return any(q.match(thing) for q in self._queries) def get_term(self) -> Optional[str]: terms = [x.get_term() for x in self._queries] if all(t is None for t in terms): return None return "".join(filter(None, terms)) def __eq__(self, other: object) -> bool: return isinstance(other, OrQuery) \ and frozenset(self._queries) == frozenset(other._queries) def __hash__(self) -> int: return hash((OrQuery, frozenset(self._queries))) @staticmethod def reduce(queries: List[Query], start: Optional[Query] = None) -> Query: return reduce(or_, queries, start or NullQuery()) def __str__(self) -> str: return ' | '.join(str(q) for q in self._queries) class NameQuery(TermQuery): """special query to match any kind of name field of a vCard""" def __init__(self, term: str) -> None: super().__init__(term) self._props_query = OrQuery(FieldQuery("formatted_name", term), FieldQuery("nicknames", term)) def match(self, thing: Union[str, "carddav_object.CarddavObject"]) -> bool: m = super().match if isinstance(thing, str): return m(thing) return (m(thing.get_first_name_last_name()) or m(thing.get_last_name_first_name()) or self._props_query.match(thing)) def __eq__(self, other: object) -> bool: return isinstance(other, NameQuery) and self._term == other._term def __hash__(self) -> int: return hash((NameQuery, self._term)) def __str__(self) -> str: return 'name:{}'.format(self._term) class PhoneNumberQuery(FieldQuery): """A special query to match against phone numbers.""" @staticmethod def _strip_phone_number(number: str) -> str: return re.sub("[^0-9+]", "", number) def __init__(self, value: str) -> None: super().__init__(FIELD_PHONE_NUMBERS, value) self._term_only_digits = self._strip_phone_number(value) def match(self, thing: Union[str, "carddav_object.CarddavObject"]) -> bool: if isinstance(thing, str): return self._match_union(thing) else: return super().match(thing) def _match_union(self, value: Union[str, datetime, List, Dict[str, Any]] ) -> bool: if isinstance(value, str): if self._term in value.lower() \ or self._match_phone_number(self._strip_phone_number(value)): return True if isinstance(value, dict): for key in value: if self._term in str(key).lower(): return True if isinstance(value[key], str): if self._match_phone_number( self._strip_phone_number(value[key])): return True if isinstance(value[key], list): for number in value[key]: if self._match_phone_number( self._strip_phone_number(number)): return True return False # this should actually be a type error return False def _match_phone_number(self, number: str) -> bool: if self._term_only_digits.startswith("+") and number.startswith("+"): # _term_only_digits: +49123456789 # number: +49123456789 return self._term_only_digits in number elif self._term_only_digits.startswith("+") and number.startswith("0"): # assume, that _term_only_digits contains a complete phone number # _term_only_digits: +49123456789 # number: 0123456789 return number[1:] in self._term_only_digits elif self._term_only_digits.startswith("0") and number.startswith("+"): # can't assume, that _term_only_digits contains a complete phone number # _term_only_digits: 0123456789 # number: +49123456789 if len(self._term_only_digits) >= 5: # don't strip the leading "0" if the search term is too short # otherwise you may get false positives # _term could contain the latter part of a phone number instead return self._term_only_digits[1:] in number # end of special cases if self._term_only_digits: return self._term_only_digits in number return False def __eq__(self, other: object) -> bool: return isinstance(other, PhoneNumberQuery) and self._term == other._term def __hash__(self) -> int: return hash((PhoneNumberQuery, self._term)) def __str__(self) -> str: return 'phone numbers:{}'.format(self._term) def parse(string: str) -> Union[TermQuery, FieldQuery]: """Parse a string into a query object The input string interpreted as a :py:class:`FieldQuery` if it starts with a valid property name of the :py:class:`~khard.carddav_object.CarddavObject` class, followed by a colon and an arbitrary search term. Otherwise it is interpreted as a :py:class:`TermQuery`. :param string: a string to parse into a query :returns: a FieldQuery if the string contains a valid field specifier, a TermQuery otherwise """ if ":" in string: field, term = string.split(":", maxsplit=1) if field == "name": return NameQuery(term) if field == FIELD_PHONE_NUMBERS: return PhoneNumberQuery(term) if field in carddav_object.CarddavObject.get_properties(): return FieldQuery(field, term) return TermQuery(string) khard-0.19.1/misc/000077500000000000000000000000001453070076200136325ustar00rootroot00000000000000khard-0.19.1/misc/davcontroller/000077500000000000000000000000001453070076200165105ustar00rootroot00000000000000khard-0.19.1/misc/davcontroller/davcontroller.py000066400000000000000000000123401453070076200217400ustar00rootroot00000000000000#!/usr/bin/env python2 # -*- coding: utf-8 -*- import sys import argparse from caldavclientlibrary.client.account import CalDAVAccount from caldavclientlibrary.protocol.url import URL def main(): # create the args parser parser = argparse.ArgumentParser( description="Davcontroller creates, lists and removes caldav " "calendars and carddav address books from server") parser.add_argument("-v", "--version", action="store_true", help="Get current program version") parser.add_argument("-H", "--hostname", default="") parser.add_argument("-p", "--port", default="") parser.add_argument("-u", "--username", default="") parser.add_argument("-P", "--password", default="") parser.add_argument("action", nargs="?", default="", help="Actions: new-addressbook, new-calendar, list, " "and remove") args = parser.parse_args() # version if args.version is True: print("davcontroller version 0.1") sys.exit(0) # check the server's parameter if args.hostname == "": print("Missing host name") sys.exit(1) if args.port == "": print("Missing host port") sys.exit(1) if args.username == "": print("Missing user name") sys.exit(1) if args.password == "": print("Missing password") sys.exit(1) if args.action == "": print("Please specify an action. Possible values are: " "new-addressbook, new-calendar, list and remove") sys.exit(1) elif args.action not in ["new-addressbook", "new-calendar", "list", "remove"]: print("The specified action \"%s\" is not supported. Possible values " "are: new-addressbook, new-calendar, list and remove" % args.action) sys.exit(1) # try to connect to the caldav server account = CalDAVAccount(args.hostname, args.port, ssl=True, user=args.username, pswd=args.password, root="/", principal="") if account.getPrincipal() is None: print("Error: Connection refused") sys.exit(2) if args.action in ["list", "remove"]: # address books print("Available address books") addressbook_list = account.getPrincipal().listAddressBooks() if addressbook_list.__len__() == 0: print("No address books found") else: for index, addressbook in enumerate(addressbook_list): print("%d. %s" % (index+1, addressbook.getDisplayName())) print() # calendars print("Available calendars") calendar_list = account.getPrincipal().listCalendars() if calendar_list.__len__() == 0: print("No calendars found") else: for index, calendar in enumerate(calendar_list): print("%d. %s" % (addressbook_list.__len__() + index + 1, calendar.getDisplayName())) item_list = addressbook_list + calendar_list if item_list.__len__() == 0: sys.exit(2) if args.action == "remove": print() while True: input_string = input("Enter Id: ") if input_string == "": sys.exit(0) try: id = int(input_string) if id > 0 and id <= item_list.__len__(): break except ValueError: pass print("Please enter an Id between 1 and %d or nothing to exit." % item_list.__len__()) item = item_list[id-1] while True: input_string = input("Deleting %s. Are you sure? (y/n): " % item.getDisplayName()) if input_string.lower() in ["", "n", "q"]: print("Canceled") sys.exit(0) if input_string.lower() == "y": break account.session.deleteResource(URL(url=item.path)) if args.action.startswith("new-"): # get full host url host_url = "https://%s:%s" % (account.session.server, account.session.port) # enter new name if args.action == "new-addressbook": input_string = input("Enter new address book name or nothing to " "cancel: ") else: input_string = input("Enter new calendar name or nothing to " "cancel: ") if input_string == "": sys.exit(0) res_name = input_string res_path = input_string.replace(" ", "_").lower() # create new resource if args.action == "new-addressbook": u = URL(url=host_url + account.principal.adbkhomeset[0].path + res_path + "/") account.session.makeAddressBook(u, res_name) else: u = URL(url=host_url + account.principal.homeset[0].path + res_path + "/") account.session.makeCalendar(u, res_name) print("Creation successful") if __name__ == "__main__": main() khard-0.19.1/misc/sdiff/000077500000000000000000000000001453070076200147255ustar00rootroot00000000000000khard-0.19.1/misc/sdiff/sdiff_khard_wrapper.sh000077500000000000000000000012621453070076200212710ustar00rootroot00000000000000#!/bin/sh # khard requires the second file in the diff-operation to be modified in order # to recognize a successful merge. However the file provided to sdiff's "-o" # switch cannot be any of the source files. # # If you want to use sdiff to merge contacts you must set this wrapper script # as your merge editor in khard's config file # # merge_editor = /path/to/sdiff_khard_wrapper.sh set -e # First and second argument to sdiff. FIRST=$1 SECOND=$(mktemp) # Cleanup for signals and normal exit. trap 'trap "" EXIT; rm -f "$SECOND"; exit' INT HUP TERM trap 'rm -f "$SECOND"' EXIT # Free the filename that khard expects to change. mv -f "$2" "$SECOND" sdiff "$FIRST" "$SECOND" -o "$2" khard-0.19.1/misc/twinkle/000077500000000000000000000000001453070076200153075ustar00rootroot00000000000000khard-0.19.1/misc/twinkle/scripts/000077500000000000000000000000001453070076200167765ustar00rootroot00000000000000khard-0.19.1/misc/twinkle/scripts/config.py000066400000000000000000000014211453070076200206130ustar00rootroot00000000000000#!/usr/bin/python # -*- coding: utf-8 -*- import os # twinkle config folder twinkle_config = os.path.join(os.environ['HOME'], ".twinkle") # khard executable khard_exe = os.path.join(os.environ['HOME'], ".virtualenvs", "bin", "khard") # user language language = "de" # stop mpd stop_music = True mpd_host = "192.168.2.100" mpd_port = 6600 # log file for calls call_log_file = os.path.join(twinkle_config, "calls.log") # audio files constant_ringtone_segment = os.path.join(twinkle_config, "sounds", "ringtone_segment.wav") new_ringtone = os.path.join(twinkle_config, "sounds", "special_ringtone.wav") # temp files tmp_mono_file = "/tmp/caller_id.wav" tmp_file_stereo = "/tmp/caller_id_stereo.wav" mpd_lockfile = "/tmp/mpd_stopped" caller_id_filename = "/tmp/current_caller_id" khard-0.19.1/misc/twinkle/scripts/incoming_call.py000077500000000000000000000071761453070076200221640ustar00rootroot00000000000000#!/usr/bin/env python # This script speaks the incoming caller ID for the SIP client Twinkle # The following programs are needed: espeak, ffmpeg and sox, mpc is optional # aptitude install ffmpeg espeak sox mpc # Further information about Twinkle scripts can be found at # http://mfnboer.home.xs4all.nl/twinkle/manual.html#profile_scripts import os, subprocess, sys, re import config def get_caller_id(from_hdr): caller_id = from_hdr[from_hdr.find(":")+1:from_hdr.find("@")] # remove all non digits from caller id caller_id = re.sub("\D", "", caller_id) # remove two digit country identification if present if not caller_id.startswith("0"): return caller_id[2:] return caller_id def caller_from_addressbook(caller_id): try: callers = subprocess.check_output([config.khard_exe, "phone", "--parsable", caller_id]).strip() except subprocess.CalledProcessError: return caller_id if len(callers.split("\n")) == 1: return callers.split("\t")[1] else: # the contact contains multiple phone numbers and we have to obtain the right phone label regexp = re.compile(caller_id, re.IGNORECASE) for entry in callers.split("\n"): if regexp.search(re.sub("\D", "", entry.split("\t")[0])) != None: return "%s (%s)" % (entry.split("\t")[1], entry.split("\t")[2]) return callers.split("\n")[0].split("\t")[1] def create_ringtone(caller_id): if os.path.exists(config.new_ringtone) == True: os.remove(config.new_ringtone) if config.language == "de": subprocess.call(["espeak", "-v", "de", "-s", "300", "-w", config.tmp_mono_file, caller_id]) else: subprocess.call(["espeak", "-v", "en-us", "-s", "300", "-w", config.tmp_mono_file, caller_id]) subprocess.call(["ffmpeg", "-i", config.tmp_mono_file, "-ar", "48000", "-ac", "2", "-y", config.tmp_file_stereo], stdout=open('/dev/null', 'w'), stderr=open('/dev/null', 'w')) subprocess.call(["sox", config.constant_ringtone_segment, config.tmp_file_stereo, config.new_ringtone]) # main part of the script if os.path.exists(config.constant_ringtone_segment) == False: print("The constant part of the ringtone file is missing. Create the sounds folder in your twinkle config and put a wav file in it") sys.exit(1) # pause the music playback # I use a MPD server for playing music so I pause it with the client MPC # You can disable that in the config.py file if config.stop_music: mpc_output = subprocess.check_output(["mpc", "-h", config.mpd_host, "-p", str(config.mpd_port), "status"]) if "playing" in mpc_output: subprocess.call(["mpc", "-h", config.mpd_host, "-p", str(config.mpd_port), "pause"]) music_tmp_file = open(config.mpd_lockfile, "w") music_tmp_file.close() if "SIP_FROM" in os.environ: from_hdr = os.environ["SIP_FROM"] # parse the caller ID of the string caller_id = get_caller_id(from_hdr) # look into the address book if caller_id != "": caller_id = caller_from_addressbook(caller_id) else: caller_id = "anonymous" # create the ringtone if config.language == "de": create_ringtone("Anruf von " + caller_id) else: create_ringtone("Call from " + caller_id) # save the caller id for later use with open(config.caller_id_filename, "w") as caller_id_file: caller_id_file.write(caller_id) # if the file creation was successful and the file exists, tell twinkle to use it as the ringtone # else do nothing and play the standard ringtone if os.path.exists(config.new_ringtone) == True: print("ringtone=" + config.new_ringtone) sys.exit() khard-0.19.1/misc/twinkle/scripts/incoming_call_ended.py000077500000000000000000000021211453070076200233040ustar00rootroot00000000000000#!/usr/bin/env python import os, subprocess, time, datetime import config # current date and time datetime = datetime.datetime.now() current_date = "%.2d.%.2d.%.4d" % (datetime.day, datetime.month, datetime.year) current_time = "%.2d:%.2d:%.2d" % (datetime.hour, datetime.minute, datetime.second) # if music was stopped, resume again if os.path.exists(config.mpd_lockfile) == True: os.remove(config.mpd_lockfile) subprocess.call(["mpc", "-h", config.mpd_host, "-p", str(config.mpd_port), "play"]) # try to get the caller name / id from the previously created temp file try: caller_id_file = open(config.caller_id_filename, "r") caller_id = caller_id_file.read().strip() caller_id_file.close() except: caller_id = "anonymous" if config.language == "de": message = "Anruf von %s am %s um %s\n" % (caller_id, current_date, current_time) else: message = "Call of %s in %s at %s\n" % (caller_id, current_date, current_time) try: os.remove(config.caller_id_filename) except: pass # log into file log = open(config.call_log_file, "a") log.write(message) log.close() khard-0.19.1/misc/twinkle/scripts/incoming_call_failed.py000077500000000000000000000021311453070076200234520ustar00rootroot00000000000000#!/usr/bin/env python import os, subprocess, time, datetime import config # current date and time datetime = datetime.datetime.now() current_date = "%.2d.%.2d.%.4d" % (datetime.day, datetime.month, datetime.year) current_time = "%.2d:%.2d:%.2d" % (datetime.hour, datetime.minute, datetime.second) # if music was stopped, resume again if os.path.exists(config.mpd_lockfile) == True: os.remove(config.mpd_lockfile) subprocess.call(["mpc", "-h", config.mpd_host, "-p", str(config.mpd_port), "play"]) # try to get the caller name / id from the previously created temp file try: with open(config.caller_id_filename, "r") as caller_id_file: caller_id = caller_id_file.read().strip() except: caller_id = "anonymous" if config.language == "de": message = "Anruf in Abwesenheit von %s am %s um %s\n" % (caller_id, current_date, current_time) else: message = "Call in absence of %s in %s at %s\n" % (caller_id, current_date, current_time) try: os.remove(config.caller_id_filename) except: pass # log into file with open(config.call_log_file, "a") as log: log.write(message) khard-0.19.1/misc/twinkle/sounds/000077500000000000000000000000001453070076200166225ustar00rootroot00000000000000khard-0.19.1/misc/twinkle/sounds/incoming_call.ogg000066400000000000000000005162561453070076200221350ustar00rootroot00000000000000OggSHÑ|­f¶cÎvorbis€»€µ¸OggSHÑ|­\ƒ³Ê@ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿvorbis Lavf57.56.101encoder=Lavc57.64.101 libvorbisvorbis%BCV@$s*F¥s„BPãBÎkìBL‚2L[Ë%s!¤ Bˆ[(ÐU@‡Ax„ŠA!„%=X’ƒ'=!„ˆ9x„iA!„B!„B!„E9h’ƒ'A„ã08 ƒå8ø„E9Xƒ'Aè „B¸šƒ¬9!„$5HPƒ9è„Â,(Š‚Ä0¸„5(Œ‚ä0ÈÔƒ BˆšƒI5ø„gAx„iA!„$AHƒAÈ„FAX’ƒ9¸„ËA¨„*9„ 4d ¢(Š¢( ² È@QÇqÉ‘ɱ  Y HФHŽäH’$Y’%Y’%Y’扪,˲,˲,Ë2² HPQ Eq Yd 8Š¥XŠ¥hŠçˆŽ„†¬€4CSøÚR,1Ö\wƒD‚3¬$޲ RŠ1ÆsÎ9ç¤RŒ9æœsB¡TŠ1ÆœsB!”Œ1æœsB!„RJÆœsB!„RêœsB!„J)sB!„B)¥ƒB!„J(¥¤B!„B©¤”B!„RB(!•”R!„B)%¤”R !„RB¡„”RJ)…B¥”’RJ)¥J %„R))¥J!”RJJ)¥TJ ¡„J)%¥”RJ!„J)8A'Ua£ €BCVd¢”R)-E‚"¥¤KFsPZЍr RÍ©RÎ æ$–ˆ1„”“T2æB BêuL)-•BƤØrK¡sA€€3ÀàástG€ DfˆDÃBpxP S@b‚B.TX\¤]\@—.èâ®!!A, €œpÃox NÐ)*u ð\ÑÌadhlptx|€„ˆŒ|$%@DD4s !"#$€ €OggSÀ»HÑ|­ë¨æ]ø-A;ÿöÿ ÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿ ÿÿÿÿÿÿÿüÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿ ¶4q¥Ðôk©ýhòôûý~¿ßOZ­V‹%©45¢UUUEšukCCCƒµ^'ÓZcCÕ6;$ô£(Š'8Øj‚ÃhÅØØÊ•c+FÓC›–‚ ‚eQ7eÇq†aÚÈ”EQ$Iù,˲D\×u7˲,;’$-‹¤nY–e"®ëº0¶×u]×Õ¶ˆëº®à³,Ë2è–¤e‘¤nöÿ¿ßÆÇãøûg8>Îßÿíp|ÜÚÿÿ~—ïÿßoããÖþÿ×6Çÿÿ-ããÿÿ>cãðÿï3ŒƒÿZ³Øÿÿ0>µ0n±ÿÿ•±qøûWþ|Úø¸ÜÌd¹À¹2ÊÐ/œÍ±Úå>6yÉØuu »4¬»JV»ï›ëCé!—9äÎÛ†-z3ï›èx7E`•ÈêÐ]CÃ0Žã:[«¯®Ž$ϯü~uŒ<ì÷SKzð§~h$É?“'zçô:y Dá-ö†Eá¥zón–Õ r£+C¬¦Ù{i0‚$?ô"Ìlïòöº˜WË1¯ÿö£0wÚÿÏ„aã Åú(ó³Œo€ÅºþÐO‚[J¡fœ /á"ÝùßÌòþêã(%kÆF—Çû¯ÇCJÆ:NÙ¢5Þ ˜€¨- šfZšÂ ¸ŠÏŽid4&i¦AddÎ$@½ûÏjE͈5úÄ+ ¢Bq—Ò…‘|h)àyy¼WÿQ‘îHD@2ÎõøkY§ö¦†ÁPWÆZ›yiÍéôsÄŽqÕ[g,TN 4W]/N] uØe`€ià5ú£n€ T-€Ò÷ä"™4€°µÿòWÿÞ«ûwö%Y†g@~àvHøó¯HÀ(™]ã=VZ,€a€sžI>3;ÿ½}»ªß¾K=¨)fŽp€îñó¿7¾÷ïµûRFuVôu  ¾²n&€"­XM4… ªp+B@”%  Dέå¤xyµx±„ã>rÿhg§ .é)Zî)F+SpÌç}œº{a©MG»Í3°k½²X ]iCƒ Þb‰T¥ÞDLj[ß8uÒå@”½Vÿ*0‡ÀÀ«¬ÚZÕãhÖƒjܼ  rà|%°á¿_ (l@þ{[ ¨fÈ _$€p@k`þøîþB±w†¶·ÂoiÌw\+<~Ù°Ýw8yæß”÷ÿP7¶‹´¾ƒ‰bgˆ(‹,‹s…²)" ¾ÀlÎ[u‚t0ÓoO‚“Ä! FßvÜo[sʃ+畃¾¡ `<þï€@Ú`ü„¬|ÛõòÅ ( ºV©`eXW QPI.[寓`ŒQ*¥‚hut[³æ£jí'I©jœ®' ÄYß­Ðf– ²š‚í0Âå #ïZU`P™BqÃG+.÷b€ ríATÀÀzûU>Ž[û¶ ¸óÒÒ_ g½48h) bv†ŒE^–öUâÐȯ–·‡zAý¦X&†Fÿp©ä³ã=µBæûê-®ˆÝè#èºÿ_€ÙnèPÔ a¶`P #£ªЫ2 Þ9Gœ~²àJî鯨§(žpùþÒíg2èã@L@™ùy[?ù”‡.KY­C-Ç#tŠ(¹mùÃoiøôŸ÷Z`ÄD®fšðZ MÑ €B[W¯²ÕUºQ*èè†Û /¾ü¿Ö¦là¶øg¡d];‹À\¨ ^ƒzÑXÀ$þz, ¯ù˜y}/ä/¸Àÿ¸[øõ\€@À_¨4AAAÁ€Ç0 ¹›ˆôcÑÞÿC½`dºãZñð‹†º9ªy4üõ‚˅̄ꮛ2è{þO6Иó€:Aº˜P<ÁlH…rR!çç€ ¥çt“ï2"àò÷0QUPš~/Ö±—'= s¡ öH&*3fìëÛºûŠwõo(óy^J}fÕ½ó¸Pæb´ ¯‚‰åÛM¿ÉÞ@ñœ(ÛÿØ@†Í‹àn>9¦Ù‹È°!é³év›™‰¨«bäæ®"á‰øè¼]OîuU\Ðo\ÀÂzÿ:qM¬¡9'¨¤3€™€ ÍáЀ`BG!Pˆ ˆfŒ²ò¢¥dT±\é=“QVš?“†B<˜áýÙ‰R€LˆZnú5h **ýe@e%¾‹"<Ü€ªáx´€“ÔF®®v¨²t%yéké3+Ý.ïüéSÕy«YWµY4mÿzE¢µM¡Sê_ݯÜ\²0×(@€zú¼0p}ïí °’=c`FÒê°þùK 3 ßý, 8|ãßú_Ï€k ÁÊ à¶ Yf¹»ˆ(¤î?%· æ+4V’Sö"€þöÓüjøÒ™Ì~Aåü `ÌɨÂLø`Ä "Aôš²FqzBº‘W3–Q­ÒWÀËî¤xP÷f‡d ˆ/þ“æÑµ*ðÕ‹DPXÓþ(OYÔÞcÙÔuv¦•Ä,qDÅUµg+PZ\YºRù‘ ¤;`2YŽo_Ó 4P8ñ½G!ºz4Ší93_˜ØæÅùÑ€€æðŸo¼# F€$=øç¿Ö Ì %WøH±ìŸn2˜†nËc@É>áùœLWûÿÊØ ¢nc£æÆß;Móhýñèš«K̤õ®7A~q“`­á .À_@N“qÐLAmÄEÈY<]ã¨øB€H’Ÿm³†PÈ¥¹?)f¢åž•LAeP†“€T²¯úÕ2×—µfá Q9øEöþ±H³¨ÏεԆ^™©"¡éšWó³b+ºtJÙõެ(sPDúwoG€ÆnøRê9 `(Š€` Ã†€zŠøà?wð!UdBÊRÒÒXQÔµ³ x(´ËÛÕf–£¥ÿ?¢’AS£Žz.ª€ÊÃÀˆNê¨2¼) 0üx¢ô¶ç¥”Ù¤²HÊÄzßjÜõè–S;øVT™víÀUQúѯ¾ÝæË†Çd”@ÇÉõAeè`îÀOAÁÄà\=0õ­Ö4±¡©Z·€ ðÓ­µ]Ò@7ÿý,fR/xj ö†òÃS62zÀ€2û† ^†¹«H´£V?šŸ*ÔÕ8¹Õ/7ÑâgãÓCmÅ”ë-®èsÜ@‘éAüw%0›Ó  Ns&&Í¡ã ÞÀG(¤‚ˆ 2šKû{Û• d)å:Z#EE £?»#ð>OݸhŸ6Í>@4YMQPýP “Ū4»ÌM–hT0Ç"?ÊÀžO‹Rtíqæh稪tVþo Î$É-¼ª™æíö}NJy‘˜ETß1¯ûå!=…5ÂV‘›s±Z_=§× °ÔH ®w!›µ¾ÿ CòX@ §€·A€•ÐŒp²l€^IÖù«öó óUoO›’²¨)N’Eö! (Šß ¿ ûŸ­'0nœ… aø³äÉ-`O;€:AÀlnt»À&— !E …ÆßæTºóè{y2Šé¡@ÔßôTQMì:¢¢ýêjŒžM~—`Å㸿üëæ¬¼éë#]Ežòò~³qy¿ºW|z¿Ô¸ÏÉ>/\xÕÞJƨš@=oþy|Ss²É` ¼ÌØY Ù‰ö†{zj.ô,, Î¹þ0ÇÀ…Th€Ñá_þfcžÛ€}ôg<ýþ2›>i\hœ>I¦ù—€@Â'¹˜ö¢§Cª)f’uö!  ˆ_iWÝŠþ¹<‰Ì5ʼnª55ZÅÉýVÄn$Pä>4ļ²s~@ `&áB €0&ƒ‚£ A«©›T_ÚF_AŠæÞ.¡Œ÷G=Œª¾FªŒúy4N€ä[o!@ðQýU³º@Óc v¾ PA¾A_ÅÎUU@TE­"„ã¾ôTõ6¸é š ˆ²a=]keÕ(` u»÷¾ÒA½ÔÉd@ÏÞ ©D¯ÀÐøøÀb¾ü[†ñå_¨úõ )®üSGê«*)|@^v™U¡DÓ¯¼PvɇÍDÖ]lôÒüä—B5Í_õê‡ÌÐúWŒ”»°†€Tð—@ `¦†D‚ñ„ÇPEda Œ6]³‚讚<Àû\݇J”‚1j׬nºƒ/÷¨• ’>ó`ª ÿÓÚSQCdzsïúÆvŸš¸ôŒê:5îÏÂ4p¥m]>ãèK¯¯})s÷__¿Ýg¼ÝÇë®l!®».¢%¤T"ùÔaÕ·ƒz_1“ömhÞ,0 €Å Æ÷ÕÈ Ô?ðOør£Í•¿a$€ mg6€* À† þøÕ™Ãt2üÒ?ÿ…Íú ¤6,ìÂÁ⛦i~5žLê’'3]½‡/º 0.H`¬ˆPÂÛ,ž m3-ƒ`  )F=,/÷v3â¶Á«z 2³]–uÄtðµŠÀ^'/ï£ôÚôpç“,@ynÎÀ¨DæN$Ž'èI¬Ï?ŸþQ{rY{Ú9³ë —¦wùÚÝ—XÔœSÙ“š‹_íóe¾R޽C᫜|Züoµ{î*sŽ&7” ýìøÒ¾;q e|®¢H€bà€þö»0À߯àù;€hó?&Ó€°ÓÌaƒ |à>V†ß|ÛNFýÕzSÛ%C­ ¦ùÙŸÝêøh=¶Ñ9d>´®Å=F‘mCÐÏ?n€ÆœÀ`‚ô=~Îct>&A(S43€O¼éÜ–µx®íU½€.׆G]™NsdJ7nUà7&"ê™{ €p)ã«ã×Ԙ׽½Ñè¤iIó¦¤yº¿$Y2ç‰SÖ£·÷Ï»–ðdÐ6îè°QK ½q4À]^ÌiI–öVÊHøÕòã+Wd»‡P·bæØY ~¶_ÒþêÕà Ϛ⠀qã& ö×Àü$` sP'È·f“Pu` š+C¡Š¹›ÿ4“ ºQýÁ3Ë‹ì¬ú¢Yñ^Ço“)ðýJš® ¢ãůTTX_{@Ñ2ŶIPxx»Å^Ý$™zÉXàåHuQï]¡íþä@ó¶_ëuߥéÛ‡u¿:—öá±?*‹]€§àW^ R=Y°€4мî:4úèwÏs# àò¬¿Û¡> ÊÈßþÑÀÀÈk€CÉøÆ‚оY6¹‡€ "~É«~[!Nul(SM1“ìò7 ¿{¼ÞŠðêA&Ê5ʼnE¥Ö•c[¿qPdƒø6` ˜³ Ô f ÞP0†qP1¨B`p²“|h÷!‡>ZA0%ý»âšóuøöAUUyæóÔ--¯4¾—£äŠ*rœ¬£*"è»  Âÿ•,¿Ýô(" ‡óâñº% J&g=Ϻ´—ãœY‹âßV¿qY –¾ìEËn“”‚å;€<®€<Žë¤ €%@ÚþcÀŸÝ€/?@ý? ÐcpöµT@0°@^¦ù‹¹æ¯ÂÏ4f"ê.6záÐâ›(>¾j»È|hÝà Œ- œèü¬1à7¼ PW™ØÔ°ÎáS=ª@ÒŸú<@ɨ{Ò𠊆ŗfRDýFó¤c’ñ!¿ï¼L½€¹‘É{Í*€"{}Yr@ѤÁš<4õýûUïhç&ó…2:ÚJÔ‰NkæéySw¼ÍªîœÛâšýö<çÙ 3-»’ÂmjU)=•" सʓC¼]íZ]¥YÎôF£ôœ·€X¸0öŸ,ÐàY5€úÀ°xºW| 6 `ÛíBÚXFÑ 8P¼ù•áE$0êý?Ô,Üp¯»,Wüawüjüzض‘™¸¾Çãf(ƒ¼ý[0»‚ ŒþW¨ä,€™€A1Ķ\…‚ÌN¶U¢„åq3LÆàQ]=©Ç4OýBð€ê¨¨* ˆ:×çÄœ«ÊKE¾ùdGé}Ói8‘#}’ ÿ¦ûÊaÿö}Éf§söxáóÝú’Åiþëï±êŒC6ÁéÍq4-\³¼MPÙA —_×"sîÈ (‘KQJKÙµ6€.† JÌÿàaõ5ü, ÿ¬øͯ‚4Ï.AÈV;ÓPÈ ÞèÅ[¤Îô¿äó?ÔóÆô µá¡—Ü`òηi®¦gwÙžêÎ¥µ²Ç(↉寇:AN˜Ð.@0¡ø˜¡ ³a›0—àpsO¢ïÏj£ØÁ†åþø¸YÄ»[¢xPÕp'* Ö&@AV•ÅR\òÎÕPh†Œ/cQÝš»ÚöÅÅϪ¼’2 „Cjù(´Æ5U¾• i14è€5hsÞYgd¹Ú4€ÂzÔŠ'UXq3©¦FÛ¿kÙ®Þ3P–¹–ó{Ì‚¤È-!ÒÖªÒ8Û|¶~i 2za 0~)šPltàèblÐ@m™ 9ƹ«”§kÇ-­¹ùu5>ŽiþÎwû/¹Z6]~Ü@kŠíY^XˆcÍÈÝм§A|1€5¦†‰g%z‚ €™„+ˆ»ð‚ Í‚`Èêú¼†&ÃB=Rà|r§^¡Àp~¡@ ^û4_/W„±fz2€Ê^õùšŠ;9@á7^«*Š¢*j4ßüR I y§T% RÀÙ;³zãl¯TµAм„TZAyè)E[p£VÇ÷ûWgÑ(n#£›PöeýÑ rXá»Ô›¡VÛß-ŠÀ@Å2 ðÒïÀRêc€ÀÃ@ Ø@^YvÙ»òÙOóKyþOÿ ™i¨)n’Sp@~>3ÿj¹ý¡if~†šaÀxð0À L@_ßA^ŸIXc@<¨S˜ÐÅ[˜`SC!@ª&rwd @é%ë¶ïE …Úšy´ÁGªEŒÊ^äüês[OðDFÍcE€ô_Ÿ—LõkÀÒÕQ¨,­´§ª&§<¿JÅüÇ·—‡Úå×ùýs;¬ÕD8Ü׺›õt €&‚PöÊËëÌ€âP°Ww{ÀÀ°eä£c()õ×ÿ+påüõ*Tý¿ 䃃¿ ð%@²0€ ÆC¿™ñW×oF8P¨#Áxèâ—œ´ø©ûû¶)×}8QfD™!Ë×2Æ!ã;Ö˜„œ¨SØÔÉ ¶QÀ¸ÆŠ##*ù%þi^Æ€ÁµÓE @BÁ÷Žÿ 7N_™c(àQMíÓQ®F®¸û†=#5 Eæ\?k.Öcœöyõ­Ëºöœ}*Û¨tö—&(EÔs¼ˆ„õV€°û®V¾ôÐÞRE”=™çÔê”EY¨¤Õº('ó/©¥ Œ°ùÚë# ²’î¼Î“¶1´[Øòwø'¨æKÊw~ŠÄ’1 “8GÔ ©pú ¦Áõ[v^Ûý(Իnj¡V<ô¢üxõ2Å•;zÁ%攨ÞÃ÷_€qJЯÞ˜Í)Ö@]¥pt`c´Q¨¾˜>ÿŸ{‚¶àK h‚¢%ÝÍárðÎè5ºä|iEDTU‘íMuãuêϺ,öþþGÓ\U³²Þ¶ñ:O{,ν™¯T™Ž‚jT¬@¡¥îUªg°0PšÆ¹,ëG{n³"23 vmç±·àÌÈUï¥tš#ÐüáËÑpÍ€ºý `´³ú  (åI°ÞFúÎ/êÀ Í×À úÍ’]õºø’Àl6àÈŽ@6›&~ø%ó×÷ÓÈôŸÿ̬ ½p°^ßt-´>SxRv½‡/Ú€ÑRý;ï&ˆæü5À`‚tÀ 4‡L`#!E``À—a54-$­)pJœd€Ðº‹Åc» @µÑЍ  –ÍS‘ÊåÚY  JXéñÛ¡?ŸÓ.ÑXß\]-ß45oùíÉý8Ê™ —RE=ÞW÷d”¤ÂÝŸÖsϬ…šQòPÞÓQ6JÊò7ãù­ØŠn‡SJ²¦˜I.™«àòwÇßÅù?öãÌc¸jŠ+ÊC€ °ÿ³¦‚>L%XCB0^6 O0“p£ÇÀ“.©@$ …´}œóTzºôw¼ä*›"BdPˆöT@û  €´¦ ‰‡ €˜+[áN]Ñæ[XŠ-/ ››)Ddè]H¦"¿§¯Ð÷}yR­5q@?VÅA>vkíØjå$Yå¯/òšfšµCÄ(Æf#½°4Ýë:J‹Åà…ŸU€Aýµ. €_ O?ühop<E€L@~9Æo²þ†ú2ÂVÌŒ©¦X)†ƒOÁÏë7½šž Ø@kÆë2SÈê¬(œ+bÙŒø>` ñ45Dä0SÃ@·Ï0†qejA=.L¿¢!àÁTÆ®Ñ;3ëG7o—.Z× $£Õ¤î”O«Ïözi PÕd}iM@UEÒW蓃ì½ì‰ ¡I#¥4rÚžûÞ#)QŒZU§NA£˜õ°¾jÔe’t/`Êòßo>zõS‹#À0q®~@,;oÍ: Íx4@ýÇ¥Aàù/ˆ¿¯@å'(@¦¦wØ 6Áø,Ž€ Mo^¦ù‹Ä·Ð°4ýe„­‘í@¢ÎÆF/1´Ü¿i¶¥íí¡¶Fæ{ë=œ"‹2ޝ­1nô2è×n0»‚ó?êi˜PtÆAÜrEh5Ϻl4}2ÈæƒàÔƒB²¹ø¢AQïgí–Ê€09VQæçTnxŠÅþ-LW’áÛy]îj3p.‹‡ž–óaÏ­b ú®ë¥ú¤B ‰´Ç-ÝÕ–”´iŒ8ÿ[©Ú“–­€ àa°À‚ôØþv€‘ïb+óÍ€òW@/†ß¤cÿµªàˆ—l¡• x PÄþøÅÙëÿïdæž÷¿° ÈpÕ†‹^šoÿw¬5êùj½+Æ¡ ò=à4øRêé˜PT€`B[ A+ÉÑ €z@Áƒà•ÛeJ¬t+OŸ^÷« Xž7‘ù9`Ùù²ŸS{Ó&ê­õ(°d•ð)o_È;K~½ÇjéÆyvx¾ím즷ÇÃë|[3É8ðb®â´„ Yø“C§"Jn㾜ި>Mã£#uµL ø¬È°Ÿ@ƒA£†j¼ºê€l9®š €ù >ìW$hÀ¿| ¾€40-ü€ÒeƒE†b†þƒWs#âGã“¡ž‚ÌTÖŠ‘`0xŠÈŽP>[N†:l8êlœ˜ ¥(ÊT™jË~(²m˜@cN+€:A:˜Ðã :ª²nš±÷ÔÄ0ë *ùb÷¹ReT û]ŸºÇO¾V}/Í€aîæësUÐÜUÄÜ]Ö±YÁ®GoL/v‡€å>›½û{//o®ÙW´UÒ V×i¦v’æ «õo][ª×mŒ ‘ÕèŸFåýkÏ…’ ÀÐJŸ+æú K˜­©S 0µí× Kö ëäÊ`(€ümb WÿWÖ7߀ÔAs?«õH¾t 4bÛÞHƒw‰¿C¬Ý_i›i¬)fŽ]æ. óáCºÿ‡õqÃQ3®7NE”w°Æ60çC@4!Ì”AœÃçc#¦VAŠD>DÏ÷  k®b½—ë;J.ptüpêÉ“µgR¡êª¿áÕ¨ÁÀEt¨¨V ŠÈEL€Í²“¶ÕµÀ®Ç‚ž¤0U€yKÇ÷Fï_CŸ?ò´Ï ‹Ç}?µþzëÞW/í°UÔûtßǶU au+Èv*@ ÀT¾7$žƒZîÀn€‡ºU/€ý?­*e€Àw>ÿ¶ À|]Y@Õ_Ið0:Z U ã)Pd€žI¹—€ (~%?š¾ µ 2C¬)VŽÅÀ]ð…úº¦7#¼4È„P3^Ý™eÊ:23ÎÊì7E¦‚ø`a¨« €™€Nèö€€1Œ‚Š!.‚ Ù&¢YÇ šÐ|=As4mp$ºt«ÇUQ) DüÇÔ¾a¸"9sÌßf'dH6^›ì>|Å€šƒ£-‹¢¨²úY„¿kôÍ?Š €^2²žç^³ýèj0“Ó‘ˆV z| åîž›€1¨Ó¾    ¤N;Ãc`jÐ ØæÎk-½·€ï¡AÊO0€þðÇI´ ¡PÁíš! ^)Æ™«¤oÖ†;ÃoÃLwQgÅC/7|÷»o׆›Ÿ\ïÈö>0‚ÞX`‚l 8  Láè@ðð(¤ çó¤R¨òÔœR îdV¼ð>ù…T (ÀæG†fr®¾šg;¹Ê@ñß|í÷|¿ª4HY©iâÕÙfZÊåÔ›WÒé>öV’D@JÕJ‹>7ýÜG›{ÚgwÜò#ÕšÉN‚ªgœÞùrîºÝ¦ÔÆžÆ>ï²n€†,èûŽT(HŽþéÇkí—à7ËÀð¿÷°€ =UÀba˜ß¥„>Ü6¨™¸aÓŒ¦B þø…¹ÛÿëdæK¸ÿ…ßiË𬠻xXñ„ËÍø«žÝåÁæ»Ö]21"3†écfžÝ#ŒÃúÎïJh\ÁùÀzøu•n6 ã‚1ºR!ØÏ}›¹Û»ê£Ó5RË@¡à÷o$‚½æ "`½ñmUDUîÓ­ z´8@•( ‡[î}ÝõžsÐç¦VêG¿÷õÇ"ûuŸ¾üZžu{Ùs#SF(å¡è@òRƒõ9Ù WX~ 5äëòÿ¹æ†¨š˜0_˜rú½×.Í`\¸Å 0 @€f@ýù%hµ0ÒžP ê£u{ƒ> ¦ù‹±£é³ëV„‡!¥Z1Lv¿tØ ¿Ú • D] EÉêYÄÙdK,‡"ó Äß Ìæ¼ÔUN`B‚ ÝÀ窷35ùíôt’âRF>ŽÏÙô(,½œö9@n¦/SI‡ð FíõΛÑWäP4™ö{WÆJQ£ç–©¸ÝèÅô^o­zI¿1"ALš%e¹ë¤ä€ZgþK"#“]tHèË’µŒ(ó˜Ç~éQô`±ûßݤçÀºtác÷¾šªÞ7€;[OÀ,°½âúZXBÝO€>„·/€@ø Àw×€øéSh@üÚ’ (bìæ6;lp€é²Ifù‹ä_!éj|K¯1¥$ëªI–¹»ü‹_ò¡Þÿ\À™kʼn3×îã¼ur9ÆŠ8 æe³ aWu‚$€Ù ® Þî0†1j "„ rK¥ÚÜÍig|žR„ó3·@Ò¤wã·Ë%só‘à ?üØÝ?îõT>©  "r—YK<(Ññµ½g%&&÷Ћy–;ö[çÑsy; ª .þ`åzm©£ÂvíM.Â4˜/ãÀ¹ïþš'ª”^dþúTI–eT À—0Þÿà+”/@ùãKÀ@ê?þsx j¸l p°Á¾I–Ù—€€$>·GÃ#¼ò¨äjŠ›d—yþ(-¾ÿ3àò#p¬)NŒêJykŠèñkl@<›@f Ü A€«M‡ÒçO""“ëÑëjVªEÿv]ôÇi x|oÊé?³Àíg' 0°<ùæpAj=œÕ:#Íê:Ï·ÁýÔ¬Ò;ô2ú«l IjµueQòãÓÜ_P0q€Œ®  Q¸€tCßFJZ€èëÿó‡7-cÀòß*¸8!‹?¿V ê'¯ùù¥ˆü 0@^Ö‡„Ÿ’ãÕüU„—Ž™Ÿ¸îb£— Nï×Åv5ýW¨9`~r½3br"CëüY‘ãÆeÇWÌPÁÝu•*DN¸)ÒÿÉÛÝ-x7œåͦÆQœ¡YŸ<„!ã•â³UV‚ÉéÇZsêTTõµ*ª¨ž”ö¿?5ÈP<ô·éáq¯4Sn—ö~-Ó§šƒÚ \ê;«²´” VT¨û‚’³œPÀº ÜêgÕ´@À`@?à|úÿʲêRUÄû›eÀ»~}Õ2˜Ê__ ø®]9À_<‡»¼¬zï @j‹.ÄUA ŸÞ ¢¢š~Ë|ßqzÚºØsƒdÛ¹Z­W/Ìξäêþ¬ÎÎhì> Ñ¼l¥Š €ô߯=50Ìt°´ÉãWc‡KÍ…F“¦  x)óqyÉXRò¼ÀÜ"`À¼ú_ô™ß­€Çêï ø—iÿâ<Ö`J@eþøå†ÝýÛbO.o…ß.(ÕŠ_bØê·Ž8ù£õž¡^(‰¸îâ“ @«uÐØ”óS€ÞR'H8z¼\€`B«À·TE`i­>|j @’ìl;±GÎ £;ä矟¯6¹GÁ€*»¢ Ñß—ªzФ€Ç˜¡W—<U­‡uïËýzì[]ÿêç,n ÐT;i©µt;óŒßŸ­ì 5IƒŠ]¿½ç$6î¶Q+äÖšvÆâããÓ­°‘ÂÓVrO²ëìÕÅ?~Ö¥í¥-{Ùv£¬×4áØG7¶)1¶z lšbMžÒ0à Ù„ ä@VÈ`žIÁMÒWèkóÛÿ<2£¨Û˜9¦Á‡€@Ø>ÓBûýÓVhÍ0‘Dõ¤Ž,&§Ö7ªlþ³7€ÙDd¼J°x‚€ ÂäAŠ!-\ƒÙÝÞÂÐèך„WQàê…-Òf <¾`_òsƒã£ÔUF/úЗ‹EVŸf¯þµÎ˜µìsnÕ¬¸wž-jœyæ@„î®k‚:¢T³ªD3ª©b-d¯ŸVs+™Hõ&äRDO¾Î~€=ÀЏÇüŸºòI|h°e²‚ÿóKÀ(XoWÄ?Ÿ JjŽ 0 ¾Y6™§HX@ïøhþa¨•b“M² ®¿æÕx3Ô‹8Dv½†ãÆ QAÜÖ˜€O0{\\L0*^@!„ ³ ôDˆ^/2!h‘­û‚sÉQQÈ¿—¹/T ÄÇ%@Åɘˆ ‹í‰ ú†ì-O™r?µ-r”Ç5h¶bQ>ÉñWþÞ6—XöŒºîˆ¥s©ñ½JW|¼š‘¨Å¥Ž Ê+ݲ¥A]Ê…` •0†2ÁØã¡sÌI–>óÄ„ã€Eð–üÿ; HOê߯ õÑà_84Ð X€€ÒOggSÀwHÑ|­ R^ÿ ÿÿ ÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿ ÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿ ÿÿÿ ÿ ÿÿÿÿ ÿÿÿÿÿ †CC%ò¯^ÿ2üS”¤¬¿th+ñDüt½ÿ‡zJ$jÉBFePœžæ›2®N`‚LÀÜ ögu‚t°išÃWHÕ".€ävôz§ÔO°kôéa¡L™›sR@u±(­‚èég¼—RÜ3T@Ñš7TD‡@–/Nd¬€©­Ty´œÁßçžý+l®ÖWÏïýô3m—7#v_2œ”yz¶ž.™#©(*O!Ù##+Ô³6¸™Lëb\XZ<€ÎΟX °€|%É7ÀÏ P—púG 0@BOÉŽf}26q€A –öUÂRTâËòü¶ãkÅÂ.(ïÞLóÑådBm ¥«÷p"Vˆúcn½îîa\0@ô—S ÌpA±êi˜I裂1ZR!ŽîÔä¯ý4»ÆCA¬ ¡A(cHðêÕ‰†˜á+wÒ]'ßLWÐ D@ìSÓ  ½Ý›Ò{¿ïÅ”V½×Ä¢5—¾èïž«íÒ}óZc÷¯7*sÏÚ ˆ‡_?ŸÏ•…EÎE¸'¨'‰>60OºÍÔÀå¶x1£R¯öñ’Ké ,, ×`1€ú@þd> üý=ÈÆ¿]-ü°ÑP~k  d{7PA6~èµrß°³Ö]Âß#Ô†…^+¿ÞŸÝ”¬å®ÔPÊ­{¸`Ü(2È/jw@£¥N0¡9Á­Ÿ£*€Œ@Ñ! ¹±šxÜÛ¼28ÚXe}^D€§˜PõÀé¼|µH¥åq†AÛ9à¶EN Ö›ñÞ7K©‹þÜ•EÍ‹ñ[ºqÎGô“åÜ5¡¤è+íOII¸ssÏN-î©Fh€¡‘(ªê^¢!Y®Ç2›É©¥9I2ß{ΪsFÖßþˆÑáøÿþP7à À}+”¾o@HZ)1Gxø³Î%C€/Ï€pÙ€¤˜P™T‚`Ä>2~9¹‹ ãùëa‡R–u5VŠqî)ø`ývø¨ÍÐ)¨'¦ŒŒ¨)'î¤q(r<ñçkL sêê9` êñð@0ydBq‡ÕZwÆÑý(5ÿ}¸¸ŠB†i§šº¢AüÇqÁ•\ŠýIyþâÆN3€J­>` €h¬¹/*ˆ €ˆÊÏÞš 0â»b‚´²%×{ø^Çhö~|i¬¿¾®Ÿ^çfjwA}^U•ÐgDþüW«—Zªd‘€5”;F Pãµ^««À:¨€ÀÞõwq6¼ËšÇ ©=] €­ÿ\ù©Þ+õo €ÁÉlÂߨm0¼Ëm086ÞYvöC|Ä﯆?F]S’L5ÅL²É\ý£€îüÑøfØN  nã €q(¢„ø`A‚ûuB˜ (Ñ&aT¼`ˆ E”^{~$žÂö…†X)À£ôç$xð%g›ÊÈtÿ@yRÕ&`é~8«§IåÄåS “t Þš™-:û“ÌÀ*Ý=ž_øëçN9ÆÊœæb͘@s²ò:} ©Áò[Ô²…Ø•¬dí·²Ÿž¹(¨ k6$ ª0 ¤¿v €[×ÿÖ>T¨Hýþ³Põ×5àç?@ýà_i@À7€lÀ@s^)Æ?¬h×_]Þ ¿§,kÆÉ0|øc…F|©ïÿ¡öÌ­T+L ™¢ÌJf¹Ï臲Îij N3 Œ·€Œƒ‚«@•L`Þ8r¶iÙÿ¼á« d<Ô9JPP9AŒ˜ž›"ª H4näÖ±:½ƒ‚=Gž«qj_½xß/9_‰„³`«©ö¤V‡ЭV†”:­ÃŠ•* œzôN\ìIÜÛ¦Ê6™\~ÅÆ¬T+ á®ZêuGT€œ¡S:äÑ×½]³±PA”nˆõôI­~mb% ,h!}ï°a—£Û¢þ¨ÿ`ÿ+ý/¬:´é#GÄ@ÁAS6Þƃ[ÉOæ£ý[ÚFZgc£ŽßgšáÑúΰ­ÁLWïáDˆŒÉÌ(ïY<Ƹ1ÀúêµfWPùÍ=AÀ„àLh« €õÒªÔøøkè˜Cޱ‰WØ_%>€ú½¼<˜A³ä7·Ê— €pk¾š€J/)wíèêZÏuy{_ÖeŃÈk½-ÛõêýÖŽ*{dÜÓ>?â.È!Àå4…ý«í9s5ª`ì³ýJ²TÚ“­ K°c Ê“´–Ê_«x:”@<Ý“0fˆo½~]C‡ßx¾$õ?M¨ù$ƒBh& žøù«¤»ˆxÉ?ÿõÂÛŒ¡Vlô²lñ/Çé~kýö°=s›‰Ö;|áÖÀØÑ‚ DWð0_¿nÔ R˜Ð`Œ.ÀOå"`îloª~ž7fê[@€(ìóÊ»éœ'!#Úç@ð [§_osäNÒqḇQ@©5½®‹¼»¢îD”Ów]ÓR}ÑÍ‹wÔ•4Ͻo͹mg|½v »ò`WêPƒ ï9ÌLV¾øó%ëÈT¡å!‰¦£Æ¯•»(, FØ93Æ€‚…RàAc—aá­òÒ‚¢'ÝkÈ*-øø)ðòoÎøøR€ øš @ @ôÖø4 lî0ÐÖÀ>ÆÙ‹_ØQË¿z==üà eY×âd˜e·~`#-~¶{z¨±ÄR5ãÄH‘d½uób±Ç¡ÈÜwfsZÑé ˜ ¸ÑÎ:)@ DÕϺü›ÑzÑÍŸãkQ‹ ¤«óêøf¿ûµûÂDBÔhzñÁPzCS¢€ˆì†"ý¡i–ûäT‘Š;Èúáìì~¿†Ë5+Îê§Ñ?»FÍHUR´ÞÚÉ÷† @V;éët×ê”ì¸(È0ɨùZ:¯ÿ›t•LÇèdÀ¢(Ð)pã ï^’ À[m (,ç(¾ùåØ&°ôÂ? À#ÿb‰_ÀmS2#À†°Ñ¾IÖÁ]Ò§èÖ7ýxø½°¤šd’]øüQüîúK¾ÿ…o82`Í8)*§õöcßçå8Ñ âÚ¬!¡¥N0›€ =îðÆ0¶0„ܰÖMí›_4P$ºír»ÈΟšJ:m€€¨ìª1¸#‚›ës +r’Uälð•Þ®+€ +@úà ç@ „(Íì¯üúðvvUƯ¬ßvCÍ1ªÈîê×ÿž ”–Ê•¿r­d°ó2^  í÷ñ÷Ûå²û”Ö÷ä~«Ùh~ x9×xý¶ ¤o,À/À’ áø’1‚àæ ~9–ù›Ð¯E؊٨ 5ÅJ±ÈÝýš€F÷[Ó£HÍ81Eõ«=Z«’ö¦œw•ÀæüÔ a¦AÍá00 ŽB…@ïÐz'ŒæÅVù>i°^¼ÀCU&‡€ÞOÌ$A WCתˆ :² ˆ€$?˜Â=W§mrFÀÕ ÕS©ˆ¾,ÿ˜Åœc•½m¨%W_§VˆSyìv{o-²ÐÅJÜù—U…-) @ Ô‡TP±³(yù¾T`Ô•æWâ:ïpó"0X&@ü#rg¯l  ©Z¨¿’Pÿ2_ûŸÚ€Áθ-€‹82`Ø`^)Áöw9 ?þÕ˜Ì®ÛøøÙñû¸ñ·Æÿjd¦\ïÈ‹Œm È€ ¿3Àìgás%DˆA0µ­"€4=© xg<ã"iHd¬ ¦µæt ¨‚¯šoTgè ý/€¢Aß Aô7Û+¤dÐÿWSª Ò“‰êWØ$,/¦•ýÁÌ–ÍþP{êÒž¤Tìzq|¬ìß·9$ÙÄL5«&yäžÊJ÷¸rg˜öyȲ۵•rè À ¬í@Õ.bôq}÷Ä^ Œq(ü.æ¿ €€¿}H~AÀ¼‡€â€V'Tà (à°žøEÙ»?n¨t¿Éïf3•µbb—fÊóO7êo w%õÄÁŒ­÷È €qAåÄÿÐ º‚SÀZ?Ku‚œ`& Ñj@0F[UåaW:ä‚Q-[ ~5Í”œúz‘Ý"…ì“OzJ`ôÏ@f«'"«Ò*€}]xmå˜êE¯Ö–ÔÝÁV ™CRÿî«ÖëX5ïtÉX:÷þã¹ì³Ú娤fú9À«?>®/ÎbNJ\ VÎ_V9¢¥®ô¢  COÝ]Iñ_R@1°¥¯á,®`aÀëŸÌOŸ ]àÛÿ?°| 4CC¡öÞ @S l¥)^)ÆÙ«©‘?›ßû‘”D]•ašÛŠH:iá³ñöðåº¯Ô …TžETÏõ[å‡"N„ù]fñ¼Ô Ò0q £x*€†dMê¼;Ö¸>9ÉÍf¯õÞ ã§3Ÿ ‡ydÅGÙ©¨Ö¦€©@“'‘ÈÚÊœÛh™ûôOwy»tçb¢šqÔÞõLW[qßXP½ïci­^# X ‚V(õ<_ iæôså+t€ŽN`—:Î쟾Y`x Á"Òª=-ƒ‘«rlÀÁÿû‹Àˆo ðÙ¿€Ap I&–‘,Ø4¶04 >IÖù‹€@,~»þjy{ÒaÌLCM1“ì‚§€I|Fü]lÿö"Ó5ÅcŽ/@‘ãy0ï °Æ&L„} ‹'Ș<0†‘)BB€)¸ýã^×&i(!Õ¬c3ñqÎl5{JáÐ\@@'k/fB@åëÏg4±R§ãi÷ì§×¬°¥£ªñôîŸ,ï}ùÓ2·Wšjw= öÉk·]¯»{,F>U`Ô‡ûúu+ Мz/ Ƽ‰ T´¨ðàÀ+隬àµÿÉ€€Ÿ~ŸO,À/>ùߪûаöþÆxm.•·ÿ’@Ó†jc€@>IfÙ§€€,#ÈÿS.?”rª)fŽ}ö. 0ËÏôj> õa™PkŠ aöu'EëL–M nk,˜ëÕsq‚ôÌ4°èƒ7ó^ÀFn &ù{ï!ŒöîÖx‘AÛiÍŒªþ¬µ€ŒÑZ-à·oùy×^8{u®ª Š¾Duí­ª*€*ïñÝ]Q%R»aªÁZîL[Yθ+F_ŸÏ?Û±˜£öÀ-¹Û®I€sŠåìöûMváÑÖP€z@‘ŠO>š /à–ÿ,Øñ7õú€ ¤ù7§ `À†lø’P0^ÖÁ!b(Ðô«ËÿŒ­påÉŒ²®Š_~hñC¥†æ·\{NyõWŒm`ÄÀð€án€:AZ&t ס"rú’z0C>°‘H(!øžûkˆÏ €‚ ýÞ ܼÿ‘8èR‘@R=7hǾώ¬KÊj­4·PÛPÕä{Ý&,žÕ9ýáoœì¿®ûÒÖ¤F}3ßvû1æ°er6¨—z¸jJïY¤LÕm/ËÍ9*e(Qcüj \®`}ú—cÞm¥.€á© X¿ü΀2 þY€4¿ BþjJþ]6ý¬Öq(¦>J à6ùÕÙ­ˆÉÉö»úþþUŽÚðÐKŠ_šnø½q¤¬Ÿí¢«÷ð…0nPNü;ó€ÙT@ÿ;Ô ’fµLhC\…À@x1V¤‹‚L2’=,ª;€WÃÚ·[<à¬3 @ñS—wž:zzš^ @ɦܙ¢ˆÊÀTÒ(¢êJkóïKÒ=ž½C“rm]“WËâŒÙ¬ÿmzw­ëmnpA÷ÔM’Æå¬Ü´ùèýî6F%CV.t ¥¿% êÁàÎz­d(äš  ,8þý  ÿóï`¨É¯-h‚;ŸÝ§ò¥ØŸe*à) ÅC0 †ù‹_èöÙøõØÅ— 2_¡ÎÅH0\ýúÃÞ~5Ž ÿêC¦KÔµ8Q„Ź(Ïßóú9(â|˜w©€Ù¡N0¡ÇÀ™€`ì ¼T$ªA e¯{dÄ» ¹v_>§AÁ*óª^@…%NµR€»aC@¯âw¼¶Î$}è×WæV\§dR¡§«´¸h于.9ÓF-ó"F÷yq±¡dŸÛ_/Ï®ÌBãP2@*íþF-}׎M —V@tNNÿýøÚ€ºË²_~{©¯[Xærß‹X¬Èj @øx˜þY@  @Òª@ì¿tü“ÂNÁÀö^IÖÙS¨…WËŸÎ<¶+†º3Ç1{˜øÜá“ó/Ô+G†«fœHeåy(]ØGìÆHOù‡Û¦ñ, ®ò-€Ù€ª^üŒa bL!€”Wµßœ+¸òJ½~öl!ˆ6ßÇ «"{K…dÀ ³Ä…¡6€øgMέGŠˆ$`Š¥Y@¼rô!?Ü´`F–ÿZ0`2û.õ5°[Ýx3h@k–Á¸-`~øåswÿ0Hé>µÿÒ™„Úðð‹òÝ;,SâgN\©•”©îâ €ePýÓï^&D‡:AN˜Ð.@0ëÀK!!€Œ$«›¸® %”#ãÄPEæ’Æ¬ÕU÷äUÏC¼5¸:8<“„-œ˜Z>ÍCoÿ§:¦’‡õúà.¨ªšìHJUÑ]¬·Ž…_z¡=ÃÈŠÔ½e£{š˜@­8À\¯ùN’ÙPyÉÚ3.d©©Í½â+[ª5µö¿ùÓ`à†*Ö~4RBض÷ÔÀ~ €¯òÆØ$u]âuØp›`ž9Æ™«¹£fé~føc†«^cæg^"È ºõÝOF8f 5ãÄŒ”QÔT‰¬«}ý6E<A—ßïfs":AÞ˜éÃYô¸/ Å?ÌŒC~¾SÛ„,`òטÅ9‹*¯¯Ë%ÓÝ? ¢¶ºá,¥¨T IŠ0¼v¨**Ðÿ·£bÙ@@‘•Ù…  Ã@°’Ïvä–›$Kþ8gž³ì¯«¯ŸVnÉœ"7 Õ(K_VhN1h©¨}§ùøpí㈷D›ÁŒÑ(ètS`qïí1­CÅÖ{o‚°Ü ˆ¤)fÈÕMÀéÔ‡Ý6€ ÞYvöC@ÈoëÍïÿØ‘™„šâ&¹7赟gx´ü0ö³K¥˜¯X3®q=µ¬! h/êé˜I€.Þ0ÁUÈDAñ‰S+@tðÙWU¶®@TFž»¹þ»Q'8.F(9xiMLˈö/TTý?~¬€¢©»!ê~~1€ä²¶ìZ½83ePº;Ê‹¥ÝX;Õí½úéQfsqN÷ƾŸÇvůfî:dTÐ乌ÉdùŒ‘æ8ýŸ©fX|M[4(âá£÷gœ/ _$¬€øˆùá10ñ 2(^¦¹›ˆT>¾~¶c¦¡fŒûwˆGË›¡Ï‰ Zq"RT+‘EÍAU¿ 2~˜Íij NaSƒðÀ ®*FBõéôpÇ|ů‘zÑÊé.àÝ¡>¥à´y«usm:Tú΢ ‚®srr¥Ý¥z`=ëiöÊ8ó’×Þ¯ëº_z3 ¦döx_®ëì B›60þò×UÕJ¨}dàòh]í*£É(0ÀÐçÀ½ß»D-`ø¢Þ?±Àw½rS † 8 À6¾ó~(YØXHâØÉï0†ý`ŠBüV°Cëñé_‚ ЊÉæ‡HW]S p^æ†.þ©‘ájyK¶g¸×µxèùî—Ê´þ£é/“£èb¦®ïÈ €ñ¨d(WÌ®àö7 ê*%€™€@1Ƶ# !ks.ývÌê×H·«­a •Úí"rвf2(@?8±þókB8Ô¯÷0d¦@%EÕP¡ÆL/`µˆ‘`ô q÷/˜¨$Tþ+È)¾þ^x¾!A–§dPpà‚Á+€°7¾Ø%.~¥Èñâû/vÕ°6\ìÂîߺ9^Íïê•‚Rv]‡?È[€‡rbåï9 ŠçÔ Ò Àæé`ëÀ ©"àóûßZ*D, “(Ý{#@Qµ»˜—é4¨¶‘ €óÐ7ª•îÌ4U€••J9³ëÊÎp¶zöÁÞÚ&•¾¦‰ÝžÅsÍusUgq9}E·»Ç+wÒ’€Æ¬2ÜR šê>@饾T9a4 ëõÞéSÆ×@Ò‚¢€Ïgü2ÈsÎýpÿöÜÛò, JÈèÁÿ¹` €0¿ÿg àŒ_€KêŒ 2ohz@Aª€ƒEi~96ù]Dä„®ý;Ã>¬(QWÅK±ÈÝD*ºæ­ð¯>)×'FÔVe¡º›qã PdO„v 5Ìiê„0¡ÇœŒÑQA¤ùER—olO)6OFÊd:¡èccuÑâ}@üëÑ;ñÐ JyxÖC[¿Ð ïò£°—ÌkÆH°ÚÞ kw3ì-Ÿ ¤V| cÚýŒåPäx:˜Ì&Bóùu‚ôÌÔ°èqTÀDP1UpìëZc hEC¬$ìû„.q¥žËÓÓ© †¾†_´—æl",%ìBˆïvè€T#§ ŠlúAÔ\C^9òcˆ*ªˆˆal6í¡P&)ãœt؆fb˜$´Êj›VÖáöÿ€v}ÔÓÏ|‰š±Ñ«óõ{«>ZŸêåCfºº‡+ÆÊ ¿ø˜`ö€ þP'È8‚ ‚1êr… (VxÐàkÍMÀ-xÀÀ@³“=—¹ò—‹ÎWn• €¸ˆ4ÎÍàëøÓtÔJ@W/AÃÚCDï-§/UJÝTÜ>ûËZkÝ»½ÖðÚŽ·îŠï£N±µôSN•æLJÅÃ…á­zš §i1%»ú &@ %Yª¸5¢Àr,8€àþÇwƒåj« §AJû”ððõãR¬€ „Û4ä Ù9>°Aþø¥¹‹,2ò*¾ÿEØ£"© »8ßüÊròGóì¡&êյ䅷½¥ˆL zÀ#@Ô ²fÍ¡&p^*ÑÉ@÷·°ê•H©2ÈÉ¢I×<Êâ©(aÕœeûùp žÛîø!ƒ`NPËà*Œ 4Õ€•J$‘õ­Øå D©«OxP4íñÀ^¼m½ÏíÕÕ×GÅ2Š­¦Øy¸~u L…J烥î\¼À^ƒª«ñ´HÓ* JÃÝ20Ú¬ZºÀ€?3~€g ˜ê‘à€Sž·AF`^)ù»ˆ±ñUß È ²¦XÆWh„϶§Gܘ fœ(Cʬˆ²h…ÝRDwˆ?P³xÞê¹LèñЂÉEU¢cÔ¼&q¤D´q|•š9Êéá„€3/2IÛ1€XG]t*¦* €(ªòê³K‚Eþ?K¦Õ!K©´‹µs˜‚– Sk—Õþå䌊““}i¿Y±‚)½ò·¬®–}ÕÀ³blæñÒPúýéÌì¥%oÔ®=ùæ›þcv¥Eq_ŸÆ¨h5€WuÅmðwöT¡Þa@v4@ƒ¶ð7¢ë´ôcóZ>cȰ¾IÖ™»€ PünWÇŸB˜1Ö3É.óˆäoÆ_ÊóøcZS š‘‘eÝŠØÕj“ãÆYˆãxAÐÇÀâù@ 7€™„*¨ÛÆ$ŠWBÀrU¾áÈxõÍ¢†Ó£Ì+dpͧq.mðžLE_0•6xBÉHõ÷>4ó¨Îb*tq¨(è¥Ô*ô2öq!ª:¯+‹Õo<šÞö»¹Ýµx{ZmGó_wõb½1Ôt@$½ú_Z])Pb’­câÀó¬­T3_Tí@ÒŲ.O²o_ý¿€o»0Tþ¾@€üÿ¡`·êl€ О9¦Ù—€À¤¿“~ëþ2ü 6c¨)^Žiî!" è´Ëxÿ¿‡9°nãDQDDÔäj•{Ùñ0q˜ V‘Ïßu‚ €™ c2(ØŠ€Š¦õÕŽiYŒkº™ÌxRíEÅ €œ·|”Ò®Œ$Ó;LX©Ü „PP¢x·PÖWÖDеMiQ€~R™SÂ3 * ÒÇR—;9ˆ9u"Ê„²H`ÛîUn7:@Õ=Ú~³6Œ" °Ýª¦·10ì§åÙ,«æî^gV¢üðíßÞ lÛH`lYwý àË÷°Ë_Mÿ ‹§À¦z`€ (}>¦öå¿jëo O^J6¨V8ô’¹åì¥F~4ýyJtÚŒ®÷ðZ,ì‰ÖHYï=ǧùåÄÌpÃ]ê9`BqÐŒÑ+`~À=ˆRYz.Á‹±Y¯kk¯Ä‡Q–/@í .")ò{òWj €ªJãç.* ¨ ® ¿þ²_3s棾w. cQ#•Y9rb÷<ÀÁj¥“ ;$9YC³¸è¬çb¨{qÀ´{@½Š7\ûl5¶ 耵 4ÐlÇ¡ŽsüÉ×O’—®·ÄüCXú[pƒÀ×ùE( š Æ@Á0´L3ù¥™ëgu4õO†?2Ú Ñ+³å³wwêG}+lGĄ̈õ¯Ýˆl¹ëbêkS;('þS½}@tàï@NÀLBÍáA@0F«À …*>it1§ ¦’1ËF~º¯ž[J²Ü0øÎ¿«…ܧ¶7ÃÙÖÄVx]×EÝO·*€ÀÁ #¢ÍqSRéÎñüÍØÛÙ·T^×E^Í¥†àÒô\\f)ØæóÇÏõj™z°*€ûxéâÂÒPîzŠJÿöHý+£8›¸ÊhôÂütw3uÏ {ŠR‚º‡/f€q£ ˆ&~þÅ-=@‰7:A:˜P<4€`Bà§*–––û»™L‡b-RBÊ„ê÷sÉÅg€¢…²uЬA¼"j’÷@Bñ¹´‰¿Ÿg5Kp9Kº¢#” ¢¶ÉkCµ¼´î(`M¼UÅoi’UMÝœô.ë —ûõ®‡yRUѽZm–Ùûìik+ãrÜ[ ßçG…u`â-’,€œTÓ¬0+aDÕ¬P/F?zÞy <^€—©~íÇ’ÿ06ß± •¿JÈ’q4üÚ5Hà ?lÀAË„Žþ§U÷÷~«AãÓMf ºÿ¶Üàíz:Û:u|]>0!ÔŠC ¢hv1Q§ìûF7 œXyo€Ù ÎB 0 â` ªª"k©,uô­ÁýQC¡¤üßÝ@ñ÷å{‚²wxA24ä\jùìWïm÷§}œy©Ôë9YÿvFܪ`›F#®ï¡¦S2(™^Úx9@/¿ÚM™êB¡rH›~~[3t`± ~,6Å× Àó×büaï¥ Ü@ò÷s  ~ëþ?}Ùвç›ê+x3Ò`çB N•Mß—bh`€>È%r·û}ÐD<ÿL&ÀµâŸ ^Ï{’iQÇÓE#­¼¸cÎ0¹ï€ k"M¦ Z]®BÀøâý©*Z‚ .@`-É%HžŒÛTø½¹­ ¶òyP"‘ï>,—t¹…íNõ“óͽG“•¯Sw¼²ëÌçßåõÔúaÎI‰u/úË‹ÁÞh ¹¼V“PÍâ†ñâP”è™Ü õzÁߪ”ÛKþÊý`Œ$†eÆã®!¶«<é)ÂÈ<2yO÷´7õ5@€=î¿62 ~Üàż¼Ë!v˜¯¡;Á@bàFå2âPé€þ§w*h¸äùW:<¨³ ws‡MÔý4+׊/bŒxô€"Û† kÊ×òâ¯aŽ:…U$䪊œXÍ/¿ ÉSaD*€Àl3èzý——+)Á{*ÚÃM ˜Ü•Ýyö îÌ«)¶÷,Ï­µ\š” wùôûå²×«êÒü}yýër»SÎ~qUÓÔ_çßO9˜x"ÍmÂ0¶8{ÝŽ·•È鞀¦Â>g_~{˜uÀŒ½¥jóDb¿Â àÈltM°ùÞÑT¬  T~ÔßQŠà˜3À6 ¿‡2c  8Bi2v´ñ-gÌ6Áh;šª 3;ç þ‡ÙûùT±½ÓÖ˜j#Y˜yîOƒ¦&ìwêSj&/r€£ÈÄŸÌÞŒ?>Ô)|ÚJ¨ª¢õjdc¹^õê·_ˆâa \ŸºX%ñkVk%{ðÀ—/æ7üYA̺DÓ’êZ>ÕoF™þþhæû\tÇûõÇYíýÝú’¦× dƒ¡>0òä(6àÂZgnöyJÏ9Ú²·É· @‡Ve z† €Ö†®ö/å#ÔÅöŸeœ†€ƒ3ÀF€ŸtôÔ *Om)R`¬Àƒ€ ,Á@!Á—`@,À|†ÞbévÏ—¸L#Ìâ£(âši¼µcA6-$`³Á~W¹Ë÷D&Ï[#Š„j&sQ.{sðm]„1“{áPAã‹K÷bAã¥(ϸ€o NIᡪjþ _ÓÏOvý{î«@FÐ À£š‚í])ð K¡ð„ȺJn<ÛÜ“íw†ÔÁnOV¨t^ÏÜå–Òq|L¸ º~ÓÇ4æI®³²¨ÙwR¿½î“c#áœãVº~ï–Í”Ü yÅ@ÂÝRß³H+Œµà,Êù9¶!ƒéÔ=ãO¨Ô6z‚K¬Ð%D¾w¦ªó ¶+¯AÊ(òÇ2o0pJj»¼ÌÜéV¶X¦Í€ ¦ ‰å¦‡myí½Tèlè¡žW•ÙsûœMÏ“àÊ Ö”ì=exloÓ"¶æ˜š¼èvÆñÀvÌ6µÂƒªªê1þ^¥U1ÓvRè·@fù,€/n?ò-¹¢d²]ýhF€rQr|ñýæ@Q$yXY©f:…5;X­Ó6ÛõŸ{íý4Rõ¸wßëýò4þë^’ªóªÎˆÜ\îù%†€ÝÝW€õ‰è­Ð20 L°`éq—)Êd_ÞWíÇܧAj½æØÇו¤òJ A³×Ò›pý¼&€^ëK6@nÐ64}€<?ZŽO „2J+cb\P­ï ÔâŒw Ô„B¯ñ@dŸguBk(^'¥Ù«Nq,B¥‘ pI]”e¶ûÛXË‹<‡‘#£&/Z€öPD+ Ì6µÂªªê¨Gƒ;‰q1CbT€D[¼Ë¥#çʲyˆó)%ØáòTݹ9ªr}naÙƒ—ûïÓiêÓ›Ó¼?îo¯UC½õ°‹2µ. ,_ìh¥CÀ­òkÓ*ªu -’B¡ƒ:†zØ®(Üó÷Ç€ M€u;Ð&±™÷x?.]ØÚk3½hûû1Vë+©ô¦Þ¨¨DÃô×#£ß“ŒÁ/A* ¢äñ9T£ ÏÁ+¤†ëƒeÄgÉq÷ë9÷Þ²ÃÂóÅn9qÕfÖb´ëG”>u`1tuƒà×>0OggSÀ3HÑ|­™s|;ÿÿÿÿ ÿÿÿÿÿÿÿûÿøüüûýôöìïêàáÚ×èÒ‡…y…eIç„öu{&ÐZeRªÉsjn»Þ£¯ÂzÄ­Øäũ〱)ç`vè —”PUÕ8˜ü5¬™Ü†%0pÊ—‹ºmÚ jðzIf!8*%_3ÑNûæw¾¥cìfô~´ûÓÃWyÌ6_צ´,Èóý£`cœN§m׃ Ì"ëu>û…ÒZF‹l€ZM<Ðó±¿YOÐ.  CwÆ»þS«™ÞTnsì˜ ÐN ¹)o–eÀ*JJ•ò…‡ŒÃ`2èÍzsȳ‘sA*„§H)²˜Í9bn „¤?ÈÂGl'ÄJ“ƒÏ޲Ê ,mý!=õ]X{d²L °Ý®ñ¶ˆ+å Gu“’Ÿ™>^׌êÒ料u7 ŽšÜ-5ï_‘!Iž$ìÙÈŒ.ж±ù'46]IIUUÕì´%j0¡·'š’åî8:’<%2¨KÕ‚=QNìUµóÑÒmeöî/‡¹xpÆ÷ŒôO’ @)ZÑAfë÷IQ&½WÝ“Y´¼€/ÐÜê÷yÃP'L«_N}¹÷9ìxÍÆ°ÖKoÄVŽPÛÙÝh›Û9Ú5Ã@ÎIæŠò%*U ¦»ïë¼S’¢òÿ×´íö›]Ý‘VK|@“çÕwéF¿¼Ž£±‹À½x3Û(Ñc»º·#a³=œ¶æŠ•ýžÙb0gØs·Œü\LW3vò=ôˆãÐ8·ôÜQ†Ï[™m,s©ý}o£ö0½}}s›¹ýºè1Çàç½ÑWµ27¼[»/:D[wrÐWHX€ß_%ö\™Dd•»ÎÙõh0ë}ößd\>ìa´.{èü8Îà¶Þ›²^Ï®¡5`‡ü?™™£X¹i½AQnÞ¶ôüQ÷b J‘ékŒs˄ξ+£•ToÊdãuûæË"{»ÿzœ–" p#%TUUí=;wvc%†Û~LÅT¨<óâÈ·OôP„^;¿_ržàáá‘ÅÃZ7n+½¯^òð0x8æØ{íÔòz4ï®–^4w €3r.w;Õÿy nØ2Jü÷ÿ2íÉ`¢k;•õ`î}æÛýñ¥·û§¯ãÉ3©h4 œ‹†Ž]¹¦>úV-¤-¦¿ÌcllЛ®&ç˜$èºëïBA¬y/UÞÒͰ·E"äë;³%C ?ñSGë‘(¨®£†³P\FðÞç¹åö 6ÎoÑ®°e:ïÂ]ÎÐò>¶”êÖÀÉX„ŒLMÞ–mû 2c¤pW(6ùqvÍa t ÀˆGQ„ø0kPI®²ª*¤íí££~Þ!â>e »óÖ>HB!täïá.Á^W;!À[Ý¡\öôsa¼ÁºÝtõjýPçqÙÿx8?ö¸ï_·ÞÌû½ÌÌqö1¦=׫-llk¥¹)c›ÜFõŸæ+?·tàU¿özìû˜™gñ>‡7-íàtW·gÛÞ¹k hëK<įRJTòƒÁ¥̪rjquç|²­Ýòõ>H»“Áà¤èz SiÅÂ&ö<Œà–h¾ˆ ”,ZÓby¤mˆlîm C&rH¤¿„:øþ¶Œì’sÐÐiJêV2¨×–mëÛÐ7,BJ:"¤ØøýPÑÂ^)IÓ_ôàÍŧ‡²Ìz*WUUÈ:·}ðn³¯H›úCk_kÙ1ÏÕ¢¸Ÿº×ËýÛú|ZZ^ú»öÞÇîäÂxª–Ð)-·>ÿߦ&ahŠ»n=§bÚÜÿð¦@„Œ3ݳçY?1ÇÄ@i„Ì|»fŸyì]¯ãéÁ˜ž)¦»Ž ªÞU3LR îã£yXXà÷‘ßêW#×Ç~œ9Ü“ÁŽ½Í®x¹¤:&'ý¥Ì„L±L:Ê´_iÖeÚúòê²Og¾³¿jלÓN,8!Ù9+]¡ì¦ô †ÖP¶t`;3}Æt¸”jŒkËFì}/4tb©/¦Üø}˜æ°éM^fö7¯…ÑRŽ…i¨„ªªâHð‡”sðÍ{áKßO½Öûñûu>¯/‡Ëhïã=]—Î\öÇzÏqŸ9ec<öWòtõå¦Pý¹ãÐcŒ&²†| z3²}ÆÞ&•Ùÿ˜½ëþÞ6 ´WŸ C&·†¬qÁBRÞqì9Ž?O¼Ž–ÌkV;¯rBÏ,Ь‡iÇýÔz± ëÅÞæÎÓ_oñ<¦X ÀPʕȦ ¦ÃÎx{w2£`,ln!V 4Å2o•¿t£ePöŒBC%TU]v…¨§ßç¹?¤Wûø¯­N:K×°Æ—ÙYùoÖß½î×·~ö×ËXׇ[Í€m.Ûš Go2óó>´Ò0Z‘|ç„óÏËv&\‘$‹5øU¦Ñ @ëu{~ö”µTAºœl’!—dêL['TC¾YÔMM&³âÏ|ävJ.ƒ–@ÂÖdÓþHjõ.­rÂO!ñˆe·Òï‹„cýPu6Æ9»† ,$,ƒÈþeço-äÛɽ@é\§µ2oh±e«9ÇÁ5çrˆœ‡Âíáh¾µ¬`Í)ˆK4Œ)ÕŒeË"ÎúLè©5“BMñšmaN8ôþ|ÿi>ÚŒEYURÅ*Ÿ§M{¥¨ùê»+ÜáÎ&˜pÌÞûë¸ìÛÇïo—Ñï­³è{û²“‘Q쓹­Ö(1C½Óó×·†zn€ Ujj¦ý¹b5Â8K˜|å€Bï@@°ÿ 0@Yñæø55>{(Ð9gXr—˜æÀ } ¨`D鷞‡©…ÇUI¢"_K"ÓÙg>»K%D‚Ã:Ú&šawr%yHS?SJA•s®é+zh \:9Ë6.ÌhÈœÅäÖ¡:_ÁÏbΒɶ¬ðÜï ¥ÜIi 2@mx¶œÌ‰ßí·ËKÒ )Ô¯-{7ÿò7scº‘©ªª*„z×CkgZI©~OKâ]>ŽÏ„㯦¯_Oÿöåõµ{¨Nÿ|ß{³h¦½aÛ³3pΦoíüó5pâ©ÆÄ÷7ÜrcË>ýõB‰(ÀÈï29Š~¨é'I±±¦bh1dža( PEÕÝ\Õ94À®æ™ª×Û]\Uj·[–­›WÕ-ùÐúè^q֮ŭهôèáïT¦7½*_œãìL¬ÉvÞV³<\ºØ^·Ù$nšæ\ÉØcWI%cì 6¶œáN=í7ó%ÚÉ#ÅZñly²¿Åo×UÖRS¨Ÿ>TàŽÿŒfdR6’j¨U‚š£õ‰¦±j%ÑbÈy´ë¬Ï_êÀàÆè½\ÕŸžwåuÝߣý²Ì˜ÍYÿxýÜß{8uu ã,ýO•›I%7ÊaÒ-|TéYþ¬à$ì/ô€çã¯3o:Îþ+Èâûiž³ðÌ<îW«aš^Qg}áñÇОÍ͸ú8&Ò×4óðDF²àP‰FªÌôà‚wÈéR;Ô®׉÷a =¦")R©¿KØ;í¾×Á‘¡q~7šÒ²)±¹è†Ù¸íª ¦4ãmbý .8>¶ÜÅNxÝuL¸Rí°l¹‹¿ëuÒ‚™Ôˆ$kÅë$ôïm×W?íf÷ˆ’NªªªŠ€ã±WÝŒ°ëÍÞÊ‚›Ò°ñý¿æÕOïY IKÙýò€§‡ë^߯Jö4Œ‹3`^Mꌽc£U8ë GT“©%Ýå|tò(ŸÁa;µä§1߇ܛ{¼h*;AZTûOöÀ0\ftœÉÝ+yV€Bø˜BØ~sÈ«_¨cÙcpñ/¬ŽžÚ5{Ù)Øfó"ÃÀÃÌ¥âKÕw µ­÷ø{ð##•%£ý…EýœONXq{.ìÖ­¶Q(“2+÷vìM6D2(¶\é–~ózV˜å@ÔŠaËEœôÓ_ÑN= ׊×/pìFô1¸þôËGcD%¢©ªòPU!pÜk=Ÿ+ÑF.WßQ}¿š®¿³JúŒù°o—¦Û:œYëå9éïý¸¾šö<Ûç¶÷ÌË`ïsêû™_n³@›JÈž¨`ž8fžÉvÓaÔóŸÌͨdy( ¤Wc©|•ÖViŠê¹0@´6Ž Ë{Ȧåa•šPFš3;:·Um zŸa^Èýà´œzê÷v¼¹sIØ1Gö|Ê€ F°#L–|8#“ç‰ß*“{Ì`Z±¿9êl/ n™»³A©!ÓÀ~¶¼‰ûÕÇÓK*3¶wÜ€µÃ³åá.ìo<ë%ØaGÔŠ/$X€žÉÈ(UŪ*Kö_s2n·Ó27Ðún©F+û÷DöúBÞ>¬ç1?=¶ß—~æÂåùáruT¿2t w‚î`@EES=À¬ ¦˜¦œd%ïJºfL”7ÑpþÚ*Ã0@Ñ0Ü ”SP¨ ˆ–ŠÊl½nUÉ¡½Ý¾4•YÔîÝÜPÓ™Q30díBå°b$yªþæ¿©¡ëÕd/-¶Ò„y*ò»XŒ4Áä× "”w‹ED3r9U!òû£h­ãš‹ó\°fß?*¬ÈœÉ3lBÀ~¶¼é•ÿ©×Ó%8¡¦6`mx¶¼¤“ýíƒfè‘Ríp¢ zoÆ›_þÏçF›1ššªªª" Þ×38<·ëˇ•·oT½Vøx×VKýÇûøû¡ý:T²ÚÚ½µ/¼~î/æp̱¸öÅx³“ëâEi¦‘ÕY ™ç2Y¼¢›Â4S¥-ïÙ}iÊD¥Bè$}‘R»ºóïr:|ý=¿‡§Âä!y¯J¨ Y{•@|wõúº®/ç‹k²«üèEu]ó¾_óih$â~:–q!™;Qƒì¡!Öbôhaf÷[Ž}8‡doßu} h! ¶¼ÅEøÕc¬—èvxkű奜à¬Û±`jC’µá €‘t\¨™†ªª*À}ë¸X'(tÊf`±ó¦ø)ÕW×–mذ8Œy®ÌpÂÛn¹y0ú½c)ü·X}üÞž÷zWrê¾áä@xê!ïn¦I`´Müʹ†KO] kÃLéU߀±½ým©7ÕE½¥Ýµ—Ìéͤ`¯ÐÝ»‡aDwä¦\\4§yTÍD·Ðéž‘ p[Šò½UÌa”¾Àü*šór’˜qyâ×µ¹¾Ï&d®ÃøÁ¤¸{±u§{Ö’lĨshA  1ÞÑìØs>¶|ŠEúã±}ÈîêÖX±V [ÞË.Üõ¶ûUv IÖŠAهǯ~ó™ÑiŠ  éHUUU„~ë=Ãúås7o/­J@†ÛÿzSãqצïmœ³Ÿf¸xÜûûæmŽ}›gÌa³©W¯gÀ!'“kþÔìêm4\UÜ<ßiAS‰Äªµ‰p‹3¸£`²C.ŽòjM3KñÀˆæÔÞUŸÓ=­ÊÚMg»m¼ï1_yè¹í¤§ëuº‘ã´tÝ“½hž+„XK^Ujô9Hq]vrÓv5t¼ÙÑêD?û±ñ|—#¦`T!|é.ï3ÛÛl2´(þµ|‹YøˆÛYÑq5ÇZ+†-_uá¿ývëO-ÉpÕŒAÒ çÐ÷çwîQf¦ªª*­§£®ûæß݇1zVž$|àku)”²èsÞ??wÿ;æûÚ¢ÿx»×Æ´õ¯«ƒQ£²¾P œ9•IO7³à÷졎Ïúý0k©ál¸”žTŠÉ á@3d3ê)ê†WІ'ŸSLeQ@¢™§7%*>©Nª³î86šÔþ°xîþè:IÒÜyÐhoÝï÷ûØ×I«w×ëa'ºÒ&³Ê+ v+Ü×,ýÒ­Üí¦*&úÑý8“õh²ÁcvÀ@þµ|›YøÖíy=pW_=6µâØòÕWþGowÿ©øj7¬) ¸ôçßÙ±4’2*‘ªª*@~{1#w ýjÒnjšBqP ¥ì'·ŸÖNUEUÑ7rÔ€ÎLÜfÜ«ОOUœLþ˜žœ®ÄÌÒÖÞ„~Â]5:v3°?ýÙo§óÒ¢j¯çü9~/¯wî[?ݵ 8˜´}OfŽéL­ ¿k’Õ}ì¿ÅùßÂ#õ _÷k9–DöÄ1ÇÞãò¹©2Ü’4O8ž¶YZG›oÐí•=F,C'¸lhàlþµ|ô…÷­ÛY‚gù!)ÕŒ_ËgYø^½Ýõ’|SS 6-9.÷Íg™ƒŽE *ªª ¿ c¨óŸi‹Ø€&1{šÜ;öUû·|÷/žýºE/PÀÀãKÁÀän>Ÿs¦Ã¦r^ýe¨ˆYþ+pè³!)þCWFH;k‹$e2@†D2$s35Õ­©7ß¾ús›÷OÙïÌÚ#§Ûëø:߆ý†°N÷G÷¯}ÁOa$Û6z$ƒ÷þ…òPD\F¶$K¶Z,£äz0‡‘Ö\cýµÉÉ­»5ñ<ÐÖµ[n˜ë¤é…©gžPàÛ˜€þµüôÿÏí\¸«Û¥Z±kùl;ïÎîÔÞBSSd‚=G .Oþy4±^(£ˆV%TUd<±Î4•M–ÖøyNPü&óªù~}ûDì·iQ\Ö罫3¦úX¼OÇ„¬ WeNõ•ç%É‚‚Á¾9¿ÜÍ·löwƒÁ¬q¨¼¿pÉ@a‚Ðu“™|ÍèV¯¨Q÷9¹¡Õï©«_ÿB4¦ª~RÓ|ÌSÔ¥ç!yü4æsÓ¿$x/Œô¯ß’úXû]HŠX½ÂëÊm*NÒ-ÙVCš¼8;ËC¶çªéðæXïÜÈà04þµüŠ#ÿ·³~e§úöBQ®¿–ï}á ±ã¡zK¤PSd‚9c,úå?µžõNSF©ªª œTj:¾á®€®pí»ÿÈdWs»}3¿žUí j_ŸL6ŠIúÚö¿‡ú34Îï[@UÞ?*‡ÂìWÅt@o½Cî@ã\SPTûAX|÷kÕ0Ýì]_E7ÕÓÙ”kVŠ«½»º OôørøÃèÝn¼¾}BŽIÏÞ¹oþM¦ß¼DLÙäÜp4ƒ'’Y+ê®ÈÑÏ,Ѱ–£¥2²w&q!"1` Þµ|Õ‰çèíôð<ž jÆ®å{™y&;^²/’5EЏù t*e#SUU@Q¿í•¿Ú[Ùh(Ûf4Š‹‰’ÔÝ®Û|.ÿþu›oö=n‹xµ·ËÞÍø8f•CV÷š§ ëÞXÊ[Õv¼×iö>‚œÝ_ª¦Ã=%ÓJŠ(s#÷sÞÛÞ{ã§šµ­ÉÏM1LEßLÎnÈ=ù( œ¼i(R_×÷®¤º[~Hµ¦~:ƪ?»@6]ÝÎJ«nl‚®[ŒËÁX9ï¢ÍÛlz™§(C÷¶`ZÓm™-l‹ þµ|Ž'Ï®»³|à-45ůåk?xÕw,x KM‘"n×7õÈL:JUUE ÛËéjç§LÝÚgu¸¹·ÔþÇ}޵‘ÿ¦ûÃÃkÝ# ™$µaã=cò«qOSÉdT\•¹¡]'¡vA%Ío`B-•œe€dëL8¦ú=–ó™aª²¨ßì·Oýêø:M”ûÈœGÇ›•MÒ" ÜŸÊcf6“LÓc,,Œh«¾"¥Ùj{lpQsßsØ|`:¬„XBGìc‹¥ËÎ @cä€"ÐÏAÁ¶|Ï;ßÔÝ^á-„šb×ò~œÜQ;(žPSdð°ë›¿m£Ó4TŽUU!•µ| •í €×½©ùeÒ¿¬=þøó|ì¼Õ<÷üøú`ǧý±î¿ÞÎqÃÃ>;Vµk°Ù$më÷ä×åf \ûxý»~¹ìMíÖl×§fkžïÿ eeÅ:»çË”»~Ùû49Í3ÿ¿sXÈ~`Zݦì|͸v]º ‰yPùpjÖqK*Fý¨ÓêH,«9m4ØÎmÝ Íâ0JŸ£6üF_ þµü;ï1·ýZu¾+ÑÕÔ¿–¯íÁCì„Eô4¢¦Èà¡¡Ç/ŒžÙ3›ªªB „ZSä53i4Яñ0§¹®Ûãøê>î™On·ï³ï~pŒãÌ«}Ž;SY÷D)}àôŸÉ=$3°/U_T1fLf¶ûU6Õpå]¢zŠëÔTŽyìŸoã6OÍÛù\Ì _Ÿ U:I‰ºàTTöá­åÿ9'y4ìµØS¹+áiº”3 §½E)?¥‡;ØãÕ)ûX¿Øl›±êܕ޹|'¯º–Ze³­Mh†fÈÄL`‹“.dÀ8þµü˜fÞ#w{…÷&ˆšbØòïÙyñ$o„jŠ”Ù£BG¬BªŠ, ´’Ëùz©ýêÿû 00ý>ÝNšy¦gN–æím»Û<çûöögÞ~t ½‹©ë¾bSy¶³›‹ñr*w P̹þþò8^gÿ˜{s4oó}Y7@¥8*t_·@µ½¡™ýÓï  Þ¿¬œ“•f*ÚëôKF 0õ,$99ÛSkR™ëÈÌDIv -ÀŒ2€a;c°7À9Zضüµyñð4KÔQ6hê v\:ëËu»üÅßýí£¬½z{=gƒ}ö]–»,€9pÍ4ó¼ÏÌ3@ϲ\sÍ5ö…±¯Å±}Î~{}óóÿÿûõzœ×·Í5 ^\.wo¹ÛÙçõ×ëÙÎÏ_¯oÏ= Ð,»À2 Ì340Ï þµü¸.ÜÔbz[äš"ÊžÔNmÐn§Áæ—ÿÿÑvñÉ/Ö›Í9ûç+{ÛÞÞ {¦x_x‡™nèŸ‡÷}_žîn0ö.Ëe™=ÀÁ~ýùº½ï;3Ìð¿okàm¹oûõu{ûõv`ïý}Û=w.€fffè~޵ܮîÓvs¡ykºRS3ð™,Ô‘I¥dÈÿ{™ÜûÛÍMð4ÐÍ03O3L7 oÓÌ4 Ãlà—Ã>,cÖ…{x³_˜ƒÍa;^÷ÿ¿ŽÃá yhhxž·^ffzà™𧇆»0\Ì2w]þµ¼[îU»Ñ7¡>‹PM,lÖúg²Ð-5©A  ów®sxhà™~˜š¦˜áe{ïŸûìsÎ+p±k­¦™g g€ÿ¿zåS C aÁ0†{߀™gzàyº»á}{†¡¡cëm.€¹/¶üÞμ5wÀÛšš"˜ƒ¦£ˆ Öþâÿÿí/ùõú¶pöÙÎ믟oÛyýõú¶×¯ÀÙo¯¿~þúù¶}6€u°¯gz`zúp€u8Þžžžèé·§¡§§§áp°¼ ôôôôôÛÓÌë°¼^/àp¶üï,¼ÔÔ/Ô¶Üül¼øøBM ¨Ô¤©TX À^ìÅ^û¾‡÷ëpÍáš…Y˜õÚ^ûÃkxÑ/¼ð / =ôÐöµ¬Yxà̺æp½Ø‹½Ø‹½Ø»0 ³0 ³0 ¶üï(¼ÔÔ/Ô*•J^¯×ëõz½^àp8‡Ãáp8÷õz½^¯×ëõzëp8‡Ãá`OggSÀïHÑ|­M?Û¶/OggSÀ«HÑ|­iãs/OggSÀgHÑ|­Rª¾ü\/-A;ÿöÿ ÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿ ÿÿÿÿÿÿÿüÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿ äJ IìÈŽü«ºJà™‹¼tª*DèH¶”¹ùRVÊÜ)aÊ”)iSú~ÔºQÜÌd¹À¹2ÊÐ/œÍ±Úå>6yÉØuu »4¬»JV»ï›ëCé!—9äÎÛ†-z3ï›èx7E`•ÈêÐ]CÃ0Žã:[«¯®Ž$ϯü~uŒ<ì÷SKzð§~h$É?“'zçô:y Dá-ö†Eá¥zón–Õ r£+C¬¦Ù{i0‚$?ô"Ìlïòöº˜WË1¯ÿö£0wÚÿÏ„aã Åú(ó³Œo€ÅºþÐO‚[J¡fœ /á"ÝùßÌòþêã(%kÆF—Çû¯ÇCJÆ:NÙ¢5Þ ˜€¨- šfZšÂ ¸ŠÏŽid4&i¦AddÎ$@½ûÏjE͈5úÄ+ ¢Bq—Ò…‘|h)àyy¼WÿQ‘îHD@2ÎõøkY§ö¦†ÁPWÆZ›yiÍéôsÄŽqÕ[g,TN 4W]/N] uØe`€ià5ú£n€ T-€Ò÷ä"™4€°µÿòWÿÞ«ûwö%Y†g@~àvHøó¯HÀ(™]ã=VZ,€a€sžI>3;ÿ½}»ªß¾K=¨)fŽp€îñó¿7¾÷ïµûRFuVôu  ¾²n&€"­XM4… ªp+B@”%  Dέå¤xyµx±„ã>rÿhg§ .é)Zî)F+SpÌç}œº{a©MG»Í3°k½²X ]iCƒ Þb‰T¥ÞDLj[ß8uÒå@”½Vÿ*0‡ÀÀ«¬ÚZÕãhÖƒjܼ  rà|%°á¿_ (l@þ{[ ¨fÈ _$€p@k`þøîþB±w†¶·ÂoiÌw\+<~Ù°Ýw8yæß”÷ÿP7¶‹´¾ƒ‰bgˆ(‹,‹s…²)" ¾ÀlÎ[u‚t0ÓoO‚“Ä! FßvÜo[sʃ+畃¾¡ `<þï€@Ú`ü„¬|ÛõòÅ ( ºV©`eXW QPI.[寓`ŒQ*¥‚hut[³æ£jí'I©jœ®' ÄYß­Ðf– ²š‚í0Âå #ïZU`P™BqÃG+.÷b€ ríATÀÀzûU>Ž[û¶ ¸óÒÒ_ g½48h) bv†ŒE^–öUâÐȯ–·‡zAý¦X&†Fÿp©ä³ã=µBæûê-®ˆÝè#èºÿ_€ÙnèPÔ a¶`P #£ªЫ2 Þ9Gœ~²àJî鯨§(žpùþÒíg2èã@L@™ùy[?ù”‡.KY­C-Ç#tŠ(¹mùÃoiøôŸ÷Z`ÄD®fšðZ MÑ €B[W¯²ÕUºQ*èè†Û /¾ü¿Ö¦là¶øg¡d];‹À\¨ ^ƒzÑXÀ$þz, ¯ù˜y}/ä/¸Àÿ¸[øõ\€@À_¨4AAAÁ€Ç0 ¹›ˆôcÑÞÿC½`dºãZñð‹†º9ªy4üõ‚˅̄ꮛ2è{þO6Иó€:Aº˜P<ÁlH…rR!çç€ ¥çt“ï2"àò÷0QUPš~/Ö±—'= s¡ öH&*3fìëÛºûŠwõo(óy^J}fÕ½ó¸Pæb´ ¯‚‰åÛM¿ÉÞ@ñœ(ÛÿØ@†Í‹àn>9¦Ù‹È°!é³év›™‰¨«bäæ®"á‰øè¼]OîuU\Ðo\ÀÂzÿ:qM¬¡9'¨¤3€™€ ÍáЀ`BG!Pˆ ˆfŒ²ò¢¥dT±\é=“QVš?“†B<˜áýÙ‰R€LˆZnú5h **ýe@e%¾‹"<Ü€ªáx´€“ÔF®®v¨²t%yéké3+Ý.ïüéSÕy«YWµY4mÿzE¢µM¡Sê_ݯÜ\²0×(@€zú¼0p}ïí °’=c`FÒê°þùK 3 ßý, 8|ãßú_Ï€k ÁÊ à¶ Yf¹»ˆ(¤î?%· æ+4V’Sö"€þöÓüjøÒ™Ì~Aåü `ÌɨÂLø`Ä "Aôš²FqzBº‘W3–Q­ÒWÀËî¤xP÷f‡d ˆ/þ“æÑµ*ðÕ‹DPXÓþ(OYÔÞcÙÔuv¦•Ä,qDÅUµg+PZ\YºRù‘ ¤;`2YŽo_Ó 4P8ñ½G!ºz4Ší93_˜ØæÅùÑ€€æðŸo¼# F€$=øç¿Ö Ì %WøH±ìŸn2˜†nËc@É>áùœLWûÿÊØ ¢nc£æÆß;Móhýñèš«K̤õ®7A~q“`­á .À_@N“qÐLAmÄEÈY<]ã¨øB€H’Ÿm³†PÈ¥¹?)f¢åž•LAeP†“€T²¯úÕ2×—µfá Q9øEöþ±H³¨ÏεԆ^™©"¡éšWó³b+ºtJÙõެ(sPDúwoG€ÆnøRê9 `(Š€` Ã†€zŠøà?wð!UdBÊRÒÒXQÔµ³ x(´ËÛÕf–£¥ÿ?¢’AS£Žz.ª€ÊÃÀˆNê¨2¼) 0üx¢ô¶ç¥”Ù¤²HÊÄzßjÜõè–S;øVT™víÀUQúѯ¾ÝæË†Çd”@ÇÉõAeè`îÀOAÁÄà\=0õ­Ö4±¡©Z·€ ðÓ­µ]Ò@7ÿý,fR/xj ö†òÃS62zÀ€2û† ^†¹«H´£V?šŸ*ÔÕ8¹Õ/7ÑâgãÓCmÅ”ë-®èsÜ@‘éAüw%0›Ó  Ns&&Í¡ã ÞÀG(¤‚ˆ 2šKû{Û• d)å:Z#EE £?»#ð>OݸhŸ6Í>@4YMQPýP “Ū4»ÌM–hT0Ç"?ÊÀžO‹Rtíqæh稪tVþo Î$É-¼ª™æíö}NJy‘˜ETß1¯ûå!=…5ÂV‘›s±Z_=§× °ÔH ®w!›µ¾ÿ CòX@ §€·A€•ÐŒp²l€^IÖù«öó óUoO›’²¨)N’Eö! (Šß ¿ ûŸ­'0nœ… aø³äÉ-`O;€:AÀlnt»À&— !E …ÆßæTºóè{y2Šé¡@ÔßôTQMì:¢¢ýêjŒžM~—`Å㸿üëæ¬¼éë#]Ežòò~³qy¿ºW|z¿Ô¸ÏÉ>/\xÕÞJƨš@=oþy|Ss²É` ¼ÌØY Ù‰ö†{zj.ô,, Î¹þ0ÇÀ…Th€Ñá_þfcžÛ€}ôg<ýþ2›>i\hœ>I¦ù—€@Â'¹˜ö¢§Cª)f’uö!  ˆ_iWÝŠþ¹<‰Ì5ʼnª55ZÅÉýVÄn$Pä>4ļ²s~@ `&áB €0&ƒ‚£ A«©›T_ÚF_AŠæÞ.¡Œ÷G=Œª¾FªŒúy4N€ä[o!@ðQýU³º@Óc v¾ PA¾A_ÅÎUU@TE­"„ã¾ôTõ6¸é š ˆ²a=]keÕ(` u»÷¾ÒA½ÔÉd@ÏÞ ©D¯ÀÐøøÀb¾ü[†ñå_¨úõ )®üSGê«*)|@^v™U¡DÓ¯¼PvɇÍDÖ]lôÒüä—B5Í_õê‡ÌÐúWŒ”»°†€Tð—@ `¦†D‚ñ„ÇPEda Œ6]³‚讚<Àû\݇J”‚1j׬nºƒ/÷¨• ’>ó`ª ÿÓÚSQCdzsïúÆvŸš¸ôŒê:5îÏÂ4p¥m]>ãèK¯¯})s÷__¿Ýg¼ÝÇë®l!®».¢%¤T"ùÔaÕ·ƒz_1“ömhÞ,0 €Å Æ÷ÕÈ Ô?ðOør£Í•¿a$€ mg6€* À† þøÕ™Ãt2üÒ?ÿ…Íú ¤6,ìÂÁ⛦i~5žLê’'3]½‡/º 0.H`¬ˆPÂÛ,ž m3-ƒ`  )F=,/÷v3â¶Á«z 2³]–uÄtðµŠÀ^'/ï£ôÚôpç“,@ynÎÀ¨DæN$Ž'èI¬Ï?ŸþQ{rY{Ú9³ë —¦wùÚÝ—XÔœSÙ“š‹_íóe¾R޽C᫜|Züoµ{î*sŽ&7” ýìøÒ¾;q e|®¢H€bà€þö»0À߯àù;€hó?&Ó€°ÓÌaƒ |à>V†ß|ÛNFýÕzSÛ%C­ ¦ùÙŸÝêøh=¶Ñ9d>´®Å=F‘mCÐÏ?n€ÆœÀ`‚ô=~Îct>&A(S43€O¼éÜ–µx®íU½€.׆G]™NsdJ7nUà7&"ê™{ €p)ã«ã×Ԙ׽½Ñè¤iIó¦¤yº¿$Y2ç‰SÖ£·÷Ï»–ðdÐ6îè°QK ½q4À]^ÌiI–öVÊHøÕòã+Wd»‡P·bæØY ~¶_ÒþêÕà Ϛ⠀qã& ö×Àü$` sP'È·f“Pu` š+C¡Š¹›ÿ4“ ºQýÁ3Ë‹ì¬ú¢Yñ^Ço“)ðýJš® ¢ãůTTX_{@Ñ2ŶIPxx»Å^Ý$™zÉXàåHuQï]¡íþä@ó¶_ëuߥéÛ‡u¿:—öá±?*‹]€§àW^ R=Y°€4мî:4úèwÏs# àò¬¿Û¡> ÊÈßþÑÀÀÈk€CÉøÆ‚оY6¹‡€ "~É«~[!Nul(SM1“ìò7 ¿{¼ÞŠðêA&Ê5ʼnE¥Ö•c[¿qPdƒø6` ˜³ Ô f ÞP0†qP1¨B`p²“|h÷!‡>ZA0%ý»âšóuøöAUUyæóÔ--¯4¾—£äŠ*rœ¬£*"è»  Âÿ•,¿Ýô(" ‡óâñº% J&g=Ϻ´—ãœY‹âßV¿qY –¾ìEËn“”‚å;€<®€<Žë¤ €%@ÚþcÀŸÝ€/?@ý? ÐcpöµT@0°@^¦ù‹¹æ¯ÂÏ4f"ê.6záÐâ›(>¾j»È|hÝà Œ- œèü¬1à7¼ PW™ØÔ°ÎáS=ª@ÒŸú<@ɨ{Ò𠊆ŗfRDýFó¤c’ñ!¿ï¼L½€¹‘É{Í*€"{}Yr@ѤÁš<4õýûUïhç&ó…2:ÚJÔ‰NkæéySw¼ÍªîœÛâšýö<çÙ 3-»’ÂmjU)=•" सʓC¼]íZ]¥YÎôF£ôœ·€X¸0öŸ,ÐàY5€úÀ°xºW| 6 `ÛíBÚXFÑ 8P¼ù•áE$0êý?Ô,Üp¯»,Wüawüjüzض‘™¸¾Çãf(ƒ¼ý[0»‚ ŒþW¨ä,€™€A1Ķ\…‚ÌN¶U¢„åq3LÆàQ]=©Ç4OýBð€ê¨¨* ˆ:×çÄœ«ÊKE¾ùdGé}Ói8‘#}’ ÿ¦ûÊaÿö}Éf§söxáóÝú’Åiþëï±êŒC6ÁéÍq4-\³¼MPÙA —_×"sîÈ (‘KQJKÙµ6€.† JÌÿàaõ5ü, ÿ¬øͯ‚4Ï.AÈV;ÓPÈ ÞèÅ[¤Îô¿äó?ÔóÆô µá¡—Ü`òηi®¦gwÙžêÎ¥µ²Ç(↉寇:AN˜Ð.@0¡ø˜¡ ³a›0—àpsO¢ïÏj£ØÁ†åþø¸YÄ»[¢xPÕp'* Ö&@AV•ÅR\òÎÕPh†Œ/cQÝš»ÚöÅÅϪ¼’2 „Cjù(´Æ5U¾• i14è€5hsÞYgd¹Ú4€ÂzÔŠ'UXq3©¦FÛ¿kÙ®Þ3P–¹–ó{Ì‚¤È-!ÒÖªÒ8Û|¶~i 2za 0~)šPltàèblÐ@m™ 9ƹ«”§kÇ-­¹ùu5>ŽiþÎwû/¹Z6]~Ü@kŠíY^XˆcÍÈÝм§A|1€5¦†‰g%z‚ €™„+ˆ»ð‚ Í‚`Èêú¼†&ÃB=Rà|r§^¡Àp~¡@ ^û4_/W„±fz2€Ê^õùšŠ;9@á7^«*Š¢*j4ßüR I y§T% RÀÙ;³zãl¯TµAм„TZAyè)E[p£VÇ÷ûWgÑ(n#£›PöeýÑ rXá»Ô›¡VÛß-ŠÀ@Å2 ðÒïÀRêc€ÀÃ@ Ø@^YvÙ»òÙOóKyþOÿ ™i¨)n’Sp@~>3ÿj¹ý¡if~†šaÀxð0À L@_ßA^ŸIXc@<¨S˜ÐÅ[˜`SC!@ª&rwd @é%ë¶ïE …Úšy´ÁGªEŒÊ^äüês[OðDFÍcE€ô_Ÿ—LõkÀÒÕQ¨,­´§ª&§<¿JÅüÇ·—‡Úå×ùýs;¬ÕD8Ü׺›õt €&‚PöÊËëÌ€âP°Ww{ÀÀ°eä£c()õ×ÿ+påüõ*Tý¿ 䃃¿ ð%@²0€ ÆC¿™ñW×oF8P¨#Áxèâ—œ´ø©ûû¶)×}8QfD™!Ë×2Æ!ã;Ö˜„œ¨SØÔÉ ¶QÀ¸ÆŠ##*ù%þi^Æ€ÁµÓE @BÁ÷Žÿ 7N_™c(àQMíÓQ®F®¸û†=#5 Eæ\?k.Öcœöyõ­Ëºöœ}*Û¨tö—&(EÔs¼ˆ„õV€°û®V¾ôÐÞRE”=™çÔê”EY¨¤Õº('ó/©¥ Œ°ùÚë# ²’î¼Î“¶1´[Øòwø'¨æKÊw~ŠÄ’1 “8GÔ ©pú ¦Áõ[v^Ûý(Իnj¡V<ô¢üxõ2Å•;zÁ%攨ÞÃ÷_€qJЯÞ˜Í)Ö@]¥pt`c´Q¨¾˜>ÿŸ{‚¶àK h‚¢%ÝÍárðÎè5ºä|iEDTU‘íMuãuêϺ,öþþGÓ\U³²Þ¶ñ:O{,ν™¯T™Ž‚jT¬@¡¥îUªg°0PšÆ¹,ëG{n³"23 vmç±·àÌÈUï¥tš#ÐüáËÑpÍ€ºý `´³ú  (åI°ÞFúÎ/êÀ Í×À úÍ’]õºø’Àl6àÈŽ@6›&~ø%ó×÷ÓÈôŸÿ̬ ½p°^ßt-´>SxRv½‡/Ú€ÑRý;ï&ˆæü5À`‚tÀ 4‡L`#!E``À—a54-$­)pJœd€Ðº‹Åc» @µÑЍ  –ÍS‘ÊåÚY  JXéñÛ¡?ŸÓ.ÑXß\]-ß45oùíÉý8Ê™ —RE=ÞW÷d”¤ÂÝŸÖsϬ…šQòPÞÓQ6JÊò7ãù­ØŠn‡SJ²¦˜I.™«àòwÇßÅù?öãÌc¸jŠ+ÊC€ °ÿ³¦‚>L%XCB0^6 O0“p£ÇÀ“.©@$ …´}œóTzºôw¼ä*›"BdPˆöT@û  €´¦ ‰‡ €˜+[áN]Ñæ[XŠ-/ ››)Ddè]H¦"¿§¯Ð÷}yR­5q@?VÅA>vkíØjå$Yå¯/òšfšµCÄ(Æf#½°4Ýë:J‹Åà…ŸU€Aýµ. €_ O?ühop<E€L@~9Æo²þ†ú2ÂVÌŒ©¦X)†ƒOÁÏë7½šž Ø@kÆë2SÈê¬(œ+bÙŒø>` ñ45Dä0SÃ@·Ï0†qejA=.L¿¢!àÁTÆ®Ñ;3ëG7o—.Z× $£Õ¤î”O«Ïözi PÕd}iM@UEÒW蓃ì½ì‰ ¡I#¥4rÚžûÞ#)QŒZU§NA£˜õ°¾jÔe’t/`Êòßo>zõS‹#À0q®~@,;oÍ: Íx4@ýÇ¥Aàù/ˆ¿¯@å'(@¦¦wØ 6Áø,Ž€ Mo^¦ù‹Ä·Ð°4ýe„­‘í@¢ÎÆF/1´Ü¿i¶¥íí¡¶Fæ{ë=œ"‹2ޝ­1nô2è×n0»‚ó?êi˜PtÆAÜrEh5Ϻl4}2ÈæƒàÔƒB²¹ø¢AQïgí–Ê€09VQæçTnxŠÅþ-LW’áÛy]îj3p.‹‡ž–óaÏ­b ú®ë¥ú¤B ‰´Ç-ÝÕ–”´iŒ8ÿ[©Ú“–­€ àa°À‚ôØþv€‘ïb+óÍ€òW@/†ß¤cÿµªàˆ—l¡• x PÄþøÅÙëÿïdæž÷¿° ÈpÕ†‹^šoÿw¬5êùj½+Æ¡ ò=à4øRêé˜PT€`B[ A+ÉÑ €z@Áƒà•ÛeJ¬t+OŸ^÷« Xž7‘ù9`Ùù²ŸS{Ó&ê­õ(°d•ð)o_È;K~½ÇjéÆyvx¾ím즷ÇÃë|[3É8ðb®â´„ Yø“C§"Jn㾜ި>Mã£#uµL ø¬È°Ÿ@ƒA£†j¼ºê€l9®š €ù >ìW$hÀ¿| ¾€40-ü€ÒeƒE†b†þƒWs#âGã“¡ž‚ÌTÖŠ‘`0xŠÈŽP>[N†:l8êlœ˜ ¥(ÊT™jË~(²m˜@cN+€:A:˜Ðã :ª²nš±÷ÔÄ0ë *ùb÷¹ReT û]ŸºÇO¾V}/Í€aîæësUÐÜUÄÜ]Ö±YÁ®GoL/v‡€å>›½û{//o®ÙW´UÒ V×i¦v’æ «õo][ª×mŒ ‘ÕèŸFåýkÏ…’ ÀÐJŸ+æú K˜­©S 0µí× Kö ëäÊ`(€ümb WÿWÖ7߀ÔAs?«õH¾t 4bÛÞHƒw‰¿C¬Ý_i›i¬)fŽ]æ. óáCºÿ‡õqÃQ3®7NE”w°Æ60çC@4!Ì”AœÃçc#¦VAŠD>DÏ÷  k®b½—ë;J.ptüpêÉ“µgR¡êª¿áÕ¨ÁÀEt¨¨V ŠÈEL€Í²“¶ÕµÀ®Ç‚ž¤0U€yKÇ÷Fï_CŸ?ò´Ï ‹Ç}?µþzëÞW/í°UÔûtßǶU au+Èv*@ ÀT¾7$žƒZîÀn€‡ºU/€ý?­*e€Àw>ÿ¶ À|]Y@Õ_Ið0:Z U ã)Pd€žI¹—€ (~%?š¾ µ 2C¬)VŽÅÀ]ð…úº¦7#¼4È„P3^Ý™eÊ:23ÎÊì7E¦‚ø`a¨« €™€Nèö€€1Œ‚Š!.‚ Ù&¢YÇ šÐ|=As4mp$ºt«ÇUQ) DüÇÔ¾a¸"9sÌßf'dH6^›ì>|Å€šƒ£-‹¢¨²úY„¿kôÍ?Š €^2²žç^³ýèj0“Ó‘ˆV z| åîž›€1¨Ó¾    ¤N;Ãc`jÐ ØæÎk-½·€ï¡AÊO0€þðÇI´ ¡PÁíš! ^)Æ™«¤oÖ†;ÃoÃLwQgÅC/7|÷»o׆›Ÿ\ïÈö>0‚ÞX`‚l 8  Láè@ðð(¤ çó¤R¨òÔœR îdV¼ð>ù…T (ÀæG†fr®¾šg;¹Ê@ñß|í÷|¿ª4HY©iâÕÙfZÊåÔ›WÒé>öV’D@JÕJ‹>7ýÜG›{ÚgwÜò#ÕšÉN‚ªgœÞùrîºÝ¦ÔÆžÆ>ï²n€†,èûŽT(HŽþéÇkí—à7ËÀð¿÷°€ =UÀba˜ß¥„>Ü6¨™¸aÓŒ¦B þø…¹ÛÿëdæK¸ÿ…ßiË𬠻xXñ„ËÍø«žÝåÁæ»Ö]21"3†écfžÝ#ŒÃúÎïJh\ÁùÀzøu•n6 ã‚1ºR!ØÏ}›¹Û»ê£Ó5RË@¡à÷o$‚½æ "`½ñmUDUîÓ­ z´8@•( ‡[î}ÝõžsÐç¦VêG¿÷õÇ"ûuŸ¾üZžu{Ùs#SF(å¡è@òRƒõ9Ù WX~ 5äëòÿ¹æ†¨š˜0_˜rú½×.Í`\¸Å 0 @€f@ýù%hµ0ÒžP ê£u{ƒ> ¦ù‹±£é³ëV„‡!¥Z1Lv¿tØ ¿Ú • D] EÉêYÄÙdK,‡"ó Äß Ìæ¼ÔUN`B‚ ÝÀ窷35ùíôt’âRF>ŽÏÙô(,½œö9@n¦/SI‡ð FíõΛÑWäP4™ö{WÆJQ£ç–©¸ÝèÅô^o­zI¿1"ALš%e¹ë¤ä€ZgþK"#“]tHèË’µŒ(ó˜Ç~éQô`±ûßݤçÀºtác÷¾šªÞ7€;[OÀ,°½âúZXBÝO€>„·/€@ø Àw×€øéSh@üÚ’ (bìæ6;lp€é²Ifù‹ä_!éj|K¯1¥$ëªI–¹»ü‹_ò¡Þÿ\À™kʼn3×îã¼ur9ÆŠ8 æe³ aWu‚$€Ù ® Þî0†1j "„ rK¥ÚÜÍig|žR„ó3·@Ò¤wã·Ë%só‘à ?üØÝ?îõT>©  "r—YK<(Ññµ½g%&&÷Ћy–;ö[çÑsy; ª .þ`åzm©£ÂvíM.Â4˜/ãÀ¹ïþš'ª”^dþúTI–eT À—0Þÿà+”/@ùãKÀ@ê?þsx j¸l p°Á¾I–Ù—€€$>·GÃ#¼ò¨äjŠ›d—yþ(-¾ÿ3àò#p¬)NŒêJykŠèñkl@<›@f Ü A€«M‡ÒçO""“ëÑëjVªEÿv]ôÇi x|oÊé?³Àíg' 0°<ùæpAj=œÕ:#Íê:Ï·ÁýÔ¬Ò;ô2ú«l IjµueQòãÓÜ_P0q€Œ®  Q¸€tCßFJZ€èëÿó‡7-cÀòß*¸8!‹?¿V ê'¯ùù¥ˆü 0@^Ö‡„Ÿ’ãÕüU„—Ž™Ÿ¸îb£— Nï×Åv5ýW¨9`~r½3br"CëüY‘ãÆeÇWÌPÁÝu•*DN¸)ÒÿÉÛÝ-x7œåͦÆQœ¡YŸ<„!ã•â³UV‚ÉéÇZsêTTõµ*ª¨ž”ö¿?5ÈP<ô·éáq¯4Sn—ö~-Ó§šƒÚ \ê;«²´” VT¨û‚’³œPÀº ÜêgÕ´@À`@?à|úÿʲêRUÄû›eÀ»~}Õ2˜Ê__ ø®]9À_<‡»¼¬zï @j‹.ÄUA ŸÞ ¢¢š~Ë|ßqzÚºØsƒdÛ¹Z­W/Ìξäêþ¬ÎÎhì> Ñ¼l¥Š €ô߯=50Ìt°´ÉãWc‡KÍ…F“¦  x)óqyÉXRò¼ÀÜ"`À¼ú_ô™ß­€Çêï ø—iÿâ<Ö`J@eþøå†ÝýÛbO.o…ß.(ÕŠ_bØê·Ž8ù£õž¡^(‰¸îâ“ @«uÐØ”óS€ÞR'H8z¼\€`B«À·TE`i­>|j @’ìl;±GÎ £;ä矟¯6¹GÁ€*»¢ Ñß—ªzФ€Ç˜¡W—<U­‡uïËýzì[]ÿêç,n ÐT;i©µt;óŒßŸ­ì 5IƒŠ]¿½ç$6î¶Q+äÖšvÆâããÓ­°‘ÂÓVrO²ëìÕÅ?~Ö¥í¥-{Ùv£¬×4áØG7¶)1¶z lšbMžÒ0à Ù„ ä@VÈ`žIÁMÒWèkóÛÿ<2£¨Û˜9¦Á‡€@Ø>ÓBûýÓVhÍ0‘Dõ¤Ž,&§Ö7ªlþ³7€ÙDd¼J°x‚€ ÂäAŠ!-\ƒÙÝÞÂÐèך„WQàê…-Òf <¾`_òsƒã£ÔUF/úЗ‹EVŸf¯þµÎ˜µìsnÕ¬¸wž-jœyæ@„î®k‚:¢T³ªD3ª©b-d¯ŸVs+™Hõ&äRDO¾Î~€=ÀЏÇüŸºòI|h°e²‚ÿóKÀ(XoWÄ?Ÿ JjŽ 0 ¾Y6™§HX@ïøhþa¨•b“M² ®¿æÕx3Ô‹8Dv½†ãÆ QAÜÖ˜€O0{\\L0*^@!„ ³ ôDˆ^/2!h‘­û‚sÉQQÈ¿—¹/T ÄÇ%@Åɘˆ ‹í‰ ú†ì-O™r?µ-r”Ç5h¶bQ>ÉñWþÞ6—XöŒºîˆ¥s©ñ½JW|¼š‘¨Å¥Ž Ê+ݲ¥A]Ê…` •0†2ÁØã¡sÌI–>óÄ„ã€Eð–üÿ; HOê߯ õÑà_84Ð X€€Ò †CC%ò¯^ÿ2üS”¤¬¿th+ñDüt½ÿ‡zJ$jÉBFePœžæ›2®N`‚LÀÜ ögu‚t°išÃWHÕ".€ävôz§ÔO°kôéa¡L™›sR@u±(­‚èég¼—RÜ3T@Ñš7TD‡@–/Nd¬€©­Ty´œÁßçžý+l®ÖWÏïýô3m—7#v_2œ”yz¶ž.™#©(*O!Ù##+Ô³6¸™Lëb\XZ<€ÎΟX °€|%É7ÀÏ P—púG 0@BOÉŽf}26q€A –öUÂRTâËòü¶ãkÅÂ.(ïÞLóÑådBm ¥«÷p"Vˆúcn½îîa\0@ô—S ÌpA±êi˜I裂1ZR!ŽîÔä¯ý4»ÆCA¬ ¡A(cHðêÕ‰†˜á+wÒ]'ßLWÐ D@ìSÓ  ½Ý›Ò{¿ïÅ”V½×Ä¢5—¾èïž«íÒ}óZc÷¯7*sÏÚ ˆ‡_?ŸÏ•…EÎE¸'¨'‰>60OºÍÔÀå¶x1£R¯öñ’Ké ,, ×`1€ú@þd> üý=ÈÆ¿]-ü°ÑP~k  d{7PA6~èµrß°³Ö]Âß#Ô†…^+¿ÞŸÝ”¬å®ÔPÊ­{¸`Ü(2È/jw@£¥N0¡9Á­Ÿ£*€Œ@Ñ! ¹±šxÜÛ¼28ÚXe}^D€§˜PõÀé¼|µH¥åq†AÛ9à¶EN Ö›ñÞ7K©‹þÜ•EÍ‹ñ[ºqÎGô“åÜ5¡¤è+íOII¸ssÏN-î©Fh€¡‘(ªê^¢!Y®Ç2›É©¥9I2ß{ΪsFÖßþˆÑáøÿþP7à À}+”¾o@HZ)1Gxø³Î%C€/Ï€pÙ€¤˜P™T‚`Ä>2~9¹‹ ãùëa‡R–u5VŠqî)ø`ývø¨ÍÐ)¨'¦ŒŒ¨)'î¤q(r<ñçkL sêê9` êñð@0ydBq‡ÕZwÆÑý(5ÿ}¸¸ŠB†i§šº¢AüÇqÁ•\ŠýIyþâÆN3€J­>` €h¬¹/*ˆ €ˆÊÏÞš 0â»b‚´²%×{ø^Çhö~|i¬¿¾®Ÿ^çfjwA}^U•ÐgDþüW«—Zªd‘€5”;F Pãµ^««À:¨€ÀÞõwq6¼ËšÇ ©=] €­ÿ\ù©Þ+õo €ÁÉlÂߨm0¼Ëm086ÞYvöC|Ä﯆?F]S’L5ÅL²É\ý£€îüÑøfØN  nã €q(¢„ø`A‚ûuB˜ (Ñ&aT¼`ˆ E”^{~$žÂö…†X)À£ôç$xð%g›ÊÈtÿ@yRÕ&`é~8«§IåÄåS “t Þš™-:û“ÌÀ*Ý=ž_øëçN9ÆÊœæb͘@s²ò:} ©Áò[Ô²…Ø•¬dí·²Ÿž¹(¨ k6$ ª0 ¤¿v €[×ÿÖ>T¨Hýþ³Põ×5àç?@ýà_i@À7€lÀ@s^)Æ?¬h×_]Þ ¿§,kÆÉ0|øc…F|©ïÿ¡öÌ­T+L ™¢ÌJf¹Ï臲Îij N3 Œ·€Œƒ‚«@•L`Þ8r¶iÙÿ¼á« d<Ô9JPP9AŒ˜ž›"ª H4näÖ±:½ƒ‚=Gž«qj_½xß/9_‰„³`«©ö¤V‡ЭV†”:­ÃŠ•* œzôN\ìIÜÛ¦Ê6™\~ÅÆ¬T+ á®ZêuGT€œ¡S:äÑ×½]³±PA”nˆõôI­~mb% ,h!}ï°a—£Û¢þ¨ÿ`ÿ+ý/¬:´é#GÄ@ÁAS6Þƃ[ÉOæ£ý[ÚFZgc£ŽßgšáÑúΰ­ÁLWïáDˆŒÉÌ(ïY<Ƹ1ÀúêµfWPùÍ=AÀ„àLh« €õÒªÔøøkè˜Cޱ‰WØ_%>€ú½¼<˜A³ä7·Ê— €pk¾š€J/)wíèêZÏuy{_ÖeŃÈk½-ÛõêýÖŽ*{dÜÓ>?â.È!Àå4…ý«í9s5ª`ì³ýJ²TÚ“­ K°c Ê“´–Ê_«x:”@<Ý“0fˆo½~]C‡ßx¾$õ?M¨ù$ƒBh& žøù«¤»ˆxÉ?ÿõÂÛŒ¡Vlô²lñ/Çé~kýö°=s›‰Ö;|áÖÀØÑ‚ DWð0_¿nÔ R˜Ð`Œ.ÀOå"`îloª~ž7fê[@€(ìóÊ»éœ'!#Úç@ð [§_osäNÒqḇQ@©5½®‹¼»¢îD”Ów]ÓR}ÑÍ‹wÔ•4Ͻo͹mg|½v »ò`WêPƒ ï9ÌLV¾øó%ëÈT¡å!‰¦£Æ¯•»(, FØ93Æ€‚…RàAc—aá­òÒ‚¢'ÝkÈ*-øø)ðòoÎøøR€ øš @ @ôÖø4 lî0ÐÖÀ>ÆÙ‹_ØQË¿z==üà eY×âd˜e·~`#-~¶{z¨±ÄR5ãÄH‘d½uób±Ç¡ÈÜwfsZÑé ˜ ¸ÑÎ:)@ DÕϺü›ÑzÑÍŸãkQ‹ ¤«óêøf¿ûµûÂDBÔhzñÁPzCS¢€ˆì†"ý¡i–ûäT‘Š;Èúáìì~¿†Ë5+Îê§Ñ?»FÍHUR´ÞÚÉ÷† @V;éët×ê”ì¸(È0ɨùZ:¯ÿ›t•LÇèdÀ¢(Ð)pã ï^’ À[m (,ç(¾ùåØ&°ôÂ? À#ÿb‰_ÀmS2#À†°Ñ¾IÖÁ]Ò§èÖ7ýxø½°¤šd’]øüQüîúK¾ÿ…o82`Í8)*§õöcßçå8Ñ âÚ¬!¡¥N0›€ =îðÆ0¶0„ܰÖMí›_4P$ºír»ÈΟšJ:m€€¨ìª1¸#‚›ës +r’Uälð•Þ®+€ +@úà ç@ „(Íì¯üúðvvUƯ¬ßvCÍ1ªÈîê×ÿž ”–Ê•¿r­d°ó2^  í÷ñ÷Ûå²û”Ö÷ä~«Ùh~ x9×xý¶ ¤o,À/À’ áø’1‚àæ ~9–ù›Ð¯E؊٨ 5ÅJ±ÈÝýš€F÷[Ó£HÍ81Eõ«=Z«’ö¦œw•ÀæüÔ a¦AÍá00 ŽB…@ïÐz'ŒæÅVù>i°^¼ÀCU&‡€ÞOÌ$A WCתˆ :² ˆ€$?˜Â=W§mrFÀÕ ÕS©ˆ¾,ÿ˜Åœc•½m¨%W_§VˆSyìv{o-²ÐÅJÜù—U…-) @ Ô‡TP±³(yù¾T`Ô•æWâ:ïpó"0X&@ü#rg¯l  ©Z¨¿’Pÿ2_ûŸÚ€Áθ-€‹82`Ø`^)Áöw9 ?þÕ˜Ì®ÛøøÙñû¸ñ·Æÿjd¦\ïÈ‹Œm È€ ¿3Àìgás%DˆA0µ­"€4=© xg<ã"iHd¬ ¦µæt ¨‚¯šoTgè ý/€¢Aß Aô7Û+¤dÐÿWSª Ò“‰êWØ$,/¦•ýÁÌ–ÍþP{êÒž¤Tìzq|¬ìß·9$ÙÄL5«&yäžÊJ÷¸rg˜öyȲ۵•rè À ¬í@Õ.bôq}÷Ä^ Œq(ü.æ¿ €€¿}H~AÀ¼‡€â€V'Tà (à°žøEÙ»?n¨t¿Éïf3•µbb—fÊóO7êo w%õÄÁŒ­÷È €qAåÄÿÐ º‚SÀZ?Ku‚œ`& Ñj@0F[UåaW:ä‚Q-[ ~5Í”œúz‘Ý"…ì“OzJ`ôÏ@f«'"«Ò*€}]xmå˜êE¯Ö–ÔÝÁV ™CRÿî«ÖëX5ïtÉX:÷þã¹ì³Ú娤fú9À«?>®/ÎbNJ\ VÎ_V9¢¥®ô¢  COÝ]Iñ_R@1°¥¯á,®`aÀëŸÌOŸ ]àÛÿ?°| 4CC¡öÞ @S l¥)^)ÆÙ«©‘?›ßû‘”D]•ašÛŠH:iá³ñöðåº¯Ô …TžETÏõ[å‡"N„ù]fñ¼Ô Ò0q £x*€†dMê¼;Ö¸>9ÉÍf¯õÞ ã§3Ÿ ‡ydÅGÙ©¨Ö¦€©@“'‘ÈÚÊœÛh™ûôOwy»tçb¢šqÔÞõLW[qßXP½ïci­^# X ‚V(õ<_ iæôså+t€ŽN`—:Î쟾Y`x Á"Òª=-ƒ‘«rlÀÁÿû‹Àˆo ðÙ¿€Ap I&–‘,Ø4¶04 >IÖù‹€@,~»þjy{ÒaÌLCM1“ì‚§€I|Fü]lÿö"Ó5ÅcŽ/@‘ãy0ï °Æ&L„} ‹'Ș<0†‘)BB€)¸ýã^×&i(!Õ¬c3ñqÎl5{JáÐ\@@'k/fB@åëÏg4±R§ãi÷ì§×¬°¥£ªñôîŸ,ï}ùÓ2·Wšjw= öÉk·]¯»{,F>U`Ô‡ûúu+ Мz/ Ƽ‰ T´¨ðàÀ+隬àµÿÉ€€Ÿ~ŸO,À/>ùߪûаöþÆxm.•·ÿ’@Ó†jc€@>IfÙ§€€,#ÈÿS.?”rª)fŽ}ö. 0ËÏôj> õa™PkŠ aöu'EëL–M nk,˜ëÕsq‚ôÌ4°èƒ7ó^ÀFn &ù{ï!ŒöîÖx‘AÛiÍŒªþ¬µ€ŒÑZ-à·oùy×^8{u®ª Š¾Duí­ª*€*ïñÝ]Q%R»aªÁZîL[Yθ+F_ŸÏ?Û±˜£öÀ-¹Û®I€sŠåìöûMváÑÖP€z@‘ŠO>š /à–ÿ,Øñ7õú€ ¤ù7§ `À†lø’P0^ÖÁ!b(Ðô«ËÿŒ­påÉŒ²®Š_~hñC¥†æ·\{NyõWŒm`ÄÀð€án€:AZ&t ס"rú’z0C>°‘H(!øžûkˆÏ €‚ ýÞ ܼÿ‘8èR‘@R=7hǾώ¬KÊj­4·PÛPÕä{Ý&,žÕ9ýáoœì¿®ûÒÖ¤F}3ßvû1æ°er6¨—z¸jJïY¤LÕm/ËÍ9*e(Qcüj \®`}ú—cÞm¥.€á© X¿ü΀2 þY€4¿ BþjJþ]6ý¬Öq(¦>J à6ùÕÙ­ˆÉÉö»úþþUŽÚðÐKŠ_šnø½q¤¬Ÿí¢«÷ð…0nPNü;ó€ÙT@ÿ;Ô ’fµLhC\…À@x1V¤‹‚L2’=,ª;€WÃÚ·[<à¬3 @ñS—wž:zzš^ @ɦܙ¢ˆÊÀTÒ(¢êJkóïKÒ=ž½C“rm]“WËâŒÙ¬ÿmzw­ëmnpA÷ÔM’Æå¬Ü´ùèýî6F%CV.t ¥¿% êÁàÎz­d(äš  ,8þý  ÿóï`¨É¯-h‚;ŸÝ§ò¥ØŸe*à) ÅC0 †ù‹_èöÙøõØÅ— 2_¡ÎÅH0\ýúÃÞ~5Ž ÿêC¦KÔµ8Q„Ź(Ïßóú9(â|˜w©€Ù¡N0¡ÇÀ™€`ì ¼T$ªA e¯{dÄ» ¹v_>§AÁ*óª^@…%NµR€»aC@¯âw¼¶Î$}è×WæV\§dR¡§«´¸h于.9ÓF-ó"F÷yq±¡dŸÛ_/Ï®ÌBãP2@*íþF-}׎M —V@tNNÿýøÚ€ºË²_~{©¯[Xærß‹X¬Èj @øx˜þY@  @Òª@ì¿tü“ÂNÁÀö^IÖÙS¨…WËŸÎ<¶+†º3Ç1{˜øÜá“ó/Ô+G†«fœHeåy(]ØGìÆHOù‡Û¦ñ, ®ò-€Ù€ª^üŒa bL!€”Wµßœ+¸òJ½~öl!ˆ6ßÇ «"{K…dÀ ³Ä…¡6€øgMέGŠˆ$`Š¥Y@¼rô!?Ü´`F–ÿZ0`2û.õ5°[Ýx3h@k–Á¸-`~øåswÿ0Hé>µÿÒ™„Úðð‹òÝ;,SâgN\©•”©îâ €ePýÓï^&D‡:AN˜Ð.@0ëÀK!!€Œ$«›¸® %”#ãÄPEæ’Æ¬ÕU÷äUÏC¼5¸:8<“„-œ˜Z>ÍCoÿ§:¦’‡õúà.¨ªšìHJUÑ]¬·Ž…_z¡=ÃÈŠÔ½e£{š˜@­8À\¯ùN’ÙPyÉÚ3.d©©Í½â+[ª5µö¿ùÓ`à†*Ö~4RBض÷ÔÀ~ €¯òÆØ$u]âuØp›`ž9Æ™«¹£fé~føc†«^cæg^"È ºõÝOF8f 5ãÄŒ”QÔT‰¬«}ý6E<A—ßïfs":AÞ˜éÃYô¸/ Å?ÌŒC~¾SÛ„,`òטÅ9‹*¯¯Ë%ÓÝ? ¢¶ºá,¥¨T IŠ0¼v¨**Ðÿ·£bÙ@@‘•Ù…  Ã@°’Ïvä–›$Kþ8gž³ì¯«¯ŸVnÉœ"7 Õ(K_VhN1h©¨}§ùøpí㈷D›ÁŒÑ(ètS`qïí1­CÅÖ{o‚°Ü ˆ¤)fÈÕMÀéÔ‡Ý6€ ÞYvöC@ÈoëÍïÿØ‘™„šâ&¹7赟gx´ü0ö³K¥˜¯X3®q=µ¬! h/êé˜I€.Þ0ÁUÈDAñ‰S+@tðÙWU¶®@TFž»¹þ»Q'8.F(9xiMLˈö/TTý?~¬€¢©»!ê~~1€ä²¶ìZ½83ePº;Ê‹¥ÝX;Õí½úéQfsqN÷ƾŸÇvůfî:dTÐ乌ÉdùŒ‘æ8ýŸ©fX|M[4(âá£÷gœ/ _$¬€øˆùá10ñ 2(^¦¹›ˆT>¾~¶c¦¡fŒûwˆGË›¡Ï‰ Zq"RT+‘EÍAU¿ 2~˜Íij NaSƒðÀ ®*FBõéôpÇ|ů‘zÑÊé.àÝ¡>¥à´y«usm:Tú΢ ‚®srr¥Ý¥z`=ëiöÊ8ó’×Þ¯ëº_z3 ¦döx_®ëì B›60þò×UÕJ¨}dàòh]í*£É(0ÀÐçÀ½ß»D-`ø¢Þ?±Àw½rS † 8 À6¾ó~(YØXHâØÉï0†ý`ŠBüV°Cëñé_‚ ЊÉæ‡HW]S p^æ†.þ©‘ájyK¶g¸×µxèùî—Ê´þ£é/“£èb¦®ïÈ €ñ¨d(WÌ®àö7 ê*%€™€@1Ƶ# !ks.ývÌê×H·«­a •Úí"rвf2(@?8±þókB8Ô¯÷0d¦@%EÕP¡ÆL/`µˆ‘`ô q÷/˜¨$Tþ+È)¾þ^x¾!A–§dPpà‚Á+€°7¾Ø%.~¥Èñâû/vÕ°6\ìÂîߺ9^Íïê•‚Rv]‡?È[€‡rbåï9 ŠçÔ Ò Àæé`ëÀ ©"àóûßZ*D, “(Ý{#@Qµ»˜—é4¨¶‘ €óÐ7ª•îÌ4U€••J9³ëÊÎp¶zöÁÞÚ&•¾¦‰ÝžÅsÍusUgq9}E·»Ç+wÒ’€Æ¬2ÜR šê>@饾T9a4 ëõÞéSÆ×@Ò‚¢€Ïgü2ÈsÎýpÿöÜÛò, JÈèÁÿ¹` €0¿ÿg àŒ_€KêŒ 2ohz@Aª€ƒEi~96ù]Dä„®ý;Ã>¬(QWÅK±ÈÝD*ºæ­ð¯>)×'FÔVe¡º›qã PdO„v 5Ìiê„0¡ÇœŒÑQA¤ùER—olO)6OFÊd:¡èccuÑâ}@üëÑ;ñÐ JyxÖC[¿Ð ïò£°—ÌkÆH°ÚÞ kw3ì-Ÿ ¤V| cÚýŒåPäx:˜Ì&Bóùu‚ôÌÔ°èqTÀDP1UpìëZc hEC¬$ìû„.q¥žËÓÓ© †¾†_´—æl",%ìBˆïvè€T#§ ŠlúAÔ\C^9òcˆ*ªˆˆal6í¡P&)ãœt؆fb˜$´Êj›VÖáöÿ€v}ÔÓÏ|‰š±Ñ«óõ{«>ZŸêåCfºº‡+ÆÊ ¿ø˜`ö€ þP'È8‚ ‚1êr… (VxÐàkÍMÀ-xÀÀ@³“=—¹ò—‹ÎWn• €¸ˆ4ÎÍàëøÓtÔJ@W/AÃÚCDï-§/UJÝTÜ>ûËZkÝ»½ÖðÚŽ·îŠï£N±µôSN•æLJÅÃ…á­zš §i1%»ú &@ %Yª¸5¢Àr,8€àþÇwƒåj« §AJû”ððõãR¬€ „Û4ä Ù9>°Aþø¥¹‹,2ò*¾ÿEØ£"© »8ßüÊròGóì¡&êյ䅷½¥ˆL zÀ#@Ô ²fÍ¡&p^*ÑÉ@÷·°ê•H©2ÈÉ¢I×<Êâ©(aÕœeûùp žÛîø!ƒ`NPËà*Œ 4Õ€•J$‘õ­Øå D©«OxP4íñÀ^¼m½ÏíÕÕ×GÅ2Š­¦Øy¸~u L…J烥î\¼À^ƒª«ñ´HÓ* JÃÝ20Ú¬ZºÀ€?3~€g ˜ê‘à€Sž·AF`^)ù»ˆ±ñUß È ²¦XÆWh„϶§Gܘ fœ(Cʬˆ²h…ÝRDwˆ?P³xÞê¹LèñЂÉEU¢cÔ¼&q¤D´q|•š9Êéá„€3/2IÛ1€XG]t*¦* €(ªòê³K‚Eþ?K¦Õ!K©´‹µs˜‚– Sk—Õþå䌊““}i¿Y±‚)½ò·¬®–}ÕÀ³blæñÒPúýéÌì¥%oÔ®=ùæ›þcv¥Eq_ŸÆ¨h5€WuÅmðwöT¡Þa@v4@ƒ¶ð7¢ë´ôcóZ>cȰ¾IÖ™»€ PünWÇŸB˜1Ö3É.óˆäoÆ_ÊóøcZS š‘‘eÝŠØÕj“ãÆYˆãxAÐÇÀâù@ 7€™„*¨ÛÆ$ŠWBÀrU¾áÈxõÍ¢†Ó£Ì+dpͧq.mðžLE_0•6xBÉHõ÷>4ó¨Îb*tq¨(è¥Ô*ô2öq!ª:¯+‹Õo<šÞö»¹Ýµx{ZmGó_wõb½1Ôt@$½ú_Z])Pb’­câÀó¬­T3_Tí@ÒŲ.O²o_ý¿€o»0Tþ¾@€üÿ¡`·êl€ О9¦Ù—€À¤¿“~ëþ2ü 6c¨)^Žiî!" è´Ëxÿ¿‡9°nãDQDDÔäj•{Ùñ0q˜ V‘Ïßu‚ €™ c2(ØŠ€Š¦õÕŽiYŒkº™ÌxRíEÅ €œ·|”Ò®Œ$Ó;LX©Ü „PP¢x·PÖWÖDеMiQ€~R™SÂ3 * ÒÇR—;9ˆ9u"Ê„²H`ÛîUn7:@Õ=Ú~³6Œ" °Ýª¦·10ì§åÙ,«æî^gV¢üðíßÞ lÛH`lYwý àË÷°Ë_Mÿ ‹§À¦z`€ (}>¦öå¿jëo O^J6¨V8ô’¹åì¥F~4ýyJtÚŒ®÷ðZ,ì‰ÖHYï=ǧùåÄÌpÃ]ê9`BqÐŒÑ+`~À=ˆRYz.Á‹±Y¯kk¯Ä‡Q–/@í .")ò{òWj €ªJãç.* ¨ ® ¿þ²_3s棾w. cQ#•Y9rb÷<ÀÁj¥“ ;$9YC³¸è¬çb¨{qÀ´{@½Š7\ûl5¶ 耵 4ÐlÇ¡ŽsüÉ×O’—®·ÄüCXú[pƒÀ×ùE( š Æ@Á0´L3ù¥™ëgu4õO†?2Ú Ñ+³å³wwêG}+lGĄ̈õ¯Ýˆl¹ëbêkS;('þS½}@tàï@NÀLBÍáA@0F«À …*>it1§ ¦’1ËF~º¯ž[J²Ü0øÎ¿«…ܧ¶7ÃÙÖÄVx]×EÝO·*€ÀÁ #¢ÍqSRéÎñüÍØÛÙ·T^×E^Í¥†àÒô\\f)ØæóÇÏõj™z°*€ûxéâÂÒPîzŠJÿöHý+£8›¸ÊhôÂütw3uÏ {ŠR‚º‡/f€q£ ˆ&~þÅ-=@‰7:A:˜P<4€`Bà§*–––û»™L‡b-RBÊ„ê÷sÉÅg€¢…²uЬA¼"j’÷@Bñ¹´‰¿Ÿg5Kp9Kº¢#” ¢¶ÉkCµ¼´î(`M¼UÅoi’UMÝœô.ë —ûõ®‡yRUѽZm–Ùûìik+ãrÜ[ ßçG…u`â-’,€œTÓ¬0+aDÕ¬P/F?zÞy <^€—©~íÇ’ÿ06ß± •¿JÈ’q4üÚ5Hà ?lÀAË„Žþ§U÷÷~«AãÓMf ºÿ¶Üàíz:Û:u|]>0!ÔŠC ¢hv1Q§ìûF7 œXyo€Ù ÎB 0 â` ªª"k©,uô­ÁýQC¡¤üßÝ@ñ÷å{‚²wxA24ä\jùìWïm÷§}œy©Ôë9YÿvFܪ`›F#®ï¡¦S2(™^Úx9@/¿ÚM™êB¡rH›~~[3t`± ~,6Å× Àó×büaï¥ Ü@ò÷s  ~ëþ?}Ùвç›ê+x3Ò`çB N•Mß—bh`€>È%r·û}ÐD<ÿL&ÀµâŸ ^Ï{’iQÇÓE#­¼¸cÎ0¹ï€ k"M¦ Z]®BÀøâý©*Z‚ .@`-É%HžŒÛTø½¹­ ¶òyP"‘ï>,—t¹…íNõ“óͽG“•¯Sw¼²ëÌçßåõÔúaÎI‰u/úË‹ÁÞh ¹¼V“PÍâ†ñâP”è™Ü õzÁߪ”ÛKþÊý`Œ$†eÆã®!¶«<é)ÂÈ<2yO÷´7õ5@€=î¿62 ~Üàż¼Ë!v˜¯¡;Á@bàFå2âPé€þ§w*h¸äùW:<¨³ ws‡MÔý4+׊/bŒxô€"Û† kÊ×òâ¯aŽ:…U$䪊œXÍ/¿ ÉSaD*€Àl3èzý——+)Á{*ÚÃM ˜Ü•Ýyö îÌ«)¶÷,Ï­µ\š” wùôûå²×«êÒü}yýër»SÎ~qUÓÔ_çßO9˜x"ÍmÂ0¶8{ÝŽ·•È鞀¦Â>g_~{˜uÀŒ½¥jóDb¿Â àÈltM°ùÞÑT¬  T~ÔßQŠà˜3À6 ¿‡2c  8Bi2v´ñ-gÌ6Áh;šª 3;ç OggSÀßHÑ|­ }@Z>?ÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿûÿøüüûýôöìïêàáÚ×èÒ‡…y…eIþ‡ÙûùT±½ÓÖ˜j#Y˜yîOƒ¦&ìwêSj&/r€£ÈÄŸÌÞŒ?>Ô)|ÚJ¨ª¢õjdc¹^õê·_ˆâa \ŸºX%ñkVk%{ðÀ—/æ7üYA̺DÓ’êZ>ÕoF™þþhæû\tÇûõÇYíýÝú’¦× dƒ¡>0òä(6àÂZgnöyJÏ9Ú²·É· @‡Ve z† €Ö†®ö/å#ÔÅöŸeœ†€ƒ3ÀF€ŸtôÔ *Om)R`¬Àƒ€ ,Á@!Á—`@,À|†ÞbévÏ—¸L#Ìâ£(âši¼µcA6-$`³Á~W¹Ë÷D&Ï[#Š„j&sQ.{sðm]„1“{áPAã‹K÷bAã¥(ϸ€o NIᡪjþ _ÓÏOvý{î«@FÐ À£š‚í])ð K¡ð„ȺJn<ÛÜ“íw†ÔÁnOV¨t^ÏÜå–Òq|L¸ º~ÓÇ4æI®³²¨ÙwR¿½î“c#áœãVº~ï–Í”Ü yÅ@ÂÝRß³H+Œµà,Êù9¶!ƒéÔ=ãO¨Ô6z‚K¬Ð%D¾w¦ªó ¶+¯AÊ(òÇ2o0pJj»¼ÌÜéV¶X¦Í€ ¦ ‰å¦‡myí½Tèlè¡žW•ÙsûœMÏ“àÊ Ö”ì=exloÓ"¶æ˜š¼èvÆñÀvÌ6µÂƒªªê1þ^¥U1ÓvRè·@fù,€/n?ò-¹¢d²]ýhF€rQr|ñýæ@Q$yXY©f:…5;X­Ó6ÛõŸ{íý4Rõ¸wßëýò4þë^’ªóªÎˆÜ\îù%†€ÝÝW€õ‰è­Ð20 L°`éq—)Êd_ÞWíÇܧAj½æØÇו¤òJ A³×Ò›pý¼&€^ëK6@nÐ64}€<?ZŽO „2J+cb\P­ï ÔâŒw Ô„B¯ñ@dŸguBk(^'¥Ù«Nq,B¥‘ pI]”e¶ûÛXË‹<‡‘#£&/Z€öPD+ Ì6µÂªªê¨Gƒ;‰q1CbT€D[¼Ë¥#çʲyˆó)%ØáòTݹ9ªr}naÙƒ—ûïÓiêÓ›Ó¼?îo¯UC½õ°‹2µ. ,_ìh¥CÀ­òkÓ*ªu -’B¡ƒ:†zØ®(Üó÷Ç€ M€u;Ð&±™÷x?.]ØÚk3½hûû1Vë+©ô¦Þ¨¨DÃô×#£ß“ŒÁ/A* ¢äñ9T£ ÏÁ+¤†ëƒeÄgÉq÷ë9÷Þ²ÃÂóÅn9qÕfÖb´ëG”>u`1tuƒà×>0ç„öu{&ÐZeRªÉsjn»Þ£¯ÂzÄ­Øäũ〱)ç`vè —”PUÕ8˜ü5¬™Ü†%0pÊ—‹ºmÚ jðzIf!8*%_3ÑNûæw¾¥cìfô~´ûÓÃWyÌ6_צ´,Èóý£`cœN§m׃ Ì"ëu>û…ÒZF‹l€ZM<Ðó±¿YOÐ.  CwÆ»þS«™ÞTnsì˜ ÐN ¹)o–eÀ*JJ•ò…‡ŒÃ`2èÍzsȳ‘sA*„§H)²˜Í9bn „¤?ÈÂGl'ÄJ“ƒÏ޲Ê ,mý!=õ]X{d²L °Ý®ñ¶ˆ+å Gu“’Ÿ™>^׌êÒ料u7 ŽšÜ-5ï_‘!Iž$ìÙÈŒ.ж±ù'46]IIUUÕì´%j0¡·'š’åî8:’<%2¨KÕ‚=QNìUµóÑÒmeöî/‡¹xpÆ÷ŒôO’ @)ZÑAfë÷IQ&½WÝ“Y´¼€/ÐÜê÷yÃP'L«_N}¹÷9ìxÍÆ°ÖKoÄVŽPÛÙÝh›Û9Ú5Ã@ÎIæŠò%*U ¦»ïë¼S’¢òÿ×´íö›]Ý‘VK|@“çÕwéF¿¼Ž£±‹À½x3Û(Ñc»º·#a³=œ¶æŠ•ýžÙb0gØs·Œü\LW3vò=ôˆãÐ8·ôÜQ†Ï[™m,s©ý}o£ö0½}}s›¹ýºè1Çàç½ÑWµ27¼[»/:D[wrÐWHX€ß_%ö\™Dd•»ÎÙõh0ë}ößd\>ìa´.{èü8Îà¶Þ›²^Ï®¡5`‡ü?™™£X¹i½AQnÞ¶ôüQ÷b J‘ékŒs˄ξ+£•ToÊdãuûæË"{»ÿzœ–" p#%TUUí=;wvc%†Û~LÅT¨<óâÈ·OôP„^;¿_ržàáá‘ÅÃZ7n+½¯^òð0x8æØ{íÔòz4ï®–^4w €3r.w;Õÿy nØ2Jü÷ÿ2íÉ`¢k;•õ`î}æÛýñ¥·û§¯ãÉ3©h4 œ‹†Ž]¹¦>úV-¤-¦¿ÌcllЛ®&ç˜$èºëïBA¬y/UÞÒͰ·E"äë;³%C ?ñSGë‘(¨®£†³P\FðÞç¹åö 6ÎoÑ®°e:ïÂ]ÎÐò>¶”êÖÀÉX„ŒLMÞ–mû 2c¤pW(6ùqvÍa t ÀˆGQ„ø0kPI®²ª*¤íí££~Þ!â>e »óÖ>HB!täïá.Á^W;!À[Ý¡\öôsa¼ÁºÝtõjýPçqÙÿx8?ö¸ï_·ÞÌû½ÌÌqö1¦=׫-llk¥¹)c›ÜFõŸæ+?·tàU¿özìû˜™gñ>‡7-íàtW·gÛÞ¹k hëK<įRJTòƒÁ¥̪rjquç|²­Ýòõ>H»“Áà¤èz SiÅÂ&ö<Œà–h¾ˆ ”,ZÓby¤mˆlîm C&rH¤¿„:øþ¶Œì’sÐÐiJêV2¨×–mëÛÐ7,BJ:"¤ØøýPÑÂ^)IÓ_ôàÍŧ‡²Ìz*WUUÈ:·}ðn³¯H›úCk_kÙ1ÏÕ¢¸Ÿº×ËýÛú|ZZ^ú»öÞÇîäÂxª–Ð)-·>ÿߦ&ahŠ»n=§bÚÜÿð¦@„Œ3ݳçY?1ÇÄ@i„Ì|»fŸyì]¯ãéÁ˜ž)¦»Ž ªÞU3LR îã£yXXà÷‘ßêW#×Ç~œ9Ü“ÁŽ½Í®x¹¤:&'ý¥Ì„L±L:Ê´_iÖeÚúòê²Og¾³¿jלÓN,8!Ù9+]¡ì¦ô †ÖP¶t`;3}Æt¸”jŒkËFì}/4tb©/¦Üø}˜æ°éM^fö7¯…ÑRŽ…i¨„ªªâHð‡”sðÍ{áKßO½Öûñûu>¯/‡Ëhïã=]—Î\öÇzÏqŸ9ec<öWòtõå¦Pý¹ãÐcŒ&²†| z3²}ÆÞ&•Ùÿ˜½ëþÞ6 ´WŸ C&·†¬qÁBRÞqì9Ž?O¼Ž–ÌkV;¯rBÏ,Ь‡iÇýÔz± ëÅÞæÎÓ_oñ<¦X ÀPʕȦ ¦ÃÎx{w2£`,ln!V 4Å2o•¿t£ePöŒBC%TU]v…¨§ßç¹?¤Wûø¯­N:K×°Æ—ÙYùoÖß½î×·~ö×ËXׇ[Í€m.Ûš Go2óó>´Ò0Z‘|ç„óÏËv&\‘$‹5øU¦Ñ @ëu{~ö”µTAºœl’!—dêL['TC¾YÔMM&³âÏ|ävJ.ƒ–@ÂÖdÓþHjõ.­rÂO!ñˆe·Òï‹„cýPu6Æ9»† ,$,ƒÈþeço-äÛɽ@é\§µ2oh±e«9ÇÁ5çrˆœ‡Âíáh¾µ¬`Í)ˆK4Œ)ÕŒeË"ÎúLè©5“BMñšmaN8ôþ|ÿi>ÚŒEYURÅ*Ÿ§M{¥¨ùê»+ÜáÎ&˜pÌÞûë¸ìÛÇïo—Ñï­³è{û²“‘Q쓹­Ö(1C½Óó×·†zn€ Ujj¦ý¹b5Â8K˜|å€Bï@@°ÿ 0@Yñæø55>{(Ð9gXr—˜æÀ } ¨`D鷞‡©…ÇUI¢"_K"ÓÙg>»K%D‚Ã:Ú&šawr%yHS?SJA•s®é+zh \:9Ë6.ÌhÈœÅäÖ¡:_ÁÏbΒɶ¬ðÜï ¥ÜIi 2@mx¶œÌ‰ßí·ËKÒ )Ô¯-{7ÿò7scº‘©ªª*„z×CkgZI©~OKâ]>ŽÏ„㯦¯_Oÿöåõµ{¨Nÿ|ß{³h¦½aÛ³3pΦoíüó5pâ©ÆÄ÷7ÜrcË>ýõB‰(ÀÈï29Š~¨é'I±±¦bh1dža( PEÕÝ\Õ94À®æ™ª×Û]\Uj·[–­›WÕ-ùÐúè^q֮ŭهôèáïT¦7½*_œãìL¬ÉvÞV³<\ºØ^·Ù$nšæ\ÉØcWI%cì 6¶œáN=í7ó%ÚÉ#ÅZñly²¿Åo×UÖRS¨Ÿ>TàŽÿŒfdR6’j¨U‚š£õ‰¦±j%ÑbÈy´ë¬Ï_êÀàÆè½\ÕŸžwåuÝߣý²Ì˜ÍYÿxýÜß{8uu ã,ýO•›I%7ÊaÒ-|TéYþ¬à$ì/ô€çã¯3o:Îþ+Èâûiž³ðÌ<îW«aš^Qg}áñÇОÍ͸ú8&Ò×4óðDF²àP‰FªÌôà‚wÈéR;Ô®׉÷a =¦")R©¿KØ;í¾×Á‘¡q~7šÒ²)±¹è†Ù¸íª ¦4ãmbý .8>¶ÜÅNxÝuL¸Rí°l¹‹¿ëuÒ‚™Ôˆ$kÅë$ôïm×W?íf÷ˆ’NªªªŠ€ã±WÝŒ°ëÍÞÊ‚›Ò°ñý¿æÕOïY IKÙýò€§‡ë^߯Jö4Œ‹3`^Mꌽc£U8ë GT“©%Ýå|tò(ŸÁa;µä§1߇ܛ{¼h*;AZTûOöÀ0\ftœÉÝ+yV€Bø˜BØ~sÈ«_¨cÙcpñ/¬ŽžÚ5{Ù)Øfó"ÃÀÃÌ¥âKÕw µ­÷ø{ð##•%£ý…EýœONXq{.ìÖ­¶Q(“2+÷vìM6D2(¶\é–~ózV˜å@ÔŠaËEœôÓ_ÑN= ׊×/pìFô1¸þôËGcD%¢©ªòPU!pÜk=Ÿ+ÑF.WßQ}¿š®¿³JúŒù°o—¦Û:œYëå9éïý¸¾šö<Ûç¶÷ÌË`ïsêû™_n³@›JÈž¨`ž8fžÉvÓaÔóŸÌͨdy( ¤Wc©|•ÖViŠê¹0@´6Ž Ë{Ȧåa•šPFš3;:·Um zŸa^Èýà´œzê÷v¼¹sIØ1Gö|Ê€ F°#L–|8#“ç‰ß*“{Ì`Z±¿9êl/ n™»³A©!ÓÀ~¶¼‰ûÕÇÓK*3¶wÜ€µÃ³åá.ìo<ë%ØaGÔŠ/$X€žÉÈ(UŪ*Kö_s2n·Ó27Ðún©F+û÷DöúBÞ>¬ç1?=¶ß—~æÂåùáruT¿2t w‚î`@EES=À¬ ¦˜¦œd%ïJºfL”7ÑpþÚ*Ã0@Ñ0Ü ”SP¨ ˆ–ŠÊl½nUÉ¡½Ý¾4•YÔîÝÜPÓ™Q30díBå°b$yªþæ¿©¡ëÕd/-¶Ò„y*ò»XŒ4Áä× "”w‹ED3r9U!òû£h­ãš‹ó\°fß?*¬ÈœÉ3lBÀ~¶¼é•ÿ©×Ó%8¡¦6`mx¶¼¤“ýíƒfè‘Ríp¢ zoÆ›_þÏçF›1ššªªª" Þ×38<·ëˇ•·oT½Vøx×VKýÇûøû¡ý:T²ÚÚ½µ/¼~î/æp̱¸öÅx³“ëâEi¦‘ÕY ™ç2Y¼¢›Â4S¥-ïÙ}iÊD¥Bè$}‘R»ºóïr:|ý=¿‡§Âä!y¯J¨ Y{•@|wõúº®/ç‹k²«üèEu]ó¾_óih$â~:–q!™;Qƒì¡!Öbôhaf÷[Ž}8‡doßu} h! ¶¼ÅEøÕc¬—èvxkű奜à¬Û±`jC’µá €‘t\¨™†ªª*À}ë¸X'(tÊf`±ó¦ø)ÕW×–mذ8Œy®ÌpÂÛn¹y0ú½c)ü·X}üÞž÷zWrê¾áä@xê!ïn¦I`´Müʹ†KO] kÃLéU߀±½ým©7ÕE½¥Ýµ—Ìéͤ`¯ÐÝ»‡aDwä¦\\4§yTÍD·Ðéž‘ p[Šò½UÌa”¾Àü*šór’˜qyâ×µ¹¾Ï&d®ÃøÁ¤¸{±u§{Ö’lĨshA  1ÞÑìØs>¶|ŠEúã±}ÈîêÖX±V [ÞË.Üõ¶ûUv IÖŠAهǯ~ó™ÑiŠ  éHUUU„~ë=Ãúås7o/­J@†ÛÿzSãqצïmœ³Ÿf¸xÜûûæmŽ}›gÌa³©W¯gÀ!'“kþÔìêm4\UÜ<ßiAS‰Äªµ‰p‹3¸£`²C.ŽòjM3KñÀˆæÔÞUŸÓ=­ÊÚMg»m¼ï1_yè¹í¤§ëuº‘ã´tÝ“½hž+„XK^Ujô9Hq]vrÓv5t¼ÙÑêD?û±ñ|—#¦`T!|é.ï3ÛÛl2´(þµ|‹YøˆÛYÑq5ÇZ+†-_uá¿ývëO-ÉpÕŒAÒ çÐ÷çwîQf¦ªª*­§£®ûæß݇1zVž$|àku)”²èsÞ??wÿ;æûÚ¢ÿx»×Æ´õ¯«ƒQ£²¾P œ9•IO7³à÷졎Ïúý0k©ál¸”žTŠÉ á@3d3ê)ê†WІ'ŸSLeQ@¢™§7%*>©Nª³î86šÔþ°xîþè:IÒÜyÐhoÝï÷ûØ×I«w×ëa'ºÒ&³Ê+ v+Ü×,ýÒ­Üí¦*&úÑý8“õh²ÁcvÀ@þµ|›YøÖíy=pW_=6µâØòÕWþGowÿ©øj7¬) ¸ôçßÙ±4’2*‘ªª*@~{1#w ýjÒnjšBqP ¥ì'·ŸÖNUEUÑ7rÔ€ÎLÜfÜ«ОOUœLþ˜žœ®ÄÌÒÖÞ„~Â]5:v3°?ýÙo§óÒ¢j¯çü9~/¯wî[?ݵ 8˜´}OfŽéL­ ¿k’Õ}ì¿ÅùßÂ#õ _÷k9–DöÄ1ÇÞãò¹©2Ü’4O8ž¶YZG›oÐí•=F,C'¸lhàlþµ|ô…÷­ÛY‚gù!)ÕŒ_ËgYø^½Ýõ’|SS 6-9.÷Íg™ƒŽE *ªª ¿ c¨óŸi‹Ø€&1{šÜ;öUû·|÷/žýºE/PÀÀãKÁÀän>Ÿs¦Ã¦r^ýe¨ˆYþ+pè³!)þCWFH;k‹$e2@†D2$s35Õ­©7ß¾ús›÷OÙïÌÚ#§Ûëø:߆ý†°N÷G÷¯}ÁOa$Û6z$ƒ÷þ…òPD\F¶$K¶Z,£äz0‡‘Ö\cýµÉÉ­»5ñ<ÐÖµ[n˜ë¤é…©gžPàÛ˜€þµüôÿÏí\¸«Û¥Z±kùl;ïÎîÔÞBSSd‚=G .Oþy4±^(£ˆV%TUd<±Î4•M–ÖøyNPü&óªù~}ûDì·iQ\Ö罫3¦úX¼OÇ„¬ WeNõ•ç%É‚‚Á¾9¿ÜÍ·löwƒÁ¬q¨¼¿pÉ@a‚Ðu“™|ÍèV¯¨Q÷9¹¡Õï©«_ÿB4¦ª~RÓ|ÌSÔ¥ç!yü4æsÓ¿$x/Œô¯ß’úXû]HŠX½ÂëÊm*NÒ-ÙVCš¼8;ËC¶çªéðæXïÜÈà04þµüŠ#ÿ·³~e§úöBQ®¿–ï}á ±ã¡zK¤PSd‚9c,úå?µžõNSF©ªª œTj:¾á®€®pí»ÿÈdWs»}3¿žUí j_ŸL6ŠIúÚö¿‡ú34Îï[@UÞ?*‡ÂìWÅt@o½Cî@ã\SPTûAX|÷kÕ0Ýì]_E7ÕÓÙ”kVŠ«½»º OôørøÃèÝn¼¾}BŽIÏÞ¹oþM¦ß¼DLÙäÜp4ƒ'’Y+ê®ÈÑÏ,Ѱ–£¥2²w&q!"1` Þµ|Õ‰çèíôð<ž jÆ®å{™y&;^²/’5EЏù t*e#SUU@Q¿í•¿Ú[Ùh(Ûf4Š‹‰’ÔÝ®Û|.ÿþu›oö=n‹xµ·ËÞÍø8f•CV÷š§ ëÞXÊ[Õv¼×iö>‚œÝ_ª¦Ã=%ÓJŠ(s#÷sÞÛÞ{ã§šµ­ÉÏM1LEßLÎnÈ=ù( œ¼i(R_×÷®¤º[~Hµ¦~:ƪ?»@6]ÝÎJ«nl‚®[ŒËÁX9ï¢ÍÛlz™§(C÷¶`ZÓm™-l‹ þµ|Ž'Ï®»³|à-45ůåk?xÕw,x KM‘"n×7õÈL:JUUE ÛËéjç§LÝÚgu¸¹·ÔþÇ}޵‘ÿ¦ûÃÃkÝ# ™$µaã=cò«qOSÉdT\•¹¡]'¡vA%Ío`B-•œe€dëL8¦ú=–ó™aª²¨ßì·Oýêø:M”ûÈœGÇ›•MÒ" ÜŸÊcf6“LÓc,,Œh«¾"¥Ùj{lpQsßsØ|`:¬„XBGìc‹¥ËÎ @cä€"ÐÏAÁ¶|Ï;ßÔÝ^á-„šb×ò~œÜQ;(žPSdð°ë›¿m£Ó4TŽUU!•µ| •í €×½©ùeÒ¿¬=þøó|ì¼Õ<÷üøú`ǧý±î¿ÞÎqÃÃ>;Vµk°Ù$më÷ä×åf \ûxý»~¹ìMíÖl×§fkžïÿ eeÅ:»çË”»~Ùû49Í3ÿ¿sXÈ~`Zݦì|͸v]º ‰yPùpjÖqK*Fý¨ÓêH,«9m4ØÎmÝ Íâ0JŸ£6üF_ þµü;ï1·ýZu¾+ÑÕÔ¿–¯íÁCì„Eô4¢¦Èà¡¡Ç/ŒžÙ3›ªªB „ZSä53i4Яñ0§¹®Ûãøê>î™On·ï³ï~pŒãÌ«}Ž;SY÷D)}àôŸÉ=$3°/U_T1fLf¶ûU6Õpå]¢zŠëÔTŽyìŸoã6OÍÛù\Ì _Ÿ U:I‰ºàTTöá­åÿ9'y4ìµØS¹+áiº”3 §½E)?¥‡;ØãÕ)ûX¿Øl›±êܕ޹|'¯º–Ze³­Mh†fÈÄL`‹“.dÀ8þµü˜fÞ#w{…÷&ˆšbØòïÙyñ$o„jŠ”Ù£BG¬BªŠ, ´’Ëùz©ýêÿû 00ý>ÝNšy¦gN–æím»Û<çûöögÞ~t ½‹©ë¾bSy¶³›‹ñr*w P̹þþò8^gÿ˜{s4oó}Y7@¥8*t_·@µ½¡™ýÓï  Þ¿¬œ“•f*ÚëôKF 0õ,$99ÛSkR™ëÈÌDIv -ÀŒ2€a;c°7À9Zضüµyñð4KÔQ6hê v\:ëËu»üÅßýí£¬½z{=gƒ}ö]–»,€9pÍ4ó¼ÏÌ3@ϲ\sÍ5ö…±¯Å±}Î~{}óóÿÿûõzœ×·Í5 ^\.wo¹ÛÙçõ×ëÙÎÏ_¯oÏ= Ð,»À2 Ì340Ï þµü¸.ÜÔbz[äš"ÊžÔNmÐn§Áæ—ÿÿÑvñÉ/Ö›Í9ûç+{ÛÞÞ {¦x_x‡™nèŸ‡÷}_žîn0ö.Ëe™=ÀÁ~ýùº½ï;3Ìð¿okàm¹oûõu{ûõv`ïý}Û=w.€fffè~޵ܮîÓvs¡ykºRS3ð™,Ô‘I¥dÈÿ{™ÜûÛÍMð4ÐÍ03O3L7 oÓÌ4 Ãlà—Ã>,cÖ…{x³_˜ƒÍa;^÷ÿ¿ŽÃá yhhxž·^ffzà™𧇆»0\Ì2w]þµ¼[îU»Ñ7¡>‹PM,lÖúg²Ð-5©A  ów®sxhà™~˜š¦˜áe{ïŸûìsÎ+p±k­¦™g g€ÿ¿zåS C aÁ0†{߀™gzàyº»á}{†¡¡cëm.€¹/¶üÞμ5wÀÛšš"˜ƒ¦£ˆ Öþâÿÿí/ùõú¶pöÙÎ믟oÛyýõú¶×¯ÀÙo¯¿~þúù¶}6€u°¯gz`zúp€u8Þžžžèé·§¡§§§áp°¼ ôôôôôÛÓÌë°¼^/àp¶üï,¼ÔÔ/Ô¶Üül¼øøBM ¨Ô¤©TX À^ìÅ^û¾‡÷ëpÍáš…Y˜õÚ^ûÃkxÑ/¼ð / =ôÐöµ¬Yxà̺æp½Ø‹½Ø‹½Ø»0 ³0 ³0 ¶üï(¼ÔÔ/Ô*•J^¯×ëõz½^àp8‡Ãáp8÷õz½^¯×ëõzëp8‡Ãá`OggSÀ›HÑ|­ ·Žå6yÉØuu »4¬»JV»ï›ëCé!—9äÎÛ†-z3ï›èx7E`•ÈêÐ]CÃ0Žã:[«¯®Ž$ϯü~uŒ<ì÷SKzð§~h$É?“'zçô:y Dá-ö†Eá¥zón–Õ r£+C¬¦Ù{i0‚$?ô"Ìlïòöº˜WË1¯ÿö£0wÚÿÏ„aã Åú(ó³Œo€ÅºþÐO‚[J¡fœ /á"ÝùßÌòþêã(%kÆF—Çû¯ÇCJÆ:NÙ¢5Þ ˜€¨- šfZšÂ ¸ŠÏŽid4&i¦AddÎ$@½ûÏjE͈5úÄ+ ¢Bq—Ò…‘|h)àyy¼WÿQ‘îHD@2ÎõøkY§ö¦†ÁPWÆZ›yiÍéôsÄŽqÕ[g,TN 4W]/N] uØe`€ià5ú£n€ T-€Ò÷ä"™4€°µÿòWÿÞ«ûwö%Y†g@~àvHøó¯HÀ(™]ã=VZ,€a€sžI>3;ÿ½}»ªß¾K=¨)fŽp€îñó¿7¾÷ïµûRFuVôu  ¾²n&€"­XM4… ªp+B@”%  Dέå¤xyµx±„ã>rÿhg§ .é)Zî)F+SpÌç}œº{a©MG»Í3°k½²X ]iCƒ Þb‰T¥ÞDLj[ß8uÒå@”½Vÿ*0‡ÀÀ«¬ÚZÕãhÖƒjܼ  rà|%°á¿_ (l@þ{[ ¨fÈ _$€p@k`þøîþB±w†¶·ÂoiÌw\+<~Ù°Ýw8yæß”÷ÿP7¶‹´¾ƒ‰bgˆ(‹,‹s…²)" ¾ÀlÎ[u‚t0ÓoO‚“Ä! FßvÜo[sʃ+畃¾¡ `<þï€@Ú`ü„¬|ÛõòÅ ( ºV©`eXW QPI.[寓`ŒQ*¥‚hut[³æ£jí'I©jœ®' ÄYß­Ðf– ²š‚í0Âå #ïZU`P™BqÃG+.÷b€ ríATÀÀzûU>Ž[û¶ ¸óÒÒ_ g½48h) bv†ŒE^–öUâÐȯ–·‡zAý¦X&†Fÿp©ä³ã=µBæûê-®ˆÝè#èºÿ_€ÙnèPÔ a¶`P #£ªЫ2 Þ9Gœ~²àJî鯨§(žpùþÒíg2èã@L@™ùy[?ù”‡.KY­C-Ç#tŠ(¹mùÃoiøôŸ÷Z`ÄD®fšðZ MÑ €B[W¯²ÕUºQ*èè†Û /¾ü¿Ö¦là¶øg¡d];‹À\¨ ^ƒzÑXÀ$þz, ¯ù˜y}/ä/¸Àÿ¸[øõ\€@À_¨4AAAÁ€Ç0 ¹›ˆôcÑÞÿC½`dºãZñð‹†º9ªy4üõ‚˅̄ꮛ2è{þO6Иó€:Aº˜P<ÁlH…rR!çç€ ¥çt“ï2"àò÷0QUPš~/Ö±—'= s¡ öH&*3fìëÛºûŠwõo(óy^J}fÕ½ó¸Pæb´ ¯‚‰åÛM¿ÉÞ@ñœ(ÛÿØ@†Í‹àn>9¦Ù‹È°!é³év›™‰¨«bäæ®"á‰øè¼]OîuU\Ðo\ÀÂzÿ:qM¬¡9'¨¤3€™€ ÍáЀ`BG!Pˆ ˆfŒ²ò¢¥dT±\é=“QVš?“†B<˜áýÙ‰R€LˆZnú5h **ýe@e%¾‹"<Ü€ªáx´€“ÔF®®v¨²t%yéké3+Ý.ïüéSÕy«YWµY4mÿzE¢µM¡Sê_ݯÜ\²0×(@€zú¼0p}ïí °’=c`FÒê°þùK 3 ßý, 8|ãßú_Ï€k ÁÊ à¶ Yf¹»ˆ(¤î?%· æ+4V’Sö"€þöÓüjøÒ™Ì~Aåü `ÌɨÂLø`Ä "Aôš²FqzBº‘W3–Q­ÒWÀËî¤xP÷f‡d ˆ/þ“æÑµ*ðÕ‹DPXÓþ(OYÔÞcÙÔuv¦•Ä,qDÅUµg+PZ\YºRù‘ ¤;`2YŽo_Ó 4P8ñ½G!ºz4Ší93_˜ØæÅùÑ€€æðŸo¼# F€$=øç¿Ö Ì %WøH±ìŸn2˜†nËc@É>áùœLWûÿÊØ ¢nc£æÆß;Móhýñèš«K̤õ®7A~q“`­á .À_@N“qÐLAmÄEÈY<]ã¨øB€H’Ÿm³†PÈ¥¹?)f¢åž•LAeP†“€T²¯úÕ2×—µfá Q9øEöþ±H³¨ÏεԆ^™©"¡éšWó³b+ºtJÙõެ(sPDúwoG€ÆnøRê9 `(Š€` Ã†€zŠøà?wð!UdBÊRÒÒXQÔµ³ x(´ËÛÕf–£¥ÿ?¢’AS£Žz.ª€ÊÃÀˆNê¨2¼) 0üx¢ô¶ç¥”Ù¤²HÊÄzßjÜõè–S;øVT™víÀUQúѯ¾ÝæË†Çd”@ÇÉõAeè`îÀOAÁÄà\=0õ­Ö4±¡©Z·€ ðÓ­µ]Ò@7ÿý,fR/xj ö†òÃS62zÀ€2û† ^†¹«H´£V?šŸ*ÔÕ8¹Õ/7ÑâgãÓCmÅ”ë-®èsÜ@‘éAüw%0›Ó  Ns&&Í¡ã ÞÀG(¤‚ˆ 2šKû{Û• d)å:Z#EE £?»#ð>OݸhŸ6Í>@4YMQPýP “Ū4»ÌM–hT0Ç"?ÊÀžO‹Rtíqæh稪tVþo Î$É-¼ª™æíö}NJy‘˜ETß1¯ûå!=…5ÂV‘›s±Z_=§× °ÔH ®w!›µ¾ÿ CòX@ §€·A€•ÐŒp²l€^IÖù«öó óUoO›’²¨)N’Eö! (Šß ¿ ûŸ­'0nœ… aø³äÉ-`O;€:AÀlnt»À&— !E …ÆßæTºóè{y2Šé¡@ÔßôTQMì:¢¢ýêjŒžM~—`Å㸿üëæ¬¼éë#]Ežòò~³qy¿ºW|z¿Ô¸ÏÉ>/\xÕÞJƨš@=oþy|Ss²É` ¼ÌØY Ù‰ö†{zj.ô,, Î¹þ0ÇÀ…Th€Ñá_þfcžÛ€}ôg<ýþ2›>i\hœ>I¦ù—€@Â'¹˜ö¢§Cª)f’uö!  ˆ_iWÝŠþ¹<‰Ì5ʼnª55ZÅÉýVÄn$Pä>4ļ²s~@ `&áB €0&ƒ‚£ A«©›T_ÚF_AŠæÞ.¡Œ÷G=Œª¾FªŒúy4N€ä[o!@ðQýU³º@Óc v¾ PA¾A_ÅÎUU@TE­"„ã¾ôTõ6¸é š ˆ²a=]keÕ(` u»÷¾ÒA½ÔÉd@ÏÞ ©D¯ÀÐøøÀb¾ü[†ñå_¨úõ )®üSGê«*)|@^v™U¡DÓ¯¼PvɇÍDÖ]lôÒüä—B5Í_õê‡ÌÐúWŒ”»°†€Tð—@ `¦†D‚ñ„ÇPEda Œ6]³‚讚<Àû\݇J”‚1j׬nºƒ/÷¨• ’>ó`ª ÿÓÚSQCdzsïúÆvŸš¸ôŒê:5îÏÂ4p¥m]>ãèK¯¯})s÷__¿Ýg¼ÝÇë®l!®».¢%¤T"ùÔaÕ·ƒz_1“ömhÞ,0 €Å Æ÷ÕÈ Ô?ðOør£Í•¿a$€ mg6€* À† þøÕ™Ãt2üÒ?ÿ…Íú ¤6,ìÂÁ⛦i~5žLê’'3]½‡/º 0.H`¬ˆPÂÛ,ž m3-ƒ`  )F=,/÷v3â¶Á«z 2³]–uÄtðµŠÀ^'/ï£ôÚôpç“,@ynÎÀ¨DæN$Ž'èI¬Ï?ŸþQ{rY{Ú9³ë —¦wùÚÝ—XÔœSÙ“š‹_íóe¾R޽C᫜|Züoµ{î*sŽ&7” ýìøÒ¾;q e|®¢H€bà€þö»0À߯àù;€hó?&Ó€°ÓÌaƒ |à>V†ß|ÛNFýÕzSÛ%C­ ¦ùÙŸÝêøh=¶Ñ9d>´®Å=F‘mCÐÏ?n€ÆœÀ`‚ô=~Îct>&A(S43€O¼éÜ–µx®íU½€.׆G]™NsdJ7nUà7&"ê™{ €p)ã«ã×Ԙ׽½Ñè¤iIó¦¤yº¿$Y2ç‰SÖ£·÷Ï»–ðdÐ6îè°QK ½q4À]^ÌiI–öVÊHøÕòã+Wd»‡P·bæØY ~¶_ÒþêÕà Ϛ⠀qã& ö×Àü$` sP'È·f“Pu` š+C¡Š¹›ÿ4“ ºQýÁ3Ë‹ì¬ú¢Yñ^Ço“)ðýJš® ¢ãůTTX_{@Ñ2ŶIPxx»Å^Ý$™zÉXàåHuQï]¡íþä@ó¶_ëuߥéÛ‡u¿:—öá±?*‹]€§àW^ R=Y°€4мî:4úèwÏs# àò¬¿Û¡> ÊÈßþÑÀÀÈk€CÉøÆ‚оY6¹‡€ "~É«~[!Nul(SM1“ìò7 ¿{¼ÞŠðêA&Ê5ʼnE¥Ö•c[¿qPdƒø6` ˜³ Ô f ÞP0†qP1¨B`p²“|h÷!‡>ZA0%ý»âšóuøöAUUyæóÔ--¯4¾—£äŠ*rœ¬£*"è»  Âÿ•,¿Ýô(" ‡óâñº% J&g=Ϻ´—ãœY‹âßV¿qY –¾ìEËn“”‚å;€<®€<Žë¤ €%@ÚþcÀŸÝ€/?@ý? ÐcpöµT@0°@^¦ù‹¹æ¯ÂÏ4f"ê.6záÐâ›(>¾j»È|hÝà Œ- œèü¬1à7¼ PW™ØÔ°ÎáS=ª@ÒŸú<@ɨ{Ò𠊆ŗfRDýFó¤c’ñ!¿ï¼L½€¹‘É{Í*€"{}Yr@ѤÁš<4õýûUïhç&ó…2:ÚJÔ‰NkæéySw¼ÍªîœÛâšýö<çÙ 3-»’ÂmjU)=•" सʓC¼]íZ]¥YÎôF£ôœ·€X¸0öŸ,ÐàY5€úÀ°xºW| 6 `ÛíBÚXFÑ 8P¼ù•áE$0êý?Ô,Üp¯»,Wüawüjüzض‘™¸¾Çãf(ƒ¼ý[0»‚ ŒþW¨ä,€™€A1Ķ\…‚ÌN¶U¢„åq3LÆàQ]=©Ç4OýBð€ê¨¨* ˆ:×çÄœ«ÊKE¾ùdGé}Ói8‘#}’ ÿ¦ûÊaÿö}Éf§söxáóÝú’Åiþëï±êŒC6ÁéÍq4-\³¼MPÙA —_×"sîÈ (‘KQJKÙµ6€.† JÌÿàaõ5ü, ÿ¬øͯ‚4Ï.AÈV;ÓPÈ ÞèÅ[¤Îô¿äó?ÔóÆô µá¡—Ü`òηi®¦gwÙžêÎ¥µ²Ç(↉寇:AN˜Ð.@0¡ø˜¡ ³a›0—àpsO¢ïÏj£ØÁ†åþø¸YÄ»[¢xPÕp'* Ö&@AV•ÅR\òÎÕPh†Œ/cQÝš»ÚöÅÅϪ¼’2 „Cjù(´Æ5U¾• i14è€5hsÞYgd¹Ú4€ÂzÔŠ'UXq3©¦FÛ¿kÙ®Þ3P–¹–ó{Ì‚¤È-!ÒÖªÒ8Û|¶~i 2za 0~)šPltàèblÐ@m™ 9ƹ«”§kÇ-­¹ùu5>ŽiþÎwû/¹Z6]~Ü@kŠíY^XˆcÍÈÝм§A|1€5¦†‰g%z‚ €™„+ˆ»ð‚ Í‚`Èêú¼†&ÃB=Rà|r§^¡Àp~¡@ ^û4_/W„±fz2€Ê^õùšŠ;9@á7^«*Š¢*j4ßüR I y§T% RÀÙ;³zãl¯TµAм„TZAyè)E[p£VÇ÷ûWgÑ(n#£›PöeýÑ rXá»Ô›¡VÛß-ŠÀ@Å2 ðÒïÀRêc€ÀÃ@ Ø@^YvÙ»òÙOóKyþOÿ ™i¨)n’Sp@~>3ÿj¹ý¡if~†šaÀxð0À L@_ßA^ŸIXc@<¨S˜ÐÅ[˜`SC!@ª&rwd @é%ë¶ïE …Úšy´ÁGªEŒÊ^äüês[OðDFÍcE€ô_Ÿ—LõkÀÒÕQ¨,­´§ª&§<¿JÅüÇ·—‡Úå×ùýs;¬ÕD8Ü׺›õt €&‚PöÊËëÌ€âP°Ww{ÀÀ°eä£c()õ×ÿ+påüõ*Tý¿ 䃃¿ ð%@²0€ ÆC¿™ñW×oF8P¨#Áxèâ—œ´ø©ûû¶)×}8QfD™!Ë×2Æ!ã;Ö˜„œ¨SØÔÉ ¶QÀ¸ÆŠ##*ù%þi^Æ€ÁµÓE @BÁ÷Žÿ 7N_™c(àQMíÓQ®F®¸û†=#5 Eæ\?k.Öcœöyõ­Ëºöœ}*Û¨tö—&(EÔs¼ˆ„õV€°û®V¾ôÐÞRE”=™çÔê”EY¨¤Õº('ó/©¥ Œ°ùÚë# ²’î¼Î“¶1´[Øòwø'¨æKÊw~ŠÄ’1 “8GÔ ©pú ¦Áõ[v^Ûý(Իnj¡V<ô¢üxõ2Å•;zÁ%攨ÞÃ÷_€qJЯÞ˜Í)Ö@]¥pt`c´Q¨¾˜>ÿŸ{‚¶àK h‚¢%ÝÍárðÎè5ºä|iEDTU‘íMuãuêϺ,öþþGÓ\U³²Þ¶ñ:O{,ν™¯T™Ž‚jT¬@¡¥îUªg°0PšÆ¹,ëG{n³"23 vmç±·àÌÈUï¥tš#ÐüáËÑpÍ€ºý `´³ú  (åI°ÞFúÎ/êÀ Í×À úÍ’]õºø’Àl6àÈŽ@6›&~ø%ó×÷ÓÈôŸÿ̬ ½p°^ßt-´>SxRv½‡/Ú€ÑRý;ï&ˆæü5À`‚tÀ 4‡L`#!E``À—a54-$­)pJœd€Ðº‹Åc» @µÑЍ  –ÍS‘ÊåÚY  JXéñÛ¡?ŸÓ.ÑXß\]-ß45oùíÉý8Ê™ —RE=ÞW÷d”¤ÂÝŸÖsϬ…šQòPÞÓQ6JÊò7ãù­ØŠn‡SJ²¦˜I.™«àòwÇßÅù?öãÌc¸jŠ+ÊC€ °ÿ³¦‚>L%XCB0^6 O0“p£ÇÀ“.©@$ …´}œóTzºôw¼ä*›"BdPˆöT@û  €´¦ ‰‡ €˜+[áN]Ñæ[XŠ-/ ››)Ddè]H¦"¿§¯Ð÷}yR­5q@?VÅA>vkíØjå$Yå¯/òšfšµCÄ(Æf#½°4Ýë:J‹Åà…ŸU€Aýµ. €_ O?ühop<E€L@~9Æo²þ†ú2ÂVÌŒ©¦X)†ƒOÁÏë7½šž Ø@kÆë2SÈê¬(œ+bÙŒø>` ñ45Dä0SÃ@·Ï0†qejA=.L¿¢!àÁTÆ®Ñ;3ëG7o—.Z× $£Õ¤î”O«Ïözi PÕd}iM@UEÒW蓃ì½ì‰ ¡I#¥4rÚžûÞ#)QŒZU§NA£˜õ°¾jÔe’t/`Êòßo>zõS‹#À0q®~@,;oÍ: Íx4@ýÇ¥Aàù/ˆ¿¯@å'(@¦¦wØ 6Áø,Ž€ Mo^¦ù‹Ä·Ð°4ýe„­‘í@¢ÎÆF/1´Ü¿i¶¥íí¡¶Fæ{ë=œ"‹2ޝ­1nô2è×n0»‚ó?êi˜PtÆAÜrEh5Ϻl4}2ÈæƒàÔƒB²¹ø¢AQïgí–Ê€09VQæçTnxŠÅþ-LW’áÛy]îj3p.‹‡ž–óaÏ­b ú®ë¥ú¤B ‰´Ç-ÝÕ–”´iŒ8ÿ[©Ú“–­€ àa°À‚ôØþv€‘ïb+óÍ€òW@/†ß¤cÿµªàˆ—l¡• x PÄþøÅÙëÿïdæž÷¿° ÈpÕ†‹^šoÿw¬5êùj½+Æ¡ ò=à4øRêé˜PT€`B[ A+ÉÑ €z@Áƒà•ÛeJ¬t+OŸ^÷« Xž7‘ù9`Ùù²ŸS{Ó&ê­õ(°d•ð)o_È;K~½ÇjéÆyvx¾ím즷ÇÃë|[3É8ðb®â´„ Yø“C§"Jn㾜ި>Mã£#uµL ø¬È°Ÿ@ƒA£†j¼ºê€l9®š €ù >ìW$hÀ¿| ¾€40-ü€ÒeƒE†b†þƒWs#âGã“¡ž‚ÌTÖŠ‘`0xŠÈŽP>[N†:l8êlœ˜ ¥(ÊT™jË~(²m˜@cN+€:A:˜Ðã :ª²nš±÷ÔÄ0ë *ùb÷¹ReT û]ŸºÇO¾V}/Í€aîæësUÐÜUÄÜ]Ö±YÁ®GoL/v‡€å>›½û{//o®ÙW´UÒ V×i¦v’æ «õo][ª×mŒ ‘ÕèŸFåýkÏ…’ ÀÐJŸ+æú K˜­©S 0µí× Kö ëäÊ`(€ümb WÿWÖ7߀ÔAs?«õH¾t 4bÛÞHƒw‰¿C¬Ý_i›i¬)fŽ]æ. óáCºÿ‡õqÃQ3®7NE”w°Æ60çC@4!Ì”AœÃçc#¦VAŠD>DÏ÷  k®b½—ë;J.ptüpêÉ“µgR¡êª¿áÕ¨ÁÀEt¨¨V ŠÈEL€Í²“¶ÕµÀ®Ç‚ž¤0U€yKÇ÷Fï_CŸ?ò´Ï ‹Ç}?µþzëÞW/í°UÔûtßǶU au+Èv*@ ÀT¾7$žƒZîÀn€‡ºU/€ý?­*e€Àw>ÿ¶ À|]Y@Õ_Ið0:Z U ã)Pd€žI¹—€ (~%?š¾ µ 2C¬)VŽÅÀ]ð…úº¦7#¼4È„P3^Ý™eÊ:23ÎÊì7E¦‚ø`a¨« €™€Nèö€€1Œ‚Š!.‚ Ù&¢YÇ šÐ|=As4mp$ºt«ÇUQ) DüÇÔ¾a¸"9sÌßf'dH6^›ì>|Å€šƒ£-‹¢¨²úY„¿kôÍ?Š €^2²žç^³ýèj0“Ó‘ˆV z| åîž›€1¨Ó¾    ¤N;Ãc`jÐ ØæÎk-½·€ï¡AÊO0€þðÇI´ ¡PÁíš! ^)Æ™«¤oÖ†;ÃoÃLwQgÅC/7|÷»o׆›Ÿ\ïÈö>0‚ÞX`‚l 8  Láè@ðð(¤ çó¤R¨òÔœR îdV¼ð>ù…T (ÀæG†fr®¾šg;¹Ê@ñß|í÷|¿ª4HY©iâÕÙfZÊåÔ›WÒé>öV’D@JÕJ‹>7ýÜG›{ÚgwÜò#ÕšÉN‚ªgœÞùrîºÝ¦ÔÆžÆ>ï²n€†,èûŽT(HŽþéÇkí—à7ËÀð¿÷°€ =UÀba˜ß¥„>Ü6¨™¸aÓŒ¦B þø…¹ÛÿëdæK¸ÿ…ßiË𬠻xXñ„ËÍø«žÝåÁæ»Ö]21"3†écfžÝ#ŒÃúÎïJh\ÁùÀzøu•n6 ã‚1ºR!ØÏ}›¹Û»ê£Ó5RË@¡à÷o$‚½æ "`½ñmUDUîÓ­ z´8@•( ‡[î}ÝõžsÐç¦VêG¿÷õÇ"ûuŸ¾üZžu{Ùs#SF(å¡è@òRƒõ9Ù WX~ 5äëòÿ¹æ†¨š˜0_˜rú½×.Í`\¸Å 0 @€f@ýù%hµ0ÒžP ê£u{ƒOggSÀÏHÑ|­ îeº^ÿÿÿÿ ÿÿÿÿÿ ÿÿ ÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿ ÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿ ÿÿÿ ÿ ÿ> ¦ù‹±£é³ëV„‡!¥Z1Lv¿tØ ¿Ú • D] EÉêYÄÙdK,‡"ó Äß Ìæ¼ÔUN`B‚ ÝÀ窷35ùíôt’âRF>ŽÏÙô(,½œö9@n¦/SI‡ð FíõΛÑWäP4™ö{WÆJQ£ç–©¸ÝèÅô^o­zI¿1"ALš%e¹ë¤ä€ZgþK"#“]tHèË’µŒ(ó˜Ç~éQô`±ûßݤçÀºtác÷¾šªÞ7€;[OÀ,°½âúZXBÝO€>„·/€@ø Àw×€øéSh@üÚ’ (bìæ6;lp€é²Ifù‹ä_!éj|K¯1¥$ëªI–¹»ü‹_ò¡Þÿ\À™kʼn3×îã¼ur9ÆŠ8 æe³ aWu‚$€Ù ® Þî0†1j "„ rK¥ÚÜÍig|žR„ó3·@Ò¤wã·Ë%só‘à ?üØÝ?îõT>©  "r—YK<(Ññµ½g%&&÷Ћy–;ö[çÑsy; ª .þ`åzm©£ÂvíM.Â4˜/ãÀ¹ïþš'ª”^dþúTI–eT À—0Þÿà+”/@ùãKÀ@ê?þsx j¸l p°Á¾I–Ù—€€$>·GÃ#¼ò¨äjŠ›d—yþ(-¾ÿ3àò#p¬)NŒêJykŠèñkl@<›@f Ü A€«M‡ÒçO""“ëÑëjVªEÿv]ôÇi x|oÊé?³Àíg' 0°<ùæpAj=œÕ:#Íê:Ï·ÁýÔ¬Ò;ô2ú«l IjµueQòãÓÜ_P0q€Œ®  Q¸€tCßFJZ€èëÿó‡7-cÀòß*¸8!‹?¿V ê'¯ùù¥ˆü 0@^Ö‡„Ÿ’ãÕüU„—Ž™Ÿ¸îb£— Nï×Åv5ýW¨9`~r½3br"CëüY‘ãÆeÇWÌPÁÝu•*DN¸)ÒÿÉÛÝ-x7œåͦÆQœ¡YŸ<„!ã•â³UV‚ÉéÇZsêTTõµ*ª¨ž”ö¿?5ÈP<ô·éáq¯4Sn—ö~-Ó§šƒÚ \ê;«²´” VT¨û‚’³œPÀº ÜêgÕ´@À`@?à|úÿʲêRUÄû›eÀ»~}Õ2˜Ê__ ø®]9À_<‡»¼¬zï @j‹.ÄUA ŸÞ ¢¢š~Ë|ßqzÚºØsƒdÛ¹Z­W/Ìξäêþ¬ÎÎhì> Ñ¼l¥Š €ô߯=50Ìt°´ÉãWc‡KÍ…F“¦  x)óqyÉXRò¼ÀÜ"`À¼ú_ô™ß­€Çêï ø—iÿâ<Ö`J@eþøå†ÝýÛbO.o…ß.(ÕŠ_bØê·Ž8ù£õž¡^(‰¸îâ“ @«uÐØ”óS€ÞR'H8z¼\€`B«À·TE`i­>|j @’ìl;±GÎ £;ä矟¯6¹GÁ€*»¢ Ñß—ªzФ€Ç˜¡W—<U­‡uïËýzì[]ÿêç,n ÐT;i©µt;óŒßŸ­ì 5IƒŠ]¿½ç$6î¶Q+äÖšvÆâããÓ­°‘ÂÓVrO²ëìÕÅ?~Ö¥í¥-{Ùv£¬×4áØG7¶)1¶z lšbMžÒ0à Ù„ ä@VÈ`žIÁMÒWèkóÛÿ<2£¨Û˜9¦Á‡€@Ø>ÓBûýÓVhÍ0‘Dõ¤Ž,&§Ö7ªlþ³7€ÙDd¼J°x‚€ ÂäAŠ!-\ƒÙÝÞÂÐèך„WQàê…-Òf <¾`_òsƒã£ÔUF/úЗ‹EVŸf¯þµÎ˜µìsnÕ¬¸wž-jœyæ@„î®k‚:¢T³ªD3ª©b-d¯ŸVs+™Hõ&äRDO¾Î~€=ÀЏÇüŸºòI|h°e²‚ÿóKÀ(XoWÄ?Ÿ JjŽ 0 ¾Y6™§HX@ïøhþa¨•b“M² ®¿æÕx3Ô‹8Dv½†ãÆ QAÜÖ˜€O0{\\L0*^@!„ ³ ôDˆ^/2!h‘­û‚sÉQQÈ¿—¹/T ÄÇ%@Åɘˆ ‹í‰ ú†ì-O™r?µ-r”Ç5h¶bQ>ÉñWþÞ6—XöŒºîˆ¥s©ñ½JW|¼š‘¨Å¥Ž Ê+ݲ¥A]Ê…` •0†2ÁØã¡sÌI–>óÄ„ã€Eð–üÿ; HOê߯ õÑà_84Ð X€€Ò †CC%ò¯^ÿ2üS”¤¬¿th+ñDüt½ÿ‡zJ$jÉBFePœžæ›2®N`‚LÀÜ ögu‚t°išÃWHÕ".€ävôz§ÔO°kôéa¡L™›sR@u±(­‚èég¼—RÜ3T@Ñš7TD‡@–/Nd¬€©­Ty´œÁßçžý+l®ÖWÏïýô3m—7#v_2œ”yz¶ž.™#©(*O!Ù##+Ô³6¸™Lëb\XZ<€ÎΟX °€|%É7ÀÏ P—púG 0@BOÉŽf}26q€A –öUÂRTâËòü¶ãkÅÂ.(ïÞLóÑådBm ¥«÷p"Vˆúcn½îîa\0@ô—S ÌpA±êi˜I裂1ZR!ŽîÔä¯ý4»ÆCA¬ ¡A(cHðêÕ‰†˜á+wÒ]'ßLWÐ D@ìSÓ  ½Ý›Ò{¿ïÅ”V½×Ä¢5—¾èïž«íÒ}óZc÷¯7*sÏÚ ˆ‡_?ŸÏ•…EÎE¸'¨'‰>60OºÍÔÀå¶x1£R¯öñ’Ké ,, ×`1€ú@þd> üý=ÈÆ¿]-ü°ÑP~k  d{7PA6~èµrß°³Ö]Âß#Ô†…^+¿ÞŸÝ”¬å®ÔPÊ­{¸`Ü(2È/jw@£¥N0¡9Á­Ÿ£*€Œ@Ñ! ¹±šxÜÛ¼28ÚXe}^D€§˜PõÀé¼|µH¥åq†AÛ9à¶EN Ö›ñÞ7K©‹þÜ•EÍ‹ñ[ºqÎGô“åÜ5¡¤è+íOII¸ssÏN-î©Fh€¡‘(ªê^¢!Y®Ç2›É©¥9I2ß{ΪsFÖßþˆÑáøÿþP7à À}+”¾o@HZ)1Gxø³Î%C€/Ï€pÙ€¤˜P™T‚`Ä>2~9¹‹ ãùëa‡R–u5VŠqî)ø`ývø¨ÍÐ)¨'¦ŒŒ¨)'î¤q(r<ñçkL sêê9` êñð@0ydBq‡ÕZwÆÑý(5ÿ}¸¸ŠB†i§šº¢AüÇqÁ•\ŠýIyþâÆN3€J­>` €h¬¹/*ˆ €ˆÊÏÞš 0â»b‚´²%×{ø^Çhö~|i¬¿¾®Ÿ^çfjwA}^U•ÐgDþüW«—Zªd‘€5”;F Pãµ^««À:¨€ÀÞõwq6¼ËšÇ ©=] €­ÿ\ù©Þ+õo €ÁÉlÂߨm0¼Ëm086ÞYvöC|Ä﯆?F]S’L5ÅL²É\ý£€îüÑøfØN  nã €q(¢„ø`A‚ûuB˜ (Ñ&aT¼`ˆ E”^{~$žÂö…†X)À£ôç$xð%g›ÊÈtÿ@yRÕ&`é~8«§IåÄåS “t Þš™-:û“ÌÀ*Ý=ž_øëçN9ÆÊœæb͘@s²ò:} ©Áò[Ô²…Ø•¬dí·²Ÿž¹(¨ k6$ ª0 ¤¿v €[×ÿÖ>T¨Hýþ³Põ×5àç?@ýà_i@À7€lÀ@s^)Æ?¬h×_]Þ ¿§,kÆÉ0|øc…F|©ïÿ¡öÌ­T+L ™¢ÌJf¹Ï臲Îij N3 Œ·€Œƒ‚«@•L`Þ8r¶iÙÿ¼á« d<Ô9JPP9AŒ˜ž›"ª H4näÖ±:½ƒ‚=Gž«qj_½xß/9_‰„³`«©ö¤V‡ЭV†”:­ÃŠ•* œzôN\ìIÜÛ¦Ê6™\~ÅÆ¬T+ á®ZêuGT€œ¡S:äÑ×½]³±PA”nˆõôI­~mb% ,h!}ï°a—£Û¢þ¨ÿ`ÿ+ý/¬:´é#GÄ@ÁAS6Þƃ[ÉOæ£ý[ÚFZgc£ŽßgšáÑúΰ­ÁLWïáDˆŒÉÌ(ïY<Ƹ1ÀúêµfWPùÍ=AÀ„àLh« €õÒªÔøøkè˜Cޱ‰WØ_%>€ú½¼<˜A³ä7·Ê— €pk¾š€J/)wíèêZÏuy{_ÖeŃÈk½-ÛõêýÖŽ*{dÜÓ>?â.È!Àå4…ý«í9s5ª`ì³ýJ²TÚ“­ K°c Ê“´–Ê_«x:”@<Ý“0fˆo½~]C‡ßx¾$õ?M¨ù$ƒBh& žøù«¤»ˆxÉ?ÿõÂÛŒ¡Vlô²lñ/Çé~kýö°=s›‰Ö;|áÖÀØÑ‚ DWð0_¿nÔ R˜Ð`Œ.ÀOå"`îloª~ž7fê[@€(ìóÊ»éœ'!#Úç@ð [§_osäNÒqḇQ@©5½®‹¼»¢îD”Ów]ÓR}ÑÍ‹wÔ•4Ͻo͹mg|½v »ò`WêPƒ ï9ÌLV¾øó%ëÈT¡å!‰¦£Æ¯•»(, FØ93Æ€‚…RàAc—aá­òÒ‚¢'ÝkÈ*-øø)ðòoÎøøR€ øš @ @ôÖø4 lî0ÐÖÀ>ÆÙ‹_ØQË¿z==üà eY×âd˜e·~`#-~¶{z¨±ÄR5ãÄH‘d½uób±Ç¡ÈÜwfsZÑé ˜ ¸ÑÎ:)@ DÕϺü›ÑzÑÍŸãkQ‹ ¤«óêøf¿ûµûÂDBÔhzñÁPzCS¢€ˆì†"ý¡i–ûäT‘Š;Èúáìì~¿†Ë5+Îê§Ñ?»FÍHUR´ÞÚÉ÷† @V;éët×ê”ì¸(È0ɨùZ:¯ÿ›t•LÇèdÀ¢(Ð)pã ï^’ À[m (,ç(¾ùåØ&°ôÂ? À#ÿb‰_ÀmS2#À†°Ñ¾IÖÁ]Ò§èÖ7ýxø½°¤šd’]øüQüîúK¾ÿ…o82`Í8)*§õöcßçå8Ñ âÚ¬!¡¥N0›€ =îðÆ0¶0„ܰÖMí›_4P$ºír»ÈΟšJ:m€€¨ìª1¸#‚›ës +r’Uälð•Þ®+€ +@úà ç@ „(Íì¯üúðvvUƯ¬ßvCÍ1ªÈîê×ÿž ”–Ê•¿r­d°ó2^  í÷ñ÷Ûå²û”Ö÷ä~«Ùh~ x9×xý¶ ¤o,À/À’ áø’1‚àæ ~9–ù›Ð¯E؊٨ 5ÅJ±ÈÝýš€F÷[Ó£HÍ81Eõ«=Z«’ö¦œw•ÀæüÔ a¦AÍá00 ŽB…@ïÐz'ŒæÅVù>i°^¼ÀCU&‡€ÞOÌ$A WCתˆ :² ˆ€$?˜Â=W§mrFÀÕ ÕS©ˆ¾,ÿ˜Åœc•½m¨%W_§VˆSyìv{o-²ÐÅJÜù—U…-) @ Ô‡TP±³(yù¾T`Ô•æWâ:ïpó"0X&@ü#rg¯l  ©Z¨¿’Pÿ2_ûŸÚ€Áθ-€‹82`Ø`^)Áöw9 ?þÕ˜Ì®ÛøøÙñû¸ñ·Æÿjd¦\ïÈ‹Œm È€ ¿3Àìgás%DˆA0µ­"€4=© xg<ã"iHd¬ ¦µæt ¨‚¯šoTgè ý/€¢Aß Aô7Û+¤dÐÿWSª Ò“‰êWØ$,/¦•ýÁÌ–ÍþP{êÒž¤Tìzq|¬ìß·9$ÙÄL5«&yäžÊJ÷¸rg˜öyȲ۵•rè À ¬í@Õ.bôq}÷Ä^ Œq(ü.æ¿ €€¿}H~AÀ¼‡€â€V'Tà (à°žøEÙ»?n¨t¿Éïf3•µbb—fÊóO7êo w%õÄÁŒ­÷È €qAåÄÿÐ º‚SÀZ?Ku‚œ`& Ñj@0F[UåaW:ä‚Q-[ ~5Í”œúz‘Ý"…ì“OzJ`ôÏ@f«'"«Ò*€}]xmå˜êE¯Ö–ÔÝÁV ™CRÿî«ÖëX5ïtÉX:÷þã¹ì³Ú娤fú9À«?>®/ÎbNJ\ VÎ_V9¢¥®ô¢  COÝ]Iñ_R@1°¥¯á,®`aÀëŸÌOŸ ]àÛÿ?°| 4CC¡öÞ @S l¥)^)ÆÙ«©‘?›ßû‘”D]•ašÛŠH:iá³ñöðåº¯Ô …TžETÏõ[å‡"N„ù]fñ¼Ô Ò0q £x*€†dMê¼;Ö¸>9ÉÍf¯õÞ ã§3Ÿ ‡ydÅGÙ©¨Ö¦€©@“'‘ÈÚÊœÛh™ûôOwy»tçb¢šqÔÞõLW[qßXP½ïci­^# X ‚V(õ<_ iæôså+t€ŽN`—:Î쟾Y`x Á"Òª=-ƒ‘«rlÀÁÿû‹Àˆo ðÙ¿€Ap I&–‘,Ø4¶04 >IÖù‹€@,~»þjy{ÒaÌLCM1“ì‚§€I|Fü]lÿö"Ó5ÅcŽ/@‘ãy0ï °Æ&L„} ‹'Ș<0†‘)BB€)¸ýã^×&i(!Õ¬c3ñqÎl5{JáÐ\@@'k/fB@åëÏg4±R§ãi÷ì§×¬°¥£ªñôîŸ,ï}ùÓ2·Wšjw= öÉk·]¯»{,F>U`Ô‡ûúu+ Мz/ Ƽ‰ T´¨ðàÀ+隬àµÿÉ€€Ÿ~ŸO,À/>ùߪûаöþÆxm.•·ÿ’@Ó†jc€@>IfÙ§€€,#ÈÿS.?”rª)fŽ}ö. 0ËÏôj> õa™PkŠ aöu'EëL–M nk,˜ëÕsq‚ôÌ4°èƒ7ó^ÀFn &ù{ï!ŒöîÖx‘AÛiÍŒªþ¬µ€ŒÑZ-à·oùy×^8{u®ª Š¾Duí­ª*€*ïñÝ]Q%R»aªÁZîL[Yθ+F_ŸÏ?Û±˜£öÀ-¹Û®I€sŠåìöûMváÑÖP€z@‘ŠO>š /à–ÿ,Øñ7õú€ ¤ù7§ `À†lø’P0^ÖÁ!b(Ðô«ËÿŒ­påÉŒ²®Š_~hñC¥†æ·\{NyõWŒm`ÄÀð€án€:AZ&t ס"rú’z0C>°‘H(!øžûkˆÏ €‚ ýÞ ܼÿ‘8èR‘@R=7hǾώ¬KÊj­4·PÛPÕä{Ý&,žÕ9ýáoœì¿®ûÒÖ¤F}3ßvû1æ°er6¨—z¸jJïY¤LÕm/ËÍ9*e(Qcüj \®`}ú—cÞm¥.€á© X¿ü΀2 þY€4¿ BþjJþ]6ý¬Öq(¦>J à6ùÕÙ­ˆÉÉö»úþþUŽÚðÐKŠ_šnø½q¤¬Ÿí¢«÷ð…0nPNü;ó€ÙT@ÿ;Ô ’fµLhC\…À@x1V¤‹‚L2’=,ª;€WÃÚ·[<à¬3 @ñS—wž:zzš^ @ɦܙ¢ˆÊÀTÒ(¢êJkóïKÒ=ž½C“rm]“WËâŒÙ¬ÿmzw­ëmnpA÷ÔM’Æå¬Ü´ùèýî6F%CV.t ¥¿% êÁàÎz­d(äš  ,8þý  ÿóï`¨É¯-h‚;ŸÝ§ò¥ØŸe*à) ÅC0 †ù‹_èöÙøõØÅ— 2_¡ÎÅH0\ýúÃÞ~5Ž ÿêC¦KÔµ8Q„Ź(Ïßóú9(â|˜w©€Ù¡N0¡ÇÀ™€`ì ¼T$ªA e¯{dÄ» ¹v_>§AÁ*óª^@…%NµR€»aC@¯âw¼¶Î$}è×WæV\§dR¡§«´¸h于.9ÓF-ó"F÷yq±¡dŸÛ_/Ï®ÌBãP2@*íþF-}׎M —V@tNNÿýøÚ€ºË²_~{©¯[Xærß‹X¬Èj @øx˜þY@  @Òª@ì¿tü“ÂNÁÀö^IÖÙS¨…WËŸÎ<¶+†º3Ç1{˜øÜá“ó/Ô+G†«fœHeåy(]ØGìÆHOù‡Û¦ñ, ®ò-€Ù€ª^üŒa bL!€”Wµßœ+¸òJ½~öl!ˆ6ßÇ «"{K…dÀ ³Ä…¡6€øgMέGŠˆ$`Š¥Y@¼rô!?Ü´`F–ÿZ0`2û.õ5°[Ýx3h@k–Á¸-`~øåswÿ0Hé>µÿÒ™„Úðð‹òÝ;,SâgN\©•”©îâ €ePýÓï^&D‡:AN˜Ð.@0ëÀK!!€Œ$«›¸® %”#ãÄPEæ’Æ¬ÕU÷äUÏC¼5¸:8<“„-œ˜Z>ÍCoÿ§:¦’‡õúà.¨ªšìHJUÑ]¬·Ž…_z¡=ÃÈŠÔ½e£{š˜@­8À\¯ùN’ÙPyÉÚ3.d©©Í½â+[ª5µö¿ùÓ`à†*Ö~4RBض÷ÔÀ~ €¯òÆØ$u]âuØp›`ž9Æ™«¹£fé~føc†«^cæg^"È ºõÝOF8f 5ãÄŒ”QÔT‰¬«}ý6E<A—ßïfs":AÞ˜éÃYô¸/ Å?ÌŒC~¾SÛ„,`òטÅ9‹*¯¯Ë%ÓÝ? ¢¶ºá,¥¨T IŠ0¼v¨**Ðÿ·£bÙ@@‘•Ù…  Ã@°’Ïvä–›$Kþ8gž³ì¯«¯ŸVnÉœ"7 Õ(K_VhN1h©¨}§ùøpí㈷D›ÁŒÑ(ètS`qïí1­CÅÖ{o‚°Ü ˆ¤)fÈÕMÀéÔ‡Ý6€ ÞYvöC@ÈoëÍïÿØ‘™„šâ&¹7赟gx´ü0ö³K¥˜¯X3®q=µ¬! h/êé˜I€.Þ0ÁUÈDAñ‰S+@tðÙWU¶®@TFž»¹þ»Q'8.F(9xiMLˈö/TTý?~¬€¢©»!ê~~1€ä²¶ìZ½83ePº;Ê‹¥ÝX;Õí½úéQfsqN÷ƾŸÇvůfî:dTÐ乌ÉdùŒ‘æ8ýŸ©fX|M[4(âá£÷gœ/ _$¬€øˆùá10ñ 2(^¦¹›ˆT>¾~¶c¦¡fŒûwˆGË›¡Ï‰ Zq"RT+‘EÍAU¿ 2~˜Íij NaSƒðÀ ®*FBõéôpÇ|ů‘zÑÊé.àÝ¡>¥à´y«usm:Tú΢ ‚®srr¥Ý¥z`=ëiöÊ8ó’×Þ¯ëº_z3 ¦döx_®ëì B›60þò×UÕJ¨}dàòh]í*£É(0ÀÐçÀ½ß»D-`ø¢Þ?±Àw½rS † 8 À6¾ó~(YØXHâØÉï0†ý`ŠBüV°Cëñé_‚ ЊÉæ‡HW]S p^æ†.þ©‘ájyK¶g¸×µxèùî—Ê´þ£é/“£èb¦®ïÈ €ñ¨d(WÌ®àö7 ê*%€™€@1Ƶ# !ks.ývÌê×H·«­a •Úí"rвf2(@?8±þókB8Ô¯÷0d¦@%EÕP¡ÆL/`µˆ‘`ô q÷/˜¨$Tþ+È)¾þ^x¾!A–§dPpà‚Á+€°7¾Ø%.~¥Èñâû/vÕ°6\ìÂîߺ9^Íïê•‚Rv]‡?È[€‡rbåï9 ŠçÔ Ò Àæé`ëÀ ©"àóûßZ*D, “(Ý{#@Qµ»˜—é4¨¶‘ €óÐ7ª•îÌ4U€••J9³ëÊÎp¶zöÁÞÚ&•¾¦‰ÝžÅsÍusUgq9}E·»Ç+wÒ’€Æ¬2ÜR šê>@饾T9a4 ëõÞéSÆ×@Ò‚¢€Ïgü2ÈsÎýpÿöÜÛò, JÈèÁÿ¹` €0¿ÿg àŒ_€KêŒ 2ohz@Aª€ƒEi~96ù]Dä„®ý;Ã>¬(QWÅK±ÈÝD*ºæ­ð¯>)×'FÔVe¡º›qã PdO„v 5Ìiê„0¡ÇœŒÑQA¤ùER—olO)6OFÊd:¡èccuÑâ}@üëÑ;ñÐ JyxÖC[¿Ð ïò£°—ÌkÆH°ÚÞ kw3ì-Ÿ ¤V| cÚýŒåPäx:˜Ì&Bóùu‚ôÌÔ°èqTÀDP1UpìëZc hEC¬$ìû„.q¥žËÓÓ© †¾†_´—æl",%ìBˆïvè€T#§ ŠlúAÔ\C^9òcˆ*ªˆˆal6í¡P&)ãœt؆fb˜$´Êj›VÖáöÿ€v}ÔÓÏ|‰š±Ñ«óõ{«>ZŸêåCfºº‡+ÆÊ ¿ø˜`ö€ þP'È8‚ ‚1êr… (VxÐàkÍMÀ-xÀÀ@³“=—¹ò—‹ÎWn• €¸ˆ4ÎÍàëøÓtÔJ@W/AÃÚCDï-§/UJÝTÜ>ûËZkÝ»½ÖðÚŽ·îŠï£N±µôSN•æLJÅÃ…á­zš §i1%»ú &@ %Yª¸5¢Àr,8€àþÇwƒåj« §AJû”ððõãR¬€ „Û4ä Ù9>°Aþø¥¹‹,2ò*¾ÿEØ£"© »8ßüÊròGóì¡&êյ䅷½¥ˆL zÀ#@Ô ²fÍ¡&p^*ÑÉ@÷·°ê•H©2ÈÉ¢I×<Êâ©(aÕœeûùp žÛîø!ƒ`NPËà*Œ 4Õ€•J$‘õ­Øå D©«OxP4íñÀ^¼m½ÏíÕÕ×GÅ2Š­¦Øy¸~u L…J烥î\¼À^ƒª«ñ´HÓ* JÃÝ20Ú¬ZºÀ€?3~€g ˜ê‘à€Sž·AF`^)ù»ˆ±ñUß È ²¦XÆWh„϶§Gܘ fœ(Cʬˆ²h…ÝRDwˆ?P³xÞê¹LèñЂÉEU¢cÔ¼&q¤D´q|•š9Êéá„€3/2IÛ1€XG]t*¦* €(ªòê³K‚Eþ?K¦Õ!K©´‹µs˜‚– Sk—Õþå䌊““}i¿Y±‚)½ò·¬®–}ÕÀ³blæñÒPúýéÌì¥%oÔ®=ùæ›þcv¥Eq_ŸÆ¨h5€WuÅmðwöT¡Þa@v4@ƒ¶ð7¢ë´ôcóZ>cȰ¾IÖ™»€ PünWÇŸB˜1Ö3É.óˆäoÆ_ÊóøcZS š‘‘eÝŠØÕj“ãÆYˆãxAÐÇÀâù@ 7€™„*¨ÛÆ$ŠWBÀrU¾áÈxõÍ¢†Ó£Ì+dpͧq.mðžLE_0•6xBÉHõ÷>4ó¨Îb*tq¨(è¥Ô*ô2öq!ª:¯+‹Õo<šÞö»¹Ýµx{ZmGó_wõb½1Ôt@$½ú_Z])Pb’­câÀó¬­T3_Tí@ÒŲ.O²o_ý¿€o»0Tþ¾@€üÿ¡`·êl€ О9¦Ù—€À¤¿“~ëþ2ü 6c¨)^Žiî!" è´Ëxÿ¿‡9°nãDQDDÔäj•{Ùñ0q˜ V‘Ïßu‚ €™ c2(ØŠ€Š¦õÕŽiYŒkº™ÌxRíEÅ €œ·|”Ò®Œ$Ó;LX©Ü „PP¢x·PÖWÖDеMiQ€~R™SÂ3 * ÒÇR—;9ˆ9u"Ê„²H`ÛîUn7:@Õ=Ú~³6Œ" °Ýª¦·10ì§åÙ,«æî^gV¢üðíßÞ lÛH`lYwý àË÷°Ë_Mÿ ‹§À¦z`€ (}>¦öå¿jëo O^J6¨V8ô’¹åì¥F~4ýyJtÚŒ®÷ðZ,ì‰ÖHYï=ǧùåÄÌpÃ]ê9`BqÐŒÑ+`~À=ˆRYz.Á‹±Y¯kk¯Ä‡Q–/@í .")ò{òWj €ªJãç.* ¨ ® ¿þ²_3s棾w. cQ#•Y9rb÷<ÀÁj¥“ ;$9YC³¸è¬çb¨{qÀ´{@½Š7\ûl5¶ 耵 4ÐlÇ¡ŽsüÉ×O’—®·ÄüCXú[pƒÀ×ùE( š Æ@Á0´L3ù¥™ëgu4õO†?2Ú Ñ+³å³wwêG}+lGĄ̈õ¯Ýˆl¹ëbêkS;('þS½}@tàï@NÀLBÍáA@0F«À …*>it1§ ¦’1ËF~º¯ž[J²Ü0øÎ¿«…ܧ¶7ÃÙÖÄVx]×EÝO·*€ÀÁ #¢ÍqSRéÎñüÍØÛÙ·T^×E^Í¥†àÒô\\f)ØæóÇÏõj™z°*€ûxéâÂÒPîzŠJÿöHý+£8›¸ÊhôÂütw3uÏ {ŠR‚º‡/f€q£ ˆ&~þÅ-=@‰7:A:˜P<4€`Bà§*–––û»™L‡b-RBÊ„ê÷sÉÅg€¢…²uЬA¼"j’÷@Bñ¹´‰¿Ÿg5Kp9Kº¢#” ¢¶ÉkCµ¼´î(`M¼UÅoi’UMÝœô.ë —ûõ®‡yRUѽZm–Ùûìik+ãrÜ[ ßçG…u`â-’,€œTÓ¬0+aDÕ¬P/F?zÞy <^€—©~íÇ’ÿ06ß± •¿JÈ’q4üÚ5Hà ?lÀAË„Žþ§U÷÷~«AãÓMf ºÿ¶Üàíz:Û:u|]>0!ÔŠC ¢hv1Q§ìûF7 œXyo€Ù ÎB 0 â` ªª"k©,uô­ÁýQC¡¤üßÝ@ñ÷å{‚²wxA24ä\jùìWïm÷§}œy©Ôë9YÿvFܪ`›F#®ï¡¦S2(™^Úx9@/¿ÚM™êB¡rH›~~[3t`± ~,6Å× Àó×büaï¥ Ü@ò÷s  ~ëþ?}Ùвç›ê+x3Ò`çB N•Mß—bh`€>È%r·û}ÐD<ÿL&ÀµâŸ ^Ï{’iQÇÓE#­¼¸cÎ0¹ï€ k"M¦ Z]®BÀøâý©*Z‚ .@`-É%HžŒÛTø½¹­ ¶òyP"‘ï>,—t¹…íNõ“óͽG“•¯Sw¼²ëÌçßåõÔúaÎI‰u/úË‹ÁÞh ¹¼V“PÍâ†ñâP”è™Ü õzÁߪ”ÛKþÊý`Œ$†eÆã®!¶«<é)ÂÈ<2yO÷´7õ5@€=î¿62 ~Üàż¼Ë!v˜¯¡;Á@bàFå2âPé€þ§w*h¸äùW:<¨³ ws‡MÔý4+׊/bŒxô€"Û† kÊ×òâ¯aŽ:…U$䪊œXÍ/¿ ÉSaD*€Àl3èzý——+)Á{*ÚÃM ˜Ü•Ýyö îÌ«)¶÷,Ï­µ\š” wùôûå²×«êÒü}yýër»SÎ~qUÓÔ_çßO9˜x"ÍmÂ0¶8{ÝŽ·•È鞀¦Â>g_~{˜uÀŒ½¥jóDb¿Â àÈltM°ùÞÑT¬  T~ÔßQŠà˜3À6 ¿‡2c  8Bi2v´ñ-gÌ6Áh;šª 3;ç þ‡ÙûùT±½ÓÖ˜j#Y˜yîOƒ¦&ìwêSj&/r€£ÈÄŸÌÞŒ?>Ô)|ÚJ¨ª¢õjdc¹^õê·_ˆâa \ŸºX%ñkVk%{ðÀ—/æ7üYA̺DÓ’êZ>ÕoF™þþhæû\tÇûõÇYíýÝú’¦× dƒ¡>0òä(6àÂZgnöyJÏ9Ú²·É· @‡Ve z† €Ö†®ö/å#ÔÅöŸeœ†€ƒ3ÀF€ŸtôÔ *Om)R`¬Àƒ€ ,Á@!Á—`@,À|†ÞbévÏ—¸L#Ìâ£(âši¼µcA6-$`³Á~W¹Ë÷D&Ï[#Š„j&sQ.{sðm]„1“{áPAã‹K÷bAã¥(ϸ€o NIᡪjþ _ÓÏOvý{î«@FÐ À£š‚í])ð K¡ð„ȺJn<ÛÜ“íw†ÔÁnOV¨t^ÏÜå–Òq|L¸ º~ÓÇ4æI®³²¨ÙwR¿½î“c#áœãVº~ï–Í”Ü yÅ@ÂÝRß³H+Œµà,Êù9¶!ƒéÔ=ãO¨Ô6z‚K¬Ð%D¾w¦ªó ¶+¯AÊ(òÇ2o0pJj»¼ÌÜéV¶X¦Í€ ¦ ‰å¦‡myí½Tèlè¡žW•ÙsûœMÏ“àÊ Ö”ì=exloÓ"¶æ˜š¼èvÆñÀvÌ6µÂƒªªê1þ^¥U1ÓvRè·@fù,€/n?ò-¹¢d²]ýhF€rQr|ñýæ@Q$yXY©f:…5;X­Ó6ÛõŸ{íý4Rõ¸wßëýò4þë^’ªóªÎˆÜ\îù%†€ÝÝW€õ‰è­Ð20 L°`éq—)Êd_ÞWíÇܧAj½æØÇו¤òJ A³×Ò›pý¼&€^ëK6@nÐ64}€<?ZŽO „2J+cb\P­ï ÔâŒw Ô„B¯ñ@dŸguBk(^'¥Ù«Nq,B¥‘ pI]”e¶ûÛXË‹<‡‘#£&/Z€öPD+ Ì6µÂªªê¨Gƒ;‰q1CbT€D[¼Ë¥#çʲyˆó)%ØáòTݹ9ªr}naÙƒ—ûïÓiêÓ›Ó¼?îo¯UC½õ°‹2µ. ,_ìh¥CÀ­òkÓ*ªu -’B¡ƒ:†zØ®(Üó÷Ç€ M€u;Ð&±™÷x?.]ØÚk3½hûû1Vë+©ô¦Þ¨¨DÃô×#£ß“ŒÁ/A* ¢äñ9T£ ÏÁ+¤†ëƒeÄgÉq÷ë9÷Þ²ÃÂóÅn9qÕfÖb´ëG”>u`1tuƒà×>0ç„öu{&ÐZeRªÉsjn»Þ£¯ÂzÄ­Øäũ〱)ç`vè —”PUÕ8˜ü5¬™Ü†%0pÊ—‹ºmÚ jðzIf!8*%_3ÑNûæw¾¥cìfô~´ûÓÃWyÌ6_צ´,Èóý£`cœN§m׃ Ì"ëu>û…ÒZF‹l€ZM<Ðó±¿YOÐ.  CwÆ»þS«™ÞTnsì˜ ÐN ¹)o–eÀ*JJ•ò…‡ŒÃ`2èÍzsȳ‘sA*„§H)²˜Í9bn „¤?ÈÂGl'ÄJ“ƒÏ޲Ê ,mý!=õ]X{d²L °Ý®ñ¶ˆ+å Gu“’Ÿ™>^׌êÒ料u7 ŽšÜ-5ï_‘!Iž$ìÙÈŒ.ж±ù'46]IIUUÕì´%j0¡·'š’åî8:’<%2¨KÕ‚=QNìUµóÑÒmeöî/‡¹xpÆ÷ŒôO’ @)ZÑAfë÷IQ&½WÝ“Y´¼€/ÐÜê÷yÃP'L«_N}¹÷9ìxÍÆ°ÖKoÄVŽPÛÙÝh›Û9Ú5Ã@ÎIæŠò%*U ¦»ïë¼S’¢òÿ×´íö›]Ý‘VK|@“çÕwéF¿¼Ž£±‹À½x3Û(Ñc»º·#a³=œ¶æŠ•ýžÙb0gØs·Œü\LW3vò=ôˆãÐ8·ôÜQ†Ï[™m,s©ý}o£ö0½}}s›¹ýºè1Çàç½ÑWµ27¼[»/:D[wrÐWHX€ß_%ö\™Dd•»ÎÙõh0ë}ößd\>ìa´.{èü8Îà¶Þ›²^Ï®¡5`‡ü?™™£X¹i½AQnÞ¶ôüQ÷b J‘ékŒs˄ξ+£•ToÊdãuûæË"{»ÿzœ–" p#%TUUí=;wvc%†Û~LÅT¨<óâÈ·OôP„^;¿_ržàáá‘ÅÃZ7n+½¯^òð0x8æØ{íÔòz4ï®–^4w €3r.w;Õÿy nØ2Jü÷ÿ2íÉ`¢k;•õ`î}æÛýñ¥·û§¯ãÉ3©h4 œ‹†Ž]¹¦>úV-¤-¦¿ÌcllЛ®&ç˜$èºëïBA¬y/UÞÒͰ·E"äë;³%C ?ñSGë‘(¨®£†³P\FðÞç¹åö 6ÎoÑ®°e:ïÂ]ÎÐò>¶”êÖÀÉX„ŒLMÞ–mû 2c¤pW(6ùqvÍa t ÀˆGQ„ø0kPI®²ª*¤íí££~Þ!â>e »óÖ>HB!täïá.Á^W;!À[Ý¡\öôsa¼ÁºÝtõjýPçqÙÿx8?ö¸ï_·ÞÌû½ÌÌqö1¦=׫-llk¥¹)c›ÜFõŸæ+?·tàU¿özìû˜™gñ>‡7-íàtW·gÛÞ¹k hëK<įRJTòƒÁ¥̪rjquç|²­Ýòõ>H»“Áà¤èz SiÅÂ&ö<Œà–h¾ˆ ”,ZÓby¤mˆlîm C&rH¤¿„:øþ¶Œì’sÐÐiJêV2¨×–mëÛÐ7,BJ:"¤ØøýPÑÂ^)IÓ_ôàÍŧ‡²Ìz*WUUÈ:·}ðn³¯H›úCk_kÙ1ÏÕ¢¸Ÿº×ËýÛú|ZZ^ú»öÞÇîäÂxª–Ð)-·>ÿߦ&ahŠ»n=§bÚÜÿð¦@„Œ3ݳçY?1ÇÄ@i„Ì|»fŸyì]¯ãéÁ˜ž)¦»Ž ªÞU3LR îã£yXXà÷‘ßêW#×Ç~œ9Ü“ÁŽ½Í®x¹¤:&'ý¥Ì„L±L:Ê´_iÖeÚúòê²Og¾³¿jלÓN,8!Ù9+]¡ì¦ô †ÖP¶t`;3}Æt¸”jŒkËFì}/4tb©/¦Üø}˜æ°éM^fö7¯…ÑRŽ…i¨„ªªâHð‡”sðÍ{áKßO½Öûñûu>¯/‡Ëhïã=]—Î\öÇzÏqŸ9ec<öWòtõå¦Pý¹ãÐcŒ&²†| z3²}ÆÞ&•Ùÿ˜½ëþÞ6 ´WŸ C&·†¬qÁBRÞqì9Ž?O¼Ž–ÌkV;¯rBÏ,Ь‡iÇýÔz± ëÅÞæÎÓ_oñ<¦X ÀPʕȦ ¦ÃÎx{w2£`,ln!V 4Å2o•¿t£ePöŒBC%TU]v…¨§ßç¹?¤Wûø¯­N:K×°Æ—ÙYùoÖß½î×·~ö×ËXׇ[Í€m.Ûš Go2óó>´Ò0Z‘|ç„óÏËv&\‘$‹5øU¦Ñ @ëu{~ö”µTAºœl’!—dêL['TC¾YÔMM&³âÏ|ävJ.ƒ–@ÂÖdÓþHjõ.­rÂO!ñˆe·Òï‹„cýPu6Æ9»† ,$,ƒÈþeço-äÛɽ@é\§µ2oh±e«9ÇÁ5çrˆœ‡Âíáh¾µ¬`Í)ˆK4Œ)ÕŒeË"ÎúLè©5“BMñšmaN8ôþ|ÿi>ÚŒEYURÅ*Ÿ§M{¥¨ùê»+ÜáÎ&˜pÌÞûë¸ìÛÇïo—Ñï­³è{û²“‘Q쓹­Ö(1C½Óó×·†zn€ Ujj¦ý¹b5Â8K˜|å€Bï@@°ÿ 0@Yñæø55>{(Ð9gXr—˜æÀ } ¨`D鷞‡©…ÇUI¢"_K"ÓÙg>»K%D‚Ã:Ú&šawr%yHS?SJA•s®é+zh \:9Ë6.ÌhÈœÅäÖ¡:_ÁÏbΒɶ¬ðÜï ¥ÜIi 2@mx¶œÌ‰ßí·ËKÒ )Ô¯-{7ÿò7scº‘©ªª*„z×CkgZI©~OKâ]>ŽÏ„㯦¯_Oÿöåõµ{¨Nÿ|ß{³h¦½aÛ³3pΦoíüó5pâ©ÆÄ÷7ÜrcË>ýõB‰(ÀÈï29Š~¨é'I±±¦bh1dža( PEÕÝ\Õ94À®æ™ª×Û]\Uj·[–­›WÕ-ùÐúè^q֮ŭهôèáïT¦7½*_œãìL¬ÉvÞV³<\ºØ^·Ù$nšæ\ÉØcWI%cì 6¶œáN=í7ó%ÚÉ#ÅZñly²¿Åo×UÖRS¨Ÿ>TàŽÿŒfdR6’j¨U‚š£õ‰¦±j%ÑbÈy´ë¬Ï_êÀàÆè½\ÕŸžwåuÝߣý²Ì˜ÍYÿxýÜß{8uu ã,ýO•›I%7ÊaÒ-|TéYþ¬à$ì/ô€çã¯3o:Îþ+Èâûiž³ðÌ<îW«aš^Qg}áñÇОÍ͸ú8&Ò×4óðDF²àP‰FªÌôà‚wÈéR;Ô®׉÷a =¦")R©¿KØ;í¾×Á‘¡q~7šÒ²)±¹è†Ù¸íª ¦4ãmbý .8>¶ÜÅNxÝuL¸Rí°l¹‹¿ëuÒ‚™Ôˆ$kÅë$ôïm×W?íf÷ˆ’NªªªŠ€ã±WÝŒ°ëÍÞÊ‚›Ò°ñý¿æÕOïY IKÙýò€§‡ë^߯Jö4Œ‹3`^Mꌽc£U8ë GT“©%Ýå|tò(ŸÁa;µä§1߇ܛ{¼h*;AZTûOöÀ0\ftœÉÝ+yV€Bø˜BØ~sÈ«_¨cÙcpñ/¬ŽžÚ5{Ù)Øfó"ÃÀÃÌ¥âKÕw µ­÷ø{ð##•%£ý…EýœONXq{.ìÖ­¶Q(“2+÷vìM6D2(¶\é–~ózV˜å@ÔŠaËEœôÓ_ÑN= ׊×/pìFô1¸þôËGcD%¢©ªòPU!pÜk=Ÿ+ÑF.WßQ}¿š®¿³JúŒù°o—¦Û:œYëå9éïý¸¾šö<Ûç¶÷ÌË`ïsêû™_n³@›JÈž¨`ž8fžÉvÓaÔóŸÌͨdy( ¤Wc©|•ÖViŠê¹0@´6Ž Ë{Ȧåa•šPFš3;:·Um zŸa^Èýà´œzê÷v¼¹sIØ1Gö|Ê€ F°#L–|8#“ç‰ß*“{Ì`Z±¿9êl/ n™»³A©!ÓÀ~¶¼‰ûÕÇÓK*3¶wÜ€µÃ³åá.ìo<ë%ØaGÔŠ/$X€žÉÈ(UŪ*Kö_s2n·Ó27Ðún©F+û÷DöúBÞ>¬ç1?=¶ß—~æÂåùáruT¿2t w‚î`@EES=À¬ ¦˜¦œd%ïJºfL”7ÑpþÚ*Ã0@Ñ0Ü ”SP¨ ˆ–ŠÊl½nUÉ¡½Ý¾4•YÔîÝÜPÓ™Q30díBå°b$yªþæ¿©¡ëÕd/-¶Ò„y*ò»XŒ4Áä× "”w‹ED3r9U!òû£h­ãš‹ó\°fß?*¬ÈœÉ3lBÀ~¶¼é•ÿ©×Ó%8¡¦6`mx¶¼¤“ýíƒfè‘Ríp¢ zoÆ›_þÏçF›1ššªªª" Þ×38<·ëˇ•·oT½Vøx×VKýÇûøû¡ý:T²ÚÚ½µ/¼~î/æp̱¸öÅx³“ëâEi¦‘ÕY ™ç2Y¼¢›Â4S¥-ïÙ}iÊD¥Bè$}‘R»ºóïr:|ý=¿‡§Âä!y¯J¨ Y{•@|wõúº®/ç‹k²«üèEu]ó¾_óih$â~:–q!™;Qƒì¡!Öbôhaf÷[Ž}8‡doßu} h! ¶¼ÅEøÕc¬—èvxkű奜à¬Û±`jC’µá €‘t\¨™†ªª*À}ë¸X'(tÊf`±ó¦ø)ÕW×–mذ8Œy®ÌpÂÛn¹y0ú½c)ü·X}üÞž÷zWrê¾áä@xê!ïn¦I`´Müʹ†KO] kÃLéU߀±½ým©7ÕE½¥Ýµ—Ìéͤ`¯ÐÝ»‡aDwä¦\\4§yTÍD·Ðéž‘ p[Šò½UÌa”¾Àü*šór’˜qyâ×µ¹¾Ï&d®ÃøÁ¤¸{±u§{Ö’lĨshA  1ÞÑìØs>¶|ŠEúã±}ÈîêÖX±V [ÞË.Üõ¶ûUv IÖŠAهǯ~ó™ÑiŠ  éHUUU„~ë=Ãúås7o/­J@†ÛÿzSãqצïmœ³Ÿf¸xÜûûæmŽ}›gÌa³©W¯gÀ!'“kþÔìêm4\UÜ<ßiAS‰Äªµ‰p‹3¸£`²C.ŽòjM3KñÀˆæÔÞUŸÓ=­ÊÚMg»m¼ï1_yè¹í¤§ëuº‘ã´tÝ“½hž+„XK^Ujô9Hq]vrÓv5t¼ÙÑêD?û±ñ|—#¦`T!|é.ï3ÛÛl2´(þµ|‹YøˆÛYÑq5ÇZ+†-_uá¿ývëO-ÉpÕŒAÒ çÐ÷çwîQf¦ªª*­§£®ûæß݇1zVž$|àku)”²èsÞ??wÿ;æûÚ¢ÿx»×Æ´õ¯«ƒQ£²¾P œ9•IO7³à÷졎Ïúý0k©ál¸”žTŠÉ á@3d3ê)ê†WІ'ŸSLeQ@¢™§7%*>©Nª³î86šÔþ°xîþè:IÒÜyÐhoÝï÷ûØ×I«w×ëa'ºÒ&³Ê+ v+Ü×,ýÒ­Üí¦*&úÑý8“õh²ÁcvÀ@þµ|›YøÖíy=pW_=6µâØòÕWþGowÿ©øj7¬) ¸ôçßÙ±4’2*‘ªª*@~{1#w ýjÒnjšBqP ¥ì'·ŸÖNUEUÑ7rÔ€ÎLÜfÜ«ОOUœLþ˜žœ®ÄÌÒÖÞ„~Â]5:v3°?ýÙo§óÒ¢j¯çü9~/¯wî[?ݵ 8˜´}OfŽéL­ ¿k’Õ}ì¿ÅùßÂ#õ _÷k9–DöÄ1ÇÞãò¹©2Ü’4O8ž¶YZG›oÐí•=F,C'¸lhàlþµ|ô…÷­ÛY‚gù!)ÕŒ_ËgYø^½Ýõ’|SS 6-9.÷Íg™ƒŽE *ªª ¿ c¨óŸi‹Ø€&1{šÜ;öUû·|÷/žýºE/PÀÀãKÁÀän>Ÿs¦Ã¦r^ýe¨ˆYþ+pè³!)þCWFH;k‹$e2@†D2$s35Õ­©7ß¾ús›÷OÙïÌÚ#§Ûëø:߆ý†°N÷G÷¯}ÁOa$Û6z$ƒ÷þ…òPD\F¶$K¶Z,£äz0‡‘Ö\cýµÉÉ­»5ñ<ÐÖµ[n˜ë¤é…©gžPàÛ˜€þµüôÿÏí\¸«Û¥Z±kùl;ïÎîÔÞBSSd‚=G .Oþy4±^(£ˆV%TUd<±Î4•M–ÖøyNPü&óªù~}ûDì·iQ\Ö罫3¦úX¼OÇ„¬ WeNõ•ç%É‚‚Á¾9¿ÜÍ·löwƒÁ¬q¨¼¿pÉ@a‚Ðu“™|ÍèV¯¨Q÷9¹¡Õï©«_ÿB4¦ª~RÓ|ÌSÔ¥ç!yü4æsÓ¿$x/Œô¯ß’úXû]HŠX½ÂëÊm*NÒ-ÙVCš¼8;ËC¶çªéðæXïÜÈà04þµüŠ#ÿ·³~e§úöBQ®¿–ï}á ±ã¡zK¤PSd‚9c,úå?µžõNSF©ªª œTj:¾á®€®pí»ÿÈdWs»}3¿žUí j_ŸL6ŠIúÚö¿‡ú34Îï[@UÞ?*‡ÂìWÅt@o½Cî@ã\SPTûAX|÷kÕ0Ýì]_E7ÕÓÙ”kVŠ«½»º OôørøÃèÝn¼¾}BŽIÏÞ¹oþM¦ß¼DLÙäÜp4ƒ'’Y+ê®ÈÑÏ,Ѱ–£¥2²w&q!"1` Þµ|Õ‰çèíôð<ž jÆ®å{™y&;^²/’5EЏù t*e#SUU@Q¿í•¿Ú[Ùh(Ûf4Š‹‰’ÔÝ®Û|.ÿþu›oö=n‹xµ·ËÞÍø8f•CV÷š§ ëÞXÊ[Õv¼×iö>‚œÝ_ª¦Ã=%ÓJŠ(s#÷sÞÛÞ{ã§šµ­ÉÏM1LEßLÎnÈ=ù( œ¼i(R_×÷®¤º[~Hµ¦~:ƪ?»@6]ÝÎJ«nl‚®[ŒËÁX9ï¢ÍÛlz™§(C÷¶`ZÓm™-l‹ þµ|Ž'Ï®»³|à-45ůåk?xÕw,x KM‘"n×7õÈL:JUUE ÛËéjç§LÝÚgu¸¹·ÔþÇ}޵‘ÿ¦ûÃÃkÝ# ™$µaã=cò«qOSÉdT\•¹¡]'¡vA%Ío`B-•œe€dëL8¦ú=–ó™aª²¨ßì·Oýêø:M”ûÈœGÇ›•MÒ" ÜŸÊcf6“LÓc,,Œh«¾"¥Ùj{lpQsßsØ|`:¬„XBGìc‹¥ËÎ @cä€"ÐÏAÁ¶|Ï;ßÔÝ^á-„šb×ò~œÜQ;(žPSdð°ë›¿m£Ó4TŽUU!•µ| •í €×½©ùeÒ¿¬=þøó|ì¼Õ<÷üøú`ǧý±î¿ÞÎqÃÃ>;Vµk°Ù$më÷ä×åf \ûxý»~¹ìMíÖl×§fkžïÿ eeÅ:»çË”»~Ùû49Í3ÿ¿sXÈ~`Zݦì|͸v]º ‰yPùpjÖqK*Fý¨ÓêH,«9m4ØÎmÝ Íâ0JŸ£6üF_ þµü;ï1·ýZu¾+ÑÕÔ¿–¯íÁCì„Eô4¢¦Èà¡¡Ç/ŒžÙ3›ªªB „ZSä53i4Яñ0§¹®Ûãøê>î™On·ï³ï~pŒãÌ«}Ž;SY÷D)}àôŸÉ=$3°/U_T1fLf¶ûU6Õpå]¢zŠëÔTŽyìŸoã6OÍÛù\Ì _Ÿ U:I‰ºàTTöá­åÿ9'y4ìµØS¹+áiº”3 §½E)?¥‡;ØãÕ)ûX¿Øl›±êܕ޹|'¯º–Ze³­Mh†fÈÄL`‹“.dÀ8þµü˜fÞ#w{…÷&ˆšbØòïÙyñ$o„jŠ”Ù£BG¬BªŠ, ´’Ëùz©ýêÿû 00ý>ÝNšy¦gN–æím»Û<çûöögÞ~t ½‹©ë¾bSy¶³›‹ñr*w P̹þþò8^gÿ˜{s4oó}Y7@¥8*t_·@µ½¡™ýÓï  Þ¿¬œ“•f*ÚëôKF 0õ,$99ÛSkR™ëÈÌDIv -ÀŒ2€a;c°7À9Zضüµyñð4KÔQ6hê v\:ëËu»üÅßýí£¬½z{=gƒ}ö]–»,€9pÍ4ó¼ÏÌ3@ϲ\sÍ5ö…±¯Å±}Î~{}óóÿÿûõzœ×·Í5 ^\.wo¹ÛÙçõ×ëÙÎÏ_¯oÏ= Ð,»À2 Ì340Ï þµü¸.ÜÔbz[äš"ÊžÔNmÐn§Áæ—ÿÿÑvñÉ/Ö›Í9ûç+{ÛÞÞ {¦x_x‡™nèŸ‡÷}_žîn0ö.Ëe™=ÀÁ~ýùº½ï;3Ìð¿okàm¹oûõu{ûõv`ïý}Û=w.€fffè~޵ܮîÓvs¡ykºRS3ð™,Ô‘I¥dÈÿ{™ÜûÛÍMð4ÐÍ03O3L7 oÓÌ4 Ãlà—Ã>,cÖ…{x³_˜ƒÍa;^÷ÿ¿ŽÃá yhhxž·^ffzà™𧇆»0\Ì2w]þµ¼[îU»Ñ7¡>‹PM,lÖúg²Ð-5©A  ów®sxhà™~˜š¦˜áe{ïŸûìsÎ+p±k­¦™g g€ÿ¿zåS C aÁ0†{߀™gzàyº»á}{†¡¡cëm.€¹/¶üÞμ5wÀÛšš"˜ƒ¦£ˆ Öþâÿÿí/ùõú¶pöÙÎ믟oÛyýõú¶×¯ÀÙo¯¿~þúù¶}6€u°¯gz`zúp€u8Þžžžèé·§¡§§§áp°¼ ôôôôôÛÓÌë°¼^/àp¶üï,¼ÔÔ/Ô¶Üül¼øøBM ¨Ô¤©TX À^ìÅ^û¾‡÷ëpÍáš…Y˜õÚ^ûÃkxÑ/¼ð / =ôÐöµ¬Yxà̺æp½Ø‹½Ø‹½Ø»0 ³0 ³0 ¶üï(¼ÔÔ/Ô*•J^¯×ëõz½^àp8‡Ãáp8÷õz½^¯×ëõzëp8‡Ãá`OggSÀG HÑ|­Pš…3/OggSÀ HÑ|­¤³e/OggSÀ¿ HÑ|­_a–T/-A;ÿöÿ ÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿ ÿÿÿÿÿÿÿüÿÿ ÿ ÿÿÿäJ IìÈŽü«ºJà™‹¼tª*DèH¶”¹ùRVÊÜ)aÊ”)iSú~ÔºQÜÌd¹À¹2ÊÐ/œÍ±Úå>6yÉØuu »4¬»JV»ï›ëCé!—9äÎÛ†-z3ï›èx7E`•ÈêÐ]CÃ0Žã:[«¯®Ž$ϯü~uŒ<ì÷SKzð§~h$É?“'zçô:y Dá-ö†Eá¥zón–Õ r£+C¬¦Ù{i0‚$?ô"Ìlïòöº˜WË1¯ÿö£0wÚÿÏ„aã Åú(ó³Œo€ÅºþÐO‚[J¡fœ /á"ÝùßÌòþêã(%kÆF—Çû¯ÇCJÆ:NÙ¢5Þ ˜€¨- šfZšÂ ¸ŠÏŽid4&i¦AddÎ$@½ûÏjE͈5úÄ+ ¢Bq—Ò…‘|h)àyy¼WÿQ‘îHD@2ÎõøkY§ö¦†ÁPWÆZ›yiÍéôsÄŽqÕ[g,TN 4W]/N] uØe`€ià5ú£n€ T-€Ò÷ä"™4€°µÿòWÿÞ«ûwö%Y†g@~àvHøó¯HÀ(™]ã=VZ,€a€sžI>3;ÿ½}»ªß¾K=¨)fŽp€îñó¿7¾÷ïµûRFuVôu  ¾²n&€"­XM4… ªp+B@”%  Dέå¤xyµx±„ã>rÿhg§ .é)Zî)F+SpÌç}œº{a©MG»Í3°k½²X ]iCƒ Þb‰T¥ÞDLj[ß8uÒå@”½Vÿ*0‡ÀÀ«¬ÚZÕãhÖƒjܼ  rà|%°á¿_ (l@þ{[ ¨fÈ _$€p@k`þøîþB±w†¶·ÂoiÌw\+<~Ù°Ýw8yæß”÷ÿP7¶‹´¾ƒ‰bgˆ(‹,‹s…²)" ¾ÀlÎ[u‚t0ÓoO‚“Ä! FßvÜo[sʃ+畃¾¡ `<þï€@Ú`ü„¬|ÛõòÅ ( ºV©`eXW QPI.[寓`ŒQ*¥‚hut[³æ£jí'I©jœ®' ÄYß­Ðf– ²š‚í0Âå #ïZU`P™BqÃG+.÷b€ ríATÀÀzûU>Ž[û¶ ¸óÒÒ_ g½48h) bv†ŒE^–öUâÐȯ–·‡zAý¦X&†Fÿp©ä³ã=µBæûê-®ˆÝè#èºÿ_€ÙnèPÔ a¶`P #£ªЫ2 Þ9Gœ~²àJî鯨§(žpùþÒíg2èã@L@™ùy[?ù”‡.KY­C-Ç#tŠ(¹mùÃoiøôŸ÷Z`ÄD®fšðZ MÑ €B[W¯²ÕUºQ*èè†Û /¾ü¿Ö¦là¶øg¡d];‹À\¨ ^ƒzÑXÀ$þz, ¯ù˜y}/ä/¸Àÿ¸[øõ\€@À_¨4AAAÁ€Ç0 ¹›ˆôcÑÞÿC½`dºãZñð‹†º9ªy4üõ‚˅̄ꮛ2è{þO6Иó€:Aº˜P<ÁlH…rR!çç€ ¥çt“ï2"àò÷0QUPš~/Ö±—'= s¡ öH&*3fìëÛºûŠwõo(óy^J}fÕ½ó¸Pæb´ ¯‚‰åÛM¿ÉÞ@ñœ(ÛÿØ@†Í‹àn>9¦Ù‹È°!é³év›™‰¨«bäæ®"á‰øè¼]OîuU\Ðo\ÀÂzÿ:qM¬¡9'¨¤3€™€ ÍáЀ`BG!Pˆ ˆfŒ²ò¢¥dT±\é=“QVš?“†B<˜áýÙ‰R€LˆZnú5h **ýe@e%¾‹"<Ü€ªáx´€“ÔF®®v¨²t%yéké3+Ý.ïüéSÕy«YWµY4mÿzE¢µM¡Sê_ݯÜ\²0×(@€zú¼0p}ïí °’=c`FÒê°þùK 3 ßý, 8|ãßú_Ï€k ÁÊ à¶ Yf¹»ˆ(¤î?%· æ+4V’Sö"€þöÓüjøÒ™Ì~Aåü `ÌɨÂLø`Ä "Aôš²FqzBº‘W3–Q­ÒWÀËî¤xP÷f‡d ˆ/þ“æÑµ*ðÕ‹DPXÓþ(OYÔÞcÙÔuv¦•Ä,qDÅUµg+PZ\YºRù‘ ¤;`2YŽo_Ó 4P8ñ½G!ºz4Ší93_˜ØæÅùÑ€€æðŸo¼# F€$=øç¿Ö Ì %WøH±ìŸn2˜†nËc@É>áùœLWûÿÊØ ¢nc£æÆß;Móhýñèš«K̤õ®7A~q“`­á .À_@N“qÐLAmÄEÈY<]ã¨øB€H’Ÿm³†PÈ¥¹?)f¢åž•LAeP†“€T²¯úÕ2×—µfá Q9øEöþ±H³¨ÏεԆ^™©"¡éšWó³b+ºtJÙõެ(sPDúwoG€ÆnøRê9 `(Š€` Ã†€zŠøà?wð!UdBÊRÒÒXQÔµ³ x(´ËÛÕf–£¥ÿ?¢’AS£Žz.ª€ÊÃÀˆNê¨2¼) 0üx¢ô¶ç¥”Ù¤²HÊÄzßjÜõè–S;øVT™víÀUQúѯ¾ÝæË†Çd”@ÇÉõAeè`îÀOAÁÄà\=0õ­Ö4±¡©Z·€ ðÓ­µ]Ò@7ÿý,fR/xj ö†òÃS62zÀ€2û† ^†¹«H´£V?šŸ*ÔÕ8¹Õ/7ÑâgãÓCmÅ”ë-®èsÜ@‘éAüw%0›Ó  Ns&&Í¡ã ÞÀG(¤‚ˆ 2šKû{Û• d)å:Z#EE £?»#ð>OݸhŸ6Í>@4YMQPýP “Ū4»ÌM–hT0Ç"?ÊÀžO‹Rtíqæh稪tVþo Î$É-¼ª™æíö}NJy‘˜ETß1¯ûå!=…5ÂV‘›s±Z_=§× °ÔH ®w!›µ¾ÿ CòX@ §€·A€•ÐŒp²l€^IÖù«öó óUoO›’²¨)N’Eö! (Šß ¿ ûŸ­'0nœ… aø³äÉ-`O;€:AÀlnt»À&— !E …ÆßæTºóè{y2Šé¡@ÔßôTQMì:¢¢ýêjŒžM~—`Å㸿üëæ¬¼éë#]Ežòò~³qy¿ºW|z¿Ô¸ÏÉ>/\xÕÞJƨš@=oþy|Ss²É` ¼ÌØY Ù‰ö†{zj.ô,, Î¹þ0ÇÀ…Th€Ñá_þfcžÛ€}ôg<ýþ2›>i\hœ>I¦ù—€@Â'¹˜ö¢§Cª)f’uö!  ˆ_iWÝŠþ¹<‰Ì5ʼnª55ZÅÉýVÄn$Pä>4ļ²s~@ `&áB €0&ƒ‚£ A«©›T_ÚF_AŠæÞ.¡Œ÷G=Œª¾FªŒúy4N€ä[o!@ðQýU³º@Óc v¾ PA¾A_ÅÎUU@TE­"„ã¾ôTõ6¸é š ˆ²a=]keÕ(` u»÷¾ÒA½ÔÉd@ÏÞ ©D¯ÀÐøøÀb¾ü[†ñå_¨úõ )®üSGê«*)|@^v™U¡DÓ¯¼PvɇÍDÖ]lôÒüä—B5Í_õê‡ÌÐúWŒ”»°†€Tð—@ `¦†D‚ñ„ÇPEda Œ6]³‚讚<Àû\݇J”‚1j׬nºƒ/÷¨• ’>ó`ª ÿÓÚSQCdzsïúÆvŸš¸ôŒê:5îÏÂ4p¥m]>ãèK¯¯})s÷__¿Ýg¼ÝÇë®l!®».¢%¤T"ùÔaÕ·ƒz_1“ömhÞ,0 €Å Æ÷ÕÈ Ô?ðOør£Í•¿a$€ mg6€* À† þøÕ™Ãt2üÒ?ÿ…Íú ¤6,ìÂÁ⛦i~5žLê’'3]½‡/º 0.H`¬ˆPÂÛ,ž m3-ƒ`  )F=,/÷v3â¶Á«z 2³]–uÄtðµŠÀ^'/ï£ôÚôpç“,@ynÎÀ¨DæN$Ž'èI¬Ï?ŸþQ{rY{Ú9³ë —¦wùÚÝ—XÔœSÙ“š‹_íóe¾R޽C᫜|Züoµ{î*sŽ&7” ýìøÒ¾;q e|®¢H€bà€þö»0À߯àù;€hó?&Ó€°ÓÌaƒ |à>V†ß|ÛNFýÕzSÛ%C­ ¦ùÙŸÝêøh=¶Ñ9d>´®Å=F‘mCÐÏ?n€ÆœÀ`‚ô=~Îct>&A(S43€O¼éÜ–µx®íU½€.׆G]™NsdJ7nUà7&"ê™{ €p)ã«ã×Ԙ׽½Ñè¤iIó¦¤yº¿$Y2ç‰SÖ£·÷Ï»–ðdÐ6îè°QK ½q4À]^ÌiI–öVÊHøÕòã+Wd»‡P·bæØY ~¶_ÒþêÕà Ϛ⠀qã& ö×Àü$` sP'È·f“Pu` š+C¡Š¹›ÿ4“ ºQýÁ3Ë‹ì¬ú¢Yñ^Ço“)ðýJš® ¢ãůTTX_{@Ñ2ŶIPxx»Å^Ý$™zÉXàåHuQï]¡íþä@ó¶_ëuߥéÛ‡u¿:—öá±?*‹]€§àW^ R=Y°€4мî:4úèwÏs# àò¬¿Û¡> ÊÈßþÑÀÀÈk€CÉøÆ‚оY6¹‡€ "~É«~[!Nul(SM1“ìò7 ¿{¼ÞŠðêA&Ê5ʼnE¥Ö•c[¿qPdƒø6` ˜³ Ô f ÞP0†qP1¨B`p²“|h÷!‡>ZA0%ý»âšóuøöAUUyæóÔ--¯4¾—£äŠ*rœ¬£*"è»  Âÿ•,¿Ýô(" ‡óâñº% J&g=Ϻ´—ãœY‹âßV¿qY –¾ìEËn“”‚å;€<®€<Žë¤ €%@ÚþcÀŸÝ€/?@ý? ÐcpöµT@0°@^¦ù‹¹æ¯ÂÏ4f"ê.6záÐâ›(>¾j»È|hÝà Œ- œèü¬1à7¼ PW™ØÔ°ÎáS=ª@ÒŸú<@ɨ{Ò𠊆ŗfRDýFó¤c’ñ!¿ï¼L½€¹‘É{Í*€"{}Yr@ѤÁš<4õýûUïhç&ó…2:ÚJÔ‰NkæéySw¼ÍªîœÛâšýö<çÙ 3-»’ÂmjU)=•" सʓC¼]íZ]¥YÎôF£ôœ·€X¸0öŸ,ÐàY5€úÀ°xºW| 6 `ÛíBÚXFÑ 8P¼ù•áE$0êý?Ô,Üp¯»,Wüawüjüzض‘™¸¾Çãf(ƒ¼ý[0»‚ ŒþW¨ä,€™€A1Ķ\…‚ÌN¶U¢„åq3LÆàQ]=©Ç4OýBð€ê¨¨* ˆ:×çÄœ«ÊKE¾ùdGé}Ói8‘#}’ ÿ¦ûÊaÿö}Éf§söxáóÝú’Åiþëï±êŒC6ÁéÍq4-\³¼MPÙA —_×"sîÈ (‘KQJKÙµ6€.† JÌÿàaõ5ü, ÿ¬øͯ‚4Ï.AÈV;ÓPÈ ÞèÅ[¤Îô¿äó?ÔóÆô µá¡—Ü`òηi®¦gwÙžêÎ¥µ²Ç(↉寇:AN˜Ð.@0¡ø˜¡ ³a›0—àpsO¢ïÏj£ØÁ†åþø¸YÄ»[¢xPÕp'* Ö&@AV•ÅR\òÎÕPh†Œ/cQÝš»ÚöÅÅϪ¼’2 „Cjù(´Æ5U¾• i14è€5hsÞYgd¹Ú4€ÂzÔŠ'UXq3©¦FÛ¿kÙ®Þ3P–¹–ó{Ì‚¤È-!ÒÖªÒ8Û|¶~i 2za 0~)šPltàèblÐ@m™ 9ƹ«”§kÇ-­¹ùu5>ŽiþÎwû/¹Z6]~Ü@kŠíY^XˆcÍÈÝм§A|1€5¦†‰g%z‚ €™„+ˆ»ð‚ Í‚`Èêú¼†&ÃB=Rà|r§^¡Àp~¡@ ^û4_/W„±fz2€Ê^õùšŠ;9@á7^«*Š¢*j4ßüR I y§T% RÀÙ;³zãl¯TµAм„TZAyè)E[p£VÇ÷ûWgÑ(n#£›PöeýÑ rXá»Ô›¡VÛß-ŠÀ@Å2 ðÒïÀRêc€ÀÃ@ Ø@^YvÙ»òÙOóKyþOÿ ™i¨)n’Sp@~>3ÿj¹ý¡if~†šaÀxð0À L@_ßA^ŸIXc@<¨S˜ÐÅ[˜`SC!@ª&rwd @é%ë¶ïE …Úšy´ÁGªEŒÊ^äüês[OðDFÍcE€ô_Ÿ—LõkÀÒÕQ¨,­´§ª&§<¿JÅüÇ·—‡Úå×ùýs;¬ÕD8Ü׺›õt €&‚PöÊËëÌ€âP°Ww{ÀÀ°eä£c()õ×ÿ+påüõ*Tý¿ 䃃¿ ð%@²0€ ÆC¿™ñW×oF8P¨#Áxèâ—œ´ø©ûû¶)×}8QfD™!Ë×2Æ!ã;Ö˜„œ¨SØÔÉ ¶QÀ¸ÆŠ##*ù%þi^Æ€ÁµÓE @BÁ÷Žÿ 7N_™c(àQMíÓQ®F®¸û†=#5 Eæ\?k.Öcœöyõ­Ëºöœ}*Û¨tö—&(EÔs¼ˆ„õV€°û®V¾ôÐÞRE”=™çÔê”EY¨¤Õº('ó/©¥ Œ°ùÚë# ²’î¼Î“¶1´[Øòwø'¨æKÊw~ŠÄ’1 “8GÔ ©pú ¦Áõ[v^Ûý(Իnj¡V<ô¢üxõ2Å•;zÁ%攨ÞÃ÷_€qJЯÞ˜Í)Ö@]¥pt`c´Q¨¾˜>ÿŸ{‚¶àK h‚¢%ÝÍárðÎè5ºä|iEDTU‘íMuãuêϺ,öþþGÓ\U³²Þ¶ñ:O{,ν™¯T™Ž‚jT¬@¡¥îUªg°0PšÆ¹,ëG{n³"23 vmç±·àÌÈUï¥tš#ÐüáËÑpÍ€ºý `´³ú  (åI°ÞFúÎ/êÀ Í×À úÍ’]õºø’Àl6àÈŽ@6›&~ø%ó×÷ÓÈôŸÿ̬ ½p°^ßt-´>SxRv½‡/Ú€ÑRý;ï&ˆæü5À`‚tÀ 4‡L`#!E``À—a54-$­)pJœd€Ðº‹Åc» @µÑЍ  –ÍS‘ÊåÚY  JXéñÛ¡?ŸÓ.ÑXß\]-ß45oùíÉý8Ê™ —RE=ÞW÷d”¤ÂÝŸÖsϬ…šQòPÞÓQ6JÊò7ãù­ØŠn‡SJ²¦˜I.™«àòwÇßÅù?öãÌc¸jŠ+ÊC€ °ÿ³¦‚>L%XCB0^6 O0“p£ÇÀ“.©@$ …´}œóTzºôw¼ä*›"BdPˆöT@û  €´¦ ‰‡ €˜+[áN]Ñæ[XŠ-/ ››)Ddè]H¦"¿§¯Ð÷}yR­5q@?VÅA>vkíØjå$Yå¯/òšfšµCÄ(Æf#½°4Ýë:J‹Åà…ŸU€Aýµ. €_ O?ühop<E€L@~9Æo²þ†ú2ÂVÌŒ©¦X)†ƒOÁÏë7½šž Ø@kÆë2SÈê¬(œ+bÙŒø>` ñ45Dä0SÃ@·Ï0†qejA=.L¿¢!àÁTÆ®Ñ;3ëG7o—.Z× $£Õ¤î”O«Ïözi PÕd}iM@UEÒW蓃ì½ì‰ ¡I#¥4rÚžûÞ#)QŒZU§NA£˜õ°¾jÔe’t/`Êòßo>zõS‹#À0q®~@,;oÍ: Íx4@ýÇ¥Aàù/ˆ¿¯@å'(@¦¦wØ 6Áø,Ž€ Mo^¦ù‹Ä·Ð°4ýe„­‘í@¢ÎÆF/1´Ü¿i¶¥íí¡¶Fæ{ë=œ"‹2ޝ­1nô2è×n0»‚ó?êi˜PtÆAÜrEh5Ϻl4}2ÈæƒàÔƒB²¹ø¢AQïgí–Ê€09VQæçTnxŠÅþ-LW’áÛy]îj3p.‹‡ž–óaÏ­b ú®ë¥ú¤B ‰´Ç-ÝÕ–”´iŒ8ÿ[©Ú“–­€ àa°À‚ôØþv€‘ïb+óÍ€òW@/†ß¤cÿµªàˆ—l¡• x PÄþøÅÙëÿïdæž÷¿° ÈpÕ†‹^šoÿw¬5êùj½+Æ¡ ò=à4øRêé˜PT€`B[ A+ÉÑ €z@Áƒà•ÛeJ¬t+OŸ^÷« Xž7‘ù9`Ùù²ŸS{Ó&ê­õ(°d•ð)o_È;K~½ÇjéÆyvx¾ím즷ÇÃë|[3É8ðb®â´„ Yø“C§"Jn㾜ި>Mã£#uµL ø¬È°Ÿ@ƒA£†j¼ºê€l9®š €ù >ìW$hÀ¿| ¾€40-ü€ÒeƒE†b†þƒWs#âGã“¡ž‚ÌTÖŠ‘`0xŠÈŽP>[N†:l8êlœ˜ ¥(ÊT™jË~(²m˜@cN+€:A:˜Ðã :ª²nš±÷ÔÄ0ë *ùb÷¹ReT û]ŸºÇO¾V}/Í€aîæësUÐÜUÄÜ]Ö±YÁ®GoL/v‡€å>›½û{//o®ÙW´UÒ V×i¦v’æ «õo][ª×mŒ ‘ÕèŸFåýkÏ…’ ÀÐJŸ+æú K˜­©S 0µí× Kö ëäÊ`(€ümb WÿWÖ7߀ÔAs?«õH¾t 4bÛOggSÀ{ HÑ|­RÊ¥=^ÿÿÿÿÿÿÿÿ ÿÿÿÿÿ ÿÿ ÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿ ÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿ ÿÞHƒw‰¿C¬Ý_i›i¬)fŽ]æ. óáCºÿ‡õqÃQ3®7NE”w°Æ60çC@4!Ì”AœÃçc#¦VAŠD>DÏ÷  k®b½—ë;J.ptüpêÉ“µgR¡êª¿áÕ¨ÁÀEt¨¨V ŠÈEL€Í²“¶ÕµÀ®Ç‚ž¤0U€yKÇ÷Fï_CŸ?ò´Ï ‹Ç}?µþzëÞW/í°UÔûtßǶU au+Èv*@ ÀT¾7$žƒZîÀn€‡ºU/€ý?­*e€Àw>ÿ¶ À|]Y@Õ_Ið0:Z U ã)Pd€žI¹—€ (~%?š¾ µ 2C¬)VŽÅÀ]ð…úº¦7#¼4È„P3^Ý™eÊ:23ÎÊì7E¦‚ø`a¨« €™€Nèö€€1Œ‚Š!.‚ Ù&¢YÇ šÐ|=As4mp$ºt«ÇUQ) DüÇÔ¾a¸"9sÌßf'dH6^›ì>|Å€šƒ£-‹¢¨²úY„¿kôÍ?Š €^2²žç^³ýèj0“Ó‘ˆV z| åîž›€1¨Ó¾    ¤N;Ãc`jÐ ØæÎk-½·€ï¡AÊO0€þðÇI´ ¡PÁíš! ^)Æ™«¤oÖ†;ÃoÃLwQgÅC/7|÷»o׆›Ÿ\ïÈö>0‚ÞX`‚l 8  Láè@ðð(¤ çó¤R¨òÔœR îdV¼ð>ù…T (ÀæG†fr®¾šg;¹Ê@ñß|í÷|¿ª4HY©iâÕÙfZÊåÔ›WÒé>öV’D@JÕJ‹>7ýÜG›{ÚgwÜò#ÕšÉN‚ªgœÞùrîºÝ¦ÔÆžÆ>ï²n€†,èûŽT(HŽþéÇkí—à7ËÀð¿÷°€ =UÀba˜ß¥„>Ü6¨™¸aÓŒ¦B þø…¹ÛÿëdæK¸ÿ…ßiË𬠻xXñ„ËÍø«žÝåÁæ»Ö]21"3†écfžÝ#ŒÃúÎïJh\ÁùÀzøu•n6 ã‚1ºR!ØÏ}›¹Û»ê£Ó5RË@¡à÷o$‚½æ "`½ñmUDUîÓ­ z´8@•( ‡[î}ÝõžsÐç¦VêG¿÷õÇ"ûuŸ¾üZžu{Ùs#SF(å¡è@òRƒõ9Ù WX~ 5äëòÿ¹æ†¨š˜0_˜rú½×.Í`\¸Å 0 @€f@ýù%hµ0ÒžP ê£u{ƒ> ¦ù‹±£é³ëV„‡!¥Z1Lv¿tØ ¿Ú • D] EÉêYÄÙdK,‡"ó Äß Ìæ¼ÔUN`B‚ ÝÀ窷35ùíôt’âRF>ŽÏÙô(,½œö9@n¦/SI‡ð FíõΛÑWäP4™ö{WÆJQ£ç–©¸ÝèÅô^o­zI¿1"ALš%e¹ë¤ä€ZgþK"#“]tHèË’µŒ(ó˜Ç~éQô`±ûßݤçÀºtác÷¾šªÞ7€;[OÀ,°½âúZXBÝO€>„·/€@ø Àw×€øéSh@üÚ’ (bìæ6;lp€é²Ifù‹ä_!éj|K¯1¥$ëªI–¹»ü‹_ò¡Þÿ\À™kʼn3×îã¼ur9ÆŠ8 æe³ aWu‚$€Ù ® Þî0†1j "„ rK¥ÚÜÍig|žR„ó3·@Ò¤wã·Ë%só‘à ?üØÝ?îõT>©  "r—YK<(Ññµ½g%&&÷Ћy–;ö[çÑsy; ª .þ`åzm©£ÂvíM.Â4˜/ãÀ¹ïþš'ª”^dþúTI–eT À—0Þÿà+”/@ùãKÀ@ê?þsx j¸l p°Á¾I–Ù—€€$>·GÃ#¼ò¨äjŠ›d—yþ(-¾ÿ3àò#p¬)NŒêJykŠèñkl@<›@f Ü A€«M‡ÒçO""“ëÑëjVªEÿv]ôÇi x|oÊé?³Àíg' 0°<ùæpAj=œÕ:#Íê:Ï·ÁýÔ¬Ò;ô2ú«l IjµueQòãÓÜ_P0q€Œ®  Q¸€tCßFJZ€èëÿó‡7-cÀòß*¸8!‹?¿V ê'¯ùù¥ˆü 0@^Ö‡„Ÿ’ãÕüU„—Ž™Ÿ¸îb£— Nï×Åv5ýW¨9`~r½3br"CëüY‘ãÆeÇWÌPÁÝu•*DN¸)ÒÿÉÛÝ-x7œåͦÆQœ¡YŸ<„!ã•â³UV‚ÉéÇZsêTTõµ*ª¨ž”ö¿?5ÈP<ô·éáq¯4Sn—ö~-Ó§šƒÚ \ê;«²´” VT¨û‚’³œPÀº ÜêgÕ´@À`@?à|úÿʲêRUÄû›eÀ»~}Õ2˜Ê__ ø®]9À_<‡»¼¬zï @j‹.ÄUA ŸÞ ¢¢š~Ë|ßqzÚºØsƒdÛ¹Z­W/Ìξäêþ¬ÎÎhì> Ñ¼l¥Š €ô߯=50Ìt°´ÉãWc‡KÍ…F“¦  x)óqyÉXRò¼ÀÜ"`À¼ú_ô™ß­€Çêï ø—iÿâ<Ö`J@eþøå†ÝýÛbO.o…ß.(ÕŠ_bØê·Ž8ù£õž¡^(‰¸îâ“ @«uÐØ”óS€ÞR'H8z¼\€`B«À·TE`i­>|j @’ìl;±GÎ £;ä矟¯6¹GÁ€*»¢ Ñß—ªzФ€Ç˜¡W—<U­‡uïËýzì[]ÿêç,n ÐT;i©µt;óŒßŸ­ì 5IƒŠ]¿½ç$6î¶Q+äÖšvÆâããÓ­°‘ÂÓVrO²ëìÕÅ?~Ö¥í¥-{Ùv£¬×4áØG7¶)1¶z lšbMžÒ0à Ù„ ä@VÈ`žIÁMÒWèkóÛÿ<2£¨Û˜9¦Á‡€@Ø>ÓBûýÓVhÍ0‘Dõ¤Ž,&§Ö7ªlþ³7€ÙDd¼J°x‚€ ÂäAŠ!-\ƒÙÝÞÂÐèך„WQàê…-Òf <¾`_òsƒã£ÔUF/úЗ‹EVŸf¯þµÎ˜µìsnÕ¬¸wž-jœyæ@„î®k‚:¢T³ªD3ª©b-d¯ŸVs+™Hõ&äRDO¾Î~€=ÀЏÇüŸºòI|h°e²‚ÿóKÀ(XoWÄ?Ÿ JjŽ 0 ¾Y6™§HX@ïøhþa¨•b“M² ®¿æÕx3Ô‹8Dv½†ãÆ QAÜÖ˜€O0{\\L0*^@!„ ³ ôDˆ^/2!h‘­û‚sÉQQÈ¿—¹/T ÄÇ%@Åɘˆ ‹í‰ ú†ì-O™r?µ-r”Ç5h¶bQ>ÉñWþÞ6—XöŒºîˆ¥s©ñ½JW|¼š‘¨Å¥Ž Ê+ݲ¥A]Ê…` •0†2ÁØã¡sÌI–>óÄ„ã€Eð–üÿ; HOê߯ õÑà_84Ð X€€Ò †CC%ò¯^ÿ2üS”¤¬¿th+ñDüt½ÿ‡zJ$jÉBFePœžæ›2®N`‚LÀÜ ögu‚t°išÃWHÕ".€ävôz§ÔO°kôéa¡L™›sR@u±(­‚èég¼—RÜ3T@Ñš7TD‡@–/Nd¬€©­Ty´œÁßçžý+l®ÖWÏïýô3m—7#v_2œ”yz¶ž.™#©(*O!Ù##+Ô³6¸™Lëb\XZ<€ÎΟX °€|%É7ÀÏ P—púG 0@BOÉŽf}26q€A –öUÂRTâËòü¶ãkÅÂ.(ïÞLóÑådBm ¥«÷p"Vˆúcn½îîa\0@ô—S ÌpA±êi˜I裂1ZR!ŽîÔä¯ý4»ÆCA¬ ¡A(cHðêÕ‰†˜á+wÒ]'ßLWÐ D@ìSÓ  ½Ý›Ò{¿ïÅ”V½×Ä¢5—¾èïž«íÒ}óZc÷¯7*sÏÚ ˆ‡_?ŸÏ•…EÎE¸'¨'‰>60OºÍÔÀå¶x1£R¯öñ’Ké ,, ×`1€ú@þd> üý=ÈÆ¿]-ü°ÑP~k  d{7PA6~èµrß°³Ö]Âß#Ô†…^+¿ÞŸÝ”¬å®ÔPÊ­{¸`Ü(2È/jw@£¥N0¡9Á­Ÿ£*€Œ@Ñ! ¹±šxÜÛ¼28ÚXe}^D€§˜PõÀé¼|µH¥åq†AÛ9à¶EN Ö›ñÞ7K©‹þÜ•EÍ‹ñ[ºqÎGô“åÜ5¡¤è+íOII¸ssÏN-î©Fh€¡‘(ªê^¢!Y®Ç2›É©¥9I2ß{ΪsFÖßþˆÑáøÿþP7à À}+”¾o@HZ)1Gxø³Î%C€/Ï€pÙ€¤˜P™T‚`Ä>2~9¹‹ ãùëa‡R–u5VŠqî)ø`ývø¨ÍÐ)¨'¦ŒŒ¨)'î¤q(r<ñçkL sêê9` êñð@0ydBq‡ÕZwÆÑý(5ÿ}¸¸ŠB†i§šº¢AüÇqÁ•\ŠýIyþâÆN3€J­>` €h¬¹/*ˆ €ˆÊÏÞš 0â»b‚´²%×{ø^Çhö~|i¬¿¾®Ÿ^çfjwA}^U•ÐgDþüW«—Zªd‘€5”;F Pãµ^««À:¨€ÀÞõwq6¼ËšÇ ©=] €­ÿ\ù©Þ+õo €ÁÉlÂߨm0¼Ëm086ÞYvöC|Ä﯆?F]S’L5ÅL²É\ý£€îüÑøfØN  nã €q(¢„ø`A‚ûuB˜ (Ñ&aT¼`ˆ E”^{~$žÂö…†X)À£ôç$xð%g›ÊÈtÿ@yRÕ&`é~8«§IåÄåS “t Þš™-:û“ÌÀ*Ý=ž_øëçN9ÆÊœæb͘@s²ò:} ©Áò[Ô²…Ø•¬dí·²Ÿž¹(¨ k6$ ª0 ¤¿v €[×ÿÖ>T¨Hýþ³Põ×5àç?@ýà_i@À7€lÀ@s^)Æ?¬h×_]Þ ¿§,kÆÉ0|øc…F|©ïÿ¡öÌ­T+L ™¢ÌJf¹Ï臲Îij N3 Œ·€Œƒ‚«@•L`Þ8r¶iÙÿ¼á« d<Ô9JPP9AŒ˜ž›"ª H4näÖ±:½ƒ‚=Gž«qj_½xß/9_‰„³`«©ö¤V‡ЭV†”:­ÃŠ•* œzôN\ìIÜÛ¦Ê6™\~ÅÆ¬T+ á®ZêuGT€œ¡S:äÑ×½]³±PA”nˆõôI­~mb% ,h!}ï°a—£Û¢þ¨ÿ`ÿ+ý/¬:´é#GÄ@ÁAS6Þƃ[ÉOæ£ý[ÚFZgc£ŽßgšáÑúΰ­ÁLWïáDˆŒÉÌ(ïY<Ƹ1ÀúêµfWPùÍ=AÀ„àLh« €õÒªÔøøkè˜Cޱ‰WØ_%>€ú½¼<˜A³ä7·Ê— €pk¾š€J/)wíèêZÏuy{_ÖeŃÈk½-ÛõêýÖŽ*{dÜÓ>?â.È!Àå4…ý«í9s5ª`ì³ýJ²TÚ“­ K°c Ê“´–Ê_«x:”@<Ý“0fˆo½~]C‡ßx¾$õ?M¨ù$ƒBh& žøù«¤»ˆxÉ?ÿõÂÛŒ¡Vlô²lñ/Çé~kýö°=s›‰Ö;|áÖÀØÑ‚ DWð0_¿nÔ R˜Ð`Œ.ÀOå"`îloª~ž7fê[@€(ìóÊ»éœ'!#Úç@ð [§_osäNÒqḇQ@©5½®‹¼»¢îD”Ów]ÓR}ÑÍ‹wÔ•4Ͻo͹mg|½v »ò`WêPƒ ï9ÌLV¾øó%ëÈT¡å!‰¦£Æ¯•»(, FØ93Æ€‚…RàAc—aá­òÒ‚¢'ÝkÈ*-øø)ðòoÎøøR€ øš @ @ôÖø4 lî0ÐÖÀ>ÆÙ‹_ØQË¿z==üà eY×âd˜e·~`#-~¶{z¨±ÄR5ãÄH‘d½uób±Ç¡ÈÜwfsZÑé ˜ ¸ÑÎ:)@ DÕϺü›ÑzÑÍŸãkQ‹ ¤«óêøf¿ûµûÂDBÔhzñÁPzCS¢€ˆì†"ý¡i–ûäT‘Š;Èúáìì~¿†Ë5+Îê§Ñ?»FÍHUR´ÞÚÉ÷† @V;éët×ê”ì¸(È0ɨùZ:¯ÿ›t•LÇèdÀ¢(Ð)pã ï^’ À[m (,ç(¾ùåØ&°ôÂ? À#ÿb‰_ÀmS2#À†°Ñ¾IÖÁ]Ò§èÖ7ýxø½°¤šd’]øüQüîúK¾ÿ…o82`Í8)*§õöcßçå8Ñ âÚ¬!¡¥N0›€ =îðÆ0¶0„ܰÖMí›_4P$ºír»ÈΟšJ:m€€¨ìª1¸#‚›ës +r’Uälð•Þ®+€ +@úà ç@ „(Íì¯üúðvvUƯ¬ßvCÍ1ªÈîê×ÿž ”–Ê•¿r­d°ó2^  í÷ñ÷Ûå²û”Ö÷ä~«Ùh~ x9×xý¶ ¤o,À/À’ áø’1‚àæ ~9–ù›Ð¯E؊٨ 5ÅJ±ÈÝýš€F÷[Ó£HÍ81Eõ«=Z«’ö¦œw•ÀæüÔ a¦AÍá00 ŽB…@ïÐz'ŒæÅVù>i°^¼ÀCU&‡€ÞOÌ$A WCתˆ :² ˆ€$?˜Â=W§mrFÀÕ ÕS©ˆ¾,ÿ˜Åœc•½m¨%W_§VˆSyìv{o-²ÐÅJÜù—U…-) @ Ô‡TP±³(yù¾T`Ô•æWâ:ïpó"0X&@ü#rg¯l  ©Z¨¿’Pÿ2_ûŸÚ€Áθ-€‹82`Ø`^)Áöw9 ?þÕ˜Ì®ÛøøÙñû¸ñ·Æÿjd¦\ïÈ‹Œm È€ ¿3Àìgás%DˆA0µ­"€4=© xg<ã"iHd¬ ¦µæt ¨‚¯šoTgè ý/€¢Aß Aô7Û+¤dÐÿWSª Ò“‰êWØ$,/¦•ýÁÌ–ÍþP{êÒž¤Tìzq|¬ìß·9$ÙÄL5«&yäžÊJ÷¸rg˜öyȲ۵•rè À ¬í@Õ.bôq}÷Ä^ Œq(ü.æ¿ €€¿}H~AÀ¼‡€â€V'Tà (à°žøEÙ»?n¨t¿Éïf3•µbb—fÊóO7êo w%õÄÁŒ­÷È €qAåÄÿÐ º‚SÀZ?Ku‚œ`& Ñj@0F[UåaW:ä‚Q-[ ~5Í”œúz‘Ý"…ì“OzJ`ôÏ@f«'"«Ò*€}]xmå˜êE¯Ö–ÔÝÁV ™CRÿî«ÖëX5ïtÉX:÷þã¹ì³Ú娤fú9À«?>®/ÎbNJ\ VÎ_V9¢¥®ô¢  COÝ]Iñ_R@1°¥¯á,®`aÀëŸÌOŸ ]àÛÿ?°| 4CC¡öÞ @S l¥)^)ÆÙ«©‘?›ßû‘”D]•ašÛŠH:iá³ñöðåº¯Ô …TžETÏõ[å‡"N„ù]fñ¼Ô Ò0q £x*€†dMê¼;Ö¸>9ÉÍf¯õÞ ã§3Ÿ ‡ydÅGÙ©¨Ö¦€©@“'‘ÈÚÊœÛh™ûôOwy»tçb¢šqÔÞõLW[qßXP½ïci­^# X ‚V(õ<_ iæôså+t€ŽN`—:Î쟾Y`x Á"Òª=-ƒ‘«rlÀÁÿû‹Àˆo ðÙ¿€Ap I&–‘,Ø4¶04 >IÖù‹€@,~»þjy{ÒaÌLCM1“ì‚§€I|Fü]lÿö"Ó5ÅcŽ/@‘ãy0ï °Æ&L„} ‹'Ș<0†‘)BB€)¸ýã^×&i(!Õ¬c3ñqÎl5{JáÐ\@@'k/fB@åëÏg4±R§ãi÷ì§×¬°¥£ªñôîŸ,ï}ùÓ2·Wšjw= öÉk·]¯»{,F>U`Ô‡ûúu+ Мz/ Ƽ‰ T´¨ðàÀ+隬àµÿÉ€€Ÿ~ŸO,À/>ùߪûаöþÆxm.•·ÿ’@Ó†jc€@>IfÙ§€€,#ÈÿS.?”rª)fŽ}ö. 0ËÏôj> õa™PkŠ aöu'EëL–M nk,˜ëÕsq‚ôÌ4°èƒ7ó^ÀFn &ù{ï!ŒöîÖx‘AÛiÍŒªþ¬µ€ŒÑZ-à·oùy×^8{u®ª Š¾Duí­ª*€*ïñÝ]Q%R»aªÁZîL[Yθ+F_ŸÏ?Û±˜£öÀ-¹Û®I€sŠåìöûMváÑÖP€z@‘ŠO>š /à–ÿ,Øñ7õú€ ¤ù7§ `À†lø’P0^ÖÁ!b(Ðô«ËÿŒ­påÉŒ²®Š_~hñC¥†æ·\{NyõWŒm`ÄÀð€án€:AZ&t ס"rú’z0C>°‘H(!øžûkˆÏ €‚ ýÞ ܼÿ‘8èR‘@R=7hǾώ¬KÊj­4·PÛPÕä{Ý&,žÕ9ýáoœì¿®ûÒÖ¤F}3ßvû1æ°er6¨—z¸jJïY¤LÕm/ËÍ9*e(Qcüj \®`}ú—cÞm¥.€á© X¿ü΀2 þY€4¿ BþjJþ]6ý¬Öq(¦>J à6ùÕÙ­ˆÉÉö»úþþUŽÚðÐKŠ_šnø½q¤¬Ÿí¢«÷ð…0nPNü;ó€ÙT@ÿ;Ô ’fµLhC\…À@x1V¤‹‚L2’=,ª;€WÃÚ·[<à¬3 @ñS—wž:zzš^ @ɦܙ¢ˆÊÀTÒ(¢êJkóïKÒ=ž½C“rm]“WËâŒÙ¬ÿmzw­ëmnpA÷ÔM’Æå¬Ü´ùèýî6F%CV.t ¥¿% êÁàÎz­d(äš  ,8þý  ÿóï`¨É¯-h‚;ŸÝ§ò¥ØŸe*à) ÅC0 †ù‹_èöÙøõØÅ— 2_¡ÎÅH0\ýúÃÞ~5Ž ÿêC¦KÔµ8Q„Ź(Ïßóú9(â|˜w©€Ù¡N0¡ÇÀ™€`ì ¼T$ªA e¯{dÄ» ¹v_>§AÁ*óª^@…%NµR€»aC@¯âw¼¶Î$}è×WæV\§dR¡§«´¸h于.9ÓF-ó"F÷yq±¡dŸÛ_/Ï®ÌBãP2@*íþF-}׎M —V@tNNÿýøÚ€ºË²_~{©¯[Xærß‹X¬Èj @øx˜þY@  @Òª@ì¿tü“ÂNÁÀö^IÖÙS¨…WËŸÎ<¶+†º3Ç1{˜øÜá“ó/Ô+G†«fœHeåy(]ØGìÆHOù‡Û¦ñ, ®ò-€Ù€ª^üŒa bL!€”Wµßœ+¸òJ½~öl!ˆ6ßÇ «"{K…dÀ ³Ä…¡6€øgMέGŠˆ$`Š¥Y@¼rô!?Ü´`F–ÿZ0`2û.õ5°[Ýx3h@k–Á¸-`~øåswÿ0Hé>µÿÒ™„Úðð‹òÝ;,SâgN\©•”©îâ €ePýÓï^&D‡:AN˜Ð.@0ëÀK!!€Œ$«›¸® %”#ãÄPEæ’Æ¬ÕU÷äUÏC¼5¸:8<“„-œ˜Z>ÍCoÿ§:¦’‡õúà.¨ªšìHJUÑ]¬·Ž…_z¡=ÃÈŠÔ½e£{š˜@­8À\¯ùN’ÙPyÉÚ3.d©©Í½â+[ª5µö¿ùÓ`à†*Ö~4RBض÷ÔÀ~ €¯òÆØ$u]âuØp›`ž9Æ™«¹£fé~føc†«^cæg^"È ºõÝOF8f 5ãÄŒ”QÔT‰¬«}ý6E<A—ßïfs":AÞ˜éÃYô¸/ Å?ÌŒC~¾SÛ„,`òטÅ9‹*¯¯Ë%ÓÝ? ¢¶ºá,¥¨T IŠ0¼v¨**Ðÿ·£bÙ@@‘•Ù…  Ã@°’Ïvä–›$Kþ8gž³ì¯«¯ŸVnÉœ"7 Õ(K_VhN1h©¨}§ùøpí㈷D›ÁŒÑ(ètS`qïí1­CÅÖ{o‚°Ü ˆ¤)fÈÕMÀéÔ‡Ý6€ ÞYvöC@ÈoëÍïÿØ‘™„šâ&¹7赟gx´ü0ö³K¥˜¯X3®q=µ¬! h/êé˜I€.Þ0ÁUÈDAñ‰S+@tðÙWU¶®@TFž»¹þ»Q'8.F(9xiMLˈö/TTý?~¬€¢©»!ê~~1€ä²¶ìZ½83ePº;Ê‹¥ÝX;Õí½úéQfsqN÷ƾŸÇvůfî:dTÐ乌ÉdùŒ‘æ8ýŸ©fX|M[4(âá£÷gœ/ _$¬€øˆùá10ñ 2(^¦¹›ˆT>¾~¶c¦¡fŒûwˆGË›¡Ï‰ Zq"RT+‘EÍAU¿ 2~˜Íij NaSƒðÀ ®*FBõéôpÇ|ů‘zÑÊé.àÝ¡>¥à´y«usm:Tú΢ ‚®srr¥Ý¥z`=ëiöÊ8ó’×Þ¯ëº_z3 ¦döx_®ëì B›60þò×UÕJ¨}dàòh]í*£É(0ÀÐçÀ½ß»D-`ø¢Þ?±Àw½rS † 8 À6¾ó~(YØXHâØÉï0†ý`ŠBüV°Cëñé_‚ ЊÉæ‡HW]S p^æ†.þ©‘ájyK¶g¸×µxèùî—Ê´þ£é/“£èb¦®ïÈ €ñ¨d(WÌ®àö7 ê*%€™€@1Ƶ# !ks.ývÌê×H·«­a •Úí"rвf2(@?8±þókB8Ô¯÷0d¦@%EÕP¡ÆL/`µˆ‘`ô q÷/˜¨$Tþ+È)¾þ^x¾!A–§dPpà‚Á+€°7¾Ø%.~¥Èñâû/vÕ°6\ìÂîߺ9^Íïê•‚Rv]‡?È[€‡rbåï9 ŠçÔ Ò Àæé`ëÀ ©"àóûßZ*D, “(Ý{#@Qµ»˜—é4¨¶‘ €óÐ7ª•îÌ4U€••J9³ëÊÎp¶zöÁÞÚ&•¾¦‰ÝžÅsÍusUgq9}E·»Ç+wÒ’€Æ¬2ÜR šê>@饾T9a4 ëõÞéSÆ×@Ò‚¢€Ïgü2ÈsÎýpÿöÜÛò, JÈèÁÿ¹` €0¿ÿg àŒ_€KêŒ 2ohz@Aª€ƒEi~96ù]Dä„®ý;Ã>¬(QWÅK±ÈÝD*ºæ­ð¯>)×'FÔVe¡º›qã PdO„v 5Ìiê„0¡ÇœŒÑQA¤ùER—olO)6OFÊd:¡èccuÑâ}@üëÑ;ñÐ JyxÖC[¿Ð ïò£°—ÌkÆH°ÚÞ kw3ì-Ÿ ¤V| cÚýŒåPäx:˜Ì&Bóùu‚ôÌÔ°èqTÀDP1UpìëZc hEC¬$ìû„.q¥žËÓÓ© †¾†_´—æl",%ìBˆïvè€T#§ ŠlúAÔ\C^9òcˆ*ªˆˆal6í¡P&)ãœt؆fb˜$´Êj›VÖáöÿ€v}ÔÓÏ|‰š±Ñ«óõ{«>ZŸêåCfºº‡+ÆÊ ¿ø˜`ö€ þP'È8‚ ‚1êr… (VxÐàkÍMÀ-xÀÀ@³“=—¹ò—‹ÎWn• €¸ˆ4ÎÍàëøÓtÔJ@W/AÃÚCDï-§/UJÝTÜ>ûËZkÝ»½ÖðÚŽ·îŠï£N±µôSN•æLJÅÃ…á­zš §i1%»ú &@ %Yª¸5¢Àr,8€àþÇwƒåj« §AJû”ððõãR¬€ „Û4ä Ù9>°Aþø¥¹‹,2ò*¾ÿEØ£"© »8ßüÊròGóì¡&êյ䅷½¥ˆL zÀ#@Ô ²fÍ¡&p^*ÑÉ@÷·°ê•H©2ÈÉ¢I×<Êâ©(aÕœeûùp žÛîø!ƒ`NPËà*Œ 4Õ€•J$‘õ­Øå D©«OxP4íñÀ^¼m½ÏíÕÕ×GÅ2Š­¦Øy¸~u L…J烥î\¼À^ƒª«ñ´HÓ* JÃÝ20Ú¬ZºÀ€?3~€g ˜ê‘à€Sž·AF`^)ù»ˆ±ñUß È ²¦XÆWh„϶§Gܘ fœ(Cʬˆ²h…ÝRDwˆ?P³xÞê¹LèñЂÉEU¢cÔ¼&q¤D´q|•š9Êéá„€3/2IÛ1€XG]t*¦* €(ªòê³K‚Eþ?K¦Õ!K©´‹µs˜‚– Sk—Õþå䌊““}i¿Y±‚)½ò·¬®–}ÕÀ³blæñÒPúýéÌì¥%oÔ®=ùæ›þcv¥Eq_ŸÆ¨h5€WuÅmðwöT¡Þa@v4@ƒ¶ð7¢ë´ôcóZ>cȰOggSÀ7 HÑ|­nÙ`Gÿÿ ÿ ÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿûÿøüüûýôöìïêàáÚ×èÒ‡…y…¾IÖ™»€ PünWÇŸB˜1Ö3É.óˆäoÆ_ÊóøcZS š‘‘eÝŠØÕj“ãÆYˆãxAÐÇÀâù@ 7€™„*¨ÛÆ$ŠWBÀrU¾áÈxõÍ¢†Ó£Ì+dpͧq.mðžLE_0•6xBÉHõ÷>4ó¨Îb*tq¨(è¥Ô*ô2öq!ª:¯+‹Õo<šÞö»¹Ýµx{ZmGó_wõb½1Ôt@$½ú_Z])Pb’­câÀó¬­T3_Tí@ÒŲ.O²o_ý¿€o»0Tþ¾@€üÿ¡`·êl€ О9¦Ù—€À¤¿“~ëþ2ü 6c¨)^Žiî!" è´Ëxÿ¿‡9°nãDQDDÔäj•{Ùñ0q˜ V‘Ïßu‚ €™ c2(ØŠ€Š¦õÕŽiYŒkº™ÌxRíEÅ €œ·|”Ò®Œ$Ó;LX©Ü „PP¢x·PÖWÖDеMiQ€~R™SÂ3 * ÒÇR—;9ˆ9u"Ê„²H`ÛîUn7:@Õ=Ú~³6Œ" °Ýª¦·10ì§åÙ,«æî^gV¢üðíßÞ lÛH`lYwý àË÷°Ë_Mÿ ‹§À¦z`€ (}>¦öå¿jëo O^J6¨V8ô’¹åì¥F~4ýyJtÚŒ®÷ðZ,ì‰ÖHYï=ǧùåÄÌpÃ]ê9`BqÐŒÑ+`~À=ˆRYz.Á‹±Y¯kk¯Ä‡Q–/@í .")ò{òWj €ªJãç.* ¨ ® ¿þ²_3s棾w. cQ#•Y9rb÷<ÀÁj¥“ ;$9YC³¸è¬çb¨{qÀ´{@½Š7\ûl5¶ 耵 4ÐlÇ¡ŽsüÉ×O’—®·ÄüCXú[pƒÀ×ùE( š Æ@Á0´L3ù¥™ëgu4õO†?2Ú Ñ+³å³wwêG}+lGĄ̈õ¯Ýˆl¹ëbêkS;('þS½}@tàï@NÀLBÍáA@0F«À …*>it1§ ¦’1ËF~º¯ž[J²Ü0øÎ¿«…ܧ¶7ÃÙÖÄVx]×EÝO·*€ÀÁ #¢ÍqSRéÎñüÍØÛÙ·T^×E^Í¥†àÒô\\f)ØæóÇÏõj™z°*€ûxéâÂÒPîzŠJÿöHý+£8›¸ÊhôÂütw3uÏ {ŠR‚º‡/f€q£ ˆ&~þÅ-=@‰7:A:˜P<4€`Bà§*–––û»™L‡b-RBÊ„ê÷sÉÅg€¢…²uЬA¼"j’÷@Bñ¹´‰¿Ÿg5Kp9Kº¢#” ¢¶ÉkCµ¼´î(`M¼UÅoi’UMÝœô.ë —ûõ®‡yRUѽZm–Ùûìik+ãrÜ[ ßçG…u`â-’,€œTÓ¬0+aDÕ¬P/F?zÞy <^€—©~íÇ’ÿ06ß± •¿JÈ’q4üÚ5Hà ?lÀAË„Žþ§U÷÷~«AãÓMf ºÿ¶Üàíz:Û:u|]>0!ÔŠC ¢hv1Q§ìûF7 œXyo€Ù ÎB 0 â` ªª"k©,uô­ÁýQC¡¤üßÝ@ñ÷å{‚²wxA24ä\jùìWïm÷§}œy©Ôë9YÿvFܪ`›F#®ï¡¦S2(™^Úx9@/¿ÚM™êB¡rH›~~[3t`± ~,6Å× Àó×büaï¥ Ü@ò÷s  ~ëþ?}Ùвç›ê+x3Ò`çB N•Mß—bh`€>È%r·û}ÐD<ÿL&ÀµâŸ ^Ï{’iQÇÓE#­¼¸cÎ0¹ï€ k"M¦ Z]®BÀøâý©*Z‚ .@`-É%HžŒÛTø½¹­ ¶òyP"‘ï>,—t¹…íNõ“óͽG“•¯Sw¼²ëÌçßåõÔúaÎI‰u/úË‹ÁÞh ¹¼V“PÍâ†ñâP”è™Ü õzÁߪ”ÛKþÊý`Œ$†eÆã®!¶«<é)ÂÈ<2yO÷´7õ5@€=î¿62 ~Üàż¼Ë!v˜¯¡;Á@bàFå2âPé€þ§w*h¸äùW:<¨³ ws‡MÔý4+׊/bŒxô€"Û† kÊ×òâ¯aŽ:…U$䪊œXÍ/¿ ÉSaD*€Àl3èzý——+)Á{*ÚÃM ˜Ü•Ýyö îÌ«)¶÷,Ï­µ\š” wùôûå²×«êÒü}yýër»SÎ~qUÓÔ_çßO9˜x"ÍmÂ0¶8{ÝŽ·•È鞀¦Â>g_~{˜uÀŒ½¥jóDb¿Â àÈltM°ùÞÑT¬  T~ÔßQŠà˜3À6 ¿‡2c  8Bi2v´ñ-gÌ6Áh;šª 3;ç þ‡ÙûùT±½ÓÖ˜j#Y˜yîOƒ¦&ìwêSj&/r€£ÈÄŸÌÞŒ?>Ô)|ÚJ¨ª¢õjdc¹^õê·_ˆâa \ŸºX%ñkVk%{ðÀ—/æ7üYA̺DÓ’êZ>ÕoF™þþhæû\tÇûõÇYíýÝú’¦× dƒ¡>0òä(6àÂZgnöyJÏ9Ú²·É· @‡Ve z† €Ö†®ö/å#ÔÅöŸeœ†€ƒ3ÀF€ŸtôÔ *Om)R`¬Àƒ€ ,Á@!Á—`@,À|†ÞbévÏ—¸L#Ìâ£(âši¼µcA6-$`³Á~W¹Ë÷D&Ï[#Š„j&sQ.{sðm]„1“{áPAã‹K÷bAã¥(ϸ€o NIᡪjþ _ÓÏOvý{î«@FÐ À£š‚í])ð K¡ð„ȺJn<ÛÜ“íw†ÔÁnOV¨t^ÏÜå–Òq|L¸ º~ÓÇ4æI®³²¨ÙwR¿½î“c#áœãVº~ï–Í”Ü yÅ@ÂÝRß³H+Œµà,Êù9¶!ƒéÔ=ãO¨Ô6z‚K¬Ð%D¾w¦ªó ¶+¯AÊ(òÇ2o0pJj»¼ÌÜéV¶X¦Í€ ¦ ‰å¦‡myí½Tèlè¡žW•ÙsûœMÏ“àÊ Ö”ì=exloÓ"¶æ˜š¼èvÆñÀvÌ6µÂƒªªê1þ^¥U1ÓvRè·@fù,€/n?ò-¹¢d²]ýhF€rQr|ñýæ@Q$yXY©f:…5;X­Ó6ÛõŸ{íý4Rõ¸wßëýò4þë^’ªóªÎˆÜ\îù%†€ÝÝW€õ‰è­Ð20 L°`éq—)Êd_ÞWíÇܧAj½æØÇו¤òJ A³×Ò›pý¼&€^ëK6@nÐ64}€<?ZŽO „2J+cb\P­ï ÔâŒw Ô„B¯ñ@dŸguBk(^'¥Ù«Nq,B¥‘ pI]”e¶ûÛXË‹<‡‘#£&/Z€öPD+ Ì6µÂªªê¨Gƒ;‰q1CbT€D[¼Ë¥#çʲyˆó)%ØáòTݹ9ªr}naÙƒ—ûïÓiêÓ›Ó¼?îo¯UC½õ°‹2µ. ,_ìh¥CÀ­òkÓ*ªu -’B¡ƒ:†zØ®(Üó÷Ç€ M€u;Ð&±™÷x?.]ØÚk3½hûû1Vë+©ô¦Þ¨¨DÃô×#£ß“ŒÁ/A* ¢äñ9T£ ÏÁ+¤†ëƒeÄgÉq÷ë9÷Þ²ÃÂóÅn9qÕfÖb´ëG”>u`1tuƒà×>0ç„öu{&ÐZeRªÉsjn»Þ£¯ÂzÄ­Øäũ〱)ç`vè —”PUÕ8˜ü5¬™Ü†%0pÊ—‹ºmÚ jðzIf!8*%_3ÑNûæw¾¥cìfô~´ûÓÃWyÌ6_צ´,Èóý£`cœN§m׃ Ì"ëu>û…ÒZF‹l€ZM<Ðó±¿YOÐ.  CwÆ»þS«™ÞTnsì˜ ÐN ¹)o–eÀ*JJ•ò…‡ŒÃ`2èÍzsȳ‘sA*„§H)²˜Í9bn „¤?ÈÂGl'ÄJ“ƒÏ޲Ê ,mý!=õ]X{d²L °Ý®ñ¶ˆ+å Gu“’Ÿ™>^׌êÒ料u7 ŽšÜ-5ï_‘!Iž$ìÙÈŒ.ж±ù'46]IIUUÕì´%j0¡·'š’åî8:’<%2¨KÕ‚=QNìUµóÑÒmeöî/‡¹xpÆ÷ŒôO’ @)ZÑAfë÷IQ&½WÝ“Y´¼€/ÐÜê÷yÃP'L«_N}¹÷9ìxÍÆ°ÖKoÄVŽPÛÙÝh›Û9Ú5Ã@ÎIæŠò%*U ¦»ïë¼S’¢òÿ×´íö›]Ý‘VK|@“çÕwéF¿¼Ž£±‹À½x3Û(Ñc»º·#a³=œ¶æŠ•ýžÙb0gØs·Œü\LW3vò=ôˆãÐ8·ôÜQ†Ï[™m,s©ý}o£ö0½}}s›¹ýºè1Çàç½ÑWµ27¼[»/:D[wrÐWHX€ß_%ö\™Dd•»ÎÙõh0ë}ößd\>ìa´.{èü8Îà¶Þ›²^Ï®¡5`‡ü?™™£X¹i½AQnÞ¶ôüQ÷b J‘ékŒs˄ξ+£•ToÊdãuûæË"{»ÿzœ–" p#%TUUí=;wvc%†Û~LÅT¨<óâÈ·OôP„^;¿_ržàáá‘ÅÃZ7n+½¯^òð0x8æØ{íÔòz4ï®–^4w €3r.w;Õÿy nØ2Jü÷ÿ2íÉ`¢k;•õ`î}æÛýñ¥·û§¯ãÉ3©h4 œ‹†Ž]¹¦>úV-¤-¦¿ÌcllЛ®&ç˜$èºëïBA¬y/UÞÒͰ·E"äë;³%C ?ñSGë‘(¨®£†³P\FðÞç¹åö 6ÎoÑ®°e:ïÂ]ÎÐò>¶”êÖÀÉX„ŒLMÞ–mû 2c¤pW(6ùqvÍa t ÀˆGQ„ø0kPI®²ª*¤íí££~Þ!â>e »óÖ>HB!täïá.Á^W;!À[Ý¡\öôsa¼ÁºÝtõjýPçqÙÿx8?ö¸ï_·ÞÌû½ÌÌqö1¦=׫-llk¥¹)c›ÜFõŸæ+?·tàU¿özìû˜™gñ>‡7-íàtW·gÛÞ¹k hëK<įRJTòƒÁ¥̪rjquç|²­Ýòõ>H»“Áà¤èz SiÅÂ&ö<Œà–h¾ˆ ”,ZÓby¤mˆlîm C&rH¤¿„:øþ¶Œì’sÐÐiJêV2¨×–mëÛÐ7,BJ:"¤ØøýPÑÂ^)IÓ_ôàÍŧ‡²Ìz*WUUÈ:·}ðn³¯H›úCk_kÙ1ÏÕ¢¸Ÿº×ËýÛú|ZZ^ú»öÞÇîäÂxª–Ð)-·>ÿߦ&ahŠ»n=§bÚÜÿð¦@„Œ3ݳçY?1ÇÄ@i„Ì|»fŸyì]¯ãéÁ˜ž)¦»Ž ªÞU3LR îã£yXXà÷‘ßêW#×Ç~œ9Ü“ÁŽ½Í®x¹¤:&'ý¥Ì„L±L:Ê´_iÖeÚúòê²Og¾³¿jלÓN,8!Ù9+]¡ì¦ô †ÖP¶t`;3}Æt¸”jŒkËFì}/4tb©/¦Üø}˜æ°éM^fö7¯…ÑRŽ…i¨„ªªâHð‡”sðÍ{áKßO½Öûñûu>¯/‡Ëhïã=]—Î\öÇzÏqŸ9ec<öWòtõå¦Pý¹ãÐcŒ&²†| z3²}ÆÞ&•Ùÿ˜½ëþÞ6 ´WŸ C&·†¬qÁBRÞqì9Ž?O¼Ž–ÌkV;¯rBÏ,Ь‡iÇýÔz± ëÅÞæÎÓ_oñ<¦X ÀPʕȦ ¦ÃÎx{w2£`,ln!V 4Å2o•¿t£ePöŒBC%TU]v…¨§ßç¹?¤Wûø¯­N:K×°Æ—ÙYùoÖß½î×·~ö×ËXׇ[Í€m.Ûš Go2óó>´Ò0Z‘|ç„óÏËv&\‘$‹5øU¦Ñ @ëu{~ö”µTAºœl’!—dêL['TC¾YÔMM&³âÏ|ävJ.ƒ–@ÂÖdÓþHjõ.­rÂO!ñˆe·Òï‹„cýPu6Æ9»† ,$,ƒÈþeço-äÛɽ@é\§µ2oh±e«9ÇÁ5çrˆœ‡Âíáh¾µ¬`Í)ˆK4Œ)ÕŒeË"ÎúLè©5“BMñšmaN8ôþ|ÿi>ÚŒEYURÅ*Ÿ§M{¥¨ùê»+ÜáÎ&˜pÌÞûë¸ìÛÇïo—Ñï­³è{û²“‘Q쓹­Ö(1C½Óó×·†zn€ Ujj¦ý¹b5Â8K˜|å€Bï@@°ÿ 0@Yñæø55>{(Ð9gXr—˜æÀ } ¨`D鷞‡©…ÇUI¢"_K"ÓÙg>»K%D‚Ã:Ú&šawr%yHS?SJA•s®é+zh \:9Ë6.ÌhÈœÅäÖ¡:_ÁÏbΒɶ¬ðÜï ¥ÜIi 2@mx¶œÌ‰ßí·ËKÒ )Ô¯-{7ÿò7scº‘©ªª*„z×CkgZI©~OKâ]>ŽÏ„㯦¯_Oÿöåõµ{¨Nÿ|ß{³h¦½aÛ³3pΦoíüó5pâ©ÆÄ÷7ÜrcË>ýõB‰(ÀÈï29Š~¨é'I±±¦bh1dža( PEÕÝ\Õ94À®æ™ª×Û]\Uj·[–­›WÕ-ùÐúè^q֮ŭهôèáïT¦7½*_œãìL¬ÉvÞV³<\ºØ^·Ù$nšæ\ÉØcWI%cì 6¶œáN=í7ó%ÚÉ#ÅZñly²¿Åo×UÖRS¨Ÿ>TàŽÿŒfdR6’j¨U‚š£õ‰¦±j%ÑbÈy´ë¬Ï_êÀàÆè½\ÕŸžwåuÝߣý²Ì˜ÍYÿxýÜß{8uu ã,ýO•›I%7ÊaÒ-|TéYþ¬à$ì/ô€çã¯3o:Îþ+Èâûiž³ðÌ<îW«aš^Qg}áñÇОÍ͸ú8&Ò×4óðDF²àP‰FªÌôà‚wÈéR;Ô®׉÷a =¦")R©¿KØ;í¾×Á‘¡q~7šÒ²)±¹è†Ù¸íª ¦4ãmbý .8>¶ÜÅNxÝuL¸Rí°l¹‹¿ëuÒ‚™Ôˆ$kÅë$ôïm×W?íf÷ˆ’NªªªŠ€ã±WÝŒ°ëÍÞÊ‚›Ò°ñý¿æÕOïY IKÙýò€§‡ë^߯Jö4Œ‹3`^Mꌽc£U8ë GT“©%Ýå|tò(ŸÁa;µä§1߇ܛ{¼h*;AZTûOöÀ0\ftœÉÝ+yV€Bø˜BØ~sÈ«_¨cÙcpñ/¬ŽžÚ5{Ù)Øfó"ÃÀÃÌ¥âKÕw µ­÷ø{ð##•%£ý…EýœONXq{.ìÖ­¶Q(“2+÷vìM6D2(¶\é–~ózV˜å@ÔŠaËEœôÓ_ÑN= ׊×/pìFô1¸þôËGcD%¢©ªòPU!pÜk=Ÿ+ÑF.WßQ}¿š®¿³JúŒù°o—¦Û:œYëå9éïý¸¾šö<Ûç¶÷ÌË`ïsêû™_n³@›JÈž¨`ž8fžÉvÓaÔóŸÌͨdy( ¤Wc©|•ÖViŠê¹0@´6Ž Ë{Ȧåa•šPFš3;:·Um zŸa^Èýà´œzê÷v¼¹sIØ1Gö|Ê€ F°#L–|8#“ç‰ß*“{Ì`Z±¿9êl/ n™»³A©!ÓÀ~¶¼‰ûÕÇÓK*3¶wÜ€µÃ³åá.ìo<ë%ØaGÔŠ/$X€žÉÈ(UŪ*Kö_s2n·Ó27Ðún©F+û÷DöúBÞ>¬ç1?=¶ß—~æÂåùáruT¿2t w‚î`@EES=À¬ ¦˜¦œd%ïJºfL”7ÑpþÚ*Ã0@Ñ0Ü ”SP¨ ˆ–ŠÊl½nUÉ¡½Ý¾4•YÔîÝÜPÓ™Q30díBå°b$yªþæ¿©¡ëÕd/-¶Ò„y*ò»XŒ4Áä× "”w‹ED3r9U!òû£h­ãš‹ó\°fß?*¬ÈœÉ3lBÀ~¶¼é•ÿ©×Ó%8¡¦6`mx¶¼¤“ýíƒfè‘Ríp¢ zoÆ›_þÏçF›1ššªªª" Þ×38<·ëˇ•·oT½Vøx×VKýÇûøû¡ý:T²ÚÚ½µ/¼~î/æp̱¸öÅx³“ëâEi¦‘ÕY ™ç2Y¼¢›Â4S¥-ïÙ}iÊD¥Bè$}‘R»ºóïr:|ý=¿‡§Âä!y¯J¨ Y{•@|wõúº®/ç‹k²«üèEu]ó¾_óih$â~:–q!™;Qƒì¡!Öbôhaf÷[Ž}8‡doßu} h! ¶¼ÅEøÕc¬—èvxkű奜à¬Û±`jC’µá €‘t\¨™†ªª*À}ë¸X'(tÊf`±ó¦ø)ÕW×–mذ8Œy®ÌpÂÛn¹y0ú½c)ü·X}üÞž÷zWrê¾áä@xê!ïn¦I`´Müʹ†KO] kÃLéU߀±½ým©7ÕE½¥Ýµ—Ìéͤ`¯ÐÝ»‡aDwä¦\\4§yTÍD·Ðéž‘ p[Šò½UÌa”¾Àü*šór’˜qyâ×µ¹¾Ï&d®ÃøÁ¤¸{±u§{Ö’lĨshA  1ÞÑìØs>¶|ŠEúã±}ÈîêÖX±V [ÞË.Üõ¶ûUv IÖŠAهǯ~ó™ÑiŠ  éHUUU„~ë=Ãúås7o/­J@†ÛÿzSãqצïmœ³Ÿf¸xÜûûæmŽ}›gÌa³©W¯gÀ!'“kþÔìêm4\UÜ<ßiAS‰Äªµ‰p‹3¸£`²C.ŽòjM3KñÀˆæÔÞUŸÓ=­ÊÚMg»m¼ï1_yè¹í¤§ëuº‘ã´tÝ“½hž+„XK^Ujô9Hq]vrÓv5t¼ÙÑêD?û±ñ|—#¦`T!|é.ï3ÛÛl2´(þµ|‹YøˆÛYÑq5ÇZ+†-_uá¿ývëO-ÉpÕŒAÒ çÐ÷çwîQf¦ªª*­§£®ûæß݇1zVž$|àku)”²èsÞ??wÿ;æûÚ¢ÿx»×Æ´õ¯«ƒQ£²¾P œ9•IO7³à÷졎Ïúý0k©ál¸”žTŠÉ á@3d3ê)ê†WІ'ŸSLeQ@¢™§7%*>©Nª³î86šÔþ°xîþè:IÒÜyÐhoÝï÷ûØ×I«w×ëa'ºÒ&³Ê+ v+Ü×,ýÒ­Üí¦*&úÑý8“õh²ÁcvÀ@þµ|›YøÖíy=pW_=6µâØòÕWþGowÿ©øj7¬) ¸ôçßÙ±4’2*‘ªª*@~{1#w ýjÒnjšBqP ¥ì'·ŸÖNUEUÑ7rÔ€ÎLÜfÜ«ОOUœLþ˜žœ®ÄÌÒÖÞ„~Â]5:v3°?ýÙo§óÒ¢j¯çü9~/¯wî[?ݵ 8˜´}OfŽéL­ ¿k’Õ}ì¿ÅùßÂ#õ _÷k9–DöÄ1ÇÞãò¹©2Ü’4O8ž¶YZG›oÐí•=F,C'¸lhàlþµ|ô…÷­ÛY‚gù!)ÕŒ_ËgYø^½Ýõ’|SS 6-9.÷Íg™ƒŽE *ªª ¿ c¨óŸi‹Ø€&1{šÜ;öUû·|÷/žýºE/PÀÀãKÁÀän>Ÿs¦Ã¦r^ýe¨ˆYþ+pè³!)þCWFH;k‹$e2@†D2$s35Õ­©7ß¾ús›÷OÙïÌÚ#§Ûëø:߆ý†°N÷G÷¯}ÁOa$Û6z$ƒ÷þ…òPD\F¶$K¶Z,£äz0‡‘Ö\cýµÉÉ­»5ñ<ÐÖµ[n˜ë¤é…©gžPàÛ˜€þµüôÿÏí\¸«Û¥Z±kùl;ïÎîÔÞBSSd‚=G .Oþy4±^(£ˆV%TUd<±Î4•M–ÖøyNPü&óªù~}ûDì·iQ\Ö罫3¦úX¼OÇ„¬ WeNõ•ç%É‚‚Á¾9¿ÜÍ·löwƒÁ¬q¨¼¿pÉ@a‚Ðu“™|ÍèV¯¨Q÷9¹¡Õï©«_ÿB4¦ª~RÓ|ÌSÔ¥ç!yü4æsÓ¿$x/Œô¯ß’úXû]HŠX½ÂëÊm*NÒ-ÙVCš¼8;ËC¶çªéðæXïÜÈà04þµüŠ#ÿ·³~e§úöBQ®¿–ï}á ±ã¡zK¤PSd‚9c,úå?µžõNSF©ªª œTj:¾á®€®pí»ÿÈdWs»}3¿žUí j_ŸL6ŠIúÚö¿‡ú34Îï[@UÞ?*‡ÂìWÅt@o½Cî@ã\SPTûAX|÷kÕ0Ýì]_E7ÕÓÙ”kVŠ«½»º OôørøÃèÝn¼¾}BŽIÏÞ¹oþM¦ß¼DLÙäÜp4ƒ'’Y+ê®ÈÑÏ,Ѱ–£¥2²w&q!"1` Þµ|Õ‰çèíôð<ž jÆ®å{™y&;^²/’5EЏù t*e#SUU@Q¿í•¿Ú[Ùh(Ûf4Š‹‰’ÔÝ®Û|.ÿþu›oö=n‹xµ·ËÞÍø8f•CV÷š§ ëÞXÊ[Õv¼×iö>‚œÝ_ª¦Ã=%ÓJŠ(s#÷sÞÛÞ{ã§šµ­ÉÏM1LEßLÎnÈ=ù( œ¼i(R_×÷®¤º[~Hµ¦~:ƪ?»@6]ÝÎJ«nl‚®[ŒËÁX9ï¢ÍÛlz™§(C÷¶`ZÓm™-l‹ þµ|Ž'Ï®»³|à-45ůåk?xÕw,x KM‘"n×7õÈL:JUUE ÛËéjç§LÝÚgu¸¹·ÔþÇ}޵‘ÿ¦ûÃÃkÝ# ™$µaã=cò«qOSÉdT\•¹¡]'¡vA%Ío`B-•œe€dëL8¦ú=–ó™aª²¨ßì·Oýêø:M”ûÈœGÇ›•MÒ" ÜŸÊcf6“LÓc,,Œh«¾"¥Ùj{lpQsßsØ|`:¬„XBGìc‹¥ËÎ @cä€"ÐÏAÁ¶|Ï;ßÔÝ^á-„šb×ò~œÜQ;(žPSdð°ë›¿m£Ó4TŽUU!•µ| •í €×½©ùeÒ¿¬=þøó|ì¼Õ<÷üøú`ǧý±î¿ÞÎqÃÃ>;Vµk°Ù$më÷ä×åf \ûxý»~¹ìMíÖl×§fkžïÿ eeÅ:»çË”»~Ùû49Í3ÿ¿sXÈ~`Zݦì|͸v]º ‰yPùpjÖqK*Fý¨ÓêH,«9m4ØÎmÝ Íâ0JŸ£6üF_ þµü;ï1·ýZu¾+ÑÕÔ¿–¯íÁCì„Eô4¢¦Èà¡¡Ç/ŒžÙ3›ªªB „ZSä53i4Яñ0§¹®Ûãøê>î™On·ï³ï~pŒãÌ«}Ž;SY÷D)}àôŸÉ=$3°/U_T1fLf¶ûU6Õpå]¢zŠëÔTŽyìŸoã6OÍÛù\Ì _Ÿ U:I‰ºàTTöá­åÿ9'y4ìµØS¹+áiº”3 §½E)?¥‡;ØãÕ)ûX¿Øl›±êܕ޹|'¯º–Ze³­Mh†fÈÄL`‹“.dÀ8þµü˜fÞ#w{…÷&ˆšbØòïÙyñ$o„jŠ”Ù£BG¬BªŠ, ´’Ëùz©ýêÿû 00ý>ÝNšy¦gN–æím»Û<çûöögÞ~t ½‹©ë¾bSy¶³›‹ñr*w P̹þþò8^gÿ˜{s4oó}Y7@¥8*t_·@µ½¡™ýÓï  Þ¿¬œ“•f*ÚëôKF 0õ,$99ÛSkR™ëÈÌDIv -ÀŒ2€a;c°7À9Zضüµyñð4KÔQ6hê v\:ëËu»üÅßýí£¬½z{=gƒ}ö]–»,€9pÍ4ó¼ÏÌ3@ϲ\sÍ5ö…±¯Å±}Î~{}óóÿÿûõzœ×·Í5 ^\.wo¹ÛÙçõ×ëÙÎÏ_¯oÏ= Ð,»À2 Ì340Ï þµü¸.ÜÔbz[äš"ÊžÔNmÐn§Áæ—ÿÿÑvñÉ/Ö›Í9ûç+{ÛÞÞ {¦x_x‡™nèŸ‡÷}_žîn0ö.Ëe™=ÀÁ~ýùº½ï;3Ìð¿okàm¹oûõu{ûõv`ïý}Û=w.€fffè~޵ܮîÓvs¡ykºRS3ð™,Ô‘I¥dÈÿ{™ÜûÛÍMð4ÐÍ03O3L7 oÓÌ4 Ãlà—Ã>,cÖ…{x³_˜ƒÍa;^÷ÿ¿ŽÃá yhhxž·^ffzà™𧇆»0\Ì2w]þµ¼[îU»Ñ7¡>‹PM,lÖúg²Ð-5©A  ów®sxhà™~˜š¦˜áe{ïŸûìsÎ+p±k­¦™g g€ÿ¿zåS C aÁ0†{߀™gzàyº»á}{†¡¡cëm.€¹/¶üÞμ5wÀÛšš"˜ƒ¦£ˆ Öþâÿÿí/ùõú¶pöÙÎ믟oÛyýõú¶×¯ÀÙo¯¿~þúù¶}6€u°¯gz`zúp€u8Þžžžèé·§¡§§§áp°¼ ôôôôôÛÓÌë°¼^/àp¶üï,¼ÔÔ/ÔOggSÀó HÑ|­²b/eI¶Üül¼øøBM ¨Ô¤©TX À^ìÅ^û¾‡÷ëpÍáš…Y˜õÚ^ûÃkxÑ/¼ð / =ôÐöµ¬Yxà̺æp½Ø‹½Ø‹½Ø»0 ³0 ³0 ¶üï(¼ÔÔ/Ô*•J^¯×ëõz½^àp8‡Ãáp8÷õz½^¯×ëõzëp8‡Ãá`OggSÀ¯HÑ|­Ým¡/OggSÀkHÑ|­juÇP/-A;ÿöÿ ÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿ ÿÿÿÿÿÿÿüÿÿ äJ IìÈŽü«ºJà™‹¼tª*DèH¶”¹ùRVÊÜ)aÊ”)iSú~ÔºQÜÌd¹À¹2ÊÐ/œÍ±Úå>6yÉØuu »4¬»JV»ï›ëCé!—9äÎÛ†-z3ï›èx7E`•ÈêÐ]CÃ0Žã:[«¯®Ž$ϯü~uŒ<ì÷SKzð§~h$É?“'zçô:y Dá-ö†Eá¥zón–Õ r£+C¬¦Ù{i0‚$?ô"Ìlïòöº˜WË1¯ÿö£0wÚÿÏ„aã Åú(ó³Œo€ÅºþÐO‚[J¡fœ /á"ÝùßÌòþêã(%kÆF—Çû¯ÇCJÆ:NÙ¢5Þ ˜€¨- šfZšÂ ¸ŠÏŽid4&i¦AddÎ$@½ûÏjE͈5úÄ+ ¢Bq—Ò…‘|h)àyy¼WÿQ‘îHD@2ÎõøkY§ö¦†ÁPWÆZ›yiÍéôsÄŽqÕ[g,TN 4W]/N] uØe`€ià5ú£n€ T-€Ò÷ä"™4€°µÿòWÿÞ«ûwö%Y†g@~àvHøó¯HÀ(™]ã=VZ,€a€sžI>3;ÿ½}»ªß¾K=¨)fŽp€îñó¿7¾÷ïµûRFuVôu  ¾²n&€"­XM4… ªp+B@”%  Dέå¤xyµx±„ã>rÿhg§ .é)Zî)F+SpÌç}œº{a©MG»Í3°k½²X ]iCƒ Þb‰T¥ÞDLj[ß8uÒå@”½Vÿ*0‡ÀÀ«¬ÚZÕãhÖƒjܼ  rà|%°á¿_ (l@þ{[ ¨fÈ _$€p@k`þøîþB±w†¶·ÂoiÌw\+<~Ù°Ýw8yæß”÷ÿP7¶‹´¾ƒ‰bgˆ(‹,‹s…²)" ¾ÀlÎ[u‚t0ÓoO‚“Ä! FßvÜo[sʃ+畃¾¡ `<þï€@Ú`ü„¬|ÛõòÅ ( ºV©`eXW QPI.[寓`ŒQ*¥‚hut[³æ£jí'I©jœ®' ÄYß­Ðf– ²š‚í0Âå #ïZU`P™BqÃG+.÷b€ ríATÀÀzûU>Ž[û¶ ¸óÒÒ_ g½48h) bv†ŒE^–öUâÐȯ–·‡zAý¦X&†Fÿp©ä³ã=µBæûê-®ˆÝè#èºÿ_€ÙnèPÔ a¶`P #£ªЫ2 Þ9Gœ~²àJî鯨§(žpùþÒíg2èã@L@™ùy[?ù”‡.KY­C-Ç#tŠ(¹mùÃoiøôŸ÷Z`ÄD®fšðZ MÑ €B[W¯²ÕUºQ*èè†Û /¾ü¿Ö¦là¶øg¡d];‹À\¨ ^ƒzÑXÀ$þz, ¯ù˜y}/ä/¸Àÿ¸[øõ\€@À_¨4AAAÁ€Ç0 ¹›ˆôcÑÞÿC½`dºãZñð‹†º9ªy4üõ‚˅̄ꮛ2è{þO6Иó€:Aº˜P<ÁlH…rR!çç€ ¥çt“ï2"àò÷0QUPš~/Ö±—'= s¡ öH&*3fìëÛºûŠwõo(óy^J}fÕ½ó¸Pæb´ ¯‚‰åÛM¿ÉÞ@ñœ(ÛÿØ@†Í‹àn>9¦Ù‹È°!é³év›™‰¨«bäæ®"á‰øè¼]OîuU\Ðo\ÀÂzÿ:qM¬¡9'¨¤3€™€ ÍáЀ`BG!Pˆ ˆfŒ²ò¢¥dT±\é=“QVš?“†B<˜áýÙ‰R€LˆZnú5h **ýe@e%¾‹"<Ü€ªáx´€“ÔF®®v¨²t%yéké3+Ý.ïüéSÕy«YWµY4mÿzE¢µM¡Sê_ݯÜ\²0×(@€zú¼0p}ïí °’=c`FÒê°þùK 3 ßý, 8|ãßú_Ï€k ÁÊ à¶ Yf¹»ˆ(¤î?%· æ+4V’Sö"€þöÓüjøÒ™Ì~Aåü `ÌɨÂLø`Ä "Aôš²FqzBº‘W3–Q­ÒWÀËî¤xP÷f‡d ˆ/þ“æÑµ*ðÕ‹DPXÓþ(OYÔÞcÙÔuv¦•Ä,qDÅUµg+PZ\YºRù‘ ¤;`2YŽo_Ó 4P8ñ½G!ºz4Ší93_˜ØæÅùÑ€€æðŸo¼# F€$=øç¿Ö Ì %WøH±ìŸn2˜†nËc@É>áùœLWûÿÊØ ¢nc£æÆß;Móhýñèš«K̤õ®7A~q“`­á .À_@N“qÐLAmÄEÈY<]ã¨øB€H’Ÿm³†PÈ¥¹?)f¢åž•LAeP†“€T²¯úÕ2×—µfá Q9øEöþ±H³¨ÏεԆ^™©"¡éšWó³b+ºtJÙõެ(sPDúwoG€ÆnøRê9 `(Š€` Ã†€zŠøà?wð!UdBÊRÒÒXQÔµ³ x(´ËÛÕf–£¥ÿ?¢’AS£Žz.ª€ÊÃÀˆNê¨2¼) 0üx¢ô¶ç¥”Ù¤²HÊÄzßjÜõè–S;øVT™víÀUQúѯ¾ÝæË†Çd”@ÇÉõAeè`îÀOAÁÄà\=0õ­Ö4±¡©Z·€ ðÓ­µ]Ò@7ÿý,fR/xj ö†òÃS62zÀ€2û† ^†¹«H´£V?šŸ*ÔÕ8¹Õ/7ÑâgãÓCmÅ”ë-®èsÜ@‘éAüw%0›Ó  Ns&&Í¡ã ÞÀG(¤‚ˆ 2šKû{Û• d)å:Z#EE £?»#ð>OݸhŸ6Í>@4YMQPýP “Ū4»ÌM–hT0Ç"?ÊÀžO‹Rtíqæh稪tVþo Î$É-¼ª™æíö}NJy‘˜ETß1¯ûå!=…5ÂV‘›s±Z_=§× °ÔH ®w!›µ¾ÿ CòX@ §€·A€•ÐŒp²l€^IÖù«öó óUoO›’²¨)N’Eö! (Šß ¿ ûŸ­'0nœ… aø³äÉ-`O;€:AÀlnt»À&— !E …ÆßæTºóè{y2Šé¡@ÔßôTQMì:¢¢ýêjŒžM~—`Å㸿üëæ¬¼éë#]Ežòò~³qy¿ºW|z¿Ô¸ÏÉ>/\xÕÞJƨš@=oþy|Ss²É` ¼ÌØY Ù‰ö†{zj.ô,, Î¹þ0ÇÀ…Th€Ñá_þfcžÛ€}ôg<ýþ2›>i\hœ>I¦ù—€@Â'¹˜ö¢§Cª)f’uö!  ˆ_iWÝŠþ¹<‰Ì5ʼnª55ZÅÉýVÄn$Pä>4ļ²s~@ `&áB €0&ƒ‚£ A«©›T_ÚF_AŠæÞ.¡Œ÷G=Œª¾FªŒúy4N€ä[o!@ðQýU³º@Óc v¾ PA¾A_ÅÎUU@TE­"„ã¾ôTõ6¸é š ˆ²a=]keÕ(` u»÷¾ÒA½ÔÉd@ÏÞ ©D¯ÀÐøøÀb¾ü[†ñå_¨úõ )®üSGê«*)|@^v™U¡DÓ¯¼PvɇÍDÖ]lôÒüä—B5Í_õê‡ÌÐúWŒ”»°†€Tð—@ `¦†D‚ñ„ÇPEda Œ6]³‚讚<Àû\݇J”‚1j׬nºƒ/÷¨• ’>ó`ª ÿÓÚSQCdzsïúÆvŸš¸ôŒê:5îÏÂ4p¥m]>ãèK¯¯})s÷__¿Ýg¼ÝÇë®l!®».¢%¤T"ùÔaÕ·ƒz_1“ömhÞ,0 €Å Æ÷ÕÈ Ô?ðOør£Í•¿a$€ mg6€* À† þøÕ™Ãt2üÒ?ÿ…Íú ¤6,ìÂÁ⛦i~5žLê’'3]½‡/º 0.H`¬ˆPÂÛ,ž m3-ƒ`  )F=,/÷v3â¶Á«z 2³]–uÄtðµŠÀ^'/ï£ôÚôpç“,@ynÎÀ¨DæN$Ž'èI¬Ï?ŸþQ{rY{Ú9³ë —¦wùÚÝ—XÔœSÙ“š‹_íóe¾R޽C᫜|Züoµ{î*sŽ&7” ýìøÒ¾;q e|®¢H€bà€þö»0À߯àù;€hó?&Ó€°ÓÌaƒ |à>V†ß|ÛNFýÕzSÛ%C­ ¦ùÙŸÝêøh=¶Ñ9d>´®Å=F‘mCÐÏ?n€ÆœÀ`‚ô=~Îct>&A(S43€O¼éÜ–µx®íU½€.׆G]™NsdJ7nUà7&"ê™{ €p)ã«ã×Ԙ׽½Ñè¤iIó¦¤yº¿$Y2ç‰SÖ£·÷Ï»–ðdÐ6îè°QK ½q4À]^ÌiI–öVÊHøÕòã+Wd»‡P·bæØY ~¶_ÒþêÕà Ϛ⠀qã& ö×Àü$` sP'È·f“Pu` š+C¡Š¹›ÿ4“ ºQýÁ3Ë‹ì¬ú¢Yñ^Ço“)ðýJš® ¢ãůTTX_{@Ñ2ŶIPxx»Å^Ý$™zÉXàåHuQï]¡íþä@ó¶_ëuߥéÛ‡u¿:—öá±?*‹]€§àW^ R=Y°€4мî:4úèwÏs# àò¬¿Û¡> ÊÈßþÑÀÀÈk€CÉøÆ‚оY6¹‡€ "~É«~[!Nul(SM1“ìò7 ¿{¼ÞŠðêA&Ê5ʼnE¥Ö•c[¿qPdƒø6` ˜³ Ô f ÞP0†qP1¨B`p²“|h÷!‡>ZA0%ý»âšóuøöAUUyæóÔ--¯4¾—£äŠ*rœ¬£*"è»  Âÿ•,¿Ýô(" ‡óâñº% J&g=Ϻ´—ãœY‹âßV¿qY –¾ìEËn“”‚å;€<®€<Žë¤ €%@ÚþcÀŸÝ€/?@ý? ÐcpöµT@0°@^¦ù‹¹æ¯ÂÏ4f"ê.6záÐâ›(>¾j»È|hÝà Œ- œèü¬1à7¼ PW™ØÔ°ÎáS=ª@ÒŸú<@ɨ{Ò𠊆ŗfRDýFó¤c’ñ!¿ï¼L½€¹‘É{Í*€"{}Yr@ѤÁš<4õýûUïhç&ó…2:ÚJÔ‰NkæéySw¼ÍªîœÛâšýö<çÙ 3-»’ÂmjU)=•" सʓC¼]íZ]¥YÎôF£ôœ·€X¸0öŸ,ÐàY5€úÀ°xºW| 6 `ÛíBÚXFÑ 8P¼ù•áE$0êý?Ô,Üp¯»,Wüawüjüzض‘™¸¾Çãf(ƒ¼ý[0»‚ ŒþW¨ä,€™€A1Ķ\…‚ÌN¶U¢„åq3LÆàQ]=©Ç4OýBð€ê¨¨* ˆ:×çÄœ«ÊKE¾ùdGé}Ói8‘#}’ ÿ¦ûÊaÿö}Éf§söxáóÝú’Åiþëï±êŒC6ÁéÍq4-\³¼MPÙA —_×"sîÈ (‘KQJKÙµ6€.† JÌÿàaõ5ü, ÿ¬øͯ‚4Ï.AÈV;ÓPÈ ÞèÅ[¤Îô¿äó?ÔóÆô µá¡—Ü`òηi®¦gwÙžêÎ¥µ²Ç(↉寇:AN˜Ð.@0¡ø˜¡ ³a›0—àpsO¢ïÏj£ØÁ†åþø¸YÄ»[¢xPÕp'* Ö&@AV•ÅR\òÎÕPh†Œ/cQÝš»ÚöÅÅϪ¼’2 „Cjù(´Æ5U¾• i14è€5hsÞYgd¹Ú4€ÂzÔŠ'UXq3©¦FÛ¿kÙ®Þ3P–¹–ó{Ì‚¤È-!ÒÖªÒ8Û|¶~i 2za 0~)šPltàèblÐ@m™ 9ƹ«”§kÇ-­¹ùu5>ŽiþÎwû/¹Z6]~Ü@kŠíY^XˆcÍÈÝм§A|1€5¦†‰g%z‚ €™„+ˆ»ð‚ Í‚`Èêú¼†&ÃB=Rà|r§^¡Àp~¡@ ^û4_/W„±fz2€Ê^õùšŠ;9@á7^«*Š¢*j4ßüR I y§T% RÀÙ;³zãl¯TµAм„TZAyè)E[p£VÇ÷ûWgÑ(n#£›PöeýÑ rXá»Ô›¡VÛß-ŠÀ@Å2 ðÒïÀRêc€ÀÃ@ Ø@^YvÙ»òÙOóKyþOÿ ™i¨)n’Sp@~>3ÿj¹ý¡if~†šaÀxð0À L@_ßA^ŸIXc@<¨S˜ÐÅ[˜`SC!@ª&rwd @é%ë¶ïE …Úšy´ÁGªEŒÊ^äüês[OðDFÍcE€ô_Ÿ—LõkÀÒÕQ¨,­´§ª&§<¿JÅüÇ·—‡Úå×ùýs;¬ÕD8Ü׺›õt €&‚PöÊËëÌ€âP°Ww{ÀÀ°eä£c()õ×ÿ+påüõ*Tý¿ 䃃¿ ð%@²0€ ÆC¿™ñW×oF8P¨#Áxèâ—œ´ø©ûû¶)×}8QfD™!Ë×2Æ!ã;Ö˜„œ¨SØÔÉ ¶QÀ¸ÆŠ##*ù%þi^Æ€ÁµÓE @BÁ÷Žÿ 7N_™c(àQMíÓQ®F®¸û†=#5 Eæ\?k.Öcœöyõ­Ëºöœ}*Û¨tö—&(EÔs¼ˆ„õV€°û®V¾ôÐÞRE”=™çÔê”EY¨¤Õº('ó/©¥ Œ°ùÚë# ²’î¼Î“¶1´[Øòwø'¨æKÊw~ŠÄ’1 “8GÔ ©pú ¦Áõ[v^Ûý(Իnj¡V<ô¢üxõ2Å•;zÁ%攨ÞÃ÷_€qJЯÞ˜Í)Ö@]¥pt`c´Q¨¾˜>ÿŸ{‚¶àK h‚¢%ÝÍárðÎè5ºä|iEDTU‘íMuãuêϺ,öþþGÓ\U³²Þ¶ñ:O{,ν™¯T™Ž‚jT¬@¡¥îUªg°0PšÆ¹,ëG{n³"23 vmç±·àÌÈUï¥tš#ÐüáËÑpÍ€ºý `´³ú  (åI°ÞFúÎ/êÀ Í×À úÍ’]õºø’Àl6àÈŽ@6›&~ø%ó×÷ÓÈôŸÿ̬ ½p°^ßt-´>SxRv½‡/Ú€ÑRý;ï&ˆæü5À`‚tÀ 4‡L`#!E``À—a54-$­)pJœd€Ðº‹Åc» @µÑЍ  –ÍS‘ÊåÚY  JXéñÛ¡?ŸÓ.ÑXß\]-ß45oùíÉý8Ê™ —RE=ÞW÷d”¤ÂÝŸÖsϬ…šQòPÞÓQ6JÊò7ãù­ØŠn‡SJ²¦˜I.™«àòwÇßÅù?öãÌc¸jŠ+ÊC€ °ÿ³¦‚>L%XCB0^6 O0“p£ÇÀ“.©@$ …´}œóTzºôw¼ä*›"BdPˆöT@û  €´¦ ‰‡ €˜+[áN]Ñæ[XŠ-/ ››)Ddè]H¦"¿§¯Ð÷}yR­5q@?VÅA>vkíØjå$Yå¯/òšfšµCÄ(Æf#½°4Ýë:J‹Åà…ŸU€Aýµ. €_ O?ühop<E€L@OggSÀ'HÑ|­`½õ^ÿ ÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿ ÿÿ ÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿ ÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿ ÿ~9Æo²þ†ú2ÂVÌŒ©¦X)†ƒOÁÏë7½šž Ø@kÆë2SÈê¬(œ+bÙŒø>` ñ45Dä0SÃ@·Ï0†qejA=.L¿¢!àÁTÆ®Ñ;3ëG7o—.Z× $£Õ¤î”O«Ïözi PÕd}iM@UEÒW蓃ì½ì‰ ¡I#¥4rÚžûÞ#)QŒZU§NA£˜õ°¾jÔe’t/`Êòßo>zõS‹#À0q®~@,;oÍ: Íx4@ýÇ¥Aàù/ˆ¿¯@å'(@¦¦wØ 6Áø,Ž€ Mo^¦ù‹Ä·Ð°4ýe„­‘í@¢ÎÆF/1´Ü¿i¶¥íí¡¶Fæ{ë=œ"‹2ޝ­1nô2è×n0»‚ó?êi˜PtÆAÜrEh5Ϻl4}2ÈæƒàÔƒB²¹ø¢AQïgí–Ê€09VQæçTnxŠÅþ-LW’áÛy]îj3p.‹‡ž–óaÏ­b ú®ë¥ú¤B ‰´Ç-ÝÕ–”´iŒ8ÿ[©Ú“–­€ àa°À‚ôØþv€‘ïb+óÍ€òW@/†ß¤cÿµªàˆ—l¡• x PÄþøÅÙëÿïdæž÷¿° ÈpÕ†‹^šoÿw¬5êùj½+Æ¡ ò=à4øRêé˜PT€`B[ A+ÉÑ €z@Áƒà•ÛeJ¬t+OŸ^÷« Xž7‘ù9`Ùù²ŸS{Ó&ê­õ(°d•ð)o_È;K~½ÇjéÆyvx¾ím즷ÇÃë|[3É8ðb®â´„ Yø“C§"Jn㾜ި>Mã£#uµL ø¬È°Ÿ@ƒA£†j¼ºê€l9®š €ù >ìW$hÀ¿| ¾€40-ü€ÒeƒE†b†þƒWs#âGã“¡ž‚ÌTÖŠ‘`0xŠÈŽP>[N†:l8êlœ˜ ¥(ÊT™jË~(²m˜@cN+€:A:˜Ðã :ª²nš±÷ÔÄ0ë *ùb÷¹ReT û]ŸºÇO¾V}/Í€aîæësUÐÜUÄÜ]Ö±YÁ®GoL/v‡€å>›½û{//o®ÙW´UÒ V×i¦v’æ «õo][ª×mŒ ‘ÕèŸFåýkÏ…’ ÀÐJŸ+æú K˜­©S 0µí× Kö ëäÊ`(€ümb WÿWÖ7߀ÔAs?«õH¾t 4bÛÞHƒw‰¿C¬Ý_i›i¬)fŽ]æ. óáCºÿ‡õqÃQ3®7NE”w°Æ60çC@4!Ì”AœÃçc#¦VAŠD>DÏ÷  k®b½—ë;J.ptüpêÉ“µgR¡êª¿áÕ¨ÁÀEt¨¨V ŠÈEL€Í²“¶ÕµÀ®Ç‚ž¤0U€yKÇ÷Fï_CŸ?ò´Ï ‹Ç}?µþzëÞW/í°UÔûtßǶU au+Èv*@ ÀT¾7$žƒZîÀn€‡ºU/€ý?­*e€Àw>ÿ¶ À|]Y@Õ_Ið0:Z U ã)Pd€žI¹—€ (~%?š¾ µ 2C¬)VŽÅÀ]ð…úº¦7#¼4È„P3^Ý™eÊ:23ÎÊì7E¦‚ø`a¨« €™€Nèö€€1Œ‚Š!.‚ Ù&¢YÇ šÐ|=As4mp$ºt«ÇUQ) DüÇÔ¾a¸"9sÌßf'dH6^›ì>|Å€šƒ£-‹¢¨²úY„¿kôÍ?Š €^2²žç^³ýèj0“Ó‘ˆV z| åîž›€1¨Ó¾    ¤N;Ãc`jÐ ØæÎk-½·€ï¡AÊO0€þðÇI´ ¡PÁíš! ^)Æ™«¤oÖ†;ÃoÃLwQgÅC/7|÷»o׆›Ÿ\ïÈö>0‚ÞX`‚l 8  Láè@ðð(¤ çó¤R¨òÔœR îdV¼ð>ù…T (ÀæG†fr®¾šg;¹Ê@ñß|í÷|¿ª4HY©iâÕÙfZÊåÔ›WÒé>öV’D@JÕJ‹>7ýÜG›{ÚgwÜò#ÕšÉN‚ªgœÞùrîºÝ¦ÔÆžÆ>ï²n€†,èûŽT(HŽþéÇkí—à7ËÀð¿÷°€ =UÀba˜ß¥„>Ü6¨™¸aÓŒ¦B þø…¹ÛÿëdæK¸ÿ…ßiË𬠻xXñ„ËÍø«žÝåÁæ»Ö]21"3†écfžÝ#ŒÃúÎïJh\ÁùÀzøu•n6 ã‚1ºR!ØÏ}›¹Û»ê£Ó5RË@¡à÷o$‚½æ "`½ñmUDUîÓ­ z´8@•( ‡[î}ÝõžsÐç¦VêG¿÷õÇ"ûuŸ¾üZžu{Ùs#SF(å¡è@òRƒõ9Ù WX~ 5äëòÿ¹æ†¨š˜0_˜rú½×.Í`\¸Å 0 @€f@ýù%hµ0ÒžP ê£u{ƒ> ¦ù‹±£é³ëV„‡!¥Z1Lv¿tØ ¿Ú • D] EÉêYÄÙdK,‡"ó Äß Ìæ¼ÔUN`B‚ ÝÀ窷35ùíôt’âRF>ŽÏÙô(,½œö9@n¦/SI‡ð FíõΛÑWäP4™ö{WÆJQ£ç–©¸ÝèÅô^o­zI¿1"ALš%e¹ë¤ä€ZgþK"#“]tHèË’µŒ(ó˜Ç~éQô`±ûßݤçÀºtác÷¾šªÞ7€;[OÀ,°½âúZXBÝO€>„·/€@ø Àw×€øéSh@üÚ’ (bìæ6;lp€é²Ifù‹ä_!éj|K¯1¥$ëªI–¹»ü‹_ò¡Þÿ\À™kʼn3×îã¼ur9ÆŠ8 æe³ aWu‚$€Ù ® Þî0†1j "„ rK¥ÚÜÍig|žR„ó3·@Ò¤wã·Ë%só‘à ?üØÝ?îõT>©  "r—YK<(Ññµ½g%&&÷Ћy–;ö[çÑsy; ª .þ`åzm©£ÂvíM.Â4˜/ãÀ¹ïþš'ª”^dþúTI–eT À—0Þÿà+”/@ùãKÀ@ê?þsx j¸l p°Á¾I–Ù—€€$>·GÃ#¼ò¨äjŠ›d—yþ(-¾ÿ3àò#p¬)NŒêJykŠèñkl@<›@f Ü A€«M‡ÒçO""“ëÑëjVªEÿv]ôÇi x|oÊé?³Àíg' 0°<ùæpAj=œÕ:#Íê:Ï·ÁýÔ¬Ò;ô2ú«l IjµueQòãÓÜ_P0q€Œ®  Q¸€tCßFJZ€èëÿó‡7-cÀòß*¸8!‹?¿V ê'¯ùù¥ˆü 0@^Ö‡„Ÿ’ãÕüU„—Ž™Ÿ¸îb£— Nï×Åv5ýW¨9`~r½3br"CëüY‘ãÆeÇWÌPÁÝu•*DN¸)ÒÿÉÛÝ-x7œåͦÆQœ¡YŸ<„!ã•â³UV‚ÉéÇZsêTTõµ*ª¨ž”ö¿?5ÈP<ô·éáq¯4Sn—ö~-Ó§šƒÚ \ê;«²´” VT¨û‚’³œPÀº ÜêgÕ´@À`@?à|úÿʲêRUÄû›eÀ»~}Õ2˜Ê__ ø®]9À_<‡»¼¬zï @j‹.ÄUA ŸÞ ¢¢š~Ë|ßqzÚºØsƒdÛ¹Z­W/Ìξäêþ¬ÎÎhì> Ñ¼l¥Š €ô߯=50Ìt°´ÉãWc‡KÍ…F“¦  x)óqyÉXRò¼ÀÜ"`À¼ú_ô™ß­€Çêï ø—iÿâ<Ö`J@eþøå†ÝýÛbO.o…ß.(ÕŠ_bØê·Ž8ù£õž¡^(‰¸îâ“ @«uÐØ”óS€ÞR'H8z¼\€`B«À·TE`i­>|j @’ìl;±GÎ £;ä矟¯6¹GÁ€*»¢ Ñß—ªzФ€Ç˜¡W—<U­‡uïËýzì[]ÿêç,n ÐT;i©µt;óŒßŸ­ì 5IƒŠ]¿½ç$6î¶Q+äÖšvÆâããÓ­°‘ÂÓVrO²ëìÕÅ?~Ö¥í¥-{Ùv£¬×4áØG7¶)1¶z lšbMžÒ0à Ù„ ä@VÈ`žIÁMÒWèkóÛÿ<2£¨Û˜9¦Á‡€@Ø>ÓBûýÓVhÍ0‘Dõ¤Ž,&§Ö7ªlþ³7€ÙDd¼J°x‚€ ÂäAŠ!-\ƒÙÝÞÂÐèך„WQàê…-Òf <¾`_òsƒã£ÔUF/úЗ‹EVŸf¯þµÎ˜µìsnÕ¬¸wž-jœyæ@„î®k‚:¢T³ªD3ª©b-d¯ŸVs+™Hõ&äRDO¾Î~€=ÀЏÇüŸºòI|h°e²‚ÿóKÀ(XoWÄ?Ÿ JjŽ 0 ¾Y6™§HX@ïøhþa¨•b“M² ®¿æÕx3Ô‹8Dv½†ãÆ QAÜÖ˜€O0{\\L0*^@!„ ³ ôDˆ^/2!h‘­û‚sÉQQÈ¿—¹/T ÄÇ%@Åɘˆ ‹í‰ ú†ì-O™r?µ-r”Ç5h¶bQ>ÉñWþÞ6—XöŒºîˆ¥s©ñ½JW|¼š‘¨Å¥Ž Ê+ݲ¥A]Ê…` •0†2ÁØã¡sÌI–>óÄ„ã€Eð–üÿ; HOê߯ õÑà_84Ð X€€Ò †CC%ò¯^ÿ2üS”¤¬¿th+ñDüt½ÿ‡zJ$jÉBFePœžæ›2®N`‚LÀÜ ögu‚t°išÃWHÕ".€ävôz§ÔO°kôéa¡L™›sR@u±(­‚èég¼—RÜ3T@Ñš7TD‡@–/Nd¬€©­Ty´œÁßçžý+l®ÖWÏïýô3m—7#v_2œ”yz¶ž.™#©(*O!Ù##+Ô³6¸™Lëb\XZ<€ÎΟX °€|%É7ÀÏ P—púG 0@BOÉŽf}26q€A –öUÂRTâËòü¶ãkÅÂ.(ïÞLóÑådBm ¥«÷p"Vˆúcn½îîa\0@ô—S ÌpA±êi˜I裂1ZR!ŽîÔä¯ý4»ÆCA¬ ¡A(cHðêÕ‰†˜á+wÒ]'ßLWÐ D@ìSÓ  ½Ý›Ò{¿ïÅ”V½×Ä¢5—¾èïž«íÒ}óZc÷¯7*sÏÚ ˆ‡_?ŸÏ•…EÎE¸'¨'‰>60OºÍÔÀå¶x1£R¯öñ’Ké ,, ×`1€ú@þd> üý=ÈÆ¿]-ü°ÑP~k  d{7PA6~èµrß°³Ö]Âß#Ô†…^+¿ÞŸÝ”¬å®ÔPÊ­{¸`Ü(2È/jw@£¥N0¡9Á­Ÿ£*€Œ@Ñ! ¹±šxÜÛ¼28ÚXe}^D€§˜PõÀé¼|µH¥åq†AÛ9à¶EN Ö›ñÞ7K©‹þÜ•EÍ‹ñ[ºqÎGô“åÜ5¡¤è+íOII¸ssÏN-î©Fh€¡‘(ªê^¢!Y®Ç2›É©¥9I2ß{ΪsFÖßþˆÑáøÿþP7à À}+”¾o@HZ)1Gxø³Î%C€/Ï€pÙ€¤˜P™T‚`Ä>2~9¹‹ ãùëa‡R–u5VŠqî)ø`ývø¨ÍÐ)¨'¦ŒŒ¨)'î¤q(r<ñçkL sêê9` êñð@0ydBq‡ÕZwÆÑý(5ÿ}¸¸ŠB†i§šº¢AüÇqÁ•\ŠýIyþâÆN3€J­>` €h¬¹/*ˆ €ˆÊÏÞš 0â»b‚´²%×{ø^Çhö~|i¬¿¾®Ÿ^çfjwA}^U•ÐgDþüW«—Zªd‘€5”;F Pãµ^««À:¨€ÀÞõwq6¼ËšÇ ©=] €­ÿ\ù©Þ+õo €ÁÉlÂߨm0¼Ëm086ÞYvöC|Ä﯆?F]S’L5ÅL²É\ý£€îüÑøfØN  nã €q(¢„ø`A‚ûuB˜ (Ñ&aT¼`ˆ E”^{~$žÂö…†X)À£ôç$xð%g›ÊÈtÿ@yRÕ&`é~8«§IåÄåS “t Þš™-:û“ÌÀ*Ý=ž_øëçN9ÆÊœæb͘@s²ò:} ©Áò[Ô²…Ø•¬dí·²Ÿž¹(¨ k6$ ª0 ¤¿v €[×ÿÖ>T¨Hýþ³Põ×5àç?@ýà_i@À7€lÀ@s^)Æ?¬h×_]Þ ¿§,kÆÉ0|øc…F|©ïÿ¡öÌ­T+L ™¢ÌJf¹Ï臲Îij N3 Œ·€Œƒ‚«@•L`Þ8r¶iÙÿ¼á« d<Ô9JPP9AŒ˜ž›"ª H4näÖ±:½ƒ‚=Gž«qj_½xß/9_‰„³`«©ö¤V‡ЭV†”:­ÃŠ•* œzôN\ìIÜÛ¦Ê6™\~ÅÆ¬T+ á®ZêuGT€œ¡S:äÑ×½]³±PA”nˆõôI­~mb% ,h!}ï°a—£Û¢þ¨ÿ`ÿ+ý/¬:´é#GÄ@ÁAS6Þƃ[ÉOæ£ý[ÚFZgc£ŽßgšáÑúΰ­ÁLWïáDˆŒÉÌ(ïY<Ƹ1ÀúêµfWPùÍ=AÀ„àLh« €õÒªÔøøkè˜Cޱ‰WØ_%>€ú½¼<˜A³ä7·Ê— €pk¾š€J/)wíèêZÏuy{_ÖeŃÈk½-ÛõêýÖŽ*{dÜÓ>?â.È!Àå4…ý«í9s5ª`ì³ýJ²TÚ“­ K°c Ê“´–Ê_«x:”@<Ý“0fˆo½~]C‡ßx¾$õ?M¨ù$ƒBh& žøù«¤»ˆxÉ?ÿõÂÛŒ¡Vlô²lñ/Çé~kýö°=s›‰Ö;|áÖÀØÑ‚ DWð0_¿nÔ R˜Ð`Œ.ÀOå"`îloª~ž7fê[@€(ìóÊ»éœ'!#Úç@ð [§_osäNÒqḇQ@©5½®‹¼»¢îD”Ów]ÓR}ÑÍ‹wÔ•4Ͻo͹mg|½v »ò`WêPƒ ï9ÌLV¾øó%ëÈT¡å!‰¦£Æ¯•»(, FØ93Æ€‚…RàAc—aá­òÒ‚¢'ÝkÈ*-øø)ðòoÎøøR€ øš @ @ôÖø4 lî0ÐÖÀ>ÆÙ‹_ØQË¿z==üà eY×âd˜e·~`#-~¶{z¨±ÄR5ãÄH‘d½uób±Ç¡ÈÜwfsZÑé ˜ ¸ÑÎ:)@ DÕϺü›ÑzÑÍŸãkQ‹ ¤«óêøf¿ûµûÂDBÔhzñÁPzCS¢€ˆì†"ý¡i–ûäT‘Š;Èúáìì~¿†Ë5+Îê§Ñ?»FÍHUR´ÞÚÉ÷† @V;éët×ê”ì¸(È0ɨùZ:¯ÿ›t•LÇèdÀ¢(Ð)pã ï^’ À[m (,ç(¾ùåØ&°ôÂ? À#ÿb‰_ÀmS2#À†°Ñ¾IÖÁ]Ò§èÖ7ýxø½°¤šd’]øüQüîúK¾ÿ…o82`Í8)*§õöcßçå8Ñ âÚ¬!¡¥N0›€ =îðÆ0¶0„ܰÖMí›_4P$ºír»ÈΟšJ:m€€¨ìª1¸#‚›ës +r’Uälð•Þ®+€ +@úà ç@ „(Íì¯üúðvvUƯ¬ßvCÍ1ªÈîê×ÿž ”–Ê•¿r­d°ó2^  í÷ñ÷Ûå²û”Ö÷ä~«Ùh~ x9×xý¶ ¤o,À/À’ áø’1‚àæ ~9–ù›Ð¯E؊٨ 5ÅJ±ÈÝýš€F÷[Ó£HÍ81Eõ«=Z«’ö¦œw•ÀæüÔ a¦AÍá00 ŽB…@ïÐz'ŒæÅVù>i°^¼ÀCU&‡€ÞOÌ$A WCתˆ :² ˆ€$?˜Â=W§mrFÀÕ ÕS©ˆ¾,ÿ˜Åœc•½m¨%W_§VˆSyìv{o-²ÐÅJÜù—U…-) @ Ô‡TP±³(yù¾T`Ô•æWâ:ïpó"0X&@ü#rg¯l  ©Z¨¿’Pÿ2_ûŸÚ€Áθ-€‹82`Ø`^)Áöw9 ?þÕ˜Ì®ÛøøÙñû¸ñ·Æÿjd¦\ïÈ‹Œm È€ ¿3Àìgás%DˆA0µ­"€4=© xg<ã"iHd¬ ¦µæt ¨‚¯šoTgè ý/€¢Aß Aô7Û+¤dÐÿWSª Ò“‰êWØ$,/¦•ýÁÌ–ÍþP{êÒž¤Tìzq|¬ìß·9$ÙÄL5«&yäžÊJ÷¸rg˜öyȲ۵•rè À ¬í@Õ.bôq}÷Ä^ Œq(ü.æ¿ €€¿}H~AÀ¼‡€â€V'Tà (à°žøEÙ»?n¨t¿Éïf3•µbb—fÊóO7êo w%õÄÁŒ­÷È €qAåÄÿÐ º‚SÀZ?Ku‚œ`& Ñj@0F[UåaW:ä‚Q-[ ~5Í”œúz‘Ý"…ì“OzJ`ôÏ@f«'"«Ò*€}]xmå˜êE¯Ö–ÔÝÁV ™CRÿî«ÖëX5ïtÉX:÷þã¹ì³Ú娤fú9À«?>®/ÎbNJ\ VÎ_V9¢¥®ô¢  COÝ]Iñ_R@1°¥¯á,®`aÀëŸÌOŸ ]àÛÿ?°| 4CC¡öÞ @S l¥)^)ÆÙ«©‘?›ßû‘”D]•ašÛŠH:iá³ñöðåº¯Ô …TžETÏõ[å‡"N„ù]fñ¼Ô Ò0q £x*€†dMê¼;Ö¸>9ÉÍf¯õÞ ã§3Ÿ ‡ydÅGÙ©¨Ö¦€©@“'‘ÈÚÊœÛh™ûôOwy»tçb¢šqÔÞõLW[qßXP½ïci­^# X ‚V(õ<_ iæôså+t€ŽN`—:Î쟾Y`x Á"Òª=-ƒ‘«rlÀÁÿû‹Àˆo ðÙ¿€Ap I&–‘,Ø4¶04 >IÖù‹€@,~»þjy{ÒaÌLCM1“ì‚§€I|Fü]lÿö"Ó5ÅcŽ/@‘ãy0ï °Æ&L„} ‹'Ș<0†‘)BB€)¸ýã^×&i(!Õ¬c3ñqÎl5{JáÐ\@@'k/fB@åëÏg4±R§ãi÷ì§×¬°¥£ªñôîŸ,ï}ùÓ2·Wšjw= öÉk·]¯»{,F>U`Ô‡ûúu+ Мz/ Ƽ‰ T´¨ðàÀ+隬àµÿÉ€€Ÿ~ŸO,À/>ùߪûаöþÆxm.•·ÿ’@Ó†jc€@>IfÙ§€€,#ÈÿS.?”rª)fŽ}ö. 0ËÏôj> õa™PkŠ aöu'EëL–M nk,˜ëÕsq‚ôÌ4°èƒ7ó^ÀFn &ù{ï!ŒöîÖx‘AÛiÍŒªþ¬µ€ŒÑZ-à·oùy×^8{u®ª Š¾Duí­ª*€*ïñÝ]Q%R»aªÁZîL[Yθ+F_ŸÏ?Û±˜£öÀ-¹Û®I€sŠåìöûMváÑÖP€z@‘ŠO>š /à–ÿ,Øñ7õú€ ¤ù7§ `À†lø’P0^ÖÁ!b(Ðô«ËÿŒ­påÉŒ²®Š_~hñC¥†æ·\{NyõWŒm`ÄÀð€án€:AZ&t ס"rú’z0C>°‘H(!øžûkˆÏ €‚ ýÞ ܼÿ‘8èR‘@R=7hǾώ¬KÊj­4·PÛPÕä{Ý&,žÕ9ýáoœì¿®ûÒÖ¤F}3ßvû1æ°er6¨—z¸jJïY¤LÕm/ËÍ9*e(Qcüj \®`}ú—cÞm¥.€á© X¿ü΀2 þY€4¿ BþjJþ]6ý¬Öq(¦>J à6ùÕÙ­ˆÉÉö»úþþUŽÚðÐKŠ_šnø½q¤¬Ÿí¢«÷ð…0nPNü;ó€ÙT@ÿ;Ô ’fµLhC\…À@x1V¤‹‚L2’=,ª;€WÃÚ·[<à¬3 @ñS—wž:zzš^ @ɦܙ¢ˆÊÀTÒ(¢êJkóïKÒ=ž½C“rm]“WËâŒÙ¬ÿmzw­ëmnpA÷ÔM’Æå¬Ü´ùèýî6F%CV.t ¥¿% êÁàÎz­d(äš  ,8þý  ÿóï`¨É¯-h‚;ŸÝ§ò¥ØŸe*à) ÅC0 †ù‹_èöÙøõØÅ— 2_¡ÎÅH0\ýúÃÞ~5Ž ÿêC¦KÔµ8Q„Ź(Ïßóú9(â|˜w©€Ù¡N0¡ÇÀ™€`ì ¼T$ªA e¯{dÄ» ¹v_>§AÁ*óª^@…%NµR€»aC@¯âw¼¶Î$}è×WæV\§dR¡§«´¸h于.9ÓF-ó"F÷yq±¡dŸÛ_/Ï®ÌBãP2@*íþF-}׎M —V@tNNÿýøÚ€ºË²_~{©¯[Xærß‹X¬Èj @øx˜þY@  @Òª@ì¿tü“ÂNÁÀö^IÖÙS¨…WËŸÎ<¶+†º3Ç1{˜øÜá“ó/Ô+G†«fœHeåy(]ØGìÆHOù‡Û¦ñ, ®ò-€Ù€ª^üŒa bL!€”Wµßœ+¸òJ½~öl!ˆ6ßÇ «"{K…dÀ ³Ä…¡6€øgMέGŠˆ$`Š¥Y@¼rô!?Ü´`F–ÿZ0`2û.õ5°[Ýx3h@k–Á¸-`~øåswÿ0Hé>µÿÒ™„Úðð‹òÝ;,SâgN\©•”©îâ €ePýÓï^&D‡:AN˜Ð.@0ëÀK!!€Œ$«›¸® %”#ãÄPEæ’Æ¬ÕU÷äUÏC¼5¸:8<“„-œ˜Z>ÍCoÿ§:¦’‡õúà.¨ªšìHJUÑ]¬·Ž…_z¡=ÃÈŠÔ½e£{š˜@­8À\¯ùN’ÙPyÉÚ3.d©©Í½â+[ª5µö¿ùÓ`à†*Ö~4RBض÷ÔÀ~ €¯òÆØ$u]âuØp›`ž9Æ™«¹£fé~føc†«^cæg^"È ºõÝOF8f 5ãÄŒ”QÔT‰¬«}ý6E<A—ßïfs":AÞ˜éÃYô¸/ Å?ÌŒC~¾SÛ„,`òטÅ9‹*¯¯Ë%ÓÝ? ¢¶ºá,¥¨T IŠ0¼v¨**Ðÿ·£bÙ@@‘•Ù…  Ã@°’Ïvä–›$Kþ8gž³ì¯«¯ŸVnÉœ"7 Õ(K_VhN1h©¨}§ùøpí㈷D›ÁŒÑ(ètS`qïí1­CÅÖ{o‚°Ü ˆ¤)fÈÕMÀéÔ‡Ý6€ ÞYvöC@ÈoëÍïÿØ‘™„šâ&¹7赟gx´ü0ö³K¥˜¯X3®q=µ¬! h/êé˜I€.Þ0ÁUÈDAñ‰S+@tðÙWU¶®@TFž»¹þ»Q'8.F(9xiMLˈö/TTý?~¬€¢©»!ê~~1€ä²¶ìZ½83ePº;Ê‹¥ÝX;Õí½úéQfsqN÷ƾŸÇvůfî:dTÐ乌ÉdùŒ‘æ8ýŸ©fX|M[4(âá£÷gœ/ _$¬€øˆùá10ñ 2(^¦¹›ˆT>¾~¶c¦¡fŒûwˆGË›¡Ï‰ Zq"RT+‘EÍAU¿ 2~˜Íij NaSƒðÀ ®*FBõéôpÇ|ů‘zÑÊé.àÝ¡>¥à´y«usm:Tú΢ ‚®srr¥Ý¥z`=ëiöÊ8ó’×Þ¯ëº_z3 ¦döx_®ëì B›60þò×UÕJ¨}dàòh]í*£É(0ÀÐçÀ½ß»D-`ø¢Þ?±Àw½rS † 8 À6¾ó~(YØXHâØÉï0†ý`ŠBüV°Cëñé_‚ ЊÉæ‡HW]S p^æ†.þ©‘ájyK¶g¸×µxèùî—Ê´þ£é/“£èb¦®ïÈ €ñ¨d(WÌ®àö7 ê*%€™€@1Ƶ# !ks.ývÌê×H·«­a •Úí"rвf2(@?8±þókB8Ô¯÷0d¦@%EÕP¡ÆL/`µˆ‘`ô q÷/˜¨$Tþ+È)¾þ^x¾!A–§dPpà‚Á+€°7¾Ø%.~¥Èñâû/vÕ°6\ìÂîߺ9^Íïê•‚Rv]‡?È[€‡rbåï9 ŠçÔ Ò Àæé`ëÀ ©"àóûßZ*D, “(Ý{#@Qµ»˜—é4¨¶‘ €óÐ7ª•îÌ4U€••J9³ëÊÎp¶zöÁÞÚ&•¾¦‰ÝžÅsÍusUgq9}E·»Ç+wÒ’€Æ¬2ÜR šê>@饾T9a4 ëõÞéSÆ×@Ò‚¢€Ïgü2ÈsÎýpÿöÜÛò, JÈèÁÿ¹` €0¿ÿg àŒ_€KêŒ 2ohz@Aª€ƒEi~96ù]Dä„®ý;Ã>¬(QWÅK±ÈÝD*ºæ­ð¯>)×'FÔVe¡º›qã PdO„v 5Ìiê„0¡ÇœŒÑQA¤ùER—olO)6OFÊd:¡èccuÑâ}@üëÑ;ñÐ JyxÖC[¿Ð ïò£°—ÌkÆH°ÚÞ kw3ì-Ÿ ¤V| cÚýŒåPäx:˜Ì&Bóùu‚ôÌÔ°èqTÀDP1UpìëZc hEC¬$ìû„.q¥žËÓÓ© †¾†_´—æl",%ìBˆïvè€T#§ ŠlúAÔ\C^9òcˆ*ªˆˆal6í¡P&)ãœt؆fb˜$´Êj›VÖáöÿ€v}ÔÓÏ|‰š±Ñ«óõ{«>ZŸêåCfºº‡+ÆÊ ¿ø˜`ö€ þP'È8‚ ‚1êr… (VxÐàkÍMÀ-xÀÀ@³“=—¹ò—‹ÎWn• €¸ˆ4ÎÍàëøÓtÔJ@W/AÃÚCDï-§/UJÝTÜ>ûËZkÝ»½ÖðÚŽ·îŠï£N±µôSN•æLJÅÃ…á­zš §i1%»ú &@ %Yª¸5¢Àr,8€àþÇwƒåj« §AJû”ððõãR¬€ „Û4ä Ù9>°Aþø¥¹‹,2ò*¾ÿEØ£"© »8ßüÊròGóì¡&êյ䅷½¥ˆL zÀ#@Ô ²fÍ¡&p^*ÑÉ@÷·°ê•H©2ÈÉ¢I×<Êâ©(aÕœeûùp žÛîø!ƒ`NPËà*Œ 4Õ€•J$‘õ­Øå D©«OxP4íñÀ^¼m½ÏíÕÕ×GÅ2Š­¦Øy¸~u L…J烥î\¼À^ƒª«ñ´HÓ* JÃÝ20Ú¬ZºÀ€?3~€g ˜ê‘à€Sž·AF`^)ù»ˆ±ñUß È ²¦XÆWh„϶§Gܘ fœ(Cʬˆ²h…ÝRDwˆ?P³xÞê¹LèñЂÉEU¢cÔ¼&q¤D´q|•š9Êéá„€3/2IÛ1€XG]t*¦* €(ªòê³K‚Eþ?K¦Õ!K©´‹µs˜‚– Sk—Õþå䌊““}i¿Y±‚)½ò·¬®–}ÕÀ³blæñÒPúýéÌì¥%oÔ®=ùæ›þcv¥Eq_ŸÆ¨h5€WuÅmðwöT¡Þa@v4@ƒ¶ð7¢ë´ôcóZ>cȰ¾IÖ™»€ PünWÇŸB˜1Ö3É.óˆäoÆ_ÊóøcZS š‘‘eÝŠØÕj“ãÆYˆãxAÐÇÀâù@ 7€™„*¨ÛÆ$ŠWBÀrU¾áÈxõÍ¢†Ó£Ì+dpͧq.mðžLE_0•6xBÉHõ÷>4ó¨Îb*tq¨(è¥Ô*ô2öq!ª:¯+‹Õo<šÞö»¹Ýµx{ZmGó_wõb½1Ôt@$½ú_Z])Pb’­câÀó¬­T3_Tí@ÒŲ.O²o_ý¿€o»0Tþ¾@€üÿ¡`·êl€ О9¦Ù—€À¤¿“~ëþ2ü 6c¨)^Žiî!" è´Ëxÿ¿‡9°nãDQDDÔäj•{Ùñ0q˜ V‘Ïßu‚ €™ c2(ØŠ€Š¦õÕŽiYŒkº™ÌxRíEÅ €œ·|”Ò®Œ$Ó;LX©Ü „PP¢x·PÖWÖDеMiQ€~R™SÂ3 * ÒÇR—;9ˆ9u"Ê„²H`ÛîUn7:@Õ=Ú~³6Œ" °Ýª¦·10ì§åÙ,«æî^gV¢üðíßÞ lÛH`lYwý àË÷°Ë_Mÿ ‹§À¦z`€ (}>¦öå¿jëo O^J6¨V8ô’¹åì¥F~4ýyJtÚŒ®÷ðZ,ì‰ÖHYï=ǧùåÄÌpÃ]ê9`BqÐŒÑ+`~À=ˆRYz.Á‹±Y¯kk¯Ä‡Q–/@í .")ò{òWj €ªJãç.* ¨ ® ¿þ²_3s棾w. cQ#•Y9rb÷<ÀÁj¥“ ;$9YC³¸è¬çb¨{qÀ´{@½Š7\ûl5¶ 耵 4ÐlÇ¡ŽsüÉ×O’—®·ÄüCXú[pƒÀ×ùE( š Æ@Á0´L3ù¥™ëgu4õO†?2Ú Ñ+³å³wwêG}+lGĄ̈õ¯Ýˆl¹ëbêkS;('þS½}@tàï@NÀLBÍáA@0F«À …*>it1§ ¦’1ËF~º¯ž[J²Ü0øÎ¿«…ܧ¶7ÃÙÖÄVx]×EÝO·*€ÀÁ #¢ÍqSRéÎñüÍØÛÙ·T^×E^Í¥†àÒô\\f)ØæóÇÏõj™z°*€ûxéâÂÒPîzŠJÿöHý+£8›¸ÊhôÂütw3uÏ {ŠR‚º‡/f€q£ ˆ&~þÅ-=@‰7:A:˜P<4€`Bà§*–––û»™L‡b-RBÊ„ê÷sÉÅg€¢…²uЬA¼"j’÷@Bñ¹´‰¿Ÿg5Kp9Kº¢#” ¢¶ÉkCµ¼´î(`M¼UÅoi’UMÝœô.ë —ûõ®‡yRUѽZm–Ùûìik+ãrÜ[ ßçG…u`â-’,€œTÓ¬0+aDÕ¬P/F?zÞy <^€—©~íÇ’ÿ06ß± •¿JÈ’q4üÚ5Hà ?lÀAË„Žþ§U÷÷~«AãÓMf ºÿ¶Üàíz:Û:u|]>0!ÔŠC ¢hv1Q§ìûF7 œXyo€Ù ÎB 0 â` ªª"k©,uô­ÁýQC¡¤üßÝ@ñ÷å{‚²wxA24ä\jùìWïm÷§}œy©Ôë9YÿvFܪ`›F#®ï¡¦S2(™^Úx9@/¿ÚM™êB¡rH›~~[3t`± ~,6Å× Àó×büaï¥ Ü@ò÷s  ~ëþ?}Ùвç›ê+x3Ò`çB N•Mß—bh`€>È%r·û}ÐD<ÿL&ÀµâŸ ^Ï{’iQÇÓE#­¼¸cÎ0¹ï€ k"M¦ Z]®BÀøâý©*Z‚ .@`-É%HžŒÛTø½¹­ ¶òyP"‘ï>,—t¹…íNõ“óͽG“•¯Sw¼²ëÌçßåõÔúaÎI‰u/úË‹ÁÞh ¹¼V“PÍâ†ñâP”è™Ü õzÁߪ”ÛKþÊý`Œ$†eÆã®!¶«<é)ÂÈ<2yO÷´7õ5@€=î¿62 ~Üàż¼Ë!v˜¯¡;Á@bàFå2âPé€þ§w*h¸äùW:<¨³ ws‡MÔý4+׊/bŒxô€"Û† kÊ×òâ¯aŽ:…U$䪊œXÍ/¿ ÉSaD*€Àl3èzý——+)Á{*ÚÃM ˜Ü•Ýyö îÌ«)¶÷,Ï­µ\š” wùôûå²×«êÒü}yýër»SÎ~qUÓÔ_çßO9˜x"ÍmÂ0¶8{ÝŽ·•È鞀¦Â>g_~{˜uÀŒ½¥jóDb¿Â àÈltM°ùÞÑT¬  T~ÔßQŠà˜3À6 ¿‡2c  8Bi2v´ñ-gÌ6Áh;šª 3;ç þ‡ÙûùT±½ÓÖ˜j#Y˜yîOƒ¦&ìwêSj&/r€£ÈÄŸÌÞŒ?>Ô)|ÚJ¨ª¢õjdc¹^õê·_ˆâa \ŸºX%ñkVk%{ðÀ—/æ7üYA̺DÓ’êZ>ÕoF™þþhæû\tÇûõÇYíýÝú’¦× dƒ¡>0òä(6àÂZgnöyJÏ9Ú²·É· @‡Ve z† €Ö†®ö/å#ÔÅöŸeœ†€ƒ3ÀF€ŸtôÔ *Om)R`¬Àƒ€ ,Á@!Á—`@,À|†ÞbévÏ—¸L#Ìâ£(âši¼µcA6-$`³Á~W¹Ë÷D&Ï[#Š„j&sQ.{sðm]„1“{áPAã‹K÷bAã¥(ϸ€o NIᡪjþ _ÓÏOvý{î«@FÐ À£š‚í])ð K¡ð„ȺJn<ÛÜ“íw†ÔÁnOV¨t^ÏÜå–Òq|L¸ º~ÓÇ4æI®³²¨ÙwR¿½î“c#áœãVº~ï–Í”Ü yÅ@ÂÝRß³H+Œµà,Êù9¶!ƒéÔ=ãO¨Ô6z‚K¬Ð%D¾w¦ªó ¶+¯AÊ(òÇ2o0pJj»¼ÌÜéV¶X¦Í€ ¦ ‰å¦‡myí½Tèlè¡žW•ÙsûœMÏ“àÊ Ö”ì=exloÓ"¶æ˜š¼èvÆñÀvÌ6µÂƒªªê1þ^¥U1ÓvRè·@fù,€/n?ò-¹¢d²]ýhF€rQr|ñýæ@Q$yXY©f:…5;X­Ó6ÛõŸ{íý4Rõ¸wßëýò4þë^’ªóªÎˆÜ\îù%†€ÝÝW€õ‰è­Ð20 L°`éq—)Êd_ÞWíÇܧAj½æØÇו¤òJ A³×Ò›pý¼&€^ëK6@nÐ64}€<?ZŽO „2J+cb\P­ï ÔâŒw Ô„B¯ñ@dŸguBk(^'¥Ù«Nq,B¥‘ pI]”e¶ûÛXË‹<‡‘#£&/Z€öPD+ Ì6µÂªªê¨Gƒ;‰q1CbT€D[¼Ë¥#çʲyˆó)%ØáòTݹ9ªr}naÙƒ—ûïÓiêÓ›Ó¼?îo¯UC½õ°‹2µ. ,_ìh¥CÀ­òkÓ*ªu -’B¡ƒ:†zØ®(Üó÷Ç€ M€u;Ð&±™÷x?.]ØÚk3½hûû1Vë+©ô¦Þ¨¨DÃô×#£ß“ŒÁ/A* ¢äñ9T£ ÏÁ+¤†ëƒeÄgÉq÷ë9÷Þ²ÃÂóÅn9qÕfÖb´ëG”>u`1tuƒà×>0ç„öu{&ÐZeRªÉsjn»Þ£¯ÂzÄ­Øäũ〱)ç`vè —”PUÕ8˜ü5¬™Ü†%0pÊ—‹ºmÚ jðzIf!8*%_3ÑNûæw¾¥cìfô~´ûÓÃWyÌ6_צ´,Èóý£`cœN§m׃ Ì"ëu>û…ÒZF‹l€ZM<Ðó±¿YOÐ.  CwÆ»þS«™ÞTnsì˜ ÐN ¹)o–eÀ*JJ•ò…‡ŒÃ`2èÍzsȳ‘sA*„§H)²˜Í9bn „¤?ÈÂGl'ÄJ“ƒÏ޲Ê ,mý!=õ]X{d²L °Ý®ñ¶ˆ+å Gu“’Ÿ™>^׌êÒ料u7 ŽšÜ-5ï_‘!Iž$ìÙÈŒ.ж±ù'46]IIUUÕì´%j0¡·'š’åî8:’<%2¨KÕ‚=QNìUµóÑÒmeöî/‡¹xpÆ÷ŒôO’ @)ZÑAfë÷IQ&½WÝ“Y´¼€/ÐÜê÷yÃP'L«_N}¹÷9ìxÍÆ°ÖKoÄVŽPÛÙÝh›Û9Ú5Ã@ÎIæŠò%*U ¦»ïë¼S’¢òÿ×´íö›]Ý‘VK|@“çÕwéF¿¼Ž£±‹À½x3Û(Ñc»º·#a³=œ¶æŠ•ýžÙb0gØs·Œü\LW3vò=ôˆãÐ8·ôÜQ†Ï[™m,s©ý}o£ö0½}}s›¹ýºè1Çàç½ÑWµ27¼[»/:D[wrÐWHX€ß_%ö\™Dd•»ÎÙõh0ë}ößd\>ìa´.{èü8Îà¶Þ›²^Ï®¡5`‡ü?™™£X¹i½AQnÞ¶ôüQ÷b J‘ékŒs˄ξ+£•ToÊdãuûæË"{»ÿzœ–" p#%TUUí=;wvc%†Û~LÅT¨<óâÈ·OôP„^;¿_ržàáá‘ÅÃZ7n+½¯^òð0x8æØ{íÔòz4ï®–^4w €3r.w;Õÿy nØ2Jü÷ÿ2íÉ`¢k;•õ`î}æÛýñ¥·û§¯ãÉ3©h4 œ‹†Ž]¹¦>úV-¤-¦¿ÌcllЛ®&ç˜$èºëïBA¬y/UÞÒͰ·E"äë;³%C ?ñSGë‘(¨®£†³P\FðÞç¹åö 6ÎoÑ®°e:ïÂ]ÎÐò>¶”êÖÀÉX„ŒLMÞ–mû 2c¤pW(6ùqvÍa t ÀˆGQ„ø0kPI®²ª*¤íí££~Þ!â>e »óÖ>HB!täïá.Á^W;!À[Ý¡\öôsa¼ÁºÝtõjýPçqÙÿx8?ö¸ï_·ÞÌû½ÌÌqö1¦=׫-llk¥¹)c›ÜFõŸæ+?·tàU¿özìû˜™gñ>‡7-íàtW·gÛÞ¹k hëK<įRJTòƒÁ¥̪rjquç|²­Ýòõ>H»“Áà¤èz SiÅÂ&ö<Œà–h¾ˆ ”,ZÓby¤mˆlîm C&rH¤¿„:øþ¶Œì’sÐÐiJêV2¨×–mëÛÐ7,BJ:"¤ØøýPÑÂ^)IÓ_ôàÍŧ‡²Ìz*WUUÈ:·}ðn³¯H›úCk_kÙ1ÏÕ¢¸Ÿº×ËýÛú|ZZ^ú»öÞÇîäÂxª–Ð)-·>ÿߦ&ahŠ»n=§bÚÜÿð¦@„Œ3ݳçY?1ÇÄ@i„Ì|»fŸyì]¯ãéÁ˜ž)¦»Ž ªÞU3LR îã£yXXà÷‘ßêW#×Ç~œ9Ü“ÁŽ½Í®x¹¤:&'ý¥Ì„L±L:Ê´_iÖeÚúòê²Og¾³¿jלÓN,8!Ù9+]¡ì¦ô †ÖP¶t`;3}Æt¸”jŒkËFì}/4tb©/¦Üø}˜æ°éM^fö7¯…ÑRŽ…i¨„ªªâHð‡”sðÍ{áKßO½Öûñûu>¯/‡Ëhïã=]—Î\öÇzÏqŸ9ec<öWòtõå¦Pý¹ãÐcŒ&²†| z3²}ÆÞ&•Ùÿ˜½ëþÞ6 ´WŸ C&·†¬qÁBRÞqì9Ž?O¼Ž–ÌkV;¯rBÏ,Ь‡iÇýÔz± ëÅÞæÎÓ_oñ<¦X ÀPʕȦ ¦ÃÎx{w2£`,ln!V 4Å2o•¿t£ePöŒBC%TU]v…¨§ßç¹?¤Wûø¯­N:K×°Æ—ÙYùoÖß½î×·~ö×ËXׇ[Í€m.Ûš Go2óó>´Ò0Z‘|ç„óÏËv&\‘$‹5øU¦Ñ @ëu{~ö”µTAºœl’!—dêL['TC¾YÔMM&³âÏ|ävJ.ƒ–@ÂÖdÓþHjõ.­rÂO!ñˆe·Òï‹„cýPu6Æ9»† ,$,ƒÈþeço-äÛɽ@é\§µ2oh±e«9ÇÁ5çrˆœ‡Âíáh¾µ¬`Í)ˆK4Œ)ÕŒeË"ÎúLè©5“BMñšmaN8ôþ|ÿi>ÚŒEYURÅ*Ÿ§M{¥¨ùê»+ÜáÎ&˜pÌÞûë¸ìÛÇïo—Ñï­³è{û²“‘Q쓹­Ö(1C½Óó×·†zn€ Ujj¦ý¹b5Â8K˜|å€Bï@@°ÿ 0@Yñæø55>{(Ð9gXr—˜æÀ } ¨`D鷞‡©…ÇUI¢"_K"ÓÙg>»K%D‚Ã:Ú&šawr%yHS?SJA•s®é+zh \:9Ë6.ÌhÈœÅäÖ¡:_ÁÏbΒɶ¬ðÜï ¥ÜIi 2@mx¶œÌ‰ßí·ËKÒ )Ô¯-{7ÿò7scº‘©ªª*„z×CkgZI©~OKâ]>ŽÏ„㯦¯_Oÿöåõµ{¨Nÿ|ß{³h¦½aÛ³3pΦoíüó5pâ©ÆÄ÷7ÜrcË>ýõB‰(ÀÈï29Š~¨é'I±±¦bh1dža( PEÕÝ\Õ94À®æ™ª×Û]\Uj·[–­›WÕ-ùÐúè^q֮ŭهôèáïT¦7½*_œãìL¬ÉvÞV³<\ºØ^·Ù$nšæ\ÉØcWI%cì 6¶œáN=í7ó%ÚÉ#ÅZñly²¿Åo×UÖRS¨Ÿ>TàŽÿŒfdR6’j¨U‚š£õ‰¦±j%ÑbÈy´ë¬Ï_êÀàÆè½\ÕŸžwåuÝߣý²Ì˜ÍYÿxýÜß{8uu ã,ýO•›I%7ÊaÒ-|TéYþ¬à$ì/ô€çã¯3o:Îþ+Èâûiž³ðÌ<îW«aš^Qg}áñÇОÍ͸ú8&Ò×4óðDF²àP‰FªÌôà‚wÈéR;Ô®׉÷a =¦")R©¿KØ;í¾×Á‘¡q~7šÒ²)±¹è†Ù¸íª ¦4ãmbý .8>¶ÜÅNxÝuL¸Rí°l¹‹¿ëuÒ‚™Ôˆ$kÅë$ôïm×W?íf÷ˆ’NªªªŠ€ã±WÝŒ°ëÍÞÊ‚›Ò°ñý¿æÕOïY IKÙýò€§‡ë^߯Jö4Œ‹3`^Mꌽc£U8ë GT“©%Ýå|tò(ŸÁa;µä§1߇ܛ{¼h*;AZTûOöÀ0\ftœÉÝ+yV€Bø˜BØ~sÈ«_¨cÙcpñ/¬ŽžÚ5{Ù)Øfó"ÃÀÃÌ¥âKÕw µ­÷ø{ð##•%£ý…EýœONXq{.ìÖ­¶Q(“2+÷vìM6D2(¶\é–~ózV˜å@ÔŠaËEœôÓ_ÑN= ׊×/pìFô1¸þôËGcD%¢©ªòPU!pÜk=Ÿ+ÑF.WßQ}¿š®¿³JúŒù°o—¦Û:œYëå9éïý¸¾šö<Ûç¶÷ÌË`ïsêû™_n³@›JÈž¨`ž8fžÉvÓaÔóŸÌͨdy( ¤Wc©|•ÖViŠê¹0@´6Ž Ë{Ȧåa•šPFš3;:·Um zŸa^Èýà´œzê÷v¼¹sIØ1Gö|Ê€ F°#L–|8#“ç‰ß*“{Ì`Z±¿9êl/ n™»³A©!ÓÀ~¶¼‰ûÕÇÓK*3¶wÜ€µÃ³åá.ìo<ë%ØaGÔŠ/$X€žÉÈ(UŪ*Kö_s2n·Ó27Ðún©F+û÷DöúBÞ>¬ç1?=¶ß—~æÂåùáruT¿2t w‚î`@EES=À¬ ¦˜¦œd%ïJºfL”7ÑpþÚ*Ã0@Ñ0Ü ”SP¨ ˆ–ŠÊl½nUÉ¡½Ý¾4•YÔîÝÜPÓ™Q30díBå°b$yªþæ¿©¡ëÕd/-¶Ò„y*ò»XŒ4Áä× "”w‹ED3r9U!òû£h­ãš‹ó\°fß?*¬ÈœÉ3lBÀ~¶¼é•ÿ©×Ó%8¡¦6`mx¶¼¤“ýíƒfè‘Ríp¢ zoÆ›_þÏçF›1ššªªª" Þ×38<·ëˇ•·oT½Vøx×VKýÇûøû¡ý:T²ÚÚ½µ/¼~î/æp̱¸öÅx³“ëâEi¦‘ÕY ™ç2Y¼¢›Â4S¥-ïÙ}iÊD¥Bè$}‘R»ºóïr:|ý=¿‡§Âä!y¯J¨ Y{•@|wõúº®/ç‹k²«üèEu]ó¾_óih$â~:–q!™;Qƒì¡!Öbôhaf÷[Ž}8‡doßu} h! ¶¼ÅEøÕc¬—èvxkű奜à¬Û±`jC’µá €‘t\¨™†ªª*À}ë¸X'(tÊf`±ó¦ø)ÕW×–mذ8Œy®ÌpÂÛn¹y0ú½c)ü·X}üÞž÷zWrê¾áä@xê!ïn¦I`´Müʹ†KO] kÃLéU߀±½ým©7ÕE½¥Ýµ—Ìéͤ`¯ÐÝ»‡aDwä¦\\4§yTÍD·Ðéž‘ p[Šò½UÌa”¾Àü*šór’˜qyâ×µ¹¾Ï&d®ÃøÁ¤¸{±u§{Ö’lĨshA  1ÞÑìØs>¶|ŠEúã±}ÈîêÖX±V [ÞË.Üõ¶ûUv IÖŠAهǯ~ó™ÑiŠ  éHUUU„~ë=Ãúås7o/­J@†ÛÿzSãqצïmœ³Ÿf¸xÜûûæmŽ}›gÌa³©W¯gÀ!'“kþÔìêm4\UÜ<ßiAS‰Äªµ‰p‹3¸£`²C.ŽòjM3KñÀˆæÔÞUŸÓ=­ÊÚMg»m¼ï1_yè¹í¤§ëuº‘ã´tÝ“½hž+„XK^Ujô9Hq]vrÓv5t¼ÙÑêD?û±ñ|—#¦`T!|é.ï3ÛÛl2´(þµ|‹YøˆÛYÑq5ÇZ+†-_uá¿ývëO-ÉpÕŒAÒ çÐ÷çwîQf¦ªª*­§£®ûæß݇1zVž$|àku)”²èsÞ??wÿ;æûÚ¢ÿx»×Æ´õ¯«ƒQ£²¾P œ9•IO7³à÷졎Ïúý0k©ál¸”žTŠÉ á@3d3ê)ê†WІ'ŸSLeQ@¢™§7%*>©Nª³î86šÔþ°xîþè:IÒÜyÐhoÝï÷ûØ×I«w×ëa'ºÒ&³Ê+ v+Ü×,ýÒ­Üí¦*&úÑý8“õh²ÁcvÀ@þµ|›YøÖíy=pW_=6µâØòÕWþGowÿ©øj7¬) ¸ôçßÙ±4’2*‘ªª*@~{1#w ýjÒnjšBqP ¥ì'·ŸÖNUEUÑ7rÔ€ÎLÜfÜ«ОOUœLþ˜žœ®ÄÌÒÖÞ„~Â]5:v3°?ýÙo§óÒ¢j¯çü9~/¯wî[?ݵ 8˜´}OfŽéL­ ¿k’Õ}ì¿ÅùßÂ#õ _÷k9–DöÄ1ÇÞãò¹©2Ü’4O8ž¶YZG›oÐí•=F,C'¸lhàlþµ|ô…÷­ÛY‚gù!)ÕŒ_ËgYø^½Ýõ’|SS 6-9.÷Íg™ƒŽE *ªª ¿ c¨óŸi‹Ø€&1{šÜ;öUû·|÷/žýºE/PÀÀãKÁÀän>Ÿs¦Ã¦r^ýe¨ˆYþ+pè³!)þCWFH;k‹$e2@†D2$s35Õ­©7ß¾ús›÷OÙïÌÚ#§Ûëø:߆ý†°N÷G÷¯}ÁOa$Û6z$ƒ÷þ…òPD\F¶$K¶Z,£äz0‡‘Ö\cýµÉÉ­»5ñ<ÐÖµ[n˜ë¤é…©gžPàÛ˜€þµüôÿÏí\¸«Û¥Z±kùl;ïÎîÔÞBSSd‚=G .Oþy4±^(£ˆV%TUd<±Î4•M–ÖøyNPü&óªù~}ûDì·iQ\Ö罫3¦úX¼OÇ„¬ WeNõ•ç%É‚‚Á¾9¿ÜÍ·löwƒÁ¬q¨¼¿pÉ@a‚Ðu“™|ÍèV¯¨Q÷9¹¡Õï©«_ÿB4¦ª~RÓ|ÌSÔ¥ç!yü4æsÓ¿$x/Œô¯ß’úXû]HŠX½ÂëÊm*NÒ-ÙVCš¼8;ËC¶çªéðæXïÜÈà04þµüŠ#ÿ·³~e§úöBQ®¿–ï}á ±ã¡zK¤PSd‚9c,úå?µžõNSF©ªª œTj:¾á®€®pí»ÿÈdWs»}3¿žUí j_ŸL6ŠIúÚö¿‡ú34Îï[@UÞ?*‡ÂìWÅt@o½Cî@ã\SPTûAX|÷kÕ0Ýì]_E7ÕÓÙ”kVŠ«½»º OôørøÃèÝn¼¾}BŽIÏÞ¹oþM¦ß¼DLÙäÜp4ƒ'’Y+ê®ÈÑÏ,Ѱ–£¥2²w&q!"1` Þµ|Õ‰çèíôð<ž jÆ®å{™y&;^²/’5EЏù t*e#SUU@Q¿í•¿Ú[Ùh(Ûf4Š‹‰’ÔÝ®Û|.ÿþu›oö=n‹xµ·ËÞÍø8f•CV÷š§ ëÞXÊ[Õv¼×iö>‚œÝ_ª¦Ã=%ÓJŠ(s#÷sÞÛÞ{ã§šµ­ÉÏM1LEßLÎnÈ=ù( œ¼i(R_×÷®¤º[~Hµ¦~:ƪ?»@6]ÝÎJ«nl‚®[ŒËÁX9ï¢ÍÛlz™§(C÷¶`ZÓm™-l‹ þµ|Ž'Ï®»³|à-45ůåk?xÕw,x KM‘"n×7õÈL:JUUE ÛËéjç§LÝÚgu¸¹·ÔþÇ}޵‘ÿ¦ûÃÃkÝ# ™$µaã=cò«qOSÉdT\•¹¡]'¡vA%Ío`B-•œe€dëL8¦ú=–ó™aª²¨ßì·Oýêø:M”ûÈœGÇ›•MÒ" ÜŸÊcf6“LÓc,,Œh«¾"¥Ùj{lpQsßsØ|`:¬„XBGìc‹¥ËÎ @cä€"ÐÏAÁ¶|Ï;ßÔÝ^á-„šb×ò~œÜQ;(žPSdð°ë›¿m£Ó4TŽUU!•µ| •í €×½©ùeÒ¿¬=þøó|ì¼Õ<÷üøú`ǧý±î¿ÞÎqÃÃ>;Vµk°Ù$më÷ä×åf \ûxý»~¹ìMíÖl×§fkžïÿ eeÅ:»çË”»~Ùû49Í3ÿ¿sXÈ~`Zݦì|͸v]º ‰yPùpjÖqK*Fý¨ÓêH,«9m4ØÎmÝ Íâ0JŸ£6üF_ þµü;ï1·ýZu¾+ÑÕÔ¿–¯íÁCì„Eô4¢¦Èà¡¡Ç/ŒžÙ3›ªªB „ZSä53i4Яñ0§¹®Ûãøê>î™On·ï³ï~pŒãÌ«}Ž;SY÷D)}àôŸÉ=$3°/U_T1fLf¶ûU6Õpå]¢zŠëÔTŽyìŸoã6OÍÛù\Ì _Ÿ U:I‰ºàTTöá­åÿ9'y4ìµØS¹+áiº”3 §½E)?¥‡;ØãÕ)ûX¿Øl›±êܕ޹|'¯º–Ze³­Mh†fÈÄL`‹“.dÀ8þµü˜fÞ#w{…÷&ˆšbØòïÙyñ$o„jŠ”Ù£BG¬BªŠ, ´’Ëùz©ýêÿû 00ý>ÝNšy¦gN–æím»Û<çûöögÞ~t ½‹©ë¾bSy¶³›‹ñr*w P̹þþò8^gÿ˜{s4oó}Y7@¥8*t_·@µ½¡™ýÓï  Þ¿¬œ“•f*ÚëôKF 0õ,$99ÛSkR™ëÈÌDIv -ÀŒ2€a;c°7À9Zضüµyñð4KÔQ6hê v\:ëËu»üÅßýí£¬½z{=gƒ}ö]–»,€9pÍ4ó¼ÏÌ3@ϲ\sÍ5ö…±¯Å±}Î~{}óóÿÿûõzœ×·Í5 ^\.wo¹ÛÙçõ×ëÙÎÏ_¯oÏ= Ð,»À2 Ì340Ï þµü¸.ÜÔbz[äš"ÊžÔNmÐn§Áæ—ÿÿÑvñÉ/Ö›Í9ûç+{ÛÞÞ {¦x_x‡™nèŸ‡÷}_žîn0ö.Ëe™=ÀÁ~ýùº½ï;3Ìð¿okàm¹oûõu{ûõv`ïý}Û=w.€fffè~OggSÀŸHÑ|­XÁmÊ/y…eI޵ܮîÓvs¡ykºRS3ð™,Ô‘I¥dÈÿ{™ÜûÛÍMð4ÐÍ03O3L7 oÓÌ4 Ãlà—Ã>,cÖ…{x³_˜ƒÍa;^÷ÿ¿ŽÃá yhhxž·^ffzà™𧇆»0\Ì2w]þµ¼[îU»Ñ7¡>‹PM,lÖúg²Ð-5©A  ów®sxhà™~˜š¦˜áe{ïŸûìsÎ+p±k­¦™g g€ÿ¿zåS C aÁ0†{߀™gzàyº»á}{†¡¡cëm.€¹/¶üÞμ5wÀÛšš"˜ƒ¦£ˆ Öþâÿÿí/ùõú¶pöÙÎ믟oÛyýõú¶×¯ÀÙo¯¿~þúù¶}6€u°¯gz`zúp€u8Þžžžèé·§¡§§§áp°¼ ôôôôôÛÓÌë°¼^/àp¶üï,¼ÔÔ/Ô¶Üül¼øøBM ¨Ô¤©TX À^ìÅ^û¾‡÷ëpÍáš…Y˜õÚ^ûÃkxÑ/¼ð / =ôÐöµ¬Yxà̺æp½Ø‹½Ø‹½Ø»0 ³0 ³0 ¶üï(¼ÔÔ/Ô*•J^¯×ëõz½^àp8‡Ãáp8÷õz½^¯×ëõzëp8‡Ãá`OggSÀ[HÑ|­¼^Ô0/OggSÈ«HÑ|­öeBkhard-0.19.1/misc/twinkle/sounds/outgoing_call.ogg000066400000000000000000010770121453070076200221560ustar00rootroot00000000000000OggSÂsoSè/©övorbis€»€µ¸OggSÂsoSÆ?}û@ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿvorbis Lavf57.56.101encoder=Lavc57.64.101 libvorbisvorbis%BCV@$s*F¥s„BPãBÎkìBL‚2L[Ë%s!¤ Bˆ[(ÐU@‡Ax„ŠA!„%=X’ƒ'=!„ˆ9x„iA!„B!„B!„E9h’ƒ'A„ã08 ƒå8ø„E9Xƒ'Aè „B¸šƒ¬9!„$5HPƒ9è„Â,(Š‚Ä0¸„5(Œ‚ä0ÈÔƒ BˆšƒI5ø„gAx„iA!„$AHƒAÈ„FAX’ƒ9¸„ËA¨„*9„ 4d ¢(Š¢( ² È@QÇqÉ‘ɱ  Y HФHŽäH’$Y’%Y’%Y’扪,˲,˲,Ë2² HPQ Eq Yd 8Š¥XŠ¥hŠçˆŽ„†¬€4CSøÚR,1Ö\wƒD‚3¬$޲ RŠ1ÆsÎ9ç¤RŒ9æœsB¡TŠ1ÆœsB!”Œ1æœsB!„RJÆœsB!„RêœsB!„J)sB!„B)¥ƒB!„J(¥¤B!„B©¤”B!„RB(!•”R!„B)%¤”R !„RB¡„”RJ)…B¥”’RJ)¥J %„R))¥J!”RJJ)¥TJ ¡„J)%¥”RJ!„J)8A'Ua£ €BCVd¢”R)-E‚"¥¤KFsPZЍr RÍ©RÎ æ$–ˆ1„”“T2æB BêuL)-•BƤØrK¡sA€€3ÀàástG€ DfˆDÃBpxP S@b‚B.TX\¤]\@—.èâ®!!A, €œpÃox NÐ)*u ð\ÑÌadhlptx|€„ˆŒ|$%@DD4s !"#$€ €OggSÀ¾ÂsoSù{ÊV©p+5ÊœÜ$Ãä׋ËÛªËÇUV7ƒ«³.µ/oëE/ê5×< L'æ‚ÄŒa‚G»?3û³ÿ\ã  .òžŒJ´Ô÷Å ýfö$A2¸ÌJI í¤Éä˶ÕÇ;ð05iá0ûZ%I¶¥Ø†‹Ù¾2˲ Qú•J 6€,Ëu]ÏÜ¨xNû„P%Û::ëîÖÒLR †·»Ðéš7·Á»$ÆýêmµßÅǰ5ÓªK6ëöµti~çN . ;4~-MïR/ÔÆODFÖ–O_üm|f¿Û¶ßq"£÷,ôÀªªªOÑܤÖÁn½Ù=ÏÃçÖë†Î>¿¬jM3^ªûó½û°>=ÍÕ\ÓÙX¯ë꨽ç®rj¬®CÏR*ÜŠA;µÜý=Ç¡µfRI“¨/•KMAÊ@%ÙWvKT&£~í?V÷pÔþó¯J¾näSÉ÷=Æ4.«ÓbqΓìÉöFd7_(é©B¨mY $YZe[|XuvÉ4e콨Üý]Û»ð‘Ø Œµ·(Ê­5}@a]ÒÀQ5´:²áªXÓ©Ú}ØñìÔA¤Ì°Mþd–<?î¾9†5DºÊã—9]C4 q%0®gÉÒááñ«ÞéÈ“}ͤʔMýÉŒÝzñD¥N6P·!¥‹N#äÉÂmªœ0—k/¤ýPm’òºÓÚ)dÉǼ”Ìü!³Ñ—ºß¯8&pª.>ìÜòX2çzë¹(ÓéxÂô~wùrâÙL/„Ê1kÂGfÞÉ=¦O®{"bNí®¼oC\™½+@¨äÑ®Ø[ôüƒm“¤Ì¸|dê§BŒ«l]¡iµ.L’O,yÁ~õ¶:TLJö'O•‹JbŒLÝÌ#3uóð÷Ë;¯$XVÛž]ÈÊ—“K¹ÐŸ? ý«-ËË+Þ´˜´~SœÌ)ñ#eNߨ+i÷Á±w.著“gzd›¼ßøŸô:ÇîYig¼Îg–£;Ÿ™‡t+¶ˆ2•_O…±‰¯KÛ.zÛ® ë0Þd0¯»•çRõNñúˤŽëâ*ŽØ‡UÕµçÕuûfÙ6CGle›%ÖA³²ýù¸»|º´ºÊ8müJ…Óª$ }•˜Ø#R_’(e"ïü^\gåó]´¼ú§E®ã¬jnþ§è=–ƒÜäÅ„^7ÚÀˆ#e&C¤ª*Ä@¼îF3§æ­É*YXWc€%îF±¡Ä¾EЮÚ=ñRBkTÁ¨`¨¥FP5=I$³Æ:ëvGsµÖ†¢ Š€×-·z²Ò‰5KH6ẋ=ö$Ó™—¥°À3Í}ºš„ì¶AI,Æc O³ç‰1E{‚®ZWi¤ž,Íø]Úö±}’ÓQ%0`I }Yâ»nž¯J’ª‚`$ÛHßmÓÒ®m`›#é?€‚ƒï5[Ä>]í`÷ôßsËhÒG©:@¾Í˜ˆ¾W•™ú£‡¾T¯î~Æ£Ö”ìUY¦ÙC¯w];ÔŒ/U%+nfî¥3†É§ªª*YT ÇhÔºTœ‘Cð4M óû¯-I¥*Z‰TB:ˆæ*+Ddˆ ¤7Ð~vì°¥M•1Ïð0Ÿ=aB%“'IÚ£8\…~o LÇ‹Zu`YïÞ5I‹ú-#<£2ÆpzþènãÓÓí·=y0\.¿?üÖÓh{Ÿ ¶«ûï ,ã0Òw{¬ˆm üp€9› 4» ÀB †ŒÂ!  ȺH *t¾ Ó˜¡ifb±üáv48¼;šÀžGeƒíͱZ–wóZc²GÅËÏWëcFX ­YpèÞ“‘2‡¡ªªJ¡#Ì•0½uV*q‘5ëǺµZ­Š"ÕÐNK°U1ÄnÈ€»MKSš/Îsºâ¸íЭN)ã…þ“2ØxÊå LY½×õϦh²üt9I„½ÎIì­Ifš¼J5+sŒª{䌡LÇå®·Aµn@ê‚v¸¾u÷¨SDj¥ƒ —dƒlEaƒ’°þ¥:#ƒX|¸oNäÁÄ>ײr³ÓéP#æü0 J®e°ÍfäÏrÂÙv;çýÚ¶»Ìˆ¿•hg¿ øžG¹ö=,ky‡?HJMò¨0·üt¹¾ô,'ÔšL̸°Þ '2 1‡zéÉ(*RU55D>VUï PvÅ5RÉ +¥F› CI2âåq "P•«³†Aà $` ªfpèô3jTÊ—¾e6ß>vg1¡R€±'@gYëâˆy©Éòu:ÏÓ¶bi0˜\ºyxôÐ'`P.íÇU±×è0w7Ÿy/O“lƒ†Ø~v1»dB¾ ñýo´±«78šírtwouE Òù˜ÿë1ª¦ ¦okƒqö] Çf†€"…f¡pÞF%‡¦3vCu]·«€©)i£*Cû.nC¶\S‰&+nv…1èÒ%ˆPUU!Q @ÕHŒFÕy@$“`¹èRîÃrú….E+P‚¡J®Xžªd 34±@]¿Þ¥@¾Nýò9`ïí=18ÆzΡRWãâmŸ=÷¬s PW‹ÅÈm.èUEÑ0~ûí®‚IÀ†>·Ç—ÝbW1ölõæóíçzn Ш£NW‘ ÇHå?â0²BëK`<¾Pû”%nc’…ý $ɸÄ6}·äàšq»ˆ»sILwª:Ê7œê¿Kh~¦miœqùLçrzªgdžWÅ™Qb,·†Õ«‡zhÕc_»$³àõ8áÏr ÈDŹ~ïÌs!£¥0†aUUUSt;FÉÆªX( ³c]X–°GëµÜ¡ˆ zõU÷«i¤híÕže€:N‡q/pÈ\ã´¸Ú=ÓºˆYStG`€‚U먧-»`Ïl±½Ñ’™2¦3j_ò÷ÜâPÎ9n÷·÷ûê¦à¬/}cö™–‡‘àù°ø¨J¡ž,! "` ecl ·«#À œ›ÝÆ &-Pœa˯É@Ï¥çŠnຠ²æ0dÞæLåCI€®‘z_œžGÙöõî–²XÖgØT¨1É£âìôóÝuzýu¢ûe…h²àAì’½ÓeX;WUUˆ2¦@)jw®»Is Šª(Á!±gQpåei"0 |½wö?5ä£7(P°Ç2†Âyxz‹Ðb™*;‘Ùÿüßújµ=·3¨¸L­O‚hq®iO6D¿™¢ Î(¯WOæØ{»¿÷ïg] DQ™¿Þ}e8³‚'I¥M‰<%UUyLUz/Ù2`aË]-*eWºH~Ølö;0w^‰°(ø îa☠Öè©é®’M@!GœsÈÊ»•ŒÍfž7eaùÉ–@ìïðP¯’¼)—Ÿ¬¬;t!š\õ€ˆsõNàf2{§&«ªªªJž¨‹ÿC‹ŠˆjSIÕ«·V~Þ PýRõUUÂl@ÐaPŠÆK­0ÍHä)ã@@C›GMÍ5æxš‹þ¶ÚNû|‚J Á-2M“aÎíªÿÝMMBÓç¥Â•» ©xñ€Âzª·OëKì: êd}õ°«æhýõeªÈ¿_« ¥* š¯*Sü–î&*žNhº•Ø¡ûAi»˜l<8N1¼Ó7ê>r6Ð ÀP;p8ew¯O)Øm ¹q¾WaÇt½líŸá_\ Å5Å»*ÈÎß]-ËŽÞÉ Q'"/$ð 0K)K2Z­ªª*ÂÞ‹Š¸2 <(¯iê„ Py‚‘ Uæ÷ÜÓ4(¨Z‰ÃP€ÁŽŒ$VSZÈØ³Éúªpα§*×Õ€¨Bx,(ðKm&EÐ…=HßY…{s1{ÜŒ‰Loý×çUÖ› õíéj©ôeÎ{›ö¸ÒQHB•d‘eýNÿ-±êª•¶Ê`< ± ÑÒ€t!˜ˆÐ,‚y4¦(OtÞTPpÜiznóýhsG¾CºLç.êÞVECíŠæ„ÕÇò6«5ƶ*9¬ßã8V¿®Vc\ð°íÌ’Ù³Œ×ªŠUUÆ:#TÇÖIP@À¤€h,šrWŽÈ4¹Ñ;hZž8{u¥GJ‰T’lÀ<††@«µ€™ŒS1‚j¢ Y?¿¼\› QHK϶ @d‡U‡¢>GùúÖ“jaYîöi¦n%yT–é=.§Ëãš1CÔ”¬¸™,¥g$wªJ¨*ÕlÄ\v¢ÇA€ÁDS÷S t0-³€{myé#R" 6¨fáúƒ6 :tê×|,„¤E"E:QQ”# ¦ÎÕœ±ç‰Aç·ÇÅlÕØ›.’2 @&©ÌšÕ'µYÛ+CÒ T‚Ã¥>ž*,ޱ÷^ͺÙ[Ÿ:gpñVçØ´T!…§ˆ„@ûL¡×ÄE¦M@p“/2à΂C=‘‰l%8ÚѱÝ^!+ 4t!Ù0¸#ÐȜԷ`Øt¼³k´Ù­…fœôñ2FžGeƒíëÝuƒ¥{†n@rIï8Në=úvR›\% ë)ê™ h{öÂ9UUU-‰§Æ0PÎÚÚµûìåCWlÙõ¨0²?ƒŒÀ¶n[V(YD°,¡µoœ\›Qƒp¹D¨@·4Záñ9W ¨uÍaŠ`pTƒð#2hÀnÆ5^7¥Ù~÷î„Õ£†]KkŒuS˜î~‚´Z—z¦É €‡ÝÌôÈÒ嵪ªª"M€Nãlj‘<ˆfP m‰!04YU(°ÀtœÊ…­odhaÕV­A+#€aS ˜ÐM Be£d„†°Ðd[tל£2Ïõ·70ì-ç\Ž!ÛZÈš…¬M’´sÈ‘9·ùµ5 ÎÞ#ÉXŸþOï{=e§4Zýº™È‡üŒ(GÃôÆÿJ¥Õ›zHõú(þKE¨ßV£¸AAã•»ˆ£m\ÆÎqÛ…ÿyÞ8uÓh×5±>‘ŒšuÏ€ÕAl>W…õÔ™úƵ< ÎLæª(?âv}꽚¬ø@N3˜!ûB3ºµ9UUU)£$í©°8¦ÝBcU+T•–¤t´‡­ìvLB"T¡@¯K-!`XŒ¦˜#æx¡ß4 cnÃFÖ§f ð%€YÖ˜˜ HSÇÄ~Ô#ÊrÞÌú¤Ša†õÕÓ4 cGú÷·å÷ß;³É[E3˪ISÝ´Nž#T ø> ¨|ý+•Vb€À6O Ö 7gHȇ]TîI›h‘ìäX!t$¤ydo‡åÀåBK ‘r»Èt“L&þGA—P›»°ôw„Ä5&{TN’üv«j}ìðÑdv#Œ¾éR䃫ªªT² ß°Žœ@Ä@ékeJ÷ôì1.;¤Š¥~rŒT¥ € Ž€í¥™šGìõË)ÓxAÿ0©(W ®³&7r”ºx;¨æn§Ëµ3›BU/dgdò0õëmõYÌRxà¬Q½×³Šš'ó²º1ú§rô%Åíj¹Q’ŠÊs­VAФ 5ôízôMònÃ$Ø+TÙIcw„è“3 iìÊÀ (­Ž†|©¤9¶# ‰!Q X˜ fÙ²À¾Gu™øúôð¹Ü&&ט´Q‰¡ú¦‡><|,' }“Ûdtv™+W‘ª*J•€‚ÆtxÁ€Š¢d-‹ Y5À)F5 ¤4öÙµ©G¯€#FcÖi&O`$OSM`‚À 0Y¯&¤}XŸ÷ 2Í™R?otó¡¡;UÏDjf=“ @fb¾QA–¶=Kóºøu{o½PÎn¬%$&!Ö1ê0ˆ,Ý–l ¢ê©äwº=w¨«y·æ§€­Ãh("8h+‡Ó1mÓŒmb Q•\²lå«ï¡öÉp$ލ#~GeùQB-³@‡Ê©Æ$ s‹„,·"®3ìˆÑ ŒÔv¼¯O —ÌsÀÕr×%ûöº¸t8ª`8³¿î=4í©WNú9¿`£ÿ<6@&uûõµ>Æáƒ«ó’cöÿâ„ÈJ¿yQ€‘búVMŸ’»+a‡›wÃd±>ê©•³T`‚¬Q$hÀ†0ksñ³ 3 ½8%`f“´: þ5WÍ0tú€lžW¥¹öŽ=°Z×g¨[êf’WE¹õÑÛAí° 5 +À¶RfÔ`l91UUUˆBZD’‹ÝPòˆó3«^1U‡ƒ`JÏHÕà¿G•u–‰*QDvtBhV–7¤xP¬ÈÓé^-Hµ³bЯQ…+=Ùx­‚n5j«ËXuz¦b[pç52E{ší\®Ï®®ìñÀ¼TïŸfÑlÀ¸|xß¹hïî~ÿd˶Lk¨™¼²1–,é° €ob¾Fžù³ÁÜ›DˆCõò`œ¢¨ß<ÜP>+œ/îZV®C‰t@¡§m¬›C<š-ÐVj-ãÞW¥Ù.Y¬°È®þáBI_f'Iìa-Ùºœð©M'p³tŸeKV…TU)Ë4 ·£Y "”ï«ýŒQwˆÚô°=ß&ôŠAº.·ìȇÑzb‡·!A•²Ü튥,ŒÁ4U?Ÿ`€n€Ôcz°Xy“œ’­©ªç³9N]ˆA¢›"ƒ¯F féã ‡®™â¯WT‰¡`ÏÿÍ\z0kd²^ÝuY¹ˆÆ¶þL$B#ˆ "òµ* Œ„c °. ‰TU(þ-à›­ÖÍ8ÒÝÞ‘Y ÒÚJ£Aõ$ï’FbÄj@½î“18Kéð)€¡mþwÅÁôcpÕg„[ê6鳂`þ²;1[×;ü5Y0 #]ÁSUUÓ­¸$ ÉÎ*ÖšZ¦“¡Hu–üúfž RøJ¡¢ÁvèŠUY)(€l,©˪JH8fnâ–!3kh“m¤^è¼4›9½ýBlJkðâªÑrbjk„³Ú“ÃÔŒaÌ1ËzËf»8ãcÿJöÏ=nœU]`,DÞÚ¬wÜ:6éâÎ.‘Q ŸmÀ aÛ–þ d% @ *a÷Î #p6Ðöá‹|Dk\ðYÑÅÙ}†8!4YúíXÁ ~7%²óÅࣆÝÒônªdŽ;¯ƒÇ²CoÅ5"/pJ&ƒÑ•œ"UU!‹Zƒ ³"2£1þÞë¾X_1?s—‚@HÀIµª£QÀ4*.ÑÊÃ…BFZ€@ì9.u‰—Æã‰ .‰d]¦(°'SÔTh¯ß®®z¯«‘d“jYA°"¯óÑbueG  Ä«?æ4²÷^}ÝsWß©¤Ùçœ7—óá詪ažò/"›Èä·BK¾÷Z#ì´©ªç „¬s?•Ù²e¤ý XÓJhŸ-Üï/ÒY‘}&;B2aç"ºÂtšÀþËHkGEÃÆÙC7ùu½ÛÓ–&yTœ]¿év}ã×c„ž]6y1€›èÙ³ô:šªªªõJ†T‚(@‘@JT#$nvµ%'¬€#])U 4Ëv•±U;fUÅ \)p`°%DS1ÄÀ ¤¡+~`VI¯ËöMd…cª(P"¬8e†žR/}&•Å€a .³÷£±wÍ*ëÿ­_³)Dn?WJQÜ’G ÚçªPªâK„P-¡(U©úvQ5U2ÊKR=èÒÒkà2”µ‘bg ]vvq4Å…¹âæ½òY]ÓY'„a¸Es Ú2n¾@‹žGõ9÷–pùÕ¿C¥ÖÈ^ÕgãŸ:¿®a5D&pzïɆD¨ªªRš€î<ÍÕ9í8À;ÕÎð»ÕŠVëBQ$@ÅØØ9žŽ(F½ªØØX,”ÂIîâq’ªnjÎ9bñMdAöÄ0õ^\vû©a1,#PA@½dEÇQàÈé+e˜g<5_N £Ô©Ç¶ÆãÛëËŸǾlÓ.»ÞëýEà ˆ€@Zj¼—»Ö‘,Y`dÀþY l>§À†íåÎ’Ö +)О ´ºi ׊7&n8”b—¬Üa¾WaûU ôôw¨YjD÷ª2h_Ѹz¬3lZc²àDý-Ð¥k UUU{UPüt5ùÝ«AFq%D}ê`ÀÊí_>|WZ!ÐÉ0eˆ¬ªÚÅàn¥hÙÈcUVªFÀ âL¥À nûâ!OzX̰8=dÆ4¯æ¬Ê—5ƒO±f‡©š„áÍ3(ÀdV¿}ºËTÌÃ<{qûmqÛW»)€öÀ»„kÄuYSx²Ò^õ5©„¤R©zšøðP[€þO`$Ê÷~ˆ‘ÌF9ʬÀTGCUad ”èì…>NQÒÉÞšÛÔ„l”,é—¾žG5Yÿó:þÝ7IkLò¨:›îÚCöòXw¨ÃÒª’7Ú0–…f4B.WHUEDY€¢–ÄXBPè•öTi! dOwÄÓglðH¬‘*Zl TV¨:@TR+v˜¢“¨Ó ©q¹AtC0 MW6¹\ì^½ ¸©"`k+‰¬íÈ+¢ Ϥÿªéa˜j<žQ?–sÈF¨ÛÌ{û–˯÷ª!ͳ¹u9À˜KZ‡42ÿôLU“SHÄÏmH¶mšÛÐ’Žƒ5ÐÒ à>]åZã˜Ál1 n. ýP6Ä$ÚeBÆžG¥™ñë+,)ê®;Ô‹“‡=*ÎÌÿ¸M/[¯þU„h²àf6@¡¾$=”˜ªbU¥,ÚâI‹Ùƒ‚fèUTŽÁ†@’q!IÓëµ$d0Ô U#_:ü’zl[FÞ|ÁÒ.…³`ÑhkÕÉti«”Mi¨Ÿ2¥—ÕŸí¹ªqô‡ÎíC‡šÐCG2о|ahW¥ƒI’èẾ¡¦d¯Ê2“tÝÝ¥³GeƒåÇ KcYÞiP’G¥¹éçÇ-zë5CÐdÀätv9V•PUÊ,DÅ›E®#xUi©È 2^,ƒ]”Ñ ‰D ;‚®z°IP}è@k€ÖUµ¶- ™Qg>ÌÊÓv©UÅqÈ,ÑÉQcÞ¸_9œœk·¼%9)E‡âêWÞ. @T9NwþüeÈ>»\ngŒ·÷Öe^€FZú¤µ½){ªJ4ˆÕ‘úżšuF¿|Çøç…©ÈTfß@>C>¸¥B Í²lÇ`>î>(m/˜(W*Ðâ¬@¦¡C`ÞV%†µ«ºëE¯îé*Ôr͸WÅ™å»ëE¯k‡½¸MVÜì.Jï FÄs©*$C%Ð^¼N²'CÙ$+„‚ÞÉ€Ò<@š«h„*¥P Gê‰ub`À±…X¸¶*@¦ynǨ;N1]qµd¹F18RHUõõ®HCÓ&)gņ…hHÚ¸ °s E;aÅQ8`H©4ÀÝÃØ½ýLÇ6ß…]€ –ðzœ"å4÷_ÍÏKãm#¬}¬Vˆêö˜ ^¥ [¯°Bcؾ,ë¨Âõ–¾ľõŸ-0¤oêG· õâ•"è›ld4®%*Χ‘£Æévd £Ý'³‡×ÙÇa×£{# ^7¥¹úöž–Ô[–;lº(®¹›¢ìò–»ë ùq¢qÀÃÀÙ¡ŒFg »¡"¤ªÊb—@•~¿9u´¸AíÜéf¤â]i =5 ‚þ¿˜ÖÊ EQ4*€E#œ9®ì°ÕH)Æìçy98ö¹ÆëX?ØFG•“ÏV{ÄyÜ( ©·Õy]¸'*êÊ Ãè»ÃcŽ‚:ý9ÞÎûë”Í•õõÖ;jtï§j©TA`ë±-{¨…ø1=Àˆð›$3éVé½°ÅE¡ïHƒ®,L¿¥vì/¹ÄÞ nPIíú’ëù`|4 / ¦ë ¾WŹñ¯+ÔÆÒ¿ó¨F-×”ìUAv‘×U\á@n²àA`‡õd ‰Ê!UU%ªÍ E³›ß›6T 20#"`X Ó[+: ‡f\1-j 5®&h0ÀÛF¡]uRÓå‘C›‘x Qm`½òG§=kì"Õ˜ØÛ&`‰×¤¹’†3Ýö`é­i°è¼öBpÆ<ù­¾.F8#̳~}yÄÜc7XíD«£k$b €¤T¡*UOIûÑþ™ÁñêÄ€,gÙ€¼`ö”óÂÈ öÕLÆEÓëÌWg™±ˆö’Í1sÎ0Ü~W¹ú¡‡¾—;Ô!…º*Ù«Šìô—ËÕBwíÇ©Y0Io”d §ªªŠ(£€ºˆ†m(˜0¤­Ô6:èZ«•ëH;L§ !µÈŒxh¢Ã °ŽI9Íú  4½X†B-`ªåÊÇÔYû˵“®A œk­œ§¿¯úÆs}é+P€=ÑRP¶Û6¢5 P÷!TÕruOpŠËé÷ׯÿ{lÏ–= P—K~ÛzØÁÜàÀ·’dK¶t³Ò“Žm@gÈo>°w|F¸Ñ  Zš£ÿG-ø°Ùf rb)#(p^÷›âÕ§MͦONsôR5džW•¹þÑr]áÑÝáKE5&yUœ›ßz»õ„?D“‰‘¸À­j&ÀƒÐ'VòÊUUU÷^N6Ñ+ª"¥@TåšP,9tNˆ®\IHî”w¯R 6ôÝ¡. ¨˜¨²à”bC½= æœu:ûrgzžDw(Ï©¹¤†Ž&)Šªb diáõ‰ÌÛÔo®Ýßï‹ËÉ„10Öy­`Îña½–‰wYhgo£¨JRUÏ55.~X]uóMj& ÖÐG58Bpæ‡àØPeJÜ[,ÜŽ4²³ åIc8;¥h†[béàÞF…¦«zVõ 5Æ6*ذ}b¹.¬^¯¦ MV<~³?4ˆq‘¬[p\}êalöôŽ ŒÖ¥Éýú²W™nh–çT' &)Ãþ»ÏÅ<²CtžïË©QNµ/Ÿ²Ãä¾Û¿s`¤„¨ä)yôÄXmôN¼Vê;(´:—›;¸ BŒ#fÐL0ÊÄô]Ä>_àlò mo>é’™mvÃmÇÆ~7Õ¹ô˜5qõw³DZUrG¥Ùþ˜rb½v³0 dbÖ^X{Q†p3ÙèÉèV²ªª*2¦#/;ˆXQ`8Z£ "„‰¦¢"70RL‚=FJà !D£e44³ÂšTŸ´_Æœeîûp*VS­{³Ø'ó ‹ƒR LTÔˆ¨Ë© •;ŸÛ½èÏ3ØM‚ÎÃY¿y]€À)™Éè!aˆTUµâÊÁ¾¦ž;­š+Ó#k?6‹PÕ¨žx-4:P⻢*‚€UñÎŒlrI@NTYqeCÑ½Š± Êm…Q<ÉY\Š‚¤¦­7• ,k:ËUhz¬†Åƒžæ˜óÜ~.ÌIkj3yýhîco] yáú½X- ‡|8I·0¾,Ð¥óªùUÑ]caxõ‚ ÅåD§tõ&ÌØ„{×až±AØRÉ!u®É®ÎsG\f: GÆ!&ÃŒ2—4L0¾G™&¡O·4ºåŽp¢Æd¯Š3‹¤¸ÝZzËc„jLV<Ä$`„6G”Ý0 UD¨ªÌ¨ $e,ÂÈšÃ쓅飹êaB…D™ jò®.¸ÅZ ©8ØÊ¾t j#Ôê4AÛ%`Xe ¨™1&æb1{ºŒ]9!VÔVIRE’µöUÜÞBáMfj ¨*‰@ó fÍñ¾¸­þ<4$Àâ\Ö£¡¡nD +–° ·ø Ä%_<œT¶d@?;” ”ó@a®³ieÀRÛ`ÛšÈBþÈäf»mÏÀq€€YóTYc¨ûä’`0OggSÀzÂsoS¤dÕAüõýÿþòÿÿûûúÿúÿÿüÿúÿÿüÿûÿÿýúî÷ûøÿí÷ÿþüÿÿøþôöÿÿùôžG¥™ñOwôÏè=Ô˜äQqvþ°›>Uëc‡= Ôˆ¬˜Ã€1–N«SUU•ÙR ªQÚ •†DKC #/õMEfBX j1„#®˜hŒ)sÝ2Ù9çdy,Ž,.ÇÞÅbNÁ8ÛǧÝZòW]{b­ÐÔêp­'&©ËŠ=1£n¦?ËêÊäV†‘)ŠRŒ´ûçâØ“bÌK³_^«7EÝñËòY ¢÷XGΦâq1uŠ0Ò-¿ /‹|8ب¡o;ñ@€rKâ eh®Y—s XcÐßdo£G'f,ÅÃîçkL»RLÀ žW¹ö‰îºt¹ÖwhÔóª87¿}w\MVœFŽd íUUU!2à˜8 e ðÐuWaÐj@ E4;•0‘ÝF@ÐÀŠVHd„P€LÁ«5€â"ÖJÁ!Ž£º7!à,°»OïWÙnŒ}6쫨­¯n0©[ÀX£6%ÌocÎÇÓÚ<ƒ‘™­¹÷þø´Þõ¶÷4r¿:‘œ‡Qœ¥¯Ò²~ÅZHÕ—E’%ƒ­„$õ_~$¡£ïò>E˜3o| ´/Gí+¦Aÿgì^w§?¦ŠD]Y‘VÀ n¸ÁÃ6¬ÉÞV%ÇÝ­ƒ¾{ZBEMÉ[•Ë/_¹»EÔ]ÛDÈd&è»wÆ0$8¤ªª2+K ˆÚÆ;¾ADSQ@¬ö‘ »z,®iÚjGaÆl~°%=m·5Š"Áœï52k(``Ô0Å‹ôã)°pÿèȏ鲜WFÆ>Eie2,Á1õîN‚r±ªqÕ¬U§R3 FÕXNs˜G±8ÍýÏïWç`8uš÷º8È1ªƒ’cÉͯ×Ñô6üýÚÆ€­Û/~Æ«j¢€îc ý,ø 2ÚB„ˆFãð×ù$†¯2ÚÜYRçãß1<°"°žGe]Âh®G’ÖLö¨t`‘¬Çtè3Tj“ Ìa"õF#éÁI§ªD¨*‘%AÕWÞ^i oZm/m³œÙÄu[ZqFK©*qU&P0Šk# AÔ  ö5¦‘ry VãÍØ‚oOŸiRÁEŸ«˜E²ëôßï›ÓAáÓ§EíXMÐ ë;QG]NI‚\®…d7$Ykª.ж3õ_g]~7gd#».g¬ºC‚±cLýH’U¢¤¾VEÕX=ýïe‚µ– ¿snccÃeþ^käë[Ûèîp»›.0éƒ%]’à8ªœÕ±°wÖ*h›€1f¨v ¾G5A‘P—[Jçñ8á_%¦¦dªÃ&¡8aI½Çµ#¼JM'p£ G§c]ªHRÖÊ„‚$ø„Ɔ®0Ú¥ÓÓ¸ïa‹¤ð6·ª´Vq(ˆB`­”˜D:6$"ÐC©ÒŒ@ u&ÙÆ‹/ †M²ƒý|ÌîÛS'€w$Ÿ–Lüšz¤B$ÔøeïIî2*HJϹtF+Õ¹¦:£y½ïï/ý»çâÂ&©Ð^3;Ӊ䰗ÔÈ(S«‚$mé ¤‹i’’¾ËÉÒè ]>qyǪ*l…ÀêM×@Í{á{І”]A¡ õóíbº¹Éz_ÜV¾G¹ö¯úÖ[—g„…Õ¦yT4°üæçúÐ[;lj@&p³}`ä é!¯S…TUeDzɸˆ¨J-ÛY×’ÃD7¦z°»!Ù­ ©&bHh}`à”W­Ç¾çRLuušÔq a¨É8F’ @ß!p¤W½–‰±{aKrªä“¼bmVo•J=º)ª`´ƒªÂ×ðú½ódg¡w¿è¾û`0µkõžÊÃ0¶r¸3<î¬*¥ªH}‰ý'„ [ï ‘oüd“Af‚ÔŽ ]6dŒPé›ML U0!ÛLëžd¸%lŠH72P$žG…ÁøñÛõeq]w¨pªi£ª¹õÔ×°X?¦DMÉ €»€AÉžŒNU UL¢C ‰¨Š€‰£ïà "°rY]b& ‚-¹žÔ»™‰©¢Q‚„*J`<s¨´«V±Ù¾É‘s¦gãW,‡û ÎåÇ—~ö@¶3 ‚!T’Tùk²¨©Žb2¼Ó¨ãd¦:_Í(—Û9ç~ùÍêeH (X gµ,`çngº&:#¡ladÝ‘¿k! A¸~³D¡­É@”ˆ "8 ã;Ð@_Â2È÷XÎYUÛvšâ´qá)JÛNZ¡u‹aCCžGeÙúe† ªœØ’ÐZ#ÁÞüÕâôk$ÖîA!*$W-I@ƒgp*ŽŠƒ×HAºÛ(`õÕÓêF¹Ää™Á4I­ÙÍŽ²ïª*¨¨“mKm–y‹Gï½?‚ƒÄ*ôij—•¶'%ŠõüÜF ä,.MÜ£‹Y^žØ`|©·’ª ‚²°dë÷ÝXpÝtrc€)l›µ9@¢Y”\WcÌF$‡ö*>¾)®dèƒR£ lNZml ÄLB ­ ä ¾W•¹öoÝuVån¾5“½*ÎÍÖnú°X®ê85“g”…¦Ø1‰TUE2‹L®T§"…–H4_´ìÝÉŽU ™qm$Wc4‘ÊÙ†¤÷H±#@íz[]5f.«Øœ4õ$‘+{ýqÙàl»ÈdTrÛ5Ôît(/Õ±x´¤?ʨìÜ{¡‹b®Ÿ¦­]÷\Sí!&c¹ ™æ¹½ýÑÿùe°Î.ömjBCžÓ9Ø3˜¸ûüþDT@Rªò^%À˜5eŒ °·QÙ1˜T”F€Ÿ0iØØ£õ)BÖJHš @¦Ü…vî8N#yW:­y]¾WÕaùÊéz|.ïP'j„{UŽ_v·Ê>¯vDãfDê9è2 {¨ªB 1Ï5 #®£ ¢  uëàc²â©ÑQû>@ãÀ-9?#5ª"AJ€C³¯6"nX—Å)’âH½’ 4¾0kqõ¶ú cÞ:s uiJèi`"”BI£å¬{gE À`Iµ¿?Æž#{ŽæýóãÕåö&Œ!{qu‰0„&`E CøõM¨Qäñ¹ú‘Œ1 @$¾#dÜè±Ü€±aþS gâ2A¤ÑÄv¼Ò8~.´µÓz‹Û4½ 9ïÚÛßHxÅGX¾WŹñß–[JõèïæS[V­1îUQn‘0¾°ª×{€htÆù /Hx0Z”ì=Ö%ˆIUUEîe÷kÓÚ¬-·B‹–¨Áù~:*A(ˆÌ€ªê<=ÛîxœÛ´¡˜ À¨íJÖ¶I3Cß[[P´z5OM&4¯+Û‘õØcÏ [ÓÅ"˜°a¼;—ªû¸c ššwŠR ]PRäœ+­Ë`ý½¨ñ°öÛ½÷r™€« ~¹÷݇ýý‡:â6–$Œs„Œd$a0ÞÞ  ns˜é¶58‰;¬3°žã”Cä‚üîµfb>dÂê¨ ì* ‘Á悞GÕåCs]{x¬',jJö¨2×~²™.]ë Ÿ´ äjez.0-Ar³ Ù;Íèš¡ªªJR×7 ñÒúè\Æ€Ûð†ƒÑè:Ô4à®ç¸¸ê޵ J ÀJv›hôãéaÔbö¬ `M´ã鵎±[Bè+Š\r‘^£ß¨aÍ ÓdÑLßQÎgd¹~¼Ô ¦hë¸Ü>ni² ÐÔÀº†ôE_»éžø¥©}Tc… Ûxµ-ë-@úI? þ³ÒB|žg‚mÅN‡vÔFÍÕžscŒâ.!HŒþl| QºÍ´ |¾Weã§-%u®þv¢f²W¥Ó·–‘z}¿ÃQ·’'ê £¤Ìl¨ªªEÀé•êaEgÑ,Ë'ÏØãÏ"(%R«J™î4ªňsšÀa"똪è…é°lJ7¬´9Åq盵=Ç’lè&‚xÊ͵“úRÝ(J,Ü®²Ð±æÈž‡&• íYÅ´˜sÎY§›Nt¼”‚` µáÐkÑ—òtpDŽé@B I×ŶØrÌdDÈ‚ ¶ð,ª9$2ã&\K Š~(j—ígJ|žÉÐ _Mf¥7€’‹ûÖÐÈ_ îH±v)!… Þgaûê ]¹¨ßðQcÒgáøe¹.]–åLÐd7» Æ(tvcDˆTUU¤2(¢àÌààQ íõÎé§dúR-¾.V¥DJI*t÷zσqUFª” ³~NOŒPUƒÛ>eÑ;Îúã(uœÌ|ïZgP˜Î'Ù:cE³®½>u1!ƒ74õj½H1ªî0 @7åZŸ˜Û)™æ©!×Ïcý¼<@³TMy8 óDGÆ6²1€±å1ÒXOa]Yˆ‰P±1Æ }7ê{)Ä‚`0b„  æ˜qdP™qË”¦÷^u¡=rÖŇoûÈ5—ÐW`Ò€ ОGe¹òÑráÕŸ°‹C½Jò¨4;~uiõèG¨MWœR Mw2 R¬ª2•@ØíŠJ CFfÐçÕŠŽá¥Õ !T„«(qÃ÷826X± ·ÇhÄV C¯ rý¥r,I%E¥r½_`¬çŽ&èC%œªªvŒ+á@êì5ªŽi Aý7ûÕˆçÎ;“šš¦rN¶‘s{}üñómý+#€”—‘¼YÌz@$ 7Y¶€È€1`[ò_–ƒ1†H~*)@R7+´y¡Õ „¹àhp&lƒÀíØ2ó,ŸІ@ÉÆðP Î0#”;W¥¹ñ3t¥¿ÃoèSc²WŹåã«…ÇÇ ¿¡¦É ènK03(ŒA¹ê1o›;uÕ âTÆ*÷dD¤/Uüòª\@QΪ%¼èô™Ó,në¯ÿ_Q˜ì²¾ê'¨¬Ø 7ÅhˆH–Ñm €%˗‡%TBEåññK—å[[¯Ú°¥²·e€]x¥jºGÃÂãßZÛÚì„áê€v;Ù Ð GÖ[¾Wuÿ=teµößð5"}UôŸœ®ÓY–;Â’Üä17˜K§)UU…ò[ðArÈD(c—xPÓhœØB]HS¦–é+l)bqØ&¦T#±Ñ¨€ÄךP°x b&)ß±%²Ùb¯ªfbÛ;åg¶«j¤*ª,Š”°;4oz*ªu^u3“Œöñ%Öb`í§æyˆ0éoûÜÞ?Ö; Û}yù¶Ü$›½kF1~³dIåñi-Ð8âoc€Â‹ÒLÔ@ <œ€ªD¼;ä^#Ç•~¡ðÀUº1·Ñ–ƒæ–÷ †ÒX 8f¢›Ý Þf%7,§Ÿ¤]®þ†º2y³*Ãû)N wu·$nr@¨™¬·~‘À¡û dŒäÌSUU•(²Š©’f]›ÓL6zhäâºkÁpɘ¢P„bs¥ŠT0-R0`(¡òxÕE1 j¿ª9v[y_ÔšyÎx:8µ÷9Ï%u ¥'Œ®™M{j’^usà}q2ÖsÌ 8c¼_u;Öخ֯aÀ&ÈD‹ûÞÎg´#¯ÙˆÀ}*¸ŸUàf€>³„ùááýLp°2Àž…Vlg|ð…–H\rM•,Ù1c²A>žW…ùå®'¬ë»Y/4«Cûã»aõX&kJVÌa‡lôÎH“UHUʈ¢’5¹L̺ ´=ìêAN€Ñ6+Óâ ¡•B¦×“…¥øª"!¨X¦WÊ’Zk( È~>5fð z¢Mz÷'Õ)í9ÃÙ³˜¬õ¢AEq``ï«KÔæ2S_ p§'÷3çëî}ÛŒLÚ#OÔç·N‚ Ô€Ô^µìƒÝ,š QÇB9øÁÈòÖ«ƒŒ- ë1¶ ²ýͦžåx G d§ìÛ…àcÚ$.N\ çN ;œ›Ç!¡Ñvaƒ€Sik¸#@“†6žWeùñi3‹uy‡EÓ7*9|>c7ô®kCÉ € °CŸ-½ >UUUeÜbKp²2(d°ç‰£E€´*w´\œ‰5] àÞ2&¡ª`K¥^ 5 ótVyÜÉÐK>ÁñìÌ¥`ªRoikÞæ!—{z4RQ΄ɦ®Þ,’Ì~)`ô4MÉÈ4ê£na v]¾¼°~ýß<Î1ašu¹ŒÕ÷˜Ð­ÝgÆÚIüŒ¡7ç66nIèM·0Ô7Ù@ÁñM"ÈßÐL7(„€êñÑîÍuºõ½W¸Š 6ß>@o6U%ú@C žG…Ùþñ;ô…ký6 š“<*Ê.}]ë±ChòBÓX! ]ºÌáT«ª©NXj†PŠ˜$€¡ fC”€‚¢HLk¯qg!Y¹hŸ¯¬t«ŠVÈP&$ ð©sÝ\•0I’•¸BD°jƒQ[í‹Р`,ê]œm ÎŠvìâF½ªÊ} ÑøÊ«gÀÝ™íL5¯ŽP…IåûÕúQÙ•¼¢Ö}Þdz°îãÓÁÛëÄÄ<¹ô¦M} Å_ E‹ñ¨Hò𮏙60=Ç0ÐC©ª¢(+n’¨ò€¢ A& ô@`Àfkn¿ZHV¢Ebƒ¡·Ša â%L&³ªØ¹ª+À‰ÃžÏ‹çª9AàµÉ²‚9ë½wìH'€ƒX#  NáYº<zV÷1a‚=Gʺ;æ,{oNNóøñð¿ûY×àœ÷ö-µoÒ€Obÿ šTÈß…*REÉóCJ‹Œe„¼ $A(³e[Ë 4¾tÖˆ”B`ã|5¡Ó˜œ@stÃ|84 rÌþ!CC22èöÔ8žG•aùj WyxôϦR!iI•…í#v·¤‡×˜&+nf”}Ó¥Ë+W‘ªJYì@T‹¹šíCYQ ÄFÓ(0ºm8r¹'ÒeÈi«ˆ¯"Ý”‚  ¢›˜áè8Áœ‹:/ÖM( gÐ’ëáÆµÒû”ݲ¸x %40êx¡cF©ÂLÖ«C6³Rgy?»¨1ßžÞ¿_š ª Ûk°¬¶øjÌaØÕš£?ùØ'‰R*y¬oÒÓýzçÒ«€(Z1@<4wp윢Á)Çž×v*Ü]¥E/áèàØÚJÍpvjØ‚i“Ñh•Œ žW…Ùé]+t¸–;ìV®Ù«¢Ìú­ÛUÙúØ–ä&+Dv {OF7PCUUEQ QÂÒTÌ x#ÇgcL¥ž°r7MtƒiɳëòïòH)@PŸb…êpKzûgš¦ ðæ&†fq–ª§­8Ï ¼FÌ@fᆨ*6FÌ¿à)Œ±¯ÞúÀ1ŠöôW¿ß/cH Ю±¿ôŽ–S6ˆú+h¨Pª¾¤jB^Û`¿–$û/­üÂidS((p„}ŠkÁûØÀkÂ^éaè˜eNù¹X,0 ™ÌQéú®Áöi¸*¼¦H¾W•AûŠú-Ë;ÔŒ“Vc’WÅáüÇõ)ê3ìÅEÔ˜¬xˆ>@ô)Fg kðT«ªˆj €‘qg‹ÅD¼‚PÜ„©^"®äÊM§ºÔù%3¥Ôª"\2bÖ=×-Óãyáùqö©èÛ•Þ§×Þ:Æw8ø™¹ç`ƒ4ï÷«Ë¤f™L€=$H_úß–1 fH,êöööq{½ÚKó>šéËnd©D¢ ¢ýn]Ø€‘b[R:fMhÀèM¡Àsz£®;†€í„”F³rbSç¦ý ¬Áãš²…Ž n¦Ùá„]Ó ]GÛi"G%†¦»8.Ë–å¤)S3ÎQ¹õá5°¼Ô˜¼˜æ É ‡œåªªªÚ'Ô,B¥ÔT!¶4@Ó:Ïüt‰Nh¼=RÚJb¥jSC€AM™!X±- 5ÊŽS•”aÁH©)'D‹‡`qÒ‡T—cì*@M°ØüÇmˆÙÖQ¬§µÈÂ…{ÈŠäpÍ"ÆÚW··8öž`Ûg½_ÖbfTÙ•Æ]]YoÕàÙƒÖ}zº´ÂLÐnÛfàt 6Å¿ÞùЧ ̧Í÷ÿl-Ã0Øjhǽ”5žG¥¹þÇõ¥s-ïðuÉ£ÂÜük·YRu-ϰhò›̥ѓQ¬|ªªªb'½ª@Q•ÛÌû&Ñ$×¹ÁA hZ¬-µ _3"zbXtâ@Ó©«}9& Õ˱—×õS½òú‡ÃD¡:´ÀxüΤqi¼2iLÁ«4Ò0†Ç³~jÐ?h`xsUh3¦r€še/(²Ï‹ž,£Z*•ß5; Ipõ¿ì/g–D“ö–ß‘m› {­@8gE¡u‡­§£iéá„«i\Þ‘X^Û@‹Š"Âç E8€"¾G5Aùk¹>­>ºg¨‹VS²WÅÁüc9xô'Ô‘V2€»€iQÂŒ5T‘ª*˜*°EóÙLœåØø"2è}Û^­¸¦ î† Ûß2 ÇÊ„ ±xP´ccq8W›ÂœŒj"ÂO‹ÃP€’ŠßýºKz+Äìm‡Û¹ e hrÛ—ÔNF¬mKC÷9ç(uïg¨-»æÂe<ÿzÛ.C`Ø—ùòÛ+À`Œ†r6ã5¶Àào¬„ʳїÅ8!ø{èŸî<¬VÑ-f.z ”t-ÝæÌ^qÿ™íÛµ лQ‹48º#9&áZ€‡vžWÕ¹ôñòxøµ<;µÐDH^•fûå{Èåòë5CÉU%/6€(Ô(˜¡Í….]f>UU¤ŠC©y((™5k€ðŽïÙ"^ˆå.ÙÑ¡Q‹âé§w2ªŠ1I Hû4IÉØ)j`ÕSq.Y4«Úf„ÈM©å[yÝ3¹ â¤(ÅÝ–DLB&Ae/ΞÚÐeÊTc[¿uD1Éé÷ÏÃýí}¾_6@‚& ê˜äM8zŽº= 0ÆúRÁLÆÏ*6dÞ|Ž þ Pl6Yqt­¬½ƒ7Ô!\y¯ß x;2 Ã07`Ï88 „º ¥AžGeùòóôË;,êÄ$ òÓ¯n×—ª_wè¬,MVÌaÀèI—®µ*TUŠ,¦F Æ|%¹DVe:x%¬Hõ̔УºáR„ÊÉ}åj¨J  SŒ!Ý:¡é!‰06ýú}{ÐÝÂ@áZ{ (îYÖe¤N™nî/ÓmUŒÊ“pâ~¦R$Àð`±k¼ŸLÓˆà®rUU‰¯Š¦à[(€È,±Œ–ÐYm€€ÇØúƒeËHi'‡ ÄVªv¸î0À 5 èÅ]#œóeè÷Î*@²÷âH éPñ,Ssæ*T4Obu´P·!a¸žq?Œi²MdÇ…Ñq`¬9ý×Ë÷ûeŸmšc.Þ¯B6“ÀG82É4uâ0ÊÏú¢¯F€Ùb´â+¥LÆc±ÓÙf2ž¾ÀÌ*@²—ñ†Œv¶…ûZô²¾;_Ó=U4ªÒø¡ÑÈírš°»hؾGe¹.)š[FvõÏð¯M5&{T˜[¤ø1kÉúu†ŸF®™À6”̤‡Dp¨ªª’E™†aöyúT½³?>1Ó…ìYhs_—Fµ…V ¥qˆVˆ$¬à˜™TxúÊZ­^è)ÚYñÄRˆq­[$`9; žJ ‘‚ˌڀ”E­Ù㨻ñ ¢Va µHb&PÐ,†“Y·—¾_r¢T^¯Æz^æŸé¡c%Ér´dl)Æú…º}MÔ´|X‹-±drV*í£~`XïJ@!8ŽÇÒÀÊÓé¤ _#¯@[pÓwèi¤‰P `9np ¾W5¹$¡¶Ð·ÅÚ¿#ÌÆÔˆìUu®ýÄt}[=Öj™‘7³õ‘Œ.¹ªªJ‘eEt(›­ A¤$¾P Z€ÀÀ÷–ù¾Œ-UUЏÞ()ïyùÊé€@¬à" ŸQÔ³že.óù,ž À¢œÝÀŽþ¾L³r0-k†Š¢Öé‚x<“4ÝÏ™i šcŽ=5ï_¬§½¸º±®£€ÉŒ ÿù$·cpÎiXóJ0¶"ÝèáPó'D²*xc™[ì€7ÈÀ–¤Ý A *ð(k‹€¢Ñ<{Á¸í‚qpÒîf ­Qèü`ÞV…ÃÒ%*,¥÷ZžrÉ[ µ;{X,^¯cœ&+NÛ—,ÃÌ©ªª"ÊlŒ@Ìð§T  µï÷Ø ¤ÄF;|åAl@ ̉­66(ˆ~Ú%f(4 ¸é3æèí?µ˜ k€ê{ÞYyGïÐRæXŠ"ÏD*檪 zI•s޾þ¼¼=¡bÛª™‹·ýwU’õî½,ëaL a"`0ýŒ$Ù€²øŽCB a׌mà I€ëÝnaƒjmÃÏlPÀy-Ï-Ðù³ÙÞÍ~†öŠ)ùÂvB-°É›a  _.)¢†¾W¥Ùþ帯õêLq¯ ²ÓOw·`YvXjÈ €9L¤Ì¤sØ«ªª*QD €€ÆNœMp$:ThJzmã¹L|±%™ÁùU/_)@!c0 ™{c(ˆ£étÓ«-=ùÜNÀdÔëgÚWWÖd%EÐV¾j \ª2ƒìéajšòÿ¸2—ºCŒŠÁ°ë<üê÷Û{0qêr[õÖ4Á†ªÞjš¤ÀáG ›P€z®d£îg,;º£§2üÀ üLÀŽ8œïñÅ_EZdc€»5hôúR¥ÿ× ÃpCsô~7¹vå:,Ë34­ÆäŽŠóó£Ó‘uöÑd¢šs‡™#3ºÑ =¬.ªªª9ÃÖi£^«(›€†,h½©g©¤Ä/ϱE5´(A× ¸™ŒqÍŠœ§o{McÇ ß\±{ÝV/ëJåqJ@Å3h†d8©ýÑOœY3›0™»ßÅ,-9¯5‡{^Õe×Èſ޶ ¤‡‚}(Úû÷Ö;¡7Æç‘Á@ojpD1Ï5³¢´óî{=û9¤L¿^ܯd×áb]jÓµKŒä"pÞïÎyP$CžG¹ñã{èGÒ÷ÏP¯BU®+‘=*È­}7]k–õD×kOÒ&+$À.edÒ { UU‰2«0@Fš&õÊDŠ‚9Në#Žïë´ÖÀ;}Kf7œGUU FôÃlÒv¯NæØä©?ð¶O™Ä>yýº0b’pG†.{@­cŒ*¬µ×Èí ¡ªRÀ@¢l~7Åáø0ÝR¸–wØ…&wS"Üßܦ/\½3ÓäÅ.p“=(9c•WEª*„ëcF! ªÅNÕµ{Ü ^­¦.ýøŽS+¨h4€[Ū«NŒ2 ”=«.•—ÀU8’(Ã,ÈÀñTAúûãZsι9)fî0šî-o2KâÐûé{anÀ0ë›çÌ9TNv?&vÛYÔ>§hNÓ(RøB ÀªÉNgå›°¬—íé¤P’ïõW)œ›|¼7ä&°à @Š ôû˜nùx…LmDM{ º lÙmØ€èî:0¯ŒlâOggSÀ6ÂsoSbRTýöñÿÿ ÿøÿÿÿÿúüÿ ÿÿÿÿ ÿ ÿúÿÿ þÿ üÿ ÿÿÿ ÿ ÿùÿ ÿ ÿÿÿÿÿÿÿÿÿÿ ÿÿ¾W™öˆîjâ±<#œ©÷ª03Ýy¬]Ë€á <€ÉÐöN—®5TUU±J ŀƥb ˆˆ›ÐP9A@ã•v¦£5àÛÓžØ.„KR&"8@¸.9KÍ«¦· À‘½ôÇRâ€Í yVMjæñª³8»“è Ûž¥ræÒ;3ë]S`€lñ0¾Væõ§É¨!d1òüöé·ïF$õ:W T]¶B|éYÇU£×…(”<ÖÓªt“€lð_(4°G:ĶmÛjÀÜ ø8ìmÓ¼vqBH”æ±™½(”9Sål‚¶Ò(ù8[Q ~7凯OìÁ Ïw¨S0×”äQ•aÇ[§Ñ-;T4‰ßh÷`ô¾ij·Å\«Šlõ幞éµr†¦Ê’½M’mû¬{×ÕžNíË¥3çºÑZ'—K³®V§¦ƒºDÕj®¢Òe¥Q‡™gŒÊ¬§Z¢À¹¨t¹'ÕÊþ[8 ‹Û{ï.}èv—IJ]÷úéûÝ4Ñ,Ûì%™‚þžÎÞø•ìö¥gWÓåœ×“ýaÿ©vyR4 ö»0 ÉšýpÆTšøKVdÿÔÄwã?iª‚#Ý(ì°K€ŽÉQÅÐj ¹Á@66™–­Æ† G °M€=è5^¶$ÕuqXÎeKÅÚŽö˜$£ñ:±—¨ž–ô(ODw2U‘ªBFj±£ièµm;qéÙoÆ™ži£bäñaói¶=>:‹…f!b”1×tÇÉ$If/1C[ýަø$ êήÈ=ÀQE_¯x2]%Ó·v=²6úá[ 5$ÌD ¢m3Ýèª_ÞRYX—€$5f_δóø¶îݞňbeœôL<®“‚äyYëJÉDÆdY–ü‘êr]gúÚJ4‰x;¥n9Có´=( 8ÃÆC¹r3QqŸ@‡= YAa‡pÈP³1*$¶”xŽ bP4c4t-)]’‡@ã#p„è£tšµ©ªªªuè¤$z•÷ë6 =Óa#::˜‹ÚtÛÿ^Æ8ý÷ñí¸¶²ÕB¦³k£f˜c¾·«íöú¶ûÕÀÞew7…*;`°ê_ÞÏÜ3{O²÷ÙömíäËεgE•=Û3ZcR \‚Z¥”aL®ȨcÕn2ñ™“cÞÓÎeæG&g=öÜ·¤UÔGR)`ýOJ›e õ”K%§wâÊ´´ëßþнõQ³<çˆéô]’1®>}rvÒ»î& ã“dœvu¡k—ÁZ/¿:¬>e³ÁPïdÁ‡h‹æ™MÜ>(Þµ4b‚Ø”ÌȹqkÉäL¢IÐxvÏÌ,a€«ªª•–¨Ó&ߚ欴¼NûÛûÞsP?õ~§vÓŸ/¦Íb}û›ÃE›‡ÔÄÆþ´¸õîË|Ûo¹¼­Ç9gçìl´Ðó„½ÎÌPÕ7>CÇjï‹•—av’œD ’÷Þ^³9Ͻ+Iº 1ôÍ3bh¤<ä<0 yàJ(ZfÎdgÝÒ†¡¡Å÷8ÕÚÌ¡÷ÞÓ9Ùç)ƒ-,I±AŠG‚;~»u[U_Hû£Š rk.©TÒš¡ãyç$U›-:»•©ùwzÌ;*ÇóÑx@óÔdÂ[ý}ÑpCuÛ~ÐE’ôÆ* 4çžz4ðà´y¶L¥' €Æ°eLc2'`÷€Ã)wÏ(騪ªªJ´Q#Ñéß¹ËǧÚ_òøÔ²w¿‹»º+m¾uà‡>Êiãú408&Uó{Ù¹ŸõÒíõ¬Û1|,Rça·qšÓx±ËSä.MÓ?íñ¬ ;a²Xëàiuv!UÖ·lé –€¼ºÌ&ФjæíI¦Åé­Ãt€«cr”YÅí=gôÇòè`jÚºb½ 7Q÷ë’«Uþ”s§JN;·“ÚHýZÈ}¼`pbãÄtt³–Ö%®Ð:( âœ9›‚ÛîìÎX­¶ô~ŽQ¤3§†±eŒS’2ƒ´À©ñhØeÔ%TUUõñF7ün“™êåµ7ÿïÞòvú§¹÷[÷>mö½Ø\»Åº6ÞÌ˾¿~/d‘muöþûtŽÅýì$ì,ãWLýç B»M¯±3†±y'’qMŽx$&A1s1$]К¤hÞ‰Á<•ÇÑUÔf¥(%£7ìÅâáí¬¾z¿D4*gfLs°Î;"CZmP 0ޤ­R£q!•†Ùeg$íà™:¦çžONå›MF–Ù+*ÇF#¸zË;kýö4¤6äò 4Ø’áVÀÏäó^S…ÐÚdž¶ìuJRÂÂ×–¥ÍɃ™Ä4ÞI:#’ÔPU2nU·¦Ä«ÓÓüš©ƒTmÕ©aÇþæWm–ª~·9–üX´_Óûpþ¿>»·mθ¼å’mÝ}RO½¡ Ë‰´„ª‘3¥uñ ”ÃÏ_B;§Öг‘ô×ñ‹³Ïe¬Nûäµì‘ͬ³™®(M‹•:íBbz¾|–’žÇCò*éì‚aßäk ŠT²Éîk]fAÜöKô ÛäâJ R}µñ¦ýHÅG%¥y•çãøb¥u¦û…s™&®óC€d,Á'ÖÛéõ8šþHÎ`v‚1®‘ˆ¿N*¿P˜†!J®#UÇP¹9q…Ê3j>¶L±Å:aE†³eLSÁ†EéBgdF=;Á,WUUûîCª1õ¥wÝØçþϯ“áÿÞÿ¹U³®½wÏgÏ_Wÿ¹8û7—ý9›ÖÓå¤ûc/.#Á 1brª:fá¤&¢˜™FdOÞ:tF̘&MBwv6…~1—zd<íI÷ÚUUU!SŒ´žLpcKE›Ÿ~ýas³ß\Öw¼Ø½ú‰všÇG÷çêëÃý²¨‡–ù|«Ûóâ%Æ>v首¯º'É¡ÝÝÅñjËú–?®†@PÜ“'Û zâ.Qî87$=»²†$ž¨Ú] ÅÒÕ¤7Ûdî¿Êºr×pQ.ýû>{Ö¨™œÝíÑ2Ýë ‘÷V)2é÷J*"%xG€_=X Ì”áºøÕÜdópB]ŠãeÆ‚Ff/–K”æô ÎA ¨gÀÛÈÐ@Žú–!»Ž±if¶4 4Œ{sÞµ”n N )f¾–®ŒÉBY)NãMðŠMgf"ÀåBªªq+ÖQ#B1óõvê#/Æ÷xlÙÉwk©o¢q¯BÞÄ€ÙAø¡….†~! l͔ޟx~¶l~*,d4ZϘScÚ2•¥Ì‚ X@ã½ Gw¡zϤ“¬ªªª&Å}[ž}5óýåhêÌ÷‹ŸŒ=ýî–ÿñûK§žwí+Ò†lµHØ"H鄳aŒuŠþéU™ÕV°,°hºM™s`>«‡½ô줇®ÿ´ˆ§W“Ýôä©•nj^³z†ËSdkÓ‰&ª¬•%Vw«·Õˆ¢XªÆ”T0OÔ̬ÈnµÀµS¥T¤JÈÊ%•HÜà¤'nºÅ:Õb½ü½ðGÆ€Œ¦ cæ¯p²’m—ªý EWFŒFc…²còƒp¹Æì]ŒÖD )8Ý‚Ém˜j¸ Xºa 0†]cáÇ-K^¶,±E•˜ 4œ-K“\€4¹#ñd'I'1TUUµg71Uñ‘|ã{>¸ksï§$L;Î*¼¬Pû˜¿¹¹_KMýl“ëv<§ë²Ú®Ïgæ)ÊDqpwítÞS ç]§¨PUú¼›Ýhê%—ÖȺɬɊa7 €“¥DQõQ9¡†¥”Ý=èâLk5=ueÍdŸ!#(ìI¬ÇÕL㕆•‡CÅÁ/H€¥¨«’D5’P¼¥*õö”(ÚGç}¦ß’3×õq9©æ­‡LîY{ û 4KºIh ëúléb(]#Ey´§e½SQ0YÚ^7SD6ýâ¬áØIú~¶,},³ ú kË4ME¦ˆ?jB‚nmË~Î`g%£„ªªªrï,—$Ég¿1ñg¸¿÷ñzý{{0$ëÅí–eý6 ”q/ssשׂ÷a=V¼¶WÛ« ¡c)£QUOZª<3ÃÒ°ÙyØd××hD’é¤MMhÒ^‰Z¢M—•(f7À»¼Ï)¶RqÐó•71•€§nTP•Y'’¹T$h%DBžROý¤*I¤ª¢žd!lã‡TV“u)ãÇFø]m÷ÒȘp,D†þçe;¹«ÖÛ¨Ûm¸Ñ EŸ4ѱ²(Å*¹¹{%Ò5ÁœÇÈ»zP7Ûî¼sn#xç°¥iÖ~¶¬¥÷L0 A“´e-½f‰€`š<Àΰ3£({!y¨ªª6 ¦I†YÕ{~Û+±öô²?þONüjt?]þ¸>X½›–ÍŽEò *…Ó6£ëæiåõ5—(j`±u]˜"Õo°Ïôº¯Œh 1¦jž Aj¯t@Q³Ò4ß> ý6ï0Ýžì*Ìâ±ê9y€ºR f¢G´hUŽÇ÷ûÙmhf(7L>~e„/®T¢DåùRu8íq©(y©´é}(–Y‰J¥ª 0ˆ²+d-Óìb÷£(ݳ Î Mé j KÔº¤0¨ãšs°;‡üN Ê6lýÈçV^¶L±Í"mL[–:U@“s:]hºJ¨ªª†;~Ä…Åíy=}ýcyô?.U]moÉvT¯Ð"G¡oÇ,žÛ¼wêy^FÙ*WLrP£Ì%ËGg³m÷Pgu1®œu1нýìå¼s¾qgÎhz­ÉM1Ýó"ÃR8g«Ãîå£/Ó]0´P—ja¿:àåX‡{Ÿ&ÆãxíÞæX ¹& Í’S–BªTó­H6Å)Pª¬«êWªR 78·ý6b¶éüw¸n.ó¬C×h¬ûõö·ˆ¡t"&ÂÏ“½¿¶6ŽCä­¹/¨ †[Cé+`F4ƪLž¶l¥×–c¯A1Fã»gRs©%TUUmŒúuU¤Š¿ò Iù4óð“eGÿ擾#Oß©œ|µýxîýu!Þ®ÔFk~öâ{ϧ9ÎÃÜÏÇÛ?Œþ££w/îµKÕØ@ž©"+ûœ†%±Ð·U3“]@D–ÊÙŠb jª*'ÛÊ»ò-é6hEZ› ’)$â}vEíLµ3/*É*tÈ‹õ5å¤Ô:;³ÕAUU©è­ªªÈ½29E’‹ÁÂ!)òRUBÆBDzÀÿ¦?rcýÄd¶Âú8l^1½8vcQ²bbç ÁD j3+ êȸ°joTê`²i^&Z kJtÖd¾¶ìe,‘äИ¶¬µ%@‚†{¡ÀÉŒ’Ϊ"UÕèW±˜äÚLÿn›Þ£Úƹ÷@i•÷žr{d3õ^eÍŠ,ÒGÏ’µ£!9|‘\[K.õ为Ufº†Zü×x9¨HÀÃÚ™e3Ï&¦š:+³‡œÄ¯˜çD¹š%ꚊX VêU÷:ÉA¨?Ø›æ@ª½s¹©¬LZЦ"š¸f1U%–bŶ±°mˆäZ®+´U_R¤>’µuHúI¦»¥/ A#KšvÔbÿë!$!÷-½ž[.${ã¸Û?¡å@ÞU¹«ša& ½8@TØ Þòª  t>¶ôqŒQb0$h,[¦Òk&šœ“™I—f«ªªµSŽ­ØLlßþgZß»øZ{|¼õé/÷~ÓÏt9~½iÇê?=¨ybt8,%E8RayR9#F7{O×\Ô`TÛðP?rf…ÊÚ6(Œ8LNÓ½Fm(˜êW3$ µª k€[È=…‰MuŽ©Œ°±@’wÓ†qe‰†N¯×sÖs¢Æj9[©J%I’'ÙÐÆS!y•$Ų-šHQõGó°Ziªc×ñq“.H±Ä™Yutë†fçÛa&ä  ëÀ¸ÝÁQ¢¨¾9]3ë6y¡.wÜܶ,eL.ˆD\hkeËÔz2eÍ‚d@ã-ñ*ìŒ2£nWUU5Ú ÙМÙwôòw~x9ðí×Üÿ“J„ƒ;†{> ’.®>z§å¾¹R,k¬¯:ÝÕÙªõ‡h€X¬O%^—AÔ©†¡N§‡+C@F$[B¡)ÕfiÖè<ÕiŠÉ¡»EOÔ=§]ef#ÔKL÷¦ ÓS{9Þ­ŽCEGóóéáÌõÎ"‡,›xÁ‰‚kóܯôf¡ª [’¾l¼Ø¹@Üp_çÖY¹Nˤ Ë=N^7P“˜’àudê°ýVwƒ{} ï¼Q¨º¥` ¢.oL7¬#  ~¶¬q¬(™°€&e˧XgL“yÁ±>.#3³”ZRUUH¿\™þúy´ßË 6q"U§9B/¯|:x9¯×í_ûúã§ÿ½8Îúm䵯õ¼¿ì,×—[üX ¦HXW…o¾hUš†•ªi×U`¦X3Ùêf ¼Im(šò$ Ý/&/F dJãnV/éÃDøÐ%T4by£2Ãx‚¸ïçs“1ä¡*_‹Tð¸m¶ADn#ý¤êËjÂ^,… Eƒ›?b$–“÷+úû G:=›'ÍêJ°"4Ü-«àåÀ&RmEQ‚$íçƒçrnõ¬J†à~¶,e‰Qbce˘¦d.4÷À %Y›ªªª¢ƒ3ñádðp:꽿Ÿõ~c¾ßÑoî=¹Š¥yç¥sôÂÇ>{œ³¸¬žq¹~öâô³‹ÝÍI¹àгô€XKE8å„B‡¦ Sj’r!ÙžWõò4M{ŠYʃef·ú¾ÓYÛPïdï¹òd¹Yó΂d¨÷\*`x“VÝ ãÁ¤–E–1”¹K5’oñÏ Ø¬²E’ú’J)ÉF(W¤M}©‡¥ž“‘zLÿk«Œ]ÇúŸsÞ%7çÙœ–74 °ýà„‹Ç|§'ZdoHêë6{Á9wphv@q½/^¶Li¬(ƒâƲe-=V åh¼%Ø:ÊÑ»„„ªªŽ=#ISÒôl²+%6‹Ô]7í?>p1lÅþ{r{°¤¥§­?³XZ¼(‹ ׯdìö²/íCÖ{}M¾(L ¡âö®QÏ—æx'WNÔ•EBRg¾5×·v ò2÷ЛI«×«ïÂ[ÏôôL~Ìß·ÌNM¯3äL6Óf_ªLW*†1ìæ—s×ìñ^ãì3œŠÊ‘JUå)J –b×5)QÒ²…%-d{ó3û±‹ôE x°‘)˜¶3rëÇ#.ƒ â&,hØÙhŒ ô!›¤9ú2DZÞa0†ÜÛ"!fYæìZ¸½`þµôf ŠÀ Ê–M¶ l"c˜Æg 8 ì̤KϪ ©*‹õ´®Eò}õ¸Ô,±°òUˆ¹Ó—@¨†ƒí-Ö+ãT=m«Tê1ÍúǹÌç§Þ‹Cu3˜/õ$¯¬B åQT©rzžø.ÔéiN)ŸIR j´µfNÇCÕPS«È–,¥{óc-–L»º<É]å¼ßæÕìYs~Ñ_phVçÙí ¦0#œ "a# #ƒbìØ`0É%àù£ª€dÇHI~#¼ç¶* >¾žbÙò­ <Ï^? t3KpŠl'ŸÃص ªHP´ €\c³U•-þµŒqŠQÄJÊ–±L5 €&w,ŠŒÎȤ³ BUUu.ÄF·øPÛð§uÖ~|ep¸/“µÅ‰ñÏC†ûq`×óåv?«ßÿ±þ±Þû#§¿³:+³y1»6Æt*oËÇþÏR]b&3»Á¿èÜ~¬åWsÛNÝÎ1s¦½fSÃÙ¹ Bº°†¶úôÙÅŠŸjRCÛ£Ú~׺Ýía²UlÚ©%•¢ŒÄ uBÏ\Mƒ+F·ÌGŠp@H¥·ŠjUª‚~:TIi«~Už˜­Áà[#92Ë¿u\j]Æ×)if@¾Ðú[TbˆðÂ^wÐ\Ü„õ†àêk$Í8jMqX笑w ÒÞ~¶ì± *ˆÒ–%õ bÐxF#“¦{¯UUUµU3áð¸ÞRµ£;Ó×ì'ïþ$Ì~,A´9U_umuçýö¸ø«~¬f7ã}9Ö{î WŸ>ÚsôkuÝiû—×·õâíäܢͰ˜—îb ½S-GøÂœ|š 33smRgAÏM'-ä2ÏeÈΆ+™é®ÞÖ,;;™Î,Øñœ±ïÒη=?~ísŒ—×Þ½ý „ó/^¿òƒý?V?ZñÊÙ]m®]Ñ蔪óT§Û9®Ý_?òbß|[‹¬÷Ç.—yœi§rût‹Ô¼d †ž((9£É©7š–?9I&STwõ<Å.^WÃÑ̺¤|Œ³óéÉbƸ˜‘ÛæÚuMH i¤lj `!ZÖ¦ž$N…Ç'M ê‰tΓIª;øcõöžCè¬ î^8•jU±°.#cD™¥Ñ<]wÈNù¬›Àì×[lrŸž9ï>M«dÕìoˆ%°E£¾¶LmN iËR{™T P ñÙ„cΊŒžtRGaVUUÕÙ¹9ÁjÆV_}Ýÿ;^æ5Ëdí…øyìÃèÎöþ9÷?V.^?÷Ç×ÙÌsµ~};u^ÈãÕîSgÚãpzOÆš¸–4K:$Ì ²—šdã‘ôT“ót¦ð™Jg‘—‡¬ìéaòŠB ê¼¶³ç±BmO›kjræ>y¯Çó~5qvÕìž(@†Ø¾$YUJ”*MÒýe,~ã ¸W‰ëW\CŒÍ.Mêïp8^”{Ï,M'ÞÝ ä,+£Åï<“]c3#_Íáé“ìNvíâʶæ“ñnà¸=–º²Ìd–)PRd=3¥&Û@u[o0c¬œD6„ hÑ"!Té<ЦuêBAîz¿–Á›˵[ÂÆ‚ÜPv›ÿJC%Jpßðë+"&o·œi] ÚØ1ií0?Î7H¶Œq AèAÃÙ2¥%8+h<»GQfw¨ªªØ`舢;¨>ácíÛmZŒïº©[×öpïUS™ï¨55?Ôà”ÍMi Éš…²i\+ð„ '}1]]•Ô]íìTߤ1âLÎïˆÇÄÆ@Rø9Ÿa®.K*TUŠ6•z{çSpŽ›`¤°½ Ö¥¬Ö1Ï"ivíãjþ³Ê2Ù±/;I(˦š%%e·ÓlZËHØ1š²=pÜJ5ôA0éœ Ð{aêž¶¬e Ê `$mL[¶Öc£‚b4>;àHtKŒR¢Ì ¡ªªj’ä$,*ÕK¾ö¢þáp»{~·ìèì¼Q¯ äìåÁÒFmŒ„”rg?%UúITU­ƒüüÕä-U¶~ €ÐØaÍÙrd×Ã:Ka(âÒ^'%ëNPÚ' &PPi¾b4 ã³¢¡J@ Õ¹ŠÝÅØEZRž¶l¥GÀ (ˆ›œ-K›B0ЃÆ;@ÑÎ̤;UUUûÅžä㱟Îmž•ë´£ÅþxºrŠ­5ó«Ÿö×ÀçjÉß±I-òX}“W>vêáåÎÛã~ár*—ðzâq2ËdmC7KCy"º§cS£a ‰GŠ™åh•<©<ܦŒwƒÞS]9´mEtv‰‘Úäþ¸ªªj"ÕY‡"%çþ¾×%—Éiă×vöÿüO¨ ûÂØBÀò2åPÿ¼ H=矛»Ví°º0õœV³^ÏÁ­/L‹Âú ÙÂë¦Ã*·Ñ„ì|ð Bs­[Uiî»Fíx.0ÅpÞ=DÍÑïž¶,eI*4ya¢álYÆ9ƒVVÐø6‘„„FôÝ{fi(¡ªªªO )Ä·ÒûVÃÛ·þtå·ª8=³ç§Ï|Uß«kÝËÍ2-Re\?ËaqVsšƒõzžókuÛek¶‡ìö,Ë€¹§9Çy~tê´x¸2ÝÔ´× '}åLÙØx–uƒj Q·!'’;JjùMf#X=ÔØ#œ}5R}{šcÏî‰ÔQ ï°²ÑyxÖˆkÒ³Žû=Œާ}ùó„Q, 1ýi\ûâ.&;÷ÛxŒ‹•œ§V¹ ê9‰~€O­{©Q-qÛdè1ÂÞÀ@Ë8é˜Û…NÄ_#Ž=Ö>¶ŒµÇ ¢]‚f¦aléË”\0 ¢ñÎàytÜ™QÒYŠªªªÎÖ¸X’‹NmìÌ×Cx8{¿ñOóÀ_ÖתWóîí´ƒ‡ýãÎÅ•·ÅazÏÉqåË«û5M¥}ª!ÊÊ vFf)*ûž 1¼ È €˜°¸Èž¤™ Ë$èaÐP¡ajTP/`(Œ™ä6=ÕÄ[SÄ1W²Ö ðj¤²Y2‰¨)‡;Û6D626J]E©*JÊÙ $³PEÄãeI#Ô15qÛË[³u<Ó-cQ7ê[röœÚcê6p»n€ã‹DZ31ƒ7›z á¨ÎBSçàyº~΂¬ùEÕ¶ô~ŽHY…rCØÒÅ)&„ôh<;³'5G3TU!•ˆ«:Á ‚òÏ­£þí­_üÏ­õïΫnëEüœGþ.\Á­ä zo›ä&CB**_+Æ A±ÃWHE°äÓª‹.¡Û?LJÞ~° !1G«o’µÉ!"±mr^ÀÀÖ®;4C{`_Æ8%šž1{º¡´³1ä)ˆ¾¶¬m,p2Ð$h\[ö±% ’bˆÆ³³‘™½UUU]u…h$´Z¾øúçÃ\¶£þñž¯FüªóJ·¿Û_ÙìÍú ûçí7ó‡Úx¡þœ¯o{ÿ¼{î×ëN-wü,q9²”ƒæ"4–Üb^㌽÷vöü²W«»)T–5-ý›©NÁ$`Ýã[Ó쎫!'§a’bhÀ“Êw6ôMöIÃ$Š=ÌŒ¬çõªóÒâmáyUí¸Ükƒ‰,a@à*•JDi_ˆy°,ƒŒõñ–ªªdj½a4&û«Sƒ—$ENsV×Þw1Ã&B „Ð ›s‡ØÆ.†½¯FÉ¡4êo Å\tgçèÁP>Ÿ>k^¶,e E ® ±lYSÂ\Q ñ‘ÀÍÀî™™Ù™UUUM6",¸ó·½¿S×7úi¢íæ­Ø&k¿´zéÿÞ8:×.¦#×u>8¾<뾩ó}ïKÝj¾ùåro‹+ëû)ºÉždž¤Fey¦!«:îÌA5š¬ö{ÅÕK;oõ^ÎИêJ"wÔš«[81'Qó¼¢Ñ0MÖ2äÓ[uŒK QW‘É dÎLuÒ]éI†‰ ªž’¢mtZ]¦¨+„±bƒléÖûëÜÑø}ŽåS«ºïBŸÀËÊ±Š ÓtäÖáL>ÃBG5ógÐŽ°óîÝztt@Z!ÄŒÇ>»ÜQ~¶,}Œ„UÑ áléÛB@Ÿt§m”ÌÁL†ªªjèh Ô•0ùnÓÐ×Ŀӓû³£•©…mtµï0åoí_Ìï·Si^Ž×ëõ‰’Ï$[ÏÜ‚ *»Qm:ù{1$Ô¬ªÕÄa#åBUwv¶˜‘=Æ}3?Ω3Ö°÷v»*Ãlv2ïÉ¢¡¼ŽA'SãQWU¥›Ú™Àöèbª¤Îíäyûm‘¡ýˆÅ¢bÏIÎÙÉ}Å"±b,°0Ó‘¿«ª”ŠªÔs r ", L§ñ¬áÈÀì„úVŽOˆÈ°^cîJ ;œCÛȬÉ?5€= ˜¦J œTØa_¬À@6Xþµt~ h 7|-™"›0Hh|\PÅãî%½¤ªªª¡Þ·“œ–öä=ó¿ãŸ,ñ^ï磬ŽÚ_~¯þèØaõ槃—¹–dœŠ>]N]]½Ž‡•?Fg¨2æóÛ}¯MG1kUˆ iÍ ¹9ÉTÇë¹;ÉêÚàc Vv.CjW—zïµ![ðLÁ%Š¢–tDÓ•·7tx8ÓçN¤a)¤Â\袔kä Kík¡Û¨Þ²^…­.«”ÈëE-®*=‡¯ÆÇ8••Vøößñé67},¾A…}Ô†ž…dÚv\;CÎ6i.¦¸]„¯Q?¨acŒ ÕFw ³¡yf$¾¶ìulŒ »Q;hkËV[EE ñžDÓ©™™…Å*RUµ­,‰ˆŽ&÷?É?µOÛ1ßýyÙÿÔ*§ÿ\‹,En¥%Ãå›´ñÅ89M X/Òg¿÷R=”s¾¼z|k^ïóûâr2SšJr¡«é Ë#GÄ-O4­ãw1ÐõT Nׇ) jägº¡™ly:ùt êVÏ!“(“AÅ4霘Y×,ö5ÅÕ娳XK'{ (ðÅ —¤ŠÔ7y܉ŽODW=»%ç« `Ed…6P»÷Šü«÷Ûä^2=·+³Á4ÓØ„Œ Á™ u–ÝI<4—ƒÓ¦íj4â~¶,qŒPB¯hfÒ–©Ì!„4¹'€Ý³ÓÙ(©ªªjs´PDݬò•”Fæƒï«KÒÚAõrŸ[÷Ÿ?†ãzaêm\zù}?ŸZ<|}nŸÎÍãMÓs¨Œ³¾ŠQÄ™G¥6 9EÁdf4£:†„džÛè>)1Ôãö“®áÏuAtòVÞTQtvrÞ6•Ó=õùÅL¢‰ vƒ¢ìþNÎÇ9‘Í1À_¶Œ$ITSï1 „m`}e ™Ð`yŽ› §—2÷´uT8_ß‘¨›, aûü¸¬iüGl{E‰ôëëÉ£2*}LÞõ:äî^\癓¼g`ÝèdªvKl™B¬žsBQ¦þµti A@Ë–¥MÉAYAã€IwºaXU‘ªã˜k×Ôˆ¯ „©½Á¸Å+ßL‹zrßÑØýÊŸœN,9{m™/nÖ[¹¯/·ËÃû¸êg´ZöZoÀ,‰ï™Z*—´¡II‚Ö ì$±ÈšÉ®â>ÙëЦ-~ÊUeÝø">ŽÕÆŒìÙ;6zˆ2‡¥×úCY@$ÿ–I•£œ5œ!gêŸýòZÞë`m"Úc_[B£D ç8®ŠT”hZ'Þõ’>^yèÇKï´ „bÁªöd>[Ú[I›Œ„f÷»föÚy£€ÛmÖ¼ ¼†K²gT ^ë(µ´>Õ5`¬ØØ^¶L­Ç A±ˆÒ–5õŠ Ï∷vò©`÷Lšîd U‘ªšŽj1DCÔºø¡ä~´ì¸Óg!©÷Î×—¾î7òÙI¹ÌùbÜnž·ôŽ÷çý¶úútM¿œEÎÂÌÃ0{ÇÕ™k×Úi-£ˆ’$çÕ¸gÏÁDp™‚Öä¤fÚý@¥§—Ò£gêš2£‘›ErK»ÿ2ÎêZU(•,s9j”ó}{˙ٜ†ê)y,½ŠJT÷œ2EhVÙ¶¤çóL!äXÁ à”àÌÆtZô*»ƒ„¦XæÜf¶–QüL>d ÿŒ|@*J›£;mEX»‡ãšOggSÀòÂsoS'ðÝÙUÿýÿÿÿÿýÿþøÿÿÿ ÿÿùÿþÿ ÿ ÿÿ ÿûÿÿ ÿ ÿýÿÿÿ ÿùÿÿ ÿÿÿÿÿÿÿ ÿ ÿÿÿ¶te E@ߌhøZŠº„P€Æ9Ï|­Ñ3“ŽJ‡ªªÅÖ}z1|U%<¾9jC‘´!a­WûP÷ÿ=úåèÖ|ê}þ¼¾zñöççï«_Õœ‡Kþ<÷Ó:«åÖÖ|o{Ýnó6ï§NF¬½È•S0tÕ8êü‚©U+P†Û«#N1ÍpÖ Ñh:“PLT»†‚Ì¡!1óïe‹Ú}sr²&!ËtÇ]NëVØ|ågj9HÆû’!¨(õå…Ea ¤Ë6I©ú° *5ö^Óö´Œ¸K"7 @°‚5¢4>ÁÜÇ£ÛgDÃl¦f·„8èãŸîP×ìNk±­×„t¿uJÙÎm…FÞI$ž¶ìµÅ(a¡kÐP¶LeJVÌ$\ É= Ž»'MG\UUUYBM#ж>ÿïèß]õO¢¾áÖÛç\½~víz…³Ë;‹0µ}碿Í·Øm=]Æâ4§­¹Hñ8†ªýü–ilW¸‚°œû /¨`ÀteVœMSµ2 ›úKôÑ«ä dŸ¬Óƒúx•Æ †ôî»bÚךLRtåÎß±Í yòéÑt2Ÿì¹K]&JMÒ¸PA›Bî6Ñ¡²›lÉÒjYȲ¾ÜX®Ú“&ël8¼•’þ…ô‡ÿ9€3Þ—†ª‘l¹À:€=wќԾ3à'mÒïgµÙJŒn±XÌ5ßrþµôqŽQ »–ڌɔ $4Â4Î ¼ˆÝ3é,YC¬ªªþµ!Áþ@üz y%Tç?)ï¶’ãv¤8ªÉÊÅãjó²œ\/Á:g³êí£S§Y™Úy&uÔØn”¼ï *(†‘b€¹(û,x¸†•±z*`z’–ŒyzvÃd±T*¥Åª¦WšySM"j÷Lª7ªY¬‚Ž©LÇx•ùR9vIÎroe(`@ ¶ŒW½(’<+Ê¡sy’dÀ—jëdµ;Ò+4-ªÞ&¦S„±ÓÚ¹­=ܧâiàÄPóÕÂhÁ5G»••:„˜¶¤ÏŽm£ÝF<íH±¶4i‚ÀÇ–±õä*``ˆÆ9ÿ^ÂîeöArUU¤^ï.ݽùáæ¦‡Ç£X4d¸åјz8 ÿ™þÈíßùî|yúÆË‹ñw{ z[ïÕ½š¤™ÝQóòxn¯óª^kݺ×,&ªKº2"…¦HN7D=U†+‹L½'¹«Å€'£cp!¨ûÚÁf.«³о"DãÎ\º!•b) ÅätSN(×D@Ѓý«9úG $BS õ\ª$¥¨’JòÕòg½Žü.Q"ïÕT*ºE'/βBc;âO\.˜)k)/ëäÞBñ↬ñ†FúfmL×ppÁAÛ]ÂÚl€mþମkwb1ž¶,eŠ 6Á4–-}ƒ âÆ{Á=£¤G¯„ªªçö •ƒïôkÒ˜ÚyȜڡZz5Ö‡‘GóKs~ÿïmÌý0¾yxZ}ì?fÏV=_]F}sN‹j_¯LÅ 1I°Ý4ɉR.““ôÈ\0ôh­(’æñðÚ}Š,OÖ¾(¢cçRÈÐ]xæ£÷š4Þd“¾Ç(ó>eìÿ×…·þœ£F?ÍK¯¨¤ŠÊjI)û±„À²bGSuUUú©FÝ«ÆSæ‘'  [Ȉ+«%l•âþK1 cˆlönŠ ¸†jPÅÄ ’é&-;² •Žß ·(ºµ%ãd‰+~¶Le ô álÙj‹…±Š m¼'aíÌÌ‘!œ«ªªÚ‚A=ò.wñ×”Úg?¶ìÇêKó[r„íñËþô\ÏÓf£´0]‹¬žYÍÛhÆ^œ‹V¢Šë¥ŒåX3³¦¨âñ±e“1à]^¥,¢Æk.•ü¨éJ¨¬3ÐâŠZ4¦kÑL›Ôº´hžiü¬Œ8sïÚ3_?MfÙ{ž¸2Z¢NÞòÂ’Ìõ8A!*ˆ$c!Û¤]&óö{ ³ô+Z¢"ÜÛ¼Àã70âÓñч Ȉ_o.0  ²æ†‹öé—×m‡ÍŸ3ptg¥ï"4äÐÏym9LÌDž¶¬i.(2PL4ž-Sƒ 4ÞØIGTºÔ¢ªª¡ÙfçÈШší- Fí§óʵäàO¯:ºˆ ]ܹ+uGß9œ“]m3’<~ÿ5V¿=gY»¿8 ¯¦©—Àx€Ô½®ô„Zü9wúÝkå20ÒÊPêÛ“8*5÷S¤ý­BøjöˆùI çÞiuˆíÊÏfki–‚Â(ÉRµaçêãvöôêÏ НUè þ’%àÂ…4UmñŒ½š’«„C?W;áºÇZ›t†ËDé&¯İ HŽ}ΟP5à͆°Û9`ŠZ5Ú‡@ 0%~¶L©wìnРalëœÁ‰€49»32Kç%TUUÍÕX>Ö{í.·òzqå­ÜóÝ=~½Ø:ãâ º¾ºõ>ò7ÖjKý¾÷X>žQžÆY¿íû4ÊcW C‰¢UA­(ï…”Œ2kœyÛ;_˜¼üR¾HPS.&å<9Õ΀ñfÉazÚÙI8ÿ®zÊÜÇ{bˆs ë÷m}P3‹Ñ¬ó´›gZæ™tÏŠ°$[„¨”|H OŒXeYrˆTšó.M%ÉæÚ"´Ÿ;Àƒ¨ ¤4šûp1B8oz»û)ÜîŽAlèp¡Öw-vƒg[3^¶Œ©'sf4#Æ–±Ž”AÏî™4upUUÕZU} ’R+#¿ç“[¿ü]2R^žžn Ùÿa8\T{°¨+æä—Ò†¹%¯4Õ?Ò.{5N-îzknW™·1µéX5kšVå 5P.×¥\#°¢ûä ¦–zjTeº ™L@ W•rr„»’ì™îÀ´`®Uý8Ê•w6M•2VQt)£ÛC¿‚Z¡ãW^–¶Tªþ ”z•Ô“"½ /k³ZW õÔ©†˜6¯ + h¾[Ñ|âÖ¬ÄH$宨Ų pVUêä¹Cðs (,ôRÄ“9¡Ã B¬ŠV!oÔJ»D}^¶,®G f¤gËZÆš;Ó°€&ggR“Ž˜IUUUë‰$6t \9\ÏçÛw/n=î†?>½¹l“ŠFOL|û“¯Òú<ºèÔ‚h]oU7oÕXéí‰("v륻šlˆ¹ÜIS9o—2.áUIõJ“LómR™ósOÅ× Ò]ã,P‘Ø Gí®qÏŠpÛyP²ËqF**‚5^³œËˆén˜ÇE"¯±`0øµ@u¯JQIÕï•0Á$‘ ©N‘ˆIs]ƒ4ÃöTúM£}²ªƒÖ9ô-HP*Ÿ‚##³ _ #Ëm\¯“ÀAv¤˜þµt~N ¤`]Kí–äN$âBh À #3I“µªªªše©+IµÚÁíË¥ØaXZªšc‡öÓûáIsuþUÚ÷_ý¯yxøù¸ø#Îz=®ÙV_÷ÂLûÖ+û`îNu ¨]6žŠ§qNAçÚNP­ëLV¸§'†$¬6hÖ\àêÀÀSµ8ÎÐ2ñ¶ø•9ƉÚÙ™9ÃC×}’'µgJûhn¾=é`±ŠrÇ3 ŠËS•jêI%˜ØïÓ¦RYM0ûnè&};RýÛr¯Úi 3o+ø¸¬ #œTk3È—àÃÒb× ³nJ-rt³qd¾,ls÷iÕL3혞¶ìeŒTr—K^@ãÚ²´9Y‘‰ø÷ #£Ì,, UUUmvI&K~lÚYrN}ë4£ƒwö2|t}óæ×[ëËüñ~éû3ãñûåñé½ô/C{5ê,ÇMpëÎ\À”'³³ôÓ¼HC¼[Γ íäó‘¦öÒ\A㡪éõ:tÑÐUÇ;;‹¥Ê)¶]U 0“k­¹…ÈSì©’ΙP¬BÁ²ÂC_eŸ¹!ζk!b¡y{y°,ɉ¤6<=tlÏ]LIFæ‘YŸÁìëQ¦ï” ü•¬~ˆÍ»Á•i|`çì@‚Øf#Ã܈µf–Òƒ;µž¶,ulp2kÒ–­NIÊv". ñ“ÕH ÖU®ñdk—¶dÒ™…䪪ªæ²õVÏ÷ëäbk&7'Ì%¬áïÖnÿXôw–¯¯¯U£ì¨…JéžÞ{PO5uOàÊ®7“ªþóȉ12ÇäšL±³Nuj¢nA{[“}ÿ;Ó6äZq½4(fÙªYÎÝãTM6 öµd6fìÜÔÉ+ÍЕbD³*f¹Ü(¡Ñ“Þ¶l­A )ˆÒ–©Î%A&JïV¢ÈÉÌÌnQUUu`´N‚à}ôúÒH\ªêÓ\áâDú/û}Z[ßx;ýÛ†y³¸ß}N2•¶[puk\›7©:™LSY½,Q{ ç>á:ëZõ´¦ÅdFÝ}Òˆ¤^6C)»­\Ágâ,R pUV{v‹{ËKÌóÕCµû¢Ë'ÅSL›*C2C<i8$q"’Íç}«ÓkŽ iìšQ¯Yq$l,KÆ”R)ªâ‰ ¯þc,“’»S-_§¯÷ðVkq ÛtØ ¿Ðˆ}À†ìÞ€/M›šwvþiFÏ#†F‚Ð .˜ÕÑo βÞµt¾'9Kư¥=(ƒ€aç4 #³ÓYB"TUUÒ½tåõÝÓÿ¿­>ØcDï_&ªkÿ7o¯Ž§ßüûÖ¼ÿÚ_{ѯõå…÷þòqžö’Îlš‰¤ž;«ä×+u˜;¶MŠbèöZvö°¢tD©!©ú˜oæ§nˆö†Ifê-jë’¢B†aºêPëäÌr¶ðæ梪¦RÑÎz¹À›3˜caeÔ1ƾ,c2ái·UF˜ÇËö%lcÛ2¤uw璃ׯ¥Ù¡ŠvÖìØ2C62h€@ã+”6ðI>ÊêW”³:3—%~• ;#—ì.Ç ¶ŒiLRyÖ¶tiN欠ñ‘PÂÑìe/ œªªª £ah±NMâ½új9ŠŸÔîý¼uÿðú'ùçˆÚ­´¾A[äzš‚”åy[/ž¶Çk×;{ÛË©umÕg‘“^râA¥™ždŒò+7‚ºOÑáPÓÝ1Àzzºgç9Ó±§TÝð†Éz[3žfç¶ç8²< ­g[­_¸þnaÓ_#D\‡„°eˆíÅ0X8ÂÃUáúÁÑíÎ}Ö®ó}ýÉ7DGÎë<ÓR`«¥™j‘ì†n?P…Z3ƒº,}Pá§Ðu[Ž)5‰ðDþµ4q N a@C×Òùé‚h<»÷’t!“‡ªªjU+UJ‹ ÒêóÿæñèíäyI æ*­8'I>ù‰Ck·›¶ÞÚŒ§ƒNQ_/ÕïßçxϺ[Ãïs¨]Ö3m KkCαçPy.s1g³bœ EÙÑane ô<{ܘÇé›—•9 MÅWFTëͧÔv¦™ÛUEAW<з°[Ý9µÂJ´Ëž—uëÌË%ï³ww.E”\UdcãÀ’±‘WdlÏÖßR˜ÍøÙ_6×]Ь¬Ys4‰€lM3&4òvɺp†PˆÑ‚¸É×…äT…ìµ0d¾¡é{ž¶lc ‚@R7œ-SéA4 ñ™jÇ)q2ʤ“-¡ªªªn %™¥ø:¯–ÂÉfHWŸ®ŸûÆaw)ÖìœË¦½lÛŽç£-q±ÞÖ ·r­M„£ýòÙóMáa3Vù³ JŽÆIU £¬i6¤+³µ^5]Ô@‘¤k÷81ÑK¯I•4™Œúér7Ýä¾1HQ;šHÉhÔ@q1¯sf¡šÌ…†ª÷®Zg./‹y¯”ªTU·*„ `ë¹m‚^è#{ýÊ™áÇ.TM Àco¸P1¹ßdnLȺA‡ç lÿ;"†ÖœÛ‘90ˆ9¦ᆰ©Æž¶¬mª84¤-[™‚2°2Fã½Àñt:£2xWUU!­©ÕZÕÊ´a9s{‘í~¤Ô†ÆTºîÞO·žØïv[o/ë#§!/Â0ÏÉ÷ZÊ[KÓ‹¢–žL}ù5ú‹}ìê?êÍ{XQ뉧•îκ¿Õñ€50Y™&—H§¦i˜x0$¢sÈl7[Ó\IQ›I?lžîi¦ÔíìÏ‹YÏÆ¾¼Ýèˤ¿véïõzþ:ç”Ë9—·÷âƒq13×@p=•¢(¹’ Ìk’ísXýRãzÃÿÁwƒÇôŒÖœó7ùƒ»3¦sŒôM±Ac«:\pçlDfü@à ³·i™ÐBg»¥‰´UdÀû ~¶¬q,d6 ‚h<[v×Êp¶Ë‡º&h<;{Ò¹ºªªª©Ä«®@½fŸÕF“÷¾üô"ý•·j‰îÌëË*¯[í_sPÛ$oçÈ̓äè>¾µoýu¥ÙVç ï¶Èu°v “gr!Œ}ÿ²Ÿ÷íñœ9BWLh`›añRsI;›óÂ,>óÚk©T3~§à4UTŠà¾"îh‚/oæ¹Ñ]r»jêcrà©\˜iõ íU ŠÔR)«¥T%• Ù–$ÀªùO§{1Ѿ}kXK–ÊTÉýÉ}iucñìã@Ö„¯É˜¡z…i$íÓ‚iYNsËìuž™q¥kÝ1‚)ýþ›>¶,~ ‚h+=h[¦Ò"Uˆ/„ïpÜQÔKæ(ªªª†…ç,šÜn«óæñÅ×ôôlg|m°µ`—þ=£¿x;Ð\næõbZ/¨WÇ¥_ã§KãíiÂÈðª*q6§¨>|èBœñ«2“ ùwµgñAõ÷ý”»Kº‹l¼Ò£zê(NeË À쩊_ȸÛÖžrt÷duSPTU£®"ãÌËE¶P°XŽ|ˆÓY²”ŠÄó—H©‡ª E%ÏRÄaŒ/P’ˆµJUß×ΔayÛý¹Eã‘jõvmç$¯„Èûß°ÓJÜÈdYCÒ\æ(ÕýÛ4º|hÈ Sj® øÇ‰±¨êiƒ¤Øõ>¶,®G ¦ABÔ¤lYk+2D ñŒÞ3鑆ªªêp‰LM¸ì«¿MN/ö–%*×{9Ó{Õ§Þ=§®;l~x¼Ùy8û|û{ºïí°vÿò°ÚÞoóAãžZŸö}%UðòŒ¨áìröyü²gßÛ|L[9"=Ìñ¨‹)MOöÐj/µeÕ$üYI”M+®Ì.ê'`à Uí~µ±iá5n$Um?äãÌö×ê|ØŒ}Nì;„$„/ƒ-KŽP(ƒ…0,’-ËŽa[`„ õ«½m.da àûöþ‘Òò{䬷uCŸdÉ`:beA‡Û7oоa·}gL öc¢[:¢|p“ì>¶Œq EÀR,4œ-“Ÿ JL„4>›àÒ …Nšî<˜«ªª2=¶¢FÙvô/§æÎ:WÒ½í6–<œWö—Öë·Ÿ.«û[cœ{%ÍjVûÖigÿ±çb±H•­Ó’›½‹sVçbŸ}Öß1±ûŽi¢ë,S¢Om­“kÔΜ Òˆ^šN@°#eÙûv8.´o’¨EöúîçƒösØrÝ]0S.WªÆ°ÞóÈÉåx©“½Ù¸xWz®¾ Æ`9– %8£íÔw ‰ZjÆ’àr½ýuÎzb[%ùÐwßî…anÑö" œe›­„]ìH†ª C@³K)ž°iEé7Õê·Ï;›Ò,8ŸX^¶Œi‰ bˆÏ–~š’ch<{DIgCUUU¢«Š ÃHK^LáÈúôÍ÷çð/i¯³ØíÆi3º?t›{*–”’û­–Öe4y//¶Æ¼uÖ.©¹ÏëÇzÖÛ`‹3œwlE7H¥&¢œ¹ÞäȈs&ÕÕqBWãœ<«Â¯ÁÄ=(»Zˆ§wCu“Ýý‡ŠðÙÅ=@•Ñ&iG*Yg¨L²MÄ«c|Éa€¥¶¿P’R¢”ÖßþŠôàêÙ/žKÔé.|î6ùÒ”B´±;äÜšÉê9ꇛ†Ù@Ø .´ÛdȾ¹`ÎDeë…æ9§l›]¶tqJ`gË’¦³ +h¼pJfÒ£ UUU'çªr’Öfuß[‰Þë7 ¤%²ã¯WbÖ5•ýÛ·ÂöɃzi=}i°/O.Ó6´”zV'M‡k?Q5OãÔ¹ŒJÙeŽG¦ªÐ“TÔS˜žœ©è€Go 8×^ÚcŠœ0|“Ê•óâ¥áá&#ƒÕ&Y‹ê¡„|­þÂÀ´Ñž™™­Ë¶/Þ÷‡½Ë†½/k ìWˆ¢J½—’J¥Þ%*©p©”ŠJžÖDççÍÍ’õ8\¼^Ì=ѽcÿ®­#Çî’ŒC 8˜ÁœÈ‘a˜É6¸Í¶Ì Ö»¹­š“]]ëÇÙ•6~¶Œ}ê8 4¤-k ”lXÑ8Wà9a÷Œ²t"UUUµ—¯#&FâÕjS?ºŸ(1ƒ¶­ïp8^¬ïœ²Ÿ^tºùâ <êÞ«ók£ß[w{¿3æ\œÊ}¶çÞ[=Y‚ÐÐ1œó€ÁÄòÝt\™ºo˜¤½t1êr;!ô„DÙ\‰s(% ‰,z« #O g8ëîqö“1çéu?kcíž×šë÷¹‡agÜë ?7òj[‡–d¤Û¶1 `[H¡¿Â`|¬£5Ú5íÎÕâwQ7\K‹æÞf¯l8‡«"މÀºØÆmX ©¦8ø®ÒHL^$„«ÝùÝÏx€D>¶LiŒu¢Qzж,¾Æ Ä  ñY=žÐáâŒ »„ªªêÜóqLfÆ~[ù÷´ºß Ë—iÆ{ί/^w—¯¯GóûAÚí”u˜]Ò>žëo¯‹‘¤q~¾]v{j¦F_šJ©ÚõÊÓx˜)_Sô6ô‡]ãmò˼ðЇIvÉ„™™iÏ G˜èêÕ2´žb%ÏsÓ  lÇiŽ}·Çþ2 *AO+@FÙq•‰U B8²lÝèÍÖbU¬hªRUJ+!k•À®Nïx‹Hö‰æ¼I]Á|-ôy@šS;CÛæÆ&ÔCŽ$yÏ–‰(@£ªF? æ(õ> õ­Ï&îÁ|Y>¶L~¬¶ˆ€‹4)[º´†"`Mn‰£çhdf̪ªª"bJå¾jËãýy{¹8Ü:øl\ÚeåØò䣫NíX<ûæ·f¾üpûòЯÞ~γgïÕÒ¾êŸ1¬ç‚ó¸Ï¹:oC£à Á’‹FMWtÞšIgRàÇ(ì1µîTÍðŠeÝÃ4†Ž]Š]vVÿkeCVNzÆ,gjãñÇ4$-C¡ó¶cÔ¹®^†™%â|©ëׯë`_ed,Ég‰äJa!Ù«MxAÊ[‰tWy~1HïÀ´Ý­z …;–ìÑ$x¹¸Æ‘!>°éw  pQ$¸Y¡°a·Ö—Í® Žüà`þì`ÂCU¶ôu … ­,4„-½oAP ñŒF&½’ªª ©bV]iÈ.²­¥‹W/ëÉ_´Tð¹³g-n výmÿûÚ¯²°|á}¨õŸ7Yô¯Ö³?VÓ7ßú–Çý6Îz~énM~z¦(ÏŸ¤£FW§»È„|—a.‘•3½ªªè¬Ít³ íþµMÄÚÓÓŽzY¡€Î2Æœb*óDÙ•Mî˜G?}¼ü1²æá*ª¶¡äëBE‰“úôøaýÿiP*ª·Du¡­9Šö. ]wŸc·5œ›ŸHZ›Ý>„ÐÖ¡­6×FÈRwJ' ­ì>R¨›[ïÎz68{Ð _Äô^¶L¥PÐ5¦-Ké… µh|2@¡èY3vf”Ô(K¨ªªšÖí "ÁÈkÆíÇÁß÷åu+¿¯_˜>ë¨×Çîô6îÓ™ð` SQŸ=,jŽÞëì‡Õ‘@4Ù0+[¤ãN&P9{-p¹&«Á=ÁR PŽ^YàätfIøjnö/M»º*çNè0ãÔ ¸˜úµÑ¦ö™ï¦D‰¸fÍ›5d.±v®•1¶„#Ë2¶… ¶Z’-IXŠ1’H¨_ªÉ@Œ×½yMù‘]Á8r)çAúù7Í•G÷šHֺ̛Íd9›Ã¹4áë×ûÑ·W$24fÛ[>nZçP^¾¶,}Š ²-rWìkiËÚ—l”hXAã½xíÌÌL‹˜PUÕD§‹cTBt-K—»í~¸ùVÚþôðº[ß­f{åÛ/ÓßŒÅæ¶4УÎX3ûý–NU"ª ã£„¬ †…„QjÓÕ“íÏÚ05™éÆ )bh૦ÓzÚ®˜Lœ ½RÞ+«н^ Ým’,kNÓ5ÅèZ*ÑQÔÓ^WËkByèIXÿ®ÑꟌA"²¡­¢šŸ)Rj}¹*E„ë2ïô’³Ç-ä÷€ XÂÛzHòj]»ns¹%H¦ƒnбP-rnBµ4grà,q:çâiõ"4ˆóôNž¶,e‰hжLµ'¹˜( 4>“à>ÜãëÆÈL*=²ªªªq'òéþ™vÑáûÇ÷¼ŒD õÝ•ì`=Ùýýåÿ_ºëšã)÷O³:{ßN;öÜ/ö^Æhw^±•êu8›œJÇRÛCM7½ž,ï ~a–.º$ wÃPH3°ôDmZ˜P÷¸5×z¿qþØmšBŠ…w•‰™›ñú–«ÓYÔe¬÷hØ5δþr¤ÉÈ6F–BbñD‰ˆ¤RȲm-ÆàŸËb À‘{Âß qýÐ;¬®óZÎ.|‘+Î’sk"9Ëó¿îJ¥ ª.³¦íYKȈ}B#ð.J¾0НŽ*‘.ž¶Lm*q6ÐzИ¶¬u.““‰¸‚Æ{Zpň2Ké6C%TUµ[“À`–5šíü»ëèåƒÛáȸÍ+¿m6<ü÷ø¼º×ïíÈGsÏmÝS5/Žš;÷rž CI_x­hXЇaª¹K‘YeQ°&䚤³ 9ÔÙÝž«cØäÕÕÀÐtÍáØó}ïQÛ]2lçt&ãOîÙæ\)Ï2çÄóΫÕõ k’nJ0ÁÌ–Ä0Õ[ER‰JµÍÝBkµŒ$ GT´Ð¯ÕýOW½ Kó³e„?–…-ÁÃZŠCËx¥šƒ¦meÓJŽ03s6bÒÀ‡@fÞn+_O>;^¶ôm AxL3ç³eJ=„€¤@ã-€ÝéŒèn窪ªj-Ž¢u¡,üÉÕâÑ÷ä—×ÿû[¬Øñ‹!Ç^/ÜLïwœÚ;¿É×ÚñƯw—K†Eõ›Åtr(#uΓ² .AÀ Çû?-¯›†ÅÙd/ml¦¿¨ÌÆÚBé<†¥e9z^e »†4 Ýq±«W·Ý “"3ºèNÿ™hg¯< dañØvèŸe[¿¥1âf¶£‰Ö?/¸œ]—Îlx®ó&4¹ØsB†àŽ•u'‰‘á9pwº–‹|›hÌ2¥uæ#nrÍ@²*°³^¶LiÜò` úbDcÙ2–¹¦`,Ê ÏÎŒz¦EUUÕJ•2dµÓ×ï¶~üeíÉ­Çÿçr³Rx‘p|¾u­ÂÛyàö\.ÊBKô¦ß«—³XÌS¬GÒ!XpRvN¼-ô ÜHm”¨`Éæ‹’ÌL²óÙÎÁ<'›<ݳûçfì9÷L”c²©|š®j²’âD 1MÆ#ÐTQ¯×Aî'TÒ,4­cC“:¶lLŒ’ü”ŠÔL:Š¥o ëHë]7Ãõ¾¨^ö)×ëô†fsìT DÍsè×ø[ô_Ù¢ó =iuù‘ª²WÍäó9‚_†*zÄü€¬ØXþµ4~ N )Æ–1N‘A ô É[ rG7ß%©tö UUUÂäj¹es›ÔÓ~íÑ×Oú•ù:R÷­;Ç´äâV}®ß<[ovÔž.Z› Ï£¯^ì½Øá·¥!Õc?ìÎÎ,‘m+‡™uƒRS(‹]35cf \”Ó­½Á¾Lhû„œc \ù”LÍEMÖ$@WöD_c«ãŒ£*cO?«Æ™¬5K7n¶-@að€% Û& /XX2(2÷¸§k"Ùè1¶-3&;iŸWÌw6ìôÛѳdƒýÝddçb;€Õ¡«ôÐê;»ÜìPÁµÙõe{…Xsì"a(´ý¶Ît7,^-Þ¶¬ãk†µe«c‘9k¨ äÆ[p<² q¨ªªšd3c®ˆÝSdñR…Ö÷¯l“ÀJ{Þí™nó¬÷9˵ŒµÍt/Ò”ÝÂÁ;;¥"°°„;Jyquý‡|Û¦î 5§sW“݉NÖÚÀ@³VL¿ÞÛ\S¸9b¢MòÑâa¿bäðÓì‰îÈté…#”a'Þ¶l½Ç*Ò†çµejS’3 @ã½»Ó• „ªªªêT3ªfIåkçvÈ·íb¼êOÙT¼ïÍ2%#ÉÅ‹!1Ÿ9ãõx3&xü|o;ö\§–j=÷ÎÕ‰×cͶŒfŠ t álYÜTÕÉn±‡´qN>Û½Ót&ŽqUUÕè#ê6]^?&]Y’µigÕµá©C˜úéð7¦nž·Í¸ú´øÞûÑ¿Ýß걕]O÷Åž·eíbžbV•«ÚyÅ:ìÒÒT  Rž#J ™Üß®«èœ³ïH73c"J=“3ÛIö>fÍ¡uz®‡¥a ž ïÒYfëŽòNÖ!I@¦€™„xx£g 'ñ |nbd~ÊRˆ!P€A~<„Ý)3ORÅ[O“ÞÛ¾ŸùyùÃæj“:uhæº2`8`DÉI:(!dH²!Vî¬Bz;(À·óH[wFå\„óš ~¶LeŒU¢ADÃÚ2ö)(›H¦ñœ(“¦ûªªª·'«¨N}œ\»û–îìýªBÅóO”´‡×]½ÿ”¶ùR[¾îáeÉ5-uçñJ0Mý°Úá@lÞ+0„-+h"£Úfš&v´Fmð°Î4ÌrÓdw©§’b¡<ÃÐ7Sf sµŸÎ©…Nö”R‹ F€™’}“E¾à‰³Îì5ÇbO'ã¼?{{d ˆJ) _¤H¢’ªJ-Û6ÒªªZR•¢’ø¨JÊšTü˜a¬tCBw‘ãåÅŒeØy0œ±‡I0&Ä䦹C®6ã>CZX»ëÒ¸©G›MµGïÃyÑ~¶l±W› ¢ÉÙ2¥1¨4¹7€Ñ{ÒtöªªŠU½ÕJ)i©õJÌz¶Êw®Œ.¯?¸³ÇTdN¥1}oŸ¿>´«—?Ú‡ýôé·—žµWõòòyµÏº‰Ùfa\ìËÃ;cWv?Ì2ëÛ†tìQgÚuFô6Ë$ÇÐ “)à^ËÕ Q*¢‚Ø[ú톀JXN*ÕYçN['1lÙ5ª© óà¨A+ÓO9ë]Nù)5Ù(+êͳ<^RåkÉ‘,tKšÞTEe!_¥ú‹¯Æ‹±Iÿ+°v+Ì ¨]»ÜÿÖM{Ãò)˜ ŘÛÀ0Eèr ÛGLÂSC§­‘€4WOÀÞÑ5r¾jÑ*~¶¬µ²AƳeªcP110F“[ÂUØ=tÉàÁUUUmÃ*ª>vp”{ßᬜ>»lgŸ†O£é»}n·oú&ƒÚø¶³—®n'óÍ>ÆžãsY—ö¼ŽÕþIÕ[ë^£­ê«:[I6kAÖdÂH©®™l‹â×ÏŒzÖÞ<›“Û8æÔŸOèïÇdäÚ &§{}±ËœiqQEGæpNª¾Ü§yÔ ªDådïÄ5Êxj@mlìÐ F€!‚wµ$¡h¢*ª¤TRO‰"Þ Ö¯>$_ Ô«)Wµ'­žfÎ-6Ø)3év} b胓.†zuC8¬…cÕ9ÐðÉTØÆy›ö[5PÝÚ¶Œq 4†-]šƒ P€ÆgÏ¢K±—ÂÎBGÑè…«ªª=A#•½þåFÉ–½ÿå0œðÿìà‡¥ß$·+[}|vm âhÛè ±¨YŸÞïíÛ¥m{µ¹UËz<«º“ák‚Ì,™ª€ÎNæÆ}Þ}y˜½*RAŠ©q« <…¢3å*“Ý©îÆí:XSæTÝ#1“WÉLí²ªC¥É{ýø±Í}š“¸Íý>]Dª¤’¶ti Î@Ÿ ±léÓTe»\Ï (< „V52#:û CUUUÃqÊLv©Ø©ÜÚÛ,ïŸôßÿæŒÌæÐãíÛk{ïúqÿ帴ܵ¸jVÿ½Œ·ýÖtÆùHù ¢.ßkm7žLe'ˆéމL¾dàl ðJ£¦tûÁ¹6„¶kq&³]]´ú+CUÃŒf’®+¬ô*ðGÍZŒ\5Nn³&kQ´Z  õMžêá@B$OùŸx7¡"ÔSU0dß(cl°ZI®îîº^]Ö·3^HžEpìèFTF×ös6®n J+]7òyCŒ¡ô©!“¬ÄR³ù [³ž¶kK&AW êymY¦)8ƒ4> øvψÎÞ9WUUUgTªœÀ¯¼sʵ­ÿþ7FeÙ­äõ|ûçެkín±9X´ÞïcÅ‹+ÿngÚ±›šó6ö}ñ«nƘëµf¸k­Ç5S=“ÓBSJ:jÂ5»&»EªQ2ªwÌeêÐß<¸¦ß÷ 4øa8%&Àh!™}ïÕ5lC¼` ‹öd«€;³LN*ê!¾F£¹Õfµx}ÕYúž°—‹ý7ÿ°ž;££og.¯£Æ?/â29Û@p¬DÚ²Qºp÷ópmÜ¢Fˆhȸ›ÅMëŸM€œ/‰P-‹OggSÀ®ÂsoS$¢F§Xÿÿ ÿÿÿÿÿÿ ÿÿ ÿÿÿÿÿÿÿüÿÿÿÿÿ ÿÿÿ ûÿôÿÿÿÿ ÿÿþÿ ÿÿûÿÿÿýÿ ÿ ÿ ÞµtqLDÐ8¶ŒeV q®¶÷“]2©ÙIfUUU—o—×ÏÃêÛà~ü£aåÊΞn·‘zòtòw¾\$[ú±§i™œœ¿Ôkµô>Kÿ}1si¤79O„/Ü!í¹¨§HÖ Ç84Óg”u>ÑDqvyzº:ÏÒã2†P눜ÎÌÌyO§Ûkx­ìf‰//ÖÎÅÌ™Ì(G-}‘ÊN9g4#ÞÕÃ~핽ôjX-k^­‘|D=U[±šÆø‰m¶°ä‹×õÉŽõ"å”´w}Uæ3¡[0v¨‡Ðzw’N}³Ñ!7’qè癀‚2ôy](â“éö¯„Mìl”›ÉRŠž¶ômhH뎅†´eic¤ : Yï>`Ó%ÊÌ2¸HUU]ÃbªK-MïúCËg‡+Ÿ/ö¾fñuåÏŽ0~f=xîé%o?­sr 9oŸNKµmoÍr>Šq‡%Q° Ç¡c×TRTñœjÊQÎYÜÎáì¾UÙ?¹¡rè¤ö˜s[–_ò9qv»21¤« ’S]0K7ÉÛ†3³ͷdzR»+JÊ£ØYúz½ܱQÁš46ȱ„lÛ²(Põâ’$ò˜T?¹J%mª-UOaоœw8C‡s6Wî@ÌJ$¿\5’‘Ò½¢Z›Áµn ÔàBÑ`8·æÓÌ!éwòvÏÀ°ŽN¾¶¬¥A€†´1m™ÚTq11$n|Çd h¤†Ñ£¤3³‡ªªª¶XÐögìí·»žP ^Sa¼¿˜SyÇÞÛú¶Úû9ßÎ_sÛ£s‹Ï×ßVWÞÎéí_Îs3Fó1˜r&¢b̸qô=LŽžÉg•Ým(C @;»»Ë!æ`œ„ov"¹MÑ“¹$ôp©’9D ´ˆº*»³KQC§ ÕY1^“†–ì¿,Ë !@’mW¤Wµªª*/Faà+Œ@ÀjÉ6|6Ïæ¥À±®4áÒ#„óÛ4êÅB4K!ø9’€˜*‘$pe+bÌ%G"Á̵ì5s¦ Ï.ZtD¼@bZL~¶,u Ê€„´±lãT ñÀΤ&µ¨ªªŠ:'‚šSKzà¶ëK‘Ó^½Ü?¥+ÉѪƒ°~“íç‹zúDzì"Õ[­<]ÉUÕë×§Îb±NÔkÏ:UÓ„™Óƒ«GŒÔcܰsÉä¥p’ í,luÎ;²‘~ì•_°P šL„ZYÉ$„cØß-m檬ÍMe;‰%ß4ÏšýO5 8¹–"«¥’<§’îHÏK€[·„2©äý7©ŸÕV½ïïÄpT"Z×öþvuU¯ëÜ$Ä%@Î[…«@2›iaD&Ýïj‡\O¸¡ìX½ÚPLlG@¡|¾°)â ¸*ž¶,eª(ÙH4¬-c›c]˜šœÝ£ˆZz)j¨ªJ8Ñ!ñ šV¯ý):ß|¹çØúJê³×m#—]®^¨Š!‡¯ÎÛ3£ä¢Ð›åïûû­^z[¹ÞsÁxËa±P cõ¾9&Y£…NÔtQS4Ʊ=¯¾LH½ä³æ©\¡¶ð•µõfv&ÕBŒ…³ P{) OÆdàÌC½ºÛyM¯©aU Ù2X_™Àò­’´Iõ*EH!ر0~/"õQÕT¢·’SÞq+²JqºE]uUrÆ @Òe8¶è9_r³C}k3x'´ ìÜT+Š1#Ù퇢(Æ$ÀÆpسËó+°@6‚¾¶ìµEJ"]’‚ܰ¶¬}.“ ÓÅïI`D™I÷`®ªªª-ÁMIs¦¦üÚÆyþt¼ýõ~Öß>\zðw%ýÚxýüo~~ûóþ£îO뱺žqµ«‹¬KŸÂÈ &—R%ÂZÒ‰ÀT¼³»Ãº7oôøž¡f%}gœš©LÁKvÓUê²s®fDg hº¬˜¡)ùíã\Ñ—¼]ÖDT @ uFcX7ë€ f1XŽ3Zz3®Ë)«j–ƒ-Èñnö[¼B«™¸@¤X°@…¨*9Ù„&¼ŒnOšOB­tžkQ#ÞQ ÅÅåJÎÍBA£P5Ý ƒ¶;Þ…~¶,­'}†³e«S‘”°²‚Æg @SqĦ{f&æ\UUÕÞŸ7ŠÕ$Ì~«Ü¶;ÃõùÝ»ýûšr¸ÏK¯tUÌóåølzQÛœ¹öËú—q}l;Û§ma»{rT½”g sjŸ¹Ï®‡ôî{í*suî7M•7&SµêËJ“Y£/Ø \øìB@í™Å;”ÅnN ut(*QWÒœ¿ œ© €Ö ¥C¼Öº”5ÑÒUXÃ,òBI»º¨Ýî1ÿ¿*ªÅC÷09˜F3½.f:RƒÙYWGp¬.¶æ\Qr¿lHØn¹õo×{%—G€ñ!ÆÊ-³njwZö äuOס°)>¶ôq Å4ô7–-K‚2°0Fã=Á“rŒ¤éŒÈ7THUTÅV¤¾òñî}úÔÿ&¹]© °É!¨ŠzÖVE  OIeU¡v cI Gyt7QÕJïpJ´3܇§¹ljŽêªw_N!S0;'4çrvÀYJ+"6âUîÂuÃ[SuLSÜPŒ ~¶¬µL0ƒ¢@“²e¬K†bFb¥óÕwvÏ,™lWUUu¿št“Útïýå·­Ç,$úx´º”"/n¼CNU®>®¡žÔšÕé\>ö\l‘]—þ>GõN¹:·MB­ 69Ptæ}w+´]³Äë= V®º£ò9•5†îŽ£.U¹2£y  £ê!ã «îûŒ:a )»¢“7åÌF t6¸å™€2"Û“oOYIìæ7F*dõ¬B)’ä*2‘d{µ¨GWV´à&goe·Âa²h*ÃÄï$þ‰V›CsWZ¤C]#2èÔU8&CÅ•ÚÚÆYж ÃÜûKã’ ˜÷º›û Ê æÏ^¶ôãR E4Ê Ë–©LÉ•M„4ÞÚp8Í 3£àÂUUU£lìT¹ÀR•|ñ™óЛ‘³‡ë·¡7üâ÷Òß~¹úì¨ÂèÓÔÓ1e«fu±=çN…V¹w•;7C"p×­ (çBÓ\õ²¿÷jÁ8ÓÝC+ú/šJ-'x“yHµl3™}g—jŒ'*Ãáµ›"`hˆ›D¤¾*NÕšYi†ž„^GÙ9ˆv¸ðÀHK`¼1Ä» D`#ÉŠð{*Uø;«îÁÌßëåõ™Ò­ ‡‘²Xèr<;ք̹yo]mmömÖ4êM÷Î&lªë5F³_Ø0+þC‰ås~¶¬i J õ ±lYÊë ô ñìFfÔ˜™YUUU''è1¡bÎøz®È&YÛü5ÌùÕï鯽YVßpŠéç—­\Köƒô©ÎÃçqûxŸ‹ºÖoÆ$s1örÑ4™—‡‰D8Ö|›)vûrd™ÑLÂdNQ‡EÌì¦L»ã­35ŤUžT»‹ê¿ÁÿôÛêæm]ƶowUfÛ1Y5äøèïõ’f.ƒéÕÅP%w7ˆ;Þ/ BY² Hæ1x¥@t¥T™Wk\ý´Gýâ£.‹dZó0Ar‚ãZÌ‚ œ”¼,ø†LI¬ŠË)9ÉQ¥qʺ˜Þµôq Ž . ¡lYʸã ,BÓxº*ì’™% ®bURå)4eû€=¶‰¿þáuytqºLÞÜÚsŽ,ï/Æ/ª_†›~]tm½íõÃzñEç…ü·XwÕWžrNW´tî¯ó^{;U-`vwĈ©x\ÍfNÍmym´x1SVy« VU­Ü¨‰8E[¹XžL¦é¢ÃçÌp·‡/Cs¯šch ã™{BVu¼Žs³A”½„ ø 'úÕS…R$0VM¯‰>Éà‹‘W;­ ò‡ÑKãi…£:ö­‡Ø [1-ã¸qNyÏjˆm½E™Ûv¬¡ë:lVù˜.luW]©.ê^¶,i A ¬ ÑX¶ŒiÅÀšÌÌ&»Ð%K:TUUú)Ö#ww¹šN6'g³›øò ‘P´;?¤bR™ªß9:Ÿmk‹«/Y¬_ð­¶Sõ¼èÿ’vß~š%Þ,ΘÎΕ3¦Ÿ±Í=(Vø"‡¤¦ÆYhòõª‡.íöó¢ÖV—ÈÊšþ™õÜNu5älj˜!ÇEU û¡T@ªŽ`é{fg‚èí¦£ó.O¤Ì‘)pzPf.…™¢r%håBÝs5ÅbºpNAÛ {&—YmÔâM=ƒ×ýn.…Pª^X—÷¨ÕT%ÏšX8y8¦dÏ“Y-ˆ16€U¥`4 É83}+»ÒÖ¨“ÞU…’LH\€õ®þÀ&7îÖhƸ¼è  b!ÖS¶L±%@†µe­spyeDã#ŽWƒ32é,Áªªª9ïM[µä6ËrïÒ]2—äÿÿva4ªê§á>–žòÅLtii“„`ËËϪ'aÝEjüÞó¡¶³~üôPcjr?ó¶j=¦s+R@öŒèŒ°˜ûͦ½ûõš  oœ 2ã®+œ×‰fÖô¸š `Ì4 ‘æ”g?¦5Ü”ÛÌ뮵W~©±Ï<êêr¼ÁHÒ"[F4„ç“è”ocS|T•JªUñžÂº¢T%mèeèS4Waßœï9Ùµ÷§i®¥sªÍk¦Pn£]$ÆEð]Ò.v(†”ìC‘ÈîG:ÐÈvœ´Í±Ó8{.P;’^¶Œq N iF4¤-K›**Ð8Wð.n 3ÊÌࡪªêÎÒ×Ns¯}Áz_>’¯Of½f/ÑI-„ÛÊËXèé êá#ž¼´þ˜Kgž·/{îU‹ú2gÅ!i{$&ëdKc–œ QRJ–ž`è¾›*ôtìÉž„(¹ÃÂø5™œ¢áê™nѪN­oužbÞ<_T3´ñ(ÇP2ZÖƃÖàl#92H²­*ê:Ó$T¥úÅG’¤òS•Ç$’^pù>ä$Üç–ºï羽h.;-w¶–ÙRÕ¬õ2]ÄËé=É'$³¶:„>ÖJsÍEÛÈ¢'àt*¸´U ~¶,}*rAMÚ–m³ï X2©4ÝUBUUm¼Ñ®3!‡êámêu÷’pºïöuÛÃN}ô×;w=rÍgŸüÃkÊ^Õ2‹ ŸqNk«Ã.S@iÌÄÛkBË š-¾†,˜Åê"³k šx¶Üúl¼¬YFIPIÐ]‰*hj,ºèl«~™\àFKÝX9ç M2½»—ìFfU¯†"cQß1Q¥Qü,uÕW©je’SÿkÌÕèKüú¾õ Ù€0"ÍŽ›å3.êÈ-L÷©›u eí{ ÀÞ‚ä¼MÞ™C5£¬ Û5#¤!®áβ‰c[^¶L½%+hX[–4eh<»Ó45KªªªŽP}¸á´£®Ìÿö·oñ"•úé—ÛüÛã?mò>)¯¶E˜—¥Råôu^¿~äýö–öìçÑ;÷åì¹çlk9ûû¹™t© ´t(䎇 †º^ÈéæQT3xA§hžÌ¼?þ¶m­å¹EôöäUÓ\UÓ¯º›¼ó:Ww4Ó¬íâé,Íúý»ÃIÕÙ{÷m,K àƤڼ^¤Âzñò—¦DsQOUR•ª¢Þ«J*/þù]òÐoÝúù,…FëË̱̊›Ácgº¨Âçð7@ØM w\Ú³)±Ë2‹A.€S ¿çÜ%¤"Þ¶lµ8k`@CÛ²×)8Ã4Þ Ø¦&u`f®ªªjö7SHK ùȇ»oF~ýÉ«7;¦ç“ƒ(ÃÆã­{FŸ^9ïɹ$Ó³½/.jô®®óøÛíëÞãôGæÃ«Þ]œË)W1áNŒÿù¼^ÝFÇ=ãt7.Ï¿öÕT tKˆÚ• L×”3£%7cöÌ%¯ÆÍ$œšåŒ¾Q5Ž—ìþ+¶¬ZÛûÜþ\ŒE~‰ÎÆÈÁ Y®T)³›¶“¢ùâ;Û #ä.c¶tX8L¸¡â(AiÝøó'…‚| uŽ&:"‘«Lë'̽Ä”Éßþ!š¨ï~‡ +{^¶ŒiŒQ¢Ñh([Ʋ$tAÐx÷ qÜ=é(³ªªª:1èÛTEB»öe›[ýa=O¥ùíÛ:{ý¥hýÞõ§õƒzmÂmœ R½O½¯Ÿ›öê¼÷“q_œŽ˜ê–õ\ÌsÜr­™í)d^Š8»‹qÖd.ªëüȬܦÓÏýqvô% ºsŠ «ºØÒöûÓk,®8²˜É§‹L üic‡™NA÷ºŽiè5­UÆ Q×S0Ÿ, `IBºŠåPë…hµ»æ¾ÃѨ&#ÑKÛDš$ïQcÝ@7ïZGkÞ¤cœ!#&G ÊZÛÔcm—˜;ü\pÇ,ÔhÕÚQ~¶luJ&XàÐälËŠmXAã3`øßh+=£¤–YUUÕfV5ªÒe]}ù1ÇÅRÂÕÊÀQ>œ›,ýF2ùkü㾯—ïÏãqŸÏåâñSó0ç²´ýuͽØÕ_ÖÏ3ÞâÔ,/¨Ú4 ÓÐÍa‰ï$d  WùUM[õÜÙ³BÒÝŒÅÔâ$É¡zr©Z¹&YZ¦§×ÑÁ/™¼ 5p%­,çæÍý›©P˜†–@:2‚gØ V B‚ŸúÝë“æâOV9÷êW= ]6²sarU—{êÊàíª™ŸF7Zú»f“ÙP[¯iM±sHöÑ2{Ö"N œµÈ=›ÈÇniæ*¶ôeŠ-y)F4l-¥™‚ ˆ’6ÞÅÊéeÒ£«ªªêKHH´R8}=v^Þuð?£óƒËõƒØožoÞý±o m„ÚäycUäPÓñdY½]œÎÈÖYãóY½ûëþY÷Ö0w·™` g(tÌdÆUÕ@(Xݬ™Mö¬PaJLQ/Ûk·¸hj„Õ ônç5»›åÐÝUjÄôYºȥț¶€3®Óy1YCß¶%:¢¾hK-‚TQð¥’P’xŠEEà€[B>üR9OTýÎÍŠyô]¤NTJmºÇ6Ôcd=‡» QŒ•D ­eFq2ïí઀ݔ¨Ç[â I¶ï¯ Š^Þµt®G83VÐŽhìZ:×’ThDçhœs™ømº32êÁ5$TUÕ°1ux°°º¾üþ´»t5™DÒVTŽíÃõàlG£ÏLOÿ²u¸?zóöÈZ}6›Ô°ª™‘aôßûù«{ÊžIWö›Çž}¦ýåñì“猻ß"š"”½¦Óš'ß}võ:»*Ny*'“dNr™Y1ÙåM泋žù¨vîp?m¿E:g=š÷ûUèxïèž`¥í§`߯xDf}çcJ…çz®Š÷_±Â‹Y‘„Û>™rÓ1ð ahÎôÏϦŽ\FCƒy˜Å8 –çpÄ4c\âXÈ¡DC_ ¨ÀŸË2i‚0®´M¶ôn Á a@cÙ²”u!=TçˆÀE d&MwrpUUUÙ!þ5çØ¿Ù[³ÝeÁëÑo^ªiÉ[¡šé‘¥úüÕÏ;ǯîí¿ñöiñi¼øXuZ†Y½Ê’rÕkØNõô4 Õ M/W­`r(ºè˜xzÈz×|—a$¿‰÷ÌLOWŸ1°¨3Íd§®çÅ´þ¢Nƒ.ߌވ$›=kߺ—9ï¯ýä¯ðÐÝç9>\‡úY„JzˆRU©†«õR!¥T‘e¢~K¬Lª·³=SÓ!Zï´Z&ƒ›®i$êN G‡¿ôMl¯«äÎÄ ,½`hbÁ ´Ì©^¶Œqª´43 iËV{,ŒUoìÞÈd4:ªªªjòØÓåíÚvæöjåÖ+•>|¹v½çHyyÃäA¸T¸¨îš7oµÚæã´ý³.ܶ5Ï—+Þ­$é¤3kÍž ÷zžñÆqÞ/£Î˜žãq{UÕ½®¥¦èçêªRE-¾ 26æºÛ-¤ªV+ °,;ºv,ÛçWïs§ð³©}ssÍ7J¸£×§m>)W™uÞßÌ6Ah²Á!uzš˜ÜZ·ZŒÖÚ±s^¶ŒiŽ„˜¨,ZãÙ²”))ˆ†49;³‘t’¤ªªª‘ÄŽ&¬Ùµz¹ë!‘ç›#¯{«¥6ÉeO¾ÿç³Ø¥]¼UÝkÊ\÷zoÏ.Wuk=¶ç¾wïÕÌt_ªlRV½™ªj¦T 5³£tNÛ³RM2y—U§ÏÜ;ó×ðëluï¦ùÞ…+é€{¦:­zñ&‰Ó6Ûsjç6ôMN`„$¼tÃ=5“hz¸>‹¢ªJ-]Ÿ#(•÷’8×y@ÏC]ùNjÓÇœ˜sòFQŸ`òEs ÙÂ9ÔôV Ée9ÓÝb °ÃÝ_•€±FÞØš‚õš÷ݶôuÌ ˜A°¸ÉØÒ÷¥nƒXA“9 öè™Q]CUU^)îð£Ú7Âõ£ï÷“G4 Ôf±9øíW_-nî,J+Û2®Qæå².]µ8 ꄪÕsÉŽÕS#0ΙgœmýødO•,‚v€I'ZˆW5Ä…–Zg!')£¡³)t¥P-9à›¼§H²k6¦v 2ae`]5³ /³L¤£g°lV$ÉB$¥*‹ª"Àz@¦ý{õît×l5œdô…Æh4Z”óìñjcz×í&íÃñ†Ï&U9Ý-;G;ª¬ @(Îw{½ŽÝ!>¶Liê&VÐøµ4~Žl„hœrgF™Cf®ªªâ÷ÚÁÄ0wÖ†Úš÷éJ…úðvdPþ: ¿­]|z:ˆä¦ÀySš:¹¬k¤ö…ôcP!hAU"ãqɳ8¡»@÷¸»VkFEÔÝmj*œÎ²w ÚI7–ò%T‘¹ÜEŒÈAkå=ï'ÙýÌl(Ö¤Lmëd 88ÃÌ^¥ÔCæØRXé8j†ìUÏÏ `$„,ye0u"}©c‘s¢óÛ¯"K.Ͼìq9Î ¼œC›¶„ðe6$1Àa‡æS5eCø2c ú4úpg‹~¶Œm@Z™i’¶,Ó’ÑÄ…g'ƒÎìDSŪªFc£œÞcùq3_ÛÜôð²/oyg,Æ[ÿ½^K¤r>•–Ùº12Óœ«i;=ØgºÚÓØNǘ§l¹åÙ Ó‡€Á±›ª™t>ifFèäðÖª&ªÌŸæÓpšÈŒTFm§š·õêÞQÍÐê†ƒÛ À’lÇnT%TõS¬j10ö7±3¶‹Mü×;ÚùsÕ÷h^1FÖÒÒá,Ä@j£†ü0ÿ‰£;D(C6ÁoÇœ‘ÆcÐ\š9ô‡×­ÁŽ^¶Lq’@éJgËT¦à÷°3é¤{'¸ªªj©c·"e¥ÿ_¯mÒÂÔ²ÏwRÌøÃz·Õ÷¯=¾ôJY&Ð5;(º_W†Äݬ¸Û—]ì`>¶LzŒ¤—"H|N[6ßì$"‚D÷&°“Îì=»ªªªêô¸ª+¾ßË[¿6ÂáË_ίy´Ö† ÎAÕ—Y$?>œ”Ó–Òh}LgVÿ]s_ÎOoNu™4ž—ZÂ(Œ¦Ï%Jôhú±ŠQE®/îÙ¢å‹jÓCÏâ' ò†¤†u™âÜ\Y1xØcz}p[ôÇÚ~œsê"ž²˜œbh™5Í꟫RW—ˆ/<Ѷ…äË €°P$ô  /),ñ‚‘#«èŸçŸí-íP0WÓ÷µ3Žã>èë­­}qäf <€µÛ­^i¢ý}8–Mâ“l—ß6™Ý›Œ!“¾¶¬½†`À0Ѷ,eê8›ÐƒÆ'Þwp²ô̬¸ªªª&$.Gâ ò*ô?þ§º±DÕþüº_Éj2²ët?›–•›¶ÙëÁ>—Ç—·<•)µI:Ò×MÝÝžŒs™W‡Ví‰Ù²a6ð™õüc:e÷³ïæ±çëó[ÿÔ4Lj gÁàI|g÷4u¥˜Œ¨šµ˜\I׈¬lú¡¡uOÅwyOONG޲[Ùëú®Z`pü¦Ç~é¡’(©/Qƒs·qæ'Jô¨€÷zKv%–C(ø‘¢¹ÍNÿuR2¦ÜÍQµœ!d ù.£ÙRèFóÁXç»CÉ,9ˆÙCuÛ  xšï&õ<ÎC^¶LeŒ ©/Ð0¶Œ¾e€Æ0‚ã+±;#ÊL2¹ªª*«ù õËìMrÚÆ³syùC_ÚþõøòíÛ¿¾½ zÙ'ZïËYÜ{?.#æÃ.ËÇ3çÃùXw2²Q ÕtÛm±Ãý„WԹ̳§yÆVz¦ÊÕ|ìÎîÞm»˜ÎS•Ù”›ÒLË%`ÝRJ™gf^ª¦šltº’ ¯»@UÔJ=ÙÜƒÉ ¦Ó>Š*DE=å…e_B2à#È6–? 78Æ ]Ä­¼Žehøû×¾V7|Í¡¬cÄÀ\¦Ó˜¡9 a݉g±þ6Æ™-¼þЪwNÎp0Ü¡aÌ.n>¶ôi E ®ÍDÃÙ²¦>$LZç“ÕŽ2“ÎÒUUU¼ÏŽ&ƒ; +Áöt8{üWÍ•q^ª?^Üzx«¼¼ñ²].ÖóQ¿èûÔr³˜s¼gyú‹]OYó+FY)/ ~­ÓÒo½SôSŠ—Î»­ÊVM ¼m ¼3©jbV“Y€ÌdÞ<¸Ó4{@Z˜"ÓÙÖþ{­®¹ê¥Zu;¨–;TL§ƒÊŒnº}aDIE¨Jòøb|­BÄ—B‚pˆ‘PoíñÈKÙêÕà1î<p’6@$Ñ`;,äÐÈA!¬8Sx€9FØtãÝ.8¶#ÃÞßšŒ»ÌŸípØ“f[^¶L¥Uëd£˜p.[úÖ‹<ïš™tI¢¨ªªZ˜Ëãô4vöp1ìC7Ÿï×S§ÿýD*uÊ‹Qo篶·ö ×-zjñê¶{÷=«s7÷2Ä¥»»s9e?Õi­qƒh˜f†MT/MWT¦ÚÌÕÅ:‘æY»‡–Ȉ:^ õRìv£»¼J »^Ï•vb†aL ¼ðõ†(³n6®U€ç‰ ÛrvmTEVŸ/Ÿ@hBŽL‘Á‘,DJµ?£­ßŠö1Z8:GåPIˆÿJ'·1UÕ-»4ý|ŒºùÏ‚¹ÆÁä4ÇØmA'Gx7t7-TMËÃ>0†þµt©'h([Æ2vœ  qî·‚“ˆÊªªª6÷Íá¿Jæ/Ç›$« T;t ±óú•½ÁÐß;;°­WG²Þ l›¦<×ϽšRÙjZ„öé7[Q²#‹¨Ì¢ ôÀ¸íÚgÎÚóÉHˆ†*CúçxƒÛ.ô4c[Ç Ïìîãé•`<åóŠAþá߯9g½¯ã ;.^l׿¯ÇëÕ9çœûÓz”wGöj)@R’TÕ¢zR•çz ­VcI1Æ^%Ø`#jçmf…“wåyÁÍ6ݵ¡iØ«xÈÚÑþ>Wg3i¼®‹3ø¶ajÑÌ\ìã®Ý-k žÁó ßþ¼3Ó¶L®%h[ú4Á€MÎîIgf6™UUUë{«ŠF«LÜ,¥üþº¶ÞÃcÕÒߎmúžûR›¯|fYîiw-µ’×ë’šËcóóùñ,­·\çÉm}™I%mïéŸ"ËÙQW<ÕÐeº ‰óN2ƒ€öÌK¥¶ùƒˆY%²©f*>TŠ!! 3·˜†iHyeP3äÃ>•{(kœÓáÕË{Þ¥Q3Ó ¦c¬%T(I’¶,[Qå*’°J«EH¹–'z×+FÆX~¡¶Üm³Þál2× ß¡ä¢k`€¼R•;çpss[ä§ÉŽlLÞ¿'¿:Òp„8êÁ Wv…¡h²¶ôqZÄeË”¦``7|ù¬4z”™3‡ªªªfÙp¬ƒÓI ¹?~Vỿò‹Û+²÷áÃÑùíÏ«ÿ­ß΋—ùyõ¯uóy¶{/Î¥n½Nw±ïO}ëõpÎø^}‚§ú¡sÏå„’Ó¸òÄC®é+NʦÖÐc’Ù"9UQÜÇ+,ži"èI©ÜEͼÙYª4ÝÙÕ½#©õ|/=šÈpÚsMR¹7¬Mº ï°¯‹xð0螤F%Ð2=ž „N³ÅY [@A;@µ~§*qÞ«šö‡-ääYȧÙT¨Ft(ƹPL6Apd0в.ÏAlZ•Ì ®a\âLs>˜9ê`+‘7ÌÙ/²Ji¶ôµg@ƒÆ²eISr'`Mn=<œ™IgOUUU¥I1eÿ}ÍÛ]œeß?Cÿn‚)‡GƒÕsú#óéÞ‘Û¥E~®Þ÷E]Þ:Y·WvUïÝ,A¿kBq>Unžéš¦8À\7Ñ ÙCª`h®>·—›ÙdB.]U¦„ ss3 E²3{ ú]}“s”ÅÂü¼ìŸ«ÉãÓ8c׋“—­Û/Ðr·OM”ÝÐFÄ¡éä@±@è%ž-ÒìÜ é±Ê‰âp² Ñ^Ú&^¶Li ‚@¹ñl™ê\@¹ñÀÎLºäVUUÕ˜®p­fÕ¼œ†¥ñEþô÷w}zâØ±8¥}ºÿË­¥úÞ\ñem.¥„£ýËâc…LJۺ÷m´FrËbÉ\è×Ú7R8‚1bT4Ô]™ ž ’*†VÓ1ª ²é†™}éŸM˜qÑEµ€9PÕ½º—n®ñ=¿ÌÛ0kL„—8—îZSƒImI¢J}Ó¤DT‰Š'…n[B²1Þߦܩ¿ç£_äˆgë»m>g×+yƒâ‡½¹(>€4o¸ƒ-FÄÕNâÐŒ8¤ãX;,¥÷hž¶,m NÀÓ–µõ2)ˆŠw?€3èL:‰&WUÕPçA'Ä0$ç¨YõãöÕý#wüÇöq¯î¬w~VáDrÊG7Ï–®õYIæ§Á@m}U£ÝG-/O\Ú[?ꌡž#©:;S¶ ÕRsI 鮬8Yˆ³@ΆœXRÕ¦ªUàt¯]C~«bZ#O¾òëÖÖº±–˜t8#̇˜!‚0 ³í˜1 @1ô~!•<‡’¨%í +“……ÎŒœ«‡ØÅ=FüŸc7vmÞŽ®âFÏ&ÖP p&êfJ$l ÁõÌ`ÛÍf»…zH«;ß|ˆ® ¾˜öpèt~¶,}ŠUb“€&gË{ÖæÐøV‹DÒ°NfR3{“«ªª¦Y)šœ“‰ý§ä¤ß¹¶øÅˆwë#·7Oø8úàÕ/ÇS-R6ée1°‰Þ ziºÚê!δ)z,¢!÷39=LÀ+I uàŠf-E5ñ™É©+§·Gšµœ]S3j€¬©£Ã6&í¡¿…¸915#šÆŸŽó*hÆlrQ(?ï,í¥Ö²#²&Xf2Iªªªž(…Œ$›KUy¦ªž²X]ÐÆ™²g¥©©y4RxG¯;›jmǘsëÊŽW¥{û¾#b@&¡IŒ–k\ ! CCµPWrßàqQØ€Fõ;c"¸ç~¶liì@ "И¶ì­Å¨ÐxnŽ ÷¤s÷ªªª®Ô˜M¢§»Þ€VAJÜÀªS;Kýb)ùõ¾¶‡¼XqÙÃ'O œ¾7}VçZ²­÷wÒÈíùáîVoµ~§]­…lŠôÀ|š'#lò¨Ë܃ÈF=…ža˜«T9H•§°NÊ PvN¡ôúæ™ò¼HÃD  u'[.­]m3Ô/TE¶:ÍÕ)$¥Õû¦ÛÈd)–c,9  JIÚ_Q‘X–ÍbKH®F0þ°}Çîîs4%ùÈBÖ Äâoœ#È£áö ؆N š`"ô'Î0 ¸ÌϵêšDOggSÀjÂsoSæçLèUúþÿ ÿÿ ÿÿÿÿÿÿÿÿÿ ÿþÿÿÿÿûûÿÿÿÿÿÿ ÿÿÿþÿÿöÿÿÿ ÿ ýÿÿ ÿ ÿÿþÿ^¶¬eŽDzˆ=B©1m™êRdAÒ ÏŽ2£lÈ•«ªêÐë"ŽÐ©ñå_ŽÆå‹i¥Çæ¼rx¿µy8+(}QêŸfžIÏ»¿¸¬ÖCÜF,QfKŒHª&Xçó7f&΂þªaXj’̱R‡†5j2ÉŒIæPÕLõUIWϪÎjx™Æ3ßX«pR"¢€Ê"/ïœiº`Z©s ·b_­Iç»ö¯WÛ¿–æëoµÓïo~5“N¼1ê=›Xúøj§ûŠÈíþö¯Hsrœ¸ötxÙSDÎgƒ®ƒ´Õ$®„’ÿ!ž8:V—Și¯Ð$úS—@Ì‚ž’~¶Lm A .,aÜx¶LuJ® Ðxg»A'MgUUUt­Ù{±w9¿´2ç«ß.S÷/Áàò3V?ÏoO¿¬h©«MFÅâ,l«½ûæ¸Ã\ׯcŸKåÃ<h1@¬^\xTÓ©x²Ãì¨8^†á vê½´@­æÛ+ Lª»nHö²ã…a# úŠ«àBvjq AŒ}`"¸d G€l°§Rm¨úBˆTH•Þ*O}=Ÿf¶vïb¬µdÔ™,‰¶ôq)(4`´al™â˜?E6ÞØ5’=UUU­5­hÝÚY;Ôûø„«õíòoø:ÓÓm.ø½¶4ʃZúþ!©dÛ¿ÆúñŒñxYÝÍ(ôÏêÞiÁ8‹îL€IÞCìŸ[Ÿ¯p†Çr<~ÔfÓ©í|qO2ÉBOk²jºjº»fàï®ÿ~¤Õ$KÎ"~“Œ³Ôó´Ó¯·ª©Ÿ‡åÞjÀ)Rò”‘€@$,9”‘ä X‹±„4Ââ¹R{,‰[ö¨Ù²?4:­3á/ˆ. éµ£%õ2 ­­ëÕ~ Šnˆ# €„†ÙhÚ6œƒ*™¼5êÈß0Ôþµôq¦Dî 䢡k)Ê\ÀAãmÀ{²'ƒì\UU56xšÕ¦jSËî¤Áæ0rçwWλÇ~û»ëj›ïZâñíps^6·Ë¦h¬¶ÝÚ¸õúè‰1-Ø”ù¦kïì7‹,Bçûô`gûnÌçó:«.æ=1ÚLÔúÛ9“ ÅS.²™„ÁÃ%òñöúuìÙnO{÷»›Éì2”Û¼ÃR¥3¹çBÍ)磙cæùÌÁ<#cßçÙ…ÿeµAùºè§<§.«RJ@«0à‘V2žêín_<°ë€ë¯·¤\ k4ƒJÌÝ 0h?((óeÜY Ú ¶0ä|uQªä^ž¶¬Ó”1èAãÚ²ô1ƒ`@‚ÆyÁs`gÉ(³d¨ªª:ç|´üzî»wºV_÷Ó ‡¬rˆ‡„s?S»òï7*zxl~BËûSŸÓ³=Û³jý|–Ó(­™U‹U^l9+ P:‚iz ¡kIW­®×Ó]Æ0çÅS³1½t¥3“n 5 $éÐÐÍ@;þÀú0Ðt¿óÖÞ:÷xÈÌë®H ˆÔXHI;.R¹`|Û±Œ,m¥J¥žTKˆlBÛ^ H± "Ëng>Ö·ç9qNW]<¸~N¢ÛcÓ"‚Á‘Q iM–îBèB6釗׸ÃÞ 9#ëÙô ¸vÞ¶ûXsfÃÖ–­õ2l€÷&°333ÉÎUUk ‘Ö0}h»jèU”·~÷ן=M&·ã•:õ¿kÊ_í—Tã¨ÃÒv}-)—~ÿ©Á"CMìL­2F»ë¦àÍfÔ°û.Ó]¥êÊ(}¥sÞ¤Q±ö›w/f#ªgÑêŒfÎÔnšbîtƒQÖÛÞÅ0€Èbjê‘Âê?¿Ö?½=<ü÷s;³›ˆ«1¯'Y˜ŒkÚÌBW®y¾{Ç:°ÇùþÈbfa8ÕY $¥èŒŒ˜±§b¤ &5‹r’$Z…JSéM%m¤ÔsHZ"^®ªDBÆÒçÇ6fò/ÖÍÀ‘ƒå!xåèäÐ" Ùáó™}Œ)‡1!» €DŒïWaµˆbd[½”·3¦"¾¶lµ7ƒ m@†µeêc™‡P4ÞÑG‘12iF/ƒ«ª*ÖÑuP3©[®ŒWÓ;kýýB‹Ñ)‘£•åÖc=÷7ûâgí_¯­×]£w¬>§?žç¬±˜ÙYÏZœÆ9Ë=ìIV«Ì9=™LÔÄ% Zj kæô0C§ˆ_€„yvVÑPÐ5J¡ÇՔÚXm4§œ [æS¹UcŸ¹M?ûžÛâòs×8«NSíîNà·myµ)u©THž—)EøFT$¨ÈsB‚*턇ÐÏñK¯°ÅGO3ÃP¬oÙ<`,_Ü ºcPRÈRsVÞÐrk 4[ÌNŒÇwÐÆºA5›Sý@U˜(þ¶S+TÑ0q~[Ö:;¢Æg Ðcd&•1TUU5W- fΧã÷¨ÕÇ#Yh¸ÈUsZ_¸ÏµØÿß.Ï?¶½c®ñðû›rñ¶tÏÍ­\‡hPE_tú¥Ü8¨†yj´b˜Uƒ¡hõLlO]“9SéñdF8[†MwlMÁÒ¼RmcÕì¿ËÛíD= ÒÏ2˜ž÷“G§ÚËYenUJ½P©JQ "Áj-J¥i$ÈÎîÐ…1…hÔÈa÷ØÛ^¶¬¥'Sº mËÒÇà4¾óå"uư³'M÷ÚUUUmG¤zNmu ×ÓäÂ/Œüä´âSWßwÙ¼2ǬÃ)èSûéÓ³ºšzŸª}è_™‰J•—Ød7›vuÑ!ðæŒó¶¿WøÒgè§èA'>k\#þÙƒšîÄÕ=tPÒ”_Ö–]=`1thÏ¥Í 6™fàò5 Vk\Ú¡j}3å.w›ÔS‘*Eyuû!YJI© ,#ËÂx•côøÓ÷ú~ÝkÇòßlüƒkÐv¿~G‹‘=Pª¿ƒ€nÀiËÇ6 J«JØÄ܆Œ±Œƒ1iñŸ˜¬Ü®¡þÜ.݆AÓ¾¶,}J b j<[ú>gP0Dã³ OwfF¹Œ¡ªªêÈ1‹˜¸!Íã½ÉöîU™=×ñí¬Gæø¨8¿~¤¾"Õ×þ2Zá1qÁvúy{øæ×ù²Ï\\Þ/À½ ´;hu;'t‡Ý@Óô\Pƒ*b19ãÌèez®” ¸]‰Á‚Ü"Ò´²æ¡ð@º7=×f½Œè§€žLÜ#§DdjPúzóøFgµò: Ð5êžüHERy®ªP’’HJõ^ú%¤ò\«¨ŠE"C¾¿u¼Ñv\‡yéïí~ÜCYp„Žq¥kóÞÈçåcÒ« ÁE4oº™ˆlúuŠŒŸ«T*vv˜ë ¶ô©‡"`iÐp¶Œ¥¹‹ 49#ʈÎFíUUUu°—a}p;}ì ¿Û»ÿ©¬ÞœN_T½=ä ûéõ\«‹Ÿ½¿™Ë—ýê¯xY»úš†ÅåÅKóüI=w¨HÈ_©RRtO’´/k¦×Òή6îbÈ~j²--gÛOLu²ú#Ìf}5-•ÀÌˤ`MóLŸªð:]°‹¹+£¯¶ÕGNÚuÈ|Ï‘$UÐÜx‘T¶L©'û eKߦRÏ.tÒ#e檪C+”áÂØp ºô§£ƒ!9õ^yo‚ë¾±>ýy®0î_ÔÏ–?º”[úâOSOÝî÷š³]÷X–Ÿß‚áéKÇÔÔ°ßæ¬—Šbûv­>®"›ᆇªÊp2è‚܃Ç`J6MtÈü€ €‡g í«³¹w±wÕ}<Ý»vØ÷ *±æ„Ö9gŽ#;»{Ñûfõ•äœf ÁˆW¡ Ýe·Ê½’¸uoÜðÜ©¬Ò+99²¾l ƒ]tCU%sPGÛ]®†9­‹Ù&Œ¬³9æa`¸ShÁ§E†ÕŒããÜDCMÓ~¶,¥RÉÅ–†³e,S¤ ¥Ù„&ï¬d@’.sŸ%5“$B¹ªª¶SEÉ-›ØÇÑãüŸô¿ŒGn.NúÛe?ÞpÁ—›‡.‘g­ËAªãÈ´=@©OåZÆ,ö‡×Úc8±gŠÄ8 PM÷À31ÑœfÉÑ2äÌ£’4šb€ªTEBÚF_R~“e*Ù_”YÉᡌgw^¢´;î¨jjú•C›ŽÇÙdUÔîü y‡j«º•nʵÀXØÄ8”/ca, ä"f´fD[“ zÂšŽ°‹ì7üüúŽÐLÝг&Bˆý9g\®\Hœ¯75NïFy•7 †Å6_@^wôžÉX,ž¶lnŒqb`aˆÆ´e)K¡Nžô ñÞ@q »ôÌŒˆZUUU­>CƒjžøÍßùÎÑÁ/ß^ŽôÒíS,•¾ã³MÞõ×¥Ú8­äÛêÜ;Ù¯mºÚÜké^5ênÚ`gïr®ÆœÆ{Ûk?§™¦‹H†"DÓKg†Ê¾éjè*_šÊdwwß$¹Òµ’Yù3_o9‹ÕÕEßIUH^à, à,·®-4?φжˆ,ÒBRõEcô9¶´LJ*­’¨N^…Ýq+LÖt‚ÌžùOiÙÎòœÛ–T,ì^bGÔÁÜ Ôñ63’fháà, ”ì–¹c@{s›n:D ·DZ>¶ôm Ê aK—æàÒÏéÔŒ²§ªªB³ItjÁöUž~|ÄÇ:KWùÍëÕ‡?ø£«^}½[ƒ‹~ï#g”éÀãðâk‹[§Ss´ž–7IÒzhßC¿º®²½Fr†÷ áäàöúg¶_Ùh÷ºýu꺒²Í5 C’U\é¨ReuÝ¥t}”å˜z1¦ §o]pâLõ§92×£| ¿Ì$PÂx C³¹jiÅ/Âr,r ,ã¨?zýRÛÉX>^5ükátA±wré]Ÿó˜mÀ¸Ûn |Û”4Ž DÖ} im#xg‡î˜fqn³3“ Þµ”±‡b@ƒ†¯¥‹c¬2ih¼ ”v£GtöæÀªªªš¼Ú` *Úm¾ý#Ÿ®û}~Vqú¹oÒÛ]çɃœã—rÚæËe|ëjß Ñ™—æ2F9G9ïûR‹7g²[¹wRwñ´=BeeÄ©,•Óì@)FÙÞÚöhs;>Mkêa6†BM×þ¡J 3üºbA§vgy™Q ƒóÎé_-gŸÌ,ÖÆ¯&U*µLTRսǪ'U•¦ÔSB¢Ô¯Èk›Š“;®«¸ Ã-¤»ñ® £x>M3 L'ÉÝ&ApsâBv¶0j8æƒJ0‚3°Ì4*fR>¶ôiN b ‡ÜX¶Œeì™`P4hœSË8=339¡*RUávòÜ‘ö7ÂÇïÊÕ¯WH=“;ÄÆŒ<˜z~é/–×ý÷K=jÜÛ…Õv_=-j­z÷é—Jf5žÏFEØÓéÊFÏÀTÏUÓBQy (’¸Nü¦a4tÁÛ==ž`r0ñ¹9½fWæé˜xº ¡F¤Í;;§(ï¢ýnÊ”5áš ðÒ¢.zÓ„BÓ-kËΪ£dBŒ‘~çX¤I4Z>;­ª‡Dw8·YWÑMª¢è†“ªæØXEÁ¹¾Ó-ªb¬;­–4›0X­Á‡Ãœù†ù°eia ¶L¦AÆ–)ŽÁä4žÝ3£h%$TU•ˆŽàZÄÕÓþ­Ã|w忾üþ|´T_žÜl#kèí“r"×j‹Ë!IF#ùÇÓz÷×ý§uÆ‚]'÷¹Xì1¯×Ù—é¨[~8†qWª$ª/ك͚Eg¹˜cAtÕð™5ÇÇÇ[³w¦³® ¯^ß·WÃÓ“[’R¨,[Ï °ñ*É"•T½_ª~5%¶-Ð%Ê#ÃÁËFÂØº\7:9Ñ¿:x-Ê¥ÖÃnrȶٮ+H‹d³]0°ñÍ9;h&þX’цˆÇ®rcX«þµ4fÚ´ˆkƒ†°¥só¦E¸XAãÙ(3„\UU5 ¢q©!ÏòO‡ÿœ î¹z¾è·K÷VGsØÚ•òÜGSõ‡©ÔÁѾïÛ=ÚqÿÈ%{7ou¬[srYÝñöSybTvò–öibó–åc­é°@W¯ ÇÙ¢šj—úo$g4eLP(¦Ñ°$hjbª*£]E½W%_Sä‰ÇÅÛÄ©Uól£ŸY°l]V¹°¤ÞõÅÔh2Õh"¸¥{wÅsÈ~<1Ûáቋ‚‹3\–Ln\4!”1i.ÑFŠ«íVΨSš/ôºÃ3ÌTŽ˜°/¹n%F9•¾µ”¦g 4høZÊ´öTÒ š<à®…¢¦é¨]BUUmˆG †s=ïÔÂR~ÿMVƧ·Q®ÞÏçç|Úë¿vÿrÙg¼¶gw-®ÚSJïÇX¼M4i²×y·jVÈššú~Qßšy9è!®l¨™Ht7¡vÐ>|S•.ªÀ];JRÕît4:y¢EÐÌfISlPΩ-ÛÐó”xÆTá‰vQÖwÙuöà RÒÛæJ‰§Jª$ZmãÕo¥·¡™Ãƒ`‹0¹ÐÊÖ<½òüT8KpÝ-ÚDb§¨~³É&Bd0g~÷nt~èÒãȣ緛ҲìA^¶Li J aKŸzMî^‚ãhÐIÓÙ\UUµï<3MìÒµ×—ƒ+í`ÈþÒkOÀ<üÖÿçÓ?·ÿ-ž.{qËꕯ¯íý×Ò¬æë¼|y¨‘Û™÷¬kÏÔ|ÒÏ¢µýÚ]·£VOjšÁSÝ|º1Y“ÀÂêE¬õ¯Õ “AC–‰1ÃXâO'8ÍxÂì–Õ(ó‰Y­¦HEu{ßH}!C„¸³ž5U>T›*E‰÷JÞ¢’ìßµééºöÄkV'¡jºÊq?ÔVÿh›VU4É–=Àäm—Žíg ¸ÄIˆ Èà¼ã«å TŒ†5EB uˆ] ^¶LeN - h<[v_+Bl« Bó"fÇèt¡3kSUUÕáW¿Óß’h=˜‹n ³X|"qN&„­v:ôïíwù5Ÿ¾}Í­ü·Íëè[”ûð±~ yËÛÞkÓËuŒ-ÚÇ/£¼™¢U…lÎv4tU„£L­3x {ïù#æ9zkSú]­…žn8‡–0Gd]ÀrYñC&dXºËz˜hF§ìɉ¨¨T=—‡Ìë䯞ò¥¾"•µ«‚ï‘“ÈÊä8ë$»´ný³\ºöS&—v6_È`jŒÁmÉÞ‡º"9Û±?“1JŸÐ¶†¾Z[™B Étm¿Þ¾¼>¶L±\@ÒL4[–2&WqMæÖÎÌÌŽ‰PUU5¼u s½²ý$܉¿ž+Ɖ Òw–{n%¿wújÿç£[ë^·´ÃÆ’sµ\½\Í¥gÖ̯;¼Ðë{dÙ<”§;û€œC»X®`ÏÕ$Ó™dS‘¯Š¶·È¯½t­É˜=ê ¶*‹b…ÉJÐ,dN€}U5ÙÕgœ˜žiŒa^¸\Ö/Ÿ¬î¤‡bh<¯ö^yˆdÃsÖ‡ºA‚EX2`Œµ pyôÏÅOιø[µ§¬ÆKhÃrcåÀܘµ×h•Ü·9¹áè%•ò„ôè;¿ÙÇШA\ëHd#=îù›†ïÂ:¶,¾%Ò%v ¾–2Ž¡  @ãÙ™™Q¯ƒ«ªªV=lHå$ùðJùÙ£wÝõ›£›·ÍÒÙ<ÜÈ[‡mß’ÛÃóµ6Ýécý¸š£wçþÓè*¹ã83µ¨¼N÷)Ó^´¦fèf†®Ù»‡Tñ¨{€ù\I½©ZG9Ófq¥œ•4ÔDf2i`’yHÁdjZM° >Ì@Òõª†¢C½·¨~¦é<õM¦¼ÎVêGEŒ8ªòU!E3î¤)ñ$U%’EQñqI”’a˨Á3ûÎ!~ )×\0d¶9S÷;Š·w8ƒv±?s/|ÕœC¹¿ÎÙÏM¨ÞŠýæÖûà_Ÿ[vß²× °§~^¶ôm A`ô –¾ŒA ñYÀÓ‘`dF™ÑèªBªª¬WÎA‚]öÚ¥•ýœœŽT³Icüè ]ßó¾w~YÏ/¿?|óîîä_z•g9cvçãú1ÛKTQæ%2º‡þ1¦)cQÕE*¼³áƒê^Ë•¤Á|˜ìÊé~êdÒVÕ×d«éVQ•ÃÔ0Çï[+ÅŠîC%Ùw—9Ù\öE–‚¦pTYÕ¬¢“¼«XˆR_‰ª’èåiù¬Úja…‘„q¦ËBÿ˾ÕâÍX¾³©×4·§“ÞüØì“»…³j¡Änu×Zë+—™ki° 5¾p‚_l¸óËÙávIósË{^G/>¶Lq A . ñké}0H h|&yjäÂî™I÷’ªªª:8$xÓõ«—_]‚Úr¿ß<ýúe-7ÿµ;s~øüÑHy»ì”ÍÅÕ×e¾Ž:Ëì7¹,ÎýñÜWW÷°‹‡3O,ÔaöLÕs2£¢EVfYÍqíT¬ª¾%ó+hr·€0!;Î̬Q¤.<Ý¢) žÐÎ]ºr“35¸¶æžUýYÎ~y[?’‘H;‹‚”±/ƒŒR©Ò÷Ú"1­^¶¬q,€4d6ž-K“;@ãÙ™QÒY†ªªª ÷˜JsïÿR¿Ø»•vžþùî|lø*£+TŸÓ"C¼™î*m“Ñûz]q«Fu¯î}Õ¾•°PUvÛ_®æHÓE/µ°Af²/¸“61DUkƒŠÂ©6Qãcá9ïE»“<=1vQÍ&ª!óàn¢/îÑN®å_P‡M”é³L'í¾3¹ÀÂ¯Ò ÙÆFQ…$BU¿í®«¢ÍsTªJ[IÕ_IòèÿL¿;©GË8œarò÷êXkÖñF WÙ‚‡ÏÝE2uc2k'NYË`O6ð¤Æò†¾£*iõcp^¶,¥%Wf@ƲeISa•ŒÒ« …ir Ù½‘I'PRUmãN“%«7FN>NÎIòØŽàÑðž“—ÿ:uë?¿õùü۵ȑV]‹‹Ëx<®ßÛqéG3íËGöǬº¬ëêrŽ# cì=öb>?UÜ’¼RÐòA±"2É*3ƒ—!ê…]Q •ITKRÓ"§£ûÅer Æ¤ÐM&(#zYaàAÆ´Š¦ìá¹P|¤”"ý”>Ùýˆ+„K*M–•üìó#M…ž6PÃ|#qYŽ}ÅÑmè§á²ÐÜ+ÐÇwˆÝ‹C.&¸ Gר²sSÛü£ÀeÌô¾µÔrJÑ4n-…ž’9@ã€Q£žEUUUwgÐêh2öÍ-K—ÎÍ>ÚUŇM¤BÚþêJw%¬ûÀâñKyä± S_­ëõ°Î¢FbD˜‹ ‰¡…jœ=EfÛtìLÊZp’§š½ÀLW˜àœÙ©êæ¯ïjŸd´,s:)B“( E¿t™Iïi?e2fùe'm,ÙS„¤ ’$ncŒ(@8Š…‰%!°-!KŠúH¨b4í÷ë=|ÿ\^¾ÝÕa®«ßÇ Pœ®S€¢ŽnÛ ®ïg2.>ä¼7Ø. ¹ÌdÍtÔ\Vww ²žþµt~ iÄ3[Ké§  HÐ8¯ÒÎLjé%TUU5) ßÅ»øSù>­®ŠÏFV«HZ®X¶Â¯ƒ¯¨xk¾÷§(óþÖ@òŒc1åsöðTÙÖ_û§?kesW÷ã5Êe:TP]åMs•›œA¿yNÑSLš•º¦²Û‚ì\dj à•½Ñ5U/3ýzÊ>–Câ<ÔügÀì‹y ÆÔfqª>ê½ÆÞñJâ¼'®±E6€BQ¨þc/c@8Ž øÊä°ÀW˜š[9zÒ뛎º»iÃìÃn®ÓuÔ²â8  ­lá -Ôe9ª‘íp_V È~“¡nA´¡3¶L©)¨MÆ–>M=saMžMžÐ]­ÀÎLºŒ³ªªªUc«Z,½î—ÛâãûGç‡}Ç‘éÝÃS{ÆëÃô›A­ç÷µ­êï¹íñÒ¼Ÿý´Ú¾¹/#:Ìöâ©Í²EH3ÝÓÓèŒYiŸ!Q#j 3Ƀf»œ‚ža×&ë)Gfoê÷?õƒ¤=FŽ'I¨Ìi¨¹ÝMOÃY=æâqØÓ¬3÷¼2Ž«¼.Nö8ÛÞNÈP0]*…žU¾º{Y Û/–‰Öw!¸öøÚ¼:m¤@3ýØŸ#ïìE=îŒá£SWr͆¢Ò1ȆÀ6¯?øšu®‹2‹þ\,Z^¶Le ΀MÒ–-õØ@Qã#ÀóÈÂÎÌÌ>†ªªªÉ¶QkEC/ ôÊú÷ÛÊ_ù¸5ó µæå{¿š8›þ¦•»zo=ms¸`¿¿°ºÇçKs¶õ|Øèp"‚ZÖÝUðVYÕCäH`©¬´60Ù[äµóŠ–YàaACE7fè¹²A¡Ê,JÔà&Ô3)ÇP='Ïiè^uRLNµ‹ìóöY^²ÀÖØkàì)Éת(R*¨JðøžBJªÊ¢*ª$¥¾D Né=&+l÷ÓI®ú#ÍjÚ¡šY¡5«±X¹æ&S’NÝŽÃ0ÌzôÃvƒ*œ“sê¾ ×IÕ õ%àÑ~¶,©Ç(1¡˜iX[Ö:%LCw023é’]UUU‡*­×‘P[•5ß]FK‘^ù¯݃«¬¾´œ?éÿöÏÞ÷NïçùV?ö¬ÑœEo~V½'íkLGrÆóFMœÌ=Ñôôx`DõÂqÝTB« ›vÕ´ƒN‹ŽíiôQ‘€we&ꦀŒ*“$ÛZ×a/{ÖÖ—-Ý¥æ¡=‘œ2$Ow¥³.uÔ9ÇŽ±ñ_Â26,ÀšÒ´Jo!Ê2FØZdó]‰1HÝŽXC©í^ÜNšZ§¸²z«ÒuL€nÀI×höÈD!­~Ë1ðÍÆL_Ë‹Ÿ“vÇ À½šRZSö¤^¶ô¾G‹¤ilÆ–1AÄÒÆ³“Ž’ÎÁbUUÕ\ô”’aréqW§/µÛ¥-Kôç§a8î‘£UTŸê¹Uá0ítäÌ´Ãqëûf½Zý—¼8ÇüöqŒeêjOÂ=P q,¼ªKÝ7љ̗õڔȄ%E—#àê;Z®˜^ãÙyÕe%»tÒͲ 0H³°îñ©ÃlWWÝCÉ“Îå2"'{Àù ª¦YÖQü¬$E5H-+yw˜A%ªK®ÄÇú¡ÚÕÝêª"n÷5„æú27 tª(¶É4#L¿éFᢳ҉˜0 ¼*ë‰O‹uqMèÎ qüHÆ…ÐÞµtf N ¬ ±k)ãJ@XÑxNffI­ªªªÕL¥Õ©9~ºÓ¿µ¿_¾>¯¥þº÷ñ×MžÇ£©‹·«ß=H]yÚÉs…㣡ÛÕKZJÓ¢®%­†÷Š¢‚Jñ‚ï jNB|ö:žÑ ñòg£8J›°C ™qG‚ElS0y¸ÓÐ%ªUJö‰Ò1"å‹›C0S‡nž¶ìi.p2`Á¢ñlYÛ‚@]Aã-àhw:вA†ŠUU³S1µ’<û.ýæÿTwöÃzx]½'»ÒŸ‹ÇÿÊÜ#™¹‹é6PCV¡š»òžÔ®† uÝoÚó!ã¢T1Ia±D.”™ œö—kD¡!Ýýx¶^I˜¯oÃ<ý¬cÏ!û¤rñaûÏíuȶ÷úCŒŠÄjJIJtÐýŠJ¥ ž$–©]]1Œ™}ã’¸ÏP(­^»ÐÜÞð€ UØ{ðŒZ‡uã²aíÂ!¢… ~Û P”ÛfE}ì}Çv®¶Ä~¶¬eJR¢`iËR¦Â4¶WÐø À¾ #3é¨ÜÕPUU‡œPk¨²,·Ë¼Å–½k]ÿ+ ƒ«UCCtâÐ>þ{ë_¾¿üé±2÷óÜÎ¥­ÞçåV²ò䔺šô²N¤ã ¦S"J L­cg …ŠX9Œ7$ó´õâ~ëdÏe¤êš¦¯Tú÷þòâ±_Š“©€8+Ény5yª ±šp¹þ̘æ™Y÷±wÌ^0Ç øEh°$„ª`!0~±Dü[ó×nØUdÛó¯ d½èŒg‘@ ˜Û­­†¢ ^SÙŽµkÄ”Ü%Þt ]Ès› Ùµžà¤È¬Ý^¶¬uL2жŒ~ h=Ã4ž‘¤2:YTUU­¸Êª¢TËVîiéW޾“àb×Á!é¯Ù¿óÇÝóXÿ\¬¿ùys~{nçÅå2£ÿqí>ÇÓÏM\’Vö©W €çaìÞczµK+Z·}Žlœ“¹œx£…ÌdšLZ£G;n´ZiD XoÔ ¹fõÄÙ“1(5¸üöº¯Æâ<ž¥ÛôÀÐ=›÷Ë WÕf l[F2by' š´c!·7« \ÏBg|Ô\¼5™s²M§.¥…0oNð)˜lš7Ä!8»‘3IPa; õˆ(tsÀ´v‘¶LzŠT"a!4aK— ¬ ñìž™t·«ªªšh®j4ÖLí±ÚÑÅŠ6Qµ[¥U¸þÈMN;¥ v×´ùÓóWª7ç± ûé¹mÖ½‘ýZý/»´U,®DI£. 2W6OSƒ'©%¶®kijÇ d¹³ÖÕ™êÉ|]¦îM-5È9Ë™J[Å!ò}›—[ ºf&†Á5—Gû–1™{}iǻړÓ@ ?•sÏ¥Äÿõ©ªR*…— Ý–à˜nN ÛTmò^΢“׈Kºói艡o%1m¬éôC®vtïâì¶²¢tÂ1”¦4óÐ8‹1PhúöµŒµ­Á@|.[ú>]¹2(„„Ðø‰º·E,Þ~zñ‡µ/;h¢Q²³t:*=䪪ª®\å“ú5Ÿ³ÆñÿºÞ^/Ÿ\µŸün7¶ñ»ÚY0¼z–Ïs)ÞŽ±Üç½–ã¾/‹9y¢²s3ñjgF|ˆVVH’î¤ê®iPÍ}ìÌ:ã}†=cÌ'{ÌLœuå4OÕË©Z˜®¸h˜\FEúdÂÓÍKÇ Çr½bY{¾õÇÓç©mÄÓ÷6µˆŒöm…ŽBà’"¿ÚÙÖ[ü æúîzrJ-é×u «ž ‘ìêÊ:¸íÙâ²PÅŠ±«[w¯Ã„àŠ“C•<’Ùø¾ÈþZ¦©9õ„ì¶iOggSÀ'ÂsoS9߆.C/.1.,/6?;:ÿ ÿÿùÿ÷óÿþôîÿÿòí÷óþÿüïþôøÿÿþíùûõóûüøþ÷ÿôúýþû÷ñ÷ŒÌðÎÌCfÍcàÀ±:µ–;\+Š'tòÕWÕöyž+-Ô5©OHîçµL—@”ʘ®%3´g©cúÇ7­¾Ìq¬®lަptWDzÑ&D@Õœqmsvží³ó!ŒÊƒ3ì©Ì=ä\©k€KiÏlú ÃÓ‰MyB}æ4éªõKªmÅbíœÃì&\æ ŒÌ¸Í›‡Ì²]‰8Þþá³ Wjo£ÿ!Fµ…˰P1Rµô–T”×#¨T³Á”ÌØé8d68!tüÖq½À±*1„üiKÜÆCÉ<$¸ãì¦ÕŒÌ’G÷úN F”Ê `¤%3~Kì †Õÿ3}n,;BëÏ¢ûþpŸV/PK._ìz‚;6i{&¤Î°ïzuÆ~×Û)SµtSÆz29gÑZM]ÁCŸþº´cøó¬”ж}éBWë>b¯ÒÍ£uíìλVÇ÷î¼ul–¶Ëš«MÌðA*ꦙíXŽ««·· s—žDÖu£[Á©<ñâ×ׯ½·mT*V}X-¿ûWÛUåŒèѽY΢mÓb²â˜¦IÓìÙîÎcoïGÁ9™×/M'+_NêúËM“£~Ä“195/<áO¿ÏøÏ€ÝÌj–)ÆüíJ ݳ“çõãµ5Ô·~“zùDÛ¾tëIò¥É{BSeöüøé^ºWEùI"{Z­®zÂG½Jöª|îÈíV‹¥?¡ä‘/²¨ÖT‹²ÈÈÈp²~…Œ FoôB'33žªª*$¾åWV‹nÁ6eª¹qDlèýgÏtGíjw8Õ´«Ý¦Ôº7ÝTl û䊷u»v° fd±|1µ‡è…qXzÌõb¬V3÷Ó(Ž*ªä¶`z²¨| õ°¯2ÇžãnÞÄ¢f´¼³„VãQ™Ž7Ϻ¸›A[½Â0¡ #ÆBŠ%µCJ$ÀcËXñÔÍCi XÂ^[~ÂãÁ?Ch ,5hÍwƒÙ&pÜÕ~ÜÒ‚qà nÈì ø%mö­Féta&ž7E™E"·ë±\w„Ï Æ$oÊe/úk*–ÇK“ ³¸°Mm À&½wºãÒ9RUr¿³‰ö.VQ€LñZïÖ,…Ê’S»åFÔ“Øãªìdg@1OæU×a’†Õ:)U˳÷®ÑÓEQ¬Yƒ¶Ç‹g×ú• Q…Q 8ö!'ûŠ3Zn¯t1]pÞRÍ÷iò®yƒ¦² Ä|{¼ÜÖTÎTB‡ê·µc{è—%[±dË©úôoõ«‚(©”YÚB`ÁªÖ5Èðô#'¥wWºè: ŠEV¦£Ž•)„f’ÓƒÚÝj1YŒ®ìlØDõ NبÞFEƒõî=¬iµ,O©Tg&oTn`~Änúk @ˆ¬ø@dV2˜ ½ìd C"TUU¥b&}ê# 2D`†ZÎn Ò*OM.@œ.€cÝKí³Írm×¹Ñ1k@è̱EQÀg}»äɈ. ÖÐêW&ç!{ý|I5¯í¯±.{`ÂÌz~ô-m}xdKFŽ„AÌ÷ÿ“.{•À– l“ ¹Ñ˜†ÔBÀu]Îñ$U¹Õ’*YíUŒmòæ¼G¯·RÀåWœYéãÖPfÂ)€ †žW•Ù*Y4w•ª[î°oê¤d®Šf©b7—ª{ì4WI¨Yp3}`d#E^C©*¢(ËÀÛtNðPòÀ°P´€&@Ú­¯vÍ”B+#¤“ à´Ä¤'ª@‰© ²j_"ØTHÙΘ!¡š˜OfÙ±\½þvc  Ñn¸˜]†ÉàñÆIÄÒ7ez®ÛĤ?z¯÷÷ØrÀ°^Ëù:ë› @vûûXáã`šy¤‰ÝùïU¥*¡$Ïe×Lé#lù¯/Ò÷ ÂAÃD«Ì¯¡­æƒwèÊÃA?ȳ[Ò@èv„è±A`6JÒ‰HLÕ¾W•aýG kÉ®åj[VWc²WÅáòÕÝõpÍð¹h²àA+×’”»3z(1U¬ªJ™PÄŒr”¼@QEü$}a$¸Ô‚øf»ÐÀìãbO\Y¡Ø)†€P2Ù@¨¥fãéçJú@'%EðÝs 2¹Ügëç9g€ƒm<Œç6Š2ó8Y}<åa20ÊÛ¨¦yvçuŽ ód×éçç|­:Së-€uÎ\Ò$ÙñýàF¶AØûs,É2(°!øl±H~Ü8ú­¯ÿU Ä~„á§‘; Œ34Sîb™ñ!T¡& 2žWÅÙñç'¬zËò ½žjLöª43ÿ¹ÝŠõµÃ¢ÆdshmÚ}É2ÔPEª*QDPÀ-^‰CÛ¬­lúgÜ%}rà¯|P Rµ…\V1\¥¸ê ÀNf@H'†1ûE[{†Þf`L´Ü ÚÊ;rƒLвA8®((@Árh•J$س2LWYsÄè;ß~0ǘ’]£¿Üý½~¥CÕyiÝUªJµüð‹ùO»eìoüqïà#cƒC°ndžþÆÈs´0Ú¥/ü}zæ="4°ö5k’ù+ä5˜?_"™€ùh›xp8žG…áüÑåz¬Ë3ìªÚ$ ÃùÍn`]wØMVëü\8«]ѧBª’Õ®[ Hæ»gJ‘""Ñ‘àŒÏ†ÞÙ ­:B·å1Æj½DÎî—«Çðž[îì0<3‡„È*6]Ó€’Á8ZPžGáôŽÝ-XûvÅu%²W%íó¿ëdËk†ºJ Èn¦#—Â2\1RUeé^IR¦T4@z$íZ¿Ì Ú éy‡©–Ú˜¡‚)Õ\Y‰à°~_ïªì™syùrÚÙqJzQÚ@&sI°óÀ°Ö[Ï4]¤é¨¯ÆÓTkÉßÌRý×Ém“rhÕÔzŒÁÂ×Pœ±™‹ùÕ÷·½÷0åär> mñ0n‘Ò-ƒ$ϹcôXÆÈ‡Ò3ö=aüo`?Š@ßlgÚån_ºtL £Ë_n&¶8ì÷fp é_àx„šÈ žGeÙ&5NXËâqÝѵÐjDö¨8;I®;,é²^3|â¦+æ0CŽN3†Ö©ªªÊ¬ j•$¨Yk©ò!»J HŽí:¿ãìHÑHU5j#W9N–€!ó‡"Qˆ°³Å^›¨t {ZžG¥át÷iúƲžð'¹¦$ ÂåÇô)³ŽP SWã €‡Y€ö²ûhä «ªªTÊ (4¬Øëª $4‡Ôâ˜Un×B2…–ìõ²pO¡‚ÐX+ˆ(è6;‡ €\Yú¾íלô¬KSꌌ¾9ŸÛ¿Õ€=³€i”—ΘS\åýb2 Zk6@%ªX¦(HÌ1Çzq{ÛïàÀaïÅeu´V€t‡‘bÀ<胭ŖA’ôVý™Cpf¯¢m$…)µ0{ìºS”¤›{8´´ãZÙ²i #Ã\ó5LZ´êqÓù‚‚…Œ~7•™þñæÙÕ=C=šÞMYvþú4}Êë5cMMɶ•=(û`d’œäªXUE–Eà<úr=ÑgÈJªMÐ^Õ‹½Ì!)}³L–µŠVD„195@É„‰„€VµQ‡þób0KOPÀµÄÌÁY÷Ì6!—þ„Ú«UQ¸n¶ËÞWNߨö.¿:@ܓ쮮Tg™,rD.µFݬÓP$ªUmÖU.EÉò¹ÿB±ynYõ´{ÓTET¥’òTûÞÍOC!s8ÇkŒ†×(ûR Øh€mÛ¯b@. à²àÚ´˜¬4ŒÛdþ”MÔ§A0up8¾…¬O› ªiX¢IÚ“Øp=Û1d˺j21â\µZ%IAë”4]ÂPUUÕ\÷ñÁ&£êXÛ´ŠŠ+ÔB7J@¿¹V+{«&Œ„¤«¡ÕxX , ÒÒ€\æFÏ€ ÌÅ|#€€5†îåx¢ dî”}[tQÀ¬ €x(\ dÂzÙó…1ßRW¤q8£ÉŽÔŽ×¹EÊÙãwÀq¬÷º~Û ñØ6 çÚl;´Em¡{\wíG§:Œì?ªÑåe~¤Ý ”U´‹„.7pbCU¯j„½EFýûPÌ“PEa‡iPQiª»(¢¾W¥áúe7+úë*šäQaöüê½ [KøÅ©•­RϽue$àA  \Y†5TUUµî7CÒn «ˆ(™Ã}GSàQ„h©³ËB­N鸜y à¥C•‚ÕZ ©{]m p>e ÿº²{œhWH€ZKÙ¸†ÑÒ„LÎ%€‡=Ÿ{a€d¶Wç–·· ç¨*#Èì^? c øwïÊBˆ*16A H"}! Æ"Õ÷ Õ)0WÇ?èô8$€€ï2³#ãqˆûmgº‹;Z¥oä2&ƒ`%œ‡P¾GÕUBon)«e¹Ã/¢¦d¯Šó«„¾Üba™¡Ñd¢¢ní…I’ÉÉÞÙ%¬ªªŠìÝìàF©h1MÉÄÄC$\.ÇD FÔ0½„ÕV ²ÉC8’b`„s™©}ð8ú¾yU2s²³ßìýí>TvŸ^”ïwá½Ç^,*rð^µ€ 0©» v8©ªɬËçíבõ+P©E ciõîÚDÞý‹ NƒÉ·›^Ž§Þ“¢ä=Q‰ÏUE‰ªíÐ>Ø 7C¿ <º0ØÙwíõµÍ @h|!jhà¬ÜgÎŽÝDMËøž7eaÿÑÝRÐßÍ'ÔˆäQq0ÿÌrKAÂç¢IÐjϪ*2@ò°K£ï¤i«ªªÖÄósóVQÀPMƒÍ*** !’auB­0›~{é,FVk÷ÅDœ%5'`ÐŒ k@L&  ®]i=›Üœ‡¥L³½{±`Y€1!a,èR £uh .À¨-AÀû,NqwYT{Yžžærç¢ënµW I}©”¨”R•úrƒ,#„hÖèÁC¯º„„†8§tÇœI!DØía1Cû.£Ü†Ý‡†Î*°d;C@PiÚAq`}žW¥™öá„Ýò ;šäUan¾ó8X;ì5"˜Ãdʱ3‡f(¤ª*•ÍÁÚä”ÍSÚžÝk©²ç¤0d´/04¡*U‚PXiH ÔX@&P  `ÏÑçy:Žõ¨:sÒ ´Ô`¿.ƒcdý>åŒôÏÃ$“ gwM’K¡xÚµN3*0ÌdnȸBî0IM9£o¬ßòøßK³9Ù5aN—}yÜ.(²Í±ÅŠ!ROõ‚°Œ,D¶Œ%yAl!Kþ&Óº´*[hdš´h‘½Š(m\jã._YÒ§…ÉP*ÎQì=+<嬥£Ù4 ¾W¥áôÝu…¥¿Ã_¢Tc²W…Ùåç·ëRïqíPGÔ€LÌâ¸uaÉÃ.€6½÷‘ƒàªª*ä^gÞÞ5‚‘îJF ¸¶H)³Þh4Õj•a Õ {ÛöêYïl¼:4„: ½¥¦bȆæöYl˜õ~÷j¼ÖÌš^Ç0ÆÍv›}µÞ6Oë]LÆk. ©¨É8·”J sϽ¨ó~ùtßoÛ.èO«—,TæH¶ ¡›GD$¿O¬,!„ÐíK¶—,cK¶€ðY8\ã÷›Á çQšŽZ€MŽš °ÁWö­¦ñ‡Â{óàìP%[Ts¸£@*;:®å€#3pʺ ¾W™þa†uy†ÝŽšìUYfü‹eºÕkGï;˜h²`;ŒÆhÐC^§ªªªÈjŒk3¢?¶JBàÑw«|á[^ )\¨ ¢SŠ_e¥aÀ¦Œ×«PsrU™F°ç}&½sÛ×öJp–˜³²úÚŽapú{q‹Õó˜0íÙ~à÷~b8Ïá2@Üq°TÕ$Æ1ê<,÷ÿ^çEe&ê`$íËYw‘mÀGTÙùêR$õ\‘âdòÛ6çï’1’•¯˜iÇxn=ZÁ ñÀˆÛk t´­ò'ÎD‰ €*Tl¨ªnjá .Œ¡I… ¾Ga“îÖÁ£¿Ã'טôUi¸HôÝ­¯Ç ¿HÜdÀ…Ò7YMUUU²¨@AŒäx5ðˆViHµÍ˜  ¦½DÀ]ÌOƒÔ ƒ4 ¡C‰M|»Új´3¬Ql ª³•B¨±è€ì0õ¦è;O<ÙÀXî=@ÚÇØp3q5N²ŸÓ@6³‹¨aõ{E• *Xìýt®½ãªÒ›»ôìÉ(ò0TUU)³ P$ž8©êÎ $N®/*u)ª*a©%ó@µ¸ÃieæZU5 ¸4H\.à¥ßöe¦X6BJâ6Djªf:•@{/®úbù>¡`" CMu  Ö²d…=‚>¯q›¢*sš?Îf’T®x)U`n>ÎGß¾ÔÖå¬f}ˆˆëW‹–±y÷R´A‚?–%zŠÿ‰d#:„ ZÇy”4Ø¡-õ$ÒÚÙ² †ˆ*i×fÖÐih‘{KÛ䀃À¾W5a‘P6—Óe]ßáˆjŠ{U.v#-®Ç µˆš’7²ô¤,5XUU•4 Dçø¸Õ$@§–V]Ô)@é±à³cvy1S 2.5‚)ê‡Ä‡¶†žŒR’Ö6f¦ªª¢ØÖÀ–cŒýþvðÒþíqO¦"¡b&ZԔȅ…RPxÝÊu¹B¡¨GúqÀffs=ïR]©d$ÞkuJ¼rIô°ð..|YÆTD“|ɯ‡|鈟Áº1,Ìg–…„]$ àíÌ=0‚èz\|ö(ÍV·!Ì~ðì§Ëyf“{pF2`¾W™Q¢îaÁÕ½#|R«1öUAf‘Ä:,¯áBÓ <€]2ê F—íU« Q($Q«Ê@Ñ¢@Æt}φB¢ßUÙÎDi,v\~DŠŠ$R‚*˜vzXÉF«šÎ^£8L1ƒY\HÏ;F—§v…ìyå1‚µ €ôþ]ðxyÀFa: LÃf:çµkAŒ­Mõç§÷¹®jœk‡=©nÃÝìÿ“‚6ßtSB¾&X#Y2€±>¢ÍŸ•°‹¤èÀ9ÙjhŠ-¸]'À‘ 3JÃåÙsn¯Ê[ˆ•õ-pžGe™ñ#ŽéðXïPÔ”ÜMQöøð˜×2B:T‰¬˜CKïY†1ªªªT£€*MmŠ’±©(椲^ÜÔ¾ñFª¨ R QE¥äð= Ôzœƒ8 « ô 5,+`´Út6Š}R«Ï©õà d‘í˜ÎžÅÙÿž£†,3 #$C4¶/ãu¾5¶9Àt¿¬~ýÑÌÔ¾„'5î—wƒ)¤§Qbƒ1`dÀ’Ÿ 0”&rÙ2ÙðKÁw&D¸¡)~þXñ€Òmª mغa¦Š¦¢%´óª œªÃtp ¾@.q¨@—ÆG¾GÕÙ*Ñ›[­®õŽð‰kLö¨"Óÿ:ÝRzkG\$7Yð0¹€IJß1äD¨ªªR”E€@´êÖ‡T¡rjôXbBÆU¨@Í%ßY‰Ûã‰jTÂîìXf)×ÛìÚ2ge€WШvÁ`ß}¿mçœg[çñàìqîC8g`€Ô±_˜4‡ªUÆš 5¿÷¾‡×î—÷{­ó òúÑ[çYØ7HÒROx_u‡– X[ìŸmcƒ7¬ç]`(s ›iï[OíÃ'@¾É¨ ðE¶Õ²|`e¶}E “½•Æn;@PÈ>'ÕýÍõ²Ïþ„:R›ÌEYn~ût}Ê^׌0–$j:1‹º'u2¤m¹“Î` RU%ûËk$Ÿ@D<Þ8ö˜.ÉPQP K?X‚²•H%Ó!€Ë.Í’!e€Iâ;§z ÒLÇ rXÍô>÷B›é}Øç gÛ— 1#V€4yTå¥,tG‚³^…ÝëR Xž fP–†^›G–g[· ‘óÅ3žqRÚç«ÅËd@Xþ6­81Þíý뜛;®Ù̓êÈ .x ¡oCê Ÿ ŽÀS‚Ò/ûPo6d¥AÆÈ, kTþ&EÃæÇL#q­G°\cò&%†ÖG#ôÖÇ€&/p£Ù3Ū"UU£âЉé!T(LÓ®Õ‘ÕT•±T7ý¸«ªõÁ…· µŠ#ÔcªØØÐ"5€—•ex~‘13 ;ž.ÀŠ×¨ÐÓÓÞ]Y¸´ZÁЦ Pj9ë’ˆJb»-p5äoÛãó\f(èòä¼,-Õb¨«j^§ÍƒÿP½múHT‰6¾`" ü{µ'Úª¯#`Çš µǶ1Í7C Ãkà÷¤LWˆ˜•®ÞlA!]ª9;6¢DØè6P¾W¥™ö3te¥¾Ãrª)髲Lûу²ºº;|jÈ º÷Bw9¹ ‡ HUUU‡{"Z2Dn[4·ä*ñ ÙÁžGátç8è×wØõP#2G%sóÃí`Y·5&+vf(tg”AÈNUUU‘YMÔØÈNDŽ€KœƒS!n©¤%fY²ÞèÊȰh[šu-ê…¢ ¡K $A¦12²ì§’€êM¿×iÊT§ê;Á®:ËÕ×=™ÌT&CÎkÛ­œN9{áùÜçÞ¢¿ºFŒ( £ÆÙW‡ g»ÿôú»cdØbdÄûyŸ%M0bð¹6檺¤,™ÇAW‘aèOưƒk<&c½vø³pÈ €Sz§KjÈÕPUHJ«ÀÃÇ$#LRêï‹>ÏhÔ ­µZÔŽ¤¸`xªa@­!ª§ª]…ÜÐô:ˆ¹V/¢ ûà,÷jÇÀ°, dONb`Ñöv¯Ô0@‡Š’ÈJHò¯†¾ IÒCú­—⬆!‹\×[5ÃX¨ãü¾.•ëŒßšr™yæM«÷êáÂNM m¬R„…Äå ÜÔúý÷J¹-Lc–6 €¿lóÉ«sc™|Ѫl XãuÊÂ%CÈøQ`ÞWeaû‹ú²zÔwø‡:×§¤¯Š3“„~\—Võ„z%†j@VÜÌÝè…n NLUU‘Rd–È Týšk („#‡«N/å’åM•©7ª1)¥‹†ÐŽÈžÃÔ¤”o±c,«˜â~^ŸŸ™æb𓇛ëCUzo뫨(ÊY Ž/+íÊʤI<Ôº÷…Í&˜oI OªóLk!M5÷·õå‚U¾…˜ñ^Ð2‰€f™2ІüK–Á‹Û-Ÿ=ð­<þ%`,‘²gI !“í`÷+ªö,?“ÛÈØsÎpÏIÒ 4µ¥5 आF7m  3 ( žGÅVÿ‹•®Ò»úáqäº2É›{•PÜæ¡·>føE4Yð°½l½'£0TUUˆ"×ðªµQœ˜,Q<à)âS#Ét4@N%[dªR5¹Èg™[¢ÑB¦Á ª\Á‹•0êi£†Ñ**Úd‘Jïåä`€Ê x¡ä€l`ÀQ¿"Ô]HÇ·ïVPʽgõù-s›ÊÊ}­;(×Ù uÞÛ-æÇ«€y:‰RÈפ0õ§® r¡ÅFæ›âyÊìôƒI@@*Ʊ„³ lÓ€xå•5þerbH¬ÆèA @°Ãþ©·L 7.`K¾Ge™.¡˜n),ëꀑ=*ÊÌúãºÔéÖ~™;ÛJ¥,têHU‘P6¢Š1Ø u@E#>JÒÂTL¥<”ÞÀñßsõϼD$PÔ Ý@Kk’ æz}õÁnO^ÕÎ^­Ë&v)´ÃFk”N* Šp }À»Sên¨už&©Tvœ)¯QCÓŽ4Á ß­^ lç4ï‹JÑé t0"d ¢ ª¨‡×¯ÕmÀc[`£Ÿ³I¬$^= ÍM‘Æh<ìR|²ÄÔb²4$p¨ò0u%™–Ð:‡âÃýBÖ žG…™éãwè¯Ç;Ô™¦yT”Ù?ñ¸®ô^¯öhºàA?"ešî†$WU’¬ì b85¥JP RoÒädW=Uà’@ ý¢´ï*¥!ŠTDLiÆɪ$šXE R0IÅÙT£Õ¤ª†ÔžÕì—o{›‡Ñß5åª2‹fî5jõ=¼Ü­¾Ö)Ì¥äͨc·M×h~ÎyÉCBžÔãú…ì+G <[]cÕ8s•§¨ª!áü"oÓI¤·ãl¿õÈ­³½áa“ž!òc®¶\0÷5죭mÇ€0D·Ù`´ï@røLೞGŹé«Ëux,ïPµFd¯ ²ë‡ã`]w„ä&/$0-Jžd y†*"UE1 !… 0•¨ÓÚÐwUÑyõµû‰ÍU¡×IEh¨—ª<ˆ6hK#³ê’Õ‹BÃ@ÁôÊ‚Ð`\í²!uhÎ¥Ë@Ü¿õ C@1,ªfé2À4öF=”bì9•qíuRlÄâêíÇí¡ÙóØsÄäÔåŒfu8*{ç mMèBºb !ÉöH– 7¶Am„~X¢9ÒØ8p¾ ¦ƒ1¨…!1çÞ¨ü•@)Tw:MÏâ YtyU-qvFhC¶žGù~÷ã:õz†PS’WEùõÎë*úÇ; n%ug> sXd£g1;UUUÈöxKTI[FH€xÜÉ Q’Þ)d@*vAZumXq$Z­Áj<®¬&ïˆö|Á¼Ô ëÕY¹“ã;ÔHÝqyš' *f¦9“À 0Ù5€ÃW TX#³ÎyOoý vͪƒ1’÷õ÷Kü×áó‹;ÁQÊÝ åSÙ^IÕ$Ò³mÜ,<ÀvŠ!°¡[![¹Øºý&Màµ-ðïaÂe^`‡:þ½Cn·—“A܆b¾GÅ™ñÇî"–åŽxvQc’GE¹õÏc ¿f„#š¼Ðn,P¨Ñ“Q$UUUè'Cö´ CŠ DÀˆ"WMPU¡ïúzjE›"±E#É}ÙU€«:ׄ›}K(f}[U‹%g™2ì›bÎ’MïÕåö6n#‰g( h 0Y Yâ™6Àdá™×’—ù«a2ì¶zÇœ“rlF›7`)Öá`›Ëùx°†˜²Ý7mJØò%@¾ú––ŒlùBBï/±UÙ¿boª‚zPæ ¦4ƒ£ÁN 9n~c¿nvm„½ÃŽ0ÓÌ×ÁѲ9¸†3€¾GÙùÏã*–þŸº•ìQÉ졟£þ±#œ¨2™ÅúýÚH œì….£Ê§j¨ªZÕÑ'5bÅŠ¸DWܧ¢R€©ÄQ+¤„° ÍÉŠ'…•h@`XD$1„6ö~5Ö!=3 ¤^  a6ôá)ý;éBjHƒÞZ¯²©,ÄÖz‰L(.²é³pfÍÇ=Þç~´e«yµ[¾Ÿu¶l{*³Vç{QHÕ5s(:ßxóeÑ:¤$‘ß3û@ëh㬆F9ÔÀˆ»ûIÈíšûs…&=ŽýM¾× Å(_Did‚Ùa;šM`ÄËOggSÀãÂsoS \üŪ:éþÿø÷ÿúõ÷úûÿýýüüöÿûûþüùÿýýüûúýùûùûÿúÿÿÿöûýÿöõÿûžWeùvj[}ôÏPQc²WÅùõ]»£÷qíðM'raMíTA‡ÑÈdI¹ªªÝ„!w®jš +ØJÇa‚0A1¡Œ[•—¯Š¨ ¨Ä —n{©8³Øc>/”²È²Tpc…Šgé*²RD U0Ì€A§jæÊ+Ú£Bžæ£zí½ÍiVù6fØÏºkº*Ãe_õ/ÿ|ÊȰ?Ü2”©¿RªjQ[ÕÇß nMÝu ÖÊŽ˜C_»˜¶†‚fu°’yÊ+¥N=r•qdÃ,@“~æ=/ W4¬F†#¾GùéÓö ÑõÏðgjDö¨ ·|Ûq5\ºeGxS È œlŒ¤¦ÌäT!U2 FÓ ¨PdA‹KîrS½ôhÜ&0„¹ŠDWY “†e„ÝvÕ° Æ3,kÚ¸5 Œ”acë{aöϱÆ Ó0ÛËï_Ãdžõ‹Yœ…dîs € zÔ,1¡ªkÀò"*èI¿½ Â# ôD‡ÿRÉô(I¬&e—#Ïf˜‹Àd ù/0,_ÞK¥ QA²dôOcƒÛžEkÖ€\šXM›â¶èÅx(hZÖÿ¾Ý"Çô*8mø’aŸ;ÖžGe™ú=,iѯÏðÇ©1ÞQa¶¿Åžú´Z×öÀÐdzÓ&ûÈRÌÊUUQÆNÔ«Ž˜ŽN8§Š‚ ˜ÎMnôŽ¿¯­^3g}ª¾Ö¿³œ¯j5’¨`­A$ö²Ž ­Â¬çê/ú“FáÀ4t1 ¹ôèŽWêט¦õ•»]]„‚‰š5R—ðÌ`‹½»÷ÉNë^ƒïá«Al©³Zõ2¤êÚÛ F+ÂYì €PI¥ê)i“ Ž1uªEp¼{8šÝªnsØ=vq¬XÍ™¨†ÇçÇ­Ï÷~ô´èŽàPâ …]0 ‰²œ˜Æ1 l~7¥¹ñ-Â--ëº;Ô‹ÄsÈÚT¶ïº ÄuËx¨y±€›H KOF'­SUU§ú“´B5C¨Ìb$’‘Y·hcªªEvVÄÿ™¥”‘” €RÃF<"Ê×§2hÂ@`„²¢B ÊÚU@œLƒÔ¥ómÙ̳jº: Ð Í ‹M7IÐeá×Ã0Àžy†Ê<ýÝ;2×Fao@eÔá"hÓ¢"@ªÍŠäœçBžàG%ÝT™Æ6B`ÉoF°ë;ˆF0ûTfòÈ_×äá0yg6„éàwš³áàêMuA K¤vÂŽåœ5ƒ8žW¥¹ñãÓô:×z‡FMq¯ rë×ëdë5C=r Èæ°‘²ÑŒ¡\UU…(²@F‘¬šÐØÖœQšÎò…¦1m6eH48}eqjpô¥5£ôq5«ŒUÆ \b[Ëá4FLSFFî‹þrÌÙ§hÿ„/­¼ÊÚž‡l€Ty9œ±ú¼)4_)œhž™Z¨Êû¢JÊÞ#³ìÅÛCÞÏ>5¢8gõ~Ùчm¹¶J¢UÊÉ˶ÄÌgµ×¯¿®gu¿™øf¯Ø ¦à’à öhb¢=55[ðÿ2’Þ&"%Ô¹J«²‚V©¢êÀžW•Ay‹Ö²¸ºwèì«›I]•fÇ7Ó-eq­SjL&ð°-²d–aNUUUÊj€GMçfK“©Ðx½a´™½×¯_¿U“mª1G¼ª”"ÄQE@…P¥ p(!IP.EuƒZ_œºŒ~¤£0—ì¦é{jhÈ݇w1Áò°¶»  a˜änSLּřçÜ–k}sÄå<†×ê¥N6 U}Ji$Ç ƒ+Õ¬¶ñ½8R‘.! C{‚2ÂX»pkˆÁsYßf@‹Z ÊfršvÅû'N(ìk1 @’DËA:¹P ëL’t YžÆ9kÍz…sœ=Ö5¯Æ§å-ÍÞàa€¯^×g†Ç¨$ë¯W…Áö_XBÙL8>+¥RJ’ú/V”¸¡e$pfMÈJ;L&U¿Ýóãê® ëH§¬£°i„œ4¡;¸9ìf” mžGe™&¡vוÕÕßÑ}%µÆ$J3ÓOL×yx,;Ô#¤5]0-è¥ÓeÈq¨*RUÌ• Q*#f68 Äj¤]#&ƒïx«Š ¡LD4$vKÑ*16¤(ËO]0CÈà åÄB+@]Õyí9gÚ¢µPwE* ´C…cbmÈå¡¡ Q@L§ù´ìg„=Ô9ý‘7¿Ÿ“ì9 0v²z÷ê¸Ùìì[©]xñ"¿JW„HB`@|aΟŸîÎÐ žÐX 7DÀ04hëçD",X&ÈP717‘#A$Ø»(¶ žG•ù*Ñí­óZžaIk@ö¨87JŠÛ­²õšaG4™ÀÃÌD(½ÓŒ.så*ªJ™e@F¬#Eh "&ŠRl¥‹%xÍhee7’侌-o³ªÚ­ŒdL@&‰è£Æì\Ë”=aÖ7èO°Ë@™­¨Óíå\ò‘{wU-M°ÁÐÐPG5‹ÑÏ3­uhÃÙ3í½—(óŒèçÖÿÈÕhs À²<ÝW9SîÀunËð³,Ë8@¢Ÿ§¤–±‘©#ô‘EË×ReÁŠ™P„ @™cpõ¸ßúaÙŽ,À^Y·.`Üfˆ\à‰[—»¾W•™*¡è®Ó»–;ü’Ö÷ª4;þuwìzìð3&µFdÀÃ.€ŒìYºÌa¨"UUŠÀT%rVR»G@$¹˜G -'B ÷ÜPFíw¹¸¹ÖVtP*‰‹€Ý£UöTÙ¨€‰„㊠°C÷°…YU í ëFeMVB.S2@Y–YrgC •ÏÛ`ŠŽMsöuj9QƒXËÃûÕ§ý–ÒÀ—»Ø§™Ö<âbÁ2&66,dùƒÓO+KYÛÁÏX|ªüü4…º@ ß%¡$tƒTì7 .ÿù4n JF!Óp:M mûÊ£žb†¾W™þcƒu9¡Ž¤5&{U.?¹;ë5"+æ BŽ^Cø¨ ©HUÈ¢@ *`„^äh7!ô*mË%gô ~ÿ¿Çã%"EU´8uu¥¥ݪÇpî@.‰,ðÐk‹up‚M=aGµõ<¨þ{Ž9XŒþ½·Çîäè¦ÒεÉ ³jÄØyt8äÍ,QàB3^{MópXÔôúñôý¬'v¡Æëï«iä¶ •=aâŒä§B€+Tå+µZU©¢Pë*¢ü[*Û¤…Ç. =(ô€ß¢Ð†¯œ7Qf ò¢1´éP¦p!žxlb€¾Gu¹$µš[Òê±ÞÑõ²BÔ”ìUM®HòÖððzÍð5"x˜6Àô]檪ªr5¯&€qà s€Œ\'Œž„’Åb×úå14n×ï§Y-•pÅ|ŒM9q†K €6‚š(Ba°.² é&£&§éöwí=§g&Tv_DP=u—ôáÌ&Õ~Ö ÛLÓ4ëäòeµÆ öÉâÇêÏËê>A¶'˜àø\“´•g±…,;²¤ŠH%ßVzi•XÂül̹Jdªói W{ 6¥`4ô[3{ÃŽ, ÖÆ¹PÚàP‰4ª@?P’º™ cžG¥¹þÓé–F¿>›…5%uTb`úëëz\U&C=3N¦B ð`¦Ç(=ÅNVUU¿õÿˆ*dmZLgqÚ–‚˜^²B}ÄÑ µ@*ýôÎÝ£@™B•Ýs”1÷Ñ\/CA¹öÞWa3dŽ`«—;³N6 rœCS@Y„³T:Šº\:>^[ÑøÁÓúóÕÀÁÔ%G'ÜÁ ¡ìûÕðl¾BË[¹J@ Ù’’zÕ[Õ*¡*!ê¿JîOÚ&4šÞêÆ"äRè>H¯ÓÆ`ÕTfoET¸×ó“6ºû4œQ¢?ÚV¢›>Q=ÃM#žGe™ö÷ã®Ö[—g¨Ëq”ìQE¦KÔã®Ñ»®~aêLdÀÃ@™Ùé"çS%TU$rU!/ÒìšPÕ Õy®‹ÙMZ=‘Êä‰fÁw.œ¡AÁ¥) ¡‡@Ùh• €‡É(ɨB¼Uà¨Ö MÈQ›*Vu:kI*¨¦ eneP“$ÄQP¤X*~¯KËYÁžBÍiÅïâÑ?g2°­¥Ä˜yz²¾ºI`y»ejÀGƒƒf@ oUÂ?€ €hõ‚l'7æÄú^iÔ…ì/˦®‘i#_æg¬“ R…Q<¾W¥Ù.a,·êò 5ƾ*Ì,’ü6òµÃG È <èl‹Øè4£ËöPUUU 'ˆ È™E‘ÉnÍÁi7@ PB‚eÄbQU x²Ö+®k‘± h,KÙ†Ôt Êóyêö›«Ev ÃØ‹zèØî5PÇ+Ô™BZ è ̹­¡¦Yñý¹óìYFfë÷ÓÿmÀd¢æ„kÍÁþRÛyÜÚnŠ$¤ªêK aÐmaÛý û@lT(ÃpÓ ð'žs(;q¨¿]ÈÀÎqGð[ÔÕtk/6dö$ãÐðÙ´µ(|žGe™ú¥…¥TWÿlH­)Ù£âL—(VXd}"$׈¬˜ƒ%{–!A†ªŠTˆBŠ˜¦:׏жÛ}W·h”tm?d®x´ñ ÍU ?˜m„A›H'cÔ¹ªµª²«ÅJÅb°­3RªŸûÊ—ÇtFÀ€ˆ•^“À ¤‡®˜Jhu{è>1@sÎ9Kgï‰Ã>ýXÔí|Êr;l@Ѭî°À_|Ä&Ç‘$à²m[¬¿oükZ•(Œ$!ë»AzÅfÕ¡O’k…‘:˜„‰«zuM2’³}á1ŒŽø „{PB;¶FÙ›œ~7¥ù.¡w÷(ôýê6׈ÜMQ~ÿÆn¬×»–6™(.¬{¬¤ H@ æÆÒé"sQU‰l^2‚oIT(íUsNNñ(B%ŽÅV0q_1ôú½j Í2`¯0{*ç!Oý™=úŒGÞF­dA­‘wÛZ·Žj"‰*Ô™gPfõ9´å¨S€HªU1ÚH‡«³ÙåÉÔ?ØJ'„Rïûùí}ØG3U_„b#ÀI`ÉØÑÕU¥PU_Ä»·Öù¼‹À}:í û,Ä1†é|V‹ûÆ#¦g¨6ŒÒ/†Y1A°Š~7Å™ñ«Ë-%{¬w¨K ÕË䎊2ëÝo×¥êZwØ MVW¥¹x÷J5]Ý3•iÝDêª Û/AZ=ú­ŠÜdÀC´ M)=ét¤ª„ÊUf»V  vªq "€‘;Ÿh::ƒ‡–^· dhèõ»ÿpC„UH Àر’¬&Ž³Ë¦z®¨&άVŒiž:Pœf^å28#q’Øaàhe–¦ÃìØ`€yMíð€nâWÎH až5xfZhMVóñ‰îaÉbYQ„¨úù˜Çä1 YŽlÙÂØ°Êizf!¦afà¼BT·®±m`‚Ò|a€ANò‘|q„³t =ÞЙ?|PÁŒužG¹ö‰æ–Ô[—;ôˆ‘:*ì¿Z®O½õÚé É €‡iL›ž.Û°ª"U•"‹ ¸ Ï:µ™:‚W¤ñª\g¨–Zy%@4ÐY3|ýHwL !I€Å¯¦¢Bë‚ew!3œdÛ ÏJ gÓSìKóâÛn±'dL\ ŒÐ홨ãi0Pî7€1ÓS¦1kÙ>Å0‚Üh]©iëàñ–L2mÇëÕ8‰‹ÌŠZ²µb ø°8åTTE•Ê×äñÚœ.$iw}/cÇ[œÍÞ ¾ z“ÕæTY £$œ(æ¾i¹+1P¾½HNëlã8•¶"°žG•™ò¡‡ª·ôïPD1Ê2ýg»Ë…åÚ1ä&+ô&CfoŒ!ÏPUU¥Ú‹@€{×úˆ) XÝèØØPšØ:¥ V-æyoËûv*X«^D1@"ä©'XuÕ¤Ô·3&÷b P¬W~Y½b@;‘VÑ2ɼ"ùù Ö•½10MŒyô/V 8Úá¶úøñcý³’sLÎyß¿GusŠ#Þ'F1` _¡lK $ ɯ #¾cpfÞÞ(.pj˜½F ¼†œPeµ‹ÀÍ8*iÆ«ïâ¨Yˆ`™LèShDûŠf˜]´!LÞWÕÙ&¹•[Ëbíïð³rÉ^ç&‰ívKêõ~Vˆ&+Þ TÉè¥Ó¥Ë\C…T¤Š¢L€`f~¾QÐxNLPZ¦÷ûnö0ÿR‘R¨*àH‚UEPà HRblÂ`±”R8‘3À°““]ô—×z/ƒ­I!€5Ý L¤a* аœHDLcÖYÎî-LcóòÖéó @{€ŠÏ|†j|÷"Ý`ë»ý‘Aª*ýz.ë¯çé‘$S¸_;hÎ0ôrF,j¡Z/[ —žòµì˜†X±€;RÌvúi*ÚȾW•¹úõºÐû\Ÿ¡J†º™ìUe®}8Aèý¶îðEeÈN´,…ÑÅl¨ªªŠ(3¨îÊÙ[v6†²X÷À®J\Š BãŽ)JÖV)êˆAõ  #˜@}~W.M›¥Ž•»S@`'ÓPkRê˷¹€îi' {f—PP°–ù´ÎzÚ1s÷¶«Ú”̪±^½sPF½¸ºÝV__«NÓ”¡ÕV©kª1ÿµ`UNnãÙè}!ÚÀJˆÂ·ÃP¹#-ÜçÀ‘‰á& lpcªc§!ê åìiwfÛÛÄÀõÄ”Lálý¥Ød¾We™þ3t…~}F8Q#²WÅ™é#vס_Ÿ¡¢dÀÃ@«Ï#*Ã䡪ªÊ*+ f’“Ø­   ±$sØ[#ІÌÕ¤‡%“F’ûËõ ÍJE „”09'«f©!š«ËÉÊ.žÁ᥵h€1võü}ÔØ-³vg,l@“ZZ/4‘Ù‹_ˆ¡MC2Ñ_q‡ÁØÎXçñóçïWuêœ3a¨ªsm-^¬PCÀHŠm `ܶm@ ó½9õd< ,}YB i¤‚û6¬­ÜYË9>·Ïiu€m5‘£cÃcØ÷iA|#X‘ñ½¶€3´B°Y@žGÅí[{èRÖ¯ï° 5Å<*ÊÏŸx]zÇ5cšLTÖ3Óéd@Â)cIÆ–¹ªª*2-ÝûŠÖšQÅ‘åÃB0JU=\U1Õaº¡Ôª-ƒÃBw ª `¤_Wµ«‰çRƒc½ºJPv³´ÕU¶^ r"*}Ƀˆ‚Ó¥_•ͼß9ÀÐìYÝSQŒà4÷ßjøl`Ûgݼó/ÈŠY#7‚F’-…·A)BU}É%»!DÈ ¡ïÆÐú»óŽ5®H37ðÅAÌC©’7’͆aº;kŽöhë ùÏQ²ýСXdœvðœaG"C¾W™þ÷é:½«Fx°©)öUif–¬Ç,ªõÚá¦É €9dB24=l{¨ª*eY @i¬nxÓ&¢v­åTeê&7TÑüûUU îÄ„ŠCªöÉÀ Ø5²<¹rÉût­o.e5Ù^÷½êLs÷ö«‘y›Jƒug:Tb€Nr™àv9Akzòài™„³²¡ŠŒ1Åm>ìÿ—‹¦míÝë|~ÚÔÖD’k‘ fqn½ (•ª/zƒP6Ø~õ—C!Ä>ŸºAB¡ŸR é]uqHµhŠ/¡vá]¤1j€¬Ðf g“ àL´â¾W•™ú£øìïð·ZMÉ^•åúŸë Ÿ®j²`+º‘™8‰P•T‘ʈ"(¨Ã;&EZ‚-7óÎmý\Æ$©‚ŒKâŽ%£L7Xؘ õ甫ÀHy­uø=k4‹Å,&£Ùž‹Ë9·Á`ìJ§Ñ³8)j°1ÑÂRÓ¤ºó¨b€â¦ QUœJ)5^F žuVV_ZWy BdÛX7œõ¼Ž,°dÀð7Ùк“ÝYQŠJnlÍaÃî›Ö†’¯ªH¥+c¥¢H É »#\SǘÖeèíh~7e¹zמ„jíßa tMï¨07ßÅq×uB’›¬x0Ø¥÷dt3œªª !Q(#Ñ$!* ˆ&޶é”O@H­¥Û)uJ†žlùìÉ[ŠªH‰‚H(MR•ë—ÜËó,@cSÌ%îÇX¿½ÖÔwèB­¡²g±²é‚45ÏÚÖM«Rýòô±™2˜ê¡v¯Scœ8{1çôx{¿Œ™]F^œµÐ€gPc$äÀdÖ,ÀÂØPäÔYÈÒ­wÈsSÎÜД²Ì:G›qÄ ®SÉG™ í½½1JÁÊ€ÐöWÄšBèLjTÞV%†µ{M·¦ÕÚ?}djŠ{Ušÿq»5¬Ö×ÿ*°Ôˆ¼À™ƒÎ®uªªª¢fs} ”Q&BÎd˜¾ÁÖT%É}(ñx^¡èB)U¹âIUoW!`({¥È´À£Š¯(²mKj ÍèOó\ÝRgà¶ŠÙÌÌ)€ÄCwœ]Nªraé7ÉÊ€¢¦c?ºŠÚórμj?š×Z—FVÕðh¨ÐÜÉ|˪úÄÙ#UTEªòl¯ª§É€~¸e ­s‰1ŠÛ¤±! ¡Ñš»æxÍ¡… Û’À¶éºI rŸú>nJç”hžGÕ™ô-¬ªuy†¾ j@òª,Ó¿zB¯³\3ì5€©2 :²žöëꀛíAÉ’¥K®ª*¤RÇ'kR«^'Zƒ¯¢ÒvWÔ•¶À@-ѧÇ0 ÕZBõvË®fàJ ` cª ‹ãDÄF²çía,…ÙÌÜ6P,€â™(“¨Þ>0(Œ{e^ÿ2k²÷TƒÝÞ^º_š}€*'¨õl B ?•‘-Vdé%Û­â|7[–•gÝÍa¾Iç,Àp¹-]K€É(7okÇ·Œ0²3°Û+XµJ€?<¾GeaÿÑ\ßèº;ÔIZS’G…™ñ+nו¬¿NØ¢PÔdÀÃÀFÚ#3»aªªªBY ˆ­c¤"xE@Ĉ‘8ˆ£ñK5hEС“RøáÉá%t»Ñ! ±6 Léîkì­Ž‘È WÆÌ G 0ˆÅA€½ÄXL™˜ ÆQf2SL.` µRL÷€ÃÉüø”÷™l€r6 Ë yQÓ¢j†AàU`pKÆ¢¥ ©¤ôó|½0rŠdcÛ¶èš3µ4T…o;ø-])´+™S`ýºÉMZ+Š0݈ÊÑÁ`o†pt ®±,¸ Ç^WE¹ñ#NXÝòN‡&{U™ßâq½¨^'ìFã €‡Y€JÏR†¼NUUH¥,æ €âGmºÙ­! ˆˆ¤¡«;!ªe ²rKQSk@DÚïåý‰D šèp$…«•‰*Q€þs=ab¬Exu€L­d8b¢®ˆbHTáAÖs½'ÎüØÝ 1l`ž1¢÷au›`/ŽÅÇmùú¿{{Øóä ÁåÒGfè\Ui»óïº!Uí7)ß;HÌ;€c¶4v átþ\…| þ_ `¬ÍÓŽ"L‡CB´Í’žÁ0ãØˆOÐÙ ‡žWe¹öÑú²X–ghÔˆìUQfýùnºÔ±ž°%'p#DïÉHc5TUUˆ"¦$€xâ1ŸÆê€(m³î_;Næ°á'µG2²‹T½„ÛÁp­¥»r•+u÷Zå r±Ô‘ûcM^¶î`p‘zî7aÐÏÖÛ_,μOÔd’2ÁT5ÐPà™„ÕÓ¨"†Û`’=£>F›F`GœŠß7EŸÄ4k˜¢Mj¶ÿ(°…0 ôf ƒª¨ä¹¼[j$YȶÖ”º&1||(À¼ÚNo¤©û˜ÒÅЂG“6Ôœ÷·§iõÑvâÑt ÞFåç‹nàÕß–4ª)¶QÕåâup=n¨Ypc¡Kf†pB©*’ŠêÆãNXë àIp<êÞLoèã\……úè‰*¥ÄuÒ{¢iA"A²a·ÊêTÐÕ‡Ö ™™½3&l ¦í<¥P[ª¼[§t¯–\S²àfZÙé2${¨"UUv €ââ.â8#«WÅTt…-Shõ7õعޟu(A¢Q¨ÃØq€ÀÄC$­vh0L:“¨pÓ- ÚÙÌ9Ÿ¯.ÙÛØ´bHšU“U—B<&s±&›¾Ifôf2-HèšÓ4g›^Æž2bV©Ÿ½ë×w;ƦPæe^½2ÒÒ{zÏu†H¥R_D*©T‰$õ ` B–1þ&ÎSŒï¶>'†&›ö ˜íà†V!±‰L“Pw&ãŠæž8 p–ÈCÎñÀ9"ø>7EýÔºÖ»–·¨Ö€ÔM‰üté¤ÕºnÇ­o²à!3»0¢žŒáHUUU¦L(šè‡BЍ@=‹Åµ˜à¸iÙ¤DÀ·ú“aW6=zB™,‚ Åj“MsÖœdhç;j½?r+©9+VFżId­Ï€ÕqE©rÁITNs2V ãÉúÒFMŸ1o¿½ÜŸƒ=3Ôl/ó#Qcf2-YVS) P‘/­’R€âK– OgrÑÛ2i’I+*ý¸ Àh¹Âf†j†õ;Ý#A &×b¶K;SÈÖÊÛ@Þ6¹wÖWÅùvÉæ$ºå-H«)ÖUQv¾Ø˜åkèИºš¼ØNé³dtBæªJ¨ Y¢ÊÈ” @V±jàŠ}óƒ>néŽYKä˜U ŸŠ¤À` õÚŽèuÁÀÀ0C0‡ÔªÕUjÀt¾yîÆ%Á€ !ÖÌáÐE]­ÐXøpsœË`;à]V %+»ü2ÕËwaÎÉs¿·<ÓáŒTÿ~~«“:b’J½.¶û€1 ÊmU¥u”•î¿K¶°n .U¢Rù·Š`ç07‹êŒ5'dFÒUØÎ­¡*Ñé¶d¨Ô*dW$¨iÔ$}”½=úÇMà±PMÛ[ž7¥Ùþ+¬¥÷Xï))ÔˆÜMavúˆÇ-3l‰&+n´!é’tʉ*¤„ªŠÈFdT g›iUPªžJTµNM“&»h¨XµöD€ÀÈ2V¸ŠÊ J ÊÄq0$'M#”oˆZÇ1`5 Gê5ÐÀ$èO\®¼í(ÈR¯ù8Ûr ƒj+IZsÑ=Qõ ‘¤eü~kFžÀ³„Ñ-OÓ]=b»ŸÅH /SoËŠ €°“J‰?ÿk’‚5®áEÄt5­a€êD˜eÜa ß4°n&PhÀݲÛ_޹™–¹iQ·…žG5Ùøó:‹×ú ßPgÆ<ªÏ–Ýtañë1B=ø¨)Yð`¢MK «bUUªQ$(l´º5 $ „xÌ„dªê­ŠZ€Ôοms·D‘ °!ìn?¤$Ó b—ŒðØ;U°ë¬06hW:’Pè;Œœ* («µIaˆÛ}üN‘˜lREe׸°¥nÍçÞ_·]eó NóÚ=)rˆorŒÿyiÖ*A6F¶°‚/åÁ$U…äßJ*-Ɇè†#'`ÁWˆÐž4Å¢¸©ŸBêÀð‹@PZØ…ˆd£úÖÚz­—i nøÞWe™.1fXñXžÎÒ‘½*ÌNÿºCËc‡_@“ÛJ€v(…(]¶sUU•ˆjhXYƒàUiLz˜-T œÒÀaDÐ¥ ¾5gœUP­Ã,í8««×תŠ!LX,Fïä0Ķ<ÈéZù<Ò(½Ì±Œ”L̶„ÐÊI*0Kü^Ý“E¦‘YýÎ#Fõ¹/Þ~õ×uÚ´tø.±¬Ÿþ;@èú7WARª¾dQºI2HKï%á°K?þ‡"…Øø!.ª o1 {‚6¼Ö„FõÁ4šFÏrG†ÛG­LpÞWÅö(I[ñXžá/jͤ¯Š¬U’xÍeñxð'µÆdÀƒ € §/t2gUUU$ÔOuêšR„ ÅHv¼ÙXHRªH‹„®¨uýåoÓá‘ÅíÐéÐz¾Zv€Á]µVo†ùüt{Þðô,'LHmWjtèpÖ¬¡Æ™a/NHH׺b×êÉ¡=Ù¿ÊŠœOémǰ…‘}¼zù-#s ²qÎå¬îø,Û±ìRl=X|Ø`ÀÒJÑba–T*õ_ªŠcèíáAh/b;fld@o¥ù]&$ˆ éÌÞÛpó £UÌjq€ñ¾We™.IL×aYîè:#µNƽ*ÌÌ?nS±^;ÔIZc\0}Fï14œŠ`¤ª"¹R À0Òf'Ì ª™3½IéÞ} ecÊH[AQÐ(W1|ÅÊQ0À®ûªšpÐ\¯Ä®A}3晩¥€Y dvoúMbLƒTuK]ÌaH-®VCSÙ09÷mjdR½We‚“ìËåöÐÿ/ãu°'˜WWK›£höؽÎ}!H’ûÿÖ8Àóì[çB:Ò…?’n0Uþ°s…à€.´‘¬üñf« ¡šÁièÐÆ©+Cy€ï@]ø6~7ÅCã7º«mÑõwS3GqÉ -¿8®+ Ýiª h21ò5³Õ dâй0CªªªùvÔÄ–ATSiá Bh(¥êõÄd °UT¹r,ÊIÊ)•q‚ 3ÙuµÄ0ôf2’:JÙ¹xnhð ´œöÁCŽ«7Žƒsö¶EJíq`Ìù´³F{ám_¦2¨SÎ>õñ6µ[½úÛú¹ªWósu+2å²²˜+®c ЛІ")éhÛ‘9G€CÃçFr‹NŸ} V’ nYå+D\ŒçüŠ‚¢wÒ€.ô3 ~7eÙþÕå¢dYÞÑ=‡5&qSbp~t7 L‡5&/v€‡]€AéK§ìÖªªªq'Â’ñ€È¬&€à $4€¢hVK•CꨅĪ /r˜^…@éÀTV¸Bª®. æÃr,L=M˜¤:ÐG+íñt @@VcÇ<€Ä*"y÷ tù¹¦Ú „¹äÖÆWUÄÙRsÞýLÖ(I2ötœÌpæ~+¢I'T8þw5R©RUUßÖèÕ±”Øß„d!%„iÈA!ŸYKŠØ4Öèf;SjÓúH¦¸0©™¡CGw5qFÞYc00›J0!ç&E°q^G¥¹öÑé–Ô[Ö§CjLêª 7}ýv½^÷8©dEÔˆLÌòü:?Ò)Ùé2äd¨ªª ÉþÛÚ$‹˜>Pe”zc30²ª˜Ä8Æ4Z-Üc|µÃ’H 1³F,;#{bsÚ”ãhQÒ°t ®2c¨zxíî·œÛ ±)¥x0ìux‚ìØ¿jÀôªÉ*qBNÓB¯j„­TÕëU³xÛg]1à8æÅGÒ>Ó@»x#5j}{xé•*UJá#€„lù› ˶ÄüqŠ9¬+cKħ8Â!kšÌõ²ÇÚ½dfï=TUUm®']mC“C<.#¶DçŽÆ¶QvÜì/ÛÛsY´d:ë÷Ò®TÙ©Ìéígѯ÷}ÕY_ŒÇ•z*×ÀÈQ'‰¨Ä:»r䬻g˜ã> ™ö1€ >Ïг8…‹Nbœ¦º²†‹ºï]—uÚ½[á>¬"^Öé$=k̇µ{ùu{²©JV;Û=‰¯IÅ£| `Ø—á™Riª$«¶,K±-ŒŒœê»`´4·û[oXŸWG/ïsùpœ[Y *Ê¡7Îuh¤0¬ÇÝÓœƒ­­©³9bßÕpÆ1Gâië8ø~Þµ”r A´U\@c×è#4€Æ³33ÊVUUU㇅ b¡ÙÉïãü§óÅytSEÜÅÎ?¨m¶?WEm½öf>?:|íûÂó¦ÍÎÇý{ùÞ;g?–ª\S”dú¿0ÍÐî„Aµ²ª€ìAó_ ¬Ó+p ˆ¦™·w  ïtçïÛ¤ávCAu²4“}îSÌ ¤*;æâ>’óûÖBÕ¥ ÊN<Ø€B·Ì'š¤—R}Y„$¯¾ßì׃Söß´u§¡GFg²¸²br¤›Gë-šÏ®¥aÇcãHÌÞ=ìxÄ acPeŸ .³mpQ¥¶ ˜P3^¶Ô~‰3VpÜ4ž-]ÚCaa!›Ðx/(ÚtodÔ™‹ªªêp¶˜‚²»Ã›³”6­t»´êôüí*¶7%Ùv&ÓŒÖúÒ<σô/ö½úu®Íu†f”óäØÍà!šcÊáñy×àVê|1brzÒ¦ló6ÕCj3u™Å©êT7Ô ]À‚¦“ȰçÀÁ ÷K]ÎG¸ÌZŸyÙÙÓÌñ:øã©”P‘€‘„Mä#½¤ýUJI¥­Êñ÷ôºØ±¿É®çg,ï£]ÛvtCýÙ0HtÛ’‹MÍV„FnŠ$Ž<³Éîq4ð¶¥ï@(¬b!ÆP3þµ”i“@\𙆮%‹k˜Ä ®4ÎGG;I—NªªªjpÜ­÷¢Uãb[ÌŸ0ÀÕqa¿ ¿dÆ{¿äÁä‡;g£<2å[”ys梙ݿ¾>Ú{½è¯¯t¯¯t[ë›íŽ‰Æ¬(€sæÙLOŒ›Â+ú£ös›®n¯3žL©Êʲª¢’º›ô¨ÀÌJ÷4Ò,ÖRuÒ•ÙM¿3ÌþèϱÜsŽ~µÍy\¼_Nò’ŠãÜmŠÔCª ÏIf‹¾M(‹Kã“òwwaÝs>ö¯ÞŒ”*ÅÛjŽB˜dB6y…¼3õ"Ñ­>@ßö&4#éP7‚ºêÏC ¨Q‚šâÐ,Q2þµ4fŠ fcK÷Ф4¹8îÌNçÜPUUãm`”I³±lÝy¼:ò®È_êµ*vH»üÓ‰Úâc-ùV’ãÔ©ÕjfNÿœŽ'‹‡yÔ°FdÚ a–…¦ÃöJsgûÄe’¡ @ÙŒÒÞgqâ²z/sL¢hšÄ‘œš†®Wd“Ýä}3N^&%’¬n¯³Yg ÙdÕ0kÔØ¯ìêßߪ7ƙΠÈ6(ˆ¨•|É;É"¡$"*¿ôïœæjÇ’èÝ–-êªkO°° æÚ’ãÅ߉xÁwf œiÍѰMS·“F1œu‹Êqm9àÀSÉä¶yF0 ÍMî¶4iŠiˆ…¾™9Ÿ-cœ"œ)@ãà©÷ìtf®ªª:mO˜–Š¢Ë?§#›:'غõð÷ wÆ7 nf[­õí‡OO_~|þ¼ê™ˆsRa`î"Éj©p*‚•””ƒ¡'OÔÏ:«Ø$£Ô‰—ÌŸó>Æb"¡ Ó ù±•›ÝeÞxxG×i ˜Nàힴ—š’U¢ŒûY±<Ẍ#QƒlÉ dbPŒ±@H’dÀöm Íj›J}QgtLìÛûs¾ó9äî›7¸9š“ÉÂýL5`N  ÀfWµÃÍaØŽz·–Á÷WçH“¢3™—`Ã, ¶4iN c’Ï–¾-IÁ4"Ðx/Ø=;]JvUUU“·û-ÓÐX™ø²ºuþ…qÜáõ‡¼²N°s+X}Ïbq˜ÜZÌ¥o–¶jƒ¹_[Ýw£Y1ˆõÎ<¬¯vïíT:èhÈ…¥z$»2jÎe1“]+““ŠÞËÛ{š3£Î^רÏRÿ°M€Y¨”ÝÝô2t%ÉãcÎ9SÇà¯bÏYdú¬<ŽaÏšu6–-Ý E—±ŒlXÁBo?½"Ï*"ËØH·eóòzÂk÷ß—ü½È£AŠnU27/ï-†Ï…Ö!g޹«g„{CôBȰ׈ã;ÏQ‘Ž8h®ÙØÚ¾ìøÉGµÑ8Ìú—d¶tq^)ˆD^@cØÒ¤ie!èolóùC=#:;9BUUU¿)¶Òx¥Î“êáÑ¿¦Ý¬tÑVŽêÁ/lý=?ÏËjÆyš—Årь˨ݞ·Î9T޹ëc¨ÕËÛ›1&êf¹U¶+¡SuªîΪˆóN§4Ñ'+YuW¹ŒøƒzF3¡Ó¸½4ksè ΓÉ@ƒ(®”k˜»`Qýþº·úež°Ž'!•©lgFÁ4H‰Ä·’ôFAª¾y&MˆúÕTÄ!,í"±c½¼îw}ó…Jªìœ¸Âœ’Ï}ˆk0Ÿ¯!ŽœÏTU¥6Ó%v?3]çŠm$ö'kââ › Þ¶¬ó”L 4¬-ý8G”`hò 8*ª¦q»Y:5³ÔPUUÕ]ÄfØ”zátíþ«’÷ÿ·ÄûÉÜÇ wÃþãå6,ìç§¥ð’’]3*£ÓŒÚ#³jaV(Ê„½¬mÊ;HU·«×HJ¦Ê]Wz²4­Â}4{Ötwª\Æê¼:Nê$Õ$$™‹µK~i1¶¾=–.ŠÊ¦ 'ë1µª2Pza–fqv©¥GFHFAdÒÖ‡U/–ÞÊ"RT¢ò|N©%‹ ncrÖõzÍa®wšìôéžw&\|@‚ïç¨áü‘¸Rv©*G¬{ýjRú°³ ÛÕ=Ó·\^¶Œ~îIÉDŒ¤eKç§aB¸IÐäÎvg$½«ªª¶a§¨{N¦vßîÃöÃÃ‚Úºš£‘»W²H«õÍ#½¾6ZkÈiGïðzÏYœçy{cŽ“v?׈¯–V~i®¢ËÅô‡ßúƒ‘}ÆÞ@2~¯h!º70¨ŠfsOkJ‹6¦^g¦#Ê#ˆ¨¬Q'¸¸KeUSœ«V_ÕFÃJƒt+¶$™ÈUª •g[È‚Ë8š|^U¯z8—‡äÜ]xúR ñÑ·þ‚ï7¯e–h3(&b”MHŽùˆˆPjk$mh¦¯ ›Mèµ\ó:H€ñ ^¶4e‰ 23 eKö0 „•MÞê&€±VìÍ2“9ÀUUÇ&“ᇸ ÄZŧ?¼çÑzx9øw·}cKöÇno;m¿´sH­æj:ÍzžÇ~ÓôOÐÚÇp¥¥QÙH,¢HuÄÍj\~9¥é~µšé=™ûrÉú†!¡.ç•!pæ¶”i@U¬i[вÄ6äÆ9[ÂèÔFfïcUUõVdý“w’ótˆ}l$k«:¨ªÉAý|qVÿ’¶Î÷Ö¿ƒ§úüÑÿÜûxžßöºöÛX··ÅÛúòZë¹k9çKc÷íŠ:&Y±\È¢ÅàšÃ›³}KÓØ­j?² …cÒ©$¥®š*šY`3b §hZÕà÷ù2ÇIµü^¹ûÎûÖ¨:o¿Þ¥rì*ŸzºuI¯U•Jž…€(R4!¨EUéƒË÷"Þq{‹à‡ÑgÈ „¼ZTÈ…"`#àÍEÙÇSÖ-&Š+ ’‰E-Ka«¨Rÿœ¯ÀöãòÓáж4¥')ƒ¤H–ÎMAH'nœ=Q±;#“Ξ¡ªªêFômü|Ä~NnZ[Ì q#ª˜BŠËÿö‹zžOëñyº(ûû[œŸ')m..™WçýÂ>Þæ:—ãÌ÷SÕöcˆ’Òªžš©¢•;s¯R3æ«}ª:YŠ"ïS\S˜‚‚aà):i Æ+âa¼íb÷Û•™´3'LfTÄî&³&¤h{*‘çT ¥ ! / ˆ€È’IK²L¤ m¢ÿÙYÆcÝ$Tª”T©T¢ê]^T¥– a.•±¾'O”;†Ûœi, bh #8ãØ &g0 5Ãß–(†£åõ®@>¶ôeNVH£[ 4†-Mœ’”i+@ãÙIGtv²¨ªªn†¬¨*\¬“Š?öhŸï\õ]·>3OS¢ç+?úØÃýÁ[êÓAÛŸÇaï½Ììë뫳{›]ñŒO ¢´¶X;º¦­c·©†N÷Ràe!®%œ§f[®§xÉqm?mu#¿T–zà&áíb²@ps—q1ÏÚèïÕß®N_Ó.–ºS…§ ´W£)¨’¯)Õ+"#ab°Õ–$Tõ’äM{/N’Baähïü¿1ùXA6´––ѯ AØÉJŒB%Ç—h± .»³[îÈvf¿[ÓˆôùkÆß˜ ‹Þ­²ú~¶ôm A ëÙªiËXçØÎ òOÛ³‘ñ€ªªª‘Nk«]ìÿ³Å^ úrõ_Æï½ñ¯¯Ù ÌéW¿9ûá¯Þ·_Îòyte×þÀ…F“½5¡Æçó6G…-U¯®#‚FEæ Î uÉ,daÖ„¥³2öœËzÊ {a› í;v7Ù ‚ÌÎd¦å÷ž¬“ ž=W%xú¾úP±ã8¯¨7“T‹¬Îãîr>aRÛBÕß”“ïÞ¼.òQ?“JŠjxn{=«ú;Ò?ŽGö³ <õ‰Ež÷™b‚éVQ´9³1Æ! áXg]ƒÉÐvÔGhyÛkL¬9ÁL+á ªþµtqÊЈA]‚cKÝ– !Frã- 2 Ý“Y¸ªªª즡ÉÑ\¾ý™~c’ïJ}+®þÚ'}ëè±/…Ý_?ÿñðõÇ[ýzm×î×›<–òÚ³yÑ4a'5*52œÕu¯àpŸu7s›…Ž“d7!Ûü—{Mw¦É¼rÙþ% ÝÉæª>BÏÔÛ™[ì¶8¤ÿóØLÉ­jö’ý–KÚÙt¯·”0ÖÛ|a#$ìØ¶#ù¶[¥’ªÔûs*-%x<ÙI3‡¸‹=ì|ÅÑááŸÚ³µ5ŒnÛDT¶\ })•wà\„ÌBÛl™ݼvèþÖ¤ã:/Ù,äcX p–¾w¸ Ÿé<~¶ôuAƀƳ¥®GµÌ‚4žÝ³gfgUUU£ÕVJ¥÷³´Mô„¦Íƒýڵø_©Â‹ÑO_ýÅÍä=»Ï•i3õ”Öº¬ëåS«Ï³úm—­ÝcÎî[s’ÖŠía¥€mgŸ¡Â ¨2U¦K³lÏ<¹ÏÚ™U¬ÅgV :“¢?ZL¡Älï¹ÆîbºM²ÔõEjôp-ÅÎòf­@C¿™3ï°N—Då½RÚ ?’d;ÌVˆ¿£¿ ’ áÕf»¾÷sü¥¯Ëž6ï×Ã˲3}Â@CCçÍ)S·îM&Ö”!`ª¡NعЭÍÇ ‚Qئ˜Õ{h¹4 þµd}ÍÐ ä…µ¸±l©ëœ4™I]Š™&g—ì4# ¨ªªÊ°pÕwä®vÎOG‹ï½=ÿïú2ÞûÙÃÿ:<8ÿfÇÈWn­ÇmH©·ñ„óÕãÕhÖÍz.ç|aHo!-Váa„Úõ$&:3ðA I$\3ìJ;ÄjõÔ‘¢ë d6Mø¹}g‡fZ@,w³OMµbÚÏésAgÞíAe&Ó¾Ý:¬êBˆÌ¨§ãÞž¯Î…GªÄOaj”¸„:]äÑßByëp_4«C)Ù~U÷.â_‚„Ü §7GæŠJB“)B¨' ;´JkÅxÐ[4Ӧꊺ ¶ÔqA@-¨ [Kì÷Ð XÐdÎqtÀîQf&Ñ媪ªzé¹?õ¤øîï"«Ë{æ VHëÉ é½vsØOË‚Ôa9¯'—ý‚ú]ÉsGKoª3ÎëÖoú£fiölúT÷c Wt{‰¡¦½2DbˆâœŠå§Ç;ô\ AçÂÃ5•ƒhÍ]‡øtwÊÓ,Ð*¢T÷gïîȦ'ÏP³Ó×Ò±&Jx­RsP0K9»ÞÓµ0 )K•碲ÚôJ ŒöéX'òþNÀ¨¹F%¢÷sH+Ñ£öÃ_âêÙµ7ÇÎa4Ø×äân[Ûºù’çC ×Iöœ·-êÅÈ9÷ÕÒFÌìºä.Hw¾µ~ N@ß6t-…™cšP¨=A4Þ,mg’A“\UU²&׌0]5ËëI¾ª·¿wùÇÃ>}äå­½$+V´þò|[m«þUýôŒýÒ구¸žHÖ‡ìòŒMزÖÞßÓ•¨ ržaä쑯cöɶ ÓÑ©qÒÀ,kÔî65}ܵ,5Kw¯[ñH $Í Ô‚ÿ—=Ó3󸕦îon†1ÝûšX 0Pf¥ì(TR…§έhñë?ô„«x³‡Ç8ÇîJû5,ÔÍÕ2WóÉÛmzš®g Ï(p>ã;>½´¸²Ž›aBþaêö0·þ•X»ílKʳ^¶ôeJÞˆI\4œ-M_“MbPWÐxo‚Âî™tIWUUµŽâ –Š´·í~Ïþ=­vëWF^ÙþNôîäøÂŸÞ½zs¬lÑ”dQH.yhƺÛïÌ›µ…Þ8ô¡éÕe†¶#©tiJIO·! é¸¡è"avßÅVÞU@ÐÊò— g1tz6N?_ØgÌ/Ç%cÉ+O¶aYHyFÐ.vôZ‹Yô&ªT ¥"ò«ª"Uœz G޼59˺lV–ÀE¬[ìW‰nCÌåùøN7R pIǼÅöQ@¼®Üƒ„‚bÕ1g[ ~e²ü _‹±¤†~¶ŒeN*bÐõ ñléê&cQW£ñnvÏFf'R%TUµG‘³³POs× †¶wvsõc‡©¸ùç?Þ÷ôÓçívñ!<¶Œ± ¢@ƒ†¯¥ÑSDí% 1£É½xºíÞèÔ’µ¨ªªj„^§³º¨i²ñeh?_<€û¯´Ø1Påͽ©ÅSꨮ> ú"7/ªãª¿XZ‘uãòj_¬×“jPä4îU=]Ã8ævò¬ÿ ?³–±¯-w8·í“Ê>óœ®2q_IýiìB÷Zõb¤)“Ñ€ ™Ì¯ó6Çsô9ƒ5%‹WŠN“TTq.]•RU_R”jîeEH€l•¿ÒTÂö|¶?f‡îö†¸³ã£=üÖâ½GæƒiÚöçöÆU$F½å¸1}%œ…oØäv®Ò‰*`ޝê>öXm[þµ4~LîÄ„U€¯¥Ž=Y)È4Þ’£‚ݳSéR{©ªªUY¹žù¿æY=½™Ö®·øLÛû-}»ò]wjÓJNÕÆ™‰¹ºès­Y\ÆS]ˆª×i»d‘ÞN]ʨÉW·€=ã*È霈fP1 Œ½çÕ°~ŸŽ5€SÅ äƒÚÄÚ&£ýg'õÔ´þ¼'VÿÝóÉ;ÎÊ]=2‘ëJ-б9¼eVÍÇuei’ej‘*U5i+µä9%!¥ZŒÖ@ …pˆnŒ‘1Ä «Ò¶2¼•¶É Ù>ÓÉ¡X40—d09¾n"gŸ(Å·ÿÑ ´Öü¬dƒqüavÔ†~¶Œ}NÖä4Ž-E;’w¦`ggfÒI$TUÕHU÷ K$½?|f¦ö±1ðòÿþ‡³£{ÏtbG¤^ë·~92•sªôdïÛÞ»»~i¹žs¡i̸×A,̤°{m¯jLP®(òLæÂ,N(“‡L­ŽÕtó'³©Ó^Ød3«HZOšž'fmò¯¹?ùÎë…“©†÷êvf¥3šµç•§/@] MñÙÙ(4€)>Ê5T‰T½‡ªx°'í nîw—¦ad^ è•ËêŸ!ê‡_IkÛäè'…Ñ[‰¨kXÁ~Ì–¿b0€:YÂ@ânú·Ûd«rDÌ®ÛMù$qþµÔi N /LaKí—ØÆâ ÏÉLFvrUUêq1®>d ·Ÿ¾’“©úÙ=¿=ßq¥ÚáΓ›¿ùsV*m.lgEÁ¦„íñ²ZAzzK(fÕÖ:y“™êך5Ý ôàvìO›\u ã”í†Í@@Yq'dr»ÊîcUL÷C’=îv¼ÐÕUUyjPa€ue_61Y¸`4¶ÅøÂÆÈòR]ù{rÀ±ÚØXt›؃ìk‘);âVÂUîk’ƒîþòvk ø iJ_ƒ6;Ê%Ûàbjª‡ÎE6„EþµÔqŽíò ¿–ÂÏ!DçG˜‰Ñ3éL"CUUÕ½yý®µ½Ãý0ç>V’ûUm'#1yË?ðvÝïßõ4º/ÏÞ?^åùçÂûÒÏKŸ/ÇI¦© {'sv§ÉI‡ˆ6´„)Žj"DQš™˜c{v‹yŒJ]YEÝ<’îHÀ}Íi4»1/4€&螆ã¶ôuéyˆ+h,[ú4wÓÈHùïÁ_àdÔˆ²J¨ªªêDsê­]Ô¿:Èû»Õj»çß Íy÷JUm÷ã¶oE§d¸!/’êÂúÕeâU§ K¯ ДF¡ÀL ]1ò4’ßúm~‰iurÕ¿·í1dw˜a^õFWá,¼¹qE9©9×mWÑ«†jŽ“Ò­]]Bs {QùõýªŠ³ zKÌjðhsÌŠJÈ ‹c®ö®WÖµMìkd,!ƒWg­þã£o}uë?öû;‰ Ymš ê\ª"I?vê†á»ële[²’ubµ÷ê3c¾VˆŒóô”ë± .ºezž L‚dW¤š!äŒÙ…Ü€X–€µ@U0áº_/.ÌG»{H{ï!¶„! ^¶ôiŽlÈ .Ê–®/IÊ ‚Úøl@‡QòÜõÌN«ªª;âJÉ%|_®\Í=Úšž¶„ð–6zñ6²$ûèöÍp`NÕ÷®]íbýB§{†Ù‹BËTè žÕPV*n['Àœ¨×¨«@E†}ц¨,¯$@ÃmO%T:—˜¨Ü4Ô•˜ìšXº`ºN–›ÊLRN¥j.òññ~éÓC$kF 2u+€T?òU!Ð-ì?TÆû¡îþG-\…·ô¯ø¹C,_ŸÅb[qËÂgóFõ„Ö*ù‡cBpr ‹2jÓ>Ê/º§FŽêp¹¸Ž…úà¶ô~N`Y˜ÕƲ¥ik’ˆ@ã½ hwºeöTUUuæ%ž,„m*g#ë±æÑú‹'ÕÔýíW*%Óbò‹ú­µ†ÔÔÊöÖ}=ûÍ{ï{ïÃ<óí|¬\ÅiÖíº÷2 •Ì5bY†÷PL¶|¼ØC?€*ffo5¼;Îßµm‚ã†ã¡¦§Q½ç™R7Ÿ¢öÄP”W’{r&©ÙµF´ÔqÜU3;"RvQT=<—ª Š‘dD@Iز`…í(‰69i8•âàõw‹³ciÛ­\<.WBÎìa[8ij-»A[Ì éA §y¢æÍnPýr`jÞµÏ*o%˜žº!~Š>¶ti… .Ê–¦Ì¡dïH#3“ª*¤c¼­!ÞÂviò3üa˜‚˜¿–¿?ðેõ¸ý!ãÕ¿>­ÇY1Ÿ¿ÿq¹ê}¼tç¨~½ðúóµ·ß_¾v·ÒË »RŠä«º" º¥ª(y`fV'M¿ªTU)è†B`ÚNòT<ŠDÖt%ãÙAUg–ÂÁ=yÆN+ËùÊ ‰ºŠœœ½Ç™ûêVœHÞ†‰ZdÓ€+FGF’1–Á¶Œ[&,„_°¤fòa3m« &¿–äðà9hD³º¾3a\D€„–µûê`v5£ ÌÞ*Õê—œÝ%‹ïÞÒ®øŠ¯2ž(~¶ôq. ÜX¶te‰m â šÜ8™™t!»ªªª¬åDŸN:¹¸Ë}Ûvéáz£ÿ6¥Ÿ{©Ää&6<^ï±´¹V{KŽs‰Ìh];ª\Ï8õTh‰¶„«(Ç÷«} ˆbu¶+c¨UY€(ºV¦ãËíNÀdf6BÞK»M÷°»©ø¥àÔCªÈ¨òñœS.ÕÀ†È5$=•èúiíuÚÓ¯‡§AQ%Ý~¬ ‘"0~¬Ùõކ‰µÝm‰|Õýí®Ý-5­ÎïU!¢¢üÄÜ,rך‡Ø%€/.ô]S!ì ï<œ¡¡>¸c&ú‚J ^¶¬©×L ô}AÚp¶tq)L±ÑÈÑä±³'5K!BUUUQ÷†ÖÂwŽùÍþ÷AÞ^ýÓ¯yòSù„\yýíZŠ}›š÷]sxÚÎY\Ö¯Öý½Þ¡3ç-Ckí¯µhMI Cƒ3G=«»zš­5" ñdv‹&‹f…É‹¾;·e©&šuÐvº ‚3¨rð'Êöjªj 'UÑLW†çK2ûxع%.@H‚@-ª÷¢3b,d‡`c-,k±ddŒœ$œ~Ú¼ÈÔê@^hNÔ×?¶bYóLûȘۗ9JË8OŽªqëâ‘a¤c¸6CZ§å!›U³Ï>¶,±Ç*’.WßÐÎeK–¤ÆÀZ ñîFf#£ÄPUU59uÍX)Ë]êÿÛ‹?»+ß&-K¶'mýrýó¾øû2Ï¥s»hçy›æ^ïu·›Œ*ÉPd"Ö(‚Ý ª0õ–hÜ>tÌ15™Óà)tcë}öP_§ÍÔ†|ON¿žÊ×»MÕ:lÞt¡Ìnõ)“¿gåQ¤š O¿¢5­ñLªZ¼'„á}¤°¿  ¤ýH‘H €”Ûëøé¦]?ƒÉý­ÛÍj+„?{lþªQøÁÍzÑšÖS¶ŸLëÚþW1¬èˆº€Ü¨&W† íêdLp溷ìã’¼›îMÒ–±ÎÉßî sr‹Ùiº—€ªªªR?#šOýÇùJûýOï}ø˜j·φMøëÝ·@=y;s6™eõ½kûÝéd¦´g¥"Xª‹.”‰:Jݱ;KÁÒ 0†dØcyoï½—±§Y“¤H†\S{¾µ043M²ä ôèiq¿´¥ªsw­Em°1öîÏq?âmy­ë^» â¢ˆ¬+BE!QyÊAT­®¢.¤ê¹Š¦¿+‹Õëz¬ /ÃÓŠ6Gù[ùÛ?!³#>Ø0u döEP€ &DuBÛº%?Á§)§œš…(¶ÔuŽqF/b¡ñk©ý”L mœ;Z×od&ÑUUU}h*ÿ¦Å˜ç¡ùó¥«ÊTõ’ÄFœvóìN~ÕÓó—Ûß‹Ý(ï_>ÕÃ9·kÕ©²Øgô-G”J%=±2A¦‹HE^‚1/½ÒÎê’XYu¸]0LAˆnX<_Í0$Óš¨“º²ˆÐÐ/tn†òÑé˜5Œ9£,~½îÿ]N]Ôö±˜3•JU%ꩪrI[*µ,UÕRO¥âÅØHH6ê‘ñXQÏã!ŽØî®¦Xˆé_æ3çwß°eþØJÈÍsu2@«fL–%&!h¾ÌÚ„fv³¿ƒp’ þ^¶ŒqI*bÓ-L4ž-ã8õ ¢ñ–ÀΞQæhJ¨ª*vc 6èö½äÉäòéáèÿÙûɼTé¾K÷|<é§GˆVÙÒê·!O½®ìËìôW›÷ºê×£/PgЄ‹f]0 *·Mev2{z›ãÌ=í§ì#Eì\ljs¥œ"ˆ§jþWSIlKÚ54 ų¡t’‰Ú(לIÄC6³'YGluqeש¨+ói2{‰=åK†«»¢«’çTPI‰ÊsdIB,’TeÎqd0½tž²>Ú F<uŸ;\n¸Ô€âdgÛhhÔììvŽ’½³ ɼùèËH›q8¥A 5ÁRXÒI¹ <(>¶4qéD#_ ÉØÒù98ÑVy¨ñ–À.QädUU…ÔZðCʸ–.-ý÷všå7ª˜ƒ!|wýÞáææÁ¯W÷–Œ¶³ÞBRáj–Múé]®w5—ì…¶’ C1öÞ+µ”ÀwDQ ±~§®¡ ÊíQ§gWNCl¢ª¹ÐOÌ^Ÿcï_k™©ýfÜçyšã¼ÍíÌÁ\xâ1=´Vf P†ˆ³Óœ¬ˆy°Ö¨*©,{+*RR…Ù¯v[õòMíÖy;Úö ?õÒ`¯ý¹82¦!X‚ƒs äeãþÖdR¶lU³cÔ¡EŒi8[r÷„ª1ž¶ìiŠU4&ËÂ@kH[º6Ç6fBÆ{؃î4ÝG†ªªªbZ"1ëE^V·ñ<øØ½§ßR×ÛùíŠo^{<&ÜÜ|~X¾Ï}N¥Z»î}8ýN­C—D³®·½zy¹hǔ¦övNªùØNæ‹ÖUžì¡;jÐÌ6?/Ðã©ìnÑ7ÙGñðìi˜ô*xŸ¦èî/v–gn(âé*;{֡Ε"¸“tlÔYH°¬”R•*JE¿©Å“¥Ð`IDØ Ðc±Ñ*É6 ö_¡ÂÞÖ:ÉÔ¶ä,·9[ïQû³‘okP“ÙÍ#°&æôµtù¶Æª=¥ßŽ?{·â1®q›-æ£ÉÃ>¶ôiŠubh([ú2× êiã=€]è(éNsUUUD% ïÖ^ó>‰¥Ã> ~¾6çݾϱðÊÕcëO/ûùm燭V8têbµí}yÙ¶íèmÏÈ’3f5 ³>l·Ó5/—Y²K+ÑÈ5…Ä(‚É< d…5Xš 4}ahÁpSIâV‰Æ$1P5mZ§,,žC2‘MRôì»´©~Ôzï+Ky ê™ÞXoµü‚RÊ2—@x±e„•RÓ2À%žÝÖç;zŸ;tLaŸ|^Ñ{ûÎ`dŸÍèn{—Yv¶zOOÕÊ+GfjlZbšóæ…bÄ wØÛ5ÈFW¢MÝ–8¾¶LuŽP¤,ª`VÚ–µÌÁ‰´êVÐäŽ3ì¤3vUUU-êlMÕL‹¤«¼‡SvWæÆ“/îŒnZªÇÈW&ºP/mœG·÷z¿Wï­æ.(ˆÈR°„‘ÈŒ›µûÄnÎÝÞ'B§Y×nC9—ò‡ÙÓPd1YÐëIºLO—“Z€áV•½ø¦c>Ô1vÍò8žé°s…}è^ÛššÎ¦+®P•}ýÞVPUM‘²1B‘5¼’8Ǻœ[x½EÖI¾²<­_=…/¤ˆ6!½iåÖ¦šåþà…´C<8ÂX”äŒÛ…–ÛQ¤+Û çN?~¶LiŒQ¤ ¤ç³¥Ki› +‰Æ»vÏ(K1 ªª„:áådB/_½^î?¼öhß•ÏôÈÎU¯¢¯ƒéÁÏ©­½›Û£ãîv°ë —N?Ï{çõ>ï]C­×³°o’p)rDL*NsAÔÚ¶§GYSMVtçÒU®éyŸ»ùFÏNîØ3ÐY•'èf¨Z5•WÖ>œì|FšÏÛ}:cAÚȼ<¯ÌÚÎeŽã5Õ‹`]y0³#ɯ$áX<\å?Ù‰¬oùÒ/«7gé]ÜÌþè%ôwØlÁ&ÊÂ94Lw7îb¹"àâ°£f G` ³b°-ƒºÇÔwí¦¯OggSÀ[ÂsoS žø`2Nþÿ ûþÿÿýÿöüÿÿ øÿ ÷ïÿøÿÿ ÿûÿÿÿÿþÿÿþÿÿ ÿÿÿ ÿÿÿÿýúÿÿüÿÿÿ ¾¶ìµ7ÆÙlý×–±Neæl6: ¹ñÞ»3jdf%ªªªª,’TWÓÐJÊÉoåÿ)ùØÙÁXÑ`dÕ'ÂG®ÙÿZÛ£íAíp³¼6Þ²VËu;úó !q9rƒªˆbåªGÚµ³Ç1hj"öªûËhÌÓ4«•ƒ£lfæv{u2#ʉ ´,éÉ™ì) é~á Q›¶ˆ¢–©ÐK5¡C£6LQ΢<¶OO©EQ€r葉 ¯d+R:UaS¶XÿOë® Ë@PÛ¨û q!wМosAÄ49ç|#ÄaÙ1¦1º4†gÝŠ½á ›¡T›ÉQ‚D>¶tmN µ" eKߦ$ePAßxö {Ò¡ªªª¯ÖáNªŸiæßxPê7^«ßþ°5ŠW~üäš+OÕŽÛçõþú}¼¾­0ðóju¬ÎÛ´º+§cy¯‡y²¨E-ÎnG¬z3í:YtGòºUääBúó¾4å¸5÷xŒ•»¬cŠ4Íu*"&ï?Œ×vÏê›W‰ùšÁSÓ[7.Ê.Ç$å4û1øškr#„‘eÉ6ÈŠ¹¤7‹6©¤P^ª¨*OëªTyÁ’H’ÎÓ)ÓbŇHl¯º¶oWµîgà,¸$]ÛÀCÆ"lL:ƒÌ¢ Ûé$~ÙJLTçõÞÔ´‰ó` ~¶lu¬™ &}µñlÓ\­3=F÷vf£gƒ$TUUµ¦#‘I-¹ZÎþ,~{ç‹Ó=ùép×a5žæt­¯Tz°Õ{oRPß yÌÞUµm³ò2¦ºÖ($ÔëˆÊ!oÆ’Ë=T68ƒ¶¬ Å©)‘ôr2çÅqÜL}=÷ÓË‘V§i×B›¢M𙍠)Hfy€t )ÏP1í2§iqÆx×yÝ^0Ú.x5J¡BGFb‘¾,VÙÀg]¯Û·î×}™˜Ö‡~ZÊ¾ÃØîº®'gòí°©l|ŠÐæ3Á@n‘œÕZûZdfiàÊì̹*y8¾µÔbŒ„iDп–FOQÒ ‚h<;³‘™£«ªªZý ñ9Ò{8È]ÁóIóÁÁ£©çÏÖæ¼¦v_åÁíuÖÎüM[ªGǽĮÑ;}4‹vÑ­ÕE°Úݪ.OBzB1ºÀ¬qFÂÃ: ÔñDÄôÝŸ½§ÎQuå"¦›“‰á=@ AÂLQ¬Ê„¶ª¦ï›k†Êl21-D–Ö!"ã!¬iZµ:âX~-‘Šªª(R<·õ‚'¢©„°I’.÷7Œ;®35¿}Ý>·g\°i'pîCL--u 5ŽŒ`Pq6.ÈÑ­_?€RtH?­kCÒ^¶¬½g*Ð8¶4~ Ä%ÑxoàÊrtº‘™!³ªªªjñU1¯táqóß²ãð?ü´•ÙÞ¬^1úØõýí²Üÿ^=Vÿ¬Íǧv\Ò¦s¯ÕKÓŒäé–ªfríËq{¦ ×Ñ(ZÊt·£\J3–·f˜Æžr52™wëGˆÙqVbª)ò*AÖ’¸á\  “g:^3I6=ºÖdܽvȳœ*M +2X«@H2˜øBAé•n[ÓóOºf.ÿ^{ºêÐÔêöΑœ9œ^hèÜj–‚1iBÄçw+‡ÉÍñk¢äöPñÇíI•PèÛâòx‰lÌ>¾¶,Ëœ¬ °6ÎkKß×ÐÄ¢ÆGܘOÙ323j\%TUMvs¢æúÂ9›wL½íßß­ôjG ?Æ—_=¬øðÖÒ:yÙÎ>͇@¹a’TmN%ƒdë=Iû²~tÖ‹Õ³¾Ï1ÖËd¯ÙÙ@º²ªk툓žÕ•ÔË€|B=0ývQ RÆyKîvwÆLù¥7*j˜¦Ê¿arzuL^éÄ cKí×dÁÀ ç(ádF4Ý­ªªªîÜëC´>ð³}?I«qŒî6¬iÞ_º÷òÖÙpõÚÑ•¬`]‡ƒ6Ðëuz¡°¼–V”Z@zPAèhR Dʉ$Ê )*Çwõ€˜—³©‘–xÅ=@[¡Dí©4¥Þn³Gh¬hÆÛúÐÑÙ 3“Z\TQwÉÎâðóý—ré àešy¶dÿ] f•²®ª4RÅØ_¨¯½4¹Ïƒ;N×­øõLz;¬‹zÊi#×vƒÙH_Pà›D”â£fBxÜvÙ"ýÞ8gÙAÚ­îи³1i¾µd®'+f@ƒ†°¥w}HÁ„‹®àÔxF2ƒÚkQUUÕ‘¸÷0²Øqkñͯ÷þüt+íÊxuPvK蘄 Ê#——·þïOëÛxýJÓ) O»y¬vTD‚ y¨]¨F‹U‰Â4Ý:ÕâÙìñ\£Î^v^ß¶Â7‡ÅÍÔÓ6vÁˆ96M³Î¾>[ÇvŒyYùnáKûì<î3H, dM%Uq…’R”ᯕߒX;Šö‡ÛuÃîçžD6ÇÜ‚X0o–6J¨f€Æ.B» n'®äú¦,ÛÝNªÍdÔß~=„oÁåëÉÉØ~¶¬eŒ Â¥[Ðx¶Lqª(+È$Ñ8çžaOé :{æª*Rm¹÷Ó{Ë Íê{±{U1²rLV«³ç¥Ñ¡Åúñ¼áÆÍä{`Ö¹–LKãå •Œ¹5(eßáE}íW.ãX+Æq»mgQ¾ÌQgêŠÞmÊ®cÔ7Í@ $wýãf°|´êw¥Ðìd0‘„áÿÞþiÇ¥ëÏ@Þë&8h ?ÊlœtC¨“ l«A&Órqû™˜rݜɂÕ8¶Œ®GQzk_¤£±kÉü”TBéQÄšhœÙžÍÈN—$Šªªª_ë¿îüêªÅùëvó1^W8\²bX+ç+ÿ.oìÁzãËöJN§åæ,g¯¶^ȼ<õ™§+W8EÕØÆ«A»!»z®"‡¸(”ªWŒjÌê:uRÑ !…è¿Å?C‰5…žìöY_õM6°û¿Þ™fR•yò|r–¢2Y9o™¥pTRYƒ ;¿W;Œ0F&–#ÙŽ,Éi“*y±x5|ˆ$ž ÕK›í¦Ã‡¶ªº¶¸Ž•ÃàöL ª¸M¬a6õiñGäyQõ£/à¬!×°1={ØFëíž¶,ÓTæ%@Ó–±ÍEjl ë!h¼7ybŒF¡³I®ªªŠÄÄjUÕÙ–—Û›··GþöÊJ‹{¾ºøÛJNmýÚíËO¾ýÒS»:¯ÖµzqËcwôws¼îçdÎ!‹ªÆÈÔ®r4õfr&Î>ÓèퟭÎèæœF·PÈ:] 3{ZU“þaCCR­ÝíšÁîZ=ê&xNBB>Dä@Ô·7]0ÙÕÙž]Œßìò´ºDÈ{rOE„Ý99ÿ¤"T*•Þ6#õ'iWrŽzÃ9bS ´`SÀÕr»}»'©æ}sƒ:Øu7-tíÀ ¸®„`3¶4~NVD£ë 7–-Mœ¬ÐxKhìŒI§„„ªªZ Š2mÈë¥çåÎGÙõɃà^\Ùßqÿµ~á*nZ*)(&µZ»¿“^ßöê-qG‘\/U™Ñdbft¯ä$d>©p•Ž5¤šj̲«°çöµe³Ÿ¿‡Yi¨Ft3Ógð; ô‚ç~ózôLº`$V´€úñ»ÎèMz`Xàÿsœ¿Ãô!€@¶Ì +‘ާKož¾iBD6ðP|:†ÚJClŒBp dª‹Ðª¹›› ۇŬÉ[LkÜÀ ®árö´Zú¶Œ±¯$ÖÚ-›mÄFG —ç$4£ÁÃPUU5µ^Jsl¾ÜðÓüo•ʲvãö§;ö¼3P™ØãÉ_œH;;ö|42Lö:‹–ªÓ×C–Ò)ç¥rP$š²J÷êBI?¾*:Gˆäùµ6¯ &“8©R24ÓqÏbò„xPÑ]dp¨°Ÿ‡®ÜþEE3T&éï§sÕ›’¹ÐL>Ö·1†3Që:ç¼½ÖöKÍ#ó7…+ÒOjÅú” Æ’ì•O{ ƒnÛ’qœ£:ÒÝá\,¼‡B‡XÔêìø¤š íʩÀB¨ªB£UÀ¬üN Ûfæ;F¶•Z Ó2Ãí>¶ô~Jr¢¡+87”-]YCˆ+#o ìÌžÔ4 VUUS×ÞXÃçšk:ž#·»Ï]õûeAxêУ¬³nŸŸOÓ”ƒeãäJ+žOÿááýÛ'Õ¤,’êPWA$f™6“CÊÙuåSeºª-zÔµsAeõ#Heg50i¹×0ItÒ”CÃD=˜ñMÃMá¹hžžJYÔ&ñ;Ã,mœ.õô§íÝ« {E•HªT1›¶°ÊOwiãÓý°Lö Î}Ç€z{²KB7î>ìY O¾Ä™%#EL»ƒ‘bÛ‚AµiÚn¡a¦çJ ˆ4;¶,uŠu¦h\[Æ>Ç:³4Þ v/I¥GÎŪªÚœ,Å4JÚ2™?»è~z0:üAú‘_¢Ó°ødضΒúá`iœðö£¹_9/tzG..W9Me§o¯—Ú*ûκY’Æ4c™O Î^7{Ú›Ã|Õ¨+NtC.†aØq6¡ªx'äCÞôáþ0 ™Ñ|lWe¡ô̤3*²Ðd(ǯqV›÷Ëmm«!k{GXv$dEȶAHD`+š’*‘ÈUW ©JERj¥iïÝg‘uÀ}ïØUÊ˨@/˜À-dmû'5;T@µ™Ñ!Á  ¬ NCB¤‰#‡OÃ,(ïõ¶tqLÈ&ÎaKíæØh¼3€Ý³gÉÂCUUU]«Çs•=ãŸ7÷ÞïYôýëw])ÕOZ½TO­+=~xöqsxÔrVj/êºSÝc¹“Üú1Õ™y}[]œ¨ˆSñQ¹îU#*Ó˜<•çÕΞÙg¹æÔ¾K0«qEѰ‡žQ1Ë1¸{¥Œšì2OÎý‘ǽ=‹†‰»!ÞA F•ÍBJ–M,Ù`•w‘JI²2Yï²›ã1nj`,ÑæT,ßµìäºÓ“!Ñh~˜>HU\l÷«8DÔÎ7MŠ­8kÒC’ÃÝèK|3º‡€Ä+÷ ßï]pÜ×{þµ4~@¾Ðøµde]@ ñìNGI7Ȫªª&Ø®ž äà Òþß{qzáÔ'ßzPñÿ†ÕGîà ? ëš·Ÿî—R_¿—œ }¿^ý¹××.W—þ¢æp1žT²Çê¢:fe·= ëP•/›E@V2㨰×ÑÍ8Ë`¢Z·;:g†bÄ’]OñìÙô»Û3d WçŠG¿?¦AæûÍvÞŽF5çÊ„»Ô%)Äãsõo ,Û’‚R_“6‘A«ÄþöÿvXçÂDŽs;eΦVËgÔ`Î8„3­ ŠBÐ`™Ð6h«âƒiQªC ŸŽ©Ç‘û-~¶ŒiŒt¢AAÜP¶ÔiMjD£\Œh|‹ Ø1ŒÞȤö¬ªªª&ÇxG´g¼ú¡Hÿô«öÇõ§þ[¿ÝùJ~]ôVÖ‹{VoÿÝ—»\ÖÍ´òhRæTg»¶n÷ÙÎ<Ö®ÑBKCcÏb¶ŒiJº®!m,[Æ8Å¡-z KÏÈì™Ù$TUUÕ°=T6;×¹åò§ãò|ùõÇŸ§´Hû¿ó²ªÆ/÷÷·?xáR?o§žúS›×{÷íôçÕ[s)AhiQñ¬ä’ÑDÓ¶‘Ý·3‹N ieÒÀjÕ©qÌF‚†‡iHÆ1=Ù@<3ISïRƒ‹gzz •ùÜë¦IœEËü‰4xDv¤R"M*©ðµDÒêòϘ-´®¯,GÒ&¿ð÷ÿzÔ­½ö^X˜#çÎÙªÄfÚ.0ÇUÏQÈ1ô|‡»s*¹ ëö½Ó¶²CÒ„md“Vpä¡ÌZMˆD¾¶,uŠ fƵe-=I°VV4hò ÁÀE¥×ªªªZTl&¦Ñüråá¶Â æÞÓåyk#¤frûÙ½=þÓÇÛ62µµWç4—º4ö欳¾™/o¯{Žú8¶‹f\r¯SÌäÌ˜Š«A‘Ø–2Ëê2–5ƒü(=^¿ê7ºÎ0Nd—þy¾‡E>ÓÙ«§Õ/÷9îsÈs™)jìls¤ôÞv­´j²GCQ•$oª’<{.NM¥ªägUU`l%±b¬@­Ø4{­›/¤ãˆô‘ÝFC’Í¡Z p¡R§Rw„¼Þli%C&p4~8dì9­Y:Ìö·öF黂ñ·Ç)I ÔrãÚÒ×¥1Á&w?@ŽÑ3“1:UU‘³ÒÅêò’î.6<¸ó½vÏ­ä¯þå`YWþxÐ?5úfwWÞ*î– —ÑùmQËÇþ ¥ÔsÖkæ¬ÕÕÒ¯ ›a¸8g߇éiÖ™ÛŠlCÏ0ѯ(&(1¯2—c3ÅÔ Kå«Õ§ÕPÅ4$“ª)-°¾h×ìꪹÃì)t{P»kë¹:Ù˜ãì]û²#T<~} TyÈ2UÕ&ñ¬…Ȭ2¶ÀŠBì×3¼_À€„]ü؉ĒG)#ZŽáp^ëÞBÛPܲ x6›nk|HFÒ×2?BÄ3~3jmž¶,ÓÜMä®EµamY§1©„qÉh|G5@î\cu;3t7TBU…4YU…lŒã÷ç†óbäR{•®,Nïºkpø¿®/ÏG¼ßÃÞ{Útiª:»NV<¶ë­¦aYîÁT¶_jX´äÄ‚2ì™TåÄuë¼"qTþ1bÑ$]½&Êœ—‘‡ºžÌmš¥{Ô˜ú©jÞø¬¢Ôpj«ûN‹ÅbýKeΫl@:C‡‰G[mm8‡ !Izµ¶ÿˆ®k| ÎQÏ#¾‚-Ãmcš®Õ«ã-®ì¢IÝÁ°>;o;p©£×—=¡}= U-6ZMh¯œ‹lÒ‚ {M>¶Œ±¤K§!>-}™bB°ª@ã’Ù=“ÎáPUUu-§­^\öC««›qÁp$Åíß½«ž¾ýMÚV¯¤ñÑ]’GëZú”ß뱿xÛœÝf90D)ƪÍ­®™\kÄNJ5­¬›B8D€É4eœji ²a¬LÝyëÄÔ$UÔšhÆoj¡+‹Zîª*“iòRUN;å,öÔÙ—åâ6 ³zëD¿Ù÷ì¼Çªw­J¥*©Ÿª*¬¾'ñ\¦g7êä¯4,È,Ÿû‚ h—­Ÿ±º.»Í‰!Òç0 nj#!³ViŽRgwÈÛ iø¦ _nج PVaíÕž¶tý‹…†´elK’z h¼%4…¶GƒŽ’9%TUU Ië‘X»—]ì*ÿ< ~úÝÕëÜ/µ“ÓNÇDןÎ^áöóRã¾~ϰ2oZër­‹ÁšŽsJÁº–9“ËY !j@w¡ŒˆšsŒ;¨Å9#«ï湹υ™ûÕd9¢©RKLÒêu(òÝ~³s ÝЦaSÈyZPDUøjƒBˆ0¨1=vß…‘±Œ,ËVl_ C(„½"!Û ®kN^îjpÿš%™Ñä‚gõ†K°%Ø=sëÌÍDð/Á•]hG‚74·1ÊÝÜçà b1V„JçJ6¸7êp÷c¶Ônt¤Am[ЏF.¦Ñ]5Îi±{ïQ&3³„ªªÚÒö-tý¦ÌC|çZZõ¥Äî”w&åƒ`qç×ûúxyã&Ö§Ú¬hY,Ží¼ðÚ^º8MögQÖ³÷Œ†ASfã%ÀÇz:; …_9çàjˆs8 Î%*×2·JÙ%*ë'úГÓ<¨þ5â°Ð}º®ë=Tª²áHkVIMô<«:ÕÀân¦½×Fl^À„–"Ôj±ØHض‰°ÊvŽ\…´²r%B€íÅÐN ÅõžäúÂÖXQÓ6.£ÝÍ„¨v!¢^Ûl¶syƒ®´i°Ò794'Ø£‘4>¶ÔqOjH!¯ECKÃØR–5ÃdVÑx ࢡ€Ì¤3 BUUUÇ@Ub_¹õ—¯–Ü(q*ŠVg­fUMŸG^¯Gû¿®Ý¸cû¤Ê‚ë§¿¾¼0Of- À‘Bu[嬈h’Y¾6Á@Žj‚’8ƒî¦jÏfÈj'žh†ªfûÁi¦CRk¥2ë9%ªà‚©¡> Uñbœ]“âÆ¤F#š0e”9O#Ç¶ÚØ£ k°Höé>:ΆÜ_ЗN6ºF•‡=áöU?@†eø£å¼šœ³Ùˆ˜Bía.ç~GtJSm4ÝÚØ âö.S}^¶œRIRf,ç0eËXæAŒ¦ñì(tv²ªªª•VœLÍ›öq¾Ì­Ê /^ðÑG†;<ÙµýeѶisûâ(·íçŽ.çeöŸ:óµ•9G±T¦ÊéU&^Å6ECsætq]W¡¹ö¥…¥³Ø¬pÛ_,ÌáÞî³>m-~´Í)‡C:`“ÞáMÓ™õ^‹š~Ôªš‚·ag–Ç冊kª­ŒÓ¯4/ÍjN5EdeÄyüPªJðìÅ<õãím3„;]£eE!à¬Ö®©1÷³¾½ºñÒ)7Ó˜šÌ+ZcjÒÚNt§N¿S(û4"µh¼¸:a`Pî㔞Æiú “Ù½¯ìûVŽ´&Ò¯¯µ×=ã•©Ús;e{/ç‘ø«IÚ*)‹4ß2M•µª(dÍ(TÉÄdY‚wHV,,+Å÷fö‘ÉܽACáîµSàõ™iÐq.좓3!¸£ ¹Ií'‰w®F:s1{ú ¨^ûo>Ð0vž¶LmŽlˆE]ŠÃš†´¥«KLg¡/ÐøQAb§e€j=; ªªªš¸{7jRÜÂbuwK:~˜ß›î9–“©õû?ÛËog¬gN:úOi˹tîŸzÜgÆŒ1ÆÔßýZ&e®ËQ—§¡5Mr+Nd5³âéÙýèĸ<íÌõãÜÓwYÌ™ä“eÚBïüú7Izçñ‚ÝDìÞªé%3…ÛxxâÉVÔô]K¦õëœDuë®jŒ\Ì_ÅÒ½rá-)ªM¬øƒøÑýC ƒÆÍDt,ž¼M'÷„æ¹1‡“šMÈCBâ×dƒkb&T£—È9–Ä¿4üÍoÿë`À²{š«Lé®qt?¾µ4²E@ŒUAk [j?Ç*“ˆ$m¼p2{Ò̪ªªŠÓK¡±–uÒ‹zþÛ_Þ¼ëç¥ÅÈÈÝ'ÎÇ®öÛ²}ñæP9èm¿'$RÉÚ±Tåž“)HelÅQf;£©¬ Ë䨧›ã†"ÎtP`èZ8ý­Ö½vͳ÷$UÌDÝg×ônºc¨@I°“˜îh{c_yQ$ê*€¡ß 5÷ÇÎ4Î]tô`}0vJT…e•âÙ!Ú‹  -)©/©Ê7^ב¢P\St¥‹~= X¹ -#LÞ8Ãöèš/TsQÔ•‡~sÛí¶gpBAZΦ‹¯{_38©^¶L¥A *Æh8[¦8Å a0Fã9%{f–ªªªŽhØÐ2F랆Üò¦jëîñx‚øòv|èËGêe}Ϧ³–¦Óg ÇÑõ`+ß‘>dµZKötÜz;xfçRá8{¾gï…3Ça„ÉtåjªfVSL­àä±§õžÓ¥Ž¡ªi7i D^€t=]IÖ43ûÍâŽãb`‚"’í½&•`pW.…1ĪBR©"ÚDäYUÀ’±ÁŽ„¬ÅHeºš†®9G§çøRu:òð­˜eá6AU5ä@WGœÒ`ÖF΂v@îC;ÀL÷Åù¢í7¬aŸ^¶ŒnŽ b{F49[ú:¶±¡gMîM`÷l$Ý äªªª6Æ·> ÛË¡÷‡Ãïç´9}X>V>¶Çª >y®ÔçzŸöÛº•œuw_oۮŬzÛcŸ}qÆi÷~ßçmà÷ÊYÚÝY# 8ÊH™™µdSs Y?.ºÙÍÜz^õ5žÑtÕÆUE ÖÉó2ÛY[ÓºÎS•Qšñxg_I¶?ZœzaUzG¢GMß×-, öŽáV ×—âünî€ΛÔ]È?®FDÌì€n^\oh¦c@Ç–%C½r¶4~ubb_KzFUh¼û€‘QO:+Áªªªöl®‘ ‘mÆ3{äÓiÙúÓ`µqÙ‡>Rá¬Çýç¯çqüX¨þãn;ÛežõÅbT5 ÚŠ˜›ÆE³"CIžØUŒ³±Ý1z£]#ÕÛÞ4s½Ç±»«&‹^šªufW™Lw¯”gÈé·°–klvEÙÏLVRŽH·MŸÐ³PŒ²ëTañ¥¯ä±°0m†wu!²X-Ëé\¹Àñ3´»=±@Ž­…±=sþˆM J¨3›¸c¶ƒ1@É¡c6(.Ú˜WBîj+¢Ã› Ôt‚3;TÁ?þµ4mŒuDMí™sØR»)Â…Ùôh2§è¹lÝéì#TUU5JÈ #k§Íaع¶6oaøjn‰èö¶?ÞøíËy{úôæ¾WÒT®-e^S/=CÓí¦ Ïp*IÈœ´“baFK´Iš.Ë¢W^÷QTUV6²%qIhð¡Žå·LºÒ k0ôë𞷿Óïè·ç62nç&;Œ=¥´» q¹Îµ ätËb{-žÏK1’Ùýdr0í«ÿ5^¶ôeŽuâh,[ÆyÊFT7ÞUå$Ýéh4™CUUÕØÈ€Ú5Ôêg_߉—ñróž/£éwo>[«;}Ç&&eû+’é ZOµÀNßU/É !IA#'ðE2W¶Ôq‰íD¡öÍ"7Œ-EZ“M!Á4>E€± eTȦªªªqcØŒ ì#5}p_¾¼Ø©J›à¸b®E}iz±¹·¥îE=…U¤Çî˜f³÷YŒ5xTQ‡ e{¤PÇ^ïõLë&¤f3B§‡rp¯f¨7õ°kÉ…c·©Ô ɺÞ.Üx<5AQâzª01Ó‰Ôµ'œŒ$ÝÖRÏLÓ5[ö±.N*¥Šd‘'UYF”Rñ¼ñíDäºØo¸ŸiÏv©Y"ú¥¢2œ­úÄáÔç€ ¨%ÐȆ3ó¹;æ Ç-‚qÝbß&2ç¾<ç´z ØQ~¶ŒiMôRÖ–©ÏɃh䕚Ìé¹Ñ³wºàª*¤z8Òxëß^ÛÏ‹Òj°šUEs]BÉoÖÑ^;/ÎÇ×[®y—Ó«ãc¼t鬮ë¯u2shîoç’ûÇèMGEHT/L@ÃqZARP ¢eu[\õ9uKS˜ŒÈ9ôŽŒ9ÇØóØ8!Yª$K›mõ¯ª¤Gíª¦ ´eüÌ«÷Õ=<$&k5ôn~•®êB3¹Y…¨$R·hðÝÁj§Êqô/Ý>ˆ;V“LG‰Ä ̪Θ•BØI&tó]j g‡c¬Ùj7µÓh¨öÛ‘húÎ^¶Œ}ÉØ,+¤ cKŸæ¤ÆÌÅrÆ{¦Ú½ÑÈÒ媪 Ù\iGiÞ=½½l wþ&‡¿HŽöÝ×Ï/6£¯\,íyö­t6ô\Ï}µLÛ³ÝW™9'u.³ÔÇnsÖÊUMb%1«?öÓbTJÌÊ›ÚbŽ\–3» vg_æÛä¥{*»«{¨(5 CÚ½ä¼_ÃÂÐk=Ç2·AÐ<›sìõ¸ëìÛ-©±(‰3kèò„˜ékW O–ˆ‘ùåúÆ®\µf½0…µlIïeIºvç¼- ãª+«dGwІ°1T¿Ð†mPýœ °9í}B ¾)°×|L&Mê$Ùý¶ô¾G*1W$h[š¸„N ¯ Ñxvσڨ%TUU V߇QXßùÁ‡ËÇééù3¿¸úÃè”°‚à ­ñiÿÈV­‚ÖÁÙº¾)yñeYêöêX©Þ غJÅ vsÊ#&bzVÔÕ©þ¹¨Ó² SŠÉl%Ù†QØf[z÷âí&6@Cfãô‘QJõ–?çÐÏ4)ëôðÓ5ô¨D7qœY9ÔGx"¥ ëÍÒ º«F÷­†^é~×lí)H9‹Ç„ªækÅËâ|`íú¼l=¾"®ø`k#6ÇN××P÷±9 GOœ7Àm W`»è;šp’3_:_C±cve'“~¶Lq ÊâÆ³e,sl±ceeDã=Å{Œ¨Ps¸ªªªV3^ŠJxå¯>ŸŽ—_½5úÍÞ||¸õ÷ߎ¹¿>ŸÅøßÞ겺x¾žÌvq?¯\9ë=‚óò¥0š5—W;«¹l{ä•Õ\ófëø©‰Î“Wׯ“nŸ³÷ÖÆÈöTÞ¨Á¬«_V„)Yȇ¦!K=MŬ*¨Á7™c`fœÛúݨü¬Á†\rÞ·{ý&UŠB7~„ÞÝ…0ùëºxU)'M·K¼Îi‹Ü5gÐN5LŠ+ʉÆ9üªödlƒn´/Û‰ƒÁM c™Ý|³áŒ: `.=Á•ýÂ/~¶ômOjÄ ­ ñli¦%y`Mî pížI÷”PUU›ÆŽATtRï×Vyú²YõÍ - ➎wO=ü/£á­m@ɳƒy;[ÍâJ]W«­ÝßcŒØ—þF®ÎÐoD¶54@R)Цì!†©)çã!„\:Œ³B€ší‚NGgu1ì4ÃP3sòx»›sŒ×ýs¾Íìá’<ÉP*¬8rz5zb€¤Y†aB䲘¶x EŠd;’çˆÕÌK8!^[æª ©õ}xjÇ ‘Ѹ"Ò1Å´!!ÏRyZ'±ìû€Ë´ÈV‘lu¹Ô(e>!£,„=çb:^¶ôiŠ,FÐX¶Œz*TÅÝ^÷‚:vfÏ,}¨Bªª›jxúû ‰˵ôm‘ŠÞM$¾¾Øñb?/Îk> l·uNsïZ¬¾²PÖG€'"œ¥€.- m*aè¡nE³3îòá‹I[æëç·s9q/èaX) Ó$L߆a†u¦èá9ïÈ£[ÓÐ4_*êT‘™H9Ãnw8ìJ=9{·uÎ]"Ÿó•”`+Àfy,K¨T4ëeÒ¦Iò³’ªè˜‚C!R¨ì‡ƒ ƒµý<í,Ö&*5}#jpl2Ò\v<‹L¤É‚6X*$ †E[ÁØÑ1>¶Œ~Œ "]²†´¡léâZÈb-VÐxFϤ³3ËUUU¢‰öÈ ²ÚŸ¿Åµ§¯Î©éðaÛqJ;ÎæéWFG\./®öœY[¦>gè Öh¼í¤{f'\UUÕîvqo5Ð¥ïtÃû¶·ròžäÒn#Ç}ï×ɸß<=K6­óàÄø|T*ý³~ì)ÏcåriqWaƳx™ÈØVH™T‡ädxô[NÚòÚ 2vb·ROý5ãÜ´wBu?3»Pša &Å‚Ò\ʞβÉFÓ½&•WU1dÞDu{ö,ý]%ÖST6½˜\úAÒ9\‚ ˆDºÛ¡¢Þ•Š^ö-éVÞÂc ^ÌÚH.Ëî†ÛñíxˆŠFvÌíä ™u[¼Õz­ ¡šsVF‘]8î¶“¶¿ƒ2jɶÔ~ A·Ζ>Í•Æî°²‚Æ{á¨9=£ÌÁUUUuî;²F˜û_¯_÷oŽÖNý)î±<ïy3zgGÖz]Înÿ˜ÛSÕeê%Õh9AS@MœmŸ³#ïsŸìÑÉ#ÁCUtWÝcej–›N1*™ Õ•: ìP‘l3d×í¸Tôxzf¡öŒEÿ+ú×PÔÍ0»Iš¨Y}j»²§y™óêSÒb‰Tš9Vãk](L¬ÿž<ŒÂd®ç,9ôƯÚcµÓs9H%žêw?³º:?»ÿø_Æ}îÅ÷/WýǽRM…‹½¸Œ¶»°ÒЯb­3H^X•t7ÐC<ÛiÃb2ÍSÎÕtU.ñµ»ºyº˜¢„–Š¡Ó0Ð9 š´_¬f¦àZ,Ó› çdgTWêWÍ3ì··ÎØŽt£™ÁK¡ç)²¨¯•”")E¨RMû«C%©x¨F‘ë!Ä«$Ýió•ÖΡVbDçBX¶óÚ(íjH¾ä ”B¶„acÖÂ1´ïƒ®QyÏs@…xãóJš2 ݶû¾µt¦GÂŒ@ã×Rš96˜AÀDã-@쌒Î2¡ªªªÔûÖzH³«Ûr’ŽôvýãËã?¥hpûʔޯߦ‡?øAë‹qO©õ_®ÎÌbe[ÝÞ¾]­Içt–T®&·0ÃE¬>Ðþ”½ó…ôîöÛ²Ô°U{‹Œ„åš:A˜äKÏTöãy5 ”iø_€S5yCv¦è°yÇ·™ókØóárÖ—f«Wå± OMR•’VSU¥¢³è}•ô¬Ý¯é­ åRxÏRRI¥þ©Å©ÇyõЮêLì5±dè]1³•Xò %%Û† lØÀ|Žè,@2CŠ HÀb›l‘3·^¶ôi % b¢ql)ëB É³ öS+ÙIwj4fUUU{–ÊÌÁ»§K›+Q·¾Ö{¿|=2Ùžý·k¿5³ß½xôîñóìRX/µñÇè—9VÌo2G}‚©•½.+ «hƒ™Ç¥˜¾‘Sݳ“&Ñ#•å\­½7ºF•¢D‡Lƒ®©@= ¿·³qbé°4§úçüøVU|nãRvùy¿s¿­kÌ“s¬Zì} YO¤Ûƒep 9ÅR÷ÈÎ.~@È$Û¹>(Õ/O[Ž\_×;õ\\‡ÌäŠkÕ ïа\sbtWQòVŠFb€›‚ûJxÈÚpÖ]P/´f¼Y. ¬ó:×f¶ôqŽ-¢,º 4~-›bŠ ý šÜŽvÏÌL‚¬J¨*¤BÆ¢ÖP–ÊïÉcopzìÁŵ¿Î_¦ŠKëoÏ{®SÆacóim?Ÿ)í²Þ–—˜æ$ÆNֹʮq‰X¤¹ýÐ0 âtUR¤sÂjÇY({Í êRÚšéé!Õ††¦¨- ¦ã¤échs²bš'$Û0Cf·uG½fÓ4]$AêÔÒ“‹àÍÀCÕVȸ_G’ª÷窤’g”<Ò©+iÁ=×1g ý†I¤=@` ²²L\s2*í‘M8ÓvŽi~d^°½íøþì¼uhB‹½ÝãC޶tqLr"!4|-¥Y¢±²‚Æ9O!íEtŽLUUUOߺì~`­üòã¼kéåjVˆ­XÝmzX'?HîLzô±G£ÉóäóœÕ@‘Ñ·`‡ý*÷‡BdâgEª§á$O…—ö¶âWë³÷W³ðhkì'f\ß5)Û—]‘¢$bêµD²H°hB¨Ç2CBC¶k˜Âˆ§„s,ïlíL‹H>¶ti N€‚¨al)ãÒq6‘0D“[àÉÉž jd¨ªªÚPüºáùñá"šœ÷wþôòûÏÞîûèˆ=ðèTe;ýàåG΂EªhQ è‹FjWd‰Æ& ’yQvR[”T&ÇÙžÖs3·»1™£•1Ñ“Šs÷ ° HË{cÔ®ÁYœ½ñ¼³O©Ê9Ûfn·¹Ì¡2‡õ>Vë„;ªttjŠãÈ?v2$ ¾ÔÊe±eI" 8³ZÐÊcð}Ú¤ ï݉å÷Eß×߸VŽ;UP×U Ór²n†ªËeÝv§­i°>Чü¡-h31ÓJ×›M<ÙAšU¶ôeLzBcÙRû¥.f!RšhrvÏN3zíbUUµv]•ñáŽ:ù‡õþÑk¿þëï¢[MÉ'Ô¹]Ûó«+,.ó£§/këqnÉÌx»öbëy.ª?ú#cï1µªæó¥Ot{¹ÁŒnˆ«Òå¥'E}0Þt¹_œ†‚N°Fðpe76‚É¡ÚJ߸ûΘcÚ¾ð0ÏÔ^×®þí±³ìöÃÐ=ž^‡ýZç¿Ë§—n¹öܻ͈þ¸v_Ÿm3g­Dc4«¦Ûºy¯2ÁÂ3¶ïPdùœ(ŽeØoc4I… jº(ïW56¬²ÚàÍߨ›î"×5[]ÓÀ9̧ï¬;™& “¡_—«wsý:‹|œ‡fiáo?\ÂHAH¿£#þµ! ²ð+~xø¬鎟Þiiu-J6îQ+§7çæ0FƒÅx‰5Š:Ì-Gv\âÃÍí(ä+(jÇ JRàH ^¶,¥ejn1n([º²D‘. h|"àHQ‘4z‰²t̪ªªj·=× YB¾=ÙßûÎiºö1ýûÿ·ÞrR-÷ç1V,×ïË¢Û,½jæb^/.çÕñác8O…Û,ŒÆÐ=ˆxÈÆä ç*b¹[ó$ÙIÓ§wÚ7½Ò¢\ÝU‚‘S¨K¡†öíìT5…ûóÜÎÌcÌ©š32æÛi~î·—b 15Ýä’Mò² b¿‘Šøû¢ª{F†5®ÃÐÎÚÄ·:NþÊ®ô©-J1©Yh³oÊÜ/¨É…£Þû1ä,ꨎ Á„Ç ëz<ó ìãúúíG:iÅÚ^¶,mL¦ÈìeAqÃÙ2¶¹• ñììIgf窪ª c_  ËâÎür®xg®_­°ò¯}~ü÷·Ò.ï©'ŸØ>NãÔ@«Í½ô ™¬¼ïýÚkÖ 3.éÍUS«‡®40x…&·É¼<5‹a›rh‹ŠÉä1ÇY¤âìÀC©E6ëVáÐV|S¾tm>¹Vá³eZýÅE«Ý•cÜ +¶Âó_ê÷ÚѺ/X/¼¥~›ÎúZ½X̪ʜcö.ÏÙåâ±—*Ç¡!XÉæ 2os<Ôx:ÈGÆ4fl³Ÿ¾éjYãîœ:5œ¾L®¬EvË©~·dŠJ¼+‡·³ j÷¦]5¹SW”<Þ÷óØŸÖ©ÓÞVãÉSbÔÕ€mÙÀ=àÊ 06¾éŒ|·[â‘lÉ!ü 0ƃ{¬¸í±s?–/^7u˜ÝœICc;2™;%À6"ŠÙIîç†#tšáÛwíiÞxÓò y/îK.ïŒ)ÍÞµfub ‡SãØR¦94h<{Ð=é>°ªªª±«k®°˜ž>ßÇ¿»½ù»Ëiäö­cÓRð¼¢ìØ}Åâ ý0æláB™Ó©qƸýµ.+fÓd ¥Ï»~ì¨q•³Ëžãš‘÷4, P40®J¬×Ûƒ£;ÌNj6 À°F†–çÉ^_F*Z\ò“D YyLUš)‹Rê2N~†“H4¨Ác[ò5©$å¹ZÏ?L[R먓Ø<8çj‹«OêHðfÃ{1Š˜¡ºjWc„KÚ›a[ä½3›çƒ »A`K4 ¦“˜"ß·@ÆtÃqÞµ4~ª8™ˆÐص~ A ‚¨ñ‘PtTØndö14TUUê8§•˜>·Ë¯—~_Mzá«a÷×a?ñ:Ý÷ÆÍǶëÇÇ;¾ÐZÊé£ôMÿ»Ïïs§ïg¥™£,ÚŠÞá,K+Q­™•`Þ[&írÙ„À̆Ás§¿ùH:1öT—Bä$sº;i(Åc†ÅTòª(03“}ÇC%[IìæuÎQßÏåJœ!ËÓ§¥˯­’"‰**’Þæ±I©ŠdI”jKU%ï¥r8Çbö6;9ùÑÞ®…ÿ2Q‚i¥+§ý«!à†L6ÇrÈô#<«‰ßeçQø87û@ ³F¶çBõHÒa¬6~¶Li‰U¢ÑõP›œ-]™cœMd¹Šð5™Ð óËÎΨ'݃y¨XUU]/ZÑÖÛÚcßáèãÿ ›–ÚÁáúÉM‘¿9H®ÛÉö;¹×ëwÛ®j–£Ç¬%s8^WÞ ³ÃìÇ—ºÕÁ’Ù ŠD’„ˆÜ­„É^\åä•:@­Yƒsp5½™édu¼JM30AÏ¿,µ:Ï6ÙI £æjFf1åíc`çUD‘X…ñÕØ²#À˜Œ©û£‰¤VU‡±´½–çjX‰˜p£@·Ú«A HdCP2Ž0<¬¡iMª/4\Z¦–n‡÷ž‰šL®î«³avZ^¶ôi Á b¦ñléÊŠAÄDãÝ ;3izપª&3¨Ôœ¼zñõ'ÜõùÕ+x=Öà׉¤Ö£^j/×)vÌÝù€uLó°vyêTi\á«:ø”'Z…Yìè¨ïŒ¨azð ]¬t% §ì\5Ї:¬@1ljN”k˜2QÓ¼„ݯÕ+¸H‘ÏíÃpL{ÜÆ)S®.ç2Çü5Æ>Fÿ²ßöĪImj–Jo#ª”p RðXù²W„°À?¿ŠYލ–[{އ_¡3“ÃÍa³•]P‘Ôm# ÒÙ†Q(uàÜÚ@¬Œ2*˜@ùCž¶,uŠh„…¥AÃÚÒ/KRg,¬ ñ­Z 1–6£Ng„;WUUåI æ:/¬éÞñÕáÎ_½1?reé`¨¹½}\»Ö¼Þ¿4Î8Óy¶ôi‰t¤QWÐP¶t~®²DkX@ã¼p‘ä=ÊL®XU…ÔÃÝ÷†wÚÜtžßÿ{–VÍjtšçœþ]êð©ïÉ£$×y=áZŽ>Ô~oÇÙÝÕ=ÊzÔÞ³Ú~1/ê*µgÌý~ŠKöa¨™‘gM¬Æª«‡‰¢¦ð»Tq¬îv›r¼“Œ)h†+»’ ˆ‚U }0M6PÏTeÓÀB%@¤‰’wФÜJÐ2™ £ƒcbþWÅï²÷qDìZÏÊ::²«û'3èPg¡÷–‡¡;¶½c¿ {óÜJ(ø`:¦Q߯¾8;Ž`B€~·¬j¹>ÃeÔ ³Ðv3¶Ôi Á aDcØRÖ5f2°€Æ32#:ir¨ªªYU5rlQ9<›i‹ùâôßì]vëâž3 ^½¹øúó<þhó×}´Iú/–ß³¼¬ç8Ãe–XSª0ªé8Ìžz€®!Ž»ØË †¦ DH˜~WµLýÛ¡†~^ÍNõUIÒe-ñ³M½äÔ€’î¼²T*å¹ †7Ï¢¨ºËiœ­Öƒ·´‡))¨¢.R•¢ò«*«U©Û0t&¬m%0Åÿ9ºúØÙ²±'˜µ ínÊÆÙtQzôÛáÁmÃY×ä„^• |“gÒÆAˆàj•l~¶,mìI0:€Æ³e*cŒ³éR1’6ÞŽ–žˆÎÒ9W…TÕš Î"³PÐÕ?³w6zw¬Þ½[úö£k¯˜ü_ݵTsoä!õôÿ UUTÝ™»=V¯Þêœ.ßD©…S€ Ý…+"@O÷8Úöe$Mußö9—~aSr»T—l ân·ŸÒëà©õG“&ƒzOfFY¢Ô¸–gñ;IDƒ•gU clŒ "x®e-«JÒ¯',Ù–üŠ;dŒ3«‹c¥À°PìDéÑ f?¦bmÓ­Ò[ˆ¸Ê9i4TEŽ´°— "^Ð-¸2›¾¶Œ} bÒõP×–®­… 2&¹‡Üxï»G=£$ÉPUUMw® !SBõêÈüÊg.4ìça-¾ŠÏ¾xÈÍÇFùp3õ µ™Î‚t…ëjÕ%Vï5÷%cÅ™×fê(.ÐJGO@ÓtVÉ vAÅQãtöfûÙN f`!ÕÙ¹ab”ÓK0†‘¯Îf?= £$;R¿œ·sŠCJÍAEðŒ ¨ Ìh^VÍa%R€*‰’ò±«DñK*)2FxACìX¬«Æà0 $î2ÇúÙ<Ú›ßqCÍš4: 1&8Õ ³•1˜óæÖ}¡d¶,<Ÿf!Ãho®+â9rÞ¶lÓ˜,X4¬-c’Bh£ñ‘©p3J&MçP UUuŽ4ªYÇ·íæ^nO\û«é¶©iõ¼qßšT_¼½/æS÷Þ>.<³÷âú¹¬ûÕ¯ËeY*È fÌÉó¬dš9xcRs¹Èûîfaj¢eHåG^r‚PÕ'›aLz¡¤‡v!HoÏk^r2Rt“ÞÜЍ¢›„T]ŠJŽu'뀽^$MMUÃ@Õ—~* òøµˆð\—oô«J ·¦' Ïe÷|¾Í€ïF7Ýìáx„/l!ÀÕµšgˆ‹¬Å;]’»X1Zh*¹ÞÍ©á,Ã3Ã&¦ùǡꖘpë|°ÌÍ‘X6¾µzŒ bÀ€Æ®%.{l#ÙggvšÎÞ«ªªjU§>¶®P*ê6gëåàØ7+nÿmòº×?þÊçûÊóâ‘³ß f6ež§Þ—ÂJÛã2ïçœÑVe"µ•Pβ@wÅ‘4Ì™tLѽ•xš‰=z/#»v.‚ñz5€$¤4ˆÇ‡’ýzï,"êUOÌ]y%6 ë:³^wf7æÐUIQY¾>“Ë6·-U£ª©,*­ ¼®,¨ QUÕ•#,°/aaËèÁØØpÙÕ´L¦”6–‡éÊgº.Ià¨3ÊÙ`0Ðf¥µ ³s ^#ƒ¯=—Ôp¾ÛÝ­v³¸éÎù§†­pl¸“0;×Je~¶ôeNšÄ¦®Ζ¾-ÅÐÉD·‚Æ3#¢KwpUUÕDwßs¥é[.¹G¾]1v:¾ÒkJ9öèâWçöy}yèýhíT\–g±èžj¯?¬›}ÌLuÕœõ6êiX_ôIa4¸ «;AqÎC˜¤XƒN50eºvj÷ýë –FV¼‡š,MÙ3oK‡ÆÃ×Éå~™?¤Ôãfêå:#Ûb¤-°ÀHs¼ë)%TE© .?«š$‰3dÒ©½›=RŒXÞ0~ŽìæÞ&7ë`„WÍÛN·sd"îì ;mfGv­Éä,DØç0gx?ã0'b€ÉëÜüeº~¶LeŒU"Ñ)hgËXÇgʪ‚Úxv‰’¦3쬪ªjj×*Ã0ªäxþ¡öJZáêÙa;ºILpx82±{«õ§/’ë¶ŒqŒTÆÐ8¶ôi ‚UQXk8;ê=Š2¡ªªj¸:ÁžºæƒiºÍ_îLßÞûô‘ñVúœð›Ãôø‘Ëç|%òöj;~ëZÎ7ë}ÁÖã~y{R¹Ø5^ÕµºãN5-¹B,ÍQçÓrö§­¿=ÏVFãõcœSç4ÉÙµNÒdy0Þ#*cZyET±ÏZÑÝÓLâ3ôÃËjóî'2—6&z¢iëi$ÔÅËè–…uû×ÊžHzS•ª ªEÿÕVjH¶$l‹¾b öÄCÎOV‘3BË„ú>Ó8žx¹ÿùÚ¥Ó€¾S :ý”fönßÖ‚5Ý[@ZQ]fÐÑ=>¶tuŒ)Â*÷ÍDãØÒŒs²`ÆÇâÉïY„=2ÊlŒ¢ªªªY;sÝz|ù~[‰^v¶6L..«$ç!?±Xk¿{tZ«ï÷¶9Üb`ýVëËSçý¼ðl&ÕÏ™sÄÃbÔì>ÍʘUsXÊÁIènÔÃUÄ­Ô ‰ZÌd£¨»z]¦QÕ5Ñ‹Y>O S=]l„¬Sʰçì©ÎW³{òW…ÉxeZÕªéì߇<Ÿs¤É?PyJDùB‘ !ô¿…## ‰e„úU!Áö.Ív‘=/Ù¡ü4jJ¼ÑÍ1›dn~\PbZ•ŠˆÉ"Î5ß „k³Ðnž8B˜ag°wô¢5gæ}†d =ž¶ŒeÄ$_ 1méÜRì4MîI`÷¨gf6UUUµ9e›Rɹí{wèåôo»î¿ØOìÊŽ¼^½v®û¿Ÿo–‹ã K¹kµ’ýúÚ.×½³ý2÷X÷ëѺYí3=ê µÊ1Ì@@ñ`uñ[=YµÜÎzö¡^ÓãvÛΆªÎ7&­`AÕ~N7t3ÇóŸmÈ›>¥j†Hªa¶»‹{…xŽ£E,@à’¢K`YÈGЬj‘À·‘áU.YؤFãKÁχũÈèÕµÉDRŒFøV˜+vC²“.Cm¬;{·„<Ô:¾ñ@]7¢¦¿¥ŠÃ¸º„àe¤gg ܶS^¶ô}LîÄ$*HÆ–².±%Ð8?Ò†Q#³wBUUÕÇ{#þžN/r|Çzè#{š ¦:uúÁ‹O?œGöë_¥¤oι}©¼Ô÷\\VÎË¢½÷î­®äéx°JbâUÀ2 MO÷ñNî˜©Š =›@߬ŕËÃ>'ƒ~<÷ÓLÏ쨬´jœÀäÐÍtñ’4•«a’¡F<ÍûÚv ñh4dƒÊ7‰H"0’ LÜc+€%Ù8–«&ÑsÙ{¹Vau.ß%òB—ý¾ÛµwØåg>˜FîœÙ@.‡æœÔáA‚ñ­©îÜmÀUâôÔs69-=Ï…¾¶LuA^AcÛ²Ô±!Ä´Ê 7Þ Fï™ÙƒC UUÕª *ÓÙt³›ýõõÀ›ÓoüaÇ´©b¯W=¨'î×¶sò«yžŸo½Ÿ2;ÎúŒ£öâ%×YŸ³ÕeÙ™'ÛÓËÄ$4#óîÜ”Åó‘MYœ'ä‚CåSk’³&)P“.bãÜ·qŠ¢b÷]HÐK÷Ë;“Ï^F9 ¿•"/줳0jcî2ëþñz—Ñ´Ëxh!ËX—ˆ[Ø’p,`0ŒD—VÍ« iÞ €a°ðî~Íå]£nÙ^p‘!FˆBÀX±wø"¨€m”¢€Ok8\PÄÍ: ½ízê›F¶3ñ~¶Œ±Wãl6fÊ–¦-I! w,jã-€=¢NÓ…$UUUÕ†å$¬â‡»W?<ì•Çj¯ü9ù§ôá¾ýɧ¹¢“iGýÓË<¿l¥ ˆÔ©tj¯çÐ~ÌÙoŽ\Q3šuí9,®ªß²ÏV PÜÙóΜ²µ;YYc[#æÕQoö f.ºí¥Quõz4á{˜„´`Wuñ5꞊©¬æûuÆëÞsÚóêìsÚtRA*«É²•jä-YT’ Ï×íP?ž%ìšoâ¾Ý`´5¡m.ë´¿"|hE©®C©+š‡9—‡-›M8î-q Ãf¤h@ bÛÖÙcþµ”q Å c+h2¶tuŒu!]gg/Ô,½WUUÕš¨.sïÇæÔfk³ëÖãWÖ«ìyõS§|¹MöÃ|«OïeÝ·w÷”Ý{YÏVZ²¯Áb”ÁÀ¬†yÆÎþª‰Æ4(Г8q˜vÔ«é:¤=ƾ+fí¬îòjš×P6í;ûÏ:ï‡~b¶te ʹ±léûãLYÔrãcÅìž™tâN¨"UÕÁW$ͺ§wsýÞëÖ¿žŠ[“+ œÊw¹™ª”/Æ;~8O>º4·Ü›Ñ¬ÛtÏÈÜík‚¹ž­Wu,và¢WÛ(©¡:3F»â¦!h²‡Œ:jL͉è·‡J-äÜvò0·ÎˆÊžò«¢MTO¥~Œ(OªÊ¤H:ÕúŠ^˯³Zzj–Ha4+.u©j¨XŠ5¼Ú Fñÿ22¾0Xú=2ä/w‡o-Q‡]î2É3h·56h̰‹‘ l‚0C$7Â)A;­€æè™Rv~¶ôemD#¬¬i<[ƸDÙi•.*4y&q4OE‰]¢¤ËsUUUV©ªî ~°ëº×zY.F|ò‰sÈ'“0ézàí›Göl³Òƒ¼è_ yË-­³šËhZ9eúØÎÖW8ÝÃÁÙxnN› §_ÔÉŠÉK­ó¢ž¤`ú19“öhvŸjÒ-o†kéBcFÓt÷=1öïsO{N£¦÷×Å9ý÷R‡CX¥¹µ’Áµ3>èNÏÅñÐ_Ñ‚þŽðv_MÌ£awR«/*C·6C@ærÞ;"?ƒyÛÀ'êØ$tÝ.£ùQAï.q䮿n{^¶ôeª(kH nr¶ô}ŽtÁ&i“{¡à8’ΤK)¡ªHUF5 ¨uUù1O~_ÿ]¤Åüð»ß}ÜÃu͵уãùÓxxü¹ø³Ó¯¯US»v}½ÛÌ1Û«÷ÝM¯ú2#ØÒô@,Æ“†ZÝP¤[à`kN¦ò„4PÃ: ôiÈ;³«‹áóîø"Ç1@HXÇÛÕ½þÐh £b¢4Y‰®(éZ¡fý½l.ë«[KD2 SU $Ò4õ#Ë á0Ĥ)¹¨¤IáÅݵU’wûÐsÅ–¬8SÌ;ŠC[Ši´–¢1-² %`ZØJÇVød×:_ix«Ä–§6 ¶”u… ¶ÒsØ’¥9th¸#P,ÚI'M'ÙUUUmz:5°ùq>Ûx}þêOð•*fVî«ã«¨÷¬[yõËC¶Z„²Eõ¾îª[ÿªÒºªy º{&l—š.€¢pˆ‹FËãi!èYj ŒûLB@ÐU œx3£5Ò,èäT·@ÂT­ÅJÂ3íU×Ûï䂬î\¨ÄÒ0¢Ÿå8¹H©4CRbt*’J¢RUMº…ª¨*ùp I l…mð¶âcaIh»ðŽ#øÙ kS Û§€kÈëµ³š^X±Žàðëy}â¶Io‘‚LˆË0\À“°#ýú+œþµÔfŒQ¢@DCÙÒ§1(:ˆÏÎÞ#:û¨ª*¡:$®ÚxíèI¿®Õz?$õ‹Š‘µOÛ ¥¶[Zã}¼àá#K‹³ÃqN}šw¿eŽ}Þ{žóF¬ë:êQg"g#{ÕÌ`cly3ÃkʱT"G®í=ؤ 1A£™É.ȤHEB]|’ÕS_M Ó¾²¨UÐP²Ii† —À^g<÷£†„Þ(jI² ñ²i¤P¥-.ŠŠ_ý¶$@¢­Þ*ÊoZ´Î¶k™C&˜„`VWÒ¢ZT¾LÈg\p€’Ãv>3}'» è |ÿÌ-¥(tÁÌîûHpA}ž¶Œm.M#Y‚†³elS‘J@]¢ñ¦SÀÎÝ÷\¶Ü=#šQÁ¡ªªj &!ef#È¡}ø/ëÝÄmêTO/µwn—ãÐm›hr½—kÕÉiæ1U39+ª]-ñÄ+V„Ê ˆI3ÅÊH @­®ŠµŠŒ* ͯpÞ*1³!­šê{Î̤¦»WqÌWJë^ÓxtÛ‹?¤&±¸Ìy'ÁúRcžœË¹øe¹ãVy{¯T¤¡l¡#^Bk!BíW¡¼û•ªïß MÔ 3šjÔ ´ÊÎ 0Üsv *‡hQÁ2Áœ×u4—`ê&£q™»ñ›Ü´”¹„9ž¶ôm‰6&\ gKW–B»=DŒ¤Mnm(Ø%5 1$©ªFù˜¡¸ ç†Xîup¬e…q+ ÝÖŸÀœžÿ1xVrZ Ï:9áêdJudÓ€À‚$œ‚l´÷%Ï•T*WÔýûž¨©ÃluSÐ1*›¢ÚWªrŸÈÖz–ÞÖ録º˜¤kwU$U)_¬ÓÒ53 sºcuÒ9»ìÞqö%¶YHªÍUSÕ–Vx­xMê#k I^믌œLˆ"_ •õQ„¢2ƒ|)5³BÞ7D6„‡ 1 6¡K,CE³ àA™ä•ªÇvèž¶LmŽqd“LÃÙÒ”=tÐ䞀‚Ý£¤3ÉÂUUUÛø±b’õ~W~7×ö.êgûÉëJ}ìõ?ûp‡Ú«óûÍÉr+yYÚ8×Û,·jöâ’»§3Ôd}Û—“,Jð§×¥X/eƒÕ;VÞüš¥€é8w[³ŽNg'ªÝ2ß÷—þ4ÑfÊ@ÔT20³#SuÏÈÊ+êZŠ`ŠY.ê3¬L¶Èž¦¯*DUHUôV²*Ä)P ëµ´(•¬VÕ-Ýö:]Ÿ52üËc}Gൌä绣ï\R<‡ûü‹·]3 ílzJ«P_9àQ$úõ(Û±#‡Ýú!i@uîÓÓ¹æƒ×ìºÒž¶ŒmA׳–Ó–±Ì¥íl£[ n¼[‹ã™™Ù9檪ªöþ°­Q2‡+‰'ç©WNëZÏÿÿæƒËWêúí÷y?û½÷ry<ݼ®kýzŸ=½ŠÖm‡ŽÚÍtÔqÕòg¹j$€f:óŸ©é‚L1ãΠãØÄ9*€&Ó  šeˆ¾èì®ø4œ¦q'Mí ë.%¹ýÖ}“—è ⬭o÷³8~Övè,€†”Н„pÍÙ‹ÅáÄmÿ½Ë©“ÑL¡âVbõc—Ék«ºÿ3ÔpîfqýÄ Ê¹îØ¯B»ÓBvÚÄ¡§12"US ‡"À C¾¶ŒuLrf@1’VÖ–®ÏI%f#÷$Ôö(™ÙÉÎUUH5¡y9B(ªKŒä¥•ô»Ã³Ø«Ÿìºw©T¿1ùXøø‹˜\ëç¹]¦·dP;M}¬YôvÚfgdÆÞb²Mæ‘AŸ,? ^j(†)î,o6ÃPYÍô̺€UvD tL—Èäv>~bžúXßkQgº(t£5“¡¥H*%Oª­§@é§hƒ öY–ýY˜®6ÈzíýÔD‚i¬›S†<»QÖu* ÃŽæí|cƒÛ9E‚”m»ß‚Ò§>\iÎÑøkŠ 4¶Ôq J Ó̆Ò–®Î¡˜Ò¡(Dã¹™¦3‹ªª2ëBÛö·¹ÕR¶9ÒÐ0ä~Kµ­¶U«ç¼}Í·<í?q—õ|^•ï´q Õ_±nßwNrzYöy–†€{N\0 /,¢¦0ëi[ ctÏÛ¬Sɼºv–ª¢Ýéľ°V”¼*™2”MÆ"ÒµNSÓÙU¡;‘e$$G€°Q Å8º- ²PJ‰ªÞŠ÷VÍŽêu]¿tlédÄNn3Íù«§&B(N®ý :ßv˜ßX$GY›¿n†x“îÖuXWhU8ìîÀ€KÚ•(ØäÏg*ž¶L©"È,œ×–¾­±E âÊL“{Ç£ÙHz‡ªªª:Ì%V‚RÚ¥ý³oz78ßóôðvµŸÍ•–O—T>ÑœÖîäy¿÷ZÚzÎÅœÍêcÅ^î>`‘å ZÀ02‰'@`ŠRWG©™nª™†ÞScößׯ8#¡Æ®=FŠaŠ™¾“‚L É;„—¬Ó+Éšˆð3œy‰x?uË>f•}úûìíc@ÈÀ+0ã¡Sa!a”þ?Áï ¼È3‘z•þ[îÓjñ½ÕHkH.á@÷‰b@‡õcS1£Ô#P-ƒ1ï„Ü®Da+ÔÞ,hÃ/jì |›§š>~¶Leî™p1¢1mË’Ì™†4Î1ßœÌÌ$ªªª¶“#©¬49ú×;éäx„݇V–TÚy^oß3:ò‘Ç•~t¶áh™º+£d™r¦”¥´CˆÇ¯­>VÅ%/Ý,€’¥æÊ{*ʬeY¡a&/)°ÐºÆÉÎÖ’e Ð0†hF,@{èCˆ€bô¼PÜ®¤ã¢ 8'«›áj³móà ¾›)„^õÛ°B’Ÿ ¢$ð BÆð'²PsÚOM;ö†÷gjûÍ=ÌÍ”¿ &Î{÷£àC8Ô0#„lÎÚ`sCC²Ûë5¨ÍE2LÞµôfŠU¤]êÆ–¦.Éô ñŒžI—αXUUÕà*‡‹öÚê´§á?në<ò¶•\¾ú« Õ U“Ѐ=ÙçÉç™Ò_=¦šUJÃùí­_J½îj Í"xBkìø®oA]qù؉¥¡S¼¼¬]zØÎµõÉú˜¯]»M¨ÞÁ1&X@“¾ô]Žqö[Ð… öGÆ9cVnO€1iˆ ;tûE©¶ÀÂU>¶ôeŠmÌ$/ š„-uœb‚™o‰¦hÌÌ'±ªªªïFs —tZÍËM·¿yð }ÏÿgÙÁc•Þn œÕ¿¼Z¯¿\.ÝÚÌù²^×Ç|Îyxae©§¦®†zXÏõ©7ÇyÈ­·Ö©]ë ¦Ûä—Öž¦[)uÝd H†IñBM™$éV<ƒºÁCNTìà¶z4Ê=ж˜ÝÏÐ=œQ­ždË; Íímûô—õDz4«½É>™4Ú”¤”zKj)¦»q?ôÕŒ *Tãõ²¾!€»s³T°Š d¨ÅH” {›¨šÝ7BÈ›}nÜ‚Tw3“Ô *ŠŸ\¡.H'ž¶Œ}MjâÂLãÙR÷µ¤± ˜¤O+ vc±{6Jv’PU¤ªŽŽ}Í’¿~–C¯ù<ñ`g2µ^^­ÅþíQ™¥ý”>ŸnÉà õÑÍ&•jt~3‡³´û;›G•Æi×y©¬ ¬±õ"k€F7±›Jáe¦Á¦¸:Ón³ÂŒjRöÆÎ"ÉTFÓƒ1ìÛØ•ñáLðSž,Èî!ª¡LLŒ¡Ÿê÷ÏÛmùºÍ˜2†Â[{_k±T)I‘êµòIöc·YO÷Lµ²‰Z Œ›«ž­Í½•x]whµëª»jÜT)öà0Sª™(vÃÄq€Òök»¬®Ð1‘¯¡PÄ~¶LeŽT jQãÚ2ö)6=4Þp´“%¥sU¤ª6TMöä””[‹ç‡Þ¡oF¶þ·ö-Nº«P}|çÚY­^è[¦Õ7efZÔ¼þ”ÓWªÁ¢I,‚‚$QÎ’²á– nd5ζέó< RƯ6N‚$®ý%w_/ÓYP; ûjUˆþúsDZÎd_]DjïÄà°¢Hε¦B:y›N3µ˜£5lKÄ(•´ªÕ¨$+SÒh/THd²ý‘döÝ‘µ¤ÿIÙ93ÑH1†Þ н*¤µ8¢€›ÞŒMûr’MÂ×vGÉŽb¨^1…ÖQÂáª6¶4n N +&qã×Rø%ê‚EÀ@Ú䟜’FF!©ªªjl “‘»¦¯×wÑ™[¡ßåö„ «ÿF'nÔ8-Áb}gÍþ]—-×/ÚþŽ­wåe=$P zX{š¦nqöG¹\r=à‰«5Ñ,:³z ’Y£ÿ¨¹Ê<…G2fÓ‘9ætÆ<Ó0–ù¾*.Òš:O×ÙQsÓ tubC$,'öÈj®’#ëÆ²YÿÐéN^”W¡ò«Þ>EÔàË©ÛÝöÐrÅ»ÛZÇ.guòììu¦4nGÆ4Oªt‘ ²hÔgï‹`ŒÁÂÜÅ–qÙ‡3cwq}¶ônŽ-bЭ h,[ê²$34ÞEvzÒY{¨ªªªUèG›—ç¥éDnþÛþ[j1Uñró„ýäÍ´|{k³½79ÕŠÕÒsÛÍÕêìÞ²“õÓV.cwv§f}“a¼2­¡‡îÃn²ëÈb²i¦©YfÔ5ýÐå'^iòÔ²›¹ê»ÜÐ$$«XÊ‘´Xd1Ù—È×…ªÚ`õQ(¤ŠçˆeáפÀ`ÀÜÙÂU¿fî­€=ú~Õœü×VãËCª×6Óçs膘ö†­˜²mShÕ€!Ï-#™avíàú¶3ò­µ9\ž¶,eAºZãÚ²ö9™¥Ó¯ ñì‘™¥Kb UU!AÄ-+ ¿Šò±¿ü4uÿ0ÌßìГ^´ÑGUá?®uç"=ب5—ÇfyÖ—=^û¯cW>vYoÎru϶«ÌRÅMMí–ŠŒ+;ãq¥UU΢¨öTj†3 !ç­©s´Ÿ¦¡f÷¦©d}ɬLò©»s¬â?óëW5í£êPŒö¦ßçå!³¡ã)Á¨›ÖÜ;ƒµ]II¼S•Â0î½6X]˜”ïoçPì#/c‰G²1çîó÷Èu[ ¸,dqÎÒ¡G£Þ`£yÛH!»6íL3¨¡ÕR V²ÑƒFç„3^¶Œi Î"ÐX¶Ôq‹@½˜i¼7P»7QÞUUUvõ\¾?V«ÿæ×7Nœ—ÿÿ5µähü÷#Ö©ÐK'SoìúèÞ‹û•³kïÞZ½ìÝÜsÔù¨óú1tFjdÖîÙlæ0Ÿ†M7Ñ.7Êö»ûÙlÃ1¥3M_ÃêȺÊn*·á«GlHŠIH5'Ô=@å±i”å*ô®3‘ºîWæ´wÞŽõ›Üí;ØNêú=I5B¥ò.k±„°.ü9Öã Í.~¯zãcƫĔsžÜÎåœéd¿º1è)ª0”ÛÎ! hã\Ûï‡O´íÜ$±¾ƒÌ!ì¶í ¾µnŒQ&õH¹qk)ôÙ„péV h<›ît”R4T•P%H8,Aàvùß×Ößç»î:{xz° 7tYÌùzÄeûx9zHr]jóäVzçe_uÓôW{ŽË°Ñï|>Ùd: ¼.öàpÛ;óyL³@hF3¦{:|™ÿ„{³­§‡f¡©+¨‚HÕ?»[þ UOÖK2™'.ò0”Ìþô¶z·•;_¾•3I`Ùz0(¥ Ë @¬€Œ± %JÉ×è¬TàÏ\Ø%ñ+¤°Í°¾cà›¼-âþ8lÈnÃP½LP6³á/ À @àqÙwœ[Fš?Ôsk†¼¶A]¶Œ¾Å*áBƒ†±eò­KÁ„ 4ž¥‘töa¨ªª¶´/—sz»ÜµytÿùEívýhøÃúC¼«m§WËúâ(­:Y=';¶õ¢æœc%˜š’®†4Qj¬¢ši×€j‰U.©ªðqc/n¾l¯m_ÖÕßêfD–ªŠ‡ie‰ÒtCN³H´zmM='¶_ÙÝÉ ÅfÖa¼Ä/$05ª^¨*ßJRX,b,–däÅž³ BT[y-õ«¤¢.¨¨Œ~°À1`$ñ6Šd#ohév”4ç@A]ÛAá}« h}xbÈî²ãy%Þ0XœÛš,ã _(JsE³anU¶ômŠuÄ*çfPT„†°¥ŽSP¦\¢‚Üxvf&Ýs¨ªªªJ—UWÇWòé[·’”ËÁðÖÉ?¶ÃÁÕ?WÞuvt°‡MßþuúÅh±•d{qòÐ^?³].¸ËÐFxL˜½Žº‰C­jÕ÷Ð0×ô†ý2aBÍñÐÙ*&O4LO6õ*µ†Ìh†uÐ 4gB–‚µ¯Ì‘-RTD÷ªªáÎØÉuù½¯‚JRS˜5+²,Á €e Uy®¥p¥ETHH«‚;uìv$z½ëíÔÛÂìbXç‘d'þ‘½#±†:|Ië„räAû¸æÝ.£~}vßñ¦Èr,xEÔ*‚ž²ÀþµÔqŽ-ye@ã×R÷9£3V¡gœÆãªì^:]º!WUUM0ã©ÝdÄxùöŸØ?K(‡Ã[!J‚;=í&ýè·×Û¤Ÿ'ÚA›SÊÖ{g¯·]W»uʯìuå\.ÍŽ.OÍ )HÇQÕ:Á©Ãa¨YÏgÅ]€LÔ"û+gF<ž.ÙÃêQIiÖ¬j¨òn.s¸Š› ¤ÈN樌R^]³ð”û’„ ’´P¹2×$„Hoë.žÆnj÷{u.TÍg¹œ·ÊœsVPñÖ˜À™Æœtç ï[C@a§¡„ÎpúÂÆqΗìí¯¶tn NŒ^](Fc×’ù94&¬ A@ãÙ=tfK†ªªªi%‘‘‘¾Œ¼Ž¤>æƒóí¿ÜZzµÂgRßÏÅæòV…Sìýñ' ¼.6—œžSíz½Ïå¬xؽaoÛ†¬Ÿç M+¢€>ñ\9ZMIÑ-ÍžöÕbœÁ¾ËZ±ÚFͶ‡ækφÖ*W["Ïdw‚2z:±øê†¼¢&ˤ¡ÖZ³•.к»P¾D€@`„ :q (K¢IJ%©r`aŽ„‰Å’n‹Å·±VoѯgÏ&u›ÖŠÜV „5 ;šðfr iA!˜¿ ˜o쀙3a„—@³X˜³^¶LeN‚ÚAm8[ú:g,²‚ÜxvϤ£^SUU±Ž0Ü*£­Q~úúðö̲Gö¯µSj×ÖpƒÛO¾T*Ôo'¹X¾}ÖÎ{ºËUí|¹Ù­Ù¬·\бöÚ)‡É8«'QC`î8áĬ‚ÉÊöL;+EÞ.=™QWAÏÕEÎ G…ñͳõ9¬™Ëº“DÀ$IÂìš¾÷…¡ñ8ÈœÃï¯mEÑÙwÏ… Uy*ƨ,0ÂY`Kèç€Kà_+'ÉYWÙE#ƒ e¼™ú&Pæýa¶ÿP§Ú¥PªìݺÑKÂÚé èvÙXÝ»$„†‡úr5GC7ÌÐx÷Þµdr ä…5_Káç˜h¼žì5è,dQUU5M›­jjªç½7ÿ¶}ß_¯¾kÿíoêËn¸ã•ÿxºâÇS?9:t_ß9ŸK/ƒµÚã“«õé­eÌÞ[îcŽéÅ“j.ÕIMµ¢Üˆ•‡…ÀÜL÷ Ì3/Mwì8¥"#¿_Ú…``@¡§ŽY¨Fhºìââ®ÆµÙi;¦ºß‰'ó\ÍE1÷˜‰bý8…*µ,I Ù¾Aª”úyI½QQn%æéÛÝ“zCZ5¾;¹PrÝIJ1¸ ù”íP' eÓŽ‚6Qqæ-gÁ8¡H éU漚Ï2œœà^¶,¥'SbP5Á4¤-S›‹ 2h|$À[>ÝvÏ(¢;PBUUµæ#;Öª4G²³j w{ýx¶;ž_¿•¥ƒ?ãá—›»òê(û77Ö9 cî‡sfÖ—ê/ïgää~û>JòQËÅk¦³5¦ yFô…«œ$85ÀTáh©Ô$EÓ¯<'±™…E3P ‰7ê]²‚²þ¥h3Ï«‚©ÙÙI1ÙçÊ5Ó3Oè~'ÆLùU©u]ÂSR©æ’N%•wM¥RâÇ~ïaeqmSÕè—½\Õ³dø  ™žCç=ÏÁtó†. ´­m8$ÂŒ„8ÊȾ]‹eª!ÎA³*ue i-v”À‰:-ºpgÞµ4nŒ,ª. º–4-±%ÐäìÌBg‡ªªª O?²çUºÿÅ‹ßýéàvÏ?Å„¯DwTÙ®¸‡¡©Š¯Qºö·‚Åø`:[äú4ÖMžšñ³÷¶4qUb@n<[º¶&&YÐäÞ€£Qè(…`VUUU «7$‡^‰öõ¯?U«öìÅó=Ú[ÉÛ¿‹T¼uêüã÷ïßßæ _¿Ú§µ×Uí¼ÚãY·,ÒK!/. “Ns·#cqqÍ´Ìs@g0$Éd“qµF”ŸÉlrËiû¦P$Xf$D= ãuž¬ÙµnèëœÕ3;3›e¸+ûјgõ,÷¶’÷”:!æÊ¡þîÒ†xŒ/…Õ–S SÞ+hk¬„4K=ÑgZý÷¦0›©)@†a& Øê89ZtÓ"þÞM 1L6mEÙ@,—M˜íu…4y}l¶di˜L !˜Æ²¥hGÁdzBh¼%Ga÷(¢s0·UUUµ6m€ÅýÚ+—Ûå[ïغù™yçni{‚ûÖGw|&vq¹^ª/¥ÛðÜtw{_Ëb9N$ÛÎE§öž™dlF††¤kp xx$â1.‚e†H©Ü/¯‚°§Imõë§'Ò ÉI±¹:»‡"‡éÊß*VÒ9t³Î©û¬oïuÎü8#Ùû¬™æŽ®™õ)@È€)ŒT Y¶Åª©[ÖcÙ`•ªJQ•Á|Ùâ9./û„ ö¾ZRu¢DBÌtPQ”bë2zÜÛ:âàÜ\e+n†Ö(Ÿ¶. „£¯}Ò휘_B6é>¶Œ~Œ ÆÐx¶LuŠQÁCÄDã=ìž4Mw„Ä$‹—s£5#Ûx›6ìÚÉ k>ÖnŸ~ð|~0˜Ìi£ù½5%¯l]žeÅžëùºh®xmÏRÙ©3uŒÕ±‰Ý#Tê¬øøõœÙ¶xbw8{G3}@ Ag±@;sÉ qÖdÏL‰‡UM3Òwo­-lUŠ_A©;¢“ò-R&Qƒ)ÏÄYªml ^–ŒTJ5¥ð­Ø²$7…´²þ¨¦T$©Ô‡ˆ·g|)ÿïICÑ媩ݺÑÝH$Ç5™|Û£±‡£†}ÐAŽ p N‘Œ|š!ŠQgQ´•¸šv¶Œ­ß“3 ZhjCÙÒ´ù´Åæ!hòQN‡ãn—í_¿—£Î}¸•×t§éÌ UUUÍû]çp]q¸r‘.¥qõ~~þÝ—sskS¿^¾û|ß¿¦qÖçi1ÓW{õµí]ô¯ö¹œÕ`« b „1#gfc¦VçdäÕÐ ¥ª§ÿm[¿N’«- Ûôv·Óí&“ø4ÉŠ}õ×Õ•¥ ³æÖMWìFÅ•*ÍcÙÆ`´ ¡#;À— !ÙÖbI²¸mèbÞÆòá2ó®sÞ;*ͳPd;t 0I«&´r6ø…²c×£¦ÖÚ°©Fn…`Ø¢g”ÊÔ©d±*5n°"Õçðß³ÿTÔÚ«b3dHu Q—wÅ{§NËî©9•jÁ8uwœÊ¼ÃÄWfèV@“§CJ ªÕÖiß›æ ðÔt\ps•´žgZäW¡Àš¤Ì¸-‘2ÓŽÄѪ962%VmÒîM#æãI¼. upœsuÎ[á·-ü½ÓŒ0½Ý«îvh£˜ÝVSm!V{òÿÓ +ýã,á[1 ¤mÆ·c´#}mNŸ訖†Ô$Çd3P­Îè‰(]©Õ{Ú=ß/Šû¾µyyÆäÅplhlÚFµòËÇ<îŠWÀú6IkLò¨\°ýÛÇ<\~¿vXº&?ÈvQ­©VÊ¢ŒŒØY:ÍHy0DªªäÖv¼³ ÚZ&KQ ÒôÕ)7AŸ~¡+ µ¶™˜Ó iÉÔª*‡]F¦R±=¯’€&e˜…{€2 6¬‹¡Fmî{ÈY­æ4s=`Èl]­ãìW1 5LM 4@¾œUv6ìMÇëfÕZôlk.&aù¤ØK´$0 êö¬{ÙÕôM·ôë]G~·1€…Šî]$»co6€ýÚÂdñrâ†Õ±¶sAÂYk5ÂÄwH×±z½;wÍG§œa+7ms¹MsÍžGÙé-W¨Xºw¨³´é^åV y]Æú8Ñ{â&£¸@ëÞ*'³Ó¥‡ªªªå´u£E±©J¡3´Fœ„ R…ɰëUæ*Ó¢2 J Y®E…€Ú©Ø±z¦›ÊX³€`ÂB÷Â&ŸšÎƳÕÉìŒ3å$ÄPë04'Àsdä¶z»›%clûÕ—S5?–U$€X” "–`Îý;uuQìŽÝÿËWÏzWX¡ð/Cõ2®E( àŽ=`"²À’Þó,æ@-˜Ü}ˆ^¸¨„—*Çè¥Øg9“!Òp¾Wá(¡N÷½îq‡ Möª,ÿzÌÒëzBƒ1+£Œd «ªªªTMÀTÜ=2¤Ö´hÙ;>'ðæÃ5£ºJ Nid¢çmˆl£:-ŒTV%6x¡–Ôå *‹Õ& FE6)¦ƒ¶÷½)˜#àR?:·õvÛûu‘ —}½z•¨¡ÖÅ…U£‡ì*•?L{McÏþžiߟ=âÈ4woÿóÛzSA™Rö彯ûy'z x’„½Ý„]\\|UuÑ—å:ÞÊìÿdµ©n„%´xpÉZ n·}±æc!¾ A™(›.´Í]ù¾Wvû2]ŸVkÿµH\SÜ«Ò`z›Û°¸;T4Yp³= £‘eh8UUUeábÖ&@ÕFT)¬Žs§€)¶˜ñxšbk” "T…l¸TKXEåP)@'éç£\1@ 0*LBE¦¸²ÐeXmQU‡õå·¹ÞPÝ2œ‹Ô03 €sŠå+0´ç!Ë@SÔ0ǬݾufƆíÄn^ëæe (»ÆëÕXåÚ¡N¡p1§·?Û`dÙ—_—f ëÍ6½ûTQ6XˆlƒÈ&g‹Æ­ÎÁ. 8xû}á$$—ÔhMjl†1}6Z#@s(³›´iN8¾GÕA‘([¸Êㆺ–kDöªÂî’ä kzx\;Tr“7;‰õ,Ãà`UU…V5 @bÃΣԜ …£ÃïdétaöÙúû½*¥ tI©è*Wá¤m§í1FrØRÇ“¡2^å¥ìŠ©úïí×3…ó+ÔIzEP¤’B0ݵF´!ÁPoº €1TæÕÃ.Œ‰ˆñsñÿf¾½ž¡¶:«sTMËŒmK±äÀŒæ¨À€eG÷™î ê!þ!üš<¹- ÃÃd(€6ù1ðÓj¸Ó'Ö0ŸKß Æ×ÃÆ +¹ `;ŽPÖ)càžGÅýÝg ÓõwØU¹¦d¯Š¦o?![ô×u7™˜ùÚ&ÏHdD*½ÓepæP©ªíŸf–h·V›ñˆ‘è\t@ ‚ísΡ– ®PåI«w€YbƒJ‡l {‹ãÉöä솕³ñ~ânËj/Ù•*2i—3ÎÈ«')š^ßîJÐÔî9¦¨³üY‚2/ïsžæçå6ÁÀ嬾–HÝí¾:«C€°ôeÀÈŽänmeNÿÆkvkïqo'€‹‚?Ló!ã7Ťí¸cXÛ0:بÒ:ŽÚ[fÀ5›æ·æ²€dwª¼5p ¾W¥™öe¦¾±vÏWµ‘½*È,oñ¹N¶~ì…&Ãê½°"$ð0 0 #ê4#Å8TUU+Ö¬š(™VŠ)’ £:€x0°o&ƒ%ç@+êÎ Yæ$‰vF%Õ•P€vZ±×[/àŽžÈâÒY7‹ó¶7“,m•FÆh–¶ÁB.¤†šjO›*Uñ’„Ú@a @Úˆ*WvŸO\ëª1]ô¨œ;F&/œÇ¢="h¨-\yêb›Ô¹d_zô¸MHg÷}åRŰ+³’6åw}Šáœ[gΠL{v¤£¥<`PçÌ:=¸ éºHô–(!’ª$õw‰4jO„æ6ÀÊ ϶¡uÿ±FS û°ÅÀG2¨ ´¾ƒvø¢kF½Oc»8HQLF`ïgQË´BfãÀ[žG¹öÓéV\Ë3ô"ª1Ù«ÊlÿéqKX\× {’Ö‰È €9L¤ÞØt镇SUU•("0@Äæä‚9ÕP•z´WYåB@ÓLd(6hRH·ŒrÆœ¢êå#®d@æõ›’[A<K±myžý°¯ï¹p…R:¶ŠíoÁ4šýú3 º*̽:&¹o(Xg˜¤1 ª)c»{]¹8æØŒ¨úÔô×ã}ýº“é=U”¢ásq!Lýy³A¶‘¯¨gÎ!° oܱ'ì¦À{+ö¶3<°»l×n2dL‡6¶ÊÄ2;ï[W]`¨9²‘ÖmÊ}Ögr74twÇ À>WÅùvÑ«×r#×ëª0ß¹;aõzÝ ÑøB`£Ó¥37CUUÕh¬E¤d BÖ€ –(޵.!£H €Åfö#GÑ¿!mÓ›=Ú„@"#×5…ÓîYWDBÛ›]ó[ÆXÎr™dbR¿^è±aO²èªhL-MÏÁú©š ±N ÍsŠ*fª‡~硱™Ç;yíÿÖ_µ¤€i³ 9 #FAâ–À-dÙ6Vl€–H=/Zõ#3“iñ @–1WÕ3ÎoAªMŠ \øs¦¢Ê>‹´°L"m/”15¸Ðp. ×kuJ>fø>Ÿb7à ƒ7%†ê[®Ðj½ÛS#9ª›qnÊ Ì[ õÚ£†ã&+¦˜úØIoÌSUUU®ò HgO“APÀK’ô:§"g%H$%Ë9Ð(Ýí­ßm4G#„Š.¥2ëõ‹§  Ì@)˜Ï Åd¬«]svTRDˆžcÖ¶{÷1P@¯Œ9Z º}Õ¸Ö@2Ê(z¦†„dYsò“i«a`쑳>«Ö‡z§éžƒ„’ EýU%Ia"ï4ZÚ¶1 Ëò; àr× ts#û,&Ø´wµùº]Ú!6}%³š`w×ÌÒÑp™à5ß—ÔµS6¬»e¨7 ¾WÙöM3ôƒº<ÃGÈ^fç½M×× 5ƧG=én:UHUUŠ€ nÔÍ €5éÛF{ W X×ÂŒ$!„J…Ôˆc*Ä)ÀvFdï­W±àÕ4 Àq—™tºÜ¶…9÷ÜO«suï}¿77Ueê%“Q‘ Zu³¸k¢3Ù¨;M¥_»' ¾âÀ*3I2/»ÍãŸóm³­L%Á¬™-gÕvñ¦02`@HB~Œ@€½¯w¥‹Á蟴û¬•ŒÆ€MvìCâ`cPs(âZKë^lÓ »\¡ 7ÙÁ°Û8{A‰D 7Eƒý.Vè–§FM“¸)ŸŸïâ"–#M'ªŒ~n†ÈÈ€“Ù“QÔPUUmVר$Ä0$«¢a0Ý LËÔ ÁŠ) Ðl™ÞÜ (Ëc¸¨ÀXÆ@«TP‹uº ï«G¨èaÚjh¤í/ú‹ñ¢ùÆ e9‹Ø68)€†¢m†Êɵ•(‡Á™ÚוÀ@íÅÑcu²k#pòk·­"Ìǃ TøUöÊpÊ!å@€lYß ´ª±ØàH¸%˜mãà&C|+d„Û&¤­öƒ¼Ÿøuvp€T\²ƒ]ÂȪA,<~G¥Ùú¡§u¢¿Ã¢®Lî¨0;}ØÃŠe9¡ÑdÀô²G–%b \ùTUU¥,Êwât=mT°$¶£·b(A­¶:w Éò"ËÏG l !h „½Ê#{aÙÊ®ØøÚÙ4œsFÞkˆF§Ýµ'å¬@ïƒé5ÀHd–x¾WV»öƒ®ôž<-²{™0ê&uò¹~ u†ªÕöl]œðɳTJª‚â¤l!ž’ÓGцþ¢[ŽáC›ÙÍÁ‚rs‹M¤Ȫ@t%~×ÌDê¦L±Or¾€rg‡—ÓàΔÜQ¢áMbu`žGe™úÑ\Ë3ô¢Õ˜äQqf|‹Ç-…ëµCh²àA@ÜëÐF–²9UU¤J‘e0°–´Þ\Qr‰÷ƒÕ€ØþÖ ÞC"1éa@¦@r´ÀÔÿ:•BÅí’6€€5jiÕ*ŒQRæxFWQƒcì±çj#iž‰â `C‘‘ÔSLOpf¸§(2i»ÎŠ{aPc1"¯Ïoc×e´'xV[ ѡÃWºK`@`K±d¯–lɶ}'f€¡]¢h¼h–l€cÔ±§DͶٯ7éÛËz’%°§NC¤“̓SÔ¾W•aûxw½ÕµÞÎÔ÷ª,Ó¿bw½Åõ¸C-¢¸àa[ È êK–n­¡ŠTUrU B ª‰ö‰C ‹@h쉣#BÝ-c}óásûL°H€A&zÒ +¡êÄ诗¸i¤1Ðñ€€²òãU¤w’IPPk`ÝMÔ¯Pªgw7peÏ1l=?{rF#‹Ë¯fϲ€ žÐ3Wo%¡–)HÒ:BªŠª§ÔŽlÀÀ϶¬éÉ®Ægãlâ.UZ&3Åg½leX­™¹ öךOrÜJ¦?|oDMËÝÚ2Û×o8€žG•Ùö§Ü"Êý3ìAŒ&{T˜Y$Ë,П°¨Y0‡þPFf)D塪\U™EÀÈÎ4ÇcJ%AX2dª»šv)] Â-¥ªÀJC«®º+#ÔqH†²úq˜G¦S_(8§Ö«”’9^Üs§2“>ÈŒ©€L†T³®$Ý ¤¨7¯Niõžžö¢jlC PEÕÔ=v÷*kY@€ бë…F• PSbç4š3£kŽ£ïþ¡¼¬¾R¬ ¢{>¥m6¦5¥h­MÔ‹¥Q&=1×»¾1I+lmUŠÆí-‚»‰‚žGùöæ„Õ£{F\ Õó¨0·üô6Uo}Í𠨮˜Ã¢d/%‰@pUUU™"HHpK¢MU\eÛ™ÒLë¾ÝŻ׆Rñh±¶F¦UÜ[ULz˜ FF DÐW¹¬®Õ €ûŠ"R Q€–ªxuši,ƒ Lj›LõR ¨«ãÈÚ5`/4T¨†óÕ|||H9}ˆY*~£ÙªÉFòHm{–®5{@`@@ü&Ò¡ª’|-å!Œn‹xéJ⧪Ü­|ý ÜÅUlØí³c¬|¶ ïc¾±Ù…íh_l½@íº7†‚ã’]pfK0‡GEƒÓ%v×h¹ž££¦FäŽ sË#vוìºN³p±5MVFIwy媪Š(Ë2ˆœÒ2uÉ 5ž&¿©¦:T!…DNU=¬B¥8A݇ƒñ=ÇÊŒŠ8Í3«´µ¢SÅÅÀ^—‹ßì9{¯þWàô³.¨«€ *¬uÈÇí̬†lW?ò¾šòæ*¤("Ì2Æ:¿íŸ3y§P9ƒ+\uh:=}ªýòU A©ªzžR½ ûʳi_t}Ž=Ò@½Ï¯¨Ç–¸R‡Ý8L†íó~/tvDV1ú‚¯?¾ÌйNq7¤¶CL±å{ >WÅí+ZèŸým5†kJöª,7ýt9z¯úÈrÈ,À ¥,4]dª2¢`$EÁt@i’±³9 §³²Y¤š±÷ÀÀ°.ý£Å"WJ\H€A >“hè¨58ÉX`ïu8c,7 ·Êì[óÛÀÀzãÅô*ÔÁÊÀ_èváîM“鄼ÀµÞ!C¨¨X·~Z±&öØã=GgØSÝûÞ$Ll°Œ1F¨RQ}O‰1Æ!X:e¼…Îëäͤų/K¢]‡Ë˜Ýd,‚¼ììßÛ€ð³7»…r¤P,ƒ@—*}Ú]ÏÊ»œ¾WÅÁø–Ðëúoèk\ÅMöª(˜¿ñ„>t,'ÔìLÓ Ü˜AÉNg'xp¨ªB*…y "8'Z*]ˆ…¬è´mUÙ7 XܼøÛ…ý4n„P8­*ZE({:aQôgš³zÒÂiè…q- 7ÄŸ¾¶Ì$ý÷·ØŠæ•Æ’IªÂHýɉŽ;k`Ïd3&†D¤‰óç.ÄQçxsY/~üÜëÓ ´‰×%^‰j6Œð9™Ë‹gÅÂò…Žì’4°ôeÌó›@ Ä»:À ÕÙq{ó ·<‚iqyÏl8è.Áѱ¾G¥™QbM÷Ðé—þU µ“=*ÌÌkwå±Ã¿ X«Yð vÉY&£W»æºÜ<ã#Ë/ §ù¢/ ±<òk!Sy\uß.ùhJi D° ÌbÞy¾,]‹€"ÄØ­˜›ìsžwâàãÉÎAžGeùöóå–ÂUŸ¡6ê6îQEn”ЗéÂⱜQc2€Ó{¡³5§ªªª,£ €6—¦÷ÊÁÁq°®û|¤ê'%ª"ÙXq{RͰ“CÀ` &«®ú çìb{½žî!¡YÂHf óÛñ<À‹B4ÝJpv¸´zØI“Õ Y¯û»¶±—ËšåyVÅÙ&± r™´Fä™ëNÅI²ƒEeÊöfk­g(k™¬Ú ï€YŠI•^iáïý91¶,–ÜFÆ2`‘¥w#ÙV¥;p »éòÊ(¹O-ªœREçÚðULè,®¢¹ê íèiÍ¢Ž:M]è)H>ÂO'€žG™úÓ½Wÿ › 5&{UŽ_ÝC¯÷yÍP"š¬x°zdcd–ÎEªªRä)€  •CäœEðÍCæ3K¸Š"¹r$:À<æü[+RA!%Pà•¶˜,%Ì3ž2ÇâÊ `EŸ©YÅâju¾áð|Û(.)T8Eœêª5¬WÏP.h À”×¾bŽyŒ]™·ÕÇßoûÊfL„³®_)™Èk°dy H…ª¿BJAR_R}Å«$ƒdw~)ÅæÇ6“Ð:¨OØuy·‚±ƒIƒ†Òi¸ïŒdrk–m2Ú÷‘- ~G¥ùþm:‹¥{†zå&yT˜~µ‡^§»vøEÔ€¬xØI€€1z2†¼«ªªdY K®8ñ(’É„¸}M=¨R© —–ihÓù;¸©EÜ#¥G TQü< ÎPÕao¤vè?F9>6qØ“ƒô÷e¹|­: Ì"«§ŠìéaLá ×*†(»˜¼ï>*ÓÀì|{™A›]y¬‡ý³÷f`ÛýµŽ‡ýµºÅ!…ôµÁ¶-aÙQRPÅ“‚ dc]lxg`ÁgüDÀ4 ;¢ÔPFCmˆB|ÁE³«Ýv fE[  °ë¸‡>#H¾W•Ùú¡œP=úwøY!qMÉ^f§8ŽìZOøqPHn²àF2{fÇÌ!WUU¥ÊH,ˆáÆ{#Éx‡‰„5”BÆI5ØýTš@/!Ua¡«ªvšh§ÂTǢÓ,PÃ$ˆX0+)\³—0‹þ~ñûœ± ,ݬQPyÊ”µ4¿ `H±í _5@ðÈàD‹ÚÀÚáj[Ißõ öÍ4Ù UÝÂå!øÃMª qCù£ûàÿé¾´ÃZK ¡©*3°ÿ|p1XCËY»j6ÞVEƒåMKëX=º§‰“·*90~é¡k‹«ß逨ɋàFè2%“¹ªª*Á¹I‚–  ¬FŠI’S ~@ ýmê™ñ˜ŠBH$‚’\E¢±ƒ({‰¬ë `Õà˜(ø¨ª"u/ßòjÞì9gµoO…˜U UÉF-ºç–=móêex@€`zžÆÚžsôOgâå]è.fÔåAZh'Bà@ "wƒ–bƒ$›?BHd$î¶ýU”Ôð· €‘ôÅ €"@Öèº,`´À„=&.ËèÔS‚U2HmD”xªE©³³AÒ †5Ð,*`žG¥™þÕå–Âc9a%SSÌ£âÌôõ–²øXFè'¥M_àfZÙ3{˜5TUUUG1UD@ Ìd”>sid óï ×ã ƒ^J)!e(«®<Ü é`X—¶1€» P³”èÕµ- xG úë÷•ç(:q h¼@@³Àî«=íßwÏLLBW’\R¨É¤ŽÑäs}nÎû<')Ȩ€T´ôb#  i¿´Š…€Ø–I‘±$R)%¥ªžkq —°j²€ ò×< H4üÖhFql£œ!çUî&¼WP‚ºÀdGÛU€ µÔㇺ ÞW5Ù"Q»[ÊjíïðH®)é«êlÿ‰nº²Z–~IT#2€3™2Œì0V© AQ$*â£ØÄ©X4“EÅni5FDõ|t®Ž¼ ‰ô^1—"T¨À.ðÈ8^322&Ò良6™ WÊÞäœS¦jä¥ózÖ÷ûñ˜ëýþ¨ã6G;¼÷{ïÛÒØ'†Êfíªêv%PB(µ£¤ »¦3n¯ýËyƒH²éYâ)Gºå™zU•žˆ*Ÿòà©>A=ö÷ÝT™âz:®Xˆˆ‚Ä2fyü6g†.oG³Ù.ê†wØ­Å aØ®˜µ]eƒ;ÃaŒíŽwåòã]ž°Žl©O'–kLâ®äÀø6Óô3[»“¦@kòb‡ÎdÐ3‡¡ªªŠ›èÅ3J©šhuŒ=ÒD"f# æÊI-UiX"õ I )-âJa Z ˆšDÚ¶ ê"ÂvÕ t€F03 ”ðÎ:Ì05(# g¯3ѳb‚žFs{jÎmŒ38–¦Tqƒwu3îUêì}Þcq¹» P¨žú%‹ BÀ1J†ôý•eÝ`c"2L­*²¥¿¾Œk0;±2Ø@£X «HîÈ(á[9•`æuËÛtpC ðР[:`è¢@ö¾GeÙúת‡«¿ÃŸ¨1Ù«â\ÿê <\ý~A0j¼Z@YS{{62‡n F)˜¦ªª*2çKƒj …Ü8í£e%EA)A•1+P( ]-—XU©ÊX B>NÐa"´@-{ì±0g.7îRê4–Û®áía2†§rDnWQµ¯Æìß©6dƒy ÃPΘûj,†Ô@%”Rê™ÅËYŸX_V/a&4`ƒG9þ8y%ÆÆ¨|þ/DæO•-ÐÜû \Â3#`€[ªÆ¨S‡.w§c–~ Ó4 Ÿø°< ûôæ,åÞ´ÊZ¨@À~7ƒÓ»ÝêZߡΎ›ÜMÑàú­Û ½ëÚ¡M_HàÁ¬D÷žŒt8UUUH‹S9uÆÅƒ‘â=ñ1gkˆ{‹ * ‹[r²EÑ\²¯[½P)¤[MØP…XÃ[a ÔcONžžúf_¦×)€aȾÇ4]:ï{Ûjê¥RŒXâY^(£òH‡7c<Þøš§µ1ú5PœP[ÇoO Wª£aYe¤ÓõZ·B"I©üûX‘ª:Ú÷#ûKAÂâ]’ëÆ-Åœa%Æ®'ðkª]np¹°%•ÊUr¾Ýe“iÁpíhIÔ’f³ž75ù*¡7×—‡×u7Ÿ†¨1É£š|ÿis½‡×5›J+4y!€‡Y€z_:=T®„ªª0j³Î‚@ð¬B Õé´ƒ*ª  €kiK’U!EýdñKø—Z) êv Ôn—DH€ár ³N§oW lHŒ  vòŽÇJkìˆFôt €õ|¹»< ÝÝs¹WÛÝ ½.ÏJ6ÂÛúÅ_ý×ûÀfÊùXý~ Ž~q­iÆ’ébÜ[¸ŽŸü¦Êf?Ç–wê´ÆÚBÆmVGÌ–íý,@˜Z5˜ªñXõó1õ+£0¡ÐE˜ãœë*Š>ðîM;P¾WõAú¸»%õ®åj6’k„{UÔ;Ýt©w]'Ô¬+Dv ú: ¢2 ›UUUÅ®0‡ì‰S¥'Á×P+@‘|¤ý (n`eh†¤ŠÞ‘q±B¤p–%B€ð>GQßøæÙL#f’\bݵónÌ@P«tóR^êÒ3Cå$P‰1ψöíieq²8ÍûçzËk1`r¬wï[¾-ÙÈ+ÀÄUoUªòçJmŒÄT¥ªŠ+J ÕKûùXo _åkmWL•¡VMfÕB[©OÉ»uVÂŽŠyŸº†`ª²¿X | d_€KžGev»ËæúÖy-w¨V_S’GEÁ|çqK©Öë{q“ÛÀŒ²ÐeȃUUUE®õ5Fw2X!" @u qgW5q#$ÐÔÅñLJ7±Öé‘@ ŠÊ´Èõu €P©H•Å¥¸<í@ÝY¹¹¤ª€AݾÀ5¼Ÿ®Y™Ê!jº®L aŒû´˜ýÎã4GáŒ,ÚóÐÏû^œÃ4 vöâ㤌K£®0—ÐG¥¹zi ¬ýÛ$n2GE¹é#Nˆ¡Z–.+ˆ&/0‡íËA—æªj¨BÖ¯AñÙdj ´Š©¶Æk.±Ä³±u÷‘Q‘ÒK«"° ÂÀð«HOÀ 48[ÃjÐN¦­;˸…85=gš9fæe9Vm0T]Í×±½ ·r nG•µ¡kú7…( «0Êeñû¾íâdßç|ô3YO«ºƒ{c¯\ˆ§qÄ?¶†+Ü=I$ö¾§†E-.>ÏäÙ‹6?´Å. ">ù’ízÝYB¬'Ê™2Ø…ËÜÎæ6U ûà;D6ìêAÝžGÅÙþ‰ú¶èë;ì¢ÕˆìUifúún–´ºÖêA@ð…nf¥Ñ{†…«ªª†.¤ ˆ"@ ¾HIôVð(qëÿ*¼šP£-hR@‡ôpEÂøX 0 Ħì£éd±1cùÔ‡ï /`ïÅãõ=¡Ê/•†â`î|d¦JñˆàÕ4øjNfê…mNÎÆÞõþœÏo±ä¬Ïêœz3waÚ€¥ÕÿÅÀ€0÷¥ˆäJQJ5H¨-Û>ghݳ X[¨›Üg; )CþÜЪ¡ØB3W{°›†Û¬9´j•¢üÌöÖþVù¶É<ºQÉ[•ÌO8nM½Ïk*Õ”¼Àƒ]ÀfŠõA—!ÑäªªŠ°,gÓ Pªª ?b7½‘èQU¬Å¶X5eThã×½N.E±5H)Ì:¨ÄB±¨eÕ4€†#{ާú£´b` пºváÜö¾íÙÑߨ:eNTt9)²ÍÚ55 e`†±«ouqÛ€9丬?ä¬(NÚÛ¼Z™¹Ÿ›P.l dLhÝU””Чªƒ·H–‘—’­h#Òb´æD@²:ÇF›A¦nšNQ*da®Ëì&A àîéÒ²¾*)8|‡ÒÃn >G…¹öx t>úÛU õ5&qS27žz¡s]GVEMVÜl@öÞ³K4©ª*c¬ä@¶œ¹ý^£BF*Å,‹H­¹Ð)-óâ\O¯0¨•R+$PÂÈ*ˆ‰ 0TÚá2È<á<í%h˜e¢‚Y÷¶é0 àž²êmcgìLaˆAqx <ËLAB‘•”ñÎØSe¬Ÿ~¶oûb“É+¿ÁjÌöÚ<Yt 0Ö—…0)A¤¾¤RϰtÏõã´™ô“¡w ì¤MÏ žü ¬›F‚ ®À¡Úð 4{}{Ÿä†wQPf6>7Ńåòú-Ë-¸äºMæ¨`h¼û kÉêcˆƒuYð0 0 £7:cÈ­ªª*E€ˆHé,u«"¦ŸÄ ”Š1UD|ïš âEH‚’e¶ªÊ>ŒqŸóŇńÆ`€šžDsšÞì9Ïà`%Ñr˜5Ù5´ç}ñAa¼T{u©³…žÆâ›ªþ^Ô5òøök¼Ï’ Lr={Î@¡KnuýÀŒ¶ßò¸÷ñ둇ø,U$åß¶*8R²Ÿ¡ïæ“J¤»­´ÓÝw¦/–-äa®@7D`í¼ÚV&Ì8; hæÏ€ žGe¹ö•Ë-%»–j5%yT_~ܦÃú˜aÑds™É(X§ ©B*4Uõ1‡uFt¬{ö\j÷e;ƒè-·/PFèQôŠB‚Àv؉¯2ûÁ·I£\YÚ4-Œ/PIYä°Ø€g)C é—07tQul`­JŒ`¨5 éô˜7Yˆ;Oý9§ñÑ_ÃÜte¯ãýæBÂŒ‘úµªiK¢ZθÎÁ¸Ø«Êë°³ oµ.§HEH©A€`©51©ë× &0岉 ,`ð¨¼ør“l€G§b7@’€p8jÊñLlaaì¸ÙsÎÇõêã΄ — ×wÿê`d{ùW?¨UYª¤Tv;6 `ƒd_*ß㉂|—üûg!º¿ps™úÝìZó,„cp_6ÀÄ,-Œy} ,=q˜VmH—Í ‚o¨QȾWu™òu½Ë«{†:›ìUe¶ÿu¹®\>®>iÈ €‡ÙL¤ìKTºÌÁ¡ªªB¹&âMi² hF*o/ê`÷j& Óq§šü•ŸZÓÙª!…´8-…C¬–¦bŒ=昞jºDtP«òÉnïl-7 zâÛoRˆ¤Vû%jâ g’.dj>dš—:/l†:,Ú«ÛÛÈz;!¡(ûholådu @Æ—$ƒlé ¼ïîî\ÛB’‚ïXâë˜ð0´ˆƒîÐ4 'MÀlh]Èå޳m²ù)BF ü‘ Q ˆÆY4Í!gžGea{ûrKx¸Ö»ùt ÔˆìQi0}õqKxx½N„¨™ÀƒÀ%—dt™ªª*Dµì€(bFµÚ ‚"X¢z-A=×½úÍ0€ç­1—´Ò%d\DHq´¬4WNpÊŒPFFÓ´F°€ó)CCÅ™áSmCoTUkù0Œ½Ž‰‡rÓ@.{é©¡&ã!‘¸w©Ï#íåírû¸Ù ÔH –‡4ØÕi‚Od$Ì—m[öF/þ*ñÆs.¿#™¸6X8hŒ‚ÍwfŠXg?µ²Ï¤\l¬xÞÁw‹Å•YŠD:ŨÓžG¥ùö+õ…¥{Fˆ<*ÿbw]ê-× MVÌaZdOº¤6UCUUFPS¤æØ4ªÔGȻ۹œ͘¦ö¸îEKPª ˜TÕ‰«' ¯k ‚Õ"ðÍ Ï‹6èZßÌœQÐt1©njÈéÂfiª )jDÖ€‚¥ƒÀP÷ùhÎö±ëÄ„Azú^¾ô¨—![]‰ôÒû½˜‡ß¿^X ±ñME¤RU_SÊ8Í®×VõŠûøQÈ9>p¼Ô t-ذù `;ŠÃò¼gSåÇ­Â_Î œÃѸL— œíLë6“å 2žWÅÙ~÷¤…þjvDÉ^e–¯ßAéèO¨Ù„&£2›wê@œ1F2†D°ªªªï¯àX«ªÝæÄà°P¢Ð –HÔª¯ìŠ€À5(*E*H` ÀÈrp©«ª`.Æ´XF!¥œyìýìÒO³~ݵr·{»ßå¸Ú €‚yéRFŒ &½œ*´Ç¤o©3úëi÷æñáçfï=#ëz?Í\®áçósi0˜/,D½%Ã=âÿJ¤&öÎKr8ж‘íÃ6Pè"="ž1Û,8òz—J§Žvjmv‹mç\O^¡Á&·~7e¹ö§»×òŽÞ·H›ÜQe®ßY.«^j1j@^l73=“îÁªªª8ˆ(E|À³¦ À³ní›Î€Býö_¢zEÚRãAJ R[ž@C €fMÏâ(†0äž¶}î‹§§qŠdV(éž*6¤ÅROHUëdRTz @a=AÕˆQ‘OôHw¢ûÚª¨jæ©îÛ‹QóòZãçïYØ…° ÚK¸ÄyEÇþå n+X·‘¬/ƒ,°¬Ë:d$£g¢Nô´„‹Ø¼÷šIÀ‰(lŇ`»gÝ•"íà CBL\˜ˆò ˜u`¦kȽ©‡HÝB3 ¾W9ÿºtùì¿á“k@öª1Ÿ~²¹Z^~=Nø?𮏱5F–!ÏPUU¥È$TZ“/@å2*Ü€ä„!óOsEq´1’-Ô1I¯Tmlµ6€``†åPº|vKì¬è1÷ÞpÀ”ôhVG€,vN» Ðkv1ÕdƒsšdÊ$Ùi™{_=Í!Û1\êöÚ{Ëý²kNL™¤Î¾R¸c˹ì®k£ûaò´ƒ|É2’%,Y`?$@ñ›ÛR‚£ùÀPq&4hz¦†"&Ý"¾XÎÍÉÊØvÎÍ Mƒ ÁÐwÁÃÎÍÑ|ã € žG¥™þˆæX,ýê"­É«ÂÌ|“ëÇ}4Yp²/tI 2THU…DžJšxlبáÚŠ÷„ë=R‹ªJVà”ª¨ÅWÊØØ ˆ®¡@'`!…‹„F€§1êR†E9“3I1@xüôŽ¡ëÖZ#E MB>°t-…\Æ©¸&³Ë\M>5xª*æýëgÌYÐ%_~–³6e€"Á~ƒ…u˜<âÆÂbOF`=–-Üú}âó%$)**–xK²!X¬ÇXˆ©ÍX~ƒÃfç«+ôÇ;‡J»0GÙkf•¼3n+Žwmr$¾W¥¹ö™'ô¡º–wèëLÔ÷ª87~Úî:kÝa³i­¸àA`–¤tÙºH‘ª"²(ËÁO5€ H€†¤dC P"U‚R‚@̼ñ÷¤òoLJEJ ´EY‘ t5M°¬Ž 4½^ÀžÕÏx¿Lõ׋ڨë÷›ŠÁ„ •g±î†)5F®nÍœÐ!YÐR_=«C;€±Uyi±bÑ<$ú* Š·¿R’*(„,¾dÁ’m^¼šô¼Ý›?Ol ¯%ƒ! X}üˆ³¡ Öª¬w1 24tò>Ï–„Nt#8©58ϘžG™ñC˜µ{†%טäQifþÊfz•e‡­P3Yð ú-réQpuªª*’"« ’‹Ù ÕBÎ,‹5Ì¡VJ)¶Õ€Lc7}ca–âF‘B+€¦AÐ^$bý–HÛ†¶)ô>¾gtL‘0 à«Ãá,{߯¢l{ª¦”ŠÝtô7Xoue œväI&%ç߀ÁÃÓ,» f¢ªžuãäTé¼^‡|: Xøb…ÞBJÕ EßBšä8ëÂÿÙcÿçWEÀ!, 0®0ÍÁ¬BôÍ@ôZÈôð ýŒ Ýþpòi,OÙáB­À©kN Þgeaÿk‹`éŸá·c}I_‡ÓOë±^;ü4j Èd6)½Óe›UUUU¨ž@@eD|<Ƀ©ë`~z^zÖÅ„A¬Q9ÍÝ G)„Gª:L=W¯UmŽEÈÚ âh1ÌX‡Ý6Åû§'ä¡v‘ÖíBPTFiõ2€Ó†Ñ5[‡—7…Cí^Ó-­w-ÇÅ%jLâ¦ÄàôÝõ…~Ùíj@V<älŸX.™E›\UU¥("€ 8÷Üq­ "¢€d¹Z;‘¸„ -¶r*=Àh\>½/âOäBÕGA`¢À Ȩ€w‹È@‡APIL`u 2hr[ªz°ÓÉh) &HL­ë xg¶¤¥)€!áŽ=©Ú5ÚÊpwòØ8Ù&»m¯\†íˈ£Mü=7RëŽP‘÷¤„òá2¥f‚;¼×®‰Œm-±‚86-ííˆV”ì³qm¤–÷‡Àôxå£g`Δ4%~Gáôp\õz‡^¥ÆdŽÊgׇ×,¸®Û–&/ð° 0#3{’aªªªD ©¦*x(€He€‚eX‚i€äbtަ€Ü%êÜÃ]ŽTQ„”‚“pçekY° «¢ÈN íÎRg3泌!qæÌÒ5[ ª€w­š. h׿çõ0•uÑÞ™Itja!û}g†)p¯‹¥§†9"JÚe!Ûx¹¬D „,)B XþnC3ÇóàG3Ô0„] 0ä‡H4,º¿$uŸW&Ù—IŠvÌë–;;ƒG¶{ÈÍHk 42œ”8ÞFå†õO›¡+<úoz ­Vcl£rCãU'ÔÐé×&š®ø@„Sï0=K—שj¨ª²T%˜xz€é…×Ö’$&2„F%v±aìBÝn_— ª„åô^Ú‚^Ý™‚ÅyzzAó"a^‚9åbE5ö¬·¤@ÌÊà ¸ 5k³*ÎŽ‡ªÄÄÔÊ* àŒ9våmEÉ&;2û?^š‘MƒÁÔ,Ž`V*4—[D-—oª(*‰§Ê˯B"ƒ±x×™’e¦ÜÒ„@îpC3´œ rÓÀ`ËðU¬ÔÅIëììÑìÛ"¸ ¶­®k@ Íx ¨žG…™~§§µ{†Ý¦BÓ¼*‘]?· òrB/r“˜Ã=Éè†Á\UUµVN8º @¦È"@0j >c·‚.éj“{ëT¤5ÂdVŒ.«Æ@ev•S®Î¬ä"/Ê<$å8 ôÒ¯ “#²'ûµ¿æß-eâ~#v€*ÌTe ä}Y½` cWÆY ÷Kþü¸½žWÂÐE³õå ÃmÅ2²|ž:åÉY¶n}Ü1–oÜôál'Í®a&Èž Y~ N8HÍ9Ø óî¤3|, ®¡ôõÖWb@pžè>G%òýÍ =–þ¶¦¦$JdæŸî®êôÝ {·ÚdÀl(¹ÐŒJˆ„TE*2+ € `Zo˜«kQâVZïdV§ü$vBÑ A¤‘"ÍZ1âÚJ€¶~Öžv¿#Im0I…«:A’a‚š@È•õê€ %¢–]]ÑäÊÍš¦“lQÃÉ{û´9Çf8©ñzÿhê ½ØD6HG‹^³MR"M©4'€0 _<¿5U¤PU¼’lóT¤g¶*d(Äàb ZÔV†;²ݺY;vÀ~ÛfO·|6»PMžG•¹òЃtyuwXÔ”äUq®¿Y¡³zõ'l‘ÚdÀÉÆB—òpªª*9/§Ç‡ÅÀÄZ\ì³É)Ô˜ŒËž&’­Ê«cÁÎuw9\Se vÓ1 ѺŒAÙ>/ئePŒ¶²¹"å™sFvú!Bs&Oš ¨r€!ça}ïã+nG©­ Þg¥Ùöa†ÜV}}G¸¦®&}V”]~bw1-,;ú—"jDVF陉 fUUUY@[9åt ´æ£￳©ŸÐ€”R+“Ñ´aaÕƒ€ÔÓ*¦UIŠp œ(\¨ÝŽPÚÍQk‰³œçôï CßÊ9Ûw˜œäb”…  uJM×ð¨*¨Rdœ¥RáI 0‰vÐóð¨% Àò‚©V ÔöUµŽbBqI_„Ʀ ßò+ÛÆòEý4ïd¢9ÇŠ8 C²ÒÎàÌ´ yg„~u H Þs%Ú³Ù:‰` ½ðw¿9~G%òÓÅà±¼Ãn©1æQÉìòÖÇQ]ë MˆLT¹À¾@; ‡‘(=8$¶ªª*ÑõæŸè*Æ”T­rjyÐ ­÷‚… +iUål0J%=\Zl2”_€O5xÒÔEUP• Q’Ö¦%QŒ!É¢Žô{¼d;£FqÅŽÝrç-B…;~Ù0Âx¦À=0]ùxæ|Ëô 9ë™É®õþHóV¯ (Ó’##3ñl ƒS+½½:Bݶ±1`ŒåçoÖ¨¿R@6˜5ÃÜ nï"2+Bˆ q/Vu=_Ã÷³lª¥HéÏ›!ü :\vb´ŒÐ4c1 ¨žW…¹ñÛVèË곿Ãß—kLöª »ÿjº>­>ºêœ.6™À¶svFvÙ¬ªªRF™…"øF:‹ãZÿú•¤¸]' ªDh•0“£«L|܆1À4û'­!2 cHâ””•^l Px`/úSç^ïoEO'ñRnÔ€rŒÊóy˜˜ÔÛÐ5gÍB—þoWÃÙ N ™%Ì¥ãÐX?éüL=¡ôd @À—½¬B¢B~Œl™ õ'}à’žg`³3ÆAdnÝËg¶”HXGè#yŸ*lÓˆ4g£óµ.C(€` žG•™"Å+¬i±vÏè:3¥C5Â=ªÛß—[u^ëŽð*Fj“Û؀ї,ÝìSUUU¹ DиƒFn2(Ùè'%Å%z¡Áš 8îbëïéá¸#Sð‚D§èö4­OÊuú’åìO@¬-Hº}5Ô‡_9o•m˜È*`ßùŠ Hh -̨Ö+ d¯Ó $@eŽÌ2¯÷ç\Fõï—‡ßî—ÆiÐf ç½Á! FK7Ø¢ yŽØ’ K ›7@FÎÖ¯! õ¡Îlas¤H¸†6q& KæÝkr¦Í¹VŽ2›>m·¾k ^ƒ¾W•Ù*©ZXÒ"/Ïè.£¡Fd¯Ê²]R¬°†N½vض i“ s,ž†acFK„˜@DÎâûºÞéŒÚ¡w”®¾ÍÁÀ¼ÇõRŒâw†† ©¹P…þG •X)gôüîZ_Á $ájŸ™_ÈM À€¥Ç¶AF À–ä[-gHÌ„«¥Ø‹û ™u€K7ö °ñ _¤Aç¯ÛŒù‰÷ÁÛ†˜ÃFÌY1Ý ôkûCžWe™úf¦µq-ï°kµFd¯*2ý«'\eu];,¹É <ì`'Œ½ÐŒ a¨ªŠ$îdIP!”Yž (Šó‚SÉ€€7ÐzÚkh¨‘µãV_¹KZ”R"È.8©³ J·i*@@§prD œ§¨âÖʃť™Â ŸmiŸ4+¹uNè©i€n[göºË¨sÆÎêçÅ$˜¶'ÅrÿÎ+@P0˜5cÔåìÝ[¨J½þùµ¨ ßFqÏó˜1¶¿ÉBß#” À»O°™ÀøÁm‚1Æàêj$È ž>4s3€BáÓˆ°»q8€èÖ½^GEÙþ1'¬¸ú§%ª1©«¢Ütg½ÞÕO…Ã¢É €}FéŒRB²LUUUQŒ‘áELõ"h@ Öbí;8Š ˜„êŽä4îžÆ°É_²B`³“µ[Zͪ*:¾ e°«K—ñ°ÁhºÛ<º<‚VLISžgÏÞ3í eªþ&2 ÇM–›8=©.¯+k¯³RçPŠÈ~íõz€±Ê0„ñ¨ƒäÓZø""òmãô¦RI(ÕfÆ2èÍ‚V½¥“ŽÕ Ò¢í‚Ùgõ@“>ÊbeŽ) ¡†íaÚJ3 4%Û@^@0œž7ÅÙ.‘ÖF_ïGZHÞe&Iâ k`yìðÑdb˜xª ‰Læ°K›YÊhNUUUëgÖ£uŒ‚`wt6…^R$‰¨õ‰$W™ØD" \l› ÖWýd!†R£ Aƒ‰  ÀÚ¡,æ‚€3ʘ Ñ,)@M¨Z.¹<¹9Ô™~» °á>猧§UÅH²ÝÇý×ú ûL†±åÄKû}O3BWɇ€#+4V•RU_+Q"`û£lÐÛߨMQ2»oïÍþ`gúWhñ,­Ò®P‘8 9§„À™éGˆ0+UžXâ¶ÁiÞW•™&Ù»[[oížá§×Lú¬"3JÝõ©·ô'üv°Z2€SF§sX˜ƒRU¥ª$í¥¹î{Dpw¹à£ª(B„ÑÐŽV¨W1 2€#a%ÇH@ Ñ¡“¤³«ªªP›¡à©f!(ÛûÙ«bg^w9†„* e¤4EeTág’å.äl³y€¸`è*“BìªÇÐqŒ‚ÒF«Ø—ÊF ~]® p ­¼61ZÃ~7¥¹öö–è¨wXNMî¦ ?ß9úk‡E“‰Ž¨Þ>•sØ…ÎAÓ­½„ª"UMòú£¨±@.âC£³‰ ‚ƒxí(mjY؃UÁê*uç8*¬Q¯ à,cÊi Ú˜•‘óìßëpŽ—û缟=ßng$õPȪA[³ÄIz„“”ßêC/©ŠÎ ÌqÉb”ûÿ›É t¶6WSS1ì:©«…„a…ƒ@–ùY©TE„ ¡ÀbŸ…MÓ ó†¼m0°5qpƒÀì±l?¢©ˆ‡ØdZËàÈÙ¡¡" ~7e¹þ÷–R]ë ÿâ1Mî¦47ýu¹¥Tëc†Z¢É €‡hœEŒÎ=Èʪªª"ÊJà¡d›aP  ~è·Y¼  9|Ä9Ó ˜8ì­îÍBéѪ LT­#z˜ ÀVÒÍ—°°h†R8O8 ª¬Å¡(P£é-£§ùÄ¿`$tQ÷â(•]·ù³ÓÓ^œÕv@kÑ@µOéM…ÊÜFúý”—#Ë’%$Œ¬ïÙçþô:Ã]¡»t¢â šè²-Üúa>ºàv .žì í(àú(˜;ãÄÀf¾Ge™QŠN÷˜¬ËÝ|šÄ5&{TÌ’Äm¥÷xìð h²àa6;”1è2 ;WUU)‹(PÌÕ¨ž5D!ƒ[˜4˜T*‘êE›)îÜÿØ tŠ*íáš>×NÖUöœêù Žª´c]O”•æeNÈó[3O)µpÎ@ö…}t›$ Hdž†ÎÍPÇÔOû°úõŒi×Ãêçù¶žgq¦112Û±JÎ}ÚЬؠ“ë×§„ªJ%µø{` ÅÆ%–¶bùýCóúÔµRhÀmæÆ„L–Ÿ`†¸GyZ\õy)¸ê=gè̘¡s`² Í1ë.[q ÞW•™&¡6×®þjC’kLöª83ÿõ˜.Ñ_3ÔÔ€LàA$`‡RšîÆUUQÄÕ¸Ý2•=€¨€%ÝœK$Aµš§­– xùŸyåʯt´6B#i°£X–Ø\;—U8ÒS5̨&ã.:£À<€‰Ü³í@­ªD$¥–*†1AwÆ3¿‡fU(ú.…aÔ`îbñ6V~¾²7¨¡Œ–xjºæãw´`"ÙŒ!lì÷±– 8ü^Û– 2ZN&Æ¢§C}ô£E5xüˆÐ 0È2àhá{Kû2óäØÊ¤=>Ÿ~=uøÃ‚Ñ„/ƒÆÕžGe™ñGw}ëtý3Ô­FäŽ ²ë‡îz•e†EÈ €‡Y€#£Ìb UUUE”eP@- õq]<(E0«a•SA+Æ ÃeÇ\·¿:• PPx†'IŒv5—;4€î…²f5 ¨Ö ºé¡9³»ªgÀ¬+‹º:îYª tÕºå$ŽSÐ0RÇÎyhõ0 Ô•æ• U8úKU…¤fÄÂW+èʯ®ÎæÅî\t­þ¢V@Ì %¯¤ 0}æaÿëfºG ûÜÖŠã»ÝAp!³ &)±û†ŒÂ0+í#è¾WÕù"!-ô^^ËÝ,QkJöª,7þèF|x,³©T¤ÕW:{ÒÝ6«BHU!Êlv¥Ô LièÞ²[>B•úX”<2±CÓÓ±C: E[‹V6@ˆÀõµ ejÚ©Ì4ºã8ÉÈÊxÌEoµíå Ï;V€M€¢4\˽¾W&гìó—j Å){¢¨H`FŒ—ÞNº  u<í÷{¶êßV½¥ßDªH`? ŸJ$0è’ì;DB(I•TþÍŸ€¹•1¯%m½(陓­Àƒ3a¬k íèÑ"ßÍiœá+ð)¢Ã:>ÇNz'µ7ØïâZïW½Ã¦§5ƒߨV—€NY|®[ö$7¹nTêöˆ$dŠÍÈž™UHU•cO"  Á$?í¬6;†,ì¬íi‡˜HZ½­D¡Y´££HÖDzVC”5£Hâ˜(˜Ød¢®ÔȼôW÷Ç`DJ\±’ºIªœ¢Wè‘U@[1†Ç8Ôìì¸D*‰\½vþ^€n(ÔsqxÏh![ŠeÑü]’* [zâ¹ÊEÙRµé:o3kSž ‰îÄ6›ì—§·ÇÔ\›ªs©˜Û9F¡Îí± ”ñpSÚOggSÀ ÂsoSöTÿÿúþÿÿÿ ÿÿ ÿøÿÿ ÿýýÿÿÿÿÿÿÿüþÿ ÿ ýÿÿÿÿÿÿ ÿÿÿ ÿûöÿÿ ÿÿÿÿÿ^¶T­S;P$|t¹¡l©—GÁ¢ÙÐ8×ÓF,=;YC‚«ªªŒG6vŒÆ‰™Yr}A¼ÛI•k½Ö7šä5+ö*¬õNm;HÕbPW\ÊÎjÛ¯Q•ºíc5 @ÒÄY d%ñRƒå’¯ÕY2ÙU«Í@Ù€«Í®¬nŒ?Ãx–ÉìãžG:»ÀI}{T Þç]ör³ÄÅà™ˆž.†ÅÃõÐÙÙ)‰TžS©½n–M,#K¸çWÒÝFÀ°b¡)®í` Zº‡[f“ЛÀ\¶f%uòêÏ\mÇUh-\7÷[Çdg^GÄà]æ²¢ÎÔ¶„úÈØ Y§)RÏ–ÔmëxU·RVç’ÆÎÌŒ’«ªªªmr ¹<êïÓËñ¬¡#$:`“Ͻn¯Œ{À]ÔÙGkJŸE¸>g³ÝÚq¹u& 2Y8Uewx5fÚUÙ5Ó1Kj]´Îs†dÈN˜Çª (b²U©Ú¨ä\ÅTq²˜7åÔ)ꆩÔ~HerIs©þ|9uËhœ¬šæñ@“TUÔÔ5Ù ¬Ë‚Á¿¶rêÑ#ц«Ž+ãÂä6eÏåäÄc8‹vB?ÿ¢%‘~>îܪáE¨dß[ƒ[Èëbˆ¤u|UʆV<ö¼Ëz´­ AiMÖ£ž¶ °þµr-b¨iKï×d4X@ã-tg”ˆh†ªB ©ÔõéTM¿´rqz1•à דñ§\¡âÖbuì@íÆÖ?^”Úb¿°U±ëu0άÑûp}­ªëÅÃZÙ•7 Ðu-¦ÝŘ5 “ELá„‚ÇÍnŸöåô3÷>Õ^Ú0¿7gz7ë$Ï׫™‘L祥D£ÉiŠcþ#¶cs˜ÕˆCã*Ý­¬‚s¢ŒÀŽR–TªD…Ø©<0˜X4¿í•¥ Z±±¾sGGvqhÞwD?›z4'2 Ŧ² ëÕAh & ¼Ï¦5Œ€ Z×~¶¬uì9¤Ð8¶te ÎÐ8w,|CÚQI*]ˆ¡ªªê¶°þ7~d>_VcNS¬rüàÃõÖbªxz׃T]° ([95²øÌbieöåáZíøŠƒÊ¢•O æw˜P¢wÎD9µÐ˜ê-_îc*”f©ªh¢y¦²™ ³HŠÓd$«@=GW@áNÇ5…;ÕJÕ¼P, $©ÎûÃ䦞«Û|8àØ¯Õï™{WËð‚Œ… JJT¾|í…z¯J%•ªPéi¯ÂØÊ«-m ÑчŽÚþHÄTÍŽ lSp¿ºšsÑáÀ‡àVm%­#Šê‘zhdcµÐ@Yé6Ua%Òý~¶¬®ÕædÎKÒ álYÓX¸²ã!, ÉÝ…ÓíÌÌÌd檪ªv'¬få³;éÜòÃõÑÓíöÉ?‚·ŠîrýWHÞ>?þòáíEçr³O«ÇýÑó8ç]»¶§j!ÊìI€Ýꮼ_œƒéTÎÂ¥’gÙäô,Åö”O˜5š„q…©3ÜIDÄ™¤ÝYKgd˜¾'¥è¦3ÏUTWWsË$­»›÷bšWñ.³0Â~  ØB,&`o‘F€lY‘dUC$‰³šßÙŠ0œê´T>´¹ì¤C‹å–Õ ñ0Û™v=¬jMB•û£b”>obèã2sZSv±ø­ %½^¶ô±wŠ Ê–)MINLBïÁ»gÒ™e¨ªªª®YWªÐ½—¥èv2µ¡‹#½›eUöÚ—úø[‹Ô±œyt|Pg°äñâ½7ëõ±gÇîg¬Ç0²˜÷\‰±1¨È1 EÁ—2D%†N&‚ŠâJ¼²¶TîNÖìÃèÙp½´2µ o“qÌÛë4¼cήñ些É*.‰&¯^×bÔŒ`fòLOÖ<­e@ö‚  ¥>RŠ^•R¡b)Õ¾VP¤É;é°©µvmô"ÙºIOÍOsœ‡|:3gdޱ6]K±tبª° FNÄЊ¹kö¿nëé¼¥ ƒ{g7¯ŠÉx:Õyª[ÉØÙ~ë¼n÷N½©crÈòî·ý1κ¸—çÂ(£"§b+Ÿ8¡†q,µû$X’mÝÕY* •’Z’w›rã÷&þa4€„ñ yåóëæÎ¸þòîBîêD‚²9°¾*%81ìh£ lº Ý;†»:” Tƒ1–õ ^¶,¾EBŒ Ζµ¶äÊìÏ’=i:KQUU5vX5Ó‘=¸˜k-çæaÖ#Ô¿?ý†£'«ÓV?(ïž®ûços›zOß^PÙê5WÖ@R@` Pf™a,ª2ÎdÜïçÛõmî »E× P1¶éÝäñ$R'Vî#{Uß\z0¹¨!Ç4^Sµøó¬Ȥ©X•q‘a’ÀbL“ Â愈¨¼Ê¢ŠJyª¾í(°, Uªêõ#ݪ*¥Ñ¢¯½Î»±@9½jèAñϲP†Æv8¤ÕÉ„âSɬd7§Éª‚!D ãOÀdß²k"¿³rÝv1Fü…Ê!²à§~¶ŒqŽ  h8[–Ô T´BQ Óä^À處ÚCUUÕâ„k‹©‡÷ý•£à_ÞÚ|rø¡®êµe·ÚxëÁù©O·ç/_úïËvþÝÝo †qÕ¼åŒ=å¹­±Øs·™g/¢Cq“@f6]Å@…±IÈÛðÛ:i¿™è€5ÙþÐUI&ºù¥'» q2 ¥<¦Ã6eŠZ +›~“ÊÉ•©•µñª=c¦uÕ\úS’Gyþ´®¤è. +Š’R_RE‚X,Ù`cHÂÄæY{úi\mβnçÐ5ÝŽ‘ÈC0Eš4·üiŽP„Ä‚ggƒ &—1¡Ðš£¹s mšœµ*S ælt~¶¬©g@ƒ†´e­Sl‘ÝJï <Ùe£—à$TUUSY·ÖkY–dCýæyøJíIÿ?¶L±'`-ÐP¶Œi ‚AŸ–ŠqÁɤ£ì…YUUÕÒÔ·˜MZýìѼóªkW¸Ü{Úk_ÜŸ‹Ý%ž/åíGÇõ釔Ÿn|+v^jœSµMKßÕEs>ݵ²Äã<ë•Ó"›Ý™>ª\:ñ쨠lZßãô.÷œÎDE'J­ „ꪻ°—zñ@V’,{Joy»¯<6†l>À\O•zpjÌ'.¹ve™$2©Êd X8¶ð@P©§XÆ ÑìgÁ‘‘NÙÿ±4Õ‹Ò4î*wÉa[6áÖ­L8j+¶œLF9?„BkrθnÖÔ¡©Lz¤ÑTŽ~Ns˜a·Å (~¶¬} ŽÀÒ–½õ:Hä&Ïø½oÚ£gf ›¡ªªªš£aRÊ]])Õªõêôp¥7¸M8ø˜Ï o_òÀÅÞc½ÔSu_Zý+ïï«óÜ/õRÓa¾Û9³áÃ#ìqsìãF=äæy¾}®»ª\³‘:ðnçP{Ñ‹Éüª‰¨ÄçIuœa +oµ/uöaº½rój€$)Öªî-(¦&EÖ¹Ó©âI+ϲΛsvía1_j…_þ²’¤Mh3#d$àØf¤ÚÉwÿP¼Ýõ³¾kinå°£“¡*áCqq[|ʸ‚m“Ó7vsDv2Ô¿•¶a­¡k¯¶Z– þµt©'@ƒ†±¥+slcWÐøÌ®?»gDg7À±ªª*]H-󯾛ÏòÚÏà^½õ¿zóÄïïOª!Ÿ3•‹éŸ/¦µ{ð˜_]no»é¿ß³g]xï5ö^¯5¼B·ñ*“-†®Ì!#’C;·áÄLdVyeMékÃ7ZíÄÓHfMå,^²‹p¶¾*Q±xºãL¦êÂì)ÛÌãâµ>ûjq³xèyx‘Ó"ß1ÝÕD(êí½ªR…’±?ꉫŽBF¿Y‘ºg® ¦Ó2–‘ wÁ³[8¡ªÌ97I ÕpµÕS·«QŽÎ„Áºìz$=Z½aMH¨Í´NÂÕÁ)~¶¬©Á ƒ´1mÙãT äF·@n<»‘™Q’PUUU‰­>, KÈÙ‹§ùß]诫«Ýþd …õ˜Ô*/‚?'»Üý ÒB3¥RúóþBÕëëcY͘ÆjõïVGý5¯ÏgXGÄüÜ}2·àJÄx!NJªÚb2ñ¬8R›š¤à‚I°è3³ôŒVfæ¨If"šÉÉŒj^H2K0žª‰¹]%'sÓË;­ì@]˜65QÁR9Dªª.R©DºÅL®*¥*É» €Œ‘bðmãÆö_)JÕQߎܟ‘04Ë`¶ô tnÇÎ4E Áà GªÔÁ°Ÿi]P<’²ç~¶l~¬I" @ÃÙ²Ô19l sÿQb—L:£@ÈUUUËôÎëæÆe×Á|]µÛn¿bâ§Jî-©‡7_;îÇ.–¶†Ž<+ gÊfœî3Íëb–4‹ÅsDK{élp¥j×SåkçÉb ÆSœ7&N@Ù«TЧ¼f2@’£œ†îxš¡¶Þš@ *M—¦‡ªK*ß­Ý10MŸMÑá~=Ê!iÿÝ¡`Î ‰D"yLëŠÈ[¶bËãçòµîêÈsWÓ‡YËNN\e±#–”†uËZ^eÍdžŽÁ8àxGØ;ÐT îµÜÚ&äî bÒ°•*­¶£u¶ŒfÚ¼ˆr±‚Æ®¥6SPOΠˆ,ŠÑÈìtwUU!u$d¦¦V_}4宾é݇³¸möüõÅN]Nïûþë>ÖóÙý|Û×íSs¯‹1}ž¦™ùU³><ŒmN‰Éo;_šÙ)Ÿìn¯#pž¸„ãêiÝb’Le¯&Ód5òT[ÝŽ3L §•fµ—z­•'{›F3à›Š€t1í¦»}‡à ‹D²äH`ƒü/(R©Z,Xe"ˆ‹ô¡›Ÿ#Öy°öÐTï¬+ÕÉàz±Ý‘ÝÅX d;ZÄ´õ:ã:kªEf[æ‡h6M {‘·ÒZÍÆÖhë~¶LmJ^t¹álYú˜\0ˆ mòLÜM(Ø™™™ƒYBUUõj«ŒJsù¨)²°çÿïOÖ§ßVŸ®¾~/F¦r6TjÎe*)%×§³+—GYPý’r”@‡›*ÊÒBwlr:ÝŦËE÷Ý<= Š3ËT—=½¦ÚnÎÌd×Ô:$Ù«Êå“{Úº¥œ‘aÞb¤.Æ4Wö2*jÍÄ®xDŠL&ÎŽGDjÂ㬌H*/TQ!$¥xJ£² ’_!Ý’ñ±îzw+ÖJMô€1ð€lVþ6)Gµ>yÚ{øÒPjú¸0^‚Õ—ÄÀ©¾ -sq ƒw»có›‰ã®{Dr•-渒–þµt~‚@iã×Òø)¸@ãm€6£(wUUUÁî$É)åT¹ éï¿|XÜõ÷§¾Š´ê› ßuñóýÏÿ}i÷ýáõãvi+^qºÕ=¥¥¥'ÇõhÉ(‡žåôtf§#3xU—ÀuU®wõ$<¡¾(×C5jXê og•dÝ’¢©r'©ö«šläÚŠ­m?ü½X81mcÌY©E{YîéÔã”^Gïë¿ÞV=~ÿa””Ò›6QJ*È–0–¥ŸñöÄžòòÚï•ãÁÔ¨Á+¦]W‘³ÓÔA±ÊP½îi+Dq øËieS£ŠPh0¢aîÓw¤íÜãu üv~¶Liêt4`mFœÇ–)É• ñ줓¦;ÑUUU]«ª†˜Ë-üsx5¬|»”2vψ·†ö§ãç2^Ú?+ƒú0-Ö-jÎ>²“î¸Ö{·_,呜ÁÌd×áÒH öÓÒ¼lÿk¬©FÂoŽ™>xM*%º:œ„ž‚JÎÏ_bÝâ”ðÔJ¥zR„R}ÿM*óÜ»âH8‹Q3‹uöUìxõ&E—ÂŽCzÉ(â–“’ ÉÃÓa2&Sǰôú9ŸcyŸíNŽø¸Óêê…CÀt3Ѐ»®ì³i͵ã†`Øõv&d0.n·­†„dkÖ ¬L˦óXÁ¾¶ls-sA¢†|^[¶ÒK`Û*(†hro»d”9BfUUU]õ¥5ß'“×/ÓÇvðSï>Wßùz×)om}=PÖ¾ô÷`FÉÑ<_¿-úýþú|,jHS/K“/VSC×þg}î{»h9䨧™HdOAÛfH%²³cHçÓ ¸WB»k]MWà ¥Îfé6=b`š*=P§«n˜¤טYÛ~γîOoý»­™û¬®·è‹[Æ`+*ÇU~6$=¡ðm$Ù¡güO²žƒ˜ðyGÄ Ç¹›Ë»_ºi7 â!DiÊæ* FÛ±úšÖÖ!¼æÚvš‡8C·þŽÒ`’Ø`¨ë Wž¶¬½5› AÃÚ²Ô©DÅ ñžFϤ3G!TUUsW Æòu¾?oöÿû‘«¯½v¼6òÚk†:Uá´ëûϯü›Ûßo—½?—:¯y˜íU{9oËþkf, ;'r»–j7•—’ñ›¾HÏ6«Å‹;A†d–Î@!ÞtÛÔFã÷‘ªFåWZÝèaÁ(=ÍÑŠ¦WpíÍQaï¦ãS*ÁQ×€_ªœö'w"^¶tã˜, éùlÛ«‚^ÏΨSKvÎUU…Äሶ j[óµóæÆÏ>vÝè§+]we¸›aÚµò› œ[«P««PZ»¯®µÍy^?Ö¸°0’&26+C‚–péÉN 2ó麠!öhÓ֜喽ÏkƾÃy§˜¨+ç5zôÖº÷}çºÝ@ÒUC>áÛG ƒNÃPÅÆõµµ†¶ 3éÈ–˜Åx­4_k(‘LØ;j°ºQ ?·ºš=0­^¶,iJæD#­ IÙ2Åž,„F^ 7Þ‚#vff6ˆ¦ªªª:b6H¥%ù¿ä°S^ÿw©˜þôž{ÂloûfoýòmGš+Ôsk=×aWi“uïU·r§*#*,7/¹RŽèÌLö@W;¯åÀùÀd‹ –§¢5=V‚ ç&æ³ÏÎ2›y™4´nà\Îjþâê¢Á.g“†‘ì!'û\kÚ¼¢Û¶Ö«G>dŒ„·Q ªry§…92’Ú~gªoº]ÖÌïëC¼J õ:ÔˆuZ?œë í@¼î‚#¸I¥Z†Ø~“63tŠ>(CŽ€~õ$ê® †W>¶,¾A )ˆÆ–1ŽAšœe駪ªjbR‰W•[äžGÎŽ^ôý?/h©ïŸõ‹×:t³ºÙß_–V;}3Ùnoo{ô²|­~Ídq~µ]Ñk`»ÑRZw%Q&%‘æS qÒn ÚèA-4‚)5´OëþCRÜ+k2=CjèÚÄ,UE²ÒÌÀÐ cÏ›ÇòiõÅì×ÞsÖe®Oæïò@¬Sq¾L%RUÕ/ùª¢R­$é+O†«ÓG<>g@1’@’y°À¦6»íG qfá‡nÏœ™[Ôfä›Juùk!¸,=±(tö@Äü 1°iHQ'™s6idLüñÈÆPu9¾µtrŠtbcaËèÆdÎL,¢ÉÓ¶Àðv/Y2q«ªª‹ÞF™Cò2mŽVÏúçé|R÷Ý>¼ÍãøgïŸüT^sж™r*צš¹ZŒ—Û­®Æyê_ªÿz†²¼í1Š¡«Éë"¤I8ÊÙT{@{¬ç¯õ®SçuÞìRO«2Ö]”Çpo8²9I;!ssêÔbìŸÆ¼­=K7Y%Oî«@t±tÉ앞A:Èù*œ‚Àa×F:ÎAU«õJ hå’íFjÃîž<çåAWGÒ 5ñ§-6›Tkw¶†yËpÐì…p—íâ³¶{ÉÒ·>÷¼òʈ1”›½ô´êÓÃî¶ôi J@ψƳeiSÍL¤4žÝ3ÊžI¨ªª«ÞmåT©®`;\"Ø;ÿúŸñ›ô­ó}}Þæ{9›~ÏŽs[Û‹m^ó0;çûëî_s™¿øeïÓZṳ̈̄ +TÂ7ŒëT&5fiõîìÙ_ñÖÒÓLª˜„ª?t‡D<y²I§»2EÆéÉdÈÊO˜cr?(²ãDeeÄT®Ë3‹£˜*š„Ñ ±¨Â®Ï…IéFÈ`0~ˆ!„eïøƒ±õnªÿY4öÜô€J•í96§Ïä\T ¸>”ÖÆ !Ì• ì"’sȾm…0 +Ö¶LfÜPbzФké}‚E‰Æ9ÇÖ`Gš%)WUUOg§÷S‡×§ãƒ}#q³+^iÝc‡øì;·Îü¾×ûö|óØ˜­‰Ã|[O¿ï×Ó\ÎÜ炉s¸5 LNÆÖÚd,¾Ûƒ»“~§²‚IKþU³|/SÖL>Z­ýö#¦—Î Ô™Ê*ØÐŒ*Bœ?`23“ÖÏS¨·L7%U´*—îöYA]dÔÂÙŽ+$ÊsjU$¶„p ,/¡ ¬ ¢‰}ŽQwÙ´\Ïçf=Yr0]¨~ 4 80-_ à…›zØ&é6·ÙÙÕÖ!Ò5d[SÍ$7^¶ŒmJ®Dƒf’6„-]Z"@XhÓxvÒIS“™TUUµrXUÎ\+ïoÿrÿ3î\—Dÿ×;’ëßlnðló`3¾uûc[kõB¥œÇzïu¹\í‡óИ‰nkâ¹Ò8Âyqs‘¡»™NLçˆAˆÅdW¬caÂÁæçâ7‹yaÈÌöá|ý]£„Êy”d½u?9<œüò]/röPU¹½¬³d@›…IzT¸jQŒñ ‡a*y6Ê[ùð½bÓ±û¹*_tÄÙ½«6-€Mÿu"s}Ø$ô,¼-MÆRB4õ*V«×tILÙèGtÂÚù7"´M°wû¨Ëy@@\¶tqŒ ¦AAn [º4%h¼7¡hgFIgo†ªªª2ŸšÁîÑðµ¼Y‚óókÿ÷LJW¦Å[N~6x¯tüÃÛø÷|˜ï´¾Õ½?šÎÃBõ[ãS?¬&z21S;õ ÀfŸÌHíAÀîd:ž‰0ª­—-êHÿnµ3µbF¶úÎæh|BZŽÏVcòsUMÜÝÐ\UªñVÍ^¼ÈïMvÐâtTUÐ~QÑ*$­8Ä&®e)Uª¢j½Y²{baÙ‹d £ïṟX‚uŽæc§PÄk—Y€¦v"ekø,´˜?Mh¢ã8C"Zio×èEÕŽôJ>¶ôe‚,Ò&cKŸÆ  (ÐxkCÁåç™I—ÁLªªªªI‰ö,¹HÖç_º{¹ùåE_»ÇÕÓ£ÓR>I_Ú?i髽óÖùª\ö•óºØ^h*§2 žjM%™šôbÀÙ ¼”'é¢3¹¹§!™õ¦§C1ZE ùÌärxH(¯ož> f€y¯ìÄÇ@“¼™9fÅ>ã<$ó ,d¤©[òÛ}?×¼Ï=¶¦¦û¯9¦k¤ Øéëø’>!MDXW|USн™n2y|…7×ìuëw e¤ÜÛì^Íplålòb4oUTTñ‰ÍƒÚT ö^ìÉ@>Ó‚‚9‘–æÄ>¶ôiê™ „`qcÙ2Å1£² @ã½€™Q–R¸ªªjÍqâë*Fouiu}Ú]OKn—Ç¿gg*­Úäöc iûë°·Å7MßÔ2]س^N\¯ÆâÉ:Ñ«%3© ¦¤Õ)<9T®0urM›Ì®¢È›8zÉ|Š!©.×jº’k"©§WËN27ôô¡  ˆ+ž 3µ­È9Áe˜·Î&—ªþž`$"Y’‹TUIò\mE–$ÉDØV%O©×$U{¤gvÖ}³s¶èÔŽéT¤m3fÞònÃàoÊLeß™(¸>±Íf€H#‹¹ yºNf»iüR¥b)ÑJthA2|^¶Lm‚@èáÔX¶Lµ$L4ž=2Ù¡ªªjjø‘q-ÕÿxôίóAyø¯—«?½ñ[ùJOX<òX?/íëÁwÏÛ­oœ×;õ±âëâå//|·X½d‘½­ïŸ?V_ÉâœË_÷¾cf—]d͇%kWJÍgí…ÜÐïÌ.7ÙôÍ@ÇŸ3Ô˜ÇÞ)ulOQ…áÌihÈL`D´Od×/[²tñ8)·=j’zª*U*ˆRäÅjØ‘'²ÌcŒ"¡´ÓñÑŽgÅλ^OÙù ΂ÆQ0ºÕë;°e¸3 ÐWupavšb+tm€jÀØmÓ擜nô˜&CX…Z¾¶œjË C^ 4¤-kieæj"HÐx÷ÃYzfDg ªªªÎ!fWÁŒvÅÛÅC­œ¨ôòW>ŽÞàb‘¹òhåêoÓÖ#%Ù¦~”Xjcu‚4¥àF¯uñÞT{ëïvtN¡)—’iؘ掑 Šî¤Õ•ý4 2µ´Ó“¨((‡©|£6 ([³j×.KÎ÷üzšÉ¿¡êªŒ!‹Š) ^ÀZŽ:‰Ì‚]d„)ý§R…$•§ rnÃnµ>'±‘€r~ ¡Qû+†È¥½M£ôßÊ!Û²M‘mí¯Æt´SHê#Û;¹+ˆ‡a0S¦ªSƒ ¸ÐE`×=5Þ¶¬} J `$mX[¶Ò‚DMž^Ç®Ž`t:#z°]UUÕ¡®9`-”Ýídi»Þxÿsö½¾Û6ÞÙªµÇËoþ÷òùºnÿá’ÿú­þµúke]ÎÛâóâ[gî3Ÿgwô÷jÕi‘]_8Û)&-ÕÚ TB|dƪ0=Ï@ç†É©òª¤aІ`h8U{ÿ2˜ÒBÝqCP=4zªŠê1Xèoçôs’§Wkw´ûj/Â~®Ž|kí÷“õB›j’ôFÕk °°mQå¹RZúùvî|­?YõLS!³ÞiümPuyÀ0;Ã>s„æÄˆ"0#˜Þþ„"Ä\*dBË­z~¶¬m Š@§†³e*Sp6€Æ{ vg$Mg¯8TU Õ’°J¨áÝïnÒxÝëÇüþŽ[ýlèöÛÝóy‚‹T«é7½¬=ÒÏîËú²8ûäûËËÝocî=Æm×9ûk.Lü>ªnR*ŒÙ‹±Õ÷’ùxõ°p¯áʼng‚È™¢&q-µØ8[Ʈɦ¡èe™ãÄú~Õ3@ßI;¦§×ˆ^jAÔB|Ñ/U* _6RÕ²­†ª’eÚ1¾3vX[WBÑq!a°À–ê¿·‹ì1v»tY šôa&CȸjÙL †¶!ÃÚÙà€°ʶO2ó>_}Hv›µž^¶Œi EÀÒ ¡l™âëDÀE0MîG#éž™ZUBUB­N¦ÃZI]f¥·ö}¾z«}H}ÿÒÕø˜ë=¶ußÓO[=5¯¾ö{öÎù–¹>â~ýÒ> ‹êÎËÛ¸ërÆ„îIt¯@9G­g‘QÂ+Iö«*w¯óXosŒ"f××b$Ý4#^!¢Íqhæã¡~¶,iŠmDëÄ‹2eËè¦e@Ôx (ä.%|„ªªªÄFOÂ÷ÖøNßâ—µÅáà“©õŠóoëa…žöË|låKÕJ.¥ÙìK·Íâþ ŸgúNb ·{º‡ûðxµÍ©˜fWÍÌB–Èdî©llŒÃpÜ0´ jÞÔÛ•DìêAH9ÉÉàa9¯’mmm{[ãìRKGMöíŒHWö´2I•™›¢(áu=Ñ‘­ãíSJ"QB$õ^%¥ª`ÙŽ„± )£¡•©Â”ÚØÙßeàÓ° -g0²1 í–H„h™}ˆ\€QÁ4Ø>Gœ4H$׬q­Ìm¯›ao< ž¶Lu Ž€aÖÎiËçÐØ 4Þ}(°{ff窪ªêàíªªUq¿Û¯+ÛÛÙ±ó‹„ê_¸ºØDN:»hÖ¿¨ðÜÊsSK ³Ž{Ý^ÜÍ⸿MÓšäèUŠzœT¯‚Í$•©1o˜dT‘R‹†uhc˜$#PêtM{Ȉš¢z P°*+¡[x¦ÈŒÈ¢ª)ÊúÎY1˜‘ª(ÆtyièÉ“êegÇuêo‡úÏOÏ£²Ø-|jÜëËØ3B>˜™‹Zç›Ó0H‹ÂæÜ‡#Ýo;V›­‰‰ÁßXÈ…–‘ÅMÆ1R„®ñ¶Ñ¡8ÌoÞ¶lãqI+hH[ÖÞK‹Øh|›N€Ë‘šM¢¨dsH¨ª i*¨—iÇ6˜öc˜‡ü&¦?û×;Ó=¯¼~õíòÇqr­’šÚa­%/Wí[Ë}vW.æÌ)ìÐYlóÙ•“oÃO‰¢©ˆ[çjö^Ý0½AqW©Œ$W{hØÿº@=;º/Œù]pë@O¶aÜgï®±ÇA "™Ôt. :Û(’ç…§@ÅÌ)BURbµ­•Ÿ½z£ôˆÊ•gµ¸s¬€%=Ʋ;âVÍ™¾ë7g˜QÈ$Íí–»:›¹<CúõÁlûÐ\_øH´q·gЬ}£Y#¯­C>¶LeNæ, ‰Ç–¾ÌÉ`h|$~|øG »$Mg§¦ªª:k.VÒ˜ozZëièÿ¾¾|ý½¹7°9·£ÒøàæÛæ"hÉRʲ¢qd¼¦½~ñü¶/ËE‹§Oµ¦QFCîÇñ̉y%©©5ë5@“†F…¢›¼,‡˜zGÍ›^ñðÇÞ~ª·O“@òòøm6(ÈC{½"Ɉäá½<Ù1SsÀIœ Ujl_2–ÁÝÄõˆŒ¸$,a$É‹d[õßÚ5e9¬¸öêr²ð à cãGBHÈ•PÛ¸IWVú†u ²éE Bι¨³é¶¾Ânèq°YƒêáÞ· C[šž¶¬mÎ ¬ 1mYëlÀo …rt: ³ªª"Ãn75äíÛ}÷èíÖZ*æšöä²o®·Øü®þ¿ù¿çËoþÔûùþó{5/Ë뺎ߟʪ1¯¦»s[œ¦Rã¼5 ]Ùˆ•ˆé›Ù$ª"И«³ Éø-aO»XŽ=S ¨è,$\=,“€=V·»ÝÛëí˜îRÖ•e|±¥PK½ µ&å”ÍÉX„ºÆmßXB‹…ŒT ˃NˆµþµˆC&K·ncqqiØ‘êÑõbዱPo…B8AŠCGÓ¨8i´¡‡î94ú ùçÁ<>ç ~¶l¥% b@†³eŠS³@ãQ&MgɪªªTO<±TÏ…õwÎùÏó¶Œq J )Ðp¶¬eL^LÁ ç˜!ZÆ(Qï%$«ªÚ€»gþÿ,7ÿþ·<U~0>¬9~ä´(ç/^ì_=öÞúÿøoý࿼¤]§¾3Lfy»w¶Ì¦5.+Z‡ŒuÆüØç ۞ΘI¾TÝ”¥»9jÎq1r-«pÓ™YsÛØ¶ñ6÷ík+zìêxùñª_?ʨ·Qc,Æôk]\™9¥€C?•qf¬÷Gm Öa!Œæ±¡„Õ\Y,„€º¯C5½8¥ƒbCÝžáìùJH7;ëH1ÌǺ%ŒÂ+GZduÌ(…jµíNkgÅQ"_')†ðÁߊkÅßÁÄÖH¶ªodí7SÈ^¶Lµ ip>[–Öƒ€Æ·‚¦g³ Tº·¡ªªªþ©ªQ)»ßËænœúõò!‰M_ì/îÊ®Xüè†2ß9¨¿z´é«c<­ëïyëŽçùÝ-=£oeÞYO;—:¥vÔ™'UO6¯yåõTÒd'¾š®uÌt©a Ì ’úQéxš°è”œÛÉÚ›ôaÿíÔUFWWé (ÇVÉ©ñ^Ö–·™€XHE"•”'A6!H–ñI ñjc"AÿÓ~õ¿¨¥ìì„zÈÏnÑÖ ÖùîÎ*’†>C½ošXL]|Õ¦ågßY«u• ‘¢ÉkHhD\€'Uà.Äž¶¬i*Ô  gËR§XAZÇw?ài”Œ2#\TU¤j̹£˜b¦,eó‚‹×níäþf|ü×Kÿòõ«ýtåEë¬.úÔX/ÞïíÎçzº1îK^Ñ\Ó}‚êˆýd>-f£Ž:ì®l«È4oB—N,¨Ñl("2ªòqG‡f-=dª5yuÝÕ •Øcñö;/ñÀl¨éɾ‰új˜ÌnßJìnHõúŸ+C oT‹r¶VÀàÐ^Jò³êJ¥ûdº_ö/{.Åkùí÷Ü­÷–Zz8¦JË¡š7pš[êCú°^4œGC¨Ã9µß@ö¾Ñ5¡ŠÊW¤ÅOggSÀÄ ÂsoSR*åœVüüÿÿÿÿöÿûÿÿ ÿ ÿÿÿÿÿÿÿÿ øÿÿÿôÿÿÿÿÿÿÿ ÿÿþÿ ÿÿÿÿÿÿÿ ýÿÿÿ ^¶Œi @\@cÚ²Î=£ :€Æ³¤3³ÉUUU«ÄÆj ïôüÏÔ-§î>–ú¿ã»NþýåÛA°‰íúaÇ&êß#•¼©uqÑ^_7ëuM9{êËåì—æ9'›³f÷ÝÔÝÚ¶ÛØ‡'s° ÝÝ¹ÑÆ Ê [ç`¨¢”ƒ7»ƒ¨áp7O¿™U¦ `ÔÏ”GÝSd»µÖÍd/“Ð8ge¥Ô÷ŠSÔá.`!!tI€ˆ ’-9¨^©ª™® ”áó(⯴–hk­Ÿ »¡´©6ê“Zgã ¢d·û´Œ¿gw—jplprSê­99¶Ë»tl®!(ž¶¬eŒU¶µƒÚx¶ŒmlóÎ6, ñž€¢‘: „\UU%49õY ¼9ÖŽ}õß韾âc{·Ÿ”¶RŸ__¨åò߯|~8w?æèh‡Ëå¥{v¸Ë·=噼µ§›xÖ¼T9. L&…'‹+ˆ×QLGO©˜mãó×;m¿ñdqå•ÝÞÎ?c¼©Çú—=šOõ¶$t³ÛeÝ£]±Ç‰–.âk»×ö~&?¬ènÒM“">( „Q`Y˜5ç?ÕÈ›$Ú²)^ÙÍó¾E§ lÀ±·h¨³6œ› ýöѧ<û ‰r0>ý˜è^¶L¾e h,[ú2Å3‰ hœ{ÿ잙ى@UUU>ッÚþVÛ“¹¥µÔ؉U" kbJ•[—7^ÜyíþÍ£º½Ÿz#÷<@ßí[1ß>¾ÄrŸþ¨³Óïãâ}Îì!“x¦z¡¡f®z–㊺™â7TF ™§KÀòJÑ"¦‹i|óK†h”Åv Ä4hÖìêÆtÎÎ.èê‰$y'ÕEV)—s^Ë"¿]ξ:ÃÈÙ½“=I}âR °ˆÙ±æI¯b]Ñü[*U"…x®€yv€ß…iÒ:l<)|GöÖQ‰µšôû4dŠMEÈØì YwÞûvG5'ÁÞµtnNR.¢Æ®¥qs¤2zÒÑxFI:é†É±ªªî>$ëc=ùȋߞª¿„œzzÿoM¨Ê‘#.ãÓÃce¼þýøø¹í§é„ÕËÞíy_8®ÝpSµÎk¾íS¨åæ zOÕÜq¶Q‘ó™!›®Ö¯îâ"ÉZ*»WÀLCQñàǤar¦ùßùb[ïëæên¥²ªÊ ª?¸¿|ù5È1Ñ>Ëd{æïÙ,ËŠ,{cIR,`ýލ¤9Z¿Ûµ¤¢Bþùæ™ÎxúÀ¯÷N»°wo!/„õÖ„Áعç?crî¦× ¨8 Ï𠱆CðãQo:²”NǹC<>¶Œi N ôpnR¶LuŒQÆÐx (Gf&]ˆ`CUUÕVœV”TÞÚû÷»C–ÿæ“9²Yu•ó#‹oFw þáíõ=OO·çöÖþ¨í·ý£Æù±œýÕõëÛ|y;ÀÊÃòдXŽÝ†,j<ÐqæÀ$jèʉ￳5&™ÚÚµõÌ$dá6§3Z)²ÇÍÒô ®pMèˆNU9´ÆåÒ œ÷§lîmÛmÔXÚ³¼¸ž`#amKH Y±ÌûwˆÍ²>:„#ök!€oâC<«!ئóD±Í<T¾’} £-É¡ëÀ4x`XÐs0Ô}ø\Dw•:Æý þµôqŒqb’ÐØµtq N ^ ñì’™t„¹ªªMÍA…!+žO÷«n7~[¾N¿Üñ9]In‹ïYo=÷­ûú0¯¶ŒfŠ ¢`MÊ–®,¡3Ðx `gÒI÷€¡ªªªµç+7îižÔ«á¬åf9Èß%ºáë—^¬:dïŸÎ÷–ó–êýÍ+®úË~óâãCóÖì­Í\\Î.ŠãXM”=­L•§)²Ðj:njŽ3é‡Êü<@¢Ò8Ȉ>:ØŽî5«€)«'Ádô£‘‰µ½1á®±™L TX³˜¡.HÈ„)›*X®Hg¸ð.q1 ÙB´ÈN Äß[ÎÑÉÑN¼#iz|EUÓ¿6³nL0¹w½¢ÛhÞ†^ec`>cµ ì±Â.’»>»® >¶ôiH 7¦-K›j*e>Àq1#é(³EUU%µ¸ÉFŽù¢K3ן»ì¼3×|Ô´ØÐ«£U×ûèªùôó¯Çq>=„ÇÝæ^/l÷ÅÙ‹Muä q(UR• ¡ËkÞ9Ir‡<˜I”=;c:SB% êîIHÚ«ùšfÖÖhIunØf„’|è¨ |QÍШ}U΃È41ö‡}r$ÆÓ‚Z‡š\û °‚±12^B, R Þ‹ë‹O²7ú;ï÷9žgÜŒý·ËïЉnÅ&JA¡eÊ"àBvTJƒšB¿rƒ^CIÒ…þ2ÊG ÚÙ£V· ~¶lqŒÈ@‡†²e¬SÐä1¯'3ʨKpUUUÑ‘~ÜëNïÓëð0^Á˜Ël”‰¾b¼wö¦o’O‡$KÔæ žŒžè[“[Ý>¬‰Ü¤þéÁLço6ir!f´@UfS9mM‹±â.ƒ3s©ÊÊÞ-|eìP5g'Üס(–¡ÆÕ3a{¤¿éá‚)•P9¹×%{¼´3/‰§Ë;:Ui=œ$U/¶G,ù½À¦ú`¼yúñÖ+…N¡ [YŒ8÷žbþI›E ÜŠ¯ë¢‹4 ³Å8T6êÁ4Ðl´ÛUÅ`Ò§‰B8ì;Ī>¿è~¶,¥…@AmL[–2•(( h<;£Ì,̤ªªª± «Yß’[õùÁÛ7ÿ8MŽª¾¸|ýŸ]ñ§¶4˜¼œ’ã¡'dkÝÎ'—6sÅãÏÕûU3µÝèŸ aj­éiî)2SD U dUÓ–qó{èš™ g2{8Còô¤ïn¨ˆÊ™MÔ·fzi¢6-Õ`hÈ“]Ê®±‰¦QW’ñ´-c>ö·Ü/®lÉÞw%a˲_qÍùñ§R¢.éhBíª±«öª0Oé'I2œ¯|-6L\µ‹ë_J„‚èv‡Ð5y½Ói˜ìEÆ:ÁA4W-W7-(;8Å4?r·X7ÂUuwä§§¶Ý~¶,e ö álYj/¤Šæhœ»ŽÇCa÷žtÔ³„ªªŠõ‰IÖGçûÃߤ†•íCb\bâÓm¥ge»ÝLÖŽÍþ¦ÂáÜ#s0χï·÷EûÒË‹9ßf»ûœ×Õy16§ïlxª"ûœaà6÷QçiÌO¢`—I2w×Á™,q®/]KåE$‰€4…#Ÿž½®ÃŒWŸ¡ªY`vW-§!PjŽÜ>‡”±Ü¯}s©TÅ0WF j ![@H¡Ûº"+@„€”Bä#BX–Â%Ì߉Ø;o¸Ê•è²k˜ôX+†¾'ÈàH+%CÔ àÙiÐ( û‡I‹æ¸ÇÂ-Ê6i4é*^¶,zª™›ÒCÚX¶ôi Á ¬ ñ郻(ŒLF” ’9TUUuð †PåEãÓŸ‹ÚÁ䩜Tù˜Z/Õx5~ÏÿÍù\¿î‹Ñ¬Çú…ñ¶Ç×K³|ï¶g—½ ÊdÐ*† Ê Êά™ê*zqY$³ªGS¥J§½´í–];æ9džùÇS£—F0gŒ³ê¥F1Ÿ¢²0å„z3+EqouŒ£Ÿ!¹Í‡÷©ÎdËÌA&Ó ¢¨ªþ2Å´¼wAX¶„e‹UÈÂDJS;¹bîA­µV¬®]å—µ6ýd$Évá;F< Q+|Ž[ Õ“ÖhmfB÷¨÷ñP¤áæj‘NcO _W,zCŠê2œû)^¶ôu HîÆ²e,Sœ@’ áìN÷¤“(ªªªV¨¼ª0*õòó•«‹Ïn>’ű>äu.®?=v~8}e.+_©íoï7Úöv9V÷ûú~|ô_ßj—)/«î\_õW«ªŠÜ#^ÔÓnuk#º š(  ÓœewϺÆx- ˆ fR$ã•È’L`U3S;yžGíh?ÇhòÜ@“PµO¥1wŽC'U.ç¥jr–îhñåî#Y’$Y–R$ƒdYÉkUU£½•0Ÿ˜0ªžÆå`3¸”Çù­ê·öÇÓ|]Ùûc½N=?ŸáñrVûsÎõp¿f<ìgÆÞÆQÃ3Ñy—¹P•³Œj*¡qáán:ΪŽ&§˜õk§åvÛઉ Š…JCÓ…§˜Ÿs>2wæ£AލãÖÝîu©¢Á¼+<ƒuUê¤ãâ/¡(%Uy_U¡g¸ŽF’ÓÜÏ“íï ç•ýw±–óvS¾aVú°‹M&KØäœ@$GÁ0„3)p3D íŒ…þ‚+@ðä̬ì =^¶,~ŒJ"¬d¸6ž-KšB°¼2Dã3@@b÷LFÒ8•P¤ªDrvuÚRBÕÜM_F›Ûö~uihrÕnOûγƒŠ‘akëå§©‡µ¼Oç±¾9»9‹·ªþ‹!³×xÜmEÿ±D@¬¡'SÀÐÅLFå*Ó-ynªj˜¨*J‘t%ìž-uâ+ú1úÒY0›9ßgn‰Z [µB°¯OÑwÏ»˜¥µºo5v¶ÐÝW³ Ø·d_lÞÅÆÆZWcÓ«ªÕn9jä¡pŸ¯ º„±Y6þU+DÂæ:~ɹ‘Ûrˆà¦Q³³«…-ä “óÖ¸„ ×wÃ4 FFž¶lµÁÐX¶Œq Ê b–6žÑ™™ì¨ªªª«HlO9=Ç.òÿýẹyÛ> ê,­ïÃÙÞÏhz{½Ý.‹ÛâkÛÞ^\quõòln²ΘÖÍ8ÖÏ7ýiÖÔ™‰–b$ð£êÂ'™Ê už˜ç’)È(jgÂP<9$ã©àÄq’žZìÉ{º›ÆÍÀ[œtêgfWBÛä)=£6KS}\Â,¬»Ù©{µv”àÇ’©´¶IDjý¿jSJz©*‘”2Éúz~ù tA(bPÓºI$#Uô"³á­O¹5k8çÐ2û$8ò× 0O‘@¬äJ¹CÈ~¦~¶Le.ÐDPŒ8—-S“Á4’Ï‚×U,RÑöŒ2{-†ªªª¹œ‹‘Õô¿>_ç:M¯Ï.ÂÂôîÔîazgÙ¯yËéýýö÷Ûâ¯3†dõœ¬íÊ*SéJ¶ÁqNÖy|]ÝM¿FžÎϬteÁ0E¯¬Ê¤­ ‡,SÝÍÊ¢ž•L-8k«†N ®4ÅL.Ônm«bºÀ‡¹l¿†”‡J÷z]LÔ¢I|IªÊ×p1R·$$ `AU~­‰cÏÈ~I5 0F°FË=òÙ¿/v(Û¾‹ao‡ñ’ެ͘¢Óб¯ú–šýîmOòñ¸CÿŒÛ° Àf‚ðø ¶©kQ„vn3ž¶ì¥%L"(‚i\[ÖÞ‹ÁïìÞ³Ó¥UUÕšiÖH„é­{òËË…_®âÚ§|繊+œ~R;Ê?»ÈÛ ËeIœë³T}kÏìǔŮ÷Úó²‹5k¡ªv¶¡êL“9ž¶:cú†¸<Ð †ù­4C›ÿ>qB3ýµ¿ïGì=l˜bZ³“\h“DAï™þ;b*™Wm·ª³\ÝÑžQ²º['µi@â)µ”TU¶Ü€‚jÏ´nYçk)µ>?œbYD€1V?dÁ«ñյЎ Ÿ³[FÔ4²Ú!ÀdwwõkÁ˜Lod—‰ÀÅÛ±v,þ° ¡[x;5?¸Ú,~¶Œm fù¼¶ŒÓT@š<G¼>œ¸Ø™™ÙÉTUUÕ¨\›XL‘èåWó{éWÓIW×#G—³ò¿¼žìóIÑÚÅÁz9÷mqÛó¥·ž£÷,¼ðcfQµ¯ÆkD·«g¡ƒrbH¦ÈÙ»³íÈYé¢Y¸:’Š…vÖR4©Cº(–ÒôJާ:1Y9¢FKD÷\ í¦>MVŒRÅ!I9©aÎþyŸvò $}º"Ñíר*}UIS½YH±…È ,tߤJuoÄGdÔìÖbK¿…é ë‚gíÐÝUל£9îÊÞ­õM"­`ÎïÌD@2Mñ÷œGBÁðõûÖ$¶ŒfŒÄ £IËgËZZ2šÆgGE^[`'I&¡ªªª9îM©¦Q?´Ú½AuŽÞœ$ÿ¼µaÿ<Ùo³ÚùjNÕè½Ô3ªzÔ—µÇ§^+•QwÖ䉓"r+Œ¯TdöÉþÝHD·›®ÕuJË÷í¬:°ÛdçDMá©cž5žé¦K0PÓEHãîžûÜܰٔãQ­ªš”ZÌmP¿¿ïzxéó95šYsuÞÏÙ‡$ÒÔsªêÁ_ža˜¹jÒ…¥d¥—ÓG'£¹ª˜ë˜®Ú§‰Õ’}´ª®—/@70dÞW4õÙEˆ€Ð×nl¨6‘º¶: }ÁÖaW[q m_LôÞµô¦Ç:Ñh}ƒ†®¥1Sr'¥Ç¢ñìÒ£ÌHfU¤ªZW=4PÞ\¼Íë]ËÁ·jJ7™¶SõÑe/<ú§Ú­ü 6ôÀRu¬fñ úoc´W²‹xzrcFó~œ=û©©aŸÙƒ`’¾çÐZÇQy†¥pe7ûæóê‹$ÓDŠãÍ3?œ¬ËQ¢¡`¡™Ø)   £‰*n2X–r[]µmT+’1 Û*X¯dcÅ›˜mÃÁIe°ÒºÃw‰¨;œÃ»«7Îè6NÒ† èÔvDOäA»Ùµ¢Vó&H!ènŽÞë€È¼ÿZïɵš~¶¬±Ò†´ek½›4Þw§“Î^‡ª )¤êh$*H¸Ò£¥K ?œ=‡üâîäðóèæÑ-•Ñp+õj›Ç0¹e7µ~|Ëc§5뜷ssq©±«æGÿ>Š+ÉæYJEëw©ªÈ‘鉆%LÏR.Ëe€«)ÈÕ¥¢êŠÂÕíe(P“HQWßN&»*EöwenóœÿµUgÏõºO&›“§‡$UIåUµã¯ˆjC¤÷#©Ëúçkªx¨ÎãóeÑe+çNl¥z eáu¤Zhœ´ºeDëAǵÁ -¦0¤ñA ×_¿è{0„]šßTíRoÒâwt¯q( ™&-!pv”mç Û,äÔQ5lŠa—8՜ل‚¨eÇG®·fú>¶Œ¥A )ˆ–¾N1AXYAãüp58™™tTUUUG6Ú|¥éëÍòµ¶;òÓ¯U!pZºý”ß¾ñr“ú›·v&O>mdåí´zïmžnÞÙ´`¨v»_²ä%è‡l(:û,qÑôUeõl?üó’ÍŽ ³º óÓÓIͦÞRz šÌ{ª¨g£¯§¶wORÀ4d¥ ³¢&P²IÍßæi@^ € Q…¶ê×ÄRÇdŒ±×K¡p>ŸT. uÛ9w^+•÷Á#oºÍ!ÖÅb; Á­®äzdëÁ$ŠXŠr>l¥ùæ|û1#o¶ g Í2Ž+ª¶Œ¦G1ˆK3LCزĖ<þçü`÷žÔl¨ªªª½»£Íæ×C×Oey<Ô¦q†¤rë–GÿmtÚœxZ»8ÙóyŒS­ýÒÔX³h÷é,îçmïróê*u™”&éZË£ô`Ï1Ë)z)5uÈ“=/£§r"a1QUõˆªÓ-;Û—9ôÔÍÀ‚4×sòbÊ‚ÙdÓ SÍ]Wó¼_èGç7ºÊ˜×.Û+פ¨ y-Û”…»ˆ=Ù7n².´°ÍMˆaD$ÔÅ6YµEŽt†3+C-ÆØ~Ï B Z#ï•w ¶te‚@icØÒ”1@ã=}ŽŽö £(û UUUǵA,*ú“΢…½œJGþ…ÿIÿÞ–¿ ïϪ?8Üu>.›`:(ƒ^äç×÷«~g?>Î:³wÚë‘§39«§ªê¶çe™mÚ{Ï¢õʶϾµÄdÊgeCzJ .^dÈ)cP¦6ÕZ‡Ã C¾ÍÖÄÖ±¥*º“äí"ΘT6Eî,œÇ“sÞÖg¯Wï÷šN&ÓjªÔóU*•¤ÖUT‚e2ºè¯+½U©ä’¢tWë5ÓC±®‘ƒ¶ßcêÃ[7JKsbO, ›/gblˆžUQªÂ‚ƒ|ã’`oo R,ÂÞì3󼦮¹ž¶¬µg@Æ´eêSp „Ÿ>ÂîEÙ{ TUUµõ¦œ­*e×ûn|´]‹¬í^ÛtPÚqóÃ@lûÍko~3˜{ØùL2Õéí?/{ïó#_šÕÚŸ²Yï¶÷2¹Ãî» ¸ ”õ´½rp6 ]+ 9©N‡L AC7µ;gª²}Ûðß3) ‚ݪh²õŽ'SjÇÙ#m8ö¾ªìhéÒä½.ˆNT¨|[)ž2!±¸êÖúk!慠T¨ –…-dë±G…ÚâÁÒŸ"Ã-iQò@ï@#`r¡p0ÊF<ÐÝÀë×Ê ;¯¿svà Œd°y•M¦@ÓV-@°¢Þ¶ìË A½˜hX[–¾„ .ÐxGàÈí0ŒLšîv UU5!éØÊBNË}ûõ²ëï¹ÒxP^] ¯å~œ‡GV¾²c H&w½öaï¿ýa°v­äõ"lzcî|ö6^ûï÷4õÒ|åÜ¢™ý÷8ÍÜ@ŸišjíV V8F¾\W“Ëy·ÜÕgàŒGìe7“Üaîjhfªõ?·óßÔ§œ°è.ˆæ¹›r2e®žÚçrÉ𦬦²A Xp}w/DIª”0’±~bÍÄŸ2ýe#IXFhMÝè_¥×‡ƒ¿Õ 9}¾Õå"{n¡ÄäÒx—ÆVÏZeïµ¶j™*˜Iv{‡>†½º¾¶Lã”HCWàܶ,ããlXšÜúÀÎ(¢³÷ÁUU!ÕjÛ®K!í¿1°²ÜõÿòË»÷ÈJ/WL[ŸõÖ7ãËs§Õ·Òêì2v^ÕµzØ—³ì Lw÷Ú«»»³0©ØL*3Õ=pðÉm^-âòÐǃ¶QÆÚû‘ûý¸'QÓÖòÌ?sàêJ{WÌâõ8ýÙYE  ®¨-ÏK}J y~(Z\ÂÖ"B*ê©*E)õkU$|ͦÈÔìc>û`²{B; ?n/}\Šú9«G€¡€ÌUi¹ºÔ@ qñß!j…ìrcÃ{õŒÖ‹ö±íû3ž¶lmLDИ¶LãT Á”HmPð|š->Gf&ÝI‚«ªªZl'VSÚðw’¿68Ù»p‡»äjè~þryïrÿùñÂnÿ¿‡¬ëW-ëûòRe½hªöb0^Õ³X…j–Îa:¦‡.I3ºAIrgHîŠIªK'dAAC5…'fŸaDN ΚI°Iš^sŠ\txÍÊ÷§ GE T´‰fÔ~{{__.'µtt÷,+õšÉ H!š—ênÐ^_@2B±n¦lBWZK{fë ú3<Ô#!çë½¢gˆÏŽÎütÀìÖ0Ð!ˆ>ÐaÚîëVJpÔ‘¦#‚åš Í ^¶L~ŽUbV4–-]™c‹¤4¹7€Yèl¤†ªªjW3Ó(v 9læþÇ_ŸxÍËëß½¬Òy^vç<¹ûÓRÁÍõÙQŸ&ÏS³zx}ñ!Êâa ¼æDë £˜i‘ša˜Î;»«´Ä©Ê¦vÖ$KMâ×/‚J`?£Ø‡9ËãÓGØt ›ÐT<ƒÊ$@Qœf>å}]42™±`טû¬?nM(Ð5©EŽ4„"U•<ÌîSIø=´ÂêŸ\Ú­8lS¶v>6`cɲ§sèîCg„‚Þȡ۱æ`Î[h4|È ±K0–ÊÒpRAR;Ðr¼FhÊ¥:¾µ4rŽ„Äjc×R›98Ò&gg&ƒÎàÂ5T¤Ø]#ìô:‘ _¦;·²³‘¾‡q…›ÿ;®Ý¸¸ÜgÈàêÅÍé•.r Kµ“÷{½½ i{?bq}WÐiåÉAN4µ'—*ÓÓÿ £AJ¹Ó8RMÒñÊŠkº2³œ©ö½ú"ÒÌviÿûV f““ó\ Ófº{ ,ÄT\ãš*«ú¶ Á‡1‡Iæ#‰K20ŒÏå—mð%‹5¥’Ÿm©Êc•LE*ÈO*ÒŠ#¹wg¹¯W`Ãÿ³Ìt`#šœwQ•Æ'ªaèÔe3Ðè|€Í3‹Û¤œíl !AàŒò·~ëþµtºG(Q(š aKã§HeJogw:3ê±`®ªªZ=¦žhõ ½zÉ©Ãp´ó7÷0ßàƒû#«#Nwó#÷²a“Ûx*©¼ÞTÛû±ò¼wßú{îÕ·ù~vr†œªYí¤œU©Ò ïøúÛ ]Ö){Éq%{ºölVÈhÔP\R¼z¢ º :‹©tºibPw™:»Š'™d„}Ék¥=/oËzÿëì¹ã‚Fê%1 ޱ- H ¼­c ’dmíÜxFvçíœ÷º(3ù["‘#·#Ōš7’Á4²¸A$l¯@È,aÔº.fLHÑÝM€Vˆ<4×N!ïp…~¶,iŽPf`a¢1mY¦¥œÐ±R¦ñ–ÀÎLj&fÖ0TU›µ“à{ Ò®g÷“²XÍèÓWö$>ùÛ@7Y\;XœìÔZç .K[?6.ë¶}ÿý¼­¯r;šaõÓ5YŒV²X ½™]\º3±Üž^“žšN0Žä)º*pD2Èè°ù~\ÖõsÐh½·ôJœ@•L’Y®Ýk÷()מì`ÀZÜéÒÜM¼ü»:ñ"^ŒŒ] ýtÏ â­Oä×蘇ÿ€ÈØÝ|,‚¾ÀÂ$C î2=;Bï˜Y#59!CŸÛ|÷ذŸÆ. yx0¨{ÍM>îÝ14~¶¬u .Ó–%M!bšý}»zzóc]ŸÕyó=ySfÿ…o–!mÓŽcP%DÙ0êÑ›Tf‰I7•R< b9ƒÛàe^Ý;Çb«”2W3C‘ÈS0¹6™Š Ù­ªf¤¡_W5b­Í:塚™©óÌ«´aß¶á<ÊI Ä*©¦J¥Rž‘’Dó¬RUúI{õ+«*Þ³AUå¹€R$+}1 Ö²”suGCëî¼Å¶Œq J cKŸ–à , ñ‘€ByPÉîQFt!S¬ªª$“<`«GÞõ­îõΖ¦Ž­G_Kƒýÿ÷ºaŸÛ„#Ÿ[+›ô››+Í]M3kÅëÐÏå2§ÅpuÖ÷óàUcíÑsç¸=o™=L¥eç:Åæ¦™º²9ÐϪʧÕ7¶ð µÁã ^Ø×D™«jß®íÓôènœÂ@Ì0Ý«Xæå”:åø¨µÓÛ}3•D%–V`ðŠÁÈ`,¯!×ßãӴ˾ì½r9eúÓÀ9Òcÿì¢YûÒ´!ñnOPÿH”–«Øñ=Ðh%Cy7ä8kÛŠ¨A­´r˜Én(@> ^¶ôq A ÚʖƲe,sò`6Ðxv¢Ì$‡ªªªAâC«°J òûxŒW§;©þÈ·§øö=¯½q~|ÈÀo”‡ýÃ\¦|tp^+²›5ï:5⹨㱟‹1dTTqa›^'¡óáò4½«ySõüíI/]¾ú”#où•J_èéR+o‘™`F-Ö·šS5µ‚næCC&ÝTodDrUv‹M©])ˆR–’Ò©)¢ •’ªŠJÿsãËþ¥ÕyŸ_¹wvã^´êÛψ¤Ý Æ­¢ÉÙ¡|fýá:þàÖvLWCh¡¹¯ |…}Ù–^΀‹¶,²F ⺠eËÇŽhrvψڳ ®ªª&f8…^ž¦jû\ÎýHPÍ+Çûñøôñ‡cª_|½H¦FçÔ8¤¢·æþÔ°øÑ?™Ó¼³Ü«šöÒ{ʬ®•M\5]pŠÎ"çÍI%ó•L D^» ‰ ˜×ÉÚ~Z] &Bëa7Jýûhö<Œy™çÄ-ÉEÙkUMÏÜ”¨XÛ#Šp']†Šœ ²Áà 6V¡ˆç6©§,ÐDŸÇŠªªäg©”Â-˜³¶»ÅëÓu¹µÏp>y[Xh>8E¨·Ù´r¿é“ $4‹ÞˆÌ×µq€°?‚nY¯÷]CYfÞµÔnŠph [:7mF…FÃgLšîe„ªªªÃbªHÏ„á´s©ô÷ñVúÿì:ÙO]Ï‹³´oGÞîÜr;oÆg¬u\½OyÓ~ä2«ú£Yskæ©îY/RÆçÔ^¦”*0‰€‰DÚ¹L6¥…=E&ef@˜ü|eΛtVB¡oD[‹Å0@. # 8.U\'ªü9é¼–*RmL£öÓ¹:ö9¢É…Æ™=lð+Ûqxáª@I±XjªIá9¥J•Jò¡>’ŠZÂB¶@颿óXMžÑݰþL@›Î Û&a¨N<›Ûn…0Ĉ®ÞŒ»¶²ïÎ9Ãvca˜†%Îtlþµô±Å bÄ cKß{2Uh¶ôµÇ„H 4¦-K›ÂàÅM柃Q&ÝÙa¨Bªj[¶»ÉÉ77›e;5Ñ®=PÜŽ¼ÅÓóßžÞÚÞ{One:[Ai9uxÖV¾Pý‹ô¾?Ü3b¹#¼„Ëéä~iÂ6q¢Á€¨XÂ(÷6½Ún}¬(UYÎÓƒ _‡›®*òîÎÊ„H'¸å’“=t\ý7>×è.´t[uÏfÅý朳WÛ€§<Í:Lk˜ec#¸’R•*T¼“”ú="s¼˜0 \;ZæôܹnK 1P ˜¡šààF·»º ý ëv’Gü(\lÈÁUƒÜ¬#þµt~Š:4†-£“`h<»”ˆZÆ ”«ªª+­P·Â­¿®Ü’·RëÚ+Yªp¾µª‹<ðÁýÁ¾óò|MvÜ—6½ÜçÓ9«ï?V{\›×ç\¬Ü[ždÏCNÎKñ6·¬®§íîn¨™©x¤ý´Oeî·³-í ’ÝC6Ô/éI‡OƒÂôèñ–±]ÇôPI­ïóuÜŸÍøçqrïÛØ5}Œ3öé¼sÂ\O¹ôsRIU¾V¥ž«"•HH–ËÔs,}©WvþVŸm™LrŽEè€kCw&'ÓX]Y"TJlªÙøäˆ BÜØaSÃmN‰ò¼ sª€œ!†ÙiÍ^¶Œq A iÐ0¶4e !€óëYì‘ISGpUUU5ú_¸üX¹ût¨_Ød)TˆK&Œôœ®§‹£ig÷̽ jeäêšÇmŽyY £Öõän½nO¯äõñ±Ì¹ó¤ UŽƒ€Ót+Øœ5 º¦ò ¥ô ¦ùc {ÐY™3FÅ´¼Ž1=XLõXÍadŸQÓ{ÒÙë÷Kµv\lä—PÈ2&t=B,UªU*^Hª20õRFÜßpí¤`îdnDˆ8iH”ÐÂÊ´F“ 쎑ºAö_>2ïA#œ/"Û8Ûw¡ÏëUüW>„õŽBw3?xê#¾¶tqNVÄ@¿–ÆMÉBh4ŒÓx|ŽS:YFÈUUUíŽÅY]øŸÜ×û»Ý ’—1?mVúì•ô{^ïq ô*‰T =¤3ÞÐR&¨´ìôšÒ,ÈâÌ5 óØœ˜˜ÈÖ;Þ$fr ¦rÉgu…ù¢VG¦\5¥lµê:Ûw»²fZ¸ š,mq¿ùŽÏ˜Äëñ àxzé>ìe†ñwë7'Êë˜â½ÓaV¥ª6ë/Ýš³dÑz²`†UÒ‡îÛ6´L k¶|˜Më°nð@×-ç³ÄÓºë*>¶Œ©Ç(3h 4Ž-£ŸB0H+Ã4¹£ìe–vUUH5AW]ñ%^Qvú›!\ù›~ÔÙ+ßx<ŒÉAyôÅÅIóöÑâb3¦•÷ÇsíÅ‹™=ÕÉÎåŒô-«™—‹³\ÍUƒ ÜCªc©§íŸ›•ïû´«Ã»®CœTt3Mevïj&™áÔeØ43¬,ä4Q¥2Už™l†=žÉg<˜O7—Ú«€Â€ºªÇA¼éáž„±³iêÉY“|àLqÚÓä‘KªzgD1ƒwzç=+A7ê­kÔ—'ʾŒôû¶“LÂUßô èó¸á=—<¥ð(‘€BXC5þÏڴꥆ?©È@½Q퇓 vÞ« žeŽì|¸-¤QF!ãþdï0x~ð)>‘^‚·6ž¶,mŽ-­iËZzA°aE‚Æ{Ø™Ù`ô:BUUU #©Ðåø_ûrå¬%G—µû.~1Z{ý¶ûèâX­úYrt¯ñfÜwæîÞNÚmkoKfŒÂL/nƒZé^¬ÎrdžÃ]Ô÷¡<\Yù„•¨`uõÃÄì3‰û-ήãíîcÕÆl«³|ÿØãYªÎ«ýus£nãaqÆr‘z<óU¨Ff4—×ìløŽªTɳJßóú‰R_-ŠªT½G“ª¨lI’u ÊÈÙ;Ûïâ: é>çÐ)ÆXoTQ¶G—®C2‚U4CÁDašX Ó:j Y}Ìw{=g;tt=~¶¬¥ÕL‰BS !mYƥȋ€4žÑ£Œ2³ªªª$Lìp!xªOÝw•÷‹Ã·‡o'þ¼>¿ç Õ^}¼öø~þ<_zïŒæõÍÇ2öŠõ®Ñ¯‡}Ÿéªm;ëÏê•2RšÁî¡fMZ­žéVÐc‰µï zäCÓ£Ö™ 1©fWfÒ«™) çB`"‰¡ÒE¥VÝÓu‘âPIW_T‘¹ž^¡‚Ê‘–±Œ±Âa}D’(­¶j*5Ëù`Å×Íup—Vn±‘ïHg»þÞêÎ*‹Ñj[ŠñºÝª# ôLî»s·Œó dkhÄZÅíýh’Å´ „t§Ò>Æ” Þ¶l­%@ƒ†´ekcF'{&G÷ÚNg§³UUUå*)A´¨er{q;°süÌöÅÞvk]õÙ±{ŽÒ÷Þ8žnÏgåGo—õqéÞ,pÞ) yuíÔXÜ_÷¯¾›É°]*ö˜zëPµˆj¸"DGf´ŽÖˆ®,º©Ût¹¢B=lXŒ'65@¸ÐXÝÝxtz[µ sÁµ3¾–$Uq"jêžQ7Z†ì!16, !¥¨”Un[!¤RëjT+¾Ä>$vïÙr¦zZíWzŠá:0\)HX]ã?×AZ:kwÔ`Oo(zuÝt°„«„ì7XoÉWtQPmmÒÓ¢9këpb'þµÔ~ E ô aliÒÛŸ>(ý€Ñ“JíÑUUUMžû&Š„½¥¼p±ÓP¯ §±fÓ&ú¿oxáû¯‹3å¶k»ês³ïetÎIwœ¹Os©E»^ôÎ&—™^©ñ¤ rf`ƺH3€ÃÁÑýÛµ÷ú˜Ozêó©µÊzË«-U1TŽ„ízžsÎm»¥ÿnκ‹ò(RDUÕ´ØIæo?‹V‹áª¸v!áÛ/ •T*á‰ú–$¨TUaÛè1’øKÿ)PˆýZy}F#äÙç3ªuö¦§Å€jÈM0ÖŽšA§ÀfØP Bna¿kdØ(44ƒž¶luŠ ¢‚iL[–Ú#Cl ñì’]"2䪪ª‘Äc*äPLù¿ó‡Áþï{ïÖfþåŸN^ìVy\ém³ô\aàΕË}³^$—r}Þ^šm?ϧiSøÒ,UZ}¢í}öeYµ>ì Î4'0Y¸sÈÇMö¼©†!Áófæ×ëɲ“÷š8= ’ž™3*'9¹Š“:ÏÓðz9æfâˆ(&ZW˜Ë©Ô3$´75G%*¨EžúV–°°å×ÇïWˆì…â›;Œà0YÖµ¹ç:ç8÷Ž1BÃ1ÄñáØ†¾S‡mÒϹ5¶ƒcÝõBŽqPI2¹4Éaà h}îCè>¶ôeŒ "Q4h([¶Ø"¥àCqãÙ™eɬªªª#Œ‰Œé9y{žþ”o/í=[Ä>|šo_.• ÿïžÏE_““]Å5Žr Ãs®·±/W§¿zœÁû®Î¥½y5ÙFkªÀ‡‡/)6á©É*ëp f!c3k Ã:™ÙbSýUD341Ä9IßZÂb=ièUE+êînYPæ"EÆ‘ý.i‚yö<Î^Ô½ëõ°%°dq²!B€£P [B6ÈH€Yˆ¼«TJUÕd¡““`ž ·Óͬ˜œÙÍ2Þîº#QÔ¹\ÌkÑæ³[Æï–®“J'®¹ã6&¨i.ò‡ ¶Œ~ N,pÔ¶ŒnL*"PÑxv¡£Ìn UU!5±A5" U±½xúáÓGÛþ¯sŸ­rçë]­­Ž=¿öúõ‡%ÉùÁ±›/ûyN¹ü<:Ù©‹×ÅÙ8æ¼=Q÷^’úõ`ÜGGÕÚ[ÎÏ)žÎ»hHõÙÝëKœt¢§±&~™B8.äî.rÝEuvër'¥–ŠâTrAMB©ä]“Re랆cœvîlI\¡í2CÏP¢åÑ”HmJ`‘E4»ùmÂj+_Ÿw5ÇÑ‘ª;­CFæ€?DÎEº‚ÑV¢Ò PÞ9²g܃c [–„ Û ¶tqŽ , œ–>±ÊÐäì^h:GirUU!šQEã~χ\gõEÄ÷œç‡ÛŸŽxk1ï:¨ö‘9×ðÖ5u¨Y¤ûxíÙãXÇóºÊb.êô]ÆÚÕpêòd•d/J²«ÉœŠ3©º¢¿Gõ,êÌu÷Ö\ª2úz“¶¯ÉR·i€…ìe1,MBõt·bW•AU†sÕ™Óí³¨¦]þÜg–³vŸ²k |!"c0”‚T^(y&•’g”¾” K6GiÃÁz5éïšÅËNˆó½R#á¸%V¼µ Š"ôM¦ètíÇ‘34rW>ÚÝ",9`Çî´‹-ž¶¬m A t 1mYÊ‚m$ ñp:…â"í¤“î½UUUsÌLVR)»¯.šòúo~í¹‰øþÉÝïðòm·õq}k~˜œ›¶¿wi“¯¶Ý({átÞæqžèu2΄Ìj¼Ob¡™%Qj€÷™¬#fREFÅtAV²œæ:Fܺ=ø`ØÎÒÃåésßÏ9WU^}g&§šË!ÍÎÏY]ieâŘ$Ë2†Ey®‡0’…ÛBaªJ•_ý"•ëþï·ßµ‘uw÷Ï^oBsAkÖ^ ¾=î¡)7gçðfìYƒ‚Í>89x¥ †ݹ†è˜D o÷ ~¶,m*2 €´álYëXAfXé@ã“eŽÌžŒNª*¤Š4µƒ••­ôÃÈQ¯÷U«W«I/û;— 84_Þ>¿-ÒÛÿ»æxëMÿjÙOŒ,÷XQ‹T³Ôš4Z†§h’¬5nÙÃLÖtK ªM,-ŒInçyœmLÛãxª27]æÍé¢&Ä»If>¹³F¿ìjša\µY³~“óoc›½U{Îq7Ô¶ÎXμ}ðºOji ©¡Ø5“ ,,°¼p.Å|]U%ïU”">T¹ Rô%­¿ô«ïawruY‰½¯ËÙå~WA×n$÷•‡à8¶v¢@imƒ‰ ÞµN…a3#êpì?~¶¬e ™ ál™Ê@ãÙ=Šh:kÁªªª ªN¬ëÔÜ–æo.Óܪßð3‡õ´ŸöGˆá®ú?žž=vs­[Û³Îyļ_òñØóÕ¾µçGnÎÌýÜnÙ—åý\yv?PÄÏLOA³³²Õ+³ìÈ´Ó™Væ©¥G´˜ÆÓÎ!eK”¢ôµyÐL<”Xb–¶~TrjŸƒ {ß´\d úZRµI²a²g^ÞE%Q•ÏÏU^÷Ä#i•ec9%ê£*ž%¿Vê­Ø ÖÓTIám $éÒ‚W°_d ›ÙP¥a°óf?Ö(&wJp² ÏÕÆMØ´jh_A†ò>¶ŒqŒ̤PãÙ²ô) h|›Í97;;#©É«¡ªª*»Jò~W­ýªç ¿¸ó¶,ã ЀƳ¥Ok¤“‰ÑƒÆ»Ÿx²3“AL¨ªªš88hX3yËÎH›°64¾qk³Rå_ÞZׇ_\žN[j;—蹦_ÔÂÚã%¯M½äÞ™½7^µ6uÂ8,æ¥íÝ„B¸x‡Á¢*;Ë»€ÞÄs:£.Ô³%z讜Xä¨{bW‰ ÃsääìÞy¦Tµª'TÅ9U¨ïI ‘¯Ë»Àå ˜Þö˹8ß…Dš£'/ªcF Û6«Díóª §må¤[4ùç£G½¬'ÆDK-Nvs¢pì“Ö !s,îÎ &]Ê1 „– t¥;¢ÁŠò…QV¸ˆÖ2ܧk~¶,m ‚@Ζ©ö$U€Æ3zF4µ3sUUUªQIÕÖ®»ß|µVñxì~D»GÿîÓÅÍ×ÒîºñõÒßõWçãõ÷ûYœþ[½¾¯ç0úóz\nûdáéX;c»­$96¢ÜûJ¦ãu2CSwQ5è3g¢½ô£1“?V͂즗€K¤½”Î%ç0gòÒØf8µ$ jËHŽc vÛÚÛ.ñb±| ¤ˆhù¥£¡°¿Ü÷qw&ÐÌIrÞÕ€ƒÖØ JŽAiœ³/€Ü ÔÝ`Œo’©ûv‘úðúE>¶Œ~JRbҀƳeªsr%©ƒ´ñìžQf·ªªªÃW¯f˜…ÞõèêߪëÁønÏWö½ýÌ:üÓŽöÏô{<äh¢£¦íZ­ß«c7óö´äV^3Fr7–ÎxHư–& i Õ§ ¬.g²ªap.EWæÖ­‡æ|?ÿÖ}9©‘GÙY ªñ,!›¶úvvÕÙ´AŒio•#³~¾¾ÕÛÇV'¼Ðt÷¡Û”U‹Í:­ƒRI'¢hõbcÙô/\-HÄ ۊϖŽÙÑÑî¦Šî ælY±¨¥.æhêØBt\ª\‘d:lçap4ÌÞ(¸-C ,PPÔ´#ž¶Œu Á )ˆ›¤-Ó4Æ:chœÛpI#{Ò™½rU¤ª–%½?ºÜéýÏõÜÄÁ—kC» ªÍO/G^ÆÞúçø»çzîóëõí¦»XÜúçm¿5çÚÕº=yKºf!p›nA‘„Îv<˜Ì^hgvjªœ¢k­9É긠ÞŸNX W50¥n³C2ÏÓ”×gMLDŒ*ÑcœÏiC³`–FT=¥”ª¯Ìk, ØR7¥H%U¥í?þk\[d„ׯ\û&Ô@¬ñI5Dv,žh uWô pjWë«°ÝÙDëlŠ8`gcPµZCàê[‰µ>g†ÑL²W9~¶,q X4–-“ \„4¹gôÌÌn€PUR1]S¥Mw~¾?þk©rÚí‘‹~ÊãeI¥Ÿ4}‹¯ÿȻǟ{žvtßöbŸ1ÄŠˆËçñýÔƒ-ûë±NÑ`9¥nѽTÚ©–½¾â|€¢¹ÙC™žÝ“ríªÆ¼@q"Ug>QgÍÎÃA5 ½çÕÁòv=Û“T6©rß®ýäaôËÜr`ˆªEc–—ToqðØñ¯ˆØ Ue™ œ“ &6®’_!&õåU ;Ü¡Øzºµ8ܽB› à> 1j®nBãt³'FN´…ƒ4:×°ôõLÉÙ^¶Œ±‡ÐhL[–4ãÚïìÌLºáપjh8ÙlUÃÇV1÷ÒmGó!á¯Ô‹ŽkÇ^»8¸òõ@ßÚº\—Ã,¯ƒqÆØ—Õ«+êì·’e¢GÝ*M¶¨ÅÉš <Ÿî9©‹z“î,ºPq=¹3ÛúU—©êl¦«òH‡ìÅ®ôÕFq EQö€ÊÆ1¹uý±Ÿîddx9óí–…mž·Õõ³^wbë‰';}®ŠªR¨Õ*BeUÆõUÛ¡üQ‹ä¼Ò\µ{Úii˜@çî'¶¡ˆd7SЇáv;?6)LÀmaÉ>W: N:³ÂváºÁÀƒ >¶Œ~î°‚†°¥SpábˆÆy(® £g”ÙUUU!]8i¯¾/F>Øþ»³øœ›^’=PêmÈÃ2þ$õ°âµ÷Û¿jñ¶x\¬¼ÌZ½,ý3Þ¾ôg/“;Ocø1ú·ýÖ„NpmòPTf?tFNB3:nR| ¤À5Pk¦–þáL©ÙÓ4\6£ÎуŸ‘¤¾F/]¼9¤J½|q»âq»ÈNægqú­óìÉ/~=‚Ńöß®x »»Sù–é_µ?ÒyÏéœøï¼:œè%ºì¿6mÌ)\›¹Ó$üú¸fY•"x¶ô#ÀzÆÝWsü\-al'7~¶l¾ˆΖcoÉaÑõ ñž€Ã±3“Î CUUUÑK$•”õe¹øUc¿¦â£•H‚Dý|z“þt|¶þ¯…î,ʹŸo.g7‹z¸öÚÜ’Nnü¼ée¨ÕÌÎV&…ß.âðõ•YôÅ=CgåmÔ»kä«ÓC &³9 $” D£òå¥&ž%É¢²2ÈÊ›/ºk˜I:]tß9Æ]Äþ•wçì®ëq)‰i,ï\ .J$Ñ)<Œ¥¢>H•HI<–°eÅUƒô°îêtÁÅwsÕ2Î{éúÞ ÐÇ„(µ€Á¹ ë!œw&T/³v5T[éh ׇÀ~?dæÂœëËmP&~¶,qŠp2­ÒÊ! ñléË’Ô˜4¹023³pN¨ªªÚ§ƒU-;WÑÚ^·÷øË­‹ŸOmë$=ùåáÞ¸Åe}»½­kö«1ߟYkæ®ËºÍ¥™r¡X@d¦À‹åE Z&†2¢RjÍ\›ž–{áHvßf¬Ø)ÖŸƒSòƒ“?º¥0(a‡CV}Ù{/D Á° !êŒGwo ì”{H+ºcHÄ€õÕ~¶,eê(=䯱eŒc@@À@ÜøÎi20ßæƒ¶gÒÙ³ÉUUUÍ›jrùdZ ¿»QC»>¹aú=C+îaÇãÝëË8Õ>®æ/µMÙŒ»ÚR­ú«Eõtç6*gïýÚ_?íɺéÄ)»=e0°ó@“k)èjî3I˰¬È'éÙL–üž˜èíÊÙ8+à¯)È2OMÛ™5@½›}O5™=P™9ç0Ç;/g3' ¯Æ4À¶da£¨’ */´¥9{}€ù®joþÂØ/-¸æOÈ;ªÉ–‘¸àrîhpÖvR1Ÿ)8j6í¬²¡ m–c…ÌFŒìl³ŠG5-l"G¶ŒiL¬ 1liҜԸ@ã™Y2‰¢ªŠTIV90æzøþßç«©m½’–^»õàû¦ÎýEåòß÷ÿÎeß¿,äv;W Oµ8§?×+þâD¤QªžÊCE(Ë=0Ó+&'EZ Zqq¼LÊÀÐqjÏSž’*“qÕRöGRæ ªyWUcÌsû8£™G'9­‚‡;¾ÔÀ°w¤YŠ®Ã-ÀÙzÐ3Ƀüýò÷=¾^?+úçÅß/«{”Õùz±~ùqÏœ`9øé¥ÜzŠÇ>ÑÄx0É0Å šâ¾aÍy*²ˆ0­6™µiáXT%¦gH®K-»¥ªRUÕ´–e GÓ'»æ¿]´¶ŠóP“Ëu57e§ûÚÈ€ùåHáìZã ;Aɼ s¶Ïõ†Nûlq«©1¡›äàÂjž¶¬m Έ›¤-kíI‚A“[;3#ºg窪Z³F1M¦gÚ|±Ò¿{s|ëu>[÷—F~¹zãáÌÓ›¹öÂÔÓ®\¤÷ÛíåO¯ûòB½´x=mUd¡fxF"‘UïôõR$] DEc¦hjЉ2~³3—;Gtoº õШ©{fLµ{¸›å ÿžžý´x%ÌíySIÂ,ñuFl•“öæu½³êåª)¦j©Ö’B¾HÆÈ–H¶Yê­§uUI¯¥¦Bˆ¤E¶[´õÆäŠ‘v0¾¾ Ißsz@ûè)»ž}¢Èv݈銣9œ²ÙpÅ š )µ—oéìEñC“³»Úž¶,e€ 4¦-{ê¡ÄD}€Æ{€ãe2ðPUUÕÁŒ»u•ºùUüctú—|Mxti±u¶/W½ûØ·>_^øgýW_æãkÿ*ßÿx=ýûÕóØ{6sÞŸ÷¬ûã¬ý©]Î1ßúÏ_4g¦æœ»f5'“îªhât5kÓ´@$›êõ‰!& ÁBïþ±u $8´ÝŒ[ò¥Î,L2ٙљJȧ~´Êű ¸ñÇÞ˜Ž³6öñl]ð Tªˆˆ¨÷J±®‚EåÉ\Ÿ 0›Ÿ•B‘| -ÚGÒé5gMÅ EvPÚ sÑ fH¼bÖʆ¬”·pY¸‹†±w ^¶ômqИ¶¬mŒB»š¼°4°{f–$5TUµo±¶Ûnyëœ$ßK›ë_>Ü ï„•71¿¹yžßòsûƒ‘š¯Ï«‹‡Î⇳ÏÞymÝÏÅûEJëdAö:û âPUT­J,WiÒ™=‚®¼–™ÓÇ$ÀtúÄC1ž92éÀÞ¨.ZPtBÈžÆø ÜØ|€6|{›ÂªL¡Ú1>¶L¥‡` /F4–-Ý4'kJçGñRí.tfÒsUUÕ|.åñs¯÷¾ø ãáè–…©4W×?¯Þ½úÅÅzÑçzmóª(ír+¥þÇùx[µ?Ö‹ŒEý–Ò3wa:œœ×»#ºã\d+:®æòÎÛÙ3GLª*nÞÉa‘]­¤u[ N]Y+òÈÕ»ÛyNì‹5ÏÛ“`ŠÔÔŽÌÈTý”§²4ÑÝU“ˆj¯íõªâµ?œ4ØD«¥L…;oö×çÞWÅ.Ùo²YH}7G¹]" b =;ì.`_åJÈSÌÚ 8‹ ÈÏŸ:khhb6ªÓâ^¶ì®±€Ζ¥Oɋԋaç‡ Œ‘Ù#zô‡ªªêaãdóeûÚX+'ñÞo[1 T/©Ã¿—?N¿éã¥ÝöhŸ^?-þzÛc—õòt¶4Ïû±j´“”jâÅ«cÇž¼I=™Ï¦û º¡5¹¬5]xfa¯*“Qg±2ÃÕLO‘¢IÈaĽi>G‚ ÜûD^Û©»“þ¨ ft;Mik±žc^f.¼Ï·÷ã’}ØuίWUUy§xxd°( ,G‹ú§5ÂQ&Ye„m€sÎ#;‰å9]Ê.æÃÉp tdY›`hA4!*›LkP…˜>qcüÄL¼ ^¶LqŽt¦&š„-}œ"‹@¸¢Ém‡"#£¤3²«ª*ÎÖc£$ïêìmÊÓXWøEe‚Š÷î_¹ë¯‘ ß^úòöåÞ¼åøßo‹ŒìÅíkÓôý[»-¦qY=Þí7¯ÈFÓPLÓOOW¢~ÇOêÜx1´=žL4cM‘d®$ûÎjGØt‘õfû veJìnÜðfí,_@w¼%’c¼zF:=$?äã°Õ k¥"J ’ec¿|ï[nddl@0» ×#² á×àU¤LVµe"U#îH§™HxšÀŽ)ÚZØ™ÁptJäëC)´,CÎhQwÎw.…e‹¾¶,Óƒ¤!7®-ÇÞÊLnO„Ý3©tƒ CUUU'"õšTÿ®_9»ÜÊNUW¶ÓÝÙL¦òà=‡¹/Æ[·8Ë볊۷jnëÕ«ºŸû¾m}wNN;V—àŒúîêi“éš,W䀜dâŒNR…Õ^µ¬P^Úô0ÔÂò5µ—§Ò~[Û1Ù»wŸÃhÂçÒ–¦©;!ë¨9çåU¿ï-뽉“µÑ¶"R‰«$6F"pqO:’Av$8­XË_*M+Ãþ`Ê<ìX/;ÒiM¶"‡ã _Îù¸ƒjriR „5Íø–æ}CÕÛ¦ â$´xĘܶôfLFih<[6ß "Ðx`wšJÓ£7±ªªêb¡±®~æNN–.®¢5¥?¿ÿÚ»ké ½âhÚÊe‘ºÉþÇd>»Øç‰/çi\î's¬¶ËQciï‡þ`r)X6pvÌÓɈ‚~7giWaž†}8ß§›uç«|öuÏ3ÇS@cÕÃL§2k¯óœìîôUPä^,ØÏó"µ¶[õ⣠UÞX–@ˆè pD#¥}ª”²TêUÑsšþE¦×ÑK”ÐBޝ\/i]i;xBè²ur áÄlÚÎ ¸–agŽgòMÛU‹¶Œn  5–-«› BïI`dF™CÎUUUÅI7S²On.ëìÆ>ézÿÕ7o ,VçåÚȫӞûëÃýi¾½¯ùx8ËÊ}÷óåm¼>÷oÁD^&£ÕkõJßÌd’ê$ÏžÞägD©˜òc2vÒ·³mˆ{Éb!Ÿ¥&‹ã!ÿ&•³é—$`¯*"ŠjG¢ä4º]L/ÔÆÄ0Çy8GöcÝ{ØŒ1Ög¼z’åO´6Q dS|ªÒGu¿ü®>£AúEÄÄú»QŒ‘¯RÝy#Ó!€9êÈfû‚1õœe£a0°Õä äsšÅl#a¨˜s>¶Œi A@¿–ƱA ’w‚ßîÑ£—¡*RUÛúØC©žXËk‰ÿ.m+v?ïð"|qÒóŽh}ä­ce—êZ÷98SmµÓñvµ¾z;©¶ÿ6θ=m³ŸœpR?‘Ýáh<ì­Î‹NP¡e S$¹#ÚWÔµ(jŠÚbMpx9oȈjÈ:sš†Ñ‡þû–an¥r£Ô˜}‹³óe{TcÌG{׸­ã,Œê%F= 86ØÆŠDJÔs¤T¥â i*’ä½’Re´ÐÛs½ø>r±Ô£vÖ‘ÎÎF±143lA€M&Zwõ\€¬…CC`ÚPuX ÀÇÐa+P×)7ê&¯Ø¾J>¶L®Ç 3  6Ž-]ƒ3ˆZã½ `”L:“PUUUKR¬M0€¼\ö_í¼!í”ùžcõß»ç õtÍß.ë?ÞòñÇbyÛ?Z}]y­§öý²þøñtÓ¯ã¡wµ9öÏmÍì;'˜Ž¯˜U‰z•»‡”Jää*ºûz¦Ø 5™AVûÜ!ŸÇ0CÂ" €§j(ª²U}8uq$‚â¯;ÉFiO>Ž*$¢9$ˆÕ&«/A²‘±8šÚ ù—y}¡ñ•%¿{¼ÓôŽæžºU9„\c°sMí¾R²E)vMsùLßý°V+5+íÛRpu ÖIn'„úwB;H±z7ãfa¶œ%ž¶ìq J6, ñlYÊX"Ø ïI8œãΨG½‡d¨ªªjk-Ñ»÷×NüÛ‰ Ÿ}üX>ö=;n»<6 ÖÏzM-¨µäà\?\ÚþëènË!ËæfÊzGAýÕ‚A@Œ÷¦s)RÏM@ã0Ô¥ÞÞ¥PP+k:›fiDÅÝj°ª’Tû6jœé¿¿îÆ8‡âœ[=S@å½`P&§Î¼úd«î5‰iè¶Q@Ä%FÖ¿ÒcÇS‘÷$ŠˆA€ð­¡þ˜ý™j>FÚ3õ6¢Ðq’~èÑØAå  ì(Åp0ùZÒ6MJ1G181vi}qêêžî >¶Œ¾')Ñ @ÃØRÇ5¦…¶Bã=€“E9ªªªzç!IÜq{²˜lד%ý»zínUÖÁ“Ýýü5#ÚOŸ¬7¹l ¥m†**&%-1ٛђ!0ʸW pT&&káñ>Ù9ˆhrÌt'«Ü7ÍBóæ)ê¦*‹(‡FÈãŸL·‚ÙUž»E¿5œ¢¨¬¼wŤЙ3vޱu-6}‰÷ËÛ«Ž_¬ŽñmXªªTREYRiÒ_ÙèÚõo“Ø'à-Ä”|ï]ñÖ¹ÜUD1¢G³k]T‰v9²æè#]†DÌIî|vs”p8䓪aCòeW¶4iŠ)"ú" aKgZa\¢†ÚxF2³“PUU5aQ}¸^F¯Þ½VíV+¿ý4øç·Žß0ísóß%ï©óÚýõÖüúó¯[ùèd×-çꬶûöÉÞWgnuÎDª«;kV73¨(ЍY†‹Ø‚ÊËr;`&;DíŒz¨iàÃZÓn_M’i”}'Úa1Î ʂǺ IðCŽœ1cÖô]a®Ñ”JPQõ”*„þ$¨I^ÀFKØÍ ?n{t²ËmÈ»8H?8³^È|pA9UŒ‡9Hn÷_ãçeiU·o<¯Itë‚¡úçp‰1Í!=8¶ô©' QAÚP¶L}̃€‘´ñYŸ S5F§3£Ò™CUUUû(ÃB÷½ö^Ö¢Ën~ïûáÑñmÜàGòøôÜ¿üócÎ׿fÔâG>F+}ÕŒgW›YÓbŸÕ¡jqÞU AB©ÕÙŠ‰þKœÅÌtêNe!æMÜ14t©" ŠI”gL“OJD³BO ÙÀ@%Éôð«¶.×y½@TdÅQ-£z×_[åŒd/Þ†Úê{UH¯²ìÀ áHÁ/QÝI Œõc™2H¶»Îké7“BŠú›»*jíFòš€s¶ÓŠ­Ú\½m¨$¹ÉµiNcŽ\6œ wT¨Âpu¾¶,㊀•5kË2ÉAqãÝO£dÑIŒPUU5Š›q×NMÚÁÓwÿצ´:~XUi~úviÛ×F½˜Åi?õ÷ïgý’_çÚS{[Ï+ÕŒÅÍÝšì0ˆ—ªr›æØo·e惙EïWfÇmASF¼(à13QÔ М?ÛÍÒ¶Œj ,KÕjœC,k„žŸÛû󑪉`:•Uñ¦ cW©2(œÅ¬Q6×'%’¸õZ¤B%‹”ª$ñ‘J*µÀjÛF éöÏ4Ÿ¥y>ˆ}qØGG¿‹®[PÈ•©Ö€˜ÑP5âˆÞàÖfØì¿P%†²ûûÐQU+í–ª¸»…"¾¶,}J º iË:ö"W€Æg<)ÞÝéFö$ƒ¹ªªj‚S51„ÉÉíË·m®h¦ýˆ:‡èµóßôÖ1ÿè|o?"…“+õ³ÒÌÜ/3¯Ç9§3Oó’™àŒž.Ûœ™¨#‰ä;m ‡®2gª=KŽûÒP£µ¿¯Ldf & ÊTCÇ2“÷cÌû>¢NÒNf’Âñ]IFt)È®¶ n ‹2rÖZè,˜DÅso=Ôcc@€¤d…£;Ó¦Õ+bnáÀƾ[TÝÕ{÷!ĵÒÀ‚pgŽ$6_r™grÃUÉ8¡ MvÛù)àhA«~¶LcO ’ gËÔÖØ ¸h|¼î' £döL²pUUU»½¸i ••~ìÀ²]‘Íø]kû«Míç»ê!vý¿…§çÛË'ñtuÆž—]ç~å)yXvk“ÌÉ;³n{eõ~&s7ÔV‘ÅÚIF5Ï“n„=I¸Š’š„ ÑŒ3¿rìÝÿÌ y•è>Æ]š$EÒú6Þ._áߦ_¸}›nH›F|}z‹þ:?ÆëÇ÷k¹ïÏl“A¥¹OÎë÷‹¼¢R5ƒEŸ33W§)Ù54tŒfRðTÖ¼Q—&ÉlÖé!.Fý|¹zÝŽÑOšU3ŒûÔ ½Çáþ>çÁxMeMQ¹4ìªf+¢b|-{J»;v ý­f•2èFØ  dÝ ÇI¶m R`_2¨E¶UVm‡‰ËtŠó>¶ñÆéE²U5œäb> …½IP\¬Ür°v Ú.ñaÌÂWÝøÀy›¼²`ëOggSÀ< ÂsoS[ó’}Lÿÿÿÿ ÿÿüÿûÿõõÿüÿÿÿÿ÷þÿ ÿÿúÿ ýÿûýÿúøÿùÿÿÿ ÿÿÿÿùûÿÿùô~¶Lm‰ 2`iË2ÍMl†U\Ðx÷g÷¨Ó™$³ªªªv‹ƒš`º»÷#¯ÓÛ‹øýIKæó‹Sÿæé+{cv¼ïŒþ¨‘'Ê`Öf±vO¯÷õ‰½Ú3Í9ç\6V÷ÄÇ<ïû4Bžeµ =i¢»$²pÒü³fc¹c½«Žš«IŠ®§ñnOÉÉÆñ©÷•]ð–s'CM’™æj›¸ i Ñ5Ê^»ªTM?ÎGP@ÔÈ6FZÅû—0±£›ûäùªâ×ÑÁïlWüίâÿ×9Ê êZרÛ!SÅ]Rr"t¾Ž jZól¶ ô¡ {WÔ1ì° ž¶ìeŒu¦WÐx¶l©@ÜøLⵡܙ¤Ó¡ªªªØ—Sk§R¶%§i˜_Ú¬&;—;fâÐÿ$íîÚOg‹qRéçãR¶ú—ǾÝ/ÕY¿_¬æ$#²˜œ‰PÒ3CêÊ~ÇÝdk4í8cjI¹Ì¹úä<ç£9ërgÜö#óäCÝqÕ'šyGÝË¿£Ö{ðòdNM¢»€Š4ôä@p¯A Gˆj-ìôÊÆ=©JRùÊ“ªª¤R•zJ… «‹“4mÉÊg›þ-9ï.·\(Øl@h`ÀìQ×CnCÊÐc›l)äzw#"\÷E¦1ä`z9˜ÛKž¶luŠK”\)´†´eiKpVÐäéãÅøÁ’tf”=UUUÅjE ò7’\…6ûå¼ò‘øÒ:?´|4óîÈvÖå½=È_<Ë=¨—ò“ßN­ëÞb"îÌÈ*…õZ‰£z:çðS'^µ}­˜ÊÃBÑë«SÜÐ)&» ÉÅx"¬Í\I“P9\1»’°tCåÌ0ÜÙª~Íí!ІìZý²ǨÝZ!XÄb0 WÆ¡°mà Ëc?ü§öiáå2vŒ?­÷Çä|Rí”Çc§—´‚Ž4oíž“9%]B³x0p8ç6ÁÑwF`#rRm€1Y‰”!²¿2Y<ž¶l©A (4–-cš‚3 jrG{d&¥¨ªªºk‘•vëwÚ¿Ìgb+±l0xôÄXUÖ´•ëgýÄ`_Ú/¯”äa+—´—Ñ̇ŸÏÍ­ß¿íÕY§Ø{×ÃzhoÙ>~”cž“tš¸Zh¨P™5=`¦fGµ<&„îi†ÑT1I'gw\1ÀC‘Ù›7ú©~ ³º²wÁì”*ê„î<¯ß²º3©U. Ë6à Ù U ©’´ýo{ddYôðÕø¨Ô§¤ª~u'sè›h$›éÜiüžl¨~c™˜÷…\†ªc,®‰G{·çíç¤ r0¸«*‚=êeG޽ÿÖ_™#jðËhþ¶ló˜D#/Ec« kËX—†"qMž¸xÆît”Ù H¨HUÄ¥áɨŸìº·Myçge¹j§êÖÉmþÆo]´§µGgìäûëCé'í¼œŸoõ´~œ—íÕ9O‘.WWІ¶˜Âe$:Ì6 ½Qµb„V:´Ùíuô=«^¦ š–E·{}»ë1tVCs.HÀ¾IÔ\EUeáÍûë¬3Ô0Ó ¯Ö¡·Š}À<‰èçSRÔ:UOŽ×aÙãWo H~lA³ò¦SæQôèGZg ºz&*N$¢k òÖŽ­AT•ºÓ‚šF“p}p`z%æ@ö…šO>¶Œ~Š*Ñh=œÏ–¥MAèAã²ÔÚI'𪪪æÿµÚm¢óYcÕP¶±ëˆ˰ ¼yöàØ¹áoÞ.ÛzPÆã®ýƒW¾/.ü<¯»¹œÇfqƃWݵ—øÌRñ$£LÓî5¯Ê÷Ñ>ÝöçmÜï2[0¬&%` L>•PÀºÁìL¦`Ö¬¬YU ½¾«§gÚtL©†ÉLjŠ'ž&ÇÆˆ½ßÏzž_}¦]Uv¬X§ìØÛ…ÈÏóØûSPE¢A9]\¸âÿ«…&xê";Ĉ䪕îø@€l#…©tÜNEÕÁ0à*yšƒsSbÄõ›Ÿsáx»ú™,$¡å~¶¬u  7œ-cŸ‚2@ã݇‡³33ÊÙ«ªªº‰ 5,sýáò;ùî¬þð†_Ο0¸}Ý¿Þñ°ýoí\9ÿöB[mkûâ«Ñ´>Úyj»µÿþ˜Oy]¬çútÓ´Þè´™^úºzÐUÓ`½8AIG“ÅÓ¯ `†¢^6pŠ÷*º˜V1Ó1Ø y iPBÑóøC1 %ë19«ä¶(…k9€)C-ØÄO*U’¨¨ªR–õ›ß¿Ì7öx¯;’K‰Ã=Nmmbô`ž÷8—GÌ9qW¦ï€PÃ.#@Ò¯³7Ä7]ö† €#× °"õ˜Ù4Ã^¶ôuŠu¢Qú‚CÃÙ2¥)L[…4>å)ì̤én@UUU[Ï굞Ê^XŸãnwÿÂ6ià4ácde®Çoþdp³<ݼTËeÓgõ6ýEsö¹šYd]í ×íEFºÕßô.F.Ù]9¢pÅ[Lvg>ºLfËŠkÍÜŒýfÒq1°ž¶„¼Ö=WM2 \}ÛcÖŒûåýuïÖªTWµCçH*·•XqT¢>>R•J•îb{Ÿí?Nòé²£­j‰®\Cg¸;­…\ìÛš™w6{m<œiý;€¦ŸS„šH±'’¡}.ÓÕD#å0lkùmsž¶lqŠT¢aMÒ–-ŽgyaŒ&÷,°K&Ì•«ªªƒÙä Q KQ+#:þìFǃi´¾‡“ú±°â¸”'Ünµ|YáH¦æük1rú+âÃY‹í5ûe#Q‹¿Œìí̱¡-ˆ:f9LBeöµô,$ÀZ[ÝMtº¨ò Bæd†mHM5r|È«H©Of6ä•UYxͤLBZfŒÛÙsAazì Öm>ÔÛIÔõ½³Ÿ.D]CÙ¯‹«W›E؈¾¶Z›\œ¬Ýg媱‹(oÌ`8NÍ¥Z×qƉÇ=»ÇÔ!ý?ÄCÕ¼û|Ô3Þ¥^¶Œ~NjÈFŸX6¬-S“Th4 ñnÓ¥—¢ªªêü¢Ž¨h6}ï2¦~wÓnœšzXûùUÎï==œ¼XǬiÓ4—sµÔöèŒë½æU_q›¡.<ÎôP©Q¼&0RŸ8òA)Tè?cñ6¡g¨©= ð0[ÍR=SÙ¢fìl‹z“šJªgºša1¾¬çq¸Ê£©X;u.‰÷ý.Ó €À`­QQ)©zì}*d# à’Ý.J^‹ÄÉÎ{ð«G½–sÚÉïâ²ãô¸¦=]4S••m‰(Ð ìjºÝ/G,rpgçxÔäÊÑaœÑ6Oq¾œ÷tÔÑÛiÒ‰p>¶ôi @ì‹™†´e¬sP“¨ñÙ€Ák’tš‘¬ªªªú{dS²é{Ë~³êÉ«±[¾ZzÚ8A´7p~ãó£S?§%ÙÞš²xîš½æ¼dÝOõ´Ÿ„iM&Iî2K¡Žzªð×>‡xu"õ©\€ºGTÍ@ÕT*œ$ß[˜¼(l¿.çâL³ÊSkü؃*Û Ý ¤å{¶‡÷iÄsÌì B8e0 áK"ûëûÉ„¯Ö…n0áËÛïÏílz9ZPÔ˜í_e2âán]pbZМÙ%¯›(V@õ†MàØàÂ#>´"ðÛÎÞµŒ²Åf@nìZj³$hrv&toâPUU5=>R­ûx+ÿ8$/î7m}ßLJû¤Ÿ5¥Ú½;6©¡½µ|ë!­¦^+–+Çí²”†\­ €—Å̤:ñK²ÄÄR]䙍կ:TÑÜéyž|¿¾ví äZ½3W-ÓÝE•I [(=u&´™$ô}çÏM¥93Gì·—&$õX‹§ EóêgÀ (sblÞ›9^1ØX ²d†9~»îa{?,·9O'¯“)n{—UÍ„Ö%TP¨sn€dr_É®Y®áÞuÆÀ‡´¦nm .15TŒf~¶¬µG”Uµñl™ÚS„•4>n¼EÃŽ23;IpUUU×îÕjÍ®±õÊ~?¹ºþŽ¿ÕöëÓ#Ö·—¦×£OóŽäþø,¸k³¨M{Õ—×m©¹K­OÁŠêÖRèòÂg&‘¤ÔÎë®jºòPÑäDÝ,G¼.ª³«ðj3O.§tªXªûžê®ÛˆÛ0™ I›Ë3œš³¿jXHœËþØÓÕº›ÎÅÀêe¸‡ÇH¬+Džk®qo¶‘Ì*K²¢ßÐQ®¢Åuu2P •Ä ÷f­74›»!ÊC4ˆ€|€u®“` Š²KÒßÿëmzÜYœ‚¢…>¶ôi ΀eËXÇä. ·Äí¸3#:3Y®ªªj#µ¹…e¿†”£Åéû$+-®–Gùøœë_=­NKë&—hÕåãíõm}5ruY3’ñ0F¥yq˜³4ôJwF)زòR(gÖÊ´€QÚkžà°ËL›%P×ò000µQ²{?þÐ̾4SoB¢“Ä9Z[iËmKØkÚÆ˜0ºŒ1ØZ%Qé‡&U¦­HWÓﯯڔnÒõ¶"äÁo4-öW#²w'Òv…-[c³ÍýŽÙ_Ø uÊ !2è<)–IÀÊÎk¯c´¬·ú¶te J (¶4„-]šC0( h<;3bDYRUUÕô˜íáâs sð9vû§ß®xzþM÷Œ?9½ìýøÁºÞoÁ]óe-˜6Á¢víãþ¬Î‹_Æãœi'ùÜ ø:‰V½™j x!™&Vnº8Mä&{yȶÑTǤӢkÏCç±¶Ùú¹ÜãædUÏQ‘8EMÖDõ½XÎ`¢¡-½ë Ì*‰ñÚxŠWÉ¡ŒŠB‰+E` É@ÀjЊp¸J “§i4Ú¨úÁŠvƒŽÔ^² ­Héï ªôa—ÎÄg³¡™‡ÖŽUbqRl±9_÷ƒÙùcîLârZ d܃uÎM¾µ4rJ ª¬ 1léÓ´ˆÏîe.Cn¨ªªµ rµªThóÛ·––]®¯ýâñå¿Ì¯ü0ºÇ²¾š~øÊbžž·÷×Kõ³¥Ô´L]ѸxªKª_Õ›ÙgfZΦ‚’õi 7 FËІ{¢¢«Ý–†Æo°ÔˆÇJ{þyÛW ŽÈB9aª )wO¿ºLÃLŸ:qRS¨GÙÅ‘®.ri©QÓ©GΞ¨‡'Éãs€É×¶Lq N@Ç–µÔd’ÐÉ 4ܳPÙ½gæTUUSCƒŸpnîÏ÷§.óƒêƒçä{|òŠóá“TNž~Ù¦cy}Øš6 YôïWíûêÃ9ý}.—Ka'gžÕýVé¯éH¨ª%ô¹gõ:5O²c“tã7aFM_̘¡ª›¡Wä•R“c1” €!ýÎðTV#š—So¨ÌQÎiL†÷Oýµ½oËMlfR—SB¥3bmµ´Ô»’ªèׄ‘‰sÚhÆ*ˆä¨F]Áµöõ#æðVÏ;¸Ü†n>C;£m´ #͹C7sÜE‘íÞØ.Ì·š 1KNiúIIÃÑ9 Þµô®G ¢5¤ ]Kc¦Ðäc4žÓ3³$™\UUÂ0¬†ƒÜkUlúåíÅEíãkn=áñjoþ¸w³cȵ½W‚žüôÁ±óè×[ÁùE>*éKõCzí¹b¥z©nµ÷±?ÚÛâÌÌ&—­?™ê¾s†œ¡ [r…¡$D߃ƒf!»&Éš$b҉ĩ§” ÊZ*ID¢ê¼ø $Eû?ŸaGrövu¤À®â0’Sµ°owtÅ&ÀBUþµ4~ E , hüZ:=E‘ˆ h¼OŒNÓt¦ÌjUUÕˆ®’LUá}¥9ËŸ»¸µúh>öiä"ñàhqŠú[šß¿Ìy9|:Ÿ¯æÇú\Ûý}æýn™5ãŒÊKúŒËÓãÞÀЕÓÕfÍÛ}rˆ§à:•Ó’–ÌB={uÀ{ú1ãÇPuoMMïvPà‘)ØØ¤x²“ö`.’$T6Å ^Î.[]°Nw0¯:³N-kÒ@$¼“½¿O^]ýø*ö^뾕ö±þs0½€úRÍBpn?x…HW[üÜú.GCq³*‘X`'@œ¨“•þvlè¸(%݃K¢>¶,qŒDÐ8¶,qÌ D£ë!m<£”Œ²³)¡ªª‰‰kC#‘dr³÷c>ÿRÎË7?½¶Vᵿj0v`;fe>žïß¿¬ÿøýëSíÑèÖz~ÌnU'ÚZ“$/åÂS8&GÍç[¼m§€šÌS{1¦½·áiËiüâ!*)_@eÔ#ÓSÔ¬†F$[†(Êi0töÐ_žÌøŠ€¹ s© å)VÞ|º='å个œËE‚'D¶rGwo?¥³Ü]ÓòIÚ/t^, êºê†‰¯ò…ëµn0XÇ­žQuNÀçĀ̺qÆôƒÛ3¦A·òYˆ¶‚r„FÒ»“x2‘aßñÕi]Í~¶,u HXhL[Ö>Ps³³GI÷QTUUmòÚd­cä¶š*ÍK>7-—߸›š•¿¤ž-½ý5¹zÌñ|q˜ÚçL—õ×fÜ~Ük=òüt6;ˆG^ƒ¸­*w)€žD˜gçÜ:{›'{Oº0tf.3:ˆm=«;좕P4¨¢“¦h*8ÓL¥qš Æû÷Z$L{²«h{1Ó>½óÝ¼Ø –£,P©§hâ‘JÞ«TE’FÛÆ¢ä£Ò†¤]1¯KûÓýèYûþ ²!ã Ò.÷!ÁhµÃÃPßuT8’4èefQ j‚Øع߭íd¡-ä#¾¶¬i‰Pd¢ kËÞz™k:z¸h¼7ÁqwºgfTUU5­‰6Ã@!è…û>{ì»úÍÍÕã“fñ««ï|äã?ªï×_28çñè´T§½¬Çùõz5vÿñ\L™õzvòò.•ÝVçÎôKeÐóÁ‰mf’d¢Í(3nOš9*NŽ+Ue_5Šѽrîî¢2ÉY¦»ªÓdÍ®!ŸêéSµ¯Ê‰G@Š2šÅÙC.£ª3"F$À2ÆALk­aKAñÛŸmQµ¸¸"þ˜XåõI—½L.âR¡`ð®;õ8m."ñ¡AØä«{²u†c2qTÙÜ ?é+09–‰©ŠÃà"_UA0Ä®~¶,~ ¸@cÚ²ô%¶¸@ã½]è(ÊÎUUUUk ˜VÜñûŠ:¡~ø‹Ëœ<~×½wª‘‡K¦>ΤrÉl¸½íëÕ™c[gå•Y‹·¦ jϹEUÌH¿Îjö&®~6Ü 8»úT½é9ñà³ò«I‡Þ¾=H-Ý5t:[:Üö4Vš­çDÝ'Æ3pg”³3‡ˆœÃ™c¯ëõô®Ö”ÊÝdw3<æøWÑþ`´<.W½š‰]æ¸Õ}ÿgwÿMEV‡(òoó|¿‹›&Ö} ‡ ÐfzŸ™*Ÿ;K¸JZ«Ž¸*¡Ÿœôì\n¥|´=¶F^¶LmŽ Â*/Ï–±ÏÉ‚h¸@ãÙ™=3²†ÜPU•>‘ª+çzÏÉ¥,ùGÖ¿òHX=âUmn~&¿æ;ãÔKóÀV®—>$…ÕNÌ1.O[ßôAqÄ:²†Œn¨^\Œ Ô¯f’˜*ŒÚ UÙ_CµÇÕÉÎ-{À#:¯Ç. r`‚…a (0 4UÎgòÄQ¯/šR!¬ßŹ˜¨°ëübWj«Î¼ŒT'R¤$Ôå÷’ KÈÉ…Ë›éˆüR «Rñ„êÁñÝ zíºýüÝ鬭ØÔ(ƒ‘NOÚ:m­oø˜<éQŒLnGkZ‘Æñ Åô&-ŠB„s\›¡s€†îÖ´ ÎÊÌRßK‘?ÞµÔq 4|-µŸ‚2(4ΕŸ6é({CUUÕï½»¿«$¿~;ü=ëU»ZÚýåÇO*|õbþû¯Ç寽޲\ù㔚wÕk}¦Òz(gÎÆÁ½ª¬ªŽGñî`¦TáîdMLTZTÑ# r_Lu8žÕ «¡Ð„¾ª²OÓÕ­.¨a^éìËG8çÜffâaº*&Ѝ«–wˆº§”Ù2Èz#wÚ- \I…ðµ ´êw 1¡wpl,»–æ9®'¸Á~ž?œ²aÍtÞÚ.Ä)gÀ`+±ÏËP •`8‡* ƒ`pÜ‘³‹5ÊB0lœÛWYsëþÔÞµ4~Œt"­BßP¾–ÚÍIÁl, qÎ5¤™IwYUUUï²,5,„M7Œósý`X²ªB ‹+îÿ:ìñ‡îÈi›^§gú&LÕ—«nÍ>ÕoF]æ‘t”qLì *žhŒHyTj3Cö¹•9¹ÝI½™WŸé&©~VçRÊIºxüî¬)yŽÝE½³ÌËÄ[ñF=ä·E%Žz½Ú”“/ö{:vÖæf¨ÈnV`îjD:ç~3‰´ñ”£×Ýx ÌŽ†šßÃ4’|Âӑɵu=5 `0ëæâµõcgZ:Ñ9„A’ýöÀ9‹»øuZnþž#@¨G þµÔiŠ £Î_K]æ¤ ÐÐxxÚ=33ÂCUU;1˜”CƒêølÉ×®£¼ù‡ÏVJÿøÕUmÿvÙ&‘ý<óVJÅ_ß.ëšzuî™WíÛà¶Ø£wNÞVŸËhX/.Õ&sÑv†0CÒ™¨âYZG§ÇŠqwæ¯t LÚts“3“YƒÑDk&CZ¹0Ã,4sQ™‚vÐÆåÇDrmi%‘TL)ìÎÝÇ)šœib¶ÝlÓó›âZV¹aR€ÉàÞ¶¬Ëœ¡X@cÚ²ô¹fAÒš ‹•”©¬5'gX85¸=í9õÖâ¹Mx¯â¬#è*T˜Ã@7#ƒ±Î¹Ó „xV!!áH [â;æ$bYž`àAXËT”Ê)¥Uß*]—wè¯OÔÆƒ ùãóô‹qnm†Ñ¤ÏiU¸º€ðêâWw_¨Ro¶ôiJ öÐÖºNAP ñìNGIía¨ªªjqÚÊC¢ni¿¨ð>ò«°?z§ÜýÏ‹»z‚7ÜOÿ´Âe;<ø:yxÿÑMá°¯ƒÏ½é}¿7õwõZÔðV÷Ëãýê×¥v‚¬ì:@â)&LÇ@“9“PKu<Ë ÷\ÏõZ‰ÌL/™žÄ Ëòt&èV¼èÉ7ïà Iÿmý’~,æ(ºP¬§ رÀ³2ƒ@ØŠvÍØÿÄ×!V4TYÖä±ILtî†ÖOŒç;–íýÿY(D>ײó»r0—çgw@²†ØˆB!„,üx8ÐvåÀ´öy®¶P ^¶L~ N - ±lYJ . c˜&÷$°3“ÚsŒPUU•nX-"ÛîäÖ²®ç¯üŸÁ=©]?(šì½¡·§98j@Ø7ĘÆnØ4(ëNB+ÞŽ û>=)~¶¬µ]ÃÙ²—0Fã½€]¢ìtDlUUU##²™¨³Œ_þöNöš7ó`ÿq•?Ü}ûÅ4­ƒ‘ûór~õáz —š÷š»Ó_{ñùë‹?¢ŽwgþBÖLêÁ×b‡yF9 ³G•±k‚ÌÖÜiòîÿ•Î+âa˜š®3ÇT •yROæý Î6î.³ åZ+«³‰ªcMIt·˜€L‘©ŽU)¢{Û|܃œ+¿-ÉHˆñŠÐÂØ^%Q•öm©*.æÛË&¶•˜N³-kÚç˜"yê€Æ´H²HÛÍ)™ô  ™»ù=@_€=˜#t<:B {n(>¶ŒqŠlD!^ ñl™ÊÙ˜D\ƒ·öÈÌÌTUUUÕ’Ö5õð’ëœþ©žYöbûÛçÕ7UUX”y÷ýkçÔ×!cóúðtÕ;žWÅ õ¬Y_rú‹’´#97 ½c½»H 3KY¾j²©*º²W䞤²È±Ödf ¡‹¤êÌ@ï›·[êS‚Ù=ªzweNòq 6»¯*Ç´S̤`QÔJ¬M’%Ý1Q³Ó\<’ÊOi+•GZjÛÁŠ¿ô-¯Þë´•hëÉ]`'ÆÞÎ@ø(?B#›ÃY Ùƒ 59¦¼u6³]fÉÚ ²e£`ÃV‡#$Wó^¶,uŒD¢!g˘¦ LË Š¤MnìÌL:›¬ªªª†Å)GDMy(f¶Ìµù}‡ï=úñÊ“·Oÿü¸O޶[œ->œ×?Ülm¯§Åžs¾íöûåÕo‹|îÕ+ÿz=“ꙋ•5Ñt—ûxèžtötXÒ¤jö¸Þ(sXrOÇy²gS ÓeG(÷ŠgˆJINŽiX†aBeö+Z̫fº£ž”€¬vìê{Öd¦–$+‹ö#©/A§Ã—ÃCô¾8FfDZz-“\¹‡¯x¬fûÏ‹ëqVìrÁ…|cg‚9³»Æ¶È†Íº'ÕÌæL å¼;Cú d›P0È‘v°r[½{+Ó^¶Œu N hÐP¶Lu,’‹ @ãÉÓÑèEYÈ`UUU}Ó`"Btéå÷‹×nõ_•>°txÃííÏÜJåȳûÊÇ—/OßxøÿeïÓÖùð©ßä¥þ\·g<«l¹Ucæ”×îjõ’Ù1Y ð6Ygµ€øZv¯)ƒ Ô­½lKÙž±z*ˤΩ,M£7ÒSdQSÎùã]¬EŠîûdVQ™û*<éd^¿ôŽû¸P‹ÜÿVõ•¦·DiêÒ%vl ¼ÔŒûØZô×CÛ}V  »Å×m*¦e}©„ÎaÛû\ÀnÓ0s¡eeNvÑ™SÜöÜ6¥â“;2C|sDwT›žè‘w^¶,¥Y°h8[Ö2ÖA èA“{;jdfD UUÕd³3RƒH+«Ÿ½Òûö/WW|f©¯r»þ±Vÿ­”Ë¿l7rÛ”%'×ëÕJ¶ñüqë?žîYž2Ä!èÏÂÍßóP{ª±˜Å|žëwÙñßS±'CÑ@™Ûô™ ™Õ^¨ìš‚¬k­y6 ÐÍñË)†B3 Š³L4í¶ ‘“T/ݵ–xòMsŒÇ Ö‚´ ¨Rɺ·NïÄäÿ À úNJå´£õÇ„ÉÍag·±co¤Æ y¿;ÙÙìˆk!FHiŸ[ƒ]\64<ª8̰ ®n€óÈ'Þµ”q ¾–:αA^@ãÙn0J†d¨ªªÊ)íÝ 3ßœvöüòc?èO¸ÿ¶“O~9®Vÿ8r)óéãEîô÷F­öy÷®»i—M‹Ë˜ûõ²lw\5•¤B×:`ÊÑ6zFÅ ¸ˆ èÞXÝ{«37¹Ìd»ÛS<©&=r œõØsß§ÈTi–ì¾?Œù9oMÙ_wa‚Ëqž¤639zfÕAˆž2¶_ ,?z¨ÿ/TµY'¿ªù) ÀÀ‚lèbd¨ÙŽ/ëý÷Û°éé•· úMÒ˜LQæH¶Ûå\bÀÙ°N¨+Ýøð‘†8‘äŒÍ¶M†%â¾µ4¦P¾–ε•\ OÛ3“Îf«ªª&¨ïbhÎüqùj¾ñ×gNÝ«Š¬Ï~¥rðp¥¥¼·Ç׌ñããÕOý‘1wµloO / ö­=OkíÉÙeLùŒ›Ê¶!MÎdÍE¯ ZŠì2¹ ¡ì®ãኪœC½ÀRÊ…<Ú(—E/”˜l|5 ªÈPyèrÙ§ ÃöEÜ"¡=Ù½TöàÑ@UªJï’Š³§g¾òm ‰EB¯‘-[ÄrƲ ®K‡yS”D‘ lå"c0 æ°év]KሣQXP9"˜–·ÙÍs¸µvؽ젙7 2_pS^¶L¥‡bÐx¶¬©)˜†4žIg&¯œ«ªª#ªT±Uv*uô›ûOOKía _“§¡ÐöÞ‰Fkà w<ÝÜy€ yJû­_çaÌEû£–Ïos+ɈŒj…š•3´/&¦Ê$ÓuW+𦾥M⻟ÆYðÖ·s¡"ˆ§!Ñ5“LŠúbœ7™ªu”¼ÓñÌô`xD7E•»¡c4SÓÍ3ÓÝž¨’^Úд5´@b )AU¯*ñ„1 Ï<¦ïMr€±úθ˜Î#ìî>+‹fh toACOðC<`4”„ˆªwql›v˜[7t%h¾>¶Œ~ A ,5ž-SœC9VVÐx÷ðT°{TèB“˜«ªª„Ó“>)’Í·Þõ¤OsÌáé|]8Œe{^}òÇÔ©©óý/ëé’QZ©EmõÚ³cåqšõ.—íímŒ#«ëõ´= ãeÈ÷YÐ&•âè»ô¹ÍWt`lV~¶liì8~…´ÉÙ2¶94yw œ¤3醤ªªªÎVSš1wçϺ¶ëuãøoµìwé7Þp¸ø¸‘WnLFFuXÎnw¥­~/Ÿ¤…#Ò¦äÜ·9žÃd½ßDMETawùª ‰ßšd¸—©V-I/u•sË”ÃÉÆÙ@f%”Iaw;èqÉÕEsŸ÷$fº'¢¨m£&¿Ø“÷ÎÂøÊ$çÈ(}·WWu޲_+—æ}‡\}¿öûJ%Þ|HÁµiLÇÚre^2Þcu÷­qÙn•;ÉÎË‚I¼sÝ„… RvÒüìLb w4Äöd‘‰.o÷^¶Lq*Ò`gËÔÆ"sh<»GQfÖ UUUÓªQUV=Ì©’¶ºï}l|^ë·ö$í`àëh%×VTN=ÁÛË&<Ñ·7ÉŒn÷ݾõŸÓ¤wÎ>¯Rgõ}që£,”G›L¨ÂÉpU>gWt£í•Zkë^=´«^²c›ôÏSOƒ§ž1oŽâQ²ÕeŠñ)(¨1‘“®ÉªÄQ±fš<žT¨âª(%UU¾4E”"–e$)B6€aA²lÙ€àØF ìœÿ¬3ÁxÛÚ[<vîËåjGºTœ”@Û„¶1̉ßd<$K¡× #a×7E×?ÐÖŠº•]þµDäeD'ÐuÐ5n-òõbDãú¦52JFÒ¸°ªªª2d÷Í©u81!Ø¢øÐˆ+Ü`Øh¥•™cõdÜò£çõÅÔ¶E•¬6I³ÎjÆd$  I€f ÃÒ")ʉã8v1²líçª(Râ¸zQ ƒÍÒRSŽœÜîÆŽ1êTÎUÍ<–S¦&¡gvSžÌbRÓ·nêè‹’RÝÕ+4m(¾¸ÜúÊ4c[‘±PyG’ö¡1­ÐUV,Hw:<óíÄøÝª×ö û©¿n®LôÌæ 3%Z”Ö× È¦³'Rî†Ò†) Å=hÃÎþ¨æžG%sû¯^ÕÉúÇ;ì*×”äQ¹üþ‰ÛÑé–;l\#2QqnÔ[ À´`ä ]«ªª*…ߣ£ˆA) Zp:r˜çzo½2h …T)AIí VîIToÒ¦0*pT“Ð9ô°Œsy86…ÌýØÓžæ9`Zž©ö¶“ ÁÝîO‘‘æÍT¯Ó½ß*p{êô;=V7ªD9#·1úÍú½«P°,C' iÿÿÖ÷3f‘Tåá©‘)ì?—í¿‚Y2§ªCšæØÄ¹±VýÇq8UÌ÷v« 1Øš#\žCËu>Ÿs@OggSÀø ÂsoSƒÈ°ð>þþ÷ÿùÿÿÿ ÿýýùôüûÿüÿþÿ÷þó÷ýÿÿ úòÿ ÿüÿûûõýÿõûÿùóùþûý¾W¥¹ö–'t%[–gøYjŒ{U”[>ò]漂 5+7]pc€.=sCUBU)³ 2¦©¶˜)ÉŠªâ*çD$ã^‘¢Ý…õè]Š(BˆŽÝ iÉJ*É:ÈÉÌ ‚jCgQvBìÇ•rØ»/¸~®Æ-6™BM‹ÊH år•‹Ìe·‡uf¶òJ…¹XôÖÛþa̽ÝÎûÕüÔ L¸†¯¡¿ú²§[LÖÞ²zyþë§=òо£Yt»íá$7˜H(( 2]ÖdÅ®jVñ1²12À# h„; ü¼°vìÛÜiB°Æ„®žWŹ~×å úþ*êjÌ«¹õÑÝhtËu¢¦¸àfzo$½˜†ªªª,TC%äž M(P"¥ÒàºD§AÝ «¦Ú°Ü D¤ˆ0V”¨¦ÄÄ •y)©‘6e:ÐbZó O1´ (¯Lo ªª¿;Æ[ÆM­‰¼D€€¤G³tµ ©*´÷›¬*Q2ŽâÀU´F+ôÆåýÕèÆã1 ¦Wìñ}!Ù»4(B–±- É—A•}™Zþ:lÉÀ?°¾#`ÏCÛGÈyœ™h ­3sB‘ÌN…n7«WÐÖýupÎ<)‡âvdãÈǃƒ}ñ5cì™­$h%¾WÕ™ôö™èýê¾¶oÕ&{Uö·Î@ç£?á§'7•Ñú¬®Œ pFÔéìU>UUUÛØu‡`“E,†0A=!zËd#¤†¯˜¶6’z ZG‘J‘ €“ãÞUcÚº×`jUÛ–lŠÕý(õ)Y¯¾Öûv H¬R£˜ª85 ZâiPœO˜Ïšm@¹vâì辺9ª<»ÎÙeæ¢j_ÉYYP VðDò•¥’ž’ªÙ÷úøëËG)MçÕÔ'È~p狌ÈÒø «N€üá ã[7ú™œõ4Ýg¶ëy¶FÍ È‹‚âžG¥¹ö©•úÒ¹–g¨íôP' yTšëÆt]ê½Ö£‘Ð7Yp3m ,=C"¬*RU)c î€áDR 8ñRƒ,¾ZRÿýpk¡A*ªpc¤§E­@(š!£ ªA@îBbbÎ>«lØÞKÁÕ Ý· Sdä’YE—¹ª’UŒ£šk©šÙ¾My ž{Œå,8»ª¯íï÷·õÕØûûcÜ/߃5B뻩Ñù‰`„ÉȺ¥ë ?W¨üYÿEʬīÎÅ@›kýj)ìpÍÏÄúà:®¿¶—;\‡ô¼Á±­ªkÀ¼Ï°]¢…Œ°žG¥Ùv÷úÒY–;l6@]™äQqnºû µô–e„Í «J'p£ŒÌFÙv§ªª*E–€BIªBä- ªªç‹=; †”¾ÖùÏÛG£(S ¤ÇVJp$™2±nWOLl  l¢ªL‹@9+AHAµñÌÎÊøÎêk¥ &uV+ºòWLxÃRSÔ´(ÆœË+s1-U߯=Vºð&íeu^^ËÞݪ§´) `0þK¸¹ß:5Á€°ß%¨ûÃFqó5«œæ`‘wœëîì^tÛ.:ly—Éæ  !¯ msî,’cs8sfÛ ¾WÕé'zʵ†?LÝ@ö¨8?þ}¹œzÖ!ªL^Hàa`‡=Fg %CUUÕUB¦¡,•á &€ Le‡YS´é}/v­§…9¦bTÊŠX× {¾­¹ÐÐ0¯ÀF=¦aœîCƒrk5ö£ÿ?¼/>œ:üVͳ‡ Z2]s›!µ¡>˜VõQ‰¤B°6|ç'`Û]+²„°û_äóOšƒ‰ë<ŠHõKkíçmg‚™`«3®ŠM¨UÌ7dãnì5ÞVå‡õG+tc!>¹ÖˆôYAfüêJµ,¸#ÌŠ¨YpcD£3è,a» Ï !UU‰b’ U‚iÏ%zDåÊaOXuLRu €‚TmêK|_gU•*ˆ]¶ª·aƒ1Ap­ÂŒ¼Èª5ÌÓ®¨Éû̧ÿ®fö/}^Ùš¬À ЄŒ.\迾øò—=oŒëG½ÆvgæJÔ°Ô*Âñdêy¨75©/Á#É0 ©ö¹’;d,ÂP¼÷Þ–©R”‘<øôP``Š“ûÈЇ¶"  ûhÞîG1HÒê’¹/Z6clÊ.ªev’Á…kÔ|°A6¾W•¹öñ餇Wÿ –ëUÜ«âÜþe‰µ?á7Fr“x° ˜ {Oºà$¦ªXUÕðNaðJ€"K˜¸‰ÉKÎA hEuzŒŒDJÜâæc¤ÌUCCA¤ÃT9 £ÈÁ@ƒíÜböó¤Ð½z…Ä£¨zè´£ÿº1IXÚƒÁØ™I׬É™Œ4x/çÛrX¦Þ¤Âw`º4‹ngPÕåÞlÓ)FêɉkGÇÉ6DB@¾eƒ¥¦±Q½~ 2Yï±b£™\ì ä4ë¤Ã‚ÁøÏÏ›´8¡5±ñ{#N1›^I„ÖfúŒ"0C`M0 ÀžGe™ö“ÓuÝ»S8®1É«Ò`¼Ëã:‹k½C­¦dÀƒ €Ѿ¡F2Š<œªª*¢Z=@É`7câ˜AQ¥^†Í‰‘* ÍÍ%Cöp SîÝm0ÝéÇ«ª !RQÚ6BµÎ•Ѿ¬^’Ú†ÖYÆò½d6VSØe}/À­¶Z×QZB’ eyN¡†5]½Úe0'‹ÞÞ ȃwd¾’öƶgûñ‘#\&$-”ß A§Ö0HǶìç£KŒ1˜?cY.f2`ÃÆ„ãögãÓøÚLÇhOç*†‘Õ°á$’4}h–Ñ"Ùªéz~ÖžG¥™ö•',ky‡ºPc’GÅÙé+n×—Åã±C- É €‡íh‘Ùé2äa¨ªªÊˆ (‹¸j "`5Úª¡Ñ€ T®W›”; F¸ Á©>Á!c@Pãpˆ ©A¢J]“VÖª‚b9ešä,{¼ô t•Ç€@°|$RÓÆ ¼3ù²&r°÷ÓjV'LÓ<ãÖ<¼þ—ßÏa/€òáåùû(ÎD0 úÒY½<;!cI—dïÜseüeÉìàÖÕÒíqÕ½B#+Ð݆üTs¹‘¸Üªþfk6Ô±5¡lB EÔ»Âù\¬@P¾WÅ™ñ['<º;üY«)é«‚pÿµÛQ­×Œð:ˆÖtbÄiÞ©·HÄCÔ¡d§{'ÄSUUµ›ë:M­Q«• Ð >O/¦wŠô!Ò`¢+Ÿ¨åú·+ª €EÛIú©½våN_v%Æ`å•%sNsìög;oMJ°d[µä4õ«êCÇ€×1ó~‰iµ'ç…“€ˆÁ™fMîçß«×Çs†•j`A‡Î+ Í€$#¢ÂÂá•Ù/iùüŒ›•,âq`ü’}ׇºo€f¶¿ƒ`ÑU¨¡q”,´Øíq½å…|3°Ø›¤”bE882™PW@¾W¥áø‰å:¬Ë;ìš“½*̬¿ õuB¢dÀ…hKèn%¸ªªB”QAÑ0bb&dÂøÁôH½t€ ¨²`í9T$-q¹:zöçåÚe „’õ¥S)½‘ºÝÝéÑÕåfoGÙ{1CD_°þØ(…€RE­Ô°ž¯é¶®zP±ê"¡Gg%Îb²Of—<¿íjæ00Ϫ¾mÚ+Ed!Umã?Ëhe–#a–s„GX·RÑHú0Q ž4˜`m dûútãÃ[úÙ5Ó‹À‚9Ò€Ÿ‰[Ùõns™™6é°žWeùz¯•¤‡¥†F½Jöª4;¾c9áa]NØCH­1®8Dï4ÝåÌS!UU)²€ÁøÊ AÑùHµë%x«ÖÂ%©¸BÁUÄŽ˜ºÀ¶SÝuU]©¢îaTc….À¬RÓ̾1¬“M“ej¯Ò—qÆ>P—Æ6X âÕÆ¡8¬A¸—²‡÷ÔãY³ÜwÛž*ëÙß¿šûX$C9ô°¸°ê½ ƒ{².Ùb§÷BJ©+¾²0°‘ñ» /NÌF°ç7 lØ»ùEŒnA]}÷(Íár¢è7 ¨BÓãz_!^G¥Ùúe†¥-–þî* 5%yTŽŽëJo½vtO6¢É ÜØ@f§é†58TUUÅòΊ€²XJÄ”bõ¶¤„¾‚w<õ…¼¡ ˜$ ¤â«Š"€ ™GAh€çTT‘`XÆ5mjœÅ±\¼][¿T¨&«(alŸ5­ •7E¹~Šã*–õi¦V27%³óÛE•e§Wä¸É €9D›,#³Ë媪ªŒbJV?—°x½V'©@Є×éO{rH•H!BYPVUÅðñI P jqÔM¨O2€§&UèÎÊ”u˜æ9ëi'OËÌrÙÏ·mÞ†Ç29½Ï IÀtœŒ<5´½¢¦¨¡(„Y:ÌÒ¨“Óÿzy»­ë‚&(-^ÕE#ÃQå5¥4Do¥˜¾2°°¶'Ù«)lsÃ,yƒEЪ…áÇA^êåÈ&ÀãÕ^ßè&â5r²šsç¸)Áì(.`Άrm ¾Få†õ³íŽÅÇúžgjLò¨ »|â6ô^×u@Ý&/v€9h“}$ÝåD¨ªªûƒ'®"]¦dPT{ Yp“j¦aBh±î›ÂHX‹TATiî%§¯jÕQ,º¨c ¬X^ Ùó už´¦a•(Óhš‘]«óclç 2kŒS«.Q“ èxUÞ ¨{d,RS ;jjyÎA¡ o™ýõ}_òj©×ÿëfíGb+Á;mÝ£Q?>u ßH¶-±0ßôM‚‡EøºD0¡YÔµÀÐmé5ÆÜ6MJcšº°Í~Pƒ'ÃvÔ®2ÏAC,¾G¥Áôã¸Gãµ~ÃßÒd Âõ/vs5®å„:ÓdÀÃ,À¶ÃÈ‘Œ U±ª’Q@$Öuñ†Š  FXÎI †¢°âиHä9 ZÞ:gyç  Ah´ pìËÕ(Q²¾*«Êeð™±€^•‚6K Hî+/Á`Þ–Ó˜juy ú8ñÀ›(ÁëûÉ¡©ÂÔOV^Æ4lsŒõl?ÎÛÛu¨Áa’µöã¤B#HíûéYÿl?fdl$lEä{»„\Ø`…B ýØàA4tôI|?V%ïPõsþÖÌìÖ¯Þˆ¬Ké~D|äO¨`Àž=aÞWv—P—[ ýúŽð*@CMq¯ ‚õ/³ºõ„Ÿqy¨ <ô'ú0z5TUUeQi€ŒÊ†ƒw¶O‘Œ*Ä,ÁÁÕà©þý±Gû:Ý'\óêR·†!B ¡F '€JÌÙ¬x¹Îe.ò4Dµðj] »ÎX®wÕ½~Œ±—œ©®cdÀ1ÌÞzˆÛT½œ+.’úƒ"ײm³Èá;ûÝo*—é êêòðèïZÓÒ+ñ©é‰oÅZ Jµõ¥ŸôœŒ½Ù6Æþ+Ѭ©Àö¡ÅÃмÉ~¾ÄÜaت;T‘P‡UZu‚ëXGÒ UnûÜ1cÁÉvb4 ù|…~7CÓ=ŽÓ°Þ¡¢I -Ÿ¸XGø¨1Y0}úèIƒÃªªªŠÌ2@ĪN8˜žJU®sLǽ4ØÝÌ«AE½}U©M"&Aë]ñÃí. HˆMõ Á˜&žËÌÀÞµYLç×-õ¥ÙsÖ®ÅÇËüÑœóãvu_‹Pz¢%*# aKY£a"Ts8H¢Ý«ÊURǟУrÞkÍe&ólëùÚ{=TS5eÀ $ÁêXòo=06–ÁÀ5–ž&ªù·¾Ý—n&C~Øçé70£aK§Y9Ív”íãÝh@‚îVØBF¶º‚‡t€@žG¹åÓw#õ>–;ÔkôÍRMÉeö¯×z"œÅ5&•g>T“‘A-Ý3K IªªªSßIÞX/Ýv Ó+2´Ö3ÚÔX¿Ô­®³¾`!€ÔÒý¬¨H é•ó‰FãN`1ÛžµÛ§…Ea G ’Tдµ.…™!^•` î‘j €jòͨÝVå³M‰ééx:pîݪ‡“Œ¤¾óŒò™¦Û4e¬¯¼ ,ܦÓÜ=Rû‹TU¾øT¥ä!ûû—À…,K0~ô¾I  P}Ek`À˜ÜpÐí¢]ÍÄMõ»‘v/2“ð‘Õa”‘ÛH4失ƒ‹™+ ãžWÙñò;Htý34jLæªüÀñÄcè¬×€“72Ñ£L:%ÃPUU%J%€©[êǪ̃C†Dºh8…ç¿>Ž(“"´v¨Ê@)€ºƒZÜðA¤÷Æ"V –`‘f!.`pWì\׬3…#ÏÒ¡‡<ÙZšòXÎJ&@Íòjº2XtÎiÌ9;j»šqº×ÿ3‚(/‘Pµÿý²`–YªÅײžì³×Û’PUùU" „„dÿùÕŽ½X $~à0Ș¡jÃÈrkAجÐ|±rIAfÅ`“v‘ˆìU3Áx7ŒiÀfƒ4¾W¥¹þñÝU¬ë3Ô‰šâ^çæ˜®bYNØaš¼ÀfÈ> ÝCÒP!UU׈²‰R|PY* (R#6e· ¢^?8¾W¡áÒ ‘4S` @€°-q Xð¨FàN¹ÇB÷ ‚5÷ôdžŒ\ÿ{ožÏ{´ó”Ei»_23Ÿäô·No_“­€/÷º'‹Æ‰Ñxx½ßšŸ1^Y(zMVl¬Û€`ß ´è&•PQ_‘…±XÏbX€Ðwƒ“§`\FÎ\rv#«dl*óÄ••$ÌÉçÑ&‰qжšbnâ¡‚I9>7…å¡wu7º‘;*Ìõ·ÎЇÞk=a×7¾0À ”F/e¨¡ªªª¶©D¥ …@‘=T“\kj·‚(ê#[w^w ·[J-«w¯æ¼{µC³P2Ò#›‚‚Åse¬p\a“$k«]8¨ ÁR9‘³)€1K‘çÊVL> LASÉ0Tåêi×h€<>}ô©¨K&ØX_,dr"ù$ø) D¾JJE¤ªyNR“í–þ’ (íÞlöMÜ™À‘LKc[ÙõAfŸi¯ÏiÓ A%Jr¦ÁvwëW’— ^7…ƒóå唬ïNØ‚8¨©›ûÅqàÚa‡©1Y0‡ b}‰J’BUUU(‹ # ÅaÀÉ!CqØ!šj2pÄ-·)è¬Õ R‘v%¨îÑî€0,  ¬¾ƒ &àÁÓÂ@f LÉEÞZÑEïä@3ÄÌÌÐ@ ,+H–|nË¿ÄoB÷óÍ3jÄ®5—0§‘Àh ÕžÆI@¢²ú¢ÍÖühï< 㪬ë¿ÁÀ7IÐ=-Cð`£FÛcu¸€ÛŸ²‡¢@Íûp>?PÃð¹ù§Vl6®Z6 ÙÐŽçÉÆž7e¹þóã:<–gø¨«’¼)ÎÏßM•­ñ5 +æ°mFF™k¨¡ª*eD@Š"‚‘8=*øªTÞÌ9½Ö:dÓpÇ9¯xRÛ&nÔH8­6"ÙÔ`ãÀê1Û“êç9×Ní:™lL6”p4EN/¹*¡=K% âŒ:\—r²®î“]P’Q¼*³&ÙÙ3Ì^ ¦É¢+;‘/o¥nR{1ÖuRêWc×[Ð0ÙÞÂ*÷'ÄÒîÛ/˜“‡y~ê'?‡ #ë÷ÛȳgÄm %ì@ú9à›f*êƒw·¶Ó)ä`¶qgÃp¨83d76I”Q¾G5Ù"¡h®/Ù£‡qiI^•eçŸînMÕcÝa³!jL&p£cd2Š¡SUU•"ÊPÓìÛ€èÙó¥“mÎûL<ãßÌz«B¡ˆÂH¥r q*è¯nè׳Zê sžû/€Ó\UL{ë¿..Â\˜¤š¶ P 8ƒ‡xÒ LF2!£ £™ “4«5æƒÃwg½Î<°­};ý—úŽ= q`#‡‘`7—ÛÉpõýn%IÒŸl dxÓdîÎ÷AÕaÙƒfð5OçðùÔº!‘èɱH5ÂÚ«¡­c±K: 1pžW¥™ñ#¦ë±.w¨5"{UNÝM ½u½Ã/ ÆøÂ›Ø ¥ï,ÃŽCUUU¬CfÑ€ ²Z€ÊJ¯yÀ‚Ç£©é.*³¨æyŸ72S ·” =€Y0u¢ŸN­`ŸÔ¨~ïs°¶‚„&!˜^ÅÎÖh…]©ÖïóÄ@ –rV쎙¦©\˜™ A52ÍËåãa`³Œ]½ooŸniö¶L(YýmV”\Šè½ldÿ/$Ÿù´[kFG’Ò— üÅ]»ß=]xt¾! -ø"®Ó,¶?!„›Ú9b,Ú£;É#ZÅ»õÞ˜C7㺑Öô!ƒ¸—À~G…Ù.¡îimÇz‡ú!Ò$ 2‹Dy›¥±>Fø 5&x° XŒÜt)ÌUUU™Q€‚8K¨'7(9¶v3ÑuÑ,ßzœ]ußWsgÖ˜¸¥„PA Éìe µèÙ4ÈCC§1,ZMC×Ú½ÕØ´ ­€2ÀµÓb©„™Eý*5"ýOå3Ý&[MÙØÑÏÜÏuÌ €z÷õFk¦ä Ã਺\Ý~Ù -íºñG~RÓ3µöm[ºJ^"|f8P'ôˆ`¾3L9pð!D6º;’ÛØŽ¼;"5ãkGvÍÁ²œaøCÇ´ÏžG¥Ùñ'š[Wÿ uU«1æQAvúq\e9¡n©™Àà À.%G/]CUU¢ˆ `ÙÔ¨ˆ* `÷NY«PÝ‹ž«Ÿú Þá6¨j<€³fç¤u JPÎ"0ÉHHuÕº¦Ç”½¸žÖÁ²š/o¬qÖV»:†É¢Yè!Ec²«Æ0¦ö±;˜"÷šU.¯—÷…ÚGNÀ8^Ý{47®<ïÕö~þôvllûò@7öü®VŠÍú•xe®CÕÖ‚#ù¦ˆ"AÃXu³C—f¯é?;˜C6æ¨9IÉnÅ™¾W5ùò•ÝõíáZŸ¡¢fÒWeÙI"ÓÔ¶²ìè:±$jDVœ=ËТªªJ™U(XÕÜ¢h4À[ó@é÷,Z½ÞVTD˜Š:µ¬rÅ!É®"I€í^1¬ Ta) @mÔmp2†ÇçYsdœ6Ér22æÐ÷Ç×C‡v±ƒ G‡{·¼Hu·°aSµ©’:ìsƒÌ¾Wevy›`©;T1\¯q¯Š‚ùc÷Pú*š®xØØ¥4:ƒÑÃ08TUE*C/Ð@0Vl=c( oÚ$–‹š„•—U(rï½Sè²/ߺ¯‹'yÔ tTD ¬íÈÚcµ?Ö)À6+5<1YÑ÷SmH-cõŸ÷Çiçó­³è,õ,lm÷”+œ¶‘ûY]œ‘i°×’zr˜cÎ}Yž1€Ñ9ëËÃÏZ0À$£µâ€@T …^8{¯+22øWY`[²,‡?0÷އ³d˜¡NÛd`þHˆ—£³[rÇJsA€[XÛ4zsÈ2žWeÙö©æV‹«»CŠV#|«Cý©åz«e=²"jD^,à¦2X‰Î…QΦ ©*1º‘l©«÷”@d 2XûÀéEëÉE±¨h!GžïHÕ7!% Dssä2€¼&]žH¸ x±€¨› Ã-OmªL86hh¯˜º‡å,{ÖÀÌcc@=•=P£Îkï`žAqØ—/¿-š} &첯Ôþ°¾ŒbdÙ€1ÈY…©B¥¨äù6M‹Çã™6€Ÿ¶RjhfÕ(0b²q(ШY“¿‹uÏ7ÝgÃf¯Ör^ÚœRvS K¤5^G퉺õË=ºX€º*É£¢üük·«![Ö£qM´ÆdÀ‰õ….CæàPUU¥,F0P¡Ê×[–éFï ¼,¤"âÈx¤R{Z! *‚ˆÄ«j ˆ†ÉŠhD}h«0¤·ÏlÖtjÖñU¤ê €DwA¹ €¯t.ñ:H=Ã,ýN34 €sVÚ·ÎÄæ¸ Ö‹þëšLàfèl$c(;UUUDF%€ä >ê7ÔÝì4®­\™v{¢êoöZÝ+=¡‚ µ°ê„ËWIÀÇÑDÅrËV`Œ¡ Q n±J°3ÁˆyY¾.º16HÁÍJQ u×̺Ç"œ$ýúXÎè÷»g0cqFÏËí¿~óZ‡öÕÕ[a›¬Þzî¶RsÒ@Li¥V›0²mKz—1mÐ2;4 Ùà“@ [AdRc>R½õþ &­•63}-h¥„¼]  ~G¥¹~¯ºÔ¹Öú*Ô¡¸^&yT˜]ÞºL XfXÔˆ¼ÀƒÀ-d®Ã Ó몪"DÀ1$a°,L¯@ÁÛc§Bê==üÊi­£à5±–/û¿¡¢ªª@ Æ Ôjºj,Z<4Ô{)A&Lá!á”+6I ˆËI2¬îרÄÉrÕ„á6¦ b– Ð8#ª=ã×xã° uÀÕÛò5»CŽê%•ªª#ài Y€=Þ3ë^¡I ß{{ÂIgP4Ì zÿlbê\—m.TÙa¶ù§¹vV€ˆ {Tœ5逪aw{ @F¾7Ù.Q›[WÿŒ¸1©ue’Ge¹I’·¶Åë±ÃG“›Û§‘K/¥2‡SŪ*D™%B\›H"ˆ¢˜Ä­NLM¥˜úp© %h@Ô¦}›ôÒj¥âHM(ÁQ íh:{ä<-@VŠ0¼†Šy7p•V&Ê0º»;.pŽ4û·j“¬r6YÔ:Ð&¡‹Iæãœƒóµ­ÁÂ~ßkÍx »"c5ïP@Bäìn¦SaÀØæ› ¶ØÆŽíóÈzµ±Á Þ,$µù‚N3ÉlЛâÙ´|.¾:úÙßì³·ã¦ë¡GïºÞW•a—¤Ó-uy6P3îUifüû–P­ë5 MV<ì a—A—‚­SUU…(Š"ˆJgI*@P@òÞÃ×ôTØ™ÜÕ] @Áòâ“ûLý#†Ö#CWÛ@¹–}m $•Žºf‡Àóª©ï{Ïç$ãrJRܦ$Rq2ÈÄó6Eg‘gŒ'oKP3ü„ÿǵ˜œ‹·ûUbèh}.úýŸ¿W†IOUÓ»FB–o`ˆ£‹ËPÂõëc&à‹lB¦*ý_MhÞ®BF}GSr±Í46Úb8bžWeAûi,Ë3|Ôˆ´U¹üôã¸Õê±L–MVûeìI€–XÞëÞÓÌÓØ›ú«i¦ »Æ,Ó{›©NÆ<ûôÿ}9óm=˜Ç<ïSá±…‚Ű1FÆÆYX2ÈFò寠`02ß bY0¤ÍÁP3;(j N«ŸiÂ]§h(º©ìݺ]çhÛE¡î—šñ¢/‰˜ô5NÙ4~7Ùzz\ý;4¹IÜ”ÌÏn×úÓñÐäÅ,€ãìc†¡ªªB¡‹‹ZÀÙ$¸–â’›Sl(~Ú[¿ðóR!UaÃê„sæ)uÂå²Ê†ƒZq91š*R˜Ì8ùÚ©@nn'OœQÒÛwÈ4ÀÀúÅ›¸Ý3ÃFÍ΄ÉÿŒ1æj‹‰mŸ´cýøöãÝX+R3>Vç‰EÙ%üE„2 2Å[OX6X_–wâû2É|û}+ÒàórÛX ´©*›>î¥ €I‘D£°áÚä‚}»pBº9ä5X&WužGe™öñ岬_Ot®-¢Æ¤® rãGÜ!¨–ÇŽRR¡É œ’ ]†µªªª()ÁIQQæ4(SêØ[Ç, (‰P—ª«ÚmDI  ¢ª™¨# ŽtF$®¯g¦¡Ëqì4ôÚrƒí, ´3Õk­€€J…›’€³J·IQ5{²GO3 ©˜óŒœKÿ}C¦u=ìö×§æûe€3š×+/EP8VEéT”úcQU UªÒ|­“þ=¿6ýëvmî¹5”ýMƧp£Àžù—N?ÒñÅI@Ã6a£’§!Ž&¨íÂ^WÅùú•=Ôº¼ÓÈ5ź*™Ÿ¿âqYæuÒ•¨y±€9L>6]Þ UUU1Í*™ Š‚YfÙ!ªÿÄO”$PEP]¤FTEudÃ.ØN“+!ð¬xMÍËìYÏÃÀik9æ`»W ³Ôû뀙œÃ§}®1@úÖMÇáÌdÙ 5$Àt†(!!Á®ìÞ·_ýìR ÐÂo°˜"}: Í5GE@Û/ê3Ô ac[ÒdÕŠŸ€y¡±›àhƒ.8ð«DY›r®“‹oou5%¶º ºu¨*´@{Ï×<\p¾W•ÁøÑéú²Þá7GMöª"œßbº®Ð/'Ô†05"+¦—€‰TÆÒ‡5TUU™gUßî4â@Àn=®Ñâ`E#•ªLÒ MÞµ®Å Ò‰$ !€!T{é68(ë0 Oн×.àµ÷à‚Ëu‘5  c áž5 €½Þûê«.f"€Ñž,­‘þó˳ ´¥ç¹ö0d½¯^¾Õð6à Ù±E Iëáx¡PU$©ú’8ïmÛ`é»%‰Žc p#A†°­µ4\ûT…z`çÐÉÿ7±]¸Ð i‰ˆÑ˜Ù6. šÛVQ¿ GV¾WeÙö÷*–þ]´Fd¯ ³Ó›Ûe,×á€Æ@‹’=ËЪªª”eDÁ4K2 @1£ "¢„U1$ ÑJèIM_ïêm¤“*2!dÌ=žp]!ºóZr ÝIìÐÔàÂî½ôfíu2`èÜKO' E½Ô¤‰F*3Ì8nHsAµõ¥ß‡ãÄ,ã¶|kVß_+sLj[¼üvvn«ó:ÅÁÓßý õØ[Iª°±ÁÆÿÇLs»A×"ÉæÏ2rТ:Ø6¾WÕù$E+\iõѽC=Èú“¾*ËM}7¬댸VU²à02³tD¨ªªˆfD ä¦õa¡)ÙËybùg½D )ƒaR,KVå´*† z–R«Nè"HaȲc^fw[%P $1é.0€m¯[dWTì(EŠJQÐÃÊNb{ŠNLlrQéÞmôT1d‘À`ŽätC‘Y»õ–_gœ‘@2˜aü²< 65ÅZzW“î”ö¯/é7*äý§0ˆ1Æ&=–…f÷\ΉÁG#Xmá½#“ü îÑ6¼\Dˆ•>´&°þC´8&ÀyCëB`aOggSÀ´ÂsoSñlŒ¶<ÿýûøþøùÿÿ ýíþ÷þùýûÿÿúýõüÿÿùþöÿÿýÿÿøùõþúüûøñöÿû÷ÿžW•Ùòz«Ww‡Ũf²We¹ñãÍ ««Ÿa â©É €‡]™2…ÎÚ‹ !RUEf‘©ä•·Tj*(€$àTR¢*%¢ø6˜S†@5Ÿ‹n±JGª  س¢â$\†”‘`ºªâŠcgÝãÃ, Óh²Ý«·3ÆÖZU%ÛÅ8œCB™¨‹“ÞZ\\8ê´Ûœ xâ7UEƒ_2bqTéeš2õÒKKQ_4ﲩwUJزࣀ (þ"T¥©šË‡š¶Ó(†ºtc;äæ ÑÝ'… ‰/J„‰"Fv>& Pi±30¬Ø@ÎÝ4g~GÙúÑî–å6ÀTcÌ£b{y³¬ë •¸Éæ Ó’ƒ.=äNU±ªÊÌÓ¢Z@£†±SÙBQ×Õ¬n5o³ˆ¶°øþÂOÙ„”HÙÓ+ÐÍTj j‘Vh"ËjÈ‚N 5J€À¨h‹žNe”ÀØn€!žâóc¹6ÏØ¶±Þ…ʽg V‡ÎìOWðTÀؾj¢cT0zPR àpRýû‡‚Cñx^Û‡Ÿµž'Á®1m—ÕÖJ_žuÙz2©"Àòåʲ®©¤ÿ¥)š-m6Øb ®°¥©ÀD€¦@c†~ß äß{A7$QZ5˜ŽÕ÷ÂÙk‰« 4F}D¾W•aýèt}Y=Öw¨kjDöª4ßz‡¾\^× ;Ñô…nr¡gÏìòÊUUi­GjäÈPÆ(t°ÈˆÃ^“â£[öD—¯*B+d@+ad© † `l”ªn1 È£„aPã‰Tc³ ä ë{û[÷}2d#$ žØÀÒ>Uq6OÂìe¦{ (ŠÊròF¿j€3’‹Ó<ÿè¿ÎõÙF¬ê5—Õð8ï{—»UŒ«^W¤’ ߬údZdÓ· íÞÈ]6}#«G L ^cŽvÛ¼Úozב&ÛË›[•so©´Ei×úŽL6žG¥™ú=e<úwôÎVnÚFåÇ»8.'Öu¦ $mòbxØH@´éÑ’eH®ª*KÎZ¯»€üÌ"–ÁA@QP ˜C«N ›*X w1GÚk— !2ÅGSA@( #IAd(L&€ÔÈmpO—¥•L5†ò2[gR 2èiTe’š¥ÛÃ^X÷Ž ¶=ÕÉãïŸÞçØ˜œ˜äò¶:‡gV’¶>W-dŠÊ÷úRU)0º¥»·B%)D)ˆ½Í?q+à2ñ5ÛÀv]—»}2Û|B‹Ž¥Ç´r7Ózkp ÉU:’ xÀ&jã€D¾WÅá$Yœp¡®w¨F5"{U™%‹=Ð!CtEì^Ýœ;®¹®:ã†ß6çFæš-vÝÁ޽7…O  ¾W¥™ñÇ ]¡[îðQ²W…¹ù#v'Uõ:á¢É ÌA†,É ‹lªªªXHI³€' PFê´‡Ȧî×±¼T:­L:€pHöJ "2`¬¦—² ÒZ!- F}ÇQ å\MœÛú§‘:Thª ¨‹²pG Zžßë=æX/ž/5ÞΠ|ržìP€ƒå6IìÉJ•³ÏíuDî…gYêf©ÙæO°f†HFïlŒpdû‚o ^@H†S{ìZKÌLJùšG vþtd£Y ú€³ÒÝÀXÖX¦}ƒ•O»I”j© ”à°¢Ã*@¾F処KëQ×§™š’5ª2l¾³LÚh²àÁèÓs0²Ì!WUU)ŠLÌAŽD@Á‹%ăa†PE_ž¡sC@rƒ‹üä™ë‰$²^LÐ}è1Õ¤$yFIÊÑ4t³²Ýžœ1ËœÞ/oæaÜ êÔâ甡ѻ1ÇX=ã¦sõ;¯(A™®šÌ† ×ì")‰ó°\ÿœ¯³ê‚-ÁÄ.’ÀXvlæLd¿’$Œ±ÁFòmS¨ÇMÉfÞÊú®‰M°Ø}Šìa>ƒ-cæÏ/¾?Ýn[.È›‰Zª9ÖÑÁÅ\(@YÔÜe¸ ¡K žG¹&at·–ÞºÜa¯B ­ó¨,7þô6Kê½>vج5"+n¶Œe'£‡µªHUY–Tš)oT°V¢™–-¼üšõ2GÑ‚Pµ‘P¦W#¡-ðy}én¦éré©‘ ½4—t|ì@`€$3ÐÐE•×m€ŽÜWC‘1n¦;»`p®Iw(HœÁµo2ã¡¿~Z½Ï{λÿº¾¯ß÷D0Ð.Âw•`ȵì;¨ToŠ2‰ëAU’,¢tËnË’±Ìƒˆnà@ ‚Ë Z't &ßÖñÃ9Ç<\5Ô¡­ ËX–Òˆ¡¤™fý #­9  ¾W™þ7»ë¯õþB­¸W¥™ég§,^3ÔC@É €9è“}¡£a rUUU¦f Š4jpOW4h©>Ä‚<Eõ™×0¦jŠ¢‘R7"¢Ú*Ò+f@ LƒÈ eB´ŒÔíi1%/F0šÌ  t;Ò0YMˆIÁ¨(Nš¾]ˆ‹-’ñY;M‹ì.·¹ö§§*#ëù¸è]ýž×ueÛìd¼Õ©XŠöž%vQªê¹*Q©¨UUù"þC™FBíí.ˆ›€µ9 Ô àÎ@Ʊ{€{¶¿ÒÝ ¥Œ ŠÏ¡t^&HàïkGá’/d0 Þ6%†×‡Äþ MÒ¦Öðéâ„– MVº/Éè)RUUŠ(V¬W©4ê´ @ nïìE™þ4hAƒ"*ŽÆV šeT*­ƒF74"IHX-#Ãø¢Ð¿?/¦š@dPÓû1Ø9™~<5(›L“$ÆÓ)À T!´ŒVyD¦PÙƒµF¢òÐK9™ p,.ß?Þ/7‚, •Á,á sѱ^­êlÀÿï¶°`¬XV¬ÀX²¬w=ýîÞå€Y4•kn pŸ±ÛíR8h¾{ÀyH4ÆŸ´Ú(¡™b#&ÁÀQ€>ÀÝvc2^WÕÙx¥úrYׯai“½ªÛc§©eµ\3,êfòB»ƒN÷,Ã`§"ŪBR;‰‹’KD”F €ÔpÊW Y0ìý¡DA›`é%R»M PŠb_í6JÛö* ÄŸ†›KÏ2„.w{ätêäp’…[…5  À‹U#bG1{9T>è®fÍñܯ‘Šy̅dzçÛê|K­L»V/MNnèÒߊ#À²‡­7‘h[ÖüH° ïÐì›5’ T\µíˆt9ÝÐãhW‘ž`ÿH;l˜Îw¸3„æœ {ƒsîŒahnï-~7¹òa†~,®åš’»)Î_y\ß:Ë5境 €›È^²t™Ö©ŠTHfT(MȨD•pY‰qƒFbÉó>cX/k-Š·Pbа (TbW^¥R(9{ä NÅ‘±g€áPæÈóXf¬U®T °„ɘ3,Î<™0®^ü($‰ü>UоTzÆâíT!*¡ûÑøhƒé =ëy?/£ÎQ )Ú^Â×;*6áàøG𯸩P@R_ÊåoæÇ ÔwxH‘0©dlÈÐ0E—ñN3q•$[fŽ¢ «H5ÇÞ‡ê˜]Upx>G¥ùúx }ètë.ãDÉäÇK»BÕ_[ÆEÉ‹<Ì`6PÎJ–¢áTUU#îT"æeÌ¡¤Ü BFµ†.ÑŠÒ0~fÙOÇ)Š@•JÈÚµm£Ý[1 ¢,™°o¨¶ŠÄt?a´ S·z‡Ð¿^©0 T"˜‰Ê”ÉnjòiO͸ †ÇÓwY¾ž1ôšË×úÊÓLÖõÖ±°í¡Í¹ Ü:l…)),-[r$åK$cû]HH¢™×X Õ½ý>Á±WA 0aG¦‰¥Ð+/·a•.Q¼¾!Zï¹9"yw±|”œA¾Geaý{KZ¬Ý3Ôµ\#²W…aÿ‹'uè×þLÕd"³¡4ºtyp¨ŠUE”YI `6m-Y€R ®KC£¹JÚFã°š¦%ÿyí ‘Z„BLD@9©¢;|˜Zî æ‹£)¤²ÓJL¯­bgk%“qÆ@tzÖÌ/”Ä,µLÁäô`.²Ÿ/ à5Ö÷ÅÇH2Pdf¯o𬓆ºÂĪ…6™ ²#»´m %@Øþ&$‚ÖÄÕ´d ÜB„cÁp”̆jz ýÅ"`\sx ˜±F£cÔÁ‰™ÏξW5™$Q4÷(«Ïåz ×Löª"Ó%Ô=ôåòzì°%šNàa`–ì=é!¯¡ªª*£2I•¥ŸlPD €:› XöºÊèŒ=6 «‡ÿW‘(I,/jC“DÁªÎáFo¿öÙ†D'¼4ô›…×ÇIFà^ `H-Çé5óZH5Ô„ö/–Ê[­èL‚QcÌ·fýøxu9ka@‘õ®+©fV$ë_ÅÞîÆžúhJ"TURUO)ÔÖIOÆcra­làËkê˜Âf‡Q€=8â·U±oÇ ÑÀ³KógE‘Û¦5çØ¦¨ÔáÆIÆÐ¾WeÙ.1fxµj]ža ä¦}UÙ%ùcV¸f¨ejL&ð`0‘£g™» ©ªYdqÃdZ©ª~+‰  ¹¾âáz[¯{ůvÇjæB+@‰Ç$IV}‘"§·Ó°ÁŒ’ À¹ßÀm>GÅý=ô­£¿e£Q“9*˜>±Ü•ýº]˜¦+n¶¥,Éè<4TUUeDEP¡Gnr‚†ªL…Q”U#/ÒÕ¿ B¢#¤@–'HL08+—f63‡+êÆÔ(F©šsê-ç½Ø4€ÓO\´¹Ì^0 —S`Äâ‡òŒŠCÎ¥õU¤¥aϹ8³ö·í3s—:c¬ósüüµ:ÖcmAF{A3ep…`vh;„.§+®z]¯ôº·ê+c!áÐ!&]}3ìnØY «òD¢íÆäâ»âT k]ë®98W,˜ýÒïªG0sc£>8°5lc>G žWu™t×Âõ>ÃNÔ”ìUMP>bë{ !š¼0À‰–N—aX¹ŠTUµ'GÁÈxPF‚¼w©Õ¾+ˆRªâÖ\©U»2ËŒéÔ¶"§¼s(5C˜0¢ê¸,¥(…JOÒÒNêËé uµbeZε&^(Œg¨ªü†ª0ºß¾§ïšz»›"g€9ÍŠõ[GfÍœ±çÞ‹|íËÉÉPc‚Úõ^…ëhƒRD„LÀÕ«HªQ©è{º®'šêý¾hodiÜ…c¦¢Yµ¦Ò…Xªˆ»ÐL¤  ÏQn¡A88†çžG¥ÙþÕéÖÆºÜaG⑼*ÍŽ_]n)«Çu„Ô&+f0JDv™ƒU UE”Ê:kÌ(6MÚ“‰™„9Q¢=¤4úVXn²ª•Š#1Œ``5žðX(Z×ìƒÉób)48gÈlžÏú2ÎÁÞæØÓ¬úý‘;SóÄP£*u÷Û`MåJäY1j ãääcýø+—\ÐdÏRÕnUËü 22Ö-ùB€Œ,d+N•aê]vXª«'‰ R&o$q$%£mË— á}«ê7çø:…õÌÐÀ¢Yµ€á)„ì [þF%Û›•nyÐôJ µGÌЧ޲l!µFä…nl ôÎÈ.3¡ŠTU,Ö¸H Pd3Ô±Ù:vLò€¢‹…E¿ûõÚ$•¡€‰_%ê9€YgÔg=¥é®)ÇØ5¾™O àÅ h@²®ó’û1€£ÚØXEe0mB:4ÙWýÜ/l¬kž¦QÐxX£3 Cìc]ã½}[_™$E7,ëÒS3‰ÿã°ý²…êO*¶daÐj÷{cè¤æÛÎL&Ùd%gfØùbBK¦„\8G`=?_aÈPM£VØ´Iƒ#a^7eÙ~JwÝ ÖgXQ®)y›¢ü²ÓL¯²6©PSòbxè ÀÁ}ÉR¬|ªªªÛïê àEDVïa2l8m (µ†Oê’ 5ãŸq}è¨Näh„ˆ˜0%ûVœ:sì9ÇóÃ`î^K6ÙUÔ&ì©v2šrë@‰ói1€F kÀ@Aö`œ}¯ê" g|ûeH€ƒ!¼N¿£ê€=ÏêÕiÝoÙ‡êÛŠJRU³p!¢g”-íô6ÀO% ƒ³µ&ÇSGvãn¥d@KEégî…šª–Q\£1‰±³[›G£cè¯%Õ:‚žWŹþöî:‹«†]ÕjŠ{U˜?úº.,®k‡Z‡Æ³;ÐQ#Ëi UUUÊb'F„èH03€¢jPÛºiWØøRéÐ:9…»¾;_!…ª1€8W Bà5eð$£"Ž=®žËíÓ@Ƭå½çr}ÓN£áxE¤PA¦ ÉÇT<¤@L¯ÙÍ0YÞ5’׿ †Šö–ßîýWö/y߆‚AÄkŒö¥WMÌsÎi1€äÏ"ÉXB¾„“§u•BH­ló#@Ðôü­ÍGù¦`Ž;·Ù€¶*›o\ï¾k ÄÐä—MËYø"¿±£ƒ„ª¥z‚ÞgAÿÛæja­Ïè_¸kÅ>+ׯ®&úe†Ï¹ÉNöÁ ; /Áª„Š E±× ÇŠËºŽ#yäOf~›—–Æ Uá:]1‰M.ÈÑÁ°R‚hXc€´š (4ÆZp`–ª§2æ ¹$²³=U‰Ý¾^ýç ê©™ØÑ5óêaý¨†õþEûÀ&›3tÔÌÅ9#ÞíËÛñ0”YÀ)v÷¦Ž@G6—Ö´ô að½4Æ „t×U%”Ø $}·h=  iÀ0`Ãr.€ÀiÐm «'EÎt @¤9š'ÖO› >G%ç·Xn)|ôGãPc2GU¶oÿ\_x½¦…&Agœ¿°UIBÀƒТ䠳cVUUµ]N[c‰µÙ’T½`†&÷öPEHkÁ^¯Bƒ*ôlÛ6MEn[€šu¥@œ«“í#¨™«RJ¨e1™œb&Ug$‹3ÛÆž¿>íiÏç »9Üë"4@uUœ8Ì9q*êºNAzfMpfæHoËÛ/g¨d——¥ËkG>c!ˆxŸB¶‰?k‚ ÙÈÖ…B¤ÿ–¼'ŠÂ=ÒMñÁ1tÑ07“–Àg 8G¤H´í~}Í.vÙ2ÐD1ŒÕ‰` ê0&ƒ«‚'žGeÙþ–ÝåÆk½C]¤5&yUœ›ÿ,—õ^ëŒÞ#®Yp£½'Íè²\UUU**€RH­¶Q**hPõ*ÒHï@C„óLvMQ‘R‹ÒÖ‡ÄT3&‚œ#Ø\ý>r)*‚³¤R5fªM•Ûo â‰âH =Ww;ø,1¨xn[ÌmÛô©õI†yÒï±L5ÏÈz¡­šWíÇy3$Tº;*6ÁE:ÈáB†ÃmÂï3þ;é/EíY¸\n¢ZÈ$ìxÆ´A ¨fS{Ù1¢!ÞiÉšÕ°±rË}öŸQú¦Á.†ƒžGÙò-u…µ{6U¹$ʲåë+t¡÷èwø¨+ã €‡i¬½Ñss– UUUQÄH@pŸmÀy Q 8VN»ÉDº¥h@`Ú'/”¸QT#'ôB°d#{ ó(Î,/TAîµ$AC. Î+Vßí³OÀé`/j@à¸J"%ÙÓ ñðÎ05P”Pô‹ ª@-Ù 3gãÇÔ$ÙSlj÷ʉ€ˆrÕ̹÷íiKÆU6ïiyN* `9ðÿÐhšÉ]L´D„õ8,[ [ÉùÂÅÏÚ(Ë›@²@IØ”¡aHæ4l!dþVŃéÔpKyX»[*j­ä­ †úC3Ky¸–MLÔ˜¼À¨wFv‰^UUU:âªB&PÍjTÅk軉€6ð îT‰„£¢L¥/?ÅJ+¥ +´á ²¥±§,Æ\xzÁz´¾¼@²Ç{ûÚbP…§I˜3¡’AÃVÆÓªfžL "Ÿ’af°¬‘Ô€µk_šÏo?÷»@£uY{ôˆ¶n;äê”`¿Ð-‹¨$©|M9B ØX€$^Qõ_J‘N]–ÝnAÂ.«§w‚“ŒPµàÛ<%§XÓO€V5|¤h0çR!¿Ÿ#3üë|þÚÞÁ žW•™t§¥wågبVÜ«ŠLÿêt]é¬ý 5‰k„+nv”£ÓÙDU•IH•¹"P jÎqK3€àHµªU(…@ ûAQá•Vè$ AUMõjK †„ô,J ¨Ô `°g=<õõçæœÆRàdš4ë—2Š‚rÖpm“†FákÊWÔðj÷cÀp†D÷‹ØsîMöïïëýfuH…G_0Fó.83Jf£(•z­ü]•v\e°nKF•ªTÊŸÿý!°ãŒð  t0`‡‚âℽ^¥ÙzØ‘ƒ™K7çVÈ Z…0gpžWÕ™ò¦‡ÚX×;Ô5%{UôŸXNè=®j‰&+æ JÙÔ2´ÉUUU!+%(–h2ž4h…«Öy^ C¡¥ä|ô–BA Ä%·È*âvK CƒÖÆñ;å°ž%8¡FåØûxéú2ˆ¨Æ.è0[=¨ÕvÛ@¡ðÏÓ·¸MÔœyû$vMQãQ\Ví­5j÷Ž{ûé½’:`Ov×—³ò·—O¢2½ Õ‹ÔO:‰’T*©å&cT&VjÕh§…vQs0@•æbMúC>šgefEùŠmÊLwe’çbQvß@£Á4Dë4P”G¾Wu¹ôú²øÕ¿#¤Õ˜ìUYvüëq}ê|®3ü‚P\c²àA@ìK–nªªªdQ&€XlQÚ¨W±‡˜a(ATª“’Ò¯]~¶"­”*"R€ † -2ÊEЀ:dϹ¨§E,™„ªéH„uÈYŽ ÈõÞN¨ðíÂb‰=ÆûahY7ö£]oOs û¾ëÄúùWÿçÌš (£ZƒgµðyÇaÃ`F`àoHFž§’l è•U­‘£”:¹âÛ·"E1 ³¯{¡¥¿Ö»+ÂGÈa2J†E¨7¿ fÃN?G Z¾Weaûhw‹ÎÚÝa ´šb^d§·Ÿ°è­ë[ Õˆ¬x˜h÷ ì›În¯ªª*Äj«Æ ÝJw’¢‹I¿ùÓ@V’å¥Cµ]Cõwýº]»_hTàlÀÁ²¶+î@}~o5½„¶të’ UJ¨‡|û©_Šé1­áâÒ*>2.V À˜8€ô³²ù|tnš†Í­nêE·y;9Â@.B£Œ ®žG¥ÙþÖæ–A_ï°S<®™£‚ñÎtWcYo 0i“W¶€Ì^‘eéôÐf¨ªªˆ,‹pÒ¡:€"õÚIÒc4¬×­œsHj<ú'ëLkEÚ€jÛæ ¦Ý{µb›°ì=ÊP‰‰œW'ØŽ@JíÚ2ÙxRçN؃¼ïvRRC'Û³9 Šªh‰«P#užš×û÷ö ¶áŒÍõòx),à2Ú9I¤”T½e™âŽØjIIÒwÿ%8mù4D0ä#4Ÿ°É p³£õú¨ž#ÁÏ\Òß–KSV ”› ².ÌšS®»¶:ùööð¶J8&Øc^½­®—[“A Aö }ÙBBÅïþõGˆ³‘øÉ@öý"‹Æ_d;€ÃÚ¸[cƒ£ñEsVbûæíãð€íi®æ*°£Ü.ó»ÌUžG¥áøa¹~°¬ÏP'j&{UŒn×7;Ô!š¬x˜MÀHmÉB¹ªªˆ¬`0i}$±€€ —¤9®‘ôNå°@'4Ýqëã{¬j(A‰¹TÚ‡ T²•%ÀÓTYÀY¯2ÔvÖs(¢ÿÒnÌ[{gÔ.%P ç›Ô fX)A¹±Â];œ1Ï·ù–oV3MYÔeüÿõ³LˆhÞ›¸’üÈmOvS RÉϦJU1`0H’ï3õ™ÉqÑ(ï°Yà6˜=â9!êÓÐGÙ,Øû*kQ ÿëŽ%ݘ×0€1l¸U¨WÏŽ žG•ÙúÓæº´x-'zgMMI•f§Ët‰µ…?EQÉ €‡iÌPÊ(¥kçª"UÄZ¶@·š†‚ ZDbÎÇ8$ḠVmÐ襑¤Ÿþ L²Ž{„I1"Aà ’ j ¢i_$áHûØ÷¯ÃÈÚK˜5`K· €ÖÌÇ^‹<ÛSíº Mó”Ëã•AŒ]³=ã4§ùYk ªÚØoü»N½«+o燿ÿËâ/1«…ŒÁ?ÞoDvÍé:ôÙ4“ÃE”;ʦ9ãàüü¤ÛþÕdن棡ýDֺÈfDÀ&ƒ¢l¾W™ö÷îÖÁ£†ºPSÜ«ÒÌ(¡?n-Ç õ5&+$À;)G§KÃ@*¤ª"Ѝ$9 Iõñ Έ  %g=äù°7_S²b*GÓ¥eMÒ0_u+4!‘ŽT€Á4¨ãQ-ÂHqöcɳ…‚Tï&Sªûvg0&$Èm*\ȧ䈚6Ìô«±ILÒLfIž^M›þèg¿½ä’ÓÆ2ïØT‹+aæï “ É—|I•ªDªêÙâê—lYèÌïøßæòò,€9¢‚‹àhש8áüjªîÃü—a+ˆíƒF‚fr–ûÛ†Ò”¨«Æ6* ž7A‘,ZX¬Öþ½·ª6¹›ÂìøÓé:‹u™a/æ–›Lt®]ssVDfÈ\’î2%¹ªªÚêäÙ²¨5I*ŽõH$¹ªìMuД*ÔvzÝZ§Ð–R YHáXÁ:„):&ŽJN`± ©ñ°{®´ˆ8S iñ€§€)€¥¬0êpª 3쨺c{‰7€Ç¬2o?KÙ.ð¬+ë—’›º»+3Ÿ¸øé™A0Ý+{‘TR|á? x¬ÃÐU îíД­¨ÛݘEÖ=ñÜ-×s¿‚0ï7hBæŽlà@„˜]ˆ+‚ÞVEÃÛÅ Ka]n(ŠkJÞªhØ|ÒÝRý5‘Ö˜¼ÀÍ$dïIw9³ªª*v3Ve @eÐ¥ÎR÷€J’gi£éU/¤ÔjÑ#@½B¹~5GT§ ˜%¤,e’ÄŠÁ¶É®/ú ý®€„ÌÙ>žk;w E– ª†Z¬J³0K8…â·]t»{¤…$k¢0+˜ìa¤2÷û…ËÓ$ÓaàuqñcD÷Ø÷Åõmÿ·JÅd‡XyŸ®òñ.Ƕ!Ojóö·mŠœ 6àÊžÕ†¶¬³Ù¸3g{У߄L™tuHž7ÅÙú‘3t…¥†OW/‘;*‘[Þæ]¢ÌP©M&FÖ3ùª‰t2êI§Ì=T!UÕÍ#Þ{H.\IæWV˜¨YQÇÆ%ž&¸f©(±‰: t¨™eM

C´CˆÌQÑàôÔqÒb½4Yð°m€ Ý“1”‡ŠUUH(ç Kh -àÜ [MHU‘ˆ¤–dê²ÐÖ/ýY5Q)…* P)@·G)b.S[ÅaÝ3ô*˜™w…³Ú;VA;»’µª €Q…)À“‘NµÚU“Uú½—*ÆnGóýsûÑß§*SÀ®þ{Õ^Aæ{H/Ж½"%uøÑª&ð7¡~†D›]hîxƒ²w±U«ÐN@+ž'™ï˜ßŒuèÐì¿i0T£U4ÃÑñ%0Cý ¾WA¿ût=ºõ>jŒ{UîO=¦“yœP‹¨®x˜>ÀmYzé&UUUÊbžâ ›Î@@ͬ·ó¥®„ k m @’ñ¹õ¥­;(Ø[à¼4Ù,¡S]è €DU 6YbÓþµSRn%<Ü @F1Iõ‹’1b&W KQÓ6³—à $$c>˜ó¤ó¹P£Æ¼ô±þ¹¨·þžÙIÁ°tÓ¥~9;sPÜTf‘ñšP™ª¯F³?ßÛ«·Ížì½·«—3-„B&öôƒ;ï•„¢¨ÊSE§d%À7B v·€ö¢€°ýbFð IØŸXUøüϵÕ`PŒBi”v>¿Šgv¬ÞU†ì  d¾W…ôw \–ú ueÒg%†/Ÿø‚²Z×*j@沕0J”t6BfC¤ªªÖÚ”CóSII¦š¦a±8Xee;SZwNcÑ{©ëi¢Új¯®Z‰¦Y&qVC#!(°WW³/&ÕžŒ¢V4–ûH©1¿W¬CAWÅë¤:£(Š&4í¢W•òJ%eãwr®^Ž–îJLf’¹T÷Ð>ÕžŒôÇëÇ|SG<=&ÉÄ#IX{¤¬v„ ïЖ$ÜÑùÑïJ¿=BÆ– àë '™Û߀~ Íæ ÕHºR»3„ |f€lRµ´Øv­0n0 ~¶ä†µ=u£«Ζüðyq»ÖµÙ“6¹7ž¥$µAÀ•«ªjåd/ š‹ ³‡Gn<¥=­²ÚÁ‰¡Úú÷ÓvºM¦FÚm@á².Ö 8Š'#Ãëb•Y± aTÐ¥X•€³¾j*öqÔ˜YÕë2¿o¿ãë˜PÙãñ¶µIÜò➺*ϸ÷¹*ׯÎr§—þÒEÅW¬3³h.—÷õqâ-|1Í×Ô[X£PV…~iIÖûŸ¾Ü’eh„¥½C[Ú%? …8(X€«á•B6«´±áN5"ÿ,mz³P‚3ðû k® ,ÞU‘0ëph‚ C OggSÀpÂsoS^ZzMöÿøÿÿÿ ÿ ÿÿÿÿÿÿÿýÿïÿÿÿÿÿþûÿ ùúþûÿýÿöûÿþÿþÿüÿÿôÿÿÿÿ^¶”`_t”WÆi([ x¬Ô t ·Æ “šo†ªªª–2ºë¨)zš–®ëOòöJ•Óª­r|ÿjDJ¯_»å¯Kî·f±/u¯£òžÅá¡-îØñz±gsm3Û@.ÙXž¥ £¢HËÈY£SPÕt½ÏÔ¤:˜ƒUBylT휟¢°éˆª ¼OÕÔî•AlÈC–h‡3N=½Œ@ ”BÜ ¯zQ¨DT¸¦&aÉò+d9{&:òÀ„“ÒÝU$-‡ã°¥oOB†³ˆ/ äL½µ¤OŽ‚"@kföíÁÖ°ÀQ¾º `lhá¶”zŽ Q²VÊ–ÎO[ÐxF§“ÎÌ\UU5¨(­BKýìÅÖŸ§ùðÖ–ylÿç—·*®®zïŠýï·Üÿ~üÛ6ºÉ%K1Öú‹ìyëݳÙûª?Ç^·· $EàN™¢V¹ñ¬úû/˜ž…\3É<¥/+¸«äé„{g3Ù}xJ¬ÕKµcwj¼GÔ4ñ€òIhºÉãZ¹c_˜ÈîtÍ0K A;+YÔ)Vu<äïÊת””ç’j•±Z­÷Ðc ¾,Š”†U^ÉlêÇná¶4eÉЈB^XÓx¶Œq®2XKÝ q“[ ÀŽJÔ3ª$VUUÅ!B°ÄëéÏNßGy{õÎχßÓž>§R»6Éo×vþPòáŽ%“L¥µG{ÑŽ]Ë}Õß\Öt£a=°´§+év{ÔГ{:IïŽh’™aK3ˆž.÷ggŠˆ£«z´tÓáÆ ežŽE%é.èxâdŠE3©ÔŽ‹‰L€D.O!úÏbÛªH½'  +vs£$'Û¹cÄ…™´¥U¯sw9¬‹íŠpnrÓŒƒËŽ"õ­Ug,㞈Ûà‚&8¶1ÛùfåÔ!ÍáÈÆ‘¾+^¶ôuNVeÀ9mÛëL¹ É=Àqgö¤“¡ªªªaµG˜¾N5ž­öš$¯Fï9ÚõKÁq*}ÿµÓïw–¦ZÚaM©T«¬®ÞïWýu·éÏ:e0²†wYíujÅfЬTL]Á¬tR.ºw½:JÛ̱Ï>ûãÁ(&1 &›Q•€¥ `YFÖÔyi̵YU#`*«"Ö¥ ê)Y¥¦½´S„¶QÏiD*QÚDÄó –W‘“aÕØ~g»5áž Z .ŒäІæN‰5†=çD15Õ.ލv'* Ñ‘Ü×l$r ™8G×–*ÑNýPèÃçVo~¶Œn,)2@†³¥¯Kl h¼û 9îžIg†£ªªªÚlÓƒÁõ'¯ê _Ý9kðÊRbNŒÃÕÞN}uÏ‹q®—I6™EtŒõY_5÷Ñ,ä2oR‹çYsÁýRÄ5›@LO#˜,Èî!ÂÊY2$T" â–@9Ô0uL±CN*y¯5Î0Éd>„ï¨|:‹" ¶'*MÔIâç+³$¤³ûyPY¬cX²‰% ðPi:•hªBÞ’_T)I%J=5œ« V’è‰O§ ŸW Z~s§]ÎK^„M÷¸ Œmͺ‹Z9=Ã%i>Ÿ£Û74«Ó ¼:à;Ò¯N>¶4e A iÖ4Œ-µ_#ŠhÄ4ž]²A—lZUUUã õ“|‘¾ô‹KvûgªoW»PÛƒ*·~s3%ßöƒ‡9R’4zû÷þöåiýq:ϧùÚÔ3C¦†³ªäÑnçØG‡¹ä \•w”ΘE]Ù5M:G®2/[]ç4* £²1Ž€ íS“9ƼÔ@2@˜ôç̼?#\”ÇxLÖ»ôÚS½Ê»&›·=Hª[QB ©„ä2õ¨Œ¾¨HòNI©Ûù|>‚ÑÙŒ·ì¾iõ“Ó¶¢D·G„2˜oçî¸uŸ<œ÷|r,¶; ÄE÷ÁÑÏ£‚ik©âöÚ”•Ù/Ð.TÞµdq N a-7–-[ÁMÎîQ§K/YUUUV?zŸ ÁÎÈé›ãó­?øôéã[õZòµÉÑ!ûzv´:U¯ òòN|4Uʦ“kÓ¾j3+{'æÎ-£ìŽY{!Á==¬*j¦)S áôD_;3ùRE3§Ë8ËÄë9,॑<ÿv¿S±é¬©y̨*ê™I†‰7´õ%Æž1†‡]Çì.—ý1⯶p8늅PdËÂRX"Tµž*MÇ,„)±%ûµ@•Bòõ-ZÖ¡¸~÷_»œ WTE Õ4W]Eˆó|Ì€¦ÈÙ˜ˆ <£!Ÿ!P&ù@æhÖªú¹A'»ˆñgž¶¬}J¦D£öË–©õrŒNšÜ{ÉÌìM2TUU¥‹ÇB r’ÐKþJW¿ÿða|ù}.Æž»4ޤ?Íë×lÕæ%oŒ/'VÛsÉN#¦´šaç:×Õ„:`¨”ÕÍ4 ŽBW£N15Ðp»›?ÀpÊh¡‹†Öéi¦aL'ã,T„ïbA½$Í3UµÉÌ5šZÌúí±jK÷í¢UW%%õð@iÊSVùýT¾j5ð"-`¹’çBK‘«çøþØ?®8˜wv~7DÎL#+1l$ÐDë]Ž  •{³-6„uÆPe’W.©tøödÔ>¶tqŠ€d@ã×R§)™ z…¤ç”ldöÎUUUEÕW™€ )­üéäœk믖 >}uùê*S»/‚•ãùÓ858¨dn" pmX ½qÒwDBjê.­³6L—3#e}•mÌ€a®F±6 ‡Y l·õiF–3cÌ3( .Gt͘ÛTÝ•…PfÔRd3æ<0; uú®"w¦œWeJ&³q5#^­Ûwªú~~¬`:v΃=:‰ æXwÅåêñÚ.µÖ;ëI4åÔ¬g´ßÙC6»3„=$a{ÌΔ]ZÌÚ¶q±:wÁY&bbdšæá¶tnŽl ⃆DcØ2ê>Tˆ2.y¡MæØÅîŒ(³“„ªªªæä½¯õ6ÅaÉk¬«W]_UË¡G¶ñ_oN£Ïë»z°¶´®Ó{}Ñ“·Ú‹Õ}¾¹d¶».ä²×—i¯“þ{Ö¹´Ô ©ç…ÖÇK7Uç1¯FÿL{Æ=šTÖº°0“꺖A¼ÃnÈ„æµ2G=ýÐO¢î§¦K}Àóg¨¼¡(O¥†ùˆóõcœ­< Ó€Y³YG¬ŠÊ‹š»1ƒ…áù2ïëŸÿ¼“ÖF•߯í8äü–Ãwè'N·Šªùœ%0”oÓȆ9iFc¢dÖò QáЄB8ˆÛPk\£^¶Œq N€ cK“ÖPòÅD“³{”™Q¨ªª„1ÑĬöÙ¢§ýt׸ë™òxþŸ*¿]ŧ'öÎwU Yÿ4¥÷ô;A*v{êu–)‹±ì.ÛÙdqy¬¡?ÚïgÉWUÑØô:9 è¨ÊU˜@=ýÍ…‰×5µT•dEša¥X1´“FCšt&då‰((rÄBgͤZ ®†;Ë…†d-A÷r6:r•FUT ’ìU–J½\àwoIU"=ŸõsLž£ÃgqèÆ©¾‹Zwº<ÖŦD€íšæ€lϬ‹ý'—³Â19økv•á.–êLOÓLÚg@/Bƒ‰A24~¶Œµ÷äl"È gKŸæjB(4ž=“‘Á]UHBUÇ$_„þÈ•/û·>¶Œ~NÄ _ÐX¶4}IîB»ïMhìNG™…(ªªªZc‚/^Û/c¸qi£÷cõê2d¥oíÚy­~¹âÑ?·ýœÓQ)EÔ¾º¬že]NÔÎx-—]oë=V7ô0^hÀˆÚ'—7Í„”&@PÙ8U Š=PyêÑ’Ãv@Š¡¦ä 0u'ÍðŽé‚¢‡žï¤g.н¦²×g¥_3&-ÇDÏ„Zÿ–‘e Û’À|¸„ D))õÜKÚô@ü²#‘ênw®ŽUOq¤vLN9ÄŽFÑÚöiÆ$œY+ÙQd“ý«D•£v݆á¼î@k`Ö>¶ôn‰-¢agËÑ·n•5+hœ?Æõžt‘PUUuyømºÖ÷³~)E–úŠŸÆæ>šž¾üŠE©mýæ®ú>¹mÍ"5Î0ìàfQ©Þ&”Ek•c›ÇÝ\§0¦q+ÕkNœ'9Ço{z¿­®¹ì—w·½Çcµ虚Ö0Àº‚ª £q¬Š4—ÜïöX:g]§:fèhR¬ñŠ6«¦=k˜jœÑvq?°ãÚØð aã@Hùu§k]mxÞ±ý•2•^~ˆg·Ÿ»'ÜK¡-h#—Z »p†X0²K8o0iÓB üA·föƒºhÎÙ…ï7 ^¶L}J Âú°ÈMΖ)ÍU›áe] n¼°3“f4R UUµ3k¢½XXÿûž_öËJ‹ cYõ!›Ó+U¹ô<žËtszoÏ ëÍy{Zž¾åЃ›l©×T€T•t³®Y 4†Q”ÔSx ŒéÄDÙ^5 =¦FLô¢ÑŒtÔ2±ŒOÓå¶‹¨ÙíT^tïùl£ÎØžú#Ìý\ö~—­å#ÕúfÔŒ‚…°QE\B£„Ô* *»¬jÐØÛ3˜/ç“Äï¬ÇG¬ÇŒõÀ°ûμI ¬ë#ü(À‘‚NU5úf¬ ÜúÐAº &=¯ [ïkƒ®ë ~¶4}-iäÔ……'i<[º¶Ä46-ô ÉÝÊAG™t‪ªª†D UîÙÉŸ6þþ|øë”¬Ð•aÅ?ïëx½dÝ{ù0³xZ_ÒÊ[ÔŠ¹XRÇyù¶É€&Z0À´i¨¢õ‚Â6Uºci̤†¡é1”Ý‹°ÈêCìvǤ®®ö‰*¡ß¨*cðdBÂ:•eQ¸¯_=7È¢ËÓ™þD¢à#‹¢¤Z½ºŽ„Ð3Yx(ÍEÍuÒ¯Ä+‡¦U›ŠF‚׿ÐÀáÈQ¬á†ÜÚg€íÀ…ÖåÜbÁÔžáÌs˜ÀÃ+6ž¶Œu E Ã"7i[¦qÉs,ŒŒ™…y¨ªªú?î9߇.m;oLZgcøjƆÔ¨“w)8vþ|ýž£ÞæzæÚ¼º÷‡Õ×¾±^H{L>íè Úí…°T†,j¶“Õ~‡^n©ÜUc$såyšsVö‰J1BzI ”‡aiœ4™L?Õ“îìe’0:ýåŽ)rJqÌ›xÞlë¯3÷ÇÙ­r9g÷µ›©m,°…-ǾѦª*‰8{lJÚÔ’E›,+_®UaQ‚"~«¶­RíÛã‹çßWÀ íI9½–¾‰¶<— h4f8H3J³D!8óÁià ‚ Pucº”läçZ2hØÍ¤Äå™uÞ’QÓÅž¶,uL.ˆBÔ¬Õ†µez¹DëQ¦áÞFï=³‘#TUUu“ç]CUòéËíÒt_ïùö1oíxñ­ªGö[»¼¹c=¶o{GçûU{a\¿4ÅãÇY·R{—*»ræG³覟Y¶T™Nì9|#SÍ#Fç ©~çñ0Öež9§‚Ir)˜<]¤&áT•rˆ:yïì$©+˜lº:•ES©9-¢Æe=Í3lmt›T}XE$D,@–mKÄkèBš*I$©´O% âPX¨ŒF.Îë‘lh[áÏÙ\ZŒÌv$8œÄÑü® a¿·,;l;´n^îj£.c { šõ] 0~¶,½' ½ iK?í5o¬ ñì^¢,% 窪ºªªªTÐjw·¶þËz¿|ý8n=ÝÓw=ùâ¼ÌŸÜY:šSåxôðfÑ@·Zí¿–\Ý?l‹E˜qšK½kÿëWï›™ W (§lˆ£š*zOŠámlR™*¡É÷lŽVšL0LÕLM;Q•í êT­?g{™¶ôqNÒ¨ 5¤-S]bœìpé;È÷ÊÒK&݃ªªªÎßE "…¼lÊïîçäÁgRý¿¯¦¥Ktfumëø#KÛ}YOu2ÔsFW†ŠM fm³Œó±FN£Õ Ù.€M7MY=Ø2ë8ۊlj—\5tO%´Šu”ºaz¾ uuÆ®$*À8bUõ'ÞŒ\nCÒ%¦šFíüæ4gof À´×¥Àà ’!†ÍGę̂é’J¤*Ïß˪ú.PUV,ÞWì¶6­7 üšh§m×vðhµÅÎýP× 0íú`Í‘~r ì-ÃtÀeG!„C»Æ#ì>´VëÞµt~LÄ . 1l©Ó’¼ˆF·BnœS¬…çÙÈÒI‚«ªªN~vÇoš²<œºÓ›{¼º‰­—ZšÓ:ºÏÙñõãå‘7ÚËzÖÆË¥ã=çÓsŒŒ½ks²é¿Ï][úÇ•i0”'ó$x‚ÉakQsrŽÑ‰qbG£ç·ôFov74jLVvW™6'f °˜œ×·±{ÍØ ûQÅQÃñ‘¹ëBD…éâÆ7©Eaùfºfc°Œ%ËœÄjôûžH¹WØWåÃù‡/_áBŽv;ÏVæ34"Áap_&RèºÏáЮS‰…>ÈÀËY«a~ín â~¶l­'ƒ)«Š…&gËT§$—Œ!¹É[É1Œì…Îપª­Ìz§½Yï|Ê«øåœo®®0 uíûëxéóóÿÿúçc1ûïcuÏ×õeÑwú -”¤nÍ礲Z%çO2u.væA›N@@/ò^ÙMö[Æ24*‰¶šX QCå4·9ߦ±zöÍò¯+v&dToŸ‚¸+°Tò¼í‘›dÀsI#óˆ~;,ß{™T.U¡¢V“¤’æ·J‘ì• 6„éZG´39ÚÃi\Ýh+nÖ4Ý Ãí@J {ºgÏy8'g¶Þûl}vÃmÓ=w]МIsAØYt¶tiJ.Ë–n3† AãÙujö@QUUuO*Peª­•öç;ß:õâˆÇÆý›ß;é7#¾ñO÷¾\vº¦Ô¼µÚ9ß ½Öõû‘õìëŸk}mQ¢ÉÈ1I”‘Ƙ¢!ï´ "Ÿ¢YMÉtçX¸:ë3r¿Y´2 FËôÃ!Ëžoú­¥€bpS4‚²¯ˆJx›¦QÆ{ͳ¡{$S —§ÊQˆJ%Ï—K !ŒQµ•T~ý+U©¬Ž­Ä¢'®C§úÚéž=bK¡l#]ÅÑ 0„3ä.6€º–‚¸€¸½sSS]j¨˜3£D£n^czØ ^¶Œiê™3@ãÙ2–±Ìí É½PPܽgR;I¨ªªjÞõ§§ Y¾Ÿš×_o Ýsgñ|'RÿéÎüš:׋Yýq`¯i%™Tï!îΞíÖïWÛÊœF_|(§Ñ©¦¤„0<ì“þy~Ô =†„Ž÷µ(›š±ô}b†ìS£VÃ1¬3Ì0U HÎir?A 哽»:OO&Ûì·sa?‹fX„ ž‡úØ>R¥ýä›,¯EWÖÎB;€á±Ø]™ºI­Ïy¬·¶-˜c×ZF2ÆAP ²QD ÉQ2ì¡/ éúqCˆå臟¡Cž§uþµ”~iDÃB_Kפby´ñìNgfrªªª¿ŠÙQ¨Ø^ùåæÚyϵÿèÞ¿^2ð߬*â|l¿eýx:âM­÷ô´÷¬ç¥ožUEÙÕ½Œ9+ÕŠ7Nˆ„g WÖn¡2UqBà2YƒõíazrŠ¢!gzÉšrÅån ’:³ŠÖôážšélj\õ‡Tõ-ÓcUÂèbÂuµWj ´ºm÷pov=ÅTz‘rüm‹E°%,+vaA»#×ËP÷Óé,¤oi+5öÖ‰~=V”D%“ó>ÒòΡ…(L6Í8²bŠ^@L'ÂÕFÁYa‹¥¶Œ¾G¸Ö&Ž‘.œUiã¹(™=Ê^䪪ªƒõ¶š•ÝÔï1@­ú‡Ôó õ2þßí›x¾,æ=’û5Å®ºÊ­c_7ÿÙô÷Ñ}XýÜžÆãE5¬`%MÛN·EÃÒ$UÄq4އE«ÅTÛ™04«¯²8ëy΀€ZœQ5Ù÷XõúY]þbÀ@ Ñ_g¤2Û‰sPyI»kÁEC•‹î²lû† ‚¯Õ¦w¥ÿ“V|e—ÆQ…ÙO,o¯;fgÄŽTeàM—ïÐ<QÙ‚D1Ûè× 1€`WA°¡Þݦ _f„ ¦#Bö.;i^¶,¥GÆ%iKßפ" Ï$\Ô&°“î >媪„.6OÝHÓn*¼òÿ+âîŽt_ÓK3Ç©Œÿk?¹}¾w‹²Éý½ge·VûÖ/( e-}ÇŽ=NQ+ÒL4SØ÷DJûX Í@9£âùʬ3‡Y—!ÌRt»j¯WË#•Ì©¾êÓ¾v2Ì#ÀB#zvU”£Í!Žãì·\Þ÷Õ_9@|nݨ×PéšÄêÞ85Õ-gå¼µG8Å sÈ>¶ÔmOÖt ‹ÜP¶”ËœM%³Úx ŽEvF™Q©„ªªšÑ¨–T|ܧ›Á¸úùÁÛíåýÖ•»>þf\é“M½¦9¿ÈÛ©NN«×Ï[ÿ²«³§Íe2ÁöB¨‡™b èÌ瞌ÒUìH“"ˆ§<ÓÍ€ÉêšÅÓ CäÉ“(›Ì‚)å4KçBˆa¦‡n9gwç·Ò3Õªõãê9©þLOCM'‘ $•ùJUTPOéMŒ …e,#l ®ÿ[j²^õ_ãšr ¾‚<—cCZÎyïÄ8œú€œÓ’ >ÃzY¤!gc²tÏ›àš‘œ´:PÍ&o.á°‹~¶,±'wbÓ¨ gK—æd! "†DMî xÚõÌBvUUUM[¿*UÕG®wýÈMøeõŠ›{ˆÀ`/½Âý£+N/¼¹èäl«ÖUswGÎÈX†e E1εBB0È«x#Ä<} _±H¢²wR³<^Õ[Ÿ=@“5Ї£ÐM™Z< C!:or€ÜÙµ Ýð`»8PqBMii³.Ëã±xÛ÷˱®Î[G,CA’ªeЄn°Ê–m ņå‚PyÀØM¢]‡€‹7qÄijå£Ë2¹¹¾k8Ei-ÓBünæ˜!d1Û¨î¬a³@d7(²º¤[S^¶tmIeKW—žº€Æ32“ŽÑTUUµB„©´æŠwî´umÇ·?ËhÐvÞóׄãèV•{?q?ãëòöó¡¹Óœ«¹?N×}úݧÖf&NÑAØQÑQ /d ÉLÄ™Y`¦RŰTvul'Š“6í~Šìö0ÃÔ‡´*r/$'F›«f©˜‰ %ñíV¡¡Ÿµ«c¿½ ÆF~¾íÑíÅ ˜…ªª.I»KÈ­6Ó´©;îм“N·ú O™/êJÕ™sè`v@aöM? ÑL&l\Àç§5ÕVn2F7ê§çS=­‚tk~¶L}Ii« jCÙR·%t†h|$ ÏIc÷(Jº„d°ªªj‚Û[ñø½/ÛêïßWO›GV®óÇë݉^èô´wËóyÎåröÒ\1Öûá¶4¿­f/Æäqìi®{‹1ˆ! z´q™­¼%ÊÁ2,Îîöçq2ã¶CgÇ(Y5yª¨Ê£ö “}ƪÎ_ÊKquÖ$áa©µaõ± Jm'gƒ,,Ë—^úsÊó%ò+¡*%«Â~…$ „ ²f:¡ÑÉ¿ÝÜaˆ‹ý ŽîÐeîÒÓÈø2-«S: ]`iP¶òg68øjBRÇÌû}›Í ®Õ¶teÍàD#. h<[š¶'™H h<;³Ót#˜PUU5aY Cêêæ•ôߦwïýóûÞà“_Vº3þ²”¿µNíXsq¥Õ\ÇPÒ“íCÛÎì²Xy9g¬k 8£ ¡j W¡§ÐL";aš ]iŸÁ¸0§Å¼ŒÕ×RñÎnÀ$Dí.ÊKHÑ4y8›…×ê“@å2ÝÏÔt˜û¬Ö´Ì»j##Ù26 z #g!,‰ØÈ^ß‚óï¶X|Œ3OyK=Ø+ÌS’œö–×çùo¬mí8Ñ£Y+Ÿæ ‡&=²w&4”ÐêâNÙÒW£¹µsk­c Cav~¶,㘠r“³¥—Ø ¬ô ÉœgávÏžtÇ̪ªª>žÏío6•µ·UwGÖâv&6‡JÞõãÇ÷´§ÉW¾õ¨f^<¸uI«m6Ïýþ¾ï÷3«Y­+Ö›3\>ÎÇ›fÝ÷¾Ê¥™Ö¤†ùˆd®„ôXOtA ÃtúËzkÆ^ÏG¦îFU&Q÷ÍÈw Ò´’5€»o(q# 1“3fÍ×}[ï«!3À¬LïÇ:€¿say‹Á¯,½ˆÞUÕèé´éîÁœ}ÆÕŒ’G “ç¸âwŽœ;ƒƒÕâWt1Tsh)î³Ëy’O²• ìc· -cÚ¼^¶ômJ ¹oh gKWÖPdÀ€Æ3’ш²ArÕPU5áÖ*‡i°ç‡û?¿ò<¾'Y³+«{Ä7×W+}^òKæýpíöðpxãÓÓÞ×v<¾¸RtÍ"]YŒúwfÓkð6^W© zãΰižFgf 3ãP¤µ>[ä›=koj²>ƒéùŽÂ@Â4ÐEæWq)Ec:5²ãWjœÉ¶˜¸¯ ¤ªTo¤tÞW/¼×ú²©M×ûê^¸ˆýzFÏåa2­ßµMÖa{ú¨uþ3÷š ^ÁE ®TŠ.Âíš¹nÃÌPárf© aœ`éGÉí>¶Œ¾UÑÙöÐ- Ç–¾ÌÕr,:Ð5ž¥”¨Ð›ÈPUUµêÄ{ ƒ’|ïú*vü¹JëÁ»îyûÇúôÁÍ•FV>=ÂÇQŽÎ™´cWü,ÝK$R†IT¨œk&Fj´g¬·ón ™I:ŠtfÈÌyZïi_†¥ÖÄ#uU¯Œ¾´Ý¯£J(PQÃ|ž•ó¡æ¾ßÎêõàËLšìSSÕ4=5ì”ÌcsزY·=¿ÊŒrN·‚°…$E’¹‘,Œ aKËÖ±ÀàU¢aª)Îò =€â·uh3„0pÞݸªƒ¢°ã„*yGÎìîY hi50ÚÉ}Œš0í*ew0y…~¶ôu J@ÏZܘ¶ôe-)2VÐx/¸í52œ«ªªjÛK ¡.ÁL—ýáß²¹ã—ÃR>nµ',žW'_{³Þ©Zxb²-îp˜š\½9oÿo¯ÆÌóZ®³*”‰ƒ&ÍÕ˜²fô‡µmh&fD/‘÷p¬ÃbÊÑ;ÔÎ9skù·“a(8É镆ª¢¬ãJ -ýJUÝMŸ7i˜ª<ñ@ Ô“‹³ßbN#5BÌz p›»L½èˆk×NF‘‹¾×.b®gB™ßW{ßV£ñ†-éŸeúýÛ˜Rƒt»0ŒB€æë‚@hÞ:Áv m3‡†s‘ÛË›„H¨Ç>¶tq J´K֌Ԇ¯%skèD»X@ãÙQÏì ‚TUU ƒUU_NZÓµúßXÚÙþ/^çϵ£äÊ‹­ÚÖíëFݼ·^ö'Î6£éõ\^ÏúŒ«V·‚Œ+«Rü ÃÑËa“ÚÕ;0i+¢(˜+O]#(võJRyªèš¥I©£²!a²²²f¤@{¬ÚwsLÆP‡¢RCuÅ\IÈibpv½k!Â%¶ü:"IXöŠþ'_*âµ~"1åCçÞ_ÍËîË4§&R7Q{½g5¤¹c­AL6”IƒÃÏ|¹ÁiVGÜ ‡V‡­y¯ÿ2Îñä.ä}ûYPžf ºÁcEþµtµgP½‚ÜðµÔqL b m<{dÒt†ªªªCòe•¹ ì8üîÿ俽ŠV?ø·[mŸz zž“ËÆ‘}¹é¸Qç-¨/s¾¼œWo‹ÓöÇ̘ ³œÞu=¿ÍSöWýñþÞó²IÜM£¸²°g¡*9Ç `G€‚eMª<9"•ýóKorDùêÛ5êéÎ%i"Ϻ3üý!»¢Z2j(n4€{äHâ^ä}ϪDUU^¨HIª””äkÕ²ô®73vºÆ€WP¶uÎ^u4KIƒžu€3çÌO6bÀÏ ø8ÇÎÃpbÞº[¶d2qd¶Y¡;OÇ~|vr…}b^¶ôu‰iDYÅ4–-Ý8gt&ö"H›¼£HKr+žQfO–«ªª²£ŠU-³4 ¯·ßsõªéÒµE>ó½”Íû_÷/>3ÎOO‡­8ˆC¹Õ g×Ó \¸£DÝÓdS¹&hNt‘´UÌ5ߺSÉšéq+•Ù4¹–Ïž"ׄuÝ@CC±Î˜›,PÇTŒÉÂý¼—¡Ô1°,H–%cnsƒ¶1’ÎDÞ´--¹?Oì¬ ;)ÆœÈyÐgí<{œ@D|gä,Ð*Œ.aç,ù£òš®Aïa5-âú‡ì .â>¶4eŠuÙ@>-eß3L&/Ð8÷•ÄÎ(“î,³ªªª{‰¯\7Ú0›Ï'Ž ‰Ç¯#©ßØÿöŸwFn.—6ÉËߦ|s£\«µZqù´zµbõ\ÛÝK M"9\*\QE4Žƒ°=j•]ˆŒIákùíœê ‡Øër†§¨4PL÷Qg@NWAª«Šò)ª¢Qî»’š*1Q” ÍÙ9üž½KÝîžìA”iøƒcþmXöXätUÉjÚÄ_LŒM)üîÒÕlwrÙ-÷uW¿¿}Kˆ†®î°3ɼ; Ð?‡‘hexGgü@h]3»£¡´†Î&(Æ Gi]¾¶,e*¥²=è@nl[–yJch¼7p{îNg2Æ«ªªj=!–FªRÎæ¶Í›ìM^._=þýánû“ÿûJ…ãg?DK6n%mpö¹Åyº¶^_ÒN»“—¦½'ãP‹bQ³‚ƒ‚5BŒ³ïÖ©µLÖì!Κt”©{2’ Í»ûeCBOv ð¼b¡™Í¯™þæ<÷Gö™uÆö¶†YV羬ÔXuÙ#y•”çK”ªJI‰²tõ°4Åvù^øÆÝ]ooÞ=öØôp;¨µ¾î×õVFkÁl²„ÖªE÷A0É2k²  Ù…È0›dÓ/¶ÙQ¨*Òx.2Iú«!>¶ti Ê *¨gËÚ¦b B§_@“GàXŽvdÏÌŽKUUU­¥Í&,-=\žô}ã\ƒgiï¬ÿúºÜô^8ßΣ±W¬/ë÷¬ïoã2ÏË.ec!²9o”•™¾  ’šd˜Çé¥,fe°Æ ä$8ˆ²©Z3¡ÝÙmvG¨«}¥~¶ô}ÊPÌ€d¦ÉØÒ´9Y £1DãÙÙt¬ RUUÕôp„•U1Èú²M½ï}{¿øÅÇHð¶{j`ûŒõì¾$goÍ”X<ýnòS‡éJËÁTReÞl€î¥éÂ˸žqî93w ]o¸f8MEñ1Ú$ÕOšJ=U=‰Jª¿>&ÏêãN­£]¿§ê¡RUC¥[#fò.õ5„?Hº°§Èz`-°IŒ“:ì,GV²¦f%Äfb²r憟þü#?gbE›ë3 ó¶OggSÀ,ÂsoSÑí/O÷ûÿýÿýÿÿÿ ÿÿÿÿÿÿÿÿ ÿþÿùÿ ÿþÿþþýÿ ùÿÿÿÿüÿÿÿþÿÿÿ ÿüÿÿö^¶te N@¹ñl료 ñì̤éF­©ªªÆÆVѾz?ß:¯T.~±N¯ø™~qp¬bí¾WUýÞu“âΆ!J½®ßúY¿­sí#g€Z,µ¨6Óq'iX¡[@M ±7q&2ÓÙäèPk`eY;f<Ìô¼t%Û+ì1‰Èzmµž²í“×¼˜4…2hr.¤®\Ê4í!eÎï©úZI•ÃÑë"EžUˆI¯vÚ¾$,l =’1–ü™T¦™'s–áÑžÎÁµ±‚&Zîz½À…¹™ÐŠ.8ÄŠäM©_ã"JàSò†êõl2[ 6^¶LuŽˆ—¾‡ÜP¶ŒeN*Â˺BÜxo#{”Ù%TUUuhã^4gõ;þÀ>fóðo~{v:r¹ïñúÖ°qÚýÿ¹÷üºX•´»}¿÷®g[gž\VÌlJϪUR”¢µËcÓŽ:ãyÏQ®•@Š Xµðd×8B5,™=ÛWêeH×@Ö»rÍ„yÜN¬.nš™è†‰'ˆÀÐWaq¬V8 P0^VÖ1,víÅ]]Œ…m÷í›á¯ù§xt_M&×.¯»?]z½#ýä˜ 1צ(aeo\H[Ɔ¡#8ðäVìî;ãæàrÙ!FÍN ç\ŒÙ ÞµnA€‚ܸµÄi % `¢q~ô­‚4zÔiÆnrUUÕîçw{XÛ‰ÿ-Íj¯{keU‹˜\!YèŸY–þ꣇íçËyüg¾ŒÚϧç\ëß.F†æ!c\ú;çi—;ÍXôeˆ×À¨€ò…€²Ä}Ö›ÑRÍj‰ÌÊ\ª'ÑÐ`GÚ:¯r¶9]Õ+t14ûÌîìÊξ”äãÜsññðôæm0×É>†Qê½}ÝÀ)¶%‹šàÙÉJÔ[µÈRÉl’JLdüENˆÓ¢ÿ9‰é°œµlZ†Òq5¹Þn’¨i߆z8¼)l8Ðh¢üЈÅ[ _x;зÇì³î.ªhuÓÎ>¶ôeIîÈ /,4”-Ý8&wAES˜Æ³{’ÑÈ¢ªªj8,1kªÜ^îÕ7#^|áaþÌÁš{góá?.{ä3­—E™–|Ös´¦:ô›æÒ_Œ©ÒÒUµ¯LG¹ M‰¡9€a &`°EÏ@ž‡ýûÓ> ÇñËááÑ43Ï”÷öÔØù1À+’„L–„ìpŒ›86¤PUÉ{Q•õÁ¸KeÁJ?•/Ûî‹bŽo^^Äœ¡Ê¡5Ј±ôŽ/ö‡Ík›¼XžF³Ù›àôª¾çˆc¥u~¶,qŽt¢‘WÐx¶Ôu“AZÐxo»÷Ng'ŠªªªbK#×ô¥êßÖŠw÷ž|ôtävd×ðÎý¼Öñ³Î£çÔhGjŒÜô÷Çêôõãa4š±GÍêOÍ^-çZšYyÐ+ö†»±0{ ÄäD0(çaýóòÁê»™çMÔ¥ÑÉØ. 3Ó•ÔEÚC"¨µ‡¿éR‰ KÆx ïgVŪ²`ˆ”˜Öƒ"2€„,ÉË;R¢²®¤ª•}vÇ·åĸ&¡)<ϱÿÑ—ëG$Á:IêÚ¯°H¢[sƒ“X !cŒËî`’}Œ:“Mk\[×HÀÎän?HkXMž¶ŒeíI‰MíXôiK3uèšœÑ{&M[CUUÕ´°Š!f¾+?²h©cÏ%ä'‹­0š:ºvŠkùô¿o^öeñèuè¤ÿÚß—kåý\®ê¾‹9I“y¥ƒ„¨à^»¾îáì uÏ C±] ;ž`÷iÜ5¹“GÔ;ÈÉR©©¶rÍ+tꕦO5æ“<@_AgÔ°â¤6k/'…G4Í`Lå,1rUE•¤ÂyBbŒµØ­Ñõe$ÍN«ŒuöÄ–ÔÉŸé‰Ù!ÉÇ+"ìÀ®¾ª4¨Šêîäpøo-·û ]ztØEN¦ž¶tu &`‘Ö–~\“œ@î¡6ÞhK”I'YBUUÕdqˆ‰š!¿æ~oÒ°¡¹âoWÄMåžß”]»ÿø2þïÛçj¼U¯ÇÒCÊRJ9=ͬ(Ë ¹´+ጋªe-Çì,è–ã¤r–CAé·ý±ˆ4Äïâ™MÖLÒŒr2Zô+»(Ÿj'/É뮡¨“M5Ž æÉœy†™¬—Y¤ö4~\+(PÚ–Ä’¥ä·ò£¡–bª¯—w0Wëë••ie´ÛÞwiìu/{ÂySD˜€#o‡ýщ±©b XÅöÓu@{GiA'Pc9ž¶,})rA iË4΂@^Aã=ìžÉ<ĪªªcBç("ޯ̖üÚø«»¾{ã‡[ß߸;?$õdê§¥﬽H¯÷9Ù5OÓÍ"óto‹~³œÊü’½wÕ2”ÈxjeŠºT—„‘‰¡ d[åi±0‹{`º|*5Wë¡Qƒè+Eۆܚ.D÷ÚÀ$QÛzB =r)|Yü6Ù-fð<¬Ó¬²Sk `ä5I!VKJ¡ê½¬‰ŸõÐÕu$.¬ 7-Imñ~ô§‰tŒ¦É­ÌÎ5Ç>´ SD §Úè`Ô®ZdÚ{Bo]˜\<Ò\ŒÀò1<$ž¶,u‰ "]âÂDcÙÒ÷1)„t4> G8]½3{”™%TEªjB?.be÷®ýÞô}|»;»ž›k´Éüòí}¹Ú.îšßæ²È­$kõ´s¦ÖÝ1:‹±˜€&­€ÛÓU8”)“Tœ«»¢bjJtË]ddÆž³è¯ÎsÆ ‡l¨ÓÌà€©$ÒôU|zèöá !µ;›lN]7…ûvf%s3«èwv°d‚lª²¢Ø€‘‘0·IŽ-I1–A—P‘¼7•ªx¬Š,[–±uKm¾,\8ÚypáÒ²¨_$5ï®íõÝ\è­^>ƒƒl8Gà~ *X'r¦)ÙepcÛZÈ´½ïS^¶ôuJ b¡ñléÓ\ Éœ;5{骪 )F¤îvrrõgvFµ´Q-"á@Ú4¼Ç”çr÷Tv†œoíû¼¶^ì÷¹býº³çU³ªìwù%^½;¯Uë2$Ð2$íãìsÆÕ`ªCì®âö²Švχf–ï°•y` Û¥œò1m À9KMÓ•ñ ݙʚœ=2Æo—³ÏhAO»W,ñåx ÅR©´%yÍ"©,¾HaI6„^e«5æŽÞÖ0ÕÜ»’öMiw¦™iøÌQú"t³dX Õ¶F(}¾ªr¯ ĸÁB>Ö|¡öO‰Yþµt~ÜŒ`1Ö:N» &Á4žÝ³‘4ƒ™d檪jÄÕ+:vÕÉ\á÷–Ö?8ÛŽ=™þéá)þõÁâzöoî·÷Y.Gº¬lÓ)äÛ_/€$"dƒY‘ …<ÿ}Äzá½»·|tÕ»ü뾡¦.ÈH`_ã’òì…Ò‰ÃÝsëQþj$«ÁpéÀ\åë|;“-±¬pÖ¹Îʯv>¶tnŒ ¢5“´ák)ÜŠ X¦ñYpã—Æèeö°sUUU®Õn¦^wåñdªïœæ§Aí­1kŽæ²½QÃeÕÞé{|\ûX}¨æèmê$Ó–YkûÒ·Õ!}©*ãÓEõ™0â. Ç†¨ãDŽšŠMMÖöÜ?.I»kzj>0YTM>d³nõM‚2¹t'ÀÒ Õå{Ô¨í×¶.€Å€d´´ˆ'”Á¼±çj¤QJÒHÛæ‘@@o,jíXå%‰ÍIyktŠ©¶ò¸³ äõÿ°µDi9Sv»mCø•Âþw†(3aˆEKßМtCæ æ²©É䧯×~¶,eJÈ ÃHÚP¶ôuNîDëÔj“;XzϤ3x(WUÕ!¦1Óeß5ÿ…»¾}vg·W¿úá;ÃÈ2®¼õí¼L Ö¹xQmðª¥Ö Âua!ò¾]¶¬k‹ŠnjmdÒ•3†œ‘ZŒç1ÒO-¯€ðMdr)Q³4í¹jÚž¿ ‘é*2Á]Ö‰zèâÅq‘1âî›lÖ$U“/ådfÅ)ZHr^f©À^ÈŠûùžç· J%I¢’Wñý#AÕœâuÔl-½§¾ÊãÆ¬Æ’ÜÝ;n­š66- € Žô³!½("˜æ|Þ<Ö»k\ `ù?8êÜ~¶LeŒ Ä‚¦>ç²e,S‘)“VPKã=€Ñ³Ótgª*‘³¡É [W“÷ä°–û~^>¨oÜ0ÚûÐßTj¾_}í/ŸÞ¿¹šuUµ›fö«]·U5«3Û<æÉÈr·˜b1Л›„¸ –@èªåF1.Ÿf!ý÷¹^܆:£j¢¢™©ž¥eß}_H(é|IÓP©ÓN½|¢ö‚'g®N`œyòt^×õ®Ìõßõ¸_M ´Z‚º½xa•m,‹Jj­Rž«Ö’dr ncÙ`°#ÄH‹Ö8εÇÊÑZ鲋iYŽaks%Tw‘F™ ¨ÃÅ<[±F61¤A7ä–©ºà¹”X”&tŠ5mŠÞµÔnJRb4Á4|-½3Óèqãì‘Q–Aªª*¤-šXi@ªqß=[ÞnÿÖë?žïýܰí'|ë77ÞÜ|øöû²¥›g—Ó4S‡×Õ½ú³ªÓÛ[‹·¼…1ÒÏeuî1Íç‡Eú²ÓÅ)Fs׬pìê²3€œžL^Èã ­y‘ˆ bæd‘LBBfeR;ó™µ glÝÔ|óÑØg4{Œ*#}ïó-YËëÜ—±Ïœ9Ydí—*/X X¬>I¬²ÅmÂóÅßBuÌó㢱ÛÎÖñ¤s>Ÿ§šÈX“¿t ºÈÅ[h¥}RsÙ€›|r‚s láßcÁ°~Ŧ™mØÅ°=ÞŽ ¾£þµôqJÖ ,†\6)[¶Ô{LX¬+{4¹#Ñ£NÓ¸ªªêœŠ#1¯º2îí:n9;ïÞ8¸tÿÓ‡Ó­¹êW|»_x|Èþ4¿múÝýÚzK­voëÊžf.ÇÉ\×zõ4¯«Ô³dfžr‘nÀÄÜ®ÒVlØ×oó}Ž[îM$ Ôì‡U¨÷¨,çr£æ}盓õ®íx¤Ê䜪™s—cì·—î3£o$ƒ&µL½ÚB÷-]ˆÆTS~I¥lþ®öNì¼òjåòâ±?¼(._ŠE¢¹y:Š™&Oǘ“¦^oXÓ‘–›8OÑ„ ~|…ï÷U•ízGm»5Ò­É >¶ôeŒU¢Q5ÔÆ³¥OS%fYD6>3$¹³$M÷°sUUUFÕ&ßàÖëjô/©»õg÷ÒØ ¡!?îÏ©/¯YÔt˜J§Do*«ë{çU§ú§™@fZsREÇ 6†t3T÷Ý„Ì@«Øe’väajH¨!61ÖÀS4Ë´Ýçݦ¦Ùô›ØKá Õ—§çžØX“uÕ¾úf12ͺ{ýZrCÑÄàA&Æ’-!G¿ª)*½Áæ –Ö%Jä­«GÛ¨š<šü<¦Ï˜Ù°Óú5uÈvpa›þ¤îʳ/£°µÆ@µÃΚlrÁß~›„캭ÀÓd¯Þ¦ùÂúÔ¾µd~ŽmÄ ô ¶–4®ÉŠ)¸@ãÙ™ÎNrUUuDOˆT¤B-ßÛŸ^Œ®Ã‡i~σÔÿl_ü‚ó›Sw¯ÞýÈÓ“ë9×™T¿Ï‹÷ce®ÒVw•æî‡ŽE I€—QUBq©å›²0w(t¯þ>õò¥€"èªv6ØU•«Š39Kû¡SPŸ6 õ PC™,f†‰˜2vkšë±/\^jS/è)Ù‘Š¯õˆð I!í¸²£R}ˆÚá-y¯üC6¦y!ôã"ýüã¼ív`·p ÅhˆPN>+lƲÝ(ÈÅ}hlÝ"º„•"Ð m¶ô~Þ’…~E4–-]GêêçÀ!vï=ªªªÞÇ·ìæÚz¼¹:öϪCGWÔÒΘ˹ÜS;ä!ë§ep=åKBrê¶òR5îöª·ÊꔅصhKÙx©†)ÃMßSÍYÅ24“I4ÑhÒ¼›g_Ð “ï“Ç]Ó@6&EDŠ·k¦î¦ølNïtd<>Ÿ‘ÚÙóè׌Ó?¦ÛY¿ß«îaè¤Yk`1Ðû¼µÖ¯m &0¬Æ»³"§;ëÃp7~Öþ ‘ƒO³o©Ç¤;Iç¼BÏOذµhff#·«C »½ ÔÌv†X®/Ìç\°êùSB`ÂþµÔntd.⚆¯%+Kl0 @ã#tŽfQUU56ºª$aŽêò_ÊÞ/eþçý_ïÒkînCóû‡§¾ž^ocyù^_ÎkUÛµ,ÜÒ×g¡-©1õjuV:›±0ž«Í´Tcñ¸Õ@ïe_ßIˆ5´LC­6XŠ{©!GI׿‚ÑpL5 sUÖ˜CScð±báìnÌyúlÛ˜£B‘<<Åê‹Tr YY€T’(ê)OŒ›, ®o½á««ðt'ìXÛðŠÄFé®ÔgÀ™ÉÚ6v0J…`¸ÜÓ®QÄ =|oþ™ÉlE¶4mOîò­1l)û”!” oa”ìN7Jé!®\UU5†ŠZ䨓¹½ÿíxg;Zåtüí×?%wû÷­u0$ýáå4;Ü•v¶,œJ©%—}×vöîmw{§Î·«q9 *Q€'x0ŒF?‰--<•Ù'#Ír[÷eß«nÖåe‰L«_ÞÎf’tÅϳŽÃ´O¾@ PÅšO{îmÌ=ŒÌ) µ¯æÙeÖì¬lGP¤,c ç—•ÿÁC§‚•©¨¢ªò|!°besFÚ6O»W±… ×Å1Çó½x“j­àv#“«d·nΜâ:Îh‚bZŒi{Œ^PKÛ§d¼}^¶te,6 Ô†²¥+sR“„`ïÅ÷D™tf`¨ª*R‹sC0LÈ?¯ëoçêøô›O·æ£ôoµqµU²?zÿêõ­‹½Ñ‡÷ÔÂÒ˜¶Ëš\Æ•`{ÀSÒ¥s e“ ’ºA›’¡º8®È„ŠšDUwRkP ^ Óê$‡zÏ$„$¥ÅLêù@“ÀL‰îz;³HznŠ$‹‚Ì%ÖC‡dB”Q'~·kSQR¾‘JEÊ_ª¨êGUêW“1cí!½­WÂk»¾>\ …¹©ºMkëÆvØ"°ýþ†´ö1$»eño”Ó çÊõòmaêút;»-¯ß~¶ôã’¤€Öp¶4m 4Þ’g¡hwjÏ(KWUU52Š‚…4¿þ[ù«·U>ý—ÇÓöþ×ó×Wk»Â'§b}iqÏøÖÁå¼>j7ÎyQ9÷þçþâiôwߘUUUm¨ »ÅdìŽçŠŒå÷ÞýÏÆþÿT:O¿ù¸-©¥3ÎÏïÞ<øz«´Eýœœ‡ýéõ~ÙçÌ3–“Ž$J®¡ MØK.ô?Q…ïïÙÔ¼%sÈâÒÞ|ìy^7ªHá§ß㆕¹…ÁZÒô¼=Etéu-+ Ŧ™  Ç[æî¿»®v@.iY—e¥¢*xE­y!U9sçnÚƲå÷²ôèiÙ=¾†´OËK»_jó×Ê­u9îQœ´;4 Ü@Q¡•¾+¥`„P5~¹mêlc8Ú8 9Ò:¶âÅÍ>¶4qŠéÈ .ÍÌùkÉÌYL"( ?Yƒ@2…=2é^ÈPUUÕpÈ¢6øçñM2݃]õ þ28,ÄÒ~óð‡EO'`fM[vÙ/íõl5»’(gŒºìYçeÖe:‹Åãj[Ç)ÐEF1ÅdŸ5Õ@š—Pª0u‡f²! Ú«hÚØ_©¶Îs ÄÚ‰Gû޳ßíû\©R]ÄÄí¬ W5Ù«¯Ø†½ÀdÞ#¿+I¥Š"OeÁ\[i›šà Iè&Ñ٤͌ ÃB¿ÝoôÀíh:zÈ&o=PÔV&nrGÉŠªÍmJ³Ý¦Óen'Âé0ìj¹w»p¦ùwŽ~¶Œ~8ÑVQ1Ó¶tmMÖˆ†4ž‘%]HVUUU†Ol­‡«k‹Ã|,µ9šÙ:Z6»ŸøŸûÛ±ÁúèõþøþzáÇÃq.õ:;ÍUývÅ|!¨$+Žã -A¦z-@6 5ˆ¼œ±ë¸ÑDÇ™ªHïeÄä›yýÖp¯#*é rØ9ôˆrEÍ9ðݘÝúsï+…á!›$“ “™Wzú2Œ³¾:¬÷y-òèMJ¡>RZ…ˆVÊ»¡p%¶_Í.¥=e1bŠêúÓâ/iò–Œ VYÝ&ÙD8ôWPó€ýI£™ƒùÙ$rã&7a&´~µ‰›iÖÞµ”~LîÈ jFò9liʘљ’u(¢ñl:3³ –«ªª2®6Q|§öJÌ~‘*Õwý6ùCþôÑ®ì];=¨Áã­ûœ“QÒ6g¬Öi3ËájIQ…ëu™:¥¦¢¼ëȹFÅt% " ‡gíb`0Lô=L6tÙЙ1¤JÌbR†žŠ,Ò›l !¨$£]”Ò) ëšƞ™ÛY]÷PETE}­ÐV$_/’¸i׬»C¤”zoº*b¶é.ôLψ{x\î~‡¤‰Ø®9b.ã„Ö@Îà ÑD¹ÅäÖv#àŠ UK/èÃGxÂntßÅ$´`G6^¶ŒeÞq¹K¡I›l-¥›“œA×AÚxÃ]íAÓtO2 ª*¡öW¦«…úaXºòÕÎÊÈ/>¼î?´Ÿ—?2´],vÕç`sóYŸ/èe°vu¹:ª¹Çcªûh«S£v½Á³jwb½wþ\ët¨ zje‹žïôÉULe’h¥|íRW{I£³ºrO.ÄШ<þæãÜs$É=êxÌ`R£Z#Ö§×Ô›Z†®˜žPUAˆ¤Ò{ʶ$TÔk›EoU¬^ÍÙ¹ð“NEÿ ÅvÕïwßÊêíºþÓ°ƒ çã +ÛõŽœ´•@ݓ݌Ҥ@ jÐ# ´K‚1UŠNs¶/Z>¶4~MæÈ w„¨ gKS–žSzÐxvÒM'f檪ªÃbW9ôÔ"ùòë¾=¥vÜø—à_§^Ÿ‚ïÝŒð°Br =r×àm÷/ë«ÀXñXS;T©j¯$ ðU–“,bµ¬Yùt›!Dg5™Î\¾¼Yúuf{³ø°ÙÞ]{Ûu.rÈ3éµ´ ÿ¶ŠòóIœWcQA 1À4åAˆ¤é•FáãµA¿ºcš¬ÂÂð€~¶y2ÛW‚3©âiâlgãºÕiì`ÇÒš ù,Y…fZ²`ü2 –Ùág)”C~ xøjrF€á#GZÿÞºF=8ãâ>¶ti\6ˆÄª ¤6„-u\ºldè-}’=’ï€ë6z£ÓŒN2sUUÕ(ÚI(ºÛÝoy·„£ÿsÔçäe\›Gîáɇþ9¿ÌÑïý¾ú:õzz~÷ß.‡ËY½êÖæAï»Î "‚Θóð•K8U ‚›¬6µ~ñì±§:$J%†òB='ËL^¿6b&›¥(7.h£€©¯f¦Yç)ôz«aŸõ[ :dÏ›ð f®†¾‹&U¥ŠJGÏA ©ÅH¶ ,}SÉßë]ö5È–jàzcªÂ1}ݼåÆ.î.<º¸`Še%íœ,Ö‚÷ê]”6Ú!•Á±MÉXv¤Ÿ«Újá>¶4~‰T¤PÑXº†²¥iKR0Ȩ÷àèávÉ(Ù‡ªª*¡¶(`ú¨,å£÷I¿îè_¾ŒWÄnvT½7ŸªS¿ÜOç™6sË¢:Õ#{šEµW˜8µV,{sú–ã2 jh¸+Y#Ó¹PêgŠL»-µ  Ð2áú;ºº¦æðIo!ãBǜϡÎ}>ìcŸõ{.²¡™g‚ܾ€ª’ /~¶,uŒÂ*/ –Ú/¡1ˆ ÄMÎÎÌÌ´„ªªªÚÓi-’’¾ÿE¾6~Ï÷Žþð­ÃM»¨ôryõ<üb3r½ø±ßlbC~¾¿å,Í¥‡ÕÅÓÝq“æ²EU\³Ú9]3À“¾‡IF,ªÁ=‘!AL6©Z ];³ÀU‘Š&S³1µ)›Õ"êO›]žd£¡ SKÕ•¶HjÖ)±¾KM~Ï ÈÃÕiÇåÞ¥ec[H’”ºªzÀ–Va,GËì÷:¬§zª ‡ØåÉYäœfFà|¨+QÑôív­)i¡ ©FùîƒvqF÷Þ}— kmáµôØ~¶LeJ ƒÜX¶tãŒÑäà¸{Ô“½«¡ªª Éš€ô¶ÆÒÃmìçÂßùø?8ÿpyQïq¯V˜¼‡y™Km«yËK/?ä\km}|ü4äUNÞ’ ¡´¨¡a†„º 3Êéï°í_iÅØÏÙÆ:éŠ[}*»ì•ÊÜÌ0t‚Žè…†¼pÐü^PuãY;gÞ÷åa^37c,)uNrùê«RyVØ–±±c;Jiò.Í×Zh,c¯lùbbRý)Xjþt¸ßv÷z–ÛjýŒeBpLm!>'LvZÇ!‡mL7 ÕŠ"YÐ1­föx ]šj8Å!øÞœÁý >¶LiŒ ¤\º«˜h8[šiÊØoE£G¦{8TUU5êA-µ`¦Eú¯WÓWe`ÅàüàîÏUZzôî¯ÊÞ×üÿ?¾øÞäçåìoç\]¯ç•óÒ¶èÝ‹~õç¶tmŽuÄ Ðp¶tmNVìX@wŠ¥žQ§éÞ›ó—öx°”Új î9÷ö9Ÿ¯¿½¾Ÿñã)Uá³ ^V˜Ç8a`±‚aºš,ìÅÀ@gº]•¼6‚íÒ…Õ¬n—]«slÔ$ÍŒMW÷x›õJ6xª^ÞI©ìèŽg0óÑX¾ÔùÐHä =ÃEUyN*•T,KPŒˆ*šªÕjJ=‰¢ûÛè+™Ù §É÷‚e¢{–tÝÛÛ±rKvô@®²»R4v†U3 R€ža7¨¥5ɬ>T ‡ ±~K(>¶Œ~NR¤¡ gËTç &^ô ñÞÄ_0²72“dUUUs|Ô¬ñru{Jïݼȵð á®ZÅWN^éq>þû÷\Ìu¯Ì÷ÝûåªÖÌÝÎÓ»h.™¡—îYmÃ8ên›Ì¬iÎC^8aYìÌa¨&7·ªf½Xôí˜õ|òéÇ<ßíÈ$QAJ¢ UŒÚ ­ék¢g¦ éy€,Є4=¥ÆÝQ“³v Ñj{h&Ò ƒ‹ŠT) j¡2GF¼Y16‰ìç­+Ý~eؘ ÉÏ`¶j¾Å‹ª[‡ì°¬ÕÁWÌ% 8—Ï»9Èèžw˰Vl”Tµ“H+8 jˆª >¶4q‰T¤#µálÛ\$g`÷v§;Ì\UUU¥Jð YmÒã¬m¨ÆÓA…££Ž®8iôe¥áW:ý¿óèYJE)+ÙÇûãÛ[ÿ4^¼,úçáóeŽÕ£Zcå¼Í—%0K ò¤^7§+„Ù,ÝdW?ðà±·Tô÷í5› ˜–g”ð¦Û.5hSÝ(㑨dIAM3÷8IW—IÕšPÏ«îuñ Ã:0ƒ ˜ð/YÁ°º… €…`µ*¡Dª$®ž7Ä=ô={Ùõü©]úÇçueyjÊEøÇÍÚ†CA9÷AoNøÈ{“«Õ˜`7ò›{+eN`›> ®{~¶ôuM*bSWfÏ–ºÍE6…ÏÙ –žM¬ªªZU5wÔ…æÈûùþ—€Ã¼ø”ÿ¸xýñþ|úÄùÓSWÝõǽoN8·EóÖƒqÉe÷^Šm½I„æ*²f–y}Nûìc7hbá™âNH;cXœÝûƱ”dÐìÆÃü2/´ä•f^ü&˜$;õø¯þ¨lgŒ9’ñ8wŒªy5®»,E™p[¶1€d0±±*)ªy¦¢X$$u't‹N4Eûvïhlè†4Ìõ.”ê·…@ŽcICnH;†<Ü»ïÊÝÂ!ìCah#€KEBnLÆ¢ö>w^¶LiŒL\T„èÏ–f\’š@ã=€t#3á*RU­i©Eã²’îèþ~¹5dù V Y¹6âpʼn)ù<ÜÒêƒzòppCÏF3vzÎEg1N?F ”ŠHÆ#¹k,÷–÷pýH)éµÕ$0»yªÅÂÞ³™eïû9EÇXÖxªÍ¬tUî.6­õZÛO2ô\ˆÌì3×פwÊÑq¥²€Sˆi–9)ìšÊp‚~—-K’$.×ýz}¡TžÉSI—¨§¤ôí¿ÁçÿCBjRO5vú>-i­KžH.L£‘~Æ8¯vÿÀ_¦¹XŽA! >„à´é°Ù34‘  XÚ¶ôi N öŰÚ0¶ÔnhL#¯¦Æ¹âá—4JffHUUU·¯ÍßèÐ.\ØN¢áFH,EÛ«ÿå€Ë–Ÿ_š‹÷ãv¾ú˜óõêí×ê—‡×ïësíþÜ«}?OÍ“+½ì gñPÃY§ «‹ÔDSJ[ašc²gp¯ s¦ñ.@bC¿áÚ©ÛŨœ =T1½T…‰§ÔïîNއ¤j_UÀ¨œ‰21 áš8êS¬@³4šˆ TTÕÒzutNI¨z{’ª U»­ÅŸªÁyÆùnx¢ÐÆ^¥»4Ý9TûÐÈ2;nºpW(¯÷¯ÕsÝ®³Ë@K''WŸFîG„rE¤^¶ŒiŒ â¦*f­aliÊS "ÐxoÂwzÒ™ƒ«ªª¦½µfæ½²t°óø_w.¶‚ÿûüç´Ú§9ºþæÛކ£o–‰¾¡ÞŒËÿ=ämñÔûÔï9ûÄëX;e­œÌEíZO?o†‹zW_U­-ÐNêÓ39 ª²²ª°—ŽCë^…L’Í2tÛ2BB6ÂV ¨·­J•¤Q!ïÕ¯¤Ÿ 9Z6:å1N·g8ÝM˜¯{€zs_–9wtWùˆ3¯C:,]ô«6 Zïb€bE|ÙhëK\}ö㇎ҭØ^¶ôqŽ(¢E¹';Ñx¶ôu*3;Dg”Ì̬#TUU U£ª´AÈõWsû?´O=˜6>5ï«l¶WU~ûïùè4íէ׋[]V/¯#Õ×TcÔY1”'!&K]•.NÔé̳kÐJfš ÌJAÚ3‰ ]€—p UÒ4Ũ*LÈrS $‘Üt“Îê™\z4T&+ï>•"ºC²³‰¡œ×‹‚ÓLsÂIP’ÎPõ” U*na4Múª¤ž‹¬–’*U©§G¢ –‘ŒA¢~Ú l8§¯½ììD‹ô0¼Î ß'¸È5Só1÷Á€°•¢Épv†F½ÞÕî(Æu[Z6Rªz0€~¶ô}N ¹§ÑªgK?ÎÉ‹4žÝéFf#˜‹U¤ª¦òõ«ìAÈÀEøÕå·oÖVº;²ú³é£õ­9µTÝ­ü²ÝSwÚzCÏy1Ôêµ{ågÛoö9m… c×óy¡¸Œ©¼2ª$æ”{ü3¬éfw<“Úûùì宾"ƒõëc 3ªämQa„NfŽ®dtŠìÑñ@r¨¢ ®(^EV\Ru´5ÖûW&‡i‚²€ÐtHGè’š—f¥õ¼ŽëGŒòe‘ Ï™ÏUh]®³«² »^„B_£4ƒCLCgm8Tm»àê†PrÏ1œG0V«¬´(ž¶,u.­“Qè0IÓ–±,EV䬠ñžFffölª ©ªñ6‡bô+ó‹“¹ý·ßÛ«Ïs n] ®Fï¿û¦ÞWëêí<Œ~;çÔ®{Žû§yW+œÍ,±']+êjÖ¥–5ËkÊ< È®¨ªˆ V\R1ªW3qUqä z¦®wh–ävÆY@]I¹Û"çI &9ÃtÑ+œ‰2³¯^êÎLÌHVûŸãÔpÎŒàm-4 62DÀ€Ñj+^V$¡Í¡o|ÇÜ\ݳ«¼~Ì5u;-Ø[òìÒšûùÕi@ÅÔ7¥¬‡#x ¤Äti„"ÐÐó1ÆÔÞu8KŽn^¶ô}ÉЈ‚•eK?öl\˜P6Î/GºzÚ½ôÌÜCUUUìKÆã÷ª|ÍýìÏo않ÕV»<"+\¼üëÓüÍô`ûà›Ïæ5“’]¿v·Í^L±›~´í9çr}}wFNi‡¸»J•3Ù䤢•µg§ÎaÌ™u½¥®¶5“ZÕj¦£ÁÒ]ä!!­Ì$t«›Z§‹¹Ÿ&©lÁS³É]¬ÇÞcû8i²øDÈA  @·-g  ¥â)IªÀ+Iv(Á*6¼Ý¹ã™~}â°?0ÞíîÓ³¼ðju­k½»Õl¶@ËAB§ìf‚[g—Í0ªªM\ȺñÙeÌö2ÉþÌ#ÛlÕsìì5¶tu ŽxÈ h[š¾&/Â%_ŒÑä,™Îˆªª*d4ÑÄÚ4¹\.½Œéº¸uÒ±˜ÏŒ,¨vÇÜ,ÏÛÿxôð‘;ŸÔÏÚËñbJ7ÔSI”g…AÀ*«BÔ.`õš§šF91yHšQ‡@“§ÊîX×Qö1“¡9 EÞS.ŸïÙFM†t¥@©È)ìåiÀ̬Q×U•sbO5ñ+T˜[7€ãl@©šwß^±m/¬”~¬ÿÙ z5w»W_ôç*VY(DÊì´B¤zÞ;}ÕîÖŒÃYX„‚^ ã²äXÌ0ˆ©Æ7×úŒ™‡ºA›wOggSÀèÂsoS û­Oþþþÿ ÷ûÿÿÿÿÿûÿ ÿ ÿ ÿúþÿÿÿÿ ÿ ÿùÿüÿþùÿÿÿÿÿÿÿÿ ÿÿ úÿÿÿ ÿþþ¶ÔeA€f¡!l©ãŠAïìÌ(³ØUUUÕÞBBƒjn›'íCÒd÷ʯ]«é®U¿Î¸ýF‚Ôñíý~¯¬YšO—Ûe|ճߌe³¸¬xýÜßl±«–N?K8Cvìà 4ù9I‰šKˆ€öxNµs‚>=ã¼ÓO¡ßr%Í@V\©¨3ÝãI57I¨¶ÔeIê ô ±léëëL»ô 5¹#=3d†ªªªMf$X|vCêþ\žG«ÏFëÿ5øüÀûÓÑŠ¸“¢ýÆ‹÷Öê,&ÓÍèV{_·æ¢ÛŠ\5c€lLÀ4‚a#NʳÌ9„ÉtmŬ™™rÎdgñ0 Ó©¬‰‰Eeí䀋»‹Qr‚ñÌ)žšÇñºç©bÌT Ý”v·áD{R$Ûnò¤Ö@¯÷ÅcOö9¿Æ½*!>“vØÃà»æU}4á+£¶HŸ€iز"F0f‘,ƒŒdÀ€Õ‚ß©•œ³§Vë\«j þŠ1®Ë¶Ï:×½âÄC2­v3b-â²½[`¹q¹bg.P¯ŠÖh½8Þµ”e‰i„U\‰Ö".¡ +h¼^vf”óPUUµÖ”P鑤òÂúz9{”ôï/iü:=æ=w?ƒ}ð½WláÙàAú•ªýÁt©©]]o‰S 4à ¹žCKY00&¢Ÿ·!(:ìj&p$Œ ¨ˆ~LS‘jh¯°Ē†šsîŒÖ|×+Þ«d” r¤…0¡¸GÈ4‚S66f ·H 6> ðtØúiv_pà7Ð;çÈ;^¶LqLD[e ¹!léâ˜Ü™½4Þ÷÷v_2³W®ªªjBÂ`Ü£!ßç_¿Öè†n®Ø¿NËv׊~bôαayéÅâ,Y׸G‚š¼×N£¿lPgS5‰U’=™©EˆE@“‹;äù—\ £î.“ØÃ4A75Ê%­6 4=D3HÍ«†b…¾J‡g*)¦Ï•d*›ºnF£uΩ·{÷ô+‹¢½f±6íG$IÅ"å«Ûó·rôÖFåáŨ¸}¢^¡_/Fù¢£õ®ñT‡):ûìL ƒì–QL Ò‚iîØ;ÝßÍ$”&‡|D&¢~¾x~¶¬©E Š g˒ƈb|è.ÐxvfF”½9TUUK°ŠH¼¡~z4¹?ÕGóøþå>oüÝ8y.ÕâÂäÅe»û‘Å7GÇýŒÒŒöuÜÞ÷âá‰þÔC­hj4ñôpMûÉjèÄ$’ô5WL³ °¥î_^<ÎEL"@ž¡z.-宨FgÇZ4„© !'Ö¬é•V -Z.”T‚}sœÈ¾Z·ÕÀB3ƒdµ*JJ‚¿¼©PŸ•j«_%›UÙt/T¸jG޾Áˆ3ÑCŸþÌZ¸‹3 £w®ùìý©Ž íÀm:à7š,4nsö ¡{ˆQ¶tiŽ ¢Pzж”eŽm ·€ª05éìáÀrUUM²6ô¼EªþûóºÒ“Gú[Ò¾×ÏŸýÎË)TïÃý©íìüÛ÷cwêéäaÕå>šv¶+æ85MúC]ö¢·Ì1íÎý’×Ùv·í¼ïÚ×ýyôÐyfâýÔ\ˆ~z¢Ç³r Yt¡ÞSÕ[5‹k7Ôš½•ôöåªrœ'š3öb>´ó·öv?3vŒÈ(#ºZ1BBŠdû6ÅHíà³JJ¡*U‘jÕ¥d™J} ¢¥4¡ÌE;Ï#¤Õ‹(¶ƒ¢ ²ø†JCÀËB0&îè6dÜ·Ý@ü­?ØU³¶teJæÌ$*&š„-M“¹€ Ò&÷ÂÉÆÙÈÌPUUÕšèKC6 G5ߟÛ{%U_ç绿zßúëƒéîÇ–‡«û`»Í4Õ—¦Õg¶/fD¹kÎL§=ýÌÅIšiuQçá*ý£’䀙“9àw%Ê1h¨aˆd^¥ŽyΠý#ö6ýÄ ˜ˆQ8©C IfénJ9”Ê™Äd’Lg”•TϯE?3Ý qZ³X¨ª/ù!¥’ª7JÚé¸ÒJ×R’ŠŸõ”¤\’'GFü7;tú‰w.‡H׳v€Ã,îXwÃö)Ÿ`À§ÀA$ ¹“Y7LŽeš©@µÌhä¦_ÀÁgŽ>¶Œ~Š,¤­òZ 1l©Ëš,˜4Þ ÏCÙ=3£(ÐPUUm ¨_rÏ7çj¡lŸ¦Ê㟤m^;œ¢;îÙþåYŽÛ~ß”¹4=ô¿ŽT©1Û3ýþŒÙ›c7Ya—²5IÊL‘{è”é2’‡ML*ÆÞL¦Ô5Zˆ\Stkww*)§†ê†LhÂA§ ®§+[sf¦¡Û¦Nu}r§ Íó ¹Ûd½n6­à-/Än2øDU¼W|âBŽmå4ÒñSÇ)q07¡ÚY«mÝê¸ Åâꃄvî´n±›^”ÍâZRvB®#!ì¾Ãí ¸wÛ߯—!âG)~¶ô} N ëX¢Ôx¶ôÓ’Ô¸@ã= ì’™Q“bUUÕâÄR ‹–¬çéã™^“{%íû_¾¶ö¾7GþøØ&X¬ð?·ŽÒfÜíº\½ô:µ¹¶ëÇEW˜WÐI'K1–u*ã¬k& )ϰfÚf¦J1:ygFÅEA!šÊ*T M÷&JŠ*æŸñVRQCMÈÍ$ùt1Y4d¡ß,ðVÍÀi,öû<ÇLUµ…ž«˜yL*ÇWDý^U©R¢Õé|NÅoI¿i·9ŒµÖß…èópîßIôLZ°‡õF³]ÏÆ‘Ï­>Y@Óš!(%h3g‘kgrd»…¥i‡Œ;X>¶4uݲN [AcØ’•#f1èVfoœÌNÍUUUM¢BÒ<õr]vr‰‚6ì`È®õ/$¸F÷kúžVH=8ïV-Ï¥¥ú`²UÎMÎhqT'GK—£Z¥¿]|ÙTE,EPÔtã,g»¸ìM WC™R[uéhÞ´­wcnG¡Ù г²¹==í+F"<Ùæûoʇ0Ýxð­;×€À6ø’Ý3ÖsÅìêñ*æ§ë-~¢É¶›ž£= ®«“ï‘QSˆB‘PÌŸbñžC•FÐælf€pme nÄ ÄœÛ4BþÇ ø{M^¶tm Aí‰Ò–¾/!Œh¼í’IgÏÁUUU­Ž•‘¢ôÛƒ“݇»¯H?l^&|þU'v]¼¶õv»ø-Ù§^±Ï:OÝê1~trúÚu›83×è‰EL¨ªìÓïÍ™³lèŠ!£Tâ^§Ô mV9 Î’¡ÔE³ØQ>zõT ‘wÓ@> Ðï ¯ö™;§U=]ÙÆbŽÜ¼¾½Ï³^$p-d¬˜”íH¾l v@\UÒDýTåJR’KªòÔTR‰Ž."vÛÆYòˆ“s ÚÔlHã2‚QšñŠÚh»¯1h%Z'ÉÞšìÖ¯7¤»A²Už^‡ª#Cu4\Þµ”e NжteNV„^]@“9ʧ÷ˆŽ:3s¨ªªúeùʇ¦}êåÁQs?T;¬ï>»‚Êϯ^.ðnåf-U’ì´9Lö!‹+ë]—ê­ÎºjLo«goï—3ÆÅ…]^j 6o{šûñi2Æ f-ÈT -Ñš |…é¡cµmª=ʯwÒv­ÈTÅWvMQUŒà~w¡Ó§ólg±Ï¯œÆºÎ ЬÝÓPqYžl^P ]¤Ãb!û±°e@ d„]Õ›'ŽOv&¬»é»²¦7?XíTªpLt¹¸%XŸk­€@Ä”9.Jn{M·ð›lÚOAwM¹‡ Eâ2>¶te°ÒƒÆ²¥N{•“M„4ž‘N—nÑPRUÕ®¨*"çpd¾|—µ¿sçü¿ËŸÞJ°üµ£+ï8¾¾|,;óáçíï׬»¯Üé>T«³_ì ö.*3(1‰¨ Á¡@Ø0Î~š9ì=¯÷‡fsœ:}æë^ßÇûÙ©ÝYMÍùç?¾•²ª³ãtO4¥¤+ñô*¿¿9>s{zGUN²çØ»jç·¹8' aaîW¹K!½k##;†TI^ë]Яå²Û¹ÌE85Æzik¯]u· =ƒÇšž•¾3¡·*¬mÍü¿¯À6âš½Q#3Ú)„ Ì'¸X‹Ýß œæÖ¤?'g^¶ôuŒq¢“Öðµ”uL^(Ðx÷AYîžQR30BUUÕæg×$Om÷Ÿžžò]?í›Ñåyø‹TòÑ—’¼zeH¾<;hÑž9ØŽ¨tØËÅb¶‹ºX§]œ½5µ:ÛŠ ±C "aÈ"=Ƶô4¹Ö¨& =k:‚;áÆŒ):X[4+°oªy˜µWv<0ÁúTi^¢a"8Ód¤PÙ㨻)(|5Ôpã+bª¨¥.)jYÒ$*•çjB%IùPõ^hdIè³Î4é»×’ã¶ïnsTçxô—#?à7 Ç×ÌÁ!{ÞÒ [ùqEˤ¯­¼ñCßRw9 DÍ:ùê0þµÔzŒhD»X 4Œ-}œ»Q"<ärã™™=M®ªª:t‡W®@˜ÚúýËþÏÖíöp~ºÑf‘p`eŬ>6ÜŽ/«îßïãûâï½ü9ÚÝí[}Ïqµ<«²‰ A³Â$-p/äФRÐßnO® ¬G´;ž*˜ Cm’J-IÚçÀ¹cRtÏPÙÕîª÷6Fld¿oük MRÎ~Û0$<™ÆÌù¤s…qÃØÈŒÐr[’VͪA(´²àǹX¬BûÀÄÝ[ýÊÂP ºúÑvh]›è¤ ›­²±ú¸ú%Ù ÍASV¶ôiL bÐiÐP¶4e!”¢ñ–ÀîÙ3KpQU‘ª†Íc":™[I½ùz§–|lÇg’¿IøÈÐ_'ëÓ+ñ÷üå9Z÷ᣜ:jþù\©“±Ö5×±I%Éz½¯­N¦fm&º›Š‡"Žk¡r3—¨êÔÌ^«œÛ`’Œ²7ây(`L5 ¼jgÝ3¹BÃÕóxÐâlG½›Vj©š¦öåpRkۘdE2Bµ$¶‚År(,ˆªWê©Tÿ!¾RØ}:•Y†(†‹jŸüÎÍo¹eRÜ^wiåM1…Ô—‹£»þ«ÎÙz@Å@¡CzÀdìþ<wQW>¶ì>&ÁŒ^¯éuA4–-“Ÿ ëd·ÌB1šœÝ3“.l'TUU£ªæJÐ’;n>rç|äÙœž7Unö?óHô<_Ml²Õ^ì×¶üçž/¨'=õ±t΢»búêÌ=¦s–¯¥.‡Êg ÷ŒÅ=q¥¥Šò¦.‚ ‹®®ÝÉDUñʉɢ›Öviî¡ ¢A•@æ0 û¥“p]\Ù0ÐÎA–î”êN¿Ëbúm}NäDû‘@ο•7qHj™F+`¡ÁrÌ’-è6HÛºi›õûŒmx^½J1AÉQ“p|øæŒ!Ô‘€dÇeñ¢ ¼ÓŠ A÷Îà(wÌ„ à9>¶ôe . b¦ñk)ÒŠ ñ^xxmgF4uŒ¢ªªj48R*CþÞŸÎKÚÍ´‹µî$¯ßþ°T.áÑû¨®rZK̓‹˜ÁܟׯÏ+_º?îþyè³NM-°.êP^3Š£W­Œ*jhI,H2˜œ¤¥å¹Ãž¨UµËT³¡¦Æ¯Ð4³rE’{^Ný!3%×HÔþÙ+Â99ö|XödôŽ£.Šð¡ªòUIµiC²x¤PX86’ªªþŸ´)¹NwlJ±-®ò…i»„ÉM‡=QqB&¢€ºBI@û²5ÐÛn@`HÙ§á¡E3kG¯ø¹ž¶ôe “˜äu˜iX[º¾–Yg#/`4Þ›ÀîQ§Ë UUU5ѰT”¦•×ãÓ—+]tV;uÛï7<œ#Ú ]:ýá3ß.ìM²˜ërX’ëËYïÚ~3kMíÌv.6’«Ô„ZÆ€³ÉìNƒÂÖJ ÀX/jùñg¦»©dX ÞùI[}]ÔŒÛá´è5qæñì‡îáÏ·yFaÜgØgn·0¯g„ìrM^¡y‹‘…áó¨æé fOè_ÝÏ2äc+˜2Vöö¶t©'ÓH†eK×ç$gC4ÞmÀŒ¤3ƒGUUUMšíX1.ëý¥IˆÚŽØ•¢Ó¾÷}¾~*¹Ûsl?½(S¸ÙK?P&m™gµûý±³ž—3ö)ûªW³fd÷ÿ¾˵uy G¾ÝíP¹&©áŒDNú9Àîóöî¿D7PÀôª á!g­b€äa]¦+¸dôtUV)61ɲîÅUšè¬™*7) ëëÂHðóŽ9_èKV•ȪDS„ÿUŸTªj5RUÛô’0à×ôó¾ûí²c¢ÛØ&¶ÏÛT3àœ `Ú[ µÜ¶ÝL‹ŽI×5Û)Â~ŸCŸ˜ÜºK¬Ð<úUž¶,eŒ™ûA_6´-Ë:ghŒ•4yŽ ÃigöÌN0sU¤ª¦N:ªVX'ÛÁúO^zJ>ºûÑ••ôÿkøï0–0]¿ûŽÊÞ±z­¸Ô /×¹æTÊeè[Z+`™5È™TCÁ¸öŽDR5™qX¦/veÎÈÝØ–s]c—3ZÔФ3êœØ}gªk¦²tSž…->Í,EM3ùÀ@`e ¶c=NÎÃûžWŠ1Ðs)mŒ0(²”lÙqb@º_Käıž¸H9…˜¹ó}~”y²_g`É V¯f]gX0N‘Í„CL¼OZkøU[Îh.€ Ý€+ÍÉ0%Ù–±~¶LmJRb5䆳¥©s(hœÃàd&Mwžªªªæðà×ÆØ¥ÿ*ž§ÆÍ®\µâµùïýà÷Ìc«¦¹/.שT$5('sú.g§¹™òåÊ1óJ2;fñ ¾z •t¶YÇ“TD8{º%`–é™^[`4 ãYâ¡»ÙY7½Fͩз âiZ>êÎû¢$1]È“½X¼yIÇE¢;Ù ™ØIb•„Cì]ûcÖCŒF»ºÂ)Ž6x= ZÚ{úfìE”jФ9Å 9]Ïk Ù=ä X׊€mš¹f ¨JyWQ,Í2ˆFK“b‚fQ 0«$·„T*©”|YF^ŒªJT“Ò+I²%Kcu/Y M.¼ ¾Ç“ië&M>³i-²‚±½¬TÃtÕíáo:áÐj´PÖ{îÞá @öLÂp{~A~¶4uŠ fË–:-¡ .:Ðä86vf”tUUUIã™ BMí<½~•F:xä¨ìœS }™Yç)yâqÚ¸ï'í¥)õјCÒö3go°gXÖ†BM,hgÀP#¼ !„QË¦ŠŒ€WëÐLcÂåe˜¤HÔ ‚.š)4oÔ•Ý€~Ⱦ~™¹"Šnj·›™íɯ[NîvöºôÌÓÓ–0H´"´l´Ò­QUi(E’¤xV…ZUJˆÝÇŒmÉ!VO(u7µÜ”²Ðø• WW ™ÈA“²m³£È½ ƒ&Ù¹U´åP¯²×bU"ÀœTÉ»@ð2Ó>¶Ôi- 2 h,[º¸”rRÐäÞ„‚Ý3¢3KQ®ªjÈ”¸)•Ÿpð=2r×?ã?ò™ïnn~x{wm§ÒkÚD’K-l}TëÙ.>ÞŒæ{ʾ{_j[ûè[§çÂi¯“ (Å€¡îê*_ÙÞ™JÖÉÔD“d3ÕL`JÁXGèú8C ˰4˜2¦ènî M¯yFC¡ZD³gü ^QEŒÃXÂB B‚*­ªÔ A²-㘪 Uù•¨ÈÏ:ëêÞ«ò¡ÌÁ鸩jÄøE„>bÌ¡ C¿°ûÚÖvsÎø Ѷ Ô1;Ðoýô 0,è« @·À Í¶Œ¾'“Ä“*!müZ ·„bhœcádIšÎʬªªj{«]B´7>Y¦ –Ò°RbÃî ž_l.^—q0Üö¯æÜRs)›Ò’Z‘žt0–ž’“å‘ad©§×Tg …4Řö´±¥¯U5ÌÚõ1èWF™Ô*ÎhjR`Í¢öý…—S¿>†™¤MŸ5sݨêçŸÉ,«ÃxÈCŽ£(Ö*E"—*«ÝJ*ÏI’òêo9(3¡û3‡¬²ˆüÎd#´Ð•ž¤‰ùªrš8ÓüÓó¡½¶Npœ¨’¡ºß•Nn¥Šk£#çþä–丨¢ðB¥jÎÛõÞµ¤zŽhLƒb‘¿–Ì/Ñ)„……‰Æ3²‘™Lªªªêj.Ú }ôу/Ël¥ò¯ÖyüèIíêx¸?XýkýO·/WÉeºÕì}ºªécÝé›UG ‹GaB@.fŒ)Ð;ÕØ§ˆ˜æ¼yŠÇxbï`²TÕ˜dMèéÑÄCMáÌz“Iá*WQD Ò²ï$§VeM¦* §ïÎYßÀ}-tPÊ®QóIÀt€•·{Pâ½~EªªañI®~vU¤kfÙ11 ¡Nk¡Ñ,ÔpÄu]‹œi[#¦«ú9vMä臺˜ EÕ@úDc7…½l±Ch Ǿþµ,¾fB¹ô m[ú4Æ*“.Q‚Æ[ ÈîtÒŒ>:WUUm`,Dûù¢–ýWþ¯iÇe\N®>õÎÀÎGïM¿³âðH¶E&9û`Ñè,ú+{j* #JAUçµ5=y䦭Fk›ìî¹~a°$P{™Î¨3¥ÅÀ¨MK²ÓÆ~_Ú£Ù%ÓºÖ2¿u÷uù”¨$—ÇÈ‚¤"ÞUTU8?òhpø©÷+öÒû|û'q!@”-ø^­ êå«qY#@Zs¹ˆì­K ºîÈŠ¦÷ àQ`’ÀxçìÜC}_¯ž¶LmJæÌ&‚ܸ¶ôó’Á¹ñ‘P8^\]2£¤f®ªªª n*&Ř|üþô_ö’lSw_ÿëñó#ÍsGI w½“W—Í“¾@蟗'ó¢µ—REÖ4Qi ‹ lkõ: ‚jÊ1IÀÚ2@ûÔhik©,¥:}ðvZ#f1]KÅÓ ªÒd”©ŽV»ZÐSð—AxPò,Ô³RÕ9Bž„í+°¬ þX`B¤ÆSU*ÒïWš×ŠFyKýŠj¿‰M‘GÎÁhDaØ4{²ŠNÍ ç𱦀a4àÐw˜…¡mi¹N‚Á¹¶ ÁÁ]·óóÌQ„«Üªþµ”~Š ¢5kiC×R¦9ccJfIÐxvÏNÓ½TU%Ô´´áÓ’ƒÓöáâµ—‹¿<²÷Çõà—òñô©ä¯G×KÛ•#Ïæ›¹Vˆ¨½Ôâ½²›4eÚöy«äÒÙ…)Mö*Ó¦¢¸ã8-u¤$•zóY¯ÜÓÈ9Ï•iÏ3T°‹jçA¹È÷a„“©™™í0ÞdAå•™l¹Q²ªFå»*+ÇI;Í»3Î{µ§ÓOÑH$õ¡UTlVxÅBÈDYIÉÏ’ªGqÏËh,æn"¸É¿¿Ùù®oqÌó‘‹ Œô%2y Èလ³G™ø=àòav)RF\΄ Àô³AVá"fÎ.‡*`ª~¶,µÖ…¶¢@ãÙÒ´9th<;£¤ff᪪ªÑDðº©ßºñËÅa…çW~½tå[¯ÕÓüýѵ‹G‚‡WÖ7Ö×良€i4]ogtßFïyê¢Tfô8†ÊDà †D±:¨j1’™ê“  -ÍÌ»‰–V1èÉòϳ=^÷rö!¦£úœ‚2³UºîŠTÓEå&¯5'‚;`©rºK²•V½”lq¡Uæ’ÀÙŒ$l ºmÛ¢+©—TT}¤êg蕦ka®#4'.WºÔÕµ™VKpÊ'††)òa+2‡F‘&ÀNIËP¶Í‡ƒYJ¿y·pP;þµt~ŠU$ ˜†±¥Ls¦@‚&s Ÿ»G™ôMUUUï7îÎí:øÝÆß¦ÓƇjÆ]ZÒøJÚ—oÝ .K™k/H›7œ'Y‡é·õ˧­×Yõn1_û#Öâ­­N­×Ö…ô¶4 FÓ µÖ!§£ÅÕ\&ª+%:¤V3¢Wõmä„€l ©Ó€” À2æÇ^ÌιQŽ¢MõËÜn'Wêô·cžÃK÷·õþ%¥B*(‚R‘ç&"kUõ¤TŽûÏY‹³2^¬ü»ç7%ÿàŠ®››Ä·TÏ»2¸ˆ¶ì¶cg|¶+Ž{Ý×›'·»ŒþÞ&‘ì/]õ"â‚ÛW{L °‹~¶¬©E*QVh8[–2%9‘:µ£Üx(ØQOF”ärñ²>mÆ6Qõ³hîÓŠÑß‹uÕÑM²tb‚3Ói%±–ÄÙ¯w݇§~=â š±ûT1Qß•mÊ5¼ÒxUr`âTwM÷~\š` 5F®2kU™›Iì§@ÜOS_€0ê~E‰Qwœ@ÉAÞ®)¯7ú$Œ²-@ÄŠ~’„Œdû’J£[š˜u\5†£c k–Q¦ÄZÇt—d·!ЖÉ@j߸s—Ú¯ÂVÖWç09Ÿt\–&WÉCƒ—»ž¶lµ%ƒdÃÜp¶LãRŒÅêÅÏÔƒ¶d§3yW¹ªª¦;3ÄLs.În(½ÔyÈü:íMY‡¢µíÀzBúó×Û}>í@=¹æTH¥dIY`]T>‹Ã´Çz?Ÿ&άs»9ÃI6•îATFÑà‘( ŽÓOóxåœ:›B]êf!½U×@C’Ü™œõ¿ê¢Ù Ê&3*ã)3á3Ofåã©Ý=£™‹“’$ë’ŸÕJK¯0áO¯ªúÆÂw<¿¿•mM½O4üm¿)ëâÛõí .„hÛêRg;þ¸¥÷'ºí}á‹Æ&e4¨2·÷Ë}ÀóÙ¶ºÖ>¶Œ¾G:ÒVÕ@z.[š´Ä4ÒY†;'³G9z1TU¬ÚÏQDªzc¬oÓþ¯Ÿ5ø æ‡{Zn=á²þÈåû”&’wR—ãN²+5ç]ãVK¥bR¢åƒj«"dgER×5Â4CN«tg76а)ðdOÆèoöÕz*c$h. ›æÅÀÛtn]ƒ©¬lžžfP]Ò›Ã&]]#ȈÛcx¼ô©Úoëé^«m=ëœ]»n¢$Uùªä ‰HºbK&FË’+*õ3.)XüÒâü~÷([Ä`Ààc¼5úÐBw²àö±‚ƒ–hÕ ž†¾Ìõü—±Ú¢Ìì¯IŽÁ)RoäzG¶( ~¶LmN®Ä$‚¸1mYê’Ä\t+äÆg Ác;³'5ƒWBUU{U·¥³¿w¾²\}-÷.‡ÿ'Í2öËŽI‰þ (Ì\öq©å¶{Ïje_ªm»g½wÃÒ r­ƒÜÅte30PôÔÈ `隘*àx–I™‹mÌDJÈ΄„^X“jn4c®šHwC[ÛÌý6ËÉžs*ÖM0vÏVõo j·–îi–‡ý"‹ÈBXÀ¾&T¼W‘ªÈ¥ÚP¿~«TUE î{½Å´”9f]ýtâ]/´ç@]ñed!Ä©äF†GCˆ”Ü4Â68\8wØl® @»ÔÜÎ@ô>:ôØ nøÕÛ¶=þµ”e A vÌjã×Rš58¾g 5žÑ³'¸©\UU+EWç„Á†ã~ö±vÃÔÁßæ³ú€j,F®TÛÞ‘ü¬7ë¿oŸêrï»Ïêt^Ú+÷bÑ·ÈØ3« ³²|ݺ8¨-ë 3LQäÄÐÇ‹ÛM¶Ì`¶<¿…il§fü’ÊlçR›¦KžÚÝÔ≲ԥz¯ê­¦}Џ’ÉQ5€ï‚ét’l êb¾Bص«H‰Jú¥‰Ì©§ÅÞíÂ<ε;VŒŽªâ¶ÿ"?®hq4yÝ™”à2ÆQÌȆICLņ0™(„ÐäA1“8Ämº5gÝ7š~¶ì©²Ûª*HΖ©LA…öAÚxvfÒt6TUU¬M]ÇP¥A«É_ú÷8÷imWíÃ>ëïÞºxb…Ñäu¯l/ë,ÂdAsr~5?žNSȲ[C6Yìu&R;Cž÷;.OSÍ]SŽÐÕCû© +0 ÐÍFZNÍ ‹6¸ÍÄÞ¢T3dŽ*@s:RbeõÜ™-ô]Ü5iD$«¥”×D½Ü¡7ô RùúØ–¢žU”÷*•¨$Ž#¤gîêmqpI²lYØöκ^k…aaª³ï0 Nè:çç%Á™°[›3 ¼ÀÁØû{ãsÀ;XÑ­Ñ݆ê"˜}ÊUÖÝ (DÔ ýÛv^¶Lq E ëÒ†³eìc1@㓞„uzÔ©ÑR›ªªªŠ4ÄSòí1c]êlôþ¾²k5¦£¶ÜuyØÇå×gí''Æ›û—­éj¸ ûx_ì¾±_ë’Q“ÊÁ¬`¦95)"C'á[òù¶nËæù–:ØÓ$ˆ÷Óœyéj²°¾ ²>P““¨Éóö#¬i&œ¬ÑS™vv®…•dÏΊ¡ª"És‰EªÏ}©ªD”1s‡èú÷Ê´ö”™;ï¡P…é GßßÄ:bžX£1wÌçpTq¸6é2ˆ4ˆqÜ`¼À[ÈõÆ™Rž¶tå…&bÇZÚ°¶,}Ž Âª®œÂœšÜp8vï™eIUUÕXM+­J€“å÷ý©ïû+ýʼt¾úÆZ•;Sówïí‹óçƒÑréq.,Ábé|œuïÒ^_dq6åÔ¹œ#«E™T;(i`NìY/¨Qx¡ TV¹érйr¦¡0P/ݹI6Ž*‡Ô$ÒJ¢žÑ™Ý外¡§Eyâ$ž¤0IÛmiY+¬º[–¶0àH’-!ƒÀR,[FFZdl¤*¤ÊG´ªÀ«ØÆH¯e€0éõÔ£åNK G-Vozºð¥k 3 d“³’Œ#ÇÀtËúµòeʰ1à2%æìYE>,>¶Œn\ªl„^EiãØRǹŦ^FgÓÔdÐe ®ªªZ«ÂÑ= Hƒs‹ùmôÕ烣~»||ìÆøó=9<,™;?¶ƒ)= ›¼QZ§ú;ýìE“—%ÑUsùÑ3dè|*hk¶ÏÒV­C ÔX×® ¡â ^õPEƒ3ó0'öm¶JëÚ¿dæõ~nã°êCÒ‚C%¾ÚÅ409Ùû¼r®çýœãmuìÝÏD‘äª*Kõ ’Rª–‹E"I$RK"J¤~½=dQJp.&ViѶiüš;4×6½v‡Â[ØÐ|>‚9î!ê,)6p k09ÔM†gvpê }0+Zã—~¶tu)¢И¶ŒmMVD!® ñ^ÀÎÌ,fVUUÕ>ŽÌ$Ä9šj×ÃÊõÎW7ÛÖÕõ­ÑŸ‚àÆ•Fž­Ÿðc>K-ΣGÆÉîÝÑ=»¾Tú+.=2„¸eìqP² ’òº(j:«i¦SÎVd’ŒSp»»Ô+ÌBx_L½Ž2ç©HQÇÕ+ÔÎKR vîO{·Õû„Ñ#œÀó4d8¬`áž í¢†KÉ¡ xÙPH ®@œí‹_£‡Ù×Õ ­æ²ÌÝÐÿ;͉„s7ävw –£òh C51ö­¬š1]úÆáÐcÞ ?r(RèàE]Vy‰¦oþµ”nlD!_46cKW§e\ M¨k!ì‘=3 Q±ªªê T F`âãVzoý÷ê:6r]ñn]›Œ$­\,gçêÔݹ„IÆÐjŽæÚÜìZ®Çš±M{y7ó*sŸ9眘¬«•p-eu• &«FvÓ;f÷À1‹IvwBÁ öp¦ªÖ3 ˆœ¹mÐàÀ“Ï}»®f‰×L’„Τ;ËëV]™R)ƒ XâR*¥ ¾ª˜ômEF„2Ø(¡¤ªUåYQ Ye8$.ÀôV“O1IÙ à47ÂM» t@ˆÅ ?H•\ÀV-ðAI5«:"+|Éü ]Ï(OggSˆÂsoSXaÂÀHÿÿ ÿÿÿÿÿÿ þÿÿÿ ÿýÿÿÿ øÿ ÿÿúÿÿþñÿþÿ ÿÿ ÿ ÿÿÿýÿÿÿÿ ž¶ô󒼘  1méÆ9YgP$óË v§F£WUUU÷èc'ŒìÍîî¦çׯkNÛÓ„aXwm¾xp-õÕÕ?¾ôêc¦Ú‘áMçâ²|·˜•îHí)5úJ]õÏÁ£ê`ŠŽà>·£×w3#¼¯ýÉš1͆¡éIðlÓo¹3£JdäDMSÕŠ3R9G¾Ä”K4TêìÙ”š©ñ<á^ˆ9 ëÕ(U¥|m“’TѦ¤RÍóÅsÚeU$…H’‘eG¥‘UQMBÒ.¼ßõ3ˆáG„¬]í«b&)1HÆb_$çlÂ\ÀÀ¡ ýÐLØ í(żCÁݸ!!§I¼Ž¨nGeþµ”~Q.qaK“°¥hk²"&0Óä–p´{Ô¥Œªªª*>$ é@-a[&?îiÿá÷_¸Z‚å×®˜¯,»¶_O¶÷iL¥>:•2póÇ[o­ûg¹×‹"Ìái1,çAN*¢@Â@ ±«Éî§ÞqòØÔhsv-5õf£‡Žç0Y¯³¸7lœa3¬z›Û8^®6“T&æ–ù¼ãd? ÌX;¯,ŒTöTG‰Ï©gT= -*TÿKSɳª¤P¼M•šÓ¿î”øšþÏ„J÷ýpŸæ¬2¯˜Úâ‚)\81¹P·‡ä>h¯á0Ÿ»´$#Mé¢ÛlB|íz88K~ۊ˸˜û,§m¹ þµÔ~ŒX„‡niF4Ž-õ¸Æ6ÆEƒºˆ'Æ’¥Ó™TUU]°ŽìÉèUÃæòˆKƒ´úYî%Øã¯Ýëøm¢w2«ƒ]›ôý¹ñ¾0AY@W^ƒ¦P’kf Ù¨†» <8ëgs޽çÁâ,6—[Ó›y, ¦Iè°ßcg-rHry—ÇzwÐï?§M3†^‹QmX‡‚FrHaXÖ!—ªB娕š–üEöCu`UÆ”ÔëU~ö–ª2™¯Œ±û¯ÛþÙ'õž~úþ=÷heáʈ_K2¶L~nIŠéÑË«óõíLzÇÞ0enõnJ… _+[Îެ¢ö¹Öœ¶ Ù MÝ7g町_C³qH¯`XÉ~¶ô} ‚°6 ç²¥Nk7AÆ ÷ÇQ²'µ÷¦ªªª ¯«œÅç‡rÉìîÿñS;ÿqiUOºs‘?¼Z]Ý<Ôò©ÆÃÛ~]ÎJÿªÆ­~Ïe½øZiÙgF}¿Ú ã§šQýUÆT3‡Jƒ´ÒÔ=Ë+‰³Ì1¶dgO%ý@,]ËtÀÐ{Z+K¯Ý1̗ɰEÿ:ˆÎªù:Õ›1öîsÎ%Ò>=Ù”)(Ryn%*‚-ƒ" °Rž"”xŒŠO>Éyì ýñÓ°Ý:~ý#±¿˜wþ:_¬&ûû'\ôƒÕuÍì$$‹|Þ4A‡¡ û™?$”=hr(f½ÜD$¸#w„:‹‹¶”e Î_KZ÷ØÉ bÏ$m<#{Òtgƒ¹ªªjt¸‚«öÎô¯ËÖ8øñ;oµTzùÓ²õ§q_Ö[Ï÷þý¿‡§O‹¿Æçñøï¾´ †yý²íymqV&͸ƒ2ÁS±Mpj<Χ-sêF3U‰î¤ìš í|Ö½¡ €e«Ehè` Î 7ÍžŸ™j¤u\$n¯S•ªéÍì{¼tæ±ãÌl¦ñìfŽnºW.£Å ᔊ¥²VL Î ¢??…c+Êvwµ'ê›V§pnµ  ×±"uú8M†IÐi†ï£s?>ž×K—}>ŽæK q@zÿ§~¶L©w«D"jFœÏ–¾,=s¢hœãz¥Ñ³‘ÙGS±ªª.íL=^¯þÊG<ÜôV–RE4¨§N<̃‹‹dë½¼ðùËÃùøÚÖ«S¯¹\šUûó¨vÛ•Yfý‘y²Ä]®Zªp Dq38;—š¡3;©—^lÓ^,¾ŒdO. íí–šŽ€.2)A¡µ=PY4I&ÓezmjÓYI¹‹«aOòô:c_öYÏõRÅŠe¨à¹$%U¡ª$U¥¾½¾TDŸU¡[aÇÝ^tüÆ€\OP%GÔd)ª¡/™õB‘íÖâ[¬"\lC£-fœ{ã¢Ö`DµHn˜Gƒô‰‹È¡žA~¶L}LH¡vC°|>[–>'S"\êiãÙ=3é©„ªª:$¨*k-mVÏ=ïá[_=|_l?¾ç˜Š¯<úâ«Ã/óæ¿z-Zÿú2;Ž¼ÌŸæè\}ý˜S—×KÙ”uY·•÷Œ´ZÒ6Ir¯Ùß{©o—ùZ³ð0 e89ì>$þUddÊž½í`ž3“ ÞÉì$‚";û$ÂÇ3ô8d–œ,}âõ¶¿Wmt;£"{J5„)¯³æñ„[ídÐ,M—;dT ¨'Ï¥¬šÔÔ<ø|Rv~r4¢¯ƒ»Þ…⡨pÅ6[hç.î°¦«Ù|h —AÍà F³2Ð"¹µÛ€ÚšyãF u è¶{¶t~ AìúsØR—5Y1°‚&g÷¨‘tC*VU±+WUÁÉZ¯~íwž^Æ]þt©O7oàÞ#“óéŸRÉ ì§µ¥On'yh]}hÇØ«L#Ê—Îb¬Gþ½.U#÷â1KIºªnKQ"±y\Ìp†ý¾žBÔ¬6owzLÝy§¨Çž1K5–³Ô;ö4‘a=ý¨¦(ÇuuŘÃRßϵ:Žæ¸øòÜvÂOºŸïéáôÚËQ§m,y5È–të0wL{».¥s#Ã\'ßûþâ-"eÁÄr0Ý·ØÔ»±æZqí:{Kpƹ xë4Í´unl}½®ûEB5ˆ(SÑÔÐ~¶ŒeŽU¢¤iË2É„`E‚Æ{#£Q{0sUUR«ƒ£Å¢QRÇe’§ùîδúÊw¶ªøôWÆGwݬ­üýÇ?¯ý³./|îÏá‡Ñ_W›÷ìî^2iº×L›šÐ=š.•H&Cœd%2œLìZ¯<ÕßÎx {²xfPÖX3˘n~"wvß3`è "Æêé5ûSUó¶ÍzïZ¡˜ö;°ø’žÐ6€"Åpì눨C×e@eªÔ{R•JQɲ¸ÉF8ÝŠ³`¶ñÒë<ÃÑ\Òdp÷‹hŒý—iýíhƒD¦ š¡i‡êÜ_}וMØfJ­³‹Ç >¶Œ~ŠUb¢‡CcÚ2Ö)¹3 4> Žh vϤéFØ UUUÓÅl•f fÿMl«±qì4)qbª¦8¬š‡~b/j[oiEþ˜ÔºF}ùpY}{«Åë™m-qv-êì«ìê¿ÎIF¯ªÝ ÌDÝ18h·È†©ÒÓM¬Šíœ=³Îà¡+{`ºÆb-™ÓµAC6kèpŒ´<—¯ækSPÓΦz25æóŒ—¶ºiÍ»ïGŠ c­°Ù¹¡„o#ÑD߬ÁÜÆ²ìUyØM"Äåh8=Æ—Ôßz×ïÅÚt÷#ÑàB’½hÅ"'LŠ”0Ì;:úDޝiØ'EA7ʪæS%{´ž<ÍôÞµ”e @½˜hìZJ?'5¦e.ŠÑxËEmÒ“š8TU©†‘8³VF7I çÔá¿ÿvû7WV=ìoú ÛU?Öë§u×ôá²i½8릲5Or»—õ‚¹ï¹Þõ1êmWÚý‘Ë>ØäÀH×E”“ì}Æ·¦†˜½{?gÏJ•ºõç]QU‘$v©Y¹vN,“LæBùÈ!?}Èû3šÊߦߛ¬‘Ÿ Ú€HÑÃÊ2´×ã6A8bˆB½" û=X‡êÀŸÔ‹üÐó!âÞÕ—‘Jq…2Ø|NmÄ Šƒ  »¥ã:ú敼m&b w›v¤ÎÎ%TVÉ ¶4©Ç6Æ‚ aKV—¤°èšœ]zff'¸ ©ªF·W•Š æö/±÷?Øqq'uøÉV«p0âjËÏ‹ºî<®ßä.ç4«í ³ÙÊ EOæ’¢ ª{â6¦Hz’z¯¾C¬JÚ¨€îFO›µ“fõ4^§³1ýÌYå﨣ª»–”65¨ŠÉžÉ¾éOAÐC¥n½õà8ãí]žó»‹šŽ‡½tFó:Ö*ÏE¥*©ªjWT)yhªRѶ¡>J$•T|é÷w;+½`jÓɰ?ÀÈy—[yº…DÓÁÆ„M0Ù bŽBWÑŽ²M‘^Ó6ÍìƒqÛªngŠ+ê2šˆê9~¶,uŒ,"õòÕ álËÓÈn½zÆ» vÏÌ,˜YUUÕ˜›XÄ¢ä¥þÝïÆiýs2n1]zÕ—ù{NóóÑ‹Ú8ßb»ÍW çÁnö²_§ug ;‰ÓúX×hšF£ÕÍ0]UŽËSùú]ˆY@UL¶˜x¥Gtç@Ná.Ut‰²Èò¸»z‘3oQÏÚ5Ó9ªN®¨"AßÈWœ ÐWc8cÏc5EaK°fG¥iè·e°ÛìÅsp~yëìFžGñf+ÍœsrøŸÌ!œÛÜ]uÆé9l‚åDL˜N¾V¬,Íg3@ jw‹²FwˆGC³séFþµŒ¾«¬ACÙR§%ZL!€ ñîÁ‘Ý“A3z¡ªªêâ³RS‰:Ãÿ‹›Þü—ÿ—ËãSÅëN¾’Þ{å×à»ç…o>ÝNž«Ï—¡ÅrѾ/<ö¹,ôÞÎb1ÌS.´ãΠjfè†Äéii‚ÁØà¥»L&WGl>-¢Û=ǘ“Mº×H¯SuS®"WJï&tï¡ÉL_åkõcŒñ<ǹ÷%å-™ÏЯ%ºTê)}ŠÛ` ;Æv‘¤*ÕêÇGƒJÚ’’Š X¶êé´²p-”¦yÍS½]0goëáUáÚD6eµ[˜¸+1è´A׈ŒWà duV''4Ø{¨<õæž¶,eNÄ ö ñlYÛ˜„—neCã-AaghºXUUUU‹;dDTË÷K]Yý9Ùq{î×»õ¶ïÜÚ¹^îºÞÀ)ܼ_¶’ý³¸oGšåµ¸$3ÐÆë¢e¥ÄÄ+de½9÷ ÉÓS 6Œ× Zš®š¿×“öTÙ¿µñWßÞWzjöÒë«n¦óõeDG|݃¯joŠÆ¹Üý®Zg¼OgŽy³‹÷œÙ½®­JAÕS{k"25¾³¿ÔÑwë´Q=öicõX/Ì›ìaõáC‚×gÉY×-WaŠÒþh¨v,ŒE °_bžÐœI>¶Ô~˜DÁAãÙÒ¤%^l¦ É2IíQ…™«ªªÊK¸5fŸØ’ÆUv]•ÄcBê[É?íWü ƒw?þg>üõr»Ÿ_þ1hÇöëµÜ½õX¯·M·œ,ÏЙÌC+†QúÓÈ-—¬); 5œdqyÈj°ÞP3Ó…_Ïy‡‚ΞcÅ>ÅÙÕ0o>è×½öô3Æ\d—_ûíö°øŒZx=¯/{÷ž=Ë8öNl Iº-v‰HEU¾¦y‰®(´ì@8 Ò9èÈÏÄÿGV¦XtèÍbJãQËI¡G2yv[Î`”jçlªìÏ| µì¡³ÔÍ|è6¦9cì…¹5^¶Œ~©ÆÑ(ä…‘¸áléÊ2˜‚…4žÑ³Ót'›XUU!• Hé-52}ïOS¤«Ó~ÿ ìéÖŪ¿›äO^|\ñãñ×èï‘ïmg,ÞÖ­óÀ^åë×µ÷˸4¯¦sgõŠEI0j躒¸ó‚%êŽËsåTµxÚû뺲¿Ÿ²&Ço%+BèøÝ£\´TÛ°OãÛÔt˜v•"rNÁÌQÏÓÞUNÖȤ$/Ì%E”ŠÒK…%RUEHœÁDóxÒ/B¾Ocå«n}hi'üÚ!Ù{X Z­â!í´£à¨†¤9É_e0³î8¸Â`XØ™ºbt5†Kcˆ;¾µt®&ƒA57”-‹WRfЯÂ5Þnþ§ÂÉ‘™dUUUñåE×­ÌñÆ×õæ±ÛÃn­<¸¿!ÆÉôƒð¯Îwìß.ZN õ«aXÏíX4™^¦ Vî-rí§ÖÄog¼4˜ö$cd{þd+Gç4ÅØ³ÜÆÎOPI‹™… ÈØ^«NC6£†B›©>M­$d nhš$ÕŬá¤úò'»³K¬”¡­Ù÷ˆD¤TªY} «Åƒ1²Xx`Z#æƒqáo„ð8žÒ‡V’=%2ýÌö ÄêyÛö”ÜÙkÌ4‹3˜Á Ýá!’š$ï®a\+U}q HQ«ÑÀÕ…òRÓ'”ËU]†Èù eïÞdõGÛ•7n:°—‘É÷®-…²%ânUT%‰J›ö¹þyŸ¼F&ð"òϲÓC¦ã½"J#Bû& .Ù¶fàÒ8'4uh”Y HcC#²[.äf¾¶ƒòL#âÉÁ(ÆÀ:~¶¬©É ]cÙ2•1FŠb4Þ-Àî=“ÎàÎUUU‡úÞjÖ\_ñ8+ôÎ^ì|uZÞ[úwÓÄŽ<ù›ÀÊÑ£3Fu°);þ»¿<²ÎéÙ=gNã²ÏYS¬wÖo}»—¦0‚NYOcÅTl@à %æ4=ÌL¶ñê'bð(µ˜e’Dª ªÎuuý k_0°¬™àì$£¬Ï2o”‘Ìä$.$„µÈ€¬OèîÍŠ•‰ä¹,Š!#Ý–¡ûè´ßLé¹H#½íN¤uŒi*†—„È¥š!U`Sh&ÄŽ¨b`›\4(»°Q4Ð!7²8Hš ¾þµ4f ÁŒNU4_Ké—ˆF¸èA“9˜ÑfiD%-ZUUHÝuó"y ±n°U5·b…øTªb4ýnû†jSóm?4ͧçSóü¹¼¹N¶k*á&©vÈ®Y##,•É*/Ѳz²Ìw1*,ÞM۴炇±è¼xÎZv¡=5û¼ð“5(Õ4æbkU}–ÜŸÌCõÌ$ï;sÙÏeŒfr¤î5f©ºÔ³,ÝÝFkF†W¶¼B,…Fa ñ+•$2¹Lk|z8C’ÞÌ!©R_*Âlbî$g‰»a¥œ ã‚€ÉÜò§ŸB?PDÃi7»ÈºŸ˜B`Á0{*­^¶4~lD¢.©aK‘–¤& t ñŒuº$rUUÕŠ«šÖFj¡ÍÁ/›Åׇû{G¯ü„A äëÔá«_nº‡¨3†" ‚kY }¨£ê>„½E™nEâ¡Æ rUZ¬Ørµõ¶ÔnŠQdÀ€sÙÒÔye%èç%;³S£^™¹ªªê¸¼Z-±øÖ*w|ÉÐÕiU7'à ûGÿ{[úì´Íö7ëyê5'K½í®Êêtµ”d¬ge)Lg@c×J–¹¢O åUX‚ü*3ÍI³è^ì2H€‘é%ë[_IÌö1]ˆ5ÀEæÔ@1‰Z¿šºÇ–ÄÛÃê÷P7Lu&kŠª/UžªÞwÕÜ;ÙeÐ+¿«$4è$d‘ŽÑV¾Þ2TWÔÃw^ã9Í*äLÞÆD$Ðüè­|šQóåìrŸÀà´ t籌@Ï6 ž¶lã„K¿0¢ñl™úRdE _@ã= ì̈¦#²©ª*¡¡DÅ}ðÝéòä_{¯ë–žHÞ”àçÍñ' ÉáaGéPxZ§Ö·}ÍjgÝûÜ_ßN¹â”SVÖ£ëÈyH&é"ÌK±07cº«ì\îõš.Æ–ÚÔn!ÈÉPhZÅô¾v‘Uª§œéXRýâ»;“ \ÌEZ=Q®¯ßavãnÑõRñC+ˆÒAª¥ž#dÜuà9w·š¥ÿ–Û×÷—“÷„©Õ®DžµëCìQó&Z-ɧ¼; ŨAØT×>¤šo ÁÏ}Ã`Dd˜êa×ÁnÍå; Þµ”f‰q¢ 'Ĺ1l)ãBÈg÷ìI÷ѹªª*q•‡æêµ¸´Úø»áÂ/¢¤V_|v>|áe ÓFX¦ýŽk_ÕEJ/ãqôv•¨¦Õ¯‹3)çjœÜ÷ãì†&Äj5èpSh @ž©—3kÝž‘«þ[m‘˜òêO DfQ QC%Õ~×tÑ6zRÅzõ U¸r?ÛP>.»Îº–|* (ˆ@EJj‘'Uªòð”*‰TâIRµ€À¶-#)›ƒ‹]8Î:³ü‡ũ8ŽE‡lÁE;lq¦N‚ìÁe˜Eèc€|Ï.ÐCC`ç¾uÐa4Yß ¾¶L}‰Q¤Ñ0DCÚ2Kr'Ty´ñÀ.t#éRªªªlfÔOûß·CmýìíÚíýa¿·}vòéãÿó®Ê·ßï_ÿ¹¶µ,§î¹™¡%/óãò㥒²Vë¬jÔ1Þ…Q÷ÖëÙζ3†1{çÃçÊj±L•©Ì¢ìÍÌe^Vwöý¸7dmÄ©²§T11©«©TDE‘¯áQ×È%ý¬É(pL³Â43÷âõröob±ˆR HWåα~dW‘ŸR['«ª¹E:žõfU¢Klƒ.diýŽwý<Õc8‘ßÁå½iVÞù¦àÁNb 6B´~|¶n‚"y²a oW\¹EÌŠå~¶LeîIÑ@í 6”-M™“B(ï Ù4«ªª*Î-µZQ¹Ýý¯ì-žøXå?ì;ÖJì—ýM_zåìδ­|ºµî’zë[¾ÏçY'ýÕF½…E#Yjˆn× $ê*]¯üdÌ‹ì$4ç~c¹^ F¦¦a`45õ¸«cï¦fTÀ¹N»<=$T¡á ØMA•Ô•0æ™ëª9ÏÕ8'í¨UÝÙV5’° ·±MI•<>«¥‡T*•Vj«X”dµR Õ‡Xø‹:W3ß@7\ ‰¶nrÚ‡ÆÚp8§%›¬Dè’¡ª x\’ +AÉ »îÔ²{R÷Z^¶ŒeMjÄ ® ñléÚZS'Pˆçžo¥»dÉ^8³ªªªÑJóÅòÀ_£åü¨•ÿ™­j°jb#AÙ:ÿfiœ|ÐG_œú¢Ï$ˆlV³{\–/kžÖ½h\•3µV «ýZïÆ¡ô0$™QRÌTÑ©Àj&Qe³dð¼"ía²ç"?+Q ¥©”¼dC ¦†éÍÓçlѾ•çÓ5½WÕd'øžä¿+¹ÜuL󤲮sØ|8=°Ò1ÔÝ- áWˆKò«ô‘óƒ?¡ÕƒeªÃ©!ögÇ 2¬÷iÁJuna…QŸ˜¨Ú»­M?m¡»aÓ÷Ù&¶3#›VøB4H–l†².©~¶L~Œt¢A†³e¬Sò`ÃÒÆ9öÈžÔÞqUUUý[QshåVû–öÞô91šØôêŠ k‡ç·˜>½q½5 Ò“µ^ÆAànÓNÝ£s©¦d½÷™3[ï{]Õ¡ÏYVÓ­"Ù‚He`¡Vµ X'¯Ö½¿Î9Ž£a&›‚¹9Äʬª¢,_t «ª§FUþ÷Ò“÷¿ñ»«ÖS5³§8'u™§šó„{…ØAXÕ•üýXõ침ÄðXI–ôûøêþùynB"sq´w¶¤¦øç¯i–3'Êa¤pÈYšF,ˆ%YÄ l‚ÛàÆõ7«ÍVààj…ÝÂNr¾ê{Oç8às‚ˆ7(«Ï u°1¦Cfi„h¾‰Ç[äÞˆž¶Œm Ž c7œ-M] ‚mÏÈld–졪ªbÓWQU2I^×ÃpüÃò÷;ý×—¥ßÞxVÁ~íìkõ·æ³Ôÿ^ßÎ|Û½¹,²|x]u5NöâÒž­VÅ©b)âIµFKIÓĦÜ1Õ-ÑZ³kƒ¥Ì9æUÚãÜmfFÜû¶Åš ]XTMO`÷0suÈ‚¢“ʉîhR°H²jp/“}‚Ûeû´½_jnÀòjaaðÈ–‘e÷#uiŠT’^0B¤Û’,±@ݺç]UŽ+óìÞuë´ ý"B3a”(³H%€uF ‚ !¦lЈ‰AÞžN h6Ú—z ~¶¬­í¹ µÐ䆮¥ðKR#{Ðx hìF”t”†ªªª®Ñé9Ù•ßMŒboç­Ç?ø1uzÙÇÛl.ÓæÝÓ·ï~¤IuRYÔzõÎu»v;‹Z?UkžÂâÕr1«=uîËàtÙ‘xÐD‘Å)Ï|6yNW”ØK‘ì5Í®½¤˜Öê™kV¨ï›Z­×FåÝSJ€ÌÎlÎMÈŸÃÑÛÚàhXËÉ[÷ˆ„îró Y‹Á2$Äm$‘dWÖ˳õ ƒeô0Vmíp×ÇN¨^1Ī‚)ª8ǕȖ 4†3ìò¹xr–l¸°¶¢]ˆ©R5H0ùÓT™[!^¶,±Ç*aÕ/ iCÙÒ—9É™±ÐSˆÆ³{ö,)ÉUUUƒDF„!êv÷èOË<Øjúxà‡ë>ó½7V¿t•TTÙâ#YõT«ÞîMF2Ü›“A]˜.uuÆ]ä°Rê®}U\Är‚“Y´$’¯½ŠÅ<ë3NÝDÆÐd±¹2—¦CI šAÃB­C›†®$Ÿ™1öß¶1ÏMæã’U¶–Î@LHeÌJ3H·í¸ñ´n7R È×*Êp¶Í…ØKºŒÝ‘éBÏN“Wî\pÐ!a!R]rd2âð·î¶ÍMi7@ÄÖNÊr*áÍ#`έ.p®Sô™6vA°•zŶ4eL¦È€篥NSŒ i+äÆÛ»gÒt'«ªªX³—E1Íý埘áξկ< ÿºÛ”þveÅTåñÑ]µät>õ§Ò&t*_Æ¥÷C·ç¢Ï"xŸ»Ê‹ÓBÅF¦–QåaæçÐÉ´¦ .$®`Y™*'ƒ'ñ虹NÃ6OÄPë'‚6³ÛdÖ‹Mæ9C ——¬çFw9IXhäzqR©j$’çªT'•–"%‰ÓC}²0t›aõJ‹Äþ©ß![©ëùÐL•1ÝÈÓQmQœÄ0ÍùèÂUֵ܆>[þBíƒ[ Z¢… ç~¶L}IÄ ö ÉÙ2–9ÉÉl=(Dã-ðTØ™Î$+VUHÕxÜTCÓtê½yólùñtg²BÉág>¹OůÒù×EïµÍ±ÿÆ*9÷ÁeÝôº:W—æWÓ”j¡¥Yœ9v¯‹f¦!1…*bUíªœ"ïÎÂIÑ4Û§}ôçíµèl°æ¡GjêKÙ‚y{&ªz‡~)3 ]eU7ófÖŽP•^ ¦È‹(¦—ØPhªT=Võ¦©HS^¨”<¬¼ÌãôZR·Ùëø“óØ=¡Þ9mד›}.2Z³d£Ík®E¸b#-R ùˆñœ6¨d;!¢ ­úÐvކ¢:²ðª"šÞµ”~Å öŒhòµq‰lLÐd~D`÷ld6šPUU¿ç›V§NµpXUTsªF¤T²ÄRáaKmæ·Å­è’Swéàâr0t³pOf»vÉljä\Îh>Ò/Á:òBQ´ a2#(Q=+K Ì9ªYÝ»½Œû<Kw”ng“œáT ÝPù£,8/™åÓbšš{ j9Ó•E,jž—+R ©“§Ä³Ç JÌA›VÔ„–lžK4Q•T–$c0ÄLðN ½U}… ` *ØÅ-³Þá(ÆÀQó‚Âí‡0ÜÐèÃnªÚÄŠÛ'9 [XÀaD¾µluI—+&m ªÐøµló”܉ôÐ ˆkJÎÎÌ,YYUEªBõ¡»40,&E+UY y׋OÚãî|ýíÛ…ÞHí}õöYï§ìá"éùô<’E¿d³¬rö4uÝŸ3Šöó.ÎUНBqd.k§å„,@ÓVŽϴôº¬Ik**€¼³H÷ôP¦kÿþ]ûì€éUµŸ5ŸæPM»|üt¿QGaªêº³ÅÚ'kd ý>ƒJûÔ&‹§Çrâé´GÜÏË‚™—‰•òöÌ‹÷ Å{ú Ï©6°çÊö´ê(—‹l U¦ì©6Ìð”=Ugå*wÊÆ^Üì`¶Ðkhard-0.19.1/misc/twinkle/sounds/ringtone_segment.ogg000066400000000000000000000760431453070076200227010ustar00rootroot00000000000000OggS ‰´ÜåKz?vorbis€»€µ¸OggS ‰´Ü2Î y@ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿvorbis Lavf57.56.101encoder=Lavc57.64.101 libvorbisvorbis%BCV@$s*F¥s„BPãBÎkìBL‚2L[Ë%s!¤ Bˆ[(ÐU@‡Ax„ŠA!„%=X’ƒ'=!„ˆ9x„iA!„B!„B!„E9h’ƒ'A„ã08 ƒå8ø„E9Xƒ'Aè „B¸šƒ¬9!„$5HPƒ9è„Â,(Š‚Ä0¸„5(Œ‚ä0ÈÔƒ BˆšƒI5ø„gAx„iA!„$AHƒAÈ„FAX’ƒ9¸„ËA¨„*9„ 4d ¢(Š¢( ² È@QÇqÉ‘ɱ  Y HФHŽäH’$Y’%Y’%Y’扪,˲,˲,Ë2² HPQ Eq Yd 8Š¥XŠ¥hŠçˆŽ„†¬€4CSøÚR,1Ö\wƒD‚3¬$޲ RŠ1ÆsÎ9ç¤RŒ9æœsB¡TŠ1ÆœsB!”Œ1æœsB!„RJÆœsB!„RêœsB!„J)sB!„B)¥ƒB!„J(¥¤B!„B©¤”B!„RB(!•”R!„B)%¤”R !„RB¡„”RJ)…B¥”’RJ)¥J %„R))¥J!”RJJ)¥TJ ¡„J)%¥”RJ!„J)8A'Ua£ €BCVd¢”R)-E‚"¥¤KFsPZЍr RÍ©RÎ æ$–ˆ1„”“T2æB BêuL)-•BƤØrK¡sA€€3ÀàástG€ DfˆDÃBpxP S@b‚B.TX\¤]\@—.èâ®!!A, €œpÃox NÐ)*u ð\ÑÌadhlptx|€„ˆŒ|$%@DD4s !"#$€ €OggSÀ» ‰´Ü5¯XÏ]ø-A;ÿöÿ ÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿ ÿÿÿÿÿÿÿüÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿ ¶4q¥Ðôk©ýhòôûý~¿ßOZ­V‹%©45¢UUUEšukCCCƒµ^'ÓZcCÕ6;$ô£(Š'8Øj‚ÃhÅØØÊ•c+FÓC›–‚ ‚eQ7eÇq†aÚÈ”EQ$Iù,˲D\×u7˲,;’$-‹¤nY–e"®ëº0¶×u]×Õ¶ˆëº®à³,Ë2è–¤e‘¤nöÿ¿ßÆÇãøûg8>Îßÿíp|ÜÚÿÿ~—ïÿßoããÖþÿ×6Çÿÿ-ããÿÿ>cãðÿï3ŒƒÿZ³Øÿÿ0>µ0n±ÿÿ•±qøûWþ|Úø¸ÜÌd¹À¹2ÊÐ/œÍ±Úå>6yÉØuu »4¬»JV»ï›ëCé!—9äÎÛ†-z3ï›èx7E`•ÈêÐ]CÃ0Žã:[«¯®Ž$ϯü~uŒ<ì÷SKzð§~h$É?“'zçô:y Dá-ö†Eá¥zón–Õ r£+C¬¦Ù{i0‚$?ô"Ìlïòöº˜WË1¯ÿö£0wÚÿÏ„aã Åú(ó³Œo€ÅºþÐO‚[J¡fœ /á"ÝùßÌòþêã(%kÆF—Çû¯ÇCJÆ:NÙ¢5Þ ˜€¨- šfZšÂ ¸ŠÏŽid4&i¦AddÎ$@½ûÏjE͈5úÄ+ ¢Bq—Ò…‘|h)àyy¼WÿQ‘îHD@2ÎõøkY§ö¦†ÁPWÆZ›yiÍéôsÄŽqÕ[g,TN 4W]/N] uØe`€ià5ú£n€ T-€Ò÷ä"™4€°µÿòWÿÞ«ûwö%Y†g@~àvHøó¯HÀ(™]ã=VZ,€a€sžI>3;ÿ½}»ªß¾K=¨)fŽp€îñó¿7¾÷ïµûRFuVôu  ¾²n&€"­XM4… ªp+B@”%  Dέå¤xyµx±„ã>rÿhg§ .é)Zî)F+SpÌç}œº{a©MG»Í3°k½²X ]iCƒ Þb‰T¥ÞDLj[ß8uÒå@”½Vÿ*0‡ÀÀ«¬ÚZÕãhÖƒjܼ  rà|%°á¿_ (l@þ{[ ¨fÈ _$€p@k`þøîþB±w†¶·ÂoiÌw\+<~Ù°Ýw8yæß”÷ÿP7¶‹´¾ƒ‰bgˆ(‹,‹s…²)" ¾ÀlÎ[u‚t0ÓoO‚“Ä! FßvÜo[sʃ+畃¾¡ `<þï€@Ú`ü„¬|ÛõòÅ ( ºV©`eXW QPI.[寓`ŒQ*¥‚hut[³æ£jí'I©jœ®' ÄYß­Ðf– ²š‚í0Âå #ïZU`P™BqÃG+.÷b€ ríATÀÀzûU>Ž[û¶ ¸óÒÒ_ g½48h) bv†ŒE^–öUâÐȯ–·‡zAý¦X&†Fÿp©ä³ã=µBæûê-®ˆÝè#èºÿ_€ÙnèPÔ a¶`P #£ªЫ2 Þ9Gœ~²àJî鯨§(žpùþÒíg2èã@L@™ùy[?ù”‡.KY­C-Ç#tŠ(¹mùÃoiøôŸ÷Z`ÄD®fšðZ MÑ €B[W¯²ÕUºQ*èè†Û /¾ü¿Ö¦là¶øg¡d];‹À\¨ ^ƒzÑXÀ$þz, ¯ù˜y}/ä/¸Àÿ¸[øõ\€@À_¨4AAAÁ€Ç0 ¹›ˆôcÑÞÿC½`dºãZñð‹†º9ªy4üõ‚˅̄ꮛ2è{þO6Иó€:Aº˜P<ÁlH…rR!çç€ ¥çt“ï2"àò÷0QUPš~/Ö±—'= s¡ öH&*3fìëÛºûŠwõo(óy^J}fÕ½ó¸Pæb´ ¯‚‰åÛM¿ÉÞ@ñœ(ÛÿØ@†Í‹àn>9¦Ù‹È°!é³év›™‰¨«bäæ®"á‰øè¼]OîuU\Ðo\ÀÂzÿ:qM¬¡9'¨¤3€™€ ÍáЀ`BG!Pˆ ˆfŒ²ò¢¥dT±\é=“QVš?“†B<˜áýÙ‰R€LˆZnú5h **ýe@e%¾‹"<Ü€ªáx´€“ÔF®®v¨²t%yéké3+Ý.ïüéSÕy«YWµY4mÿzE¢µM¡Sê_ݯÜ\²0×(@€zú¼0p}ïí °’=c`FÒê°þùK 3 ßý, 8|ãßú_Ï€k ÁÊ à¶ Yf¹»ˆ(¤î?%· æ+4V’Sö"€þöÓüjøÒ™Ì~Aåü `ÌɨÂLø`Ä "Aôš²FqzBº‘W3–Q­ÒWÀËî¤xP÷f‡d ˆ/þ“æÑµ*ðÕ‹DPXÓþ(OYÔÞcÙÔuv¦•Ä,qDÅUµg+PZ\YºRù‘ ¤;`2YŽo_Ó 4P8ñ½G!ºz4Ší93_˜ØæÅùÑ€€æðŸo¼# F€$=øç¿Ö Ì %WøH±ìŸn2˜†nËc@É>áùœLWûÿÊØ ¢nc£æÆß;Móhýñèš«K̤õ®7A~q“`­á .À_@N“qÐLAmÄEÈY<]ã¨øB€H’Ÿm³†PÈ¥¹?)f¢åž•LAeP†“€T²¯úÕ2×—µfá Q9øEöþ±H³¨ÏεԆ^™©"¡éšWó³b+ºtJÙõެ(sPDúwoG€ÆnøRê9 `(Š€` Ã†€zŠøà?wð!UdBÊRÒÒXQÔµ³ x(´ËÛÕf–£¥ÿ?¢’AS£Žz.ª€ÊÃÀˆNê¨2¼) 0üx¢ô¶ç¥”Ù¤²HÊÄzßjÜõè–S;øVT™víÀUQúѯ¾ÝæË†Çd”@ÇÉõAeè`îÀOAÁÄà\=0õ­Ö4±¡©Z·€ ðÓ­µ]Ò@7ÿý,fR/xj ö†òÃS62zÀ€2û† ^†¹«H´£V?šŸ*ÔÕ8¹Õ/7ÑâgãÓCmÅ”ë-®èsÜ@‘éAüw%0›Ó  Ns&&Í¡ã ÞÀG(¤‚ˆ 2šKû{Û• d)å:Z#EE £?»#ð>OݸhŸ6Í>@4YMQPýP “Ū4»ÌM–hT0Ç"?ÊÀžO‹Rtíqæh稪tVþo Î$É-¼ª™æíö}NJy‘˜ETß1¯ûå!=…5ÂV‘›s±Z_=§× °ÔH ®w!›µ¾ÿ CòX@ §€·A€•ÐŒp²l€^IÖù«öó óUoO›’²¨)N’Eö! (Šß ¿ ûŸ­'0nœ… aø³äÉ-`O;€:AÀlnt»À&— !E …ÆßæTºóè{y2Šé¡@ÔßôTQMì:¢¢ýêjŒžM~—`Å㸿üëæ¬¼éë#]Ežòò~³qy¿ºW|z¿Ô¸ÏÉ>/\xÕÞJƨš@=oþy|Ss²É` ¼ÌØY Ù‰ö†{zj.ô,, Î¹þ0ÇÀ…Th€Ñá_þfcžÛ€}ôg<ýþ2›>i\hœ>I¦ù—€@Â'¹˜ö¢§Cª)f’uö!  ˆ_iWÝŠþ¹<‰Ì5ʼnª55ZÅÉýVÄn$Pä>4ļ²s~@ `&áB €0&ƒ‚£ A«©›T_ÚF_AŠæÞ.¡Œ÷G=Œª¾FªŒúy4N€ä[o!@ðQýU³º@Óc v¾ PA¾A_ÅÎUU@TE­"„ã¾ôTõ6¸é š ˆ²a=]keÕ(` u»÷¾ÒA½ÔÉd@ÏÞ ©D¯ÀÐøøÀb¾ü[†ñå_¨úõ )®üSGê«*)|@^v™U¡DÓ¯¼PvɇÍDÖ]lôÒüä—B5Í_õê‡ÌÐúWŒ”»°†€Tð—@ `¦†D‚ñ„ÇPEda Œ6]³‚讚<Àû\݇J”‚1j׬nºƒ/÷¨• ’>ó`ª ÿÓÚSQCdzsïúÆvŸš¸ôŒê:5îÏÂ4p¥m]>ãèK¯¯})s÷__¿Ýg¼ÝÇë®l!®».¢%¤T"ùÔaÕ·ƒz_1“ömhÞ,0 €Å Æ÷ÕÈ Ô?ðOør£Í•¿a$€ mg6€* À† þøÕ™Ãt2üÒ?ÿ…Íú ¤6,ìÂÁ⛦i~5žLê’'3]½‡/º 0.H`¬ˆPÂÛ,ž m3-ƒ`  )F=,/÷v3â¶Á«z 2³]–uÄtðµŠÀ^'/ï£ôÚôpç“,@ynÎÀ¨DæN$Ž'èI¬Ï?ŸþQ{rY{Ú9³ë —¦wùÚÝ—XÔœSÙ“š‹_íóe¾R޽C᫜|Züoµ{î*sŽ&7” ýìøÒ¾;q e|®¢H€bà€þö»0À߯àù;€hó?&Ó€°ÓÌaƒ |à>V†ß|ÛNFýÕzSÛ%C­ ¦ùÙŸÝêøh=¶Ñ9d>´®Å=F‘mCÐÏ?n€ÆœÀ`‚ô=~Îct>&A(S43€O¼éÜ–µx®íU½€.׆G]™NsdJ7nUà7&"ê™{ €p)ã«ã×Ԙ׽½Ñè¤iIó¦¤yº¿$Y2ç‰SÖ£·÷Ï»–ðdÐ6îè°QK ½q4À]^ÌiI–öVÊHøÕòã+Wd»‡P·bæØY ~¶_ÒþêÕà Ϛ⠀qã& ö×Àü$` sP'È·f“Pu` š+C¡Š¹›ÿ4“ ºQýÁ3Ë‹ì¬ú¢Yñ^Ço“)ðýJš® ¢ãůTTX_{@Ñ2ŶIPxx»Å^Ý$™zÉXàåHuQï]¡íþä@ó¶_ëuߥéÛ‡u¿:—öá±?*‹]€§àW^ R=Y°€4мî:4úèwÏs# àò¬¿Û¡> ÊÈßþÑÀÀÈk€CÉøÆ‚оY6¹‡€ "~É«~[!Nul(SM1“ìò7 ¿{¼ÞŠðêA&Ê5ʼnE¥Ö•c[¿qPdƒø6` ˜³ Ô f ÞP0†qP1¨B`p²“|h÷!‡>ZA0%ý»âšóuøöAUUyæóÔ--¯4¾—£äŠ*rœ¬£*"è»  Âÿ•,¿Ýô(" ‡óâñº% J&g=Ϻ´—ãœY‹âßV¿qY –¾ìEËn“”‚å;€<®€<Žë¤ €%@ÚþcÀŸÝ€/?@ý? ÐcpöµT@0°@^¦ù‹¹æ¯ÂÏ4f"ê.6záÐâ›(>¾j»È|hÝà Œ- œèü¬1à7¼ PW™ØÔ°ÎáS=ª@ÒŸú<@ɨ{Ò𠊆ŗfRDýFó¤c’ñ!¿ï¼L½€¹‘É{Í*€"{}Yr@ѤÁš<4õýûUïhç&ó…2:ÚJÔ‰NkæéySw¼ÍªîœÛâšýö<çÙ 3-»’ÂmjU)=•" सʓC¼]íZ]¥YÎôF£ôœ·€X¸0öŸ,ÐàY5€úÀ°xºW| 6 `ÛíBÚXFÑ 8P¼ù•áE$0êý?Ô,Üp¯»,Wüawüjüzض‘™¸¾Çãf(ƒ¼ý[0»‚ ŒþW¨ä,€™€A1Ķ\…‚ÌN¶U¢„åq3LÆàQ]=©Ç4OýBð€ê¨¨* ˆ:×çÄœ«ÊKE¾ùdGé}Ói8‘#}’ ÿ¦ûÊaÿö}Éf§söxáóÝú’Åiþëï±êŒC6ÁéÍq4-\³¼MPÙA —_×"sîÈ (‘KQJKÙµ6€.† JÌÿàaõ5ü, ÿ¬øͯ‚4Ï.AÈV;ÓPÈ ÞèÅ[¤Îô¿äó?ÔóÆô µá¡—Ü`òηi®¦gwÙžêÎ¥µ²Ç(↉寇:AN˜Ð.@0¡ø˜¡ ³a›0—àpsO¢ïÏj£ØÁ†åþø¸YÄ»[¢xPÕp'* Ö&@AV•ÅR\òÎÕPh†Œ/cQÝš»ÚöÅÅϪ¼’2 „Cjù(´Æ5U¾• i14è€5hsÞYgd¹Ú4€ÂzÔŠ'UXq3©¦FÛ¿kÙ®Þ3P–¹–ó{Ì‚¤È-!ÒÖªÒ8Û|¶~i 2za 0~)šPltàèblÐ@m™ 9ƹ«”§kÇ-­¹ùu5>ŽiþÎwû/¹Z6]~Ü@kŠíY^XˆcÍÈÝм§A|1€5¦†‰g%z‚ €™„+ˆ»ð‚ Í‚`Èêú¼†&ÃB=Rà|r§^¡Àp~¡@ ^û4_/W„±fz2€Ê^õùšŠ;9@á7^«*Š¢*j4ßüR I y§T% RÀÙ;³zãl¯TµAм„TZAyè)E[p£VÇ÷ûWgÑ(n#£›PöeýÑ rXá»Ô›¡VÛß-ŠÀ@Å2 ðÒïÀRêc€ÀÃ@ Ø@^YvÙ»òÙOóKyþOÿ ™i¨)n’Sp@~>3ÿj¹ý¡if~†šaÀxð0À L@_ßA^ŸIXc@<¨S˜ÐÅ[˜`SC!@ª&rwd @é%ë¶ïE …Úšy´ÁGªEŒÊ^äüês[OðDFÍcE€ô_Ÿ—LõkÀÒÕQ¨,­´§ª&§<¿JÅüÇ·—‡Úå×ùýs;¬ÕD8Ü׺›õt €&‚PöÊËëÌ€âP°Ww{ÀÀ°eä£c()õ×ÿ+påüõ*Tý¿ 䃃¿ ð%@²0€ ÆC¿™ñW×oF8P¨#Áxèâ—œ´ø©ûû¶)×}8QfD™!Ë×2Æ!ã;Ö˜„œ¨SØÔÉ ¶QÀ¸ÆŠ##*ù%þi^Æ€ÁµÓE @BÁ÷Žÿ 7N_™c(àQMíÓQ®F®¸û†=#5 Eæ\?k.Öcœöyõ­Ëºöœ}*Û¨tö—&(EÔs¼ˆ„õV€°û®V¾ôÐÞRE”=™çÔê”EY¨¤Õº('ó/©¥ Œ°ùÚë# ²’î¼Î“¶1´[Øòwø'¨æKÊw~ŠÄ’1 “8GÔ ©pú ¦Áõ[v^Ûý(Իnj¡V<ô¢üxõ2Å•;zÁ%攨ÞÃ÷_€qJЯÞ˜Í)Ö@]¥pt`c´Q¨¾˜>ÿŸ{‚¶àK h‚¢%ÝÍárðÎè5ºä|iEDTU‘íMuãuêϺ,öþþGÓ\U³²Þ¶ñ:O{,ν™¯T™Ž‚jT¬@¡¥îUªg°0PšÆ¹,ëG{n³"23 vmç±·àÌÈUï¥tš#ÐüáËÑpÍ€ºý `´³ú  (åI°ÞFúÎ/êÀ Í×À úÍ’]õºø’Àl6àÈŽ@6›&~ø%ó×÷ÓÈôŸÿ̬ ½p°^ßt-´>SxRv½‡/Ú€ÑRý;ï&ˆæü5À`‚tÀ 4‡L`#!E``À—a54-$­)pJœd€Ðº‹Åc» @µÑЍ  –ÍS‘ÊåÚY  JXéñÛ¡?ŸÓ.ÑXß\]-ß45oùíÉý8Ê™ —RE=ÞW÷d”¤ÂÝŸÖsϬ…šQòPÞÓQ6JÊò7ãù­ØŠn‡SJ²¦˜I.™«àòwÇßÅù?öãÌc¸jŠ+ÊC€ °ÿ³¦‚>L%XCB0^6 O0“p£ÇÀ“.©@$ …´}œóTzºôw¼ä*›"BdPˆöT@û  €´¦ ‰‡ €˜+[áN]Ñæ[XŠ-/ ››)Ddè]H¦"¿§¯Ð÷}yR­5q@?VÅA>vkíØjå$Yå¯/òšfšµCÄ(Æf#½°4Ýë:J‹Åà…ŸU€Aýµ. €_ O?ühop<E€L@~9Æo²þ†ú2ÂVÌŒ©¦X)†ƒOÁÏë7½šž Ø@kÆë2SÈê¬(œ+bÙŒø>` ñ45Dä0SÃ@·Ï0†qejA=.L¿¢!àÁTÆ®Ñ;3ëG7o—.Z× $£Õ¤î”O«Ïözi PÕd}iM@UEÒW蓃ì½ì‰ ¡I#¥4rÚžûÞ#)QŒZU§NA£˜õ°¾jÔe’t/`Êòßo>zõS‹#À0q®~@,;oÍ: Íx4@ýÇ¥Aàù/ˆ¿¯@å'(@¦¦wØ 6Áø,Ž€ Mo^¦ù‹Ä·Ð°4ýe„­‘í@¢ÎÆF/1´Ü¿i¶¥íí¡¶Fæ{ë=œ"‹2ޝ­1nô2è×n0»‚ó?êi˜PtÆAÜrEh5Ϻl4}2ÈæƒàÔƒB²¹ø¢AQïgí–Ê€09VQæçTnxŠÅþ-LW’áÛy]îj3p.‹‡ž–óaÏ­b ú®ë¥ú¤B ‰´Ç-ÝÕ–”´iŒ8ÿ[©Ú“–­€ àa°À‚ôØþv€‘ïb+óÍ€òW@/†ß¤cÿµªàˆ—l¡• x PÄþøÅÙëÿïdæž÷¿° ÈpÕ†‹^šoÿw¬5êùj½+Æ¡ ò=à4øRêé˜PT€`B[ A+ÉÑ €z@Áƒà•ÛeJ¬t+OŸ^÷« Xž7‘ù9`Ùù²ŸS{Ó&ê­õ(°d•ð)o_È;K~½ÇjéÆyvx¾ím즷ÇÃë|[3É8ðb®â´„ Yø“C§"Jn㾜ި>Mã£#uµL ø¬È°Ÿ@ƒA£†j¼ºê€l9®š €ù >ìW$hÀ¿| ¾€40-ü€ÒeƒE†b†þƒWs#âGã“¡ž‚ÌTÖŠ‘`0xŠÈŽP>[N†:l8êlœ˜ ¥(ÊT™jË~(²m˜@cN+€:A:˜Ðã :ª²nš±÷ÔÄ0ë *ùb÷¹ReT û]ŸºÇO¾V}/Í€aîæësUÐÜUÄÜ]Ö±YÁ®GoL/v‡€å>›½û{//o®ÙW´UÒ V×i¦v’æ «õo][ª×mŒ ‘ÕèŸFåýkÏ…’ ÀÐJŸ+æú K˜­©S 0µí× Kö ëäÊ`(€ümb WÿWÖ7߀ÔAs?«õH¾t 4bÛÞHƒw‰¿C¬Ý_i›i¬)fŽ]æ. óáCºÿ‡õqÃQ3®7NE”w°Æ60çC@4!Ì”AœÃçc#¦VAŠD>DÏ÷  k®b½—ë;J.ptüpêÉ“µgR¡êª¿áÕ¨ÁÀEt¨¨V ŠÈEL€Í²“¶ÕµÀ®Ç‚ž¤0U€yKÇ÷Fï_CŸ?ò´Ï ‹Ç}?µþzëÞW/í°UÔûtßǶU au+Èv*@ ÀT¾7$žƒZîÀn€‡ºU/€ý?­*e€Àw>ÿ¶ À|]Y@Õ_Ið0:Z U ã)Pd€žI¹—€ (~%?š¾ µ 2C¬)VŽÅÀ]ð…úº¦7#¼4È„P3^Ý™eÊ:23ÎÊì7E¦‚ø`a¨« €™€Nèö€€1Œ‚Š!.‚ Ù&¢YÇ šÐ|=As4mp$ºt«ÇUQ) DüÇÔ¾a¸"9sÌßf'dH6^›ì>|Å€šƒ£-‹¢¨²úY„¿kôÍ?Š €^2²žç^³ýèj0“Ó‘ˆV z| åîž›€1¨Ó¾    ¤N;Ãc`jÐ ØæÎk-½·€ï¡AÊO0€þðÇI´ ¡PÁíš! ^)Æ™«¤oÖ†;ÃoÃLwQgÅC/7|÷»o׆›Ÿ\ïÈö>0‚ÞX`‚l 8  Láè@ðð(¤ çó¤R¨òÔœR îdV¼ð>ù…T (ÀæG†fr®¾šg;¹Ê@ñß|í÷|¿ª4HY©iâÕÙfZÊåÔ›WÒé>öV’D@JÕJ‹>7ýÜG›{ÚgwÜò#ÕšÉN‚ªgœÞùrîºÝ¦ÔÆžÆ>ï²n€†,èûŽT(HŽþéÇkí—à7ËÀð¿÷°€ =UÀba˜ß¥„>Ü6¨™¸aÓŒ¦B þø…¹ÛÿëdæK¸ÿ…ßiË𬠻xXñ„ËÍø«žÝåÁæ»Ö]21"3†écfžÝ#ŒÃúÎïJh\ÁùÀzøu•n6 ã‚1ºR!ØÏ}›¹Û»ê£Ó5RË@¡à÷o$‚½æ "`½ñmUDUîÓ­ z´8@•( ‡[î}ÝõžsÐç¦VêG¿÷õÇ"ûuŸ¾üZžu{Ùs#SF(å¡è@òRƒõ9Ù WX~ 5äëòÿ¹æ†¨š˜0_˜rú½×.Í`\¸Å 0 @€f@ýù%hµ0ÒžP ê£u{ƒ> ¦ù‹±£é³ëV„‡!¥Z1Lv¿tØ ¿Ú • D] EÉêYÄÙdK,‡"ó Äß Ìæ¼ÔUN`B‚ ÝÀ窷35ùíôt’âRF>ŽÏÙô(,½œö9@n¦/SI‡ð FíõΛÑWäP4™ö{WÆJQ£ç–©¸ÝèÅô^o­zI¿1"ALš%e¹ë¤ä€ZgþK"#“]tHèË’µŒ(ó˜Ç~éQô`±ûßݤçÀºtác÷¾šªÞ7€;[OÀ,°½âúZXBÝO€>„·/€@ø Àw×€øéSh@üÚ’ (bìæ6;lp€é²Ifù‹ä_!éj|K¯1¥$ëªI–¹»ü‹_ò¡Þÿ\À™kʼn3×îã¼ur9ÆŠ8 æe³ aWu‚$€Ù ® Þî0†1j "„ rK¥ÚÜÍig|žR„ó3·@Ò¤wã·Ë%só‘à ?üØÝ?îõT>©  "r—YK<(Ññµ½g%&&÷Ћy–;ö[çÑsy; ª .þ`åzm©£ÂvíM.Â4˜/ãÀ¹ïþš'ª”^dþúTI–eT À—0Þÿà+”/@ùãKÀ@ê?þsx j¸l p°Á¾I–Ù—€€$>·GÃ#¼ò¨äjŠ›d—yþ(-¾ÿ3àò#p¬)NŒêJykŠèñkl@<›@f Ü A€«M‡ÒçO""“ëÑëjVªEÿv]ôÇi x|oÊé?³Àíg' 0°<ùæpAj=œÕ:#Íê:Ï·ÁýÔ¬Ò;ô2ú«l IjµueQòãÓÜ_P0q€Œ®  Q¸€tCßFJZ€èëÿó‡7-cÀòß*¸8!‹?¿V ê'¯ùù¥ˆü 0@^Ö‡„Ÿ’ãÕüU„—Ž™Ÿ¸îb£— Nï×Åv5ýW¨9`~r½3br"CëüY‘ãÆeÇWÌPÁÝu•*DN¸)ÒÿÉÛÝ-x7œåͦÆQœ¡YŸ<„!ã•â³UV‚ÉéÇZsêTTõµ*ª¨ž”ö¿?5ÈP<ô·éáq¯4Sn—ö~-Ó§šƒÚ \ê;«²´” VT¨û‚’³œPÀº ÜêgÕ´@À`@?à|úÿʲêRUÄû›eÀ»~}Õ2˜Ê__ ø®]9À_<‡»¼¬zï @j‹.ÄUA ŸÞ ¢¢š~Ë|ßqzÚºØsƒdÛ¹Z­W/Ìξäêþ¬ÎÎhì> Ñ¼l¥Š €ô߯=50Ìt°´ÉãWc‡KÍ…F“¦  x)óqyÉXRò¼ÀÜ"`À¼ú_ô™ß­€Çêï ø—iÿâ<Ö`J@eþøå†ÝýÛbO.o…ß.(ÕŠ_bØê·Ž8ù£õž¡^(‰¸îâ“ @«uÐØ”óS€ÞR'H8z¼\€`B«À·TE`i­>|j @’ìl;±GÎ £;ä矟¯6¹GÁ€*»¢ Ñß—ªzФ€Ç˜¡W—<U­‡uïËýzì[]ÿêç,n ÐT;i©µt;óŒßŸ­ì 5IƒŠ]¿½ç$6î¶Q+äÖšvÆâããÓ­°‘ÂÓVrO²ëìÕÅ?~Ö¥í¥-{Ùv£¬×4áØG7¶)1¶z lšbMžÒ0à Ù„ ä@VÈ`žIÁMÒWèkóÛÿ<2£¨Û˜9¦Á‡€@Ø>ÓBûýÓVhÍ0‘Dõ¤Ž,&§Ö7ªlþ³7€ÙDd¼J°x‚€ ÂäAŠ!-\ƒÙÝÞÂÐèך„WQàê…-Òf <¾`_òsƒã£ÔUF/úЗ‹EVŸf¯þµÎ˜µìsnÕ¬¸wž-jœyæ@„î®k‚:¢T³ªD3ª©b-d¯ŸVs+™Hõ&äRDO¾Î~€=ÀЏÇüŸºòI|h°e²‚ÿóKÀ(XoWÄ?Ÿ JjŽ 0 ¾Y6™§HX@ïøhþa¨•b“M² ®¿æÕx3Ô‹8Dv½†ãÆ QAÜÖ˜€O0{\\L0*^@!„ ³ ôDˆ^/2!h‘­û‚sÉQQÈ¿—¹/T ÄÇ%@Åɘˆ ‹í‰ ú†ì-O™r?µ-r”Ç5h¶bQ>ÉñWþÞ6—XöŒºîˆ¥s©ñ½JW|¼š‘¨Å¥Ž Ê+ݲ¥A]Ê…` •0†2ÁØã¡sÌI–>óÄ„ã€Eð–üÿ; HOê߯ õÑà_84Ð X€€ÒOggSÀw ‰´Ü” ^ÿ ÿÿ ÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿ ÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿ ÿÿÿ ÿ ÿÿÿÿ ÿÿÿÿÿ †CC%ò¯^ÿ2üS”¤¬¿th+ñDüt½ÿ‡zJ$jÉBFePœžæ›2®N`‚LÀÜ ögu‚t°išÃWHÕ".€ävôz§ÔO°kôéa¡L™›sR@u±(­‚èég¼—RÜ3T@Ñš7TD‡@–/Nd¬€©­Ty´œÁßçžý+l®ÖWÏïýô3m—7#v_2œ”yz¶ž.™#©(*O!Ù##+Ô³6¸™Lëb\XZ<€ÎΟX °€|%É7ÀÏ P—púG 0@BOÉŽf}26q€A –öUÂRTâËòü¶ãkÅÂ.(ïÞLóÑådBm ¥«÷p"Vˆúcn½îîa\0@ô—S ÌpA±êi˜I裂1ZR!ŽîÔä¯ý4»ÆCA¬ ¡A(cHðêÕ‰†˜á+wÒ]'ßLWÐ D@ìSÓ  ½Ý›Ò{¿ïÅ”V½×Ä¢5—¾èïž«íÒ}óZc÷¯7*sÏÚ ˆ‡_?ŸÏ•…EÎE¸'¨'‰>60OºÍÔÀå¶x1£R¯öñ’Ké ,, ×`1€ú@þd> üý=ÈÆ¿]-ü°ÑP~k  d{7PA6~èµrß°³Ö]Âß#Ô†…^+¿ÞŸÝ”¬å®ÔPÊ­{¸`Ü(2È/jw@£¥N0¡9Á­Ÿ£*€Œ@Ñ! ¹±šxÜÛ¼28ÚXe}^D€§˜PõÀé¼|µH¥åq†AÛ9à¶EN Ö›ñÞ7K©‹þÜ•EÍ‹ñ[ºqÎGô“åÜ5¡¤è+íOII¸ssÏN-î©Fh€¡‘(ªê^¢!Y®Ç2›É©¥9I2ß{ΪsFÖßþˆÑáøÿþP7à À}+”¾o@HZ)1Gxø³Î%C€/Ï€pÙ€¤˜P™T‚`Ä>2~9¹‹ ãùëa‡R–u5VŠqî)ø`ývø¨ÍÐ)¨'¦ŒŒ¨)'î¤q(r<ñçkL sêê9` êñð@0ydBq‡ÕZwÆÑý(5ÿ}¸¸ŠB†i§šº¢AüÇqÁ•\ŠýIyþâÆN3€J­>` €h¬¹/*ˆ €ˆÊÏÞš 0â»b‚´²%×{ø^Çhö~|i¬¿¾®Ÿ^çfjwA}^U•ÐgDþüW«—Zªd‘€5”;F Pãµ^««À:¨€ÀÞõwq6¼ËšÇ ©=] €­ÿ\ù©Þ+õo €ÁÉlÂߨm0¼Ëm086ÞYvöC|Ä﯆?F]S’L5ÅL²É\ý£€îüÑøfØN  nã €q(¢„ø`A‚ûuB˜ (Ñ&aT¼`ˆ E”^{~$žÂö…†X)À£ôç$xð%g›ÊÈtÿ@yRÕ&`é~8«§IåÄåS “t Þš™-:û“ÌÀ*Ý=ž_øëçN9ÆÊœæb͘@s²ò:} ©Áò[Ô²…Ø•¬dí·²Ÿž¹(¨ k6$ ª0 ¤¿v €[×ÿÖ>T¨Hýþ³Põ×5àç?@ýà_i@À7€lÀ@s^)Æ?¬h×_]Þ ¿§,kÆÉ0|øc…F|©ïÿ¡öÌ­T+L ™¢ÌJf¹Ï臲Îij N3 Œ·€Œƒ‚«@•L`Þ8r¶iÙÿ¼á« d<Ô9JPP9AŒ˜ž›"ª H4näÖ±:½ƒ‚=Gž«qj_½xß/9_‰„³`«©ö¤V‡ЭV†”:­ÃŠ•* œzôN\ìIÜÛ¦Ê6™\~ÅÆ¬T+ á®ZêuGT€œ¡S:äÑ×½]³±PA”nˆõôI­~mb% ,h!}ï°a—£Û¢þ¨ÿ`ÿ+ý/¬:´é#GÄ@ÁAS6Þƃ[ÉOæ£ý[ÚFZgc£ŽßgšáÑúΰ­ÁLWïáDˆŒÉÌ(ïY<Ƹ1ÀúêµfWPùÍ=AÀ„àLh« €õÒªÔøøkè˜Cޱ‰WØ_%>€ú½¼<˜A³ä7·Ê— €pk¾š€J/)wíèêZÏuy{_ÖeŃÈk½-ÛõêýÖŽ*{dÜÓ>?â.È!Àå4…ý«í9s5ª`ì³ýJ²TÚ“­ K°c Ê“´–Ê_«x:”@<Ý“0fˆo½~]C‡ßx¾$õ?M¨ù$ƒBh& žøù«¤»ˆxÉ?ÿõÂÛŒ¡Vlô²lñ/Çé~kýö°=s›‰Ö;|áÖÀØÑ‚ DWð0_¿nÔ R˜Ð`Œ.ÀOå"`îloª~ž7fê[@€(ìóÊ»éœ'!#Úç@ð [§_osäNÒqḇQ@©5½®‹¼»¢îD”Ów]ÓR}ÑÍ‹wÔ•4Ͻo͹mg|½v »ò`WêPƒ ï9ÌLV¾øó%ëÈT¡å!‰¦£Æ¯•»(, FØ93Æ€‚…RàAc—aá­òÒ‚¢'ÝkÈ*-øø)ðòoÎøøR€ øš @ @ôÖø4 lî0ÐÖÀ>ÆÙ‹_ØQË¿z==üà eY×âd˜e·~`#-~¶{z¨±ÄR5ãÄH‘d½uób±Ç¡ÈÜwfsZÑé ˜ ¸ÑÎ:)@ DÕϺü›ÑzÑÍŸãkQ‹ ¤«óêøf¿ûµûÂDBÔhzñÁPzCS¢€ˆì†"ý¡i–ûäT‘Š;Èúáìì~¿†Ë5+Îê§Ñ?»FÍHUR´ÞÚÉ÷† @V;éët×ê”ì¸(È0ɨùZ:¯ÿ›t•LÇèdÀ¢(Ð)pã ï^’ À[m (,ç(¾ùåØ&°ôÂ? À#ÿb‰_ÀmS2#À†°Ñ¾IÖÁ]Ò§èÖ7ýxø½°¤šd’]øüQüîúK¾ÿ…o82`Í8)*§õöcßçå8Ñ âÚ¬!¡¥N0›€ =îðÆ0¶0„ܰÖMí›_4P$ºír»ÈΟšJ:m€€¨ìª1¸#‚›ës +r’Uälð•Þ®+€ +@úà ç@ „(Íì¯üúðvvUƯ¬ßvCÍ1ªÈîê×ÿž ”–Ê•¿r­d°ó2^  í÷ñ÷Ûå²û”Ö÷ä~«Ùh~ x9×xý¶ ¤o,À/À’ áø’1‚àæ ~9–ù›Ð¯E؊٨ 5ÅJ±ÈÝýš€F÷[Ó£HÍ81Eõ«=Z«’ö¦œw•ÀæüÔ a¦AÍá00 ŽB…@ïÐz'ŒæÅVù>i°^¼ÀCU&‡€ÞOÌ$A WCתˆ :² ˆ€$?˜Â=W§mrFÀÕ ÕS©ˆ¾,ÿ˜Åœc•½m¨%W_§VˆSyìv{o-²ÐÅJÜù—U…-) @ Ô‡TP±³(yù¾T`Ô•æWâ:ïpó"0X&@ü#rg¯l  ©Z¨¿’Pÿ2_ûŸÚ€Áθ-€‹82`Ø`^)Áöw9 ?þÕ˜Ì®ÛøøÙñû¸ñ·Æÿjd¦\ïÈ‹Œm È€ ¿3Àìgás%DˆA0µ­"€4=© xg<ã"iHd¬ ¦µæt ¨‚¯šoTgè ý/€¢Aß Aô7Û+¤dÐÿWSª Ò“‰êWØ$,/¦•ýÁÌ–ÍþP{êÒž¤Tìzq|¬ìß·9$ÙÄL5«&yäžÊJ÷¸rg˜öyȲ۵•rè À ¬í@Õ.bôq}÷Ä^ Œq(ü.æ¿ €€¿}H~AÀ¼‡€â€V'Tà (à°žøEÙ»?n¨t¿Éïf3•µbb—fÊóO7êo w%õÄÁŒ­÷È €qAåÄÿÐ º‚SÀZ?Ku‚œ`& Ñj@0F[UåaW:ä‚Q-[ ~5Í”œúz‘Ý"…ì“OzJ`ôÏ@f«'"«Ò*€}]xmå˜êE¯Ö–ÔÝÁV ™CRÿî«ÖëX5ïtÉX:÷þã¹ì³Ú娤fú9À«?>®/ÎbNJ\ VÎ_V9¢¥®ô¢  COÝ]Iñ_R@1°¥¯á,®`aÀëŸÌOŸ ]àÛÿ?°| 4CC¡öÞ @S l¥)^)ÆÙ«©‘?›ßû‘”D]•ašÛŠH:iá³ñöðåº¯Ô …TžETÏõ[å‡"N„ù]fñ¼Ô Ò0q £x*€†dMê¼;Ö¸>9ÉÍf¯õÞ ã§3Ÿ ‡ydÅGÙ©¨Ö¦€©@“'‘ÈÚÊœÛh™ûôOwy»tçb¢šqÔÞõLW[qßXP½ïci­^# X ‚V(õ<_ iæôså+t€ŽN`—:Î쟾Y`x Á"Òª=-ƒ‘«rlÀÁÿû‹Àˆo ðÙ¿€Ap I&–‘,Ø4¶04 >IÖù‹€@,~»þjy{ÒaÌLCM1“ì‚§€I|Fü]lÿö"Ó5ÅcŽ/@‘ãy0ï °Æ&L„} ‹'Ș<0†‘)BB€)¸ýã^×&i(!Õ¬c3ñqÎl5{JáÐ\@@'k/fB@åëÏg4±R§ãi÷ì§×¬°¥£ªñôîŸ,ï}ùÓ2·Wšjw= öÉk·]¯»{,F>U`Ô‡ûúu+ Мz/ Ƽ‰ T´¨ðàÀ+隬àµÿÉ€€Ÿ~ŸO,À/>ùߪûаöþÆxm.•·ÿ’@Ó†jc€@>IfÙ§€€,#ÈÿS.?”rª)fŽ}ö. 0ËÏôj> õa™PkŠ aöu'EëL–M nk,˜ëÕsq‚ôÌ4°èƒ7ó^ÀFn &ù{ï!ŒöîÖx‘AÛiÍŒªþ¬µ€ŒÑZ-à·oùy×^8{u®ª Š¾Duí­ª*€*ïñÝ]Q%R»aªÁZîL[Yθ+F_ŸÏ?Û±˜£öÀ-¹Û®I€sŠåìöûMváÑÖP€z@‘ŠO>š /à–ÿ,Øñ7õú€ ¤ù7§ `À†lø’P0^ÖÁ!b(Ðô«ËÿŒ­påÉŒ²®Š_~hñC¥†æ·\{NyõWŒm`ÄÀð€án€:AZ&t ס"rú’z0C>°‘H(!øžûkˆÏ €‚ ýÞ ܼÿ‘8èR‘@R=7hǾώ¬KÊj­4·PÛPÕä{Ý&,žÕ9ýáoœì¿®ûÒÖ¤F}3ßvû1æ°er6¨—z¸jJïY¤LÕm/ËÍ9*e(Qcüj \®`}ú—cÞm¥.€á© X¿ü΀2 þY€4¿ BþjJþ]6ý¬Öq(¦>J à6ùÕÙ­ˆÉÉö»úþþUŽÚðÐKŠ_šnø½q¤¬Ÿí¢«÷ð…0nPNü;ó€ÙT@ÿ;Ô ’fµLhC\…À@x1V¤‹‚L2’=,ª;€WÃÚ·[<à¬3 @ñS—wž:zzš^ @ɦܙ¢ˆÊÀTÒ(¢êJkóïKÒ=ž½C“rm]“WËâŒÙ¬ÿmzw­ëmnpA÷ÔM’Æå¬Ü´ùèýî6F%CV.t ¥¿% êÁàÎz­d(äš  ,8þý  ÿóï`¨É¯-h‚;ŸÝ§ò¥ØŸe*à) ÅC0 †ù‹_èöÙøõØÅ— 2_¡ÎÅH0\ýúÃÞ~5Ž ÿêC¦KÔµ8Q„Ź(Ïßóú9(â|˜w©€Ù¡N0¡ÇÀ™€`ì ¼T$ªA e¯{dÄ» ¹v_>§AÁ*óª^@…%NµR€»aC@¯âw¼¶Î$}è×WæV\§dR¡§«´¸h于.9ÓF-ó"F÷yq±¡dŸÛ_/Ï®ÌBãP2@*íþF-}׎M —V@tNNÿýøÚ€ºË²_~{©¯[Xærß‹X¬Èj @øx˜þY@  @Òª@ì¿tü“ÂNÁÀö^IÖÙS¨…WËŸÎ<¶+†º3Ç1{˜øÜá“ó/Ô+G†«fœHeåy(]ØGìÆHOù‡Û¦ñ, ®ò-€Ù€ª^üŒa bL!€”Wµßœ+¸òJ½~öl!ˆ6ßÇ «"{K…dÀ ³Ä…¡6€øgMέGŠˆ$`Š¥Y@¼rô!?Ü´`F–ÿZ0`2û.õ5°[Ýx3h@k–Á¸-`~øåswÿ0Hé>µÿÒ™„Úðð‹òÝ;,SâgN\©•”©îâ €ePýÓï^&D‡:AN˜Ð.@0ëÀK!!€Œ$«›¸® %”#ãÄPEæ’Æ¬ÕU÷äUÏC¼5¸:8<“„-œ˜Z>ÍCoÿ§:¦’‡õúà.¨ªšìHJUÑ]¬·Ž…_z¡=ÃÈŠÔ½e£{š˜@­8À\¯ùN’ÙPyÉÚ3.d©©Í½â+[ª5µö¿ùÓ`à†*Ö~4RBض÷ÔÀ~ €¯òÆØ$u]âuØp›`ž9Æ™«¹£fé~føc†«^cæg^"È ºõÝOF8f 5ãÄŒ”QÔT‰¬«}ý6E<A—ßïfs":AÞ˜éÃYô¸/ Å?ÌŒC~¾SÛ„,`òטÅ9‹*¯¯Ë%ÓÝ? ¢¶ºá,¥¨T IŠ0¼v¨**Ðÿ·£bÙ@@‘•Ù…  Ã@°’Ïvä–›$Kþ8gž³ì¯«¯ŸVnÉœ"7 Õ(K_VhN1h©¨}§ùøpí㈷D›ÁŒÑ(ètS`qïí1­CÅÖ{o‚°Ü ˆ¤)fÈÕMÀéÔ‡Ý6€ ÞYvöC@ÈoëÍïÿØ‘™„šâ&¹7赟gx´ü0ö³K¥˜¯X3®q=µ¬! h/êé˜I€.Þ0ÁUÈDAñ‰S+@tðÙWU¶®@TFž»¹þ»Q'8.F(9xiMLˈö/TTý?~¬€¢©»!ê~~1€ä²¶ìZ½83ePº;Ê‹¥ÝX;Õí½úéQfsqN÷ƾŸÇvůfî:dTÐ乌ÉdùŒ‘æ8ýŸ©fX|M[4(âá£÷gœ/ _$¬€øˆùá10ñ 2(^¦¹›ˆT>¾~¶c¦¡fŒûwˆGË›¡Ï‰ Zq"RT+‘EÍAU¿ 2~˜Íij NaSƒðÀ ®*FBõéôpÇ|ů‘zÑÊé.àÝ¡>¥à´y«usm:Tú΢ ‚®srr¥Ý¥z`=ëiöÊ8ó’×Þ¯ëº_z3 ¦döx_®ëì B›60þò×UÕJ¨}dàòh]í*£É(0ÀÐçÀ½ß»D-`ø¢Þ?±Àw½rS † 8 À6¾ó~(YØXHâØÉï0†ý`ŠBüV°Cëñé_‚ ЊÉæ‡HW]S p^æ†.þ©‘ájyK¶g¸×µxèùî—Ê´þ£é/“£èb¦®ïÈ €ñ¨d(WÌ®àö7 ê*%€™€@1Ƶ# !ks.ývÌê×H·«­a •Úí"rвf2(@?8±þókB8Ô¯÷0d¦@%EÕP¡ÆL/`µˆ‘`ô q÷/˜¨$Tþ+È)¾þ^x¾!A–§dPpà‚Á+€°7¾Ø%.~¥Èñâû/vÕ°6\ìÂîߺ9^Íïê•‚Rv]‡?È[€‡rbåï9 ŠçÔ Ò Àæé`ëÀ ©"àóûßZ*D, “(Ý{#@Qµ»˜—é4¨¶‘ €óÐ7ª•îÌ4U€••J9³ëÊÎp¶zöÁÞÚ&•¾¦‰ÝžÅsÍusUgq9}E·»Ç+wÒ’€Æ¬2ÜR šê>@饾T9a4 ëõÞéSÆ×@Ò‚¢€Ïgü2ÈsÎýpÿöÜÛò, JÈèÁÿ¹` €0¿ÿg àŒ_€KêŒ 2ohz@Aª€ƒEi~96ù]Dä„®ý;Ã>¬(QWÅK±ÈÝD*ºæ­ð¯>)×'FÔVe¡º›qã PdO„v 5Ìiê„0¡ÇœŒÑQA¤ùER—olO)6OFÊd:¡èccuÑâ}@üëÑ;ñÐ JyxÖC[¿Ð ïò£°—ÌkÆH°ÚÞ kw3ì-Ÿ ¤V| cÚýŒåPäx:˜Ì&Bóùu‚ôÌÔ°èqTÀDP1UpìëZc hEC¬$ìû„.q¥žËÓÓ© †¾†_´—æl",%ìBˆïvè€T#§ ŠlúAÔ\C^9òcˆ*ªˆˆal6í¡P&)ãœt؆fb˜$´Êj›VÖáöÿ€v}ÔÓÏ|‰š±Ñ«óõ{«>ZŸêåCfºº‡+ÆÊ ¿ø˜`ö€ þP'È8‚ ‚1êr… (VxÐàkÍMÀ-xÀÀ@³“=—¹ò—‹ÎWn• €¸ˆ4ÎÍàëøÓtÔJ@W/AÃÚCDï-§/UJÝTÜ>ûËZkÝ»½ÖðÚŽ·îŠï£N±µôSN•æLJÅÃ…á­zš §i1%»ú &@ %Yª¸5¢Àr,8€àþÇwƒåj« §AJû”ððõãR¬€ „Û4ä Ù9>°Aþø¥¹‹,2ò*¾ÿEØ£"© »8ßüÊròGóì¡&êյ䅷½¥ˆL zÀ#@Ô ²fÍ¡&p^*ÑÉ@÷·°ê•H©2ÈÉ¢I×<Êâ©(aÕœeûùp žÛîø!ƒ`NPËà*Œ 4Õ€•J$‘õ­Øå D©«OxP4íñÀ^¼m½ÏíÕÕ×GÅ2Š­¦Øy¸~u L…J烥î\¼À^ƒª«ñ´HÓ* JÃÝ20Ú¬ZºÀ€?3~€g ˜ê‘à€Sž·AF`^)ù»ˆ±ñUß È ²¦XÆWh„϶§Gܘ fœ(Cʬˆ²h…ÝRDwˆ?P³xÞê¹LèñЂÉEU¢cÔ¼&q¤D´q|•š9Êéá„€3/2IÛ1€XG]t*¦* €(ªòê³K‚Eþ?K¦Õ!K©´‹µs˜‚– Sk—Õþå䌊““}i¿Y±‚)½ò·¬®–}ÕÀ³blæñÒPúýéÌì¥%oÔ®=ùæ›þcv¥Eq_ŸÆ¨h5€WuÅmðwöT¡Þa@v4@ƒ¶ð7¢ë´ôcóZ>cȰ¾IÖ™»€ PünWÇŸB˜1Ö3É.óˆäoÆ_ÊóøcZS š‘‘eÝŠØÕj“ãÆYˆãxAÐÇÀâù@ 7€™„*¨ÛÆ$ŠWBÀrU¾áÈxõÍ¢†Ó£Ì+dpͧq.mðžLE_0•6xBÉHõ÷>4ó¨Îb*tq¨(è¥Ô*ô2öq!ª:¯+‹Õo<šÞö»¹Ýµx{ZmGó_wõb½1Ôt@$½ú_Z])Pb’­câÀó¬­T3_Tí@ÒŲ.O²o_ý¿€o»0Tþ¾@€üÿ¡`·êl€ О9¦Ù—€À¤¿“~ëþ2ü 6c¨)^Žiî!" è´Ëxÿ¿‡9°nãDQDDÔäj•{Ùñ0q˜ V‘Ïßu‚ €™ c2(ØŠ€Š¦õÕŽiYŒkº™ÌxRíEÅ €œ·|”Ò®Œ$Ó;LX©Ü „PP¢x·PÖWÖDеMiQ€~R™SÂ3 * ÒÇR—;9ˆ9u"Ê„²H`ÛîUn7:@Õ=Ú~³6Œ" °Ýª¦·10ì§åÙ,«æî^gV¢üðíßÞ lÛH`lYwý àË÷°Ë_Mÿ ‹§À¦z`€ (}>¦öå¿jëo O^J6¨V8ô’¹åì¥F~4ýyJtÚŒ®÷ðZ,ì‰ÖHYï=ǧùåÄÌpÃ]ê9`BqÐŒÑ+`~À=ˆRYz.Á‹±Y¯kk¯Ä‡Q–/@í .")ò{òWj €ªJãç.* ¨ ® ¿þ²_3s棾w. cQ#•Y9rb÷<ÀÁj¥“ ;$9YC³¸è¬çb¨{qÀ´{@½Š7\ûl5¶ 耵 4ÐlÇ¡ŽsüÉ×O’—®·ÄüCXú[pƒÀ×ùE( š Æ@Á0´L3ù¥™ëgu4õO†?2Ú Ñ+³å³wwêG}+lGĄ̈õ¯Ýˆl¹ëbêkS;('þS½}@tàï@NÀLBÍáA@0F«À …*>it1§ ¦’1ËF~º¯ž[J²Ü0øÎ¿«…ܧ¶7ÃÙÖÄVx]×EÝO·*€ÀÁ #¢ÍqSRéÎñüÍØÛÙ·T^×E^Í¥†àÒô\\f)ØæóÇÏõj™z°*€ûxéâÂÒPîzŠJÿöHý+£8›¸ÊhôÂütw3uÏ {ŠR‚º‡/f€q£ ˆ&~þÅ-=@‰7:A:˜P<4€`Bà§*–––û»™L‡b-RBÊ„ê÷sÉÅg€¢…²uЬA¼"j’÷@Bñ¹´‰¿Ÿg5Kp9Kº¢#” ¢¶ÉkCµ¼´î(`M¼UÅoi’UMÝœô.ë —ûõ®‡yRUѽZm–Ùûìik+ãrÜ[ ßçG…u`â-’,€œTÓ¬0+aDÕ¬P/F?zÞy <^€—©~íÇ’ÿ06ß± •¿JÈ’q4üÚ5Hà ?lÀAË„Žþ§U÷÷~«AãÓMf ºÿ¶Üàíz:Û:u|]>0!ÔŠC ¢hv1Q§ìûF7 œXyo€Ù ÎB 0 â` ªª"k©,uô­ÁýQC¡¤üßÝ@ñ÷å{‚²wxA24ä\jùìWïm÷§}œy©Ôë9YÿvFܪ`›F#®ï¡¦S2(™^Úx9@/¿ÚM™êB¡rH›~~[3t`± ~,6Å× Àó×büaï¥ Ü@ò÷s  ~ëþ?}Ùвç›ê+x3Ò`çB N•Mß—bh`€>È%r·û}ÐD<ÿL&ÀµâŸ ^Ï{’iQÇÓE#­¼¸cÎ0¹ï€ k"M¦ Z]®BÀøâý©*Z‚ .@`-É%HžŒÛTø½¹­ ¶òyP"‘ï>,—t¹…íNõ“óͽG“•¯Sw¼²ëÌçßåõÔúaÎI‰u/úË‹ÁÞh ¹¼V“PÍâ†ñâP”è™Ü õzÁߪ”ÛKþÊý`Œ$†eÆã®!¶«<é)ÂÈ<2yO÷´7õ5@€=î¿62 ~Üàż¼Ë!v˜¯¡;Á@bàFå2âPé€þ§w*h¸äùW:<¨³ ws‡MÔý4+׊/bŒxô€"Û† kÊ×òâ¯aŽ:…U$䪊œXÍ/¿ ÉSaD*€Àl3èzý——+)Á{*ÚÃM ˜Ü•Ýyö îÌ«)¶÷,Ï­µ\š” wùôûå²×«êÒü}yýër»SÎ~qUÓÔ_çßO9˜x"ÍmÂ0¶8{ÝŽ·•È鞀¦Â>g_~{˜uÀŒ½¥jóDb¿Â àÈltM°ùÞÑT¬  T~ÔßQŠà˜3À6 ¿‡2c  8Bi2v´ñ-gÌ6Áh;šª 3;ç þ‡ÙûùT±½ÓÖ˜j#Y˜yîOƒ¦&ìwêSj&/r€£ÈÄŸÌÞŒ?>Ô)|ÚJ¨ª¢õjdc¹^õê·_ˆâa \ŸºX%ñkVk%{ðÀ—/æ7üYA̺DÓ’êZ>ÕoF™þþhæû\tÇûõÇYíýÝú’¦× dƒ¡>0òä(6àÂZgnöyJÏ9Ú²·É· @‡Ve z† €Ö†®ö/å#ÔÅöŸeœ†€ƒ3ÀF€ŸtôÔ *Om)R`¬Àƒ€ ,Á@!Á—`@,À|†ÞbévÏ—¸L#Ìâ£(âši¼µcA6-$`³Á~W¹Ë÷D&Ï[#Š„j&sQ.{sðm]„1“{áPAã‹K÷bAã¥(ϸ€o NIᡪjþ _ÓÏOvý{î«@FÐ À£š‚í])ð K¡ð„ȺJn<ÛÜ“íw†ÔÁnOV¨t^ÏÜå–Òq|L¸ º~ÓÇ4æI®³²¨ÙwR¿½î“c#áœãVº~ï–Í”Ü yÅ@ÂÝRß³H+Œµà,Êù9¶!ƒéÔ=ãO¨Ô6z‚K¬Ð%D¾w¦ªó ¶+¯AÊ(òÇ2o0pJj»¼ÌÜéV¶X¦Í€ ¦ ‰å¦‡myí½Tèlè¡žW•ÙsûœMÏ“àÊ Ö”ì=exloÓ"¶æ˜š¼èvÆñÀvÌ6µÂƒªªê1þ^¥U1ÓvRè·@fù,€/n?ò-¹¢d²]ýhF€rQr|ñýæ@Q$yXY©f:…5;X­Ó6ÛõŸ{íý4Rõ¸wßëýò4þë^’ªóªÎˆÜ\îù%†€ÝÝW€õ‰è­Ð20 L°`éq—)Êd_ÞWíÇܧAj½æØÇו¤òJ A³×Ò›pý¼&€^ëK6@nÐ64}€<?ZŽO „2J+cb\P­ï ÔâŒw Ô„B¯ñ@dŸguBk(^'¥Ù«Nq,B¥‘ pI]”e¶ûÛXË‹<‡‘#£&/Z€öPD+ Ì6µÂªªê¨Gƒ;‰q1CbT€D[¼Ë¥#çʲyˆó)%ØáòTݹ9ªr}naÙƒ—ûïÓiêÓ›Ó¼?îo¯UC½õ°‹2µ. ,_ìh¥CÀ­òkÓ*ªu -’B¡ƒ:†zØ®(Üó÷Ç€ M€u;Ð&±™÷x?.]ØÚk3½hûû1Vë+©ô¦Þ¨¨DÃô×#£ß“ŒÁ/A* ¢äñ9T£ ÏÁ+¤†ëƒeÄgÉq÷ë9÷Þ²ÃÂóÅn9qÕfÖb´ëG”>u`1tuƒà×>0OggS€œ ‰´ÜÀì²Æÿÿÿÿ ÿÿÿÿÿ£ç„öu{&ÐZeRªÉsjn»Þ£¯ÂzÄ­Øäũ〱)ç`vè —”PUÕ8˜ü5¬™Ü†%0pÊ—‹ºmÚ jðzIf!8*%_3ÑNûæw¾¥cìfô~´ûÓÃWyÌ6_צ´,Èóý£`cœN§m׃ Ì"ëu>û…ÒZF‹l€ZM<Ðó±¿YOÐ.  CwÆ»þS«™ÞTnsì˜ ÐN ¹)o–eÀ*JJ•ò…‡ŒÃ`2èÍzsȳ‘sA*„§H)²˜Í9bn „¤?ÈÂGl'ÄJ“ƒÏ޲Ê ,mý!=õ]X{d²L °Ý®ñ¶ˆ+å Gu“’Ÿ™>^׌êÒ料u7 ŽšÜ-5ï_‘!Iž$ìÙÈŒ.ж±ù'46]IIUUÕì´%j0¡·'š’åî8:’<%2¨KÕ‚=QNìUµóÑÒmeöî/‡¹xpÆ÷ŒôO’ @)ZÑAfë÷IQ&½WÝ“Y´¼€/ÐÜê÷yÃP'L«_N}¹÷9ìxÍÆ°ÖKoÄVŽPÛÙÝh›Û9Ú5Ã@ÎIæŠò%*U ¦»ïë¼S’¢òÿ×´íö›]Ý‘VK|@“çÕwéF¿¼Ž£±‹À½x3Û(Ñc»º·#a³=œ¶æŠ•ýžÙb0gØs·Œü\LW3vò=ôˆãÐ8·ôÜQ†Ï[™m,s©ý}o£ö0½}}s›¹ýºè1Çàç½ÑWµ27¼[»/:D[wrÐWHX€ß_%ö\™Dd•»ÎÙõh0ë}ößd\>ìa´.{èü8Îà¶Þ›²^Ï®¡5`‡ü?™™£X¹i½AQnÞ¶ôüQ÷b J‘ékŒs˄ξ+£•ToÊdãuûæË"{»ÿzœ–" p#%TUUí=;wvc%†Û~LÅT¨<óâÈ·OôP„^;¿_ržàáá‘ÅÃZ7n+½¯^òð0x8æØ{íÔòz4ï®–^4w €3r.w;Õÿy nØ2Jü÷ÿ2íÉ`¢k;•õ`î}æÛýñ¥·û§¯ãÉ3©h4 œ‹†Ž]¹¦>úV-¤-¦¿ÌcllЛ®&ç˜$èºëïBA¬y/UÞÒͰ·E"äë;³%C ?ñSGë‘(¨®£†³P\FðÞç¹åö 6ÎoÑ®°e:ïÂ]ÎÐò>¶”êÖÀÉX„ŒLMÞ–mû 2c¤pW(6ùqvÍa t ÀˆGQ„ø0kPI®²ª*¤íí££~Þ!â>e »óÖ>HB!täïá.Á^W;!À[Ý¡\öôsa¼ÁºÝtõjýPçqÙÿx8?ö¸ï_·ÞÌû½ÌÌqö1¦=׫-llk¥¹)c›ÜFõŸæ+?·tàU¿özìû˜™gñ>‡7-íàtW·gÛÞ¹k hëK<įRJTòƒÁ¥̪rjquç|²­Ýòõ>H»“Áà¤èz SiÅÂ&ö<Œà–h¾ˆ ”,ZÓby¤mˆlîm C&rH¤¿„:øþ¶Œì’sÐÐiJêV2¨×–mëÛÐ7,BJ:"¤ØøýPÑÂ^)IÓ_ôàÍŧ‡²Ìz*WUUÈ:·}ðn³¯H›úCk_kÙ1ÏÕ¢¸Ÿº×ËýÛú|ZZ^ú»öÞÇîäÂxª–Ð)-·>ÿߦ&ahŠ»n=§bÚÜÿð¦@„Œ3ݳçY?1ÇÄ@i„Ì|»fŸyì]¯ãéÁ˜ž)¦»Ž ªÞU3LR îã£yXXà÷‘ßêW#×Ç~œ9Ü“ÁŽ½Í®x¹¤:&'ý¥Ì„L±L:Ê´_iÖeÚúòê²Og¾³¿jלÓN,8!Ù9+]¡ì¦ô †ÖP¶t`;3}Æt¸”jŒkËFì}/4tb©/¦Üø}˜æ°éM^fö7¯…ÑRŽ…i¨„ªªâHð‡”sðÍ{áKßO½Öûñûu>¯/‡Ëhïã=]—Î\öÇzÏqŸ9ec<öWòtõå¦Pý¹ãÐcŒ&²†| z3²}ÆÞ&•Ùÿ˜½ëþÞ6 ´WŸ C&·†¬qÁBRÞqì9Ž?O¼Ž–ÌkV;¯rBÏ,Ь‡iÇýÔz± ëÅÞæÎÓ_oñ<¦X ÀPʕȦ ¦ÃÎx{w2£`,ln!¤z;¨¯^NSÕT¥¤ÄÈØÁÄá’¡ddHª_õï§Ãã—ï/ßïù~éÿÕÿÓûôîú÷ù÷yû¼ú½ù{ó8Ïdq×Íu÷å¾Ü)` ûkhard-0.19.1/misc/zsh/000077500000000000000000000000001453070076200144365ustar00rootroot00000000000000khard-0.19.1/misc/zsh/_email-khard000066400000000000000000000004141453070076200166750ustar00rootroot00000000000000#autoload _email-khard(){ OLDIFS=${IFS} IFS=$'\n' local khard_output=($(khard email -p 2>/dev/null)) IFS=$'\t' for i in {1..${#khard_output[@]}}; do local line=($(echo ${khard_output[$i]})) reply+=(${line[1]}) done IFS=${OLDIFS} return 300 } khard-0.19.1/misc/zsh/_khard000066400000000000000000000200421453070076200156070ustar00rootroot00000000000000#compdef khard # Zsh completion definition for khard version >= 0.13.0 # Install by copying to a directory where zsh searches for completion # functions (the $fpath array). # # If you, for example, put all completion functions into the folder ~/.zsh/completions you must add # the following to your zsh main config file ~/.zshrc: # fpath=( $HOME/.zsh/completions $fpath ) # autoload -U compinit # compinit # # More information at http://is.muni.cz/www/xsiska2/2014/08/05/generating-completing-functions.html # Define a helper function to complete address book names. function _khard_addressbook_names () { local expl _sequence _wanted addressbooks expl "addressbook" compadd - \ ${(f)"$(_call_program addresses khard addressbooks)"} } local curcontext="$curcontext" local -a state line expl local -A opt_args local ret=1 # Define options for the different subcommands. local -a options options=( '(- *)'{-h,--help}'[show a short help message]' ) # First handle global options. Everything that does not match a global option # as defined here is handled later. The $state is set to "subcommand" or # "options" in order to do that. _arguments -C -s \ $options \ '(- *)'{-v,--version}'[show version information]' \ '(-c)'{-c+,--config=}'[config file to use]:config file:_files' \ '--debug[enable debug output]' \ '--skip-unparsable[skip unparsable vCard files]' \ ':subcommand:->subcommand' \ '*::option:->options' && ret=0 case $state in subcommand) # Define an array with the subcommands and the description. local -a subcommands_array subcommands_array=( add-email:'add email address from email header to a contact' {addressbooks,abooks}:'list available address books' {birthdays,bdays}:'list birthdays' {copy,cp}:'copy a contact to another address book' {details,show}:'show details for a contact' email:'list email addresses' {filename,file}':list internal file names' {list,ls}:'list all (selected) contacts' merge:'merge two contacts' {modify,edit,ed}:'edit a contact' {move,mv}:'move a contact to another address book' {new,add}:'add a new contact' phone:'list phone numbers' {postaddress,postaddr,post}:'list post addresses' {remove,rm,del,delete}:'delete a contact' ) # Use this array to complete the subcommands. _describe -t subcommands 'khard subcommand' subcommands_array && ret=0 ;; options) # Define different option groups. # address book options local -a default_addressbook_options new_addressbook_options copy_move_addressbook_options merge_addressbook_options default_addressbook_options=( '(-a)'{-a+,--addressbook=}'[specify address books to narrow the list of contacts]:addressbook:_khard_addressbook_names' ) new_addressbook_options=( '(-a)'{-a+,--addressbook=}'[specify address book in which to create new contact]:addressbook:_khard_addressbook_names' ) copy_move_addressbook_options=( '(-a)'{-a+,--addressbook=}'[specify address books to narrow the list of contacts]:addressbook:_khard_addressbook_names' '(-A)'{-A+,--target-addressbook=}'[specify target address book in which to copy / move]:addressbook:_khard_addressbook_names' ) merge_addressbook_options=( '(-a)'{-a+,--addressbook=}'[specify address books to narrow the list of source contacts]:addressbook:_khard_addressbook_names' '(-A)'{-A+,--target-addressbook=}'[specify address books to narrow the list of target contacts]:addressbook:_khard_addressbook_names' ) # input file options local -a email_header_input_options template_file_input_options email_header_input_options=( '(-i)'{-i+,--input-file=}'[specify input email header file name or use stdin]:input file:_files' ) template_file_input_options=( '(-i)'{-i+,--input-file=}'[specify input template file name or use stdin]:input file:_files' {--edit,--open-editor}'[open text editor after successful creation of new contact from stdin or template]' ) # sort options local -a sort_options sort_options=( '(-d)'{-d+,--display=}'[display names in contact table by first or last name]:name:(first_name last_name formatted_name)' '(-g)'{-g,--group-by-addressbook}'[group contacts table by address book]' '(-r)'{-r,--reverse}'[reverse order of contact table]' '(-s)'{-s+,--sort=}'[sort contact table]:sort by:(first_name last_name formatted_name)' ) # search options local -a default_search_options merge_search_options default_search_options=( '(-f)'{-f,--search-in-source-files}'[look into source vcf files to speed up search queries in large address books]' '*: :_guard "^-*" "search term"' ) merge_search_options=( '(-f)'{-f,--search-in-source-files}'[look into source vcf files to speed up search queries in large address books]' '(-t)'{-t+,--target-contact=}'[search in all fields to find matching target contact]:search string' '*: :_guard "^-*" "search term"' ) curcontext="${curcontext%:*}-${words[1]}:" # Add the correct options for the subcommand to $options, depending on the # subcommand found in $word[1]. case $words[1] in addressbooks|abooks|template) options+=();; remove|delete|del|rm|filename|file) options+=( $default_addressbook_options $default_search_options $sort_options );; list|ls) options+=( $default_addressbook_options $default_search_options $sort_options '(-p)'{-p,--parsable}'[machine readable contact table]' '(-F)'{-F+,--fields=}'[output field specification]:field specification:' );; details|show) options+=( $default_addressbook_options $default_search_options $sort_options '(-o)'{-o+,--output-file=}'[specify output template file name or use stdout]:output file:_files' '--format=[output format]:format:(pretty yaml vcard)' );; birthdays|bdays) options+=( $default_addressbook_options $default_search_options '(-d)'{-d+,--display=}'[display names in contact table by first or last name]:name:(first_name last_name formatted_name)' '(-p)'{-p,--parsable}'[machine readable birthday table]' );; email) options+=( $default_addressbook_options $default_search_options $sort_options '(-p)'{-p,--parsable}'[machine readable email address table]' '--remove-first-line[remove first line from output]' );; phone) options+=( $default_addressbook_options $default_search_options $sort_options '(-p)'{-p,--parsable}'[machine readable phone number table]' );; postaddress|postaddr|post) options+=( $default_addressbook_options $default_search_options $sort_options '(-p)'{-p,--parsable}'[machine readable post address table]' );; new|add) options+=( $new_addressbook_options $template_file_input_options '--vcard-version=[select preferred vCard version for new contact]:version:(3.0 4.0)' );; add-email) options+=( $default_addressbook_options $email_header_input_options $default_search_options $sort_options '--vcard-version=[select preferred vCard version for new contact]:version:(3.0 4.0)' );; copy|cp|move|mv) options+=( $copy_move_addressbook_options $default_search_options $sort_options );; modify|edit|ed) options+=( $default_addressbook_options $template_file_input_options $default_search_options $sort_options '--format=[file format to use when editing]:format:(yaml vcard)' );; merge) options+=( $merge_addressbook_options $merge_search_options $sort_options );; remove|delete|del|rm) options+=( $default_addressbook_options $default_search_options $sort_options '--force[Remove contact without confirmation]' );; esac # Complete the subcommand options. _arguments -S $options && ret=0 ;; esac return ret khard-0.19.1/pyproject.toml000066400000000000000000000035111453070076200156130ustar00rootroot00000000000000[project] name = "khard" dynamic = ["version"] authors = [ { name = "Eric Scheibler", email = 'email@eric-scheibler.de' }, ] description = "A console address book manager" readme = "README.md" requires-python = ">=3.8" classifiers = [ "Development Status :: 4 - Beta", "Environment :: Console", "Topic :: Utilities", "Topic :: Communications :: Email :: Address Book", "License :: OSI Approved :: GNU General Public License (GPL)", "Intended Audience :: End Users/Desktop", "Operating System :: POSIX", "Programming Language :: Python :: 3 :: Only", ] keywords = ["vcard", "console", "addressbook"] license = {text = "GPL"} dependencies = [ "atomicwrites", "configobj", "ruamel.yaml", "unidecode", "vobject" ] [project.optional-dependencies] doc = ['sphinx', 'sphinx-autoapi', 'sphinx-autodoc-typehints'] [project.urls] homepage = "https://github.com/lucc/khard" documentation = "https://khard.readthedocs.io/en/latest/" repository = "https://github.com/lucc/khard.git" changelog = "https://github.com/lucc/khard/blob/develop/CHANGES" [project.scripts] khard = "khard.khard:main" [build-system] requires = ["setuptools>=61.0", "setuptools_scm[toml]>=6.2"] build-backend = "setuptools.build_meta" [tool.setuptools] packages = ['khard', 'khard.helpers'] [tool.setuptools_scm] write_to = "khard/version.py" [tool.mypy] packages = "khard" warn_unused_configs = true warn_unused_ignores = true warn_redundant_casts = true [[tool.mypy.overrides]] # These do not provide type anotations or stub files module = [ "atomicwrites", "configobj", "configobj.validate", "validate", "vobject", "vobject.base", ] ignore_missing_imports = true [tool.pylint.main] py-version = "3.8" ignore-paths = ["khard/version.py"] [tool.pylint."messages control"] disable = ["consider-using-f-string"] khard-0.19.1/setup.py000066400000000000000000000004741453070076200144160ustar00rootroot00000000000000# -*- coding: utf-8 -*- # tutorials: # - https://packaging.python.org/en/latest/distributing.html # - https://hynek.me/articles/sharing-your-labor-of-love-pypi-quick-and-dirty/ # - https://gehrcke.de/2014/02/distributing-a-python-command-line-application/ from setuptools import setup setup(test_suite="test") khard-0.19.1/test/000077500000000000000000000000001453070076200136565ustar00rootroot00000000000000khard-0.19.1/test/__init__.py000066400000000000000000000003111453070076200157620ustar00rootroot00000000000000"""Module to make it possible to import the test folder as a python package and hence make it possible to run all unittests from the top level direcotry with python -m unittest [discover] """ khard-0.19.1/test/fixture/000077500000000000000000000000001453070076200153445ustar00rootroot00000000000000khard-0.19.1/test/fixture/broken.abook/000077500000000000000000000000001453070076200177165ustar00rootroot00000000000000khard-0.19.1/test/fixture/broken.abook/unparsable.vcf000077700000000000000000000000001453070076200270762../vcards/unparsable.vcfustar00rootroot00000000000000khard-0.19.1/test/fixture/minimal.abook/000077500000000000000000000000001453070076200200645ustar00rootroot00000000000000khard-0.19.1/test/fixture/minimal.abook/minimal.vcf000077700000000000000000000000001453070076200260302../vcards/minimal.vcfustar00rootroot00000000000000khard-0.19.1/test/fixture/minimal.conf000066400000000000000000000000661453070076200176430ustar00rootroot00000000000000[addressbooks] [[foo]] path = test/fixture/test.abook khard-0.19.1/test/fixture/multiple_values.yaml000066400000000000000000000100641453070076200214430ustar00rootroot00000000000000# Contact template for khard version 0.11.0 # # Use this yaml formatted template to create a new contact: # either with: khard new -a address_book -i template.yaml # or with: cat template.yaml | khard new -a address_book # name components # every entry may contain a string or a list of strings # format: # First name : name1 # Additional : # - name2 # - name3 # Last name : name4 Prefix : - Prof. - Dr. First name : Mark Additional : - Stephe - Tom Last name : Schröder Suffix : II # person related information # # birthday # Formats: # vcard 3.0 and 4.0: yyyy-mm-dd or yyyy-mm-ddTHH:MM:SS # vcard 4.0 only: --mm-dd or text= string value Birthday : 1992-12-21 # nickname # may contain a string or a list of strings Nickname : - several - nicknames # organisation # format: # Organisation : company # or # Organisation : # - company1 # - company2 # or # Organisation : # - # - company # - unit Organisation : - - Company1 - Sub-Company1 - Company2 # organisation title and role # every entry may contain a string or a list of strings # # title at organisation # example usage: research scientist Title : - research scientist - Manager # role at organisation # example usage: project leader Role : - CEO - CTO # phone numbers # format: # Phone: # type1, type2: number # type3: # - number1 # - number2 # custom: number # allowed types: # vcard 3.0: At least one of bbs, car, cell, fax, home, isdn, msg, modem, # pager, pcs, pref, video, voice, work # vcard 4.0: At least one of home, work, pref, text, voice, fax, cell, video, # pager, textphone # Alternatively you may use a single custom label (only letters). # But beware, that not all address book clients will support custom labels. Phone : cell, pref : 0161 99999999 work : - 090 11122200 - 090 33344400 - 090 55566600 # email addresses # format like phone numbers above # allowed types: # vcard 3.0: At least one of home, internet, pref, work, x400 # vcard 4.0: At least one of home, internet, pref, work # Alternatively you may use a single custom label (only letters). Email : home : work : mark@example.com pref : mark@example.org # post addresses # allowed types: # vcard 3.0: At least one of dom, intl, home, parcel, postal, pref, work # vcard 4.0: At least one of home, pref, work # Alternatively you may use a single custom label (only letters). Address : Custom : Box : Extended : Street : Riverlane 1 Code : 99A99 City : A City Region : Region Country : Country home : - Extended : 1st Floor Street : Main street 1 Code : 12345 City : Another City - Extended : Street : | Market Street 1 33333 City Region, Country Code : City : # categories or tags # format: # Categories : single category # or # Categories : # - category1 # - category2 Categories : - - cat1 - cat2 - cät3 - one more # web pages # may contain a string or a list of strings Webpage : - http://example.com - https://example.org # private objects # define your own private objects in the vcard section of your khard.conf file # these objects are stored with a leading "X-" before the object name in the # vcard files. # every entry may contain a string or a list of strings Private : Jabber : - jabber1 - jabber2 Skype : - skype1 - skype2 Twitter : - twitter1 - twitter2 - twitter3 # notes # may contain a string or a list of strings # for multi-line notes use: # Note : | # line one # line two Note : - single line note with emoji 🵠- | multi-line note khard-0.19.1/test/fixture/nick.abook/000077500000000000000000000000001453070076200173625ustar00rootroot00000000000000khard-0.19.1/test/fixture/nick.abook/joe.vcf000077700000000000000000000000001453070076200236042../vcards/joe.vcfustar00rootroot00000000000000khard-0.19.1/test/fixture/nick.abook/nickname.vcf000077700000000000000000000000001453070076200256242../vcards/nickname.vcfustar00rootroot00000000000000khard-0.19.1/test/fixture/nick.conf000066400000000000000000000001341453070076200171350ustar00rootroot00000000000000[addressbooks] [[foo]] path = test/fixture/nick.abook [contact table] show_nicknames = True khard-0.19.1/test/fixture/single_values.yaml000066400000000000000000000064231453070076200210750ustar00rootroot00000000000000# Contact template for khard version 0.11.0 # # Use this yaml formatted template to create a new contact: # either with: khard new -a address_book -i template.yaml # or with: cat template.yaml | khard new -a address_book # name components # every entry may contain a string or a list of strings # format: # First name : name1 # Additional : # - name2 # - name3 # Last name : name4 Prefix : Dr. First name : Paula Additional : Last name : Smith Suffix : II # person related information # # birthday # Formats: # vcard 3.0 and 4.0: yyyy-mm-dd or yyyy-mm-ddTHH:MM:SS # vcard 4.0 only: --mm-dd or text= string value Birthday : 1983-02-01 # nickname # may contain a string or a list of strings Nickname : myNick # organisation # format: # Organisation : company # or # Organisation : # - company1 # - company2 # or # Organisation : # - # - company # - unit Organisation : Example Company # organisation title and role # every entry may contain a string or a list of strings # # title at organisation # example usage: research scientist Title : research scientist # role at organisation # example usage: project leader Role : Project leader # phone numbers # format: # Phone: # type1, type2: number # type3: # - number1 # - number2 # custom: number # allowed types: # vcard 3.0: At least one of bbs, car, cell, fax, home, isdn, msg, modem, # pager, pcs, pref, video, voice, work # vcard 4.0: At least one of home, work, pref, text, voice, fax, cell, video, # pager, textphone # Alternatively you may use a single custom label (only letters). # But beware, that not all address book clients will support custom labels. Phone : cell : 0152 12345678 work : 090 87654321 # email addresses # format like phone numbers above # allowed types: # vcard 3.0: At least one of home, internet, pref, work, x400 # vcard 4.0: At least one of home, internet, pref, work # Alternatively you may use a single custom label (only letters). Email : work : paula.smith@example.com # post addresses # allowed types: # vcard 3.0: At least one of dom, intl, home, parcel, postal, pref, work # vcard 4.0: At least one of home, pref, work # Alternatively you may use a single custom label (only letters). Address : home : Box : Extended : Street : Mainstreet 123 Code : 31415 City : A City Region : Region Country : Country # categories or tags # format: # Categories : single category # or # Categories : # - category1 # - category2 Categories : a single one # web pages # may contain a string or a list of strings Webpage : http://example.com # private objects # define your own private objects in the vcard section of your khard.conf file # these objects are stored with a leading "X-" before the object name in the # vcard files. # every entry may contain a string or a list of strings Private : Jabber : paula@jabber.org Skype : sky_paula Twitter : twi_paula # notes # may contain a string or a list of strings # for multi-line notes use: # Note : | # line one # line two Note : | first line second line khard-0.19.1/test/fixture/test.abook/000077500000000000000000000000001453070076200174155ustar00rootroot00000000000000khard-0.19.1/test/fixture/test.abook/contact1.vcf000077700000000000000000000000001453070076200255352../vcards/contact1.vcfustar00rootroot00000000000000khard-0.19.1/test/fixture/test.abook/contact2.vcf000077700000000000000000000000001453070076200255372../vcards/contact2.vcfustar00rootroot00000000000000khard-0.19.1/test/fixture/test.abook/text-bday.vcf000077700000000000000000000000001453070076200261072../vcards/text-bday.vcfustar00rootroot00000000000000khard-0.19.1/test/fixture/vcards/000077500000000000000000000000001453070076200166265ustar00rootroot00000000000000khard-0.19.1/test/fixture/vcards/altid.vcf000066400000000000000000000004211453070076200204200ustar00rootroot00000000000000BEGIN:VCARD VERSION:4.0 UID:altid FN:altid N;ALTID=1:representation;one;;; N;ALTID=1:representation;two;;; NOTE:RFC6350 requires N to have cardinality <=1 but allows alternative repr esentations to be included if they are linked by the ALTID parameter. END:VCARD khard-0.19.1/test/fixture/vcards/category.vcf000066400000000000000000000001601453070076200211400ustar00rootroot00000000000000BEGIN:VCARD VERSION:4.0 FN:contact with category EMAIL:foo@example.org CATEGORIES:bar UID:cat1 END:VCARD khard-0.19.1/test/fixture/vcards/contact1.vcf000066400000000000000000000002071453070076200210410ustar00rootroot00000000000000BEGIN:VCARD VERSION:4.0 FN:second contact UID:testuid1 BDAY:20180120 EMAIL;TYPE=home:user@example.com TEL:0123456789 END:VCARD khard-0.19.1/test/fixture/vcards/contact2.vcf000066400000000000000000000001051453070076200210370ustar00rootroot00000000000000BEGIN:VCARD VERSION:4.0 FN:third contact UID:testuid2 END:VCARD khard-0.19.1/test/fixture/vcards/individual.vcf000066400000000000000000000002061453070076200214540ustar00rootroot00000000000000BEGIN:VCARD VERSION:4.0 UID:18F098B5-7383-4FD6-B482-48F2181D73AA N:Coyote;Wile;E.;; FN:Wile E. Coyote ORG:ACME Inc.; END:VCARD khard-0.19.1/test/fixture/vcards/issue249.vcf000066400000000000000000000000771453070076200207210ustar00rootroot00000000000000BEGIN:VCARD VERSION:3.0 UID:issue249 FN:Foo Bar END:VCARD khard-0.19.1/test/fixture/vcards/joe.vcf000066400000000000000000000003101453070076200200750ustar00rootroot00000000000000BEGIN:VCARD VERSION:4.0 UID:6exhjr32bt783wwlr9u0sr8lfqse5x7zqc8y FN:Joe Citizen N:Citizen;Joe;;; NICKNAME:horrible_human_being EMAIL;TYPE=pref:jcitizen@foo.com REV:20200411T072429Z END:VCARD khard-0.19.1/test/fixture/vcards/labels.vcf000066400000000000000000000002111453070076200205620ustar00rootroot00000000000000BEGIN:VCARD VERSION:4.0 UID:51953f58-237e-429a-a271-cb47c026a895 FN:labeled guy item1.ORG:Test Inc item1.X-ABLabel:Work END:VCARD khard-0.19.1/test/fixture/vcards/minimal.vcf000066400000000000000000000000711453070076200207520ustar00rootroot00000000000000BEGIN:VCARD VERSION:4.0 FN:minimal contact END:VCARD khard-0.19.1/test/fixture/vcards/nickname.vcf000066400000000000000000000001731453070076200211140ustar00rootroot00000000000000BEGIN:VCARD VERSION:3.0 UID:issue251part1 N:Smith;Michael;;; NICKNAME:Mike EMAIL;TYPE=pref:ms@example.org END:VCARD khard-0.19.1/test/fixture/vcards/no-nickname.vcf000066400000000000000000000001511453070076200215220ustar00rootroot00000000000000BEGIN:VCARD VERSION:3.0 UID:issue251part2 N:Jones;Mike;;; EMAIL;TYPE=pref:mj@example.org END:VCARD khard-0.19.1/test/fixture/vcards/org.vcf000066400000000000000000000001671453070076200201210ustar00rootroot00000000000000BEGIN:VCARD VERSION:4.0 UID:429A43AB-52F2-4714-AA62-077528A12464 KIND:org FN:ACME Inc. ORG:ACME Inc.; END:VCARD khard-0.19.1/test/fixture/vcards/photov3.vcf000066400000000000000000000007301453070076200207300ustar00rootroot00000000000000BEGIN:VCARD VERSION:3.0 UID:photov3 FN:with photo v3 NOTE:From the RFC: ENCODING must be "b" (which enforces base64 encoded data)\, TYPE may be present\, but if it is present it must be a valid IANA image type. The value can be the image data or an uri. PHOTO;ENCODING=b;TYPE=PNG:iVBORw0KGgoAAAANSUhEUgAAAAsAAAALCAQAAAADpb+tAA AAQklEQVQI122PQQ4AMAjCKv//Mzs4M0zmRYKkamEwWQVoRJogk4PuRoOoMC/EK8nYb+l08 WGvSxKlNHO5kxnp/WXrAzsSERN1N6q5AAAAAElFTkSuQmCC END:VCARD khard-0.19.1/test/fixture/vcards/photov4.vcf000066400000000000000000000005521453070076200207330ustar00rootroot00000000000000BEGIN:VCARD VERSION:4.0 UID:photov4 FN:with photo v4 NOTE:The RFC6350 for vCard 4.0 specifies that the value for PHOTO should be a single uri. PHOTO:data:image/png;base64\,iVBORw0KGgoAAAANSUhEUgAAAAsAAAALCAQAAAADpb+ tAAAAQklEQVQI122PQQ4AMAjCKv//Mzs4M0zmRYKkamEwWQVoRJogk4PuRoOoMC/EK8nYb+ l08WGvSxKlNHO5kxnp/WXrAzsSERN1N6q5AAAAAElFTkSuQmCC END:VCARD khard-0.19.1/test/fixture/vcards/post.vcf000066400000000000000000000002321453070076200203100ustar00rootroot00000000000000BEGIN:VCARD VERSION:4.0 FN:With post address ADR;TYPE=home:PostBox;Ext;Main Street 1;The City;SomeState;00000;HomeCountry UID:postcontact END:VCARD khard-0.19.1/test/fixture/vcards/tel-value-uri.vcf000066400000000000000000000002231453070076200220160ustar00rootroot00000000000000BEGIN:VCARD VERSION:3.0 UID:bf3lycta2gmsk1ts57owath965h38709zoyu FN:bug 195 REV:20180923T191324Z TEL;TYPE=cell;VALUE=URI:67545678 END:VCARD khard-0.19.1/test/fixture/vcards/text-bday.vcf000066400000000000000000000001411453070076200212230ustar00rootroot00000000000000BEGIN:VCARD VERSION:4.0 FN:text birthday UID:testuid3 BDAY;VALUE=text:circa 1800 END:VCARD khard-0.19.1/test/fixture/vcards/unparsable.vcf000066400000000000000000000001001453070076200214510ustar00rootroot00000000000000BEGIN:VCARD VERSION:4.0 FN:second contact with minimal Vcard khard-0.19.1/test/helpers.py000066400000000000000000000075671453070076200157110ustar00rootroot00000000000000"""Helper functions for the tests.""" # pylint: disable=invalid-name import contextlib import io import os import shutil import tempfile from unittest import mock import vobject from khard import address_book from khard import carddav_object def vCard(**kwargs): """Create a simple vobject.vCard for tests.""" vcard = vobject.vCard() if 'fn' not in kwargs: kwargs['fn'] = 'Test vCard' if 'version' not in kwargs: kwargs['version'] = '3.0' for key, value in kwargs.items(): vcard.add(key.upper()).value = value return vcard def TestVCardWrapper(**kwargs): """Create a simple VCardWrapper for tests.""" return carddav_object.VCardWrapper(vCard(**kwargs)) def TestYAMLEditable(**kwargs): """Create a simple YAMLEditable for tests.""" return carddav_object.YAMLEditable(vCard(**kwargs)) def TestCarddavObject(**kwargs): """Create a siple CarddavObject for tests.""" return carddav_object.CarddavObject(vCard(**kwargs), None, None) def mock_stream(name="stdout"): """A context manager to replace a stdio stream with a string buffer. >>> with mock_stream() as s: >>> print("hello world") >>> assert s.getvalue() == "hello world" >>> with mock_stream("stderr") as e: >>> print("hallo error", file=sys.stderr) >>> assert e.getvalue() == "hello error" """ stream = io.StringIO() context_manager = mock.patch('sys.'+name, stream) context_manager.getvalue = stream.getvalue return context_manager def load_contact(path, abook=None): """Load a contact from the fixture directory. :param str path: the file name (full, relative to cwd or the fixture dir) :param AddressBook abook: :returns CarddavObject: """ if not os.path.exists(path): path = os.path.join("test/fixture/vcards", path) return carddav_object.CarddavObject.from_file(abook, path) class TmpAbook: """Context manager to create a temporary address book folder""" def __init__(self, vcards, name="tmp"): self.vcards = vcards self.name = name def __enter__(self): self.tempdir = tempfile.TemporaryDirectory() for card in self.vcards: shutil.copy(self._card_path(card), self.tempdir.name) return address_book.VdirAddressBook(self.name, self.tempdir.name) def __exit__(self, _a, _b, _c): self.tempdir.cleanup() @staticmethod def _card_path(card): if os.path.exists(card): return card return os.path.join("test/fixture/vcards", card) class TmpConfig(contextlib.ContextDecorator): """Context manager to create a temporary khard configuration. The given vcards will be copied to the only address book in the configuration which will be called "tmp". """ def __init__(self, vcards): self.tempdir = None self.config = None self.vcards = vcards self.mock = None def __enter__(self): self.tempdir = tempfile.TemporaryDirectory() for card in self.vcards: shutil.copy(self._card_path(card), self.tempdir.name) with tempfile.NamedTemporaryFile("w", delete=False) as config: config.write("""[general] editor = editor merge_editor = merge_editor [addressbooks] [[tmp]] path = {} """.format(self.tempdir.name)) self.config = config self.mock = mock.patch.dict('os.environ', KHARD_CONFIG=config.name) self.mock.start() return self def __exit__(self, _a, _b, _c): self.mock.stop() os.unlink(self.config.name) self.tempdir.cleanup() @staticmethod def _card_path(card): if os.path.exists(card): return card return os.path.join("test/fixture/vcards", card) khard-0.19.1/test/test_actions.py000066400000000000000000000026441453070076200167350ustar00rootroot00000000000000"""Tests for the action class""" # pylint: disable=missing-docstring import unittest from khard import actions action = 'list' alias = 'ls' unknown = 'this is not an action or an alias' class Action(unittest.TestCase): def test_get_action_resolves_aliases(self): self.assertEqual(action, actions.Actions.get_action(alias)) def test_get_action_returns_none_for_actions(self): self.assertIsNone(actions.Actions.get_action(action)) def test_get_action_returns_none_for_unknown(self): self.assertIsNone(actions.Actions.get_action(unknown)) def test_get_aliases_reverse_resolves_aliases(self): self.assertEqual([alias], actions.Actions.get_aliases(action)) def test_get_aliases_throws_keyerror_for_aliases(self): with self.assertRaises(KeyError): actions.Actions.get_aliases(alias) def test_get_aliases_throws_keyerror_for_unknown(self): with self.assertRaises(KeyError): actions.Actions.get_aliases(unknown) def test_get_actions_returns_actions(self): self.assertIn(action, actions.Actions.get_actions()) def test_get_actions_does_not_return_aliases(self): self.assertNotIn(alias, actions.Actions.get_actions()) def test_get_all_returns_actions(self): self.assertIn(action, actions.Actions.get_all()) def test_get_all_returns_aliases(self): self.assertIn(alias, actions.Actions.get_all()) khard-0.19.1/test/test_address_book.py000066400000000000000000000166711453070076200177410ustar00rootroot00000000000000"""Tests for the address book classes.""" # pylint: disable=missing-docstring import os import unittest from unittest import mock from khard import address_book, query from .helpers import TmpAbook class _AddressBook(address_book.AddressBook): """Class for testing the abstract AddressBook base class.""" def load(self, query=None): pass class AbstractAddressBookSearch(unittest.TestCase): """Tests for khard.address_book.AddressBook.search()""" def test_search_will_trigger_load_if_not_loaded(self): abook = _AddressBook('test') load_mock = mock.Mock() abook.load = load_mock list(abook.search(query.AnyQuery())) load_mock.assert_called_once() def test_search_will_not_trigger_load_if_loaded(self): abook = _AddressBook('test') load_mock = mock.Mock() abook.load = load_mock abook._loaded = True list(abook.search(query.AnyQuery())) load_mock.assert_not_called() def test_search_passes_query_to_load(self): abook = _AddressBook('test') self.assertFalse(abook._loaded) load_mock = mock.Mock() abook.load = load_mock list(abook.search(query.AnyQuery())) load_mock.assert_called_once_with(query.AnyQuery()) class AddressBookCompareUids(unittest.TestCase): def test_different_strings(self): uid1 = 'abc' uid2 = 'xyz' expected = 0 actual = address_book.AddressBook._compare_uids(uid1, uid2) self.assertEqual(actual, expected) def test_two_simple_strings(self): uid1 = 'abcdef' uid2 = 'abcxyz' expected = 3 actual = address_book.AddressBook._compare_uids(uid1, uid2) self.assertEqual(actual, expected) def test_no_error_on_equal_strings(self): uid = 'abcdefghij' expected = len(uid) actual = address_book.AddressBook._compare_uids(uid, uid) self.assertEqual(actual, expected) class VcardAddressBookLoad(unittest.TestCase): def test_vcards_without_uid_generate_a_warning(self): abook = address_book.VdirAddressBook('test', 'test/fixture/minimal.abook') with self.assertLogs(level='WARNING') as cm: abook.load() messages = ['WARNING:khard.address_book:Card minimal contact from ' 'address book test has no UID and will not be ' 'available.'] self.assertListEqual(cm.output, messages) def test_loading_vcards_from_disk(self): abook = address_book.VdirAddressBook('test', 'test/fixture/test.abook') # At this point we do not really care about the type of abook.contacts, # it could be a list or dict or set or whatever. self.assertEqual(len(abook.contacts), 0) abook.load() self.assertEqual(len(abook.contacts), 3) def test_search_in_source_files_only_loads_matching_cards(self): abook = address_book.VdirAddressBook('test', 'test/fixture/test.abook') abook.load(query=query.TermQuery('second'), search_in_source_files=True) self.assertEqual(len(abook.contacts), 1) def test_loading_unparsable_vcard_fails(self): abook = address_book.VdirAddressBook('test', 'test/fixture/broken.abook') with self.assertRaises(address_book.AddressBookParseError): with self.assertLogs(level='ERROR'): abook.load() def test_unparsable_files_can_be_skipped(self): abook = address_book.VdirAddressBook( 'test', 'test/fixture/broken.abook', skip=True) with self.assertLogs(level='WARNING') as cm: abook.load() self.assertEqual(cm.output[0], 'WARNING:khard.carddav_object:Filtering some problematic tags ' 'from test/fixture/broken.abook/unparsable.vcf') # FIXME Remove this regex assert when either # https://github.com/eventable/vobject/issues/156 is closed or we drop # support for python 3.6 self.assertRegex(cm.output[1], 'ERROR:khard.address_book:Error: Could not parse file ' 'test/fixture/broken.abook/unparsable.vcf\n' 'At line [35]: Component VCARD was never closed') self.assertEqual(cm.output[2], 'WARNING:khard.address_book:1 of 1 vCard files of address book ' 'test could not be parsed.') @mock.patch.dict("os.environ", clear=True) def test_do_not_expand_env_var_that_is_unset(self): # Unset env vars shouldn't expand. with self.assertRaises(NotADirectoryError): address_book.VdirAddressBook( "test", "test/fixture/test.abook${}".format("KHARD_FOO")) @mock.patch.dict("os.environ", KHARD_FOO="") def test_expand_env_var_that_is_empty(self): # Env vars set to empty string should expand to empty string. abook = address_book.VdirAddressBook( "test", "test/fixture/test.abook${}".format("KHARD_FOO")) self.assertEqual(abook.path, "test/fixture/test.abook") @mock.patch.dict("os.environ", KHARD_FOO="test/fixture") def test_expand_env_var_that_is_nonempty(self): # Env vars set to nonempty string should expand appropriately. abook = address_book.VdirAddressBook( "test", "${}/test.abook".format("KHARD_FOO")) self.assertEqual(abook.path, "test/fixture/test.abook") class VcardAddressBookSearch(unittest.TestCase): @staticmethod def _search(query): with TmpAbook(["contact1.vcf", "contact2.vcf"]) as abook: return list(abook.search(query)) def test_uid_query(self): q = query.FieldQuery("uid", "testuid1") l = self._search(q) self.assertEqual(len(l), 1) self.assertEqual(l[0].uid, 'testuid1') def test_term_query(self): q = query.TermQuery("testuid1") l = self._search(q) self.assertEqual(len(l), 1) self.assertEqual(l[0].uid, 'testuid1') def test_term_query_matching(self): q = query.TermQuery("second contact") l = self._search(q) self.assertEqual(len(l), 1) self.assertEqual(l[0].uid, 'testuid1') def test_term_query_failing(self): q = query.TermQuery("this does not match") l = self._search(q) self.assertEqual(len(l), 0) def test_copied_from_merge_test_1(self): q = query.TermQuery("second") l = self._search(q) self.assertEqual(len(l), 1) self.assertEqual(l[0].uid, 'testuid1') def test_copied_from_merge_test_2(self): q = query.TermQuery("third") l = self._search(q) self.assertEqual(len(l), 1) self.assertEqual(l[0].uid, 'testuid2') class AddressBookGetShortUidDict(unittest.TestCase): def test_uniqe_uid_also_reslts_in_shortend_uid_in_short_uid_dict(self): contacts = {'uid123': None} abook = _AddressBook('test') abook.contacts = contacts abook._loaded = True short_uids = abook.get_short_uid_dict() self.assertEqual(len(short_uids), 1) short_uid, contact = short_uids.popitem() self.assertEqual(short_uid, 'u') class ReportedBugs(unittest.TestCase): def test_issue_159_uid_search_doesnt_return_items_twice(self): # This was the first half of bug report #159. abook = address_book.VdirAddressBook('test', 'test/fixture/test.abook') c = abook.search(query.TermQuery('testuid1')) self.assertEqual(len(list(c)), 1) khard-0.19.1/test/test_carddav_object.py000066400000000000000000000041501453070076200202210ustar00rootroot00000000000000"""Tests for the CarddavObject class from the carddav module.""" # pylint: disable=missing-docstring import base64 import datetime import unittest from unittest import mock from khard.carddav_object import CarddavObject class CarddavObjectFormatDateObject(unittest.TestCase): def test_format_date_object_will_not_touch_strings(self): expected = 'untouched string' actual = CarddavObject._format_date_object(expected, False) self.assertEqual(actual, expected) def test_format_date_object_with_simple_date_object(self): d = datetime.datetime(2018, 2, 13) actual = CarddavObject._format_date_object(d, False) self.assertEqual(actual, '2018-02-13') def test_format_date_object_with_simple_datetime_object(self): d = datetime.datetime(2018, 2, 13, 0, 38, 31) with mock.patch('time.timezone', -7200): actual = CarddavObject._format_date_object(d, False) self.assertEqual(actual, '2018-02-13T00:38:31+02:00') def test_format_date_object_with_date_1900(self): d = datetime.datetime(1900, 2, 13) actual = CarddavObject._format_date_object(d, False) self.assertEqual(actual, '--02-13') class AltIds(unittest.TestCase): def test_altids_are_read(self): card = CarddavObject.from_file(None, 'test/fixture/vcards/altid.vcf') expected = 'one representation' self.assertEqual(expected, card.get_first_name_last_name()) class Photo(unittest.TestCase): """Tests related to the PHOTO property of vCards""" PNG_HEADER = b'\x89PNG\r\n\x1a\n' def test_parsing_base64_ecoded_photo_vcard_v3(self): c = CarddavObject.from_file(None, 'test/fixture/vcards/photov3.vcf') self.assertEqual(c.vcard.photo.value[:8], self.PNG_HEADER) def test_parsing_base64_ecoded_photo_vcard_v4(self): c = CarddavObject.from_file(None, 'test/fixture/vcards/photov4.vcf') uri_stuff, data = c.vcard.photo.value.split(',') self.assertEqual(uri_stuff, 'data:image/png;base64') data = base64.decodebytes(data.encode()) self.assertEqual(data[:8], self.PNG_HEADER) khard-0.19.1/test/test_cli.py000066400000000000000000000133441453070076200160430ustar00rootroot00000000000000"""Tests for the cli module""" from argparse import ArgumentTypeError import tempfile import unittest from unittest import mock from khard import cli from khard import query from .helpers import mock_stream class TestFieldsArgument(unittest.TestCase): def test_works_when_choices_match(self): t = cli.FieldsArgument("a", "b") actual = t("a,b") expected = ["a", "b"] self.assertListEqual(actual, expected) def test_raises_exception_when_choices_dont_match(self): t = cli.FieldsArgument("a", "b") with self.assertRaises(ArgumentTypeError): t("a,c") def test_case_does_not_matter(self): t = cli.FieldsArgument("a", "b") actual = t("a,B") expected = ["a", "b"] self.assertListEqual(actual, expected) def test_only_first_component_must_match_choices_with_nested(self): t = cli.FieldsArgument("a", "b", nested=True) actual = t("a.c,b") expected = ["a.c", "b"] self.assertListEqual(actual, expected) @mock.patch.dict('os.environ', KHARD_CONFIG='test/fixture/minimal.conf') class TestParseArgs(unittest.TestCase): foo = query.TermQuery("foo") bar = query.TermQuery("bar") baz = query.TermQuery("baz") uid = query.FieldQuery("uid", "foo") def test_normal_search_terms_create_term_queries(self): expected = self.foo args, _config = cli.parse_args(['list', 'foo']) actual = args.search_terms self.assertEqual(expected, actual) def test_uid_options_create_uid_queries(self): expected = self.uid args, _config = cli.parse_args(['list', '--uid=foo']) actual = args.search_terms self.assertEqual(expected, actual) def test_multible_search_terms_generate_and_queries(self): expected = query.AndQuery(self.foo, self.bar) args, _config = cli.parse_args(['list', 'foo', 'bar']) actual = args.search_terms self.assertEqual(expected, actual) def test_no_search_terms_create_an_any_query(self): expected = query.AnyQuery() args, _config = cli.parse_args(['list']) actual = args.search_terms self.assertEqual(expected, actual) def test_target_search_terms_are_typed(self): args, _config = cli.parse_args(['merge', '--target=foo', 'bar']) self.assertEqual(self.foo, args.target_contact) self.assertEqual(self.bar, args.source_search_terms) def test_second_target_search_term_overrides_first(self): args, _config = cli.parse_args(['merge', '--target=foo', '--target=bar', 'baz']) self.assertEqual(self.bar, args.target_contact) self.assertEqual(self.baz, args.source_search_terms) def test_target_uid_option_creates_uid_queries(self): args, _config = cli.parse_args(['merge', '--target-uid=foo', 'bar']) self.assertEqual(self.uid, args.target_contact) self.assertEqual(self.bar, args.source_search_terms) def test_uid_option_is_combined_with_search_terms_for_merge_command(self): args, _config = cli.parse_args(['merge', '--uid=foo', '--target=bar']) self.assertEqual(self.uid, args.source_search_terms) self.assertEqual(self.bar, args.target_contact) def test_uid_and_free_search_terms_produce_a_conflict(self): with self.assertRaises(SystemExit): with mock_stream("stderr"): # just silence stderr cli.parse_args(['list', '--uid=foo', 'bar']) def test_target_uid_and_free_target_search_terms_produce_a_conflict(self): with self.assertRaises(SystemExit): with mock_stream("stderr"): # just silence stderr cli.parse_args(['merge', '--target-uid=foo', '--target=bar']) def test_no_target_specification_results_in_an_any_query(self): expected = query.AnyQuery() args, _config = cli.parse_args(['merge']) actual = args.target_contact self.assertEqual(expected, actual) def test_add_email_defaults_to_from_lowercase(self): args, _config = cli.parse_args(["add-email"]) actual = args.headers self.assertEqual(["from"], actual) def test_add_email_from_field(self): args, _config = cli.parse_args(["add-email", "-H", "from"]) actual = args.headers self.assertEqual(["from"], actual) def test_add_email_another_field(self): args, _config = cli.parse_args(["add-email", "-H", "OtHer"]) actual = args.headers self.assertEqual(["other"], actual) def test_add_email_multiple_headers_separate_args_takes_last(self): args, _config = cli.parse_args( ["add-email", "-H", "OtHer", "-H", "myfield"]) actual = args.headers self.assertEqual(["myfield"], actual) def test_add_email_multiple_headers_comma_separated(self): args, _config = cli.parse_args( ["add-email", "-H", "OtHer,myfield,from"]) actual = args.headers self.assertEqual(["other", "myfield", "from"], actual) def test_exit_user_friendly_without_config_file(self): with self.assertRaises(SystemExit): cli.parse_args(["-c", "/this file should hopefully never exist."]) def test_exit_user_friendly_without_contacts_folder(self): with tempfile.NamedTemporaryFile("w", delete=False) as config: config.write("""[general] editor = editor merge_editor = merge_editor [addressbooks] [[tmp]] path = /this file should hopefully never exist. """) config.flush() with self.assertRaises(SystemExit): cli.init(["-c", config.name, "ls"]) khard-0.19.1/test/test_command_line_interface.py000066400000000000000000000560551453070076200217470ustar00rootroot00000000000000"""Test some features of the command line interface of khard. This also contains some "end to end" tests. That means some very high level calls to the main function and a check against the output. These might later be converted to proper "unit" tests. """ # pylint: disable=missing-docstring # TODO We are still missing high level tests for the merge subcommand. It # depends heavily on user interaction and is hard to test in its current form. import io import pathlib import shutil import tempfile import unittest from unittest import mock from ruamel.yaml import YAML from khard import cli from khard import config from khard.helpers.interactive import Editor from khard import khard from .helpers import TmpConfig, mock_stream def run_main(*args): """Run the khard.main() method with mocked stdout""" with mock_stream() as stdout: khard.main(args) return stdout @mock.patch('sys.argv', ['TESTSUITE']) class HelpOption(unittest.TestCase): def _test(self, args, expect): """Test the command line args and compare the prefix of the output.""" with mock_stream() as stdout: with self.assertRaises(SystemExit): cli.parse_args(args) text = stdout.getvalue() self.assertRegex(text, expect) def test_global_help(self): self._test(['-h'], r'^usage: TESTSUITE \[-h\]') @mock.patch.dict('os.environ', KHARD_CONFIG='test/fixture/minimal.conf') def test_subcommand_help(self): self._test(['list', '-h'], r'^usage: TESTSUITE list \[-h\]') def test_global_help_with_subcommand(self): self._test(['-h', 'list'], r'^usage: TESTSUITE \[-h\]') @mock.patch.dict('os.environ', KHARD_CONFIG='test/fixture/minimal.conf') class ListingCommands(unittest.TestCase): """Tests for subcommands that simply list stuff.""" def test_simple_ls_without_options(self): stdout = run_main("list") text = [l.strip() for l in stdout.getvalue().splitlines()] expected = [ "Address book: foo", "Index Name Phone " "Email Uid", "1 second contact voice: 0123456789 " "home: user@example.com testuid1", "2 text birthday " " testuid3", "3 third contact " " testuid2"] self.assertListEqual(text, expected) def test_ls_fields_like_email(self): stdout = run_main('ls', '-p', '-F', 'emails.home.0,name') text = stdout.getvalue().splitlines() expected = [ "user@example.com\tsecond contact", "\ttext birthday", "\tthird contact", ] self.assertListEqual(text, expected) @mock.patch.dict('os.environ', LC_ALL='C') def test_simple_bdays_without_options(self): stdout = run_main('birthdays') text = [line.strip() for line in stdout.getvalue().splitlines()] expect = ["Name Birthday", "text birthday circa 1800", "second contact 01/20/18"] self.assertListEqual(text, expect) def test_parsable_bdays(self): stdout = run_main('birthdays', '--parsable') text = stdout.getvalue().splitlines() expect = ["circa 1800\ttext birthday", "2018.01.20\tsecond contact"] self.assertListEqual(text, expect) def test_simple_email_without_options(self): stdout = run_main('email') text = [line.strip() for line in stdout.getvalue().splitlines()] expect = ["Name Type E-Mail", "second contact home user@example.com"] self.assertListEqual(text, expect) def test_simple_phone_without_options(self): stdout = run_main('phone') text = [line.strip() for line in stdout.getvalue().splitlines()] expect = ["Name Type Phone", "second contact voice 0123456789"] self.assertListEqual(text, expect) def test_simple_file_without_options(self): stdout = run_main('filename') text = [line.strip() for line in stdout.getvalue().splitlines()] expect = ["test/fixture/test.abook/contact1.vcf", "test/fixture/test.abook/text-bday.vcf", "test/fixture/test.abook/contact2.vcf"] self.assertListEqual(text, expect) def test_simple_abooks_without_options(self): stdout = run_main('addressbooks') text = stdout.getvalue().strip() expect = "foo" self.assertEqual(text, expect) def test_simple_details_without_options(self): stdout = run_main('details', 'uid1') text = stdout.getvalue() # Currently the FN field is not shown with "details". self.assertIn('Address book: foo', text) self.assertIn('UID: testuid1', text) def test_order_of_search_term_does_not_matter(self): stdout1 = run_main('list', 'second', 'contact') stdout2 = run_main('list', 'contact', 'second') text1 = [l.strip() for l in stdout1.getvalue().splitlines()] text2 = [l.strip() for l in stdout2.getvalue().splitlines()] expected = [ "Address book: foo", "Index Name Phone " "Email Uid", "1 second contact voice: 0123456789 " "home: user@example.com testuid1"] self.assertListEqual(text1, expected) self.assertListEqual(text2, expected) def test_case_of_search_terms_does_not_matter(self): stdout1 = run_main('list', 'second', 'contact') stdout2 = run_main('list', 'SECOND', 'CONTACT') text1 = [l.strip() for l in stdout1.getvalue().splitlines()] text2 = [l.strip() for l in stdout2.getvalue().splitlines()] expected = [ "Address book: foo", "Index Name Phone " "Email Uid", "1 second contact voice: 0123456789 " "home: user@example.com testuid1"] self.assertListEqual(text1, expected) self.assertListEqual(text2, expected) def test_regex_special_chars_are_not_special(self): with mock_stream() as stdout: with self.assertRaises(SystemExit): khard.main(['list', 'uid.']) self.assertEqual(stdout.getvalue(), "Found no contacts\n") def test_display_post_address(self): with TmpConfig(["post.vcf"]): stdout = run_main('postaddress') text = [line.rstrip() for line in stdout.getvalue().splitlines()] expected = [ 'Name Type Post address', 'With post address home Main Street 1', ' PostBox Ext', ' 00000 The City', ' SomeState, HomeCountry'] self.assertListEqual(expected, text) def test_email_lists_only_contacts_with_emails(self): with TmpConfig(["contact1.vcf", "contact2.vcf"]): stdout = run_main("email") text = [line.strip() for line in stdout.getvalue().splitlines()] expect = ["Name Type E-Mail", "second contact home user@example.com"] self.assertListEqual(expect, text) def test_phone_lists_only_contacts_with_phone_nubers(self): with TmpConfig(["contact1.vcf", "contact2.vcf"]): stdout = run_main("phone") text = [line.strip() for line in stdout.getvalue().splitlines()] expect = ["Name Type Phone", "second contact voice 0123456789"] self.assertListEqual(expect, text) def test_postaddr_lists_only_contacts_with_post_addresses(self): with TmpConfig(["contact1.vcf", "post.vcf"]): stdout = run_main("postaddress") text = [line.rstrip() for line in stdout.getvalue().splitlines()] expect = ['Name Type Post address', 'With post address home Main Street 1', ' PostBox Ext', ' 00000 The City', ' SomeState, HomeCountry'] self.assertListEqual(expect, text) def test_mixed_kinds(self): with TmpConfig(["org.vcf", "individual.vcf"]): stdout = run_main("list", "organisations:acme") text = [line.rstrip() for line in stdout.getvalue().splitlines()] expected = [ "Address book: tmp", "Index Name Phone Email Kind Uid", "1 ACME Inc. organisation 4", "2 Wile E. Coyote individual 1"] self.assertListEqual(expected, text) def test_non_individual_kind(self): with TmpConfig(["org.vcf"]): stdout = run_main("list") text = [line.rstrip() for line in stdout.getvalue().splitlines()] expected = [ "Address book: tmp", "Index Name Phone Email Kind Uid", "1 ACME Inc. organisation 4"] self.assertListEqual(expected, text) class ListingCommands2(unittest.TestCase): def test_list_bug_195(self): with TmpConfig(['tel-value-uri.vcf']): stdout = run_main('list') text = [line.strip() for line in stdout.getvalue().splitlines()] expect = [ "Address book: tmp", "Index Name Phone Email Uid", "1 bug 195 cell: 67545678 b"] self.assertListEqual(text, expect) def test_list_bug_243_part_1(self): """Search for a category with the ls command""" with TmpConfig(['category.vcf']): stdout = run_main('list', 'bar') text = [line.strip() for line in stdout.getvalue().splitlines()] expect = [ "Address book: tmp", "Index Name Phone " "Email Uid", "1 contact with category " "internet: foo@example.org c", ] self.assertListEqual(text, expect) def test_list_bug_243_part_2(self): """Search for a category with the email command""" with TmpConfig(['category.vcf']): stdout = run_main('email', 'bar') text = [line.strip() for line in stdout.getvalue().splitlines()] expect = [ "Name Type E-Mail", "contact with category internet foo@example.org", ] self.assertListEqual(text, expect) def test_list_bug_251(self): "Find contacts by nickname even if a match by name exists" with TmpConfig(["test/fixture/nick.abook/nickname.vcf", "test/fixture/vcards/no-nickname.vcf"]): stdout = run_main('list', 'mike') text = [line.strip() for line in stdout.getvalue().splitlines()] expect = ['Address book: tmp', 'Index Name Phone Email ' 'Uid', '1 Michael Smith pref: ms@example.org ' 'issue251part1', '2 Mike Jones pref: mj@example.org ' 'issue251part2'] self.assertListEqual(text, expect) @mock.patch.dict('os.environ', KHARD_CONFIG='test/fixture/nick.conf') def test_email_bug_251(self): stdout = run_main('email', '--parsable', 'mike') text = [line.strip() for line in stdout.getvalue().splitlines()] expect = ["searching for 'mike' ...", "ms@example.org\tMichael Smith\tpref"] self.assertListEqual(text, expect) @mock.patch.dict('os.environ', KHARD_CONFIG='test/fixture/nick.conf') def test_email_bug_251_part2(self): stdout = run_main('email', '--parsable', 'joe') text = [line.strip() for line in stdout.getvalue().splitlines()] expect = ["searching for 'joe' ...", "jcitizen@foo.com\tJoe Citizen\tpref"] self.assertListEqual(text, expect) def test_email_bug_251_part_3(self): "Find contacts by nickname even if a match by name exists" with TmpConfig(["test/fixture/nick.abook/nickname.vcf", "test/fixture/vcards/no-nickname.vcf"]): stdout = run_main('email', '--parsable', 'mike') text = [line.strip() for line in stdout.getvalue().splitlines()] expect = ["searching for 'mike' ...", 'ms@example.org\tMichael Smith\tpref', 'mj@example.org\tMike Jones\tpref'] self.assertListEqual(text, expect) class FileSystemCommands(unittest.TestCase): """Tests for subcommands that interact with different address books.""" def setUp(self): "Create a temporary directory with two address books and a configfile." self._tmp = tempfile.TemporaryDirectory() path = pathlib.Path(self._tmp.name) self.abook1 = path / 'abook1' self.abook2 = path / 'abook2' self.abook1.mkdir() self.abook2.mkdir() self.contact = self.abook1 / 'contact.vcf' shutil.copy('test/fixture/vcards/contact1.vcf', str(self.contact)) config = path / 'conf' with config.open('w') as fh: fh.write("""[addressbooks] [[abook1]] path = {} [[abook2]] path = {}""".format(self.abook1, self.abook2)) self._patch = mock.patch.dict('os.environ', KHARD_CONFIG=str(config)) self._patch.start() def tearDown(self): self._patch.stop() self._tmp.cleanup() def test_simple_move(self): # just hide stdout with mock.patch('sys.stdout'): khard.main(['move', '-a', 'abook1', '-A', 'abook2', 'testuid1']) # The contact is moved to a filename based on the uid. target = self.abook2 / 'testuid1.vcf' # We currently only assert that the target file exists, nothing about # its contents. self.assertFalse(self.contact.exists()) self.assertTrue(target.exists()) def test_simple_copy(self): # just hide stdout with mock.patch('sys.stdout'): khard.main(['copy', '-a', 'abook1', '-A', 'abook2', 'testuid1']) # The contact is copied to a filename based on a new uid. results = list(self.abook2.glob('*.vcf')) self.assertTrue(self.contact.exists()) self.assertEqual(len(results), 1) def test_simple_remove_with_force_option(self): # just hide stdout with mock.patch('sys.stdout'): # Without the --force this asks for confirmation. khard.main(['remove', '--force', '-a', 'abook1', 'testuid1']) results = list(self.abook2.glob('*.vcf')) self.assertFalse(self.contact.exists()) self.assertEqual(len(results), 0) def test_new_contact_with_simple_user_input(self): old = len(list(self.abook1.glob('*.vcf'))) # Mock user input on stdin (yaml format). with mock.patch('sys.stdin.isatty', return_value=False): with mock.patch('sys.stdin.read', return_value='First name: foo\nLast name: bar'): # just hide stdout with mock.patch('sys.stdout'): # hide warning about missing version in vcard with self.assertLogs(level='WARNING'): khard.main(['new', '-a', 'abook1']) new = len(list(self.abook1.glob('*.vcf'))) self.assertEqual(new, old + 1) class MiscCommands(unittest.TestCase): """Tests for other subcommands.""" @mock.patch.dict('os.environ', KHARD_CONFIG='test/fixture/minimal.conf') def test_simple_show_with_yaml_format(self): stdout = run_main("show", "--format=yaml", "uid1") # This implicitly tests if the output is valid yaml. yaml = YAML(typ="base").load(stdout.getvalue()) # Just test some keys. self.assertIn('Address', yaml) self.assertIn('Birthday', yaml) self.assertIn('Email', yaml) self.assertIn('First name', yaml) self.assertIn('Last name', yaml) self.assertIn('Nickname', yaml) @mock.patch.dict('os.environ', KHARD_CONFIG='test/fixture/minimal.conf') def test_simple_edit_without_modification(self): editor = mock.Mock() editor.edit_templates = mock.Mock(return_value=None) editor.write_temp_file = Editor.write_temp_file with mock.patch('khard.khard.interactive.Editor', mock.Mock(return_value=editor)): run_main("edit", "uid1") # The editor is called with a temp file so how to we check this more # precisely? editor.edit_templates.assert_called_once() @mock.patch.dict('os.environ', KHARD_CONFIG='test/fixture/minimal.conf', EDITOR='editor') def test_edit_source_file_without_modifications(self): with mock.patch('subprocess.Popen') as popen: run_main("edit", "--format=vcard", "uid1") popen.assert_called_once_with(['editor', 'test/fixture/test.abook/contact1.vcf']) @mock.patch.dict('os.environ', KHARD_CONFIG='test/fixture/minimal.conf') class CommandLineDefaultsDoNotOverwriteConfigValues(unittest.TestCase): @staticmethod def _with_contact_table(args, **kwargs): args = cli.parse_args(args) options = '\n'.join('{}={}'.format(key, kwargs[key]) for key in kwargs) conf = config.Config(io.StringIO('[addressbooks]\n[[test]]\npath=.\n' '[contact table]\n' + options)) return cli.merge_args_into_config(args, conf) def test_group_by_addressbook(self): conf = self._with_contact_table(['list'], group_by_addressbook=True) self.assertTrue(conf.group_by_addressbook) @mock.patch.dict('os.environ', KHARD_CONFIG='test/fixture/minimal.conf') class CommandLineArgumentsOverwriteConfigValues(unittest.TestCase): @staticmethod def _merge(args): args, _conf = cli.parse_args(args) # This config file just loads all defaults from the config.spec. conf = config.Config(io.StringIO('[addressbooks]\n[[test]]\npath=.')) return cli.merge_args_into_config(args, conf) def test_sort_is_picked_up_from_arguments(self): conf = self._merge(['list', '--sort=last_name']) self.assertEqual(conf.sort, 'last_name') def test_display_is_picked_up_from_arguments(self): conf = self._merge(['list', '--display=last_name']) self.assertEqual(conf.display, 'last_name') def test_reverse_is_picked_up_from_arguments(self): conf = self._merge(['list', '--reverse']) self.assertTrue(conf.reverse) def test_group_by_addressbook_is_picked_up_from_arguments(self): conf = self._merge(['list', '--group-by-addressbook']) self.assertTrue(conf.group_by_addressbook) def test_search_in_source_is_picked_up_from_arguments(self): conf = self._merge(['list', '--search-in-source-files']) self.assertTrue(conf.search_in_source_files) class Merge(unittest.TestCase): def test_merge_with_exact_search_terms(self): with TmpConfig(["contact1.vcf", "contact2.vcf"]): with mock.patch('khard.khard.merge_existing_contacts') as merge: run_main("merge", "second", "--target", "third") merge.assert_called_once() # unpack the call arguments call = merge.mock_calls[0] name, args, kwargs = call first, second, delete = args self.assertTrue(delete) first = pathlib.Path(first.filename).name second = pathlib.Path(second.filename).name self.assertEqual('contact1.vcf', first) self.assertEqual('contact2.vcf', second) def test_merge_with_exact_uid_search_terms(self): with TmpConfig(["contact1.vcf", "contact2.vcf"]): with mock.patch('khard.khard.merge_existing_contacts') as merge: run_main("merge", "uid:testuid1", "--target", "uid:testuid2") merge.assert_called_once() # unpack the call arguments call = merge.mock_calls[0] name, args, kwargs = call first, second, delete = args self.assertTrue(delete) first = pathlib.Path(first.filename).name second = pathlib.Path(second.filename).name self.assertEqual('contact1.vcf', first) self.assertEqual('contact2.vcf', second) class AddEmail(unittest.TestCase): @TmpConfig(["contact1.vcf", "contact2.vcf"]) def test_contact_is_found_if_name_matches(self): email = [ "From: third \n", "To: anybody@example.com\n", "\n", "text\n" ] with tempfile.NamedTemporaryFile("w") as tmp: tmp.writelines(email) tmp.flush() with mock.patch("builtins.input", mock.Mock(side_effect=["y", "y", ""])): run_main("add-email", "--input-file", tmp.name) emails = khard.config.abooks.get_short_uid_dict()["testuid2"].emails self.assertEqual(emails["internet"][0], "third@example.com") @TmpConfig(["contact1.vcf", "contact2.vcf"]) def test_adding_several_email_addresses(self): email = [ "From: third \n", "To: anybody@example.com\n", "\n", "text\n" ] with tempfile.NamedTemporaryFile("w") as tmp: tmp.writelines(email) tmp.flush() with mock.patch("builtins.input", mock.Mock(side_effect=[ "y", "y", "label1", "y", "third contact", "y", "label2"])): run_main("add-email", "--headers=from,to", "--input-file", tmp.name) emails = khard.config.abooks.get_short_uid_dict()["testuid2"].emails self.assertEqual(emails["label1"][0], "third@example.com") self.assertEqual(emails["label2"][0], "anybody@example.com") @TmpConfig(["contact1.vcf", "contact2.vcf"]) def test_email_addresses_can_be_skipped(self): email = [ "From: third \n", "To: anybody@example.com\n", "\n", "text\n" ] with tempfile.NamedTemporaryFile("w") as tmp: tmp.writelines(email) tmp.flush() with mock.patch("builtins.input", lambda _: "n"): run_main("add-email", "--input-file", tmp.name) contacts = khard.config.abooks.get_short_uid_dict().values() emails1 = [c.emails for c in contacts if c.emails] emails2 = [list(e.values()) for e in emails1] emails = [eee for e in emails2 for ee in e for eee in ee] self.assertNotIn("third@example.com", emails) if __name__ == "__main__": unittest.main() khard-0.19.1/test/test_config.py000066400000000000000000000164221453070076200165410ustar00rootroot00000000000000"""Tests for the config module.""" # pylint: disable=missing-docstring import logging import os.path import tempfile import unittest import unittest.mock as mock import configobj from khard import config class LoadingConfigFile(unittest.TestCase): def test_load_non_existing_file_fails(self): filename = "I hope this file never exists" with self.assertRaises(OSError) as cm: config.Config._load_config_file(filename) self.assertTrue(str(cm.exception).startswith('Config file not found:')) def test_uses_khard_config_environment_variable(self): filename = "this is some very random string" with mock.patch.dict("os.environ", clear=True, KHARD_CONFIG=filename): with mock.patch("configobj.ConfigObj", dict): ret = config.Config._load_config_file("") self.assertEqual(ret['infile'], filename) def test_uses_xdg_config_home_environment_variable(self): prefix = "this is some very random string" with mock.patch.dict("os.environ", clear=True, XDG_CONFIG_HOME=prefix): with mock.patch("configobj.ConfigObj", dict): ret = config.Config._load_config_file("") expected = os.path.join(prefix, 'khard', 'khard.conf') self.assertEqual(ret['infile'], expected) def test_uses_config_dir_if_environment_unset(self): prefix = "this is some very random string" with mock.patch.dict("os.environ", clear=True, HOME=prefix): with mock.patch("configobj.ConfigObj", dict): ret = config.Config._load_config_file("") expected = os.path.join(prefix, '.config', 'khard', 'khard.conf') self.assertEqual(ret['infile'], expected) def test_load_empty_file_fails(self): with tempfile.NamedTemporaryFile() as name: with self.assertLogs(level=logging.ERROR): with self.assertRaises(config.ConfigError): config.Config(name) @mock.patch.dict('os.environ', EDITOR='editor', MERGE_EDITOR='meditor') def test_load_minimal_file_by_name(self): cfg = config.Config("test/fixture/minimal.conf") self.assertEqual(cfg.editor, ["editor"]) self.assertEqual(cfg.merge_editor, "meditor") class ConfigPreferredVcardVersion(unittest.TestCase): def test_default_value_is_3(self): c = config.Config("test/fixture/minimal.conf") self.assertEqual(c.preferred_vcard_version, "3.0") def test_set_preferred_version(self): c = config.Config("test/fixture/minimal.conf") c.preferred_vcard_version = "11" self.assertEqual(c.preferred_vcard_version, "11") class Defaults(unittest.TestCase): def test_debug_defaults_to_false(self): c = config.Config("test/fixture/minimal.conf") self.assertFalse(c.debug) def test_default_action_defaults_to_none(self): c = config.Config("test/fixture/minimal.conf") self.assertIsNone(c.default_action) def test_reverse_defaults_to_false(self): c = config.Config("test/fixture/minimal.conf") self.assertFalse(c.reverse) def test_group_by_addressbook_defaults_to_false(self): c = config.Config("test/fixture/minimal.conf") self.assertFalse(c.group_by_addressbook) def test_show_nicknames_defaults_to_false(self): c = config.Config("test/fixture/minimal.conf") self.assertFalse(c.show_nicknames) def test_show_uids_defaults_to_true(self): c = config.Config("test/fixture/minimal.conf") self.assertTrue(c.show_uids) def test_show_kinds_defaults_to_false(self): c = config.Config("test/fixture/minimal.conf") self.assertFalse(c.show_kinds) def test_sort_defaults_to_first_name(self): c = config.Config("test/fixture/minimal.conf") self.assertEqual(c.sort, 'first_name') def test_display_defaults_to_first_name(self): c = config.Config("test/fixture/minimal.conf") self.assertEqual(c.display, 'first_name') def test_localize_dates_defaults_to_true(self): c = config.Config("test/fixture/minimal.conf") self.assertTrue(c.localize_dates) def test_preferred_phone_number_type_defaults_to_pref(self): c = config.Config("test/fixture/minimal.conf") self.assertListEqual(c.preferred_phone_number_type, ['pref']) def test_preferred_email_address_type_defaults_to_pref(self): c = config.Config("test/fixture/minimal.conf") self.assertListEqual(c.preferred_email_address_type, ['pref']) def test_private_objects_defaults_to_empty(self): c = config.Config("test/fixture/minimal.conf") self.assertListEqual(c.private_objects, []) def test_search_in_source_files_defaults_to_false(self): c = config.Config("test/fixture/minimal.conf") self.assertFalse(c.search_in_source_files) def test_skip_unparsable_defaults_to_false(self): c = config.Config("test/fixture/minimal.conf") self.assertFalse(c.skip_unparsable) def test_preferred_version_defaults_to_3(self): c = config.Config("test/fixture/minimal.conf") self.assertEqual(c.preferred_vcard_version, '3.0') @mock.patch.dict('os.environ', clear=True) def test_editor_defaults_to_vim(self): c = config.Config("test/fixture/minimal.conf") self.assertEqual(c.editor, ['vim']) @mock.patch.dict('os.environ', clear=True) def test_merge_editor_defaults_to_vimdiff(self): c = config.Config("test/fixture/minimal.conf") self.assertEqual(c.merge_editor, 'vimdiff') class Validation(unittest.TestCase): @staticmethod def _template(section, key, value): configspec = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'khard', 'data', 'config.spec') c = configobj.ConfigObj(configspec=configspec) c['general'] = {} c['vcard'] = {} c['contact table'] = {} c['addressbooks'] = {'test': {'path': '/tmp'}} c[section][key] = value return c def test_rejects_invalid_default_actions(self): action = 'this is not a valid action' conf = self._template('general', 'default_action', action) with self.assertLogs(level=logging.ERROR): with self.assertRaises(config.ConfigError): config.Config._validate(conf) def test_rejects_unparsable_editor_commands(self): editor = 'editor --option "unparsable because quotes are missing' conf = self._template('general', 'editor', editor) with self.assertLogs(level=logging.ERROR): with self.assertRaises(config.ConfigError): config.Config._validate(conf) def test_rejects_private_objects_with_strange_chars(self): obj = 'X-VCÄRD-EXTENSIÖN' conf = self._template('vcard', 'private_objects', obj) with self.assertLogs(level=logging.ERROR): with self.assertRaises(config.ConfigError): config.Config._validate(conf) def test_rejects_private_objects_starting_with_minus(self): obj = '-INVALID-' conf = self._template('vcard', 'private_objects', obj) with self.assertLogs(level=logging.ERROR): with self.assertRaises(config.ConfigError): config.Config._validate(conf) if __name__ == "__main__": unittest.main() khard-0.19.1/test/test_editor.py000066400000000000000000000075251453070076200165660ustar00rootroot00000000000000"""Tests for editing files and contacts in an external editor""" from contextlib import contextmanager import datetime import unittest from unittest import mock from khard.helpers.interactive import Editor, EditState from .helpers import mock_stream class EditFiles(unittest.TestCase): t1 = datetime.datetime(2021, 1, 1, 12, 21, 42) t2 = datetime.datetime(2021, 1, 1, 12, 21, 43) editor = Editor("edit", "merge") @staticmethod @contextmanager def _mock_popen(returncode=0): """Mock the subprocess.Popen class, set the returncode attribute of the child process object.""" child_process = mock.Mock() child_process.returncode = returncode Popen = mock.Mock(return_value=child_process) with mock.patch("subprocess.Popen", Popen) as popen: yield popen @staticmethod def _edit_files(write="changed"): """Mock function for khar.helpers.interactive.Editor.edit_files Create a function that will write the specified text to all files passed as arguments. """ def edit_files(self, *files): for f in files: with open(f, "w") as fp: fp.write(write) return edit_files def test_calls_subprocess_popen_with_editor_for_one_args(self): with self._mock_popen() as popen: with mock.patch("khard.helpers.interactive.Editor._mtime", mock.Mock(return_value=self.t1)): self.editor.edit_files("file") popen.assert_called_with(["edit", "file"]) def test_calls_subprocess_popen_with_merge_editor_for_two_args(self): with self._mock_popen() as popen: with mock.patch("khard.helpers.interactive.Editor._mtime", mock.Mock(return_value=self.t1)): self.editor.edit_files("file1", "file2") popen.assert_called_with(["merge", "file1", "file2"]) def test_failing_external_command_returns_aborted_state(self): with self._mock_popen(1): with mock.patch("khard.helpers.interactive.Editor._mtime", mock.Mock(return_value=self.t1)): actual = self.editor.edit_files("file") self.assertEqual(actual, EditState.aborted) def test_returns_state_modiefied_if_timestamp_does_change(self): with self._mock_popen(): with mock.patch("khard.helpers.interactive.Editor._mtime", mock.Mock(side_effect=[self.t1, self.t2])): actual = self.editor.edit_files("file") self.assertEqual(actual, EditState.modified) def test_returns_state_unmodiefied_if_timestamp_does_not_change(self): with self._mock_popen(): with mock.patch("khard.helpers.interactive.Editor._mtime", mock.Mock(side_effect=[self.t1, self.t1])): actual = self.editor.edit_files("file") self.assertEqual(actual, EditState.unmodified) def test_editing_templates(self): t1 = "some: yaml\ndocument: true\n" with mock.patch("khard.helpers.interactive.Editor.edit_files", self._edit_files()): actual = self.editor.edit_templates(lambda x: x, t1) self.assertEqual(actual, "changed") def test_exception_from_yaml_conversion_is_caught(self): t1 = "key: value\n" with mock.patch("khard.helpers.interactive.Editor.edit_files", self._edit_files()): with mock.patch("khard.helpers.interactive.confirm", mock.Mock(return_value=False)) as confirm: with mock_stream(): # hide stdout in test actual = self.editor.edit_templates( mock.Mock(side_effect=ValueError), t1) self.assertIsNone(actual) confirm.assert_called_once() khard-0.19.1/test/test_formatter.py000066400000000000000000000074731453070076200173050ustar00rootroot00000000000000"""Tests for the vcard formatting functions""" import unittest from vobject.vcard import Name from khard.carddav_object import CarddavObject from khard.formatter import Formatter from .helpers import vCard class FormatLabeledField(unittest.TestCase): def test_labels_are_selected_alphabetically_if_no_preferred_given(self): labeled_field = {'some': ['thing'], 'other': ['thing']} preferred = [] expected = 'other: thing' self.assertEqual(expected, Formatter.format_labeled_field( labeled_field, preferred)) def test_labels_are_selected_alphabetically_if_no_preferred_matches(self): labeled_field = {'some': ['thing'], 'other': ['thing']} preferred = ['nonexistent'] expected = 'other: thing' self.assertEqual(expected, Formatter.format_labeled_field( labeled_field, preferred)) def test_preferred_labels_are_used(self): labeled_field = {'some': ['thing'], 'other': ['thing']} preferred = ['some'] expected = 'some: thing' self.assertEqual(expected, Formatter.format_labeled_field( labeled_field, preferred)) def test_alphabetically_first_value_is_used(self): labeled_field = {'some': ['thing', 'more']} preferred = [] expected = 'some: more' self.assertEqual(expected, Formatter.format_labeled_field( labeled_field, preferred)) def test_not_only_first_char_of_label_is_used(self): preferred = [] labeled_field = {'x-foo': ['foo'], 'x-bar': ['bar']} expected = 'x-bar: bar' self.assertEqual(expected, Formatter.format_labeled_field( labeled_field, preferred)) expected = 'bar: bar' labeled_field = {'foo': ['foo'], 'bar': ['bar']} self.assertEqual(expected, Formatter.format_labeled_field( labeled_field, preferred)) class GetSpecialField(unittest.TestCase): _name = Name(family='Family', given='Given', additional='Additional', prefix='Prefix', suffix='Suffix') _vcard = CarddavObject(vCard(fn="Formatted Name", n=_name, nickname="Nickname"), None, "") def _test_name(self, fmt, nick, parsable, expected): f = Formatter(fmt, [], [], nick, parsable) actual = f.get_special_field(self._vcard, "name") self.assertEqual(expected, actual) def test_name_formatted_as_first_name_last_name(self): self._test_name(Formatter.FIRST, False, False, "Given Additional Family") def test_name_formatted_as_first_name_last_name_with_nickname(self): self._test_name(Formatter.FIRST, True, False, "Given Additional Family (Nickname: Nickname)") def test_name_formatted_as_last_name_first_name(self): self._test_name(Formatter.LAST, False, False, "Family, Given Additional") def test_name_formatted_as_last_name_first_name_with_nickname(self): self._test_name(Formatter.LAST, True, False, "Family, Given Additional (Nickname: Nickname)") def test_name_formatted_as_formatted_name(self): self._test_name(Formatter.FORMAT, False, False, "Formatted Name") def test_name_formatted_as_formatted_name_with_nickname(self): self._test_name(Formatter.FORMAT, True, False, "Formatted Name (Nickname: Nickname)") def test_parsable_overrides_nickname_with_first_formatting(self): self._test_name(Formatter.FIRST, True, True, "Given Additional Family") def test_parsable_overrides_nickname_with_last_formatting(self): self._test_name(Formatter.LAST, True, True, "Family, Given Additional") def test_parsable_overrides_nickname_with_formatted_name(self): self._test_name(Formatter.FORMAT, True, True, "Formatted Name") khard-0.19.1/test/test_helpers.py000066400000000000000000000042031453070076200167300ustar00rootroot00000000000000"""Tests for the helpers module.""" # pylint: disable=missing-docstring import unittest from khard import helpers class ConvertToYAML(unittest.TestCase): def test_colon_handling(self): result = helpers.convert_to_yaml("Note", "foo: bar", 0, 5, True) self.assertListEqual(result, ["Note : |\n foo: bar"]) def test_none_values_produce_no_output(self): result = helpers.convert_to_yaml("Note", None, 0, 5, True) self.assertListEqual(result, []) def test_empty_strings_produce_empty_values(self): result = helpers.convert_to_yaml("Note", "", 0, 5, True) self.assertListEqual(result, ["Note : "]) def test_preparing_multiple_addresses_with_same_label_for_yaml_conversion_returns_all_entries(self): input = {'home': [{'street': 'street 1', 'city': 'city1', 'code': 'zip1', 'country': ''}, {'street': 'street 2', 'city': 'city2', 'code': 'zip2', 'country': ''}]} expected = [{'Street': 'street 1', 'City': 'city1', 'Code': 'zip1', 'Country': None}, {'Street': 'street 2', 'City': 'city2', 'Code': 'zip2', 'Country': None}] actual = helpers.yaml_addresses(input, ["Street", "Code", "City", "Country"]) self.assertEqual(expected, actual["home"]) def test_preparing_single_addresse_for_yaml_conversion_returns_dict_not_list(self): input = {'home': [{'street': 'street', 'city': 'city', 'code': 'zip', 'country': ''}]} expected = {'Street': 'street', 'City': 'city', 'Code': 'zip', 'Country': None} actual = helpers.yaml_addresses(input, ["Street", "Code", "City", "Country"]) self.assertEqual(expected, actual["home"]) if __name__ == "__main__": unittest.main() khard-0.19.1/test/test_helpers_interactive.py000066400000000000000000000112711453070076200213300ustar00rootroot00000000000000"""Tests for the user interaction functions.""" import unittest from unittest import mock from khard.helpers import interactive from .helpers import mock_stream class Ask(unittest.TestCase): def test_accepts_on_of_the_given_options(self): with mock.patch("builtins.input", lambda _: "foo"): actual = interactive.ask("message", ["foo", "bar"]) self.assertEqual("foo", actual) def test_does_not_accept_answers_not_in_choices(self): with mock.patch("builtins.input", mock.Mock(side_effect=["baz", "foo"])): actual = interactive.ask("message", ["foo", "bar"]) self.assertEqual("foo", actual) def test_default_is_accepted_on_empty_input(self): with mock.patch("builtins.input", lambda _: ""): actual = interactive.ask("message", ["foo", "bar"], "baz") self.assertEqual("baz", actual) def test_accepts_prefix_match(self): with mock.patch("builtins.input", lambda _: "f"): actual = interactive.ask("message", ["foo", "bar"]) self.assertEqual("foo", actual) def test_only_accepts_unique_prefix_match(self): with mock.patch("builtins.input", mock.Mock(side_effect=["ba", "bar"])): with mock_stream() as stdout: actual = interactive.ask("message", ["baz", "bar"]) stdout = stdout.getvalue() self.assertEqual("bar", actual) self.assertIn("not specific enough", stdout) class Select(unittest.TestCase): def _test(self, include_none=None): input_list = ["a", "b", "c"] if include_none is None: return interactive.select(input_list) else: return interactive.select(input_list, include_none) def test_selection_index_is_1_based(self): with mock.patch("builtins.input", lambda _: "1"): actual = self._test() self.assertEqual(actual, "a") def test_typing_a_non_number_prints_a_message_and_repeats(self): with mock.patch("builtins.input", mock.Mock(side_effect=["foo", "2"])): with mock_stream() as stdout: actual = self._test() stdout = stdout.getvalue() self.assertEqual(stdout, "Please enter an index value between 1 and 3 " "or q to quit.\n") self.assertEqual(actual, "b") def test_out_of_bounds_repeats(self): with mock.patch("builtins.input", mock.Mock(side_effect=["5", "2"])): with mock_stream() as stdout: actual = self._test() stdout = stdout.getvalue() self.assertEqual(stdout, "Please enter an index value between 1 and 3 " "or q to quit.\n") self.assertEqual(actual, "b") def test_index_0_is_not_accepted(self): with mock.patch("builtins.input", mock.Mock(side_effect=["0", "2"])): with mock_stream() as stdout: actual = self._test() stdout = stdout.getvalue() self.assertEqual(stdout, "Please enter an index value between 1 and 3 " "or q to quit.\n") self.assertEqual(actual, "b") def test_index_0_is_accepted_with_include_none(self): with mock.patch("builtins.input", lambda _: "0"): actual = self._test(True) self.assertIsNone(actual) def test_empty_input_prints_a_message_and_repeats(self): with mock.patch("builtins.input", mock.Mock(side_effect=["", "2"])): with mock_stream() as stdout: actual = self._test() stdout = stdout.getvalue() self.assertEqual(stdout, "Please enter an index value between 1 and 3 " "or q to quit.\n") self.assertEqual(actual, "b") class Confirm(unittest.TestCase): def test_y_is_true(self): with mock.patch("builtins.input", lambda _: "y"): self.assertTrue(interactive.confirm("")) def test_n_is_false(self): with mock.patch("builtins.input", lambda _: "n"): self.assertFalse(interactive.confirm("")) def test_Y_is_true(self): with mock.patch("builtins.input", lambda _: "Y"): self.assertTrue(interactive.confirm("")) def test_N_is_false(self): with mock.patch("builtins.input", lambda _: "N"): self.assertFalse(interactive.confirm("")) def test_empty_input_is_no(self): with mock.patch("builtins.input", mock.Mock(side_effect=["", "y"])): with mock_stream(): self.assertFalse(interactive.confirm("")) def test_empty_input_can_be_forbidden_with_argument(self): with mock.patch("builtins.input", mock.Mock(side_effect=["", "y"])): with mock_stream(): self.assertTrue(interactive.confirm("", False)) khard-0.19.1/test/test_helpers_typing.py000066400000000000000000000115531453070076200203300ustar00rootroot00000000000000"""Tests for runtime type conversions""" import datetime import unittest from khard.helpers.typing import convert_to_vcard, list_to_string, \ ObjectType, string_to_date class ConvertToVcard(unittest.TestCase): def test_returns_strings(self): value = "some text" actual = convert_to_vcard("test", value, ObjectType.str) self.assertEqual(value, actual) def test_returns_lists(self): value = ["some", "text"] actual = convert_to_vcard("test", value, ObjectType.list) self.assertListEqual(value, actual) def test_fail_if_not_string(self): value = ["some", "text"] with self.assertRaises(ValueError): convert_to_vcard("test", value, ObjectType.str) def test_upgrades_string_to_list(self): value = "some text" actual = convert_to_vcard("test", value, ObjectType.list) self.assertListEqual([value], actual) def test_fails_if_string_lists_are_not_homogenous(self): value = ["some", ["nested", "list"]] with self.assertRaises(ValueError): convert_to_vcard("test", value, ObjectType.list) def test_empty_list_items_are_filtered(self): value = ["some", "", "text", "", "more text"] actual = convert_to_vcard("test", value, ObjectType.list) self.assertListEqual(["some", "text", "more text"], actual) def test_strings_are_stripped(self): value = " some text " actual = convert_to_vcard("test", value, ObjectType.str) self.assertEqual("some text", actual) def test_strings_in_lists_are_stripped(self): value = [" some ", " text "] actual = convert_to_vcard("test", value, ObjectType.list) self.assertListEqual(["some", "text"], actual) class ListToString(unittest.TestCase): def test_empty_list_returns_empty_string(self): the_list = [] delimiter = ' ' expected = '' actual = list_to_string(the_list, delimiter) self.assertEqual(actual, expected) def test_simple_list(self): the_list = ['a', 'bc', 'def'] delimiter = ' ' expected = 'a bc def' actual = list_to_string(the_list, delimiter) self.assertEqual(actual, expected) def test_simple_nested_list(self): the_list = ['a', 'bc', ['x', 'y', 'z'], 'def'] delimiter = ' ' expected = 'a bc x y z def' actual = list_to_string(the_list, delimiter) self.assertEqual(actual, expected) def test_multi_level_nested_list(self): the_list = ['a', ['b', ['c', [[['x', 'y']]]]], 'z'] delimiter = ' ' expected = 'a b c x y z' actual = list_to_string(the_list, delimiter) self.assertEqual(actual, expected) def test_list_to_string_passes_through_other_objects(self): self.assertIs(list_to_string(None, "foo"), None) self.assertIs(list_to_string(42, "foo"), 42) self.assertIs(list_to_string("foo bar", "foo"), "foo bar") class StringToDate(unittest.TestCase): date = datetime.datetime(year=1900, month=1, day=2) time = datetime.datetime(year=1900, month=1, day=2, hour=12, minute=42, second=17) zone = datetime.datetime(year=1900, month=1, day=2, hour=12, minute=42, second=17, tzinfo=datetime.timezone.utc) def test_mmdd_format(self): string = '--0102' result = string_to_date(string) self.assertEqual(result, self.date) def test_mm_dd_format(self): string = '--01-02' result = string_to_date(string) self.assertEqual(result, self.date) def test_yyyymmdd_format(self): string = '19000102' result = string_to_date(string) self.assertEqual(result, self.date) def test_yyyy_mm_dd_format(self): string = '1900-01-02' result = string_to_date(string) self.assertEqual(result, self.date) def test_yyyymmddThhmmss_format(self): string = '19000102T124217' result = string_to_date(string) self.assertEqual(result, self.time) def test_yyyy_mm_ddThh_mm_ss_format(self): string = '1900-01-02T12:42:17' result = string_to_date(string) self.assertEqual(result, self.time) def test_yyyymmddThhmmssZ_format(self): string = '19000102T124217Z' result = string_to_date(string) self.assertEqual(result, self.time) def test_yyyy_mm_ddThh_mm_ssZ_format(self): string = '1900-01-02T12:42:17Z' result = string_to_date(string) self.assertEqual(result, self.time) def test_yyyymmddThhmmssz_format(self): string = '19000102T064217-06:00' result = string_to_date(string) self.assertEqual(result, self.zone) def test_yyyy_mm_ddThh_mm_ssz_format(self): string = '1900-01-02T06:42:17-06:00' result = string_to_date(string) self.assertEqual(result, self.zone) khard-0.19.1/test/test_khard.py000066400000000000000000000227461453070076200163730ustar00rootroot00000000000000"""Unittests for the khard module""" from argparse import Namespace from email.headerregistry import Address import unittest from unittest import mock from khard import khard, query, config from khard.khard import find_email_addresses from .helpers import TmpAbook, load_contact class TestSearchQueryPreparation(unittest.TestCase): foo = query.TermQuery("foo") bar = query.TermQuery("bar") def setUp(self): # Set the uninitialized global variable in the khard module to make it # mockable. See https://stackoverflow.com/questions/61193676 khard.config = mock.Mock() @staticmethod def _make_abook(name): abook = mock.Mock() abook.name = name return abook @classmethod def _run(cls, **kwargs): with mock.patch("khard.khard.config.abooks", [cls._make_abook(name) for name in ["foo", "bar", "baz"]]): return khard.prepare_search_queries(Namespace(**kwargs)) def test_queries_for_the_same_address_book_are_joind_by_disjunction(self): expected = self.foo | self.bar prepared = self._run(addressbook=["foo"], target_addressbook=["foo"], source_search_terms=self.foo, target_contact=self.bar) self.assertEqual(expected, prepared["foo"]) def test_no_search_terms_result_in_any_queries(self): expected = query.AnyQuery() prepared = self._run(addressbook=["foo"], target_addressbook=["foo"], source_search_terms=query.AnyQuery(), target_contact=query.AnyQuery()) self.assertEqual(expected, prepared["foo"]) class TestFindEmailAddress(unittest.TestCase): def test_empty_text_finds_none(self): text = "" addrs = find_email_addresses(text, ["from"]) self.assertEqual([], addrs) def test_single_header_finds_one_address(self): text = """From: John Doe """ addrs = find_email_addresses(text, ["from"]) expected = [Address(display_name="John Doe", username="jdoe", domain="machine.example")] self.assertEqual(expected, addrs) def test_single_header_finds_multiple_addresses(self): text = """From: John Doe , \ Mary Smith """ addrs = find_email_addresses(text, ["from"]) expected = [ Address( display_name="John Doe", username="jdoe", domain="machine.example"), Address( display_name="Mary Smith", username="mary", domain="example.net")] self.assertEqual(expected, addrs) def test_non_address_header_finds_none(self): text = "From: John Doe , " \ "Mary Smith \nOther: test" addrs = find_email_addresses(text, ["other"]) expected = [] self.assertEqual(expected, addrs) def test_multiple_headers_finds_some(self): text = "From: John Doe , " \ "Mary Smith \nOther: test" addrs = find_email_addresses(text, ["other", "from"]) expected = [ Address( display_name="John Doe", username="jdoe", domain="machine.example"), Address( display_name="Mary Smith", username="mary", domain="example.net")] self.assertEqual(expected, addrs) def test_multiple_headers_finds_all(self): text = "From: John Doe , " \ "Mary Smith \n" \ "To: Michael Jones " addrs = find_email_addresses(text, ["to", "FrOm"]) expected = [ Address( display_name="Michael Jones", username="mjones", domain="machine.example"), Address( display_name="John Doe", username="jdoe", domain="machine.example"), Address( display_name="Mary Smith", username="mary", domain="example.net")] self.assertEqual(expected, addrs) def test_finds_all_emails(self): text = "From: John Doe , " \ "Mary Smith \n" \ "To: Michael Jones " addrs = find_email_addresses(text, ["all"]) expected = [ Address( display_name="John Doe", username="jdoe", domain="machine.example"), Address( display_name="Mary Smith", username="mary", domain="example.net"), Address( display_name="Michael Jones", username="mjones", domain="machine.example")] self.assertEqual(expected, addrs) def test_finds_all_emails_with_other_headers_too( self): text = "From: John Doe , " \ "Mary Smith \n" \ "To: Michael Jones " addrs = find_email_addresses(text, ["other", "all", "from"]) expected = [ Address( display_name="John Doe", username="jdoe", domain="machine.example"), Address( display_name="Mary Smith", username="mary", domain="example.net"), Address( display_name="Michael Jones", username="mjones", domain="machine.example")] self.assertEqual(expected, addrs) class TestGetContactListByUserSelection(unittest.TestCase): def setUp(self): """initialize the global config object with a mock""" khard.config = mock.Mock(spec=config.Config) khard.config.group_by_addressbook = False khard.config.reverse = False khard.config.sort = "last_name" def tearDown(self): del khard.config def test_uid_query_without_strict_search(self): q = query.FieldQuery("uid", "testuid1") with TmpAbook(["contact1.vcf", "contact2.vcf"]) as abook: l = khard.get_contact_list(abook, q) self.assertEqual(len(l), 1) self.assertEqual(l[0].uid, 'testuid1') def test_name_query_with_uid_text_and_strict_search(self): q = query.NameQuery("testuid1") with TmpAbook(["contact1.vcf", "contact2.vcf"]) as abook: l = khard.get_contact_list(abook, q) self.assertEqual(len(l), 0) def test_name_query_with_uid_text_and_without_strict_search(self): q = query.NameQuery("testuid1") with TmpAbook(["contact1.vcf", "contact2.vcf"]) as abook: l = khard.get_contact_list(abook, q) self.assertEqual(len(l), 0) def test_term_query_without_strict_search(self): q = query.TermQuery("testuid1") with TmpAbook(["contact1.vcf", "contact2.vcf"]) as abook: l = khard.get_contact_list(abook, q) self.assertEqual(len(l), 1) self.assertEqual(l[0].uid, 'testuid1') def test_term_query_with_strict_search_matching(self): q = query.TermQuery("second contact") with TmpAbook(["contact1.vcf", "contact2.vcf"]) as abook: l = khard.get_contact_list(abook, q) self.assertEqual(len(l), 1) self.assertEqual(l[0].uid, 'testuid1') class TestSortContacts(unittest.TestCase): contact1 = load_contact("contact1.vcf") contact2 = load_contact("contact2.vcf") nickname = load_contact("nickname.vcf") no_nickname = load_contact("no-nickname.vcf") def _test(self, first, second, **kwargs): """Run the sort_contacts function and assert the result The two contacts first and second are expected to come out in that order and are deliberatly put into the function in the reverse order. """ actual = khard.sort_contacts([second, first], **kwargs) self.assertListEqual(actual, [first, second]) def test_sorts_by_first_name_by_default(self): self._test(self.nickname, self.no_nickname) def test_reverses_sort_order(self): self._test(self.no_nickname, self.nickname, reverse=True) def test_can_sort_by_last_name(self): self._test(self.no_nickname, self.nickname, sort="last_name") def test_can_sort_by_formatted_name(self): self._test(self.contact1, self.contact2, sort="formatted_name") def test_group_by_addressbook(self): with TmpAbook(["contact1.vcf", "category.vcf"], name="one") as abook1: with TmpAbook(["contact2.vcf", "labels.vcf"], name="two") as abook2: contact1 = next(abook1.search(query.FieldQuery("uid", "testuid1"))) category = next(abook1.search(query.NameQuery("category"))) contact2 = next(abook2.search(query.FieldQuery("uid", "testuid2"))) labels = next(abook2.search(query.NameQuery("labeled guy"))) expected = [category, contact1, labels, contact2] actual = khard.sort_contacts([contact1, contact2, category, labels], group=True) self.assertListEqual(actual, expected) khard-0.19.1/test/test_query.py000066400000000000000000000161561453070076200164450ustar00rootroot00000000000000import unittest from khard.query import AndQuery, AnyQuery, FieldQuery, NameQuery, NullQuery, \ OrQuery, TermQuery, parse from .helpers import TestCarddavObject, load_contact class TestTermQuery(unittest.TestCase): def test_match_if_query_is_anywhere_in_string(self): q = TermQuery('bar') self.assertTrue(q.match('foo bar baz')) def test_query_terms_are_case_insensitive(self): q = TermQuery('BAR') self.assertTrue(q.match('foo bar baz')) def test_match_arguments_are_case_insensitive(self): q = TermQuery('bar') self.assertTrue(q.match('FOO BAR BAZ')) def test_spaces_in_search_subject_are_not_stripped(self): q = TermQuery('oob') self.assertFalse(q.match('foo bar baz')) def test_spaces_in_query_are_not_stripped(self): q = TermQuery('foo bar') self.assertFalse(q.match('foobar')) class TestAndQuery(unittest.TestCase): def test_matches_if_all_subterms_match(self): q1 = TermQuery("a") q2 = TermQuery("b") q = AndQuery(q1, q2) self.assertTrue(q.match("ab")) def test_failes_if_at_least_one_subterm_fails(self): q1 = TermQuery("a") q2 = TermQuery("b") q = AndQuery(q1, q2) self.assertFalse(q.match("ac")) def test_order_does_not_matter(self): q1 = TermQuery("a") q2 = TermQuery("b") q = AndQuery(q1, q2) self.assertTrue(q.match("ab")) self.assertTrue(q.match("ba")) class TestOrQuery(unittest.TestCase): def test_matches_if_at_least_one_subterm_matchs(self): q1 = TermQuery("a") q2 = TermQuery("b") q = OrQuery(q1, q2) self.assertTrue(q.match("ac")) def test_failes_if_all_subterms_fail(self): q1 = TermQuery("a") q2 = TermQuery("b") q = OrQuery(q1, q2) self.assertFalse(q.match("cd")) def test_order_does_not_matter(self): q1 = TermQuery("a") q2 = TermQuery("b") q = OrQuery(q1, q2) self.assertTrue(q.match("ab")) self.assertTrue(q.match("ba")) class TestEquality(unittest.TestCase): def test_any_queries_are_equal(self): self.assertEqual(AnyQuery(), AnyQuery()) def test_null_queries_are_equal(self): self.assertEqual(NullQuery(), NullQuery()) def test_or_queries_match_after_sorting(self): null = NullQuery() any = AnyQuery() term = TermQuery("foo") field = FieldQuery("x", "y") first = OrQuery(null, any, term, field) second = OrQuery(any, null, field, term) self.assertEqual(first, second) def test_and_queries_match_after_sorting(self): null = NullQuery() any = AnyQuery() term = TermQuery("foo") field = FieldQuery("x", "y") first = AndQuery(null, any, term, field) second = AndQuery(any, null, field, term) self.assertEqual(first, second) class TestFieldQuery(unittest.TestCase): @unittest.expectedFailure def test_empty_field_values_match_if_the_field_is_present(self): # This test currently fails because the CarddavObject class has all # attributes set because they are properties. So the test in the query # class if an attribute is present never fails. uid = 'Some Test Uid' vcard1 = TestCarddavObject(uid=uid) vcard2 = TestCarddavObject() query = FieldQuery('uid', '') self.assertTrue(query.match(vcard1)) self.assertFalse(query.match(vcard2)) def test_empty_field_values_fails_if_the_field_is_absent(self): vcard = TestCarddavObject() query = FieldQuery('emails', '') self.assertFalse(query.match(vcard)) def test_values_can_match_exact(self): uid = 'Some Test Uid' vcard = TestCarddavObject(uid=uid) query = FieldQuery('uid', uid) self.assertTrue(query.match(vcard)) def test_values_can_match_substrings(self): uid = 'Some Test Uid' vcard = TestCarddavObject(uid=uid) query = FieldQuery('uid', 'e Test U') self.assertTrue(query.match(vcard)) def test_valuess_can_match_case_insensitive(self): uid = 'Some Test Uid' vcard = TestCarddavObject(uid=uid) query1 = FieldQuery('uid', uid.upper()) query2 = FieldQuery('uid', uid.lower()) self.assertTrue(query1.match(vcard)) self.assertTrue(query2.match(vcard)) def test_match_formatted_name(self): vcard = TestCarddavObject(fn='foo bar') query = FieldQuery('formatted_name', 'foo') self.assertTrue(query.match(vcard)) def test_match_email(self): vcard = load_contact("contact1.vcf") query = FieldQuery('emails', 'user@example.com') self.assertTrue(query.match(vcard)) def test_match_birthday(self): vcard = load_contact("contact1.vcf") query = FieldQuery('birthday', '2018-01-20') self.assertTrue(query.match(vcard)) def test_fail_match_in_other_field(self): vcard = load_contact("contact1.vcf") query = FieldQuery('formatted_name', 'user@example.com') self.assertFalse(query.match(vcard)) def test_match_email_type(self): vcard = load_contact("contact1.vcf") query = FieldQuery('emails', 'home') self.assertTrue(query.match(vcard)) class TestNameQuery(unittest.TestCase): def test_matches_formatted_name_field(self): vcard = load_contact("minimal.vcf") query = NameQuery("minimal") self.assertTrue(query.match(vcard)) def test_matches_name_field(self): vcard = load_contact("nickname.vcf") query = NameQuery("smith") self.assertTrue(query.match(vcard)) def test_matches_nickname_field(self): vcard = load_contact("nickname.vcf") query = NameQuery("mike") self.assertTrue(query.match(vcard)) def test_does_not_match_uid_field(self): vcard = load_contact("contact1.vcf") query = NameQuery("testuid1") self.assertFalse(query.match(vcard)) class TestParser(unittest.TestCase): def test_parsing_simple_terms(self): string = "foo bar" expected = TermQuery(string) actual = parse(string) self.assertEqual(actual, expected) def test_parsing_simple_field_queries(self): actual = parse("formatted_name:foo bar") expected = FieldQuery("formatted_name", "foo bar") self.assertEqual(actual, expected) def test_bad_field_name_returns_term_query(self): string = "foo:bar" actual = parse(string) expected = TermQuery(string) self.assertEqual(actual, expected) def test_field_value_can_be_empty(self): actual = parse("formatted_name:") expected = FieldQuery("formatted_name", "") self.assertEqual(actual, expected) def test_field_value_can_contain_colons(self): actual = parse("formatted_name:foo:bar") expected = FieldQuery("formatted_name", "foo:bar") self.assertEqual(actual, expected) def test_special_field_name_creates_name_queries(self): actual = parse("name:foo") expected = NameQuery("foo") self.assertEqual(actual, expected) khard-0.19.1/test/test_vcard_wrapper.py000066400000000000000000000426611453070076200201370ustar00rootroot00000000000000"""Tests for the VCardWrapper class from the carddav module.""" # pylint: disable=missing-docstring import datetime import unittest import vobject from khard.carddav_object import VCardWrapper from .helpers import vCard, TestVCardWrapper def _from_file(path): """Read a VCARD from a file""" with open(path) as fp: return vobject.readOne(fp) class VcardWrapperInit(unittest.TestCase): def test_stores_vcard_object_unmodified(self): vcard = vCard() expected = vcard.serialize() wrapper = VCardWrapper(vcard) # assert that it is the same object self.assertIs(wrapper.vcard, vcard) # assert that it (the serialization) was not changed self.assertEqual(wrapper.vcard.serialize(), expected) def test_warns_about_unsupported_version(self): with self.assertLogs(level="WARNING"): TestVCardWrapper(version="something unsupported") def test_warns_about_missing_version_and_sets_it(self): vcard = vCard() vcard.remove(vcard.version) with self.assertLogs(level="WARNING"): wrapper = VCardWrapper(vcard) self.assertEqual(wrapper.version, "3.0") class DeleteVcardObject(unittest.TestCase): def test_deletes_fields_given_in_upper_case(self): vcard = vCard() expected = vcard.serialize() vcard.add('FOO').value = 'bar' wrapper = VCardWrapper(vcard) wrapper._delete_vcard_object('FOO') self.assertEqual(wrapper.vcard.serialize(), expected) def test_deletes_all_field_occurences(self): vcard = vCard() expected = vcard.serialize() vcard.add('FOO').value = 'bar' vcard.add('FOO').value = 'baz' wrapper = VCardWrapper(vcard) wrapper._delete_vcard_object('FOO') self.assertEqual(wrapper.vcard.serialize(), expected) def test_deletes_grouped_ablabel_fields(self): vcard = vCard() expected = vcard.serialize() foo = vcard.add('FOO') foo.value = 'bar' foo.group = 'group1' label = vcard.add('X-ABLABEL') label.value = 'test label' label.group = foo.group wrapper = VCardWrapper(vcard) wrapper._delete_vcard_object('FOO') self.assertEqual(wrapper.vcard.serialize(), expected) def test_keeps_other_fields(self): vcard = vCard(foo='bar') expected = vcard.serialize() vcard.add('BAR').value = 'baz' wrapper = VCardWrapper(vcard) wrapper._delete_vcard_object('BAR') self.assertEqual(wrapper.vcard.serialize(), expected) def test_does_not_fail_on_non_existing_field_name(self): vcard = vCard(foo='bar') expected = vcard.serialize() wrapper = VCardWrapper(vcard) wrapper._delete_vcard_object('BAR') self.assertEqual(wrapper.vcard.serialize(), expected) class BirthdayLikeAttributes(unittest.TestCase): def test_birthday_supports_setting_date_objects(self): wrapper = TestVCardWrapper() date = datetime.datetime(2018, 2, 1) wrapper.birthday = date wrapper.vcard.validate() self.assertEqual(wrapper.birthday, date) def test_birthday_supports_setting_datetime_objects(self): wrapper = TestVCardWrapper() date = datetime.datetime(2018, 2, 1, 19, 29, 31) wrapper.birthday = date wrapper.vcard.validate() self.assertEqual(wrapper.birthday, date) def test_birthday_supports_setting_text_values_for_v4(self): vcard = vCard(version="4.0") wrapper = VCardWrapper(vcard, "4.0") date = 'some time yesterday' wrapper.birthday = date wrapper.vcard.validate() self.assertEqual(wrapper.birthday, date) def test_birthday_does_not_support_setting_text_values_for_v3(self): wrapper = TestVCardWrapper(version="3.0") with self.assertLogs(level='WARNING'): wrapper.birthday = 'some time yesterday' wrapper.vcard.validate() self.assertIsNone(wrapper.birthday) def test_anniversary_supports_setting_date_objects(self): wrapper = TestVCardWrapper() date = datetime.datetime(2018, 2, 1) wrapper.anniversary = date wrapper.vcard.validate() self.assertEqual(wrapper.anniversary, date) def test_anniversary_supports_setting_datetime_objects(self): wrapper = TestVCardWrapper() date = datetime.datetime(2018, 2, 1, 19, 29, 31) wrapper.anniversary = date wrapper.vcard.validate() self.assertEqual(wrapper.anniversary, date) def test_anniversary_supports_setting_text_values_for_v4(self): vcard = vCard(version="4.0") wrapper = VCardWrapper(vcard, "4.0") date = 'some time yesterday' wrapper.anniversary = date wrapper.vcard.validate() self.assertEqual(wrapper.anniversary, date) def test_anniversary_does_not_support_setting_text_values_for_v3(self): wrapper = TestVCardWrapper(version="3.0") with self.assertLogs(level='WARNING'): wrapper.birthday = 'some time yesterday' wrapper.vcard.validate() self.assertIsNone(wrapper.anniversary) class NameAttributes(unittest.TestCase): def test_fn_can_be_set_with_a_string(self): vcard = vCard() wrapper = VCardWrapper(vcard) wrapper.formatted_name = 'foo bar' self.assertEqual(vcard.fn.value, 'foo bar') def test_only_one_fn_will_be_stored(self): vcard = vCard() wrapper = VCardWrapper(vcard) wrapper.formatted_name = 'foo bar' self.assertEqual(len(vcard.contents['fn']), 1) def test_fn_is_returned_as_string(self): wrapper = TestVCardWrapper() self.assertIsInstance(wrapper.formatted_name, str) def test_fn_is_used_as_string_representation(self): wrapper = TestVCardWrapper() self.assertEqual(str(wrapper), wrapper.formatted_name) def test_name_can_be_set_with_empty_strings(self): vcard = vCard() wrapper = VCardWrapper(vcard) wrapper._add_name('', '', '', '', '') self.assertEqual(vcard.serialize(), 'BEGIN:VCARD\r\n' 'VERSION:3.0\r\n' 'FN:Test vCard\r\n' 'N:;;;;\r\n' 'END:VCARD\r\n') def test_name_can_be_set_with_empty_lists(self): vcard = vCard() wrapper = VCardWrapper(vcard) wrapper._add_name([], [], [], [], []) self.assertEqual(vcard.serialize(), 'BEGIN:VCARD\r\n' 'VERSION:3.0\r\n' 'FN:Test vCard\r\n' 'N:;;;;\r\n' 'END:VCARD\r\n') def test_name_can_be_set_with_lists_of_empty_strings(self): vcard = vCard() wrapper = VCardWrapper(vcard) wrapper._add_name(['', ''], ['', ''], ['', ''], ['', ''], ['', '']) self.assertEqual(vcard.serialize(), 'BEGIN:VCARD\r\n' 'VERSION:3.0\r\n' 'FN:Test vCard\r\n' 'N:;;;;\r\n' 'END:VCARD\r\n') def test_get_first_name_last_name_retunrs_fn_if_no_name_present(self): wrapper = TestVCardWrapper() self.assertEqual(wrapper.get_first_name_last_name(), 'Test vCard') def test_get_first_name_last_name_with_simple_name(self): wrapper = TestVCardWrapper() wrapper._add_name('', 'given', '', 'family', '') self.assertEqual(wrapper.get_first_name_last_name(), "given family") def test_get_first_name_last_name_with_all_name_fields(self): wrapper = TestVCardWrapper() wrapper._add_name('prefix', 'given', 'additional', 'family', 'suffix') self.assertEqual(wrapper.get_first_name_last_name(), 'given additional family') def test_get_first_name_last_name_with_complex_name(self): wrapper = TestVCardWrapper() wrapper._add_name(['prefix1', 'prefix2'], ['given1', 'given2'], ['additional1', 'additional2'], ['family1', 'family2'], ['suffix1', 'suffix2']) self.assertEqual(wrapper.get_first_name_last_name(), 'given1 given2 ' 'additional1 additional2 family1 family2') def test_get_last_name_first_name_retunrs_fn_if_no_name_present(self): wrapper = TestVCardWrapper() self.assertEqual(wrapper.get_last_name_first_name(), 'Test vCard') def test_get_last_name_first_name_with_simple_name(self): wrapper = TestVCardWrapper() wrapper._add_name('', 'given', '', 'family', '') self.assertEqual(wrapper.get_last_name_first_name(), "family, given") def test_get_last_name_first_name_with_all_name_fields(self): wrapper = TestVCardWrapper() wrapper._add_name('prefix', 'given', 'additional', 'family', 'suffix') self.assertEqual(wrapper.get_last_name_first_name(), 'family, given additional') def test_get_last_name_first_name_with_complex_name(self): wrapper = TestVCardWrapper() wrapper._add_name(['prefix1', 'prefix2'], ['given1', 'given2'], ['additional1', 'additional2'], ['family1', 'family2'], ['suffix1', 'suffix2']) self.assertEqual(wrapper.get_last_name_first_name(), 'family1 family2,' ' given1 given2 additional1 additional2') class TypedProperties(unittest.TestCase): def test_adding_a_simple_phone_number(self): wrapper = TestVCardWrapper() wrapper._add_phone_number('home', '0123456789') self.assertDictEqual(wrapper.phone_numbers, {'home': ['0123456789']}) def test_adding_a_custom_type_phone_number(self): wrapper = TestVCardWrapper() wrapper._add_phone_number('custom_type', '0123456789') self.assertDictEqual(wrapper.phone_numbers, {'custom_type': ['0123456789']}) def test_adding_multible_phone_number(self): wrapper = TestVCardWrapper() wrapper._add_phone_number('work', '0987654321') wrapper._add_phone_number('home', '0123456789') wrapper._add_phone_number('home', '0112233445') self.assertDictEqual( wrapper.phone_numbers, # The lists are sorted! {'home': ['0112233445', '0123456789'], 'work': ['0987654321']}) def test_adding_preferred_phone_number(self): wrapper = TestVCardWrapper() wrapper._add_phone_number('home', '0123456789') wrapper._add_phone_number('pref,home', '0987654321') self.assertDictEqual( wrapper.phone_numbers, {'home': ['0123456789'], 'home, pref': ['0987654321']}) def test_adding_a_simple_email(self): wrapper = TestVCardWrapper() wrapper.add_email('home', 'foo@bar.net') self.assertDictEqual(wrapper.emails, {'home': ['foo@bar.net']}) def test_adding_a_custom_type_emails(self): wrapper = TestVCardWrapper() wrapper.add_email('custom_type', 'foo@bar.net') self.assertDictEqual(wrapper.emails, {'custom_type': ['foo@bar.net']}) def test_adding_multible_emails(self): wrapper = TestVCardWrapper() wrapper.add_email('work', 'foo@bar.net') wrapper.add_email('home', 'foo@baz.net') wrapper.add_email('home', 'baz@baz.net') self.assertDictEqual( wrapper.emails, # The lists are sorted! {'home': ['baz@baz.net', 'foo@baz.net'], 'work': ['foo@bar.net']}) def test_adding_preferred_emails(self): wrapper = TestVCardWrapper() wrapper.add_email('home', 'foo@bar.net') wrapper.add_email('pref,home', 'foo@baz.net') self.assertDictEqual(wrapper.emails, {'home': ['foo@bar.net'], 'home, pref': ['foo@baz.net']}) def test_adding_a_simple_address(self): wrapper = TestVCardWrapper() components = ('box', 'extended', 'street', 'code', 'city', 'region', 'country') wrapper._add_post_address('home', *components) expected = {item: item for item in components} self.assertDictEqual(wrapper.post_addresses, {'home': [expected]}) def test_adding_a_custom_type_address(self): wrapper = TestVCardWrapper() components = ('box', 'extended', 'street', 'code', 'city', 'region', 'country') wrapper._add_post_address('custom_type', *components) expected = {item: item for item in components} self.assertDictEqual(wrapper.post_addresses, {'custom_type': [expected]}) def test_adding_multible_addresses(self): wrapper = TestVCardWrapper() components = ('box', 'extended', 'street', 'code', 'city', 'region', 'country') wrapper._add_post_address('work', *['work ' + c for c in components]) wrapper._add_post_address('home', *['home1 ' + c for c in components]) wrapper._add_post_address('home', *['home2 ' + c for c in components]) expected_work = {item: 'work ' + item for item in components} expected_home2 = {item: 'home2 ' + item for item in components} expected_home1 = {item: 'home1 ' + item for item in components} self.assertDictEqual(wrapper.post_addresses, # The lists are sorted! {'home': [expected_home1, expected_home2], 'work': [expected_work]}) def test_adding_preferred_address(self): wrapper = TestVCardWrapper() components = ('box', 'extended', 'street', 'code', 'city', 'region', 'country') wrapper._add_post_address('home', *['home1 ' + c for c in components]) wrapper._add_post_address('pref,home', *['home2 ' + c for c in components]) expected_home2 = {item: 'home2 ' + item for item in components} expected_home1 = {item: 'home1 ' + item for item in components} self.assertDictEqual( wrapper.post_addresses, {'home': [expected_home1], 'home, pref': [expected_home2]}) class OtherProperties(unittest.TestCase): def test_setting_and_getting_organisations(self): # also test that organisations are returned in sorted order wrapper = TestVCardWrapper() org1 = ["Org", "Sub1", "Sub2"] org2 = ["Org2", "Sub3"] org3 = ["Foo", "Bar", "Baz"] wrapper._add_organisation(org1) wrapper._add_organisation(org2) wrapper._add_organisation(org3) self.assertListEqual(wrapper.organisations, [org3, org1, org2]) def test_setting_org_in_different_ways_for_refactoring(self): wrapper1 = TestVCardWrapper() wrapper2 = TestVCardWrapper() wrapper1._add_organisation('foo') wrapper2._add_organisation(['foo']) self.assertEqual(wrapper1.organisations, wrapper2.organisations) def test_setting_and_getting_titles(self): wrapper = TestVCardWrapper() wrapper._add_title('Foo') wrapper._add_title('Bar') self.assertListEqual(wrapper.titles, ['Bar', 'Foo']) def test_setting_and_getting_roles(self): wrapper = TestVCardWrapper() wrapper._add_role('Foo') wrapper._add_role('Bar') self.assertListEqual(wrapper.roles, ['Bar', 'Foo']) def test_setting_and_getting_nicks(self): wrapper = TestVCardWrapper() wrapper._add_nickname('Foo') wrapper._add_nickname('Bar') self.assertListEqual(wrapper.nicknames, ['Bar', 'Foo']) def test_setting_and_getting_notes(self): wrapper = TestVCardWrapper() wrapper._add_note('First long note') wrapper._add_note('Second long note\nwith newline') self.assertListEqual(wrapper.notes, ['First long note', 'Second long note\nwith newline']) def test_setting_and_getting_webpages(self): wrapper = TestVCardWrapper() wrapper._add_webpage('https://github.com/scheibler/khard') wrapper._add_webpage('http://example.com') self.assertListEqual(wrapper.webpages, ['http://example.com', 'https://github.com/scheibler/khard']) def test_setting_and_getting_categories(self): wrapper = TestVCardWrapper() wrapper._add_category(["rfc", "address book"]) wrapper._add_category(["coding", "open source"]) self.assertListEqual(wrapper.categories, [["coding", "open source"], ["rfc", "address book"]]) class ABLabels(unittest.TestCase): def test_setting_and_getting_webpage_ablabel(self): wrapper = TestVCardWrapper() wrapper._add_webpage({'github': 'https://github.com/scheibler/khard'}) wrapper._add_webpage('http://example.com') self.assertListEqual(wrapper.webpages, [ 'http://example.com', {'github': 'https://github.com/scheibler/khard'}]) def test_labels_on_structured_values(self): vcard = VCardWrapper(_from_file('test/fixture/vcards/labels.vcf')) self.assertListEqual(vcard.organisations, [{'Work': ['Test Inc']}]) def test_setting_fn_from_labelled_org(self): wrapper = TestVCardWrapper() wrapper._delete_vcard_object("FN") wrapper._add_organisation({'Work': ['Test Inc']}) self.assertEqual(wrapper.formatted_name, 'Test Inc') khard-0.19.1/test/test_yaml.py000066400000000000000000000215271453070076200162400ustar00rootroot00000000000000"""Tests for the custom YAML format.""" # pylint: disable=missing-docstring import datetime from io import StringIO import unittest from unittest import mock import copy from ruamel.yaml import YAML from khard.carddav_object import CarddavObject import khard.helpers from .helpers import TestYAMLEditable as create_test_card def to_yaml(data): if 'First name' not in data: data['First name'] = 'Nobody' stream = StringIO() YAML().dump(data, stream) return stream.getvalue() def parse_yaml(yaml=''): """Parse some yaml string into a CarddavObject :param yaml: the yaml input string to parse :type yaml: str :returns: the parsed CarddavObject :rtype: CarddavObject """ return CarddavObject.from_yaml(address_book=mock.Mock(path='foo-path'), yaml=yaml, supported_private_objects=[], version='3.0', localize_dates=False) class EmptyFieldsAndSpaces(unittest.TestCase): def test_empty_birthday_in_yaml_input(self): empty_birthday = "First name: foo\nBirthday:" with mock.patch("khard.carddav_object.logger"): x = parse_yaml(empty_birthday) self.assertIsNone(x.birthday) def test_only_spaces_in_birthday_in_yaml_input(self): spaces_birthday = "First name: foo\nBirthday: " with mock.patch("khard.carddav_object.logger"): x = parse_yaml(spaces_birthday) self.assertIsNone(x.birthday) def test_empty_anniversary_in_yaml_input(self): empty_anniversary = "First name: foo\nAnniversary:" with mock.patch("khard.carddav_object.logger"): x = parse_yaml(empty_anniversary) self.assertIsNone(x.anniversary) def test_empty_organisation_in_yaml_input(self): empty_organisation = "First name: foo\nOrganisation:" with mock.patch("khard.carddav_object.logger"): x = parse_yaml(empty_organisation) self.assertListEqual(x.organisations, []) def test_empty_nickname_in_yaml_input(self): empty_nickname = "First name: foo\nNickname:" with mock.patch("khard.carddav_object.logger"): x = parse_yaml(empty_nickname) self.assertListEqual(x.nicknames, []) def test_empty_role_in_yaml_input(self): empty_role = "First name: foo\nRole:" with mock.patch("khard.carddav_object.logger"): x = parse_yaml(empty_role) self.assertListEqual(x.roles, []) def test_empty_title_in_yaml_input(self): empty_title = "First name: foo\nTitle:" with mock.patch("khard.carddav_object.logger"): x = parse_yaml(empty_title) self.assertListEqual(x.titles, []) def test_empty_categories_in_yaml_input(self): empty_categories = "First name: foo\nCategories:" with mock.patch("khard.carddav_object.logger"): x = parse_yaml(empty_categories) self.assertListEqual(x.categories, []) def test_empty_webpage_in_yaml_input(self): empty_webpage = "First name: foo\nWebpage:" with mock.patch("khard.carddav_object.logger"): x = parse_yaml(empty_webpage) self.assertListEqual(x.webpages, []) def test_empty_note_in_yaml_input(self): empty_note = "First name: foo\nNote:" with mock.patch("khard.carddav_object.logger"): x = parse_yaml(empty_note) self.assertListEqual(x.notes, []) class yaml_ablabel(unittest.TestCase): def test_ablabelled_url_in_yaml_input(self): ablabel_url = "First name: foo\nWebpage:\n - http://example.com\n" \ " - github: https://github.com/scheibler/khard" with mock.patch("khard.carddav_object.logger"): x = parse_yaml(ablabel_url) self.assertListEqual(x.webpages, [ 'http://example.com', {'github': 'https://github.com/scheibler/khard'}]) class UpdateVcardWithYamlUserInput(unittest.TestCase): _date = datetime.datetime(2000, 1, 1) _datetime = datetime.datetime(2013, 4, 2, 13, 14, 15) _no_year = datetime.datetime(1900, 1, 1) def test_update_org_simple(self): card = create_test_card() data = {'Organisation': 'Foo'} data = to_yaml(data) card.update(data) self.assertListEqual(card.organisations, [['Foo']]) def test_update_org_multi(self): card = create_test_card() orgs = ['foo', 'bar', 'baz'] data = {'Organisation': orgs} data = to_yaml(data) card.update(data) self.assertListEqual(card.organisations, sorted([[x] for x in orgs])) def test_update_org_complex(self): card = create_test_card() org = ['org.', 'dep.', 'office'] data = {'Organisation': [org]} data = to_yaml(data) card.update(data) self.assertListEqual(card.organisations, [org]) def test_update_categories_simple(self): card = create_test_card() data = {'Categories': 'foo'} data = to_yaml(data) card.update(data) self.assertListEqual(card.categories, ['foo']) def test_update_categories_multi(self): card = create_test_card() cat = ['foo', 'bar', 'baz'] data = {'Categories': cat} data = to_yaml(data) card.update(data) self.assertListEqual(card.categories, cat) def test_update_bday_date(self): card = create_test_card() data = {'Birthday': '2000-01-01'} data = to_yaml(data) card.update(data) self.assertEqual(card.birthday, self._date) def test_update_bday_without_year(self): card = create_test_card(version="4.0") data = {'Birthday': '--01-01'} data = to_yaml(data) card.update(data) self.assertEqual(card.birthday, self._no_year) def test_update_bday_with_text(self): card = create_test_card(version="4.0") data = {'Birthday': 'text= some day maybe'} data = to_yaml(data) card.update(data) self.assertEqual(card.birthday, 'some day maybe') def test_update_bday_with_date_and_time(self): card = create_test_card() data = {'Birthday': '2013-04-02T13:14:15'} data = to_yaml(data) card.update(data) self.assertEqual(card.birthday, self._datetime) def test_update_anniverary(self): card = create_test_card() data = {'Anniversary': '2000-01-01'} data = to_yaml(data) card.update(data) self.assertEqual(card.anniversary, self._date) def test_update_anniversary_without_year(self): card = create_test_card(version="4.0") data = {'Anniversary': '--01-01'} data = to_yaml(data) card.update(data) self.assertEqual(card.anniversary, self._no_year) def test_update_anniversary_with_text(self): card = create_test_card(version="4.0") data = {'Anniversary': 'text= some day maybe'} data = to_yaml(data) card.update(data) self.assertEqual(card.anniversary, 'some day maybe') def test_update_anniversary_with_date_and_time(self): card = create_test_card() data = {'Anniversary': '2013-04-02T13:14:15'} data = to_yaml(data) card.update(data) self.assertEqual(card.anniversary, self._datetime) def test_update_name_simple(self): card = create_test_card() data = {'First name': 'first', 'Last name': 'last'} data = to_yaml(data) card.update(data) self.assertEqual(card.get_first_name_last_name(), 'first last') def test_update_fn(self): card = create_test_card() fn = 'me myself and i' data = {'Formatted name': fn} data = to_yaml(data) card.update(data) self.assertEqual(card.formatted_name, fn) def test_parse_field(self): """Test round-trip of a field to/from YAML""" card = create_test_card() data = "First name: Nobody\n" data += "\n".join(khard.helpers.convert_to_yaml("Note", "foobar", 0, 5, True)) card.update(data) self.assertListEqual(card.notes, ["foobar"]) def test_parse_field_with_colon(self): """Test round-trip of a field containing ': ' to/from YAML""" card = create_test_card() data = "First name: Nobody\n" data += "\n".join(khard.helpers.convert_to_yaml("Note", "foo: bar", 0, 5, True)) card.update(data) self.assertListEqual(card.notes, ["foo: bar"]) def test_vcard_round_trip(self): """Test a VCARD can be converted to YAML and back unchanged""" card = create_test_card() card._add_organisation("ACME, Inc") card._add_note("foo: bar") card2 = copy.copy(card) yaml = card.to_yaml() card.update(yaml) self.assertEqual(card.vcard.serialize(), card2.vcard.serialize()) khard-0.19.1/test/test_yaml_editable.py000066400000000000000000000042341453070076200200650ustar00rootroot00000000000000"""Tests for the carddav_object.YAMLEditable class""" import unittest from .helpers import TestYAMLEditable class ToYamlConversion(unittest.TestCase): def test_yaml_quoted_special_characters(self): yaml_editable = TestYAMLEditable() yaml_editable.supported_private_objects = ["Twitter"] yaml_repr = """ Formatted name: Test vCard First name: Khard Private : Twitter: \"@khard\" """ yaml_editable.update(yaml_repr) yaml_dump = yaml_editable.to_yaml() self.assertIn("'@khard'", yaml_dump) def test_dumping_multiple_home_addresses_to_yaml(self): yaml_editable = TestYAMLEditable() yaml_editable._add_post_address("home", "", "", "street 1", "zip1", "city1", "", "") yaml_editable._add_post_address("home", "", "", "street 2", "zip2", "city2", "", "") yaml_dump = yaml_editable.to_yaml() self.assertIn("zip1", yaml_dump) self.assertIn("zip2", yaml_dump) def test_dumping_multiple_home_phone_number_to_yaml(self): yaml_editable = TestYAMLEditable() yaml_editable._add_phone_number("home", "1234567890") yaml_editable._add_phone_number("home", "0987654321") yaml_dump = yaml_editable.to_yaml() self.assertIn("1234567890", yaml_dump) self.assertIn("0987654321", yaml_dump) def test_dumping_multiple_home_email_addresses_to_yaml(self): yaml_editable = TestYAMLEditable() yaml_editable.add_email("home", "home1@example.org") yaml_editable.add_email("home", "home2@example.org") yaml_dump = yaml_editable.to_yaml() self.assertIn("home1", yaml_dump) self.assertIn("home2", yaml_dump) class ExceptionHandling(unittest.TestCase): def test_duplicate_key_errors_are_translated_to_value_errors(self): ye = TestYAMLEditable() with self.assertRaises(ValueError): ye.update("{key: value, key: again}") def test_parser_error_is_translated_to_value_error(self): ye = TestYAMLEditable() with self.assertRaises(ValueError): ye.update("{[invalid yaml") khard-0.19.1/todo.txt000066400000000000000000000003001453070076200143760ustar00rootroot00000000000000ToDo list for khard 1. Add support for vcard attributes kind and member - member action to list all members of an organisation 2. Implement impp attribute, see #105 for more information