pax_global_header00006660000000000000000000000064146004761700014517gustar00rootroot0000000000000052 comment=65c05eae0e6d679047394b39a8d6e2bce8195ac3 flask-session-0.8.0/000077500000000000000000000000001460047617000143055ustar00rootroot00000000000000flask-session-0.8.0/.editorconfig000066400000000000000000000002501460047617000167570ustar00rootroot00000000000000root = true [*] indent_style = space indent_size = 4 insert_final_newline = true trim_trailing_whitespace = true end_of_line = lf charset = utf-8 max_line_length = 88 flask-session-0.8.0/.github/000077500000000000000000000000001460047617000156455ustar00rootroot00000000000000flask-session-0.8.0/.github/workflows/000077500000000000000000000000001460047617000177025ustar00rootroot00000000000000flask-session-0.8.0/.github/workflows/publish.yaml000066400000000000000000000043061460047617000222370ustar00rootroot00000000000000name: Publish on: push: tags: - '*' jobs: build: runs-on: ubuntu-latest outputs: hash: ${{ steps.hash.outputs.hash }} steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c with: python-version: '3.x' - run: pip install build # Use the commit date instead of the current date during the build. - run: echo "SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct)" >> $GITHUB_ENV - run: python -m build # Generate hashes used for provenance. - name: generate hash id: hash run: cd dist && echo "hash=$(sha256sum * | base64 -w0)" >> $GITHUB_OUTPUT - uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 with: path: ./dist provenance: needs: ['build'] permissions: actions: read id-token: write contents: write # Can't pin with hash due to how this workflow works. uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v1.10.0 with: base64-subjects: ${{ needs.build.outputs.hash }} create-release: # Upload the sdist, wheels, and provenance to a GitHub release. They remain # available as build artifacts for a while as well. needs: ['provenance'] runs-on: ubuntu-latest permissions: contents: write steps: - uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a - name: create release run: > gh release create --draft --repo ${{ github.repository }} ${{ github.ref_name }} *.intoto.jsonl/* artifact/* env: GH_TOKEN: ${{ github.token }} publish-pypi: needs: ['provenance'] # Wait for approval before attempting to upload to PyPI. This allows reviewing the # files in the draft release. environment: 'publish' runs-on: ubuntu-latest permissions: id-token: write steps: - uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a - uses: pypa/gh-action-pypi-publish@2f6f737ca5f74c637829c0f5c3acd0e29ea5e8bf with: packages-dir: artifact/ flask-session-0.8.0/.github/workflows/ruff.yaml000066400000000000000000000004211460047617000215250ustar00rootroot00000000000000name: Ruff on: [push, pull_request] jobs: ruff: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: chartboost/ruff-action@v1 with: version: 0.1.11 args: --select B flask-session-0.8.0/.github/workflows/test.yaml000066400000000000000000000014021460047617000215420ustar00rootroot00000000000000name: Run unittests on: [push, pull_request] jobs: unittests: runs-on: ubuntu-latest strategy: matrix: python-version: [3.8, 3.9, 3.10, 3.11, 3.12] services: mongodb: image: mongo ports: - 27017:27017 dynamodb: image: amazon/dynamodb-local ports: - 8000:8000 steps: - uses: actions/checkout@v4 - uses: supercharge/redis-github-action@1.5.0 - uses: niden/actions-memcached@v7 - name: Install testing requirements run: pip3 install -r requirements/dev.txt - name: Run tests run: pytest tests flask-session-0.8.0/.gitignore000066400000000000000000000004041460047617000162730ustar00rootroot00000000000000/.idea/ /.vscode/ /.venv/ /venv/ __pycache__/ /dist/ *.egg-info/ /.pytest_cache/ /.coverage /.coverage.* *.coveragerc /htmlcov/ /.mypy_cache/ /.tox/ /docs/_build/ docs/.DS_Store .python-version .DS_Store .python-version requirements.lock requirements-dev.lockflask-session-0.8.0/.readthedocs.yaml000066400000000000000000000003161460047617000175340ustar00rootroot00000000000000version: 2 build: os: ubuntu-22.04 tools: python: "3.11" python: install: - requirements: requirements/docs.txt - method: pip path: . sphinx: builder: html fail_on_warning: true flask-session-0.8.0/CHANGES.rst000066400000000000000000000146401460047617000161140ustar00rootroot000000000000000.8.0 - 2024-03-26 ------------------ Added ~~~~~~~ - Add DynamoDB session interface (`#214 `_). - Add ability to install client libraries for backends using optional dependencies (extras) (`#228 `_). Fixed ~~~~~ - Include prematurely removed ``cachelib`` dependency. Will be removed in 1.0.0 to be an optional dependency (`#223 `_). 0.7.0 - 2024-03-18 ------------------ Changed ~~~~~~~~ - Access session interfaces via subfolder, for example ``flask_session.redis.RedisSessionInterface`` (`2bc7df `_). - Deprecate ``pickle`` in favor of ``msgspec``, which is configured with ``SESSION_SERIALIZATION_FORMAT`` to choose between ``'json'`` and ``'msgpack'``. All sessions will convert to msgspec upon first interaction with 0.7.0. Pickle is still available to read existing sessions, but will be removed in 1.0.0. (`c7f8ce `_, `c7f8ce `_) - Deprecate ``SESSION_USE_SIGNER`` (`a5dba7 `_). - Deprecate :class:`flask_session.filesystem.FileSystemSessionInterface` in favor of the broader :class:`flask_session.cachelib.CacheLibSessionInterface` (`2bc7df `_). Added ~~~~~~~ - Add time-to-live expiration for MongoDB (`9acee3 `_). - Add retry for SQL based storage (`#211 `_). - Add ``flask session_cleanup`` command and alternatively, ``SESSION_CLEANUP_N_REQUESTS`` for SQLAlchemy or future non-TTL backends (`#211 `_). - Add type hints (`7d7d58 `_). - Add logo and additional documentation. - Add vary cookie header when session modified or accessed as per flask's built-in session (`7ab698 `_). - Add regenerate method to session interface to mitigate fixation (`#27 `_, `#39 `_)(`80df63 `_). Removed ~~~~~~~~~~ - Remove null session in favour of relevant exception messages (`#107 `_, `#182 `_)(`d7ed1c `_). - Drop support for Python 3.7 which is end-of-life and precludes use of msgspec (`bd7e5b `_). Fixed ~~~~~ - Prevent session identifier reuse on storage miss (`#76 `_). - Abstraction to improve consistency between backends. - Enforce ``PERMANENT_SESSION_LIFETIME`` as expiration consistently for all backends (`#81 `_)(`86895b `_). - Specifically include backend session interfaces in public API and document usage (`#210 `_). - Fix non-permanent sessions not updating expiry (`#221 `_). 0.6.0 - 2024-01-16 ------------------ Changed ~~~~~~~~ - Use :meth:`~ServerSideSession.should_set_cookie` for preventing each request from saving the session again. - Do not store a permanent session that is otherwise empty. - Use `secrets` module to generate session identifiers, with 256 bits of entropy (was previously 122). - Explicitly name support for ``python-memcached``, ``pylibmc`` and ``pymemcache`` for ``cachelib`` backend. Added ~~~~~~~ - Introduce ``SESSION_KEY_LENGTH`` to control the length of the session key in bytes, default is 32. - Support SQLAlchemy ``SESSION_SQLALCHEMY_SEQUENCE``, ``SESSION_SQLALCHEMY_SCHEMA`` and ``SESSION_SQLALCHEMY_BINDKEY`` Removed ~~~~~~~~~~ - Drop support for Redis < 2.6.12. Fixed ~~~~~ - Fix pymongo 4.0 compatibility. - Fix expiry is None bug in SQLAlchemy. - Fix bug when existing SQLAlchemy db instance. - Fix empty sessions being saved. - Support Flask 3.0 and Werkzeug 3.0 0.5.0 - 2023-05-11 ------------------- - Drop support for Python < 3.7. - Switch to ``pyproject.toml`` and Flit for packaging. - Move to Pallets Community Ecosystem for community-driven maintenance. - Replace use of ``session_cookie_name`` for Flask 2.3 compatibility. 0.4.1 ------------- - Temporarily pin Flask < 2.3. 0.4.0 ------------- - Added support for ``SESSION_COOKIE_SAMESITE``. 0.3.2 ------------- - Changed ``werkzeug.contrib.cache`` to ``cachelib``. 0.3.1 ------------- - ``SqlAlchemySessionInterface`` is using ``VARCHAR(255)`` to store session id now. - ``SqlAlchemySessionInterface`` won't run `db.create_all` anymore. 0.3 ----------- - ``SqlAlchemySessionInterface`` is using ``LargeBinary`` type to store data now. - Fixed ``MongoDBSessionInterface`` ``delete`` method not found. - Fixed ``TypeError`` when getting ``store_id`` using a signer. 0.2.3 ------------- - Fixed signing failure in Python 3. - Fixed ``MongoDBSessionInterface`` failure in Python 3. - Fixed ``SqlAlchemySessionInterface`` failure in Python 3. - Fixed ``StrictRedis`` support. 0.2.2 ------------- - Added support for non-permanent session. 0.2.1 ------------- - Fixed signing failure. 0.2 ----------- - Added ``SqlAlchemySessionInterface``. - Added support for cookie session id signing. - Various bugfixes. 0.1.1 ------------- - Fixed MongoDB backend ``InvalidDocument`` error. 0.1 ----------- - First public preview release. flask-session-0.8.0/CONTRIBUTING.rst000066400000000000000000000023451460047617000167520ustar00rootroot00000000000000Getting started ----------------- Using pip ~~~~~~~~~~~ Navigate to the project directory and run the following commands: Create and activate a virtual environment .. code-block:: bash $ python -m venv .venv $ source .venv/bin/activate Install dependencies .. code-block:: bash $ pip install -r requirements/dev.txt $ pip install -r requirements/docs.in Install the package in editable mode .. code-block:: bash $ pip install -e . Lint the code .. code-block:: bash $ ruff check --fix Build updated documentation locally .. code-block:: bash $ cd docs $ make html or .. code-block:: bash $ sphinx-build -b html docs docs/_build Run the tests together or individually .. code-block:: bash $ pytest tests $ pytest tests/test_basic.py For easier startup and teardown of storage for testing you may use .. code-block:: bash $ docker-compose up -d $ docker-compose down Using rye ~~~~~~~~~~~ .. code-block:: bash $ rye pin 3.11 $ rye sync .. code-block:: bash $ rye run python examples/hello.py etc. Pull requests -------------- Please check previous pull requests before submitting a new one. Please ensure your pull requests are to the `development` branch.flask-session-0.8.0/CONTRIBUTORS.md000066400000000000000000000016361460047617000165720ustar00rootroot00000000000000## Contributors - [eiriklid](https://github.com/eiriklid) - [necat1](https://github.com/necat1) - [nebolax](https://github.com/nebolax) - [Taragolis](https://github.com/Taragolis) - [Lxstr](https://github.com/Lxstr) - [yrro](https://github.com/yrro) - [hluk](https://github.com/hluk) - [idoshr](https://github.com/idoshr) - [rayluo](https://github.com/rayluo) - [davidism](https://github.com/davidism) - [idocyabra](https://github.com/idocyabra) - [darless](https://github.com/darless) - [SqrtMinusOne](https://github.com/SqrtMinusOne) - [tylersalminen](https://github.com/tylersalminen) - [warrenbailey](https://github.com/warrenbailey) - [imacat](https://github.com/imacat) - [kim-sondrup](https://github.com/kim-sondrup) - [bnjmn](https://github.com/bnjmn) - [christopherpickering](https://github.com/christopherpickering) ## Original Author - [fengsp](https://github.com/fengsp) flask-session-0.8.0/LICENSE.rst000066400000000000000000000027271460047617000161310ustar00rootroot00000000000000Copyright 2014 Pallets Community Ecosystem 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 the copyright holder 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 HOLDER 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. flask-session-0.8.0/README.rst000066400000000000000000000066401460047617000160020ustar00rootroot00000000000000.. image:: https://raw.githubusercontent.com/pallets-eco/flask-session/main/docs/_static/icon/favicon-192x192.png :alt: Flask-Session :target: https://flask-session.readthedocs.io :align: left :width: 60px ============== Flask-Session ============== Flask-Session is an extension for Flask that adds support for server-side sessions to your application. .. image:: https://img.shields.io/github/actions/workflow/status/pallets-eco/flask-session/test.yaml?logo=github :alt: GitHub Actions Workflow Status :target: https://github.com/pallets-eco/flask-session/actions/workflows/test.yaml?query=workflow%3ACI+branch%3Adevelopment .. image:: https://img.shields.io/readthedocs/flask-session?logo=readthedocs :target: https://flask-session.readthedocs.io :alt: Documentation status .. image:: https://img.shields.io/github/license/pallets-eco/flask-session?logo=bsd :target: ./LICENSE :alt: BSD-3 Clause License .. image:: https://common-changelog.org/badge.svg :target: https://common-changelog.org :alt: Common Changelog .. image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json&label=style :target: https://github.com/astral-sh/ruff :alt: Code style: ruff .. image:: https://img.shields.io/pypi/v/flask-session.svg?logo=pypi :target: https://pypi.org/project/flask-session :alt: PyPI - Latest Version .. image:: https://img.shields.io/badge/dynamic/json?query=info.requires_python&label=python&logo=python&url=https%3A%2F%2Fpypi.org%2Fpypi%2Fflask-session%2Fjson :target: https://pypi.org/project/Flask-Session/ :alt: PyPI - Python Version .. image:: https://img.shields.io/discord/531221516914917387?logo=discord :target: https://discord.gg/pallets :alt: Discord .. image:: https://img.shields.io/pypi/dm/flask-session?logo=pypi :target: https://pypistats.org/packages/flask-session :alt: PyPI - Downloads Installing ------------ Install and update using pip: .. code-block:: bash $ pip install flask-session A Simple Example -------------------- .. code-block:: python from flask import Flask, session from flask_session import Session app = Flask(__name__) # Check Configuration section for more details SESSION_TYPE = 'redis' app.config.from_object(__name__) Session(app) @app.route('/set/') def set(): session['key'] = 'value' return 'ok' @app.route('/get/') def get(): return session.get('key', 'not set') Supported Storage Types ------------------------ - Redis - Memcached - FileSystem - MongoDB - SQLALchemy Documentation ------------- Learn more at the official `Flask-Session Documentation `_. Maintainers ------------ - `Lxstr `_ - Pallets Team Contribute ---------- Thanks to all those who have contributed to Flask-Session. A full list can be found at `CONTRIBUTORS.md `_. If you want to contribute, please check the `CONTRIBUTING.rst `_. Donate -------- The Pallets organization develops and supports Flask-Session and other popular packages. In order to grow the community of contributors and users, and allow the maintainers to devote more time to the projects, please donate today. flask-session-0.8.0/docker-compose.yml000066400000000000000000000011671460047617000177470ustar00rootroot00000000000000version: '3.8' services: dynamodb-local: image: "amazon/dynamodb-local:latest" container_name: dynamodb-local ports: - "8000:8000" environment: - AWS_ACCESS_KEY_ID=dummy - AWS_SECRET_ACCESS_KEY=dummy - AWS_DEFAULT_REGION=us-west-2 mongo: image: mongo:latest ports: - "27017:27017" volumes: - mongo_data:/data/db redis: image: redis:latest ports: - "6379:6379" volumes: - redis_data:/data memcached: image: memcached:latest ports: - "11211:11211" volumes: postgres_data: mongo_data: redis_data: dynamodb_data:flask-session-0.8.0/docs/000077500000000000000000000000001460047617000152355ustar00rootroot00000000000000flask-session-0.8.0/docs/Makefile000066400000000000000000000011721460047617000166760ustar00rootroot00000000000000# Minimal makefile for Sphinx documentation # # You can set these variables from the command line, and also # from the environment for the first two. SPHINXOPTS ?= SPHINXBUILD ?= sphinx-build 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) flask-session-0.8.0/docs/_static/000077500000000000000000000000001460047617000166635ustar00rootroot00000000000000flask-session-0.8.0/docs/_static/icon/000077500000000000000000000000001460047617000176135ustar00rootroot00000000000000flask-session-0.8.0/docs/_static/icon/android-chrome-192x192.png000066400000000000000000000436271460047617000241650ustar00rootroot00000000000000PNG  IHDRRlgAMA a cHRMz&u0`:pQ<bKGDtIME ";F8IDATxy$y'wfwss @ iRD-u(y-d]˫^+y`8z7b#FZvE]h!( sOgg_ċ̪|w`FaF'ꯗ^zFhƈ"#" {tvykS{7F+Ѩ8"'@PyA<4/!F$ 9tNY{yb[:ڼZټڼ0YX Vy0"]{t@=7䰠!CF-IN؜p8~aq°qE8J1)2(B Qt{kj7-5|#Ʊ=Do'ܐb-J)fm^<aq"@@L/}(-Ŷ^ t0&@GZqvBn4w$Lb>g9gff(H~0Zj=ZjL'BGcC"􌯱Z$&yC]y"a33)|(6퟾ %$Gc39=j Ur)@H8{*cy%9u7\h#Pj4ҳ#G1K'K7l^Fa=Jo|`*@>#` @48JsɧP6/>K03wԣ|/@:q_2M! vM̡P9X87{K}==BvL|sKw N;G0"`9~'ON?u8)pd/Zo<^)B:#10(hΔ&N)*&,7CwC _%C#"B;,4F{pR'㳿lLر7#5{ J*Lt#"T:^3>3>_6E3"(~*C~`D‘'ިNӈbv̙_3/>ʂJM^~k|7uɄ/ph3[j|" Z8aO (cwCgh%$E#2*`ml}TGp8^D{[G S!JbjEK!t`}ARS?PJBq8[رװmZ6c9 eVR VK*4od76+O0=?o=soz-3wM^Lӧ.^˞xSaţJMTJk@<7=4Oy,?R$`>ɜ|r~4-(:w뵯 Zu JPlP`Rԉ᮫yR'Td %"ɣ!X@H#eI~(UZ3-Ѣk׮ׯx/&'grsͷZyB_< 8-{rb}:c° S? Ե%M*`Oh;lyw,Aa\0"!U+P+PKi^kmJqiN|$oaAHc"uFSoi9,̎&+k,fn\q\L~F'&,?$%[IR R@< $QD8RHl7=hZFP4z5y)=דzâA) F׹5p=F ʽo \;SXp8>9s0y7L9?{R9'c+w&@s2]ff9a^0uJel*b2 flӵ.݃w` rr3eKN Gzaf#XZ,͝ϚMA#2CmZT5=?e @= @4a(sG] 7]Afм[5ukޛ5И>{;ZF*v,66'W_#VKM>x뻈RopγA=s.v*@JͯnlA:2@7hv N#qp#=9L{!7BBzU(!LXYQ#jrL-:gbYb[^N+Z@>job>?撠 |<=ǎðci\K?6`8ZXÄ9qLr+Y˨@f,3ɊzbsgN>\%9Agg'P~kvMVT,{AK<@Or()k<=!„hO]ۿ 9y*ԟӦiw->1[IN=; K^;!V}\DW[>_@Y.XS/NJ!v=(іbWF-D9p'6'HO s bМR;e{{Zہ.ɥ\'ʇ{1 Z]AM`Rg'x&C$zjk\ g4Gp‚x]SO;Gp5p @kN%7y~vB]!sP7p|au"aD-:(Y,4ޔ.)\tӟ(̜mrbO)n3 ,ޔ~~`ۄ'lAy! S-Wq%xPV}+;[o njmSF+b孳ĉn/+-`8S E WʩR! ʰvzw779POlPA:r1-U Ьܑg>t>ѥN a!@d95°!/Ŏf-NWk925[# O|'\l[Xzknm > >JJ$!E8=T#o ZB'Ҽ; `c+wwuU?,AZyIY6Z]Kvbcfc+^% )@{>x&uJr.-AlQNQt9H+r#i.Q9=)3k >~ƭ@VcSO~h'9[ g7^_s "A@k'A33g^0%efXCt"*Vߎm-}5x4;Z$19jr#A&|?&"]A:{{.;oHx+IP'aJd"sǦq8"E;N57yv]Z5Z-C1Cr%*p8Eh`\ kۯZ5 4OdM_Р^@PA=3/BBbˇ$wPD(5DM(aNVM)oRH®{D4OXWE[GC~21/<:;%`&\IFqs:۪ʥß6[{:A;Nk?s ?7awityz!AOQgk?)3gO]){W[^GnTÙjrdaSjlIb#gy@)aM3⛋o ۫Wн:^'m=^ O8e|ߓ'#,MnOo~Uh-wݥ.T1qHfɮ/dqjb))3G Lת滱[RJ]x㯉 Z ՏP d9?' 1M$f٢Jrɮ/cqov.\yaZ%\dn Zu YaEʰ0m^yԀ(u8S˅ 7V~ob;g9.7wB@V7'MS/}5:?RXS1v:D2OU1vf1qxI/ O!5>k:!VSȟmΫ &Hq.qVM?%6ӕh9[O7Ȝ ѦQ0QP~n$ P5UupN+@uJJrzrSk_D1!e|_ڴc~PBGk\oRK5:% >7yBH'ԣHbX7Pl:U %2ksbl B, b3 X-rg5Sޟ3H#-#+o7-М.gPw,M8F4sﰦ^]ނ]د \zoDiqSTN R 1me9ʶT)lbת%ޑ_]^:)gT->˝n\'L{]}KJ9a/i$68t. A;ȮɄa޽~2x 8csR*\!a9!cI0E%Bay0D0)PD(%bb˪^ZkyV jjMitALxXJt8u-AxQIdsĽ{3qݟŠ)~)}3屙?&vR5G?!8h%flmreeRebm^,AقX)lBaa9H0Q!bI`o Q"Bl8Am`B,:c*c5ҫW8]pVtX8v@ w5vޕW8fgjqLą_5L%t%~s' ;Ftg?U>/zY.e󰻹O<M77z9R--FP+^E! R̰qa9r0_$NRHlj~,Je.ܮ7K/ _K`[ - `a;UIo ۅ+~.Hԩ|ih|vLR-O_K|8v6/~<>K&_[CkH-t'QC`pk!_3睈Kk~#>B519=5 [QG(B%H/f?T%U_Ma8VG] %s> f:-5@& ΃no'AfNKd~ǵp9,`(?1pmGHyJbi5ǫoGkM_Y޼~B=i?C7rw; ]M,"<خy?@4KgʩORӍpZI{x@sXI^4B/gR|+R!8ju"B!#WA&FV8Mjb"QF>k )fR]wh=P{3S5KT~<6}j?6xU7UPĢjNvdN4;=-p)s |^Àp5Nqz([wxP~J q:{y{!H[9M2S )M))q8Ѿ>M9jbfOZq5fμk+웱ZB^LߥODNO" I'Ϩ5S }aKd|(h^PtgDXfyPbfOڂ -,ﳆX-oݏd7Ҍexsل4C4L?" j|>cUr(Q{ѐNs]/Z5P A D1NXx %S3[g mZzW)e#LKhp?fH_u/mz[rrjLNJ-HwX `N -':B.vbb) bAI"$R=E%ȟ 4q"=cwxvGbf[.*ض)9Rm#-IB^Gv<WEjԤ[|'ÝI5ءS j9 ^4w#ri23D> KgPԪ$ʹ[ض\ !J1-sEA-k~4@:λho;bJT"ɘM2g Ҽ gÞ$E`ȓ̌Tʹ~5v֜RW+,A:5N%]@=%*"b`lkM79CZkV4Nd& a9EN#))!K -AJټ8pp3a)fREXJ_ Qؖ#rZ$Dib F {{) -QV󧯚`~g6hV* . jecW$~mPaeZZ]wGbO+;h-'Z6E5lac2k;ss ҪϞG},Beرpvc2f3÷hrr7x,G"sm/*% [oJth8£^N>|/S+w_G>!X&#ț]]"O7ߒ*zT"*ߜxwJa <~?0ߋ}L!75Hf}R0p\p{ac9u˼n{/6}\RNyvZvaǶRK^Q+KO0D+[@.֠#?aqyOv/@F0-L9DN8>Z@:BX-L7|*OTc{}'߻D_X:B%HLIMwPVt{79CA]ث+˫}^%\^ǻj* I;PscO[ḁRN2ƛo6 ?hgyh]%F?$Y|o/_ ]mx~U[Rt*3RZ&]XxCPtwp*]AngN0^d4Zm-q/zVnBAɵoN]*psaѱK6/< j2&RSЪHv})Y%U$ S#DZ.Tؾ9vo U7(_\ox~?QyeOz:zA$@BqG]p3gg 9ogooii4V;,®,rVIl, )M'ŋfqLbùeAgvkx_;BCk?ZlÞ\u 2 b4% ;_MNϋO}?#MhMb.i'YoK !KJykl SXj8'-ANGlm@)al鵌T-(RLoZJ݁=zIW!Eby|vz2ȯQ4dO] Jv^@^%"JZRB֟xb%9L55V㻂2+;kΑRj%^m7sXNCQc' 9D0#`,Z^P[b)UB\`-C<`';vd;~i|n&}oJ)fm.{Fz9y GOq\~8q'}A;61<* h5cRdbf81o rP"q=3%IbLJJ3ܰk DcaˬrVt5'X-fZjM`W;R3Hvl}֙PML˖݆y?heBGe2}+̗H{ѭ0t=ލA!VqZJyj9DkUתF;,AVLQX1E%f Rᄰ ab!€P(PJPRpb#q l[*kU2*yVZkePkm@WX͵x<6W6H^uv<ci˥e'=)}{~/޹!I|.{*cobc/`7>75NuA| 8gRLLF٦F!aNlNN)r a1CXN5a6csql9ؖؖXZXXؖcC=့R  |i ;( dΟ)Lß'O9Nrb&bu}?[<_'6B3m !{'ICzc3卼5u![دo {3h'r ZXO+D@EG~]OGaO?Օ/f__Fzdh0۹y `;W}O텾݈JNR܏ tPΨJ3߈n~+v;7wtj7#C5s F^'?F'쯆dt8S2H7=y°bn|ib3~:h`pgp %/r[[UKuzp\}G AfBKW/情fޔBK,QI8s+3'"2j/Ͻ)Vߎo,(^MCp9! 1OO_ZƗ ӧ?⟵9iq@%{awqOZ15: }Roߓ* Os{%9;}&}AD B?DP49{)/=  }05uX '{P"_,BUk_!y'!ut :=naгRHOϙRP#}~/(PDH y9-ꏔBX-U!ir;9zAB-Q@}zN.:;BĉӵXYS =%q{;04dB&alK=wbyc6/~T ' 3XC{C߈d9DD3*/罎-cKUgPiKsBîCې3R)= `eJ`8ac6'|Pj)5mNWoH;Rʔ!4C'2C ﯇{HWHO1fkT26uB/R/SP${ek#wkV B i]sɔ.,wϫd0=X]Pj;J1*lYCYO}n"i'XꄡD[t'5\1Α؋hZ)sیml~x+paWLIe5:V+NLc^b-k(Vr9WjeO zWsݜc(Q$cZ$9mȡS 9,aS3!f ƶ R)^w^д,Y ڼ0=N" " ;o'u%T5DHg*cKJFKBT ͭK^&p$A#<7BQEWbQSRLYxaSef&(IC:PWjsAB!"ĔʹwpY8P#°P@ (5 &$Ŏa,3ZF kUT4 ^@) UӋzKXr)D8dKC'D٬0F8n`v0Lbf`C>߳{%k4 vK/D=!c+7s&3 "b39&؈R @(U*PRCژ8FP%D]M1V(f+J(fQCa"8H&nGedb+7*-;\Np ޔg9G:AI :қКXo?_rFu+m9#<`lX|3CK-^YP WA#

q·RvZS-6U=D ZB) z81ix"#*h$n|QZln]wt^5SA)O>x[Rޠ{mGR䃷&Vٳ g-7-e-jeKv8>6ת3wT)n>s~[ҋS3NG8L)9ݺkpvikJ)#D U7JaM)fVRv3 즾qK }G \{tSULd";OL9S#q-2BiS ;! +<m0YjZ6J~S.ӼZ)"J]Av'% {;Q?}~!BPIvdq 9C1=0и%H1Ba%v ("[clZתiZŬ URWx̀to$m ڇ4 "CKNh&D1,Es8A2%%lJ!mAٜqXN! +Rcwu_RD)A؈8&vlkeЊV+j%k"*ehT;)-wN 6w1pх]kقG10,p`lb b Ra9DVpN° @a`utWB0! ;:cر l[k5ƶ4ЪXS2i0mp+t+<c"NYb`6I3 c òO}S;8L( Y/Ah7ʷ1 cC/z CBqЙ^?]Nn/EОJ/ z^8p#~z wx/X Ǡ՝4_{i*aV8#)$N5<~ڠ)\=m?{Hi %tEXtdate:create2024-02-13T08:34:22+00:00W%tEXtdate:modify2024-02-13T08:34:22+00:00 7LWzTXtRaw profile type iptcx qV((OIR# .c #K D4d#T ˀHJ.tB5IENDB`flask-session-0.8.0/docs/_static/icon/android-chrome-512x512.png000066400000000000000000001464711460047617000241560ustar00rootroot00000000000000PNG  IHDRxgAMA a cHRMz&u0`:pQ<bKGDtIME "*IDATxw+Yvމ>U]l&ޓ"[)Q^>I#OQOZzkFzeGI)"ئ-szÛ@HDf M[+V. AAAAAAAAAAAAAA>xC}?^+ 4DŽ   tc^~Z ݀A\R; y 4P҅w+ޤaO 4ȁ&ЇesAMB|7@694t r #ߍ`I^o5AB8B}0|'AܓxwͰ`J PB,Z-#5hyLvxO6ʰ!J% C-(Lx P ('HlNl0)HOJz/OwLAMnĝ xV-%2Zbdz=RDGjz|Z%ralhԨ[(!R%==Mп_ Fi#H D?l^(}M+cZ$qǟ 3B h|/P%؊T9 `Fi1D߯POM*Z2sJSbOoq)Ì6XCxkXz[ 8-Am0t#FE!?qt?r)Î{ .xs\UB 6xRSS<2,L=ELAlEa'!UY& )V*Y/SހVGj:q\ri,w"ߞ8^vƷhnuRNooTS2 yCg}6H'WYxbsaR9^@b7_I](cQ4285$e.7ub<2yIMQ~r';`Ķ<}/NY+C Bh&ѷY^O(e=E/YxfiPA6Q;R>J-? ͝ݢ] B477~93L=h>3@^^3BKb m@Z 0]Ì9@?XPj:zkjZSl0 1h]ۊ>eOf~I|E@(E2 sr-)XLcy\fbmuk_Tc @! FÎEf9!7}paG )!/S${' c[凿4u+ &A4}Ja~oGHnܩȐ_CsQ 2 ]>_IO.ՒOͰӀ}ׯ?|K&xg @  ~]Ϲ5.711#h䠀#v!}CRӧЕw,{!ahcH3;90sm)H ˙6D0)'%  @ >_M6P=K BЮ7~Э׿&OdA hbckX V#{ /A ur@ 'i d&>sõxQ' c[ڿrM@B)HZ$c(ȠXv&uNת\-vD# }. 19~A$O=XO,w#vYU~wtO.`wJҧͨi7/X |_0 ^y (k7c_78^攀@o 1hBf)/f<|0^+h@j}Zg MD# }T'PKdR'5)^kX\_cs7ͮn@f @@prg/N!cٕk{ZI E H6~'lB)3=vҏkSI $Wgst}bAi"A_#fAhT0ni04mSVN=Bq_8BA j0k_6}]k:}Я`7)42u Q-{3Sh#*Vˮ\J :я9hx#b?GEX*pYcG Qz}lCmor\Q|c:0EA)N5mEM2hFrЩGy]~7`ccR)VH/\[#T4^8h&(h Ai蹳G {}t5Z MRf4z#kuT3ځТ M~0' z}<ڛi7"bٕHa[r8!7 HC >d?9p{[J =g*鉿n3xϽ eQku6u[#ĶZ$6$%F r$mdq} 6vY~[P+#^ x0Lt`8  %|[2wϔG&' e Z^7RvUP+\ZƘ"oC%B a )hMXrTGu96jq׊ )[с,k9~MP+7";U!؍2- }3g#{şR*k99ˮF k|VyM&7Âuo6Kxz<2u;Z'(Z HTk^WUl$&W U4M }(FkRLydo J~ĶM_/މo,͋Rgk⭞޻Wݩxtqjj 8= U6Z4]R.VKk5bY&ghn W=ײ!d/x"\VXzcu6ZikWWV(ajjl"{Ya^_#qA Uvƶ^׫"zL-~=dh lC.bzYӨ@Ʀ7A (.+@ 'MxV%~_"JFl{v5{i1.Wmk%2MNiY|gkM ? <- C|c'uhM۹?0 tI_{ /\x!)Qh.no<[#'`urTaF)No=H=O}  K_~k7uM8Qa>~OA})DNo _R#6:t9ՓO}v &#]w [&<|-?s Qsxic8d{ScCޯ!l55G]-6nm0 n @ژD?s'LA,N羦sﴹ9+S^3s'?W&j0슾2 iWűCQz}e~87w'7 5+,Ӧ M<ҎV=zi7c(kfOYyo8z;MAsGj;ιA9V=?>sDf$?u)Hm5%NS+ir)N8meViJv[MFgo ŽMkj H}cuSk̏cPƏ~:x].UغnΌogynK3#޻dcV)!̹t׵or^kuR\W5rF]e ]vnZ>s(˦ +j<֔x=bHTcphYnb_ٿͯ-BkCo/}?g/*S/jgz}}/]VSG'@7;Z,ens灁Q#]laQ7M221x%F?G;Ԗ+|yt5^WsмԳ+^w#n'mA(5ZX_5uSSb K'Qš0NRBD YC8'$VN=ŋ{y 8aFM|Rk "wLLw6GWN? )O!_4ק5[fn~,4&IZreW,AdH|Ppߠ,;Rrz-R(C`۠ @zldPSΖF$e0[(t)|ydꄮD RXdMun#. 搝1ve%wɕt%=m?ٛbaM6:{+{"4}?H WF YSףepG)bn,"\_k:4H @v_hT}j!9X=hqȄZNP+؝ \}h.s:9~IR'.oS+0d Gn ͢Fnw ‚Vv)ƶXnuJ-97\ο1m 7=3ѿwxX(tɟ :8"BW.gW;6{KsކVw{ߛz6u9研r]X bZrtD&M@n>Ss,kJ]b,k5|zM.oGkK^WRj IdIj)M=e ER_Xo1-N=M TP&w=/iIV( j|r?U~tȰZo#u묶)GO O@+`/Ԑajmm1 @k Zy4nx!KPMY  (#bt7SW |P@TDx66 VI,\z'L^K pjF`vS3eHB,^8UK͋l7٘9ݦ(9JXvuRX朿{_'z*\zݷ#eO!/C^e1ȕT-5~S^n-Ekx8oׄ'T~<[ lkȓ&V&#gM vpz~6- /OPze*)'{}qd? ##ξ~9>˝ X``t)].…f4M@K2--T)I NBR&SBBo3h)H|=h^bqؑ3sDf үnрgЕJASb'k4Vg;M{M[935i^$ed-1 ?6;[]XF18[=e30EG @Y.b|.>Z+ 6l m/zєإ^__- j1]9]swR~,,+.lb|9~Ab bZ׮Ib[:⿯&#͑1(3-q`:o ԥȋaʰ fZG~)sIp@E( D'ŋg\. j[8/vD~ݫ@n]Y)P(g&'fd+ +7R;Qz?2Zf=}Zo{?HVSc.}-^.B-o}׈mag!0|oaomrm {S_!#s_Kj<=c@_.k jI=fo ÖHO<|/SQz}q*7m(,f9׽Z/7w@1D9=?G~ yĶZo;1hض5u%1]ЮpHYʙFVc3W>;|ojJ{)z}}fX#3-6HzShxǨ>ҋ"@MG 䱧>(b xTL\WMba #,p/H#Sr#&/> $H!5ͥU--^ ]Ċ{D(˜r9Ha#kuX`-^ 3Si5)Yvy)qd0 uJiKގ G @A J*c[Ke̲PoZ*ԫc& v36Ы@N Ub @A B$Jd1̈ QHB#fabfP ƶbt̪\ίȥl1MCUhy`7}%ۗaϢ@Ϊ@N`5>l/ 2tPT:Pkw(!67XS_֔*G#KVZY ",tb[Z4qK?E ٷ) 6`S?QjkĶăkЬo6}Cr +xMN#hqBA/^{;akZ{gOuhr$v// `ɥܛ| 0@[h)-PO/bA/8>;:w*3=1iw-@Sh H?AhnJq n&@DiPw{s:FA#k2wj穫үv l5__V&|]8RZfؖ!<4,UYv@%5 %Q% ?G? A.о pߚ^/ ()tf @F->+>qJ)kuZiS)eWc+ĶX~ZPƐH->ѕhR&'t%1y1A^!UwKnN-o@>] 1S6VrG__;vG(Ê>qd 2uV^o,݋VZ_N&`zkR\Gt5=>S$& 0YKm%hܭ.FGL^ĕ{cwJ!;'vnWvFЙ?B`< U_O/?>q8z!ERЇSn|zue{_J݃g'}q( k)Ȍ9z6@m)wY{lߊgl~#k frVeWYS9CP ض>x P{s?4n5n+B59:aHx_0Z%𵩻W.+R_SMwF`;XZLP&l{}9D L}Km^W(?@(wƲ׋F wR``?4p5D.6æ aw mJf5h?[#u+ byoO Q^_WA{kϚFZ{ܿw_ݸ'xW daq9S89u-^xO`O6ng ~G_?oFPȷZMׅ@b}~-9S^(ijL)m66 FPBX"a5uc?jvr4qyo kw_;}Hacqd׏_b~- cjjᛌew}p ]8&tZit.EpȀXij%VIkmRP$6v%Q.EhbňɋQ` c/GssZ4?xp.3@fλ$O%RRMl,<i~9~V>nKٰ>pM7_ji=NЩO"Q5_ח&cc[{xKΈ*0E6 DX*]IOGR$e뗎bFf޼ әLhҗP>r9]z$>MvG߈Ψ ;o+uٻa4 PL_ bۖPR+ޚxxwZi24SA{njkUJ1XO/ܓ%ʲK[QL %R;]ys_glu#mR&L t6o~ac>9`M ܬ=ϯeQ7 rY~w$RXg -gq|فPےXveAP+En+2ZW^ h-MyNW \--9QL3$9Pj6ߘ^^{p h[෱3^R5*xb)}^/?2ػk5,l5$]eFlrm묡U 0Km'kK #j^k؅+yp!@Ly󋜡?Be '&(-nʕLjՓs𚚅ְ_떪t^z{uQ!o@,LCԎVnN߹ƶZK{NCAa Ӕjh+mh9],^.2u`ko7R\^'~W禯 @z7^S5_Q 4`lKMͿk5xھtӋ6FW3@1?y)C`^K/eۯjeZg)u ZSB`w-kK\y]ȺŔCo_#yhu4ȼ7c5& mW 7Y.MH; )Hç?a"iW]~uCX7|ݹ؜ڲIDt%:& J ӷHa}ZsnR?h085 4h|]-{{L_H?c\<2y$[j~rޙM[-NZ4VƗ2"m=&N'.B-/;bcv49n?KhMwT

~?}w2hnmKu9:k-" ?So8k/KxMՔrn逶krͭ~\K ףcL/)lܚayN f Zc‚S ˴DR'flN:m??EwMF #dVE]rG$Gakx;Oasoi#su{aR^ހϵ3~tSZb86 , o6iБNt X`LA,?ͭ.70/2q~o㩠O;;tglX_x=pm輚waxX֮1 cgͅX^3S',GKWlz dG7ށvN7 x6|Jit?[&>:DW<\kǽ*4T59z|~x3 cYZ,70] bzam[cE5>rⲠMPMcKh)n.3]7O5-경H6E׎_|vإˑ\Q̧Vg߆m|Cػ.N'ɀ{G,"4o r01eY4inwXFCC+6 (*l53/bq ʰ)-)3=N UUO3}E\&{ߟM']3DJmRO߅fS~SNSM Fjj|s.E=M0 S)g>X;(X0RM je#3{װ^YYC+NŴ{ȦaG;Ns gBډ˟Gu{L(Pj0`u^WoH{#NT׼VgPaX:b TNO5a]^6iSBd@ͭcoL"Ɯ|v(L@{hTop#JKr|c!y_-91TpomL@PxgOĵ9S#Z$>z#SOSAPZ'B(vPUZFmmt9v@g9J8eIJ0j5 >q_I/?|Z w}Ox%^Qhswa؟@o Զ&\T)~.pxzn#8>=tRЉ QP3 ±_,JOxzx1>"QH&f/y[kj>ۙ;ﰦ^)B?o?t` @wwrR^#TVN=z,ubtP7 P=ˑ~9[nZU;ϽP?_ 5 X9\abypt6yoBvo I#?ԫ7x<47]\SN1Mb2N]8 FF3eɻovnQړX !hMvA ].XqhԖ+ٛ߈o,>"~=?h!3!f瞻SN75\901> H{\W~"4wlgvД_om#:~|}R(Gc1/3/(?~?2աa_f,ӈVWjqYW1K @&bHgʣӓsr9_-ôMki5%MŋhЩmWFsBfλiy!|B( cF~Mn,V.7gmu%6 !Hp/&^PUW7xM_֡["HKg:|VSc?gt/װz5:7KdG+sPjo1@]6uLRI/6#ō{ߎVNh٫?|Ɔ@]S?zh)b,&>MM`ZATgMP|-Tغtv.kSM.V6yeQ*JmQlN?(n]% p7nFN].Ltydr(PZ%š=^G,7oj`Ųb5V*1BmhFSb'm0r)äa,KVoͭ.n6[l Pہ6&tAoApe0JabTnijj,y2,ހ;,B2P`39G]mQ YVRHO|!mJBj[Gwm wkB/ @|RAA޴{GGOl9ML(Ff+XS/NX+~~yB?;tlF @%3cISbű×u)A# ȁR[j<[佢мzB K:>0a\SR@ YWbܖFAeKsKnRD=HКw ;ϣ~o:}OM@O @UZ.HtEż~fk_2H@d 7Z);k~\н:zfڄKGhм_Dk$ 2 ?hj_ZOSgc7 Rzzz 8`1r zj/N?Z~m-fo:f ͭij+mULQ/jwjrm.ghؚ7G,p>?ߔ*Eu k.$!B&Љ7DWoN]A#9l7.݇{&cǟ%2xR֡u-,TN{=thnMcl˻~۾4T;"F2,1J 3:!2ra!:{u_K -[z={]UN_o?@Z}/Tc2IƦ#K~5;Olҳ}P檩qyșgarFyA/ 16!ξʂ^5뫉V[9Y^•y^;L>xF-^w{v#(oikoGv QQ/? { P{!pYSf;8=qQrS_x/Vz4+W^h 퍱m].sɵJ);OYζ)j3,u<ڬiTcأoDm };Q--_,^PfOHf]m-,C4ܯկEos:aN$+;BJE!6T(mj94ɯ?Lls`sAؖ!k'kbN(u=H߯ߪ'~븴H<9wC?U4cY˙{_`,[2a4lר;@lKJmD_c{+&r̃FrhZ_&tnSJ7w[MŃڢR֔Rvmt;3 A@XSrrmFrmkhp{Bߩ+z}1w2w-C? I(eRq{|d @l["@#VϮ(S9Ep\7UM@[#f3j8e4z5u5Z~t(:YIO2D%MWwABmhnn|cA4Bl+^}wNU}WM?0_LO.~ I$׈Bwg۷/Ba$vEv0ck/G׾hn#`5]aI7?y(`p>T<4xn hnͭ.rJzb<2u3y!dؠ5RƳ%V)N1HD=4Ϸg/z_0}f$O(ePvxg; z@EB_Κ,w8v,^S"huN;bz&DZ;-g&]u)gDAKrGwHydp93uIL,'v:A25VZm.ߍeWR~Ps O9~Yj]>#f2@ ZkC vP8,w<2.7oAkt]̦~0;  v0;fdDBmQ.r):pF-+LT3 -Z^Uslz닼yhYgcgZwrh2tQ#?G QB!uYmC<@(!ON{$5%F 8QwD#NDc5Zls\x#cj,}$,-^S R9ˮtjjsuh0]oS!Rp":nQ&YCSr$^IOUF&g H,eAaOuN;Vn01WMA oxC5 a/xM&ehMM ϛh64wj^ݑwZM凷 H/uO-J~d%CR8!2_Krӻ[W&w./ͰD>3ehvrmS[o~zv0޽`mof'2*h1ej[f]VbT%=qTt9YN5CaLMPbͭ͵}NÆB}.]bydr|I -z3z9o L(Y߷|ٌOw"C#=->ױ_S'~oD@6m X z49)qZ { WjyMbٕHas5숶wv#nY^֎_:s(FIJ?q*0w{LQ~){Z"뇯_\SuA} hPtN J-MdxЫblsy2P&R呩õxzZLAatAL%VސKT)Ҡy ݷ {G:Z@CQk*YYvjO#~0Mx%WJs#nfG: Kx7}P (:xLlK\ʭPBxS"X*-NP HR1T-3G/L}c~ѾCQ졓6s^cH |ڱ?^VX,(%]f x"=pGig~;Cp pO(yM𚚋m. +cɔGĸ)I4Ȱ%kT-eې\cu; ~~J~ Q@ꩧ/ǟEM 0qWX];9h@GG'2 x̀x{clWْR.\8A֔X\Mj! (ܺX+YCC`mzǦ;wW,䓙_?~'ďRIf!QğY:+_+`C@k7Ex_t] pcM]{-NHQ;" dxy?Cw3mqb\k]J8ASbZ|dMf4%1E)n R2 yj[ĶMN9^ ZTJ Z*2j{C𝄿ݱfA|[KlMo`|J??~7Ce4GfoFbm~v, p*7c!E4wrj%tAPW99+"6 6Njh2Y$RZ4G LASBʰ|;26 -R.VYZKb5u3w { "; ^vaFMр~c/Jvxk3DvmS-Yj5ލ ([\4VYJ/Z$4Ic/*H| eġ1P9]H:׫r9kX-YC3ٻ>{}aF^oCXords&F 0ģ~7Ck0_'g?x5buL>`p>\R~f&pt2~alc45um J4f ƒiCT *X/a3QkMNWyM-|3PmRv#ra?lC<﨟2v̟3EÔH_O?1(!!ʟ:ys~?;-t9B0@^09aLA'cv8n2Jb6,%p JR$Z&GG/*˦ EY.Ho`,S3*k5UR\TZ.j ZRoh=Hl; wZbmN`pE P+%bydrtcxs6nakX<'cc+tBN $fӯhŃ~KZz[eЍ1}ϰJYk,_mD\@ clȑb- R=@S'( +4,"OBmXF+uTbv5:_z6 s?+a~"itSD<_A"/e^nⅧGY55jbm_OXvak$Z]VdƥzU  ( H"JYh^WRs'hyضii jU~v  Eh>o.~Wp0nv!N~B935q'ԏYׯi@NVM@~O~BZ@(#p0>!qC`A(ABZNvn6su:J@^H~}s{= @#$E/7d $ ;*X/(GnB {&wZִ3}sǟԲ];XWO|gX+W'=HQkvw2ξ]!LĠ8t# n90 f3"A# QN[jzGLA N{<JbJc_M};]ӷ_6m v"Ό}%4~g})}vF8tzq  xݚ0ϵa[owA{#)Èg{_yd'Q4%D1c#O-ѹ[wt+3u|`. 0}6r&@هaE?(F㽈tc~C:]ϴi[GF8rdar{(dzh0)Mѳ*B#]$: ^[ݚ>L ֍vIۉ> @:F}-~9ȟ _?0s' Gߐ#e3w Bv[˙>wGt%p3a 8,=׍wίkm=~t#xA㰣n۝؇} gK0wԏx4Om=Wx]łF#C fwkV>tډ\u2aVÊnF?[ oהXt؅+j|䣆|@ au%jjۑo=T-}D/9v]s~wbߍ :vAw\7͈=wIwB_M)H/b >@ Yߎ7~stRX&^qS D XCa͈qsaw Z|ӹ\']Ch2q4Ȗ?^;JzX+af мp 1>{qFE4{h7nt.O0ˈ4:=y'glN8[JH+D橥s_?v᫱/޼X M]pBgB{#ڭy4~r3'J>ˑYO-h~8~kr)G7h Y 4E <W s7¶Oy{{KwA׫ӔXd؅+D(f)iE<e ]!E>[M._M-?Zb}q zA3h0\À~ ]~fyO?f X_/>Q0QS?RvcWk ZyHP+5h6: #w0ayc|7D9T7$EO;Z?=|f٣kFڃo!r4%>qw秎%s\{+6F;I 8ϡs.D9[m30_=O<ӟ6y9ʰa @C(Ì)CX59vg}וRܭb\ @.Do~h_sjׯ4-hEHK7Xvۣs=4 `A.r+~E} #l9s<2M})ab `B(!ѭZ#Xj5?uURzzM p!k HhSV]}rf*:\=)v ;K%{kۼv}%:{+_/B@t B Ⱦ2;&Gㅉ3ȋ| Xw0Ap ,.qIS?U;toɥܫG@@}!(9QoA_59/LΜG^4$EOcO @׫p!᠄D,Nx℧5%S 3Jj.̀_tDݷVX~-їQҼ^7AcB odŃh$4{$F DZ<𛛎Gvuf:Ϛ i^5Ri衄D(Y.)WM-tOW_So6WO+T7BݏÄ-h:TKd,?e3l?4)f! YrMQOSrVo$ލo.oCa^ch nh 'MH^w7ŋBydb8~.G/r)aA BŠzY[LXV焴P$,Nxg4%WSc'k;R^(X. t*$ t)p@ctKȅŠo9gmKL%=>S$.Tc{}͐PjZGF^!Rؘ+SzuQ6"lGhR-ZY&ޓ˹y0fGC~`WL+,FyۂF5>oH%S ;E Q?)ں\ί@*܏-`jk P; ]P-1ROgM&_6 Z ajԸL~4ys݆EeQJitO7Dŋm=J BXQP}6Ek%ܐLJJ0,K[ 7y|E^Sߕ*"Gzl:ED ~v 4CIݏݷ"(X22qM^62eC6F?xp66 x4@یmeV{t^R$($l/4RZq2c8S/[ZYm,-4,n ;A=u7axh}KV8?)M֥.G[pӍ΁*c[)~}gH2D )H_|GGg( cY `M}^nJ4.J)kڵ-d :v=$bvHsmJ\2hrJ/X 6@"85oH#_/<*h3_^FK)e0A9"P 1I/Dl54Gm~5yV%U KƦT-MUn1ǝgcg*?}LBlA{X0KGjLZi9Xx2̨M Bm])eCFz]$TU4 &/!"%ŰS?X$6&k跈mEVWٕEN4AwuAm=G:|Xz-x!{ ٷѤlTIOLrtRSb(äb 3bFA)fWyЋ"@R΍=oIBU4Ha-2@H$.禎gZeLc5EA>뵍H~}EWURP!7nLL-c`/BA慙}\&e]ȵ.Gu)2cQ,;E {g?^{4uUr8|sn=~)cRުG{p~`@ISI,w x%X"]M(0X킨^fWgjF54w}A(㘂D1a#ygV6dzxÖG-^LiJ7E+'@'RKfNk|RK,0cd_hnmv"znGˬ+-4>@BXaZ>CR~}$PSK(=N/QBTﱦJlJ/h)naIv[}L,ϔFS`PI #J) ު"" gKʰvxoP[e!80TEZQBm1 mQ ;|ZmV>4 X5[9ĒR̪xf}5L1Q%2'~ (,0$2SpJ/ fڥ j1RX  Q 78M-V ?p~'t,{ HkJz۰a@_zp"z4fAA:ͮ)s3w::?@:&@:GkjAA|5uudޛ-1}G .lluhD: [:숿cmϻ@RGo&VKz| ҄X-=hc=@6ŀnX-mVgIl[%CAmo&t:4@T,ܽ)lFAHaݑUlVy: {6w:sQkeVFZ'  7FXfjlBիpYlX+ Q L 2$jG_,y *P*4o az; օxM.AD.x @}Q禧QƸ6XƲ3R55qf9ׯA8]Owr~ Fe؊ "Goj>qAd8 6ksߌo,=Σ*s@KyWcu  >}3Yѿ;^O @ g0Lō 㣽~ VzZy ſ ;QR:4@J)RLX^ 22:*4GK~gpwt::ڷk>qA`Xw^@s;軑r@Aoc!Rʭ!)c~- 7oL}9C]?@A8a ݌חj̸)#~- "rw je v;sSM? uhN8 T16{˼n  c7, }'R21>7ZiM59bs׃  nN{w `/씿;5aZZp&2G  a55;q\DThn. { Xrm佷lOAoxMN4ﻥ~Q?|g Hblu+ ! -3 w4x~ݡGMCSz@+Zb6 BAK2oJK^UQ |PJ9z,yM ؖ^z'&m7P0@ ?@'P :R"q0 2~ض{u 5Hv"۰%NQ{VsĶ`{Ib~3m` AQj?]| SXKdAAᢍGNſ7пE4xZ, juMW SS]jA`-)Ѵ2A ȐB)_WsGMy+B#ϯ4sm2"hnT5E9fsA ^˥VfߘWRt:U|{th?ſ (:mpOtDh6ǒ  raM)R̮–;^ݍ|;mLpch4maJzb:7}jrAͭ.vZz?Hݡv~o Ghb@_4@# Sh9xضW 3]+߾hw"M1~@+#h\hnuPw>HN]oFg=4>*B=6 >x%JC'.@dGkϺЎsչ\(ށy8{wZ HkFWB{ߍ}gn:NsG.". xFǧJNG&>H 2P^Ų+w5߽_-p?@ڰng+e01#|.ߛ/m`vłިEIMcgAA Bm|lc҃baw+ {l='&Wg뼦z=[p_ 7 3+U_^x) 6"෉ YO̜(L{ [ #$!mJRrѻͥ9AUD][[З{<3hSw:5k'F=Bԉic7 fU\իW%5qn # iclKwZ jel^Pl W"ۯ?x[YԽw^o,u5G:z(߽۫Xwgm!@V@ +>%G)eڋ{5tꄾ}kG(1 ĶDB)|3%$SKd~ yR,6_ff5~v-/^xy9 p> tziCkdYCeFߪ&K+ӆ(0* m|4r70__!{Gޯž\~K{x ~V?A In_cJb[bzՉ'ʾ&dr ,^x+LA}>:͡%Qpy7Ed6BD]Tbtqi56r%A BzU.gw#%AR{OU77 G'׎_zY? 6k话z"ehpپz5 t_7)>O]+g I[w҄pBsDwaF(ԫUaa>:w#j,}x d(cXoDzRwU.cAֽE6;q߷x G Tl\?~nZ{_E oօTAQbs3ߵȿ.) aE-9uu!i"[:Rf<|_ff~o~ϥp1NTnF;o^ò) ԫUaQ.2{ϐh%5mLQN a!)}\X7e;O$c~Ѿ"=*~~K !j;zc7.8e n.xRq?Fuh@p vRP8S&:SMsL^f@OeɱCQMf(ˉ8A.߂W¬D闛?`oBx]|v؅j|_LzKw.%П@#>w MwT_ l5j4Vk(G*rfjILY^d ڌejjq5]MZ*q?o'FaG=t5o Y9K_8O`{B? *Ђr3ѩ_Ҕ+,4G1h~QoqKp j|ZN<&Wg/jrlZ&u%1y)f,}@~э +Hnm.R\*cuB{s}Ӵ=?ѾC~'X9>su%}0;~76O$B Gv'u[o? M_m@yu 8_sGwE+hMx=fBlsyF0$9R&ӵd-"IdL È뵜\ίʥJ,ijP[7$A{~z})W…ƨĺy7t A8S>>q/† p>O 80QwD x16/ՒV7K) Z$ңj<=ƒI,','"^PraU.VrnS l݂4o7݌!0p~/XMfVO=j4aG|OaO/eZ< >\b}ߌ|jUYK/_L#hڥ uAGlTί[ax-OR$^K.G3&'DltCd2q^ʦTίrN)6jDl[~{v;58h֊+B?qƏS@Zo ] ™˕ErNc Df ?0AuA!p'5 X|@8]D Iq5"QC6lj05tPb ky^RnE)nZUP^׻w [ݕ~ԏW>a5wm6&fm9CH)Î=S+oB "-yJ93w&׫p>XشOT`5x 383JYP+\$ŋ.Gj,hR&LQ9NBScu^WKV/V JisCKmѽ'A}X?h^9w EVN?q *ЀXp8vWhwKsf#J E.=L4!d~fz~/khlh9[v~)!mKN7 {#xM-ªVr9׫Nz y _.{FBQ3sDWb?H h`kI|n叔3nt既MhN l?:: )tt-'rKLA QVjQe5xA֥ȈͲ2͖*cYPfYCWrn54U)f7xMqz]fANkݎt羫r3~=dh r3?Go.7j :jH5~ !0okyN8)`)!!E"NjDfi.GG(a8%ʰ YpĶL4ڦVa4^+ 44^JlP htߍ}? A }*O?LiП6Dc@k4LAz)?yjbwKfCi뭲˳9 o0 L!3lE(eRV.c (pj,2I1$%)ay]e(!~ڑt;C%Bؖ!JY^+qz&ybۦл ) #?>@WßqəՔQkp׎_Hyd;:wZv,4: T#=6fy.Fؔ~NB)#"ba9CeJNM'H'j<5A06NjFj4HDP0Q*,cj˥*kkujĶ+^$A#n>L'+-~ A8zȟms @+fc?Go.썷lG#7ݦ;F,Up -ݶm1Zak ˙,c ƒ)BԨ!QB)1Hҹ46ˉ6K GGe!ԶVr~cV*"؜2܍w2a}7;B[n\x3 B8S>y<2J|}O}h.-4c`E,h!k :D9= e`(yyxSE@Pш@R".ǒGHŨ 2eض]b[:k=ZEPJ bTzb\Jijwc}[,~&`7fGP~yC%m"agNC?>aAJ!*ߕ>L55,y@l$dK8#} $8{?C&RmT 3 Lcck$_8IH=$H.'59$^V3 Z)/ŭLkJuR(G4XS75B7yc?;nvxߦ/a B >oyL`G&fOWv;f؉z4/~01c7Uh]b;* #:8v B'n'ABgo1>~{5ušzk5h9zOhn6 wkD<ͷ ߇;R-| ?+F4AlG//}rlsyZvA3inAP!(ri #aN& 0"fgAGwIS>6>%DU˙#g>R? hvcqJjKT./6FB޴@1}0,]5AA!Lt+~a?HۅЃn 3~RSTfOc8p,NxP%CHCލ6nTwc~_X^s0|Sb x8υ5N0Qn~Oڝ|}7t q5ۍ!svm3??hcď DJboe<"u07aMCn6.Fl5{=za|#~#m #l9s<2z4(^}axz01O j@pG!9p?㘉n8n #P ga@R)n]~/h>ğfbߟ>z4cn-*t6CZ+ !@{!ig"n^aŹ=kMg#\IC.忐Z~z|s) 5"vק sZhC^}ϓ*n/~G =!Bo'<H~j<)S_`PBb|?YM\~etC2 "C\f¶g$>z ]Ys$ysrZo-9$DIMF/!_a}aF?ķ&H$g9^@c-^{*ɬY(|ODF.|o9}^cRw; k߳??+` ' 2՝[oZDpI1F! SQw ş&/Kw?se|* 4aڿv;w~Zr0l+&5  sG>5YQ*VnVnQ+_~ey>hFIw»fzZ󥗟*}'6F5[$L\^/~\ /7,|t?/"?IV `!\u)i}ƽ[ō[?Emhв+?tef_@wT{H;(izE+ljIGXۿ_n؂vVޯ,nݸ7NϵafҔf v4AɎ&D?@s|׾//Ur } D#c DĻV/kyAuowtH:fI4cVo޾ӯ.i$[J֟3UȬ Dr# P/(V͵e<3_ nh!f䍑"' ۋڝwmUSO(^ӻ @2J]Y+7 fsCd#-eZ>Z*cِ30*;`-ހ' ~OR<_j/=4=W/o1B򑟇\>S}i˨o!)xMOޱ]X߯zm<T7_)Ùh G 1K\8h=HQ+t֍}S+}ϓ3*lOږF/e!Ƽ r B_nBQ6kw0mT{:jiҔ )@.k2ǓDgRȭWLWQЧMFi"!{e$`?sW QduS3PFB0S{Ǝ؏$L>/Z!HS*w`t5qe4yH!ՉN+jon廎{ǓoTXB$(*!oG0 ԴdN@tl/$ј ([c}_;ޮ֪uat`}l kq>اc/{+kzi+|ۓ9+h[e/6;$d\B.eN /f}+[c.;'Co j\\Jy-*(?A W umC,KQSnzn/QQy` v`^Qy!YjP,[sI`T`!y ´1$O5$vW;m9훞$S @= r.i( ׶$Kߵs{7wUcFiZ'S_*\Ԛ]c qjs^p( =8">NSO[~uh*UO1*Ŕ "Yg=#.ad@hP 71>  v~$ʷ^M[p>C$~m,f4ṢL2.8mg~Z:ºnڪ^Xg Væ'6=.L~(lZ\ce˅! #ªGUOc TXrE]9m?W\W:ڭaCq2㘂1Gk.X( >qFzi^3US+/YG(0B)?#2cP3Vm qϜKazNnN}t(8v 0BJ%_nعNn}-ҟ}7e-n7o."S016a1-Im(wpO"C5ҍ+mGm8J np1B˗tߑ+ص|k Lpc\{r,n 2L cS.a^m;u^K\\;b}>^nR!O)%LZZH#y\Dz?o>zi|F)ڝ_XZl7\Y]sd-_6|AXgDXd2FoK2]q5^ (Իj_]I2 v1'O}@pcmfKw1\{} YM|#f\1!1CeOu>|fF)e -bMORnztǧ2 1BpX22W{W6,֤"n#`on;_=Q^MAfX3Xc=\@pZxA<Ϫl x Q]KQ_wֻ4_Ow޵z⋒(+L8wדEO=I /h~Љ ͛O!0@pZm94ȅ` J_{s}``ݼsw|h^kQ j(6}Juԕ>,UBy>3 nc[ 3;@@9x"\ZD2+3ŕ{Vu(Te@dF  H : ͯ_!unK€,[>: 0깞XQ01H:NuIӏ:Hԑs" //"PF=_1ƨPp 1*,2J?Q.L#{\ uLF`t\%DSQ h'߃ W `o|;c=`nxD1,Mկlg@\_$08moAts_GV UM.2BFcjJ_c! bՕa0#a=:t2m zg3Or%^6u Wz"R%C/>)  V}0s8Le_A.,,,v;UOKYAz#ݍOѶp<_ f`x#_8h 0@W/O2) veJsǂN22$f J g| vg@AkO a~#h5SLO  S.m~dAdK-`@tO]0,@r? }D(Ϳ(uA7\caO{e?`2^̀`@_|XM EAfƊ6=?Х* 7 L!>:W\%@Af\to:-8{pjwZ8 閾dLZoAM$˨ ^15,@هGP3wAH OjnCP?#Lg LtD@F,^~Qu/. \1K/?BgpԬTeY,1 mhlZ` @ICAc~ꗿ{zn #ޘޢ?SLY J=/4v-\U8;AAn|_YcM^χH`xV@P p|)g m +>y|foAz(zg{'ل?)Tfb#c9Js`=IEA(z?w/jqSL |~bdo*>A$-Y{я ̓Wp,O_6#  @ATe~cS.? 0L4rVnyjG?VNANbğ7g > k @A(zwg?)4y߃eaH{rhA@c?٦?b?WMi@ E~~WGxh?@0Upu5_?' r}IpJed2f1;;Fi~œN r=`Lwמ<_ӴXȟ7/k$7M;Wٹ2 2_亍]^\I0BsJ+ @QKݏ7$S?~A_~̈?6&qÙ1P ̓mjUF)φ \u?_yՀaO<HmkNL@fQ! Gpӿ83-3`65}tۻFinœb֟ AE?'s{/P7?T&Ws0Ek;-b_ 1Ad4s?zOѻ7L5)zt@T}1\|M}ki_? dkK_Q y5 Ff2R Gu}e$ 2mBƓ|% Ý}8;LL&gdFjZy "LugX}_*z~ޒ.]o` @*9beѓB֟A:#g )hğ̋? HJocW{>v**6"\.sBc?+^S.[я,s-'Q tb|JBy0;;+?ˇȦ^Gp=zFe|˜Zb}/7A@]Ǩl}֚ۄ>hm y9ݙG?Qx9`M:r- (K7ߪMA8_íh60 ـQ͋c6A['Qy \gօpM @bs`|C$](zwQ*@"\%c^]ӿYzXMHt\L yj)w_Qiœ/?/ U@2G [Nycinz?50 po@rF\qۋE)gEFO淟~689gSUx ]{0)Kq2 $Ki{I(*A9[zdu/'O0L)PBYoFs~]>~)xnUr' r]!~gwq/W\i\](QC$) t`,6 jz~s[Zi-ϋ r(nuսODiZ_8M&?%alR@xɓ\[k  Ȭ#YFr`o+<ہ?nh_ܤ> 8_Ně@(CkFX;݅%WAdv`eGv}6kp*?g7\(@I Dg "3oSFhp aяnT?O01&7dP㾀Q5rFAL?jxw?(* U2jd@ ~ ?j/.ݏQb2! ـioFAi&Nޏ+ѕP 9 FBeȱ F\~e-K+0PA ~w_k>"kՀG?'A RI=@)+5WnrV(\ﻊٯh8vGx5Q ~(  $EY`D7UrFkze/HjAلzo_T^=*6_?o D?mďK  Qf@.h/ݸWﺲZf80 0拶ηj/ʇOG©Q~^  S8;8FgN{QLuG,h=N-(KfDyxFg8&u 띥ǡr $S;/Am?I蔽i14qF .+8} !# w{s+wBe͓"6"BꪽnBޠ~44>  @L`i@8# U,T,n,߷s%OT:lK'MiGx |JO9RZI |]Ĝ^^XίWo۹"z D{5kޫ|6HtTDIsO)P2@B+3a#p_ίWo'J |1d{j|~8罆D?i>) 0j |5g 'i f HcFCL$<y`W c}4j8+09S3v(έY"6"4)z6vGя\?JD@v\0qMIInF 3BdK+Wz54n8jʨ e}dV Hw۹Nc^?U} O jk5I Q~ui(-+ lUE9Ia̧f^:y/YzΊ(& ?g4W A33R^%˽~y/.:ZEIC0%fGֻ5].4vd\DŽ|Ty Nӈ~R3#e &:JN3 94,(*T"eC|ߕ,;N}7iVC> ~Rğ$~?1@cf $ex znD5_WܲYjafQױ1dwv[N@kHރӨ<,Q;_!;k䙁\(S rEFQԼ/O2/y{+a\[+zDiK߳/?>ڹȗ& @p Ihvg PVt#++9G^^X5Ғ'EWR _${c1Ot`]9̷zM2h[ENG Cѿf18Cwf6OUWRrFin+V^yOR h K!,Sn]km:XA^ܖGyD5%!+>36i3ạYb݄s7>n(a7nڱ(ȹ@3>mbkqg3B_EueUR #׌bu0 |q>x<{$E ׌R!{\we6$S!Lw:mZzKȣ2>hscgf :Sa\_8&aԿ}_>(2BFQr9;WJe+_c̓EQqes/rl6uoLkcpME6~͎Ole0F{^HÑ2o$x ߗ> >>r> ʘف>M 0NG #ySep1*VX8sO$RgCqAKĐp)z'ئ55}E0*yeq7⽤Ӧ1G(h7Ƙفg`&4F!{1`dքwx|/ ¨lBkiELc~ r̻4zpq@kI%QF|Τ=Ĝ >h!Ln dݏvbyqҵD= >2=@`)]%Qyu7DQI_V}5(ȴR1qDI~4#ړz>Nb h+ zm5I_}瞄fQq5io8 (U 20%4qw-s]@ki6-(lV4yڛ$IT/k8N%(u X ` \i%iqyH},FG4 @xMVǓ7!Pd4h D9AD.(,(ryAn PAAdS_bSF3%tEXtdate:create2024-02-13T08:34:23+00:003 D%tEXtdate:modify2024-02-13T08:34:23+00:00B}<WzTXtRaw profile type iptcx qV((OIR# .c #K D4d#T ˀHJ.tB5IENDB`flask-session-0.8.0/docs/_static/icon/apple-touch-icon.png000066400000000000000000000072661460047617000235030ustar00rootroot00000000000000PNG  IHDR gAMA a cHRMz&u0`:pQ<PLTEߔܡwbTIA<9x\H=uiL?QVK:pR;oBdqeZvE‘[iθ?N~bˌ٪[{ӳUr{>_|F«c]z`ˋ٧JÿfCwF^ʄւX@tgTGŠsOŁՙ}yӚDjΓSQMĝޖ܏ڲklΆfMĕmϢpYȟߝߣaˠ߮ݨPhͱnWدR;bKGDHtIME " { IDATxkCW'X+d6% wE`TBQk0Q֠ZXWDPBЪԢZl$3d$_Ȝ\?aYȆ[ P0[oo=x06)Ȩ< mi 6. ]y&6e=_Ĥ/q*޾zx)AR[ou'mZItJ90N#ʊR(°qRgi ^#`@XPoT`džA;C=Ę-H~v+mQbG΢j B .UrܵQ3>kXܗ}ѪދـJ0윥/轃?VbNF+!՝5NbL(8k61uB. ,-ҵɋE?u66rMRID\+\_-F4d\J_{4Ou2yS{Ϻ>.njيPDLXwe?9K`߶De9 V+Ц4̕$ιNע Uq;saY<4?# M E1&k<1Nŋ xN^?<)bß|cF ߅i-YoQ򖩱iݾڿ6\Kϲ6,a~ !pG+<4)HI0 kQz VL@K;ɝU,k2\L^zzJ@A5XC^zZ $9cly@ %d ^~൶dg+)B׮ľ}V_CطV5O,_(x=/&6^Dn!.nלF-]xD0fM=VTdӞ|(@gD,a)mwKc;<'y}^~{v߭>qèEryM73O+ l677ޯك=mM ^XA .l5;Kfgm?8|F㡜'K+Ҽ{ྲྀ'(05@qgY795*DA43$ : Jtk"ye=wXh5w8CP:HP( gH jţ%c"lcwWd6[>h 7jr'."')jޚ:?]CS(.ɅT(Qߏ`P8j"ЬHoDWO҈zuE>.3jl Mǩ`t>ُJ;ȇmQ\8;\)UIKY LֳpkILx3~dV%LʩBfk*sFe\HŠWG--2 &+?M'm^_ojB<)T2ăR$i2bKGDtmm pHYs.#.#x?vtIME " {IDATc``dbfaec`dFN.nb>~A&{4#HDFXN^AQKGEUA]XYSKL[QGXOXԬ²XʚށQ͝˛[?98(?$4,<98!*:bbxA<ޠXd4t$ ̬l7[[LG z3\E3!<{Qeʢy@0FjiG12χ;ԉZw%tEXtdate:create2024-02-13T08:34:20+00:00Ȟ%tEXtdate:modify2024-02-13T08:34:20+00:00s&eWzTXtRaw profile type iptcx qV((OIR# .c #K D4d#T ˀHJ.tB5IENDB`flask-session-0.8.0/docs/_static/icon/favicon-192x192.png000066400000000000000000000356671460047617000227240ustar00rootroot00000000000000PNG  IHDRRlsRGBeXIfMM*V^(1fi|,,Pixelmator Pro 3.5.62024:02:13 17:51:13Wtj pHYs.#.#x?viTXtXML:com.adobe.xmp 3000000/10000 3000000/10000 2 1 Pixelmator Pro 3.5.6 2024-02-13T17:51:13+10:00 2024-02-20T13:17:14+10:00 192 192 VW6IDATx} |T͖H VQ l&,"EmUmϴn.\jmV&*Vd%$$V!̼w{'H73of^w? 2{={9s 1^ڋ9.R*?jW)2:\VoЬ1T  쉹ָaKm]BY_.о8Bi?‰ɜ04>-MD&bS )12I@ T9%2r:pޗQUBPjO\YYʕ7ͿKt^>boLw@UAN3HD#a 5@]uл+ԿҮ6G]^d _kmIjuF#L& g!$e;>'ghOgg{B|W_ 7+) Y|*%Lba6NC.feIO%B:lA*WIG/._&E]fg@ O(c.o~*W,_KɗKئ^& ܇'6[ 6x >29Ѭz׷2z]g į%"_i.ڸpa@5j9ϲg$g#i* " ]؁?e ;Vo6էזtU' ]`)@̏M!Zs-CAdW ;] \%ݵt0 ә10Egя,e{=0muu\z׃dt+; bT,!Wz\pg#k_uT!(<| ,cOsuFSGy 4mwrjJyp%J !ޖ0E:S^%4x}H9EV8 YuϬĶ*p3d,7.B`sEz vt* 1qD]L:"M}:aYᏭ ʇ w.K?`` :#7of1HBP [\9'hmG&T<5ҎxOgfx$dRwPS: *sь0jftD+ #V{))oT,V0`_ܾ%O)WRf1LOXa `r{R`Zn" @\dsPة "1K7A l=,u8 BaF#nAC6#Xfdģ8-:㭞d8 cn*b˞s Ji>PNS!xA@%I ğ0‹({gxJ0CPe #6F;ΨԵ'0A@ 0ř.q"p՘Ü\Q/h ]&B_?P`X;|2'`E݈G%*}og`Bdq}8ŇVp]CLB#H݂п ezdGf< FVj/98HPq/4nh~'Rzk\!+ǀ ~ jI>J }o4p 뺭fbȹ?87&$F5LP2 {[bofAt+{:Ew4B5 |Nzgg:/GEyuӕ؉nT43 1%°(Fcgp Ws7Wh ~M=ٰt`Xw_HBvo f#˕'HJ;Ͽr[fyuښm9b)w[+CgGRU=/"L>I'Ы׈u:Jc^gxd:oRߞؓJEǺM+$D(Dhu"8$qc 8]qFȝ& (c߹|9 ף~[\"7g1xv= gR h3vuWf1AfbX;pe{ 5"n!߀- 1Ǣ[4%ۈ؜t_ߚ>uMt<, hجc@srB!6”ZX|h>BŢf܈|+&FM \NDDDu1'/_CyƢNW0cVmb@~ё v1kg F"`E't ]fM]MyV]Z7+11%D밿tc> qvc^{Oi$ ' HԽp)+µ M|/ D"%?9YL 9 ,@wN,b` (*p kOb:|==.Pg~^R3V?ܗF pš *LiG^lcfsr4N'Z\7^va8G`&g!OP2?=b}`̠bCK&Q]{KmeZv27@/xiS2Mp܎?q[0upxr/X͗.A=mYyaN1o(gOJUouecfk<cEZ0g|'O?ut@ЂfQRU50A 0`(x-YCP25!wNm6o=Ez9~x}Y V7&2'ؙV88Lң6.*AȊg8BREG }죁JaZ2~Z ତX5qL2t~/=0ѵKb4Vbe쵼T,KգE)fln -]UOu`G EkȆB &b) *PA KrkQFFP 槞g58{n)S] &+Sܖ={}W+^ F8bq$2Id҅&dT' 2ςVfZ0_WVtyOaw+%qwO1hD wt?0-?ӝ5=gG*ji%K d>#$wO ., bRxDV++EZARjCO1"] o>̻cP}Ih=1ԝ 51"U ) ~r0'fnzBKVC3N9զXeۄL F,i1T)4hif{[}گ"4ڝ=2'[9S179PH1"AbP[Z$ 9,6YtTtU4 RRf^YbOݵ$ozx5.+uDO0O7ȊΪBHtN'H F< "3s*|7]씊-J>ܫRkzO>77dU :RD4vb<5 yz(Zzq6p :>Fqӂ'#<#dPxع8p+DӖ@S!׫yBWCiWB)\6&{9hkDGȽ8G?jھR1CF\5y#Y>A #s ĄM#EMG>5^O](|`tRr>տS:͵3O\?ffk x7@"eֿF`ج~ܣm8NaL!@6ɨ x; JLiU، C@g0~gh&˰/] _՟˼yYU%"ly sko!2]gh5C0C<&?GN>J+’;ojƅC0dL6\BꢍP錱7%,&XC 3,Ī= wfmҐl0 d|Meol=3\0/ʞU5ps ¦҅mZ8O_7V_w3-aV00E[zo}#=U ͟Fʲ#bluA'pɧ9/6F`<tS&:;gO9Zږ\5z w: Sa+W.7bvܾTi8Tnv[dz~2}ݺX[sP`aV)@a(LW&C u/ tpf%EE'uGxq![$N)j~zMycIl wb~ Mc]wgߑbrEfLPy&Qi~ @Lf2T1 C`J$LЪ =~`9[bB.1ok#!=DpDEeꅝ N߻j=]?.c3R$ \hcKa{Ə`yWNr_9xB00N@1h`:U:S%4ϐ?Nٰ⅑G ⃃:n돜 Y˅m)BDB)~3˶#sv]M.f먂.w1!ǟ_9H/W<ۂߕq,܃Y^JCxSQS(Hv%6+ҵp!L1sv,{/ d_]GbdN8d;uCb\ QDf ( :Yb$|$K٪@)>1A~XF`:*n@9a ɘcw3%|vR*}L!Ɋ8w%KnQT8JaFr_04K3rޟ)կlt~_DXO}͓Sa}dKc 2L}8kA$#[33c X;]ij}MB^F0 yXh1kcH2tno3B8:`{]cl?F  4Dӿ/d$vDp?aH/)؎U[IL׫PMc\աP`Yא:R0$, Bq>++&„Z|ZPw=n` 7c @A={gq:{du\h&lpel t⛔Hk;=~; hW,S̗_uo,򊇌'3)y'x{@UXI ux%oY s^Rw<|p_ nw1i (M8JY9Mۨ8X%&1sOY0ƛf8 :M2I%@&`Typ+@;D&_FWmTB<ڒD^.⺨|vftq$܃5,^z#`-dh2SKI&fj! Zo`gԷ{\Y|+W(28GJMXCpGt#3h.jQ(wb}yvL_Oo\pGp{tݜ!1kʻũNl`Su2&EKA8$b:3m**QE?zНʼ}+E~Qn wb6)6sa:4ڙoy+o9 12gb-qן^*3%x((3Y+@DY"kl˕,]l4W?Ϸϔ)I φx&Ll}oF0EQLKp V ͼdtצ7Q/g^t3(HRlʤ3- CEA :jFcKD$WJTGk73g^o/vsR7z') 3ojs)X  8 @l?Jn9L1)e$8&P+SD5(|tAhݚXO54(5a]\lx.vGg\7?1~N.8Hš^=' xahF1a}E#=٫ϓ-u,\@BMج F%z52=+x2.Q,,;H0 br%:NaCSWoWOMe8PC,g>w oW-T3YpC'siͩƨ/=-C ,D2nī4XdQf[l_^O|Y=G8`X*&J)ܦZ9U|n0="{("yЃR1PxEv0ETc\'h 8-qFyLIkA (Ȳf + ܻi f+;եo#FCԡ$ĔT#"P|Qh)3@ _q[ j@DJD{|iD\mI=yZaω 8oy[cl#AʄFe d/nobVnRMe^ZE g0 (עcu`x?݂W DKjy淉`ȞM0,Y O` 6f>ob Lq,ʾM|TfQ{b{;,$Rf11M |%) A˛Vmꕔ5ׄOYL D PuIAS [$i|Ā8Cy4 \7_ZH@$1P%!r vf]PĸW?VLh6oڌg PCb!{?>`2~ltU p6Tz(+A+W&mQø׶S&B€?V#Y5!n CP_?H&X  B`/m0ЕD#b%c1YL Z=PO;NSw]yݫbwSf11$DwN77"d% B1*U oÄwj2 ȜHBZJ8_4R8zX"@.n`c^uaYd{oqu 36<_&|,7Fݎm1.)?rpJ2TI^~+0"ջ*%/08sm~R=р!"Lɣ!?pg6^}8C ;K\[,)AlY^y8@4to}h^GØ1m)/$7f*˨2>}[a,.ĢG)bBN$dZiiߌ Q?# tD;bxr 1nlDb.Q .~ro<ކ-?^ַrj_?2Td*/dϋJ<8 7:Btg:Lk ESB}WRArPCv. 'D~f'PQ5l 3i篕$˝GR$/+VXqc1M SE2 1I*׾>2 EcDBU{cR\VK0Ȫ:4!Dȧ_V1RV~^K 1)M < :Vq^l|x9D -+ Q{`Bfz?`{#S pIy>DCo_! ߈ "Q7%ب*&\4ԝ-Y~gP0,YcocR Tݥ~5u ZQk8u!pa*:vVI@88gr>AS8$8mc7(%w!La"fܱ0?A)EȘKo’2ߜYaɼK qO8BG ǯl7J` BⓞBua+(\@g$JCTbGv"A9Lr%i׸%߱ƙkZ} z %ƀkߌW s OoV99R[lٓ@d ~D!00qV /V*pL-n`VB nM4&;єh$9RW[mSmu=0qI4UGaԸL@)h/@}f!"BT87z>.),$;Fa7bVF(t [8 dx{фЩ`̢SFq]"Tʪ)jS\LC#3o]XHs{x0]L7N^a. 8%Ou!֮1ؓr AߧK&=DWߩ7^pɼO^R2_ȏsQ~vg2Łv;UՙnJpFJ$uoFط..0cbD][n wzm&b"gߺ1B b rlt6oڪܲZc ?ӱpw.2.0 qi &:D2q݁c:~fғsWa5^m=ʚՊJwܟy\.![]aO̧u8_: c|V?26a:&ҩμԹmC|s+ 06u{c-uμ8V\rE'ic:6CzGd yV=Smۥ'-&ruќ)687a7?[)s=Mk`Qx9F1Xb Y r>%Y.5fPNxxzSL@x#fW4߆}Tp$?ܘ4=՟.6(1~J]8 G . $Rmp5FYt-nLJ*2a f¤ e$ctOgP:@w$h.cM/N[M΢43'\|d(t UE465Z8C"P2Z De0a5OJ(ۿޕ=hwC$^(6iPX/c$56,a=)ge 6c,΀r p9b##k].p;V&41 >H3fyCҽ+*5dq+܃ ]|$,ҌЋn HNG}֏"|XRg꽍+j =ۣ2bbؒ1d=|dڠy%>'bkP wRZo|t9[ra8 0ᨩV4^X'k5Ś+ M+3D6~-&$cȕ=8K̪fea`=-@jVڱJY$72;#ꂂFCrǧXܮL/)/]:qG-UUG2jV9AJ DTiHS"}8 U8B%x6`Z@yʚY4_ DF[/,D\BgP0!:̤tLj|qX9'(Ȣo{k(cFef:IvU%IZy_JfA98b h^8 m7;/du\R 5[\)!V.\`VAYY,*,mX "&Zߗ0C%d"\2}oPjECB<GDՉ.k/()vh54ue%_"F,&LG.z-vy=4b>kb bYh;3Y4Thc&„`칂e3ɀ@tHA [erl:gVkbC MҖF:id5t0@t0.lI}s>VP}ƑYL Dl>hS6poa A|aSVAv/ DxYk_B%b5p 0={4o:@{oK($ej_ymbk n%?#`H+؏`5NJhJG3@ tYJvA++>h%~Y<{G01aj`L!ݰF6{=ĞԝD|_kb+̤ȎlAbN~m|NO K s{M';',$Z׌6A^6aUҬ%J^|kW՛|nƧ:c@(}A4`I'm?e3} k>+"QWқC֢y7犃BZ""9j8!ctDЪ1rcl~8 ~XoC`@7gsߘ"WB|9ud_Ew"~0BPl q=\9YJ'φVT8vRf ݀ #gk`'b_oy7&E͙2  禾YI~gX/?h~wk p2oa m@i;0;|He2BW#=Æ?z+ \ʹJmpcWNea*n S泆mOP Cd?h+zuq G!zJg Nc߁:l8:[uf/3" OUe{qXREznCa|aK ! ptd59z6M1#X!b@-@߉ltG w/hD~[V5G̢_2dvx56!=b7A}N+ݖcOFPĩ/U,XQ_ OpJ-\;,[G@ @Nl70fb@'GᙾC{du|@Bc]DdWM3}G]q pYG3dN%Aq|tܿ;"_$iI!{j=Upd[-'l!e޴ʆHwqTDLp2@0F<髄8 /0!M3;+ʱҙ:K\lU ard gጏ;KBZ; 1 28k~;HexZZ\C~i|"Cfb$MSA8F& psPʼnV̢6̬8 {ׂЫA{~'p9q/cM%˗,1`2@{ltu }JKK8{`9 9Y$"dyڊ4}1`値AsA@ʫ@ ss3d vaőK+WCImyK |"7:Ky3ѻ+ p%Ft{ǪKctp5ƖzMnVWVxitM/#xfU&L v 37d xIENDB`flask-session-0.8.0/docs/_static/icon/favicon-32x32.png000066400000000000000000000033411460047617000225260ustar00rootroot00000000000000PNG  IHDR DgAMA a cHRMz&u0`:pQ<%PLTE9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999j͉tRNS9bG Vg%f(D㹕S/ԓ4-ܲBx6ELX}*|?`h@wF Mޑ ϊ& J7H i=«e+bbKGD pHYs.#.#x?vtIME "zKIDAT8uS[QRYDĘ!Dd D VK -XIXkzof0s=;ݗmߑsW$ {  _|@ؐ،ʒ 0ˠ=p"ԉ"$.*i(>%,/H@Py KpYT]Ʀy"Fnh8|eUVi2` [ m1븁Hy]ZZgYK+zAǔ$)mdp MOrʵH4s(ͩ>/_iqTJk eo`w6{P! NL褐jlb]!,*3Wm4Ñ@TCl uaBҔtk~:RwC[D^.93@/ X#6ƅQa >$>qjb#!<}0O`1p{Ɉ&h kK)oMxхjZnAP?= ̴4&f׭J*QQkY1jοQ9(O4K -(~8X^YYNt:~'/%tEXtdate:create2024-02-13T08:34:21+00:00m%tEXtdate:modify2024-02-13T08:34:21+00:00-WzTXtRaw profile type iptcx qV((OIR# .c #K D4d#T ˀHJ.tB5IENDB`flask-session-0.8.0/docs/_static/icon/favicon-48x48.png000066400000000000000000000106741460047617000225530ustar00rootroot00000000000000PNG  IHDR00WsRGBeXIfMM*V^(1fi|,,Pixelmator Pro 3.5.6002024:02:13 17:51:13ϊ pHYs.#.#x?viTXtXML:com.adobe.xmp 3000000/10000 3000000/10000 2 1 Pixelmator Pro 3.5.6 2024-02-13T17:51:13+10:00 2024-02-13T22:22:34+10:00 48 48 /T IDAThY pT>ܻ$ȃGPalw%htc;ckG'v:e:2:(*و"R0a#BT!$@6ݽ~g{sw ܜq?9K%%^RORF(Ğʘ>lz:cbY¼|\4.(H[3iյ]L"Ax $QQ"> RH]&h%@ֺ=65m"8PBo/gQJ_ᛈoRwVq-jtc 0ǻy"` "&ZL؋p9maLYm˽a6Y*̩5;#,`QMJ Aʄ ؅R}K+pV9޲yӵA^cՂZhjD̥>a Hfy 'BF=;4l.qy}Ӡ5Xp]0ruDjS!2ڬAo_.P^,lr Qe[۹N]I&=Vsrnv&},cd@oo`ׂm ͋*dhYk2-dmtAB@^-=Xt PZ>(-(v ^Hjs #a= hs:3T4!Eqgc_}EPOD#Bê/5)59%ɷiVQmx ’ |O" P~`ע\{Q X(lvex\E,<|}Ψ U 6UyX4!AC91  xY y:'ƀݔ<9$*?au|a;65# x2Rtc9.4F#jܐ=?NiVlg 3/1 ?#y*9f-ZZsXxsf\Xq96xRk٦AA)\jbґw.p[ xSXLcL#\ՙZO6ʘ5)6A=+K h8 CPׄV}F @dcNLϡ -#Ђh@N0p-e4 ;ZJpOv#$S*R ^:pan35, iBW޲ (+`qaj|VAVk_B]`z:9Y%ֆQĥ5wmݽ)@7+[6n*@> \Z;Rd@lmsZ@jE X4o5pm=CxCNɀ;4TFo u3;3kH?Z4# ӂÄtGWP;r;Cs?,Kc!V0o$bBL= }FM&ܕ$b.H P2j`"r4Dd$AN ,gp`”FqԄ$0Qo$#4;Bx>{Y0Fxl)~ކKBI,:`B2Bdl*$iST~]v&[OS%J%$L)Vڴ'o 0\H o!Yin"% 6~d\k DǣO~?Ȕ>Eiu+; SD8؝A_Qp~1{/"SAHz BC^<# h)[] m)[o%nNTL^ TΈYWiye1$p6boQ ,vZp ǽ_ A5ik*qj:Oܘ@ i |+LgaҼ]wbfw=/0HN Y `z(SB\'AEa1f Tņ;L㗩!iEO Shp"J€)OnP(}pggtVdj硜&s5Sg%WlW2C`2IWts_3Y9D܍L>b٢ht *4iB20-w=w3=@Dt"W/imFzPW@{sd GWo!Avl?Hޜ̒'s.܏Kx&/~A7Wэ>w;3k:#eD9y˹~6?ļJl+Yt#]܄'[qeaצB;8q/T5w1']R(#)_&v.s:il_֓18_"Z0URBkOg-qD_f&p3p[g7$tx G{vM>q.4 kDZvl=ڷd0Iy9MG 1!%'fa[$bڲAa`;| %԰MM_tQkyv> Y9@2]$P}6W^nV-X̹XQ]BbckҔRDIͺe3X @GFm $`-?jcgGc<"WR>&/% 9u?ZbM<#rr( q `&(<oxe7* }B KL(8(_NE1 5Yɪda 4tV9UE"cp3F!`C(Hy'mpLhU)o=P?%/㌽IENDB`flask-session-0.8.0/docs/_static/icon/favicon-512x512.png000066400000000000000000001220321460047617000226730ustar00rootroot00000000000000PNG  IHDRxsRGBeXIfMM*V^(1fi|,,Pixelmator Pro 3.5.62024:02:13 17:51:13` pHYs.#.#x?viTXtXML:com.adobe.xmp 3000000/10000 3000000/10000 2 1 Pixelmator Pro 3.5.6 2024-02-13T17:51:13+10:00 2024-02-20T13:17:51+10:00 512 512 h@Y@IDATx `Ug% a_Epð%Hh]تՖֶm풮m] /Ȟ*((![;/, dyn\}999s1: D"@ D"@ D"@ D"@ DWஔ&'5t"d]J$PR" )fqf}zi^8?gιPJ2:=yS H?9i'_G %pB7uD X_2DLD.3LS񡂫`Y8 'GOUuJM;|# Dh6*г{/5*Ana*! zn\\4BEF~@\<뎹&ԨM?vApu2$ <0]I@jHS)5RC̗^WgեwDY=+АvBCZNh>g7u`z65n.́ґHD@I$b膾:+gnL4T]wavzQn{!БnG,K"_D^$?ʄps@&ǸɥL쎕wHg&\:HЛg{?|޷ǫan>2؛ޜHFU+N F/_ah/U샾{ ŕRa.]ot H@ `\!/,ť o/Ë rJ),L\kr> #O "RZvA!Qٟ  |wA/3x1`_B炂%YDLq 3y=GBRrA, RAڿ{4AQl29@ ڕ7[:"@=dXB 74}@z8+Ĝɟ_;=Ŷh׉ڒ K@)ѵ% -O1n^|\f>Xb:0 Qⷄ7܄G"y)`}& %kӎ7ȓ!)(Oe&-'@@˙^=dB0&G1eAOكGal)?QgL# #@S C ?,GRʫT׎By:'@vqVSZ_ /_ =E\H.T"XREc~0G`but=˧Á XVMRPO1(ߦ{ڢX -IN@2 NN 1EP ~5*H{iNdk%S(^1uLn#DbO.VOy@qJI,^"䢧gZMN^DdcF 35L<,RRqL@אּo-yԖ3_NW"  _-QnwE[V$u?+/.:ܲ[j"@H hur(dl=7-L*81H !HoA.~EF@BR"Dp.M ϘcPGz\$_z0I$LI %j,faI/_vcC@:2DTAI4 \t (2\XŮ՟'}^E\CC5_m|"QnK6澛Ysp̯Aa֋cݶI+oi$H=d8U\Z' ߦׁ0U527oOK]F-g;4_[/Eo?bO9KXKE4 *<H!d8EhG. +u%(RS}9t2%`zVRB{x_T'@ ˻`u\!<"}#l0[' "J:K׺ :  }槆.uP ("(D+sD[ZhQϯhQޔzV;j8KHnٙ.p2,В.iy-N,BUDqR8~,?fRp$2,PKeiL'n$^㷀;eb?wcϗ!0DxIbRbni ~)~pIMI'g6~WsIwҏ$] %I&pJ%2?GK dO뱞^8A8)9 ݨߏ_ni("@ZGq]zd?WJq?GNxvD}u;_ M"@\D 6*krH[Ey?Sw3zF홎F:αEc&3_5uY; A PCZ% bxrF;'^86|x>$'C Vz@(6;PIoE2t ^ǘ|]2üDz"+ x-Q'zga [vk=OcJ-F~H{ x^T@ ZRGrn܇y[2"t ,SV63} D18*13M44%ngF1XV<_)p/T53PCv=L֩PL}"DiaΫO𫕓'CiX MP:{E6t~':MZBd=fU7+hj%Z" d R/+-Obuӵ<L@pI|}cш@ۘDhDL;7w] .j%D ``j]RϮ`FVe248Gx-b*sa@2DL$OL]''%ORϛ &/_t O ˅Ʋ#w,eO# C@`Ĩ$>n+ތY5mP4aQBDgtu!Ei+\?$M n{AG)G%20@-ބD(!dzsM(}JAnÙ)9 g w ۵rp܌^v]_OO5}ft?ͯ?aF d_d=.hVJ\ū7 vK[&~+LȖnWW)=z\"Y@/ ֍faW؎~je,t_VMym5uRW¸ ̾ F%뎴i'ŶM@pC3\.z똞%z2sOy}P@jAo=R|sP^\LY/}L-x^W{ t&rM1BFzrQb밽*77gC\By.C#sTSEoGY8t=vyEXSWg _H邲+.)B-|~zχ;'mnJhD<OGMy%?悪Jv:fRImE~v(l%(>L/Y{mf ]Z|i6x8?g?|.a.QjnW݀Eh1BY0"E/8l|r#K'8igi.皹 ߃| ]?6fFw_K`SaF@^OGs'! @WήW8'11]gjǘ03= kp-?puXԏJ9UYEzM#9?<#>* 5pHҶ80`J'n0i,Uu-xqmDD6=4bfקzwy/WduFhS6>GlJ]TdJ8"?Sᯥzu/~_וeT+?3y]#Z~:@fl$$n'N@oӿ` "l¹kkPWXwP@ɹ=y]%AN J` 8y'&>ɏ?ٟK^K׍+TYZ& \M~K_Vp0xޒ,7nOynWa,D8˂-_MNm$H7AU@nh~{=0d,D)ޜ:r!K(2zQT&g@ 8K0\c=;P] oL9^?BWg'D  `ijHE'0O4@?No])K)~IH"4 mxDWy/&GTh c' ]U|a\ovvB*/) ޱSʛ8VҸar8.%h`@hm |wOt)-yP~e& J\K ukK@; Nma{AUD}s~o=Eq0 VG^ߖRQeíN7>^N] DqFh,[m$^ZUZ\l&1JCc -__CzEEنÙOq$@T/2.{S Cl_\]5y!6*)y&X$Bof=@)):[$^Q<57zT0t++s4yqVeAcFe$a=yP:]nCؿߢl S(z!5hŚ8F^m! M"M ت 4|SW4ѰU@޳e)C a.p6J^31p󞳇1?sy+>n4߸ZaAvO?;۫͐Yev*6 /ڴ.}_SwVMYSnn#`̅WG  CH3+oр>KNNb& H')]3U%I@i']ȏ_Ȓuo"TOaAg'TWxA9;.Q)p:,W70yz8X7֘w ؏ËX;"\)6 shOw8_ꕖDž:-7q8o Q PK Q ڶuszyA_V)ehJ.V 2* w T(^ԋD VӳdƼAzvgK%/s`о~u24]²2M_A8΁c mS/{jnC"1Dr@ > &I d]F@1LЍ$oݱXH}6/@˥Gf3U<,7O7)q"&붛@@)ӧMf d0C j5X'gyCN@80ĝ^\5|Y`tge|TC]ЭeN'`MAҝ#/޺u| P D~R3ēM 0R˛h dtj#U0H."`#Cf.  w6&@6֪e탑Z mU]*;r:eLjbKeJ7P ìrŗ.=Џ$vS;P0h*<6-2 tx l$XӟPR=!FWZ6R2GB:,U?| Gc3%Q3ű3rQ\'m RzXpbRuVi17@HMC;͹Aima4S⹘O9__^T͟pKGd$@ Lș[٢o2N;Ų>LRt<]h@{>_R6sŘs1R%ezB@z&k*jN55qR[{_wILO[PY')jYV|^GWn!N$@B20>њ+W,#geդA/=zwOOyiA,2s:zD|q3^Yy]d8Oed8O'$85^<ͧ9۷oOiq%>WY{g>X#eE.Y"'++YSRpV Y i@s ƅbub>F^7Z^ kaz!>CסGhԛg uE!|,,rɽR`exL-G[,JØdݍLT~ mleL)v0/X]zyv{ǝ}iI%$ȸ:7 ^/j5H:B@nN3°9ekzg9 X{[:)ڂ .YunW+[L-54 >T$1 D$RI)槭g[K(@8.I 08S D4K++*RH oP=(/I.%O %P C`^̜6۷ު.Er-7g-sϵ\T"@RچHa#S ,7vW|cb@"@ (V|e:WƊ衬mUE_r /4#2x{^"QD"qS˱duODV֜ik 2Zw -ܰfBqSZ"(]K DT[畘*ÕX4"ȟUv/l4<+"@p/Z}hZLVIʅ?}X΁(Iz6l,2q<"@@"ߜFDˏ126zWz8_89 [ . 1_fx$; D20ج$~ +M?ʬao/ub +]g ȐZz"@.zO㜯E4·KY>aX׍߼YxeD DzX^XtN7 d`jƖ`/_d_z!mM$P D$A5X>:Ba%6k~j? jOfJXD#4ɑ0 Dla#Ym?e\sA:HSYfekÛZ0)45'D64?~$db* 񍳽gN e,\6$`ֱ7q{U[ D8ݮv«+ ciOT +ev>ta+cb^ p Gh Doldh0{V@#0fg ) D$0⡴nQm/gF^(A"@gb; vcVgIv%D"@LKXݺ'l7t {IbXKD "@pGW2sDj@iq1K`@!D"zKZtYHJ[?m84KA|G> v)%D Yv`ߖ]WP ڒN1>O>nZFr6#"| RG.v |mS%@ ? a, {ॷ5u/'D8‚?fjڠetƃ( OO g-{bֶdXmHsogDknW5C!`݉DOL+`aX4'#!و -)YkJacNoЩRX.Ec}9e@(hCl"kMȂ6C'!;J"VQDiDӖ5. -\^| m{[ U𚋕ҍ}[-f=eVؾ2!`kՠ̉8gcO}h ?@+_+E{!b]Jh>{&9¢b"Z  aP; Dՠ?y1:̽G؈В.1{o:C4q T\sY<G.e ;K@T"F}8vp|e)zw#k o++X:Ң^={vD8 qq''Do-[>uG.M~$ Ĥ]t,ȸnbaA?tK!~E3"@O`/w2:c8ziG%@ ֍UFm6ޅOGH4:H2Ũ?{=j=pTcß]4@ #It_7ۋǽ!?Poto)Hr"@O˔)oBdm$GʹKbH'聿v퍿⑻5nD86ؐv[qЂ9\-ёhÕŎ\mn~?C׹@ ux Z"xM VNy~ӸmIwf\1prٮ߱4MG $`WE2|ʨ'ZY'9/WdKft X QO9x;\Qx&Bq-%+%==):J0:=Xêi\1uPYwSO"8#c_x=y+-̤|K\R@o܈shx{}募jjy+w򛪛˱@,QUq1#oƢcJ|ǏUGo~p#QD^=nB'!+dRjRo:~X{V w`pvَy:K B'1um۱~ߎ!+l.3;B6j{Q/[F5Pp^=P'_#m t;gG9.ZcNAjwE 0 [CZΊ2g~9?b,%uk6:d~|$#@Csyws OE?^{;Xv]AuG1p'(S&'=A^* 7& dHE lY `QknqYi!).geSV:+,iT`[)?h2:|}YOiPe uȮVy ~Ս IOKjWR䅖w<-20psԱo"Sg0^*n]zQ8aZ70A_I 9RW}feVs.u5J "7Ae7[ \|W1'S:lFYp`ԇ6oqJZu)$C]H&nrҌ`[$dB0RH @T/ٙ:BT<3d4Uו`fnwo*.z;M/9TgM+]N%J9|COj-n3[8u MFvB'R`r=ΰbgfΝjC5Tps$ vlbQ6OO`Hv埒ʥ7~ٿ~~~FJ+) #d>^%Z#"=?fBa1ު,ΫGkD1/8pLN7| /k3Zuؽ&)"xzNX d@Mɿ}TXX)mW228֡g7{PqV;7}nV9@zwهq }.dOotu0U4ms&a hh[#`/Tml=r G4=(?^BCT63F7x/VHG-;'}f -wBc?TlfdN4f"3s(3n?WN}}'/ɡu;F@t86<1􋨐V_E1N (xi9ݏe#pT{K8PuSJg1?vb/B7#2og_&ŵ_*/=OƢoJH0ݟU@E) Ρ7s`S wBU0b鰕4SE*o!M Vx/ڣ4 -#pP2cIHiz< #V !n&H݌~)a'E:vgNބt t! xPe) $t$@{070ٚU>e]rPo2Gz{3o2h0Бu_f&hY5]BNC-|}1zUuׁXL/ES?+`DȧѯerO:$9ni&;|tOJ*聬n ʂ bүB7].\U7 fESY%!eZϖuG.wp+]MǍPW*Leo4"KL~@PzğAOdI@+xt4@I~AL"'"JTno9n.5v'1F.Ƣ@{oF^0(_u@@G>u;f0dtOztg*hX1 z6} v`_dT{l, ډO-(DA} j!X\HSۉ@*oL!cTGkn_c5vYfd禚!ސVMYvN_VW+)iyQ{v|d$HE1hupo_H[J&% hñ, l+j^{=JJD^qACǨ5WPrdD bi7/5j?ܷ}YՠAy}Fռ KY7p`CGW& [1X\U/6:> +| ȝ+f,>\&"L{8Ҧ`MŠ ;H;²A' hKeKΉJ[|;;ib֔dJ8! GQF}$5!2Ɍ!W|:׿˾0,:#Rdh֑vBӅ!Xl+ 'W (%o߇fu B_țNyzj@/ ;ŦSz^o,E#r%;W0Cl;kOCJb@yW8-sdx `X D0S?De/qS@(Ǔmd4R.)xmi:z5+aNs(<H\J?7_򖉇\$gD%U|| m9l(K"@,&>qVQAXʮ2/G:_Z V-ߣ{W[uVeL4M XM! pD^ X; 4"`}ʈ$@'TJ߾ˮ+)؈EQx>mD' D[ϝ:;mkL0$N"@=_9A|efe_9qFzˮH~۪叾D_YK@U]J=[z#΂w`l2r#Da88/J;,rnL: c J =&.KiK o[*&)Ē(V0!/.cR_`BG.ȞFmJ6(lO+.g/_1PddX v? :>ͻpydWMTx)A E¯,k*U#QYO:y+D|EdOwh_'rEֈy=Q֞vFD;9g._v@nkuH=7(n(A_)@[D@=<&Kn_{3Ek @ܬoޮ%&Z Yh~X􋡳gqD \n{bx#c1l~ a!6/h.HhwbI|+\_s[!/,苉bp+0Pf/.,xfO*.-OIa D{J% q)%-M%ܢ>{`I3f4@ xS9|Ƃ]~̲ 8&[p `Gv@\ T/2[]JS pV_%|sT=[+cwNIЙ췍u%`<8 Y$4I'hH)̹0T}#qƇy%%% 杗י|W X!l RSD C 0\&n5QQ7c* 8޿' CG^w`~;zW,r(:;5s#ۋ!Q]9X$c^{@;v7>5G "y ]gѻ s=_+|CwӼ+ k͜s{5]=XS@J0旖]]м.9% :JG  + gF|i\0D" vCB<Ǯ + NBga<0ͤAbpGs}N{ڣEo9`wݡ7I+-U]o! ;]*[u`Oѐs-W窼8:%Ov8<%7%חl4 XU, '%b$֛lƒIs z5rɵoqr'fj8m|Y勎8x@I\J>yߠO? ٢.1&C+f{#Sv9zNE+v6'DŽ5DFI[N7? fĿGl阣7.0/?=9db oq? @3Ʊcq$nֆ8 = Q* /"lרp|*?TDxkMhĽ6"2I$pl#rrt4;n8Ƃc+~88!F`07:= &b׬C04ظû1Qٌmxⲹc_6Dikص/7R2+]{44$UG~B=] |Ұ7|畍7ӫ|'Qf؊)~@C.Zx𻊋avGi0D8Ʃ)0/Tx9/T}b' " \UMc$m!^݄ٵ,QdNȅxiuţP.xqƞ0y[$ DXJ+brdS_=c_2Apzzo{( ~҅lx $tzl- D \e#E>kih{ZhVNb~n^t D_b"9F! 8s)-dDߊʼ>XGby!t- D5 Ce"R ? \y2ZKc3>Dtue}K"DyrA #/,7g0h#2gcF *>?Q3&_&g6A qŵƍu߁%p2W9H v0j=]ž=lV?Ko#A %hTC_(?KDMR;1n5hgu+!V+֞if-ztBU||TAѰfy,|!V_ujq(?"@@ <6ϓyEs!'ϐ>) u?CP&Zo!V-[`m>D4 I'Py`s2*5PLzg+p2lWC٥#h%"]GpܺiW "@'<[q17}[fH@QYz^=p~:7(&'2a}dɰYow*))JD"@(QJ-(؍z|koopr!0#8ꭹF)-ծ7&N ;$! ! / FBói x =ҒHt{pZ%6"z 3=>)-qWqHZ"@\@ קs3GD<݅]ӈHi8+q0Eu1ηoQ;*{E {;7-)&c $ }hCsOQ5\Xww~KO6͡k XB_Ms{]/-䑊d 8[$pg??H&>)#nG} =%J 2EƀꥤN0lͼY^,{'oM>PIAAsiu~<#TH $U 2tXIςG$dt 6sQ)*/k{U &뷬ܸ0mVdn(+"p*l'ǂ,_?bIp<<\/Bc<ߏ@ (JRJK-¡e(`W+ Iy%@!{1K k[5mRmBrD8F;iiPx:v;ء$[qs'VIj_J*%x4@2y> tܐ*[!_b&OغyD #ǽ^KO?=abO\cVʣLN{^tx_<<㑴 kbm[uX}@ M {fhli˰عp ?U;k3)Y| @gMr+ӰfbÔE@z{,,^.Pr]z1t(9:Jc$лn963KϸQ0=:R⥕S,@ެoÒ}BR^N pVg02oK]VgEE9 ɐ |CtnB)Y;'gb6zԠA<Lܽb꘿d08{To3U(J׉x&z4sÂB~-z;"fVgطȶp9m`0 +'dj2>ɸ΍s»TcPdz}.hrݱS& * lyaYW /CAZ]Xx=۸^]Z8D}l KJ?VL]WPSB 74}vdg EW!DlW'h)C*18{Sl?ko) jCœ7~(73)zZXw;M&?1aaw[ju#=W_u1Uw : \K鞽/ m$ SF?tZ|>ZBӔV>Eh]+ANDT03 o]͟ `7 ]# TUMmYt \`]Vzgp=%B3ҨnR4У e>nGA;n&!-@,nc[a]mG)OhiwVSJݮ&aA~(blMjL'|Ȕ\b>s!p}DN}% = {ENx;Dc>ґ`x /N;`EJ T6jMc{8DD;:bZia}#hD>D;HM#U8/ *P an|ǁXnm:, 0/gӳe,%BrCw~4P@|=osGFh=Q&`ǎ--#:Fg:mޟ^; \ Bnv|[MC%Ӽ GeW\ۏ~q=YFDl嗇V#Q[š- FQ>JF CԻPG?LJ5|o1jsXjutCqG}M]p~[?HxvWvQp\ToGJ2.: g2Mtƪ9IݡQ:}}fԇc=0>ٗ*ǼX(ر :%ܨ89[J4#IlP?dc6kQ1x ćOJ@AP©Fv7 9K4ʙ/[.q="Bt|! Evۊ)Cvc.K1(xiN7 D T1ng`{ P۟s/-XP( "@n^Uo[ +$((U2'D `;tnh9yQ jeA +~m-# m !) t+ēXG"@o\࣬yf& -DAVA "+%⥶ֶmھlݵwﻻmu*!Z(0@BԢA"(p s;L1@.gf~3ܟ99?$@H쳲 IO(6 )ȣ,  t"2:D3 @[+` HHCm~+'(60[bDB$@$@)O4ȶPd<r#U0A2 B$@$'Rbeq}zIܳ*TIEo>HH1;%֗ͮ jh8q-@Nn;LHHzItYYfeZ/Ll1/|%/8a]l8J| @?LHՕ݌ixbv1D$@$@$p]VyUې{V" B$@$@^'`e]Vy9Vn t B$@$@&`e]Vy9)ѷ>/ґCe&Ԁa# JZ/7)#L +_RhwĸHHH qE 3<9[};8IHH dw eA)x}+#j0g˫HH@ P;H.XoxbPGhZ_GoK vk  H8)Zp^~Jcr Mܙϭ[Z`s~).$@$@)MҢBeocVuON@vqFP6ŝHHIR_Q:8OiЙM0隯5ǹM$@$@"`e!*mVpz#CFgjq!   )2,ץVlV6wimy~]*)e 0,-/Z1`oȃ3o"(?RZe`G3$@$@ SǬ~-?JY/c $_c J?/^^VUw h*ݏ8aqH2ʄL63sQYρxvs& H{-/nǶf`Y\lpXv>;~CC$@$@Gѓ~o}hEg1h"* n6Neߣ=d"e tO o+1?9.lо!(:u%Xٽ])zv O @ h\ /Te>=գ˨S/B,\^5Y#.ď=HH"䣛G ZăxPrvjH䯐Ydta] 8H͋J(%+XbP9:_"p FjO=  yX|HhkΉMu pX_nPŗgO+Xy".g࢜n/A \v& y렼L@`w<˫G;6E`:Q  %ЌTTzaAO@fȧ]mB:uQ8 wH2@[߸T֋Oq*g{,\Rϫٱ\ @Z0e]Q .~($# nxa!M,_L賘xH !_oHAx(K )xTj0. B$WҩZ/ʕ+?D(Y>}1.݈#^} 8L+a3z^ ~HܶreѦ[åƏ.;1& `?*-v_2lpG?/He? )F/jC}'"|X_B8/W"#`퀯Q/cD=7ċ+*6fF*>WdOk+}+NwKz! .ϕ‡d坘#vLď" f:Tr{Ui=&}d(26 a~hƧQT;#yu{Ɏ@X_n̻ohg|du0EHҋD b Mu+/{܅3sf~s mIX؈(j1⩬-ؼT?ȏiyܜ쫌ַ\ d@߆\Z-o-'QfG. Yx?ZmAltTy5y u[t @S`DZIŕ+Z]6ޡ@}5HοfrJV0n`&>ht=Ƽғ@тX~)i5 lDqo16KrSQ 1Uy;y4ḒzzC + |I*y5W@țHE Zh-*}Q!|bٛ!oXftبGkqA% -[*+Xx$z'bsJeppm&kip|~IJO xBU1UG^_VpVV:,[s-le퍈'E%2xrO05m2wioX)r97CI-P|i$Lvl~Tmh\ j):d;/z2@Jfq1FB꿆T%c @4q%a㊞Ynvw&_.5P4+݊*B)Cl7w>BTx jrU$bޮ{D9IH4 ٕ6?Ŀi0̋I o4 Jh0Y@@VU%Wlm6Ӑ`8Xe((H20G@PـM*#0HnͽF\ZU#%ӳrֳkZI˫~Ժd _@ob_EaU[Z(嫆Ƞ ҉Mj3cxC$O2 h'}QH-xb ,g孽],߃캸$+18CK K'OU_(;2P+,YKӍ) 5kDh $@fr#~>tn񂓉y=ҕϬrTGּ罸* e7o"hƲ-_<;nK 0'k_0Ĉ9UİNDr!ZM5 |{)"TCGKq_w쾖?R6I9YRIc^ t?Y .!b;':tT<^՚ؕšǧvrZoFF%'|+ *s #sE߁_zoՃOʦTZr]~@kI߆Ot֒j @Xpq@1eVL0''wwU:4NB[_n七OlSLX7~v1HÿqÑ;({n톇\6 kU}׷ RM9aK0APP_kLg_:wDKX"j'#-iAo6R}y=dU\"t<&G. ނ5*T,izH84MG O~$gW>< dp]-zv|w5&v90| Vz6\MiߊF!&x{ަ6BQ'[}; W=|\Қ@QEW]aLWQFî/iK۲VOTp=nXfW .DDJ#srզZ0[Vl~nt>W.I$~oGm9rn!q2QH$f W+Pr8T4+=*9D/1Jub/R/J(~W-H|w(K j]}tZD? <(<_!\JaFf~7h-+K*>&ۛcpynoJe} t,%RT0H< hvb$X* 1\e Ι*; MctH(p4иw]dȰ |\nŷ<2:#˸TqQyAP+tyr3rBb\_(1Vmtۓv3%74ǯsY=Z߄vԁAxb$je.$k[^:((ۄA]WTZrƻ BC']|lN32V)dZֻ_^Qqg vԹKiW,GK58*ȱ:ח6Ŏcmr*t9x.^B*jఎ79c JO}5SKsPZ[Bo>xAt =?b&[(;lK+ķB? ǫhwkmkj]5 ċߴ>g8q-8BcGKdd@\jGAq'1R9 X1%8nP#>*:d~'b{YK+5NB#$@I::="8l.$ $AfeDo ȁˍ_}9aκB$@DZ3nB-aDa}, $t{m";ygƲ >aTڲ29HK2GZV/s 즦L<,'6%hGƿFJy5l*Š'#To*+w2n @(|  - E(F ObRH">|(w@ kza Kx)5Â0||ZϨ\oi𥬬Ao x0$`772JF?2*1X\ J0_]'_~Qf{2N&*ɤwG?@y>`3pp<3r=,.x`3H D3r ;Kb9 eDs,XO,$e(=<Ԉ@3~ZJ񲒁MG-N3$@&Pd?gx8mZ L1 '!mB?ʰcxe8 9cYR_eXz!P.笇qKJƉ#/\NTFH T<|!bj]h .jjHlEPhypfs+ Z ?{aW^wp3or!HkqJ\s~`$⾟oIDAT>d%T>vOҊD6"dCͼ\kRfw~k_OJrb$CB%PnZ|0QWekJѮ,0FAa% PDE~TϹe̾=&aF 9D`oՃ-{&HF<^b&G\yK˪n20|sٶf H0D v)GhP2@ ڟF 3.CpcZr1y ğJȈQcG煤(>6I&r>}dIt mBσ+D `zB)ց-EVI-ynB3lX$I/sg'Fܪ)梜BɄ>PMr\409`Omk.Eb2 ɘNt)t{־Eivwy`)3z͈2q5~cz]Lkf#VF&2 .%/t@<! qQB1&zCH6rhhᦦFz%h|~Z(/WWf !}Ř`Z a/wFꅬDNP+|4ΈGP@ρ#(|od w:Iϭ,1&o]:-:/)-}_<g$}!M3hC3{I(#Y%y#TRT'B)D(y)2G8tgA؋A={*"ht~f_v4; q~DL#6e+(pQؚa(tD1FيV >fG냾dF 0*@h~hlJ=% ,48WB[iRkIq|yeScc @}߷$rވwwh| `<}G-?9*f3 GY#'!/[|p}=0 ({{]ͶR%) aaڿGl IΗu!OZ 0 tMBw1uZm{RkkGĜ9^)[)/ʖE#V! >=†(5VIy\w=m1vWYC䤕6l\2F󷵋f]2H$-ϬʼG?dD$ aotK0aJoQ‰v+q[ħn |:ޛjw ˇshn4e PL} oמ[q!6,*ݘ@&Ft76eWa.υZvEűĈR@ hRt<%#u|xX_1reڈq} @PIq%3Ium*XHfNIHAʺU/;;,/+s1YC$@$@$[}IO졵nZMLŅHHҒd\&?O(u W̘#bHHH ʼ8<`#1Wq2lIHF2:3 2 ^p @2.*>3 jȟb3>$@$@$'qL,R F/5 646/-OO)6@e7x(:h @4+ۼ)p-&0u5`  􄀕aVY֓}M])Y7..ÌhgIHHn 9w}ƽ^ '[,/lfȮ/HH2ʲ3^U`hŨ҈Q(ɜz  )]VYYӛ}!˦feG9$:k}$@$@} `mמʰ>ܟ[Dy#۫R ۪ߒc{~E,\ VYY1J>*{ʤ]X\!Fj"0$@$@)E`4j}u(/OٮUl^Jԋw @Jh۪SZHmƠ] 8o[#gp{ ĕ;kRcFtB%8687HHHcEkSϹ> U`ϱJ}' 87)?Ĥ~~1}tʎ6~1@y?$  P@O/* "fV A˄ @_l$*SRĿo"^]cN4M$@$;i5m d24 $@$@M@fXّNQKNq߅p}7n č ][iwܞo @'6!~H4t$@$@$` 2ʊL6`#jX9T}? @F8& D-ɑAXv+ Sr:I$@P*~Kh)dkKapv陿+ 8-[Qs`x;Sd; %%`3/t#(f }1  4# EcW8>_kL6E3WhUxH. ;sFHN# qi俄}˰Wlz߶o7R AJ!.$@$@iC ߑF]ސq%\#B <_)IHR@ 58S .Dnxb# |0TPr$@$@D@ kȘ!~=I"*PRYU0p@7xHr)O x@R,Yaϐ.T&v$nݫ#bpIH["0Va`*-mV*=If#)C|ZC$o'ӣ l|n@kcҘ8/>فB*>OYXY|jFhY| d s /J./[^Vf 2\iV%$ t&k~ W=1Nl*&yE^5dØ{*9ln g Ȱ<\yGA @<(OGMďI2F]W+Vwo#S% xQ3^^y/_5G $?C$Uc)G_oZ(ګMpQHpjZC=K#z"@E ב $UI''>_bӄ @bywm1g] }l@!n #;{J'/P$#?E`{YظE~"p:& <~#w)ұb{'7Q$¹>| v @zC_*4G(T()—ˌOރgbf글$@$PvPvAE ~H =cHI] "}iK|  .E$@1-|SJ߯VU1U18^ZSRjt)pݯ89v ppv1 dc#IY=+%ų(D<4]E`COuCnAp‰$@ #`-ՑrWϝ{?aIЯQ\b ߉ifX!T싱f@ro%L$!";ܦ-u Dg*)z1!.A@tMteIG4b(_9<>tt?-=Z=E %%CZ/n#$HcIoGLh|Vz3y=z>*=2Wc΁/Y7Ylksxk4ȅHzC 0Yu7n/Try*MPHi46+LQ"auw ~NOHR|ǎ$[aBzBΡ}4KtU Wz]|ʕYMMɮP0M|"a Z|SƆHߌV:BR)% Tjj?Ȃu9١ ]7\!Psʀ&2ډg+Q1t%Wde[P ŞB?3@bIG2"YdENV^"-v$%BTq}o'Z>0BRu}uG{/"*HEaeMvB#ӥg61@0lIiAV;RE}~+㨍Z:T[Vd>8'*D %P^fM>2E:΍&(@fhLYP ǃ$vV=cB 3:Co^(u[2 񊾝Hr/T{PGd",`{2.h]+q;.Tm>$+ؑJ# L[|-''@dE.l.TߐBmty;ŇCƉUָ čD::8%J[Єy G'DgL:inrzȮtʓIQF:dT(ÇE.G-(7s G0t@O AFetl[> QFkQC&ܺm@< ?*K  ~dDd](3bq@KFl!ȼ<1veZ(wOvVo} #S9TR98%8SSPc9%%Qh- 0j)C*$AGꈮV6L|Ќ!@ c:#:WlΒÌTWB= Pe`$bh @hE; Gi]Z.i9!st͗>*O#{M g wr(Ja.@)u/mh#5 gȣg'ࢀ`IUsSw5>y5eL`(JPVBW#rn>N"#hI:=c'_Ei֜O`꼪ӟ~eLLM7&8ZR odF\(JꫥÅ@1B> X;X16N<O`݀mhr H R}-p!%>p: 9| NG3o@Iy-ȌGsö.F#oƱVLMHRJ?n 6֩iAfɈi:;Z//bs!$B,# u_@ _@(y >7@qL H$'} ܛ&uxLq@p0_MfM#%"n8Fpй_+H Pȼ4gDz8lh ge9j\4Yڮ-b`@AP|lFw| 2c?7 r{77XfgӬ?G[-aLy@rzC @ohZ 'NY^-"NtPz0ꮏG+ {8t=׾?Fkp) FѾvDZw,F+^J姱'Z'vYQE%'hl#5 *ÕO%+"Cr#MǻV[bR+".oCl{/>.!&;~tGHHHHHHHHHHHHHHHHHHHHH?GaLOIENDB`flask-session-0.8.0/docs/_static/icon/icon-master.psd000066400000000000000000037350341460047617000225630ustar00rootroot000000000000008BPS8BIM$ 3000000/10000 2 3000000/10000 1 1500 1500 Pixelmator Pro 3.5.6 2024-02-13T17:51:13+10:00 2024-02-13T18:23:33+10:00 8BIM,,8BIM Transparency8BIM Transparency8BIM8BIM H HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km8BIM!aPixelmator Pro 3.5.6Pixelmator Pro 3.5.6 8BIMnorm8BIMluni </Layer group>8BIMclbl8BIMinfx8BIMknko8BIMlsctZZZZ8BIMnormPath8BIMSoCopnullClr ObjcRGBCRd doubGrn doubBl doub8BIMvmsk8BIMluni Path8BIMclbl8BIMinfx8BIMknko8BIMvstk< strokeStylestrokeStyleVersionlong strokeEnabledbool fillEnabledboolstrokeStyleLineWidthUntF#Pxl?strokeStyleLineDashOffsetUntF#PntstrokeStyleMiterLimitdoub@YstrokeStyleLineCapTypeenumstrokeStyleLineCapTypestrokeStyleButtCapstrokeStyleLineJoinTypeenumstrokeStyleLineJoinTypestrokeStyleMiterJoinstrokeStyleLineAlignmentenumstrokeStyleLineAlignmentstrokeStyleAlignCenterstrokeStyleScaleLockboolstrokeStyleStrokeAdjustboolstrokeStyleLineDashSetVlLsstrokeStyleBlendModeenumBlnMNrmlstrokeStyleOpacityUntF#Prc@YstrokeStyleContentObjcsolidColorLayerClr ObjcRGBCRd doubGrn doubBl doubstrokeStyleResolutiondoub@r{aK????8BIMnormPath8BIMSoCopnullClr ObjcRGBCRd doubGrn doubBl doub8BIMvmskP(P(P((((OffPPP8BIMluni Path8BIMclbl8BIMinfx8BIMknko8BIMvstk@ strokeStylestrokeStyleVersionlong strokeEnabledbool fillEnabledboolstrokeStyleLineWidthUntF#Pxl@UstrokeStyleLineDashOffsetUntF#PntstrokeStyleMiterLimitdoub@YstrokeStyleLineCapTypeenumstrokeStyleLineCapTypestrokeStyleRoundCapstrokeStyleLineJoinTypeenumstrokeStyleLineJoinTypestrokeStyleRoundJoinstrokeStyleLineAlignmentenumstrokeStyleLineAlignmentstrokeStyleAlignCenterstrokeStyleScaleLockboolstrokeStyleStrokeAdjustboolstrokeStyleLineDashSetVlLsstrokeStyleBlendModeenumBlnMNrmlstrokeStyleOpacityUntF#Prc@YstrokeStyleContentObjcsolidColorLayerClr ObjcRGBCRd doubGrn doubBl doubstrokeStyleResolutiondoub@rzK????8BIMnormPath8BIMSoCopnullClr ObjcRGBCRd doubGrn doubBl doub8BIMvmsk(((((ʂ(Offʂ8BIMluni Path8BIMclbl8BIMinfx8BIMknko8BIMvstk@ strokeStylestrokeStyleVersionlong strokeEnabledbool fillEnabledboolstrokeStyleLineWidthUntF#Pxl@UstrokeStyleLineDashOffsetUntF#PntstrokeStyleMiterLimitdoub@YstrokeStyleLineCapTypeenumstrokeStyleLineCapTypestrokeStyleRoundCapstrokeStyleLineJoinTypeenumstrokeStyleLineJoinTypestrokeStyleRoundJoinstrokeStyleLineAlignmentenumstrokeStyleLineAlignmentstrokeStyleAlignCenterstrokeStyleScaleLockboolstrokeStyleStrokeAdjustboolstrokeStyleLineDashSetVlLsstrokeStyleBlendModeenumBlnMNrmlstrokeStyleOpacityUntF#Prc@YstrokeStyleContentObjcsolidColorLayerClr ObjcRGBCRd doubGrn doubBl doubstrokeStyleResolutiondoub@r9\QTDDDD8BIMnormPath8BIMSoCopnullClr ObjcRGBCRd doubGrn doubBl doub8BIMvmsk j j j # # #s#s#s#sjsjsj8BIMluni Path8BIMclbl8BIMinfx8BIMknko8BIMvstk< strokeStylestrokeStyleVersionlong strokeEnabledbool fillEnabledboolstrokeStyleLineWidthUntF#Pxl?strokeStyleLineDashOffsetUntF#PntstrokeStyleMiterLimitdoub@YstrokeStyleLineCapTypeenumstrokeStyleLineCapTypestrokeStyleButtCapstrokeStyleLineJoinTypeenumstrokeStyleLineJoinTypestrokeStyleMiterJoinstrokeStyleLineAlignmentenumstrokeStyleLineAlignmentstrokeStyleAlignCenterstrokeStyleScaleLockboolstrokeStyleStrokeAdjustboolstrokeStyleLineDashSetVlLsstrokeStyleBlendModeenumBlnMNrmlstrokeStyleOpacityUntF#Prc@YstrokeStyleContentObjcsolidColorLayerClr ObjcRGBCRd doubGrn doubBl doubstrokeStyleResolutiondoub@r'%t66668BIMnormPath8BIMSoCopnullClr ObjcRGBCRd doubGrn doubBl doub8BIMvmskdDdDhFk0 k'k-hFqdDqaVq^-^'^0 aVdDdD8BIMluni Path8BIMclbl8BIMinfx8BIMknko8BIMvstk< strokeStylestrokeStyleVersionlong strokeEnabledbool fillEnabledboolstrokeStyleLineWidthUntF#Pxl?strokeStyleLineDashOffsetUntF#PntstrokeStyleMiterLimitdoub@YstrokeStyleLineCapTypeenumstrokeStyleLineCapTypestrokeStyleButtCapstrokeStyleLineJoinTypeenumstrokeStyleLineJoinTypestrokeStyleMiterJoinstrokeStyleLineAlignmentenumstrokeStyleLineAlignmentstrokeStyleAlignCenterstrokeStyleScaleLockboolstrokeStyleStrokeAdjustboolstrokeStyleLineDashSetVlLsstrokeStyleBlendModeenumBlnMNrmlstrokeStyleOpacityUntF#Prc@YstrokeStyleContentObjcsolidColorLayerClr ObjcRGBCRd doubGrn doubBl doubstrokeStyleResolutiondoub@r[d66668BIMnormPath8BIMSoCopnullClr ObjcRGBCRd doubGrn doubBl doub8BIMvmsk`g`gdNgf^cof^]~vf^W|dNSZ`SZ]%SZZUW|ZU]~vZUco]%g`g`g8BIMluni Path8BIMclbl8BIMinfx8BIMknko8BIMvstk< strokeStylestrokeStyleVersionlong strokeEnabledbool fillEnabledboolstrokeStyleLineWidthUntF#Pxl?strokeStyleLineDashOffsetUntF#PntstrokeStyleMiterLimitdoub@YstrokeStyleLineCapTypeenumstrokeStyleLineCapTypestrokeStyleButtCapstrokeStyleLineJoinTypeenumstrokeStyleLineJoinTypestrokeStyleMiterJoinstrokeStyleLineAlignmentenumstrokeStyleLineAlignmentstrokeStyleAlignCenterstrokeStyleScaleLockboolstrokeStyleStrokeAdjustboolstrokeStyleLineDashSetVlLsstrokeStyleBlendModeenumBlnMNrmlstrokeStyleOpacityUntF#Prc@YstrokeStyleContentObjcsolidColorLayerClr ObjcRGBCRd doubGrn doubBl doubstrokeStyleResolutiondoub@rb<::::8BIMnormPath8BIMSoCopnullClr ObjcRGBCRd doubGrn doubBl doub8BIMvmskCL`CL`F`I\UyIVIQ!FLCLL?eL=TQ!=TV=T\Uy?e`CL`CL`8BIMluni Path8BIMclbl8BIMinfx8BIMknko8BIMvstk< strokeStylestrokeStyleVersionlong strokeEnabledbool fillEnabledboolstrokeStyleLineWidthUntF#Pxl?strokeStyleLineDashOffsetUntF#PntstrokeStyleMiterLimitdoub@YstrokeStyleLineCapTypeenumstrokeStyleLineCapTypestrokeStyleButtCapstrokeStyleLineJoinTypeenumstrokeStyleLineJoinTypestrokeStyleMiterJoinstrokeStyleLineAlignmentenumstrokeStyleLineAlignmentstrokeStyleAlignCenterstrokeStyleScaleLockboolstrokeStyleStrokeAdjustboolstrokeStyleLineDashSetVlLsstrokeStyleBlendModeenumBlnMNrmlstrokeStyleOpacityUntF#Prc@YstrokeStyleContentObjcsolidColorLayerClr ObjcRGBCRd doubGrn doubBl doubstrokeStyleResolutiondoub@r*66668BIMnormPath8BIMSoCopnullClr ObjcRGBCRd doubGrn doubBl doub8BIMvmskK qK qO%IqQX>QXMDQXyKO%Iu(K u(H4u(EdyKEdMDEd>H4qK qK q8BIMluni Path8BIMclbl8BIMinfx8BIMknko8BIMvstk< strokeStylestrokeStyleVersionlong strokeEnabledbool fillEnabledboolstrokeStyleLineWidthUntF#Pxl?strokeStyleLineDashOffsetUntF#PntstrokeStyleMiterLimitdoub@YstrokeStyleLineCapTypeenumstrokeStyleLineCapTypestrokeStyleButtCapstrokeStyleLineJoinTypeenumstrokeStyleLineJoinTypestrokeStyleMiterJoinstrokeStyleLineAlignmentenumstrokeStyleLineAlignmentstrokeStyleAlignCenterstrokeStyleScaleLockboolstrokeStyleStrokeAdjustboolstrokeStyleLineDashSetVlLsstrokeStyleBlendModeenumBlnMNrmlstrokeStyleOpacityUntF#Prc@YstrokeStyleContentObjcsolidColorLayerClr ObjcRGBCRd doubGrn doubBl doubstrokeStyleResolutiondoub@r22228BIMnorm Path8BIMSoCopnullClr ObjcRGBCRd doubGrn doubBl doub8BIMvmskP7L֗ P7L֗ P7LE8`8`-  <}HDh 4pFUFi7h `ґ'X֗ P7L֗ P7L֗ 8BIMluni Path8BIMclbl8BIMinfx8BIMknko8BIMvstk@ strokeStylestrokeStyleVersionlong strokeEnabledbool fillEnabledboolstrokeStyleLineWidthUntF#Pxl@UstrokeStyleLineDashOffsetUntF#PntstrokeStyleMiterLimitdoub@YstrokeStyleLineCapTypeenumstrokeStyleLineCapTypestrokeStyleRoundCapstrokeStyleLineJoinTypeenumstrokeStyleLineJoinTypestrokeStyleRoundJoinstrokeStyleLineAlignmentenumstrokeStyleLineAlignmentstrokeStyleAlignCenterstrokeStyleScaleLockboolstrokeStyleStrokeAdjustboolstrokeStyleLineDashSetVlLsstrokeStyleBlendModeenumBlnMNrmlstrokeStyleOpacityUntF#Prc@YstrokeStyleContentObjcsolidColorLayerClr ObjcRGBCRd doubGrn doubBl doubstrokeStyleResolutiondoub@r8BIMpassxfavicon8BIMlunifavicon8BIMclbl8BIMinfx8BIMknko8BIMlsct 8BIMpassI @8BIMnorm\shape8BIMlunishape8BIMclbl8BIMinfx8BIMknkoZZZZ8BIMnormP Image Layer8BIMluni Image Layer8BIMclbl8BIMinfx8BIMknkoV<4/...,)('&&&%%&''&%&&&&$$%#"$"#""""!#"#$#$##$$$##############! !!! !! ! !! !""#"#"$"#"#"#""#"""#"###""####""""####!! !#"9965211101/./././/.....--/----.--*-..,/,-.,--,-,---...-//...,/.0//111269N1/--,,-,++*,+*+++++***++,+*'&&'%&()(('*(('(&)('()(''()')('&''(''()(((()'(***)+**+**)*+)++*++++,++-++)I>986565655878676799<;2234324210301203020202030100101/02132221322112/@LAC@==><<;=>=<:<<?<A@>ABF^]Z@@?BCGO011/02002/0/0110/0//0/00/0/0302110/-.-,,.,*+++,++,**+*+----.././1125;=$%$$$$%'&&'&'&&&&'(((('('('(()((*))******./,&&(&&&&(&(&'&'&''''''''&$G:43110/0/..........1////-.//-..,+,OA<:988864443244242342222223335313535253353353344432233333345458678:?H*-,-0./-.000000//.0.0022020242468<C((&&&(((((&&&&&()*+-----/.0344444446444444464652446666888886888:68:966688:6666:8:8:88868888<88<9::<@@@BD@DFJNWr+***,-..,,,,,,,,+**+**,,,,,,*,,,,,,,,,,,,,,,,,*,**,**,**,,.,,.00................0.0000,-.....0.00544234447888::8:88<<>BBFIP\j&'&(&'&&'&(&(&(&(&(&(&&(&(&('&(&&%$&$$&$$&%$&&$&&$$&&&$%&&%$&&&&$$$&&&&&&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&%&$$$$$$$$$$$$%$$%$$%$$%$$%$%$$$$&()()(((()(*(()&'(&'(&&((&'((('&&((((((((((((((((&&&&*,0244446454444544654646887876787788888989977767798:7:8:99968798:88:9;;8;>==@@@AEDFMRka(((*..-,,---.....,,,,,,,,,,,+,,,,,,.,,,,,,-,.*++*,+*++*+,,,000///00..-...../...//.//2002001000028:88678889779:7669<::BDDHMRtS***,*,*.*,*,*****,,,*,*,*,**,*,*(*((,((,((*(***(*,*****(**,**(*****,(**,********,*,*,**,*,*,**,*,,*,**,**,(**(**(**((**(**(****(***((**,(,*,**(,*,***(&*((*((((((****((*****************(((((((((+,,,,.,.,,,.,,.,,,0.000020020000002200.0...00...0000200020200422420444888:8<<>JP} """%$$$$$$$$&&$$$$$$$$$$$$$$$$$$$&$&$$$$$$"""$""$""$$""$$$(((((((&&&&&&&&&(&((&&&(($$&&&&&&&&****((******,,,*,,00.2688>BPo: &/9CJOSX]bfkpuy~žjJ+!/>KU^hq{ըs9.GU3Rց H?}6x-o?!e Iځ)q=Q0xсX7O Rh/}E[>#qc6Ձ:=@ɁDԁG߁JK=-xӁh( X@HW9t|ہXҁ5rӁ1Nq+hɁCGv݁>nցO5 é-u\Ł%dH iׁU<d^́ 1 S qS$3UEW΁ j݁~|F%')r+U-</'1363 (   se(Wځ9IρL:b% o$PځF2xlcYPF=3*  ʁs´{m^PB3%k ͺmZG4 %a ԼzgS@-]A΁ ŭ}eM5= $ ѷnV>&ҁ1 ׺cF) foTiL. (׵pQ4M Ƥ`=W׵qN, O*֮`=# rK$RYӬ^60+龗pI!f ǛnB?4QҥyM ǁܰW+Mcgb5 ʁ1(깇U$F}Nx 9ԁ۪xF=_ ֢p?GM|E$1ǏX!dڣl5!Hjiٜ_%ՁˏRH_D t7)%Vߣf);^ TLg%Tm q.Cz71 ŃAf_5فّJ %xj!RҊBeMbL˃;0)с[drf؊<Vt%:=^Q݇2H݈3Áπ2 ց݈3Ok)݉3bXދ>_Y>[Ɓu(sX ܐDU De!,فR {ޚV\W όH f݁}:Ɂw+|A F,LʏT}<vݢg+ L{G ҁ] zF>߀  ʁyFeB݁߬{O#f&̠uI):ƛoD'فLSɤ\8Fpǫ`<o5ЯuY<m ɭsV:> Ѽ|fQ;&*߁vѻugXJ<. CF#ʼzsld]VOHA:30/-,+*)(&[ӵrHxOy="f n d ǁM6"ځ, P4y TJXDd7$zu}/cdt QNā>;4́-*UՁԁx ܁~ā't .r 7o ^@m6JjƁcShBWemVcARl ЁNz  JJvF?B#E>.x;:8߁s7H4af0 +Ӂ* "2T ہPr ́pm"C%kF! }yiZf QDg?wE.\!Cȁفu6ˁ āi=Qn}9΁T<lʁ4*:ˁ ́k`0 zGT^\$q9V8Á{Oׁ ҁ_h |wiA"sÁ)ӁSG&& Ӂr uV1`Ӂh H5W/ , rspLÝ/!; ԁ{SbMG1!Yrz,сdC eʁ?$-ȁJ0xgŁ9M$# ݁,@ \8Ej miZDi 7%iӁh4| e' Pv55hYeAI,.ycS0I]qȼq]I/ J1%MqںqL$Y8mʝm7#g4T̒S2uʁ K֒J >}``kj0kF utY/t cb F"g643m[\̣[@s CPyxAt ӁIAu jL ~} >m PkiGs TAԏ?!My )Y'Rz]`^ 1UyCa -Qu)́fLJ&Fb9Wk+HeMׁq -Haxc^-+ #9Ndy܁EC&eXUƁ*_]fNla^} QO s&@=H0 5"!߁m{F Ձ v`>_\ 3w dROEb6ہ́fՁXliTJځh`]d%2 с΁ 1.tNI "-*Kutqw*8 Zl߁܁l Ɓ ׁi2 *'KP,IF: oYV,9dda:ȁkh;,Rb_t<XU܁= EBQMY8&#f#~#؁Ձ|%,ׁ<kh8^N# %=فցׁR7d%#FPց~!PM6b dفElYWՁ)́ ! 0lbE?< *Fb űmQ4qgLxЬ]0g$#Yբm7h`GE0oņH =h_z3rv*b(yʸGޑE^ށ"|ֲCفa=+) fƬ(,|0974\\\J5FDTŢ~ՑNCAjߞ!ʁǃ@܁/=; q%u2!,+e;D g)́Lؒ a͒V %Wi.#ki"T!70փ.6ӈqT |$  ցS ?ۉ=!ƂX쾒f; 9 J1丌a5 MŁ%$~H޳\3RIГG-cǣ~Z6ׁ\ݗZÁDʦ^:j_ٛ^ӁQ۾hK/V WɟU؁X ټfJ2:8فS Dzr\G1?`|{`?Ёyݩx΁Eõ|n`QC5' .iʜi. A@0üj!=KSQ|%sIHh b )po(. ߁ 2pߩo1 ցC 'K{ը{J  !KU*OsԸsN*2 Á  ';OcvucO;& ȁ- VU 8ہ@V#Y Y΁/|$9;cH MgX:;F)?ԁeҁ3I h <lكbVMx/)'3 N tcac9#ƒʁdi-uĺ5߁L?J.k xgӁD,ԁ7  g]U0̄1s ǁہYDyS*~V?Afh[@T V=DžaRˁ'$yPLaL{Cہc ρ@}Lg!55L݁ABAaM#aGO܁@ Ӂ+o"ƄˁȁO@ˁ؄Á)Xށ߄a q&̄`#/͊i0oFЁ@Yځ/a`ہ@˜r_ځ?n ^ځ4_\ف@[؁RxZׁɁrͰ9YҁЁ'yʶFMہī:5@ؙZ =tRxCpخT'`Ӂ5 8]{ پiF"GK#4@LXbgkorplhd\PD8*/b{yM!ZÁ́, fρ6@ [fwց5Qفḿ*ށ35߁i5ށ4ށց4ށ3݁B/~xcH-y#]i?Sځa<,o:~ȁ@|.iTV C-dI3f3g4gL)U/[ 5`O5Z~3W{ /Swl 6SpӁ8Ur:"nQՁ<+r݁L p6_0Q,`'r#1J#8MavmYD-Ձ8]غqL&fCT͠q<  8wљ[x-tޜTJw&QՂ)7G>rЁt٩Gr{2pMTЛ!M[Mӗ :ē`-`r.Ɓ-ʉv{1,eƒsρL08j S ځ,ˁr !ށE&_%)g ցu0NہY,%U l4OށmdBr"% 9UkĸmW;? $%QvžyT)!,4iϡm7 ӁKˎPW=ъB1sX^[Eҁ ]c7&HOo}! ́)8@v`PǞY\"WҚ`mEOMӖVU2n7ÒAA!/kw  'È0؁#o| ȁ>Jp~߁mM΁x]ԁ {q%ׁuk݁ḱoe! i^?́cc߁nl~_o~2Af| ځo&y:J Ӂdv [   Fk} ݁āKPbρ)%(߁>D"=X ΁h`rVuف|s ܁%7 ցZlǁ%d#ہ9G7Qs'ӁOuA Ёseځm'Ɂ9#uׁ7ad$́ށ_Rʁ.x +?Ǘx*ہOFÛHZM|?&z&bځ / f̩9.فd0dGYb Ct  )<׻i(ԁ[fЎF.?Z*iËḾ$Fy쿒c.DV#΁S*Osʬc>R*?Th{ÿs_K66H##ȁb a^pFD߁-2?,ҁqUfpySQ  CBށ IkzGMZO)ׁ2M UdqT&Ȇ/[q}Z")wKېVv=oy <Ӂ dc. s{-Ł Tä\ R)0Q!RY  |ag{U U[T߁20x|615sw:wIwԧzMvQ"Gk˯nI%P܁/+?Sco{|pdUA-.srUTځBAʁ11#" po]\߁LKсJIʁJIɁJIɁJIɁIIȁIHȁIHȁ*IHȁ%UÚfeہwv $#21푁BBTSʁjsr߁mP%%R8DC:$ہd dӁ%ȁ 65 WVƁt||vWCCY>srځ?)::*́j iҁ 21 a  `Ɂi0/k?nm΁A ЁJJ! '' ~edŁPAAQ,݁ ށ-cbSSbDDd:55;ˁہ'&ځrq́eccg0ہdc1hhnmlp6qq7u"!uɁwz&&ýx=ֈ::ց>Q  QhgD11~́EHH~__9݁̄=<: ee S֎FFՁUo'&nrߗO  O߁s.Ӂ~;;}/u32tFl**lGd"!cc[[߁e$ǁזYXׁ%yߣf)*f߁{+Ɂt77s,vD  Dw&āˏRR'oڢk33jځq"čVU#ixA  Axjқc,,cbS  SdW%%W\\**\]œa/.aK߁ʘg9  9gL ߲W**W )ϢuHGu*^e8  8e_޲a99a7ρoGFo8pΥ}T,,T}q۳d@@dH܁ղkG##GjIܸqN**Mq '㿛yZ;;Zy'Q݁޿bC$$CbRxǨjK,  ,Kjy ӸiO5 4Oi2 ˱|bG- -Ga|3V ëiS=' '=SiW| кxbL7! !6Lbx}  ͻvdSA0 0ASdv5ƁǶp`SF9,,9FS`p6Zöuh[NC:2)  )1:CN[hu[ "~yuqmhd`[WSNJFA=940,"049=AFJNSW[`dhmquy~ -.>Ɓ?PցQcduv&'56FʁGḾNḾNḾNŃOŃOŃON΁OO΁PO΁PLƁM?@//!! tt c؁dRʁSAB11 eԁf EE%&s߁tRS23]ǁ^/0 hЁi 99q؁rBBz{JKHHḱl-.PQtԁt66YYzׁ{22AAPP __nȁn#}ׁ}#12;<7ށߌ83ځۇ3/ց׃/*~ҁ+ &z΁z& "vv""jk . ST +:<؁؊=5F%ss%DU\]YlEFn.{|/WW.vv.ˁ M݁ݕN ą%lm%DԁԌDcd!@3uu3Ad;}~;a DȆD LяLρUفٗU҄]܁ܝ]UΒU+M GH X|:vw:,ii-܁[Ԙ\ރ E||E ;"ZɑZ#7n7o݁ަo7nLL*aΘa* 4f˙f4.\/bƔb/o+]]+Ӂ&XX&!QۮR!0V 5b꽐c5 pEr͟rE'TܯT'- 6bݵb6 1u.VϧV.q Hq™qI  ;cܴc;T)MqܸqM)a#GjղjG#@dϫd@O9[z׸z[9d4SrϰrS4 ,KjǨjK, K #?Zu ĩuZ?#f -Hb| ̱|bH- 5Oj ʴjO5c !7Mcy ѻycM7" iÁ (>Tj ̻jT>($$5FXi{{iXG5$):IVcp}̾}pcVI:) '4AN[htļth[NA4' E  $,5>FKPTY]afjnsw{ {wsnjfa]YTPKF>5-$ [ǁ3ax΁:P*) $',&0;5Ɓ^a 0ŁB_%/ā[^JONa St,ρ}:: ܁bi18LV$* فny<E  ́}f`KF50"Ձ wmZVGQFMEJDFCCC@B=A:@7@4?1>.=0=?=NN`dt~́,ځ>+R9jPy Ɓ.>Njvā7-aMt0 ˁXM*C`~5;usG2݁h#ZE  13ׁo{#ƁDeGO L<ށP2Ё TFށY\ ]r0́s @C܁sY@*sd@:́sw@Lہ'sX`A6Ɂ, wodXQׁA?ȁ,. o }fkg[܁j^ځlb܁nf߁p js  nu  rw  vy z|~~43MKg dց})%zA;`ZTȁpJt m݁]6L%ށ47<΁Y ć- "'OR ~~sEAcVtmׁ?8;0"ρj]Ɓ 1"x`  [eH)9@%Ձjxف# OW45PwtՁg+ہ\ RBB0%'oЁ Yj [{1OSA4K܇2Cb݉4;K5ߊ537,ہv8$|ԁU6݁: t́%<0Ё a=A_'ρ? R,M c Li$tjх95ԁ4|VF :r'WZۏC3{f`\p+Ӂ|1<*M eQ{8FՁ;n+&n sa O߁O*ɁۘT=~u΋G <|e'Ł~:;{#qq-:z{$d!9y2ln38x!G7w=hі[ G o4*c0dHGsҗ\!*c _p5F\Ǔ`-)b[ǔa.OFǔa.$U Pȕa.*\2 ȕb/1cu,ȕb/ 7i"[ɗj>>p_缑e: 1\,㸌a6 /ZE[߳]1 .Y{ۯX-,W,֫T)+U=[ܸpL((Lph༙uQ- *Nr,zV2 ,Pu,[Ƣ~[7 .SwT˧aD' /Mk ,ѵ|_C& %B`~[д{^B% 8Us@ ϳz]@$ 2Khk βkU@+ 3Jax* kV@+ 3Kby/>ȁ kV@+ +/!%0;GR^iu  yrkd]VOHA:3,% #)/4:@FKQW]cny3!*0>ȁAUہTlf y *3*391>/:-6+3*/(,&)$%#"!  jځj PÁQ68 "vz]ρaCH*/ iځq PÁX67vSJ$]Ł[-. gρk8?q؁|AP{$KY}O>ó` +"FC ad|ځ&9GTió*,<GD aLjSi[ hcfkesc{#b~*`p ^_]N ۅX܍=ԅ(Bف|,(ʅ4$qk4?TZ?K8ρIL_gЅ8_wJ`w.z8]Wv@؁v.vkց!hݕN օj_4wm%_P AԌD P?-Nԁd->-Q[u4Q-t$hv6t1uw7>x8Ѕ߁ Ky9߅Qz:3 ?z{;3b+f܁{<bqR؟f.qY>yJ„YA*eہ٠g.A(!QK!( Q=x٠g.Q $ZK̄ā'ZӞh/Ą&Y͜j8 ;&YǕc1;`w%Y\+w`=%X뺈V$=%X峁O/"QܬzI/҃v,Xⷍb7 w0\乎c8   5`滐e: eN9d缑f<Ne;=i龓h=;݁@g԰f>݂'AeҮeA'z<`Ьc?z΁8[Ωa=΂U"3Wz˧_:"U&u .RsħlN0u&Ɂ#@\yϱvY;ɂǁ$A]zڼcF( q %B^{ǩnP3qgρ &C_| ϸr[D-ρg8. 4I_t ηrZC,.8 4I_t ͶqYB+ Ё 4I^tijn]L:)O &4BP^m{Ƕq`N=, O`$2@O]ky˿zodXMA6*`$#  '.5>R**ŔH  ЁG==43''uu܁QQ00ww܁  ḰK##܁33rFFrЁ\\7uu7XXЁ#''߁#u77uʁNN*||*w  wȁ""Ӂ(EE(srrsŁ  %́%p==pii  ]Ɓ]66݁``77y&&΁y^^  O44܁Ottҁ'FF'XX""ɁYY  :00؁:lnnk Ёdd ""KiiJ""mm݁%%/rr/T((ƁT~vv~++ʁzzԁ..́  /NN߁/D##D]  ]zNNށz## ɁMMށ ܁""$$7MMށ7N""NiiXX߁AAˁ,,  ́́oo΁XX݁ρAAˁρ,,ЁссooҁZZ݁ҁ[[؁Ӂ]]فԁ__ہԁaa܁ՁddށՁffցhhׁjjׁmmρo  oǁq  q vv 55nNNnVh  hځVAA.**.؁BBǁ[[΁ uu 77he  e΁hQ,,Q<[[Á<+$$+ӁQQGGevv݁e:==:Ɂllԁ==o݀##ށoAeeÁA ЁJJ  // xrsсxIXXI%ց==% ݀##݁ eeÁQQQQ+܁R  R+S  SU  UFV  VFX  XwZ  Zw7ށ[[6]]b^^b(Ёu))u'ݑEE݁MbbM~33~}O  O};l  l;Ԉ=<ԁgYYg+ԁw44w+ i&&i M\\M֓OOցXɆBBXy55ySl((lS__OؕYY؁Ol11lKEEKϔYYFm22mF FF C߁ЕZZB o;  ;o ?܁բn;  ;n? բo<  ȁ ʵu_J5 5J_u>Uہ ʵu`J5" "5J`uUl̾xj[M?1##1?M[jxl yk]OA5.&  &.5AO]ky [ü}voh`YRKD=87544210/.,+*)('&$$&'()*+,-/01234568=DKRY`hov}**>ȁ>UہUll  **99??==;;9977543211//--++))''"" hفh OO55uu\΁\BB)) hفh OO33v܁vGGQQ##[Á[++ ée 55oցo??wځw== YY tҁt00KKfŁf$ށށ$>> YY tҁt11GGKKJJHHFFEEDDBB@@??==4́4eeH߁ߔH,wx,[[>ց֊>"nn" QQ 4̀5dd9||9 F̉F SفٖS``*mm*7zz7DʇDQׁהQ]܁ܝ]TʏT @{{@ ,g݁ݢg,SɎS ?zz? +f܁ܡf+RȍR >yy> LLLLK~~KK~~KJ~~JJ}}JJ}ݭ}J 6a㸌a6 :e缑e:>jj>BnřnBGrɝrG KvˢvK =aͩa=9\Ȥ\94X{ß{X4 /Sw⾚wS/ *NrݹrN* =Yv ˯vY= !>Zw ̰wZ>!"?[xαx[?"#@\yϲy\@# $=Uk kU=$ *@Uj jU@* *?Uj տjU?**?TfxxfT?*#1?M[iw̾wi[M?1#!/=KYgvvgYK=/!U#+29@GNU\cjqxxqjc\UNG@92+#999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999  ! !  "   """ !    ! !  "   """ !    ! !  "   """ !    ! !  "   """ !  99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999詁שɩ敏驁⩁ܩ֩ϩʩĩ멁詁㩁ީ۩֩ҩϩ˩Ʃ©敏쩁詁婁ᩁީ۩שԩѩͩʩǩĩ驁橁㩁ੁܩک֩өЩ̩ɩƩ©驁橁㩁ީ۩שԩϩ̩ȩĩ詁⩁ݩթͩ©©©©©©©©©©©©ĩȩ̩ϩҩԩթة٩ک۩ܩީߩߩੁੁᩁᩁ⩁⩁㩁㩁㩁㩁㩁⩁⩁冀⩁멽⩁⩁ᩁܩᩁҩੁƩੁũߩƩߩƩީũީƩݩƩܩƩ۩ƩکƩ٩Ʃ٩ũةƩשƩթũԩũөũҩũЩĩϩĩΩĩͩĩ˩éʩ©ɩ©ǩ©ũ©ĩ©쩁穁㩁ީکөΩȩ敏쩁ꩁ穁䩁ᩁߩܩ٩թҩϩ̩ȩĩ쩗驚멙멙練練ũɩ̩ϩҩթة۩ܩߩ⩉㩆橃詁ꩁ쩁敏©ĩũǩȩʩ˩ͩͩ֩ܩ⩁穁멁éƩȩ˩̩ΩЩѩөԩթשة٩٩ک۩ܩܩݩީݩީީީީߩީߩީީݩݩݩܩ۩کک٩©ةé֩ũթƩԩǩҩȩѩɩϩ˩Ω̩̩ͩʩΩȩЩũЩéѩҩԩԩթ֩שة٩کک۩ܩݩݩݩߩߩੁੁᩁᩁ⩁⩁⩁⩁㩁⩁㩁⩁㩁⩁⩁⩁ᩁᩁੁߩީݩکة֩ҩʩ©ƩʩΩҩ֩کީ⩁橁ꩁ况Ʃʩ멱Ωꩱԩ驱ة話ީ穱敏⩁橱詁婱쩁㩱멁⩱ꩁᩱ驁ੱ穁ީ橁ݩ婁ܩ䩁۩⩁٩ᩁةੁשߩ֩ݩԩܩө۩ҩ٩©ЩةȩϩשΩΩթԩ̩ԩܩ˩ө⩁ʩҩ詁ɩЩǩϩƩͩĩ̩é˩©ɩȩƩũĩ©ȩЩة⩁ꩁ̩ة⩁ҩ⩁Щ⩁멱驱穱婱쩁㩱ꩁᩱ詁ߩ橁ݩ䩁۩⩁٩ߩ֩ݩԩ۩ҩ٩ЩשΩթ̩өʩѩȩΩũ̩éʩȩũé멱話婱멁⩱詁ߩ婁ܩ⩁٩ީթܩө٩Щ֩ͩҩɩϩƩ˩©ȩĩ舘멬敏橬ꩁᩬ婁ܩੁש۩ҩթ̩ϩƩʩĩ逸婦⩁٩թ̩ǩߩߩᩣᩣ㩢㩢䩡婡婡穠穠驟驟멞멞臭臭éũǩɩ˩ͩΩЩҩөթש٩۩ݩੁ㩁婁穁驁멁敏éũɩ˩ϩѩԩשکݩᩁ㩁穁驁敏éǩ˩ϩөש۩ߩ㩁穁멁敏ũɩϩө٩ݩ敏㩁况驁멁멱ꩁꩱ驁驱詁話橁穱婁婱䩁䩱㩁㩱ᩁᩱੁੱߩߩީݩܩܩ۩۩٩ĩ٩ةʩةשѩשթשթԩݩԩө婁өѩ멁ѩЩЩΩϩ̩̩ͩͩʩʩɩɩȩǩƩƩũĩéé©©é˩ԩݩ婁敏ũѩݩ驁ɩ۩쩁ߩ敏况멁멱驁驱穁穱婁婱㩁㩱ᩁᩱߩߩݩݩ۩۩٩٩֩֩ԩԩҩҩЩЩͩͩ˩˩ɩɩǩǩũũ©©멁며詁詰婁婰⩁ᩰީީ۩۩ةةԩթѩѩͩΩʩʩǩƩéé敏𤋮ꩁꩬ橁婫ᩁ੫۩۩թթЩЩʩʩĩĩ橁穦۩ܩΩͩᩣᩣᩣ㩢㩢婡婡穠穠驟驟驟멞멞臭éũǩɩ˩ͩϩѩөթש٩۩ݩߩᩁ㩁婁穁驁멁敏éũǩ˩ͩѩթש۩ݩᩁ㩁穁驁敏éǩ˩ϩөש۩ߩ㩁穁멁敏ũɩϩөשݩ㩁穁éɩϩթݩ㩁멁ɩө۩㩁éϩ۩穁ũթ穁թ辁׾ɾチ龁⾁ܾ־Ͼʾľ뾁辁㾁޾۾־ҾϾ˾ƾ¾チ쾁辁征ᾁ޾۾׾ԾѾ;ʾǾľ龁澁㾁ཱྀܾھ־Ӿо̾ɾƾ¾龁澁㾁޾۾׾ԾϾ̾Ⱦľ辁⾁ݾվ;¾¾¾¾¾¾¾¾¾¾¾¾ľȾ̾ϾҾԾվؾپھ۾ܾ޾߾߾ཱཱྀྀᾁᾁ⾁⾁㾁㾁㾁㾁㾁⾁⾁ᄉ⾁뾽⾁⾁ᾁܾᾁҾཱྀƾཱྀž߾ƾ߾ƾ޾ž޾ƾݾƾܾƾ۾ƾھƾپƾپžؾƾ׾ƾվžԾžӾžҾžоľϾľξľ;ľ˾þʾ¾ɾ¾Ǿ¾ž¾ľ¾쾁羁㾁޾ھӾξȾチ쾁꾁羁侁ᾁ߾ܾپվҾϾ̾Ⱦľ쾗龚뾙뾙ララžɾ̾ϾҾվؾ۾ܾ߾⾉㾆澃辁꾁쾁チ¾ľžǾȾʾ˾;;־ܾ⾁羁뾁þƾȾ˾̾ξоѾӾԾվ׾ؾپپھ۾ܾܾݾ޾ݾ޾޾޾޾߾޾߾޾޾ݾݾݾܾ۾ھھپ¾ؾþ־žվƾԾǾҾȾѾɾϾ˾ξ̾̾;ʾξȾоžоþѾҾԾԾվ־׾ؾپھھ۾ܾݾݾݾ߾߾ཱཱྀྀᾁᾁ⾁⾁⾁⾁㾁⾁㾁⾁㾁⾁⾁⾁ᾁᾁཱྀ߾޾ݾھؾ־Ҿʾ¾ƾʾξҾ־ھ޾⾁澁꾁ᄆƾʾ뾱ξ꾱Ծ龱ؾ辱޾羱チ⾁澱辁徱쾁㾱뾁⾱꾁ᾱ龁ྱ羁޾澁ݾ征ܾ侁۾⾁پᾁؾཱྀ׾߾־ݾԾܾӾ۾Ҿپ¾оؾȾϾ׾ξξվԾ̾Ծܾ˾Ӿ⾁ʾҾ辁ɾоǾϾƾ;ľ̾þ˾¾ɾȾƾžľ¾Ⱦоؾ⾁꾁̾ؾ⾁Ҿ⾁о⾁뾱龱羱徱쾁㾱꾁ᾱ辁߾澁ݾ侁۾⾁پ߾־ݾԾ۾Ҿپо׾ξվ̾ӾʾѾȾξž̾þʾȾžþ뾱辱徱뾁⾱辁߾征ܾ⾁پ޾վܾӾپо־;ҾɾϾƾ˾¾Ⱦľᆳ뾬チ澬꾁ᾬ征ཱྀܾ׾۾Ҿվ̾Ͼƾʾľᄃ徦⾁پվ̾Ǿ߾߾ᾣᾣ㾢㾢価御御羠羠龟龟뾞뾞ワワþžǾɾ˾;ξоҾӾվ׾پ۾ݾཱྀ㾁征羁龁뾁チþžɾ˾ϾѾԾ׾ھݾᾁ㾁羁龁チþǾ˾ϾӾ׾۾߾㾁羁뾁チžɾϾӾپݾチ㾁ᄆ龁뾁뾱꾁꾱龁龱辁辱澁羱征徱侁侱㾁㾱ᾁᾱཱྀྱ߾߾޾ݾܾܾ۾۾پľپؾʾؾ׾Ѿ׾վ׾վԾݾԾӾ征ӾѾ뾁ѾооξϾ;;̾̾ʾʾɾɾȾǾƾƾžľþþ¾¾þ˾Ծݾ征チžѾݾ龁ɾ۾쾁߾チᄆ뾁뾱龁龱羁羱征徱㾁㾱ᾁᾱ߾߾ݾݾ۾۾پپ־־ԾԾҾҾоо;;˾˾ɾɾǾǾžž¾¾뾁뾰辁辰征徰⾁ᾰ޾޾۾۾ؾؾԾվѾѾ;ξʾʾǾƾþþチᆲ꾁꾬澁徫ᾁྫ۾۾վվооʾʾľľ澁羦۾ܾξ;ᾣᾣᾣ㾢㾢御御羠羠龟龟龟뾞뾞ワþžǾɾ˾;ϾѾӾվ׾پ۾ݾ߾ᾁ㾁征羁龁뾁チþžǾ˾;Ѿվ׾۾ݾᾁ㾁羁龁チþǾ˾ϾӾ׾۾߾㾁羁뾁チžɾϾӾ׾ݾ㾁羁þɾϾվݾ㾁뾁ɾӾ۾㾁þϾ۾羁žվ羁վflask-session-0.8.0/docs/_static/icon/mstile-150x150.png000066400000000000000000000110421460047617000225350ustar00rootroot00000000000000PNG  IHDRҸ1.gAMA a cHRMz&u0`:pQ<bKGD̿tIME ";IDATxytyhŒȻmlc# nbFYj(mC(! &!=%'Mh14!&aa n asywYv[~ 6E3Wz>S3>sygyc1c1c1c1c1c1c1c1c1c1c1c1c1cz2"|) rbߑQteҟb4 c"S?zǩ;=cHB,B7xzdr(bJ2%N W:ĕ}_W;z'J8ݩ'_+F`rt~uDKEtQIu[~o Z֘$qZ~o8]oȳ^AJ<1NڧY/nq\p0LVoIJ\m8EkHS{9L GA PC=yd9G,]>֑}&9K WY}td"ɱ JY6*z~$Hr(YE_S3w ;Ɏm(4P^(wbJwœ>NS@Z8IڵUn^Mu]Ti!-qwċg|s].R<~S|hnP„0 `b451|W:32^h\tklkSaݫźTÕ,j.C:Ҩn^HzZϼܭL}Yo}"l~6%)=5ﶊj:rFG6SAya]wW9~^dPmw~WzJR.~߼WX]r @HlQ:鮯v5[7a^rU|Fꖚ2Gy;K5z;MPÊ7GOJ35Et;D/T~B}4MO1lAy~_};~GX:QK.#TgH'yNG7lA\;9d_hgoT& `'G:/pQD;|>`trO!FZ966짚7 zrLnut&qj*(ZsF;s00~N';q6v1RM$laA$<%2l|yejPeܯxU jf_;$^3┝w6]Ӝjуuքx m`#QDgPSmqnDU7<4M|hi)]X5QMJĔ]*= }\{ܩzH:dC|92hmz]bT=qGV88,5BfF]Jºy75xܕvfWv݊=>2\_r S(U9*B^"7<DsKNuC>zE˴Z"y@Cư'9zj>;5g:[Tw'KOC#"SG5[EQj>m~~IZ~.A%1̋3[4sԓ{(+fRROz\ׄ+8R*|ˤiѾnSueJ*Cw',Pg g,q>Qȵ.vsK#Z46NX6uE(O_ϵ9&hn=nVKiZ%?Tr$jOQ}Agtݨ2ɒ#*'Cjӛ E]Oij<ǍէzEj LV9u xr$d.\kSfqG԰ZB>EL`)b YY?vQ^MRxY]a}lIO#9f駬rZݮSAc0#H1rC:#iFꨦ2S1 0jݐ%Nr@ 3)9=FS fqJ&ds/R,iA=QG=@M7~7arjq&Nvmt1GHC_hw-9"29;_钠>4Mj[J TUԇ`]g\ xrQ#W X7Cu.eL'́hYI#{wq R(d 32c=祃@vrTфGrS(8}l%H(iLe8Wo$eKPfj=FwD63)p#|hCk;9䪬eRL1WF-٩픲&#%F b$C1)pݫ)otJirϧP@L=U\SI1i=B} )` b Ú&F!ټBJ+tݤɑN iq_:9T8}xiQlS#eQ6B\lQC'~@+;p,;[ʳ~^ij?L;?N"F$8;w"&VgA8W4-zE 4@?=(:%=q }ĄDG߲z`q&G%zU-~kOZL$j\ݡRkZ\۬W9êЃHUwuJ[I AP ]mS*%| ;9k5]OTIAN`' FlS2㸚߭|˼qp-{w8AihiKkť;ګZzthm4Omjr,R4VKAhj^-#}F -ؓԌu@4Z ֨:Η;TzXi۴%r=TN?&xz9faRJ,dJH=)J3UbXO)^uhs *`Hke^g91dc(f&`;[ApQS+>4Ks8\oxY:/NQGɡB `O.}$L hFRKsCu4G`%3;o}3([G4aNWɤF*'?hfZi$>Ùτ,Gh~>nC& qiuYchb9̌}隦%]Ԓ#raT%]A.GZ¼(0ɑXcc>W7v8e39\X_@ET&2[ؠ`3u #~.e`'G.}9`wJe1`z"u_h}:(Z jֲCNR*BP…LdhC5~E+=AvGiQ)T6QIC,),31L`ŅgE+j5_xtF0" e*=ZL[tQ2)Ӈ F0"Of zNmw>.%b[&j( NudJ6C.%l2bSjJgE76gAO,~G'orw] \YG8wqqGO-;x!V49(blW;"8۸ ~j$Dr9zA JBaRAzHx"mqd-H'iAb<4]%h~_ZzgZ~]/t] th ӮK`pnƄxԿX;^E*c?c*I!h) I'X/S_ӵN1c-b91$)f6yD=ʟye #8r>(vV~ϋrO 39v։Z+YCsf⡇%qra,0I ''.[)#9*~zdrd9LbOVzlJv ld'U=alJN(PD1E gyI)]hFꨦf9S/I)LG.#l9cAu4SO=PK 4&1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1 ٿ%tEXtdate:create2024-02-13T08:34:22+00:00W%tEXtdate:modify2024-02-13T08:34:22+00:00 7LWzTXtRaw profile type iptcx qV((OIR# .c #K D4d#T ˀHJ.tB5IENDB`flask-session-0.8.0/docs/_static/icon/safari-pinned-tab.svg000066400000000000000000000052741460047617000236300ustar00rootroot00000000000000 Created by potrace 1.14, written by Peter Selinger 2001-2017 flask-session-0.8.0/docs/_static/logo/000077500000000000000000000000001460047617000176235ustar00rootroot00000000000000flask-session-0.8.0/docs/_static/logo/logo-black.png000066400000000000000000001260421460047617000223500ustar00rootroot00000000000000PNG  IHDR,%sRGBeXIfMM*V^(1fi|,,Pixelmator Pro 3.5.6,2024:02:11 20:18:01VSw] pHYs.#.#x?viTXtXML:com.adobe.xmp 3000000/10000 3000000/10000 2 1 300 1770 2024-02-11T20:43:57+10:00 2024-02-11T20:18:01+10:00 Pixelmator Pro 3.5.6 1E@IDATx-5ՆKGz4XP * E "(`Æ 6@`EDH*{.Sdsf$+k޳wVk. @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ T  @ @ @(B`SedF @ @ @L*nu @ @ @ ?s7C= @ @ @zO"p)I @ @ @@$[H uJT'j!kr @ :ydr%+͔- [R@@5[O% )u9)@@@]h @ BhlK[Q2$VlK$gK6 W@x$Ǝ/_ Pe2 @ 0:-$ 9 RILޝsd$@Z"=L ;Ne@ @ @ "o_dޒ$vy%[nrlc'HH >x>WR>{&  @ @h勒Jn-ϥ볒gH$AN%rw-zީ@ @ @)D|Iܨk!gKb>SOI P;/ݸT@ @ XV)) ְ.Y,l'YPB L=AR^v@ @ N`%yɝw}|D@ȉ2 *mOX!A $ '|Y&IP@ \.1'euCBMXC|Ur+v.!AR' U7WK @I Pd` ^ P׋fID#ݑ$U^~;Fx  ueЉkON!A d Ki0 @ | s>"KRwJ< @mXB WR^kKH @ Ym  y:8Ƌ$u(?_ @I+OJnWߤ@O퓳 @ @Vl~<_%BE% etn=*ܓvg; 5e{%;IhP@  @@ V,Yw%gI69$TV]ح?S6%29 %d^%1Vr!wHH @ iɺP ғ40 `2JA;BR;* ɆR;1y$ui@E`%)_2 @ 4u PW ?^vW}W/I3pmL&A@FSu3⁩ w܇ "OmUCIwI]2o,)!-#_$Ve} 9F@Ȗ:I{.p@zI@]/!$A@]̀HW$2pwKΖT=ddZ @ WHq{t]_e8z!@@,bE/ L"@n!C?ߓLl"ٲ#{I~Ǻӎ @H2-}̺瓐 @~7ѿ 3C @ ?'g0AoمAc%?دIʰg @qGRI/I?j!@`~0_>EҐjg @ bVT%p.?_uO~Dr(5Q%'6Qu@@o 9wJv#G- 􌀷|Y}7+[_j @<5$v+^@ @],)9l^X@OwKxȓ\ࠝip @M P$m@Uv9S<bp${ @ ?6~1 \U愮tx؃ j @ueU~TtH- |_?<,, :\\/#  @ ~w7 @ dx =]WYA|,l *f ]$:F u @ sXVRЭઊ lHn&\BNHL mvr[ @ } g;XGM`]r凯 ~ @ ]?;+5+$@]'J @$)V2B} ">Ow oI\QW!@ )  K!@ D!i]4뚺IEo/?  R$Bn^Q @ >X7F%ˏqR]{+H @H!P1B @Ȍ@@61h\&CgYtI6)!A @FH @ >ɭ%$^PY<ϫMB @ V5J @ L$#PəϞX3LA A: @ (u71A @H, @H!PWC @ȝ\0ϗޅ#F- @  3j+P^O|d @M`ш/-o|.b @ U6șvku݁B @F`a'{t}Erw@ @ ^5w#U @)+tɛ$_  @ A@]vUE| JB!0C5{߄l\ blW}Ur_ @ @}ꪵ*C @Tky1|AG'9[׷ 0'&u+$|KM;׼ C`Yyဪ8GJ&<7؁s s@#ԽΟ @'@\G+Bn@8Y.Wڵ{HAX d:lSTc~$!M {QHkN @ dft 0@G ,.6?Hh%7ʵ;{=? @S:}d_@ @ PWg%' ! lL䱏0pϐZ&0qR9Dl>/kUU*Q--i(ox4foԊ63S>|e-0R:1[&ޓL妟ߛd<5&\/IWזɟ$]M1-]U{ZRTGK I My$]Mcإg?[Fݷlp/Z',P2F'K%'!HWoSzv,T] +Mu[g3yyb}pɃxM۲{3??RW-%H lSWaLiCӼ.&-Vu`vI~`U]s}`EUUjJbmhͫH5Lw \RԹ;U'5U!PO?JRu[aCUQL-i/ @]8^}ß+}~&cNWWM}'^MV[~Ij}?mnͫ8ɔ]-E֍ym\{a2w/Ea5AY7tǬ0qmudfʸi,TkF~;Gi% Ȍg[}zp_ԅk/IUµwa~Rj}[+RR ]ߓ>(aG]mWWM({>"ߺht[tsv$T-x}bT{M-k/+)9'%ml=zbf>Mɪƿ&M'PFȷNununO]y-hGE+YB. ۧHM~V-¸ hx]~S]#{ז9Mf_=9XSNu?]<ٵDۢ{4^_.-ꌖtX;bZ1w;Dm2fs q_I[ r?ƒ!PG>kAR:r[к}6r"PWuԱ?yI :~yl[5G }V(W?HFم@vms-wު2DSTJRKI>p|]>F4x[$EgF<WǩIm b-i8m^'PRȴZul3[blߩmID@]=H3z.R:S5|$yl0Szzvt]nYv֔?Oø|}Fz)c?*q}kd0'xrtYtE&i?ÛeBJ+iIa .ա/]2zV @r*Gj?c]TA%A`:H쵷S510of+]#UK$-]} gXn[k k'.$~n)ɻ+yEUC\+uܦ~YV6v=GrvO5b5y$geT1(;L*.YDhb=YZ'z06򱢮ΐyu ۀߕ6 % mFIv]LުhQ <~$~U: 0H3}Q}m_t.c~X nT$OM J:)p/R\KҕDݒoy)~/mlZIGP䳦yR x‚)r?Gv(-I]2.VqC=/o1]Or||[U9)vGeZB-UIUsR#{hߎqǝ t_tqRrqjwxcn>o!>Itx+vK%i^:pcRr6R'C5ٷ^P_ܾW;e۷eWH%p\]IFM@i%OiUT *} [JҕDے3dWxTM{T vISC=WAl 6!{5s+ڦ PGС*ԅiLlNr[в̸~@]i=Zqd[o%H jIYNKJH"0=XCbcrz:@ٺÔ5t΃ox+m 1WI}vkwSHͶ]ʫ~g3;٦Nv0WZ_fɞKgΐ\! z~v?=)6x2,ɠ9{R R4ZWI~y?KR\0S=,߳0GN?IF`s_rBٹ0'8Iʫ$Sw)2'2=g٤^'Cq>x.ܥԠ&d\L;eYWR=KWIVI-z_/9Y3R7U߷<$tR|ҊMLiKoH (@M%Ppgȼ:ua7>v-hӇr+.u0AYr@NDi˞OO%1?SѽX Ud1aA n;I2xibL**'h8Pb|jRaE)y )'fgmQ_ jk3d^ bT!/?ҺoMoS{O]!g |=~<6oq[uo%m^+D*9HB/7H|KrymiVvm*OʾKqw-ni:'K^޺}O@~dis%^Z|<[pPRf;E~Sꂞ}.!>'Kp{K<1I詚 >^nŶ7]MN} #}yE3'ѲrAaVϖZL5)vJ8J[dJ擁_+yă_n%e~#9Tr2Ɂ%vlZ`,d2.i܏ڒe,xHh4[~,ټy {tYq&0AھFΐyu7.*m%1Ce[:D@x/լ x]pOFٻem% %lE[wji1T!CvkZ? ><&)qݫ&zuWF ogS 8h\vzվ3zq Q1˦?W֠ja͐Jau8Pw^O @]_P U=nuYW-锬 v3k ?Kb[U@n4F}$v+dcF"r$_C-Iyx}@R/|jؽU-+`?5K>S T@(h(Xk)}J߇ߡ<Ԩ8w| VAdO;xjA?Ba:vy{߾bwL#5@]c U{~a)·zoIeF?s[: TY_I1cTuy r\hڪM JXs OJ23_v}?Sΰ|,y['\e4ɓM ]4 uW} 3l?S}!E`8o>:Iw`_OR$uN]1ӾR^Ğ:y.Ghn\99s2~/76L0 l)lBش@oQg)oj[хDnx+n/m_,YB5X;A3YH@]v@n}MkЄe' *1[c UrM xf|ɻ{s">j:WqLIuNӓB+ a^畼xy ̚.sݻ2Z Pb%PBȸJuKU5J(ͱ?/lCS ԝ'=.WO.N{zڵHHM_]* }A,%-nϰQRc}%JEA7+ Qm`֠(ڭ(fͯj"y\"+%s! \ a%عouа!U_+ϼ\)Ws0pZI.1zb]8JǯbF5H ԍo;N@Q(+؇?'f)eLS=vK_P=s!޷t,-Y[5X[qUT+15cҮD BXd! е'Mw%35}x*lڡ'#%#2 =q-rI82 1x[mc(?f-\聟;/.A*\>=#X:=~ݱUy;H'`ёN%oS2Iq3d,W4幪(L~uM\snͱTGa1y1y\ZJeB7 TDa~(j\`{]'?MdKҷuѿBPv"J~+Y~zeOj;]ـ#\_= WXG{䥷5؝,}ay5' 4+Uf?5]q6iw0*ÃMփ/x;Ti I =!x˾P C)CXX<]|jz|ݓBGV8S__ug`I9@\,#Ӱuu ^oP.tje J%y*]"P׻&a@U& 9MZ|^~fcq6]%jb5vӼ%_f늲w3=W+`%}'ԅL ]# n#4zō[e]?4E}T\@^A٥2hVt5[+Tb:s+F?3$>GCӅ9+@ ӄ5Q udA`Y?Ȑ3bYRgŬݽ"y;n?6ai/΋2+:Y~[r߰!ۼP@Z _YBLhiN ԿWx>2"t$@DbL1^:3,4@3)cf|&Ӻ*=';HC|V?{cP:vd1F:ēRJn+'WR^~:n?{hj^Jї-eupR؆ijHyxJ.NvyE?|w|*S?xK0.M(F9]Yn.stƟEq>*#R<[3FUʨ 5_R|NŗHybkScT^6mk)@̇\q)֊A/%qf֥"V|t?Q?rTe1vs  6:5Vy_Jjزs5imz9d/`ju;S/mpUgXxeK独LIoa[w Cyy*Cvݦi3ǹXR=Ҋ*D">"լ+_j~7XXRJ iw|8!Y^(qGUZmOI 2t[\6 (҇&٩ÇMo - j|rCk+~ғO`'{.T\e9mvvEqo0/ ͌-[Đ&,D{dK  %`N1y;h6A@(L KrJ^iKN"Ͽ+Wטb֌d履lIZ@IDATnej#괷nMmWρѮ&6``nGwF\ u6NJ{\SHY+YBI;Ik`!$LOU=d_u l+z޺Oz.Ծ{ 5U؇s 4Mr]6@a+IF"o2#>9)0 Y"9wtdx +mfZVž^wRd3`&jHSĤi"SV W8,a[')uLt'zR<^M-~)i"]QI2`TT M 7 4'Iއɮ,2HJ(1Nc' 'lٮrfRw9+7WyKr'px q2)=MIс(M *;Nea1ӤmF-XG{V~ye~VEj/UG uA _ēS@o[YVE.D>#'@gB?N)Y)‚:.q% ڐ[WdB}X|?Js%3(Q `J%l%)&!M2OR @*8bż};cW~@A'K~BuQ]*XyNO_W^rLMVIÿ,d6YMsR=[=~Jg*zj+'XZ>7)ӴuVM!A V'ZE@EUھ:?s΁Q?=2$|y>"}MHWK>C4@!^w\$tبΫv%LBHJ>srkeh{,?+EW >z?~\fEYn2l ԖMIJNkbx;VV6wtTVYWJ\"Gb_w ~PSWm%+p+,kT7dRx8- Q} ^&q9 Vέȓc4!09{WiC쑖IXZ>-VK(@S][J|o93^9t*ro.<1yc[y=KvhX$TKu^-{ V~[Zщ+i9&O{o !ݧ'FoQi]x̸.:X{աI'Pt`:INzSHe1K PkW"A]gsIc$Ov{"%x#JO-dPI?WCSs=|g[g^/yV0 5 Z2粩^NS*ç:]H+Er"v?dv8n,D fL5^Ir,H5 9He RqW8xp/֌>~ xiI#7,Jvq|1^Kehm\rmvSؒܕm+_6zw6v#e:a:o~d؋{JEjIu:M` lJII)g3&oNȦm 6d&mH='?kJ16W'xBͲyPy^-붿h@Y<0y䅥Kֿ_;Ko"g'JXy#^2J a:0wyTG^%kT ϯHfSK.K4AR#: 8 W{h6jlȎ7ԁ(x}0U'yJyVL҃zF'vl}n5 ڭs-$=$qveh=(F?%68;lޮ@G |.Aٗ*G8:UBN*,vu-iZF]!?SgM$H _=)-v@Um?n/%wT e$rە特9W] 0$dG%TVڭ2?NxYg`s:GEkϪo&/b׾EXe}lC ,FduY3ek'A`)ú2p$< N3={_)ɸקl`V7,/L vd 6W_iB/&}j;)~%YmC2vˤ*vr9PG䚖UMqW-uVMqoI&MSy<^kuVYԕ%F~@,$΃4SrdհU5lw6Vʭ um9A)~Ą<9_&Ps_L|hd/"fäȱM< y")\llgJy"pRjS +?%l9+@"ﮗLRL[5z":<.Ck(?f'p/ ikFQU v}UUL(g"jvf ;itZ_e]:G1bE];6ΒvWkNi"F_9u]o޺:6 OKcIv-*Sr1 Im|2P]P4[S׽9i2m2r'#cVWCrjN @ tަ:όUs?W2 FtUUEM!Fa:97;$wK6#L,)%ε]$Ag{$6[mYM12ЫT𺪅#O?&fq{ֿW#!`O앐=B2UNܷ۬[sK F@GU,)oUSrNU)+fu] "@p7,umcx6y_=&$;Tby_'f@o>"I-.R̚O|(|P2cB7֒&eR ^ {vcCv+ ,kEɻR$`xnVXm 6tgztDF.,9 ' @xm+PUPAoЮJr/Wum#kf1P 0:kmW|/ܩq,(YQŞyeg9?D$!{R5vKek@;@W8XQ7Qui%{γz:y֗]O4F$'YQ7 @G.'_nZj,A?Џ.6U@xUjϲzlZguR yȫ?))+&a Iwvi}`&+Ͱ.-F09V.g#T=tU w\uޚuw'!=JNzT9OVc4 @ ]ɴwk^-Myuݓ;e+=w}eSn[_I%yڋS1fu]o}z"{.&M&eyY@%4R[nYmY<g- -\w029FjzoMu\ϴRj% @ 1_=%*9p(QZ*ꪅ#{z`I}2TRja沩n-~ă4HTrg8_Y^HԜXu֒r-6\X&XA6󋆝L|Ek{RI 7.@]+^% J8ZMs7'7# 'pӜ :rh~~+YW Rz$s7mGu |M6z l~_E+=,ehN;!A#C*˟mzPH^V/m^NĦuu-a%T/$cRHH46M WbٜS$鶐:+:? ܐ~^O+jV!1bHI數8#Pu&:zi>\kN +Oxy%7P*ԵU ΒgH!R`cI n5cğϨMtїJ]=R%D|rx{V!P}F4 @QoEO?=ca 9@ )ɚ񽝗'}6TūUyzlGKx$RުѮ 6W#@XƵͺR6u*z]f-?KS$ssHE7JR0ٲF-QvKc h_-oڧOU>9 88+~RiΓ[s-U@'Pf* &r>Ofێ VU&~5 p}@ U>jbR`VaQ]%~ߟ "c<ZɱMV:.?i*[ݵtl}9zO>w8tt ٔu~~j$MKn^BQ \U;!ȕ%큉K#p'ҳB0BHI@Βi~6jr $)ARg UoNLoX[_4>u{͛ꋁf^UB䊏?U06<ߡ殏@]-ȋ2k! w,;I5Q,EAp/!5zo2`#t4@]ުl-d$$` ؑ [kEEU;dA+K9R+nly\*#4h_8geb{zZG"P7 /!XH;q8g)qlv[#[;oJbC WȆ@]XOIV#UBʏ2^m3-iӀiETm}_QI~C\* Psz+PWcۆ@X<\z@ņ ,z=%6lK..C5~NϚN@+Sxm}wܴ\8@^'& s%mm+ven~X^Zy¬4iKc麿S Oý~6뾮s/K$PW @8PN6fB}l,A>=zKmR^QAE(ɇ%JH!p\NWgIn8+P砫2q$#7w3j:#^QG.| 2 c4K ,L= D/;6鼗8X#Y"C|No}vŞtZZ>J' 8z0#uerm}SyΛ[?Ǫ/Ѵ[3-kE͘XJo+J@}qNٝs숄38!mDnNAzHi/C, pݭeV ~pӓT'ؤSu%ގR?+7_$EwVݏhݚi5}WJZ ivuO7;uvYܗ%F/  JnNA +wPWcfer oTg 4 ސY]tZ w^%y[Wr?]Zt{9սGZ5֊TENڱ-_ꮨj:SLɓTcĎ+z4y]FD00%%ؗS3eKwo%崣K{yշ%VԞmTyks0fϋ3ZwP~MmONAmAx?<ڭ<%xh;5 |Fb`+&_j&\Q?vs4{nA{>gt^MB FTtH5 @",SNlv hj8b̵PXQs rdWgo)9BrA֋ hxiRU[vI!V'"Hqgl%w#Aڑ3-͆+@Ws~EW|FUD2FPJ 0g$ Ͽ%q>5AUe&[_Nv_zurR*Z,VGj AYmTJG{"z~ȂWsҦW+VY=QM$~ E ܭ/\W@|O *-|kL>Q4 V`Vl/eWR>|3KQ^XkL>hE 5 !@#uyĽ^L=7q1/=J$,D)xZi5U`]贐Y6$T%g~{%0vsn0Ā\sUVm)n>e#aig&P}\vfuCpHQ Kh$ՙ{\?]|X(.Jw!A;aWc ~9_B@]}*P~ e(26EݣX5\+f~KN?sM+ 1+FP%P7 !h6+Ni@xHPdy>pX@v~ [1}!@xK^<+9!0ucs$\4^i4w'1-'~,шyTRu_˽pVy+ [ѽ֏1 UvE$~@u l[W!B-L}'|T3cS"p6A^iU FwPUZl^yPZWl]xFL.3Tky.! )@x_jʟQ}dγP7K؂+]tB?%FHJxΘԍJ]:IY2 zib\'v=OkdoɸB=#K,p)f8is ϓ+(BԋovIZuhFA:$* Pyʓ.Ϟ'K՟u^~l[ B?mtv#'Y;5_I%!#p^,k\$AH VE\)fk{Qz CecUPlX+rzhX ԍi-ucp ςW,%prS{nMb]|I@nd?"6'+ꆓ˫\jp<6%UuP>@L4JļWgUۣn%U(zX.FқXKsІڠN xv: 7'_Ns2)m "yb$$P7'tL3 u_)zc(e J\J+PiI)srvUwJ+֎8}_Qk0+Ƽ ԍ%@ KAQ4W VO֐Ӷq!Gtq.Ow,Y?m& YWl^S!zbE&^ϬJc<mI|P\ RqJGųWy[FvFe\No^5U Sy%%4]L|P.">ͫ| Ktq6 "7h6B`Y0_ HlHgz @@/eM=y{+ 6u[#8>oĵP Vgu^M^vؘ*PzJ}پW~jL{ _RbtkI.UtB9xRvLg>_B 2e܏ iKuUtHnO3]C`#Xktǭd=PyKd̛a&$(4s:ї\% iL><`rr(M hK{ .rpL5]|Žc'M)㇋f4ʑ8\r0T'!dbEGp#! !=F~CL)}jgJRuulmgALdѷL`Isߡo/YJזԛkUNOC(aF=&u}OW,7:W=P˵pm(9NzUr76W%K)XA"ǟ,i[HIkg_ ~7g׌UR.x!D.Pt] {/ٞIKn>%#x kbےyݠSȏ+zY~I<8z vyHꟖL9P8Uu&p:hƊrNy_](8BiGG]Xe~E)96%o;sc kC)UzWB:8Emʴ\5lPlEweV'pA U2kHWP:Ftmo1ۿ b "hԀM?ѱg&KF4Bs*vrpR$/{gUU9VzʲR1N/]T.ޞI|'R$v_ҷ C{gB.T+[I6=l>zyu)֕cXBI^V~L%']KonD\{z: ެ/OcXa[Yض͐׸kѷbWWkqb-۸:tj|,7.-v֯̌4jWE{C! 2, i~ܱ CvjqMvRuĆBXL*cP }VX~޴vXЌMܦmzF9z}ϺSR2O^Yo&?JϵVZO*ZŤqOUY[oʭ*;sGcA`E]{X(eCUSUu.w>?S/;:Z CUeɦg *Yz.!.M}?6y nM &_X+>. *1]"wJU >H0~RXTg$aSm:T9.^l[aS7u:[Py")Y^_,'̊}:?[f +~MBsׇ6_sUVՏ,Xa[9^?ί :e/C1ֵV||@JrC+WIwڬܘ|7!LwC)*튭dcg즌cKh7D4.nӥ~\l+}Z厺-WC ϑim1_C׉6* |QZ݆M=s|j:OX+oUI6cm] LT .~m]~^ >uߏ:Vx=qu  '.:%q<  0T=\_ZdcR|> I`+y{%R pH~uR_S2|i*,{'Dnlb>-=Szoi%w~" ɤ[_d.V?8ZH^Rj{T{" 9ѫk$=6=۫SH7)aұ tu.  Ut~@][I\#ms%bg%5K^qb ԹCq{ؗcc:%]GG}^M>!z-K{V ib^+O)o_oUe&RE:`'D\=|NȚ8bx'1P,Ub9yy)vC_d7졊GgE]ܘV:\=sɇjr]!OZbeH~X3PDNf aVv_yPD-9vi ۇ6WU$GJn/NPY4ރ-m33۬ 3;mj*N M"nUjMs8#xUE9|hr̃5w{f;xC7!v`Kѻ{VgKg}i>-oD|UD[%T^Đ'[ 4Kґd@h_i5,6:ܩgtp#rtR=?<65`Wޓq@Xer0׹ë.{dhڹpE(ssiZ|RsgWx‡^1qj}>o|Pb'27--V;e\APR/8PiؖGG/.c*Zju'ɍW}~۬,Rxί aRܮ7]ilwq|1?VvU~Fi:i@ nkpDNǦ9ۢ+W3Y7R~+ʽݦtO>3P7=v]HcN&2X7'Lb:_QJ[(Ϥ!|K=ӤG t_i1M"@$2}-VWuF}?MoHJlª%]+>Xعo:;F^2D[RWK޿ k[Խ)q>)?z5NCV[wLHgפwʇ\^|I81H'd]+m'9+ߐ[B^w6bPm1P23L"}.c/?[K?bB9~RRP.^#~E<ⷁ*/M\*6rtƎ{`ri؜wӢMMw|9B4'/|Ǵ*~eG9ՊRN׸zJⶲ͖m+ oykHTиs}ɏrV׾WJ=R{U! !,Y;sB}k +@< E `.Nϖquҏi:GKs(aWc n'(~*Mc2A ӯ)b͝.m;#ezfm i;wϽ2#meҪҖCVƵ4ڛ~ͩysm6Mt`?鷥!e{EF.*,ķ. _g:!'`~7DWV]U+׷:>W&$`HLKK?vܲJd_3CuҸ":BC>CigKx5VjE{:< ҅E %Ʋ1vh/$ =I˯(Ă[NstC)@(>@(BIUqSfwܫ[A)B9Y-kAkk6[=]x ɡjѸn[Q&{aդ+l=XWy΁Ƿ2jx$ͥU~92iSK91b5;Wsu;S1W|Jy4~SՂ-i)qKbmtJUv<9;2=! X?ӿQ1 Zlb0k\h}┖@ݠtuGF^Qe{svlϲ/fmo ԍi}t~jfQ;EnΨ"_eu_=ի _#]U:Kr*[ҵ+3ɃgH)M-{w4$~ۿKs0-u*vG[W8feK}ȱ憂4&Ո)bGcDlc- 'j#Xl0P7!hK Ǜsmz49>dO*:˕ȱI.\: -u y4礥KW5(ZxrvFwՖ.OI}T$9GJgQ6T=CS9:({uۗ{2}PW"m+^B;봉* q[RE:Di]=M~8c3un*]d~9g]bÝ1{wS}3yc9]N(Sl 1-n_tvhpKCH/_S(k#)xLqC{c^QyzYq+~e׽T6 *+ Rŵ?ȧH.,il'eW`zp2ҹ?ʟoHOR^ٺt#҇I},髥^ڤ._UM q[RU:@5i)7V @r|IYm{r륫4F=}&-?WʧV  V E b.]_$ө{6kH2ac3Zz;NRW+3kԽ$3UƻC ixi^ in3P,TZն/J;S y&O3imVq8RZBG5q[y))nj^?ic?}׏ 2E.Uw}ެFɽ;PwHXD,v3~T`hO&sYj&D:^u)ůNoGdSHķnĒA{`u[V3Pnvy ȹM$M=rGҜ,N$rLI wTB'AZ5_5L{K7Ɣ e̯|2de!Rd<w؞(-=i;v6{z߫[ki}%-a" q[fKW/J-u# U^R$>d؝"-z$:6=I~Eҋt K#T?Yg7Ci}sd&DW.R?"yVnEkJUN`]h7wzȿss3oy5ֶۏU?~1{w~%K?(?2(hqRwN*u:ء_^,2EV+)n+)}ϓ~[y{2cGq|-F v끲m{+*?T>Ŋ@Qծn@ P s I 9wqmp+b|c߅ߓʈXLN>Kʮeuu&)3 ,W RJ)~ ^ 'ғy>ڽ\_%skR=felq͖WDU*Q9hc&i SSeL^MJ+~ߑ-OlKu386P;̣)&TbT64h}c.Fguڝ4|o\뒛=,+gW[HuiỔsz,ȴQ(ǺWzuZ)m&W?ЯJ=wx"5o+,-ƫkfg@դ q+3n}ʁiװT~,}K6ɏI=xԃ%C5Tb51n6:wd-@lL!ks.C0C|t5}RZ門&e~O|B ck߯dKu]b7+~+Mq 96=`kȧtǷkγP_kt(nN+ ɃrҒOR^A$STNNʟK*bziV2c΂Yr:n8~',u;E@g[ߕ_/:nAIrC{#P*»NOy[Ivq5 CUҮ|{_z8N}յr `_3.}5@S;Z n[f➂6MYg7ǥ-?V B|Գͫ!)E xp5,ZO.Ӧg [:+qS@x<|]~tV};9LMҝH+&kUJ6I'1ss{@v%N3ag\a&7H7¹Ի/?.Q%ϨԦWC`n![_NНH^CJ/wR=?#uX]~x.^9vy6 bIғ^=yk aD6t=gn {b?'f m74k}mfG2+_F?[g\1WrWe:$(CKvc..ϦVQ3]_/Nw"#ˤu4}.ӏT:d4V9;Q|,&@b&)<^s:7|rJnExҪXrV<;wH6{Jϗhg7΅R'齤ds>R?W~Vz4F,ٸ\e|\ EIp-S P:|=OO+Z=p^5Qm&{I_$jW!Sz>ނ&}VI}o?ǿ8}H [\?hk!@udHpwXEEyÝAIsMm;5ms۪.R܎bş+V u[=sT;,,[rWTu wV]u'Ӥ~5^Nzs?>ǝgK"eJn"L?;fW%w;R#SZlJ-73={L! LKAJ!RTY&GW+:)5_zc]|=׸?Rc壿#ϵKԿV?_Zsץ_^(E$ \@]XuhƳQ>'FVJ啳tuM'8.֔TzЧTKRbȹK҇w_tYwRw#epvgOK|p#zPQH?!WUA ĭ8҃w>'9/P=P@A=n@]%V>ҜXQWр8u pd4?zҎ= b_:f"VN?`%}dc+ef|~ԯVpgF0NSᤤvuO@%ϭ6# w $]&fD9o*}.F" @'P-! nnw*#u7H=A@zCIW~]wZr͖7_VM.~RԊ |y`}ͽX|c; ̭hNLuxWͽo/ @ V4lGg"!DR1*g LNZ}3>es9zmy˘l9r~]%?y y2TUV˨:Y%%׃W(>B @f@u:Bc\N?nW;tTbNIK[a:R6!@ @ uqyb 6T=Z'~uo`z& ܀4󓜦1m6!@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @@CUkTIENDB`flask-session-0.8.0/docs/_static/logo/logo-dark-long.png000066400000000000000000002150271460047617000231540ustar00rootroot00000000000000PNG  IHDR4,6IqsRGBeXIfMM*V^(1fi|,,Pixelmator Pro 3.5.64,2024:02:11 20:18:01: pHYs.#.#x?viTXtXML:com.adobe.xmp 3000000/10000 3000000/10000 2 1 300 2100 2024-02-13T19:02:26+10:00 2024-02-11T20:18:01+10:00 Pixelmator Pro 3.5.6 #8Z@IDATx |Egn! w 6I9P)r4m9PT@Q%rhڤI @}B;m i4= ayf~y                                                                                                                                          @l!sccߖ-3&PVj7ea}jk[׼@@@@@@@];H!0jl6 `};U(]|h]&k 3;Cּ@@@@@@@] >9_uݜO8t66ºp fƙQ #0jE;Ƅ1oY*dU?)|COI"      #EE)}ٰ|SĶLpX`>ngkMvЬjzs#kW       @q 0390m|}FBuf50D6Wg*T2SkVP@@@@@@@ \KNf"g٬O{&lY&+L1 g L3_:OY:^9b{(       .tu]c퉽ž,f^aP6Ls[gں Ä`       O3΁$ڏPSC+R.Z < P@@@@@@@R`BC`R| m낲.\`x]%bBqM"t|3/ǫ       *BʽpM^nv'\gg=ݮ(x@@@@@@@ ;|#)w/XxI흵q? ň{6c       Pv~IgU|a?kZvMXY GhA\e}㞙u_       @! BCޤx+ntE+[@@ }WvR^2}~!!N r<ڿ|{WTct Rw͆,=OB@@@"!~¾y'0ldUf|Y$@؈W)uSlSGwO# z*:lhEa= hRp枦q/7ZG@@@b!cH嵓ą(::( @||ڟz( I0! dT:gGWf/U٣?f-./@@@.(Y@=kNq#t#n`{zLccYۛ* ߫.ݕ"pne^]rmPdCLw@@@HV@8Uo(/Jܛ頎OB@ =?D~O, w؎M@`BC({ iθ7V׊P6]!2ׄC5Ѱ aO )˭qD)c !@ Ku /Xk"󷟾|/<,uj@ Yž|r2g*O i{Y4MfB6*fN)fyEg -Y䀘 (ƹmtK}!՗)Y"}mWH LP ƚյȔ^4q"!   @ h?J_WdH'/ӦS|냺Rf_[" {}'mZwוuRc_@6 UBrM`q:3?"^gZ~{ ka+K^Lv6{kk Ǹ:~xWey.m?cdM.992[RM.4%Gd[aC@@@ȉpLTC'r`i5r{35!QZ@ I|3e(_j@:"r>1U+=Zlh6}3kk#oQGͺ=L]hF=GʜVj+U1>cF~9K$0a~mZJ,9}D;9dn @@@ttcGm{ҭ3/(/H~_SWwkoV^Гmʾ.? @='*^|r&,U}W&!dX ݀~#u|%[7̭Y`yfX*51R+k+LՖ>{2\P? g7Ln\|0`W4~ @@@,/'_*eSǕ }BgmfdEW/'6|# )pfRĊ PxWQ_| R=A+>@K(Dk(~֔k2Co'fr;%sZ?}[;kκ|93ZXJ*Z4ۨuAW Оli3!Yc!   r )5MhÛg(?K(wՓKcU>Zٯ"teT8!D_@*y.} "D Sѿ{P" az/s/ lblS~)¬5ϏڊM.As?K5gʵ 5N[W=ͼbGx   @1 @_ Gk6w+ߤ@'1&WyunG+ (GI dK+8f+xE&@@q ǫ=H]@\^k?$-@@@AbT'3mQF&+߫$*?|QsLkQ-XL P$PWd GJZ (ޯ?cr_kP_OL%^3֟U@@,0G34B@@@pt#PF_7{u露m^+NOyXl;Tcuza_)~{f/:_["fy[ĥƚϧW[!  0_bdcD't~-Kz@1@O=UߛenDF KuF~}|@bMfNTG=P.3[6АK6H$scc6g+R5cpp;sd@@r+CԢ?i$ ?63MW,Qj$@%0Yod/2z@^mS5q=ekvJl9LsיiQf=ith.Gnr ^Uk_L,aOj޺׷54v~am'Ȁ@U|a?khsʻ"6G__c^BcIvtp7V֑&'ܥ4g^8ehk/3,T`& 0A0ILؾƺol(pF\hyŐw/6nե,*@@Ay2_ QWRܦ؊UQ wM2uR  _BɯDPE'k) eJz@JvBC{vH+?pQe}a͓kfgx. d=F:>G}7:W.x#YװO_Um.fI>.^|DTu ?qv׌)3  +pSI=@-J%MCe"$@%pf+NwW]*@JhըgeON*?um۪/3zˆCN2. =l2Gפ5[_!ceTK@ *?!C ̐!MAz!Pr& |/rN X,6?Y{DUܩXs֗LxI52\8eYCk/ea{ەUr6 @m>]\E!:  %+~uT?pqQsyyE%"_Vǃ!('3 TS(%@-Prxu6A;8۰Y\F`[MF4Um6]Tm]Lk,V0AE`3֞\r}>l[5bщaRxy{59Y6jczk\KŨ[O\tb岤P tC$G:cc  /Չ۔tT7*~U{{3."y&Poy #t܄ׄF(̖\s Sdn{U6 l)e%4!EvuՓrZPQ~V8>GMfwTPoGy 5)] շ? @@(#4+Mt@AEgj;{=" Q}WR}7ZPR@ W%7&]3s5>=eh ;aM=ha<~҄*ghM0Ua]k mwϟ.#M@U}: F@@V @F|#Mk?5=>{|%=H dK3ܣNԳ5Bԋ)]AnvY}4qK3[tb͋ XmӁ]saBuOsSU9Pc'n@@@`}Mf _ _'?>z&{+T0 )w&*>9M/'} @I|~UbX4艢 t0Z4rY 5Â`}+ 5Y{ @@@ Wz#tYb+< @fNR5ݪNԅafB@L Ԅ#3 H}vPkK*QgYkox*(W-pժРUXcx)c5e: K`hَK +jE@@A K$?AY๞lPg< dV o+ /g6 jCȖ@LhVl"Df띔z~}٥'^Ll /vвGQw4ne(Ja?>{   @Q|EHٝ;RVW~I,zx@ hbPrl5y 0m( ҃"愰1gƅz?bxqokTWDX{N-e>2B@@(Q裮!&,iE)q:x @NUSOi"CsCF@l ̄ ڒo8Yߙ᪶?o:[T1{blQlH|o_b/Ll  DQ_Br ƄJRS@4_F6@A*CY^F`xX!͹;[t˜덋 mlb'gVeYЛ棺_.rkܬ$u}bskk4ATG,OHo[    Y/g(73TOWg Jٛid>KӕuE68C@@f]n5TFKuLfBCB[cI dS`*^yYʇ0A $@Jf?κ?ldWN襀ҿOb]o{6>j V<2ȃXej̆Em   @N gyU~mWxb&|ѝIpܤJ&Q" FLm,[,Un<׎&B @@ȸ@IMhX]θ/-eDt+PW>5Gh\˜x1sKO%UmnĢF-gƒW#!  H &۵%+J?PlY%!  ( aPL,L<)FHOppv&a4ɘV   E& :`̿[dVlTewɟ 4@gr*B@@6"Prh^{AGLވ /!@4Y/p@@@ ٘O9,}|2!D  @MhY[H8s&5HO`e&f_rأ.ak4  dUcuݲԈ @@@ b%7/2ƙFl,pOS<@@@(eMY8R&gnE@@HS$'4x_* oV蛽<6[c1zs?]t׊W@@@zmOngT@@@r+X_z{6p?t)Nq6O4Y|Uۋ4 f5-`_c2 岻ryqЫ ܿpGhyfØ}~cn@@@$gj_YkWeG@@HRd'4 ™.'IzJƹ6U$Zx̄ד |e*zaxŐp F\/=Ly1l/PmTS\4ew ď   >OW@B@@ȿ@IOhhRUK"^G# ]xvqMmOֶj vCO5&XqBB ; sSmbOgzj-ϱK %^D@;IxlzQw~> {E@/ J:? !  W'4x)\s3:P_mjSQcF'"Co W9~+ZCK^GLxܚqoDb}%\2_@v骗/ kܦ]sֆU h}rvlM%x( \LhVg)$D$   qB>1Zg~\ŧČUۊڵ2eo\1WVJ kk6j쓂nMFV&LԦ /2B)]iʸKـ#uS\`$%ܕ*YMDzVg ?(v̇9ﯾY K~F'=Xghú Y{jskRSm(R\}}_4ܫU)RG  4TM~{t]κOj3zkO->EǏmd|ԘIU;dW/N[w*O:ᔋ&tfWO\. 8sڞȘB5mL=~]=2Xma[?xL >Nc[,GJڹU*ߖ6i@@@ vv,Rb'_U8! -&CVqĉ-/Ysw#~z&~^<2l;-`[1NE=@S!O$[r m5##Gn$-Pu{630s?@x:|GVkX$B{M'.xkTdO +4^5a?]z"mgO@@@: =fUkྯWuz V.]+%odK8TƎ[2G_R˥tGC fhDB 꺆:Du&3RE KjUgVOfRSV~#(!4}="5OP   #Vh`5t/^j3ۦ.dX{lS]Fa3]rx3ԧKjegiCfҪS_Q`=&l\[Qq]P;٢BO@򾛕|w@ _Iv*>g[u~-f;F6|=P?C")/;}!5M$o B@@b`BC7#;61ٗJkNU?iَYWOl5G,Ve}u7-g!Lp08~Ԛ-#*PYQ?$Ijog "?^]ТMMSj |Wҟ8K+y\?s4@zߟR^{OdgL@xK[U?pCtKJQ@~~ʣUv7t?#g0dcI:$6KwG5ml#^Hq"_4kGu[;IOtO!E\@?*gI;rWEzxBepYwCWɗ|3 vhۋt{lu^8 dn7ƒ'7:<ݒ$PBskkޯ/?Z{*%N1jS&[dw=[gOV7m]QVϦN|650vCSaVYFDȍ@e]ofܴI+V@nd]f }ٰeT|~j?݋nH϶Ũ<:`Q 8> <ܧ3dl_wȳޓ,sV4TC}V~4`EW6@neHȟhXmV~@cJq[@c?.T>K9c1s|^I"Ic3Ta|Y Ox>_vӭ'?'I&yI g([y4$?(>+ϒ(3')BO~lV۲㯠jkU87Q>uw3S9M_YyNlX|E4yJ\~}}YT;֟)Fߙ{+?PKS<1.qs?v_zl}=g>'4ב5+茶bg}]_N7O,KuO!Y@cOT>?uI >/TLXB{{.|:ɳ&55e,O>j] .AJA@ג8mP h_߾u۪f69Mzwm?Lgj%?*V9 D$=$\םzLLfXۑ}tn#u}T>^ u_O.dΆcNeE>I5sۭL[(F)ڣMniisV5|nޞzGW7ސho_6%{ZG!rtUCZ|38u#*;&jFr>4@߾BB ΟJ~dĆp80Z=eټoAu9o}PfR*ܬgj'uV()JT)3<*j\ *Gq V-(og6qR?( =ZzGqN&kLvTjm,K=h\?'AI>^HO/PL}ߔ8Wjb6*J2O/=" XjBXۊӘ̐ q@2'p`]>&FVf+5eQ;F+3|?vb3T@kG͘]ԫmmɄ_QŸUQ. ]_j2Q`Ҹl?lOf~uR4(Vd(Am' '= O)$m*s2/b*^yæ5 ?8JojaM*Tk6fMV_f|eP#'gV=I:;Ѕk~5#a4 KٟKzeMl@n5O[[ߑܐoJ 7"$H؅I_c&/IaD,TtbEԈ L!Qo+FbHo1>]A>|dM?ipndkЖ[cP46詿+shGӘ +Pէ`/SR$\rX6ڒDmlf'*.F%&4ddȭ[rQ+nsFGF\s]*~WY7߷ZY6o/UX{tꒄ|YfAg͚d2 !dO`d|N:.PV *ldfkƜsPF5V@p,;>]E7?3jDtv4dȨux2#_)!׎}tjQAG'EsWyzij@E[46$9uS$OdR[c꿯񰫔7-"߯oBLq?pT!aUH}<&.vm/1qm憎֌[tbH46gyxN󗍉ځ 3W$IJ) j^yH7G#-D5x/8]FmXg"-1w@'=qvqo0\ʃ}ak-CLdb;;X>-qE54sOW ]SpfbjBȵr睓vits6ޙl=y?j<~҄ 5Bkro%%z\9'3jDp '!Х#?1P<[n,={r?O6 8gfG3i~zGo+-zc6"߷'->[gBCo@c:U_\LOt 撞 ujߏMTEOTvy,W+H91i&4d|R89 bjyݝ,SEzvvY?[3-3M`ˍ \As MEI CX\96Q, @ X{Q 6W},H{p@ʄDkr_ufƶ[gF:FQ@NH 1b2ҁv_e ]lZjmњuGAupg6*^imI R}֜N{?\POr?]uiK4O[] d@.x@eݜw1 &nZ]?琅=kQXtmHr)'l$O ܏?=@W;MO׎ 1G@ 6/`~z~4kUck*mQnԿ?!(zR!ٟ՞ϫCz0Nr^X5W;gۚ}9)58=vOztӑ:ƮQ+ E-Eߛ;D .xJ\cck^TgXװNs?F#G\DjҜU8('!@u]ޚP" ](!tv u`=M?T \wxntF;Meyw)uQ@6x^QqxYt{*"cQHw+ɦP|-gd*ճJ:Jȗu'ZvS0n >1nB?J "_-t_gs ˘#q>K䎼'+nV{0]QdwBXk?Wh(r%?ؿ7=Ss}wU%HG%C*,SiA T,(R|~ԌK{[_6Is-)MS-bpĔv.kү!g[vұ:gP4~_`Mfs T&3ysrVFejg*NjFb.67WI9Bo':J&iL?Wf2G~\~0?:bZdOFvr!OfR*1w5nb61ϭiOa1~ɱoU=xst1B#'KZav4eӣ0Ʉ,WRp@U}ϴ:y:!f:[r3Ktv T5Lxwڛ'!1^'iS mү"'[Vգu񝜴H#ИˮUgcڤ:q1j=~Bd?rGT]/*ﭜL򓼎QY|L*øeJ2hl۔|qEFk+4_SR[Wו뾟$ȮZ xΊʗ+%ila?a|^HQ?)2In;);#Ő"7a$ۨv3ٽK3Ra+ir1|;]'ƙ 7Cutx[~ <{'NlbW sʹGq $@Fb;(3REKK=/L* ]j~6Tz|>w/6M}t# kY9UQN.v[xTu*2'T_d]ܝ!Y`m {/Ӥv*5d19m8V$W :pVJwVI`n+ 촪xc߰uw sf}sF~XޘP'!cKֺ^4t+v f}5Vgk@(w-٦M6)2X6s.jE& n.q#hwS畿4΍>+ F)#䍜o5ڻ""W7f*]w"HFJ.-{U;Q,:)tӚvΦoԁݜ%+?u95V^] - \+A Н5/EGB`d &X]W 45>RoglytєT)'@O;[T f>ğdRg̞:ްڱp'=E9ifd.hS _NoԓouO^Es 2َOcʩ=wjן'*P^e! dU{v AR"_7`/Or|֛bܲNV?Q˟H39K?:('=wdlWYyi<'?i<I|ѿצ)_[&*-yjL+'ͻqF9?Ԡb坕:A:wi/;'?7ו)ߑGʹNQ>BƳo4ά#:{GG~y+*N>im|Ed;@`Џ>qzO ]8erpuvv/>_@"QwJ T~DmI'l`m[p'VxB-]aхnGʄVF"q= {F*N%{ό&>7\<@ϠMqOU).bשǤ6zN9۩Umv#/VRV;2_wF" ѸIxaID?My+Ce񟗾lUq+w?9. I֜DٌQ~KonoQd _uQI|SOrݕko^__g+e}GWo~߉-^V'6v'[u]_I%NhXvWkKuˬ-:qb^}çrI7 34n?gl&8ΏRe ^E=XhűS Og\5sxc4MB襀.5\Ulj6"`?/7ONhj2s~+%dHZϲ"@~Mdv,}U>NwR hz.~RNBplVܟQuB*L4uf ݣ~MEU?9j9^QFg2F1L#0@4c0nqX-WoV)L.gPRgi;{Si(?i1O]$6+C ~_HJG)WZ8! oSoG{Z~rH2cD]1*"+ө*k&Oվzr?\$ldRiOhX3[l>{qTR_QyW5}+s>o6mc32zk7|͹*)32 C%`H& +7^"2̖ڃED͓L8(Oih765_v-VW~_5$W^CEwn] {)Ŋ{;I&doܩ?%Y>bzL߭kZѻ=m yZL;rKFn{Y|1nSoirѵu*?j &Q_L\Iӿru4|dW?~'qR9}xO@uq 8Yq{$?2^K%ޖc:}I';Z?oIoEAqjį\h$*m0ꙅM^9s7ZSxKuh%ƬP*~f`\bN]vg=rLTXn)AVcXD.xNK\N(&uÝFV>0Ԙwˏ=O4q"tNvKH&4kz' I;WnIOur=mk$dB9&43 Z-W/u^*M3o_Ru#٬nƬf`s;_K(k^^Ęʹ"K턏- .rޏ 6%B@ U[5Кs<z-Fn|#% t6OߖР>vu=/BNWH{30R?{Gqw$YnbJB/1`K6ؒ$@()$C ZؒP-XML S(6ƒO,_ٽٝ{t7-7HoJhRx)T>sˋ~UVx=}[{4Ya1R`a#>JGO{vk.: ʇ[3A_84afW{_oo'sV2xˤݠ|D6PP8 j3 zIZzr' j'#:Q 0vM3j B epu1h*\SRm?s 쳼|Y~ tM^A;iqU:8[1f *q ֕ KџwQ."c<#=7޽]6Ra9z%@UY=j?);#mezxf:kq ciq23 0̀ XJ8N>T xY[Uµa}Ӎ{`1K݃m{kk*ZG6OyFg6>OI,4c-i={axɎKd0hbdL"'B_֔gi/O򩜩.3GILц&=`(Ğh6hJ;|%3py|CExjHn!VX#)/7!z}Å#,bE+cI-MkЛqSEkpBs$RBڻi 0@a3F3Rހv:1!doL>RnϲF΁qw%J-Tt 85Q^J90|L wp]1=z6ʗPrA7\16/t ]~! `2 ,EoY|?RkxV. & ї@'hL{7?@dRTA>$C2BG sT,V7wA޾Y>GdO^aР2{N٠;maA)Ω=mv9Q=-5*<nT?cx*c{O#0::9XJ&n`/Qށo!-}G;TR棥e0h9!m啶%@_T 33 KHtl4 HIF  Ak]n`GKkVSN pUQyj0'.(]ZaUwb/4{sq-0!g!T|:&xo첉QP dHW{H[e{HV^N׎V鸿b5yf5 0~,LȦ#AYޏR&l}}< G# [mwz> \GlV|X)Z>@[wu|ăփ >yС7j}͍>PMM ()-`Xdu.GXa #*+|e`aow0 ّO^ 0@Thr $-yK>+l`j{#4`xc ,Lz.$)mxQWÝtti2zMWe|.bZ$(dZF|\/ >x~8/As{_6(|M7Qo;m>6egx-Q WafИF6fиw g^N:L@8ґolwSu`0P^2:_K` 80c#fa7?|O>yE0=3d(z2Y܆ pmI)tNup߮4D, .3\#Ô]3ȕ;Qz( ŧ9=4{Ʃ"nA% d0<#H2TqUpkѶkj`&";zyݬ GNO H6cQ?sHy]!vOØ( ^6f@ 3`0N9e %hE ,9gZZ-x|ֳW|JBFJy)+ɭdTՄzpS0IUB;({??"NE=ZEaϰi3IOXL RB k24yge7+n>ͧiuяGi <]5!# dDkgy!OJ=3U_ %]3$cJ1wsU?V%\WߞH'zle嵉&m130ǀk^U4  TB/If```s=`dA! *R MKKhQ75PF#d,(oK)T k;ẁo `2&i'}_G1j:Xm4k ]Z2*\@p]s%鸉=95/ɹ6Wtԗ ȴA^ggdtyg}c9 NCt;/9( hMĻp$*쒡-X6CY<4؎< @+O"<3P&~ :; k) | "p*nX|#g;Ͱ8f $UÒ5;o<@ܼefБ,]9)2 VWya.O:.-mwK˺Yg `nG"Zhd1݂ ЃO1b_K1T.|=4.LGië1Jvv *n߼3 ye*`*$ wBz~!(@ƅA94z#qSPOF*p? /O! 9MGk2 3KAÂ0 m^T<."[Jkc[}~\Y][Z7RQ,qDL*9p_> @[,k$w0R]I(1"i%FI!օ`1@9C^t 7TW눍1E܈ jôs$dv]^`nD^AtU"|߂1֙BnXI;)j YGH~~ yy7 yQU8̪ka%/r8D6[v3+u\ DhC9tTym%G+=#>RBXӣR]%;Ĕ#@ٴĹ;s'"C:+ 0@xmH~֩:/?5WW^#6M0QOLv#neSqaص u>4SB>ktnck#Wa,}Da*-e#+|/v:N*5.$]5_d% G-T S6UB tb&c8k74^ . tQd{eFB ǁA HqSOUH}f/{)3d3fa;Efp]\ʜ 0mkU,}`c8|"mXJsPFdL"6PٓLܓ0vN"o>mPļ4l l_?o1];A3y4|HY»z c^ eGLM \ +Q:jZH\2D Cm;]cbÌJDŁT]]IG;'^9OW|+ `v3FitL-f(5Yaߎ[d-eYm(iޅP3Pgn4}2K^K7)e<1.%7I#"<8VFBX;-i:RK)ՠ!bgK #{2)oPi9ȘM* Fg~cd.oxl%%1ƫԿw1\ĠƳ'E 'Hf dla7d<38jof@E8IՓ ѵQ8IM:bcL&Pɵ푈3Tk:W; c7/lpu$R#,S\W߬ 7Q@;[ݜL\ϤHWvAkۑЀ{A)H! =׭(;DjZPDuB#/@sLF31yx12: ܼIp ؅C'_& 5IJ=) ˲oI,w_ gx:7Z$bJ[ȳ0am%f`Bd@5^AGq`6``mr& _ f 0![kKCš#5́L҄1:tV?͙p %PTod{Աo)}4y@81#r!0_ 3!BM9H3 "GEth.#R r@ɠώ xg9} <35exT4,A^MѕB& q46뽒WU|S<7{rjj)dM-Yt"i)Cs``f B 8;-EK FygQ^׀ABb~r~TEY]jzx% h^n Zꛁx\WЂ=n(. ejp?}sDr1D WbYou)x9(~vw{yCNE&! D/Mhݯ`{%9rC[iĿ\=4eF3} w2뚥ȉ@ u%"a]iW!D'f5vL3tƦx?شx r2zQj@C`flʧ7l/;uբ%^;kuƕGZo"~\fO1ӂ f #eB4q*$٠,LĎDak&YӡǴt 8|~K?A99j@^J~0}`dpwզٟƷ! G[֪"iЀ)ˆg}ESxWUƴ٠ؖEQV ~!G|p6h@#E<)CcsG&Uؠ3f"aaS^iT!eu 7YnNO2z.Y|e(3Ͻ3*)^NJQo-`j5LײFX:3 03 03P` q=57+.DǨb2&iA0J3( Jmux(MQJ3wVK GpQkM{r"> ]9BĢhEygU44?M'˭Rׇ|J+M НFn' êntlРUd:ptC0ՠGȉXܝ(Q.B_ÍN0Td'K>q gx0{?aVұuF)Nff IkkFǚ+n3@ ]ұg*wR]36fȇBhG/ ]ԒuwB}i@4x ^9љS49D, 筸^5JmF)7Mz3@=`8 "}s-P}e|ԊB_9A1谭4IGL܃HmX GiZE=6hpAEl|"Zd)8,vԶF5aj^hb{M (Z9bp`k-v(NdJ+@IDATpX-r]Ȱf`f0v5nd}9yAg̀+:B&.J . h&iabLо#4`OBTjpP{B8/Z{WG)N;1G#>(7E84i.טq{?|P 0騋ٙ.\1ۜ.Ӏt* Agej>8+mK fADGNYzTFrK0rx߷b֛+͏ PHFO{vk)c9v!w)YbvےwBm*J0f0p؀0::Zxe?ihw k疁bRCa6hp31BnҪixMCl &_r8r(@v@g\cymC_B1P,4Ҡty. *V .2EѾEP`߃X6j c֗TҚcZ>Kǝe{G~ћ lР ƠU~%W+P{Y/@ #|ĂBr5tyYm+¶fbkHWrru$v$ql 8kg  LeV7 kFU 3Һ:Tk☁PywZa"JڱÁ0LÄPH XvPon^AyF $tljNøp Q. t{2j"7٦p$?~Pt٠]vrWt]p?zyݷđ V"7?!/䟞)Ye<'caXk-'&ɂM5"> }k,",[JߖMR8:*1gun4IQ@$8YMXG.8>$Fnrckkw,`0t^&_#15k;).u+br``Tm{dh-y"-5;xř-d,jV0;[KA0-Ȓ }ibԔM%ˤ}ڊag@_q@<(.O1!c!mopF6 $dd"DiFz^'f@4ؠT4\73qK4}7ͧ7<7Lc^6 G晢\nѥB[;x q#!{wy Gb):eY}:P#YTRIczmDRmx3܇RH~쮃? _Ep^23 0@ M7 6 Fy>Xjw|a 3`dp(zxJ>n˨`2I[1;#n^h} 𧜜oC DghQ]?pYVbd:!\qroH,=;]s&Id^r8.ߒC(VQ fR̠㗖FLؠAAOA5) + p:Eg X8r.:qBb(|_~Ht~_$WNl[GZB`ónIsݶT`O ӄy+%M] ` z##]T|H(J03 0@JZk*wg0z6-,x9 MX3Gb<̀ `QL SBY1_+l'4ЍFi׫p '7c`NAvPS%n5Fk`X~3ƼKR xIߖa{K~oFf.^sȉ2=Yd.#c2jVvHldS Ͷ#j8 ͥ'0 OY0Zߵ/ek,+-dggWVd5<>$^׍ B.[c-c1izw8Kg8NFWs\Ӿ)B c%")K8`uP.YofKQX 03 0@ bK] *ZώW, @wҘF=rdba`dC8.^: `7C•%s976й ܕ{#)SAo(O Wq_c882лIG+ 4/Z*KKWr2dCgZg$`!*)oºq ^b2f`f@35 |5CN #7ɰ^=?B d tf (pԄl8暪afLvW#x Z| w >c5.wؑC=._2jf+dH3"RO p:/D5fZWA;Cң&~smC-P4Z _l!bp&rACEY"@43r.3$š⛇|d3 0@ H )8 x.>`N9'M(h.p 5^c\.ZrIU.Jrf r `aL~-bx_Gt(:TH迓LA\3ltq{|gy#D4fLWTAC~s#ɏ:̱nR1 xƌm񱨗ܿx)G*HjE[s4UTtOo&AHd@[)n  Xt`eE#ˀSұ$ʱb̀{h`vo"I J90~1PVV1[Y~r% `RY\Ac.}{OV+FPAc;3rZ5K bpc9}IEJ!!g/ƀ!0i7z+hbAC77M?J^ߒWjm&WxgsY݃MYʘʠ{i!4'V-+HM<[P t]VقҜe,~s`fp'(4aѭ. eq6/ČNYTb!p̀ `"vB$-ߦ;HF\v'}f1JCev>Rθn.8YoiE{owi T~ RrW*H5XJ q0UMt5# ˑs9 ̜٠!'ڲW*^$%%8Ԑbg@Hkׄ5`f` ̛\]ٴ[ ᔣɼz7 u' ʤp(_ze33З|;<$^4C q̀! `|%&KU-@t`=[RHUȱ^(ՠk OC7 v~}1K9CdĊ w< ;FUMeq_N_G(VU]V1v>Ͳq1,eLfE=W7f%.?#s`hkU1"f`fPɀ-U7U6,.,Eaϖz'XMՋqa`=%HCniMCWe"&u%ePn"a:ݏdqPA=|hŻr)t"s"_CB5DJ]G557p ɁSkyԍjULou2_XEsȿ;K٠AQC$g0:Q,`rd2k4\`f` f`3Pa;P ]X>i-g=_WR )Jh}u](m,ncs$piG[ovvCH 7{ٝB'/IoCT4|R^ :\kC3DnyCąKLDյI-+n6tMҵIרٚ0zf` '7+]Ǝ)daa-ӒVLo543P p+4员=:s5y}rA:i23ZL8:e*<;:ݡ^Q*Mn KFEjv|w=4ftgGN6޶ݐ_R,jq?o2&gӵ[@2@5pw ڠlW#< hk͜js%f`=է<ң7DZS0 h-)?00DQBMRHyFkM;b}Ӌ1*d/MZ!,׷1.5>ɠ!l-2Pf@hKc]ӻo.H2* uw6߲ 2_Ai g \iVkuuFf|4bà t?c"`f`|`dGbuWM `!1`n>@asM]a4m2&3_z?^Rh(IK;X,3O0nR.}5#\d X-Z{Vh"4h'si?_RKe, 8v]Y r63uߋ &W"Kc4b5BU(Qjg]0zڬhS۸/7LO5e Ɂ`rdhx_s ]ZYU=U{ȟmv~zLS4b:0V#ܿ@R#0kbם6;YࣟhA'?Dl䇐2^HsRM,!LؠG2b>īڶ}:;dWfP@']stRf`fdkZ+2Yodž%h@OTV.߅%f-3> .+5MABˀaz'8m>6߈ЋiqQPh-4£+7]{.U 4z縣-k)А" ]kM6dde$c2.QQIJAC5{%p{)9`c`1⎧k?,`f`Ȁw:IQugUprncab<@T0ȿJ3}~܁aC] D9y%cw삈t!" ]iQd*2vjͨJVA S1_XP C+ #0hU8vXk j`g o,K~YD̀2hX&X03 03 DDžc RDX֏[èi# ]P%E0.zs_-1JFL Т.  >8=nąjtˈcP2d̰Eق/> !.ӄ 2Xy~&xe 05y}zyIn| S1caQv'g $Z=pF'E¢פGX,jWR]5 ^ђTE8`rdהmɭBˁ`f` 4OѲ]K+`z !gTPiQ߾X>NLkE73LnM٨M~da1` wF?@H#G5"&*ndo#A*Ik(c}O:C Azh ׫P 2h0댒a,T=hK y5 Y c-fWW>8b GZ_֬13 0.f ]g1LIPPb7?岬=٭j+Y83 egHxobHcafNlu BX00Hw~KI~݋@q.!˓ώ4vB:) -&>1Af8f=4%Hqo.ؠ![jo",hv|lӘR$Ue9aY5f-ı'}cJG,7~%b+x޸c3 @K| IaMi AR>qBK^ GNcۍZI|ZOzTII3+(v9 BUwa1T!,y Be0o;3ڥ{byc1&ڝʫÙS4D6 Ӂiu('ߌ8U +1L[ԟcϭQVDu $iX -Ru_3HKY_BL9% 5EcB!5~{hx0u3bzpP_xl(A JhF(4|EO'V-,03 b@0 df`Q-~d&cKF5i&b/m< _蘁h1I8İ7|vډ^+)OFG"L:A<q*Ǩ"-R-ep<Zgf%c.7FWozT-eF*d9h3Bmr3ș’lg#) 03 0!3ZSp`MY2Bl^1BT<$iAHQ^^p`$30~T5duF>5$q"-l;sxF;bɨU"ڤT<Ɉ5d>@6TݎK4?vtY`qi;+BgAaZ$J~АM?=4蝁=$=ksjqmV(bΈq:!eRU8F AĪ\pf kb#NnzLdudf`f@3'U޸R,? /Oi\Q^pc!(:zg@ }ﵸ3 ^2򩮃AI(qf`&oc$_C1]!,X%#~@NHYfE͇ȣNfd+3䧇6hH3ܓ9; 1 W٠!OMX6^<Hql-'\X:qn&0V 03 0F20?_Z]yT(STXbq$66>W@Y]㒃jg 0m9 '<3f ^ g A@>t'c!CDw o* Ic {hHO<Б?zO <4?6hj6hdkMӶo<3IJf$h9iwR](]&g3 03-d,`W-1ƴ;k3m˞*Әf@ L~Z$7,T.?x?Q,~ӧT4=r>jfE Y)1HiC> C̰-D D+40ؠGgO0RXGBG>fQ̀ HM4{__`f` ƖTW ވHgNsPŀ'S%ֶ̀ecւ31p) A!Kb~6os?S0ʝn3!Ao`bݎkT5ߴgU he0f ErZkň##Rt|'9aQ0C1 Tu_3n`)0rNҒS=`q̀. Ecj+<{eХ[3 03 bF U’G`HK ZҤ\)X_l(o8W,`2vd5L[H]vDgbkF},)dq$E(@Т$21CP|D.6] klGȉԤ:s+칖>T44Q7$x e^d-?XvqRZlI',+L`)iX 03\<0@vZ{ 2n`-!Ąچ nsb\1lHwDLZ| 00hĦ}nAKĝo"Ң9M@$'4Hߴ"UGN9=}tOrE"4W,_Wtkw ~ 5Y bhW/,{*˽",H@%īVsnɕsSDf`Peu? qn0G"=H!3 ^k doBїd4`2`/@,4`ž&PO?lBb+рd:0&lf'1ԝ ٪<4o-0hXG&HQ( ˁOr[bѽ7'{)Ϫi ^A|(rr-X^;pw; f@siY4f`a? 9ᰶɁП暪zقв^yq>koa#w2fz䑵ٟGu `2C,tތkmP кEuJa5j-p0]c qUm߂xti-µ2-2:+t d!5~xh znT761U4*iHK kZ ²^@+>N ,51Jcybd 3 0ÀHCXC3+ 2wUO`PJ{/3ڠΦ;. 0WB ;z<؀>^ C#1 "` ؖxf PpO1a)<?@pc3 03 )N^Z^׆ErsZ@D7/ V~0XYm㫖-G~d3{1bjhGdt$n61LXO#^{Ź t5<=2ꡝg#q&\0$KRekJnɞRoTZ* K= 5ACU0 #znNxW}8kc֔)tU:0P0 aY֚ߴơ'c;9W sXQf`f0qrOޙ#')M[ xc@X{z'Tboqif3X[Q1AoAΨ'1 7ΎE %!@&/Ey,[V* /qc,w{N\K *Y\?t*c6hsAy\v]xx?$5&3OY?1i,8ؒ@ngh1f pO^v.eP6hк3 03 db`Ή䯷R^p{];lpŤ>e*`30 i6\Slh afp a@`G׀}2jP _":0hBh6鹝bŸ*Z:vKE*6_ 7xܪݩ>mW2Ǵa5$Z1^ x>Nrotmbv oT\t&' : aA_#4hl3˜,] V`f`b9Օ)::b@Ms3@h QuƇf ,=UpAEt#H Vg٘!c1@XQݟt yMs)3UxEN~ J! 8@> BMAYA=}<Vgpx!èĶ/ߞ7쳵u3eJ׀] 8\SaS@o KZkЌR:fjl+Xt Gy*sz>hܔDQn4/k֚dX3 03 (c`Nr^pY֨D#~GP27}F5n@eږgEYI֍ЄCBk h\#O`# bH$!T6+n'* lA&Fxh1`݁+ ]^6N,|~7O38HڲO__e(s3J4%gZ[c4o]/ 3U-DVW\n/]I̿5Њf+'aShm̠;tmCU`ec;13شɜ 0y0ZSQtUr`1#`s\``uJ7|.z_nG.P,px+3?evXdDxij#. Ar\ЮMr)BU _*APF=4g'ӷ`\E67=Vu_3HYBp|)N +Zƒ172)8.IRDl0-[fmaM/y]hRic:if谇z0nf`f``(oG=D{Ս+ɥ>)P o*PYmf (о #AИyXwp[cccѳYĠ76_5~c^}gu}졡s7DZ\\.A6hPG|_S~& {'=⩧i3xEvk}+Gˉcg98r`:v/,+hew^H}L}shW>4Xc9]L"gc-GbpBg|`0NƄAlo5ڳԨ2CQ1~80̀"ȠAeRx ٪63vq3,5O)\变”kO+J¶S+=4|._y)l@a 1*h6@zAexa"_,;r9/6Y?"Ga?0qD &:^0(񇃶 Y{`@h|vMk*"8pڌmXY< :C3 090+ւ*29Օӕ6™g5wx*hE`OKPp@t`};E_v_K2irF#ae0:}*@nc) aM104C'jQ0*h !b}6HKC6쀱v,6{#g0ܔUN~xp΃2{!VDQ YԐ/xfmY[b٦>9j tѵgf`17" h@suZcPz1 +Z+.^R%Iljz8ȋL@6נTz%)NcSdqR p9H>1ȅ xH 87De/ r ;fsiX6杁hPe^]{xXЇ6hCگp*-%}AvMYD6F X]-eT*5TkDpM}WP_t&'RPQ_MR چJd]ta+י 3 03 0~1 el8/y~O1~b9y0 ?T^F_2iAU˦5v ~dr+4cݲ&!+ţߤ/9A;-<'o{@H*?)ikJ *VU>BKsy9ӽ0EH)bU]oB@8ȉGDŽUY^8]t>>/~ >i5J4K@rܔDQ^Vg0)b/ ΅g <ň/aV(6k;AE+C?Yt[1hq8!! ũp3 0@X|Ϗ\B3lch37{C>l<$-,krfLy佖G\\$+ף㋶1_؄90!;?C d/w 6hțuQ郪ȓ} |VQSvQC߯x].G^@_rCZ7.2hx?+Z uдe'7bH sSBa-`:rK-uJ +~*yC*hsEnc!Նψ|,Z4qױQX?c~") ֖` h>jay]MSJ,ڥT:GRaRO3[r&G1:nYF07:@뗪e4 iɘx۲~MΡ/0|s)7{\}bК5EK6.k#Hdzu1;__pV"oBvĜ5۲VZ:W|j: DӬ3v| 03Px bJsuՔ(h^V78<o}X1Hy&dEO33¹MǒۖP:Ld cӔ5‚{Pa0}M#DHJq6c cKScF+K˗ci`0[qץt]2ςwz&5 )Y@IDAT޸ʣXϪ(uA4CףCCTEmMTIsv(S\.EϥRuposT=U?v0߃I!ۗX'N.z ah 6Ho4t40d(Zګ}|=h*Dq`f`2zƵ-w>ya\Ɂ`Ԗ9m ˲WζsN9r q `Bm?@ `bw(KsXOVEh 3Sϐȋ穘Ipyi&~K[/2}Te})u2K/q.XWZ!<4jA("}R*чw}a_{׊d{2XKk u=pl6*k,|`61346hаhf- \P+. NqI>-O8`]g@cg2Lc6q4允dfP@su/M$j=V6-A;/e ?.u Zep3 GOn͍}_8w/U"c*  #ȅ,ۥL&ȠZ6hnFg?3 0̀! H9Cg0kGx ;1@ZTWNO"%^aN] .zU"<'z q\t{&9+4hX8w)g !93"*,j\9"2j1zi o<~sEJy/ԱTtL: tGSxa)SH ^6[kwItXO3U$R|Qu_ ̠~p$̕:(ˑ7JwM1\q`a,]4(Df`O wFκS%ŅG63D0kse`T}z̀N `d3L+IJ~uG9ːu rV0b1NOJv1bqy8g waq T^{LX\#,)n;3#Afi%ڿ*@MU5R$[nKg Vɯt3H܆dz92AgPآ7W@{h^4`lL,4(vCQW~QZy]#cFJ? 801@c(U4v^M:i bfpbꮯ-%sT]%1{#gcǹ,VIfx~ }ja~cq}~CȆ_4hoG|yzK<ґ]Q߈#|I nUָ)2 lĸܠBfef,% KJb[joc7|&7nYs63qw%Ji,0.Nc(E\rQf`O e4mT)£j7Xh.OQ\`]&3fi=p ˔odm3%GC"z>AÞ- J؏oW <4g;@_:j"SŹw/f*yӠ >i.o)_"ˏ$՛9t/d|D^CP p ,;xVm|4*j0EwE}Ҡo/M){nH 3F6hЦĦBX$`= G5> D)hl~(q@y}mt{4$ 03`(K.u9q*}ƪb@hLO uq Ӯ'ȂgYp7ZXz竌%8/R3U5+3h=ORW^̐. 11}D^(zgU뱉(WeР3tU/PJ.tLN:C-gH UXW""klDY3N'4hLrqiWNv$'bF 03:R'x!#?˧7l'{"4S.bf@iG5ǶV݆_a}j/ID:w}T,eoà&^P?)N1س&:.BɋG8ݑIjQџ3 Owj$,[J #Y=IW=_<Ҡ貥G|&>`˻ Q v:atGr7? /68Z]Zvb!w&pRTPT[L.".j4uXD#јc!/];*{xE S`޲{NLwO̯>N%Ƞn3@WR ̽Zrw]}NƗ~ HX۝_a׆v ^m9jch3q/ţlơn_bde >^:*_}JJ k$X?# yUO6J[,C$@%`+Y\GG #w({Y7's 4.=v'/F A&T`$޺B+g\gLAXcf2Y4<0"?4=rUf'E(q"xE 7[!xUM|BCw&@uD:~ͱb[輬JuZ!IX_VO/j. &ӫr6bmk;¿j/c0zS*G zƆFik # Hwg T <\YR{bqE==HT3xгdQ{o9AFQlx6#dV?Gr},6BI)Zߚb^$ACȸ濆S"B`@?z&ИWR<ݦgƓCJi2)ү½ o_y#^W^;!?8ji y _rhpq~qp\ NڣdC."vCډ{0"":L+j҆%e5JWV+^7!C(/b8kPV!ji5B-戟|f6: p@ W2c&$rЅ?ڡatY Vץp7UkkjN<ϴw\2g@+thp@TduK%H  8фҧt2FdiA&(Kfv_yr]M=Ycę!^]TN㭴Sz^K{nC?ٯRΡ]x߁29V 7ƺ  2}&$Ы~ #dߟ^m7!ݡ+Gx7w"f C8>LjYА"bE1>(!/4}-UV[~VW#"_GaE bqP^Z{x~hŪޡ>T$:V[uǠs:kJ'y@$@$-Eh6 O XpAQXN&=ܸ}WD&w2Pր-/Sý=58)\[C׻860Nd!`*mjCt꧓ Ӂn`pQd)Urqh;\ OI ;vho!`g([h S6":E&y5 s'$ֻͷv*ڕ[?EV ]ƸmOA~]1d ׼rY_#Ye8ٞƋvJGQ>u3E25 ] {#t%?~yQVD7zBּ貊%JKBMWXƕb6nZG~ya:6r25ޕlTH!_b/(DEH%_Y^YK;u3+-- f5>[K&V7,Dz:t[8N {©t]M]Б<.Mކ4bGU2ށo' fྜ6)}e'^#ޏaߚ@|%`—HA%"4[W0WO+< B7N"욅tO󮗒>S&P!'EzR* w~$ꊓ!7j4qD.oH6$?ftp;Uh3p{OA̴]SQJ|~K @9~5 3ߏ' #9weU`]: >WjnuH~R$0ocP ksVa5J>K!K ϒ tK@k-'I %EExĠaΛJ]Rp5'GaUCg8g򺀮xa|ŧYAigV;4*]G=Ү?4˄ #K!2LfK%3mG2x蹹 9':v-wQ!PB6VI'znhSIy>x=l`mw{(KPyB̻nG~巷c#FthNM-ЀvcdqdC{\:Z=ΖcQf@2nY6{GX ]-cE{Q[-plY箛u&,*:O;OcCS4,x7Ҿ:ղ՞pX}R:`Qޙ߷xw iHHGvhe٩LjH$ЅߌV$tVXܫ ,*+- #MSmn3nyvs ekQ&` $Pb \38 ^2Ifܤ5 A/fXvr~2GZ%7v[7z΀ v` {;(88ɬ^D]L2-N֕]Ovƍ%e 'ٸ{4>UCߟ囌<߁xV|K)=eN/d#a= ^6EiO=3HYЀv`A=_FnYU u'-),SC&)-yOajprT8^h}Ê=}gV. DcU6G4dN1#7.;be [u ع# ʱ{K.0X\Gegs:̫--Z h; $Je˭@샖m9j'UPVyikeG(,R:x +b{gLՍzC [#tvRqA=Y!] 6;:G'\S`Cғ1 vkI|ݱ_OBa0rjN*<%:: 2YȌԓ<$7Hd/$[LB^:\ˎ: Z Ȍg=wA֏qÕ^ڦOs-E~:-XLy IXV?$?EYtaiJU -mwxt.xF :p*B\F[O2KkJK0_QP8fk[z3qlcFZ~z[W͠R9ڜڎi $@$@ (}vH2 &x{j~џÏpt{Me9eOWGA/eit cT.eS9Аe`'v2> +N <`f+(Ɵ@vN?D\S,fJAy_ }M ]fYc_)*}bgB#QIfJЌH'@N"3lA|= A?4B\'OL謷􁫷$nH4ɖN#v&eYx)rǫ22NC#BtB])xa"\/R^jxT^:4\w 0v񌋒u J7PSv562IKY6c kHN*,s $a㗍/uղ D][v%o:Vv/8tՊZۢm#2mBBCm_F»OYxe6w3 $A`~r]ə|!W񊶋/%[H{,+}ΰ0t‡mX,dƒ]z1u2A }6psbAuYהNx- Tl.Qˡ4`t#%/BrTt:ޘdt&t94ݧBƂHG@((_S[~6Ӗ{V̦YAӒPRݡS5<|Iz90Ath*1UZ!miQb_F}ZS3K]G(W7e{-Ad`M$A%:ףM}/؝Pv%ӨQE($'?$Ӧ=F0}ڕa|>B'/% seDtwoi}K;e+Xq,,.ZNlӼ]z30AK.T'gG:Hָ6@oQJAEVy[eo W@dxAj"f<MO5k/vG{ND\qw7✂{|f:'Q%K޸ O^  H[6kTH&P.׹F+I岚;9!xpjSd5=}MbqOu[ĔYZ9T$a 2aN!&PB>EA~ 5Ő7dHZ6qfhB:̺yU) ضA禕&uiz?0A$P9H ANJΎL sfX8GM9NfKU)!NE_={ʥo~C*d@D1xZo]' 2&+X^CV:4,S/[[ڣ$VJ[6B ~y[s'4 R˅M!0ÁB=@@pJMH}&y ȌϒOJݑ,t r%fe)!%i ~؎NexRd(8q~zr'd:L1ѐQ#!S!CR R׿HNK {NCOYF;^ "̍1 $**0::TO`ꭃH;݂{LBCd)QåG[iKGM}O[> CzUD/04p smT3鴗+4ߡmPgVq/ĩۈ{$ ڹthJ}ԛAkoh6VbI$@x#г 5x=$f=ʠaG'  DV_x"Kl˒lATZd _H5# R$287B^EzPN*6$%i'օ| ꭋ֩&R3Ao@> r>D;ASVih3D|Y6Smc~"i$1#w s 9WhN.9r*_ wa'MD*AwʌY #~|w$ yQ4F$@$P*>S,!P;WYbj暩ԫʟ2J'HK0z=ʚ%:ʞfǒ/6lJr^[e#nك5 ' OPw%IL/MD-N&*':ᾖ9TVo!+!^Bt)da'AfYξt9]qXo]޺h-S—MURRЦr+ G!![C;!n#Y%/ȝ NFPGtfpJlc<dl> e\ y{!ByӐ^;c,Ihj$# 9MiDMHH jJ'HGwy-Lgg}o/׆ 7d46鏴maY%R \:1=,툋2#NtJXtvL r_] sy<]602Gy&R!\6a顃T'0#UezX*v4ȵj)eiS ~uirH=bLlt!䗐?AyR!2CvH)$gM#cHz;+dyQ7Y)cVfh3.B͉Vr6($H+IiiՂ @3%qteXR l\YyN0jb4^#tcTCʳvMFxq}BB7e^ }2>e(ԛ䑱&n\$\M񙍡F:?bQz-%9oihȣAV -)gLWP@qM> oS^B OCvsNm zlZ?MB6o 1W!Iil`u@[;a,2;mMz_蘍AD&4 Xlw,kG|Sz$-ڎQF:4]^n_I[K:'- TrU&?!g/몖%ӻ,jO,]V9#? X([_V 6ϳ[@GϬܢ k`x:B[ O/LJ| y6ӈITM%Fsa߿R$҂`+d=l'qf#c"g~)8mT!נΌpm֞z렵 ̈́'mI}8wJ}OvCɦK._;r]"M(NZsRQJ9 xBYڜ=+ c+50&>x~2":>D`rVl[\11[!Wi ;^vpjbΕgæ'?&Zҍ*q1UnV1amzۤuzҠ29 m& eR$tw2{˕LӟɇP7 uaWy _/YJENܗ󣐗N9l’e2HU-mI_,mKژy33  AIMBYQ53Ck5mDy5tN:yt$d L*v zjԣ/k&Y0Rp _" 6t#aGȎ*tfH/> r_L*+r 9 Р<"l6m73teYV M΀Dt֙l?$d[>|~ N}Bx/D.-p cl Zg:4tlߦBK HiKҦm%qIH%0֕-175~~xCcm}2?~Zfgv1h$ObDiH~wvmApkGrlOOθgpeȬclKq]đ Ȋ8y9֎avB[VƈfiyW3tVr."33=,r#ݐòނYo4G_o2+ܫ!0[d qjb,]a?!n3)$ H}m IP\EVz񵜚Gd[S˥Kjy.ǡ;>#CO7`ZDiL"ϿB~Q+p̐Cz(V ߪa _#G9?F9)5JeLLf,׺. N`^FDͤbM{(,ښIDAT-R$\1k#-|q 4cU%u%ƍEFϬ\)&67͸p}"ʚÂ~+:݊x&"i#![xW19Ր!# =x asQrNuXLH HLg[uԕ/zKu=!N 7H/3@G`*cR@x(ď<""G,#> K  բ=u`>%*rԏ2@ kN[ ˫ lY?jzЈH^ < eVԃHH y>*kk :qP%mBZHٳw/YqhԶ6#W[Fme~2@i!0Q~jk(hmh|&$ߔ5Y>黒d鴗 d@V]xU`:e0Df){q;|l<ٖb4$Є ކȻkd[OVш2cy_5 /G>w/dk 3 z&O㞸mM w(d[F>r` m/|CĹAV+GH~D?(+a`h{8yƻEh?D W@.&BB8LE!EU5Dj,'fMA'f)f$\Z5^ԵN*Z\C2CsАH+S |cu1Aa'=::cmWV>pހ{_ډWhć*vjERĺrTc_2ܰOźQ  H5ë@B 2x G`G8'B20 )@]l "u0286P~}7ҏV He7$;Ի8)@d}d[LkBa9>E@r.@cw8l ٦-qNg܊Nmu Ζ|NZ)uɻA9tik?I-}◐EW UPGMdH<\ PP^;jec0%eB̂ nN=뿵BAn@СJ C+]Ϥpf.Ԗ33O Cmla`lLoK}yaR+ٷn#uESdpKCu7yVEܣ/=qֶa5 283KqjNwqdKW둵v'YKƐpo桾šY zUW2v z#iZPfbkvhL6\gN׭_k{[\݈~H GZM,oA#om0FV*jK %[BPwrR:I_'/&⼿ Vn} jds=@gnԉ8qaO[W#; |ⲏ]DpsJtGΘqv=Y[Zk9s<-k niXałiљwm'JòtρOT o`."e;x҈ ]eoЋ*K;2@U E²_DZc%5 GQ[?:?\Rfu@X7wf:(Oy˫&ՅLg ~-"d3zz{G-Kѷ-Goޞ` xDmUS;zfsCdLsAԽӋEk̀U5Fƫ^ֻfvE2clF²%cyރF!\kӫj`Y5^Xվ(gq3GͤeU8mߣ]}O}l{yunvk5㠎aep5+B -1}s%4GC}J N3"_@]H$@$@$@$@$@YI@cA/ڿl5P 8fOP"+ Y]A̙HH S `?:ۆݰޝoE`)XGro3TZC$@$@$@$@$@$@$@$@$@$@$@$@$@CCrܲ#tm兾HNmm*`mWG쀑ҋuK[YBk"V-3$] @&CC&֪O6F,{_ u7UTɇC7I%Qz֌B e5Xmpx[[7m۵ *HHHHHHHHHHHHHH :4ʂU}E7ϱrvP*Vpfloi5Xm!C22?ΫXe)e>SiV}By+Eu͂gHHHHHHHHHHHHHH%@D1~RN(/-Z96;׶׮Q7D+UQ{-[ ,[ k+[\ Cm|!lzSڨ^2clR 7ihZ6ӯre_^~/>G6/$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$2IENDB`flask-session-0.8.0/docs/_static/logo/logo-dark.png000066400000000000000000001452111460047617000222140ustar00rootroot00000000000000PNG  IHDR,%sRGBeXIfMM*V^(1fi|,,Pixelmator Pro 3.5.6,2024:02:11 20:18:01VSw] pHYs.#.#x?viTXtXML:com.adobe.xmp 3000000/10000 3000000/10000 2 1 300 1770 2024-02-11T20:52:49+10:00 2024-02-11T20:18:01+10:00 Pixelmator Pro 3.5.6 @IDATxewRA" %ZrHKhX@D,E@ *BrGEjr E@PiқԴp;3;<3;>S*Q @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ?,&U @ @ @PnKݒ @ @ @ 4H@ɹ$HԠ:C @ @ @(1?Izm@ @ @ 4@@Iђw-;7؀JB @ @ @(17F`uɐZm@ 5!@ @ +K U$+2z]O޶ #oy׫z@"йzY _yv @& @ P,al%[I2TTiI)P@hP٤  P:X~&6vJ\ >@ @@ hPoIE0F?9g 9rf>?@@t._Tv+W:wW!@ jwElN5@ @hF̳+7l'^2B5-iD2[<7I_w @h:~Z^+Y7@̨ * @ @ItH^[ABĒ@@ |-Ir` e1@ @ o4j|>Hf5KyQIb3 Y"Y8!4[驒BDlEsk!Pj QW @ 4+ - `՛ z%n̢L| P\:o~%gˆ){ԅ @ @ʒ%I(xEO,+ @NйkIɹ^I `F]:P%0G^~^og\# B_*}•tsڸ-]? `4Rj~GrdR{;/4S KV-wqfGlO3@ @ 4 KI.S*!IQկK oJM@@:t~ZG%kDMҙH  x ' @ 䂀(g.9@2$d/*M7 GKINSJ4͢e:h@ Q76A @(2 $YHBR5I-i7^bI<  @ 5:$9C/35  # @ Рjln18W؀[5[Xdy9m[Os7Kb`NXv t_Su(]zϪOԣ  D @.4@ @ }Q>_ YASI<YdWK<)go̓ @#f%Ib&u7d@>G?% @ H4xg%vw}^.Rz* NT;&î_GK.rb$A@> ܸ$P @ Y*%at/%+)96NrSI:2_?Þ*eg@b'0)=8v+eοO 7uqE @ h,9W.\$Y(+6l] ʝ/y#dLO_b36캿eFmK  @ )v[>){ίIP?!@:@ @!p2Qb3”'Ty,En%J<`? _=LA@8țMric"iF@ @tK,ݷ)ȋJ,u,a',.%iߤzlR @9n):3һΧsҏZ@X@S&Fut]F~i93^f1 @ ЀJr&!]g\M.+^9zLcFyH0 @hZ%{һc$ 0&v᯽q2W:?~@ @tw*5Bs|Qt9(n1K9 E- @sP,/yQ @5.Q7{37!.@ @ 4X|Y6Iw~׸X_$-TyUm qRt-IwΗ1E  PD]k紅d˒-nb@ @%pfϤ[?d鄐mr_]1Ef&ZB]$;3ҍZ@{KK<@@r{['db@ @'dSYA̭C;CMѪV|!H1D @`m)64Ʀ<qUf7 "\Q]g[칓I\"NC @ v.N1kG J5;@NM?·6@H@fԍ蜺W6ѩ  @ nW#qЮpM]quH)sb҃@G輵665]:Lhh@ VQ:a~ZTIP@ @ 4Hܴta QkpRӤ""6@Ȝ%ұIH@Lr1no^ia^麘F  @ \Pn ;Ö5 ͂dce6]i@u ı+~U @ 5Q7l)$R;&0@ Irk3~]he}VmP!@U fڹa vV_55 @膝rTCt!Q@Kԭ-z%24 @ hpr[ :bu]Gj-l K l:1{m{>^7@IpnEDd @ o(Ϥ~}UC|4.B'v=jNչizT 87Tp@ @H1gPX~j='>@'%@DI@QN%FuL9QN@ @ M2l I`>eLQ PtÎi>֩n@p3K_ڳ|Yƅk @R!՘Y'Dj@tfT %Yg Ԩ.@ gf-6lȊJn @ @ ~C)nAytfPn gR  U%#IU!f@9$̌JtS @ 49c5 dIJugT=AL_+ @ n:/}\:wD͢CJ pfF畮)WB @ @\+Ձ&k]$@9#@=@!e58–[d3t`- w wK< @ t'c uɘ]V#R  ~W4C Fu#'N9`\  @@GiTs⚯l@%"mI҉@ 8q敽v)xw @ Pp1>+NT[.@?ԣ  @+ Ϛm&m!䄀M@ @Ph1+:K-Z'G:u @h~,!+9نrE D]kJ~i\QY@ @T.ڕbW4uEQ{j^) \dbbP @QHX( @ ;I$vVnO3SĞdϢ;WO+ @@bl6 @'DnyNof͵ZqY @ "`F]{ @ <H"Qg7gnGi]$]Ա@ d+{w  @@lb E- @ F dk4C @?B %IH7j!@ @<xK%@ 49Y>LrV6P @ @ZT}xjW@ @U,Qe{\Ӭ_l3R@ @h.y{Nl\ @ &%:CP/ @ @.j?[^|1ߏv WlecϭS @҉:f]YuH+@ @D=?xVr}c9M @hr`ƟKoJkG>_zg|ۘ`  !Fnepg vC @Hi^!~i@Ag2k~}<}w\ͼuIKYUj'h%W7|~=lB<iYu7iVc, @2#@. zttiB]@y!5{+/99B֎G\¥r) gvto{ȴqm{o@x=+dݜlb @` n?$G$q%U-k畯?o;?5D ڳ䞫,ak1~ױ|8]3Գ_im74C?# A3IN|>P @ @ ;$ꂲ~/hUA#y #6+&igCJRYSѶڟx{hJyi9w2F q}K`ޞ]A @$m]@l>{sR6iC =Wvk,gdW TmsWx}3-N P`iΨ3eeJm%0Ӷ]n$4@ @ K$ ^]cQ! -2CʽϘ{ Lsc\jvSV.UJhxe:,̭:l7ua@l˕R˞{u)YķLs @P I@*MKm  A핐tiΤGKWޟ{/srM!>(}Ŀ޴u>$ B@ h$̢T8Gvoڢ꧹EoM\"R߿_EEQl77}aqB8D`Ζ'^x}!p5 q\ߠsjy[3<3H!^ryZ]U*bLR6cuϿOp١n3 ]Eb߃e}T}ڳM^LL0* 1^N*Ke)mAiݳ;}bt?K䫀Y8i%kE[l%KJ4U47Kc^RrJ@"O2J)ɲ }G~𽨺_:3% mU};Aus^$7Hn_[Rqy-Ӷݸ^3$=^)  Q>B$0ri{gxt>8n+]X2Zk9o嗽%ZA6Q~ٟTV{rc&RM஌.9y J@ǧ%t>'жƪWVH|_2[:m@t]z$ ~vg$Kl^זD)6juWOrwܫ>oF,z>HFTþo> jg #t[8}J;R+?)d V3zVٷP1Sr~7 V%LwRŖvaEL}bj`I;u%#v-qG>$8 h_vyC!@4#R)=$]chk&?kDfoHch AT4 {~4@muigy./l B V:&oJv,aҵlLI:'Ũpm?)g6fOn}O[՗/;¾Î!Y"g6Uz)4Q,/3IlIKwɩk[KYҥ㣩Kaɷ$ߓ( [,i{ɡҵx6M5q8\dMIes).{bn > "#@ C#Wܨ$]^`I,aY[[>V2rMU7w[}Y:ߖزKQ:qmiJQWvY]i:>O )vZ1cI)9V<*Y(v~Y,|dAlgƩ<  ]0Q !5ήJY}!:kF|:ôn(WjwR  T>/EI*TLܕڀyhg R%nY2oU4tc%16E |Qr@(q1IWlIu1I2ZlWc>K.Cr$]ttfw^' %\'UENf+vɽnJ{|A!"8to7n\b1J<@mYpi*$@a%ic=gߓ5 xv@$7ųc];Uly窚|\c 6/iO\mL2c5dzƏ=;h͐ RE18&cmE4-mUSxv.?^b^w$i! ^OVXn:X)Wo%u_הy’6Sr:Mm_SXl6If}9 ŮÝ+$%OLў $m&0kGarcÊP gM$.R"?*#;ɏxJ J5g|l@Bzܡ~SW H@ aO$Դ:xس|G\aLzm|ګ~9T.)a#[̪Krz^Ir>?*GVϋ$3{7ȅK_LIYC.{nbZro#1pg0$Т. )-&vm/Ii7`<-}%}WkhF ,I##@Cf蜴jɟ3ltߙ$ 'J@Ⱦ :Q#@J0>:ZdF@jk=GS9R/;ʫ{ŸzEbwm\t_0~s+/H{#ˊKB-Wj(~x(S%\jeaIdmh?}@ !ݻz<!! @vsRr <)X)&ج%v5k6;>=9o.ʇ>oջ)U2rL6 oR}j+[g եVcL{=IbsY|Xٙ}c̐+qo) v@v!:q޹q mrVI1x~O jTHiHI@SlbME~w/Bqc/Jt3Se Q6; !B j-uyGws no\)mv}_dQlZܳMx>ʒ[ErP옱d].┟uY?kU?duCAP[o.g{ Z=uȰȜtiN3w @k{9XjiK#ֿE41uMe÷|C$1vG4]HoИZTɷrr[GJ6ml$ n?o즕{%:Z[7ԧp6 'on ahKkcw"ٴj4n|35$1( (?Q@*kk!lTm$ʞӡ+W.r>\"4.ϒ1иҏKqj@`>:6jÕ\-5_0BoswCJG/P1Ilϖ{IVW} `m$b~m6~- mvWkcEU@4pk"7wq1 ӤIXgnT,*V7Hl&[U׷$mtϖtKv ?][I;Ռ~s;sF}Ӣ Jo[X5-DOwQ;%X"ت-.6 :ß儝'\-ͨ%E%J;_QH@kǔ4D |-+~sNTB 5.KX4CshMiUP_T\o? v{1PۍIZTL0箓m2[:4ge/d=Ib7/1K*q":[\$ףY6gǪXXhg#I^>@{KYuEXɏ$-lIm2q QK;Smu9sf8Mj$ @wNZ+y[j !P){v--D =A]L@ɇ8 q|g\'Rb`KGL8580᭵m T0k[ -XhYRqZ) 39WwP\&bp^ϔ,#VҎnv yN[]tdGw͠ԟvJB/i=VȮ%-Y@VWG?S|3cEvm6_$S5͘(ⶉY"ЖnȝM@!t [)Ig?C+nN}W{?#0jtBՕfJr8#UUX]b ׋=LXGhP0쮃O?iY6=mtĖ:Yz \dcl7! 3Foؗ.1YU/=K9^ǰ|AY'g:Mr~s/v=q}^sdݬr۹o$B{@n0ǣԟP5ٹS>ڱv;f]vOKȷycNI7brSͲ Jyn'6D:l%H,J߫_XIM'Ij$Rō1@px>CE#'NA5]OvzI34kmdv(ChVZ>|q_ZM?nW$視nK_z#B@]f)A<ymCpM{Q_I1櫪Xe'xw6n/IelsWH V=/#bs f_KlCsjڵ}_sI)Ϋ^q%k,@XȦ$+j 2oxudUH,)W}I?xs0o 6[2nn"V!G$i&foWu  Ks\X:A-~y4}[%3mU#;O7^ɷN1iv+  o^9_9}X@ ]XfHde_i'`ϭE?;x$=A<7*ESbÔgUBo&j t\!YXFlu)n|"͝cӨw%\@]rFJnT8k7dK%[0~;fSl╾sx'Q]?UbGq[tvJ@(:=J^ 0ݺo G%݉ۿzXlIJ}u7cװ:R7iaǛ\`Kx7W-ap$Pnsq+̳> /Cu6SfS~%V,c1q:>J}-@v~#.t BIT0I:KV!Y]N4tW{z$~Z\CΕ41}_z~ ,^in Xݎ}WljiV^"?K> O`tgb2`Z+z~O@lb;{;C[I :׈7Pـ=z1&;6jXI|KJo#q[tň l0 -U0\$;)P?m-G[|&Ͱdfْ6wI5zΫ?,AzjOF4.ͽV|^^ջί6Ȭ$vl/uK?OW)ml%OV>Ȯ>+%-u 0{f`gUUvvΞ]B;ԼxYrndm{*CW^;.ӘlZh .(2#ѕ`'cwZZ'v=u84s.wGvQSkޥوvwFuvo] O# wNo,+vP҅}:m@edo7|F۳ahǩ$x%RE".l5)րlO~KyUo!R+i`IM-3* #sS\(|Sa{(qzV/K7֛mr~KkkZ{]%@IDAT:gz/^c/E貛,y=qK{ {ĉK2D6 _|p)5$Be:+HF;Z"T*vGѓ6ؽmm %0s򺺸%Q#)Ys.Y b#dd)]*6+J&=fR"~Jm`mn><-@L9LN}b;A4؞! o!%\]aNI 5K4ZlWRoR~Ipf9Cs}-m)!ۋʇwc+73~uMnu*tx$m˃v+[?[nn>ɛ [)]w}cIhxkw3});]#Ƅ7\E_ez?ߔ?a)voT+j,W Ւu( `_6G|RN+K Q (ˍ+% BN?ѽ{|/A8kWrlN[r|j>S 6x}wI%UE_QzNUϿS[)KFY<Fc:z,ՐK,%YY/ JjcmIR;GXyN2Q7]@W31r[OH3G*z vz\W]#N8yz/8SNLKcS"-l#$F@I Z%66 G P~Ԇ'pl:l1ʹ1:_TUGra}QGh Wru,_cΨS'zat-XiuO Ƶ BY6D9;'oԦh 87 ׸{q)Z@=7/DX'v]U li1EN*.-ŒcNa.s4s9E%9vUn]lgw_}VϨ@n07/^hV䫃=ôR9a?ЅuL|2Qc*7Pe~`W 4YlY.ʽrmI7:3Nbv RrQVO{ul>߬S'uo\JXgP_}gx͵ڹ{Sgfٍ3WN8K־Wk\Q}y? mWWt,IOȺQ !Fdp%ӈ v~$2 |;y_!El3_^:X|!u(.!'TSȩ5hݧ%Nk!2UlڧW zB5^RyYkKQ!@9U5* "2F(]͸8])KL:Kn*v.KlJ9gODi79c5\%s傎ŞDedc fm)VY'̥W툝ξ%Ql 94v6 uL[/+Jſ"㷣N:yt8ꝯpG}ís o+=9 s[ܺ,6? f1NzY3&IOjvCIĨU o٤G2vdG{-eWc7L օgy('Ĕ]SߧkuD=,j:bMR*gI:{V{ )o5a{lB麜!4 >;4t,z^yxe[4[FuvoغVE DLvg)]ےXc$̋mĈNy=++ß `[:P/*qcqn3Уcև osI{-[k8!HV ͠,R9UrbD_TZ}",fcKԉ͠$ͨVՎ-j2^{4w064uEgГKv>/eQE^iԝ$}'SbOx.JbKqůTĵ7uZZN ѴǨ{bϥTFaqJjF]I$K*@[bޠ};8~Fv O3~gUskp ȚW?ʲqc/<@/7rʾYn8֔t<^,{4FSv`BA f]&5o:k3$c?\@RiIQר~׮]׸gL3~WSGM3i#f꾭P KoEvk(]5d+DSY w d_gZ;lJS@H-w) b P4{wvj3oz婙q${U0KZm#-f /ye&*ޗIZ#K~gmTid羠 **m^;PN0(N.lR<6KҚ06Q VسQmg۝KX;Fiv$+<1fL3r1N`6]򐱐*R1D&ٴ{ihOp} vv$|sɤ $ywoNPvbX!@Skp)L42L] ( ̕|]ٳCҘa7ͤpD?CV1gשֿ?zsZ_DO.fo$mO:FVIV3߲e pާ9K8D]ag;h y[K\RRho ~VCt"QV{?Gf D+bV27[X/M%FWvoDmHM6S*3p?bg)ἥvfZ;,xї/ ioy[҅\ `ɛ9 P{sbcx;AĻ8#^vEhF[,bKZ]ceXƚq'5p7.Ӷ|NH(M օ0QmV3ͦGI0ЍNR9Qgm~o}FK]ݕҗp~ɂ@ 5ک cgX[mk힗<L SFp==-0XfРd 0P$5 )6xp☐=JoT/ &l&qdQ$6Ö1~q}Zbǥ4U'B&t_̶ ]fyobc::Q'^ovӗf}Kb 4Kl8Q'#?Ug i$67U}bShYiCUb1@:ǖ;q0}=eV:NRlb 9덫%Q8C4@!P-WPSLMF`Ivv[ %6!:SU<[=[i's&~r{R.Bؠگr$;F1I)Ոxn# "HCag&F0S&#ݫs뒋Sv'D]!gөoΔ,S߆_J!۳L|"!ӫs-ui3w`Œ{K7 Gm+Gm@|4zDgƎ[hJ&%Oj!<۴!4@h Wr\_~\ V& ،`n=@Zv ɊՐmR.ޖ{R5Z*ٝY1e1G+o%S;nVRkUO#N-ݗINǰ-i7R۹Z9Fj;sD]BTNH/j&\-.GqXůӀ [x^K35niT xm6!Su Q?˪7e`|Uٴd] ʕI-W$ªvQ Vv MDcɖO)b3>sTvm?Jj% osv,e}$N.!ͣ{C=]<iQ w˴=>]+F~riXTGute)QʾK/MfwKR T4pDb<9{Q(S||=Z>SҀ67y缽=H}ݬwJND~fsG~ƭHښΫ9ߤ9C[+QH(x3K5e* 9o-jڮ'pdC IBi>Y ]Q߮[  X`O>:tO{'7I@6&r{AY {dDڶ X FT^DQ!,X Q?Ӫ99pcFNr?vohYAv]Z"Nc"cŞ%Z<=I7QYꯗfԥ1;i$@! \Ȩ K[;;B{ )HqŷguQ 9Gr !uTFF]Pb!4D}ת*q] ?TsdR ~+xږk)Nv~[}~^I $>$l?:'sltr~oPBI ڤNy&@)>`0>Ip4Q#;Nu]+8$A*ѝ݋vtĊIJUMH@6MbRlõXIkg8(̞!Pq|/36᐀u]f7?>Sg3W[^{.kGoZN~fwܵ{"+bn^Uɤ~}$QדJjXIQ zD]B`Q @%3nG_?OkgIwKr1 b 6Kzff}H#:mlVfiǾ:VmO&H ܎O-X  _ˇs_]Nli|ͦ}?xD8I@6x 'ܩi%}~o]y [>5阵M-:9?=,!3!wuY'+ʀ80"d76w Oe/Qsz[{:ur[1Rv[(k+  @ LVm7ˤ\ǔmxVϳw_zYxQ 0|i>UB @-.O%y1]~>,0E}`{ B@9ڹfeX^L1YRNW~vgBgoc4O3j3Di-H~RB2acQϽod<˥ǭ>/uڪE$k8Khf{Q6$%H{@ |eAk5 DGW~z?ߡX|%\iij^[7MAbro?g}Ϋ6U*{JO{ەuy@Z;҅ռdq:cy(Kt}7O~S \"a\Baww?p+2G?)^mOW")6ɒlOR_l!OeGLoyfܬi&Nid{(I2+SOoO˻Zܢ:o6w7^GUj:yܝT.iqud9.EiNZ&~\R 49U :y;^./7s$%*Bj>w{Ǽ؆@^ h)dŒvɀzQ&\}4XbZD66`7Bz18ndJ ]6m7$Q>MA]aI[cIΨ{ZWsr&e/?9b:<^~u܌D]$l VZ  $p߾c^Uhwd {b1oB<׫L57}6=vtk.!՚'+y| O!PPy[,IHK5e@/"ߍh2iX[dxd:]կԩ6p_ɘXSm6zƾ<^cR^t;ѱPL\$9ŻO$:v7z=V Zu M\|R.^(G e|B_K{ݼ;!atx(*ͯlr.>t小t/@ hn8Q:\-g[\u_Gh]p nps`-?Uν՟SjU>Sg= Y,x֓6}q4oo@=kN PD@h`KKlX3K`a4Qg)V۩Y٪:+ڿ;; _:SW8fOgG5u~skpl8 #^;ơ:HLa6qQZI&Q!o ꀏoݘvpEezB{-N@ ܰBif~44wk^[fޥT'z\/{_q/|@hb)q|G FqF=?'-;J:&:uwq*o |D]"XQ 䆀=tӎ;6srM.;:}|۵6es ~ JؒkoY$G1j@#:TSVOZW.<}1.FH+f@ uİVϟ+xp"-jje2Q$N1 KKҙ+vGMlw=?V#D7 tV4'y `=9G՜ 5j%~1^]@! @ {ЗLFutu¤5n(ug=, cF@)汒f1VxP#wߓQ(ѳY2q:m&7t|NV+vIaiЌubY+'U.ubxl ~?4p͓Qgz3Z،ul}VXR\~E=Pj#QW @LQJ4 i&N83Go_sGB Ѐ=k 36U5hϬCid6wWTowKOyu~< mK\PW?#.@;}ߔ$Jf83fӜ5^sk.3a }G6ݴMKxR zx.!: O!@x9j)K]zCv.cBRMX\#Q?NB9-QEyG QgN+|!.>憷ٰt|L憦kkKMdRkHԹ3"(H_ovH7#W:R|:^tn0^&.}q|{m8tF@'%e\+GiѩA5:ι bYtߓ Mo6:n:zO{ڸ´nӂN+ ։SCa+=NVZF/ۚ|XTzRo_6ɢbr̖8l8)KU0J6 ݰu |C_>!\u~sgԀvuN_ n-f (u9gF ly;j㼴4FB2,0B@sР.yQ{i#; 0r┯jڕ5dʧdb4a3\{74@gVhtΉDf]ΐya3Ga@T+3Svx~݄fSF=F~{zSfے.$! }W,YJYk~4쥩4ѥr[APҩ:{:@ݦ"N/ Wa8⏓noNvKPH{л'?a#|@7|TckWmI}=# +RHn D F h_JW܂7^4iTNmToJQ'=m60L$-O)}Rt֍P&3Z 3$WlFwu|؝씀1UQN&IWt <{:q , mb1TTS IIbF]uiΨ`g'աM*QY‰uϐ4BlxATʥ7&@0"/ IMi{}ؠ%COm2tjd; oɋ5%.<v 8AsJ~6Z^PL .\c%6xaGެWJbw$UXSӈðfY~˒~$vb j51pSHaF݇(L]fZD]lΦ4|Xyǐ] 08Qo1k^0/4x-&Jkkg=cKtu#JyvWgf! h}wdk՞e-hIe6%掑Ra=hWM64$5A&Q{kI5i;6')#yK~[AޒU{soŨhQ*)|f\0Zn>H/\Qh( dEmk[X_0C;XXݴe˧oFʟ˧/>'azC [)!K'P)zdi*-ӝPC31{FUy̛;ofv:FH~&94"Q'0 @/[@N/ Bd̸b H`)mrZ1zdT<nyK*Q@\BP^ O`N ucWVoPlO'z<Ƙg.f.ȬHH [ݶSM!:9ܵq,Hfec۴N=4N!A:`umTr`>9,l '@|x̨,;|f u2QtwSo~놊<㌺.`:Tɏ$@$@$<-m#>z3x a\kʡ#fFoM-lZ!qrkM1f@9݂@Lv,{Tn/YhD:M$&wsN[b_}ǢM[ fhM -`i,]RkIIi,fQ61 nH6+ƅT. !*bH C]u6 vj*;Xvm95oTIDKGTi;t"l鮖t1MKI yqt:%P6:B{"_dPLt ,2!5X_;?*U#>{v]͗1nZ(Θ@aoA&ΨM3u&Φ2A]o+E6Q1 D9WGXτT%YJbJ[H`)t(? hL@Ƌ_uQ6@Q2O4 )K-_}ȵ?+z.K)[8q+3QT}ig_2sF]nBAΨc.7g`֩٫*Pg5X{ke7n!   ڪ+]jyG*{acM+$ ꚾܥvfA$/tLυuGAq$舕L\A_A籐о(O.u:`u0DwnڵtIڻ)hΨ uܻ#KYT }21Nۄf@]V,H$@$@ taCgsYf26%#H gR;51n"Ј:I&:e9{PQplѦwA31SQYi8Gu~nySUnPSu!%j{8 =QY7J8N2P%U0PhVC$@$@TZ]urkuZ3i? Dd.M%mT8hf)h!ec4;$CՐ x'p~)@:d0 .Yϐ D Bs00+PǕ8-AajF{8Ar1k˒^HB*I]my}VuMtH"L$@$d,YC/O1`-5Uwu1gqV}QŒ#=0m]M+vLl 8uΫuYǎM95UWx7^ux(Ivྫ"?!  I vp~͐"tay} dm0j[4Mse jV5"3dSvĄ 65^]1 U3opF]^\a9*36rL\.9 /~Sd0 x29qtrL0Pu!fU$@$@$&,%>lؒ: gZN@$@m;yߜw@!= Ub)@3k =#<h/qɻ}'CTr1سMa~ }/m7*[)#~|k꧆S=#v~pχ{IHH ƌ4[Vבmp ~N;%3f쒜|GEC GRu_<WK曖ݚ,B$0we֛M`5!8!Yoj+ x5P8;sLmQGNYUZfꌆȲL.\@ .'grM(SoT._:U.{IMk e9HHH iƦ}R}GuuIXe+@=A sNwv%l:7Fsp'"XmqU7@F`Ty!lQUv ء\}˜M۝ӽ/vWi7K_NHqsUAP겜j eM$@$@$@5=8t ,mͱэkW'e c9ΘPDzqWKMsYI faWأ1f6Ӫ~~M$twX"Jρ9MJm:U1w8̦SL'icROAYn"  +NhQײ$o/년HHH%0%]9MA;[Ķl؛Qk5YqnYMI 98dӐ #?,3r!4%AO([ƃ(HpYGXޏբ҈u`P[RJ.ԛ׆~|fyZp胭k'z=Mf*Q3E1PuI$҅CZDcH Z+*3vf/S\-Sl!{g ,6գtZQ*: ߙH +2(Ԭo+s@^aysst&.DidܪfyhQ=cP0^N@ ][jF`5õ(Kb\jIX,p1Q@]Ln #uZ~OK !R]u|̓puq[uş-1pNjbA[tTd T,r({v.-Ck|7#u8$8Q{|cԿCnZ`E]ZY:n@]zTiU״%s4u9p3 Smٟ]c[y/͒pT^$~ L"ExH Xll#RĘjIʸ)>z@IDATn2G,r7!ՄN?=] ܘ'tB#U5/aMZr6)X $IU@*t J{P0i^DҗI_Q&r`.n&HNR;yjvzaq,G_\ .ct﬿rrii閝udq="GP/)ѰO'n5+ˁ~|9D .d,<ʲK&UUjYd8Ifpk̔QURqI]xj.,yP^"fԙthU i-. D'(, DK9Y~{i׋v&ܮwl_h?mM$@_+-EzUaO^ޠEn.1? l~?K`{ vRU#PÞϥTVI 1.e;~xymE8>>tX?.U }h"lf.,ҬHHH` K|^`,qXodۧ6۹EH yf)rQ|jUv~2P׃<:VƦ{l.FZNɕ#™nȡ*P겗@e Pi:t=+(syo*Rgԩ)uyV. V1~E^+ /!c̲q]aX kǪBt-ostؾbIBoUg7I|P1n6,*oU6Fǧ,ȴүK>{\@G|ev?)̲ ݺp-:*圎߄C]3ߪκr>/tfOO=cRe>#07>P|2PHGiL\.Y}ӓ)&Ў@qN(̅*.  0&T}"Ae1p~ rsV896f,[q<&~\f?^cUVu*֝sP^Qפ*1-+4~<SB]M r GTdNU$0c[k< >tH-Zeg_$@ XVx܍CCYٽp-~s`DR5yI$@8ζe7mzPEt;qlRjMFL=jO[GmCg:,c4\Ca[j*RSuw6v{zC쥙 K^S!2b]Ү.?~޳ͨ 6϶#maMt¹0LNܕd2UV nȬds6]O/[qaj9\c3AgiE4wvU3>m 6VdgfUf9j҅2Wkt+O9Ncz/@X&,^mnTJ Ⱥ'<;-gahRjPgHuZ;0 X[u)=+ñ-Xb vԜsw$.șߎgln٨d&nd-bp/,CIl2e%]^ ^,_lqpݘ@JQ5nF*q>J|Pua7~  TWAg35wQZچKtZ[KHH;hR3[}C˶w;\}3O'Eo -:4!%PǤ@ЁԚWy)˕_Faߌ)2uEzֲn|׍¥s3xqR - 73HNu6aYE$e2Tf4 *Pڌ:72¸󀁺㤒 Uςky<Vʳ2P=̹ۿI5ԉa{8)ܸc@s~ja9qOl7WUuh<,K+(3>vELn,Be֬{eߍ+f6ݱ8w/nQ̯nNiEu-@ʊ&4`Y r33 $eچCNF`B SR o8:)ϸplY5/ n J:ppgk{v-t0O$Y d.tz1S ?/qko0ۇ,-8o}JwBWK<XMU3kJ[f_ g?yӥynE\C TR )K$@d{Nu$:U`䐺que9`m_+k$ 8ԣFȒ, eT\P`;cqbDBdÐbjuyZS j@Tx Օhjش~>\fU2#0Ń?X[~HV7I~ ߫2nELC߻lsobu8*s_yˤ]ڣ]6kD 0`AƐ>ggUvtiA!Ea$ @ 8֣mՕ*;بb9@]_ QJvʶ& ȃ,b&2L@w = ;ƌ> zF0ь8ـ>AHFp{M1iN1}䕥wQވh#M':7IT<u߁c笣PBRR )K$@ maRVp}Ld¬u B]q ՕGYi|fPSy/(L\]Gc ,DŠ0fԉ']% #stɒt:ȗ2P7>jA^rP]AlR=9$.MaĮ5̦ߪx=ELRdz jUꂞUa\)llbئ$`6~%}d5al5DwiwH&:H 4PN;&Zcl+I5AJԶw(o=hԧtCơ'!QI ʾ譭Xt 1NczK#a4d@.@[q~C[vkb,") X c8^ʳ?.r)r;Hf Mw;ګ*]UNٹgtU3eg8gd,u@@#H y l˹,C,jRO?аA#@wodR/u V]qj[huqgU=`f&L}!2Bߐrbj) uҡpR~Rֱ+sY/ q)ZIt|R{-9Se[v2AEZ3U(5^G\o^R_—8WUͻdu]U3~ʨ (1PUr%Esh[K X= NfCk}x aX<αgi ةB#C4UCjvDpPAs3jƇacKѱ2{¨g뗦|RVߠry&@GSoB.=r~{z"Cv /'J aH0\Ƕ8}9/}G}*>놸|o,~ ~D4˄eK+@gSeCY M{;uz#xSOayG039Ќc,5&2Ѓb_%"gaULiu$KH ΗV=:d)fsh 4hvvRor2G֛uJ ƒ-S{Y^)'7±&Z:եSp˼q̦*P7#ILůuV3䥬k܄3 @$Za6TL$W*/Rs<|ʡ> i:J#'LFM1=lckubv^nXڠ@kuJPsd7+βFfj'Z3荡B|$@8jPo Q3#YlyM-3Q}TF  *`ܠ *ۙ&ݟ ,ۭ7 {o dE U:sKqsy|RH\ҵpdm\LrRPR(7TͨSW\Vh„1D8Π3 NyLt{A#'ЧllcUVaEmuؖ@e! ';$=YCo!:vB #H'PetO%S-*)g, GB\Gr0tS+T )>W햓נ{xҗ`Y3Кa/ӞB;0By_-<lO̺%p `$3 @g-e4`ty}:xҷ#2OpAB3#[I = z}oҷ. pg|KOM?=`IiUm- DžQ/#ܧ$UղIԩ sq|΂sFB }<s8~n"6Փ ā@1^> 7E>-?Ұm9igc-&C £cfs񼥺 ٻy >_JC tG~8.uf|PUE썶E^fOj*.7mJjI֓޹MqٳuP?Z-{o r~coz)䳌gIqC @V$`hӪ ,Pty [/9@7e@]v.J$& F4LYW4WT,r,{v^u< yiPy]'ฺv,-kfkM_5&$SMhtmZ'w,3$v̞,X9>AFO_{؈`\ >qӁ#{m`W)?=m%b ۭ7A7)\ qKx)XuΩ-/(#3'4mt*,PנdSs$NU)@Λaz%@w*gTMRL$@$@Tqxn3 Rv-l+{hK K78KhIV!VSu;~gɫAUR%4#&Df4F9T<N$|Np8HMQձy( Zs:d_H$ݣgV˲l )-A̞Qy,z.ȳN}PXv^ꃝHr,.%)/>N@ΛpA  yyŵy/XH/w .f1`ihZ+NTak*yaZ$CUV%/rNj FV2~s)1cPmmPV׸ dDn)(g? *NL\l^;l0WUy.)U:߅cS>ش>D@+d,!fcgWglY[NBfH9.E|A8E,3ĆNyϳ ~Ԩ-qN݆ZNtQu`z|Iˢ4=UuYIf/_@-OK4H=tUcYmms@G^k1:/SaF8+#lԚv~Gu/S*;*/nI5CsÄ3 6R3x.u} 6< [މ-`ǀ%3#Q.z 2oAGg(zV&4rlQr&_diχߍʅ^ 1⾨ B ? )4LS;eiӋhUySZ}*MkBE-d UD 8:[9ZS獴udӥr~̝9:&@R`쟗I0l{3$m:J-Yﳓnɶ: w ed]Z[&%t${ieߏ%}B;3uH]mNE!O : *3x4rB.DHѝʃaz-˳ #X'+?Irs")v^(dc!]>þQ51]|ra{QaukcڭQyM1 .PvSS}@W]Q7V/3."9 IPNf=T*`Tj[ڷӓm!HNJr~щ:Ɠ@v 08";Mjxwg~RZ{{-|,My̾L|7Zϓ,d,#p81b ޿?C5LtCywu7 }ZU  yh_ǣaw9F^ 0 \15 6{.{ag*l~Y>ِ=ю2þ= =֙@3z ˷Ix-6Vwnpnݬemo\:Ǖ {߇<6 R#/M9%Nsalo:v{~R=Wwۉ°V~J`_mR~q>lc7# R{\ y.D%4H:+ d!] w91go֊Վ=y+b%(!2%C@ ~C-CO:ea>EAԏa(?2r9 Ȓ^thI'm=H[fNCޡL{ׂKVwpaȳ7y#vߘvf/hR:Mk")2%BA78\>Wf萶/w P wډA-~ݞ~ ?y. A u\dG!nt-'+:㛐@8s^čʍܸTV\v.I~`TV$,L<[e6ǖxp]מm$fݖ`R,Fۢ3BF|?b2c0D4z r  C@AVl r AQ~6D_s=e9BI:P,0:ƾ0PHuLtm&ǀ։֭yinV{":crDf u} $r3LΥ}pN}%7 Z+w݃guAE xnr鯟l)y%eu<;g2HK(vpȻ/Λ4qu&m&>Ϋ1vN`2R{ w+;OhW*cM1^MŃwpbj&vE l -*}"MP@F_(u9m ܹr31H+Cȷ 2[I,%KxD;~(YY*RU2:RL"+tF=~ҍ(\R7m6eHza7zYo*-~".&s4yMfytU!0KS!n9vLE& RV{h'zɶlT٦zF͟yr.dg. O rϰ!Mzp=eluiJ:B!`goI `ɼѯDd/ZՉf%VS)$g˱_6ؘ̽8lhl֑ U^t#y "b(k=?|N[KQ} p\KG$ݻku Du*.ߣ.Kɨ \$ۭv#ڭ7_E(Fj p CFBV0%!'C][ ܣ9GtQDR `5qDS wCΆs]`^ujN:C R3B:c +ܐWLhMJt v'922B&5 B u72H'go}F@:\!9kRfZ0-% hwy2ؖ\%7?B>^Ys 2Df ^R׿OUevޠF[wJ`) Ԋ, (\G< C$H-Dc>r&ϐ!@; R)+ϡi0 # * fEmUT|I u$H@+yd"m 8QgJǾ2 "/n֫5#ER?˲[[ o#^nUAaP螧B:K|4tTdY#ï` Jn#[wl2\*h8%pl$z5 }WC>D򾿕J࣌tw;S;m&Kjۭ{nMj ^M8tO- e HP^V^9"+o\4ȡaI~6zثS5ӄsu?W[`z,1Pˑ (%0aU ڎU|p? D:.842N:L"`[_bML2C@uxC8e`YzJfYC(sDfT}qES0^ [<\:ǵ,v-leXUlQ/3R}B 2sFf u.K[侦ps'[wF[w|Dk0J (ip~C1z\Zފ,@ePRtF{ܑ٬M Ŷi ĀozŤhcR]9TUWhb 8FJRL3!RSjP Ϙb^ PKdB6_Uyt( ѹ0{[t.~q;> .g?ĴN6? K[;ؖmBC 0d&lx"Kc- !fF,%Embuo#ڭʾs<TuJWA,k8Sd ˫^Ul}uǹIǫ[H$К.i 2@i[-eYMsm3]?=:n49}' ۪^J!i#GuNű-o%]U<$֣@<bZa].k`"A> }Ocdq-x4FKproBmIV jkʫ]f!q6z"҉.#vC ]R/`nhnVAY'up[ $ZB6sAlLb6>5:g?,k"~sG(71$ tiym7ʹlO[dN*It[zHUKY] # 7{ Yϕmq2Z(ۃg1+b[YVcQEvNzUԋ ;rKM)Aꥮx/\^P?"3gwk` : ":C~ġ,<r|jq$H':-c$ r(i2i rvn]iXƴ[7ѭ3.sKKd0n3> 0^75|6kk6K{s.bPvY ;X $]j섾[#ZkFܚ/HYW?8-W2ήi |ךKfbJ5]ua2 6 a~{ 05V&QkV|α[ @ CB·<{ 'H'wCtЙNos-/ C;6IQ7RA:Øv[jrh YŹps@`t3m ]p-jF*ghAVȐ%>i4H0եv}{]9wzHeCMىEs=7 M^ 8Od8 E !AX|ڰӭOL%  Tw4D5FCL2!Am%[ k_ x6e07pxȗA?ٴN3Ƕ$`OR{Y#Ғ'1yE<P`CeˡU+@.~WU3 tnM,c7@.g #/ p8.  mE +&&׮Ušs^ZY0FXKuR%l~P JW.L|{"zSbmAK_R7CBqf>ү|AX-dpbIIH8} DpvW: kI^L 473LjtOlٙrr0w9?|T 5x9J!WEU:+K::SD1 S t 6ʈ] r&@oH#tfYFl8nj u22s@U:hS طO ҩo3~wCd uYJvt-kggHt u?H@s̒k A&89>gA$@'"&9iG1*]6?1쿹e~ :7 /qOKtwBenXcaCX-Ց /L:)̰1Nk@Zmu dj심duR8vlx!Wmg.i-NI &izPݩ;=ݘ$ck;>!cFأe2_{=ge;jolL t)FLܡ(Yg_$a15Ad*>ݵtd; ] I{a˟ ȵ%DNH<!DF`\50~c6xOC Njt[bu/xwqM{]QL2r7zo V+@'F|?X=,:Wp_b金_ŷh/`C7 uAP HL>rnoYK"1 J'"`6Ţݺ<~}HY<6 lSΐ):*: ":yrM4l:ǹ"+3H0H%xCfً&pDDeA@H,Vm9}0,jrhحꃮ{[Qaԓ:ZG<. W$Cۏa[I7 ޣ<]eɳ m<LLn÷yr:Z O!C 9$h(P,X&<A1g.@փA'v}+sLj,o{?-JuFoWn20[;S4Sߪ NBȓ H#{ r!]JX҄KwIbHfKp5>76M a=RS9qlVԐT`,t>5!&`]ѩX*6pG$c=n/^ƈ󷬾Ԝ9eWw2Jx0{`Q9 Y$_3 |@K{b?"$ ";u O1>WDSfH@We,nnظ@d6o;Bi"`"Sv0}dP\0\T4ȳ=JY+d%][VͲ<ϯpB6F5B}rT@iM$@h3-vԲvrNnwPt=S*I+<HaO+7?ӖwϷTJ' DB`RML9"1JkCe~u- 1 Hg$[2KnBfoŁ&k㿌1@P:Dw P'A<࣌01d.uLbw`#hz ri{|fAL7㘸olS ],2!L 2n Ll *E%"Wonޯ$w37Z lbِݐۡe f0҄Yڎ^ q`"5]b[ f 1!۫*\_d2Tl WW[ӕFS}Z޵gٛc'ŎcUH }dcY:{p,{tOpC^ |m*a_G%4&a m=M7 Qiƃwd `Q&K,Ig|~&D V屭Mf ;Df@> F҆L` uhw|S0Ț!|t\{EAr2PDcyV%DCUl\Mm x  )u2-l/ځ!CւH<_"34A^B-" .@]Yy fkOAp؇hUA7ԹoҨm @]C\C>ocJ}c҄Dvd| v3|6On .s Bc>@=pWD~0HH y+P!URbږ6e8:}gXR5Uoe-W͝?'5_&+[# _t:/>\% Mn{|uݗfr.~fg(ęഈ,8ut—;Ѻ\Yߋy֓D3Yoϻlvqf&$9`Nm"r9 "v3<62y-rOW,G. \KVnV' VƦ0H:&A5`s,^s"c_K&-Б;˶-Y.)"Ύr1,)ˡaeLd4{tUc_~ N`zzj0dMՓuJrԕm"Oȶx3zkOfȒxu z9|15!     DMw]ͯW|.'s@HlkqfT[lx)p.m8(Fa+pZk;[M YVK͈?ҴCja3.8R]u[*a5\Ayr7ٜ 4n:` $"5=|>~g#dJ8'~EtHHHHHbA wł" Gz9Xa8K_»hMWe'7@(r[B1k%hׯ~}6oiWHHHHHHHH'@]LH ֱڭ WZ2|m@0CrԂmHٓ ^+}oT,O$@$@$@$@$@$@$@$@$@$@$@$@vNwIDAT$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$-9RIENDB`flask-session-0.8.0/docs/_static/logo/logo-light-long.png000066400000000000000000002073471460047617000233500ustar00rootroot00000000000000PNG  IHDR4,6IqsRGBeXIfMM*V^(1fi|,,Pixelmator Pro 3.5.64,2024:02:11 20:18:01: pHYs.#.#x?viTXtXML:com.adobe.xmp 3000000/10000 3000000/10000 2 1 300 2100 2024-02-13T19:03:48+10:00 2024-02-11T20:18:01+10:00 Pixelmator Pro 3.5.6 n@IDATx\UsnIEA솒MHI)`PWlX;ВPMHl v efvʝ3ٙ=9                                                                                                                                           @|F`jV`o;rkÜ*ݮ.s]|_K˪       .PWd~w|6hLC[G.4htW6hsa)h$       .@BCϯuۃ ;C.qF׊ !ũ`?K^[*ݵVQ8n;       Pk WZo \4 R{[vtqZY  !Y8}_z{@@@@@@@Kڟ;零r;F!5PbR^ḣpQ#Nn^1@UF@@@@@@p.9Q;?d!/ Խddt nūXv˺W(@h#x#ުvUy@@@@@@@Hh]y.ZyaFFn.qTrf ܇4CBC @@@@@@(ܗs]qW޲{>T](6QRTTP B>pze4h       9UJ/aĨԖ!&EMU"Q)&t@x@@@@@@@RHh=۸ghnDpvw" Z,;(@@@@@@@*{Ƥo]R. G.8f6}հ0O?QdN       @ Tۙ5? yrōZ8T ijbo gҒyC       PPA{t:x !uv޿U j ?6^xCJ       0+4 TwCR[ir)qT~[ˁ$nl @@@@@@@ /b+F.YEB|.i{ ;eI*z @@@@@@@` {"4]}æGu9 w%K{}3Lo7TC@@@@@@H 1kř#! VeL>8y̙>I0j@@@@@P{Ua# ̻u>ŧ)` D쏧Uۍu{wIZA@@@@@O~WѨ[@˪ +3kΨQ񱺴›+S7CEPi @@@@@xmb@A B sݼ)ݱg㽋>\ o|/>9o      ʟ`eb[@`P$4 /]>gT*B=Za+me55!q3&-D;l     +0QwX2xZ7_wn")@BCpn6҅|ò۲ݎzu'Е :-"     @ 4kR`v)EBA_t:x]:݀K!坟FknD)@@@=7UUeOlzbZ!W/+^ʖ@S`bdkI[@`p$4 ί׭\{e/@g8G MP$Jp]>-ڇ|     P.KZس'm'ؙQܭZnS@@3u}T['w# :n3!>kE]PɣZ|ݵ-/h@@@j@`جX` I*/h0&9]u%i@2 PVLqa@,Hh)*M&sUp-G 0~shh߻6D@@@ F8Hqb39Pb*^uQP@55a;K|1zTA@|x̨i}_31`}*$W2%n٥K )    @. l'((ė5+E  PGjr)Ff9ɓTwY֥ @?$43Co٤;ꝣߣ#pLzbF@@@@@{3՘ĠiZҽ(,C)@Afrfd R U@ Iflx -puu;G7?Pi3`    PtMI=EP;xI_+@*U`/ g9NDP@u]8:UL k|~ٕI-^2;Oۛ l3@@@rRu?8U1,js?Qm  "0ZtEǠ-(  !GƶxgqSW@В>{?-nU} ?Sb @Ʒu|Ż$s$C%i0@H[%泟ܶ`ڤ4]ES)NR4(( ,S;1{N @*pzb]RO%k Ż@&ԮTo2֑`@@uj[7뚩d-/biܓ:khWy}k#\[!M,kih\ԢĆ λgUXzyo   )0TöVmJ)m:'no)(( S`}un?I*A oH7 ,)w4 "֙ ۷?*~/u3gƽV +1fVp>嗹hS+ {鎇=_7<}n_xP@@@@'*F +;o [=?ς|vٖΞؽ%ATRpfWҀ+ @E Q8ZaA*tKVZFi@% 0/(aL{7mߣM/ZZzNXc>telp=Sv||XR~ +mԽ򙰼]W w!\?dS1 S@@@,' ;[36Dq^E֫kn>%mt[ON^8JqVLz@2I8C-5_*y9j.DA(+4:׌HG߳C%Uǹ|fRgˁaږ ֛斥H)k3ZadX'!즫==W'   U*`+;1ENbP[X#IDR7  .f28b v@z#?꽷ye-:xNX)ri/ qtW)To    Ї"dG[()S;ACxCUnUF>_I*`$i@@4yF@"A @M D5=u&n_QZ:xCn̒-U?vV%ȥ̡1*@@@*JK\mE]vsܶ\u$O;oZw^( KmRO*b4 V? >A~_SxfxegKReVKKFX\XV~+'5#@@@O`6kU dȰ, ъ{*VǬZ.}EjCEjVA YWDc7wC6Kʀur%D>DH1gޝ:h~8TAc[缣.r} `)P   P*N91[I{/)JzIc̵%6\EEO|  P,Ej{H, Z5pL:z4r)ȅQE>H.,dP5-n\@9*.K9.   P[h)qvmMTh_VS\0R[ @ V S<[i@`Ohxm8SR{?-p4 v %[P%NTPDiQfojJ]m!o8h91ݱ}ƅk̰SȻ~=f^ʧZv Yc[Hy3͵145<[wߥ#DSw@@@b~?mlZ.vf^emM  p+Z &M!(PG]9ǖ][!rኦ/]=aLэ'8Aӓ]:)NwDs^ 'ݽ͚YzT}+WݴUnWcg s@A@@*ZH3)ν*[`˨ @Snsd  @%4NLc;qpKTglKg8huλ oR(XFX}VӁ]rxŪ.jy?_S܃*u@@E> A|OV6לn-Sm@b qK{dA ) P,:ba`<MdP $ucv˯o7b^7}^   @ )2ii`\{};@( j&Wig)b@ 5"wXCZ#57KSvTc :+%]wW5u|t:e!Q );  T}p &c':tbZ_yLVa۱  sgdEtD]@ TBwqS1kvoL_a TTu&5{4ltQccL oJa#  } 6,:Yԫ*`x? @QW;C喝- PIhhL/ЁrU2[vqlZ|hQ[UР5x'MQW?ڨ,/abe"   w=A  \M5{@ :%0~Aq@%P3 ԲAb= hOO5%c@@-ȅ+w?rZ!7n!  U!1"kf=} Hܫo!E@ lS܆j   0g 799-U+cM]W![6Cǣa㏗2 M!  ԮM]C2WyC7~A@'l޻ ?ZD(@$4DQЇ\_3-7#^}t·zNU>*uo*mS*` qMmsgbs6E@@(`ܨ#!;Ͳ^C}" ]F6zU[ a@ p ވ)zrn^tǵ@]^ᑮu\pg\,LI֖ڻ0}.I!oZ4ARXFck6A@@+S+rOU@rFw1Kdx:< PXP;fva(wW7]9S;k,lT}_T;$3yw5+Ms'a~d6W2!<Ǝ  #~o\|~hٰ%9RfYj +>6PWw#$P3+4"ʕX =ƶ!WjW^CCGRlzLkX9zDY5&JSB׶㜠n }9m,cB#{.w;Yy[.ُaQ@@@*8@sy^/eqy xj/D@oQ][ IAIhrO8Y竖͏ǺV%#Ê_Z:9]6!jXoܰx-|䆇>w&V 6u\¼GO/خ|޻;=#  E(*t/et^,e'|+zTA@`0-ѹ(l  @ _EzT23/F]o~{*X`>jia̅5wV2aDGƲo&~O }ki%$)   Zm0R3ί oM{@ ԇjV>E& @ DU4~)kă Ї@j [)rsG٪ w^=g#73kI@{|k   $pp'3$4dԌKA@SV(HfVYv`O:g^ ^w_ԻLt.צ;psF5~a\ B(2M!  x~v%5<ƻm-!=iyx@ |XVG & $X2н%x_04*Q`C z3zX+7jlsX%N1#  $^^#\Qn^9Kf1# 0X %C$3 V@ rs+׾٨BDRt5 36"|ttc[ |+Rvc+~aȒkiYU)q6եv90v@@@`u[Hos{E@)DFH@M%4t4-6j]vC铕0aVqxaȳόom0nO|Jw^ lYi@@*szCm^_vCzX@A@@ .PS }p^ן(& "@_ zmZAu;T εͽ]w郿'UV g7n) FA@@@1oۧ`}R.p?7*e)   @Qj.!Hř{{QDih}.\a׮e#쿍:t:vڥb#  T@1섟F< 5u@@XKfd2RI +r&$O`ygf%oX4ϯ2T@@@` Uq@@@ a5`O o w    @- e! 0;Hm,   @5`Vo}B4<[o&p˚/ νZb%Cޢc<]]b6   9mt#U8mJ<   PZF`MDckW}RE{} [En]턃{M^7{Wt)qJ].;*ӇY%Xӧ&x| >vXmO/lin[;?@@@&Fyg)VG@@RfVDt~,*r¯#_2-8g㗨vMFmG~(!4ykvElS c>P   ( Tŏ    @j:e㍭sՊW)ʿ;=.q{3Nv_K*mo %7\?*lrs tmELa[Հ_k`L@ISMwqD."@KP~   Ws?5~;89d.; Պ >z.lJw, .|SMQZC^;\y͓߈$C(i\Mb. -ֱX m, =}ǍmJ^2<Ԅ@)ׄ(D@@.P F\BhxZFKPVf8ow濎| Q]t'e5Gj箄>l@֎!r#[u;Mb%A t{-t{^o._~{ e- XpI>JzxcG_kknRR5*udZ   @Р]&v|%N}CU5+]=+)(?;g\f:غ($Q+:n;R=DPT%LJ'^ՙ[GQM̺hoKg_Í^dhؐ+{};k@_9dLitC\_>\/ 1N7y-9``=w6Mw^PvÉ(- iF JT 6Ƚ)α_(    a-E&njO-NWDpƤEow><3)}% O/>5^\{WpQOUMp1꜅ャ{z{@ւF[3(Z`̚@IwlrGB"/x z~mJǧoLj.p4RRvRإ'n)qt   #@B:Oe%+evY]D&o+Rݙw5&4dr˸?zUM2_;_;H1^xq;_휦o{Ufp̑=NU6=@gd[z lWtm#LEG%>^)[ʎ2]nT*|Clox{k尉j .}|f??uI{A@x\f).Vj []R@@@e-y'7Xou77XWrqX?֕W &am;O;\T~ 3'l)R'N@N @4ZX"("P${Lus5 E*}kƷF@7 _K]Ő7@@@J! (V]CGCtGtp;e E+՝@QP ΖRw7/;ҞSS0س?}c~(뭨Xuޅ_o`M !P_|È!C72t@ 쾚bcz]_k6Zsqjᩗwߥ-@ vىR8J@A@@J%@BCҳZZ2cs^]ځ>j|ft)GB))eE˻ qVg(nliZ>_ Ŏ}|ʝy4 ; J@>߯}Lj*!Pf=gsFC-A)^ߪA2hj-Os3>_5R'4 c U$`[9UT*~#zQwM~+εՓD]Cle Wg&\Aboa VtެRX|'Ur+MQ>}PS8inSuxy]:$8f[ŮU'Vprܡ&ޝ4$eH| MPzgE@+W3lؐe#^]}-CA },lSHP?˦E u+ 8]/%Ǜ&x|8!egW?":Va+Uaikdž^@ =a'N-TSt*)(X}a`v{X_tJݶ/-|\?k|XIRBjooY4Lꉽssh |Nzw((+`ZSѤc'u>=V߯5?z~Jo@A=Hl v=Yg-R_N]VT똞+9m%0G)uQe-漓WLLw|eESZ ձDqms:MQ2{VJ~Jf{noLgu GΟpA  ok.ڰI !`[}ltS[JG!U@ScUτ?e';$~5eWR<G/HK1', S-{$MQ|Qa*7 J0b>Ww()v6 %vw*}YANS1kktŇ^,>ĆCIW4*5rzl~[OV^){{}^G)ߍoXKnݓ(5ȞT[c (ޭ瓊 ԡ0W υު5¶)qܓ;X=[2ËK3grܯѷ.hrG`Y!O%\S>yˌ*+( + ޚ@e("=cO|q9{-jrZckzc<۸Gt_5%Y5[i}_T\AA )vG(6(ց=a;T$?!M,clv@nM,!nx_Ov {]Q/5[r vtE>b쀠>WBH`Dc:Nqb"^5Ž=?*,I^kXi/(6b m;ũ*j9|ÊcoW LPW5]ᯢ;[lٵodF%iz}:NW^+ 6>_Z`/LUWng18+VjMhhn.|R9|@ ?9Dwf5[!PCS@:.Cin(`4UMmsWbfnQg$;S<2o84;PSEJ2%0|L 8KZ?$7}iox$k׎=!YB=ѡziAT~ 󩊓{~.۪CK$*RbiѤؾsЬ9(}Y!%|B Eà k^"6%JUuï^|:Wݺ]ӬrO߮Ue25mX38%{O,>>,*SBz5E2(-D5+'+!GlJi,Z4\sE?NК1'`v`О%#R ؉Vg+RR"Aݼ^R֯0b '(ĉd bޟ/(nRj/5)FhxvaMhjfWPWc"w’TK,[N=[(D2Ú(=r㱊{ K.-t2|LԭVE1x !=y+%aP. 75v|;:@-;㗙@o{mTRxHqoV*=CІ/lNڿ겮  &` ?OɄӻ零OyۻQ]/h+WhFIS^KHj%;OAQB ؗI)\LR8^A3[)URǗ6GSY^ī>~6=~ m>-ƒ(B[O]Xb'MI+v#(u>@IDATNUT1S(Rp<\c2n%%}%čBt{KS6~DCq6$e5|JLѹ̿\ _CX-z|ȅ2ljh84]=GNxfK~ #Q!YϛAM[$Y}֖Tcl PR mS Kg F;nb|5aUq6爅ӦX somn9oX yOvIW th*voom8J񥂷LO`ݼ@罍̾\?]agJ9H UTہ/;8sONbi&)FylSWrE6^ynmHm;wC#VM /W[IY,%諔]W4u$_*4{t>"{_K˪&c7]]؇iMf|\ "2L{%3$sE[ªiL/V^zs#HcJ_)Prƣ.vJu-;dR P8}[YpTDe ."vCoXϻqϩVF_:/`sNvmN6ՊIJfX](k-Ϸk7(j^^ޯdvj-okv 6}[ A)jKaTJ2z[:[~O߰h*KW)WܼFվܢS$_yC-tW7R`lmubU!M@^Z:tVfxgR s[ >k UY -'̐ȞvvgҊ}h* I<)p⫊J80d+lb*FU4cslnP;oebs.b*^79*(7)ߜG7+ypZ@?R\!|1o슻ջAˠ~\̆! o[c!Ք8.i kv,T݃>|LNn^Qh@y #:l 50MX؇4S&wu.dLbvg%т1.`_Rߡxgm ;i#e|>G1QQ[KL&~KδĬvrKHځr8_\eGMmZaI]Xq۱1e?߮mṴw`\qv8Q5yۯpvST} )?yw~RcC_s^]uG.s1z*!]gͪmҰ* vc7䒵X9 5_f&ɒ PaZZQvY`lwh5tA™]'U¥@} s+|q+ZQ Ks_*~[rw6Ns{&`h 0J–oUD=g,abY]` M1Q+f'`xbl7(c=azƦZ}hgFq[oJ~^ <-vp >\  OG%@R ,+?W1=nvЙv;W -WybLu%_%y|-+[.o$Hbg-PLU)%`Ą*Thv0 k_C<]@דƜ/kaߒs?*6N== 3OtyH,aJ'/T̏m$Xeȥ{bx.a+Hc(y$4|R!vsCzݝ"k%`S_vDW# -Eޅ(48ՇT*P%1؋JE[`ִLLy 5+5;w&^!{J %qKАS)򏢟wU]'żEcEa=vu&@n'sUbB}gTv);w)lKzb~{%;nX-mnC.6.;{Zo~ #;lptk.9?kDEo"ſ:/i\&ll:KFE Kb Pi{->,zo]qc ?$`j-xd PI !X,7/Uuz?%Miq/<@zhlkonB [~UK %J~m MvV 4ߪIX=˥ūVC2C"EhjM;M$EhpB1x鹓̐/<0⡙O}GokLv!GVSʼ{ĻE. A-;bmJfP ոYabIYn`}jUK2mψmoj'?R$mMj[S3[H{n/MWYҠZW(`ޤK2UQ 溫JԄm'@A%Zkb'~]:a3if/:~$x7IZd  п@X?P?~9knҕ:a?9WwaR۲ jZ :gL^Pi() ՍIL??=v¾Ԯ}*~%]6cU%-vb%|RQrW}KhQlyE>e6_D>'p[wJϐl%4R `mϼGoSlfU]lUrw"%+4>`|VݨJ|>cX_kn.DVk>of;%>?KO}T'(і ܃@Qj KK;O9xeN.8Ե;T@c[u3+p F&\1g88ʹHO{%| /]~(ɖǩ $=IR+>x@%;%'d[,@߳ݠ@U;(SV˦Xבb&_d3BaJر+G邶Uwc['ᝊg/tے$Кv%N+r;(o S5,$$m5{&iPKF17gEnZx&s^* hoa(Bh*@谖^Ё̟G纩SW&u|&P{h@AA`L>~lE;Z}~]ybߒ's޽{’vUlXsQ7^ wKMfy3bŶCW̠MT=)W|[!I^KYlؿ\S}KpރLV߈R}ߒhdMYK͔Y]2|*g\zδE-SX2Sg/~rWVbbggt Rөi+r}ځ9 [^r=NjV*PA%n8 lf/Qᜊ{:-J[ْe(~K޴D-;,gg:SEo5F훦(fyWpk,`LYl5X\(okT `OZͿ7U[_.fAN,Vl(f)wB×4s9AKڿEW3g{~a{b~SQꒄ %Cb-ƷucVKe;'E H~7x]>zVܰoHX)?B7~`ojk.x[ 6/O !U$3f0:#z/%%%V𑿣e7_Bk{`t:oa_&a ﭂p̵ i8]PjOKS3Kp;W Π{b"ؕ0ZO4#s=o[o [,ъbU`y;ɣ}2ņylqkn|b/U̝iIxvp,ggy^Z* nג,q,`5g(.΢n_TK[(Y,<{Hqx:SX%U_UJ{/>{c =q~S_厵n[Q$k_7~M <6KgSQ؍'l/NNvxc 7+a|Kqg rԪ} N82*u>lS@)Kl&6d3l=7'O>k66v[/(]b[4@;ˊRˆ7-J6}ڗxIӶ.)C5΅ [NRsp]Q#mz*8V EɘroB7FVBbW/QߨUዊeUyEoSk5;_1r\+dUEg9%4w]HPJTG1j,:')}xe6^*8F5\#M+t.QUW|=mkɨ))JQ`͔Nhxm7o56kOó'}--4WGş5?b?>C)%Ju Z »1}. =؅8ʥv+EtT e_j O)t~[3w?3ז$3Gm@_5exd aʻE!p䲜ޓ@q1鏇`D{1Xoe{'w1 6Rܬ@Q eC Ҿ߱/R f >8#o]vfЕJ\Ē|<iz3Ucg '(mβ^-Tゖ,&{̢^裰b7ž?s%VXwh"]ERʄ5or=:K5mE=k*" #^Q^qd˯}+Fg˻_Яp!x~8啁׫$UHv۴(㔸YKԣeRhĀ@(@c[bW-m9{"]26+JY--pH&l|( W->A4 XwjEw$u&u|,ZiI.u$5w6v*d ]愍}^Oi'وzT&ؿ|˳nv` ([\g+AEA1c)b?}IuErUG+t۲LNhv:_P[oߐoljOMh^}Vd{^Rb/U6߬:P]䭢/ \f؞)`pōow]ޥ/PpE?ШIʛA/pѫ_Lp24,ѐ:ST_ b @Ƶε7Vt9-»Ғlʧ*vRXs J2}5!Y sNUž/(pw6ẃ;(A)hg<);jqb0 ڼ(|d`cErWyZnQd}g콄B~ Y>k%7.19cIfVҶ}^1ޚ*ĬlHvk dRLLz @/S[0V@nO|"/7siB.SX Vz%j~;Om g2[~hF_Maڝ*Aqy$$_sJWLTSwO? x24>8h(l4  b&K1 %cHy}׬m\;oCd2уgXCJ|[@$-.&)jɯ,G~]L¼D xn)~}I/oIU>:Pҋ z0#A9#Muͱ#LqB ۃbN>vY:ٔ˖L?!c.@ʄVX;i ԥfHc4"DJjr"0~La@/_aQ6r8w on}v=l d? ("t~'XM~chGyx)79E`84l 0c+'ѻi9%.^ + TN(? LR4HϪ&wn JΕ&~A4W\GWwryヷ=pU7[Bk0dm#Vk 1bmeKg=duXyFazCÖmڮ!V#! X})ϑ!9~}[i+Qqz ^ZM*iH `x#3R^Ļ{@7Vl)Sec xgb|E`-.ˢ  & ےW)#y< %ՀӀ Rp0G=B"= ?hs ؏`h3v2toAA 4d~o1 J iE$bUcث1_~<r6=Tp]t"FUV|^zo_>Cew024$U^nhKZ~}jO]7aNTp ͊l">M3F' >&w:'F^G X[}3}'9$1i/B[vXF7$ -'9t=Yo 5;+lK6 3#[[t ?/JI[txUMs@h~# oW\#gE{lq{kj`O{{VSLd֛p&>g7qJ-HpViiW4~;x`({/sdE}ᗊȯqà YG@-]6q6!K2_H%uvѤ"4YM*w` 07D@qN1ɯvѼ4 PL C XũWug1##wn{kLħ C҄zJdƈ+D&l8E$l˞/lZӢcr|+cLJd#BPV2F`@O{]MmTcE m[Lޱ] vvObwt4 6I|pcY `+-xAv{```fhh<Ѥ_GPvzbrMb*X 6@>S] + ʢ$.c(*L1UA~4P .P)̥wsUR^oόpk=R}ҪΓ6ۀT4~*ɇfd*$&F`=X_3X!k#1A`2Z91<&@шt\dM-aij;kG'(;#'4@H+umV5@+Z65Ve!rυ E>s-]P&vnf%yaܠ^h"|e㙑͓Ͳy"T}m; fuUcsl zpJQ`h~dppx>2qI(l]vR54-B %wj,[>?Ͱ:F $hlAYz+o<y9 ^n`F@G09ZNcMA;#lS&rBJ[+eݠ-nlX%f |6aw;x+0Р\}]~ SQ>kAXoޮr\Umz os>d.q!gQpaP4ro2BD-xyg%Ol;LEC6>_nmUD)oDoבҚi27eLHJ-G'dzDb&Fp:dMec5ħf{] `dbi+tb_Fip-k!&mc"uh>xx$u,T<WC  LC)70k7u~$(Ăjs|pCH}.hb,PFf)4M«LC;~#]x:]ʚ(@Y*a[3rQD6#)++(Xl}*gp?.XپKqRL<]dwsj|qy {rEJWHѷO?3-5=BuEJqEh:K3dzcNTd@gGF uY>|u!mu5WhY?0/ׅIg8UOuY2)TL۵BkVާ~ +rp9QGQ_ʴTi8gNRǭ.eM{x0K8=崎 h=:p\e0|;H룩C-afη*Rg4sM8nȉ?Ȑr&O ̐;.dF ||+|+r[4̥# SfQÇ~)_l66+D<,r,i<.RiŤգ\bX1<`!&~BRNgQv n5(0V]NAYoZ$5a3ؖBk }pJȽRV'B'ᄎYnmN~ 2@A|e8 ymG=C @ L6{hB+Qv"Rh!PP[)d"iOSЌWecMlA+~ˀN!ǥSZӲĚCZv!dQX㹇up}F7ywJDb3iˣ:y:,WD}`F at$i+#&F`5|6kZKf"e ##d{`yiHXsMLЀ/iuick ci4,:IiR`=>S Do^ԛ~ )xBWnODAfQ [vK4|[Q@N4=p?T-P8=碼l h ަ <q6뭲[dW<1yJeDu,YiOK=)w0#!i !8@-B]W枱WOUc3V mJmɉC!܋\ړ5~ ` F ^K7C(ydZln'(hd`ZNKB)ƃ J%Mxpw F ;x1L | SnWCTݤw% yEKn!Zh-W8;WgEP[=rTe(׵TP,3РrKJ%Y_I>f_Ͱ" u7)*qrH9FN`F[^Id5ղgبl8zeX=`+6=c-0}]Iі4̼,7ا4EY/VI4| (ceGLAR%4tlƞF~H*2ZD~ Ijc7C }x? IW|%f-/'O& SLGvC/EcP)#a#;0#0#- ۄkڒZuK,# $ 5ɭC xVwmm /'aA^'QZGn<~J ذvQzФmE[|Hwji!BdiXu@Cyx)2 QhQVSm@2\CG(;ܕCF"FsU]ϱ$UQoځ+;`j@ L0;I ^.R}[N&.T?Fʦ]J|bo6 \fz,%c SS8fqO3#}촵sd@Ucmu5GD7 5<سp*f1@wUM ɂl׏0d dYW4HJp/ٜ͝}7y MQO&EU WWq9F~]D=8hLQnhqThM B-Sh~d17Jg$mSKgIO#隗܉L"0aJdɞ#FZKu-Bl]^bHv!0#0! cZkl.# ^'zǶ{r} ρoB4LZMzMnhT:ңA^̙K`3J#N+1Z;o1R hpߛ=u{>IjU*WY[׷ `F ܖЀUFA\ʌ/FqYt]i;Z2 }׉ϯ!> zm+a[QDm}Km˖~GmbIkݐL Yk)Jģ%@&vǰwnX#!s@[X4 )khpV}[}K&1n B>>b7vxUie;mG* u,=d h<Ȁus05RcKozeoF R -N1lڸ/9\}Ywd.l2q@ދM@.K.S*l7p Hkŕ /ۚ⧞N[{Gb`ԈnǑ!X4H@ߕ%A/Ƙѽc!^_{w\fwfSN]c|F@bE~ZeTÖ^F`u5g1cBEvY|iЊ&Fd(n/0 3ȑlL /Sυ=( Yu rE5' t LtD=56 [>[%ڝJpO<b ӶVtqeM)P 1-x7(bКaX-)BL5a7<1ߩ)XBJ|Kň!ѳ0_5e-Yr’e.)w! ꨕ}\ں°U(f#^_Mw mo❔&P#1n[]1 P:Z@KH-=bqF@Wh@L+ v0M8PVt`/w:`C9,{Ф)D*`OBh&L/C- ֛y%_>X ^W!Y{ z'CPTt xaUeh"ۈ&z@8!i /iq CĐ%;OH{,dW[O1?)ŻoL"/cmH([ B6M$ dZb \^:D Y#0Bh0z!@j<[@IDAT*Sel #!į V F @zς)40hp( u= l{7 {($2@E٬ qٱ +ɿP!yq Nu ѵ *!ۼhoxWw(Ц33D<=7Kj!7.m0bCęiDh)zeeS82N5C}YR\zlyS; 0} 0@ƅ x)s}b;K^k0#St5# m.{>u%y.g[&F((Q\"ģu5ݖQWzx:x4 78tPvGc]iW.M_a$7Y7S{p+jΚKQaN s  0o/^DpBz3 h)[ށpTd)X|OPeUGI&@3 pp$n>Qx_ [_##gNBtVұzKK|^,]YٗҢS`M;kڝ<1LX#c(BFh}MoLv TJ0ťH؁U= g F`FȈ@G}V u'~+{J/lhڲ/mOV M&F4bn"ou?.o/}=}֭J{<FBKc+浂F1CH#۽BSsa^iQamrqEmusU}Ze2zng/C8 x9[ |:[N,2S(lԅQ[2ERͶ#|syl{]}`!G[?OK'mK[nJ|e +5,ݵH~؉iQ l!?Y\Zk O+L12!-@_}d l 裭-!2wu-p4Q&r(> ]CÖ+Y t~# N[ղ>F`F` DX|`Uavuq5F Vdg$<6}37|xCvGqR$uuԙ 6օW4g{̥b4@{l[L~sSTT4De{M|*9w[+ iK#cR13RP s lАH<Ä;Sp X{E{~ x7'  Ê*+cª9>aOVfQ[߆M> Gc\z tZF`F iBDLaK #W)I!WDLmcr9tp#jBA6lcxJ[}0z @8hs?3bP[J² +C BPVRPC>W2,,*GÔ<7,# lN+dU ohNhPU'gBEuwCkyRrX$lMcpVz%Vִ`"h2 ϵ]@C%t/@ l"#0š̫p#0@Hk"-a"P{) A%0Cp#'ѻߜcuT}?78[\.Zrضɵm.$Y"S_8 jOg#=v XMZp,l?ͅs s 9SDZa(]GhHM~WBä[a,I=VTM>z֍b2ifl^|tx&N"{h+E|sԘjz VX9hl)#ODњ"xz^L:W ,7 #P04XQm;]z6:dE&,)l=Y3lJm#Mo'a Eqؽ}v j|4hEZ>zaV 0i˅I"g!ڞ fʏ[~L F)r"&VU?) mQ>WքB[ ?[QHAE5ŪLݗv TvL;Hc{9V&{j=SF0@q1W}';ڝvxv RB@.\kGdG1#@+*Ԡ;d?t7ҥ}g@Չ4lZ0V9l8U0eN,b o&Rq6̩ '~P }V=M2} MSng <(,Fy, -"є}.#`>B_QN&F`F sKٰ8`MDpʝPxEZ8T.Q7ęT66#U!@HLzfd 7hXB⧀/܁`h8LLa0?zaUKiЅ#32Tى>M4-&4fB/n&hଵ` zuQ?UUfhx06Sd/w;iGbhPs@X%RX!31~t=J~E#0#[:4Q4D6\hKqbaُW6zc;e'i*`  bGyR$WFZin*ʣyS&nSօ\ԋBs E;l< !f@'a7I=vTDݨV Ud6J@ 5y?[Ș\ z/Q*EZF(Zys5F`F0ٓ'>… vC^k>0eR؏ЉWAlpK4-k9^3F@7à͸}BWvnk.嚕]{&'z*3wi>9ܩ=:sg6UZ&h̬+2Q&f` s7déъ3 $nlinr/ OTSĶoq{MGgF SaG8֋]K VP zhc[Nv hwա_L>=ʙh}{\KFu@T{ )8HX.]66t=If}dF>R!^iev܋w6e H1EOgLtK{gl@#bƖc:9,L )O騯K'F@shвwaI) `!h3IBf:!>d?8H h9 0_y~ӡ-A H4mCU@C /WL[\b?/J}wDŽna7 @{qc;3#0863)@@.$jlC Vț3 k%MFpZ=Ax ʽb Y (<)3Ï呋r28q 1~V;*rԀoEb!Ӫ|G>}""RnIU@4_g{j=7x+`)<~{N]L>3AqE6t1LtUQ |Z۳al71k4*8a8hڧm>{GFP@/stQZF`Fd%u5상SƆʦf^%h@V4`V)߅%fޭ4>60 aMABWﵓ4N&h<)p҆B!Gbvpi9.LS5gb@?fnD8CCfTdh,tf!Xv \BA7I[)j34XzfIjo *⏌#/ w"sem#0#5%5GU4[cjdECBʩfDZ{1MP6b'2t hrG% +vBDّwsYD"^df` 0YU@M`S!M\hSc4  ҋm'8Np#-Y$R_dYH8N0! y'3 bF`訫}P8e5TLkwrqB*Ua뷽.6-Q}2@`օ( Q3Ȏb uahˑn Ba>? X&j=.hIuD_! l̄wFerDṛSuR.Ѱlk#,2+l, ahQ&>0"{ʶquշY F`F fMβ]'KBܧ&aB(v8A3^_CnL# |7jC=};PXh4=L#ȁvD2=BW( G)m|o0GFLJa>vOn(Q"C AfhD\HU@Yg94䁵n[lybF=5w,GZk`a3 .SL12!Es=˺ C`7 ֿjg#0ÃOIvfiRX ^]X6}Շ<ۖ$nlEr4XՐuL~ˎ%[($SBMw>!AK2#d@ih|v7MV4;9u\ci)RU9a5F-'o@i;[I<;0@'kh9 -h+/^#k@Z)ut{1u/:kCǶ[|Q@Iմ,Ϩ@9dj6΃ @{d9,b) V*h7꛶:WWNO p1|̸̔xV8kڤ$;KuEM;}AWؖMz/tx!So1!,nVg%tɚ8I,:dF`!T}u5Rc)%1d 6˭# %YҶlH]l#ahpӶc>`2a{G V3p3s0@O~.?L~)7oѥtTiRv'0eF wgnF4Ԃ8hU4r@*pvL;%"q:&f-ɥ#**wLʪ'F`F05l`:`ὲwƖC w8+Z+ %z.z1C`><:"oUUP퉎$]nxv%iiVnJQZ"7HP ]Tr.hlƝ4U4? ٯ}34@A%!z_鯌pLаؠ.^EV64?U7b,l@f10/`F`%kQ}ixq C`9M\@soBZXFPESd1*F 4Y~{n1t߇=DMp tw f0 .S@eUa`\^?ܻQ;lZzulQ_kbak4GW3tv hgIDl~?EL^6 gT@66Ԗ.l CT̷@ۺ8=#C0O!W8),yV~<➲{#0#25 :є !慝O!LtF#e# p\1dwƄ>5YmzxLg" ^jVk: LY#8 @AWЎ&haRFM5vv /n uTp!ghȎ3ܖ8L RޱP$sdoH$_:)Sn,bXqto 0#0F"0/9Dl˩F:ab 2|6\)-iFX9# Dݜ@ЮhRIDŽٸ?SS8PeЁS~c I<8CCvD7^䩄_TC 24>%w'GmgDSԲ F$S=~'L2meF`h!drkG1zߣ坞 3Ƹ.V21X߶Y #(C)hkh̳wbFHPP | | _L!#pڿ9ds"@ U4, 88N@x{/rޓLQ +4pqq@ ϞfUHU:yʖ1#0@@lyf{]-`sIBPՔ]zk6BXU67 0a񼐬'vBlϦe3u%ؿ`VEyo7q1%tl^):DS]P-=*@AwjVzuF93}&FZr RsLсk2-l#0#dBA ’#k!mr'i:'r檦}UF ]({.KHQQbիv~~/Whj-Lٚv3&Hr#Jyoyu[Ndu̧=}5\K Z{%ehi Eq@`9a~\Y[.9RJ*$Hj?f]a"HOqk=LcmF` Ɓ`#VWmמyyqM_p8ϭT54V⅀"!}Ϧ40 ,=VieU>Ԁ7iI_(Ph2! L Hgh` &pK0iOWwU' 5%ht# ?XG0owVj>!Z] /ϫ* +"Y-#.Kk('F`BAV64ƹQF`'"UnL"|Vj1@`LnWEF@.!ǁhPX 4I~`1r#0z$ ~!ʒEg oJ-hX kT0V#CbثVC@1*th?X3m>0{z Py~|-M]0Hw;) #9[Zb-dC[͍eF`A`(90@[}-xl!`etq 0ZGU>431 қ۟[7W)mmTLkL4Qd&pp+xpX; 0]p:l8Ut ǔ?24m*mסߤ{O8T4Ϭ}[NdFM6v~-²B+>N Ԭxk*]mj,^%k`F B}a dfv4el ~`0.fY-㬳ur{@9{ǰ`&303É2k{Pؐ4 ~ mmɰ?J {y`Qbs*y 5F)6>VhP|q/?!UYTNMjאcIq6 Fd7B+KZ0Hb;u 1#0#ړ_)W,rl_Y#/%"P?/Ukvea4蜡%u .0g`U+ ;q#2[ N4Td0EzMW#H=S+RGUgh{ؔ -=Ϣ*!Dپ2mˢKL@`uR$.ֽRv?ٞ<@ F`F0)SUu /IMMr}@@y(ĮUM'%k! -/Z<Bu0@NF ЊȠ>FQ02##0.PPంzh`΄!bTd~X*2wΙO{:{'i=U4P@}ŕT=8a1f! X5*q@7X(rnp9ޢ}p2dH?@w~-$pf71 n<$<4exB) 9;˪GϟC'=ү-'(`3怆A&=KXۏmjlvFH~šBǏiۄBkI7΅>rB!i5'9RjMw%奸_Рuoq#0# 9T/TKUcMiK^QJq;wUCmf7[j Z/h.5>SZj4)<OӵmF_FQԄI0 hiۉ/alb34\gV5Nʹj+N)062hbzz';R1!Ue ^MOu,zd5E]cF3{;]`F`h=mN]qĎ"in [8kbhpÌ@|x;DٮR" ')8B̉Ʊ~"?F۴ro**CCk^}&uS@ӪTM]UT4жq%Uϴ쒰]#t5sqPLe-?L<']a@oKZj+nA)p~Y/Ò鎒%=uؾן SR%= hj&0#02$kPW:˪hHGP27*[vM!+2mK$hCDkh\ ACL@&.ITܺ? |vMMڍըLА[*€eS44P)e-Ź 3="Cu`lF LS|6q !kmw DtG]evyRuļ 6mPnȞa[? K@ ];tǂO^̠{}#d@'1-i>0E Q_]PtU21@ٝ4K1@܆NT]Fgm|7P݇p;os0@`ʊY'*L#MMתL`&UghX#W+(ͭ $4xtʥ%/Kw0)Eс#-4_0] 3ֲW8B׀;]FY.jU Ks_ 0#kneX{]R&"1R\H;1#&،34-DX |:A`&F-< m媠kWIj *Ѩ2 vѫ~"HG6o7= z be?47%oWNmᨒO;4!b@g&R?:#cen; 5Q0 ]gmaM/{YhRk z% aGS`F`FdkgeS؊ + Qٔ:=YX!NL8x~}LghCC)l2I[1C?A:mE}=zh0w߼cOY634|:8GOGOC^O5u5uخ9 ĎsgK~!ٌގdu#Vk}3 Iber`:VY!W}z15%>-Ypjc[{݋(FGumc5'kb5Ԁ YkT@ LEEcsgeSM$21(A%S[Pj1O`R2#@3 88w8ȉ Zи_[{cK,Kuru@F fVԲ3 ~+KVQL{Vӵ4hH*,}fmQl XV'eA.\kf&Ń}_P_'QPQ_'LrȍU [ɒ[^ïHgnp`F`F`B@ĎH_҃cz@@Zj4 Q߳Eڂjwu*pvހ.sT?E)EEd-iΩn#V4Qq*6iR&U V6}0ԙ[@=ݫRd5E-SNr"+r%a aT5Mo€OV2NW+K?B0%Uҵ՛>PD&wðך(}ay/S( ~#] J3d<3W2 %K˹]OL#0FIGMvT6РwmuG۩1~8M;z{{??_z`fypGb D*UAT(ͣS$x >^+kR`< ['EBD/΢*24F<;l\EIQ~ȿy4dbR\& -7K&)ъ vn$v556wѶ嬏Edž¶ɍ,aoK,鼇Iz \ !XǶ֗t!T6,)$ d#0@^̏\C# j4M Lڠޓ!`fÜ% ԺsM0X[hUD 5*h-') S~~ -ZpPx:P5>VȓツU~WQSVrCe,uPO*%U o+/r@.A0)=n\1Sg?縉tgQR+&)e q_=1rQNI*K#1?Fr7ˑ;`B{HzY3C@ ǫ-^xs]ĒR9[v~ٻiR[C3̆m X,(E31#0#@{]ͯ1I}jY 2-=Pu8MAsb➡AUА! Yrz ¶8"[Tb9Y zl&<(cjԲ$]tFbr-ٷJ}&iBNً6[`[iu,p|xI a/H7ޒs𾫾?c%:@{猍zʇԈ>-#0A"vL;UKKJ)IXJO}uv[!"MnxmhRG}.|x}?Cn%cdͿdG`? S2i{Vë_AM 9- S%ū` ~è4Pֵ`wb*s?}mK(FTm77KhRА8! 09Oc2޶,lhyH*uWku5M3 F\/ .Д=^2Iil|;LKiQ p`]>c~Ud-}+dOݖURZڻdWᄁx R{KKOX~`F ~ bJ[](x^8H|}o؇!Hy:͍ggs:%/-'7H;PlJ( ?']QY?|:߼]xw-k);[S B* @?5 Q%U¯!SB TDTUx Ƈ{0"dU"ܪe[/!!m!CQx+ kJ?vZ$lkGZJ#QL#0>&@q mHS L#荀OߍsjuEsYeou!>c.`JA!zXT$9ayhOL)Ny&d;;H% Fm0"?$ zM,:ǟp.|>oSUS`[A'q:EnTŞ~XJ kE=  ٺl6kvQuUD@]qq>ġ9Rt9ӄZYʋ= ">[f\,7Ogg}/v`dЇϪG|0M z~z ;u#0!H9EgSeIq֏:w0YSW3=kdI+ְv']v"وV< _¢[}0%Ȫ 3-jxr5)0h,vYtpp"I-m-(2DP`[r5[}Ve%K-(R!L Z !oH@zi"̲!@{j9DfeSf̠L15K.]t-Ctm31#0@oiuJ+\|huGX(nk@ES{æ0# |1]W m5?u GFe4v4}8Td Vfsy6aJ9?5iY L%~EI/A 5R%[n Vҷ-1~C !8[ { E@ǵ?&9 [(5 hE>(S ʠ]M1Pv%T1Mqcv@IDATLvеI(]tҵ #!ߠvA# 'ѻnecihlن:6\B$#?B<x^2mieR?)a+ZhI_iԷ>+X!L uT6T݈Mk )KSqFuW ?WI\oA29!umsZ. wn9a(Z+`.w)W-k1 ª ₄ҥW6sjʗ4íF +@&]t¿-#0@ԐroF_4sM Xf0l6F){;jS_8ҡUg&vA;55 ^Ѐ?;Ư̛!DRxr~V:oc2 [\wx%^-))Ui%4! w/O7Ux} ؿBeQ,zH\m yuYyqwڪm(VJG936T9]{t %仸.F&]|-zEF`sN]pV01#?v|c̗֘1-S3^cڐedGnIU[<ȖRl7TOKK[SPw%^_K~+bio3[M_cx+h,oUH k%襔V E#&S&ٿ)~!ɍpZXʀ}TfމQ!ڨ6;>hބ5T4L}"#)PJe~&'["S a&1 q޵P[$_`7)Zu|? |jD蚢kIeOC`X}gF9%ex! UMoO+ZnKģO`M86ն8E+ i3-?hhg?h'VF 28pK w7x" Z2wG.g4*s)[GipentE큆Ekɬ\wv)e\EA4C6eeGk\_ETMs@ݴR8JiPjH/ ꒖U+qsC o1rHXY8o\{HG 0Ivczt]6t2쉍e'cq 2M4mfFp<\+ROږ: 莫ʭn>8O=~X:&\ʛ&F2ӹMK FZ}\ Ѥ+}o3[f| AUK{^B1 l5mNtאIf{@-'Tf]M@>$n7t&M@ izX,~XB&*{a9NUeNMFʅ{T(-)bw9Kj3 t/70~~Z1`f)UW,jl:"-dӜę:78=crF`%ºǗ aH AQ7q/dEwԥIG&ЀU`,VI"ChT*2&I[4z.| ;@d91g9@)>e ձ)_ΨP"sPv]|E𹜶V#ͨZpFr/ (3|Xnӽc4&^ZxW%hpU:L1EiV%mdaX8 d%iی#(@-Yܘn[кNu*AdKq*we;bǶ=ib[K`j HCq ?fC&G^L#٦y)lH^_66EOUSA\h&yr @2XTP-A]w8W._%eE#PC,h+XWVGl|9b- mΌ~S5`)b*^ 6qaF3x/Πw VA7T[D{ppb2Le`:>/ED<[kBIg%RhiVkk[k[Z֣UMU!BPB?"c53c73wfwv}'˚R,*P m}^5-OzrbCq M~Uʗz9Ӷul @'|w $K ;ъs ˓-({ >ba `'K#92M,lx qwjIڏEepv^s>VU}l{Gexʔ{FC nuPtJ6*+zy<%fN}l#ȟNI";;cd:ޜUIknޱEVLv2:b Tt ٯ =G2/'F+;?#U@1 nh L؟1 VYaE:{0"LkjCeyJk\K4!-`Fq@quU0KAd55Gn#[G$@\Ja,2@nCS09ߦ5M<ϼV gw K4wDLAQW\\%%Kp&·diV &ԷP|Mfq˰V4Y7]N7H0C;U~Kcn:ޜ/.};Pf1wfCܰQ 2}U[6<EW@S2>@%? ٖDt6JcNG;locfL@C2bEavcr;Ku~p! !ȗ}ߺnf8qsBK Y=#4HEڲOơ;70538nGY&rHHCUS up# e+m D4=wEYAixcM.)5I| ggN&y5 ϙPg6_a\uC^;qw 24$]|˵b !.*hFVI>E,i0Q1 )T hx9|yekǫ/z\͋uu n o}?|RPCõkVp%:>ߣw(G$;tΰO5,gCnGCF{KɫZxw\|K$@F?`ӟҭ]lOd-zǪ 7ôuS^Iy_P^8jbw=S@֭6yx)w5@PC?5u-K:=+E*)? 6K6ʀ<'  M᠘ 4%#;Ѽ'08*>GXTY;!~^Ӛ]Kh|_@Nr㧪5l~;LIr$IEv9ʠT O8r;(A%h$msPV,x!]*jW_( 9u&`U{J| @[axrzK$[XWZ+R*5*\ _ $ /YAvTk2AHf!_2d`HUrk(Jٳ4 ve>lMmqc>.apx^[ܾNyKj岥}wo1$D4 V@ dT˨Ggqi8(=䧟2nY}Kˇ"Lq]{ob ۷-Gjm5GFڔy7Mn9bB8H{j9в,| `)7`Qam7oھ#9m$@$@]ȶCO7:g.r' .06\N"k. ڠ.y ZJWL#P[\pΓMSeo3nzۇu#Pr,jlR0$״ XnlvV` CA/fڙI@6&Sye%*1e`Q#_Iy-y]uk[d5dM МJm2`dg&t$TA iCLJ4A"z;Y;B>_Ds!, eT@CK+cIjK>``۸ajrTJjg[ݚC}K*c tE&5'Q_1#;C¾FGs( ȲT=lzcA`F۫k~IL·52N$@hzViE oۘ>}L,8"#[Qy-|\HegԣVecxY`H~p p2 r7uw~n75 s 4* hQ?$r'cdtp_OmyL4YwdU!1ϲ۱$fۘJ[< %P4@1$/~\*XAV^ =!߶*|1x-zߏn[Ѿk-dlwdeq@ˡ@YF441%z0,xeD6A+Q\*lģ?ajmE>cVXP[\ M#lKv| mƌľܦ+&=nZ^AVZ@4nZj[%o&G@] @"J_Ҫ<@$.^j_Epg#',^vtG]2SUYiKfYm53v%MjJKflo'-_V~~u!=5A4?En~!E#Op*} ~g] eQ~W\xFiJ`iܿh^,SF> zA}l N>3_*߶=fP?L[ <Z~e"A ߏw@A=d(@+%^/ˀd>OC/F13.I4(_@bL:иH'pMsZwOU 9bxfK+>jZNy-{β[?l-oY'Ӳ CQ`7߶)4mbh-ZHxs#A L$@ X.]RJ ;/p.D+iEfOV\X k>ly+n![Ę-م5']IAs#'T~x+l2 ]>B~>HW-%C ::nI0o*@MBcAAR @w,8$GW@~L:)$ )ɔ20*lSx$tdm܋H5%ۛZ4{o^t % A^[5*X .ʗՐH׮qH$!I?>W~!Gkk%ȯk/(vܧiŕ'P~# Z4, x 5-Ef8 dGEM gNR pRv7Ԍs$Kmzܬ: zU*;wZl$SEuZU=KG8W;ѥ\{P3>!L(r )}ϥ H>KU=ͽt_'A5OW4@O>(|Jh* TE+?l("Z|$7"ֲN~k%~k:w{%-\X9g]OK?A"ks2(ՃHVyJeҟAdhv/0uL`7կMW/Y Es5{i.}fPT꒴%K\w5{ŬH nr9wFf  A&\ vl0[?Ln4-C$5@d$Fi 5}gw% V@2C9@ Kƿ/ v N\ɬZЁP2'@RJ$!48'3-R,ƶl`yq'BȓVAV{lS=.Rvþ+ߠh Kt u%;N MN3#5 9&;=2g&AL| z%A$VmаpQ l5=6нGI sUo*[H$@k I 9uMɕܦۻhS|) u8&XyA ȌOJN4Ji-Dt:(&xgo5}^JWd(FCH/CA0/$h t5g ZI_4 !.&2.{+#)hG3蔠+ anǡ>1:*Cr n Rz;9>nGӡ# &CAr]"ʹt2%IG~VE]=Ox=E:vjn94t`>t߇=<ƶ&ld $'lϤ͹7VI*\BAr ed@ZU`Roۆ"@IAѦs5=V ;:K)P+uVēiM%f5}@MqL<ȭ >0|or֣ haE…9kHi֣ jl#᜜;jLfABu$Fp"\y_fUBA f#-ːs&a9b-01OU2[{A^'e)|&kgACY$ Me&S,7@BrDҨ);o$P&= c@ClI-Lq遴~I`Ѕ_\3b#Q$הiavZ"FzYF$`Ey# (Dnt;CL,I45}˖ʝ db%P[.(4T IG.} `21 2东 m^f޾g>?IvBa@2w5JI|6@],$:Ka~k{IЎv3O N $xIV [@?&AP&BH>e듨)?j5xh]:vE4H*p={!;m"tNq:L$@ 0Xƃv8 _p?i*l΅/e j⴯T]B~xMt_5ҰG-tU`A^oO,vJ#z~ >2F> _ D |sHVF3} 'CjOcfU3% 2o{&(k~/#JK(6% g%-1C5,kSTJK_T-:JZЭ5؎{͔riy0QiA39Lְ$@$`*;RZn&i[ Jډ߳۸a. Xd]&Nh}Ruqf9EoL!P}8z"Z\c9]og42yuj_Y;M4k:i-Lz4E)F;@,'qĚ$q 5 #ۡh?*뤎>~f$:m6FUdШ/ԯAx/.cD ־wo/g1S S.җϓBc&ɍЯ!'H}G847rOR( m§FUf+7۠[𖀲h.=)o+b$@$@-j']_RF+Ζm|퀀v.¯ʦ%;-j-]Z1#'v X([_gV+ 6/[GjtIEB%F>d ݞXvrP$ ]b !QG#&ye4M ` $ئa?ck2}:t=d lAxG%qQC_Zo1ʕkyi_:Rrbrpt)yG,K\y9+%RNCF'(眜{Ag$@$@XoG[?H:'OU0CKVpR{Gic+%L`}Mq 岸4%P.=?8gsӴ;j\Weq#A36Mu2Yh,$> fj. l?U+[hdr0/Ӑi pw5Lf`-H_*)&+3M0#w)v7z8`zܫH}{]TI⚬1 BhR&7B$zs$|8/w&[@$<z 𜃑ݧ~ok&9<^jq%c ӻe hy'2{Fq@M 7``Y6v+?r,-OK :eMplt/Ӡ= 7 6t#4Ź> LveB_@V2⇐u:B4H6hԣD Eluht0H> L6[kZ ~t%$3?&{OL|dVK l_e "3eo  =g/kmlGmOZ"s:$ Ǖj{8L>WJ$@q.WV=۶ĕ1 GThfS Hy5͹|}yg ?`fH:N~5ܪ}O^֗FTjgPCr^@G$W/{YAb | ڢb{4Ͷx$(CPPo&lB2>ڽef WJ t{d6 Ln RzOQ|7J_*L>χf$딠D ztk!O@>ݶ(n] "eUZSZ-:Ï>ۆܬx'N$'m5ho]xd$@$Y%'r=oxx3fbrG+w&'H堜,]ᙑ;>|U!UV9rYR}G.UW]A7Ar#;h'h2F4ЧA /$X{dJA>: uTR8#Ge&9Յ/po]to@MZ Un ;Y4?Py߱r3虎wsK|knQ+ivx?}y'hVN"ܗ.8as^u!j85u6?Pp@ӹsK1 fI$@$@s𸅏)#hyeEzx+ ͍lN*XryP4:3LI05S'ӣ{!U3q̂72cǐܤ*o:R3B&7=Gʊ@@37y4$l&2 .APP* ow'S| r0C 6eC@_?SC!3x߉Cb+d5{ BS]`πЅlݩBHE$9䜒s+zr  ӏX[\tQ~՛zڨ . '7V]5a[|gW}{m|6\<xr"5 GV 6uI n9+sO;{ phv)+˱SSI 5-1rcx $-k+\r~?$3'ts[1/t%$3ݖr|I ýPao7n)ݯ' $K j=Y>% _0yO`HU||_ƒ\-hx[Bi%@;>ir`橖| @9$璜Sfgz  `HJ r5—py'oʞL/W"q]>&Y~*?i[NJ2@VC)hAit^i_kFAEoal2tt%O{M-#jyTϢPPMf{ IP [Sй2`^v;c?LHmxKp`.ȯdXG@!F@z>q%KAr-.@_rA뚀|$Is3t J bWUPXS\4S9DĽc6&#N]9wsPHH&0oR"+F(Zm1{7Oi}fOHjϭvb/Jg xH&\a5\Ե8oTm8fd2m];BAYA%elyp*!Z{r=v4 : z$@V̉ă- d$ 7@2.&e_R亮 jPr I @xDgHU ] ɲBl2|)-h }~]I  @ڐk_CC!4kqNi$=y) 9W$d@C]]\NHEN= 839 dsDϒsFΝj<[K$@&PsvvNZ -Oɀ7d..vؖ::3E>5I-Ch.{ h ^N]ÅXB_&T3@zXg)k;7y.{z7a9\c#+ssT3 lcWK+,}IɌeڗѥ*&qr|tꉅr#4_Z%>H;sŬh{G%ЈUE5e%]R\ #ZϷ|޴cJ*(k.WYܜC}$XӖ8U)F"N>~`|~Im .fǺVK'(4H Ņo*[/āx+HIdoV@5Rޕ $M{JYufUf" `!d ɵ\h9Dk%P2cQYGPx-C@ sdסP2'+< ߴfuk!$ |_eQ|Gm+`>k yy]gIסCWB!({ Z B$Q/1sg2ndqN%-Z[u V!9WhH~d+p+4wEf5ms[ү׆O;7J?ĪEBXU,Uۧ eGL6v'\a' >xQ-*W\ Nj4 fKpUtM2$:P0MHdH^۾W-6Zmh$A$}}olkh؆~KfI`>O> ' x 0A *G`~NB&{$pdwh^b|g|ƭ鵥$~w;9ܔs;`Ho! ~x $@A@>h.+X12tvAFxAPmu{& M t]p\z!%`x8_[w]/<G# X3 yek.Cʘoy <1N hH\َ,{Oz$-+6ڶ>:nLM`ĺH/_44.[60#c7K] "'\'C*tc4_:H$@$ »)+>Ӻw9eW zxS]ô̊71jE7JBivܜ1r5w fzN>YnHH ǭYVvlok` StKkUFM>EE}0m`k' _Ym=W 73wH@'/nwd  t%?spAzV:lVoNx?:נD-9bI= tN quϑ3^kAۺٞY4 MyPȱܶ ť6sH@ |o+bۑYHq Vb;C`yQӴIhA[m6{[snQu HHHHHHHHҘRйcd-EFC UF% h)=nT7pQL@$@$@$@$@$@$@$@$@$@$@$@$@$@.@K -f|eeVJX' !$!UfxƎ蒜Fb$@$@$@$@$@$@$@$@$@$@$@$@$@$ 4 춵GdQHC8ʹВ):L$@$@$@$@$@$@$@$@$@$@$@$@$@$14x 8<^KBK'?Ӓ@"8;,HHHHHHHHHH@2 IDATHHHH5 hp ;9^׶sRl:b`;xYJ{9Okr7xᴣ'_$@$@$@$@$@$@$@$@$@$@$@$@$@$ hH k/qn)Le鱖iiW0! (k#״^>Wo e I FvKNCYT:ӓ,K45w!ݨVe%h!              0¿UvOJ]1Hڭ,ܕ-K*٪R- 4AN~b?RcЬoA؄ U~Yik NWʉ=;S Y`V$Ȳ~ {4d YI>M``"`y(bEn]6{Ep'             %* i}Vv`4aOHOA cJ9F0CdoK񈅾lvqF> 1: S +u_XVShmh5~#*\i"HHHHHHHHHHHHHH ^ h'DВ^9C7jܸAeҘ#{M8zeZ*#. yE@xyu|),"vCcH--aHVzk#rz:{E[ #;                                                                                                                                                                                                                                                                                  p؜WIENDB`flask-session-0.8.0/docs/_static/logo/logo-light.png000066400000000000000000001376431460047617000224140ustar00rootroot00000000000000PNG  IHDR,%sRGBeXIfMM*V^(1fi|,,Pixelmator Pro 3.5.6,2024:02:11 20:18:01VSw] pHYs.#.#x?viTXtXML:com.adobe.xmp 3000000/10000 3000000/10000 2 1 300 1770 2024-02-11T20:43:42+10:00 2024-02-11T20:18:01+10:00 Pixelmator Pro 3.5.6 !@IDATx Eǧ' I- r}fwp* ʑ %** " ʵ@EAM&\E@CNݰYvfg{eg^dzUե@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ $G`\  @ @ @BCnFE)L@ @ @ @ye)>,a @ @ @c0Ig{@ @ @ <)"0Wݠ @ @ @ N;31@ @ @ e˨+(yy+m]d$@(:AkÊA @ @'(IEMU|R}P]ryO= @!U_9Hi @ @-F`UD)6X#  bq4N @y&`=*&ϝ&v@ @ N`-)]FlNV0@@`ϗF>m @ +4}_ J/>]b @G{Gq۫ϠF*RȔjs҇%V%3&=_ L ֿ%`[$ pc@ @@N XζttDN"ڲ*wOriK  F`'RI:}֑3  K& @ 䈀gͶo{*RHv0@@ޤΔvj2K}IT  @ i%&W7J%0@@TcgKH'Kcf9 $L  @  ؾ#p>_un >_E6|ilL"ۆ

EE>?"7.!@%:, ^|%X/;y/NA @9&b7Iw|# C:M0]ٳrl0@+J ;$RW~q@"QcA舠|2c\O@ @ *v'f1}?%f"_JvorӅPNpO@$݇%[yA@rw+/؏T  @@+(rkrުYh?+/- ;@PC4zj&AR@3rksN1%ou!@ k[ U)\iQ (mt@ @ GvR'6_T϶yF&MTm-A\hv5ݵ MzU x}RFݣ& @ X2(h'o^T:@}El[Q  &ۄ}AU@pHD]{W[R/8Dk@ @8BwV?kzyYN@'!h^ T#IRE @S=} @ D`ysFms*U@G5P* 85!B@6\Q7ntJl^ @ CdZQuZ}-E LRMbo! "]nKn/|1+ @ @(O7 a @'=> S'G>Q@@"V#z 'nXb Vԕ !@ @YFOaG VJ,U;K=  @ ye"BeHEE@>*Qs  @@hD]4G+14FyBНJG֩4WmRA4 xL/7ӽRi;Y @ PC&n6 Uv^ %*lPҝ:g ()@ oV-rk9F @\BwLy|I~ K!~ @ @y$ggMm?yWx @Zut H @ ?k:rީ_l @xi͓k/t~2 F NY\|{A @@H5p RyWynk:U @huVo8RO`P*4ҹ׏+m=|Gwuv4B@-i$RJܫ֕ @  [_E1Q@Lu`"u*(roZVz;Œ&5kJ)|A'K' ,Md^iyӲ]_ +W 6 @K5xtߒy@ @ Q~9qI* =3j(aZgHX)is5SKAm)4=gqX =^/ '|Jv.v&@ @@ VAZݏ$p$u׍+uꝖ ][|-^5|T:ڽ \| *qi-h5&00 gOS@n 3@[IgH' @ dGD]DJ R !{>7$zsB SSf0}AP.LI7[1P=K2! ]IdK% m} @+ cYDui&1@ @0$ꢼ*ω‰2tW,1 Rl/T ?r͔ô{^$,ܐ @ HB IspRPڵS#Y)i+)rqq}Aأv]V x}*#|#$WM;Qg$=&}0ySm}>a-*Xߊ;VM n឵o-W| ,~*1a- laIwr/X }qSG:F=8~:wt 9{>.TNߢv'ĪIa4@`ʌ>[~QYU"0[QH']W3jf!1d+Cז}pެ^[ K*rd®JpIlPldn!!cq*5%~VzLtt(niviaE|zzkz5s)[mݳ.ZN:]6'Mഥ Kb3hs/X?*i҅_جOJJ+%2ۀfi3cf6W Lʪj`~o=K{C%~#{_leQ5\:Rʓ"U: fM|ɮ\--@sf}NIQ)5k X$4Yst&0qCC)7fb `?RO*(Aנ%>!MJ%,U?2am 9C{x@eh2pp+[Yi&ò5Ү vcОGm=5hZL68Nm:5i:oI?JHI}a{YfOIKeKkU!&W9a@ KZ=3YgmC .g]qQ>r9>>MA D9u^=γ ЗEڴo{ۏg iXY ,=$uKi$-1]ou܇tSX# @M{^Q֢Ϳ+5lANP@sڮyO%k !. ]?HnZu]U= ҫEА~p݆%F.8&ʪ:ǐJ^ )+VV?n杘f\w dN&Fd6]; 69tHEFEA@ kWl^*8\fU/f6woT.˅ҍge3/s2)aOK-(Q;\/a0!M몱%l8b[\3#xZfm޿IE2WӶ5KLH!DKXsKMru_R#ͶQ6!l^#^K)()KzNMaƾTWH3R6^-nh_I#;NO=n!8=nlX)VR nxU`>IGZ LdXq \{vKўE8$`~AG{jJ+@\|?RU?K.NSPlDQ~_+R;JJKy8n[vZ-R;-$Ki٘,'dpF#nQ]UG u T Lyr\Vˤ0A /]~|w.,4.T~۬zwPr^L+Tpʑdze3^14JV.}UÀ0[W*`ퟤJ+s%>!^q'*?JkgN MbMiuekOjFąhm-_ ov=ZHԵel30@{wOgnm@ۺgݤIsp=cFC hȴg/Ȃ;XD݈X8@@gj | @{WϾaQR&e]rÄ[ho{?;>sDm[wnmF߼YG/<)}:=]U WXi7S_ KHd 'J'9loQY%mF6vсˤm5&uqB x>#5bv?K6g=%8׾_2V1̸\e-rPJn)n}UVm25ğx5[QS= b_eugaWb}λTQ  "]MhsOtڧ|5 CW1 3ʛ'>` *cXL@[^pEqM89{ ت$.0 Hp(Y钜uĒLB{^-zdj٫:LtMBJ:|&:Ȭb- jH-:b4h*FwM״o ?vd+}3[}1wF,Wb} .#0MK{M-dC K_ȦeZC<|D-6]7zR*л^VF(e1j2P*Ҙ^MB!IUTkm`ϒt*R橄sl$I>+5pWSiS+f[xP$RåRͽ|er$&j6yGkθi5ծ([7,b:Vg+zhY%^tK ><=,tNsBJj7d+X8S]F;'$[WAKx}ZR%IKgII-4IzyxQBKEƮiUWZ+^B :k~#焯:[m~(*)m*E12%pݒ"1ryJފ37f<ؒ]hz1x%=0@%>,}L%JܥlE u|t}3ٝ5>ʌSj 鏒oáLց[%Oll&|{S%}yv7tIq8RI:5^գ{fu%lu^U=WI{*PrT50vazXjd{$[ QKYӶ-N&JSnsFNzUSWH /ٗ v!rپb9#>䜅L Jtr|+q8, Ց]ڶt;>Jmwty?}l 1ʻ.zDJCׁRQtMQϖSHKyHg*:cɌ8I:K\'][!wt̏m{4EZ_:Uz@s}5mJm7Ҥ/+XmLHIaۖrKB^ˋ{#A`(=!-vwOD$i)vIL:K'E[Osҥ累$^ŒO`.ѯmKW[p),m;׶;B:I@fF2§ǩR٧Վ Gyb\7?_nձ4,dRfo ؄NqO~..֓lqR!m(uH%4>XDgU&n|Z H_{]5eۖ2[A *g"AY\l8nջqߴ>8A_풾Ύ| "pj`>?6N4ˤCI\}IcM9V3je_v"oUqS1YܒtT$y5mqr/FJ{$;@riOtc߃s׈}xt{{&}^֬& g.)7[|]3 ?}N&?下Y'꾬NdlY_g6N-m>_H 9p/ 1LuPA*fw(!kw@I[W4,dfv<غaп%Q@[_{DzWoHAm@@ UV blFARL׊1~_/Fu;C1 /j+d+NJͶZ|u# ܥқyY?ߔL~K<:ڬ6~|"o߰xz;;NN:is=7gAyX ?E50|jm`@TUAH֋Z)r{[$쁌cGpqʞ NPAGɕs@`xc [2bI[jQ\J__gqY)AX*.{U&@,uI?\V&VY.|9?8B]RrU!{ZUZVջ$>U Hm}HT/ahħ6̂ob<"$v gUB"%u yQ <YEnx۱6u80G Ȓ$74$}&kv$A .'Ta7?q+fXj6i cXԈ.WH6tnh鉭Ѓ ?oj;%C- m"dK&Tt]7̳1 Kz_N\26&un0gJw9Nwo38I:KV''}]j38RJ^M!_!Q˕ 4-}:WyAPq_LLڱZuI[ۧ= 5cl3ܷa)|,ķ'WlbwboV^UG쬭RMAVr͕fm 5t`X6npQ:i~k%lAs7YH%ZճU@V$dd+ɲ2=[|_2J k[!f4u*9%*d,jɵ~))[iL|I$wRwDS8 "h{zb{NHsӈHM=1G,A󪌚ٔ,,V8wNyT;ݗ).k.O:Cfc/#JI#Rf+l3iK/q 8D)W |5sn""U ԙK}#t*sZrYYJgڵIۻ iT_K:媝N&piQCli}[H3"o.Xl\#彎8 dF@yP)@"Yo9]jpT-zcaNWζ)}ϴ]ݻ{?Zfa%0oRP޿/PBSRzʍRb?RC_bξKZ!ijTʹ*[9Y6wjXL`>[kh߶BV`#*5c.?n&2-B2_P."O)[>KtN g%o-[h|VW9ڸԀ}YNC69ɒg`v}{˼A kr%\ըϿt^o6#Kۯƶzw+UB۶S]Y *#NppTabd1$I`0Yw)Iǎ}ʫۥK:mUjk+F93B9ED)Q7N};Ik7Y p3sY]R &YY^_Gm%]t]M~:x ſ뫭 ܄[fahDݎ`[/+ղgtP)߽=nƓhپI$`GX lvx"_J=d]~y=(C,Đ=勓' . Ym m@Vea~8Ca'B(?VG(flpue f;n٬"ui:-u9]o=e[9QvZ3ʰcÎ vao@2{uW'ߤ앤 SsWM&@OIHҩY1-3#Qz@C]~QuX`Vp!i[ޯU2-wP?d30$N`E3agU0  @o&*.&$1@IDAT<4aPL/%Ol[[٠([:2A_tu=j瞉LAʯ~=lZf^Us*gh&Zf9'pS&=IFzrЃ{Jع4ڊ:ڿMatT!0c5sHn'%>o!P@X:AI#pQWjm < N^2%zPп^AV><BK$K2[!6Uڊ{ĭT{hR1!Q亥Ǻ^K:5 Y2@i^2ZJ$܈ФE, c+g]y7aIӚM`-T~W*๤>+7"Ɔ@zN,O&۲/)[' ?5 pjI;ҧfmB֤kD݅LVWu⊔;L~W'އuu4zzF+֩tjmgI:[׉6 |V4KJkKN!?ip|pAA??4oG?yx$0owѕJajl_/Nke[b$=/fk*xbW?2wG(e$A$$꒴$ _U pݪImWktH%:<;K "GYZZ>z^:bUG.,D$fwDj28^}4p66uQHF?T|T*M0A߈GXn6g29iqK~Yx< Fɲ_/sE^8KL߰8<-warYIbBoĐuGW PlgOZ;`ҹ:Yn ,L'^d Iy4/T4],D+n)%o֪쵕~5ݖi #IOV\ OmmrM<2.# KV/ӶQV:Vg>OsGmϟPQ5**$35NMy\*wk:#ִǨ{\S^%b\|\K":xiNK5dujÆC޺&Q!0@ k\=y*B~ Mm0anFmaz#x ZN>%Gފ{%G.j b%=p9=N]Qg]Zzq} -=V}--+jm=e6J/៩SoбU嵈}I3i 4TP saݠI[p2K:5dyjvkQf x-\4f5eE=I@ۊ!@h:F=Y^0,w@{w˥elÃZlA8Wނ%R5 "hq zm_hu@ oފo@ }<# ,M5YVZcS?[YAdq{n60kf"|uҷ "߶mk[W~!s8ĩZ[61Umn[ߊIK\^l]Lqu)իf+>^\ߜaIԝ%_{ kӷ.'=[gӊDz T aq 6ИTXU' PnY{e_r:aR*l/ pc[mcWeUUIĪW\&5:"5ӟ(1v͖ǒ%uKg#֮R>&txHr`Q5l…@VӵBv6Kk |D:}['Qd}L}H;F-wBv]ၑlci츏Zyt9C}3Sn }45L%p)v!Jg_#.@fI7p.> -rvo84UiL.2)J2vJKa%˳o+Utu0mr{De/ZR'RG&%qW, [Q#ʯ k6)G5*=sy0IԹb>Jxgu ,M]1xO@[Ⱦ}Qes #vŌ0<˞g{;;fzAA6bgOy{[c$Dʁ>sTe}*GwNSN+5uj!85k$ iXDUIimXm*E>lf+ %U[jJJyj$'QE|@(?Nk-@?/ݫ~a@Fe5ھRq󜂀l8 yl'H?Oc[FU(=,c:zກ_;Z[W~Ua\%*QWu}o5(+Ti%&竇~T\ac?%Qg=Zgt~'s{FJzǻ]D@X IzXDfz43emW T1(@/ںz};̙^@ \!7}VOail?s .v6kߵQŶ:KlKni4k6n_q5ˇ>\Xu Xը6Vi=plQ/ h=yxȁxސ6^\j6Vc߷Qb;y_OeWم @j&^շnR^Ym' !)X[; ^߱jmZRXq:H#p[JWTmG]5c+?ryf7Qg+IO&bIֹŚ#uk_R?!GKŤFʸ-j1-"ZgOZ}f#kڥ5Q6V(Y*M8$꾬lKjvNXB3[:QǠWn!@%P.McRMTRܯXlbXT:"j)yzDe(SQMà~6 WKʁlk׭9~Iն%xRN#q5ŶTz,`Y*j7X̿yj-cm:R?jtVam~^%ofy.(4^ώBo-( ش(]E׭czjڻz:h鼾I.m݊Al p/[9\$}8 rupՌ_^mog*睝lEf˸+ӌ/mqJ+D]QWӝJk4FW z6lm8j~mK[AhCG:hҜ00R[ъꑨ" xK ճ$WA Gm!9Q5#%Q H>E]ת *l:iI ޞr6s^ knj9uX(m {IX,+h֔X5( jv-ʻpҼ3{ r!(SxGBCMCp{d=[Q`t PozƑuk[jvbD+ԃztגg / mDY3]]4R֙-ֹ8Sk; Ԓe/X-{8!q V!P},GjDک0,}u R9!0){  Jve,Yg "mK1۽Pk Ftjq8>FĴ޼ ^Q73j;r~U[ukҢ:cZ^9}qa&?Yu:epՊ4Vz͗Dח P<0}zE }{ֹDD$hV;jՅA ,dbļ@`B ?1V ($ߩ}@x,YbSY5vn9 {gZ >Zo{9kDk>z~Ѱcß~_;Gl-Gp:vvrn]}X$! @@[B34Qc WWqtXgnٞm[UgRl qTc?y?f W1R81[pDIJɏd%?aym+x5^fMd9^:psW*.v-]})Q(Zc/y}T#QJs P\n}{|-To{]]HD[ѶͲu mkAKm$]^f?}&{INU qq+xTo[G2Hv?<5!60S.'׭J\ޟN{++TzVԽtD0ds5luuQɹ%QK%^ !(=Z꯼>~T7umcA S /)i #5}Y# UJ!ab4yH::4Cu6Pχ**Òu8^kSÿv6+^rIDݿ Ƥ}AugAR]x%)GU[}Fy/1^XQ'36lu϶K\&8Կng*Z eU|a>{tG?uD]De / #̢n+`^k0$ޝC P@Pm[gyg兕]fN?F@d:͒?=Ȉr&AMLK+HVړ bMҚĒnyJh6ą}P{%l2:+,IjOPxN}\fCI5-ZъQ  f~pgۦ/i P bh{D9zcAtؠ ڧ\mR@V'`Ƭ&ixV.J%nN$mydj*7 ˪(5|y$[1YTvʸ}@,=q,yh떇xL'Iqk^'rE7G8~w_H{<+H9$5 @h0/U^^%/ڦK܉ޑJYyaE@'qdW;WX'cu~Vu?mˋ`$[%WdZ p=*-q6UKJǪUgS3u9Z>DݢVu.o]dKYn:m|:e|DëG!\\C@ uh%#[ӦzEu zb6$iZ@cվEH`Jj+^5/J[U TwwTCuVt^o`(R:b-oy!p|:Ŷasի6}L՞E;o7rr<:IPm/oNcy~_K  ,nq ^nYt<O'e]h:Y&xP- :=K~v9q Ab\8,&@mˁpyߨ _YP]>ē~8$&׿ \X펂 ӓfW<J.Uξy#\gw.uXO8iU$4H3 m[A!}VivC40<4 i}.ȳ"x?(jK=p P4c|Go)s~bD]dFPoڰ[$b3fZЌ/V,?{Bgu>Otw[8[ba }Ym~%vnDc#;>ú7!LbVļϣp*m:Hc7\k]=QҮcB@=kӕsbwSnb5ݩUR)3RiF lob)+%Qg@l) [ =Qb ԰y:H2i>>s-[/ڐ]%8eFZF+ubθ+>62:/:K\FM O NVɺOy^ ]nzh;7ЯApFmW!C 6ϫ%k|1[/ m/]։Um}z.E.$ݿL?bYOXX"W6k\7_LHԽΨM=|)FNyR)gH x{M"ZP@^ uɯ@%@_n:,фpb;;p ,tJ`u'ՔPa w= ͫ.etd4IgDdǢOE^^iIXFN[ɿs[ 9d#_#zRIBpŊ<&\Qg+lV1W<vvG;\7(?6rs@0Ri=Z X^̙ n`hu[J ]3 aĦ=:a 1@_VhH>֐l/fɪfI9H{6DoLߟIܮjI\la7UTwRگøfY%m6pbyԶΕ"oB]J +^Cfj5i<[HԥpIՀ̘Egɨ8@#3mW/Kq%r8/]=N`@%K FLOMZi4"`,13[ڴV},sSh+J6l f-t mYDV?oI37C˥8RWm(WIK ]5R\\DW/ AޒU ^U4WIsic>'Ŷ|hZ&8>|)sAC"л_]}3+ӿàt}G׬UoeM[^n+ ,>_#.@`1[Ҭͧ/cLԽC#uIrf7϶$ $dvMKWnȉm&uǗ|vay{#6")^Q=r3^-gwWn~IԥpIԥ& @ (YǶ6z_ ۦ]ٲ`T(=,H3fw5kǭP%3rBqIIOHJ|IqYU{~Tz9ne% 䳾q\7/@hY<ޜbE]uIc&/(3'gu=Ganش^C! @huj)} o5oOtKڔ0%z;;ro.$'`_Z]hYڶI%#_1d&hUpd~b5x|K0R޶ySȹ2ۺkO>[qC'+Z\uޜ'IIKI:+$W=C>k")K3oS .rH !_:C. /b xGjS尴V](=fܑ/QŦl97򢾩M $ ueGe3lߚNJ2)f> H2W򉒭!U5cɺSif+edWY\7_: -Ob`+4VU䊺<32I/F zj:j"WAѯ} @H}!|R^R4@xV5~wS@`(0Ч<%`[e9omj8jVY$#5~A]|VTc]%ndqV Wsֶ*r ʲ:$Wԑd=YvtnκJiü >mڂi*jZwt?@kfiC`@[wWl4*äJFmvmQ;h<\jlC,`[+OVQ%\>iPϓ6VU'zSgbp+ꌏ`wpIH9:Ku#Q @ =&=7r .m31D`pt馑Np @j߶2C2l?ɦ-j6.11e`O[׭&TOJԽ^R]kwzZjծ(5]OfԽE*CD rgğ@KG^9=nv]iutwIxM`K*X͕:AVU H~*l*S+O XM+l8M |9җdr~U\S+JPtHD@D@@[-/g{0Cmv"mz#u)E[_APal7gKk! [ Dש~3y¦mS _oņ]Qt;S$=8I5gsPKʵH'tHϔ}(궠R ms;[!E 8+<-’ԙ,֖@ ~ qtP N&(͙`oxMmjE]kAZ,NDp\1L%w"Uu`^au^a,8fp_@BIlje)&+֚+궽ZQW3Scˊ!,V wu<]s@Ϧ"@9ҙ[b5^=fl53->R.vPD mF{|?"`;)xΎ#wLyq.1ӳtZ\Q*] DXǏ0\~VWY+l^h41eZQ7z/RKSQvo U*Wi6S/JQ>HIT:E :[ZA[MV;ڇQ:LD ] .ŽkMd5h P&_sp "LWayT-65{FJ4ZQ74г_"uV~k@](5[&Ebꢠ2D@D@D@.ts~EIJ ;ya sW)UFp{-NږBB\a#J >4S 1_o0Nm7jEn+%O=*kHwb>̱-XuA,[E@䆫6K̽pO/J+٪cvD@CtnVM55|-s[T]6 ܅fMMi&PgTEכ>KZp ZQxXiG?:ܧ\-  &L+PU0ClpֵwLWr#pzH9P:wL;uU^@PW?R@Im%SDrKLVUhʓq/RLOX>VQI^ށmG}{ijEwOۋ%Vfq "D7" a <aP~z4]P>RT==$?~%h_"/+85JA/PUXR{& 9%MEKo`V=֋/ei` ZmL֫Kf1(I??/?O7iB5C tlO}f~!^.4T$8gQ!;[ę0No-5]Z7(^uU٣~<cU?YLgL]*PW+GD@QU-VcE Yӓ^Gm?/^0i|c<24xېO*T&?0yn΀S<|t*Pi[pH/Wpo&XˆKG#Jnr"Aj䱲vPk*P-S$Nr .׺&79[J^O{lO Ϣ2Xe6") ԕJ)#95+ޱ{][MpA&#MSr(>?.Ty9#y/A p/d w}X &??=/p\)rg8[\T L-[0Yq5ǹbJXUpib_~gJ@+jIX`|Uh>ڵ60XgM4D ԙ2E@%9Ζ:'Mvg|ۮ<:bs{@pftbKa p'Էv>1oݞfXI:_FK*h̴* 1P9 %{7TPǸuyOGrHJQ! (T嫎,ŷQFJ;I2͆!ۜ8 #~$Ė[Ӑ*זbMNy>=+PhtHD@Os/Nhx攺 LWݶV9"#PuadUXP+̚lF߈Oɟ^2{:^ۿRKws: 'i;|Pi `) XCe cgSyЉkڭ.,.)d@E·=@]X szm6~/}4Dsq5SA"MJa~~07G }A.NnjEK= r N^d+P^O"qI/\qt}W'LЏL|+Q:IDATɏGC-h~FW" vjnY={7`ug[;?zq2HjG }z&?PTC-w=g S`3źn˪&h=ߠB?%uf-Y%φ?ʾK /5=-L?\xP*qo_>7.8TZSj[׋8 u틨`uӕu~6`VT JT.uDa@J^4۾s\lͥLD@#3iZZ%b /_aۦ\[QhT8CNx$ }.ī 1WM\ۢGiə8`2 _ڹ8ts:ONV(&Q]Ư8Up=UsI}Pds o\[MnY[gkBLdAuK֊ALtaqQßd^꒤E >y_C$je :$|P" "1kqHPc$3~oWlƵ~!{2T6L #Hu ݌V>pKXQ7m<0v]7PAe*Ij˸hiwD\N@6#C#Jݿ} bI"-2D~[r5u~I>8#iLjG&`hU"  y#Xvomo8g;yYl1ϯMy~DH@JA&n'sK(( YF+&TE+e)hD n-R0 ~^-|*QKݿy ѯ:ga CT7bS#7 E~h6M1+{Vk뼪c)_u*, :>g.k!p͌HW"YHA.[KsT[Ɵc|Y#G^9Vk_y*0cQ MкPc a Pޢ&=L$3X#XQGH U(W)pejI,y }T2NFE@V8&dn8G s8_u?Yd񻚎)^9LLl!'93sJ'Pjvb KE@"" wQDR >w7Mk(+mh\v[Y~,H{M̴/٤vm~`./])gh>\$@:( z**P깿Hx~k~⩢\`Ƕ׉#[a>h/Jx=t) g>oY-a>so:k^4!2 ()PSJd}J{+Pt~xήn~ XQizs٘+<v>8N^MMqƫ;ͤ ] H7yyҭq82nu͉uW{qBkEB5t/-!YtGQEPE|0r(VA}OVx cE{.e\]egn e J@Vz>:%څW({^.qԩ(ۥx?x CwA[0>T>AȆ=eSA*'KL65;jܴQ.=$D ^?Ņn meZuy;V2\ͤ8ګNa8 S%L~5J?Tn62XSW0DW=  v~2-Ppُb/ΪEeoJqw(8"p[}*m8kS+L &7܇GayB,OUﳶ#)iTj6S+6EA,ELD@!R(V}?Uꮈp/(uF s=^_N5'd sn3iO-,$9?,CixUU̕^) xpJ|ֹKWs?ᑼF,PQ#tlre2\VWh,XTev@OILErW@@6ںErHJ\h< *6qBaVٹ,>t*; YGczYf*R5CEM3or &Y *" {u tթ2I`Dc[ǶYhYNdB7hweO͟7 mHad֎#Rhu8؄f>#HG|/B͖!Kn,D)@Y/hA[ўӑf$3GBW@jH #裯.axK=1Xr*;b9h?^4GGV$Y ^b¼S:W|V.S~$0KX&"@m>?y:Sbӭ;r6,$qzfȚgo߭g?ނCeθ{P$:mbp#:P # AW0\6!nƕ QhߡeUͿ*F`.8T˭ JJ@6c }% .ꤘ݉g;ӇM`a IA/‡| :]P:Sй1@T9}-*QT@u~QXW8 ۻ~b+i`u9S瓥c~r0-Q0:??zsQ[` ̋H ]R/ݪ}M d> S{L\p`X#9Eφʍ{<4߆zꪱBn{2Wqvpt58d1u68?U'/Q|`10rTne HVf?jʸ ЏMlI䚰yϗ)w.A]:-" Ϣ+M%@F}y]oXW$s@9_'*2_?YFRj-G8 jtrTj 6~^eQީHD7N@]a.:*"#B4FUU57a:յwZdfo|WNKyw)K.$y!/m8}ƆUÐq>`'0Yvmqk^,8+\:%XYz=tT8MWYB8yA?pcH+\x]%6+GzLScYPm [" liz+'?' Y60U%+Œ}Q%P Fh5q yOKkB?,> CZH)qRA8" -yJVAӠQITN.ld z\M=3ĺ022se o=ˤKi~8D@D q?2q'XNf]&uMnmO뺁~9n *++v/F&05u9@k5u߱,`s 6K oS\MwևP!'$e⋡I9PpHc84 NYQUE|H imaȶ~ 4KJAx\*H׋SWQH{nq'J|9GjLbjEM5&d.'aMhN.IrJrJD?wc+_. x:Aܵo Kb&nX㸞g'ڻ??iڽk 6". {a=a+˹syݴ{&?Hy{$Pп!Uo oFTT efՆHD&eFЭI9z'@?~ OI9N&Ӗm6^ j#A3%^M` +0`o>_VXi}}⒊?O /$d" " ុ`˚T#'D`(^nCzG pƋVɋ_`aܙ~?eowԵzs[{S[|pݿae/"b|kfнDVTt<~6(ZXb rr y~=d0UI|`?@+';M86a;c N )$}Px|4r6*p#oI*m ym>4;!2.yL"J':W"]\cr~:R0)N^YG=Pxl'47P#\A 3x}h)PguyŊgSƺ6+ ^BME# >|/|7w(WUb(v{ !='޹ _ 3ԹzS]7X'h4?/oM!^IЏU&5*t")E ю_LGh *CK+gqF`8σ) r_ u:6+{drr"{u4߃~`(-7Bl4'+'P.F^+Gc+LVdk_Hcrho $%^G"~PLE%$l]D@ji'M#Hwcq.@%4~|3eKrXm J q5l!bl0|Y Sli8@KнϠ 02o\t.TI.l *‡_ ~Gv'yJ~[Bަ~[uejsekU:D8wtT.H<|D**Sf8 t@t&NatT㣂KHAҰ.}o#眊sg##?[L'3pt-'H׃t8=M:P lXṅ;fEjMy0u㬵Z۳UֶX8-ppW`K+x^aqЊTn-wQf'mBqex'!BCܲr+h,<Ā=4zb_b?H68agup>"H88 ZΧk ~[C6+٨c*9`7WL:{igM(N㤂g㬰D]cp6).Sܱ7@,2.d l0K}Ĺj95pCy]"up'(<:(@]&Qu5miZ5vXZ=sӭ;oYjnlJcin8g k͆).O/IETP A,R`mm{DuLy]9^&b7?'B QNЭa 2`N @3N(AgTS 9'v[>'L6-6pV Wn~&aK@zh2\m0E~ T~#eyC Rn5At)PS%FW)@1H{3tĀݖA/BfXc Ѷ)3c̴D  wiI ?dêQyfjZ[QvmsLyEÇ?l8Pcj*h = mL#o:"8yNLUO`9+~k5J~Lޖ~ug+/"8; W@][ЫP;+2kV_ C_BA O3,'C>:΀Ծ: `8x)e5j@&=\"f1jDf xwdfW {wlS MUp)SbUl`]]q4 L80: bQ)U8FNd.PVK-!Ii59{X8g+KR7>'ײmpoيc^'pV6 _euWͅ8AC : :qEyP^D ,^LjY|OAZI]~/"*5N?8e"Z}?νZXI{5qLڻ?mco֮7>q6>lү&팡r&UX>C,#aYn`u#=WJ<0_ɿ(muv&AB+@Il+ }'qiooi\ZS~_p䧿 1(ϝW_A߇&BcJJ |VԽT\W{{t6@]{Um 2u<.H]͍.pHz6x>qdvxëm`6 ֡p1^7;:+.NPoJ<~ 06/or~2 IӇ'BWjWCC˴|J։ ]|=ĕlJP%+R-q{utA 4χj=cK :gKE_dd%^Yi zE>|1)QdKYYsRJ.ͨU5@]fV  %Y@9 A:n#t57xމQ2w/l2t:Er9={?"JDL%E.t%se,^.[mjqP^Q"ppEh'8랓I3whjOCáчW`  &xb!COo!.i6ޱ{mYZc@syaTFAǹ٩YU7Pw}w^;y2CNV9) %ͻޝ9?Pq:q؍o&fD v݂=6Q_8fC{]SY0"ЊKN@] *4 1x]HGD#Bckw8go$Wͬ06A%7BQY:=Iރ s&NjC#YÐY*|hobde|"`7;w'[bnm=lV{0܁;Lix{][ޮ)&y/{L xQZy/ڻV ,>WMP?:bOg}{-L!՞^^FS 1H`]Z^cy9b\I4?-I8Zhftuښua+ UwjU#N"0Sl-2i<{!榻Չ>AI6*7Oɣ s[WsgD " 6XvWϿ+d8qjp0bh;ӠݠU((Я.=b}06pq/ ɖP}E{*t2Ā]m)8w+0fD˩Ц? l%cS-:Gif+NoNPl#t$(WYk}&sSDnM/P{PD@* 5gŜI3˯˳Z}ZIúgq^޾WOjo+|)t4y]WUf@[͚ϩou.C3>p"WQày߯G8K5T+8*=ePnds0 WQfCcR  ^1Xv;p n%=dS-:G/J~7rbJ@mITNNdg(?x %?QQjiy|>m\PW@]] D@u3v܅~d'7+;=7Mwm{_p#pe) I7=޹sĸA'$^sgTewZ=׻ m[ނ-U:cw[k\4-lU8L8\+>L)i`%)m@iy8Àzk*m!DvQԴul-h6,9d# UG[}ay§u4"Qn}0|3wH+t x%OcyIX,W WX0p>׆ ޼G[UF 0}-9@*?F?R@q\эu)oO3~oR #~o8ގH'BkCW: qŧGB Pڃt[B|VxI[tpU6.i.2dsW }/obR|']Q7.^ g˨{$tHA&"` o6|ܰ8^hc&uL|?R?or83do/;fы^#.^'z8nzO3"Vg~޵fP]g{.:5W`nuURދht'C@p@VVDx},>ę6 ڐ1_@@\uc/.lUox%jm='~ ei"hu6g~srEWX*|/u0d§"?z=JoK~m*'=a [gcg40u3U~{c DIw# ^-s^E@DTgwzkr3ikysgm9.Lؒnrs#k:C0\6<I^@I@ C8[q6zl45 ou_Nj ?K! |`Y5vg5d"POS,0gSե*|`LͥĹ9GPO?yA =P _8c(XsYfA=BEw_k$v|ȬM^_dۑe&Afvuw@]t}Hf'p+8 ; `CHw`b,-XW'-|>EO@=SJm!&BB+@y׼#G~W2HI@`Ā*cwOi8xIx|:ƨ}x<X{gHVj@J(7l ]Pj=Ζ7 1HVH..fN!? 3000000/10000 2 3000000/10000 1 2100 300 Pixelmator Pro 3.5.6 2024-02-11T20:18:01+10:00 2024-02-13T19:22:40+10:00 8BIM,,8BIM Transparency8BIM Transparency8BIM8BIM H HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km8BIM!aPixelmator Pro 3.5.6Pixelmator Pro 3.5.6ƴ,#*#*#*#*8BIMnorm` Background8BIMSoCopnullClr ObjcRGBCRd doub@oGrn doub@oBl doub@o8BIMvmsk(ffAffAAk{{::?ffff v%?::{{k v%AAA8BIMluni Background8BIMclbl8BIMinfx8BIMknko8BIMvstk< strokeStylestrokeStyleVersionlong strokeEnabledbool fillEnabledboolstrokeStyleLineWidthUntF#Pxl?strokeStyleLineDashOffsetUntF#PntstrokeStyleMiterLimitdoub@YstrokeStyleLineCapTypeenumstrokeStyleLineCapTypestrokeStyleButtCapstrokeStyleLineJoinTypeenumstrokeStyleLineJoinTypestrokeStyleMiterJoinstrokeStyleLineAlignmentenumstrokeStyleLineAlignmentstrokeStyleAlignCenterstrokeStyleScaleLockboolstrokeStyleStrokeAdjustboolstrokeStyleLineDashSetVlLsstrokeStyleBlendModeenumBlnMNrmlstrokeStyleOpacityUntF#Prc@YstrokeStyleContentObjcsolidColorLayerClr ObjcRGBCRd doubGrn doubBl doubstrokeStyleResolutiondoub@r/x X'#!!8BIMnorm\Flask8BIMluniFlask8BIMclbl8BIMinfx8BIMknko0 '  "]8BIMnormh Dark blue8BIMluni Dark blue8BIMclbl8BIMinfx8BIMknko! IKRRR8BIMnorm(4PSession8BIMlfx2Xnull Scl UntF#Prc@z 1&masterFXSwitchboolDrShObjcDrShenabboolpresentbool showInDialogboolMd enumBlnMMltpClr ObjcRGBCRd doubGrn doubBl doubOpctUntF#Prc@AuglgboollaglUntF#Ang@VDstnUntF#Pxl@CkmtUntF#PxlblurUntF#Pxl@ NoseUntF#PrcAntAbool layerConcealsboolIrShObjcIrSh enabboolpresentbool showInDialogboolMd enumBlnMMltpClr ObjcRGBCRd doubGrn doubBl doubOpctUntF#Prc@AuglgboollaglUntF#Ang@VDstnUntF#Pxl@CkmtUntF#PxlblurUntF#Pxl@ NoseUntF#PrcAntAboolOrGlObjcOrGl enabboolpresentbool showInDialogboolMd enumBlnMScrnClr ObjcRGBCRd doub@oGrn doub@oBl doub@oOpctUntF#Prc@AGlwTenumBETESfBLCkmtUntF#PxlblurUntF#Pxl@ NoseUntF#PrcShdNUntF#PrcAntAboolInprUntF#Prc@ISoFiObjcSoFienabboolpresentbool showInDialogboolMd enumBlnMNrmlClr ObjcRGBCRd doubGrn doubBl doubOpctUntF#Prc@YGrFlObjcGrFl enabboolpresentbool showInDialogboolMd enumBlnMNrmlOpctUntF#Prc@YGradObjcGrdnGrdFenumGrdFCstSIntrdoub@ClrsVlLsObjcClrtClr ObjcRGBCRd doub@oGrn doub@oBl doub@oTypeenumClryUsrSLctnlongMdpnlong2ObjcClrtClr ObjcRGBCRd doubGrn doubBl doubTypeenumClryUsrSLctnlongMdpnlong2TrnsVlLsObjcTrnSOpctUntF#Prc@YLctnlongMdpnlong2ObjcTrnSOpctUntF#Prc@YLctnlongMdpnlong2AnglUntF#AngTypeenumGrdTLnr RvrsboolDthrboolAlgnboolScl UntF#Prc@YOfstObjcPnt HrznUntF#PrcVrtcUntF#Prc patternFillObjc patternFill enabboolpresentbool showInDialogboolMd enumBlnMNrmlOpctUntF#Prc@YPtrnObjcnullIdntTEXT%92150a0d-bc3e-9349-adc8-869fb042a4b0AnglUntF#AngScl UntF#Prc@YAlgnboolphaseObjcPnt HrzndoubVrtcdoubFrFXObjcFrFX enabboolpresentbool showInDialogboolStylenumFStlInsFPntTenumFrFlSClrMd enumBlnMNrmlOpctUntF#Prc@YSz UntF#Pxl@Clr ObjcRGBCRd doubGrn doubBl doub overprintboolIrGlObjcIrGlenabboolpresentbool showInDialogboolMd enumBlnMScrnClr ObjcRGBCRd doub@oGrn doub@oBl doub@oOpctUntF#Prc@AGlwTenumBETESfBLCkmtUntF#PxlblurUntF#Pxl@ NoseUntF#PrcShdNUntF#PrcAntAboolInprUntF#Prc@IglwSenumIGSrSrcEebblObjcebblenabboolpresentbool showInDialogboolhglMenumBlnMScrnhglCObjcRGBCRd doub@oGrn doub@oBl doub@ohglOUntF#Prc@IsdwMenumBlnMMltpsdwCObjcRGBCRd doubGrn doubBl doubsdwOUntF#Prc@IbvlTenumbvlTSfBLbvlSenumBESlInrBuglgboollaglUntF#Ang@VLaldUntF#AngsrgRUntF#Prc@YblurUntF#Pxl@ bvlDenumBESsIn SftnUntF#PxluseShapebool useTextureboolChFXObjcChFX enabboolpresentbool showInDialogboolMd enumBlnMMltpClr ObjcRGBCRd doubGrn doubBl doubAntAboolInvrboolOpctUntF#Prc@IlaglUntF#Ang@VDstnUntF#Pxl@IblurUntF#Pxl@S8BIMTySh"??@ @@2TxLrTxt TEXT Session textGriddingenum textGriddingNoneOrntenumOrntHrznAntAenumAnntAnCrboundsObjcboundsLeftUntF#PntTop UntF#PntRghtUntF#Pnt@@BtomUntF#Pnt@ boundingBoxObjc boundingBoxLeftUntF#Pnt@,ʀTop UntF#Pnt@`0RghtUntF#Pnt@`'GzBtomUntF#Pnt@v TextIndexlong EngineDatatdta << /EngineDict << /Editor << /Text (Session ) >> /ParagraphRun << /DefaultRunData << /ParagraphSheet << /DefaultStyleSheet 0 /Properties << >> >> /Adjustments << /Axis [ 1.0 0.0 1.0 ] /XY [ 0.0 0.0 ] >> >> /RunArray [ << /ParagraphSheet << /DefaultStyleSheet 0 /Properties << /Justification 0 /FirstLineIndent 0.0 /StartIndent 0.0 /EndIndent 0.0 /SpaceBefore 0.0 /SpaceAfter 0.0 /AutoHyphenate false /HyphenatedWordSize 6 /PreHyphen 2 /PostHyphen 2 /ConsecutiveHyphens 8 /Zone 36.0 /WordSpacing [ .8 1.0 1.33 ] /LetterSpacing [ 0.0 0.0 0.0 ] /GlyphSpacing [ 1.0 1.0 1.0 ] /AutoLeading 1.2 /LeadingType 0 /Hanging false /Burasagari false /KinsokuOrder 0 /EveryLineComposer false >> >> /Adjustments << /Axis [ 1.0 0.0 1.0 ] /XY [ 0.0 0.0 ] >> >> ] /RunLengthArray [ 8 ] /IsJoinable 1 >> /StyleRun << /DefaultRunData << /StyleSheet << /StyleSheetData << >> >> >> /RunArray [ << /StyleSheet << /StyleSheetData << /Font 0 /FontSize 319.0 /FauxBold false /FauxItalic false /AutoLeading false /Leading 357.0 /HorizontalScale 1.0 /VerticalScale 1.0 /Tracking -10 /AutoKerning true /Kerning 0 /BaselineShift 0.0 /FontCaps 0 /FontBaseline 0 /Underline false /Strikethrough false /Ligatures true /DLigatures false /BaselineDirection 2 /Tsume 0.0 /StyleRunAlignment 2 /Language 0 /NoBreak false /FillColor << /Type 1 /Values [ 1.0 0.0 0.0 0.0 ] >> /StrokeColor << /Type 1 /Values [ 1.0 0.0 0.0 0.0 ] >> /YUnderline 1 /HindiNumbers false /Kashida 1 >> >> >> ] /RunLengthArray [ 8 ] /IsJoinable 2 >> /GridInfo << /GridIsOn false /ShowGrid false /GridSize 18.0 /GridLeading 22.0 /GridColor << /Type 1 /Values [ 0.0 0.0 0.0 1.0 ] >> /GridLeadingFillColor << /Type 1 /Values [ 0.0 0.0 0.0 1.0 ] >> /AlignLineHeightToGridFlags false >> /AntiAlias 1 /UseFractionalGlyphWidths true /Rendered << /Version 1 /Shapes << /WritingDirection 0 /Children [ << /ShapeType 1 /Procession 0 /Lines << /WritingDirection 0 /Children [ ] >> /Cookie << /Photoshop << /ShapeType 1 /BoxBounds [ 0.0 0.0 904.0 505.0 ] /Base << /ShapeType 1 /TransformPoint0 [ 1.0 0.0 ] /TransformPoint1 [ 0.0 1.0 ] /TransformPoint2 [ 0.0 0.0 ] >> >> >> >> ] >> >> >> /ResourceDict << /KinsokuSet [ << /Name (PhotoshopKinsokuHard) /NoStart (00 00    0=]0 0 0 00000000A0C0E0G0I0c000000000000000000?!\)]},.:;!!  0) /NoEnd (  0;[00 0 00\([{ 0) /Keep (  %) /Hanging (00.,) >> << /Name (PhotoshopKinsokuSoft) /NoStart (00 0   0=]0 0 0 0000000) /NoEnd (  0;[00 0 00) /Keep (  %) /Hanging (00.,) >> ] /MojiKumiSet [ << /InternalName (Photoshop6MojiKumiSet1) >> << /InternalName (Photoshop6MojiKumiSet2) >> << /InternalName (Photoshop6MojiKumiSet3) >> << /InternalName (Photoshop6MojiKumiSet4) >> ] /TheNormalStyleSheet 0 /TheNormalParagraphSheet 0 /ParagraphSheetSet [ << /Name (Normal RGB) /DefaultStyleSheet 0 /Properties << /Justification 0 /FirstLineIndent 0.0 /StartIndent 0.0 /EndIndent 0.0 /SpaceBefore 0.0 /SpaceAfter 0.0 /AutoHyphenate true /HyphenatedWordSize 6 /PreHyphen 2 /PostHyphen 2 /ConsecutiveHyphens 8 /Zone 36.0 /WordSpacing [ .8 1.0 1.33 ] /LetterSpacing [ 0.0 0.0 0.0 ] /GlyphSpacing [ 1.0 1.0 1.0 ] /AutoLeading 1.2 /LeadingType 0 /Hanging false /Burasagari false /KinsokuOrder 0 /EveryLineComposer false >> >> ] /StyleSheetSet [ << /Name (Normal RGB) /StyleSheetData << /Font 0 /FontSize 12.0 /FauxBold false /FauxItalic false /AutoLeading true /Leading 0.0 /HorizontalScale 1.0 /VerticalScale 1.0 /Tracking 0 /AutoKerning true /Kerning 0 /BaselineShift 0.0 /FontCaps 0 /FontBaseline 0 /Underline false /Strikethrough false /Ligatures true /DLigatures false /BaselineDirection 2 /Tsume 0.0 /StyleRunAlignment 2 /Language 0 /NoBreak false /FillColor << /Type 1 /Values [ 1.0 0.0 0.0 0.0 ] >> /StrokeColor << /Type 1 /Values [ 1.0 0.0 0.0 0.0 ] >> /YUnderline 1 /HindiNumbers false /Kashida 1 >> >> ] /FontSet [ << /Name (Apple-Chancery) /Script 0 /FontType 1 /Synthetic 0 >> ] /SuperscriptSize .666666667 /SuperscriptPosition .333333333 /SubscriptSize .666666667 /SubscriptPosition .333333333 /SmallCapSize .7 >> /DocumentResources << /KinsokuSet [ << /Name (PhotoshopKinsokuHard) /NoStart (00 00    0=]0 0 0 00000000A0C0E0G0I0c000000000000000000?!\)]},.:;!!  0) /NoEnd (  0;[00 0 00\([{ 0) /Keep (  %) /Hanging (00.,) >> << /Name (PhotoshopKinsokuSoft) /NoStart (00 0   0=]0 0 0 0000000) /NoEnd (  0;[00 0 00) /Keep (  %) /Hanging (00.,) >> ] /MojiKumiSet [ << /InternalName (Photoshop6MojiKumiSet1) >> << /InternalName (Photoshop6MojiKumiSet2) >> << /InternalName (Photoshop6MojiKumiSet3) >> << /InternalName (Photoshop6MojiKumiSet4) >> ] /TheNormalStyleSheet 0 /TheNormalParagraphSheet 0 /ParagraphSheetSet [ << /Name (Normal RGB) /DefaultStyleSheet 0 /Properties << /Justification 0 /FirstLineIndent 0.0 /StartIndent 0.0 /EndIndent 0.0 /SpaceBefore 0.0 /SpaceAfter 0.0 /AutoHyphenate true /HyphenatedWordSize 6 /PreHyphen 2 /PostHyphen 2 /ConsecutiveHyphens 8 /Zone 36.0 /WordSpacing [ .8 1.0 1.33 ] /LetterSpacing [ 0.0 0.0 0.0 ] /GlyphSpacing [ 1.0 1.0 1.0 ] /AutoLeading 1.2 /LeadingType 0 /Hanging false /Burasagari false /KinsokuOrder 0 /EveryLineComposer false >> >> ] /StyleSheetSet [ << /Name (Normal RGB) /StyleSheetData << /Font 0 /FontSize 12.0 /FauxBold false /FauxItalic false /AutoLeading true /Leading 0.0 /HorizontalScale 1.0 /VerticalScale 1.0 /Tracking 0 /AutoKerning true /Kerning 0 /BaselineShift 0.0 /FontCaps 0 /FontBaseline 0 /Underline false /Strikethrough false /Ligatures true /DLigatures false /BaselineDirection 2 /Tsume 0.0 /StyleRunAlignment 2 /Language 0 /NoBreak false /FillColor << /Type 1 /Values [ 1.0 0.0 0.0 0.0 ] >> /StrokeColor << /Type 1 /Values [ 1.0 0.0 0.0 0.0 ] >> /YUnderline 1 /HindiNumbers false /Kashida 1 >> >> ] /FontSet [ << /Name (Apple-Chancery) /Script 0 /FontType 1 /Synthetic 0 >> ] /SuperscriptSize .666666667 /SuperscriptPosition .333333333 /SubscriptSize .666666667 /SubscriptPosition .333333333 /SmallCapSize .7 >> >>warp warpStyleenum warpStylewarpNone warpValuedoubwarpPerspectivedoubwarpPerspectiveOtherdoub warpRotateenumOrntHrzn8BIMluniSession8BIMclbl8BIMinfx8BIMknko:.$8BIMnorm\source8BIMlunisource8BIMclbl8BIMinfx8BIMknko")0.*,&'',,.,*/.../()+-+*,+-+**297224?A?>;=<?>:68679986/033410,.,-.24114./0/-540333053/2-+/--/.*,,.-***+*)),0155662799;83;<<<>=>>7453666657:/*--)-,4756687768685::99::?!ÚÚÚÚÚÚÚÚÚÚÚ&9ÚÚ!!Ú.Ú mÚ~ÚÚEzÚ1ÚOÚÚÚFÚÚÚÚ ÚÚÚÚ Ú#ÚRÚÚÚdÚÚÚ6Ú:Ú:Ú:Ú:ÚÚÚÚnWÚÚ{mÚaÚ|XcccccccÚ^֬ÚLLLLKÚ-H̪Ú44(44Ú'Ú x ÚG½,ؐ zŗzȲL0*f IKG\7?C9p?=J٦D /.GPҢKG!8AU&Q 8>,B:nŖ._=.̈tgMxoܓqs'F؆iF V.i|mdȚ (,E0DDC[8* Χ[I_|A[]f[]xr[][&2][]0nq[ ]h [ hZw[ VRGA[ k[ s[ 3[ @u<[ &8u[&u['u[:u[u+[u+[3R,U[s<O[#G[s[U[z [ [' >[tttqa)[i%:[i\\Z$[ϡ[ܼEED[=+[w--[R}[[ūSa[[1[]L[:r=/.][][xW][Mi<][n7][PBbM[ ([/Hn[7L[fJ^[R[n}[[&[2[0?[>Iԫ][ԮF[a[[x&[8[][]>[F[33D[;[*[dm[ZH[Zu S[eu[ul[);C&["+[}Dp+[?P2Pt)2(bVN5!klSH9nm`k%zuV??k_|kIB|'(2D0웛E2(P=$?L$Ci$y$uuvudn d%1?؆>>B˱Ld&]&&&&5M B]_H Ur5 i}&%&Eʲ#5 P,~2 |:Fjg&O lC:v<~՝  ! cƕ]ԡ<B ! %?.+96)(#PĬ{m5dPOu|۽/ h/.F{^E j"x[9 < a   5eBW#?###v###{## ##ʜ ::: !$$")%'$$+++&$+**'($()((&*&'&".66.-24<7=48697024026710+).01,*&+(*,,1*-/*,.+&-+*.-**,-*('')&$(&&'**(**)**)$*.,10.1,.106,,327.7256*,,-13*-146)$($$)+../0-/014603-53/67758989:8989:8989:8989:8989:8989:8989:8989:8989:8989:8989:6:8989:898989:I6698989:78898989:9898989:398989::98989:7898989:98989:=:98989:98989:98989::98989:<98989:98989:898989:.998989:9998989:9998989::9998989:.998989::998989:8998989:998989:998989:8998989:8998989:8998989:998989:998989:998989:998989:998989:998989:998989:998989:9:88989:98989:9889U889:9:3899889:9889:9=989:98999989889:98939U9689:9899888:958798889:9896699696789:9;89::9::98889:9:89.5995;89:9:899989::9989U39U9889:@9698988989:989:::998989898789::93989896989::9988999:89:99@899<9;89:U8979@89;989889:989@89<9=9789:<99@899I89689:99@8969989:;979@899989:979@89896989:899@89997.89:;9:9@89989789:9U9@89989:89::99@89:9989:699@89:989789:989@899;9789:99@893:97989:99@8989989:979@899989:99@89998:9;89::979@899898899889:89:3989@89798988889889:8989@89899==989::99@89998U:989:@99@899986=:9889:89:9@89798997989::9:9@89798898997;989:7898.9@89589889=98989:899@8989789:98:;9:89:89:9@898989:99:89:@99@89@9889:9:9:89::99@89@989:9689:89:99@89@989:9839:89::9:9@899889.99:89:89899@89989@98989:99@899:89@9989:98989899789@9989:U9:9899889@9989:.9:989:989@9;989:7979789:989@95;989:898989:98789@96;989:;9:989:9893:96;989:99898989:9;;989:9989:989:989:9:989:989:989:9989:9;89:9:89:<9989:9;89:9789:89:989:98:89:9:89:79:989:9889:9889:998998899:89:899899889989:9989989898:89:@9989989989::989899899;89:@9:98998998777889:9:989988989789::998899689898::989:9598996893989:9598996899:77889:989899689;9:89:;89@98996899:9989:99899I8989889:9898998989::89:798:98998989:989:989899899889:99:8998998;89:<979:89989+8989:989:89989989:89:9:8998989889:8979:89989:9889:@899:8998998689:9988998998989:;99@89989<989:79:9@89989989=89:899@89989:9;89:99@899898978989@89989:8989:9@89989+89:899@89989=9:@8969@89989898989@899899:899@89989:89898:9@899899:8939@89989:989:9@899899@897U9@8996899898969@899689@;98989@899689U9:899@89968979:89:9@899689:77989:9@8996897798989@89968989889:9@899:897988989@8998988988989@8998998989@89798998989899@89:9789:9898989@89:98899899@9@89:9889889:89899@89:9689989=949@89:9;89989899@89:9;899898<99@89:989:98999@89:9:98989799@89:9@898989:979@89:9986989:989@89:983<99989:68939@8999998979:9@8998999899:9@8997899898986+99@897989989898399@89@9838998989879+9@89@9899898999@89+8979799989888989@8989:9998986959@8989;:=9989898899@89:9::7:89989898999@8979;9998999@89799989:7989@89@9989898899@8999:8989:8989@8989@:98989:@989@89899:889889:8979@89=999889:99@8999:=:989:@99@89699:98989:69:9@898989866676989:9:9@8989@96989:89:8989@899.8989:8989@899:989:99@89I939I89:99@899989:899@89:9989:99@8998989:689:9@897978989:6979@8998:8998:89:9:9@899:99889:3899@8989889:989:989@89:9689:989:989@89+899989:89I9@89798997989:939@8996+89I98389:99@8998:93989:77969@89;8963969@89:8979@898989789I898789:899@89;9:899889:<99@899:9:899889:8989@89:89:99I89:99@8989::989889:<9;9@8998<79:897989:799@8998998989::9.9@89::98499898889:398:9@89U.79:.:99.9.I89:+99@89@89;::9:8898689:@98:89:::89:67::89::@:9:5898898;9=7979"&#"""!!'($"&("&#""'&% &$$""$+.*)+.0770222652,/.0/01.''),+($"(%$*(.(*-%&**(/(**.+*/0**(&+*(-*&((,)&$%$"%$)$,-0.2-+2053,8269;7550/+++-.+...& &%##'*/*0*-/00-,,+/4-/23;ܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩܩݩͩܩݩЩܩݩҩܩݩԩܩݩԩܩߩݩ֩ܩةݩ֩ܩΩݩשܩɩݩשܩéݩةܩݩةܩݩةܩݩר٩ܩݩة٩ܩݩة٩ܩݩة٩ܩݩةکܩݩةکܩݩةکܩݩةکܩݩשکܩݩשکܩݩةکܩݩةکܩݩ٩کܩݩةکܩݩ٩کܩݩةکܩݩ٩کܩݩةکܩݩ٩کܩݩ٩کܩݩ٩کܩݩ٩کܩϩЩݩککܩԩ֩ݩةکܩԩ֩ݩ٩کܩ֩٩ݩةکܩ٩کݩ٩کܩ٩ܩݩککܩƩݩ٩ݩݩ٩کܩͩݩ۩ީݩ٩کܩҩݩܩߩݩ٩کܩЩݩ۩ީݩ٩کܩөݩܩߩݩککܩԩݩݩݩ٩کܩթݩݩݩککܩ֩ݩީݩککܩ֩ݩީݩککܩשݩީݩککܩשݩީݩ٩کܩשݩީݩکܩةݩީݩکܩةݩީݩکܩةݩީݩ۩ܩ٩ݩݩݩکܩکݩݩݩ۩ܩ۩ݩݩݩکܩکݩܩݩکܩکݩܩݩکܩ۩ݩ۩ݩ۩ܩ۩ݩ۩ݩ۩ܩܩݩکݩ۩ܩ۩ݩکݩܩܩکݩ٩ݩܩܩکݩةݩ۩ܩ۩ݩةݩ۩ܩ۩ݩשݩ۩ܩ۩ݩԩݩکܩ۩ݩҩݩ۩ܩܩݩʩݩ۩ܩܩݩƩݩܩܩܩݩݩܩܩܩݩݩ۩ܩܩݩݩܩܩܩݩݩ۩ܩܩݩݩ۩ܩݩݩݩܩܩݩݩݩݩܩݩݩݩܩܩݩݩݩܩܩݩݩݩ۩ܩݩݩݩܩܩݩݩݩܩܩݩݩݩܩܩݩݩݩܩܩݩݩݩ۩کܩݩݩݩککܩݩݩݩ٩کܩݩݩݩשکܩݩݩکܩݩݩکܩݩݩکܩݩݩکܩݩݩکܩݩݩکܩݩݩکܩܩݩکܩݩݩکܩݩݩکܩܩݩکܩܩݩکܩܩݩéکܩܩݩ˩کܩܩݩΩکܩܩݩөکܩܩݩթکܩ۩ݩ֩کܩ۩ݩ٩کܩ۩ݩ٩کܩܩݩ۩کܩ۩ݩککܩ۩ݩ۩Ωשکܩ۩ݩܩϩթکܩ۩ݩ۩ϩ֩کܩ۩ݩ۩ϩ֩کܩ۩ݩܩѩ֩کܩکݩܩҩ֩کܩ٩ܩݩѩթکܩک٩ݩө֩کܩ٩ةީөթکܩ٩թީԩ֩کܩ٩ԩީԩ֩کܩةѩީթ֩کܩةϩީששکܩשͩީ֩֩کܩ֩˩ީة֩کܩ֩˩ީةשکܩթȩߩީکשکܩҩǩߩީک֩کܩѩĩߩݩکթکܩͩéީݩ۩֩کܩƩީݩܩ֩کܩީܩܩשکܩݩ۩ީ֩کܩݩݩݩթکܩܩ۩ݩ֩کܩ۩۩ݩ֩کܩککݩשکܩةةݩ֩کܩةשݩ֩کܩթթݩ֩کܩѩԩݩԩکܩݩթکܩݩթکܩݩթکܩݩשکܩݩթکܩݩ֩کܩݩ֩کܩݩݩ֩کܩߩݩթکܩߩݩ֩کܩߩݩ֩کܩݩթکܩݩթکܩݩթکܩ©ݩשکܩƩݩ֩کܩǩݩ֩کܩ˩ݩթکܩΩݩթکܩѩݩ֩کܩ֩ݩ֩کܩةݩ֩کܩܩ穽ݩ֩کܩߩ穻ݩשکܩ詹éݩթکܩ詵ͩݩ֩ڨ騲өި֨%$% !#"'%! '&$#$$$)""$$$&$ &00)+-0897624632..20/11.*)'&,$$$&$$&(.)**&$*(&-(,,)+,+/$()(*)&,(&((**(&$'$%"(*))0.0+53/20*60344877/,)'(,(*-,5*$(&##'*2**)-000+,.++.-/3.7ݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾƽݾܾ̼ݾܾݾܾݾܾݾܾ…ݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾʾݾܾϾݾܾҾݾܾԾݾ辤ܾվݾ¿߾ܾվݾؾܾ׾ݾξܾ׾ݾȾܾ׾ݾ¾ܾ׾ݾܾپݾĽܾپݾܾؽپݾܾؾپݾܾؾپݾܾ׾پݾܾؾپݾܾؾھݾܾپھݾܾپھݾ¢ܾ׾ھݾܾ׾ھݾܾپھݾܾؾھݾܾؾھݾܾپھݾܾؾھݾܾؾھݾܾپھݾܾپھݾܾؾھݾܾھھݾܾپھݾܾؾھݾþϾܾھھݾԾ־ܾؾھݾ־׾ܾھھݾ־¼پܾؾھݾؾھܾھھݾپ¿۾ܾھھݾƾݾپݾܾپھݾϾݾھ޾ܾپھݾҾݾܾ߾ܾھھݾҾݾݾ޾ܾپھݾԾݾݾ߾ܾ۾ھݾԾݾ޾߾ܾپھݾվݾ޾ܾھھݾ־ݾ߾ܾپھݾվݾ޾ܾ۾ھݾ׾ݾ޾ܾپھݾؾݾ޾ܾپݾؾݾ޾ܾھݾپݾ޾ܾ۾ݾپݾ޾ܾپݾپݾ޾ܾھݾ۾ݾݾܾھݾ۾ݾ̿޾ܾھݾ۾ݾݾܾ۾ݾھݾݾܾ۾ݾھݾݾܾ۾ݾھݾܾܾ۾ݾھݾ۾ܾھݾ۾ݾܾܾھݾ۾ݾھܾھݾھݾھܾ۾ݾھݾپܾ۾ݾ۾ݾ׾ܾ۾ݾ۾ݾ־Ɖܾ۾ݾ۾ݾӾܾ۾ݾ۾ݾоܾ۾ݾܾݾʾܾ۾ݾܾݾƾܾܾݾܾݾܾܾݾܾݾܾܾݾܾݾܾھݾܾݾܾ۾ݾܾݾܾ۾ݾݾݾܾܾݾݾݾܾܾݾݾݾܾ۾ݾݾݾܾ۾ݾݾݾܾ۾ݾݾݾܾݾݾݾݾܾܾݾݾݾܾܾݾݾݾܾ۾ݾݾݾơܾ۾ھݾݾݾܾپھݾݾݾܾؾھݾݾݾھݾݾݾھݾݾݾھݾݾݾھݾݾݾ¤ھݾݾݾھݾݾݾھݾݾݾھݾܾݾھݾݾݾھݾݾݾھݾܾݾھݾܾݾھݾܾݾǾھݾܾݾ˾ھݾܾݾϾھݾܾݾѾھݾܾݾ־ھݾܾݾ־ھݾ۾ݾپھݾ۾ݾؾھݾܾݾھھݾ۾ݾھ̾׾ھݾ۾ݾھ̾׾ھݾ۾ݾ۾;Ծھݾ۾ݾ۾ξ־ھݾھݾ۾Ͼ־ھݾھݾܾоý־ھݾ۾ݾܾоվھݾ۾ܾݾѾ׾ھݾ۾پݾѾ־ھݾ۾־ݾҾվھݾؾվݾӾ׾ھݾپӾݾӾ־ھݾپѾݾԾվھݾؾоݾ־־ھݾؾ;ݾվվھݾ־˾ݾ־׾ھݾվʾݾ׾׾ھݾԾǾ߾ݾپ־ھݾԾǾ߾ݾپ־ھݾҾ¿ľ޾ݾپ־ھݾϾþ޾ݾھ־ھݾǾ޾ܾ۾־ھݾݾܾ۾־ھݾݾ۾ݾվھݾܾܾܾվھݾܾھܾվھݾ۾ھܾ־ھݾ…ھپܾվھݾپؾܾվھݾ־ؾܾ־ھݾԾվܾ־ھݾѾӾܾ־ھݾܾ׾ھݾܾ־ھݾܾ̎־ھݾܾ־ھݾܾվھݾܾ־ھݾܾ־ھݾݾܾվھݾƽ߾ܾ־ھݾ߾ܾ־ھݾ߾ܾվھݾܾվھݾܾվھݾܾվھݾľܾ׾ھݾĽƾܾ־ھݾƾܾ־ھݾʾܾվھݾξܾվھݾӾܾվھݾվܾԾھݾؾܾվھݾܾ羽ܾ־ھݾ߾羻ܾ־ھݾ边ƹľܾվھݾ辵ɾܾ־ڽ齲Ӿֽܽھā#)0.*,('',,.,*/.../()+-+*,+-+**297224?A?>;=<?>:68679986/033532.0./044114./0/-540333453/2-+/--/.*,,.-***+*)),0155662799;83;<<<>=>>7453666657:/*--)-,4756687768685::99::?!ÚÚÚÚÚÚÚÚÚÚÚ&9ÚÚ!!Ú.Ú mÚ~ÚÚEzÚ1ÚOÚօÚۄÚFÚÚÚÚ ÚÚÚÚ Ú#ÚRÚÚÚdÚÚÚ6Ú:Ú:Ú:Ú:ÚÚÚÚnnnWÚÚ{mÚaÚ|XcccccccÚ^֬ÚLLLLKÚ-H̪ÚӁ44(44Ú'Ú x ÚG½,ؐ zŗzȲL0*f IKG\7?C9p?=J٦D /.GPҢKG!8AU&Q 8>,B:nŖ._=.̈tgMxoܓqs'F؆iF V.i|mdȚ (,E0DDC[8* Χ[I_|A[]f[]xr[][&2][]0nq[ ]h [ hZw[ VRGA[ k[ s[ 3[ @u<[ &8u[&u['u[:u[u+[u+[3R,U[s<O[#G[s[U[z [ [' >[tttqa)[i%:[i\\Z$[ϡ[ܼEED[=+[w--[R}[[ūSa[[1[]L[:r=/.][][xW][Mi<][n7][PBbֺM[ ([/Hn[7L[fJ^[R[n}[[&[2[0?[>Iԫ][ԮF[a[[x&[8[][]>[F[33D[;[*[dm[ZH[Zu S[eu[ul[);C&["+[}Dp+[?P2Pt)2(bVN5!klSH9nm`k%zuV??k_|kIB|'(2D0웛E2(P=$?L$Ci$y$uuvudn d%1?؆>>B˱Ld&]&&&&5M B]_H Ur5 i}&%&Eʲ#5 P,~2 |:Fjg&O lC:v<~՝  ! cƕ]ԡ<B ! %?.+96)(#PĬ{m5dPOu|۽/ h/.F{^E j"x[9 < a   5eBW#?###v###{## ##ʜ :::!'$&# % !"(")(%$$&#$"%""$""$,0(&.0911.,..02.,*,11.,((+,)*&&%%&&*.$&+(('%"&" %&$()) $$"'#'$&&$*('&('$$"$)(-/./.+*/-41,1.1.0210*,*-+**)0,.'$&# $&%++,+(-,//,(((/+,2/6'&&'&&'&&'&&'&&'&&'&&'&&'&&'&&'&&($'&&'&'&&$''&'&&'&'&'&&%&'&&3&%&'&&&'&&%&'&&$&'&&)'&'&&&'&&&'&&$&'&&"&'&&&'&&'&'&&.&&'&&&&&'&&&&&'&&&&'&&.&&'&&$&&'&&%&&'&&&&'&&&&'&&&&'&&%&&'&&%&&'&&&&'&&(&&'&&(&&'&&(&&'&&(&&'&&&&'&&&&'&&&''&&&%&'&&&'&&&''&%&&%"'&&%&%&&%'&&'&$'''&'&&'&'&&'&&''&"%&%%&%%&&('&'%%%&+%%&%%&&%'&''&&'&'$&&''&&&%%&&'&.#&&#'&&'&&(&&)%&'&&&$&@&%(&'&&&%&%&&'&&&%$&&&'&&%&(&'&&%'&$'&&'&$&&'& '&$&"&&&& '&&'&$&%&&'& '&&)'&'&"&'(& '&&$$&%&&(& '&'&&&$&'& '&&'&%&&$& '&$&(&'&%&& '&&&%.&$&& '&&%&!&&'& '&&'&%&&& '&)&&&''&(& '&%&&'&&& '&%&&'&&& '&"&%&&%&& '&$&&&&'& '&&%&%&&& '&&%&'&$&& '&&$&%&$&&'& '&'&$&%%%%&&%&%& '&&&$$&&%&& '&&&$&&+&& '&&&%($)&%&$&!& '&%&%&&%&%&%&& '&%&%%&'&&%!$&%&$&.& '&+&'&)&%&%*&&& '&%&''&&%#'&&&& '&%&%'&&&& && '& &'&&&&%&& '& &'&&($&&&& '& &'&&&&%&%& '&&'&.&'&&%&& '&&%'&+&%&&%&'& '&&''&+&&&&'&%('&&''&+&&&&&'&&%'&+&&&.&&'&&'&+&'&&$&(&%'&&'&+&%+'&&%&(&%'&&%&'&+&('&&$&&%'&&'&3&('&&&*&%'&$&'&&''&&&&%'&!&'&&&(&&%'&!&'&&&&%&%'&!&$'&&%&"%&&%'&!&$'&&(&%&)&''&!&%!'&&&&'&'&!&''&$&'&%&&'&(&''&&&'&&'&&''&&%&&'&'&&'&&#&+'&&'&&'&&'&&%&'&&'&&'&+&%&'&&'&&%&&&%&'&&%'&$&)&%&(&'&&('&$&$''%&#&%+&'&&('&&&&#&'&&('&%&%&&&'&&('&&%!&$&'@&'&&('&'&'((&&&'&&$'&%&&'&'&'&&'&&##&%&%&'&&'&'&%$&&&'&&'&&&%&&'&%&'&(&&&'&'&&'&+&&&&'&&'&&&&&'&&'&$&&$%&&'&&'&%&%&@&&'&&'&&'&&'&%$'&&'&&&'&& '&&'&&'&!&%& '&&'&&$&%&%& '&&'&&&& '&&'&%&!&& '&&'&%&'&& '&&'&+&&& '&&'&$'& &(& '&&'&$'&&& '&&'&&'&%&$& '&&'&%&%&& '&&'&%&$&"& '&&'&%&%&%& '&&%'&& && '&&('&&'&%&(& '&&('&@$&%&& '&&('&%&&%&& '&&('&$&&%& '&&('&&%%&&$& '&&('&((&&%& '&&('&&'&& '&&'&$&&'& '&&'&&&%& '&&'&%&'&& '&%&'&%&%&%& '&!&%'&&%&'& '&!&''&&%&&% & '&!&''&%&%&''&& '&!&('&&&)&%& '&!&$'&'&&%&'& '&!&$'&&&%&& '&&'&&&%&$& '&&&$&&%&'& '&&@%%&$&&'&%$& '&&''&&(&&&'& '&%&'3&&'&&'%&"& '&&&'&&'&&%'&$& '&&%&&'&&&%& '&&%&&%'&&$(+&& '&)&&&'&&"&%& '& &"'&&'&&%&+& '& &$&&'&&'&& '&+&%$!$&&'&&&& '&%&'!&&'&&'&'#& '&%&'!$&&$&&%&& '&%'&%&$&&$&&&& '&%&#&$&&&%& '&%&#&&&%$&$& '& &#&%&&'&& '&&#&%!$&%&&'& '&'&@%&&%&@&& '&&'&%(&&&)& '&$&'&$&&$&& '&&&%$%&& && '&'&&%%&'&&('&%&& '&%&&%((($(&&&& '&$&+&'%&&&%&&&& '&'&.%&%&%&& '&'&&%&&'& '&$&3&$&'&& '&&&'&&%&& '&&&&&& '&&$&'&(&& '&)&!&&(&%& '&&'&&$&&& '&&)&&$&&& '&%&('&$&&&'& '&&%(&'&%&&%& '&+%&&(&&'&$& '&&&$&%&&& '&&'+&$&3&&& '&'&'&&&&&%&'& '&'&'"&(&+&$&)& '&'&'$$$&$'&'&&& '&$&$%&&%&&& '&&$&&%&&%& '&&'&&$&%&& '&%%&&&&&'& '&&%&'&$%&%&&%&& '&&%&%&&&!&.& '&&%&%&&'&"&$& '&.&%.%&.'&.$&+&& '& %'&'&&%%&%'& &$'&$$$'&$($$%&'$$+!$&$#%&%&%'&($$(&(%" &!$%$ $&&$("%#""$ "" *2(**+0714-,0350.,0.0*+(&&$*(((&&&(&,&$()#&('$('&(,)+-,*&'%&%&)(&%&*&&"#$&%"%(),,.2),+*3,*1.1,7151+,.'+,,))-/("&$##%+./),-0*/0*.+-/)-3.;]^^]^^]^^]^^]^^]^^]^^]^^]^^]^^]^^^]^^]^]^^m]]^]^^^^]^]^^U^]^^f]^]^^^]^]^^\^]^^^]^^\^]^^^]^^]^]^^_^]^^^]^^^]^^]^]^^]^^]^^^^^]^^^^^]^^^^]^^]^^]^^_^^]^^]^^]^^^^]^^^^]^^^^]^^^^]^^^^]^^^^]^^\^^]^^\^^]^^\^^]^^\^^]^^^^]^^^^]^^^^]^^^_^]^^^_]^^^_]^U]^^^_f]^]^]^^_]^]^a]]]^]^^_]^^^^]^]^^_]^f^U^_^^`]^`]]]^`]\^]]^^]^]]^`]^][^^\]^^^]^^^]^]a^^ab^^]^]^]^_^]^^]^Uf^U^_^@^^]^^^^`^^]^_^^[^_^f^]^^_^]^^^]]^]^_^^^]^`]^]^^\^U^]^`]^]^]^^U^]^`]^\^\^^^]^`]^\^m^_^]^]^`]^]^^^`^^`]^^]^_^^_[^`]^^^^^^`]^^^\]^`^^`]^^^Y^^U^`]^^_^_^^^`]^]^^^]^\^`]^_^^^^^`]^_^\^^^^`]^f^_^^^^`]^]^^^^^`]^^^\^^^`]^^^_]^\^_^]^`]^^\^]]^^]]^_^f^_^`]^^\^^_^_^^`]^^^]aa]^^_^^`]^^^]U^^U^`^`]^^]^a]^^]^Z^`]^^]]^^\^]^`^^`]^^__^^]Y`^]^[]^]]^`]^`]^__^\^^c^^^`]^_^_^^]]X_^]^^_^`]^^_^^^]^`]^^`]^`^_^^^]^^^`]^`^_^^\^]^^^`]^`^_^^]Y^]^`^_^`]^^__^]^]^]^]^]U^`]^^_^U^]]^]^^^`]^^_^U^]^^^_^]]^^_^U^]^^U^^]^]^]_^U^]^^]^]^]^^_^U^]X^^[^_^]^^]_^U^`X^^]^`^]^^_^U^X^^`^^]^^_^f_^X^^^c^]^^_^^\X^^^^]^Z^_^^^\^^]^Z^_^^^^_^]^Z^__^^^^^]^Z^__^^_^]^]^]]^Z^Z_^^]^^^_]^Z^_^_^]^^^_]^]^_^^]^_^^_]^^_^^_^^]^_]^^_^^]^U^^_]^^_^^U^^]^_]^^_^^\^U^_^_]^^_^^_^^_^_]^^]_^\^Z^_^\^]^^_^\^^\^`^]^^_^Y^^^a^]^^_^^\\^^_^]^]^^_^\^Z^_]^@^]^^_^^``^^^]^^m_^]^^^_^]^^_^^]]^_^]_^]^^_^_^_^^^]^]^^_^^]^^^]]^^_^\^\^\^^]]^_^_^U]^^^^]]^_^_^^^^_^]]^_^_^]^^\^^]]^_^_^_^]^@^_^]]^_^_^\^]]^^^]]^_^_^U]^`^X^^`]^_^_^\^`^Y^_^`]^_^_^^]^a^]^^`]^_^_^_^]^_^^`]^_^_^]^Y^^`]^_^_^__^^_^`]^_^_^U]^^^`]^_^_^a^`^^`]^_^_^\_^^^`]^_^_^^`^]^`]^_^_^_^\^]]^`]^]^_^_^_^f^`]^^_^_^\^]^`]^^_^^`^]U^`]^^_^^]^]^^`]^^_^@@@`^]^]^`]^^_^U_^]^^`]^^_^[^]^_^`]^^_^^^_^`]^^_^__^^^`]^^_^]^_^^`]^^__^[^_^^`]^^_^^]^_^^`]^^_^^`^^`]^^_^^]^^U^`]^Z^__^]^^]^`]^Z^_^^^_^`^`]^Z^_^]^^_^_^`]^Z^_^^^\^Z^`]^Z^__^^^\^]^`]^Z^__^^^]Z]^]^`]^^_^^^^]^`]^^\^\^^\_^^`]^^@]^\^^^[^`]^^`^_^^^_^`]^_^_fZ^^^^`]^f^`]^^]^^^^_`^^`]^^]^^^^^_^`]^^]^_^^]^^U^]^`]^Z^]^^]^^f^^`]^`^f_^^]^^]^U^`]^`^^^]^^^^`]^U]^]Y]^^]^^]^]^_^`]^_^_Z^^]^^]^a^`]^_^_\Za`^^_\^^_^^`]^`^\^^\^^]`\^^`]^^\\^\^]^^^^`]^^\^_^^][^\^`]^`^\^]^]^]^^`]^^\^Z]^^^^`]^]^@]^]^^@^^`]^^_^_`^_^^Z^`]^a^_^]^_^]^^`]^^^_a_^^`^^`]^]^^^_^^^]^`]^^]^]^^^[^^^`^`]^]^U^]_]]]^]^^^`]^`^]^]^]^^`]^^^]^^_^`]^m^f^m^]^^`]^_^]^_^^^`]^`^^_U^^^`]^^\^^^]^^`]^Z^Y]^^^\^`]^]^]^^^]_^^`^`]^U^\]]^^\^f]^^`]^_^_^\^_^]^^_^`]^^]^^\U^^]^`]^U^_^\^^]^m^`]^^]]]^[_^^^\f^`]^U^]U^m^_f^U^^`]^]^]^Y^^^]^`]^b]^]f^^_U^]^Z^`]^]^]][]^m]^_^^^^`]^_^^^]^Z^]^`]^`^\_]^\\^]^^^`]^`^_\^]^m^^^`]^_^^]^]^\^b^`]^^]\^_]^]_^\^^`]^^^^]^^Z^]^`]^^]^Z^^_^f^]^^`]^U]^]]_^U]^]]m^U^^`]^`]^b`^]^]]^`^_]^]___]^_^[__]^__UZ_^_a^]_^_^b^\a[\^]\ #'""#$$'*$"& '&*'&$$)$&&$"$$ ,60,*.6<:720265620201204+)-.1&($('(**0(()(),(&()&-'+..*)&&%%)$(& '&($$$%$ %')*,-,-2'(.*/.(3.0.1402(,1-./(/,,4+&*($''+/,1,.4/030101433316yxyzyxyzyxyzyxyzyxyzyxyzyxyzyxyzyxyzyxyzyxyzyyxyzzxyyxyzm||yyxyzzyyxyzqzyyxyzfwyyxyzwxyyxyzzyyxyzxyyxyzzwyyxyzzyyxyzxyyxyzxyyxyzwyyxyzyyxyzyyyxyztyyyxyzyyyyxyzyyyyxyzzyyyyxyztxyyyyxyz|yyyxyzyyyxyzyyyxyzyyyxyzxyyyxyzyyyxyzyyyxyz{yyyxyz{yyyxyz{yyyxyz{yyyxyz{yyyxyzyyyxyzyyyxyzyyyxyzyxyyyxyxyzyyxyzyzyUxzxyzywyyxyxyzyyzyyxyyyxyzyzyyzyzzyzxyzyxywyUyzxyzywyxyuyxyxyzyyvvyyvyvxyzy|yxxyxzyxxyzyzyt{y{y{vxyzyzyzxyzyxyzzxyyUyUyxxyzyxyyyyxyyxyzzzyyyyyxyzxyyyzyzyzxyzzyyyyzyxyzyyyywyxyzUxyxyyyxyxxyzqyyywyzyzxyzwyzyyymxyzxyzyzyy|yyxyz{yzyyyxyxyzyvyyxyyxxyzyyyyxyxtxyz{yzyyyyzxyzyUyyyzywxyzzyyyzyyxyzxy{yyyxyzxyzyyyyyzxyzyyywyyxyzwyyywyyxyzyzyyyyxyzyyyyyxzy|xyzxyxyyxywyxxyyxxyxxyzyzyyzywyxxxxyxyzyzyyxyyxyyzyxyzyyyyywUyxyzyyyyyxyyzyxyzxy{yywyxxyyzyxxyzzyzyywyxxzxyyz{yxxyzyxyxtyyuxyxyxyzxyxzyxxyzyyyyzxyzywtvyxyzxyxyyxyxxyzyyxyzyyyyxyzywyxyzyyyyxyzyzyxyzyyyyxyzyxs{zyxyzzyyyyxxytyzyxyzxyxqyyyxxyyzxyzxyzwyyyyxxyyzyxyzyzyzyyzxyyzyxyzUyyyzywxyyzyxyztyzyyyxyyzvyxyzvyxyyyzxyyxuvyxyzyxyzyywxyyvyxyz{yzyzyyxxyfyvyxyzyyzyxyxxyzy|vyxyzzyyzy{yxyzyxyz{yyzy{yxyzyxyzyyzy{ywxyzyxyzwxyyzy{ywxyzyxxyzyzyxy{yx{xyzyzxyzwywyy{yxy|yxyzyyyzyxyyzxyzzyyyyxyyxyzyxyyyxyytxyzyxyyyxyyxqxyzzyyyyxyy|xyzywyyyxyxyxyyyxxyzyyyyvxywyuxyzy{yzyyxywyxzzwxyzxyxuyyyxysyxyzzy{yyyxyyzzxxyzywyyyxyy{xyzwxyyyyxyyxwwxyzyxyyyxmxyyxyzxyxyyyxyxyttxyzxyxyyyyxyxyxxyzzyyyyxyyxxyzyyyyxy{yxyzwyzyyzyxyxyxyzyxyyzyxyyxyzxyyyzyxywyzxyzwxywyyzyxyyxyzxyyyzyxyyxxxyzxyzyzywyzyxyqxyxyzvyyyzyxywyxxxyzzxyyyzyxyyxyxyzyyyzyxyxyxyzzyyyzyxyyzxyxyyzyxyyxxyxyyzyxyxyxyyyzyxyyzxyyyzyxyzzyzxyxyyzyxyyzxyyyzyxywzyxyxyyyxyxyyxxywyyyxyyxyyyyxxyyxyxUyyyxyyzyxxyyyyxy{yxxyxyyyxyUyxy{yyyxyvyxywyyyxyzyxyxyyyxyxxyxyxyyyxywyxyzyyyxyyxyyyyxyxxyxyzyyyxywyxxxyxyywyxywxyzxyqyy{yxxyyzxyxyyy{yxyyzxyxyxyy{yxyvxyxyxyzyy{yxyyxyzyxyy{ywxyxyxyxyyy{ywxyyxyxxxyxyyyzyyxyyyyyzyzyxyyyyyxvxyzyxyyyyyzyyyxyyzyyyfxyyyxyx|ywyyyzxyyyxyxxyyyywyyyxyyyyyxzyyzyxyxyyzyyuyyyyxyzwyzyyywzyyyxyxyzyyyxyyyxyyxyyyzyyzyxyxyxyyyyx{yxyyzyxyzxy{yyy|{yyzyxyxxy{yyzyzzxyyzyxyxyyyywyxyxyxyyyywyxyzyxyvywyyyxyzxyxxyxzyyyyxyz{xyzxyzyyyyyxyzxyzyxyyxyzyxxyxyzxyuyyyzyxyxyzyyyxyywywyzxyzyyyxyyxxyxyzyxyyyxyxyvyxyzyxyywyyzxyzzzxyxyzxyyyxytyxxyzwyxyyyzyxxyzyzyymyfymxyzxyzyyzyxyxxyzy{yyxyyqxyzyyyywyxxyzyxyyyuyzxyxyzyzyyyxzyyx|xyzyxyyqyzwyyzxyzxyyyyx{yxyxyzyzyyxywyxywyqxyzxyyyyzy{yxyzymyywxyxwyvyxyzyyyqy|xymyfxyzqyxyyyzysyxxyzwwyxyyvxy|wyyxyzxyuyyzyzyxymzyzxyzxyyywyxy{yvxyzxyxyyyzy|xyyxxyzzyzyyxxywyzyzmxyzzyyyyzzyxyxxyzwyvyyzyxwzyxxyxzxyzzyyyyxyxxxyyxyxyz{ytyyxyxxyyxyxxxyzwyxyyyUtwytyqtyxtmxyzyyyyvxzyyxyxxyzyx|y|||y|yv||xy||{|{|{yyv{yv{yx{1(&$##"""!"!72,-*))*'((&)&'''''(%(%'&&'%(''%&##1mh^ZTUQUQRQOvkfbrrizywyuvquwtsqvrurqsqnuqnke_dc`^fbab_e`b``X[YZVV]\Y\[[YZdNNNORRPRNQPQQNRTSQOMQTPTWY]ffojnokolpkomnrqqrtswx}y|lrxZ_`hRWZ[\bfq5*=>`?@A4Oj|~n_O@0!CFvܭ}MpŁP^. 7}̈́2'Sߎ<R_4FuP2P"!["1)D%JܪXӵ}oaSGP]kyL# ^ǖf5lJEzQOӁ8<`cv]'waE'01ظ6*}x t&g'Mi/I X-H)Vw8Rؒ V q-:nGTqU(C1>     ||;xһC H^pɮkJ(H^pɮkJ( "dͅ40jɳpV "gΏD ExշnAo3uB)dyC)dyC c!Ky,X^.5 h/E ?yآj$ ?yآj$EpޑCl kT5ۓK 5ۓK  }8O1VAox ^C^CT+"ZBtz    y#fpdMGjFFf?t,NKc{ff?tl %#l#lu%3p?Ss[s[ j(J,K,K8 Gx&(/'j<j<9\YggLCC^ݪyI2$ )=Qey/ݪyI2$ )=Qey/Qj $~w `g 2?~$ 2?~$mw5Wv A A0Mf 8 8N ) e ) e }r 泝ygu} !?&5`5`nZ a 4tB Y Q ~T I e ΓgTA4ARcuJKJK wM*HC<pLBbU X  s s:*5]~ lWA+4h !5[[?^B_k*t3r#&Z]] )# zQ #BhN)_k׾ piQ\-kR%٣٬gJQjIx$A3?LĤĭH7<}+b6m3.~#>(x|6KA3-yOۥۯW)Ya}b 49G3Oz ccv57?6`3+z711MA% d"",# O}} MW&Hn& {XɧXɲ*b=#P!+lT6 ,},//*eX9 [gQt*e<\s?  !i:7A d ;.@88ZG;RL jkn" id,d,$_XQ  rN@~-" lel 8y4hMAQQexE1^y"'|,k f?1^Y !:1HRE8)4bPXXXy`g&t\@j'! }B/V"=s mD>^3hb&Yr(}}%\(sdK\K\eJj>UT {`c . .o71:%V[]CqCZm@13YE } }  /5[ Vwl"b0wRre?.MJKg:QJoJo(:j<G^^NH x @fHPNPNssgp/S cs@@XDpfJ/~ .t}@3@3fH- , FQhiT))ch[$@N$"$   > OQPp n5dd+w F3a CPŽ<PauStKM# # uz1lvP8  WZZl&s1+#_wbV?O vn  b+#C{QAl)) =2h7YSS, (H|x|xQr,9ddu|a$F5 M u,RR41Rz( ji"BBJ ?o!\= (4(4aۻLF=$x5&5& =ZW"k9HEE-Ig qQ$VVRu7o <(i iiv|J:$J $ePssssGn+V%]_|W=$ ,@Th||L|La7$7j""`STI ' <9F-q8n< a.u8:/SSR*ylpm5""w'/G1g)S"w hhecp'!` %L] ;:qVV/V~c  SL2sCi E+l+lxp^=DI'< < =oF]]al*` _4O{g\\ :$btM ų/".j4..TE9R<f$CCyiCYTA\ZH}ű}N_Bu "/l/  |^-P?KKT 3RqZ|IqIq ,Uwq. tt1RsNos?սIIvJ!)M`\Z72>+YM>!%%d[[" 0"I]}=^s wDa]a<uu Hg [z v[[(_7*өm:,,K d!  xC~mcaNH{SJ<˩< +`@%#nt-$ E xKVVS"9#@$*~L*D [ [ 65X]?( i}tGc##Bz[zϬ4c]]:u wfE6#M\pdL*~us,}5<_bsq/PS+|Es>kVr S (2|aѰ3knm**|?s- &  "N&k1##eB : <<S L]u._m9T!vXvX=I1=K|1H7 1M-[>nD*R_3;x=|W<y1qNJe/Be/BQ<_jbl'(\I9[vvfi;jB| "Rj&? %!Hyk`+ + l(z* 'Qw% DTN=N=l`3`NH{ ԘhP8 "7LavI{p{p1<`(*2e5 jK-d=> * *3Bkgx56_5tF5vvGa+M0i{.,;p  ;p  Z ĨqoTy@3[Lcv1cv1h!4\L~S?wS?wq? V` -9ep1(gJp1(gJn  #a&KL9*žzV9-" %6FW}*žzV9-" %6FW}bV.mT i\M|M|U;Japya*=z~y<y<D* e8I_NK4-  p8F)&òqaQXj|^x$$U>e (VV:CNd M~i~b~bmIc6:>o cr  pc pcqKppB_y cXcX4} BOT?6LP$P$h2o'|<M LONONcd-CN1:dhfJ́5J́5n`J^"";AƁ<p˒Z"SߪvA"SߪvA=`Jڢj1yZ '1ÒO Rmu< EuͱsU6EuͱsU6 GѺD 5awͺ~K, iܺ{:JuݮP!   !Lw ɮx^C( #080(  #" # )%"&*$  "' #""! !!#%(! """ #%'')-12$",7 "$""" #&(+-<2$')$ ,$$(<)BJhn0 #L#9Jj2EtR<%Ox.y[ &E(7qf 0iPaG &^7y,-~=5Za0#7NߡzFM MԘhk 5ّHxl'ߜ(=ۆKb֖XAؿZ8 {?( "8gͱw:  K(ǁD mX ݳzeP:( 3 Ӫb  Ϛy_)ۛSS ;RfE* H+iSU% sm/d1?l~5M#-UBD$/ .|^Ku"qY)< 9 'zTL ⻦a D .@Rwƚ5$I`" :8,q??D?[%: ?s'>ԺB>u(  @;$̸k+Bԁt.FHL L0ʴS+Iʗj;!с /SXp–^' >nA#N.L2g0|ȁ!8!aJ7rzWE20005FX{ e0X c Zbɿ.$x !M +z' At{  k:rKI[D@L"iKju);qy5z ٓoU,,,6Z C j Zz'FÓ{zMT6+?  O[bȒҡqQ<2,9Wu&b +@/J 1L)L(~g!VŁ4?~~=p3~~9ؚW d~~*5P~~D gΏ##~~/awAE~~  Gqr~~IYʤl&(~~+Pd6R~~2b~1~~z 3T|Ѱg=P~~: 6xÂP ~~" >g tT$W~~k  5EYk Ǯu^N:-B~~8 !?T~~ώ~v??~~:'>NL,' r~~s~~s>~~ҁ,_~~h~~8%j~~^ ;~~oD~~ߔL7u~~։ f~~L 4~~٦i+P~~Z0~j_5 ,Mj_ƘV 9_Fm  H?-РqP(Bi- Т]! B {;*  (6^]Ұy[7 ,Np]|a1K̬^TC<-) %-7CLYq֨K q]F/<\]]]hḰ ˁ VV$$QQ  Ё ρ 6܁6==>݁?Y_UJAA&'UG:>~~IP!77݁-)66X]??YYOO. $ .~'*…*'~~8KK8~~88~~w  IŇP  r~~ 55 ~~?WϞK?~~AhrAx~~F8~~^;q£q; ^~~&)AzzA)#~~\(o֧o(\~~I$EZսZE$H~~  $[ ۳[$ ~~\.\xx\8[~~c ,,97U899966:9789@79:;@:989@@9;@897I988989:9I895:9:>898I+98989@<:9::9:@5988:989:@+889 :999:::998:9:.:9:9=939::<389U898;::9835:9@5898U:9;9.3+@:9:8@9 8978775::;9:98<7989;U79:99:98<99:;799@39@@899:999868998;I9:9997;99899U79987:889988<98997U<::99;I98998UF99::9987+<:987:7:993398@:998@9:969:996;9989897U8998U;9689983@7::98989;5U999<=99:9:99>3@@699:99:9@799;7:99:7;999;7:99:7;9999;3<899898<@;99:;;899;;:998@36:99:> /0 << /1 << /0 [ << /0 << /99 /CoolTypeFont /0 << /0 (Apple-Chancery) /2 1 /3 0 >> >> >> ] >> /5 << /0 [ << /0 << /0 (Normal RGB) /6 << /0 0 /1 12.0 /2 false /3 false /4 true /5 0.0 /6 1.0 /7 1.0 /8 0 /9 0.0 /10 0.0 /11 1 /12 0 /13 0 /14 0 /15 0 /16 0 /17 0.0 /18 true /19 false /20 false /21 false /22 false /23 false /24 false /25 false /26 false /27 false /28 false /29 false /30 0 /31 false /32 false /33 false /34 false /35 2 /36 0.0 /37 2 /38 0 /39 0 /40 false /41 2 /42 0 /43 << /0 .5 >> /44 2 /45 2 /46 7 /47 0 /48 0 /49 -1.0 /50 -1.0 /51 0 /52 false /53 << /99 /SimplePaint /0 << /0 1 /1 [ 1.0 0.0 0.0 0.0 ] >> >> /54 << /99 /SimplePaint /0 << /0 1 /1 [ 1.0 0.0 0.0 0.0 ] >> >> /55 << /99 /SimpleBlender >> /56 true /57 false /58 true /59 false /60 false /61 0 /62 0 /63 1.0 /64 4.0 /65 0.0 /66 [ ] /67 [ ] /68 0 /69 0 /70 0 /71 4 /72 0.0 /73 0.0 /74 false /75 false /76 false /77 true /78 true /79 << /99 /SimplePaint /0 << /0 1 /1 [ 1.0 1.0 1.0 0.0 ] >> >> /80 false /81 0 /82 3.0 /83 3.0 /84 false /85 0 /86 << /99 /SimpleCustomFeature >> /87 100.0 /88 true >> >> >> << /0 << /0 (None) /5 0 /6 << >> >> >> ] /1 [ << /0 0 >> << /0 1 >> ] >> /6 << /0 [ << /0 << /0 (Normal RGB) /5 << /0 0 /1 0.0 /2 0.0 /3 0.0 /4 0.0 /5 0.0 /6 1 /7 1.2 /8 0 /9 true /10 6 /11 2 /12 2 /13 0 /14 36.0 /15 true /16 .5 /17 [ .8 1.0 1.33 ] /18 [ 0.0 0.0 0.0 ] /19 [ 1.0 1.0 1.0 ] /20 6 /21 false /22 0 /23 true /24 0 /25 0 /27 /nil /26 false /28 /nil /29 false /30 << >> /31 36.0 /32 << >> /33 0 /34 7 /35 1 /36 /nil /37 0 /38 false /39 0 /40 2 >> >> >> << /0 << /0 (Basic Paragraph) /5 << /0 0 /1 0.0 /2 0.0 /3 0.0 /4 0.0 /5 0.0 /6 1 /7 1.2 /8 0 /9 true /10 6 /11 2 /12 2 /13 0 /14 36.0 /15 true /16 .5 /17 [ .8 1.0 1.33 ] /18 [ 0.0 0.0 0.0 ] /19 [ 1.0 1.0 1.0 ] /20 6 /21 false /22 0 /23 true /24 0 /25 0 /27 /nil /26 false /28 /nil /29 false /30 << >> /31 36.0 /32 << >> /33 0 /34 7 /35 1 /36 /nil /37 0 /38 false /39 0 /40 2 >> /6 0 >> >> ] /1 [ << /0 0 >> << /0 1 >> ] >> /8 << /0 [ << /0 << /1 << /0 [ 0.0 0.0 0.0 0.0 904.0 0.0 904.0 0.0 904.0 0.0 904.0 0.0 904.0 505.0 904.0 505.0 904.0 505.0 904.0 505.0 0.0 505.0 0.0 505.0 0.0 505.0 0.0 505.0 0.0 0.0 0.0 0.0 ] >> /2 << /0 1 /6 [ -2.0 -2.0 ] /11 << /4 -2 /7 false >> >> >> >> ] >> >> /1 << /0 << /1 0 /2 0 /3 .583 /4 .333 /5 .583 /6 .333 /7 .7 /8 true /16 false >> /1 [ << /0 << /0 (Session ) /5 << /0 [ << /0 << /0 << /0 () /5 << /0 0 /1 0.0 /2 0.0 /3 0.0 /4 0.0 /5 0.0 /6 0 /7 1.2 /8 0 /9 false /10 6 /11 2 /12 2 /13 0 /14 36.0 /15 true /16 .5 /17 [ .8 1.0 1.33 ] /18 [ 0.0 0.0 0.0 ] /19 [ 1.0 1.0 1.0 ] /20 6 /21 false /22 0 /23 true /24 0 /25 0 /27 /nil /26 false /28 /nil /29 false /30 << >> /31 36.0 /32 << >> /33 0 /34 7 /35 1 /36 /nil /37 0 /38 false /39 0 /40 2 >> /6 0 >> >> /1 8 >> ] >> /6 << /0 [ << /0 << /0 << /0 () /5 0 /6 << /0 0 /1 319.0 /2 false /3 false /4 false /5 357.0 /6 1.0 /7 1.0 /8 -10 /9 0.0 /10 0.0 /11 1 /12 0 /13 0 /14 0 /15 0 /16 0 /17 0.0 /18 true /19 false /20 false /21 false /22 false /23 false /24 false /25 false /26 false /27 false /28 false /29 false /30 0 /31 false /32 false /33 false /34 false /35 2 /36 0.0 /37 2 /38 0 /39 0 /40 false /41 2 /42 0 /43 << /0 .5 >> /44 2 /45 2 /46 7 /47 0 /48 0 /49 -1.0 /50 -1.0 /51 0 /52 false /53 << /99 /SimplePaint /0 << /0 1 /1 [ 1.0 0.0 0.0 0.0 ] >> >> /54 << /99 /SimplePaint /0 << /0 1 /1 [ 1.0 0.0 0.0 0.0 ] >> >> /55 << /99 /SimpleBlender >> /56 true /57 false /58 true /59 false /60 false /61 0 /62 0 /63 1.0 /64 4.0 /65 0.0 /66 [ ] /67 [ ] /68 0 /69 0 /70 0 /71 4 /72 0.0 /73 0.0 /74 false /75 false /76 false /77 true /78 true /79 << /99 /SimplePaint /0 << /0 1 /1 [ 1.0 1.0 1.0 0.0 ] >> >> /80 false /81 0 /82 3.0 /83 3.0 /84 false /85 0 /86 << /99 /SimpleCustomFeature >> /87 100.0 /88 true >> >> >> /1 8 >> ] >> /9 << /0 [ << /0 << >> /1 7 >> << /0 << >> /1 1 >> ] >> /10 << /0 4 /2 true >> >> /1 << /0 [ << /0 0 >> ] >> >> ] /2 << /0 0 /1 12.0 /2 false /3 false /4 true /5 0.0 /6 1.0 /7 1.0 /8 0 /9 0.0 /10 0.0 /11 1 /12 0 /13 0 /14 0 /15 0 /16 0 /17 0.0 /18 true /19 false /20 false /21 false /22 false /23 false /24 false /25 false /26 false /27 false /28 false /29 false /30 0 /31 false /32 false /33 false /34 false /35 2 /36 0.0 /37 2 /38 0 /39 0 /40 false /41 2 /42 0 /43 << /0 .5 >> /44 2 /45 2 /46 7 /47 0 /48 0 /49 -1.0 /50 -1.0 /51 0 /52 false /53 << /99 /SimplePaint /0 << /0 1 /1 [ 1.0 0.0 0.0 0.0 ] >> >> /54 << /99 /SimplePaint /0 << /0 1 /1 [ 1.0 0.0 0.0 0.0 ] >> >> /55 << /99 /SimpleBlender >> /56 true /57 false /58 true /59 false /60 false /61 0 /62 0 /63 1.0 /64 4.0 /65 0.0 /66 [ ] /67 [ ] /68 0 /69 0 /70 0 /71 4 /72 0.0 /73 0.0 /74 false /75 false /76 false /77 true /78 true /79 << /99 /SimplePaint /0 << /0 1 /1 [ 1.0 1.0 1.0 0.0 ] >> >> /80 false /81 0 /82 3.0 /83 3.0 /84 false /85 0 /86 << /99 /SimpleCustomFeature >> /87 100.0 /88 true >> /3 << /0 0 /1 0.0 /2 0.0 /3 0.0 /4 0.0 /5 0.0 /6 1 /7 1.2 /8 0 /9 true /10 6 /11 2 /12 2 /13 0 /14 36.0 /15 true /16 .5 /17 [ .8 1.0 1.33 ] /18 [ 0.0 0.0 0.0 ] /19 [ 1.0 1.0 1.0 ] /20 6 /21 false /22 0 /23 true /24 0 /25 0 /27 /nil /26 false /28 /nil /29 false /30 << >> /31 36.0 /32 << >> /33 0 /34 7 /35 1 /36 /nil /37 0 /38 false /39 0 /40 2 >> >> """""""""""""""""+2./.-+(*))+()&&'&'''()()&'&$)10>BBC>;756=;=@BE@GDP<:;887;:<<=?B8758246924429B>DEJITQOOGNRTTKNS]HHKFLQEFBGJPNNY]`SS[XidmildYWSSYPUWYVQIPRVVSRRM_WIGMHIKHJFIDICFHGDFHIF@ACFBBFE>EJFJQTVXUVRXUX_^]bahQNTPJQT[PYR[]KTNXUWRYYPR?@B:>CEDHEJIIJMNRJMGNMKSSSU8:(,*(,(,,*,,(0)0426D""""""""""""""""""""""""""""""""",,212,((*-,)+,()*(+&('))(&))(*.*>A=A>600298=;GGAE@MA49815::84@<>3161273842/.1@BCEGMRNNPKJOLMISNMHEFEOOL=CEJKQTX`VUWZegikrhgXZZOXXUVX\YLRHTSQLNRUWGDJDHEABFHDKDFGJIFMLFJGDJFGKJDDHLIPPSUSUV_VZ\^fmqqVTY]P\V`aa]YXLWSQUZ`X`YH@<@?===FIDNFGINNIJFIJMKLPSY<>***,,(0**,,*,+048<F"""""""""""""""""""""""""""""""""-520-++)+-&,(,'&)&(('&)*)'*)*(019@=A:63136568EF=BDKD594679996=9>4441256:20./4<=GAJJNILKNLNQIHINTCFFGMQI><EJKQMP^\RXU_fjondbWUTQQVUTVVRJNOORNMOP\_BDJGFBB@FDBIDHFIEJKO@FGDJEBKGDHFHFPNPSQUNUXZ[bfgltSSPVJVPYXZZ^[MOQSPPVZ^UO@>B<==AFLFDEIJLLEJHGFLGJONU58***,,(,.,*,*,1,60<J""""""""""""""""""""""""""""""""".6512/---/-/.,**/02143OEBA@???GF[YmkbYWTTZVZ[ji_dglcUXSUSYWVZ]\aXNPMMLLNE==<DPLUY`ggc```|}sh_A@..,.0,00....0148:>J""""""""""""""""@97+78:78:::89::989:99::7:898<7989:@I7;88977:9898798.<;8:98:9@389:9:89UU:9.69<798:9:+9;:9339:::89:7:9878983U:9:8@38983@89:89:9;:89+=9;=9@;9:539:9:8989:9978989:<89:9:::989;58989:9::989933<;9::938989:;9:U99:9889877@38989:.:98@+:89:8:9995@8989:9:97@89:9@8989:;89:<398@8989:9888978989::9U898989:8989:8989:69779:86:8989:U89;98898989:::9:97I6698989:;:9;@89@78898989::98<9889+9898989:=9:<98:+9:398989:989@69;:98989:79::739:I9<7898989:U9:8798+79:998989:79::=33+@@77;8:97:97=:98989:9:9:.9;98989::9789;98989:I9797:98989:8998<98989:899:U98989:9:989898989:98U98@.998989:<9;97U9998989:79;:9899998989:959:98:9998989:987U789@.998989:9:;:9:9:9::998989::9 ;.9II3.;8:98@8998989:9:9:989;998989:69988:+998989:99768998989:899::<8998989:998998989:99:=+998989:8998:;998989:8899:87<7998989:699998989:U99:998989:6997998989:997998989:U9:899:998989:9:9:9;.7::999:88989:9;:+:8:899798989:9:8+998@9889U889::9::99<9:3899889:989:+79969889:9=989:;:93699:98999989889:798:9:98878:89:98;98939U9689::9:9:3939899888:958798889:@98=9I3939896699696789:39869>979;89::9::98889:U899969:89.5995;89:6:9789@79:;9:899989::9@:989@@9;989U39U9889:@96@897I9889898988989:989:::99:9I895:9:>98989898789::93898I+989989896989::989@<:9::9:@988999:89:95988:989:@9@899<9;89:U897+889 :999:::998:9:.:9:9=9@89;989889:98939::<9@89<9=9789:<9389U898;9@899I89689:9::9835:9@9@8969989:;975898U:99@899989:97;9.3+@:9:89@89896989:89@9 8978775::;9:98<9@89997.89:;9:7989;U9@89989789:9U79:99:989@89989:89::9<99:;79@89:9989:6999@399@89:989789:98@@899:999@899;9789:99868998;I9:999@893:97989:997;99899U799@8989989:97987:889988<9899@899989:997U<::99;I9899@89998:9;89::9798UF99::99@899898899889:89:398987+<:987:7:99@89798988889889:89893398@:99@89899==989::998@9:969:99@89998U:989:@996;9989897U899@899986=:9889:89:98U;96899@89798997989::9:983@7::98989;5U99@89798898997;989:7898.99<=99:9:99>3@@699@89589889=98989:899:99:9@79@89968979:89:99;7:99:7;999@899689:77989:9;7:99:7;9999@8996897798989;3<899898<@;99@89968989889:9:;;899;;:99@899:8979889898@36:99:`0#?7@NߡzAFM4Oj|~n_O@0!C Fvܭ}MpŁMԘhP^. k 7}̈́2'5ّHSߎ<R_xl'4Fߜ(uP2=ۆKPb֖XÁ"![AÁ"1)ؿZ8ÁD% {?( "8gͱw: ÁJܪX K(ǁDÁӵ}oaSGP]kyL#  mX ݳzeP:(Á^ǖf5I` ÁlJEz" :ÁQOӁ88,qÁ<`cv??DÁ]'wa?[%:  ÁE'?s'>ԺB#Á0>u(  @;RÁ1$̸k+Áظ6*}xBÁ t&ԁt.dÁg'MiFÁHLÁ/I X L06Á-H)ʴS+:ÁVw8Iʗj;:ÁRؒ!с :Á :ÁV/SÁÁ XÁqp–^' >nnWÁ-A#N.Á:nL2g{mÁG0aÁTq|ȁ!|XcccccccÁU(8!a^֬ÁCJ7rzWE20005FX{ LLLLKÁ1e0X c -H̪Á>Zbɿ44(44Á .'Á$x ! x ÁM +G½,ؐ    z' ||;xһC H^pɮkJ(H^pɮkJ( "dͅ40jɳpV "gΏD Exշn At{ zŗzȲL0Ao3uB)dyC)dyC c!Ky,X^.5 k:rK*f  h/E ?yآj$ ?yآj$EpޑCl I[DIKG\ȚkT5ۓK 5ۓK  }8O1VA@L"iKj7?C9pox ^C^CT+"Zu);qy5?=Btz    y#fpdMz ٓoU,,,6Z J٦D GjFFf?C j/.Gt,NKc Zz'PҢKG{ff?tlFÓ{!8A %#l#lu%3pzMT6U?Ss[s[ j(J+?  O[&,K,K8 Gx&bȒҡqQ<2,9Wu&Q 8(/'j<j<9\YggLb +CC^ݪyI2$ )=Qey/ݪyI2$ )=Qey/Qj $~w@> `g 2?~$ 2?~$mw5/J,B:Wv A A0Mf 1LnŖ._ 8 8N )L(~=.) e ) e }r 泝ygu} !g!VŁ4?~̈tg?&5`5`nZ a 4~=p3~MxotB Y Q ~T I ~9ؚW d~ܓ˅e ΓgTA4ARcuJKJK wM*HC<pLBb~*5P~qs'FU X  s s:*5]~ lWA+4h~D gΏ##~؆iF V !5[[?^B_k*t3r~/awAE~.i|m#&Z]] )# zQ ~  Gqr~d#BhN)_k׾ piQ\~IYʤl&(~Ț (-kR%٣٬gJQjIx$A~+Pd6R~,3?LĤĭH7<}+b6m~2b~1~E0Á3.~#>(x|6KA~z 3T|Ѱg=P~DDC[8* 3-yOۥۯW)Ya}b 49G~: 6xÂP ~Χ[I_3Oz ccv57?6`3~" >g tT$W~|A[]f+z711MA% d"",~k  5EYk Ǯu^N:-B~[]x# O}} MW&Hn~8 !?T~~ώ~v??~r[]& {XɧXɲ*b=#P!+lT~:'>NL,' r~[&2]6 ,},//*eX9~s~[]0n [gQt*e<\~s>~q[ ]h s?  !i:7A d~ҁ,_~[ hZ ;.@88ZG;RL jk~h~w[ Vn" id,d,$_XQ  r~8%j~RGA[ N@~-" lel 8y~^ ;~k[ s4hMAQQexE1^y"'|~oD~[ 3,k f?1^Y~ߔL7u~[ @ !:1HRE8)4~։ f~u<[ &8bPXXXy`g&t\@~L 4~u[&j'! }B/V"=s m~٦i+P~u['D>^3hb~Z0~u[:&Yr(}}%\(sj_5 ,Mju[dK\K\eJj>UT {_ƘV 9_u+[`c . .o71:%VFm  H?u+[3R,[]CqCZm@1-РqP(Bi-U[s<O3YE } }  /5[  Т]! B [#Vwl"b0w{;*  (6^G[sRre?.MJK]Ұy[7 ,Np][Ug:QJoJo(:j|a1K[z <G^^NH x̬^TC<-) %-7CLYq֨[  @fHPNPNssgp/SK q]F/<\]]]hK[' > cs@@XDpfJ/~ .́[tttqat}@3@3fH- , )[i%:FQhiT))ch[$@N[i\\Z$$"$   > OQPp[ϡ n5dd+w F3 ˁ [ܼEEDa CPŽ<PauVV[=+StKM# # uz1lvP[w--8  WZZl&s1+$$[R}[#_wbV?OQQ[ūSa vn  b+#C  [[1߁{QAl)) =2hЁ[7YSS,  ρ ]L[:r=/.(H|x|xQr6܁6][ǁ,9ddu|a$F5 M==][xW u,RR41Rz(>݁?][Mi< ji"BBJ ?o!Y_][n7\= (4(4aۻLF޿UJ][PBb=$x5&5& =ZW"kAAM[ (9HEE-Ig&'[/Hn qQ$VVRu7o[7L <(i iiv|J[fJ^:$J $ePssssGn+V%UG[RŁ]_|W=$ ,@Th||L|La7$:>[n}7j""`STI۾~~[ ' <9F-q8nIP[&< a.u8![2:/SSR*yl77[0?pm5""w'/G݁[>Iԫ]1g)S"-)[ԮFw hhecp'66[a!` %LؽX][] ;:q??[x&VV/VYY[8~c  SL2sCiOO[] E+l+lxp^=D. $ .[]>I'< < ~'*…*'~[F=oF]]al*~8KK8~[33D` _4Oռ~88~[;{g\\ :$bt~w  IŇP  r~[*M ų/".j~ 55 ~[dm4..TE9R<f~?WϞK?~[ZHǁ$CCyiCYTA~AhrAx~[Zu \ZH}ű}N_Bu ~F8~S[eu"/l/  |^-~^;q£q; ^~[ulP?KKT 3RԻ~&)AzzA)#~[);CqZ|IqIq ,Uw~\(o֧o(\~&["q. t~I$EZսZE$H~+[}Dpt1RsNo~  $[ ۳[$ ~+[s?սIIvJ!)M~\.\xx\8[~?`\Z72>+~c ,,!%%d[[" ~00~)20"I]}=^s wDa~L  L~(bV]a<uu Hg ~EE~N5![z v[[(_7~44~klSH9*өm:,,K d!~gg~n  xC~mcaNH{~o  o~m`kSJ<˩< +`@~߉<<~%zu%#nt-$ E~ph~V xKVVS"9#@$*~~" "~ΞL*D [ [ 65X]?(~t84s~??k_ i}tGc##Bz[~qq~|kIBzϬ4c]]:u wfwW$ $Ww|'(2DE6#M\pdL*~_ް{; ;~_0웛E2(us,}5<_b_+9_P=$?Lsq/PS+|EsJݝe?:dJ$Ci>kVr S (2|.ήt55t.$yˮaѰ3knm**|?s- &  e(  (e$uu"N&k1##eB :ްhH" "Hhvuǯ <<S L]u._mjծmG  Gmjdn d%9T!vXvX=I1=K|1H 㴇^<-$   $-9^ 1?7 1M-[>nD*î IJoTB' #BToõ؆>>R_3;x=|W<X ˾\@2 @@NXB˱Ld&]y1qNJe/Be/BQ<_jb'ڙֽ'&&&&5l'(\I9[vvfi;jB|M B]_ "Rj&? %!??H Hyk`+ + l(z* 'Qw% DTN=N=l`3`NH{   UԘhP8 "7LavI{p{p1<`(*2e5 j~~rK-d=> * *3Bkgx56_ ρ 5 5tF5vvGa+M0i{TTi}&̲.,;p  ;p  Z ĨqoTy%&E@3[Lcv1cv1h!4\ʲ#5L~S?wS?wq? 88 P,~2 V` -9ep1(gJp1(gJn  #QQ|:Fa&KL9*žzV9-" %6FW}*žzV9-" %6FW}bV.VVjg&O lmT i\M|M|U;Jap  C:vya*=z~y<y<D* e8I tt <~՝ _NK4-  p8F)zz ! &òqaQXj|^x$$U>e  cƕ]ԡ<B (VV:CNd pp ! %M~i~b~bmIc6:>jj?.o cr  pc pcqKppUځU+96)B_y cXcX4} BOT,Ձ,(#PĬ{m?6LP$P$h2o'|5dPOu<M LONONcd-CN1 ll |۽/ :dhfJ́5J́5n`J^"";00h/.F{^EAƁ<p˒Z"SߪvA"SߪvA=`Jڢj1yZ ' 1ÒO Rmu< EuͱsU6EuͱsU6 GѺD 5awͺ~K, iܺ{: 3Ӂ3 j"x[9JuݮP!   < a   !Lw ɮx^C( HH 5eBW #080(dd#?###v###{## ##݁ݐʜ ++:::++BB**ژ(mm(,,226߁߅6OO#YυϖY#**3|ؿ|3'EppE''||'GoӱoG-I}٥}I- 8i ٿi8 :OYt ³tYO:  CHj~~ô~~jHC flask-session-0.8.0/docs/_static/logo/logo-master.psd000066400000000000000000007754361460047617000226120ustar00rootroot000000000000008BPS,8BIM$ 2024-02-11T21:23:01+10:00 Pixelmator Pro 3.5.6 2024-02-11T20:18:01+10:00 2 3000000/10000 3000000/10000 1 1770 300 8BIM,,8BIM Transparency8BIM Transparency8BIM8BIM H HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km8BIM!aPixelmator Pro 3.5.6Pixelmator Pro 3.5.6u2,#*#*#*#*8BIMnorm` Background8BIMSoCopnullClr ObjcRGBCRd doub@oGrn doub@oBl doub@o8BIMvmsk(ffffPVV88ffff v%88VVP v%8BIMluni Background8BIMclbl8BIMinfx8BIMknko8BIMvstk< strokeStylestrokeStyleVersionlong strokeEnabledbool fillEnabledboolstrokeStyleLineWidthUntF#Pxl?strokeStyleLineDashOffsetUntF#PntstrokeStyleMiterLimitdoub@YstrokeStyleLineCapTypeenumstrokeStyleLineCapTypestrokeStyleButtCapstrokeStyleLineJoinTypeenumstrokeStyleLineJoinTypestrokeStyleMiterJoinstrokeStyleLineAlignmentenumstrokeStyleLineAlignmentstrokeStyleAlignCenterstrokeStyleScaleLockboolstrokeStyleStrokeAdjustboolstrokeStyleLineDashSetVlLsstrokeStyleBlendModeenumBlnMNrmlstrokeStyleOpacityUntF#Prc@YstrokeStyleContentObjcsolidColorLayerClr ObjcRGBCRd doubGrn doubBl doubstrokeStyleResolutiondoub@r0  ' ! 8BIMnorm(Flask8BIMlfx2Xnull Scl UntF#Prc@z 1&masterFXSwitchboolDrShObjcDrShenabboolpresentbool showInDialogboolMd enumBlnMMltpClr ObjcRGBCRd doubGrn doubBl doubOpctUntF#Prc@AuglgboollaglUntF#Ang@VDstnUntF#Pxl@CkmtUntF#PxlblurUntF#Pxl@ NoseUntF#PrcAntAbool layerConcealsboolIrShObjcIrSh enabboolpresentbool showInDialogboolMd enumBlnMMltpClr ObjcRGBCRd doubGrn doubBl doubOpctUntF#Prc@AuglgboollaglUntF#Ang@VDstnUntF#Pxl@CkmtUntF#PxlblurUntF#Pxl@ NoseUntF#PrcAntAboolOrGlObjcOrGl enabboolpresentbool showInDialogboolMd enumBlnMScrnClr ObjcRGBCRd doub@oGrn doub@oBl doub@oOpctUntF#Prc@AGlwTenumBETESfBLCkmtUntF#PxlblurUntF#Pxl@ NoseUntF#PrcShdNUntF#PrcAntAboolInprUntF#Prc@ISoFiObjcSoFienabboolpresentbool showInDialogboolMd enumBlnMNrmlClr ObjcRGBCRd doub@LGrn doub@e Bl doub@gOpctUntF#Prc@YGrFlObjcGrFl enabboolpresentbool showInDialogboolMd enumBlnMNrmlOpctUntF#Prc@YGradObjcGrdnGrdFenumGrdFCstSIntrdoub@ClrsVlLsObjcClrtClr ObjcRGBCRd doub@oGrn doub@oBl doub@oTypeenumClryUsrSLctnlongMdpnlong2ObjcClrtClr ObjcRGBCRd doubGrn doubBl doubTypeenumClryUsrSLctnlongMdpnlong2TrnsVlLsObjcTrnSOpctUntF#Prc@YLctnlongMdpnlong2ObjcTrnSOpctUntF#Prc@YLctnlongMdpnlong2AnglUntF#AngTypeenumGrdTLnr RvrsboolDthrboolAlgnboolScl UntF#Prc@YOfstObjcPnt HrznUntF#PrcVrtcUntF#Prc patternFillObjc patternFill enabboolpresentbool showInDialogboolMd enumBlnMNrmlOpctUntF#Prc@YPtrnObjcnullIdntTEXT%92150a0d-bc3e-9349-adc8-869fb042a4b0AnglUntF#AngScl UntF#Prc@YAlgnboolphaseObjcPnt HrzndoubVrtcdoubFrFXObjcFrFX enabboolpresentbool showInDialogboolStylenumFStlInsFPntTenumFrFlSClrMd enumBlnMNrmlOpctUntF#Prc@YSz UntF#Pxl@Clr ObjcRGBCRd doubGrn doubBl doub overprintboolIrGlObjcIrGlenabboolpresentbool showInDialogboolMd enumBlnMScrnClr ObjcRGBCRd doub@oGrn doub@oBl doub@oOpctUntF#Prc@AGlwTenumBETESfBLCkmtUntF#PxlblurUntF#Pxl@ NoseUntF#PrcShdNUntF#PrcAntAboolInprUntF#Prc@IglwSenumIGSrSrcEebblObjcebblenabboolpresentbool showInDialogboolhglMenumBlnMScrnhglCObjcRGBCRd doub@oGrn doub@oBl doub@ohglOUntF#Prc@IsdwMenumBlnMMltpsdwCObjcRGBCRd doubGrn doubBl doubsdwOUntF#Prc@IbvlTenumbvlTSfBLbvlSenumBESlInrBuglgboollaglUntF#Ang@VLaldUntF#AngsrgRUntF#Prc@YblurUntF#Pxl@ bvlDenumBESsIn SftnUntF#PxluseShapebool useTextureboolChFXObjcChFX enabboolpresentbool showInDialogboolMd enumBlnMMltpClr ObjcRGBCRd doubGrn doubBl doubAntAboolInvrboolOpctUntF#Prc@IlaglUntF#Ang@VDstnUntF#Pxl@IblurUntF#Pxl@S8BIMluniFlask8BIMclbl8BIMinfx8BIMknko0  ' ! 8BIMnorm* Dark blue8BIMlfx2Xnull Scl UntF#Prc@z 1&masterFXSwitchboolDrShObjcDrShenabboolpresentbool showInDialogboolMd enumBlnMMltpClr ObjcRGBCRd doubGrn doubBl doubOpctUntF#Prc@AuglgboollaglUntF#Ang@VDstnUntF#Pxl@CkmtUntF#PxlblurUntF#Pxl@ NoseUntF#PrcAntAbool layerConcealsboolIrShObjcIrSh enabboolpresentbool showInDialogboolMd enumBlnMMltpClr ObjcRGBCRd doubGrn doubBl doubOpctUntF#Prc@AuglgboollaglUntF#Ang@VDstnUntF#Pxl@CkmtUntF#PxlblurUntF#Pxl@ NoseUntF#PrcAntAboolOrGlObjcOrGl enabboolpresentbool showInDialogboolMd enumBlnMScrnClr ObjcRGBCRd doub@oGrn doub@oBl doub@oOpctUntF#Prc@AGlwTenumBETESfBLCkmtUntF#PxlblurUntF#Pxl@ NoseUntF#PrcShdNUntF#PrcAntAboolInprUntF#Prc@ISoFiObjcSoFienabboolpresentbool showInDialogboolMd enumBlnMNrmlClr ObjcRGBCRd doub@CGrn doub@WBl doub@^@OpctUntF#Prc@YGrFlObjcGrFl enabboolpresentbool showInDialogboolMd enumBlnMNrmlOpctUntF#Prc@YGradObjcGrdnGrdFenumGrdFCstSIntrdoub@ClrsVlLsObjcClrtClr ObjcRGBCRd doub@oGrn doub@oBl doub@oTypeenumClryUsrSLctnlongMdpnlong2ObjcClrtClr ObjcRGBCRd doubGrn doubBl doubTypeenumClryUsrSLctnlongMdpnlong2TrnsVlLsObjcTrnSOpctUntF#Prc@YLctnlongMdpnlong2ObjcTrnSOpctUntF#Prc@YLctnlongMdpnlong2AnglUntF#AngTypeenumGrdTLnr RvrsboolDthrboolAlgnboolScl UntF#Prc@YOfstObjcPnt HrznUntF#PrcVrtcUntF#Prc patternFillObjc patternFill enabboolpresentbool showInDialogboolMd enumBlnMNrmlOpctUntF#Prc@YPtrnObjcnullIdntTEXT%92150a0d-bc3e-9349-adc8-869fb042a4b0AnglUntF#AngScl UntF#Prc@YAlgnboolphaseObjcPnt HrzndoubVrtcdoubFrFXObjcFrFX enabboolpresentbool showInDialogboolStylenumFStlInsFPntTenumFrFlSClrMd enumBlnMNrmlOpctUntF#Prc@YSz UntF#Pxl@Clr ObjcRGBCRd doubGrn doubBl doub overprintboolIrGlObjcIrGlenabboolpresentbool showInDialogboolMd enumBlnMScrnClr ObjcRGBCRd doub@oGrn doub@oBl doub@oOpctUntF#Prc@AGlwTenumBETESfBLCkmtUntF#PxlblurUntF#Pxl@ NoseUntF#PrcShdNUntF#PrcAntAboolInprUntF#Prc@IglwSenumIGSrSrcEebblObjcebblenabboolpresentbool showInDialogboolhglMenumBlnMScrnhglCObjcRGBCRd doub@oGrn doub@oBl doub@ohglOUntF#Prc@IsdwMenumBlnMMltpsdwCObjcRGBCRd doubGrn doubBl doubsdwOUntF#Prc@IbvlTenumbvlTSfBLbvlSenumBESlInrBuglgboollaglUntF#Ang@VLaldUntF#AngsrgRUntF#Prc@YblurUntF#Pxl@ bvlDenumBESsIn SftnUntF#PxluseShapebool useTextureboolChFXObjcChFX enabboolpresentbool showInDialogboolMd enumBlnMMltpClr ObjcRGBCRd doubGrn doubBl doubAntAboolInvrboolOpctUntF#Prc@IlaglUntF#Ang@VDstnUntF#Pxl@IblurUntF#Pxl@S8BIMluni Dark blue8BIMclbl8BIMinfx8BIMknko"FIKRRR8BIMnorm(4PSession8BIMlfx2Xnull Scl UntF#Prc@z 1&masterFXSwitchboolDrShObjcDrShenabboolpresentbool showInDialogboolMd enumBlnMMltpClr ObjcRGBCRd doubGrn doubBl doubOpctUntF#Prc@AuglgboollaglUntF#Ang@VDstnUntF#Pxl@CkmtUntF#PxlblurUntF#Pxl@ NoseUntF#PrcAntAbool layerConcealsboolIrShObjcIrSh enabboolpresentbool showInDialogboolMd enumBlnMMltpClr ObjcRGBCRd doubGrn doubBl doubOpctUntF#Prc@AuglgboollaglUntF#Ang@VDstnUntF#Pxl@CkmtUntF#PxlblurUntF#Pxl@ NoseUntF#PrcAntAboolOrGlObjcOrGl enabboolpresentbool showInDialogboolMd enumBlnMScrnClr ObjcRGBCRd doub@oGrn doub@oBl doub@oOpctUntF#Prc@AGlwTenumBETESfBLCkmtUntF#PxlblurUntF#Pxl@ NoseUntF#PrcShdNUntF#PrcAntAboolInprUntF#Prc@ISoFiObjcSoFienabboolpresentbool showInDialogboolMd enumBlnMNrmlClr ObjcRGBCRd doub@oGrn doub@oBl doub@oOpctUntF#Prc@YGrFlObjcGrFl enabboolpresentbool showInDialogboolMd enumBlnMNrmlOpctUntF#Prc@YGradObjcGrdnGrdFenumGrdFCstSIntrdoub@ClrsVlLsObjcClrtClr ObjcRGBCRd doub@oGrn doub@oBl doub@oTypeenumClryUsrSLctnlongMdpnlong2ObjcClrtClr ObjcRGBCRd doubGrn doubBl doubTypeenumClryUsrSLctnlongMdpnlong2TrnsVlLsObjcTrnSOpctUntF#Prc@YLctnlongMdpnlong2ObjcTrnSOpctUntF#Prc@YLctnlongMdpnlong2AnglUntF#AngTypeenumGrdTLnr RvrsboolDthrboolAlgnboolScl UntF#Prc@YOfstObjcPnt HrznUntF#PrcVrtcUntF#Prc patternFillObjc patternFill enabboolpresentbool showInDialogboolMd enumBlnMNrmlOpctUntF#Prc@YPtrnObjcnullIdntTEXT%92150a0d-bc3e-9349-adc8-869fb042a4b0AnglUntF#AngScl UntF#Prc@YAlgnboolphaseObjcPnt HrzndoubVrtcdoubFrFXObjcFrFX enabboolpresentbool showInDialogboolStylenumFStlInsFPntTenumFrFlSClrMd enumBlnMNrmlOpctUntF#Prc@YSz UntF#Pxl@Clr ObjcRGBCRd doubGrn doubBl doub overprintboolIrGlObjcIrGlenabboolpresentbool showInDialogboolMd enumBlnMScrnClr ObjcRGBCRd doub@oGrn doub@oBl doub@oOpctUntF#Prc@AGlwTenumBETESfBLCkmtUntF#PxlblurUntF#Pxl@ NoseUntF#PrcShdNUntF#PrcAntAboolInprUntF#Prc@IglwSenumIGSrSrcEebblObjcebblenabboolpresentbool showInDialogboolhglMenumBlnMScrnhglCObjcRGBCRd doub@oGrn doub@oBl doub@ohglOUntF#Prc@IsdwMenumBlnMMltpsdwCObjcRGBCRd doubGrn doubBl doubsdwOUntF#Prc@IbvlTenumbvlTSfBLbvlSenumBESlInrBuglgboollaglUntF#Ang@VLaldUntF#AngsrgRUntF#Prc@YblurUntF#Pxl@ bvlDenumBESsIn SftnUntF#PxluseShapebool useTextureboolChFXObjcChFX enabboolpresentbool showInDialogboolMd enumBlnMMltpClr ObjcRGBCRd doubGrn doubBl doubAntAboolInvrboolOpctUntF#Prc@IlaglUntF#Ang@VDstnUntF#Pxl@IblurUntF#Pxl@S8BIMTySh"??@@Ah2TxLrTxt TEXT Session textGriddingenum textGriddingNoneOrntenumOrntHrznAntAenumAnntAnCrboundsObjcboundsLeftUntF#PntTop UntF#PntRghtUntF#Pnt@@BtomUntF#Pnt@ boundingBoxObjc boundingBoxLeftUntF#Pnt@,ʀTop UntF#Pnt@`0RghtUntF#Pnt@`'GzBtomUntF#Pnt@v TextIndexlong EngineDatatdta << /EngineDict << /Editor << /Text (Session ) >> /ParagraphRun << /DefaultRunData << /ParagraphSheet << /DefaultStyleSheet 0 /Properties << >> >> /Adjustments << /Axis [ 1.0 0.0 1.0 ] /XY [ 0.0 0.0 ] >> >> /RunArray [ << /ParagraphSheet << /DefaultStyleSheet 0 /Properties << /Justification 0 /FirstLineIndent 0.0 /StartIndent 0.0 /EndIndent 0.0 /SpaceBefore 0.0 /SpaceAfter 0.0 /AutoHyphenate false /HyphenatedWordSize 6 /PreHyphen 2 /PostHyphen 2 /ConsecutiveHyphens 8 /Zone 36.0 /WordSpacing [ .8 1.0 1.33 ] /LetterSpacing [ 0.0 0.0 0.0 ] /GlyphSpacing [ 1.0 1.0 1.0 ] /AutoLeading 1.2 /LeadingType 0 /Hanging false /Burasagari false /KinsokuOrder 0 /EveryLineComposer false >> >> /Adjustments << /Axis [ 1.0 0.0 1.0 ] /XY [ 0.0 0.0 ] >> >> ] /RunLengthArray [ 8 ] /IsJoinable 1 >> /StyleRun << /DefaultRunData << /StyleSheet << /StyleSheetData << >> >> >> /RunArray [ << /StyleSheet << /StyleSheetData << /Font 0 /FontSize 319.0 /FauxBold false /FauxItalic false /AutoLeading false /Leading 357.0 /HorizontalScale 1.0 /VerticalScale 1.0 /Tracking -10 /AutoKerning true /Kerning 0 /BaselineShift 0.0 /FontCaps 0 /FontBaseline 0 /Underline false /Strikethrough false /Ligatures true /DLigatures false /BaselineDirection 2 /Tsume 0.0 /StyleRunAlignment 2 /Language 0 /NoBreak false /FillColor << /Type 1 /Values [ 1.0 0.0 0.0 0.0 ] >> /StrokeColor << /Type 1 /Values [ 1.0 0.0 0.0 0.0 ] >> /YUnderline 1 /HindiNumbers false /Kashida 1 >> >> >> ] /RunLengthArray [ 8 ] /IsJoinable 2 >> /GridInfo << /GridIsOn false /ShowGrid false /GridSize 18.0 /GridLeading 22.0 /GridColor << /Type 1 /Values [ 0.0 0.0 0.0 1.0 ] >> /GridLeadingFillColor << /Type 1 /Values [ 0.0 0.0 0.0 1.0 ] >> /AlignLineHeightToGridFlags false >> /AntiAlias 1 /UseFractionalGlyphWidths true /Rendered << /Version 1 /Shapes << /WritingDirection 0 /Children [ << /ShapeType 1 /Procession 0 /Lines << /WritingDirection 0 /Children [ ] >> /Cookie << /Photoshop << /ShapeType 1 /BoxBounds [ 0.0 0.0 904.0 505.0 ] /Base << /ShapeType 1 /TransformPoint0 [ 1.0 0.0 ] /TransformPoint1 [ 0.0 1.0 ] /TransformPoint2 [ 0.0 0.0 ] >> >> >> >> ] >> >> >> /ResourceDict << /KinsokuSet [ << /Name (PhotoshopKinsokuHard) /NoStart (00 00    0=]0 0 0 00000000A0C0E0G0I0c000000000000000000?!\)]},.:;!!  0) /NoEnd (  0;[00 0 00\([{ 0) /Keep (  %) /Hanging (00.,) >> << /Name (PhotoshopKinsokuSoft) /NoStart (00 0   0=]0 0 0 0000000) /NoEnd (  0;[00 0 00) /Keep (  %) /Hanging (00.,) >> ] /MojiKumiSet [ << /InternalName (Photoshop6MojiKumiSet1) >> << /InternalName (Photoshop6MojiKumiSet2) >> << /InternalName (Photoshop6MojiKumiSet3) >> << /InternalName (Photoshop6MojiKumiSet4) >> ] /TheNormalStyleSheet 0 /TheNormalParagraphSheet 0 /ParagraphSheetSet [ << /Name (Normal RGB) /DefaultStyleSheet 0 /Properties << /Justification 0 /FirstLineIndent 0.0 /StartIndent 0.0 /EndIndent 0.0 /SpaceBefore 0.0 /SpaceAfter 0.0 /AutoHyphenate true /HyphenatedWordSize 6 /PreHyphen 2 /PostHyphen 2 /ConsecutiveHyphens 8 /Zone 36.0 /WordSpacing [ .8 1.0 1.33 ] /LetterSpacing [ 0.0 0.0 0.0 ] /GlyphSpacing [ 1.0 1.0 1.0 ] /AutoLeading 1.2 /LeadingType 0 /Hanging false /Burasagari false /KinsokuOrder 0 /EveryLineComposer false >> >> ] /StyleSheetSet [ << /Name (Normal RGB) /StyleSheetData << /Font 0 /FontSize 12.0 /FauxBold false /FauxItalic false /AutoLeading true /Leading 0.0 /HorizontalScale 1.0 /VerticalScale 1.0 /Tracking 0 /AutoKerning true /Kerning 0 /BaselineShift 0.0 /FontCaps 0 /FontBaseline 0 /Underline false /Strikethrough false /Ligatures true /DLigatures false /BaselineDirection 2 /Tsume 0.0 /StyleRunAlignment 2 /Language 0 /NoBreak false /FillColor << /Type 1 /Values [ 1.0 0.0 0.0 0.0 ] >> /StrokeColor << /Type 1 /Values [ 1.0 0.0 0.0 0.0 ] >> /YUnderline 1 /HindiNumbers false /Kashida 1 >> >> ] /FontSet [ << /Name (Apple-Chancery) /Script 0 /FontType 1 /Synthetic 0 >> ] /SuperscriptSize .666666667 /SuperscriptPosition .333333333 /SubscriptSize .666666667 /SubscriptPosition .333333333 /SmallCapSize .7 >> /DocumentResources << /KinsokuSet [ << /Name (PhotoshopKinsokuHard) /NoStart (00 00    0=]0 0 0 00000000A0C0E0G0I0c000000000000000000?!\)]},.:;!!  0) /NoEnd (  0;[00 0 00\([{ 0) /Keep (  %) /Hanging (00.,) >> << /Name (PhotoshopKinsokuSoft) /NoStart (00 0   0=]0 0 0 0000000) /NoEnd (  0;[00 0 00) /Keep (  %) /Hanging (00.,) >> ] /MojiKumiSet [ << /InternalName (Photoshop6MojiKumiSet1) >> << /InternalName (Photoshop6MojiKumiSet2) >> << /InternalName (Photoshop6MojiKumiSet3) >> << /InternalName (Photoshop6MojiKumiSet4) >> ] /TheNormalStyleSheet 0 /TheNormalParagraphSheet 0 /ParagraphSheetSet [ << /Name (Normal RGB) /DefaultStyleSheet 0 /Properties << /Justification 0 /FirstLineIndent 0.0 /StartIndent 0.0 /EndIndent 0.0 /SpaceBefore 0.0 /SpaceAfter 0.0 /AutoHyphenate true /HyphenatedWordSize 6 /PreHyphen 2 /PostHyphen 2 /ConsecutiveHyphens 8 /Zone 36.0 /WordSpacing [ .8 1.0 1.33 ] /LetterSpacing [ 0.0 0.0 0.0 ] /GlyphSpacing [ 1.0 1.0 1.0 ] /AutoLeading 1.2 /LeadingType 0 /Hanging false /Burasagari false /KinsokuOrder 0 /EveryLineComposer false >> >> ] /StyleSheetSet [ << /Name (Normal RGB) /StyleSheetData << /Font 0 /FontSize 12.0 /FauxBold false /FauxItalic false /AutoLeading true /Leading 0.0 /HorizontalScale 1.0 /VerticalScale 1.0 /Tracking 0 /AutoKerning true /Kerning 0 /BaselineShift 0.0 /FontCaps 0 /FontBaseline 0 /Underline false /Strikethrough false /Ligatures true /DLigatures false /BaselineDirection 2 /Tsume 0.0 /StyleRunAlignment 2 /Language 0 /NoBreak false /FillColor << /Type 1 /Values [ 1.0 0.0 0.0 0.0 ] >> /StrokeColor << /Type 1 /Values [ 1.0 0.0 0.0 0.0 ] >> /YUnderline 1 /HindiNumbers false /Kashida 1 >> >> ] /FontSet [ << /Name (Apple-Chancery) /Script 0 /FontType 1 /Synthetic 0 >> ] /SuperscriptSize .666666667 /SuperscriptPosition .333333333 /SubscriptSize .666666667 /SubscriptPosition .333333333 /SmallCapSize .7 >> >>warp warpStyleenum warpStylewarpNone warpValuedoubwarpPerspectivedoubwarpPerspectiveOtherdoub warpRotateenumOrntHrzn8BIMluniSession8BIMclbl8BIMinfx8BIMknko#)0.*,('',,.,*/.../()+-+*,+-+**297224?A?>;=<?>:68679986/033532.0./044114./0/-540333453/2-+/--/.*,,.-***+*)),0155662799;83;<<<>=>>7453666657:/*--)-,4756687768685::99::?!ÚÚÚÚÚÚÚÚÚÚÚ&9ÚÚ!!Ú.Ú mÚ~ÚÚEzÚ1ÚOÚօÚۄÚFÚÚÚÚ ÚÚÚÚ Ú#ÚRÚÚÚdÚÚÚ6Ú:Ú:Ú:Ú:ÚÚÚÚnnnWÚÚ{mÚaÚ|XcccccccÚ^֬ÚLLLLKÚ-H̪ÚӁ44(44Ú'Ú x ÚG½,ؐ zŗzȲL0*f IKG\7?C9p?=J٦D /.GPҢKG!8AU&Q 8>,B:nŖ._=.̈tgMxoܓqs'F؆iF V.i|mdȚ (,E0DDC[8* Χ[I_|A[]f[]xr[][&2][]0nq[ ]h [ hZw[ VRGA[ k[ s[ 3[ @u<[ &8u[&u['u[:u[u+[u+[3R,U[s<O[#G[s[U[z [ [' >[tttqa)[i%:[i\\Z$[ϡ[ܼEED[=+[w--[R}[[ūSa[[1[]L[:r=/.][][xW][Mi<][n7][PBbֺM[ ([/Hn[7L[fJ^[R[n}[[&[2[0?[>Iԫ][ԮF[a[[x&[8[][]>[F[33D[;[*[dm[ZH[Zu S[eu[ul[);C&["+[}Dp+[?P2Pt)2(bVN5!klSH9nm`k%zuV??k_|kIB|'(2D0웛E2(P=$?L$Ci$y$uuvudn d%1?؆>>B˱Ld&]&&&&5M B]_H Ur5 i}&%&Eʲ#5 P,~2 |:Fjg&O lC:v<~՝  ! cƕ]ԡ<B ! %?.+96)(#PĬ{m5dPOu|۽/ h/.F{^E j"x[9 < a   5eBW#?###v###{## ##ʜ :::!*#$% ")'#"%('&'&$"$'$"$$"'$ (.+,.)3663042752,.01.20.*+&&+(($$&&*'.'(-)$'"$)'%('&&)('!$##!$ ##"&$"##%"$"++/-,*,..5.*12.-4055/*&.,0,+--3$$''#%'(*+/+/21.3*2)11(.42;߄#) " !"%)"%(*$'#$""('$&$&#$" *,+/+,34942275,.00/00-**,*./$$$%%$&),'(,(,+'&./,(-,--+(++&+(+($&)&&((&')$"$(./..//,0/441,51527495++/*0+)+0*,% )#"%#+/+(,-20+//)-1.(34/;߄!*#$# "''!"#('&'&$"$%$"$$"'$ (,+,,(/343032652*.01.20.*+&&+(($$&&&'.'&)""%""))"(&&&)(%!!$#!$ # "&$"##""""++-,+**.,4/(0/0-4045-*&.,0,+--3$$''##'((+/*/01.1*2)11(.41;߄#)0.*,('',,.,*/.../()+-+*,+-+**297224?A?>;=<?>:68679986/033532.0./044114./0/-540333453/2-+/--/.*,,.-***+*)),0155662799;83;<<<>=>>7453666657:/*--)-,4756687768685::99::?!ÚÚÚÚÚÚÚÚÚÚÚ&9ÚÚ!!Ú.Ú mÚ~ÚÚEzÚ1ÚOÚօÚۄÚFÚÚÚÚ ÚÚÚÚ Ú#ÚRÚÚÚdÚÚÚ6Ú:Ú:Ú:Ú:ÚÚÚÚnnnWÚÚ{mÚaÚ|XcccccccÚ^֬ÚLLLLKÚ-H̪ÚӁ44(44Ú'Ú x ÚG½,ؐ zŗzȲL0*f IKG\7?C9p?=J٦D /.GPҢKG!8AU&Q 8>,B:nŖ._=.̈tgMxoܓqs'F؆iF V.i|mdȚ (,E0DDC[8* Χ[I_|A[]f[]xr[][&2][]0nq[ ]h [ hZw[ VRGA[ k[ s[ 3[ @u<[ &8u[&u['u[:u[u+[u+[3R,U[s<O[#G[s[U[z [ [' >[tttqa)[i%:[i\\Z$[ϡ[ܼEED[=+[w--[R}[[ūSa[[1[]L[:r=/.][][xW][Mi<][n7][PBbֺM[ ([/Hn[7L[fJ^[R[n}[[&[2[0?[>Iԫ][ԮF[a[[x&[8[][]>[F[33D[;[*[dm[ZH[Zu S[eu[ul[);C&["+[}Dp+[?P2Pt)2(bVN5!klSH9nm`k%zuV??k_|kIB|'(2D0웛E2(P=$?L$Ci$y$uuvudn d%1?؆>>B˱Ld&]&&&&5M B]_H Ur5 i}&%&Eʲ#5 P,~2 |:Fjg&O lC:v<~՝  ! cƕ]ԡ<B ! %?.+96)(#PĬ{m5dPOu|۽/ h/.F{^E j"x[9 < a   5eBW#?###v###{## ##ʜ :::!*#$% ")'#"%('&'&$"$'$"$$"'$ (.+,.)3663042752,.01.20.*+&&+(($$&&*'.'(-)$'"$)'%('&&)('!$##!$ ##"&$"##%"$"++/-,*,..5.*12.-4055/*&.,0,+--3$$''#%'(*+/+/21.3*2)11(.42;߄#) " !"%)"%(*$'#$""('$&$&#$" *,+/+,34942275,.00/00-**,*./$$$%%$&),'(,(,+'&./,(-,--+(++&+(+($&)&&((&')$"$(./..//,0/441,51527495++/*0+)+0*,% )#"%#+/+(,-20+//)-1.(34/;߄!*#$# "''!"#('&'&$"$%$"$$"'$ (,+,,(/343032652*.01.20.*+&&+(($$&&&'.'&)""%""))"(&&&)(%!!$#!$ # "&$"##""""++-,+**.,4/(0/0-4045-*&.,0,+--3$$''##'((+/*/01.1*2)11(.41;߄1(&$##"""!"!72,-*))*'((&)&'''''(%(%'&&'%(''%&##1mh^ZTUQUQRQOvkfbrrizywyuvquwtsqvrurqsqnuqnke_dc`^fbab_e`b``X[YZVV]\Y\[[YZdNNNORRPRNQPQQNRTSQOMQTPTWY]ffojnokolpkomnrqqrtswx}y|lrxZ_`hRWZ[\bfq5*=>`?@A4Oj|~n_O@0!CFvܭ}MpŁP^. 7}̈́2'Sߎ<R_4FuP2P"!["1)D%JܪXӵ}oaSGP]kyL# ^ǖf5lJEzQOӁ8<`cv]'waE'01ظ6*}x t&g'Mi/I X-H)Vw8Rؒ V q-:nGTqU(C1>     ||;xһC H^pɮkJ(H^pɮkJ( "dͅ40jɳpV "gΏD ExշnAo3uB)dyC)dyC c!Ky,X^.5 h/E ?yآj$ ?yآj$EpޑCl kT5ۓK 5ۓK  }8O1VAox ^C^CT+"ZBtz    y#fpdMGjFFf?t,NKc{ff?tl %#l#lu%3p?Ss[s[ j(J,K,K8 Gx&(/'j<j<9\YggLCC^ݪyI2$ )=Qey/ݪyI2$ )=Qey/Qj $~w `g 2?~$ 2?~$mw5Wv A A0Mf 8 8N ) e ) e }r 泝ygu} !?&5`5`nZ a 4tB Y Q ~T I e ΓgTA4ARcuJKJK wM*HC<pLBbU X  s s:*5]~ lWA+4h !5[[?^B_k*t3r#&Z]] )# zQ #BhN)_k׾ piQ\-kR%٣٬gJQjIx$A3?LĤĭH7<}+b6m3.~#>(x|6KA3-yOۥۯW)Ya}b 49G3Oz ccv57?6`3+z711MA% d"",# O}} MW&Hn& {XɧXɲ*b=#P!+lT6 ,},//*eX9 [gQt*e<\s?  !i:7A d ;.@88ZG;RL jkn" id,d,$_XQ  rN@~-" lel 8y4hMAQQexE1^y"'|,k f?1^Y !:1HRE8)4bPXXXy`g&t\@j'! }B/V"=s mD>^3hb&Yr(}}%\(sdK\K\eJj>UT {`c . .o71:%V[]CqCZm@13YE } }  /5[ Vwl"b0wRre?.MJKg:QJoJo(:j<G^^NH x @fHPNPNssgp/S cs@@XDpfJ/~ .t}@3@3fH- , FQhiT))ch[$@N$"$   > OQPp n5dd+w F3a CPŽ<PauStKM# # uz1lvP8  WZZl&s1+#_wbV?O vn  b+#C{QAl)) =2h7YSS, (H|x|xQr,9ddu|a$F5 M u,RR41Rz( ji"BBJ ?o!\= (4(4aۻLF=$x5&5& =ZW"k9HEE-Ig qQ$VVRu7o <(i iiv|J:$J $ePssssGn+V%]_|W=$ ,@Th||L|La7$7j""`STI ' <9F-q8n< a.u8:/SSR*ylpm5""w'/G1g)S"w hhecp'!` %L] ;:qVV/V~c  SL2sCi E+l+lxp^=DI'< < =oF]]al*` _4O{g\\ :$btM ų/".j4..TE9R<f$CCyiCYTA\ZH}ű}N_Bu "/l/  |^-P?KKT 3RqZ|IqIq ,Uwq. tt1RsNos?սIIvJ!)M`\Z72>+YM>!%%d[[" 0"I]}=^s wDa]a<uu Hg [z v[[(_7*өm:,,K d!  xC~mcaNH{SJ<˩< +`@%#nt-$ E xKVVS"9#@$*~L*D [ [ 65X]?( i}tGc##Bz[zϬ4c]]:u wfE6#M\pdL*~us,}5<_bsq/PS+|Es>kVr S (2|aѰ3knm**|?s- &  "N&k1##eB : <<S L]u._m9T!vXvX=I1=K|1H7 1M-[>nD*R_3;x=|W<y1qNJe/Be/BQ<_jbl'(\I9[vvfi;jB| "Rj&? %!Hyk`+ + l(z* 'Qw% DTN=N=l`3`NH{ ԘhP8 "7LavI{p{p1<`(*2e5 jK-d=> * *3Bkgx56_5tF5vvGa+M0i{.,;p  ;p  Z ĨqoTy@3[Lcv1cv1h!4\L~S?wS?wq? V` -9ep1(gJp1(gJn  #a&KL9*žzV9-" %6FW}*žzV9-" %6FW}bV.mT i\M|M|U;Japya*=z~y<y<D* e8I_NK4-  p8F)&òqaQXj|^x$$U>e (VV:CNd M~i~b~bmIc6:>o cr  pc pcqKppB_y cXcX4} BOT?6LP$P$h2o'|<M LONONcd-CN1:dhfJ́5J́5n`J^"";AƁ<p˒Z"SߪvA"SߪvA=`Jڢj1yZ '1ÒO Rmu< EuͱsU6EuͱsU6 GѺD 5awͺ~K, iܺ{:JuݮP!   !Lw ɮx^C( #080(8BIMTxt2 /98 << /0 7 >> /0 << /1 << /0 [ << /0 << /99 /CoolTypeFont /0 << /0 (Apple-Chancery) /2 1 /3 0 >> >> >> ] >> /5 << /0 [ << /0 << /0 (Normal RGB) /6 << /0 0 /1 12.0 /2 false /3 false /4 true /5 0.0 /6 1.0 /7 1.0 /8 0 /9 0.0 /10 0.0 /11 1 /12 0 /13 0 /14 0 /15 0 /16 0 /17 0.0 /18 true /19 false /20 false /21 false /22 false /23 false /24 false /25 false /26 false /27 false /28 false /29 false /30 0 /31 false /32 false /33 false /34 false /35 2 /36 0.0 /37 2 /38 0 /39 0 /40 false /41 2 /42 0 /43 << /0 .5 >> /44 2 /45 2 /46 7 /47 0 /48 0 /49 -1.0 /50 -1.0 /51 0 /52 false /53 << /99 /SimplePaint /0 << /0 1 /1 [ 1.0 0.0 0.0 0.0 ] >> >> /54 << /99 /SimplePaint /0 << /0 1 /1 [ 1.0 0.0 0.0 0.0 ] >> >> /55 << /99 /SimpleBlender >> /56 true /57 false /58 true /59 false /60 false /61 0 /62 0 /63 1.0 /64 4.0 /65 0.0 /66 [ ] /67 [ ] /68 0 /69 0 /70 0 /71 4 /72 0.0 /73 0.0 /74 false /75 false /76 false /77 true /78 true /79 << /99 /SimplePaint /0 << /0 1 /1 [ 1.0 1.0 1.0 0.0 ] >> >> /80 false /81 0 /82 3.0 /83 3.0 /84 false /85 0 /86 << /99 /SimpleCustomFeature >> /87 100.0 /88 true >> >> >> << /0 << /0 (None) /5 0 /6 << >> >> >> ] /1 [ << /0 0 >> << /0 1 >> ] >> /6 << /0 [ << /0 << /0 (Normal RGB) /5 << /0 0 /1 0.0 /2 0.0 /3 0.0 /4 0.0 /5 0.0 /6 1 /7 1.2 /8 0 /9 true /10 6 /11 2 /12 2 /13 0 /14 36.0 /15 true /16 .5 /17 [ .8 1.0 1.33 ] /18 [ 0.0 0.0 0.0 ] /19 [ 1.0 1.0 1.0 ] /20 6 /21 false /22 0 /23 true /24 0 /25 0 /27 /nil /26 false /28 /nil /29 false /30 << >> /31 36.0 /32 << >> /33 0 /34 7 /35 1 /36 /nil /37 0 /38 false /39 0 /40 2 >> >> >> << /0 << /0 (Basic Paragraph) /5 << /0 0 /1 0.0 /2 0.0 /3 0.0 /4 0.0 /5 0.0 /6 1 /7 1.2 /8 0 /9 true /10 6 /11 2 /12 2 /13 0 /14 36.0 /15 true /16 .5 /17 [ .8 1.0 1.33 ] /18 [ 0.0 0.0 0.0 ] /19 [ 1.0 1.0 1.0 ] /20 6 /21 false /22 0 /23 true /24 0 /25 0 /27 /nil /26 false /28 /nil /29 false /30 << >> /31 36.0 /32 << >> /33 0 /34 7 /35 1 /36 /nil /37 0 /38 false /39 0 /40 2 >> /6 0 >> >> ] /1 [ << /0 0 >> << /0 1 >> ] >> /8 << /0 [ << /0 << /1 << /0 [ 0.0 0.0 0.0 0.0 904.0 0.0 904.0 0.0 904.0 0.0 904.0 0.0 904.0 505.0 904.0 505.0 904.0 505.0 904.0 505.0 0.0 505.0 0.0 505.0 0.0 505.0 0.0 505.0 0.0 0.0 0.0 0.0 ] >> /2 << /0 1 /6 [ -2.0 -2.0 ] /11 << /4 -2 /7 false >> >> >> >> ] >> >> /1 << /0 << /1 0 /2 0 /3 .583 /4 .333 /5 .583 /6 .333 /7 .7 /8 true /16 false >> /1 [ << /0 << /0 (Session ) /5 << /0 [ << /0 << /0 << /0 () /5 << /0 0 /1 0.0 /2 0.0 /3 0.0 /4 0.0 /5 0.0 /6 0 /7 1.2 /8 0 /9 false /10 6 /11 2 /12 2 /13 0 /14 36.0 /15 true /16 .5 /17 [ .8 1.0 1.33 ] /18 [ 0.0 0.0 0.0 ] /19 [ 1.0 1.0 1.0 ] /20 6 /21 false /22 0 /23 true /24 0 /25 0 /27 /nil /26 false /28 /nil /29 false /30 << >> /31 36.0 /32 << >> /33 0 /34 7 /35 1 /36 /nil /37 0 /38 false /39 0 /40 2 >> /6 0 >> >> /1 8 >> ] >> /6 << /0 [ << /0 << /0 << /0 () /5 0 /6 << /0 0 /1 319.0 /2 false /3 false /4 false /5 357.0 /6 1.0 /7 1.0 /8 -10 /9 0.0 /10 0.0 /11 1 /12 0 /13 0 /14 0 /15 0 /16 0 /17 0.0 /18 true /19 false /20 false /21 false /22 false /23 false /24 false /25 false /26 false /27 false /28 false /29 false /30 0 /31 false /32 false /33 false /34 false /35 2 /36 0.0 /37 2 /38 0 /39 0 /40 false /41 2 /42 0 /43 << /0 .5 >> /44 2 /45 2 /46 7 /47 0 /48 0 /49 -1.0 /50 -1.0 /51 0 /52 false /53 << /99 /SimplePaint /0 << /0 1 /1 [ 1.0 0.0 0.0 0.0 ] >> >> /54 << /99 /SimplePaint /0 << /0 1 /1 [ 1.0 0.0 0.0 0.0 ] >> >> /55 << /99 /SimpleBlender >> /56 true /57 false /58 true /59 false /60 false /61 0 /62 0 /63 1.0 /64 4.0 /65 0.0 /66 [ ] /67 [ ] /68 0 /69 0 /70 0 /71 4 /72 0.0 /73 0.0 /74 false /75 false /76 false /77 true /78 true /79 << /99 /SimplePaint /0 << /0 1 /1 [ 1.0 1.0 1.0 0.0 ] >> >> /80 false /81 0 /82 3.0 /83 3.0 /84 false /85 0 /86 << /99 /SimpleCustomFeature >> /87 100.0 /88 true >> >> >> /1 8 >> ] >> /9 << /0 [ << /0 << >> /1 7 >> << /0 << >> /1 1 >> ] >> /10 << /0 4 /2 true >> >> /1 << /0 [ << /0 0 >> ] >> >> ] /2 << /0 0 /1 12.0 /2 false /3 false /4 true /5 0.0 /6 1.0 /7 1.0 /8 0 /9 0.0 /10 0.0 /11 1 /12 0 /13 0 /14 0 /15 0 /16 0 /17 0.0 /18 true /19 false /20 false /21 false /22 false /23 false /24 false /25 false /26 false /27 false /28 false /29 false /30 0 /31 false /32 false /33 false /34 false /35 2 /36 0.0 /37 2 /38 0 /39 0 /40 false /41 2 /42 0 /43 << /0 .5 >> /44 2 /45 2 /46 7 /47 0 /48 0 /49 -1.0 /50 -1.0 /51 0 /52 false /53 << /99 /SimplePaint /0 << /0 1 /1 [ 1.0 0.0 0.0 0.0 ] >> >> /54 << /99 /SimplePaint /0 << /0 1 /1 [ 1.0 0.0 0.0 0.0 ] >> >> /55 << /99 /SimpleBlender >> /56 true /57 false /58 true /59 false /60 false /61 0 /62 0 /63 1.0 /64 4.0 /65 0.0 /66 [ ] /67 [ ] /68 0 /69 0 /70 0 /71 4 /72 0.0 /73 0.0 /74 false /75 false /76 false /77 true /78 true /79 << /99 /SimplePaint /0 << /0 1 /1 [ 1.0 1.0 1.0 0.0 ] >> >> /80 false /81 0 /82 3.0 /83 3.0 /84 false /85 0 /86 << /99 /SimpleCustomFeature >> /87 100.0 /88 true >> /3 << /0 0 /1 0.0 /2 0.0 /3 0.0 /4 0.0 /5 0.0 /6 1 /7 1.2 /8 0 /9 true /10 6 /11 2 /12 2 /13 0 /14 36.0 /15 true /16 .5 /17 [ .8 1.0 1.33 ] /18 [ 0.0 0.0 0.0 ] /19 [ 1.0 1.0 1.0 ] /20 6 /21 false /22 0 /23 true /24 0 /25 0 /27 /nil /26 false /28 /nil /29 false /30 << >> /31 36.0 /32 << >> /33 0 /34 7 /35 1 /36 /nil /37 0 /38 false /39 0 /40 2 >> >>  """"""""*****......22443223030022024335444224230001,,,,.+4384669:8MPNKJHMNNJLHHLJTUTRUTRhflfeghpntlpnqlhjlfjlnifcc^``\ZVYXZ]]aZYZVVWUPYWVZYUSXVVNOOQNLONNNRPPRPSTRPNLXZ]]Z`\fkfkb`ffe`dhih^``aeg^conpeb^VVVXZ\TTRUQRUURSORRLXIIG$& """"""""$$$$$((((((,*/,--,,,-**,,*,.--,0..,,../,,,-(&&&&(//:053443GHJHDIJBIEDDIHGJTLNQRP]c`_aahklfghhhhhbebgefgd^aYZZTRPTRSQ[]TPUOPSRNZTTTVRTWWTTLLQLQRPLMNPNLLMJJLLPLXVZX_Yckdif^iefkgiigba_^_^b_khic\ZTSNRU]OTONONMLLJKJRNQBEJ,, """"""""&&&&&******,,00/.,....,..,.00/120...0./.../*((*('15<9:25/7LLFFDGIMKIHHHLFNTNPTTNach``cdlpoohlmhfdbfgefgf`cWV^TTTXTUW]_XVTTPSRP\TXXUV\WXPNQNSQNQPLONPRPNNPNNLMTWV\Z^Ymkbgg^jdghlnmnc``^^c^akjnd`^WUPTV]SQNORSPNNNMHPQQIBF'* "#$%&?64211008787MHBC@??DCEDAEABBBAAC?B?CBADCDCA?B??<;<8211252<AIGBEA@@]y{||}{~~|}z~|z{oeXQ1.89:9:89:9:89:9:89:9:89:9:89:9:89:9:89:9:89:9:89:9:89:9:6:89:9::989:9:I66989:9:78:989:9:98989:9:3989:9::989:9:78989:9:989:9:3:989:9:989:9:989:9::989:9:<989:9:989:9:8989:9:.9989:9:99989:9:99989:9::99989:9:.9989:9::9989:9:89989:9:9989:9:9989:9:89989:9:9989:9:9989:9:9989:9:9989:9:9989:9:9989:9:9989:9:9989:9:9989:9:9989:9:98;89:9:989:9:9:89U8:9:9:3899:9:9:89:9=9:9:98999::9:98939U9::9:9899:959:9:989;;99;9;7:9:9;89::9:898:9:9:89.5995;:9:9:8999:9::9989U39U98:9:@9869898989:9:9:::998999:7:9::9398989:9:9::9988999::9:99@899<9;:9:U899@8979898:9:989@89<9=97:9:<99@899I9::9:99@89699:9:;979@8999:9:979@899<9:9:99@8999.:9:79:9@89997:9:9U9@899:9::9::99@89:99:9::99@89:997:9:989@899;97:9:99@893:99:9:99@89899:9:99@8999:9:99@89998:9;:9::99@899899::9:3989@89798988889:9::989@89899==9:9::99@8999:U:9:9:@99@89996=:9:9:89:9@89999;9:9::9:9@8998898997;9:9:79.9@8959889=989:9:899@89:9;89:9:;9::9:89:9@898989:99::9:@99@89@9889:9:9::9::99@89@989:9689::9:99@89@989:9:@9::9::989@899889.99::9:899@89989@989:9:99@899:89@99:9:98989899789@99:9:U9:989989@99:9:.9:989:989@9;9:9:797989:989@95;9:9::98989:9789@96;9:9:798989:9893:96;9:9:9989989:9;;9:9:9989:989:9:9:9:989:989:9:9:9989:9;89:9::9:<9989:9;89:97:9:89:989:9:89:9::9:79:989:9889:9::9:998998899::9:8998998899:9:998998998::9:@99899899:9::9:9899899;:9:@9:9899899:9998:9:9:9899889897:9::99889968989779:9:95989968939:9:9598996899:778:9:9:9899689;9::9:;9@98996899:99:9:99899I8989:9:989899899:::9:79:98998989:9:9:99899899:9:99:8998998;:9:<979:89989+:9:9:9:9:899899:9:8989:89989898:9:8979:89989:98:9:@899:899899::9:998899899:9:;99@89989<9:9:79:9@899899=:9:899@89989:9;:9:99@89989897:99@89989:89:9:9@89989+89::99@89989=9:@:969@8998989:9:9@899899::99@89989:89:9:9@899899::939@89989:9:9:9@8998990:9U9@8996899:9:969@899689@;9:99@899689U9::99@89968979::9:9@899689:9:9:9@899689779:989@899689:98:9:9@899:8979:989@8998989:989@899899:989@899899:99@89:9:89:9:98989@89:98899:99809@89:98898:98:9899@89:96899:9=98<9@89:9;899:9899@89:9;899:9<99@89:989:9:999@89:9:989:999@89:9@8989:9:979@89:99969:9:989@89:9;3<999:9:6939@899999:9:9:9@899999:9989@89989989:96+99@89798999:98399@89@938999:99+9@89@9999:999@89+97999:9899@89:9:999:98:959@89:9;:=9989:9899@89:9::7:9989:999@899;999:999@89999:9:7989@89@999:9:99@8999::9:9:989@8989@:99:9:@989@89899:8:9:9:8979@89=999:9:99@8999:=:9:9:@99@89:99:989:9:<9:9@89998666769:9:9:9@8989@9:9::9::989@899F9:9:989@899:9:9:99@89I939I:9:99@8999:9:899@89:99:9:99@89989:9:69:9@897979:9:6979@899:899::9:9:9@899:998:9:3:99@89:9:9:9:9:9:9@89:9<9:9:9:9:9@89+999:9:89I9@8979:9979:9:939@8996+89I93:9:99@8998:9@9:9:79:9@89;963969@:9::979@89:9:9789I:97:9:99@89;9:8998:9:<99@899:9:99::9:8989@89:89:99I:9:99@89:9::99:9:<9;9@8998679::9:9:799@89999:9::9.9@89::98<998988:9:39:9@89U.79:.:99.9.I:9:+99@89@:9;:89:9:::9:@9;:89:::89:67::89::@:9:>99;9=79ܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩܩʩܩܩЩܩܩөܩܩԩܩܩԩܩߩܩ֩ܩ穭ҩܩ֩ܩΩܩשܩʩܩשܩéܩةܩܩةܩܩةܩܩت٩ܩܩ٩٩ܩܩة٩ܩܩ٩٩ܩܩةکܩܩةکܩܩةکܩܩةکܩܩשکܩܩשکܩܩةکܩܩةکܩܩ٩کܩܩةکܩܩ٩کܩܩةکܩܩ٩کܩܩةکܩܩ٩کܩܩ٩کܩܩککܩܩ٩کܩܩ٩کܩҩөܩککܩԩ֩ܩ٩کܩ֩٩ܩةکܩ٩کܩ٩کܩةܩܩ٩کܩ̩ݩ٩ݩܩ٩کܩ̩ݩ۩ީܩ٩کܩѩݩܩߩܩ٩کܩЩݩ۩ީܩ٩کܩөݩܩߩܩ۩کܩԩݩݩܩ٩کܩթݩݩܩککܩ֩ݩݩܩ٩کܩթݩީܩ٩کܩשݩީܩککܩשݩީܩ٩کܩשݩީܩکܩשݩީܩکܩةݩީܩ۩ܩةݩީܩ۩ܩ٩ݩݩܩکܩکݩݩܩ۩ܩ۩ݩݩܩکܩکݩܩܩکܩکݩܩܩ۩ܩ۩ݩܩܩ۩ܩ۩ݩ۩ܩ۩ܩܩݩکܩܩܩ۩ݩکܩ۩ܩکݩ٩ܩܩܩکݩةܩ۩ܩ۩ݩשܩ۩ܩ۩ݩةܩ۩ܩ۩ݩԩܩ۩ܩ۩ݩ̩ܩ۩ܩܩݩΩܩ۩ܩܩݩƩܩܩܩܩݩܩ۩ܩܩݩܩکܩܩݩܩܩܩܩݩܩ۩ܩܩݩܩ۩ܩݩݩܩ۩ܩݩݩܩܩܩݩݩܩ۩ܩݩݩܩݩܩݩݩܩ۩ܩݩݩܩܩܩݩݩܩܩܩݩݩܩܩܩݩݩܩ۩ܩݩݩܩ۩کܩݩݩܩ٩کܩݩݩܩ٩کܩݩݩܩשکܩݩݩݩ֩کܩݩݩکܩݩݩکܩݩݩکܩݩݩکܩݩݩکܩݩݩکܩܩݩکܩݩݩکܩݩݩکܩܩݩکܩܩݩکܩܩݩéکܩܩݩ˩کܩܩݩϩکܩܩݩөکܩܩݩԩکܩ۩ݩ֩کܩ۩ݩةکܩ۩ݩ٩کܩܩݩککܩ۩ݩککܩ۩ݩ۩ͩةکܩ۩ݩ۩Ωթکܩ۩ݩ۩Ω֩کܩ۩ݩ۩Ω֩کܩ۩ݩܩϩ֩کܩکݩܩЩ֩کܩ٩ܩݩЩթکܩک٩ݩҩ֩کܩ٩ةީҩթکܩ٩թީө֩کܩةԩީөשکܩةѩީԩթکܩةϩީթ֩کܩשͩߩީթשکܩ֩˩ߩީשթکܩ֩˩ߩީששکܩԩȩީީש֩کܩҩǩީީ٩֩کܩѩĩߩݩ٩թکܩΩީݩک֩کܩũީݩ۩֩کܩީܩ۩שکܩݩ۩ݩ֩کܩݩܩܩթکܩܩ۩ܩ֩کܩککܩ֩کܩککܩשکܩةةܩ֩کܩةשܩשکܩԩթܩ֩کܩѩөܩԩکܩܩթکܩܩթکܩܩթکܩܩ֩کܩܩթکܩܩթکܩܩ֩کܩݩܩ֩کܩߩܩ֩کܩߩܩ֩کܩߩܩ֩کܩܩ֩کܩܩթکܩܩթکܩ©ܩשکܩũܩթکܩǩܩ֩کܩ˩ܩթکܩΩܩթکܩѩܩ֩کܩԩܩ֩کܩةܩ֩کܩܩ穽ܩ֩کܩߩ穻ܩ֩کܩ詹éܩթکܩ驵̩ܩ֩ڨ騲өި֨ݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾƽݾܾ̋ݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾĂݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾݾܾʾݾܾʾݾܾϾݾܾӾݾܾԾݾᄂܾվݾ¼߾ܾվݾ׾ܾ׾ݾϾܾ׾ݾƾܾ׾ݾ¾ܾ׾ݾܾپݾĽܾپݾܾ׿پݾܾپپݾܾؾپݾܾ׾پݾܾؾپݾܾؾھݾĦܾؾھݾܾپھݾ¢ܾپھݾܾؾھݾܾپھݾܾؾھݾÛܾؾھݾܾپھݾܾؾھݾܾؾھݾܾپھݾܾپھݾܾؾھݾܾپھݾܾپھݾܾؾھݾþϾܾھھݾѾӾܾھھݾ…־׾ܾھھݾ־ؾܾؾھݾ׾ھܾپھݾپ۾ܾپھݾܾ̾پܾܾپھݾξݾھݾܾپھݾѾݾܾ߾ܾھھݾҾݾܾ߾ܾپھݾԾݾݾ߾ܾܾھݾӾݾ޾߾ܾپھݾվݾ޾ܾھھݾ־ݾ޾ܾپھݾվݾݾܾھƁھݾ׾ݾݾܾپھݾؾݾݾܾپݾؾݾݾܾپݾؾݾݾܾ۾ݾؾݾݾܾ۾ݾؾݾ޾ܾھݾپݾݾܾھݾھݾ̽޾ܾھݾ۾ݾݾܾ۾ݾھݾݾܾھݾھݾݾܾ۾ݾھݾܾܾ۾ݾھݾ۾ܾھݾܾݾܾܾھݾ۾ݾھܾھݾھݾھܾ۾ݾھݾپܾ۾ݾ۾ݾؾŇܾ۾ݾ۾ݾ־ܾ۾ݾ۾ݾӾܾܾݾ۾ݾоܾ۾ݾܾݾξܾ۾ݾܾݾƾܾܾݾܾݾܾܾݾܾݾܾܾݾܾݾܾھݾܾݾܾ۾ݾܾݾܾ۾ݾݾݾܾ۾ݾݾݾܾ۾ݾݾݾܾ۾ݾݾݾܾ޾ݾݾݾܾ۾ݾݾݾܾݾݾݾݾܾܾݾݾݾܾܾݾݾݾܾ۾ھݾݾݾơܾ۾ھݾݾݾܾپھݾݾݾܾؾھݾݾݾھݾݾݾھݾݾݾھݾݾݾھݾݾݾ¤ھݾݾݾھݾݾݾھݾݾݾھݾܾݾھݾݾݾھݾݾݾھݾܾݾھݾܾݾھݾܾݾǾھݾܾݾ˾ھݾܾݾϾھݾܾݾѾھݾܾݾվھݾܾݾ־ھݾ۾ݾؾھݾ۾ݾؾھݾ۾ݾؾƁھݾ۾ݾھ̾׾ھݾ۾ݾھ̾ؾھݾ۾ݾܾ;Ծھݾ۾ݾ۾ξ־Áھݾھݾ۾Ͼ־ھݾھݾܾϾվھݾھݾܾоվھݾھܾݾѾ׾ھݾھپݾѾ־ھݾپ־ݾҾվھݾؾվݾӾ־ھݾپӾݾӾ׾ھݾؾѾݾԾվھݾ׾оݾ־־ھݾؾ;߾ݾվվھݾ׾˾߾ݾ־־ھݾվʾ߾ݾ׾׾ھݾվǾ߾ݾپ־ھݾԾǾ߾ݾپ־ھݾҾ¿ľ޾ݾپ־ھݾϾþ޾ݾ۾־ھݾƾ޾ܾ۾־ھݾݾܾ۾־ھݾݾܾܾվھݾܾ۾ܾ־ھݾܾھܾվھݾ۾۾ܾ־ھݾ…ھپܾվھݾپپܾվھݾ־ؾܾ־ھݾӾվܾ־ھݾ̾оܾ־ھݾܾ־ھݾܾ־ھݾܾ־ھݾܾ־ھݾܾվھݾܾվھݾܾ־ھݾݾܾվھݾƿ޾ܾվھݾܾ־ھݾܾվھݾܾվۤھݾܾվھݾܾվھݾľܾ־ھݾƾܾվھݾȾȽܾվھݾʾܾվھݾξܾվھݾӾܾվھݾվܾԾھݾؾܾվھݾ۾羽ܾ־ھݾ߾羻ܾվھݾ边ƹžܾ־ھݾ辵ɾܾ־ڽ齲Ӿֽܽھā=>`?@A4Oj|~n_O@0!CFvܭ}MpŁP^. 7}̈́2'Sߎ<R_4FuP2PÁ"![Á"1)ÁD%ÁJܪXÁӵ}oaSGP]kyL# Á^ǖf5 ÁlJEzÁQOӁ8Á<`cvÁ]'wa ÁE'#Á0RÁ1Áظ6*}xÁ t&dÁg'MiÁÁ/I X6Á-H):ÁVw8:ÁRؒ:Á :ÁVÁÁ ÁqnnnWÁ-Á:n{mÁGaÁTq|XcccccccÁU(^֬ÁCLLLLKÁ1-H̪Á>Ӂ44(44Á 'Á x ÁG½,ؐ     ||;xһC H^pɮkJ(H^pɮkJ( "dͅ40jɳpV "gΏD ExշnzŗzȲL0Ao3uB)dyC)dyC c!Ky,X^.5*f  h/E ?yآj$ ?yآj$EpޑCl IKG\ȍkT5ۓK 5ۓK  }8O1VA7?C9pox ^C^CT+"Z?=Btz    y#fpdMJ٦D GjFFf?/.Gt,NKcPҢKG{ff?tl!8A %#l#lu%3pU?Ss[s[ j(J&,K,K8 Gx&Q 8(/'j<j<9\YggLCC^ݪyI2$ )=Qey/ݪyI2$ )=Qey/Qj $~w> `g 2?~$ 2?~$mw5,B:Wv A A0MfnŖ._ 8 8N =.) e ) e }r 泝ygu} !̈tg?&5`5`nZ a 4MxotB Y Q ~T I ܓˁe ΓgTA4ARcuJKJK wM*HC<pLBbqs'FU X  s s:*5]~ lWA+4h؆iF V !5[[?^B_k*t3r.i|m#&Z]] )# zQ d#BhN)_k׾ piQ\Ț (-kR%٣٬gJQjIx$A,3?LĤĭH7<}+b6mE0Á3.~#>(x|6KADDC[8* 3-yOۥۯW)Ya}b 49GΧ[I_3Oz ccv57?6`3|A[]f+z711MA% d"",[]x# O}} MW&Hnr[]& {XɧXɲ*b=#P!+lT[&2]6 ,},//*eX9[]0n [gQt*e<\q[ ]h s?  !i:7A d[ hZ ;.@88ZG;RL jkw[ Vn" id,d,$_XQ  rRGA[ N@~-" lel 8yk[ s4hMAQQexE1^y"'|[ 3,k f?1^Y[ @ !:1HRE8)4u<[ &8bPXXXy`g&t\@u[&j'! }B/V"=s mu['D>^3hbu[:&Yr(}}%\(su[dK\K\eJj>UT {u+[`c . .o71:%Vu+[3R,[]CqCZm@1U[s<O3YE } }  /5[ [#Vwl"b0wG[sRre?.MJK[Ug:QJoJo(:j[z <G^^NH x[  @fHPNPNssgp/S[' > cs@@XDpfJ/~ .[tttqat}@3@3fH- , )[i%:FQhiT))ch[$@N[i\\Z$$"$   > OQPp[ϡ n5dd+w F3[ܼEEDa CPŽ<Pau[=+StKM# # uz1lvP[w--8  WZZl&s1+[R}[#_wbV?O[ūSa vn  b+#C[[1߁{QAl)) =2h[7YSS, ]L[:r=/.(H|x|xQr][ǁ,9ddu|a$F5 M][xW u,RR41Rz(][Mi< ji"BBJ ?o!][n7\= (4(4aۻLF޾][PBb=$x5&5& =ZW"kֺM[ (9HEE-Ig[/Hn qQ$VVRu7o[7L <(i iiv|J[fJ^:$J $ePssssGn+V%[RŁ]_|W=$ ,@Th||L|La7$[n}7j""`STI۽[ ' <9F-q8n[&< a.u8[2:/SSR*yl[0?pm5""w'/G[>Iԫ]1g)S"[ԮFw hhecp'[a!` %Lؼ[] ;:q[x&VV/V[8~c  SL2sCi[] E+l+lxp^=D[]>I'< < [F=oF]]al*[33D` _4Oջ[;{g\\ :$bt[*M ų/".j[dm4..TE9R<f[ZHǁ$CCyiCYTA[Zu \ZH}ű}N_Bu S[eu"/l/  |^-[ulP?KKT 3RԺ[);CqZ|IqIq ,Uw&["q. t+[}Dpt1RsNo+[s?սIIvJ!)M?`\Z72>+P2PtƁYM>!%%d[[" )20"I]}=^s wDa(bV]a<uu Hg N5![z v[[(_7klSH9*өm:,,K d!n  xC~mcaNH{m`kSJ<˩< +`@%zu%#nt-$ EV xKVVS"9#@$*~ΑL*D [ [ 65X]?(??k_ i}tGc##Bz[|kIBzϬ4c]]:u wf|'(2DE6#M\pdL*~0웛E2(us,}5<_bP=$?Lsq/PS+|Es$Ci>kVr S (2|$yˡaѰ3knm**|?s- &  $uu"N&k1##eB :vuǢ <<S L]u._mdn d%9T!vXvX=I1=K|1H1?7 1M-[>nD*؆>>R_3;x=|W<B˱Ld&]y1qNJe/Be/BQ<_jb&&&&5l'(\I9[vvfi;jB|M B]_ "Rj&? %!H Hyk`+ + l(z* 'Qw% DTN=N=l`3`NH{ UԘhP8 "7LavI{p{p1<`(*2e5 jrK-d=> * *3Bkgx56_5 5tF5vvGa+M0i{i}&̥.,;p  ;p  Z ĨqoTy%&E@3[Lcv1cv1h!4\ʲ#5L~S?wS?wq?  P,~2 V` -9ep1(gJp1(gJn  #|:Fa&KL9*žzV9-" %6FW}*žzV9-" %6FW}bV.jg&O lmT i\M|M|U;JapC:vya*=z~y<y<D* e8I<~՝ _NK4-  p8F) ! &òqaQXj|^x$$U>ecƕ]ԡ<B (VV:CNd  ! %M~i~b~bmIc6:>?.o cr  pc pcqKpp+96)B_y cXcX4} BOT(#PĬ{m?6LP$P$h2o'|5dPOu<M LONONcd-CN1|۽/ :dhfJ́5J́5n`J^"";h/.F{^EAƁ<p˒Z"SߪvA"SߪvA=`Jڢj1yZ ' 1ÒO Rmu< EuͱsU6EuͱsU6 GѺD 5awͺ~K, iܺ{:j"x[9JuݮP!   < a   !Lw ɮx^C(  5eBW #080(#?###v###{## ##ʜ :::flask-session-0.8.0/docs/_static/logo/logo-social-dark.png000066400000000000000000001665741460047617000235030ustar00rootroot00000000000000PNG  IHDRաsRGBeXIfMM*V^(1fi|,,Pixelmator Pro 3.5.72024:02:11 20:18:01~_ pHYs.#.#x?viTXtXML:com.adobe.xmp 3000000/10000 3000000/10000 2 1 640 1280 2024-02-26T10:32:38+10:00 2024-02-11T20:18:01+10:00 Pixelmator Pro 3.5.7 J@IDATx]͛#BX:UTEG(5:RU[Q޴fUUVUUUvHdH DBnqν{=_Ψ ݺDo~~}(VS)[Eo2Y)m @ @J&P4*Xsqd+E-ch?8ڿF @ @ZE1o'=.m+fEa~b(Z&@ @ ^IQDo}i1(F0h?!{#hc @ @0|.룽W/ @ @M`rhKnݲ.T_4E\;T @ @ @v?) lY! E @ @ ̉:|7ɵk|Q+hoc_  @ @X@\sEߣ.s=s4S|'rQ @ @rO!~{v̧;>4ɴ'@ @ @ o1Q/D\Fȵ8(o'I%@ @ @ oE:Z.̿TCſjG @ @q05_l{ŗ*5L3 @ @Ektq.mpkH0~o  @ @J"]\[Vޣ"ӄ @ @ gv7_O1 @ @*h{E`h6 @ @)0' khw_D֥3 @ @kxN3:ܟ  @ @HQDAUlj  @ @I?xAD k @ @/?ȏF3[D &E{Ϗ6 @ @ E8 ڗgP[' @ @t ĵƷz[ Wm @ @S w`y.{ſXF @ @ q/e5 O @ @R-ַVQ:D{T%x @ @byѾq/^unſF @ @Z_\[}]+ )) @ @ @ @a"@ @ P _|.>#W @ @jgnu? @ @@ 5mJL> @ @dA0 @ @H "@ @ Ȝ  @ @)+>0~  @ @V^^2"@ @ @ h? xE @ @ @`}ť%! @ @2%6 @ @*T@BVZ @ @b@ @ @,X+5 @ @  @ @*X@Wj @ @} @ @T`/ @ @( @ @` ^\ @ @P @ @ PM+87 @ {ԶTk2Q`5-t+ckO=ܨ0w zg~ %@ @ @ `vG @ @^@0K( @ @8B @ @  _B  @ @. @ @PLJ @ @@v6 @ @H`P @ @ (fq @ @@>  P-{ڵz̟0&) @"@_R%qg},ލvc|Oص| @>&1 Pn&͚fdCC]v/wH'@ @PL @ ; t}ЬCା[_ @ @@ynV'Фym/M @ @ E@5$mzs@6X  @ @ ot$@ _Ao]? @ @ 4%@q.t_&@ @9 (ĥ1 Yz%v׏ @S@0O8h@Net9  @ PPr lw{ @ @MJ82z2. @H`DD*BVWD @ @iPL @Ztvq# @>[s(k~_9L@ @4L@aNZ @># @ @P,9T@-ClI @!u%TtCS @ @iJ @ Pu U&P>88 @h`t&@ v @ @@(B"6;옶K @B@*Y+кߦŝ @ @@ yH*Aǟ꥟ @ @@ !@ @ PHBj@ tU  @ @@zӳV"%HH @P\M @ @P5 88lӧK6 @ @s7Ӄ 4eA @$\@0 $< @ @Pl @ @. @ @(6FO_U.0_V  @ @@F"$@ @ `t: @ @H@(BF`o^=Ѳy^ @ @ (uM@A7d, @ @$ (&qUD@s[x} @b 4izNShax? @@ (VʌuL0B6 -Ͽ.ܸgpiX@}}CfØ[o  @t (sDM@S3fo$P ^})3tZz\`~>ߜ[ 6c @P,!HߔEG@ⳓz~uc4m:^(@f?>=2C.w8?DWN@}д]4]XB1#ÂƆ)wX H4\@VZ 2?Vʢ.@-϶]{ R!мsuCxKd|V`-pF`CP\K @}^h]a4@;'jOqyFW9Fl['rM4V ^ PioRZӬYև+6GU@;ĊQ[f_޼"dhֆ/Mᢇ<}-*XT^ @B͇m#o;oē@zPby?aLxŧxS"Ц0K +K|$@  ^? @T 8=eY'nBǭ"jea)GS߬['aZ z, 8KCrݝ~p!7*1 PuH@><#hҬY|E *-Ͽ6]EҼ,m_02I n^ @ # :PӴiQ18B t_C~@+ic5QO݉G0X%JO @ o'w_ C`۫n+Ǵ,@`CQ`ǛmNl &<'0[={eO rɷ\ j4 3[ZV0>4i<̈71zIPLʈD`+nII$@-7:uu1!:?%7f7]y_=]0ɋT9Zᢧyh(^@F$@U#кдmW!0;3NƂO]=fo}?W;6yձ{Q=D'WO?G@ @ of;_Gw69?0;ysrOU8,tm|)I~)LҒe ;sf?o( D@R+ǧ6vW@mVN~cû=&zmɊkI7^{na k@IV T9slaqE[M@l&&@(_W)so{ O pԯW c/8%|‡ c|_Jaضv?MIl|#@.^Sk @t_ۦat#_~nᎋ !޶кߦkݻ_b[8ɇ'*lxsމa?I:{U 䒨Mx0m<9a7*,nR>&1 @&0>H>_LL+l&&O >h'oF<sO ν#N`B&|6L '$ H@CMIniao׮:7-l@NPSQ }d. rꅅGc&[dBb0{?IJ8k1o+-]so F4  @ LFX/A9Bj[`+wYsihKb۰r钆46s^~ T@Ea~ty+PӤI'ږ;f?D"cPGM/0cR|zχ=F!OCwy,k &'@ 4k蛿>4i  Pը @"ZFrdc JxoTJ*(@󍺆n}36|,c%RŴ$@ - iY)q @3j LMnf9tnUѬczhJrzs`bwa O`W@0_9 P&VYHu˗_zT;ԶjXI66cBYV̟9`"@ Y Z @y ̏7ܨ<{V+/s_yӔ ;DƸ zxKEB(B @Jt4VF'*Dœw0ʹtK=euQał n!&)i[1 @2 =3O{)e1-]뜐^ޟ2OOH&0?Y>П[MB(b @@Q\ST^ @xbs(-$$]m54m.IaebY=q P,  @ L⢎oX]Ǘz{`h֡c-[n}8r3'\s PNrꛛ @/s`Ig7lwݡ߁G&[3>&so&-} N)  Pnr  @|D6{Dt&Ca=#-%<_;8yE㉌KP(@RMd @I V%! PSint֌0{Vu+{I`[,6Uļp _` @Jya܊$0]~?%ӧ~R;RLQ?՜@JP(Σ5f+|^\9U@t`W핿[:~1{d>Zǽ!X.Y aɌ8H`O_ʿH@~+4ߨ[hx='j{5WNN[kMxn"{9%26A @ 7 @@YV̟V._Q6yt`ך~>|8´?X8wԋkGЪw~\sG f({ @@R @(. [L菂-*yM&t滫{Au_&.. @ 77 @@Y԰e͎կS13M1oC`~DW.[^yK@(`W @@^߰rD |5agS﷾=fGxE_{QD&7 Pnr  @3V._W_=0o>0m} C^||Ǽ ;|D%.ˢ\?C(&e%A Prwz`Է=߾aֿN~H3]wٽSnp3xd4 @@ 4M @B{ՅׇUPtm-tE' ^:\hOP,>x PIsj14 >Gi 7FiQװ]_zh?xtQQihڶ]?;|BZm#@.n ?كX0i|iݩbsLRbaSxQxo$)4l@` lUi/nҚt 80&j @ ԯX]xjF3LCj[ ;m9#>46eK\o+/ѧ]f @  X'Q @Y`ŧyïK|:䳄t}1'$xO~+Xzy$@_x:LՒnxfl;pHL5ݠ-5[q` d$ @J*0{K(&P`iö.0 CO^8 `y͏&@ (naT *1-9 @ s^~>,; c$7&8ЪW:j]>ڮ(c7fM<1%@@U x pU. Ts;(rU:ːXliwމayׄ&͚c cn@` o/;3Z:\,f:?X7z{3vm 0g6I+ @*XA{愕uuUy2RmҼErꅡY huЪgfC;'6> @ i I[ @$F&Sml=Ӷ;U[eϷ.{-3` >(>$F@01K! @$ Q[54C|94 xri&+,[bT`寱  @)޳ {u99 Ԅ}%n:)yxO~`R0  P>ٛ @ E^KϤ(7 D|X@}Fk(% @ ԯX]xj 8멿chдMjJٲGJIG(`I H PӁ_yS/n"k7x0LD,H@衧_DD(&d!A >o&]/K/EܪwЦE,R -u)4R#( @@Ɯs|{~JX4urCMul}T/ ŝH@,d @f,#Nyc_>g䳙9*tjֽg~ tzqÜWo@zW@0S{'-ZX9J(棦2ɷ^z|Ut 4^`-׬O*'܋z| UUqt*g @`} qH@-B >1 3xd5_{W_4m~ެ-?xk|j.LPr%T` @t {~V̟DM` 羷B߷0(l.{g^^>} t´?L#*Yhi @G`ڽw~ltkM6*;{E@V/mx[ F@jZ @.s.e\mLxzĮfii3[*F2O^ެF+-= @@ 7[a#1a-k&}7 - մr%@  @@͞Vk1CMV6]?لkuJGJ@[ue{IP,Y  @M` {WJtøKNsGXɉnm  @(p҄Y>wȰlԤnа* 4i2ey0;$X&x @3?XK`9Dž1矼gI~g'9<%L ऄE%_@f @$a4a Tof/^[E"{ܷRґ$ & @T 0щ7m:tfD( t PD"T+) @YO={&`-B뾛40| na FjPU#(S/(N~P# @\|ӕk} lo}KCYk` P,b(@WyLBN Lao o h]&`6m Pd" @@<t֌ĥ~Жz[wߜI}E PSvðɏUh`#t%@/eφ=z? KޙL;mBo~FwI1sCn= `t: @IhҢehR4 @U3*d,c=c?;ą4lq!F PЅ @bL11S,zq贰͉<rTx P0Tҙw'n}oWcjիocП@QNPq >ES#=8k+/ǓvǗ:iaPl4 @$!I 1taT BuY4^JCfmק&þ`T Pv7)(@ہC 1Lƨ -7f0 h{ 0/-t _ڗQ͇/)ُBE (`( DSu!dv) #}ð˧>W 8&޺8G&piq.Kg>6^FO=Ϸ))<թ(II͎aO䔣H`RWF\ @ +-K`T|neީ)DO.m*kZ uKeO + Ky[߮PbEtSyM [_P۬y^Kic}Pha)5"Ea5(L7oU|a=ItqpOÓR$@`]~qnX0qm3 l`k %6]i_A @k tuΣY폆~U ̓4X9#gIUv0˜(.4H b҈H@M6Fg%ix}à~vP4WH=ݳs@)9)<œeGq7vT`e @@^:v–_Wa׾MQçSz-̤_Y?~TX-N +.)pEc({D1%X,Y @ X6kf*2k頲 XۺMhfwS%HO`3 ot|,~Ƭ3~en->8,pM$X >uaiG,: &ݿdsxI(SL١>* [wMx# 9 Pg$ @rW%SӲ8$ <~E YN{W4Tܲ[K :XYW02_ӧmBܦfa'rHc @$ %a6 M3p]g^t^hѵ{AcxԩaO/̌_Ё F0-z$~}E(>4ߨ[3J"Xf @Iaw-ξ*'b`C3Bl'ЬCNݱ6l|[ ,~3:z˜sO+-sukѥ[߇杻nR3 @H@  @@5 y>&-Z2 \qKi=L~"} LJ6 m `[ [w߼ꭟ/l0쟔4ι^ x-4;ـ$|G (d @2N~=-_Uhڮ}3oW\ul͟/=#S,K;l{N{8 =,C E׍k~wOY6wuG wW3yڸwh٣W=u!@@ol P?tSaG-ϻ&Y1)Cϸ,ҭ c@.30zOrR凞vi71'> @ ,7'zL_'m []tCh?dЬ}ήĵݓw߿U_Y XeS| ] i f4  @@&tet lq֕a': ߹t˙Xj[.{< `%gc EӘN +.ME65MjC]vOE$@zVO2%@!0oKa{Ccxc(SC 2V$iOdxz%Qښo54i"?(@64skhSR.9aO~&ٳ:5,6%,8>Pe$(< >Nbtua[l{x__V\sO_:D*o~[t]ׅׯ(_cqdI@<#@5XU'P__k}XJBXc*EoN 3[f'l_}Ahջ_hٚ$[= PN,  @@l?~td#JXtI~ߝTSLMي{lj(+Xk+3 PRTLF W=D`IݴO~ȄU W]i 2G yA2PWN? @`-˗ZyC Iu+»=Ē/<تW }3kSr^y.WTNAE@IDAT`孩 @@޾e"AC6ƍ t6U5GsO豤ow'-, PE UR%@X0q|=F ~}e|XlZ9\-/{pX:{f*mֱ"`*VJ*S@2UV @lSls@C{_)4$jk3O%ӧ1:ԪWah XfI @ ,>-gf]]Ì' =)|aWẏX6wNx阃&LJ&-Z]n:l^&&@:seM*Ydž_|sT/=#0gRx?R-[^={G7q.89,y;Q;/=\UW@p< @|Veei_9ZsGV.uϳP fޫ#'.+H(woVibߑ.<554ߨ[3;W_@0k( Hi޸DƖ&xyx5:oGg k~tܱ/g=@~sIv9u֫ds^~.|BIS>Ej2AaxJ@ӽ~'@xC3ֹFuE7?!!Ն`[{a?*F,@ݢa'{oA4cw7yBOE?ФYT*H-=H@a'p{={W/qd/nEKgs?+0g*$FH}% [MmmzeIiWX@0ŋ't i}w4Z_сai? Sz㷿 3]`YWN9<{GJ.sŧ|^VG|=5ɴ4,k( (tM$?d ):˜Σet]67o+/}o߰hnĜBxFӌW@{'~S^-Baۦ"VA Nt  @@f?DX܀{ݥ.7 0O:p=:bYn(Fv/9>@_1oNj8xnh٣Wj(PLzV cy2,Os|쟄!.~BkH`yᙃ1)@|'~/k#;4:jnE41e۔;n +VT긠;3B ľSMy sᅍJ`aWWM_zx} H`K @bO 6,@4gDŽ%]<^RWYiQ܉l}*ô{n̥[.7n*y >y799@z @" ,8>{BZnܳn{ߙ(PP*~)w:6Ww(&SqIt_^6k߭/M}!탍p`c'@-ұqA+ۤ__ƜsBb|A#I0aū t5a%:w8LſDR͉ztà~^ #CJ" 0ؠ@}}f;`m2 v+E˖_ qL)i ˣ'ֶnS?!u]$}_Ϭ={T/_=˅h!0‹G_}g#F)]Æ&ÕKnR3 P "@ n˧v+k2o}KaitbRvWq*nPӴyݸi󆒋;q;¬Ps \`acCہCJ>w>nwa'G2)CQ/5!Jw/__]lYvU%u i9buMpRIL{?89su闆vA?4ze]X|yd,Ŵ -ZF?FgxoqxI@2."@"+C}tq#v M۴ }^iRWQⳗ^=t}[ox HQ _.o8:Z,z=/\7y_Q%+Vg3t#ȸiӰ'>fW$O N}ih=O댟24DψԐyy쟄eg6wnp۪le;Kwax阃ŠE BڼWAo54iڬnϻ͍>k'mۼ1/g{nⴥx[tFmbZݷq{OQYwIQ)+3 4a6j[q @ ?aC뾛|LJɐnt}H޶7ݯӯ5g]3bJ @ ( @/мsТKu?`9C6md8蠃KG @8 q5* @g?V/Nxذa  @@jx  @(>֭[H}}}bŊ>(@Mmf[I&[nwޡW^sΡUVe˖_ǟh",X ̝;7̙3g?͛=O  @ |NJqwyGo @ (l!f̾[M6$SѣGh֬- 2>3aҤI_#G\[h @=p%MG7xHKӽ~':Rwqu/.%i{>V;vlX|y (@n)1bq\o  @ J@2v! _Bi)ˌ"eږ-[F~p=_|q!?  @@ 4({pС$Ҁ\%'7!o^{o~av qAҶɓ'?ϙ?? +WCo7ڵkz[nv @@ˀnJ&ۇ?8,e[&w_å٠|N ~8餓|یgnp  @ ( *Rk׮_\k@FRӇd|x2%{7ᄍtі(` MAzNmȑF K,iԸkv/Y/3r-3V[m ӴM4)q!04_+Bv[?p@h&߁}BXCG{}|||| ( ;=>c^]wݵ"8.F TvKHw'(xf͚]hr6wwmA ~Bn|ϾA V\.,D 7[*OA:C|Rn?^)EU$0dȐ0f̘dS/2_8+]<̰n)ƥFW*l @J8∢dhѢ>(Eנ @ 5: ſz*l9r)믿>>il#c׿$G(<&!@hժU8 ||Uaj|l @P,MCG  ) . \tE9Is2/~?yQӘ5kVۋ:  @F:uTP|'D.#@J'X:k3(@=j捞~ӟԧGwJ\_nK,)%@ЗſC=4r-t  @ xHO >zm&g ;saպ{W,_w Qk.QgyجY3(C)P, :JqlWBVo>rA-@S6lf*d+Vd+VR*2eYhʜ9sS?iӦg `l3Moddg7ы>EEB`߾}lȑWkɒ%P   NŋqPG   (:  NM<͛7-ÇgΝs=N @@dСCZjlڴi2A@@| $ Я_?V|yUS}.dcƌq5]vӧA@@@JXٲeͲ=n:F*/^7/2G @dU>ֵk׫[9@.h+RtC ~6QڒM[@@@@3gdwu۱c.^ @<%2eʈ߿)(/;wd={j$EU5jq#SN9A@@'2BA@֭Yɒ%M󘝜3giOG&L;, ͛7gӧ5I ѲeK֭[7%9   #*xCˆ@ <(_>}ɓlҥˇ֭[m|+"ml(  `~lѢE6[Cv] PWɡ tޝʕ1y?zN,ikM,Ԏ,   @*UX%l?~$`!3hO @E 7^xWço?SCMv?A@@@,;gϞ`{   <lV^D D'ЩS'G>׶gϞ?w Sq&׳sF?   @Μ9Y ,D YM4a˖-@@@G)FiӦeZr=R@lgJcذa~OOxI&nSLaʕ/.)d`0Jg9rp=:(!̝;<18q  v Hmִؙ3g"7f'N0͋   '-1F@۷2Ç 'q>j(v#@@|$pEU)6o3N,%o6ʖ-*Wz$/;zzPAɒ%- ŋlȑ"8%+4h;s @@@ `PbX%ТE !;r3 CH]A$UTTR8yd~Ky @@ȗ/WUE駟f?$' D'PV-!=?@@@@ XFc (5k YΜ95 S|7U   @ڵ 7N::tV +(   !# |P(ȊH MUV-v?3n88[K @@}]7|_n<!67ԩSի Dh"v̙͛7#Fe˲e˖.3       "}A7@LжF9~!+A E^DP'i& 0UTFjuVa!RTJ D'@gŊ~Qlv A@@@@@@@q= ٳggG-P;{Q)`/dΜR>'ry'EQ@@@@@@@@Pj $tZuҥK' T       (VAԑl %@sOf/^݂ 3fiz.K @k.5^@@ P`˟Dy9WE kD\Q '~07yϭ&%J[6ƌcl޼ٕLJH\bè^% Bng̘x ae_C… cۘ~>7ϨSXx-`NĘ|x'_~rd57on9ZۥK6zm]ę-ZdTP\cYd`Su7 B9c@&~>z7}Xk.mX_7Fmp >iŋ nƑ+_7Vo TLTLM6&L0:t`p+2,!7uޅE1p@ĉvxBD[wΜ9Ν;VJ"7?1|ȢV ߳>k۷zRV"Wyex}k֭X&.L aÆXЖ:CB,UU\Pz~-їCcǎq}:6)aÆߊuзo_GR?n8oTn?#FDoH"λ@̙^zǏw3/% ;#ZkM?1c o,'Erʅv~<=D%;J@ڝ4}tz,X`p͡*'uBcdKYW=:wqUݻGx5MfUaXBN۟~WD!]3И;wn2&7޽3h;sN|8^WT)cС'Z# #G[h?c޼yE,`YIclҤnݺh#9-1LL=B @Qs|^z%̭-QsTV=iҤ1^yeTXUPBƠAC a}-ӧ\!7wi;`~O b-jL4ɠ]'Hh۶A~t( ]~ AeH[f_t>}6cSCBs U-[(ȸ~׬YSyO=vQo >H*U y&@EVCRs56bU6_+#q+V7pC4 &IĠSۗx@O>@@yg %l՝jhaۃl٢#!2&wȊ_1sLU_Z!/-D+mV^=I~g˚51`foxq* |ˤ2QnU7nA )Sxϴ- vL(rT.6V .뮻 UO?44ҦMkS*5Rhݧ_ 7oWvdEk׮Po|4˛䗌feF>A5@;M˧,k͎ie"$-ARA^y [dʨh{`}ha^tMڵkUQDR1hsWQ你&M/ ,]Ji&IR:m0z^-] 6mdɓGyCV~>MFܹdGnvpUrTG4* k?IsTMK,1(R+nڸڝ 4PnuF1UdҥK|5]thڴi`dFs rS~KUXk5X%F\7ŋ7hߩvZq뉬&ɯ7-l(ڲ?W XL$)r0I1΁s*|޸qc ̯sz|w:v@#˗/7\ϓb|B隄/~ʚWZ5swj%W7g%dE'֭[g/vڥaFԽ{w-%-V믿.nRW_vHdDZ= %renϞ=F2e0x`:cVsuO7|8U5> n|AnəyrơCDL]!u4k,Ps+9&nqƁgubO3(e6yd%mb5C= _ud @@C? :t(֭/ׯ͛d) T^qo1#ZTۼy;fC a/m~7ƭիفɓ'#N:2exࢫ̙q?C/ڶSŭCؚ5kS6/䦬h"{GĉLG`e[G=z4{'t뺐 'lܸqoRJ^{5oU}Uy/ sw=re mTRoZ'*0:qm޽"/Ȫ詧tъ3mJzpşꥀ=ӧO-#G#F0n6cN.A>M ܾ}q7LYةrsO#:uR/0/EA+-TK^m=EWBcΝ*ԧ+WP|M 7>I CF,=,Ducy>pU-[Β%A}Ha˭3Jk4i/ 6_ޠ\ː{"E [Ӻ70ׁyYlٲ/J0Q*[2sy^qkVyڶmk?^ P{rJe!S0E|.?3^pͅ;p@{j[aפw,"p 74_>HK.5gϮ\!7u,RTNt-śc8eիW8}"oAV~4xQ9%Y;0ͻ~&W` : /s w޽{}P'O?dd˖ 2)cUgȑBVe?ڜ IWD ߮YhiӦA[&Zic睊S6MfujW^]2 usq;̙3 ;0bڣG\_t6lXd"Ů]X;{5G< MvN8Vpae"'o Z"G>k!Z.Ɛ}bT!?Zglb+V /RJep1P{"Y)}׶6\ʸȟ( 4K}8HƐ:Y"͚5l:*sS:NQ5j#E{g4i(T-ִ@F Zli"^A|E x1LmdV|yr=&*F{s*qAE?Ԧ9fbZj^C|My<ʦqզj 5ژ 75Ke],7VZVBevݩ)ygC D ģF}aÆj]oCܾ*nAjժح3g|Zȧsr," 8&}8'|b!ansnҶE4E8K[裃Dj6_~}駟lO Ogڵk۶*9uꔡԩ$t^@njIYDZvmaHHdɒF9|0N=NV^=pׇ*y9Z,c3ŋ;r_~q'vС5gΝz(Lψ?S RcVZi<9x;c?6|/L.pt?"7Jx\yYBVX`7ч?`ҥ}Mo+Cnj†UK1Q;3{)S]Bʼ [-Yϵ_BQܹsW4v;~W'4H2)޽X,~Dk߫cdA6?~<¾O>Ƴ>k4j(ZTBlv 2:Xvۦϟ?%Q]@s @֬Y Z})}>~ռY"U)}M:V?fpႰ~?C~ .\hXM6UrL"Z}ج$K#keQ`,L^)lW<$,a'͛[UhB: J;v䋗ϟR裏chK;m-̋cӤ̍|~B.JEB2 s@ DE4zִ}Aa);}LTrޒ%DKkϯ9v!7MIaR3d`LWaQ^+iÆ FBO뮻N3d5_2*V-r}w~<&M'9sbg><{zNDI()\К+pq] Ѿ}?\(H[D:-!Vɺ^zK(aPiYvKfqzld uǾ!l7C {N-zIVڸq#Dd9c KI髚v- F&9s6w4qDGXڷoozy*M bKHiGVtrYf&~;+ʨ\,R&a71zAwuJbIC+)(EE.]c馛 i##XBo;͛ObYoM!Μ9cPs>eٳg;Z|M>jfWut-dС>KmeI>VeݻKax x㍶"FS@" P^4/.<ڑɓ'_$ ԥ޳2,BJ: y9@ur/R4@*:y1<ʓ'A|ErS݃"SFRJ*+5Uot9Os%̽zRڽ{W_ gD&N8wݶgdR^/+JTNZE# o h1Ӑm. ·LlSs@W%?lGyyPҥ-[ 8wYZ+d"4ܾ/X@Vf_ 7y)'r#7QJKrl gkSL@IDATJzW]ӫ1⛕ɳuV/2-ԩ#f$+>߲eKKxuKΙH43f(ln?xiܹ|%gF)T|ya\r:f͚Rk׮5Wm8s,qiŀ9xî~,kƠHVESg}fۖ*TH=Ӗ+#ESI^a ֳzĈ.ǻu&:PzEv{xb\\ucƌ;>Qz*n(s֬YG}_4C39_zϘ'wC|?Si|\R@Ģ4ϟ/dhʕSj\*1MѺuƽDh;$3ZkAdK0}nKJxoݺkfE1N>m4^|",%C`3"P-wޕ  _B?vXSy=9h )|y6Cd!"\(p` F-nt]~ҤIZ$kLzɌ(a7SLiP9TȲd![D.M2miMo l#Vq22efPDx)Dӏ>xC~~᮹͚5+nDmO,ymIOwbŌv}P"Qm:L=ctyއU#_i&F1 =/l„ GT4߮{1#h$_gK.4E#"bh˓,_(2P\d4msأ9W-gQ^&>e\J,u+5>@nj5^pSJ8[K/YQX Ķ a6mL[QVuLwzr-ncj~>5kr\*,VҀGqҮWy:jܹ^5g{E)X:ubfBEdEv+o#V|VZիޤjq?K+ߺ'p@ @P@oaGۿv~S?ڵk]U0E'JչsgF$7.\HRM_WYpSF'E;#fs}aњm1 'vqa!Yʕ+xKc q,9ٳ=]+&-w7qٳgOSn 2UR|8qBhEW!CU^ (8"#l( rJFFi*? ?xjzj'2vCGedE4}/2bh̅ X#.[e*XOx@ (  VGϠQ DiVYųjՊ=Ö{wn)J· 2Zåwg9v濴,YrU'hы긌VXvSO=Ś5kf Y9QXn@^mڢ8pg[[cmA1Il7E3bZ 7ڭڷ":#IGRd?> 73tCV47QC78p<ɓ' 5"։gV6mZJ- 셌XM25ʔ)~\\aVy`*Ӗq)#M4=c|mT&q3O#3w%qHdߝbwVx1$w /-'t,@-jbǏ^Hx,=THK?~~ sM/ K̙3mm"֞S21Esor_Ĵ\$ &5k$?E"g-Ɏ,YҥK٩SdL$uڵ-q0޽{{$Î EC- b+і#F:qY[a1@+5s;-7dY-, 9}7=f~o|_|2{<؊LqcdZxqeԢDKeYtBnjW^]EgϞ5]Ub̚5g~m"벰Y%cٲeX9=Owe`;Fʔ)Ց0NsŚ-CV믛ַ|r#mڴڮtlNOܼ?P 9Hq@Y 3wnpIN㾖֭[>>Ev^-?d˟{)=:uX|N'i|\ȓ'1-HҴ?YS-Zy̘1+Tl Rf/|`,!Ȼ2R<}믿f쌕^z饈XU?wHYZQ1(B @En&Nx9W۵ ;v,>rWooU%5eʔh"6|p8{lϛ/P@D hAy4krL` 5ӧg~̉rM>=ѯD7 Fh>Ndf1喨G ffGz#LLzTO&hK~c˗g0)m̌ɱe`wlsnm,]tM6dq·[w&RfU׉{Z :}}fA)5IkhѢ2m۶yV<̼uVـM;+oYYʕc?x kٲe󺜸t)@ ]DqZjV/R~6sk"̣ŨQL_rmUqfRPurH]}|wtUs{t,XY8e-n"kcǎ#GHŠRFpΝ19`?瞋yNjՊ8p4'eYzaͪ_-AKXv"o]RTɓwK]sС,cƌ!? e|-[̚5}Ǫ !nHAW")jWZ i->G/R4 },vSط&=X.pYy;GA"dPYL5 Y">dġf͚A#G*JfٳD֭-U-6l[Hܼys׵aMW9wbŜ6)I[2gCS> Z.]j\ Vb fM4 E\rŜZ`zAIPEGP @Tb\ H?.J6]dMAVvQ&?)n!͚53u3P*:et3!vzdT:!6d3EC{jƌںp4`BX)"رEnҤ AI 2يl)F ( A#@/E!|ʕ+ٲA AL®ɩSŋAQ `ݺucdse˖6R0[tlrQj,KFe:W?~ ѻNIV 2eʰA5k֘$Et)(5lP'%@ 00<ܑr= /|c믵eGY/pvWYL'O4e`&g,7wyIAk/" 2Ol۶#V q 7X9Vf+߭zC ״ƍ zqN-b:f'!C@a#xG୷bjbNoG}TZ#EsyRW 6m|r?%O?9s5e%t{?!7EY`5lcg093sL?)>nݪ P!GEsOHk߾=xbB@Od{gʨu@( @/7g esF$ʹi%?b'?2ƘNg'N;={yn|o_9(p|1q r!uYHUTZ#61]gT_t2^Ah5RN o#ސ۠/3xG\/Z~׹scwa姬v3b h;`|[l1K,o!YJlEsPj+:ttPGspС˓'^nj3,ye]cӾ;ggfɜfG:c&CzNe˖-)K֯_o)_2ɴmɌLjժN_~yt> CB H |嗑'WEu )S&V䤚蒆 ƚ7on]{5k֌0$Ҡ*+Fm$s9: po:o{Fp֭[x TSWg:hQS~Nj LN^s5p&9|( r@(+jp@`ٲe*?k׮Zh`tر#ub…LNE)D/Çg?,%XV}fwnҤIq}y5}> @n|t= %W~}B -nȃ\ ?ё)SUV%:?ڕG )%Y&UGBM>Q 0?Xx1Ө:d-ȗ3o0uX)ԩS-+gEȖ8yiĉW܆VV  rjJiѢE*,j\cUPT)xXCz0\Xٽ>W.!4hnv9#),9q$P4"VgeRիܬz Sdž boSNw5Νc?2M4a~ &2p4*[Л ncwuY( ? %% ݲeK>[ɲjtxAZuVJ\8``[RVVzQB?ʕKqVT qG7Vv^?O4h`m5qyaРA{). Gڥ7o^-%5eɂXF?VڜNN2rέ+'sߖ><;'Q&~:{饗X>} E)|W/^ NֵkW)Uǫ*G˖-VNB&FZPB!HPd~%ٸquj%z?,?Xr"OW^lJukX(*թDɔ)GgrJVlٸٻw/R [tiܼa˗+3QF1dNr3YY2Ed%95w텈 1ʰȬ˖-ޠGBv:aÆ1iqm`sH"R @)XQi @bc ={2+LnSP3*է4oޜ}WEH/?3f`GagΜaT@&MCٶmۄ׋ A  1vА@="J UNVv>*Iҏ;& 4믳5kְ⋈oΝ=Y͚5{T!wƌ|*tG>@nʊ&nǠ_$E(v!0 tGc:1cwC _ɺ$8^I @?mG(`먬B͚5Q:VdIWuPa,"6rȈeZ޽)Z%!qF#Y'i&VvmFATH:{lVX1l 7eEc2dbݶ߇~8Pl{v=, PGdFÒd)uj1N} @s5^x͚5K ?˓'}I)&&5O6o >}zK8~8Sr[-u^L+VSe?v!f7 75WEe)Ruq>ٙ-[6WcN(LH \T{LBQP*J}K7n7[F}Q%ǥ@ ^YQpFxbdɒtj"O<AΝ˞|IFח ,AHj 7U%sud}(Sݔ`e]=3mH={밤oKʺ鶨t+HJVr uCu],o޼T/^v*Utfw^'<^6iֽn '$ =P_HNh S:ohQQD+˗/50y (10BA vbz_ym1Yvv֠AE'%شi&u޽lƍYʕ+jf)`Y >3n>K/)֭[.](U;*+"} +s,_-uTҢhT{ĈRURZpa)݃42 m%҄ 6v#RRdXG>y8ȡ}Μ9kK/x%H;UVmw3};M[c߾}#![%j' 7U%~R,r/`y/{x:YB IQ^tm߾]3.A?0~53񨵾3aD mС߿Tک\E|ݽ{)o9SO=u- nmylV2/m3[YAh)O>}ܰaCKs[ak͜U[lQEбt#U󙯢\K @ hQ߉)"mJV)zy<<%K4ixتMAnɍ,/c~[mʑ#"q06":n%2"w!&N)V * p14n!Zh[ҥKGL]_?ǐm B}wHNTH~; [E!7䔓'V-t?06ܹs>i͛ٺulP' @l2uQO4AՀA Gʕ D2e9bzP[7Ǝر#*$R4e,,땥$7ɪK;ILQ@/iڴi"/| /ScP:F իoN+V*UֶȆW\־}{v1U.H E5Š=q jE:_ TED'lNҥ~Q]0e[Ңg}fh0˺d Iba!`X$q@\p=| ̈́eXU$gڵcKqŊ^46l͛/fI Y$BɜfǫPfk4H~}r-Oٳ{fB*=ʺwΊ->C|8&pH޸qcߚglժU3A[Wf .b͎L8\))mڴLr 0(+PzEJ`رO^bŊyd(zĉY͚5#|ɿ͛pXhQd_͕+ҥ_k.&_ttPŀmWaA#*TTO?D2kJ3 @@W~VpEV*PGU,we˖,OS֯_? tԉe==^vs˲fw H^:t(I3iҤ+Le4$"˲i۷og#FF0$qIW*Kή۵kYQV#~l{.H4{/\0|ǜu9Mi[:EtL2%+T :0)|17[_{.\R ܹsK9YFJ:T*K=M Ѩ@ ?^0c1WC=>CgϞ@ J mѢ_Th,Dr3dZ\`A~`t>#IqFFKAHMG( ~Of1Cwf֭sXZ1-SJ%ŪXUPϟmۖ͜9?$J>?VwwҥK /LAn-CĉСC;,FJP., ~IꫯƝͬk,ją (: %KHm,LSʕ+#AF}!@Q4i"6ц F;c@n ȂedZ(`xeBfϞUZmP;+<dP&]   ?1"?j^{cAc$0o|r5±BHB $8@ m8 e/LU :bXf<}UT .TF |}E#,k5j԰= 4? KmJ. 랶}v,;TPbȤ[ne.\L (cql#Y#pa֦Mk*V[ N55O<*QZ'%)d&Y }QwZXtlW=m4o.zY[þMUFH r @(/jPk4U>MҦM ҷo_ /DψW={6;vUex_UܜKFV[8I !YEґgѹ)I3gΰnݺ-E~Y:]{2% @B Iy@9rD(ׯ_/^Je~T0:N: ^>9dV\˿9Rz @sY9 ١u%,Ԏ;<82*|VQodY$%ҤIԩc:DF.;JolݟÜ~f-Ά HlVF v @YͰ 䥈A)F @' l; @zHWٓчfD~-_}s:uaIFrFXP\4i|1|V%4v+@i9edmHWYؒ @K"@&pE @WPUJzFO@pΜ9d-"_JޟdF%Kkhb|٥Kbq֐ z8q"8p=2:A@YP*+t,Lʖ-4iW#L:i!j"Z84d}8p={ӹ֢E↧1> ͇j>|8[r%\r]wn(ލhݣ 5Ώ7nOll0q":ZyYw(fMdE"/)W!,e y[ose ,p׮]zoy,|̙ـ~ (C#j T5N+=` y͛WhX$^GiDԩSlByqLOʏC/k{Vw+ܬIB@ʴ}Y\͚5ckӧgJ\8K.m?Aعsg[c0*eY޽uT@DiyA/r ,Y-X}gQttw>?s͚50= t cEb%ڲg5y[Y|v)V@aHon(K -΄:õ1#=^  իٽZQe4fM@ɓ0۝T@YJAկի:v|СR6_  YImڴIx 3AևW2?V,%&Y "j:}լլYUy ۵kժ;xnt_Y^[9Bk^*z-F.@  1f 4h !ڵk׸)iP?@;E*ǎ˼l%ڊ';)egs̘1[HKxUYFi. 7sR֋H_~1;CJ{;V^='|} ao!xҥKrۃa,X[Q{wG@@)ctgeڴic\RR#FlڽV˝;w4Y(Pt`{fdŋ[5\9_fHgW x _es }h onݺY<0+g9/iҤwX T  @(("@Hn:d; EEG@p֬Y쯿Q 5{aHA@Zli7RNF[[l?ΑBaΜ9BzR +隖yϪ?ZjԨxcuiY 'Nz/Na ݻ3Ŏa&`K!C?#8۩ zyH ЃHj\ um۶[a] B… l5}>SՇsL}w ɍyнDFmdi7y~agyJm~YPR2}S/^e3a0_3g2.&iӦn@tR?U^XRiNרQU_u(LVdݒ+W.ude˄ WAuZӊ ˓'Od7@TˇG}4f?3bŊc0Ѫ'|¦LbKRʼt@.˲d.hӂ -pjlGJ @b aV^&+$D(E95|aJ"rJ*:uj!=ztQ262 EF!BrV.]8봫EJgΜa=zu o-Ȋ?ڍʻpR %H1ZJ*mӦ {ՏA@'P$-U9l_JٲeCK?2eʸn"î\u="*e"q֭˗PtM%آE ,8m&%EX"]:D-'ѓv(k[n%fկ*sqmX\sɊ+p)Pi|W\Q`,|-Y +1ʵи7}vZ~fp+JX<\g'ōjܱxy[!I~{չ]-MWG܍I\p(Uv*fNpEW}:P 4(PvÖXw {(jIDAT-_RٳgKJl}k9c(ssLaMGqqzB8QJo~bc | %DHGr8qa.믿|rܳ)>n~bNyUTIJ3 {\$VOSӧQI6l#n @5¹vmPAr `\:))T˖-=_f LN)nv%eAJbw,$ ;sSNNxK2iȑrJ.O)S.AF, |%?#!∬$)YȬ^:f7e8+kc'D׮]ë 7o^\4 Wti-(e-2saڵf\@',ڀvwXI{4'6lJ&G+1 A]UZId5£xjw֭DO@V>#@nWGs=Q穈jr=G\EM$V'ddGŝ2dTN&[M^F5kV9˼~ytMK/Uqs:L$@ 7, W"V*Ul|䒅ϟ7Gݷo_駟*#nݺ)$C>t{ZUy{}Qܮ~nڴUT HV,R>זs9=~#ٹeo<)hKV3j(+lz#hy~̬h|8q"n&g1d. _1a՜׏`VJ Nmm$-y(@iJ*Vә3gK'Hx:/J]o-JNeZSL/7Z˖-S ]S|򉥡>Ϫ(jd'#pFsСr\,$Bgg,\DQ>WbFL=z5g#=4 q?EqS)ϱjGiڵ; + L2.Yw 0fw>9?l0f)ܙ>cɝرc-!k4F[CtZ!:Ef9?-:3-XlذR[Zr܎\0uB\YP>k!#+ӹs猛or7{M#Ɠ믿%f͚!GkuΘ1X⓶i׋1bM>H&dž"M{.^ܮHW'9?|͕ m۶=)k߾2" k)2[v}l3RgYA*ݻG+V4ZhaoC٪ncM-CّռM4I C_,xdꫯK΃u)S"n)^x7x cĈĉ#*h+D.*tO+sn8{޼yn,K͜)(|T9|rme^`Zjto¸Ԛ{q9UmHA'M64 P.\5ّ=6շ>ӆ(NIN6;PN~ܒ6]&k_S95v.\Xw'F ˗WFFvew~;UȻYf;;lE奀9F<#A\<9HB[TIߎVb H[pܼ|ukf֜0= ؈I:r9IJd1cѠA#mڴҹTZ5޿ki"F~BnIũd+ S5r!U )y~ǒDϱ=z Bo9')Cƫ$l_YV?r<,TB2(: EqQzpQ԰ʕ+k9~2Si*4 )("[2˓5ޏ?(tv*;~1}al YDk׮h>@nId^ u?sI(k„ Bq\ߊP(1cF}. +-Z4rҎ)Jdy =9 @DWX1,:au;v$5j[$+"bǕ-c&O֡C#G:͜9S!}pcK.]֫%Kd< ^5d܅ۺug&>wd[X0fʸŊc\*Uĸ,n[3pob| \SJܒC%_Zk~zq/P/A xʨaLr 4ՋH pl͚5+Q+"<#G8]EQjC a|#!X' @ԩ+O6-8"Ӫ%Eۼyk&d-WmkTd#o޼Bi ,ɕҺ 4Ԯj?~|Q@MUmDCEP"EC_ >:ZEb8Dy1j|Q9ͽ7g߂upokuy{ܹsuzWo6:z?~8A/<6d ^*̚5z[`.u^*>?Ͽ#Aɒ,X m7#.?.\XsHn<9sf7x+/sɒ%N:tcUb` fǶc~8S˸uɭ_3I5[Ο?3gN[v?#<]~2=7q#܉Xu{yE vd?G*%\ғAH&۪-6uv}]vmWY][daҥ}RjK[ܰۚV;o޼TbȺ(ۏVYh4c 1mu5=[D/]wUD\Mז/.oG0yMW52G+_O6A:^ /,NE7W>*aH'ϥ^Zd?0ڿU:ȎE|(ga`o3,zu[5믟O>d_l]vf=rٲe}1J_㼫bΜ}юU/\qnu}?v̸e<]+W8NzI`2н}";tL7@f_oo^HŨweS=ɸg)Zeb ?Vz]~ݏb2Z91֌}2ZK>O/[o^KUoF&wpqtW_\[ L-*U>¨a9@=<ͺ>s-s`m0F/OFm.[ {_n_utmۓzkx6aV[mUf?|H$;j{L޳<-esҼc= 2ovu2qu[oՓ]5l[o[|zӕ98per!nécKX*1vx曗1"x衇ʽ˾4R+i:ѱb`o/':ߖ>`~6ぽmiӦ5Z<=g-ϟ_f˟ZN+k۷亲<6 $ ־~)Q\y;`|#]}5ܫ]x nq߬XXƀB]~aK/ .l2j/o#к[1U11Z7yT 2cCAR="uQ!*ek{l{ʎ;XDņnXD?E\E |XD߁`Z %_3뮻3f(b-uW3g+49Fpr|z|RdQzzS;̠`v4LMb'8[ :kdP0Y#ԩSj/& !%(>g}'|嚎 @荀`o@ d#:(o l|_ @TLf @ @UI  @ @* XU @ @j$ XRT @ @U @ @@kTYJ @ @`U1 @ @`*KQ  @ @T*fz @ @5Qe)* @ @ULO @ @F5,E%@ @ PU@  @ @H@F @ @ V3= @ @ ֨ @ @@Ub'@ @ P#U @ @* XU @ @j$ XRT @ @U @ @@kTYJ @ @`U1 @ @`*KQ  @ @T*fz @ @5Qe)* @ @ULO @ @F5,E%@ @ PU@  @ @H@F @ @ V3= @ @ ֨ @ @@Ub'@ @ P#U @ @*_dz @ @j!Kע I @ @@U\'@ @ @K3EUH @ @ |Oez @ @j!(Ԣ I @ @@Uw2vչLO @ @@-@-kQW I @ @;YE2r> @ @2>QS @ @ B c~3_%@ @ @`H1?!M @ @(F#o2j"/  @ @Q"/k\/~_ϡ @ @!`>#H @ @^`ey p~|w @ @x?JS2K?`|S"@ @ @kl9#  @ @Z |;|,^?= @ @ P+ eG6V% @ @!a"7Fmyt |?'89G @ @j!1ՂY"?O$ @ @^ cy[#u psFެG @ @NOQ="ݺZYD?Os @ @\Z esw"gt1J @ @N cr]˩j0ż8o @ @@2&r˿f%f9H3, @ @ =e,n~U*5wlY @ @b)G+c<yȻx @ @.`:' 뾈_D exqM# @ @>ΉnaNsDy @ @ |: M#"zY=#".CR"@ @ 3 ?㱣MMo#™O~NT @ @tEXE^o㫑dyOIENDB`flask-session-0.8.0/docs/_static/logo/logo-social.png000066400000000000000000003013221460047617000225420ustar00rootroot00000000000000PNG  IHDRաsRGBeXIfMM*V^(1fi|,,Pixelmator Pro 3.5.72024:02:11 20:18:01~_ pHYs.#.#x?viTXtXML:com.adobe.xmp 3000000/10000 3000000/10000 2 1 640 1280 2024-02-26T10:32:16+10:00 2024-02-11T20:18:01+10:00 Pixelmator Pro 3.5.7 *@IDATx |ee}0d6MWE@-"LIF\*"Ip/u.ԿhݺXk XԂ$$R↭UЊ",} dY{9s=9{fn/9OY @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @/hmY|[z993H'D,@؏C[\m@ > PhJ @ @K\  @ @[@Gt @ @$ $> @ @(`Ϗ @ @,I@pI|&@ @ Pl b @ @XL @ @>?#@ @ $ %9 @ @@: {c?J4B`d# @O@p~NJ PlJȲ3b~MHB @E,ʙ[Nݵ;dNO @ @ H.Ka)Gʫyglٶ%'  @ @ $$"" tL{_BP @(`YϜ \ਏ~u}n)W @W@FdZVgh1GYVi> @(`Q΄8rt7%, @ @@#$ zZg.GA @4V@Z#v_xfL̿]u @@@'AZY`zz9>Z @\ ~Gcv @ @6=k @ @49U%PFx\ D,R @ к{n@fbǏָ  @ @ H> *5<K @ @@$kg&m/p乗Y|[C @ @, ^쮲A @ @$[ @ @m$ I @K@^%FbF]U @ P Ҝ*(;xjq# @h_ =zNf,f*S @ PS r@{ ]؞=k @ P| # @ @XH@.54  @ @@q${nDF$&(ɉ& @`x&@ @h^ Pc=u @qT =ϼ^ @ @@$KtJ @ @` S @ @@$KtJ @ @` S*^xF @Q@gEL @ @j$ X#H @ @(@g!ڭvϽH @* X3'nj#wN6 @O@xDD4@ 5)M @ 92qcv[vHzG.I`˞Z#@`G!Ƴ7U]7_hm @fY|Žb)fYvoczObȾ1߻vl"@J. X(|/瓃}J @zc%[=W~ۖ ۾6Ǐ\}t6ܭg,Җ|]& CNJI7¥ 皞_  @H\eҧsRc  PT2/xh3eF7eUyOMI S/o  @ gH|@ |~rp_ $UA G\j5rw~{T=dvҜȝSG?Z)J{ρ @@ Ho$*NW&=2t]^iQs=h#?R fSR2#v]>5V` UA@&OV#8e;*+[1uy ̶n@C?3~̖lώtyv_xx;4C0oh>3pt^|@ @$wnc- P - ] =CcC9B7 /0~}tŶ]D}Xye膩- @H$,~էv PO#Ͻle+8os(dVw GF{IRF|v7OW;|ۯ|g @@#$  @`)Q;: 3}(޳R˛FM/@[>o{Ɵ+09Ƣ(>+ Xs'rv#01䳣U+ِ߳_AbfgLo]x|~jOvQ.58i|sct?X3˪IUBTvf @@Czc[ iU#&oofi!?{wWA-32?[v\uݶzT@]H. @]CcOc2boKj'P;}.]SZۯtķP̚Ojqc1}v@cZt+ӛW>ځK  P;SKjW_gu o}ZYXp},O=_czCakIu80pP P.X2US&6;1%>F]>/%FZ+EgzFw58qO f[q1 0eN ʕ{۾bɿtňFv/pSv_Z%ceןpY-%Osc,Ts7 5dFz @ 8vx촔soC5R+jT_@wSORkxNnZ.-N `G»ReE`l]%@8nh7Y=v ,D ~T/r'.8e,g*W9oKIm'{ {B\G@ HI% P$ϛ ٵEI,v%p%زee긯QِOR&T݂r7[7M Β {I% PcF,|(|nsSR: egȭTC],}f Ƌh]#[h@G! =s@܄[Ddㆂ(<ZX>F)54,a!Pc?1 a,GCc[&{pig{25<}<'ok4RFjk@EIwuGFO@WZ idך#ϽluuLj"pk%ϯIeu$M:UZ[@pT  @-. jxq*Y8aUgǞ;e,%Xhp:F mqu4N{xlqiFUDKekHgxrBRsZ[/u\c @ ?%xwH!?+hhF ۼMwB3T㱅Op`[n%@u7w[Q= t^STT_dy돬o#j/@G )= oYxY}OX`t]&@@dG$Pc_|̜U': ϭczzj`jQ: P+ ZIQ#Wf9< tӕ&]!{~ C_Ѡ 449лvl3 @bt/jX] .uoD55xUKTa]h7EOl`{='@5Y\*SKЀf4Qjժi_()l!nQ$0-{ @ۃJ%TbK>B)va~oV=C'+ړja`ˊ =@,I *p0 t &C nvgJB%|uk 4[)!xl!tm/c~-V㯥% }jQpYjyM1ʿ׼V @5Th75?2yvh@Je`_}79s}}_<]mE}f?vyQWmݳǼGֶՖoH?#+# w @t/x`KtF'F W%:C{-wj#W]ib!t+sc%3<79pr @ @`!ď-`hkz-lCߜ:)O8̑I<`CJ{M 42^kUc)kgQ N7R ٲgX>8x]oOɿs}#O@|L @1ld0[FL#޸c&PG4T3^s?MOKWAZVOܔeyRKL#:OE NL؝@.] @M8韯\bQGWZuֵ=pţ -}-h  -}MiYv!0ObwwUT W.sΩa-h1}(hl"@$Ť PR1ɿ;jGi'PKZjX_΄jE=9"@`.7 @@.iHj* ye ̿4^QRȟ UVDSVjv/b)1رcEMLXB%@rK&:UuoY]ڨ◚X5;/M{drXZ-u;&{[ *&@@$ @q[L8o-@PyUcbѥUP= ?RL `cF@6ncw7R7vY; xc&m!@92qS|"=Ӷq?<976  Pf 2= S wӎ XI7qOؽ@Ͳb]ba`{4K{YzEfv(?}G lgL @R=ϫtYQ*KTJTvk.?heww̄xeAc- h: @,;G=x{ kda: -u~IUj - @<)B"@@*!Zz K7UC@MB84TgI]*!P"cƻҭZ^SĐTN"&&,U@p'@ !BelC/"AN_)& m&P q]ن66,i$(@5q%OߒeՉ"2?O@\tZŲ v&{&qQ,uU5h% G-N?(j&מVE`G՘}7m/uRNiA;:=Hў'>A "d EѪ @f*Ŕ7b&*N@vj"@$PɞҤ5K`I=c/(q#W<{h) Ɂ_n!@@K H9 @" IkFƎ*rb#jSХQcC G׫n @hE;#!@@#ٜC qEu@  X32~\م ox nLc71?w_T `kG @&.Xԁ"P$]6qFߏX *O6-ſ` TZG]. J (`Qό @@t8`! &+0T8M?nPs!Pww9_@~49{BSe,?hה@>{xs=nEŸ_O P_Vv @@}zϮo jo%tȟ{zqߘ.l'ϋXऑ=7x6ykNIO hq* @@{iB j2]eO{dbՂV@6꟤hri>%aiaD@MNn @J3?O#c*z@>/f (7JZ; @\[W`vEe՘}7%g L7?4wdz;pcҥw6]4b<;Mt.ElS @ubxRN%&۸(d, 0{>6[wTo{]>a NaG؈F5;qVBS& jgT 0OKGYT1.bž5P %ȹ*3ߟ-o1J0"{3DH>` @@\sֺ/o?N}\ty1LsTN;0NgηP$?yljGKeٽ/j"@'|WQYb0ݶ²[8򸺆>5_{l] ".]"%&4[@g@ @b֥iq;@M ^52:b44 l)14<,։b5cgY,3,{eEK,(@?B @Mie3<_eẋ7J^Ҹҍ}wi  fmvu @F =Qg1ޔUf. id16:Ʀϣ"h[qY v/\{hYg!ВxlV ״dߊөǤ˃ӕ?WXH#po΄a)2[>3;jJ'``N  @@*q5;:njJofۘۻ*V*dO[|OɿR) /\"$Q@gEL @ sY kPCi}T>"{d-H/52>ܧH,\~vX PT q @4T f mPc ޮ᱿Q\tׄ+ZiD;x PT q @4T`j󡚽jlV d[X'wf!IQc޹헋%WXId @m 0qVzzt] cFF{\{FxiN`1 ,#PYheib@OJׅ4S^1vf߂{Nk(`LB"@@:  Hî<}$"FvŦvhZgt?C7H57b0XC4 @`7&zWPn1 v aUǏ\}`u( rp尢ij}}{hov, c[  @d) J%>L;o}Vg|xӊZw,vg>[]{x b;?v& 3  @DK'294CQjI1k(F^iSuUd%!@@$kg& @6ɁILK=mFpDSۨ"B8  H Fjk @eR/d4*4-&w,V4_`X=#/)pB#@@S$®Q P2o*Y%ӨK'{rߨw@ ڝNN\ J!ùG\O+K_ T :@JdQtS \ ] 1=ּ60۬˺@xhiΖ @,*K<R.B}&mgi[ٗ?^n+F3_y۷995CgWmHvl3 @!ώŵYv[ٻ"~i*teus?=0rk J~ TB?;+c;E@]δ~ @F`}[=I'=[nΞ^ qr~Oة@% N;}ݩL' @@99zeU ~*=O[)7s{o||‘l}nRIAƾU3Sb'5V5(`N  @< p-Yo2oJ dimuum$ @@ l8cMuc|{f:->+,xn2pU)i2ܴ P BA @h@+Z[326;ZmHbu ?}"@$wc @{]%54>Btcz)Cbl4)q)  h5a @*йx,0572|ʃՅNpH=%_  dM @Y|F}jV+пۓ!c1ƙVHC]khu/!@$wc @6H?*E&HɜGƟYV@^XD H֍V @1Z=#0{^x$,1(C`N %G7vL/ X  @@M:eOIE5d5Rul''+!{v$Ctsv`CVĸ K8`]XUJ4J xVvX;_)wN }Gb)֓>;<{J+ XS'p @I1f76ݷbvK)Qw`v2_K{Koisec}KJ (`qύ @y <*BON K,{nqy*\@Jik:;;{]Jv)@,R@pp#@ #zY0@ \] 3?Kgi5o/՝MXX U@ @}&z}zH3Dlj`^4:;Wm!|{xo  P  }?J7KpZq-=jy.[zgP"tu% WN &99;_=2vb$ $> @E=(,5|ϖZ CQ:K(>Y+D[8A tְ.U @&C嘦5^Oxsfь,j`!@@bvO&q1 O斉CcߪNow_f '}eM~zm? ycǏ{Fw79  @`K&T P$X]x%])Ci}Rlp)NRo{g3ܦ Ps h@ T3cؾu~6%=#뮑ptbߚYV=]#ܺ"OuջX>XvP?,=h@c:^J{x"5<҈,撷"T [?:Ӿ!|)c-߼99%uw-{?{; @@$Z Ъ\vc9NɷnFi߻6  PKzkz|rj.rZq7ut'䣸-(`N  @ ҈E/:Imע>u @g# ^z]:{g73}P#* خg^  @"nY}K5yxٚ5cDj|y?;/?bz Kv7'Y9'M[erK>׸54ת:]@ @%߷)ݸeU笔2s=Z-c;.e"@@A35SZ^]6jU3>֪> @hD @b/U7NvNWffwfg!+eۗf-n.L M[~`ߥ ;jq^U>jXZv:+3?=h' kUCXKs(hW4R)mc<du=ã5#1eTnM e@ P&y'52橁uS{6?.x @aF6ZC @u&~}J{W{["C%W{;+jruR˿,e4 E7-,eeH3>K?#ǥ;S{6óƟ=960ЧGp @@1*͓ňE%X}X_ t|qk3U GK̯of n;ϧK_3  @IM,({+*{OY%;mּ᱆n5 5&qh;*C/ѾFmpڛbMC[j;iDK`OZTYE[)#cZY,1R6UwȦu"nP9 ސ.A~A~.==%v# g @H_ܒөXq`?;!1>d{ 6Tõ!' T!ʇ{eJwRp l @616@}\v:MO(P%?bh?kh)jΞ􇈛'{9k^]6jYw8tg.?uz @@ ,t\Fg ,+S_%WV F׏s3'Oܰeb&*]@O nI_ p 5Ye?zGO8~믱b y\cJ?,ȆMɩ6 ;l(BkgfsÑ4HHn @`3!KKeWMgӗ ]=4ݕWt\yqWjkz[-@>LV=9EzO񣝍gd%%U@gS7  @: \7 4 ujB,cA KD,DY?T5y= [f訄g1l$nxW29+i=C;1+( ؎g]  @@B\UZ T)Mk:˗g*a8Oo}w?ř=-ٕPyty~EM>xl YxqzCڮO T#- W @@CBlIÕSc~hF*+:7[c٫т _ ݀[b@ߧ"05'ZJ=;.;Oڸ6D <} @%0ٿ5*&|ܝ~}_$5HIj\eݪG+vq׭ @`Rص{mq5O Of!+ȺՕXgh2( ؎g]  @@ŠPfZ镬̉M [UJd1yhy1:1_ >m!y'$%el e9Y$"-r"uI ?Wن"TXҗ֛:XokAư>AۼX@e9*ٸTP`Կ!-U<g'pPH (`Ϡ  @@Aޕ_}mA+NX{X=!}qYPgM;oh{tpqG;d#.G@IDATa1^UV>ai!,H"%^q Pn r? @B rc7:wGVMvGJ"v/B`b]ġi&N1oc[`ԗP%앧^rɊG*B. X3(~ P`7PYBa6447{}ʏSoϣ"ɾlR[!`W'w7߹r~+LJ* X'l P k%z9:r1i;w~}Q/91;pڛko=HCn}vBaJԛc߳+TJ( X“&d P6BxEMa2%3>Oqm?GE.sΩVBvwN.=MgYȮi!;#i#{ӷ4A@S j-I$@%=t#|C8 (`Ηh  @@i;40uvd1d'#ƯqȂTl'%S_w[xyВՙoO]KPH;'Jge%9Y$P6 1 @ p/dkKލm՞WRoxiwKU?zcrf;رv }5@ֹeB=M@sC?sm\9# \߿OڴG-p-H3g=P PL bQ(@mz7MBvRƛڴ5=UY!~yiti_֢θϨul:j#01zF?Z ۻ^.Tn]%V-YaJPuʗ)}<]ؼ6  0_7*r @@).> O>S~4Y7{_߷!;<b.vKǪ//߈m{9 =@@cvΎe7|[v6H#:l>n1T5-Mj[lzɳ&  @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @hQ$@ @ nǧ_֎m;c ۾ @ @ B+1/Ok~ˮ4G_U @"pbȿu9[lٲC+:;;Nx9Γ @ lKS @I;yom=qSiȿ=7mtʕ+o~MUp0O  @@$-~ @)6u i67o>x:ZomJ#N -/g!@$  h J*ܿWݿymEZ*oxvȃ|LZ- @aKɿ8)їȼۘ^7=$7F0  Ak I޿fz GuYZ䇩o|z{s max$@xcziw;1}>=/~H^jU~ B)F-F`Rc:}XBbrHjxzLVT~o>E_O׺}%lˤ/.``!@v'DZv>#Oǥr{i\it`>B4X@#F/G䴞5i-9R"|ݲeKqK/ݜ|;xE?Ϯ gYMɓ9Z]u3}3/#gCɀ- @@#SHpZoITZߙcZ_ogt t7OuvvgC9Wldd#n l'@%x~+im/o @ ؚ"=~^ֳҚſ- u=,賯{FO>{|t`$@@ t'oogcvWΤoqSz>IٸIOzsrv$|UX@YG,׎&@J^~:hHuLOOp(_OΔ \>׾O;|a"4 @|~+r 'mDƔ#=ޓ&?- @@l0@>KUi]y=o#g=Y7tӖ'< ө<hT`UH5'zWZ? ]Ї>o.3/߷zqZ/I<#aҰ @ H6[SJ.pHi}yZ{Yv#GSO׾קwE6uQ3 ܍ P&\Lo~o&Κ=<}ܞ^|%=^;jժ?m\c @W7HJ*'MҚKYl+n3?}>7})zĆ L/K_4!@8"U<I뢒y`vڶɿ1}Hɾֻn馹?X @ H6Z3J(2#^V MYJJO}SN94}z׿,7bTC57޴~#kR_>/~*g_<ִ(MsUW# @ #PRJKo|=i|{s^{u{q%u}Kw6L <*EiU_Wfo|*miݐb\.i ke4F@1Z!P_K]ZWˀ/!=QLիg}oKIl,뮻Ym7g uU_KF?T*GLH6h-)aMi}YZWԪi _B7We>ocJOJ]_>Ͽq1ܞ^xN#hK)xi#i]8W\vaG~᳏zhbŊ,M_5h6g_emi")XIΆǐCrq_ɒ0m~^)4*~[S"zzW$@ <5 MozӶɿٳ,OlUy*-1?B?Mm,hיo _́y|͓yi[>ӑf|2iSSS+ׯ_lll#+痼%1Yԏ#S?$}-]" . h), (Ǥ>Su<Jֳtۭ%w5}mJnNϿoٲ4̿[C?^^/ߗ:蠍h7"*\H@p@W:>{}W<'D߯Ҷ_mLk)5-=5OM#Ӿ|MI|`:==ct2y"3dG:>}ӈYfm]z饏G˄XN?^wّow{׳C'/K8c @@?]Ϩ|k/o'} )J/FߒF@ D &k@py~JZ>?)~'Jk7{ Ag B)0ų1h 3}:g.>xGFmF~ }>K-)q5K7gͷߑ.7%Zg{ソLNN1 ^zi(} ِh\nOiNT;tm!`a"Ж.ܰOUsS{iIRf@|5F'Oς!`!)Wr#EɓɝG?>YL &>\~̍-6 C0f |!`LU*N}6,*M~53fLĉE&'!_)_tB,”)Sn71`ZZ9Q+(& dՂ!`@.'Ϳ(OI~l ?Zm!` HEX6 (#EDwyg>zi2LZ#TKnFfӆ͡o #c!`D#h44WD /C_&-B:[l h}xRL"J9hCMywe]\'2sd&r Ɍ_6 Chx:F#"}QgҤIB\M%g+2l~ѲmC0 C `*ˎ!POs" k_/#h\T+Ƅu~l_zuرc/;ۥ;-]uǍ|6u#_~3)m!`p>%N=TqM\feYl$^ѩShi%F7aۆ!`@"`ZsoChɡiD.BgȐ!kԉC K,!j0z2fr,hnoR&gRP Ch[nwG۵7`#g!`$F&B-Y ΂r~1gm,P40iAЊ|O>)P;":mСCMs"m!`DQ?.k9}ĈԩSC9$tvJm4d Ϳ_O.+4/m!`GWe ugXgV: >gϞӹfd9LػI{x%82V˷&[n-D Z0 C0>3y&>W^qT-NYN`?dŎ;Ǐo~l0 C80d3@@%qrq8Y~;XBJPm$ЦMG^J(f-۷"*<!` .\vQ.ū{4&cs؞GF ~Be?!`@B!` U]YCJ* ?K~oG"P{5uJXD&O=tT v3LXZE!l0 C B.^hx# "j92해i|iE o!`#P Chz|9Z tEP7̀ DM?:pcptpH>iM`hѢ&iZM-!`D /s9DshfB&G~@[ml/--]veP} !`!0FPV&Jݽ%5kVO]b͚DuYSHx &22Ja!!RϿk/߇? M*4oǐ3[h./sȿ C0 C4,@?>PIVc?hjB&J9,"v!ЪXk'8ڰ݋!`D\2pEQ?IQ]Xmd\Rc i29355`„ h ZUv0 CHPL0A+βݤG(sd3V@q^^Ψ6b\|4'jimƬjרQdl+?Rm! U.ARvlz7s!Wm#]̤ h .]4ĉ `,!` ll5ji \BOJ,ٳ{w ?PmqN=ke\ѸUq(hW[!͹*#h%3Wdۆ!`"߇/dQ'}UmڴrےG=hm[d1m3f  C0 &kE4hbݡd 3pM(F<8 U駟 ;&0&E h!\iXԀe!P#2XW_}U}z@%&i҉7"KLD-/**کS]Z6 ,!`M#B-[E0YYY#52P biȿ`Js 7HK8l g[d)6 C38y Y?wqigf0meB;6}2·3mt`!`4%lTVƀ*Z~H@ igc2#\d-{9:|܆a+M>4-B(ن!`@ ѾmњF=/}/G%hm۰aCafX0 C0F6&2-I,@zz9蛐9sq?RU}`еmIzIII1֍X#eۆ!` Љ_FDo3hC݋$ [9lı+((`)S*d0 Ch pSu+s"0wfwp^T+C+LZM6H@~Mxk׮wX|:k%n*..{YuM`!`!z'1լm۶ A Oݑī[jcǎ[n- ?p0 Ch+݊휯^wC+ E:&iޔЧO=YwL|r*0a<!`Dڗ$6i ' lϞ=cمǏ7shni!`3nhEh2D1c<}TUהϧV-رcgw7n< 7c/dMυ~ C0~[^ަMh癯hmi!`i&~Z Q'-Z޽ہТ H#Ђz7xQGX ܅SؖVW yQ/,k"̮l`!h{iJ!vc껉vGho~b!`4*LQU#umg֬YZX5'n[W :vYv[#r!e$~Nd"i:d>2 f֠`0 C ȯ_ȑ#sg)8qFfK0 Ch4`J+H#G@dXQf&Mr bH@4 (8Q/ׯ_6Z %"N[n%+_5j 1 C 9r@4YrFY!`!vOW ЍrJ,K.LYț ,d?b{'R`bŊ ^F@iBH !3KTWC0 C0 C07fܸJxpŢ8GHA#}t2L4E MIIƼ7|# Ng}n^^:l[vn#-φ!`!`!`4^L֭q!0,Up|8/On[lٲ)SBvzd~Unڒ!`!`!`  ZX~ n.-@Z!:Oܑ/d,T qW&.AZo>)1 C0 C0 CFJ,C@Ĕ_xDV{?1m퓓#`#;h!`!`!`#_GCC@ĜLKKs^{5}Z9wY´94 C0 C0 C0#,Mh=Ά Z̀@@ܗE/%ǂ!`!`!`!`D#%eJތ@EF"C۵keݺu-60m!`!`!`QOKC .`y'[_07RôiӚ[U!`!`!`@b!``b՗"Ϣ H҂ qcfQ>zf}7Yv/C0 C0 C0 C@@s=-X 04ǩ6!`!`!`@00J@Z2@%cSRRomIIIL(p('uolU}вC0 C0 C0 C ?֍ X`,SSSlSNi  d0w֬Y%ofy,oi!`!`!`@0 ch)B`qn|ɱp#[l0~l;hA$bƛPxDue!qz}]6{xB|Y.iA !GCGV@=F.[taOռy-Zoݺu}W)a-X @zUnS_Ϧ$ Syȴݻپ}{>m{pCuе"ve1omCUۈ FMX(B˱: Vo.Ɖr(q37;1[ nH cDHﻨi'<il>ҦMi߱P+];9ED z׶ Xvm=kAav8gZDž,d;\?jݺ[[6m!`4!&RV5 &wyg!_bř˖-q6 U59TGNCDDQ}ޗ"sٳܷo$IHBkH}$k,l y%S U);/XS,jOW#sp{4??~hWZ`AK{ُef-:# 2L~ d7v}rn)ׯߡjþKp|A?@f acO;ڵkfΜّI'o}_Mqs Y\9Ç?aɒ%yfeqd-Y0 ChZh0:5ѸN3p/vщ<xի3ZUV!Yih׮ݢ:2Vg:U>?y@bR'[fȑڶm{K߾}HAP<$>FCHRwgsιeʕ"1Qץ$ՀAnUnE!u\osǎ8pvOoԺ]KzAV ¶hmJ~:(ĥ<ˇ.^;[ T-!`4)q,Vu/?sT|܇p~iR^ +3 Hމqsҥy3. XIF;GP@dNϽЌـfݺu;K.J5 ʷꍇ( A| FA?[u)rȉsvjD@%&ֻFz꩓x6IˊUԚ~k냡ڞ={7A{VDp7ǏG4 vƌ UϫYC0 FA;olO "d&}l_ (sH |*:7ij?bӦMng Z@r놪hݗ"Æ ; 4Oc VoMMf Qѣpo>?*4 е}#[ :ݧ~zb="98>/vU]?bĈL,cv r2´YDU]zr6W:FG2n+X05R3b@@n)믟K'YhԬF  D&-V^D ?^zijYYr<)}9oa0H_Wĩ|riEFu0eu?D>bn],%<} _`aĉK9nmuLw -hɄlo޳gO:Z^#y+f$f}{'K/%ט/-I*2e޷DߧW)?q ]vYΆ[wlJƌSbi7kAjUc7D@﬜_ p𪫮څ6lߙ,c#-O|O"y7} < y#+Ynah# U/IdEuӪU+)Pk 2s,̐^ނ>^sGD}c:t࠱ 2{;7Y|s:'?Aj-|2 -  I{衇n_ <'L !!1 ;w.裏;u̍"4ڕo VS"HD@YD:uaλロ*`_ x&J=m+f{i I O"ȯ; څ< l;m|&OERЄ[9$}zǥz$rLII;wz&&B{*2MeA,Ջgq$8Xcx햠6v㦍@~̛vY: Pȁ$w+Io**qҚwrnP@b@} rHf_j"b.`lAup݉k63v&L(0Vo7i405f_AA>=$f楤Q.n޼Y$-Z*֞gGeMy}Uw$nNyc 8UEH ݾ}{W23|ǸC)k,AG^אo9$@?Ph=:y2i[ tf7O 9?am۶DL_ R9֨{T. jwK=H&: ෿m"Vo;y>G0orEc{&.caw[pMkȣ)!--ٽ{Vu$hҚiA3|*u@ k=zǎ'Bͅ4yȄ~}ޱ!Z4IA%}"p$9I߭n(5n#f 6,/@L?=~g/_~ƍO'@ҥK۾ 2_NuD@?"B5Nyz-ߍ4B?AwiLg#Gd!uY(ADA@4")8g2ނ[o\m}bADvCrb;Y \,¡q-暃YQ0H<ʘjаf}3U`hov7PlW_d4eaԋOk0߲sÆ ͟~|Gs 8:~}1K?/۽h_a~B)G@?K:M8v@ԏtG9dт!`09rW]'&a^9/2t:"1O'Q&tXl3dȐ<4`p` 곮W 8 09蠃<9rӽ{w!+.$r%;;ۍE$6G:(_"J_lܹ٘}RjYYz &-Z\޳ߌg-{3+k]$BHyUݸKm=!HrrzVJnc稡&? R-ݒd>e_~Cg;J|Cg*駅<n!{gq';h$ ݈CD_ 8nwuWK/l )- 8ris+HldҌ_u>:՛sd1- hj09!BdEr93&5*t]Żk:wk׮*6/bO) /iϟ0i!J3w{9gРAC)FDj2ec9*HtB XVo7i ԷGh'ߞs'6!aqy?Zߍ&iyhb|Y !b-jޱ'iB*7K[0 VE6|0z$@,`o]Zq77ҰX ohYlTkXȥ w @;8>~,pt[aM4һh5 jtP+06#IaR0Ge"x{1n\AxQHX([M_j"Q',cy\S~{LjB-<GuL[ -**O>|׫>Jk!$_ٖe5+7f?^ *gz;(69pAڸ -6eM>z n ddϻ9RZbgѻmqio85DKs7{,-߉EG!d$^No#!  8rI*==KmooxAE cu۷nAհ`hXgۆ@00Pa1 :!}B|:G?:'hO SNV(?.Mй䥔Em'^J<{#_1ʆ+607ނ[oz_G.J]D\ V g1$={tv͝DDa;vpD`x1>j;{e%ڂ?O³%hbG?1O_O$JZh\p{u<#X$n7 A2Y k=$,6 d?Dt``_6\Υ^ ɰSNާXE@K½ ΃HrPQ1`z俯Y$${ʔ)6}4fKX3z嘆xI-|Re?T ڏ8|[pMH:s=xU*l{_U.BCzs!8ƍs{To7fW cM$H3g6G9IU/hgFs0%ϋ3$ H̦[nxUWIu-^Š)̞k-tH?`u>.`jĈFUK 1g͚5I-rdPAVr݂g 㺖tPٯP?:.o_]#̥tg㧯h„ zou;FUs*_wLuJb1y"2Qڅ_ / I"WO%}f7FAH AOfvC茅=0=s-yt? ůEh'H.Zj&ic5\l۵!kȉ᝾,UX .լyI+v!AIspȤͰ毿zKv+?WӍgW$lP[blڴiA")2QN>dr fl a?v l֘1cʴ-*VzE akY{ķFHvL(~H'D+?"=Ɵ428تI>`zQ#MϱC\IGw 2ѷ9$`LI_ݷwbr9wS<9P̩ьV}zTէ7QaZe<8cIE%}PJԒӚ#d?^>0p D<#loEd~[ Mw9蠃.$4pC^(g2OJodWwQ PmnEkNKݱcGeȑ#ݾHUM\h2~)]$IyG4Ⱦ!4m>Wj D hf2 hL]հgܿ ?vbpߎ|KsJ+gd \w^Y~2Lng5(9ɑqN 8#oqgZpa4z|MS]zoE:iynf\QR伊t*NBzٚ[D3ʂ|*\++ TS3id4h>#q!HD&v9ċmiiizvNYD,Lp{psQyGy" B >zݻw(M|~@ApC6 o!VNL:~_`' ;OiiA3Hf{#ۛTD+Rȳ;w -䳴Z3%mN{:wa=4=wo ȿ4ydi]uxDU͢ҬF?Z]@^OjB5&OjY%{.LVUPoBPqoEn>,t0A8Ҵy XY?!wOeT}㟷ş'ב޶{}.%[lysBC lD[ɝ vҚ7o^G$Ά)>6kHXҍ: 9V~w& <:s8"d>dHؗmϔJχ!u5ivzh'/su:IL*:%+0͚%ɩKqޓl;h&.c_n[W-]6ȃ?K>I+1[17@/Gd8#c-xwXф\E#fZyG3ը^ _B~Q2@H+iWB&!5ڦ'|~U>ɧVfCRZhEhIe}"ȕ=hWGuh8uonj$&ACAn&5_ )w7]s9b@hSOE^L빒i}Ó$A1XW(F&yv*q*DjG_~Ү}n{U_zk5]׎?5AqfM'UO>E]Z^To]f$,Yą;\{Ь,h򭢺ϳJrS?L}oV/<8m=rE n1}s=w.1~3kfI$&C@%@z饗DSru*9'?_@lÆ )̾Ks"{8_I_#88PS.iĢcN0 r hl˖-m93'Žv7Y"3Nq<ɨ]i17!ү*Wԕk]qs [oSwkK'SNO>Ҏ{H>n"R0z.>-}|O>Dª~RJik,FfcFW/ *xM]q%p>BsaÆ{GڝNTir/f49Bƾ&4!LK(Sͮ⊙/ ` f~<ٻYk;f!`TB?@#@ o0_9ϮD): Nĩh,ҙex4LM 'PאZ̘+? @ u.W!_>W1M ĜS桅W8~xWtG42x |;#}!e2sh0vc]o']df8}NMMf@Tmq?|x2fɬ{&gz;Ɖ &JX:m}?K 1+Cڴϐ Y]ۥߤ> |VTɍ"j(]wuH+J\iBϧ^?Jy뭷 -xTIUs5ʕVG[c;Oٳg^qsiTvEڠX~A5٫FUi"͹_l RllL̦tdb`z?c05 BfQ4f#e?.\ihb{ ?Qa#>o<KW:,6vbʽ> \@OW0IdON91iB,;@Q,{70}wicb|+>']?@S b8) hSeCny1um9ꪫJGæALx^W/c:2`iTj ZC{ulp '.#0+{F-0_P+"f:- @dP7tjېOwA̡Eި -zӠZbՒeO{]w%c9ԗ`s (ͱs[]k׮-a2)S.Q5ɏ$,)oD|f{;`L9"e:_?"҈܆盰zuyh333 W&ʿrLZI|Lc3T&p?%v'_`4 C 8"dΣϦ&cprWsN-[31wm:$z굆^xHc,Z3bVd/i#()S:R?x)Qk eMjєH0FEAǮ0n߾E$mc=}*۟Dٶz VMiR-wKG#FkE} EV~lW&"8UcJwWd\jt9ߧ?Dwז4".Ỵoa* !"rPJzL݂[+nimk:Jm9܋|jڑjة 5jW߯>Y6#T?"&ɱM d[WU?1#}>u_Օ*dr~' 5wJa_繄6P~"Dv r|mY pIġP$ʻY |HS=MU?uӶ C`_67Y3 !F/ElV ~~3`';iii-O@۹ۑiI)C#Q'5dpm ?] :^@,leyf: E%>~%QID5cG'Z3ehD a3=d̺s{Tś1o[v@v)K9yd ]2os'lj؞à5 &dBִpcQ}ț~>e% nxir-RG}KlW෌6$d?ȏ7>{ Z}'q p 7eJ+4{8+96򗿔B0~OFoq#"_.ARǍj"۽dxю}ViҚW M0.񛁩nGA>D"'Tğ&` E qOP*jSN1(~ KM]BJ`؟@bAʓ0b@2:3ޙD*=6M2'XIHtٯLAԱ_~N햐 ]򯢞4hQgTf sr!ԑsgkK?Y2QJt|&v*~ɧ33HWu(Ayۡ QC-jP;5O̟kxD2[deJJJ &DV5uB]${ˬ YdpFDHU)~$FBqL -.]41HXWON\ Xf^gn=0 大j:>3hIӂTɸd_)f z|t*ʃFڿg*F9cI|\r%iI.W^d'xVLDz6;#Dsk$ ? BYBVgMD9m }@#5 E@ HyGᴊ) m}K1w9 0bĽ's_vW4߇4ґ߿ AsSi@-l\kAHeQq|4R>} nkZ6C+ `J{qяA iy}i}r9l}] gmL@YiA"E 8&+w46OTe 9ɭOu~2ӥ`]62|ۏW,"7י$Wk&gw;Xrz L}S[wOdV!i2wm ._<&:?%EG3q%ϐ] _ X̴"44)*t+BD|33z~R/#\1 ~Pr)FLcwKhh07t>!%h)qR]NORqKE@^zSp|}6㙱IG~JܙeHP 4 6`6Kîg 2LFk/F:όsycN#>t1DŽ/bT&D<5O'3Qq{KR{ $``aqXՌO<-7X e^vpm|4FFypj|W5 ΀guqj-`p]HYS{UmPIlI޸H ZA~!,eZi"@b0yU#Cto#j9yFM'Wc !3Vks%S\ȿJ[%ŕ),{i*t3k?Gz{3/&|"CrG> }M"6E_ c`%B/i n &Vl+!дVBP,O4DXѭe]6i֬YS tbF3WuF-DihP%jrfxuuoa[>fY *4*M3̌F'x?[hal:999јMߣm.F%M 4 C䣉$bE6n)+wqG&Z"fu.Y1i"iߕG n7ۈfߴ}$M "BBhes(DŽrWro 3Gі"sI$v^xh-K}/hnU&RqSB;RRA)i5P5If 7(ͨ=ɫ\ZlRG%* (Oq_=Uŵi Cd|Df f]"1eE:,xpD\X\5fy !``jc 5ܪ턍viU[G6sc^yPaV n B$ru-c:UVzF $>qTggPf6 Q]JqWo0X `@n %-?Vi=.cH;o\DJ J|57*)FcJߧHȈ1 AWՖ.Z,\CD!EYe qϬ,'==]Zn؎ h6{9yPct[a[#NFᜅL$n$W.n8Icbv'pSw!ٽ{w$yƟȿ!H;mb徜'DSFg~_U[σ~G뙮{y߾*º/-ň|:IC"``[+!P+t )\ odzޭ@/ ݣC^`s$vA^YRysu9i PGK`Sۭ#_zf׻}B=8+lJCo?$jwXR.H='޼w~gQ_M- d?p AmS)ld-26hGX$TKDHs+i*OP6 Q9 'CeoCߡ3Hd!FBli}֖X$H"SKD cH&#z?0mgG!ݭwJV*ox60z`K&?Rp߹\2L`ȿSځ*O " p1ÔEy}'cx'TbkYd%&yD ! ΂'ˋ!`: ̦eǗ8>jb~]w%FOs, #֭kE(v0}cNV\|:ъk}ME5Ȅ^o[QV^,? Pv) ~ŵjfFz ]?@ו Ԣ "US>-ِR;ڵk{tW=!fރՇ,Q@}d(V.mdejяבZ.RjBpI!^:0H4XS<̪ؖ.i QS]!ߩ{)T,\SLgjϦC&*U v.lL4=Ԋ(_?\DZ;י>FH翢#Gn$g'%4!ZKJ\fr}tAmLD{[\3Q؈zE߽=J.6 DF@'4J~6:vsv<뼕+WN&ߣ> 4=O=T[~5NKHc/y̩ДkTdcQuFI4z躘xV\/ @@z&$Ji*3XnY9vPHI+9kF_v7)_?V6-H\걉?Vw3Jdwy2UwW}zLsH?m.;\ m8j(GlU$D,[T94g*YZȚ,-R]i9*K tl ӳRNpϯla)ʵPޟlQgK&09M4|Oȿ֗_~y' [ԉ?sͣ}ɶHkڂʇ1#1y+_'ؾ!`|aa[@SG@拥, 3M *h%G|g@L$x Ⱦ+VhG?۟PjJ`hmy^93> uɤObTo-/"w=/$gof(q7,oC=jbP2IF<6gΜVU t&z[Wh0lІ6DDu}dX+iLKעWTMDZE}d{_Xb(-mDnl稐?ҷ{7lES+ؖǢ0Wp_in`@;@vALZά|7n\.J͛LT21LBWWGjrNg~B+b@5=Dd^eӧm`+3Vf/[|}ƛȎgCπw۴xI[l4 _(0jF@t1{夓NNrVW_Qa:rij>{1F` dLe2}l]N~_K SLr|"?4 F$HN *|Hd+@ :$)k?\;a62~ڴi:nXh]ytu fY "\4Mpl |R+4_]BuI̻wގeG ~Jo~ٗloB~N.Ds9n;C%_ 6[S6~H0sGV&ڂeƚC8wUQƪն% =ᾖ>XdcZnU?|*LYXĄtm T<ՒFgkry]#V-  7ҟDW@L7Qd>ۘ`f~(mChС(-dK. :ɉĤ?!S=GCWZm@]^9SN)?#Cm Pu4c淈Vu2ଳϤI:!h(:ĩ:ḣ$tN6\pƠ,)''G^ȁs$Y8l`XUM /f`**Ӳ6&qik+.9j+hV .`;nhnNT[Iwtwڙ5e+]g*.wVwێ;~饗B.ǹ>?g{31beW1  o=nl~MemC *kQI1 FO>+X|]w1? [o/4=R a泜%ƀ óȯLD&rlCZArQڨZA,`24s/_e\`syn;==au|CxC;uYY[pzXѵ@-,Rxjt<+Le[u14Pv˔E~J"2x~OL<9DHQv"x ^M}kK-S4 -L{%l}D+pHꓐZ r2p59^Ui!?S:֦M{n9~{%|a(~kl͛]h73lAOp87F^9-6Q2}1&cr0go&b)gϞ+̪g1=(ꫯAЫkr$q9>Y|ue[kfΟ?nZͪn9Cd)x=iWiT6>#>hC9{RzݟAO;4fOQ7ܭ[4]91V`**25ϻm 4e<ߢ]w"*籶}`E]_dl&ڲ{kLT>[@IDATvroȘ] 4q܆)%R07Pmp ג9XU·:r\٥Ki.-dki1h%z"+c Z1WviU@yR~e|pJZ.Ƕx L/v rd+ ~WIz O{ʯio` >ʍV%1 M84_{I!cBz+?i e6s)eٹsg}* O{s3{nt0[ >3 LW7>rzU&?FQKJ? MM7$ԇ^_B+ Dp׭cNR AeW2V@|SS~^#RMڑ"Zs"ș|d`?UqT\Gџ&`H.HϢNlm#c%j4.ԉ ]#h^G& ok?cƌ,x($njLOd%T٢Y /""xj zC^hƞFzփVnibJ3<3t*ψ7F4VM\>Q܈d q@-"z:cŘ7D\~Мu0Iʨ2Ic<["Zz X} OC AIϸXDJa(Zdd3z7X&dEyw5ex_N߇~O׸٧O CmҀ%hѢ NT] i$i`+mSW6SAUUa''![& фAT?+yޥCEp'y7\<o(QZI/~m}dWVa)B1X忯!62P*|҂Z@kp(5Q%h4&ޘjb5H)N7<>1mԓI9I$H 7e &9 ?ߡ:Ψ:b꘮G4c s hHaʔ)ΐ!Ck]}XΛ7Ty3S6C#X+^B,F+/䠷bjXҷz FMin"DDxgk"_4aV !K9Dz+&? FuFpY qD7aSzF=O`M,e+9XK& @]-W-EIJ:KE-؏VT+Z033SD۩o>E?Ț)3a= M8gk&Y׃GA2]W~e?*O``Y",[0 j0`!`T2HB$<׫?;Iu{챁i$X:RC^t]b,)pX6fbWi!Kc{)76Pi?" 25+@R#|[`uǖWoQ p`v H4``>V>3{}B#wy߹Up"bB+wDŽWih`ʒLrP {Q\D256~h4@@ҤfVn$@T)V7__Hܥ$յErⵜ9xh\v%P塡W$ {T 8\Eע(z /iA-W_66ܢ^A1 ~ ~'7 ."Nt15*#oMuFaZ?裏DBx">XdQ])SS#0DT򅧁/H-L j^ 7ҭ<9(}JRZq tEìIq HDF0(ŵ[9Q " & ƀ 61`O2Il0`.F`@$#a朴G 3=3USS=>9rHSo"p[{Sqm{=oMmS9>j*Է1Bϧ25vkܾkM'v:+ GҦ\iip#"7#2MbFrjJDiɵX]uGZi؋ft+wK{.*d:Y(}SB=A1m߭4}5fS0 -Jdv_24~{\& Qw=_?O< Rc* ؅ mqхɱW9Mqq#A\gODJ*"U$!#K#0hYFǏ&9i;"M0Ad6#a_%d3"UW$]w5fG `KM's$KI:r] +5l2qga.ʪAʺs1MC+xm ,0+1J"5%`}? Y5XVw~gyUh2̈ u7۶mL2| Bő&-;2PmgR+ {}OPDI ]IuS}~;/ߐa2g-b!VaSkV:'yL>kw&ِ`V67L Mz~db7I!Z{w=(2AVlb&oͥ?s>C*RTri;ds+6(N {0DYP&@3knnjZl9YmkEnW|ەS bm|'y&6HHe:^_PP~.l` N]> |zi.S XTT iBєpH Vp-HȔVE\!R5ډt _k>r;-Q™7'H.b&~16R?O;kLDgnO^B<8Sk׮͵յu79?97j[ L:IγU_Ee_" Kt֯_/\r0X f|k[ڄ Pmb#A:蠃&RXOgsZD%ShZG}tTSf|H{{E40B(gBxCO駟vG#Ю+ $D|!,k d*x7kEdBLID+'[d&[fdA~jԫv `+|f-VDEj2j {Vn|\ʿ\?PT~~F HtLaW~ ll{W]cS<^ 0k 94ˇ:Clzw/Ñ|.O֊ C ܁vW͇~D?]b9ܖ?Z<,f)zB'Nkvr%pS+4p#So^B5e(di0&ՄF& WIĸ&uWe9PNGx )Ll&|bFr& oC\jjIJVn"_ם7oܭ‡!+q%қkʢB˰6g VᲸ6&=:tE6£wvV估˕فkB5 C@B!Z oڋwݻ('K;ze e)KL HoO$n0$J(բҨ(& @>^yqߌz3T>[ Zd#)V@S:ݧ-ha Gagƾr>i_@l-a%σ}ӠXpa_? ;wwwkqSD++o"ZY"\Uૠoj0C[Tb.\86Q -ޱ.?SYУt!J -<[x"o3#/OCFZk& #`12g !۞0aBw ƌ\nm*++-fj%ٍ#q8q엁ZLߣ q~K=zXU>Yp_@ZK5ot_r6Z Q͏?.|BH/3Y/"SLqȶ|D ,;h}.]gΜ9ܻrLI@9AeټHh΢M5HkXn]***f19B@d$-k[KN˟j!60~ ҥhm]TNQx`ژ֠0i=@"a;5' ~><ӯ@L} IR؏(cj0ȼ)9NHvjʾ{@ULQu9@OvEM+݂ͅٺPH@e˖u&bv0h d6WLLsxSoi=Uǃ"4e[5ch֖M# &c~>)Sܗ }=Y% '@j7Эȧb MA#f|ܹscE/H6޵EJ9^ʄaG 㣞~ \aLpk`e0; q nqy饗9V d7ސie!ƐO NTǒYDH2ݩׯ_rL(Qm`ჲI9oV5^@_Qe f٢EtsR;G?LǠp߿![ւxdU5 E&BF&Zb!hYҟNRZn @ԤNL52/wo&ƻZ+V{5 GYLFSN9+ؓ%yJ~rH+.ܴjwdiOiE4 6&3v; wk)fd`5ٲ  AA `TG믿kYxI*`:9D~U )D&fϞne50Ԍvb1`"̿o.FEJ0~ OؖWxk&> mf̔\<#0`r-LCx1]3ۈSv瘑Oԅ=XdӖ/[Sd*'f\E _WE@" ?>wMMmwTds ږAlRPʍ7(yÞt Ot\M*p3UF5ɚ>M 8~=C+WM9՛9 ; aa0ezꩺz `U矗 @xI(;3 ed&a2eY"|fX5LgE Z&ȳ䪫v JO(קk5g /- M^^^5fYS~4BA,'8~(?a~~5 ԛ ؔJ(?I Z)W^^s79*i9`VV5B+V@H5樦/V\7n 'ڦ7YPͬ4Lƛ^pŮDDW65mxҤI,sBFi%@V`0Ć!cɜe0xT5lgr1}rѬ?0ZEZ4 @HP#fo3t#3qnAj>q;|Ov.ep-Om/Ojv08p}^^4*x޽{ץɤJ|?!F:e"3{n/ioژ~mT&WADFsN6f43^R8O>/Bhydž̝;7SVNRrjJ4 " YM@2WP Wtu1V YWìYRlުL>[adACJ÷Aܒ-dt9rƑ#G[Ndү5^YfA\hl`.(493r})tywnA8]@ bV¤ӤNҿ&P1Rh@%u'-Z3Ea:ϑω2i30 nXj}9;1/V1chd.[?{p|m+<^z%-1SW'(zZ]6zKkxj^ԥ2l*'Bo߾Au פ{ō~^"@kӬTْX?σsD}W+Dm fV5KYPVƻ,R-K9U;^lV-\h+<}  /3752> K,~:t@}3<~Tf#L1И@pAI;-2zo'e;CURRfeJ+'Qڋ%r?ׁ|K3DN mYo/e5& iӦ}Zx"Wû>I]Ҵh0TCT̈́/@#{UV&jI$ 2eJ61GՂU 9Lxc !kH4[:o.8L) iq, @MN z"4զlj 5 sC = _`&1RH@ )$8O:Ț$%GCֈ,DŽNKɊ1y͟JKW?2+D^}>bCSeŋYa\αtn?͑k6+Vi}:aL~/ (I Ю"ֱy:ȶ8}LX]"دD3`\Pd+.@g oJe`/mR/(#1DJo5;W^ R.-i@pivk 8 72sA +ϟ?f4A/oD <2ۤ 5QPVACr-&w&N8ʿ (&H%4%9lKo1'~[1=چ ؊[;' ni$><A:UpwmzKuy )#A.p prR{$Ъ J.e*lj&fdpDYH&!LRdy?,s\7w J(x_#FX;[L ga Z m" 7kB Oyb`vB07l/@e| ʪIG2932)CSPQ!YLnU6 Ѻ*xNhbΕȶE?cUyyyjrN޼cǎez9VMlp+E8i[ګ ¤5Z{x =MzhńMkFg{dU~BU7(~{\Mp"ho;?iJs/w_iB uf'g/`V`QVCZA;AV4d90`&מɻA  li=3>ڹs>*s!RȊv'$kzB*WJ_:5GkDn.*HUQk$Sy~&[ͬrڒT9??.&`[?3&QOa.5^,tiɀ7JX՗,$:eю /j m70erW>'}H}CE/R: <ݦjkHm|۪CI2>BFLj轖LW,W{] D_ٍ!~M Y۷oE$;ٲ&C@DƺBzԡ睗,(>@>[]welsԷ\'OC1Ə߈fK=d쿤@R_!0~J.楟Ie;L>Ϯwojw[ H-[tG8|JgѢE̙#ߛ~xd`G e$})C([TZ?&lb(nS.o:B{`:R{GsXp/a*-,[n+A@|CLI W\{"ze]":[ڤ/kRCx_sQ>M***?w{1_yk. @Hk'Lp6B@Q{~̀ "#! %GRwHT2AL* @GGrW'dN~/7W8_~],Ub;O]o] x3f=e8&"yڬ7wL.>:B$ cWV%H/"47կOv{f[l/.͍GKsZd[< Fs]c`|gPw~ꩧ!?R2FӈS2+[Pl|2Pn%+25IND/QbetZׄU->hw!;$@,¯m;n$"Ԥ,|\rI!Di y'׳]Mu|n8!M]m̞eI.!V@J:\Ք `H"=Cb R佟pBA" |2Ih ''|b)BYgXE2o$bv 'rZ:>3;GuԮs7v% De/#c_B#8ۮCiBB{'tR|,)G톹>'xNՐլY?w|h-eM1B:P4@?(xzL&>4Y B=P9EH rL>r[ڕ|X%HmlZw7* &hU_Nn%D=89(i_L ѕ䇚G`n<Y.S:A D x'G"\<.Y:s4d XHai$B;xF K4yu JP_) ԯXZ"l/ppWB% ^`fkP;aۄ.|m`AcSXZ?za;徜/ P 'K ޗ2&{SSo""Lm_Y􉶯,4iF Z$˳hzZJZ| }X޳Fi @LN-Ehk?VJ@6mML dߪ M#7 1|5WN$@#`\o,B_{"Ek"շv#7̾Ҹ7(b=cOB6USL I>7# ` q܈sϋyA!ݺu? LB0$,Vd5PF{ZC^gMRva27@)4{bNy N2%|+`V;@>ieA;(|fΜƇ S;(ߍȂA%Hw;>MdTD:&x ^ `nj0@3Oz[ʕZwf҇8a#sOݝ/?a{"4#O7kQm7o?\n+4@i 0So}҇^z;Ccg8r6bꭍƓþ" %5e8PAX͂9MӀtLW @ϧ1T?t8SpnفxUH}^PG_HaUF7JV |KJ&O@ǭHzZZ&\kFHB-< ! sIWxv8n$3`dۛ8TƑ[<֝wiuS D;v sT 3-5}tG 뉥č 4뿈g{1uԪN8h/Z2So\7B[q7L@Yڟd ŭ찦<(PKmb˭ut 5evd6.³cm'_WJkm2W1+z÷>OG`1D&'dɆV<Ǐ8a_x@IyDM0Dh1 o@yo]Ibp, i_V+ @2lȺ馛,L:.Lz(]Lh$Doϥa[;vu]@,W檪Xo_&y;AAhz$};P~:f_}g~<+˗õN7"MgIbK/u_*p?og򻇝sģm4wRk@ q8塅[{VR* I ۯ)ȈAsk`2(+2kh0A|`,8"S  ` H-- A&[^{˺ꪫ,lۃ v4}I?? y>B\jkr!S"pVTwuy3#t{mc2PF3Cy5rNLE0X!Ҙd\ͻI MxNB'l€@Єr'i [gy:'V|@$w{W8H[- Qq=m_QFEM 53sA 8 ~"I~>#l!(AUdټwWu]gL$4Kt'q- [`/9_Pd?;$姝vי_Rd48s0)0̾_\:гM%Wi2ȗI @{LY@sGzr UL5UA()I ,&Tݙve9q+Dh;T}5xmK&|< CvxalA L4sA 9 |KnblJCa"`7?cRR$2p@M|͖ BAFb dM1:%/m -Т?_F`D&k;<m̍G}ߖ ڊ3y@tKgz`"_1`Yėm*Gj14&x|3ܻS񂇈Sz_)Z7ݷ0$p$LWUGǯpǺowPI)qC@kRS|!#>KF]`Y;Hn ^M`0 B: Š?$~i<ת*'O.2ۄ(B@ Nms5BMV@ެ%"ȜjVOf\Q`͕@IDATKdÖ3fr+ʛ裏v<@FC$_ylNZ=ڴP͘zKK&W@[`;˧|4dӝGv+\iۑK,PIItI-~fWV]S6[1Ϸi 6iylc 6I M *C SZ`H `0GȚ1|cDin,X"u+AjEEҬGou&D5TȨ< cIGo~^KqrO_ ZP,]t5s%lݺz嗻c &9ИGԊ@e)R @9I u|om H 4A JjwB{G.AŤnobs5}#E3)Q_5.'w_ |(VlӜo00) L%-|ºW"Y":#?Yd~*aDjkwyi8-P.o!c qZ[8^Dgf| Aԙ_"kfq)O>ds=;L / D6+*j]zk>P>վE _%iM|e%eV@YLO|Rw_ M+7M`mX ~e9%M򏸝m-R~(DiLX+V-V*[+s7g,ӧ*JHo M) bb:C'ޜg9MJЭ@jOPIG [BR;LhC (Bc}JKL9|pnOxLh5E?Hn |@&!KI7y5r Pڵ~MA#fJ~i6j /1[{-`~k-]"OZ(D̗c8tQ&_!>%%%%[D10 |N. ͧ!rO /t ڟh#Tl=TV@/&"d*g{ɗ Mr ~Þx3g_^=:!aPg.X.-|yW/ o̙3F"#۔AK%#Kڸ+xV 7ְLdkݚre1F5E3Bٽx|тsPrv}]wٚ~V&b3MDe!CؤuGXx(^R 8UFiD}~(kI7s|f% O0Nѽ7!{hk{_(Ju^zK@@"9iZD$isLEoo. @{>V2jH1A 1H`yS>}D Z8'm'! 8Zqd"B}M3$ Tv1Nd|6kRA F0u,l$d@f!`̪/[A 9rR@(9g|XL2aÆY?H>$i0 N^+fMF*"X|_6,S [B6m4Bbp*Xhf͚SLN>y5<-ކ/@idߪTBf?ԛo2P`46e*'_Y~7Tnq}4;eS q^&>AXe+hab&9&QڻmsGr8+d3kӴ \t5#'N1 eF$ @*χHcm8?5<'s07'!V]e*"vJ/H?@_W~ ;VZU.~'3{ (fV? )~eM;h/3ci U-XmBԛ/MKɴMSS52AdҏԭȻN3E@:1$"^ ŏbK$o3f̰N>d˯\ t…rN" &HyKAelk5kZ?\V0`@#+l: 95Y NǼ -ՍG Gg [K.B|&s4.V '|--21M2sHw #Iu>?3 h5&/K#Dp2jNPETڀՏЙ; W1MTV{ll޷oߦ Xy#m  `@p5w5~dOݷf@Xrx= M­H94RyB9V{9~.io!B8 [!T,@Ǩ.؟t -tĄhzNLәq&!(󭑦L5~|oaELBzŝZ${7N9s:IV*[P7K*NQ|1vT)"L|$WS|#ݠIZMlk@U?gA L@-EGԠ˝ E]3cb 0 Emt޴S- "f(w0=X XrH[.lr50VY4·o@ݼy'C.%%%49!ovjO`+, RYE 7a"kz%,TQ<~'^1cZTp,"Zڕu a53@ >- nv F@3\xH3e5EEE~ C za!LI)>oQ "N߿@`re>}n$sm!~AԆ9۳ƦޒM_99m$-}py2@R @ڪvK C }|15zjKU`ti&e'"?vpB؛UOVt2dHZ.2K`/6Rr^g:ɕiJHDS1WKyEzLE iڸ@ !\9&k9 *9?{ fUQ!i92$LB|TS.}/Q&T<+T> u ԵCi2u/a]Ͻ0iЖ~yOڱVAb$pM /9ʴsB* k_}J~UW]u MDvz_6?\^Fv=>ݬ ?TqS믗;p "jLlmd"Kma:9wi9wjˉřSR{I\iu݁vV_-־ip=,WFNp1i AA }WobY e(}t$H^׾W2@J2IƏ^F೎9qZSK}]Ax+8o<'6H"v[`A.}CpLyO5qIQ$M_*ft-LޗilF[AHM\z}%!gԖ5P -8Uעkw&{"KEYH>|  yR|_֤Uwyiwyg kEZ^/Bdfc$s!ݧ FR-_-ߝL4v흐LF^fe} oh'Q=̙~oH& rif UhF]M LVE-#F:@%HWcceLi|b!`5f6:kXhE;T$IB@4>z38hS"ȑܳ6ٳgnu^'ڀ^1 !k97C1/md3uD_E }MV#9wv&vcj`\v9&UFM.{i1K.=N}:w8R{#&Z6\5Y&|򧾸;Qn+zHHX =7R8 KnKFj?uIRbh{M8ME;fzE勭}}*p `W8DX{\ o#x4"ЩSv ><<9uW} |@1qGBB<4LmF *SO熺2bVҫc0P~hX˖-L۔ϗC(W?fʕ ={6KI.Dտ;,i}6"D̯S~K,OFxoI=S^L$khҶϐ25v- rڵrp=I4Psg{uqF=8EO XPP`cC4N"#ġS߿u뭷'ЖYX ֱEY..;^m3!)iXV3ׂog`w2ب_fv<ȮCosp&ȒLgc*IrCb2 i=@\D(^b9߭z%OWN됥Ҭ8 bHc/4ׇʵKùTf' 0`T)B nRpź^LVdJ@RI(&'kDf 8!!sC?i5_Ѫ;b|Ϡ\W tPw{ճW h 6qaGo?t$"gh5~j溟ۦޢ׮/`-dhL~aXE< O. O{b+W/>}>Plbl-YD K@Q*y衇,jJu%q8\R0]_@ڐ%<]AX,-f\8$T(j`}[IF,+AleF6f?0`V) J[* *++YX zp!!{ /Ӑå^꾇*E M)Y׀R2AuBqh2˿g iSU+LmŁW\UV@A "(Hv+ :|\zqĦq\%wԭDV; @Z4e䞭/<я~TųlPIvdV4SB*?2V> 38ҿ߲lS bdWŋH`y\Ĭbv֫EhG{o Udw7ߔ6J VKJ&ȭ4 LL@-lԓ-^e5 q6`q Ąđk`E EhfdKO첖Wa5$Z,/0(C ؛D`*}̬J߉C 3< (xI+q9F4-+g^樣XϾ] jEZQ7"*D֛zpSo(Yi{\=<]6'rsq\䟭GjHCn$2X!~,Ap`#K\1i]pi) ]FǷ|!Cz _awO$R׋@8Y|ѬfI a+PZuҬ ؆*Ķ&6ID[f&d/޺5%K'į{Xi\[CRj+ ۸OL"b)@Z )OJ4/,3`}7c0} T&e 5gϮ7!1l r^HbhH# Y5ԜHI}Fb1)%l˚ So?e0lyM@ЦEpYۨ_mo]8.~HGn"r2pZӑ`ArfQZ-pj6 X(s)^3,"?6+a[P^vm6)Af&;ϒCm' 8HP:t $|~$L5Jmr fФMN|A{\"߿/ygWLMLf=IS/x/W&@#.d^p83DQ"Ȍ$|%,[;u]-'%Mk+gW^y:oǢBzV6r|{~qqq+jRP1MX|'p&zdj=N>] 6u2^CG?o8@XmW{ G]> T+~<3`u+[}HTߕi,uV7qm>TsA@6 u 4e0xwχ6}xn ^iK& {/Y c׿a liE% ;'2s:͔ղeˤY4QG3J2Δp=}5ZM7ԙ:u*jo1<|$f*D^'/aBŝ?6_7DlzkqN["Gߙz K8!-VZ;n(C>5W",⻸J " SJKK/@?>b8$-\{M6֣-Pf)&ϧ$BB6i~LO$UB'Y|_&S4'`Z-EbQFbCVwFZz<$#e AiɐɈA |H"(YbIq"' ?W$j-b 'L_ рH& Ѯ4ڟ~Î;$X h0ۙm?FW|(=#ͼov(+ų}i@_4cƌX\fB lxL/"󊺒^ۨ5yUUU򁕖8^}b M5?x!쎝=:"} ?͛ʿ" XO~g-p>"0!JyF)"\ h3hԙMD*"t3|9ߺ;we?Y|xE\&X]Y].W/Ҧ fdu/oϽ=昱x$%"=s)3x觞zo~}443Q}p#,`VeaՙvA1+V21SۈQ ? zeH8d3qeV*SGeehD>TnDAn:So{c3C&q,ۈW$E>%KCfȌCylXw5Eyj}˳ ?jE`ߚF:ɺq eDM H|FV8vJ -D)A_wSjZȻ)̳9h"Ii#9Nߊ^s5 f͒L茣D˅O>&_ȳ|v{5Ҏ=I{.L Cf~~裏}5H'2>ǵ} |_{;%<;ֺݗ; e "$b^^mKܫz?֭ 4@܏xB5 E>F2B7>3K Hql! pĒ?;>vhE5_8S "n*Y#b#07:>΍- @ڷ4V }kq&pYg"&y.Y+jpTȮh\PCcZ`4ˏTu OC:hy >`+ϫ|6AP]2MA\R?Xuk; 6C{^"\ mT_BhkF7"eS<~i/3glbQ?i;ݗr]+q}HTn/@8>rt^,Y%"̍Xv [KW\Q m_?l1 mB4 _D^omRunq𘉠?pHk-oYཛྷxf{kSO=U7zE/sa@l^l"79ꨣN;}Z-t%vY0_j< =vz{H+& "{0q5!cy/9Nds&G ȥl=%;;YQ7m2]r-)L--N .^oΓǵhu@Vȅ"j%,yոJi`7P)w0 ,.ߗTQ2Wq{(6Cw=C2WBd{ .4m"iT ?S`mH%iD0 +OtfƦq uGodi sld>Zb<y-Ͷz~"~8_EH@i=O_bQ6Ewa0لu Pm۾}{M (AQ>sԕ G.܈fTC N5!LҘ'6 }ڳڵ+ @f{8Dlٳv2c#Tl/ ];%B&Eܥ]i|>QTT$7bIV2WRR҇YlxE .)K-?ug/wiV} ^j@n7^+1ÜT[[;99M[nψ^u%Kc'4><*"!TTl/%~<*~ Ql3(Dx brkep꫊z{*hfHO;zzB@(|yQ Qy2ZxI]꽱Ǥ y@m4Dw.-+ ^(L`6-n1丧W9S}w*HSk3<"-{^$v5M-dQ.,2*Rַo5Uxb;#yg+S؞O]~a)+h?3 |2;D@=wP%@IpV!w̾$$RQ]wu嗻/!Gyw- ͢2PBm:3 Q~18LgqaiQݳFiPIp}$,_+g/S 7`~^:>V?7#Wi0=-Ѧ2& ۻ.r;D "gZy~8 )N`[M}ٱAyIbY:ꫯv|S釓@>"n+d>`r{J:{Tv9q= gd~h]q L6>TNĻw&;ЯL`VdEu!qsK. -x7 @& ΝICcA[ۻ)ޖt:9f,BDMtqupuQ"̪EuIw^Ezv D]}WBF  gbJ߳wx61`a#!5_L*|Yϻ.o "*عuaĤmnҩy^L8;1:SNS j0Yl *BOK:10-PJ]{m??!~wU{ox≛o ޡ: }џ$Tf?]^c/ Gз:A7416:|,$*d<}$Nnqq+;zj=V*zo[31+YsbŲ  ًdo M #P-ź+رC3!DZL7̞3GS)oOl3d B6) z=y#1큁ԠK/wqO<Ə9?A-.޼uD ps _kַ&mO&joL}tn(-$RP>:]}:!*8z2("C[ <&tNi$[>4|9gﵿy6)N% s[w%? o3IZzӇ3?a."8,59›pj'p E^+skN9ED77{l˭|ɭˈ^P._ky5k׮]qUƪ@ &L(gyj-E7Q_SʏSY >hoЛbŊ )3·DʜzS9ɱ+ٛ(Em.$$5W{ Ͽ[J=Π}92Aϕ/Gz% :L(l5ܾC߮CqqqbCNku|?8?\xu? .\@tg0Vp,zw!yO S\''iCoܸQF#o>tE< *%z,҄XkH+|=+0{x+vz::Ԣ{b_2 [eˋ0TG s%]D }@\ $ajP4v&M-e_xJS:rQ~jv*p'?IӤI`0r{MFHvlxS|L!y,G3xg`,+cxMamBrJl&eZDC=ʿqyO偱gy_ِW4˭D-_gDؙ yn-KxK,X9s 3:ue~x ' }Fm3۪jD,|nMs{/ފoy[Jrd z=!>UW]ģ23eC>2bsniD-Ҳ7:}O0HVN־̹'F_B:Q ㍔uuR7]A7 ui|y]3*qqcʵo1ʘP҃'jdK nc 6830lFA|",N:zC9l*Vڄ2"#`wWe{v_twD;0ԫ .`>ӧOziʡ sdOL)Σ9dS^2VۦTg+#v )x Ew1&96l><C= 6,s䡲*e_Nϳ? F&e$Jr:P&4,w%ưXJԜX2B#R׈9(뷟qRVob+5CDy`F'cŝR?QI,&MZc: 1k@G9o^tE/`ht?Ǵ[)_:yg@"|Mw^UMM{nG70jmi]DՋ{ra @6M{w݀ @~-ׇjdRu( ӨЦPQ *~C_!q?$4(]tEby4X ռ /JTgN>Hx~_E0'qH2D+KlM0x G |K1/ m+a_93v1ۙd|?>hkKyJ穟5+2Tlf_~1 Wԏ3c%XN; ^F;FCkIͧ{㗙ʡ/S[0z5jxS?n bՖNUo9)KPlo$GԵ*ۂrci|71r#6kzɥ<8ßáYF/B7Kx*^px[Vsw_|xF~-b~4?JٗoskquuuEL֯,<["]w]9{ަoJWʨN~7 K)/,ؙE mz|MϚ1Q@ka2YB+?u ji ZsS7J@;:;բq0Lbwko3K.I0!e@鰾= .T&$:e&1hJ+Ї>02tlAq`Qgۑ 01b3L=8!eQzbLxcl<2BrW&ӗ\:ЈEx$%4Ds]-EE\!}}2&ˉ5t h6u@Y :Tz[UBO[d<з UGJ\Jf2RhV^Tc\ b7(;:LܬE? % Yi8>KR%ڝa#P.٢]r(]DsOkFؐ$/|Tť{sI~3N! ˄\derҳ5XM:_wUtrTsNo ؞C騐?iDy(eh(obο,([By$Dtc\]29("!MQcqr&M\8t2<IcHã9, Ln3LJ>^u ʾP]kIieJo&>a͟??Pl4 'jj3;p묄pׯf·)ӘD{A$p:۹1D]9!R&;r@;X8*""sK|W6^Boozt̘1[ʋ #IW  2&t8} j͊Aܣ/^E^ 1͡ R q[)r42p[ F7ޑ2y/zߋ|e ʰbxGO~ȽOy!(4Jk\T ˘״,KYnok-yFn6%7l^'OEsg%Rh +⋩_,z@:C>4'wiD!FQ-F.2Υ*޶mn<3=?m"y9;=G/b|Y,[ʉO+#-i"lNl$K~/Ei@,M2ţ ʾy mK~O&ڄH=K8#`N5?f 䛈?b>o3xzLd\r)S=j]6'/n2H)"&-) 0i;C k;n3o|2S?z@uˀwZ!)ԧ8 `HB;(s pˉ[\&.b9r~!F 1Q^<ԃU#C=Uv 0]]FqTܚQRЎjˉ|$4G!=lC@ tElO5`tb,E M=*HN@68Qv<3~[~:(S:3+2jt}zBޜ=?яItHb,FDs9A\t025=kqz˗/[lix9Ϫ(Ec3qFB#Jm a_X,xz)RΤחj x 9sf] tv)S>>@O臺fd|'bq0$it'uq.jT;XC+ejQ!أL7\Ǣ< |dN!č|l!b:,vi2B@3)#Ħ;;_4l4 Ƀ/Y !/ xmΎkn|džU~7z 圼v]v>q6K7#lLwLc>I"2?c,\Vu2Iy}9do9sToui?1zE"fI?/_#{Yyf1FY-LM Spb*`fV}||>*S 5tR(>}59\C熱`"v4s\IIg,[|!JWr.D4_W|otb9pO:<0j&zuX6jQ ǎaTs?ߜHceq^ګ*.y*_sc~<5ĐFHբ9?5;.Rɰ'd/C^V\3/=O` VfxliFb mbw]@|H^uJDp. ` y(7R<)4өwȭxcH:*ڋK?Rb%O];[Φ`DHL=&jyrb0sZnjNHB廣piД$3ԡ<(k׮ݕmYҒCnLLAw ӻhdG/yDXync+,E~VAr*hv?20*> _/#ea+vR7 YxiyV9?u[rzv$54\Ue[ ޕRSǻ}a O~8_t2} z4d"ß J9^Iy 24v`ɡ喟rJ] b^H CD#e71gQv=:v]';O}XAԡ} /4_X[^3KX =!v4]ކˣo}[ujȣ."^XcۓBH GVNi*7o^/A$~7l0*˓^Z !!6UDWkMH2^q}{챓y{0Mjw>'\s31GBaɱ+ bI{ًSe]A'3`ɒ%cϞ=;v8 Ϙ+i#=V>Ks qq2ԯE^ȩT#Zt Xn!bei}W{ĉW2XhKy-X1~G9l sҙh̏biz2я~4c1D$ךּG2Q]95-b}e+T]e=4LU{a20i,K褒I2':W555\/H[5HswI6lXXO:D$:5 ~4UlKtU=P1"oMr"mS&' nOaOxᇯիW'duQѕW^8P +O *N 9 ͺtT >;Fa0mˋBʹ> j(9+EP[]v U q+cxsx%̝;6!'x8O3ggz950믿>*}SH+2sNVҐZCn 9[n)ī[Xґ Mv0$_P2L_̩9l-(2QW## #4L'޷џt]O>9kriIA\Wc&O5Wx.N $6ek*M';2G6-*vռ%#s /ڭ_`t2zZx~[:A.ZtED_f+rX0Ik{Gkp <ˉ s eۏ:5銤%C\s, NiدG5ll{5ֱ]E1iw1fرy%Cup xz$ c87%𒒒+VT1fB]FviЧnLCSy%z4C zNJ{dznQ~ܺT dExI䥋^D6"ܱ[y(>!J^wŝc24s*zMc{D~k4_S(` B٨ch$e:w~Qxp !w4Qe JW':=U}}Tqp'%$ %#xKN"C>3S7m@»<ӳELM"clOBE"DrNI:?Ma9mFʵ >Vo KGq0$Xew0 @zQj{ $oTRIT# j!y ?ϹlC铂<4a6A5L0xq`苷4&1?=-zU)BWzٗ-Y)ZCy0hE/)Rg(/alp,T$N fC}x'q=AP V8ؗEr:(|ľJ㥂XλwA={Vp\{wg_~"񏍁ð4ni 6#87dUȠ2 Ư?qWs3Yd!߲_|dT$ xc><nݺoF Յ9,&<.y&w~;*quO.︞ O du9՛;TNjz/ɺUBPU})P6 F708NADI91Wy(U$o#WZCen## 'Vqܯ{N\ 11%cYC#=3= B)2eJ!b+c`?9hFN:dL4!",Ɔ}qL:KM  W3^xin )Gr<0E~3Eee8(WX镇@R|qm(FʛO/B+b5[Hƾ>*r\-˰g%#O0"=(cj e &ÀDVL |Żכgt2 1ԟV_}޳9KIC$z:Y2^:揩]/`\? (Cy/8 ƽS5)!&a<|/\_)p./M-y][AJfmڴjt4!ޜW0g?UWQ֫\wTuz:LW- QEGHGtbuiA%U5sA/d 9(X[4)+bx [|06"<OZ p }8>NW3gtssE*?ʏԕ UN2%*t`P(ReQ\&'Ø9|hS+QOԨ-kXWA;([*ced,D 7:3xԈ5lSqtmc~s >@sCRX_*Z6 Dw׋XY2i_F@5e!P"~KH{hyaȌCހ^ zz7堉a6+2O%}d\[<qeQ:l Z:s YWeB)|^.l/mZ Xniř?k.?`nJHqzT~͟nJ:*,Ss}:s|]lgs<+y T)lؽdA~$ש4h@h@ [ 4LPYׯ.xaӊ׾"Byl[Wc =4,F=uBxU/B׈Fz\㊞يXRW&`&`&`&`&`&`&f6/gF  Jq: {1XC\ 0(l`wsaO!P{I>lIxk&`&`&`&`&`&`#Тd&`9D 9-$ÎrH:N @!0roPIENDB`flask-session-0.8.0/docs/_static/sequence.webp000066400000000000000000002450421460047617000213610ustar00rootroot00000000000000RIFFJWEBPVP8X 4- ICCPH HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)KmVP8L:/- Uöm$Iv2gv wYJϴTTl"bq[b =UDptN&~"gCfm`V/d[$$ ͜=xlmC,HtLW6.ݿIz$AK^^]+ϻ[ W-Ww7Ap828ZDm,3C&:F1 xs/D[ Z]$52mfoLjǶm۶m $I$IZO~=ܱ9Q0333333333333333?;]Ov=Ɏ*)W\@RE5+Tr.5x9T*JAyP cm`T\S@rQuGjtb:.jE 4m/PɡrÜh,7(TǕjʊ߃QuCwJ ʊjtQ U:~5^մe.aȐlYu Gk*mm$VG BάO,7ΝN&ºmxNj疷6Oj۶mnl 0Koulw BH6k9nf%A4׋(РIYP9s\H%s9 :s(^}d}JZ;Sƞ҂J8Pm ((60~@! @B 8W`g8+lv0RC`PL3V \9gҙ@ @3 `CPʘM`qޠZ2ٮY~o*K*B wsA]ԷRP8^UY~A[boS w~ Bi~,gPEe0oDLr[G"b)1goTfJ;gLnd ԂN[Ulb _6&)4i4CS $?!)O%4apjQG)(mA_͓|i[+Tu("׼_Fg8T@~=yRs ?0cIHᤀk \->}otId= oо[y*B_}pyȭ} )ͻO1OțW1ޟ-ح=e.p?}Vԭ_'B=9("eׅ)Uܕ Wl S/PEZkkNjʳ3U`赏s&z*B- ?N)66Lp'hn?|p#WfQj3(A_<#P0 N`CjZ&[ ҽ0$Z qHR 1ύ~H_2/i l fk1υh$ޤ]3hNAnCOPE/_U/_"E! x(4ĵa? qztMSV2W~$N~>N h g̝r=P@'pe|+ |B`D'U̅s]8s`!^Ox&'5M1DvVmWb cvTɫ$_@Z.%5J5䖕.3d#A|Aԑ@&Q& #.a5RFI0DŽ !h%: AڑGyZ$8&|RU+ww2Jz!PA8#$"tVTCMM;rYP ulB&Wg* aQ#".GE\}I, NSFX$Nj Ž9y|F~&ip^1~d8q(_B5&Ei1#Ŗ7s5y&}L*޺!0vYUt&l\Kp)jJ +\.rLQ.w> NxY\Dbþ{YݮP|r*?kRM]/(Ae5<]+!02*s1{u^1fX.<9Qf# r+\XE7}c-QxyR!:f7p޻XF3Wnj |"gdU2g hjOj : /FG9 4AdtϜ 1+]sZ˨ !҄(̌ ۂPA<^מN~ z /1i'f?DfL8:vv 53نQ.^CV7t,zfթaw}RtpvG"z& 2KHdɛ;VC^n:h!*clt-ClnC`1W` l+2/4xȧ;߿p %+/Sa ߲;{Ȱ|.fK7뾀`ӓ25qU4k^z|^&}t<Χ2*rw`LwI7~ޙ+Ű Uw!RgU.c}C'o>W̹1B|FEXg!xӹn ܦAsucin ժ( Ԑ<ۍA| ʕm%g=~Vϡ :-$|*{6#Zp30gU^42ʿzH1 Ft9{_/ƯUX`uOAQgٱ{%2"SA;R@Ŷ-2$:ʲD]jt]}O4'CbݺE:eSgL9eRwӥ|evӯ6O|7epGĴkFOM;lGs`dU`Pk&K h!AB}x\fg)#QQ&J,F`I\gv5e% ]㦪"^W mm~7c2/giv},bP⬼g[ɀ†EY$XDV|2#'FMN 5h ưKZ5%lg#b [) BZ#(õN ŮSw֏lXŸ-!U'[RW20 nhf4 I,υʔxD#J V*c-M~&]l; 8ecݨ_]4Jf!!h='=e@^_MSčopř/L| Rn&27`IأזJ=V]*G:7K/*:./2i}%O-h43ҍkyOS/>'E߽/- 4Dp6FQ*K z#+O%O?X}w`*-% dkzV%W2eWG"G!ʱ`)Q,c(@6qn89>GsXnJh]_e07~o@ms=RgAW2f rڃt *ُ3bȰeq,דqA !1l 'p܀mЮ5edtfb`)nL. J0~\lY#W2pg/4&c?(*fUu2nN%]-=5Eۯ;do@ME Mj`) tDumqvKf^Lp?G#KG U]%@p胯@<;P0N +eB.WPqlYu2kkc&#mB=lmxONk~*2F_ L>mF脂w!xZn1s, n*ujOq d#<ܯk:Ds7ŮMZH8ǶA C([]A&0|}5QC ʳ˧ŀz {?1BHe65!!ChJ$~ܷ!q `r㒂ֳANv n5'|f?Ś'>|:18f6= 2f׫ȫ{Be.MXSMen|a DY >:n*2V{p i-hTefHɯzm0B>W(Q_f z%XsHq%zg"Xnip(?p{/J3]%@xL)ٝPd^ACQ+vE\^1&s3|UPM%(Jt,Xd00 w/+r/atgnǖ4 *ES*2Ā&s5}X=?un>za(]W#jAjm2$P gN~_< |pTFQ"& \.ѣo >}BMG]׳ՉME=w+/aj*f2Fnd(2*^m.χC +YuccܮܑR3.feri;:fFV3.5^vfXįt~ {ݢD&\q-Q$&Lʧo=θoq3&sr;zz.+|0mNuշqU!S9oD93aĮAr Muz:Yp .Sj^3m8t=;ll[%=;x}8 .:*c*eAPŐ|6QQQ4*x]6݌K %6'T|q;hZa>@$Z!yuU'5C;E* Ί bE 9lKG@k ,&[(Ee dm:|5+ѣ`6%wYOĘM$#\Wq J>YXiRhtxl| GW`';b[_dpW^ }k0[#6:ݙ) :,Kegh^hk: D' G7׆852Qs!/Jw51o`emmD5yεڶx=3>?Sv'}+Boj23|QgJqe6rٳdޯ w( `O|&8 ^"[^!h:ߍPRlz6F1x&zBΦonVͽ ڮAxC|['W-ҟAGHxj(ZOgVmwF*sZ_mOLm64~&kv̪|ӀtGب 5g}՝O|]MJkKύNw6~-WЄ=z5w}mam&lvE YqkxJ}%!êzey9J#_0e7[+Zfk'+ڦIs9]v= r ~@Ⱥ\ѵ:DA~R#E?X]tE{\[KFxT_/_俪/n)\:JU s#I(+б>GRhv3mq3Hc eL /`?s0O|164xLpfL /s[P%B X03߂x72(-dlIt4Ƙ`nm;}$$+5h<)M }9r#%O0c|Oω6(qdg}#GkT½)a md^k'b欀v_)u Z紶~6d3u0^ K3aR"Y:  ҊJ|nXf[LA[3`+^m0@^͏fC a`z9Z$ߞ_6)`nL z7a0 3cX["^Cab:$mwS %0L; i6+ d`ۡe[uMۊFRhMk*0C'[ veF2s%MgZs9="[Z{/x[ N"jk-[)~N' 3~>_Pm2ؠ& Kp4)blC.yn>B:ײ v: ``/jFZy#K] `&2{-M>f6a92#Ɏ.z2$+%Y6 Aک? Ɣlom;[8lpmyu"+VxtzM{ T@`BH5P|/3@N9c:Ɣ(lbccj <)yd;Biu@iM3s֒LH wMQ!Y9R'1AthJ|f'B g3g*^\[>bD'6a(N\RҠԛV%٫@іyq^bv-~)kGY5S|:,Z[9PW<.|dO,uQ^^ PMWݞ f.E6%& #+914p_.`'lJ`no'hyrbZ.AĘ6ߞf\)} NA[1&607̣֩mwdf4F2D3gܞX m ~ّl|7yaFGB1M?@H̳rbʮbf晶,`KeO| G%Z"]KoIs9TZfh[ry-"$gb0BKfx@ݑ6U,I)`{&&̜ -zSuu}#Qd4R[9HWBMھa%o s }$ Lh)pO4JH"*`bW7ycFjrYdZ,WBYVp/Q{f.D(cޮ4s3߼V2T♒BX>kVqG:=6r׎wx;eHZ1e<@=uM _N0B$ځ] ,L5=:\=Y&(giBƈl>G E*( 3s]7^!ƜS괁 i gRӛK*,=d4He1ۅjS8Z ˙y2s|n/z̜cI"xQ!$+pyœ\0nl˴ݝA r r0Ƙ0cGgOO3͋t 2-Vтm̼06:XNTsvcނqrDU3hoUyOfZGXq9vxD/b8m*{R+yŒץ3nnȆ4%=%?dImZִ|e1Q5EaFIj1I zWz̉Dόńc8X p4:I&V+K&XK|DVkl"Z) {}W1#G7C -j`'J2].L4E#6`[ ܉mIz7_ ^ =Kux `kz4q~}ܫ>]x+:¯xMd_ /ra\bR܂;{{cr,Zh3[Myd,,=WjCI?D41+S%뛏$6m$9ɄTZٮ5ȑBA*bʿD"~{6/-Bmfn:#,6h+fCUQ^ْ?w5|zk_ƸYtF4wMd}3?fZm?h{WLuvT+yAw_h7|@7g4N>y/:b{+=4J(6}&g{M.{Oq!/9K/y˺-~ˊUHqRR5?5pR~LT7&ʺHOk|F#FKd?qgvCѱ=dyQ^7TPM4TT)_U@M7iT~i:*`x4Ҏ`z^ܧ;OoTN4hu/Z+ ]%YM^jr͞E4{5en>OTGۍ_fwx~}fOA;GpLN{H3A`(_/ 4WO?䗖 տtZ&͌wlbj5Gx p *=dw-Z`O0q#f^&$ïAC-fUų \ Wn_zMaF-~S$&菄y)>2$ngyOe7TV |W!; E`4(i啱HcRǪccwvh/-beҠfy=yU:h~N^Ǹiwp\f _鍐˚S- ^VO³cefvSD޺ZL˟6. Ң.$1i=P*wd*K@(sP*'C:NovIG926'#8Ox@DZ&Ork%hXQAϪxmРOCa`q8@SB*FP%C1,>qlĪ@w׾?1ςl@7Âjt5Y)x'ABq],]rnF' u8 IX|)'͂M4$Zeɿ*xNY6n,>u75+]Xl}7StA2ĄWS$\pUwV3ޗP%|H p!HKl nH$wH~0'{Ҽ]Inr&=ՕJS'/<24ꇔ IN dQ· RhHiCb9FUx4X\ A5rߊY԰52ENnާgTL5]b܄tL4=/)_c7a PfXr"$E%z^đMn]c yF8ZaGxUrQs+MPOc 9@(SFygx}T3A&bsVd'T DQ!{A2 39}_[^79*ե:7!c  $i0\qs.::?@J-n$Gss*J(*.ZUOtOdGQ)0WPIX,~Iү]Xi4d73^EBB"s'f<DŽ4up$0*gD>V & &E۶yE_["O<<>;f+HLք0uƲ[bTk$x24n܈xVl r_PfȜQh$r+0$/@r$<;C69HbKby (QU19aN۔XWc3MBRS2\z-U:'n2 }^R2:oDq3ĹbA0jB%_PKVGQeb^=2C> ImqJ1ubSZy@Ĵ}m'8@3r␤d U2DF)LRy>}w[/f[}C%60+7x==A*bB(C叨u `~![sj D^U5 not8tGF{Ty6]gUͰAz 6v0} }`6i`ne2(w.'Ad?ȸowt0':Aܶ0JlbR1- :NC,xMA){e5Z\_|DŽֆ ݬ#pixŦwJ07ðtJyq+2 ˝`mI|B^ RR%Boi3ƻ+oQˬrx"ʉN\!:d\=&[La< /AZunRƁxuEwŗ4qIvƓfMQE./}y{咖@9GiK)ȹQ>9bn^\),ZE^LYZE0/ثgq[6 (kdcmHRr&J( S>Y,0}g._p:'p Z{*b>ٹR*igs?dCF&-Ps>i^=;4lė$^Gl)W2g]Z]Xzn27N<:'SZg%UvkUxGt?Kˡd8.%9ly.k*O];Φm yY^'nU44]i5w| [1 a2U3ǾIQ6xOஏs l}$$ 9RJ=1fp1` uJy-qbD|T[L֫Lq#D345er.H26Fmm9Ha.R\HutLKs#$~;-0Ƨ#d2iQNh` Gt,UsQj6 v6rB/6+u7guMEqQ2I|`J:YI&¯?")k)%G-GtIe*Y4 9[2FfT( 60t*) HT; C9K/u5B`nVs=#>[1#hϦ|GSOQnN$QW7Xo/ZޤpTQn&&^hj2ΐ:L_aQ\F[_fX@j=~ht [n V9 Xx 䊪]H]y|},B^ C,rEUE΋[~G b]Ck_0$EUE؋ B;gv7hkcå+)hQrgAC,<DC͛!`h5;6*_᥶3ߞy7o~V6}f:qHSva]Lߩl{j k(9Ji+>od&hYƨL:d1CjUO.<9~մo &G9NEZ{CkR}+m6 m(fDh6-FJ7HC(/f .o$'6Zrve3_yD*> x2R >B @ohR;%wjwEgq bz2X8fY:CȌY.1YMr)1CaBuXgݜ1ύ~{w,>c6P  |02Mhݕ9@J]]ޘh6Йr1r>95YV8A_tH !ljLOٲR1 .{)7!kH )hӴz_%Mh][쏑q"G0Ihfh%0 tn8%ެ~R HK]{ňXrC]33qP: Sgяp5#WWjGʘeZ\. WծnB_.;;)uiC}jraI"v8ƚzMyQ6-JI Y$mllȞKP{1!c ?^18e )Z? afWwب%݄4 C%H PҖb;ݵ0 t%o*O=fcHV9h%>-0YKŚ]xO3:hz~/2݄oZ_!s+y Q̯k>~fT9vCBDfW$doV*ީy^o!RSlqQ@-r`[nV5:vA"r6h&-o" <@^IܑQc!A!R&]{ a oHV{NxfZvmՋnB;#")@}!JP}AM2wRԠ2al KaMhGk !h40K9STgzTwiK Û{cLvhEiJEjհ6 mS`S6MO(D1۠)y*yEtu)+9['tޫa̜KR~2MNН 8^)v=nBkB_vt,O6KGxDa\4䮪ghTžF hΊgM90i}ޕMh'1CB#b h!K:+v?]MUYsmsZES pt.j007vY$&m!dlUp\::BQza&Q /nYw~W!{<9E k )59x.fLصv!I]$ jw.R\r{d=2+ Oޚ2NX*L2);K7@@gsWJY>9D`OBC1dcFnPW׹"Lګ [a&nBk<pJq)`V%jul7tR(1𚯚m-Dl&BuqacUqCDB[*bo/:p)Rhqy)r)V`.AxSa>Nh׫!f4 $(7CQ[1 t謦7tjZ4 [Pojm5^Pakeڔn]&aEB ) Mh'qqP݃횰 a͔ƶ(J-ڹfQ83X(' y 2?guޑ Ŋab׌ƎEz^7a/vW@mýe5j&$-kR47j aAள4I{jJUf)Kpmy@M#KŜoQ%fh5+ʒ*s'dPe0w{2?|(d&-ppv)ol y紬_m"\R3fdI{+/fοPo2e L%tq9U5+T׆* 'e.m u7ȸP{d;+ H@UK-Tv;L- <<lOI$8%Bmy;kNu&dQ>YFw u1כ ;h^!g3zޕ9zf5/'ϼ"E2X;|!!_i" ;Lcv.oD'X2-/_JJ!R܌IJ8M?$78OCx_De=yfdf qY̎Ld1CC=f )IIG iTHͭ0])i] Lf Q:ݡ<wANjsE_*tӾ9W *^PL &QC+= *n8sLep4~%!w /6_k}쫪I{0jpP/e'A +5Ai_еq_:.AgAi$4N`a_jyFi_Ku֬ &v$rKqSc!v335vt-i_/v$tKQ6Ƞ2N(7gTki}Abe&@\5H 8(h|ةNτX/0;:§}Al??9W <J%Ԕ֪0dX[~]'A,M8cϔ1Ua^G4Vft)Lr6o#|00s YgAENivkaOτD4i cdӾ oqӛ\5HpPZUjY3!}ySOP9p8J%J|sDYw3!n NPOP5| s 3 i|/e(#0٧gBsf5}A7ch 9-LWAh_N{OP'q>W [\1E !T/%A/5jT~[.qEIۺNwŮ |m§}A[Tґ'6ui_0."AgAi$$TF,v*YӾ a"AgAid$ӣSLN/)0|0i_0s 8(r'W#s/Ս 0pӾ a"ApPz19Il~Ů Tw qpO agA$%ׁ : BS # Ӿ aBApPZ1YIᎆSk/_" X? ҖpPZ1iIkDGMuA@? 'tm"I~mgBu|OG,:W :J%1y wgBc*F<7r1_ I r$vKfRٺzz&41bJ,§}A 89=B{0s5[kӾ U8π҂MkknG*jF6a4-jpPZ/IC `Un'A 4<+ZYi_5 ǖ2\5H 8(/e4XعVs= >W pK~rPycJurSΤDJt2Y*c/"t~ᦢ"EW"E'hLKo2Vzcxf ^pd4C0b;bbeaO"E/{7 VѷFŬM.S%|IwuBm-1›s3kyr+/\e>F7X tny3>If=O+YL)#l2, K{G;zu)d|X{[M%/D@L oK<RdFL3k9eh-BIm+_%L#Yd`,O-,$s&/?'%+͑E'/ R@_-%F[6$<pmO{[SoHV{n5~'_n4 @\\iZE*/ܸ˯3g|̰Ƴ7^wWwy_)·{_9^_;HpşSWfUWgM[Ÿ/.m;U&g];Ib"_([-jJ ]eZ jl4鬏pqfq,X=.dQl$դŝCǦݜ4sj:oMOy?c~&|/Ros`wLy?enEEl{ۗ~/UA/k?_yAbZ#'J$:s2w7P}_# gZnͧ:{@ E=\//?ա_2W2|c|_"Ŷc};l&?F=Pw{]6ўݺuXc$S{g1$hZ %Z߲}je-Ԕfӗ7Ōټ\Kf>M7?= {/a ӨG?_? x)^><=A:_զ1`.}aP7\rO^e ԧQR(QEoy51cz I@$_SCCԴ4&+o޸Kcn|iG*ik}r=4^$QiSTL۱ߦ*TZT (yX$tF}Ź̉LrlH+x_jW J vĠlqzG<'O.UǮ(e^ l~B9AR8\ȑR~#X. +4$yI%iWuqzEq^cÒEV?zY);[]C&5إfSbl{F]L./u fG3A'>oSж^2$t˂ [=:Z]z,@Xdđ掸JҦ8 CB`p2sCQ-z!p"74zlf6N8M p` ]FwzQ4q1SA{]qn&[{4uF *D6F|a{W-si!\r6.u %:1nu\(sa$|4|M2궸9\$ɫ>a NW$cJW |~O{UnQKKX<GYFWu"Œػh}T'BZ B z50&;+  $mx$,չh[4-YvWY[Mter.K .3etLvfY'6 U!xGwGlT\P)3ЫJZmB],Ee5gkN+i}98;FoZ)^_ )St05.͒gvKJڿ0v>Qe]2 I7]&wwsBH A0=&4253 +@{w<^hooh1jmܽ81+tn1_d;eeU'))Zmsѫh5G3E*?F}x9,S Zݍtro d &/mm<-;"_:`Z7P/+oXUdC%)ot&МF[ hŭtŐ [$o^Ve:6xn)U5& tF~d^=Y(I*5O-lI4 ?Yhc%6֓ 3d>iC/`f+|U6&]qf?*S߮=փ+t86ɵrml])!lusYˈny#f[jiO{m\qx}ŷ 0%oW>E~SAzGSAOmK*)?V${dug9?{2nToK3 D/?@sӥ. 3[ f3՛Vܥd2t5%7:Q$=bbņMWynmLA:c٭^%rߦ'sxߏ.C?~6$0x 4 ɞ=O-TLOُ0cwCBnU/glVfHF}ݠ15/*4YHPQ#_%/]MvXAc7Gωu9 [y;PO=' עaW @өaz|\3KTv"`geSYAN5jԂnxx.> 6~f 1b <&E3ꈙ?4}|{OFeL-E,c00q"'3$5(Zť"CX\vCQ>=@oA!Huޠ[=.t}hT' M#O:iO,ޯuZA F >ꢀ_~#­N{w-{&YIIgM[iB)/BwєR(WDZ b:<4Dr~w䙳1jP%AhT%<~051vn687Ws@Pz=iry6 @T0YDpS}>$I"y*si]HӪG%1`t6M,Bj#Kui[ZBIVW_P\:@VjN][m+'?Bhi`uiI0 - ЬiBC4`k>N&6Fל &@D4hJMʄȲձ']GXc+&PDkKn1ww:Ӌ"HD+()BK`ۄXx*$%(>Wc%H 7˚f+or`\Q$1F 9FzsPz4雟M4GS= Y.ዧf;9&[LXkz(*{|Q7!0y0B윕b[$yUUz h aMGv,^AINs{$ysOXhU$Ήx- n.a/lx˂HɠۜneriJZ6 %$  6^ɑ~%d dn']VV901c0 㻣Ag\³f&I+{EIe:;Qw!|[-S,;yx޻d.yĀv*ش.a%ؙ l}rK1':̉^f>G&iָN@]tĈ_ͭŲ )P MepXŋg4kۤi6&vNrgӤh~ 5k<Y@4f k#o`S$G]hP#J = pZbIV  $T ˭ms{a:KuyQS0}LȬU>p>2oUbJq)Ē3a\lF5\+E#t=*Rf͝!Tf͑H5'hlkN L-3p?w#.;[G*V@5) UY7.Y*#Δvz.CJڅ vVJt4+9a#oXkshZK#T\a˿7@鳆a!r2>m 6 n˱6y!%$p@v>m4c@[3 3Mغ*bUmve~(T]UWvHQ @p?w#.8 \9ZZOOc!L$%=TbGN dq3BTU'zSb1' 6&.HߑhT[3UT@ia%V6]F6&n,з'0sT8 fӆ2w܆IvZITAV= b)KwnAMG0FG|^ںǭ:kb'E$gv<;vAr i&<ԄnC &ìJڐ|L' **PdXTƥBj $T0x 7_qZ~g ;)mr ;yϘ-i8*' p^h$kہbo;.p5,4PbSv YEKfcV$rR^^{ls`~?wQ&Ь{-/ki31z4SMy+9) H0 ˡ͙Um)%~^r&֏w,(isDVE?y>lv @EYB^|M #72W )H o9 6s+ukH&DgE+ t JRA]+\ҽW-=|RD7Yd]aP.{U.t#B/Ag AzJh~{֎|HGBJ MpW]\1'ԞiE6 #e&;2tStI[a.oh-0N9ŦN7xDuX|B9R/_tk-NFpB0UqkQbu#EbUֳKw&Z[ Y.:IOƴ\|)?A ٍY[9ǫ($TY{"rz9ooğm}I4~J4,M\ , !wt,q^ qdwMLo L&r=Y ZUD@VCMN<*L31]W W-D/B4ٕBa$i6ݱYn"׌υ4I-i+pDzұ>.>fx]~ͳΪ.Z3kVzz+(/GOt?w&=h7Ԓ};STf0 dk\}^hOfuS+4OO3ۨrMiq+_hD;9i:`쟰8f\HkBFc: J+GyQbd=Xsw,s{p˺Kٴ.4~t}^EϹMARX{mWc87\yecBGD9V$}Rd㔎+=3 G6ywȚڞ\7|+(IMT؄su#R&{k5\2osT]9 {ـA X\*4R\N["1doR&e3`R,ʙVJ)sS*5Rx*ܣhjyQsq2eٔ߅k_hbD1WVJ$k0'5T|ߍa; .dʼnBquS%ͩ^ v$qko)!Kl՘µ"Wj~>AqJ~IJ2dPHK\ݸTđƘq1T< ,ߕ*B.fK&ӋTq&>T{_#s#u~xcEJ8,T ]+U*nFcJ/*|Ŝ)/˧ E4*pѳF6abTJllc4Ury1RL֩8CG[c-,Ia_Ѵ@5g{bҜmLFj.,]7k.OǠΓ"!$Ga=q} < ? g$|f>z 4%CfhUkL/> 16>qL_QqNRbNTOS6t@Ixt}mV7cRXxѤfSVa I֭,]j+ l{Bxk!+T+x0,zީ>ËTޓ3Ȧ,TEscB͙YdcFJqL>P<9?Aq-% ǔ9sE~y#wk=1.$bVO?mLA jT+NhN`?f/to98GL8 . tĘ\E *LKo"E^^r/_\E/" =3b/8ɛ23w(M/ ӎZo+b[|6OO2^[K^0H]>'V4p ,CB, ~L$ԃŴV2UBv=3YVEj.3/;ZpfrW5Dz)K]Bム2̡dǣ}[uF_*2s:o'AQY/zzyz{efWbd԰ªL3s^-(3J]jhkdy{Z%]"-cl(Lcfט5hM̸NNwX9/aլ tc1Js6Ew,X炉l)Ֆj!0Q%Y0;hi= ]QUB:Yqf[Oi8Q$|V1-Ho($u(dDí ~o%؉ VTh3䨭XuF^j桏䩠+5u_{{_]`ck j?6G,DzqúvC͙k^%ƝV"8WޭGԥ?^YmۤzN읮آ-^1 ]KzjL*j{ZOu^&C\zmQx )5Jg%wU I3\, fSҼ5'#w·@%_ ! Vi>^ޑbǀ' 0%m;0`EEC(4=J{zA6$lƣF1+vTZމO ӧQ X(yD%Q4« tM,d[>5BhՇkGSщZUJCGpȝ-M7F \i`*p9Dc[)m*H9wX,ՊƟ> INH+v >ckGg2+s3}bI~87zцF4 cZ`x{XMZjP]z'>T2ppO JkΎC꿞Tu\L Zy.#HIG+R5HNa2E0 Mk6z=I-wRlYJLb< NHßҨG;{XK-\_VS>i[@4;5|436 Wp<$CR&ý\fվnV&r>9 h{pbb`~EkKMCP[~ː IOs$1ROlKjMMN7Qa!>AߪKKaO6M'-ϧ#Tn)pV N UB882H3v/5uh[qS,A$}װ 𯶖4խ&F.O@1dO}ӇꦋU 癤k-a uh8l[Wڑ$?v޵&/OQVTgI$hX]k7 O+ [S`RTt l4c&l퀎(w[+tYu9g|}W mCUuǥ=xPJtuز< WRYEHupe6NCčFxOۙ)哷( 9nT1y\?sL*(e+zWlvva.i0׌&7E`vr ݧxzCVa:4O39Q2aQQ%Ze$gI)fN>F;;j~K ;# +.}Y/4*\9,_xgR3%˻6a_>ڜQ e+X8#:=b^߯'Wdhfk /m!.$Uܕk¬tA=PdIGAw{i~4x8OFs{A*j$kCPa~w3H}l>3TJ͌Y0TIj}m2gdTZ O_I2_;x1vO׵.!3voO $]35Tg&P-+/?ap{<#F[M*G ['%åG2ƃeuR5qwi9XXYV+pF>]'Dn޸pI0(UL#gMcme0j>nǂ3^@asp=J/vKGf\?gҽ+83C}-mm8TOV*v?;Ԟ9D~q?m +\Wd0 fɼo>o?*qw*k5R"5) zѶN}4QA\@D ߃g,"2*~"?³@D `!b›o Hxٍ}@R{p56lc$K| 1o a8 |x+yJ_"#?Iߎw]<e-K.7SVq"h`s~9R\ {C(Fv{#AjN -nf>ObARU4[;tv6f}1rH렾r q +hi: xZbThSh YF8W_Q5|Ҳ8Η܍ߗٗL^M [Wg򀷻Z)D`O::m$Q772J#)lecd|. z5j߻pk\kotW,4/Ž٦&@ ŮL]j4:fhssL7@PPR:EI $/Ɩ'h 3bi)ܾȸ qH;ZׂM`"}jgVXX9,=!7-11;(7&S 9L`pQ 4|0VhY, IO+fS58@ٝlzkPZPn 璟 Ar䶩t)%x]5ΝI[Lc^yA{NhJ,|v+U8*j^ǵwZگSV*xU-qwA}wlՖWr2#pBߊΧ,Qij ЧBuRf/h NAOT&jŶty+\ajÉp/:At׷-Hw:PMqӭy}e ]|ͮ.:kr0w܆b =f(OasL|t $[>XBjZʑkpR=ErueOJl 5"5 u45ݒԐG/vZ`4X@δ#f\{d"U@HR@6HLAr6jn@3b!v|n-pP:u7F!CGKYpYt @#y6'l}@}ʋ@gcd%8TPm.S [??'I>▆5tjt_9jZVr5&VSm!x ,!B@26UғHZMUʳU4@tNyEK̛z򁹪d#G$/m 0AĹ/zb<hwzKE.:.hG8FclȦ 9KrJle2SpH+h5(|ml%. kSA;^Q/$PT ڨvF^VeA5< px5Q*5yfB6I<99L_r XR0-wS;#6{TѶ@k`ٜ1`rN!H -US=s@* Aj$Ƨx[' Xӹ2vHqBmئ&ڡU;a0(lqj"q<x2#QB-k< 8t('#rm> 6Ȝz^{ V~z, ׮W uA_Qt$Zhy@ r<ѷ;`Nd&XOIEpm' r4s\j% }ajY ydm j*Aè"(ʭŒ\ Fa( Iֻ\fy6EA`N&g6fˤm_:&L"z6/y|!pفOK4N6Uc=G'#aino .bF蝚bXxCSΥu|qQɵǁƉ:]&tvf81Q r4͛?[Tmɑhwi{M2!zOlyV@Lm `&q{NU++$w r֫ݰ:bC*z _DLi09 NX p#::P̨(B1"9fJ"aFV 5Vr)χA #ӗbd^ G3pټ3Y¬@bz60s 5sY=.=>f=F1X;^TZ /JF픿%| ܈LxN}~W\!:_J5~ZsPvGPcP'kkdoK$nFpY"cl)Hټ51 9z_,4 l9u K=\1qD/>wG.(c{!y{= 曾t @?>Ja@u" %B9I eI0riSolUMl'3ui njs"{K$t4A0L_aQa\he~I@hlHARK]e+4i>?wߋ}U.{PýC*~[O;g<^&Myn!';?#;ACV.R%17=}oڵF'Cu?羶lג__x8>tXKz\ 4RC L]t\TZpV|uWQפ[ᇝ&B0< _3 asL$h-fKsɷ% l2t1H6?O⡿iLb^{cdɥ 9@!fьŇq!E~UzГM't9&F&d b 9lD<DomODפwWbwLL"$9еZoX|AH #oyeCLink΍C2w¹ d#H6IBo 5g}՝/SDC>OЊ/Bo<5{H?*clȧ I2iM$ɜD&LJ֑"E? zE]tn(Zk]/_C 3-WvΙD/_ٙ*nmBO4 Q^ gsf%ahW77~|Bͥ֐b} T@Mw /#y(7&ϞMWqwiXǟk]3a#Эxqmx5\ו_ooX ԏ }ȟoR(ꖯ`UW߽xJ9n'zJY7v`V3$)wP۴,#mj;+LZڣG7yd=?7_16ws9k';Fh7ZNx`k]ᴱkw~,o$ w'!YFŠ2;y>[NnG ûi~as??wWpo,2.o&ϒ4ru7B'rq$xa_Ng3ZAuX_z& \5=6n (kE6č8!-4}c.%K 4<.mo/U2(DrښcsYu2 ЫOXh3'hq' V'rz GJA`c]4QwIN9"MJRӮ|v^VfHno6)[X0NKH9;< i.V q{nIݳϨqROVqFqi#7Ct8 2^xAvKWnYaKAGKq@oz`@H 8WIڔ0aH_|n6=]"]89 R\T^n+ȥE*CKi૕`$#WF%o[FpJBlC&8Fc*/+.v:c;MziRh꜍@Tl8Z6et0lucIi Ցq-3 Va(هzF]J ˓ELAA=j@s 1ao;Α ~;\"219r0n$nc1`EZte;UiUnQKB0nӗOŶ М& % >t\bKk_!A-j! l;+  $m7@aRkܗh`[TҠg_ RUK"KkY f{X&NVզ M"b!5YبjƻSfWq>صӥ{*[!ݓ 3H#t3.)AE̙\m5`Wl* iu(I1Ŭ9H;l "5ӯc^spQM;`GW3ge!X Wv;UuJ g3 Vu񩱎'lVW$*u4ǥ C6M,섗a|j+2P0OWo&l;;ңVz슲wqǵN|>_5}mI\fvc[ƭ^.ѻξe}5^iw@V~@dV+C49Tط ib`cdP='6'IO\AH8xY8,H,P;ǹp$BBU@ WIQ8ԬMAǩ6~T "n v~z Sgִcuϝ,R#$j;zv FAdchP7E1=g>l`W^ܐ$gLE(+R8>y^,+!c* C6MPƤB=l;^9Nco׃A^No}BosZl.K6YX[8 au$ӂ=Gpg{7`Ӓ"/î279 n?\p:7 A Qt?jy.ڸ(;oOa*Jޮ0} -KO+Dۖ U7&Sbz N,goX>P"¾>QKT$dfd] R8$W P}|b$:# 򬽙ؓo|k$\˨n|+w-kZ/HJ#ɏ5%7:Q$=bbņMZ*2o e _>Ͼy댭^%rߦ'sMzimT՝8/8y4ԔvW#1]c/VΓHz:Kr"Nc)D,[ x9h@ձ*^bN44A0cQ٪ Yu) F!XwkZ.R͒t0v`!@ (o.##?z_) ]DTo"TMghE~Ǣ(Vֽ֠FHSu<44Z#? y1,E۫J%' ,$L- G[{cxt#i(Ȇ9 [_ yz71uh&0I84؇lp.GS xFJtl9PfXH3O\ fgv拹ES4 <Ei}av+"0,;HEz0|bRR]ZFUG'aO],lLddT1ŝw3. D6W~/g5-tQrX;( ?p?dӄlE _SZ9 >k\%eLU }ʀ ᣐs)LlN=,gfXVvhۋq5khAµtkJJJÍMÇgFvȅ#% 5:!HcÊrvCw]Gg)0=lHKMŜb@]d0I[ f1LȦ ҢE]u溡j$ⰸ,2blTu7v@n%UO !%n_3r89TlZG ??p?dӄmi4FrahC4Ǡv9Flɭczɡ ICJ^i_g`7 Od; c* 7C6Mir%Nar4Y10Hzِy0_+CZ ~|XuxY}&L@4[ڳn@|*ĸ/82ci!ت ܣp 9r`%Kxw&@](g8< Siǥ C6MWz. qlxuklkbj07+ 徦4 )7Z:8iy8*xkFbFŐ1㸴}Ȧ j@?N|/WԜe:B2GBu^WzY* c0S#՞ p?RFޒ69dt#&ElPrOޯxǚrlVnuWjvCM"uAjc* qiM})]\i6jr"C??ޖ ޸YΒjny7 3Gpо0" U=Ц|cS$澽rui92:L se-,'tL;.mi¸4ʷ[v-x9ghC4)9f1$XnY'!Ŋ=:6&S1l@ P1N>+9ܡ`yCrL꼇lP.MQnȩB یy-9kF(.3זf6G y>zT3F?KM};47]ÞZH2VS &RXSi3Mҥ):Njm۶Uiq<V֣ {]ʙFQk4?{f#ƣ-rɚ6mw֌bTo] ^jˉZkc* qiCM斢׶}`-q,ah1 ^Et޴COmuW|ЄW\rJ) I'_{˂ں.uc$ymQ=d̙J#p\8dӄn/}vn窊Yr6MW<foMVb޾\\zX G萿x~ui7[SC~( |W?cbxүn5M+2- x)=۱eeN}J 8fYӃcMn4 8պ[@q^h:cͭskA%6G^O&裩sBӌZUALXkz(*;R7!0yGUB윕Je[$yUUz h n2HyZwX:~dKR_4?gO7V*h:j 9H?Ѳ vGņ_Q,Ԯ Q.Efݐn'OXhmXͶۍH?Ւ~2rzo:vRLA*g&0&u d|/y^0Kx$Y6`3ɠZ'ǩ0N3]'h|w'/{p17):Y0r^1&>= 6-}%̒`MsOv)DK1vKl21UIkѬY(C^;bD#Q ^vbYmPNVX,ambųunnҴlo;ef9Ի }>MvnĨPNY:oX\"onI|hvp> 'mהGnŦHFnY y,A{&ŒI[| }k;-[]9EMMZt<3!V5fb,éȆ:WA*MIvK&n@qQ?vhl\nWdyTb3Qk:sj\V2R1.iĘ;z`=gTUu{stZuvE6X4irϋ61kObׅZ6׭!?Y)I-7Vh:QRR*LV mӒhl[vM0v\Re:-3 `Rc| V USUM2:rp#`#A("Qn͜WQ]Xt&G@ߞQC/ F,..Mʈotq'kU|'7GgSa[4k/P ɋ7k]fW{jz.K|*NN"eg-@XR! . *jCe3.x@MaYR MT1P*~ŭkcemQRa'"=@6 G#s> d~b-q ÓpJlΜ4a:K{Uӹ(yoz'Vw+e͊0Ɗk;s@:Or@ *ڜia;b[P~'Ɖff~^} qRj#;0x$ŦܷNJuo{n)=gk_/h/P{O0 ~3Ѥm&ZC~ǒX{ 9[xmk4 iLtjQBIr{wUC^^)7.qV֙h''X'V02yGVU$= ?ٶ^ƺtUkJp2 gϽMMB1Gk^$ٚ;MO$F8zyNtO}OME? 5oTGlOyĎvۧ@bmځ֮T3gƇA r7Xq qd?:xI_WBf\[0+ѽnxا~r>]@`mi`-1(.ٲR{&P{y=aI*˳Th>c #B̲ ՁX"C@JMWOMƓJ!QŸyz_ |%=5WmGj{eKkC#w4_ƸYtF4蓈C_Ǐ9c3|ъez<·R~q]Nx*~%/(/ozkLD~c|F G b=U|{*ȁaUHqRR5OpR~LTкHOk|F#FKd pĿTOzJ[DInќ` wƄ?qkӞ D6yc?CGqC.-`ol1M6dYRyAYX3B|rA|yZI*KMٳfwﰦg#\I?hq2KKsM?ys:hO 0ELH'SKKJc cäQ`tsSM TfH۠AD%Y7se laF̼LH$m!sJ*NX Bi.q\[S7/bk=0axropŸN9$=#!{^ 2D-SY>894}f5U_FȎstזW""JJP`KX4(Y^k^N-SoS3hOZ# Byz#T<Ģ> 쮲vG; )FvR"o]ij&OYfiQp[:< >s Dd棁-x`9,= Jƒ>ʜ3ʉ;6]oI|1`D9ɓjI|e#VT*z@v4蓇PqX2X1Д.A24*TJ# Xc X|&40U)}bK91nq$k rS>$ℋh/[mFfAsk<0r<)8NMŒĺK9AmxM gm0 'тL(w$S֨bezF($O'5X  Kxb+)ª;E>$IS % PIa_q3 %FNV/{4oAER[r IF}xuKxA1  lD$@0!%69CGRGS~)`+7}ĐXD 7HPDeM"u5,|@Q[D!SMtyA,ƩpW_m||x!p] 3C*99GKqMXg0Yh H9&Io^0&bgn]c yF8ZaGxUrQs+MPOc 9@(SFygx}T3A&bsVd'T DQ!{A2 39}_[^79$WW йg5 7±@rk4ybA-EϢ8BH9k@]uߟ hrcǹO}u9%blt-qh@'ݷ,1KRccXΗ7P.ÈK? ݆( =ghB|q&*'MF,\GeR&Uc k=3 F.FRr,+ܨ$_]2dŔx r6Kq(Ǧ,\ep>V &'e<9/Cߞ'CljxX32xO :aJģOP4 f;Rb}l_%iF=f13k6A8gB -l&g:jL̤ص\!p9)^r\4K#2}FeފQy6mРG gܢBH2|pNVJLf- b-40wPC. ̊wոXU$[PDHS!ksk2EE"$#%f-,I{VboӴV5$WoH:v@=I,Zˈ;WETY6Z<)gx?i7GZh\A $cײ%IlW ! XL.F;1?0 ?& #Q9#"6b8*$E"1tEm\JDx^gy| " fwQ)W⽭ ae6Ĩ8/x@Jz,ZLӪ5Ir'ѬيMS L3 DpsHSN?gg|Hr&Il[:tBAE9* ' ir XlIH ~JKYvأJdMZdB@]F]xkٲZçt%Ν`ԄJj2:*{d^ _|Obj+ <=D"e}.i)NpXf*V!Iɂ'dT 4 Rn}F R` 3~De[ 1!G:IX0S -9"gdd`t:N:#ڽWv~ЮγCf `iFy;>>0l4]v07g~hl{\W]*NLq=EP`Otdm`n> O)ŤеbZ-^uZXRR&k:;21 2 yYG*KM<"g#cEI3NUI<55t%W&"0_A|,ttt-OAkRAYJaY-mxwM5qU]OD9XiRK?dZYDIv3\!sT4Hk.:C8pXo<.y # J1yzdijp?`L.D%PɢoVٺה00]53FIN5EiٸDSO6hGdrIYzgds;WPDh64p~ٴQu" ܩ$ m0E>Û*-ċMRMR^k2,h ˴(QӏB').f2#:4$ OJf>po2-QE/P2E8ѝQ9y\9'7< ^U u-M9_]~/TK"֑DJ6MH2M5y9~npgfX#l*T,"IS,i[/]ry osiS_3)4%V3_%ZF*Mt䋒n)LgʁqT%R !WvYp[aSd.)CE+يo;J:\(o%^ݯSMCk$H88hΚm&XSCg{h-3suQ 5UB^ht}I-̄SwۋyA,t<SrEծa$K^!!K""|JC{T#n®bu!)/-^L9@F]ܝ.]yN> EQˎ; da8% l sEӮv'a T - /5R̋ *މ}4v)#9lZ4NKxnP_ "̀0]2H,1 5MC<9@1C9v+HŇזWF D'8B8G\ ]m)龻T?6.:K{/HpeJq4[)Bf|r1ONٍ C:8SuyKd޻cYP594`dR?6.+ s 2A%$_1l /K1cԝi&jg;px<l?D,BI9M RzwJK鼨>ÛY0*<-vuN& 華Q~K h|{xDF%1'`FPLHk>)d#]cB*Kl!>R5Q (`iXA5ZW2[S@jP@z>\OƆ$ 2찊cnZz+@0HoρBٕko6xF|5Т1p}0Ⱦ %-;vKxCsۧ<? "fUdO1erjGI/Rs{#ajטE^KA:@ q̖nM]`Wg@^SH0X1jU`>7 >=% 9kw/*dY?\M=!"&eڌ .X")/rZ^EJtBnG0[;{[B BI&e}y)([kJ):@'8'(b7:CH@wv\"L,r̓J𪜟t\2X]{~z" >פ_mgp N@)45 dBNʣ%^U H픝ģ\(.C0ll57Nu(hq\x\AMu"U4_ -.1mϥ|X%bwa{`oL8&B^l쏯 \gm %Gma4m НiD+lB!vΫ)x)=C9ǛjM"UXpjSItx4\] 5|<,f|`uaBEwNEVf₄ݖ6S.ۢ(*^hrMGpbP2>3h^zGf4+*~]3;.sH3zu]eFZ755)5XޠWp{MTgYĽRftV{REGS dc˶;bw:3xeIù?n2^˻=AKa`Wm=f2xMVRזQ88~הjbsZ/춄W.[3׏ʕyz3rAX2r&i|8WI@뚕dubekCƄ]d2o6M?wd\OBg9Y fArZjjA`k.ۧ@=%xC~˖9uo^a6uθej%2c|p>tMG4/wi=J zWғg?dZzoΨN10gD _woq>4\"E/_Q%vδ&_"E/_Ċ3-/C3-/_δ&_"E/_"E/_"EtZiM[iMLWqif Dʘ64d"IpWCj&Cjʐ :q `32,fGGn U:d ;/cjAOS AmM8֙"H)YAJ"*5dzYs!7N@|@'$P8t X\H [B L*MA m"YJ&8C+p$b@XOdz{A9s SbeMZqzBih8~ll&j7_}C8ZkYKq:oYNB59#Qy$&juNdbrhy'cK\ USQ]hj >6姏\w_J9Qi^co!x`5=bF,!Ab~;U3gT ;0s\=%s1+cy6حݾ Ƴr47XƖC4`!\df*O0G]őBggVL9f'PnU&M#,[x,ypLjp!딃{|B=k_`jt#c ! 31 lofxd8P1v='4YGUΓ;՞^ kx4,W-jܪ$nE [Bdxbdt0 V@-]pinWnnFƋ73y׸'1q ~1l՗FYY] ;C5n:[|Ww)=r=.KC¢!J%-kAuh,k[~4NXyYM^<üF婻ϲ5Lp1yOFO4']&,Ɩ}0P-+7/c`BvԮއ";?:3M%@d&ۏ z;iP: Bf =d@iG#il)O 92NE'~;h0ԅL Ny,PE!֫x[L+&oEtDW}w\|=gawq\F%e'/Ifq\ |r%JtEmcǤTQa!zOlyi`UTT']9QOy{AQ¯rVt>hqB=A r[%Żi][뵒KRR<|p"h600~L'@AbWk^tJlFݡ`- mKVR G .~RiWLP#H&-~ۜ,lK;O{ҨL]MD)^ZZKSg\54^ΓX|aotab<ͅGEikQfԚ7Qmͨ՗gMÿfPmlvF&p%x\)N_7AkM X^X3?_$.uc o7w*l|yO[Wt{!IMN2.-ύIVʰD&LJtάDG/;t.a]EUE"E/_=ot?|όiM?`aƬ7O^5+;"Eo}߭&z/}KoT-d9&ȩN}wuWm#b m lt2E؈=zs&;L{gWF!O( 17tTŒP,`ľ]O)K2TelgԥP!`?>7yT "ʣzG|i*VUcvqoD}Ee.aCJ{q ( KM);qҠ.}0E^clN;kde=u!" 4"@pH5% 8{}Ɗ_M+5; EK̹OgeM)7bn5x_^-%WLb ؗ /v˂(T'.H`u[L%ggjZA+.!a:zہM|^C&9/hzN /Ԁ?_\^ѧa!®F@.=>SkϡNx9ڱxuhd*kh^< ABMZ;|m0;wG_mZDoGOz޷Y U~_GAȵsY;ֶN_6R,GLrKX쾭^=.ʰl,7j.7*~/' T%a,IO-WXy9(4k4Oc9"7|vX6B;Z=˸OM7!tq@^ca5-#o0+^1֭c|~Ox|R![DdzR8ЛdR$'4wU67L2k9zh {0 3zMp*+fu*W:ws!ifY'G%ј zYDڏEjN|^ڭT=:g#|@x"m#^v\)NjIJSfX7ȥN룎loghtY=bHpr '!*irfpbЫ0>輳`ڈJ҆A3Ku=Gs_ޢmQO" N9C^-)̎eؼ]\%-wwFeU 5ޝ2$&$kKU5BvcRf0 8K9{Ě-HlexNx)XIX' @;t۷4_qf/9@:w6S]C*ǃ kǤ9LBb4e 78a7mhL"3!2yn9PfqA͐(i=Le@@aTо^ss'ѶB锻X5ރ$ï@?1vzXB{ _~ n(rtV]eX#w2/L6OqBҩo)aGy=׉j&)> ,6oәLA:c٭^%rߦ'sxߏ Ɣe$$ٽ7 #rui[VkyR9}.7ُDCyb@>LmzRp1R06eT ]NgNH~ UDâWfI5t@!+t.F,ۋ>݈dh*q TdFX#@Bc~FK~"i`{bG #"@" IgLjB jhL p+.3ZQ7! `YX&C"Ʈ'2RcZyC琄R2 j,$L,B #j%¨p\y O<}wp^4#)?B*Pt'^ ?KBuFni|3ȁiCNny:s]_Zɺ[ X'!3њ.@ !#\ qSDBûlXI+qvAUTfZݮk=e\l`+6}KWDZexQE+h)5\,_I|K%Dg!Jc-l#iZ(N$/kI;ɊvwwO}?_ۿy,e9cS][%̒;s{*)$q)D91v?wKlu8hvkT ~uXVw_$e@A.KXXxlfv4-N٩㸵wV'947T? vCy*)OBy5k<Y@4f k#o`S$G]hP#J = pZbIV  $T ˭ms{az4lT55i C[5>^+m]*Eޭ?}\|MyIWA*MIsK&n@qQ?#vhl\nWd/b3Qk:sV2R1.iĘ;zփ@'kξJxwC !S֔]vҶVf9Myq&f;|⢺p@܆5d88> % P4 tCBJ^wԠBT`} ,sѫ`_*ֽU}>EnD@cOC R/0GIu$C& =fmK 9 `JRdmwtS{sgH/Ys$?T_]{̑W-.,dh+q×7JX܍ lXaĦ'TgMtf@:S +jhZ/;Y1g_*ѽr2 ]apϝi]6(ڰVղcQnqf㫮#"pMyk`tHW-n ʑOS,F2ۀ-"䅔8E?ЌCUo04b>TMTٕ}˖:DjnQſshCPU{*B*5 TLбt s7j  s%dTn16¤IrYcH%v0II'8[?KB>Z8_ NxBN 1' 6&.HߑhT[3UT@ia%V6]F6&n,з'0sT8 fӆOιʑ|w)8U "9ؓ*>ɓ~?w#峩0{@5Rȗ܂ś`ε.3Gru [ufwA=H%N>CKOiI|T TZR} $qAr i&<ԄnC &ìJڐ|L' **PdXTƥBj $T0x 7+vU[PE',d<Ebܶ(G ~|R`ǹN腋Ff(rI8]B%6egN0|̽X^/y8f r;5o m1ʻd땍2aGfxk ~\c5OQ? ej'[ɉH9d F ]_EmδOHĢ= KNCy*pE=$%Pؿ8~zbhj69Рq_.U6( S˓w ఁ{~v]MQJq4_"ET\| Ol'u~zN| Ʉ`Lh4οc`TI 2Tz@Kj' 6 ?DP@ԓdq͋_Z$w9k@AN~'s`Q ~gsC:Y1s$}:ix!(žȀ7/mP ;fż nkfyϢ}rTV} 54L҉sWh]'o5wvˌs]%]zpri~'P.{U.t#B/Ag AzJh~{֎ ت +37Ix]iwqŜP{nQ ,<쎔KOi&nY:i⻤_d;:}Wq a zks@ \֭߿?+8';o~'&sZ[26` עxĨzL6:wMyYxepP}t;wG\ܭgLjo\&suiR=qS sWiPHkDFIk_r VZ8~kͅ[K6-: :LsוpPIg@Uh⒕_V`Ye]}ה! `c!{jf#MkJ t?w&=h7Ԓ};STf0 dk\}^hOfuS+4OO3ۨrMiq+_hD;9i:`쟰8f\HkBFc: J+n~a0|gç;=h8e] mlZOU?߾F^"&PUnz t6Q^1Jgny~] 3kΫ*+f|gUhq+l}5#}mOJGYz$I|_OYNoj縏[@~gphbzXI[oi)O2"EK5W"E O:reX"E/_"E/_"E/_"E/_"E/_"E/_"E/_"E/_"E/_"U_"U_俪' *TVA*l6)4Ps0lpNN룐`X>9(P! "A & 9 |L .1VnARzHTsK)SBL RI5(m>%1%$"f6rΊex744g *-`gz U1 vڔ * 23|6X;o8B`0Ğoav֧[di{U vrL+Al4l0zÕs:`HH8|7BwDLr$؉v 0hԯOfQiO% K%`{-tT8 q"3p%1Z y]<<`'f kK0`Z+S̼ܶbLXGb<SL3G 頓*/fWh /ݱha7 o6,)7]¦l[Yobt+ҶkچP[YdFox~QmJ) BU2m{;–Cy}~UI q3"^5ĶޢѦ&SB`6YmX+QHcJ˜C OG\-MAP]>9M ܷ 8Ȅ qqqv۴`{N3LSS?*JՇcn'[ E.MPt߅+8y^ 9FQ0 ' . fS/L,WaZaCȓ"ulF&2R "rYYm s)5a%PsTs,!vL"̃P /t48sA4ݙ9Yt&MuG,{]iVYMړyHZGb^= 6 s_Ԍ )Fsl GXzs^j>Pm$*$)!x>s[ytn|i3󞨆!j`G/EeZh#L9E&ZOu2SFR:.^MmOԏguEƘr\lRUxş+{iM̅و<$0,dCeFP&}}HհnFWK3DV̂0 R5VH^)0)#aÇ|ģɶoَ3DYq0+0dRQVwT;uJIg6mÒ$Cy6熴zbFtf#7^kոY~BfO4ȴ]~i DӃ4us&Aβ< +SX1Ɯs-,ߴb 1sW,QD!LqH&ؓ9;l4}],nO% owUM . `FQ'\䤺0_+q,ٟ&Cd<}̫ -9Vv1TהVV̳5!2:YEMhǫ[#yg 7:M{;D4=<K# V3&TvI1+ؼM3dͨ.7zGng_GW8xa1VVE !}i,opI`Yh%ڦl3lm[热?Up]\vLR[kwrsQm?PC.ۻ[ḤݼyjتZH;\gxy+#ҏ>|$ԇp5)EЖ_?ksq;ih-T늠cnmJ`^]4zGÚlw}q0?\Hd9tr%aP LmEڀ7!s³^^^P;.kTޓ3sa+y}V 8UM2Jq2ڦH[$>F3Uuluw{rh6|JȲfd"b˘3 |0ڔ;m #Z;b7Ѝyu ՛pBqE`nffoѩr+btjb3@LX  D hQga#oC)7ϳC6#_g u3KI%Ba‹r|\t8# #(aSEDk*g?zƍQ;3V>!V|Ͱ{ЫGb4K"5F(ݲj>1Bn#:YVfތZVS$nO}H6d&Jy4+DySeտ2_ƥDd9^B^1 *6!6>@B؂1QkE &;n?͊)AZܦR*9V%{!) rhY鰽Ӓ  kxx[I:G*4+3UZeBP,Dx Bʸxh%_aRTwE^YB %d @N(ڪA&*P(xYb ݑfUXW6kJG6$17dU#{Tf.lu3f.WsttOE-r[zGz0sgo 1c8x3s'/t:qpcf";=?]h [[_6>.ްKy ce4ŭ{N(Tt!-&840I@8`o-t:zv=IiS䣺U-LF6:6F o*VBrcd/ 6. #2@ ('B:-[UL&#KNXKe؁;t=/gК 8#xCm/k(E\ _n{?3쥤z!3oh]@4K<ݜHT3;37T^e 21T;{3xg*] ^A %kЂomzk!.[ox[]30gϥ3(tr`(πg\Tҡ@(8-g7bZ( Y>:REK%.x7 {p^ُx5GqH^ryEI@`RP밪ᣍE cc耏!ICX|ږ̼/$[d/f^.JE)5+g͚F8B;-+`T-zZ̅8 R.kVe[:@3mcљV~1>t[] O Lțfi5 Bon+Y"rF`WBmAϙ̱lixuÝom(r,BW\SfKA<^1P`+2Uˑ X1ʁqH&* tb@6Ò^|*+tGWf|70HD8K)Z㴛DTфk+SK,?:n L䡩}Œ!&'-d:h37rk%:\p(8I?l^"Gݞ<)Nm#/hXz%kp#ᶒe+aaKD5 oWDZ|>ГyzyBa/Y%vuN_eLƚ?Gٲ̋7|3s @@^օs= &4l:!hrOB6̜!H gW]Hj/̼Y rk W:) }$xVCĆke33ۓwwu8̲$,Q*i3+^"VfH4 r&*a溴1z"7NhCm0|D,6CQ/G0!rXH20ؔM"hx`ml3WrڈFU]7|?>QP`i]ne- t17oEPHkP1]# $%.ˏ)c͚P頙9+5>ZY =*Ndv*LEsBoy]Iv@kC;C6Fl‹C@9ݡެ޺b7˛@|fo{rNja8Ev 2t[%I#[ p%}=Tjif*\,~,x$zL`zz Y^tn9ڲZ` f$U4:7 ⥎ [ "B Id|¸b}[8PXzF=-2Qn6;Gjkqr +LXS(iH업'Z1"'ܒ -mk\2_Dd&@_}/Z!t—m k[1ޜh6g.܏Cրc \Pj V@HmpX&ifC aK4f?f^H B{˭ Ԟ/CML%| _zAJح4mJR7\zx. uZeʑ,]E\?/<mvYIjt;AZg].դ-,j'Xu\nÍ 99xٲ9IJBg1–PBG-8ly+qMrPCY\hxd*~шKUJ,>eǪZeHY*2 %PjihVCDoᶒΙ3̶8eN Yj1-Iٰ;0Fy@\'ٰoꗣs`+TgpfFz/0`@32r\FQ5[pک  .W+  Ei[3fދK}\TK4JdN甜ΩVBaS0FL~gB_]dps5l ꗇJyʮLlLd1y!qQʤ`R#׫QWmsۖ Hl/[ l$PyHDggJz5;ViZm;n ;')3z_2wрS R<|=LF"܅*zi/< [h P4emUwpTCR.6~'7; kRp dxK x@48%beH*Rn+iD=ODR|T?.%JAhk45!Vj%DV4<ؔjoo(e8SV u_fC0Nҹ,|!ܦHaw._8#F0/QL.WȄ ̌ NbSΠlXvk#6x *[ۼ.B7BkHt,)`\,!G/*4v/aޅtU֋sO9nu9@^ot.EOtDg&\RBӸ5GJ925YzX9I*y偗\14iJaFǯ-4]'9`{Ri2rusdH\nw*&G&.YP :ÿx|dJ #q(%Rc76q=o||t beZ٬Y x㮔EjRebH x];|I엣tC(,Z`˔Z/^=z8Lg %S0`"Gɤ" ;f`3nJ"|:Ӻ|e|'Hrhku6S86#m~]r0LB<4}(Gȑ/FuhVF_)?rxxZ !ejfBLjRQ+VR08mݝm;B:ge$ȋ҅n=ڸ9/'-JK#&8PS)Bzp-CAV a7`Z?*Wej6aVS\f@(g?f̎Bi.&p{ֿ}$C7#i+Z/(`l zm>U u>U_CimVm̭xm7C]s&Omdf@~^`ؤ[eYۀ~}Zo+{b{=o]ΜӶEш}QHm NLT59€OiYLY&?GmSjk-`_%_VfW7x|KuvJEG |L^2F-/wkwߢe*ıRCz[(5'ԱRA>bIG>H)]-2a33$?RUJ5_5ܸ~.0JЗenTu=zդ#i\7mTޕ7$ .^Bڶƹ^`L<{C ?5Bzv4R1P~5]ȶvh1Q(-y=#Akbvl:' %tNJWNJE|M%nXHmW 'Z):z~MƘp[(q`lB1-b|Ke&VGP47C -z@@loYva ~_Q6K(~[E c^KڻzjYfmZs6ZOMDj+NS3Wng֭iޞ =5{C' -$u5#lt0Ij%@kư5gOm'p/:Øv/ <}dT7-\1mЄw8 >$M.fGL$k\S@g`x<Ukc9G JMFV۷&v2sz:5d maf'Ԋ 2?^M75Dg{uWq|ÿHoU"\<36O ضPjU>m}CY'ˉ:uAi' 4;bfrH 芠g`ΤNZt-͝Nx`wO-<%q8J'}gdUsc{|gsyc[)# -i'\z9`BcIaD=r$d}z`]wKb=Ƌ{/Ep:b]ُIZm'=9?JH\1 hJMfy7[[ꅌx{[ 1J|rSgcPјI]8V:).۝:{> >.S)_'~DR_ڳR>}|dRwb"#MckZuu;c㼋,_vlYf [(Ӄ褓џ ,APa.na,ٴx/ⷶTY7uŠo2Ƭ[3*iWoy|_gYf[(+خ]vT Ihz\۞ӃrzxSUUy$KvL}^Z-bcGڭ+T3]L^P[%& fG0uАC|*wߴ8(mfTh ZAM@ѥ9u**W9#wkFZf*F.marTUyMv|ޭ+f9-/ri{4bTݸf*OM$L"\iݻ5wp#@5}H.laLb`_HDv\`8!enͨ\+6bܥ9U#\ؽ[3wW'cӅvxw0ʖ,sdڊgl߭+G w; ]ڞؗ7mB ٮr:,5zwpE0X~AkFCKl,AA+G1ؾ[3ؤXa9iAa>ƃaTJe}fTnOIRXJnga쐡U:پ[3wWL:_۸=oPP*=l wkFOҀPJ2e\۞èa%CAt ھ[3wW|u쏼fyaL"0yK[{ Pfv#{PP* ֌JtC_maRWݭaW f#e&]CB{sXb0:ΰoEI-aW#0x1ہ۠4)wo{$8C F'9<{5ݚvpL@Bsި(vo{O&¦ >,K$֌*mF|liaq)zc.>1fvo{cc :F>4RHۭU+rT Ed)ix=!LEHh_7,kfT--x<0509اr❜~.ia[3*wW " o ֙Isԑk׮=D>-\*k>m_|P|{>U?q}+x[ls%G(!Sy:,!ypN|;Al]zϻlXaGk)!mfTH .^Y[ZeǞݜM\Dܑk J،۔*&g bӧ w uc{PFHB'gFܕ9Ld֌/7-xۋ@BPȏu|[T0]ο]\ٞØ$;94b2mO< += i &hؗrxl</ō9pFG]2d P/w0&fP/ y@֌ =P"-xӊ!+-B'6r"AY,`yc̉Ԟj8p|!x$sZ{1fSi?'gZį:)8 zNCPLϓ7TGnͨ\Ħo? i23^- !2YogxybQc>.e)*`Os(ET~a 7`O+y9::P9J=.ߚkuA[3yWlOLOۂ1XW4@5¥Bяke0 CݒeFYnO'b[3'֛*E&L- L,)) `< igLħ*|OI:4ƹg=e L>b[3$kaȜM*vw@1[TVo Ƙ xvX&B C`ח *]&`ܭ`P )APzRc¥:vL  zkC^¿no z`Oiqwx2|#9ԴSw2lKmˡKO]>ֆ{nt;0 Mp7"=$y,^|3s.S÷ 8Nn`Cy3,)x  ri GOS02yY%N¥Bc။1]ON g%j ri0X3X1~l/x1f¥".Z!oۘOYSNF/Q^)[4_),|*E#K6:9]qŹY=/:ƼQ65>]l̜u(x-S@7mR:cr#]s\44LCB[4|3!3'+-~gw nt]h}$XbÌŶiS<`M\GS ]Cy-\*Q/Xu[4)x 9VNi*.KCwԙ?|݂)hf.%83جS7^&l[T|8RQl4Q+Q0Zuu&OI}dۖ,Ab̵KmtP/=:N,7(yI`oˌXl{d~7fx.CFIgHEfn3,Ep( XMP  1701 2350 2 720000/10000 1 720000/10000 2024-02-23T23:52:55+10:00 Pixelmator Pro 3.5.7 2024-02-13T13:46:08+10:00 flask-session-0.8.0/docs/_static/styles.css000066400000000000000000000006461460047617000207260ustar00rootroot00000000000000@import url('https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:ital,wght@0,400;0,700;1,400;1,700&family=Source+Code+Pro:ital,wght@0,400;0,700;1,400;1,700&display=swap'); .padded { padding: 40px; } table { max-width: 680px; width: -webkit-fill-available; width: -moz-available; width: fill-available; width: stretch; } .announcement-content { white-space: unset !important; }flask-session-0.8.0/docs/api.rst000066400000000000000000000015401460047617000165400ustar00rootroot00000000000000API --- Anything documented here is part of the public API that Flask-Session provides, unless otherwise indicated. Anything not documented here is considered internal or private and may change at any time. .. module:: flask_session .. autoclass:: Session :members: init_app .. autoclass:: flask_session.base.ServerSideSession .. autoclass:: flask_session.base.ServerSideSessionInterface :members: regenerate .. autoclass:: flask_session.redis.RedisSessionInterface .. autoclass:: flask_session.memcached.MemcachedSessionInterface .. autoclass:: flask_session.filesystem.FileSystemSessionInterface .. autoclass:: flask_session.cachelib.CacheLibSessionInterface .. autoclass:: flask_session.mongodb.MongoDBSessionInterface .. autoclass:: flask_session.sqlalchemy.SqlAlchemySessionInterface .. autoclass:: flask_session.dynamodb.DynamoDBSessionInterfaceflask-session-0.8.0/docs/changes.rst000066400000000000000000000000561460047617000174000ustar00rootroot00000000000000Changes ======== .. include:: ../CHANGES.rst flask-session-0.8.0/docs/conf.py000066400000000000000000000071321460047617000165370ustar00rootroot00000000000000import importlib.metadata project = "Flask-Session" author = "Pallets Community Ecosystem" copyright = f"2014, {author}" version = release = importlib.metadata.version("Flask-Session") # General -------------------------------------------------------------- extensions = ["sphinx.ext.autodoc", "sphinx.ext.intersphinx", "sphinx_favicon"] intersphinx_mapping = { "python": ("https://docs.python.org/", None), "flask": ("https://flask.palletsprojects.com/", None), "werkzeug": ("https://werkzeug.palletsprojects.com/", None), "flask-sqlalchemy": ("https://flask-sqlalchemy.palletsprojects.com/", None), "redis": ("https://redis-py.readthedocs.io/en/stable/", None), } # HTML ----------------------------------------------------------------- favicons = [ { "rel": "icon", "sizes": "16x16", "href": "icon/favicon-16x16.png", "type": "image/png", }, { "rel": "icon", "sizes": "32x32", "href": "icon/favicon-32x32.png", "type": "image/png", }, { "rel": "icon", "sizes": "48x48", "href": "icon/favicon-48x48.png", "type": "image/png", }, { "rel": "icon", "sizes": "192x192", "href": "icon/favicon-192x192.png", "type": "image/png", }, { "rel": "icon", "sizes": "512x512", "href": "icon/favicon-512x512.png", "type": "image/png", }, { "rel": "apple-touch-icon", "sizes": "180x180", "href": "icon/apple-touch-icon-180x180.png", "type": "image/png", }, { "rel": "mask-icon", "href": "icon/safari-pinned-tab.svg", }, ] html_copy_source = False html_css_files = [ "styles.css", "https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/fontawesome.min.css", "https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/solid.min.css", "https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/brands.min.css", ] html_domain_indices = False html_static_path = ["_static"] html_theme = "furo" html_theme_options = { "announcement": "Flask-Session is switching serializer to msgspec in 1.0.0. Version 0.7.0 will migrate existing sessions upon read or write.", "source_repository": "https://github.com/pallets-eco/flask-session/", "source_branch": "main", "source_directory": "docs/", "light_logo": "logo/logo-light.png", "dark_logo": "logo/logo-dark.png", "light_css_variables": { "font-stack": "'Atkinson Hyperlegible', sans-serif", "font-stack--monospace": "'Source Code Pro', monospace", "color-brand-primary": "#39A9BE", "color-brand-content": "#39A9BE", }, "dark_css_variables": { "font-stack": "'Atkinson Hyperlegible', sans-serif", "font-stack--monospace": "'Source Code Pro', monospace", "color-brand-primary": "#39A9BE", "color-brand-content": "#39A9BE", }, "sidebar_hide_name": True, "navigation_with_keys": True, "footer_icons": [ { "name": "GitHub", "url": "https://github.com/pallets-eco/flask-session", "html": "", "class": "fa-brands fa-solid fa-github fa-lg", }, { "name": "Discord", "url": "https://discord.gg/pallets", "html": "", "class": "fa-brands fa-solid fa-discord fa-lg", }, { "name": "PyPI", "url": "https://pypi.org/project/Flask-Session/", "html": "", "class": "fa-brands fa-solid fa-python fa-lg", }, ], } html_use_index = False flask-session-0.8.0/docs/config.rst000066400000000000000000000133671460047617000172460ustar00rootroot00000000000000Configuration ============= .. include:: config_example.rst .. include:: config_nonpermanent.rst .. include:: config_cleanup.rst .. include:: config_exceptions.rst .. include:: config_serialization.rst .. include:: config_flask.rst Flask-Session configuration values ---------------------------------- These are specific to Flask-Session. .. py:data:: SESSION_TYPE Specifies which type of session interface to use. Built-in session types: - **redis**: RedisSessionInterface - **memcached**: MemcachedSessionInterface - **filesystem**: FileSystemSessionInterface (Deprecated in 0.7.0, will be removed in 1.0.0 in favor of CacheLibSessionInterface) - **cachelib**: CacheLibSessionInterface - **mongodb**: MongoDBSessionInterface - **sqlalchemy**: SqlAlchemySessionInterface .. py:data:: SESSION_PERMANENT Whether use permanent session or not. Default: ``True`` .. py:data:: SESSION_USE_SIGNER Whether sign the session cookie sid or not, if set to ``True``, you have to set :attr:`flask.Flask.secret_key`. .. note:: This feature is historical and generally only relevant if you are using client-side sessions ie. not Flask-Session. SESSION_ID_LENGTH provides the relevant entropy for session identifiers. Default: ``False`` .. deprecated:: 0.7.0 .. py:data:: SESSION_KEY_PREFIX A prefix that is added before all session keys. This makes it easier to use the same backend storage server for different apps. Default: ``'session:'`` .. py:data:: SESSION_ID_LENGTH The length of the session identifier in bytes (of entropy). Default: ``32`` .. versionadded:: 0.6.0 .. py:data:: SESSION_SERIALIZATION_FORMAT The serialization format to use. Can be `'msgpack'`` or `'json'`. Set to `'msgpack'`` for a more efficient serialization format. Set to `'json'`` for a human-readable format. Default: ``'msgpack'`` .. versionadded:: 0.7.0 .. deprecated:: 0.7.0 ``SESSION_USE_SIGNER`` .. versionadded:: 0.7.0 ``SESSION_SERIALIZATION_FORMAT`` .. versionadded:: 0.6.0 ``SESSION_ID_LENGTH`` Storage configuration --------------------- Redis ~~~~~~~~~~~~~~~~~~~~~~~ .. py:data:: SESSION_REDIS A ``redis.Redis`` instance. Default: Instance connected to ``127.0.0.1:6379`` Memcached ~~~~~~~~~~~~~~~~~~~~~~~ .. py:data:: SESSION_MEMCACHED A ``memcache.Client`` instance. Default: Instance connected to ``127.0.0.1:6379`` FileSystem ~~~~~~~~~~~~~~~~~~~~~~~ .. py:data:: SESSION_FILE_DIR The directory where session files are stored. Default: ``flask_session`` directory under current working directory. .. deprecated:: 0.7.0 .. py:data:: SESSION_FILE_THRESHOLD The maximum number of items the session stores before it starts deleting some. Default: ``500`` .. deprecated:: 0.7.0 .. py:data:: SESSION_FILE_MODE The file mode wanted for the session files. Default: ``0600`` .. deprecated:: 0.7.0 CacheLib ~~~~~~~~~~~~~~~~~~~~~~~ .. py:data:: SESSION_CACHELIB Any valid `cachelib backend `_. This allows you maximum flexibility in choosing the cache backend and it's configuration. The following would set a cache directory called "flask_session" and a threshold of 500 items before it starts deleting some. .. code-block:: python app.config['SESSION_CACHELIB'] = FileSystemCache(cache_dir='flask_session', threshold=500) .. important:: A ``default_timeout`` set in any of the ``CacheLib`` backends will be overrode by the ``PERMANENT_SESSION_LIFETIME`` when each stored session's expiry is set. Default: ``FileSystemCache`` in ``./flask_session`` directory. MongoDB ~~~~~~~~~~~~~~~~~~~~~~~ .. py:data:: SESSION_MONGODB A ``pymongo.MongoClient`` instance. Default: Instance connected to ``127.0.0.1:27017`` .. py:data:: SESSION_MONGODB_DB The MongoDB database you want to use. Default: ``'flask_session'`` .. py:data:: SESSION_MONGODB_COLLECT The MongoDB collection you want to use. Default: ``'sessions'`` SqlAlchemy ~~~~~~~~~~~~~~~~~~~~~~~ .. py:data:: SESSION_SQLALCHEMY A ``flask_sqlalchemy.SQLAlchemy`` instance whose database connection URI is configured using the ``SQLALCHEMY_DATABASE_URI`` parameter. Must be set in flask_sqlalchemy version 3.0 or higher. .. py:data:: SESSION_SQLALCHEMY_TABLE The name of the SQL table you want to use. Default: ``'sessions'`` .. py:data:: SESSION_SQLALCHEMY_SEQUENCE The name of the sequence you want to use for the primary key. Default: ``None`` .. py:data:: SESSION_SQLALCHEMY_SCHEMA The name of the schema you want to use. Default: ``None`` .. py:data:: SESSION_SQLALCHEMY_BIND_KEY The name of the bind key you want to use. Default: ``None`` .. py:data:: SESSION_CLEANUP_N_REQUESTS Only applicable to non-TTL backends. The average number of requests after which Flask-Session will perform a session cleanup. This involves removing all session data that is older than ``PERMANENT_SESSION_LIFETIME``. Using the app command ``flask session_cleanup`` instead is preferable. Default: ``None`` Dynamodb ~~~~~~~~~~~~~~~~~~~~~~~ .. py:data:: SESSION_DYNAMODB A ``boto3.resource`` instance. Default: Instance connected to ``'localhost:8000'`` .. py:data:: SESSION_DYNAMODB_TABLE_NAME The name of the table you want to use. Default: ``'Sessions'`` .. deprecated:: 0.7.0 ``SESSION_FILE_DIR``, ``SESSION_FILE_THRESHOLD``, ``SESSION_FILE_MODE``. Use ``SESSION_CACHELIB`` instead. .. versionadded:: 0.7.0 ``SESSION_CLEANUP_N_REQUESTS`` .. versionadded:: 0.6.0 ``SESSION_SQLALCHEMY_BIND_KEY``, ``SESSION_SQLALCHEMY_SCHEMA``, ``SESSION_SQLALCHEMY_SEQUENCE`` flask-session-0.8.0/docs/config_cleanup.rst000066400000000000000000000016431460047617000207470ustar00rootroot00000000000000Scheduled session cleanup ------------------------- .. important :: In the case of ``SQLAlchemy``, expired sessions are not automatically deleted from the database. You must use one of the following scheduled cleanup methods. Run the the following command regularly with a cron job or scheduler such as Heroku Scheduler to clean up expired sessions. This is the recommended way to clean up expired sessions. .. code-block:: bash flask session_cleanup Alternatively, set the configuration variable ``SESSION_CLEANUP_N_REQUESTS`` to the average number of requests after which the cleanup should be performed. This is less desirable than using the scheduled app command cleanup as it may slow down some requests but may be useful for small applications or rapid development. This is not required for the ``Redis``, ``Memecached``, ``Filesystem``, ``Mongodb`` storage engines, as they support time-to-live for records.flask-session-0.8.0/docs/config_example.rst000066400000000000000000000015521460047617000207520ustar00rootroot00000000000000Example --------------------- Here is an example of how to configure a redis backend: .. code-block:: python app.config['SESSION_TYPE'] = 'redis' app.config['SESSION_REDIS'] = Redis.from_url('redis://127.0.0.1:6379') We are not supplying something like ``SESSION_REDIS_HOST`` and ``SESSION_REDIS_PORT``, instead you should configure ``SESSION_REDIS`` to your own :meth:`redis.Redis` instance. This gives you more flexibility, such as using the same instance for cache purposes too, then you do not need to keep two instances in the same process. If you do not set ``SESSION_REDIS``, Flask-Session will assume you are developing locally and create a :meth:`redis.Redis` instance for you. It is expected you supply an instance of :meth:`redis.Redis` in production. .. note:: By default, sessions in Flask-Session are permanent with an expiration of 31 days.flask-session-0.8.0/docs/config_exceptions.rst000066400000000000000000000024541460047617000215020ustar00rootroot00000000000000Retries -------- Only for SQL based storage, upon an exception, Flask-Session will retry with backoff up to 3 times. If the operation still fails after 3 retries, the exception will be raised. For other storage types, the retry logic is either included or can be configured in the client setup. Refer to the relevant client documentation for more information. Redis example with retries on certain errors: .. code-block:: python from redis.backoff import ExponentialBackoff from redis.retry import Retry from redis.client import Redis from redis.exceptions import ( BusyLoadingError, ConnectionError, TimeoutError ) ... retry = Retry(ExponentialBackoff(), 3) SESSION_REDIS = Redis(host='localhost', port=6379, retry=retry, retry_on_error=[BusyLoadingError, ConnectionError, TimeoutError]) Logging ------------------- If you want to show user more helpful error messages, you can use `Flask's error handling`_. For example: .. code-block:: python @app.errorhandler(RedisError) def handle_redis_error(error): app.logger.error(f"Redis error encountered: {error}") return "A problem occurred with our Redis service. Please try again later.", 500 .. _Flask's error handling: https://flask.palletsprojects.com/en/3.0.x/errorhandling/flask-session-0.8.0/docs/config_flask.rst000066400000000000000000000032121460047617000204120ustar00rootroot00000000000000 Relevant Flask configuration values ------------------------------------- The following configuration values are from Flask itself that are relate to the Flask session cookie set on the browser. Flask-Session loads these values from your Flask application config, so you should configure your app first before you pass it to Flask-Session. These values cannot be modified after the ``init_app`` was applied so make sure to not modify them at runtime. `SESSION_COOKIE_NAME`_ `SESSION_COOKIE_DOMAIN`_ `SESSION_COOKIE_PATH`_ `SESSION_COOKIE_HTTPONLY`_ `SESSION_COOKIE_SECURE`_ `SESSION_COOKIE_SAMESITE`_ `SESSION_REFRESH_EACH_REQUEST`_ `PERMANENT_SESSION_LIFETIME`_ .. _SESSION_COOKIE_NAME: https://flask.palletsprojects.com/en/latest/config/#SESSION_COOKIE_NAME .. _SESSION_COOKIE_DOMAIN: https://flask.palletsprojects.com/en/latest/config/#SESSION_COOKIE_DOMAIN .. _SESSION_COOKIE_PATH: https://flask.palletsprojects.com/en/latest/config/#SESSION_COOKIE_PATH .. _SESSION_COOKIE_HTTPONLY: https://flask.palletsprojects.com/en/latest/config/#SESSION_COOKIE_HTTPONLY .. _SESSION_COOKIE_SECURE: https://flask.palletsprojects.com/en/latest/config/#SESSION_COOKIE_SECURE .. _SESSION_COOKIE_SAMESITE: https://flask.palletsprojects.com/en/latest/config/#SESSION_COOKIE_SAMESITE .. _PERMANENT_SESSION_LIFETIME: https://flask.palletsprojects.com/en/latest/config/#PERMANENT_SESSION_LIFETIME .. _SESSION_REFRESH_EACH_REQUEST: https://flask.palletsprojects.com/en/latest/config/#SESSION_REFRESH_EACH_REQUEST .. note:: ``PERMANENT_SESSION_LIFETIME`` is also used to set the expiration time of the session data on the server side, regardless of ``SESSION_PERMANENT``. flask-session-0.8.0/docs/config_nonpermanent.rst000066400000000000000000000024631460047617000220250ustar00rootroot00000000000000Non-permanent sessions ------------------------------------ .. caution:: Flask-session is primarily designed to be used with permanent sessions. If you want to use non-permanent sessions, you must set ``SESSION_PERMANENT=False`` and be aware of significant limitations. Flask terminology regarding it's built-in client-side session is inherited by Flask-Session: - **Permanent session**: A cookie is stored in the browser and not deleted until it expires (has expiry). Also known as a persistent cookie. - **Non-permanent session**: A cookie is stored in the browser and is deleted when the browser or tab is closed (no expiry). Also known as a session cookie or non-persistent cookie. Either cookie can be removed earlier if requested by the server, for example during logout. In the case of non-permanent server-side sessions, the server has no way to know when the browser is closed and it's session cookie removed as a result, so it cannot confidently know when to delete the stored session data linked to that browser. This can lead to a large number of stale sessions being stored on the server. To mitigate this somewhat, Flask-Session always sets server-side expiration time using ``PERMANENT_SESSION_LIFETIME``. As such, ``PERMANENT_SESSION_LIFETIME`` can be set to a very short time to further mitigate this. flask-session-0.8.0/docs/config_serialization.rst000066400000000000000000000021141460047617000221670ustar00rootroot00000000000000Serialization ------------------------------------ .. warning:: Flask-session versions below 1.0.0 use pickle serialization (or fallback) for session storage. While not a direct vulnerability, it is a potential security risk. If you are using a version below 1.0.0, it is recommended to upgrade to the latest version as soon as it's available. From 0.7.0 the serializer is msgspec, which is configurable using ``SESSION_SERIALIZATION_FORMAT``. The default format is ``'msgpack'`` which has 30% storage reduction compared to ``'json'``. The ``'json'`` format may be helpful for debugging, easier viewing or compatibility. Switching between the two should be seamless, even for existing sessions. All sessions that are accessed or modified while using 0.7.0 will convert to a msgspec format. Once using 1.0.0, any sessions that are still in pickle format will be cleared upon access. The msgspec library has speed and memory advantages over other libraries. However, if you want to use a different library (such as pickle or orjson), you can override the :attr:`session_interface.serializer`. flask-session-0.8.0/docs/contributing.rst000066400000000000000000000000771460047617000205020ustar00rootroot00000000000000Contributing =============== .. include:: ../CONTRIBUTING.rst flask-session-0.8.0/docs/index.rst000066400000000000000000000002711460047617000170760ustar00rootroot00000000000000Table of Contents ----------------- .. toctree:: :maxdepth: 2 introduction installation usage config security api contributing license changes flask-session-0.8.0/docs/installation.rst000066400000000000000000000070601460047617000204730ustar00rootroot00000000000000 Installation ============ Install from PyPI using an installer such as pip: .. code-block:: bash $ pip install Flask-Session Flask-Session's only required dependency is msgspec for serialization, which has no sub-dependencies. However, you also need to choose a storage type and install an appropriate client library so the app can communicate with storage. For example, if you want to use Redis as your storage, you will need to install the redis-py_ library either directly or as an optional dependency like below: .. code-block:: bash $ pip install Flask-Session[redis] Redis is the recommended storage type for Flask-Session, as it has the most complete support for the features of Flask-Session with minimal configuration. .. warning:: Flask-Session versions below 1.0.0 (not yet released), use pickle_ as the default serializer, which may have security implications in production if your storage is ever compromised. Available storage options ^^^^^^^^^^^^^^^^^^^^^^^^^ To install Flask-Session with support for a specific storage backend, use the following command, replacing ```` with your chosen backend from the list below: .. code-block:: bash pip install Flask-Session[] Available storage options and their corresponding ```` values are: .. list-table:: :header-rows: 1 :align: left * - Storage - - Default client library - Alternative client libraries * - **Redis** - ``redis`` - redis-py_ - * - **Memcached** - ``memcached`` - pymemcache_ - pylibmc_, python-memcached_, libmc_ * - **MongoDB** - ``mongodb`` - pymongo_ - * - **CacheLib** - ``cachelib`` - cachelib_ - * - **SQLAlchemy** - ``sqlalchemy`` - flask-sqlalchemy_ - * - **DynamoDB** - ``dynamodb`` - boto3_ - Other storage backends might be compatible with Flask-Session as long as they adhere to the command interfaces used by the libraries listed above. Cachelib -------- Flask-Session also indirectly supports storage and client libraries via cachelib_, which is a wrapper around various cache libraries. You must also install cachelib_ itselfand the relevant client library to use these. .. list-table:: :header-rows: 1 :align: left * - Storage - Client Library * - File System - Not required * - Simple Memory - Not required * - UWSGI - uwsgi_ * - Redis - redis-py_ * - Memcached - pylibmc_, python-memcached_, libmc_ or `google.appengine.api.memcached`_ * - MongoDB - pymongo_ * - DynamoDB - boto3_ .. warning:: As of writing, cachelib_ still uses pickle_ as the default serializer, which may have security implications in production if your storage is ever compromised. .. _redis-py: https://github.com/redis/redis-py .. _pylibmc: http://sendapatch.se/projects/pylibmc/ .. _python-memcached: https://github.com/linsomniac/python-memcached .. _pymemcache: https://github.com/pinterest/pymemcache .. _pymongo: https://pymongo.readthedocs.io/en/stable .. _flask-sqlalchemy: https://github.com/pallets-eco/flask-sqlalchemy .. _cachelib: https://cachelib.readthedocs.io/en/stable/ .. _google.appengine.api.memcached: https://cloud.google.com/appengine/docs/legacy/standard/python/memcache .. _boto3: https://boto3.amazonaws.com/v1/documentation/api/latest/index.html .. _libmc: https://github.com/douban/libmc .. _uwsgi: https://uwsgi-docs.readthedocs.io/en/latest/WSGIquickstart.html .. _pickle: https://docs.python.org/3/library/pickle.html flask-session-0.8.0/docs/introduction.rst000066400000000000000000000022541460047617000205130ustar00rootroot00000000000000Introduction ============= Flask-Session is an extension for `Flask`_ that adds support for server-side sessions to your application. .. _Flask: https://flask.palletsprojects.com/en/3.0.x/ Client-side vs Server-side sessions ------------------------------------ Client-side sessions store session data in the client's browser. This is done by placing it in a cookie that is sent to and from the client on each request and response. This can be any small, basic information about that client or their interactions for quick retrieval (up to 4kB). Server-side sessions differ by storing session data in server-side storage. A cookie is also used, but it only contains the session identifier that links the client to their corresponding data on the server. .. tip:: There are generally (some exceptions) no individual session size limitations for server-side sessions, but developers should be cautious about abusing this for large amounts or types of data that would be more suited for actual database storage. Flask-Session sequence diagram ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. image:: /_static/sequence.webp :alt: sequence diagram for flask-session :class: padded highlightflask-session-0.8.0/docs/license.rst000066400000000000000000000001071460047617000174070ustar00rootroot00000000000000BSD-3-Clause License ==================== .. include:: ../LICENSE.rst flask-session-0.8.0/docs/security.rst000066400000000000000000000040521460047617000176370ustar00rootroot00000000000000.. currentmodule:: flask_session Security ========== .. warning:: Flask is a micro-framework and does not provide all security features out of the box. It is important to configure security settings for your application. Flask configuration -------------------- Please refer to documentation for `Flask`_, `OWASP`_, and other resources such as `MDN`_ for the latest information on best practice. Consider the following Flask configurations in production: .. list-table:: :header-rows: 1 :align: left * - Setting - Consideration * - SESSION_COOKIE_SECURE - Set to ``True`` if your application is served over HTTPS. * - SESSION_COOKIE_NAME - Use ``__Secure-`` or ``__Host-`` prefix according to MDN docs. * - SESSION_COOKIE_SAMESITE - Use ``Lax`` or ``Strict`` You can use a security plugin such as `Flask-Talisman`_ to set these and more. Storage ------------------ Take care to secure your storage and storage client connection. For example, setup SSL/TLS and storage authentication. Session fixation ------------------ Session fixation is an attack that permits an attacker to hijack a valid user session. The attacker can fixate a user's session by providing them with a session identifier. The attacker can then use the session identifier to impersonate the user. As one tool among others that can mitigate session fixation, is regenerating the session identifier when a user logs in. This can be done by calling the :meth:`flask.Flask.session_interface.regenerate` method. This method is defined in :class:`flask_session.base.ServerSideSession`. .. code-block:: python @app.route('/login') def login(): # your login logic ... app.session_interface.regenerate(session) # your response ... .. _Flask: https://flask.palletsprojects.com/en/2.3.x/security/#set-cookie-options .. _MDN: https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies .. _OWASP: https://cheatsheetseries.owasp.org/cheatsheets/Session_Management_Cheat_Sheet.html .. _Flask-Talisman: https://github.com/wntrblm/flask-talismanflask-session-0.8.0/docs/usage.rst000066400000000000000000000047321460047617000171010ustar00rootroot00000000000000Usage =========== Quickstart ----------- .. currentmodule:: flask_session Create your :class:`~flask.Flask` application, load the configuration of choice, and then create the :class:`Session` object by passing it the application. .. code-block:: python from flask import Flask, session from flask_session import Session app = Flask(__name__) SESSION_TYPE = 'redis' SESSION_REDIS = Redis(host='localhost', port=6379) app.config.from_object(__name__) Session(app) @app.route('/set/') def set(): session['key'] = 'value' return 'ok' @app.route('/get/') def get(): return session.get('key', 'not set') See the configuration section for more details. .. note:: You can not use :class:`~Session` instance directly, what :class:`~Session` does is just change the :attr:`~flask.Flask.session_interface` attribute on your Flask applications. You should always use :class:`flask.session` when accessing or modifying the current session. Alternative initialization --------------------------- Rather than calling :class:`~Session`, you may initialize later using :meth:`~Session.init_app`. .. code-block:: python ... sess = Session() sess.init_app(app) Or, if you prefer to directly set parameters rather than using the configuration constants, you can initialize by setting an instance of :class:`flask_session.redis.RedisSessionInterface` directly to the :attr:`flask.Flask.session_interface`. .. code-block:: python from flask import Flask, session from flask_session.redis import RedisSessionInterface from redis import Redis app = Flask(__name__) redis = Redis(host='localhost', port=6379) app.session_interface = RedisSessionInterface(client=redis) Using CacheLib as a session backend ------------------------------------ .. note:: FileSystemSession was recently deprecated in favor of CacheLib, which is what is was using under the hood. The following example demonstrates how to use CacheLib as a session backend with the file system cache. This might be useful for rapid development or testing. .. code-block:: python from flask import Flask, session from flask_session import Session from cachelib.file import FileSystemCache app = Flask(__name__) SESSION_TYPE = 'cachelib' SESSION_SERIALIZATION_FORMAT = 'json' SESSION_CACHELIB = FileSystemCache(threshold=500, cache_dir="/sessions"), app.config.from_object(__name__) Session(app)flask-session-0.8.0/examples/000077500000000000000000000000001460047617000161235ustar00rootroot00000000000000flask-session-0.8.0/examples/hello.py000066400000000000000000000010661460047617000176030ustar00rootroot00000000000000from flask import Flask, session from flask_session import Session app = Flask(__name__) app.config.from_object(__name__) app.config.update( { "SESSION_TYPE": "redis", } ) Session(app) @app.route("/set/") def set(): session["key"] = "value" return "ok" @app.route("/get/") def get(): result = session.get("key", "not set") return result @app.route("/delete/") def delete(): del session["key"] return "deleted" @app.route("/") def hello(): return "hello world" if __name__ == "__main__": app.run(debug=True) flask-session-0.8.0/examples/kitchen-sink.py000066400000000000000000000026101460047617000210630ustar00rootroot00000000000000from flask import Flask, session from flask_session import Session from redis.exceptions import RedisError app = Flask(__name__) app.config.from_object(__name__) app.config.update( { "SESSION_TYPE": "redis", "SECRET_KEY": "sdfads", "SESSION_SERIALIZATION_FORMAT": "json", } ) Session(app) @app.route("/") def index(): return "No cookies in this response if it is your first visit." @app.route("/add-apple/") def set(): session["apple_count"] = session.get("apple_count", 0) + 1 return "ok" @app.route("/get-apples/") def get(): result = str(session.get("apple_count", "no apples")) return result @app.route("/login/") def login(): # Mitigate session fixation attacks # If the session is not empty (/add-apple/ was previously visited), the session will be regenerated app.session_interface.regenerate(session) # Here you would authenticate the user first session["logged_in"] = True return "logged in" @app.route("/logout/") def delete(): session.clear() return "deleted" @app.route("/error/") def error(): raise RedisError("An error occurred with Redis") @app.errorhandler(RedisError) def handle_redis_error(error): app.logger.error(f"Redis error encountered: {error}") return "A problem occurred with our Redis service. Please try again later.", 500 if __name__ == "__main__": app.run(debug=True) flask-session-0.8.0/pyproject.toml000066400000000000000000000046141460047617000172260ustar00rootroot00000000000000[project] name = "Flask-Session" description = "Server-side session support for Flask" readme = "README.rst" license = {text = "BSD-3-Clause"} maintainers = [{name = "Pallets Community Ecosystem", email = "contact@palletsprojects.com"}] authors = [{name = "Shipeng Feng", email = "fsp261@gmail.com"}] classifiers = [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Flask", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Internet :: WWW/HTTP :: Session", "Topic :: Internet :: WWW/HTTP :: WSGI", "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", "Topic :: Software Development :: Libraries :: Application Frameworks", ] requires-python = ">=3.8" dependencies = [ "flask>=2.2", "msgspec>=0.18.6", "cachelib", ] dynamic = ["version"] [project.optional-dependencies] cachelib = ["cachelib>=0.10.2"] memcached = ["pymemcache"] mongodb = ["pymongo>=4.6.2"] redis = ["redis>=5.0.3"] sqlalchemy = ["flask-sqlalchemy>=3.0.5"] all = ["Flask-Session[cachelib, memcached, mongodb, redis, sqlalchemy]"] [project.urls] Documentation = "https://flask-session.readthedocs.io" Changes = "https://flask-session.readthedocs.io/changes.html" "Source Code" = "https://github.com/pallets-eco/flask-session/" "Issue Tracker" = "https://github.com/pallets-eco/flask-session/issues/" Chat = "https://discord.gg/pallets" [build-system] requires = ["flit_core<4"] build-backend = "flit_core.buildapi" [tool.flit.module] name = "flask_session" [tool.flit.sdist] include = [ "docs/", "requirements/", "CHANGES.rst", "LICENSE.rst", "test_session.py", ] exclude = ["docs/_build/"] [tool.ruff] line-length = 88 [tool.ruff.lint] select = [ # pycodestyle "E", # Pyflakes "F", # pyupgrade "UP", # flake8-bugbear "B", # flake8-simplify "SIM", # isort "I", ] ignore = ["E501"] [tool.rye] managed = true dev-dependencies = [ "ruff>=0.3.3", "pytest>=7.4.4", "pytest-cov>=4.1.0", "redis>=5.0.3", "python-memcached>=1.62", "flask-sqlalchemy>=3.0.5", "pymongo>=4.6.2", "cachelib>=0.10.2", "msgspec>=0.18.6", "sphinx>=7.1.2", "furo>=2024.1.29", "sphinx-favicon>=1.0.1", "boto3>=1.34.68", "mypy_boto3_dynamodb>=1.34.67", "pymemcache>=4.0.0", ] flask-session-0.8.0/requirements/000077500000000000000000000000001460047617000170305ustar00rootroot00000000000000flask-session-0.8.0/requirements/dev.txt000066400000000000000000000002641460047617000203510ustar00rootroot00000000000000# Core flask>=2.2 msgspec cachelib # Linting ruff # Testing pytest pytest-cov # Requirements for interfaces redis pymemcache Flask-SQLAlchemy pymongo boto3 mypy_boto3_dynamodb flask-session-0.8.0/requirements/docs.in000066400000000000000000000001721460047617000203100ustar00rootroot00000000000000sphinx furo sphinx-favicon # Install clients redis cachelib pymongo flask_sqlalchemy pymemcache boto3 mypy_boto3_dynamodbflask-session-0.8.0/requirements/docs.txt000066400000000000000000000044071460047617000205260ustar00rootroot00000000000000# # This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # pip-compile --output-file=requirements/docs.txt requirements/docs.in # alabaster==0.7.13 # via sphinx babel==2.12.1 # via sphinx beautifulsoup4==4.12.3 # via furo blinker==1.7.0 # via flask boto3==1.34.69 # via -r requirements/docs.in botocore==1.34.69 # via # boto3 # s3transfer cachelib==0.12.0 # via -r requirements/docs.in certifi==2023.5.7 # via requests charset-normalizer==3.1.0 # via requests click==8.1.7 # via flask dnspython==2.6.1 # via pymongo docutils==0.19 # via sphinx flask==3.0.2 # via flask-sqlalchemy flask-sqlalchemy==3.1.1 # via -r requirements/docs.in furo==2024.1.29 # via -r requirements/docs.in idna==3.4 # via requests imagesize==1.4.1 # via sphinx itsdangerous==2.1.2 # via flask jinja2==3.1.2 # via # flask # sphinx jmespath==1.0.1 # via # boto3 # botocore markupsafe==2.1.2 # via # jinja2 # werkzeug mypy-boto3-dynamodb==1.34.67 # via -r requirements/docs.in packaging==23.1 # via sphinx pygments==2.15.1 # via # furo # sphinx pymemcache==4.0.0 # via -r requirements/docs.in pymongo==4.6.2 # via -r requirements/docs.in python-dateutil==2.9.0.post0 # via botocore redis==5.0.1 # via -r requirements/docs.in requests==2.30.0 # via sphinx s3transfer==0.10.1 # via boto3 six==1.16.0 # via python-dateutil snowballstemmer==2.2.0 # via sphinx soupsieve==2.5 # via beautifulsoup4 sphinx==7.0.0 # via # -r requirements/docs.in # furo # sphinx-basic-ng # sphinx-favicon sphinx-basic-ng==1.0.0b2 # via furo sphinx-favicon==1.0.1 # via -r requirements/docs.in sphinxcontrib-applehelp==1.0.4 # via sphinx sphinxcontrib-devhelp==1.0.2 # via sphinx sphinxcontrib-htmlhelp==2.0.1 # via sphinx sphinxcontrib-jsmath==1.0.1 # via sphinx sphinxcontrib-qthelp==1.0.3 # via sphinx sphinxcontrib-serializinghtml==1.1.5 # via sphinx sqlalchemy==2.0.27 # via flask-sqlalchemy typing-extensions==4.10.0 # via # mypy-boto3-dynamodb # sqlalchemy urllib3==2.0.2 # via # botocore # requests werkzeug==3.0.1 # via flask flask-session-0.8.0/src/000077500000000000000000000000001460047617000150745ustar00rootroot00000000000000flask-session-0.8.0/src/flask_session/000077500000000000000000000000001460047617000177375ustar00rootroot00000000000000flask-session-0.8.0/src/flask_session/__init__.py000066400000000000000000000150311460047617000220500ustar00rootroot00000000000000from .defaults import Defaults __version__ = "0.8.0" class Session: """This class is used to add Server-side Session to one or more Flask applications. :param app: A Flask app instance. For a typical setup use the following initialization:: app = Flask(__name__) Session(app) .. note:: You can not use ``Session`` instance directly, what ``Session`` does is just change the :attr:`~flask.Flask.session_interface` attribute on your Flask applications. You should always use :class:`flask.session`. """ def __init__(self, app=None): self.app = app if app is not None: self.init_app(app) def init_app(self, app): """This the the alternate setup method, typically used in an application factory pattern:: sess = Session() def create_app(): app = Flask(__name__) sess.init_app(app) return app :param app: the Flask app object with proper configuration. """ app.session_interface = self._get_interface(app) def _get_interface(self, app): config = app.config # Flask-session specific settings SESSION_TYPE = config.get("SESSION_TYPE", Defaults.SESSION_TYPE) SESSION_PERMANENT = config.get("SESSION_PERMANENT", Defaults.SESSION_PERMANENT) SESSION_USE_SIGNER = config.get( "SESSION_USE_SIGNER", Defaults.SESSION_USE_SIGNER ) # TODO: remove in 1.0 SESSION_KEY_PREFIX = config.get( "SESSION_KEY_PREFIX", Defaults.SESSION_KEY_PREFIX ) SESSION_ID_LENGTH = config.get("SESSION_ID_LENGTH", Defaults.SESSION_ID_LENGTH) SESSION_SERIALIZATION_FORMAT = config.get( "SESSION_SERIALIZATION_FORMAT", Defaults.SESSION_SERIALIZATION_FORMAT ) # Redis settings SESSION_REDIS = config.get("SESSION_REDIS", Defaults.SESSION_REDIS) # Memcached settings SESSION_MEMCACHED = config.get("SESSION_MEMCACHED", Defaults.SESSION_MEMCACHED) # CacheLib settings SESSION_CACHELIB = config.get("SESSION_CACHELIB", Defaults.SESSION_CACHELIB) # Filesystem settings # TODO: remove in 1.0 SESSION_FILE_DIR = config.get("SESSION_FILE_DIR", Defaults.SESSION_FILE_DIR) SESSION_FILE_THRESHOLD = config.get( "SESSION_FILE_THRESHOLD", Defaults.SESSION_FILE_THRESHOLD ) SESSION_FILE_MODE = config.get("SESSION_FILE_MODE", Defaults.SESSION_FILE_MODE) # MongoDB settings SESSION_MONGODB = config.get("SESSION_MONGODB", Defaults.SESSION_MONGODB) SESSION_MONGODB_DB = config.get( "SESSION_MONGODB_DB", Defaults.SESSION_MONGODB_DB ) SESSION_MONGODB_COLLECT = config.get( "SESSION_MONGODB_COLLECT", Defaults.SESSION_MONGODB_COLLECT ) # SQLAlchemy settings SESSION_SQLALCHEMY = config.get( "SESSION_SQLALCHEMY", Defaults.SESSION_SQLALCHEMY ) SESSION_SQLALCHEMY_TABLE = config.get( "SESSION_SQLALCHEMY_TABLE", Defaults.SESSION_SQLALCHEMY_TABLE ) SESSION_SQLALCHEMY_SEQUENCE = config.get( "SESSION_SQLALCHEMY_SEQUENCE", Defaults.SESSION_SQLALCHEMY_SEQUENCE ) SESSION_SQLALCHEMY_SCHEMA = config.get( "SESSION_SQLALCHEMY_SCHEMA", Defaults.SESSION_SQLALCHEMY_SCHEMA ) SESSION_SQLALCHEMY_BIND_KEY = config.get( "SESSION_SQLALCHEMY_BIND_KEY", Defaults.SESSION_SQLALCHEMY_BIND_KEY ) SESSION_CLEANUP_N_REQUESTS = config.get( "SESSION_CLEANUP_N_REQUESTS", Defaults.SESSION_CLEANUP_N_REQUESTS ) # DynamoDB settings SESSION_DYNAMODB = config.get("SESSION_DYNAMODB", Defaults.SESSION_DYNAMODB) SESSION_DYNAMODB_TABLE = config.get( "SESSION_DYNAMODB_TABLE", Defaults.SESSION_DYNAMODB_TABLE ) common_params = { "app": app, "key_prefix": SESSION_KEY_PREFIX, "use_signer": SESSION_USE_SIGNER, "permanent": SESSION_PERMANENT, "sid_length": SESSION_ID_LENGTH, "serialization_format": SESSION_SERIALIZATION_FORMAT, } SESSION_TYPE = SESSION_TYPE.lower() if SESSION_TYPE == "redis": from .redis import RedisSessionInterface session_interface = RedisSessionInterface( **common_params, client=SESSION_REDIS, ) elif SESSION_TYPE == "memcached": from .memcached import MemcachedSessionInterface session_interface = MemcachedSessionInterface( **common_params, client=SESSION_MEMCACHED, ) elif SESSION_TYPE == "filesystem": from .filesystem import FileSystemSessionInterface session_interface = FileSystemSessionInterface( **common_params, cache_dir=SESSION_FILE_DIR, threshold=SESSION_FILE_THRESHOLD, mode=SESSION_FILE_MODE, ) elif SESSION_TYPE == "cachelib": from .cachelib import CacheLibSessionInterface session_interface = CacheLibSessionInterface( **common_params, client=SESSION_CACHELIB ) elif SESSION_TYPE == "mongodb": from .mongodb import MongoDBSessionInterface session_interface = MongoDBSessionInterface( **common_params, client=SESSION_MONGODB, db=SESSION_MONGODB_DB, collection=SESSION_MONGODB_COLLECT, ) elif SESSION_TYPE == "sqlalchemy": from .sqlalchemy import SqlAlchemySessionInterface session_interface = SqlAlchemySessionInterface( **common_params, client=SESSION_SQLALCHEMY, table=SESSION_SQLALCHEMY_TABLE, sequence=SESSION_SQLALCHEMY_SEQUENCE, schema=SESSION_SQLALCHEMY_SCHEMA, bind_key=SESSION_SQLALCHEMY_BIND_KEY, cleanup_n_requests=SESSION_CLEANUP_N_REQUESTS, ) elif SESSION_TYPE == "dynamodb": from .dynamodb import DynamoDBSessionInterface session_interface = DynamoDBSessionInterface( **common_params, client=SESSION_DYNAMODB, table_name=SESSION_DYNAMODB_TABLE, ) else: raise ValueError(f"Unrecognized value for SESSION_TYPE: {SESSION_TYPE}") return session_interface flask-session-0.8.0/src/flask_session/_utils.py000066400000000000000000000046121460047617000216130ustar00rootroot00000000000000""" MIT License Copyright (c) 2023 giuppep Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ import time from functools import wraps from typing import Any, Callable from flask import current_app def total_seconds(timedelta): return int(timedelta.total_seconds()) def retry_query( *, max_attempts: int = 3, delay: float = 0.3, backoff: int = 2 ) -> Callable[..., Any]: """Decorator to retry a query when an OperationalError is raised. Args: max_attempts: Maximum number of attempts. Defaults to 3. delay: Delay between attempts in seconds. Defaults to 0.3. backoff: Backoff factor. Defaults to 2. """ def decorator(func: Callable[..., Any]) -> Callable[..., Any]: @wraps(func) def wrapper(*args: Any, **kwargs: Any) -> Any: for attempt in range(max_attempts): try: return func(*args, **kwargs) # TODO: use proper exception type except Exception as e: if attempt == max_attempts - 1: raise e sleep_time = delay * backoff**attempt current_app.logger.exception( f"Exception when querying database ({e})." f"Retrying ({attempt + 1}/{max_attempts}) in {sleep_time:.2f}s." ) time.sleep(sleep_time) return wrapper return decorator flask-session-0.8.0/src/flask_session/base.py000066400000000000000000000342251460047617000212310ustar00rootroot00000000000000import secrets import warnings from abc import ABC, abstractmethod from contextlib import suppress try: import cPickle as pickle except ImportError: import pickle import random from datetime import timedelta as TimeDelta from typing import Any, Dict, Optional import msgspec from flask import Flask, Request, Response from flask.sessions import SessionInterface as FlaskSessionInterface from flask.sessions import SessionMixin from itsdangerous import BadSignature, Signer, want_bytes from werkzeug.datastructures import CallbackDict from ._utils import retry_query from .defaults import Defaults class ServerSideSession(CallbackDict, SessionMixin): """Baseclass for server-side based sessions. This can be accessed through ``flask.session``. .. attribute:: sid Session id, internally we use :func:`secrets.token_urlsafe` to generate one session id. .. attribute:: modified When data is changed, this is set to ``True``. Only the session dictionary itself is tracked; if the session contains mutable data (for example a nested dict) then this must be set to ``True`` manually when modifying that data. The session cookie will only be written to the response if this is ``True``. .. attribute:: accessed When data is read (or attempted read) or written, this is set to ``True``. Used by :class:`.ServerSideSessionInterface` to add a ``Vary: Cookie`` header, which allows caching proxies to cache different pages for different users. Default is ``False``. .. attribute:: permanent This sets and reflects the ``'_permanent'`` key in the dict. Default is ``False``. """ def __bool__(self) -> bool: return bool(dict(self)) and self.keys() != {"_permanent"} def __init__( self, initial: Optional[Dict[str, Any]] = None, sid: Optional[str] = None, permanent: Optional[bool] = None, ): def on_update(self) -> None: self.modified = True self.accessed = True CallbackDict.__init__(self, initial, on_update) self.sid = sid if permanent: self.permanent = permanent self.modified = False self.accessed = False def __getitem__(self, key: str) -> Any: self.accessed = True return super().__getitem__(key) def get(self, key: str, default: Any = None) -> Any: self.accessed = True return super().get(key, default) def setdefault(self, key: str, default: Any = None) -> Any: self.accessed = True return super().setdefault(key, default) def clear(self) -> None: """Clear the session except for the '_permanent' key.""" permanent = self.get("_permanent", False) super().clear() self["_permanent"] = permanent class Serializer(ABC): """Baseclass for session serialization.""" @abstractmethod def decode(self, serialized_data: bytes) -> dict: """Deserialize the session data.""" raise NotImplementedError() @abstractmethod def encode(self, session: ServerSideSession) -> bytes: """Serialize the session data.""" raise NotImplementedError() class MsgSpecSerializer(Serializer): def __init__(self, app: Flask, format: str): self.app: Flask = app self.encoder: msgspec.msgpack.Encoder or msgspec.json.Encoder self.decoder: msgspec.msgpack.Decoder or msgspec.json.Decoder self.alternate_decoder: msgspec.msgpack.Decoder or msgspec.json.Decoder if format == "msgpack": self.encoder = msgspec.msgpack.Encoder() self.decoder = msgspec.msgpack.Decoder() self.alternate_decoder = msgspec.json.Decoder() elif format == "json": self.encoder = msgspec.json.Encoder() self.decoder = msgspec.json.Decoder() self.alternate_decoder = msgspec.msgpack.Decoder() else: raise ValueError(f"Unsupported serialization format: {format}") def encode(self, session: ServerSideSession) -> bytes: """Serialize the session data.""" try: return self.encoder.encode(dict(session)) except Exception as e: self.app.logger.error(f"Failed to serialize session data: {e}") raise def decode(self, serialized_data: bytes) -> dict: """Deserialize the session data.""" # TODO: Remove the pickle fallback in 1.0.0 with suppress(msgspec.DecodeError): return self.decoder.decode(serialized_data) with suppress(msgspec.DecodeError): return self.alternate_decoder.decode(serialized_data) with suppress(pickle.UnpicklingError): return pickle.loads(serialized_data) # If all decoders fail, raise the final exception self.app.logger.error("Failed to deserialize session data", exc_info=True) raise pickle.UnpicklingError("Failed to deserialize session data") class ServerSideSessionInterface(FlaskSessionInterface, ABC): """Used to open a :class:`flask.sessions.ServerSideSessionInterface` instance.""" session_class = ServerSideSession serializer = None ttl = True def __init__( self, app: Flask, key_prefix: str = Defaults.SESSION_KEY_PREFIX, use_signer: bool = Defaults.SESSION_USE_SIGNER, permanent: bool = Defaults.SESSION_PERMANENT, sid_length: int = Defaults.SESSION_ID_LENGTH, serialization_format: str = Defaults.SESSION_SERIALIZATION_FORMAT, cleanup_n_requests: Optional[int] = Defaults.SESSION_CLEANUP_N_REQUESTS, ): self.app = app self.key_prefix = key_prefix self.use_signer = use_signer if use_signer: warnings.warn( "The 'use_signer' option is deprecated and will be removed in the next minor release. " "Please update your configuration accordingly or open an issue.", DeprecationWarning, stacklevel=1, ) self.permanent = permanent self.sid_length = sid_length self.has_same_site_capability = hasattr(self, "get_cookie_samesite") self.cleanup_n_requests = cleanup_n_requests # Cleanup settings for non-TTL databases only if getattr(self, "ttl", None) is False: if self.cleanup_n_requests: self.app.before_request(self._cleanup_n_requests) else: self._register_cleanup_app_command() # Set the serialization format self.serializer = MsgSpecSerializer(format=serialization_format, app=app) # INTERNAL METHODS def _generate_sid(self, session_id_length: int) -> str: """Generate a random session id.""" return secrets.token_urlsafe(session_id_length) # TODO: Remove in 1.0.0 def _get_signer(self, app: Flask) -> Signer: if not hasattr(app, "secret_key") or not app.secret_key: raise KeyError("SECRET_KEY must be set when SESSION_USE_SIGNER=True") return Signer(app.secret_key, salt="flask-session", key_derivation="hmac") # TODO: Remove in 1.0.0 def _unsign(self, app, sid: str) -> str: signer = self._get_signer(app) sid_as_bytes = signer.unsign(sid) sid = sid_as_bytes.decode() return sid # TODO: Remove in 1.0.0 def _sign(self, app, sid: str) -> str: signer = self._get_signer(app) sid_as_bytes = want_bytes(sid) return signer.sign(sid_as_bytes).decode("utf-8") def _get_store_id(self, sid: str) -> str: return self.key_prefix + sid def should_set_storage(self, app: Flask, session: ServerSideSession) -> bool: """Used by session backends to determine if session in storage should be set for this session cookie for this response. If the session has been modified, the session is set to storage. If the ``SESSION_REFRESH_EACH_REQUEST`` config is true, the session is always set to storage. In the second case, this means refreshing the storage expiry even if the session has not been modified. .. versionadded:: 0.7.0 """ return session.modified or app.config["SESSION_REFRESH_EACH_REQUEST"] # CLEANUP METHODS FOR NON TTL DATABASES def _register_cleanup_app_command(self): """ Register a custom Flask CLI command for cleaning up expired sessions. Run the command with `flask session_cleanup`. Run with a cron job or scheduler such as Heroku Scheduler to automatically clean up expired sessions. """ @self.app.cli.command("session_cleanup") def session_cleanup(): with self.app.app_context(): self._delete_expired_sessions() def _cleanup_n_requests(self) -> None: """ Delete expired sessions on average every N requests. This is less desirable than using the scheduled app command cleanup as it may slow down some requests but may be useful for rapid development. """ if self.cleanup_n_requests and random.randint(0, self.cleanup_n_requests) == 0: self._delete_expired_sessions() # SECURITY API METHODS def regenerate(self, session: ServerSideSession) -> None: """Regenerate the session id for the given session. Can be used by calling ``flask.session_interface.regenerate()``.""" if session: # Remove the old session from storage self._delete_session(self._get_store_id(session.sid)) # Generate a new session ID new_sid = self._generate_sid(self.sid_length) session.sid = new_sid # Mark the session as modified to ensure it gets saved session.modified = True # METHODS OVERRIDE FLASK SESSION INTERFACE def save_session( self, app: Flask, session: ServerSideSession, response: Response ) -> None: # Get the domain and path for the cookie from the app domain = self.get_cookie_domain(app) path = self.get_cookie_path(app) name = self.get_cookie_name(app) # Generate a prefixed session id store_id = self._get_store_id(session.sid) # Add a "Vary: Cookie" header if the session was accessed at all. # This assumes the app is checking the session values in a request that # behaves differently based on those values. ie. session.get("is_authenticated") if session.accessed: response.vary.add("Cookie") # If the session is empty, do not save it to the database or set a cookie if not session: # If the session was deleted (empty and modified), delete the saved session from the database and tell the client to delete the cookie if session.modified: self._delete_session(store_id) response.delete_cookie(key=name, domain=domain, path=path) response.vary.add("Cookie") return if not self.should_set_storage(app, session): return # Update existing or create new session in the database self._upsert_session(app.permanent_session_lifetime, session, store_id) if not self.should_set_cookie(app, session): return # Get the additional required cookie settings value = self._sign(app, session.sid) if self.use_signer else session.sid expires = self.get_expiration_time(app, session) httponly = self.get_cookie_httponly(app) secure = self.get_cookie_secure(app) samesite = ( self.get_cookie_samesite(app) if self.has_same_site_capability else None ) # Set the browser cookie response.set_cookie( key=name, value=value, expires=expires, httponly=httponly, domain=domain, path=path, secure=secure, samesite=samesite, ) response.vary.add("Cookie") def open_session(self, app: Flask, request: Request) -> ServerSideSession: # Get the session ID from the cookie sid = request.cookies.get(app.config["SESSION_COOKIE_NAME"]) # If there's no session ID, generate a new one if not sid: sid = self._generate_sid(self.sid_length) return self.session_class(sid=sid, permanent=self.permanent) # If the session ID is signed, unsign it if self.use_signer: try: sid = self._unsign(app, sid) except BadSignature: sid = self._generate_sid(self.sid_length) return self.session_class(sid=sid, permanent=self.permanent) # Retrieve the session data from the database store_id = self._get_store_id(sid) saved_session_data = self._retrieve_session_data(store_id) # If the saved session exists, load the session data from the document if saved_session_data is not None: return self.session_class(saved_session_data, sid=sid) # If the saved session does not exist, create a new session sid = self._generate_sid(self.sid_length) return self.session_class(sid=sid, permanent=self.permanent) # METHODS TO BE IMPLEMENTED BY SUBCLASSES @abstractmethod @retry_query() # use only when retry not supported directly by the client def _retrieve_session_data(self, store_id: str) -> Optional[dict]: """Get the saved session from the session storage.""" raise NotImplementedError() @abstractmethod @retry_query() # use only when retry not supported directly by the client def _delete_session(self, store_id: str) -> None: """Delete session from the session storage.""" raise NotImplementedError() @abstractmethod @retry_query() # use only when retry not supported directly by the client def _upsert_session( self, session_lifetime: TimeDelta, session: ServerSideSession, store_id: str ) -> None: """Update existing or create new session in the session storage.""" raise NotImplementedError() @retry_query() # use only when retry not supported directly by the client def _delete_expired_sessions(self) -> None: """Delete expired sessions from the session storage. Only required for non-TTL databases.""" pass flask-session-0.8.0/src/flask_session/cachelib/000077500000000000000000000000001460047617000214715ustar00rootroot00000000000000flask-session-0.8.0/src/flask_session/cachelib/__init__.py000066400000000000000000000001161460047617000236000ustar00rootroot00000000000000from .cachelib import CacheLibSession, CacheLibSessionInterface # noqa: F401 flask-session-0.8.0/src/flask_session/cachelib/cachelib.py000066400000000000000000000050721460047617000236010ustar00rootroot00000000000000import warnings from datetime import timedelta as TimeDelta from typing import Optional from cachelib.file import FileSystemCache from flask import Flask from .._utils import total_seconds from ..base import ServerSideSession, ServerSideSessionInterface from ..defaults import Defaults class CacheLibSession(ServerSideSession): pass class CacheLibSessionInterface(ServerSideSessionInterface): """Uses any :class:`cachelib` backend as a session storage. :param client: A :class:`cachelib` backend instance. :param key_prefix: A prefix that is added to storage keys. :param use_signer: Whether to sign the session id cookie or not. :param permanent: Whether to use permanent session or not. :param sid_length: The length of the generated session id in bytes. :param serialization_format: The serialization format to use for the session data. """ session_class = CacheLibSession ttl = True def __init__( self, app: Flask = None, client: Optional[FileSystemCache] = Defaults.SESSION_CACHELIB, key_prefix: str = Defaults.SESSION_KEY_PREFIX, use_signer: bool = Defaults.SESSION_USE_SIGNER, permanent: bool = Defaults.SESSION_PERMANENT, sid_length: int = Defaults.SESSION_ID_LENGTH, serialization_format: str = Defaults.SESSION_SERIALIZATION_FORMAT, ): if client is None: warnings.warn( "No valid cachelib instance provided, attempting to create a new instance on localhost with default settings.", RuntimeWarning, stacklevel=1, ) client = FileSystemCache("flask_session", threshold=500) self.cache = client super().__init__( None, key_prefix, use_signer, permanent, sid_length, serialization_format ) def _retrieve_session_data(self, store_id: str) -> Optional[dict]: # Get the saved session (item) from the database return self.cache.get(store_id) def _delete_session(self, store_id: str) -> None: self.cache.delete(store_id) def _upsert_session( self, session_lifetime: TimeDelta, session: ServerSideSession, store_id: str ) -> None: storage_time_to_live = total_seconds(session_lifetime) # Serialize the session data (or just cast into dictionary in this case) session_data = dict(session) # Update existing or create new session in the database self.cache.set( key=store_id, value=session_data, timeout=storage_time_to_live, ) flask-session-0.8.0/src/flask_session/defaults.py000066400000000000000000000021671460047617000221260ustar00rootroot00000000000000import os class Defaults: # Flask-session specific settings SESSION_TYPE = "null" SESSION_KEY_PREFIX = "session:" SESSION_USE_SIGNER = False SESSION_PERMANENT = True SESSION_ID_LENGTH = 32 SESSION_SERIALIZATION_FORMAT = "msgpack" # Clean up settings for non TTL backends (SQL, PostgreSQL, etc.) SESSION_CLEANUP_N_REQUESTS = None # Redis settings SESSION_REDIS = None # Memcached settings SESSION_MEMCACHED = None # CacheLib settings SESSION_CACHELIB = None # Filesystem settings # TODO: remove in 1.0 SESSION_FILE_DIR = os.path.join(os.getcwd(), "flask_session") SESSION_FILE_THRESHOLD = 500 SESSION_FILE_MODE = 384 # MongoDB settings SESSION_MONGODB = None SESSION_MONGODB_DB = "flask_session" SESSION_MONGODB_COLLECT = "sessions" # SQLAlchemy settings SESSION_SQLALCHEMY = None SESSION_SQLALCHEMY_TABLE = "sessions" SESSION_SQLALCHEMY_SEQUENCE = None SESSION_SQLALCHEMY_SCHEMA = None SESSION_SQLALCHEMY_BIND_KEY = None # DynamoDB settings SESSION_DYNAMODB = None SESSION_DYNAMODB_TABLE = "Sessions" flask-session-0.8.0/src/flask_session/dynamodb/000077500000000000000000000000001460047617000215345ustar00rootroot00000000000000flask-session-0.8.0/src/flask_session/dynamodb/__init__.py000066400000000000000000000001161460047617000236430ustar00rootroot00000000000000from .dynamodb import DynamoDBSession, DynamoDBSessionInterface # noqa: F401 flask-session-0.8.0/src/flask_session/dynamodb/dynamodb.py000066400000000000000000000106151460047617000237060ustar00rootroot00000000000000import warnings from datetime import datetime from datetime import timedelta as TimeDelta from decimal import Decimal from typing import Optional import boto3 from mypy_boto3_dynamodb.service_resource import DynamoDBServiceResource from flask import Flask from itsdangerous import want_bytes from ..base import ServerSideSession, ServerSideSessionInterface from ..defaults import Defaults class DynamoDBSession(ServerSideSession): pass class DynamoDBSessionInterface(ServerSideSessionInterface): """A Session interface that uses dynamodb as backend. (`boto3` required) :param client: A ``DynamoDBServiceResource`` instance. :param key_prefix: A prefix that is added to all DynamoDB store keys. :param use_signer: Whether to sign the session id cookie or not. :param permanent: Whether to use permanent session or not. :param sid_length: The length of the generated session id in bytes. :param table_name: DynamoDB table name to store the session. .. versionadded:: 0.6 The `sid_length` parameter was added. .. versionadded:: 0.2 The `use_signer` parameter was added. """ session_class = DynamoDBSession def __init__( self, app: Flask, client: Optional[DynamoDBServiceResource] = Defaults.SESSION_DYNAMODB, key_prefix: str = Defaults.SESSION_KEY_PREFIX, use_signer: bool = Defaults.SESSION_USE_SIGNER, permanent: bool = Defaults.SESSION_PERMANENT, sid_length: int = Defaults.SESSION_ID_LENGTH, serialization_format: str = Defaults.SESSION_SERIALIZATION_FORMAT, table_name: str = Defaults.SESSION_DYNAMODB_TABLE, ): if client is None: warnings.warn( "No valid DynamoDBServiceResource instance provided, attempting to create a new instance on localhost:8000.", RuntimeWarning, stacklevel=1, ) client = boto3.resource( "dynamodb", endpoint_url="http://localhost:8000", region_name="us-west-2", aws_access_key_id="dummy", aws_secret_access_key="dummy", ) try: client.create_table( AttributeDefinitions=[ {"AttributeName": "id", "AttributeType": "S"}, ], TableName=table_name, KeySchema=[ {"AttributeName": "id", "KeyType": "HASH"}, ], BillingMode="PAY_PER_REQUEST", ) client.meta.client.get_waiter("table_exists").wait(TableName=table_name) client.meta.client.update_time_to_live( TableName=self.table_name, TimeToLiveSpecification={ "Enabled": True, "AttributeName": "expiration", }, ) except (AttributeError, client.meta.client.exceptions.ResourceInUseException): # TTL already exists, or table already exists pass self.client = client self.store = client.Table(table_name) super().__init__( app, key_prefix, use_signer, permanent, sid_length, serialization_format, ) def _retrieve_session_data(self, store_id: str) -> Optional[dict]: # Get the saved session (document) from the database document = self.store.get_item(Key={"id": store_id}).get("Item") if document: serialized_session_data = want_bytes(document.get("val").value) return self.serializer.decode(serialized_session_data) return None def _delete_session(self, store_id: str) -> None: self.store.delete_item(Key={"id": store_id}) def _upsert_session( self, session_lifetime: TimeDelta, session: ServerSideSession, store_id: str ) -> None: storage_expiration_datetime = datetime.utcnow() + session_lifetime # Serialize the session data serialized_session_data = self.serializer.encode(session) self.store.update_item( Key={ "id": store_id, }, UpdateExpression="SET val = :value, expiration = :exp", ExpressionAttributeValues={ ":value": serialized_session_data, ":exp": Decimal(storage_expiration_datetime.timestamp()), }, ) flask-session-0.8.0/src/flask_session/filesystem/000077500000000000000000000000001460047617000221235ustar00rootroot00000000000000flask-session-0.8.0/src/flask_session/filesystem/__init__.py000066400000000000000000000001241460047617000242310ustar00rootroot00000000000000from .filesystem import FileSystemSession, FileSystemSessionInterface # noqa: F401 flask-session-0.8.0/src/flask_session/filesystem/filesystem.py000066400000000000000000000101001460047617000246510ustar00rootroot00000000000000import warnings from datetime import timedelta as TimeDelta from typing import Optional from cachelib.file import FileSystemCache from flask import Flask from .._utils import total_seconds from ..base import ServerSideSession, ServerSideSessionInterface from ..defaults import Defaults class FileSystemSession(ServerSideSession): pass class FileSystemSessionInterface(ServerSideSessionInterface): """Uses the :class:`cachelib.file.FileSystemCache` as a session storage. :param key_prefix: A prefix that is added to storage keys. :param use_signer: Whether to sign the session id cookie or not. :param permanent: Whether to use permanent session or not. :param sid_length: The length of the generated session id in bytes. :param serialization_format: The serialization format to use for the session data. :param cache_dir: the directory where session files are stored. :param threshold: the maximum number of items the session stores before it :param mode: the file mode wanted for the session files, default 0600 .. versionadded:: 0.7 The `serialization_format` and `app` parameters were added. .. versionadded:: 0.6 The `sid_length` parameter was added. .. versionadded:: 0.2 The `use_signer` parameter was added. """ session_class = FileSystemSession ttl = True def __init__( self, app: Flask, key_prefix: str = Defaults.SESSION_KEY_PREFIX, use_signer: bool = Defaults.SESSION_USE_SIGNER, permanent: bool = Defaults.SESSION_PERMANENT, sid_length: int = Defaults.SESSION_ID_LENGTH, serialization_format: str = Defaults.SESSION_SERIALIZATION_FORMAT, cache_dir: str = Defaults.SESSION_FILE_DIR, threshold: int = Defaults.SESSION_FILE_THRESHOLD, mode: int = Defaults.SESSION_FILE_MODE, ): # Deprecation warnings if cache_dir != Defaults.SESSION_FILE_DIR: warnings.warn( "'SESSION_FILE_DIR' is deprecated and will be removed in a future release. Instead pass FileSystemCache(directory, threshold, mode) instance as SESSION_CACHELIB.", DeprecationWarning, stacklevel=1, ) if threshold != Defaults.SESSION_FILE_THRESHOLD: warnings.warn( "'SESSION_FILE_THRESHOLD' is deprecated and will be removed in a future release. Instead pass FileSystemCache(directory, threshold, mode) instance as SESSION_CLIENT.", DeprecationWarning, stacklevel=1, ) if mode != Defaults.SESSION_FILE_MODE: warnings.warn( "'SESSION_FILE_MODE' is deprecated and will be removed in a future release. Instead pass FileSystemCache(directory, threshold, mode) instance as SESSION_CLIENT.", DeprecationWarning, stacklevel=1, ) warnings.warn( "FileSystemSessionInterface is deprecated and will be removed in a future release. Instead use the CacheLib backend directly.", DeprecationWarning, stacklevel=1, ) self.cache = FileSystemCache( cache_dir=cache_dir, threshold=threshold, mode=mode ) super().__init__( app, key_prefix, use_signer, permanent, sid_length, serialization_format ) def _retrieve_session_data(self, store_id: str) -> Optional[dict]: # Get the saved session (item) from the database return self.cache.get(store_id) def _delete_session(self, store_id: str) -> None: self.cache.delete(store_id) def _upsert_session( self, session_lifetime: TimeDelta, session: ServerSideSession, store_id: str ) -> None: storage_time_to_live = total_seconds(session_lifetime) # Serialize the session data (or just cast into dictionary in this case) session_data = dict(session) # Update existing or create new session in the database self.cache.set( key=store_id, value=session_data, timeout=storage_time_to_live, ) flask-session-0.8.0/src/flask_session/memcached/000077500000000000000000000000001460047617000216455ustar00rootroot00000000000000flask-session-0.8.0/src/flask_session/memcached/__init__.py000066400000000000000000000001211460047617000237500ustar00rootroot00000000000000from .memcached import MemcachedSession, MemcachedSessionInterface # noqa: F401 flask-session-0.8.0/src/flask_session/memcached/memcached.py000066400000000000000000000104641460047617000241320ustar00rootroot00000000000000import time import warnings from datetime import timedelta as TimeDelta from typing import Any, Optional, Protocol from flask import Flask from .._utils import total_seconds from ..base import ServerSideSession, ServerSideSessionInterface from ..defaults import Defaults class MemcacheClientProtocol(Protocol): def get(self, key: str) -> Optional[Any]: ... def set(self, key: str, value: Any, timeout: int) -> bool: ... def delete(self, key: str) -> bool: ... class MemcachedSession(ServerSideSession): pass class MemcachedSessionInterface(ServerSideSessionInterface): """A Session interface that uses memcached as session storage. (`pylibmc`, `libmc`, `python-memcached` or `pymemcache` required) :param client: A ``memcache.Client`` instance. :param key_prefix: A prefix that is added to all storage keys. :param use_signer: Whether to sign the session id cookie or not. :param permanent: Whether to use permanent session or not. :param sid_length: The length of the generated session id in bytes. :param serialization_format: The serialization format to use for the session data. .. versionadded:: 0.7 The `serialization_format` and `app` parameters were added. .. versionadded:: 0.6 The `sid_length` parameter was added. .. versionadded:: 0.2 The `use_signer` parameter was added. """ serializer = ServerSideSessionInterface.serializer session_class = MemcachedSession ttl = True def __init__( self, app: Flask, client: Optional[MemcacheClientProtocol] = Defaults.SESSION_MEMCACHED, key_prefix: str = Defaults.SESSION_KEY_PREFIX, use_signer: bool = Defaults.SESSION_USE_SIGNER, permanent: bool = Defaults.SESSION_PERMANENT, sid_length: int = Defaults.SESSION_ID_LENGTH, serialization_format: str = Defaults.SESSION_SERIALIZATION_FORMAT, ): if client is None or not all( hasattr(client, method) for method in ["get", "set", "delete"] ): warnings.warn( "No valid memcache.Client instance provided, attempting to create a new instance on localhost with default settings.", RuntimeWarning, stacklevel=1, ) client = self._get_preferred_memcache_client() self.client = client super().__init__( app, key_prefix, use_signer, permanent, sid_length, serialization_format ) def _get_preferred_memcache_client(self): clients = [ ("pylibmc", ["127.0.0.1:11211"]), ("memcache", ["127.0.0.1:11211"]), # python-memcached ("pymemcache.client.base", "127.0.0.1:11211"), ("libmc", ["localhost:11211"]), ] for module_name, server in clients: try: module = __import__(module_name) ClientClass = module.Client return ClientClass(server) except ImportError: continue raise ImportError("No memcache module found") def _get_memcache_timeout(self, timeout: int) -> int: """ Memcached deals with long (> 30 days) timeouts in a special way. Call this function to obtain a safe value for your timeout. """ if timeout > 2592000: # 60*60*24*30, 30 days # Switch to absolute timestamps. timeout += int(time.time()) return timeout def _retrieve_session_data(self, store_id: str) -> Optional[dict]: # Get the saved session (item) from the database serialized_session_data = self.client.get(store_id) if serialized_session_data: return self.serializer.decode(serialized_session_data) return None def _delete_session(self, store_id: str) -> None: self.client.delete(store_id) def _upsert_session( self, session_lifetime: TimeDelta, session: ServerSideSession, store_id: str ) -> None: storage_time_to_live = total_seconds(session_lifetime) # Serialize the session data serialized_session_data = self.serializer.encode(session) # Update existing or create new session in the database self.client.set( store_id, serialized_session_data, self._get_memcache_timeout(storage_time_to_live), ) flask-session-0.8.0/src/flask_session/mongodb/000077500000000000000000000000001460047617000213645ustar00rootroot00000000000000flask-session-0.8.0/src/flask_session/mongodb/__init__.py000066400000000000000000000001131460047617000234700ustar00rootroot00000000000000from .mongodb import MongoDBSession, MongoDBSessionInterface # noqa: F401 flask-session-0.8.0/src/flask_session/mongodb/mongodb.py000066400000000000000000000102431460047617000233630ustar00rootroot00000000000000import warnings from datetime import datetime from datetime import timedelta as TimeDelta from typing import Optional from flask import Flask from itsdangerous import want_bytes from pymongo import MongoClient, version from ..base import ServerSideSession, ServerSideSessionInterface from ..defaults import Defaults class MongoDBSession(ServerSideSession): pass class MongoDBSessionInterface(ServerSideSessionInterface): """A Session interface that uses mongodb as session storage. (`pymongo` required) :param client: A ``pymongo.MongoClient`` instance. :param key_prefix: A prefix that is added to all storage keys. :param use_signer: Whether to sign the session id cookie or not. :param permanent: Whether to use permanent session or not. :param sid_length: The length of the generated session id in bytes. :param serialization_format: The serialization format to use for the session data. :param db: The database to use. :param collection: The collection to use. .. versionadded:: 0.7 The `serialization_format` and `app` parameters were added. .. versionadded:: 0.6 The `sid_length` parameter was added. .. versionadded:: 0.2 The `use_signer` parameter was added. """ session_class = MongoDBSession ttl = True def __init__( self, app: Flask, client: Optional[MongoClient] = Defaults.SESSION_MONGODB, key_prefix: str = Defaults.SESSION_KEY_PREFIX, use_signer: bool = Defaults.SESSION_USE_SIGNER, permanent: bool = Defaults.SESSION_PERMANENT, sid_length: int = Defaults.SESSION_ID_LENGTH, serialization_format: str = Defaults.SESSION_SERIALIZATION_FORMAT, db: str = Defaults.SESSION_MONGODB_DB, collection: str = Defaults.SESSION_MONGODB_COLLECT, ): if client is None or not isinstance(client, MongoClient): warnings.warn( "No valid MongoClient instance provided, attempting to create a new instance on localhost with default settings.", RuntimeWarning, stacklevel=1, ) client = MongoClient() self.client = client self.store = client[db][collection] self.use_deprecated_method = int(version.split(".")[0]) < 4 # Create a TTL index on the expiration time, so that mongo can automatically delete expired sessions self.store.create_index("expiration", expireAfterSeconds=0) super().__init__( app, key_prefix, use_signer, permanent, sid_length, serialization_format ) def _retrieve_session_data(self, store_id: str) -> Optional[dict]: # Get the saved session (document) from the database document = self.store.find_one({"id": store_id}) if document: serialized_session_data = want_bytes(document["val"]) return self.serializer.decode(serialized_session_data) return None def _delete_session(self, store_id: str) -> None: if self.use_deprecated_method: self.store.remove({"id": store_id}) else: self.store.delete_one({"id": store_id}) def _upsert_session( self, session_lifetime: TimeDelta, session: ServerSideSession, store_id: str ) -> None: storage_expiration_datetime = datetime.utcnow() + session_lifetime # Serialize the session data serialized_session_data = self.serializer.encode(session) # Update existing or create new session in the database if self.use_deprecated_method: self.store.update( {"id": store_id}, { "id": store_id, "val": serialized_session_data, "expiration": storage_expiration_datetime, }, True, ) else: self.store.update_one( {"id": store_id}, { "$set": { "id": store_id, "val": serialized_session_data, "expiration": storage_expiration_datetime, } }, True, ) flask-session-0.8.0/src/flask_session/redis/000077500000000000000000000000001460047617000210455ustar00rootroot00000000000000flask-session-0.8.0/src/flask_session/redis/__init__.py000066400000000000000000000001051460047617000231520ustar00rootroot00000000000000from .redis import RedisSession, RedisSessionInterface # noqa: F401 flask-session-0.8.0/src/flask_session/redis/redis.py000066400000000000000000000056051460047617000225330ustar00rootroot00000000000000import warnings from datetime import timedelta as TimeDelta from typing import Optional from flask import Flask from redis import Redis from .._utils import total_seconds from ..base import ServerSideSession, ServerSideSessionInterface from ..defaults import Defaults class RedisSession(ServerSideSession): pass class RedisSessionInterface(ServerSideSessionInterface): """Uses the Redis key-value store as a session storage. (`redis-py` required) :param client: A ``redis.Redis`` instance. :param key_prefix: A prefix that is added to all storage keys. :param use_signer: Whether to sign the session id cookie or not. :param permanent: Whether to use permanent session or not. :param sid_length: The length of the generated session id in bytes. :param serialization_format: The serialization format to use for the session data. .. versionadded:: 0.7 The `serialization_format` and `app` parameters were added. .. versionadded:: 0.6 The `sid_length` parameter was added. .. versionadded:: 0.2 The `use_signer` parameter was added. """ session_class = RedisSession ttl = True def __init__( self, app: Flask, client: Optional[Redis] = Defaults.SESSION_REDIS, key_prefix: str = Defaults.SESSION_KEY_PREFIX, use_signer: bool = Defaults.SESSION_USE_SIGNER, permanent: bool = Defaults.SESSION_PERMANENT, sid_length: int = Defaults.SESSION_ID_LENGTH, serialization_format: str = Defaults.SESSION_SERIALIZATION_FORMAT, ): if client is None or not isinstance(client, Redis): warnings.warn( "No valid Redis instance provided, attempting to create a new instance on localhost with default settings.", RuntimeWarning, stacklevel=1, ) client = Redis() self.client = client super().__init__( app, key_prefix, use_signer, permanent, sid_length, serialization_format ) def _retrieve_session_data(self, store_id: str) -> Optional[dict]: # Get the saved session (value) from the database serialized_session_data = self.client.get(store_id) if serialized_session_data: return self.serializer.decode(serialized_session_data) return None def _delete_session(self, store_id: str) -> None: self.client.delete(store_id) def _upsert_session( self, session_lifetime: TimeDelta, session: ServerSideSession, store_id: str ) -> None: storage_time_to_live = total_seconds(session_lifetime) # Serialize the session data serialized_session_data = self.serializer.encode(session) # Update existing or create new session in the database self.client.set( name=store_id, value=serialized_session_data, ex=storage_time_to_live, ) flask-session-0.8.0/src/flask_session/sqlalchemy/000077500000000000000000000000001460047617000221015ustar00rootroot00000000000000flask-session-0.8.0/src/flask_session/sqlalchemy/__init__.py000066400000000000000000000001241460047617000242070ustar00rootroot00000000000000from .sqlalchemy import SqlAlchemySession, SqlAlchemySessionInterface # noqa: F401 flask-session-0.8.0/src/flask_session/sqlalchemy/sqlalchemy.py000066400000000000000000000154551460047617000246270ustar00rootroot00000000000000import warnings from datetime import datetime from datetime import timedelta as TimeDelta from typing import Any, Optional from flask import Flask from flask_sqlalchemy import SQLAlchemy from itsdangerous import want_bytes from sqlalchemy import Column, DateTime, Integer, LargeBinary, Sequence, String from .._utils import retry_query from ..base import ServerSideSession, ServerSideSessionInterface from ..defaults import Defaults class SqlAlchemySession(ServerSideSession): pass def create_session_model(db, table_name, schema=None, bind_key=None, sequence=None): class Session(db.Model): __tablename__ = table_name __table_args__ = {"schema": schema} if schema else {} __bind_key__ = bind_key id = ( Column(Integer, Sequence(sequence), primary_key=True) if sequence else Column(Integer, primary_key=True) ) session_id = Column(String(255), unique=True) data = Column(LargeBinary) expiry = Column(DateTime) def __init__(self, session_id: str, data: Any, expiry: datetime): self.session_id = session_id self.data = data self.expiry = expiry def __repr__(self): return f"" return Session class SqlAlchemySessionInterface(ServerSideSessionInterface): """Uses the Flask-SQLAlchemy from a flask app as session storage. :param app: A Flask app instance. :param client: A Flask-SQLAlchemy instance. :param key_prefix: A prefix that is added to all storage keys. :param use_signer: Whether to sign the session id cookie or not. :param permanent: Whether to use permanent session or not. :param sid_length: The length of the generated session id in bytes. :param serialization_format: The serialization format to use for the session data. :param table: The table name you want to use. :param sequence: The sequence to use for the primary key if needed. :param schema: The db schema to use. :param bind_key: The db bind key to use. :param cleanup_n_requests: Delete expired sessions on average every N requests. .. versionadded:: 0.7 db changed to client to be standard on all session interfaces. The `cleanup_n_request` parameter was added. .. versionadded:: 0.6 The `sid_length`, `sequence`, `schema` and `bind_key` parameters were added. .. versionadded:: 0.2 The `use_signer` parameter was added. """ session_class = SqlAlchemySession ttl = False def __init__( self, app: Optional[Flask], client: Optional[SQLAlchemy] = Defaults.SESSION_SQLALCHEMY, key_prefix: str = Defaults.SESSION_KEY_PREFIX, use_signer: bool = Defaults.SESSION_USE_SIGNER, permanent: bool = Defaults.SESSION_PERMANENT, sid_length: int = Defaults.SESSION_ID_LENGTH, serialization_format: str = Defaults.SESSION_SERIALIZATION_FORMAT, table: str = Defaults.SESSION_SQLALCHEMY_TABLE, sequence: Optional[str] = Defaults.SESSION_SQLALCHEMY_SEQUENCE, schema: Optional[str] = Defaults.SESSION_SQLALCHEMY_SCHEMA, bind_key: Optional[str] = Defaults.SESSION_SQLALCHEMY_BIND_KEY, cleanup_n_requests: Optional[int] = Defaults.SESSION_CLEANUP_N_REQUESTS, ): self.app = app if client is None or not isinstance(client, SQLAlchemy): warnings.warn( "No valid SQLAlchemy instance provided, attempting to create a new instance on localhost with default settings.", RuntimeWarning, stacklevel=1, ) client = SQLAlchemy(app) self.client = client # Create the session model self.sql_session_model = create_session_model( client, table, schema, bind_key, sequence ) # Create the table if it does not exist with app.app_context(): if bind_key: engine = self.client.get_engine(app, bind=bind_key) else: engine = self.client.engine self.sql_session_model.__table__.create(bind=engine, checkfirst=True) super().__init__( app, key_prefix, use_signer, permanent, sid_length, serialization_format, cleanup_n_requests, ) @retry_query() def _delete_expired_sessions(self) -> None: try: self.client.session.query(self.sql_session_model).filter( self.sql_session_model.expiry <= datetime.utcnow() ).delete(synchronize_session=False) self.client.session.commit() except Exception: self.client.session.rollback() raise @retry_query() def _retrieve_session_data(self, store_id: str) -> Optional[dict]: # Get the saved session (record) from the database record = self.sql_session_model.query.filter_by(session_id=store_id).first() # "Delete the session record if it is expired as SQL has no TTL ability if record and (record.expiry is None or record.expiry <= datetime.utcnow()): try: self.client.session.delete(record) self.client.session.commit() except Exception: self.client.session.rollback() raise record = None if record: serialized_session_data = want_bytes(record.data) return self.serializer.decode(serialized_session_data) return None @retry_query() def _delete_session(self, store_id: str) -> None: try: self.sql_session_model.query.filter_by(session_id=store_id).delete() self.client.session.commit() except Exception: self.client.session.rollback() raise @retry_query() def _upsert_session( self, session_lifetime: TimeDelta, session: ServerSideSession, store_id: str ) -> None: storage_expiration_datetime = datetime.utcnow() + session_lifetime # Serialize session data serialized_session_data = self.serializer.encode(session) # Update existing or create new session in the database try: record = self.sql_session_model.query.filter_by(session_id=store_id).first() if record: record.data = serialized_session_data record.expiry = storage_expiration_datetime else: record = self.sql_session_model( session_id=store_id, data=serialized_session_data, expiry=storage_expiration_datetime, ) self.client.session.add(record) self.client.session.commit() except Exception: self.client.session.rollback() raise flask-session-0.8.0/tests/000077500000000000000000000000001460047617000154475ustar00rootroot00000000000000flask-session-0.8.0/tests/.coveragerc000066400000000000000000000000301460047617000175610ustar00rootroot00000000000000[report] omit = tests/* flask-session-0.8.0/tests/conftest.py000066400000000000000000000054221460047617000176510ustar00rootroot00000000000000import sys sys.path.append("src") import flask # noqa E402 import flask_session # noqa E402 import pytest # noqa E402 @pytest.fixture(scope="function") def app_utils(): class Utils: def create_app(self, config_dict=None): app = flask.Flask(__name__) if config_dict: app.config.update(config_dict) app.config["SESSION_SERIALIZATION_FORMAT"] = "json" app.config["SESSION_PERMANENT"] = False @app.route("/", methods=["GET"]) def app_hello(): return "hello world" @app.route("/set", methods=["POST"]) def app_set(): flask.session["value"] = flask.request.form["value"] return "value set" @app.route("/modify", methods=["POST"]) def app_modify(): flask.session["value"] = flask.request.form["value"] return "value set" @app.route("/delete", methods=["POST"]) def app_del(): del flask.session["value"] return "value deleted" @app.route("/get") def app_get(): return flask.session.get("value", "no value set") flask_session.Session(app) return app def test_session(self, app): client = app.test_client() # Check no value is set from previous tests assert client.get("/get").data not in [b"42", b"43", b"44"] # Check if the Vary header is not set rv = client.get("/") assert "Vary" not in rv.headers # Set a value and check it assert client.post("/set", data={"value": "42"}).data == b"value set" assert client.get("/get").data == b"42" # Check if the Vary header is set rv = client.get("/get") assert rv.headers["Vary"] == "Cookie" # Modify and delete the value assert client.post("/modify", data={"value": "43"}).data == b"value set" assert client.get("/get").data == b"43" assert client.post("/delete").data == b"value deleted" assert client.get("/get").data == b"no value set" def test_session_with_cookie(self, app): client = app.test_client() # Access cookies from the response to cross check with the stored session response = client.post("/set", data={"value": "44"}) session_cookie = None for cookie in response.headers.getlist("Set-Cookie"): if "session=" in cookie: session_cookie = cookie break assert session_cookie is not None, "Session cookie was not set." return session_cookie return Utils() flask-session-0.8.0/tests/pytest.ini000066400000000000000000000002621460047617000175000ustar00rootroot00000000000000[pytest] filterwarnings = ignore::DeprecationWarning junit_family=xunit2 addopts = --cov=. --cov-config tests/.coveragerc --cov-report term --cov-report html:htmlcov flask-session-0.8.0/tests/test_basic.py000066400000000000000000000004431460047617000201420ustar00rootroot00000000000000import flask import flask_session import pytest def test_null_session(): """Invalid session should fail to get/set the flask session""" with pytest.raises(ValueError): app = flask.Flask(__name__) app.secret_key = "alsdkfjaldkjsf" flask_session.Session(app) flask-session-0.8.0/tests/test_cachelib.py000066400000000000000000000027721460047617000206220ustar00rootroot00000000000000import os import shutil from contextlib import contextmanager import flask from cachelib.file import FileSystemCache from flask_session.cachelib import CacheLibSession class TestCachelibSession: session_dir = "testing_session_storage" @contextmanager def setup_filesystem(self): try: yield finally: pass if self.session_dir and os.path.isdir(self.session_dir): shutil.rmtree(self.session_dir) def retrieve_stored_session(self, key, app): return app.session_interface.cache.get(key) def test_filesystem_default(self, app_utils): app = app_utils.create_app( { "SESSION_TYPE": "cachelib", "SESSION_SERIALIZATION_FORMAT": "json", "SESSION_CACHELIB": FileSystemCache( threshold=500, cache_dir=self.session_dir ), } ) # Should be using CacheLib (FileSystem) with self.setup_filesystem(), app.test_request_context(): assert isinstance( flask.session, CacheLibSession, ) app_utils.test_session(app) # Check if the session is stored in the filesystem cookie = app_utils.test_session_with_cookie(app) session_id = cookie.split(";")[0].split("=")[1] stored_session = self.retrieve_stored_session(f"session:{session_id}", app) assert stored_session.get("value") == "44" flask-session-0.8.0/tests/test_dynamodb.py000066400000000000000000000032751460047617000206640ustar00rootroot00000000000000from contextlib import contextmanager import boto3 import flask from flask_session.defaults import Defaults from flask_session.dynamodb import DynamoDBSession class TestDynamoDBSession: """This requires package: boto3""" @contextmanager def setup_dynamodb(self): self.client = boto3.resource( "dynamodb", endpoint_url="http://localhost:8000", region_name="us-west-2", aws_access_key_id="dummy", aws_secret_access_key="dummy", ) try: self.store = self.client.Table(Defaults.SESSION_DYNAMODB_TABLE) scan = self.store.scan() with self.store.batch_writer() as batch: for each in scan.get("Items"): batch.delete_item( Key={ "id": each.get("id"), } ) except self.client.meta.client.exceptions.ResourceNotFoundException: pass yield scan = self.store.scan() with self.store.batch_writer() as batch: for each in scan.get("Items"): batch.delete_item( Key={ "id": each.get("id"), } ) def test_dynamodb_default(self, app_utils): with self.setup_dynamodb(): app = app_utils.create_app( { "SESSION_TYPE": "dynamodb", "SESSION_DYNAMODB": self.client, } ) with app.test_request_context(): assert isinstance(flask.session, DynamoDBSession) app_utils.test_session(app) flask-session-0.8.0/tests/test_filesystem.py000066400000000000000000000025071460047617000212500ustar00rootroot00000000000000import os import shutil from contextlib import contextmanager import flask from flask_session.filesystem import FileSystemSession class TestFileSystemSession: session_dir = "testing_session_storage" @contextmanager def setup_filesystem(self): try: yield finally: pass if self.session_dir and os.path.isdir(self.session_dir): shutil.rmtree(self.session_dir) def retrieve_stored_session(self, key, app): return app.session_interface.cache.get(key) def test_filesystem_default(self, app_utils): app = app_utils.create_app( { "SESSION_TYPE": "filesystem", "SESSION_FILE_DIR": self.session_dir, } ) # Should be using FileSystem with self.setup_filesystem(), app.test_request_context(): assert isinstance( flask.session, FileSystemSession, ) app_utils.test_session(app) # Check if the session is stored in the filesystem cookie = app_utils.test_session_with_cookie(app) session_id = cookie.split(";")[0].split("=")[1] stored_session = self.retrieve_stored_session(f"session:{session_id}", app) assert stored_session.get("value") == "44" flask-session-0.8.0/tests/test_memcached.py000066400000000000000000000027621460047617000207750ustar00rootroot00000000000000import json from contextlib import contextmanager import flask import pymemcache as memcache # Import the memcache library from flask_session.memcached import MemcachedSession class TestMemcachedSession: """This requires package: python-memcached""" @contextmanager def setup_memcached(self): self.mc = memcache.Client(("127.0.0.1:11211")) try: self.mc.flush_all() yield finally: self.mc.flush_all() # Memcached connections are pooled, no close needed def retrieve_stored_session(self, key): return self.mc.get(key) def test_memcached_default(self, app_utils): with self.setup_memcached(): app = app_utils.create_app( {"SESSION_TYPE": "memcached", "SESSION_MEMCACHED": self.mc} ) with app.test_request_context(): assert isinstance( flask.session, MemcachedSession, ) app_utils.test_session(app) # Check if the session is stored in Memcached cookie = app_utils.test_session_with_cookie(app) session_id = cookie.split(";")[0].split("=")[1] byte_string = self.retrieve_stored_session(f"session:{session_id}") stored_session = ( json.loads(byte_string.decode("utf-8")) if byte_string else {} ) assert stored_session.get("value") == "44" flask-session-0.8.0/tests/test_mongodb.py000066400000000000000000000031301460047617000205020ustar00rootroot00000000000000import json from contextlib import contextmanager import flask from flask_session.mongodb import MongoDBSession from itsdangerous import want_bytes from pymongo import MongoClient class TestMongoSession: """This requires package: pymongo""" @contextmanager def setup_mongo(self): self.client = MongoClient() self.db = self.client.flask_session self.collection = self.db.sessions try: self.collection.delete_many({}) yield finally: self.collection.delete_many({}) self.client.close() def retrieve_stored_session(self, key): document = self.collection.find_one({"id": key}) return want_bytes(document["val"]) def test_mongo_default(self, app_utils): with self.setup_mongo(): app = app_utils.create_app( { "SESSION_TYPE": "mongodb", "SESSION_MONGODB": self.client, } ) with app.test_request_context(): assert isinstance(flask.session, MongoDBSession) app_utils.test_session(app) # Check if the session is stored in MongoDB cookie = app_utils.test_session_with_cookie(app) session_id = cookie.split(";")[0].split("=")[1] byte_string = self.retrieve_stored_session(f"session:{session_id}") stored_session = ( json.loads(byte_string.decode("utf-8")) if byte_string else {} ) assert stored_session.get("value") == "44" flask-session-0.8.0/tests/test_redis.py000066400000000000000000000024261460047617000201720ustar00rootroot00000000000000import json from contextlib import contextmanager import flask from flask_session.redis import RedisSession from redis import Redis class TestRedisSession: """This requires package: redis""" @contextmanager def setup_redis(self): self.r = Redis() try: self.r.flushall() yield finally: self.r.flushall() self.r.close() def retrieve_stored_session(self, key): return self.r.get(key) def test_redis_default(self, app_utils): with self.setup_redis(): app = app_utils.create_app( {"SESSION_TYPE": "redis", "SESSION_REDIS": self.r} ) with app.test_request_context(): assert isinstance(flask.session, RedisSession) app_utils.test_session(app) # Check if the session is stored in Redis cookie = app_utils.test_session_with_cookie(app) session_id = cookie.split(";")[0].split("=")[1] byte_string = self.retrieve_stored_session(f"session:{session_id}") stored_session = ( json.loads(byte_string.decode("utf-8")) if byte_string else {} ) assert stored_session.get("value") == "44" flask-session-0.8.0/tests/test_sqlalchemy.py000066400000000000000000000037101460047617000212230ustar00rootroot00000000000000import json from contextlib import contextmanager import flask import pytest from flask_session.sqlalchemy import SqlAlchemySession from sqlalchemy import text class TestSQLAlchemy: """This requires package: sqlalchemy""" @contextmanager def setup_sqlalchemy(self, app): try: app.session_interface.client.session.execute(text("DELETE FROM sessions")) app.session_interface.client.session.commit() yield finally: app.session_interface.client.session.execute(text("DELETE FROM sessions")) app.session_interface.client.session.close() def retrieve_stored_session(self, key, app): session_model = ( app.session_interface.client.session.query( app.session_interface.sql_session_model ) .filter_by(session_id=key) .first() ) if session_model: return session_model.data return None @pytest.mark.filterwarnings("ignore:No valid SQLAlchemy instance provided") def test_use_signer(self, app_utils): app = app_utils.create_app( { "SESSION_TYPE": "sqlalchemy", "SQLALCHEMY_DATABASE_URI": "sqlite:///", } ) with app.app_context() and self.setup_sqlalchemy( app ) and app.test_request_context(): assert isinstance( flask.session, SqlAlchemySession, ) app_utils.test_session(app) # Check if the session is stored in SQLAlchemy cookie = app_utils.test_session_with_cookie(app) session_id = cookie.split(";")[0].split("=")[1] byte_string = self.retrieve_stored_session(f"session:{session_id}", app) stored_session = ( json.loads(byte_string.decode("utf-8")) if byte_string else {} ) assert stored_session.get("value") == "44"