pax_global_header00006660000000000000000000000064146427334340014524gustar00rootroot0000000000000052 comment=cda65e3da5aa8211d7971c5e795671e94537b77a sherlock-0.15.0/000077500000000000000000000000001464273343400134215ustar00rootroot00000000000000sherlock-0.15.0/.dockerignore000066400000000000000000000001071464273343400160730ustar00rootroot00000000000000.git/ .vscode/ screenshot/ tests/ *.txt !/requirements.txt venv/ devel/sherlock-0.15.0/.editorconfig000066400000000000000000000004621464273343400161000ustar00rootroot00000000000000root = true [*] indent_style = space indent_size = 2 end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true curly_bracket_next_line = false spaces_around_operators = true [*.{markdown,md}] trim_trailing_whitespace = false [*.py] indent_size = 4 quote_type = double sherlock-0.15.0/.github/000077500000000000000000000000001464273343400147615ustar00rootroot00000000000000sherlock-0.15.0/.github/CODEOWNERS000066400000000000000000000005751464273343400163630ustar00rootroot00000000000000### REPOSITORY /.github/CODEOWNERS @sdushantha /.github/FUNDING.yml @sdushantha /LICENSE @sdushantha ### PACKAGING # Changes made to these items without code owner approval may negatively # impact packaging pipelines. /pyproject.toml @ppfeister @sdushantha ### REGRESSION /.github/workflows/regression.yml @ppfeister /tox.ini @ppfeister /pytest.ini @ppfeister /tests/ @ppfeister sherlock-0.15.0/.github/FUNDING.yml000066400000000000000000000000631464273343400165750ustar00rootroot00000000000000github: [ sdushantha, ppfeister, matheusfelipeog ] sherlock-0.15.0/.github/ISSUE_TEMPLATE/000077500000000000000000000000001464273343400171445ustar00rootroot00000000000000sherlock-0.15.0/.github/ISSUE_TEMPLATE/bug-report.yml000066400000000000000000000040641464273343400217610ustar00rootroot00000000000000name: Bug report description: File a bug report labels: ["bug"] body: - type: dropdown id: package attributes: label: Installation method description: | Some packages are maintained by the community, rather than by the Sherlock Project. Knowing which packages are affected helps us diagnose package-specific bugs. options: - Select one - PyPI (via pip) - Homebrew - Docker - Kali repository (via apt) - Built from source - Other (indicate below) validations: required: true - type: textarea id: description attributes: label: Description description: | Detailed descriptions that help contributors understand and reproduce your bug are much more likely to lead to a fix. Please include the following information: - What you were trying to do - What you expected to happen - What actually happened placeholder: | When doing {action}, the expected result should be {expected result}. When doing {action}, however, the actual result was {actual result}. This is undesirable because {reason}. validations: required: true - type: textarea id: steps-to-reproduce attributes: label: Steps to reproduce description: Write a step by step list that will allow us to reproduce this bug. placeholder: | 1. Do something 2. Then do something else validations: required: true - type: textarea id: additional-info attributes: label: Additional information description: If you have some additional information, please write it here. validations: required: false - type: checkboxes id: terms attributes: label: Code of Conduct description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/sherlock-project/sherlock/blob/master/docs/CODE_OF_CONDUCT.md). options: - label: I agree to follow this project's Code of Conduct required: true sherlock-0.15.0/.github/ISSUE_TEMPLATE/config.yml000066400000000000000000000000341464273343400211310ustar00rootroot00000000000000blank_issues_enabled: false sherlock-0.15.0/.github/ISSUE_TEMPLATE/false-negative.yml000066400000000000000000000020711464273343400225610ustar00rootroot00000000000000name: False negative description: Report a site that is returning false negative results title: "False negative for: " labels: ["false negative"] body: - type: markdown attributes: value: | Please include the site name in the title of your issue. Submit **one site per report** for faster resolution. If you have multiple sites in the same report, it often takes longer to fix. - type: textarea id: additional-info attributes: label: Additional info description: If you know why the site is returning false negatives, or noticed any patterns, please explain. placeholder: | Reddit is returning false negatives because... validations: required: false - type: checkboxes id: terms attributes: label: Code of Conduct description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/sherlock-project/sherlock/blob/master/docs/CODE_OF_CONDUCT.md). options: - label: I agree to follow this project's Code of Conduct required: true sherlock-0.15.0/.github/ISSUE_TEMPLATE/false-positive.yml000066400000000000000000000021601464273343400226200ustar00rootroot00000000000000name: False positive description: Report a site that is returning false positive results title: "False positive for: " labels: ["false positive"] body: - type: markdown attributes: value: | Please include the site name in the title of your issue. Submit **one site per report** for faster resolution. If you have multiple sites in the same report, it often takes longer to fix. - type: textarea id: additional-info attributes: label: Additional info description: If you know why the site is returning false positives, or noticed any patterns, please explain. placeholder: | Reddit is returning false positives because... False positives only occur after x searches... validations: required: false - type: checkboxes id: terms attributes: label: Code of Conduct description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/sherlock-project/sherlock/blob/master/docs/CODE_OF_CONDUCT.md). options: - label: I agree to follow this project's Code of Conduct required: true sherlock-0.15.0/.github/ISSUE_TEMPLATE/feature-request.yml000066400000000000000000000015071464273343400230130ustar00rootroot00000000000000name: Feature request description: Request a feature or enhancement labels: ["enhancement"] body: - type: markdown attributes: value: | Concise and thoughtful titles help other contributors find and add your requested feature. - type: textarea id: description attributes: label: Description description: Describe the feature you are requesting placeholder: I'd like Sherlock to be able to do xyz validations: required: true - type: checkboxes id: terms attributes: label: Code of Conduct description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/sherlock-project/sherlock/blob/master/docs/CODE_OF_CONDUCT.md). options: - label: I agree to follow this project's Code of Conduct required: true sherlock-0.15.0/.github/ISSUE_TEMPLATE/site-request.yml000066400000000000000000000025011464273343400223170ustar00rootroot00000000000000name: Reuest a new website description: Request that Sherlock add support for a new website title: "Requesting support for: " labels: ["site support request"] body: - type: markdown attributes: value: | Ensure that the site name is in the title of your request. Requests without this information will be **closed**. - type: input id: site-url attributes: label: Site URL description: | What is the URL of the website indicated in your title? Websites sometimes have similar names. This helps constributors find the correct site. placeholder: https://reddit.com validations: required: true - type: textarea id: additional-info attributes: label: Additional info description: If you have suggestions on how Sherlock should detect for usernames, please explain below placeholder: Sherlock can detect if a username exists on Reddit by checking for... validations: required: false - type: checkboxes id: terms attributes: label: Code of Conduct description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/sherlock-project/sherlock/blob/master/docs/CODE_OF_CONDUCT.md). options: - label: I agree to follow this project's Code of Conduct required: true sherlock-0.15.0/.github/SECURITY.md000066400000000000000000000007161464273343400165560ustar00rootroot00000000000000## Security Policy ### Supported Versions Sherlock is a forward looking project. Only the latest and most current version is supported. ### Reporting a Vulnerability Security concerns can be submitted [__here__][report-url] without risk of exposing sensitive information. For issues that are low severity or unlikely to see exploitation, public issues are often acceptable. [report-url]: https://github.com/sherlock-project/sherlock/security/advisories/new sherlock-0.15.0/.github/workflows/000077500000000000000000000000001464273343400170165ustar00rootroot00000000000000sherlock-0.15.0/.github/workflows/regression.yml000066400000000000000000000032711464273343400217240ustar00rootroot00000000000000name: Regression Testing on: pull_request: branches: - master - release/** paths: - '.github/workflows/regression.yml' - '**/*.json' - '**/*.py' - '**/*.ini' - '**/*.toml' push: branches: - master - release/** paths: - '.github/workflows/regression.yml' - '**/*.json' - '**/*.py' - '**/*.ini' - '**/*.toml' jobs: tox-lint: # Linting is ran through tox to ensure that the same linter is used by local runners runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up linting environment uses: actions/setup-python@v5 with: python-version: '3.x' - name: Install tox and related dependencies run: | python -m pip install --upgrade pip pip install tox - name: Run tox linting environment run: tox -e lint tox-matrix: runs-on: ${{ matrix.os }} strategy: fail-fast: false # We want to know what specicic versions it fails on matrix: os: [ ubuntu-latest, windows-latest, macos-latest, ] python-version: [ '3.8', '3.9', '3.10', '3.11', '3.12', ] steps: - uses: actions/checkout@v4 - name: Set up environment ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install tox and related dependencies run: | python -m pip install --upgrade pip pip install tox pip install tox-gh-actions - name: Run tox run: tox sherlock-0.15.0/.github/workflows/update-site-list.yml000066400000000000000000000026141464273343400227410ustar00rootroot00000000000000name: Update Site List # Trigger the workflow when changes are pushed to the main branch # and the changes include the sherlock_project/resources/data.json file on: push: branches: - master paths: - sherlock_project/resources/data.json jobs: sync-json-data: # Use the latest version of Ubuntu as the runner environment runs-on: ubuntu-latest steps: # Check out the code at the specified pull request head commit - name: Checkout code uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.sha }} fetch-depth: 0 # Install Python 3 - name: Install Python uses: actions/setup-python@v5 with: python-version: '3.x' # Execute the site_list.py Python script - name: Execute site-list.py run: python devel/site-list.py - name: Pushes to another repository uses: sdushantha/github-action-push-to-another-repository@main env: SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }} API_TOKEN_GITHUB: ${{ secrets.API_TOKEN_GITHUB }} with: source-directory: 'output' destination-github-username: 'sherlock-project' commit-message: 'Updated site list' destination-repository-name: 'sherlockproject.xyz' user-email: siddharth.dushantha@gmail.com target-branch: master sherlock-0.15.0/.gitignore000066400000000000000000000010071464273343400154070ustar00rootroot00000000000000# Virtual Environments venv/ bin/ lib/ pyvenv.cfg poetry.lock # Regression Testing .coverage .tox/ # Editor Configurations .vscode/ .idea/ # Python __pycache__/ # Pip src/ # Devel, Build, and Installation *.egg-info/ dist/** # Jupyter Notebook .ipynb_checkpoints *.ipynb # Output files, except requirements.txt *.txt !requirements.txt # Comma-Separated Values (CSV) Reports *.csv #XLSX Reports *.xlsx # Excluded sites list tests/.excluded_sites # MacOS Folder Metadata File .DS_Store # Vim swap files *.swp sherlock-0.15.0/Dockerfile000066400000000000000000000017351464273343400154210ustar00rootroot00000000000000# Release instructions: # 1. Update the version tag in the Dockerfile to match the version in sherlock/__init__.py # 2. Update the VCS_REF tag to match the tagged version's FULL commit hash # 3. Build image with BOTH latest and version tags # i.e. `docker build -t sherlock/sherlock:0.15.0 -t sherlock/sherlock:latest .` FROM python:3.12-slim-bullseye as build WORKDIR /sherlock RUN apt-get update \ pip3 install --no-cache-dir --upgrade pip FROM python:3.12-slim-bullseye WORKDIR /sherlock ARG VCS_REF= # CHANGE ME ON UPDATE ARG VCS_URL="https://github.com/sherlock-project/sherlock" ARG VERSION_TAG= # CHANGE ME ON UPDATE ENV SHERLOCK_ENV=docker LABEL org.label-schema.vcs-ref=$VCS_REF \ org.label-schema.vcs-url=$VCS_URL \ org.label-schema.name="Sherlock" \ org.label-schema.version=$VERSION_TAG \ website="https://sherlockproject.xyz" RUN pip3 install --no-cache-dir sherlock-project==$VERSION_TAG WORKDIR /sherlock ENTRYPOINT ["sherlock"] sherlock-0.15.0/LICENSE000066400000000000000000000020611464273343400144250ustar00rootroot00000000000000MIT License Copyright (c) 2019 Sherlock Project 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. sherlock-0.15.0/devel/000077500000000000000000000000001464273343400145205ustar00rootroot00000000000000sherlock-0.15.0/devel/site-list.py000066400000000000000000000026121464273343400170100ustar00rootroot00000000000000#!/usr/bin/env python # This module generates the listing of supported sites which can be found in # sites.md. It also organizes all the sites in alphanumeric order import json import os # Read the data.json file with open("sherlock/resources/data.json", "r", encoding="utf-8") as data_file: data: dict = json.load(data_file) # Removes schema-specific keywords for proper processing social_networks: dict = dict(data) social_networks.pop('$schema', None) # Sort the social networks in alphanumeric order social_networks: list = sorted(social_networks.items()) # Make output dir where the site list will be written os.mkdir("output") # Write the list of supported sites to sites.md with open("output/sites.mdx", "w") as site_file: site_file.write("---\ntitle: 'List of supported sites'\nsidebarTitle: 'Supported sites'\nicon: 'globe'\ndescription: 'Sherlock currently supports **400+** sites'\n---\n\n") for social_network, info in social_networks: url_main = info["urlMain"] is_nsfw = "**(NSFW)**" if info.get("isNSFW") else "" site_file.write(f"1. [{social_network}]({url_main}) {is_nsfw}\n") # Overwrite the data.json file with sorted data with open("sherlock/resources/data.json", "w") as data_file: sorted_data = json.dumps(data, indent=2, sort_keys=True) data_file.write(sorted_data) data_file.write("\n") print("Finished updating supported site listing!") sherlock-0.15.0/docs/000077500000000000000000000000001464273343400143515ustar00rootroot00000000000000sherlock-0.15.0/docs/CODE_OF_CONDUCT.md000066400000000000000000000125551464273343400171600ustar00rootroot00000000000000# Contributor Covenant Code of Conduct ## Our Pledge We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation. We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community. ## Our Standards Examples of behavior that contributes to a positive environment for our community include: * Demonstrating empathy and kindness toward other people * Being respectful of differing opinions, viewpoints, and experiences * Giving and gracefully accepting constructive feedback * Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience * Focusing on what is best not just for us as individuals, but for the overall community Examples of unacceptable behavior include: * The use of sexualized language or imagery, and sexual attention or advances of any kind * Trolling, insulting or derogatory comments, and personal or political attacks * Public or private harassment * Publishing others' private information, such as a physical or email address, without their explicit permission * Other conduct which could reasonably be considered inappropriate in a professional setting ## Enforcement Responsibilities Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful. Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate. ## Scope This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at yahya.arbabi@gmail.com. All complaints will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the privacy and security of the reporter of any incident. ## Enforcement Guidelines Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct: ### 1. Correction **Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community. **Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested. ### 2. Warning **Community Impact**: A violation through a single incident or series of actions. **Consequence**: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban. ### 3. Temporary Ban **Community Impact**: A serious violation of community standards, including sustained inappropriate behavior. **Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban. ### 4. Permanent Ban **Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals. **Consequence**: A permanent ban from any sort of public interaction within the community. ## Attribution This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.1, available at [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder][Mozilla CoC]. For answers to common questions about this code of conduct, see the FAQ at [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at [https://www.contributor-covenant.org/translations][translations]. [homepage]: https://www.contributor-covenant.org [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html [Mozilla CoC]: https://github.com/mozilla/diversity [FAQ]: https://www.contributor-covenant.org/faq [translations]: https://www.contributor-covenant.org/translationssherlock-0.15.0/docs/README.md000066400000000000000000000115511464273343400156330ustar00rootroot00000000000000



Hunt down social media accounts by username across 400+ social networks

Installation    •    Usage    •    Contributing

## Installation | | Command | Notes | | - | - | - | | PyPI | `pipx install sherlock-project` | `pip` may be used in place of `pipx` | | Docker | `docker pull sherlock/sherlock` | | | Debian family | `apt install sherlock` | Kali, Parrot, Debian Testing and Sid | | BlackArch | `pacman -S sherlock` | | | Homebrew | `brew install sherlock` | | See all alternative installation methods [here](https://sherlockproject.xyz/installation) ## Usage To search for only one user: ```bash sherlock user123 ``` To search for more than one user: ```bash sherlock user1 user2 user3 ``` Accounts found will be stored in an individual text file with the corresponding username (e.g ```user123.txt```). ```console $ sherlock --help usage: sherlock [-h] [--version] [--verbose] [--folderoutput FOLDEROUTPUT] [--output OUTPUT] [--tor] [--unique-tor] [--csv] [--xlsx] [--site SITE_NAME] [--proxy PROXY_URL] [--json JSON_FILE] [--timeout TIMEOUT] [--print-all] [--print-found] [--no-color] [--browse] [--local] [--nsfw] USERNAMES [USERNAMES ...] Sherlock: Find Usernames Across Social Networks (Version 0.14.3) positional arguments: USERNAMES One or more usernames to check with social networks. Check similar usernames using {?} (replace to '_', '-', '.'). optional arguments: -h, --help show this help message and exit --version Display version information and dependencies. --verbose, -v, -d, --debug Display extra debugging information and metrics. --folderoutput FOLDEROUTPUT, -fo FOLDEROUTPUT If using multiple usernames, the output of the results will be saved to this folder. --output OUTPUT, -o OUTPUT If using single username, the output of the result will be saved to this file. --tor, -t Make requests over Tor; increases runtime; requires Tor to be installed and in system path. --unique-tor, -u Make requests over Tor with new Tor circuit after each request; increases runtime; requires Tor to be installed and in system path. --csv Create Comma-Separated Values (CSV) File. --xlsx Create the standard file for the modern Microsoft Excel spreadsheet (xlsx). --site SITE_NAME Limit analysis to just the listed sites. Add multiple options to specify more than one site. --proxy PROXY_URL, -p PROXY_URL Make requests over a proxy. e.g. socks5://127.0.0.1:1080 --json JSON_FILE, -j JSON_FILE Load data from a JSON file or an online, valid, JSON file. --timeout TIMEOUT Time (in seconds) to wait for response to requests (Default: 60) --print-all Output sites where the username was not found. --print-found Output sites where the username was found. --no-color Don't color terminal output --browse, -b Browse to all results on default browser. --local, -l Force the use of the local data.json file. --nsfw Include checking of NSFW sites from default list. ``` ## Credits Thank you to everyone who has contributed to Sherlock! ❤️ Sherlock Project Star History Chart ## License MIT © Sherlock Project
Original Creator - [Siddharth Dushantha](https://github.com/sdushantha) [ext_pypi]: https://pypi.org/project/sherlock-project/ [ext_brew]: https://formulae.brew.sh/formula/sherlock sherlock-0.15.0/docs/images/000077500000000000000000000000001464273343400156165ustar00rootroot00000000000000sherlock-0.15.0/docs/images/demo.png000066400000000000000000015605621464273343400172670ustar00rootroot00000000000000PNG  IHDR˴ sRGB, pHYs  IDATx|MǟHLIBbW]JKuhTZ-ZG5kc b27~Tzssu_!B!BB!B!?`B!B LB!B!VI!B!*P0 !B!X &!B!@$B!b(B!BB!BU`B!B LB!B!VI!B!*P0 !B!X &!B!@$B!b(B!BB!BU`B!B LB!B!V f|⽽Y2f(2e;;;B!?IddDEEߗ/_#G<5{UVϓ,!B!<3˱c̙3OjԨ7o^9&&FծԴo߾-Ojw!B!9sfqrr9sJ9UܿOb_`zxxWYƊ/B3!B!%+VGʁ= x{{]v]|ٱc>MB!BCɒ%L2lٲ:c[yΜ9W [>t?B!BIlٲ˦M>w!^n*ϟ\!B!PظqcME >i&Q>KB!B!Oe&M͛7pB9koYj H@@lܸګ'B!Ng. 4Й=͛gu ;w-#B!J*R`AKƩUЪ++SL<ikUB!B/UV% , f˖-׻xb !B!X ȑC֬Yի ^ /-Y|5WK!B!Ċ)RD*V(Ǐ{Z %KcOB!BɶnZ"""d…=UVlٲEZB!B!:%f f ûn:|VK!B!1F?MlҤIXBnܸaB!By 8ʕ+:&͛7ϒ%6AB!B!]6l(ٳgj'Y &!B!v~_@T.۵ˏSJUWg\2tٴf~?Upl;ww臘2UB!Vy߸ss9ãLtia[[\$o.;L-X,uTyJxRZoZBB)î}B! 摎~.~`,c׏.(Jv'+R)/͆&"mqxS\]%w4o6a_M !B!&L#i@$B!yN( HӶSd$'Sd !B!Gms1,L!B!P0-Ӕ8iJ8M !B!$v\ (qb$K"!B!< %?׬.6io+]ry)&Fa@<[>ZX2K6;#L\Ɏc7S@wo"K #Y\E.Aİ@B!Bm(w\Yyp!$A3i0rKmjlr,Gqq m.3ά;*:^nJKkjlr,-g̙. }"oGȕk5-05B!^(I@$shJ.{?ݲto}yF0_#=FJW29v4ix)bo%!B!$P0LD2+g.CT޼)\e@x#o5ݚxK.R"vT 5RyC&OS@M&Rfmd dSETF f%!B!䑠`B!B LB!B!VI!B!*P0 !B!X &!B!@$B!b(B!BB!BU`B!B LB!B!VI!B!*P0 !B!X &!B!@$B!b(B!BB!BU`B!B LB!B!VI!B!*P0 !B!X &!B!@$B!b(B!BB!BU`B!B LB!B!VI!B!*P0 !B!X &!B!@$B!b(B!BB!BU`B!B `kk+̟訨']B!B_vvv5[6q&'>B!B2p5lܤT\M>mB!B`@77iڼT^C>x.!B!/CL.+.6ꈧgvYxlٸAvlط}_79tp zDFF<ev*Gʕ[Ɂ}{ԪSOS:(#cuGSݩ%{|R8u ,,M[ZuI3>W^_Q6[{rxԽ׻/2dȠr.Y%}|[*U*3eJ| ٳ琽{vFuך|o?}*ɛ7Ie?HB!A"IoXocxvJ%9r|xP2o.~f{u{)PBIǥMcnjzw>O_NYɄUy%]^zU8>Pp*U&nI|ߵ,"WT!666z6lDdҸW,]o/ǹߨ3_dL2I^"Ҷ}G̩F"O8.qxxxfn~U+=!B߀yܘzsSGk0 R]Sg]Bӵ̙3mѨ`&sTT\xQ."V'F:88XNݠ%>>u;99u9sg[ ySNLX6i#$yͼY-9qWS=|@M}`b͖S#I7r{˯ RDFF&. ,SdʔI;V,9g49uxً4ճOkyP_@rʭ|mts]@vxR%7niD &"txBz.]\K%$ c3Oi>`Dhd/Y' 0Lj!NX.W描~"b\⚽h J2m^eys̾^49:|H`Y/>Kkr!$wqf})VB:Ire2Yxnl,nҢu[0vsfMcG]yi J7@ٿwO^FҷDz{1u'B!g -,S/6~}$f>_VI U"8# vۖMF:nq>q#|; v%TPq?i |)q݈ޠV W1"oՊrܨ$Revr LJXMe9*"II`nMZw v`;¿RLYm`OY-TL@5cPZ`B ӲlB9_كUTY=L}Tp]]8B$1Yw\S?H趭eYK*UkȲd維FB$VDjթ׬PoowY}w{}^#6fN<.cGt[;n޲?dɠixhPDI9w,\0WedsZhۂ<+kWcG'>(R\%8䖔*]N%iK86PJU}׀}/H/_|Y\YӧݻsiWL1>?\%sf%҄B!HB={Rښ+TŠ+!}FhZi ۫POlߚD9i, AU8D-"DMRNnQϘI Sވ$d1?sͺ=T1kPH-d7w{n: &Wh4?ȼ935Jy77}|ln45t) fFsi3jtFd PrF6rnbŤD2k65F#ODCZ#;pvv&F0gΜRy*XTJsifn_hHN1#{oKʔ {Ԟ;{FS!Vw#uo(""Eqnް^ ؈Sy7;˗豵hV},Q;F'O>HardqZ>p:p@{GDnYu35աӋ[oŀh I9]tY =c~0#gaԘq*4.)%B! P0дyKy;= "og4aIu5?2dM2HYB_`N62֭Kg#fMwWLE Q7~Gjwpb*]n^W_Kڶ螺DW#aykvwbKG~i;{D]~TV]p C<\kdDu,~qC=&jSQֵ>Ȁ`y{e?k:kov?1Wf#=edͺ^D12\'H #CaN7]eJSS+؟>~$d=},_D^H:9/tF]bֻB?ϝ+89XOs.;GΞ͇!BP0 )|^Rr<̞9M&O7)uQ<=TSd')>xF"Cӆ>m#{.$7/ymJ`Bub:,:1}խk6Aj(F~)ѭ ʇ"zĮQmk@S _ &Ls=L5Or%IkG+M> y݈oփhy=wʷCsis4ٿw5jݮ`"b J.N<0=c[O?J#ӦLאh>8!zgLD<21JUmug`v~6HԙӦ&ot\>ǣ{}tz!os6sD2a sLiΩ lj˯8ʄc29  .[ly#sӜSbԯtgB!`&7B&? ,;lOr%0PVsrRO夤櫲uFc`bxZtvvh3=&"W;/N+)LL{|6zwyMFu4hw;;{#E4iihok ut7_֌&j%1L#&Ctɲ%8#͉1C<==eɢtLL9OS]aAoG֔L`Bhwlݬ 0]E^ݵE! Q^4AzbQn\"U"6z@/$aǥ24 &fZgvNNN*kFݷiO@;"U5V0AATF:}IV 54ʓ'vO}`1vOyӆ׏F0!!B f ռUD qxs2Lck$@:yٷgv1=x 9)AY Q#hc"Af{D}d(N ׯ]k=L4پB""C,xbx[^4kX[=hkmR!|:}GD]&v,sN]"xNjZVo5É^H'OM3`AÖM囯HgԳN/3s\K`&)FIM ]f7h/;;xVO5;mńB!; J vqBS4jn_-h"fipsA4 Qȿ-6P,aD5a~qg=KG H`B|v8iXqKzZZC|嵷EP"urvњLt\?H0ֈ 2L.\Om%P&"Hkhē=Du$oK"ŵuú7ic@p|2`$S BN5oNⵏ(gF0\o6–x ͊0&@"~jawr%(k?s삉H2B3!?w!aʡ7T- `+W.g'wf,̞>UkqFUG'G}`:^sB!ߡ`7 k"OukWKMT0҇F:ڲI}9?ʞ];e3$!|_XM`"zifB3C'j- #2ir̩.۲K퐯t Z?4)h]VlڠӪ giZԪ[Ov.6nΫk0qڛokZ#jQg͘"7oHg ƻhrܝ^|Iݼa]`b9,oYBZ5v{j0 AzF tf~}*5jבgj=/B\Ѵd1LK#\_g"[s4jT: fmstzePr ݫwsfw(:>a_QLs(#u6ɓƫ'#@Z<!B!)C:vu.^8_H=M|W_b6*iM<]fl߲Ylj4lDm$ ˦E0fL5c]Bϑ3nN͙gAzBTHRn٤Ĵ?]Sv1QvjmƯkQbZgj++i,_؈tn)/t}YSQ'Oa`&LH lOc4%uqI"VN2aڬ‡TmkU/K5_KB0=R7=4)MSô@N4!Qj 8h0e1c!eW_~8K01 "8~}zɹ3g4Z`AypgO?K0u~JMqfYҤ˔-'|[tv8[n}ik!a}ڿoboH"4g.F!/t}El2ȘQ?&֩&iɭڴ/>H6o\W&B!r7; uA[n7pȜriƌR0'yFwAA*G=,$T̚v4%LݡY۽z)5=4qo@N@҅4= A Ɉ7i!vzk,@.:j]0<=ǟC^ 4aN':4&@""[7oI LE07|N5‡>vDF47'Q0DiۋEDiQ ќ1ml\`tA<;M[Z#Ѹ>:sCU$y/?90aZDIZit0M nx͸1K0-X43d)˗.FjD|O1ὥ7Lj!qDb . qT.-URiٶFOT_T5RH/99gY# 9ɣ7F ֯[7o&q^SUdvȬu7R<_[]NrIuug$9gh,t4.v_xْe3]M}Ѕ3Hw@pv횦= l0vה')9~#m8*v}R`|ՊF=ia'ԓ"e9J]` VN0Oٙv( cvB!CLDl!B~b%B!e()LB5sM*#B!g f OvR !B! &!B!@$B!b(B!BB!BU`&1dvw[;0_^ś9dtʤDZ)#iB!_lEsH:)ب7yD 7oXTr-v_O.>/7u 2e0]~Ã$.:i!B!$ dWD*YK\sI\lKtx,}g\nܣl\\2:gVQ`#ȑy{%#3֕V2fH}ψ޵fmiʙُxc*W)߭e=- M !3f;;;(LxdȐA3QQO|PxﮨL2M_8s^댙2w{QfcYĚ=O!B`&"HOnR :쐦\GAO#DH dK>`Bgϗe%SF *6Gr\3KvħZ9>#gO>57s)ڪxW'ˡYR%xML,GS'$5|Ԫ]Ol %W/?}_t,UZV[1GiѺ4mR=h@}e/~IN<%B(ɰ&g[S\E*k!>Jʁ-FOJzEGL眮RuYL^CwI0^KJvliJCFvm)ܤ]Ov4r,^{flqM@ҝsfє`+}a#~%d#J$ |$UՐ3ɷC|_'o^6ގ-vv=l69t ƤTY>fHh–#4jTJqZuOr~M#+TJ|/7ڴ kx0򻡲a?f]Ӌ/ɠٳ2y8 g?ۜ>e1wF0 !@LFZ=WJV'f =tL9+SI[$&2F=zF{}*rmZwA]_r#%f]GcB%[ET_\,aWBǬΒFSQq3\qZbӈ[ToWO,'%`9웴3KZ$8 ֆ@<%Ƭ+SI LJnN]r479w|HSԻbD*գ$r5O8%si*0nBoKЙi8gHZ$dt$QaQrU]8gHÅf]CKDo㼸O2dcl]s6Posx(~>~z6>qv2PB֋ Ž4~5T)H.Ըd2Nj7w8`s~M{܅nNRZ~w !3,YL|㚹 uv?iES͈\<{<-XO0!^ިen]ȟ{*tB* <U!{KSnLĝ|#HW$騑"ME9JAqb˩@A4q1m:iD &^/Be# fln]QkU}RvQ&*O͂RY)$H D) gQ6>-iJJv#@FnG6!Nɑ{tNl3ٙ#Uz_kf UH(}*L8/8EZ,Fp\*u,_yzcEJ4v#ftbyuϟUmºϘkfF!vʰ[ެ:Sk'nZHJr\CY\sFqlXblF!~NW9qt+F%Auk`\K}Eh@}-Xs"4kɓțݲuFY`;{YiFG#exU#hxS%!gHe#kV@7G',,,E |*y6Q[7MZ 42[kۼqx lxƟ IE(_Rh15ublEFߺm{i׾?~L ݍp9rJEUb!lV,Scƪq^f? ߷##ҥ,j!kޔv:ŀFJݍ9$)ϝ1mJuz Yٱ}{}6s>RL s{K箯HS2{4ٱmF轟I#m2 ̚c| {3>] M><,v}u=,_Hdvswu14f>koKQsU v쒜Yw\vkx_%TJqz1oˡB!O f2R#՛MC3wi-E4UE)ٱ,Z}iJ Ҁ!11mÐe(ilJH+2c~-LQJg#fحjFzPQ1"`nP q;a=nSΉv4R?2]}ڂAJu(3uENfS)Zv"/w{S]e˾rK֯]B]l9Y/`(43߈rFd}ܯ߻["t7@^kd9&zJ5z:fԏ2qoZu * II`6N̅L,'N9eؗS'BqN1>Qb(>>\fF~'Κ(iMʾTU?G!3|i;?*E]|NnhI3kUYC)4y;|7sxA6 ^(|̬Nsz}rT<4{]f"qVyj2\YE*n'4&11 u/Sq]3U,s68 ]F%' 8fϞCǴpфzұuZS8:8j0jDao/A:% 貁IQS\4>8Ax(xPd"pYu_-gWd.nd A9U'!3ii-^#5u^rN7v߷;O[0vō{.Ux۲*HE}J4Q*ńD\-?FK;l,3G.~X`^Qz)sZ #Itж^џ7[3QWZ{@MıC Dr~" ICuWPf0Bcit׌\~Hk1VnH[~h^?qEӀ#LBc^#y%М+cR\of͊OD$!lL5WD1u >8hs&"HiN`b F 5k:F/UOZEwf 2hJjlyn3Jf3dd F2ժ2r*dÒ"["!YPwΙ1ME&Z2:u|RFQoD2;"zt~DGG%ի;,lpbr`ٶusQJ4yiKɚ5`///F?gM >:::IFѿ1׮Z^BC/IWNo)T̚6EF~?˺{d?Vi3sFO;?UՐSgi kiDDڛ D-2K|#Emuy`_MV0N;WNH]3J!*dE07q11*y[VaH{k/-Of؄^ gJDְMʦG0!UɁ u~))YX8,CD'!){:{kҎI|wz 3r p`ރƴ&7Bq}+B;"ڊO~:Et]fipJb4OZD}aFMdQ{~^tQu6PYt# fMz]K525N5OTA^  #B1&1-y1,MzܺyӌJ e+wn]L= վ,j7 &!P0Z]wx9Y97Z6] ,*sV2R͚ZxxO(xhz^})ب6wA-vWMIN.ZkùZ-lAݙhLyB:)#E[1a T_gMDԴWiT 3hS:8']^lk/Dt;y +6 7vO,uhNcz2DQt;ԺGr0nHK0CۊCVg8ou?o^M7"htpMO#$2"b*-ZɚU+E2$ۻ;qU4ri^ zMk:bk# FU:IJ , ξG!h`BWK1шN4 y9j^2^0oBwzkq>*5ԓ9rh.Y|W*;ok_ stclvbD9= EȎ0ux2s%ڻעLB!`&#Yr;Q.;)귔]z#{e%*2*k fB:g5"-eF)F87'}9XcoDŽqZQrȷ:EOiMb;5 M~ˈokM!ôi:~6}8iШ̝=C&O'~iJme 5K09T.ao⿵^qYϓ hFV\kLʌBotW*=#u֗ÇGh=<仑?KZuei'iW] bCܜoEENC/[ijܑigzsʏ'Mi6MYMU?v<BdV0]ݳi2Um#&Ǽp6H k ffwGM),JuMOenFk[Fֈb&iLH./&v1EYHbF !K8zIBqY/.+"5rjQ/w|:@gŜr"aL;2Xa1͊-jФG00rl;;sڡ-`L;ri^7pR*9D$Xr:Vἆ\򕽤_F?>3hHqNϕ[D&"xфlk&@*3N\1ZBjhIZ`ڑFsK& &ܼmbٵsNQTT̅'Ut0IiJm{cgWyW:^4vFPȅ ~3/QR9FR1'x\F:j#"Lo+T$Yyz#ǘ[@BRp~֝{?O:X>iG;sZ"z[H{ɒccdHq;/ܸ~9cL¾-\0Os7|^ӯ7zi5?ѴiD,GW0+%;EղB! f2,IƄ 3 )@)V)?H]mUF@F h!xjaKZk01Z>#XGx_>G/ F4(y0:r^PO҉cINvJ+wiL C gLa殔7]`Y"R?D1-RLJ{#z8FD H]Hu4>(jz9t}1LPkUm,n~ Qkl/-ҢWMx&6q|ϧeaV01bŊUyS'k7͵MEW HqMxi~ ]d6G#h)̓h'|X.F.IΜ^ҾӋҼUmm[lbիˬSq gu>Η2w#躑0aLtsMoly3_.Es)\EǏ[%ԬVQ+Rfm _ t.2elkgN/t-ڈG:o(:k߿)gNL.AdٟЯlٴ1`iZG>Qc>G2:aZsB$`&"3i.8|iɭ kh 5zU =n,E0]f#HM#WD҃B]"4؏sF-S!W^JDYtHz}?jF@Hxx޼qC߃(D7ڱQ;#푓}.+^*O2{oYʖ ˔ݻvA1eˊe|V2>{v˗uJ\;Iþ!Re^G}{w-F|ը[eľi1c|)+׮^UIźK}̞C.QؿO6[V$sok 3 v;z=K{o!ʑKS:1w,1'04, ]>:"AN3>D7(1ݎHiz !k@LF:k5F^kft/VGWjQ[O%17:"MdbXD"M\! I <) 7E$"*F0i#[Y'9+:˚}@$kҬ'E5"~(KzAMCo B 㑞> 5P@4s>He\u'<)E&7B )}p$I999i5:>+x y?pb}B!3!}5ppcznDW<*.8+Hy:PA#7hYTQ3auB!g &y)J5V@S@+,J@O<Y !B!Ii29#Q!ڌB!v(&?,]"B!$P0 !B!X &!B!@$B!b(B!BB!BU`B!B LB!B!VI!B!*P0 !B!X &!B!@$B!b(B!BB!BU`B!B LB!B!VI!B!*P0 !B!X &!B!@$B!b(B!BB!BU`B!B LB!B!VI!B!*P0 !B!X &!B!@$B!b(B!B; */AI[QQ@N D%TA.x@@{9{ WIIIIIIIIIIIII%$`j(EN*T61U,2"N8J_~M~\yHOOO3W3 sJҤMKv ;s"VWWWl[dJϟ=7_3_!URMС3'Sddd;cC^^dۯT%SC0tEٲP,88tD]Iof\MT?;rh?߳<=<~EQ;o6q}-msM:tԩMh铿xR+BEV4gRxZ’eFFFԺ}'/QCNKJIIIIII%M05T~C6b,g@#ԉcIVmSؘ巣2юh5J'IC3LqFա/!|_Pdhl/1[g4IX"B#'Aa_BڿeJRDHbﵞKdfQ8)|_w_qIƄ*CTHSDD8ݹu=NMӧx515L2/oe GzxUu֓\^ 搿_:?#/Ym !7ח>YRMiI4j@:}Dy0>3`0E؃ ͚-;UZ] ngOg&-(X>ϑTdF%J3B3/f*#} @őmLv͊2pM" 6H 2*)|} E%_H6 #֮Z&A;k0`׮\f#$>,\@s|޾)Pou,R̞&Aݍs[}}}o UV ݶiCX BxzFMF:d*˗t>u<=`onր|}m.5n֒u,[||N9sgwr:EDE.mjԤ9/0nH'O?C%[Tv=*Y0@2yU>YЈc}] ` PԼekmk{$8֬\JNǎЧOdeڴHeʖg WK;!{B#*%%%%8IԐa!d<:t<ُ1 +gLi)d]g>AYR۬/\y><߾SޚT=3o(} 1$.8Coҷ+ykﴴg .~ٕ/=ۙB7VrWʏa1ɚ}Kވ\*R8"HghQTbeڶّu5#Ҧ h/ϦHj׭O]zf3|P6MTzzw_<.Α'SJUL]۷$knT4.Z/YAΗ.иCmB4L p \t:Z0g&?IЙM/}wL8hߩ/vm#{gOU蒪k~B'+^ʔ kWэW3x.-F257@M: sgM +PzMX3?ߏ0:jWCߏyCz ;kh(moL@y#qss<=%c|y{ОS oS&ͨk>4~0:{3x2}`?1PbT]X̾x3<P4QdzU<0JT|.<841>oF%}ƒiY-X3Ơ.=*շdOKϿח\(7zr/5ȿx,92VTaldW bpʚ5ډ{ř"c {woӞۄAԻ@a4#TfaDg8z:0,f_jԪ˹0z0б1.nFTz q;lѼ_zh .J=zc:i=`aԸIfCԲp/Q4͘2DmTrU@GZrJUՅ bx1' \4pHul<޾yM>>=+cV^A#s'rj˔+yu/`(K9p| Er[R^}"Wn?{:= qNU~`ⅳ]|b^ /0801:_f=bp-븃pk1wʖH3MdPIJ @pbTxs7n|2%I<*o5a+Tbl:zXA&loX m XH\렡#hݴAE.z{-j\j5xlܰ>~]g+ [\T?ӁV,YJs&-`hq֮Ћw^N c"g.|@N/@8d HjLoԄ Oܧo@.bǏ}ceZnG;oyYPa'Qq=L=ܶe#="<,=xn+ݾcW;3A., U4pz!],L,7ZߍsIr/UHŅEfkjIGI %BK-OT#࿖g/%%%oL %0m2Q%(Kq z~!up10SU;*79|KԀ*y5CHS y;t{_%zWYҐ۩dֈrUW^ЍC&.kiʡQ:7UWEgPR&V_<rTd0pa].TJ5;xҤ10)l'F{(qͣ-r2`3P n4u\KI6{806gN-7гpcO!1n\*; ^pa!c-ϟ>3l0fY+*s+1B.b>D@0,T\9bb8Ȉ79eװYw<Ǐ('<E?j@^0J$`j`j5mJnTzTkns oI'N3v%),0KrQ.e9؃T,1ɜj/hN3ۙh- x `".^8F%ثӮ#9u" ao\K]0j ̻Vc9J0TЍO:tXoƭT4gbީ-C̩W`Q  ozilkV.+ Y3Zq+9 bx71WY'si*`Kܕ-_޼ŌBż@h ʚڵh!G؅'&P<7]m h%O$x s``1Eeͤ&` 63\BUNW0P u3PE3CEVTzEy1pY|Ci@Ʋ}\sŚ|W.[^jua;tFkզqᮮLxPG h(J&35.ck b7 /ǘ<Rt\ !rkHǏfCx7yЭS~L,H ,pRRRRIL %03Πb9&hޘxGB$WOtc$`ϛ0gy+ D7),(2FԡKNUw2ʐ:`:-l%sT:u8m5<.>)}0NaXc7ma_Gko! 8J-yy.&9ZXG;%98@@L]0 ,\B8i3i] /eM yh9PWT`B7_ Cϖ 3xuj:e:|&ha5iފ`+[2gJn.r".hݸm7{QHU+9Q-Bސ}Rdh`H<]~ eBA.z dosV/۷B8'w0m@[\C{ԅgׂlxƢ+B5}ݰխNo߾+qn#!<oG1k*މJ@1 9W]9ȿ۲A0³]۷ =0¹+jխysfLg!`y^d Q ff*/ٓ Xp:q6:Uv>Qm,)!(T眙S٫愩3=0Y㆐ m`l @Q"\l dJ><ժפNh6,) /'`_ Bkyq _mL(`blӊ"c&\p<;c`³,1s \{u1/'~wT%SC LxAh<^~PAh=Fr&"=,)]ns22O͕cDeex`(4QL w[f Y4lb De5(W\V^Jr9+j̠Λ,ZG\XO*6%ٲgF*]+sǿ' \=ܴ}/l͘> `rKh %7 eVcwdJ2;wDepٺk?W! dpnײI`#r aILwheL…4TGvԸ7(6%O3B3:f" p_@'԰q3w6_3{v ּqI`a1QFEJ9]^FSUW|f*xvn *2FW/ ,xJ=k=L `(DMw*Q#gu cHDȲ=Q:19BT-R!Y޻{|%j Ź'OT$SC ̔HX|kX| m: xrM ,1>,ҩ N~xEsD> Q^rU'{Э՗z#[z@U"{r x@A0J\;ѳKּ4|*v /EيPu?`0D3=˹UyxC 00x==iɜØT r0)4Յ"6s,eBk)xQ0$w<%}2fy|"߇לi0tWUU>^=s*oo]͛uyNMesi1Shg#*p BPO#n\OZtL+(=1\ w?(@8J`2ܿw,#N@*_FQ`KV%Pd|+6u<.TAk re 06Qh|.(s~,<=(,Ҷc' t S({Ntʝ!H֨]֯IAy(pqq_ yhˁO%Wr΂%bMbWJ=zH0ђe\sPߞvܣ%+r0B9tݻkܷ #N`b_>,PÈJ8REᫀBB7;߾}F 6 0`ld"EBGЅPcӬ⩩!#Fs!J[#* -JǏa?i:{ѾcKB40 uyFPQo\|-xQeF:@aSg&cL*^aExoX֜7( 4i<8>jhk|ԅ7`_a¹*DX݀!`PlRq)3)SLYl69  iU4 ޭIEn.@EdYf08;v^}R-iĠ~mG,BVQ<ߗ&Qysʪ !,O682*rTVP݉:[9` ˅& (ŀDΎ žQIrjt ^3>T߽\Zġ&rQ_Oa#+?We͖&O _x} ǎ wpS@!xjծ`rbc-]:נ1b:#G i a]۷CEWT#/5+uBWߌK`(M9x Fuj[6  R-}[& Ow;ރ-cX$Z a3&O`a!=5C"aԣcq^O0:GR]0nNƆ- JEm `IO ls9$ 4 yqoaӦI˞M00MS:q1<󊹠 0FxN(.@+E?Za#Y a q[ x:{ڤxChV̛6hp5 ^[7{t܅TTY8C77-Ć^4k,[zbL]g,ᝁ<@lse#uQgaysnӾDz% T9X)ʓYzs:rݟ C8; a! ՑdưKē u!yF"`i'r¥(xO Ǜ[ГǏyN"7T߿nOxa(zv\t qV轔T$`jHoߣK 鉅iqXK'`"lXHv xGNpޥ#>kTef&BR^qJ(bTg zuNJ.Z4(D*ې7ty![SJV:) Jo]b'1}0knJfF+Wڏ*Dwbq@AFۗ^ C >xMϻw^i !]`M?c&7!VQ$a`ń3oݮ)b/* =S1U_0_'!5v'y 2G!}&%L<J뗆(, 8KuB <#v/\HvqRԵGܭ'?zFYEc'jX+"_#J)BTaڄży97- ĩ3 2Ԡ^(&dkkGǎ9c9/ϟCJ W"WVLx6Q]tQ04oq1޼yEN;5j OG~bpFODlډ\3>zbWz@!rc",^ÍhgRg~;i= !pTWRJJJoJo^}U VzՋ $VXmب)PFۘݿѠ߻ڼk)c]6ҒIi&z){3fL=^ ׮б#2dzRY&y RF)Dю[sCn1kQ*#=R]N<nMf9Jf:)؀gm^rUb܇P'5gJ>=mٸ._<)WwBG5 _Jy|2\@r)ڶّMёCiͼ 5vTwԉ?rr*QIGrı#~]! Hp*K4f`g]{z ӺU>VRϯaԵGoNؽc?r&2eQ-:_~^ChڶA&TRJ6gXˆǏ4tyf,YiQfa߻V-[?"E4_|>{))))))-!0CBhytxcTWgϮis*1<0L7}HZM]D7]#oo(a:cj ӫ/( {(EEg>}-eBub%kTqtmw̦ʗnI^7_'e̜9ϝ9ԩ׀K6CP``5ruyI'E=/[)Z #V]1{YYʥSx&-mXN=G1f~^1uEq;// ͩEv9t ]pVYMeӑXIyԧ Zzmݴ97lB o爆]})CL+S se!Y6E  PVmrsu_uϐt3src6hԔ*WNwnOpDbK 8<5u&Ss@z PI/><"tcyr9PIAL(Mt֐tS'TQ\i 64HE_c,4I'+GSDHf-k_|{N/>QX`4O?3%#0aH̞݂ 7_s[dd+Y Kqyi `{GϞ>&}}.h&Ϙ#>f_tȯQP9sʚ2eLaaӛ7("yV뭅Q twskWҋb}O3gccK&ѕR}ɓGTVqmyZitX! d1=q&֮}i^O:mIAA_'O^ʖ#yyxpjPP[1'ڱG?< `P` A'קdNJITd?7q_.ܗ AkSh0 Ⱦd)Hbl};Y[4Ҋ9уh~[;7(1ZCobGMQ&O=wp}۟>D/e*M1a E3 m 9 J橑SQ ]y=?TsMۜaT03P)G9-9GNL/HE Gr6zdaPL8X ]7 ۑ Vmsq!0_>2_<yT0:RbŹKE(0`a`߻{Ux d¸GTpOGʦ(a<9 žvD6WiN䋍7 kԉcn߭gjݮ{X^7WVIy»VgO9хsg9o øF:Zl1O"ՕCؖ6V O]rti" C9w0sЄ1#\Q~ d7ev=q|hبqL<V[ǶMt8G`P?zc's<*VCBb=  b>!O܁&_.%%%%%\&[6[7 ý]5g_V e˳gU4l )רIs1f<]vE5jظ)b8Ã{w9<cSA#?z8/2 ~Gwo$_ߏ(Q|E5:Q@ﳧѕ}OͦŋӃ{wٛ 9c&FѢs;oXx䵦R Hsٳ 0q,;r]C}5c0(r}p^y{HbBpasX䤒pQ蝀OitqFM[C4TbZ&01t*T(/`|? @_dj8tY^ЇEUViOSᩅ+ʢB(\sg`nZ0`x Ԡq3v2??~ wV}W,߶e#߽Kw/%%%%%IPBlpяt\ag_04AߌNrf:fE:L1o&-9 Kz NiD F~.soUG#d۬ z?`OɺN*ԮE 0}<B> 0.i)+a3*,|x(e,9gS0SU;]ن¾<>zJ*& [P`A?ljcGV$wUՠ*cL 3n\4'L. O ` -K MΈ "sg ѧωN'Y6Biް. `ylVTc%In˼@< ``o$MrЁuT*ˍEժ㞮r!uPFc|⸞q `brpߞh՗'Oo^a::yWS9z;23`s"NyP<ٲeTP Ё}퍺pۗ|my 4x}8QRe;q*+%%%%OIykQ$Kb.ƐCtH.Dry҄p*=*YV"?vޢ-@Rѷ(~ܣP0毜?p\2,z^15ҐXL|3_a_Bi{dY=HzFf6@UX4n֜: `Z4o6;SYh164_>&Ӣu;ا;1ot"@o__\×dxNPrDna|:x \x~ԕ2e*6zs##CzR6Q9o]8\xg{'Gp6"^N'-Y8U* @ aъ9TD8f.9OwQO)lޒ-]E̠3Lc9ssm؄WMMMnQT,EiqwUcp3~ |\PM9Oc޹[/E8KbO-WsǶً"wtU쥋rO_bKr4F,wlB>CSxX{u)5}|=J(`bNrN*;7dŒĘsd+(ڃ\^\=} kJIIIII IPB4ZQJTd5 CBen0Y&弻0O.DثUdߣR#E0"#bQ!Il/hx8ޏߩJ .7^X>!Bd'NANGмyޣm++~?zDabO0޿y!ի#xzv+%%%%%$SC*ȇ,޽<:s=/矢7\,*"xNTC)us+ A9_ӶiQW>{SN\8;bT(2|x.t6Љ3eiJLTD*-|}|⸲P' *SЩT HBOME9gRn&rbݻr!sT|%X*2v# !8Yb6x =jO&aymQmJ(`G~98ϫΗU_V91,V$թVq DT,0hA!h̄Tl95m"(=Pu| TM, ϗ\s6x4lԔ=mu*ƾܾ&VQs''=;Nx;#  fҖDNz-@yIZjV}w-Ud2UW< 4ɖgqkΒ7$0;ח/0BxwIE7`0蝀)@߻69E>KBH)@l6mZݟF-BB~x0QD3ت-|%yx?qpj˖I̙I۷nո^zRG$fmܽc{dUdڰv 0ׇKE/R@h6m$ОEfUd9 2qoP5F2b ]>6cĥ?X@GvHPBY5hLgj ___]~YÃ:dء+Z(x9W5m2Qd11TݱuQA[b%RO&_sHÃȅrx:x[okqD^U 3"8nL/+Eg"{ZP%0A1 " GÛSC>G(G镛 08#O! c#T!P, `hє EEFsAѕӾ?r``<鯨MڵlS"¢+ 526b;16*(( jGjS!v|TeTuP_]^#?[>Zq )))))J05>:y4?{VMBUpјJzڍøI*`3%sqx$JjlM|Ɵ{#@A'F^*7{fF+r>0gs.glb0DzEDHP0܋3b{››A1YVZgo OchȆ# _ʞ2TVránW-&`S€Fn*H>B%zH! EUS20j?ܸ?Qfjq.}͟ьV hppnʪM֬9e;xròd (8<~jK.W.1 Ch aYU}m|؊"v'b &zp< (~>>za̞Yb_zE ZC)ػ )(j`s^W6SJj`vHg}G|ƎJP@¶׭^)rqgm]gsGS{-@i E S+O^m )@〪Ÿ)R~1IdAcIJ_Ϳ_lflS҆>x@c P!/0,Cm, s. xW /5<ߔs)ujgзo%P`"4zT7jZP/ľ~#o\F 0L/2@1&^8{F3)*BYlA*g>'<`x-?X k^ a>Y3kjd[Kaw%%%%%u)4qoT6ք0ȰDTZ*ҴsVںyzҿ)B I y/A_mg bǖ|;M؜_:RhaI< $$_p> ->J% |a?LvsaVT/qG~`EP9~Ǐ@\ȕ,u?;q=|r#%!3+skC_;?[I,-YE }{v۩pϜ5*R? h8`W/_һwjP^3d޳֮MR7xu-?[-p+)))4P[) G>Q5G?m,v֓ʖD1mm6llrbZ`sF77,4g_|/_O84ҌdJLΕ\ӛty;ze&f):}}A߃)cqmAҎF20%#/׸߯ ?]l"/B}@IJWVN,{o޼𼋌❈?G]dqR5hҌfML׬ûhw1v6J3kNޑx?zRgMMϷo wܸƄg q vːݸvE 'o~2e#? /_T"Ũs^:knBv0fLHn'IRC{4ih1qb4l[N:AuCM $IRKV.R֮ZNǎPZX(^4UY6{pQ~ \35}I3P(cbҾ=z%p`2b:z mߺIBrCUגԐsg)/<(mtTZMzu:X_;cACGQqC}ϑDU,[@~Ql9B 7ٵn %Jj5jƒOiKFmwJժSJe=O"[@`bvƔn2οFOeӺ5+ 04/wqï%0NWV!)~FGrJ\q5z 5qo+kC|vTaf] ֎0^Ys>rʗ9;YӵuήQ~R҂}g  @mٴAgHnն̞1I琍 cϞ9cBxjn??2*PVmڕ+4n0Jf/XJn^ч"t}++kʝ//QIN3 {`:go|wJUkȻhMjCT evib(=]93sQ~%MΝ;;Z4JDVo6ђӿҾb%JQK4r ~p,Y,5iޚ%O.͛7hʄ1t[wt,=O#O뜎,,,iͪ4uXy8qfz>K%M& kW<@.jԮKu7 D+W/ ۋOO H2͘HkPK%%&4e8ڷ{g_cTˀ隘5/ɻ{ÓdfiN EK@} pX{f^K(( 5VTaV]{9YYQbi1G2z9KLus ^cʏ?IVNCѕUgċ'ձk*\8mٸN (w|ԮcW{6}>ϜH2qׄȀ IhP^t֍0]nҟZDH&-[\K6 #t}LĊeGu7r+c=FצCgLڬS3Q~^P|7kmٴ^~]'k7bs#7u˶ʥ4|Ȁ0+VF5' %N&; ~LS%|JU?O+AڃR>ҜS4)ϛTT0f]-e44xh|,F!PVTh 0tϻVRRR]Ri%e2@B3Lx6hM*5_ӎ yI~xsB !cmǦS [KB}ы<~sBn$$I򤠌5 ]xA :%ΙLr6_J>מHM|7;Y\ a9P<^np܆;9_Ӗ&S)8 툗>!;]PyN͉F68)ћ/>߿ } B0fx0L- v0S a@EpQ6*W!UO?nK3ݔ|N\9$LS`@s)p/k欔)s+xCI;#.IqSB%j޺]xFas\2Q]ِ߳|wn\N&| [ǙS4Β{)|91s(}lbpd~C/?ܿ' D0J=}dNff<7#w}\jMr]r޿gs>~"'%Ox౵$փۣy^L̳ UW}t}&m:Y@>rnQ}h^z3RRU9JZ#=rNpɄ xW퀷yb}X[H<ϼu,aqI)O؆wyyխ!%%%%,`M@kfYta^tK*ΩO6 l= @iʹPRww>t~ zvg'%Z3jncA (N' sW]] xAILurzs%ikf>m2?By#GWΫ1cc3Pm^zBPLM+$^BfD6i&^eУSݻvȻ!7 E2'(8 ˪eKzG~_zg22J5)}&$7_)1]Yy.< -6%eCյě?CB;@GĻoXVtsE<o0uRLOwё; -I@P{V:drٹǸq?'8u$䶡?>T}\q輘}Pp~<@Ly'Ё} N$ǥf |` Ev80C=3{|e2>$bo^9apߘ;xZy_^Yq?s{?z)ЀeJ0ȭD֮Zg bn`,Pxά鴗AWf=g!(|Td)7xfN" >bJǮ=i-2G,a~?XHW@5KV)~w5 pXT6;j)0aDlבJ,CCa 1?ZLc?,e͖r# y܏<];rX^xIJ$ `"!m |csv211*[NL*db/wl,X̕*S^輤 :F04dhyaauX3Yڳ̥H1 `xQXdȒ5;Ym( e<+6 Ҷ}=s ))))`("*~oxCwVpU+(3nMqR ^^.aB q{?}B4T5Lx  JR)y!c*=T ^Oڮo@{ HF0qT%QEzn=x4LE3s#|[۴tmR ,/ܾn+ '6M/p例C`#a^+k @3_֫1g2CcMW_s{y^̰FQ{tzEi:S̎QjR1Ja ^/ņmOӮɒ1=/^Jd˙KG8]xCFbtP|#zhACɋ xIlP*S10a4L*2/xZjV)29v Wlc.gLiy^J14oݖ'v1`0-7H<@c! {wFIţ%t$ O''s0@;_:s[&%3]fx%5X͙9Mc&N*];sg3ګ@  S2 E@ `qWG01ЯZ.[y0OjK!ḉ$L9|gO˸;ۥgMgҼ\y݆Mhղ!|nCDN1`].ocFgWm؉2)M|}YCGo!(\kq W -BcXǐ0RƪܲEs-<Z%M[凑ްi )P q3a3)x~(V<_/>Й o5ľBÓ2ejʼ)x rՂǪm&:'ՀE?HB<@WΘ+`-QG#~oD2vO`\$pҴ95n(`=ڎk^Ym >cqA/`YM} aAќ'W #bӰѤ& 7/V":@_h[xpN(xZ(> b~`^ 6uZH&kx~1gk59sV:vRz 013M06U>ئEQ4X[|6^¢ȱdAE!'P^-Q̘Gcs2ƾ^Ʋ>JJJJ[ 0 DȤj%+} >-YPI@.T^*z){P= SDiʢ^{r~| iaÙ̳`umy3 t"|vqo~ۙk  Oۧ-o3՗f&-p>;eΒU<tLX@wiZ (cEFD0@h-4% o>W4pH6*HaK(Ld8uxyZw-~ `V)9z 0'0`>`2 5N 튥C&@E0G 0Bwn 6֯VڸY+]rb19@?wfJ%`F0 0 |B6iъ4lj0+T"(0G +-G0g ,R֭^X9uR`ڇf==@hblXL|ÇP\l:P PiBN2JZTZ(lXi(F0Q[d=?_CBww:rT ș5a.?\UDC po>ۆ)Δyb{"*-.´eGy'~VJJJJS 0 _,c 0sw(B)|@GU_0"=fPJh)a$R&ѩ h+eo_Ή-P0S?]hR`#Srm򦒢=ڮ-_digyLLY6ת*T| 67l"!+pGhÉP0`hFR;ӵg6k74jj>ضۆp f /a@~~`VQ[r _PBdϝ9-7 U{.qoE 7PFxӆC QBE /aK+پU3zLyI` ҠlDՀix8LQG9s1 n'$D֋ fLXԛ5eT#֫Ty6L,!PLTn]z{פi=YNRu?&x1C䣢 s01޲{H]&Y#|yYs;UZM)bP ~ڹ3Bd'`Jl9rm]{6t@_yQZ:RM[kSf~昦4!'xLZݫM[N'ܱQRRR*)40!*:NaO7Peu7E0ULgE~gXH;Ai۴C~I^JU:TgI;NtFөBERB3KH2€_}]@mɩ@ϒ?(Ϧe\k*6l3si]>B(z0a\+(!˚׷K޲${M3VEސm:P%dr#Cފgͻ O r~x {6CgPhSr>PXP)?Y[8{4 EZ(T/!'2 >N */|&/Ї.|Jd'\-Yn@՗8"y_|%%IhBQdAh#m 9c&N{1i?Y2Q>ZXb,aЄcw,`tK Xږ;(~=z=ܑBMx1/f[Dwoߦ΃AǢP ^+8/_.{کMesg*))) )4Pd-4u/n=Q qRǧ7| IhGS|=9@ Dlˇ*0*`#یa_JTNO>|cʒsJ~^ /BaNzTU-<\KSu*OdN,9#=jK|ݦ9ӹRf)vpa[X9We=h>"યŝ) enBrI$| Z?L0`ؿWAh׃:bp>TDo۔`D%SO0Xq3>Z| p!PB%Y@hfB0Kզcgz굔7&}@-6ny "=(%YRU>&N)l |3rcPİ\9dbj"z2a1&T~許FU?c" ԅI[7 CUʒtG[ s"ۭhEbZPΔTzKW*B~^ѡ! $胯!=KR"Gn `J.NuK G-~~flT9G2_QySMIRD$KldV~jڕR#b_xa.gmBP2P/T,iV"| F"3B2B }",^Y? Erݻ20D'p= a a˜BL5bH`?x(Hq-F߶)J-ԗ=9 j㦝WJ7B^6~~ ˱CW_1mظ9b#^3,^| x\}h{ Gb (f,[1 AH<;\HdX6L*@M<ƴ){ ΋-A`b?# `E}*0û po`1vȫ `"T&-`{[tYܜs?? ^T,!trvC5!l- QVH7>|~x}y}}'€ۉc? #2a#lsR2f8?kXA0Z_*W)) !ՈF0BSII)R*;*VU&9{*G_]7k)^vxːb_ZTRRRRRKR9~jtI%^șCϟ%$0XIIIII_L%%%%%%%%%%%%(L%%%%%%%%%%%%(L%%%%%%%%%%%%(L%%%%%%%%%%%%(L%HҤM'EL4aǎ|wdM9kzݿI JV6ې<,%NDR0ۗRI)䔔%gϼέ9)c5 =>=~E 0 ;o~;ADa;/?[z*Rm;i-ɓ_n\TEqĥЍW=?;r;%J]1bĠQVwG)\T.OIJJJJJq)4P[ (}[?wԥ}kْgY6Tx)C11}Z/C<=1bZP,8dǚLLM(c?{KoOɛE';>* {D6m2GxXZZRXvx4$8 z .*ss10Ŝ:bxD̚FG-{ϭm,[~,H)9%MvL &S'S'vB)Y2J xHѣӌ(EʔԿw:w洼$ NKqʚE^ЃԂUP9ƢY}`q)YEci%n޸N}w9@v|wlPPls%ϲd.hL{xܡ~~xJJJU)4ffsV|B`Hχ:@CBd4nFYe`rO[ېSޔPjKjO\&}7# x,bYR)iT?_Xvv~Jr;1_ꅊ/t7z2}w-۴/g?GlffF[*ЖMhѼu{~(wxy?j zo7R ate2q,yo7)4hDKҡ{vstfbDk7{vˢwJj҅sgiY}Oĉf_Bkr"_i tS*XmӢw)< +IIt3&~4?z8g&{>OdUS4>gN`AwPEU>bİnE靿3Ry(.M$sK_٥qw'nsJ\Ź%|fm4bHݹWmFpP\=x-3boJ" LI ~Ui,.N)9tb>Gs$ܝU\k:5 ;x~M̬2R_rFB-}'>c(9.c±@V796|l^24W iplnj*׆: [[BCK)KK-tT8?C&ϻwhqpx)“p 8ׅc`ff*ԸG}|,Vq>GpM7"fʔUK/Ќoaٚ1g!D3lH  cs6t|p<¯ϟ?·{3ǢLMĈgq~<?#3<_BڭٽS;`h e ډ{7w8ƱWoc0T%Q &E#}Cڧu4e2~}Bݥ7_}3M݉Vp%oȝU;sϮr'aG6ч:v<!1Kӆu Bj&$C̿B}Jϟpf6:&ʐE Z ‘fIE93R::O$zJӦlT|gJ^)?䚙:XP ʝŔΜvq +Lso{wU?_L,.;r*TLq]|zh.\%8#wέ׹{x~fʝ7K_"vՐ! g%eZh.?1>?5Ti;e%,T_y,Q"}x>WF mk\3YƱ%{AڍkGIr̭̕œY ^Oy&]]{޿DYR.\ %of-ؘLw=(EцNm[|F7n<ܽTfr'-0"W[x#Wn=|Z^N2;5jdnH,_3`U#} @ܭbAZl|# -uݚǯY;O~ePAC%,21F++OO 0_Lxnx) $ yZ `,-'7"C@ "Qdԯ7yJw_: ,)SΜ>%%`0q9%{޳Ksw;3)RS>1z({h޸X`jظ,<_ %xa=fߤ(3b̄= wxv&.O&}}_ v+-13XV.X0 .CFN/j٤K_i k(b`L3e,Zv-uG1߾{""s3d>({\tYBfʜiڔ ]N9|D0B.fziaa PyX 2Chnoն<ǎ I" ĹA 9ͭ Q 0ᅼ |1cQaVLǯij򎏄٦IB^g{ 9fOJ!k['g9M+}IGGc6TafXK@"ΑρDkc&v4KJg`@[.g4fX1 wiGoͱĦ,MR"i)鹑|<\WQK`r≁Q@!ɭ>6V!O ̵BXRj5iX<xIV ޒ564 m PUN=IK1mi5z1j۩S٘ʀBkWQvrx9tx>-˗,(=dw;[%3W܍36]-7`H>>}m! 14v԰ڕ9K63`xϙA74qNG}wx;k%FY ~6oN:kx #F:(o@u5ҧ[Qrɍσ-b QKa,\tF(գ5kדB)P^b3_Hq~f 9 D r.qb0{$M0V{@"憎K{v !ђ },͝9U y%L^*h-&/D򜲲ES #\_%cv(.?/ȑ+? jݴx;vs}_Rl|x./3}q%g32cծ@r8a"e|ZǏɛZ4'[M&Bp~VBE^?z|F$rLL< Є1x .. fPq#(c̊()b~h]SM@Vy߅nwm۲✄ VQ6h,? }pHfZdxzw(a3H˗.PNƎʆs*)@׫wjӾ@h0E_5WS+n{ 0[7QJy6e6HC8`bmeÂ]; w, kDw4W%]EKHUq<% 0q"6#q˳7kdnD n[sP}_m)4PD3EѴfvAρ᳄ܼd0x 7\"?fnҖ(GGRE(et_擳Q!nJYܙ>~OGG"kO"YW*>H^%Boy#Ie7_ыOX{OcgkPd"gH  `O7Jrwf٨Ewn}gx;m D~Vad?&Bn޼3f~E؊F3'bj.= K<,S?r]{3lB%{Tzm1rjӾ9@tI1F D{1#J-Y4Orr_}#+08aL(KVeX;JWd«-`ưsP9VpֱWگ[8Q:vqx`3݅ DZOPPDȰߛo[rྗ$mx\.zzaY M#$bl4aKo" 0XļYu"yf?jְ'`9=6`>|xtMDZ T؉ahVצ jqU=ہXQkr/}?]fb%%x:ըjԡu3)T(fuIţ)-R*85#(yĊxxS?gf/mg6{w[XmÆ6lLT%4RtZ&\xJ-t#kVV `f'z8oI~pM fjmĝ_J0!ʷߐZ^<~.'7=  &3EBE | b=*޻`nIB?vU9> !Ĥ;̡Ʃ{ru4>قUrd:`._Y(XӐӧM Ct^~%XdӚ7d=˱F"E*=!IDskKWXN[wK,8e%K.5ոjp&!}mÆlRicK溹%b¨rr!987u##k:a9b# C0ْiڞKrt^/ef-rMO0)'Hr)=PRfO()gԲ%XWح.< m`iP̪[ ̈́$y?njq!%JѸi'ʒU k7lduw9[yv9da ! ?ejpA(Dµ,qW<۝O*RI+?nq=<8c+SwOahī~UN(Ѥ1w7\)CB2. >RΞ)Fʖ(H6k܈Iꂥo R#T!f̶? Hd%M!hR{dڅ-SJ\9I9iʏ1 Z5m'#K6BĈL[oi҈`Gam2sUif1!Ç1)%3s &cDK.h:&c(čI<$e/H PF@Y9nL?δm#9g\VӾL8EIӆu4;`uP׌ 7ZJ&}g37xf{nҠfuLu/ᚏKLJ(9dZC)&{MZ4k{uQ>|dA08@m&sx>u5g+, g.ZBy'q㳏\"bKUhÆ&l邀L]1Wά>$}X HIX0GLH=E@&uFf{MIL/tذkvcJ!ό5 j߅ƒeeIiHqfϜX:85?Q`t2=|pOTcL&^5ѵ{$%WX%e3$nwwV*gJTQGJ1ubCE/V?l3M:?s>$ 17bifmv݆|+p7xseY=9c#9Gwˠ>=;r ,IJ4B-Ւ7?Bi?Ix qZ!}Jt+_9յa}fu~eZy/(_Q]qgLJheON$c~E  |`i\,˗.Ҹ9_I٘b%JK.?1#C'`Rc-krΣ gK-0IgkrF)#dNYԉ2c$C\d3;j$aG&ԦxdȜY~۱=@bIX{QӜ:Gy!tp Ʊ@J{:r9i j_W%Zͽק`MxlټAk3('֝3pnӾ1&12φ ]Ľnؑ߄vO .>mF0'"'Sw3V*b$%8R/U5GFBB> ܬ=b֪68vL]3W)\Ok#ow.p91f\¾ɤA&UŒu`|LXX=pZxcGME Bۧg7%T?45QBI]{RhF84b(7des`eS͸]7mjQ.7dʡ'K0q1|uS'd̈amrcܡƪ049s|)4cU wY2bRb9k'!TKOnu?|=WGޝ'FH#tN?˵0TVKMHFe/ Sƍ&Wp$/Cpޱ[9Lc-L0a=R}IRƘ0D5! )e:PR(ڙ{zWĿr Q !;2rqy,f(>Mr.[ZԴl=6dWC)&I~S6l΄h1b@ҊF4}wӻ'yqBO-Bm߱jԪus12[94ml%$bzFG<9)8Crmذa' hyIVf4h q{O2}(2' *Ymj㡧5ӲJ"x,Ks>#)q!#U5'd]a_x+Lh!^|'/5>~L Z~^}yr!2H¹+=?Sx?1LpĐi6pD8s.qѥC[%1ͺsZʼnhG ZP;hw=f}t7;r(Yquұ6sG1>!cߓ[ +q"{kµs"xkbA!$wn֘Ndj^2"EQrv皣eJƛ淚7 \f_0;ӤM vLCB+䛽CxQ 54Z#-sϞr(3>߹{[#zI[ެ9"!b8Ée{B<0h U;z̘:߸cc ?OlOH93-} 5ąxW껺 q==B;lGV;x?,gOK-tD?9/7 QItZ UC?pV(aMeXx[u|ka}KxP'g9cn< sk=MHCK;9G[:EٜZ[?m\C@98;\%$leD cyyș@O w cfNQnmne.^ΎaÆ3l\HM U*}"t,*|.WodF2,X2|վ!$pX2f5څǸv/a!EXz3s|isrqk&"|`iظlXsS;;=xJzΡ+ Ϛ2aysj|0دe}chLJgIiǶΖd wsu9. ovΪ"ULYMք3@-jfiO?ΠggȧC4BUf~=cVmذa# ⶃ+7yѬeM+X¹s2~7'@ -h]4y />{}aÆ=gn 6ƙ=yO +bx $NܸH6lذaǂM0m}Ցw$6lذaÆ 6 XAµ9ʆ 6lذaÆ"liÆ 6lذaÆ 6> liÆ 6lذaÆ 6> liÆ 6lذaÆ 6> liÆ 6lذaÆ 6> lIJ9%BHQ{ѼMqz"W|>K2JH AZ@ކ iJgo96 ( D$ɒΆ ~M0]PH1iؤčFlPqj%h*SV… ْeܙоaFPWR˯e2ah_x wx\x6l;:LYd͞C̝-kV-M(:ș[=rXnꏦJFjm 1bƒ-[elذg('?$QFgN˭7s'sv 旕JaA93ɔ 0J, $BH$DPy9}Sn*/H%~pR^>D5$/V~zyvH ;9rH{xsD7oܐO\@$R('N\9Z?>"7jdɚMN ˗.z TY3Ȓ6l8\\|Q6oX'_MVK=~(o}+&mzi{ < 4@{-4+YZbs2oLykYI$F2iYzwQDJq|fՊ_ }X( 3OI6˫WwM&J".Y(>} y/ۻG9Ҧ 2f!Bbc׎mޞ+R$M\r\}.UGϞ=U %| I}l㮝y7&.&;km}VN2dexAV$O|z!}\FLERK/13Ɠ0QIࠁW匜[B<= p]/QᔒYytlJ Hq~k-ʟfNȝ746i x\yྟ>VFp % :} T+`2|9w#>#W%g\~MF ,.\W[e!Fh}ÇWA`b2dHPhn `$!Om[69~7n`JK%k攷{/'/%\+S|yr6|8tU޾zdJ޶by>7դcҸn ٿ6dM#U_J~3¡w,YK>d2m;bŎ#KWW!?cʊu+ҿO&L3dRl$m kٴa{ '֤9sܹ};M7RAUadҾeFC^?/kФ=v|wƢש^W%Dͺi_F5V|v]2d(%+~]:ݸ~]`~!= r2mxa7jHg (ʓWݿ;*nj}{1뢵!%{β+ӣ3w `3X>vD aޓѕ[>$]J,\Fn)ղ^Oڡ/yZ p )(1}C2[AQ}+I$aBH!ؽzR}j.ݼ;bh bkuW2U % L-ʸ2o^lHӿQeGW߻̠cR ,682EW/~ױِCz}}aMyf~iOXtsϼ!s`}O?2<6'E0׭]/B`ɓ'*=z9whϹh^]KСՂ!}rm݇aÅfvMO ufxf݄AhǍ_#dWKш")ZR3#lݼ~GEXcknߺ%fv(Q8~lXmFʙ 0 IDbj`%!ASKΝфA=JhrMm_ Ah~ԣLj)Q7;.sܖC]\#Eyc|zXMn\Xl-朳|y#syu2Q0-Z ue| ͳ3_c<2_-d\x6BFylx w (f9rd nm#̰>] YϬ=R#zҴY#7Zºc>p "<{L.^s%3e&-o$mȡiߛ A"m_pfo DᅄX9Z[?pg@(jfd=$ȝy닳E 0 &%k\cځvmsױ bk_޻{y,ݻVi2D{玷sv3/u_9Q39G#;l2?1Vs2ؾS7#,Zgnn 3< ʗ_cҤf߶RE93d e2_gB9v9JgްM0]_%YtIUfuQ%gX3F8~ +[O]HǾK`KԔ1%^D1I-Bي6$,\񞠡K{^fȈ$n;s| '~KJ~_ Zۨfxw1gn/ʝ7i(Y>@.8+7^!GI q}H%q&ÅI sJ u\yNJk&zxѼ!}$È ȭ'%i4 -\}Aή9nHbPI^&晣9H$$9Ywx_qγ$J蒩n.ӮraI9!>[`ph;e+FpE$f捚|rI4ҩ`wT`,EJ)^ϘIM\K=,?Sv;L`sc˫ ȰwIN.aJ ǏQS';`$г6yTHjˆ56; +s>pJH6ccSAcײץ2yX=5kʍf!Kb (T91FERsg*ǬHIM(Y"-c !eQ1g#Q[UY'Yvg#dƍ?dLZEK)Sg" 9Əe {Ϡ@GAe_y!(Έ3Yk8w3,9H(+_|߉cGղK _.Ywí;t`#O=g.3/EdPlް^|CLO3w>Zԯ5?Uuəܐsgq>9L I#[$I$qF}cϞ!C!eFU5z<@LbRQ.9uSRK/k䐧wʲ3Ԓ dO6f;~E^EA5;{[Cg-ɥxYj2dʬt=T01sP .,*X!xߞ %"IF9w%dOmZ59(†}h[T/qE XuI"K.$iK)59֠} MC^lӇ&Jl֭^%?a@!N<E@,w2AU&*6ZbvUz-O0vmOuC~lJT?Mh -{ kӾyWM%?uhڇ t~ ETid_TJ'̚ZnC"!ٛ7g x*hԬja\Tر/@eRՌiQ.3uxY8ocn 7mFxgATaWb;G pcnZb%.]f0B1#$1T[싲+2Q?:G`С^&oZu%!(HSKe1e!JTXK,9G &]z_C_f-׭QE [Cp׼cz`,gX B(qgHTHf^ؿw<;2(J ROfo7BSCԩđg#y@EKS}NBg.{,g/o dwҐn!dE6NUyao8oY QZ0oLeλAf"A T&f2gt7jZijoLZ ,JbȞ`9,LnHNْB # T~%KUIuE$E#DP8)OdJCS\R&kW.;'9ҐTӚ9\-CswrC 88tQx9J/E\uY#Rws2ݭg_GM.bϝ=(ٸvjj6eTi%y/i=.\?X,]${gblj{֌!Ϳke~{0 ϛ!kb%(vqUT@й8Wt guVPO'N4Aw.8kR_ȨauQ^%BJɜ()!6`J0!3rCjLZ"X|@-IicˉEYTԠu\ִ_$ Ɗ^nI^:O2u6FRkueLAYz-p0f0o${\.?swl>v &{[U57-}] O5,$)V|V.K X7[-oqBXܰv,^8Wܓ ptl啫l];K~F`9mڱᔸMd1VIH6,\J*.& A"kr!iԴ*Pc97d!f6mXk]RubIpo1#GH6U@ޥ*PB@rҠvU GFM+W.ɠս"Q—ҩkwu/&q#"$("u;%*V6c|fƄ _M%̘:I!]߁C<# YVm:Tu:A 5iYnD.ұy5dL32]t}@z/J0"`"3>ܮURѬjȺ_lGLFpml)ֹ$Ήާ[t Zl#Pܫ{gm%aw̞2gM2`pMAgL!i5\I?9з$4Bڕ@aOw:Ysjͭ]5:g{ %d"XΞ>qCPIsشEKU̙51֬}ehrˬ]<:z' RnuWC&s9Z( )^9ŊMɱG`@! 'w`S]y  + _hOV,[Kg$KkZVcƻ݇ bG!E-:;}B%c?$`U(i,5˙rYMWaS4~L5{.%ȁA("(z[&qbr=|?[[9 ø.* VmMP(?f̝S51#n[ǯ)*flfk;dزk(j6_کwd}w[͙Lo.M0]ېIOȞ1WcA0eiG}jag0ղIRi=usjT70D޹GIpMJ`B tTxM22ētQ/o;$4kj=<ji@(VƸ"{aiue\NJ _f8tEݪ㞬T%Fϐ4xPE0qߩIeMJDQ%Y$~$GoqLcK` IY>i3\rH hE4^䯇dִPrv/دDbg@HKLyp (,s6-,ٲ ~ͪ>):-冄#B>+)갎DV+D y[ϳK{ ,1Lb"A&Vfhmժtr@ 2u./ nUT+.8SbfOA fJC vQ6) *|(gNgsE0QL0N -[6oPrۤE0KBӝ:9V-ux qԅz6VDVdk<.VСBKfsvȺb*ȁ;kbY >ĻWbX_?笩>\*QF5l\φ?r$y{㙇sr\!!Ιo-pFkUU/(/XL9aH->kㆵu '֬HhF9?j=w+dD \c,Ɇ a jHWdѕ1„6!acWGm2')+dtUj"O&<#\HsIhs anA.m;+`^+{48Rf\It+?A).OխXU媪]αa_Z-&-3?/,q=K9S>AL!:$-A0QDaU- , J|gcpw/3NV!Poޔ9r,h0%E0!<ϤHZόZy's{}_2JFUZ9f;cGKP w@Z&a (/نPs3(pGWy*,SJkƹ XQ]fο"KK`fѮշnciJ0Gʑ (Z8#O/=QAcg37g; cwEsf7wj`/0$z&ZXumAӵٽ'rv{A0;kB96Z.)eP%3GBLûLɓ5OeҸw|)@H 6Sˏ(ӦّY{޲ZcĢ.fyrfD8pEvڬIUMxĕ->)2]>z_3w>.;M0>L~՝8(cH)5֕w:=džOeJҥ(wBH}SL\p-ݽKVS֩ǫk+q B2!}%א׮)E;p?]3}ե"u 9"8ܝcG !ڶ~T]|~Q.RE=ђ,ARƍ Ld jW5~RŻچ`5™@``eĕҦ5eu2%Xi@xf% i${F")SQYJ@6D7BCղ89K6?nZYÊ|9õLI򔩔NV]g1!B8ahCKM0C"TƉόiٹ}=}[7+X~cPqD0@"qF~ZK ($QS?jVz8Ù`BtfN rvu8ϸJ`|x:<&,`8awsi'*SV~8T-hLj;% z cLWK#R =dIDT`r77 deVpB1]Pʔ4hL 6,Ce]C\"Pi!f[Mlo& 답BBܴamvFUp9ְ23!` (Q΋bu"wm+ӯl9sK.˗ 2g1V(,rv`ގ6,l4mD0A~.&MP"@9\j!Jf{ +M9n-d`/WFҐkW 4ٵ i]dxުf/HBbqC@{BE-=4;˂yl~uj4'ٍW fIZ,,U^]kiǣk^ka$VS`**2œ#sʡY0I҃.!17ԕ2)VH]B֑?y`ǂ؝[R%FgK0u\ qǍk54[n=_ɔ>1NA`ǶJi.LP[&rH䠩l!5h31O_ $9óLCDh{~] dSrҧg7ݻ}.HʥK6jGGɓ4R?jԩ'eÂiE L4hq²H yZ0;eAW/LCs`f &=;w&!=ʕdDʜ^UdK*Uu s6&GR!2L`}tƪ[ f #u9fM\<|d/V6k)I%YfcQ (QZ00B #c`W.n?eB.>Ăٽw?ɞ#@/Eg9JXbtG0]łi./P c=lԟ`IŚ%t*+&HWubqij<hvV&9ï}HBܾCt;, Wg f2ԉ/˽E:^@anjtm&w1%Kd`q(KKuw`6c}לחt<ճgL3Mq&uĹ`Ţ~'W#c.3`E&.'%!1˞1[Bri%YDSGՂ3%XXA]e!PLur){`H!dD5V2f2mUwͽVz&1d\6!~JFg{Z*Wؤ%h_ $4m嬒 RNqJ(ѻu`&+Ibj~"b˨"sM7|HK !Ό:!'cAF۝C83>XKc/1vQ`: o}sF௥7]t),67sX̜/ VWE|p5ź 5ds,;!gB -3mG>%UpQCFH_#Lj]]F[P"4N:a2ٽs,ZZث[g-%$Ff1RDMBVYkHV5b%KWF0c-+$I:jZV;uaB&)]4X B wتI,b"V- DķxZhLHJ[BJ`&NTAI1d8E@ Z"bFJۉ1֖%:hrQ8/WPecV| V;m7dM@'s8j_;AkjN0:9X֞eM$VmeӆuQ˾&ߏB`6]ZU $ _ !Vh gm ׮\ldeHbd64J0i1(C &فهyQXr4k uku o;1:#.Pֱ#8Qي)&eW7Nowd4EVB0uㆺ[Q. 'h6췒X{tS5ZyZ0zgu9ܟx}TM0]_U ()bg5Y&dp MQ6,,FQUͦuw ߨ킨dza)lzBF %-ϐ s(A;& eHR$N^`bi,=ݤ˄EN]K<ぜpBCTbȮrhnB^!9EtRc)Z IfU\dke%bMœ89j :;o7{"\4 'D7$ꙕG"ɴ/ON)s\z=+_P٫ u#ސ̳\>8g"@kȈN#XďbԖ6=Ezx[/phKa 79Dᓒ|y#p9xG9 Mk2:>f&@ /w@Hj笆6S])w<Qb&.d!doߺ-rG{[ Vd)MnT7ZR/U!Xz3!u:> JX>➊+k C.QT0FfzF8kfYdA ѸZ ď{2u/qf^Fy$AvJS (!a4? ZгgNqĸ@gN{љ`9GhD<|] K@Feo!+ImpSgN~I"1챀L5-y7Jݹ9ʔ̚2'U0fXX>C0=!5%h&,q$"?]"`"C .BЯȸ.6 7 4lʘwprR&$Rs3fCH$6c 䌥b#%{y1sH;tND01$/j]mKH:}%,믎A@ &nth-v IݵbUr؉*@,eo%`O@-*DS؝lJb|*]̅ႤtFE4 E ק2 $Dž VwVLoL 11 w@84m|.ۚOHI ҫ`%"D|R330{-mn>e,[PK^`A(7"!ГP@2(4gG}X!{ Xhw:=-G̴izF-Qb]׌!o:|!Uj@nǎ1Xn\֨]_]jO>z!!V( ,bR|E~#0Q3BҀUJX`tWTm!oBzw!!"`$TgȯE0pQc}P6 A:,  6h)JN<% &ğ/L$D2)nE߁Ô|2@tPV E}{wg568X%E> .jhRzmHDAH^eY2K0[ H?hw:XaHs5 V,\``QW+#qdUe.^xd@hU7\,EcGUb霜>uꝷğM!Ď6nMaegu^?v-* MkHInk˝ѱKw={>}Y$}ڴRlL OLfAIgL2n7x '%{}>ijOA0 ќiG5} FgmD0QAIr.} >$I(ҙ'MmexYߧ^ƭ[7$xz!V}`< lFv= G"C&HGKI/*&Id޷ﲕbE#n3Ij4ț;$?Έ9$7$ I,pFؐ߆og= d/GbuydG3esY#Ĕ=s˺@XI|Ç՝tʄ_X Uk֑˖˹ć+1/uI)˳%>z> IL4Jo Rg̔D?9YLP)紑3 wdsEsRF}^q.gϑ[-gӌ|4XPMdP2RճW"jn-@cIlOb-` :<a+L ifolD %A i#ڌUv16m&n ڠEŵ熈_"I>RVY4?즚} \| _ܹ:7L.> |p:k ?ǎ1M?@ÎK?%B9UeW`M%=xx762>>f4e(͡3HD*t\ռ((bmY`#F; 7h*~W JcNh?oewBƾrv 1X\xxHP:kWы9֛Yd=GTA?!;g`oacIR5=zƓuDI[u"?zyGDnj㽬%,şlg}̜Ϗ?A;P+b݋b6Ӱ p5!B ЃuNR|E,P+4Fw6_s^|v /U]%Y},-.^+S>Nyu^9lDzھG$ PbKP|];:yS> >?{n!nԸj)yt8hh%4ۮOtG0-)GwmmvmI:/هy޿mj`}6t4X@sپ!ȥ߿w_m5f%smŚ07 j>6Be8^GOej ʈ"^WP++}Z[LX)Abن  `ڰ -$.o{ƍ~_mdu릗96l@RNu_/_TB7o2dŹ< 6l{&6l|"DBĀ%Ԉ#aJ_μH ^<$6lذOM0mذaÆ 6lذaGM0mذaÆ 6lذaGM0mذaÆ 6lذaGM0]@Zx R$ɬbU!C@;~LW}{m;eLQѵ+HuNfW3?5Ͼǚ@ jٙymذaÆ'l4Kb%%rԨd̈J,Y=];;w>E`A$X Hl9=#JFܙӲsV}}7QĂ6>"F$6OR6lذaƿ6t5~hI&NٓǏ|r%C&fBzM8N.?l-ULIEzyC#|6ٰt_d&cG Kli~OF(+*wΒ5d6})ټqm!!h`>}F:{{C/l% 6lذoM0]`p{ŋj{rm˦ 6lذ ,+`-7[ܿoJ FB )n="K93?`W2-QS+}yZ?|.Gf.vI$U[^P|%iשEnި~ 2|@y㺏EU*~YYJ)+-7kWʟܪ5jKC ͞i!?r+ɞݻrk2U&x䉗S3pⒿ@a9r,Y8ߐI"a2dXXrEyNA3f,4b\|I&OEN8Yڗ&mziԬA׮t3Jj5$gzw={T.ׯ{zMC0Sr,p 3V,#ؾU|;ܤ3g&CQKxU6z9~쨺T^G w_Ǝsg‘aÆ M0]`/y˽iP0!$g8y<|@mP:v.]:~5wșӧg )TPI)/ go/^>tlڰwssIמ}svzrH"KC rǏ>x!bD Z̥ӳMaC:-Z2ltႌ=BA0ոTT<`R/R?A"9q☼zRpzv$kV^r 8I^ʔ(^1#yR@2\Z y-WĉWϝ%f)ۅ_ `Uz=4jB#Iƌ]6_?[lٲ)EPC'1Lr5GKfȈrl~9 T"%MI!eraiyQǎ(A+}⺏9Å#Khq7oy߃wxRʼn A>TBF g^/ACId2|(w;Cc{05sw7P i#b¨nWor5yvɇ -xsUy|goڧ]:hhh%H rE9yܹUPΔH(Qg߸&!r O)ĩerI_K١#JDI~rio=+v0f<)hμ`&6{Cr׿tt {*MZi ␡Bk~, TbǍ]7uuړ'O4ư-&9.y<<=e޿ݻ5$S'>4kgy["1yT oW^0E/~/<\ޤhcy6c}!]o1aΕR lpauɐ)۲swR-VB׫)B?9ɓǵBK4T`ɓrgi&ND5w=c IȽ d,@JqÛy>Cw0!̚ 5`9nšuXKz v$L,/DyFΝ9c}̙+~?_4GtU)b:t'EEJ)'0yzMذq3;|chڼٽ[&iڲe˖lt3Rb 9=3DPrh_rrGO!QL]2IP0q r0حpCJ<%fV1<L)7߇5FIMO-DQܣ Nϭ?!gBE2a,(YuT޾225̭~fq }m܉$z泡%p /<1i:Yj5dtcP(kڂ3Ǐʲ(ʓ)lj3طO[XNgBܯ?T&fWHebĈPq%t9j'_`!yZXڂ,YhÜBj7p ܜǪ6hLW,Ə?/5<`lڰNzuU bga+QZ {뎹;RN#'K&,X07"y!|wРnf+579虙ݻv0l㞐{NN>Ij0K.Az͛Anƒ@y}J4 P%&:2';nsRĉu;+Ǎ|ރ֭Y)Y4F|AucgʒUǙ1yj/~|9shdu3e m^[QC,תRcxdsrYR J)3nnA D_+WȮ,;sw$c_|Eɐ1&ӧN3/k.+;oD6`Gy}K0y}Ҩi&J9`q.Z0ױ0aJRe`"zsgϐG8б سB^5s|إYiYvEb[ld xHJ$Kɾ[?_0Q#xds^@R/ \Ŋ(Oo?kl53Dw{tD5Ff|JjW, -ڭz6obqVBtW ϜYd\+Xɀ5WkPd-߻CSUYZ8֨]4L!wLY8ŗ3ʶcۖ|7s2j7g/ ^cfϘ(^a(X0Qbɕ7lݴQᛢ$x/kmh54o\[=zKUFwnIRe企m[6B*k Gy ܧpGG3Ma,=hw)$7k5t|cTO&Xx\Ο@N1#t~n^vܡϲ3.G UFdı2a(onf0 yuR}z8Z}y9p`<1`ʆ!gOC9 ͗J<tO]HsZ!C{B+ 0*k?sfNbD3KUp掍ǏKItP߫c'hf 0fDMQ=#>rč_N )Q/~B% 59nA>tp7d%d)r!Pd9%]tI]JU]u ykG=|ar"|vڡ*-G.kfco >Z]gWAuM6ϧ=lٲe/0])0d$w TJX8DI)7㋁I ,d0=HwHhSW,/0T*IKVX<4s\QBJI͇o6 >\S=S#6I4? `}Lb!Cݜro6޽?~x'N*c'Owd9>&o2zPYl;);Є Ca5^ޘ9Q3"A& @JV+  @k?& 4\O. ŌmY'] ~vn5cc z;tW?7f &?ϟ?gWd7bD)_P7Yd>0|֩HRkSX"x}ޮ]Be6FI:r/(yxelҬKQƍ.V,WaN'L%;m-wZڲCx ow 3 k{V*U !ƴEv:˗,K;r"66wkViT=} 1YfPre Юic|!8ϒWG6i,lٶoäEYxvtp֧&z *s߰ņ >T\g.|]_9<')&`sڲe˖//0])@B'!…k(*-zY3Ƒ<}U3KRx$Ϭ<*\O^h( 1QT)[E ,n@ߋ𖦪ɀ[x*I_',:0u^y╞?kU@ u̾=ʪXD֬5\580k4isep>ZKmo057n<+6ϵ-?G*V8;V\(oXVA>%uC1=3e˖-[ߖltѧ&Sp Xo2@}'1)+Z; 6d0`9 }VCV)smE͝|bu{)^n#70U2k>g@X=dj׌uX3ց&{,.ܓ NNk ,&jk*rk&^ BLah8kR5lGÖs^bᢞvc:!|+7hn-_UxfT@OҰN %t}3W^51()Ud?0A>="Z@xړW_ LџiQ&*U[ 0 zukVk^E[Ɔ8G &<GmU2fʪ9?I !;S X2*ߪ6Әk{eiC81A;H #ԙpfwҩ}ksK47YI5<bbydSIǎ8BazDI(id|-Iƒ\X6< %ErPYȥUfe2| "ZY@jv?}SU7ā 9rD}4iRW>5 }ޯhUe˖-[ߞltѧ&9~a !JEk.[;/[G}{_L1fxZ(jZV G+^s^6 nuƖ$SK$3Ɯ5l HP\@XI1P֭^%۴x校#b|Li&^N5*ff-jrh~J5_qLL Q9£d| TL`y/+!n1U`畯 r'"IM[h:uB79 0%N*u6֊&k1 錩yXղm{Xz/ ߖ-[l}]ـOLK '*)gϴUdxא[o`UU"%"'S KA B\BPQH%^cSr<_V,p&ĩ+gҜUgsA=w :N *нΑ@s>c&<…)4ƓǮk˓o 0)r pcϘ:fݠ*#9^V@*sm H`˷j\ACGާGWG# MB"j `+4YL zB f!u "\6LHV,_ 0}j] 00*s:sɧDxM΃LIo`bbZջ뗘gyKgϜŌ#uxL-D&T*W۱(.C&m@a&}8K?ufVدK 0@"];.c Ph[IAk,12d-mۺ3z",5SYwk7tEc'M;]:](G>%b2jЯ 'ѐrx kRvFzߓGK; D٫W.3>ܻK9mc{Eezn˖-[=ـzY ,nĒ^n g\v+WIL愜.{$H 'W"P/oJ"a)nZn'L:IQ!RZ R@~T EIM27Σҽʱ4#ULgILښhneZhӗsKyO8%fxZο{cK6+oW._x+WQ~RMPP7,{E`dҵS{C>Ve`+n;ho$iR@#}\+Ȃe+om[6ϢhPJ )S "J.׃vyF!Q?ILY aiH=N;1MSzCX+_M!R< 7yU mgɞCA&W?Tj TPZ\8{x" q^xw]Ë̬XE(S)_OxM0 /Q%370L{*00K98LB-9!uo%=)XDZh0ŧgyju54ze E~»:Κuk)\x8t^"DOqd׎mWlI>4mJ<=;OKޝ;һGgXp_ȩgM}X̜6Eٲe˖oS6`ȿGPq#ʵ \w|i37ZA5BWw$wPSBy8sj7\v% sO!TlPsl14񍇲b+Ixڟ*R"Tr7-ydoYPۗpJ{"{'ov9V x`evRxG'c{&o{s{)98I3=h)4RN^T-REP4*:X9`f 4qr)5ilgëofrm:`knU G%kVpxc,ߙ+O~a:ow> /Fת=}sq9smx܂TŠFiӥ7o)6"GHd6p!!LQj;b9y0 *+T,SNo̐ )f L o i[e!x z}x}p6l`;Wpg͖C߫\[࡞d _z8(vhw*PM1,(3y83%q-{Nf5ߧ6%x|4ɬZzyMY6`h]R9^8ل!Xz}ZL6;GD&V<"S ǟ"EQkS١Kw m@(!Cuy~o#P9h$|Rat rܓ~Xo"Gtm۽/mٲeە .#~j%~} Bφ[05X0|z$/B<$]f TZqDB2cPr9kZi\wQ{d&+Vg嘀]5:f֊(ytLZ+V"iŠ0Zzc1KWZ#gGWh(2@|zpy3{t^O-djfysװ cKL ߪ?R+c1޴ sh2[Es$knDIwd]xMJ(%C!'-X0sx|5E]7YMo{k- pV|wr|À;obJUkʿ>ZF{ 0MuDR*;h)B8%-IƏmf0⁼~1xZ h7j=dƛ'^`rn 9}f ՆmYD)/ׯx۵cqOem0^D8WQC%D6azXlr,J`(N0Kz4wVHg \#}T+PE6_# \s0WVSϑjaΌS0ͽBT ţ̆}LD0!р^f J-^D0vp5'o ЎGo ,6G!r0i[nY2f֐@@9Wē<BJ/͆ukD$\Z6j~)RZ3E4T(C٘bk'Q5=tB^:6,7 R9Om`*f, #mUL暘+rt\ds ~[s،7lqu2+݃3gb%J+mdLXƓظ`%`$Z% >ŭo9rZg^I ,x6lsͦO-[lٲLaX7oN{yY"\5/7뱄Ď6 eQX0^#tSfLq?"* nĬ.y?Lޯ[n΁b""5>eg aϯ߼VXB޾ܻWCcpy;ĐlYz,a|F|I{)׾xmٲeO6`F*WpKuhRCjK1;(?,_OmJl}|jS^$s/iGd_OmJly Ryӱe˖-[leJ ԟn?5l\'.[XC?mo+vܽr@-[lٲe˖W B^>zU%ZG=?v!gҗݵe˖-[lL[_Orӫ}B}Q`1%gn2_ޯM[lٲe˖Ӗ-[lٲe˖-[l}ـi˖-[lٲe˖-[le˖-[lٲe˖-[_D6`(B=fLmvm7rGSF4[njeSX/\8/oIl %pr5ВoRrΝ/v\777I8 ZACRDI$X`rs7ؖ-[߶ltQLYLw( UI%㵍+2mٲ(kR2oLyGhchOۻw5sggj7^4p&Z8'{O J:/ϝR .aӿ=w[yF7J=|@Ϝυ 䳧O!Cm_xz Hps?JM˺5+erU ,DYB{~/r(>|uybK1bROj?:7ynш֜S{fƏ!G" aoFːAd փ#FL}Vܹ}K?w"r8(Qjg\)y>E+vsKCܛOs טkDc4kٳ:xңWw֭r]_ߓ"Uj;q4~>wmٲmLY"THٴ~8~L̓M`~t"e*cN,SM'GzgrqYqBr30]*Y,o^~[ ]26̭`|t^9渎S8%IT1QT3gq "QRD,MW'/;kڏud-x< qyw:k:Sl~*5h?bqY7}${{{Klee=z )Q$ILEw+T" 3qR˶4] yTԬS_oÇrVԨҴE+X X\$[is[yp,?GΝ;EϿJ(T\M7: J"%w|r=;zڱ#a2UogW_7d͞S7-l62ϫS'Ka%[\ҴyKvql̙5MVojֲTQK~i\ombزee,|kVſcR|xŒsId>ʞ[ʣ=e?,tp827/| Vu)c{&9:z#%*ieT1#ghLq`ReF9kl^̘:Y\&p޹P_KZd߾=]k_ZJ:j CA9v9tP_/h K˟}ѰFƐ+S 2PX/ 6J<=rXkZ*RLg^%wm# wߴt:y[iѤ흶e?"0]_LarqY .$*J)_]ɍ0Ko(`4,G2mD+L<^ΛY3*iwcG˙3qy|}sw!Sf淩:K(PBsZu}L`-J@K|uS'zoj=K 6XbceْEAcP_w:rO u3H6L6K&c|lٲL0Ŋ &L.l=+Kfrx"T]ɮܺWHIȈ <ŐII05_։rkX+HIJ$L8|Exo3M,(6/ܺiX[7XQmqNbƓlۺY85W|:Ouqjx,PbYrߜsuvbs3s^ >/XHgRHsn@Y̘FNkBs`r`_@߸~YG<_yO.c:x[@]2Uj_һcV9c+\DSF})3nq<_&̹2[H>kg@܋\'=✧xf+{ҰI3U93F:dqt%Ǟ EKv]O!ǎv<7+U!jbel^~R]֨,q ,o^gwʵe9wH9~$2xV L1=kw7#$)FB`"Ēc1xa 4cUd㸛Nɓ[^E-jf*Pzi ] BOc9/`fmObd+76y@;K  yf%ё9{95xGuAaԒ{03p r@s^,]bư  p9vp 5\5i.2g6:pey.|"wC=Mcرȩ'42͞!.[-xN6h?W{vTO)2UF z3#z6؀r=SV]I45ӐR: UTl~\>ƀי=C`~We}ƏH[0 =yuzX@/H&4TF b@5̒14Ur0G9GY*6Nּ&t1T*XIЂ/Y;9"G"^R8ѣw⦰_B%dJXFtrsҷgW5# -"F;b\mU`YOr-m4kRxXګ[9ux1eΗ{?ܿO&+*w2m!?7mhe?$0]_CRU$2ĖKɾ[?_0 ,/gwHRirq]A*^$a.<[O`Ou3)DXYIζ%[l, 080«Tpa?{>Az4 CϜ60 02Ɏ3[u5:v9}`BΗ_zth- JѣǔgPoA*e l3'NJu+j1bR2Dۇ VE9c.o_ VEt+ gNJENR*R$4>T*M:طlXkOvYZ8^F `b-nBɜ3c07l*/_NZce!qcy̜;kO: dʤq2a(-`zxz8^u )rgiWp]3<٨(^G)0dkYK'sf핖f#cեը~x)3bzfˑK(p֯]F2N1F-7hGӵ>d`_17m#W^5蓫2ӧ`O8N+[bب`[ݮcF 'Sm7/-Ļo޼?OK;R)޽_8o̟;K'd^E|՟iz,C ?PWf ]3xޚ߂uM*`a,ulxd̜Ec[̘!!l9$EHU޿ϝ1cZ'I9lM4^@u ]m'BdnPضCgp4mP}L_{1~X¬r(L1^ o +)9.PBkJKV[k_ж-R* #gO2@WE7 q] x9 iywOr/7p9j~?_z}@պ]'l~8G8#|޾4!,i=%sl2̡aghaC۟ɽdžϤa}vq!,Tk{~g0\Q0i܀~خ7`& Y\֫YUü-ʽXEK&|;@QG-e ѴEmf̘W%AN*th V@1.Ž`y!~ju&dS[ Kުyc 0F99qSAk*Vo5lf݆MgR?jA>\r#`"@x<$۶V\YgHֺo^ d;ob)RȠ#_Vu{iL6`SSxk1rWOwi΢]SK y-27jK19B7xb>q<69&18p1#H|bE"ܦ rO8;a~MVECe .U+s_0jYWΎ]YzMRx! cGaLCoTxóy:?Oa <;=֯*{ Kf/`TE6{N'f+o13`RxaoZE|Hͮiޢ%^0d1(J37[PYUՋ BgG="FSgW২s!e5kaCzr[s gMfP\/O֪]5UֳJVi!x):ӺE&cF!W!z]9zVE'w_ px;n\ (Ӡl,̞1M1F:5N~k? XIꞿv9r߫>Z"At8_˃Xr v6PWhsߞ b@n30jy0?0r$9l8!R" :  sؼe[2^OLW1xL|r%܈c菙.c& {%'O?a6Qwxĵkמһ{gi-[-ـOaBha`!ndT㋼Bg^x-/ )ˡټ~H+Ʀg,F!0+`]M` H ;o^V3`^R"GB<yfq%GW8MRWͬ[>{lhdzl?O7;'1V (`;I `btC6w@b /%+dՊ?1aXc{xF!G+\ʛ"+ẉ_ζ~}{vSZЙtyk*˜8_;TeA>-[mـ:`rJjsNnˆnhFBy)H RHlDI][N$.J2ٵ'43~NNǎJ"?RU,DKȁ;5=j(ə[Q`I܉%lreyqַxK_a#'P03yv16ȫ3`^X/$><|O1vrZs{irzQ3WHL&9x {Y€Xҳ4WKk칧:t&'NSca3A!kтyZtma(Y#/ 3Vx%\AY|M9O Yw|5g @{} ?֩'e [7me+>Rvi`RMrqRK0/Nx,;[4]0_)אIHșY E Pm0RJ V7m!u5(*kDCgc7Em~x4E j1 q1r)n0[먐ؚ&؄+^ްAi*|ڱU6JNsOaTPR "10(䐋WQS?-\< >`hbb@x LbއD hN^.>Y"l K6&k_"EQ Q~Z*. [˃yۜ粥] GwZPa54#IMgC9E$# Vxd=#F/?/ %R|猗O+Ӷ 05sVM /cV{JuM@6 W\dRH%l `$ʕf-1 u3@?ad㉾bH#bFlnxqfoեc[6^hQP^t颯6˽)ƍV/2ۣU@-( >";yscGjD`nꑧ`/)smMk RM٥w03xy*eK=7`rʼn_&Ϙ_MrwXK7Oo<^8ȵ*iWGj{vr"?~D2m|_K"6nB oj.|]wle,9:yBn\}{DsYAN~xPdDÇz4ԫ'/k8:C ?FIB [}|9}C-l8 PEaChi yB$F Q zC3ӗݤP$ZxĜsW5 eYu>W#LKsP9/QQ;އL)C(2ŌVTyȡ ڌ;^bβ>#Ssn9!%OZ^Ɓe$.1H y>GD#"W΍P&LK0q ^-<ȯ*Ơ#yI&WC!嘯.x' )zV}C.ehIyb҆Y@+f<;}/@NGF L(_3ny*:W+DAxN1|63#x5 mQv*b8vG/"U7[!o{ƼFxwի@e ?0Ћ0)jCQs~b`O&u 86Ct̍A %'T8xj1vgwp#QٵW?ӽ,?罕6Y!MѷDܿw_Ν=zW({D&7̲ DN;CCe/}{s޵G1IbJGI$}c3k0.\35(AڬOkg{<__%#8Xx;mm5D;xX tKUKضClwssj} @h ϻL %(?Z014?T_Ս7$?͌ Ϲ`iP~- >Tu5G! H^?jڢjJ;Br?<[lr+PH-A-[r,_P\Q{!%|(\{A^{w3Ǖ%ӻerm%? PRI*˗/?7{4s}?xzzJPryyŗj?K^T?flc{o֪)_I:gk?Gȳ"U 20モs@>{qlx/PH'-rɔIdޜr- (ܬGR@ A$i#FLYpM5 Ȭqs7Iwqw~kyYұfqS%D^o\z5nJn޼.+/z\!$1JR;i8{`̖#!̳MM^'1ԦY ^-m7Ϩw˒eY@c̚.>KBEˁI;UmKTA|qC` Q. KW)ܾ Įu=F =by7icIVJ2Ȩ* 2*i"ڶ8"xːQL,yJI,qkH̐{U1͠nd9uR&Gf Ȓ-4Lڷ< ~Ҿ(QɯgȡޱaÆ6tL44@JҼ~X3lrz1%x|`^J#RF+V!4 +G{NGHLZ2v=sYH!%A,b9\Q~ %'Lyt_9ē!1ra)~!ކ1|Hrv1_ 0eM'ʞE5l7_sriY9 ':戆@[DES땜X~P߷xcpGa1R$)V$HH'5AԨNx *d8q%zXu> &#Ը#_/Ir95rɯd1t PΈ!ʛ_g$aOk}{w M"T\sduTS +.ҰrOcX.^V_& t9N;o> ]fĊG,F/(Io@eaXEn\.nÐ;Ϙ0qٴaڱ]_t9'}Uhq'L8F_oHu?h;bƌďs_FN8 3TҨb>kdW lEyYb9}19c,=|PU"F8aǏ3ɤo˙'yҙsΪ݌3›"K豐br 7mX'nA_% kLfz*;5u9 ̇]{Hbb`E0cĊ%\$=E4<[ج!1d0>+9 o.ܙfa=zX a>tPa@u۽klٴQs5sȥ0 nڸNCJ4K$t--^mְKfBŏ !zODC/%I̸p H([~ߨyV?4a-i7k gϜraDN14c2sLӤK' [=V8Rެݬ3NvIHdْE׌uݢ%Jkz̩':۰a 6t̰ #J%Jrl~^[̤eJi%H跅 ]/]oHg(H{C.ZؒNVU[,اO.AW_j$DGɑE o5fYyp鮾CF8}S ?gWR|ZK% 'On%DPD*'{S[&({x!1;oÇcG$zSƸIK K^r"0p` 6*V|6E + 4|`tC._cNcmǮj_p^ K4$O:}znDY7j~tWNjFHQ$2e"Βzr2űM@-yF$Ej@vV 3[6o}9wV3s>W3 {;3 J'K6\DM5d 9t`OD &mz)]L*/_z:H=D9Pr559^At޹BZj蠾:f&eW:C;39a>qhG..=S;v\CW)) m9s2P2gͦIzG֝=g.Yg7?wF7t˜5}Z@->zF@$@ѕؘ4~MK) ca|dɚCpI<:CIy/Y%vnm;Hf3*˷nݔDf3/әS&ɄqզCs~̃H9vlUpiڼ: 'NJgXb`B:vpm[:O!h(|` cG=Kn\bZAcI2\8wNa.q?E|noE380^y?A"s^t#daf A>r<_<(cG5ֻR*4mmFN?klDԡuµq|,$̕5ۣٽy1A8VcyFs;$3P ynfƮȚ=:&M/>6lذM0]39- fS>>qC?zcP  =͛XC\ Z+w۴?eɝ7ژ~vyh.T_Drj MP0͓X-fT P |~?!I0#MМzmҌ sJp޹[r|N>)1ZXuK6vY*7^s#x ?Y?y>`-7ɔ㔰BVŐì9r3Cpzc`9 C!-ކc5L!u*S̋bҰ^-!lZjccPV4eǟ ,7oPLR|E_V'$ !T2 E >`dN6 H!z75o6H K@X\xR\: -(M;tV"=j`CX"^Jr:Qz}ѯw7^! ej<@)T5 ^f4oX[dj-Z0W+)VRΘ:jk߹/ \Uů*V,ĝPPWb%:[L4 C cr~uq{}zvU"` ?‡"r~Α;j<u~32wC[7]<Oq%t= aӽ;umh*CƫrX (RTQ[&e=DE=H'o#6 ЦEc}~-ۚa{̚1Bsc&EjB,#vnc($u5H <njдqTյaÆ2l邏!Fhǖj! @H{R՚տww~@0 ).+/1`5UI2%@n5L!>Ij#ɖ+@U=rl! o kW@Hnj)SfFuҐ; @H&M$IBQ[CtQ(C~yaݓ2Nuс\&2ߵkWe䐁 q*i.1x! VD7m4S {=EJ{Sb4̝3Sr`sB/F9KViשݽ-0}f8^Ο;{g gN:'UU F65`v6$w2,^㧺` І`B=wY;q4kTO_.&LTC* 5o-QV/7[ɓ3 Q~+YG%uϢE0'IJ% !eJr% jMp̖Wr.z *i91PI8CB8AFq@#78,c3џJ57B)!tՊ:O,ɳ#k63wNB3֐d&݄1#u%N}zy WϟWA_>2Wu>`南PYj"M6kmvLF~P!CJ+-DIS/c#(?̧jQ,ܫgꪙ$DZvߔm$RhOq%'WG! ߙ A$WL0ɳ_;gBU<=$/nZ>?}[ do%Hs&~*bFh"= QD9`kk#c"HCCLC.CD:p?*zJ(P_ /LSC㝐BߪYB\s'={67Lj@"{ݽٴMzu,~[U lēsC"P!eȘIbǍ'Ms/XZwQiɄ* "{b)@v?=t7s]?D0 ]ojG ?z ݼJ!,`8U6_JU"=gfƝ"LԽ4mPW >rn4&sf 9GP>9'$(bߓM%~ Lc'46czۈ BTVK%A! K,}Ȑ T8XTiҚ5z߷Wڶj1qZ(3 V>tѧ)Sk8; a0d@_`ԙ={4G~2ߒM2ckLc^8.`l9PK-/ UaVe(SgE0Q sVDI 1n۲3C0q*%! 9(ϟv-9Bɓ&O.B~ 7p9aI6Si@Ι<ϓƏ6;c & <ӟ5мJJj)gh1t 0{azv\owiE4aڰa6ẗɣ* `N J!(y=PB_`R4HAg2!i&MOEw#ㅗh*Րb>E^D ۆXxm:KؗxB2U>yz,:YQ'S/9z14q}b@ڶu^1@#0KRLqpႣ*3D@2 Xaƚ7/ةБC[jHs<bAĐN,9N4jZdeܤi2}$U6oߺk_X5c3$+ήd~rg;jh`V*5jyKyt bHcQ5z5JZ޿'yW(DMYHL"d3VVS&\EBt&ePު[HӖm1}ۧS3tjV+OL>R\!-`}c\wr:Lmذa `cf #x`.? ce)$B(rz194;6]_pOhC(AUJE $)ZcRH#6wb- Q8\%D0 O}F߬K4w8KA͋;{aÆWcJs@\*þyҮU3>B^m4a4aZns0sb i-r;o#'LY37TM7iugؿW~ȚCB`^hJF#"J4!׭9( KE0 Z̄9rˏ  G=~1s C 0& g 5vV"Պzk/H݋^&Un arρ_ ojA*:o3 *VR*Lb5^!&]8e Sϝ@<;({wuiyW })˕|()=̓6f9jd%w5TK'|ղmӣpiҩ'n\ݒKrTRX<|'^RH"4 u!V#[TRM&vjRU !tx@ C6 O?DU`]];$1 V--!Q%oޜY-)ocOLH;s1f_A*;|yh cpE 9[\7IC68~LǺTfm)Z>T 9bNzٵ{B?iZLB_g[EN%Ef8qdڬb"x&b,+py"g#;M'[u+Z޶kM$4="q.C &D,Z{ΊzMr|9Pyl(p Yi 0nvcH(+{^D²߆ 6 >`hJ =j߂`Jo*JS%ao/0_ 53A(mZ3ڐȢc+KptlKQyai-6OL5wvzjaw`.XZ7;\4 s %tc3qr8W& [>)~iֱLn5t<|P(ZMAUGX/1ٺBZHaû yqi@GPE+(Y:ee jur|Ջ+Vb$c,:ո~mǞzT7RjT|1&(Ȁ|ɫ/u[*z.SA,E6mXϣ+JUjhD]v~ $ߌ @H#!Dm/c:Yu$a*'HLX7%VQ'>/W\2}A ?A0ߐ"EM 1TuFeĘZxjIZ>[ O tjJ{j`{ H?EtjԮTxP_&a䜻xɲ-|LTvr&wUj${ s,5s9D*X~k;IB.=$s֬2yx ID )pkL.>P~iG;ė ;%Z}Kkm Ӧyɹɥ[L++eF=f˖5/H'9AP RHWort~{YDif QC#9IWk\C,+!2DaFCl~]X1KaCZ!rZԐUTϼoQ@Qko M[h0I"ÿe.}ݪ(l0!_Ə0RT`%Wr*vQ6SbPHq^TCR\%K Xwm&3 ;cfuD^L(Dת~&N>9|+}V䦘SCuQ.cÆO ,ɾf$o޸Au6~^y17aBΓ/s3c |I|=D= a↗52K,R-[이A$SUɤvG)̆rl~['G@@R٣grt>`9+DUb ladjm`lʆR*ixFU`'jah$յ; !5ԓik #scݹucǍlߔ- J^ZC$١Eɣdl8/c=kG)%tewSĚV[5G!C)ar s gro!ϼi&}ma6怆QɔyJQWcҌYt.%Ǐ Pxw1}~{”ʸڳE "K9P3d}>ghf~Yso !D'cr}GY78 0sk=q*2ٲe0s]kLZ Lp[]s; -f,1G}O qg>{Ƃ{G!w.Uq=T@&Sw^q(}P9a6ЇV.SHP^-3.͜]O?3?s kLk`3cÆ U$7l\=xU(]TüJ0[Rosg!9]%|3|y}0M^}F|a6%9E4c #cC"T{HU;+U.~{ By,e з7}9ȋ/y!Jqׯ_}Ω3i!@V'n111m~M_|䘰C)my: &ױGzi3_`ٰa6tAtx<xSSxspl|jEŋ%6l|'"E=wǨ *߼q6lu1YYqذaÆ 6`ڰ/!|lAeXN6lذaÆ 65liƿϼ4Ȇ 6lذaÆ%ӆ 6lذaÆ 6l|ӆ 6lذaÆ 6l|ӆ 6lذaÆ 6l|N+/-P>$9.T%mذsl=c:-x цc{mK޷ϤwA߱ߡ61X[ Y[Ά aLK@+uzzq|33cg!k8I2$䯽{tx6l|@'H(dʞ];{|X%]#ٰ~:lڈ=dˑ[޽+/W!J%{sݽKܹd† 'RP<ϭ[+ߺI6l&.ȝ7kDnjRBi|颟=VM[BEK!-;G̚&Οv۰a"GReYː}d=dRL9ټi3Jј'ߏSp\>ioEtrutyKGylJr з<|[7ɆY ڋgrArn1r@\MA *3~/cĐ93ɔ_3gtCJLq3VX_\?pY?~kx}g?D[)g7#WI0ksG&dP5ztyjK.~0ıh a+iް{׎"J%I2iXYz Ӥ0aÚ `ւ[>dΒM"D$s̔(XHZu;!thB߈H" -4:kCFJ1d҄1zryĈKṛO*5jRN:N{w[sׯ2+I4Z3i /cr{ukV# < Cn&^^Oը^|yW߈'TZ}fr?âqVr5iײFݐ KDC4AȑÇ2sYtWfdɥgArA1u=rH?O&T<\7\c8Hpl߾ULg߬- ϿDU*T&r䔠Aiߺ>tDZ %]7~&\89t;H{Hc.ZBUE F \bƌ%ϝZU+ȓ'V.=$K=w-g^ҫ[gK kR%lp2׭[~R]d6tE0=a+5%u:f$%u1yTw;nʅ꾋`~i@0SW^RU$綜6ȓ[57o*撅dꤏ ˔iи:yBFd}=az9v?D1DSլ0mcV-VRU_ƏnI2er-*3OɥEw4lp ! !_{OXw5PzO8&L79^Ohw:wiSx }9B>iH޽sG:whFo%֦1Xݴa㆏~twm "B<-"iSWGC,)rTgϼX\dD_p^xc N8}7CFLh+s4=<9ԺC2X0>| A˪9{-aNn2={, ZyiFgl\((;իz$IKj5%Nxһ[g9mx,mDIta 11Y 8s:!|=<4Ę0.] o\7jKS:P:iȖ#1'`F3Vlcⰹ|Fs Adf`Fwٵ"<-48q)񥭴ٚnl1/CB7^V1b<jƄ|Hsy.F0Jn\n\sCOr0x3xE<4̙ӧ}n`^s>О_zU6M[N?NOh%ڛwwzW.;棅1c9ϊW? X? Qŏej\$KRڶltqFcu Y`f^[ly9v>Dnd_ێ]UtO%}DHExW/^)\y֜mak,G ɭrmEwعI4h1d Raܗv.(:tIđ 6m9/zȅ33ɍCFB(CK0#71 ,~/!k.j)=˽srey%+[|=) qKIK,8`&.JIl+90s\;x)`Γ_C r &VcUUsŎ3~8 O#c1r+%KKa$]rY6!EԒ˴\PaDBB7[#N.TDƢ\31V!eTEĠ֐m,*Fx%kf͚CƏ@qXLjN:Zf9䐗< HՐTf qLw+.v댏!Y:!bDm1C7_ϣo$ud1zI|<+fO*2eVHoc0_3f^2f&[6m4 !H&5ƺ̚F;ut #8q29yB62ƈKf!sfNuy!3[]~5fNV'UPɈIwȕ'ծT|ECJ+(CHq:up)`er6l|* &2rrl;^art_>qI˦)iz|6Boԑd來Jɪ9dcl)'V$Ԝ$i鴒JFۜэJR awrja9.%I܉$S\zëz(O}Ӷkh/FyLQ!_=z&o'AM; s[.9Lcq!} LR|bUFsѫJsv);zOydU7yt{y>ӳː_I0AF0/g9_,R?H.jh[r^*DOkVOsXRg Jœƨ}f/bT$OR* `r,71`P xXYl;;y[6oɉG6g PA!@eHCfƠ>cJ<Xr^ȷYx @>%O:1bƔ!nqE=ĖɵSJk{B7*k1>brxPN?`a{:_ܽs+US?tO$15F 0(Q9vd c; 42hw~ކS%AFv)UC0G@=c:! bV~N0V L f<-V,scicеE:mi}b%KWGx}NٲTZo#F,E0y_j\B Ϟ?3D^CZg"ag cG*d1fG2s?abyPng i$6棇TM`E9+_4ƶ+QbnܰdϙGfL,Ɂ=s"UCJXzJTM"uŒ!Ya^K},JP cƊ%if$ cD%3LZ*#!#{ Jw(=vPB1}{tѵ9RR21zMY ({ kg׎Gɬ$ol)SѵuG0RShͿ·1hHs.=a.s$xҹ]+#j$ >rr| ݐVLF ˡe>1y(M<7 vuϾ%Or9mŕ1}BȰ1k!Gj27D(=R;pG1ŕ(Vq3]Z5m6P9rZ?}/f۰a >`B%(IK1$"4kTo>7Kp"]s>iO%jf@Csw`  ( M7g!Z޹!Bw0 7zn(K <5F/h!$`0WiȌWC޻"AZ15aL~+X6/W: 0)RX)ש'ۼ}1kcB`!=(e 4KI_{sԙ.=9np%f~! jHe˙K -Ȅ1G1'NQCAߦc%~!ԔfN>GvmnEZ"FGE0K(s nH>-'P &mκtCbq`9VɱoBMj^TL0![5SA}ZeGרa&;)VHOR/Cp0Q{5W:Gk ၨC@] j yu| $VV-߰J̏f-}wΚX;o(c\];(c&L5saDZ֮cyE~HQGM 9[ 9p72k>=XW iA%eqἱB{]ǐݯLCާҠN 3۩{oYd2}IѦ Dkp<ܦF qkڐfQ՘5mN{-]&N}zɪ;3f/'C0QE9W"5C2nw?:uڊeKywk@${ף@I,V;6l6tHBU̓buB.)j3ZXn't}rUE0Q =Irz4'2^riCDh fyTIm"Ilq=K~b8½z37-0ӷk{,AS+ѽi@sI[ST(/ܑin_ ۴?BtÙ{a{"S!C\97@s1)Cx$//^z+fe2JQɰ1WN|&O*G2Q=P00P#1n4F"$q8H =)SdN:Aʦ k޹GoUP7cÆ&.j 9K`pא$ו̸×&SEdžؠ9Erߤs, =0g\u^s"CDͽ-W˓ۏ$cJ8'wNތ`K~ bCr,䉜Hp,E w )KX8E )Jዧ/Tkun u&)ZK;qo OW7!ÏwN35v氢2A m4ѕLmh]\s4>ҼվoO̙+1f;+uϐQMsE07j&ӭL,cCj\N{y|I4D6($[HQ00nn[7h$6$ ˖,|(WR`)Jښj`x[M.Jѱ@l~_>c(Y*zBujh0 9 CZ5kޑ&9޻#M__tDe?UBXqdБsX{ԦMQf!f~!8OODZtMQdBi'Oyo>x `HEv"TO癕&]zcw];ɭQXRpMhp^zDaTE@]yX'rjNVbÖpU`d:R +DطXr*-]MZ5m~;p~6Y73)<֦Cg Y&"awGsVjt[ $\cHKC8($8 k'Iu3# Y=P)kOMyzБ$lhgNM9T%=☰@e - C}CY jZUD0C0qjyʜF- ,]m-Ԯۭ$޷MɢkΝ;JxrJ_T/^jRPLҶ s&(6fLϝ;s |`>yRxK#"R(YWqu]x#Ip ]ww"Z(PX hxXqwPw'&hKYM&sgΜ9w^;HǸQd̘Y3D׫B0yWP5O&;:SJއ`:#!Ebkp6 HGp,OΚc<6C+Wd 8sed5*mڰ8!J )BCyd''WSZEM3|6%Iv`:C6(4C^QqŁ3SAtS^}6(On?VR,'YmUuHMYJ7= P>-5])ˤ4Gz)n*$uR|`N9Fܘ:wKZNѠ"}KitZL Q0kC*h}E0kkiLqO%`!#`| ,+-[nkLH/e\pP%# \QBg{o}#H9RĢhnZdz|W93j!MEُA0QR ]S56&(vcG( {._R2M?2#jipGe^= /*t *q%ҺD w-rX%:9S^š쐊GeZȗq)D6lRfv=7?OR)еO\[PfN%!#ҋ1Ǧ(_ q>r+}8`lN .Za)Aw j"S8[ն\۬Sg 8 ПaҴ&:aQcB _~GZPH%Egޕ! &>j6b.M^V2ԮUs!{ֵB&N,nJ5ĒRQx#o}sO{/YDL\嘋[Jhm %}(v7];aNP&mk~9V/iVUjݝLRq9>}RoeaQ_z:̠pGV0(19% /Rx iѸւL4hT[Ϧd}L# A`}>kW^YӼױL /wm)X 3`PQ̚8% ՝ӿ`~1u[;gY;d c}# 6(6|OR a^ZU3kT]`7X*T*Qs2clذ6t@P &*q=y,\~)Q_yѹ '`Z]sIy웼UMw %WreEMˍn ;@{<ruyKqr$fJM$5FRa>q}򺪞i*fԱ?<{W<^0WLf^L,wݒ_BB0TΤcM(n`ϕT7kS+S QJ7C0i۾+I^!g|lX}>,2NQ]d pcsj׬9j5}`RM9; zq$] &H0qE$~ۊoI[LL ,]Nӏ{ՊLא%JUsk@I.XnX* jl3C JBl-Yz2M5'6UغVZ]SJzH]3{6n >E!T;> iLg4U} a754.2Qo'Т>~M"N\c!ԍ* rg>|WMu56G+}g* Q?9,}9%!C#P .C0#X$D.dP>o҆U7RkjM i8ZYZB5zHaq#PJq~ ‘.Cx[nx˜U}5pM ҪT39u*@\QwN.=Om3$! &Ŵ QP[iI9I$ѷJl ۴0@ /QJBhi UccKhI*3 F\ܿoYb]ggkX%0yQf\s!(]:iŬchƃ9ZPd)MfQˆuGu+QfWQ{E?f6ϛ%M} J+(sfM&gÆ&fhW]r%!e}#PNpc!$5~!QEV"DN+! $SCChm@7ԗ Y{t8 (D=pC{JA!59R); {+~9ATIZ4ATṪW+i~(r&Hبᴿӻ'R%Z&cJ`< =/I Rk?:ϹI*Ip1"h)ag&ܽ>=G-*iHzr%qT_r :Oѐ2@K2^ uo$BZ7Λ7}z;Z)w2e%W|< SDZ Sd1P)Q 9rPϞ%Me+jF^i_;zҜ{̛3ː>}6dΒ]UҬ} )|B>~kuJ3ϙ;}V?f԰tgmHes5HRN[0f9y;>ŋVEm'o!%w$}RL? cɯV¸yeJo߶Ezg(m}L06wɼ~B 7liÆ qKdL6@( FI%R%D$iٲPZS)%Hhņ 6l liÆ )WWVfƧvqr }| V^|ԻEگKh xW 6lذ`ڰaÆ 6lذaÆ`ڰaÆ 6lذaÆ`ڰaÆ 6lذaÆ`: B=>ƻԢLj}hlήq_swGٰ.׮}mذaÆO6t@zόRdiqw3,<@޹lӅ2*Jl%}6m\/n=BqHa7ӻOv| yCvjfyftwwiڢ=|H6oCn޼7^?} ~lOf-[m9rlذaÆ=l递eI]$AD~F?z$U˗/`v]W*foec3u!B.$d:7țr %1đ2ȳOഝ?&LYͯC}q֟_  :sr #e~G smqOkI3fϲlɢ/Wt _V.["oezL7_ٿzdžNVu㋗W=Dӗrz9'dXX x/^7AX>$x|@})/ޕgûG\_RsF}~IH[J)܆rqK3tXI+(^?[@jk Ə{w #9v<{hN07^|ٱ}<SJ>?dr6zxf"-דGwO I&J*}Rj"s+rٷ~O0#f,UjR{ΰIE`2o ٺe9燎kޥ[ǚ^VqS-+GT􊕫I勦 1b$]w֬-.B˯cGi5;JhRB%)bQ$gnٌgHTw|L2ɼ{\M)My =M˴)? ۰aƿ6tE0_|!G ukVGuW3@PI ǁRD)=c{Lel %k|!V$ Z7oW^ߏˁ;ѵ~+}v˩'t1Ztwi߱!eaeӆbƌ%-۶HY_EDVR\@#,Y@>k͎%/YFVgd`tg 2|a3/IH+/ܕCvb'KIY/^˦+@3rQ^'˻=JQ5z J0J"je0Q{آA?׈nk/ɊΏ Ii~U2j`˗.{NFRj S\8".2a7n|CBɆnVZMM+YzeZK(QÇr#A3҅eܘo>I *i1uL!`F$5jד5,? R'&K.ϑ~G"y˻F᎝+9lQb:wV6;? Y^)w?fb#[Z+C0خXbk8S;k"Ebg/o(. [=@ďPӡHWޑ:\e)wORqR"̯d泘Wo/\pKk敧yֲ}{vsfz:m:%Lx_J8|^Lj5b9t9u%ݠn"Dw y'NKkͼ_~pM;궹 ʵkWu- >6cS>W|..7[>xX6 -&eV+W.ɤc;2e&:|#'* W|f>ֹׯO/76laL`FOSU˪d⃲ww~Ƈ"q$!vl.nD_gnʃKWZwDZq'ABo+pĥE^Hamj-;|5H4S"XzPVk6O.?y^+IRS{U98}"KR8.Q^>#Xcl"+/`15ܴa,Z0OSč'54\=.!gOiqks5+TT^S\]#vl !Ϟr=` LP9IB!Ӥ_YBPY )\932sANUPHOY0w;Ư$V#}Qʔej9_ϋ@ԮPΚtoL0^kXRJXj?DnZo5C([4mƨZuUfjUa)Z+Ο3SmReD5$*VUWeϡk{ {C>豕=+YZ?C9g55 q [7n^ϟ0~?s JzIǃ߳[ byŒ iM:vMf~PlZ)nna4vN9ܳswLY4@g3O\O4yI4- !]dC%N"M[Ѣ {wJ'M*֯fzBqķnXz, ohJ Q>/3Mi_C-7W%P3v31ZdH,!^-C|?siҬĎWϝdk~0gxG-n:່gm*Y+{HƓ1Tt)ߢ՗7{O6PGo ƿ~u#˵EA?5pͪV\SN#?I+#n[JV\5ws%3"gj,IΖM xP.Y;$]ͺN؂3Nx5m!eW{y@- 6Ӱ J0S4Yu@{Ƈ"_fk^@[3dԪ#@rI?E 3Z\nOkq$Et>FUAnj$:gLy,Gۧn!;Go'o(ዙT%I|]TbemI-ܻ$̛L)f6|~\?xE^  {wlPV2ryٶm\xQcƐEפ~-U( HW֫D tΛ3Kɕ#W*5kM2s;&ISPW{aݡs7~T׸I{Cܾ-Ç Ro7k.so[JF&&OTnF#WYh.bᛮ! WJ4}d%[pƴHBZ SJ- 2QlTYfWr&T];9/j^l9$R(xf̤fHzԸ˗.M0yΨAAhܸLE˶ vnEUg֨mM5 DyRD)t႗ӧҌ+rw? PRus}6vS}EUo}*Cb`kfAp3؉2Qa`LdPQQғL-eUǏI6_Ey[~ѮTat{6f.{I 6Π1B$ɴ/#Ɗ3W0o݆UI2i ?pj^3PX 5jl&_zirQ4bM2Yǰw?H9eJmڈ+nX7k 9Mz<(| '{!3cfMS޳kf1;_be}Ǎ~\kkJ@ : .&|kG7ͻhm8s0.d̞1M:# ~پ7KvذaƧ `: 03lp^: Bɼ崪r(l-gX1c^5p0QBX9oLKlIM\8$ʗ\kʭ`:~͐g:a<>Y}Lݜ j-n{~'6khUOck9\~`,˄qcTMC}BMR,_X$G|L&&C{3M^ұ]k5v1?#xO ^ovQ: N[Y15ժ#-5=;w $[X5|5JHɬVǁ n]:fC8]R?UB0ٌ@Wu%{u,3nۮJF̚&K/sM5mJjk kW;}"ɤ c}H{eK֍~$6 |ef1,߄c s P:/?K*l35l*&YX t[7og86efjt-|u'38Z_60`:b*Q0of X6*;vUʦ rٳg!\k{Ų>sҴN7"rڶ8_tL}#"JH%d{F\aIav\4ir}..9L6iXC/S`Æ !{J̠sUڈIM]sX꾋Ra\=_z?svk쓛~wXdM(W_E0}#&?n,j&`<3ɤ?jׇjRcYhLP㡦T˖} 4㸉Sܟ*Iж}G% VS\EdACD0Ytdp>+(O4Y a E@^"d!s\YKGC>PKPf$Pbn bKϛxj؏##3tF0H@m޲2d~P>N ̚1ز+.dW _s=2' ^~?E7'Zq=(k/_F S 5[CfEJPZhHFTdOWRzew݂E0%I"z H&M![iQgʦ d˞SS2GUӒH%w Z ‡mxߧud V0OthC sҬY[*U3V-aC*#="iYX l4@*)&2k}:v:g_|&$]"T)Y #v`23?ҒJ/֔~+5Sczh۰QFvz1ef-.ک C3O1Fi 6laL`&.RVɢ*f! bWsjVw>炔.\BzpN9`~4mRoxuԤñBM$CLJ !8x|ӾlܾW5';o}Ȕ֐Bb4ҩ&MgAI9ox T]q5c@0ޤYKM*kO5{.ԮF0]dQZjk}err3Yj'7e7`dSp<_&7Ppl׺j55yp &b~qOr?v[.AHx/ZBYgo ۉSߨaܿ|BZƌ,M#,ɚy5!1۷n."UR̻umE]!<[nX7dP?F ZY)A!Q}SKMƀq(Y#-|ʈY.Z\WR!o` ,tfe7rd p%Edqd㉹oÆ u!ae$iT=e,M<䠒+jpIu*!o%2 s| HeS9 J A.ن4P Z:o`BMܨq5ꦷ 8t2>sz( RzŌmTupڍR0o6UQF0tYiI.k*Bz!r`jZB]bC5X7633d͖& s91r$f}* .$=*Pԩ= *S44kN(cBE|IKu̔Evڡϙ@ ; XT{HC`:CP fu4[wb H]<3|Thjf˖(d~)E!>r*+3E,z6~8Y~q&~.'}ȖKboJ U<4{c&Jp^$A9|6%:͓W.+e r˃Kwe;Ĵ:3@N@CoGOlKj2gnVZNpz٥wR|esEK̥s֌)2>N>\?{V?,C *E<TI e`-Rx)5` :n2>&I˖.ꆴ14+A5f͞Cڷm)Oօطk_F0ɷ(1(7s 0e>^}L(qPt9էC͍w#5t!VK-<"DV"钤W)CW.MLM?p˦ }R\}#(#~)W۶l:((v"!U;qBޛ{fI-fx4n~MnܾEbljD{"kT&?`rت}u\8wVxo?o!EJifw1WXVl2ŵu sX&k͛y+(TX{m~#$ɒCeA^_lذaSM0)02!Y15ऺm:uo7WI`Y{L?[X K[9*(g8A$)8$+F"k.Ktq%{C=jdLj,X/a)! д`k_Uc~5O=qM&E0i uu8iT n׺ޕ,OU5$ EUE06n* sev(⮌l2BIoл$.7ޑBGڬ~wR@PIaCq oyC5jS&EKS&+9 仆ܬe[B0q;0e.>7]e`rYBrؐ>\hY NMb L~蛉\#0MbH+kܴf.6°&UڴJE0޲lۺI~M|Vn}lfsBY]tgS8_NuKfFRYwq nZ7#0cSC؆ 6K J01eFQˁr+PWTe2HY'rՐ-d$!{5ٳ{O0eb\6FGC5u3s[-;mLCs˗h/N6j0 ߺf P[-Z4a^<2b~Zd3IӼQ]UKxsC A$p'tΝo|S 0,"#={#%ԉtY#_'0|ף>("3T+Uc|W]¤66iRgȨN^xWHӥpk*-mQ97'-k6K"ܜs˖j**Zy`bI~ ɚ8mO oT5+Wo8_C0[iH`(L-Mzir.6D .? Qow:xJ?MRqMż5];I+l 8P/H˝3c3bOr`ߞ`LSZp^&w Db$yfŔ"e*%1d,7[ &/ETmYQOve}0$BGw4 aÆ*l`x\wEYj F:n$|/Q fHڍb&9^ $/ޑS+kH#a)ɴ8o*hwHR8DYUE\k9}+HbjfMOu\!ܓS+uǕF`Bl/n9-r&0fq.s-ruL@γWSʎ5K0=*U˳ًϑY AWMH=|lxҚGp 1Y:>)ޠ 5Ր6rz(= H)8a9Fs]}'LWRY3Oec*Jm yM+1QK6m)Z(VWn}oC!Jҩk Ωvq\dN˦Hp F:q/$!qmZ6-x+=mzOMPBQiȞ:u:mjZJʒ~(ϝKh;6Wzr}I#4uk]N+%52&&P%`2N[6nP&luFsfN&쒆Kⴉ\nU,Sy %2P䭹~ޢ{Β: XdeP &A  st ZYp]^'c'1sYxn>=y9nдY9#lj!g.7WkY#P@M+j.R$%5l:P;BOPkI8VzpP &Yk5=>OwzF0{L*pyr՚Z3c|׬8n!@ 6c9qLp|,%w 2H6lM0`L$m3A Q [?"Fau':IҤ%>@$.2ĕ1"hk_Ƚs >Uf3Z=?DT~2|v*씥+hg)^TU yOLd7["V/(xb~ќ=63~PxL,7_i3&|.ˑX뒮ǾpMzc TZWsU^&HXrCP|͑JjF8}?m'ޒLoټQ>ԖBj}'х ~SHQA=L9q"ƽr p6@%Ij(hA2d̤$Ap2eΪjC%7&C JRdyw-Yܵ5RAz%1ҘiN< gq:A3kOGk f_i2)-'KiۨIasӌ!CP>19 S )׏Jhlj&$o&s@qc66t<~NR o֬R%qGV C(uͼ7Pri) i7WW%=>5@c(@٦#ל=ȑCE5UԖ_ktIXy#yst.2,sHt:7 (N1ӭ*`ӐX:8ϔkY&[_FPcquk O9yI%ז)3NɦU-!4[\lHg3w3~d[gCMZ,6XÒHٙ"{ueRzc]8gvE;&ܻ)Ee歛&ヨ!KiK yI0-'4a 6lWaLK]"X \%(*p?O 13y_EBVηoKx7%b\c 9E}ڹ27!_u-XDLA-ػRȱhcPH~!<~JCz|WU.Z௹T]j iDAq_2D7w}ҌokC#0s2a{D:IM/s?Q} 860P^ Z`ÄcI}tl%TNޤ:f!A /_gO;0q6$G3O!7:Thz.(ϐaw 6l 6t"*UX<|~F}V|0kkzc 6%7PpE]wݽiQ;j2)EG H_hA2s/PWj 6lذa# 6h9lLЪƿBv/&ȍ6lذaÆ ӆOrE3w錆db H;D SlذaÆ o ,[ wz.󱟑 6lذa6aÆ 6lذaÆ 6aÆ 6lذaÆ 6aÆ 6lذaÆ 6t &L,n%N*1cY]"W\֞h6l@#8q͛?Ð]xQ>iҦX~6lذaÆO6t@JZg4ֹܼq=6| I˗y;(2N&q_˭ճ۰TZ]d!W. H0%O}=7]Vibƌ޽^xs]cGdlذaÆ 6t@2}.;n\s@Yiմ\z%hR!bDe")dc3!5DE"B(Y|r<@޼z;w &q&2ʳ{Odr>tXq1޼S^>y!o^:WD +F\+/K̽E˝37i1 { I0?{F L@^z%gņ<\pڂΝ۟!BDC?%&֮FM[~7cw-)^B ,ؼ3ͻ\؈=|lki~2u "^gx!lz"$krG?mP5<7<ʽwqIJHfcoLY$$Z(3~3.͒@M#ђƐPn'rey9;-R>V$IV4XM*gw1R{Hrytyx9KٕUn{pJf}lZtB*Rܐ2rOs@KWYdwdr&]I*,Z8W |bm.d.t)Gy})uqq_!iDN<^Mj{ϛK5dӀ <5{r>n2k$wذaywjFΟ;^9JTiԤ cwϮ:ߧ6ڶdޣRBix{vK7ΚH"TUW7:w*He ^RJ-EK\*3gٶe M3nJ.swo}~עU[ɑ+W ݽS6Q;5W|˯uMN7fL,˗.C`Æ 6 `:"Ϟ?jC,?4!̞9fhX䒽EC,]?Uut&l{nQB)ђ44<L-'9Wf&+eɁi;!ΐp*٦*{/|Ci>z FՔt_&7lUӻGW|9֩H*TZEpܧ䚈UvRBe;z,7[g@M,ZTfϘ&&n|Ϗ!dL'eUK.+:vIrQo,\BΝOF.ukTǏuB;v*aCd!uQUN8!]8qd_:o'>CFW|ԭQY|a y˗ԬS_%O.ϟ?SQ$7PT40CNaȩGs2-1PRuquv bփ$i2ٺe'U<9ogek7>'_]#G "sgFƆ 6l6tD0%!K<˲eyz$)ZIYHae}raiye>_E0vw&-L=v{cEh֢4oF6+;wl[E0w խn` JԨRXIԵ{lDReyGIS7gdp8#2)ZBl-7oܐu oe:H _Fb/>ʩU:w}'OdaUbÆ 6= J0$.Kck`zd'Y1#9ܽ7`\R"%&GsN1xxS S7i!j/gMuO!ѓ4+Рjrٶyw{|nH%cTR*j+D4#ɪK|AƋ/?I)Qblj wU&ِuIʻ&O>l$Lī\kɵNlaZmLЄyO<^LX67?  m8I >0w!߻w*D1.lkOraMweV~ƴgz7B %m7Q- y%Mٳ'j QbyhDX#OI tċό]U?knDI ;ʅsg%8ٵClG0&O!ÇV.=%cCU V\﫞3YV}"C1#~ fC N$?̏P`03Bvlݢs1+P6`)YԋS9kdx2Ң՗J0'5lJ[`+Mrj}۷oYo" R*R۷yA*dC" |2C D %RR i^[C;n4{Ct`gc42r(R$Hø1#p:M:^\ A8m2Jrϛ[ AlI:wRΜ9-}~$.]0fa 26>f{`BhPQ,ʙ;sV۵y&l4Dpْoy΁jBJӎQ!s^4T"F 76Na]CWdu75?g<+i>k,Y<_!׏qg^ q^0oطWuX[l];)yX}{k4L|"CyoLAm`>s{.uǬG 7S%cJ˖(:w&K ukq*K1~1D]āK?yNΔlޣ4Ç΍,vކ 6l`L` !r 驤FUn"eϙ>崤1\G/5bV&1ŕljH0I%=6KHIQ*XXr@k=iܣ?33[hCSuz,6ڢ$& "{m=n*(ug_ۆ%ȌiڢdV]U0C`B0I[iwS!8}$ݻtߑf?,m ATNT;ح` R g0p}w9>Y auGgUp kBtڂa~ %xa'N62F5\Ga*;n- _h͛56V'#)xjtУ JLcL}kq/Zy `/P֮\TS޳oԔjW@߿OPTсgx`Yu0ݵ:`L#ƌpQ'Og -x0h<~4/]Ԫʯcf0ՔsAѫYյC `b`9\h6$wjǰK9ka{`֣w*Y {v -NKVqDG^ cEH+Y0 ˉ4rD`Yls CGR =V}yЖ:j@.]LGSe ŞqX5o@VYdžA굨2Ѳ9BsI uh)gxI]vE m7҂37lX~0ϝ9m3)5. Íx5޹C},x\/@)9B?s? 0Uf̀Y:D>h0׿w7s03fDKg^Pf Ç\H5ܺ ]=;T͈$_dxwٸn(3a x;rX/_r5nJ(B(ypܽ'rR{@v !lcҿW7!G8Xf|ƘU|۷nPı#XPm*榠* x+nު +7j+c?x8ٳGRi]Ѕҥ rR в* ԏ ea.`1|@+~JUcٲ(R X, USB<϶G /`bsƆJ-a7j{1q/X (o|~gVGv,7=1 _Х&YJJJJϓL-0g+$c+S203`P20@πHOG; 0]}+SvWzM~`(5Z;<82~}RRRRRW0D -.Yf՜(u*{n{C(}cN"?y\mt@w46KPN3  /fκbmly|n Yי\:Y `bcB.*Dnٵ ύV`o9s x`pBV-_9QPg1tB+|c|/o08gx#+UJO>G ʡϝ!oTEUYS[Jf|M9B7<_1w8O/lfnי ,E(@ԡKw*( cT]t|n ZYmٴW[94}6oX9+VLLJJJJJME~ fBK 5o[ &bEp8D;q!NM Q/ _UِAώ?D7pk䳖]e0? ==j|V|-pn&*j"VXy?3ye<9q(-۴+6`c16D˃vK5߲0Q3x9P*00!#p`换} S|24cЈ3-be\5erFИ3WntsLh蘑"2r`` BFҔsMC{~(-4s/t,p ̠=f̙ @ \9rq]VOܾmX6mXnÁYTE(5kf5[S0#DЂY&0diT]$K7q0C(JXC̹hʄ1\K3DE̥v&rѫuN4s27(S,\a}!, m4(kUVm3 b=h7MWu$# v/P:i T8s1wYf7`Zx.:>Z))))?G06%P.d_OwsR&6bW_ѕMLdleBgW=e#zYTb@eymYpKe1)Y'i¡WwR.AjZL|gӽa0.,Ƽ&{IK/o(S} to(*y;r+8NH\}]uJKje|vč 0 b$0`\ν: ڡ\005i' Fc ؗ haFߕqٳ@J*5_+ژM+R8ݍ֧Aȣ/0L?:V%fTx)jѸ^.]zUvl!_ ` %lJ€N(~^*E5T ȠŃ&*uӠ_T5UkJ-O}gp^}DNݪ[(}zOMtpJV4{n5a+U9Ќ>T +*Þ8{sސ" | 2|4/U׬}?S!#c`TM `"p|ITFИĦÅw8u kH0TRyuQPaZn WIRBҘ{a"h^TYB]K (!~\(BWtq yE -F"W=(-"DU#y~QtםsNOb$"Ta*<8qHLCE--Ec+q(ZxUmSf"s{K7я01)'R Pf/%`Ћ',(WyE+/鯩M PIaТ:" /x~F!yyW/_dc:} 5~uϟ 0pZU- ^Ŏ7<#D2Tv6{ô/diԻ[G:{K3a239(`C$gCd^ AKH:ߟ t"!5_<+6h-T`o޸@ڣ /Q^~Crv)Lzw0+UǂAP9c_>{FGX³y)U@ak F+8ЃMlUU"omF\GY `N۷mF(oT;v ߼~-I `j߼zEFV8FQBCd 2]rE%Ń и3cz/l 6G͚EJyL6=(yFbs ȷ} Z`"}XN?z(<4gܿL#؈gRxcCiEsQ~`S .idM#"<ð.SP*TsgNOڸ}Wֱ-k\))))+ ZR3,-_Ο9?dhSrz^$TDH<&Oj nR57eyEn;\, $P>=F]|-KKgv%pXݏ΍?D> `HOL?^%繏&rC u._x<{s3&ƗGNM 3c=?m`xR!wy`*=D}0 0z ky"EJܷGg)SYbz-G~ScF4<'J^gSQn.*Z} !Tҭ'ىюk 쌹(Xx<=?j#BU>s-WjĹ,XCTk!Kdw@`+a@zzi14aTJeN,CǺUP 92ҥ-Y2tӓΠ8\}aϞD{<-۴co?쩓wN/uK- rʶvl'O\&0IQX85P,"aLcsT kjTx !x?rl@UYxɔ"1&ӘS7wT%D '>W{ g?^pT$UQ0cGQUS p^n3Ǎʩ -/#.uؚ{YGJJJϖL-i|~( E06FIbsT^Chۖ L,cC[XNMKQFXķ_Ȗ0 @! Ylx`ZT/<7={}{riDDs֥[/"\2*1 |MLSQxD&h0π @YX Qr?X|ܘ/73UYGݥ% +'X|Є؄0?+XhQ-<91`텈1h'RgUTAH x==LYrva)1By_C5Q ⩘`Bh$gI{voWWI:IB3ׯUBe~ 0@EpC(2~.xGX-{8RRRRRRR$`JITj C>rʲ* Ȏ&x7Pt uu]))))))))?O0EBʐ[BzlsP"[,tIJIJIJIJIԒCGʗߙ+  Gq? m=>~D4f)/jEܧ/co׃&sʚ5;:^֖ kEh))))$`jlԾSWJAZPPuԖ>i؄&U C{vn#w~yRR6.Z C=pQV֩iYdo@zurSF_,C*SЉ9D7CJ2IRZuh: ~($8&A^^̦-ZQReԔcznrz%'!Ss͗,(.s/zC}?E:)t܈LӘw)darK6&<4ssXx\`CCCED>Mu4)Xg1 mY9Ӓk4m8 g+E:::dffNiӥq[lӞULǏV{0-,z:3zH]z%ѿ{oNmC $ ݺy>};<ըŭ*[O<&̨xҔ^/&=~c܂I :>\}TJJJ$SK `;֍NwnFmp|)s#==}ܽ)VvlK J`EY䢴3S;kLOz~!w}CgOiSʹ;daѨIs̉Fһobjt-:uX͒5U\MDS+I%SaXmޱ_~IcK 4=zS.ڕK $9sQ-8L= -NoBipϏ> :-]۷PeEvDe^B%*Y,e#Zb ݽ}K\C;4tLJ:zZY[SDxΪeX۴D1eJK{:QNX5kף&[bhhMiӑ'5}2+RRRRS0fHh0͟3N;1kb!g-FL([ܔUQ^=yڔ:- ϐ#߻mhaD+b}ʳwvK%{HI2Sێ]ȹ@AлX /R~h8[DIg= czuuuHlzZh>m۲  =b2350J226eєsi @R թאu̠x\~]G@/X[>~%*UF]zwФ5{jب))߀GD6͝5= L X*_g~E<òI%J&___>w7T<Ӑ*xTʊ*WΞ kWс}LJ28:Rf^fjM*1lyMGGEJJJ*6IRBSXLmԐ|)sÒ 0S%6فܯKS0ٻdʓ)]w^|NaA܈a-[8%B wÈ#oL%23H~=|t[{ 3x a8_sy|&V9|P?N`pdOR ev3i;IBl8dž6n|߾}Û!7P!.x|k\njd")cKFFF4|xqԥ.Z۽;=1טWLc'L;iG_߀2K17WD Dxu|>&&<0+ P+ o+D?~ ab}}r.!^b܁_ ó1c*s #Ξ{u 65 c}0jq !/oH@ئuj6 .J #b)e?71V}~ml7 uTy~G & 2k+9~x9-n > Qae&`Nyӌ)5h=;yz;V񹆊9Ps'֒{cL3pa Hee&c5؄SD=c}a]هui%##</BxĽy =ek#{gP\X"6ƁWSPJuz!]-^R\|1ft[^JR?9jہ>t[TWee9=UcFqIJJJ*%SK Lli(OÂntw՟~GR} TKi[0-Rы+2B|C6oJK\Ek3J_4#;gP?#ы<\_ӧ{ ۬ʔZNzF*Pf,2B>O=)^ 16+Z9YeaX^w?G_*YӰ^ @z&WC1v҉qg&tF3o9j4yҒ O!&o:J!1\x-@M㔎<<''QRpb]5[v6hϞ90aL!l E`,h8!ׯ]F5?[ G1?|xOaC9v"x/@Y8`,?{΋ 1p}{ь(5=t_.q۶Cg/vL7]GwUa#'ʥtNa 7ǏPf#P9aߍt㖎0SQzP5gOBoD5:w}]Rr)T1+VfW}FKT G>\JU) ¸\#kx -ytxtUVKt ~+kЈ 5W>s8C@X #sym97q^gn޸::) J*XY[cݿgQ`Y63axtp]ݽ}O0wy#TZ v7<QU7@@5x5Dۄ5l@z!sngosyr*1/+,|gm۶$GT*w[ʑ+7?k@@@xRT\EoV\, &o 0o0hު-ggpG*W?7t^5g 5ra6sf0}#i1nW\4莊q)S ǹq*C 5kٚMG:u՟&p5sڹms;=E3jY-NBlCNFTAi1'cF F<%SK Lx6+^ѭUI ;RnevgιKyPަT=`i^2=}NHt/KY*$3#U׏tow"(By?ҥ*oњ.Je]{ʓ Uʷ^׸@QyaM_IG'J!ƒ3k^L^\jog)Sw_e(TZE{gcJ:u{waZx)J@S'Ƒ0v|904*E~`ğ:~6[^P.h{ 7 :v0T_0a!<жvrZbi/& LG\H3&Oq'5@ZR@uiʄ6EphE1$jD3سA| 0 "F9BSװ8>o'K a$Λ3C_CCC#a֤g\KP0k$6d]Sz HOW\0235]kxFOJEaF^\'s& ۓ!La6&zf{cA#xЖx685G۾;~`wܝ|x`5qeslڢ5y![%xiZQ M6SQGG]2144yH)^+>n ;a ҽ;5 ؅WO&OQ; țƆKq׮Qx<$ï_F`޻Kԧ6KL( Z \f%*NJ5ҋ e 'ӓsn5otu~Lgs-^4r{@s.5+.S}3x<˕ۉ=}!W.]|aiG&=m$r\hq ήt Ozu(u~N"G!^F߿uYӧEHY{tL#Ж k9!&Y>o &OC>`τg酘&L-x=wCUs7,H\)+i`D;$T&`-zu #3{%}cvrheFk9ɞ]}Ő aX8t*)Џz?CԸ$xliSMn{ g=SӷPp[l󦥗gێg'ω4rz-FLF3OSg: }N'2&ͨdW>~Gv$u 0+  6p8r8ؑCy'`TKQU0O=L/c  gH0\ҽe˗,p8Y:u4n$?wC *B;w ?{:txF$t1cSzl4C뎭i¹ރc(UotxxCo˶)S^3|xĹX=ЩUV '<70Q 0?z`zKh)tM>e|n<'Ӈ  ԟΞ>F4<|c_TA#jҼ-?>-:qNI~v!! afTv=ܯ' }L<=iEo"B MD24vT;S/1w.X{فC0g_ž kW,Lxhq$GrGϯ}踀/R)Uto wștjBO=Ά O٧ϯ9eW7xUL*1:o䘚 \ 2_ G `Wz-p֪׏!Ċj85R0ƍF7Ba˜Î~(Tr`"/=aBH]"< iKiF1r`gȘ6nŻzvxB6S>1?=p]\n3-xH?ZUsԀ,qwĎ3<G+M)ϰсjE3_hFkT+vܫkGLIR|3K\Ԭ{`Nڅy\;jM'*JOcR[_rJ^ZdpWzC* MUi55@ډa{u)ң,'*ٺy;몋eP._z4@sp Rd'UdaĚKK15K⸀ABnbp] ky-ж8Bgo_訌Ap `(B!?y:)_S\ coQN.Zޱ ATAc1:YvyDi9iЁdd(Xo#sEBNa<*E0v) 4&TK}'5ߎy3N"[B.;_S<=cyuvB<憇kwncoFl'pqgxB!0&yGX(!REy𦡀ƌm@R PX-k( nwc8T B4u<7jo((k \RxP|,G9[Bg({*VQ)^C0ݭ#G,\7 ^fA_%)MDHmA(Q^C`kИÖف\GEt@3!U0 X{ф{`N%!nj!QKXhHi0,ڎ(cnPкg@-1R @,V{??z+[*@rL7p(5SqL09g5/B1?=8gƔh^LQ0Cs.=[FX^^m9۴mC(<(.%%%%'HmفKhlǻH-7/v2CnJT&pS *4^g|E|` B*:ZgU<690O߫.8,K3OpA 3>cx6ØtE3Q҄=;1Mm̝7@_f9@^_99m3j ;*aʔ,3Ygaɥڔ8EU0$`" %Pػ a(e(:g#{a5 &krE*" qlo\[h ~.- <<:qLUṮΝ>٫V6{g`L=!K^H"gzQދOY$033АP>_` |R3"P@P$&0Q( 9( OFD0'ELQ/Y8O(rݸn ΋G)GcsYV[ȫ1w!o Bcn-<{vhM׮\RJJJJwJ:Sw ^uS\6 a~D*ᤅx M9V `jfLBgMD$NM ELYVݘRe/qˏ, ~B\'*c|㹄 aĭp42CHw!Yj~-\ on(L- *>w+{Vm֚K<(XnBZ{}D(, LĀJL6p}-N07/N?b`Tl98|ܖ6$TtߛB*޿{Sw6_%V# !z ╧2`WE`@ IBXAX#a h`|(";r DaXALj߁C`P>ع;xƍ*ڂAzd» 34at)LxP2 k%?ODt֋sNgØ.@|V&<@k6m'}=}C6_" xqf 6ABEQ(Boyބq ۰m7OYY 1 ` `wh\xgǶ1^;xEH.Z3eΒv8FOe4UE˹Z,_)*PJ3=paׄGطG|ƍ7&ucbyKL/%^@X6)=ߏD]εs0QEPq\+%|]GGp-߽Wir& nz %~W5+8v!I *%mݴ{*GC̔n~60Q qQQ^z̹UbJ~cc-8~{'!} Fr7l [ FF&XgpIT p`<0t6]:6\.m# /CԶEc.`Ezb'.žW-YC@*pWob}jEw RMO { GKCʛ8v-Ο/`.Z @r/Ieߨ `j&}O3Kl<˗peSrVĭ72#G.;h(pY" BۘKW[zuxϣ/)۾=x n W>-b!G?{GxOEDUQ 6!(0)KV>Dph8yDcƂ|YWS !W5־v&EGQ]`A"#rN=\0̨|>;y=<~tPvcFU.>66 %`u er>xτ3y3aZ"Cdz܌7wҤ꽘޽sޑwJ.CSfVA(0p_@.BT3cD4¥ܲ ''>ϟӪK@5Xs譡F20p*`"VYm(@[/ hߥ{o, b.@pa_zU]1`ƕކF(bKRم! c͆\F:Oj ofsp+VBCG˗.p`Ե'iG/؄wmu;;9sO"(%0@F?DٶCg** <줶p`$x<0gOplٰLh.*vjz7|8>p--SfDb9TPMf_­#P0H$6꯸&XOװ(^8& eĘ\tϮ\is)xj`nfNZggvx:u{ Vg:iђP}*5ja.%4D6k:yb=E 3c%\/_&ij5n鼉2yh.Ѓ qe"MP{eBмv"6s(Dh06\/A" 1 $.UaX7_M:x#ȍ`WqNjOWb%y|5mٚZ.G)ZT$quV=Wc^-ZΞƙn %%%;$SK `~}.(("'MeW{A@f!p}C Zr@; 0p/%BIc#{P7}9EK׏Q Y2Ff#z:Tt/KNx$f.R%+Ud!x1muo|G)(VIk.1>@?»srRh "XKepߋؽj4? }6w}k)xgc1Tlu EBESǮ)g}yvת \MF-PBMsH ou^c ql|j:uؔ_G!xqnJ4Oq FZj' % DS'[%@  h/*7]DZ7lA9*fpu`Zv3;z7n"`"5V܃1]C7C+{ŀ5N@8A@Ѭ 0oo.2+ hи95j\<\oٴ>J W/o;g٫['EH<ڻ` uޛqk`SU-M]{sr_`8TF"<{ܱkPccCiol&y}k٘״[Ͼ15,ၶN <N ۹"flu6g=8>Z| (}R>pBsg^K\!~.gR̋^e?¿X5*VcqZSP`jb70`MpAy{}Nk@@n ]]xƔ{KM zִɜf҂? [dh!emcC!c;CnӢ} %v!\ ѪK;q  F}}0/ "Y#8T+R96DиZ"R}9 ]d oW\bl pCd@ccx 1ma79  ~Si ҈cc sbN׉E<y "0y gpo) c <ٰvo>&x1MیvpMpc<ꤱ]C(ú|vO`p~\j~Fb,X(NP ew,X!-pǵuy"_)^q=E"J#(+RI˪<;1eTkhk ^oOL11Fyc.|Ls+sAA|^1kYg[,%%%'I*UN= GEL,`"N$`*B @vĊď6'a ˧a8: &Б@1)eB΋KJʼ%G}jNt}l7rc\א[ pV4M5 ('̝TRH.]zޥU)UJ6!;҅>qrRRK1e)= xqyo l _گB0ZP-.=CkV-nJ!w^B,%%%%%. RRR&[qH &]^rʛHBLJ?z9_2MJJJJJJ" RRR,Ov.υ<CE++QqTVwITHTHTH=tS_CJ^ҢW҃B7nRRq{O=R 葈+%%%%%9sQ)5Lذv%KlюpI#cckoMkܾAJJ*vK@ eK""˖(txRҥwc-WCL-U^B3_ @֠wo 6qCGz EJKk6oVW~yRRJckGk6nʬZ4XߛZnG%KIFH+l)V20=t,ӮcjڢmXI!!=RRRRRRUIRZuhҒ޹E*\d7Nj\ #D2 uӫ/u̔RQƲ(1_}EouTk~E%_w=C=*ҫ>=w|z ;s,HG;pJmcC˔ b=lٰ< ޼)SZ{Cdbb*8]V-_B+.TT@JFK"T~#ڳs=z[zSQz !#=u߻ߙ9KVP*ӑwP4kڤ$N]lhYtsLϔ9 UZheIBMO?'GBm;P9k@mX޾˒5UY2f1Oׯ^_B*WD{o?Ըi Ќ@Ҕܱ=yg*%%%! ZR#vypwg#&ss 7tX*Sܶ3SZrnULҘѣw{z }]%1sNѻ+/)<$BԀn#mHg')"4<پۼ0媛<\uKK.jKNyӨayK.KMc8/?HoBvL 7ѳc͛C(m]:uѢY 2MOϟc<Sn~ :sDgB}nE OjթO8'2Z Є)3ٻB<{_\ QnxK&&sz"{6?AwOA߮Td)F %7{TaMM#& -;K(e*!~U~)S+jߪ)oAOR&/??񼱵ͪFэkWq6=%0CBitؑ$Y[~ 0'֜ܶ=u]=j=Y)Gͅg|i`fHMup^zܶ895v!sͿsm;v!i@jgY.7=R͎J}gOM9g09񓧱'CfjBLBd@])3M4_;1h쨡t)O b y;ӊ% vٗ<=iI?Q.&q>}ѵGojԴX%ԺPbԻ@.ֹ]$Ԕ@:GKMiӥ^Kt)ʓ7?YNMoEy?2gIܽy}H3Nx~R)8>K K/ O]C=JݖLRxC 0-607$,6djcN"'e:)tVdv| /o}ǿCBP9XQ5U-pЀJ, 1#!($$C Q0sXj|%LJ 4$no# AAASa8檛ykfnNy987_Ƙ#! >g~0kaqU|?iu;?jxpP0'A?|Ã^< M@MچrK,(<"Ạ0f<m\yqm8۽o` TTХ0}GschhaÅ.Ob̖#'eʔ*5k:`<6<kq)چwɣG)W#͛y0{ '9 "sa}F79rp@q<ߩhUu5m2ݺyC70##h~/Η|ܻs7e4?d).C@#^xA_E$Zwi\['=67kx@ B!\C& cggM= o/(c:7_<'b-߹u{W͚=; K! O}5|?O44b:^b>571Wn'J-59qbsu)tA:,s} gΰA}8ų O|~J:u{?c;WVB#ڡflUDʖ(6 1dX?ɻ*%%%oL-%0aб/@Oݧ;"9vP<0k36X^뿞yWP<3~|P=^BbL@Zʹ!y\Mώ xƐ0KdVo7=w 22 ŘӺdryڔ nѧUr{5`,3Mca~%չg 8|ֱL6Ч*#HĀH;/tkE mQ\vk[6bJ-; 0)Wpwwwwwww$Hp@k[w-{A vgzzz_Ix4:ӐPv ʛ!,1`R=qwn"/Rװ~>e8qp]y`tؠkب;t᨝8~LV\-I.Vd˙[0;qZ_\PCK U̟JbIM}k& hPBws^ڏ"dO`̹g9r=Gd˦ap ձ*-yޙ'o~ɘ9{y/Nw /XX'w)8$p r==ټc%5qK) /KmذaPz~c΅5+7vV%˔fPܾ>''O~]U*ؠ,1oߗ/佄sP6\p*@ ;xO֬ṡH4i| qv.K/6 ޙ̵z3q|"9{c7:M:c;Vغ}6o2s`&LDJ.KΗcG965ϑ35s91?_fg͘*5.Æ ' %Z;ahgg˖#!5)Uty ]ۇtfmWLRWJ/ ^~Ts:_~㌄ 0e-)*gqɋTy 4JUݗb DʢEW^sb3uqi?a|>IʦD%R{! _xFC%(5@UQrces.ijgw^y|& _w&0)?ŝ:a eר Qǔs뇦3DMV>1E6X!|ؠ^fnW7^$G5y⫮f&!;oS'GQK-9rYӦ(peʒMR$Y2}v5+%pRj upucRbwҖ/=gOmp uHi1BqcAdM&7 |9kv9v^(n޺b OTη}n. `Գu^&"WU,<}:|&ǔQk6}/ve+TVݾu^Vs~!Bqgm 8,T4jŒZ;In9l/;D ܣ~wU}BMb~UO@Mu:wƫ1c# 9Oh%A$@CTl3`!ETXRYeYZ$jhRfQÆ\9^}ɸ1#5/T9[TegPB %Β_& %a#}jDH dv5Dug߲пwL`Z`6oVbƌmvf4wny/^xDn-QJ7K c`~u2O־S7I$2 'as C7d0wcm)`@r2nUV3ɀ#V7L-*93W]z 6jytӪWuFDPUM BȈ9ӹS@.]+֨eƶVn$k s,;pn=rDN8._MA7oJoVM76llt1&*p/hr43rbS{8wv\P_A*3`/T^g?sWCE'cʡ;5T$1Hؠrc(ψ~%N7_b=mCCymE"Q̊#o=s'P==6%Jրdxz,<I*Q3,m+X:pnb;\_(M+.VTNɱy<d7H_;1b#kx'ީ[.\)7N! 0uuo*}L3dҵCkپmӨY QkBc+)]JA7:B,N-yz*MZ8eB -eWTw\ .f&7qUP)T\Yl^B׬m5 8;m93#2T߀h,:]:1ꨇ"y<5`9b >L46 (b]_ gj27P(J3ٌT7l%{Ɂ}UAZԮPU' 0ή0uQp.p-T4o@~=G`sDTaU1fȖ6׉k0ĊUKn."GMz6eZՀY@|)}{v3Oy9вm36i,6 رØ%LHokSң7U$$U,u4kVStcy#Wi`{Ƕ2\ 5ߛ6e=&M| 5׍y׳ ٫ ïIZaFS՟!??Q4BCQ>룆 R%vI;1L4x0U ϵƔ_͘V(]9Q̩Wgak2W `!BQ| k>TygM>)pZ_:D̝5C#9` 6+؀Zwܿfm .5$(B9 + DDjΝ}k<ӟNJ98΀ ܡXrM$ oD%Sӫ=r5\6'nz̭W{Sz~&|xqL~<<3@0{B-cl9ƑJخE~8>>.ۃa10NF?A"] k6PmPޟ}}0e3yըUWʖUBٌp5?77MUiU40Y|-rJsau]<–ŌYX \T*S\Ν; d!C3U(DGm۴a&ҢM+r>0lr3a&*9ܴA{٘X|ٵCw DD=f\cG 7s/ǻ#[\+R#P?b2&)ڀ`Z W]cNVꚙ%iO0rױ0~sV=€ `暩y{8S+@_yA[=K\,giݼqz`]0`*@a%/L@ \tQVĉ Za[ֲMGٷwGh%L 0XWgڃ{QP>{u뤯9-)(P@̵i1m* N!VzN " 'yre/—S(9/ f\` <@!{ʬy F"P#t-ZGn%K&67"0C'jFC"EG jGoR `N3s_6+.SĨBj cGM RǵGf[y'UdV>x=sÄ y xDOkM(3cY|)l59܌oϵ  :YɆ ᴌ;׃gmpWcĘ lZ `vS.?/mZ4vHF !Abd .lNEGZy0 :dTj.Tw<6hnxdϿ8x3P7reI gMڷip6llt1&sBŠH $oU$A˷LĒrW.II4L*I4x } M'WmV+`UI `3gqV#3wiszAscrce 360PT}0;}LwmJ[MR.DI]~ 8tUS1g>LBv9M~Z}EԦ{'oAicTW%L̠A `Dj& P _i:Nh55<` '#ߔ~[7m#:*:wmJ&P%Az>T$'OAKsviad.MZQ8d`(]N+|RC)Ҹޏҽb֨UG 9~lǭt/p&d~9Wƍas`~ڦ<^I` 9raJ!!`zI- V5π!5*ӪB`ΘH ɽb&9Ve(Zݬ\_w$|jSin`HsC̃7i6"}"e*R0 ȶErʫXI*Ut!6}$5X;F$P?~ŹH۰¹sق t)%J/!K[$:qB 3MNJcfO< `"K0]b r3y)8je4h\X[9Ȓ36l6f0UW(llj-FC3<];'ȢQ4bhra)9|xA (3u,XrypWCa1 E|~牼~ `Rѥh2,\|>+0Gq-s*keQUkZ$6F@- %6Z8Vm>ѲPfiI"ZhyrVuYh Vj iZts6"OuގKZ|ns9L hDj+80_s(>d<ɵW?驈nHѝ͛dĐVșjf`p蔛lLvEHzj&MmkUx=pZ4s-C bBliУs1~{# cMsLpc{ok+-Z (m5c0)>C^܌uj8Q4/pLB$7JTEɤ͆kA%z|wn:b!f̐14mP[ _+ թجuMeș[׮UKW4ll3<yD)DYg oDqrfmkrh+Z0Sr j_h~ ,q;+zc 0UEX6tDS[Kر$dܜ2 &,un- Qly˘Za=!׫@";25߷B%Oidfm}j6`ؗ&\%trc% a@$ߐ"5Ì/?:fgӟRX;=+l*kSBxn$f 4ҋ0ӫ^|V8w@=G|ΓH26Ω;˟|Fh C~+/9Cs%΁+`F{I˦aʓ=M^(Jp{/g&AV"2Q?#D{wxqiвmG UCzN:(3`@`hl5`ρy6ҋUn bT%[hױ 1oB2PU6J#ܐ@OVn} %Eb,LkQEQ„ )q>)b^Z$>? )IzEDwmJȅlvЁ}ңKGT$^ TsQXskx&Sa*S-RVEL &ᮄDnoK_`*N>Z"G%gnnH^^  x!K4s2zX X"ŵ[eůK4W9%J FzZU]H#E+3ߗ$Y \f@1kzr8["h4c/zfmـb`yFbC._ $l0{襶pgRϯ:iPLB@M9ž~ZD %0Qx/ע>reZ\tFϵȏ+-M$LP QQ@ g@1PoRpOZ.xz^uR0Rhr `FHEJ-Z8H}+o͟w&FU2{}%V(u~bB)btq7LTRC2g*7oPZvBοe8{8asֽJx&`q/ 0nuYd$(#Tе@̎K8(k(NBH1Kp ʣΨkoK@ E Pد=ؾswSs0)ĵnYb(8(%)tjԬ#D\#l9.z4f0"jˊJ>eଢdWpY&Ia&FXq%,rjj$fǵYv!D\WeBj^#$*Ӫ=F aŇFN ,cF%,F9JTR5߫[G9?$H,7n\#F"@B4p]»c9lxܾ23_; cƠX3UF8u0QЪXK u\]6"|L8QIfv!~ayάucJ 3'WX֮^-hV"} ]"?*ƉO0WXOH 5u9H>o};i/ׄh泙+UќZQy֯_?:/]\b[>Vq^m6lh6`4ЦoItٰ~_"ej݉YJ5`VJSڤ\~n XtPzHF廗o%2O.=P3Lڞ˝7 YЂA[;}G?U4Vk d~R6n=Vڄ_wRcCF-SH帀J`.n =Syb`m)utiQk r (Ez:, Y&ns4YtIQ 1Z,rGuzQԲf$OZ.} bG('}q6߽{or301'!Q0 7N3`0"}pSrm$ ȹhPurO&q )@GTr(nqEr qP/q$`'r*yiөxGR`22* XҪbjCIA֍s֯UgKƉc`-.<U<5m!gΜSQAe2fΦ *kW"8–eUR O&PAR 87*-UN |9>6XaJ^7o\_nBN3O^)f Ǎ׽^KE3<> CN<P67<+bQm߹dΖC**v32Uw:[Ǯ=$QMPxjeX9:>d} 3ǀO)x rMn5p,\>7jyBxe5DXy ܹ8!ZQTEr MJ9".?rYW ** ̚Z}ݙ?|Uj=|,FqU0Hm;TUfط#|L^g c0b6H` aDžm[7fs;1(,r ]mfm6`~bXhs6g7֩[/-|,3k:w&FjAs_?y!>PzЙl(|(H7EiW u*hW/_R5Ke0B}s1xr|QHQ<*\L{gDnIrɯ6᣿?l j X|i AUhTg#hEu(;p >4dQ]gA % 62`5qֹjN%^ d)R S4op-9QsNu6SUVL06U&ϽmCat~95ϿVՐm6Ly-~[ݲi ڇ!YZy׶gjzhy|kSw`^6e1jO}T$E۾eM_/ԍٲҰˉi[m6lͶlLQ5DJUN,: 7m^ !Th\O{fmfm OA#i w}l)S"'p6;ۤzsmfmfـiQ?K*h@ޒ/Y ۏű6l6lsg6`fmfmfmMLl6l6l6۾ـimfmfmf710],>2?^8/tСe4~p?ҳ6 #E,ܗ~z3 = izWf7dq { ,`@>|O{έ6l/ .*u)R gW?)UϘI x&[7o{w6<,p ^(sukV~F4i%g|r5Ydmظ >4l\ܹ+&lo~ʼnO{aA,_@l6۾ـb6:K1,߽//?Ku~-`Y,#C4p`9g4tW}~~^S|xN޿y/򍋁 O (~C<{UW(d`<}w͗/=?7O_|l9)_o?x˻$hP  ~J^zǏB;_SZZE"vRN}n#}/54eKd⸟#[  L>}b`*5@;/^<,xp?^qt~{(d>xm0zҧ$?O!$̽?ت{QJYS_xݾt Rf]9uU$k3s?i!ͽxds2 kkk^a!'g:M@泂3'{-p ǯcOoϾmfY$hٶu;sZe1sVI0+V$JTϙ3lTJ / z@/KW \ HWRU(n?=?mK!$GB/5j;u뛀-`3G|IR:<8wWv xe- &? X_sRn}?0٩wݐ+ʓ+'TIAl JXV}*NlY)}.h9s畖m:ȵkWe>B2~#e`bRZ2j9v::9r瑢KYӧ|kشϐYzu(W\}eTi]Ǯ2s/zois4YRru+ٵ\vni#eIE ȑȏuKZb88Vy= hӡ?w }=Jx Aj}c/:uӹx<9s?v,!Cg"8cdٴa7tM$M^^gϚUe5 ✹5w5ݻ+CsgkD(]V^W/{v4~oǶfYܬcG kW dk :R )& K)E4IS;DH먊^xF-n~C_(diO\}(:/4CD %UQ \~},@x I[79zCִ_:/IV1^'s>?,ݗ]읿|˚l8p4n9S?>و1$X`2w=6 j+U*k|n -.u4ǎɐ}gӑ~m;H6-d[CTfٵc:?z,:+3}_$K2rs dά骨)SI$JԨTDSy;2Bg (S$MBM}p CwLFjˤȉu\n$Y;k|308tp?v,#nPeȜEa2zYh V*T*I%:V1b6>GO,׮^3Kcϖ=\vUڶh"ǏџթȬ5w?+W.9~;fX/~i٬lZe6i,|ʳmȱR|_̔$ml"Fh*SE8y)dY_R,L+ }xmqП3$.Z 0Q>#a-2c[yxësc&̗csL,D"C2sZQum<#˖h`5\\R&dm=rFC\Z@aHwIɣ^Ì.~T5܇0˗.Ȧ8= )g΁|" .^8)Z>>,zu1lIVpGfH${rQ9}H [o.]2gͦy7o1Np f#^<{Tι>uR9zޫC1qqlJ UuY,}@7VO0(ď@}{wˑC"4NEt'g}fr#2v% %GJ~EҾWQطW~[TwKտ;/k>~P玥s\)Rf\ aKF$Jh0qbw(.gϞ9n W.;'iҧ׹ 4ضqX!bD+}0 M>O|[7d'5sgѢǐLYi>1.3G^}5xL84dbU'Bkȼko<5U9Wիn7YLj!̽%kvJy LrΧ9̽38r'Sc>G1n9q'ySr3d9H^tZkk)ܖuĺ(qZH8MQ{(jP~횣W7oJ4'ɯ_ _~hW)ZYrup\NDY(BDOij+B~0NA ))RGi8~؄Fh˄~$ʔ 9`Kż3t f9TՖm;*m54q%CXiݮ~F䔁H\y4;O aKW8(_StidRVuusq8 - b?s#\D-6a~ɀt&%IY#FR?gq29r~r.qx߻C\hլD"d 6O*_Rڣ-;۬WBe}z(b&!7wk ᯿-_&lX9f;AձX(y:-d}eLcfh=Z"DY4ibZ,3Om߻[_a&-t<6=܌˗eޜ \,f,$ |S!qz sil\甩Js[6Xڮc7ϟ)0R U疹 XoTbzz3Rl9rIZuRz6?],yTcZ2n^3r>.Lal1-M8>ꬉD?xܱ^\p^&qB7kS2>oU_ Y:5v9 ZÜZb65Jk@c~Y/k[f-`{\Z&OIa,+VfJ;s7saѢiTɽ2XIZ ۵Tvqbmـb_ FK1rp~L@/kR\zPN-9,=S!@'ʷc:uO<*aW{|W 'aGpA()şG1pY旈)'GqT{۷-J" 0b#[#pC)V -SG̛5SN8*:ڬekȺAFf-eN1k/J'TV=>;;tƌb2۴+YJ~2ͦλwo&[3!א5x.L>[„ ld1ϝެsNUc3sGyj .[Ql&=n`@N``EAoPB#$44sa Q ys&4ք;{|U$ٔqZOHF/1bҢO0BkfCЫ/BvjmF|#Pêbߣ@ m66ћrc7xuVAeIXa$fgfDXUV/m>+gz!ė+q[TiLV1{VN.>dRH)q'6Drn y͛HK!߼keׯL@Grt^ sĿdhK%v_b~nfPA37̩_V{< 07ʩnkJB `RT(AdI^?5C,=Nڬ\XwH?g&;kͼPktGB%%oۢl5Ns0-l޲ G( 8DŽ0ijNG6Z7oء%%]rA s-=z IkkOT3 RcV5l-Y=z5 |1bJ IԯeEc(fC?{"vK*#QiJSHqhKDQ! 6nBIqP~`5{Nlu{Lnک2A5wc΀LͫPq0zx҄8cc)ɄS:œS U/9u#-q$2uݔ׳n(| `-QJvh#  ㈢tQL8Y̑Zz[cL4sB;<*!RtyQ~IΰƩ7 y@_̯&h8u ӦϨG?9D2p\` sn΋i32 *`2N8!ٸ͵cB]Z"x\Bml<9ɓkT&᳭ɜ䌹Ys2&Wk݌ZH.& -h"`\ 8nYx9ٵg_U«+)1"k8`ݼyh;V8٬C;`Х6tjR7X[]nx:Pܹ$A[2/!W$=jf_3rcs|aww 1 0Q+. 9k8~i0|և9:m(vʭDXk8C^<˭a&U96ryr=cL?-`rjJ@PpS[ɉE4ݍ=R6gsC $mXv!xG]IxWgT*a8UCNAe|7oZ:hh ܮϨ]aUk)ء 8k@ xtL^G:R.j~ `[R9mc`r_L<ѩdk1Jn'aιLc f\\詔38qO$N'ymAHB8(@SSrаQ `)[g*Uljg̀=$ut2qL)Y$*I7ZF%5xҌ7 Zbss?g%ZT=oҠ(ӤiugƛN*}"UyX'2`w-5 X)suM;`Zq[\^>)ɉ.92JfƘÇH>=s8u >ڀRt)5cF9B2N*z@"*pBh9FUݍfc3`^x|GA55m'Pkҹ`Z&UD3k>|Pc]:ɒ?&ϦPGdLH9hzP@.U,y>Y4|* :eo˵E; `QG|1j' t`vy~>N΢w>EHmA ȟMsRyc>lEp|)fбʩ Lj*-0DIEy%s5y[E69c*y!2|wb̂CIQU}qGA`C]쐇olwUdtP&N`r L 05\9uUԨ]O0R<w%vaX_-R@8HL#jO?kdl8Qp2u|F(-} Π.'>z䐆jKĖMƽN+2:y !_SzvfsfM)&Ewn^ɒН}rPg9ftQUčj H-*NHan5鮊,jV8>U%8rnz6aLJ&`'Eel顉Ά"=a ͽ#|5%(U+Nz5!&_UkԔ˩cj`>z@猥tGȼ[5m(ǎz 3OJ),%K4kث 7X+,$d9NE0VwY6JUyU)#| r- iBBۭU hm| Z>u'r>U4|0܋D2 WQ&;m&26ƍ,u4"PN]9aLPrYG9WTS'O%IG4ĕ0}>:u+Q8)<4rP[s``ߞn7j\Ghs_x/)zˬyҳ@M?Vm`fm6`o3PZ #EkP(Z[y|}r$,0i5b䥩:a_$`0WfGOtU0˧jfa4/ w.֜緞~յgs42+ ;r~E*k voeO#|I8o#{mgCgLY_mͪ3Pׯ>@n< N/ҭ7t2LאBJ 2HȥHn4'c %ٷ0pBS #Q$eNH7C Ҩniy7Yf2\iRLXC1QM#?3AwZemQԁu3dV&J&7;lPԙъO]@>pޫ6?`M*8[(6C0E|} `PB5Gѵ*+O~յGlrU-40=̹ 436jP(q=A);׮^Ud}|ԮQgq_0N}zv 1g `v_A0ԆuQ=]Ǯrлw?}| `/ !Tmv*<_o`V0kRŪxɍ ޴!Tq2]s0/?ʳMg5ľ`r= "bZc3MΦ-Z-X|e%*ن 7cʺecxT؎Ц-ۘ kV85ׯ% Ͷـbel2ڗrb>hl9$^ŻpN Ґ-Cl %<8s[nUdSTI/JO^%v^Ђ@Iʥ$S{ |./PMV1 ׏kHi %^gyZ%9>})s@I[+3,g"vFU\u.Xdڂ3PL]ôt=v"?Iʦ+#E\{Ufn|~RULޡj?s|(E㻺뢶sq "{Fέ>(>_8^UTQFQw-CecrķC!%/_\*z;9d`^ y/LYͺ O5#GO.ė[ϐ}UYĀ?fmXUPW$mKuP9;kxҬֹ^C{&Nq/ ۏђGT;Ͱ;+MvνbTe zs2 '|m[6k+X%qr>DحIl .I_ȩ+|=yKn@ڦU)$u̪ nJn R9V0#eu_u9/#׶%!Q]LG=f]:>3Ǒ /FsM)Ww\IVZ{71 P"!Bl3AW$ :aFPWȪ ,+ň, 8^>xj/ᯌGU-3"Dx{#cN$9V1 lľ0qQ(vJE=\3;rh32 *RcH/Y4O cljN0'xVG$*>U *6l˗i8e7_jhO^#9WΆ֭W_I, 9u8fQ>Z8we͸T]}\pJPSe\G#3Υj Oi Ru| j\kc6 p4w:(k8Wlܽ{[~0^ADINq(澠'*.0bm-eAZ&ѮSWə;Xw];oé DIݾmVm8qR֌'+;-,?y*3MPuV]UF Jc-} 7_h1xq~%JSP o۲'928ӌXug~ڛy:Nx5!cJkb%Ji#[k5SlaŐ̘~3s)}99}-w8̱ӸgYa`r"YD> 짟'ZFs%B&&S&z~lSҬU[0 U<߽7sT70Y8o'TpmfF ZgN뗯d׮2J`U^LlPȺVk_k#;晴C~mNN$2A.QTfп_pqOA4ewmJX*RVv6✯WFk}/Mue9)sV]09Q4^#T>`U9Kq`ͽe⻨nf%gٷg>Chs5It&(nW TMT v˔(勗皃 ሣd 8g^dnXO7z:t@CL`  yz ( &}; oKh(}[3_9~'ԉ\PS,l31\ iB*5ڷא &N%?Y?Wj1HJQ <Փc,0`a) ))i;DDB!ss'hsgsuַYQKc/1t%ĔQ[Y˟t3cG]^2h2'9pw9_HhBy~C׬\ y)ES~>Ьd"2M&`5R=5ZhQˆk>cF $ǎ 4/XzQPaT~87~Q ZøӲy,pdt\Eo2Bd,Y۬M$5^٣ U{RʜVag.o;RP$LDjф:#b( Q# @bâx9"H%Jg DxHksy5vGdI~ҶX.hbgryx!M rhlHD;b;E ^Û{~UȐmjZ}Mqu\Ugg[ $9!ħ)>$L('wi@Ќ'-^R_h' W=mřP_+/Z5>cFu.j>qGzQ/b탬 ;wF,u He6RK!xAR' +mu.KawG@n&bHމfkRtF!1Pjh~αG$Fh?GpD *Fr 1Zd=uƻC6 Jxk zC$irɞ#&`AȈDP>!$3}J VY/,_\xrV;<ߡ\̵$G#STO<1=n 4d;Wr%X_wi3A߆ a#f JfSke#}rK3uZ9߽3H!UyA+6 dq;iև8s2ExAk7\+;3c)~q+^B,^V<=57m )zE0qeFU@27k r%:aĒ%[6I`}QWgi _COk M,U f#7G\m%܌& ՘,Cao)RvgHuZJ,UyUpB!WVH XRjn)BXCX$!["EVKGk?%%2 Y#<͸#`ܟ0wJpsە[@1F?Ys;̹}(֭~6l|(%J}*Z$kxK=/dfW44j<J{af-)IoJc 9Jk?Bk,⪉w^rPn4+ˈDVɢ&W&XL+*m E2x؟4,K@`G~ju?7C*cP?Slu,r(Q!M?9jR:[ @0| <EX$8۰|b̜ ^6a ;j_Gːk%p"ԏ}؇xeljY? ThyZy}- ee6IL w#Y 7X\ˍj쌝$EVdA!2%7B*SwRMcIt׳aÆ;liÆZ2ŒXS! 6>&2LR"6lذ`L6l;%J5mذ11bĐ'Om`go"I9BŶaÆ 6aÆ 6lذaÆ 6aÆ 6lذaÆ 6aÆ 6lذaÆ 6aÆ 6lذaÆ 6tAq%U괚(0L7E r{8>;s ( FP>Iry]!ե)s1f? 9rZ5[;11sV9{;{VٰaÆ o` ORZM/3oB^u0)Z]pQ-,mabbt[ߊȉJԤ1]u[~"6Uɞ3ZT6mXb4KdUq:ng~`H,ĎGN8&ׯeg#BҥGoz̘:I.?QB%r2e8ٹc>]aÆ r>++hf\C(U{Ҳi#-^RX !?~dk2ih9u]3lDOd?-<{L>{Wkww+(Q&!kf=#x}&mz5ZO<6ؿYl9*t=ʪ;>W U FV,["a.o.PaIEfz5{3s[iHJ$F؎Ϟ>~*uCn;)G(|:$(d_ ֆHdI(idH^r|A9p6;Y۾cF|6na%FX`J}?&n{':(I)iܴ ؾM|ar5Yf!rLUSeƇBI˞ݻd*3~hӼ!>N7"W|MViZ8ntmYSUג7ert)3%q`lY0w\t)P\&O!?\6[.ܵ(kڱ=HroEС I$s.uWRKH/* cG~Qo7aD2rd3{0i(bƌ%yWq,TX>+[NCs,Ȍ1*m)[\23NFH mQ(yy}ϙ޵s{~:RRH-Uj<|r!GGÆ d}@k4ieeyi 9!{$f8+~w|z+a#{~ǯmS Dn* X&3U%Q=rxɾ@mfK( $ۧo`LV4iVXgQv[?aKNdulX79~\8<[;TTUjT.޿I[0Ҽu[)Y5\,lu4iɌ ,BWE=z˲ ~?6WrU߷tGTӨyxVNO//)ҷW77{;{X<¥ڵұm&Fj5mkȯ[69>PQ@mbH?Ήd)RT12|7;TV(az{L"rnwguGSws D2W|gҶ已kv|b,iI8ڑ#G3wV.[*ur\{?~|ٲiC @#zFӆ MK0!]6GO飗Nk!^d9X{JJٕYN9VMb.ϞՓ4q6aPKIZ)&h=2mp͍3dC @0CGOۅ)I \ PfU'/v| 3'oK &l?tB Ey0a¨,[I>= 3ܓvwjF$jVFܛ:Onn3|O?vA=7#Pm>3} #Ok/w~ߴ܍80ouscݴBqx16 愹Pm5>j @㙹oPcܖNIԹ[/Y$0døXrTK+֞3P 1X3RwW% u [uxFSfpkrn=cs[cY{zx|婠fOW^V;˳q_khܵ-51vt7PRyMe" q|b慽uٿz}O`dGuΝ< rCd?뇿wW:wfюg mͻk}Psg W?u\=xNφ0'n<ɐ1)?-SN3٫ W ULecս ӏq@neQ.?a\x!s#~}>f]fϾ8eʜEʚ5>}]yW._õdAcd"%&~qy6i*\1Sf %`~ߎuyyD<{⺸moXFe#$u+lXF|ILnb/%m؃3Mqv&ϝf?}^ eD.REp˦uQ޼޽ p uF͙TZ5ݲᱣ/_2W欚4n x,^0OuwG5s>C&9lxzyJIOۖeӐt殤95l".]TWZwj'Y#5N"7[K|E6l&.x]=ulX%͖H,/{]w̏/-'WRhL󤫐UH'cC.Ȗ^+s1lTHK vxmce'; f Җˢ$!^*9L;d$Sl4iҪҲ AbN"UgRfmbĈ CV׻ h7mD Ax! T!TCp@.V\ Y1a!C$۶YZS!<3?Hr#}zvWA9./ Sg'<~ h eԪ]G5|d58Yfkb| ucM{WKlMoo&'oCT#4.]ՊeE%u?5p%F`ɘU$o2k u椣YF;o߶U YfW8ǎ"F]F $}X_tI-U1ݬL0Ts?TXeX qfĈxRf&v2%AX7nP17w ɮY*.}r=BY1kTG[YCʢ{ rNxPRIn/]fo67geq^* ϙk1vI̚b.Xsw: dL3e*ags&+0aohOUT0g_}?U]p1ݳS$?+ˤ cU1\Q1DVXhܱʍ;IzJМ-ZL8,‡f ]m"Jҩ{5rmduv4[q}N]deJoxKTsB$M&S&Snp:tR ㌩~MZ-ʁ6hceÂ<<(Xx0ָCJ1|jմ!UA0݃S'u&o|AZr "Zxz>+]ƜfoݲY~N]{He@e3KFM/W`zE9+Rs9{f-Hu\o2%YjCbLFWJj93b>! uB0qyDp#H $bru7%hC\dPx3Zʘr󔷒>,}bFTwһW|dP2SU_}H ׃%BHFnIQ2pX~5$z.Iyf-udgM]6+%}GUwCR gx.'/b0PW[(rU^u? Y_|~Gd.i8+nαāFJEǀK#M_X[Db5! ]'`B@"p!\3BMNd%J%~覚v2Z,a :eW\AYdRe ;]{ѱ57( `Y3qfeA0Fn{aAzpۯ[yʔ5Ct D16"04T2πŘl4B1dkj#" ,ХǏx\gWܕXEZ CyuB7jP$Vaj2/7\PL3J/B>Z`y&6AD*` 33cR $?'޺L #Ʃ%tZi2b0%*A,tH6->d 2XI]4vJJ]$] g̛BE&( $d\3ήK0X&?& q"C^p"gS4k|,7}"3WNH*iio.=58YB=1%X3 s!#'P<^Czj HVة5@zuad#ޙukYI2fvy0$oY-.ywTRD{f ذv Akm˦Jfk v`R&_jD)X~@:~(W ׯQk: y fcnҠz Be3w('=5%| ~gaxUE%utT0ps H2\%pe  5qُ?!#ͼ 6 ^`&+ZW!bGԠwOwMF<~.7s\vAx3Vxju|䩸y*5*!HD$[0wR2U$ʈdMoGry9?k!iWӌb0}ȕ M3[Ff/sI؈a"KffEσ@›fO8$A'0zMXGeՎXGJ6i0$`bZlHIZiji<"н ̸Gwۿvm1txuEx\%i W-7.9aو/?VV{vJݍ`BJc5+qd.!w|JPZר5!CZ;BFh;j:f~FΐZTHHNK 9KvĽGm;tak]r9cy2z=%?чxrF0Qd 2B/ل hF&Ҫ9~LmޤA6kՖU%j&$SfU~yK䇎mZmֺgϝ%K8/ѸSB\?.,PlA-˗.͛\}<'H( :R~ݲYSI 'z@J&Gr{IdG(/4杭O_z-SMơB0!_(wjh'Qe% QZ\JŘ1fT-Md]RR9d$K&?\˔@N?u+y9SO#Yҷ`{5VGpeJ>wJU|g7ˬ H%@N,֫Uq 1F4iP;"l=H(kvnFc8#&셽T=.B[ Va8ڒ-(iE0*_TkG3Қ%HejRS}O0<9ۈc=|U 3T1L1GC`ۣhڢݜwjLWz<+da7lW!VI@R 1ǕSy'OlI\%X0I~s봷n~ijȨE- K6Y,~X &46ItۘMK>u`:f˜6|/s 4KQf[,#;u%/Iz`LۤR͟Wo \Z˖B~[}K+pB+E#6C,5S:vmZZт4Km#?EvMA IY'5J(JxBK|u~/*@p{D0]2ui٦$HXȬ (Չ2ƠCn*кLq`^x`" N6KD"Xp'L 0k̝LgJpX.ymٴ eB&"\6a#!:E؆1ijX+dju-Z!Bdg }aT$!|ټa* u !^9aAu&JQq@8/O<( j\&ܲ`\!Σe Vo Z9u̙5]Y\lsn歛:W7' `R "ŁCG*!Jyԩ{wLN&bc^bƂvlJ-(W{Xkں k<|Z_PVX@2k7w v,mذ߁M0]oNsx~<:`|L=8Ib0pGNٮDVӂ !g씫^D@id3zXRjPe%:-VRJ frC 3T!aߊ`6Y4K Jcd ozE{S߷5ɓǥruLh2gPՄ35nhHAfRdGh@Ξ?IBjV"="jP%!iȱ@}lФrE O}z(CRj5͸סW n2% ;)(aA&-2I]1!q X(i,K˗5j)d.sV'xI,`4nwp9a cEZğX~ϳZGvNu5߇̘Xšݑ̘oE0==e_f 33c5\!gN9w_%MLݤ1<+iȸ۬q}9zgduqG`-=RA]o3aXq_dzB6U,g#Bl,A5EI+4yH6}g=鳧goB0!4$)R4nP[!xԩzUR2aĚw3`ܨWlI.A`T"-PY˅I3gNIZ8Hq (=ۨi Ц*,++Cc Ƨ2gekV之W{XPA(+9C<S> ƍ\|&h NhÆl7Iқ؆Qq[3͚HnX1!\ԟe%IȞZ{~iL[>f9{qJI*3Y/^-^QKRg6#-uE0q KI' O>zYwL $JexC%sZf 9u26JgϏ3H:xSIR.Ϟb4*W^md磇nFZC0!Jhht"!slߢHx 4FxCfUa9E XKU 0P Y%$̛xlvU`< IB[0[\<%); ްlz@<5Xw!VM57Ԧ8&nX/)w iH ArI  JjF3_߇ZNFƅ)sfm^5\bZ3bͺq)5cEұm+ٽk2˚^$"ћLܬIRCGa /h;yh.!m:|/e eJ:(d̦(:W$Do۶j"cJXKO4/P:gl4BSd"{dH ]J1uC0z ɲŋ=9ML5ܙ`7͵;w4Ͼ](ɪըmѧdB] eˡevb>m97n\E7(b9G"-cmE0k֮.֐7bi„l_i`cuWdE%%@20F?MN煸Qd]0eIH:Thɝ/*%͙k 2۰a `u &-ZZrh7$B*&-mip/I:?9lv/7%E3* s$]f`۷p|å)H슻th ybj)AEvWlṔX"֭V\/%nX( puݚ3X. ddY=~iָAMImYj~Pw^WCZ } aEeNUQgW9VH$CZ7F[ZF{諮Ō+c**6k@][h_`S 38jvBJmyfLzR3'ɀpu0'Ok='ؚ%ًY\ >,BdΞ9/8mR @ӸPU!eqJTd+qK:~RRxQڂ 7Y.?[${")sO}\ΛLb "G\S 8njn$B%_(Aq2 d +ehYA"CT-@fHZ'1YH=wK09cPUƎH^`RcY}$HJ 1L0q3aLCHO?i?-[^ٽkG9֫^a孛7'.-m/0mYߗlfCt1LΘ0slݜoB0!XIiΣ*s ZH!tRIcErN,[Ȝ$IҤZ5&\ƍ(CJ@pd@Z4k< 1@}r/_hC/lZȽp}FIaZ+lAb!$ |H1}ʤ@ p9:r&)[HKH qӐ+VΕw1w.*[nu6sh!*V4r|ӰڌNJ[6[C*RTny}j$fzҼU;ޛ7m(ދ$K0!Ee"E*`qFY@C,>9#Cc 5! '7k3G X[Dj@:$R,"? fAc8?3=,nEŤ-D2믻Yk t͋Z)im9t0p&Qt @2!Č%}1nRd)߰Kg2b-K'u &/de }\T='d] 6Xڇ(~S4 +W.ɂysdҸ1:/-o-V <ͬeK9L 7܆uj+8d_aUdB9(C\/pz8Lc1C9‚\oُԴݶu& yRR Ƹ[e*q 11Ȧ6n $aOp3v `XZٟERJ>oJ?ퟍf '6\kԪ5WLMSbo);,ӰhK(C!̅5B0'|X{E:eSɆ 6M0]`̸Kl )LR᐀M!!L#E\BzGѿzVH(%֣||q%޻zG]R8O,k*}znڟb̈́>o3^;8pmյÆѾ^Kk_~Nu0a fֈWB0V,g_hQB>|D3.n9FhtHhZje.P5*k`!ICpkZn M6D<^Hqp]]^/$m>D)GDc275^܅41ɕ@#d 1{G\KR>n9n̸޼vc{{P_ȃkp4׆^=u3V3LߺuCkB.$D/xyyOsْG3bf狔}r%޴$ c}ȑ 3VrM%IKI̫xY,o'qN2\3. [>ΐ_U‥b9ls$2~梌-Qk|)^K"&ˢfFyXq{aok5Vڜ?uji,(d%GՕ5;3FbD nXy^ɚ@c?>cGgMS>hKݟW֏U$|9;8X!݂bIvj|N/zƔws~$D~ko R!eK6l8&.@MZnXpR@W6;Ir_ U(&}WZ3Cy XDJ=Iԩmp B[ˣEp1u85BpODٳ*l#޵-GUH_k'4h߷OzvLaa{7@Ftc\brhc! Mw20 J\o Jj6|nضe֚ByDӗ mƃ=\}U+ِS&Ȝ_7 Uψ"Ъd` o3vo =Gyʙ>8s&Rֹdۆ 66tY {13Y.[\os&V_8AQqb\_ذw0$a=Z,P|3VӧYSm'kQYT6IdorkÆ 6l/ӆp}{e'q6lذaÆ 6l`L6E =b}]b8mذaÆ 6lа 6lذaÆ 6lx' 6lذaÆ 6lx' 6lذaÆ 6lx' 6lذaÆ 6lx' (Ğ3w93G~`Lyr"yTihe jf6l|$HXd.ݓ_lz:Ew7w-By(iY 1lްN]cÆ 6laL.Z\'H=#x\p%7m*e$S}EӍzoE$^rM++(cĐǎ+WU_U%OZf"c;N\5}L?ZN|3!5|7kB˟ҵgOC}tl߶U.\8k 9V$M.1zJ6wH$aĪly;{*J.#zMgf,'H(s)SJpr1e&}ݱ%Ӥ];˱?sZH)${~% qs2_A#aŁʝWe$"D7er)]DսT[d~Ebږ62G13gn|'aÆ6tE0!5̔];wȓ'_,FX.Mm/93.dSb!`~"xvq9<~Wn\@[uP.? w/Vq!I+ܻvW!q #q2Ɨ3ʣ~wg_P6j*7[&xzyɪKU y ʨC:>{?9r呯  G!8 ^$cǑr2uiۡ㳸˩ęaF8k! DZL_ &M^׬mC^}OO5[ڴh*a͔%-VBc VɑÇdreyԪS_JL&-kW fDžJc1u,;/sƥ7e$9„0i׺yW(>.*QEs|%ە`Q/' !ǗFMCb#cWO`26$+V4+dyF9qf >eܼJ1vDQ  ;l;+U&:wԐ={vІ ׬]O ?fPyQ%zm)əӧW<. |Zu(<ˉ` %^ס?AȢt(hҷW77{|X1cƔY}{Onj:Vrs6n-_2e83>34RW2tPYhy\Qe  Vr/+Uu󆒽sJCs"M4i2 |%[CL?v~t"F}btfȘY'د\T4Yr:jBɸ1ܳG%wp_ aÆ*l%H%9r+ѻ&FËɱ]-q")r?{E 'QoQ@ҏqQ%K>9y]Xs횕zr%a<ݻr%S_Hw&…3Z؇P0nW쓒RAcٵʏVZp"E,1!O\$H}sGΜ9-}*FLt%+ōOF" -Z5cr?v_em<2P|8 9'N\u8qIPuΟ?y~ P݇R@qQD1}Ӵ1bZ.]WJH( `2f'/fT3ƕpfyklέukV9Nͳi&|p/YcP YbY#aUH;Nl ks8q `ˬOJIneŲ%fC6[fm9q:;1g`]MֿYs:!g^йw\+|@?!'KPAޕnn.}|C"Đ'<}:5Z8<~}f=γricrp|׺c)W5jUkjC,/[,oDH>yZ4:Y+(ǍV'Oo 6lKK0%+fYK(ex3!kf풿)ܭ$ȕTrLM!P2-YLI'!q +~w4V#ru|&i?Wuq}}W<{ʩhPҒ( 9*hIdJ ie 9rugr$%KXCHŌ ђ4y:[R=%z?gu7硄8 e"[$$(2m!~9ƅBęTeʅg$yf1CeK$QǔI3~>_(# QƐIȞrb!9ua];k\TmڰV~ټQ/)=?zĐD'߸nwI.mXЄF㺻wP2` A+.׊C^r\*\QV{(ƙ |kod*,HӤM_4ie!M6]hj0r@8Fcկwc S![RJuy)`9,93B.%I*g̑3"s,_(@/21BiLAh>yℬ\D'He L䳲w7 ( fq#VɶH3!$::|Z{,%8P ` ,h#eJPQ/,i\֘2ejk-v^8NID<*Tc ͐1;>>+o>%KWktPqYI/+36k dYfo//OJْEZsْJ!XN8.+-<- aogN-7=beͣ@qCeu\6D'!3Jz 䯃ʪK;<$>B87gN5z}h^Tig3gͮ{CɵsZq݇L,旨t?~H=`ٽ~jc ~ç:O>'[>79D1$4O;S|n'$>rsq(ݬ#8JՅYa[eյf(Cf8sl*,]GXgcl!cFقxݺ?+vJLɷ-pq5v!@w|ny-{ {;#2aѐB˭mYYaH̙SFCchWzk+eʙghVVʏ=ȵk'~gmHޜYd!&(Bw,7/1lΖF {~Mߎ>h8򽺟)SI)c abs^iٴTXE 3#FZVK:㊗L}g]n4ɏy[p35 W9yZ,̛3C I"Q%r(JıHJx:a1 BtBaH45D+#VBcL;w:mx%/.ǎ%?5~BNoڐʪK͘๺#.n˦ j˔92G߱bt1FMf4AcߵVfSBJ<01fo2'3N i;NڴeЈ1jP޽sG-IPKppCFbjH:v݆R\ǟU6Bzׯ̃" Ι0qb%AӯWi3(J){7IDCzv^D$iݮ|ZsgΪ5=wfюwln ?~X,rZ7F~eZhy*3q$Ҥy+39d's/MRH#LpݯYWƆ 6>$l;`ӬxF 'Fmû~IW!\{^ ѕ%zRm dHоiuv"_yP9nifRcdEٚt/# ! f3'@3b(=U,%_Ǘ䟤U޶m=̳AnJ wLMrՌ0mqa>d6eN%T.H NqoKQ`byܼ'E7Hϳ(q>49h"ːؙHaCbIjZc6X KJ{#jߵ wɞGt4nP[._'&h~ W-'X MPF? 9lj#) NV֯YIh,SP8T#jоSWC*J6-)E0iָuj5j_iֵmFз^ AJ!Vbu-jZ&3Ng72aHl>w+JT-&$+q%G &g=|Ϛ[zCL7mq[7kHx]eeH( whrC0X+׿M1W>mک :XY& "hdL4Ngwio&JRU"\GrF49\rL8V RH{j5d̈!hfĘri%OUBc,ڵֵ ʊ|dD{/bǑC)(-g{Cdr5뢯3E 8ud̙9]&.)}]׳K'Yn`ROb=30ӐR3Zh:G9V3ñڴ73R9!-ͼŕLr'Ⱥ+e԰!ȼW%f߱p* ɼDf2Snj [7o2*BRfa:rZ1驖w6l&.xϐI\H!\Xc0qEq-9rsx3fJS)nXA^1#HvC0!-+LަtPeS3n\>vLC<7\VsKȭǼ`,*p*٨-W.`&8l=]y c ^<qEX$Sɞ!)}/cL/tTܩS,Ő s9%;o`F1ssr摒TY-%Ie5=l߷aL B%Q6j~{`nAޥ'KBΚdp*Lc:5kؠ"Se!y'\<YbrԠrXXawzof.=d)2Ĝ,#R%]3d⺦{!\2 6X1!;u *sſ`BB4#\ֲs"fFS )Q@F$$K%A:;gk8;af|{S{>BݱfL0 ސ_5ÇGu BjZ[=@?3o֭13/]; TaD]Og셸8b2_)Ow0j!׮^ k>fIr1{^.. bƌjVPlJ ܭgu,SϽY_}{vB0Q_===e9rUضIjrAkp_hH`fft-a*W5U!<|eyr =</!ڟK>y3]2T`IިA^!Š~TQuE` &0qGqkuvٸs@\qbݚUFg^d3L6lذ&. DqdExQ4YDHbPBHLH.[xwm'T~&4d'?%qbw\*E0$>)qRu}hKg`:#y񴪶E0-,FKB sn"W%HrI_]Ap^ޕ;R~d-WeǏULS>qԾǵMXpNCYjiQY0nRfW6&k{{ts|˵t꺉*Sv]UA5D) q1|b}~t.%(V|CcE0QX'kdȯdâu5LJ}2sTjRAmBA2.^iB01AO;H@ !p9]U\LɌE0jҘDfI_l^]̛++d!#ƨu:g̐$\VMͨJ9_crw>$?5)U4 atWYIb[vqB|a8{=|XU][6Blc3 PJUթ8ysɯXSV[eH=٥&Ʃo8`3ABy$Ii J .$H,.|?.YI驱,$N9{8qsw"VAL+7C4I TF-P~{h\JuCmÆ lL\"fL$eF\#!hC=y_/;o48^wTˑM+jJ-h[Bk-}sv;fS6gAF AW߈[8S+{R,`4/\򧺴NZۣ/uSgΗ(Qhܮ3UԨ]Wcp .$sHO+a`>zȐ ئ&v`Ӫ!~!s Is`Ɵ) P*Q!TYP"޳{gHD:Txf́CF2grZjy9rٻYSA׮@cG;>< p31!/Sruo%N츲g.N8KY3>e:+t`ݱ7 `+UE͚)cGz4m)W^yx׏5!Ә>~pg ȝֆ 6W!J"#EI[%58}3W#j;~<Lʔ*QvmUqEU4* szM'cof^b7^V0 GL^"XJ^/k`2x?`^>Fz-_҃kC `%Y?'WMMD0QHAJp`a2i&HH .%qI-9q☴nW6cᲷZN/1-w͞]o4|垆DvKkܑ0hM t&8hV =sƓ:+>YQV0($gjFVWV0﫛*]'uorr)u T WP+u C4$Bi &FB- 6_.2Ǎ' !Lg6(޽;2L6Quo$N<+ǜ]a!{lKP-Q:9meHykUK^/QZ۶&xklذaCM0]!'9h&)3c{fM^C-q!-q跿oZ.ĐR u<_C0~$nֲna%!GQ⸲B_6&s]]B`&J1߾ƚ.;Yyo|b0$g,qO':{WVsv;OIи֛'98擲k_O %3}yOʖQk4Rp &5UQ»3sH *$K'j!&䧛16+C0;ݻCfSf3F,My#O)#BFq}H ?1ܼ~yѪbǑ/X}{*9p u)ɁIOCkdɓٳg4k)ueԐ+D#W;A-Bjx!0 4l^:fvh&!2[طW2|DZ4k0@%cS9i :x@B6JU_D}DIS=} ˗N̚"zt/CIƓ-G.nMU S] &#lR~DVjƵkI$ʕ( ČXW~kmC:L!=jԮ.$B6]]_o`>{歮$\Y7s? hɿD0;t*#GDH_v3}ao7{9LIqhKucش%fng@N IHā۲ 6l|H J0&!)Jiٍ﯏{YdQW4/Ե$s)"nIW9!Nr=Mv GRU q/E6ntΐ0w2u]u&r+ >>C%Md%,ŀdbz% \C/y򚣶%mO'RN۳gU!*o=/ʶʳ(KZ~!3HXNZ(=یgt%FD<;el !G+ޒ*a,;&n`p3\"S>J АyCF,qdߏvn ~) (T W E"FC06)@"!)]wژmͳ$L.JѸ^b5D0 ppP#ZKᨯH&T 9n:o\x^r+k50n]A/ M^#nhS$0"ԲmG>'Yf#1G5ƛ{r2{ώjRoS@?*^BKȐl\J@}?ZwemU4zҭsZ yC}ٰn6}y…:83QRFZs֚/@ędbѭdW7oN?Dկ,$G*P0XaNŗ@,4urq]L2g8b._ؑ ɼfmykLfe/M^HYӂE05y?MA= %*#kqT5/WXSb'_B2lpUz (2pH$p*>V q^Deԙ?!`6lذ!&.擧5%/Al(2T'TC(5c*~+.w'lo`BdLhXU17_e1%F s{J*Yy?y&S%/|JF7^IbaTID5kϴ EE7^F̩,lqւצF\ Y<-X iJ_ %$/]լːǣנ5iTRIȜ>yE;sƵƘvR PRL6&o{!V̠LUi?Jo2T`Հ$3G웇3&Gm%ȚE@1@XS:wȑUR5yt7FCw0}jD7!ͤȺ!LJ@LYE/~FpnE띁J|ϳɎۤ!97o L?6ZdĐ$/_jm&L2fB I{TRM>5F8$R}{~5IG v IOɓ?ٽ[N>C6),\o-E E9{/6ԩPiʞ|Prrx&M:Ijv՟ Y8n*^T$I=lA%\ynGjڨ$+P )3wt%ْjS7rp D00yN{dY|jStߞ5ܣw?%+}.CF%$){`õ7lb%(gvKNj]e維A0_J0uG!(tq6mzɜ5̘6%XR?xH+*&{U\ 5nĔ2G,/(%p%ҳ0:$, VK 6ZMӐGԧ4:|܉Z'-RVb4nȒ}r]hJ@J!(wK=QTHQ"2N[nhQS$I.|!Zaٵޠ&Q!6_UrnҺyWukQxfBf,,+FL3{1Śja Ck JXc߼~]Z(gbBɏkV6-.|$ky)1%1J]#|OS5Ed]Q4Yw~7_6oRdb@! ۧ1CDq.`s(N?bpR)UϸCCЗ1Zʙk-qHZ=1>;6΍NjCŴՒ yhYP=1yyf;#ORZwÚ+܍H\'_v-6SjKj7υ2ײ]G3cdbRsf K\)ciroQٴa1d]gøq@rgNCSkdLmyi H4}5._%pfABu+ 2꺺[}<[-as֤T df1i:9?XW Y'yʣ Փ 6RƲ߽s(TkdyN$YΠ* }B-ƅ7}{}D-*'bV9Dc_t-%m19xN6%QO?;ڰa`lJҮ7eƉzr%mK^RzMy,p:ex9L\@†wwC>Q ,M>ɋ>܈yn$.ky04BM  DI_"I#,a{P21E ȈxXw`Apq=vyzWqt $dLB~7wĈ qjk\)p(~\/xyxpH@RWfW@C4ʲ_c ) sjLY\%9L@ D>Ϙf~x7E.^I7p(CB2vG_.@Zy u5 ,qCamذ`t sjWB\hױT\UO-p駕_?VeJEP *>~~)Q@%]wW}%zv7kBP)-%6׷߼1 n]+;//oan~2rѥc;!q>!ϟQj+r '!<_-؆-Pؓlذa `e /]'?}*P ȥRPenݼ 7Wӆ¿:6Ppۼ|颺d7R @/~F"BĈ_xwYGRBeI4nRWraڰaÆ ϰ ?=yl8Òeun6lb J’{|PH&ÇYƻvBL}ujF`\mذaÆgӆFPG"!ghdĭve7Y]6/B KIGن 6l/&6lذaÆ 6lذa#D`L6lذaÆ 6lذ" 6lذaÆ 6lԭ3E-A_oRw.RCB Xc}li(̮d|J ZeƍZІnnnZܵP8mjڰaÆ6tAhjZ7yp,]V2gfHfxg;om[77޸6l|h14lTΞ>)(׮]ZJdܘj۵p0@'2O9,y }/\zE~[0]7#g<-{.9|lX]7dž 6lljE<'w|v=\={F^<v[}\S[dӏr7n ʙֳ@=b,}\~kƋ/3*ݕ:5Ŗ.(QSPa%̟;Kܾ^ |RRUi޺yǽ&SP#\aCaÆ 6tE0#G"vlOp %KK,$Gx)Q1I"̞LJDO[R =cHXw宜x\n:!^oBXiGrmwCy˚XJ9\=p1Z4ď@l#Οyǀ2 %6yB3ɣG'\rEN0(+Mʁ}{u1_@+cF~k&0}#$z]%׮5V~Qlyֳ<|PƎ. Q(ǒ"eju=}{2 n ϕ˗/=SJ#_4i*2dNm[#C*r/_5o>tP?9wd)e7֭~gz HJ*+˗!`{ODtbjoߺYV,["/wg]Vm;w+[6mN&TRy_ɦë2*ꡄp>؏ 6l`RoKmy<7FU,6B:th5X>*^R͞F3{-dG$.nnB9h_yHz겅 V..ĕK˓ɋ ճSo90w^#ǎcG7אE#fL}Q,]NnҼ/h.ZL>!e)!PXdewn߻/'QcY:uBӓ}BH!}J?^Hϙ%3^2 }ϐIרu"M/"$_I(Qdirc%ry1d٫O=|T\Zb >o,>)._*?%^^O5BYeI2!2w ]ZJOʢ_Lj~Z_EE&+W,S5u|iİAs%>VR$IIܸdЁo[$e;o>=p?ˁm֬#/z6lx; ,# ?- 2|Λ3f$1$ J'N^#1$ɟBWɆK"0!%Uxd pR%S\[. ȄҶE@^7m1jIU+K6)O\MCHq#Zxy\^/WM{ {QǐgOٛf|Vt$gNoWה(UFIľ={#u!3^|QO \RUi٦1TO5'6O7uB R1' ǎq0I=˜%[vI(>x@N<r!cfI0[־=+9 0a¨**uj'OJ07_+c׮^5{_{x_D]D 9r1l=niUqŽ[_q}_Ĉ1(!Rx=}rrXLcpaQ3Ǐ1mnu$Nn޸3-4cx:W=H>&lC2v14yyFeϑK5lw:E2Du2cOoWsմ9!F?3($ˢ}6/^9i4RȒ^atb'H(>0!90ϐ7q3u_6ke5\.3Y>gerOc7n\ɔ9zIvpWnDAn5Ǟ &6ymREBb[qoϜ>i{Xn'BfʜEG$ڏ+nWo߲Ynh@ ƛC/^];˃1f)O|a$LDt#Gɉck~KÀ]լU[\ +T,W^5hk_)AKkcI467֞^Zns]X/jnDa]&.**dCgM,Gl~oDEHMco%w+9T!>.pQë;+.ݑ3? o6D1Et;]'J]|.Ͻ}H'VvAc'Ɋ־Ac,!SȽw@[sagru9pDyI *v Sf(qaK8?~d)V\V`No޵K_M!}8 #'+r)# ksՠϞ31(@9ڽs2/+Mtbq,q޵×:ߏ03v$i (\9׭Y%}{vW?@jZ ƟU#LYcM810&9_zNbJ)/ 'ֶp-]޳M!)q/oC -C#JsO7nŹ_Q"1x$x2Ǭ+ ޽k['˗!E0WJ3 ̼[t rɫm涇:W*)@3wn.@{vc4sxqO%!s^oLB"VMeTҤQe!3_|LAd8D*e@5׷]̵G_+f}\SU>S^:A,7o{ڥy g~ĉJz}v^ep{5#Skr$z6/~5!XFm?$I5S rKwgk?Ț-2cF;\_E:y[II&aE0L#:}OYwDl\ZǸS%΃pм*\T#}߮V`Ҿ~>ah0RJ^WƝRL $:!,j!.еzrPF;xF\*f=c;{l4g2(Q< /p9k'ZsCcºšGƖŸH7_G0/M[уiS~8<|KOZx)lM8 Gѷgi7}a\!MchB8Xg6l邠LHWZ$~$rx^5qk#f1TLV,8zYq}hCμM75fr\w%xѓ֗ζC6N_4/!pos/DIM)6$-.#d1!FOȞ[p&Λ\R „!){p*ܖY ?ͭ{`}憞4Nޙ!Z3|*Y6/T)ܖS~[\fr\csf3je%o ?j,,#E̙JкT~Q#/C,-{NU ^i[:c$RXIiױZ;mU"=RJ-'n:uVJBq:9tӛ6e :y3/sՌ<]O9 c_#D(Õ8VM){[Ԉ†Tw8qLZ7kРa#C? Ωф‚13^19tmjo۲IY|Tٙ5},u^ٺ]G%щǕᮅb˩8qnj HmҬ[ͽ!ɒה 暾l 栌!g{WCV1l!mq&(_͵B3f,5gU7jl7檦aӏ?h{vF9{cGlc 'KR yfCy[qq0c6C,}tb`5"ke1kl:!!$0R.įvzڟrcnda:i:֩) sUQh-9rIRo̯ɆP^z@9s;ې׋/h*杺tW7[EHD)%oJR9܀5[5mYZ9H`Ɗ18ri3?̵f`+UJ;OOzP@޵SØaXwsޡwCJ,qE;P~˖|cdŲf3/a\1BsOA=b?\= QԶWrJ0^}ǽV=%_>t@f9sgMױàlҫ`Yrxp`Aut~Ѹz6I,C?L潲sV=1/{ `.6JiRf̔Y671sM|d`&G?L|! h_ 8lk9cfޱ]# hҳY0gl 6tA`&J aSRN/ƓʡPr[_)M K8rU9uc}t끪ÆtUt]I]g%R(YL 䪹~]v`H^\;\/I ԸOTS6ɑ?i[>QA݅O>l?*g5*<Ҙȳ7I$I~5, 1R#рpBjc*EtU1u=h F2b(1kyn`FYV2ϝLFIW%ϫ=GtudHkD3r  Sf')%c R!-6n'Mӆiʏ?R3X-ZKcdX57ޥ,`x&K~u74|b501#P^Gx8AfmQY31"Ї%L.K/r$r!ɸ@$9~@%CGJ mbƐQ qmΖ#j4 Ifk~ۥu kԪ#58#h+0}Ln$#`bXY]yI TVX#4By]~L !Iߣ&8E\,z}kmJP!R(iءM!ToJ0YK͸ANL\ID-RE 82V4ē 4e iնdUA-"׭sYf%u! -o&v)Su?Wb+@ v+ODWRM}bT9slܰNZ7oplն&ޙ6'7lrL2I Hd1m֭L(T`iwki s 1t%xTxb O`%0bu%95P3C2d R`;P7s[3t7s̙S~C CtBy:ͺ\/2o`2$g劥:3uFTj%xpX~e ŋwc:-V$E' ϓC7_5odM&/; 6.l$dzEI†sՕx@\=nnȚgHLo'm7bqōtMr|A"Kb/ K5^s۸uq}Tq%uiZ3f8}z9n%eq2&PE1FJP&˭Jh sz* ]iH^G-Er}UX v?wIcHrT=2'N9*q'j}5]nI@?`C$X.zܨm>چ6 Zc>nEm;tQ"`T2J<ntOof d1x覆׼-Q / FG hBqsns-c v0NmMroaˡI|s;̏ R#tWR`l 9 &c:L0]i_6-ԥVCչ6 !JOdŲž&%&6}i.ˈ 0l!'O}z;~4Gm?LPr(XxWEL m~ңj=ߪ]'-{%ԢMňM mk~n[5ӱKwrEiXk;M0]lZ/& GMg$ wdcY$*5=Qr6.J݁;eEvxq_/l;eHZ6^8ݰ\pq%B`&q*gQEviٿ,*/n9[0{2eM\0, MbcL88#k#Uʕt\qܬu;=pGhߞwJj3RB]f?D(.cxlڸNݳ$q`q/5nKٶ3R:̼2\CHP-(1T>@!N5n33KEGcZ䄸Fz@ 4!N^R5jtɔ%D5bxHz ,%$3MwIi "茠LT ?q{u"aUo,ek|*?oGq1cQjҸlXu=.k%y+cHXw7:ew_ċQ&ʭ7d!f:#,zUL?NB ѸG6XQ)sR%J[bE0oߺ$qsw3}𣺻Z@cgqr9Gk<܆I5/ CpL3O[|zXҤKgZ.}O`2'P+u{4k yN$Idْ?Z$Z$d~E}?]K0]B ٔ_gʊKd3+TICPmذ`L` Ő0aխ!~=}DL T CF3+!A0yAXzpu['S%L6| &Sb)RT7$U, u=Eb,7_AC)Q e/8Ȣ@6WqٽsG[WHL+9~R ğCeFNuel&`vGUi7Y Û1eػ`B b \I]L$$2)&A2q|z{sذaddm>LE9Ańx'3d½-Hmִ*īIӖ5GNٰfͰ <1oB0?~Y 3^8Ɖ`iǝ8H'Љ&5àL܅q%)ߣ?P|DV\N fU454ri +(9ThWX5/6l;!]6/dHG2|CeM$>'jB`FOKk^>PlF1DYn*(0@5|D05u;U'qm  7$@9Ut\_6IwHl,.Gap bA%($YjHzTIJ$@bZ ]A b,)62~+9l!>aU"=j<*U'O (,Μ1j=a 541鷟MFPK5J!ր#IXބ`d(MOإ`h!tܘ8 `[541Ӽ#pz1o͠@R>zƛ)`S;Rɸ:rD5ܭf$ YAfδ128U+ZVHuמJY[]b,DjѲU<(C bJSco a rhcOTrO Q6F-yЁJ0Q󙱸gє:}DּqCMb!eTr`^NZW`BN1Fp܇r ~_%5[d]]wyL{.;ܬI< I~̺$5u\g% }e , ܾ-A s::Yٱ5>]"-= fL[Qun꽵&p& фC'Q]=ܙam!λecP˔+{)6lx J0#ŋ"r'h1srf%,:dG\.$qJ(MP͓8ZD?#VU1@٫ 5P Q^}WpnLMu 7i*!jЮ7l_}1OMX.Z"d[0oƈqŽD-C SUP&!#1ܗ iUW^!CuзD7D>'#%I!E/R~iOUuL=@ 3/ sUIvex\.RPY2=`P)e0c۬E=Xj9. Cߏ8qYISQ*"#}n!¾C ؇y`Xz泪"'ϝ=Sdgv.&]T~ԺsfMS%0S, 3C <%P԰MO *S:S'MPIb?YG (\$0RѬmThޗ wpP)R$a뜁a&ҰqSC|~߃"K6hJhF}/QJ ^C1?X۵ԗG5?sGN׾~LI(_FQ PrĩZF Ƭ{YE4u5\m(_9ЈZQO$Z.d0Wlo>KX sl\Vf+3uLVN=q9;((Du@%lӡq}d,`X¥N͗!'uc̒=ٸq+a'-b0)3unLt˴cbaZKYBe%aC6 p rF7 w$R.AQ 0,!;ǎ4X*Q>McLA1r9"t D5Wr]CNEuWv-B03(O5j>CL0`!G8`*(RTȁƶ`R7Z%D9l@!$.[APRӦ坁hN]N7z ]*t epP4^G?yI0"d9Lbƅ5f`t2j &nJ/+- 2!MaUЯ7pCP!gw-\P9(\>eJ2xo.]5hʺj}iݚ2g&u}FP&se"κ`};> 1'ѳ7T;?qy2s솸}u`HӠ~cj3$M)+~ە`7CQ5i&=k*V*Ԯ=DEFdP4Y29{OOs-\9 .$eS[(}G85gp( a<œfbY}-5La;Wmذ&.feyyKj SL2)g̤I'2D4!?PjmC>ʭ!緜qq"KMNR$9Sz5rr!G9W(3㚇(19F\\1sͧ!QB̀Hּ.1'f>+YJ x7cz} $&56BHjXrfJlTr _X8y8syж7fnM^s9=;jZB@1`X( H8!NbprqĄCᰒ%˔yK]}k{2N] د6m\5oB`@'q1 kݎ6>%JEҒz&$0>RLi4vnZNř᎛`!=tp?ƓtB U<#*$n'jbiE<_1ko! Ƴ12)_A9e2*)s'hjcrwmU,#W\/R Ur-Q I*۶nVeȹ4GҤ~y` [ pwgH` !ΜQV5*f}B5WB Rt$׵=<֤>! bBC mȪ#ЇGYc Μ>U 1! \[:'e[4qlҼe[ulլqh"&EtF $C " sHKY1R!  h W6n. Zs4<1?q7f>P u>r+Ll`˒;{ఄ63>B|W^1ڬɼ̘1_OreZM6_\A_pX8rr݆7sP>T3Lo (VʁmX ^?L_KIaƇ`4Ԯ#'t|ڥS;u+ !'8idNmm2%& ~FWR]T&*Vkbl@bΟ3>O Xd>Ȇ 6l`L65oN]H6XĆ 6lذaÆ&6lG\̘1~(6lذaÆ 6>\ӆ(" n\ڰaÆ 6l7`L6lذaÆ 6lذ" 6lذaÆ 6lӆ 6lذaÆ 6llcHD#gϟɡ yX$l(He-vmÆ a}{G)8ar|9"6l&Jf_7DAlclj+/^8cÆ 66tAbj'n Js4 f /Ϟ=G{+^&KB&M-͚g~Rϛ4iJN;6OusĉyD?yofDMsmS^ɵWe1r`)RTe /Å '1cwݙӧ5A„Ҭe;s2n=|=.idreu;1bH,,xݾu띴}DĈ$Nܸ:Nwnߖ׮b 9TLԋ pmܸ̜W\2yy!?ҹOiÆ&.1׭^)/ŋʽ{w}ߜH w7/*kHdioF0MO!&T2J1d޿rWn<.'V_<0 *Y$]n" [)/C܆{p;}|0<~M$H(T4iɐ}3dΒUNkgn5?$DM(-=ݾ⯱ASX iծYWǥCvbǖ]{ʥsF)_ۻG=FP/?̟3SΚ.w \Կ5Nv.?`_rpP'.}ѭ!{+QJ}LN:%ׯ!Z4g2uYw%$eW*jȼ3eՊeC RH3w^}HR֭]-̛ iҦ=z٦C)+2Im3S38@:y\TeI;F:RPzjN%f>4r&n 6tE0?y$# ?- 2|33oB0Q<{Dw}XZ~pn7g$3uR7$)vm։coIW9M^X7%gm?_&!Of͌mm[heʜU.3ƻM0CieCk?N?N?o;KHG3F۶LE_K: d捲vJTܸq X(F:|U>*^R̜.fPں?A0a%k2lXټi GΟ?oLJށ'x@A0v3BoÆ&.*8$/Nbwf 9RHKF%|̈ov9^x#Ĉ(YHr`Nq쪄u# r&)"ޓSGrm9sqGTIm G$gLW^K'w}e8_rm.R8yr\;|I.s&W_ Ji$r}m wų\ i {?;ri9~S̔KxQ$xYK1raisgr-9ַ*LhIY2{wi9yp- E0h=$}L2e﮺޹c9k6s].=*cǎIlqGwnK̘15 b[RUue\O%%J;;ˁ//~|ɗDLd5J+vƭ1L{Μ9mp=r}u c1{QeI,1MuW鼲2֟)s%︙Ǝ[dٽk|<|{ Dfac.[ZZp&֮xI=Uqز/O|hե2fN1Hi×s"TǪD3Z{m{j\]|]j7[&mnWx9̑3\;MxbQy/ɂް9c׭>h#^e__rͧn{l$fڛC>C̜gWfFE\?{F.]( =獛ʎm[dx};ȏ 뻁1Q$]{]?~uNXdYbaa}ICt GΟ?'ozMP1B{\xZiKt ]^`.֟'zL$Zؚ᭻^s`.yfz4i3=;m1ds&(]ލ5+eَ10KrcF:Ϝ5T^SP{)ffS>ˬm;FkD6{;{~F(D!}\vE$H{58pXĀ5xH ;- VΝ>=:;*`c^x?8ef>oڸ1nJbywUI$1PЏ>"?3YҠIs emPrA/l z0Sb-yE| FI41rx/~L{ynFs'T8>8q\tFޙJMPCul7"B7uX._pp65AY浀0e> 4:1B뷊-\zر㚗k3cn5l\v\Lmݼ.yë $ݷۘO*VVzd~ jP=3;]f>SH:;w| /YTŽ@F0Np똑C3Uzm}͛K,zELj*؀#Mcg k}0|R=x5R ۰VX |ϘY(-[lt&ئCgh~h o0'Lᒀ+pr!,9ozr.^|Ūz4Yb;^t‡iy (GHY~I=9?<_ 4ͭ!v]#SW&$Xl!$'8k KM7TF!tL@淚g(µR *ŗB+/|ܴ3KZ`|?vtUڷnI `"ŀ܁{U QD>X=Mrv[ڵl^ +BHR Y! %<8_:.}{陱> u?aQՖ]H.{q$( K@ヒYQS1$[(eX3OʥKTwj|{3.C5ls[k: 04fM"UHAySDǃ ACaS*!x9r&~rUug+|[yTܗqG)v3QQ*<[ҫ`UJZ7m/WgQ#ѵCI"|O4 @s0@}o6iоjA3`@ PڣK~W!C{PnEKNm[i>̜ 1qiWofۃ/~BѧBo[a#Y&gP=r1z 9_no}ѴEk 79mI^5,Kt /bn SIsC 0ׯ]|mByf歵)j4jd<+eY?V'3D[٥gii| I1W@*WB3q,)V(\~M=r 'eo;usK6}`&5C"&TeZׯ$IL5Y3ƏVÞWqL׫lްV\fMuWSZ7o?_[~؀"_1ĕ@hx(aaSxv]7|_o\%l9u \nаW L`"1p xJWd{5 F7=cl .`EX+a&WC׵j-9x;C0y|~-u>"{l0]sUdWLoڝN_/{Gl'WGJMbfenfs;ȢS@Z5m Q O ^ SUdMu32OeGeJ?z Gfh14V˫9{$OJ:!/}ZM VA'@l̩8ByB*#}H6SE*5tnl4<,,ХG_`i>/Uœj ";1E3G\B\]a⡎M^ B1$\g13E1p4q 3Бua2j`(x0{kiuN1@m-`gaeŰ`G@_7 m&E[DfԯU*_ B=,5}L4 1k-8Gyj@X-FX{-L;Я:V8W KYs,=V!N9nˀoDc%%|Hrja9¤oN^>0>xMp0Nܼ} m^\L;*7`5% w7p B/$O iӾ=L6*y-G.@!*wm% Kx.NPkěQr\4PaK"[lM,(:T4lYM6[լ, {T e+i)C86~VjϘQ/G#iɍ5OeLW!D7YD)M0P Bۜh`Q.er9G(D0ſ5Km%wrb[u0@[l 6`ȿEtJ&kOhl JlWK!%r=6,E^ssz G饇M;y6-QƔ:O]> /R 0d|tJyoLңLQ苀iZjNܗ]ٿCd6(VEO@?XJJ^-NaR wm˦(iB~EFZL;RȼUjHT:c ,+Wb)| ۄp$ZMTт M?vq IuDChѤw.1ң9GRu(az+hw)Pfʺ+ep>L̚DC 4oM("EqFxLn.I%I3wB$J)S^OOYeEyk0ע7;׏y&Wd-]A+%œ>ËCEUB[BUOZuLU꼱$ADҽWi&ȥK/3EvLr'M 1\7I-" 5A_s X_m{0V8z59b_Z M+M1Wou} x0 !5^h VA2M)b<բǦP5bVp2*w+oբp rKxXt"W,Ո [l .oHF8OaԢCW\fsG7w1!~/ D !IKeGg!gW7RI! qɅr$SUͨ7[&o!Iƹ7VIfFqȣsx\D\3h7_b@ŏ=O.[}R7˙+x X}J)Kx'fe15<JM 59 nޣ?T3[~؀"L-|{d`[^ _(Vs oH{4g=LS;7 zHpA=\tLBsJUU^x.Z:T"UT̀ꋻL{CjEW`?Ww5yt x/_y9tL MU5mGBt)&tcitFHY7)=KY~|+`P J҅5TH(QB9WgЪm'= IB#&` _Ϟ< y 0&*!)g{٘(g]@""cG .E;T2 LT.W( V?҃wι⥫0Ϩ) T50z2g ,m[JU+* Bڭ*hࡣPFbNQ1X)VRQukT*+mтHx//]I"lߥV ")W+SVx5!̜YG(65N‡rY ga3`bExy$s+xwg9f:̛;SNm z@!xis0aJ׭vh͹ j ny [zeC3tKԟ?wF 8[ eT SExx95wOq`>k%3O9vdE&J$^4&Թ{p~=$0wv1璞|L&ǔ$+V5s7]=$ND&ߏ³ p>1]v##I_+@#n>[赜"?SB09BVH*I0cdUuSʼ1|>T-`'УRU0- kٲh/^=(d(t( VH-k^>W/yhaÅWo%cB,' U9eU8=bZzkv-:Ḅʆ"zzE9PB|GMx$j65~!LK [Kq*kk9Bٙ8m*L;W"|k˔uW)0oΖf\۵lb-<7BU"U8ۯjZF0w-84(t-`R)WRό!^QgVcĈK1vnZNHkQg3صcIo3SȀ."7M(n7g'TFzK.yuWC^)}(GAWEV8#d0z"{N^{\④nI%ჳ4 'Fɹ3'pEZu}zgZ||~dq4QЁ FUqS EaM<~V(&mxl0iIσU<<{/yA!֑,,^۟Q(/>7zO^?jM7~B &:<E5Dr`% <;W|蠆e:+}#<&Oly)n\<{9(an1-pbVzMػ0>cxI~5ѻuH:Zq] FGh&Z9j$E_te2 Og;Ui9i3!*d[l?/6`7mFb9ESx!}1|+`U<%fu(>hSJU{])s]#O>ws*x(nBW:OϮx߅gϵ" 5ֵş>9X?WyҽG֬Z;T%H>o@Vt[74<\zWx1%Ce'Aʸ[,U{ϾF& 0z\*BC<^cBdj˨k&Y|wE*x(٬i\Zq~jǶZKm__'f }#!p@zOgOAf,ßy6$(P@M\7u "}}~-L%GQ¹o%G4yr0ZB+o:ӖxwZbʼn+3dT :^ kWy|*;Ӗ'x)!hI?9_-%JS }hm-b˿[l埉 Kfyԃz`. ^C[~4\CȷtxjMΕ'ʝO*g-b-؀i??z!+/w !w-=- k; 0mb-b-> b-b-b-|[l[l[lŖ"6`b-b-b-]L[l[l[l[؀"QFɒY}pܶ-|Vg$yTzHu=r%xl-kyyʵ3ks꒘u+vٴah-+"DHI(Yz ]3$vΝrɟ[l[؀"fJUkH(Q?pVʽwuk;~~*Ybܾu*c "ʫ/}$KRZ` :M.[5/[j˷JljO0:v}g7_)iҥʚS;9\vlްg7[lŖ 6`ȯEJ6%|Ĉr5yl^Ҿܿh͖# LO aÅyg)o? ޏ!Da7'ȓ+Gp ߯/}3dic|)Ggx_lㄓQC[ z|‡r5yGqې5{NU٭G|IIPBJn޸&?&$X6lXZ;-ڴ2+Ig[^+ @@I,۷چ-[l bXϿ?Y|y2A?AB_j֩'ip~H[qr'hcK>{#OݖOɃ3w||I$h`rqiw,I17r`w{o%\H`R ' _޷O^˞aE_i+0T.](}{t* n1}K2uygs+'O[|G$H 2k_Үe*m((KZIFueÇ`kmAikx2aj/I9t>|(Ǐ[7xmx ¿IiXߏ>ɚU+$Q1DKfϘoRx)\?zXF K$CFY|OK1ljh$r- dԢmfmϟ;K\&@ A"i۱b4 gq5I8犪/9KPމGˆG©1gʒMu0]6ɣG`Ob-މ .bwodAiB{-3P@RIU5||A|"~("Tػ[x{ 0&nx5`B$b%mLynxuy{/V%u,+{ }cҼL)Ox♗iҢq2LDQ*W)%˔eKkW?k/[1iԼ57us)Rʌdza%N"m;uS%o䥝S$P-{N;h C/DI~IN "[7mTOXRUU1}./z9||ӠO2 6{'! %҉[jw!OؿQ(S޿~/}hNA>3ȼDƏ бޑ[s|x9g78߸{$B(o mϱ ~K|kk/,v|ӯͳi_3+3`kLB>|BQs'/HxK(E r-J_7WԪ@s&ч}1{11zme$𴳐io>)U!CR!xk0` iުT\M֨"G-j &kW];~r_G>yA߹x{:TS4(`/(>xEA ,^jp-Ink?QH;̑wq<~&| ѹό^rgx>µٚofN18H`ɘ9t[F(+-u\y7wg|3\x]B(eKwițsok(%mjmg.v^|]{ 1s4zdr͟i'M,,?WfNxn~G$Y2߳zvgxKO֮e {z-k.7/[3|a<@`?FǏ]s:y0]ס%=ſ?zܵޭoyC{soޚ~R`d O;?'X `o~k;VG`ie;wȖMdﻤB*O;!uAa94g|ұkٸn3Bu4~5|\xAHkMFI[lϋ .[ ?$-Z".מc};`Zn63px Q̀6*|J!yTgK_IH!ͧrn1yxǒO!+7^G+dK:d %ӷ1s7w(yy7^;im)e4uh EX(t3DHI!um%fc9Cyq%V0.;o 0:,UܺyS/]$'UEEQĉ+cƒw͘:IΜ>!sҐѨѣKDI֭rǸ[JIIߊɅsgU lwre]"֯|8g5ys1cPq-j!.tKåePeMr]iT<|pkhc)/Z4o\O(Ѣǐ\yKTQ}ھMvئ %(UƀJ3F  6 1ٴq=}ʋŘ$JXJkQ;@eR <}(7X fؾu<3׷@&GXj>sO"1gPQ #NTqkY]?|!L F9;|pň!eUԹ|3VjX9@oJg_ȩ'ZK֬Z.9X̘6ɬ<vi;@2 D4Ҥyk Et}|}eKEpPϊ2er)/y\ϙ3O>I6B ߳{Yxf>|(1cRC!x| 7&<[~Tʄ#e;~:LX)Y^ӯW7/P ^lZ%f<>P$D̡|uZ"rɢr 8.=W,۷n+U>X6~H//# Pϒ=S'ɪd)RIt_@n\" GMø3g!w1vdiL5Eqkڤs׬|~1c{1޷;gLeȕIj3eȨsò~*|K:,SܽwGfNbs_cHhɐ)ʝWJD Ɛ׊',e*75ew̩ے=WiֲQk;0@JDJ%~(r()(#7悹5PPP._ٽS k}ℒ4M[}n+'^Kf%g^@.rԨjG3rڢ%Jk%Z8tpp#8XsYO%6GhxաςHZ9le#.V.RL. @1_o0[ޝD8y3 _xAֱ4`2⒕sЀ=<T_*S&3&3'n\9va(&ToŰǍ*\OE'OV 10pCg|** /UF XkG3ڬAe;M ЦOu}zob># K)dW:`Uc&Rr@}:m:ԯU[ tumM5)ԏqԭByy\߁$z̘ȸ ɒ:_)BMu[}ʼX0(W(nݒ:*xy'c>Cf# @f%@|"9̙s۩XJ(wV47iٶz8;LYiFf aa^SD91>9yBϪk+t5lK[jn๳g5>3O6mߥqZ_H5Lhرj);o~Y(I^.EuHgM0D3T5kts$K\b +̃~i^$޾ϟQ{_̔Yӧ8Ɔe ZlӾEF&L3W3$K~ٶUS5R9_NZwD$7p<~L:*Gb-.6`o3'`FN`Ów;`R56A2oG+9r]+Zǵiex 7,Nޖ1BKi ZrXt(1ĕU2j=Rk$fx*VXu" 0_.1ﺺX- TPMk4R͙;Zwl"Ox(|ТmΞ.Ұ'fnb9|6_<px<~" ҶxFoĊGC)f%Ds>Mg)*MZF G(Q(L׎T9C*+eiܸvUز+cɢy"QE.=(h\OOFcUbe5 j`YA0 1F=vI)x\ko$׬+)Lg,͋̑];ic xXMe I/dH}f‘sIM*6K.G $,( e8 KExsPQ#E"JR kְtSdϮ4==%![Jmdme"<zִ)zo1ZFL7̑?t wP܍4`ZΟű 55šUʩ`>Z!k1sm'gR6GDΚ0t]٦ e .fI1ݵS;T9΋mt%Xg׎5m Ǎf_bRe+M;J(kϾ}K}f{?ǛC^*Kk{6&pCBfOf/Pƨ|3n܀,= 5>ux5h}/^fc׬{Ԁӵg_iXzc:fP0w/2{eΐ)]}E̙Q=Z as,;${L˫7nS# *0&9s۬; [6nPW+6l85nQH_NVq[-b| `-Sl 2z /Aggr|~o{&UdDESJ<`{yۉ#HN $+ܫ`K%/ɮIN!n< 75*kfְڭ]Wjm@<~HXV&WX䐒@q<4DvZmNZ:ƶKs$CR/gŒ|0Μ:֬RDueQ$G喼6+JuReZ2-^P֥c9j`'Z{oxP\PBUn/`ۣ!©3޽Eݠ%0G 34J$aҶEo%:Z/2yZC<xsۖMzᡪgcwJ4wLbD4*hmx"RȨb!wf_h@ L͌# ^X+ &)3ʖ͛LF)! 7S: 뗄\`WuA8"sfE@ 8v(Pj:Pj`3V̭Fa'\>slLdR|eiTb 못#< &DK \B,oa!B,oJ:ݻgNͼD\8wNφ 7&O~b1.Я ysf|<]l #sm 0^m&=}V~C e/ňAիY6 & 7fol7Ϳ4\K./ͳf$Iu^ĉlYz cXIеZ 򵀉aVAϝŰ&%Idj ː9lzw$Ξ(ɾݵg?i/LLc&YHde>(AZZ^k!e3QdPØG": ;(T`YqT۩ y34ɥᴷ\M$[Av]'Nv[җ6)`J~kƹm{GmNo+}w4qTJUZB])CN'̟dܶ&FYQ C"tvı^^?07oڠJUI VK-踾].©"\ h>ZK;_~ KΟ류JNe-> uf[#}J&6gG,սZā5=.NZWh~XJ>@eiu거X˖#Q|+(Y 07d7 ng/}eqFXx24i} p`/Q(ʹ/WܽJVL+֬tG&J'H>?>u"UZsIfڭS;lCwS%jTâ=(g~$`nܰVs-;( s\!)QE7^(:>y'FT09g7JuU޼((Qs쵌5Bs"(;sGث:Ӣ(%^rI:nyܽzX߮Sx5oNIykʡ:_?ZR&{2H`Rhpy՟?7m7Uɐ1 9^]a#(PuB\x@w&YIg2B?Vu -XJljUkժm ɶ[sb| `rE`ď?%9qiY1Ox}r$D#T7ӫB()`.;*LzfR%ErMÃYn{d|斣= I$-cJX$<A\"&T .խz0"2^ly}61º}B} ^@t.qK9K#kڎ'n((>>y) Mu_<ץϘI7kMG $PLieOHsOJƒEӰnu5x| `VRCsoɽ[t:qQHێ]KsC:Ƭ ˜u79ʤ>=ȆkT1{IA298vc/Dhu&+|FU|Ki6I"K+o= x kB`޹}Y+?4Yv}ͯfP8>b`H0eFNFyhQ\`Yc8(`<Z95[Nɚ#)Qj)",!uٚr%ܿɜxDp64y-sL-`Kf/n:#'9{ft1%]굻[}\ $|pKNjUϭ:gZR/0dLۣ΄deӊ_7?rfQD?7sweSz% ѩzsNz=U]x!Lrlu9Ŋ,j4BYʙ@yvNz}7 #2 sa~W滴nHΞ=ոyk9d^Ā cCYx y`^13LїMZEKzDV.iÓ9*-H @ZoT*Ji(OBP՚5TILaPhF g1@0`Z‘Iڹ}k_BR1f0χa;^@<s-^1<2x0q0Oef*ZE\S~+vlԽz&](BxN~hx `h*|BCMkԩ0n0Itt-uWf $*{/`VJ*,0K5\QG&cN!r^GUx5=*LbĤyȕ[73ȕ׼0b_c}بqvywZRK065^LQ6b0]o|S@| #ϑc;{vx%)2l0E pK+[6yTC=p;=)1pHU=|aie-WSʂG %用ic*pr=֝R|~H%FxZ*^vDN-:y6`}cO}i7IZ*ফ]ak >IV֣vu98q~| `6%CQ-m%z􄳐#2b@AgƔHc; Stʓי?adI y\e R ~/BEP %9B0 uЄ+{wqL#AR@6Gb|>xE +S#aå -Ch/z%{WUPq9p3ȼ 7u|δA6oP)BRax'XhՕ^fC(!Q3GrѲʋkjhU0@vᨻvn`դ2+رmz<4nF-۴$DŽ(? 4v@Yc OcA*]^#c.\=m=Ĝ#(P;FI8.)Sb`\/=M@} .L.sOո&VTCW._:(!w7r ~K{cN#lw"1=,Nὀ9-<[6 ꃉŘ&Zp** (BBѶ<П E;6;s[=b>㽐%#]\?aR2n_r%X CZb1+G<[Gť KDN rX9F.V:P:]3t`_V3_CT]"+JI%$`jḬoar)@~@Tc"|9cUFH%oT-9}(bxy PxϹmJyZ!W"׶Ximɋ#:#la"6 0wv'}+MLQ^S[?^_tL:)O?RoT/H&,\ vqU\B8_0^0W xC.Ë񥉐=T E\0ax=}Ͽr+q(B`Ji Jf" Ϝ:% _0:׆W6q-MJ!7:5jڂ2ϝeC*:j\"A8"0@TJVX5+b: a"7Q+`>UG׮].[G2.nѪƢ8%@׮];gD/3& 0+&a lMNl$bNDFK( `BXAh뒅s;{b1 ZP];\_>g//Qw ˆ%M 0\ptbY/w1 owJ? 7nJvw;A<(Wf.a-^1\cNù`1UUZx0Gf Jq6Ef/TRRR/ ZR3- x٣=B8'+c _<Lx ܈/BRH@% y"8"1 j hJ߾%$Ҷcby Hb6L=GN~ׄMF=T765rSneأ|n!{1ŹPG&;cP* VhT3x `*BA "Frb!'q f1%{ٟ>ʃ9Z%  =0O"_EEЬxTԡ <h8gH&[sQHݦd08;^\^Ctbg㓋`jg,`=~b)/ҋs*扮>MSWuo49/}q;rXcs@Up ,E ׈:f-$ WaF B݉;s))|VCsp}9û@ ON ۇp-D GO!v3{UaU1q="~-~sY5O<;ԌvZP 8'\/(JU{w#O~<>}v'b{>E <[%9bŽ`x`hxb#JKYw~;ς\*QYyy11?J6>k+RGE4l*RRR+ Zܶ>8Gؚ6ސ!#8$$ygںyb4! pI06%?G^S'?Q5B^,B^K9%W0(F'/,oMɑC _8_xa DWl>UH_pAϺ]sF@E| ʂy3_/&i$ FMɩg@C.!ïb`('ǵiC&`"qeaŽj<4ٖo/^A-r(-C]sT01vU~9vg[DgϜRiLs\y`[y~ycq cܻ ]Fl¶D<߿{Vb#݈}=}N:VIE]-7K߿P# ZJ*5h~9i_{ʋ,Ee( ݠ%)%O F_ˉaVlg 14yWQ/(>5aNM9ۯfYrniIs\[|?p6ΓLLM8\WA0))))_0OQ™8#/oI7 c2kE 7"Ld2\훿 ; ^6&j~*<n% ";8;}RgTIn" ,Eo 9gyɧ"Y!K%P̌!r<̈́ 7I). \=9aC,' RRRRRRRRRRRRR " RRRRRRRRRRRRR " RRRRRRRRRRRRR " ZRhkwB'ޣ)ϐ;X˥6)BBz@yg&1 :BJJJJJJJ*$SKNNTD)R lXs(UG#hEަ;nrcl))eyiL<SV*^ ݻ{n^ퟗ-.[>7OGJJJJJJJJ- ZP uчl? i֐1Zyd$owQ<[mF;{jӾ)VFB7o\S;sTčW8N8*S•6m:*VGsgOwqRZSf-W޽sΞ>ߍT:-SP|Tx(]$`jI̟⿍ЕZ@`XX{N @$ĩ#Q zymӼ!GD%;{bN2.]8ij5j"Ui]'/!AennAu4f-[m[hsxk3k{*2b2 &۹{/M;0/@,ˋ2ra]a[33s*X(% _)W<=itQ<9rTӨ?:Mנ -GΌvvԸiK^|ټa-~g{wixfܿY0[42OF8)D^xOI؀YdRC (LF7_ [7Bҏ0U~2}26'gϿ O?aBT/)tJM9'KL,)%% /)8b$cÂBWrO }Ȁl(<]r޷ijsvo?M$,8sU7{qڛ̄B1b?g#H/}J_8W4bq[e + %w7zNҚJ GԲM{@Ǝ{wUڀy~y)ZWoxsq\kJT3u)J>F|F{{ aM^8B~>) )ssH&-8e{vxO 6#}R>šed<^_%a#ahdD<1.pxhG!؅+Ac%]-l٩ev|-#.YZ_/ʹ %pBY&G?ŪQ'Ӧukh˦JIIIIIG0[L阚r6*@iгIRr;+2ř 5bWɶXfJٚ |t?=Ԑ(Utܦ4&ЮYMBAл+sU8bNd_ƉL\O<9 KA/O>WgQؗPJ%~n>ޟ-w;M=-ço mS'9sG^ZgO Yk My[ )I7zq:4u 0۲'űGa 20-{J6zA_ 5J@+TfHK.eH1s|;XL>l`,*2ӓ@Uޔs) ޾bXqF.3yӂX*V&CCC!vww:}B75nFԨis.}у!ީk6ujˡQ 0լEkjШ)c|Bz8e${v щoX@M0xTB]}ѡ`"T:`9(D˖tу yyu{ټU[z)" Oy^H+`7eJk Ϟ:ž$*Tyq8_x0> d[YBEʙ+HM1Wt&-HKC5} }ĒP"E9 ?y,EQ}EE`xC<8ٲ%ֱ1qG Th1.:X~qk 2*WA!Բi}58(Ba,f"O=/{Gv8&y3sZCL-0"zIb^9䧴lt{`'{̤Xmw*s**12Yڧ{ (&׶%ftwUzz|쀽 }/2o뢔v^,\~&)sb{wH )<s PR1<ٻq~דO|VkUTl7[!uÍ2Wƹv"׾Tjhatln |k!& {gKx)Ybeu-',,,h] _# G#B`Z[fc왓 t !ܙSG콬.cSn;=yzQ&׭!v̹蘕T(%3H% k1fcf%",׃Nz6_F%Dhݎ^F 3'c߳RRRRRmIRL3cX#7{ 4p.!+ rD10'g-Y Fe3f߾ɑ"|wTR s'GU"ᤀGnXEJ'֛tge{DNcijdS^'`88ǻ[c~LnbvZ+ #_TsasT v*ŀP%שz.J_О"F'GGf̀!3R@Bzw0a`MB 07zzPž8Dhp {uĘ 4n ٵ=ћ. Bc]8'5*ݫRmF? D?%JqN(͚ẸWY7XIE rj֩PԡU31V<͊Ps.L3X0Q=tY8 ACIBNui΂\t¹|\\FMi|s ŷ_ 6`:9ee-Z$/H ,C9s3氷ye䦑3آhtWsEkyʖdԏ=Cblߪ)nޱF (ƯW+O^cD's)+f,Yhy;V)SR]>;pn&BW-NiҦ9TB%^X#!К3[dgGz )@*߲/f5kP[-%%%%%_IRLӡJӢ*2ʸU,?ϼ`-: % Ҷh&Ti9$RoS/ŌTaBmF_y,9T@Mn)d픖nĀHCrcj xϢ06(~y ̐J` 8`5MfaLI5E&kܾ.ESu!8Ҭ";@/Կ=a2+_N 0Ѫ`gOU /"*L’cтzΧC$ȼ@sm}*Uƞo2DW|o(2O<D] 31}],| /BFˢm8lSɯدS6ݷggL^C7!^~h QxҼh+4<99s9bxjԮCS&hE 𶅄Pb@L;GUh3'Ooޢl"'k cGp/&<*9-V$C 0sR )Sŵc+ikgG1[ۼUԭ'mXg&$X&81nHy10a}FTv}^nOg)KIIII%SK1L LZi֊{eO D<|J`o_lf?s!:!> %S>szyI#`wJ1`浥 p#"!wAlJK7]PS|~1L]rr7)D_١EuȔo! `z{1#"y0K+@(ErKb RC@u,=dѶS .<F蔘Ǿmݴ!RK xʞ<Xkv-h& "^|~:b4w;g̶\u1qaXׯ|PexfkթNjYG"Sfpq1+MP(Lm0qνZ~D+˗/hq0Ģ+-W9 sF+<sFXuExq@y^͜~ɂt̩sE-]BCx@>jRRRRRRL-WȢHʾ#MC/L,x *&`tޡ;k/p“<8"lCuӍ _M A?'[菺r"5DX&mnU~E K+LϢo(o.]8+Bh2Π 挮"?)RRj5cAxAojּ\l1e^69h=n &*S9'J阆<.QS ӬW:sʷw21┹Rv6[p($BSԐjagu˃lS 8y|G2<,ڧ<ϼ)40=Eq\M rYCv/S2d2slll0MӘSE:[ZD ww0ѿ^;x;~J證\F] x4IL##cvȑC(%;w4{Eqhӡ۷أO"rPTF+h ^2SUba6d/"BhgqpĢ&BQ?zVXОcĩı[^VV+8+W EH[DQeぽ_(QIp>{ݭW_'s׺1̬X+換8H&rG RLBrin"{nj-Wp-ڀ/x0.OCa^ΘNw[D#ܓU˖Q}+`j$zDO "?}0`;Qf ؾqTn}}N|ǏKO9ص8nVnf\xnPgڤb<0në顀Ko%Fc.ՙB=8S\6C^ѻVYg޾,HIż|9u(CO1ҎmX))))L-)ohS҆ N/_0c%`³VKi'r .8,Α:qA~ ƞGSo>6E2q[D$5oTgDlm@u_8\+`F8{v)Di@ J @ygnI&r@ssfa )>@OhI1/:Ao>qk >Ȧh&.S>ל sڛ.ʸy[N{ey6 *k#-?+zy#X!L'^̃?{9NS>'B/C+R0=xkIl֖A q~u [  ߽nߺ=C i 4p-AfK9 PL hQ59 vN\gsWCT^b+W ZPkV}LԵ{+ _x~^(hQw!Bf'Nt->4J& M:~ﱎwn۲=8&<`XȞ= –[/שא -G6 Ÿ+SQfz➸9E`ێp4eg0*Tq`c#y~,x"[LmГ!! Q;VXA7hΞ0l ʓϙ]LYx*߰7|o==oڢ5/%No,BOq_xi4nՠ%,̝5MgI|3,,^lʴ"WY,=ڿ\ 1 m;ENTBKP@ϔI3\խQ)|>nDFz¨(ڴa9y` ( EH-)Jٚ t,ƀV `}PE5ل^GE -M?|RDmX\mˉPLHйӧt%\8UxB$ŵsNFذQ2#.]*G{'ҦkRRRRRRZ0b 0PP[4ǡzq5. rZ귢[6q!=JvɕAUNJNi8aV]_VڔB/%%%%%%%oL-c%y,\ K@+aqOOf+y -OY$L̩[p =NX)ﬔTBJ?.m zkBȕ9YQH֝UD)ΛDrۤLDr5-5oJBAxeeI))))))))HTHTHTHML2%W|U~ƫe 253P60 euHPu%3>AA455_Rq43ߧ\|Y"9%Ϗ󤥤yQj5:g_CҼYG85kף gw¢HU(-=u=|ʔ]vY].HA֩RQRe)=ٵUvT|%^ɀ8:f1;Zd=zx;0y\~IC/@iad=?k^RK̩1LJ[Ͼu:|pF}ybIN m0xeϙV-_BGvVm;x1|IIl%=lڢ0@;% hm13iGyZrw{ ű"JЈi BvTFs~6i<]|oQa) b..f-[SxG*xӡlhq;O>*]T-^soHsIla9E +7y:9fFG1kH{R!S2 "淰PZxG. (*կ&xG/cTN:{$W)B]8NJKpHII{%SKL4攡%wސǥbB&FYPTmSP5˜.:Coo_Ƿ-$"Sd` \@*~{;5O3ɒpnGՇ2LrHcO^} )phznӛk),H8 R"4}JJV:/>Rs׎7eȡBOOš 1KsVKJ` Pڴ t`n XQ)B?z żzUwnTjad͞2e";ts{Eׯ\ DhO]S:=Wp~OTī)=Ӯ/a,z^<{Jo<ٸ)_ r}ׇ\es9**cGGJܛrs B V9Th1CH<9r㞖  sql;BΘCׄ0a4:/HzzyrWԔ98e9sq U̡VV|?1Ο=C!!TfςW//gf9ۢbtu.@&&&蔕7lBsU80gU?~ rœ5ʝ&"s6hܔE˅BE?` KӮ!c)3 .Q_SE|BEepwSwʊ c#?81WR`@D( ŘuQ6=yx_ )Ƶ+.ЬHnώXEv2k]m܂盞b1֊}1nĘ tyu5*+"ҽx7d{vG"_sÜ-Z}w2DGoШ)Y01NVo WӭwZ0[L锚r5.Hm9K=FYQi 8vE$ss6C2ʞL udH.K;])GPOA̛\O>T@`/xMR+Dc49|BGxq s ,l,)o"N3K(]u|e8|E3B"<R/Q&14M^# w@.KV#/(+WW5=^o #nFTD)~2 3R0j ֍"01wPЀLM0W/_@p];uZuACʑCCj/OE}CFdOPxxl9aXr8/=-4r6MF̹^g1+mZvLx̚ O'c5~0afo'a#_@o.6{G˗.h_S'1B6r:ܿwxc &tBz@Blhc0#X]%JM[ Ky:}237g  SeEϣ)ԤKeWP;S36a롹H΋cS*`?zX jW H֩-^# `ԉ- Ny9(A 4n&YE:z _#sEkg 511kW/}{x=5jҜ 85+ ߨ Wu<'łαQ BIc2}Pc޲i./XԱbB &V`157ㅑ^^e:BbjTb%6'״{6(pa`^N=Ղ8IptRUUU 088Qf-x<]sKsy?QK86KV0c'N}֓irRܗb,vnE!+*~`oK-^0 Z Otc1A]֨U@ve]=XH6-esu4ACGHx-,~ RRRR$SKLi(wB >Oݣ[+.9M O_M\#Ma)`\GlȴvJ/O> N1LcX%'@6]#>e=s#d xY]kϯFxR,Kgdx=9r@L^zlT0G #$>pLAu50lٲ 8);0H`+Q=qPn=y'Uƪ7F@TÃw1D5gO`h{ΟżiѺ=#YT\ChCS{aRK}bF'O٪Pb|qUzMg8ojְ%oض[&v岀l.3 y- <^xF <7[c֪m{8,? k :zum[m@=D&LF4r1^T~C1'L' oܗEY?|`C^rulLC[L9oaϝ5qlҼ%<_q=!7u\\6׮\0bxޑ? û=`5@[5љ}jOiڤq+D\:n(Em[oD֮9:eY3]E0qӤa,{NvGcP#:wF1W%`)+ wNt_?%KS. 6x(w  Y#WTxI%@ jط08 U1$"QY6쑟S(K\4)Gy6 (򓡰= /哽w[\Q󴪱+б$YeIKxDCT!~ i,֮#W΅ $4>_Lv._m V 1JL0CR!,tѲ5(!pc^ [k0L*#¼/a \ɆAR`a*`Q ZD۱ij1O7ӷoQrc c a׸i ze\ Rb&M:5o{8koP!q^ٻyM-{0d\46{PE0p~|̜ơh\CPC5`N՞N0FK`dh>zSM6GQX<7[K?WE#̭~æ°oFO&CaWaծ+ .콃DVq_)4$CeX&ϘFϒ~[6f/r#5@v\X #ơKԨn 6XgF,!k BX(0 uTT-Si׉<] B>e )NZ5x0]FukVвEտrUn {",F1Ç F[6[0tcbfZLu90Sa_7T{4cJm! |EǏNJJJ*!$SK1LRΆ؋ ,q USd9>dc$6`~zK7_:[ex/W Ⱦ#YڥkL LPn 127Jw7\a&V577gazapKM)真PqԻ[GPH V K'ű<}p Fh s3)l`e>ϩ4|88?Ν![kx*[Hy٣|BW ~mҡ5{&O ְќB9rQk0C B08xץLs0arh5*뜣 `\tF@ S0?8 B߉?8=T|J,ݻxj9fĐSǏYErK)~}_2B3fg)\{4+@/KyӀ>^-]8) *Sg1_\P1f,r{#NdX'[b3 % ׿k ۳ ???op1c&LӴamٚDJJJbA4P*(B6J5 ]xAg),8>(d_Ɖ)Fi'_ig2*ԗ*Æ5%S&U\3eakXGZ| >#{ Wc< -7U0ѷk6l#G֖Uv=6bKU}gty*W缡k0mm+ k7^(>-zȇw׈[xA$<3$$sluj{/nq3v {\a3L=<(tWMzuc XhRxm%(8`"U]jDޟ(0UBxLmZl : D݊Ub&a,!EŔ^ڨq9s1>)))Hb0B%--UdUӿ0K DfW @ D/)9TNEz0?Mb, |+jJJ `: s`mШ  !xM sFY $6A7G Pν(@0, VԺiA[VZi4SZYY3`^&,M50]qu˴h<&K 0WELPȧT3ǡ 0q} e\z9B%+׮sq7?}4~={xѿ0P>ǬV*y]8O[wX`.{u 8F(܄Zu֍hc!,TyV R훹@Ϗ32~l"LJ&cB:ZN@3w )ȱtR<yʙ `"g\"z)LTm"~~ .<fYTF5[N+VqKxV!ӣ m5=Żȏ-;=?aL짋O`bZb.?f]^]&!hdjj¡̡~Θ:IF'":HԿwhRRRR ! Z"06S(G){|Y(E~Ѓ3c,ܾiC^PI PK/;jX76`G(>{G\߷(*WAF Qf^:q d ?&r&# a%BVH!W ;: !? ۭݴ]>*Ӣr'zͅjQoWDQWNM{'Ё}z., 胑߽S[T6h܄ (xH0hCh AKI=PM؇;hˀC,!{AQxeb"PA~zۡ5 Vٟ.088r!#x& !zwgJ v``4nt$GX¥8G4[[<9o^-,j`ڇBͯ" Z=yBFշ[5t`"Ap?a QΜ*,p:ųºҀlUդ~= kFRPPP-(iL/L&e=^{)TӱեL>2D].͌`B44,=2R 4567[/Yi^&lKjG9Z$LrIW?]$eM@j2w.P"z_.Z.AHglLK6@N5 e loooJ60Hak*ߣGĐ{%N7 %[Ƕ_Ld~bl?{V4 qIW1-+8APcJ,CSgͣl=620̩6lj Т8G)LIS "rl93!;/}9N $cm_)؀1N<#CdcڄL($ 0p.0`VWQLl3dfL20AF&}{&8k$UZ\.H#60}ʃ9Rxߒsy$/O2+d_x%]zI24rf_݂߰I+} D~ЁEN{~LCW&M-IFqm;)ڂ u8ZN- y@뤟qhӨis*Uc҉M uYځKt&%M{ܷqP\W,@=i¥KT{/"D`oA b-KY%.26MG03V Po~"J'H= UV `VQKJhP2myAy!(D:->Qٕ90pCׄà4nieO^5 tQ2I8"qѷW7`QPPPPJ`M؈Ni)8!O)SE0AР8"8?< љ3H)wL@#9fv!Nroz>x'ɋ28 Q|x6|=l'6@vk {܋^u!˄n.Nْp\Cb6" ڂTSA% ZPMC\39FVa$137¹j3W<4yIF9 Fv_(}!+$%cSxCh2yDVZJIa & byֻ<޾~-C&Z,VZ/\+!Tba5 q2 R{(jecz ҏ5oXU(-Oi`;|PaBop1u(k$r5Zqؓg(PBA2~Wcp2(q7_::*'dao wQw|$RBVmcb6[>\Aq`BlCL-_IĭլRNɘL(*(ʌ) *ʰfWzV$7'? ,rH lFF N|NRBP 3 j`CwFT`o14b1Z"3T(BY1 Ȕ h6n()%2<~tQRIHa?9)!Q=# "C, J֡IH\$<(b+A>!U/B;>ì? u1}١/Ԡ5$[ z~9ᢹT E0 STXQCL7uʩ?s G4 ;Lɿ +)PQj*DDF ,Q 0F-P:ȷlݞ=$j)(((((PSA7%%P CR/ӧ E0~#uqwEFZ_" Z&Nf_" E0b`*(((((((((((( 4@B{{J&uF\Lrؤŕ% sgO  K)3hؑfr U3uKk(ݹ}O9:9gep)HJ-"}]k)R& ym w7||>=NM/__?`@#ftptu }{wϟb|lsRrAUnʜ5["ڌuճEywt}zӦ w>rI@ieRtf!DL:S?.]~#6yRSj5(_BdX~~AAZdPk>JSjgBQAn5QΙ_4ninrЯW@OE|J.=._($rt0ׁ|i׉2f΢{ k8t\tF[N])oB^5`?0azyZb)ݽs[kBKr`X#{&֮ZN{v]C(i`Ҵh?ĩΆucL0l-elPP Hn N_skfcAWndbDqWKo Q)u !Mp=9+}xKV!Б~8^pBF@/_:6jڂjԮGTgOvl8֬S͝E7u!"@M,mٵl@s=m˶UoϮSVFҹr lQt0׺&N"Q"noƌiE_꼦qKG.gOPtsvqsOidΒ:tN}Ӹ^M M(ThMd%??ُ@pOM~U3e481>zYwvjlB@d?H.ן;{fNHwnL4lX:uM< 7nSiN(((((4`٘S|{Kɚu)A&ftmYz}9 @_7_8Fq(aDs,HNYӽ7LI3dF]s%, O` ]LLMdݜ;s*kTmߙuBm7΄c&NE31` )Fc&LUS6TLy3`05\= `(W5 7UA=GDq*]v,GcgϞFz}Ts^$IRZ4ٵ]^fw;n*ʩ:*u>f~Bf?` &yBJS>#9wLJ-WA08q?iG2;*5:%0SSг)7P,qK|p~x)ОO/>úōgDY\%g2t %_u_HE'mklDɋJIfTT<]Z$/ᄀ'G_y6ϰODJcC+=c&J6-ޱ]ĸ*T(/?CxRdvlZ|}ưJۋ}I7W^,,K[X¢%JR|Z$J2miiIk7ݮe&!">XR)sVqʁGqOG| {SX ;lLqYȞ7>we+b_#¯ 9s^xNG/Ezb֊*CiӦ>tw}@YTZM&d=ym/=kC> we':9eTY[M׭^Ix>G4OpP9^*r}yr~Awo^qn3* i(c,dnaNE:,} {*V$I߯\(:"ʖ91E_*\V2335y>q b;A[5,ďܾx\հjrgψ0ރ:u1hZwm# x?c P^$^5(X\Lo@CU)5â#k'ΜF7o\4e](eԴ;pΛ7mIƏ7o7k)k6Z`*((((9P% )s\# q./\[S `_SI,idtUJŸ/L@Mʗ6~==vBUF)r ۃp|EVSL i`QL KJY"n}F>Tg|=n3Q)?q_uW#Μ@1]F+W.[,y$'s̙d&Ǐx-O6!6.x!")=&G0 '4nfp}ZB6<\C rSxI瓨 N hFMZp [4o6]q񱃇"lN8V 2ˆDc l|;{)l٨nШD &]H.7'O:r[6 %׮ c0e .]l}&\c`ϐD-*>(8El,/A wH(Yy5kVS':4ҦOO/=}}ⵘq5H&_7j\1qM/%f  YW.=;?|,o0խS882~$B'4 S߁C)5޷LBqRܾ6]CC/ZH__`2{kY5n̡937֗6viġӢs Ŵ_}_y5`jf׻ ;s̟c'R$Ʉ9lxny҅sBSJ1L PdSH% ^uQ\y +kkd>yZm(RDwNo3_≁2A$^mصIF{wB @+cvM$ICOE@MAAAA߇".O^nrΙlFg.NN!P&ᄀ7WpK ^EtΖ5O֮6r/ܚٚSBi!=;NN< 'M R$JնXЛk/BϘrq,MG3+dlMSoc"3'۶l JJu~.FOdLFbf+vC " e =lzi% [Sݸ~U޼yEltWZ,Dm[4A 6p1$a|?{DیP&"PPPT3M`kK/}{vEO -[AIĀ PuF[tp@&r_EfJU]0gddՠ_`Т#C3/YFN%-mZ4}ݹuv*w5-]z&`6Dlx-Zl7o\NLYIVrlR/Dyf'3.\7t'1q9D)P.?G /OO&6BA2a!q[\˖,LJDaϛ5]n=P^ѣ4j$z♌[a3jgM;JH>4 " @TZ!~O#HՑn&W._b"Er:S&M#+a{/s{)#"X+FdEVdn:˔Ϻ@;wl].H\,*{\扬[7okW.KΡ$H}N@d˜Bw_UXqʗ mߺY֭(3q?~@-ҵe=zx_e*թWA=b"< nC柦`""w')"ejZr=\2=6J ŸE0 #n2:q|SLdENL$E#T#&P0%qpKV$ PTm||ܔZ6‹9'8(ٛ'l 56 &\cVB9Z,fr&ƔEAiOcyX]S$b콻<Ďi< ȡ4ipLL{'BD2LoPqV j ?PPDDPU޽rʔ@#LLH֯]iP,XJL*[6kۏ`jdjT- T۞}J-Q˵8 5hMՠ&Z%6XG^$L{ Φ"vjjD6̚Pm}HbƔ<ŵrBl\'e0kV$FLZ=, ̟QKFy͜:I>I:u#;{{ԶE Y'KہsRɁDVtx4isgC|b֡sw*X-Y0vl,d'w4{q7T mK+!494`9`Y0w}O}anASjѨnHrC`bOdo kW).r|190(WUaR>;k(ydR0ݧSnY\uH{G)t!`M0G &h ڴaYx`b}MfG^#b4gTڻggٹ~4(Cњ Z\20!#x@>b0z>|/)"n xcz~$۱MiO%Wkvw[/+s/JK'EDL.Ja $zvm~y Eo,9}L ߇8+q_}J#0ۣ+CyvbW̒-Pp˜5+XM'5atAQI?jHE O<==%#vJ׌<-@Cw(_B4u<1EJ]mFҌcLiɂ1 MN4kdGT1ӖTUA{lLdW_q;jH6eMt(lChk6% 犲eE#ɓG\rܤrTj0se|!1i!: ZdČ [;ҥ B~-?@[i/!;1PQ&nh-E15֬ssĐŔb= n/?`"&j%>t`_qmޫM(Z%IV `+N/TDx@H5٪]Gy %a49{ {< X`}b ^  Ӆg UL*1)w|l9\J1c$Q#q>.d?`G& ..>Xs26!J7!qP"&^=DDޓ$p- Og O| "5&<ʚd`2 eР)r+B_<>1{)CdYdw9#/~66l-^(!)CLL.˩>l pA wklܷ7]n.!S'!;t&}ִ^-,Snt &\[jϛM[7okT٢U[QtD9 5xa|;::K\) $niQ}0@s)(m[+Z1SfZnĵ}>!7}4rGWLpE E( ׎Ȳ"nԈ_ѥN͔9 9 cqX 'T'~=%LP`䙴5 _Eݸn 5,wjcwH%H`s։Ə! rpLK]$C[hGS0`9s˞R?n Μ6YTh`bMTjխO} #zhXsG !ܝYV(k"@Ws[!,a^{~`dZH,MV.g"\2^E?`FBϻ~-| k}>b`"Pz9̃1:*dL$':>`ncK(2D޸M K`o2ddcޕ]D pެ6b5l0㵂9 1^Lpԫefڟ%-y6_wU'd. Gl% ˁCG2lL4 f\UH+ĭ}pļqܪssL.Y\&̱<HgvIL@Y&g9zdԯھU`&,jde%;¬Gm z!I| ,cdZ LĞ>B7d7;<'RgNƍZiO9lR_ɐ1wgz\X^LI9nX G2FqhDLf2č $$ uL Y_yJV83# ,Իī`jJ)\aXL05w׌sHK99q$j9EfܟAL 澣È!uVDlؤ$^i\L<ضud`,IJEE,C遲er'.Γz,.M 0LMzʈ"aHJE`T)JAMW!m:tvR$+v-:\ {Dn'L2 ՓJ);qM76q fT^$T=-f:d%wnր\-(qhJ&mI/p]n Wj g4MWjEp `" YƄ`jɘӻ ELI00w* 0Ra!o”W\.HX$A_`"Z7oE B}ic, kn\܂M%S[ `fȔVD; Sf%S f6H[.^[Vm;JVMH"({Bq}6aYb7]tpp5\xm쎂ŸE0 2%i1Iٓ]|/ 5K)_k#Δ8O ɼRFLLKDZNbevңI{$j\BQ i+fxP吏tnz^yrʞ|@ 1 MS!oDXR%:)ܱ$#a 2~f oۢ1ݿwOzv-f: D-4n&}ztC0aw1I#6Q֖V ;y;ps𸐐E^bl@EI<_A4@&87@? It&1FbQNYETE^6,@M5_ RC9^}19DKͧ܎|?(;u2+Pr%%K9pE1z=qEf}OIo5uN" x]! P%+Mcdfa.5 Q$&/@./g#W :)]qΡ8RV *,s7{ܴpjڽc'TPQڳ8vr߆hHjIxԭc[q ^J",sAT/<9'dą[~$ tzQs/s "8\!FL&y,eU1#H,@ۗJ-O/ȦS^;vK8p} =|x_OdҀHfէI줾& D5}69HJZ>ND,rvlCQ)5X:YK LoӏؘbJ0'MM٠EvD^0q0.0fHq ]у `#8zD ạ< H[p%ؾE#@"Tr1<͈qC]93fjaRv-ֻ >J3F ڀxNO5J#! P|L^erpd`.DPCD\qQϊJPx67?}Cҥr y@,^v%("HdQ?-JY};+UESImԙLѺ |Ɔuhղ%R.'&^.q.\f!:X/ QE_4O#S'$F Js6%J 9!8ߨ w0dQ[(nPf~ WIf: dc(M/8BlgLE -n=P pJ ?ۧ{Kޢ%JRe bʄįXY2kT{{"f`P͛=/_dPJitw5Ku0K0a`uڃRqG< FzZ E$bڡ5]dB`(YKɑo)sVQ`ˆr,SS3XVrqq~"BABY0۴HN0q}?e&g ݻ| ( "Y>'xJfNG(**JCՋL<;HV( 5Hfs]9 }8G|Xř' NXϱ?{_ӖmǓq8 ]J/#PزClh!E7^ѝ;>z--X! = 5BՕd&"w3!\J,]EG~%$Ni۱[7"?TI;'ڢ(O& BO$I4 Z-Ȉ55!!k.c 0ARP: 4G=IkY3e{O̅ϟIy_ q84Y y>| u0*gcN3G_jw  C wbO(iE_m15?;PS%a0#JspOrLKLgpMMD#<(>bb>K:$A <ɲc(DWo`c?|pOJWn` ^Ogwi.LAr.τ1B.O2^c8qvvX;r?fᑀώ9Օt> zz P57`|6"W666!߽5ygx8Cĉb}D7ܼ# طV#ڷ(iGE֨$Q1% :wx kWuH?Oq\!?_S2UIVIAAAAAAAAABLX" E0b`*(((((((((((( 4 @ȼ@{NSC򔩤^ҽ;ӧO?fZ|XY[7مgD_¹~59:Re?yh;{\,sGzoAL*R6oM.^ŇoMo^nк}'*UW+kvlz/_v+(( =XE٨ko-_*UF/ 8h,X(5jڂVXk=zKkWѕKb ?E0 PRѫ?'r'{bL06hD /RkV.G?a62Gv))QF(\{A)*3'E99u$#xqy=rem\l>[~ )aDdlnL{ݷےKΤddlD~|5!ٲI? ߟ޿{KQ^5Kї`)(:uÜ^:қׯ#֖ڴDy]*u|Y̒-;]|?|~8q[tҖ׮ҝ( ߇kbjؤ9+YF  fπ!tZh>=yЦLZj^f7%jik+7.%M/]rܹE_||tנM>~ i%K.P~y((("/MX;L~wI+dkkKJ0P q%Pmll) LJ޽}! ˆ||d+_B^Ѡ==2%=!x\>{{{2\}̘q*Us!I'%wܗP~5g ؈뛇GXc w|~3s*8vTℎ?[@@|s?6|"/OOIbd###qFGE`bJ;<==v<I;At>}Hyvvqxefp |py|\c C"2}haߡ>|9:^!s3F抎Lq:q~Bk c]VI\˗!"sism-Ͱq5NAو\q 7N\i3U}DF01WЦ@r^ &A7{}s:Ğoؓ`NB!z1ĺ~y>|IAφqW^b cOA >zcLzt2Ҧk[4jdڳk{8i6i]Z {K5Kʖ({:wD}nJ>5۠I3Z&5\w~` .M"Q%fBs: Q5p$)H%D9wL^]xJ2e`Ee#k`-! 5dSm2{zwk& tI(udA zq }xE_C 6͙:gKBw\g吏-|.oL)]^zs9={V*;ooEo{%Λ\ȣ-!)E17r̒X9_#zk>ICn! *";0XD\ӤYKJ,9%J6 MjШIʛOuj+6/ s@> ,"kIq*M3e1G]3`$ORq9ɚ ?Ϟ۷w0ωv .I5+ә'r֩Pd}kT(Z3c}.m{Re7]%PBy]tu1RsըUWLLͨhdff..׭ .P0+^DE0SJC۴1ĸT)r>m^ kWIF@(4qǏQnsgpRJ@NL}}*B8Ӳ*R$5c}p;B$G29 DX3%9QX7M`yF\599/lAs|tUƌ&J0vry nXg=ȌF0AD/gN im$O0'ӥ@ExMe̔Y|1:}N""'mݴ$TrTHqW>_|$aCy,l%~fe҄uCG;m8Bn}o q5}DjK*{X+Vo]&ʞˈbwse6س3Ck؄):s$9hE%/}̞];ҭ7:B6h,PCpUCޯpC oԹ{/2罬eB~` >#es&ui~"usQ4nuk.7,1 %Γ}Sڇg!1B qy;NݝףG00ZPQ(AR;'B|9?;:+ xɬ H!}c 9ƳFD0|&/ .+c2.Ɉ[}|&xZL$U*9 9eM"gdǥĞ2G@Z,MPPc  #9qҤRԤ~-1t@V;,Pz}eԿW7~=@>$IBB m:O : 1F 16=LFIJE1lJ!$1aP vh(ЫϤgBrwJo\ݭvD&0=hrh5hպ]G6Ts縉|I6:5cV *TaI?7]ar6r@.ȕ:w)>y<`@,]F" ŠHhcV?:ECW&' 5x,|y7{bF'yS)|{CUÁܣ7]-:k,\zv(O>)sl^7VH"Ŋ+/YX@_7H5&_J ~S'@Q4\u6k9pt\ QT2|4^s' Q05kՖjթ/eȔlx^pNjխOOKH X+H@U+iѼ9i^V" y8/_>uv2Q~͢2N;_F0{ KpM{X+y:3k/ $ 9H85nJa.ZHOJ"oukh`Bs[6BnܬϧSvϜ 2xk`|-<jhlZcy~G4p4~n j>+ q/x>afȘI!Zaĉi2)A &2۵1 qs~`Y^:m!:2&56aD0WתҝF ((((hP o<[j95g28R!ZpҒCqM[9 hYPb:Eɱ,0<\0uQ#pur*(?R))S\{aqi764IC: #cxf({Hsfa~!OD峳``4aDъ|-1w"Y~Gw_KZU$3}4e!J_#3 ـ:~pB?jR捄aj6;:MC,3$9Ү)n=z :i~زCGssfN,Kl\㤟Cl( X(}Iy rFTTئ}g1+ Ipxhzcjj"*}!qPCs؉SEӳ(x KTDow&V `FS@Af=C.P15n T+ғi@;ݔ:HƎ -ZQӖmi@CR6!#:͝5]HzD+W#ưV,Y(ȉ' z m(Y8jU)On^̜H/# vm;v ()>? Vϐ._c:oBoBm$nXJ܇AK㖎F ?"񓧋"pl&~/*,PUE:z5oCёh s:u‡x9^]& '$Uz-i3~2on+V>BC-(\2_iK_6-왓y8\[s 7i;`r% cx@-?+rF~VT& 81O#$͑I-,6"_#E 70 N.υ~~vgD?9-4s玭lM Y@LBCb_^$hY0c Ⳝ #e.cO٠޹8`@B@ ^(\%ATZj'n^PZ,eزLAzO<.eTNḰLׯYES'}6&dA04AZQF3qg21JWDO\n4bJ+O} g8%K\`qp-l9 JNzs#nB: + L.^` O,]|>=ȳ`fppbj( kL&pK{Z4aL) ul9rS]ekT&OsgMPsr 2E.ŝOQ+1En rRTYq D*1mI2gfr6#1e%$@ P#*3}{Y&1q|B% ֎ǵu4_o W`<7`:4SҦ{im4r@'_?YsfɜO+XH CYDvE)^K#ՈɄWԙ\UYEZjk)}jPwޯb K,ϻ71ńqBqLRqoZĶS'poӡ Vw&} G&YwG"ٲQ.8pAO"'qҾS7zxh(i!JLr|56*l"o_k`z38XbAA nWTŹt}y!PʳtpYdx 1iW0$Frʒ3 td=ϫ|CHV$vro: Wkm P%5 -wBr]^B4 2 uD{uIU뉻`W\}o$;CK}&i[~ܣij A0K,-KΗא\FÜhȡuӆ0 q~ع;5[C\ԴBPY^spldžbp?s½zD T ( 7Rf:@ ͖D#%˔1p Spq /d KsRC1Af>:B:bXL`1\7pG,6 ^G@EI\ {Arz|o)nшEB1FڹM ÅM[ \TeVPP.4L$q͝LjQ"hB&Q$˻D#\11ל $:!et~n!HpYlyE=>v}|`OLAe;1J`=f#DQ*qNd2`n;Ѣ=ݢL&P BeyXTW 1"D&DLKFfI)(>L6LҔ5|W"2%0sK7N-A_E0SV1j5Iִz2IA(l 1Ip=Ͻ^QD3DeZh$L ?J0,j`#a 2zzyRpPpӄ랝;$Z4FLIb%`Bq¡.nn=}fkZ20q#^I8RdϯG@@>@fT( An$iif03g/g_J+/3CL\+1tP҂3 #-ͽ"m {:cfbha^K0/lmIj3 &Ltr0Qdt&F*[NwGţ\զ{:Zwx+)Nldx1^\wnI!ε&{|Uw &Gr:#92~I`_൳fQ#g++PLB;x (DcXgd\C&SB`!#Ksv3C+K0]A>9,:-Hpd/ōf[$̟'C\H4 m~6lذaL`B< )xEMClZ]+>4NJ^x9#Vxrn >z70}0Pn]TlzaiI 91}M0=k #0Gm- n>ʲ-ZBEdH>~jG€{, TegUiSsfb3]okC,33ڴSݭS;`Bl1*ȳSWy!̩Sx+Yw˚zVY&ry‹$ire(fw 3C?h\pN֭^F n0p&iQoy0:9&225-yxV.[E؁3@E0CxIQc"[Z7[XPERx*cĔaEYb>x)f1"xXGTS]-cL<| i+{8O#m;(@D-׼EEvț`" ]Q"kB0 }a_L[EtcБxfלd\`K/^Zm$];}#Jn<9T% aÆ `L`2V ?1o^uȉIU5OrCږ.f/{"$hkRфy* ,a}hͯLU>!'orې@Hj@ fe%adr~t/^)*_W»Lh/a=5LBA[}^RH#/DYv'$idvJċ7h(%@¨J85r̙3Sdl NYcU ҳkG%ݖduU9 pCVRd U~㕖OL -{BUk ƴnJ͍EnW`4j2ӳʐ1oÆ M0]P9ItIU6HWά;&GzL_:$VG>Q lZYBRha|jEȉɁY;`>멶 ժz(_.H$~ݝS7eۨ5Zʮ3S泌юqPfX3Dmb#Bh W]S:<H#?M^C?Ǯ_`#QQQx<5w#F2kTU(hA Ix|,I߸!,B)iҤ3Dkz>y\' 'Oc8b3( Vq.W2bJEؿrFkE&Xom(mxjѝ@L=CZP;74kvJ=eQ}fl+^v-S !`K2-Ls39!V*q}eI&R`r5#i2}8}H3k pB꧆nڪ&'ccu2k.iN<=zQÆhNex΅bV"6llV=\rlᛗ#|(?!Qao9x( xXSc 8,A?|奝u%̰Iy%iIOa×>5<-4J蒶JI\ V}pB=OJb-G]b6뮝,SVC:!|)RS]GDS}qӖrݶB2 /m߲E}`b a%!o0{S9ه1ڌ<3kq%V8J&C07i2J,AhѴ?34$a#H>)]bܻwG2d̢mCie00&ݻg>yRbǍ+'捵uzxPVu.?WØmÆ &.櫿=5hۦMDŽN)/̈L=Pzk> A #]/8=,RfE[z@VăZ6-R"E#?aCʺ?/@&$ #1~ {%CJH*:C ƄVrVokHG:JZ}L `/5E j﶑k$IԚ; V;gNO!!Fa mIAGIIF)E|!~h$KbpDkP![ɝ/J!5=BQyghKpS߾磚,J|BXxrTuڑ|fL | xڵFϥ{( NM(xxf'\=I%zY9̐2]SZW|1EUX T (p=;@2d ( #ss8>mn+ƹy[ލ9SFQBx7窾7*}TԂ9{7^;?y8G `DvOzܭ 3<{uwΝyPbYx u5곚d`CdPYml< 5;Z5kwXŽiC+/րox֒5/Hx/?0}z!^dʭͳ f]B</dג.>q^`/,|}sFӆ 6lذaÆ 6l liÆ 6lذaÆ 66aÆ 6lذaÆ A`C֞ȃ'ۻ䚑F-![9l6l-MǞ7TvGo=6l;Rzqks_P6lذRHQlaIr޽@](RSI!6Uonٳ{ܽ{z6l mHiq%;I&yi3+jst6l"D(Ydi˚U MiҤOKe//miÆ M0]Pdiu;I(3J׬ZQ.]h١Kw)_0o,=c?wچ Ƌ'׬+ ʮy5H5eݚU2~)mFLqV#FLir޻⁰VܺyCؾM!VU`K˥K/"x,ٲKHe_#ٰa6tAr}n)rd^tz0'MK0K+sz('O?Ng~!yH, %q~^w]9uaH4duFM$T`0ƅE!B>\W:jkM57ĎGZRN+'|/kWѢG7dd/_gd|ĉko,9w} X`"Uj1i‰m"(SlVv.ztygVb%M ioU39>ׅ V8kҋ;aʾV;ԨndQ $Eʔ*T(>{vU+k>/i)< ߏ}Y8>~lX9TJReJ2cz!ٸ~ KxsJ"deYJ.' 6:$9u{{ !B4{/XD-U.TΓ=SDn J)/xڧOA}zVZdClټA֬\&.+#OJ$K" |Lh$BuK :@БJRi%S\~^wUV}z`-| iY373f2z:wFsfC5p(TTU7j*K5v?'/˵WdA_?ABٻ\rY~=C= >/XH̜fwWVm:tnܾu[ U.yzKʽwB4Uu?s[3.jh1gt2i2. `"O=#˂;1X"LH.ϑX*bhIT0B.>/]'^ݗ [Oˣ%Fк]G)\,Y4_M쯿ɝ7lNN<[~^?nTC";Ȁ_6 3ː}e/ 7+ߖ?IBsCF~Qf!^5ԓ>oy^#FKZr-ۆ W|Ҥy+CОK]ڵ|OjtryP:w%&Ȏut2J/jSJ?ɒ˘l[rkrC3 u$C0O;cP!*$IFMqFn&3l4q ._Pdͦ {/`+~VElC_gi۱kHZ4n ۷mO1b.nuqu&*R\zt頩3x-`|(7n<'UlB cGU˗eO$^"NahOQ0OOu) 5U}%xbRe@od 4l邀0QJq$|r ~ಟ׃ CGX/{QP2J4wI.<'O_ OyQ"ĉ,/ʓ;a My{!wܒ+{q"JQ%dP;~lL&JX,=oaŒcOgKwo79DKK?ᎄA0y>{DI| cnUJ-jRٰn*S˗5d N LXɐ)(xSl%4+_e驂+x؛h6x/~| oܸ.BGʧ3d88RJaT|`ؑêyBU !b$}PCi֔3X<{d)$Qxႜ6F9L&ABܾ-qq<Ucr%lc{WF^$HPq8}XP&CLCǝ4:5BuTCH0|< :$'Ҭ`F)B.ܸv35[ ڻ{wUz-^ʩ|DfĎW9Ϟ9𼄼{zkQ mb^ȌqIj%fXvv\}63W߷O:o+ܛxP|r{2gɦt%gN:r#ºc W ";/"S3.(>={@=-D%tazO`2'% ld"f#ͣaM3awF D{5:Y/^; <ͻ|ȯ],4?ǚy豹>kq7ٳ*?NL0ycG+G^8wNܵyȐ:<79c|%/V.L,IVENm^ɿy sIV"$ȗL!3JJ^Bw9=MR$OA'wRu|iC$o*Μ@2̩DyJx%~\:$*\3TJ]K.>'7w{ Ov\It>rIOGruuϪ|nHWݧ\xX?V+9qбkOb={FF\c%$a5р`{Q{厵3ߐa Bx0uݷ '䍢'MBaF,3ϐ%*;b1!yξeVt)YkY3&L{eYṱyЁ>0tOfNr@xT2gͮS{| Ko\3tlݲɇAƷ9½9 g֛;<5{+j`fh 'NxJ98+W_KR\xdf>-~ܼq2p32 2;ʞY| &ub# 9VSXC63h K7ukV<':ÅͼZu#ʙ1c߷We۷okuI5+\9+<_zŋ獼[m/!#FqꝻ8qG!*|Fu5kK붝$?sne#ƛ[r={ܪ7V u,N!=JsRҪ727nه` 3zXF-일>&)y$Vxrt~sv2קI#/ݓ-2s<|GUA>O8,'n"TfeC2|C{fQ98w<1D˜PJSyhSCBٌAsvʱ%كJ*3% r'H=JwlF.qF=Cg(i+g=P^%cبҮse*1E@CZ )x=!or$J apN6]6+uFA$Yuj"/¡R?WH~B$ =gOׯ5%%cHۼiց|^E A\5a7!%*S&89kҬd2,¡C҃ի{' rw r50r,e3ϱX 9Z0ɟ{z-.=zK#̚@ xIJ dLfZg0V3O@.lH'u,!;26I'7 vb9tpzBsX/7G9J6{C@H룇iJ]@"BA!G#zL ˁ<+ &t=b- >ȸzf]BFQ12ʝOIuͻW-o̸Tky:xJðoʩ'u<9r8yM0}ݾn1Jիu=A{).%]7mTdΜU-J9bA #m7ty4wv*Ǐ̽|%p1:_9< )RgygI :ό׈ãsvUzW@Sȸ!țu߅̺A-ia KC0pV7dYc!tg,@! :%kv%l `9Q,_ȉ3RMR5oT Jj`as`ϳOnauY i N.ؾM ょ7dhֳPf!ZuH!qaV%| ({vy>CǙw)$QVnX B?pyݻvG~<3y`];\kE [)q/KW1#RkO9ƞM y=:w4*~{kh~t6xZsc})"? dߙ$I2#Kj}~&@!W\y*ajڠ5i+0~֩@<Ϳ' GܿLwxW#G*'~/֯k1RZj~\۩&۷|oѺpș!fJVC s>x{FRx tOA1ZLX5i4nPȶMj|-hd7J+$/ghOZBA+ pgenL/2᪷INupg=wޜyj!BM˱My`?3!/! qK5Y C2+q<eA{">fpa>IYf7m9yC"č,;}*1Ƒ#){"=tbA9V \|ø2]լl%&lk/̚uP7_oU,EjYuAiL~qigVɣR!X떎PYJ5fB.^/^ʒE |X_݁ 7SŢ~BUU(ֻ]%r ;v!aFrR"((dyygB(Y`S顲a+#c⸱ Os\r0!䩲vM׎ܠa$_Ҭ;<cD(*k@,%X{˸I?!bVmډGPZ &Cʹu0/ƉCwSv!3CXV8J0&@±Sb6%JɘqZ2j(p.~Afb2+ *TR#^ (-ZQف`usJ03wܗ[d 0u([w|&;.%Ƃȑ,Pxm̹5»vJybHa ( T _@Y VFtϾa7s~]" ?}\sAg6Etçݓ}~לc=ȡwC.&FI],' s&_&@F!o=x^uNCjCE +B<T啹nnIU!ŝ7w$Y4MF1:4wWMS)zT1)~)ХUN8&gϬ?&GyY-.HҖ0rX+>{xQOC4QS#r*^B-^Oji(ea^45GM.r5ұZ5D ^ˠ(31G7gs u~ڬyFި EV9{y89((O(zNmrO"?z_Pjحg S2x|Ut AiisI24S]ó!Z+7lU嗰BcE~5_obGI߶UsU 26x.x{>2GyP/āl?;c|Ej7:96P>Ǝ3Bu͝FYټ>޽D21?дUCQP B$uFAj-',7{J\I0Xtۅ J0akl}׋ʩ} y/43U4) ?yzpVD3oGh+ uWш *VbH|%OLe@^5LژQkB` jԲ9a~th9}/*^Aþ5#|V;pIAId!K36G%T9AM0'LnmkgϾUYG*TQ 鳀|$N.9F75%kO/ ~6kSU_{ VH~+y.gW :$+ZxD  r̔eK }Sr.fzg%L+͛0S%P]όg~2bJ `hHs."ky:;/ndGX3%( xd ] x'D{j5t?|`5=BJKCj02bHwhAh|ohhr݌Y2Ԑp9"l}>]{"`Z޹Ou <3E=c]r삚`N=_ǙsA^Ybidz r) G!oB0"xݐ- Zkٸasπ!j;s\|9yk6ma9C[s8cKkٜ'QNn&%V˛ j*L|Y:E0{"Y/7SoC0C0&4son. Ҫ=\O"Hq*KOl`?RBh,d Ĉy ʥ|!`JVbR)䲃p*.=^:)oyț`&w !)ڷn;goɋG^ۤ빍'ջwRgJLus{;;'}53J;&Lt(:=СBk1)CAQܕ`{_@Z~^Ü# (vmwVk!&$x?JS:8JO9I{*;@b@F@"_t1?@ jGUkL@HI ,aЌ;\ԛ`pC0!S/g5x(6bȠ7BۀLZ^^ n=j( '.9+b]' 錮=2njɧA0! t!߳{3aL`B !椓h)bI*Y$vr(r|& !x~;c| U+Y`L*~0|KeCeruy,>3ͻ=a검7}" HJ%!SiWlT:%ij |Sm1^%-G T=pVu\?7oC"- D)r.#ڬdS;BBZyf*J~w@ ; ?*DoY _jʬ֘5 ␱&H'"3# SX5.b= (D9f$2JSy<'(#.^L׏Wac#/[ qԿp -5ʼnhjѤ4a5?x9khu~('MD+GY 3ͤW:ϟ#V6c[˃N`M}܋R$CP)pIZ=AF0(ԄQIg1΄Uo}{v\C ^oej&\&i(ʅH+Vz5`VZ]S%`Rڮo-XE~(@L ؇(Xȉ+𬳞!Z5T;BoO1c_}})3׈bעI ^`׽IyYCE,S a`>zH5wK[f_ Gk4I_*ƎWQ=5*W3}oV8 nt|9$:o3Kw`P\L) Dep-z)@N1WC^-YJ5Fe%bG[$G% $Rf͚6b& 2R~MSb\C:~LW`bƋ1njF֠S 0ǃaeK %DyoƉ3(wS?>=up!qUz%tEѬFyKd r-deo+T@88ː 9;h`AyGF/YaXJn W;<+xN݁ r89B0#*# ep]DZ&4FU/E &Z'YZǀbEMcXtS|FukDN-EЈS uX^lBekթѿA0Iḃ 0>>ÏtuiZbװA0Vϑ+iGϣ0lЇ `  bHg> &oO2BHZo6Y?&od4^DI[o^$ՐƒêhKo#^QBX!wܒ) 3N$IW92dhȢ7`BlO^vȕ=[̀L+g /!p.l?zEr(p!TrRZMNYC:H8q[]=0(WN3rO m(.D%eDPW:r/WYW,S8Rٕ"r~qv%.[N NH*{0 >ῄ{cO|fQ ^?yu&=C*W.!DY@;v<רrBK6mؤp6Yˆ7$އ5΁j˔T׮+iuH1FF؃S&1&.&I}*dXܨJoH!nچNFFXbAؽ hI3q]4hwװ&_O=Ga%d<>9VxEfB*$8+ ;r_1f#3}<`RR>ǭoN<'/Srx}FXYwym9vYwQ570 $4r״!ÄJ2㍰Т+$y^(4'"oX[k(YМ;wn)$te<Kq&U@=b?%Cp)WK+P9 j#Q ^=@QBQÉ`XQBʪme Z^P=mfo4UR~XH 6Vf<;>#*q wJVÁLBu=@܁{so= 0w~(>lA勗Z@"PV 9I8< lY/$G k_s<rR"BsG6_HO蘵PJ1~$OJ 6{eK06V5QZ%6j!1Q,Af_3iČ5QX}0B0WcKI;@0aKl"H,P,d呄$!%;z.g[*&{RQ5mE6 (e.33v)J8*KN0iNo.qugƓVDMeGqw?1.^a}ʉLgA gK* =EXԹsgU^u0kO9}>m!iܼ>tP:iָ^xϘkU_x{ѐLO%E@s0U!OPf0A6o BsU}P cE&1s0X[WyJ"KU%kWZ 9oƈsKoыk_ +`łGkA.?<~K0{̃4 Myr{ q@%=I [ۑm{6*F''?֭Vᚋa' V؏ 6tE0i jr9rЫPBUHJo"ac,_Qtl~ {cQǔ2KiJĜaL4!SapOoQzzH aS"?gbms8|Ez7E JmdX:O`ѦcO.%D54z7 xB0h_9!KMR (@(hx{e1<"Z G :V:(qc=t.fb昹Z axBZI`B!1)J?#Y٧SuJ Ux[-ef SOヂFUF8¤!}LWxzRyC3{,b*J#M7p z`B1 07sŲox7Y|k)sZEg+kj y:u=gXbT-حY`^\OχщC^bZB>^%&]Wkw@!rCx^" AċX"3K/TJ{Tc Мs8r5BȰs9sϙνА*d2^oȡem2Ɔ 66tE0葲f |f^$~"+ʔ?4 *$/Fr(,/ݕͣId%%arqi90{;;:^ZL*BN0/n;#;_/=*Q5/\ؠB)uxP4jԮ'+U/Ԝ,Wv&mLl۶m$ضm۶msߝs{%}oթ g5^&v cԈedٚMa6ܽsۨYKɒ5ȕU>OGg"uX?¨\޹C X_"wҼu;9|tj11`D6ٷg]i%ir:SH}8I2ɞ1WذQƍ)MuN :/_Cs}2+JIyU.R\6_kWoȐ]4Yr)7W3mذa[`L`\SBF-]+[}?` HH"ɫ7lB<{-Iʦd=?x@ 7Ab4߽z'/=;G'u0l<ӛG̵Gn xP1u4ysI>kF>|(& <4e\pFG 凷o@!eT :<4m~p#.3rJ"]_ l/r7O^us??rH$*s{oʳOb"Y(ukV{y@D$pҹ]+UA%bңKNYs+c|*?W@3-3?٭{2Ef2DIj,33=s59}=z UI]#OwLGcƊmrٿw;:ʚc?xp_piw 7G% YK\&DHUή8&'=~LEHEd!Gk/J! !&ןr$ jW$!r #1w^{. 9ƕA QT#[\CNG70Z8^fy~D>w!mSEUBؐc5 "jf0›3[ɐ׳+˹U' 3ULz?Qb2 _׸Æ>H !cI$b?r ʽ (%SBzU96{Bעk UK2eBl%ea?Xf3Dl蠾rm퇨fS$DP05_'`r1o,w@5>у2}$ٳkA * ,?C8d֯E3e%K)f` q T۷;ɽF  R d q`ҞEfoBƦBj'o=dzޏ/m[e1:wY2{O͕(/0~=YB%Yz6?GYcQoߺ=(Y4kVڵn&V&a?6tO fx$I43ˎ!TE0A$aH2s즒] BD^$  ND VGȋOԻdײsz7JH,OQy[lVls,)ay<5I{3-FkuڜJLrbA%|kwMy Wf% p*cHn. #H$7ɟ،aj>o@0̘ ư[deJ޽}g>W7NӥMRL#&5R-}fM@2x h$`poy/#T?[Ңu;5pCtY4i3t%'e,w`)SqHu ڐJ6_+…AS1wzZ$[N2iתˎ]{*i9mxL wHdԈ?-ڴ7xm5g/\&uURg߁Ҫ6gA.Vĭi˶罻wJ-mDG1: qJp{1븡dȔY##2n* S榯.cH߹}K!gȤs\S4[R0V('O<6D U.`QPFs+ eWeKRacDwR>`HuI`]k8Jm~cpnݼA@ki <2'H{Ivܙӆx u~E!<>=@?꠨T.WR,y&*9dY[:Ɛ[ڗ-VjtP  dn\*ÝRσeKA{$w!f~?~S?]zJ2eEXs3w>3uH*ÕkϾ]Е` fȔE==rqNkiFgO֮PSUA/ٝKPpie0!$Gսa ڵlVɳQ19p3ysA0g>ƕ6)VR"4qh碷sCqQ_p3$d0LҞ۷ojxl fs@r)6lY C0g# 0$*qM$77cCiCBͪLPEՀ0juPO7cTUiȪ9Cae c5v AϿĉ_(ډGVvkGZxϸ"#gnR֒E H25r`%*mۧ ސEJ@& *GJeص#M_YȐ1tCcLHYdqp9*M c]6kXXZ@  KCJo.>,2si96SRgϞbC4o%/_6W޹@0QAq^05$DrzjZyS[+΀`=rJ@0Q iӧNo%Oɓ8`51uRw5F߇" 27UH' !h85j.n[7oR} bʙ7(Xv:~ʤ/H[-,9n =0([<G>.3cҳKu4h ?F{T0aj* ޚ/!ÅdCȝ**!YCě#x`roTa~Uf2}2Q,iwDA[YoVW7VQG[9 6l,"Y2A0 eCI`^`.?` Wd%YNX#AΓʡI;^zMpCV2fmA i3K~*;фRj#*J"iykUrs=<"Kx5ahsUFj`4kV br;>A_f]µȡr=T(j6k5];vӌ}F o* !CҺs(*"F tb:ΌC H⁋*̯ZR`@J#!sg*iÝn-/{,]1Yd^^AvP2Zޫ$I\suIF 4QYY ]jVVwR֣@m?$g8#ʦw8pU9Ծ4S17k*3nt];Qo%FlAJ۶nvwWkdʤq­RhLϲ2BƎn/1(dmD0‡r~j%qœB]aI[2ڻGw}9@(T͗N fGix'r6 .fH?O&DcRWx}'B:VEC@-A0y9l,_f1t} Uz_-gs+-4fݹ;p%[~:G++!|yaÆ >M0] x@ ֍\JbNIkn?IkP߿y'O.{ & k_`{&ut.MB`1s~/!q O 1y'3!-y}emc3iڟYH0gȕ`òXC,D+vjtb(hfY!_o4|ryIV-np> 1j<!nBƆK#.tS^3zŬB-[ ̣ J* (]8VXAj)R6?~ԨtNxZ:^_t1t_~1l UJ H.3*/ `Co`jW~MI2T` ߽SY1oݽɽ;k*lJ]="C.Z݂[(qY;KYH )ip"Hzb0I0 VE5+yq̝*Y5ᕫw8 ˟|E1&nus\ ́1cjL3:^۷{F0]A_`Wj(R = P `җڏ>~tlgȈ1:֨|B]K8>(v-ɡ13Mde6lذ3aLےX-PR/znBC0)r̃HOޒm)fBI4Iљ{މ[n'L(aVC034%RF iX&.9V^yԨpVl$ O?]7ȣ%A"ĐSw;H4 S4u!*% YU7aj,§@0y"b0aja bY>!nm E ȆRg$!"(F;6Q-W,[)r(JH1^{v%|H95W?n|ėBжm$)SьduF} ⚋bCiײ[I1eъM+..L},x`6XRUu CiV:Ie玭ڇ5*@@팹@ $; y8$ީfrop^! ^f䂙[7swTulB0!;u2eQj\]J0̥*"' sbjf|C)\eÄd`^pA K9?l6T3~$.1 19bQIߒk6h^I7gCIE'mpP:}e_Oj6q7Z6lQ Lͬ $)5Xy.U)B<#e=p&6wCww(㑰dJ'UMWORZ$LIi!@~$mY$LpJ~O;xrcaY;P3g| 0 u߿hʳOqevFpAtK!IG.h+_JW18# `lVIK]5eV \1bQ] `ޒUL]QK6XHQbJ] fQCZR9`IVLLn}ڭ$ sjkJ|pQj%OyVM~\ C4 0 PF xM $ bDcqϟs(?`LW$PGvlHDd^?s:,1}82'IB ]zQwjoݢkdy7k&aOM0]SI]ɣh{nMWw_|I#/ߗwK`C&jOIXa%]wU|r&3 WIi}o$5K|'-+*+.O%v^YeJ=.n>AKQͳ gW7_i$VfZ/T4Rp%;u: (ߒx lƒ@G1>[O-SiꬡXaRSg)TCWw:-RJ$o޾6.]+E0!|Ԋ\ BPv 7 gl&IUPx0j{-eiadoߺI)~ 2׶UKd7dͫ>,RȳsvW@ pµ 54$Y4N9O (:-7hY ͈݄tZڹ{/I8ljqMY[!p|K'к˗,TZxjQÕ5++r$0|S7` &LshJZ(C)JDK(7+\I28 ڕ+겉wmкgBi 4Lh%3h3dWSeկ_ҭW_-sXB8pw=l!nI:\zq QC%bJ| 3$sb> iGEIf|[)eQ'[&j:O& *FըǨDa\]E0ި3\ܳHjIz@<YH!,m[juUNݔCj㎈1WVUi=Ed0ҠvuMK\(hVM\ʦcTEoɚ[vS'QՒIa۔I` L ~jRl/ o|pE#%}!b2bZ 6bb&]۵&ʐ\kc#Մ=?zOud'++̏Ǹg(CzgtQЊϵb0_xkr*/jxY)&.nLK6RZc \O(=3u#]4!SV\# \r(L %M\sJXd(d0rp:yj%LJH=Ήwr5LԊ[$uC놘\pNO&*($ي-*]9{sL?黢%Ki,6s$h0sFžfO_B0 Jn}zJo:˗tNS*??I< /j9{2<'>[&}ĸPBl25As "}"UjZĹo> "[jzP<뛾cn_ X+ıkDK۴l,W=8aÆ `"dEuc̽QÙo͢!/I @2я"Թ~֡ =HAF.XHH$Fl@VQ,!q/=Ǘ+ȍ̺D̶H ۆKI(drN<3w }P1ȯ#imT$`@E|.'!P!u^?~>~iء>Ӗ>|˷~`@ba138@a\fJǙS'{Y@[%IėxH1Q_ƍ\Eq<J%:'R0(B DP@&5~ЅSEVRׄ3tb2{11.,PS8$ɒ)b^*ƼyDlhw$F:?0dCoB 1Ha]3:wG'*E!(㧌 KHS |#R g *.ؑCz/'lC!B: yfA<6 sduy>QFUS"Gm[$Lի9 m'=5V1r=f,s]QFcݻw3wsUk $Rȵ+k_jÆ 6l| 6tA (v?wV1^f$kZ5dՊr֭nDP$D0ۯoyruyKRe%Tвh\9}ꄗ/kN4iee;sW"DH;yZNomx kfmXF6?6b%JKdڤ oy$6lذ/M0]Piٺ! 'ϟ?34oTOܹfZl>HР)Rd fk2eX|7]o 4R :'{V|r"j( 6DxQ"!q%Aɥgj~%\o_rya$JDׯJ!<m> A'%[˭[7=,sG3Rm?l߇r,x0%ϟ?UZR{玌9T3F.GT5._"ZҠI3 !1T@HϞ>K/ȓ'=o2jd+tjZ߫T%R#lw!P:m:~\r> O^~%`Ԩ%7O>ʙӧ  OHB g?~`GrQRL/}|}m6tE0)nnJ9a6 lٸA^|M$D]rJ)dE0`bGxA'eRILrl~^q %S_.=%&9pf .ٻʎۆ~_cu 6F.o}'v1sV9|耜9uR}~!Ge-kԮ'˄?FyIӥ m:tcGy=6m)/Yh _ruo}#1oҴE5;k)W/_vr+Kd)e=($j֕gNɰAZ?t AɅsgZkGR!b$Y|ٟ6$ȕG(%G{{sp3j$Y0o̚1?_/֗/2T()U>=xpO֭ݑDq/ hH;!ʎ[&R~#c$u/J<'zt͠a]%+S'ˤȹZ_ذa `"o޾Csssg}7W8; ` ǿylT-Cu3KԢòo{3xԐ)MtC ɭWUtR 5\W̑LСȄeӆuNE2uxYha̝<;g`>|13n?~ΊշOϿys]+g?{vs7u`>co=׸5jR#:~:anνwu6<ֺH皌'q]m_5k\;:c,X=\`{h59ĬSfjKe;Ёt|i}ҵQ|s;/e>Y{z_tӏ\34wG^x6A3{;|ϻW=s:o}i_I/!iݡ?zD[61cyH0}B M&eѼ92x@O?rQFy Kn8yf̘yէ@nN8/_sG0Ϯ8.֝9IЁɕGrvQyy/5.h-K >g_nNu!.J4wYn?āH\ $W 1F%E$:B(;_"yyK޽l`^L>ܱ]֭^.[Np!Z&KBΞ9-/^t'KI`A9V8sjyF> -gNfiW2 Br)Z@Tc9ԱV裘f.0$!90@@9~숬4kgwb5/AݿN?wn@0~\L.f~3},eJ&Lɜ%OOYw=dQʖ$I%Sry|Kt2Ϻt&] |4/,ɺټq!J.;'fO7}8s ab=(<sΤO&|>~X?J$Oo3cs,a*7j{3!{S'ei6ɠ]t9UvСu_PsY`3?njJ`a%̚6Eċ/O=R5ÿel`*a -wsАK2U^8WeV]O1b@9gncמf|~=q1 ff*S&sg{6lM0]S:^8IR6DHՐcrh]~(td1{B>idUz3|z㱼zB y> O?gn)MAR,as\rn 9:}_7u!\aHn>#gWW I& !$'48Tl J 1C_Fka%CJ@!{.kۿLwoP_bЌBT9\B$ cS^Eo 7oߨc7b`[Ju59$'OƉd\jڒ$ir% $,"iCp# :4kFE^|QΚ+`MO1fC+``hCݍQ@`bgkegAcllR_dE_VЗ)Rf-s-\/B_n}I6w5o^ sgc3~56e>eio֫k'u -tƠtFȐ!%S e޹}A0Y Cxf] hzhpzm|%X&߅$`+&dک&Rc\oڜ2{% (ͳϔ`hԢ%JJ婹g˜$e$ׁJ VW%T~:{QdY…j2^z).\PC3/M,} lQ< ,#~%#ctm}=F,ٵsL?֬nWmj*ґCn3fu޵C{lʒ|Ǽ8<ȑ#+=r"w /\~Z|И-z =(֩q_#9s6\8ٻk^;I䪘}lZCφ AY>kאDT^E;W_HQ=>oemE]oǑz&+1jR5z$L1/m[!24%ÊeKd [R!kFقqՈ8v@y˜ ̓KAս}!mݍRb)YS&[F]Y5WNV<FsmтVπ:PV=ٴq!Sb2CIcxY Dώ)-RRQ*eWvӺ{viдSc2!dDضe0}ڧGn i1up 2|ɕ;4lBjUn^> 2 +,dp=ԀȺ0Ozp:+gƨ<'{p(! I%k0dD>~&ĕ[n ;2Byi8qeޒ2m'fi~LΕ7s߇ 1k剒kRQ:o%ӱc U̝=C"c,r7/Y8o=OFmzd1L1i@ߞ_ ׾sw%ƎRɂ~YOу ^BJT}xH'!W Ӗ߇ VR%N*m;tE ,Cy~L5fuȬ[cI\aլ`t !/!B55{.9tO|_##HϮTŃ?+P&Oڱm 4 AXn=Uܿzv6{J$jc:d9a0aE0'Mc#ws bޤy+T-׫Yj`ayo6_MgÆ߰ C0Q', B|\+]SՃrnq &H! -rIU L0h>-UCd?b?Ч@y=aJ JTKg@}-!]qZиVUWR)pьEݍa33CWZ6i࡛wf)CXF!bqLLN#3J"cc+v\UqkDb~2oq_t+'Ϙ5Wo qcFje-}X1ckk׮HVܵ d'Y- BURT(3Ժ]'=]O{ANpvDwҥC+] x3̳C˻ɴpҶc7i޸fey6CJpu&JKpĈ3A Wu59r/YaLK=F}tkdzƈSj;ң ܧzcܖQTf?~ܼyA0٬O i!-Y3S}2yzݛ0Rҭgܸ~za)zf0nC \QݚZ*߱"DB!^ǁ ֱA0!eJ̝J8h(UI^zHM7市.G|ŘoM5&]B0N;^%;O1ӦEcOÛa k9G 6۰ C0I=K%NR.G#[ل~*{.# &ĖCƢ/=ʔ ȐtX2~t.S)mt% *27L /%Jq5tP?YYӣ2+ICpm0gҸ2 b?<(.?W 5s.W!ZY$I(cw>Jϙđvp!afgd> e{@6/JSC X`$',QsNJO5XP>J M;ث1ҳșWM$!)ܽ<$Ts/R@M"Jq۱G3&U*Re[ &z;)IDt_s*Q(֘4SF\sDvkRI2lpuE|KlhOǐ5C_#̻aXXĉ.2M Y4\H*+᡺Y;_Z=*Z7kD;J @H'dfroq̫Aj޸"+mkW/3kvnJlD5>CdE%Kb ڵ+qY3Қƍw۹HgI]~쨑.tJ1YYpgz*`b}A9,2gJ 6l`;"(e3B#q $"MgU$H/LMޫ/FfKC09̙ &zQyl~uuN3O#\Ά2IfpRw琩8qkrԬRA\iͯÜ1qO@**V}{qZEuw=$|)7+\W.+EE:&]'1sب0Q_'[h3V\v7䒹?{TuoF}1LW]"ؐš#^ u8+*n6LsƠzzf+( T 'FGe%#揘C% & tUUE8(>oHCUd)p>C3&qƼCf-RYQ5hb $7ZeXQEKW˶͛SV:Gg]>t@ݣ7kH1xԨRAny,Xz6imذ߃M0]SIŸS"w~I%G_Ï""%Sr\V^?r+%>%E?Kg OICxy ͳ7>"')F#ۧ%Bh.gu (bH< g~ɫNSK̕d\d{jdz޸FRVanPc횕jly NPmu"[Nq&yj]Ac$쟸Cų7t&1`nVӿwwO3g(-658>;߳5%)N@,M+xDXP\%d܇~7ǭs{ qv%cY# A![R4(#  '̥,F-:{= f Z1q ]Cfj54ƜD>; 3lU6пZx+YX|Xy@(Cf^9Ī3.G6xwZ1CR'+j tN3U˗v&txtZ6lذlLhvSJy!$ (PB|8_=x S,eNL#/!f[{+/8ʰ| `B&ƗoK0wɞ#We c"'ŊĭH=G@*RP[1R Osf׸*SA󓴃Cg m:tVC5kdcNi D zPe 9ukT02j&BHA2y\MD1 zoԬTRņ|v_ùrʎDOh=Z#W*KZUE_JZDJLDkww{lPR)gJ}gk?Z6lAM?jAeS<)@ؒEN$wo' [KVTo.L0Q'}S%53U50Xqh1zd=[ CQ? g˶N7_c.={,ܸALaBIq[LyVp07H.-Q(g _ !pA̼X_t{) 7a]xd$WqWj(ngN`H)%J )Wɐ B p'>W0rBs+n < @@Dp @Q.5{FB;w4We؋{Q p b¿bbzUeWBH!9rbL."k˖HqI0R026yjb=pxl#ا0_q5ڕy lnAt-ZY׊==2%Pr{xЅgD01W)`:ڪa8AЏ%9C)7oʅKФ^M[Xȴ;atN8)0iUR'(\8biIHHw! !]=B؀}.#SӤ솆+TJ|L0ş`iU2W3ƣ&Q2о􌎏p](wBdaot}w5zU˗|MXP` r{V㩩r !H30db"qK9r%V(02cɨsxut0 k_ {{6*W]$EI.pۃWdUwiBju" O*w@ч0`a=<oԼQ]u>P=w.w 欎0oHǏeHlR#c)u7+IvnNaEHsi1d~>pݴ~ >-E I2/h~=[$\C01?PQk1Pa kr5 yY&H^T D% 6ݻ7ajںq\pmڲ |Ȃ=DDy\~ {m.e` hŖ`'>`U%C~%0p$ qt3|pLm k X;p_;v|WL"50_~^O\dS̹Lx @*wj84scB"!A"/ &Ӑ(%c.!ԡqӖ\{Šwj4jX*yO,H`L|ᄘU1 (Lµ FL$X5H4z0lAL$ǰ z_ IUtxi%U$@AU܄Mª~T7BjljĮ!)z @iѦgq5^ڀфJQ(^Vdhdȋ7 LA8t'؈!ƥ0!Yn08Ix+1]]qրҠ6_\{0(۪kh-`\+>_ڄ<04?їxF%%@׵! jO<\@Yqo }q@R PYkJH/L{}ig=q{G W-=璅soaqN27Bvh>'*֔xNvF{ws xsj7qq )ba+WK!s b) $J8m9;tz!Ս׌>x.x>B}R]uef R8P@J3べ&(< ~/j+=Q{҇БLSׂjkmZC'Y3'8h@o)q\5EaPs*aχDǰG*d?ډu6c<:T+}1;h7=0PށK/NJBB I0"NE6w$&Po0(@ hf@_"p`ԈDOZr>=:;Uv)ʃ>?0X"b0z0fou `Ȭ޸M0&O{z(ӠؕzuSՆOw`Ma\2 cn`V2xowIM[q? x" ֍kzM`BC\Kt #g25kvI?.bzc{#EDwkDRO$#RO_h]"/cVQ%Xg;mBlwLPJ%$$$I0|VMnIڱ\p/(J.^ǯM &H)!% ]SBO"pF'?˴,!!!!!o$I0%$$$$$$$$$$$$`JHHHHHHHHHHHH$ $HHt..7?WA{vl E5Sfͥ={'ƒ 䶔;Px GצJ޹EO<-H [X`.} `jrԷJagG=$w(,,&EL06hD #ss ʕ;0pSuiE<9&s; {CooJ}b1f#یdbeJI(<3>vM޲0gqݷs=wN\O/H37߳"?__ ({ٙ޿9'%xitǵڴ{XΚ6 e̘J*C{wׯ^&x]$&p(枇RNCIM<:r֩ߐjԪKi5b-Uk)22,|/Vi}Wq@W.7oX[I@.V2g*W:w{h%K.ttU %K6^/лwox#w񏅅6<$!!!!! I0$Dmۼ._H_D۷Ipҽ*R6oXS6=~r>|%CcCJ]ȅ2܄&7:O.k=Ru#ty M6d˞hM9s妡y}Kﵦ(ܭVP3;Eׯ^;Sq,\ ULQ˴t$jZԡ*K@=@{{ϒ9UGYez5*!d`#YIlS*Uaax\ڿgWRS PE6pƁSҒ9 @P_zEG Q z A$}?~gN=%$$$$~$ZPfP5}*>/cyTE!vYȽE!ݷsRaӲ0->@O}뗯C==IE؀s" k xK^%?"(&7ޯ^n ھus͹π!jH"C̻:sC8̒5$ zYtuҊaԥ}Kp'eU6;QDDаP[́/p \Y 'kFAR0E{Us4tN% ycź a ׇ%KN)RТyiۖѮ577ySʔA V=j`d55.[ -F۷meo:u'V=g.jި+9 MHLc v(G2XA0-")EGROrc2LjDfTؐF~P D߾O% M:[z%  򨺯uddjDI|B_#qmrdlfB1\(f9+Yo߾?%##CjҢ5 #/A5# VxIjڲ ٹN;B!Oׯ/|}t),,]R cԌBD;_c4R mN쒆{'竓8wp8P`` Ob(#-۴UhU1^_AcjҼ^ΣOQɨb"PJv {v/XY[SJTdffx{']&ͩaftLY}ŕԟcm)AoLaa7W1|gc5\1@b.X~51IJ>>DEsj7)}hO>d1;5NJa\cWqyb{]pGܱ0>~}DHfcC`4Yx8y\hHh֊_4unxf3KaGz?X z\3f&S3S5* BCC#D;zl#E媚T{q^(!E[bSX_ 7_eo}I7yQX>e"=yP8^eWl܅D&kr6$B| m&QσR{oӍձjidjL9͎|gG0uu`W{S{Ϸu{ )F(1%1LBi eeR=>$ Dʠס8$y_}NO?7Ƌ0MfN"TG& B0q=L9rSʔx={H%.fzTPE˜%+^`|Nا`cJҙg~" W.&âDuG7'X7L43[TpQ*U%OnF3H˗L\᦭ P2k4c$vCz̈!}&MjJ XdA,@¢n I&tM=C~ Jdc%ʨ ;<~B5{*U, ۈ=~:suNlă`^r-QRKla#AK|WB01'zv©y8UX?ނh"O|fՕIG\[7iUB@D^Ĝ)V y|`.*ڡ}xҼF%@̥l@2f̤XWe8u~=щu"]RCBCXWȨXRb^k{`X5jۅN;J{s* 0bs 2dĄ طHiZh1vGpS1?@Mn\SAӊ1Y{x:uA*U`0c}Zh=z@Fb`7p(KC{woG# 9rϟS Ѳ h=VBBBBB'$B| &b s5O)nѵgb_I0 (uA*ڷ "B¹n SA_>GilfLȰ[ r7%7> e/zw[vAaYZdɑ̄>wnoC" D4uTrX L"`f{φ[(mt4b@a$`%CJnk*7M@ GCFa#^\ʆ,bDFHiʥbd̜@*0@ *Jnj鐘W0`-_ S%!ꚉIY}zPG GPmk}㵡xf(K5lPyrSAC٠Ff}Qc)] XPQjؤhݎ wHAy>d' o¤L2A*b>w tGG}2-P1eIP+/5-S.L2|޾%L(_VXFުTQm WAR`b؋3иunޠ ܺYC5jQj>PL@)bb@6o\D @:{|?ϰGW\+$>P Eߗ, G]ڷf9`b yMOSNMs`/rP,Y衃`Lu:cB262aO~Úiiٴy+j (ȬW(;oEPn4OwxbjԤyKV0fe>[M4{tދkHAAAy!!Cy4+0,X$MP0CֵơB5NCaA.{-Q8NPNWHКo@L-L(Ug7"4tm*dv([ay [ }KlPS0ta ZiϤdI@׫̆YY RacN|"Zt!9k&V=gReiU k'M'WW*_0pxh7?M͙9=m {Z1p|b^ CG#zY<6_]=. &Z\BmK9㑟6Q"kM2cr$칱t:k`j!.YIYւ f &N? RwiI&a9)璬0|Iv,QvEܢGkȭI~ޫK^tb^4d*9&a2GB}b (Գ Lώ=O0Z8XER Oa52' i9m4]z;q*ǙU)WM lzkת Ǟ8u&1(%([Gs  &V"~33s ! dԵ;P8^<{-H)3r0~N ]#_~a8¥߼qMMx {wu71k7o}wr+$'󜜢p@a[888q_RReKhG~t`@ )k#1 &J!߀ݢ/Y  })hjujͩcԢq]Ak8C.2B-jX^jԸ9uVg6a;|||h٢y\ݎwj^/f, d@G(HapU^];%A_$0[gZ${9\pD6D5hԔ׉cGjdjJ: (Z(kեv `⠧^*!!{0e'(IcG僑H3M>̟nXp[,dF؅5iN jUKw˂9h;6PUd$~ qU0v%Kvwto̿T 7n|l\6[1Ѻ=SbJHHHHH$Z t-r5OV$r"{C{&+M0U,-rrW&] V*SLOw\c gN}|C1!3D3GZR5"ɏ)bg)6+Of`27XΟB0L<^vb7tXvI+S+[sɊP<]:,20/Co7*Wq=ٕoNDkmK)aٝoȲ `0^~Ηo$PR*$4t֓ X͒!0>IOKXarٲiu) kQTK⷗,T%x:ՕD(1 &2u͔oIo4 񹸶wdldBժע#Pv-hOUY sPƺ ~mV P9PrYEp3Pj.̛͉3ssn;bP()c̔3 mؠ "6$G C(q w\Y+n Y5ԬYdȐvnJ@01@y_{ V>TP !/ƪ!|Ё}c9ZŴ@œln%f|.ҜӢ2=Z.B\&7qӤ|8D]zbK x6 8Ч,~qf8@BBBBBB$B\f v\ꥅ%9&T6 JD@b43m& lgGSD <!| WrrڔMyZ#naeSʓ5)@IųB!E]/Wq[pyCY~߻[g6 9?;$AL-+.VӶMT C$ARK0j׬#q1ضU VB0N&H Ά 7G  t]8vΟ9IID; ‹윚Q<K[S}Pؐ.:ve# $|c(Q@S k  em DȚpՎL :ys<.4;#s0jbϟ=#ƾS+=F|19 &VJ2ebwcuEۻw͟)e7&xE9:9A.̸L+ H"ǂd6iPy-jS*Xb!0i(W $:s? 0.1k>Ԧ]'<7(k%~"i三|UW^JHHHHI0 R(zI8+kZ1W*UK`:wWm:.-]ڷF`C]  fP^4)E(Uդ!#=%T̑ӍM1+@!ҹPmd2vrzZ"ܼUTJlƙ10s ப`Jr6e''g B (H6d\z6<ك[⹠`F\[C07 ePm00լMk-݃׳v9f%0`O'l5UZPCiaӎQGl)J%{ܳ%$$$$$b$ZMpm/ ,˵*/=Ή~"њ/F.p92 Wщ{53_J0LqLIL„{nBPٳNDǢT\#9mp=LJjڀ=ڄ3훨{6N o0001p:qih]@V`*ztpҽ7P֯YCM,ȱf2N ]1\3qYkatTczJ &ԉc#*+ƾ `#߄p@9Z@h@^=߻cLQ}H2^ iCAN<=9kBflmϮ?w >d.$޹]4Ȯ=r~=LhѪ]x*sv)!y.URlC/_>S&rH9kVե(,^`Z`"44Eg%2"1`b?'{T1oZ8w攘K9QPF6;ѰXu֬S `Fb/޹T>HL;J)8 Al'6,P$KLN7]Y|n^tى8l,%G .(%@9!{J ıp rBY'ki`M/{qY\P jLPW/R3+¸9v]pI/QMʵ(CJJ?BYA[6TOAY5ww. Ŋd bxvfDcBè|*x~ueQ.ԅR ROQR1}z Zk޲-%>q!pE9(LhԪ.^LYj,bgC 5.H>nݼd{"Q~*'f& z AZ@ΩSQ5xށǗ` ϜU=9>u=Т,b;  ȒL%%GP9F1Ξ=E fk]YdSJC 6*Юh%[Udš9x/AT \x_E0 "qC;316C %po@7kIEr)J! 3&$bo K1t ~cAQ1p^x!W쁈Q]BɃܧ\g8&\5_{E&OهS  * &dlCf> y)I͢ULv ݰP&jj|1O).P 6$G6dW݆ۘUX]E(੊!)RJ\}HWLJ0K%@:`;{$T2civ dMVU¨:L-]DSg! eJZEA0[  ~_A@,G]X7A`lӼ?0؅]]AijmYt% v 6L| ͂,C1›&mZװ G캉u]Ly~FӟYd)*R$L}j3 %EȎ 7¤;=v8?85 T#T@B\a"E#LCF k dRP@9JL$h:c.h >3 p5k߂)0]\2p fD622cd0"H3|"jvٗ]3R|*7㦰J9,PA bYaE/E_r]O=G.݄LUW{Έȕ۝cq=D9zqvCmgOpeBEZڿP#s/j3.#SP EV-IiGqrlDlS Sl\_L|1dތ w.=ݲqOL[W{k#((ҷ<9tc #Jdl39!} $+EV΂fL }v\+NNEHpTvl 223w7_uF,={yq ynS0 RElAqppz5% \Hkթ1 V0,Af`x|IpFrpL)( y9r(^ > gR)LȃRAALٰD=E}{D+` 䨰h/J숥%jqE*.R˱A}V_3xݰf%ݹR+V*ۊ!ϙgPN}&0)RRF kDD8>n^F̯mڋyp=2z ]J5(PHq,H'iϮ7?0#9]zͺ4r5B =N֗]{6;5]-PsJ .RYsNO'A9TBU9B&=:ڬ68_4{TH:j*s,|@ajO*!H# yL7ځPbXkS`Lgj{{}/Êy37ޯX?~0p+XDēc]\WKev 'ֺ. mH>ss8Yǣ0NCN݆L4+3hdjL&&mYoML),0j`$r٧{gUr+KVEc2gcML(@'ǏjBM 'b>QVat7el*T8 דcuekY٠pAB_-4$k2ƤbRC]aK$gI6F:.pV\( B"HGǺ7K$L`PfPV:+*XN탫 c %ˌ I0PB%Nd Mb0tqECzȬS_ T'qOiG"A`B9Q \ut*kRiߞ]mˆI5ajfFvx2JPg:~ >Ud9wmڰlXM%OL$/}u߄OAi;睄.H= , p‹8m7@rCPܪbT9$曒eilbǠ"KϪi,P0ĤbIHHHHHHH*H)!@C\j<~_DBBBBBBBBBI0%$HS(a9 `JHHHHHHHHHHHH$ $HH)!!!!!!!!!!!!(S ("߆Fϐu &+R$ϐ]eG 'Pou1Q1<"a$KHH`ffk#!!K eAʖ [h>} Hf\ber˝(z]x~?_|Kr硽v'䔒nGW.]Or6ߑ_з @A㑟߿KOI4:5nւ""#ie$/$Z\?gȠ,'YxS.Ӓ`ǁySj Vωٿ=߭g__ݝ(?m ussU1c$Y3I0Ldtez 报 xyB̲+RyԌJ.C\3uL0S".3^_%gFM/ROOAo?GOwւI.fb:Bw+ h͙ "Bb>)NeC%W%)0uζc2NmCaB7)tnŊSukxzUօ{ b֒ҦKOIMMm^O000lٳӂe=|BzZӤ1P: Tbivoи 'O{wчj<46lLҹаA}^t~,LϽ\36ΩRs*z-|_S&ĩҤMG ЫW/hҸK1!Cf-)cѾx{/Q[iO-v7$ѧO}D܂f5Y H/R$X>Ҧk֍ѮIŽjKYftZ0w3Gdb1p+k֢Ӿ=CL-(/K+\l0fŃMB {jV˝I_5Tq~T9'<}Ow6_$g7e=Ź' psMbGEЈe@11lzk+SOA]Jg,ro䃿1t"Y2VuJ7HޅIԍW<&DnFdg@ӧN>nש0:А̩&*\G,cш!FM%J*0ʞ#U.[OF$IyOC-(۷{'}񏴥jZTr5:ymۼ1al7l܌Iο+t^4)0rt ",҃=hgmڦu{*UP`@1!{IǎFi S"2sniӠ~= \A ef#C#CjZF#8sMZ$_9sQ{oZCfL~Ȟ#'թ׈ -ƊxHp0M8=:[A0[nKY}'7INRÚȗU{51ƠEwxTБc}([K_pm&߁$ZPfP5}*>/|;[6O0LdԘRdv$GTЇvYmtoQTEuOw!]LѦ(oD!gu l;Z:Y5ӇWˏMnM Л/@-1t "4iF]jaą`fʜZϮb,YQێ]8.k?6ɓkg}^7oؔZ@S'07ׁ֮ۀ93۟;!;(S'>@ϡkW1)hҼoܔ·Ąahh@ox'=q&5MУvԳ iEtЁ?$ȝǃcy:y˟ꣽcC(8HȘJ)K 5c01ajjJEѶMNs(ϏpDQ@yyװ1e˞Uẻb%JѸQ0F&(b ZFjy8o ~Q/:(ē8dQx蠟[ЦkkjZ4|8V=Q'mѪ-{,ؑCg$ K0,)wjroJ=A0AF!&3#r(g|L%KgKR bjfB#璘 {C %,Bd(੯ZcsVݒWdaoE6R0 |O|p5Lj$+;3ZJNmI鞆lمWL߾~c!=;A\J( 8X;9M>;9٤%k#V ?, ),M52*e2դ_]z}  FpU%"3/$E&Je쑖umk/$ID:0{۝P( MSTPdd=~ \-NL'ggjߩ}ڸv~p}>)ESRes2\V/1%dpz#H--BlEhC‹ WnwJZ#s39^חl K"6Wu 2yhݪjŒyՀ m[6f7Am*RCO<`2g422^z'QfNaT-W -!Akݹu^<@iC  #ɍ-,Yr"g N1y+q{wߚ@4ǔ)EokLNFDD{,T% -,TO 7H̛ti xy=%/"/2 Cl@u˜h%)S9 ԑcp31>wqcg͖ݜ/I8^zQ0//]P߻x%h}91So>_8o6V]9;¨̜9+]PR:,U55j=k&҅z3Ö(U:v!ރipcVYgw1gW`(ӘsL6ARv<mN PY;t{&&s/m-Ub[ غyyE cK.K9l ݾyCeUs-[<.! K0ahσFbLM&7UsRVEb$LL43i#ȍ Oo?01~|7̏)?Y:ZU|Ka-JLxDtA.O/{ ңڔ@r]Jev@Fsѻ[ z iHz;D_kl?[01 \%'&VLr ừѵ-XϔX&1vy sG1O$ 0O|Sfذŋ!vslT/s KA{U嫗/Ҟ]z*RrҤMxkaQđ|}ߓ h[woNaU*Am-Z0DQx_x ϻ]O5mA`:eX&U0z/qh}D4d:o7M?Fuq%yHҩkOW ]: ?Mӡ?MgO5Ly  1D/ix-2v'f73oAh@fЎ*j #77E~qI?g ġ@ia\ V'aR{Ls @%23A3ψJb~׈{S_㮲h/9kLhn޸Ƥ!]qq(_`mXT kɅ BºzR>vn=ھU^|̱5k >7M;Rg 2sTRUھu3'Qq̅3.?Hsȡt zpRQ0Kd6x_*޷ׯ^QB^JU IDAMĞ&ZҳgOh iF2+A]q&e]a~wv98;ޡuh}SJs <3 b Tv=*XXuuallDt~g18|8ўObjn#}~zR& 9b / Pb*cnQԬS}a\$pp50۶L*We2 G^rqq $HRNM&H&P2> #J[!q[7oSҁ7+akO !ڶP+DpJ*\35|vr鞧O?k֖s`cn=|c-A='KA߾-/9sg$ưLԲM;GeȘ+G o]+VaTt^kU1`Pi\Pq!XXPPAzχy?w4&ڮ8<`pn'ȱ& *GV cF :N9C{8hā]/,>3A9 Epiї& {odf9Ie6k|q  D8sA  (8\K xϘ4m&A"U1U{b"qhzRڽoNSD1֍k8 - 7C=:W3b˦ubbN*ǘ/aзgg6{Xe*AdZR<! p(l^A}{T2q!pT:{]]41Çp)O_#}ww]!v): 25S]yPL9v baYp.ܿ{x c5*Ub=\z6[ 6 6?w217yXus 8hP7x^}Š^Ϟ2LY\d<-P0 1 &M:SPLQGc8A_\cC2xL6EbB0 kj>e>`۳ j'+Px|l颍uƜC.AAc|jҼ%ػ6~ $B\&Tw# aCMC  9P̰_ĝ[S\71B ,l-Cv}H7{sX LnR(".ӭILiM_lV؝.%>;UAܼ`R`mV#YR;td2,P@/;OA\XX]to>m@@m.K{#wULĊM-j'$Wo<. AI~ L_EL1hӬ'QN& 2nް6~L:-'A^ p -.\& 8 en0 rUXZ6n_a`wmټ͚qu,Xy pzĚN8 91C=rEK$ P|٦}'x,M7Jm@a,7l%ēzu fp<U%^d^lAٽuS{tu؅VJ\Tsݚl(+ġǎo 'p=b0AE^$pܵc+Y%}? &YӧJ(5^D!v N(%/P |FZ|T\fWϝ0E!*Vf\.xWgp!0LkԦE#v{(0Bϛ=1N,R҆=CE-QU1ƮXQTԘPUp*3X/!e!Eyta1V&ą`p}q{@N6q)IUQHICg'𵚉q3Sٶ;sJ+{&~D;%2u^K'p뭿?&!0.&D(g\| +];HVm:P*W w@ r` AطMxLYdaܡ(`"> iƫ?jVԶ9H?fT& Q1L>Mb_`)_Z "00qv0nĕ`"A/R , \6䩃 <;pMR`؆*5EB[% O(!EbP4`n`w\)n{P o"O!(7lga|];td47N䱣bPhQzh"&bx5hB-ڴcx8)R3 ;k %"Z۰isv^p ~}}Yd!nyA杜x"Vɮ`l\]aYѰh1֡U&.?ee+TiEKuEVQAx3õ ļXf: bMA'OxB&^Kn?%,PLwnpg7ڞ/q%*]$@Wr$P}kϺ7aLuHh+$Z{s73:{d e$"TJR ({ns=;T}|?~}^q?̱d$3]3(ad8[6$Sk&%Tq_9qI4lw*}j2Ꜧ/.ھ5K"sYC0i;qD.iLDC ۇI0{zSp%v7>z;)F(Qר2L\2@0<W٤y+uSe}쪺$?;}1L%'sf&HbKî>LCu~! %^´cuuIi}WKy=Ѝl^fM0ODXp&{/!{{N-dZf~8.K0Q_M̞1].u`/ʌD2;}Ƴf̏#Br@Lmf-5Q% C0x$Pŏ3&IW8$'LNTw< & AH}CniK*$d?0zfv_YM,ߛs%3_U>%>dRYʢ"ijMSw-I5f^ﶋl몬>,I)2񌨥s8/.!|ɣBIvĻRu&Ka եX̴i5~q\A'+!#k ptk2}2>_q$ 5!GǢ};.{bGG~;<{ߋ`GɎGKR 9L0,Jtw}i 3PIl"-5f~p?䄸/~cal&*էC'2X N@ٙNOIբIHS9 ך{ԉu-sq21}#ep8pW]LtMg 3"BtճaLo}51]WT!]2>y' s5evzx or+i|2$XLںdFY|{OC| /Ԟ5Wۯ5z5{IBH^EV_sv-f_?/]`L9L$o3>fW&bq-; 7xIJKuOh<><G\kY3_H/pq$=Kxvܸٵ%n-?gN|F|L2QUGKnl$%E <ȩmTe$m CҗֲQLZh5m,(]{P=EBoELMGzTyӫRxjQYr9a* *hN ɹ({P7YPSul:eJbK0!R((3'dZ BNl%#9(.\Ug8fxB dSrdWC܌Ac_wX #(Ԡ$)V2JߡgHeq!(*{{fm(Blr(nƕz@txPT62nNM"3(8~l ksH'@ 0Qq1}U2+ 5UC̎[d7/ygj8Pk֮)D`RՀwĐٸq]*S$$pnFTSHIcOa`@vK { n08-߻g&ըU|YZG>}CZuYD0ߓ2e+k!nm.RDڴ렆wÇiBW{ A!1C](j"(|o/dHy\qIĽrI%isi9ɜ5 (g<&?~?BKP4M,  c@zy B mfeZ5yJk%;|߃̓h 2<&Cf.wj$VJ`a̘SuǶ;^zK:n(5zw2f cC09| *q?ݴȒ;C]&!{y$I|ْ}|Oj5{tXs@-?W=J({ɯ\w7}AyWwQw\-,%np&FWfdgf Fjx4* FɆۯ'Z:&=8URU҂eD*s)† ↋%'z rQLJzP,4YUnT . aN#\S7jfXbT 1Ϭf i/X/8I 9])LP -dEI_Pl)9B" 6+&?{eQȻ*uAmNY\͘hKyt3JM{o\l%hGކE ,ƔGwGuR>ŴʉD "ߣ@&՝miF*zgSK|MGB09=>j,haƴ?"Y^%s֬,Q0L=*~eʗ{.ڴL];` wC !8FYT[c5P@p@ծ[_# 4)8;Jq l`)C}c c}eƙχ~nan&d eڜ-{v9|GBB4F nq'1 yHZb!FX\&g>8-GU6u!cbA\(zigNCI4⛡tf\PȤz3Tk2ǨGn{AjH(BP+lF:].J4+F)H hDz_i ؎al&(VT"Ŝ C - o+r5T>&c+!?4^3D_rUO#QJY;NMLQOIܦ[ƞBB<"BE0CCnC" o/_D1 reC /:"sŜvY:8`R!YgX3?jfr@&g& X'2z7qf IFDE0kb>"a PI\Orثd?8 9#?m!=-D4n=3e8Gfeתk؝~|-vHјL3(~Jg`I?ZrnjMw,,,%np_"?=xzlAz9x!"J0P2WnLrI1WO_1g*y K;PInkJ8D d*]>vA4=?J3!ZEo!76wHْ$$r?>' ,%*as@!Kr94nvf*UU3NF] ȞZI@/:k?(7\3YO͈5_<B2h\QurjeGB+.ˁE ՠs׋ĎqA3q@uCP0! &3 Դ}r|X̮` W(P 2LBWȉ, xK| KT拯1l0 PP.1!ohǘ\(}ݾ#m;ʞFX4F ;q͛a69ŏ+d@nN0\HU"A󤆴ɉ=rN<`ڄxc|1*'*/(w^{̬d;;w<|O}O 3+DJRݵTwALHIT%3}S?c,&փtύ)DTz-6m"%Dk 8u~DwϵGˀDW5وQPq563G!^/w(QkQN:!-@I\Y[!׮F<$pt]&.t_2:G0C2DfK0PtY):xeu1WZ : HFN0]ʔXXt[TWK0-{<ciawbpsOHch@H?nǏgapKXf˦I4y=WLx sTXoLHfE5>kxhaqO!aa%K0-,,,,,,,,,,,,`ZXXXXXXXXXXXX ,tC)%}ƌYح0ٶe+( *xzxF|vI-N9 7P,OZ{R=׮E_C)0*uټixh3ث(2~Q9{̣nNZu#E)=E A L7-VBo(iҦ,WΜ>D"O5n&˔ӢΟ+̔'N4M &WN]S &O/I@nʭ{wJ# 3ikg.{S%iӦӢ3gȼqeu월52gt9\ב488|?fY+{mի>x.>؂{$JX];jBp,G#Qח{>/eڇǔWaНZ}4#|&A'G ۽)8U}t3ΐWeW E`}ٿ|+w^ɞ#̘>5! gI޷?$2eNȮ;6YRҷҷk2eү&!BW Cnsb;@Ayz-ɛ!>`W_6nh<l2aO2r?V[!Fh/5Wy~ܴy+W#k$˺5嗱c#$p.0%ə+z/|ٹc{+ ͙;O9VfϜ=Eʔ&RfH&43P.]_+j[ Xr9A[XXXXXyr|6h̚g?c/y/ƈ+L_,H=]L2Y09L}l}#UR2[jYt=ck;I`2ߤ_$W\9}&˩so-;o)1!MڴҲsҰQSiٸ)"N] $>ЁQ>Cc|c$cMB(Y$Η_ Ç>1̓7 ]xQԵS{CF:~ ~߻2i/rYI,TQK*TqRʀ)ZٽK6\[E:q&Ț5ѳ,_uſ`B0}IRCR&R 3Krg &mu%QIJMrpUlBܞSzF=Aa f@hٺ!L[1@BBv-<(UF B֮]-/w/QeéUIiԤ,7?I0KrK!>uJ?ie|ţΛO}޹CF|=Tv~_w!#sfϔ.`-9sϿF}f6C$_{奻&de_Pap`Yzs8Ú_ǝ֐9rHn=%]`:yfՊǬÇ #`!yJN۴h"/p ` bK0eJ!Y#rΩ |!&Ln~IPR$)I$ٽ a}IK&dc%KGɭGԖc"% W"oI**^=P9[w(y eI؍2I~4ܺ&^~ޒX$ H$B%IdW-uMX2,]n#=IKY$irba9tn\J0}TJJcxgϘn{.7 r+j|Py7.'g}{EH"E U ^vU˗us˖tB͌9KVu"n&)b ."ʔhBYtlڸAnܸ;9*^W+y$Id_/}F>mjj9=mc6o^2}(ktcil[%1LmpWB~Yb˺GTr:u4.7nj^wlս.6R %Yv|٠ YO//S?qh=nX.RT9 3WA /v.6aC>)S87_~Yb.̸VXEch H4SlO=r׳d&eU\޶kRVYlBfO];ÀT2|hU?tfw̿n%}KpҦ ƄG~34rt_H||{˗ʪz(f}n6kjY߉`%ge6Zf~ek׭/3GY{ͺwm3*?*˗:O60} ɿM4zD4qWҶ0f.^O5?C~0NG\PPIdMgےH V*\Zoޔ+*905P^|In3'y]"`~`~[1t#Wny%gz`hH1f$kPgs+ɟL 5X̀iu3H옲Q}ψHcȳec$ gW2* APkrUɍKI%S+;$[d^<|N.gn$C5 ޞWB=!3klĐ֤zI@RK>%Wc_02(ؼ!ƕ'^8tV3EC,CeErx~%?W4(蚃a`9Ftc_33o2aZI$T}4iRJZmyV4C5jpY#ʅKs%CojǨծC'z;1 yfp)ÇD21>[nc rnGҥo2l3&#uS ?!J Huwcwmiu C0&;KU4IЕ+Ux_d2cc gDo*L;S@i];k>2Fp17K:C~p}Pq?w$&~XM2we ̫ t1W~%1~_W~[ux9{NܶC03"kr2b֊x4V`au&Q=1#e֌dw?QxyywvJ/c5IÿB8 4 i!!g0s2c~^iGŤK/;\tQ?I$f~ }G5$[Op۸aޫP"_Wq^Tx67$7cB2L_s(GRBEn7O LW%qO'D~-J~?8X )#,(tMkVE6kZ&^!엮 άyWA߻oq %hZB >y1`標Oۊѱu8mRZ%7,GQP/mb}C*?VM^UN!"(x<2/>h7&-7)̕;+QLL2˯5ri(oٶ/H/KMT T} ֣#Z~&8x N0x!'[kW ɉX_QO>fy U@]>+=[6i;ʙzؗJc55&oޘPB其\{CȖ5{}Z_ɤ_k"i%W((Rك/E]sqXl"%lZuib6m O\ƚs]C09#OTU&[;svUߗkI}&3/FrPR٫G7[:`~&n) N#Ier{)5%kQQ̌2wCͻR* ꎩdЅ~[P֦T٣4Hi$Mr웷\{K""s*)ܺ{wKH!*fȹ{""M B`륮(_(KrUY r2@Jp%!jS!@ϵ ֮w t'g ]#H D{!?$ׯ?5˻@7޴I+a|9rDXTp1/CP^+soǶmd~p'^OGR}m(y!X]QG'wV^l\k.nߎʾ d|8(y6Z\f 'M}(87n(EŔ1nި~ }^E =p~K7)Up(T>R̿׮Y%ߛu¸Iơٗhcϣ~˖DҎڸisoM6xlaaaaq`~fJ9%o"e^ C sz3$2i('guť5KZdxL 3*!v3"\xJB/+]Ti{!.w/kL9.W,~t=6[hz)a=X>M0%%>^   D`B.HyxJ(Q׬$lFz81BζŖ`0d],M4Q wtbYiNQX)UjCTkH\ycڐd'#(@|<~7ߒ>/S͚x!`2מk4A2ci1߸$C(qS5}АNjեici$ |UY; 7y`J`ܾU&ŗif-u<9HXIf!E}{>ϴi+3;? [ES6m\',|C0I L#ZJ.V4sq?J 3׮^-DX):}FVp6`Lӧ*(nǸq:FufMzuǟ0k̞tcu Ez Vo_ :{ `~fPlĩbQTkgqr~%6QLAd9$m^j~A2 |\[!PR Զcwvuu"pF5aK ?DDtYdQPPpb\=L9Uc~qlmaկU-zb!i(#'BpoD@ ۻgCoQ<תFw?z J@}/&$NN.c?M`>?~MBu!u>-/ᮻlHqaf}ҡKJDHF2+d2w.'G.[rS~߈S\L̟#obTIF t .BU/>!:ӐQ0u\p'_jSߦЏ{[BQ*Wy\c9dL 57o\_wMT 16c! =fHR;FVcG];xdH|Çi&էٵKzttɢ4mFM ĽzkZMC\ pgjI?ۢ>Ivo.ղB FIPdczTy6u K0p?R+-TyU[$sw.xW *-9瓋GϩS=\;3L41ھ%nW&I~`BufIf)W˖_YIjy"LʏsI)ʀ!xl溼 vE&'1P=eM!o{,d{噚5P fQ%$$9zę`>F6n&4c&' u25n8.)z5#@#) EE/6$q  tt7< H2Ƅʏ=.:wǏ˫/}\m4x*`B>`U:<:mŨ}m;YjUGWuԧo?o ؎!@A9Ɉ `utEth l>_L5guMrMYމ\މ|Q?6-7^jcB䃏?x&B]WZZ"Z7ߒ{vyf-\zw,xl&:uki l2 f}CWݬABm@ +'=B\HQ#ӧ$.z9W<X\J~5RΝ ?X͑3;qƯgAI*1|w굤JrؑH ]N]\lK a bK0K$i`29[}|&$I7PSWIۅ x^1+6d5:Qb2 E"ĘcZOKRIg^8#ߜnGf--rr82wv3k[6g0!I| !<`q `S@UD(\2MWą`B(@GTU+E/]e 1 P֐eH$!sꕪ$PYՐ4:ɒ%L0Nk/{6Ƙ9ra#\)Ҋ;ѣ,.˗.VBquXe䵫ה8?^>sDL3p jRc SMɌ?۱blb{2ҭ &2z7Vj@կ]MItȀ;#VZطWK8*\y3yyosGDmׯ~RL9'7h;)[LO//3)U]a?ʹbC0f+(B#czFvT )8mRdEѧ@TeJp(|/qAGz'S}3ŊRz\w ZaL 1d=4?>^\&J8٩{6ou`o>mxmGRz̯vȌ K.T[a,Lg=:.P>!͔pՐH(w` y#|2,%jd>J(yKiXHc &ӅQ5!B|LW2HA)ե.4㒩t%df+/MJt )G"6u(},!;&o0q"HWP˞{O\m79e /e9xv` Ѧ-VIą`BIѶJƜ c4IJQS̙\O[цl8OYj*Fl 410oQG"Le̙5#•LǐQ)RQ=JX IT\cS;ȶ-5s'nBbcWMI>\,9sF|#`ݡƥ[H|q"$7j`ݓ ?`\(!00.~b>*SV0X*.]6*qV,](ϪT]' d94{:-cvd͖Csy/_a$׾uQ"B1kwSʢp A}Cg9@ 'O;]z:GY$bf ~۷nlƇH,?O#$5 &JD'NHEu>m?ƸX)ڶ^pc["jҷ܇MflK<%}uĊ2Gx1;jF; K0DR9sP]7ޒ'<UFwCڄU2QD!7_@Ƶz!GَDDS?:ua1$2]LgXĹeitzI޼޳[DRR5N|Cȿq=4ctn(iTB((B??h.{{n捔Fb,&xkʛ3睟!̃*8I*E}}@?QW@`Jo{ W/.O$HY{^I8k٣C;K0):(pÈ6˧L+pۀ .vc ]̿($k)Y*(1!slbh(3~Z<8P?79ԩs93U]jK0-,~ S6ʍK!qo2[rj1~1L7d*M 5/)I',jL|_qoI*9;OgmlKG:kaw"Sl:o:p]{Pdaaaaaaa%n\9{&s{O˕$MYbvj fjy$]%iJcF2a\<|.MP3eHd%W^ˉGfHhڛ&od(Y. ;n8v$L Y ȑ&!ʁ%{ґ729X5k#Sڳ\QM}n):q> L'JDN*nh뺔RKprJX˼ϥxmotTr`!O//]-7 ĉ㑮r+K"$Co{eŲc6 y3^OʙV2rvL(_zJ-)nޒJ9X`B$A=h[ryun~X|J„ $C̲! <}LO`3䆪;$׺z'5JVc2)4f$H(TQ 5.s3$KQB&%̎a 9C{+8)ڦŸuRvYNo?~usH'V6Y)WOMg+|IV[`u"ښ)(X|F*TzLӧ7Wn\.ǎムGېˎJ%88Ϳ.?/7mI%,쿽8X.)Һ]?w9v+尠T*rR~?pFzeaaaaaGX`]ƁŻcO3/]F9c޳ϨF Cra 3I:]1 ˕rFɟI/gve58Q;[H4i٫4y뿓KZ3Η]C59) PC{erߨPi#fJ0nWO_Qq#o"Re)CDOEΞJ.)J5r,4[Nn9oll[ym{kVѣGt+QR._(Ç~)?A<<T?/+^"%sŜmrmtTnEC0(5?m,]y}XZiaaaaa;X̤fNx;a,:ψ/ ,ڦȚ-efXƒY@-ωd$yzJTI%Q@bTg.!+krԥTQʸ$gab~ިe~:og t3$܍ϕ`;;ı{~hR' Oiqʹ[7# <rI57"9[ݫw$I/>z @!^(I'o-')X2yD0H&5c9krUe/YRy)gT+5d\wr&3)ϯvHq-mxS@ő`2gHx<$NcډH& 0sxB\w h?'˔Ҍ!$!T0j\`g{s%Ĭ t~\:z^bHUeޜwʮۥ`"Ҷ}G)R,Z0W:Nd}qe&tf*QҼUkt钌9B~S2$͐BBB+pMc~Ѽ#}2q3sgx\K3Y:.nD7׾K+=*k["Q0ϛv2۬!0 R `~xxxk?4h(SUmxy5W.DM`$ڕWi*u%c'[Gا*FFW@tt%(4yB/ةn$#1L/M}l!9PA ~\*s!KtدFrѾNeڃaE% wW:CsJ.}w{^Sl,'JGjbk;L\}Ro}J[+d׿!27L/+' I rCM2җ屜r|{6UG ' 3s)RA_DG/O9mc״|tEpR[U5ڣ%f%B2*i fP"|;d߼/|jgDx sSn #1;7o~NmͪצRypIlmԖLH`+(;o1K֪u TʂMKmzQ3h>γ`NlVB(?}2a0sf!7AM3?>({lWB[(qbzoə+4j̝5S]*3HVJe5ҤAI('%}3̐oczHN]%W2qc>.y*bU/܆XӬs b/X*ƹ:d0Wpyĵ0,eNK<0}5+[;\>M=!mzƋ$NTl]T)h{Su=xZ}p[CI=nQ:ެϔ*Y^Y(Cׅu%n\ƚg:}ؾIR w=+GɌ/ 侄1![3F9l*/d֣䥖r=PҷUnH-QgqJC0C_3by!%Tc|sU]m[V J'F.E%EԲuL7`BFPI^=}!(CHYUui*$q$훷S1W/آhV\ FCO*-3`U߫ ?S?d.eSb ^2 f5ŔY?ҁLVEI%>웷] fL򛾆Mem(6@= o 4+$X5N /TT&mQ#ZU)ɃR()C} .1Oo]"%+UT,OY< 1Gp쒡D3x b/ʘ ܙ/:'`wY?jh R3/I<==R7?YrU6|~}iظ{ضU).k'!!!z3 %{}RԹ)^bUY?Wwղg6%2d3Ħ2IzxG@v$/\٦CH*{Ҷ< /đީeڦyC 6/)WSbLnN'/JϚ;PI_Nc23!Lώu\PPtf)uMDs?xOnZ9nЫ>ƛ!]$VJx`,/0ӼoKgIU'CV ]$ÒI@ e PUBJɤ ZNv:jLc=N[Vb[ȾKB*@6-$-7^CIx# ϩG{oh{?B_I^{8<>0:uWv :YC.=9 ~޴'9`Pk@7dUW3+щ8nESsY^UHzh?v3|e5lϭw|e(.oslM~ϱ'h-[իc۴icsZ]l+/ۣ|?Q䀩U.v񺱤G ^u#J7t+l)Piˀ]Klhh͕ي.l~F[($OU%m$*W[w{ePpkCMJFq,ytW+;M1 uc~I?3^ɊP%gN&̲de^ Ufˌ>T_[|]GxKnT9ky^LeUeƶdՔYuUe&R.~:E=[su/!>}֧n #uY)O޼PWJUW¹ZhSxCEզT QpJ<.]d=Qiŕ N[<;u 魽ʨW6Ǜ'uIrG{^oecF~SB_-jF3=֧*ثVU]ӆb Ƌw=[8gMj^MUZsđD[eoƿ|w +`F۔ztQo<=jGv&׶l_>s1}<}^few]CvG%L.O\:Vuap|UӵsNw7I5_ù=OC1un)FT {v>LUƴӀ,LKtNM+\U4`ub雖3|-7ݶo|5o^x6}q:hjhTm(?j9ayPWk*k2M _"]6Xm_ji5 :NMLamV0ՍQU!u೾ly >zGSEic-$/ WzPt:W0'ӈũi!@U+ѺV0)=B#^Lz[ pw~JT mѴUD̯[ R fپMy;ૹA4灩0om1۾}=7yMq#-Z;h_>aO +fUT^\_c~U5RHj)5V@55݇ҭG;0%7NZ!Dj ]]C-I/|_[5ƗhniV7 f3lxʛ:\LU4`^3n;\v^m[e^33W3?ώ9uv+`j{]IiO' L5]UO@4wyeKw&TiYH k{SFju5`ڡ= +Y٧jޤ%<+`j; zT= k4v MCB͐Y]eU 3t@M\Y>Kl--'3Q#jb[B@:)\ɊU5!GST)TnٱUx;܏kr;[޸HU&?e5=&кKt~ӃW~ao>gסuWSnUSuUGu"4`uU$`::F63[%ogջ}-oQ&=͞9=sàӽИŋĊ-KmƁTp ZM/uUzOܔ* RsK7%TԔt5q?tGY} lSdI_Eu>W}h:>WtcZJV4ZoM3@4]tC Z7\,U4`v!{e]x2/Q{s[6;vAL\c! ڛR{/?9 xf >uS{iɁ|CQIk:ת?MckTs=MUQ[ 0=F 5vZIlQKz>7~:Mj0'6\,i.zm0{W}RXh0^O0T=U6@Fϱ,C.GO߶ *}otiآ!y&z6JɏvG}UoT5Q)zbucizTxRp>^*2dYs=n8o~*xi]!*j*Cߣ&;NօUFU Tc(u|֔TKz:PUFH-*kU~DLi 3:ckkT__dt*`i*mvrK!4:t'oC]vkWӗywo9yP~lǎ_:ܭwXΝsKӦڡCeQaj#M}UYWշ"\9cU9ZxQ?/t/:GU7tNM T7:-tsR?'R}Qz=[‡^lO]¹55I8.kDI L!oZ#؟D:6T MkںiV11.a`U)PgQ3}\ pĝiq |"jסoAr..6H4tQeC䵎QeUU) =N.S{X[(ՅRX9z%z GA{ui0SO3|&\hظh8}});fi*- ^3kR WW͈yu)qq8%`&mS\hU.Y*Ѻ'CLnR[jn󎾝F 849[:R0sHm5ipAp!#`bAĂ  & L@,X0 `bAĂ  & L@,X0 `bAĂ  & L@,X0 `bAĂ :`T00zhСˣ7;nj-`3]v6}t{뭷zX@=Ϸ48qbl01bDEff͟?JJJzX@=0a5n }۷_ޖ-[b֪U+;vs=w~8e1ׯgΟ? rM7U4hf͚ev1EVXXh֭;?+lƍt85g3f8qž}X3a-??ǽ,ە%ڞdӦMdɒ7`ʰa*̦Mf sO.رc6y`(&LPۭ[… )о}{^oNQQ]G1R^xm޼>PM6k޼ܹ̙S/Y^Tz]ҫ+Ѿ6l5jԦNZo9Xrrr*z^va;j`wz}pڵmذ>|V^LO[hFiFF]v٬Y=D*XTRRaLlRSSSNզMzyykK%oS 8F:fH%[4iS]Ul۶{QFS~nݺuVXXf"!U?5k\@2={l 6wN:iiiB=ׯ.~&`.lL@,X0 `bAĂ  & L@,X0 `bAĂ b֛y7IENDB`sherlock-0.15.0/docs/images/sherlock-logo.png000066400000000000000000002142471464273343400211060ustar00rootroot00000000000000PNG  IHDR t% cHRMz&u0`:pQ<bKGDC pHYs``kBtIME %RIDATxg`UٖB {GW`A숽`/(+RE:"H;$3!~yp~,33ssbX,bX,bX,bX,bX,bX,bX,bX,bXJ*X,M~6_n$(uj8ίr$|35PMI( ?TeA=G>@4k'!` pA dph}!瀃QqYAܤ~%"T6`8Vh{'ae3ٴX,2[IbW10 BG \yy uY~Sx32wz*c\]D46~;w#l\VLsmb>!LEq`g+ ܏|κe&&2vNb*d)t/UujUsg z_ .RO=!,&M<̡3Ե zzh)'k܆ 0/b*YjR~|-ANi0?q\gGYŦ%iYzdUAʆJSCZǝ|=v?9c8 vQ'yh؀dLbLJ[-TL/3ÿJ.ZRp_0' N'@* ?x<.?OڣZ*IK=~("YD8 =?A 'EkP0SMQwH뀆\ 1 ~)x( (ɒ,r";5~1jzeݥgM-D}mزm{AkUՒAT:1#8pdVnSBap .p֬O?#$F<0g?J󉫯i̧TYXے4X,W+TeHp+X9K2F붎ћܞt|jК}-r3FQS<"U$G,NU;̾8)/ :B ?P*880sMyHmU"q@iIo/~eO>E9 '$AEOl`5h۴%c`;o;Y'w>-4}TUSUaG8Q | ~{w(S|O F88F&s dt9KU4{3mѸհX,Wh)]3ЎfpgfmV\31ԣ8EJ[ É[ȅBiQG dY+k! np%o׃@Lv^0 } OUEU"L2 -*<UܙdrNzYsۧ8^؛L{N5OMΒ )"@5y{*G5.~˓5 p|'5c s }0kr%˟t}AMpNζwigS=YUa#'(scopj"X4J0\$@ `V6ۙ]x"| t~0eҪO#2YJ\g!dyr#Q1:Z{n vmЖk @~B'Ծ GlrR\$6̟A6w̧̦~K-xc4%},-mc1SRMxilߏZs^-]M'[{=FzN )^8'@,1Dc)f~ < 7|C` HSij,>'9rRNq4mAp8u cПԮԤ9}8 P85юB'HLO RzD*;}Oק9gMl̑`{вE E ̀R[TS<匞? .A)yh6 V3FztFEرaPZKԐJx//Owx> m65DIxI⮙i @ʳ<zlH|}+Иj4OK}h ;.`9od2}Ҕ&>NݬeAgߒj[p,~{AiwXd3]Unhʓ<.6$\9OQy$NUQ^OM\wGCR0 qMƠpN~)I@+\7 x{U~zYLT U4re*^h{4%@,YAߥ/*H4Vf-P㽆$j0 +3`\NV7^? \V Lf@FH)5AЮg%YKL"5sɗz 7(a\%,W|x򙚅Hy-UTG5J#8]m\ݏ~O86BԝE!$~psAI >&_IVKZQB)H'd,!H A nTG4ݥNSй." `[]jBU,QdX:~k3xʺ?۳΅Yw޽{wI`eQݷpnH5-Vt t5z*HUNBڱ\MNMq=ֳ? ǘ$¥pKh-9v~e'pZǻr+؟dӅ(\0 p9C4{YGV=gZ#ّDb_"_;}E`7ӥRJGP}u /ʳ@(W;@^%RX*SrG =<$Hԥ6}s SAq6Zu,9g8;Wg_ҵ.vcOn4@9ڲ >62@}يEdu\!YmqX+t9bGVM U*L$%dw)G<5Eu zw1t{H9)+Cԧ&Vo B#PmY*z>Ԅ<=w^29,D @ ;)MVRKb4{p nzܬi`,s,X,+py CRUy/PIDoަqbH$yT:1[ertwW1hug.+REO[,6vv^Q3tMq !9'v^ b`&6w{-ruɁ.؆cI_OkM'XVp{໰C 9^_R[ix8ԥU vc{twK2+~a`ӷ\917GO@X/BZr/YdS ʣ%TVHۧ~2ynFL~vZ~/-õXdVUk[~2OKCJ0~RUeUocT"bRt3|F O_|*~U Yz <3>KUѩJ%*wJEڕ{Qmj}).l6n fTQK;oDBJp-+ ?С9:vQ z)gheJTj(_N.5heg<#R.7 &H gIopbUGU*Bjw5ͭV;.< N(cyՇz4[DX=iӷ mtW%} 2w]5;Ey¼yeUizꁋ5Hskք!?ѿ؟hDQَU[8]X|{;r?7.= A dYi S[_\.ڰ: ?o>jfӨ45ZUWgNB6czvt_ ]ʑF X,Wi[]C-518w8[8APOg xkϬy+e5?6O_Kgi2/ϽxJ0-BܧQS}zS6u\53DQRhx; }]OMQiR\ 45AIy Z'xnz RCHŇ\VT! >?ۼ|B]](tsl\%}_Z U\U Xڧ+i#OPohL8MBߙ; R q PZԂۦrmI 8`8 q9ǁqo¦*dU \īwFmTcUuVUڢ;㢵 fe0;dzTg2S#$Go ^@#@ Q[L˵K"(4yk{{z9(8I2p U$?\ ўet?9"wO[K [mVp٬뿚)4@m9iiD o8a`ef<ɣs}!PsddH>.*R4i6Y+D | U kxF9uԡQ1x Q[_(WڍOx2}taФ>HҰֹVIg -K]6jOЎR4 D^܇S qqpQGa\aRE<ó{xx] }BiIjRFuoCzRɯDڣy d\n/@l[Koun! G6fhFY LIb)P hKkn8-b?Rjt]6 UT밟ouosK,էUBzL1aht25ã$^4kU-S :(8 RVH= XbJ(,L옽jz«m;  ;nr)Me~%ɲ`e5&8,/Mmї vbwXyT5~&h:W}U6oF f[; L%XtPT%'P ;ըA5|8$ G;דCJxXc7K,3@kj*-q7QToo@gX.:Ԧoݮ`v i,I]SBeғjz^¾n4[nƱ\]/XՃ3d$Si^U;m.L6[;wnt k+h@]jCP~ 3h ԢE b4Yi^"{ n{ CTY,J)GցgJ|+H(ɠズy;s5_nR^ Xc,W8+E/]L)\`K>2U|bHci HKD!{aKyߋo"@v]>D >\?ԗ$Y.CrH{<;x':GC fR!P_@pZpS0]PVb))$4>]ޓف@OԠRј*%ҟl.jU=VvaM^8lʪҔbԦ5bp lތ&/iG9>QP5=נܮ?` +ȴ+̺z خΨӏP h t/ syάFYPKmXā;|9vW?AtP-IV=RJB3Z!i=:R`}/3u!w/ep8/_wZ?'s8qZ-+T){?$scåu _-W+ehzvȏj0Qiۃ1b K_RZTkhfOpO${_D[~EN5T7To?0^W5VG:qކK{qr:AYn2S&ik'‹iC@}i2CO&[BK |1-[lٲOjcOLK|RL UL2(0bl0Q# H)[,X͢Ff4yc?v{X>U]ŪJ $B\ 1j@yWvK$?g;nc8`vʩذLG~KзX^C=gLj2wTfnG &ԒW\ euoϏu\t5T9Ono] pY,Ws<( \6+gml `78`bbU@ &H&I WJΐ;,2d|+p]GΨ-[tnDUG|+TT&"~ $hs= ZwgI= jXLeM+oXMsƾGAuRӦKkX.6=oז=";A_= ֱ@n|S B\!$6=WO@}<S,M9P)(&(Cc19!%l4qTfS:-l_WF0q7g_l+iT0P[O} j*o_au)\+t~PT-1az'}Zޅw:qɔX-kX_!nVvlGJY[Kzi:Uʇ8INO_ pGH6&pBg&,]w䪯E^a3jmw"+IP@  NOo<]{ZVpxR)u@&]x߳+ρ8≠ j ŴXM}yAs䔜&7j>s@Nhom[}<_ۇ;mA_qV L/8 dP?MAPu1@@}Uy-?+d<7eW_ p3"®w)8Ú[30͙Y^l]_F{>uUҥX.p"*QtcK,$9\ SdsK%ȇ?p0/9)PaEN~6LO[w[][(_I{3 ڍZPUI"8Q~{!* l iuhYll~I^fnnvO|#|7̱`[hܺCqVW\fc+KfK^#z'/7eyjJ9(]6\C ېĐTu@H{I6S?y[8@j^tOm]A=j&9jp2KO-ٿA9 gAqNzO}+־Ѧ>EGIWl6V~z% ڳ] ` p(08K@y{Ʀ6l8hAKڃlfy`i6HSy>JOTT|o;K}YϗZ>ʃZטk>cwHLQ4)BZ,%U2L  2I9?m k`5F9ΫL﷠Mnb}'؆#K:bU# R$9a"ɥºŃb!UwՕ703M#g;f?`k{Vl!ֶc`m;o .S]4+A| ~8A{#ޅu<ђ>9_Vpu^u@R[I*Y;uwwZIR5-W<;v@YʑNa f77G}!tkKyT*jS8͵?G aN$`\g@1+j :[c ֠?jtAA>:Y\$ ȣ0Pj&(쀎H`;{B`$ ~&W`>d0Mz?}"^ͦ(ChUBR^ y׃MNYh?b&s5W+:ڨІk* /`~ L L 6BPKi'NBT]l1h |Uogz;_Nu^U\Rԥ[d\w5xx|E?y(a DI,PRR0@Hs98 5: ˏ(C!3l}GC9;h,X\yL0PAU q붯8Oߝ\"'wnq= k+'N|8 3~_7asyvڅ*uP<+oTUv5jzDZ(`+1YrQ2)r8 [iz*Ai2٢mhs]ZMPCP6j}@{EMT;@i6T=U^ WN5PZe*p5Q@H"$]!Gr,`!HKi'@I-9rD.ålc 1xXrzcH9;8X%ٽՠC5ԓwyT]@iJTҥ\t!$"UR[Y0^ 63o% Lfix(O5 i2(42W`8g4~nR[[/VM 9k-@6)yȒ<5ޠjp*h𸼾`\lU;8wmd>{+dWٻS@% *(\K#jT&A(VXq8_46A%W1p j< WàЏ@/nUwhH/*G%Pe)K'= "|~A&ebYj`5+d 0 2F^;1}q}qva*i_ugJC;ynmR$AI?Pyn^T@S_}y/h[?~6)P@iҎ.S?Лr5[=o1 ࢂzOkAqlꋄ>r7lN)郶5Sdo'q />e@2̠(Z-4*P #L0uSo=6<RCđoyK>g0-R luȐ:o$t>PiDg񅽴v$-O]I$~ky:ʃZ5^ͦ?*7@B!g.(n@fpqs;ዧtjձ?>q{<[oz Lv ~aUt" 'j429Io+Es5w+~Tñ'P ;@R5 80ͥ|vlS߰f㽮q%d}<6S h CІW++D>оI`{uǞϧyR!bb;1Yf+^S '(ܿ 7[H{i fu;5eyG> 3W8@Hu:TBPXPGJꩱyJť6o>KmT-V45A)^>-׊2]$21CA<|/@M5]ΨJʄһă!Nhg7T{YzO[cl,Ʋ%}1-5iZ㠆3UthuvvPW V+Y5 TuWm4 >Nsq1KY(S@UTT 0"(%D`6GB渶ؒk =].hbV &aI0tY(+9}6(PаG-~Vcrܵ7=S{--_z) W&hh ~]?p~`6v򄌳Rl2[_'gC뿪j?'8Јc< #doZ+qZPΪvPf;RG eS Ԣ,S@ݫγ>SIȾ[lٲeKI_fHiFq?=lZy{Irt)-%.( r\*cjp=m}U\a~i6!d#  J*b; P;G*BGsbcB*e򹬗[A.2 .9:blW3!eZWJ(Q3(U߂?Um${7lv'di` -1]#ٌ;`Ki-!K ~1xP(c5WAWSTМ,"A]S vڔ 4hа!X_KVZ\G"ތH^E5<&{<4SYts:^yjԑ >7 *|NK#g{tN~HJslk$x_AS;]AW Ir\{o~v]:XA*QqE# #'$yakt'"t~Uk zs9ֳE&G\kSt$)4ׁ8$ ! V2?]d&oR\KʤS |%BRpD3=P֤!=+|c~*y`F7y@֘!r< $ ?i;LZwsJ{Aכer0D%>2kgR/7`@%?hixg)o3kx~u* T* Ao WWA(8*E(8SP7fx<#+PRI2pt*.  U_ ЦW )=X B@͕o{ 6|ipqιI9OZ=ycK!nhf[]X.9l| ,W'+TUpj܉{3|򉌦0*BZckSBTA]Y#x`P[C."P U(M2 @qK؁ ,a-DCཽ`e,W+DTcڡwK0{'wIe8 -p4:UP&8*#x*'? μ٣y`$ v <LK>D5USj4Tَ\'pHVhHYm%x|g;=J8,jZ  /ZHBwSJ oB)ۡԪ$'YX!| -0$yEKuE(vR#dL?<isƣ5k{n`Er^kN:3PB ADsV}ٿ i{lKXH}fO`8$&sy03nM˩EVH4PTq_~`Zpjy @m`_@zKCs+`PT*UN /,`qe^CO:@G/$)>GbN>B(??BvbpA6s1nL ZVI= &,HW\v 0~SA ;98CdM>jgX+\b=oA!/|$ͯ̓MY n~ ҅JLja@ [ Ol4˘Áp*BӀ CdМR ¡="P!). J y l#tKl `t(i[ǀA|&f) yRy8R*E*oNp }Pix8ql)fJP?md\3Je xOo0k枱I^;"PUVq)R%fKs{r}o?ӗR 2ԳTQ @,h=<(_`UWM$"8e":6.!e t5Ҙd1 >/3h\lwBQIP?e kaE/XH/i.O+k7\ٗ*EI_̫`"pR d'y+g .m<5N~^eejA[M0,k.`H#I\ p+7!xLqR vK6ȏksoq{9Ggx@5VMUG hA@rIB@_5! M~̕ж[X5HoAHI,+G\6s{3ĸ m@~3IA{3P/h5VT]U;,8vJ kBa;Y9e-Xwc(N^n: J/xIb3k %=w=/G9|l_:rҩDm^Bʀ1(zAx.c-P UGU |ƲPp, ĉa(hzSe8ypq&|Gp4_,D1\/ fY f~4iza $M4 aʄe͂3 5!CZ;ςy&U_BE:pê 7`,#yCn=kvƭbe.&k s̡)wiBrȱO-\8``nz+g"$HuAN.y'+o6\(?CژaNǫH?;p|_\G$[&C.>H,Yvu a.Nm6(.7sy$/,[ &)RXak?AsQBC]mhZ_pw'92@Z3.EmOPpsįˬ0oBh2_Z҅X YK鉦'TɻlҼ|~TKMAmQQ@.9\(Rˆ )~o ^;9T**tlEƫ@X_H esD<fE=-@M5fg@1"a}|zpf)C,`/:° 9#k:$VʈmjJZ=m^ƀ\abCa)9笱]M7_#!]ZFmZ, Klcٍe7>Գ:)9k2<ưN7Jt iL{/y?׶hŠƪBʃ<HGіDh<$ЦaZ qBG~=Gi^m/,IR !aGgAZu~W|_B@).bUPMp&{-G!K9907ޛkw-W+pUdp[y~7}1: s%]Ȇ^6%``4U"zMr)v΅G1̈́.b2.-W맾R0wSב] C`A#dF9+O~ՓT?ǡ~d1߆6bUPӛAZRAf2@t^!Jv.`KE/j`~g,eLg*("u%Nn蝱S&m+ 6V w ?ۂ?+Ba&/.luejy |)<8m#5t-oVp+Ym1~+KE/SJQ^ ב9 ]f/H"*`XF $wh#h6T9xY5Nm.޸[&3N}>KײLnJi&9s(,n5)=@a2Ywٌ•  b]iNPTP.: Pu/x'?+r uj x)ގ35`Ċ ǟr437Xlj$n=e)2gw jF2C0QM)]۬l4>%#B%}Q-׺kyE:3| n\ȼ[~Q׫Tm6!c1$xQN "9Sҥ 7=H !F/@Ϳ<1"Ƀ`5=r\;Лk K]q] wL|If@@{a01rj#dE_ g%DރR C@VIy[{l>wy_Aԭp~:a+;<&K8|$zB;}@}5pw4/:m_剄fZH!@g}@J<<t IcLxFS0Ԯi]g mpdYznj}m,d^C@}Bi3ܞρ54[^/,P"@ *I(8hC>k<`11\E(41'$W`J`vSBV &ZyUB;Sm Akj5%Y d߳6<%<=H~ mGF?H.}5Q7#]:n*|)XwG >5ۡ5'ǝ@|}g'}@{FIF@p}>^m.z L`# 73 +v215T=U[}JmNhsg Aݯ"@V/;]EH"i)ɒs|>W gZhQ7c3nxt}k/˥e5EX$Z a~i fohz#Q#0OJD#,Εt 5E  N.oktFE`%0}8/& ([ +z"`2MaF/ -7@iz򲌖\nJo ISވ )pkο9w_#z5X\E& '6` nW7 ']@[jɜ,qtpgwQÖ,O XTO{ fUmf\~f hz]`,7d(:nI=*s 3:&d|&@kUgTLb&KՆz+j$ǹ6vR$CYd;6.`ϹIH ; _*ƛ`$h(;)q^@)6z(x;{ʼny\dv44\|"#g4KeApQ IF C`-nѧY]* 8AKnb Su̲L31`8ϰX"?NXR"i6^Qo U52=%^'HZCz>FsSX:+ڊp.ڬJBTgu=O=A #p @W2k}|y!r|tҗ#%} [FyEchL3?ie&Gu_[=잵R'psCݓ3xaM'H @!hmT`Ԗ~WvH+d4TW)$+;}Kl:į9H&!٬$LӾ7^ <,x;|+wriXHjWmv7yHd[tD;1 M >UQs -R *3P٨$TIiKܿzŷآOdr:f?k\]2ZyU i{/h3oCr@ԪP] C'\@RGw , @R>'U?i.ȝfިOE 8pݡ@O@ nb:pVzԦ h9C:hoV忟?OӋ"pZP,xy[?9OZV'Cٷ8҂|! 6|=(MbhHsIB^s=O5n*')IΒOQW 0$j3e2٫Y Rza\_kRRlmTѩ9]Wl+_3Yow}V6V2XsMy_Bג:S3"x3PO\9?70ޘ zJ&$'pCd|g-:8o*=RcXR@ Rt98p~b/4(m?D@k=\q…?XZtsTW8BLM2S=낏8~r?-#9>zE'FSۖz/&4ԪY56YL]~/0Έ3- \SҤ:f 0RkCM;}is?m~b r[~'A|@b< $Y\e&]B3ӮCÜ̒:pq2_xJmRgxC0>\r$*.P7Tq|%d.]F74 %ė0n{s ͍XDdxI_GZJ\+$ -Ui6RuDqZwz^9]NK(W^,Z;|3f4̦ėtk $[#؟S g΅ > x1|KF I<"*~uyZfR[zKvOo i=sg0M#2ćd#^ߣ/Ȫ19ៀLd|/QkKfнZmP2F|w43y"&.|Z'n<6B6i̊j]V׾Cҵ.k bQQ:›-,dc)#wpd0jCn{2m/Q ?qnf>]{`Y@a<}4SyGCBf}Q{ȭF@Iբkv Hoy~^66Fc#+X$_}DX[B@1n|A0 u =7G̘** KZ  %]ŢԘ竩tV#̘[ ȸq3fV/;zkPɧs38W8j %pfiank:k8OWoF&Ȧ0{5X@bCK&́MASƳ@(N4~kK?i+c t@$.{VV;#Wd4n8.xlLl`P5CUs wS+x@K^ POSϪ70V~'l7ݹf\E9PHHIj M}s;f~/Ǻ[9 箠%b+Ub6Jmjl rMsPY@6ti D MZI<!%w8N{lSK8E`}.yz#u$' Qx$c/&g#$e6hld*-mZ2Jptmc D yY5/kXzz-!jG4הlq\ac,| 6# Xmy^;9f:-r4*jy,9/c@ ./LOD*wd)AcJ*x]!k '|px_m1@E,@"+,E[^uJ椴#ow;Y {dGv`7_c6<xz.BjE3h׵پ=9^ @SNC~%c_ 9,h|'BGPS+ N깎P@U>yZQU{|Qs<1{X4y 0sǁ\%_9B*RG>l>VhF wKGG PZ&rI@g{ge5͍QhRY7#"xgpBe.\ea.&ʕҵZ&k4(" V'Ȧ}zc^_BHK0xa*A6gk54+Idm+ &ږ Ȇ|3cYRf ,S.I f-B &$%o!j fC2{p\!yEPy΃^ ґ ?i u"uїTE}V'bqDOuC5F_@X3Cl|xe3@fs_y\2jr,3&P2>DI1DΈz,]L oLnI&0P~!תg_Ana-ҏm 6%>X+Q YQa1AěB@拎y|[͜W#3RUEY:0lSZEwd~ #Ϧ@7p\p}!EVM)qg|}@me|yJn'P`L7^1rGj>'j@|+RD'ȓ_96wĿOk^ Y KّՓrAucЫD]@M>o8ܓ4 xWhw Ҕi@6T$QrReE _QK|uCl@ޒ׹ճ1EA#AT3j-ˈs-jhjx~MV'h֬Uس; ӯ-+nly;|HOTQTjKWc>ަ^Y\q?^}&T7Ad@6A:>4 {t*R_<"r _ ޶i`*fڡ~y}sZ@9U F#PyR]Y >9WH$Μ`0Ò1KbgG2*.)Q L) <%~?yH|r~KrvΙNƨz&UYm8i i-3 lM6,Gf^.gϯ1P(D(`'>яW >m~|?D>^Qsr3^Ev@ʞX^p"⇐5fscKWw"A}ϸybW}~`ea-k9o,d0\$G0V@a:||k=ux6uxyG`_3 d_xf76x"eo"WTJ'>"K\1/$lz3ڼ}vNDz3r+'A~?d>IQYmcZQ򋁙&-/h>+ ! r`z]Ʌ׌W!O9a]w7c I^0yTC h L y ߤwJKq\mpp-i"6 ""ID9;@ʯd %77#3grAV__^]Jn Ƴ(I4 mڂ6E[;P(F >B{ǒ<@9*Q; |7ƞZgc@/ ʈȎ[`mn($#68..r Ƶ̴?栾I.P%}}1 H'>/s'.~wF=er"H /~<+ Fu=$FQ^hDDy1: E_e >Zc` i}g[!h@J(mYzdT|!OHQX$ -XQDC~ 1MU%zwhM7@y j"p&"@#PN -1Xԝyy%l4 z9;n4`1/S ,I 'DZ!iQ~,UwCVƁl&Koϣ"c$/pxW{~j[@kiAjD.h >.*J|)Z?}"r,i2Bt $muWHc(oz^7Ү<7sϲ!EuL0@6! *0`$ju|m7;|ZI zgx9D!QD*D$`!M嗨 D@l5(9*F z|P3YEKmG%II=L= 5?N˃DG#)-U.w:;;&V  ;Kd7`a;AO^ݭ@SJ),Hpr|Ÿ뢲8We0%zʉ.ݚd9Ǐydg H-otJa2 ])O[@qE@ [}M}n$vRIG@A@0!K7=b%p^dKF[:h'OuJz7-F6}Hp;@W؀ܬ0Mb$H}`&GA`3s~ABe YP i* /E:&kE G/l!&oM>2^ʳ 7 @/st;;xs{j/V;ZFD"*xi# 7]{9D^Q P"53t ȓrbjE(d\V`jDSqJQχX<@{_ Ɔ D]0TLh 7b6q *9RA~-糙ǿ뢟 &G6w/(gJ$7Q$^W H|H4T@b]:TxBWc3kB5VDoYLm*S!jχcDj ee2ɫ|"F(~o[[8F" ˚2,9YAh#r B '0c7u$F{ $rtV;0V# 6 ʝ\Yh}9J~Y@Dž𳸪Ne)Kyzeuթ'ʷz{L 5 g)y(4TJV"]y3`ickfJZrH8gk=S2Ta=rvEK$GG>dbt9YqJ+IVGfk嘕_VJb2-4^R-s05du4A;1"A,ekdE^fDCP|0x+["XS^e_~M5ҎRm^u ʼn3K{@Kg.8xX -i:Ҁ(+iNvZ[sy=n)T~Mlظ4!d-p]f*P\Ȯ HƎ_y4TROHȆ;EiUYRn}]a)>QUF{9 DE}#SGC*yhr4 n.jtʩm#zq:vX L ֲld#GI^bjOoػ>)GSQ_G&kj#%T} 8_ZܴӾR3og~wN_kiaWNۦq{97XLJjF]1OA١AYgdTV[hUX\yVaOW~ i);AUڈs &e mELjH* >DO-?X@ْU+^o6^c̅_cDRDqsi㾵iuF]beOםvyݗAw:[iUSrkQ,>j+FJă8(f X  a0KK1}$쁳Jvz "xѕ&Q[ѝ(}ٮmwQN=ݼQ]4f>F%W2Up?A^L8hg&C7_f+ B?H*FQGK>hA$(ti*scCEpHX -]v#IB_?a?߾AQX@^zќ2w<Ľld/wD"N~ccM^m-޸ii d3r؃WN D m1 VP.(xS6Wny~z3=l4z-U\\ϑ'DD2( lT2Lh?O ~ B&`3N/&2,;bhb^BBaV,X5>;Jv $x4B 3Ν*™0HN6aBK 2e||`!x$ pA<t[El `I W d|[F?i SOZVt( !@0DI&_˾,1PA:~lJangv=AƉWFbb-"p[= 1؄>u_o/Xf1$~y1H?zEU yf ,1@3"9 zoAZ#·~ 7a|4OFwÝkrxJ)`0@4  37ÓюX,іZ|!6 9M4vWV (Ճ )|`^uDNv<(^g1-/3Ÿ'ͺ,\i!JYѩWJ7(ٯ)$Jr&_s\sz*$#M'LIo$|%wH ZTL{)}*8;]GCF*eAgZE(D~  :P V30$U2S QeQ;\>";?>rsPU1HKykWUA}&G\2.DdqRl܍ =/C| RtډE)E5pZ]=@MۤNeeBѢ.Pi pqF4N[,7 ϾFs iݶ%%S[y yzsy̞e|zU0YH1[\H<(3T*jG *z_ݚ_7 mxzA >3(=J0]7kszKC^t˜h^C1BtE  >fYԋt kpI`H>6 MOCCxBl|̊*ԦxF[{>_((9ϓDPjL+)Aq량)Wm\u#~0LՑ32 LJ Āk-_~7!GL&J!"I+w#^ RRe)M ЋȴQf{hiI jTJWi eɶge匜rHĭAPFM뙌3ًY=F?O ~h=WaT\}<4yΙK(]KB#;Q oH]ƣۿWpGxfzNzZE)H>2J>|lA,Ƣu4C9dpBTBҩ)^ԑ2g4cP@6 PA%Ռs]9Õ}]:\+F n9 ! A: 390D`yF`&d_3 #>~tIEUL-ħl 5 Fѝ_E(i-Ҿ=ȯRN8a &qˠ蟀'{#<_x GmIBEyP b`T% AR򭇻dYWiZb,@4{~πyun-쓍l|CNyA;7Ч#lY}Q<ƨXAk@  Lkyȣ5.C\}֕{>/ۻ[CR)vt{QO=rMDqHH;p욧 A@B@o7`ΐ1/2.px\8@$uE p$gyl1D$F_`c*K@>jC}εW:ګz;ykAe4Igc~ڭɐ`J;$DŵbZoŅRP3+ǎڱ; ?O?ž-rЂgʭ$uHD~A,|i,0P\]Cf(KFIߧy+fթFE& >/B{Rۤ~'=7{nt8YxTp p  R]!Vևk[`á` 8@}5Ӗ ʰO~&.4k$w"Z_6ϿE>rvw}8) bR;qF)=|!"B뙯 A_rhotׂԟ&"Rܫts7u܊xIӲCroeubQv=Q>F?iжI[C+y1̝ٔ3H]ҾjYNQIrqor\\4)mQeC D}j D{yArה !efjWԾAF (| ,6B j8O[;LJ.׀7 =b#Y 9>~%G -O \HIb"@x[?$t!Ʒu -Ca Ġcxcl15L\55jF ioG ": =퀆,j)v+6+:9j2z`ڡR2w'#GkC^t`) ڋwg"j}X3T_͠ӷ)E1ߙ X4@9\\]Hz5ٚ239H2Fw!u$dPxIľl{;/M1w@AT{I&[)?qlgA.P~.ʳIءN9u3R pZž 11LݕZXif˾H4I5C,Foޝz4g]VW+e!-rk;~ Hۊ5ݩd2eeǤ'+4e)Yg2mjQDM*ehs QgכCڱ!OJpZ.!D?3A.B/\-(] 'vy LFclܘK@)\--6XR+'c4_ 6ʺBzk KtDў\Z;; x5Q2Pl(L|SDZː~=Wadq DuEGax4˃w|<_LEuѵ_qsy[js*:j_EnvzǢrY3<$)Sw1JW&;@̂>gd@q<|YЧˣ/a؜'VKwQHO"$K~+(t`2R<@SP( :%!Ҷ OxR6 rZ iM?{3A~z]kf`mr $`.&ɍ#CTnŨt!;Id16y+is48h*^R ݦ3cЀ':A{ճ=szZR{#AOZG=/)o7""¶ZYڶN-RޔэS| 'O-G11G#m<( wTAgkByZ p E]ژ zz3K<6%8y p'PDxnw'{9_fyD_Ju񂰀-op?'Ok%pc봫 A'wb+Ͼ&r|4pvEXXYrTol^-jr,YD5Zpl@fߔYBlVCuۑ 阚Mv`|[V* - K0q_y C& /4 +_IXtɺ ǂ2ƽˠXtO5ACGĻo tuמ 8 #_ZG7)b%}>As]qxso m݌ ҂%!1][GtZ *KDQP7'J@0?v 9;l=o▹͌/ɩb؛LPacP`,scmeE5#*D5F]p}z~6$wK G rP"MW/$3׍/ήAVsJ j]k |!gB^|{R Pp$_zh3sx˸֙Y $wEQL71]΃s#*`=c/7oA Ub>Q~[/l$. (B[R P hsKpvut +ęQȬj?hҞQde>-e(>tY}Rh8+{ˑLj‰ ϓ9i uS`eF_ dG*u $P|;Vbtۻve "E MRE' *5Z8(=_o8< G<@E"0qp&aboʆx>Ca6ŭ SyeMMr "rS~tI/2jfSzU]|E 0:׉mQ=ڨP)oX dH]n1H5%/JO̎D2 7y1g.5Ѳ*뎃ejr-nk%TЃ\En$4;;e<)J\Xu" jD/VO /|qJ8xF>@GOxAy3O$L$aVV\&"Ɋs:nV45" ?4WAqtAI/9f 妽i{0ۗ+wNn@~j7vo; [z8Wi4Մt?]͎zwDy]#Ge`xfytb@Aԥ4@w0~BK:^@Ԧ&}eS/r7{A=^PfBȏ!:B=CO p#&r L9bR:XBӭw3~Q7Aoq_S]@)ioc Qr"}xSJ /G{"LUM=F6  Uq s iXVb!~ݳP \:ۅM"'XqT@4Pר@DX\47^v%}ݻ=Ϸ1ۜ]2$Lb5 CykrMo2.'x@yĿǎ; qIf$@[iA~ VPN;M.̞T6֟ .:veb9BFN=hG9`(UCOI_aOFu\wTs^Np@05TNX| G|uPNβ.ZgQ=rώ4acкS-SM2\{p"!'䈘=DVnԋ5D~t%m,_fmn]<xO-֛RQc+?˚Қ (D {dOA-㲦쎇xGL1vwR'pKM9xiȋJY(d78K˧Z=W= |H{̫@=xY"s5dDQy%ִi 5A kϓ7\0w_`!>j `' ,EN v@JqաQgEKYPR|/4\Xb/8(9_$hLL͇۷Tq[ F|=kL5ThQf‰]S7)poQC`.sx2|#?Cj:PCua"Qޞno Ff>?` eS*MA~.S0҇M(>hr(a M5&viC OZBh߆mς,Z"x'{[ amږĖ/2^UFSrx!BqE7Z@(MLY U~CiݨU(s%֢KX0' "l@i7gpX^D]t=g+: bEdo1\ԗ!~P++_/ߓ:Ƴy~}HjKS}a^P$PS0aL\Afnٖx6!zUaP*u9ʽJ]˥[~>5JkIBSe k_1Srr:0m~ò: w>=eFb8&$p=.rY=Z?YNR<#jR ]}L K>jbxO!K]~~ 0LKEm`^!@BAHwT QBL*RuO5^ eS]?kR\D[yfbShKQ"@3| = ׌i wWy&9Bü(8,xWY:p_aVF2͘kM`*iVYB__4_!dMT xqw x9szO:;B-V?!=N>cr%֖>'/\5~}k05;UOr9i^A׹>,XVyrG TMчbM xpF5ƚqwiE@ߩFOzF$]yAb.r[!eR{+q M{z '$Q@R T]m!3$plp~ DƂρϬ}%[k:nwx{<@ItRD5#|:^A0P|`I?' Sw+RPk*CMxA# A +{="˜`X=-)ѸxT^Ta*Ι#;=e3':eebL42 ;uON!DpvԱgH?YZ_Wڲ|#<eHcin`ERjf躓dn@DT&6M_ !.T#p#ok}ǽ 7IfaylրA* f2S)Mdp8QvI$q'g#Ee)Mq  9KdKB"^A{|Nj/h>!4V!XRr2߲H3ӀlLPgfSK!?HUzGTm>EWa]L3|(0? dq: b3z>## È";H\(>B?_Hc#Ž=9\J*(Ţdt^yo1DDtK@`46%U̞m ~5h`4&r6{dQATZ7uYHc1Ȫ\ˎU/WGy|7)bX&C@rC4-D/DF ]!mzAp˷R u{gR6ƛdKDo)EUE?:(2KEBr/Afz;;OքoLMw{ecXPV8k^5@( 1L "Ҁ[QTt(HwY?dlS)PGڈ =rTp*SR]=IŃGg#O7A;k``}ak=\&{ջS?9W4Y]ޑ_ʥA_qYdtnq4շ;oܓS=F|G#4b(=,FU;-w3Q+{]sSJ;zje1]\Ղl6r\_Gghk^>:]--k9#\[Oz'X_^;n1hu1 Pna7{Y>ⴾGAY[vtna+ wx7GA}v_r ߻S\_!B |ZFˮ2鉺Ok5劵mМՉRz~ZYQI&nhIwfFPN|e ()*c^0) -޷{ySBRݺߧn~` ON+`,4FE<@e"Ьm?B  %N{wFO(cEi s0XݦD>g_ cb`ޞrP#Ϗqgs7K| D}+<FI-ʋNv3aY=y @'SZr PF^,n ^0l4|vī):XC?eOH DqT_ b,FC{v\xQ2a>=S :Vi`xOOoxȃw;G…Om="B·~ OzILW!㌰c'}}|}ᦪd3qj}͓M~幷ڈUht^ >L]H,(p@ACdDQS4Cx EÞNj$-鷲Cҗ'nTZ5f+nf|I(!'2haOٻ;:(E$篯 W ?+) Ku%:j%g5J6 @Iuܸx .]';^DaD$-)&D&1==AAU 3{vNV.>&`r? KB.%HV>U~ eQ z'9_Ho}W_o>/P2g?DC$ !ou̡0$lQ2;myҳV@~%dJz?_F?k+i1O/d1YC e3Xn4RĔb#֢x'\jkuj n+ّLQ`{5p(ت,y,l;@9WFu( p`~Qy8=V "U 7ޟOe%蓽1 ?R Zޑ@N) 3j ) C=H[ ǃAOE]P ;BA M)b`&*B G7פܑ&EȮ7ub.`@1t9Ęq7%D@ѐ`Sz)/(5Ԙ.X-cm3ex6r>o 냵/ ^wo'?9_;x\_'J%o1|cR2DV7SlM5ܱM'SVc#+}dQY]Zk0}gl'MF{X3~m-=.p8ʧkK%[[Tluӏ9F`:`;u.w?><E)LA~y7qqT16dQpᇛUEIe.n*t6 ^&ۇ굶Qz"Kʅ IAI90F6U,`/FkR KM *AR;Y xSm X yMtXܑLf_Q#?`da&WI\< T4>2>gb0;}ޟoدLSvO7Y9^A/} I.f[3q6 0ݡ '797N^? μ{rHee&NYy'N(lf*E bG㲩2& p@Dg$::¸gkc7W;H2lf9!f`oe {y.}dixX}x(P Z77HHXnT $Rg[WU:|{uK!T}W(y!mRb+8mE #j@c(< ,d,zy [@Mx0cL2Ѧ-AvS75;cJQg8E06LGHc< \ezt"xEE@K"7A?ATfKDC:9O3N0_՟x6YW}j5,DJBVah:a7Ƅ+?3w X_N.m0Dg4`0@E-] )5|O]~AwtT^}YԬ(!_hrP=eᢗgL%tA ?x H% |}gN`oFz<nSSS:Нv5}q+goKY%ʀj쇴i#EYSAIWVmma)gMMpj3?n56BrQV;*(-(;o-fAJ@%9Y 4 r $W[*S}'q_qQ|T=mjGNu/P xO,`e 8+B*GtyM@.Oq&~g@< E8e7q B2V'~eԎ}uc1ƫa=a6+rBv/ԓnisZeuiSqPAY࢐(*d<ྴww'|| npv\۞0&06dXo[miUZ5g/C]AH˛FzDžo-`ʡ1儘*1_5^/&j62P'25c[jpKRomHlvw&lwpT+ؤx(_JoilcnS 6%&bQZT!WԂr<AIxX1@ PeQ 0I] @ޠX↘ʉ9Ia7] O( $9U߉ˀ˿%+tEQ2:yS8'ZML6z }/  `""=t7;4޲';yor)W"S _5^ 6ʱO3l >5y&.|xthk0˜/C/8NĠY/ψG<#xfMFʺu0e߸ c+ߓn^"F,$Bj8pe?v\: r$X@@ŀf L]M͟yH!Y=O1JFz"R|}_@ɴ]7, Qu9[ SL |WsAs'X#[r [\ט? @! <]=#=ñ& ay+K^uTW[n;]@[$d[:D_љ wʝ^dn6 ovX_MUa%}wƽ)U􅥪2S~?_馜F ޙt6Z[I n}h+BQPHTAR Q:\1;? Fg;sb QLj(2&CDA#`%&h&n4SîΑATLy0ߟuLͱVeXfsA^7 d:[0 <.j;{m񂔼`J9A>ʊr !^É봄Y#Is.9q5g]MA[!ѸUn76ŤX.3~RHgR1B}b^6o$nC1JRpŽeyEa E#/TWސ.sn@ʛIF{s ƧF ْ? Npsxy!Y c>C#GCha@wmߦe 7Q]TA燴ӆwkm_{P"pS7\_5,tKWҋw:U}WQmS I{G& *( vA@*T^7P ''~H{-ޫޠ·'srf.kW=6!jhb߬ߊ笋/j*ߛ§Zq!DYÐMēV$>~OD 0p";GȞXùG+j`0x?lOAGpM4xSS}o6C,W%Yv1$v 0‰B}b%-<\Z.Hv|sHtː;0МQfdArto @dim-}W A QQ!5w|(v>r.ÈƢhw]"mk;#WT-@eڥ[򌳾ֿF{症'wT}xB|VTE_,#B渐FQ[\3yI0(r.:* ɠ$$&IT#I5 m6 ) ܦh${,|wgrTSCoqҲUF3ggT`E[-HP>*F֫BϒoUx>F "kz 0;2/z?˸JI}y,R' 5Q2@vM#ʜZĽESXFEUAM4?uesyeR]v ?6p6q2F7v{V:d^Λ!]y@2SaZAT5Dcɪq]w3J8_ۂEK d7nyz2 &Cr_Qކȗkw 9܏+EAm o;?}MWcSr}Id2- l x!-{Q[EC9`xؤNGq];O7g}z yːbrmbW8Kɒ^?J h3nT \ߤ57Шft4nw5d%Xla+6 JbZ*x]ޱ &gӠ!t $ 3lGW.-̀EmavvdtÒ@L頄@ha9:)t#@*)* ("A02vdq2؜T)z9үVαmo}~ZLhz$q%Xˢa;SoQ`o=^(?_)NΕ]Sra|\6%L`?@zH;;# ^#ŧ`cAI!!~P`c+j{ x)b7|jdK' Љz! 4*dhD'R!B`~`Z}{U\ȼ^.b)f,7Mr;b ZTɈLNF+>gel+?'ޗ^ ~,uNOBSc3}7HyaΨb`S3*:JT!(}.޳v/Vkjsˎ"K$[,XS#i(ᵿG>x]|{!E4\hr(5kdĄ dNM~A;-^% a'W匍boY'>y3W.;^+OgfqW/?L(dbϷbnU2wXV~2?;S]ʼY,lQ2V~fl^OVrW57߳xDW2{_ V)vJ5N)d ~-4oZ'{8$. Y xSX‰ pU`}b9Υ`1+"Oskжi[A4DKnL4* !("NO¯W)7=1R/)ww$^_[L(TQf0 &G~? mVI r1WsAɆss`h;hSj$uƱY%S"z;ٷd!C0̠d?M(Fs4ax@&;Tz_2EkWL7\w+XzϪհ\vwie{elߛ:cݔNe8{Վ@eD?ؤX!Py\%I Z1-9 SBfjO. KXOГW\`N# e#(cc y!%BrD|Y`Fֈ˿gŊDAQQ=Cynظ%~{X~l>\FQ2nPp4۪yx^MƐ"pruQWꝵk?tdg`'|U_W>[tQ^ S:wJǨR+*a2|Vɜu6Ę'?p_ڏW&YvuRZ{-%\1yv|R/?(e1s/lo=ZNi9Y1KT_|,Ѓ:DQ/3VE}]1h?j_nBFAWڐ, frdB0y[x#ʳ@7z3TCE_]W}[0BewD{QbkD6 9MN(@qǸ-5p r x (2 І:@h"2;'{}f ڬS︅g//B`VFm}.p:$2M)(v1LlA]1Mpi&iE)KMO+n,rm"}Os~=30W>d1+!.s2NgpvY r'.%۝ M~KD|"\ޛ(Fd*j&h#>HFbF!)@Jd"=3DgeBߑ%{1VqQdyx/cChO"WA9/7h Ejucrq4M։Cb7ͻ]hU* : pkNwף*3'w2<=_^-ޞORAb)M?`0ƃ!&m|Z< %è(r~8>_~!s)739^ڟ~ף/~@^bU]z k2yih}%BE;;uzONS+ve{)|ʅԦ-do|VET袙h-:>]N;ϧJ~)-'_of Ѓa@e*M.dE5lRh[v& k]lN$ʊrxxVxA"ǙOp\JUwD78Gm DQ<шN9WADoMpdds=oe~F H+`yLHtBجІ!E B$W \0,Wd6I*󜖕 V'8 B_?(4}P9> qbD:z14b_N6SfS+P SU8Y5UӒS{8D'E=Hg!++$ 9gC[u;'^'3GL9ڤ+m4DZRSAaYcZRfI@..9+)}W9n)kiatV% "`xQ10SuE5Q[4Km igS7<S\@9 ԧOÄG:Dƙ=6 d BDHk@ΑU@]]OO1e g%Ҍn@qbHV(GVk&>o]=0_؆ RP 6~mY4MDC twHb+A| _bIjB_ L(׏^N:2/NW@kOK^询GyU5]rN5á>enMQ*/EE>1!ZЅ~z&~xd^o$'ЈϚoECچ/l$8#(?IQИ t/C_ D+2>u2TokA%Q3EYU8_~!#+=$ ¿C8K5YxO4w>UpO!=F7~Qu>d9?U,N}1F.Ԍ>/h>Uc)S kn~.Ā?YK1g譸D ok@2%|$)BYO@yS G iAE6W(cۚѠ`gPW)sCֳ ф*sK\崨\X,ug'+Qڠk] /?(WF ,6q\;Lb`.^}浅ux{<7vSS3 rhISt}B,vFsԀpc]OA'nr*M-v-8'wxWD쁠@'WVTxtpݳ\IQATNfmk{Ɣ8AVe* {pٵ[JqiYјg9u]| O3GL*/pƅ6gLk^ koxWB;k_Qb[cU.xčJD(0dS*s\Ƌ wZ2pԡ>j#TplޡȧMKA5R"ތԉdu%sg~A入?6l4DGz}y1& T- mۥuNwGMAy[xqNj9K8iK2C&TJY ~UsԢ0PnXP48dv;dN F]l!eS0GLj)&\E&Nr Q_gF/# To;۵~(©[;唢Vօ$#~*nLyc1*o oʛ;η%Nլ+_QE׀7l-/kM[3kx{S=3WnKߏLJLdL24T!%sm-@QRE0W9|ryJ߸n_IFRNr}Wj י"v+6Gz^,c8X?VTB@XVMp|[`Xv~Hx--B"rool]dգ>ѼKvʛsO_ʵ]W^;}ʛ?y+1 ˫?Lza'eI:?$L 1zc*>Qv(f5f5T`ˆafPVԒ ""RA}%,*›Mz0a>qBL,_(m;aQNwNу\BODy:73z?& y_7ǀ)əy!=wob$WAՀfT? gH"*xn=ڻp); ]1B&:p1qZP4c[{9"~;i2bFSVUyFKn}~*AeOSkpeyR6fK 7bFQp4p 2#*mėb#p=fr#9cQ( n].W 'b7 u^GF:9+ze>+u!ƋY?z8TòM|h9Mk.lr#Gė` W?mGկyҾr #2VsC*p+<.r4 Lf*(@8)z9DW Ϡ@HohhN% `[}$`ۦ#n޶U%LFQw.G\.rmnqnGw@|&&~jx8rh yJV?&&Y jZ,Q#sssc;Kr0ɘ2:!`*AJ;ߎI`~5)"2G0lKomզS2pP fD=T{"7ǂEUF`ScGW-kC [yAݢ6Ey8k#'YS ^ L翜jeOY& P\چ`l|Fw~ RϹ:.NT xB]e%cw9^.^bQmrvdb[#[>w\18Nw}ި{d?#dUTʗرL!Cr;h/z`o="?眠]A<'(gla1(g_<mf{"W@묕JB܌o%m(&~oGB3A8G9#|z9f+* -b7[ 2Onh1I4¯V::cSÍ]Fi!.E (91b$:$L[^>3 7x%78K۾VuZla`rCĊE BkD?@Yu×95_(9 \IKTԯ5/;W.n@u]\Y}"XKL,-F2'[$ -' ]AA*0yX:ē"db2\4P$(kMTvr,):JU,u(nYqA|3 ,+#( rp0.ڠo4\G,/QtwѠ708@DQSQH'k@qt>K|.n-0}_0&: >Y9}u{f`2W,ѽBTyaZ+|]JFc6&ȥF6g*/;"1y8 uy+HX;[@z:b3 N jJ5H7I}Vp;gS tD$%Cĸ7w(:'~A r!wGF,> Aq*vkSp}ow)Dke?וwC{عXԱneb1XlհPh k\KJy'r6 ;!b.GMYSY?GZ28*/xđHD&>n0!2+ݨFq , pd[aLȅT"(D@8SQȾG8{G~T>ŕWzVޅy1ʐ)݈ٟrod LAMQ*=| ^64,P&ɐsҡ,.Weq U %o"EDypw 0Y ur]x8IwbX Q=#E|l:{S%A,^9!cKKK]%G/ Ʃh3fzYMc;VnH$O,Q|lU%B| 1zji'eӻ3UO LQo~Scb۵ Fֽ68b z=>Ax cb21ae|GH!dU#t&ZIDAT*w˝{ ̰}!_/b!/@yQ@&dmG>o9c "4uXqH_I v͠gJqDJK.2C 1 m7 mNmaOΏ70%&".Z!0ɳr7xEužS]rX#J1i&Jg OUJGY|b]2pk} {DDW2{AMVN‰ш2b1Z/:@3n5 _.2쎙yo?Tz棨'j5Z^m8{G73&u]bzCgk{ו\ߪ+3X{A]:T,Q&1mdԇ`mwnj҄d8;S()me'Du#rvC\7i ow~yr,z.OP.eF~ٶ+bǺmىZVo!{xz]9ir:&t:Fj杠Y[X&[%>^ X2{|!/e QZ>T-13AhlzF}Ui‚|E6i8~;q J=a d{ 9}5wdAE*ر)͕J~mlֵo,we皫G+g<T^8\ Yr*A~"Z##ZuM;TLε┼R /X)ʲW^|r6GrMx6*JS^N&gJO'NOd4LB#"5(%^gq5#eL"EZ^{z ʼ;&\[gdz(QDŊ< μ K{ma)-@iXK[;b<'3xr8Sx>!5ש=r\E\wE1pv GmL[.d:U(+"?m[kQGM =D-Q?hk\LDnmqJO^ȅіvߙ^}4Q̆-Z&Gu0z`,l`&Qg=eq,|v4T,cOu~$RzrJ;RS>K;[Vru.%mE($eKN,K#wLr,iYJ3|srf`2=J:TKhk&j&Mvs:=:*F.#X0 e yEns] A< yZ7m!tX-x\E7m|s4H%!dDbx 52&xG-&9q2e*FNFbcY^Жhڴ%PA]aGo0+<2{YB?4Pkq2D0̕I (Zˇ*ςULGL>€?*ߛLK Ec>ͶbSqp{b>רѯ'15d!΢r\EyC\ @[NB(aƒdՀf-N:#r\.Ws3/DF /'4 E4p[\ #+A¦=u}#oZ>>[A|sF}g.ϦпPŀLGŹK;n\_(Fph@ @7QcD'"HE'>:NIS `E Ƙa&@)m=y#b)Ee"E$ʃ=oQYq{^nըEc}d;v ʵrx{ tf 'uM  0>ׯdGdUqfY=-uvmv"PԿch :=z5bR|FnF3-БXD#ʐMGUI])gleќd1%(FQ0]o;BW@ "D0amC<.jH  L \*ʈuʹڹu}epN_5d&صWZ.O'Vbϴ{ W9G8U & 0D3OAUЊ*Zv/~=Cۤ JZ jJ""@sZpSJ42ʭ.˹rxk>uzWaa3#ʂYRjwpZ'FG1ww TQU5QPrTYLd2=d>ꚓ#0غj EiZ>nǵVToZwzfWJtIF7Ǐ-"j.$L:pEY|{2{M?AgE5QOY맻!l{y&ꇠEjz"x&x@VPT-XP>[FqQȽvvuJd['r۹nAܝ#|p֋gYE?VVz5رQ/;&[HvMdXFL=ѓz~#ˁK!CNWWRpguUEnKzM0 %@%ѐÈJ(2mm@ s4cDs-!eVҤ̵&2Okγ);jgH5pgvM)K_LŷhH3 (`4TmS5 ǫK{^c-+9RT"q  6QJ?%.G /T5DUX@)0ч8ϳ0EΆzk6{dz4v+NEW#r5q oo+e;SƩpӯJu@Eg{ Mr? |y2+8Yr_|`'9szod塲dz#ғ Xk`%D5QVV(\S󁿧OQhlCjL.]<.։I igyNh0+' VOqPD[ n٤.PZ}[M|[Yta1 *Vlh-z?zA9 cfьM@:ji8i$,~ )^d/[z eB1VksĸXËD5VzU dZi93*+)lꗌx?B toL30LIP_ (aBˆ/}w}K1A)@0 =x7k;DsJߎL<0lhǵúMG2htׂRd -!JG*)SK Gl **!F> Ý-b\;_׏J̥YoA9ݻ&ӣ L&?u50&gҧgU1Iapko=\RN*Ot戸{XA4-ēbKY楯Jy G֊NkOhz[=jk}ڬ%|QcgtE^dXFT5P׍OeR?K27ƴ <=|8(p˛+{dz4d"Hs& lxE+}MVtTM;EA1TT Dň2RӇLm\c D%Ӿ33ȭ*b6\ ^CoEժg7DO" ! h9ZzA81y%w9ݛ&ӣ L&kϿGޔ'xkt]fl!egXc EsTkS zrݤ& CJDd6u?Hmx9:$߳ DyhbeVHi2~!Q mE-х8Sx=1=|8ӽg2=, Wu"PRWdM w{fqUQH~V\O PYRn_BSY۪u iC7ӎj#qeK8_{ Fs BBEȌnzWVZ ojyFF3#w!eu@1ٽUFC}>3r9`2~륮 XS# ~ba035BJM蓲<)#*ݢչu/RH"j~ZE JC_ZrRY\mt^Xecq%Ү`áYL9o&SN2j\>v*>LW}#U._ō 5Ū$>W( oiA{:-Z??Νw*^ Foe nŦgar%j(&+=ir'ԗy^{5;:&_LܵkfDVz}Sr-IuiZ+)_4a1Q}O/A#_޼{ `#~eRP3lT؊ɩ;z!yu9k;1;Ds\ӽd2,30LK.:zr眍TF(- |_x[nwlڭaSlpWoOS?*ِ3jeP^кƺF1r9f2b=+ !#c!C2B\UyjdF9#9Nv[Yne`ee g8'8ӝa230L9zd H3dZ__@%YGD[‚&d2L&d2L&d2L&d2L&d2L&d2L&d2L&d2L&d2L&#Á?%tEXtdate:create2024-06-09T07:53:21+00:00%tEXtdate:modify2024-06-09T07:53:21+00:00bUS(tEXtdate:timestamp2024-06-09T08:37:05+00:00EIENDB`sherlock-0.15.0/docs/pyproject/000077500000000000000000000000001464273343400163705ustar00rootroot00000000000000sherlock-0.15.0/docs/pyproject/README.md000066400000000000000000000025221464273343400176500ustar00rootroot00000000000000 ## Usage ```console $ sherlock --help usage: sherlock [-h] [--version] [--verbose] [--folderoutput FOLDEROUTPUT] [--output OUTPUT] [--tor] [--unique-tor] [--csv] [--xlsx] [--site SITE_NAME] [--proxy PROXY_URL] [--json JSON_FILE] [--timeout TIMEOUT] [--print-all] [--print-found] [--no-color] [--browse] [--local] [--nsfw] USERNAMES [USERNAMES ...] ``` To search for only one user: ```bash $ sherlock user123 ``` To search for more than one user: ```bash $ sherlock user1 user2 user3 ```
___

sherlock-0.15.0/docs/removed-sites.md000066400000000000000000001515471464273343400174760ustar00rootroot00000000000000# List Of Sites Removed From Sherlock This is a list of sites implemented in such a way that the current design of Sherlock is not capable of determining if a given username exists or not. They are listed here in the hope that things may change in the future so they may be re-included. ## gpodder.net As of 2020-05-25, all usernames are reported as available. The server is returning a HTTP Status 500 (Internal server error) for all queries. ```json "gpodder.net": { "errorType": "status_code", "rank": 2013984, "url": "https://gpodder.net/user/{}", "urlMain": "https://gpodder.net/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## Investing.com As of 2020-05-25, all usernames are reported as claimed. Any query against a user seems to be redirecting to a general information page at https://www.investing.com/brokers/. Probably required login before access. ```json "Investing.com": { "errorType": "status_code", "rank": 196, "url": "https://www.investing.com/traders/{}", "urlMain": "https://www.investing.com/", "username_claimed": "jenny", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## AdobeForums As of 2020-04-12, all usernames are reported as available. When I went to the site to see what was going on, usernames that I know existed were redirecting to the main page. I was able to see user profiles without logging in, but the URL was not related to their user name. For example, user "tomke" went to https://community.adobe.com/t5/user/viewprofilepage/user-id/10882613. This can be detected, but it requires a different detection method. ```json "AdobeForums": { "errorType": "status_code", "rank": 59, "url": "https://forums.adobe.com/people/{}", "urlMain": "https://forums.adobe.com/", "username_claimed": "jack", "username_unclaimed": "noonewouldeverusethis77777" }, ``` ## Basecamp As of 2020-02-23, all usernames are reported as not existing. ```json "Basecamp": { "errorMsg": "The account you were looking for doesn't exist", "errorType": "message", "rank": 4914, "url": "https://{}.basecamphq.com", "urlMain": "https://basecamp.com/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## Fanpop As of 2020-02-23, all usernames are reported as not existing. ```json "fanpop": { "errorType": "response_url", "errorUrl": "http://www.fanpop.com/", "rank": 9454, "url": "http://www.fanpop.com/fans/{}", "urlMain": "http://www.fanpop.com/", "username_claimed": "blue", "username_unclaimed": "noonewould_everusethis7" }, ``` ## Canva As of 2020-02-23, all usernames are reported as not existing. ```json "Canva": { "errorType": "response_url", "errorUrl": "https://www.canva.com/{}", "rank": 128, "url": "https://www.canva.com/{}", "urlMain": "https://www.canva.com/", "username_claimed": "jenny", "username_unclaimed": "xgtrq" }, ``` ## Pixabay As of 2020-01-21, all usernames are reported as not existing. ```json "Pixabay": { "errorType": "status_code", "rank": 378, "url": "https://pixabay.com/en/users/{}", "urlMain": "https://pixabay.com/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## NPM-Packages NPM-Packages are not users. ```json "NPM-Package": { "errorType": "status_code", "url": "https://www.npmjs.com/package/{}", "urlMain": "https://www.npmjs.com/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## Pexels As of 2020-01-21, all usernames are reported as not existing. ```json "Pexels": { "errorType": "status_code", "rank": 745, "url": "https://www.pexels.com/@{}", "urlMain": "https://www.pexels.com/", "username_claimed": "bruno", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## RamblerDating As of 2019-12-31, site always times out. ```json "RamblerDating": { "errorType": "response_url", "errorUrl": "https://dating.rambler.ru/page/{}", "rank": 322, "url": "https://dating.rambler.ru/page/{}", "urlMain": "https://dating.rambler.ru/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## YandexMarket As of 2019-12-31, all usernames are reported as existing. ```json "YandexMarket": { "errorMsg": "\u0422\u0443\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435\u0442", "errorType": "message", "rank": 47, "url": "https://market.yandex.ru/user/{}/achievements", "urlMain": "https://market.yandex.ru/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## Codementor As of 2019-12-31, usernames that exist are not detected. ```json "Codementor": { "errorType": "status_code", "rank": 10252, "url": "https://www.codementor.io/@{}", "urlMain": "https://www.codementor.io/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## KiwiFarms As of 2019-12-31, the site gives a 403 for all usernames. You have to be logged into see a profile. ```json "KiwiFarms": { "errorMsg": "The specified member cannot be found", "errorType": "message", "rank": 38737, "url": "https://kiwifarms.net/members/?username={}", "urlMain": "https://kiwifarms.net/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis" }, ``` ## Teknik As of 2019-11-30, the site causes Sherlock to just hang. ```json "Teknik": { "errorMsg": "The user does not exist", "errorType": "message", "rank": 357163, "url": "https://user.teknik.io/{}", "urlMain": "https://teknik.io/", "username_claimed": "red", "username_unclaimed": "noonewouldeverusethis7" } ``` ## Shockwave As of 2019-11-28, usernames that exist give a 503 "Service Unavailable" HTTP Status. ```json "Shockwave": { "errorMsg": "Oh no! You just finished all of the games on the internet!", "errorType": "message", "rank": 35916, "url": "http://www.shockwave.com/member/profiles/{}.jsp", "urlMain": "http://www.shockwave.com/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis" }, ``` ## Foursquare When usage of automated tool is detected. Whole IP is banned from future requests. There is an error message: > Please verify you are a human > Access to this page has been denied because we believe you are using automation tools to browse the website. ```json "Foursquare": { "errorType": "status_code", "rank": 1843, "url": "https://foursquare.com/{}", "urlMain": "https://foursquare.com/", "username_claimed": "dens", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## Khan Academy Usernames that don't exist are detected. First noticed 2019-10-25. ```json "Khan Academy": { "errorType": "status_code", "rank": 377, "url": "https://www.khanacademy.org/profile/{}", "urlMain": "https://www.khanacademy.org/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## EVE Online Usernames that exist are not detected. ```json "EVE Online": { "errorType": "response_url", "errorUrl": "https://eveonline.com", "rank": 15347, "url": "https://evewho.com/pilot/{}/", "urlMain": "https://eveonline.com", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## AngelList Usernames that exist are not detected. Forbidden Request 403 Error. ```json "AngelList": { "errorType": "status_code", "rank": 5767, "url": "https://angel.co/u/{}", "urlMain": "https://angel.co/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## PowerShell Gallery Accidentally merged even though the original pull request showed that all user names were available. ```json "PowerShell Gallery": { "errorType": "status_code", "rank": 163562, "url": "https://www.powershellgallery.com/profiles/{}", "urlMain": "https://www.powershellgallery.com", "username_claimed": "powershellteam", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## StreamMe On 2019-04-07, I get a Timed Out message from the website. It has not been working earlier either (for some weeks). It takes about 21s before the site finally times out, so it really makes getting the results from Sherlock a pain. If the site becomes available in the future, we can put it back in. ```json "StreamMe": { "errorType": "status_code", "rank": 31702, "url": "https://www.stream.me/{}", "urlMain": "https://www.stream.me/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## BlackPlanet This site has always returned a false positive. The site returns the exact same text for a claimed or an unclaimed username. The site must be rendering all of the different content using Javascript in the browser. So, there is no way distinguish between the results with the current design of Sherlock. ```json "BlackPlanet": { "errorMsg": "My Hits", "errorType": "message", "rank": 110021, "url": "http://blackplanet.com/{}", "urlMain": "http://blackplanet.com/" }, ``` ## Fotolog Around 2019-02-09, I get a 502 HTTP error (bad gateway) for any access. On 2019-03-10, the site is up, but it is in maintenance mode. It does not seem to be working, so there is no sense in including it in Sherlock. ```json "Fotolog": { "errorType": "status_code", "rank": 47777, "url": "https://fotolog.com/{}", "urlMain": "https://fotolog.com/" }, ``` ## Google Plus On 2019-04-02, Google shutdown Google Plus. While the content for some users is available after that point, it is going away. And, no one will be able to create a new account. So, there is no value is keeping it in Sherlock. Good-bye [Google Plus](https://en.wikipedia.org/wiki/Google%2B)... ```json "Google Plus": { "errorType": "status_code", "rank": 1, "url": "https://plus.google.com/+{}", "urlMain": "https://plus.google.com/", "username_claimed": "davidbrin1", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## InsaneJournal As of 2020-02-23, InsaneJournal returns false positive, when providing a username which contains a period. Since we were not able to find the criteria for a valid username, the best thing to do now is to remove it. ```json "InsaneJournal": { "errorMsg": "Unknown user", "errorType": "message", "rank": 29728, "url": "http://{}.insanejournal.com/profile", "urlMain": "insanejournal.com", "username_claimed": "blue", "username_unclaimed": "dlyr6cd" }, ``` ## Sports Tracker As of 2020-04-02, Sports Tracker returns false positives. Checking with `errorMsg` and `response_url` did not seem to work. ``` "SportsTracker": { "errorUrl": "https://www.sports-tracker.com/page-not-found", "errorType": "response_url", "rank": 93950, "url": "https://www.sports-tracker.com/view_profile/{}", "urlMain": "https://www.sports-tracker.com/", "username_claimed": "blue", "username_unclaimed": "noonewouldeveruse" }, ``` ## Trip As of 2020-04-02, Trip by Skyscanner seems to not work beceause it keeps on redirecting to skyscanner.com whether the username exists or not. ```json "Trip": { "errorType": "status_code", "rank": 2847, "url": "https://www.trip.skyscanner.com/user/{}", "urlMain": "https://www.trip.skyscanner.com/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## boingboing.net As of 2020-04-02, boingboing.net requires a login to check if a user exits or not. ``` "boingboing.net": { "errorType": "status_code", "rank": 5821, "url": "https://bbs.boingboing.net/u/{}", "urlMain": "https://boingboing.net/", "username_claimed": "admin", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## elwoRU As of 2020-04-04, elwoRu does not exist anymore. I confirmed using downforeveryoneorjustme.com that the website is down. ```json "elwoRU": { "errorMsg": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d", "errorType": "message", "rank": 254810, "url": "https://elwo.ru/index/8-0-{}", "urlMain": "https://elwo.ru/", "username_claimed": "red", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## ingvarr.net.ru As of 2020-04-04, ingvarr.net.ru does not exist anymore. I confirmed using downforeveryoneorjustme.com that the website is down. ```json "ingvarr.net.ru": { "errorMsg": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d", "errorType": "message", "rank": 107721, "url": "http://ingvarr.net.ru/index/8-0-{}", "urlMain": "http://ingvarr.net.ru/", "username_claimed": "red", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## Redsun.tf As of 2020-06-20, Redsun.tf seems to be adding random digits to the end of the usernames which makes it pretty much impossible for Sherlock to check for usernames on this particular website. ```json "Redsun.tf": { "errorMsg": "The specified member cannot be found", "errorType": "message", "rank": 3796657, "url": "https://forum.redsun.tf/members/?username={}", "urlMain": "https://redsun.tf/", "username_claimed": "dan", "username_unclaimed": "noonewouldeverusethis" }, ``` ## Creative Market As of 2020-06-20, Creative Market has a captcha to prove that you are a human, and because of this Sherlock is unable to check for username on this site because we will always get a page which asks us to prove that we are not a robot. ```json "CreativeMarket": { "errorType": "status_code", "rank": 1896, "url": "https://creativemarket.com/users/{}", "urlMain": "https://creativemarket.com/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## pvpru As of 2020-06-20, pvpru uses CloudFlair, and because of this we get a "Access denied" error whenever we try to check for a username. ```json "pvpru": { "errorType": "status_code", "rank": 405547, "url": "https://pvpru.com/board/member.php?username={}&tab=aboutme#aboutme", "urlMain": "https://pvpru.com/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## easyen As of 2020-06-21, easyen returns false positives when using a username which contains a period. Since we could not find the criteria for the usernames for this site, it will be removed ```json "easyen": { "errorMsg": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d", "errorType": "message", "rank": 11564, "url": "https://easyen.ru/index/8-0-{}", "urlMain": "https://easyen.ru/", "username_claimed": "wd", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## pedsovet As of 2020-06-21, pedsovet returns false positives when using a username which contains a period. Since we could not find the criteria for the usernames for this site, it will be removed ```json "pedsovet": { "errorMsg": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d", "errorType": "message", "rank": 6776, "url": "http://pedsovet.su/index/8-0-{}", "urlMain": "http://pedsovet.su/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## radioskot As of 2020-06-21, radioskot returns false positives when using a username which contains a period. Since we could not find the criteria for the usernames for this site, it will be removed ```json "radioskot": { "errorMsg": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d", "errorType": "message", "rank": 105878, "url": "https://radioskot.ru/index/8-0-{}", "urlMain": "https://radioskot.ru/", "username_claimed": "red", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## Coderwall As of 2020-07-06, Coderwall returns false positives when checking for an username which contains a period. I have tried to find out what Coderwall's criteria is for a valid username, but unfortunately I have not been able to find it and because of this, the best thing we can do now is to remove it. ```json "Coderwall": { "errorMsg": "404! Our feels when that url is used", "errorType": "message", "rank": 11256, "url": "https://coderwall.com/{}", "urlMain": "https://coderwall.com/", "username_claimed": "jenny", "username_unclaimed": "noonewouldeverusethis7" } ``` ## TamTam As of 2020-07-06, TamTam returns false positives when given a username which contains a period ```json "TamTam": { "errorType": "response_url", "errorUrl": "https://tamtam.chat/", "rank": 87903, "url": "https://tamtam.chat/{}", "urlMain": "https://tamtam.chat/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## Zomato As of 2020-07-24, Zomato seems to be unstable. Majority of the time, Zomato takes a very long time to respond. ```json "Zomato": { "errorType": "status_code", "headers": { "Accept-Language": "en-US,en;q=0.9" }, "rank": 1920, "url": "https://www.zomato.com/pl/{}/foodjourney", "urlMain": "https://www.zomato.com/", "username_claimed": "deepigoyal", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## Mixer As of 2020-07-22, the Mixer service has closed down. ```json "mixer.com": { "errorType": "status_code", "rank": 1544, "url": "https://mixer.com/{}", "urlMain": "https://mixer.com/", "urlProbe": "https://mixer.com/api/v1/channels/{}", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## KanoWorld As of 2020-07-22, KanoWorld's api.kano.me subdomain no longer exists which makes it not possible for us check for usernames. If an alternative way to check for usernames is found then it will added. ```json "KanoWorld": { "errorType": "status_code", "rank": 181933, "url": "https://api.kano.me/progress/user/{}", "urlMain": "https://world.kano.me/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## YandexCollection As of 2020-08-11, YandexCollection presents us with a recaptcha which prevents us from checking for usernames ```json "YandexCollection": { "errorType": "status_code", "url": "https://yandex.ru/collections/user/{}/", "urlMain": "https://yandex.ru/collections/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## PayPal As of 2020-08-24, PayPal now returns false positives, which was found when running the tests, but will most likley be added again in the near future once we find a better error detecting method. ```json "PayPal": { "errorMsg": "", "errorType": "message", "url": "https://www.paypal.com/paypalme/{}", "headers": { "User-Agent": "" }, "urlMain": "https://www.paypal.me/", "username_claimed": "blue", "username_unclaimed": "noneownsthisusername7" }, ``` ## ImageShack As of 2020-08-24, ImageShack now returns false positives, which was found when running the tests, but will most likley be added again in the near future once we find a better error detecting method. ```json "ImageShack": { "errorType": "response_url", "errorUrl": "https://imageshack.us/", "url": "https://imageshack.us/user/{}", "urlMain": "https://imageshack.us/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## Aptoide As of 2020-08-24, Aptoide now returns false positives, which was found when running the tests, but will most likley be added again in the near future once we find a better error detecting method. ```json "Aptoide": { "errorType": "status_code", "url": "https://{}.en.aptoide.com/", "urlMain": "https://en.aptoide.com/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## Crunchyroll As of 2020-08-24, Crunchyroll now returns false positives, which was found when running the tests, but will most likley be added again in the near future once we find a better error detecting method. ```json "Crunchyroll": { "errorType": "status_code", "url": "https://www.crunchyroll.com/user/{}", "urlMain": "https://www.crunchyroll.com/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## T-MobileSupport As of 2020-08-24, T-MobileSupport now returns false positives, which was found when running the tests, but will most likley be added again in the near future once we find a better error detecting method. ```json "T-MobileSupport": { "errorType": "status_code", "url": "https://support.t-mobile.com/people/{}", "urlMain": "https://support.t-mobile.com", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## OpenCollective As of 2020-08-24, OpenCollective now returns false positives, which was found when running the tests, but will most likley be added again in the near future once we find a better error detecting method. ```json "OpenCollective": { "errorType": "status_code", "url": "https://opencollective.com/{}", "urlMain": "https://opencollective.com/", "username_claimed": "sindresorhus", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## SegmentFault As of 2020-08-24, SegmentFault now returns false positives, which was found when running the tests, but will most likley be added again in the near future once we find a better error detecting method. ```json "SegmentFault": { "errorType": "status_code", "url": "https://segmentfault.com/u/{}", "urlMain": "https://segmentfault.com/", "username_claimed": "bule", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## Viadeo As of 2020-08-24, Viadeo now returns false positives, which was found when running the tests, but will most likley be added again in the near future once we find a fix for this ```json "Viadeo": { "errorType": "status_code", "url": "http://fr.viadeo.com/en/profile/{}", "urlMain": "http://fr.viadeo.com/en/", "username_claimed": "franck.patissier", "username_unclaimed": "noonewouldeverusethis" }, ``` ## MeetMe As of 2020-09-02, MeetMe returns false positives ```json "MeetMe": { "errorType": "response_url", "errorUrl": "https://www.meetme.com/", "url": "https://www.meetme.com/{}", "urlMain": "https://www.meetme.com/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## Linkdedin As of 2020-09-23, Linkedin returns false positives because we are prompted with prompted to login when checking for a user ```json "Linkedin": { "errorMsg": "could not be found", "errorType": "message", "rank": 0, "url": "https://www.linkedin.com/in/{}", "urlMain": "https://www.linkedin.com/", "username_claimed": "alex", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## tracr.co As of 2020-09-23, tracr.co returns false positives because the site seems to be shut down. ```json "tracr.co": { "errorMsg": "No search results", "errorType": "message", "regexCheck": "^[A-Za-z0-9]{2,32}$", "url": "https://tracr.co/users/1/{}", "urlMain": "https://tracr.co/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" } ``` ## Taringa As of 2020-09-23, Taringa returns false positives. ```json "Taringa": { "errorType": "status_code", "regexCheck": "^[^.]*$", "url": "https://www.taringa.net/{}", "urlMain": "https://taringa.net/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## Photobucket As of 2020-10-21, Photobucket return false positives. This was reported in #785. ```json "Photobucket": { "errorType": "status_code", "url": "https://photobucket.com/user/{}/library", "urlMain": "https://photobucket.com/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## 4PDA As of 2020-10-21, 4PDA returns false positives. This was reported in #784. ```json "4pda": { "errorMsg": "[1,false,0]", "errorType": "message", "url": "https://4pda.ru/forum/index.php?act=search&source=pst&noform=1&username={}", "urlMain": "https://4pda.ru/", "urlProbe": " https://4pda.ru/forum/index.php?act=auth&action=chkname&login={}", "username_claimed": "green", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## PokerStrategy As of 2020-10-21, PokerStrategy returns false positives. This was reported in #776. ```json "PokerStrategy": { "errorType": "status_code", "url": "http://www.pokerstrategy.net/user/{}/profile/", "urlMain": "http://www.pokerstrategy.net", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## Filmogs Filmogs has closed down. > **Filmogs is closed** > **31-Aug 2020** - We are preparing the last data export and collection of images. It will be published here by 19-Oct 2020. If you have requested an export of your data it will also be emailed to you by 19-Oct 2020. ```json "Filmogs": { "errorType": "status_code", "url": "https://www.filmo.gs/users/{}", "urlMain": "https://www.filmo.gs/", "username_claimed": "cupparober", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## 500px As of 2021-01-13, 500px returns false positives. This will hopefully be fixed soon once we add the ability to add different request methods. ```json "500px": { "errorMsg": "No message available", "errorType": "message", "url": "https://500px.com/p/{}", "urlMain": "https://500px.com/", "urlProbe": "https://api.500px.com/graphql?operationName=ProfileRendererQuery&variables=%7B%22username%22%3A%22{}%22%7D&extensions=%7B%22persistedQuery%22%3A%7B%22version%22%3A1%2C%22sha256Hash%22%3A%224d02ff5c13927a3ac73b3eef306490508bc765956940c31051468cf30402a503%22%7D%7D", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## Badoo As of 2021-01-13, Badoo returns false positives ```json "Badoo": { "errorType": "status_code", "url": "https://badoo.com/profile/{}", "urlMain": "https://badoo.com/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## Pling As of 2021-01-13, Pling returns false positives. ```json "Pling": { "errorMsg": "Resource not found", "errorType": "message", "url": "https://www.pling.com/u/{}/", "urlMain": "https://www.pling.com/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis" }, ``` ## Realmeye As of 2021-01-13, Realmeye returns false positives. ```json "Realmeye": { "errorMsg": "Sorry, but we either:", "errorType": "message", "url": "https://www.realmeye.com/player/{}", "urlMain": "https://www.realmeye.com/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## Travellerspoint As of 2021-01-13, Travellerspoint returns false positives ```json "Travellerspoint": { "errorMsg": "Wooops. Sorry!", "errorType": "message", "url": "https://www.travellerspoint.com/users/{}", "urlMain": "https://www.travellerspoint.com", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## GDProfiles As of 2021-06-27, GDProfiles takes way too long to respond. Must be an issue on their side. ```json "GDProfiles": { "errorType": "status_code", "url": "https://gdprofiles.com/{}", "urlMain": "https://gdprofiles.com/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis" }, ``` ## AllTrails As of 2021-06-27, AllTrails has a captcha which prevents us from checking for usernames on the site. ```json "AllTrails": { "errorMsg": "class=\"home index\"", "errorType": "message", "url": "https://www.alltrails.com/members/{}", "urlMain": "https://www.alltrails.com/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis" } ``` ## Cent As of 2021-06-27, there is not way of checking if a username exists on Cent ```json "Cent": { "errorMsg": "Cent", "errorType": "message", "url": "https://beta.cent.co/@{}", "urlMain": "https://cent.co/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## Anobii As of 2021-06-27, Anobii returns false positives and there is no stable way of checking usernames. ``` "Anobii": { "errorType": "response_url", "url": "https://www.anobii.com/{}/profile", "urlMain": "https://www.anobii.com/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" } ``` ## Kali Community As of 2021-06-27, Kali Community requires us to be logged in order to check if a user exists on their forum. ```json "Kali community": { "errorMsg": "This user has not registered and therefore does not have a profile to view.", "errorType": "message", "url": "https://forums.kali.org/member.php?username={}", "urlMain": "https://forums.kali.org/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" } ``` ## NameMC As of 2021-06-27, NameMC uses captcha through CloudFlare which prevents us from checking if usernames exists on the site. ```json "NameMC (Minecraft.net skins)": { "errorMsg": "Profiles: 0 results", "errorType": "message", "url": "https://namemc.com/profile/{}", "urlMain": "https://namemc.com/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## SteamID As of 2021-06-27, Steam uses captcha through CloudFlare which prevents us from checking if usernames exists on the site. ```json "Steamid": { "errorMsg": "", "errorType": "message", "url": "https://steamid.uk/profile/{}", "urlMain": "https://steamid.uk/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" } ``` ## TripAdvisor As of 2021-06-27, Trip takes too long to return a response. As of now, the reason is not known. ```json "TripAdvisor": { "errorMsg": "This page is on vacation\u2026", "errorType": "message", "url": "https://tripadvisor.com/members/{}", "urlMain": "https://tripadvisor.com/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ### House Mixes As of 2021-09-04, House Mixes has issues connecting causing Sherlock to freeze. ```json "House-Mixes.com": { "errorMsg": "Profile Not Found", "errorType": "message", "regexCheck": "^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*$", "url": "https://www.house-mixes.com/profile/{}", "urlMain": "https://www.house-mixes.com/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" } ``` ### Quora As of 2021-09-04, Quora returns false positives. ```json "Quora": { "errorMsg": "Page Not Found", "errorType": "message", "url": "https://www.quora.com/profile/{}", "urlMain": "https://www.quora.com/", "username_claimed": "Matt-Riggsby", "username_unclaimed": "noonewouldeverusethis7" } ``` ### SparkPeople As of 2021-09-04, SparkPeople returns false positives. ```json "SparkPeople": { "errorMsg": "We couldn't find that user", "errorType": "message", "url": "https://www.sparkpeople.com/mypage.asp?id={}", "urlMain": "https://www.sparkpeople.com", "username_claimed": "adam", "username_unclaimed": "noonewouldeverusethis7" } ``` ### Cloob As of 2021-10-25, Cloob seems to be down and their site is not responding. ```json "Cloob": { "errorType": "status_code", "url": "https://www.cloob.com/name/{}", "urlMain": "https://www.cloob.com/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" } ``` ### TM-Ladder As of 2021-11-30, TM-Ladder is returning false positives due to rate limits. ```json "TM-Ladder": { "errorMsg": "player unknown or invalid", "errorType": "message", "url": "http://en.tm-ladder.com/{}_rech.php", "urlMain": "http://en.tm-ladder.com/index.php", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis" ``` ### plug.dj As of 2021-12-02, plug.dj is returning false positives because the service is down. ```json "plug.dj": { "errorType": "status_code", "url": "https://plug.dj/@/{}", "urlMain": "https://plug.dj/", "username_claimed": "plug-dj-rock", "username_unclaimed": "noonewouldeverusethis7" } ``` ## Facenama As of 2022-02-6, Facenama seems to be down their rebuilding their site ```json "Facenama": { "errorType": "response_url", "errorUrl": "https://facenama.com/404.html", "regexCheck": "^[-a-zA-Z0-9_]+$", "url": "https://facenama.com/{}", "urlMain": "https://facenama.com/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis77" }, ``` ## Designspiration As of 2022-04-17, Designspiration seems to be down or very laggy. Therefore, we're removing the site for now. ```json "Designspiration": { "errorType": "status_code", "url": "https://www.designspiration.net/{}/", "urlMain": "https://www.designspiration.net/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## CapFriendly As of 2022-05-01, CapFriendly always shows that a username exists even though it doesn't. This then of course causes false positives in Sherlock's results. ```json "CapFriendly": { "errorMsg": "
No results found
", "errorType": "message", "regexCheck": "^[a-zA-z][a-zA-Z0-9_]{2,79}$", "url": "https://www.capfriendly.com/users/{}", "urlMain": "https://www.capfriendly.com/", "username_claimed": "thisactuallyexists", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## Gab As of 2022-05-01, Gab returns false positives because they now use CloudFlare ```json "Gab": { "errorMsg": "The page you are looking for isn't here.", "errorType": "message", "url": "https://gab.com/{}", "urlMain": "https://gab.com", "username_claimed": "a", "username_unclaimed": "noonewouldeverusethis" }, ``` ## FanCentro As of 2022-05-1, FanCentro returns false positives. Will later in new version of Sherlock. ```json "FanCentro": { "errorMsg": "var environment", "errorType": "message", "url": "https://fancentro.com/{}", "urlMain": "https://fancentro.com/", "username_claimed": "nielsrosanna", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## Codeforces As og 2022-05-01, Codeforces returns false positives ```json "Codeforces": { "errorType": "response_url", "errorUrl": "https://codeforces.com/", "url": "https://codeforces.com/profile/{}", "urlMain": "https://www.codeforces.com/", "username_claimed": "tourist", "username_unclaimed": "noonewouldeverusethis789" }, ``` ## Smashcast As og 2022-05-01, Smashcast is down ```json "Smashcast": { "errorType": "status_code", "url": "https://www.smashcast.tv/api/media/live/{}", "urlMain": "https://www.smashcast.tv/", "username_claimed": "hello", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## Countable As og 2022-05-01, Countable returns false positives ```json "Countable": { "errorType": "status_code", "url": "https://www.countable.us/{}", "urlMain": "https://www.countable.us/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## Raidforums Raidforums is [now run by the FBI](https://twitter.com/janomine/status/1499453777648234501?s=21) ```json "Raidforums": { "errorType": "status_code", "url": "https://raidforums.com/User-{}", "urlMain": "https://raidforums.com/", "username_claimed": "red", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## Pinterest Removed due to false positive ```json "Pinterest": { "errorType": "status_code", "url": "https://www.pinterest.com/{}/", "urlMain": "https://www.pinterest.com/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis76543" } ``` ## PCPartPicker As of 17-07-2022, PCPartPicker requires us to login in order to check if a user exits ```json "PCPartPicker": { "errorType": "status_code", "url": "https://pcpartpicker.com/user/{}", "urlMain": "https://pcpartpicker.com", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## Ebay As of 17-07-2022, Ebay is very slow to respond. It was also reported that it returned false positives. So this is something that has been investigated further later. ```json "eBay.com": { "errorMsg": "The User ID you entered was not found. Please check the User ID and try again.", "errorType": "message", "url": "https://www.ebay.com/usr/{}", "urlMain": "https://www.ebay.com/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, "eBay.de": { "errorMsg": "Der eingegebene Nutzername wurde nicht gefunden. Bitte pr\u00fcfen Sie den Nutzernamen und versuchen Sie es erneut.", "errorType": "message", "url": "https://www.ebay.de/usr/{}", "urlMain": "https://www.ebay.de/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## Ghost As of 17-07-2022, Ghost returns false positives ```json "Ghost": { "errorMsg": "Domain Error", "errorType": "message", "url": "https://{}.ghost.io/", "urlMain": "https://ghost.org/", "username_claimed": "troyhunt", "username_unclaimed": "noonewouldeverusethis7" } ``` ## Atom Discussions As of 25-07-2022, Atom Discussions seems to not work beceause it keeps on redirecting to github discussion tab which does not exist and is not specific to a username ```json "Atom Discussions": { "errorMsg": "Oops! That page doesn\u2019t exist or is private.", "errorType": "message", "url": "https://discuss.atom.io/u/{}/summary", "urlMain": "https://discuss.atom.io", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis" } ``` ## Gam1ng As of 25-07-2022, Gam1ng has been permanently moved and is no longer functional ```json "Gam1ng": { "errorType": "status_code", "url": "https://gam1ng.com.br/user/{}", "urlMain": "https://gam1ng.com.br", "username_claimed": "PinKgirl", "username_unclaimed": "noonewouldeverusethis77777" } ``` ## OGUsers As of 25-07-2022, OGUsers is now no longer functional ```json "OGUsers": { "errorType": "status_code", "url": "https://ogusers.com/{}", "urlMain": "https://ogusers.com/", "username_claimed": "ogusers", "username_unclaimed": "noonewouldeverusethis7" } ``` ## Otzovik As of 25-07-2022, Otzovik is now no longer functional ```json "Otzovik": { "errorType": "status_code", "url": "https://otzovik.com/profile/{}", "urlMain": "https://otzovik.com/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" } ``` ## radio_echo_msk As of 25-07-2022, radio_echo_msk is now no longer functional ```json "radio_echo_msk": { "errorType": "status_code", "url": "https://echo.msk.ru/users/{}", "urlMain": "https://echo.msk.ru/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" } ``` ## Ello As of 06.09.2022, Ello is now behind CloudFlare ```json "Ello": { "errorMsg": "We couldn't find the page you're looking for", "errorType": "message", "url": "https://ello.co/{}", "urlMain": "https://ello.co/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" } ``` ## GitHub Support Community As of 06.09.2022, GitHub Support Community's endpoint just redirects to the main community page ```json "GitHub Support Community": { "errorMsg": "Oops! That page doesn\u2019t exist or is private.", "errorType": "message", "url": "https://github.community/u/{}/summary", "urlMain": "https://github.community", "username_claimed": "jperl", "username_unclaimed": "noonewouldusethis298" } ``` ## GuruShots As of 08.09.2022, GuruShots returns false positives because it just returns a blank page. Need to look further into it so that it can be added back. ```json "GuruShots": { "errorType": "status_code", "url": "https://gurushots.com/{}/photos", "urlMain": "https://gurushots.com/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## Google Developer As of 09.10.2022, Google Developer returns false positives. The site is dynamic so we're not abl to get any proper results ```json "Google Developer": { "errorMsg": "Sorry, the profile was not found.", "errorType": "message", "url": "https://g.dev/{}", "urlMain": "https://g.dev/", "username_claimed": "blue", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## mastodon.technology As of 18.12.2022, mastodon.technology has no A/AAAA records and the [website was shut down by the owner](https://ashfurrow.com/blog/mastodon-technology-shutdown/). ```json "mastodon.technology": { "errorType": "status_code", "url": "https://mastodon.technology/@{}", "urlMain": "https://mastodon.xyz/", "username_claimed": "ashfurrow", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## Aruino As of 04.02.2023, Arduino returns false positives. Finding a fix is doable but takes some time. Will be fixed later ```json "Arduino": { "errorMsg":"Arduino Cloud", "errorType": "message", "regexCheck": "^(?![_-])[A-Za-z0-9_-]{3,}$", "url": "https://projecthub.arduino.cc/{}", "urlMain": "https://www.arduino.cc/", "username_claimed": "blue", "username_unclaimed": "noonewould" }, ``` ## Zoomit As of 04.02.2023, Zoomit return false positves. An attempt at finding a fix was made but a lot of time was used without luck. Therefore, it wont be prioritized at the moment. ```json "zoomit": { "errorMsg": "\u0645\u062a\u0627\u0633\u0641\u0627\u0646\u0647 \u0635\u0641\u062d\u0647 \u06cc\u0627\u0641\u062a \u0646\u0634\u062f", "errorType": "message", "url": "https://www.zoomit.ir/user/{}", "urlMain": "https://www.zoomit.ir", "username_claimed": "kossher", "username_unclaimed": "noonewouldeverusethis7" }, ``` ## Facebook As of 04.02.2023, Facebook returns false positives because we get prompted with the login screen to view the data ```json "Facebook": { "errorType": "status_code", "regexCheck": "^[a-zA-Z0-9\\.]{3,49}(?Tinder | Dating, Make Friends & Meet New People", "Tinder | Match. Chat. Date." ], "errorType": "message", "url": "https://www.tinder.com/@{}", "urlMain": "https://tinder.com/", "username_claimed": "blue" }, ``` ## Coil As of 2023.03.15, Coil has been discontinued. All accounts were deleted and any requests return a 404. ```json "Coil": { "errorMsg": "User not found", "errorType": "message", "request_method": "POST", "request_payload": { "operationName": "getCreator", "query": "query getCreator($userShortName:String!){getCreator(userShortName:$userShortName){id}}", "variables": { "userShortName": "{}" } }, "url": "https://coil.com/u/{}", "urlMain": "https://coil.com/", "urlProbe": "https://coil.com/gateway", "username_claimed": "adam" } ``` ## OnlyFans As of 2023.04.20, OnlyFans returns false negatives on checking usernames with the API endpoint and directly through their website. ```json "OnlyFans": { "errorType": "status_code", "isNSFW": true, "url": "https://onlyfans.com/{}", "urlMain": "https://onlyfans.com/", "urlProbe": "https://onlyfans.com/api2/v2/users/{}", "username_claimed": "theemilylynne" } ``` ## OK As of 2023.04.21, Ok.ru returns false positives ```json "OK": { "errorType": "status_code", "regexCheck": "^[a-zA-Z][a-zA-Z0-9_.-]*$", "url": "https://ok.ru/{}", "urlMain": "https://ok.ru/", "username_claimed": "ok" } ``` ## ForumhouseRU As of 2023.04.21, ForumhouseRU returns false positives ```json "forumhouseRU": { "errorMsg": "\u0423\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u0434\u0440\u0443\u0433\u043e\u0435 \u0438\u043c\u044f.", "errorType": "message", "url": "https://www.forumhouse.ru/members/?username={}", "urlMain": "https://www.forumhouse.ru/", "username_claimed": "red" } ``` ## Enjin As of 2023.08.29, Enjin has closed down. ```json "Enjin": { "errorMsg": "Yikes, there seems to have been an error. We've taken note and will check out the problem right away!", "errorType": "message", "url": "https://www.enjin.com/profile/{}", "urlMain": "https://www.enjin.com/", "username_claimed": "blue" }, ``` ## IRL As of 2023.08.29, IRL has shut down ```json "IRL": { "errorType": "status_code", "url": "https://www.irl.com/{}", "urlMain": "https://www.irl.com/", "username_claimed": "hacker" } ``` ## Munzee As of 2023.08.29, Munzee requires us to be logged into the site in order to check if a user exists or not ```json "Munzee": { "errorType": "status_code", "url": "https://www.munzee.com/m/{}", "urlMain": "https://www.munzee.com/", "username_claimed": "blue" } ``` ## Quizlet As of 2023.08.29 Quizlet requires us to enable JavaScript to check if a user exsits on the website ```json "Quizlet": { "errorMsg": "Page Unavailable", "errorType": "message", "url": "https://quizlet.com/{}", "urlMain": "https://quizlet.com", "username_claimed": "blue" } ``` ## GunsAndAmmo As of 2023.08.29, GunsAndAmmo responds with 404 from time to time ```json "GunsAndAmmo": { "errorType": "status_code", "url": "https://forums.gunsandammo.com/profile/{}", "urlMain": "https://gunsandammo.com/", "username_claimed": "adam" } ``` ## TikTok As of 2023.12.21, TikTok returns false positives. This is because the webpage returns a somewhat blank page. This prevents us from being able to check for the existence of usernames. Proxitok does not work either. ```json "TikTok": { "errorType": "status_code", "url": "https://tiktok.com/@{}", "urlMain": "https://tiktok.com/", "username_claimed": "red" }, ``` ## Lolchess As of 2023.12.21, Lolchess returns false positives. ```json "Lolchess": { "errorMsg": "No search results", "errorType": "message", "url": "https://lolchess.gg/profile/na/{}", "urlMain": "https://lolchess.gg/", "username_claimed": "blue" }, ``` ## Virgool As of 2023.12.21, Virgool returns false positives. ```json "Virgool": { "errorMsg": "\u06f4\u06f0\u06f4", "errorType": "message", "url": "https://virgool.io/@{}", "urlMain": "https://virgool.io/", "username_claimed": "blue" }, ``` ## Whonix Forum As of 2023.12.21, Whonix Forum returns false positives. ```json "Whonix Forum": { "errorType": "status_code", "url": "https://forums.whonix.org/u/{}/summary", "urlMain": "https://forums.whonix.org/", "username_claimed": "red" }, ``` ## Ebio As of 2023.12.21, Ebio returns false positives. ```json "ebio.gg": { "errorType": "status_code", "url": "https://ebio.gg/{}", "urlMain": "https:/ebio.gg", "username_claimed": "dev" }, ``` ## HexRPG __2024-04-07 :__ HexRPG behind authentication wall. Unable to check usernames without logging in. ```json "HexRPG": { "errorMsg": "Error : User ", "errorType": "message", "regexCheck": "^[a-zA-Z0-9_ ]{3,20}$", "url": "https://www.hexrpg.com/userinfo/{}", "urlMain": "https://www.hexrpg.com/", "username_claimed": "blue" } ``` ## Oracle Communities __2024-04-07 :__ Oracle Communities behind authentication wall. Unable to check usernames without logging in. ```json "Oracle Communities": { "errorType": "status_code", "url": "https://community.oracle.com/people/{}", "urlMain": "https://community.oracle.com", "username_claimed": "dev" } ``` ## Metacritic __2024-04-07 :__ Non-existent users seemingly displayed as real users with no activity. Needs adjustment. ```json "metacritic": { "errorMsg": "User not found", "errorType": "message", "regexCheck": "^(?![-_].)[A-Za-z0-9-_]{3,15}$", "url": "https://www.metacritic.com/user/{}", "urlMain": "https://www.metacritic.com/", "username_claimed": "blue" } ``` ## G2G __2024-04-10 :__ Seems to be loading profiles with some wierd javascript setup that sherlock doesn't like, leading to difficult to control false positives ```json "G2G": { "errorType": "response_url", "errorUrl": "https://www.g2g.com/{}", "regexCheck": "^[A-Za-z][A-Za-z0-9_]{2,11}$", "url": "https://www.g2g.com/{}", "urlMain": "https://www.g2g.com/", "username_claimed": "user" } ``` ## Bitcoin Forum __2024-04-24 :__ BCF seems to have gone defunct. Uncertain. ```json "BitCoinForum": { "errorMsg": "The user whose profile you are trying to view does not exist.", "errorType": "message", "url": "https://bitcoinforum.com/profile/{}", "urlMain": "https://bitcoinforum.com", "username_claimed": "bitcoinforum.com" } ``` ## Zhihu As of 24.06.2024, Zhihu returns false positives as they obfuscate the code thats returned. Checking for patterns may allow us to find a way to detect the existans of a user, this will be need to be worked on later ```json "Zhihu": { "errorMsg": "用户不存在", "errorType": "message", "url": "https://www.zhihu.com/people/{}", "urlMain": "https://www.zhihu.com/", "username_claimed": "blue" } ``` ## Penetestit As of 24.06.2024, Pentestit returns a 403. This is most likely due to a new site structures ```json "labpentestit": { "errorType": "response_url", "errorUrl": "https://lab.pentestit.ru/{}", "url": "https://lab.pentestit.ru/profile/{}", "urlMain": "https://lab.pentestit.ru/", "username_claimed": "CSV" } ``` ## Euw __2024-06-09 :__ errorMsg detection doesn't work anymore, because the error message is included in HTTP request body, even in successful search ```json "Euw": { "errorMsg": "This summoner is not registered at OP.GG. Please check spelling.", "errorType": "message", "url": "https://euw.op.gg/summoner/userName={}", "urlMain": "https://euw.op.gg/", "username_claimed": "blue" } ``` ## Etsy __2024-06-10 :__ Http request returns 403 forbidden, and tries to verify the connection, so it doesn't work anymore ```json "Etsy": { "errorType": "status_code", "url": "https://www.etsy.com/shop/{}", "urlMain": "https://www.etsy.com/", "username_claimed": "JennyKrafts" } ``` sherlock-0.15.0/pyproject.toml000066400000000000000000000033511464273343400163370ustar00rootroot00000000000000[build-system] requires = [ "poetry-core>=1.2.0" ] build-backend = "poetry.core.masonry.api" # poetry-core 1.8 not available in .fc39. Can upgrade to 1.8.0 at .fc39 EOL [tool.poetry-version-plugin] source = "init" [tool.poetry] name = "sherlock-project" # single source of truth for version is __init__.py version = "0" description = "Hunt down social media accounts by username across social networks" license = "MIT" authors = [ "Siddharth Dushantha " ] maintainers = [ "Paul Pfeister ", "Matheus Felipe ", "Sondre Karlsen Dyrnes " ] readme = "docs/pyproject/README.md" packages = [ { include = "sherlock_project"} ] keywords = [ "osint", "reconnaissance", "information gathering" ] classifiers = [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Topic :: Security" ] homepage = "https://sherlockproject.xyz/" repository = "https://github.com/sherlock-project/sherlock" [tool.poetry.urls] "Bug Tracker" = "https://github.com/sherlock-project/sherlock/issues" [tool.poetry.dependencies] python = "^3.8" certifi = ">=2019.6.16" colorama = "^0.4.1" PySocks = "^1.7.0" requests = "^2.22.0" requests-futures = "^1.0.0" stem = "^1.8.0" torrequest = "^0.1.0" # pandas can likely be bumped up to ^2.0.0 after fc39 EOL pandas = ">=1.0.0,<3.0.0" openpyxl = "^3.0.10" [tool.poetry.extras] tor = ["torrequest"] [tool.poetry.group.dev.dependencies] jsonschema = "^4.0.0" [tool.poetry.scripts] sherlock = 'sherlock_project.sherlock:main' sherlock-0.15.0/pytest.ini000066400000000000000000000001441464273343400154510ustar00rootroot00000000000000[pytest] addopts = --strict-markers markers = online: mark tests are requiring internet access. sherlock-0.15.0/sherlock/000077500000000000000000000000001464273343400152335ustar00rootroot00000000000000sherlock-0.15.0/sherlock/resources/000077500000000000000000000000001464273343400172455ustar00rootroot00000000000000sherlock-0.15.0/sherlock/resources/data.json000066400000000000000000002524621464273343400210640ustar00rootroot00000000000000{ "$schema": "data.schema.json", "1337x": { "errorMsg": [ "Error something went wrong.", "404 Not Found" ], "errorType": "message", "regexCheck": "^[A-Za-z0-9]{4,12}$", "url": "https://www.1337x.to/user/{}/", "urlMain": "https://www.1337x.to/", "username_claimed": "FitGirl" }, "2Dimensions": { "errorType": "status_code", "url": "https://2Dimensions.com/a/{}", "urlMain": "https://2Dimensions.com/", "username_claimed": "blue" }, "3dnews": { "errorMsg": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u0438 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043f\u0440\u043e\u0444\u0438\u043b\u044f \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430.", "errorType": "message", "url": "http://forum.3dnews.ru/member.php?username={}", "urlMain": "http://forum.3dnews.ru/", "username_claimed": "red" }, "7Cups": { "errorType": "status_code", "url": "https://www.7cups.com/@{}", "urlMain": "https://www.7cups.com/", "username_claimed": "blue" }, "8tracks": { "errorMsg": "This page has vanished", "errorType": "message", "url": "https://8tracks.com/{}", "urlMain": "https://8tracks.com/", "username_claimed": "blue" }, "9GAG": { "errorType": "status_code", "url": "https://www.9gag.com/u/{}", "urlMain": "https://www.9gag.com/", "username_claimed": "blue" }, "APClips": { "errorMsg": "Amateur Porn Content Creators", "errorType": "message", "isNSFW": true, "url": "https://apclips.com/{}", "urlMain": "https://apclips.com/", "username_claimed": "onlybbyraq" }, "About.me": { "errorType": "status_code", "url": "https://about.me/{}", "urlMain": "https://about.me/", "username_claimed": "blue" }, "Academia.edu": { "errorType": "status_code", "regexCheck": "^[^.]*$", "url": "https://independent.academia.edu/{}", "urlMain": "https://www.academia.edu/", "username_claimed": "blue" }, "AdmireMe.Vip": { "errorMsg": "Page Not Found", "errorType": "message", "isNSFW": true, "url": "https://admireme.vip/{}", "urlMain": "https://admireme.vip/", "username_claimed": "DemiDevil" }, "Air Pilot Life": { "errorMsg": "Oops! That page doesn\u2019t exist or is private", "errorType": "message", "url": "https://airlinepilot.life/u/{}", "urlMain": "https://airlinepilot.life/", "username_claimed": "chris" }, "Airbit": { "errorType": "status_code", "url": "https://airbit.com/{}", "urlMain": "https://airbit.com/", "username_claimed": "airbit" }, "Airliners": { "errorType": "status_code", "url": "https://www.airliners.net/user/{}/profile/photos", "urlMain": "https://www.airliners.net/", "username_claimed": "yushinlin" }, "Alik.cz": { "errorType": "status_code", "url": "https://www.alik.cz/u/{}", "urlMain": "https://www.alik.cz/", "username_claimed": "julian" }, "All Things Worn": { "errorMsg": "Sell Used Panties", "errorType": "message", "isNSFW": true, "url": "https://www.allthingsworn.com/profile/{}", "urlMain": "https://www.allthingsworn.com", "username_claimed": "pink" }, "AllMyLinks": { "errorMsg": "Not Found", "errorType": "message", "regexCheck": "^[a-z0-9][a-z0-9-]{2,32}$", "url": "https://allmylinks.com/{}", "urlMain": "https://allmylinks.com/", "username_claimed": "blue" }, "Amino": { "errorType": "status_code", "url": "https://aminoapps.com/u/{}", "urlMain": "https://aminoapps.com", "username_claimed": "blue" }, "AniWorld": { "errorMsg": "Dieses Profil ist nicht verf\u00fcgbar", "errorType": "message", "url": "https://aniworld.to/user/profil/{}", "urlMain": "https://aniworld.to/", "username_claimed": "blue" }, "Anilist": { "errorType": "status_code", "regexCheck": "^[A-Za-z0-9]{2,20}$", "request_method": "POST", "request_payload": { "query": "query($name:String){User(name:$name){id}}", "variables": { "name": "{}" } }, "url": "https://anilist.co/user/{}/", "urlMain": "https://anilist.co/", "urlProbe": "https://graphql.anilist.co/", "username_claimed": "Josh" }, "Apple Developer": { "errorType": "status_code", "url": "https://developer.apple.com/forums/profile/{}", "urlMain": "https://developer.apple.com", "username_claimed": "lio24d" }, "Apple Discussions": { "errorMsg": "The page you tried was not found. You may have used an outdated link or may have typed the address (URL) incorrectly.", "errorType": "message", "url": "https://discussions.apple.com/profile/{}", "urlMain": "https://discussions.apple.com", "username_claimed": "jason" }, "Archive of Our Own": { "errorType": "status_code", "regexCheck": "^[^.]*?$", "url": "https://archiveofourown.org/users/{}", "urlMain": "https://archiveofourown.org/", "username_claimed": "test" }, "Archive.org": { "__comment__": "'The resource could not be found' relates to archive downtime", "errorMsg": [ "could not fetch an account with user item identifier", "The resource could not be found" ], "errorType": "message", "url": "https://archive.org/details/@{}", "urlMain": "https://archive.org", "urlProbe": "https://archive.org/details/@{}?noscript=true", "username_claimed": "blue" }, "ArtStation": { "errorType": "status_code", "url": "https://www.artstation.com/{}", "urlMain": "https://www.artstation.com/", "username_claimed": "Blue" }, "Asciinema": { "errorType": "status_code", "url": "https://asciinema.org/~{}", "urlMain": "https://asciinema.org", "username_claimed": "red" }, "Ask Fedora": { "errorType": "status_code", "url": "https://ask.fedoraproject.org/u/{}", "urlMain": "https://ask.fedoraproject.org/", "username_claimed": "red" }, "AskFM": { "errorMsg": "Well, apparently not anymore.", "errorType": "message", "regexCheck": "^[a-zA-Z0-9_]{3,40}$", "url": "https://ask.fm/{}", "urlMain": "https://ask.fm/", "username_claimed": "blue" }, "Audiojungle": { "errorType": "status_code", "regexCheck": "^[a-zA-Z0-9_]+$", "url": "https://audiojungle.net/user/{}", "urlMain": "https://audiojungle.net/", "username_claimed": "blue" }, "Autofrage": { "errorType": "status_code", "url": "https://www.autofrage.net/nutzer/{}", "urlMain": "https://www.autofrage.net/", "username_claimed": "autofrage" }, "Avizo": { "errorType": "response_url", "errorUrl": "https://www.avizo.cz/", "url": "https://www.avizo.cz/{}/", "urlMain": "https://www.avizo.cz/", "username_claimed": "blue" }, "BLIP.fm": { "errorType": "status_code", "regexCheck": "^[a-zA-Z0-9_]{1,30}$", "url": "https://blip.fm/{}", "urlMain": "https://blip.fm/", "username_claimed": "blue" }, "BOOTH": { "errorType": "response_url", "errorUrl": "https://booth.pm/", "regexCheck": "^[a-zA-Z0-9@_-]$", "url": "https://{}.booth.pm/", "urlMain": "https://booth.pm/", "username_claimed": "blue" }, "Bandcamp": { "errorType": "status_code", "url": "https://www.bandcamp.com/{}", "urlMain": "https://www.bandcamp.com/", "username_claimed": "blue" }, "Bazar.cz": { "errorType": "response_url", "errorUrl": "https://www.bazar.cz/error404.aspx", "url": "https://www.bazar.cz/{}/", "urlMain": "https://www.bazar.cz/", "username_claimed": "pianina" }, "Behance": { "errorType": "status_code", "url": "https://www.behance.net/{}", "urlMain": "https://www.behance.net/", "username_claimed": "blue" }, "Bezuzyteczna": { "errorType": "status_code", "url": "https://bezuzyteczna.pl/uzytkownicy/{}", "urlMain": "https://bezuzyteczna.pl", "username_claimed": "Jackson" }, "BiggerPockets": { "errorType": "status_code", "url": "https://www.biggerpockets.com/users/{}", "urlMain": "https://www.biggerpockets.com/", "username_claimed": "blue" }, "Bikemap": { "errorType": "status_code", "url": "https://www.bikemap.net/en/u/{}/routes/created/", "urlMain": "https://www.bikemap.net/", "username_claimed": "bikemap" }, "BioHacking": { "errorType": "status_code", "url": "https://forum.dangerousthings.com/u/{}", "urlMain": "https://forum.dangerousthings.com/", "username_claimed": "blue" }, "BitBucket": { "errorType": "status_code", "regexCheck": "^[a-zA-Z0-9-_]{1,30}$", "url": "https://bitbucket.org/{}/", "urlMain": "https://bitbucket.org/", "username_claimed": "white" }, "Bitwarden Forum": { "errorType": "status_code", "regexCheck": "^(?![.-])[a-zA-Z0-9_.-]{3,20}$", "url": "https://community.bitwarden.com/u/{}/summary", "urlMain": "https://bitwarden.com/", "username_claimed": "blue" }, "Blipfoto": { "errorType": "status_code", "url": "https://www.blipfoto.com/{}", "urlMain": "https://www.blipfoto.com/", "username_claimed": "blue" }, "Blogger": { "errorType": "status_code", "regexCheck": "^[a-zA-Z][a-zA-Z0-9_-]*$", "url": "https://{}.blogspot.com", "urlMain": "https://www.blogger.com/", "username_claimed": "blue" }, "BodyBuilding": { "errorType": "response_url", "errorUrl": "https://bodyspace.bodybuilding.com/", "url": "https://bodyspace.bodybuilding.com/{}", "urlMain": "https://bodyspace.bodybuilding.com/", "username_claimed": "blue" }, "BongaCams": { "errorType": "status_code", "isNSFW": true, "url": "https://pt.bongacams.com/profile/{}", "urlMain": "https://pt.bongacams.com", "username_claimed": "asuna-black" }, "Bookcrossing": { "errorType": "status_code", "url": "https://www.bookcrossing.com/mybookshelf/{}/", "urlMain": "https://www.bookcrossing.com/", "username_claimed": "blue" }, "BraveCommunity": { "errorType": "status_code", "url": "https://community.brave.com/u/{}/", "urlMain": "https://community.brave.com/", "username_claimed": "blue" }, "BugCrowd": { "errorType": "status_code", "url": "https://bugcrowd.com/{}", "urlMain": "https://bugcrowd.com/", "username_claimed": "ppfeister" }, "BuyMeACoffee": { "errorType": "status_code", "regexCheck": "[a-zA-Z0-9]{3,15}", "url": "https://buymeacoff.ee/{}", "urlMain": "https://www.buymeacoffee.com/", "urlProbe": "https://www.buymeacoffee.com/{}", "username_claimed": "red" }, "BuzzFeed": { "errorType": "status_code", "url": "https://buzzfeed.com/{}", "urlMain": "https://buzzfeed.com/", "username_claimed": "blue" }, "CGTrader": { "errorType": "status_code", "regexCheck": "^[^.]*?$", "url": "https://www.cgtrader.com/{}", "urlMain": "https://www.cgtrader.com", "username_claimed": "blue" }, "CNET": { "errorType": "status_code", "regexCheck": "^[a-z].*$", "url": "https://www.cnet.com/profiles/{}/", "urlMain": "https://www.cnet.com/", "username_claimed": "melliott" }, "CSSBattle": { "errorType": "status_code", "url": "https://cssbattle.dev/player/{}", "urlMain": "https://cssbattle.dev", "username_claimed": "beo" }, "CTAN": { "errorType": "status_code", "url": "https://ctan.org/author/{}", "urlMain": "https://ctan.org/", "username_claimed": "briggs" }, "Caddy Community": { "errorType": "status_code", "url": "https://caddy.community/u/{}/summary", "urlMain": "https://caddy.community/", "username_claimed": "taako_magnusen" }, "Car Talk Community": { "errorType": "status_code", "url": "https://community.cartalk.com/u/{}/summary", "urlMain": "https://community.cartalk.com/", "username_claimed": "always_fixing" }, "Carbonmade": { "errorType": "response_url", "errorUrl": "https://carbonmade.com/fourohfour?domain={}.carbonmade.com", "regexCheck": "^[a-zA-Z0-9@_-]$", "url": "https://{}.carbonmade.com", "urlMain": "https://carbonmade.com/", "username_claimed": "jenny" }, "Career.habr": { "errorMsg": "

\u041e\u0448\u0438\u0431\u043a\u0430 404

", "errorType": "message", "url": "https://career.habr.com/{}", "urlMain": "https://career.habr.com/", "username_claimed": "blue" }, "Championat": { "errorType": "status_code", "url": "https://www.championat.com/user/{}", "urlMain": "https://www.championat.com/", "username_claimed": "blue" }, "Chaos": { "errorType": "status_code", "url": "https://chaos.social/@{}", "urlMain": "https://chaos.social/", "username_claimed": "ordnung" }, "Chatujme.cz": { "errorMsg": "Neexistujic\u00ed profil", "errorType": "message", "regexCheck": "^[a-zA-Z][a-zA-Z1-9_-]*$", "url": "https://profil.chatujme.cz/{}", "urlMain": "https://chatujme.cz/", "username_claimed": "david" }, "ChaturBate": { "errorType": "status_code", "isNSFW": true, "url": "https://chaturbate.com/{}", "urlMain": "https://chaturbate.com", "username_claimed": "cute18cute" }, "Chess": { "errorMsg": "Username is valid", "errorType": "message", "regexCheck": "^[a-z1-9]{3,25}$", "url": "https://www.chess.com/member/{}", "urlMain": "https://www.chess.com/", "urlProbe": "https://www.chess.com/callback/user/valid?username={}", "username_claimed": "blue" }, "Choice Community": { "errorType": "status_code", "url": "https://choice.community/u/{}/summary", "urlMain": "https://choice.community/", "username_claimed": "gordon" }, "Clapper": { "errorType": "status_code", "url": "https://clapperapp.com/{}", "urlMain": "https://clapperapp.com/", "username_claimed": "blue" }, "CloudflareCommunity": { "errorType": "status_code", "url": "https://community.cloudflare.com/u/{}", "urlMain": "https://community.cloudflare.com/", "username_claimed": "blue" }, "Clozemaster": { "errorMsg": "Oh no! Player not found.", "errorType": "message", "url": "https://www.clozemaster.com/players/{}", "urlMain": "https://www.clozemaster.com", "username_claimed": "green" }, "Clubhouse": { "errorType": "status_code", "url": "https://www.clubhouse.com/@{}", "urlMain": "https://www.clubhouse.com", "username_claimed": "waniathar" }, "Code Snippet Wiki": { "errorMsg": "This user has not filled out their profile page yet", "errorType": "message", "url": "https://codesnippets.fandom.com/wiki/User:{}", "urlMain": "https://codesnippets.fandom.com", "username_claimed": "bob" }, "Codeberg": { "errorType": "status_code", "url": "https://codeberg.org/{}", "urlMain": "https://codeberg.org/", "username_claimed": "blue" }, "Codecademy": { "errorMsg": "This profile could not be found", "errorType": "message", "url": "https://www.codecademy.com/profiles/{}", "urlMain": "https://www.codecademy.com/", "username_claimed": "blue" }, "Codechef": { "errorType": "response_url", "errorUrl": "https://www.codechef.com/", "url": "https://www.codechef.com/users/{}", "urlMain": "https://www.codechef.com/", "username_claimed": "blue" }, "Codeforces": { "errorType": "status_code", "url": "https://codeforces.com/profile/{}", "urlMain": "https://codeforces.com/", "urlProbe": "https://codeforces.com/api/user.info?handles={}", "username_claimed": "tourist" }, "Codepen": { "errorType": "status_code", "url": "https://codepen.io/{}", "urlMain": "https://codepen.io/", "username_claimed": "blue" }, "Coders Rank": { "errorMsg": "not a registered member", "errorType": "message", "regexCheck": "^[a-zA-Z0-9](?:[a-zA-Z0-9]|-(?=[a-zA-Z0-9])){0,38}$", "url": "https://profile.codersrank.io/user/{}/", "urlMain": "https://codersrank.io/", "username_claimed": "rootkit7628" }, "Coderwall": { "errorType": "status_code", "url": "https://coderwall.com/{}", "urlMain": "https://coderwall.com", "username_claimed": "hacker" }, "Codewars": { "errorType": "status_code", "url": "https://www.codewars.com/users/{}", "urlMain": "https://www.codewars.com", "username_claimed": "example" }, "Coinvote": { "errorType": "status_code", "url": "https://coinvote.cc/profile/{}", "urlMain": "https://coinvote.cc/", "username_claimed": "blue" }, "ColourLovers": { "errorType": "status_code", "url": "https://www.colourlovers.com/lover/{}", "urlMain": "https://www.colourlovers.com/", "username_claimed": "blue" }, "Contently": { "errorType": "response_url", "errorUrl": "https://contently.com", "regexCheck": "^[a-zA-Z][a-zA-Z0-9_-]*$", "url": "https://{}.contently.com/", "urlMain": "https://contently.com/", "username_claimed": "jordanteicher" }, "Coroflot": { "errorType": "status_code", "url": "https://www.coroflot.com/{}", "urlMain": "https://coroflot.com/", "username_claimed": "blue" }, "Cracked": { "errorType": "response_url", "errorUrl": "https://www.cracked.com/", "url": "https://www.cracked.com/members/{}/", "urlMain": "https://www.cracked.com/", "username_claimed": "blue" }, "Crevado": { "errorType": "status_code", "regexCheck": "^[a-zA-Z0-9@_-]$", "url": "https://{}.crevado.com", "urlMain": "https://crevado.com/", "username_claimed": "blue" }, "Crowdin": { "errorType": "status_code", "regexCheck": "^[a-zA-Z0-9._-]{2,255}$", "url": "https://crowdin.com/profile/{}", "urlMain": "https://crowdin.com/", "username_claimed": "blue" }, "Cryptomator Forum": { "errorType": "status_code", "url": "https://community.cryptomator.org/u/{}", "urlMain": "https://community.cryptomator.org/", "username_claimed": "michael" }, "Cults3D": { "errorMsg": "Oh dear, this page is not working!", "errorType": "message", "url": "https://cults3d.com/en/users/{}/creations", "urlMain": "https://cults3d.com/en", "username_claimed": "brown" }, "CyberDefenders": { "errorMsg": "Blue Team Training for SOC analysts and DFIR - CyberDefenders", "errorType": "message", "regexCheck": "^[^\\/:*?\"<>|@]{3,50}$", "request_method": "GET", "url": "https://cyberdefenders.org/p/{}", "urlMain": "https://cyberdefenders.org/", "username_claimed": "mlohn" }, "DEV Community": { "errorType": "status_code", "regexCheck": "^[a-zA-Z][a-zA-Z0-9_-]*$", "url": "https://dev.to/{}", "urlMain": "https://dev.to/", "username_claimed": "blue" }, "DMOJ": { "errorMsg": "No such user", "errorType": "message", "url": "https://dmoj.ca/user/{}", "urlMain": "https://dmoj.ca/", "username_claimed": "junferno" }, "DailyMotion": { "errorType": "status_code", "url": "https://www.dailymotion.com/{}", "urlMain": "https://www.dailymotion.com/", "username_claimed": "blue" }, "Dealabs": { "errorMsg": "La page que vous essayez", "errorType": "message", "regexCheck": "[a-z0-9]{4,16}", "url": "https://www.dealabs.com/profile/{}", "urlMain": "https://www.dealabs.com/", "username_claimed": "blue" }, "DeviantART": { "errorType": "status_code", "regexCheck": "^[a-zA-Z][a-zA-Z0-9_-]*$", "url": "https://{}.deviantart.com", "urlMain": "https://deviantart.com", "username_claimed": "blue" }, "Discogs": { "errorType": "status_code", "url": "https://www.discogs.com/user/{}", "urlMain": "https://www.discogs.com/", "username_claimed": "blue" }, "Discuss.Elastic.co": { "errorType": "status_code", "url": "https://discuss.elastic.co/u/{}", "urlMain": "https://discuss.elastic.co/", "username_claimed": "blue" }, "Disqus": { "errorType": "status_code", "url": "https://disqus.com/{}", "urlMain": "https://disqus.com/", "username_claimed": "blue" }, "Docker Hub": { "errorType": "status_code", "url": "https://hub.docker.com/u/{}/", "urlMain": "https://hub.docker.com/", "urlProbe": "https://hub.docker.com/v2/users/{}/", "username_claimed": "blue" }, "Dribbble": { "errorMsg": "Whoops, that page is gone.", "errorType": "message", "regexCheck": "^[a-zA-Z][a-zA-Z0-9_-]*$", "url": "https://dribbble.com/{}", "urlMain": "https://dribbble.com/", "username_claimed": "blue" }, "Duolingo": { "errorMsg": "{\"users\":[]}", "errorType": "message", "headers": { "User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/116.0" }, "url": "https://www.duolingo.com/profile/{}", "urlMain": "https://duolingo.com/", "urlProbe": "https://www.duolingo.com/2017-06-30/users?username={}", "username_claimed": "blue" }, "Eintracht Frankfurt Forum": { "errorType": "status_code", "regexCheck": "^[^.]*?$", "url": "https://community.eintracht.de/fans/{}", "urlMain": "https://community.eintracht.de/", "username_claimed": "mmammu" }, "Envato Forum": { "errorType": "status_code", "url": "https://forums.envato.com/u/{}", "urlMain": "https://forums.envato.com/", "username_claimed": "enabled" }, "Erome": { "errorType": "status_code", "isNSFW": true, "url": "https://www.erome.com/{}", "urlMain": "https://www.erome.com/", "username_claimed": "bob" }, "Exposure": { "errorType": "status_code", "url": "https://{}.exposure.co/", "urlMain": "https://exposure.co/", "username_claimed": "jonasjacobsson" }, "EyeEm": { "errorType": "status_code", "url": "https://www.eyeem.com/u/{}", "urlMain": "https://www.eyeem.com/", "username_claimed": "blue" }, "F3.cool": { "errorType": "status_code", "url": "https://f3.cool/{}/", "urlMain": "https://f3.cool/", "username_claimed": "blue" }, "Fameswap": { "errorType": "status_code", "url": "https://fameswap.com/user/{}", "urlMain": "https://fameswap.com/", "username_claimed": "fameswap" }, "Fandom": { "errorType": "status_code", "url": "https://www.fandom.com/u/{}", "urlMain": "https://www.fandom.com/", "username_claimed": "Jungypoo" }, "Finanzfrage": { "errorType": "status_code", "url": "https://www.finanzfrage.net/nutzer/{}", "urlMain": "https://www.finanzfrage.net/", "username_claimed": "finanzfrage" }, "Fiverr": { "errorMsg": "\"status\":\"success\"", "errorType": "message", "regexCheck": "^[A-Za-z][A-Za-z\\d_]{5,14}$", "request_method": "POST", "request_payload": { "username": "{}" }, "url": "https://www.fiverr.com/{}", "urlMain": "https://www.fiverr.com/", "urlProbe": "https://www.fiverr.com/validate_username", "username_claimed": "blueman" }, "Flickr": { "errorType": "status_code", "url": "https://www.flickr.com/people/{}", "urlMain": "https://www.flickr.com/", "username_claimed": "blue" }, "Flightradar24": { "errorType": "status_code", "regexCheck": "^[a-zA-Z0-9_]{3,20}$", "url": "https://my.flightradar24.com/{}", "urlMain": "https://www.flightradar24.com/", "username_claimed": "jebbrooks" }, "Flipboard": { "errorType": "status_code", "regexCheck": "^([a-zA-Z0-9_]){1,15}$", "url": "https://flipboard.com/@{}", "urlMain": "https://flipboard.com/", "username_claimed": "blue" }, "Football": { "errorMsg": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0441 \u0442\u0430\u043a\u0438\u043c \u0438\u043c\u0435\u043d\u0435\u043c \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d", "errorType": "message", "url": "https://www.rusfootball.info/user/{}/", "urlMain": "https://www.rusfootball.info/", "username_claimed": "solo87" }, "FortniteTracker": { "errorType": "status_code", "url": "https://fortnitetracker.com/profile/all/{}", "urlMain": "https://fortnitetracker.com/challenges", "username_claimed": "blue" }, "Forum Ophilia": { "errorMsg": "that user does not exist", "errorType": "message", "isNSFW": true, "url": "https://www.forumophilia.com/profile.php?mode=viewprofile&u={}", "urlMain": "https://www.forumophilia.com/", "username_claimed": "bob" }, "Fosstodon": { "errorType": "status_code", "regexCheck": "^[a-zA-Z0-9_]{1,30}$", "url": "https://fosstodon.org/@{}", "urlMain": "https://fosstodon.org/", "username_claimed": "blue" }, "Freelance.habr": { "errorMsg": "
", "errorType": "message", "regexCheck": "^((?!\\.).)*$", "url": "https://freelance.habr.com/freelancers/{}", "urlMain": "https://freelance.habr.com/", "username_claimed": "adam" }, "Freelancer": { "errorMsg": "\"users\":{}", "errorType": "message", "url": "https://www.freelancer.com/u/{}", "urlMain": "https://www.freelancer.com/", "urlProbe": "https://www.freelancer.com/api/users/0.1/users?usernames%5B%5D={}&compact=true", "username_claimed": "red0xff" }, "Freesound": { "errorType": "status_code", "url": "https://freesound.org/people/{}/", "urlMain": "https://freesound.org/", "username_claimed": "blue" }, "GNOME VCS": { "errorType": "response_url", "errorUrl": "https://gitlab.gnome.org/{}", "regexCheck": "^(?!-)[a-zA-Z0-9_.-]{2,255}(?Web3\u2019s Largest Ethical Hackers Community | HackenProof", "errorType": "message", "regexCheck": "^[\\w-]{,34}$", "url": "https://hackenproof.com/hackers/{}", "urlMain": "https://hackenproof.com/", "username_claimed": "blazezaria" }, "HackerEarth": { "errorMsg": "404. URL not found.", "errorType": "message", "url": "https://hackerearth.com/@{}", "urlMain": "https://hackerearth.com/", "username_claimed": "naveennamani877" }, "HackerNews": { "__comment__": "First errMsg invalid, second errMsg rate limited. Not ideal. Adjust for better rate limit filtering.", "errorMsg": [ "No such user.", "Sorry." ], "errorType": "message", "url": "https://news.ycombinator.com/user?id={}", "urlMain": "https://news.ycombinator.com/", "username_claimed": "blue" }, "HackerOne": { "errorMsg": "Page not found", "errorType": "message", "url": "https://hackerone.com/{}", "urlMain": "https://hackerone.com/", "username_claimed": "stok" }, "HackerRank": { "errorMsg": "Something went wrong", "errorType": "message", "regexCheck": "^[^.]*?$", "url": "https://hackerrank.com/{}", "urlMain": "https://hackerrank.com/", "username_claimed": "satznova" }, "Harvard Scholar": { "errorType": "status_code", "url": "https://scholar.harvard.edu/{}", "urlMain": "https://scholar.harvard.edu/", "username_claimed": "ousmanekane" }, "Hashnode": { "errorType": "status_code", "url": "https://hashnode.com/@{}", "urlMain": "https://hashnode.com", "username_claimed": "blue" }, "Heavy-R": { "errorMsg": "Channel not found", "errorType": "message", "isNSFW": true, "url": "https://www.heavy-r.com/user/{}", "urlMain": "https://www.heavy-r.com/", "username_claimed": "kilroy222" }, "Holopin": { "errorMsg": "true", "errorType": "message", "request_method": "POST", "request_payload": { "username": "{}" }, "url": "https://holopin.io/@{}", "urlMain": "https://holopin.io", "urlProbe": "https://www.holopin.io/api/auth/username", "username_claimed": "red" }, "Houzz": { "errorMsg": "The page you requested was not found.", "errorType": "message", "url": "https://houzz.com/user/{}", "urlMain": "https://houzz.com/", "username_claimed": "blue" }, "HubPages": { "errorType": "status_code", "url": "https://hubpages.com/@{}", "urlMain": "https://hubpages.com/", "username_claimed": "blue" }, "Hubski": { "errorMsg": "No such user", "errorType": "message", "url": "https://hubski.com/user/{}", "urlMain": "https://hubski.com/", "username_claimed": "blue" }, "HudsonRock": { "errorMsg": "No results", "errorType": "message", "url": "https://cavalier.hudsonrock.com/api/json/v2/osint-tools/search-by-username?username={}", "urlMain": "https://hudsonrock.com", "username_claimed": "testadmin" }, "ICQ": { "errorType": "status_code", "url": "https://icq.im/{}/en", "urlMain": "https://icq.com/", "username_claimed": "Micheal" }, "IFTTT": { "errorType": "status_code", "regexCheck": "^[A-Za-z0-9]{3,35}$", "url": "https://www.ifttt.com/p/{}", "urlMain": "https://www.ifttt.com/", "username_claimed": "blue" }, "IRC-Galleria": { "errorType": "response_url", "errorUrl": "https://irc-galleria.net/users/search?username={}", "url": "https://irc-galleria.net/user/{}", "urlMain": "https://irc-galleria.net/", "username_claimed": "appas" }, "Icons8 Community": { "errorType": "status_code", "url": "https://community.icons8.com/u/{}/summary", "urlMain": "https://community.icons8.com/", "username_claimed": "thefourCraft" }, "Image Fap": { "errorMsg": "Not found", "errorType": "message", "isNSFW": true, "url": "https://www.imagefap.com/profile/{}", "urlMain": "https://www.imagefap.com/", "username_claimed": "blue" }, "ImgUp.cz": { "errorType": "status_code", "url": "https://imgup.cz/{}", "urlMain": "https://imgup.cz/", "username_claimed": "adam" }, "Imgur": { "errorType": "status_code", "url": "https://imgur.com/user/{}", "urlMain": "https://imgur.com/", "urlProbe": "https://api.imgur.com/account/v1/accounts/{}?client_id=546c25a59c58ad7", "username_claimed": "blue" }, "Instagram": { "errorType": "status_code", "url": "https://instagram.com/{}", "urlMain": "https://instagram.com/", "urlProbe": "https://www.picuki.com/profile/{}", "username_claimed": "instagram" }, "Instructables": { "errorType": "status_code", "url": "https://www.instructables.com/member/{}", "urlMain": "https://www.instructables.com/", "urlProbe": "https://www.instructables.com/json-api/showAuthorExists?screenName={}", "username_claimed": "blue" }, "Intigriti": { "errorType": "status_code", "regexCheck": "[a-z0-9_]{1,25}", "request_method": "GET", "url": "https://app.intigriti.com/profile/{}", "urlMain": "https://app.intigriti.com", "urlProbe": "https://api.intigriti.com/user/public/profile/{}", "username_claimed": "blue" }, "Ionic Forum": { "errorType": "status_code", "url": "https://forum.ionicframework.com/u/{}", "urlMain": "https://forum.ionicframework.com/", "username_claimed": "theblue222" }, "Issuu": { "errorType": "status_code", "url": "https://issuu.com/{}", "urlMain": "https://issuu.com/", "username_claimed": "jenny" }, "Itch.io": { "errorType": "status_code", "regexCheck": "^[a-zA-Z0-9@_-]$", "url": "https://{}.itch.io/", "urlMain": "https://itch.io/", "username_claimed": "blue" }, "Itemfix": { "errorMsg": "ItemFix - Channel: ", "errorType": "message", "url": "https://www.itemfix.com/c/{}", "urlMain": "https://www.itemfix.com/", "username_claimed": "blue" }, "Jellyfin Weblate": { "errorType": "status_code", "regexCheck": "^[a-zA-Z0-9@._-]{1,150}$", "url": "https://translate.jellyfin.org/user/{}/", "urlMain": "https://translate.jellyfin.org/", "username_claimed": "EraYaN" }, "Jimdo": { "errorType": "status_code", "regexCheck": "^[a-zA-Z0-9@_-]$", "url": "https://{}.jimdosite.com", "urlMain": "https://jimdosite.com/", "username_claimed": "jenny" }, "Joplin Forum": { "errorType": "status_code", "url": "https://discourse.joplinapp.org/u/{}", "urlMain": "https://discourse.joplinapp.org/", "username_claimed": "laurent" }, "KEAKR": { "errorType": "status_code", "url": "https://www.keakr.com/en/profile/{}", "urlMain": "https://www.keakr.com/", "username_claimed": "beats" }, "Kaggle": { "errorType": "status_code", "url": "https://www.kaggle.com/{}", "urlMain": "https://www.kaggle.com/", "username_claimed": "dansbecker" }, "Keybase": { "errorType": "status_code", "url": "https://keybase.io/{}", "urlMain": "https://keybase.io/", "username_claimed": "blue" }, "Kick": { "__comment__": "Cloudflare. Only viable when proxied.", "errorMsg": "Not Found", "errorType": "message", "url": "https://kick.com/{}", "urlMain": "https://kick.com/", "urlProbe": "https://kick.com/api/v2/channels/{}", "username_claimed": "blue" }, "Kik": { "errorMsg": "The page you requested was not found", "errorType": "message", "url": "https://kik.me/{}", "urlMain": "http://kik.me/", "urlProbe": "https://ws2.kik.com/user/{}", "username_claimed": "blue" }, "Kongregate": { "errorType": "status_code", "headers": { "Accept": "text/html", "User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/116.0" }, "regexCheck": "^[a-zA-Z][a-zA-Z0-9_-]*$", "url": "https://www.kongregate.com/accounts/{}", "urlMain": "https://www.kongregate.com/", "username_claimed": "blue" }, "LOR": { "errorType": "status_code", "url": "https://www.linux.org.ru/people/{}/profile", "urlMain": "https://linux.org.ru/", "username_claimed": "red" }, "Launchpad": { "errorType": "status_code", "url": "https://launchpad.net/~{}", "urlMain": "https://launchpad.net/", "username_claimed": "blue" }, "LeetCode": { "errorType": "status_code", "url": "https://leetcode.com/{}", "urlMain": "https://leetcode.com/", "username_claimed": "blue" }, "LessWrong": { "errorType": "status_code", "url": "https://www.lesswrong.com/users/@{}", "urlMain": "https://www.lesswrong.com/", "username_claimed": "blue" }, "Letterboxd": { "errorMsg": "Sorry, we can\u2019t find the page you\u2019ve requested.", "errorType": "message", "url": "https://letterboxd.com/{}", "urlMain": "https://letterboxd.com/", "username_claimed": "blue" }, "LibraryThing": { "errorMsg": "Catalog your books online", "errorType": "message", "url": "https://www.librarything.com/profile/{}", "urlMain": "https://www.librarything.com/", "username_claimed": "blue" }, "Lichess": { "errorMsg": "Page not found!", "errorType": "message", "url": "https://lichess.org/@/{}", "urlMain": "https://lichess.org", "username_claimed": "blue" }, "LinkedIn": { "errorType": "status_code", "headers": { "User-Agent": "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/W.X.Y.Z Safari/537.36" }, "regexCheck": "^[a-zA-Z0-9]{3,100}$", "request_method": "GET", "url": "https://linkedin.com/in/{}", "urlMain": "https://linkedin.com", "username_claimed": "paulpfeister" }, "Linktree": { "errorMsg": "\"statusCode\":404", "errorType": "message", "regexCheck": "^[\\w\\.]{2,30}$", "url": "https://linktr.ee/{}", "urlMain": "https://linktr.ee/", "username_claimed": "anne" }, "Listed": { "errorType": "response_url", "errorUrl": "https://listed.to/@{}", "url": "https://listed.to/@{}", "urlMain": "https://listed.to/", "username_claimed": "listed" }, "LiveJournal": { "errorType": "status_code", "regexCheck": "^[a-zA-Z][a-zA-Z0-9_-]*$", "url": "https://{}.livejournal.com", "urlMain": "https://www.livejournal.com/", "username_claimed": "blue" }, "Lobsters": { "errorType": "status_code", "regexCheck": "[A-Za-z0-9][A-Za-z0-9_-]{0,24}", "url": "https://lobste.rs/u/{}", "urlMain": "https://lobste.rs/", "username_claimed": "jcs" }, "LottieFiles": { "errorType": "status_code", "url": "https://lottiefiles.com/{}", "urlMain": "https://lottiefiles.com/", "username_claimed": "lottiefiles" }, "LushStories": { "errorType": "status_code", "isNSFW": true, "url": "https://www.lushstories.com/profile/{}", "urlMain": "https://www.lushstories.com/", "username_claimed": "chris_brown" }, "MMORPG Forum": { "errorType": "status_code", "url": "https://forums.mmorpg.com/profile/{}", "urlMain": "https://forums.mmorpg.com/", "username_claimed": "goku" }, "Mapify": { "errorType": "response_url", "errorUrl": "https://mapify.travel/{}", "url": "https://mapify.travel/{}", "urlMain": "https://mapify.travel/", "username_claimed": "mapify" }, "Medium": { "errorMsg": "Nitro Type | Competitive Typing Game | Race Your Friends", "errorType": "message", "url": "https://www.nitrotype.com/racer/{}", "urlMain": "https://www.nitrotype.com/", "username_claimed": "jianclash" }, "NotABug.org": { "errorType": "status_code", "url": "https://notabug.org/{}", "urlMain": "https://notabug.org/", "urlProbe": "https://notabug.org/{}/followers", "username_claimed": "red" }, "Nyaa.si": { "errorType": "status_code", "url": "https://nyaa.si/user/{}", "urlMain": "https://nyaa.si/", "username_claimed": "blue" }, "OGUsers": { "errorType": "status_code", "url": "https://ogu.gg/{}", "urlMain": "https://ogu.gg/", "username_claimed": "ogusers" }, "OpenStreetMap": { "errorType": "status_code", "regexCheck": "^[^.]*?$", "url": "https://www.openstreetmap.org/user/{}", "urlMain": "https://www.openstreetmap.org/", "username_claimed": "blue" }, "Opensource": { "errorType": "status_code", "url": "https://opensource.com/users/{}", "urlMain": "https://opensource.com/", "username_claimed": "red" }, "OurDJTalk": { "errorMsg": "The specified member cannot be found", "errorType": "message", "url": "https://ourdjtalk.com/members?username={}", "urlMain": "https://ourdjtalk.com/", "username_claimed": "steve" }, "PCGamer": { "errorMsg": "The specified member cannot be found. Please enter a member's entire name.", "errorType": "message", "url": "https://forums.pcgamer.com/members/?username={}", "urlMain": "https://pcgamer.com", "username_claimed": "admin" }, "PSNProfiles.com": { "errorType": "response_url", "errorUrl": "https://psnprofiles.com/?psnId={}", "url": "https://psnprofiles.com/{}", "urlMain": "https://psnprofiles.com/", "username_claimed": "blue" }, "Packagist": { "errorType": "response_url", "errorUrl": "https://packagist.org/search/?q={}&reason=vendor_not_found", "url": "https://packagist.org/packages/{}/", "urlMain": "https://packagist.org/", "username_claimed": "psr" }, "Pastebin": { "errorMsg": "Not Found (#404)", "errorType": "message", "url": "https://pastebin.com/u/{}", "urlMain": "https://pastebin.com/", "username_claimed": "blue" }, "Patreon": { "errorType": "status_code", "url": "https://www.patreon.com/{}", "urlMain": "https://www.patreon.com/", "username_claimed": "blue" }, "PentesterLab": { "errorType": "status_code", "regexCheck": "^[\\w]{4,30}$", "url": "https://pentesterlab.com/profile/{}", "urlMain": "https://pentesterlab.com/", "username_claimed": "0day" }, "PepperIT": { "errorMsg": "La pagina che hai provato a raggiungere non si trova qui", "errorType": "message", "url": "https://www.pepper.it/profile/{}/overview", "urlMain": "https://www.pepper.it", "username_claimed": "asoluinostrisca" }, "Periscope": { "errorType": "status_code", "url": "https://www.periscope.tv/{}/", "urlMain": "https://www.periscope.tv/", "username_claimed": "blue" }, "Pinkbike": { "errorType": "status_code", "regexCheck": "^[^.]*?$", "url": "https://www.pinkbike.com/u/{}/", "urlMain": "https://www.pinkbike.com/", "username_claimed": "blue" }, "PlayStore": { "errorType": "status_code", "url": "https://play.google.com/store/apps/developer?id={}", "urlMain": "https://play.google.com/store", "username_claimed": "Facebook" }, "PocketStars": { "errorMsg": "Join Your Favorite Adult Stars", "errorType": "message", "isNSFW": true, "url": "https://pocketstars.com/{}", "urlMain": "https://pocketstars.com/", "username_claimed": "hacker" }, "Pokemon Showdown": { "errorType": "status_code", "url": "https://pokemonshowdown.com/users/{}", "urlMain": "https://pokemonshowdown.com", "username_claimed": "blue" }, "Polarsteps": { "errorType": "status_code", "url": "https://polarsteps.com/{}", "urlMain": "https://polarsteps.com/", "urlProbe": "https://api.polarsteps.com/users/byusername/{}", "username_claimed": "james" }, "Polygon": { "errorType": "status_code", "url": "https://www.polygon.com/users/{}", "urlMain": "https://www.polygon.com/", "username_claimed": "swiftstickler" }, "Polymart": { "errorType": "response_url", "errorUrl": "https://polymart.org/user/-1", "url": "https://polymart.org/user/{}", "urlMain": "https://polymart.org/", "username_claimed": "craciu25yt" }, "Pornhub": { "errorType": "status_code", "isNSFW": true, "url": "https://pornhub.com/users/{}", "urlMain": "https://pornhub.com/", "username_claimed": "blue" }, "ProductHunt": { "errorMsg": "We seem to have lost this page", "errorType": "message", "url": "https://www.producthunt.com/@{}", "urlMain": "https://www.producthunt.com/", "username_claimed": "jenny" }, "PromoDJ": { "errorType": "status_code", "url": "http://promodj.com/{}", "urlMain": "http://promodj.com/", "username_claimed": "blue" }, "PyPi": { "errorType": "status_code", "url": "https://pypi.org/user/{}", "urlMain": "https://pypi.org", "username_claimed": "Blue" }, "Rajce.net": { "errorType": "status_code", "regexCheck": "^[a-zA-Z0-9@_-]$", "url": "https://{}.rajce.idnes.cz/", "urlMain": "https://www.rajce.idnes.cz/", "username_claimed": "blue" }, "Rate Your Music": { "errorType": "status_code", "url": "https://rateyourmusic.com/~{}", "urlMain": "https://rateyourmusic.com/", "username_claimed": "blue" }, "Rclone Forum": { "errorType": "status_code", "url": "https://forum.rclone.org/u/{}", "urlMain": "https://forum.rclone.org/", "username_claimed": "ncw" }, "RedTube": { "errorType": "status_code", "isNSFW": true, "url": "https://www.redtube.com/users/{}", "urlMain": "https://www.redtube.com/", "username_claimed": "hacker" }, "Redbubble": { "errorType": "status_code", "url": "https://www.redbubble.com/people/{}", "urlMain": "https://www.redbubble.com/", "username_claimed": "blue" }, "Reddit": { "errorMsg": "Sorry, nobody on Reddit goes by that name.", "errorType": "message", "headers": { "accept-language": "en-US,en;q=0.9" }, "url": "https://www.reddit.com/user/{}", "urlMain": "https://www.reddit.com/", "username_claimed": "blue" }, "Reisefrage": { "errorType": "status_code", "url": "https://www.reisefrage.net/nutzer/{}", "urlMain": "https://www.reisefrage.net/", "username_claimed": "reisefrage" }, "Replit.com": { "errorType": "status_code", "url": "https://replit.com/@{}", "urlMain": "https://replit.com/", "username_claimed": "blue" }, "ResearchGate": { "errorType": "response_url", "errorUrl": "https://www.researchgate.net/directory/profiles", "regexCheck": "\\w+_\\w+", "url": "https://www.researchgate.net/profile/{}", "urlMain": "https://www.researchgate.net/", "username_claimed": "John_Smith" }, "ReverbNation": { "errorMsg": "Sorry, we couldn't find that page", "errorType": "message", "url": "https://www.reverbnation.com/{}", "urlMain": "https://www.reverbnation.com/", "username_claimed": "blue" }, "Roblox": { "errorMsg": "Page cannot be found or no longer exists", "errorType": "message", "url": "https://www.roblox.com/user.aspx?username={}", "urlMain": "https://www.roblox.com/", "username_claimed": "bluewolfekiller" }, "RocketTube": { "errorMsg": "OOPS! Houston, we have a problem", "errorType": "message", "isNSFW": true, "url": "https://www.rockettube.com/{}", "urlMain": "https://www.rockettube.com/", "username_claimed": "Tatteddick5600" }, "RoyalCams": { "errorType": "status_code", "url": "https://royalcams.com/profile/{}", "urlMain": "https://royalcams.com", "username_claimed": "asuna-black" }, "RubyGems": { "errorType": "status_code", "regexCheck": "^[a-zA-Z][a-zA-Z0-9_-]{1,40}", "url": "https://rubygems.org/profiles/{}", "urlMain": "https://rubygems.org/", "username_claimed": "blue" }, "Rumble": { "errorType": "status_code", "url": "https://rumble.com/user/{}", "urlMain": "https://rumble.com/", "username_claimed": "John" }, "RuneScape": { "errorMsg": "{\"error\":\"NO_PROFILE\",\"loggedIn\":\"false\"}", "errorType": "message", "regexCheck": "^(?! )[\\w -]{1,12}(?Telegram Messenger", "If you have Telegram, you can contact TGx:Can't show details", "errorType": "message", "regexCheck": "^[A-Za-z0-9]{3,15}$", "url": "https://torrentgalaxy.to/profile/{}", "urlMain": "https://torrentgalaxy.to/", "username_claimed": "GalaxyRG" }, "TradingView": { "errorType": "status_code", "request_method": "GET", "url": "https://www.tradingview.com/u/{}/", "urlMain": "https://www.tradingview.com/", "username_claimed": "blue" }, "Trakt": { "errorType": "status_code", "regexCheck": "^[^.]*$", "url": "https://www.trakt.tv/users/{}", "urlMain": "https://www.trakt.tv/", "username_claimed": "blue" }, "TrashboxRU": { "errorType": "status_code", "regexCheck": "^[A-Za-z0-9_-]{3,16}$", "url": "https://trashbox.ru/users/{}", "urlMain": "https://trashbox.ru/", "username_claimed": "blue" }, "Trawelling": { "errorType": "status_code", "url": "https://traewelling.de/@{}", "urlMain": "https://traewelling.de/", "username_claimed": "lassestolley" }, "Trello": { "errorMsg": "model not found", "errorType": "message", "url": "https://trello.com/{}", "urlMain": "https://trello.com/", "urlProbe": "https://trello.com/1/Members/{}", "username_claimed": "blue" }, "TryHackMe": { "errorMsg": "{\"success\":false}", "errorType": "message", "regexCheck": "^[a-zA-Z0-9.]{1,16}$", "url": "https://tryhackme.com/p/{}", "urlMain": "https://tryhackme.com/", "urlProbe": "https://tryhackme.com/api/user/exist/{}", "username_claimed": "ashu" }, "Tuna": { "errorType": "status_code", "regexCheck": "^[a-z0-9]{4,40}$", "url": "https://tuna.voicemod.net/user/{}", "urlMain": "https://tuna.voicemod.net/", "username_claimed": "bob" }, "Tweakers": { "errorType": "status_code", "url": "https://tweakers.net/gallery/{}", "urlMain": "https://tweakers.net", "username_claimed": "femme" }, "Twitch": { "errorType": "status_code", "url": "https://www.twitch.tv/{}", "urlMain": "https://www.twitch.tv/", "urlProbe": "https://m.twitch.tv/{}", "username_claimed": "jenny" }, "Twitter": { "errorMsg": "
User ", "errorType": "message", "regexCheck": "^[a-zA-Z0-9_]{1,15}$", "url": "https://x.com/{}", "urlMain": "https://x.com/", "urlProbe": "https://nitter.net/{}", "username_claimed": "blue" }, "Typeracer": { "errorMsg": "Profile Not Found", "errorType": "message", "url": "https://data.typeracer.com/pit/profile?user={}", "urlMain": "https://typeracer.com", "username_claimed": "blue" }, "Ultimate-Guitar": { "errorType": "status_code", "url": "https://ultimate-guitar.com/u/{}", "urlMain": "https://ultimate-guitar.com/", "username_claimed": "blue" }, "Unsplash": { "errorType": "status_code", "regexCheck": "^[a-z0-9_]{1,60}$", "url": "https://unsplash.com/@{}", "urlMain": "https://unsplash.com/", "username_claimed": "jenny" }, "Untappd": { "errorType": "status_code", "url": "https://untappd.com/user/{}", "urlMain": "https://untappd.com/", "username_claimed": "untappd" }, "VK": { "errorType": "response_url", "errorUrl": "https://www.quora.com/profile/{}", "url": "https://vk.com/{}", "urlMain": "https://vk.com/", "username_claimed": "brown" }, "VSCO": { "errorType": "status_code", "url": "https://vsco.co/{}", "urlMain": "https://vsco.co/", "username_claimed": "blue" }, "Velomania": { "errorMsg": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u0438 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043f\u0440\u043e\u0444\u0438\u043b\u044f \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430.", "errorType": "message", "url": "https://forum.velomania.ru/member.php?username={}", "urlMain": "https://forum.velomania.ru/", "username_claimed": "red" }, "Venmo": { "errorMsg": [ "Venmo | Page Not Found" ], "errorType": "message", "headers": { "Host": "account.venmo.com" }, "url": "https://account.venmo.com/u/{}", "urlMain": "https://venmo.com/", "urlProbe": "https://test1.venmo.com/u/{}", "username_claimed": "jenny" }, "Vero": { "errorType": "status_code", "request_method": "GET", "url": "https://vero.co/{}", "urlMain": "https://vero.co/", "username_claimed": "blue" }, "Vimeo": { "errorType": "status_code", "url": "https://vimeo.com/{}", "urlMain": "https://vimeo.com/", "username_claimed": "blue" }, "VirusTotal": { "errorType": "status_code", "request_method": "GET", "url": "https://www.virustotal.com/gui/user/{}", "urlMain": "https://www.virustotal.com/", "urlProbe": "https://www.virustotal.com/ui/users/{}/avatar", "username_claimed": "blue" }, "WICG Forum": { "errorType": "status_code", "regexCheck": "^(?![.-])[a-zA-Z0-9_.-]{3,20}$", "url": "https://discourse.wicg.io/u/{}/summary", "urlMain": "https://discourse.wicg.io/", "username_claimed": "stefano" }, "Warrior Forum": { "errorType": "status_code", "url": "https://www.warriorforum.com/members/{}.html", "urlMain": "https://www.warriorforum.com/", "username_claimed": "blue" }, "Wattpad": { "errorType": "status_code", "url": "https://www.wattpad.com/user/{}", "urlMain": "https://www.wattpad.com/", "urlProbe": "https://www.wattpad.com/api/v3/users/{}/", "username_claimed": "Dogstho7951" }, "WebNode": { "errorType": "status_code", "regexCheck": "^[a-zA-Z0-9@_-]$", "url": "https://{}.webnode.cz/", "urlMain": "https://www.webnode.cz/", "username_claimed": "radkabalcarova" }, "Weblate": { "errorType": "status_code", "regexCheck": "^[a-zA-Z0-9@._-]{1,150}$", "url": "https://hosted.weblate.org/user/{}/", "urlMain": "https://hosted.weblate.org/", "username_claimed": "adam" }, "Weebly": { "errorType": "status_code", "url": "https://{}.weebly.com/", "urlMain": "https://weebly.com/", "username_claimed": "blue" }, "Wikidot": { "errorMsg": "User does not exist.", "errorType": "message", "url": "http://www.wikidot.com/user:info/{}", "urlMain": "http://www.wikidot.com/", "username_claimed": "blue" }, "Wikipedia": { "errorMsg": "centralauth-admin-nonexistent:", "errorType": "message", "url": "https://en.wikipedia.org/wiki/Special:CentralAuth/{}?uselang=qqx", "urlMain": "https://www.wikipedia.org/", "username_claimed": "Hoadlck" }, "Windy": { "errorType": "status_code", "url": "https://community.windy.com/user/{}", "urlMain": "https://windy.com/", "username_claimed": "blue" }, "Wix": { "errorType": "status_code", "regexCheck": "^[a-zA-Z0-9@_-]$", "url": "https://{}.wix.com", "urlMain": "https://wix.com/", "username_claimed": "support" }, "WolframalphaForum": { "errorType": "status_code", "url": "https://community.wolfram.com/web/{}/home", "urlMain": "https://community.wolfram.com/", "username_claimed": "unico" }, "WordPress": { "errorType": "response_url", "errorUrl": "wordpress.com/typo/?subdomain=", "regexCheck": "^[a-zA-Z][a-zA-Z0-9_-]*$", "url": "https://{}.wordpress.com/", "urlMain": "https://wordpress.com", "username_claimed": "blue" }, "WordPressOrg": { "errorType": "response_url", "errorUrl": "https://wordpress.org", "url": "https://profiles.wordpress.org/{}/", "urlMain": "https://wordpress.org/", "username_claimed": "blue" }, "Wordnik": { "errorMsg": "Page Not Found", "errorType": "message", "regexCheck": "^[a-zA-Z0-9_.+-]{1,40}$", "url": "https://www.wordnik.com/users/{}", "urlMain": "https://www.wordnik.com/", "username_claimed": "blue" }, "Wykop": { "errorType": "status_code", "url": "https://www.wykop.pl/ludzie/{}", "urlMain": "https://www.wykop.pl", "username_claimed": "blue" }, "Xbox Gamertag": { "errorType": "status_code", "url": "https://xboxgamertag.com/search/{}", "urlMain": "https://xboxgamertag.com/", "username_claimed": "red" }, "Xvideos": { "errorType": "status_code", "isNSFW": true, "url": "https://xvideos.com/profiles/{}", "urlMain": "https://xvideos.com/", "username_claimed": "blue" }, "YandexMusic": { "__comment__": "The first and third errorMsg relate to geo-restrictions and bot detection/captchas.", "errorMsg": [ "\u041e\u0448\u0438\u0431\u043a\u0430 404", "Error something went wrong.", "404 Not Found" ], "errorType": "message", "regexCheck": "^[A-Za-z0-9]{4,12}$", "url": "https://www.1337x.to/user/{}/", "urlMain": "https://www.1337x.to/", "username_claimed": "FitGirl" }, "2Dimensions": { "errorType": "status_code", "url": "https://2Dimensions.com/a/{}", "urlMain": "https://2Dimensions.com/", "username_claimed": "blue" }, "3dnews": { "errorMsg": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u0438 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043f\u0440\u043e\u0444\u0438\u043b\u044f \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430.", "errorType": "message", "url": "http://forum.3dnews.ru/member.php?username={}", "urlMain": "http://forum.3dnews.ru/", "username_claimed": "red" }, "7Cups": { "errorType": "status_code", "url": "https://www.7cups.com/@{}", "urlMain": "https://www.7cups.com/", "username_claimed": "blue" }, "8tracks": { "errorMsg": "This page has vanished", "errorType": "message", "url": "https://8tracks.com/{}", "urlMain": "https://8tracks.com/", "username_claimed": "blue" }, "9GAG": { "errorType": "status_code", "url": "https://www.9gag.com/u/{}", "urlMain": "https://www.9gag.com/", "username_claimed": "blue" }, "APClips": { "errorMsg": "Amateur Porn Content Creators", "errorType": "message", "isNSFW": true, "url": "https://apclips.com/{}", "urlMain": "https://apclips.com/", "username_claimed": "onlybbyraq" }, "About.me": { "errorType": "status_code", "url": "https://about.me/{}", "urlMain": "https://about.me/", "username_claimed": "blue" }, "Academia.edu": { "errorType": "status_code", "regexCheck": "^[^.]*$", "url": "https://independent.academia.edu/{}", "urlMain": "https://www.academia.edu/", "username_claimed": "blue" }, "AdmireMe.Vip": { "errorMsg": "Page Not Found", "errorType": "message", "isNSFW": true, "url": "https://admireme.vip/{}", "urlMain": "https://admireme.vip/", "username_claimed": "DemiDevil" }, "Air Pilot Life": { "errorMsg": "Oops! That page doesn\u2019t exist or is private", "errorType": "message", "url": "https://airlinepilot.life/u/{}", "urlMain": "https://airlinepilot.life/", "username_claimed": "chris" }, "Airbit": { "errorType": "status_code", "url": "https://airbit.com/{}", "urlMain": "https://airbit.com/", "username_claimed": "airbit" }, "Airliners": { "errorType": "status_code", "url": "https://www.airliners.net/user/{}/profile/photos", "urlMain": "https://www.airliners.net/", "username_claimed": "yushinlin" }, "Alik.cz": { "errorType": "status_code", "url": "https://www.alik.cz/u/{}", "urlMain": "https://www.alik.cz/", "username_claimed": "julian" }, "All Things Worn": { "errorMsg": "Sell Used Panties", "errorType": "message", "isNSFW": true, "url": "https://www.allthingsworn.com/profile/{}", "urlMain": "https://www.allthingsworn.com", "username_claimed": "pink" }, "AllMyLinks": { "errorMsg": "Not Found", "errorType": "message", "regexCheck": "^[a-z0-9][a-z0-9-]{2,32}$", "url": "https://allmylinks.com/{}", "urlMain": "https://allmylinks.com/", "username_claimed": "blue" }, "Amino": { "errorType": "status_code", "url": "https://aminoapps.com/u/{}", "urlMain": "https://aminoapps.com", "username_claimed": "blue" }, "AniWorld": { "errorMsg": "Dieses Profil ist nicht verf\u00fcgbar", "errorType": "message", "url": "https://aniworld.to/user/profil/{}", "urlMain": "https://aniworld.to/", "username_claimed": "blue" }, "Anilist": { "errorType": "status_code", "regexCheck": "^[A-Za-z0-9]{2,20}$", "request_method": "POST", "request_payload": { "query": "query($name:String){User(name:$name){id}}", "variables": { "name": "{}" } }, "url": "https://anilist.co/user/{}/", "urlMain": "https://anilist.co/", "urlProbe": "https://graphql.anilist.co/", "username_claimed": "Josh" }, "Apple Developer": { "errorType": "status_code", "url": "https://developer.apple.com/forums/profile/{}", "urlMain": "https://developer.apple.com", "username_claimed": "lio24d" }, "Apple Discussions": { "errorMsg": "The page you tried was not found. You may have used an outdated link or may have typed the address (URL) incorrectly.", "errorType": "message", "url": "https://discussions.apple.com/profile/{}", "urlMain": "https://discussions.apple.com", "username_claimed": "jason" }, "Archive of Our Own": { "errorType": "status_code", "regexCheck": "^[^.]*?$", "url": "https://archiveofourown.org/users/{}", "urlMain": "https://archiveofourown.org/", "username_claimed": "test" }, "Archive.org": { "__comment__": "'The resource could not be found' relates to archive downtime", "errorMsg": [ "could not fetch an account with user item identifier", "The resource could not be found" ], "errorType": "message", "url": "https://archive.org/details/@{}", "urlMain": "https://archive.org", "urlProbe": "https://archive.org/details/@{}?noscript=true", "username_claimed": "blue" }, "ArtStation": { "errorType": "status_code", "url": "https://www.artstation.com/{}", "urlMain": "https://www.artstation.com/", "username_claimed": "Blue" }, "Asciinema": { "errorType": "status_code", "url": "https://asciinema.org/~{}", "urlMain": "https://asciinema.org", "username_claimed": "red" }, "Ask Fedora": { "errorType": "status_code", "url": "https://ask.fedoraproject.org/u/{}", "urlMain": "https://ask.fedoraproject.org/", "username_claimed": "red" }, "AskFM": { "errorMsg": "Well, apparently not anymore.", "errorType": "message", "regexCheck": "^[a-zA-Z0-9_]{3,40}$", "url": "https://ask.fm/{}", "urlMain": "https://ask.fm/", "username_claimed": "blue" }, "Audiojungle": { "errorType": "status_code", "regexCheck": "^[a-zA-Z0-9_]+$", "url": "https://audiojungle.net/user/{}", "urlMain": "https://audiojungle.net/", "username_claimed": "blue" }, "Autofrage": { "errorType": "status_code", "url": "https://www.autofrage.net/nutzer/{}", "urlMain": "https://www.autofrage.net/", "username_claimed": "autofrage" }, "Avizo": { "errorType": "response_url", "errorUrl": "https://www.avizo.cz/", "url": "https://www.avizo.cz/{}/", "urlMain": "https://www.avizo.cz/", "username_claimed": "blue" }, "BLIP.fm": { "errorType": "status_code", "regexCheck": "^[a-zA-Z0-9_]{1,30}$", "url": "https://blip.fm/{}", "urlMain": "https://blip.fm/", "username_claimed": "blue" }, "BOOTH": { "errorType": "response_url", "errorUrl": "https://booth.pm/", "regexCheck": "^[a-zA-Z0-9@_-]$", "url": "https://{}.booth.pm/", "urlMain": "https://booth.pm/", "username_claimed": "blue" }, "Bandcamp": { "errorType": "status_code", "url": "https://www.bandcamp.com/{}", "urlMain": "https://www.bandcamp.com/", "username_claimed": "blue" }, "Bazar.cz": { "errorType": "response_url", "errorUrl": "https://www.bazar.cz/error404.aspx", "url": "https://www.bazar.cz/{}/", "urlMain": "https://www.bazar.cz/", "username_claimed": "pianina" }, "Behance": { "errorType": "status_code", "url": "https://www.behance.net/{}", "urlMain": "https://www.behance.net/", "username_claimed": "blue" }, "Bezuzyteczna": { "errorType": "status_code", "url": "https://bezuzyteczna.pl/uzytkownicy/{}", "urlMain": "https://bezuzyteczna.pl", "username_claimed": "Jackson" }, "BiggerPockets": { "errorType": "status_code", "url": "https://www.biggerpockets.com/users/{}", "urlMain": "https://www.biggerpockets.com/", "username_claimed": "blue" }, "Bikemap": { "errorType": "status_code", "url": "https://www.bikemap.net/en/u/{}/routes/created/", "urlMain": "https://www.bikemap.net/", "username_claimed": "bikemap" }, "BioHacking": { "errorType": "status_code", "url": "https://forum.dangerousthings.com/u/{}", "urlMain": "https://forum.dangerousthings.com/", "username_claimed": "blue" }, "BitBucket": { "errorType": "status_code", "regexCheck": "^[a-zA-Z0-9-_]{1,30}$", "url": "https://bitbucket.org/{}/", "urlMain": "https://bitbucket.org/", "username_claimed": "white" }, "Bitwarden Forum": { "errorType": "status_code", "regexCheck": "^(?![.-])[a-zA-Z0-9_.-]{3,20}$", "url": "https://community.bitwarden.com/u/{}/summary", "urlMain": "https://bitwarden.com/", "username_claimed": "blue" }, "Blipfoto": { "errorType": "status_code", "url": "https://www.blipfoto.com/{}", "urlMain": "https://www.blipfoto.com/", "username_claimed": "blue" }, "Blogger": { "errorType": "status_code", "regexCheck": "^[a-zA-Z][a-zA-Z0-9_-]*$", "url": "https://{}.blogspot.com", "urlMain": "https://www.blogger.com/", "username_claimed": "blue" }, "BodyBuilding": { "errorType": "response_url", "errorUrl": "https://bodyspace.bodybuilding.com/", "url": "https://bodyspace.bodybuilding.com/{}", "urlMain": "https://bodyspace.bodybuilding.com/", "username_claimed": "blue" }, "BongaCams": { "errorType": "status_code", "isNSFW": true, "url": "https://pt.bongacams.com/profile/{}", "urlMain": "https://pt.bongacams.com", "username_claimed": "asuna-black" }, "Bookcrossing": { "errorType": "status_code", "url": "https://www.bookcrossing.com/mybookshelf/{}/", "urlMain": "https://www.bookcrossing.com/", "username_claimed": "blue" }, "BraveCommunity": { "errorType": "status_code", "url": "https://community.brave.com/u/{}/", "urlMain": "https://community.brave.com/", "username_claimed": "blue" }, "BugCrowd": { "errorType": "status_code", "url": "https://bugcrowd.com/{}", "urlMain": "https://bugcrowd.com/", "username_claimed": "ppfeister" }, "BuyMeACoffee": { "errorType": "status_code", "regexCheck": "[a-zA-Z0-9]{3,15}", "url": "https://buymeacoff.ee/{}", "urlMain": "https://www.buymeacoffee.com/", "urlProbe": "https://www.buymeacoffee.com/{}", "username_claimed": "red" }, "BuzzFeed": { "errorType": "status_code", "url": "https://buzzfeed.com/{}", "urlMain": "https://buzzfeed.com/", "username_claimed": "blue" }, "CGTrader": { "errorType": "status_code", "regexCheck": "^[^.]*?$", "url": "https://www.cgtrader.com/{}", "urlMain": "https://www.cgtrader.com", "username_claimed": "blue" }, "CNET": { "errorType": "status_code", "regexCheck": "^[a-z].*$", "url": "https://www.cnet.com/profiles/{}/", "urlMain": "https://www.cnet.com/", "username_claimed": "melliott" }, "CSSBattle": { "errorType": "status_code", "url": "https://cssbattle.dev/player/{}", "urlMain": "https://cssbattle.dev", "username_claimed": "beo" }, "CTAN": { "errorType": "status_code", "url": "https://ctan.org/author/{}", "urlMain": "https://ctan.org/", "username_claimed": "briggs" }, "Caddy Community": { "errorType": "status_code", "url": "https://caddy.community/u/{}/summary", "urlMain": "https://caddy.community/", "username_claimed": "taako_magnusen" }, "Car Talk Community": { "errorType": "status_code", "url": "https://community.cartalk.com/u/{}/summary", "urlMain": "https://community.cartalk.com/", "username_claimed": "always_fixing" }, "Carbonmade": { "errorType": "response_url", "errorUrl": "https://carbonmade.com/fourohfour?domain={}.carbonmade.com", "regexCheck": "^[a-zA-Z0-9@_-]$", "url": "https://{}.carbonmade.com", "urlMain": "https://carbonmade.com/", "username_claimed": "jenny" }, "Career.habr": { "errorMsg": "

\u041e\u0448\u0438\u0431\u043a\u0430 404

", "errorType": "message", "url": "https://career.habr.com/{}", "urlMain": "https://career.habr.com/", "username_claimed": "blue" }, "Championat": { "errorType": "status_code", "url": "https://www.championat.com/user/{}", "urlMain": "https://www.championat.com/", "username_claimed": "blue" }, "Chaos": { "errorType": "status_code", "url": "https://chaos.social/@{}", "urlMain": "https://chaos.social/", "username_claimed": "ordnung" }, "Chatujme.cz": { "errorMsg": "Neexistujic\u00ed profil", "errorType": "message", "regexCheck": "^[a-zA-Z][a-zA-Z1-9_-]*$", "url": "https://profil.chatujme.cz/{}", "urlMain": "https://chatujme.cz/", "username_claimed": "david" }, "ChaturBate": { "errorType": "status_code", "isNSFW": true, "url": "https://chaturbate.com/{}", "urlMain": "https://chaturbate.com", "username_claimed": "cute18cute" }, "Chess": { "errorMsg": "Username is valid", "errorType": "message", "regexCheck": "^[a-z1-9]{3,25}$", "url": "https://www.chess.com/member/{}", "urlMain": "https://www.chess.com/", "urlProbe": "https://www.chess.com/callback/user/valid?username={}", "username_claimed": "blue" }, "Choice Community": { "errorType": "status_code", "url": "https://choice.community/u/{}/summary", "urlMain": "https://choice.community/", "username_claimed": "gordon" }, "Clapper": { "errorType": "status_code", "url": "https://clapperapp.com/{}", "urlMain": "https://clapperapp.com/", "username_claimed": "blue" }, "CloudflareCommunity": { "errorType": "status_code", "url": "https://community.cloudflare.com/u/{}", "urlMain": "https://community.cloudflare.com/", "username_claimed": "blue" }, "Clozemaster": { "errorMsg": "Oh no! Player not found.", "errorType": "message", "url": "https://www.clozemaster.com/players/{}", "urlMain": "https://www.clozemaster.com", "username_claimed": "green" }, "Clubhouse": { "errorType": "status_code", "url": "https://www.clubhouse.com/@{}", "urlMain": "https://www.clubhouse.com", "username_claimed": "waniathar" }, "Code Snippet Wiki": { "errorMsg": "This user has not filled out their profile page yet", "errorType": "message", "url": "https://codesnippets.fandom.com/wiki/User:{}", "urlMain": "https://codesnippets.fandom.com", "username_claimed": "bob" }, "Codeberg": { "errorType": "status_code", "url": "https://codeberg.org/{}", "urlMain": "https://codeberg.org/", "username_claimed": "blue" }, "Codecademy": { "errorMsg": "This profile could not be found", "errorType": "message", "url": "https://www.codecademy.com/profiles/{}", "urlMain": "https://www.codecademy.com/", "username_claimed": "blue" }, "Codechef": { "errorType": "response_url", "errorUrl": "https://www.codechef.com/", "url": "https://www.codechef.com/users/{}", "urlMain": "https://www.codechef.com/", "username_claimed": "blue" }, "Codeforces": { "errorType": "status_code", "url": "https://codeforces.com/profile/{}", "urlMain": "https://codeforces.com/", "urlProbe": "https://codeforces.com/api/user.info?handles={}", "username_claimed": "tourist" }, "Codepen": { "errorType": "status_code", "url": "https://codepen.io/{}", "urlMain": "https://codepen.io/", "username_claimed": "blue" }, "Coders Rank": { "errorMsg": "not a registered member", "errorType": "message", "regexCheck": "^[a-zA-Z0-9](?:[a-zA-Z0-9]|-(?=[a-zA-Z0-9])){0,38}$", "url": "https://profile.codersrank.io/user/{}/", "urlMain": "https://codersrank.io/", "username_claimed": "rootkit7628" }, "Coderwall": { "errorType": "status_code", "url": "https://coderwall.com/{}", "urlMain": "https://coderwall.com", "username_claimed": "hacker" }, "Codewars": { "errorType": "status_code", "url": "https://www.codewars.com/users/{}", "urlMain": "https://www.codewars.com", "username_claimed": "example" }, "Coinvote": { "errorType": "status_code", "url": "https://coinvote.cc/profile/{}", "urlMain": "https://coinvote.cc/", "username_claimed": "blue" }, "ColourLovers": { "errorType": "status_code", "url": "https://www.colourlovers.com/lover/{}", "urlMain": "https://www.colourlovers.com/", "username_claimed": "blue" }, "Contently": { "errorType": "response_url", "errorUrl": "https://contently.com", "regexCheck": "^[a-zA-Z][a-zA-Z0-9_-]*$", "url": "https://{}.contently.com/", "urlMain": "https://contently.com/", "username_claimed": "jordanteicher" }, "Coroflot": { "errorType": "status_code", "url": "https://www.coroflot.com/{}", "urlMain": "https://coroflot.com/", "username_claimed": "blue" }, "Cracked": { "errorType": "response_url", "errorUrl": "https://www.cracked.com/", "url": "https://www.cracked.com/members/{}/", "urlMain": "https://www.cracked.com/", "username_claimed": "blue" }, "Crevado": { "errorType": "status_code", "regexCheck": "^[a-zA-Z0-9@_-]$", "url": "https://{}.crevado.com", "urlMain": "https://crevado.com/", "username_claimed": "blue" }, "Crowdin": { "errorType": "status_code", "regexCheck": "^[a-zA-Z0-9._-]{2,255}$", "url": "https://crowdin.com/profile/{}", "urlMain": "https://crowdin.com/", "username_claimed": "blue" }, "Cryptomator Forum": { "errorType": "status_code", "url": "https://community.cryptomator.org/u/{}", "urlMain": "https://community.cryptomator.org/", "username_claimed": "michael" }, "Cults3D": { "errorMsg": "Oh dear, this page is not working!", "errorType": "message", "url": "https://cults3d.com/en/users/{}/creations", "urlMain": "https://cults3d.com/en", "username_claimed": "brown" }, "CyberDefenders": { "errorMsg": "Blue Team Training for SOC analysts and DFIR - CyberDefenders", "errorType": "message", "regexCheck": "^[^\\/:*?\"<>|@]{3,50}$", "request_method": "GET", "url": "https://cyberdefenders.org/p/{}", "urlMain": "https://cyberdefenders.org/", "username_claimed": "mlohn" }, "DEV Community": { "errorType": "status_code", "regexCheck": "^[a-zA-Z][a-zA-Z0-9_-]*$", "url": "https://dev.to/{}", "urlMain": "https://dev.to/", "username_claimed": "blue" }, "DMOJ": { "errorMsg": "No such user", "errorType": "message", "url": "https://dmoj.ca/user/{}", "urlMain": "https://dmoj.ca/", "username_claimed": "junferno" }, "DailyMotion": { "errorType": "status_code", "url": "https://www.dailymotion.com/{}", "urlMain": "https://www.dailymotion.com/", "username_claimed": "blue" }, "Dealabs": { "errorMsg": "La page que vous essayez", "errorType": "message", "regexCheck": "[a-z0-9]{4,16}", "url": "https://www.dealabs.com/profile/{}", "urlMain": "https://www.dealabs.com/", "username_claimed": "blue" }, "DeviantART": { "errorType": "status_code", "regexCheck": "^[a-zA-Z][a-zA-Z0-9_-]*$", "url": "https://{}.deviantart.com", "urlMain": "https://deviantart.com", "username_claimed": "blue" }, "Discogs": { "errorType": "status_code", "url": "https://www.discogs.com/user/{}", "urlMain": "https://www.discogs.com/", "username_claimed": "blue" }, "Discuss.Elastic.co": { "errorType": "status_code", "url": "https://discuss.elastic.co/u/{}", "urlMain": "https://discuss.elastic.co/", "username_claimed": "blue" }, "Disqus": { "errorType": "status_code", "url": "https://disqus.com/{}", "urlMain": "https://disqus.com/", "username_claimed": "blue" }, "Docker Hub": { "errorType": "status_code", "url": "https://hub.docker.com/u/{}/", "urlMain": "https://hub.docker.com/", "urlProbe": "https://hub.docker.com/v2/users/{}/", "username_claimed": "blue" }, "Dribbble": { "errorMsg": "Whoops, that page is gone.", "errorType": "message", "regexCheck": "^[a-zA-Z][a-zA-Z0-9_-]*$", "url": "https://dribbble.com/{}", "urlMain": "https://dribbble.com/", "username_claimed": "blue" }, "Duolingo": { "errorMsg": "{\"users\":[]}", "errorType": "message", "headers": { "User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/116.0" }, "url": "https://www.duolingo.com/profile/{}", "urlMain": "https://duolingo.com/", "urlProbe": "https://www.duolingo.com/2017-06-30/users?username={}", "username_claimed": "blue" }, "Eintracht Frankfurt Forum": { "errorType": "status_code", "regexCheck": "^[^.]*?$", "url": "https://community.eintracht.de/fans/{}", "urlMain": "https://community.eintracht.de/", "username_claimed": "mmammu" }, "Envato Forum": { "errorType": "status_code", "url": "https://forums.envato.com/u/{}", "urlMain": "https://forums.envato.com/", "username_claimed": "enabled" }, "Erome": { "errorType": "status_code", "isNSFW": true, "url": "https://www.erome.com/{}", "urlMain": "https://www.erome.com/", "username_claimed": "bob" }, "Exposure": { "errorType": "status_code", "url": "https://{}.exposure.co/", "urlMain": "https://exposure.co/", "username_claimed": "jonasjacobsson" }, "EyeEm": { "errorType": "status_code", "url": "https://www.eyeem.com/u/{}", "urlMain": "https://www.eyeem.com/", "username_claimed": "blue" }, "F3.cool": { "errorType": "status_code", "url": "https://f3.cool/{}/", "urlMain": "https://f3.cool/", "username_claimed": "blue" }, "Fameswap": { "errorType": "status_code", "url": "https://fameswap.com/user/{}", "urlMain": "https://fameswap.com/", "username_claimed": "fameswap" }, "Fandom": { "errorType": "status_code", "url": "https://www.fandom.com/u/{}", "urlMain": "https://www.fandom.com/", "username_claimed": "Jungypoo" }, "Finanzfrage": { "errorType": "status_code", "url": "https://www.finanzfrage.net/nutzer/{}", "urlMain": "https://www.finanzfrage.net/", "username_claimed": "finanzfrage" }, "Fiverr": { "errorMsg": "\"status\":\"success\"", "errorType": "message", "regexCheck": "^[A-Za-z][A-Za-z\\d_]{5,14}$", "request_method": "POST", "request_payload": { "username": "{}" }, "url": "https://www.fiverr.com/{}", "urlMain": "https://www.fiverr.com/", "urlProbe": "https://www.fiverr.com/validate_username", "username_claimed": "blueman" }, "Flickr": { "errorType": "status_code", "url": "https://www.flickr.com/people/{}", "urlMain": "https://www.flickr.com/", "username_claimed": "blue" }, "Flightradar24": { "errorType": "status_code", "regexCheck": "^[a-zA-Z0-9_]{3,20}$", "url": "https://my.flightradar24.com/{}", "urlMain": "https://www.flightradar24.com/", "username_claimed": "jebbrooks" }, "Flipboard": { "errorType": "status_code", "regexCheck": "^([a-zA-Z0-9_]){1,15}$", "url": "https://flipboard.com/@{}", "urlMain": "https://flipboard.com/", "username_claimed": "blue" }, "Football": { "errorMsg": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0441 \u0442\u0430\u043a\u0438\u043c \u0438\u043c\u0435\u043d\u0435\u043c \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d", "errorType": "message", "url": "https://www.rusfootball.info/user/{}/", "urlMain": "https://www.rusfootball.info/", "username_claimed": "solo87" }, "FortniteTracker": { "errorType": "status_code", "url": "https://fortnitetracker.com/profile/all/{}", "urlMain": "https://fortnitetracker.com/challenges", "username_claimed": "blue" }, "Forum Ophilia": { "errorMsg": "that user does not exist", "errorType": "message", "isNSFW": true, "url": "https://www.forumophilia.com/profile.php?mode=viewprofile&u={}", "urlMain": "https://www.forumophilia.com/", "username_claimed": "bob" }, "Fosstodon": { "errorType": "status_code", "regexCheck": "^[a-zA-Z0-9_]{1,30}$", "url": "https://fosstodon.org/@{}", "urlMain": "https://fosstodon.org/", "username_claimed": "blue" }, "Freelance.habr": { "errorMsg": "
", "errorType": "message", "regexCheck": "^((?!\\.).)*$", "url": "https://freelance.habr.com/freelancers/{}", "urlMain": "https://freelance.habr.com/", "username_claimed": "adam" }, "Freelancer": { "errorMsg": "\"users\":{}", "errorType": "message", "url": "https://www.freelancer.com/u/{}", "urlMain": "https://www.freelancer.com/", "urlProbe": "https://www.freelancer.com/api/users/0.1/users?usernames%5B%5D={}&compact=true", "username_claimed": "red0xff" }, "Freesound": { "errorType": "status_code", "url": "https://freesound.org/people/{}/", "urlMain": "https://freesound.org/", "username_claimed": "blue" }, "GNOME VCS": { "errorType": "response_url", "errorUrl": "https://gitlab.gnome.org/{}", "regexCheck": "^(?!-)[a-zA-Z0-9_.-]{2,255}(?Web3\u2019s Largest Ethical Hackers Community | HackenProof", "errorType": "message", "regexCheck": "^[\\w-]{,34}$", "url": "https://hackenproof.com/hackers/{}", "urlMain": "https://hackenproof.com/", "username_claimed": "blazezaria" }, "HackerEarth": { "errorMsg": "404. URL not found.", "errorType": "message", "url": "https://hackerearth.com/@{}", "urlMain": "https://hackerearth.com/", "username_claimed": "naveennamani877" }, "HackerNews": { "__comment__": "First errMsg invalid, second errMsg rate limited. Not ideal. Adjust for better rate limit filtering.", "errorMsg": [ "No such user.", "Sorry." ], "errorType": "message", "url": "https://news.ycombinator.com/user?id={}", "urlMain": "https://news.ycombinator.com/", "username_claimed": "blue" }, "HackerOne": { "errorMsg": "Page not found", "errorType": "message", "url": "https://hackerone.com/{}", "urlMain": "https://hackerone.com/", "username_claimed": "stok" }, "HackerRank": { "errorMsg": "Something went wrong", "errorType": "message", "regexCheck": "^[^.]*?$", "url": "https://hackerrank.com/{}", "urlMain": "https://hackerrank.com/", "username_claimed": "satznova" }, "Harvard Scholar": { "errorType": "status_code", "url": "https://scholar.harvard.edu/{}", "urlMain": "https://scholar.harvard.edu/", "username_claimed": "ousmanekane" }, "Hashnode": { "errorType": "status_code", "url": "https://hashnode.com/@{}", "urlMain": "https://hashnode.com", "username_claimed": "blue" }, "Heavy-R": { "errorMsg": "Channel not found", "errorType": "message", "isNSFW": true, "url": "https://www.heavy-r.com/user/{}", "urlMain": "https://www.heavy-r.com/", "username_claimed": "kilroy222" }, "Holopin": { "errorMsg": "true", "errorType": "message", "request_method": "POST", "request_payload": { "username": "{}" }, "url": "https://holopin.io/@{}", "urlMain": "https://holopin.io", "urlProbe": "https://www.holopin.io/api/auth/username", "username_claimed": "red" }, "Houzz": { "errorMsg": "The page you requested was not found.", "errorType": "message", "url": "https://houzz.com/user/{}", "urlMain": "https://houzz.com/", "username_claimed": "blue" }, "HubPages": { "errorType": "status_code", "url": "https://hubpages.com/@{}", "urlMain": "https://hubpages.com/", "username_claimed": "blue" }, "Hubski": { "errorMsg": "No such user", "errorType": "message", "url": "https://hubski.com/user/{}", "urlMain": "https://hubski.com/", "username_claimed": "blue" }, "HudsonRock": { "errorMsg": "No results", "errorType": "message", "url": "https://cavalier.hudsonrock.com/api/json/v2/osint-tools/search-by-username?username={}", "urlMain": "https://hudsonrock.com", "username_claimed": "testadmin" }, "ICQ": { "errorType": "status_code", "url": "https://icq.im/{}/en", "urlMain": "https://icq.com/", "username_claimed": "Micheal" }, "IFTTT": { "errorType": "status_code", "regexCheck": "^[A-Za-z0-9]{3,35}$", "url": "https://www.ifttt.com/p/{}", "urlMain": "https://www.ifttt.com/", "username_claimed": "blue" }, "IRC-Galleria": { "errorType": "response_url", "errorUrl": "https://irc-galleria.net/users/search?username={}", "url": "https://irc-galleria.net/user/{}", "urlMain": "https://irc-galleria.net/", "username_claimed": "appas" }, "Icons8 Community": { "errorType": "status_code", "url": "https://community.icons8.com/u/{}/summary", "urlMain": "https://community.icons8.com/", "username_claimed": "thefourCraft" }, "Image Fap": { "errorMsg": "Not found", "errorType": "message", "isNSFW": true, "url": "https://www.imagefap.com/profile/{}", "urlMain": "https://www.imagefap.com/", "username_claimed": "blue" }, "ImgUp.cz": { "errorType": "status_code", "url": "https://imgup.cz/{}", "urlMain": "https://imgup.cz/", "username_claimed": "adam" }, "Imgur": { "errorType": "status_code", "url": "https://imgur.com/user/{}", "urlMain": "https://imgur.com/", "urlProbe": "https://api.imgur.com/account/v1/accounts/{}?client_id=546c25a59c58ad7", "username_claimed": "blue" }, "Instagram": { "errorType": "status_code", "url": "https://instagram.com/{}", "urlMain": "https://instagram.com/", "urlProbe": "https://www.picuki.com/profile/{}", "username_claimed": "instagram" }, "Instructables": { "errorType": "status_code", "url": "https://www.instructables.com/member/{}", "urlMain": "https://www.instructables.com/", "urlProbe": "https://www.instructables.com/json-api/showAuthorExists?screenName={}", "username_claimed": "blue" }, "Intigriti": { "errorType": "status_code", "regexCheck": "[a-z0-9_]{1,25}", "request_method": "GET", "url": "https://app.intigriti.com/profile/{}", "urlMain": "https://app.intigriti.com", "urlProbe": "https://api.intigriti.com/user/public/profile/{}", "username_claimed": "blue" }, "Ionic Forum": { "errorType": "status_code", "url": "https://forum.ionicframework.com/u/{}", "urlMain": "https://forum.ionicframework.com/", "username_claimed": "theblue222" }, "Issuu": { "errorType": "status_code", "url": "https://issuu.com/{}", "urlMain": "https://issuu.com/", "username_claimed": "jenny" }, "Itch.io": { "errorType": "status_code", "regexCheck": "^[a-zA-Z0-9@_-]$", "url": "https://{}.itch.io/", "urlMain": "https://itch.io/", "username_claimed": "blue" }, "Itemfix": { "errorMsg": "ItemFix - Channel: ", "errorType": "message", "url": "https://www.itemfix.com/c/{}", "urlMain": "https://www.itemfix.com/", "username_claimed": "blue" }, "Jellyfin Weblate": { "errorType": "status_code", "regexCheck": "^[a-zA-Z0-9@._-]{1,150}$", "url": "https://translate.jellyfin.org/user/{}/", "urlMain": "https://translate.jellyfin.org/", "username_claimed": "EraYaN" }, "Jimdo": { "errorType": "status_code", "regexCheck": "^[a-zA-Z0-9@_-]$", "url": "https://{}.jimdosite.com", "urlMain": "https://jimdosite.com/", "username_claimed": "jenny" }, "Joplin Forum": { "errorType": "status_code", "url": "https://discourse.joplinapp.org/u/{}", "urlMain": "https://discourse.joplinapp.org/", "username_claimed": "laurent" }, "KEAKR": { "errorType": "status_code", "url": "https://www.keakr.com/en/profile/{}", "urlMain": "https://www.keakr.com/", "username_claimed": "beats" }, "Kaggle": { "errorType": "status_code", "url": "https://www.kaggle.com/{}", "urlMain": "https://www.kaggle.com/", "username_claimed": "dansbecker" }, "Keybase": { "errorType": "status_code", "url": "https://keybase.io/{}", "urlMain": "https://keybase.io/", "username_claimed": "blue" }, "Kick": { "__comment__": "Cloudflare. Only viable when proxied.", "errorMsg": "Not Found", "errorType": "message", "url": "https://kick.com/{}", "urlMain": "https://kick.com/", "urlProbe": "https://kick.com/api/v2/channels/{}", "username_claimed": "blue" }, "Kik": { "errorMsg": "The page you requested was not found", "errorType": "message", "url": "https://kik.me/{}", "urlMain": "http://kik.me/", "urlProbe": "https://ws2.kik.com/user/{}", "username_claimed": "blue" }, "Kongregate": { "errorType": "status_code", "headers": { "Accept": "text/html", "User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/116.0" }, "regexCheck": "^[a-zA-Z][a-zA-Z0-9_-]*$", "url": "https://www.kongregate.com/accounts/{}", "urlMain": "https://www.kongregate.com/", "username_claimed": "blue" }, "LOR": { "errorType": "status_code", "url": "https://www.linux.org.ru/people/{}/profile", "urlMain": "https://linux.org.ru/", "username_claimed": "red" }, "Launchpad": { "errorType": "status_code", "url": "https://launchpad.net/~{}", "urlMain": "https://launchpad.net/", "username_claimed": "blue" }, "LeetCode": { "errorType": "status_code", "url": "https://leetcode.com/{}", "urlMain": "https://leetcode.com/", "username_claimed": "blue" }, "LessWrong": { "errorType": "status_code", "url": "https://www.lesswrong.com/users/@{}", "urlMain": "https://www.lesswrong.com/", "username_claimed": "blue" }, "Letterboxd": { "errorMsg": "Sorry, we can\u2019t find the page you\u2019ve requested.", "errorType": "message", "url": "https://letterboxd.com/{}", "urlMain": "https://letterboxd.com/", "username_claimed": "blue" }, "LibraryThing": { "errorMsg": "Catalog your books online", "errorType": "message", "url": "https://www.librarything.com/profile/{}", "urlMain": "https://www.librarything.com/", "username_claimed": "blue" }, "Lichess": { "errorMsg": "Page not found!", "errorType": "message", "url": "https://lichess.org/@/{}", "urlMain": "https://lichess.org", "username_claimed": "blue" }, "LinkedIn": { "errorType": "status_code", "headers": { "User-Agent": "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/W.X.Y.Z Safari/537.36" }, "regexCheck": "^[a-zA-Z0-9]{3,100}$", "request_method": "GET", "url": "https://linkedin.com/in/{}", "urlMain": "https://linkedin.com", "username_claimed": "paulpfeister" }, "Linktree": { "errorMsg": "\"statusCode\":404", "errorType": "message", "regexCheck": "^[\\w\\.]{2,30}$", "url": "https://linktr.ee/{}", "urlMain": "https://linktr.ee/", "username_claimed": "anne" }, "Listed": { "errorType": "response_url", "errorUrl": "https://listed.to/@{}", "url": "https://listed.to/@{}", "urlMain": "https://listed.to/", "username_claimed": "listed" }, "LiveJournal": { "errorType": "status_code", "regexCheck": "^[a-zA-Z][a-zA-Z0-9_-]*$", "url": "https://{}.livejournal.com", "urlMain": "https://www.livejournal.com/", "username_claimed": "blue" }, "Lobsters": { "errorType": "status_code", "regexCheck": "[A-Za-z0-9][A-Za-z0-9_-]{0,24}", "url": "https://lobste.rs/u/{}", "urlMain": "https://lobste.rs/", "username_claimed": "jcs" }, "LottieFiles": { "errorType": "status_code", "url": "https://lottiefiles.com/{}", "urlMain": "https://lottiefiles.com/", "username_claimed": "lottiefiles" }, "LushStories": { "errorType": "status_code", "isNSFW": true, "url": "https://www.lushstories.com/profile/{}", "urlMain": "https://www.lushstories.com/", "username_claimed": "chris_brown" }, "MMORPG Forum": { "errorType": "status_code", "url": "https://forums.mmorpg.com/profile/{}", "urlMain": "https://forums.mmorpg.com/", "username_claimed": "goku" }, "Mapify": { "errorType": "response_url", "errorUrl": "https://mapify.travel/{}", "url": "https://mapify.travel/{}", "urlMain": "https://mapify.travel/", "username_claimed": "mapify" }, "Medium": { "errorMsg": "Nitro Type | Competitive Typing Game | Race Your Friends", "errorType": "message", "url": "https://www.nitrotype.com/racer/{}", "urlMain": "https://www.nitrotype.com/", "username_claimed": "jianclash" }, "NotABug.org": { "errorType": "status_code", "url": "https://notabug.org/{}", "urlMain": "https://notabug.org/", "urlProbe": "https://notabug.org/{}/followers", "username_claimed": "red" }, "Nyaa.si": { "errorType": "status_code", "url": "https://nyaa.si/user/{}", "urlMain": "https://nyaa.si/", "username_claimed": "blue" }, "OGUsers": { "errorType": "status_code", "url": "https://ogu.gg/{}", "urlMain": "https://ogu.gg/", "username_claimed": "ogusers" }, "OpenStreetMap": { "errorType": "status_code", "regexCheck": "^[^.]*?$", "url": "https://www.openstreetmap.org/user/{}", "urlMain": "https://www.openstreetmap.org/", "username_claimed": "blue" }, "Opensource": { "errorType": "status_code", "url": "https://opensource.com/users/{}", "urlMain": "https://opensource.com/", "username_claimed": "red" }, "OurDJTalk": { "errorMsg": "The specified member cannot be found", "errorType": "message", "url": "https://ourdjtalk.com/members?username={}", "urlMain": "https://ourdjtalk.com/", "username_claimed": "steve" }, "PCGamer": { "errorMsg": "The specified member cannot be found. Please enter a member's entire name.", "errorType": "message", "url": "https://forums.pcgamer.com/members/?username={}", "urlMain": "https://pcgamer.com", "username_claimed": "admin" }, "PSNProfiles.com": { "errorType": "response_url", "errorUrl": "https://psnprofiles.com/?psnId={}", "url": "https://psnprofiles.com/{}", "urlMain": "https://psnprofiles.com/", "username_claimed": "blue" }, "Packagist": { "errorType": "response_url", "errorUrl": "https://packagist.org/search/?q={}&reason=vendor_not_found", "url": "https://packagist.org/packages/{}/", "urlMain": "https://packagist.org/", "username_claimed": "psr" }, "Pastebin": { "errorMsg": "Not Found (#404)", "errorType": "message", "url": "https://pastebin.com/u/{}", "urlMain": "https://pastebin.com/", "username_claimed": "blue" }, "Patreon": { "errorType": "status_code", "url": "https://www.patreon.com/{}", "urlMain": "https://www.patreon.com/", "username_claimed": "blue" }, "PentesterLab": { "errorType": "status_code", "regexCheck": "^[\\w]{4,30}$", "url": "https://pentesterlab.com/profile/{}", "urlMain": "https://pentesterlab.com/", "username_claimed": "0day" }, "PepperIT": { "errorMsg": "La pagina che hai provato a raggiungere non si trova qui", "errorType": "message", "url": "https://www.pepper.it/profile/{}/overview", "urlMain": "https://www.pepper.it", "username_claimed": "asoluinostrisca" }, "Periscope": { "errorType": "status_code", "url": "https://www.periscope.tv/{}/", "urlMain": "https://www.periscope.tv/", "username_claimed": "blue" }, "Pinkbike": { "errorType": "status_code", "regexCheck": "^[^.]*?$", "url": "https://www.pinkbike.com/u/{}/", "urlMain": "https://www.pinkbike.com/", "username_claimed": "blue" }, "PlayStore": { "errorType": "status_code", "url": "https://play.google.com/store/apps/developer?id={}", "urlMain": "https://play.google.com/store", "username_claimed": "Facebook" }, "PocketStars": { "errorMsg": "Join Your Favorite Adult Stars", "errorType": "message", "isNSFW": true, "url": "https://pocketstars.com/{}", "urlMain": "https://pocketstars.com/", "username_claimed": "hacker" }, "Pokemon Showdown": { "errorType": "status_code", "url": "https://pokemonshowdown.com/users/{}", "urlMain": "https://pokemonshowdown.com", "username_claimed": "blue" }, "Polarsteps": { "errorType": "status_code", "url": "https://polarsteps.com/{}", "urlMain": "https://polarsteps.com/", "urlProbe": "https://api.polarsteps.com/users/byusername/{}", "username_claimed": "james" }, "Polygon": { "errorType": "status_code", "url": "https://www.polygon.com/users/{}", "urlMain": "https://www.polygon.com/", "username_claimed": "swiftstickler" }, "Polymart": { "errorType": "response_url", "errorUrl": "https://polymart.org/user/-1", "url": "https://polymart.org/user/{}", "urlMain": "https://polymart.org/", "username_claimed": "craciu25yt" }, "Pornhub": { "errorType": "status_code", "isNSFW": true, "url": "https://pornhub.com/users/{}", "urlMain": "https://pornhub.com/", "username_claimed": "blue" }, "ProductHunt": { "errorMsg": "We seem to have lost this page", "errorType": "message", "url": "https://www.producthunt.com/@{}", "urlMain": "https://www.producthunt.com/", "username_claimed": "jenny" }, "PromoDJ": { "errorType": "status_code", "url": "http://promodj.com/{}", "urlMain": "http://promodj.com/", "username_claimed": "blue" }, "PyPi": { "errorType": "status_code", "url": "https://pypi.org/user/{}", "urlMain": "https://pypi.org", "username_claimed": "Blue" }, "Rajce.net": { "errorType": "status_code", "regexCheck": "^[a-zA-Z0-9@_-]$", "url": "https://{}.rajce.idnes.cz/", "urlMain": "https://www.rajce.idnes.cz/", "username_claimed": "blue" }, "Rate Your Music": { "errorType": "status_code", "url": "https://rateyourmusic.com/~{}", "urlMain": "https://rateyourmusic.com/", "username_claimed": "blue" }, "Rclone Forum": { "errorType": "status_code", "url": "https://forum.rclone.org/u/{}", "urlMain": "https://forum.rclone.org/", "username_claimed": "ncw" }, "RedTube": { "errorType": "status_code", "isNSFW": true, "url": "https://www.redtube.com/users/{}", "urlMain": "https://www.redtube.com/", "username_claimed": "hacker" }, "Redbubble": { "errorType": "status_code", "url": "https://www.redbubble.com/people/{}", "urlMain": "https://www.redbubble.com/", "username_claimed": "blue" }, "Reddit": { "errorMsg": "Sorry, nobody on Reddit goes by that name.", "errorType": "message", "headers": { "accept-language": "en-US,en;q=0.9" }, "url": "https://www.reddit.com/user/{}", "urlMain": "https://www.reddit.com/", "username_claimed": "blue" }, "Reisefrage": { "errorType": "status_code", "url": "https://www.reisefrage.net/nutzer/{}", "urlMain": "https://www.reisefrage.net/", "username_claimed": "reisefrage" }, "Replit.com": { "errorType": "status_code", "url": "https://replit.com/@{}", "urlMain": "https://replit.com/", "username_claimed": "blue" }, "ResearchGate": { "errorType": "response_url", "errorUrl": "https://www.researchgate.net/directory/profiles", "regexCheck": "\\w+_\\w+", "url": "https://www.researchgate.net/profile/{}", "urlMain": "https://www.researchgate.net/", "username_claimed": "John_Smith" }, "ReverbNation": { "errorMsg": "Sorry, we couldn't find that page", "errorType": "message", "url": "https://www.reverbnation.com/{}", "urlMain": "https://www.reverbnation.com/", "username_claimed": "blue" }, "Roblox": { "errorMsg": "Page cannot be found or no longer exists", "errorType": "message", "url": "https://www.roblox.com/user.aspx?username={}", "urlMain": "https://www.roblox.com/", "username_claimed": "bluewolfekiller" }, "RocketTube": { "errorMsg": "OOPS! Houston, we have a problem", "errorType": "message", "isNSFW": true, "url": "https://www.rockettube.com/{}", "urlMain": "https://www.rockettube.com/", "username_claimed": "Tatteddick5600" }, "RoyalCams": { "errorType": "status_code", "url": "https://royalcams.com/profile/{}", "urlMain": "https://royalcams.com", "username_claimed": "asuna-black" }, "RubyGems": { "errorType": "status_code", "regexCheck": "^[a-zA-Z][a-zA-Z0-9_-]{1,40}", "url": "https://rubygems.org/profiles/{}", "urlMain": "https://rubygems.org/", "username_claimed": "blue" }, "Rumble": { "errorType": "status_code", "url": "https://rumble.com/user/{}", "urlMain": "https://rumble.com/", "username_claimed": "John" }, "RuneScape": { "errorMsg": "{\"error\":\"NO_PROFILE\",\"loggedIn\":\"false\"}", "errorType": "message", "regexCheck": "^(?! )[\\w -]{1,12}(?Telegram Messenger", "If you have Telegram, you can contact
TGx:Can't show details", "errorType": "message", "regexCheck": "^[A-Za-z0-9]{3,15}$", "url": "https://torrentgalaxy.to/profile/{}", "urlMain": "https://torrentgalaxy.to/", "username_claimed": "GalaxyRG" }, "TradingView": { "errorType": "status_code", "request_method": "GET", "url": "https://www.tradingview.com/u/{}/", "urlMain": "https://www.tradingview.com/", "username_claimed": "blue" }, "Trakt": { "errorType": "status_code", "regexCheck": "^[^.]*$", "url": "https://www.trakt.tv/users/{}", "urlMain": "https://www.trakt.tv/", "username_claimed": "blue" }, "TrashboxRU": { "errorType": "status_code", "regexCheck": "^[A-Za-z0-9_-]{3,16}$", "url": "https://trashbox.ru/users/{}", "urlMain": "https://trashbox.ru/", "username_claimed": "blue" }, "Trawelling": { "errorType": "status_code", "url": "https://traewelling.de/@{}", "urlMain": "https://traewelling.de/", "username_claimed": "lassestolley" }, "Trello": { "errorMsg": "model not found", "errorType": "message", "url": "https://trello.com/{}", "urlMain": "https://trello.com/", "urlProbe": "https://trello.com/1/Members/{}", "username_claimed": "blue" }, "TryHackMe": { "errorMsg": "{\"success\":false}", "errorType": "message", "regexCheck": "^[a-zA-Z0-9.]{1,16}$", "url": "https://tryhackme.com/p/{}", "urlMain": "https://tryhackme.com/", "urlProbe": "https://tryhackme.com/api/user/exist/{}", "username_claimed": "ashu" }, "Tuna": { "errorType": "status_code", "regexCheck": "^[a-z0-9]{4,40}$", "url": "https://tuna.voicemod.net/user/{}", "urlMain": "https://tuna.voicemod.net/", "username_claimed": "bob" }, "Tweakers": { "errorType": "status_code", "url": "https://tweakers.net/gallery/{}", "urlMain": "https://tweakers.net", "username_claimed": "femme" }, "Twitch": { "errorType": "status_code", "url": "https://www.twitch.tv/{}", "urlMain": "https://www.twitch.tv/", "urlProbe": "https://m.twitch.tv/{}", "username_claimed": "jenny" }, "Twitter": { "errorMsg": "
User ", "errorType": "message", "regexCheck": "^[a-zA-Z0-9_]{1,15}$", "url": "https://x.com/{}", "urlMain": "https://x.com/", "urlProbe": "https://nitter.net/{}", "username_claimed": "blue" }, "Typeracer": { "errorMsg": "Profile Not Found", "errorType": "message", "url": "https://data.typeracer.com/pit/profile?user={}", "urlMain": "https://typeracer.com", "username_claimed": "blue" }, "Ultimate-Guitar": { "errorType": "status_code", "url": "https://ultimate-guitar.com/u/{}", "urlMain": "https://ultimate-guitar.com/", "username_claimed": "blue" }, "Unsplash": { "errorType": "status_code", "regexCheck": "^[a-z0-9_]{1,60}$", "url": "https://unsplash.com/@{}", "urlMain": "https://unsplash.com/", "username_claimed": "jenny" }, "Untappd": { "errorType": "status_code", "url": "https://untappd.com/user/{}", "urlMain": "https://untappd.com/", "username_claimed": "untappd" }, "VK": { "errorType": "response_url", "errorUrl": "https://www.quora.com/profile/{}", "url": "https://vk.com/{}", "urlMain": "https://vk.com/", "username_claimed": "brown" }, "VSCO": { "errorType": "status_code", "url": "https://vsco.co/{}", "urlMain": "https://vsco.co/", "username_claimed": "blue" }, "Velomania": { "errorMsg": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u0438 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043f\u0440\u043e\u0444\u0438\u043b\u044f \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430.", "errorType": "message", "url": "https://forum.velomania.ru/member.php?username={}", "urlMain": "https://forum.velomania.ru/", "username_claimed": "red" }, "Venmo": { "errorMsg": [ "Venmo | Page Not Found" ], "errorType": "message", "headers": { "Host": "account.venmo.com" }, "url": "https://account.venmo.com/u/{}", "urlMain": "https://venmo.com/", "urlProbe": "https://test1.venmo.com/u/{}", "username_claimed": "jenny" }, "Vero": { "errorType": "status_code", "request_method": "GET", "url": "https://vero.co/{}", "urlMain": "https://vero.co/", "username_claimed": "blue" }, "Vimeo": { "errorType": "status_code", "url": "https://vimeo.com/{}", "urlMain": "https://vimeo.com/", "username_claimed": "blue" }, "VirusTotal": { "errorType": "status_code", "request_method": "GET", "url": "https://www.virustotal.com/gui/user/{}", "urlMain": "https://www.virustotal.com/", "urlProbe": "https://www.virustotal.com/ui/users/{}/avatar", "username_claimed": "blue" }, "WICG Forum": { "errorType": "status_code", "regexCheck": "^(?![.-])[a-zA-Z0-9_.-]{3,20}$", "url": "https://discourse.wicg.io/u/{}/summary", "urlMain": "https://discourse.wicg.io/", "username_claimed": "stefano" }, "Warrior Forum": { "errorType": "status_code", "url": "https://www.warriorforum.com/members/{}.html", "urlMain": "https://www.warriorforum.com/", "username_claimed": "blue" }, "Wattpad": { "errorType": "status_code", "url": "https://www.wattpad.com/user/{}", "urlMain": "https://www.wattpad.com/", "urlProbe": "https://www.wattpad.com/api/v3/users/{}/", "username_claimed": "Dogstho7951" }, "WebNode": { "errorType": "status_code", "regexCheck": "^[a-zA-Z0-9@_-]$", "url": "https://{}.webnode.cz/", "urlMain": "https://www.webnode.cz/", "username_claimed": "radkabalcarova" }, "Weblate": { "errorType": "status_code", "regexCheck": "^[a-zA-Z0-9@._-]{1,150}$", "url": "https://hosted.weblate.org/user/{}/", "urlMain": "https://hosted.weblate.org/", "username_claimed": "adam" }, "Weebly": { "errorType": "status_code", "url": "https://{}.weebly.com/", "urlMain": "https://weebly.com/", "username_claimed": "blue" }, "Wikidot": { "errorMsg": "User does not exist.", "errorType": "message", "url": "http://www.wikidot.com/user:info/{}", "urlMain": "http://www.wikidot.com/", "username_claimed": "blue" }, "Wikipedia": { "errorMsg": "centralauth-admin-nonexistent:", "errorType": "message", "url": "https://en.wikipedia.org/wiki/Special:CentralAuth/{}?uselang=qqx", "urlMain": "https://www.wikipedia.org/", "username_claimed": "Hoadlck" }, "Windy": { "errorType": "status_code", "url": "https://community.windy.com/user/{}", "urlMain": "https://windy.com/", "username_claimed": "blue" }, "Wix": { "errorType": "status_code", "regexCheck": "^[a-zA-Z0-9@_-]$", "url": "https://{}.wix.com", "urlMain": "https://wix.com/", "username_claimed": "support" }, "WolframalphaForum": { "errorType": "status_code", "url": "https://community.wolfram.com/web/{}/home", "urlMain": "https://community.wolfram.com/", "username_claimed": "unico" }, "WordPress": { "errorType": "response_url", "errorUrl": "wordpress.com/typo/?subdomain=", "regexCheck": "^[a-zA-Z][a-zA-Z0-9_-]*$", "url": "https://{}.wordpress.com/", "urlMain": "https://wordpress.com", "username_claimed": "blue" }, "WordPressOrg": { "errorType": "response_url", "errorUrl": "https://wordpress.org", "url": "https://profiles.wordpress.org/{}/", "urlMain": "https://wordpress.org/", "username_claimed": "blue" }, "Wordnik": { "errorMsg": "Page Not Found", "errorType": "message", "regexCheck": "^[a-zA-Z0-9_.+-]{1,40}$", "url": "https://www.wordnik.com/users/{}", "urlMain": "https://www.wordnik.com/", "username_claimed": "blue" }, "Wykop": { "errorType": "status_code", "url": "https://www.wykop.pl/ludzie/{}", "urlMain": "https://www.wykop.pl", "username_claimed": "blue" }, "Xbox Gamertag": { "errorType": "status_code", "url": "https://xboxgamertag.com/search/{}", "urlMain": "https://xboxgamertag.com/", "username_claimed": "red" }, "Xvideos": { "errorType": "status_code", "isNSFW": true, "url": "https://xvideos.com/profiles/{}", "urlMain": "https://xvideos.com/", "username_claimed": "blue" }, "YandexMusic": { "__comment__": "The first and third errorMsg relate to geo-restrictions and bot detection/captchas.", "errorMsg": [ "\u041e\u0448\u0438\u0431\u043a\u0430 404", " --tor and --unique-tor are now DEPRECATED, and may be removed in a future release of Sherlock.") print("> If you've installed Sherlock via pip, you can include the optional dependency via `pip install 'sherlock-project[tor]'`.") print("> Other packages should refer to their documentation, or install it separately with `pip install torrequest`.\n") sys.exit(query_notify.finish()) print("Important!") print("> --tor and --unique-tor are now DEPRECATED, and may be removed in a future release of Sherlock.") # Requests using Tor obfuscation try: underlying_request = TorRequest() except OSError: print("Tor not found in system path. Unable to continue.\n") sys.exit(query_notify.finish()) underlying_session = underlying_request.session else: # Normal requests underlying_session = requests.session() underlying_request = requests.Request() # Limit number of workers to 20. # This is probably vastly overkill. if len(site_data) >= 20: max_workers = 20 else: max_workers = len(site_data) # Create multi-threaded session for all requests. session = SherlockFuturesSession( max_workers=max_workers, session=underlying_session ) # Results from analysis of all sites results_total = {} # First create futures for all requests. This allows for the requests to run in parallel for social_network, net_info in site_data.items(): # Results from analysis of this specific site results_site = {"url_main": net_info.get("urlMain")} # Record URL of main site # A user agent is needed because some sites don't return the correct # information since they think that we are bots (Which we actually are...) headers = { "User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/116.0", } if "headers" in net_info: # Override/append any extra headers required by a given site. headers.update(net_info["headers"]) # URL of user on site (if it exists) url = interpolate_string(net_info["url"], username.replace(' ', '%20')) # Don't make request if username is invalid for the site regex_check = net_info.get("regexCheck") if regex_check and re.search(regex_check, username) is None: # No need to do the check at the site: this username is not allowed. results_site["status"] = QueryResult( username, social_network, url, QueryStatus.ILLEGAL ) results_site["url_user"] = "" results_site["http_status"] = "" results_site["response_text"] = "" query_notify.update(results_site["status"]) else: # URL of user on site (if it exists) results_site["url_user"] = url url_probe = net_info.get("urlProbe") request_method = net_info.get("request_method") request_payload = net_info.get("request_payload") request = None if request_method is not None: if request_method == "GET": request = session.get elif request_method == "HEAD": request = session.head elif request_method == "POST": request = session.post elif request_method == "PUT": request = session.put else: raise RuntimeError(f"Unsupported request_method for {url}") if request_payload is not None: request_payload = interpolate_string(request_payload, username) if url_probe is None: # Probe URL is normal one seen by people out on the web. url_probe = url else: # There is a special URL for probing existence separate # from where the user profile normally can be found. url_probe = interpolate_string(url_probe, username) if request is None: if net_info["errorType"] == "status_code": # In most cases when we are detecting by status code, # it is not necessary to get the entire body: we can # detect fine with just the HEAD response. request = session.head else: # Either this detect method needs the content associated # with the GET response, or this specific website will # not respond properly unless we request the whole page. request = session.get if net_info["errorType"] == "response_url": # Site forwards request to a different URL if username not # found. Disallow the redirect so we can capture the # http status from the original URL request. allow_redirects = False else: # Allow whatever redirect that the site wants to do. # The final result of the request will be what is available. allow_redirects = True # This future starts running the request in a new thread, doesn't block the main thread if proxy is not None: proxies = {"http": proxy, "https": proxy} future = request( url=url_probe, headers=headers, proxies=proxies, allow_redirects=allow_redirects, timeout=timeout, json=request_payload, ) else: future = request( url=url_probe, headers=headers, allow_redirects=allow_redirects, timeout=timeout, json=request_payload, ) # Store future in data for access later net_info["request_future"] = future # Reset identify for tor (if needed) if unique_tor: underlying_request.reset_identity() # Add this site's results into final dictionary with all the other results. results_total[social_network] = results_site # Open the file containing account links # Core logic: If tor requests, make them here. If multi-threaded requests, wait for responses for social_network, net_info in site_data.items(): # Retrieve results again results_site = results_total.get(social_network) # Retrieve other site information again url = results_site.get("url_user") status = results_site.get("status") if status is not None: # We have already determined the user doesn't exist here continue # Get the expected error type error_type = net_info["errorType"] # Retrieve future and ensure it has finished future = net_info["request_future"] r, error_text, exception_text = get_response( request_future=future, error_type=error_type, social_network=social_network ) # Get response time for response of our request. try: response_time = r.elapsed except AttributeError: response_time = None # Attempt to get request information try: http_status = r.status_code except Exception: http_status = "?" try: response_text = r.text.encode(r.encoding or "UTF-8") except Exception: response_text = "" query_status = QueryStatus.UNKNOWN error_context = None # As WAFs advance and evolve, they will occasionally block Sherlock and # lead to false positives and negatives. Fingerprints should be added # here to filter results that fail to bypass WAFs. Fingerprints should # be highly targetted. Comment at the end of each fingerprint to # indicate target and date fingerprinted. WAFHitMsgs = [ '.loading-spinner{visibility:hidden}body.no-js .challenge-running{display:none}body.dark{background-color:#222;color:#d9d9d9}body.dark a{color:#fff}body.dark a:hover{color:#ee730a;text-decoration:underline}body.dark .lds-ring div{border-color:#999 transparent transparent}body.dark .font-red{color:#b20f03}body.dark', # 2024-05-13 Cloudflare '{return l.onPageView}}),Object.defineProperty(r,"perimeterxIdentifiers",{enumerable:' # 2024-04-09 PerimeterX / Human Security ] if error_text is not None: error_context = error_text elif any(hitMsg in r.text for hitMsg in WAFHitMsgs): query_status = QueryStatus.WAF elif error_type == "message": # error_flag True denotes no error found in the HTML # error_flag False denotes error found in the HTML error_flag = True errors = net_info.get("errorMsg") # errors will hold the error message # it can be string or list # by isinstance method we can detect that # and handle the case for strings as normal procedure # and if its list we can iterate the errors if isinstance(errors, str): # Checks if the error message is in the HTML # if error is present we will set flag to False if errors in r.text: error_flag = False else: # If it's list, it will iterate all the error message for error in errors: if error in r.text: error_flag = False break if error_flag: query_status = QueryStatus.CLAIMED else: query_status = QueryStatus.AVAILABLE elif error_type == "status_code": error_codes = net_info.get("errorCode") query_status = QueryStatus.CLAIMED # Type consistency, allowing for both singlets and lists in manifest if isinstance(error_codes, int): error_codes = [error_codes] if error_codes is not None and r.status_code in error_codes: query_status = QueryStatus.AVAILABLE elif r.status_code >= 300 or r.status_code < 200: query_status = QueryStatus.AVAILABLE elif error_type == "response_url": # For this detection method, we have turned off the redirect. # So, there is no need to check the response URL: it will always # match the request. Instead, we will ensure that the response # code indicates that the request was successful (i.e. no 404, or # forward to some odd redirect). if 200 <= r.status_code < 300: query_status = QueryStatus.CLAIMED else: query_status = QueryStatus.AVAILABLE else: # It should be impossible to ever get here... raise ValueError( f"Unknown Error Type '{error_type}' for " f"site '{social_network}'" ) if dump_response: print("+++++++++++++++++++++") print(f"TARGET NAME : {social_network}") print(f"USERNAME : {username}") print(f"TARGET URL : {url}") print(f"TEST METHOD : {error_type}") try: print(f"STATUS CODES : {net_info['errorCode']}") except KeyError: pass print("Results...") try: print(f"RESPONSE CODE : {r.status_code}") except Exception: pass try: print(f"ERROR TEXT : {net_info['errorMsg']}") except KeyError: pass print(">>>>> BEGIN RESPONSE TEXT") try: print(r.text) except Exception: pass print("<<<<< END RESPONSE TEXT") print("VERDICT : " + str(query_status)) print("+++++++++++++++++++++") # Notify caller about results of query. result = QueryResult( username=username, site_name=social_network, site_url_user=url, status=query_status, query_time=response_time, context=error_context, ) query_notify.update(result) # Save status of request results_site["status"] = result # Save results from request results_site["http_status"] = http_status results_site["response_text"] = response_text # Add this site's results into final dictionary with all of the other results. results_total[social_network] = results_site return results_total def timeout_check(value): """Check Timeout Argument. Checks timeout for validity. Keyword Arguments: value -- Time in seconds to wait before timing out request. Return Value: Floating point number representing the time (in seconds) that should be used for the timeout. NOTE: Will raise an exception if the timeout in invalid. """ float_value = float(value) if float_value <= 0: raise ArgumentTypeError( f"Invalid timeout value: {value}. Timeout must be a positive number." ) return float_value def handler(signal_received, frame): """Exit gracefully without throwing errors Source: https://www.devdungeon.com/content/python-catch-sigint-ctrl-c """ sys.exit(0) def main(): parser = ArgumentParser( formatter_class=RawDescriptionHelpFormatter, description=f"{__longname__} (Version {__version__})", ) parser.add_argument( "--version", action="version", version=f"{__shortname__} v{__version__}", help="Display version information and dependencies.", ) parser.add_argument( "--verbose", "-v", "-d", "--debug", action="store_true", dest="verbose", default=False, help="Display extra debugging information and metrics.", ) parser.add_argument( "--folderoutput", "-fo", dest="folderoutput", help="If using multiple usernames, the output of the results will be saved to this folder.", ) parser.add_argument( "--output", "-o", dest="output", help="If using single username, the output of the result will be saved to this file.", ) parser.add_argument( "--tor", "-t", action="store_true", dest="tor", default=False, help="Make requests over Tor; increases runtime; requires Tor to be installed and in system path.", ) parser.add_argument( "--unique-tor", "-u", action="store_true", dest="unique_tor", default=False, help="Make requests over Tor with new Tor circuit after each request; increases runtime; requires Tor to be installed and in system path.", ) parser.add_argument( "--csv", action="store_true", dest="csv", default=False, help="Create Comma-Separated Values (CSV) File.", ) parser.add_argument( "--xlsx", action="store_true", dest="xlsx", default=False, help="Create the standard file for the modern Microsoft Excel spreadsheet (xlsx).", ) parser.add_argument( "--site", action="append", metavar="SITE_NAME", dest="site_list", default=[], help="Limit analysis to just the listed sites. Add multiple options to specify more than one site.", ) parser.add_argument( "--proxy", "-p", metavar="PROXY_URL", action="store", dest="proxy", default=None, help="Make requests over a proxy. e.g. socks5://127.0.0.1:1080", ) parser.add_argument( "--dump-response", action="store_true", dest="dump_response", default=False, help="Dump the HTTP response to stdout for targeted debugging.", ) parser.add_argument( "--json", "-j", metavar="JSON_FILE", dest="json_file", default=None, help="Load data from a JSON file or an online, valid, JSON file.", ) parser.add_argument( "--timeout", action="store", metavar="TIMEOUT", dest="timeout", type=timeout_check, default=60, help="Time (in seconds) to wait for response to requests (Default: 60)", ) parser.add_argument( "--print-all", action="store_true", dest="print_all", default=False, help="Output sites where the username was not found.", ) parser.add_argument( "--print-found", action="store_true", dest="print_found", default=True, help="Output sites where the username was found (also if exported as file).", ) parser.add_argument( "--no-color", action="store_true", dest="no_color", default=False, help="Don't color terminal output", ) parser.add_argument( "username", nargs="+", metavar="USERNAMES", action="store", help="One or more usernames to check with social networks. Check similar usernames using {?} (replace to '_', '-', '.').", ) parser.add_argument( "--browse", "-b", action="store_true", dest="browse", default=False, help="Browse to all results on default browser.", ) parser.add_argument( "--local", "-l", action="store_true", default=False, help="Force the use of the local data.json file.", ) parser.add_argument( "--nsfw", action="store_true", default=False, help="Include checking of NSFW sites from default list.", ) args = parser.parse_args() # If the user presses CTRL-C, exit gracefully without throwing errors signal.signal(signal.SIGINT, handler) # Check for newer version of Sherlock. If it exists, let the user know about it try: latest_release_raw = requests.get(forge_api_latest_release).text latest_release_json = json_loads(latest_release_raw) latest_remote_tag = latest_release_json["tag_name"] if latest_remote_tag[1:] != __version__: print( f"Update available! {__version__} --> {latest_remote_tag[1:]}" f"\n{latest_release_json['html_url']}" ) except Exception as error: print(f"A problem occurred while checking for an update: {error}") # Argument check # TODO regex check on args.proxy if args.tor and (args.proxy is not None): raise Exception("Tor and Proxy cannot be set at the same time.") # Make prompts if args.proxy is not None: print("Using the proxy: " + args.proxy) if args.tor or args.unique_tor: print("Using Tor to make requests") print( "Warning: some websites might refuse connecting over Tor, so note that using this option might increase connection errors." ) if args.no_color: # Disable color output. init(strip=True, convert=False) else: # Enable color output. init(autoreset=True) # Check if both output methods are entered as input. if args.output is not None and args.folderoutput is not None: print("You can only use one of the output methods.") sys.exit(1) # Check validity for single username output. if args.output is not None and len(args.username) != 1: print("You can only use --output with a single username") sys.exit(1) # Create object with all information about sites we are aware of. try: if args.local: sites = SitesInformation( os.path.join(os.path.dirname(__file__), "resources/data.json") ) else: sites = SitesInformation(args.json_file) except Exception as error: print(f"ERROR: {error}") sys.exit(1) if not args.nsfw: sites.remove_nsfw_sites(do_not_remove=args.site_list) # Create original dictionary from SitesInformation() object. # Eventually, the rest of the code will be updated to use the new object # directly, but this will glue the two pieces together. site_data_all = {site.name: site.information for site in sites} if args.site_list == []: # Not desired to look at a sub-set of sites site_data = site_data_all else: # User desires to selectively run queries on a sub-set of the site list. # Make sure that the sites are supported & build up pruned site database. site_data = {} site_missing = [] for site in args.site_list: counter = 0 for existing_site in site_data_all: if site.lower() == existing_site.lower(): site_data[existing_site] = site_data_all[existing_site] counter += 1 if counter == 0: # Build up list of sites not supported for future error message. site_missing.append(f"'{site}'") if site_missing: print(f"Error: Desired sites not found: {', '.join(site_missing)}.") if not site_data: sys.exit(1) # Create notify object for query results. query_notify = QueryNotifyPrint( result=None, verbose=args.verbose, print_all=args.print_all, browse=args.browse ) # Run report on all specified users. all_usernames = [] for username in args.username: if check_for_parameter(username): for name in multiple_usernames(username): all_usernames.append(name) else: all_usernames.append(username) for username in all_usernames: results = sherlock( username, site_data, query_notify, tor=args.tor, unique_tor=args.unique_tor, dump_response=args.dump_response, proxy=args.proxy, timeout=args.timeout, ) if args.output: result_file = args.output elif args.folderoutput: # The usernames results should be stored in a targeted folder. # If the folder doesn't exist, create it first os.makedirs(args.folderoutput, exist_ok=True) result_file = os.path.join(args.folderoutput, f"{username}.txt") else: result_file = f"{username}.txt" with open(result_file, "w", encoding="utf-8") as file: exists_counter = 0 for website_name in results: dictionary = results[website_name] if dictionary.get("status").status == QueryStatus.CLAIMED: exists_counter += 1 file.write(dictionary["url_user"] + "\n") file.write(f"Total Websites Username Detected On : {exists_counter}\n") if args.csv: result_file = f"{username}.csv" if args.folderoutput: # The usernames results should be stored in a targeted folder. # If the folder doesn't exist, create it first os.makedirs(args.folderoutput, exist_ok=True) result_file = os.path.join(args.folderoutput, result_file) with open(result_file, "w", newline="", encoding="utf-8") as csv_report: writer = csv.writer(csv_report) writer.writerow( [ "username", "name", "url_main", "url_user", "exists", "http_status", "response_time_s", ] ) for site in results: if ( args.print_found and not args.print_all and results[site]["status"].status != QueryStatus.CLAIMED ): continue response_time_s = results[site]["status"].query_time if response_time_s is None: response_time_s = "" writer.writerow( [ username, site, results[site]["url_main"], results[site]["url_user"], str(results[site]["status"].status), results[site]["http_status"], response_time_s, ] ) if args.xlsx: usernames = [] names = [] url_main = [] url_user = [] exists = [] http_status = [] response_time_s = [] for site in results: if ( args.print_found and not args.print_all and results[site]["status"].status != QueryStatus.CLAIMED ): continue if response_time_s is None: response_time_s.append("") else: response_time_s.append(results[site]["status"].query_time) usernames.append(username) names.append(site) url_main.append(results[site]["url_main"]) url_user.append(results[site]["url_user"]) exists.append(str(results[site]["status"].status)) http_status.append(results[site]["http_status"]) DataFrame = pd.DataFrame( { "username": usernames, "name": names, "url_main": url_main, "url_user": url_user, "exists": exists, "http_status": http_status, "response_time_s": response_time_s, } ) DataFrame.to_excel(f"{username}.xlsx", sheet_name="sheet1", index=False) print() query_notify.finish() if __name__ == "__main__": main() sherlock-0.15.0/sherlock_project/sites.py000066400000000000000000000222311464273343400204620ustar00rootroot00000000000000"""Sherlock Sites Information Module This module supports storing information about websites. This is the raw data that will be used to search for usernames. """ import json import requests import secrets class SiteInformation: def __init__(self, name, url_home, url_username_format, username_claimed, information, is_nsfw, username_unclaimed=secrets.token_urlsafe(10)): """Create Site Information Object. Contains information about a specific website. Keyword Arguments: self -- This object. name -- String which identifies site. url_home -- String containing URL for home of site. url_username_format -- String containing URL for Username format on site. NOTE: The string should contain the token "{}" where the username should be substituted. For example, a string of "https://somesite.com/users/{}" indicates that the individual usernames would show up under the "https://somesite.com/users/" area of the website. username_claimed -- String containing username which is known to be claimed on website. username_unclaimed -- String containing username which is known to be unclaimed on website. information -- Dictionary containing all known information about website. NOTE: Custom information about how to actually detect the existence of the username will be included in this dictionary. This information will be needed by the detection method, but it is only recorded in this object for future use. is_nsfw -- Boolean indicating if site is Not Safe For Work. Return Value: Nothing. """ self.name = name self.url_home = url_home self.url_username_format = url_username_format self.username_claimed = username_claimed self.username_unclaimed = secrets.token_urlsafe(32) self.information = information self.is_nsfw = is_nsfw return def __str__(self): """Convert Object To String. Keyword Arguments: self -- This object. Return Value: Nicely formatted string to get information about this object. """ return f"{self.name} ({self.url_home})" class SitesInformation: def __init__(self, data_file_path=None): """Create Sites Information Object. Contains information about all supported websites. Keyword Arguments: self -- This object. data_file_path -- String which indicates path to data file. The file name must end in ".json". There are 3 possible formats: * Absolute File Format For example, "c:/stuff/data.json". * Relative File Format The current working directory is used as the context. For example, "data.json". * URL Format For example, "https://example.com/data.json", or "http://example.com/data.json". An exception will be thrown if the path to the data file is not in the expected format, or if there was any problem loading the file. If this option is not specified, then a default site list will be used. Return Value: Nothing. """ if not data_file_path: # The default data file is the live data.json which is in the GitHub repo. The reason why we are using # this instead of the local one is so that the user has the most up-to-date data. This prevents # users from creating issue about false positives which has already been fixed or having outdated data data_file_path = "https://raw.githubusercontent.com/sherlock-project/sherlock/master/sherlock_project/resources/data.json" # Ensure that specified data file has correct extension. if not data_file_path.lower().endswith(".json"): raise FileNotFoundError(f"Incorrect JSON file extension for data file '{data_file_path}'.") # if "http://" == data_file_path[:7].lower() or "https://" == data_file_path[:8].lower(): if data_file_path.lower().startswith("http"): # Reference is to a URL. try: response = requests.get(url=data_file_path) except Exception as error: raise FileNotFoundError( f"Problem while attempting to access data file URL '{data_file_path}': {error}" ) if response.status_code != 200: raise FileNotFoundError(f"Bad response while accessing " f"data file URL '{data_file_path}'." ) try: site_data = response.json() except Exception as error: raise ValueError( f"Problem parsing json contents at '{data_file_path}': {error}." ) else: # Reference is to a file. try: with open(data_file_path, "r", encoding="utf-8") as file: try: site_data = json.load(file) except Exception as error: raise ValueError( f"Problem parsing json contents at '{data_file_path}': {error}." ) except FileNotFoundError: raise FileNotFoundError(f"Problem while attempting to access " f"data file '{data_file_path}'." ) site_data.pop('$schema', None) self.sites = {} # Add all site information from the json file to internal site list. for site_name in site_data: try: self.sites[site_name] = \ SiteInformation(site_name, site_data[site_name]["urlMain"], site_data[site_name]["url"], site_data[site_name]["username_claimed"], site_data[site_name], site_data[site_name].get("isNSFW",False) ) except KeyError as error: raise ValueError( f"Problem parsing json contents at '{data_file_path}': Missing attribute {error}." ) except TypeError: print(f"Encountered TypeError parsing json contents for target '{site_name}' at {data_file_path}\nSkipping target.\n") return def remove_nsfw_sites(self, do_not_remove: list = []): """ Remove NSFW sites from the sites, if isNSFW flag is true for site Keyword Arguments: self -- This object. Return Value: None """ sites = {} do_not_remove = [site.casefold() for site in do_not_remove] for site in self.sites: if self.sites[site].is_nsfw and site.casefold() not in do_not_remove: continue sites[site] = self.sites[site] self.sites = sites def site_name_list(self): """Get Site Name List. Keyword Arguments: self -- This object. Return Value: List of strings containing names of sites. """ return sorted([site.name for site in self], key=str.lower) def __iter__(self): """Iterator For Object. Keyword Arguments: self -- This object. Return Value: Iterator for sites object. """ for site_name in self.sites: yield self.sites[site_name] def __len__(self): """Length For Object. Keyword Arguments: self -- This object. Return Value: Length of sites object. """ return len(self.sites) sherlock-0.15.0/tests/000077500000000000000000000000001464273343400145635ustar00rootroot00000000000000sherlock-0.15.0/tests/conftest.py000066400000000000000000000015671464273343400167730ustar00rootroot00000000000000import os import json import urllib import pytest from sherlock_project.sites import SitesInformation @pytest.fixture() def sites_obj(): sites_obj = SitesInformation(data_file_path=os.path.join(os.path.dirname(__file__), "../sherlock_project/resources/data.json")) yield sites_obj @pytest.fixture(scope="session") def sites_info(): sites_obj = SitesInformation(data_file_path=os.path.join(os.path.dirname(__file__), "../sherlock_project/resources/data.json")) sites_iterable = {site.name: site.information for site in sites_obj} yield sites_iterable @pytest.fixture(scope="session") def remote_schema(): schema_url: str = 'https://raw.githubusercontent.com/sherlock-project/sherlock/master/sherlock_project/resources/data.schema.json' with urllib.request.urlopen(schema_url) as remoteschema: schemadat = json.load(remoteschema) yield schemadat sherlock-0.15.0/tests/few_test_basic.py000066400000000000000000000003771464273343400201250ustar00rootroot00000000000000import sherlock_project #from sherlock.sites import SitesInformation #local_manifest = data_file_path=os.path.join(os.path.dirname(__file__), "../sherlock/resources/data.json") def test_username_via_message(): sherlock_project.__main__("--version") sherlock-0.15.0/tests/sherlock_interactives.py000066400000000000000000000027271464273343400215370ustar00rootroot00000000000000import os import platform import re import subprocess class Interactives: def run_cli(args:str = "") -> str: """Pass arguments to Sherlock as a normal user on the command line""" # Adapt for platform differences (Windows likes to be special) if platform.system == "Windows": command:str = f"py -m sherlock {args}" else: command:str = f"sherlock {args}" proc_out:str = "" try: proc_out = subprocess.check_output(command, shell=True, stderr=subprocess.STDOUT) return proc_out.decode() except subprocess.CalledProcessError as e: raise InteractivesSubprocessError(e.output.decode()) # -> list[str] is prefered, but will require deprecation of support for Python 3.8 def walk_sherlock_for_files_with(pattern: str) -> list: """Check all files within the Sherlock package for matching patterns""" pattern:re.Pattern = re.compile(pattern) matching_files:list[str] = [] for root, dirs, files in os.walk("sherlock_project"): for file in files: file_path = os.path.join(root,file) if "__pycache__" in file_path: continue with open(file_path, 'r', errors='ignore') as f: if pattern.search(f.read()): matching_files.append(file_path) return matching_files class InteractivesSubprocessError(Exception): pass sherlock-0.15.0/tests/test_manifest.py000066400000000000000000000030041464273343400177770ustar00rootroot00000000000000import os import json import pytest from jsonschema import validate def test_validate_manifest_against_local_schema(): """Ensures that the manifest matches the local schema, for situations where the schema is being changed.""" json_relative: str = '../sherlock_project/resources/data.json' schema_relative: str = '../sherlock_project/resources/data.schema.json' json_path: str = os.path.join(os.path.dirname(__file__), json_relative) schema_path: str = os.path.join(os.path.dirname(__file__), schema_relative) with open(json_path, 'r') as f: jsondat = json.load(f) with open(schema_path, 'r') as f: schemadat = json.load(f) validate(instance=jsondat, schema=schemadat) @pytest.mark.online def test_validate_manifest_against_remote_schema(remote_schema): """Ensures that the manifest matches the remote schema, so as to not unexpectedly break clients.""" json_relative: str = '../sherlock_project/resources/data.json' json_path: str = os.path.join(os.path.dirname(__file__), json_relative) with open(json_path, 'r') as f: jsondat = json.load(f) validate(instance=jsondat, schema=remote_schema) # Ensure that the expected values are beind returned by the site list @pytest.mark.parametrize("target_name,target_expected_err_type", [ ('GitHub', 'status_code'), ('GitLab', 'message'), ]) def test_site_list_iterability (sites_info, target_name, target_expected_err_type): assert sites_info[target_name]['errorType'] == target_expected_err_type sherlock-0.15.0/tests/test_probes.py000066400000000000000000000110631464273343400174670ustar00rootroot00000000000000import pytest import random import string import re from sherlock_project.sherlock import sherlock from sherlock_project.notify import QueryNotify from sherlock_project.result import QueryStatus #from sherlock_interactives import Interactives def simple_query(sites_info: dict, site: str, username: str) -> QueryStatus: query_notify = QueryNotify() site_data: dict = {} site_data[site] = sites_info[site] return sherlock( username=username, site_data=site_data, query_notify=query_notify, )[site]['status'].status @pytest.mark.online class TestLiveTargets: """Actively test probes against live and trusted targets""" # Known positives should only use sites trusted to be reliable and unchanging @pytest.mark.parametrize('site,username',[ ('GitLab', 'ppfeister'), ('AllMyLinks', 'blue'), ]) def test_known_positives_via_message(self, sites_info, site, username): assert simple_query(sites_info=sites_info, site=site, username=username) is QueryStatus.CLAIMED # Known positives should only use sites trusted to be reliable and unchanging @pytest.mark.parametrize('site,username',[ ('GitHub', 'ppfeister'), ('GitHub', 'sherlock-project'), ('Docker Hub', 'ppfeister'), ('Docker Hub', 'sherlock'), ]) def test_known_positives_via_status_code(self, sites_info, site, username): assert simple_query(sites_info=sites_info, site=site, username=username) is QueryStatus.CLAIMED # Known positives should only use sites trusted to be reliable and unchanging @pytest.mark.parametrize('site,username',[ ('BodyBuilding', 'blue'), ('devRant', 'blue'), ]) def test_known_positives_via_response_url(self, sites_info, site, username): assert simple_query(sites_info=sites_info, site=site, username=username) is QueryStatus.CLAIMED # Randomly generate usernames of high length and test for positive availability # Randomly generated usernames should be simple alnum for simplicity and high # compatibility. Several attempts may be made ~just in case~ a real username is # generated. @pytest.mark.parametrize('site,random_len',[ ('GitLab', 255), ('Codecademy', 30) ]) def test_likely_negatives_via_message(self, sites_info, site, random_len): num_attempts: int = 3 attempted_usernames: list[str] = [] status: QueryStatus = QueryStatus.CLAIMED for i in range(num_attempts): acceptable_types = string.ascii_letters + string.digits random_handle = ''.join(random.choice(acceptable_types) for _ in range (random_len)) attempted_usernames.append(random_handle) status = simple_query(sites_info=sites_info, site=site, username=random_handle) if status is QueryStatus.AVAILABLE: break assert status is QueryStatus.AVAILABLE, f"Could not validate available username after {num_attempts} attempts with randomly generated usernames {attempted_usernames}." # Randomly generate usernames of high length and test for positive availability # Randomly generated usernames should be simple alnum for simplicity and high # compatibility. Several attempts may be made ~just in case~ a real username is # generated. @pytest.mark.parametrize('site,random_len',[ ('GitHub', 39), ('Docker Hub', 30) ]) def test_likely_negatives_via_status_code(self, sites_info, site, random_len): num_attempts: int = 3 attempted_usernames: list[str] = [] status: QueryStatus = QueryStatus.CLAIMED for i in range(num_attempts): acceptable_types = string.ascii_letters + string.digits random_handle = ''.join(random.choice(acceptable_types) for _ in range (random_len)) attempted_usernames.append(random_handle) status = simple_query(sites_info=sites_info, site=site, username=random_handle) if status is QueryStatus.AVAILABLE: break assert status is QueryStatus.AVAILABLE, f"Could not validate available username after {num_attempts} attempts with randomly generated usernames {attempted_usernames}." def test_username_illegal_regex(sites_info): site: str = 'BitBucket' invalid_handle: str = '*#$Y&*JRE' pattern = re.compile(sites_info[site]['regexCheck']) # Ensure that the username actually fails regex before testing sherlock assert pattern.match(invalid_handle) is None assert simple_query(sites_info=sites_info, site=site, username=invalid_handle) is QueryStatus.ILLEGAL sherlock-0.15.0/tests/test_ux.py000066400000000000000000000034231464273343400166320ustar00rootroot00000000000000import pytest from sherlock_project import sherlock from sherlock_interactives import Interactives from sherlock_interactives import InteractivesSubprocessError def test_remove_nsfw(sites_obj): nsfw_target: str = 'Pornhub' assert nsfw_target in {site.name: site.information for site in sites_obj} sites_obj.remove_nsfw_sites() assert nsfw_target not in {site.name: site.information for site in sites_obj} # Parametrized sites should *not* include Motherless, which is acting as the control @pytest.mark.parametrize('nsfwsites', [ ['Pornhub'], ['Pornhub', 'Xvideos'], ]) def test_nsfw_explicit_selection(sites_obj, nsfwsites): for site in nsfwsites: assert site in {site.name: site.information for site in sites_obj} sites_obj.remove_nsfw_sites(do_not_remove=nsfwsites) for site in nsfwsites: assert site in {site.name: site.information for site in sites_obj} assert 'Motherless' not in {site.name: site.information for site in sites_obj} def test_wildcard_username_expansion(): assert sherlock.check_for_parameter('test{?}test') is True assert sherlock.check_for_parameter('test{.}test') is False assert sherlock.check_for_parameter('test{}test') is False assert sherlock.check_for_parameter('testtest') is False assert sherlock.check_for_parameter('test{?test') is False assert sherlock.check_for_parameter('test?}test') is False assert sherlock.multiple_usernames('test{?}test') == ["test_test" , "test-test" , "test.test"] @pytest.mark.parametrize('cliargs', [ '', '--site urghrtuight --egiotr', '--', ]) def test_no_usernames_provided(cliargs): with pytest.raises(InteractivesSubprocessError, match=r"error: the following arguments are required: USERNAMES"): Interactives.run_cli(cliargs) sherlock-0.15.0/tests/test_version.py000066400000000000000000000013011464273343400176540ustar00rootroot00000000000000import os from sherlock_interactives import Interactives import sherlock_project def test_versioning() -> None: # Ensure __version__ matches version presented to the user assert sherlock_project.__version__ in Interactives.run_cli("--version") # Ensure __init__ is single source of truth for __version__ in package # Temporarily allows sherlock.py so as to not trigger early upgrades found:list = Interactives.walk_sherlock_for_files_with(r'__version__ *= *') expected:list = [ # Normalization is REQUIRED for Windows ( / vs \ ) os.path.normpath("sherlock_project/__init__.py"), ] # Sorting is REQUIRED for Mac assert sorted(found) == sorted(expected) sherlock-0.15.0/tox.ini000066400000000000000000000011751464273343400147400ustar00rootroot00000000000000[tox] requires = tox >= 3 envlist = lint py313 py312 py311 py310 py39 py38 [testenv] description = Attempt to build and install the package deps = coverage jsonschema pytest allowlist_externals = coverage commands = coverage run --source=sherlock_project --module pytest -v coverage report --show-missing [testenv:offline] deps = jsonschema pytest commands = pytest -v -m "not online" [testenv:lint] description = Lint with Ruff deps = ruff commands = ruff check [gh-actions] python = 3.12: py312 3.11: py311 3.10: py310 3.9: py39 3.8: py38



Hunt down social media accounts by username across 400+ social networks

Additional documentation can be found at our GitHub repository