pax_global_header00006660000000000000000000000064132112272450014511gustar00rootroot0000000000000052 comment=d30fa7d6d32e35281fdb120857f0b64e87c676b5 django-split-settings-0.3.0/000077500000000000000000000000001321122724500157425ustar00rootroot00000000000000django-split-settings-0.3.0/.editorconfig000066400000000000000000000005751321122724500204260ustar00rootroot00000000000000# Check http://editorconfig.org for more information # This is the main config file for this project: root = true [*] charset = utf-8 trim_trailing_whitespace = true end_of_line = lf indent_style = space insert_final_newline = true [*.py] known_first_party = split_settings default_section = THIRDPARTY indent_size = 4 [*.{md,rst,in}] indent_style = ignore indent_size = ignore django-split-settings-0.3.0/.gitignore000066400000000000000000000025401321122724500177330ustar00rootroot00000000000000#### joe made this: https://goel.io/joe #####=== Python ===##### # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] # C extensions *.so # Distribution / packaging .Python env/ build/ develop-eggs/ dist/ downloads/ eggs/ lib/ .eggs/ lib64/ parts/ sdist/ var/ *.egg-info/ .installed.cfg *.egg # PyInstaller # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest *.spec # Installer logs pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports htmlcov/ .tox/ .coverage .cache nosetests.xml coverage.xml # Translations *.mo *.pot # Django stuff: *.log # Sphinx documentation docs/_build/ # PyBuilder target/ #####=== OSX ===##### .DS_Store .AppleDouble .LSOverride # Icon must end with two \r Icon # Thumbnails ._* # Files that might appear on external disk .Spotlight-V100 .Trashes # Directories potentially created on remote AFP share .AppleDB .AppleDesktop Network Trash Folder Temporary Items .apdisk #####=== Windows ===##### # Windows image file caches Thumbs.db ehthumbs.db # Folder config file Desktop.ini # Recycle Bin used on file shares $RECYCLE.BIN/ # Windows Installer files *.cab *.msi *.msm *.msp # Windows shortcuts *.lnk #####=== Custom ===##### # Temporary files: *~ # IDEs: .idea/ # Test database: *.db django-split-settings-0.3.0/.travis.yml000066400000000000000000000006231321122724500200540ustar00rootroot00000000000000language: python python: - 2.7 - 3.5 - 3.6 install: - pip install tox-travis wheel script: - tox after_success: - pip install coveralls - coveralls deploy: provider: pypi user: sobolevn password: $PYPI_PASSWORD # password is hidden distributions: sdist bdist_wheel on: branch: master tags: true notifications: email: on_success: never on_failure: change django-split-settings-0.3.0/AUTHORS.rst000066400000000000000000000004101321122724500176140ustar00rootroot00000000000000Authors ======= * `akaihola`_ * `roxeteer`_ * `sobolevn`_ * `phpdude`_ .. _`akaihola`: https://github.com/akaihola .. _`roxeteer`: https://github.com/roxeteer .. _`sobolevn`: https://github.com/sobolevn .. _`phpdude`: https://github.com/phpdude django-split-settings-0.3.0/CHANGELOG.rst000066400000000000000000000052331321122724500177660ustar00rootroot00000000000000Changelog --------- 0.3.0 ~~~~~ Improvements: * Added `Django==2.0` * Removed old versions of `Django` from test matrix * Removed `python3.4` from test matrix * Documentation updates * Adds more `flake8` plugins to enforce strict style Bugs: * Fixes Windows problems via `#21 `_ 0.2.5 ~~~~~ Improvements: * Added `python3.6` and `Django==1.11` * Fixed `tests/settings` structure with `basic/` folder * Added documentation, which is built with `Sphinx` * Updated `README.rst` with new logo * Updated `README.rst` with `docs` badge * Updated `CONTRIBUTING.rst` with new information Bugs: * Updated `README.rst` to be compatible with `PyPI` 0.2.4 ~~~~~ * Changed the default Django version in the requirements from `>= 1.5.1` to `>= 1.5` * Added `setup.cfg` to support `python setup.py test` command * Refactored how the tests work * Added `tests/conftest.py` file with the fixtures, used fixtures widely * Changed all test to be functions instead of classes * Added new classifiers * Added `pytest-env` to read env variables from `setup.cfg` * Removed `run_coveralls.py`, added `after_success` section in `.travis.yml` * Changed the `README.rst` to be shorter 0.2.3 ~~~~~ * Added `django@1.10` support * Now `include` function finds parent `globals()` scope automatically if not provided * Added protection against infinite recursion * Added tests for stackable settings definition. See `tests/settings/stacked/` * Added tests for the new functionality * Added tests for `django@1.10` in `tox` and `travis` * Removed `3.2` and `3.3` from `setup.py` since these versions were not tested anyway 0.2.2 ~~~~~ * Now supporting `unicode` filenames, fixes https://github.com/sobolevn/django-split-settings/issues/9 * Tests structure is changed * Removed example * Changed how `MANIFEST.in` is defined 0.2.1 ~~~~~ * Changed ``optional`` to be a function. * Added ``test_tools.py``, achieved 100% in coverage. * Removed ``setuptools-git`` from ``setup.py``, now ``Manifest`` is only way to provide ``dist`` sources. * Added ``run_coveralls.py`` to work on both ``CI`` and local tests. * Style fixes. 0.2.0 ~~~~~ * Now ``tox`` is used for testing. * Added ``coverage`` information and badge. * Removed ``pep8`` utility, now using ``pylint``. 0.1.3 ~~~~~ * Python 3.5 support, Django 1.9 test-support, documentation updates. 0.1.2 ~~~~~ * Fixed Python 3 compatibility. Fixed `issue #7`_. 0.1.1 ~~~~~ * Fixed `issue #1`_: now works with Gunicorn, too 0.1.0 ~~~~~ * Initial version .. _`issue #1`: https://github.com/sobolevn/django-split-settings/issues/1 .. _`issue #7`: https://github.com/sobolevn/django-split-settings/issues/7 django-split-settings-0.3.0/CONTRIBUTING.rst000066400000000000000000000016251321122724500204070ustar00rootroot00000000000000============ Contributing ============ Testing ======= We are using ``pytest``, ``pylint``, and ``tox`` for testing. To run simple tests: ``python setup.py test``. To run full tests: .. code:: bash pip install tox tox Make sure you have followed all the steps before submitting your PR. Before submitting ================= Before submitting your code please do the following steps: 1. Run `tox` to make sure everything was working before 2. Add any changes you want 3. Adds tests for the new changes 4. Edit documentation if you have changed something significant 5. Run `tox` again to make sure it is still working Other help ========== You can contribute by spreading a word about this library. It would also be a huge contribution to write a short article on how you are using this project. What are your best-practices? Authors ======= Do not forget to add yourself into ``AUTHORS.rst``. django-split-settings-0.3.0/LICENSE.txt000066400000000000000000000027771321122724500176020ustar00rootroot00000000000000Copyright (c) 2013, 2General Oy All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of django-split-settings nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. django-split-settings-0.3.0/MANIFEST.in000066400000000000000000000001051321122724500174740ustar00rootroot00000000000000recursive-include split_settings *.py include LICENSE.txt README.rst django-split-settings-0.3.0/README.rst000066400000000000000000000063261321122724500174400ustar00rootroot00000000000000 .. image:: https://github.com/sobolevn/django-split-settings/blob/master/media/logo-black.png?raw=true :target: https://github.com/sobolevn/django-split-settings :align: center ---------- .. image:: https://travis-ci.org/sobolevn/django-split-settings.svg?branch=master :target: https://travis-ci.org/sobolevn/django-split-settings .. image:: https://coveralls.io/repos/github/sobolevn/django-split-settings/badge.svg?branch=master :target: https://coveralls.io/github/sobolevn/django-split-settings?branch=master .. image:: https://badge.fury.io/py/django-split-settings.svg :target: http://badge.fury.io/py/django-split-settings .. image:: https://img.shields.io/pypi/pyversions/django-split-settings.svg :target: https://pypi.python.org/pypi/django-split-settings .. image:: https://readthedocs.org/projects/django-split-settings/badge/?version=latest :target: http://django-split-settings.readthedocs.io/en/latest/?badge=latest Organize Django settings into multiple files and directories. Easily override and modify settings. Use wildcards in settings file paths and mark settings files as optional. Read this `medium`_ post for more information. .. _medium: https://medium.com/wemake-services/managing-djangos-settings-e2b7f496120d Requirements ------------ While this package will most likely work with the most versions of ``django``, we do not officially support any versions except the latest release and the current LTS version, which are ``1.11`` and ``2.0`` right now. This package has no dependencies itself. Installation ------------ Install by using ``pip``: .. code:: bash pip install django-split-settings We also recommend to try `pipenv `_ to handle dependencies. Usage ----- Replace your existing ``settings.py`` with a list of components that make up your Django settings. Preferably create a settings package that contains all the files. Here's a minimal example: .. code:: python from split_settings.tools import optional, include include( 'components/base.py', 'components/database.py', optional('local_settings.py') ) In the example, the files ``base.py`` and ``database.py`` are included in that order from the subdirectory called ``components/``. ``local_settings.py`` in the same directory is included if it exists. **Note:** The local context is passed on to each file, so each following file can access and modify the settings declared in the previous files. We also made a in-depth `tutorial`_. .. _tutorial: https://medium.com/wemake-services/managing-djangos-settings-e2b7f496120d Tips and tricks --------------- You can use wildcards in file paths: .. code:: python include('components/my_app/*.py') Note that files are included in the order that ``glob`` returns them, probably in the same order as what ``ls -U`` would list them. The files are NOT in alphabetical order. Do you want to contribute? -------------------------- Read the `contributing`_ file. .. _contributing: https://github.com/sobolevn/django-split-settings/blob/master/CONTRIBUTING.rst Version history --------------- See `changelog`_ file. .. _changelog: https://github.com/sobolevn/django-split-settings/blob/master/CHANGELOG.rst django-split-settings-0.3.0/docs/000077500000000000000000000000001321122724500166725ustar00rootroot00000000000000django-split-settings-0.3.0/docs/Makefile000066400000000000000000000011521321122724500203310ustar00rootroot00000000000000# Minimal makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build SPHINXPROJ = django_split_settings SOURCEDIR = . BUILDDIR = _build # Put it first so that "make" without argument is like "make help". help: @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) .PHONY: help Makefile # 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)django-split-settings-0.3.0/docs/_templates/000077500000000000000000000000001321122724500210275ustar00rootroot00000000000000django-split-settings-0.3.0/docs/_templates/moreinfo.html000066400000000000000000000024071321122724500235360ustar00rootroot00000000000000

Links

django-split-settings-0.3.0/docs/api.rst000066400000000000000000000001501321122724500201710ustar00rootroot00000000000000API === .. automodule:: split_settings.tools :members: .. autoclass:: _Optional :members: django-split-settings-0.3.0/docs/changelog.rst000066400000000000000000000000371321122724500213530ustar00rootroot00000000000000 .. include:: ../CHANGELOG.rst django-split-settings-0.3.0/docs/conf.py000066400000000000000000000121741321122724500201760ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # django_split_settings documentation build configuration file, created by # sphinx-quickstart on Tue Apr 18 13:49:45 2017. # # 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 sys sys.path.insert(0, os.path.dirname(os.path.abspath('.'))) # -- 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 = [ 'sphinx.ext.autodoc', 'sphinx.ext.todo', 'sphinx.ext.coverage', 'sphinx.ext.viewcode', 'sphinx.ext.githubpages', # Custom extensions: 'sphinxcontrib.napoleon', ] # 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 = u'django_split_settings' copyright = u'2017, sobolevn' author = u'sobolevn' # 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 = u'0.2.4' # The full version, including alpha/beta/rc tags. release = u'0.2.4' # 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 = None # 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 = ['_build', 'Thumbs.db', '.DS_Store'] # 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 ---------------------------------------------- import sphinx_readable_theme # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # html_theme_path = [sphinx_readable_theme.get_html_theme_path()] html_theme = 'readable' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. # # html_theme_options = {} # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] html_sidebars = { '**': ['localtoc.html', 'globaltoc.html', 'moreinfo.html', 'searchbox.html'], } # -- Options for HTMLHelp output ------------------------------------------ # Output file base name for HTML help builder. htmlhelp_basename = 'django_split_settingsdoc' # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). # # 'papersize': 'letterpaper', # The font size ('10pt', '11pt' or '12pt'). # # 'pointsize': '10pt', # Additional stuff for the LaTeX preamble. # # 'preamble': '', # Latex figure (float) alignment # # 'figure_align': 'htbp', } # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ (master_doc, 'django_split_settings.tex', u'django\\_split\\_settings Documentation', u'sobolevn', 'manual'), ] # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ (master_doc, 'django_split_settings', u'django_split_settings Documentation', [author], 1) ] # -- 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, 'django_split_settings', u'django_split_settings Documentation', author, 'django_split_settings', 'One line description of project.', 'Miscellaneous'), ] django-split-settings-0.3.0/docs/index.rst000066400000000000000000000006001321122724500205270ustar00rootroot00000000000000.. django_split_settings documentation master file, created by sphinx-quickstart on Tue Apr 18 13:49:45 2017. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. django_split_settings ===================== .. include:: ../README.rst API Reference ============= .. toctree:: :maxdepth: 2 api changelog django-split-settings-0.3.0/docs/requirements.txt000066400000000000000000000002101321122724500221470ustar00rootroot00000000000000# This file is used to setup env # to generate documentation. Sphinx==1.6.5 sphinx-readable-theme==1.3.0 sphinxcontrib-napoleon==0.6.1 django-split-settings-0.3.0/media/000077500000000000000000000000001321122724500170215ustar00rootroot00000000000000django-split-settings-0.3.0/media/logo-black.png000066400000000000000000001566621321122724500215610ustar00rootroot00000000000000PNG  IHDRTdgAMA a cHRMz&u0`:pQ<bKGD pHYs+tIME :4Uz 8IDATxg`Նs$K^0.qL!@IB B$H:$PC`1`n˲ԥݝ{3wvvrmYO"$fӉFhvjĎFh4[tFh:Z5FhAh4]h4tFh:Z5FhAh4]h4tFh:Z5FhAh4]h4tFh:Z5FhAh4]h4tFh:Z5FhAh4]h4tFh:Z5FhAh4`h43kDL_@ehGFicwFCQMD,$"u_DaޘJ+1MXVdhAh(yEXJd*dkkQY3G5vk42]㎓FcS Mou5CM]`_W]:nhlD}}R4@}C'r^= K}GFiCk4e ?hJ&Q][TA2d t u=  c;b㊪*׫'bt8k4 6cHZ^lBh)a@QuToȼ DXVQT Le=򊕫p`Զ "zV]ig(6 #\S+?E#a5ND$}l~bUp2v~|qG〱c(dFFȵ;^k4@jMӷзzu0@umW=׷`F](> T޽h$jqhZG FӎxYDm'"jjn%+V/rm-.qX RJ@DHlv=??+~g9N#fېRsz->s=7_GX }&:'S?.Yʶs6Us.&3ݻveΌtM'Om9 "|w>gb Vl3SF*Y,'VS9qA7U-rCRrYi)O4f=M[ZcIBǞ~?^ "5+FP`23b1ΛϷ'<|mTVZJD<fw'?s.榦fmAM5LP3v',UsLcB lɔe2)O]չ`!ҎQ{Ǯuk:vgd2w`GR`!_$Yh3Z5e1^׻'UVXea'[}+RJ-|e]^/<ޟ?k43 2c`$ò`h < x]:WԻ;zwGyڹ3u)CRt**mYd AKA֭IxOJR)olFTb]M ֮_UjZTB՚\]Sד A-N?"#7vd8?q)/Ǎ[gk4@ CEGON?oF(86/q+ۊfbf<\-Y7 mc5y~X / yH;ⶍ٣C`aCЫGwKi f77176׮E˖c9g!._sm]=}BlƒH'FCw׭^5MD'i:$=ƫ֬W^ß}M*m,oDaP$ΜOġ2e16:Q{NZ7r|`͙c4.F5zѣomnvjMpӧ9sQv{ADi*hF9 =w#0: ?hr8|={*Waϓ6#Z#lǰdu]Կ^YJhZG Z/~s?8h5-D~ɵYOz互 !лg:p8H]#+L2 P;Z4{[|qY8.Z~6|/ںzAdYV8 UyoCD M|Ϡ?ƬkMYтD(hJ3\v%ZMa(تfha tT:ͱ=Ns 0C\,nbQDcϘMMx0qʧ\ *?r](jJyQ{m=2UոgG]|ęl2+=gsBqLg,t8GnzT"Y"_,=h)%f_ȯO|/3s.b)%, -i{RkθGߧ:u.)Fަ=0l*Z55qΕ'Ӿb۲JߘwEtx&38x}(5ұZ!oŪUS/2e,՜ࡊ<ƍ[~31]yDѡ;M{B f@Md.{^{tjQqض,8:pSa!@*̙|'A.yd++koS/ /L`D8(Jq>pO~Lg|cC!*q֬C%0Ms&i4[ouGF$"0oZl-bEW޳de H))א!te ?F J1dwlxJ; @A,FN˲PW߀?`1 V*lV}j7Lo=ܯ/K{5f!>}<𲊕Kk14j)+WI'йLzXʭ&]E60>`S'{pu`&I)\=x0jp6(xs̘>Ƶ 8h{=‡1,ٵf!rS&\޵+>wrJ`Cy7^Cg|"wR*ڻ.ۜ-u,v"B޽0kBZZ36M,Z|)k &ZwA QܶiɊ  qx`AmGS5kv9T4"AĢe9V:- Y,CJ;w킫/:~s4bWׁ|®bזeҨ=A&[#43\Maf4i]u5MS.TQ{ 6Ju{cs3zU|'JdfYOϞs,k+Z5Qe  *)-{?tQs5@ů]Gtw !*=vc=JJ0}*#"eYܔL҇}aѣHF"&hꌙ||WV&۟ZV)셋QΝu<]т%$RӷscƜ-K䁌0 xxsO?4|n*]vkӚ4 ;b/,XIK`0(P (X2`i_sS2Ǝ&YUof4 2 eEeOefzohƇy ѧQB f"_,u/_}uZA8B J{.U5?:FBwoIGt YD$وA/5M8hqd "</3<ܜLm[(7Nl͜7KJ:aߑ{S ]vt.C>1x|oy#ɌV¦!9ˆC_@;PxD$ Ю-! .*(GE>g.757iRGMf}ǑxZf̙˿}K+*u#g4{b7rk׻ݢ4|SDD6^t9ٶŞ"% >tMan6mʻw*V"x7_>t0z=aPNĈߝ iTBHH֫/9FUz^V?V̛iމb%lYf؞7rȵU< ᗮ%i^Eֽ 4 mkv$*IUk?v@fe]ރ=GN8~}z?dC^ξd4.HڳR_uy+.kKm{Kf9 4@]sf5  t-yME'lJsR"Psu'@rf" Z5;mkvΒa'Sxւ#~[k7|~=h¸|qcѽKO~3 0nRçwbqn9(" DʝjUyG_TsY?7'q< iXTtBpR 0b:QT}յ0D8l'Si9tw_}`kZxrO}c B Pݱ-;e3Aně>oH`56lYb/w]޵ nti'G[R׮lSk;9nRzO'W_d2:d$)E39N4LX uK1|tqP5WWh@ZE='D~!*j˳\ %_B.^Rns! .aݝS᷍G ;|6 $`w[y d}7y5tZN hfՎ♗_Em]ⶭВ qH)9њR@pN;㎉1YbL/˩W.dXE<#ѽ_4/n@:%ВoUWL ܞX9'3z:Qoт//Op<#ϓQUɲADlAM0v4k1jaa胨sM{C[JuG_kj`6T|ɭh LȽzu.UYqꩻ-d9+%f@kS.#wQQ7:k+~/~&˦z0La\N5UONsW&R7!rO:H/~zꑹXF݉޴_~=T] 4qՔ{׌v:RR"\ Ы{wHf7}NKv}ŮM+ ̎oik,cfg}6|ySZԃװsS IGB9dv%P1tN"s[<_式]σ/oꩲ6k+Z5y]l5i\aݔ{nr@u'O9N^}?0f.`_cg]%<;NoR+fX8Iccimn@; JL |*8c'L|υH'pRLN!`ɞ#w*ϟ廘5/< 0n i Rn۫VwωfG5ۍF2>-]ƖiBJpINingPͰO2on@깿]^,AB$Hx. .HF>`x% v%C ciXZv^~ư7fjqL Wagdv M!:w'9TP*B6ճgZDcOW3?}/⽇@tV!ݺg~gAqT6~~Af)sVѽ5;Z5ۅhej<[2Ӈ=8(UV:sN> D-Nnw,g~ҎI% aO :5k~&,kְ')KыOߡLX">}=$H Y 3@}M hnp:;?N4c2{ #xS^ CDG<Ͻ&$?^srٽ/k\S]3ǟ Y۱fy_ tǏMg|B&ֵٟkp_IjF)'!]=";H$œ=ÄrL,ZJd:I NXK? 2tW33AzLeθ KO2c!  +W-Fj 8n r^:f[X_] >Ui4т.odטldvf{l":WejIGt [A"ֺQyrڵo (@bĄD(.! pcuoz@f9 :_g 3Qs HB9Eߡdp&H5+eoph$}IUރ\CPsȀ?ܶ,f4"M{G fADhln?ɤXD[#Y5̌D~x (*,PܨuaJ [o Q]Xp%VqJ[Pf/H$9 [N60Ǥ[1|X Àץ'jMݺ-zT1l(!H9i B; !/x= 4tPejh R4$0jx+WZ֍`EDLp5mo4+ή)w="x{%7}yϙ2U-Q^}N?8YNE6E`m|)>Un9Fт^з=xopOD !ԴJ>9ɌqwPX[öu+X*k8*Rn bNrR6jׂ 3xa6b1pQIګUWdA~0Lx5sja3Uh;i`bV˒T(aY@ 8 RSmIa]M 6qRuns.4tvAM1{IM?EGLO pduUe,L2bϡCP(;o3E =2ȫZoGL1%@?7gpj1 A\D>lsѥ঒p?yAAM"ѱdptvLNfx1g@fzeN=ht\J', 00OdEڕvz14lk f.B>t~w_n{yu#"@> A8ѥVs$}`JŠvɌ+;m ';yla@٫?DaZj;uC@xSPSSu""Hj=nmZKG=>#Fq2- 4?bJƁ4;ƭz M'6;`*+-Ҋ Z0 #k e[Lk8㺟^@]:wIf3X-d}5AfI(9 OF%H0ܗ` 1g2 '_J ec9z 0~ qBd"_\1?%"n^w<{xf',`04̃O'sA޶[EM$ޝI4-H-;P-3=]&)NPsɣ$u+++;>@<ʻrL, RCa,v`)%w2huAٖYkHNyr7,M{ [_} fZβn=$~BJH2G'EĜB'BAE P A{>٣/NUZpa`H8)6z &kIMV>6~?1l(vۖ?%ö,Y5o>W9iWCɏ5ەH xzx֥ uЁߨLKVTpSs3LUlaW}Q\T/:TvU݊n[*DԹ;xTaYHxJի$ ӷ48 'E6 u隆3wD-s$HZGX¯&όc) b%ԬaoJ:H$ ɒ "O>:2:z~ŝhok1__(j4-FJ(лwUH; !PO>ztٹg#2Dn+z$Q < pҴ}(@,Lb2  n֣ [^0F=@zg62'Aj)r',MŒv"% &/P] 9lbO9GTmxH|d2!D8했.w8bYhZ5;e䋯a v++i}Mn B5U-N̓Oc6gE}}!!Q]jW{ d2=3%HP3UٴkVÛ;ƀ ڱzvsؖ>7hJ&1|n4nh/aQ IqvQFo2JKaH !L!4f=i ۹Fg6N<\o!+A6$`3.dJ+9 c-M\K[nK[g9@]'։S}!<$Kg\>nXzN触*ܮ vXG0~htMɬd<"ds101.;lZ5,k=xiy<} #9&7bOj=lQdxkoB0Z{#Z3"v8o?l$e1esCm9m@^˼rr{$0H}TT҅Ao&o4{N9ff۶X>\֤PxuL^2vKx Ϝ3յP硠 { #JF2+y ;Y7}DTR ,ųUk۴\{-,H>p-S#,a}bO0 ͞•ΔlkpѶܭF1,xh534 ,Z/]0||_HPZkmk-p\̞!ExRG.4b \8Ne[6~x M#=I,]f+FrtN=z3bMF@RM-ۼEH>|#9SY |1lt!NeFg />(YWl%˸ =@AA٦d| $\σzP ׃ώ _oJp8pBlk-D8wk1k+qĞCG.ў;bȟg?Fx~|3 y=+F`oϛƩCID]d\[#Wc Ɉ9D2?;EAY<"kF>=sI1ZæiFeK+L2l~gd )_N$i\3qck:Z5'@W״2&a!eеOTdy-I! f K3F4 N=z b?=nBQVz^˼b!r4\lS|)E=L7Rس};S\rJ?R͎3_6rW1,sɗR쌫̵wJS%u*(z^t[Xnl"۲4M2 CAxtR`p=uec3ME ,_榦B !{n!3ݓO`uDfiG<+u[%--s"YyXZ1t$@c'S. d,s섖3Ήi fmi/hJ6 n6E BD,+ze&ѯWmP{ɭd=r,u׊$vn DU|6%PL:b~%A--% ] A%@o+>}zih@Cc3@ʝ٩Ђi F^AŪ0MAiTtI)b۩\ %~t#YCYKvIo[6KZ+s77ke fNb t65mtMQ\zu0=[23öm @&~}ɵԋ`;8,/-Vb񛙛j7.YKf_B.̕eNcK)  ;I ]P.]8zo2ԜtPkѲ 9 3s<}t-,uԩ3BָlQ'^?ocnn Dz^|ʻwem)Y<^C}88k5bڵ:Mbc17vPQkwߒAI[ `v$OIEEAD޲-,s3,>Bzy8t`j8z@c2KaXH\zy_-sxoz.kg{wLCSAfϺ(Z-dM[k6튪{c*E;q]_UUrj,YQW`e\.q_f۲vn_"#=_$^Q9ٵl7+(V(5nenf'e!b1 P7~鴳%5G QboeaM\[_e++1b,X ,ŊUUGm]74“e0E~L2g;SWw.fOP33u:ӯQ1%-lVs~n LjnN㺭Fbk%MTz5WVUXl\UUXQq]u0,ӂa$qղ=,! nL(KH Kz<D\KAyF%ޥ'滸eBCZRՄHg\xff qyi2-NR]i[ke7ކdZ$i%D!,ӀeoDȾ&.$J3 >x.'$\/j-+ V) U]J f@뺐R"SQ ԽKb@^:h Bi+kMXr%!f|9-\@ vQ ^Οv ] 5@*6.T MM]&?X/i2̀|(dyui0 e}z^ݻ_Կwգ;& ]ӦhAl3 ‚0UBu2(#9Xbܾso]%g9cv{L$ c`2RJ<2K 0 @R*Tݻc0d@>?N(*(m Syh-mFDRnw͎N;UVy&v®#X汓/%+r\[yf Bm]Weӊ韰cZDQ˜?%_A+Z̷5q\sH$ ЭKY5BO TKx,N֭m)u;ۖ\1~;Uf0suZۀUv~$|-SJѴf!P\TvO,ч6^׮A_uT}7I` :M֢9+׬A:VU˼nדXı."+ U w"|eU{C@umVTBԳ~ѽ ;Rà]7:fW\T˲rokFiŪXуF_P3G`t๙׈n` ~[z|J8]M-eK?ݯ^{d_x-׎ VV檵`f`[ @MVeNӴ9SⶍƦ0[gg,TTUaye%wڅ 3mj[hSۚ jMpe@s`0:wwǀ!B^љ؛`ۂdj;'bA8 p!/ޢp*  fA=]T T^ͦad}~\XP}o4hZ5mNX IjݿϷ aPe^t9W3ޤn1gׁ2y b>˦z8bx$`Hw1XǟPc3iHc%k$dɒc'\DW$H~;ޜ/X4K6CJ̀a@ ':,{qv+q fӖ}Е-^:&3.:jQ״;k)Q: ! nF[yߛj-^% nN0wBuYm\'׬F?"s: װH3$b֓,}YHeD9==vRyIlwY]A0,_49oco}iXo8y$֯bu}cuu > ʉ g#7+&D`ւHs$ ÒQ޽;z@B]MP:UXP@̍pPKD9P$1>/b04fΝf&̸}uڵH=r2VHl@, w9I._odM0<@h\@׬\5ذ@*ϒLbK`9%{v'0I AlMe⃂dX[#72`rFot_g%"Y=qmn% ag,}@u 7-빀~b lcNK?fMz`OXCA=T a0xRv% G?ݭ?= tCe S-ܩp+ՀD`>qͨ&.Z+*)kfÇ4HsMC fSa!{ yDM$@jJ .^{saV9h``VZu?6ś}B%-IMyvejfB65D(b N%s`D֭U8/Nz$4b$gdst:h?tygׇn}; Őv~ =6FB.1l\F̤9̽pciXDR2[qԷ:ۉ@9tv|WbY#&#af:13SdyɷY0O(QSϕ?X2cH&(H$H<H; ݝv/ֹ}5uT;__@0tsFV2_N뫙Vo*doqO Iplt2/}~} ,뫫sV9^ps#$g !@]zrH8(/ Ģ ̂ y̩ͰՊѢoȞY'aIRWTT:A4.%݈j׃M w۞?nwY.tœ 24[#& <48 Ly=,M*Uz6ЙZ͟3iD "Y׿1)''Oݺt&A c5h1#@r\/~g]vEI,##d N5F7zى\45d[~-۲߅*@^:8yc&B$Nf5a03}'!gN;DdHȾ6_,[s( aq !9_W. ؑ__iXQA8/Yʿ_+_~ |\75;-v*SwcG^%0 u xgoH(aχlWb,$rs4փE&ܱD]&~{ƾ zIC80AU ׬ݟ >T.v%XAkX|19SaP0CX̣ς9j K`uN~apW`o<ցp\oMM9uWj 2M>kkoI~Ξ^5;-蚝uBGA" RS> SEဝ،ibyU ` 3AkKF\s;S=‹w"yU%[|?p:`ғDrCC`u,w)a$5Ad~dHUIY<<{}9}&O b rN$"bܫU5ajal/kv»~Ga)8e,eaxg&k3vtM´x7وԳd934zCrMROwi% ӂ5y1!ޏP!w 9o=ΤADo!4/ד3mKbta w6 86 j <$X "L5nl}磏L3|yY"H)9fۨolǟ{t5|UUz9f[4;vѵ q7Ӂ_{}ѹzG]A<ed{L`W`z.=Ct*s 3q,2BƸ21z5|%-2iRb ODr' P C8 w\< ǀ"<*™_x_Nd !ksWߢǓ4AB=/p(ds##$uNIYo)zdBRV윖UO0 Ȗap2`g_zB B"GeU}Q~p)'GKJ':YNт)ȵr9 < XnEz3mYf\i8È"3P#2@NWggHҰȭ^K=NBv=$3iTeR`-"]9bd|6ˉ~3)a0OydQCzki1tL'@|GF-8,T@QgXSgA\lЭZ!tp8W-bZ ?VNsfC?/^vLY@~k=gXJɦa0s+v?}#[8DFxh?QX2=PpH3ceg|v*q*$i%D #qaj~tNjKN3X R0ή3aҧϿ#'"OԍaQ=!zɯ̓n`=ĥe۩+=y)@S=R]ޚ 3L29د #zqVmwX6̢R6Ift1t 'c?P ]Fp} XnMud#@iHǁ8\s3crkT}}akyOU*Ky`n ĜNEA>5r:L)%xkd:c&R:"|`pa@ޙjK]тa 8p<5tNqb!PSWϏ?_ht jgD=bEd% d8̢Rĺ%*. w>6=+QFfﷰ=fNc"Zr'\a} Q\_w+,ݭs7 %85%n(J6F&px&A>hRJ?0G7|#bfVk!e2d)3dJK$,ٌ'`xQ~a_vRj:<N=6Y)lqr\ݺ#)hQlSkv*~W]Щ9_Θmp2;8딓T=z(e3[BGF~7 9 %Gk}Q7RG:N=k&ӂ9VECc ǧFAk ѣ/9M^:~ZdJ0d0\C3kn9L&[$#oTT saSIa=]#1nj &@8ibq^NơNmYtºu|eiT# [~=O1{Zǻf{4;Eد>iaX%.}9TZXs[skc0;L]o2x]p`K2K"Y7۪>#ZZ %~?}gy8-T,Lt"ċH6y$) $H! œ<_JA!d\fR,Rlx)e1CiLVEA1{k ["sX2l8I>A`1iXVρ5Y߽ KTh%Kw|=[y?~"~iI'`eJt]]fBY|jɧ\f lkU=Ys/k/PG,p9Qwp^9TbfsAC1VWgEb8Xwz$ힳ6IIؐ+/"C f٩XόP3UHOpMUv? ^ B Ž_b2(((-YAE:CPa PT1e s4'> kLp:mn,.Hb!|@ 1,kx b933E)g!8J1c1Շ(Yh)Z5;LB5R?9a⽆g^cGzY%P=ο GnbdϰBKk9 6c AT^Kf͜^6#j I~ Ba0He@ F, :((Ebb:@(%:0DPA HyT>W,`o"5k@Jo(k?; 0/bFF`ʞ+$.\Jc|Q#dfIۢϘF9hA״{p`SuM-~'_xM 08X0 WZ??O5l:%baWósE}-5ٖ:jr[8. #H=ZVZnl7Ar,Y,8'sKOPTP QT K`Njž5/,0LiL iml7Lž>m|Fb{ȴPU8ߨE"f~{ž.!"v\NGiZ5횬 עeq?̦aLL<L'_x }&E[<5!͌QK$z~mnx" ezfvLgKdl8BFĻY@}VM|}w :u,Xۜ&G'?QW;=gs"'`8a;!-Ȇ~Ϻ.~Xt%8a,K?Zf4H3l$_O~mGlf?B,?OF,-&# #Rv!$p,A%{If-ݯT[؂æٲ!Qؙ?-[I/~C;"4~:/j"'o.[v.=Nf*OA&b=OD w'<, %4)u]ohT:>$Add]򾗇u= 8{ġgX%oj4 -JN/._xMͬ&1rLNapu!2 ׷zeD}(~HC~&yUH?r#{3&3ٱLlH6xN>r;s>gigYDykX蠒8*f VbOԋs{ǸQq_WV⎿=0pB\ϣO3  )a"R JsE,0K|C0OAR]5q뭷޺wBQD|)п'Z1ۆyl,1v,O`avv>N$ 732S$4A.x:0@R()y)Dt^[pI"UE_B.wR Z Md]x'^,u/DM ĕ鶿ϯMcMW֬ωeY+/+;s?v Q2єL`%|QN Ru=ʻuō?zvfcvCVq# iv4^+湱"ZTJɦicϾO9ҧ-"oL};$Q]~_߅n`dA$aV{D9&S$l>EwA=;:/}0SG800BUҎC#7D5z3{iEVL>f|5ֱi0//U+-.ӿ{L}~4-D5킨h|7sɦaulMprEVů,d&jͽ#*hV !P;HBQ7{G̡JBZ|~yGyCJ-6.9L=w܉_HR< #k.FтiD-|] OK.,Hd%֭hZYtfq̶gwkT4+ni%}%.=rf2 jD8-Wi=gB>k0R6y2#h9b%n&ށ'T:?>d_RA"Io{:h%Fj"rMGnbY` 50u9 ѥErTvt)'몉A* apҰ uH +̡b/i ^"%jZiv~o.;u-qȍ x8b(+-ٔFx6E[={cFb)RJ-?N~l V,1SߓғN`f _9pI@8i[恘w4\Q%t/ .KUWKaz5+]1G1WA ]u/Q{ 'u9HlZε74鑧{~L)f1)qoI`rDQba, .sfp0XJH7@)J7Уj4>8,TO=?'56kZ ]nȈ:HJ%ŸG׮pp toTN!33`OY(%3@t7'SÎr[}Ȕ_!}> zlܝ~"Zƨ{0[8R4~tǵWQYi d$n\ӑтiF/:,[#E_ %3-iZ:n`hدTIɲ'&~g_y Ox }1π礇>~h_cnnzh1BhA״K$2᚟^D^az W98, g|"=~L]ʔr#>[N;T=h,UTo$UY zrϭ9<=hCǓ|- ,"!Uq*2<Ϸ"]ٙ.wM%c3f'MF"p]oz)xYqF_gԃ*.E*=*[<({.l=?! 3O:+L1NڢFӡ-tM%Ϳ_qOh#)L":<(kJ[Y_}O?N9h,#b>|Cw>Rt4Z]&W_|NRxoΠe̕'&zwn ^K鍉~5ff2 Ba޼3M^{?gB'iv5k=*Q]|!zt Hu8 !x?M\3*-ՅH130v4=zt)NJ"ORJ*'rU]w_;[-7~J#]a#1xnz z!-_A]3ΉX,?QA;XlyLmi4; Z5Չ+*?]vΏ{,)NA螛G3RYJ`CQyZo ~q8_K\Ay)7ᳯ?"]r38*տNqĀ*Pc#"Ys~kleY h $3l Ͽnthvt ]SscsO?L A ~#hGlW0If޵ 7ҞCv$]1ۆTCPc1TT~~ÏqчDX @0 Y8[濵Hroe[/ъ!ᇟzo?I$qb?/ g ?Ao"5)%Lä_z?_hslkv "4;u~ TV-GȦ$‚\y94tսE9qtCRJ2M%5[uЁ~GY ߲l¡dfGM;.3Xl9_-4mkvrE;Zݖ\u4N~x{Grh/*" "$XW]-iu~zIq  Gp""T gWޝW{VKm[aBkB.93"7ٖI3Gy_sU41R7tXkv:87c}[l'`Æҝ] .m[P dy߆1@f,Њ冘}w=s۔ nX]f &OϽNl0&勇DPgf_~ ~0vVrMG Fr=J,]*6 ; rcⲍM[NpZpax#^Θ>s-d* 0(V9чsg!l֮|F‚DtvMC FEuXW]ʲ÷ O \q(¾3\9#u 82=IT^3-}~%+Vrm]LӄelHZϝKfFqAD0M#jwc9wQUHhAh6 PEU4TIz3ciY6ok-V5,]GS2ʪ<R|`!f͞`iJN;iH)aY$av{IˑJaF5Ŝ C9[$g⑧áC>}.Fs]v "|טx ۶Q!ĆjJB{ΛBQo g &&hW#<϶iwߚoilJy`> }MA FTv{*ۓ&#J!FbV@Yy-Vt m[aA&yp\ٛۄ}=σ'%\E̶1__7bO1LgzN9o V /TT&q"<0 A$OJ>馟_-ӢphAhZ!:Wf4 e%B̚kuy3h[}Cؒdi0@4v0~h{ mPӠ~=3A~f%tUkYs8f: odY0K:up]~zsMC FTS/Pj55r c9lmeNp^CeAb6tDF#~FaЭK;rqcG5ӝ^+WiXJ<ԜL= ?)s!ц8ã]8պ4sraܷHe"ȿK?pt  Xz*awP.eY@uCxn掮=`՗Ʀ-}PO ~G$rQtfݪѴsk4g0}L=Mlu 8DMxE.Ud`"y!">c@=M$q mDV gɵ7u&}άx>ch c20Qޭ_uyti'SA<)$>b2hAho8 L3&'Wm8).O/vڻ];:mϛEunȱķT8sDD}&-\ yUmd&(ȑte?mk1 hAhZ@Ϧ J`'hMjwlm9I2:oSݳp= rӃ>d}{=ѫGpjvk4>Z5<(Ab|ٹgщG{|9s&lۂ!s ]Ͳ׉[kQjt[n7pnuqj /|#WD,oo~SLgbhk4yt#"~{gN>(=cշ0u kmlĔU#kƆ69}WCeKcm$vúj-Ld-~-b2-;̭7s$o)"Himdg句h1hт!'ӥSQ!ġt/_SX 08f L)v;Wj+="vU|Mjk4hAh6JzZXJeY8t}axwa ,ӄ0 "l.՘Ҁ L[#P~]Mdnۤ8FhAh6h6;3wa4z=p֩'+L^,9orxJXZ O$/NR2;ۨ]l9Z5Dz1T/?g ޜ4/>֭K-[Z;\ ZSt9ܰOmVJ тѴ7k4[H#DtO}$1}{eYD7ڌ,w: @e,;Pbݺ[YJKQVZR"$Zz!6h6Fdf3;qc%E b`Y65"NRB/#&t3c~D9 # z yYe%v xx  Fn8.4|hQhBhvͲJJA8@s=PJV׭[Yhavxf٫|D s(P?5"!A.FFZ̙^1ճԒ=S̀<p.YO=:x_$pGhZ5vdV5Mewk!Q8k4-M{@%E9GzI βwi4tFh:bWh4fG]h4tFh:Z5FhAh4]h4tFh:Z5FhAh4yGQmq;3۳M!!RA,(`/޻Ob{WTY(*IB'lߙǔ&b;{=v-X` t ,X`,X`B%-X`K[` @` ,n ,4X݂ ,Xh ,X` t ,X`,X`B%-X`K[` @` ,n ,4X݂ ,Xh8ؠ( ($|f¿ fWYQQECͳ( 7k. teYYOgJQ̼,#IV<GE-g;W[[aPj|bGP&Sg %elݹf9٤|IBެJ@+A6mF&9Rހa))+S6 `mrn?x˯\B!tO9;îdm7q)2h4$zc^>p$B׎xЦUXѰ {W7.yIYr5yYq\l޾.sTC-X'aׅfnݹ{7Wu?wKkn:оujʱZ凭P ˊ@vC}޿+wYRSRL6|>xۚà ZYpHKv ͎Qf+֬c<  ](qq\Ǒ=7qY6X(vC`aaoׅ.C(ȲLڶyAaXF$(3&NH$BSp6 (#^v.q9(("b1DQݤP ^_=<;m݆,:e@s,Iz1m\^/zuI`(%7]a7acLOzkr5qҲ2ܟW{Zym&N?5Yb|Xzt,+HR e3x]XG\BfM@7AEL|<15̧Ivw-[X?uOn^#/ef͖pToGm^s;z6l˜pv'URKK8KK 0prf-\5/C4[ѷO/N8-^F$ޘl>DIbWA_%ۺ m 8y8XƽϸϾdm6oȤ|\piչb||pqsUt.APᗩ0=>{q:q3k}zyNM_N<?HqYj `$TA #jޔe(;w>!g=:`lߵ I Kx%N/Yc/ʴ'KPt'4Hyټ}G>h{QhÈWlj}>T/h U''ilRTR£/?D~A! ڧ3͚4#g9g*Z E?MQI)2~7Y{H)30wzdo5𥦐Kvcy'y<8f/\(x=2*VL6|YVXlï['-i/iPd(~3tu4u:T/i~[f W>K[Um?koKIMIt \ִ`$,Y8SF<%3fq#OjF<ǛףN\xZ?8+֮g7|kH2 ?V{fe.R<$I;ʕ7oC0|?~m:luϛogoI;U,B?6-pn)'jy Yn Ñ(%XkGE ];t u$>)Vn Nv;)~_*_3Wu?P׋Bw4]>FȘ{/!4 MX1nyK%SLH #()+g_b?ͱdeIEq\ Ds;8Xl9i>~A TdQ2 E%|2|XENV#:te;.S}6ɜvl6[)_e{5q-u 1H$7S~;C ) uLwynd;C9c q+,iVμn'+3ӐPP( F\"+8v6fⴙ\~ݔWPu/W-'ٍ7Y|%m v)+ !t:UeݭZ*:mO.lژ`!=$e+I"%eedesһ{WrQRVU>o6|Z6mrի3t8ьNcQgge20tlOjJ p6ïSel$Ɇ$}ym Oۖ-FV)|<+׭qv6E%%ȲBfMDQmjr92HFL1jK҇/Sy7 D8t҉tl fc뎝6{.&B fޗ`3C0&N{TOxEQ(+ufP:ibZ%ˈDxSReƍ2p#ny#gn7lG_O 3#X s怓 h|/YFAQ,kpű?$&w#r'`؈q]\rw m7C$ p_4u7bQ[yݻҮUKziߺ%i>; 5 ,ˤxd7j0ΟZw$QE&#R^"(22y }s͕ ʾ傥STLzEA vF;/{tA 2s6O}=Y\|PX wqm%"n}c)4]l޾{w}*a  mL$I!WfR\0&'xFj:P)h}t嫰+Vq/`{WFrz^|v'PTtO_4E)C֥Z;{_~7Ń zW{РỲcO2 rQ)G/=CiiJII&K7oӍJqxW{{"PIkEAJ~=Q;w MQ7TZ4m墬"[x/q8qt̜O0b1GIxz2⼳),.a¤)Gd@7ο8OU7$IHQ~tZdt8ffifンrLU0CŰظy+=2~1ɳ,䖑#֚L]N|eƿ2];V̽mZۯrڥ#Yt9)Q\k >f 櫝1O%ws'97>~aLU%b1|^ƾ1ÆA >d9ɜBc뎝Z~;cRn,^]; r%I"Ml*HOCJ mTˠ6Q)*LUJQ+*ANG5~ҡ=o<I#'L¯SE(c|75e&U`UkZ >|Ϥ|xitE3GSa~۱I*p ( Tvop8LӜ|ҳ9t]ytnߖ{~P,ԘsrF6n7}Ii/1ɈkFk/u=m۹ ph4JƍvH'‘HCF?C0>;wt5LՍ\?nޒ$Q\Z9 4y43 G"dg1;ʓq}W~%5zL( t؁H$moplDj@ɳ݅45AOjd.kSƌ1Ϛ !"oq:iwb)[Ut&IIfK2~=ѩ?պ CcYyw)C$El6AzgC2RVQ&;FX̨gD|[5ۢ@)L\.̚C~5?H7ߣ|,7(p$yU:25`][yR )YVNo'#'Q^u<S'FƸgDQ5Cߧ|~Y8c Joc<dZc`(DNx[q׌*#lFK=sBiYyN-;v_pji}z.Tx>  ]v)du kA+u'!w)*.n?0wNnݼ9MX1n!#O&@,#3=oUC^;u,1ڗ2c6`(ʵՠA  ҡMk f7m68{tģS~ŗt Fxjj9`Ү-^zF/FnFR~\#]NC4c&]vjR|W|>5pIQ жe u>Ц5^>] ~5APbq-'EQ$ ӡmkhJsI2کJsF4pprmwvKY t<@Jm2ԷdXQ1=5kp Am+2Z\4̤͆` 8hzwj()zNo} H<ʪUAMSTáPߺc'[E&KQ&w#O}ƹRKyIjPSaޒe^‘nuq]thӚM޽hcFO'̶@8uNu(e֤0T_-[&<~SB(jTg`(Ii|ܡM+|^oBzW2ڬۘgM5sc՜+otОvZY]ֈN6]I~qx?;'=:CvN4+.:".HQئ5^'R2&n]?>V͟^)_g%o6#7)ZPwMP^]pj*5N90HW$**4T7ufKmؼ9)ЧGoh$-[0oRhS ioYHJZە$A!R;8>Gn oP($.F,f<ֻҮ- s۴*Ou ? NsuYNcZh]p8Ԥ=EТiֹRH->&՗3yl/YA* nŖm;x&>-Ms0 ĠN@jw".Jqa)La (X-eQD,Z7ɡMj<hiԢ4`{HAQQ8&Ոƍ2}h֗4FPJKڱ=w=O?GߏfCe2~"(g3HMI·0xI r5J(+,SZ^+v}a޸E7E-6Ք?;$D~NUsS][KS6sbMIR(*)MK*@vffh $++bE`,mvjۆ"R)5^"Qй}[Πg^ 8[}vqqH5UsYbo}%.7]g: {Ƿ-cpxJ4?Q\z BF 9c/s]3y,$I] .npKQI)_3_43I%%'w=?y 꺰k~]UG,PgAZ*UsLJWg f]~^H[Anڤ };Ay7)*.Vv2c^ycv]fܱLnuAQ%70o܅nWKE* %Ze*6cFʟziLooCIYl(m}OqiY,,'Mf A w'#$ކwpaG_Y1Oq6051F"RC`eM͂1 s0u]韅n=#V%u7D<il||0[,]NaI 6IrwU{Κ)_7rDDQ5NL~P8QYϱ#rj[ LWEZQ_vLO!, 7R5 Oj_CAD_S߫T1j$,})Sfb8(M j ﺟw7$Zc`?hzfzZB@l޾7ohvKE݆#z%S1G"~q\x֙o^Z+ow674zgIS\5jɪ5 '.tXlf7ʬsm.g 4%U{zIB-2IAPChH2<'Gs3_32q f/չ ))FtNV}:uFՙ6o1]7\ H TS,xn<.id0%sCeJb^LE.;g8vXo0$:=:w"7 xn~=m;wa*Vks쁞~2I'_NV޴Uy}z=k=GZU=q9>#|sڭUj ovnXvf%>g/X qM4Jŧ@YE9Vc?ҲyS6KRw%U2=}NyDX,nX0v;kr7֧_ia 2xIVH$fh pR{4AQYH@0X$I<_6iQ]6mNsX»2 8HW !QXPjEE֘}zi-,.1 4p$B7__UT\@$%_ayb:֋vXFQq1ֻز};. g4ABQzVyeF\ֿ̑*P_p t33 rTvXKo5օY'0a/}gii %=+, ^1Hԛr6s/bیjx9M}2|~ :f_Z4&Yf7>}Ibn\9\TWKjs*%(慹qV.vKKᲊڝSO8ןΞ˱g_ȯB\4(߾Tq*UP$%P8T&Nwݯⴱ4,ZoK ҞF4nghAX-\Nj֮ƴ͎݀Vͭ VrԲӺT.vkA!6`9`]Q}pڷnE b |_v/{;v"j4=ma2xnH)n`~OxZkT0ԕ ,j`3x6n:r|^/ͤn򯔕W$FY!#w? GX_wR/*=O&n%/=8clپC *a.Rr+9/c|))L6A]I\+F1~)]ǭViڱ}$z2?{wy.:現XbԵ] x9YnzݢiC W! ?%VsΨ~L68+֮~VF=]deѪyS@7PO .e¤)1DXaO}A]ުr¿Mq-"3x\(yUsّ56g_rk2/uƼ<;;{8~1y[L+C|¸[fdY.jw= =d` M{RjJ />g_}=,3\1?";w֧_4&L¨H¨QF %vX.{~lݱ?VQyz!r0sBv!7o3&Ma0rC?|dedwŌ.@۟xλS.F^ˠWss-wiVvi~7m]T}}%%Jyp' |Fv ~axS"(T/o`upH6moP8–;Xv=H4@0HV-ٲ}~:ExXsxo&ϜMχ"I1[8QލT*AmcXˍn'1D*"?p"C$bm.cUdܕϕYynM17^mSKϺ X>Wbߘ4c];''+K0`YUSTDӯOoYqx ҵc{oOV-y,^)3Ϫ(!=D N%j@~_*,C5kA(ujx]ر+DZG{L,sd#?릫~S~3`9(#-R5n =j`x\&q/֧_PX\l]NnDF).-rqU0y,#45uF|+\p,\tAHeZ͂e(!"(zw*dOL$RԼR_̴4dYfJW_{ҡ=tџb J*5W2q ^rrT^ّϦPP-)NCISaݺKvRP4 !yO(tH܉f#3=w3NӾ\=3-%UVz(+`L1(~&U7P[wѼINBQ<'՛ȅ7ʬ*Tn%Z(#(T  }ť\0tuΫRw8o(̜K4Л⡴RvMgSX\/p|9__ƂIԺZɶ% /ɴ},52J֓KB͹gXT5)\-H@n:p+o Jbrߧƃ Faq1))di7C.YK''))851DnܸhwOF2ktqڷnď̓OҲr2t?idq9)-+ˇǸ1OrRҮr$ Qطօ_z4b6tگ4o~_*swv,j,mV &U^_TLmT Pvq S;G_Q$'N$OM{xS>y׸ /UsUQչnݼ?~.xEEj>SH(#M ]I0|xȲLaq 53ͧA(.-99xzWͣƔ=+ITWOye $~ASUyr9ԁtjۆTo 6It,19W{_}Gdt^kC>ɑzRZ^'Hx*I[~?x2KK6t>~qqr'td&|;qVi/T4N<(2SRPU!O |q0xqL1-;v'+ i>/=٧ .B%vPVVN<.(-/762HP8LC(kZާEaCVYKv<XOy ,˸N4Ʈ2G]ٓPJ@k_ 壯cٸu+{+3 jNV]:g'sH7WvAܾ_"s-'2{"6nJaqV}N0~geӳkg ĥ眅niYD#y0x/Xt9;w֮ :4mܘ#zvsr .}F"H5^H. >TT˒R(P4/-h&ɲgN/+VAHzV͛1⼡\=Z\qw]{5sLMcMv6w<7ZľG2th:a5Gkvwsg L; PRZ 8G:!'z- Wm?hת%o~9n3YQHڱy:u; 2On83/Tniv6g?/.B7E)xR?,)"':dEbkAeJJC6eUTT{<7Xv;y:y:SVEded$5 SRV uE/2.VL}:L1?Mdl޶J~,Nۙl Ah.XbjrafI t$+mZѱmc56&|ӲiZh@XyZ]vj͜h,37+֭'o6B6Dvf&[SڨoThqW.$lmۺ-aZI=roc6thOb:MFG ?>âR>g60i$\+`h yylٱ=EbqRvDp:dgfЪys:ie%&[~W?4z#`qi)_C7mF-lߕO$!Ivm[vׁ~ DM۹X╫+seɡ]1ìz4xH,:oRmDYE6-ӭSGvd̾J]ϧIzi٤ ۴6r jWU>-` G",YZ(hk&پVA\m(1M٥s"K LUɊZ]+0|q*/CVS̱*7oeG~> 9ʢMflR˚_8N¥~pڣu-XN:ߔg.gx1Q*6 Yg5qn\4ᰳ|:\8V;q:L#:imhu 5A6wջ'~F]ǚ _}0 z* ~V_U2W-\O}coޛfFIg>1_7C!zeX_ga%rB#]Iصǽk|P= =d97|J'hoG /#`r'Mςe˙9!aƱI6v25T֛ogoՈ yq,)N.i٬)n`(ڍx) ,GA1M߳~V~؏d}/۬@2k.̚K׎jI۩,^9 oڡM$*A4;oUI tD#"D~A>P've* z@N8z,Ew?vZҳpdef 8m?MnʯpS<ҖN=\q<~-,X`8 DQb8iTdEau^`˥ְ%eed|ڵjii@TYE~1v˅4f]x]aݻW[>ї^d{qV\z?% h)MO5Ҡu:Os} i} ,TBgedū/+3qL.ǃ &NˣPh,ƱG᥇kXaBC9;[v줠(aY5l {33j[xa% |}&Naɪ5! bs=Uf 8hB:whI,XȶQzu—Čy 1oln^U"qt^\|.:I? sn炥i,[ 9Ԟ.|ZZêuU($BѹvQFA*e]љ0f/XZP(% [Rr,XP=%R0x*YKn+ 22ܡ=t!