pax_global_header00006660000000000000000000000064144725231670014525gustar00rootroot0000000000000052 comment=6d251098710f3119af11ecdd8761929acb010fab bottom-0.9.6/000077500000000000000000000000001447252316700130455ustar00rootroot00000000000000bottom-0.9.6/.all-contributorsrc000066400000000000000000000264101447252316700167010ustar00rootroot00000000000000{ "files": [ "README.md" ], "imageSize": 100, "commit": false, "contributors": [ { "login": "shilangyu", "name": "Marcin Wojnarowski", "avatar_url": "https://avatars3.githubusercontent.com/u/29288116?v=4", "profile": "http://shilangyu.github.io", "contributions": [ "code", "platform" ] }, { "login": "mqudsi", "name": "Mahmoud Al-Qudsi", "avatar_url": "https://avatars3.githubusercontent.com/u/606923?v=4", "profile": "http://neosmart.net/", "contributions": [ "code" ] }, { "login": "andys8", "name": "Andy", "avatar_url": "https://avatars0.githubusercontent.com/u/13085980?v=4", "profile": "https://andys8.de", "contributions": [ "code" ] }, { "login": "HarHarLinks", "name": "Kim Brose", "avatar_url": "https://avatars0.githubusercontent.com/u/2803622?v=4", "profile": "https://github.com/HarHarLinks", "contributions": [ "code" ] }, { "login": "svenstaro", "name": "Sven-Hendrik Haase", "avatar_url": "https://avatars0.githubusercontent.com/u/1664?v=4", "profile": "https://svenstaro.org", "contributions": [ "doc" ] }, { "login": "tim77", "name": "Artem Polishchuk", "avatar_url": "https://avatars0.githubusercontent.com/u/5614476?v=4", "profile": "https://liberapay.com/Artem4/", "contributions": [ "platform", "doc" ] }, { "login": "runlevel5", "name": "Trung Lê", "avatar_url": "https://avatars2.githubusercontent.com/u/135605?v=4", "profile": "http://ruby-journal.com/", "contributions": [ "platform", "infra" ] }, { "login": "dm9pZCAq", "name": "dm9pZCAq", "avatar_url": "https://avatars1.githubusercontent.com/u/46228973?v=4", "profile": "https://github.com/dm9pZCAq", "contributions": [ "platform", "doc" ] }, { "login": "LlinksRechts", "name": "Lukas Rysavy", "avatar_url": "https://avatars2.githubusercontent.com/u/10536802?v=4", "profile": "https://lukor.org", "contributions": [ "code" ] }, { "login": "ehamberg", "name": "Erlend Hamberg", "avatar_url": "https://avatars3.githubusercontent.com/u/16063?v=4", "profile": "http://hamberg.no/erlend", "contributions": [ "code" ] }, { "login": "Frederick888", "name": "Frederick Zhang", "avatar_url": "https://avatars.githubusercontent.com/u/4507647?v=4", "profile": "https://onee3.org", "contributions": [ "code" ] }, { "login": "pvanheus", "name": "pvanheus", "avatar_url": "https://avatars.githubusercontent.com/u/4154788?v=4", "profile": "https://github.com/pvanheus", "contributions": [ "code" ] }, { "login": "vlakreeh", "name": "Zeb Piasecki", "avatar_url": "https://avatars.githubusercontent.com/u/14242997?v=4", "profile": "https://zebulon.dev/", "contributions": [ "code" ] }, { "login": "briandipalma", "name": "Brian Di Palma", "avatar_url": "https://avatars.githubusercontent.com/u/1597820?v=4", "profile": "https://github.com/briandipalma", "contributions": [ "doc" ] }, { "login": "dakyskye", "name": "Lasha Kanteladze", "avatar_url": "https://avatars.githubusercontent.com/u/32128756?v=4", "profile": "https://dakyskye.github.io", "contributions": [ "doc" ] }, { "login": "herbygillot", "name": "Herby Gillot", "avatar_url": "https://avatars.githubusercontent.com/u/618376?v=4", "profile": "https://github.com/herbygillot", "contributions": [ "doc" ] }, { "login": "yellowsquid", "name": "Greg Brown", "avatar_url": "https://avatars.githubusercontent.com/u/46519298?v=4", "profile": "https://github.com/yellowsquid", "contributions": [ "code" ] }, { "login": "TotalCaesar659", "name": "TotalCaesar659", "avatar_url": "https://avatars.githubusercontent.com/u/14265316?v=4", "profile": "https://github.com/TotalCaesar659", "contributions": [ "doc" ] }, { "login": "grawlinson", "name": "George Rawlinson", "avatar_url": "https://avatars.githubusercontent.com/u/4408051?v=4", "profile": "https://github.com/grawlinson", "contributions": [ "doc", "platform" ] }, { "login": "adiabatic", "name": "adiabatic", "avatar_url": "https://avatars.githubusercontent.com/u/101246?v=4", "profile": "https://www.frogorbits.com/", "contributions": [ "doc" ] }, { "login": "bowlofeggs", "name": "Randy Barlow", "avatar_url": "https://avatars.githubusercontent.com/u/354506?v=4", "profile": "https://electronsweatshop.com", "contributions": [ "code" ] }, { "login": "patricksjackson", "name": "Patrick Jackson", "avatar_url": "https://avatars.githubusercontent.com/u/160646?v=4", "profile": "http://jackson.dev", "contributions": [ "ideas", "doc" ] }, { "login": "mati865", "name": "Mateusz Mikuła", "avatar_url": "https://avatars.githubusercontent.com/u/1174646?v=4", "profile": "https://github.com/mati865", "contributions": [ "code" ] }, { "login": "GuillaumeGomez", "name": "Guillaume Gomez", "avatar_url": "https://avatars.githubusercontent.com/u/3050060?v=4", "profile": "https://blog.guillaume-gomez.fr", "contributions": [ "code" ] }, { "login": "shurizzle", "name": "shura", "avatar_url": "https://avatars.githubusercontent.com/u/203655?v=4", "profile": "https://github.com/shurizzle", "contributions": [ "code" ] }, { "login": "wezm", "name": "Wesley Moore", "avatar_url": "https://avatars.githubusercontent.com/u/21787?v=4", "profile": "https://www.wezm.net/", "contributions": [ "code" ] }, { "login": "xgdgsc", "name": "xgdgsc", "avatar_url": "https://avatars.githubusercontent.com/u/1189869?v=4", "profile": "https://github.com/xgdgsc", "contributions": [ "doc" ] }, { "login": "ViridiCanis", "name": "ViridiCanis", "avatar_url": "https://avatars.githubusercontent.com/u/49595344?v=4", "profile": "https://github.com/ViridiCanis", "contributions": [ "code" ] }, { "login": "jamartin9", "name": "Justin Martin", "avatar_url": "https://avatars.githubusercontent.com/u/7027701?v=4", "profile": "https://github.com/jamartin9", "contributions": [ "code", "doc" ] }, { "login": "DianaNites", "name": "Diana", "avatar_url": "https://avatars.githubusercontent.com/u/5275194?v=4", "profile": "https://github.com/DianaNites", "contributions": [ "code" ] }, { "login": "hervyqa", "name": "Hervy Qurrotul Ainur Rozi", "avatar_url": "https://avatars.githubusercontent.com/u/45872139?v=4", "profile": "https://hervyqa.id", "contributions": [ "doc" ] }, { "login": "mrivnak", "name": "Mike Rivnak", "avatar_url": "https://avatars.githubusercontent.com/u/7389355?v=4", "profile": "https://mrivnak.github.io", "contributions": [ "doc" ] }, { "login": "lroobrou", "name": "lroobrou", "avatar_url": "https://avatars.githubusercontent.com/u/35152113?v=4", "profile": "https://github.com/lroobrou", "contributions": [ "code" ] }, { "login": "database64128", "name": "database64128", "avatar_url": "https://avatars.githubusercontent.com/u/18757988?v=4", "profile": "https://cube64128.xyz/", "contributions": [ "code" ] }, { "login": "sou-chon", "name": "Chon Sou", "avatar_url": "https://avatars.githubusercontent.com/u/35537528?v=4", "profile": "https://github.com/sou-chon", "contributions": [ "code" ] }, { "login": "Drsheppard01", "name": "DrSheppard", "avatar_url": "https://avatars.githubusercontent.com/u/60893791?v=4", "profile": "https://github.com/Drsheppard01", "contributions": [ "doc" ] }, { "login": "RaresCon", "name": "Rareș Constantin", "avatar_url": "https://avatars.githubusercontent.com/u/95525840?v=4", "profile": "https://github.com/RaresCon", "contributions": [ "code" ] }, { "login": "felipesuri", "name": "felipesuri", "avatar_url": "https://avatars.githubusercontent.com/u/50281523?v=4", "profile": "http://felipesuri.com", "contributions": [ "doc" ] }, { "login": "spital", "name": "spital", "avatar_url": "https://avatars.githubusercontent.com/u/11034264?v=4", "profile": "https://github.com/spital", "contributions": [ "code" ] }, { "login": "mbikovitsky", "name": "Michael Bikovitsky", "avatar_url": "https://avatars.githubusercontent.com/u/1389811?v=4", "profile": "https://bikodbg.com/", "contributions": [ "code" ] }, { "login": "dvalter", "name": "Dmitry Valter", "avatar_url": "https://avatars.githubusercontent.com/u/38795282?v=4", "profile": "https://github.com/dvalter", "contributions": [ "code" ] }, { "login": "aragonnetje6", "name": "Twan Stok", "avatar_url": "https://avatars.githubusercontent.com/u/69118097?v=4", "profile": "https://github.com/aragonnetje6", "contributions": [ "code" ] }, { "login": "yshui", "name": "Yuxuan Shui", "avatar_url": "https://avatars.githubusercontent.com/u/366851?v=4", "profile": "https://github.com/yshui", "contributions": [ "code" ] }, { "login": "WenqingZong", "name": "Wenqing Zong", "avatar_url": "https://avatars.githubusercontent.com/u/43934749?v=4", "profile": "http://zongwenqing.com", "contributions": [ "code" ] }, { "login": "gabelluardo", "name": "Gabriele Belluardo", "avatar_url": "https://avatars.githubusercontent.com/u/42920247?v=4", "profile": "http://gabelluardo.github.io", "contributions": [ "code" ] }, { "login": "zebp", "name": "Zeb Piasecki", "avatar_url": "https://avatars.githubusercontent.com/u/14242997?v=4", "profile": "https://zebulon.dev/", "contributions": [ "code" ] } ], "contributorsPerLine": 7, "projectName": "bottom", "projectOwner": "ClementTsang", "repoType": "github", "repoHost": "https://github.com", "skipCi": true, "commitConvention": "angular", "commitType": "docs" } bottom-0.9.6/.cargo-husky/000077500000000000000000000000001447252316700153575ustar00rootroot00000000000000bottom-0.9.6/.cargo-husky/hooks/000077500000000000000000000000001447252316700165025ustar00rootroot00000000000000bottom-0.9.6/.cargo-husky/hooks/pre-push000077500000000000000000000003711447252316700201740ustar00rootroot00000000000000#!/bin/sh set -e echo "Running pre-push hook:" echo "Executing: cargo fmt --all -- --check" cargo fmt --all -- --check echo "Executing: cargo clippy --all-targets --workspace -- -D warnings" cargo clippy --all-targets --workspace -- -D warnings bottom-0.9.6/.cargo/000077500000000000000000000000001447252316700142165ustar00rootroot00000000000000bottom-0.9.6/.cargo/config.toml000066400000000000000000000007201447252316700163570ustar00rootroot00000000000000[target.x86_64-pc-windows-msvc] rustflags = ["-C", "target-feature=+crt-static"] [target.i686-pc-windows-msvc] rustflags = ["-C", "target-feature=+crt-static"] # [target.arm-unknown-linux-gnueabihf] # linker = "arm-linux-gnueabihf-gcc" # [target.armv7-unknown-linux-gnueabihf] # linker = "arm-linux-gnueabihf-gcc" # [target.aarch64-unknown-linux-gnu] # linker = "aarch64-linux-gnu-gcc" # [target.aarch64-unknown-linux-musl] # linker = "aarch64-linux-musl-gcc"bottom-0.9.6/.cirrus.yml000066400000000000000000000072271447252316700151650ustar00rootroot00000000000000%YAML 1.1 --- # Configuration for CirrusCI. This is primarily used for testing and building FreeBSD and macOS M1, since other # CI platforms don't seem to support these platforms as of writing. # # Note that we set the YAML directive above to prevent some linting errors around the # templates. setup_template: &SETUP_TEMPLATE setup_script: - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs --output rustup.sh - sh rustup.sh --default-toolchain stable -y cache_template: &CACHE_TEMPLATE registry_cache: folder: $HOME/.cargo/registry reupload_on_changes: true fingerprint_script: - md5 Cargo.lock - echo $CIRRUS_OS - echo $CIRRUS_TASK_NAME target_cache: folder: target reupload_on_changes: true fingerprint_script: - . $HOME/.cargo/env && rustc --version - md5 Cargo.lock - echo $CIRRUS_OS - echo $CIRRUS_TASK_NAME cleanup_template: &CLEANUP_TEMPLATE before_cache_script: - rm -rf $HOME/.cargo/registry/index - rm -rf $HOME/.cargo/registry/src - rm -f ./target/.rustc_info.json env: CARGO_INCREMENTAL: 0 CARGO_PROFILE_DEV_DEBUG: 0 CARGO_HUSKY_DONT_INSTALL_HOOKS: true test_task: auto_cancellation: false only_if: $CIRRUS_BUILD_SOURCE != "api" && ($CIRRUS_BRANCH == "master" || $CIRRUS_PR != "") skip: "!changesInclude('.cargo/**', '.cirrus.yml', 'sample_configs/**', 'src/**', 'tests/**', 'build.rs', 'Cargo.lock', 'Cargo.toml', 'clippy.toml', 'rustfmt.toml')" matrix: - name: "FreeBSD 13 Test" freebsd_instance: image_family: freebsd-13-1 - name: "FreeBSD 12 Test" freebsd_instance: image_family: freebsd-12-3 - name: "macOS M1 Test" macos_instance: image: ghcr.io/cirruslabs/macos-monterey-base:latest <<: *SETUP_TEMPLATE <<: *CACHE_TEMPLATE test_no_feature_script: - . $HOME/.cargo/env - cargo fmt --all -- --check - cargo test --no-run --locked --no-default-features - cargo test --no-fail-fast --no-default-features -- --nocapture --quiet - cargo clippy --all-targets --workspace --no-default-features -- -D warnings test_all_feature_script: - . $HOME/.cargo/env - cargo fmt --all -- --check - cargo test --no-run --locked --all-features - cargo test --no-fail-fast --all-features -- --nocapture --quiet - cargo clippy --all-targets --workspace --all-features -- -D warnings <<: *CLEANUP_TEMPLATE build_task: auto_cancellation: false only_if: $CIRRUS_BUILD_SOURCE == "api" env: BTM_GENERATE: true COMPLETION_DIR: "target/tmp/bottom/completion/" MANPAGE_DIR: "target/tmp/bottom/manpage/" # -PLACEHOLDER FOR CI- matrix: - name: "FreeBSD 13 Build" alias: "freebsd_13_1_build" freebsd_instance: image_family: freebsd-13-1 env: TARGET: "x86_64-unknown-freebsd" NAME: "x86_64-unknown-freebsd-13-1" - name: "FreeBSD 12 Build" alias: "freebsd_12_3_build" freebsd_instance: image_family: freebsd-12-3 env: TARGET: "x86_64-unknown-freebsd" NAME: "x86_64-unknown-freebsd-12-3" - name: "macOS M1 Build" alias: "macos_build" macos_instance: image: ghcr.io/cirruslabs/macos-monterey-base:latest env: TARGET: "aarch64-apple-darwin" NAME: "aarch64-apple-darwin" <<: *SETUP_TEMPLATE <<: *CACHE_TEMPLATE build_script: - . $HOME/.cargo/env - cargo build --release --verbose --locked --features deploy - mv ./target/release/btm ./ - ./btm -V - mv "$COMPLETION_DIR" completion - mv "$MANPAGE_DIR" manpage - tar -czvf bottom_$NAME.tar.gz btm completion binaries_artifacts: path: bottom_$NAME.tar.gz <<: *CLEANUP_TEMPLATE bottom-0.9.6/.github/000077500000000000000000000000001447252316700144055ustar00rootroot00000000000000bottom-0.9.6/.github/ISSUE_TEMPLATE/000077500000000000000000000000001447252316700165705ustar00rootroot00000000000000bottom-0.9.6/.github/ISSUE_TEMPLATE/bug_report.yml000066400000000000000000000115331447252316700214660ustar00rootroot00000000000000name: Bug report description: Found something wrong or broken? If it hasn't already been filed/solved, report it! labels: ["bug"] body: - type: checkboxes id: acknowledgements attributes: label: Checklist options: - label: > I've looked through [troubleshooting](https://clementtsang.github.io/bottom/nightly/troubleshooting), [known problems](https://clementtsang.github.io/bottom/nightly/support/official/#known-problems), and [existing open issues](https://github.com/ClementTsang/bottom/issues?q=is%3Aopen+is%3Aissue) for similar issues. required: true - type: input id: operating_system attributes: label: What operating system and version are you using? description: > Please provide what operating system(s) and version(s) you are running that experiences the described issue. Note that operating systems that [are not officially supported](https://github.com/ClementTsang/bottom#support) may not be prioritized/resolved. placeholder: Arch Linux 5.18.15 - type: dropdown id: architecture attributes: label: What architecture are you using? description: > Please select the architecture(s) that are experiencing the described issue. Note that systems that [are not officially supported](https://github.com/ClementTsang/bottom#support) may not be prioritized/resolved. multiple: true options: - x86_64 / AMD64 - arm64 - arm32 - x86 - Other (*please specify above in description*) - type: textarea id: terminal attributes: label: What terminal(s) are you running bottom on? description: > Please provide what terminal(s) you are running `bottom` on (e.g. Konsole, kitty) that are experiencing the issue, as well as their version and any relevant settings (e.g. terminal theme). placeholder: kitty 0.25.2 - type: input id: version validations: required: true attributes: label: What version of bottom are you running? description: > Please provide which version of `bottom` you're running, which you can find with `btm -V`. If you are using a nightly/non-release version, please also specify that. placeholder: 0.9.6 - type: input id: install validations: required: true attributes: label: How did you install bottom? description: > Please mention how you installed `bottom`. If you manually compiled it, please also mention your _Rust version_. **Note: if you installed from `bottom` from cargo, please ensure that you installed the right crate (https://crates.io/crates/bottom).** placeholder: Installed bottom through the Arch official repos. # TODO: After some point also add in a `btm check` invocation - type: textarea id: description validations: required: true attributes: label: Describe the issue description: > Give a description of the issue. If possible, provide screenshots/videos. placeholder: | Example: bottom is failing to output information for a mounted encrypted partition on basic mode. It should be able to report this information, but I'm not seeing the entry at all. - type: textarea id: expected validations: required: true attributes: label: What is the expected behaviour? description: > Describe the behaviour you expected. placeholder: | Example: I expect to be able to see information about the encrypted partition on basic mode. - type: textarea id: actual validations: required: true attributes: label: What is the actual behaviour? description: > Describe the behaviour you actually see. If possible, provide screenshots/videos. placeholder: | Example: I am unable to see information about my encrypted partition. - type: textarea id: reproduce validations: required: true attributes: label: How can we reproduce this? description: > Provide detailed steps on _how_ to reproduce your problem, to the best of your ability. Be as detailed as possible. Include any config files or flags used. If possible, provide screenshots/videos of the issue. Remember - if maintainers cannot reproduce the issue, it will be very hard to fix! placeholder: | Example: 1. Mount a LUKS encrypted partition. 2. Run `btm --basic` 3. Observe there is no partition shown. - type: textarea id: additional attributes: label: Additional information description: Provide any additional information you think may be relevant or helpful. placeholder: It works fine if I just run it normally without the `--basic` flag. bottom-0.9.6/.github/ISSUE_TEMPLATE/config.yml000066400000000000000000000004671447252316700205670ustar00rootroot00000000000000blank_issues_enabled: true contact_links: - name: Open a discussion about: | Got a question about using bottom? Need help troubleshooting something? Or maybe just talk about something related to bottom? Feel free to open a discussion! url: https://github.com/ClementTsang/bottom/discussions/new bottom-0.9.6/.github/ISSUE_TEMPLATE/feature_request.yml000066400000000000000000000022741447252316700225230ustar00rootroot00000000000000name: Feature request description: Got a good idea that hasn't already been suggested? Mention it here! labels: ["feature"] body: - type: checkboxes id: acknowledgements attributes: label: Checklist options: - label: > I've looked through [the documentation](https://clementtsang.github.io/bottom/nightly/) and [existing open issues](https://github.com/ClementTsang/bottom/issues?q=is%3Aopen+is%3Aissue+label%3Afeature) for this feature/feature request. required: true - type: textarea id: description validations: required: true attributes: label: Describe the feature request description: > Please describe what behaviour you are looking for, the motivation for it, and use cases for where this feature would be helpful to both you and others. Try to be clear and concise. If you have any ideas to implement this feature as well, feel free to write them down here too. placeholder: | Example: It would be nice to support FreeBSD, as I and others often use similar tools on my FreeBSD-based system. Sysinfo has FreeBSD support as a data source. bottom-0.9.6/.github/ISSUE_TEMPLATE/packaging.yml000066400000000000000000000044051447252316700212420ustar00rootroot00000000000000name: Packaging description: For issues, questions, or requests regarding packaging or distribution. labels: ["packaging"] body: - type: markdown attributes: value: > If this is an issue about supporting a new package/installation method for a platform you use, please consider maintaining it yourself/with others and submitting a PR or issue with a link to it - they'll be very much appreciated and likely added to the README quickly. [The documentation on packaging/distribution](https://clementtsang.github.io/bottom/nightly/contribution/packaging-and-distribution/) may be helpful in setting things up. If there are some issues with bottom itself causing problems with packaging, feel free to open an appropriate issue. If this is an issue regarding a specific existing distribution channel, feel free to report issues here if they are related to the following sources: * [crates.io](https://crates.io/crates/bottom) * [Binary releases/packages released on GitHub](https://github.com/ClementTsang/bottom/releases) For any other distribution channel, please first try to contact the package maintainers where appropriate to get help regarding distribution-specific issues (e.g. the package has issues installing, the package is outdated, etc.) before reaching out here. This is as while I am happy to help where possible, I do not personally use many of the various ways people distribute bottom. As such, unless specified, I might lack the platform-specific context, knowledge, or tools to be able to help you at all regarding the distribution method, and the best I can do is just point you to the package maintainer. - type: checkboxes id: acknowledgements attributes: label: Checklist options: - label: > I have read and understood the above text. required: true - type: textarea id: description validations: required: true attributes: label: Describe the issue description: > What is the packaging-related issue? Please be clear and concise. placeholder: | Example: Would it be possible to add shell completion generation as a separate build artifact? bottom-0.9.6/.github/pull_request_template.md000066400000000000000000000017271447252316700213550ustar00rootroot00000000000000## Description _A description of the change, what it does, and why it was made. If relevant (such as any change that modifies the UI), **please provide screenshots** of the changes:_ ## Issue _If applicable, what issue does this address?_ Closes: # ## Testing _If relevant, please state how this was tested. All changes **must** be tested to work:_ _If this is a code change, please also indicate which platforms were tested:_ - [ ] _Windows_ - [ ] _macOS_ - [ ] _Linux_ ## Checklist _If relevant, ensure the following have been met:_ - [ ] _Areas your change affects have been linted using rustfmt (`cargo fmt`)_ - [ ] _The change has been tested and doesn't appear to cause any unintended breakage_ - [ ] _Documentation has been added/updated if needed (`README.md`, help menu, doc pages, etc.)_ - [ ] _The pull request passes the provided CI pipeline_ - [ ] _There are no merge conflicts_ - [ ] _If relevant, new tests were added (don't worry too much about coverage)_ bottom-0.9.6/.github/workflows/000077500000000000000000000000001447252316700164425ustar00rootroot00000000000000bottom-0.9.6/.github/workflows/audit.yml000066400000000000000000000020601447252316700202710ustar00rootroot00000000000000# A routine check to see if there are any Rust-specific security vulnerabilities in the repo we should be aware of. name: audit on: workflow_dispatch: schedule: - cron: "0 0 * * 1" jobs: audit: timeout-minutes: 18 runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 - name: Set up Rust toolchain uses: dtolnay/rust-toolchain@b44cb146d03e8d870c57ab64b80f04586349ca5d with: toolchain: stable - name: Enable Rust cache uses: Swatinem/rust-cache@988c164c3d0e93c4dbab36aaf5bbeb77425b2894 # 2.4.0 with: cache-targets: false cache-all-crates: true cache-on-failure: true - name: Install cargo-audit run: | cargo install cargo-audit --locked rm -rf ~/.cargo/registry || echo "no registry to delete" - uses: rustsec/audit-check@dd51754d4e59da7395a4cd9b593f0ff2d61a9b95 # v1.4.1 with: token: ${{ secrets.GITHUB_TOKEN }} bottom-0.9.6/.github/workflows/build_releases.yml000066400000000000000000000366731447252316700221660ustar00rootroot00000000000000# Builds the following releases: # - Binary releases # - .deb releases # - .rpm releases # - MSI installer for Windows (.msi) # - Cirrus CI binaries # - FreeBSD (x86_64) # - macOS (aarch64) name: "build releases" on: workflow_dispatch: workflow_call: inputs: caller: description: "The calling workflow." default: "" required: false type: string env: RUST_BACKTRACE: 1 CARGO_INCREMENTAL: 0 CARGO_PROFILE_DEV_DEBUG: 0 CARGO_HUSKY_DONT_INSTALL_HOOKS: true COMPLETION_DIR: "target/tmp/bottom/completion/" MANPAGE_DIR: "target/tmp/bottom/manpage/" # TODO: Maybe add retry job in case of timeouts? jobs: build-binaries: name: "Build binaries" runs-on: ${{ matrix.info.os }} container: ${{ matrix.info.container }} timeout-minutes: 30 strategy: fail-fast: false matrix: info: # ======= Supported targets ======= # Linux (x64, x86, aarch64) - { os: "ubuntu-20.04", target: "x86_64-unknown-linux-gnu", cross: false, } - { os: "ubuntu-20.04", target: "x86_64-unknown-linux-gnu", cross: false, container: quay.io/pypa/manylinux2014_x86_64, suffix: "2-17", } - { os: "ubuntu-20.04", target: "i686-unknown-linux-gnu", cross: true, } - { os: "ubuntu-20.04", target: "x86_64-unknown-linux-musl", cross: false, rust: "1.71.0", } - { os: "ubuntu-20.04", target: "i686-unknown-linux-musl", cross: true, } - { os: "ubuntu-20.04", target: "aarch64-unknown-linux-gnu", cross: true, } - { os: "ubuntu-20.04", target: "aarch64-unknown-linux-musl", cross: true, } # macOS (x64), M1 is built via CirrusCI. - { os: "macos-12", target: "x86_64-apple-darwin", cross: false } # Windows (x64, x86) - { os: "windows-2019", target: "x86_64-pc-windows-msvc", cross: false, } - { os: "windows-2019", target: "i686-pc-windows-msvc", cross: false } - { os: "windows-2019", target: "x86_64-pc-windows-gnu", cross: false, } # ======= Unsupported targets ======= # armv7 - { os: "ubuntu-20.04", target: "armv7-unknown-linux-gnueabihf", cross: true, } - { os: "ubuntu-20.04", target: "armv7-unknown-linux-musleabihf", cross: true, } # PowerPC 64 LE - { os: "ubuntu-20.04", target: "powerpc64le-unknown-linux-gnu", cross: true, } # Risc-V 64gc - { os: "ubuntu-20.04", target: "riscv64gc-unknown-linux-gnu", cross: true, } steps: - name: Checkout repository uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 with: fetch-depth: 1 - name: Set up Rust toolchain if: matrix.info.container == '' uses: dtolnay/rust-toolchain@b44cb146d03e8d870c57ab64b80f04586349ca5d with: toolchain: ${{ matrix.info.rust || 'stable' }} target: ${{ matrix.info.target }} - name: Set up Rust toolchain (non-GitHub container) if: matrix.info.container != '' shell: bash run: | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs --output rustup.sh sh rustup.sh --default-toolchain stable -y echo "$HOME/.cargo/bin" >> $GITHUB_PATH - name: Build uses: ClementTsang/cargo-action@v0.0.4 env: BTM_GENERATE: true BTM_BUILD_RELEASE_CALLER: ${{ inputs.caller }} with: command: build args: --release --verbose --locked --target=${{ matrix.info.target }} --features deploy use-cross: ${{ matrix.info.cross }} cross-version: 0.2.5 - name: Move automatically generated completion/manpage shell: bash run: | mv "$COMPLETION_DIR" completion mv "$MANPAGE_DIR" manpage - name: Bundle release and completion (Windows) if: matrix.info.os == 'windows-2019' shell: bash run: | cp target/${{ matrix.info.target }}/release/btm.exe btm.exe 7z a bottom_${{ matrix.info.target }}.zip "btm.exe" 7z a bottom_${{ matrix.info.target }}.zip "completion" echo "ASSET=bottom_${{ matrix.info.target }}.zip" >> $GITHUB_ENV - name: Bundle release and completion (Linux and macOS) if: matrix.info.os != 'windows-2019' shell: bash run: | cp target/${{ matrix.info.target }}/release/btm ./btm tar -czvf bottom_${{ matrix.info.target }}${{ matrix.info.suffix }}.tar.gz btm completion echo "ASSET=bottom_${{ matrix.info.target }}${{ matrix.info.suffix }}.tar.gz" >> $GITHUB_ENV - name: Create release directory for artifact, move file shell: bash run: | mkdir release mv ${{ env.ASSET }} release/ - name: Compress completion files (Linux x86-64 GNU) if: matrix.info.target == 'x86_64-unknown-linux-gnu' && matrix.info.container == '' shell: bash run: | tar -C ./completion -czvf completion.tar.gz . mv completion.tar.gz release/ - name: Compress manpage files (Linux x86-64 GNU) if: matrix.info.target == 'x86_64-unknown-linux-gnu' && matrix.info.container == '' shell: bash run: | gzip ./manpage/btm.1 tar -C ./manpage -czvf manpage.tar.gz . mv manpage.tar.gz release/ - name: Save release as artifact uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 with: retention-days: 3 name: release path: release build-msi: name: "Build MSI installer" runs-on: "windows-2019" steps: - name: Checkout repository uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 with: fetch-depth: 1 - name: Install Net-Framework-Core shell: powershell run: Install-WindowsFeature Net-Framework-Core - name: Install wixtoolset uses: crazy-max/ghaction-chocolatey@5a5864861ce2c988001531e48993aa687c51f6c8 # 2.2.0 with: args: install -y wixtoolset - name: Set up Rust toolchain uses: dtolnay/rust-toolchain@b44cb146d03e8d870c57ab64b80f04586349ca5d with: toolchain: stable target: x86_64-pc-windows-msvc - name: Build MSI file shell: powershell env: BTM_GENERATE: "" run: | cargo install cargo-wix --version 0.3.1 --locked cargo wix init cargo wix - name: Create release directory for artifact, move files shell: bash run: | mkdir release mv bottom_x86_64_installer.msi release/ - name: Save release as artifact uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 with: retention-days: 3 name: release path: release build-cirrus: name: "Build using Cirrus CI" runs-on: "ubuntu-latest" steps: - name: Checkout repository uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 with: fetch-depth: 0 - name: Create release directory run: | mkdir -p release - name: Execute Cirrus CI build script env: CIRRUS_KEY: ${{ secrets.CIRRUS_TOKEN }} run: | if [[ "${{ github.ref_type }}" == "branch" ]]; then BRANCH="${{ github.ref_name }}"; else raw=$(git branch -r --contains '${{ github.ref_name }}'); BRANCH=${raw##*/}; fi python ./scripts/cirrus/build.py "$BRANCH" "release/" "${{ inputs.caller }}" - name: Save release as artifact uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 with: retention-days: 3 name: release path: release build-deb: name: "Build .deb software packages" runs-on: "ubuntu-20.04" strategy: fail-fast: false matrix: info: - { target: "x86_64-unknown-linux-gnu", cross: false, dpkg: amd64 } - { target: "x86_64-unknown-linux-musl", cross: false, dpkg: amd64, rust: "1.71.0" } - { target: "aarch64-unknown-linux-gnu", cross: true, dpkg: arm64, container: "ghcr.io/clementtsang/cargo-deb-aarch64-unknown-linux-gnu", } - { target: "armv7-unknown-linux-gnueabihf", cross: true, dpkg: armhf, container: "ghcr.io/clementtsang/cargo-deb-armv7-unknown-linux-gnueabihf", } - { target: "aarch64-unknown-linux-musl", cross: true, dpkg: arm64, container: "ghcr.io/clementtsang/cargo-deb-aarch64-unknown-linux-gnu", } - { target: "armv7-unknown-linux-musleabihf", cross: true, dpkg: armhf, container: "ghcr.io/clementtsang/cargo-deb-armv7-unknown-linux-gnueabihf", } steps: - name: Checkout repository uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 with: fetch-depth: 1 - name: Set up Rust toolchain uses: dtolnay/rust-toolchain@b44cb146d03e8d870c57ab64b80f04586349ca5d with: toolchain: ${{ matrix.info.rust || 'stable' }} target: ${{ matrix.info.target }} # TODO: Could I use the previous jobs to skip this call? - name: Build uses: ClementTsang/cargo-action@v0.0.4 env: BTM_GENERATE: true BTM_BUILD_RELEASE_CALLER: ${{ inputs.caller }} with: command: build args: --release --locked --verbose --features deploy --target ${{ matrix.info.target }} use-cross: ${{ matrix.info.cross }} cross-version: 0.2.5 - name: Move automatically generated completion/manpage shell: bash run: | mv "$COMPLETION_DIR" completion mv "$MANPAGE_DIR" manpage - name: Zip manpage run: | gzip ./manpage/btm.1 - name: Build Debian release (x86-64) if: matrix.info.cross == false env: BTM_GENERATE: true run: | cargo install cargo-deb --version 1.41.3 --locked cargo deb --no-build --target ${{ matrix.info.target }} cp ./target/${{ matrix.info.target }}/debian/bottom_*.deb . - name: Build Debian release (ARM) if: matrix.info.cross == true env: BTM_GENERATE: true run: | docker pull ${{ matrix.info.container }} docker run -t --rm --mount type=bind,source="$(pwd)",target=/volume ${{ matrix.info.container }} "--no-build --variant ${{ matrix.info.dpkg }} --target ${{ matrix.info.target }}" "/volume" cp ./target/${{ matrix.info.target }}/debian/bottom-*.deb . TMP_NAME=$(find bottom-*.deb) VERSION=${{ matrix.info.dpkg }} mv $TMP_NAME $(echo $TMP_NAME | sed "s/-$VERSION//") - name: Rename if it is a musl target if: contains(matrix.info.target, 'musl') run: | TMP_NAME=$(find bottom_*.deb) mv $TMP_NAME $(echo $TMP_NAME | sed "s/bottom/bottom-musl/") # TODO: Maybe rename version if nightly? - name: Verify Debian release id: verify run: | DEB_FILE=$(find bottom*_*.deb) dpkg -I $DEB_FILE dpkg -I $DEB_FILE | grep ${{ matrix.info.dpkg }} && echo "Found correct architecture" echo "DEB_FILE=$DEB_FILE" >> $GITHUB_OUTPUT - name: Delete generated Debian folder run: | sudo chown $USER ./target/${{ matrix.info.target }}/debian/ 2>/dev/null || true rm -r ./target/${{ matrix.info.target }}/debian/ - name: Create release directory for artifact, move file shell: bash run: | mkdir release mv ${{ steps.verify.outputs.DEB_FILE }} release/ - name: Save release as artifact uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 with: retention-days: 3 name: release path: release build-rpm: name: "Build .rpm software packages" runs-on: ubuntu-latest container: ghcr.io/clementtsang/almalinux-8 strategy: fail-fast: false matrix: info: - { target: "x86_64-unknown-linux-gnu" } - { target: "x86_64-unknown-linux-musl", rust: "1.71.0" } steps: - name: Checkout repository uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 with: fetch-depth: 1 - name: Set up Rust toolchain uses: dtolnay/rust-toolchain@b44cb146d03e8d870c57ab64b80f04586349ca5d with: toolchain: ${{ matrix.info.rust || 'stable' }} target: ${{ matrix.info.target }} # TODO: Could I use the previous jobs to skip this call? - name: Build uses: ClementTsang/cargo-action@v0.0.4 env: BTM_GENERATE: true BTM_BUILD_RELEASE_CALLER: ${{ inputs.caller }} with: command: build args: --release --locked --verbose --features deploy --target ${{ matrix.info.target }} - name: Move automatically generated completion/manpage shell: bash run: | mv "$COMPLETION_DIR" completion mv "$MANPAGE_DIR" manpage - name: Zip manpage run: | gzip ./manpage/btm.1 - name: Build rpm release if: matrix.info.cross == false env: BTM_GENERATE: true run: | cargo install cargo-generate-rpm --version 0.11.0 --locked cargo generate-rpm --target ${{ matrix.info.target }} cp ./target/${{ matrix.info.target }}/generate-rpm/bottom-*.rpm . - name: Rename if it is a musl target if: contains(matrix.info.target, 'musl') run: | TMP_NAME=$(find bottom-*.rpm) mv $TMP_NAME $(echo $TMP_NAME | sed "s/bottom/bottom-musl/") - name: Verify rpm release id: verify run: | RPM_FILE=$(find bottom-*.rpm) rpm -qip $RPM_FILE echo "RPM_FILE=$RPM_FILE" >> $GITHUB_OUTPUT - name: Delete generated rpm folder run: | sudo chown $USER ./target/${{ matrix.info.target }}/generate-rpm/ 2>/dev/null || true rm -r ./target/${{ matrix.info.target }}/generate-rpm/ - name: Create release directory for artifact, move file shell: bash run: | mkdir release mv ${{ steps.verify.outputs.RPM_FILE }} release/ - name: Save release as artifact uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 with: retention-days: 3 name: release path: release bottom-0.9.6/.github/workflows/ci.yml000066400000000000000000000224421447252316700175640ustar00rootroot00000000000000# Main CI workflow to validate PRs and branches are correctly formatted # and pass tests. # # CI workflow was based on a lot of work from other people: # - https://github.com/heim-rs/heim/blob/master/.github/workflows/ci.yml # - https://github.com/BurntSushi/ripgrep/blob/master/.github/workflows/ci.yml # - https://www.reillywood.com/blog/rust-faster-ci/ # - https://matklad.github.io/2021/09/04/fast-rust-builds.html # # Supported platforms run the following tasks: # - cargo fmt # - cargo test (built/test in separate steps) # - cargo clippy (apparently faster to do it after the build/test) # # Unsupported platforms run the following tasks: # - cargo build # # Note that not all platforms are tested using this CI action! There are some # tested by Cirrus CI due to (free) platform limitations on GitHub. Currently, # this is just macOS M1 and FreeBSD. name: ci on: workflow_dispatch: pull_request: push: branches: - master env: RUST_BACKTRACE: 1 CARGO_INCREMENTAL: 0 CARGO_PROFILE_DEV_DEBUG: 0 CARGO_HUSKY_DONT_INSTALL_HOOKS: true COMPLETION_DIR: "target/tmp/bottom/completion/" MANPAGE_DIR: "target/tmp/bottom/manpage/" concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: ${{ github.event_name == 'pull_request' || github.repository != 'ClementTsang/bottom' }} jobs: # Check if things should be skipped. pre-job: runs-on: ubuntu-latest outputs: should_skip: ${{ steps.skip_check.outputs.should_skip }} steps: - name: Check if this action should be skipped id: skip_check uses: fkirc/skip-duplicate-actions@12aca0a884f6137d619d6a8a09fcc3406ced5281 # v5.3.0 with: skip_after_successful_duplicate: "true" paths: '[".cargo/**", ".github/workflows/ci.yml", "sample_configs/**", "src/**", "tests/**", "build.rs", "Cargo.lock", "Cargo.toml", "clippy.toml", "rustfmt.toml", "Cross.toml"]' do_not_skip: '["workflow_dispatch", "push"]' # Runs rustfmt + tests + clippy on the main supported platforms. # # Note that m1 macOS is tested via CirrusCI. supported: needs: pre-job if: ${{ needs.pre-job.outputs.should_skip != 'true' }} runs-on: ${{ matrix.info.os }} timeout-minutes: 18 strategy: fail-fast: false matrix: info: - { os: "ubuntu-latest", target: "x86_64-unknown-linux-gnu", cross: false, } - { os: "ubuntu-latest", target: "aarch64-unknown-linux-gnu", cross: true, } - { os: "macos-12", target: "x86_64-apple-darwin", cross: false } - { os: "windows-2019", target: "x86_64-pc-windows-msvc", cross: false, } features: ["--all-features", "--no-default-features"] steps: - name: Checkout repository uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 - name: Set up Rust toolchain uses: dtolnay/rust-toolchain@b44cb146d03e8d870c57ab64b80f04586349ca5d with: toolchain: stable components: rustfmt, clippy target: ${{ matrix.info.target }} - name: Enable Rust cache uses: Swatinem/rust-cache@988c164c3d0e93c4dbab36aaf5bbeb77425b2894 # 2.4.0 if: ${{ github.event_name != 'pull_request' || ! github.event.pull_request.head.repo.fork }} # If it is a PR, only if not a fork with: key: ${{ matrix.info.target }} cache-all-crates: true - name: Check cargo fmt run: cargo fmt --all -- --check - name: Build tests uses: ClementTsang/cargo-action@v0.0.4 with: command: test args: --no-run --locked ${{ matrix.features }} --target=${{ matrix.info.target }} use-cross: ${{ matrix.info.cross }} cross-version: 0.2.5 env: RUST_BACKTRACE: full - name: Run tests uses: ClementTsang/cargo-action@v0.0.4 with: command: test args: --no-fail-fast ${{ matrix.features }} --target=${{ matrix.info.target }} -- --nocapture --quiet use-cross: ${{ matrix.info.cross }} cross-version: 0.2.5 env: RUST_BACKTRACE: full - name: Run clippy uses: ClementTsang/cargo-action@v0.0.4 with: command: clippy args: ${{ matrix.features }} --all-targets --workspace --target=${{ matrix.info.target }} -- -D warnings use-cross: ${{ matrix.info.cross }} cross-version: 0.2.5 env: RUST_BACKTRACE: full # Try running cargo build on all other platforms. # TODO: Maybe some of these should be allowed to fail. other-check: needs: pre-job runs-on: ${{ matrix.info.os }} if: ${{ needs.pre-job.outputs.should_skip != 'true' }} timeout-minutes: 20 strategy: fail-fast: false matrix: info: # x86 or x64 - { os: "ubuntu-latest", target: "i686-unknown-linux-gnu", cross: true, rust: stable, } - { os: "ubuntu-latest", target: "x86_64-unknown-linux-musl", cross: false, rust: stable, } - { os: "ubuntu-latest", target: "i686-unknown-linux-musl", cross: true, rust: stable, } - { os: "windows-2019", target: "i686-pc-windows-msvc", cross: false, rust: stable, } - { os: "windows-2019", target: "x86_64-pc-windows-gnu", cross: false, rust: stable, } # Beta - { os: "ubuntu-latest", target: "x86_64-unknown-linux-gnu", cross: false, rust: beta, } - { os: "macos-12", target: "x86_64-apple-darwin", cross: false, rust: beta, } - { os: "windows-2019", target: "x86_64-pc-windows-msvc", cross: false, rust: beta, } # armv7 - { os: "ubuntu-latest", target: "armv7-unknown-linux-gnueabihf", cross: true, rust: stable, } # armv6 - { os: "ubuntu-latest", target: "arm-unknown-linux-gnueabihf", cross: true, rust: stable, } # PowerPC 64 LE - { os: "ubuntu-latest", target: "powerpc64le-unknown-linux-gnu", cross: true, rust: stable, } # Risc-V 64gc - { os: "ubuntu-latest", target: "riscv64gc-unknown-linux-gnu", cross: true, rust: stable, } # Android ARM64 - { os: "ubuntu-latest", target: "aarch64-linux-android", cross: true, rust: 1.67.0, # See https://github.com/cross-rs/cross/issues/1222 for more details no-default-features: true, } steps: - name: Checkout repository uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 - name: Set up Rust toolchain uses: dtolnay/rust-toolchain@b44cb146d03e8d870c57ab64b80f04586349ca5d with: toolchain: ${{ matrix.info.rust }} target: ${{ matrix.info.target }} - name: Enable Rust cache uses: Swatinem/rust-cache@988c164c3d0e93c4dbab36aaf5bbeb77425b2894 # 2.4.0 if: ${{ github.event_name != 'pull_request' || ! github.event.pull_request.head.repo.fork }} # If it is a PR, only if not a fork with: key: ${{ matrix.info.target }} cache-all-crates: true - name: Try building with only default features enabled uses: ClementTsang/cargo-action@v0.0.4 if: ${{ matrix.info.no-default-features != true }} with: command: build args: --all-targets --verbose --target=${{ matrix.info.target }} --locked use-cross: ${{ matrix.info.cross }} cross-version: 0.2.5 - name: Try building with no features enabled uses: ClementTsang/cargo-action@v0.0.4 if: ${{ matrix.info.no-default-features == true }} with: command: build args: --all-targets --verbose --target=${{ matrix.info.target }} --locked --no-default-features use-cross: ${{ matrix.info.cross }} cross-version: 0.2.5 completion: name: "CI Pass Check" needs: [supported, other-check] if: ${{ success() || failure() }} runs-on: "ubuntu-latest" steps: - name: CI Passed if: ${{ (needs.supported.result == 'success' && needs.other-check.result == 'success') || (needs.supported.result == 'skipped' && needs.other-check.result == 'skipped') }} run: | echo "CI workflow completed successfully."; - name: CI Failed if: ${{ needs.supported.result == 'failure' && needs.other-check.result == 'failure' }} run: | echo "CI workflow failed at some point."; exit 1; bottom-0.9.6/.github/workflows/clear-workflow-cache.yml000066400000000000000000000027431447252316700231720ustar00rootroot00000000000000# Simple job to clear the cache used by a workflow. This automatically runs when a PR is closed/merged # to clean up the corresponding PR's cache. name: "clear workflow cache" on: workflow_dispatch: inputs: id: description: "Which id to clear. Type main/master/all to clean all, and keep-main/keep-master to clean all but the main branch." required: false pull_request: types: - closed schedule: - cron: "0 11 * * 0" jobs: clear-cache: runs-on: ubuntu-latest env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - name: Checkout repository uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 with: fetch-depth: 1 # We run each script twice with a small delay in between to try and catch everything. - name: Clear cache run: | if [[ -n "${{ github.event.schedule }}" ]]; then python ./scripts/clear_cache.py keep-master sleep 5 python ./scripts/clear_cache.py keep-master elif [[ -z "${{ github.event.inputs.id }}" ]]; then python ./scripts/clear_cache.py ${{ github.event.pull_request.number }} sleep 5 python ./scripts/clear_cache.py ${{ github.event.pull_request.number }} else python ./scripts/clear_cache.py ${{ github.event.inputs.id }} sleep 5 python ./scripts/clear_cache.py ${{ github.event.inputs.id }} fi bottom-0.9.6/.github/workflows/coverage.yml000066400000000000000000000053671447252316700207730ustar00rootroot00000000000000# Code coverage generation via cargo-llvm-cov, which is then uploaded to Codecov. # Codecov will report back via a comment if run on a PR. # # Note that Codecov will report back the average all uploaded coverage files. name: codecov on: workflow_dispatch: pull_request: push: branches: - master env: CARGO_INCREMENTAL: 0 CARGO_HUSKY_DONT_INSTALL_HOOKS: true concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: ${{ github.event_name == 'pull_request' || github.repository != 'ClementTsang/bottom' }} jobs: pre-job: runs-on: ubuntu-latest outputs: should_skip: ${{ steps.skip_check.outputs.should_skip }} steps: - id: skip_check uses: fkirc/skip-duplicate-actions@12aca0a884f6137d619d6a8a09fcc3406ced5281 # v5.3.0 with: skip_after_successful_duplicate: "false" paths: '["tests/**", "src/**", ".github/workflows/coverage.yml", ".cargo/**", "Cargo.toml", "Cargo.lock", "build.rs"]' do_not_skip: '["workflow_dispatch", "push"]' coverage: needs: pre-job if: ${{ needs.pre-job.outputs.should_skip != 'true' }} runs-on: ${{ matrix.info.os }} timeout-minutes: 18 strategy: fail-fast: false matrix: info: - { os: "ubuntu-latest", target: "x86_64-unknown-linux-gnu" } - { os: "macos-12", target: "x86_64-apple-darwin" } - { os: "windows-2019", target: "x86_64-pc-windows-msvc" } steps: - name: Checkout repository uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 - name: Set up Rust toolchain uses: dtolnay/rust-toolchain@b44cb146d03e8d870c57ab64b80f04586349ca5d with: toolchain: stable - name: Enable Rust cache uses: Swatinem/rust-cache@988c164c3d0e93c4dbab36aaf5bbeb77425b2894 # 2.4.0 if: ${{ github.event_name != 'pull_request' || ! github.event.pull_request.head.repo.fork }} # If it is a PR, only if not a fork with: key: ${{ matrix.info.target }} cache-all-crates: true - name: Install cargo-llvm-cov run: | rustup component add llvm-tools-preview cargo install cargo-llvm-cov --version 0.5.9 --locked - name: Generate code coverage run: | cargo llvm-cov --all-features --workspace --lcov --output-path lcov.info --locked --target=${{ matrix.info.target }} - name: Upload to codecov.io uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 # 3.1.1 with: files: lcov.info fail_ci_if_error: true token: ${{ secrets.CODECOV_TOKEN }} # This is generally not needed, but sometimes the default shared token hits limits. flags: ${{ matrix.info.os }} bottom-0.9.6/.github/workflows/deployment.yml000066400000000000000000000101511447252316700213430ustar00rootroot00000000000000# How we deploy a release. Covers binary builds. Also manages packaging for choco. # # Based on https://github.com/BurntSushi/ripgrep/blob/master/.github/workflows/release.yml name: deployment on: workflow_dispatch: inputs: tag: description: "Which tag to deploy as:" required: true push: tags: - "[0-9]+.[0-9]+.[0-9]+" env: CARGO_INCREMENTAL: 0 CARGO_PROFILE_DEV_DEBUG: 0 CARGO_HUSKY_DONT_INSTALL_HOOKS: true jobs: initialize: name: initialize runs-on: ubuntu-latest outputs: version: ${{ env.VERSION }} steps: - name: Get the release version from the tag if: env.VERSION == '' run: | if [[ -n "${{ github.event.inputs.tag }}" ]]; then echo "Manual run against a tag; overriding actual tag in the environment..." echo "VERSION=${{ github.event.inputs.tag }}" >> $GITHUB_ENV else echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV fi - name: Validate version environment variable run: | echo "Version being built against is version ${{ env.VERSION }}"! build-release: needs: [initialize] uses: ./.github/workflows/build_releases.yml with: caller: "deployment" secrets: inherit generate-choco: needs: [initialize, build-release] name: "Generate Chocolatey files" runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 with: fetch-depth: 1 - name: Set release version shell: bash run: | echo "RELEASE_VERSION=${{ needs.initialize.outputs.version }}" >> $GITHUB_ENV - name: Validate release version run: | echo "Release version: ${{ env.RELEASE_VERSION }}" - name: Get release artifacts uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 with: name: release path: release - name: Execute choco packaging script run: | python "./scripts/windows/choco/choco_packager.py" "./release/bottom_x86_64-pc-windows-msvc.zip" ${{ env.RELEASE_VERSION }} "./scripts/windows/choco/bottom.nuspec.template" "./scripts/windows/choco/chocolateyinstall.ps1.template" "bottom.nuspec" "tools/chocolateyinstall.ps1" "tools/" zip -r choco.zip "bottom.nuspec" "tools" - name: Move release file into release directory shell: bash run: | mv choco.zip release/ - name: Save release as artifact uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 with: retention-days: 3 name: release path: release upload-release: name: upload-release runs-on: ubuntu-latest needs: [initialize, generate-choco, build-release] steps: - name: Set release version shell: bash run: | echo "RELEASE_VERSION=${{ needs.initialize.outputs.version }}" >> $GITHUB_ENV - name: Validate release version run: | echo "Release version: ${{ env.RELEASE_VERSION }}" - name: Get release artifacts uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 with: name: release path: release - name: Print out all release files run: | echo "Generated $(ls ./release | wc -l) files:" du -h -d 0 ./release/* - name: Upload all saved release files uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # 0.1.15 with: token: ${{ secrets.GITHUB_TOKEN }} prerelease: false tag_name: ${{ env.RELEASE_VERSION }} draft: true fail_on_unmatched_files: true name: ${{ env.RELEASE_VERSION }} Release body: | --- ## Bug Fixes ## Features ## Changes ## Other ## Internal Changes files: | ./release/* bottom-0.9.6/.github/workflows/docs.yml000066400000000000000000000023471447252316700201230ustar00rootroot00000000000000# Workflow to deploy mkdocs documentation. name: docs on: workflow_dispatch: push: branches: - master paths: - "docs/**" - ".github/workflows/docs.yml" env: # Assign commit authorship to official Github Actions bot when pushing to the `gh-pages` branch: GIT_USER: "github-actions[bot]" GIT_EMAIL: "41898282+github-actions[bot]@users.noreply.github.com" jobs: build-documentation: name: Build and deploy docs runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 with: fetch-depth: 0 - uses: actions/setup-python@bd6b4b6205c4dbad673328db7b31b7fab9e241c0 # v4.6.1 with: python-version: 3.11 - name: Install Python dependencies run: pip install -r docs/requirements.txt - name: Configure git user and email run: | git config --global user.name ${GIT_USER} git config --global user.email ${GIT_EMAIL} echo Name: $(git config --get user.name) echo Email: $(git config --get user.email) - name: Build and deploy docs with mike run: | cd docs mike deploy nightly --push bottom-0.9.6/.github/workflows/nightly.yml000066400000000000000000000050511447252316700206440ustar00rootroot00000000000000# Creates nightly deployment builds for main targets. Note this does not cover package distribution channels, # such as choco. name: nightly on: schedule: - cron: "0 0 * * *" workflow_dispatch: inputs: isMock: description: "Replace with any word other than 'mock' to trigger a non-mock run." default: "mock" required: false env: CARGO_INCREMENTAL: 0 CARGO_PROFILE_DEV_DEBUG: 0 CARGO_HUSKY_DONT_INSTALL_HOOKS: true jobs: # TODO: Add a pre-job check to skip if no change; may want to add something to check if there is a new rust version/week limit of skips? initialize-job: name: initialize-job runs-on: ubuntu-latest steps: - name: Check if mock run: | echo "${{ github.event.inputs.isMock }}"; if [[ -z "${{ github.event.inputs.isMock }}" ]]; then echo "This is a scheduled nightly run." elif [[ "${{ github.event.inputs.isMock }}" == "mock" ]]; then echo "This is a mock run." else echo "This is NOT a mock run. Watch for the generated files!" fi build-release: needs: [initialize-job] uses: ./.github/workflows/build_releases.yml with: caller: "nightly" secrets: inherit upload-release: name: upload-release runs-on: ubuntu-latest needs: [build-release] steps: - name: Get release artifacts uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 with: name: release path: release - name: Print out all release files run: | echo "Generated $(ls ./release | wc -l) files:" du -h -d 0 ./release/* - name: Delete tag and release uses: ClementTsang/delete-tag-and-release@v0.3.1 if: github.event.inputs.isMock != 'mock' with: delete_release: true tag_name: nightly env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Sleep for a few seconds to prevent timing issues between the deletion and creation of the release run: sleep 10 if: github.event.inputs.isMock != 'mock' - name: Upload all saved release files if not mock uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # 0.1.15 if: github.event.inputs.isMock != 'mock' with: token: ${{ secrets.GITHUB_TOKEN }} prerelease: true tag_name: "nightly" draft: false fail_on_unmatched_files: true files: | ./release/* bottom-0.9.6/.github/workflows/post-release.yml000066400000000000000000000102301447252316700215640ustar00rootroot00000000000000# Actions to run after releasing a version, like: # - Generating documentation via mkdocs # - Notifying packaging repos # - Automatically creating winget packages name: post-release on: release: types: [published] workflow_dispatch: inputs: tag: description: "Which tag to deploy as:" required: true env: # Assign commit authorship to official Github Actions bot when pushing to the `gh-pages` branch: GIT_USER: "github-actions[bot]" GIT_EMAIL: "41898282+github-actions[bot]@users.noreply.github.com" jobs: initialize: name: initialize runs-on: ubuntu-latest outputs: version: ${{ env.VERSION }} steps: - name: Get the release version from the tag if: env.VERSION == '' run: | if [[ -n "${{ github.event.inputs.tag }}" ]]; then echo "Manual run against a tag; overriding actual tag in the environment..." echo "VERSION=${{ github.event.inputs.tag }}" >> $GITHUB_ENV else echo "VERSION=${{ github.event.release.tag_name }}" >> $GITHUB_ENV fi - name: Test env run: | echo ${{ env.VERSION }} - name: Make sure you're not on master/main/nightly run: | if [[ ${{ env.VERSION }} == "master" || ${{ env.VERSION }} == "main" || ${{ env.VERSION }} == "nightly" ]]; then exit 1 fi docs: needs: [initialize] runs-on: ubuntu-latest steps: - name: Set release version shell: bash run: | echo "RELEASE_VERSION=${{ needs.initialize.outputs.version }}" >> $GITHUB_ENV - name: Validate release version run: | echo "Release version: ${{ env.RELEASE_VERSION }}" - name: Checkout repository uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 with: fetch-depth: 0 - uses: actions/setup-python@bd6b4b6205c4dbad673328db7b31b7fab9e241c0 # v4.6.1 with: python-version: 3.11 - name: Install Python dependencies run: pip install -r docs/requirements.txt - name: Configure git user and email run: | git config --global user.name ${GIT_USER} git config --global user.email ${GIT_EMAIL} echo Name: $(git config --get user.name) echo Email: $(git config --get user.email) - name: Build and deploy docs with mike as the latest stable branch run: | cd docs OLD_STABLE_VERSION=$(mike list stable | grep -Po '([0-9]+.[0-9]+.[0-9]+)' | head -n1) echo ${OLD_STABLE_VERSION} mike retitle --push stable ${OLD_STABLE_VERSION} mike deploy --push --update-aliases ${RELEASE_VERSION} stable mike retitle --push ${RELEASE_VERSION} "${RELEASE_VERSION} (stable)" chocolatey: needs: [initialize] runs-on: ubuntu-latest steps: - name: Set release version shell: bash run: | echo "RELEASE_VERSION=${{ needs.initialize.outputs.version }}" >> $GITHUB_ENV - name: Validate release version run: | echo "Release version: ${{ env.RELEASE_VERSION }}" - name: Trigger choco run: | curl -X POST https://api.github.com/repos/ClementTsang/choco-bottom/dispatches \ -H 'Accept: application/vnd.github.everest-preview+json' \ -u ${{ secrets.BOTTOM_PACKAGE_DEPLOYMENT }} \ --data '{ "event_type": "update", "client_payload": { "version": "'"$RELEASE_VERSION"'" } }' winget: needs: [initialize] runs-on: windows-latest steps: - name: Set release version shell: bash run: | echo "RELEASE_VERSION=${{ needs.initialize.outputs.version }}" >> $GITHUB_ENV - name: Validate release version run: | echo "Release version: ${{ env.RELEASE_VERSION }}" - uses: vedantmgoyal2009/winget-releaser@79853c0938cc9946c1ec3cdd1b2e761bb0372b8c # v2 with: identifier: Clement.bottom installers-regex: '^bottom_x86_64_installer\.msi$' version: ${{ env.RELEASE_VERSION }} release-tag: ${{ env.RELEASE_VERSION }} token: ${{ secrets.WINGET_TOKEN }} bottom-0.9.6/.github/workflows/test-docs.yml000066400000000000000000000026051447252316700210750ustar00rootroot00000000000000# Small CI workflow to test if mkdocs documentation can be successfully built. name: test docs on: workflow_dispatch: pull_request: concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: ${{ github.event_name == 'pull_request' || github.repository != 'ClementTsang/bottom' }} jobs: pre-job: runs-on: ubuntu-latest outputs: should_skip: ${{ steps.skip_check.outputs.should_skip }} steps: - id: skip_check uses: fkirc/skip-duplicate-actions@12aca0a884f6137d619d6a8a09fcc3406ced5281 # v5.3.0 with: skip_after_successful_duplicate: "true" paths: '["docs/**", ".github/workflows/docs.yml", ".github/workflows/test-docs.yml"]' do_not_skip: '["workflow_dispatch"]' test-build-documentation: name: Test building docs needs: pre-job if: ${{ needs.pre-job.outputs.should_skip != 'true' }} runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 with: fetch-depth: 0 - uses: actions/setup-python@bd6b4b6205c4dbad673328db7b31b7fab9e241c0 # v4.6.1 with: python-version: 3.11 - name: Install Python dependencies run: pip install -r docs/requirements.txt - name: Build docs with mkdocs run: | cd docs mkdocs build bottom-0.9.6/.gitignore000066400000000000000000000007011447252316700150330ustar00rootroot00000000000000# Generated by Cargo # will have compiled files and executables /target/ # These are backup files generated by rustfmt **/*.rs.bk # Logging *.log # Flamegraph stuff flamegraphs/ rust-unmangle *.svg *.data *.data.old # IntelliJ .idea/ # Heaptrack files *.zst # For testing sample_configs/testing*.toml # Wix /wix/ # Cargo-deny deny.toml # vscode .vscode # mkdocs site/ # dhat heap profiling dhat-heap.json dhat/ # cargo vet supply-chain/ bottom-0.9.6/.markdownlint.json000066400000000000000000000002011447252316700165200ustar00rootroot00000000000000{ "MD013": false, "MD041": false, "MD033": false, "MD040": false, "MD024": false, "MD025": false, "MD046": false } bottom-0.9.6/CHANGELOG.md000066400000000000000000001056511447252316700146660ustar00rootroot00000000000000# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [0.9.6] - 2023-08-26 ## Other - [#1286](https://github.com/ClementTsang/bottom/pull/1286): Pin serde to 1.0.188 to help with potential `cargo install` issues. Note this version should be fine and not pull in binaries. ## [0.9.5] - 2023-08-26 ## Other - [#1278](https://github.com/ClementTsang/bottom/pull/1278): Pin serde to 1.0.171. ## [0.9.4] - 2023-08-05 ## Bug Fixes - [#1230](https://github.com/ClementTsang/bottom/pull/1230): Fix core dump if the terminal is closed while bottom is open. - [#1245](https://github.com/ClementTsang/bottom/pull/1245): Fix killing processes in Windows leaving a handle open. - [#1264](https://github.com/ClementTsang/bottom/pull/1264): Fix ARC usage showing max system memory instead of max ARC size. ## Features - [#1248](https://github.com/ClementTsang/bottom/pull/1248): Add I/O counters from ZFS for Linux and FreeBSD. ## Changes - [#1236](https://github.com/ClementTsang/bottom/pull/1236): Hide the battery tab selector if there is only one battery detected. - [#1251](https://github.com/ClementTsang/bottom/pull/1251): Make the charge meter take the entire width of the battery widget. ## [0.9.3] - 2023-06-25 ## Bug Fixes - [#1216](https://github.com/ClementTsang/bottom/pull/1216): Fix arguments not being sorted alphabetically. - [#1219](https://github.com/ClementTsang/bottom/pull/1219): Fix overflow/underflow in graph timespan zoom. ## Features - [#1221](https://github.com/ClementTsang/bottom/pull/1221): Support human times for `rate`. ## Other - [#1206](https://github.com/ClementTsang/bottom/pull/1206): Add `.rpm` package generation. - [#1220](https://github.com/ClementTsang/bottom/pull/1220): Update documentation for features supporting human times. ## [0.9.2] - 2023-06-11 ## Bug Fixes - [#1186](https://github.com/ClementTsang/bottom/pull/1186): Fix for temperature sensor data gathering on Linux immediately halting if any method failed. - [#1191](https://github.com/ClementTsang/bottom/pull/1191): Fix ntfs3 mounts not being counted as a physical drive type. - [#1195](https://github.com/ClementTsang/bottom/pull/1195): Fix battery health being incorrectly reported on M1 macOS. - [#1188](https://github.com/ClementTsang/bottom/pull/1188): Don't fail fast with temperature sensor name generation on Linux. ## Features - [#1172](https://github.com/ClementTsang/bottom/pull/1172): Support human times for `time_delta` and `default_time_value`. - [#1187](https://github.com/ClementTsang/bottom/pull/1187): Use better names for duplicate temp sensors found by `/sys/class/thermal`. - [#1188](https://github.com/ClementTsang/bottom/pull/1188): Also check `/sys/devices/platform/coretemp.*` for temp sensors. ## Other - [#1199](https://github.com/ClementTsang/bottom/pull/1199): bottom should build on `aarch64-linux-android` with features disabled. ## [0.9.1] - 2023-05-14 ## Bug Fixes - [#1148](https://github.com/ClementTsang/bottom/pull/1148): Fix Gruvbox colour string being invalid when cache usage is enabled. ## [0.9.0] - 2023-05-10 ## Bug Fixes - [#1021](https://github.com/ClementTsang/bottom/pull/1021): Fix selected text background colour being wrong if only the foreground colour was set. - [#1037](https://github.com/ClementTsang/bottom/pull/1037): Fix `is_list_ignored` accepting all results if set to `false`. - [#1064](https://github.com/ClementTsang/bottom/pull/1064): Disk name/mount filter now doesn't always show all entries if one filter wasn't set. - [#1064](https://github.com/ClementTsang/bottom/pull/1064): macOS disk I/O is potentially working now. - [#597](https://github.com/ClementTsang/bottom/issues/597): Resolve RUSTSEC-2021-0119 by removing heim. ## Features - [#1016](https://github.com/ClementTsang/bottom/pull/1016): Add support for displaying process usernames on Windows. - [#1022](https://github.com/ClementTsang/bottom/pull/1022): Support three-character hex colour strings for styling. - [#1024](https://github.com/ClementTsang/bottom/pull/1024): Support FreeBSD temperature sensors based on `hw.temperature`. - [#1063](https://github.com/ClementTsang/bottom/pull/1063): Add buffer and cache memory tracking. - [#1106](https://github.com/ClementTsang/bottom/pull/1106): Add current battery charging state. - [#1115](https://github.com/ClementTsang/bottom/pull/1115): Add customizable process columns to config file. - [#801](https://github.com/ClementTsang/bottom/pull/801): Add optional process time column and querying. ## Changes - [#1025](https://github.com/ClementTsang/bottom/pull/1025): Officially support M1 macOS. - [#1035](https://github.com/ClementTsang/bottom/pull/1035): Migrate away from heim for CPU information. - [#1036](https://github.com/ClementTsang/bottom/pull/1036): Migrate away from heim for memory information; bottom will now try to use `MemAvailable` on Linux to determine used memory. - [#1041](https://github.com/ClementTsang/bottom/pull/1041): Migrate away from heim for network information. - [#1064](https://github.com/ClementTsang/bottom/pull/1064): Migrate away from heim for storage information. - [#812](https://github.com/ClementTsang/bottom/issues/812): Fully remove heim from bottom. - [#1075](https://github.com/ClementTsang/bottom/issues/1075): Update how drives are named in Windows. - [#1106](https://github.com/ClementTsang/bottom/pull/1106): Rename battery consumption field to rate. ## Other - [#1100](https://github.com/ClementTsang/bottom/pull/1100): Speed up first draw and first data collection. - [#1107](https://github.com/ClementTsang/bottom/pull/1107): Update to clap v4. - [#1111](https://github.com/ClementTsang/bottom/pull/1111): Update to regex [1.8.0](https://github.com/rust-lang/regex/blob/93316a3b1adc43cc12fab6c73a59f646658cd984/CHANGELOG.md#180-2023-04-20), supporting more escapable characters and named captures. ## [0.8.0] - 2023-01-22 ## Bug Fixes - [#950](https://github.com/ClementTsang/bottom/pull/950): Update help menu for disk and temperature widgets with sorting support. - [#994](https://github.com/ClementTsang/bottom/pull/994): Fix time graph labels not being styled. ## Features - [#950](https://github.com/ClementTsang/bottom/pull/950): Split usage into both usage percentage and usage value. ## Changes - [#974](https://github.com/ClementTsang/bottom/pull/974): Hide battery duration section if the value is unknown. Also update shortened text. - [#975](https://github.com/ClementTsang/bottom/pull/975): Automatically hide the battery widget if no batteries are found but `--battery` is enabled. ## Other - [#969](https://github.com/ClementTsang/bottom/pull/969): Follow Debian conventions for naming generated `.deb` binaries. ## [0.7.1] - 2023-01-06 ## Bug Fixes - [#950](https://github.com/ClementTsang/bottom/pull/950): Fix invalid sorting order for disk usage percentage. - [#952](https://github.com/ClementTsang/bottom/pull/952), [#960](https://github.com/ClementTsang/bottom/pull/960): Partially fix battery text getting cut off in small windows. - [#953](https://github.com/ClementTsang/bottom/pull/953): Fix CPU widget's 'all' label being missing on small sizes. ## Other - [#951](https://github.com/ClementTsang/bottom/pull/951): Nightly builds now have their version number (`btm -V`) tagged with the commit hash. ## [0.7.0] - 2022-12-31 ## Bug Fixes - [#711](https://github.com/ClementTsang/bottom/pull/711): Fix building in Rust beta 1.61 due to `as_ref()` calls causing type inference issues. - [#717](https://github.com/ClementTsang/bottom/pull/717): Fix clicking on empty space in tables selecting the very last entry of a list in some cases. - [#720](https://github.com/ClementTsang/bottom/pull/720): Fix panic if battery feature was disabled during compilation. - [#805](https://github.com/ClementTsang/bottom/pull/805): Fix bottom keeping devices awake in certain scenarios. - [#825](https://github.com/ClementTsang/bottom/pull/825): Use alternative method of getting parent PID in some cases on macOS devices to avoid needing root access. - [#916](https://github.com/ClementTsang/bottom/pull/916): Fix possible gaps with widget layout spacing. - [#938](https://github.com/ClementTsang/bottom/pull/938): Fix search scrolling with wider Unicode characters. ## Changes - [#690](https://github.com/ClementTsang/bottom/pull/690): Add some colour to `-h`/`--help` as part of updating to clap 3.0. - [#726](https://github.com/ClementTsang/bottom/pull/726): Add ARM musl binary build tasks. - [#807](https://github.com/ClementTsang/bottom/pull/807): Add more human friendly temperature sensor names for Linux. - [#845](https://github.com/ClementTsang/bottom/pull/845), [#922](https://github.com/ClementTsang/bottom/pull/922): Add macOS M1, FreeBSD 12, and FreeBSD 13 binary build tasks. - [#916](https://github.com/ClementTsang/bottom/pull/916), [#937](https://github.com/ClementTsang/bottom/pull/937): Improve CPU usage by optimizing draw logic of charts and tables. ## Features - [#676](https://github.com/ClementTsang/bottom/pull/676): Add support for NVIDIA GPU temperature sensors. - [#760](https://github.com/ClementTsang/bottom/pull/760): Add a check for whether bottom is being run in a terminal. - [#766](https://github.com/ClementTsang/bottom/pull/766): Add FreeBSD support. - [#774](https://github.com/ClementTsang/bottom/pull/774): Add half page scrolling with `ctrl-u` and `ctrl-d`. - [#784](https://github.com/ClementTsang/bottom/pull/784): Add ZFS ARC support. - [#794](https://github.com/ClementTsang/bottom/pull/794): Add GPU memory support for NVIDIA GPUs. - [#806](https://github.com/ClementTsang/bottom/pull/806): Update sysinfo to support M1 macOS temperature sensors. - [#836](https://github.com/ClementTsang/bottom/pull/836): Add CLI options for GPU memory. - [#841](https://github.com/ClementTsang/bottom/pull/841): Add page up/page down support for the help screen. - [#868](https://github.com/ClementTsang/bottom/pull/868): Make temperature widget sortable. - [#870](https://github.com/ClementTsang/bottom/pull/870): Make disk widget sortable. - [#881](https://github.com/ClementTsang/bottom/pull/881): Add pasting to the search bar. - [#892](https://github.com/ClementTsang/bottom/pull/892): Add custom retention periods for data. - [#899](https://github.com/ClementTsang/bottom/pull/899), [#910](https://github.com/ClementTsang/bottom/pull/910), [#912](https://github.com/ClementTsang/bottom/pull/912): Add non-normalized CPU usage to processes. - [#919](https://github.com/ClementTsang/bottom/pull/919): Add an option to expand the default widget on startup. ## [0.6.8] - 2022-02-01 ## Bug Fixes - [#655](https://github.com/ClementTsang/bottom/pull/669): Fix a bug where the number of CPUs is never refreshed. ## [0.6.7] - 2022-01-31 ## Features - [#646](https://github.com/ClementTsang/bottom/pull/646): Add `PgUp`/`PgDown` keybind support to scroll up and down a page in a table. ## Bug Fixes - [#655](https://github.com/ClementTsang/bottom/pull/665): Fix bug where the program would stall in an infinite loop if the width of the terminal was too small. ## Other - [#658](https://github.com/ClementTsang/bottom/pull/658): Update sysinfo. ## [0.6.6] - 2021-12-22 ## Bug Fixes - [#637](https://github.com/ClementTsang/bottom/pull/637): Fix process CPU calculation if /proc/stat CPU line has less values than expected ## Changes - [#637](https://github.com/ClementTsang/bottom/pull/637): Remove duplicate guest time in process CPU calculation ## [0.6.5] - 2021-12-19 ## Bug Fixes - [#600](https://github.com/ClementTsang/bottom/pull/600): Address RUSTSEC-2020-0071 - [#627](https://github.com/ClementTsang/bottom/pull/627): Fix `process_command` breaking process widget sorting. ## Internal Changes - [#608](https://github.com/ClementTsang/bottom/pull/608): Add codecov integration to pipeline. ## [0.6.4] - 2021-09-12 ## Changes - [#557](https://github.com/ClementTsang/bottom/pull/557): Add '/s' to network usage legend to better indicate that it's a per-second change. ## Bug Fixes - [#575](https://github.com/ClementTsang/bottom/pull/575): Updates the procfs library to not crash on kernel version >255. ## Internal Changes - [#551](https://github.com/ClementTsang/bottom/pull/551): Disable AUR package generation in release pipeline since it's now in community. - [#570](https://github.com/ClementTsang/bottom/pull/570): Make battery features optional in compilation. ## [0.6.3] - 2021-07-18 ## Changes - [#547](https://github.com/ClementTsang/bottom/pull/547): Switch Linux memory usage calculation to match htop. ## Bug Fixes - [#536](https://github.com/ClementTsang/bottom/pull/536): Prevent tests from creating a config file. - [#542](https://github.com/ClementTsang/bottom/pull/542): Fix missing config options in the default generated config file. - [#545](https://github.com/ClementTsang/bottom/pull/545): Fix inaccurate memory usage/totals in macOS and Linux, switch unit to binary prefix. ## [0.6.2] - 2021-06-26 ## Features - [#518](https://github.com/ClementTsang/bottom/pull/518): Add `F9` key as an alternative process kill key. ## Bug Fixes - [#504](https://github.com/ClementTsang/bottom/pull/504): Fix two bugs causing the battery widget colours and mouse events to be broken. - [#525](https://github.com/ClementTsang/bottom/pull/525): Fix Windows process CPU usage not being divided by the number of cores. ## Internal Changes - [#506](https://github.com/ClementTsang/bottom/pull/506): Migrate a large portion of documentation over to mkdocs. ## [0.6.1] - 2021-05-11 ## Bug Fixes - [#473](https://github.com/ClementTsang/bottom/pull/473): Fix missing string creation for memory usage in collapsed entries. ## [0.6.0] - 2021-05-09 ## Features - [#263](https://github.com/ClementTsang/bottom/pull/263): Add the option for fine-grained kill signals on Unix-like systems. - [#333](https://github.com/ClementTsang/bottom/pull/333): Add an "out of" indicator that can be enabled using `--show_table_scroll_position` (and its corresponding config option) to help keep track of scrolled position. - [#379](https://github.com/ClementTsang/bottom/pull/379): Add `--process_command` flag and corresponding config option to default to showing a process' command. - [#381](https://github.com/ClementTsang/bottom/pull/381): Add a filter in the config file for network interfaces. - [#392](https://github.com/ClementTsang/bottom/pull/392): Add CPU load averages (1, 5, 15) for Unix-based systems. - [#406](https://github.com/ClementTsang/bottom/pull/406): Add the Nord colour scheme, as well as a light variant. - [#409](https://github.com/ClementTsang/bottom/pull/409): Add `Ctrl-w` and `Ctrl-h` shortcuts in search, to delete a word and delete a character respectively. - [#413](https://github.com/ClementTsang/bottom/pull/413): Add mouse support for sorting process columns. - [#425](https://github.com/ClementTsang/bottom/pull/425): Add user into the process widget for Unix-based systems. - [#437](https://github.com/ClementTsang/bottom/pull/437): Redo dynamic network y-axis, add linear scaling, unit type, and prefix options. - [#445](https://github.com/ClementTsang/bottom/pull/445): Add collapsing in tree mode sums usage to parent. ## Changes - [#372](https://github.com/ClementTsang/bottom/pull/372): Hide the SWAP graph and legend in normal mode if SWAP is 0. - [#390](https://github.com/ClementTsang/bottom/pull/390): macOS shouldn't need elevated privileges to see CPU usage on all processes now. - [#391](https://github.com/ClementTsang/bottom/pull/391): Show degree symbol on Celsius and Fahrenheit. - [#418](https://github.com/ClementTsang/bottom/pull/418): Removed automatically jumping to the top of the list for process sort shortcuts. The standard behaviour is to now stay in place. - [#420](https://github.com/ClementTsang/bottom/pull/420): Updated tui-rs, allowing for prettier looking tables! - [#437](https://github.com/ClementTsang/bottom/pull/437): Add linear interpolation step in drawing step to pr event missing entries on the right side of charts. - [#443](https://github.com/ClementTsang/bottom/pull/443): Make process widget consistent with disk widget in using decimal prefixes (kilo, mega, etc.) for writes/reads. - [#449](https://github.com/ClementTsang/bottom/pull/449): Add decimal place to actual memory usage in process widget for values greater or equal to 1GiB. - [#450](https://github.com/ClementTsang/bottom/pull/450): Tweak `default-light` colour scheme to look less terrible on white terminals. - [#451](https://github.com/ClementTsang/bottom/pull/451): Add decimal place to disk values larger than 1GB for total read/write in process widgets, and read/write per second in process widgets and disk widgets. - [#455](https://github.com/ClementTsang/bottom/pull/455): Add a mount point filter for the disk widget. Also tweaked how the filter system works - see the PR for details. ## Bug Fixes - [#416](https://github.com/ClementTsang/bottom/pull/416): Fix grouped vs ungrouped modes in the processes widget having inconsistent spacing. - [#417](https://github.com/ClementTsang/bottom/pull/417): Fix the sort menu and sort shortcuts not syncing up. - [#423](https://github.com/ClementTsang/bottom/pull/423): Fix disk encryption causing the disk widget to fail or not properly map I/O statistics. - [#425](https://github.com/ClementTsang/bottom/pull/425): Fixed a bug allowing grouped mode in tree mode if already in grouped mode. - [#467](https://github.com/ClementTsang/bottom/pull/467): Switched CPU usage data source to fix a bug on Windows where occasionally CPU usage would be stuck at 0%. ## [0.5.7] - 2021-01-30 ## Bug Fixes - [#373](https://github.com/ClementTsang/bottom/pull/373): Fix incorrect colours being used the CPU widget in basic mode. - [#386](https://github.com/ClementTsang/bottom/pull/386): Fix `hide_table_gap` not working in the battery widget. - [#389](https://github.com/ClementTsang/bottom/pull/389): Fix the sorting arrow disappearing in proc widget under some cases. - [#398](https://github.com/ClementTsang/bottom/pull/398): Fix basic mode failing to report CPUs if there are less than 4 entries to report. ## [0.5.6] - 2020-12-17 ## Bug Fixes - [#361](https://github.com/ClementTsang/bottom/pull/361): Fix temperature sensors not working on non-Linux platforms. ## [0.5.5] - 2020-12-14 ## Bug Fixes - [#349](https://github.com/ClementTsang/bottom/pull/349): Fix CPU graph colours not matching the legend in the "all" state. ## [0.5.4] - 2020-12-10 ## Changes - [#344](https://github.com/ClementTsang/bottom/pull/344): Removed the `--debug` option for now. ## Bug Fixes - [#344](https://github.com/ClementTsang/bottom/pull/344): Fix a performance regression causing high memory and CPU usage over time. - [#345](https://github.com/ClementTsang/bottom/pull/345): Fix process states not showing. ## [0.5.3] - 2020-11-26 ## Bug Fixes - [#331](https://github.com/ClementTsang/bottom/pull/331): Fix custom battery colour levels being inverted. ## [0.5.2] - 2020-11-25 ## Bug Fixes - [#327](https://github.com/ClementTsang/bottom/pull/327): Fix `hide_avg_cpu` being inverted in config files. ## [0.5.1] - 2020-11-22 ## Bug Fixes - [6ef1d66](https://github.com/ClementTsang/bottom/commit/6ef1d66b2bca49452572a2cabb87d338dcf56e7b): Remove nord as a valid colour for now. - [e04ce4f](https://github.com/ClementTsang/bottom/commit/e04ce4fa1b42e99f00cf8825bcd58da43552214e): Fix `--use_old_network_legend`. - [99d0402](https://github.com/ClementTsang/bottom/commit/99d04029f0ebfc73d36adb06ea58ad68f090017c): Fix config detection for built-in colours. ### Bug Fixes ## [0.5.0] - 2020-11-20 ### Features - [#206](https://github.com/ClementTsang/bottom/pull/206): Adaptive network graphs --- prior to this update, graphs were stuck at a range from 0B to 1GiB. Now, they adjust to your current usage and time span, so if you're using, say, less than a MiB, it will cap at a MiB. If you're using 10GiB, then the graph will reflect that and span to a bit greater than 10GiB. - [#208](https://github.com/ClementTsang/bottom/pull/208): Mouse support for tables and moving to widgets. - [#217](https://github.com/ClementTsang/bottom/pull/217): (Kinda) ARM support. - [#220](https://github.com/ClementTsang/bottom/pull/220): Add ability to hide specific temperature and disk entries via config. - [#223](https://github.com/ClementTsang/bottom/pull/223): Add tree mode for processes. - [#312](https://github.com/ClementTsang/bottom/pull/312): Add a `tree` flag to default to the tree mode. - [#269](https://github.com/ClementTsang/bottom/pull/269): Add simple indicator for when data updating is frozen. - [#296](https://github.com/ClementTsang/bottom/pull/296): Built-in colour themes. - [#309](https://github.com/ClementTsang/bottom/pull/309): Add a `mem_as_value` flag to default displaying process memory as value rather than percentage. ### Changes - [#213](https://github.com/ClementTsang/bottom/pull/213), [#214](https://github.com/ClementTsang/bottom/pull/214): Updated help descriptions, added auto-complete generation. - [#296](https://github.com/ClementTsang/bottom/pull/296): Changed how we do battery theming. We now only set high, medium, and low colours and we deal with the ratios. ### Bug Fixes - [#211](https://github.com/ClementTsang/bottom/pull/211): Fix a bug where you could move down in the process widget even if the process widget search was closed. - [#215](https://github.com/ClementTsang/bottom/pull/215): Add labels to Linux temperature values. - [#224](https://github.com/ClementTsang/bottom/pull/224): Implements sorting by count. It previously did absolutely nothing. - [#238](https://github.com/ClementTsang/bottom/pull/238): Fix being able to cause an index out-of-bounds by resizing to a smaller terminal _just_ after the program got the terminal size, but right before the terminal started drawing. - [#238](https://github.com/ClementTsang/bottom/pull/238): Fixed not clearing screen before drawing, which caused issues for some environments. - [#253](https://github.com/ClementTsang/bottom/pull/253): Fix highlighted entries being stuck in another colour when the widget is not selected. - [#253](https://github.com/ClementTsang/bottom/pull/253), [#266](https://github.com/ClementTsang/bottom/pull/266): Expanding a widget no longer overrides the widget/dialog title colour. - [#261](https://github.com/ClementTsang/bottom/pull/261): Fixed process names occasionally showing up as truncated, due to only using `/proc//stat` as our data source. - [#262](https://github.com/ClementTsang/bottom/pull/262): Fixed missing thread termination steps as well as improper polling causing blocking in input thread. - [#289](https://github.com/ClementTsang/bottom/pull/289): Fixed the CPU basic widget showing incorrect data due to an incorrect offset when displaying the data. - [#290](https://github.com/ClementTsang/bottom/pull/290): Fixed an incorrect offset affecting the CPU colour when scrolling. - [#291](https://github.com/ClementTsang/bottom/pull/291): Fixed spacing problems in basic CPU mode. - [#296](https://github.com/ClementTsang/bottom/pull/296): Fixed an incorrect offset affecting the graph CPU colour mismatching the legend. - [#296](https://github.com/ClementTsang/bottom/pull/296): Removes an accidental extra comma in one of the headers in the disk widget. - [#308](https://github.com/ClementTsang/bottom/pull/308): Removes the automatically generated CPU colours method. ## [0.4.7] - 2020-08-26 ### Bug Fixes - [#204](https://github.com/ClementTsang/bottom/pull/204): Fix searching by command name being broken. ## [0.4.6] - 2020-08-25 ### Features - [#179](https://github.com/ClementTsang/bottom/pull/179): Show full command/process path as an option. - [#183](https://github.com/ClementTsang/bottom/pull/183): Added sorting capabilities to any column. - [#188](https://github.com/ClementTsang/bottom/pull/188): Add (estimated) memory usage values, toggle this from percent to values for processes with `%`. - [#196](https://github.com/ClementTsang/bottom/pull/196): Support searching processes by process state. - Added `WASD` as an alternative widget movement system. - [#198](https://github.com/ClementTsang/bottom/pull/198): Allow `e` to also escape expanded mode. ### Changes - [#181](https://github.com/ClementTsang/bottom/pull/181): Changed to just support stable (and newer) Rust, due to library incompatibilities. - [#182](https://github.com/ClementTsang/bottom/pull/182): For macOS, support `$HOME/Library/Application Support` instead of `$HOME/.config` for config files. For backwards compatibility's sake, for macOS, this will still check `.config` if it exists first, but otherwise, it will default to the new location. ### Bug Fixes - [#183](https://github.com/ClementTsang/bottom/pull/183): Fixed bug in basic mode where the battery widget was placed incorrectly. - [#186](https://github.com/ClementTsang/bottom/pull/186): Fixed a bug caused by hitting `Enter` when a process kill fails, breaking future process kills. - [#187](https://github.com/ClementTsang/bottom/pull/187): Fix bug caused by incorrectly reading the `/proc/{pid}/stats` file. ## [0.4.5] - 2020-07-08 - No changes here, just an uptick for Crates.io using the wrong Cargo.lock. ## [0.4.4] - 2020-07-06 ### Features - [#114](https://github.com/ClementTsang/bottom/pull/114): Show process state per process (originally in 0.4.0, moved to later). This only shows if the processes are not merged together; I couldn't think of a nice way to show it when grouped together, unfortunately. ### Changes - [#156](https://github.com/ClementTsang/bottom/issues/156) - Removal of the `/` CPU core showing in the chart. It felt clunky to use, was not really useful, and hard to work with with large core counts. Furthermore: - `show_disabled_data` option and flag is removed. - Average CPU is now on by _default_. You can disable it via `-a, --hide_avg_cpu` or `hide_avg_cpu = true`. - Make highlighted CPU persist even if widget is not selected - this should help make it easier to know what CPU you are looking at even if you aren't currently on the CPU widget. ### Bug Fixes - [#164](https://github.com/ClementTsang/bottom/issues/164) - Fixed a bug where bottom would incorrectly read the wrong values to calculate the read/write columns for processes in Linux. - [#165](https://github.com/ClementTsang/bottom/issues/165) - Fixed a bug where OR operations in the process query wouldn't properly for some cases. - The process query should hopefully be a bit more usable now. There were issues with how spaces (which are treated as an AND if it was between keywords, so something like `btm cpu > 0 mem > 0` would look for a process named `btm` with cpu usage > 0 and mem usage > 0). This has been hopefully improved. ## [0.4.3] - 2020-05-15 ### Other - Update sysinfo version that fixes an overflow issue. ## [0.4.2] - 2020-05-11 ### Changes - Automatically hide time axis labels if the widget gets too small. - Automatically hide table gap if the widget gets too small. ### Bug Fixes - The `` character can be used as an "AND" again (properly) in queries. For example: ```bash (btm cpu > 0) (discord mem > 0) ``` is equivalent to: ```bash (btm AND cpu > 0) AND (discord AND mem > 0) ``` - [#151](https://github.com/ClementTsang/bottom/issues/151) - Fixed an issue where if the drive I/O label didn't match any disk, the entire disk widget would display nothing. - Display SWAP and MEM legends even if the total amount is 0 to avoid a weird blank spot in the legend. ## [0.4.1] - 2020-05-05 ### Bug Fixes - [#146](https://github.com/ClementTsang/bottom/pull/146): Fixed a typo in the help menu (credit to [HarHarLinks](https://github.com/HarHarLinks)). ## [0.4.0] - 2020-05-04 ### Features - [#58](https://github.com/ClementTsang/bottom/issues/58): I/O stats per process. - [#55](https://github.com/ClementTsang/bottom/issues/55): Battery monitoring widget. - [#134](https://github.com/ClementTsang/bottom/pull/134): `hjkl` movement to delete dialog (credit to [andys8](https://github.com/andys8)). - [#59](https://github.com/ClementTsang/bottom/issues/59): `Alt-h` and `Alt-l` to move left/right in query (and rest of the app actually). - [#59](https://github.com/ClementTsang/bottom/issues/59): Added a more advanced querying system. ### Changes - Changed default colours for highlighted borders and table headers to light blue - this is mostly to deal with Powershell colour conflicts. - Updated the widget type keyword list to accept the following keywords as existing types: - `"memory"` - `"network"` - `"process"` - `"processes"` - `"temperature"` - [#117](https://github.com/ClementTsang/bottom/issues/117): Update tui to 0.9: - Removed an (undocumented) feature in allowing modifying total RX/TX colours. This is mainly due to the legend change. - Use custom legend-hiding to stop hiding legends for memory and network widgets. - In addition, changed to using only legends within the graph for network, as well as redesigned the legend. The old legend style can still be used via the `--use_old_network_legend` flag or `use_old_network_legend = true` config option. - Allow for option to hide the header gap on tables via `--hide_table_gap` or `hide_table_gap = true`. - [#126](https://github.com/ClementTsang/bottom/pull/126): Updated error messages to be a bit more consistent/helpful. - [#70](https://github.com/ClementTsang/bottom/issues/70): Redesigned help menu to allow for scrolling. - [#59](https://github.com/ClementTsang/bottom/issues/59): Moved maximization key to `e`, renamed feature to _expanding_ the widget. Done to allow for the `` key to be used later for a more intuitive usage. ### Bug Fixes - Fixed `dd` not working on non-first entries. - Fixed bug where a single empty row as a layout would crash without a proper warning. The behaviour now errors out with a more helpful message. - Fixed bug where empty widgets in layout would cause widget movement to not work properly when moving vertically. ### Development changes - [#38](https://github.com/ClementTsang/bottom/issues/38): Updated arg tests and added config testing. - Add MSRV, starting with 1.40.0. ## [0.3.0] - 2020-04-07 ### Features - [#20](https://github.com/ClementTsang/bottom/issues/20): Time scaling was added to allow users to zoom in/out based on their desired time intervals. Time markers on the charts can be hidden or automatically hidden. - [#37](https://github.com/ClementTsang/bottom/issues/37): Automatically populate a config file if one does not exist. - [#21](https://github.com/ClementTsang/bottom/issues/21): Basic mode added. - [#51](https://github.com/ClementTsang/bottom/issues/51): Modularity with widget placement or inclusion added. ### Changes - Removed redundant dependencies. - [#17](https://github.com/ClementTsang/bottom/issues/17): Add colouring options to the total RX/TX labels. - [#29](https://github.com/ClementTsang/bottom/issues/29): Added `F1-F3` keys as alternatives for selecting search options - [#42](https://github.com/ClementTsang/bottom/issues/42), [#45](https://github.com/ClementTsang/bottom/issues/45), [#35](https://github.com/ClementTsang/bottom/issues/35): Change the arrow used for sorting processes to work with other terminals. - [#61](https://github.com/ClementTsang/bottom/issues/61): Search box changed to not block if the window is small. - [#40](https://github.com/ClementTsang/bottom/issues/40): Rewrote README to be more clear and explicit. - [#109](https://github.com/ClementTsang/bottom/issues/109): Sorting processes by name is case-insensitive. ### Bug Fixes - [#33](https://github.com/ClementTsang/bottom/issues/33): Fix bug with search and graphemes bigger than a byte crashing due to the cursor. - [#41](https://github.com/ClementTsang/bottom/issues/41): Fix bug that caused the cursor to go off screen while searching. - [#61](https://github.com/ClementTsang/bottom/issues/61): Dialog boxes set to be a constant width/height. - [#80](https://github.com/ClementTsang/bottom/issues/80): Fix bug with resizing and scrolling causing issues with tables. - [#77](https://github.com/ClementTsang/bottom/issues/77): Fixed hidden CPU entries from being scrolled to. - [#79](https://github.com/ClementTsang/bottom/issues/79): Fixed CPU entries being a different colour if the one above it was hidden. - [#85](https://github.com/ClementTsang/bottom/pull/85): A div-by-zero error when the memory values were zero was fixed. ### Other - Various Travis changes. - Scoop install option added. ## [0.2.2] - 2020-02-26 ### Features - Added support for colouring the average CPU core separately in config files. - [#15](https://github.com/ClementTsang/bottom/issues/15) - Added support for (some) named colours and RGB values in config files. ### Bug Fixes - [#28](https://github.com/ClementTsang/bottom/issues/30): Fixed broken Cargo.toml for Cargo installs. - Fixed Windows issue with shift key. - [#14](https://github.com/ClementTsang/bottom/issues/14): Ignore certain characters in search ## [0.2.1] - 2020-02-21 ### Bug Fixes - [#14](https://github.com/ClementTsang/bottom/issues/11): Fixed default config paths not being read properly. ## [0.2.0] - 2020-02-20 ### Features - Searching in processes was added. - The option of a config file was added. Config files follow the TOML spec. These support boot flags by default, and colour schemes. - The capability of maximizing a widget to take up all draw space was added. - Filtering out CPU cores on the graph/legend was added. ### Changes - Default colours were changed for better support on macOS Terminal and PowerShell. - Rewrote and refactored how I get data to be less spaghetti. This might also have the added benefit of running better, with less duplicated logic. - Changed how the dd dialog and help dialog look. Hopefully they'll be nicer to look at and more intuitive to use! ### Bug Fixes - [#2](https://github.com/ClementTsang/bottom/issues/2): Fixed issues where the program would crash if the window was too small. - Added a panic handler so terminals won't get all broken if a panic _does_ still occur. - Fixed some sizing issues, hopefully this means that it's still readable at smaller sizes (within reason). - [#10](https://github.com/ClementTsang/bottom/issues/10): Fixed scroll issue caused by resizing. ## [0.1.2] - 2020-01-11 ### Changes - Added a bit more complexity to how we determine column widths for tables. This should fix an issue where columns would glitch out at smaller widths, and hopefully look nicer. ### Bug Fixes - Rewrote scroll logic in tables to avoid some strange scroll behaviour I encountered where it would jump around. - Attempt to patch a panic caused by the change in how we determine time in the data collection stage. ## [0.1.1] - 2020-01-11 ### Features - `Tab` in the processes widget will now group similarly-named processes together (as well as their total CPU and MEM usage). `dd`-ing this will try to kill all entries with that process name. - A flag to enable this by default is also now available. ### Bug Fixes - Accidentally left in a bug in which the disk widget was using megabytes instead of bytes as their unit during data collection... but during data conversion for the display I treated them as bytes. ## [0.1.0] - 2020-01-11 Initial release. bottom-0.9.6/CONTRIBUTING.md000066400000000000000000000046311447252316700153020ustar00rootroot00000000000000# Contribution Contribution in any way is appreciated, whether it is reporting problems, fixing bugs, implementing features, improving the documentation, etc. ## Opening an issue ### Bug reports When filing a bug report, fill out the [bug report template](https://github.com/ClementTsang/bottom/issues/new?assignees=&labels=bug&template=bug_report.yml). Be sure to give all the neccessary details! It is _incredibly_ difficult for a maintainer to fix a bug when it cannot be reproduced, so that makes it much easier to reproduce the problem! ### Feature requests Please fill out the [feature request template](https://github.com/ClementTsang/bottom/issues/new?assignees=&labels=feature&template=feature_request.yml). Remember to give details about what the feature is along with why you think this suggestion will be useful. ## Pull requests If you want to directly contribute documentation changes or code, follow this! The expected workflow for a pull request is: 1. Fork the project. 2. Make your changes. 3. Make any documentation changes if necessary - if you add a new feature, it'll probably need documentation changes. See [here](https://clementtsang.github.io/bottom/nightly/contribution/documentation/) for tips on documentation. 4. Commit and create a pull request to merge into the `master` branch. **Please fill out the pull request template**. 5. Ask a maintainer to review your pull request. - Check if the CI workflow passes. These consist of clippy lints, rustfmt checks, and basic tests. If you are a first-time contributor, you may need to wait for a maintainer to let CI run. - If changes are suggested or any comments are made, they should probably be addressed. 6. Once it looks good, it'll be merged! Note that _generally_, PRs are squashed to maintain repo cleanliness, though feel free to ask otherwise if that isn't preferable. For more details, see [here](https://clementtsang.github.io/bottom/nightly/contribution/issues-and-pull-requests/). ### Documentation For contributing to documentation, see [here](https://clementtsang.github.io/bottom/nightly/contribution/documentation/). ### Packaging If you want to become a package maintainer, see [here](https://clementtsang.github.io/bottom/nightly/contribution/packaging-and-distribution/) for details on how to build bottom, how to generate/obtain completion files and manpages, and how to add installation instructions for the package to the README. bottom-0.9.6/Cargo.lock000066400000000000000000001156101447252316700147560ustar00rootroot00000000000000# This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 3 [[package]] name = "addr2line" version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" dependencies = [ "gimli", ] [[package]] name = "adler" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "ahash" version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" dependencies = [ "cfg-if", "once_cell", "version_check", ] [[package]] name = "aho-corasick" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a" dependencies = [ "memchr", ] [[package]] name = "allocator-api2" version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" [[package]] name = "anstream" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", "is-terminal", "utf8parse", ] [[package]] name = "anstyle" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd" [[package]] name = "anstyle-parse" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" dependencies = [ "windows-sys", ] [[package]] name = "anstyle-wincon" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c677ab05e09154296dd37acecd46420c17b9713e8366facafa8fc0885167cf4c" dependencies = [ "anstyle", "windows-sys", ] [[package]] name = "anyhow" version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" [[package]] name = "assert_cmd" version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "88903cb14723e4d4003335bb7f8a14f27691649105346a0f0957466c096adfe6" dependencies = [ "anstyle", "bstr", "doc-comment", "predicates", "predicates-core", "predicates-tree", "wait-timeout", ] [[package]] name = "autocfg" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "backtrace" version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" dependencies = [ "addr2line", "cc", "cfg-if", "libc", "miniz_oxide", "object", "rustc-demangle", ] [[package]] name = "bitflags" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" [[package]] name = "bottom" version = "0.9.6" dependencies = [ "anyhow", "assert_cmd", "backtrace", "cargo-husky", "cfg-if", "clap", "clap_complete", "clap_mangen", "concat-string", "core-foundation", "crossterm 0.27.0", "ctrlc", "dirs", "fern", "filedescriptor", "hashbrown", "humantime", "indexmap", "itertools 0.11.0", "kstring", "libc", "log", "mach2", "nvml-wrapper", "once_cell", "predicates", "ratatui", "regex", "rustix 0.38.9", "serde", "serde_json", "starship-battery", "sysctl", "sysinfo", "thiserror", "time", "toml_edit", "unicode-segmentation", "unicode-width", "windows", ] [[package]] name = "bstr" version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05" dependencies = [ "memchr", "regex-automata", "serde", ] [[package]] name = "byteorder" version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "cargo-husky" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b02b629252fe8ef6460461409564e2c21d0c8e77e0944f3d189ff06c4e932ad" [[package]] name = "cassowary" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" [[package]] name = "cc" version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01" dependencies = [ "libc", ] [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" version = "4.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03aef18ddf7d879c15ce20f04826ef8418101c7e528014c3eeea13321047dca3" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" version = "4.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8ce6fffb678c9b80a70b6b6de0aad31df727623a70fd9a842c30cd573e2fa98" dependencies = [ "anstream", "anstyle", "clap_lex", "once_cell", "strsim 0.10.0", "terminal_size", ] [[package]] name = "clap_complete" version = "4.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5fc443334c81a804575546c5a8a79b4913b50e28d69232903604cada1de817ce" dependencies = [ "clap", ] [[package]] name = "clap_lex" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b" [[package]] name = "clap_mangen" version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f2e32b579dae093c2424a8b7e2bea09c89da01e1ce5065eb2f0a6f1cc15cc1f" dependencies = [ "clap", "roff", ] [[package]] name = "colorchoice" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] name = "concat-string" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7439becb5fafc780b6f4de382b1a7a3e70234afe783854a4702ee8adbb838609" [[package]] name = "core-foundation" version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" dependencies = [ "core-foundation-sys", "libc", ] [[package]] name = "core-foundation-sys" version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" [[package]] name = "crossbeam-channel" version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" dependencies = [ "cfg-if", "crossbeam-utils", ] [[package]] name = "crossbeam-deque" version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" dependencies = [ "cfg-if", "crossbeam-epoch", "crossbeam-utils", ] [[package]] name = "crossbeam-epoch" version = "0.9.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", "memoffset", "scopeguard", ] [[package]] name = "crossbeam-utils" version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" dependencies = [ "cfg-if", ] [[package]] name = "crossterm" version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a84cda67535339806297f1b331d6dd6320470d2a0fe65381e79ee9e156dd3d13" dependencies = [ "bitflags 1.3.2", "crossterm_winapi", "libc", "mio", "parking_lot", "signal-hook", "signal-hook-mio", "winapi", ] [[package]] name = "crossterm" version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df" dependencies = [ "bitflags 2.4.0", "crossterm_winapi", "libc", "mio", "parking_lot", "signal-hook", "signal-hook-mio", "winapi", ] [[package]] name = "crossterm_winapi" version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" dependencies = [ "winapi", ] [[package]] name = "ctrlc" version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a011bbe2c35ce9c1f143b7af6f94f29a167beb4cd1d29e6740ce836f723120e" dependencies = [ "nix", "windows-sys", ] [[package]] name = "darling" version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d706e75d87e35569db781a9b5e2416cff1236a47ed380831f959382ccd5f858" dependencies = [ "darling_core", "darling_macro", ] [[package]] name = "darling_core" version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", "strsim 0.9.3", "syn 1.0.109", ] [[package]] name = "darling_macro" version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" dependencies = [ "darling_core", "quote", "syn 1.0.109", ] [[package]] name = "deranged" version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7684a49fb1af197853ef7b2ee694bc1f5b4179556f1e5710e1760c5db6f5e929" [[package]] name = "difflib" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" [[package]] name = "dirs" version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" dependencies = [ "dirs-sys", ] [[package]] name = "dirs-sys" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" dependencies = [ "libc", "option-ext", "redox_users", "windows-sys", ] [[package]] name = "doc-comment" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" [[package]] name = "either" version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "enum-as-inner" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116" dependencies = [ "heck", "proc-macro2", "quote", "syn 1.0.109", ] [[package]] name = "equivalent" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f" dependencies = [ "errno-dragonfly", "libc", "windows-sys", ] [[package]] name = "errno-dragonfly" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" dependencies = [ "cc", "libc", ] [[package]] name = "fern" version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9f0c14694cbd524c8720dd69b0e3179344f04ebb5f90f2e4a440c6ea3b2f1ee" dependencies = [ "log", ] [[package]] name = "filedescriptor" version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7199d965852c3bac31f779ef99cbb4537f80e952e2d6aa0ffeb30cce00f4f46e" dependencies = [ "libc", "thiserror", "winapi", ] [[package]] name = "float-cmp" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" dependencies = [ "num-traits", ] [[package]] name = "fnv" version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "getrandom" version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" dependencies = [ "cfg-if", "libc", "wasi", ] [[package]] name = "gimli" version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" [[package]] name = "hashbrown" version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" dependencies = [ "ahash", "allocator-api2", ] [[package]] name = "heck" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" [[package]] name = "humantime" version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "ident_case" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "indexmap" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" dependencies = [ "equivalent", "hashbrown", ] [[package]] name = "indoc" version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c785eefb63ebd0e33416dfcb8d6da0bf27ce752843a45632a67bf10d4d4b5c4" [[package]] name = "io-lifetimes" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ "hermit-abi", "libc", "windows-sys", ] [[package]] name = "is-terminal" version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ "hermit-abi", "rustix 0.38.9", "windows-sys", ] [[package]] name = "itertools" version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" dependencies = [ "either", ] [[package]] name = "itertools" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" dependencies = [ "either", ] [[package]] name = "itoa" version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "kstring" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec3066350882a1cd6d950d055997f379ac37fd39f81cd4d8ed186032eb3c5747" dependencies = [ "static_assertions", ] [[package]] name = "lazycell" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" version = "0.2.147" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" [[package]] name = "libloading" version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" dependencies = [ "cfg-if", "winapi", ] [[package]] name = "linux-raw-sys" version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "linux-raw-sys" version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503" [[package]] name = "lock_api" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" dependencies = [ "autocfg", "scopeguard", ] [[package]] name = "log" version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "mach2" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d0d1830bcd151a6fc4aea1369af235b36c1528fe976b8ff678683c9995eade8" dependencies = [ "libc", ] [[package]] name = "memchr" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] name = "memoffset" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg", ] [[package]] name = "miniz_oxide" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" dependencies = [ "adler", ] [[package]] name = "mio" version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" dependencies = [ "libc", "log", "wasi", "windows-sys", ] [[package]] name = "nix" version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a" dependencies = [ "bitflags 1.3.2", "cfg-if", "libc", "static_assertions", ] [[package]] name = "normalize-line-endings" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" [[package]] name = "ntapi" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" dependencies = [ "winapi", ] [[package]] name = "num-traits" version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" dependencies = [ "autocfg", ] [[package]] name = "num_cpus" version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ "hermit-abi", "libc", ] [[package]] name = "nvml-wrapper" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7cd21b9f5a1cce3c3515c9ffa85f5c7443e07162dae0ccf4339bb7ca38ad3454" dependencies = [ "bitflags 1.3.2", "libloading", "nvml-wrapper-sys", "static_assertions", "thiserror", "wrapcenum-derive", ] [[package]] name = "nvml-wrapper-sys" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c961a2ea9e91c59a69b78e69090f6f5b867bb46c0c56de9482da232437c4987e" dependencies = [ "libloading", ] [[package]] name = "object" version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77ac5bbd07aea88c60a577a1ce218075ffd59208b2d7ca97adf9bfc5aeb21ebe" dependencies = [ "memchr", ] [[package]] name = "once_cell" version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "option-ext" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "parking_lot" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", "parking_lot_core", ] [[package]] name = "parking_lot_core" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", "redox_syscall 0.3.5", "smallvec", "windows-targets", ] [[package]] name = "paste" version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "predicates" version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09963355b9f467184c04017ced4a2ba2d75cbcb4e7462690d388233253d4b1a9" dependencies = [ "anstyle", "difflib", "float-cmp", "itertools 0.10.5", "normalize-line-endings", "predicates-core", "regex", ] [[package]] name = "predicates-core" version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" [[package]] name = "predicates-tree" version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" dependencies = [ "predicates-core", "termtree", ] [[package]] name = "proc-macro2" version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" dependencies = [ "unicode-ident", ] [[package]] name = "quote" version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] [[package]] name = "ratatui" version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8285baa38bdc9f879d92c0e37cb562ef38aa3aeefca22b3200186bc39242d3d5" dependencies = [ "bitflags 2.4.0", "cassowary", "crossterm 0.26.1", "indoc", "paste", "unicode-segmentation", "unicode-width", ] [[package]] name = "rayon" version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" dependencies = [ "either", "rayon-core", ] [[package]] name = "rayon-core" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" dependencies = [ "crossbeam-channel", "crossbeam-deque", "crossbeam-utils", "num_cpus", ] [[package]] name = "redox_syscall" version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ "bitflags 1.3.2", ] [[package]] name = "redox_syscall" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ "bitflags 1.3.2", ] [[package]] name = "redox_users" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ "getrandom", "redox_syscall 0.2.16", "thiserror", ] [[package]] name = "regex" version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12de2eff854e5fa4b1295edd650e227e9d8fb0c9e90b12e7f36d6a6811791a29" dependencies = [ "aho-corasick", "memchr", "regex-automata", "regex-syntax", ] [[package]] name = "regex-automata" version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49530408a136e16e5b486e883fbb6ba058e8e4e8ae6621a77b048b314336e629" dependencies = [ "aho-corasick", "memchr", "regex-syntax", ] [[package]] name = "regex-syntax" version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" [[package]] name = "roff" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b833d8d034ea094b1ea68aa6d5c740e0d04bad9d16568d08ba6f76823a114316" [[package]] name = "rustc-demangle" version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" [[package]] name = "rustix" version = "0.37.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06" dependencies = [ "bitflags 1.3.2", "errno", "io-lifetimes", "libc", "linux-raw-sys 0.3.8", "windows-sys", ] [[package]] name = "rustix" version = "0.38.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bfe0f2582b4931a45d1fa608f8a8722e8b3c7ac54dd6d5f3b3212791fedef49" dependencies = [ "bitflags 2.4.0", "errno", "libc", "linux-raw-sys 0.4.5", "windows-sys", ] [[package]] name = "ryu" version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" [[package]] name = "same-file" version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" dependencies = [ "winapi-util", ] [[package]] name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "serde" version = "1.0.188" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" version = "1.0.188" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" dependencies = [ "proc-macro2", "quote", "syn 2.0.29", ] [[package]] name = "serde_json" version = "1.0.105" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360" dependencies = [ "itoa", "ryu", "serde", ] [[package]] name = "serde_spanned" version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186" dependencies = [ "serde", ] [[package]] name = "signal-hook" version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" dependencies = [ "libc", "signal-hook-registry", ] [[package]] name = "signal-hook-mio" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" dependencies = [ "libc", "mio", "signal-hook", ] [[package]] name = "signal-hook-registry" version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" dependencies = [ "libc", ] [[package]] name = "smallvec" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" [[package]] name = "starship-battery" version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36335b5b5ba5328b4ad2024807423010b7f533a7e5315dfd9df0acbc9d2c550e" dependencies = [ "cfg-if", "core-foundation", "lazycell", "libc", "mach2", "nix", "num-traits", "uom", "winapi", ] [[package]] name = "static_assertions" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "strsim" version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c" [[package]] name = "strsim" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "syn" version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "syn" version = "2.0.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "sysctl" version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed66d6a2ccbd656659289bc90767895b7abbdec897a0fc6031aca3ed1cb51d3e" dependencies = [ "bitflags 1.3.2", "byteorder", "enum-as-inner", "libc", "thiserror", "walkdir", ] [[package]] name = "sysinfo" version = "0.29.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d10ed79c22663a35a255d289a7fdcb43559fc77ff15df5ce6c341809e7867528" dependencies = [ "cfg-if", "core-foundation-sys", "libc", "ntapi", "once_cell", "rayon", "winapi", ] [[package]] name = "terminal_size" version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237" dependencies = [ "rustix 0.37.23", "windows-sys", ] [[package]] name = "termtree" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" [[package]] name = "thiserror" version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97a802ec30afc17eee47b2855fc72e0c4cd62be9b4efe6591edde0ec5bd68d8f" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6bb623b56e39ab7dcd4b1b98bb6c8f8d907ed255b18de254088016b27a8ee19b" dependencies = [ "proc-macro2", "quote", "syn 2.0.29", ] [[package]] name = "time" version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bb39ee79a6d8de55f48f2293a830e040392f1c5f16e336bdd1788cd0aadce07" dependencies = [ "deranged", "itoa", "serde", "time-core", "time-macros", ] [[package]] name = "time-core" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" [[package]] name = "time-macros" version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "733d258752e9303d392b94b75230d07b0b9c489350c69b851fc6c065fde3e8f9" dependencies = [ "time-core", ] [[package]] name = "toml_datetime" version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" dependencies = [ "serde", ] [[package]] name = "toml_edit" version = "0.19.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" dependencies = [ "indexmap", "serde", "serde_spanned", "toml_datetime", "winnow", ] [[package]] name = "typenum" version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" [[package]] name = "unicode-ident" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" [[package]] name = "unicode-segmentation" version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" [[package]] name = "unicode-width" version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" [[package]] name = "uom" version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8362194c7a9845a7a7f3562173d6e1da3f24f7132018cb78fe77a5b4474187b2" dependencies = [ "num-traits", "typenum", ] [[package]] name = "utf8parse" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" [[package]] name = "version_check" version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "wait-timeout" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" dependencies = [ "libc", ] [[package]] name = "walkdir" version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" dependencies = [ "same-file", "winapi-util", ] [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "winapi" version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" dependencies = [ "winapi-i686-pc-windows-gnu", "winapi-x86_64-pc-windows-gnu", ] [[package]] name = "winapi-i686-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" dependencies = [ "winapi", ] [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows" version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" dependencies = [ "windows-core", "windows-targets", ] [[package]] name = "windows-core" version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" dependencies = [ "windows-targets", ] [[package]] name = "windows-sys" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ "windows-targets", ] [[package]] name = "windows-targets" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", "windows_i686_gnu", "windows_i686_msvc", "windows_x86_64_gnu", "windows_x86_64_gnullvm", "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_i686_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_x86_64_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "winnow" version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d09770118a7eb1ccaf4a594a221334119a44a814fcb0d31c5b85e83e97227a97" dependencies = [ "memchr", ] [[package]] name = "wrapcenum-derive" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6bcc065c85ad2c3bd12aa4118bf164835712e25080c392557801a13292c60aec" dependencies = [ "darling", "proc-macro2", "quote", "syn 1.0.109", ] bottom-0.9.6/Cargo.toml000066400000000000000000000123441447252316700150010ustar00rootroot00000000000000[package] name = "bottom" version = "0.9.6" authors = ["Clement Tsang "] edition = "2021" repository = "https://github.com/ClementTsang/bottom" keywords = ["cross-platform", "monitoring", "cli", "top", "tui"] license = "MIT" categories = ["command-line-utilities", "visualization"] description = "A customizable cross-platform graphical process/system monitor for the terminal. Supports Linux, macOS, and Windows." documentation = "https://clementtsang.github.io/bottom/stable" readme = "README.md" default-run = "btm" build = "build.rs" exclude = [ ".cargo-husky/", ".github/", "assets/", "docs/", "sample_configs/", "scripts/", ".all-contributorsrc", ".cirrus.yml", ".markdownlint.json", "CHANGELOG.md", "clippy.toml", "codecov.yml", "CONTRIBUTING.md", "Cross.toml", "rustfmt.toml", ] [[bin]] name = "btm" path = "src/bin/main.rs" doc = false [lib] test = true doctest = true doc = true [profile.dev.package."*"] opt-level = 3 # Compile dependencies with optimizations on even in debug mode. [profile.no-opt] inherits = "dev" opt-level = 0 [profile.release] debug = 0 strip = "symbols" lto = true opt-level = 3 codegen-units = 1 [profile.profiling] inherits = "release" debug = true strip = false [features] battery = ["starship-battery"] gpu = ["nvidia"] nvidia = ["nvml-wrapper"] zfs = [] # Including logging for debugging purposes. logging = ["fern", "log"] # The features we use on deploy. Logging is not included as that is primarily (for now) just for debugging locally. deploy = ["battery", "gpu", "zfs"] default = ["deploy"] [dependencies] anyhow = "1.0.75" backtrace = "0.3.69" cfg-if = "1.0.0" clap = { version = "4.3.23", features = ["default", "cargo", "wrap_help"] } concat-string = "1.0.1" crossterm = "0.27.0" ctrlc = { version = "3.4.0", features = ["termination"] } # dhat = "0.3.2" dirs = "5.0.1" fern = { version = "0.6.2", optional = true } hashbrown = "0.14.0" humantime = "2.1.0" indexmap = "2.0.0" itertools = "0.11.0" kstring = { version = "2.0.0", features = ["arc"] } log = { version = "0.4.20", optional = true } nvml-wrapper = { version = "0.9.0", optional = true } once_cell = "1.18.0" regex = "1.9.4" serde = { version = "=1.0.188 ", features = ["derive"] } starship-battery = { version = "0.8.2", optional = true } sysinfo = "=0.29.8" thiserror = "1.0.47" time = { version = "0.3.26", features = ["formatting", "macros"] } toml_edit = { version = "0.19.14", features = ["serde"] } tui = { version = "0.22.0", package = "ratatui" } unicode-segmentation = "1.10.1" unicode-width = "0.1.10" [target.'cfg(unix)'.dependencies] libc = "0.2.147" [target.'cfg(target_os = "linux")'.dependencies] rustix = { version = "0.38.9", features = ["fs", "param", "process"] } [target.'cfg(target_os = "macos")'.dependencies] core-foundation = "0.9.3" mach2 = "0.4.1" [target.'cfg(target_os = "windows")'.dependencies] windows = { version = "0.51.1", features = [ "Win32_Foundation", "Win32_Security", "Win32_Storage_FileSystem", "Win32_System_IO", "Win32_System_Ioctl", "Win32_System_ProcessStatus", "Win32_System_Threading", ] } [target.'cfg(target_os = "freebsd")'.dependencies] serde_json = { version = "1.0.105" } sysctl = { version = "0.5.4" } filedescriptor = "0.8.2" [dev-dependencies] assert_cmd = "2.0.12" cargo-husky = { version = "1.5.0", default-features = false, features = [ "user-hooks", ] } predicates = "3.0.3" [build-dependencies] clap = { version = "4.3.23", features = ["default", "cargo", "wrap_help"] } clap_complete = "4.3.2" clap_mangen = "0.2.12" [package.metadata.deb] section = "utility" assets = [ [ "target/release/btm", "usr/bin/", "755", ], [ "LICENSE", "usr/share/doc/btm/", "644", ], [ "manpage/btm.1.gz", "usr/share/man/man1/btm.1.gz", "644", ], [ "completion/btm.bash", "usr/share/bash-completion/completions/btm", "644", ], [ "completion/btm.fish", "usr/share/fish/vendor_completions.d/btm.fish", "644", ], [ "completion/_btm", "usr/share/zsh/vendor-completions/", "644", ], ] extended-description = """ By default, bottom will look for a config file in ~/.config/bottom/bottom.toml. A config file can be specified \ using `-C`. If a config file does not exist at the specified or default location, a default one will be created \ for the user there. """ [package.metadata.deb.variants.arm64] depends = "libc6:arm64 (>= 2.28)" [package.metadata.deb.variants.armhf] depends = "libc6:armhf (>= 2.28)" [package.metadata.wix] output = "bottom_x86_64_installer.msi" [package.metadata.generate-rpm] assets = [ { source = "target/release/btm", dest = "/usr/bin/", mode = "755" }, { source = "LICENSE", dest = "/usr/share/doc/btm/", mode = "644" }, { source = "manpage/btm.1.gz", dest = "/usr/share/man/man1/btm.1.gz", mode = "644", doc = true }, { source = "completion/btm.bash", dest = "/usr/share/bash-completion/completions/btm", mode = "644" }, { source = "completion/btm.fish", dest = "/usr/share/fish/vendor_completions.d/btm.fish", mode = "644" }, { source = "completion/_btm", dest = "/usr/share/zsh/vendor-completions/", mode = "644" }, ] bottom-0.9.6/Cross.toml000066400000000000000000000000751447252316700150350ustar00rootroot00000000000000[build.env] passthrough = ["RUST_BACKTRACE", "BTM_GENERATE"] bottom-0.9.6/LICENSE000066400000000000000000000020561447252316700140550ustar00rootroot00000000000000MIT License Copyright (c) 2019 Clement Tsang 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. bottom-0.9.6/README.md000066400000000000000000000744251447252316700143400ustar00rootroot00000000000000

bottom

A customizable cross-platform graphical process/system monitor for the terminal.
Supports Linux, macOS, and Windows. Inspired by gtop, gotop, and htop.

[CI status](https://github.com/ClementTsang/bottom/actions?query=branch%3Amaster) [crates.io link](https://crates.io/crates/bottom) [Stable documentation](https://clementtsang.github.io/bottom/stable) [Nightly documentation](https://clementtsang.github.io/bottom/nightly)
Quick demo recording showing off bottom's searching, expanding, and process killing.

Demo using the Gruvbox theme (--color gruvbox), along with IBM Plex Mono and Kitty

## Table of contents - [Features](#features) - [Support](#support) - [Official](#official) - [Unofficial](#unofficial) - [Installation](#installation) - [Cargo](#cargo) - [Arch Linux](#arch-linux) - [Debian / Ubuntu](#debian--ubuntu) - [Snap](#snap) - [Fedora / CentOS / AlmaLinux / Rocky Linux](#fedora--centos--almalinux--rocky-linux) - [Gentoo](#gentoo) - [Nix](#nix) - [Solus](#solus) - [Void](#void) - [Homebrew](#homebrew) - [MacPorts](#macports) - [Scoop](#scoop) - [Chocolatey](#chocolatey) - [winget](#winget) - [Windows installer](#windows-installer) - [Manual installation](#manual-installation) - [Binaries](#binaries) - [Auto-completion](#auto-completion) - [Usage](#usage) - [Configuration](#configuration) - [Troubleshooting](#troubleshooting) - [Contribution](#contribution) - [Contributors](#contributors) - [Thanks](#thanks) ## Features As (yet another) process/system visualization and management application, bottom supports the typical features: - Graphical visualization widgets for: - [CPU usage](https://clementtsang.github.io/bottom/nightly/usage/widgets/cpu/) over time, at an average and per-core level - [RAM and swap usage](https://clementtsang.github.io/bottom/nightly/usage/widgets/memory/) over time - [Network I/O usage](https://clementtsang.github.io/bottom/nightly/usage/widgets/network/) over time with support for zooming in/out the current time interval displayed. - Widgets for displaying info about: - [Disk capacity/usage](https://clementtsang.github.io/bottom/nightly/usage/widgets/disk/) - [Temperature sensors](https://clementtsang.github.io/bottom/nightly/usage/widgets/temperature/) - [Battery usage](https://clementtsang.github.io/bottom/nightly/usage/widgets/battery/) - [A process widget](https://clementtsang.github.io/bottom/nightly/usage/widgets/process/) for displaying, sorting, and searching info about processes, as well as support for: - [Kill signals](https://clementtsang.github.io/bottom/nightly/usage/widgets/process/#process-termination) - [Tree mode](https://clementtsang.github.io/bottom/nightly/usage/widgets/process/#tree-mode) - [Cross-platform support](https://github.com/ClementTsang/bottom#support) for Linux, macOS, and Windows, with more planned in the future. - [Customizable behaviour](https://clementtsang.github.io/bottom/nightly/configuration/command-line-flags/) that can be controlled with command-line flags or a config file, such as: - Custom and built-in colour themes - Customizing widget behaviour - Changing the layout of widgets - Filtering out entries in some widgets - Some other nice stuff, like: - [An htop-inspired basic mode](https://clementtsang.github.io/bottom/nightly/usage/basic-mode/) - [Expansion, which focuses on just one widget](https://clementtsang.github.io/bottom/nightly/usage/general-usage/#expansion) - And more! You can find more details in [the documentation](https://clementtsang.github.io/bottom/nightly/usage/general-usage/). ## Support ### Official bottom _officially_ supports the following operating systems and corresponding architectures: - macOS (`x86_64`, `aarch64`) - Linux (`x86_64`, `i686`, `aarch64`) - Windows (`x86_64`, `i686`) These platforms are tested to work for the most part and issues on these platforms will be fixed if possible. Furthermore, binaries are expected to be built and tested using the most recent version of stable Rust at the time. For more details on supported platforms and known problems, check out [the documentation](https://clementtsang.github.io/bottom/nightly/support/official/). ### Unofficial bottom may work on a number of platforms that aren't officially supported. Note that unsupported platforms: - Might not be tested in CI to build or pass tests (see [here](./.github/workflows/ci.yml) for checked platforms). - Might not be properly tested by maintainers prior to a stable release. - May only receive limited support, such as missing features or bugs that may not be fixed. Note that some unsupported platforms may eventually be officially supported (e.g., FreeBSD). A non-comprehensive list of some currently unofficially supported platforms that may compile/work include: - FreeBSD (`x86_64`) - Linux (`armv6`, `armv7`, `powerpc64le`, `riscv64gc`) For more details on unsupported platforms and known problems, check out [the documentation](https://clementtsang.github.io/bottom/nightly/support/unofficial/). ## Installation ### Cargo Installation via cargo can be done by installing the [`bottom`](https://crates.io/crates/bottom) crate: ```bash # If required, update Rust to the stable channel first: rustup update stable # Install cargo install bottom --locked # If you use another channel by default, you can specify # the stable channel like so: cargo +stable install bottom --locked # --locked may be omitted if you wish to not use the # locked crate versions in Cargo.lock. However, be # aware that this may cause problems with dependencies. cargo install bottom ``` ### Arch Linux bottom is available as an [official package](https://archlinux.org/packages/extra/x86_64/bottom/) that can be installed with `pacman`: ```bash sudo pacman -S bottom ``` ### Debian / Ubuntu A `.deb` file is provided on each [stable release](https://github.com/ClementTsang/bottom/releases/latest) and [nightly builds](https://github.com/ClementTsang/bottom/releases/tag/nightly) for x86, aarch64, and armv7 (note stable ARM builds are only available for 0.6.8 and later). An example of installing this way: ```bash # x86-64 curl -LO https://github.com/ClementTsang/bottom/releases/download/0.9.6/bottom_0.9.6_amd64.deb sudo dpkg -i bottom_0.9.6_amd64.deb # ARM64 curl -LO https://github.com/ClementTsang/bottom/releases/download/0.9.6/bottom_0.9.6_arm64.deb sudo dpkg -i bottom_0.9.6_arm64.deb # ARM curl -LO https://github.com/ClementTsang/bottom/releases/download/0.9.6/bottom_0.9.6_armhf.deb sudo dpkg -i bottom_0.9.6_armhf.deb ``` ### Snap bottom is available as a [snap](https://snapcraft.io/install/bottom/ubuntu): ```bash sudo snap install bottom # To allow the program to run as intended sudo snap connect bottom:mount-observe sudo snap connect bottom:hardware-observe sudo snap connect bottom:system-observe sudo snap connect bottom:process-control ``` ### Fedora / CentOS / AlmaLinux / Rocky Linux bottom is available in [COPR](https://copr.fedorainfracloud.org/coprs/atim/bottom/): ```bash sudo dnf copr enable atim/bottom -y sudo dnf install bottom ``` `.rpm` files are also generated (starting from 0.9.3) for x86. If you wish to install this way, then you can do something like: ```bash # x86-64 curl -LO https://github.com/ClementTsang/bottom/releases/download/0.9.6/bottom-0.9.6-1.x86_64.rpm sudo rpm -i bottom-0.9.6-1.x86_64.rpm # Nightly x86-64 curl -LO https://github.com/ClementTsang/bottom/releases/download/nightly/bottom-0.9.6-1.x86_64.rpm sudo rpm -i bottom-0.9.6-1.x86_64.rpm ``` ### Gentoo Available in the [official Gentoo repo](https://packages.gentoo.org/packages/sys-process/bottom): ```bash sudo emerge --ask sys-process/bottom ``` ### Nix Available [in the nix-community repo](https://github.com/nix-community/home-manager/blob/master/modules/programs/bottom.nix): ```bash nix-env -i bottom ``` ### Solus Available [in the Solus repos](https://dev.getsol.us/source/bottom/): ```bash sudo eopkg it bottom ``` ### Void Available [in the void-packages repo](https://github.com/void-linux/void-packages/tree/master/srcpkgs/bottom): ```bash sudo xbps-install bottom ``` ### Homebrew Formula available [here](https://formulae.brew.sh/formula/bottom): ```bash brew install bottom ``` ### MacPorts Available [here](https://ports.macports.org/port/bottom/): ```bash sudo port selfupdate sudo port install bottom ``` ### Scoop Available in the [Main bucket](https://github.com/ScoopInstaller/Main): ```bash scoop install bottom ``` ### Chocolatey Chocolatey packages are located [here](https://chocolatey.org/packages/bottom): ```bash choco install bottom ``` ### winget The winget package can be found [here](https://github.com/microsoft/winget-pkgs/tree/master/manifests/c/Clement/bottom): ```bash winget install bottom # If you need a more specific app id: winget install Clement.bottom ``` You can uninstall via Control Panel, Options, or `winget --uninstall bottom`. ### Windows installer You can also manually install bottom as a Windows program by going to the [latest release](https://github.com/ClementTsang/bottom/releases/latest) and installing via the `.msi` file. ### Manual installation There are a few ways to go about doing this manually. Note that you probably want to do so using the most recent version of stable Rust, which is how the binaries are built: ```bash # If required, update Rust on the stable channel first rustup update stable # Option 1 - Download from releases and install curl -LO https://github.com/ClementTsang/bottom/archive/0.9.6.tar.gz tar -xzvf 0.9.6.tar.gz cargo install --path . --locked # Option 2 - Clone from master and install manually git clone https://github.com/ClementTsang/bottom cd bottom cargo install --path . --locked # Option 3 - Clone and install directly from the repo all via Cargo cargo install --git https://github.com/ClementTsang/bottom --locked # You can also pass in the target-cpu=native flag for # better CPU-specific optimizations. For example: RUSTFLAGS="-C target-cpu=native" cargo install --path . --locked ``` ### Binaries You can also use the pre-built release binaries manually: - [Latest stable release](https://github.com/ClementTsang/bottom/releases/latest), generated off of the release branch - [Latest nightly release](https://github.com/ClementTsang/bottom/releases/tag/nightly), generated daily off of the master branch at 00:00 UTC To use, download and extract the binary that matches your system. You can then run by doing: ```bash ./btm ``` or by installing to your system following whatever the procedure is for installing a binary to your system. #### Auto-completion The release binaries are packaged with shell auto-completion files for bash, fish, zsh, and Powershell. To install them: - For bash, move `btm.bash` to `$XDG_CONFIG_HOME/bash_completion or /etc/bash_completion.d/`. - For fish, move `btm.fish` to `$HOME/.config/fish/completions/`. - For zsh, move `_btm` to one of your `$fpath` directories. - For PowerShell, add `_btm.ps1` to your PowerShell [profile](). The individual auto-completion files are also included in the stable/nightly releases as `completion.tar.gz`. ## Usage You can run bottom using `btm`. - For help on flags, use `btm -h` for a quick overview or `btm --help` for more details. - For info on key and mouse bindings, press `?` inside bottom or refer to the [documentation](https://clementtsang.github.io/bottom/nightly/). You can find more information on usage in the [documentation](https://clementtsang.github.io/bottom/nightly/). ## Configuration bottom accepts a number of command-line arguments to change the behaviour of the application as desired. Additionally, bottom will automatically generate a configuration file on the first launch, which one can change as appropriate. More details on configuration can be found [in the documentation](https://clementtsang.github.io/bottom/nightly/configuration/config-file/default-config/). ## Troubleshooting If some things aren't working, give the [troubleshooting page](https://clementtsang.github.io/bottom/nightly/troubleshooting) a look. If things still aren't working, then consider opening [a question](https://github.com/ClementTsang/bottom/discussions) or filing a [bug report](https://github.com/ClementTsang/bottom/issues/new/choose). ## Contribution Whether it's reporting bugs, suggesting features, maintaining packages, or submitting a PR, contribution is always welcome! Please read [CONTRIBUTING.md](./CONTRIBUTING.md) for details on how to contribute to bottom. ### Contributors Thanks to all contributors:
Marcin Wojnarowski
Marcin Wojnarowski

💻 📦
Mahmoud Al-Qudsi
Mahmoud Al-Qudsi

💻
Andy
Andy

💻
Kim Brose
Kim Brose

💻
Sven-Hendrik Haase
Sven-Hendrik Haase

📖
Artem Polishchuk
Artem Polishchuk

📦 📖
Trung Lê
Trung Lê

📦 🚇
dm9pZCAq
dm9pZCAq

📦 📖
Lukas Rysavy
Lukas Rysavy

💻
Erlend Hamberg
Erlend Hamberg

💻
Frederick Zhang
Frederick Zhang

💻
pvanheus
pvanheus

💻
Zeb Piasecki
Zeb Piasecki

💻
Brian Di Palma
Brian Di Palma

📖
Lasha Kanteladze
Lasha Kanteladze

📖
Herby Gillot
Herby Gillot

📖
Greg Brown
Greg Brown

💻
TotalCaesar659
TotalCaesar659

📖
George Rawlinson
George Rawlinson

📖 📦
adiabatic
adiabatic

📖
Randy Barlow
Randy Barlow

💻
Patrick Jackson
Patrick Jackson

🤔 📖
Mateusz Mikuła
Mateusz Mikuła

💻
Guillaume Gomez
Guillaume Gomez

💻
shura
shura

💻
Wesley Moore
Wesley Moore

💻
xgdgsc
xgdgsc

📖
ViridiCanis
ViridiCanis

💻
Justin Martin
Justin Martin

💻 📖
Diana
Diana

💻
Hervy Qurrotul Ainur Rozi
Hervy Qurrotul Ainur Rozi

📖
Mike Rivnak
Mike Rivnak

📖
lroobrou
lroobrou

💻
database64128
database64128

💻
Chon Sou
Chon Sou

💻
DrSheppard
DrSheppard

📖
Rareș Constantin
Rareș Constantin

💻
felipesuri
felipesuri

📖
spital
spital

💻
Michael Bikovitsky
Michael Bikovitsky

💻
Dmitry Valter
Dmitry Valter

💻
Twan Stok
Twan Stok

💻
Yuxuan Shui
Yuxuan Shui

💻
Wenqing Zong
Wenqing Zong

💻
Gabriele Belluardo
Gabriele Belluardo

💻
Zeb Piasecki
Zeb Piasecki

💻
## Thanks - This project is very much inspired by [gotop](https://github.com/xxxserxxx/gotop), [gtop](https://github.com/aksakalli/gtop), and [htop](https://github.com/htop-dev/htop/). - This application was written with many, _many_ libraries, and built on the work of many talented people. This application would be impossible without their work. I used to thank them all individually but the list got too large... - And of course, another round of thanks to all the contributors and package maintainers! bottom-0.9.6/assets/000077500000000000000000000000001447252316700143475ustar00rootroot00000000000000bottom-0.9.6/assets/demo.gif000066400000000000000000101320331447252316700157650ustar00rootroot00000000000000GIF89a !'3$-ƺBRU26=|,3;5BI7GM}ymEWV~{)/8q%*3?AE',6/3<{wl1>>yi}۲$%H37:?}zwhkia"(3ge^s}iXXTw$:>CzgkٱstqgBDGIJLoa_Z$*5PQP}^\XMON-1:FHJDFIcb\omd|~jǻhcPmT&+5wsi9DJ[\>LQY#iR-Q&]A,A63~U)e#0/0M91oZqkSgfOccGWZRfeTihmMOO$+5دKMMr./j6[}[KbUur=>5LG8@FF6]br;lqYN2|1.mK_AWJUp\;CCc_kg8ABk1/v1.OO-NGNgX2h0$pf/-n'r009ekE@3mm"}Ng$VpTkbsf%)K%-\tɚ/#"pEnyA{^#s.פ0.yɀ&zq !mods"$$fxEύzwkס,-|lDwOD~|Jω ~! NETSCAPE2.0! ,H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]GnXˍ8$R#ƍAjt#o! 6&tbWbe˴߿ LpP2QW:T@XFLDҸ 3oMڰ۸sͻ7M6t@ 4@` ^] Cȁ` ϜH- ˟OϿ(h& 6F@8bfv (#>^t @1@;`CWApE'AF-deByx#f\ oPF)TV hGh)( /y<(!Ō CC|D,pTC@(C4CT1D tډ'妜v駄a)PbD@`t *0A)@gC82\ JJ` `&-aAP`+J,vmJpY䦫춫[kRj{Ck' \Q G,[jBhe A\,2SGr!2&Ȥ3 }HH"&ū?Ct!@*\w-:(p?SDHЉ!R(̔h%hǝ^'@h=owB,rˆ$ p|sF £aY7nfc3Pt"(D"eG"1e ^@@B9h)/@o+M'dt'e H·A$ 0Jȋ0a46pEC&H "b`D(z D `Bo['D9&{,HS3X #2@|W6HLbar"RJ&k".ksD2⾰2pAԨ/6Lx̣ B|ٱ!nܣ y> $! R^\"IJB&iNzRkl&O %FR̗*9򖸔X] 8/f$r ̥2驋 N )'[#3Mu]L,;k+:Y h8 s I&;Ͽ08. PH Z~:B.q>4/YQcQ H3s~#MJ00LgJӚ8ͩNq*fq@ jP 鉌(Ԧ:&DET j`|V@6Ё1( f|/d@XKXM$WW ?$̀ ;l,@Nf7 _RP0A @e3hjss1-H%ʙ/ j@`1`h(e Ԡ?lS[V.)Ha dxP Pn]o:`@0T7Ԯ~P@݀ɂAmKaFXs; GLxcZ{+V[ѥrX8ŪlX=6` hrKx\ T?nN0[98 $bE2 0A5dPpic$KH'/c9 'D͇NLJ3Q@e4C9 M<'yҁΪW̋5e.񀮡lyʩ+Kc3%_i"{ˎ)-JKڔ6nbx31h+!gD#))5Qg8c΀7M~a&8= <#^0֭èE14!o@8θ/ ޕq[(8/~]܌x-~')F-R ;cWˇE߻1 [8'ɸ!r#:^N+b. ^hb_q?0AʡuxO)~7;:|v x ^[oo/dE-(q̛ &p26a e`%&P%LU;6Q:.\C Hl;#H lU2,PU F&$ do0|d¯ui{M P@ __ k, &G g _f5EP | ` @z |'P }.y؂4& n` &@  @* ` t'{Շq.؄3'*X,X/P(/tHJY{E00u$n  kĆz(/ ~H & Pp( .`4 ~ u{xr1h~h4̀ =)hf F#  Xև-C ! H  L*X"`Z=/ȊØWx(%؋pP?p=bxM8[r1=&p0 sp.! H UH W* ِ*DSU[W餑 i *&yC 0 @ +3 P, R ;['YKq13iВ23)3 **a@=I}CYFHq10 &А[@+=A)v`yCq11)Đ0mL }rx@ry p ГPВ ǘ=)N s @9()t9YYEّ c9PwF)ƹȩjʙ01RڹN6d ٜYef乞ٞ0F Op p #5kYy Az`K OPɠ)zK \Y):Z4DQ@Р7¹).!yVJYz\j=*(Z G2. / P!M (j pqQ pxrL-) (O( x֨CU~YꅦlqI.^J<❳Z/ǹ9z :H#/Y% %&&p & Z : po٬26q1*j0+a Z 0 Ф ڰLx*^]" /A皮 k G#05``% @ 늝 Z `h, P kѡd!VK:F[+1_4 x~0 G .1 ]2 g +T۞a{XL{;TY;1)ʳ { !ZW ;Skt a:ҫ-,}ۆ][y ٻB)ǻ*+k͋Q^~Fp q&p c ̸ ntvl[Ћ*Ѽ}!R[ *5 ,s  w @ P@Vq x$VQ [$u.Q Y'nױW.<˹>ܜ91JSee͛g] Ȱ'   ע6 ӯPy@@Aؤj=x=tp 7 `y lڢL%Μۂ]Ιt۾-J=źSȭ`$34c38603pBC4w8b>g67*!c7x2a]}ߝ89S9 Щ :#Ի3#ic : 6γC?f3?= n?NZkAA%t$,! - l㍪RNP%R>;ZPrX.Zd-@2]>hU Г& = p$m }9+8_(4O39 7g^*4`|*`=p R9p @I G韎&0 [ \0 h~D`9ܡE0~1y. w9@@ 槞[ ЗnyT: 08`?@^_#Pi%n<`.No^tNi%0#ד=&'@ @ 0p)n"'8@6p&=_0 >R&@ nN P(1 nNQKR_TV\^``9Qfohpr?t_vxB!$~o!?Dz_%df E2x2@7`*@p"²~y8(@wI"I=EP9c0˯1.>"40\o!7[`d1# &41@v$XA .dC%NXE1A !$D !dND*zPBzH9{̬iCWBUYn+W!9JZؠ$]@ I`11_&\aĉ/fcȑ%O\e̍7%;u$ǵmm5ltG$-u(R.'^qܯYZj!ct/F0qF~('_yկg掝E0uGFQ P8"l:j,x4pB 3pĜ/! Pb` BAEƲ8FsqG*8/LDQEXl2 a a TL! t(†(qM6t悄޴N<=T=t5S19 UtQFu԰>}tRJ+UPI RN; #uTRK5 S65uUV[u0Q_uVFQ}2`+ @UZUv@cedC@NԜCՖ0F)FEՄ a`Pm_c=#5X@1$"Y$$`$]O A$6OP";:ArOH10ْڲz!bN >OHpCLd l -Rqg=E`C ЀH 'H>6af;0h A8#.Àxt3YcHYnsND{!q(]wͥMտ`H{˝j"rvH$xa~V_u8K!]. VC|w[l1 LռC!Hv(9Oc l@HA 0H? ~S>};˘ aX5|bI\Zӭ'P2A P," 13(c:$<.e0 Ng.TS|H+ tB-qNf.ЋVĂOhE3cVإGs.'&.0M8L[1p `_(/LiONrKu?UTL.rR4ԖE,bՕ*EG#R ЋdtE/|1L@O'{if9_#^Nck(2{!$3%BɊм-/@bb:汑ܚfX|e1y̞ g"28b c`#h``8ad8/&&m #t*P͑ePɸūCrT:H2"db0 måw@zP'S1 :t AB$Ld XRDmd YաGx0ic2`1[;0 Ø pC"qZߢ5%Xm KP_>pSHEp րQl4T/|*$&'嗠I K0@7h l (9"7Q @[~\vE`" wcG㈨ +;3:S:s:ij:ԳKxd;;# ȋ[:H%ċ9<J`[ @{,dT;n֏@}?@V@$@lHf_ey__%=k6k. XJ)Ӟ mXmɸm6%m֯P nNn+ˀc刷(j`EO= P7`7 6dRRnRbUmb0LbNm:* +:QbSe^TVP$xx)(<IZ9c]U_b=V>FVS`@+n]Cj]%Mo_pdrmKNW @M.OP |i}Uep) ʎ_^QV›J=؄]؆Mf-fmaffY&(Bjydql~q7O`Z盅YS$gmſ`uvy:ڐ`e=[<@ܥmDGhPmY]h wǐZ7wev[n%M[?oiJ-Jv<6miڡ@\%Ǎɍ˭KIKZ) `(xLP lu'$Mk^}kɞ뺦Ok OuO &]w]_ l -iQvGv&Rp y^Go?Anoay헟yyw N` t6 (R>FWa$aB fd"$p'o(ԥOu+oRS='h7/p<%iTb=E9`m]~[b +A6B>djUdJq"_MqOWPv@Q|=e"i΀qr)G$,Wf ( a88'X^r`-?c؆ghyes|'9gr>J= >Yv}gAgtxZt=? W9zG6:СM0xHdE v $DG? ";AWc>h} /PLpp C@ |jKP&<8ᅳ C E q)DI QLJCDI܀@pEjxqзYsmn:ꪳ:96'l mp d  &p! g{EQn + ?.|QF P4+|$`Jl`v)BEp֫$0 'iC6zg$ D.H@dCE!3 `0F8"<@oP$ p,l5r&E7wKE`0c"#ʬgk L}.2`4&79oÜ'9lYs- $##O qCeEAm-PbI?L峠9@eЅ24 k(D!JOF5C/SN[(HѐpIJz' pKR3M[S괦-pډ?s !:C ]kֶۚS"`xSP"WRF4P!>8/j*9WӼP,Js|>geüD?:W#*5ӣ>KSV.ԯuP[zHf?;Ӯn;.ӽv;]'%Q >J x~O ɣw|?|g/|cTB=zkz[Gozq~#+$C \hG9ϽЍ]~;:r3 N$>l/]޷70+lDxj CI/ӿ?JCH l v)9W@ @d MJA ^W - + 1 II Wdn_QT!Z G&z^FjYfaV,hAEhJ (tˆT"Bz8!D$0uD(KH'T(!BD!DB!B%D'D@5#aDK!d"K,t'@'#R(DB$D'+VD(bS!!B6bEaU\!j!3U!$!ܢba0# B(ԡ'!P#t0B'!"@B@B$th!D--B@(x!HB9O^'E;Bb$ "X#<@(bEtB'0*.$@'!?V(B(T9!c;j>c$@(!TSDI>cJbCa$,0~c8t(Mc$^dK!!HB-bB$+n*B%S,?F0"!eEt#R'h0#U(c3eT,L4  $a'!IVU@&r"!(. @$HB'dbP.ԡ5AΡ^%|| N&F&L,BeL&jFp'!'lJcFf %>Bc5nfF)%"&@a'`t%dqDmH^%CJ'ny !0BB&@veFJB}a&\(=b2:"D5gRR4)^Ec6=dR @^'0,v! '!;F:(h 芾&eBE~hZ"P@h-(@AZ'^6iU.:BgE0)O"t(a.B$`hUZI2dbF%$"HV(fb~"0BFbiu(#j(Nܥ!%# e4z"X&" 'fE 2B4@bjEf6'@j'T (shp!#ZKH"F¤!Tk*4*F*"bt2'$>YjJc*2'#H(^jNDIPg`ZId&$@i:$B_6k$F%(0Z.'+S!HB!K'%UrR!.*jA'#>zf)&a$' #Q#+ ."`fE-@-52< ʞinh$D!$O" @Ofe;m)>tVD*l< mL X" d~d'Nh&I@-LD7Ҭ'"B$B*."a/f~=y*j)/2co/Vޯد6a//ppKaG0 0 _XO`wp0`FLPhtUtK xDT pS܋0}07EX g@SUi kE ׋ I L ܌D;/k`FAWqi  t  , hP,D챐Mt<VA*C(+,PMlղ.˲2Q@A0ˁ`\_SxȪ2TEۼ @_|K dQ\36R5!  YOsN @A lXOi(+}T> @؀hT{qGHI7tB eJHSL+WEȴ `A Pt| rE]Dc t @ XR3SK Vs=@>LN?s@tAO/tC?4DZK3E @D0 ؄L,5<#| h@suP@ ZE.NGK;TS^qIlQ ow5|uU2T7W;N_Y 5ZuEwõ\]g5uED Z`"56t8HHd 2rѥ 04y!  Xa. Pa'^ `͛9w$~ D:G cOz}4hɴ<aICТLyHp>1 t{ޅwo߾26dȓ)W|sf͛9wthѣI<1na#$xA-RCFe&Q$‹TnReH##|+J+^bg֬Pn@xrFֱcԱ#N c c*?z :@( "^h⫰ F@> D A.,`; x(Ϝz1k,5Ҍ<$\&|JLm$2apHL`r+jb|$."@` `  nP";A6|3N/9#D88%) M<UTR'AVA?Š!.c4S @+4TT%)Ra mOƈ Ʉl-H(}x块z>Wހ`w &-tkw~%|)52uE-.U^e9i眏lu蠅FfR!8:$*r@BI`":+B :@a;jʲb+2(מ,93H Mi=5-[#8;Nʙq۔ȡ]]vl],r\&`l'W[Az.+q4Ief91L(  M!S`h~@!_')8H ax P4~GG@#13̟!My+Aغ9al16`Bp T_> 0 2pV6 F zGGB8 o a ÂD2WxP:-!ю% l`\[AP RCp.IfpwJ H.$0B(*gr ##yF [( F'u@%18pN%Vi!@aeใHA<'XF.Fg2.E,Z! .uHIZRl;@Mylհ>: e@D# mS-r<2b1nFC# а(<'::B'TQiaq|HAyxH@P?5?"Cŧ|'JъZ#ʈFk <^R&d); w[ԗ4&+\Ƴ ft4`-~FV`L]e_d{DHҏH4a _x1/9!m(bx F+Kxe zK5oyLR2{fSq<ēĀ $ Md.YfO6H;M*؜ h 9mƳ\g>ywL<z}.ME#юntgI[Ґt5iN_ОtA]Pԩ4WR֯5iZֹ7kQؘ؎\왉?A іnhX$o{ۻm}{Eo ϱ$wCp_<õ,\$qGI )WYr1i^s9ysAЉ|I0$#/yԩnaWS{u+\_I>vie~oc{vgsǻm|t{<`l)3}G6 !2"BK61@D,5_zE9nMfd# AG?z+my{v#Cb{ËEQX$#X@}|;II xgX$ R`J%{@~ P` M 8DfK@hvKFx B @2bK``JG8Y!B+/3hR H @STF N`d4Qw{!p $viL2~`BX к8$b7c#`Kuo/fϣDl kWn `8jC F`PUƨޱɂgv("xPQhck~" QN`K$E Tky& j C$? # !M1 OkokBjP)72*&rɮ+M+G+{+Hll"h!f+ǮF:!/a (!$/01,2/M!"A 0b2}b@XLB :$*:~B2@1l !>#!8b779!s8KBb:b3;3H|".m)A7'S8?aB!7:8,1{ pB a4` a  !:"@k3{ > <!*@~$$a.@^;:Ga3>D@6!7tAG'63E{5=!x4c4D#as3!;B;;M B;}4J:~D74I918m41 :-.~/dX!8%=~4@AA> >BTS#D/AA D /`86DB:aTLտh,Ss3 $!F4:wU8 aM`0s @>!:\U>DQR!1eSS! T3RD' TݔbtK9Sdu3  aD,4ZU 43D3dL5O;^ZT%U5*LBrQQ'f*xjS;'L LQbnugP5hU'D%>rVr @e"D GU6"@!v"; a"U+>C$VC@!4h58}$z? )&>B X&bVZ)z{}%c?aO|Vl^@veh'l(zgqUu >8 L4~6D!BlAY't4V64zVCb 4WbSJ!@a%"l{S4 z@4o1) 6!!6}77˵3t3Ux3"!7m6\tES4L͘,Ll B1kX@U: }M:O;uN",XeŲpW1 ^uIÙ"ql;c,@wIy옑v oX2Qᙤٜϝ+C2yٟK"5z t .%t! r Zzx$43\A f|"x Z v \ 8ކ+2y,SLzzXK`Jb/ 'x XaxAxA"s2d NX$( @VrM`) ZݐX'çr :saTb! !b zz x!x`b.㭝`x嚌z .@Bx! tz[!Wy)zZ፲{Q"jzb T;L `2zZO " Zpw!㯹M SzM©ĴB*:{`-:@m0zFǾO!rg|0Z|ڽ;x[Sc':[KtaӺvY!xz vW2v ڹ;\1!L`!Ʃ)ɇ3UX|;zeY̷uuH [1*\ΟM\v|Ϗ1j!!n!~A^%R$ $͂nVab(3a!BQ!!fK !l!RLm"j3/% $dڦ!=s6g*F tbt2ٹZ`Bb 5)jh':@EN'uB@r"bj ~2N~ܘљDo9Jj6 4j!L$"n! b!AbbM͜!bBj~ 鿄Y@ ~g" i&@`m N^vPL r|gȚ2~~Bq<Ddx\* ( #!LyҾ"ƞ NXh= ~!N!b< ~@RL(L@Yia (A(j$R;=aua!A!$`!kA4!cA!~ ^aabl=]`@ = ` +Z)&2PE;0#! 0ƙ4kڼ3ΛCȁFLx1#N/Bψ{0E2uȐT-. tG7?@@֭]ksņn #:Ra"mÉ{c.ץ6LB$b2::I0a겪~ ;ٴk۾[jɜ RM[ 0,dJ*ޯK`bK%YfU1dAOO!y-AIflz/BC p!B`GP  61Un"FfmaQP@vŁՈ `F'8\EEql 4[fAYI.$M ^D@G@1  E,lBp%K f5a 0]*(j (kiNJiZoP" t| c&PH-H@ tK1%#DI1=+XT*|\04,!{Rl~irA4DCV|*p&1qRG=np` ?pFFRKr` ȁ;_ hCgkۑ`n$`l ?% @@{)$=, -33LF@ ėD/4&  Yo]v)K@p <j(r ZW裎6pNx* vg ,,xEL %sod92W@,3RL*On!ҝEt"°~oGιo`´ .A88 [i"DV4ĥ=0hCRJ ;$F!k \EλHF|Y%Ѐ iA@DKFd&0#LO 3 Ȁ=2p lpp@8cNR?H(a&8 0%2>A &E,[0榋_qqll?8qBF:q|Th4@,!Dow\ H򑒜 WLjrd##uNr$)msIl+_iOƔ-sB[.%#B bФ$a*0 Р* @p?%nv0!Ȧ@,ZA27cA?`Mm5P R0ٔ11#{FSrl$I0 d脨DEt5<5? қ26eTT7TR0!$ `c1hN`$p9'$#p5)8CP P`FJLe`LS;0( X&e4B[< K]Zj&K`( x&U'rP]k"213*Rb` HG9ʦ؀iOԪvmk_ v#& Ҕ7` j0# HHb `.I_G[%!=pF2xEz F XBpy!@Md{N$Fn{ Όe(πF41M tѦ}lح˝Rj^CVHB7Rn~x^xQq}Z6`жZyA:Ne23't4Ixn f8[rwFAI1lР=Ѓ,jd!#0@}/6H .H1Ãj +T{JȂؚ&Eݩb| |vRˊtlSUUW}9a~1nVc\tViVqWoeBXtXW>$|&PEa=#ZX#˗!GmYYEg՗"zA]ֵ2~CH9<ҕ_p2xP\7h#Q'i,\1tUu]pcTA^Z1^q^x^G]6_ _CAI`B`A%qQ^a`fQ fBx<8&6cXndv1XIj$?b3\V&=Jbh%')V!-!"NGcwc9#2g(;0RPd=dFd`dgfTfeX,R%ӃlBf]%Z"$z2k&mfts(B?Vtԅ3=0l1Guj34#pfh6//0\8iAt&1vU1s3."Qj)QjEs4ӷVkkkA14Rlq7>4BS6&ж6m.Fؖ7{h<*Gpap!"i)J'GF\AC9BnS=>c$vTne8nBupp lp2 *@niq#%2/qr"'A?Y>SBD7wDD;"Rm0$vBpKXV0v>`1d]v]qȆ@шrxV{؇UoHayW(i1#T;jY雛ԝ19G0ʝoEj7dze Pҋ(`KvhXHO瘎xd@ҎJ%MQҚ8afPF""!.!Q'ʪԇzKMgj ;Q/p_6iF/1%i6jqq/j,Ӕf48l&kjM"k5hZسr [&:ae3gtvg1ѳ/jt0nD@oI!p>{yvM*5+G"AR?Cr Iq"♪ cJ?Z`=4;6c*IG{E FA FyW^4@L>8I"YxkiǦE"8zeav;F{뻢ky[ǫ;͹ϛH K~۪˳+˽aTѳދлx|Wj-KԐL7axg ठR*{'O {{:*#"}XǛ׋[g;1K"+[~gR*X6-BP`h70@r' Ax/{\%bŤfU/VnŶZEhRVO^ŷ!sY7YJ?HKqFjR5Dd`m`o:wZQцKqhuwx5_v܈hƒ`xkz{[\;\,˹ 4 a˯jtSR%Z5u (b;mpymrǬ;֭gjdJ`=骍/reYVҨhhmsprLmdj<3 I2Ph[F̰!85qlr20(2ٱ4 Kk#'fs,kkϖ6Q9mqSmrmoӖdn\PYz8_0nDu=_q:T_2W=pq$əy@uwKs!9G;7E>EiED]GL]M#[]} lZ)ڧ[Ч#"xG~Dۿ-\' l6ܢ˷6Q1=ɭԥ ;mЯM 5(L #ڱ],:Q 8q}xTbR7$jak'{|TaQzuDO m Sq߈Uګ & WSYY=HWH?o/BA2iMuRSQj7\KN5`LV|e!vŁW}3VXTLrY Q4MkޛH̓#tj`Y `&P320u8ȩʇLRleux7l^F~bx۳pxhʷʑ`` Սܵ|L8;ݲ{Ѝ&\T;^~tASno-qQ@p?s4N *v!, q_:f"#D#X^dG,ecl%*e'*> EFD,YhگAmdj&inؐ^DYD=EItCWm/䕟%, @@ trPB >QD#r0pEQH%MD)OʅSCk9SN=}TP97ETRM>TT8I+¬0>2ðrz"ֱMBסQuśWPV+X`…u5XbƍQD o!ejdOdNKt:#H!N8:̠09H̴QQ5O((A^ !H RA$n$P `G*Cq n"9B@!?Vl ^ |*j ,*D= r:ڲK @ 欳>3Aa$5A Pb `L@UU"d:PBJ_6؂L#hP*$z@NaLV \ !# `QaSr  L`,v`: C T!(98 A"z|byء7KN8#&Y!+U &BH0 vyV2d^( 0DZm݅bmjX̢&rt -n ;6ja k:XmO(0L%hd&0=% FH#7b;" x4nb@ !T4.D78$ t]#Wo%!4 h!#vBy捶J`"' rXW'a*2OHL!iA~(7-red28pԏ{$ /XAGҷ>A*`"@(S9.=p@"$(B: d 3BxDp5@#8!x% < D$E0 2u4 "ҐC j*GtA 0B1@]0@Y)F& P( 4#9&9 X)(r0C 1$ Fp vy%IdG~K17VI$q)&:$$)dIn-d Uu&pU@)Pc~e>uO}k(aVt&*]= P6 hD%:6*" &QhPyGE:R}"5%iJUjԥ/IbT "Mx 2Tp$ șA&"Ҵ9Бu%u э3<S{IIt"ZVAPE495,Os4F8:\nL U9@ 8@4ALp((avRFNֵv%* Q^,)gFXS8uS!T)?JP2n[Q Y`lSK !u?NQTe`*I-DQ9obߞx_s(PdYP2ny BȀ+ aJ vH1m1xA,},d\E/{#eH/$c0mZ1Ø8Fk3M&#[,4Lmh<#}KOtEG,b9rE P`gѭmA guxsN KH@E\fTI/CA&9Y.pc>ѕcىPsTv;٨*aRr cwJ/]sP"PРc肶+Da @L`T9FFP ?)XƷ7|)hA >1`FB5*l c((ڰ"P|D k'rR9LE-rɦϯ XV G%FȀmL \rv8,@ȁ,_Zcj0+tr&4#Ɂ e?;MR /@*9JAR$H-H꒗{6sD79jIM"<~0Tc_'N\<=DI{t'-/ m-5~l!g^>znw~/_ed?SnߟX81ΒtjU:9誃x*(J+ Hyhï)X44@K3:#oL505 6YZ*aŁzL`# 6JeKDFkc<ƈ#Q1ER8$⢉}8t EB ik랋 {٘n6(J8"!ȷ bh$ 聢*,ڢy01 KK>2Q A" OJ$Ф4I"H $%;TUj%<$&s0jKe䌣͈=>#?TutΈ:΋pNiΒ:$4o=ЂMLUpUT`ϡxؘhA + ѿ⿁? @++P+mKPPAR梣::OxO aY,qBQm8`H`i6n/>Vvn&nn >[@=}?% ο3).a#ЊHb\P(.b-blbAŒ0}ʭ^ 4T$RD |l9'(%ف0c?v@C+-LdiRY9LSYof hr >2&pUéU?TfTDtfqYD ffVuLfbDo&pVqiW=E+cv!x6^ СfіҦEmF~%& ؆y6ֳؽ zh+i'{0G{W{NWa~a]'77DgwLJȗ|ȟ}!,5H H'H@0@ \"Ĉ*1%L#RRE(X *| 4KHT!,1H \ghрPA*Pb'`'>‰-تD$ZR !TЃr]ʔ!,1F OgHp  r@$a  H1G h@)ƈVhÏ @Ā\@NX `JL:|3 !,+H*\ȰÇ#JHŋ3jȱǏ CIɓ(S D˗0cʜI͛8sɳp8㳨ѣH*]ʴӧP}vD2Qjʵׯ`Ê9㋞;"6t˶۷pʝK#z`˷߿ L b&&̸ǐ#KL˘3k̹ϠCMӨS^ͺפ=d˖۸s> @jv Nq&dk:μ5y='N=6D5ӫ_Ͼ˟OϿf3Ø&[1FHZ4<@HJM<@h|%RK1(`AA8S0`PɎ@)dM@ p`L6PF)TViXf\v`)dihlp)E ̩|矀*蠄j衈&gH逢F*餔Vj饘f馇2zE(ST2#ꐨʟ*`O&`b2jz8Ħ+2[V(&4/jF #"`͂KkoKl'gG,W,4sw@@l2|&4L'xB4 L<<HH'L7PG-TWmR@# 4Ww5\2d ӘQb$.l-wOLcέ1v|.n᩺0WWnyċ/<xgȳL\ ,0P@ kF ęDdH T~8APwHL >iQ_\"H?ICLH<]SGTAKF6PsdAILD"I'qL]$tE񑉊^(I>=2N>Ĉ7iH4Yt9pGzLd$0j uO)e)tJQ&81fJX3dcj#i-=I}68QippvI<'v12~3REy[bd'7Mѥ/55Q+rj((;YQ0ub&3BҖsTȕH5M5fD9J{}tJ#LwKrK?uiFE9:[ OA3j9B(R7u*wQJT Qr2p\׃ɤ΂TfZ#%Q,t (UCuijW앯F$`!0#=fw d`v͑&aφ(E*n`&22 ͭnw pKMr:ЍtKZ5Qz4׀yۙ!Lm/fz0-Lk |+b\寀LN;'L [ΰ7{ GL(NW0gL8αw@L"H~  @.x &ٻ<'\S#pݮ,_^pB)?#/L"X/Z | @/Ћי)_ azC{x<GMRԨNWVհgMZָεw^MbNf;ЎMj[ζn{MrNvMzη~NO;G&i'N/q-#.sMx;N#'̋)\|N%@7_2ϛ4HOҗ;PԧN[XϺַ{`NhOpNxϻOW@Ё t&Z?@0X0F(o#ȀD #@|pկ^U'&!(@ =HPB /}!6  ?XRlpZϚȏH9xyg$%j*yyWzzz'{g{{$x+7|ه||}8B}և}Ʒ}g$'~"肩r~~~g$W9ŢEhJL؄NPR8TXVxXZ\؅^`b8dXfxhjl؆npr8tXvxxz|؇~8Xx؈8Xx؉8Xa N N K  iL`hF$zhb Ke0hhFNf h8i  ، xfq MB`q ~0g g{h f [@i= P (iRs2qv ȈF ^Lr)ْ.ڶ p ΐ 587 M4P*p-2&$$ G p ˠ (7Hp~K$w4Z'$8PPidɠ Fb $1M"5:;PnP/ЖEV v9fc$L $AoF,/(;p ,S#0;'A7 F%0#7@0>`d& UF2C2P> ;"K0ٞ`Fz/ sBIѓ?$IIMr@?Fl`z'yeP00wP)lQ@$ Jrp;$2JJ0c]i$&pQРѢ/$g `&PF0xzdJRY$#0Zl$:F9TB=$2 zɗMHFKѤSJI`}a h}#{!l# 2Fp/p}F_(1߁C$|N#  P-@8'8&ٚ7v CPC:)00y' X0^ Zi?_@h4038&ٜ>@(,Iq/@'JbG0*F)ɝI2 Ei&C~W&Y(*pKOBk3>C{&qRyG0g7&XY$=M瘎aG*&T[ ڂrF 1AJj$17w+I 70p>Jy. Q WEzN2$q~lw0& أÖjhzpi*&9L@dP!7JV${IJAiZ@hr8{ &S?GVªKBZF0 mmP$6@0PF5ʵ$)1J˩F0z&%H|Ƈ|+lI0x} =Pp5p$`[{UX L꜏Ӛ[g2}Dw4@k$K{ұ2@ ׃  ;_C$06'&@,i Õ^ E ;۳i~G=$|O4@L`Hˇk$6yǗar;\Jn<<\,DP1pz@9]xLw"ڗ%O#gPZ 'ʴq! U -*UZ)$\^2IЃ-d8`6j>@;=.{Qgz7g$ lz8@)0C 7 l(,;p7&l0 i cW}=Ż-^]RB0'C&DdV@|&@{Hy {=F/02;{wq7@,KR00˖6Lz7[`d`=;{)}'B*W(7k$Zp_2E05`kY_KF¾7*緂FJR |<Fq=F"F2Iz$ J;;Z0Pp!)]@%V}?PgyGk%* ?{-78~= 'D~J@=,'&JƋ:&$[4<& ߍ0 A J&&n$ %(s&nRRT@_ p)%d )ДI@Ї ;˳+T|R,CH BθPMrQǰ\&Pև\yNyrp}%8wMOQNNU2q 痞(xRbȨPJK%"! f0 @9&=L1]Q-]"AN~r[.^Q2rC$a~ ?({q̡vO?l"?%z/釟}1tlx%1sX!$^ջ&~/~_MBS$֮%wbG`VFlNKTJ?gAu?rxdN8CNdHD jQ NJE 91I)UdK1eΤ9G:@`B N*^ +4Fl `0prcKW$,@s[@;r#\y_&\#0r`QĊ1tlA$ ;hÁ&[Uc4: ~AAk܇/tƕN0%r[ȜqZW>Hˣs#կMȉFh`DHApj 6:蠍"[=U2,8 &B3b;A64DSTqE[JR )T@!( ,j.-tp++b!"htD.X(+"鉖[.:s͉x)Դ(3C2S+;,M:; OPpu8v`+-h/HO5LSdCs0A ձ\1=o]>#\-O舍.5`Vfuk gvZjZlv[n[ [LN5r+]3\tY^|w_~_x` ^YWSO9vL͠x Ln !<++K :!(:bY @!%:Y46Z$ek֖pbL!Ϭ("ں뇈" N$P C! %)L0BDaRp((f5- r`BqzN #Oh azCU 78P]w2iEhqiHŠ1͠ zi-yކIE_s@"?e!m@j`P!S yd1 }-&0Y`lP+d(p G0 xaR;T0"n!Nv=0 ~P3 dJ!j9w6*%8-Lɔĸ`UBG(& > I҉(n4TKXI $xV6j'80v&k Lט9h]oy@I&͠bA2b*,lN Ck5Պ+ǭ!O}WІ_jdPR-_]c&1_ +NF m#Dt#P3λ&WBhBK2! "d&[rP)[jBBaiP1Dr@q{_o_X]{`ifp`GX[a<4AL21X0, Ԡ؈ZPZ&(\dR/eTv%Lm V@@@X[qep zH e._@ TV xt7}4Lsf Lg53@ǁ$@!Q}ivi̸' z4\ zw 5T@C?\K +|B_JW p%L`e!u)qV),vs]mlg[vmp[&w}ntd^Rn{5e%@ a&P|#$*zxJ"-}vVÍTPN E%&P @^ T9Aܖ;8 d6 " TT$[\xkpdacSp\$Yߥd̷)Xdxsg?v=Q^pЌH*nU +mNAPR2٫w ֡p5O X%;~F+ K4Rebo{7;'4_* p_g~_ڝZo; c17+C@j)3Ҹ5)%h/雿/%+)  A@S 2+9 ,h! I8;&$(XX(BSi2,|s:h(::; #YAB)3i@P!+ + B4ľR"M$Wnj:'cFa 66XF|2HHHHH Ii()@ hk( 1c h'1#<*Lȉ:!x + JK)D9"2+ [(@XI!ۂKÒ-3؍p hי.H ;# x*7Ӯ;3Gs"N <"쫁Qt4%1  ؁.K8 C6BٹP q QI !,4B (a*$lA # @=#Ŋ:v(NJJyb+;\rFl);9&o`BӦb\"-m;`D-+m"U"G V %hɷ!,9; H A*$8‡(pD*>Fhh0 "G6Lc @9īW*CAH~z4R&RjPjQe˖`PJE[J@XL1ISйj+߀! ,L76Ike6D (#Y[Jlq5+K-*b:` PApD&Ψt!,_7 - "CР젬,*N &.OKc<_.32g3(1ڇ=17#&~bv篿0p HLh@9N4bDlsp -64 ?۸ʒ&gMD޳0T/K4LZKQ#k}OV~͔,ע "\W;`{ζiD8!lh_|kЧVP 8c Vf P € sddp( P  Pr8tXvxxz|؇~%ppXe `XZ8aeH(V*jUp8Xx؊.pUQ=& 0sT((; Ӑ(:Xxؘڸ؍8Xx蘎긎؎8Xx؏9Yy ِ9Yyّ "9$Y&y(*,ْ.0294Y6y8:<ٓ>@B9DYFyHJ?/ *lKiWZRF@UITBgp[ٕ,-ei00,@hn0`GKy9Yy٘9Yyٙ9Yyٚ9Yyٛ9YyșʹٜIyәIA)Nlo1Iy]ѝ@)o2 Sƒiɟ/1Zz ڠ:Zzڡ ":$Z&z(*,ڢ.02:4Z6z8:<ڣ>@B:DZFzHJLڤNPR:TZVzXDP1pR f0%#`#p5*@Y/UZ))0CPY # **14@tS*q[7@hj@*(*PCpSp *7**Y`jj\{ZPipS*Z0Pp!)'@ (#,P=*<F7T@#00j2pj*KU6;[{ ۰;[{۱ ";$[&{(*,۲.02;4[6{8:<۳>@B;D[F{HJL۴NPR;T[V{XZ\۵^ / 3c%4ɶ6s[ҩ =\v3x; ֲ \05CI \  9 1 8ɹ =hp r1 PVSG {aVwPS}ѫѻM]A VP>p*ۦo{ [oh` ƐN P8Q@ip@ЩZ I70p> Q $/P,A <,qӨ1@"pjJ 03\5)X˰   b1*C`0 2^,&@=3L@d LIp>d[p|*a`D6`" EvP>pP]# :ȍPK% bbq`'F$ ˴< mE@0ЩMi4FXAYL`, ,\a 010@`\*ي؎ 5ͬ+dP2`RΗ.'ʪNZ1Qګ) 𶖞UɛP0_J5q3 9-#q@ &7<4=Z܋k*ސ%Um J1W@1"IpI`%6 &2L#1&&&`#Z ce󅪦 I_xP2P!,=p;0 `p,&@*=l20#ś2?[IIмZ`cA%ꩠɣX Ugւ=Jp$e* 5``- `"\%n2_$#  P^ky/sOc]Z 벾p=B@A !C8=LQ CRL2lPI)UdK1ecG =TO?hQI.] 4;hAK!@:tyF1>J@c., 0e[qΥ[7'(_FI6Ĥ$%}'|@]|kرe,|8ʃ !BnK.1$!d82;#PÉٵonޓ{Wz'_ymcg{ϧ_}='3i TpAtA#pB +B 3pC / tnDK pE83E ^hJT`DX $0A8@ !a#F%üDK0ID$/OjLRb0;-5~HL0D J0AF*sOEQ  8xȤFK5n !n *#@|PU3N8T7 JxT r`: zص\?ᅐLQImp 6L}Jjv޺<鈏JbslN(#]3ݢ .#NxA l+$d@`ܔuekXavP X0n[$-eRjݼˇykcB6[pe K[ 2QZ{imN7fR1J 02ų3 2c!.u8D:tpAB{6Ste%i{ h`Iߋ7xW~yw~)%Xj7Os/i{'W}w}r7_%uO،~/I"a:`d`FRHȓ@,&'\% э!H #ZA2:h F$r0 =( 53ԿΉ) u O, yVbC,`'LAQ0@rxD @ 8CpP3 $B/$(j ?ɬ,pR͢>@M'+A>")J?؁ x0%,@,+E\28A8<+ZP`"; v0\+[0t"D ΄ +ထ)#e2JCj,6Z0$JDC-kA8Ʉ$N&D%u|[F_؀9UH_RO&)R{OJw1;"lL@ Jc&DPtØ5y|;SpԤ S'pYTS' @$@hl(O@D<رrE'1`D*Tk`izX֥C(!VKl09!=HE,(P0Cj9v]8={I$frYE @"ZH-,%TM,XCLha@ @H/ ɥySJ! wCrYr@)domO2C*` lv0d3hDӂ@Bl@> A?|;0Af s@K:v9)\(gUo%ozUޠf`ĵl% | 5Tܲ^]+Q~_Ϳ+L{2`$ s|g Hő)QUS\:+pLYxǽ-pp/gS\,SW"g4Q\ԙ|U%Wީ(n=J4mOhK}Zzpf@LWIdh$z.B@`kALBԑJMKF05,}]Wtw>M$7@΁cbg|"=cr8hl3S꣭m! U@ %qⲯz}ܿmG`Bv;.& Kg62ÁtĢi4$x1]bLWÐY1rB}֩ou/I>;@L@\@l@;suQ:: Y4k)Js@ AA,AdLAJK767;xΒ6/!Pz@6Hy+xiBqA*< A8QZ;80$7[E)/<%X8pHB,BA43 U#"x8'#s<9 8<# cWI## &#Ё3Bo@TUDăh;;\Ȼ@SQ;z) Ei+`ĜFį Q'íԻI!xƂVG|Git?2쌄4?stCA#9  `SGUܢiLI'k X/H 4#yɜ#ӱ҄O P@L:P PP9 QWP=QMQ]QM$A"ʙAT6f (8ܵy2lQy2 CHƀr># Pق 9)$UR5mL#,  'h8 Ṭ53CE@ N#E#Ђ=zPD6h"SMCFD=TU,m=֣Nhk!NPZO#(X=4]RAf"h6*#W-W|W}-V%]8.,$CxKs:AM@ECBb VPuY;k8xy7(8LLbUj%kBY@YzI+h4Wȁ+Ȃk4஗̅j(q!",[39w7-'kɏu*ܦnҁTIHWUU@׫)—ٸM$h%P( dڄ2 Q 9ct-@b$VɣLJ0Q46Գ z倀 kK>˴ѩ 7  ;ћ bO.SM [%4ۙ$׸/zHX̚=䪅_L ;T0$ٸ3P6\ܿͺ+RtUі 0^ 0YFR:/^U t.@xOi%Ȍ/>Qc^٨PxS!Կh蘎6g8Khnh~hhhhN->(YMA~=Ђ&9!8'в<i@#5b|K1=ᓜei ʬ3b֊> [mPΡsi 0 v?PX(fW3M ! ,.\H*\ȰÇ#JHŋ3jȱǏ Ciɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`u KٳhӪ]˶۷XKݻx˷_LÈ+^̸ǐ#K3k̹Ϡ+ @ ӨS^ͺ׊CwP@۸sޭ!Nȓ; У(ճkνwO<ى E/?jϿelh& FF(VhfxFv a$h(,f֠\-(4h8"B9㏼xDiH&V #PF)TViN&t\viSOz)dihip)眽x橡w矀砄j衈&hI-ZXFjVj饘f)I@3 - 4s47& mj뭸uJ =* ͤj3=@lcB,&jZ~:b p$覫 :$P ЩZêpj3&@V+y{, H&v,p0@-w sКpMLɲ$&$0l8笳@\@DmH$L7PtnTW}Vg\wM&^-d"fLhېtmx{A w҈'aG.Wngw9ܠ[礗n騗8OJw||3葄6n3E/szؿt `aw2/yĆc CIA>`P ?u 80P}&u̠Ѷ9 p _r. 6Ё"` &^f4( ^䒰X|{ A 7=w !OBr (nDVp8f0C Xzpb+l@ @ Ġe1SX4<1Q[ 9hr3"F:t& 6D)XeD!GIR"kJ#dY?.(-uAR %LYT@%+*ҙ% Ki d f0'bzdJ&Mʋ`dGuagkIzr Ϩ-|6=Oa"DfBWdfF Z\ PB3$F'd2ӡ|55ʉ5K3J~;"O\xR$DeNM#T4©TJ!#-JOQvu1MWL R(b*Srv^*[y)"3!j-LXѕע^ժ[MW3kt]+UXhdzX]VI f#*=Lh 3ڃdVM9Ӊ+^ǜ,lAkͥUV!Ln*AHp-^ ZYr)Τu+Rȹ ,KZM+Z{VAuG]$vϭ/DU!u];6NMRTv~k+9[Nl*m/[V"cpx†B6a o 91YPV&@1 U ":ޔ3%'$1otoaR2D-iHK^sh6i\݀ITT2H\.0\6_/̌y̫s^B?95l&e'F;Csk[N ˘Œ&[NҠFJLLGBv!,&gH*\ȰÇ#JHŋ3jȱǏ CIqժ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPyJիXjʵׯ`ÊKٳhӪ]˶۷pzMJݻx˷߿ LÈ69Uǐ#KLrQ'-k̹ϠCMӨ*װc˞M۸skr` N|ro+_μУKN*kνË:ӫ_ް˟O7}`(hy 6-Vhf{($h"J ,"\*N4h8虇@)Dq gLڈdBJ6)TVi Xv`)fqO"h^p)tcn֩|2Pcjh&D行6裐樥CtEj饘fw2覠V }*ꩨꪇMUꬴjdaf믧 &. A Vkj) q[نy۫覫_JK /EԲk;"?Jz$0 7|IG,WlgwG6䡼OT/n,K0,4l8PJ0m䢋.O.OdlT\w`-EQK+Z %K,-.\/ 7={.{G/WOq/{n1C+}@2xEC/c3JH@ `qHAٯ3x?up~lGh sdL Ե/  ׂXt!ٳCrIM$ [r`3a圸=P c0UԢ(64ppcY ktcciQe|!|i"X񑐼 AHVL7Bo]RXΈI,*)A7V2diR ܈+U Li$i9˄ҘD%:+T#\%1ciLl`Y]L7!˯ ,%0#v:lZd+H!L)|sjGA[@H{R azU,a ?}FBsEPAfQm_ d@LgsG7HI/2FIrYGFBR"|OKO-VwL rC .!-Zf; @!d -bKs"$4_ +2bfC)N1#DX: E3^fՠG+/\te{L `#%rʋ<0P ZBYI~J lHCτ\^mH*79- MBRPo4$ JӚt%Tx*1%,&T1p2ʢ3c)O18̘msQ=Vu"QVf>\EWjւ4i\vxfo?W6S\FŌUl ~TPHF*Lp "H-l1`"H* [(j2(cR!Sd Bզ z*v1VV(Fs%]c,M1! c `2 /1ȎVmcaTH+l_*~vԧ8R JUTEpQ.Cy-W"ӲumQ{ L Zpb,^[b cfa a" (x6⨅0Q [Px$hH.%[(X-j1Ʀ&*Q bS*GYx>πMBЈNF;ѐXҘδ7N{ӠGIz'؀WVհgMZֲ>oj\bτwƀ/ 38: a AȀ+ 螵Hh 6 3HV@T A `@ XBjv;|%^5dЁ$޽F; PpMD\@Tq@ 2hvrYׁ@ 1|-o9vЄ;@ޫNh`:y@zJP:p0` zrF̰j @` P1lx:4'O[! ,!j~H*\ȰÇ#JHŋ3jȱǏ CIɓ={6lX&xL³h&ɳϟ@x3gÜ\ʴӧPJJիX.5 XqlAװc˞M^Hk96 Ң&ͼУK f1^:͕)NX_kIξ˟OϿ(h& 6bb-Pr˄&2آ &ㅨS-H* cO0.LuPB $23l 8^H`L",SL6%& I&*ܸh暮I %6rzy&u扖,栄j(U8V;s1t&鹘3( p*ꨤn"&+Τ1&PbK0ib&Iy&Ԃ ,*+P&֥SF+Vkfr@3 - 4s@@,"l櫯_ЃL6CNB,WLU:[S p${(2I 0 Mpn39L+- p  K p@N] K3,,D|2\w@=@l$5B|.HRtmx|߀.nlL3 1\4@0M2f4 .RᤗbMx!HN*`9[  J1@#CyϮ4L39Nܮ2/g}觟4ы 4\3AkA>g O'vއ?Tsz Z>87z GH%Ѕ.v V ],꤅O`Ebx'†7"PX ]x/0 1'nVL$CtX$10B+r\OY"'+*Q @zЊVl:d+8?dJT" EIZ̥.w^ *G`( aK<+BsĢM2Sڬf>ϜOL fV"D7百tB33x'3MztzD% lz\>B A7ZGS;y&&Q JL"CɉIGgZ8 Lb Ԗ21t*`HMRԦf2NT:W%XͪVծA81 X33^2xͫV׾kq0XxZ (PAa0ccXU7;1eYӚbd59F"\'l; $nw֫UZ? 9-ֳ=L՚%ttK]V'&nuzX1j۝Ĵ.*V.,NZUBWSthU0&+`уb7ΰ: k }LOT,X,~qcd'7w-᭱s<<"j~ܓZ<HETE* a5H"td8C,^l3ݬIEujaUXֲ2L J! c CȐVub lYsgTӈH+l_1PjV#Yլf3nD)з/^JPT*qPfTN cHhM@̩G-"79ݻ3O zNM̪Dix ^ܽu6=$H{PDBNm! 'Xz0E|=y/; Y\ۖgb1na/ޣ<JsJO' Λ@J xDhW[+׉v_ CC:LC~I=w0mXy   m1qqwр>hUKtqwޥ xtr$>`'8/oZ AEՇ6f|gu-+`GH+ InwC]WQRDƅ%~mw)TCHacJyGyl؆{ķ7s(!|=[wC{z]7uHABaA!s~"}<]70k!_6(tXsRBBsȁ8X^_ø]CՄΘXӄ55zo ۰ h09 9 (D 9 ]cLh'S`8$x($^ݕ=xa9I~兀Ő[z"^r &   :Ԑhӄ ?0<@6& 9@ :!@.J `~(|X]pyȋvzTJVzQGSٕy+Z! r""@H =( ͸b3=$Pꤢ,"KXf *$GF9#(|~ErQ:@=hE+X*\%>syGH(L W0a*G` aK<X%Cs&8#&:)<+GLD&H2d@#$CQ\tK%0C$*ьx̣FЈJ@&jh*'>D yD;񑐄#ǝуQЊ!a'^[ζkn;'VA/脰jW Mzr;}b;1'H FĪ'~Y #BQ\D ppRݱ4) sP:暏0nv NMcc%}o+{MnݠF7<.n츐hT^oAo f'~7|"doXȮzzIhSop?/x6?7tq!:4sw3=`~0v.4p 0  CuuPc_QTu3!-f$(\'3Xi!0xtUpaW0 ~R .&@ ^G P%S`g33 x4|O&Gdwe^wA8#|8DX`gt]{gFAш>7zxYkp|ZGG#u[f{xohIqTq}Q8%Ut9s4HqHqDx҈K@0傹D=+ւ2x%g6ю@D0K=T P 7 @RP^I0G\[pȊaHDq@PՇfm!yqYhr" Q 0 0 ` P "MD` 0P leX+Y_Y: hՉԃ3e]I95L4 HbpXOIDp#U^GY:ыAᘊ }|pχiYY*KɊHe .V Yݤ ɔԗO6G\nj؈\Xw͸I^9uЉmٝĥ"6gፓ7:qc aI Ր:IP pcK 𐖀imX(98,hJ1Ȋo!6)P%Y"*o%JG48*W8*)+G &8 @ФA @y` @ Gm}؆x-i؅`Jw5y7)Pq*{yд}yЗĴKپm4 #I+R6NK;۽ܽ:QuL"̺6w(*,.BV `S0 N1 Ѥq]5 R/ħr} 7Π e9 \ܿ6| 0L|p ]U P`U*uYs2T FRΠhȈr:T pL(ceP  P ,Ș&@\TtqLŊ }ɟR 7P8Y+]< Ŗ ΰR[@*eĚ f,ʜ%ɼά7<\|؜΄M3E@h`=202 bM`Pa(MR; 5P?0 ]!fJ` {&! Q, !,jH*\ȰÇ#JHŋ3jȱǏ CD(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴS%JJիXjʵׯ`ÊKٳhӪ]˶[(Kۻx˷߿ LÈ+YB#'h $ZM4PʲF2DY^ͺװc˞MN9bZzXYgz(^;, u}KNix9㓉&`$Իq_Ͼ˿wCg$l=l֌ e~F(VUeÉW$ 4MAh0(4JD=[AY(UupH@pu`$&$L(TViX>tD9:cn(dihlQuegB'כx|矀*h]9ЗZhЛL3 1\4@0M 1媬꫰~T(F7"JQ6樣}jjf*.:F+mv D4H#ЈZI4+[tyb*1 D,4L-m)Nk'4禊.4 4\3lpaͺ ,Hb՛P @[@jˍP.  h4p+07Gߦ.E+08R _۹pNC+I@ʷ۫!_ -lP@ͯ]H`)4 n1w@ XW.gH_S%L`<4#LpG@DH 9LPIXc%pJE$#(`D PbLD&\>q/m<"!!QztM"0GTCHJZR$Nۙ HLTB'6CKQ(xDI񕰌XQFOD%(1DR6|'&J\ŒL2 ,$&AFS d ۘ'Ir 4ev~)ԙ"cAMp  FdSohCbRrO50Q<0RjS"l ҂l,~HF/ &} Lg=(F-KL=c,\Wֺ ͭnw[.AE*RA c`#0-T8#mqT B H3l ô /dZ$W0*6W`/mke@00a dfS2bJn0l Xx-V Z7m6 Tx(q-W"}mQ F0L)@2;E"bWPn*Q a *Lp뤎&l R"%P $[v6M}O gBbLg\oY>ٶLBЈeU78@1H\" 8'HhΨN5m-8V ,tHZ4 'b1:PT@P)zDF$aOmڬ tjh3mOtݲ1QcC=ak0H6P@ϸ9U*I(PI"B @|6J-o<Hir*<@z ">W*vPAN *=yv^<؆vlcS6 h] !F9D5)\tx[uqF^G6L`R|*j0ih+ϼn ݠF78y׌*6oZu{tHE* &g_4Pr |@ i/եdF[?:j&χ')L`4La]ߪW;?~OSiL"bv0 . &2RuXQ7>؁~6tgIV{Z1{!(42*+teNL;X?dEM@D  PD P a KHHXt<=h;(37q` P 0 0 ` P pD YU֠ oH tX e\xHZ9/6MGHQ mh w8GXHE*X{ł QKgr#5ETa RPxKh NXxU4aD؆ cEJWK Lh t+dxq79WbX8bI Y4 ЏȤHh pAahH+ %1+?Y}aqR'Q'5@+)#'ђz8?ё: $<+Cy812B+?^DGINyMKI+62`Yn0C4a ` n膚Piy(AՠP[ٕD &%Oɐ͔<(R]Y`YsOuTَ E3Q kIqqY qy`}X h(<@5(ip`Ik$2)u4i'9rI){h.&ZB Qq3(H QHƞ0Q F9A)̹@hٜ$ zYzɜiPi)+6aX'(ژ#,0ju[AQ)c9g2z91Qn0shxiQ~ څ7Z^yѤg*(IjaCEZfJuPzjUG)'J)#1ٞ*㹝 uɩ,l:jHYY/Z4=&:pɦהojnV pW0 R'1 Š Zà k pyJګF7>. :'1 R1 : i=u Z: &pj U V@ fu*5 R˰  0,J[Q ;uS⪱pQj5ΐd+jVAK(z k5!AV eXyh1>c۸;[edP 8tExA kDUW `ld p T H @ ;t  'LD Np`A'(1 KgĆ[;V rHcFDŽ eM!z(یSC gXdX Ѻ zAC H kHA*\pH E/J̨1@C@ J`r}%]pt%U,0v):@7V<@)DiO酑cz:")TViXf\9cE8ц'DJv.LSp)V_RfIuڈ'Uf9YJiΉ4l .C袌6[AA̡L襘fq*c iV@ 1*1꫰И&8 ٫TF+Vk-2dUv+", g<+з&˻.\`p,F,Ċp@r@+ ,2d{Z@.pl+4l\JPPp;Dmѫ /]bB. \wAJ@7mhG< -tmx5vaK#[b l2I%L7{w*.&L &y.ae2#P#^ &.s7%#D@<n %LB'TTr% %Pg}F{<9nIJL&X"A%l,G ?R]r;dmL:Q׾wc$8&$ oo tE6 0A1Qacf! Egc& g.Pk/  E&ZqJ%D(ą80RBhPg` x(ịn-]\!>:򑐴2!/-NG,IR'WJa-RXE*jZ.1@cx2 [ % !2i. fo" an[`"E1Ijf9vNc䩯̧>tz͟,j\Hp`: t"DLq1#@aPFl@@'@~(OBA'JӚM!i+0.*e)t"(MRCH4`N V:J׈2vP XDb3\\IUBc]^׾6 J>O(6MbԫJ 5iPcZ;>α!`a\CMV K7k'b_z p҃nP;OlAl=~ǰ~Ɂ46ƹm`t'N]zrq[-Yl!͗<>m~_iPL{O b^I5 *:X@S=AR>!D\Wgո$ D0Q8.H}玠4$qw+ĵ#F&K% 2}z\JVc(+0JdM wHM+<#-| p8~g oX\w OYLOe4O9D׏´5JoC9=c>$ħ}FKL/˘)01a-41~X g~,\ K7E"Qv|0 j|AQ 8 ƀi)'A!M؁ d"xC=&`(؂ K> 67aVd7؃vMF @K>Xs P F؄NPR8TXVxӴM30bH-3;Ѕj`a8l,FgHKk؆v+up4twJ@ah *^^u0x؉8Xx؊8Xx؋8XxȘʸ،8Xxؘڸ؍8Xx蘎긎؎8Xx؏9Yy}Rè8b7PPp!)0H40$0294Y6y8:<ٓ>@B9DYFyHJLٔNPR9TYVyXZ\ٕ^`b9dYfyhjlٖnpr9tYvyxzN`/S}r1P 5闅){Y}95)yO /SNP0Pa4i99Yyٛ9Yyșʹٜ9Yyؙڹٝ9Yy虞깞ٞ9Yyٟ:Z V b @ 01@."py? p2D6`: E` P>pwâ$C6P]:z<$P9`(JM::6@@C*A`7@^3_rzxz|ڧ~:Zzڨ:Zzک:Zzڪ:Zzګ:ZzȚʺڬ: y" `p`Zl# &p}I&*/N.P  0" pZA# 0  A  C @  jPC0 5Z2"N`= Np 0"D,#& . ;Op5Y 1C 2D[X³^`K@ Pa T `  ]TI.Mk:PV9sE`8 Tp ˀ >° Q ЯYT&pQWTG8X$p ɐ ` ! wC+RaTBG}0 `{9 ۶&rۻ{RK,P+<X   P m˻pk Ļ P rI#00, ;=0U0=P$pֳ փ+ CP @Q /O?6p!8 <@=0HМ+DaR<Ł yx` 8@5r1Q.)}j: *̛H&@z x40wPwu6G;2JJp4+a*mGC0ڡ#a%`#Z8P\Y# HC`0+=2  5u|B1,l7n+ڢ/3 5zq' 4VZ0P/ K:^L{W`'R*)(1 $b  e>JCZGKZ[ /m]Y #`\Y3;l''PR#(,,Ƃ&'@oQ:AVZʥЇ;@/0\q<>G(M,PC)$JB + *" ,42;BaA]}oRIp/p{OLjYY;P\(CMȴɝ]*;Y  N+^oM<0 =Ĝdd C0<7}~mm`k-4Z"M`408ణK4`,`C%NXE5nG!E$Yɒ=T҃)Hܐb%*8hBC %Z(#QG)UYG(È aŎ%F@L@ <6. 2`L 'F6pVcF381˃) .gep MD8lp9p!b8`@ [|hhɓ&~qJvx ɄaFÙ+݌qwa' $8 4@TpAtA#pB +’@C'2kh7>B<OIFsqG{G rH"4H$-%KLqJItK(Jr̐83L XA&L2XS<+a#F4J :+A I/5{2-kr/ PV3Ja!¢?͆ B>]U| ġ @h#:!  5UX~H]s ^ 8*gwn !n Z f ن|P:., Jx`y00)8 ZTAbxaL)FpbR6Nh(MtCVdHhZ7sl89W 0BOH .&^#Nx-&a l8ZX(m4q#<^avp^ -nºab  +L`e`&RUӥ/ʯ0(ES"1%'tt!z3zP^5s8r*haج e [k`p8]4 ߹5߸yL*Q/1C*.}> \HD4_ Ѐ a}C QC$b!1KI}D0QGT+(#ZE0Qc$cxF4|Q!ASo1mU,Lz,L:ljP? QkAxX/ @X7DF9z$! AB @5]@ ɥDA ؠBQvArPgIַMm@k]xA:QO.مdL @ LQnЈN?(Β \F04DXG/**0"PMa N Ү i ?`}LQxzA ( Ÿr! @$Tu|0׹dP]Ɔjgղ2}c[־E~sJ i |`'X f0z*.FPl̃sJBCOaX#&qM|b]ƿ0m%\[ 3BH 1p ny!TJSwFNR+/h~ 5-PJcd̩X2xAK(˒QT@*@@> 0'(@'ښ+`ee0'Z(0k_CP$Ā-DP<+lđ L“mcYD"e;a7mJR.%1BAu$@&г*n7DZHR; OLn6ӠMr .gA`YopQ8J (װ5! $A༵œI*FݸV``#H̀T`>O|G?0m~s\;"s]C'zэ~t Δ&RJaJ4Cu0CV4 ?ʵuЂ% Qt$)yA^!+Eټ8p;&+39QBº.]N6Pz (b綺湇^j0N`u{ [HD@ %eձ(F]o< $vxw nHv31Ǥ#+.z#% @:Sk(rRWaz\@ #|D  y';>ēqQ=J֛(4#,す1`!ҫ P @ 4P3# P 8^A$9-"B H)a d qA-B0 C1C2,C 03LC5\C6lC7|%K2) 3#8=; MĒ%K3=l3$*Sl&#Tly0D&ف?$ K0 gB9{H׸(P33@{uMQŇ%Edz4E^DAn5YV#YR&ks((PjYqN mD6%D{&ASBY hpS.?4E5EۜbJ؍ 68IJ[_+8K TMU31 !,xM ` E*Ç#: b[İ`1(( Z"1XJ flK8ZR+^B0 >4A) !,yR A@ w 1\h(lA Ze":^4D 8(R@D@!,H*\ȰÇ#JHŋ3jȱǏ C)4(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPyJիXjʵׯ`Ê;.Ȫ]˶۷pʝK.Wb˷߿ L08(^̸ǐ#KL˒Ij̹ϠCMMdr@۸sͻFMȓ+_μ9H;[سkËY  Ti:@Xl@Cc_lϿ?(yx嵐zR `} ($,XXX[v(h8k8V7ZB$?q _HX \v`jVdtLZE yA bȰk` Yi'na|{QBA[<0m (Ɲ秠*ꍍ$蠅FuhBЌ)P"(:U魸F뮼fk;6,qIFdRYEdvI'覫T*D$OBKh ŋ.x lM6.i dc$٘0 fC $r+B! $SP\ PM%$#I5&L7mb6`.h.Xe-Rludm r; l9+ sb xI.P2jT"l$`G.4Lk p Y{piS A5USz5d3.zcD(AP{FЌ[оGt74n`ՌMZbSo%=xPw[>Q~9^|x_n[3] y@,`A&x$<$&1 s`9FOg@*8f hf L$J = 80znzӌ#CYCͰ 9Aғ3)1I$`9 $yp ZvL5xoU8YrĜ`a:#J3T,F7юz Hg D!C͙ $JE o"( '9Ҟ C8Ĩa(C9S:P-01wnq0e"H}UAYvzDSc2N5%5I_ <#K0!Z<pF^J p1UWj$W ֙ ,U>ctGZbh&WTgKE\j E[ZְMJZR#.p̨HlT ]ȑ RT"Nm\ ֎ml  E1PF'"ZgWNu - *g8FqQD{D@+dwdDCЋ=fyVl%v- ^h:kI Z&pF-&;YB>LQɰ,hY3 xb0jL;ۺpL:EjA݋y *A! |IRP4 LJst4˕:D 4`Kdo-Qj!$rYς6dšHrP52nOL0a [Ԃ( \ el*aDhX%a ,ూʱ^HZw!@v^uGNa HvM$AU*2[I@(!`dB76f,[1aUZ0\Sp $uh!tC~hOV%+5hK F(-^Ajעі&MuB—/I EҜ|2N;N[8ən*|Q Trbf *0 Y.% X5! P@ ٔ @A@2Q6 qP$*s T]R@4r 6z `BhK v 0erYbI1&oPeX:b31`vXxӷ )@VٙC食V@gȨ+0i} yDŽ u@V^фXҨAed#zf-ib[Sɩ@ڪ: 2}`i @U8J)7qy5!"щUۥAayaӚ(x#^Y%00۱atl㰣;%vC'v61,3/x&;& ġ\l&@Ɓ],1E$07s3a;0f[c;]*hkWOnmKRyڵ1 Qև Z  иpO Mzb؊VѴa(Uk Wˡ+[Ҋp˶{Kk;:Ѷ 1UYYyqc3qIOPണa@ [cOq1O =pи++  ۛZsEBh+(`,OP~֢A@,]6Z"3[J=7A (l+0.0 ((1hl]4д[;{ I{o6+W\xj3BQm7švYL5  M p@ AB:ÈH_+P|ٮA x;RLP(^dwv[ $K6tk6V*z)Йiy9P<aĊ;ۻOp`0eC |x̒LB Κen B%e[qŻήR<Z9 7l5='({lA a")*"_ sAx(~ eA6`&\-l8Lѱ sЅ>˥ɡטƐCSNv`Lͦe_F,|UZ|#qS# AQAoRQY^Wy 8Pj]re{kJL .p | 1 0 ՟&NH'M֍j"Al= !ѯ8ϟaY=O6 Meљ a Q6 f `8p !A3)aG aٯ! O1 ` pڀ ># @ Q !J(N-]]='7@&@a 6'VA&&ҽv@n9T}^ `0ڮ{@k@ RnxdjHme5?0= jm]BbZ~T˘TJm VTO xhnp ږ& w1ǁeƓ cV eK<(sebjc R1d 1ϙ=t,}NkoX/ȸeqyW$>NC;B.[* ܕAޭּ1kC0E;A$Ё >o8p 0٧YI/of(p37on Ge> 1N={-eЮX=t풌NleL}ѦM>/,  5!f">;vV1o]M3ko-1My,3pA3V0C&z'⿅%gVF1B9g XĿ`h悪̖"ZuBXe"<|)k 3v9MKNLjg܁^=`{lcϠP80 #[nbp@ 4@TpAtA#pB +B 3pC;oƂbX0!TF?sq}HR1 ܫI!"I4J&+2G,JдLL4J%8 @Ne,jAhRh̄j=1*gB]."G zьMRڜP JS7D|F2l .YsuW^{W`bAVHVΌY% ZɤHb.lvbň\2acV_y&a5b4B@Z`y&cxL"OFCF2 GM&xmI ֠SF@ rq9bq69Hz>Dj&T'i'L@d|Z"Y*b8SI8ъZ@ Rp`U`zra[-J(8aU{b*|0/>zo5n0M~5X~dNYgy:ԉh^lrr]!2ʎ:Tr@p&Nj~z꫷z~{{|@pG -~q?*x=%r.!GQ 6 9J!WӠ#11tao y}cl=x .rPO\]#׀! [zS (F6pM|47]{l; hRW:BNdjypv|||- ن@HA }5viL*nqsCO|l|G_A}샄 !,yR PhAZ 4 0 pQE#^XѢzT #!8  ͛8niH!g 9qla@!,yR L40AY @hfp\h V,@VA  j  `B8*xٰ`5qɳϞ)! ,wQ Sh0A\E‚8p`aB,N0ł$!0`b.\(`C3o!>E!,pH*\ȰÇ#JHŋ3jȱǏ C)1ɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴSJJիXjʵׯ`[0ٳhӪ]˶۷p$K7ܻx˷߿ nZÈ+^̸ǐ#KDiH&L6PF$TVi啘ӐRv`%di晓iyҐ@ zl bya|_@( z&z$6שlV $ly`@`0 jj*무,X|PGuȠhgxn(zB*V{|ajlV h< ?ul0(pnkJ $1C$сBy uaz1V!o`c$ czA`q|G-a,4@ DmHCL7PG-TWmXS\wZ`-dWYhk{-p-wn6x|ߵ not7nV9._9ggwuݡnB>ꬷꟹ.r9olgA94{l"~rGh-=z:^,ҖTF"IrC\ L_rB<5U:.2 ,Ns AEE>1QU$MdQ XgyV$%!(lR2+1OJW#v5ztYūdtהvo*ebA Ā!,rO h@AL8ptD 2 $5EQcIe!ЬP DiBf0@)=$?GҠ΋Xb ! ,H0h@*\ȰÇ#> ċ3jܸ18IdC \ɲDI&̘5syS@Bi УB(] EJU'S0WWflɫf ʫ&d+2,x37b}?\*`! ,5H*\ȰÇ#JHŋ3jȱǏ CIɓ(SZjbPI͛8sɳϟ@ J`"2c]ʴӧPJJՠ,]&ʵׯ`ÊKЗ-]˶۷pʝ˱@M˷߿ ḧ́KMz+^̸ǐ#KL˘3k̹ϠCMӨS^ͺ5bϞirM۸"5, h"ȓ+_;gKN:g4e:\@ϾA=P B( AWAR&V 0h f2-($7!`RKLP6%hcu'.<&80I"b%L6PF)TViXf\v`)&eb ClI)tix|K &h2B&y㤔 72`&R騤v日ꪂ꫰VjVɄ뮼 ,4s@L&; V[ `,kK$ nK.6Íko4#L=$p,l' 7ñn'Sf4@$D .W0kf.(g,P1d@@-Dmb0 JTWmK-\uHRrb(]xc.O\.-tmx-t`G)6e38څKmc+M+֐GT.ޘgw9M7 u4NXb.ÝnS.r@./|܉oWIxˇ CWo'_|M"=NoFmz߷%O> ^ J1$I<#81M  Ax.SJ`>h6F$Jͅ|HDFzB"#2~D5:]rA,ֵ1Lm:ٱTɼKN1"rKS0K xF4Qa+v%YRo d61"'r.h.&81z .(SIRmrN y=tr" Ih"X'`Es:b&π'F׼HI@Jb2\Py3nބfșGQ; 00Q!t|[N>u|TP_SԹ6ɭ^)76.4nUB4Z(O #O 2:z5ڥi ZYVCVf*9kO7ks[-Z,Hi Cܗ0IKݍ˰YV}E02 *]|Kͯ ЯEBI!@1'8pQCh^nG +H,b' ű! H8αw@p\XHƏ #'I *GNs&S``>4 hhN6pL:xγ>πMBЈNF;ѐ'MJ[Ҙδ7N{ӠGMRԨNWVհgMZָεw^MbNf;ЎMj[ζn{MrNvMzη~NO;'N[ϸ7{ GN(OWq@' USm.s-zk79v~|Vy΋Nu@o .)\zUrΪhOpNxϻOO;񐏼'O[ϼ7{GOқOWֻgOϽI+ l0 :Ё9Fp@&)* S%0 `%?&Xh@19 /@|t 1(*PCpG-1|[}=JY`g\ZEP'Sip 8-=0U0W4;p00n@`%,@DH1JI~228H="}^`b8dXfxhjl؆npr8tXvxxz|؇~8Xx؈8Xx؉8Xx؊8Xx*pu  N M 8I;p9U1 7 N` ;1 JBN 40IN & p90=0 6gI ON0 < H @ O]x99(s[Џ=;P u6;2pcx96< 8s(X NPyrp ΐ `  u [Ű  57 ZB5$p-eG[إ ] p 1Z p g4P8?'2/U&q1 ]9^I Π "  Q5AG ` E  @ @"  UcK`~D@ 0 \4}F 1Ơ P P /B pp &` 0) 1A Š@5E0C$P9Z0$pR`"sq] `1 # ل0 阴 I54@28`DP8@p QGr !TZVjw rI2! \K¥‰ iіo n9hz|Z` >0]4~GT-d;[p;2hB q r:w~X2C@@~Uo?0F91 @Q@&@m@ I*͚#%J`FoZ`'x̂ m@|mP˺  ɞ)۞ѯj6%;10@`5o#Z=:)C! dj QC5ױ)а8%6-4g8E JD8PZ[_0K L[A2Dj"椏%HKPCK6WvWzBuF|3E+sv;2Чf0] @MG%=ʵ+RjRЦn  zʧ~*K%uz{%ۧZ'dZ"#C0p/x%8pWsZQ KʩDeQ H0"p%Z"Z"?X9! L:=k7@ 7Y@L ;%Vp0!J׷IA%:E0=P>pPZrjY*<~1# ZzuK2 G,S P`}QF bI]@R[P*$O̰ȁYkZ1aę9~e:vߺ ;00,`%57-\`[\۲)3q4cQ[(^P<Q< XA%=¿ Cz>E;I#0D16pUL\C,`+d[QQFr[A`7NP([qXB 諾LAȮb,\4@L%3_ }jz8ЦK̎M2f7k*R ;|!``q9u AP)ۺп+2`{ʺL H|;]3M$3JZQ҂=qkf /2$!7([ [Q[X5M$ 8ᅫ X8 8,*Ax{l" !CⶱI"?s2΁`W|90_ &0D=].9ЈsAHP`t#,ibm< > |t @R2,eRS\3>#B#@ @z%i68`#aMkn `7it#M@ o3$q@I] 7%'LldI RRD${uE5q GJTRde+]JXҊbأ~Iᒖ. _yNe1yLd&Sdf3V]R¥ʦ(AZ!{8@_1h19E@%7%ˀC,ZPpj/gVf7!M TɁn/tC 4-ml~PAG?:m/*x[ו@~P|khSZA. @Fr(& 7ȁ r0WȂohխ扝79>0pk$Ёi؂F0% S⼄F DVE%;@P-xjnG%F+ 0 KAva@ ZhI@RFW@"ȀW69/T"b*]>L!#u'㥠]c!AA L#йt lU DЪiOjv0`1Ȑ8b4ܗx  ^b6)0c$ȀC!'YKfrd( r|e,gY[r'd/1 b:1_FM3)#.h694R  M0?Z/H~ 6  { Pә #z@amqP"--@bUĦ5Me,AMj] RlaWHg+}ht@}m A8 8@!܀Y P<9 0r73ȶ5HMo5Ap7`}yB]滋0n !8 N8A~/I~D&&@o JFn MEHҽDP"=`@Ԫ7GzAXDd @i ,S 6j;)68yۻ\ /UV04[MשkF(- (Eّ HT}wzsve^=I1&#!k 0bK(a@UhX8b ik 5|@i0E9 lpyh8ԥ'S}U(A4)r @@,+@L@\@l@|@?d x@3c:j CB3ا~'V p`43'*7$ @fkG!,ȵaYSK + 0<>(x#+* W4LB*R_9I!(,H6,$B0,!\D#ڂ.!y @97ߚ 7 -02 ( O4}뛂ض#Gj!x_d/*D@@EUidĽ8@F$-$H A @VS E(H ` vT$:[x A! -pj8 F  / 3:798z;<`ȁ9ǵ肃yED,A+Cx#!(h.[H(3?"_ꛑ탾C89% C۾b`a1;00'!1)6y80:ԓ?J ̾ZM,M<X2A%d˯fMW`Ʃظ#{D~[י P2}t]TW,&GXAѐG LW.T؝"@GIWXP23т!XO`G#H}>I#!!%1T½(a ZZZZZY#|_1V@'u2d=Y z[qAeg}@vYBZVpOW1(*:ZUv( FȑWY|YlYW>5uHĘ QbՃe8H|3{ߪ  Q0]Z= ! Υ!]Q 0ٚ 5#Y52?4 ֤_bZ}0#sFL_fh. !,9r*\ȰÇ#.8ŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛rϟ@ JѣH&ħPJJիXjʵׯ`ÊKٳhӪuڷpr`4ݻx˷߿ CTǐ#KL˘8`u=MӨS~j_˞M۸sknl Nq{УK79ͯkνֿG.g>!˟O0oϿ?}߀hs' 6%߂Vh%a{f Նu((A$g0(-8樣z5w@)dt=H&mEwPF)gMXf`U~w`)fZ]zh&Vevwp)Bmrxfݩ矀Jɧv~j@z]6ꨊR裔VaMj馜tv*7_yFꪰJ]н*뭸GsL ]kv:6Y-:qV}]k\܆+[Vĝ^pk+\n)w*l0X 0p 7,;[ngq$2n#'ߖ0ڲm/ls3V<#3m;,?HYlG'tKTjSWW`+uj_mvcVlik-oxXwiww{߄Ch8*H+Gn9ԓsX[yw.:ן訛px{׺gnugVC;f.q_We' RI!-Nꐔ4f,mK_2d4-MӜ~l O3Ttn,\T2*-ij,JT S Ŭ VDZ&ƊV&Klmkj&xͫ^׾ `Kv&:Qb:<@@! ,E & bАrm2+@$ DV$!,F 1 dihl2Ь2JT@r 60**! ,O  0j J 0}ǥXB9V A7G1W! ,e:..ςԫ.SNZ?m*\ȰÇ#JHŋo X ,]yYDf\ɲ˗0c|W͛8sɳϟ@ JѢ׎*WpSa5JJիXj*5)WMIٳhӪ-DUIpʝKHubu(߾>LÈEEǐ#ċ8cNe4jz)k_t۸sͻߎoe Ng{NjoN|ߩQNU3=ߠ;={gw;<{ys;EoǑ:WNm%v 6r >E!+Q3]v "fG!T#2⁧A`EH#q28S @)$倷~ASNmD@=i\~Ai__<P4A-Tgy^:VT숲U9% BheDi畩eB9GgU%hl-kͰyvhp`hK쫅>+W".gZN+Ђ,24s* !*J4jqZڤ ,$/d; FQi%l(BUŜmg4-DmH'L7PG-TWmXg\w`-dmhlp-tmx|߀. MϐG.Wn (;b?@@B< Kn{/@*0 /|-n 1w!,e:..΂ҫ֏۬ H*\Ȱc"rċ>T|KF)zHɓ(S\ ˗0cʌo͛8sɳϟ@ *&ѣTFJJիX6ufҮYKٳguȵpʝc+XtƤ%߾ L;WŐ#Kر7~2,QbnN5Ө-95ѮU۸sm*vۧὍM8ؿ|lZGNc-=z<.U s{ڜ+?ߟr/)? |H@ǟZ}g QV`'Vha/}r hELe]k'41T= ZXg\w`-dmhlp-tmx|߀.n'7G.WngA GhBHm騧Rq  3c'2p@D?L0$0G %@B9!ܗb C wo! , e:..͚ҩՅ.Ө H*\ȰxB谣Ǐ CId0(S\ɲ%p.cʜI͛8sꌩqJ>ѣ"]ʴӧPuJiԡXjʵׯTÊe +WcӪ] ,ZT=%ůx˷]d iTZϚSGFo3S<|X/j :乧V̺װc[niq^ouɦb;?^μڙ8˞:ţGKnQW>s8o)VO3 G;9mmO:'>G_y7`U*^y5FQLgA[f^!ȝ!Gt RpmrHQp714*xbJ(g`xC*LIL6%pt'cq 4Cwߐa`[צKh5țyPg]PB~|ƒ%mj%>_)ӗ'AӜkczheX<`>ꪬN^Z,y9o7>T/,4) ^fd \ӎk/ WL_ l`vXɦHp«,dB.zt"H2тbT">mpd 3\aGы,B-}L$8E:U9ADrQ{$ɗD<В%)iH<) T6pl\d[)L&x!w Glĕ8HWVhL0"{lYgvy%0M^z,%&2T$a@ZzĤ;EvzZLӌ%7_nJH?N pT"PhB#xы2chY͒k4! :=ϫ>cjR3˔MrSҴ &|L] [8_]Ҕ.REk5:VB>jkưN ,+> XUkG:YՀ{fCKO."fCJXfScPJiMYە$U5Pq[٢5̩+JW1kT"+\Ղv#;PؚWJkcB!>~w!w=.K7J@fΧ2SX Ξ6(¯{+J/g[N/Gkzޗ & V2ҥ`u2Av~ߍlZs8+dυjΒ[fWexB:6`rv|Q\"۔Tr ۞lp~ 3Z,Y2F=gb#F;ѐBD Kg4?ㅈq"a :Ν8!BZָεwkIۨ@a -6lMl(CFmLc Ӏ@B@moHtMrNvMzη~NO;'N[ϸ7{ GN(OW0gN8Ϲw@ЇNHOҗ;PԧN[XϺַ{`NhOpNxϻOOpb6^I7Ay"q_e)N=bɾ񮟂POO;ЏO[Ͼ{OOOϿp;1p)`/`O#Q/H<1@ 1"p5B%g[p F 6`:E:P>p&X#(*8B`EC6P ]4r4cDPPC=@7^P<XH#Ŧ& ]>@C A`7jq#3_p؈8q x耐#Da@@͕8m1-x#P8Њ Ph#!_V4ҁvʸ،8Xxؘڸ؍8Xx蘎긎؎8Xx؏9Yy ِ9Yyّg@&PaN & Cw8{,Y 0 NB9Y &@5 WqN   &O29tA h)np& 8_ P`s8@fIg̐ &P 8ˀ5 +&pQJC0tˀ Pc @+82`xPs$t & =f2ƈJsI P ` e#+0^p'Pa'@t/ &` yY +?aI07rz&f,p1R A(;1!Q378zp- APС`80wP@@%Sla M1BJ]0o2JQ1 KA!Ї !?(I`DY:8`92`> SZS8`/S8`lvZY#84@V8Ode@W0ҳOqC0Z=w AA=/p`=p;0 `*&@7G2u1=x1E1ʪ0 y8jaE0WA@8jq"4h DL E JC`"8݊o Wm "P6w`7# pʚ\Щk4pY`0vZEPiСxf8,,2K NaE0Cԫ*#=`'p*1+, 3aAt7 FY_9`0,P= <0>}{IPBM 00y蹠;G`P; &wcAT QI@yiI ء3!>vxJ E1jKШtO Od| 6p !W"p0ɺPVu9y L)PVGP8y@50dZ@J! 3ɘq&=Z@ZA+ڢ/Z䂏[{BlF)Q@`G1YF1x4@g cZgjʦn GĆ#C`dPZr:A8 :\1;?/c[JP0 Zx 9 )5kh@^kZ:P l Ə'4VCڭdAp  !7[`dƌBJ \ĕx/`=1/@>> K Q0Aϓ/q܄F;AA8. Q 5KAB`8 M`4]h=0U0;AO!='=lhkkn A3$Vf#8=;@Rf\[DA@`PPG@ )0hHjy.7 Q-Gķ@8TR+N ;D!0R0Z8p=6܀LZ=ǭ@HK}}!v:U|@-P`70P 5y*?0k8nr`rH"H$4Ŕsȏ j2hhɘ@ @Q@&@mL@ 3a2eG0HRN巌:ȃ@:έDmF-Dm^S\F0 L$3m ZpTN `On>E NVAvn ^! z!MJmG0lz䆎芾 "-$P91~Ik؆o +{ۭlAn{ _ygAOPT"e۱\|@8_C׼ T@ iZ$vY O1A>t߇]@\q kfD=A ʔ=tH%A=qEWT47o{ ;/!F'S=No8Q/'?-& f0 k&AC* D!5 ==AC$]@LO@)y=}_DKUW?@܇{o'a/A8x.O ~3Sz㙚A^  cTYPdh;JL@ AWN冣ˤ*cjAj3/0mjo@@@߿>y8/{nrXA9 j! (`D%NE5nG!EX"#"$@L &eΤY##'^a -%J 1QSp"<8 "WaŎ%[Yiծe  2WL#Tjč1-N0G޶,2"XEr`c|,,;R¢@^#OHԩ{ao/F aO8N8YZxCyءʋjw*\dŏ']hza#G@8p`oy٢a?>"kn t#)O:8= ~CD Ab@𪮻@n8dD.(BA$TrI&r`rJ*J,rK.K0sL2˜ɉ!LSGЄj | N$JNT"=$LB 5PDUtQFuQH#tRJ+8 )Ҏ<"G8%EL.Rն!@!)" :!WVZ;vʷش83t#3@`Yi#VYTURӍBhTv],WSyǢw,^ H˸*1@%r0$lHȀ;$H 8M" % n`#:1K>9e&7fxS"|yh6Z+`cz !@8a!@0" +h 8c"$n@ b|B>rm{o>愈6\8lo\>#\4M.sGgW+@""-nUD("lcq¡@"*&l$x@~0c? m)Z@ a]}۟B-0R,.OD+ 9؆3Tajp{Bx01Ѝ & ^p[b4]Q ƗGwL) E7QCD~8* yaD A ) h`2D y$E ہx( 6X W8cP9  /Q A4CQ-G"@{vX.w8@x$ d'=IPR  =N3ejJ K+IyK\Re/}K`&6$-SCD<fn!X*D&"LX:p+EGj Mx)Rf?b3:B@Zu  i7Tq4]8S?H ضur'F`D!yQB tr0UЁqCHKz XE[xSF"!pgwd1A X!\1ph|TЃ A "(@PMAphC0 rl+.Rڃ\ekA-^tm%@ H3Oi@EHC5*І2J7#B(+)NtWT jeylu(h!K] & zwTaɀ~ìc|:&+퉿u|K! $l g,|Mzԧ^D]z^}Cy^73y{_'~z'_g~ӧ_}g_~}_'U Dz2 , Z }N+C[Fs4Hc6{ cCx 6X 0*5(*Pq`[cd[f$Ypđz+tc0QS XAp7i 2ATSP,,&Xor9溰QCxAZbBp‰hAZЂ08 "XAt …AP Q/`!H<+;D DS X<X0*P1{ 3S<2,d\FflFg|FhFiFjFk3_ 8iƼ&ިg#vz'x&'_lkNj8p6GԀY訏5!*0˩a0G{F2, !*#Ȭ ǮP+y d/J&w$<IJBj4 C0-@kJc0. XEJ Ği$O p/ `3#16bJJF"ÈEAK; ?˨F8!#"[!#S̼LLLL MM,M$bGwdseɖmє.X,+tÁ4Gܫ?{ 9#9߁D3=4$ :%CM>T8ʋ$ x/N 8ϳkR{QxL1&8@ Ê0 /3 \_ Fɔ!,NQ DŽ޼ H0 $(ȰÇ@Aċ3j*Ǐ Ch!ɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯKY|˶۷puk}ËU~uN>Swo/_%~g_ 6 s*߃ 6_a-9FYWanCyfXwsr㎹e#e蚐hi{Hd)P(b}`)]GڊSY ~`p 4ߛiBXveqZ"Ʀ)硂((]Ήnq'aJ餴姠bcz֒5*#hHjv ƪ">"r]K"|ڪZ:: B&'me:d];"6)tJ.UjK"I'Yկؚ67Jo:h~eVrZ%Řa|r7WcK¯ "k/3 ̥a!ӥ o&KjFs#qά lkfYc{H]cpڭڵ' }vέ+#ǵZNnJm'nlb-hmyl9;栒lR09lO'J%Ϛ;)}NϿyПqОg,xS.?M&!+lm6ϭVx(Fd* p@r΀'H Z̠7z GH(L W0 gH8̡w@ Ib/h~&:P8@,WXŧ``P &vKaA0p4J &0`AH bB%!,O $ $94c9J:J>LjM@@! Ԯ! ,OP lj H(PÇ#~# `ċ3j+ CI$#&S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵkC`«ٳhӪ]VRط`yA,\.m˷/ѻaҵ l^~+^̸c|{8r\AdNϠC.etṦS^ͺװc˞ 2{GFv- Nxos^μ9%B>]:سk<3eK6y֋uξ=]|'`v7 n5́u `VW!vBxᆷȡ^ zވ$2ơwUvއő06ً1Rۊըe4f=j%idM)Id UrL];frVnڏW_եobK".[NepRHa &j S*&lj9!QZݑf)! Қ"C WrHf6#Y7w:^Rvk5$⭯kj`z%I"l`J#ت8`&A6pr7njj]VR9Y/^Eyu#* ltz9b)`&lm }6pd]qZ.ԡLo%1"Fhj\i1819l'o!<å'qT?\tj*1aFqY}Lk+m@-*57""]X!BjkX8xQw!vnm "8a5➨-יhN7-{0ix;>X9 q JE lbZg@O"B  Ar`EZR)>(  %Q!, e:..͏Ьث.܂ ė.Z,A[:#JHŋ3bLȱǎ>Iɓ(S{^Tcʜ ͂!oɳN7sIѣH* ೩ӧJMuիXFsJWQ~E'vgY]˶۷Kmu}о%LxyTq#gJrKʖ3by*Ν ei^ͺUZo]in\}͑8U-Xdx~]ҊzF ]&C3%r2 3P_IBlXg5/{`4uXZpev}껪܌cHdw{먑DwZ)vp'ju݈o- wh9x_2xfC7 nmꬷ_\mx3/ouߗ7_gw/o觯/o HL:'H Z̠7X " 7 b) V0  @p+m oq"A!:񉤸 ,a,EMZ 0!@@0 6J#hG8D! ,e:..ˎΩҩن֪>rp [ȰÇ#JHE[3j8Ǐ CIr$]\ɲF(KI͛5gTϟ@ JΣHS L4ΦPJet՜Oׯ`ÊKIY>×Uȴn~+Luk{/IK%`l v\o'{LϠC+J4J6m Y;K[Yrkڶ޺GJȓ+TsW'Y%1ɧULfk Yk`:3oov߈<KK//,ρDP6I7Uwhl}f*^6{`fgV|nͧQ}*(Y/~7r8,5* bpV R Nm$nOHpdUiRIH9HfdFɈ+6)uPoF3V&)d$d9D&6?月)S}Ffߜ'5b{%*M.zbΦ zZb)!"14jS|hFRϰlx\8JmH>uԈi⩩Ji;fM(!^kj"&+jK쿥ˤd̬#&oՖF3m[^R ,2-j.moHviˉlhjVMrfA+K'M4fBct-H3ߔ%!rT8!rWδ 3T*Fg#pGrNNC+MkWz뫶Њ NxnW,&!҄ᄥa~)]0#eo]2Mup7Phj!R~Უ⯣>oTH;JpHY.iN#cL.@-W?gwm{ɯwFַ/;~t .![ߒ?L:'H Z̠7z GH(L W0 gH8̡w@ H"H@hH*ZX̢)#(! ?@0$xphIA GM Ar`>򐒀T$"!, e:ɣ.Іߴ̫҅.Asq *\ȰÇ#J'ŋ.jȱǏ e8ē(S<2dɖ0cʜiFWɳϟ@ƣI(FLʴSKJt!vl%ׯ`Ê jTf|PmGn[3f} W^c. C,/cUب޲-FϠC'LҨŚ:$@+멱n-6nM^ %|ˑ:'eQ\.njͪiQ}R@eUdxe׏*wO`3v7Fc~R|yšSɵ0FD4RU=\Q?ȊC68p $!y@Y! WZJBryn䶣BR*aҤHlN&rc[ZۙEv)'U~]㠄j`^Ub5g!HhX\=6UfvXx<"!f&(`^A"T\ab#6Jdح.fgQגsZ#lKY*NjΈҰB+H;' 7< G\^¹k4Hn [8n[3H\zD+GȎ%qVeJlK\ٻmvI#)Y$Ti;,_Y'_ʬtfn:lhH>ٸnU ].kW7Lw%a'^%LWp)U`صR ޑ*ޠ:)zޱMߋ{uWޮ7!}0yR.c~Sl7~.:m//텴T 5=J H {~!%H]ā̠7z GH(L W0 gH8̡w@ H"HL&:PH*ZX̢t@2q pc)>nDA*p7񐈌!@A IJ&7PB@ e! ,e:pH,Ȥrl:ШtJZجvzxL.un|N~YiiECrBBj.lak N!\Ç#J 43H#C:)r!;bHҜ;0LriCr;OO.c*]ʴӧcB(3ZE +ժ_ IWi۷pm3m4=Im*ܑʓTu (Ck>sE*M2:"u:peLCHt`q0]c_ik'Лic;.>θ[E g5ZIʒQ"ʛt:S4WRd[J)6_NJXdW&jZD5N(무ZxWǤ|A.` Bˁfωxx}h!.NRN5߲|.B!&Skg6Rݑ@o ߀J|~:$R&okgoq"BFƘQIhB)1:*" @!S㥗k4a;BZxVYL?S27\cj#r{옗ڟkK z4.D^}f%`;?lCV4,5JX?EF͵U]ܒ*7gFƨ*nUq.gUZ hÛF.o/)4oG/*&dB{XVJ>HgAL˜k%"G)\;hxy PPC Q~.Wph gH"hO(rWAh)>SOe*8IX9*hFWXت(('F)ZV&|饣 Nv*R!.{IT+[46TqՁ3Z!#&(*lJ*Wcњ+s m~Vz& +2. u຅H:^jxN69HIBE`m3Tљ_Jf(,h:b6.VҼe<J3K1&Gې3)dϰ:l &Oc2 rDϸb:L$8{B4% hsY͆z GHd |W׭28̡w@ H"HL&:PH*ZX̢.z` H2hL6pH:=L8tGxA@<G>WAIJB%x`MT`~pBK@A4I#FP Z27A`)P &[Ӕ %,0IMD! ,e:pH,Ȥrl:ШtJZجvzxL.n|N~liiCyBOjC..h.׶֍ػ loG p|#JHŋc\6Gi8z|n&@7`:Cƛ[3MIit ʡDUjK3PJJEbmZív5Wk4^{hݻx]iێ{ lt+'FONEr%lcŗ1a͘1pkq6t?ר~{q SX)uB,ir53ݔfqC}nRjOͼË__Akw+]!@?w:]8w! AWYbe_eѕ} )wwK~o]h!~fOjz2'4(MUsZ!]QHvyBB\w:fА6n>-K!c6-'aERsRVI&$KÝHύs;ZwWfHNY%8:I5B.RA LEz$I&oRjfLwvZ茗I 9&I΁Ąq*XoJF *yZ(ck,b(A(͂5!(`ײ%Ɖ}!X&b+!AvnX݂.NQaՔ4ۮihU`j1+u61jh-*L18!n+4 EH>cp>ݪӅDڛJ S:/QFC@LDpJE*A?l[Nwg&f{ô6ZD*7{&vLLsq i׳?+cCS[;ײ5APs@rQ]y]gKd-juz5}GVD7{=ΨܠknG/='(_jأbwm"W(觯~g o_ HL:'H Z̠7z GH(L W0 gH8̡wC"$_HD.*X``PHʰ L`(`hb!, 5H*\ȰÇ#JHŋ3jȱǏ CIɓ(SFҚʗ0cʜI͛8sɳϟ=УH*]ʴӧPJZЃl.jʵׯ`Ê˔(kȪ]˶۷pM C˷߿ Vy+^̸ǐ#KL˘3k̹ϠCMӨS^: {&AS۸s޽ M=>+Y1dm'NuD>{ËXbņ NttϿ(h& 6PK28c2\vX "(i""؂Ɋ4hce(P\bˍ@)d`(L2ƴx6C6k`&&H2B\v`)dihl p, Kx)&$ I %$& %Q\@YV dvL)$@@уbBp L3) +k&6tӃVK@.X24:4.+＀I5o_Dc¾,l' 7|oYW+Or q $D.D}`Vv}0Q8,OB:DlUH'L74.`WOTBgG?`?=EckmBlp-tmx|-zN N.-Eu}WngIKyfy~虓^镯eSW]#T37\#[I&lfzk~Dϴ'5w`'2mq1W$KP"#ӽ "x%*!hkю?h"[ ޵~0Z G֐!D{^f{`NMp@ fc!=4% ]afAp~1x4 E8G&aDAe95A CC n%Kpoc 9L(Э_.<( hhaP<1zG 8p6.\\cR ƶOϿ8Xx ؀8Xx؁ "8$X&x(*,؂.0284X6x8:<؃>@B8DXFxHJL؄NPR8TXVxXZ\؅^`b8dXfxhjl؆npr8tXvxxz|؇~8Xx؈8Xx؉8Xx؊8\`US5xUCJQ@B:DZFzHJLڤNP  q a@1 å`W0dz4c N0k@UCA Np7 ި 90r꧈Mj@ HC ߶ ɀF4*rs@?` Hnfo° /  Itr'J @4vɐ  ` D! _ P u7ة@fof P%zJ/;0R@p :p ` jf Ű .?Z!P C2`P _DQ  P2 *Zc2;}'%bX)4P*4-22Pfva8I4NN:ɓ>I@)7<{#p5uC;ٓ#6GwiW@D d;70pa#ٛAFY?Y MaGKٔOS 7n#pxHLSt8F9;Pnp{ 2PMDd`;=7LaȹXi-˕^b dioC#@y]e`'F@oF拾=/@`4E[mP5Ӊm2<M)tixmSk#`\y7 r9p8;$pR`=@ɝC@{4X˻ <)ᗀy3BlO9yDi:P,`wwSĂ 3,gb0R0` a<> ;@Mv{Z}[_0I ў#WD`.QQ 6g 7Lt&^"L-_ɢ,0PIy/C% {۽ߛ[k7+=g/02 fvn'q 94֪v/㳌2ͽPd 6hvDk5] ̡ mshJp zoChP`D IP(^>@Q1/%N4 d xawHDC0sH+li7+CTμ=p;0 `[Nywmι/C XDS ) @aSyG4κQMAcӗy/D&&7 fQD 5`jk֬}<Mmۘ^4m4GYmzH[ ˃Xuh%BC`G|Zv].ٓ}?P}Fķ.,o;u M^"IPhr4{D7gG`ĮU_SE#KCucDf&\@ۘ6E}P܀40yhl=>A!W/ov6ח}{}P)'aD?O7J/4/T_u3z44HI#IC]jNfg>JRI4 O4pʬ4S(PVPC6MO4IO: umNq molC3l3J4|LTϬY';kg1>3x &pYa7Og( J?Ca_J&2p&O [ $X=@H1$JZ1 2"`QX7 /l 8-+iK.Xܺ714zR7Rl`p" QR : 2R&/J 4|84b vc x0eR^[ײ65ʑ/t\+v< @c+ObtgI'8NuN`I B4$trfڠSPMh%w[Nǘ$Cp7𠅤qAPNvQ3SW-!V2 롞FV|'>%#2x .qfU*`? HHFBVy|@erɡ g8\i+l60l8F# @CԇU*W"_NExMNWoX@QKp Ukbrc[+ boC%r@qO Mzpu7p"я_hbД'!9(]UҝRX]GO_ @XUT@@0 @9I0  ?k3|*#@9@ Ld@IA`*0Ep80*'!Ll1H& ۻ,D҂;)TBPTH@UUƈ6t=HY<,{xRC?|!/`@C8Cb=, >{?>.%8N )CP"?>C{0DYEZE[E\E]E^E_E`, @ $}zx99k@1+:b)jF@K"h A4(*2@! 5SnAAS9HSǡA*rDG%lCH(Dx"p-Bm;€ Vѓx 躓KHp cr.$7AK׈;(;66-D|`Cp;<9 0AB<H/ 0x "m=) DH2 lĭ2c)KO E@+J`hHL36 ML\ dq5ES5YM͟EM NN,N_|RZїSZ{X\`^DE4L=r#!xǞ)U8ZJ'j2aC bXeߍ0xmƠk$!hxX2_Ya%r\vtH |sȘ2 Q`qab*s–iPgc]mf[FmfjBO>Nb ȑ) izu2ZR,Zg!siꊫUYa ^kZ^7d%NŘAڗ-N2aᶘfe-;JDe"@Y~$ T덹t`?)B\toGo5;q$ъȮ(i VoK$o ܼ xefN&l# Y?K=e`MTvqflʔZQQHr%!L'׮BY&C:⫚FݢZf=E\i])ф\[/"J꟫W~"&?E^l.*9Gz |O'klImgH/ $T"U5Ӈ:1 5[!}~}Fۉ#T2( |JT 0b֬ &am`RF%`$2\Z#L2Ej:&H.IYZP@)1 Էm/߶s1LKDZz@H-pS+bY"Vao4ș$2. b|G:gx=w}&B WL"ݝQz$'IJbo¤&7NzÓJd6RxrL*WV$eE,IZ̥.w^ 0IbL2f:Ќ4IjZ̦6nz 8IrL:vnε?{{pߕ x(Rtݫ-%Y;7zP4sG2j+!zz3Y gHMDpB>@K IBL"F:򑐌$'IJZ$pP;t 5L*WV򕰌e5 8B~` 0"C0 rQʀD4FЂN#@ 5INR0B8EȁIz Ѵ@J@!,P %`d(c *CҊ4I`)U ! ,P %`C$9SY pl[@ I!,P & bАrm2+@$ DV$!,Q + #CCsJuq-@2 Ph60+@!,R - di(ɤCkŠ3+SҸF A`HH@1-!!,5H*\ȰÇ#JHŋ3jȱǏ CIɓ(QVV @l<$Cʛ8sɳϟ@ JѣMli-֖"JիXjʵW2L_Ӫ]˶۷p*lXjs߿ LaJIjQKL˘3f&jMӨS^ͺװc˞M۸sͻ N={3gÜ Kسk Z4)N}ӫH9xXXO֋"[ 3(0H00$R F( 3b|P@X ($h(,0(4h#n(c& 2wD9\081FF)唲b%Ȭb %PR`^f-P hIaqI L"(C %Lb2]up^)iP 2 袌6裐F*餔Vj饘f馜vb3"j3xj꩎B$= f3rY$ +B͐E &k *k-(BYPPz㖫 +ҫ٫+eK,40J4l .C<t܀( \f@C Ag8<@-DmH'L7PG-TW]u,%4&"&*-vl]hlp-tm7a%`O.wNn D= A~Pނpw9NJ.~gnD.&b鴧z[׮~:O[-o'.t/]M:g/dk4!uHGA^=a)@5/+-H!AaĘ$Iam2)K@ Yf,r5v!*$.i3m~pbxpI&M"@7M)CmƋo78Or#m#YxHYrd*Mʜ~\dJ]-"0 1MGJJ[,).7BFCPRTHHŦ.7cPɴ(iQ9*zrh.=)%;ʴx8EN=HAlRXT,5J=*[ Xu Q!9ٝsYy1 Vp1Īcj s3L}Q]n*-*BZOpi\:W<>kYJf%HoO6W}&Y[3m>KsL+}y}Lyy̹Y!.(1)APv75Ȅ8Y2o`؃g(.-_zٯg1ұ{pK,|)f))| VH9k²*-V#f0z"/Rz+y!1_-.܋9G0^c*<^+}CQg&Yҭj[ҧN4<3ˡd7CMP޶ԨNFmZp>+0gM6}ֵe`ld DƵt ,NLTMY dG@0aU`-~QipNv7vBChA!PCx"o @CJ! ;N[DNq7{ GNrYA i#Fp1l8P7 blaۘF·.nAҷ@ hZ4n4XO dfYNhOpNxϻOO;񐏼'O[ϼ7{GOқOWֻgOϽwOO;ЏO[Ͼ{OOOϿ8Xx ؀8Xx؁ "8$X&xOЂÂ.=-8؂(h*(:ト5<7؃;mj*8 PaNh4TQh7Ä^`b8dXfxhjl؆npr8tXvxxz|؇~8Xx؈8Xx؉8Xx؊H|Z` >@?3)?CX@H0"p3X) p2D6`:@E`6P>p8$C6Pd]P)$P9`@^P<8`Dd?0Ћd6p3 ) $Y&y(*,ْ.0294Y6y8:<ٓ>@B9DYFyHJLٔNPR9TYVyXZ\ٕ^`b9dYfyhjlٖnpr9tYvyxz|ٗ~Z P9p`3I9Q'  O @ БWA  O Йd fC )&p*H O &`C  Ýd!&8 = ЛI蚏yYdqi! f { (9i :p  p ΐA/057c $ p AJa[U@d q ɐA2  _)``Q ֦==J`DPd褚 ˀ Cp@,@͖ P& AI0.pJ ڧ~:~/ Ћf,1 d<`6h:l`4=Z4 P00wP?~Wd!YТØ1Ah@d!?(I`6 &$ T C0a%`#Z`48PZY#GL AZ p@=p;0 ` $p!Aj37@(cp'4VZܸ4P/ 8JG,0%1Ш  5`O 6Ѝj0F)+ZrR+/6 4(= 8v po00,Y= B`6&p?PgZ۱;2`LCPCKtdq`;@/ڎ47pc0\ 'م6pJKvzeE0 kI@k Iʫ@0DP00AK`_000YMˌ= *p266R3*8ʩPp- .\W7@5>#!@`&1H$'ī8JzY{[W@# d;[p;f֡:8r@#;0& 2бGgƳC{:F9;PnPq ;=H!Z@N_0w A4%57P+e H0Mm02-K!M[& ,Lc-a}ִq8x] r `C0 ZK,*A),l6󪩑G` 5}c(Vֈ#vc ɸǼjlɧ:V_K P#x4 ! Ml6͌z+ BpKMc=>p<QH;۳rB4䝍L3=#-UeB<2iKGdqK P\*`J0м<Q}4@L0h}RMQ3u3,7388쿾J Tվ3!]>ck>Ϟ,7дrmj@I/}C +`ݪALE14:9:dAI8k}߲Y4:B5MN<0:3Hp!dI3z3E0}%K|L1mqްѝFd4So3;q"`/4]p8D[Nn3{4}O?]o3O A{LB\$) 6`.X33dG^E6[׃}C`E0C0 T;>)I>32IP3?^|G`4஄=_4.V$ A8A(PCDXE5nG!E$Y2"%qp`ɅK&eΤYMWٳ#-0!H8|cظAU/9b@a)Va8"Plq N,0_2dhb`~fW1'&68A3NgСE&]iԩEkرeϦ]mܹuod^\_s*N?wŏ'_yկg{_8|9eL#оSpAtoBB?1 :PG.ASTqE[tEcqFkF(q:#G<2 c.I G(rJ*J,rK.!2q/,ˌ3̅l.sN:MS<‚$QD6:UtQFuQH#tR3L$3tMNR AՌRTSUuUV[uUXcu/1AI-V[mPV3xH @:-<$Hc'e2@Fglj|8JZs%uW^pHa}0q((" N)D! H"4( ᩁhe8s!b,΍wfa8؂^ֈ-NL8 >:AP09nC8PvA@8Bh'&A*Mun.THp@ Ȣ&ݱ(0"h2@!*hjD z& N[q2v(!R0>b#ya{{0 8cNF&h{!z v ğ=*hV2Z0EdH Dv0daa,XrѠ sKPP,Z@` `r2E!4אP;a}C &IbxD$&QKdbg7'2%*B1t]8 %li  Rǽ`\劢XGݤ`Cɠ>Rh00ILbs$u(x1i x$erJnEpHRհ5R$ݰp`>Ϥ$ 80 ɭ7r4m|-+o&6 䆜 N`n7LY ΘQB&A h`x)#P8X{ڻCya@ބg~<D| & q: !fOX r R|BA*)+ Q"!K@ E)/idUmc%kYzViek[VUG\Ktl%*Fz5U`1]2ATu,@ZX=++,gR¦ *1 vBK#B@p"Al N mlGCW^2&2j- :`Bpa, pa95¾ws 1B M-*xg4RN@XƉ&dk]h h! {8nN:,^yD0@JYɨ#@E ׸A}jp<Z^ s MuF0&~=mYyMN~9$%:8 R*x/P:ܳ o 8X r?2-)CP%"2 [t*ЁD *Bnx p4M3)>2x3@{5(pIL:$PsT"靃JqlƬ6j8^$ Kт聉2HI60H $ IIIIII J8X*8fb[ɱhȡ˖ց& +$! 04gX# 1Q震5Lr8{ [ KDB^IA㘇(ΘNڣ(,(dR܂: gґ pKyDsH"2Hx< PŊ /4@`HL5hHxqj !|Nc,ٛ޼C2"8 {1@;Ђ\3@ 1Ё灞y\20{ȁ9ی@U1q?ȩ9G<(\% 0y R@  R R.^Y6 ܩϐ5Eh6ЋIR( !, e:pH,Ȥrl:ШtJZجvzXr>g@ h|N~ߏffj}qvpPƯȣ̱wʻصChhkfyjkil H*\Ȱ(JHkEl2:[bH4TC=II!/VqK[Q}\#U!7ɳ@xIll;ʴ]̸KLͭ3Yq8LӨUKfk;>dT-l$keDn ag xhУKN]m0SuX_>+?VO}v|)K5 v2wISHs6vW!şf:J+ҁs$ SE},$Yv q;iceh]|Ә150$#:ᔔ!EWCȖ(Hdi(G*r2%uQdjC^E VIRh?shM~ -)珟+ JjpjQ꫰* nh=`e#>JԮedǦ'`Fkf*{jfճz(ݾ6_3iZm)f&/,4(,l' 7G,Wlgw ,$l(,0,4l8<@&@VB't8ppBKG-0p`B*L V p-؎Q#@lF"t! ,W * dih:(-²b;l?n/%$`H"N)! ,t[J?  k jf3sN )\͠*T !@X, pXIɒ!,e dihl#tm8-yfHȤj'S:HfJ֤Sv{`7Lbh+3ͦ~|N~Շ  ٽ   ޼!!,; dihlp,tm8T8VLjjM @k $@Pip B! ,0s9l*\ȰÇ#.8ŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛9ȳϟ@ JѣH*]ʴӧPJJիw^ʵׯ`ÊKٳhͪ۷pʝKݻc˷߿ \W/È+^̸㳆KL˘F̹ϠCNyӨS^M4װc˞M۠ڸs; Nȓ+_УK9سkGl}ã.藒OϾßO>v?h 6F(mAHfNv_Y$ؐ&(4(c88ߍ:cy<(IH&gdL6ےNF)kPNi啡U\&a`)bi_drpft՜vSxE 蠄J$h&ߗ6(>*餁FJ饘jivV顢j%$J$#J#"J"!K!& 6k FVkfvކ▫;[ ;|'  7GLWgw.."B F'J7NG-RWVgZw^ bwMvYvjun7 wIMwvtzw9 x͂sᆷx)/xɎ?rwLy_yŚoq7 z Nzpz{o{{nwK||/m7 }NO}_l}~~k淊~~jtӏ?OiPQ< @B1z $ 8ɠ7z GH(W0 gH8̡G<*<H"HL&:PH*ZX̢.z1zuGqdČ;%4ffj/Lq#R|cH@ 1!DJjL#Hf%Fir餢> ʿ2Q,e_NTr/,+_yXj-\e/? so)̶(sOlfZhJ,̓5Yli7pet*98s]i' ϭMU|*\?)iAτЄ:efjC2ItJ.Qh4LQ> ($IO*ri,KӘdXMy+t驕~ ԇuJD-jC**u!LS:iT=Uլ`LjV$RH2Sz$*DrkQ:$BN#ڔ>kL#:2I#Ŋ8rlG![#b4D1;#:0lBA".2?Q"ꓵ*rm=a"“&:q["ݚ$m8;"r 25!Jrn3!"0!n.{!Ғ2+;!ro)!& Z o$ 32!|  rp!\ 1 pA1Qq1aߐ q\א1 <!ϐ1 %ǐq2 )챲 -2 |11\5Oq397౳=3A1Eq4 }I׏Ա0=M4@Q1PUq5`Ywʱp]_5]aG1=e/q6imۼ6qܺ1Нuώݸq7]y޴=}߲71oq8 W⪱0?8@~'1P>q9`栱pߍ9݀Ǎ1ېq:ڠ~ꖱذ^>w1gqWG71'q ?򂱼0@~1P| gOϽwCT@! ,5H*\ȰÇ#JHŋ3jȱǏ CIɓ(QBB5֪U@@ʛ8sɳϟ@ JѣȖMD/kDJիXjʵׯYe6}S*سhӪ]˶۷pj)0˷߿ 2.<ǐ#KLHĽϠCMӨS^ͺװc˞M۸sͻ Nȓ\kУKijg:ν5=`;ӫmb˟OdgMtVK(h& 6F(VhnBMvǙ` %h(0F-h8&P]@)[b1C&L6PF)TViXf r̗4}d2) \@9*ՌRЌ@ pf砄N@3=)K3\P裐*Ù5@f馜v駠*ꨤjꩨ"D5 4@S.Mz jLC~l+.[ЊKVز4[JB!8KLӊi,L«` K5G 0‡Ww|qA#,e%qG'L|2t,s*@Y lCp.(tCTWm5:?\wmt^-;ˇ]WYo t?mf|'70u.ΰ҆'8M/J,uߔWnl6w4A?砋yMs鋏sr~XvMv (Ꝏ\6- A"W 0wJ;b ! 'pd̡㾹P6 2 ;E511~oƝ?G!(D N琸8%ZOs"E}Q11уQWϨʤpi;IGic"iG-҅ڍh/\#&ftw4 <3g $Թ#R.fH qƩplw &SqE|hNc똠ܑ%CjҘʤb9Lr4b؎d3lt)d0'5E< ( OPRCBzBHZ юzG? 'XDP9͏>,$IiRԝ\A&Ҟ@ PJԢHMRԦ:PTCXRT:QPhZ(P!B j[窠 ttͫ^׾ `pl=F7C>1zE :@bj U~6 @cjg @&8,5A pKMr:ЍtKZͮvz xKMz|Kͯ~LN;'L [ΰ7{ GL(NW0gL8αw@L"HN&;PL*[Xβ.{`{1/՗fvj4+uWM(@j3j;W{jL@s|hA+ XhztQ`z4Q Z8WVհQ85[NL~k_?ACusk^_e؞- [OvJlJo(vMzη~NO;'N[ϸ7{ GN(OW0gN8Ϲw@ЇNHOҗ;PԧN[XϺַ{`NhOpNxϻOO;񐏼'O[ϼ7{GOz 0Mzqk۬u+XZK (lL^֭  PX8`/rQV~o.r8 P^"gz(_>@gE,0 ֮kok.C 0 m pwk{wzpAOzH `, ˗ķYO}$ c=B8\ ɐ 0 @ER 0@ r1R 0`(`4QZ 0wP@phn5e E c p w  R!H8?PrQ@%@VXQPX@#@TXp8 @p s  X   X 1 p2D ٸ*,`0,d@:E0'4A戎[ @ŨzP W ( /H$rFX v PE7@㈑ " 4 (p h 8(0#Š/E0C$P9`1U =0U0=Њ=,P=4<Vy[ٕ_YbY &@ @  `=З8I .4P26@!@PJ*p0YK HHi ] cӥ0}@'fH57\pD &$@i©0y9 /0-9?Pt3) s ` ZM) 5]1J*P1ɜ10Z\1YoCPYЊȊ1 dp4W 350b44qPx+BZlMY(2xP ]0鸎Ў 1E0o q"`FZCL YrJC`9 80] c4 z `ajR*=JࢀF0!9%y10ʊGC65,@| [=00*> Z0&QR;AJZP'5Y(cYg1J|4IPi:O00 ;j`G`c!ه2V "ap[\5I%Y=pT1 /@)dd?Z6p4!W? {z0p!kh 3m+V{*ִf5虝92'Cɉq i:@&@zV6 Њ #YAcA *4 4!? ;j>@0)0C8@&PFpZ068P>vTjra)p=p;0 @^h$p!Њ8`!7Y17@)p'P4VPmnC%["VT0kSZ1 55 5`@| 6 j0GУ c,/J6( :=4ۼBZp&p?Pg̻;2`[ ;m';@Z :67c'lg{l5> K"hQX9"P4l[ID 0ɍ'Y4&[PC; 7[#PJ"z}|AW{˜2R}˾LKna3&X+1nj '\@5;#5!lK\her P,]C̆"z(؊l.z4p6 ;[p;cJqK@?gZJ@0 kMVy 9;PnFC*5p*3 @Q@&@mPN4q$K!6'MLIp F@:Mf,?Y8W0HFp/`4Fc]a$P'#b@mmP=Ji"R6@0Њ_;+F0ٕ !po|28zy{>x$K!4<& 5p$02P cClp1ȽD J08й͙"38_C0/[}708 ќ H0m02;]1soэU;TNfnִ0l=SZc4.~k!m c.0;3 ^ `C ]6*O# ߜ&K޷Yr-6МY7O4l4n}|hnҺ YQ/-N<[XH{z5`Bݍ·~~/]C5ssnpқ# 5}R5"nb~2%0n4]a^.՜b4Qa PC@`J ~}ckõnƳZ|[5bMF$97/ÁC̡vm&^\oS/p_150[!m<(^P<aҕcI78uJ1쑩/_Ε6цkFS[Gs1N)5{ɜYEK6!=x^#ApOa5BZXA`7Ph^_79NQ?aLfǖj1 b SU;7_@4~o*⢲85R3FG8\|L//38^O6-*I\49&PJLY̅o$XA .dذ %NXbE'#>y1ŏ8Jdxq$HOʖ.5$M9uO=M܈2@axj:Y J6a U7?6sE2St) b fr&B ?dТ+oB +,m5vA  `AhA  D$-#" D BX.,4@.;r?-8H-sL24L4)`/B B Ĉj8"꼨%R3{. 8AHO@DmM/@@!4B@!nb9K<(:k@ i%x/&_SV(؈fUvY~0zA>) a†(VmgaXẁ9-hpYh=A+] R-5!8y2V\uR٦͸am-VdgE jJecyfkfsygCXd5"錰_3矑gzjjzk͐6vĒV;:@!29bQH&p !ĭC GO,)&Kr}jR"T{ֳ&H@aHp9Т ; &2 x裗f,OH|-luz@jTChuE} "Ov~plC_ 0^!p@u#@J`p/Ȓ`9+aIK\z՗$BPawT)ޢ |+UF ,p=0 aR* VZbR /J2p NOAD,]$(18@=+`j;[0q H]d%-yILfR&IPR$e)MyJTT% 8 oJi,P,-iADppK"RPkf}^y<.r[)=V^3fƫB@U[ &`-k !"] QP p!ϫd4&(! \e0aVP~Pi!PE:12 4 HbЛ\9@ ^pD߱$D}c͎ΓjL)] IiQzI#& D?ZQ ͘ HثtIlk0Xy-uXje-˗) : hЁ1t<4Q 8Ly:1bx@XSJhcTv!5+&hsZ+^k.1"[pvmE)].;0% x\ (gMo}ELQY@cU..aduG]GXp-|a g8=[M=aX#&q-Mgq܀s&BYjuMw@q6J\'70%JqOPdH"XNlEBw9(3@\ :༌2-C)9`/yBYO_no,Vp:0Q̱)hFK`a*.H ?Z4UIh`?k nҭ% p 'xZA;C GT rUH]ktYd!5@(D D&5=o^vQl/*yj E=*Dit$XM!@a,̭nǮIA ZpR:rAY>9:E8>=e%ΠtG]Szխ~ug][z!U b%ufX\̼h0!xDB=CcnGr5fd+ Ya)>h_V Q"E)LA N"c $|S^#`<E#}|d̵VΝsء`Bikg!_ xtߚUH bm$1A @$X 'B ԟ?%)ZMO5QR;E;T[isۤHS AԾY$b,?ې2`+!phqKܺP x,P0"<0 q¢$h6#6kl;m6op ,A?DA4sa=H*ӹ99s>@Et̙/`jLGxGyGzG{G|G}G~`q1s %@à5LAӂ$0H3<@(XHaEB(#%0C##=r|P盽s>HLBÀ&# 0(` "2p( ;EQɮC?TSJ$ Cی> Ax+# w( KP"DO/ȷXZ˼A=ᓖ"<2h{3P{׀8UJ$ H?$p)@%& S[K 8Gh, #|(DDDR2`.춦Sy"!p8AQ ᐁACHXS:OJN `Q@G{hŤʲ4FpPA~ #Pm9R-U,XI c!,=$s dihlp,tmx|pH,Ȥr@t ZGZb.oJn!#4要}"  }x} x #!! ,'A dihlp,t=6¤[b((OLaY.s͊`5[! , ,`CdId"\+к:yE IA0  !,  CАr+  4 !! , '0@kҠ\WXJ)[ib0 [! , ` d%y* +@b  ! , 0EHբLEp"A0 @J\@! , !0@iiڜPMw&F V@[MV@! ,jOONƅ˖ij֜ٛ H*\ȰCz"JРESdxQG?rqdƒO*2)2eːS* $ɕ.Q>a6U}QѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷ LX+^0ǐ#U@˘*x ,Mw ^zְc[XۊQoMȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&]L6PF)TViXf\v`)dihlA GЁ ^0@D !z 2y! , jNOOǔ·̊щςֹJG0*\ȰÇ#JHŋh4@ǍIɓ(SF0Atq楗iʚ9oR%AeȴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&YL6PF)TViXf\EV  evQPQ"Xlsfvk d&0DC2gu@p(Dá!, jOONNƟèŬחϼ깽ۤ H*$''z"#-^"Ǐ?v("I&7(˗0c:dH7AF$&N$圲ѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݺ ˷߄ÈOV Bǐ#]̸˘3̘ϠC[8ӨS \ȴװc<۸s[ t ~S+_:?NسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&䐒L6PF)TViXf\v`)dihlp)tix|矀*蠄~ID 1@`0]UpC#@\&x\x j^@8p`+?Ƭ! ,H9af,: J+(jȱǏ CIɓ(S\ɲ˗0cʜI͛8s,bdP%d*%2\ʴӧPJJիXj% ]{tٳhӪ]˶۷p +KPV߿ L3 c{ 2˘3k̹ !/@8&װc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`*6i晳a曞(i睈x\jA@ifm`z!c *餔Vj饘f馜vzM6jU@5uE*ڕ֪k*Vc &6F+V[0 "eY,,gIZ6~̥"K]r~,+IL(#2()d"=D&ecvĚ 8Mqh`~Q[L5WC8b*  :fx< f5l5d d3̈vI2Z$-IƶJx/laNXņ=MRԨNW@u;mEBֳ'$q\@}}j_,b vyke;ЎMj36 XH.(m|݀6ѕp{0As[.o4ì5\lR;'N[ϸ7{ GN(OW0gN8Ϲw@ЇNHOҗ;PԧN[XϺַ{`NhOpNxϻOO;񐏼'O[ϼ7{GOқOWֻ၈s N %~) ?BB7=O|K?gA~~Gsꇿ|$Џ}gߜۧG~!~\5{N{S  (H{ (؁wxd{`8+Ȃ"8~}VK8т26D:]D DXFxHJL؄NPR8TXVxXZ\؅^`b8dXfxhjl؆npr8tXvxxz|؇~8Xx؈B57u(#p5@)X *P`(]]14@ ]qЊ:E0'PW\ЊIh\ZE0Pip*Z0&=\n@`80o)p0HK0X y ِ9Yyّ "9$Y&y(*,ْ<CQ2Ibq:9s֓Q&FyHJLٔNPR9TYVyXZ\ٕ^`b9dYfyhjlٖ {x? N n& D^76GN~]q f~I^`[C A^D0t O0p paO p ɀ p ΰ ) ÜFe'I#/0s-@ p #i ˀ gf p] i&&pQ0J =8@??91@ә"pٟf ?ɠ Ȑ ː &` P^ω&802 a;Pn6 p2D6`:EWҖ` S ư  &&ΩP Rj&36(?4`[@DJ 010@`PE8`?il ` 00+p ʙi QS Y`#X7 FAEF{ I ^P<lp -& hj ` @#s %?a0I8`Dd?0v6p c?ڛzz$7 Я5 <`/( @28`vQ)uj)4 J`Z(i1_)F]aHLP'@7+̩~ˌ̓(}-% %= "T\6J_#G*,!J|90[pәx|QJb 1EtQB+ ۯ  @б I)$G =En_E4 @]!?˜ M2`>b4;CvѱJuI!_!~ͣElI=p;0ý&@1amֺ0q.7Y7G}vszpZm`-`~"P64s>1ڐF?L|Z&Q'ND6B==`'plӯ(tHݑ^^+02fjk)An$-]JVTQ k]~0x;ND Jڙ.Dr~G Еh- H/]/H?  kq ;"4?$iފLg(`DVn]`r X!@J@vJf/"NR-XHkge @݊h; =&K`0 N-o0F9f ^$>Uqp2 n1# H&LJdPnÍ?jl[@d6'@LIp F@:o"{m$Þ'  .dB8 Pmˢ4b5ѷ~`B&@'HSA#L*$B %%r R mĆD G.l8Ex m`4 S/bQB(!+ FXh^2!:8J N.7aA $sO>c>tPH4t4UtQFuQH#tRJ+RL3tSN;SPCuTRK5TTSUuUV[uUXJYWYXs5P({ !#UV=HkAW>yZnA9-@ eG!$Z @!J`F0tz6Z%sZoM`= {pb8~"" ÜgA`&>KWG-` " @𱴰-Yg0K!FزE! _6P3d(C@LfxWA4΁iRndRBġu4 +"`M0A>^(A 1ЧO^> @b! Y* YKZ l, RUh? hԂAAM`l@5RN8h-)E dH(HyIrF"j 2F&7IsDHYfSD&9"nS$g9yNtSdg;NxSg=yO|*X"F~!ZAy|ZJhC*ALbk PޱreFsvu  $A I& CGe;)v (Bb\$8fqAr{ w8FqGtH@@^K +05=QGVRaBX@`TpTؿ!uY&/*p`t!jT\XF6P8 yTC@`^P89"KĢ8d1) pE)^DbJmo} E*đA0IP,InfDIKb2I<RX#@lp *.0^Rl{Wo}{_Wo_Xαb,D[&(j8 dحoXù X2 ! J#+`b H |@@&Uxlܐ YF³|! , jOON´ԨˠϷС :W.W#~W[-~#JHŋ3jȱǏ %Ir'<+ɔ+Q\%6iR)&O$s&NE}D2ӧPvLz mf.QݬiJ9ϊ@"j^`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&䯒L6PF)TViXf\v`)dihlp)tB @` tUj衈&袌6裐F ;hb Q0DQz !D*_',@`Ƨ #x E`D`ajCȾ! ,jNNOOOųɺʰ׶ЬɈә⹌܎Ҟѫ 7٣z1̓62Gi cŏ CIɓ(S\ɲeH'$&2a‰(#rť!`ZyIͧJBuTgJ>&4SU>U[9ŪϏL 겮ݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&yL6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&J Ё Jd=pp0,)@P.Hz` ! , jNOONOŷȔɷԄȇ܅҂㖲؊ݺ۬ױψ:Q^(ת"s3jȱǏ CIZNRVʕ-fe˛6Y$H۠?NJ*o,%ӧNAQذ֚v'ԯإTŒPhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&䐒L6PF)TViXf\v`)dihlp)tix| -PpDB p EFG'`DpF;j8@R(ì!, + 4h0"\져)exΊ A0`!h!! , 'HA+}5~uӪ,"+Fj@o~ǟ;4K0櫯t^iNoKHmz)_'HA|.qpm#1v9k;~. bx:M@HJO"$H91C"#aHtdOw=Fl߮HBO"\(I Έ!74t_%K ys.2J展 E 31b #L(a`Ry*1B̵hFzzv'vuI3 "ʒ.Lk6NUdt= HG3u&ӊ(PRReL$PΊP1,gtc[7ýmp[reL&f@ AjDz/&񌈚`ϠO=(҅TaπMBЈNF;ѐ'MJ[Ҙδ7N{ӠGMRԨNWVհgMZָεw^MbNf;ЎMj[ζn{MrNvMzη~w8A).6{@"q0#OJײ87H+@\OAI)9əԼ#έZ8 *Ox]oQ><qzZ>|XϺַ>msg mfĞv=m"]c Ȼ$k,o>e}?;񐏼'O[ϼ7{GOқOWֻgO>0`j@J A|=aAO#'=݀{t z " ܷ@'@d@E7g'~(#,P=z<af{2'{H'=ڧ4}028r V{>M w4$?71@p}#9 7OG @`FzRW0T$YH 010@`PE'8`?@~>xLBE׆@ J`z$6@@C?,A`7TyR2_8Xx؊8Xx؋8XxȘʸ،8Xxؘڸ؍8Xx蘎긎؎8Xx؏%  ?wL 6M H;`tb ɐ O ' 60mN  M 8sPz C 1 N *y! & &9'  H ~r' qm :Ɣ@ 'O`f9;fizrk s 9;z o_z r.WIl  L#Z p P 4/G4pB5oà ^ p 8 @ b z ǩ/g?,*PV 4  T   ʉ:/!pi5W (- P К 0@ *#  Ёr @(o ~ o I I Šɠ/?Z!@"C`[ z 'C &=pz"М"W wL 2ڙVzXjz.a/ pfs@5`ЄLq`M{Ma8<,){ ȴxC‘ 5R0'0`GK I'> ;`wO@YYMшX:K`_C H<[0M"H۸yYZ`S;t'B-T[zѳJ%>4Z9(-;dѽ:þꨢ ֫O+5Yn[-d;[p;%XL3ź (Dr*}ԗ<lEڪ'YDd`;=O:L@1,-qY(-J̦A1DslLȣ5F7 F: /:-V <q=Q|+Gb :<,n(X< \R㈐hg84_CcMp4 1,,+<956 zRFv#aH!vamg+02TkS/p_=``[!}K!=&[՗ } Bw\:453ہD Q:!0 $'A!ό<%#&ӓ 74]@-:m4m\_@46g=Ai=Ue- ^6 j6]@C.-Ny6-v77  m]6.צ_&4& .{'>7|j|+4$pj9LP>^k:'  @^>.湽2 :U÷/>uI~}&$,x4x*]d}ӊ,J}TP6'|dp]9 ~0@j9;'& 2&g *r3R's'C&}G݈=eN1g[2,[~S ~`4q"[xŞVncAp=z!F@:@p|?< O&oy3q.sAu ^. |nzb^: "!5` 9Ej07Q4f|YLNJM(6652O}GϰM[σpGȞ#"6@0|]|ggJ&P#0J:B`p?PD=(ʐn1ꢤ=چ D{HHxa50뇵EХiosWg>{v \CA@ 5p$~ٿ02Psqz۩SpܙI`r5rN-ԝN 8p!P .d@r0Iht 8lG)UdK1eΤ9 j1Kʞ$Zt&- MȀg2Tpp${,Aa‚؁’0$ǐq°q+s!UƅF;(d 0Lh)*'\0ҩQ>z4g_[/׳熸o'^|nɕ/gyL}O^uٵowŏ'_)NzuǍo{T~p@ 4@TpAtA#pB +m5ٞH7*Æ6е [t:@!2)T ҀG^,xII#'*#4@IU3KDLtM8Rb9 T4D! 2 2H@΢ %Ĕ3nQSUuUV+4bK{考-LM8@vxnAN )[=* C()= TMnzO\ɕtuŏ!qE0sȄ_{Ah# j K.շ%:n7 nE6dS6 "=_E!{W!zL8ΰyfJW5N!SjB; L4 M?u;ѽVK?.k[Z @覌(&A 4hoHI2) QKA0"wN65y]Etr[0u[wuc}vSww_(zkj7xW~ywy <}t{pգo=:ZqF_IXWI'RJ?@Z|!J9 h@%MO{&yuUNr8"ɃWҗ4@Dtr4S!] ;PA 1!T @D,hP[t8@3 *@X4S03t>hP#E@3ч_F V0`#TlM GFRI`'䏁4ӜIjcY FjQB5=47/% 7PIlƺ!dnW#|@"@lp `d!HTxkb/ Ch[8arCRKT4VUUc%kYzVkek[VUs^W.Cӎ@T`|~j̋!!2(,r?),MNawRsQJ(ANOD ^B?LT R#;8@yM>Ts!LNAJFW0% r r 8ay($g&0P×-P BȪ{0tV[F8 .l7!4@ )5Ff]*BUi\$[؂l؁ Si|s@;H 8`2T0ȆmT7XDR%<;9* L 281 fcHi \7t@0g8&'cP dnI`Bf6Б> @iLgZӛt݊`OZԣ&uM}jT'gͩN`Ǘ!e`! @a0Gtg YMU?{;E@QjZ;,R$o{И% QPG`֐7_DCR:Nx:AjWA נxmJ8 B2 4Y^*3!I~@&ʑper@y hu_ (GtX%tn#"(-88b44A]!̎vyC R #]3  PmHGyjt1Vg58 xJ|m3r_Naf2 }AS'([B׌ RHsO*%IțpMq:SoMszҧ4&; Bf+Ob~_g~_^*`U&e01! r6)K@?-5??? )S8q!(v〨X7Jz-R̉(,*,B$X#ae1;#!A919/: 1 X$+ȹPPTH#T*%86;:(;Uz"Q!$4CxCH|(c^٧~x2W p']FB2)sbD(0H瘪0:) #ÁX\3Ek$kFmFnFoFp GqGr,G 'C6(1{1X59P3GPK&$X( {$,)#`G?Q*C7āh7_/"ҭ< DnLȅ\(!NIX>&r$G$T38&|H# P9S"0Hz-ǚQG?$1ȑ%Mʊ)_j@/ɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ] P\*ݽU ҿ$,0@L! ,'3V dihlp,tmx|pH,Ȥrl:ШtJZ4q(W+ p-3b  EB!!,< dihlp,tmx 1l\bb,R^b]L[Yam[!!,"i9l*\P#JHŋ3jȱǏ CIɓ(S\iCA0cʜI͛8sɳϟ@ JѣHa|ӧPJJիXy.ʵׯ`ÊKvֲhӪ]˶[gʝKݻo˷߿m LÈN̸ǐi.Lx'c̹g?MЦS^M5װc7v-viͻwXݾ 8ȓ4CNݷسþwܿO9< OϾ}fG~?8V}h P `>8axaa a$7b(wb,vb0Rb467c8wcg5hJghh9iyiڹiTvuh*JiB kJ+Jhk| ,Kg‰ll.,>Kf҂Im\^-nKeB nLK.Kdn< /Kcˆo,/KbHp0 /LaCq NL_q~ j&rʯ̲.\k2Jsͻތ:l> tMFlJCt> ROmVsun͵^]nbKv랍jon wMvozw p3x/θĎ?^qcLyy"o[z赍Nzlnz몽.춏{N;{YK{*x/_λ}5O_/cCg}q⏟~Ͼ/Ejxkpr<5" R.j,ec zJ&S;0 gH8̡%@ H"h{#,PH*ZX̢.z` H2hLc5"0mKG7et, h<fm"ȵr{9dZH0,lȖHJ-K&/YIJғ&2P^A)ǢJr"e NN%$uS򒕿%0o)L63,,Uc*3 39iVŚԄ 6l6ޜ%8ùqsU k=:\6c -rڶu.s1 ݒWrݼV'%w;^Wunzv7}/|(߳}y_ n};me6.mE;Vxl#avXl:]v|bӶ%&k:ة7Njab=f폳xG6n;$]WV*PV;dX[oeYcFlQpL:xγx! , 0 6h0"\,0(nδ@x4' @ 噤ZS!, 3 hCsb80 +|+ں b(2b< LMZجv+ ! ,4 "CР젬,*NIU$]f?Z-6Ѻ(/v>{["Emǫ^Zq_WC 2\^,u$;sE C~Nl  M c'-?״=M,;gљ Z4m3j kLsuni) ty7uv '0igwEuk7"Lw]fKޚK aB*dڃ8DǂJ>Yt{z+<~QЩ~sX}~Ӹ>,beP uP"DGN$ߡ x7~ǏeNj]wNCJ ?o}NT%p99t-? ҍ{JXh=gN-aѝԞwBBGKUlHg L9qow6ZvD]pQ~\ 7ٞPrM$rֈF3R?|HR#åئR:%y)Li`b:SS2)gZD6n? 8IrfD@g*֙ sx~ @JP$ #@Ё  Iъ7BB0Q  )`pPA n,T0$@JI 8x)` 0/@Eȁ `:AIK@! , ^A5 R[Z)8_)=ĘD5Z7Ӈ_@9,==7!(7J9T4# H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJ]UOLլ\Ê+kU'N̪]˶۷VK#7,ī$mRÈצM̸ǐ#KLٱʼn?LҨS^ͺ+!W +:˻\ BEУK>]-CL c!%&@ѻ.Q2-4j'?]5sp\c% 6h}mae6bFtZGZm\$Pk=wj=4菈^uxV…UiheYKDF)%1̹BBfVZSi'UI)c<$b^v&1iz曓i9[wj$U mY痌^%cbc`f*N#69aRgꩄJ)%gY*jaJM.:+bbU"&Y6[ }'dH+$v*Dr(#*9/[6F﬎R2a*rn$B UJb 0GFۧW Wq(?RŒ,Z͢E3|V%LΧތryPt`EU7WPn|Pz<ӓY.Z͵tYVTPఄW1p {R׎ [2%Z{u~Z&fU1 5p8k_/C$(_e"BrS;s+#kʢ[= Q=1!@4DЀ 7&#U/qgEp%9_X"Z[SօyK6~ v?.=$Sx>|;K(%%P~{ߛЅ)f3 F73 vt9ʞ#D' n`\["(-ܶXFE HX[}{pƿX\{Ƽ?q `!ܒ>qkU@:KPY-S#W2f0R9tLC2.K4 )UB W*$52 ja;um#Z2Zk2ؒ4 hB}Aq4\m)N)SN䍭lN2fbQ[6~_jNJqQ鬋vٟmJ4WDQVf0Ŋ2hCPh26 ?Z^I!HPY/e*SQf&5YDk @ PJԢHMRԦ:PTJժZX5ͪVծzL@3zRdd}l!8F օXu:ԑW! ,+H*\ȰÇ#JHŋ3jȱǏ CIɓ(Se 0cʜI͛8sɳϟ@aHУH*]ʴӧPJEaXjʵׯ`"سhӪ]˶۷"|Sg@0p˷߿C@x@M+^̸ǐ#KL˘3k̹ϠCMӨS^ͺgbW`Z5ͻXAc?g-&u^ol<4t vx|m.V7]D^{gHΞy p.OG>z嗓nKNz~@@. .'p'8nnC_oއ/o#Nxga^0+Fo?OBA)C@AOHHL:{ (NF9\OW@B 00 gH iBΉ)̝5x"iv&:P{Nl@zG̢eHۉTwF=D"É m\ɘ=P~_3 $ Hd=B&*KHKb 7ICLr҉7ȁ6qM&!_T$sHhħA'Q DmWЍƵ2`EwǤ^=CX9qZV)7d]YW̅q&]mqF] 8ٻ kTJ2)C }>↵CH TTW[r5M-:x;] Z2wD5;MHF2R!T`ΰŨ!׳fE.tr6A0F-nac C@Fr#t77}-V ;FB}(Q ad`MBlG2U*V\1&gL8αwE, b<2 P1!&g`0Q@#EDB[L2hNصr@m^LgƘ`ۀ! ΀ 4B^[ZP6ͪ8瀅@ 01@0u#9 7P4TxG @`FQvWj.&3H 010@`PE8`? g-uBEFG(JT&8`Dd?06p˔g'f~8Xx؈8Xx؉8Xx؊8Xx؋8XxȘʸ،8Xxؘڸ؍8Xd{ppp8X x( O  ps<B N R 0 h  s iP &0 +8(=  x:c=`'} Y,  p:`7-ɕP,Y tYvqp ,{ ɀ"9&s"APxVb ) ˀ )°  ea2J[x 8 "` €P##2xP,g y `iH0(0=J,DP~GƠ Ţ`P ye )rG/'f_9b) b@ _葛_x0IgpJ9})jwy(NgCtOW,*B;tG"7 8 #; #p5 DX p,$Pn)0C@&@8pi"`GЅǁfep##x@"Ifj9!v``7m7@puY^cg$p!uJ%4F9A0(kP/!#@3X7x@=*Z# &@m p^' P`8QF;DFp/,bK 1Ex(jF0v FJx@pꚧ^Zʭ9np c';@S/p_P*`[*@lIE0CdaXf7@0>4\Y@<[(p&ך0яzkKv>!v= A$JvAQvk([Ajy@|ˆng* Z[ۇn_@4hC7z{+k KF$tf 7? h;;qB[Q!,Ȫ`hMPk ]ФO;F˯ǥJ*P%XCh IYk>@A8`"\8aY@t s":*qqPAjR['C&RPO:;(8(<Dq"& q"ڦCL ׋VŲ8pFK\| m- "P6E麮p#zClklk"0p4K>,,[PH$ CZ0&p9- = v#T{?P:lj ĨAʦL<7E@̅00,; g,`G`JK@>kc8@xj[>E@Ѭ4 gjjIP΄ap1{ιdm6УYa(('k@|>场,e9c@1;39e8k2*ޓ,%`̣ @5컻»Dm,¢ `:%&=Z@V*@G :Y<@' әyԒ;BaQ@:!!x4;+kހY >Bp M`4^՜K./CPCF[y=!pPK:"9Lˬ; ˢViX :O+@?>(HDA@`F`75p$M^͗02 ט>}=~Bd=z @ⶄAt{> ;ɤLHVФ1!3XbȢ[Cpь> ,%}}2L]۷v02~.y==@"~Bb9 >0m;q͡'~z9=z-p0(_N R};$XZ_!,"Nj ^>(/;R6!@o;K / ؿ [p;nwځe t/Ma ($h!}@zH?6"Ǎ;PnZD܅ ݷDdŽ#Bګt=󽬪O6HsI{{{V@ bF@oZP:k^@ځmmЄc.{JȄNR8>/ KDIMz#tHA#=TA BEAB =tЦHF)dK1eΤYM31BN$0P@.h!@*aKJRnݺ0;\XZ,J=k[N|/C,իpE[tEcqFkFsqG{ A:,.Jt#/RHr7 nВK ᢗN$Q : 7oa#Fs GDb0' R2V"^ >LHh) .2A1e2A`+vpKW t(2WbuYh#r^R8¢+*[3yhvI- h H6 &3i`:Y7OLɅ9T# /RĉC|2;8#9? 8#PBۋ hyٳ`ܵ( 0˗&H-d#- zjn֫h` V@z6̍"AhK%&`AdKj7KdBcF^tR!<\ c;r3ĺ΢-.#B@》qmk 药/^e͵9MJۃ#:촣[J'\y+O\R.~9 ~|7|W}K''c%FPC߬~$ &>&P d`@FpEKI 9zУT' a ?$ pEIu,#0jВ\A;'DnId"zPB(B7 20 YB.bЀ Q$cxJV@.̰` S!@ĞT1{_7l{tQ{dd/t4f@jX,iP Y P4@de+] "| Co,@ |8bc E>$!H5DB >̘tR _y4aB7C@ś!,҃%lfA St&9Vs;AynR̃T8YNSH6QT#"(IEci"1rȲTĦ:'@4-0lKMQrHl"!#iSTFUS%)lNs '8zŢAiA]UKD LPEkՊղ A @ Ԡb"PN !w,\d$'2, ɉU0<&#6yUfzfqfkt^m]85 '-,oABly]LQ@ %IPB`΅.vmUT&dx!7`! b5vEb.yQ  ,0 C& 7 z(`5B O8;0s>^Pi !R ^0]I%+iTKL4SL{[AF;MPҡ ɨ-b%X_"0P !@0( &؀0 e@,( :=sh'q3X'p ,-SF$z'_BXf"65f-G  @A&ͺ#.qb9K815n+ Eм@YaMkm,Չm5+Vk1A<8#ȧBDJ39/qH8JV"=g!ȎQILK\KlK|KKKKh•ؒ.A< B/ :ЂDÎY67<̙C*y(!h$x#۩H„Dށ`Z9TMV Q,ĎDP6L鬉SToyP(,[0)0(c 8б tp{t XNh#ikllPFo$ A4@PM8* +i|G~Й.h%b 7-$,ȨQ L·(6 R;ƫȊPhLx+\ɖ 2(Ut!0 8Ȓ IEɨI-R;ɟLY؁#0Ы#ܼiT\+d0! R;-@S]UVmUW}UXUYUZU[:3%@Ҽa Ȁ!UD,%NEM89e4M. 4V/L8VN".Jp' h﬿ kO$i%k'4 la7#1xNHPuQzk Rxi%P(,%QшL{U 0'́cܵ^3:`%ܛ+:6܄HZ\ҥK؎TF%/ȷ?=8oxqշf0Sp`y*[`?%! ,# "Fi\WXplRʲ*F B! !,geOOƌNNˑقݎް HAQNZI7w#THvAȱǏ CHJD ?0cʜIZɛ-_YpFk EudN;\襡PJJu[ъ'%;zl$eJhӾS4ڲ :iH~k nwN"0#Ń+U@*j|cmu ӡ]of cޥyGR|wk$H5wRŝ2d2 `@| SK6'}^$|ʋϿ?&8G_OA6SA7(MWN Vh"1#^ʼמh~("@.D]2X"-u2Є7RG\;&H xD%'g%KS:L)n^brX$i94d8f.Fgĩg+o6cXS}s֘"j(%`#"6ȖXBZ敋VLܙҟkJ&Mfv2"q&bdXƘ>j8R(r%1t\wR:B)$Ԏh#4)+"[Raz3H9}«h+v9(ޫ-] ^We8"Iл> X{f\r13S(Æ8<0K i\"SBKK4u[扴FFp‡vȮ$>+r[Rdb4Zȱ{rt򓫙Mɒb! k b S tkv&poD ̤O7˜>Łl9@&6N#:ڼ$OkR&WvVA"WZV+嵙L,w9&^mR_՜d ;#UV}_erGjrߟLhwcB9R9ujSt\'!g~5Q}ϙ'<KЭQf5 g%4 m+@nE4V`JA4aDMpj#TIGZ9*4('.܍* @Y,Fd)i ,}L36T84"d!aArdG_f(EFRY̤&7Nzk (GIRL*WV򕰌,gIZ̥.w^ 0Ib 'hGlD4xk27zM6 B9a! ,eNĠSNۡߕNOOl*\Ȱ5<9ȱ#Adc]Hɓ(S:e;ƒ)d*sɳ繍.zjf+Ji*B{ &KVb괫ׯ`&)+hR[(Npʝ{&fZ+ǻZ.J_L|*pgZ˘G}vΓ6o= 4hIS2^:㽒=/ntdؔ[߫-XoƱmK5x_ȓ+IzRAjncX^ν'5o!uTO&{p{q=vlUљ&b)P&tC(')X ]Zn{9aAoS>!Q%3N$0y#!q(Okj֖9┊x4g`^3,>x? >8(Y/3Q2,n̑YCB%n= !D;+/q<&8#y'yXZB#JGu .NIA%HV#YȘ9&ppHiG gWGhd-YKɼle0̦6nz 8IrL:v~ @RBtGD'Jъ @D8BF `?4$Q /0LW !=B`)ةhM/!,eH*\ȰÇ#Jtŋ3jȱ CIɓ(S\ ˗0|dI͛8sɳϟ@ JạH+NItJѧPJJիXdʵGgjKlTh/~MRٷpʝKnHx.˷oSLÈw^q-Ǐǔ m-!G/嗟bMo;/ޫKaÔmRԸs{뾡 18{8sȓFoq?Ok{9(8\:/:owQwhXᑷ`k!a` Vhq[bjaH}h E"hfd4h\ JTl[ƚNFܨLŢWA@2EYAO<`eMDeJe]IЗ0鑗Ztɐ9E{ֶ|]yR؊!:Fj1)e7"q!B9FOI)Lie8>:P]Vtjvk왨xEEp"txG4+vY뛛| "Dhѩl.fK .{ܻ/¾&"~+qQȶѴZ ~b[q <k[M$0`)V ܫk_;\"yݫsZxF,Gʥt"RG"pYfĊSHP5IoKH|IDXPK\%rD//aج%2_,54Ca4%=Vڳ7y$=GQ~eK'HLD$ڨl"⨇FR#DwώbEpN7L6ΘR d# 0*y CR)i[idLZִ7KN=J8?Bdicn:*g2H*2&С-U(1'=ˑݍIQwluIˣ+'Q`*ueFTkP96~ɩ>.jT&ы/F kܰ ,bl{IҴ^Fԭڂ{^4nn "-tTkQZBtfVZg[,~յg@CT4G[&1iKwԴšZG5dwTuV{,כ=A\t&|(s23ΏPFX<ʀ7-BI2\Ë;}JJ߰[N7f;ZĚ# ?,|COnoVc5;ZfOg9>y Y{3/33͓c!$@ٷn# V3-p/IQ_&%ҋUaU}T AwT}b;0ȑU]Wb+K3"d1Dô&NWLī] Fo qh*o)9D H=n"XR}˶7r@g-NQ 8@0\{ HEJD{ ѧ1Qs#HLUV3RD>IgLAXR^ƸYpaeCwjE,JIe‚UӉq%CePI,ڒW򄾬CypDĤAu6S1&+Lh\*yNQӞf1e/A9ҏ{'Qb1#m3RKn,Ef1%VL@ |,О.ׂRSt[NS'+J|ѓEuN\ƩKլp+SoP筐hԍe+icZP/R\΍r1%au1ludU%d许6sl]eqG.JZ;mmyyCM~iB'BPT IU(8m$927|F\{M2'][1!ke7MWZOaKxA@1&L%DRw=v ]!=xvHz1j8t'r; Rh? wCj!s+H궅(I 85u+/!mZ-4cB?q8jߚ{6Aek"0\wRk@+f\_V&G.VZTC媔 e\Y|7γ>πMBЈNF;ѐ'MJ[Ҙδ7N{ӠGMRԨN: -:#Lָεw- 8!pG`u ݃p` Ha>n N#d=AP!FtT0RP½ ! ,e OOûƜNN˙Ǡݡ߲OS y*\p JH"o3nh족Y OyxQɓ(SrL9q%@I͛ ,Ȳ<ө)'8ӧPRRXej]E4բןeZ=6Ve`9Kݻf4*To[|28,&J]4f~lfndLP 2ԛVo=q[(p.G8=ޭ|LG> ݹwW}-s+WWS@έk(S}~0( އ .I @!IvE9!a}#,SK͍3nE4"xHZfxL~pwςPɠ[%GRZMi=h\"`xȊp(t3@,hjO3!Jg3Tzf(!iJYԛjFTjLQ鉪`) ia:jW|*ʙeGj҃F:ȭff ⊞.5k%Z ǐkLe:2J)VB ˣKԥ oB"+:ܨKfv7Jm^KV;fCp0G-7 մ(+qk?D} z$[a_ۑԞJ5":N/4f")ѽF;'s{p3xSȆ**4^ҽb̞%av"zw: n:̘ >8#|9G>!mI#J!K"n)6.Qg|W3"˘JbIa_6Dr6(a/:{bݪ:8y^qC͗f2fHA#ĨɄo ]*Y[;LI3'?OXaR`9q а7΅8@«0qøP;a,8xꄧ=P;AJD*%6B/ clqy=c`lYh7h/9V}gňvl7K"%EAHw]"A 6r"$syj춷P"KJ\FA+9LuHt#A F220]B2t%07^ϑ/Y/!:YrTsU9`j<9Mqӗ^$ 5i`&ZbҖ:D.C(i<0CXEs[c;|/3:" /]~a5..iF1늤=FыţA)G h \T)|1"s`EI?Y*'ɉ2.ef)3wOiXSU HĢ,TV7f^J ffT FGe5{EU+YMSUM0M=:RnlPb0#&G7H5z(πMBЈNF;ѐ'MJ[Ҙδ7N{ӠGMRԨN pZָ5JpPWca4JW B)'.[G'}t` >XdiO[ oO:! ,  I`#8e&7Q%/ȷԖ(]Ƃ8ɋ74c>#^[0?8P*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pMDݻx˷߿ Lam^̸ǐ#K;eS&k̹Ϡ]M,:E)šc˞M'O@Ie&Jq= ȓ+[wK=-:sbx`,Qf^Ny ttf l$h L'֜a` 6c ~^&^lM*!^$ʵ hBb8v̄7⋹5zXl]Z!c#W'J5"S6Ihُ8K%d/OrIIyf_jR&gƨHX EȔ ꙡsD0wj BzSiiWlrY(_2Iʤ)'ʔfJc8뒵 g.f"zY (*,2h줥jɳVI)V)m.j{+`&몭m)2v /_ծa.b6'J^V"ȳU11ǝm]N,+cI Λצ,b3z6 / ^ƌĘЌWb˰':yA - NEE <#52ưe3ȅUe6$7IlS @ʙ!d'@^u: 6^:ܱLc.uɼ?ͪ"׵0Y > o k׸,;'^c^:JP.cvʐr1%mw<(OcrMލ>!/5ȐLk$NixA8Mj0eXE%-a p6 qwH1P%7/̮$oxs@=9qۓV ,xX4f Fx:˝N|/уp` vN--ƩNj"H|j^ CO<绘9Me19O#)+ B(!ب@DHB?aý.ZAoӓN%!1 6x[}tXE[NQc&B"|#r(G!,b*I][bHF?ƍ~ͩ.t$(x4^Liv-ʗ9W-2R cJ)0Sef.x:4#4c\!ekGUU M SQoƮq%XX}19pz։Ыgi6h0{6|1z5Y} |{ 0 `Į,ѺABtxfC\dEnVD2qTkϖTֲ5O(JvjE.2I^:9jReIU;CaChGf3MI;+YPZ=o`Nn}F/M{fv뽄xB\ 2l[|r`[}R9{Q)q)ͩO` C]g -|KiutMa1rUAzj{-l4uxȜؘ (*eUa'@gS|Wί-t-Zl[Zo>,J?ٍtn{`NhOpNxϻPt`A@pE o q:+2# Wz%ĀF8AE)dvIsEI`{! ,eOO¶ƌNNשڬ瓕{l*dUܔ#JH jȱcޔYDǓ(SMȗ0cʜ @DGS5TɳXΞvz{HѣHڄI<@6r*#ȒvZSRN@Y.]˶m4q*V,Z~K^Fw Lp͛cݝǷ-1ZÆAˎޒ|s:d1^ͺ5!}41zC ^M!-ܵGvvo9GH/k~isӧW=ty/ԀKJ\nztɒ2qUhᅽdUe1#A^$ӅRy*E`BE"!%!{fy"6b"g$㌘b)+Z ϩc:ԈTV9~{8`HI&WxhXc4ɂaD"Btig'!$yF( IP8rɒ%}&݌ZvLF:_1?&&(|)FB'ӣ')9~A Ccqmyd'ٺ& &:$#ԭfv-aIZdC*l/u(ɮbJ``"@7)x҄︆ȭJ.Ö~:(ţJb7vlR0,j%ƞ_JlΌ\<+k4~K%q :m\ۢ0*c08B|pAZݸ`6zxxw/" -r=P<@ri:*_k!yX6xOpcڭۃ;8}#7Xʲ8?밟"4Ul[Lf"@g,Mk,8}޳3R沄L];T[[ };>UnKǿwu=F re $ HT" d9$Yĥ#?F"PD !r129CqUB U1c1".';z[?#h5bBHlWCnS.zq880[ƃ!IA{'m(A K :K(j ΆVZ(̬=$\YW2 SÓu*fɐ4+5m6I(gH[=Rp)S]98XTAy\Ⱉ' 94}M]6̘[z:Ad jWnV),2#o&vGJg PzBh*jL05[GY'Aqv&v yN:*c ZEzVR&Eɭu a' 9%w8ؕ%o\Pɺ-dԈ8=.83.K'Ӯʚ5- Sc_9]jp|Eպ7lmReAV -hOVFe9-Dz¶5[ZbD?Gt͙y{Dnq qZ;5WS$}TGfOr9QEqC&ឞdA-0rHƝ)Hf>|YU-wk5KGX5c% F-d>Ҙδ7N{ӠGMRԨNWVհgMZָεw^MbȮv::ζbF0* Lpp HpdAݵB n8Mkth`NE,A7PB@Pց! ,eH*\Ç#J Ë3jȱǏ CIɓ$'\ "ʗ0cʜI͛8sɳϟ@dI'B*]ʴӧPJJjʢE+bʵׯ`ÊK,KVӾ4լ۷pʝK!Zx˷ߑfL`{=ǐ#K ˘3k~۶O+oMi~ͺװv2XӸ>[7 N躩&adBObڏzf9gu&XzJԙ [ERƹ*t6fuZk*V=PvijD*Ql*v RQ,AkԚ.K2#X,ҺF}X, ˦ms+L$>4&vVFxZL֢1d>\Īnl 1\r+G2#GHDF-/*︕{*ԮqK*+F4ƻR֎@Q.Bj[pw4_ 4?<1)47Bfw\@kd8y&]yv##DXn5Etw}'yActAy/1ʼng亯9,vg;9[޳nq/|Z+4AK?ݴCLu ]Z*6ױ}c'vs t@A/Iі^6Pr: #dvF \V0[݋uv;3Lp$APoD`ClG0)HW0#V6 j 1դ~HLA5O]s֖Gso aO'pPdh#9 aE[12() _ycW>aGDHB6u>,h# $cxAQ%ΈI1t?q2A<g5i`zyʠ5gJ:$AGCD^  8IZܥeIlM~ eG2#D[iWb8(ZvQ0#־*ۆ:zʱ*.Jqu|MyF+J=GbGa@t% oJO*d I05\#gy"2O0p4AILP$ѥU1BgDc8{'^u34CBaޅ%L0yčȔ)"sf)$-G@PU9D;R-Ѿ͊wP/1heRRFuEgRQ)jSg*V-$b=#u+Daǘmx#)>4ԯ%Er2+^F~mU0ISJNW p%8 >2o`,_!R7ra)Ga^&%zDmBI2}x(V,[K$&x%:Ԋwys ù 1\.B_b06c[i-k 8گ}V_m'AXwbB;l@t(i ۊBD%uĤQIȞ"6hN/RINoܚJ8Wqر ֮g1hVD$ZN0KsJ=n+$D^8yNu}pޕq. TM?|h,N-Er}˚x-*ҙYyo|=6.ŘC> >xʦla|c~ua-hGjB`I}>[Ps<Ѥ!`Uzr@:ctt/<,Y'fF\Iwzn3 ܝvdLJ0:zX*k K8Ϲw@ЇNHOҗ;PԧN[XϺַ{`N]-8A (pvsOm;wP7@Y`-$Ѓ[8 o! ,!+-H*\ȰÇ#JHŋ3jȱǏ CIɓ(OIeCʗ0cʜI͛8sɳϟѣH*]ʴӧPBERԫXjʵׯ`n81#ٳhӪ]˶[yY#pۻx˷ߒf8#Ø+^̸ǐ#KL˘3k̹ϠCMӨS^Zje!Xͻa[ ࿓+_μyj=ж ݹس' kskO&˟ONdD(h& 6F(Vhᅟ=3hX&3&`h(@& &<3L Sb8樣e!F 3iL7~ -4?{X=5~?g͝ARpI+ lp-tmx|߀cMu؃[c 5]ͶOG;PK,n騧ꬷd-4Ѱи>B{/<ҴN{]/o.=?|,w/~늏?x\U#uDX_eB.b.@ HCQ?}lk` RYh @B+^0Hs_A`/?6s5ǹ-Ix%GdU4xD!! x&*5zVx-LLS4)nj|g8ZIx%(  MD`xqk#$H yX"$$Dvus$G5IuD%8V!ah>6&X[ &RˬkW5iU|&L=b"N&F-h%kJSk&@&"d89πMBЈNF;ѐ'MJ[Ҙδ7N{ӠGMRԨNWVհgMZָεw^MbNf;ЎMj[ζ4 lT?jANptu -@th7YtNO;'U 3hzøHDnm-$?JRN?a'Sqc;s-=sAd (#@,P=<F@Co v^&@ ? a #`=ЏP!00ZZ{6p@!ܱ0(*p"y8 0Iv4`@6}0*, PV; '<65@5noL"4 G*Z(r PegQ@ȑp[ȥ%yL W@C d;[p;^W?r`!;"&@2@7ajlC`0E?01 5:6 @Q@&@m vBp$Q2*`!6'~DLIp F@:PZgHFp/`4Zf*=/@KI6&mP[$D@ a"FS6@0];g=0U0=@;*Fа:J!`ozS+02$AEF!4<& 5p$K902n JR6@> ;mj?Z[_0I=A"%Dp!z=p'0pu2Jڢ;1L^m/` p`UJFQjsD6`7 =/02Jvs!j<\ Q<$G-7956PpL`tA:FØJF`7|10@`d̍0= `!@p)yS/p_1|G.c>Y)`7 - rp&Lj }5tŋlϵO1V`7!=zLA@MkPەZ@z ] Y r1 #ӂ\5M4@LŬ p ̎-mwkM|v0~A!J\w-:j֢M8:(٧l+ 4( n&=Z0 P{ =l?!ٖ=]76.} ٠ r}A  YPJ&Pax Iz>@!H380xr t7glƼ3"H̍2  *-||;0 `7iEII`Iʦ7,TiX uK5~QnO~ˊma݅͹S]) Л(1 LBp"P6Х} # 84{n4zHyvɩ<p= #^B@/&'ț.Ұl[˰-GΑ{ҩZco_f>Tm|<>Ŏ~4~8%x0Ҫ !|O aWL^5Uw2a:g|qF~fs9"o?/sr$m4m384P엍21As*Ƿ4 $['4G)o+_eod{MoXoH$qT`o\rA$t/7/lX?/YxHQ6y{omohPOj vAa!77U7_\/q&) O!Ӌ?ڒ7VM` LԨµc@n5G $XA .dC ŋDjĈÉXFUd2CRhA@-(@SGK@CZ$i2G <)脥^Dx)UR` ~uXzx5mo΅jT `m_+J &nD ` %&z(R` 9 4^@b$6c`0pC 'CTxQܹcBƾW@ 8hQp4:!ӫ}^}B( ,k!r蠠,1%4#zL8a!@0 N7 D@8Bf[ qHG#tiAz考-8s'8a':J$)X/':4b8hMtϳTǖ$M9Ϥ́, ED: #a)@ #&l$ZP6PG@hjPi0tz$ ~ b2 (b@`T%-n70b `';m ilv^z^|M!F( &mx TLI5 pb>4B 0 x@NwH("X R-Y q@AIaVnHA#qtYӠa%Z^}ˮ,"jуJm*K0룼3VmgȬ3Ȳ DP"D. Fሂ^sxx"<  l{OWq!x28A.}wΩ1g܄v2Ώ-W콑 )"㎊n[ϴ}_nV.q{@FPÚT2A fP`=AP#OןFa$A1aVw[>8ea~O  87E$dbD(FQSbxE,fqK >0(\H;/okIWf0-dBǶo,^̢+5 $f:# `@Irpl2X%'04S4#!I@Z(IJQ&',k9ʡxLOoe%\f_|}XnM #CGɑX`4`C`{^vJwh@4p"Al NƔ1TNw`Q cس 봧YLcHjRr6I 1Kc@j&F}S H0\7H丄 u#pՈ4(@cbHL8!} *~.bQDu?P$-IȄ4(YR{OE5Hn- :pWzp1 T8'ù,*o:C4K?N i Ke RĆm /d&&6l+ ʽ{ $pd'j5j)Liɥ wRiQ Lu{y/nKW11[z n ||b-F| sQp @lD*j./ fAP6`> _ A0׍!a(S E,]xX``m 5ˋe/` [9!lee)=ۨڱ |S "g3-N 4Ta)@c$P%3KxMz9n.XCO0BF"/s4SX 9Z4CL@dh&l [VgYcvsCskfeY}N5L9|Jݍm9j\'x ~pWhrfŸ4vQhJ]牧%Ri lrjεM"W̎dZlN+Oxm~s\;yUg;<,BɶOO.789CXMzp.#͗ kgJ %;x/,3&c^#oDCg-ЄGt ('~pN9NysV]+;]Ğ*=! I@+R0@P6 v%A G@e:0x%R=f7":"JEEz`]f0qdkYM f @" 0[1Qr. .0ЗK?  Kq[#"!"1s &9 8x- @L**.p?. 캈[h" dw(<0Qv>CBP. C;ùh3B1s'$2896," @<4!@Z؁HCɻf?4 b ∣8R7>tAZ4_z`Ah\,O ٻ2,Yԁ/!H@5:LL %9:x+ X$FECfi7s!A`ļ(FAd|e|"˒.u II,I،ݛP+%CGp j>(2@[+ +`f1*H(h)x!(,`S&jLm X@Ţ@_1*`!S0ayL"@ mq݄Vp X$8ËP' .ٖp┌dJq@XyO-W C qQ-0z=XۙDP#IAEXs ݜh܁,y~qK#(ՖfTR`͑0h ʙǠڠEZZZZZZ []Ǘ =E ɟE" a"hĥ}uTEFB FuԱ\QUͬl"Ȃi;ڳکkƲC\)_Y -TyZ#\M܂emŬmذ9HM?<+Ӑm, ( ̒ ֋`@n}-_@O`2C @H@BBXY^&0=I *01t{Ť؁M4_^ p Eq@8EF,8D' A_06Sđ$2"!BY`"N'%WȂ!υdRifC \Э)&_$fMqZ"z[:ɀ! ,eNšūSՠخOONS H@'!ǰÇ#Рŋ3Z2͞ďUHIx˝ɲ˗0 ɛU̟@ K$e)q*0R)D,қM=]ׯ`ΤUz ә!. K,HL/Y >h.[g!AH+l0 *Dِd|SWkV31˓ضeXoxKz~n \1 v`AŽ2 Wh#̊|75qx%uP"#y} ƤhR LYE-2vFI XPa0)NoNx"S6⃋Xw9'#fٸ<K$)i2&@*͓ 7D 2aDM "eɑ$IΒtY SB ;X^yYN淥*h)/BB+Mbsr(mv&"+hiObSh$3rөF6*HjꩈL6Hw~If@d$ɤЉ+X Q;>gLIeJ櫼Jk^ky)1*3櫯s"dLnRrM:Izp.F ㆦ&)3T\0=ObN((EbC!6Ay"u- Gz/ZM ŷ PwO3W1 t.5HUU,Oi(M#F-)'W(DލjG\XAz *6ыs'X +N GT k> (Bp 2,.+r8p$Kn ZĠx^G>-_H0 9H+rp9fQz}|(.|[I:1ܣ-Y\Ԇ"-@L$;1zR(|Ƴ60}$g Y,<>Ɖ뤨;1 O+oxUvIrlU\ZƐ1-A Mo,i N3JԦ$ͨPrl%G-ͣR~5IYKVDUEfLbp}%1;Tֲ3f/gj p"<4IfЬ¯M 쾶T='N5\PGkRt uZԓVNYN5)kZR+=B~ҕZ hnKz7gm+MGQ%]תs/YJM s5Ek} Ԛ'Dk[Sl2D\92HX=̴ZцdL ս(NYqKa u[]*T{+ROiikpE?[ cᲓEm+ǧuQTG@"cH:,AWd%0nt [11${BwR*,Q nPg×,.e I>Xސg L(um,,]#};ߔ1կsb/^k|I&6A\C*"'t)'&h D#qD#5AL8BJB19h|1qT qH"В@ e$KºC<(IQ:LaE8LVRvJc*O5$4J`qPD3#)`hDa,9ˎ``PФ?zyb'<Kh_?G^.@ 3%#6a&jЊ&4$$?'Nk%HJ0"z;C FQS'^Lrny4iIEmZS"6f&ANm{4jL:#&Pv3n(D|ʒ:"c*Ӫ"v%6aWNusj3)i`xVŪ5wvCIkGfE5]HAH~ҳ +;}BդχDh1/b7ھҖvmh!{Pᯤ[׾Z׎rE܊_Zb*M$j[,Pq4֧Rw#`WFx,NW^0 %B,']u#gCqOi_Ntx9ɿfڛ`JƸ43>rzd{8#N V{r3ng}H<ы1)}_Ҁe4Q[h{Z|I$^-!Xy[CZ_5筑].lh%CҦsl43O,hDaf-e,~3A=܅#2^9􎹶kg9jnsccסiU:vu-%!}R0ƅM5?"gwh*PJ`~]Q84<9o'p=ixqͩәa1skCuսmLIׁLf=<77jkM"7͌g#.WsOk-*c}!Ɠ"rx6T󚕏Qd~9e/‘}o+DF>'s^x+ A5lu{T_cb;KAD:BaPU|*l~4^v5inqSSucs}zx'xy)B^#b|GU<"B }<؃> @:B8FxHJL؄NPR8TXVxXZ\؅^`b8dHA e/X@nmI 7Y0,*3|Xw ;0 D !V,eH Ç#6|Dŋ3jȱǏ CIɓ(J\!Ŕ0cʜI͛8sɳϟ@ ٲD'N*]ʴӧPJJ՝ )ׯ`ÊdѮbӪ]˶۷p٢H˷߿%{%Z+IË#KLP:q2/ϠCM-ZOCLר+ 겶Y4d Ncoͻ_ΜУK>znכkg:VُvsqI˟Oroy}mfh`qv ]gKWa]Yv6!rvxmv#w,v[駚wMAc8.G`B:FcD9YhAKNbAuMTޕ_!`>4"Iٚ`y&BY6F)g_/&&D={ech ېX(~o{6iD݉jiɱTzYmy+Щnn*&qHW$ ozJCמP^7vܷ+Q,lТVJ*ƺAP&YkT YfjgIkx W5*|oAKp/#L qmr'l-Or8lq뜊l*,Dm ]Tp{'D-3Bl1,ЭZpkZ44fw6;Ya'VppsD[ˈxo@Ah}Rj^+[+[A7|Ϻ$/8ʄ}^Ю,zcIy_ktc|CJ'ePN=BYѮ+>To,۵s t>kVٝM+K'!{C隆:N%luZ`v@T#k2>h[EYN7BQDMXHx'rT7h@!5UxߕLe*yPnLb?ƍ%6;.XjHYQ-1FEzl4ָw>}z3U6 }3@iȐ36KZʻ`'I΅^Dx w>, DuKE1SO*F8.vok.Ƒs=ϬG$?=F;m\Rj.XR{렅<%ᰐ@Z"\MWSր%$HS,NG+"-O5ZE~JSa ԏE`+QgF(d$Mx> ,^L3s{;\z4ڷu*aIOͮsvs&K٫Ӝ%*+N6K0re$XէjX-5p /:XDw Ͷr̯{HS`75~?YTcUFe7 ~;_ gin՘)u¶yNO%gɊįiVPi}hӒ>3HjtIܬ1|՞G&:LFѲyco!2orN1qYOe&* QelȐ ̢gų4[Nm>t1Y޾fumȣgeUX3a" 5ٖIE*Mj[{N Y*hImnKNvMzη~NO;&h t A@pBy G!?]@0x12)`@f^ N#=%P@"v;HCp"@ Jz!",!H$`F0Ȱ24Hŋ3jȱǏ CIɓ(S\ɲ˗0cʜč( 9@ JѣH*]ʴӧ!q Djʵׯ`ÊKI1۷pʝKݻ#!#"9,KÈ+^a8a`Ƙ3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH>;АPeXµ `ruiLu h)'Mh<Ĝ|矀*蠄j衈& X@5VS ^gFi5@Z)zf6dc ~*`f&Jڨ e6@*i5x@k5&8z&6F+VkmQ< h{-0[ H3H3kb1&+3("AD㌾s3 07G,Wl2$" % h,*ŘI&Ь3}(C@-DmH'4rp# Ȃ$$ə $OB,|j)d5H]ueh6n\\@6v\ V 7G.84[Pyk 1 C!A9ꬃf.}.g@3.@b'V7?(oJ)Q#Qzp':/c>qx,ģHȡ}z ^"GPB&&G8K@,IRL$S@R^B$*IOFD%aD<– ?bR<& ABx|KЕ>m }h*FÐ@oLt #1B 2 +Z9Q8Z &T%=&5.<#`9o %ƏSTl %O\?!›E8F1p.[e[R6iJ)YN/|m Aj6Gg۽`_m VձS` 64ZkvaKP5it- /MzD:6M"uK_V{Ao0_HE0a e@M^ݺ6f+OD3B1 +0*RWb8;#D1U̜ },3Q gKβ.{`r(0!$y-WNA9R[Ͼ{OOOϿ8Xx ؀8Xx`r1R57%#`#p5VT7K[UY,@24@68A_)h,@(*PCpO(QX)DPY #`\ZEP2Tipi=0U0=P#0@,0p\n@)@`@`'D@!pJ,= *p,KЄ8XxȘʸ،8Xxؘڸ؍8Xx蘎긎؎8Xx؏9Yy ِ9  N 6N0hi& @xGN@}!P\ Ud P :@x N  5` I ''T.)^`_,G4 V s\az=Q<8P=11@9 79yTbbC%0UqD6`:@)EW`TKE),;0R~X)(9j10@`PE@)8`?Q@v3Qq4c 0 ^P<TM&`"[AAHA`7@)N1_zf^1"H  C;pgy%)) * M-18<>*b^`rIvY@* xI)A*;p]?pn2J*@8 |:I)"I0IPJ(&$|#S)pZ886pCXGX)ɄT=XbӤOJhħ# C0#`Yn{SX $8==p;0 `*&@7Dx;zn{Wbmkh AL 2[؅_cXg>TX<=@ )  i@Ȫbi)^% 0`W\@)m@ r| 5`9 6P>j0a|וZ<0)),thx|!z=Z!} \@WD6p8xX3M}긕dФK)2К뻍y0h&i-KK|Pp-[ @5샯;pb3b1=Zw A{JJA< wCG8s{JP`70@Yw aÆ阐@Ï%nC`0E@) 2P0Dd`;=1L`@X)l `ơ9y؋@KL#$S˾CFp/`4ȧ$0s| c mYћ)9Ǚ Ȋl5,n[)@R`ת0>UXLƟʣLA,Ԝ)R@i{߹:R[Τ;\"?=8@_Cjl)jY) $d(.jP&D#q4 ])QDs*w2&@=4TBCd: څ"6@ə 7Y`<DCkbLIvr)z{}tL݄@ D$vtݫ ]מM)g9ɕRc' Bg]D\<kȵ ;&̀Q!q,ΈKdz䊁 J1 P]!۲=@"0ϑ > \ҔWHR:qѻA[AMم &W@d >hJl?`@0cE1N1N{} 鰽'($أ!cIQ3Q<>Qti:0gzĖ0b'=nBNn>O.NJ>qW CM٥_zbJ{iqœC0jm4ZpDXFŨ[>AkꪰڴzQs"OVڬkxo @io@> em^ؔҲ%(1PɗL?Jk[MkG//$D,e&oK'ȌqJ˴D8Q;ᵈؔ'Q$R@7g[W) "![`MՂ /?osK)*@`>K๠ˇ  X .dC%Nd_1 C,$YI[` :XӦM'-I'Ovttß%4dӑIQBujQͦ<0kW[[Y6ɦe[qΥ[]y_&\aDxD]ZKj.x*N=qM٬Ӕ[]4;f S6FZZ zhj!-6N9sC}tK7t}<"U.X_?W:<}vF,6[;;Na'RrxOy裗~z꫷z-'1ޛZ^kCrpq 8yq&U/s1 }ӟ>V`"8fTAO ^O@$f P-gwfV !c'!f_\frjbtƘ"bW/" ^Pme H5 (a 90 PFb%, @ G\! J [DpɆVHF`B~Ad$7Qު%dQ 2!>YXa'}K1 pɝ@`Fv !!B @@(V$E)cBp$@|p?Y$/ ҹNd  t0eX_7?\LDJv: ,;.VHbW\9Li1h i(`y:Ei&؀0@ dãEfTTY*0BL$ `ޔI@,jgMk %,pb!@_) :0.,VPְf!I*A$X @ .1YO& #hc@@v&X]̶u_IQOh3LF#źf_]TQݍJ[^z;Z ƅUM%RZ-@) KIȄ#`۳hPC <,`Pk@%/Ia cD|oE}Wbd&>E ;>au;d tXyWR|yL.ʅre0YcD:x43}˙<E)Udf%▃7irvNv|hD'Zыft ?05rRIr)oc 'Zx4RC͗ЦmtZv8g'٧3{U]?nׅvJ.UЀ @tcК$$s> k$dFG ~p'|"B@nĀ-@pZ F8XO )Ar 8EȘ` (\lz"9lVJ*mOAFBZ1RvQ<恱{ ^#p?(B\Ul<[$ a @Fy~C`2p$ bϸ 6~0#H0Y)* & x%Emr3.pVv]j'9׶6Y4Eݰ1DhGȠKP7WY o@$t^])^U@_+79N>]cOoIݟ OFoF2/>@,@<@L@\@l@|@@ Xp!W5 Z5Џ;  h;AT4218qC$4$x[`'0A"Ahx&?B* j4{*sR},00<{FD 8q'w'Ð&7=.B؁Xĕnx** 77ET-;%"-Ւ5Z5>,  ʠ$ Г|G HH,HL#(|K4 x+R+HD%rD*0b:몣N_31;#!*XX rDDIT;I)֬`J ,=)N, N"!-Yi~Dƒ<+}pF[jPeP]ʫU1!Ғm. P 1m\ $w, %uˣ=ڰ ^JRytB)1"ȁ08'ɚ "%=1< S(Z*Pѓ} @]TFmTG}THTITJTKT($`?@`;đph,AlɗI-ZSLP/(#Tʪ4S*3$®U2;˼A2ԥKhUd<`%A!D9s̋"́T XPd)fڴMMDq%W-t%mD\;:**pDp4}Щ2mO$Ozt̘ QPK)Qu XbTEMF) hNJQچYqրӰQGc+Y:RY&eڑ]45eS$I/]S< =>5ܰ[5ƭ!,2  CАr+  4 !!,2 !`$(cy:>*/"@"ET !,2 ( hR뜱+@$ DX$ c9! ,4 / 6h0"\,0(nδ@x4' @ 噤Z!, t@5T\ "JHŋ3jȱǏ CIɓ(S\1 cBcaA, Yɳϟ@ JbAd&!78d)JիXj f/HpZhӪ]˶C !ĉ cۿ LD|"0L˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿFրhBNU6 .(2NQv@pC eА@a,:O(4h8,4/mٜ9C|   Ggu4wo.vA*8XB[-^׽Zztu)*5U܄kd-07>-WnݘN} Mê5nEg:hPkӃ/Njgc.gO`0~q.g NFy=9T|ш ḃ/f?|FDY)"03ҽ5PN {=EFduG+PN"< dW g=P'4R s(P!懨Q%DܑEDi(*Ri'VAш]QHF}eK"x3b H ;~6r A rl[XE:a*0UXr$) Kb2 v(RL*WV򕰌,gIZ̥.w^kq Z@`& iLdEpL؄oPH.7zMg2 !,7 + @id"\kVb k ۋo`edX"! ,81I7{Pe XW  k;Fp@ ^£rl:! ,A/j  k jf3  絁! ,!+H*\ȰÇ#JHŋ3jȱǏ CIɓ(Ga/(DI͛8sɳϟ@ *q ,6h!L PJJիXjZCK ĜõٳhӪ]˶۩^70!Ɍx˷߿Ea ?l8 ǐ#KLrHZaG CMӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OO?ڳ<0Θ V I1 `faiPK1 ch #|茅 (438L1ca@)$Qr ,&8SK$PF)TViXf\v`F-`˙81&,pbh1&B&矀@y*PbB6 fJ C"ԲʁPR*g\ Ԣꭸ뮼+k쌲6jP uӞlsVoNu-ז_.4wUn:̭oYlG?:Wgok<3h5./wN;\#N"H|ֿ:0s{- B T$,!0K#LKTQ< P3 çCPj`@%>MP'LQ"xDNDEX^ rQxS*1"Ldb3b߮6BOn|F *xLwwrmqAoˣ"!V,#99wب֑cj 咝*W3KJI8)K ~ D)25@1|!F{[·<]dvd[4Gh.sӫf-m;(QK`sF nn#ܩNX{eМw}^l#BE5*83|# 3g \]O}v^AG :&4 ]C]wΚt=3Mm^b?vsh= *Vd?M鷩:XͪV#ГR2+HTz:Lu2nq gJT>"\î ÓA*W5,T,#ƈ`ƺ'J/lQ W̱MO-R! dӏ2Kh_іiYJBnw pK\@(aq,&s˜OH.r `W$BH7΁"|KW25p lcG3  C hł'nۈ}IeZE1n(nKOCRHgL8αw@L"HN&;PL*[Xβ.{`L2hN6pL:xγ>πMBЈNF;ѐ'MJ[Ҙδ7N{ӠGMRԨNWVհgMZָεw^MbNf;ЎMj[ζn{MrN`;&($w!7Q,DoMP06GIz$OSE )^g rBN8CNq\+/J\:-w@ЇNHOҗ;PԧN[XϺַ{`NhOpNxϻOO<6 I^`AI`w T1A $Ѐ!aȁnXX|#N '`} aFt>H8| ÁtC8- !V]0~Ig\ZEPE70:4;yC=@^P<=\np @`q K`@>@Cw A`7@ *pK|=a!a(jl؆npr8tXvxxz|؇~x"X"x ! 2  (1 uh zp  X؋8XxȘʸ،8Xxؘڸ؍8Xx蘎긎؎p0 N 0r 9r 0)0 Џ&  00r)8  O` ҂ N0 =  O Op I,9x!56B9Du @ ΀ΐ  '! /0f&*p Xom `$ p2t0;PnЄ"2xvZ e2[ Cki[`!=J Y b0$pR`ROp'fm s┩a S6@IEٛ0w; p/ 0zfwY @5ќPV`2`yf V wy$9g4=Z9%|zO!o&[Uwp;ЗYl9w42YQ@ #)0CPW:{w{{7z4#Z {98PWYP|#0|g>u@z1F9TBЄ=P|~  50X|&s$)@ח}}~~},VZ0)8P/P| D8~>[Dcw//@gK8aJ 0$ EXD78ট9(u <8 iYiT*Uy=!p*-CPCPu$P9$h(x +؂}4gs9>(:ا!9|cRT6p8"`WaDHL O_00T{= Wʯ6+=PV7<۳YDx)B :9xSC}DP1p7 yʖRa-@Q;0R7ɹgy C#Ǘ5U{0 Wo|y ;Pđ4 ZW7;0Ix "I~Ipй6 &]( c k![8pj|ǡ7ǣ‹|`3\{ d+6k2˵C0;J|օ= W~R` ==p;0 `kGа+֩R'SpI 7Yp \ʖx|{~~'510Ҥl) y (Lz~rA+t Z b7 r 5``Q? 6}" j0 ګ[)z=JwX3<|27Gڪ{c'[=0.jKC`E0C|s0(׾=`'p0x{|2ދqZ0!&y j"ʀ4h83|~ IP{7,KnjG`}l'L;-7E@~: 'G\~TI! )p a ~W D  07\_|9[{6LzW`{'1<3Kw[EkB2,0%*WOy݉IS)-yh+ԩ[# Q&A'̴2Ggy WݻG400@P`[p;ѼK@ ʖrp;` &@A2&A(fIFy}lRJ[Dd`;=7Lpq L_\6'yy} LIp F@:گ=3=4W7y:Z`ʃWÌC-02ѣҁ90BDK~DT\ 58ֳ-_C=].u}K~&wM0&> )089"3& _u1l1Vn3r3,w2m>5oe> 7&n(3aӬ`~ `C` 8r*iIG32`zIon2}n~0ڡpۛ98KȺ; Q@qJϳa7>EhgTH`}be›cJ=JZJ¾sZѤ# $9qNꥮ3o&S%~q^#bǁ PLħ,`J.\D Z|M\&|ʮ̙S/p_+`[PO/0^Pz|ə>.~N?5g484WcљT\,9?@~aP^c[R3T?' 4@LຆO爆r >`#/ w>0&{>| U/z` `X1.hy׸~Ir'c&op~S#xn#s^|8{ag#{7q-[,=_n{; F@D-^ D00%MDRJ-INte)mV2M5a:y'ASRM>UTUB)jUe͞:+ āh`d $BћIc>Ydʕ-_Ɯy.OHq#I5FM/rUp2$칫@ qC˅E6Iab v9@oN^ܵsϮ1BG^&d@(IM?0qq,.ۏ0`^.!A!F$騃'@лD' ʼ:1FgFo1GwG2H!$:Xi krI)m"2K-K/3L1$L3)פE&d3N;N-!Ƞȷa ,j"7dB<L :8"@ (%  SO2Ӕ3U8'\5U)դTYT`¡&Pb [ (p"L ք+P r&pD`pn Y!R6(!@Vd@,j]&+ 0 A" v! bxa`f,)8RHx7&3IWfJ:֢-.& xD(lD)0H P h ~Ȁ Q(|n0.waXb"-s?ؠh`."O3Ш^gM Myyx?K>R)@!LtX' |[ ` "CH(oqH8pA h`P\ u.[ !'@`k˞ UBЅ/a e8CGY# uCЇ?b8D"E!:`$ 9h? RW; [ xRӟpP`[:m*t7A a!NZ z` āi$ \X, AVz.qѩ¬t rDe*y$Jn,Le.ˁ r, -o`$ ,1 'zKPUfKVӚ7]V ;@ (NIo|CB P9y@(;TL 8-pd %/[gD%ڡ Cm,-` + Ȥ @AƠ<i S Hq+M O7hZuʤJ"B@ D@b`;8p@ $ʴ 52D_d>X?Z_$ ElbX6ֱDg;YVֲlf5nv`N"*\M h) Ԡ7hEZPQ̝t۫Qmr\6uֳcG_'_ZL!$`'TDЭ 8UtGXXpH%^Y*KA]$ d,&97e5sG}7\jL$d%"LT0,@D"RjY魇D$U'"LldЁ0d&37LpNu"R\l y)V'0dqS*[1_FHildD3 &N Op`]g#ޚVaf&8iJMP~ `V~4HtAgP>:N: Ї.)``MFvEIT[,%r_  Ϩ`Dm+ጠzvU AHBkr_~#wq=BUm Zl8n`p7x%>qWx) 㫸]x$@Ly"Lq9{d&QAYILP#IC p` ABl- @]wO#_J__rk=}Jn/} R ~옑0 EcD{*A7 ev)M9P%yv/eB+/ZF h%S$җ =4~^2oe T`l79  SB@։W }lpw_CaC}Gտ~ԧv\5)\S"&"=+9c@%(B[>/H:r-J""Ȃ;H&3: <Ђ?ZA&q :;.<#eA@98P0B[.pL-(/3 @>0 (6l&B{h /A| (W :KH")9@&؃A򩨋ꁁ[ T xsky \ N Z /D ?Ut?D?xjklmnoGǢ9+?ѿT0.争C1!?Lʭꭳ hٔNp+)8SA ,@!c0[%`)E^ _o|ٲA  <""F0FP>~awx;젉 rPp5! , oP׀    k Fctʥ Ӥ۝ H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\YH.=Œq&M6ob̩"Ϟyj@(Q6?! ,q&j  g : *6*E! ߅ށ! ,| s  @@ $ac % \Xc iJj'Q" hF6 #4*ECEi7@<F0=K4T! ,{ g?  %$e 5B<<H<$)H2d7=WφZ( X869$7!6! ,x T    < Y Q*$)8vd;=*Tˋ 'H ! ,t [ K: >     _'5&=*è 5<ЅC7=!,t =    E 89 C!+,iH*\ȰÇ#JHŋ3jȱǏ +>rQȎ#I\ɲ˗0cʜI͛8sɳϟ@kqڂ,d&2%N ,)SBGs2,1+fnpAl5#n6L9CvnЬQ3cAgІf-A3z~D"-iQ4M4;j+v4xU3ՄV5Y{Jֶ6r[kTz5a?ؠFM7{yv m U6xm?EކN}qENtuV yEw1ǐ#KLy&wQϠCMӨS^ͺװc˞M۸sͻ  Ó+_μ9UٲI༺سoVMËӫ_>v"\ ޾ Z(h& 6F(Vho<+v̙ <([-j0x 8c&D3&(DUb1L6PF)TViXf\.h˗` ,Բ~]r1̙hi/*- %!%bZ"F1` % gJ &bB-@A'꫰*무j뭸뮼̯*찰)&kZ3rF4#, KP ⦫+k,l' 7 @ wp!'_G2!AS,u~,R,B.Or@N%keXE21 aF LThB@D2^aUBн cآ]T1z7BF"Fl:ř4 gB{Lzp @ :a #C(`g ޏ!HُaHBwL: Dt 0Nē! `.{`,/&؆125iކ pAΪ1уLπ. >gw +3m\.E[:2pJ_ӠGMRԨNWVհgMZָεw^MbNf;ЎMj[ζn{MrNvMzη~NO;'N[ϸ7{ GN(OW0gN8Ϲwk |^V, 8LGL@S'DOg`NhOp~"9a 5~7p;w;dO{_G(7PG2zX^ N|RPB_do>ϽwOO;ЏO[Ͼ{OOOϿ8XxI#/ l`)`/`Ag"MC577 Q00wP )0t &pQЀWgb%`4FHЀ9 7I/UKgRY/ ф#@T HL x'@)``FQ}W4WgAr ],d:E0'8ЀgZ`B`'C6Ph?Is aK@',Fv PPip8^*:4;pC=(JPC`E0C`(#P,P=<F6pg&>@C56p48p4p2АZ= *#K9 *3_;}@B9DYFyHJLٔNPR9TYVyXZ\ٕ^`b9dYfyhjlٖnpr9tYvyxz|ٗ~9Yy٘9Yyqpp7 H 9N@gN:I  NO1Yaz Np "79 A7{ΩϒRO9鉰 `gu4G.bˠ /t舿 &c /!Gΐ  ֩/;0R{P ΐ Ƞ(/?Z!{  աҒ"2:4 11GPpƃH'bx2?C`0OAa'餩Ȟ:=*r aPR0O`UVڦzarz';Es1;z ؀tf-@6ȁ Q45%{%u3'/0U=hC0XGK؄OQ8*Arj[p,XRnx&7@w}82_)KڤW2gl:sYL/)Hh)"(T:E.XZp0(h戎Ȏ 9 \X㰷Ds& Zjcʐ0"KXّzJp[t~DÓJ`*(7(5V1[V  tB4=LptRw(*#8@ PQ:b؄T76"IQ \ [Xmi\;}ӶtLLjI4Vp@7b=J%!P/m6!k+I# &@0[9,zJ uf(5956f p`J][ Ļ^ ʺKmV';p8557;p&0=!7@0>@!=&p`{$L+C? eՐu5!u-j{'A!iJ!p*˱]`':B3Scw h_@4 ˳5w{g4*8k@=PlWJ a ,+Zȅ$ѵJVX0d8R?b 2&` :m`[йiL ;P'C&DdV@ LIpHH V+WIg$05|00ȓHTaApH1 [`d< AOcԔlC\F0 N1v8Λգ4 E5`8Pj M`4HBj,w}z%ѭ+XI\8y*,,Wd Y̗1%'XG؂-%u1I|=pn]g002;4Dz2}Ɍ1N_-)!C? F-ėyk4j.^j첕EÔM,700Gϼ@@tb(Q #̀rʤL,5EC =%H':*g+Վ#0gGH#է49Lc F@opZ`S:W $ÈmjYa$DpM ߏƈr 7 ]M"zH4]"$P90MO5Rn4uN50ghe$> ;C[_0/zʐu;iy[_4Q~4c/c:)S՗_j<=`;\0PV}#t9&`p|)cǃc '@&;/Tڀ`4CIߍ ,λlqͤ8 pNr. rC .d0!InP|\B@ %`$@ 8c6ab5^qOA%ZQI.ezJQNG[vqWa$[Yh8I)dΥ[]y Q!v@#6lb $-.1 A ,2f|e{ڹjF&^qɕ/gy!U0 Q`b ΋8B 9`zC j oI*Y(p x> NbϽ؜SP68bPH0;å DK4ē`E"~X1dA*@Ha†(رGVTqL̰!'-hࠇ!LE0+$ "0M8eѡ8N<@ O@tPB 5PDUtQF-1tRJ+RL3tSN;SPCU9Fw @!2@B(3Cu6(:_JURZY@PRbŴ jM4p$P 6 3l>| a1hŊ -քH6_ 6PN{[RZ)b8zh%$6:}O6x/]y,:`[t7MR˙4tyP䙙J٧g7j:= +Lb#"a"dFA8|> :8T4 ['o2Aa8 4J`w DXurGpTdY9SuT(vkvs}w9ރ~x7xW>jׁ_wUA8"! !0ru@b`H"z  5#F I :+\ayt #\eP  p[ħ\9"0`Qp 8(~@0TKa}!9J$!xJPf1z L>!b`,GfɀD م.#F#F@A؆ ILZ^-!C ! ~JBXORFmq!s$&!d- 7AA2A0{e`@=8[Bܰ6F( k ,%X8U&EȁˋXӖU֙5)(l9'qm d09L_δDP~ lpQG ¹x b&Iv#= @RT+eiK]RT3iMmzS*Swx8A t= O] РTG8Ee9tSUB-8I *' 'P @CBeP{e5̙@P},ѹҵyF JVȒh+]qb8GUv`7}r2eUH5uX-9ylȢB-oDҕT s&iiYp'*Q\m0-M1Lk[FC1Yp ,F76SoVWBj e o6@ thY's*%,,y=aUP%FX3qm|cX;q}Ȯ}?r\ A T2UA j5!V=jK&VCVYHNâ8 8M00 2P]msg$Tf |P6IZbP`Qka#Y[ 9`hP{he<-5sJkvkYN ld2l &l!JfkeD$b`34d&d(vz2 23oh@@IkgZ1삻` -"r\I@MIZ,8t,sZwō 0ܾs gmmA`(9 潃.H'Dnۥ#{/}P @] ` G6^! p\PZh(`E9 H"att27K],Z 3a`3E0..01ڰ (g|xG^|-eġh??PFE z:`C(kn 4h.tk ԭ+ ȁn0AS`F-pc4C xdm(H1i%0AyNH@@'3a9ʳH;£J:?̛{:$sC2*0 ؿK|K#싥Yz#%Yb.A?"  踏39k(XC Q%<ʫ렁rL0  ;cCG:ʹc2; ;.1)K/.[Fԯ3Ģ@72AJ\!!,**VH *Đ@‡#JHŋ3jȱG4(dɓ(S\ɲ%GrI͛8s@$@ J# ,ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ dž w^̸ yL2I8惂a AaJ|vL'Ec:TM۸s{$Jl@EDqs 3 0 ư0b 01  36193"` al H_`Eub4hۆv n0bհFkp zlXV6`F z |vB X1 u|Gwc0, 3 p ibi!mxn`Hԡm`b٧z zz0h<8(A` !C{֘9 ę*arn_9vBuȶ|ACjʢtG3Xq k`F)qGL姡C juy' bȰƾn¹ёyħWlm#i2lPjg|jz^A`x_iB wq281Da3Q3fzEo@Fwuj6 bt[sdߝ"Qё6$.G|߀pR$E'n MTD .褗n騧  EQ, $L [ܰ ' DGt/pEJt  2pCIUO2\8J !<d  " Wp<@ Y -hz&` ؂` <.JA( )8A@D)T tC qG9@ &|d`$&x&:PJǣ@й 7hC:І" ^`!b3|!jD!gH@t+`@%.0$' tJ"-v?@H"8t|"i<{ i8 (A $)S e;B; о=Jpƅlz EMdtehzh0LgJӚ8ͩNwӞ@ K g-NBw M7@ t;|;^׼Eozջ^!|O)_ONuG?!. T(P8- 8P @J 9p%N= ;8Ѓ(a -3ȁ+xvŬ QB v\p$z(0saAL @ !H4M)V1#b[4kl^αweiq6@j&)]D@l@3[ʖ$FQ{]/+KZ㾯 IP`2MOh$翧)|!s-0>|{s#1@'?;έ7&m~adtB-ЀҖ<ҚY-NhOJTYÍy΁ !<[P-Rڮ8+ҏXи>"%`%G(g8#P|t|4ߗmÅ]ՍRH84LJ\C~0`tε<pu~ј8V9 d9j=`(^KY浐m8qs OrJً;rcp1wqhtp#G qtP$wc;p 7=I^tP<6@Tt(8YgGJb(S#8vtd`RSrc8D:dnpr9tvQ*h`DIs?zɗtw=9#<'tLj8Fo`tWeh8$0;0@ph8i]gVғ"]h9qxN ):iP8fr8&pQ g|<Ĉ3?sdz=|U?vU˩8G?p408`@؋CPRlӎ0`@PIvE\89"DBX>pwEp_;l7p% ʠxXȤ㜊3][ڥ`Z99 9d[/q(DjxvWH!ʀoF0@8VA rmT "7nJn@F`^W$Evpr)^P< iKr;J<`* e#Bdp救GET`{GAGy&7dЫtR` &|Pħ;0uuMil2&JLN9ACy;=bA`7NũC 90::NY fJ3Ja]I4g=`Nٱ5lQ+cs4>XHc聳iwu:! ,r Bg1D! `XXP<`E(0O/R 4!,**VH #JHŋ3jȱǏ0rp!ȓ(S\ɲK4X͛8sDɨA; J(HF0ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ wÈ+^ǐ#? _~|qbɄqNL %c$>c۸s=Æap qI 0WIP# %8|Nx(K Oy@Z+쀉Z@ pP RPAp'D) I@»&OhE P @|p 0)T`͉V;G 09H';0R& =$HLP`@E1 \*AJW&R Bd:-T J P4`%ah @P=,Ke!? t!kDa h Fzd)KhS6oYV@e$b[&׷u\YD-܀am @A~׉QpІVBPk v^`S=0}'v$Xh6#` pN$(B0< Ԫ 43o[K@0v `0@(HACɠ` l@LATQ0 ! id\Q@lp | Jg>qd5LOAI.4 O&lbvPFy|P- C.2g8m *`-»8P\*j]t{+RԨNWVհgMZţǥzR#@k?A (5 yDqEh >MT%-xK+ﲗ 旋yd.fv"5MmrN)mZXP6Qm q3T'xγ@ŧ>I ~Γ J`kSrUяMYRʔivSUMQ20@̜01թVYjWֱ(hF:ָ 9 :: T>6,fюK8hI ӢQdQ_vd@k$Jp^ p]Q;\} %{v]Wpӻ^ S֤u7 ' v0h+lI#oL;b'&^Bvc2 Fv|'Gwe-snb~LNfjlfD;J20e)gsVpuVIg|pJg"h'@h`hoviV4fk[Dj8<؃>@B8DXFxtsk'@\qED̆H\H(P?nm^DJKVKNTnKK$L`nLDH6pnKdp9Ha7Nd~dqm0OOԀWEr$v$DR"%uR*Q,R15S5uS2GsH|9DHRuZrWURUMtREUȋRU\GV%XVj׌^`tWyZjxv^rD{ZUZD7zByyZg$KZv}y\V]Fԕ%6`W^^^_D7w{_|67g`aGa`wy+} F~%~)F^:b E3VcP%~G~EF7LdPigRIe[efDuDWvg/^uxL$gtfgP} hc'xh=h7,HAEv6a5i7i:F99YyulDQxwTtY[6ΆFP$>1E@pm`LL4fMtK dž[)aXOon0{Ȉ O-d[ q(ZrtNmpZ9LPlL4'g)'"u-Ŋ|3SsL.Ix^׌ @Q@wuUg gtHRؠzuh%lESP/SBpe'XVpw{@MZ ّwwt'Eyw\yYH|7yw=^gy y zu]:(+DG]bDgq7b>ڒ `#y^%o|`>z!bt |%F~3y}a7i: ~$~> 7 .c+0~>~ɔdNɁ7hc7DxȖH78@٫G+(Z'bj)xցfy{&[[D 0iƚP暮꺮ڮcFV|LTfJ5uq-e'LPMuQЅTYdynnnJthNEpypnȤLLd7sgpxN /U.Zh?0[CS""'&W$Sן.*QK0lXUZۊ0LTtXU V"u%ZըWT8a;Pn@I`Hf\f75Ld☣sX=YU@BXSN<\>jGwQԷi[ƥL*_\'cW\`TFoF[LH`צ]1{9`^ay{*|$ mk[b{h˧8^D!+a6aʩb C``SRTMyڔO:eI)ڕo9gj+f.aqɁtIxi(ؗ*v8i\eDD'@*EYE3|*8:<>[R;pIFJSTXA @Vm@LY?f=s&g(SGsLd?EP3{aRP1hD o q< Ųƞq1 tOdAp>*)q`C`0D2 %$!x5h g& 6F(Vhfv&<#b ⊦ R0&D3+ C#l)YJ)0x|矀*蠄j衈&*ؒF'yP"饘iB0h駠2*lꩨn(*T꫰^h2j뭸뮼+k&6F+Vkfv+k.\C L .[ Мk 1 4H01lA,/.G,L@ 4+ BqqKw2 0ƈL0+l83{. @mL7CG QXg4?5ul9C[褗n:u,tꘟ~zO.K=vGvSuDSٵw{Ч{C5Ce7/?nz觏~O譻y5sCdt =$6e?) ZPw{#ǖGmxL H14Z'IJ`'F*~T(,Z Ctt FV:Ж4`gJf}8Q^u<,+RLͰ/e @g=6J6D9 0y6 Mu%Ii2qYL,Bs^)']suȁp)F{%@WIk࠘Ls,3ŕ4\]@1Ћth `&8H4,(4ы~t(MABίxi Rzt"Hۉ?$}QֲͧNJlbXjEέ^)SֶFFTZis"ɨu+4k<\ HE-,Yh;`bj5[⇫lgKͭnwpIrsH|Xt\B ͮr -h jLEhMz|5 jl[6!72481F1hlf \@F$P4& vs6i0gL8αw@L"HN&;PL*[Xβ.{`L2hN64 xs9Oy g8`ϽrB/0 P xw@ B4\Q6ҷN/LP^@B@\l|ձ` a+0f;لc Ӧvylovcq7]cf!*ӻ3Fo}NO;'N[ϸ7{ GN(OW0gN8Ϲw@ЇNHOҗ;}iOxBFuT}!vHUs_$K?u:Wե' {&wk{G.?r d jbx OxO>"G.U{GOқOWֻgOϽwOO;ЏO[Ͼ{OO篲tGjpqZ` >P4}A p0QE14@CH0"pK h C`00,d@:E0'8'@`FQ=P>p.AFp/`#`\ZEPRipS$C6Pԁ]0T;[,P=<F8$P9l(JyR0ЃA8H@=88`Dd?k?P4A`7H 3_8XxȘʸ،8Xxؘڸ؍8Xx蘎긎؎8Xx؏9Yy ِ9Yyy O p4 x֑a !  U4 .Y43IQ0:= f4, @yAQGfiRi x ǔ Еhjh G p ΰ ɀ€4{o6X`zaG p p ° O % W-JєEe8Pz& @F ɰ F` %" -2 bX4P/`` GS ư ixC}i%-=J F]p' Y ؀R }ٙBq4cG @& PFQb ` iY  ڝ҃Iv0{y4l,ڢ.7 G`/&8NyQ91HB:a>zIQ#`#Z9@Q59G&@}h,wiڦufzo43Z7y=a50tX᧹#plJsأ?x(FQȁo"Hq)-Y4Eꤓ185x9;؃?o3ExIMQx\ZsXVZȅ^bdhojosXw)CaX{؇XoHš!u:s^`Jbd*X݄6؊x!Jw}8:رn9Z4)'۲E,kYAP`&$hC`1p5{lol`zI %#`|J66G4 @{zk#T a imkrs r2[x!VP)0C[lcWԡ,'@w"$' >6 M _Q@Y[@ %xjc@gJ۸#Z%6+ȫ 7;0Y& K`0 $p&нkf_)q;k[6Mp@zD@1# &4&qp=Aywh8<@6@zKI`Jk<0,4666'KLIp F@:pI,k;[I@5,/JYLő 1H-vfLXJ2Mȴ7кSgcX(;0R0eL/3̭mjɘmo#N)M`4]pʩ\f_9%0#'0@Y˳6= MJ4P^`v܄,7(CPCpjZAY0ЮH#l4 k\ϙ܆64<&FЄ5p$ 02[j6q5VpJ1&BH6(X6H {<0T@Oz@nD%(2а{6N-- Cp6GnDp^ `-7'nؽ0@2 tYa46Zd4}y1e67ZXC_c ؜m46 M6yeؑԱqpZf4Pk6m\429zV}ګ]4mͨӽݨNr0(*+W@g0@P`|;: QX۷+J;Pn2H1 5gDd`;=5q: otgݕu֭ٗZu2~Ϛ4-Wp =/@5mlr;;])~r+ = C@'e.@!j1nj3x 55َu7e] ;> ;pe=Z[_0#jQP=ݢmyX ȝ47~41lS 6,ټ!-E>}4M6mmw=;@MK6= 1$q*5íNq*_}nrN {;p88ļH+?<"Eyi"ϣ6`ҟMa& 7Y@L 7Vp0!=*>P$ȹ!=:w %1!oOlOON~f;+02*`]L757M=``[μ%!pPw<)]6 pkMI"00`=7!@w p[,=`gBA(;M5ڱqC4@Lξq.>7_=4g O[p aL6( 6ږ!q^?4R 2P 8<Qć4Ѐ1Ï"~$A ",bF2L AQ&D5męSN=}TНQxHTRMeU^ŚUV]~VXer1{te܈=@H1=8qb&%q#@8@KdM"ZY֔S7M։ȥM8Erh֭]4K&}mA"_"j7:nfj̱8{{_ݓ% |G?}g}Ì>7)^h}JMbAVg@ZB|0K޹ppɪ0 PDPLHq>$"FR¤rIhdj9 O4 F-@8E.[C\hN`(0 栟%0) .PpN`:>DcW( ,<=4Hf#耊",Ls% &4B:0d1C#JP#@<}X9ɐS p&6d2) PN5b0"Jyld)as}'@q\0`0njAН` @2cA q{ lpt. HɈw>H `#HG<:`$ f0[Ҍ@u'~A."FeP@ ֶp6!2xoFvlf7φv=mj?iJ]ӘyȨJ' &!(T@ATl@bZZBRKފ6 m'V"v7T\C8"soog 2^1C1HB^z{Oz8"F:hzw篑W9{8"Uڝ 10 * `yA8+{e{|A.uA,~^ݘ+?]ݍuELRT>ۑ'j:y*!+h9t*y^tA|dvշ}e?{}U#p;Uqsz tEGOK\A 'I )38l% )YOBMF%oɉSu\"ս.=3@:0ި& R3:K:ؿb[H ;x.;.?!3?;|(;)ةPX<˫x4ͳ-'D=.4! , E di̩а:(olwΆ Ba}?@@O=H@ &&`;d;`.8t`P3@=%-\P!2K2{;к(TN 0/|aI F#(N_Nv[^h@9)(_AL Y8~OsE NL?23!&>@45[RA^ H0LgJӚ#fFH+^&Enr$(9 ;"4n )JSh)Qǻ̹dP +<0T_UZ*0AA8z-8Y?$#aܴpR-#HP` ^pT.s}FTP@(HAը Or`$ Z܀B Ֆ6`h05tKZ5   %gYx5| C\knvs"lA;Xsm/]p`r}M2j`5`K76 ",a @ pw1$Eш8ł6bi\cw$8 ;ELgPF:kj39bf*W-*H`} ï7^3vRB`ɠi > H`Xs^HzӠGMRԨNWVհgMZָεi pIUi2D, 05PA Td+ y86 dp@(U@ jmRηgՑ|5A 4s)c  :X A ANt޷G~j╗{IpۑpF ,#]P#φqR$Ї^jzצiLҕo^o.maM Q$'Np-lekB@%=hpcSZ2`J}\ֽ@:ƛ e.GFG[ϼ7{GO򴭭mocҳXP̘ɲ01 "H4;c1)@7qӓTPC&@I"<1# $I4qgG%K9?@QwSQ\4cn7fEXbse5hYQ-`T5Pi0cSrSCq D] 4jRAȁPFXZtJGDJd&χs8R@6E@<+؂K*Z00w75$JOGV`TO6F[֔TgDz}:#~_}nOG :K~~hC8z[`DC1dPx6R8Xx蘎j?(kuyÄ\RgSy4H^^OP6 Pi%1`g VE9$0̇=_vG9Q5U;"I`q f7VX 7W8GE9w~@>6 a QU:TU&`f`8n#q'b(8bUY|#@PIC* c<8lu;= Qu_PȆ@p)W>g)?SDd𖁅b,$%qp=_A V 2Sbb'/(c!'dLօ_xɚ76 GDLo^8cR9:XEiFv9pdHzfEG`9APYexhbY* fW@rƢf> (1qǨgFi<4MIPԣf[4)vbBCaD&J)9\TMMMvn3٥:[̨':Yj:GJh:9x^i=@ MD~ε'e'yq(#ik!,s & bАrm+@$ DV$!,r & d ()";+?-/, O8P+tB!,*OWH*\ȰÇ#JHŋ3l@@Ǐ CIIx:˗.p͛8sI"@_@ ΣH*]ZQ,JӫXjڳARR%JaٳhzLpmb ݻx/E ܿ LÈ+^̸cK x̹ϠCMh\^ͺװc˞M۸sͻ Nȓ+_μon _~|qb‡' 7^iPdLϿ(#ta;pt'^t uGft]zmGA| myVkG ",Xa V``,yс 0&F"9`)6Ȇ/XFz.Atxz"|Af4-MpG6⸁ C`p0 ulc(lFk" Ƨ 歸KH Pw ;gxqV(,ئw{!!^0 xxwcxz* F4;p@F|lw;ExI  *Ҁ!ƒA .j4X+ zX!BA;뙁fķ7(|nR1T^׾ `KMbۘnw]b~1P -'>}l^~_L@pyMuIGSԆ6V@@BmIP:1.lYlCP@"D%$NhE#fl؁;j&nG)JHR>A"MJZ'QgVJ}v @Tf>( 6ys>g:Ɂv%=J17u  D$oRtį ڒ CrfYZ!P6Nu4{aaP*0ɂ v4O'W[\(%@F\gҘδ7N{9B)ܡx=P۔h0 SGfzdmA-!!Av,% ^o AV t%AOPuaaڼ~ tЁ 4Ac$"˄6 &AN0H wa3aK-l(/Xh^)M`A `إSlp)&%;xb+v+FgqCj~%5` g׭xy 'v0t Pe?>8%0(@Jj3AVjWAak`p[>jmHaJ{GOқcu5, GأѸFp;(E$;Tov !;xv}/7`}/% ̍ 'AT[=H`!1KW AFpTsFg75yX'tWIMJ[F`DJ#X1vE&L/)aAs2B4xrs[t 4̶m(ԏ>@FVHVXYApG_"?UHCLt7^QWPLW:B HR>pDd ypՔqp l^opUiSpL q\$p!7Y/s!FI 7/a?0 vI8I8`?C)aA!"K{Mtst+8s=0Jtsr)gN+:׋L4ps>uuMVQu0\n@FcLWd2)J0QhFg$7F4gRH:AtYyo[9cRPbhui[pcvSVKVW+02vXax'hU90D(w2t?f+6p09`r}84:xy Atx;Ph'O/w{gSZUWOG1xۤx*WDAAgxXZ\ڥ^WYAGYDP1L,f`"R=>x~>ZZ??}HF)=s Am.U\Voe]=Ē]]MDQ4EUtE5_d^_74_1 e2p0qzbű.VIP'J-`dJ=f LWLesjCZ0.&NPPWwG=ZOOc*dDfdZ`ICε *RWfgwjS<)TCEg4wV.g|6Ƣ.[V୬!ic*{(;!,)Pe`!dih'p,ϨxZ k 4%`\XZHxLrz|~/^yz{ yb!!,+H*\ȰÇ#JHŋ3jȱǏ CIɓ(Se 0cʜI͛8sɳϟ@aHУH*]ʴӧPJ=aSjʵׯ`ÊK cӪ]˶۷p4EO˷߿ 1Y4̸ǐ#KL˘3k̹ϠCMӨS^ͺסɶVjrͻw`"wDuμ'z𐍶mܺkν{o<Vۚrӫ_Ci}ъ.jK,.褗nCr̋r̪3n;/ü\\Ҋ/cJDߊgx ~zxNM];D\#=ObB,& &m}烊CM} Z0G˝7ȿqPq ր'Bi0@DV J0!7g%pЅD!uAN0x%Gd@4 7*MV4,rрE`Glˑ9UG$%i-x_̣GŹ|<"$KP"(#(FN8%*#k^&usM.,ӪI$2>Z(Z#z;W 0EG;SL275LϏTxf憕ܡo7Qn+8Fi/-Mlf3۴]7i-'qt1!ND ^Et$ a%Mp ȧFDtH) HHOp=Sn'})֢^pL{ IH0R 1T7*5n,=\RFӚڎRm7ծ*J+(6 !D֘ y+jUT ׾54S1i> uT& TU5b` gd YF"l!󯰍Q2 ["nI X-$KCxEmW#Ǎ! Pqz xKEX! F$ yE(* N4 C0BnD{Z[88= PGI,"H{! b0gL1ahLb]h1<lc=4ڠɒ11iXPrd @ Py^>&XLL`4@e3`fY򕳞>πMBЈNF;ѐ'MJ[Ҙδ7N{ӠGMRԨNWVհgMZh̶>us-j!puw`+ xl@gCCvw m PVVʝsK=@; /w鐇"SPKIBO;ЏO[Ͼ{OOOϿ8Xx ؀8Xx؁ "8$X&x(*,؂.0284X6x8:<؃>@B8DXFxHJL؄NPR8TXVxXZ\؅^`b8dXfxhjl؆npr8tXvxxz|؇~q p  p e[w@ B57PVu(#p5@)`H5| @[ p ? @\/UQ@%VX`QX#@T} %3  VR ɐ$( "ߒWcI@(*PCpA{ 2Ð [p' @ .p Ih\ZEPEȒg 2O v#Z'/Zpq xj) 610@`PE8`?/7(i ]:  ^P<2Cju<A4 ᝆڧA>@C?A`7HbA2CD3_DⰧʰ['w:J^ZZz-maX*@5Q!@5q1ZJ3[c1\6;k>Kjy;^l 9|z40@P`z;I58- Zq+M |꧹Zx5l:#Ypzۧ%Ǘ;Pn 2P5 @Q@&@m`UsA*@MADʩ W5;P)pۭ8g{ŗj4+$jw$ЯP+aKp $˦ M1*A5;Ipc$9J7 F0 C@'ЦOcK`[9CpAE'J(A-|ٺ5Ӛ|61+ڴ[3cĥj5A 8`;\"[484_C!\cXRLž2Dr mY3陶pSw<E6H\E k++çU ;4 5{ϑȖVӴJ|ɣ5+ʊbjCP / \,* !0"EòʬʭD KC0%Wo7 ol"IPQ *!R\2"`bK!kv$BpTB]cg Y=J%0!P/p!=%/02lEӼL4(-3,< G`]5956 QF7*!(HMFͽkҮ'@+02*P^S/p_p&0!7@0>qmn "L !;5BC#͗LLR]2=L"00`5!`= pN[B9I b=ĎG0M5 Ϭάȑ/4@L t6/1|əN3-LڍXI\4=޻G ܐ2IG-8&`pD聥9R XCkMq ݽɺAnZ0tQ ZSJ=I C@ P/P I;ck.n1 oT#KJAHJ&2&并R,!@iZ!7*R)j&!SR`'C&`Ap>@ҽ֍;LJAnq߼F@:34Ҝ28 ;0R=Z6@0-9ê뼞m"P6 ʱNёz ӻ[ÄҮ&%;^k,0^QcG@<@)6,Vyo }~?P MA-˲!3!/ʬ)< øo& <A f=ʑN^Sኝ8ı-(ٳ5(p#G QݫLmz@/58oAKkB\5D (?w Z- (KζKP~8p) !X" QppPE5nG!E$YI)UdK1eс*LbF %Z` 2LA  !(dND*zdmGGdp Ry$\"2)xAÊ* .F@FNgt\iԩUE,xA54g42 TV ]~QFଦ^"] &kFK&>A&.cx{Pa -B@!`ta%7F 0ja&J.N3LEH(".a*X FԊaf1h` J` P>.X(G,M{≢K0,P$!_gP` %x`)|fŁl xaOapClMR9شaXc2haS1 4;0ZSP&=R$d! yHD&%"HHFRd%-yILud'3r# ZИfz @ D hxA"le {R-r 'St*D z"g?;%Df(>HVM7hx%i 3 (FeTPQ&1,]r` Pd @+$H` \jrOY eʟ _mǯCB HS@@{ T0H&Kyӆ]GI?탟UAR JbCHqEJ"e IUK&"h ZZ=(Ёt$ԭUz\f FQ' F#T%2Wm:0S&iJ E<][c>65RjP#4UO(^Weo{^Wo}{_*5◽IDIJaPK@(/h)P(Ԗ)2_p$ sao F XD3M{)AN-Jwl~ afi Ҵ%M8-[Qd !@eeQ."Р2 F:@NvdLn.Di)9&1%TbQShOk@*$ ; ? bPW}{)|LZۂ!01Jt@ xA*$XJa(a Z/!U$_QmͺH}b)fw~ھxvI$( $pp>``A0ʘ>yg]CG*0D RP''`)JDI ALQ})AH@A tPWpCʁ _^);$`EFLXNCƩL@F @DI`4@`=h) k·2 LabJX( vJِ ? AmQ QL02 ċЅ :9`qU5C[tD4)5 GL ch <#1K,=t?loi,@R5@ 9Y+TF D=5E<(+у nwTlT@B a+ 3?pAB!`E Gø2KuYu y<< 0L)@ ;Da ^K9P_|1D@ړtEQ 7Pd"Pw5jdDذ QP4tAI0 y~(jAàg?30 * Z̠7z ie9B2:"Q(@PaH` JP3p7(HCj@$%1I8d%,yO)]RȤB a,ܰ#i8 “TD@ P1¡G%0IJ +i ըJꑰl ePYr֙zB MA @qL:-mq[HunSuC 'PdI0 08YO0EnbR7tc!Jͩ,Y,sYb62je[f6Y* C:Mvi@s@@1is}֓ rSڔ7mlnudѿ)%p+\G8 1 *qC*w9qs[݇|3`OvHC Rɱ}b꧄QGYz@A>]D;r'DgCEMjWֺ&!K(Hl)ɈJ tR*2`$ #$9)C-sGD p ^ተ'jyim.L/Uu[n6)@;ऒ'p7nxP-R% m:AaW(HAT;ZA0MxP{iUL8α$[J6me[ͅ!<gM&It@RwQvԣ' )*D#\,jqJUrG6zЕ. [\*x>h @8M]V>jPH t!`uR6#QTeMժ. *fjVUvPrڥ=-U!b2M"D *-0y3:V pj6w4UMafN s/<2#>nuۡCC@1 p(CP(9{5$/n} (t] }׾ѭ%(ִѯaM %]k~9OJ7z|۸JiTSVw7g1*SAPc3q ,s~.tLӡ`20IdZٸu+Xc֎lJV)wkkOKضiǬc= >v)E}s; >le_A<2Zne;GOқeQ0(CZ2y1 X_XL`҈.Rf?J.1 hMd'F1Ez4 <^)*x }ꛌ̆i5N8P}lբll6lvLBmt~Qq2Rn $`*TwnMSNV2H.O5s3Bp&[4 %[rW\,CoF2.HiQT7 FkzW6^$`H'TKWTtI:TB3C` +R,=xgYvmuf*x%bw?@]EyE/R\$D'@*z QA8Xx$VXsY6DBT/=E>ϧ.;}'2E;hHly\8dQaAp>*=;F0a舀LX+n"8- _FJQL5)ݸ$HJ,%SV$C!ւ6*;@UR@P/Џ]R֑EQ*AQB^AA@@@ %O8:tm$ v9;gEytgP.SUUWE(>p#G=z_xfP"US!i rGՖ[I>Vy'Y2%@Jp=l3yQ! ,**VH *Đ@‡#JHŋ3jȱG4(dɓ(S\ɲ%GrI͛8s@$@ J# ,ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ dž w^̸ yL2I8惂a AaJ|vL'Ec:TM۸s{$Jl@EDqs 3 0 ư0b 01  36193"` al H_`Eub4hۆv n0bհFkp zlXV6`F z |vB X1 u|Gwc0, 3 p ibi!mxn`Hԡm`b٧z zz0h<8(A` !C{֘9 ę*arn_9vBuȶ|ACjʢtG3Xq k`F)qGL姡C juy' bȰƾn¹ёyħWlm#i2lPjg|jz^A`x_iN8's#G͆h8͘qu\Z[ ,m͑AwYtMDmx|C @'=`@CdWn95pw砇.褗 P;@ ;pI@pDWDD0  74d .7O  "@ WaWC Ђ6gL8-92$1@ TdA@y@0 RČ h`20h( &%xAЃQDЅhCDPXY/0Ab1 Ih ǁ50"P2 X"Cx@':򑐌$P)*KXDp_ cNx:A 6F` }x=pЅ0 ؀teo@@>eЃ-J CУ$Ij@@MF$ P/|aI '%Oq2x0>ʏ}0@V4h{˂ vu2G8Ap}QBpP5.X>d%+D׃>4S(MJWҖ0LgJӚ8ͩNQ)p# ]g9QnP^ڷRpdG;Nw]W%oy{^W!{J^M|S? . T(N7- 80 @: 1v!a O;/ k8Ap;!Qqzݫ7փp` W&E0я8c7q9>d!eH(rޔv"'AiQH*\7"e[[b6Je/]aj2yR CoN  'Ys3 @;ߙxγgO(A Zτ.r($J8 Tw;h༕4+U@L"HN{*utC8Ёݑ!V9']v; /@B8fSNv8ceÄDd\{d 08eUSg=EP ?(k;`UTgcF8E;hJ O8^G?PzW@C85 6[I8?UHiTSA WpTG8 @;k7`!7j śJ;e&kPpBDD&p)gEt`DJn@`X`&0c?0ݥ:H89jg]m>Lȣ3CHKڤP 9*8T[/ nh5z>no[wgCoFpH@8XA@qx0_ئQT`FEBcqIJȏ^bJ;z<ک +d@+hGQ@^GQzcs4gUHc聲[fI:!, . "CCsJu-VN e 8t~!!,|H*\ȰÇ#JHŅǏ `#&ɓ(SF@ :*cd@@ 2sҬaMN;ks&Hk*hR f25T?SOĀ4y@C$}6\1 ! , h333b0  ǹ  !, E3VbF   ! , C3t+c4cj4    ! ,H#hp#)# R CƏ CIɓ(S\ɲ˗0cʜI͛8sɳϏgN KLB 2(իXjʵׯ`ÊKVX#I_8xZ@t˷߿ L0#` [Dj ƒɆ3k̹ϠC# mr ,Ny۸sͻw2D@Jo(qeУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*{ఃG&tbԱ!F*ncۤfh$駠vGf@baz!cj뭸뮼+k&6F+Vkfv"Y3ϼR3 ke | 1Iv b@HJRR#'CIlҒ'˘K2<07/LX]#49?$`Aazf`&Jj%:uP 9 xD%H QM&<v=B#Y_Bq=͊f' ;*W汤"ieId"LI`BA Q洧4h@a`Y1OKO:UK}* PvsXͪh:M$~4֔j*VSEժZJ'*M#-Y &ά'2b}8ƀZƸq*IZ5aY1g~TtGBI|r6уmtR終o-ӣ pquj4.j 1]vM`k4hRc4P=11jWS M bzzNf;ЎMj[ζn{MrNvMzη~NO;'N[/ fqabxxĀ "Y@ )Y`` 8Ϲ_6s z`tX Jw}^,"  X]XOX@|a >2en ,AxϻOO;񐏼'O[ϼ7{GOқOWֻgOCeKD{>#N3sw&K8k$aZ?'7A8+߇Iۄ&/'?#SH"}_ ''W׀8Xx؁ "8$X&x(*,؂.0284X6x8:<؃>@B8DXFxHJL؄NPR8TXVxXl/0)`/` >.?&o0Z)cH<1@k#9 7n"2 [Fk6`:EWp({Zpv(6 10@`PE8`?pi!k'7(c8(JIT@]p>t?0k6p@%"A8Xx؏9Yy ِ9Yyّ "9$Y&y(*,ْ.0294Y6y8:<ٓ>@B9D =@ N E) \`0mN X 3QkVY  Ɩ aO ui9f€8@ ,ڡhjxu 0Pf  \..C?C1{؇Xh'e P 91ɛri p2D`艠XQ ɐ /։˂I 0(h؍9ep  ) ,qm$P9`z،kP° b c,!́GaD(戎 Jю%j*,7!}#1:PVI]%#`#p5)11/\pi!M!` MS/Eqv?r/xZT&pQpؚ%x1Qx~4@dH11nd` BWBC0ʨw.Wl7 $IH.8hЍ#d:E0BAm@ q" DL c تC`šQW\ #皮󮁱IjH:vsXE:*A@G,0XB,[=0 @*Z0&C@v#!;_=0U06^x(k<*A&K`kE 00 ;ЍTk`G`>Ԯhqf#8\@qk@DzJj2 #`v:Am/kd:B0`G2p('{Q)-)@ J s(Y qF@5"Rl&A:1fA`XDHP4=Z0ExKjAO𶨃GʹR  W@"b%`[~ZC0ٚK&[#Z+eڨn 9J(5"A1s$yyθkB-l4V պBP/ ªבNğS'E [1 $І -е[0/D99xiBdl4q;(*]ʯJ 0m*)W˴q!:4;1;D'0&Tɗw̨z+t;>;۳q'Ř#Jk"W "kg<ykDb0=[8XxBLCpD|"qw(˲(S@ Bk!) eAd" =ѶQ\( mB# @~BPA-6M%ݕ#МYk&.e;(=@;ҧ/G=BD]7=9ϔ3- MfMһ@G"t'=mi=AoA#G}ւ `AVAa_A]Ѓ=tH"$ϘA@2`XCKDDB BCٻۥ 4Әӛ)s7ux̨'0P0l͘ID)0'(?(aՅ ڷJ+\爐xĀl[pMBvK|;0 0(`0=* q-D÷=dzm]i.ߒ8ǀ8pBe\kQF 5`04(@2 Jx,o|G8 D#T#0= dp?Pgn0s`[>p > 4kJNs">~B{B$-kj(j;NMݸY1"`bn @|a@Εq,e{r~N>+TԗMrkyIIn.AF/;06zB(, =19'8+|J/xLH-nB"92`>@"$ =1{3L]&2l&R @&@(BԪF;Pn3QYGɞ0*&B 7LoH.b"$q4]34nXO(/(m2  p.k6+7 F/!Rb8\(T"! _ 2<uw9ΈCsAۡ2{ۉi9 P'qlRD4BW\컌)݂cp; = Ft /?bE[J0 *o`0(xa, 4nq#pÄ@4Ơ`@1eΤM9uOAwRa"I.eӠ6L$b2:rZYN[qΥ[@xaE08`B)R`JI`1v5o6 ΡE)$UMlЀÎ.Y]mܹucH!=8ؑc| c Z`\1ݘ C傫?0<]0&8=PAx1HGHp ;~A{ TpA "$B %`i B" aHj' ,ԂbA#jQ7~"%v0BH#aAڱJ,Ԓ q-sL24L4TsM6t5ղN:NO@tPBBU4 0F`0LEPa˼#OQR: JPTuOn3N&"0D/ !z5! x4> G#wvWe *\t-S ҸH]a놎:(+ c 5@A NaL*N_~GUbv(0s9=YKvaw}ԡzMďp0.ԗJ @l` ixdix#`zj 1 -0h:P[%SN juIA3d?AT ĖbW  ""0 jGVlQsV\\͵}=!/y~x7xW~ywy裗~z꫷-V~zhR e? jPF.F0`;j{?ߞ{j}lOneov9z1cI 8p8Y @D,]Ž+^fq**ȁEN0 4`PHs@fl,'{"TqD0d)+KҺ`j+Z\aA `H#d 0jD1sD2;pZ@\pkenLdBVv#I kZd0 TGyY`׹@ n0dP,%8ҘJA88rꊺ$g9yNtSdg;NxSg=yO|% įr2LpU2 (t Irz-XRUI>={F5+ pJYQE'εȌ`Q#0T0 K9wdHAH BB];Q6 rZxE;52pN#L$ n|e,gY[re0Yc&s$uj=Z?jMA18E1Qpf&4Lz-#WЕ֧j*w)T4Hi@9UUZm8V.nH8`W6l&$ Rxd%PR,Wl4Z|uz(6hCШFᤜ6hA#,t 8r\{Z@ROέnCXG q:n*E{B3Koo d +W)^krـʀmE>r,o5!,   4c E6uhc|L hy3d-%*3JcJk3t'3uɾyczduٮxMض! , [         JV@"Vl 3kā!, &`d(c *CҊ4I`)ҥjB! ,**VH #JHŋ3jȱǏ0rpɓ(S\ȗ0cʜI&E ,P@@ J# H(ҧPJUPʵׯ`Kٳ/Ţ]˶۷pʍj ܻxr0@, LÈ+^̸ǐO@˘3C?MӨS^ͺװc˞Mmrͻ@~ N\/_`ˌpM&0›m;o?T(Snӫ_Ͼ}6#Eh8my a|XF,alp]onablpzlx@tt"tA"#,̠,q!VkF ,Xa V``' G' &.'t A$Q z4!wl,J(oaq†6`F A )ZlX"A6Ha0`a CIqtEuaMpyzw4$4 y<Ps{Pik` iѱę uTtƿcD 4l0*#[4t`tCnp*pFlMȰnB p:ny䶫o`Hք 81_oO6`DdxL Vkр!Bh4A6P7^nwak2>CCZ>|f<$ݠH\26a0IK73(4 $5 g~VB"OȆ$"䑎jB281diH6X̢.z`a@|8x؁T:IT4e >yv~ tRlTp>>2'!v0 `088@Ȕ\24B@7$mI@N+& p``ocJ$؀Cd(}%JX HlǁLM@eL9j a'p($xlL@ HbW Br@g@V:`7Q/Aw0L z(0!I @@4Km Txz@t[@iU ָ@сiAJ*WB~CE@$8(+`:A 00 m@"Xk[YǹM`mj  I @`0HrQ7Pm0-`{ D5,b @ "%D!-MIx@{!8 FZgȮ_@"PHʠ b^0|`F *AI$*1iC@0ʇd-&67,k)Ș/Q22@4& v`ͤAr`606M((hPǸo^s;gGh0@c`1E1}'MJ[Ҙδ7N{ӠGMjcJi\#mLHX-X=1#@LHF:d3NJST)V2K%.uK)2,1S ,$3ljZf7NӜB:_%0)~ԶMB V(G= 'M)BYғZ4euB8NA @!<O} TըHU*SpRxͪSz 'PZV0IW8:*`},";Y1,g)m98ܘmJ;H` 6leة:wHn[-Vm.r\B'uWv%ob{^/J[_b[= Ybr{` ְ! Co~a'N1] c/7&{dB&dҖN~/SR+ [Iv_CZ&^f&fgfl1ovqsVg݇g eNM4hF hV(*,؂.0284(j[vX(kwG{T&H ol4IJVJ(1mJJ$Kdm(L„`]PG&KQs%oMT؆ MN6N3poMG!O qXq'P PQuqqQR#q!gr&n P>WTw:S]s:Xv!XC+@IhlblblRld'qJօJ6e'ndr(0jN-do}Xr6ox8MtM؇l}oYhW&!Wtz RXrVs hLNj @Q@WtCg gs?CUTE7UxUtI%ى(v(v[Wu@'QYȐ֘vv|wظvy(XpGj7Xv=\Gx4*xe4(V gW_w7f%E(q ^&`)atz}:"I|%y|Ʀ +G~ y3'`q}nɓac>7z&EJ99(!\Ys)z;ubYf h xgpg0pzƙ,Ⱥڬ:`7gkEA5rq-d'LL}5P$dQlTxbYm\mzK4Nir槚Ț'd&pQLwXoɛFh/UKYg?YCRG5sTAw׉5;qqqY oS QZՠGIz8EHJjWjWuagW%'l+ڙ:Ee䈢0(*L(FeGZ['KW\SEoFY&HpR:]T\zY״ ]^` {IPۺ\`zK8^ K9_$i|'ɧ*|ڒ``1Z0& "%5u:pxn ʨ種~@9?ffYl`}z췩ݔP HZmyj?D)q4a "\FhӨ=!-<+@!l]F98X?e= `RURGra#EPyELQP1z(Uf˛S U|v4]\# LR+ɝ֤Ozyw*AA@@@ La: L% m Kz`LaLg`̠f7O'A{,`Ć,x4ihE>H pXr% \@fM1+ش3&pQ@4fdz*0pԦD(acM$Keth@! ,o Oc5  #J E}cP K rȗ! ,pc9$@ *\x2r.XaE6#T@L|ʗ()@ P0 3h _,C! ,*H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0c2 'pܹ٣  K.db 3 Hp,"BdB 2"i,76A 0e !;&Ɖ ~ %&DQ@7 IP @5LP|-Hɕ!a)%P # $nIlEE 0.*R ]Y8d Rl=CjHQQd np W@Tp0ADI܀@pEr!d*k`EFSPmY > U*7fF\@ ; h( 9Ճ=DF%Z`Ipڛea:@PD79dC(0HA-hM@ HoC6pkpB5XƝxx !QC*Pݙ-2ep CVX)FpkD Ji6@'I(t1@ZA~kU51_snEFYнp 6r0 pl`Av4@E ΐ1A )yͣ& =h@Z0z f`F4n*4$"E7! cBs ȇA t 8f`"NnAkp- #"ct.@:̄m,:`c8' ):$πL1(u]E;ѐ'MJ[ҘtG(@നGMRӟ~@WVհgMkW՟@w^GZf;ЎxkH ζaa0ewN? 80Mz̍~ ! ,!+H*\ȰÇ#JHŋ3jȱǏ CIɓ(On0"˗0cʜI͛8sɳOѣH*]ʴӧP.DQXjʵׯ`ƪسhӪ]˶۷!;(  ܻx˷ߑ+KÈ+^̸ǐ#KL˘3k̹ϠCMә=Lװc#Z5ٸs{ z NnMn_μ&< ]MسkkM ËOӫ_Ͼ˟O96 ghL1<[~&`h 0L8́ fᆐA؟X˅h~ ż" 8L-h8B!3H39iP8@1&xTViXf\v`)dI&L-gpRiL",Ӧq橧XBɝ{*hP%QBɜ$褔G v駠*ꨤjꩨꪬj,A3r, Kی$ZȒ@&la  ɳ"EV@3 ٖknZ@@nk,+[A { ,l' 7 ]4@l L W (31s0/4&'1<@ DG@L7-PG-nxUW} 5Mkm`9Y[]lp-tmx筷hg _ =< < OG.Wnwcwd]PZcn騧u~\x2&Њo'|K#ҫ7tF;/?_ts?9G_Twc@..^J O HtT^:`{JAEyȹ]iQi>a0A.v0c@Ѱr $x@m;|}x5 n.dDH/|7" &Eey'*hY[A(&ECB6n468э@HG<"QcCxBV45D2yaES JJ'*΍| ݴ(J]k&K<5XWFFtd)w\u/&4 T(0_:N|"mh*Q̦69BF}O4&q&.Dv +bꚹ: ̜w%>gmP7hxΈAOfrPsg Awφ곡|9I`@m1LPLiN:2DPh1jʅsz+@)9/ }e$O1*>R*O IP @C@4jg9d<%ZE-8$bP7Vy.4+%Fǘ^4(hV7m\b/֠-< ZPyy.V 7&T vIcf Kͳ,fgK~:ԣbs AвZM["nͷs3X1l" NwkDcM$Dbo(q_Lͯ~DDHp! O0sLP8!@Nqq`6yZ'"!?%!# It".1n@H #F $:Nk:P ЃHHBXβ.{`3L@IaԐ|i ?(q!-Њنp1 ibݨ'm P5!J{ӠGMRԨNWVհgMZָεw^MbNf;ЎMj[ζn{MrNvMzη~NDoc;< _'NFwxtN*` 1@|/Ih@Wқ~' a vL6o% QPBNA $;dp=PL&oa[& N =;8ЃG]s]amBӗHЉ~`5 0 ϴ I@80&M[$ ?@ Ё $A8@8 7>vvi?8B0{;0 W}$@=P}gH@`|&@Uw0hx5TBv~[Px {J:E"0`846(E-4<(M`4H  Ng?67}r"65&8P-X{PG"PCDh$7sNHQ2HsǗ|+(ЄO8epg4cp0h05@`sxLn@Fqx= _u'5p$yH^P<~&AM<@)0xmG#pXE@E(_%*rۨ<`P#0pw'(sd;Ktp6@T&90(0_C_wwxy;pv6p@rGwwIu|4C@7xI60Mx4I@s`(7}J{{Z@yГ:i-iGB&%yH27P0}P6Y9}Q8 `:sd:V>Q4 Plpg)0 o9gq ufw`tr e7x)p\&)\0Иe  fyٚ9YyZٛ9Yyșʹٜ u+qؙڹٝ9Yy虞깞ٞY9Yyi@Пܩy(8w`I繠؉"F9a??pp 9+a{`@*jVMF`hɣP7V: `bp  ,5:{zYjPw@Rڤ0  $`F@X0*sZf4I:xP|@F N*@{Ч; akf{,+!عlp@"**թuz"&ʪj`pQj6`$0&l`,p" y{6 H0k+t(޺kk0w` Һ;{1ڭ Jz{`@uz`Ȫ"_@VAQz pkAk_JVwG:: P$6yc J4ګ> 460ӧ0˚E*0}IM ;(@S(a ʠY[0'JJ;u<;02:}N{6p+zF B[7۟dѲ+azՙ(h|_p,p`Hl3'` 麪kwXFPjХJ:ٹɻ*n3#f쪼 #k ?:}kdI@Ql[+˺;_M)tE׹«|IsaJV`ܣשVFh|kp3;fPWZ Ӈ.Ћ2: Z2l/<0Q8 zKzc+`&j`?u0\R,zM:}k:}JZ0\)8 H|Pzj6IdP 띄lȀlȎȐ̝uYɖ|ɖ\ɜɞɠ̛9ʤ\ʦ|ʨʪʬʮʰ˲<˴eN&,ffs:#$ìnjŌLl\\W͘F1Ҽ ͵|ΊRNSl<{||,]} =]} "=$]&}(*,.02=4]6}8:<>@B=D]F}HJLNPR=T]V}Xm+&I@FQ >&(8DP1 ui;wP(~8Ym&PFI@8~@vo7*@rVX#`짇JǏrgp{FUw~s'7}0,d:wwM][-6`|10@rpUxs Im\Z/}ard^= '=C`췀#,P=|fk>@`Dž(78\@]]B7G8y w2?g<}  ">$^&~(*,.02>4^6~8:<>@B>D^F~HJLNPR>T^V~XZ\^`b>d^f~hjlnpr>t^v~x.& S`!8 ^ @ N 4#0c#wb N@S  q8 ̱8>^~Q(#p 53m̐ &  Mc ^ˀ ؎ L#3P/0  ]mb 2(> p  $p p 27c]3` P a_<[2?4겛LSï3Ws#$$`_a78'RY&( Q@%`F[8~Q'qE^wj0^@*X0(CPC1B^?0}aP0"DBw_ϤoO//7\ >OHM#X\Bp80?5G@h{+023oͧ%ёOD t3+ȯĴ+ Z]R:0=w,x1Џer 4eb@xeB > C఑IP"%MDRJ-]SL5a^,M=}T(K/fB ;`УPU^ŚUV]~z!78dDȏm"r! ࠢ%JXM %^p0Xb*k@#dD[S8։FZjYA4C c÷>$I/3̡&r3M5dM7߄3N9礳lm4<NA%PCE4QEeQGT0Iݲ!-=dLrHG%@h@(hj#!ȀT&$D-@ `I<#2O?mNCr 9۔ce4 *J@#:`\^^a  `XRTn7<~\N%LAL(a 8c6r`"1H k 4 4k WX!/!|`a! 0 VzC>㛚"@ݚBKZ۟dž\ 8#hx#@[mxA^ |=)蠃6șl8 38!2&l8ء+osϣa*KRK #J?] B8AXYB#h Lbuj8.zaBS(M}Hچ2ZGA{$B %Lˆg 9v3/|aIpH?`7 z%)0@*1 ^9D|*!R@*-a e8CІ7, DvkTɟC"шGDbD&6$oIa >gYbE$ #HhU@`WD v i H+[)*By^:h#C ~0'(ȳxH422P\$MLp( KzAٰ@d)ʁn/CÒ4hx#J{E%ڕ(( 8(׹``#8If61c% h rppeX]I@ $hCT"^A8L1Y2S\A;tfD[0`RAˆaJx  .@XHGN )yCsvWۢpm[@ pL;pZhRj@`^8X0xdBA U,p 0Ie ja _4.w0ԥK*pX $@~- A*Mp((87'?%<04D e[g_f(N!/@'P Yv38k9!!bY_SCrr qP: "l6 ߌ2` QCngQ$Dq"%)B\촚,4%8:5B7-F7tp @]KPN @2F8U[?aB?\GQUzd߿-n["V(dXL^ʘ61@R@6+4̎{NFЄ("¿Ko7yus'6Zl<zЅ>tuѹE0:"B\8(iէe&X P!I8 7J$+ˁ` &^'#-r# I5_z \ai; pǼLpl)#[|Δ%d6TY }"e9K 2`FxBC<_ѧK["O7mMo~bz4Om@6XR $rr*T덐C u:麀+sogr6A  遪:$ {R{?Fy,H9A-B %Y:AK*8E8Xĩ,l8 ! l""4#D$+6%t'(), 5 [1 3!P,- ߸"!{,Da0X!C=Ђ9dC?Ķ;"+4Ss'xrq{2`X.9xCh!{G\$LR&K)<Ђ$pEY\E^lb/([&!"4F5Zx`CȂ`+HwY+((1tX7t4)EiG¨hȇ]\?|lǖ|I lɖ`"ؐ@u" >FP'r4Gh$@J0`dױ@۱ lT&@&R&jA2 \@C E^)2葰Bиh$պ\CA/8SA!H\KY\HHΟ/)x&HPVq4dah-CEX/|00@:1LGZN_R"Ȃ:NDc1@ zP;rE^BX) ID'+Ȃ@&eO*̧}J0 @=C82;3. q(q4#1Q%\B̭elc*(:U@TRPKc`1Л>a=Q5ڀ#BRE1a۵ TH,X2*'fkP&LfqHXl;)ȁ9Sm=D)e銠IG H%,fف H,` P$ t`P k-)%D 2{}~؀؁%؂5̃E؄U؅e؆u؇؈أ+؉،؍؎؏ِّ%ْ5ٓMB#xN`NHWKOtD 53 Ł%Y|E &&XAtvL PQцxPD6j2V5l(0Gnx < h@9PZY+ q )CS_|1D$a`QmdZ6 صC^ ɜGxix:dy矀*蠄j衈&袌6裐xIQiGEH$]j#KAEZĕW cTfSUuUV[uՒ]udZj\kE`)|!E@BEpi=QgqZ[AjހO=t'ӤBxtA]JyE~4|yԯ} =iq0, BE<(^mzs5eA(Ȓ.X"N<7B Z5F*;d%ApCIOF9eW] tBcyfkr%bD #ܘzgw砇.}jJ~4Rzy 6t6pk0jwy+Y-@/C6;f@UXiD}m\d=5%^*e5ꢶmQkD 6Y pm]gB3zF`9h2LkB P]';61e(0dT:*WNx2dlTVf%9J) E!ашDEE Ja/ qiPԓQEh| ȀZRp< dIy#&F~ {'ݠ=)QJXޔ&|LfdIfDyI˄r̥.w^ 0 M͎vIgcv (a 4IjV5paLP?GF@$= QP "II@ILp(0$R,X=}e9KZ֒>f!Y֌D ' 8 4أSATAp ?@ '2N(?uk^BF6/8Ѧ:RWGt"5Z@S*(B2$JBj ~"Ô+ ׾ TG7h &A#u: 2Pw!͍ӜF!vZ8ha&f'#Ц$:DXn=XB;]iDF eZjP& Nd8+tA 66d 5GܝKD2;4t#Kf'J7\-RPL"Mk8  `e,o*g9V[^NBe{ hЁ1xh؁~p@#1F J8ELϊ I`Z@ak]Ⱥfh,քYLbĶB+%eIJ@%a`AZ*Zb H2hL6pH:A:`y d,@``')31)%8* AP IL&8 ) #P`EnP*،J^> RK@'8 = @#T\8&pXr3K˕җT [(8NNwaQ,г IbI].eJΙΆ"^ I=C?Rd?1l!(GFA9h^F2.9R &( )(G `xGb5# M0 +_L@5 |%d @Ѐ @F_$JGxͫ^׾B6Le$:@,Dᕁ,ZcJ@ Xb$ K -.d'1r\%+ JyJd a^T,.T;ID'("S&Qm0)LDm d  8G N !ME0w QɖM8חCr:OVivh.~0^OG@ eIjP)%B @~IK)8\# Ӱ.žˎL(pKŷ9`E:7߂d*.ix V!EL[DWG 7,h& HDjFX+_z& "Y`oshR-nAKpkbs/Xdb$ҥjW `Q԰gMZָk2`@b $Q@+ѾʴLK-Qv &gQksjEZ8*dsgNŖ.1$z͎xC͆8Xo{߫PrY&\l3^; M+@ %x04qx%>\ "!( H77RDm̏%(P2Y)`g`^\I]hǮF8(xY*gfM;WNS~;ɂ vJ@g%=t]F%V۪ε'O[ϼS"X]DdR7ҽnDWD3Y}Ơ(Efw;j6 8{[k\T8G7\x#%Xf@La '乳;:'Gb&Ve]r*/s35Ge8G$$NRc2KD1tƂdbu?ObJwbMWYe uTguX%a^g)- fch hCjg1vY!hAhpgTFwF|w|wDGG+gx/q<81Fj.E\xnpr8tXvxxzHG8pF8X`z{`]zP||@Ph@; V@H)~8؊ya_D 0w0Hfyh`cF`h,y1wh3x`"P65z`j3Xj _ V< 4 ِc~؇{`+ Qkk0wzpl`,V|6`fz0{ֈ|z؇'P `@uyw_P0 k@3 RIV3 "ȕ(yhj `;@HPjEzc hh̸(P$`` ّ2{h3"Ut(JPX'Кupk9Yj|`4jPy_w3` l J9k@fКwБ<K9?ؔ~'`   0b kОi ^Hyy0hz)2uy(XC|hjhz3Hٍ(0lcQl0{9ɜ((f/HuLڤL8, kHdP)td@Mfz/jlڦnpr:tZvzxz:! ,s 'Id6T}4~t,"+Fj@⪿G:G~yo':;V2؟ g/u }}7 uwoPܧ>k\W$SK|B RFw r̠pA=est[9 Ox9BsλAB b.cf&&g~H Xԛq񋒋 b 0Hɱs|QX=xpϼq.c:ޱT#$AIZ2;JT̕%2 tP*3xUb1Ԣ 8+Ԕ%*q p2R<"cILU$s&fg9&*jNּ2! C` H/2d uq}-#xAQat'}Z䡚&FHvTrl< qgp=W$oP%ArA _O7ZTՏCe%ԈKX#bDSZGxHD<#dG}Ւ$]Ϭf\ǹ&牠\ $YCMB2[+>u<2l~SvC9kNΑv@Ƶ#;1O>ʀ2i `ˍy,hN6pL:xγ>πMBЈNF;ѐ'MJ[Ҙδ7N{ӠGMRԨNWVհgMZָεw^MbNf;ЎMj[ζn{MrNvMzη~NO;'N[|QA Tpq6WA(p@#ob@ LBp>|@2 r"C*Lx&ѩD}'\ב20.i.g ) hBw@W?]nO;񐏼'O[ϼ7{GOқOWֻgOϽwOO;ЏO[~waw 0 Bu5 P?}pG#Ձ14@TP&pQ~*P77h 1F9#@ա(*PCpSՁWWh,.2x"`'F0v PPi0c:\F`Q8UxYI;P,P=<gx<=0U0=#C`0Pw{؇F!J0@#KD82h}0G}Ћ8XxȘʸ،8Xxؘڸ؍8Xx蘎긎؎8Xx؏9Yy ِ9Yyhxz )`Ut$7@' N+7OO x1 C?0 N0 &9  0Q`tAMX9dYf} @  ذ8ΐ ` [ <'%'=g & P Vա Q %x= 35z a Ȑ%:hs07qY7 Ց % '7   @ 0X` %ȈW)qp `+ 2r >$Wp9Y}Mg /0q7 zc~z frK VP>7G)ڕlK؄,0 =J+r/ys.Wu7 Н9$C6P7h?-ȥڬ]0dhh(TxFvrs00,P XՑ'3WsQ#0a4h@:u,$P9p < ^P<@h4`ذ<:7cQxEF0`G IP9sA(yI!WM6@@C A`7 &CR[<[XH-8_Iy3xs{Ҳ98N*i!7&$@ z57KG #W97~R :[աo+c. :z|9 (ѻzSM+7%0h (9ۧ/d Nۥ9ӻ8ۃ0p6fxzʧy+7_)[p nڃ?J/397pڃq" LQBu[SP/V0W a&zݱ/+ c87ZgXjhX\(988/\Gڰ:8,,i`փC@6ll%оWj)_9ϻ~ǮJƋvzȤ9l XIPꩧ# ;G`d|lۓy*ed>.@K! 7ls4kX8 /670@.*S :3[ *',kxٍx1)7+|jҶ73\mG)l=>xkqZpГ7(b:87!=G4~]:%=uSQϡ#74-99;72qӚB-ҌStuLo,F\CZRf Ԏ },99c ed9|Uo^m,Q7ygF"9BVMe*,y}~--<גg8†:kւ=٠H z=:D:}[σۃڇ+:Y@ 7za-j~AQ]Ңڧڶ\a =:KM -pPvТ&$`&pQ@S:Q[̉M`Ck)@Fo [ ;P'C&DdV@,`;!7?@'pP1# 0.:9d$$9yٚcsٶ%*mѥ"PZ^6pK196@0.*_(ԚW $>Qű9P=0])P:V\~?PgЃG`J'F125p$z.[(;~KJ `܉!zܨWˆ7e+)m:d )I@@⭈(9>J@W '䎵"Hߊ7܁:9,-W١m:XؒӘ[-pKj9PK|\Ѻ|~su(8_AU;˕R>:E:=^Np"]`rp#82[J#)e(>_[n0~~Z 6^4~D@~.&4p g # `(* :~?~>p:֚ 40F $X]G\w>zghC~$öۭsI>_ϖ{LtL7 Fʃ:= J4P^:2L  8gd`C NXE5nGU"I)Uz0 '0,1a /pc(oH1҃ F¢JQNjɓ nWaŎ ᆒBH "|Fy'qBL*ԊK"]lײD5Wqd?pڶ_BÏ!PHCu^y5/o'^qɕ/gsѥO^uٵo҉ŏ'_yկg{ϧ_o_#@bdp!{ ~ :b;jA>T? UtEvhH@G!@(ʁ1 8 FA+*8,s100`ߌxh vb~#s9*C*DX`&0;E5S(0@6:+@Bգ43@PAXJQI5b).@"_u8an1|XavM!Lض[<p ,$#NZF**w6db^X`B )/"10h8F(Ђ@y "~HmHk-lP i o( 6栭 $ܐ(7b% 2!@  Fpd4āPAΔJ]*} 0`#`1 z@(1x"(uJEl(5K`4BJiW#(JM `@XPtD%N;A bCHFbTRH1N'@wG)nu!PC0aC1B""j9[ T @!j` L`$@2FHDd,IZ‹oYȎHßPBp!ҋWAF#@@-@ƮP/$59 n& lP@PA:k-q>U!t \t[0,3'MF 4(FdAFMzRT+eiK]RT3iMmUtHOvSN%&-8LFP #4fDQ'8>pN{SU!z(w@b$ #HU,AMy£+;yscWfI! X 'S:8 <0b#p&x+#IaRc?B)\25&/mOUXojf8q.FKbY'FcqYvHP8QCq;($JƵ_mIgqB#Q%/^s{PLv6.lnK^CzqXA#At+\`GڨMTZY@]F}5kBjHcam@ gҍ}c YC&r|d$'YKfr0X,]H`Y/ ڊ ɠ m ]Z \cxLp(Hy"I-L8!I`CF@*@C$_᳟8!ArnAeiTkFzNg%E C(@ldo" aAy|K5W\!K0ۮX- Z:8 E@iXPp<w}qC,f!LtwÛӃ":@t9Y @hlp{~w]{{w[ ELųզ!RP2 0u9w3\ <&AdܠxV׹ ЃNA!uj/d} aZV pPֳZXP8 zj[$ '9]9PAjԁ Yw*'@`>-Я0-ډP>UUAxCP?) X&s/cAL@W-$` e@#܍( B2x Ȑ5(?8( a&+¤%opH!H* d¦x#C0Ũ0'80 H HI߻BhD H +*J٨ CXd$ E !,} >  "0  J/#_ m6#0  !, 3  2) p5  !,*GapH*\ȰÇ#JHŋ3j㆏ CIɓ(S\ɲ˗0cʜI͛8grɳϟ@ J(ѝ?-y˗12Ć1HA & J*Jı6#φ?lhԭ_p 61ڐjXaӄ+hp;< FgxX4>\xHt`-ŒU"n೺5,fV`F$oŠV0ۯca"/nlF\6%Jl%jԁM^VB'f f$ z-,!$lP{alk2te_tP8n`;"kpGua, C`p0 uP#z #&x8oiѱ{ u\B*Ib( ha ؀zQ"ʩ  p$A2GhzRp`W) d+ 5!F6uY;(Db;G6BEnziā(4F|6p"a ׏@ L:'H Z̠7z GH(L W8A0_@NuU:p@ Fe|X~R@H*ZX̢.zoA 8P8X3CpF@ K0. "h@?H G z @wP0 6 xG$A Ec Iaǁqdi$ӄW؁%|Ќ4 RPAp'6 I@@& g7$ ?@  $A8N&v`H8BCС6 $ C@zHL`Ml`@7 &1w*B*0A{@ @͢H"@i7Ԩ"@сlA&؀0@ 4]@9dm` 2l JQ?/WIP*Ukԅqd`V!d" $M-Z 0j9* k V58 x ٶzT$uytiW@YUb@y7vq5W PWwULWE~8V]wHw^XwxTsSGSv $Zx[dy%[y @[UW\tyV\U]qz)\(|PJpWxׅ^,^^(I|6[_g[7zi@`PDyEۇa7f4~(bQ}b~6cgcDlh@QUF`WcIdCw@LdPxeJcxf=xf?Y@kvE9Ԅ'xghƂ#٘9Y*+djT@HA0@Ppfq%)XnRnJKf򖈽f4oXth@ ؉=SGq5^.\ͩu]H)R @Q@sj g1QQ9wRs0u4:GtMG(_G_uY\^gUVHvHhף $EIw9yߤm%VDI:xxX`Xx6xxpx8Zq* [w[!i@y\Ez!q *6_t|!:0{3 _E_֓9|yړVHE}ַ*G}JI7&'Di~d`騨(aIcX8IGqu@oq)e Xx^HfafuizT:gyD}Ƙ40;KM@۰k::ș)#t1C?I5:t-c'LI]UXUFƅwěƶabHHdlYmkgl>+ld7Qvn´֞n:/URW? XCkuPh䄟 pNGNOxqz Q8q~;G]j|5kN*j7@:xEL0FJKVţVZi@xhvȤ dJyxbe7g@@zGf^h xHxnYع QEoFWwʐy|y3Yj] "I7`b 8^HTw597_:y|9+Z0& %u@:wnI}Z@$f dz*ĩ>&D o}X) Lc4apɀs:_|~8@\:HD@'@*0@U|JZ\^`b<ƉO;mƍJ 4XdhYlPLd$ ?c= Mִ(R;Ouf@0\P'4E; 9dDdɚO\ǟoZFPL1 BSܘ6'99C;F0F9  ^Q JP`xT[@9̲мHttw'ʚeV-uW[z/]DQ5 5*RԬI x |Dt[ V܆IA@@@ Iv;p= mH:|U@&=}4z+^ }Lcp]E E70;p,i$JЖjJԧP]͛?:le[N;Sh@tDd\ @%@JpYN} tyւ=؄] !, ?8 1!B; 8q  T@R  @X!,u,x869$7!6: Cn_ǻ ̠  |5-X hy r! ,h'^@pH,Ȥrl:Ш@ZvsvްxL.zn|N3A?P}  PO NN; g% lhA!,e1 ?   9c ] YE I?(8 !,a5 T  D517I */U1 WX E?\% X& 2  ɌW%!,]8 k80(P^ \'dQDEFW # g9#d*ZC0 rdP8½ 1 A5E'<=n&<!,\; U%p- }C= G*cD-0 Ec $c8(PIc['E 1C&1ˇn! ,'9l*\ȰÅJHŋ3jȱǏ CIɓ(;rX˗0cʜI͛8sɳO+YJѣH*]TfЂMJJիUbʵׯ`j KٳhM˶۷p_Kݻ[˷ߜz Lxpˆ+f{xǐL复/keΠCs,iǤO^75װẎM6ٶs붊{ߘ'NX~* F\@ ;  9p؃=D3:PmV/t`Aiܐ 0]vv6dtA/Ђvj݄ 4 Ѥ?ta6:/y{WCeX Wа5u{ځj]0ȁwS`wHĢ4n[BS[ NbxAvx AFD0HO}vQAmMwDg}5AQ9]<,V0P@ R G #ҷ=t+ T0a7#@P9ؙ!A* DHBCn ; 5`=X’pLSNr!| CH 2$qdx7d|qJ|p@E6TvV@NA'Т/ N :nLJ dhUh&7/jYap' M>l$@fgu%V(JܭL&xf:ФֵCj6$:̦onֆ 'k)rLhvc)z"_~⅟ h\*Ђ2MbІ~(V *ъNͨXю O@*Ғꄤ&MiMPҖ„.C`*Ӛ&6)NsZӝ4>iK*Ԕ%=*RCԥvN(TZѩR5VjCՄr*X*ֱf'ZZϵ5n}k;*tҵ+^é׽v~&`[v:=,u8X&y,d#f3MrVlOC+ZC=-jlgKu-TV pKMrmG8CqtKZͮvz xKM/yjuE ]V/|+QסB,`=0'#, S؝:3asr0)k&&SLX:.~sb,c7uOɱw@L"HN&;O&~#*[XβHyTL2]r{#&HisH("tHA*/qv 2Hꀃ0a>PB<ъf!-iJdl A ?@IaH}z(0d`$Z(4 $"gҚӮfF$ X<@h`@{VP> ,f`mQ A h@m:A@ 7I؀D;(|H@Z|{ _xdJ: |t)^l`'B` (PLq`@pu5ۚa#͖AX4t`_rK<c:ו0+t` ' `s ;Y x@= C L'n1܉f|=Oy˗ uP~PO fh_ 0o "e1 6<@ tpVJ@10>n+,aF ~ M 牛 '0gb/ue3`b M|`<`Pk8xzz gȁ#a4j76c{7t  )}'J&[9Hw2G[Ga0Uwu`gwfP~GKpg7Q_?`  y0<`,f ku AbF{ԇ4`w{g@x?Piyy舐hz|rE؈`& `y8;`Ѓ#a4sCy@h|~8F{,}SfmFnfo,oӸwV`ywب zu THFhp x(ff hlwqF@ e)Y `8n 9&!mOo'z`kc` pn0D7[ 7B'"NuSvhfthvHaZYu8eF0RZ\ٕ^`=u[VI`-546f kImoi'sYu!p*`J{IU@?ɗ?@Ip9}95@-I9Qi YqћI1yʉٜY_9Qؙ{yuYoq깞iўye1y_ٟ[z:UQ:Q JZFqJ?ѡ ;1$&z7_բ.02:4Z6z!n,+H*\ȰÇ#JHŋ3jȱǏ CIɓ(Se 0cʜI͛8sɳϟ@aHУH*]ʴӧPJ=aSjʵׯ`ÊK cӪ]˶۷p4EO˷߿ 1Y4̸ǐ#KL˘3k̹ϠCMӨS^ͺס=L۸s' @ߺ NF5_μsr& 30f(0$b1`4hZ<##H12(DF%Ab3aPF)TViXf\v`)fz&(C  2H&8p $2AƩ' cL0 %硈 %iZbhV$L%PR'&%h騤2a-@d*무j뭸뮼D,H&eP ,.+IB&R}`-r+j%,@-U\ Ik, .RBL7C0.Cg\ L,$  40\ |0 2:mH'4[.t2VMXgyN5.xdhuiui-tmx|߀6^wc S+Obgw'>fڋ6۠.j.8ᨳT/@ \ K+nG/CԶ[/S/?}oO~[h4X, +(bъb}L(10z{D•)v,ml~`unlS)E.ԻJ0 gH7u!4;bn<$DM@4JӚvh>:Mܛ>ʹ-->U@BztAcHWzF"4.ed)Iu8ֹ;gJ̕LiIQ2VoYVUl+\%(W\vdJ;*Գ]|?,y.aRɺ WmRm<#ۅ- IE2A Y͖mHs[>t -pb  h}3ZdQ3SXy{gb썯|Kͯ~BB!@'!C|΍! 8 40H$@ YCCЂVL8αwJ@Tօ|z .LCBcjdPe a>[4Df.-=ѳ[>BkBf)>πMBЈNF;ѐ'MJ[Ҙδ7N{ӠGMRԨNWVհgMZָεw^MbNf;ЎMj[ζn{Mr{q:-[Zmc( (HoLO;'N[ϸ7{ GN(OW0ys6GX5A psK 'ϥ@C :@4$] ZBϟN[XϺַ{`NhP'̤ڣ;"W4w(;Anw }S7;2n|Oo/wO'حO032{$̭ц>OO;ЏO[Ͼ{OOOϿ8Xx ؀57R`'ZJVnTPY0o *ȂaDP o8@+hU@,p=0U0=]79wp@`@N\؅^`b8dXfxhjl؆npr8tXvxxz|؇~8Xx؈8Xx؉8Xx؊8Xx N pP5 Pq ;`Np](&p  O [C!N 捞p9C Є0& yx \0^`   Gs@?`v` $ # Gtfg @`5F ipv  ! a4;0R@v) 1 0u0QeG p -B@Bi4= "9vyxf 1p7XF߱G # FyBXLARI@FV  y3!|\9xM!ɒ#p5&Y/$K`p #XV)#"Nѝ$h84Is"p372BII癞i7WV 00Qm ҙ WP A1F92"7YZ5.(pT1Ho[F6`: E04P>pvCU+) /3z7TBp rI#d W\ wy/`V[ʝ9:XB`'pC6P EF7p2b zv{)#,E80vК3m+N*Z0&P#0Z5:&w+02ѩ:uBHNQEx)C=wZ(P^P<t# 4(0E@*v00 ;Pd֊GwvPMkggWX4`!JD"`URQ8UE>@稤A`7Ns@/mJ0@ĩ 70` 2U*''0*6z0'7r]s4P*B;Rs\i2i:ZId8TKzIҩ#`Y^jbeI J+9y/}K sH(2C0 ? HОYy&#Z78Pq҉ ՆLz>*2xP2P 2t[57@N20*4j8j{V[C% hPdQd@Y{V3ga: U*=J=/@K RtGW+#YH 0ʨ{ڧzc(*L,1 ?gFz I > ;ЎZuLWhZS0P?i #u_d00|9[`-[@eLzc܇5KYHW?`aPi&}RU#͞6 Se|i؋=7<78>䬑 \5e J~z,U N@|ɴNK7 9R@_`iaӬ7I80]A=Թ%C ;Po70ɱ34ל<r+l>q*XZtDd`;= #cɂ{gtSzA7nPLF dJ7FڪmmZ1*,ܗp:*C@7̸iN~>ZIđ]`q}czSD}:\0uL78%[_0q탡$q_oq7 7 O47 45K@G[) p+{8pp[52uϡ aY ў7em;4.@CZ9ٜ[7K)v :Ӄ^=PzoWJPd +}!X1S N Ֆ7ڪԆ)[ %|Bf&@ꦎV@ LIpH711}ⷑ +> *ჭ}CD.=[h6%}"POڦ=FкdjF&6h@"8 BA h0.D$YI)UdK*AYM.a,!x@1Z.e)F"$@L19nWaŎ%[YiGe!PAØ.q>J"N(p#Q(3d2l GHKJ@;Zk[  m (`DE(fFN[s*"LH-É ~xl)kklqG{G rH"4H$TrI&tI( 'J,rK.K0sL24L4đ4t$h$s=Pa,{s;"jCE@$)fka:t;jQ$̑SPCʄsO \„v(D/aWMH4A峁 `Zo6SRL (A5\t$B4Nb)&BHTȡ ,j+z5#L N NaL!|0 7ݳz:` Y!(`(X)>}yfhUe*hA$ ^ 6: Z$ C hxɄ"(mP6 -0$l32!֔I  +  L+\)N8.*Z6.dA&!apB^H#MaB*Rpaɻh4u ;A{[w}G 0}~P$` x@&P \@&NsNOJ@4`T&:@$TNed`#04`,2Pu@ Ya#լ8|3B2UxT\p20 icPe&a` b!. ^`+ro  C yA_@ &]i@F%0aPWKXÂ[0tL4dW3D04Zl)dt&UAbXFVle-{YfVlg Ю<{گ@V H:4'k`WdO:a_ZLղS7 EqA >0ְ0iZђ=Dmys* @6DȂ)O I@e@@F>N_w`e<"CXCduMcHG7-'^`AҼ3fAm L`@`0PA16f2bDP̓#&#  F VKY2#XA XzsA@BPTajUK8iT'lO|pdAt[{(?̴vz0* SP 8t_҈pAcČ 9iv1]~wۍkg* G9*NM51t#6o7MWwAjM# L n+%;@ L@IUЂu?( <>$L>}s;98("|t#\-4t 㺊"@M` kؓǝL}~w]{{w^'|wED$+$GP3c;[N6G8q;\+T5|T-\$bLm0U,(JQ&A|H@My̒l@wM]#e)u/^L0яp q_{̩,jf3l`lLrNR9RH=k9l?Qb,&൩p>@!0(6uc7w#ɠ Dn@u"HX /@ .X(+@+9 9.jp*)xj#0+3阬 B3MF쐾UɳʨpáL2s2?rJ<3? 4K#2p?#Fs|$  !Y Q3ĉG0TY™D5H s\@)9Ԡf$ h1A1Șk4٨ 1,;8I  >I">)¡9(lqE+  ;7A+-ﰌ1+! ,(FAP`#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜiJ'dђ΍$#hPP IҜJիXjʵׯ`Êm GP4M8=yvDLmJ gþ$H)Z&|$!#G $RPQd 0q TH ]&% ,b 0$A,`?'It ˠPWB-!*о60AB"T!! b֤$>L ?bJ<R"B1uq&(aPVS@Fdp}v+s VHmPVu/6u]*\8xa$BuAd؇2@h(; !SV)V"eER2`LL M ެKF򕩃Z<=82D%a2}Aр/X`b&dt\'"C┉ٓfX!ԇXXHBhP!v9~-h(Ӓ"3*}3QCl@ G HK]Pd@(2H@H:/Q8@lȝ:Jd[ vilqNcE-Oy+fc\ VH}Lc"#A x+kՉENpbw-b</H\oJ* tmt&Z*bMi%Px WEiivm-c$f, RyY|Qҭp}j#b_If7DJˊp0 )08: '´"DLLa ϊZ gL*0w9L"VA>&;AI~L*[y$Q.;9^LfmhNl3p-9xγU~πMBЈNF;ѐ'MJ[Ҙδ7N{ӠGMR8VհgMZָεw^MbNf;ЎMj[ժn{MrNnlhIpx:8؁`Mt!zh^ˠfP p@ICp2lJH7| X8 8~׃(W9ˑp<~xċ@4Xa;rNoRvl`,` Z=X00 FA0l`uX0+`!!Om; uH a@ {J<xz 9Ml#~0^77Ɨ@7 Xcp|'7j34؃ 66Xhjo"@ y  0~J0Vcpuu۶~a@lbpfwpJv%kw ;|h2Vu u 05x8Xk!8j;Ȅ6XwG6X"Gf_Og\`ky~t80nxyV`K0+Ft@Mp6'0ҷb_P6FI 2{0phy}Ȉh3 )8kh؋&HjtpXEXob)@pHkݘ،Hx@ao~'wHv}t6{xfyxyy0<`,fG·Hlڸ84`w{o@0?N ِgyt9%{X7:钮@)wlKy` {׋:MfFZɕ^ &Vw_vrGvlǖ{w~׀q ַzgz@oGg|ՇfQהvW ` )gQ璇z`w逭6ij, Ț6)ǖkЁ(ri)okj ~ kx|F6}8h_ٝg9k9}j깞ٞ9YyjugџZzc)p  APVAP0 P M R '#p5*ʢ a Pjv r@ < wD1:r-.6* qe@*H(;G4 ,W I#`I@FBJQ,<;>B0`a|zQ] (C0 $p&>GCK&TP0P[U%HB  8'Cp;6@r !81 C0#l=f::2Jd@rqZ)0Cʬ*+8:!x(zͺHq(&pQ)4DѪ"p(0(`;C!7 ?@P'[`d p2Dq!Q'@ORY7~6Lp;`)TB=p[p9F 80pcEPlX6@0nZ';"I&`˻:K 0"J $+B5$P17`{mP"P6++,HZp8 0,#`>j;K[0lx#10@``:Rjqp++4 !e` (rz/` "⡷B` ;(n )CRG@ `F PPv;L$P90$CPt#@_9#N{@O{'pҥPp_rv(= (@`<$.IP$ Q,C+FȊ\,+*F<8g+(;S HBɵRˑm<(#C=Ü J02_ڧ;| ˬ|B0n1ʬGp@gD0@zJ'NRC_0C,+0`G04𦲺+'t(T0ѣj@JJ(= "B0ѱ"M/O0Ҍ"Jл7 l(Ra+?=('Pa>* e6p(A,AT2_la1mn]v}eFx|B~؂=٢'q J7* ,#{2p±rl`-u(d(j: az4=ZPr١=ڲ"@5G]͌"ܺm+-eĒc|j~ ]`rP(k_$m+\{"л;b@k%`a(2K0@Z(+W@ ajbQ+"  ,I̱P!;๝qp2*A+kQ@u/02@@ ߱ފ?+~CN4yǍBK@{Yι2PL_KkZa+u;,kмk1CHJp`]+? k[|Q[@Tk Q5+L/0 (.<-쿏b=/@xCB&(~"ôR톮,KOq{$C k[Cp;̍(nʼ#˺ΆA(_Bf(|\lŠ˺.\(>\5n#PA .dC%NXE5nG!E$YI)Ude_ΤYM9uOA9QI.eSQ29UYnWU%[Yiծ)[qΥ[.Nw_[&\aĉOcȑ%Oژe̙5o rgСE&siԩUftkرeϦhmܹu]uoqɕ5sѿ6^uAgw'_޼Bկg/=}{~?}p@ @TtAú-B +Ъ/pCUʰCC1G4D*1E[pEcAgFjqGӱG G!4ҽ TrdI(ss2J*\mJ+Բ3,ȺsL2 L4ӼL5ts-6ߔs钤N<3O>+N?'@5К EtQFQRQH#QI+"J/tSSP4TRKtTSSUSTWuNuVZcV\g4W^ܵW`5XbXd<6Yf\Yhq|6ZjcZlQ6[nCܶ[p56\r#\t<7]v\]x{7^z盷^|ٻ7_~۷_7``;8a[a{8bkb8ca۸cS8dEd7;9e)[e8ff 9g޹g9h%h-5i{iz:j\j<:kAk%:lQl:;mZmwz;nmn];oSڻo:ppĥ>x'm';yfyk駧z>{i':|&|Ggק}a?~e'9A)V@B d0>` (XA~]A !dI.\)T!XBnؒ UCB 9dy,XA"XD^RiD' Qt*+^TY"EP}5UF3Z i)7Qq#XGCG? I'CRNTH5=h$TIK &9),}RxeHYJS*JWF,iy=[R{exK0WLcd2>g>S~єfYM]6Mo$8y@sSTgN<-XO{f>ASh ZP+TB]P @9$(@1ѓl}HC*: ^HQ~Ԥ$q)J.FN'͚J >LE6@C%jIjD-SG2U:ժ5VSa-X.5WfUk'R\XWby^E5, [3jTbXd)kG^6,9?~h YZ"]jYH׾6-%i[Kn;[߂M[9Ur\ ztS]M٭v~WiZ/ [^!Qzg^m|{Fկ__ ̂?3\aQa;a;!6MI|0)VLbsb]o9ˎyl A2Zq\H"d'KQl#_yYֲg~̤O[f3in [7yqm\ϼg? > fC͉V49?v\iKә9-O#:sRjS'թV۔Y4W9vb]>yk_˭=cw:[glg~ﴩ-_k_6~ s?,ns>pٍu7] vios h\# W8Fp<2Zq w19~!!9CH^r͡D'WAX2o9Uns:9?s=B8'nt#JW8tC=R7mu|cZ7uv=b77mvpj6ۯvj=rw6ݗmdz'6߃w_~ׂ5kmxY#Պg5SxS|-yg^|=yЇ^'}Mzԧ^g}]z^}m{^}! ,\!& H*\ȰÇ#JHA6hVD`@ M*\ɲ˗0c6 jltaF $hH*]ʴ@?7Y AG1`ҀsǩٳhӞ4b<)PW4 L: 8$L4H6tb7@-Lp X/o! ,0+3P0@8mH\(Trlp8Fwﮅr\`0(Ie F֫vzxL.zn8'! ,]4{`dihl뾁2tmt,|:G,򂊇q\!T@X#Rz}pC{H̶|N~r!!,;X`Cdihlp, Lt|+HcPXI:(`)H,* h`-w HꠌnuA0xÂWl(!! ,kU0@8ͻ`(W $dlr" omE@NvHϐl:KIږu%B-a|n){N~!,\=M9y`dihltmp|<+pRR3.PQ!D$-yR|N~=!! ,E*B0@8Uh^Xl:7+KFk@iAx\2ШtJZجvz04!,8n3Vb|~01t u1w U{64cnhcuhM>G'c ȈֆՏ\!S ,,      ¿û)]Żh,ʇmw3{4D߁cPJMV MF3B|lyuSkv Xjľёy@t<3ypw^zG<$4@Q?2KQ׳(+MڣCV׺$Ak@Ƥ3V8l5hwZ0`iO}@A~fLC*Cp3 aI 4ԡe\ rlm1NS:5@^e0RaJF.p$ 8x̣> .L"C2򑐌$GIJ$1Ɇp(GIJ>L*WV򕰌,gIR :@Rj%:XA^^!AK  q0L@/Ptaw_Z1< ]x ^xֲ"W!2 LP%,?%QB JAA̬1CRS0Jx@0 X0^Lp(|3u&0(%^2Z Wg@>&}9$1H@ ` F $@2@ dh +l-1i` #@/0 r 8s|Br ˲ ' :2 LJy!Mb-U AA`@$*3xmA(0+I`qc@ 1 ˁ#@@1lڻXFDH XЃAp`vfv3Z7 @_ z.xB䶹Mj U58 x@"`@unP!@# 8!=y :A Py ko] /\d#pˈK8*X#,هKole;8"Wnղmt0@zQ@)QHN)0 p00EƂL$a-RP›LܒFCX]7Λ `Xt3i688;4 h2ϜK@!,I. 8Q\ȰÇ#JHŋ3jȱǏ CIɓDA!ʗ0cʜI͛8s)B1 \JѣH*]z1JeJիXj݊ѢLJٳhӪVkʝK]mj{߿kK@@+^e^6Le + |Ϡ&ШS^s4װc˞M۸sͻ Nȓ+_μУްa!uypPN. |Anu)B2詃# >$1s<`AqB _{(_`uQ|鑄6p`{鱇f`|F̐lŠ;a,`<tt@w]`c 4Au$"pǔI&68Hc$H’CuI@F晗5IqRybB20lXcX'!!u@{`Ց^cp fqxJa]Gw 4kb Av(kXꪭuJiK F4 @CwذG`! 3P;ud#I Ft24yh/yI hpyDZm@/ !sewh s{KLUaӠZpTI hA1-&PF p !!C$jB`PF 4 Z$xy 2 raC198̺ņ|f4 0j20+` ;`Pxu ` !,& G)0@ Fz$A 8# C(paƍ ~Hȍ\-@@2)`@!,'@hHÇHC*jȱǏ CI#H`| J0 ɳϟ<;P@&@]á(bJi1tN] vѪ+XZCv*b1f!,=:  *\P #Jx!D3VHPG/~ɓ'I4K+csK=_vP3:fl³J0ZQhV(ܰ@`#:hĠ$X-,Zkj1F]j`n8p O 3` 'd! ,o#) yt3t+c5fuh8 f4c F ̷i?޼ Gp;!,$ O3t+;uhh jf4c F  #0 B9C) ?7Gn8!," ~ 8c1pCk8(f"*P4n ;!%*!"`\) 7\igΝe` D2@xH5PqbEn b(tE6 €!,!   0 'kF3%b%ctk hh1|3u{cEk˶3kbz {־?B "c{p r#  QaC` !,_    Khh_3u{cEkkbz{3Ҽk݁! ,  η   H}3ȰÇE 3jȱ. 9t`cS\ɲ% 0cɓg˛8sd3; JԜϢH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx%3׉vtq$E F^XǠy#K~jF8P8,8C c GEbF )`P8С+KOY/70r⅑Bl =aGC0 7Aǎ A1( w|F( 6qJ`Z@ Ap8b@82!, /@@$T8FXJVBEX9ٸ7! , + 4@i iJsS(0R_i:4!(,E.H*\ȰÇ#J#3jȱǏ CIɓ(S\ɲKI3"#jɳϟ@ Jh˘2*HAEKJJիXET+VF JٳhӪ]ˑ+ۨ%ݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ< 1 W&]-(ȕ @8(VhBс1! r@Z` D p "B!Dx@4ԠW;t~085S bh4P@6!C;QHVUW 0EA!Ë``AiFAE P& (Vʼny&[PpD4p08jP"1p \Uz}ZQjWfi E q q 9C1v@Dd #`@vkСg@q f|A CCАt X*to P: ܷ0#j!EqCF -(AP`ACTZzkVEoXA@D .4C`t ] sO/ eLI/}_F` hRwb@AK9`B# o 8'xL= QW`P8>Dn5~7 C MS_:A?9: =` p힂\P@n\ #0im9q "a.D KĜ&0X JJE0`?}a?`@` bi|G>(L W0 gH8̡w@ H"HL&:Pd+=⊐").M2#)Pъ/bQCFfT/G ~f()#W2 )' `A I)H^`? &_.@C d@JX"!Da ;(ԟ =@SU r J E ]a1Q[ p0K` dC`IMZA@Jʔ> XẀl"&07Q$Y.Ye<@+2I2" *PH @#ALAn #\A,.bR[w$ NkƳ t[(``0>P`@wK܀2a䆞4RHI`e&Ir@ `FHԁ HPRA`}$HA.Ѹ$@ ؠéX7-iDH h7ƴM4qX]`v0) 9XZ 0B` ؒ̾!4f 40e'4dӇPP0T3/ і Ld  c@\=Y s)q2pelpJ*$+S |!A!5,@!.H*\ȰC I$ŋ3jȱǏ CIɓ(S\ɲ˖4(d͛8sɳϟ@ J ]ʴӧPJJ*Jhʵׯ`ÊK' l-˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ NC[$Qb#08 CI) ׳D:8 CI3u@&{'Hm0bXv`r) `Ȑ,X!lw@2$ 2<0 F En=]/{TqC r$MtpZėubˠ A2ֲ2Z!&SGtl9.M HX lhrSO g}:rZF F 6 -"S|,7pun2֔E>*Q׻tYd L^zfaP+_>/E@|{vj%N2Ia{#9qOP`zZǛ."T5y[j9;~Y/Ij ߑ0u dLc{/$C ~qkߪv~D~&Ib"u|DoH! ,I.8P*\ȰÇ#JHŋ3jȱǏ CII4(d˗0cʜI͛8sh"BC; JѣH"@%PJJիH)֯`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺwl=[I/lh[w[yȓ+_N.$Ey@ Ë6=;l #? bCI3߿<(!͆v~_y`,wl ftpdgŃ0(xVl3 5(0lh䑼uul@IL(I`'Hvy$N> c8@O4! F1~,p lz` vlF4~& ,AߟoZGw@oζF\AW v zD 4!F_!JBٲFeYlAÂ!lb24qǬ<ƹF[Q>8la|m@ !M!x3B|fz(2 FH*ϼёy@t 43y/ Mq#h!Q?P1ZFBKOSx89xo07y#.19M!8 |G.F⟇>FDn,Ak'7G/Wogw/o觯/ׯYWߕ tP" 7h :'ts@p.h|@(_0A0;)̡w@veGxA@Ȱ ~ 5^! JZ8@$ %@%QB AA/@:S8  X"? -#A!L`QIFB@ɤ$@ b$\$! ,+`LI8ͻ`(dihlp,tmx|@$6I* N/V* ` P #!, + dihAs[Iϸ On0R(gL!!,A+m; G#w5?)@G#QX#4TCF09#,d:(*EC'F'/F#v\ ZEEi7:;)\,=n@<FȋRJ0#H=K}衁! ,R-8A*\ȰÇ#JH!F3jȱǏ CIɓ(;D˔xI͛8sʞ@wRx`QУH*]ʴȃNdԠLXjʵ+D^*dt,hӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M7lH[w;$B=_vШl$zC&%Inw "3O^/.cדDgXtUw XcѠ3B uX 3Xyhfs.MlFIl` ܡ@3}͠ćnX  #_"[8Ia4p#;6tGb0B20lXcX'!!u@{"}1\`p fqrJaŅ]xApz j_ A"p(qj餕^\hK0 F4 @Cwذ`! 3;u0"8 Ft24rh.yĔ|Aբ hpyǫ|m- lpavfKlQqGx`؞y,p`u;(`08Aw~@zyhlF# .E1}n@b) bj zaA¦t m;ss c'h ^!R^Cron仩ML/o' (A7?UBBD2(X@ @Z:` D p _G}3 H !;F@* 6 z"| ]Z2@z!vH 0QB b9,A,/!*PG 80<0KlbB8>"0[@\a9bTP!@q8 rt 1 Ÿ\o.Bw @&XQT1g8ih~1H`FA0@$XWld'S!>4 '=O(1"=0(1QH>d\Gm d@ 0BB 0II&L@5 ^` Yi dOL:Ox/ "Oz(2! 0AF01{4!]'H Ӄ!TaW"v<>7/R`'/> җ:-LRYЃ^@cPЃ%T68Do0ZJ CLࠅ/,H a0>r``%@"]ML:r)(Ba0$v , 沌v8''VֺlgKږyAV"4 ̀@pEP%BBt /G J]r.KM N @M|ے,E2A"q` ;`" 2SC&0(T/E)! d,%Il.0a,/Ye]6{$!@5&`N$`!Xcd !";H S'`F%_B4AA7<`bA³. lˉvm(j`aGp UAE;`z42`8!?|ZtobhrQp]2Uպ%rg `0@(Vr-# el P4n(h!HKcR0BbCm/b#$8 *`ᯁ|<o*GO,dP82 9|1"r!%,@.-H*\ȰC I$ŋ3jȱǏ CIɓ(ChР0cʜI͛8syDx JѣH*KKJJիEH*֯`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^}qڒP'~'OJH%/(Pͻ %2LJ0G\P{o9OH3 #V Fl[$l@8] n`\AV` vHuŅ8|`6ΰ`#cB['axl`) @C_83tycz2t\]]~IQ{XbHW2Âr.AE[y@\zyh$![F& hp0@|%|0(Ma)̐) {tq*A{l`UK+0{qaa^{GfZaDl|ly{@ z'JJpk0[np{tu[W,t,G dm @׋vVz_hr^v De6aWVwjFpBt+Lۄg dmhlp-tmx|߀.n'7@ nyX@Gp! ]ueW``@;A#Qz\Pt`T;t/};p^P o^OO<]J!=H@׻e Q^CL0B tEAE Pu;_`py!jwz`^d FA t H߳^ !@;PЂrC! [W.=@b@#̓ 7 ؀zvA #@'ʥT;lA0Q8=A^@:zyJN y 0 P#hT# Ƹ`UB`HV 4%l$@E JQ`@S?B)M -< فȰ.@%L0%)а #1 |Q&"w'fѱCֲFqb^'PtAGwa[h$! M{!k&na؋o^$<ãw9 lRh4@w p u|f, `nyёy@t33smprw#h`|WfYyѤ5td#jȁfaVKm* h{V\}9ڵzT &b<'F~sD`^&dA]/o'5CRe@C *F@8> <v4h@@H@" s2 LdP F@G0'=hP|pzɈ@@` x ~!؀K1lA 80p7E L P@N =a  A|~.Ɔ{``#"d0>7GD!@VIBL"Hd %:@V0HjЁE yd^e $)px9@$JAv$ ǺCu@3 ^pA,H%AA $ B`0 Hp@ K0!Da ;0AP" BI CN$؀ tPx#E <)(! d@ 3pzI&t/0AG@zтAD8 IBL"F:򑐌$'IJZ̤&7Ɉ@bA @ PK P),gIZ NNe\u @Q $5 4@ SeF9\A T l3Gp')x%+G@* 6 z"H`KSdA`zPЊZJ&(G`` @!T:@ K]Zf'5LK_\bL  0 2BO{BEE 8A9PA:ca 2,4/ L Pxͫ^323|Ψ_@ `4H8S V`Q:˦2t:~~4cG!#:@U@iAO"JAF @P0A{t -l ٿ7# B {/e .w ^/ ;qB^F-2@]*#gq+:'=BpaPPzYS ie )^1`c=@NP؜Lq nH,, |t;%F* }(PS{%@;#CMԔ2 HA BKa0HA4 Fӕv\|l?g*3^+}e@!%,<.H*\ȰÇ#JHŋ3j#6Iɓ(S\ɲ˗0cʜI&Miϟ@ JѣH "PJJիXjuȨA[ÊKٳhӲdt-pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+|HA%a@}C[k^:)X$ (^%!IpPAQ^{~Cݗr*I_Bu41v7Ffp@kBa ݌8ZFAh ap"^V@3 E@^^w b!$A$lW[ԤuPJWcpPf@aJxP] YyG'azdžԅaX#v,z` ܱv=iM,a$ ,UZGw@oD6ײv zk_yҶb CHXJ@2h;u?hjcgѱF^'PȺAôxKh$! M{q'aX^<w9 I8+,뮺ԡ5(`; ,vb)Z<ꎤEG@aJi/ӵV8A{lp2^z$h!tWbv.襊!ǂp]`) x/8A (@+$o@Ҡ=Ѓx čB`0 Hp@ K0!Da ;0AP@JPP%  v$DP]h)(!ЋQRPBȀ3/g0 ! NB4d,<A$KF-X0@7~@B )8`2 !H @pp ~JqV bxi m`&g /T`؃m JO?G03)0 7 *eEpO3ˁ0էa @$J x@R0>d! Ih ʁt 6 >JLTPbJڂP9 B $@ ؠ Xh8`, BTyyml KL.;@P_ha -Az b 6@]k_HH!΁ z0* 8,~,LC;gЋ `0@!@A `K@,b9̤/QkR) '`(QYqAX ?`Bx+݁~[$L0@G[2JZ7 _68@K@< `F;@pZg2 vDҔ#-=UKPva02g`$šM5N Xjʵׯ`QF%eӪ]˶۷p +2ݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μУ?@ ypPrN.7Apӫ_Ͼ{z(Gyo"3ه_qǃ2(Qa`zBqm0bw_ Ht+)lpIQ a6ZcF̐;a,` IBL"F:򑐌$'IJZ̤&7Ɉ@cA @ QK P9,gIZ NNe\u @Q $5 4@ SG9\A T0l3Gp@')x%+G@* 6 z"H`KSdA`zPЊZJ&(G`` @!T:@ K]Zz'5LK_\cL  0 ^篿L1 HL:'H Z̠7z GH(L W0L IfHCh@ +AAn!HL&:?|A@d s z@\~r#@`!x` N '5̀@p$a@ # 0 h̰4B r0 Hp@ K0 ! K؁ @X*Q$nIf:5fl@!L@/ռf6])(! d@3IVv~ lhM08 nD:H1@$ 2" D4PH @#ALAn#ȀDC[ ' I H\7&`'4Ԧΐ LB{-A0Fr.)zPO!"`]B4$VEUnjUk-X)i)0HI$E:P\ 4bԓ;Bl@ Hش!1 @%H:Ё6A5A י, nӂ`, BN:wz@utB7\?ܿm "y!B1c0 (- .`FB $ ٮ=BЃ _BW = pHT &( (H;#؁wPXx CL72[v)M!,E.H*\ȰÇ#JHŋ3jȱǏ|IRB( \ɲ˗0cʜI͛8sRΟ 4hPУH*]ʴӧP6S Yʵׯ`ÊjU% E˶۷pkvnv˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μУK׸aCء ] \ fd$SG2|(Ib;y)|ay}ׅuͧGJ ƞ{ɧtcXc3BuX 3XhfaGzJ>MlFIl` a@3|͠Ď5X ^>`]\9蹩faP0%W(t` yKa JaEcPV@<!CZza')3v] z2t`|mu:ۡPb@JuUZa38M6&Ft )E-K 6$! MQ|C`(^l /h0`B)^pӸ#L 5.zt,FMt;d@1f_ǯ[$U V!)Jд|2 *+PKm6wڻ x|Lg "0UD b ȐW#BIs{-ig>p@y0+thf?s ){OAu _@['@q9s?kPRJH7S~ DMj@$@`:K`.D&YQla0aXH JA> ;Ra c*s_0hQU`d<؃ az!$,i.H*\ȰÇ#JHŋ3jȱǏ C#F\ɲ˗0cʜI͏98ϟ@ Jѣ)<ӧPJJJF ʵׯ`ÊYcӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc{HA%a{C{fK0{{CD33(@a=; #? bCI3u!J~ݯ|xHq0Ffp@kB  ܅]\[$XaXgEV e<6 ;bqvP]n b!$$l0 U c(:rWGnpBcpRqG'az aYa,p lz` "^!MXoa$ ,Ёumoz|A* ^]c$fR؁KJ@2Dh;o?PUܷíUB_^IYhj >Bvekh$! M{!+yfIi"F| 7PŃFУEG@aJI@tllh` D`Pfĸ tluRo@5 }$ r|aqska` Hv%!':~o0Y!a@lu8 L#~,a~O"|DFlG/Wogw/o觯/o()JPt BNT" 7hKO@ C#p@@Np.IP 05@Fp'Mv.ѠAr((+ ` PL 8hQXL*@ 8Tp*HpM% p Bb `!9 nvUF1%KK5 ;  IG `PH @#ALAnAp ByrFq Tљz 9␂a`N:]p^r ȁ?.M*0A?:iRӚ*e! Ih ȁt 6 ~IL@BPB0%gz 8! 9C=F`4sgI[PRԚ AA1 th @9 F5ڃ!Ta=Ƞha&`3iҼ$'v$r: >*Bu; ,(8ַM `0_X<8hwPBpH@52 8 _dGMdRUHA -J asQ[ߦS'A];Xƅ#uaGPgzd-GG!,3.H*\ȰÇ#JHŋ3jȱǏ CȓZ˗0cʜI͛8sɳI7#4h`ѣH*]ʴӧP5$LTʵׯ`Êkp*U#E˶۷pjvZ˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μУ ܰ uypPRN.|AnuBD2詃# >$1s<`AqB _{(^uQ|鑄6p`{!R{hhFVl`h y CV` V@9Aly͘^BQG!wT) `d_3(#6AB|$4W1H{KdQqGx`Ɯ y,p`떪2*`08Aw@zi:j0mF$ CIEQ}n@5؂sʳQ{V `ꁆr 1ouWPnƦ3ޚzj $"[{{O~aWWduf/o觯/(R@с& g> 8XBP%!'x> @t@ g%D%aI7p9EЃ!Ta=(F)Od!"H&:PH*Zၩb?M >)K҂q0P@I Pܡ?K@@Z|З>vf :FȑX<h@trAvPKY--҈ HAvV 0 ܠ J`$$V@ PF-HX6P!@ YH&h Ja'P  g9Ɵ2o@  F  LI6x4s&q 8łA8 A-`FЁ_f>٠J)2@iA-"JAIJZ𬲄[H#@ ¨ [hN$u@0 B z/AF S%A,Կ2UA@䱪@ʀ @LP _\#Cw#PԢ F9:D 7B8Ѱ(H˂%3‘X 9)3h7*(ByY  e@JSv@Hw*,߂]җ0q/EtJdDLvu } p%R J  bpG> PՐܲPX!<,t@ 2j %8DS@!!,@!$H*\ȰÇ#JHŋ3jȱǏ CI!%SLP0cʜI͛8ssI=Р!H*]ʴӧPR TjM ʵׯ`Ê jU##E˶۷pivn[˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μs{pd=I# a|)tA3,X!l@2$Tg 3pzV !Fl!^$l0i_H~$AV` H}u|brpdK$&%Çxy@`tF<8 ,u6X lh f0 u|Q#``  1 ;<2t^_J{Xf W2ÑAE@m#IG"ad` <|qnAGߡ!h$Q]F + hp0@|&| )Ma)0 B{0A{l`LկK!20Ãq0bu8,&>Kґ? $E@FL^-7!{фeFlz `v tР1$s!7mw@ԑv_p6q$5|ئ18>7Bt uAG@1{[b$u/kޖ>ޘ#hFf@C(h!0}jqƊi $+M؍BJ$0bN?p Bء/a) 9\ bE̠7z ap,@怨 1@P/IPt #C ~ JvP p9BABJ. ,F,bAT'!7g;BȀ&8ǸQaA4 Jȗ(P(cJ&]Hhҋ# I`#HIBW([[F2^`IqHAi pȁ95YG9.'yL*0ADT 0ILcnDCyp3? " -x-e/=@ 1N@LBlPP,`A؁ B4NHE*" BNc*OԤ(Ui ! 7h-hayiKBK$'`/(P^:/@ F8JzRz0p`)P &P)\5w@*؞2$)[{0B]zR%7п (EVjl@ `8r ZzIlhGk!t:$K&;X}Nˀ!%,E.H*\ȰÇ#JHŋ3jȱǏ CIɓ(0cʜI͛8sɳϟ,zѣH*]ʴӧP2j@ԫXjʵׯ`m`QسhӪ]˶[ ݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_nPϗ4nNسkν|A!bIJO° _x(gjGG ]Lw^zz$ &y桧uHBaЄw)@H0ƨ'QG!w3D J`Bl`FVih0:atѸ\W]TPA Y@(2h|fb`Fw8V {(lz2t@⣜ڇu8쀂`:h_T*i~sj:lЄ|XH{|Q+ Ft24th<f] hpybw :;tKʶlut4l垫Ĺb( ߑdV V Q?D q pGA$сpґy`1^A`M\V3zt-AGӡ8Rp0,X0gݝ'n%ڣٖ,nAtvpsV q=^GxV1R,G.9Tfv7gw砇.@<Ȱ7뭟{Pt`HaBP(05Wo=D  P AC=E p췿}  d@C *]N0P]dЃ@pdm@0(^PF0 [+ ΋8v *G 80y! ,GH`Cdi0l9(ղ/\f S8ÁoE\ @ z=%qvnxL.znmu !,E.H#*\ȰÇ#JHŋ3jȱǏ CIɓ(S\`I͛8sɳϟ@ %C ,ʴӧPJJիUȨA4JٳhӪ]˖V%Vضx˷߿"nM@]+^̸Ņ ;xL˘3kyCMi=/8ͺװcsL-`ٸsqj \NQ(\8УK@ͩkνtٽO<ӫ_>˟OϿ(h& 6F(Vhfv ($h(,(sidXP5tpC^B@b/4dRX;EcJ 4c pAu4 I `Qv0%e-)B6pI1DÏ )$A/X9Q(1C $`BJ,a@ Q, QPQ@8l1@@ʰ*ACܰ' D;)@*4͒j2 Dd }q0:mq`K6P8h Q `B F < @`!# 7@,)F!$qG p!j*'1W7,Pp0 QH[rFL/cNC-q |@c @Upc;F `kYߍK8u[p F`6@E0@p2 Q$т _sCM@ +ARA-  GQ5mZ܀C BkO K@^; $7_ o`vV"~_-6@ PX]sH!F@nЃ!Ta=@ @@?(LPAP bP}GЂ ( "i{zA$Ndp8DtJ FxH"E hav!`BPxϲ[A +I m:"R5GVx eZ@#Ph?@@Z |tJ E D*;L`zT@l  n'ѡ:gYK&7y`Vl`3K,lt1HTku+M4RWQV˰W  Ү#-EeF v .XRЪDE¹@3 *A Xz2(,F1xd4 `xqI ^"y` ު8S` Vp#c3 7h˭ wu& au1"Vw\tVg"F?%H `ji.@Z;*p2\O.@ \$%N#{RWYo%nCHuF`qS^ZV旳O AҚ &CNȓ+_μУKNسkνËoI{pp+"0|A &?|3QKPP YUhᅙm`Dn0 ,Bb C`4!w`(4Ut(IlpE_(B)qFD 4PJMHlЁ CtAMDlRlb n0 +ޜoj=m6裐F*餔Vj饘f馌u@%0#Q,DAq*@CfQ@0 T67p%"hta* (BC,Φt ]X Y:\EEqùkŭ0 ;@CcP* 0 @@#,ȿ! ,m tpHȆL<'u!,@.8P*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲD 2Ღ͛8sɳϟ@ D*]ʴӧPJJCfʵׯ`ÊK@&j۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_> С+ Mس_oKB{v#`OI%zD3ַߠ(@n0]u{Ȑ"lDfh J]}!Rs7%`~EAY Fylp`!wVA 豁}Vl` apXfh 00^  aAwZfvC)FA9A 3›9gRn`dBę(u'l0,ڄ"`&8zׄ| y6{]{6_kpǕ&K(фΚ ( C*ZZmaܡt lB {lcT 2AVۗFv zd~')а B1 |FiVwt`# uh̆ǻ,h;l B-,ЉFb;p(,5vB)A3{DHcsJp*`; ,Džf`q iıS7yJ(DK>Ck <;3~ф^ 6.uR:t$,yo9 }$e4x $t|Xܘ#jVX  1YX’w4A>O#Nn 3O F:{2O ()# `ǒF eT-# gHÛ@<5̡w@ H"HL&:PH*ZX̢.z` H2hL/6q-ZA2F(t oj% IB :Ё9C 8h>H&7N1 `8GԠ]jO򕰬# hN,@$? J@lc +DA ]h&Ȁ70A BD Uc,~Q o@:9#t H#b `Mp(9DHxԠWA7: =ih>zm|h3i@$ RpldBDR s' Z0Sh d<0ȁAZIr |M&9ʕ LKXem}k\1E7R P4ds+tC8d! Ih ʁt 6 JLTP2PV(PB {r`BX+HPA0I-od&wFl vbq -@d/P@ilk (m @9.roЃ!Ta=Ƞha4) ~w :A P[r ;r ^frܰ FnKL0@Nyڀ> `@"d fӂTA"%d-4PW !MKiԧ Z̢&قŵ7PB#H(zJk ">2 !,L ) @id"\kVb k ۋo`edXb! ,M & hR뜱+@$ DX$ !,@.8F\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲˉ98͛8sɳϟ@ J' ]ʴӧPJJՇ4yׯ`ÊKY%p۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_Nz7CIt:)DߠmOӫ 8H0d6P(`ttYB _{( (^sѧGJذ {ͧs8mD"3A] " Ex 1 F:mi#) L̤&7N2 3$`PZ!!u @0;,gIK RAAn 4@L2] `ALJU/ͼ2@ ;ZJC .@2P 8XB2# 2@6B ``VІ2 T(ABLP#PVFpHG{[@@ #t $HQRR YhB6Qt5xR!MNNvNRE 8A9PA:`ag@ ! F  թ^s3 (`Jia]Y`FA0@$XZ zVMABzU cp@pd10&D(VzI! 7@H$@ HVHFAgA0 wvk)-HMVځ v׋&DtO#8l o f_ $[7'InWJ &(elu+\ Wα#{0* /E!0XPOW,YR@q/)MKV'W92W)"~3 zp!!%{u' F`% OtM`W/,`eD0 Rl녩| p%T J0R !?jW3ִS`V "k'l ؖJ<! ,O ( d4%(h +N:+ ǓT(0e! ,SH*\ȰÇ#JHŋ2Xp@ CI$1 Pu(Paό8CƜIsOΜ;yb`eЙ,Zuh,:3,ʵ :uYS 1b!,(GnXˍ8H7&@ 4jx#);E Z81HAȳϟ@ JѣH*]ʴӧPJJիXjʵפ8dPѣ,F*@ +4&"cD,D[ ǐ#KL˘3k̹' 8TBe  RH4htD4dࠃg  !1cϞCܻ{캺سkνËOӫ_Ͼ˟O?(%P Psu\LR/@FAl RE=Phag(,0(&c7YDlq&?D!@yr1N@+L *0 `$J9ЃT(tixge9H 44A)аP8ؠ WЃ ";|H `! `5ߣBp9pij뭸^ zhk&l,U&%Vkf;gjTHkmH.+n@ENAtDd& 7սr" "eO0@$P6 7Dq@!<<н(psbZt0gLc4t(+@>S(dib LޫȆ5ex&ٔ[^є{ K 'Q•9{@Kа7ȖԷy,Ue< p PpKI C {I 9`k)ٛr/PW @ 1LD9ysٝҒp.`@靷"R n_q ir $x9Jjڟ :EA JZ `P gpOM,J3 :J@:9*<*\qj'L 0`Opa Ppa ٦2R!O =J +z!O azPyz s穞ꉞTꨔ+٨<Z>QzWʪ? ˨#P Ib,J ( MɃn1L X  \  2: ̚չRڂڣM*Z:ʯC1N L:W!KjPZETkO*)4ʬ_ OPd͚٢ۯ2+6 z<[K=+ ; [ K6k9k3{LAbZ!BȒR[:*艩ZA<Az.X[-ZkroK-qK,00+yBK|;H=<.\:"âĘ4JXQ]4,;EM$M, ɐ &p {a ׁL1335s3P\5ݯeRzӿD}` BMw ư ` 7dc6h6`}/o-ƀ K-k 7; ` ŐQM@992ք Zַ ysm 0>Э\N4@dV$`a&`AAbOnLPp~Lb茾ǎ^,Vd-P?0)5]R ۰ K n? I ]a@ = u ry<$-29 7S #@ &ei Ҟ@Ԑ$^a@  ~Ҁ ?+*5aCP>)^z]6E0~/0 9@    Ԡnd 9 08`?]9FE r o@ ]A907N%0#; $'_ <q/P] =>AnP4aE! >6p>)ݒN:0 Ԯ!9i00_ABy fy|݉>d;颟,ƛ?+N^3?Q"f⶿?_oM4=ZB ` P?PQ9)#ZPJ&2@7`sO?p"=` XA .dC%NXE5nG!;BaA%&` q(Hb?豣HpE8ui@7 ZUYnai$A Inb/F01(IZW&\aĉ/fcȑ%O\e̙5o|װID[ sb&zpP#D(5l bogѥO^u#&6haG@@"`BLp_}B;h4Z#D $ZPb=&)2$A!DSTqE0#H.⚫.z#~`qH"4H$@^$hG 8c78|#bη,xa4,PrN:3@' b `T Ba StQH#N&eРPAa Ș) LA a H!NJ n`R`#/UvYfuJHgڎ [n[5\r5W!m-\vu]ąw^zMwzwe_L7 0F@ :: 2TubEE# :  bF)"!N W[n!:9B@AHOVzi~e`HŐPd8H Nغk<"jF H>!@@D!C"8$l ^ RH10 b;!BN@E99C0$Y7 FHsv<9 y⎄m1a>_ł@Ĉ^02 s IN?deN (tBÃ&O{`dF4@f3Eu@z5OT-f^x$(B 8H^QPȣ  "P/ ZWC|"wR$AD dh@CpYm @p1q#@=)[v€HA C0ri=~GS3Ǵ k^q:|kdKQ2( -" MPm$ pptUtcР_XHȠ d@@_ K&A'8u[a-MB˰1Vn``́naj* Nѽ}oJ:ȭ FOqW"!, 6F@* Wn a vLH;7\! J0T(e'v;AdМ`7*~6; 3ly Pp D%ܫ%.Lr'? PrZ-A RAF/`|w5, [J%`{!v-l_@Dܫp6 KWXfbXt7rCj;Ka6ۍ[H[:!)P"\$*H$Ў `.AĕҸ$ Ph٨$@+#X{0° 8"p=x `㈍! ⨍46lx!?'ul6aT0eЄHX@nbss Hd@#Mgs(DUDaX`[łDJ|7:[Jh;C",P0(49FѸ'!naa  ѐ-nA.CЂXnJ,+ęcUED4F9?aEa@I |ue@aq0e07M_HdpESw:gXhf];`)ѫ J<(p*06Fk܍8p|8B.4B9!k#X) P) Kݐ  ̤+-K07 3A5a10L͗)ac [7[@+kcgpZ_HN@a9@LN\[@{Z8 Xd lNos[UHcIu_ܵb ؁X;Cȁ@!/$P<Ĕ}@ ^ TL3! 0P"@9,Pљp=k&Mᔁ QSAUaWZA"%-*Qx\^Y;̴ͅє0S@SvF.;/}So8:ŵ8<5;ɣQc Q=-K=(,!0<$P D9U 8t ι(K>j=ݤԎUQI%"4AW%tA4A\"d4$\&V$4l%2XBaXŋ*`!C?@X.mZpa,tdt4hFF7%tƺ)r4ǃZv$x\=n-Z(U-/$eMaH$D24m\nʮʰ5KTˬuK,KZK%X5KELk5LLYp3Xj,  \(\ݍD,]yiT@r\mOP%Mmun-;NP^g(_ т=тH=((uPLNIxU ӥp)Rޜ^~X56-3u9ZEa^kaGSa}`2aNabTS8-)X LU:NPQmAaWq b4Y\hϛѳm]b`Z1m#>n%oVq%K yUW\mރLzW32֥4^eϛ]mX4}A<"XA#\1YMV G} `[fYžYYY.,n'nXnpn.o ƪxdh%(kFbP-VR=UHU]1.8&D`)67ւcaE<ųeh =$0d "hXqHprLfcN~׽k`tP{WYW;ez5?B eؐ-Z\=]c70n_7`k^ٖ}٘sgepYz ڡ -o$'p%Fc|:ghnKlDDZE.}4iLJUlv l md%Fqp_!TRHm"emmN`-z` R`nw/Nv>?CyNyyy_/&Pﭘ*Fkl(6,ވ~.v0N9n9vU5Uq8R7Bt wtjEaP#4 ;8LA<Ι*YQ 7杗dc} X1AƎxH]ke`x * :Bv*4P6p^:C0_ kP;pD@6@8ؐKj2\E&'$| 88c&A@AI[re6S0P4tI0 9h]Pa~ZA~'6B!BSN A -ox)z)ڠZMZN:+)+ZW ;,ek[*,:WJ;-ij-F-{{.骋`B*Fz%OK vnUD ܛQ-yLMF\nY|1w6$2D,J$ @ܰ 'CT'cčQ(Q["DC(`syKBE2҈:3PD*pC?t611D=%'C\n*@[w W0 `eƕ[~9ў0D RP'`R@TjMI L H@A tPW$G.P-؎V<*SԝP"m d  y& !Ѿ {E m/T@3cJ@Įu+1U! -d?Df<% z M1BbªPg(T! ]ؑFs LdX>B%)1⹮./_4x X(1rdӘ)Lv4xF1MoL6mMTF4^`Sxh_k !r; p| }TBjQ*Ԟ,G%O UJ5OPTTjT5e%W͚VUmekU:շ5TuJR֨uu+]WڕZ[ U V%J+Y7JBvЁ@Jp$Udg`!fmN # %ty_T G+2,mb;nU~,`&k\u.s+ݦ:6zm+_EUp)غ4֫}wX,z"ihEҕ#)|K6 @b-H$#ʤT$@ &Ծe J`@ KNE~1e->ȁ rп`/;`PɀBpcqu>~S 'R@p% p/[X8BL9ѐ?S7T/zo pl~G&%D)9O$\ܙ#CEiҜ̢T^()qkl\nJ8E҃>d,mۍ<~{L jN;w+2Jɯ< !s~< ySϗK^6 Ӿ=s=/?>/_{=SS*{kǾR,~K\@?co9e ^T&ผ A \S&Tf0`~pL 4 i]` >K<#8#8 G4SĠ!!&.!6>!FN!V^!f!> T ~᲼ >E D̐p@~#p֡!T@ l A!a!.S!0 871"!&~8"(*'(""*^).*",]+r,Db""0.hBhT (8t("8!4D$0uE(lcUH'(78b(!B4^E;28REB!B7:?:E'D@:=vc#Ul#T,t'@'#8;NE1B$DEB=ˆBE7EB@3֣BT#^"L0*6BDGF'3!t# B(t' cF0`h#t62D($$$DB' Bp$T$'$,%96dgH%$@CF:BGVU%*(#2ҧM(|8"P@(,,ztn>*1%>׾>>/"?1Wo*UHYhAOB@AXTA t@T+efIw1vtA \o[qNĐ5:tq 6t0*8af,:p+}<4yr$!xá7rJ wtq`B)4zT "I2Tx*G8ppU[vlXcɖ5{mZk̺pjC,L@%KLFsDQC`A |1$ʒ&P) P lP\$l !Ǒ' {eC-R 2FD`kb‡7\k Wh@@%Y @v s8P9qW΋3pHc r`z - 5ܐ=% ZHx!#`"$nBH4(.(R8- C]I X38 J 7*Fl`Bz考- #akJ茀! !N;t3## :PAJ*s,P+AĠR"x7҅|ۊBb=d1(฿jbs22tn.蕪_ Vߟ_l1]삃(a3+8AIb$L@/ ā c#U1R `@@ 9o53hGh@ gA'E:+@*q("W| 8ȉQ2pCk.D2cr,K G` R0!A iT"ZZdtI:$& e+(IYJS2*D*YJ+t,iYK[ K.yX0T&)ye>$e.줚Axr@ k! /@V``tu @x^1I|"t`)=OpV"CHC@Z JJ= &RJO~BP-e Ef^EҔLiʵ\Υ.w9 _=Pl `2E!hlF Kgd3YPz^,*xrvӛ fVx&A0ysB'2*1]󴩝1hG<ꑨ'( F#Р*<}@mSBU*_mؘ t ªKhīe`~W SzE8Q\ lDV90$%YMܖ?P'?yHIf.Nut_=P6ֹi^;1 dy=v}kV[Y6sSNw]Crib w?d|)?ME8(T|>PЏ~'}AҷUړa߽|^Oo|7W~O|O~{__~ٿ~;ՇxWj$V k/X0nP'p&9dt.;BK"C$[Ncp+V$6Po`w%h$l0tPڈP wbP  P  P ǐ  P א * o LPIe  1%PQy'#3q*Q+;MCZxNH쐰ZQn>AdCF hODVreW Vh PG cf̮C0ʄő^ 2{QC(m!Α( =h " !3D!RR"+""3#"";R6$G搉$N$OR%.Wi%cR->R&;+B'sR'w'{'(R(()R)))*R***+R+++,2,î&,-R-ג--.R.../R/2/o@ !d /p$8So u>l/ 0@Q &=6HD sߠ1 3Z8Dh1jD$ n6G8 @BH"c``8 R:::;y;!0@ L hL`dh#8 N`!t3;S???PZbc82~ ĀC &3pLb n Zqj Dl -DL0 F`P@9{0`\T0$.E0ShFۆLE~HF&(ݐjR m3"LY TKHN5iSj![b' \PknNuK5TQ;0Q1UR-Q*(USR-S;57ST'0Q ^N: t'\U̬TNAaL"r:a  * A*`Xu"AW Wu`> $ac!U'z6!<:a!":vBt5^Y^- !u'v'aab` `Bb[,D@^!^jɕU'>m^=b66`#a,r!cj5cM B!du Wc17:h^WtVo0vkRc d@  GyWfg$?(T4`4@0rvq z`]Bbv tU |![q%w! }|l $n.Wb xZ a`uh @>Ab3f6`Q|AYu|!v,~UDa7 }csv!^[  m](Z!pX5lc[SbLwՇ3փiܖ2X'@; D8Bzw(V?a|w#` f+`cV%y: ~xVvv`)kAlox^" A Zy6@8jكO|Wox"~-AD8![#yFr6M"CX5dš!֙by"Q 2+`d"؎=Kwlb[wB 7}UJ[W(|X 4Yugw!y`@? ړB!rcX_ڀ$[;bwZ36jw[;D#,B 6$ ~Y,@W 88gyV?x'>kZ؊wu!:Y3{Z%a?zЍCw!^ 7肱:NsWy~6z^(5@D!BƖuj\KylqC0[7v@\dV;aᔭ A"5sSXw߶mS׶VOY%l#b['{{xm7*>+w-;;k~Xb""*(`"i6@3\׬+¹b3P=<)oȷ:Ɂ|!ɵ"ʭwz t .%f ̝`̜Zr! r!,\A |!xa`'rD!.ytw \ ]<|\7|f7LzzA v!œb  wa bsxl p+e]S\!t{. |YП++\ku˻%_S?z@W 4,YTS%;(P!0Ule z2 H%@Cg-_Bt-Jf [6QP:X)x#)M- :dJ(@` cۺ} 7ܹtF+D @c"t~<тBĪuĝ? cޯV0X9GG$SD:Zʚ0# EZwݼ{ (Lr@G70}P?D<1j䚋,t@FA: E qj  F8XtPW"%R09rɼDho la:D}XF)^ vber'%CJdK-~Ğ!Ѱ@07Pjú& /21Puzk=H'`$0B @tF$ M@ YcXqP`FFl<>#Z VFV"1  &?tރ/>p(tA4$|v# ]vЅR. j7eK%AdHTxR! -L`_jV(Q E*.(\-D`5*GjW02NGU"N+ȶ ҃!Ta=(09A HPЦ)xWU/vEP#0lDBČh/?d& @5*[KbJ:p `'G}@P@3/TJS)SpT4|x|Ax@^ kA w8,9yArX1P`$фFO\:sD@\^qUPb= FA0JTj_hv-n .msAr ԭNk(w ^H yK^gR{ Vp卯}ߋ΅1 X;T  f' Р*KYǼɯD8ϛYMXdĦ6}5_vx,(  lz[6SwLp _-u#&2I8 V sQ8yDKS/l+ YeAtK" xPMDMڄMMY^zpOGHCUDVUebS*pp"7t#2I@S;.B?a/ G6hHUR[=[(^^(hFKst X(h_xȊ=Gdakr` Xbax\r!(8tE`#C5YsR&$nHGatAPp'bU8RdGct`W] d7)geb!?{v`89ChOe*U&1gifZfp&ghVg_gzFzW9h yPUh0s%~2ip%v%P(jC)i^b ##)U^d! jteѕwmks!kR(((gm;[dq=sى8tbVWOYFo{W?|Fr gpYSvrqIc2(2,p21B.@q !m ) rtmiWF&֚ss1s5G5V5l'ntNYLAIp y CVJ a>:vx?c=[@yg@ w GGKH,,@j:gyAGAoWD`!g>IxzbIVZ0tF(W|W|vFdWGG= g}ؗŤ5A@,PI$pILJd&7HznI巧|'$E;?zgsvТLrA4M64MMM{1_<>(now)X)]VMTQj//38FӒ98:EĚsJOV1VW(WkoX`ca?()w{13g 0@Pv`wg;=(WJ?j! &n%59usqihB򓏖!cYYiiƋcz'NiiifjQFTF#iAk5[rĿ_P"nf @Q@8`4P2o&@`3X?@eqJu1# 73T]yۿ92pp1r)2G.0#34q& r'i4H4qAysy zqy[P[Ef7 Z@ƨ"Pku^wuc'y.&AHT dxIQ IߵƝv<wsww? w w>#:?aeȱaa0@>s;PSSŷ\CC[)c\GaQWJ|Zvb$]|+E: 46"\p@lKqT(mW{GJ穆JͻK.8ld”~,j|Mʇ>~h^5KUC]zd0 UcUV-QnI]W~['ޅgk mpюȞ쫸k ?\}=m}Xbp?P$m/)3_~ OH#_~1Y@*pⲨQɭ˃"vϽȝ dͫbaQsOo;=O?]T$j_8pCr(f6#)7~&} 6%߉?fƽ~V, Nf=}[)0|V@|y=00)nn8w 6NN<_1Ϙ|gH1h58'A㙶'&959$Y;g@@ r B(G#,i ^/E P$͍- "T8! 6("]\cȑ?LpfͣM hCC"`FtkXe͞EVZmݾWܴcnxdPc 5^BF=01t-_Aǎ&a8y-"9c|!@)@raQ@x@x KJxs<.ku Y1c/F H_}2UU0t~~d ʲ $m8$=l:X"@OB xa~* !ڐdb-`AF@"%TNHzX*28 †(0RE\r*R9`rCP -h[+AD?-+?PѸ +  h`CH/4Ӗo/4.<3TSOE5UUWmGY5VYgUQ3JRQ.^k])rQ`֠f3utYiZkɺR[o/Zp%\s5 0F@ :@@pۋz%>`I`Z }s"`3x[hA(:B u=L4 ^x3Roa(<]x "n9JJ #F-Jat @a`^)80V:-N!92(":¹} ,O"V`\a]va rU(( &‚X„v0 D/Nqғi@CeAG~[gNhsvͪR*p fv{Л2꫊`x  @ɏOY7|p]4ٙ2P ؒ[]Ha a C`<Є'L9+ﲈn, !HTt>BȩL@ `C l@xBt $1:0,]hG: 0&D "TF=BK:- [ FG;叁\X 7@|_HaAp# +IHgaXi-ˁ %%dq-||)DͧYŤ\Bq#Ա44Z'(\Mpm hj`@@9}b́m|#`!() !@P"go.]Mp-Zha HFe2Mrρ 9AD8.! w^x4~O6թWP!0%-58 x@ өNz0?FH4ʠ:N%jg>є4QNw$ia&n㛐g89?"T9_@1RkcV ߉ ^j(mNc[A)Ȩ`ā0Tw8@Z$*(#\݋LDˌu1bZ)Fnl qnF#.y CD)- n0K_bXk܎ |TfNu/3R_䒉I#Rpt\4iK^Y@WB&Hb,i- K((d$[.]F% v\ނp`[w^AnW{Bo+^ (lNSs̓2K4jZך[uu}XS45^pټpvܯe+ .N'&2I~K*eL^18 - jʲx Fٺhfpg?8-F#՚֖j/r bD@Zp8=.lQIY#k\ 5*o{ lh{q_yA%=-S$ ᝎ"7>Q,qjxz ^A]j3-T&:Q4`9`4T]^ @QܹY& $| D,&` AT x'z 5x#Z'0 *P(j(*(s)08}R XzK)d(湩o))3k >7C?ɜ jB=Z=!HǘZ[82*" @ 8z٨ȍЖ ɬx-z-(.#Y ڲ-ҭ.-.qsCCcc62C6pCF99p.cFZ9ЮS3.e2.m4ƋxkƃB ќ}T X&I+ : 5 [ A Ù(1%91I)Y1i1 {1C :-Iɶ8sh0!SP12$@t %c?m9tLFk nsJGhgtǪ4vln\Gulpf|);GoJj< xl6y,*qû,:Ì;˺,;Yʾl \#DL9LJ( t @l@?K@l@S<(5pL@?ʴ@ITL88ͣ5 ԏL~)4ͰM kJ!9-S#[ !6 !0:S碑+83ɽj<"`00$03pTW=#2Z >f=4 壤#3CL>o"q!*-`?5 j #EE%R2b5cQL7M͒M MRgMaSYĈg"݌Z%l, \$قڷP! y[DS!j(8A6@װZAAR { E‡2% (xP0(=' lҦ}E. òXv Xܳ^ũ_)d/(+( ЋCkܲ-0 D%/(8W vuELB‚DB=:`EBݴ*;BEZ4 **W^: ]E4ư&c E4"RҼ@lq˗2fʰвJhΦܶ0/҈RS13b϶R7lmH @􌂌ABCX[ ȳGH!H2A( 4F /ət'IU !IIL%s_2V8!Nd)K&߶8L`=c:)}tKeid)-zS ^cQ}C LLlEH5JVV Ybƹ_4Ntͳ($Mf"@ ٤ejM˜XMĥͳC^FVG6F_fͣa6f$NI$؈uO$EPy=4iR:8V`COԹ%ѥA6 ָ0%  &!!ѳ@Q CUɶuc79тR>en (p.8oFGU5fZ9ff(}>Rn.gd.:[W (#xg@(xD @+%(]H5IE;)UXN OP;)U]MUA= I])kH63T< V˒ӽ0"(cf6#. !B? $p)r=$ h]WW4?J5j#}- ~e;W> XB2X0v=S*IZJjmL2?*Bn J!&?ZYm&^ ^C&,lr HAy%0& Ԗ*!l$(WmBۋ)[+[ğZ g2'UCȥX!%:Ɔ?]V^"Aa7l'і7Fݫ]It-[DJ$^D,P,M,0EMų*<$ -Ee -U_ EJ>K. ~s9cW](h<{+xaF׼H+ H0AlCI |^f!ھ9 "&;@:úh:jJ} M;@!>ն^U%ް{;ӈ(,@D# ^aVa-t '7GWgwLJȗ~R$F , 3(ݡp {(ZM?8IX8Ć("}!qpv=z#6CZ Hچ⋈gV ~{n}5D5Z%`UȀJgAz^e3ܩ.oAAp Lje p!Æ9!bBy4’!Gxad. (R"int 1@~t)%hN&Q刢 XxBVdԅB 0rхۘZ-w/߾~,x0†#Nx1߻ 71 7BHtH͈9(5&N(p##Șbdus[; زYf\&f9 IμXDj增(6aY0azhQ݅ x+'5,G77cC #QPa(zCLe' Ptx&)Y{BCB>$DB8pEBi cB:U%{As`_֨B[Xhw0BG)@ ǐ #_Lཾq`xBo |au-^e[K Hph0ri\LvP70TP!ks2! R@L֡t[;\k`  NE 7!JyE)cCP! Bx@! ,QW>Z@*\ #J!D3.L@UG CZ$ő$Mrʗ[œIP&M(oLϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ 4@` _]Ac {fTMUʎLvX͜%@WKG@a@! ,%C dih[0tmx|pH,gF.PޘͧbAumt* xIY?E!! ,8 dihlp,t}6;;(K@ g 9` 0,0k*! ,H*\ȰÇ#JHŋ3jȱǏ +rذG(S\ɲ˗0cʜI͛8sɳϟ:MJѣH*]ʴS>JիXׯ`ÊKv#ײhӪ]6ٶpʝK.ӷvW!޾ Lˆ+6,uǐ#=,)c̹g?74ӨSs6k_˞M[nڸsKyNȓ+gx|s͟K;:뤭c}%O F˷x?Y?_^5`&с 6F(qMhaU^anD~(~!h"'hb*b0rb"Hو:#p=`BIW$L6PF)TViXf\v`) i䙭!9lp)tYfh)Iu矀*蠄Vy&)$S6 tPt`ED : t0;t\TjVbf)*e`*@e1AKNl#QJJ紼:$}-&( $L =$Q( 2p ;%$ (@ T1廂*sD@ 2.,36ki Q0Cs3ʤR8J< T)M9prҩ 0B7n I ?P0s Pp[A~ 2$dΛ@FWt x` 9`B)6Úz~{{g. d[<|J&}ۥc0 *1 n^}EA>\tEj h @'QHB L2 $`H < (+lNJ TP  6^07̡&Q q,t 8($E4 i0;J I@dbG nHR Ʒ<8?<& | j` ^Џ$ArޠCzAL%C*v$MX„IM@t%,e% $% `eg%"dL|Ci"@.SE. M6A((*%Oul4K^8@* `B *ZH>IkG8B P@zJP}dX #-EQRv C 3HJdivJRL/=XИCE`PLn,N[ E׺Ms9Y]K_௱'d'kRv:f* -$+Z iS˟ӲDq-lk#,{jRE pK\䶸:.r2w5}tV6nT.x#ζ- zӛ70}oh+߽з/~6 x->p0t{0" ' 3 s@x=,b;:1bP 1SW6^ns[;1h|,=2ϫ%Nn/ )SyV}r2+1 f.0ӌ5yn~,ӹ3/=k~0 bB6Ȇ̠#D3 ~y"-iJK:̓.tF ғ3]2Kc.uPVw:s^ .v0c?^Үvn7;>w˽k;wuy;"oK?3+</W~/U2Sa<"7?SԳ^)Qb/ٯU={탯z3)~E/Pw>ysX>"#?ӯ /ӿ?_~~8~h~} ~ } }(}X}||h|||H|{!{#X{%{'z)({+z-z/8z1hz3y5z7xy9y;(y=Xy?xAxChxExGxI8xKwMwOXwQwSwU8wWvYv[Hv]xv_uavcueug(uiXuktmtohtqtstuHtwsys{Xs}sr(srr8rhrqrxoo` QHw'sy8u 8o_8v򵋼q犰׊,Gas!E`ʈw&0`}ڸ@8G!èȎEFf膏馏Ə&FfцᦐƐ&FfƑ摨&Ffƒ撌&FfV8:<ٓ'Gg x{Ɣrul&oFffi`cƕZ]T&WFNfQHKƖBE<&?F6f903Ɨ+-%&(Ff"Ƙ &Ff ƙ%Ee饚Ś%Eeڅӥś%EeȅŜ圾%Eeŝ坬+%Eeo9YyqAI! ,( DC]r(HD$d"ɍ@zL@a7B$AEE̻ Nȓ+_μУKNسkν/WxL(0L.&LPI@ØL%Ǟ%?MB ]M@ А 4d6C@],[,0(4h=&܅=Md&HP"$_}yw_8T}uap <P1(&=у utix|i~ N\@,N߿A ?V`E.G'b$r?b\H.x\@~.淋' !Hb0Qxa H@ ܏x  dbQ\+(z A @gp-RdߋHo~,$X<cA^ 2€`ȑ2:qx0D@]@E+ ^!pHZ2, s/`^Pr"lԢ "7\ 2ȋQIfъLdY"7m [8Do<\7[4 P/#119AOAY@V=Ha.r7j8.Q2 ZK'FQOBDQr *T' ϖiX5FC(3=4AwVt@jEB`yG/rPZE?rR%,UGgmJXh\ւap^ʾ`K> $bۼ"H- l2R!T$C!,nUآP2%l,Hg ``"G2exݭB!Y[`E2TaK>|pT ,y-3jcbYƎ8{Z-X bAD*޻݁$㶈B q CQ |P1aYD#ӵ7|2eW A^H"K[ ò o1ddƭ04,6@+W< :fƎ g`#ɼ%~S}7a{vi NE-V>H-ilaCi8^l"D2! p }E*jl (,w̖5e0[3lAd |S!x-L`_̸Ǝ2%gD~ z>B/FvH-V OXưi 5N{ym^AWi4mslYDj`Jl.2jH`+ֽ J엳°2UB]JM _b#7Ϋd/qu*Fn058yoSd:kt|"Eҗq:ӧNuߩXϺַuʲ`']h_1l[;=kr4,޻Ox/OÓ<񌏼C~|ŦV{쪼AOo{_7W'򬏽y.}{$wԏuoOk@^þ{ˎ~귿5{8{x Xz ЗX8׀xg|o 8b'$xSg(B,108&'4xf8`<@8%Dx|eHqL/P8$TxdX1\`8#dxchãlp8#txcxX|A㇀8-#x(c㈐8#xbelj4xz􉥘l81'8X'xX##8ƨxXɸ8֨08w׸zǍh'X#x؎/rV'H{yfYYxɍ ؐ98yǘ9ّ "9X&9(,.24Yx8:ؓ> @8DFyJ Lٔ|PR9tXV Xl\^db dY\xhjTؖn pL8tvyDz })|;hE0I3h{i`011 #2$~.јb793539;yy4I4M45BÛq37us7yC{7ɓm#8a9@9)9Y8.?@+ap:U:MYIH IBiɟIY}ʐ:|Ya z:9HjQg &Jz}.!1%'}ڢm֘*.zI闢#ʢ>z!:E:59ʤc )'INekx+ʥ`6 8JSʣ*)BZʦWr:KzgEznvZZ#*Cqzi0yǧ񤖺mQ 9+q 6Qa0ڪŇ+:Xjxzʫ^f㫬 %~Z˪aڈNY'Aj'CʭY *wHRJخ*8Jf՘:Oʎ+}rEK [ NJߺ(Xڲ/E/*'.{<C>XCG;*뚴D" fɲV{KE#%;BӵKK.ᴖUj=R_{q;lZ{sd|K:+5o n䓣,<96;A+u۟{:k=r vk[C?;>k?k{<ʹrՋ5[Ct{;ҋʽ4ۼh(/ =à5F7JNL.E,1XL1r]\]PU<|&gpܤHL!\@kLzle|3r ƒ20ܡZ`sz |22ȟ|2l ~oʿt-Wݶ [ި'^ٚ33< vpew}F N#F.8@WC^uEj= 9nz).^-g26gwR$|8U7+Q8S.A~0I>tW~'Z|;X.#y~IL;S[tnڀ>Idüo39?Y +J9o1?&cF>42LN"䊰%뉞3$9nCWn同gg qa3>t^8tЎӎc.5në < 5 @rcT4m,5`wk"\%O8n|èVMDʮ{b؃5UJ!o@fO}b5!4/С+A"qg//qY.ݶ[A+:i/ўE 4̉0wJۿ|_#޴Ҵ/<͌io/O_սO#1@ 4j#>-^ĘQF=~RH%MDRJ-]SL5E6t(r"UB>yb0MCJ(Q5{|z1*˩6ŊՉŤY~;sǫVقsΑj3vUvRA8]lְ`!BXdyA.>l3ŏ\MFZj֭][\CijByНe#9.o ]h⦛\]v!_ <\ GxoC_|ǟ{#(26/4P2)*A k‚C ? ? PRH4HDRo:{hkh:\ ς43="α,1K@7J ?m(WA(lsˎq:Zh?=tGǐ!k27tAݽ4 }S_݆ 'щSZvB{[AXI H!*KCbD& Dz}ebND@=L1-z!|Ł{TFӨ";@7Ƽ)N"_Խ&ҐD!(j#@jEQab?k{49*vH]3ECɥssFImZ$BY8A0d,)CLJ߆RИ])vJ,(@XB<*-\dDg:չNO tTy=T(ÕX:t<<ؑq#$3sGbqBIA!ϝ';E:Rt>%HHw҃+1os.٦'7:Ti IT*//w15I2 .#JW:MM0m7KBɦv$- P00&CJRczJʵ5PuNzi>6ֱvP:G^tg=9QhMxry?CErč mPr&KC-{!˭F2:Cvh[TW#\6׹YDV)ʸN0ޥXAX%6MMU )U,*H\7rM5]Zĺ!U+@W/x[ƒd54bՙ.%+چ̬o;/;ž">b\7vEK͌a-B1?zuA߰X{O$#z6m}PV<֢1&/V-mF ZxHt+c6&U3V^^&g@i%y]_2/U~i9d3FM!i?r|!{_siƋ4m$Á}ִkM^1+E10iKz&48 IAڀ)H߼lf7ʖE0k0Ep%dj4"M;p)Hs2btS #{Lɘ}rܴ[D-4Zch<}VQ9|# 18/ĜX&Np粚dJ12+?#sYԈ3u>*-zxh`|$"G *0/*W7i\3>v-昬U+p_< @#{Y$ i7z6E>w1pGM"]g𒓧>yG)3K0: /恹o=9ګ>X}7v'I ^>-OwcZAY8Goյ.h.I~_ٝ~;CIr"* Ǒs-}j>۹P#S d|>B1֡;(۝3>;C;ٝ'i, ,C-mӾ[ 124!s̫AL3t#D$?ӾȫsJk[ k$֓&?/C8/Z*?b8X%[C3 A+ `B-,$>~ +d,\£:Dék0 "Kà {)cCC5їC",#TSDTD hcR > 2pڼ3>s4tGZGk)lG!.{MG;1dHǡM:ҫ+:Đܴ4ɰFpɝI`ElsƢHcšm,V|o󝈹"# ;"F+Ϻ23 a`F l-ўc0;ɞt˷K#E)ql:G‡ȑĿz8{Ce?ˏl5" C$@ά*x 1K=w|P8 1b==>tDm1P{eMBTЄs:{ Q G !l1Q8%MR(ѕ )R%lNS$N+ZmlkN(KF^4!7F\3MO,/QI ,R<O CUv|MӼMtTM\zHYCGmjKE6 T@${ U/?EQOSQdzQ$ UMMKT^ԅTOUj5DR!uUPWŐXEGc [U$T 2E5O@vrҠCJ-= 6wJ@>уn2-V vSؕ ǣ\ݧԤOHa2 If>?TVeam?1Z5l[R&,HUʄ3Qe;].^W.UaY^[T|^LbGeߌc%bv|Sfa[vvgaBͅ\-JT@- ڥ ťXa2*S>.m ~爖h3F[5dcaDj^;+pfK`e ^@,ISN)qifU:=)"#\ (`Ew_po W#0  ( WqH?08lwruUsҁH %.%B)P 57s9r9;Wq;=Wo=?m?A/lA'Cj5ۀEgFwGHIJKLMNOPQ'R7SGTWUgVwWXY`oD7\:^<`'>bG@?dgB_fD/ 'hv B0 vW!u6(7q P"#w] (|r7##r#"@?\'08s!##WY(y/P"1'XuoWG ]?\7YWTO7ONWɆp'7GWgwLJȗɧʷ! ,! H*\ȰÇ#JHŋ3jȱǏ CIɓ"g'Ȕ͛8sɳϟ@ Jѐ&2+^fhѫXjʵׯ`Ê+'Oz"!cʝKݻx S&XrbBj&*^̸ǐ#K.y Y1UPɠCM(e>)AM۸sͻ Nȓ+_μУKN<P gY[LL6ӫ_/d&3OUϿ "x܂H~5Z0&/TԲ` (∾-#/$Aܒ8B8㎊ rK-*<&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXg\w`-dmhlp-tmx|߀.n'7G.Wngw砇.褗n騧ꬷ.g/o'7G/Wogw/o觯J/o HL:X Z̠7z GH6&L W0(| gH8̡wH"HL&B}1tH*ZxP.z` hhL6pcH:ڛ#> ;3L"F:RXxIJZr%7Nz e% 43L*WV02+gIZR-w^ H)S L2LPR͌4iZ̦6Db 8IrsI:v:qtj3\SqCLR½0W.ŚqS ʸ8fų{V>r@],dxD.2j&S#q_,*3Qr\D,D[݋LfdBe>{6!qX-:f$r+d9}M_#f*Duюt*gI ĖtKBNImQڑFMX6Ձ uG`RQJm^OauN1!&>iMm4[*®Enޮ5fmgB;$^;un? ny[FmPuV6\:|7=)ȓFi}St< V<G/>nO/Txl7xQNs/9!G~N܆ss5Ozl| `~e\cDX!ˇMz-3)8z'.ɺ?LNNG|-^Rp{Kw)>g'|ߛ''+{;W]xPW= $9Me=|/{G»=r=9YOt̩?Kox_ӧ>o7)?#>}?!oXr2g[d_ڕ@Dhy!<%hC)M?Ȁ0hw#CJ4DwÃ8DmzX=='1xwSMkE=NHC)t>#uG>M@Pm1S3usG\;j XBvhDڃwRHxMDXQJ(Y 4ig{I-dž[( E`؆ChnNCMZH>Q_GEHD[GE(Nx>T;LjNCx=DtSgUeX>Xx=ӌGt=Ԉ;H('w@uCL|R1*w;s}tFX=HDć$DS;i;܃ىyD~NؐσX<鏣H@H4`璽cJ2)CX'K<<=6X7JuG@sAWIՔ+䑕\stDiBKoJ$ĐU(Y<_)V|8@Du5A2 8=/՗.AM; <=IYɏj Fw AV;< $ԛȣ}\RMR!p 9>R<`t<4ǃDqЖXȩVAɝb(u@i١TB93$D*TRI). c!G{iYHáF$ )<`@_kjS s m/vx?(t)^*mY-ڙ4aYتc"C& h8i?V,dr˳$VW;N֪KQ;uk1XkJ0 g{j?!7]k kn!A,7 <třG FJuLG(v=+|grU ;ۼtܷȥuFLsU5xKuU;ͪ<ֈ͡ đ %ǔ:9ߛd+wУՕՆ <7b}Dq'g} ׄSxfմ6ݱ;J3QvRB-\×ޜ=M1j[v˴8 Xȓ}~m=yf[M>Sl -C]Uˣ-҇^x<Hő~nהZ-~ 㟬t[ ޴;=.% c͓R|ZԚ<ۇY춞=ߣsbꔓ kzkߵ^eK1n> ˮē碮*˺N~~n.(_ϮbL/}#} <?ƒk۹űA*rZޫ~$ ˗kݺ(e9]~ Q@r^OCMay>NxN _̦z18NK=.fqKot:=?v?t坏x'ЌS@=}_~m ~/=/^Psף\;˞\=GML =kH0-/^en=п?==.lȿ# nУ8z;)[PXUXH᠝ Gw߹=?ȉs׿Rɸ5 XUXH᠝ Gw߹o Xkl4~30  u/Jy^( b;^IͪA3!I%mkplϋ< ڱΚߊݼ-ɡ@8ilϋ< ڱΚߊݼ-ɡ@8ϴfk?8|˟/io[<ܡPJ{L;_O=X<|zh-?Im зdžkUD{Ǐ=~i-?Im зdžkUD{Ǐ= Ioz֯o8@DhX^S/){d3OB,KojCymϴ/ωo(: ??my>o; ?^߆L8V>W3ߖG?jޏCL_g= g?>;=}QI⣀߀?{_@sLoO=/({й|yB_ ȿW4Ǥv //I/Ig_Cma=q߇8= MI˟ۀ:_Bե2?3׉o<|Gz*D[ []/j8z)OV[C̗03h3xڳ-fR4nzSץ>Z%""D&&?s\C.y]U - - -@OF.ND2Z?g߇2Q瞜\@ܞFoS/=cd-IsCvn_8%SY<֒4<ntXC_,[TF8?XEnyD! ,7(HdÇHň  b t#HH4hdʕ0[\3&H\` tC"MʴӧPJJիXjʵׯ`Ê `@eǢMv-ۯnrUWֺvuo\! ,B'qI8ʶ Iha꾕pa@O)>C Œ Sj5zxL.znpo#0;~o)~ zt{!,|!kH \hHѡ*j$8@V7v(BȊ#I80,[zT0`e̅0& `JTbѣ1'"5tӅMJ-iթSb5j@! ,ua H@ `‡0aD*(F%RC*r$ʇ0@ ʗ0}XyIŘ. O@H",Q.E)*!, HFH0$4Hŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8Y*H*]ʴӧPJJիXa90aEYӪ]˶۷pʝKV\(9X^,KÈ+^̸݁*8hb)&0ϠCM.w%0(۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXg\w`-dmhlp-tmx|߀.NN8!ϸO$n;.&n8gNPt`@tc X.n/o'7п%)0 (1o觯/ClzcKH,7:'H Z_P!P!@Am W;k8@*`@M9ƝpY5 wCYp= !FL-PFVSe bHdQ 6,4p48a2>>Ѝx|B} "5F򑐄IIr1̤&J"&GIuғԖ#R򕶛d*g-P@̥.Y'>\ !dK_ %2fƏe[@Zjfp5nd+7GBL:BL±')zӚ4y~>@Z|MM(І:Ĥ-J1ͨ }T }'?ҒyDoyҒ-LǠs }MqӞ.]4}PlHM쀪tJKCժVUANuTΩ”`)S&TVF5YұbmTekh`\.iCNu|-xޠQ1|/(}_nc`WhI“0l_NL?Ѫ[0a ˮfpP 8@ތbت8OmC_&#?EVr뢬$מLv<8 fI^[Ns(t#ќ<μ3{dtFL蟲gcݏɹ[~`l&Bo=/Ѹ nzb!iAҨ^4ƒ3GV/oЩ50ͳK}t{_/k)f;cu=Osx5hYθvYS{| miuھO-fC[gsחɆtqhfqw-wuݭ$ִ ~᱔ wu80hzON}W|ij朳o6ig͕yFq gOoAsuO4fk.tvG/_u܁z:t\}soݗ`uM]m=v[>k%7/?&?o>^yЯvv?=位-,;᫕ůXx`޴C@.={o>vXϊ|w-vӱ<]?{P/R/3ށwu~~󃁵7~mW<'z.u+(W%[3850l{;EUf7s;7~PlQ胇/S~TՃ]Ox<نz8v$HYu\~f]ax|Hx(S_.8瓏c׌u؏/X;~X'SVh9qYE$GMYR6Y2 )F舳#8ؒ:%yeIQgh\z<_Ɍ+U(;ɘJفa]btITb(aIg\&x{{ory|XXyy/ٖ~9U0Q1YGəHY.ׄ@9YGA/9>ՙىc[۩eqca[pQd:!c8y>>vt9m)Iija@DP=:3#& `يE9㞤YbY":nќ)w6ZykXh<9ٕҠ3ؗ~7?5w:ء ڈ⦥bsPvwzM|}njo!Cx7QֹT:¥זh 䨦:3ko<奩b惨ɐ:yvCx8zzYxUr}:*Ċg,`QJ< xiVgZly zI4ثYjw&bVﺪJ^ZxjzlKh[, K*2t 7jb$1^س:x;KZL/+,Oufé<^# R$T[Sv&A8ۂIuHKpe$ۤjpEP{kIkqzs?(dʗ,;;Ƶ&$wzUk6t- PΓV*W<_b;9fib̓qַQԺs~F~k𗼰뻞2SĽ{;_{#1( d09 d)Ǹw +_) sK;[_r1*HLvJD ,\a,)##%(d++6U:2<Œrl*$Êbþ9,;<F< JDl(>Q`SL# YL]2Ъ`̵ŃRZXƂBg t,wǿ%ƻ!~Q\dž|-Jȍq'\!ɓĕ'$bt\+ɢ\<)əʖRaʰl^hl˷V|)̽T|)ż\ ɼ, Di\)̉PmͻΎͬlQL)LR1gκϱπϻϵ*%M>|$ ѴKT]O+O!m%Mq&҇; (/-j̔8};}[4+=AK?C;}|J=MJEOS=JQUYIL՞ՆtF wI֙$XdFÄlݕo Qh]+q ;Q4׸3~@zփ]\؎ɫ +Z)u؆ 0-wىǛٯ؍M˭<=ȍ;ލ;׽M}74=ZpS@ۻs۩ߧc߬߱ ; n ~}m >."ଝ> N;#~)NT.>'أA0xPq۷(%.>NG.(3~#;SN>;R095V m#4aL -;y]v{}~|~ߎ^Nn~>錾n>^nꔮꨞNol4C>^~Ȟʾ>`0 : Ԏ!&pQ?CG ,$7N$ Gn!0^$P9+02_!?a0D  ! , d ,\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0_BزP%Ybɳϟ@ JѣH!=8PJիXjʵׯ$!ƒ`Ӫ]˶۷pHOAP@;߿ L/Jrpǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmSH'L7PGFWmuRRg\'/v-d5hSl4j]X1@ I1_ -fn'7G.Wn呫U&#aꬷ.S~EqY,ry\ }TJNR]OG/Wo/Z a ȰCCsA08ag__P"DZء>e J1! -V̓4Pm.a(:yaDhX8r: (<Ǵ5ҮHȐ&2Rb.m͈2h̒k'kHQk"IɦK6@VIä(HErl%(SΕ]K*+9ZId<9KZ>*`5Y1ݶLHqD&0#\&Nde4InHkf+MJ.1˙Go3l\+b.MvTQ,{hJuӞ>ʼnJ>g>xVpngBЊHk0 NA(4 *6Bm͢EW!H:$R) B\FMZLz5]u:Ri(mQJ9:@|)DFS2vOꀈ@[UZ@>Ыg:NJU5?Fj8Q')Pock[W(n,ے:X -[66ְd:LҲټ N1FX9ִX•+PS:=sEgQbr}(mk{Gk^4\DiҞJr yݖMu&zVy1kΕ-tݫJ-Mv{.şu+_N92 Xl&}-LVnqseḬsb8ط歄 a?n@N?v'>)}iQWowQ}=5]ߴ~V/~Ӌ|7KvCV7 J7zm~~}>~j8WTPOg4 xg H~ugs0Hj41J;Q`!4S&7tVVVU3HOOOCPCE0C> >ÃD@# >lJ淂{'J*myw$s؂t_%:$zOf4]|׈S(C/؀~xxWT?T*{hI艝KvhB|'1L8Vd(5Eԋ*T4g 臡hX{x،QSC"XKX'~荋ȋЈA(ČyTx|PW5tB)(؎㈐l) ?؉!숑I8DB yFxב؄h$i@nƐ&a~V*琝j$Sr鶓ؓᑩ%(5Em'H4hx?\Tu(pPiFwEEWRtgI:+lynjq4GvtC"[jiBȒg,5a8ɄI6 a2tZ٘ dSYnBѓLu$Z)ow)Y4ID);*Ioٚ ;v.6XtyZC1Ad4y:tefiQԝsIo霻x^هH{dٞxIӊÜJ왚3ii_IY: W@AqoE/4#OcٕrW#GhG%ɂ;jyye9nD"H@:9 ;Eꣅ8AZxP^Z9x~0A5yF!qzt)މei9YiR5*Z jr:vZwe6Lq:*S{HXZ6HDJ9)C:Jg jYU:eJ6l Lz禃*e\yTDZA4S=եGz*}Na )z}Y(Z䪨LiڠO k: BI5 4\KH:Sj:ڧz*8#ˏ:$Ye):ҹ7檮跪 fjs Kk媭x]BKKDN*(YۨN{vFKG{:HRe6al okZVʣش@3[5j1P99浧3{2ˬ')Jwʡh9mEԲ-+km=^3aKʀ4J= 5ڎ yT_(kn[f{~;ΛFu;Hkz|IʥM7:LMiT97晜{hydHLNӚsZ%3k{[ [# KZ[:Vt[W+)L,  <˵ HL[RnQ p}0j3iU;euqPh$JE\ g4˿ښW?0I5¨+Kl\ot{ƅCCH˴sLbi&ƲZtg%̣:Ǹk?*jl*3MqםĊ-ʲz$+ j\<9(N pL3<[uhBg:.DNA~?PC-OM[S^UKd׍>F^IWY>\[v]-iQPmuo~([ߴEix^Hqkv2=]Nk辨Nj]:]QӢ 靎D,xxEsnfZ^nJ$>>d.nX~Ҟy՞qj&cNe^/ @c ^N2pK NX4 es&pWy LD(L.5. 3"mO8/o+-0nC^.la4Ew@ sg:4TMc(/[aOY95?6*4/o81iOJ3_oqFo?=^n84N_oJSn3_/555_4Oq[g /Nc?/:b?؟ڿe?_o+/ xs_WH#G/TBC`04,Fp/`?*;Os J! ,!>H*\ȰÇ#JHŋ3jȱǏ CIɓˉVpr!K'.UP]3Q JѣH*]ʴӧP;^zb%.Lԕ+k\fp+۷pʝKݻxNRf䥫W.u-ˉ^+JL˘3kIc&{-Nܕ@c˞M۸dW.^W6V vx.' MسkOP/i /["s/(^_& 6(ԁF(V fvT$@2L+ Q 2"N2p8<_2`-A&0 @242&u=f\cP"b`IK.D9P-0Sc*Gvix)ۗ % i"̐U"L* ؘ磐F*)T|R" Kk-j @--MꪬxS(ˈU & *Yka6lD>+"mf-nnmk.㞫һ+,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXg\w`-dmhlp-tmx|߀.n'7G.Wngw砇.褗n騧ꬷ.n/o'7G/Wogw/o觯/o HL:'H Z̠7z GH(L W0f ڰXN!r0O4#qoF<H 2PTP()RX.ZNJ^LH2^ffL25n9G#=KIBn$1$SE: d!IINR)ld%vɤdr4a"PR4yJ(d+gQ:ʼn./JrP~ bFЖACp)Lc:s|H4Bgl tin"Pg$Mo}T6y}&ag;?q^Ğ a&=w"da%?σ+BWʏS!\DɏUWE=rQfkG!Є[*HG]Қ^Ϥ!)BpjӞZ/)H S9jR4yFtԪzNE#VDXS'{)kTyU"ogA<*Ӷv(AHנSkEς2M4ͪb-XTV d7K9Nij%5,QE.lWմFUmGPb5h#ۃPnn 8%k\ǸrE.Ejˑ:{29Xюt&DŮx]v"t˟pemuM/A~O^saWtK`iNb6E'a- n{_Ø q6G\0T7LO0ZKm mm|<&Cg;c);M+dx*Ʋe#3JfAy4+kdžx>ٚfyIγf /]7psJ 6s]jh$+n4; dMOԠN5 *z!~u)ZL=NApmd.:*޲2Y'giub~nm: MX>3n{bemgΓbo?q[\n-;vuY7tsݽd7ӺHɛgJ0o;R&;iqC7/DI!nC&wv)BrfCpP؜.Sޡ|PnTJ<4M=&-t+z vW!'ruTN{w Zy`{ վ뤟|oG>Bu<~Hbos}XiO}Ki<>ygg= Q_zң} _}7`sysM}zi{}iWA~%|E|_j-r6"wgx v8Gcry"7%}'}>g׀]łB/28!%7w~H~IaKQ-v2=2/nS>z(xǀ9t~d /-"mc8t_X{<g8lxM*҆/0,Z!Y6GwSwkiQoTLTxb[WBxYblCj}uvH;'%zvcy؋HpOW؋(G@xqꇁȁN8tV%j6EmэNQ͈WtbxxHDy9HDwv&Gsbh8T(X$NX~Ըe灕x$NXqMsh8}"f+&X8)jgixЗl'E؇K:? bI98G(DIVm wH8NxJYXgIhj@PyV|蕬؎&KvԐcɘqCyIypM9}6I)Aɕ_KixcL8{9)0GuM&YȗROu)4 䘗?p$yJ\gFAٓٞɞ$qi9LI{]`N 59J ^Y'6ٛWz[ Ih bѣL3m hah]˩r'K(r]ɜι6לzI.ʡ)cؚ9WJN*IIڏyiPju#iPaUHzKdʥ츟i)Ogj,Z*e ? @J?wٹ[na':?ꣀI)9e+1+ڈ:z#iW zȤkhʔ2a٦}7:z^`"&Y99J֚J}*Yj%Jʨ:eDP-,: Jjڢ:ۨ* Md♪T*KԭYqhjoiZZFȰڧfkkh٪)ۺv! H{>9kjµG 8"iʴSIʯH{w){*::CWLؘ)I*~S[f^f{j hnJ]=K* lʓ4i+32@٫AkOw˓ɸʧK@d{Xsmh=ZX[*Q;W۴hfںpyS;`yb6HCY15Ys˫wCqǫn۱`k9y[`;Qyپ+=[]9Dʩ +g[<'l LʹKx{ l{q*'lo#yyB[%|x1k?4b.0̶<{ˣrq*;LFԯ^; Sİ4ˬV sHưOD;_ILt 9ܲrKK<|ǴTyf>O%qeL:[Nd\ۮ>Eo{vjǹĊ,Ĕ}<7\i(BBˣ;,Eɶ ]KKČ|< 챩xAͧ6ܬ l2~ZxU /#ͽzB̦VwT$Ϥr m͋|C @8LhŐ,O$ȓ{X=,|s *D],)0Av0e=D]= H]-M-ԈœЬRRAKkգF b"[@;S*X.ZDK,wcQtm@mqm9dׅL;:ˌĈBƭSٓ]ג<-::ٿCڢAv;:}Ф֬cڰ]ۑڶ ۼβ=!A.:ɝ}( pMʝ]+݈۝M 1=}=m=]M֭!  >Pc*=1Mm ^I >..(7^9!G>>.?/SQݥ.(c~]mbʭ 1eɍq~nnq{Nj. AjQ.|gn^|璮陎i>!>.뼾뾎묮~>N콎! ,,o * cC L8To܊6` 0,(1! ,-p + 4h0"\져)exΊ A0`!h! ,/p & hR뜱+@$ DX$ !,1p + 4h0"\져)exΊ A0`!h! ,3p)I2D" T()J<  "!,4u( diAc* ;# +h +戀|∊0Q!, Y  \ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0Kx#bɳϟ@ JѣHbp#0r`PJիXjʵׯBȉF]˶۷pʝKQ-CLpб#ݿ La88("E Ð#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-NH'L7PG4TWݓRg\/m5Xw-dhdtl up EVBR(m,tQn.n'7G.WxTp2Dn騧ꬷ.C9=tKAdp;Z0,N^G/WogtCT17_ &q@4K7O<}ꃈuZH@0y+?0} PZ0n7 >`AHBe%LϜA,t^HÜ iͣ`k×P@ bPHLX&jGˡHE5ωX.r<ܢHF1h 2эWL$7ڑga$q4B 1S"(:شFBԓ"75"͓ eRȒ*aB6Ri\,WI8%t9^ĥ0iJ_u|byf:.Ì&tKgZsq6[Tkzqc%INƅs4Q5Yv-'bLwskT!=OS:IPrMYІfQPBԕ ͨZюVyԨH#Pi>Fѓ3#)4v LwZ:ͧ7'LKT30*O* ~)S .ͪP&*Sդu5*UǺ²`5&5V|ho=&zO0q5\j׶5>f]&]{yՌ_XlX:֝h,+Ί簂-amJ=F.*jœW=֚^W'el)8[v h6Y״3r:;}rJvv~>Pm.oQ*]qNqqx)ez[WjeijxwzQZexjxnpCҥ0vz9}'gt5뜪bwًЮv-Y*[nn!jN"7Z%x1qu| -3rkٕX+bvp'ڗŦS-y5Gqp`1y=3 /z%Fg$YɁFDǎρrmAҦrGM#3{ww(f3B1j"l|Sj=YroL`|>ֺ1{5Eb͵Y?#ur]=&%/[Mh#ڣm{+5KӚ󭶺#lXdC h1}QHcefl/:nݽoF+ο\M\{ӯ; LSK%7b{Oy[(Vt^3ܫ&k]؅جzKqq(UԿ餭ڷ[P$'dY|򭙻f׾ܑ4w85_7*;]w7>7o>s\jI˛혿 /Nyϧ&,4?ߙP^kJk$CV(:UsO+}m5ӓ}?/~)?|{(f|u5{ r]CmaD|?ιgxw}ٷ|gp%a'7R}r|x|}O h fvzWazs~dC6v-%nKz'i8hKSl"q:tHgwW{8|p!k?'lfyGJl&b#xqmSY3zRz$~Wjwcsz(p3s%uUs^H8N1~xfiF:؀MSK؅Fkȃ|x1Y~m.V#J%XS~ki򅇃chJc-@Ks1wgDV]ħp؅HeHiՍޘ4(pLc/7.o6@LѸxgWۗȎ؏J+*4F'H 4YLes~dgEhb9r8z7-x8l*V%0# D9 J";&  hJc׋MԘ؁C7ocw|*ADaLIKϸX\wVtO5Bf9dI8vk hz8%6j%D}Ho[ TYIyؕK(0Bc_^٘eIR燖)$Ԗ<iV';gyqH6s~qĚDA6qc(E(s OrBi?Yi|שǜPmgKwE8yGٚ+˳~h摴#r)'&j6 5iHiA(?[#lGhP9Bɐɒ,˴\dsPZc˝,6ɻ8̸¬:<̐cÌ̴̳5,KS."ʷ7|ʿ4LͬLȫΫ\5ΐσlMm95b 1|,9]謭Ы45mJ+=5&34']=;aR2m5}7}єܬZ B$Ьͼ,8\m\=e`LW94S=t]v}xz|~׀؂=t @@ؒ@`>C؆2>Bp@:}C 0GsنAEF+02}I2)M! , Yt@5T\ "JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛"P)Q0+4ѣH*]ʴӧPJJjFdC(!78dJٳhӪ]˶۷^ ߿ La=TBC( c˘3k̹g@8&Cװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXg\w`_dmhljO$mx|-nx^xLJ7㐗-{C eАEx!Kx)y.٣N[OAxCla{7'~{k=1!vC(4&ET0HʗoN7w>op6N8oҟX!h@!Z?Aߗ٠ Z aWB:=WCڡ<HXoKHŽ9 Ud,znElaH6.NdLڮFIp$㘗3NtcAXQ(w $H9򍄄!(F)pP$GGZRLlI$fR['/I.}2(KJ, %=J/rjTԥ0,2,&ya:Iʤ/gZSI KfS۔c7I ͏:FM2BZ't.d$Ez|>IP[?iXOU"Q:RèW,NNg(5 ?pMҦP-UE_Qth3>*ϧ"?Ft@EM*"ԥL~X-QQjԓϧ6(zήr iZն(nm))W+yk+ Ua@օT_߆X2q=ZV|U8m"U-KZ5lkڶtg,>"ka۷צckFWX6hìiAjvR=h^\EkXТ%YժԼ{v-” He{Ӫx3* j]Y芶8-籷 7E ~*Ãuګ&m$F|d|I8m;f\ռg.s>6mxO5!cيQ&[k\3YN9]Zh-wvyδ{|k[iPWH7q3W]i5'87W.䡬d_yf?@g꼡1;A"9u a-es=Zl.wgm7t Z}F`np84\F%&-C]vN| {iCngt_ytďZq/u3ZgWAt>LN<01?B /Q7_~op|Ҋ~q%JwUC} ?x!/yu 󻵽?9mb[\z5fws="{ndɎxN}}maq~*YwUk)|ޅdF\oyu1i|=z~j@,_}=KT=MGP>U}ڻ_omg_ϿTOz3ڠ7e3Ea789~K1UUwxxWoE]q#a~g}D'{xwnH76$ǁ ؂71@o.% X}gc-UW"mt.5၁~KG;+qWwu ~T g@Z:*8B^(0m7(P'KGq9 9qA@{siE}8]3:@{G;L7H~h8x{3# sp!5vt}R2#=ԃ==T ňS AspxC8|hv*!CA9Y ?h/ 9Cui7B @7w ɑFTBُ/i'?8CXڨ3r87)8:2= );̳BIy8n؋{3B3V^Yn،ߵTayRɔ8h^Bc>hqY3tSYir #ԖPDLPb"䗋L Ș+d,7 ҙ)oCy&y61 Л R|Yٛ )('yBYۉ d0ҝɆY@MNX|4RCo%џ:D| *C:@ڠ"2Oj:B *@t*W A !z1"*:A,(/*j35@1?HY9:@@7 :CJEi?Kʤ'Su#SJӣ(ZJu2bdQɠ%-zS*JåզzZ>| xڠj>vJ*<ڧ~Өy swJich*;9Z ;i>zfJ9JC^2I * dz7ìКźaZ?6ZQj*暮񭘦 j8Z8zzJ8񯃣>9q#; ۇ`Mkm;}Caa,D!-; 8 -h:C 4˲p>K6/b*hEKI66cS3Q6W[pTۈH $H /˶G6pko6q[ira۶K7q~x xC[6q[6;fR+@^V c[6ѹg۹?)X 7_?;t*T 6Qh;+(hX k˺P!vBaJ;;+:۵[Qsko3~KKwۺ; 3FOGj˾ <\|*#/0 q{(o G}!2xF93L(1@Fp:p;=J ^IPRS!,6w - 6h0"\,0(nδ@x4' @ 噤B!,!<H*\ȰÇ#JHŋ3jȱǏ CIɓˉVprAa.r&P JѣH*]ʴӧP;^z ʂ&$gA^Rʶ۷pʝKݥSkVԕk.^XIWCJL˘3kI'T{JWְi{A hc˞M۸~5y՜ ^pk\\УKNuy[8xm^>1a ]Ҿ˟?/?(x& 6 F(VxT$@2R*$d-%D30(4d_2`B2Ƽ@t ܢI* T "RPF)e7xbfcbAK„y,NNihY[ % I+(@2 j矀&$IM"܂L0$#֒J"$覜v)GeL@T0d-VjL~j뭸WNakl̞lF+NkWmvt*+kߦ+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXg\w`-dmhlp-tmx|߀.n'7G.Wngw砇.褗n騧ꬷ.n/o'7G/Wogw/o觯/o HL:'H Z̠7z 7 g*! gHCk!wCɰ@ b@C!FLS.P ص)RXL.֥1)FqhL#R\2'pJgǦụ3Fq DRh!Faģ#'D&8"1=BҌ(Qfr4*ərTb)c)YPle+q ڲ+%0]Ȥ%SL-s͌iLiZ3d5=lnf)NpSl+=MT-:;wڳl,a97EyQ{7kOQ;8"WAIhZ t)-FEQxtO HW4ĥ=[( Sڴg"eZQCtxRHYM T͸j$ԤZfBuZWIVȓx jXJĭ(\/"UPRxWjI!'X-׌)lZِVDyltgAiJ:DBbVq)GPآdtn FٷZ6]"UָM\[Eѡc;Fֹ_N݄HW}Hu\ZMly"+runvgU Ux ^32֜=pf[|w**U`ZxY}B #|uX\^ŢmF#X%c*טA`W[ꆓaR3I#[We1Q"Z/4 鲌ol-s2;~{f|y4f3[6_RBw[4D*kψV e9[m!٦tI|Hs[pMjl!I.  KMk1+&۬_O nkqq4k6؟E)԰Ȉj׾؞qZ&!=llv$-ϝKkzĥ =qZn퉸UAGo t3ea!>j}Oۃ8:ZpCDTƈ=pL' GXs?;a t_789eT W|yfR{_ˑ"%{ǛvS>FܮjS-Wo_:x~[;]!=|t>;K%觇:Wbᩛu%q`.Ibf[?3C~=n_C =|[H ]I]f72uahxm'FxwSEH![%rvoW|jfk8* hu+'^xg淂8o#T^gwS;w=x|CNXu&G7ZA!8MxS]} 'hepYtd5Sm|(gxhoREKh؇8slDY(h䃃({xOc(xF.$q&QXPqCQXNh"AeHP(XxxgwA׌ͳ-N .$t.(4#H1؎B.dH#Hi1Xq3 ]Y)#yّ .$Y/Ypq(2,'40X8.֘o C_*8:ʤZF:jz7Jg c?qZwJqP[]5s36"aʨڠ*+ʨz,:$j%-:Z0ꩪZکjjJzګګZ ! , ܈B -(Hfwtqŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳOHX &nDq!/:JիXjʵׯ`Êk1FExiS#[N Kݻx˷߿` ,@ BBҁ #KL˘3-2b7a)@װc˞Mm48p!?thBȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXg\w`-dmhlp-tmx|߀.n'7G.6egw砇.褗n騧ꬷ[ '/<<'7.=Wog>v1 ` QM oJzRK@ 0F`DPp'H`[ r VZ|FaT" 8aUگ49 ;J0 )K0AFB ȇ` Ǹ譌hLר:3BvbHG9:񏀼*V7,L"7BoZ$'I2Qd*Nzrw|!GR %4J2򕰌L\.wIURd 0K\3L2xc:Kˌ4XCN`5M)e-bnsIL:͒|^;IO$ 8gzG @qʦ ҝMBSWPB'J)wF{Tюzs }CIђz4FWj#-d?YJ EJCӞSPcӢ3PJ":5@ESzͨ2(VT)`VǺLh Y֎pdWֺj$x+񨹝Q 9ڕMboCeu]d'+A‚4sf7k?^ΰe*gGK5vs mXKZsekgKyrUmMk޾Knu5(ft:sur;Zp[zt7)/wYjzWd}Ybt寀9 Ε'_GvlEFz-0\nbp* oU_-MjxsV1[L㧢xM5αOo,cs/}bcH/&d*+n'*ʏ*b i`gGVᜫ\̀D)tm:QΞKqkg9 }柚 Ȣ6М{?ې&9sws5^ʏO܆2on u۲E:.ݥ"Ć]#xnkjXzPswxܛ]Avú)v^Gw<}ˣ -m/ߣ?xc.sg}//H†Oa9=7(;0RWq9ZpGg9=Yw;':Wg=Ve{_?Z!~ =p!^2 *0A4V~'J%!:gȳv9GHxze3}O8mw9%WGY˒CƁ2Y)nb83~Se.{nn,[9|: %>VPrsw8Fesg舣fWvq^8-z<]UZUEW#<|wuHFnPW%g:sfQcatdAtǸcŌI،d:H՘x-k~Eng]ׁa-hx:@XȅH7c8tQ< X ِÄ3f"f*x:Uͣf򸈕H" cPh{%9}ؒJ:I:  9i$#9W8k*IX:mN9wJ gcPP kِWi_[i] :&cBe5FF8kv;TtFÏ&ȗbp_9MXkٖ蓮gKiyRvsɉгyU_ho$s̈^If})(&T[D8:+ǗCfJ;ytj iY1\:AY9\ ȭ¾wꊛ9?ƪsY:|ŸYsx||k L:s]LP=ϚϜ̭3i6ƧCl'< KM\Yieaΰkˣ-̘[N:ɮC:R'ʠʕxk<6ПsHLvh(]$MK%; Уp@ΜI&@yrƒœJH/͑CYluݛn<]= jH(&qqԆq@U]?!^7D :+ N~5w,q9~Y;^a3On/MKʜ?'kx4cm u ү?ʰ(yӘmʜ{XKg/B^Y䐷̽COݺ4]nc7͐DWv)1χnx#֣G|[Τy(z>_̽^bޢ殜n.Kén֘hl~) ;Jخn5ܪDs~ΘS^r-UlRn֮⻔a^F~%]B'^#IS,m]*E?ئDb<-܊1cU== k +}^;{^d+I;<:3ﮅ<mh.p K=:$տz"]_X?Tfϳwo*imm4Sܝ[3<K~;-ÃG Ù3]$z&-zO/od<@9Ғm7<6/F?3?8/ݾgԗ)os^l=aE ,_}+A}.?7E_t?3oeW;ɛciKvҔD3ڙ?3?~#bZ_~// ?WnMṗki^z/ɿl;Z~// ?WnMp' PB >QU S=t@F=~RH%MDRJ-]SL5męSN=}TPEu*RM>]D`B/&U¬nkXU [-ՈY%u Yn+Tx:o_… ~RrJ=5+]ĕuP*RΝ=ZhҥMFZj֭]k0e^6ܻ!mQ ="T &W؜tgȱ_;ڋßG삯ݷ6򛏷L~_/ҋ(ď@[@.o>h%0C*OCZ#DOD1EWdE_C(cl6| }1zGv\ȸT.JImHJ0J-CrK/꫽b$L3D3M5dM7[0K NH)D69i B?o,ONC2oh/'=NJT8/n =P԰OL2TbDXjTHg]VPR`5̔NE6YeeYg%#I0ѳ1jKժ.mJ\"p,o6ìM2a= s_8`&\MnGSX+_qu."pet.꫉V% .X̓MC!*])9ɌgG67asVCN:[:jjj0v=l2eڶn ^|7P!J{ ުl.kn:o{)Gۙq\t2#҇'xG>y&nwK-Vh^7'݋'([yg}t|QUKUud/o?w gD`a6O^t ;t8r`E2Є'Da Udd_"ӽxi2 _=Hl# 8D"GDbD&$D%K~) ĝ;[eHx'*~_Be3psrH/J,ccG>яqaC'Slx-2rK%9IJVҒc'8zqRsS4E-nP d*6JS"9q(;PNWlVJ^җf0֘ZRR)li>4S )LjVӚf6]h|HnfM;JH| E78RSfj|gعO~ӟe_6OE\)HԡhD%Z$FxANYP&iHxҀ(.E~/)Hj $d7iNW!(hb:Tը$3IEթOjiQjVUvի_kX:VլgEkZպVխok\:Wծwk^Wկl`;XְElbX6ֱK8@xlf5˩aXPfE;3Q/n,ֵe Zmnst` >Xd׸`"υ.P!,9v <4 &,8@ :pPEZD:~` X "9,2!%,:u -    NN!,aH*\ȰÇ#JHŋ3jȱǏ CRTɓ(S\ɲ˗0cI͛8sɳϟ@ JѣH*]ʴӧPJJf*Xjufկ`ÊKٳh^ʶ۷ʝKݻx˷߿ ,$È$̸ǐ#KL˘3kVl7MҝA^װc˞M۸s[N0KNȓ+_μyULNسkO ]zַOӫ_ϓIfOo'`Wh@6F(VhŹW|v ($hH)Ƞ,0(-ؒ8<#sDH&L6i'AYdNVi~R^`)My\zHlpַix6gtu矀*蠄&+_6裐FӞ)饘JEif駠*j.(ꪬꪉ髴Qi뮼 RR&첌%.촘: FvD ٲ覫Ym+B op*ޛXl+7, WlJpo] L r(H2&o0,3sTsnͬ<<% D_4B?XL7taYݜ4WOWmX'uԞek[s=dm#E-hf#9mw[Mbw2K{'~.]IG~-9g̒褗*,Y+JN.IdRofE71g/+q_=ڇϐ)觯yO/ș_~߻D H5}\#@$[k/,7rZGHR`kL8;ZPc gHß|04\ wn$/̡}8 0DLhcC#^P߬ jVBH2^Ή3#Ʀ9Ap8*ṣh:±,HB28hI"F O0 IJZ+@II^ @I9/s$)VTQIKu$|.wiRjҌ$.yIb їe-Y1Uƌ4 KTsmfnizICn>@.vJiςh@h@sBNͨbP=JTD2H14PIS(M[L%dQ8 G΋6>5ͩP:tT=ifAs%0%TU ŮԒO}fH4%>Xz\BWQֱeYUVKuj>־\!RUK3# W] Uc7MNW eҒǰ{j خvwy:1[ԴmXeIp[ 1$ǭyv+J˱v%eXnZo %eӣK\$ a\~H{"<ԍZ^d_㙯sK9~s/K\6΍wQ[x͛yEMx "LbN1 вoۊB^ Qcx5=nʕJHvz_;n.| EL舓yOШNCGRiJst,6ˀFȒ]9^T2u$XTSeK@[ p7:ѨDR 9yrjNzJfuER4^2,mPj$%4p]:lɴW jA=V:1QؠthS+ҶE6JmĄ{׳ݕ^d1&pS2Ӿk[цyzvIwq!HRr hGlCi=p4Vs3|ފ[ogGMVuCG M@7rP衩:G| O ڈVY.R_rek/ne],HVNt1޾N<9+biN5%4wuΝl7{{}]_hBv{퟉IvjwD;GNطeva>j~Vᄑݲ{^#~ _z3g>9Zb$@nUX7 ~b)Uq4 znoEz sz}[7g(ZYXL 8.c! Հu'7Q~>f'U~mRCz퓃'!XGz^Do!2T*F>-x#(J%,}2Ƶ'rdbsVXbZnTׅ}\qD/fiw#gsWW喍ai#F_SɀKv *Q|Zfx{<Ĝ!x~r(0NP KR*tLǞU̶HHh8OUh*dzf: F4Q'chqD9i2WJ/IrЇHw<'Ggnpj:}@9o~{:s-zI:L*wY![!%¦ڡɎpm]} BS#Y1 BKXA.hA( @zEV3&ʚ$%GQʵ jV0AwJ$ju(ש­J,9,jBaڥ+eixd:EAT* y&a[h&*-A: -(xyڒ*R:3}ʙ21XsȊ b|E+A)4g}xF+z+A{Nk `, &Ӫ9ZZՅMfJ Mi1Eث1%k.o_Vᤢ [ItA{1Jd; u8ijv\kA 8뤫޴{;?2Kv;+zKo[| 틵k+HSf5i_+ r4]Lhn!y;7s7Xbej#;[l,2)w|O-[`UsK4Wu5,t-JM bT^~>^~-APpG2[UGp 3C`0PDP`'F/@,:))79R42! ,:s 900@` T B IBF0!F:򑐌$/G>N̤+Nz (GIDRȒL*WV-cTd ZɣeLt^ 0i8Kx-4|bh\j[~cY;^*9$vjm0ۺ+(oܼ6)jە^w{-w5<~Q8>x<ǶC oQ ]Kp[涸fvi{O\v'K.N9d;v.Yww?gWs|HwaMs4}l,2u-QYz^bFwUIرx&'G_wЁmEǹ֩ȡ']{tWP~i7v)4zG6A߮wkovg]q.S^38^ֹq |{x"և?:|,bpϮ>l|wѿ'B~}<*}#``(C x;jHkFTÀ7瀆'#pUCtN (R=$={ւ:X[uN8>B ^ p<[tYC#F@;S:]x^Dipcg5}<]s:@Bw8iuh LJ;zp߷d5GɓnpUVi#쵆&`|ӊȉeV]}c~8xγX>-Hh<_Px;H=Ш?T<^=+IFb;ox<5UHiH`( n DF8;|_N(VY^јv=xĐX;YZbU%)>(C^ tY.FmhHCyGf8E;g9nH<ȏsÔ6y` 7Wnt8;XIDY75|gbq^$b}Hd<33גXeØ ǙQq4dgmQK'< Ù'Q;;ٝS959tdz-ǖ[; hw]c[tmWi i=Kd.:Kj Gg> ڰ*3믛:?vf˕ɚ; !~< e%7qzڞ|c~8۠5>[c丒.9@#=»QET+ۋu.b̢`CKHK;8{8,; ;̧'~cЊ۰벬,GqBztgf[7lf~GJE zIjjBZX̴̿j^˻zߣoG E̛ ’^"ܑ<?|DAT ۻ}a̡Cc ԌFh '>xs|h>yŘ Hd][- cw|{w|w[ʖ+ȾGNCɼ,J;7=׬HP<"Q̠ ]syWT<\p[\rhkx!ٍ<\C=hC,J-ZZDŽu=n,Nne }v? ҹ }Yl:ZHX ĎtŚV8of:*]V҆J#$ScǃJImCLp[ai-P t {KXT47өԂz\[Dٻsٚ]JϚ2?ͦ-ٺ]Δۄ%{dCKIDM=I#pϻj؄ܯHyOӟ՚$<6h͗(,XwjםUMM՞ް];@'-@A;9{LJN}q=I}DJ켥/7\xi̖@v Uw킝9@TFEVy^־3v=4@"XKaR}n=.@H^KAמԠp>}&LFG`,q>aM:_^v ?(w2D^`:I0O?D2TI?5{St`D˟`ܕYS^NؽVODq+_UȦbT\{g~C (DjthֱjKt/aF]HtlztoЀ_/6O! ,(GnXˍ8H7&88,:L@r/f$FhPAϟ@ JѣH*]ʴӧPJJիXjʵׯJqG Xt <@P 4L9AN(@xH ! OQJBp9;ti讼+hJh&6lPVTfvmNmS&覫춋Tغ;Tk+Ie`JGA 0uG,K(mr "ďL"HH"\$'yF둃&7FK (GYڐr"*WBȅz%^E Y^hpbZ .I_:A;.dY 2nzoGf k6vs]A/ Zʳt(LT u'X  x!Lҟ#D'.Oj.F7ڭ~Q HGJҒ(MJW*-␣0)B(%}hЇasx1qp@>p(p 0Ҹr4= &p0 HA`'8Ȏ9SD4J >E4Vo- -y'GC 0 @ А?) Ӱ &9RВ  &ٓB)i0())) *`qP`"iDis>r40 99L0 jB Ѐ [p)cZYr4')Ā ┸0fI}Ӏ{ P00m9)~vr4А{Y( 00lI 9P] 0qiT+7))F @Ж&0sL{“`..pcҩ-ٝFDM9Iɞbɞ著AџWpV[aA 4 MB 0KZ PZOp Zyr  ڢ/*|,24*MdOPZGZ  i [y[AaO =K :` &  ֘5#ة9qYix:R9 Hv)+=|Jʝj?:QW!*vy*w:jj2&$P Q ꥕QP )]X!M p \ pT  ZNx.-=:7*抟1yiJ:Ɛ̰<9c0 }ǝnQt̉P F@㦱:}75 =0 0 +K>M:S8& 7$_ A4==V=# 9 Swn> @ @`AQxN艣 ,.,۔^+>[E&C0`0 m69c p& = %Р'@ P&BVB36"p 4ɹ04J{ א%_m \0 b =+*`6hCP>)ܞs6E0Vr40 9@ & PN,/~ٝcPi0Gr /^10)'?%0#s<$4:<@=79ޖ=>-4 F" ?A`7p]oKx-$ )%iĠ0]AN|/Ī+W2/+Mgt_G?_{D A?_ar7?_؟/C4=ZB Eж2xK`0 $p&' ]0A .dC%NXE5nG!EJ! 8` "DHǎ"rpFp&N9D܀@UYn5# 8 -LB$b2:b!LĠ`gAa&\aĉ/fcȑ%O\e̙5osba"4iP-[pur̉C@AE*rt($Qhl&:qaѥO^u9lWHMlЀ1Î.c D$0Z}? -OH`dCLd [|v \Tq@mۭ[4` ;MX r|F"Ha#Nx0Γ_~_$AEx9P@ ^Ԇ5I|  63 <3߹/ fyj2CH#  Ar>`)A(;L^u?A)H$b ''cDp<낇hCtuoqR@E JH'QL!x?@I]Zv^$%WaĖ NVP@lakC o]e C^j$ A0^kWDBz\N"Lf5EM{S&0un]ج6%Nt _!g:ݹv˜'YxSjR+\'@M0 )NzV\DN qCgA]tA\БzW(deBꄔ'ũ09}5[P:~b 8@  )E+NJ\`ZA@ & (p lEMU5Mq+`@n󨋥Q'OFVE|Zu '.b"Nh RdtEkUB_5`ˋ^B?m/&Ĵh-/hk^Vls%X@ֹOR[ \nBjثY#ڃ5A)zу N^0@B(̾7-h}+\&xIЍt`$pvP.M..b&0.W%B'<x„ Y6lmD_+?q+r1bٚH-p a(rӤXd5AbLU!D<>9|*?cMjaHcXMTd6J(a@7d@D;DO6gCt[qKV _P;VƆ8(1ȏii ɐ fLȃnA.CЂhGoR3DkUD4F9?aEa@I |ve@aq8e07M_HdxcIx :gXhf ^`ѫ JL(p*06Fl 14 Kq9.<Is#X9 P) KޘK(ͬ+ɒ-K17(3I5i18LMH*Ibk [7[@;{cgpZ_XN@a:@MN\[H@|Z@6 Xl7|os[UP;duD`5r ؁X; Cȁ@!/$X֤̔MKZ)XT4LAUhT|XAAd+K64† LPB&tlMnU6X ( 6A)00YAϡ&!>X !Fc\dž]GFjtlSXoKq$1GtLHe|G+Gփ|%SKsCh HA]:cUޘYmF]AX0B!4EBTmx   hdke&x٘Y/ٛ AݞŋB{C,heU[e{2[5j]ZZ ]-{LǮMel-xd[=  e$j~丝ۺ[a,ƾ8H8cQ\%{\)ܳK<݃H˵ݷCܺ -]\=IL +G[^؝"]ܭ],᭗1Wh^T'뭨^-PEuPP[P; iMEQeQށw_05.$~`FV`~}R DQʾkk~anl9>n!^ntJnng%n`nAn.mfp95(kFbQ,^SMUXVe068.Doa*5v6փaMţヰcfż>ic#=$8䟹 "p>Yy[Hdq%Wsxv}m `+m Nw^nn n@0n`yGXӗ/ynWnyyy(bnxS⎈oxbooZ-z\w8&?žcc=hE{ GEf#O9W\QW"QWcL.G9GF>B.LnW˖P[Rq^W>rXN[\~r/^)/*?v#v2-ofs ( ,rp88_kfsof pF7/gskQ`gwsyu &5?n@ZBZI?LXtpqۅthG!D!ؠ B-P0bCC( FX D԰EmxC r`nxraÇ'2m)ԨRR 'h]Z*ذbǒlWʲm-ܸrҭk.޼z}ق_k90i7T93L'>BH^*PBF=0.MU8ZhjxafGup29cdJ? ,f\3r2_ }SA+&)6X7 x *  QdCK@G@ybT; _|1DI^@J`<Ap`C+upESߏA0x#2@YJPdb]pLP@AIE'&A6cjyiA=hȡUz[9:{5HBCPEq9S?QEH5!to3B7 1A>\a\H0>?ɆJ0{{ ̄KEw :$P0o4@`暛f&oOE3 1% bԢUY=/d 2 2E(DbA~`&hd T0+̈@^!o%-y]uIP@GD?{ 0$Xq`(1YybDf2ֹL2t3Mi֬16N{sGҘfzkGqM%'Nut7n <詤8!i`&nX0eN!>MHP^"D(RKҕrR))Kc*Sht6KZ' pOSC= PӠLS եJUujAԠZ>*U6S%jPwֲO*[ձuKI[f=[:׸+]jW)e`#kX:H Av4J`dTt(`!cM #$tx]|]b~jYK%a>M*s_]>S'?o9c?Ÿ_?+7o?V_A KI@EA-$  IQ bT}p@͌ (MeYߡ Ҕ.p`F(O- !5 *J Q  5!v"hA'xt14*#T!DIcSHcc["ȣ!$@S"4,&v"Cڅ"$!#;zB"f0/@(.z(R#0B'"#@B@B$th!D=D'tQtB,dA!BAP@IJ!JjMd$@(!SSZ$YeRb$,Ane,z$Ht(\d$fܥ9RD)$cQz;Z;2?d$;#_G"|HB6jCD)0 $b'#eXVc*,3!(-"D$tBآ , fj3j.#U0 lB|Y~1V'(TjT,*f@xgzU#g|B!@0neA)rc2BRcn*'#/N鏪N )CB#!P'4)"0'fA @,2B4@pt' 0j'01⢁b0)bYR$,Bb$4m1B'*NeT cPn⡂TqkzN'#Hht%(Ikn*&$@y$´bmNl$:Er( e8k:(,Y!HB!.,:l8cZk^~xBNuEjA0F(~AKcت3f^ cZҥU$P~-FB$P.B;!,«ZQm^";2A-X g3JVDW%PTD2m8#B$;:KJ1BvBnm_vzmisnzbB>>j'nJ,E|nHnAp-]ovBڽEj>-X$!$$ٲ']]|2^oo^oAj/lSoHo\#Td/SpBiV/_pM/0&.H :?NJ)kg0Ba0 -y7d00 s p Wb ǰ0 ; ߰A0W q 0W1`0G ?R%2T $ I@D\A@AXASKLLtdppXȅwХf f3%g@@p@DEс A 2))[/gb}̕ L.;   P,DML.XFWA75[833s[}B(w<5gF%1\hKT)AE#H|[N4wn\7xwsxY"HG}xx8xYA+8lȆMs{@TPU@$~}#=M`yP;lCӏ ZA p YHSORp B@ÅyA>q@9;7J3[QYS?X9[ y56s@dy7Fp[9Xz^X!^$' `7{0;߳O;Hǟs1j9,WE&3E7E@PvTlQNP]l{r)E*{({Xd @*#1$gz `{AL&w[,s1^;!G2g;1.Oڐ0 s<1#233FD4W6C@mT2d FP̣OD(s `tWMF'tDOtFs34YtV dA>7w[4O45T4hE @0Lp|u`O^[]`X@ [AujEYo5Z@7O\X O>5]5Dh2%26`[dOegf;4A"$@L JLlԘ" !@X 3i-7p(d8EAFBM 9xF 0Zhҥ!{xADa,x 1uTάˣ4pm>)D ٺ]Yd"?$ Cf'nthѣI6}ujիYvgś{bG5'D J DF1ʐGF$ZK|.]Z ,"EC(Ha8+-N`Ţ$x0&#M( SRO0DA%`l3d (*,&LaVRb/ߢh $&(M5q< 4#ȀA)0'SPB;3`h!2@A`PNGB UUYu3D!',8 ~BKRdb#GsA$ Vv}u 4e(n5&A{rz|ݗ)ܬn= RU-5ߍ=䐵IM>U]~IlmonY}9ʙ-袍>i)y  >ci$n)Zk[4(:#$0AlC @ $ʠ n 93H Ri=q;C+\#8a;LNvs)u:1uki,s\&|`r9daġ|'a?` - **#LH}+P9LB'qi 7q&))A 0QpQMqpW#|F8B }y/ U7I43At&LAnPA8AD1:!zCB聚N>o" ƂhH4WP:-!xGя % l`"[@GXB3# 5)Vq5T%-)u>$1!ÁA p@07F(a,Ȟjӵ@%,A"[)$@mF Lh.x'Ϭ 'b#@Ămyhv@ b%4~1`hFyK&,JYRɏt4UM>D 0/@I(xȴQd" (F3 M#h5@]@$#!II\ZY^V_-)5Mw`;8 2Sl$oWh}|1TfV!21A %d TU%\UQ.)5p _.ff7T0i1[zh%E2M-jzJ{Y2Rka0Կ )LTN c; Ė]ZIa)Vq0Gbc1 @/wŒbT؁9gn9ROQݐMJ xywL<z}.ME#юntgI[Ґt5iN_ОtA]Pԩ4WR֯5iZֹ7kQؘؓ\ @ A іvq[39Nw5xH6Pr)WYr1i^s9ysAUFҗlt|O:>uGYpյpw.zucG{;vNow^ Zuyqr>ᴃ!DE32/xiW=7,딩%p͟bUN+yv4x`A&y/B0{nڙQ FaǺ#%ѿwXh_p}HS^+_+}{o/׷4@ O 05 0PP4PA'k".4cFKOSPW[_0|ր:c`Pw{p_6%P 9` P - P ܪ0 P  P א y@B/0(#xv 0F &UDз"҂8DjkAh2GM\"CL+ D@%zM `Ј >QQQ;BhR H ThXJ N`3 R  8jk dbh Pi*场K-!?hb8%L&!O"tOj:t#!#n `9~c F`Po nBR@b}~$u* =O#O N @,r2C*A&@lΤSgR RdQ' ZڒhH 2O˳:]O0U-u2'07S24`|<:4/'INs0rXS@s4V64kdjfACg&L'B6qsLF:!@9a"(,$1;S"a9 9`> $#3$S)zk&<:a""`)4`9##T53; !T#AB?AAC4$$($4#Ft+=OC6g OM HfB%^C8 9H8.D@@!@KS)ؓ\tO@=!yJc4B#a44$8EtLEM BF<5EM5:J@9TV7=SU/QN4MB6'"憠BHT \[#SAH IaL5s%D1ALA `N`9`4U:^'5 @!]וN $aP5J5D6; &bs @.>!DOH%Bm"]a;]!ƴ4SD!) _UC=  Nyu+vu&h3r`M`LVYiQeFv)U j #LU\yTI]5) 0"Wmb6rr+W_9B%!I%  w"b@A$Bw""vE a"@_SIC$!aCaJrQVB!&`u"TDs"ADavk!=5wFTtiBkCB_FCmC& _uws7,5C jMd"@oE1kp]s"#3) S5A5ړvAMXXlwdɶO؈%m?nvYN+ v@Ld`63PX$'Xrs|u">B)؊ @#(@"! !N)@OYLuaY25z?B`Cl@>s;aLU?r"(QA3w"aT)fSTM#>v M#tf7ugYtO㓙ouhԴa%aN6uA|Y)z@9Z1u1äE\2 !iCԙ5\:$ؘh$l:5Ƙ+>aTB `5 '۲OZSDy*H4[EݨŸ]Y}G8 GZqKj!!n!~A^&>,^!mnVaBb(a4a&~"&^AA@R!a>$,0~!0L3m ktm4"Ivl7 @D@Bgt&1>$tBFnTIcB%*b @gu"SG5oW[}ϝIjw>&b`a&Jja4A $ 2R!nA'9,G;"CbALRiB9~A΄48i 9/@`ЀrvN@ FE/Il@ 4J.p)dyH1bHXb %,XAeƍ#Ǒ$Kr"pX@h2&I?v`J! <}#L"m 5ԩTZ5֭\6}:0I 4BQTD$e @-aU]/d*0'[ eaq֝*d$oШTi%62#0r`qDRmCB htdCa" J =q& !?&`3;)>=ٵ1`с@((2 YGFQP Fܗ~I~D~reC'N@'[A,pTRKiv:c>dW950P"/hY+$cȬcSUؤ"\&0cL%I2 fl|h@2֥'`D 2m TmtAE Є 4PJdN@ iXF4[+VLjvpQ[ ЅN2,Rk-I.h+I@r%F9 T qCjRf /p8XCA27Eb #Zj _b-ŗp%(gTY=(v+7E6R-bq*@_q$ɦ(5= Q=1\uC $Nc[pwPp  >:^Rk;W4&@axoC2(ΑTsS~ Ji ,,>G,9Pܢ1V-H< ,Ty J̥- &o,'8I悤jREH!@0B9E)#gR 7N*+d֕j0wkF$\.^)MKmVmIǵ;O9nbqcpC@ P$;F(۶rppXa 8$8W6;CTQةɻlߙt7;Dt'aJ >Ī;Bl$E4\p 8)>DgGU"z&)JHrĢY= A6::ڑwIF{|NZ}+#\!O[#] N( t1L$L5*[[o3AM7,9,G*@KLD\#L=#˨HS1MTSRQ!j1,5WQ:]:J7'PZQzu샽WZQ #$z aZΒ8X1Y5s~YYu|!8EȯX+WqѬg-Qh [f 5/ 82,[W=nHhba#vvײ/XQ (iVa;;!?6K@,B{-!9"ҏLej摕L0<,>|Ҝ,*7x)B9h|h&*IhLU1VTeg+f_uŸFed"/ou[f 0v*W=]KO{n \lRLx]Y;w1UƠQR ':zJZ8WU5\A?SA&ǁ,ǃ;ȫ<̴k=W2$$~MaXeɘ]99JPvLʭ=^WJ ,"* j_uXAɮ=+#j{}K._ik;+BMXk4gI]/Qd9&Ձymo| b;] YaQkoKv\o+Dzry.O˘pKمm{ٻIO>knk̛ځJ_tmce0m` H-i@*ZAR`6 炔{-)DtE L :O= xKKF { @@JQ ND`%4Ęq DcظAAJA&&R0tR'A 7z@%;L(dS0|H1Giɓe͞EVZmfLuvժuƍIƽv;wЮ7EXbƍx—Ǖ-m˝=Zh҉ <\Zj֭]8s[[kUiS=+`Ɓ< 5rխ_Ǟ^ѧG^ @,e/@񞓋.̭dk$ /@0c@&@(-XA&n(( 0F 2TJ--@ @ \DR{ }ɶTI-G+A3ʽxd@, IAX:ˢ0( l+P,µ uQ!/na$r@@(D@>G2(h#4(;-28,p 3\!"Ncf1nXdӯhYD%'@ AvzJMB18U&`L:n(V8Ȃ &u-+BT% (Ά0000$JR<^`,Q-U`HRU(bԪf l0B":啍鿢&bd9 F^h`x -n?pS6OK9踁$Wr #,O+RX֭@T 0)+^0}5Mn&B ,M+ݍ.@!("0# b2'~B-y:"xOLvat)7H-` R &Pl )$8A Ft' & h,K ^p/cp &`-ԭ @@`^p@-$(Bz4|Pa ǂ  0ĴQm+RP`5/TJ 7xw{]zBmoә\@"P\2d TA =EQ3vHr҉u9Hr \%Mfu Hw 6[B? T ᅊABPH@&a(`0D 2@2Ed-\HCbMPYkqOF⤓ fNΐ0\2yȧ.ajҲH( -'YBU+%% RPv)(P-[h@&=Kd3>FggIUR&aiiLe:S-ajI2aPL&T5Gxӂ%NNP.TV1S4kXŪ%cEkZUխ-kY*P/u ],QN2ZKB99V5 =hA EVu$E5XXt' "XȨB >X/ @`Ȍ)\ьjt%L!B bp!)}iҒ4(IGbR꒟-PI [V+Ssp6]JȚ{L_[η+v(-]I{W_lg5HHTPX l̵,=؁-n}o 4h-A)WH_*+qs!BU,Z@5oԲ@5m-uJ  (̯\\!S`!2И R v4y0Z2_З & UAei%kMEz`?&8 'ZEC[36Am-.ђ=--d3ՊV_ J"YPԨf5sb9#A>f0U(HW*œ*k^6Jݸb$*1,5&Ƞ7B#񍍦SKl@@ nW dJ$$AІP@3oaR4|+@9zhzWu{FWkha Hl+Y /w8PDdw?xDCz`C R#dLP3I ݢ7mN?(hDI6#EJ7{ LD'Q֣Šō`{4V)ИH߱s"֛ @y"A 70fb(n  ͒B;@k ?+B눔] "0&?$`%aR ش8rRY0 "6! {)l&C@de'{ j&ئ&(Bh'0 H@ߡ mb vH  3̸? ?b,<¸,F*ïج ˆ+ " $_"<  M9F Gẗ@dcqaaDtx2 '26@181'(P!H%%xٚ?J12[]12@2%#oy2pa2*2IJkɖ.;;_4S3T 7232;˳=#4:F6 X488Q3$  O;4)(9jK5R#앗6\3]뵠I `Q(6[õdecqYj1Om;6,Lqr37tLuy[]7`la* _8 bАm+:A . $09H9$#P P-yixN9/Ρ+:[{a:; cKLky;C !;낾 пGҴ;5h. ,F̼60ar͏r5<3eD +.Oec6d\ tM`iA1tO $smqMWA!YIF0GFK.)N8&4 e:,ee-źWƟX9T x ^F;u(d&!@Ȃy`SJӌLSN!  յ8tNrgof֋΁9h"JwvlxUܣC/""|}~UU"US"!#VVl@TA(ֲzO[hiuk~%VXXY8 eْi-؏*b:je*p#t}jHٜY.Y,4''géf mxU%&`/ 4ٴ hΦ |khwS|Ǘhɷ |Ǩ|}xk}W}-2Jp. 6 ؖ1歭7= v^} ]S}XJhʸ(0'%_ O_"8 p__#$K(__X(2/Kfp OLN `o L9L;o)'Jr*7_;G /ѩa4)b̘(`uJ+(bY{&(t=b>GTOJbc12϶@45tKcL:x;kO'%^ UG܁dIS?}VtL&ZlR4}R]R~:U1v'%:0Zeph4evW~P(z>^urØ==JwyHo~y'gOvWgxO!y"T({UyU!׽SE;nJx~fxՇɯUKXhވhHy^y{V?pψumW&A'%iiW"yGv؁=yz@zmXGF n2!k k 6YhC Џ|0|0[AOX|hjTjTjG,h „ 2l!Ĉ'Rh"ƌ7rcGFn(i$ʔ*Wl%̘2gҬi&Μ:w'Р+9!,9o 9     3MBEx t! ,9m ?        3kuwV! ,=j3D di(4igpm|u8`ʧx$bD( HlCa:#]TL. 7zn! ,id"<IꭃH\hEEp<ܣ+o   K&4JZج! ,_ 0 hCs@8k...;Υs6 s97}[Ea}9>fK4SOy$@ֿEnVsK tK{>yC,RCHAHKG("lQzw@(7Lu(dC0m 'B]kA\c.mTxP"'26~{/A"c>xx̣G1 Ai#HKX Q IJ&RpyR)xĖ*Jxb3Xr͔_% l &qJLإ[^HK?Z290LTD&6L6&9r]r726茧<9ISda>IO"E31b D(%@¯R@4gpaD7c<#y>Җ{-9%$OҚO1sьӞ&=iRHzx J@ &ӨXͪVõJU _ZԭhVukSTaV=@NZ-j VrU[[K. Yi]ل#dh0|R'HE-~ab sDGpDZ5Ə^1A0VaRb-nKMrz>DbQuvScFB(:4. I@gb^Dը|^F`BQQL'qP׺8p'L [ΰ7a ]Glc"&ml0 z6iq.R "HN&;PL*[Xβ.{`L2hN6pL:xγ>πMBЈNF;ѐ'MJ[Ҙδ7N{ӠGMRԨNWVհgMZָεw^MbNf;ЎMj[ζn{MrNvMzη~*2Ws-8JI1H/t%bj QE2r'sR'$9s| S ?.+9J1$l>G3PԧN[XϺַ{`NhOpNxϻOO;|VdV|]\!@B0@7pA!A l`Ĩ=@ +H= @0 6@#]8>'D"p>:^;6  ?Qlp"2_~Xx l`)`/y'#7DP1pPZ 0wP@a%`4zz6*PXQ #384@(8p')`#{|W|ss!@1(*PCpI([B`'~}W}ח}js Bv PPipk:d8G~#~8Z0&0= \n#@`1&ه>@w680s8H#=G$;} ؘڸ؍8x P`* - 0Rx  0 ɐ@ Iyy#1{"9$YQ^(ّ*F.-34)'y:ٓ>@B9DYFyHJLٔNPR9TYVyXZ\ٕ^`b9dYfyhjlٖn! 7 a sO`8x| 0<@dyw)B 4 瘘9|d>p `  305gyy#HWqf̐ T? p N[ 1R [!zgz2z5{OgƜ3 ː %` 9 ,a{{w~'|g|Ĺf0Y$$ i&.U@{՟xp|'~vH}`}اXj p 0&!` ̩ Y\<-_$S}t8~w~~ f  \ #P ƠWYP  u7K 'xù碀6cX: `zO`{ћGɋz&pQA2GpwzGgZ812F9A7j ZdyO'&|u(}*ʢzb #:@ѤQʉGjS e%_?aPRŘ+Wvڋy Zjzi\z6 2\z1¯W]z$ 2R\\ j;[[1_c,!!$/ˮ-1+;8[!(3;k9Q)6@B G4ENӳ2˴R4I gC / 0g,*D{3 '5@}jO#'%U4WkܑC0C8p;`78pWq:Q 곶$8PpB:A8M"IP'1m Ÿ`|lf7@ 7Y@L v{6Vp@7;>P$*2B%kʪ0`(=*k# &@ +"N4PKAr ,pg P`WzQFA]@:Xp#CXKgpܻ ;00,657[ 0+ w4c(k==`1\ z{|qUťӷV0`DaG6mP=  r@,K*#[ňXF!0 [4|yVș~E4@LSjɗåLsmɠ74,H5 'nS=}tͫ1  ;(gÙtSp/3{(_O#˥W;@N<ұK([ͤ6 4Q@$t]bzLC(ׇ<xj^{pٙf?bR]J@0 kMw)1RoP*6<Q1rW@4P拾H@` gؽ#$M+zRPyiPMI`(cݸ]66'y#L I[`d4IWVa a`VP{bm9Щ"+8#j#ny'#LH=~33޸#0@&N/bޭgHf#A6@00]`XngI+\0e(2B+6`B|S4P^-w=0U0/&l~a桭(`nBPZ64<&F|5p$Z姞02s$ϙL[Ss56\e=35Wp*" a& 0 6(Ѕ\8x+~ہM\~}<k̅D@֮|"a_Н00u6{|\Z?p=p\H~H0 o020?Eʸ^5MW4_=6#6nfѼ ]aj]SU0+ᠬ`4stsOC 15>4Ŭ+5otvJ͂9 c\p$|5g_5e?D aӷ rTG7 +6zh\9pqtyq[ff9ug<mx t/kd{3 WA͈K@׈o$`xJ>J0zo`I#Яm rĞ۹S {iخ 7gƶ<PnR8p J 4`ؐ RCJB%0Fq II)UdK1eΤTOCȁadJ.5 :{f`#dӧ*8aZ֬Tή۵Sʪ@Yt]Ѫ|vlɽ&i۸:fJYrYj[nCr2*lKHB RZ#v@"a0$% @Jf7A =]u*9!bBvWR0r⅑vвV|u$m>d`}p@ 4"F/ȁΊ6ja&0`P"60µ D@kTiqG@RH  pǖz @؊VYe&- b 6@UD,3d)0N,>sPBJ)8@nP"BG(8BQ89l2T PvaF$kl "[BTࠃ5%-6WH!8HdJK.m%BT[t$p ,Ie$w 4\|=X& - 8W~Vxava#xb+b38@mLK2",9_q;,3j8‘2<mLiFyg7gzh6hVzi^\pK ^W¬NQ6N [kӾ [ j: P6 ^Pڦweځ#F}-*]Ƌ׼oηP[-SW ( t"b! {+HP} ]89i#:!SgX@W}V?00Z˕|#ޡ7)'"`x0# }: JB E)[XTT0\%+[ גʴL&'ӗbbO5Kb򂒒FLc! I9qp3T[ZbB7[  j&5AR3,{ӝ4!1z%,>O}Jc$cC)op? _Ќyc}$!HY䗒$ JJOJר^jӘ%P'=I8=%؋D\oP?~E $8>HhR"l ְ@%-i} I"I}nPLOfSf7efڨ4P uKtSdg;Nx@! [>6Л>%sO5gA zP&T ehCi T1hE-zQ&I|Hɍn[f-{SZ1r3 :hc"Љf2C%jQQUK0Ag 2 0Uw/R`\ՖD~ۓv (%laY+IIni p&x$*AV\! JHdoP5R0Jl+Uf`ؙ\fA8G`X<}F%nq+Bk$M $LqZ]@ %ARQ]mL.Q 7u$_'-` klj"A 0*%LI {h)AA c8,P1*(H7 H+qJ2 `JhUkmvp p{tlX* EP |%=}d J)|g<.Hg@ZЃ&t }hD'ZыfthHGZғv bM Xz5S< 6#G%&21m @Xan>LPZ؇Fp< !hz j2r4J&L\;o׃n ]Bl UR +T8Xip aفA>e[w&I 0@"}gEV@+*(%-`6d~#t.ً\*ppxt;)r@&!P B `Fϧq3= S# F'g*qi*(Bn$WP-dE$qe~$.w{0T#1K]=BAb0 @2#g=HЂ5( ”Cao)qC({%>15?<}cH`CX޲1y8Q"OT*ZӚmXN`Y0OVڊ@6f$q x\*# 8#E lˀ3@ |q*'3?@ AA,AH.8 (À# 5:EdlR01Bgr#P$ Q|ف.F#dگ!A.?yP5@ȂxGJG4 3q%1>J28i ᐁ.U<(s= G1"z( ĚCбH ^BpK,@ CÉPڔN @ C9$ʿIX3:9قp I:B< | $!,Q- @id"\kVb k ۋo`edX"tJ5!,Q: elp,tmxz/H|ܘȅ *LHI`) !,d\")g   kXl3س ᜁ! ,Oz(P dihlp,fx6pH,Ȥrl:hP&āBpjwK y_ @ ! ,J .I8/Ӂd" XijVJ= E/ r! ,D , dihlЬL+s ( q8I`p) ! ,C &`d(c *CҊ4I`)ҥjB!,+H*\ȰÇ#JHŋ3jȱǏ CIɓ(SzCʗ0cʜI͛8sɳϟ/ѣH*]ʴӧPJKSjʵׯ`Ê ˡɆ0uƪ]˶۷pdž$t˷߿bÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkνËija&4Ee(Z Ͽ+3.$T8Cw?~@oc6@?ZB}A:Ё2Z~LoxOvVb` !@"?5v8'Cn.tZ{Jn5y!]hCJm!ە vN46Ԑj<|&Vb0;O1Zc #[RilT~')VcnWֺֈB1o E4ĺLTjDE0\_aP `',X"ۉOD # 4 P@D(Bb,"(E Q pwĆЃHHHN&;Pp\`4 h@RseL0 9. \tAp,shn,ƺB'W1QĘ ML#x25r@ҠGMRԨNWVհgMZָεw^MbNf;ЎMj[ζn{MrNvMzη~NOp ltlANpZ -@=gth%`|0gN8Ϲw@ЇNHOҗ;PԧN[XϺַ{`NhOpNX*o .9_\ wK%L<+v$-M8LTXL Arz>󰏽gOϽwOO;ЏO[Ͼ{OOOϿ(; p#p5@:PVx/ %#` xG#P14@T+hp;0!%%7؂/#C`00,d:E0'p8xITB ]MSX'PAFp/`#`\ZEfPipXHBoY`Hvzȇ7ϱ:)0\n@CPC0)00,0`F!JSp#KD0`GPx= *(@D8Xx蘎긎؎8Xx؏9Yy ِ9Yyّ "9$Y&V(.0294Y6y8:<ٓ>@B9DYFyHɂLYPR9TYVyXZ\ٕ^`b9dYfyh\Xm8!mԖ6,YJϦ95v%nٗ9| cv9i8)m)lٗI ɚy) ywYyȉ6m my9XyN<4=ypQؙꙘT %=' 5蹞ٟ՞L bTz٠NT&p N hC {ڡjKRpO8NpF=N=2:-u 9 i.r4ZF>6lDzLڤV8TZVzXZ\ڥ^`b:dZfzhjlڦnJ Yvzxz|ڧ~8ɜ1*ڨꒄJ 4pR 4I)*al2z8J V34Zʪj w6(` = 2bJA(.fQʚ>I`.ɭE魴㊧jy(@zh@;0 [€ɠ AS ੵ  B2! $\QVn5l^ڮ.#3 M)#>2JZ1%X%0!D0g)k_ 0>O.) "o EJ-B(F&2*k1?8ϟ5?".4=# f0%~p,*52f"1T)0CP@:78pE6 ?R"p֑e8p/l!`z^6Zoky$[]|cg$p!P=PA%3ڱ=p?/02`;Ղ$.^/? Ar P`:@QF*g(__%8Ά'`ɪȊvS/p_=``[q4 >=pz q#1^@$NX#lG!E$YI)UdT+ƔYM9uOAq0 H$"# GV @8l " YyYYiՎZqΥ++r !*-48Dy1c]ĉ/fܒS%O\eJDY4h\iԩUfѰֱeϦ]ԛto'^q/g*БO^nֵow;'_yYb{}V<(@B"ڡ @ϼ$4B2ܐzC +@NqFOҏ?s' *!^,Pb~&  "&8J)! ̲FL! H4RM-b,҃L(@%LAL84QdsRJ+<%8؂^@Ȉ-\ .N *8LvAP09XT!YM4ڬKS}i-0ҳ!|P&BH0 6R`Sv]R&wwwފ2`Sn.D (Ђ(`j!h0ծv+61d;f:_†􄠈Pܡ iF0{gO!PHЖ|VA 87F̫#A :h Ĉ6Kr hx Ae7D{!p@PXkS2n@\EA:ۮz+Y=dAp`udIU+m]FOz#'Sq$) j0aa[3`4sPXK"W@UiI7T"8K hCԨhR  ACHGxzDn ȄЋ;(wb'<&!U~:*FF"# T'$ -Ebw4UR= FXڑe ^XNj겨;)NjG&$ݪHhRj;S%kYNU`1Vzk/"3z@B:pW&V+]vle;Q]@,NsUtV"Yh#Zհ)Lc)A킆#f@$T(:[ft7@ܡaJq &ipZW& kePKߘ7ꝉj#ArDHD2F;0LQ90H;(I0``02@7X0 h"h(! @,`Q(TPM=i)y|"䔧@tzCIvP`Dp`  vHԁ JBdf7r.d:VD\SGwUD3E!%!4IlbZkzSXڳ10KG>Yue2EN.I_W6BfS&S !.p2 HX6*]V@ %HEItl.@HCSHHwC߇B!iKkZ=+Dam4{Fje^p~*!xŕPV!0T%5p`rfR'oͼI2Ca:!W1Hߝj{2t=Mg:P_GzHM}]2dB 8  6@, >? m [Fq1D{#%$[ 3^,R"(TR%@'j)!#x溍kɖIL3oq!5ĺ@hԉT#,Éюi% ÉL,c5+GS󓽞ǝOPl&t:(&&8fz&lڈm*X >ZCZ̗#ȋwcpd)I6fDz2E(:8Ų隀jSZ=ط w%)|yșn#T8B=&ۛި®dK4@Ɉ!܈JⴌwNO N O-PO͜ . éOzAK Α2`p2P|³ .h>:!P% PǡЍ8`L*Z9..x&)! - Ȯ횊![ ƏhP T!  PC OCc1@XC %+90 .9QUSBDD˱1#1%1(,((K)DAJdpDQT@P=Uɔ/H>q _$=+ ( ѸC(33 \ERDE *`!JYl&4kEaTpr9ƑD ss|k+k GuLǏ4qڬỏL&h{ p(0( =UlHHtR-r;t[`H},YHdk SEU- ȁ- 299!@؂[8/30jeeVUI,ʖ,49 {I9pJ1QIaܪ5:4R04Xa2:% H9@ ) Ȼ39տS?=@՘"k;# Z%TkMiT<QӼRȉ-̭RϵN%K]DIZߞ `-yDO΂`{`` _  `H`,an\> ՝ȟ Q^bP;~E#9)1ӓ+@0- 1hTM IKi<7lډ-236&k4 >ƀq-Wcu Tb&̸Ͻ<x#hY##e5RzRI6h"`N$m{eQYu+⎑c:.YaA6ʺMu9 8!d[Y[a{9#,ܼd!fcNgXa)Pvވ. /!hLཧig^aKVg&@gۈhNhNhhhih>ii^i 6i~X)bY\?0g p.L.#biNd38[K +[ : K@x:#:NS$,.D+1T8Vnj.Z J} 5ٳ+ȂU53pIZs=P~$?2O!D#׻fh`iNPOܐ)HdCP i6) "쉰ieuv$C-R~٘fmKy n^a(JC %%8Py8flIkN?j̈́ YfM"67n_n*G-؁#ݕ5cHL3k퍻p֢y^*S^pvoq@UcqqViqqrq!/r#O$r%okf페ix %@% +$]Rr)꼠P*"X7S=0SCCFKU856osL_֋ (pPlS"&'c-CUMsnjqγt7t`7׎ءmlRSmFD%l=ZؖmYE`ո`/wf. X7Za uo\w ws_HpYXeRpUQ݋wz+5hQp`HJg $wrw?&e藏y/ygyGz/zOOzozzzz{{/{?{O{_{o{{{{{{{{W{r||/|?|O|_|o||ȏ|ɟ|ʯ|˿|||/G! ,B @fh33 c0 4   !P,C >3Vb|~4c  !,7 @*\h#JHŋ3jȱǏ CIɓ(7:dȲ˗0cʜI͛8sɳϟ@krXѣH*]ʴӧBBJիXjM:t`ÊKٳhӪ]˶۷pʝKݻx;+߿ LÈǐ#KL2ʘ3k̹g]MӨiNͺװc\-۸sS/-KOμ@CN?kνxOţ_ϾjßOϿ(`&|.r`Vhc^a (bZh!,FX 1 2C d#G;`b]4cb?dZr\;85V @5V`WG_Vb @Z駞{9UTGtC ikрI9ܰ 'q&XZ)uE$Xp+2Kר`a4PAװ \inױ`Y h-^C&0  7pfeW1CC(hZ=h CCM d !$qJ@0aU1DEB0}_PF#\o,t@W: E q]? FetPWU5XkEk f5^6l3[Ap`XR` /4 rylW)FQ 0k 4PJ sod`cFlsY#ZtYs>A Cag`]49S$AWaUð);b8GCzP T`z9`S@2LeK @G &`-v_i/O0 L:-\0) =atPqn.4d@m^p-&P uȭzwAx@Ae@ @=AA h4 9"HA HC9/|aI ld`H@A 9PAF@)0h%&]R.:06^~KW]42pC`P.T2[u&H8ݠ'Jm5  `waQaXG/ЀL]@rg(E7j"\ )p<*Ғ!)JWҖBE.Lg8)ClӞjWKTMlb:-xd'[R~,f7[Wrl,hG[VђM5-jWKT>%acKŵmaU .P*▖Mnj涖΍o++ͮvz7xa\뚗9=zJ7}|q76~YW9wx=S:7} [) {({' ^5E~Yۘ@5ӕ@L"HNrG&;PL*[Xβ.{Əs%2d`&1 }e#Mp# >`7 MG8ѐ'MJ[Ҙδ7N{ӠGMRԨvX gKdB#6A8'$4Ytuk˱5!90Kcˠ-k`O"~D&ADd,A (yֵK&r=D,/a]@v&=fw_%P@[`8g@{&0'!BI h74gK1K!sDXv%&X!&t t8X L qHY\V}WB}@+?$ pNx'NZ e 3bq U[ϼoM-#HW$EKgdY@+b~_X%oYā =jC a~W 6=%` z Ajc[ӾR@2[HȀ DR+~W~r~IIRKp7e!)P1$42`>,G~.~:r1C'}J ._qCPR6b+q#MB_a(d-B4HR)1#J؃Q;'x@ExOx&LHgC&Cp#+QԔ W}[UD=fy9{ٗmQ4y)Y[{!2,+H*\ȰÇ#JHŋ3jȱǏ CIɓ(S0ʗ0cʜI͛8sɳϟ 7ѣH*]ʴӧPDOQXjʵׯ`hӪ]˶۷pCvP& x˷߿%7È+^̸ǐ#KL˘3k̹ϠCMӨA{Hͺװf)[۸s1jy N8nk+_μyfy0Ἲ @ËOӫ_Ͼ˟Oў,Z-&u.Н(4b`1UJ }F1&ZQrLY\ .%0A:ur\PSZԪZz WKqTŪXJhU@\BZVh"@XOΊϴ~!lme|I R9N"W:=Vʶť,z hGKҚ0`D"! EDщU1#$ADj[Q4 `@( j!\ZͮvzG6i].xH :4qұx4ȋ i׶ p{' 2 - r0LHpAV GL(NW0gL8αw@L"HN&;PL*[Xβ.{`L2hN6pL:xγ>πMBЈNF;ѐ'MJ[Ҙδ7N{ӠGMRԨNWVհgMZָεw^MbNf;ЎMj[ζm OЛt(,+Sv{Dxman{wVt)J7ro nqLeSp-O8Fq#B(OW0gN8Ϲw@ЇNHOҗ;PԧN[XϺַ{`NhOpNxMjЁ1 [@` WC1* Dt ^#V 7PB@p@׽OO;ЏO[Ͼ{OOOϿ8Xx ؀8Xx؁Xp 2&AO?o*(& N\ 37 =2C؃?8=  N0 @pR Op)…Ăb8dXIVqW jȆ`.z1pW~ 2|hXTP./ y6X ? 3Wp̦X22W\prY` ŊCPC?Z0ІYF%w-@{@xfHs; p-c a~xl`ވG-fxRF`x?8F9-#7Yqp'?HFp/`?s[`I:G+028H;@ 4+&JE"{K`9:HO. XGBXDiJ $CIibx.eM W#x-cȒK2QС OIb ɐ!yb9{ّVN#&4q=ai"l n 5Y#˜-d$rHx-T4P*4!2  'sYN9BBؕpQ9p40@P`70p?r@;0!&0= 2@7`陘Rfe;Pny)5MDd`;=7L`q2*@6'2L Ip F@:"2'KGbqِ4 ِi=/@?mE呌$3B2 M`4;Q:QFzɑ)F{C@'Ls BJFJ$P9AA@`P0PG@ ;ІJ _C۹7'{蘞I0&> )"X52}) 4z,s*$`RP5YБ-Ӛw P-PxG `:f,YZ 0wP?-!OD2 8P59` -8`i>@I=&pQ"p0"@,2 xK@)0CYVXPQv PUCBp'C& V@dx` $zHP>pp1# s[pyk&q$^!{0PJ2?S#VZ"P[DA.Zx# R2MQHP]`w0Pz5zPv fP]pmW5V{?Pg0e[F k< ^P<{+KMz[Nj$'wTfjx#0,PҰA#?A4VCR$4^80$H> )y<S6p@ :;P{ г4i)@p٢?s(]GX Q`\[,tC@M65= J!3iKM4"h2,FlQG J68WQ ѝQ,e#0F!?(x6{BIujdkTBpYcgJ2P/ʆ#P|^=2Jmr0qm 2!,`V z6L`6,ˁJ2(ݜ-jL<@} }ʾϱ Ji *𨮧557,0Lqyz)7@0>_] |& _|4 92WI.9S-7L 6 aؘ5m@=P|)gġ˝Jб V ֽW. QMTj2Y!I[]{4@LfL}44]5ӊn9nIXMRØ4]]EUslۙ m/Axa-polCP1pP{Y5K]'7,"]`rXC2WMxLYPq#@T5&pQy0x 45~I{OSy+w'쾷y'5ȷaW@4P&4ж g WC3P:*PCQ+II`6`-5h>t,Q QOcA^ۿ|Q ۻZ#m耐YzM E 5#L4(C60516gz%0# !D` /5k:@Ky.H ;>`(C]=<40^0Qi { l4.C_Ε;P4 nKNJc/XӰM4o $|,|`R@@>4L/~95aHvnx;{+};K@Rk-i|C@5OCD@֯[O]`߅t^4fO5qýmn?iRsێ2}~I2뒙5pWqwjMECcRp2'l1ͪr8. .9cD.Û] aZFSØ_@p؄g\%h?F2ۑެeOYhh?5 4 MsR54EAcS/Kc5b,JSO544ߛX\4a84/\ݬa5o--ߛ?uWͬ/M)fL5lKAXC22̬Sgݔ@Xھt?nKc^XChc3O5įI5qpo82n"AeO5įI5qpo82n"AOl5Obھo" G,sI8HIСl?5lOWd3l_ٿf?5lOWd3lٿfq@ϛDO<uWI޿8vΊS?h! ,bM@(Ç#Jʼn'@Ǐ CI$@eȨ$D- :d JѣH*5z#)8uwj)&Z3CJa֥p +;HNLIPHb0P@1+@` q#, 2;>ӨE~=Q^ 0@*J n&%u[AjqC,gأ-TY`T8c pq9'FDDA~eajCCHK^C$Ex0(cC,r#QP _aB*8tX Z>1#qZ܀C,l_&АAm=da5Q WEFP| /TшIg@n|HH^SF*)RYD,:X\e  ] `QEF#|pQpm)4[s(փ=G&CgTtdՐ0)J*ˬ)q)C8$q +FB9lDU 0 Z(k4 6_;LB8:Z O'6HLhlX6ݴJ yan#@lv4(c_KmBt`j[HZB'-8py4'7G.Wngw砇.褗cAO!b.mTDK1FD=XaٖH܃Z<AN]x9ZlEEPIƐ_ FC)&ZD>$DnWbFP'4Vxۏ cr pPo/ AKr @4KF-ȕO#b F;[G-H?D :pHՁ y `hPPZJXz NCq C`s4,n8WPhal(@&6N/ldC 9F4ER" N |iHMRԦ:PTJժZXͪVծz` XJ֑Wz9$w9CtVYY1ކ7QK!HiC&P}H]h@0YT; A>k9ݤ0`ź87,%DA^Ht`7 s&C@A.z#q1}P8# v5H꘢p%!HjA ǃ<SF>$~P锔Led(+y? UYʱLT 0&|׆ rĨ T c;) jމ@JHh뜀IjbV TȠ&5l2\ m\_ƩlԪVBڊl(%P_1πMBЈNFW!^ywI[(+H%#&c̔3,DXȂ,a}Zvhk !inۇ0*Akw Y[Z@[^N[o{^ -Pªmi;,Mz1= bΖd'6ͅ.zOZnx@dԭL{r6e#*_&r7rX́"<dz HOҗ;P:mvDL( /fJLw9X]b.H@2$Bp$d] _`ƻq;в8ςGk"!l;xŻP,CLڑ%Ix )sH sM] sؾUm^Ol6$67A;DZ_˾kBtF7XTלK["B:r"X"z='1&B*B@l{YVhbcMv879|ڶqT(R3$$ecJ#Ga@x q w~&scSFff6795gkogsVVc6{SZ\؅^`b8;qWNCHavBWj(:'0 jK`$d";`|Xx'x:h3yo8!jAm}2 eLIH@`6'8mŦ.7=h0Ws¡mPbPGa4 5c(8W'~~9/bHHrLE0Lt$&0vBA@q$wv#cݘ8("P3|2_CRCrP P`Nx5 ErAxQ~b89T6Z'/ A7X6y8:<ٓ>aOaU]`|Q@ih< ņ<7WWWG#vY{Wq@q)}bXO$9c#jPwPQ@*@[B )>Px6 RYWhYYœ @y3Z }PZ'YZ{yOyR#Ac[Un1,ȂlwIY-͇)7見&P蛭qpV8elG"D"`TFSVE|A|Qb]IiqF^"a)"n11&nA}]Z/5}F'g(HjH=Q9Y(I%I vIGh'+!VJ`6kg/c0=aa!v-#֟Ȓp9I_! ,b/M ?' F$0&V/Jh/H2; GZ #w5ǝV >ҋ2@W;ڌ9"7&8W@$s6ֈI h]*H6]DY)NرǯH~X!ŋ940" m$1$ X@J# r6r!08hDc*u(JqnAHP`d Y򔗜И!K$ȒjRr *T0/|a,(f JPV&9J8%V:Ok2ȎG›OWֻ-D,@@PqQs#zّ %@b =p߮y6==pq_q̇zԓ15v`B A(ıt&:DK4e&0WJV-z Wnn&]e@@T]P cE^N6@]N/ǀ zi!q[r`+02{m"g  JR7'u/Uu;uYq\`'v b@A PM}s7b @ `"&IC{wXXxd7#'j>yzc%@J;wEx؉8SIk#n 1P$R{Y7D |*aq*\& f1fevf>f`7k O7bI8((.I9vqЌ}P.v$CE'1KP|)JSui'iwjFjjk?MÊ*k;1\qD]vwTNLUki )8ŖkWk7 5H[Fm`m*m6Fn;9kso5#F8p,^_ԔhIIpQp370+  "0`g)q#w*5X~7:q#aDjs5kMx#@= bcS & Q4P^7`UAt`6=tMtT]uv)a7v1 aSD2AqwyAls/r6f?(M2#ę {(V4P>Awxy2WyӉyy68 Rṟٟ:Zz ڠ:Zzڡ ":$ZxGZ,ڢ.02Po03:<ڣ>`7 DZFzH `zL \qSJ ڂZSJ_0&Jlڦn!p:tZvjZw|ڧ~B!,bPV; GG4? @( ;<2' FQT%Gg' XӓE1;$0=4h#4T]6rߛI6D?;&%&` qÄA 1# : ,Q =@H1g J+W1DK Jѣl9C A&!PF@ȉFv@EԄ!.7 hB47z$r۰QF*^̸ǩPX 0q2J=T҃)~Drqbq_fqB3)RďgA^μh#=8Bfۻ" J"T "½@8P,1N96C%qC;IЅrE(O^'AAJ HL`>Ȑ6 J$T(4h8<@)Di¨L-MF)TViXf< `)diy lpYkix'tֹ矀*}3衈&6ˢF*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXg\w`-dmhlp-t 4%L|Wo.8}݌+<FSPЄᛇqa.: 'nx|!,{(F Rt@h! LXBM6xreʗ0cʜI͛ "ThE`KDjĸEp JJի_4C@-GܩYHXJ"vD!q@I I@'|$QR%&DAO lzgi׶-S Qs] ȓVP`1"y!F`QRѧB hÁ&$p$D>@ }9_D Wt0} s Cn0~FL@ !g'DKoQ` /$0ȉ)m4mtQ$0V6CF(JHfV_6IU#w_CW<4EJ! o`NiM-@[g hqUE0= Q=TC $v}x:c!`E GlÔ-q䜠Ty;t h1 <`RKk*0 oPJP @J D  6% <8;_  s`B\* W*0BZ8"F>𮚽cJ_@9L ,$l(,0,4l< d5uwGG%7PFae+S|FAQF!eGE@)e! h6b%@5+A;sgZ>(W ZwU'@g $JdqUV%IxҴ`% a^{ @sS]9AkYE{q.4Pa!` ЗE\#'0 $@aU@N! 4B~# lD7@`$+8*$8!t*($vӅP ?@8nĀ C D :P ,1:9v! @ld6s""h - ؠ!< x@"̏Pe0٨"H@ (Җ Nr*± P47VB"XJ@dPRfY[q``@UԔl=)' &x\p UMj)DUBX :Pz`Lp L'1e2?~J&`:`2p*|C "gX=p@˽썯|Kͯ~79HF 'u::JhPiv 58 j3AԦV4AQmqY&R pV2L@Zxq: ncYSD.yzqs)%.C8hPՁNt3]P¶u0MhN/wʑ rD5a=y*t2MA { uΝ)|mBb| ȠAT VZ>h19XB !HlIx=Hȋ`H6Ձ_U50-@;f@ ^&:gyc)-=zt1iBVv B!H,d0I([ض K$qѢʯHP%bon4@0J%HO/+)M /&aaw:ytszSB$'BpĞ=~3ޑ J$ 5:0ӉVTaF(x;UUS .JThBBx-}8?Ηzx >iNzva=kYpִA0qiR/DZ*kyXd}? e "PhFek_:䞑 n`u@ d{-`붹E-R?rb$]U^^̗)_1_8Xx1``#O`6 `5Qp3JxHvaU,f1#5&fa(67*h3bcw'd:DGF;!@=RFe40@P`+8dajhp7gcur@DBR&mfm6n_nnnvGyG(&0B(owH((9B01qL׃8"-{,'rt&'K(gK*׎..1g37dr-sttzKuP#1u0E[u5\H/wCdwx8"7=GRRx*ux>e-xy!y&EzqJuU^VzMzVjV/7-bZ{W8pP Z,[./|GRWGSAmT}EߧU@ul9C(~u-Zɥ]^(^Hy 8ٙAq7=&PUGB$-wp⣎2a4bւRTc:5%FE86)FSAca`haa2Hɱ=rhqѝA90+[V-V8`:\tQMgpeH~{59ggm)0xf3xiu1:|J[TqB*ja%k}01b hH6j%(E|ӦXCǨvl=d95ptYD$F2ڿ rqaSQrzrīTAsªJ;Sq ATY%]g؂[W'.2Rwi Y+׵-Zc{e[ghW!^,21(<\|qY5!Ѹ1pZ8E:=/lgNYa}F!5r{na`MM]́ !>^~阞难>^~ꨞꪾ&ڠ `pڰ!n>Р İ !n p7A Ύ+. ֮ |+>^~>^~߾ @ @ .N/> 1_1P ']9 ۰iѮ & @N0/ ]i!?^]I ڐڠP?/ ?D~>P l? Q9,.cR"o,O~S?z$U/h\?ppS!,^\ O ?D_]Xo_~ `*P 1) 0'e7Վ @L$ i4 &(H`… )1Ԗc6h&6nQ$u׮ibKii#&`́3KԶ$1mGv乊XA\UF BРM31m&7^E1В&gj! RXS&'qAl٭ݬIiȓ&\aĉ/fcȑ/dGQę64%gϡI0!H&ڸm3HvuM@5`BE%&IJ瓔>s [sbpMԠ_70XV& 4W8k&R \DBhCip4eb$(BN2 3pC;ɴL!DJd*Yh!(&H;i\1i,@ɱ0-6(FKS&+P5$Z?SH L"Q3@MPK򌖥Jݶ[i"A0Q|w_~q"bց%\jΓv+8J)zdBAJz8K撂]i!UĒi*^9{t@qiZQD@xh$ C*Jh@x;X%)!hlV1L\(y$,0~4 om^C|p WmW\wqE|~|Wvq}~~P$` x@&PF@! , A*\ȰÇ#JHŋ9lظǏ CIR#G(S\ҡɍ-cʜIˎ5s 8Iф_l( zӧ5) zի1b5֮`J,xPٳhӪ]˶JmQ7@m Ms{U߿ L/mv'@Ӗ4P0;D6Dhf1m* .F%Llm\ƕԙ/¸s @$ ڀSF)%͝y0+hj4.\V4ib&۷u|Î1u9oe%{`m&w|qis^"z#``a|E 1HgM"7ЇL6tÜcB-t҃8ggB%I0 &hV&g5 'R Hs&g66`ich~@;!,80H*C@ń&Zŏwtqɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH y OJKٳhӪ]˶۷pʝKݻx˷߿~$#28rCVtPq81FϠCMӨS^M&1AeY|!6ZY:0ȓ+_μЩ~CwEErbeKLv)>˟O!PB60ei 'Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覻j6 IM6&$A5x[;x@5 M"௼қXӯglt $G"l 0,4l8<&\D 3Pƪʣ.3WVq5 _wRvsYRPx%;ȾZ}Yv1+h Ȧ @MLBl Ĝͭa۬2$0Zp1Ƹ#b 'v \.% KPbzKMTk9aLPB;ĮnkYt#bJl%[>ֿ' 3Rfw)¥)Ea;F`@LJx61~93RӒypqxH.W2I^+]NM㓇.{tNl/]PZb4[ Rd0|疨l-e`XRaaQw*~1NWZ !%!`t* [$Lܩ,T"XœQ wMb61" مD'<N$&`( @@@'@kyЉODn@!IH) CP`HX'kÝxv(p$=$N[ϸ70hlcงa\Cp sנ]>aHaWy_MÜ@ЇNHOҗ;PԧN[XϺַ{`NhOpNxϻOO;񐏼'O[ϼ7{GOқOWֻgOϽwOO;ЏO[Ͼ{O IQ8E9Y?Hޏ[yE?!!SI#G8  8 р7!\15ޤe8*!*,؂.0284X6x8:<؃>@B8DXFxHJL؄NPR8TXVxXZ\؅^`b8dXfxhjl؆npr(V >0?esH%O 01@ #9 7!-чVR6`: EQ>p\RC6P]%(pJ$  @C{(A`7oZ2_xؘڸ؍8Xx蘎긎؎8Xx؏9Yy ِ9Yyّ "9$Y&y(*Y 6TaI6 06"T P?:IcQG@OE "HLT`@Z9dYfDp `kf PՒ`A8/ W ` ` G3jtI-&pQgp `Wy :  0 &AL y s Й . ;0R, Pΐ  .0^?Z!`00,y i `7ay.?= "0`GDgٟ'"q}` 04P*`&7 &1*PVpyQp XH&@z$j<#`#p5:(t^qp!YoW@f &8rT&1XȈh&PF0xaj;e%^1Q^XJ7F9^! 5:P&AJZJiHhx4VYP/ 8Jt`'!i (1 $b" '1S:X؊h[/ <]PY#`\ZЫH;*ؠ'yaA&E0C`Ѱ+=0U0ٹx(7@h4| x;q,:>(,0~j) 3+R0 Y@I > ;dB)aq Rǘ{ٌϨK`_9ƈ>GW@+2yh<6= +7j~+&kzr1K7[RI/zHK0x81 9Z:) j{+Dj*UpQʯbBL+?o84 KH؈/a&ѼY@P* q:Bz 0㱧tڧL* [ &tq<Py[F؉1A') @3Q 4 hz)+z ʣ=J&zQ :Dl&s+6p* B0a'RG5Q'[=0mt۴:& gzfz|\Q@,7(;!X~ EЗ 3);FpvP<ۭsĵ\D`"QG+\ˡa4@8s>L d@LI+2p뼈'z˷ˎԨe#|nvзgV1La}nZ,<&(iTPD$M&_&0-8!6ҀW9M;=/M?]B*DmL]PotR} \CA}NNs-4l<[]^]J HRS0"Hַ3qM^hjG;O=[[&Q-]'&٣|X1qi]vmä]u鸫M 2Qе}-9a?ܗ٥ v!@@G&Ъ. 0)!P1%"J" V[p-ou]5<߽ļ(Mغ- jۘ}kԥ \Zrm;P_000޶Ip*[Mع&`KL8 0- _VXzʧ8Q+FWћ8!7*RN&F*&p;0 `6''jO2 &\(|{0 今xH(-m43!,)5Ϯ6Mܣ䫘*a56@0-aQ%> m"P6 Ʈ$hEZ᪊^78@I v6즸CWy˝8QG@<@ԑ%j!_nZep@AύݚOq[#5Ғ$pR^;۳7/T[=ٜ8.?B-14?8ӧIbKD@ 9&#[J`6o*>6QV"HA,;}*}V:y1;3(՝" x{ٞYFjAfU;/+__1a2E-0ָޏtȏ_ğOW̏ҏ1o>W߸']VyT-s6A頏Nڡsf.q:vO0ȯڟ/pO)),F6]*IW909bmO+J4AoRڡV4qݿ)AӮo/[ԜnȻ/vO.A5ܙ.}?Վ.?[Ý2Gٸ?CPjϡ? ۡ?g?g/?֨oGM/GN??v<ḚM??GК4o?O O]M飿Y?Ե%ygϻ?E逼t!,+H*\ȰÇ#JHŋ3j࣏NS(S\ɲ˗0cʬ GP4)Oqz榟Hq |tQ2 Xjʵׯ`ÊKٳhӪ]˶۷p^-L(xRN&0Aij´d{5YkW9ɹϠCQ& ;yȔM Vb<Ș&e(# t5Ng>2-%(5R3‰T\K'ePIr!;ξ˟OϿHTbO<QN`u ]H_}Yrv H0q`"0,bG$p8c1Dc;)DvcK?XL6dD " I>\2>*eh_pttihmJiBp`œw*)) &(6CG裔Vh+vJ(*JꩨjjJ骮ƹ*jZ֊뮼kk,r철%кlVѴf-D+km+K,l 70?,Wl{_w/ۆ,A lr%r)2-,se8<@m#!,b fC@/M ?,=*L;G71 Red*0HZ  ǵV>ӓ2@)CCXW;ԛ87 C869"?I(Q":G8 EQfײ#JHQBbMvЩB ;`У  !Y9čzpPÇ%<*]t#0r`#<qD"(xᰢٳh.F1J'P1^ab@@: rF=p0$\˘3S0rI8bh$@L Yjc˞}Cظm G+&k 5^b7(&&8H`<EF #ə+đ(㳯4:AW^3u&T^2`MwP#D 6O'`: @p A⊤HI` &0#N:`0(R" :%H4:`)dihlp)tix|.c&|ƒ }i WzZB-#QCNJ5L4>b2 |1aJ=&` &taJJ&?>+Z)Bȡ+m-qHH0uPWdq\Rނ_0Bla: SQMRW,tpS\KՃyunz?t@ @q(ք 4 ;t٠Yg=2ghٶD6AilvpL錛n9F W$xE<(]p <ܲx)6ZK&}:G4,LTѫR= H1`Wa X0%K+L` 4*KF'~w ezլ`  A Æ*XJVPԃR], ϩ8|+6!u(=^8O"$v='̨lL&QCDk|j}D E2lhGz{&MZʢKsb~۩q?fk5F@bёnqp\(L{4gMosbtt QUwVvd?y0-"٠uKl,'ؽwdf|95wb}dn{MrS#Xt`t ( vD!4 {VL@w4ԛYv B$d] BR0 0'[R7Wӏا$,iDsHZe\=DYΥXC hK3R3۩9L6MC.#dLY ͬ # rnnfS3H lHDPR0tWA!nt'Df ">Ākj1j&7zS4TojuNNv}h$IU0W'z2QLVGaFlE5tlPb!#R1|z|؇~8Xx؈8Xx؉8Xx  8'؋x8XȊXOXZ hX ӨhxSΘ؎_88! , 10!"1/#2C !, 52@;` &;@=Z4!9, @*\h#JHŋ3jȱǏ CIɓ(7:dȲ˗0cʜI͛8sɳϟ@k>ZѣH*]ʴӧBBJիXjM:`ÊKٳhӪ]˶۷pʝKݻx;+߿ LÈǐ#KL2ʘ3k̹g]MzXD2QHPDA,ChA:tWC &N*t@Xݼ}DX :fP I UAr@$ ohq(p"٥E'ha4x'=Ճc1`@t" փb]!#4 'hpH)fVyaAa' xrVzUiUbfHs@pi!H_|N ʂ,2$mgEAv-Ij"$^#琋 hڃTaH,B &@ H[Qi꩗pHҕE啴֪TX"b&eF&A vf.E'WvW g,$!NFHgaXԮW~xک(߸!;T,OY 0h&yH `dY Z& ݥډ2h$H]glƇV_i!@A~':8sleeZA(L.鿎 8ՠ ҇ RsAx(mBl_`y ~#yp! )b|4ւxr=BC6+Y%bGӲ$b%ZE/eo'Z/G/}aOog=o?YoE~~/[篿gLLH4 :'H Z̠7z GH ^0 gH8̡w@ H"HL U*PH*ZX"X(Au~=@ 6004Ap#9 $JP2 0"&$b}c @ `M0b#IVRd'ؐ_ c0BP/awA<`V NfV1 0`x `2pDhJ3fm `ꀄ-6M#A0ΙuO>D4p{ La( aDT3 d HOă 5 a kMgTa 0H4bNw C#4a"j(1XcxRC8/`@08&̴Lu*TJU%vav/h *e֐5`i op ,RPK u`ঘ}"dЄ= ?8jP g]Xώs=iЄ;`< HU;*SY )\1(! "mm[݁q\%A) @v5 7{ rl5{`.a3K`# 4'แ|d 7`%}@~uPÈ}}yCZ&T%>R'x8V jma_C5h y"!3g0@4{8 (D;ah`Abs D %@ { fBit7DRPSs iZ9wE>`~wC3䵰{Q4C2 c;ЎMjC˶mnϪǭo}u dP 0-t:H&|e 8xi/o\cs[ phCP q B ,| #@DpeA#rr|- ;s8|`9ȁ@ӌ5{}4a` }ex\ l`|!@|p :@PApr 1h7{ /R)#Fhc27' @0 6@(nu sa?;p *B"t{Eoץ$+S8T<S4@<$ /sAE{(0y^P<n@{X{ G|y2zn`z]'2a!J_;6$r00tquDd? %6p1=x7"K tuAFBQSx|uqu9_ufaq3|؇~{8x(?p(px&oW ppPrvpW{ro؊Kq'r$Gt(r,s0's4gsqtMssA7tsQtGJrtQ7uUZ7n;Yظgxۘvkvsvq7wuwwyw}'xWxpxxd(yHyhǎwyzWz'{ I{'p}7|_Ƈ|r~|G}և}s||F ~~~F'y6g#h(h_р7x,(X t$&(؂ wf`x؜¨PH[YȞ xzڎx9qQI)y J "Ɋz (iu i'Z9!i,/1~4Z :ףTWDzsPQKZ@MYQ]VXJX]ʖ`bzqQ^_jtjysYC n)Y dІj^5jʨ:f{hl>j۶pk_z o)*_Ѫs1y}{8uۊY#mꜻڋҙs@w&((rȞjy뺏)xڮX-Hz5{˸&Iסɰ$*ɋ&;~{~02*4yu7@MzBEڲZIkNʝPʏ)(`);2zʳa @ B{y|~XȹrtJyI a{Zr{‘j(ˆ,¥I!wNrPzm gZ\S̋U|sW;>kmONEP9|P~Z5cΒ TeQ4C0/|LB@A?F_|JO`DK=niEܛPңÆa?҉MTP Dw;'~Ia§N[~pIYp\_?O\~-}+ݜiVչ!kؓ *`mL[`doI=P!z6'$wO(`00)qSnlzp:y{|~~Wm:)],@/ؠB: aK1eΤY&M FN02Ξ8rO>u&J(LDHc YO]"52Z)B47ľ:լs.-{6^,†CV C AǎiH ° I J#$x <.}: ݌"Ŏ8=5'^\e&|9$g^0:GO@:@ <G,z|ᚽ:ދᅱX^An 1 8А)ȍ@!x$ThxJL A H`#l v ,La@TrI:r`P)RJJp~`(n)UࠃzX*L3d29\rF Aa/8BJ+RL-BC&^`JITSUu&ՅtVZkV\suW^/tW`vXb5XdUvYfWgvZjZlZm[pw n)` ZH#wYݡp߀ C#X >`L :+@TcR8-Xc\8[a &E! NA!dr` I{؁EyXzU a00!dqD%0iA~eNՠ#c$|az"=;!zN>K<7W3?}XQrPilgbT \"{Ta y3(µnH5 0!㌺^r#`w/ !?߯~LQ `"zW00t`^sTP!J3$"BPL=3h UIBO-Hh@ a! @}؃K}"Rġ m8]dH"Fԅ*Vr1=[/K"ղ$)0YJn#֖8LH4PPB& rG=xDԋEk4E5'Mo jrs@G:ԩN/L;)wg!ds$?3äe@J3 AhІh!]GT@81R0 F#M %F`'@z~r;v,m S*藮dFi]*)2)MkjB5C(:Ibz\SAKruu*QiT*QfU3qdTWkYzVUkek[VUsk]*.s X /Tm8Z`/)T[e0%: {l&YbX2d:24hgA5imԪv:!>ZY4 IiK~{I B 6ؖ.3Ɍ#޽o:IN! ͍q/#:^VtԖT .z|!|CG`£p}'@\׉Hp &8j  q ?U q x<==0 .'Gy$PLB$t'D YBh6\ ×$Ɋ? b"9 9q}6|,a=c$_IR4!%A)!xɸ3:@5+Z5GppRF>1L VC C|H`d&_Z4ezPHN( BxU,gp o8!h$<7kp 9?5/ۣLb9L<桦)Nl.DK7 ΃ç-l9QsV h$4g~}f %AZSu% rmֶ%-?A%uaNuJBmOpM)ғ+}zj I(Z(iO})d:UIE*(3xU^.Ms{\ U'| x'^g|xGye@İ3pŐ{eD/*efو},`}e%يmeU`&Z4N,m@V] J`+#'m[`VkŚ֞]M6q_ v6ԩ o--w0=\1+7­s\ɛӜ//%/YSK0ZY9@>)1 ! i繲`1"ОAAZ2"2'S,32$ ( *[ +0  2Z, 85cԸY@؂ d;Ӎt =!>;G3"LӴb*%R&=(!~ =;4(R3ӋG 0:5#UkVW5ZC5L5%O5~688$+@Ru[6K$x P6s+$iw KJ `Wr%o۪zȷFdҎa7gz8i:k&̸P`poZ')'18C3L82' ⹗s> 3]`(((XHzF:0IBɗ):/Ⱥ +$C0Ga*CT;"@ʾkJ\cw砇>ulys~y}wǮc ~[ <KﹴK.|5 -}g=~|=oy\3vїH@z{8_]ͥß>3aZAH ~^(H/D މ Ox/ZaV BH׹NrN O4teߪmҭGHسm#$s˃7)jψ3ST(9j!/Lv.~ 6 "r5^ ]7D+c,>^|vIȩ~Y@vVF-~JZ#6Mzo^'G47̂#,G~d:IЂ$=vP>z1 gD@ш& $fR-F1@@DB@́q MP?Mjy(g@!:F"Q XPe'0#E- atyrF2 +Zɀnq[BMhnKMr\c # p%m :PT@ܥ`vǫE0#$A$HH׺u~" -|" `@( x@' ,[EF'L [ΰ7\c`R5!iPldN1TL0 .)DiX_ıL<&Ѝ И|i=5!b\N6pL:xγ>πMBЈNF;ѐ'MJ[Ҙδ7N{ӠGMRԨNWgB1XgX+lb'8@/k \Eb^hЎMj[ζn{MrNvMzη~NO;'N[ϸ7{ GN(OW0gN8wל/$ykziGJ9R\ן!M_YC'dyXDRëü2I [ Xn{"J.ZAޮ. (HEGOқOWֻgOϽwOO;ЏO[Ͼ{OOOϿ8Xx ؀8Xx؁ "8$X&x(*,؂.0284X6x8:<؃>@B8DXFxHJL؄܆8N wN< @O =l3bA&Va Z > O D t %[O tk%†| pN qxP-N0 z qN3A & &6_  tæ  @O@#NR ćb @w`< l  wØf $%\Z@?3E1qp  % 3[23J,  V 0'@(dq @ ɠ % ' #B ")3uPq P` !@@C@!xHJI2p-@p10uZuS``]ZpY@3[&@P-[`dtw +998`?%*!+jcv/p*t7^P<vi !^kHn{M*9A`7/  yA0p`ny;3HAΧ˹{ WB5&!^7zpn+{k**'$@&i>PJp=6 ;pBWPг?Dy&!7* qp2;n3V{x q ᳱ;7P6@J=%j*Z0h7 7RG@<@@+S{8 6yW89Ъ'Gpkp#G'=n6ZS>L{3f|wg857@sl ||rLСUP1>a _07$@=R6MS}є9;4 $@ ;_,#mainy{,- M̡s %c=8H!F``B10B PJ܁"#W ;q!"7a!7x q#(Ȱ 7L !TpA\LOpB +PT&R 3̐C3(FQS|M6i@`'-!$ ^& !&A6iMcG@zbX1&EuWšAx0ґ57`(8b1HTRd%xI _B`$s AHK$p`CV,TP.je5yMlftP`Y2.$g9yNtSdg;NxSg=yO|SA NW!m}&T u'݄_ K̙$.@&CMzRZ!1BDU>PndH IA@ TC%j `mIRF5"JAbPU[zP UqM5$ǧ@PWzWNjAd%k'~i`;8BHO@6U,C1RYfVlg=YІV%miM{Zj3L7 dpHzib+Pt= @ t9Cf %c.b2'o|yކWA8 Ip{S!-BG,,> P)R o ,OhE{:KC-0DL0C(%Acn|b7)KWdA/{e.璡 0ud k b$'TQJw7 ɵcs4LB\ݱ aȠGVrfno^^@!2,(z\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗ɬTqL-ټDH9@$6!#hPP@YKٳhӪ]˶۷p}D#K(LtGѴ!L6%Ds!I$Lʔ(^:T#GtHT q#6qb&:qEE!'0 o ?+_μУKNسkνËOӫ_Ͼʼk)&J&SK0 LIh'#&PIc%$Xr Y$$L P! :4P @?tAi@6Ì5@)DiH&#h"^{CSfR%c ևXɒu@=у  A ?p^T@p v J6裐F*餔V NZB tUP&B#,(&fb_mN` "pApG% %ACa V\)єZjfv+$3IP]и%P2Y-d n PYag,lp%$G,WlE_w q$l(qrH$R"EB=tr\HRQ  `r2- E'I;o9p(< # I/(ܗ! @'12֐2"!TIw\ M@wP$I>N],r(Lސ?f\6ЃN  J$(Do=3xb$0$y I$ '836 8o@'ܺ@$P#-<$.I(7#?G 8ۑT<ߑXt5Chv<F!: X~d\>q}b-֖` Y:ly9a 3H5B 4WAUЎonYhpAO@" 罥wOJ"@iM h@XxpbC0BG-P2&hKl;j@X>DRs=XjX+K EXE p*k2Q]/l/ l*m K 6 OrH!(N,";>)"o(83E!9M팜9pfi;Qq4!xCBy|GyA(tBT 賣P">.>%AVzX\N5]ɫ.閘!r(T<-#DF,;D"A;Ef84 O,rgC ވ>3-8֙ %Irn_R6<P8G18ٴΰ#Z$u&I(F Q4N[6@rE`aiᑰ".?t)oʖ–$^}NhUMyZ~ V\1]9_&$7۲H$^G ώ8#A 1*@m#߁4s-3A 3ji3E-!(6QxI8EpQ&`!cx0C%`;@@{[#!VW z-&c8Gf'e& r]Fw22V}!5$ FҝG R,+3'MJ[Ҕ47N{4GMR@5WVQ5gMZԲw^,׾MNc3Ў炫i[v_yMrNvMzη~NۗJ6;'N[ϸ7{ GN(OW0gN7<Zw@ЇNHOҗ~sqO2Pl JPp1$ah N;P鐂.l`(0dPvs@Iě h~oJHN?yPc wxՎxg^׃)y@d`@:+lcߡ_x`,9V@61@ xp|6`<|0 d,ӯ~00`} _@pVcg}gpW~8phy7|ŧ t'p7( ˇF@l,0|s hWyI@$ЃeG6H0k0"WZHsJ0(:Wvuw_pF'(pyׅ_ 0xut8hdk PypMpwP^czȆ[|; |_~VPkk?'_ׇ l`,04P_0tbX|oǁ7H|+h5 [irwfm``k}L,uם |pfwigG0G `XI~yZx6ysh,@p-|4m8yY wapwl 8:Zr淣@KW3Z2p1vpLڤNPR:TZVzXZ\m?m`b:h!dzh̖1&$DP1`#;`G56`0? q-4 @7  ";B PV0?0PGR p aGPd0F>0(:$Jw 0U: !D1(/G" R&pQ>*@$0;0*"@">`o R!D!H8W}! K'p,? 0v&BQ@%`>8F­J(;!PG± @` TaG#@84/C 4(:˳)zjHOWJ,[ NʮQMa+* WC`0_)P*1-[I1# &4 M}qH T pWn@Bp0E11NDpI@4P~ 'y{2F!;X{K$q;u;K^`<GD6`%2 a$ŋ#@EqZ$ )כ)&P'B&jq?@ڸP +; Px LFp/@(z#FjPH ",r""4` Ga ?`ʋ"T :'K@`Gĺ+<XF(le`J$K<10@`\/#SF0v8S4b#'KH bLƏBn)#, $ұ+z4(b K(2@Ld1%0#1C`;_90^`q4QT@(2|'y'mB(5s! ;E0CQ:@D_AEVOCPT$+Ip/Fʹ,'Σ,P=`(r$ )m<Аb˸l2p+0 s!<Pl8m JpJfa#~ 2Qa+X$l,+q6@zRA*/4+$6۶P+F!WpG"O!z0Fd?,3}pm:ϲ+E~׏b1(Dma IaTD`Mq<"cikNF(Qg-128ݍBW^n; 1[`d gƼ*л\$K{ɻGPK+t-$Kث(˸h(h~|&Qxx/y$g,%8#]@(m_v Oi\ŴZu|a n@q)UXˆhtr `L磁HXӨTBd0A > (Ybǎ"t!G;e۷? P.r|`A߃P09!P .ݤ@ =aDN0͎L:ΟCm"` a#Gc8P'&p@D@eQPEz0Fch-Hb &Hr# !3dHa8KoAI;AT|i#`8/ ! _ l0"<|"ŕDp: c PP!Nq[|ȣtĀG<>Ld ̠"Pn;a!@0N*@$|P# (#8a @$d hxptTR;@ T',(" 8Vp(EgmTcsi(~BXvu; Ał4vXV=6o=jŶ\"H0kmPIE3RjZu9mPPq!4ch0H v>x xe)I("vxeM( `!vH MqHVy q2Pы xPbwN!] \Yn zXk8,r 7<% 0cy89QG'0`i 8@R IȼЎ8*ފ*na#:vs7MBn*zA(P6~7.w b,n`#%N[z>W{#?s#b8&a(@sY]@gd80ҝcz0eP`72/x!}a Mx!_ ^3a mxCP;yC QC$b-QKdbD(acxŕI" br9hm!IBx2AZ- 1;cINr΍h9pYLt6`aJ4($AH'@Pp` dE|%dX{/XaӁ,fml e,--6 HcԐr5.gAd~ pCWPӚX& @;izla=P@Tl'@:0d0J!uC%:ڒ"4֜RH* R%e=hiK^r\$ Hz#S K2K8IC :E'BB/ڈwU΅ XӒUeY򪭦Uke U:. +]qՠfyETGJh.FP+lrbПz%LthP/9CS͸,gUv6eFtJMh=kђ RլfնUk_ ʶ 4(7mxۑ8p OR( 8PeHd葚3%U0@?~@9؀];f!x+ty+ptWS{㞃|櫰tgJ~7uL "Lps˱w6 )aJ8 fL`(Gh!4! |e,$Yre0YJ[s|f4Yf8YD 9ٍ8ȝь"Aٸ= #Ș<.}C@GӐE"ehv$(a2!8Zhd'?\@z! qCQ5FtF5$iu#$oQ}PS>$Nk(<<OzWr[ؼ:$X0 O*^\gZ}UՃWUͪ,ެnE\kRvgfk ^ lTÎȶ;$ rhIԑ #+W0s96EX-±l5Yΐ3fhUkg6wjUn}6"۹k.6X]M~Mi̹n }7λWcrS^4+J2u;wo7>G )8 ^Za0d豰˰ذi 41 1dҜ6pÑ Ҙ+#e!w:2 j$[&{A2"3"CʴHqؠeӌ3$L0$40Р.ۙD$"Ȃ"][^ۋ_c`Wbcj# $Il6ृ6 ܙ^|/2,>F"6 R@/;p P Q pJ,Y<@t[ɞ?[1cܙT @d{c۱D7dAӹ!,\B PBP QQ=QM#PmQ}Q1XRU78F+:$;<4AܢB\4ADDC?r4@JAaDpĝqOos E9EUFa%baB6_F\Fl&6 pSet6f̠d l/%$j&l27lovP \69tȓ(ܸZHH39AUȐk*il)BD#ɔ칕:Ge; ~ͨƢɭ|Q*䪵b;jCɶ+p;;u;dSc4մu BT>a> $3/C/ NGq, b+[P+;OIOq kωO0OO S Dn@L]P 2|,[Bۃ`Q[$[\-7\M\]\,"I +}é#0yF(`Cȫå\DRCcډqR9JR(4Ρ RDzD :TmTn68.YV<騌! vk1=@ZہR<騎?`"S2Zԥ[ \\SaSb[b6[c:ZIFk3`PPA}^s;sSuҸE9T:)+9KuA(t03W356q8~{UzG; N]PQ](4Y 万Ԩ҉YZ[5)ջ &`Քa~zE!<~-+ fzW^F1d$hJqKׅ*j:`xbVV+W\Vm+YM`؁\kl{Jr?#a 0;ZD#2сE͙M?(h153O}eZv0< lK=MP\ж]%c@\!#h%cA kNl^ Bl~lȎlrlɮl˾lq$H]]]-u*67>D=R#זR)ށ܉( 'r[3 慀LJUlŴx!_TE a =8%`ubL\>e<`S 6 iF NK^fʈbif# K7~4 8|p(X:MG}$3/+&,U.^UCc 1<IՖ8Ω9&֟*0h" CV|} tp31xz%BSU;nuoeYd2J 8;4W fz)rjWF/6Pr&wr՛c 좁  P-Jxp$Mhأ؀=-%ޓCMVXiM5M6 fٚMfBw/ŝ!/$؍Kt?XFk羁3?2 NTB?t0DO} y?@ 5PS۷fS!+Pђ]1T^>l&*lBxyo/yOyO_yygo чd\I O9D?c@#A!]v]=f]CmLMkDmBʝ=5FhWIr_8_澍^( 3fVzha`{ohc;%jonmxF . Ee7rpސ+Ya{'L(G/#T9 0w} 3TgUQ+U?U.9X(YqUSchc)9V"8ZOh.p uք J?AoRjIYSb @K@: NyQ|rp`"thyiD)'z @yIJCR,00M"I//*4Շ|0 ;D ;0K<1[|111{1!<2%S)2-2,orQCB CEPC>s_$3DZA )t?U;t Yud ?ݴ AF#QcP6)LkBy%̰ 7D?$A_E_CTp>/ECPwqQP"dD6:}? I`;C?4B%XదmAAw0G5,\yAHș: {?B,>#:CO?o1N kR9\簵 Q͍T@B$&(,!PB&'b=@ B'P PJ7("L9L -*(څ=!Ȋ50P)Eb` %sŏ~0 ih@Q\EhB`<_w½u) shyH\h#AGяHH CP-IJV’2g/ LRtY!$JR C! IC 6@|;^ Tօ RTU.6SLհUmÒŁ\oz^ɗse2Fָ%.KJEZ`^M,a@I.C ,&>P.~1c ˸61sx>1,!H4[#䷳! Bch B=`lՎеav mq[l4S}3Y(pJR%; x@ρN*+"OhE X9(a v`; AυNv'NQzK=Oa_֧:acAg?`:Ҵ+ =S(y`<* j|D Y"* qC&P@,e'?-[NLAfJX"9l! p< v^=dTA׈0L $#FI?R.$HF:<-I1|x()Kl{pl+cVe/'\$i ]h1 ̃,S!|f4Nl:)A= CPև?^F ^@ATgT0 yCIS IUTUh^eWpTjZ^譅K E;cA0h@%LNEM&7}Mei$eGeDx[_`U)^^g(Vx_}j՟c9hVVv ( XY֌"mgLlv"I @D0 #Lt]`*ag0NL " W!K a=XJNhq L$'f ť 0 Dİ p 00z*[ 0ƜpB tа .n," --z . cY/Mޙ܄&vY?lǐ$c,c34 I 4$J 4aݠOPA_p!L#޳ d66%fr+RDJEALF>G!,t$0 42Pܼ@6A \eʊ,lue~%U ͎V,W&L΁eMLYNіe[&dlYf]F^Qr)1A íe @m.^Dir& CsN}ňb4.n2mpBq&rrfF N YZ1#o A 0\G}Ÿpu./Sh(h"((:(J(RhU-3:qri( puVl`l&ʮ) hoתhWF226ha+0:2]p|ڠq1ii)&˴G cl6pC j*{0npw 7q7r'r7s?7ZqЀEHYc"ij{٪bqja L~1AĤ7^2*#3:Cq1^kʲ|A eZpH#g"ɸ#&+>$(F#kArA֫}x )OKD~k;2$-{4I,f:At 4\r Y%UBP*3ʆ\R21%I5gUbv3LnmК3Z;[["\\3]^o㲜H.A-ЀS\A@|\dv!4BDA94BEDLG^TF?*E~t9n;4٪4'NLvzLCD`)L-[@:9{Y֝x*H:.|":xΟ?V#oU/54oV{ʹֹfʂ6FsH_uP[whP3{|oȀ\ ĸ/&ӑl" Z F 6xAMy/6Baabp c`KR#ۼHQ6iϗiijw_˩L ЀXUV6t[mw}6CVاگ07ۿ=׽~Dvۅ(7C8YBCwOq,,>wy"*10AwݘqO { 䃈1~;K ɉ\-O8o$BH# qZ*8;"V8=vφBB %+v8cI- ]'LJw(\D D80 F! bF 9vdH#I4yeJ@Hǖ/U`peN#/fȱF/x$yę010cbE ʠF@fTr"kZK4}nέ]ƵLx1B!88( 0adA'v aD`{QZ@FJ H,QGq4BIӳ=Hq >(hb(9P FNL|xac<aI3>'G@gU?!!3.>#F ("LpBBB@b7CBǾ{.:&2+%vO, -2%LHa8 !7N3>z Ӱ h܈Mn>="AA@5T0O8 SO8EP<;%6EQ=Gdܘ T:ZJ5U+5d(/#LN:@ )H((SM6 #F "3-ʄ/ɉ~02 ؔv@wv؁ %$hP - T `Pv-b@8zCeH`4c"`x l?jY:@zX*Ycpi6:ʪG"]SCs`>a(N@Tw_Z (Ew] W5OC:6i|ȫn\r5ȑ&M?U_]amu}6y'=pn) ^Gqw蠥3>z # CJ{8YGSOr_L?vhЁ/2 U` ?ϋ*IPr !6P`(L )@i%33,ea #!(@p" 0lHDp'im#Xa&EikEeq D9P6>Q0zD f|E.ϢEA\j: r6 |@2Px )&3E0VYJMntd+C);I*V\,fZj;eu\^җf0!b e,p7 hJK ̃!g"$x^I9= vÝ2r5#~x@n9 .;Lq^sHIli[Ѯs0)hvWv%oYQoZH>щwV`?؆ )\a _p9a!I<(t CiH"0D_G)jH>>M0gq 27g%Rb!HWO@p&Pi C 0xؑ&AĢ=2D$*Q$#̼CPъn5SʼnicMFknm|#wHG;J zN%@y)!yΑr$'YKfҞH$(9JyIR\V[hJ)1 KvioHr鱪%ӗ,YhYss63R,h"k}#Mn^&8I3k3;9R_zrgX`FhAߣ5rD`:RO_U#)4z 39&B+uRlʔ<uLJ*O!`* a\#QT:zyTԤjWְNW”fW J`U0㼎W|՜jh& 2쳢5-T`r [s=,d^thIkZ@t{!ΕG.l4閷,{oeݨ=YNڢ-΍KUW]?6}WFU6}WwX{E*}yo~~|p_Hyj :JrbD 7,$R@F"Zo8ć|G{ԇ}Gplb/Bpl",Gz3n'dd(T/y.h T78?ex6#R ] a`b ~xȇHhόϞf&ФЪ(nѾ蹴 2'ho ?MFB ˏP)gTM 1֏#bq6DK7-:cޒ $#!5 oز&l-F&"وlתm.m,ͺ&\rĭ0ݲi2*zMY4D,#2#sl7tC }#9B#C\1<=N,*q&i*C$ $㞆&*p CFʢFNpPE\FXO\FcfH$ѧh`NpJ8qKƤ[$nN IN%Q" E̪ W.Nf2W6.sW`d&L /\ՒgdW"]8 ^^1[I !;,!@['2stNN8$cJ$cΦh%dSx X`W{Wbڀ8ȲFjoPJN'N(S*몦TȎcUJ򬼒*R|,YR Y.xZ/[*.%T.!:] `0~6}D 0F0]"sJǞ2s65if5As5!mon5rlf+13 7/8vJ@Lb9ד*tro:?:)qsCWtGtQeD0?vG6TetӒЀ P~ P l@ b0Ϣ4 ih ԉސG0ь#4IpӾTQlƴOtԔ`OٔT8JWpbZ fefLmDdh% gQQM&"'&'*Up75}bâAu{qTI{iNՙlVVu;^I1QiU%IP bs/74B:G ѱ x/QZ jŕV"<*] @"Kε[J]1]M.#ߕBiF6r)*xLfdaes2-egR~[2'Ϥh).'b Tpn7Ż 3 =O`8/ll?(yi&m{kmn3'4463k@6A6pu3q{t#17v?O7Gsw:#>NڨuکlZgvZ@4#wQKB??"} 9%s$I>bF?kx{/9F0/&zQ/)@'{̯mQP|8&q}I`v`T`q}_7GqB VfȚ!aqeFkшRd ^RtEwVhFm IXIxc;J)TMKψKL6DO @A6ۻ;-[ZD`-v`ImX Txզx\'j+nh  c R`ڬxbx@>7O v!Mi٢XCSoiuIku?E"]EYER^MDd h ϻ<5ʳ7td9n@ s Sɜ]&Y"jM6vD V'VJ#t2.a,e2Yҫ)=d[VPHT֛ۿbfM~D8VdN6t9 e\S$Ge *c,2[~0-ReN*&#tv`t7Wk7#|3j9`j//jr__k 9z" 9S5=j4:nkMn/Xhm#5O:691H,cR0A$%Dr%#i3þ;^>sОX^ᄄSA ~]$"=3aƒiz"ǮWTzSp{+#giQ׬Cb|]I0`dXk<DRH]=ۀtψТ;KИ[-85H7˃ÔӴp1WXi'1G(ɒ0I<" *f̣4+ {Eс5Q˕O1 0 iĝSE P$͍وMVM<9_#m֭<]6sۨBh 0D԰޾@F#JvpV,C %ya4$PԐvVC#BE`n(Ё9llaB$``,tyځ9W2H [_Dp#(@se̎q rPCx QI]8 `=`O{X2$AA(c3E)A6=0)U 8QB`}8io#oC y }X8 x"@PZ!A"@F*JXȈLB8dHFR4%gIMF$(1 RŧDe*۹JVҕ$dF /g7Gq[2* |Rf@a6:)PmJ1M7 Kjs$5DSQVhF.jX֮ZGp$( ĬWW&Vf|8 )Nsӝ:SJe"a(෣V0$lc?~#IEтSLc:؛^[ܕXmVVdKp \MצY&B45w(/B%0f00 ]#1U1}u^AsqSS4~#-"4E)u3襂1(3H5H)f9;ȃ=x8A(CH&4?61V3&`YdcYv<~-8B1c8Ec9V99+d3d7d3t-SM3ie[Be;%!"4Q#f3 ̢i쒀Ih#Cg&?(<;PF]`r^>\6|:?2#hhD.i|&idTDGA4*c zP*Tj.CÀ4$ CjC?tfCFDv=ݶ<PICP.gUR&q0+.U g^&&hyn~dIFndHovnITI*ofoX#nD4 Cl4W;2KhFE6qvä78'3Fuua%d*D=PTHs1NBH&Du;tNLRtȁOIY#PNSWPV74M  ^]s`&5v%MiwSlb(=@(I@@@zfݸW6E:ApqxAT$!BxKT&y"WUw#ULUZUEyV'zRB%7/G4$EwWDxxyWW'(bS(kF4GW3dr\8]UVٳgW;G!>;pq12)92h)}}~w>]$d}Hz}u}|7*EDzTC+cڙ,~ /6"lo. )CCvg`];Bc)\*lΊC #:_ !0p1*)z5bl4q(ulw?Hy}(J,ȃLAi514Cz7ZG]28֤acӥAVuGEINYJ5c!shev%jZ#5c)IQ@izM%:‰6A:@- (AA(BxB7CjNj(jcj;dƌV<0/b36'$@=P0u [mm|m|$i(oH+;TvVJ*oJ/[p1$YQ ǯDq )7q1hgD{vۓxAGkPtYwQT3Vu8uu%^e7hǶey@,p3R  @ͼ"$j9@\xi*%%׽#gyIV%`u{2{ye{|XxG72))*B*+<)~5<2Y˲GB27)] ſ!Z81j^Z4%'ƅom~9Lܸ5"ݹ @w/mI3=4g;IO^]^^_ ~`3MUq5O5.o.o/WbBt <8\!bHbg1[*3㥣Su9 W4fefJjngrFg Ҋ<.U̞HZsg(Ynieͱ82Ԭm+Dν(CHaJ8`2ÏQ@E=~RȐL>أ-THRL5mlÁ&za &Ѐ`ĐRL )d$XDJ7͞EVZ6AǷqU`3޵Cȁ_buba#:qf`с@((2g$,욞1M[LHMx1BV>@f $D'v a?vC K, ݦC6E ) %*Nʆ@B R=.0C" >C" ^nW2 ĽB !Ap0.llEG ("d Gy5#@RI&쿁RRA(0ABj`:A 0B4< B!`5ے>z8x(r !H8 !G_$V Ab4M$xa`kU+;@Ձ% .Y(7ZVVZݑt6IpEKSԁ@nM LN ~( JQ-ʰЁA/`zk!H ~Hi[TT 8a#VGFĞAAF@"鐤P^& `@ꏖ,:n쏾>V:%hBJ{mg[W\֘A/8x,lt a` #"v zh tbS 5NhP&"vw}p{'x h`" a7>z駧z>{̓~{?|'|m|g}߇?`gNh!nc+8xe>@H#XiH`~  dXT6Z G5(Z j;(,^ _BMQAp&|,p 9;MF79.! @1PN"1=],B |jĠȑ+rpmڐ:0Vjvd9 GA h[ @ط!rd$Kx0;|и,9"D4:9HB|"F&*w_s>.gFsռos<5ӯ;hL,~I@t:1Kf3B׶WÏ:;{0jx"w:GdȻQC5i0UͦD$ A`; JU;l aH6=R(\hCZ-8$A"`ė-B v `H}nϓu#ǵ $$$ dM/Oڏ$ Rbd.Pooq*WiE˒uЁ+DA Crv_^E;㾮kL&3 *$A՜oC1ik4@T  )8AOQi" M nVCS*k']y$ >w†aj@4fBP !^+\Q*~@9'eCtJЫF 𮦃A^2`&x5=IȖn@>> !}~ &I FFrjllŒVL*')s+?/)꽻B$ )i@c1( (p*̲j.,(ƚ:m(ľP {&K yyAȥQc-]_c-eagj@/o qJ4ĵq.'MQ9#X@ &d(\KXD";9XرہRkEհ0 K` )mљ s 50 󚬹 !A #EFa131l 0Y1bܖsC9*!1_ELǠ/M2H9G9 +鑲HqȋȌȍȏɐI ȑ4ɓDɔTI$`4y4 ĕʀK ٴ i525މ5U9WZ ""J5(#0$Pa+zx(x8KL Dˣ=.AJ{[K7+J$8*9$k.4%7w10%%ۥ|7a9_˼ (5"P͛K`͇x;ƫ<}*<~B<3#(< ë<ѼC[%긎@(-\?axC4?Ϙ<*y??z*:*>@L+RP } <\⨾:< Ps? I#Z9ہ,Y  t) kQ4Q,h.a!C:u&Z678<.-1-Q-8̼C.!ȪQq&B́% 9;  +m+RP#ft0S FƷEhFGdrLI+F[G1XCY"#DGke kVdȑn%r5s%DuevuפQwyzU|I(+HP4 XE|IɖIʤ B45Ir5:NsTU%%":J*O1n-&˥|GHB8t8ЋÔZRZL1[8$9WBY%7q́ݱ^ '!L⦱`$(O< t 'eċ+zmó<39+;dOpϔ-C՝ zĆ`(x#[^H+LP^RDЭj+I@$JQ荾e^M,|*+4ԐhS\ӄ/Dߺ5I*BR7$cA/5CCflIB-ESR9d01M4S>]LS0.=. S ^BCE`-Ƀ2Y*#PȝXYG5V0ZKY!OP}Qmg4STs4Vn|Y G*1;V1=VGaG_2VVEMU fuV9 3 cV{P.neVW-#;WX呈Y[er\^eW  E( ޏlXKԴN㴷X7NXh[NEɹ;aD:vt/Gŝ c|psF78 U <p>m 1t̒E.VbfG$+ }"r0rbG䷞)Wwo倴h/ ' g#PfpM 5 6O7Ͼs EJNe!Ȉ;5~HH†B(q"Ŋ |X )r$Ɉ;4$˖.Ky)sb::<1sG>%4Qˆ+;x"ݩS CvLPB $8c) Il G ()GppÍ@6퐪zDY08!Bd a"1v ` 0P@ N CCB,8 1܇; bb ٴ7{D AJȇ(}|'/ZԪma ip%\@{V=U`O@p DQ%Z <kU$B / H fxC`BCBE [50 FЀZPȨ"'B FB2$A2vPWF I u0 < q9y#h $P $a5T'X֜3#ڣ2I6ÌTZ.,t@FB:BCuK>eiƦH !Ճ=kM7!:E@ v$.-kB,4KFpp  W@\2$Q"`C}P1M[Cq F@B,@8.Q$т +D7i8g9LPq4Hq.S&tBڦw' L0i<vVl060oB[\tH?1j@Ail,uEG'.Qm5g$u k NW < |naMA ̶H:Dn,"+#@Cgt  hcy:B]w=@Q0%^T=ǵј޲fjFB9gcoB$`qze>I C=^eTzB nB=!!@z/YJƿ 4w9[*!nݪ8p`y&W)Z ``#H0"i r" * ѕpFqE J 1!;WX#E 4@Llp <''W`82f+Mb%!2ЎJt2H0xM 2L5DK =aJ2c-Р_8 (riKk180=VBA @f:(4 16o|#BNxlԱNBHdȹZ\V_c@ ,g@#WQBnmdLgM4݀Y++=O~`#C!JQDjK#TJ1l|[_'ҏtb(L$@Pp:}0 xNPH`@H1Ɠ&`->q ḭޠ$ xt#w "Pҧ4?<$ ٖKvEl#I)ɆP L&9YSO"`@Hܦ+Xr.p!$!gZF(#Ȃ $,EM}#=;9::ْ++=جD@0AfԻ=bOn=j_;=r;'ZQ4 eL7( /V!'Rĩ GLw!&EJ@%2M3ꔷ1\Ox 5JEOEN˛ R 2)d|00;<: m֢@}܃>$v]<^ksկs phv1mfe،K5f‡*Ti Qkd,`m]15ȃXKXӛI @Lᎃ 11@py AtMW L IQw5DJ}w}ק :Jym~6Wض%ۜ؁VB`IDXPaYKEDYtZEZ5DݼXB ͍ᘎ^и"5S%8p׀ 1b0͖Mbe ōlYјa˻YBЙ4!+H vΙ= < ZQ Th@QRĥiUhڧĐAZ_=пȚ՚#aSA8!Wʲ5۳E$y4ZO}[= #O ` Q2CEx ! -Uq}PD ]]R%%"ǕE%U*Y\B'AV#Å% ɑɹhK. HFu$mAA3LD E0]K%99[xPDXi]C*`]_f` 楸`a"fb*Cb:cBfdݙ@рUINC]H0G=f5JJd@l^ruIYGPR%6fSMUU Ȇ1 YƞaV pIaFRl)%rZ_f:t\,%c_kebSVJ]meEd R  A HZERst=u f Wzx5>WzYJ1!bR| Jm]S[@aIV->si^X%ฑ8 +At@8Uǜ\)H4kNʅ%f5$i"dّAb(qY%B&Nm#z"Pb(bӗ5ML**+rLBYyǠD`3E!OcP@N·FϛDD㤅*bZcuq:EZ8Zţ:zZc)P9:F=VJ#]?:I@bAB[-rHOȀe( |$AGQQhbQH0=K$P&R$RMIPbQJO1}STbTŠUb&ie}G\ƫ^_2 p!Ji6- (ڲ tY5^#::&#)!-"q" w<%FY&0p1(Y*`jhj+Yř>,jw*$D)mY+П#1z l/4.bcncϱakA4krS 3"i+@k+1+Cj_kR0Tva}-l&Ê $dRj,q6e'216,쪸meuXX)Z2dm8:dB(3>?t@W? tAA# y@AX5㌄ܦ"fR DlEt&=-ܭiJkm nmK&n4z.ʯcBDt9)xDPbRST[ga_CEyEE_QlQ'bc@ he\[qvuғ낧g^Xgc3#~n5ݟh鲜5RC:Tv &bx=a!@Ы0p *- V@a|L#HuTr q xH׉#խ :5y}: R!2Vx㑷3z εh.>W\ :PJA. B t"DPtge2c54A*) W,P$֑Xh84 iXp @bFpPTd8Wl\?8IJ@ : KiOIE#lvb@R`( A&!p$ 䃘A" + v p['aA>r0 bt@ x.@J0$M 6ґ$"! U13Mԕ(Q̲De*U ѤLi|JT촖%.sK+W%0)a<&2( ,241 p%Yi*(EWDRnrEm{>tf!gol|@aG;ZƓ)g=SSSG?lPd!M0}nJ!;]'j!-D&BQ"8IDq#Lj$,8]CQU,i哕W:K RʜΕ}_XRi5aX.6ec!YNhr ݖ)JU˵ rZJ\izxa+MֶS/^yKZ^,eݩ[BTkD.s r Ͷi7 N!;Z` @D` gZ(ͥ J4puֱ̒ݬb2 F㩚4 j *frhkK'6%4_e;U ^-yͩSF`ljj&w!@ [sڅSHg:xy]fǦv]wxu|Գ{eg9y}[=A$o6qI0 ]1Ё!W] 3 JPvZ 4tvI) rAbAԈ%M"QSEIl"@8&i;rl⚢qTrЛ"-R戦iN)>23`zN.A"xF F٨(`16@VQNqafؕIl hasmu\vAD ˣ2 ܀ x}`!v̕gb`"@  j@i_(@ ^-~2.#u#BN&,d$)MR%Blarfr!sKJu'c"m`C.im'i)n `*e G "t1M29b,D-#?N:H 0Ǝ/ "rzm2OGPrҤ.iw#Sx4O0 0 1jNoK!2!J7Lw~tgRWys$[oLB`FB@!F<8578%x)$ 185x/x=A6hI8̏1>?cVsE>I i`@M`E| Z* Fo5NLCJ 8}TDIqFgtH,jFJ,Mܘy 5lC ?PHLDs U, [ CUMl NH z*NXDT6U1X5 VBVo0u͈|z5pMdyXXXLu~spT]b1hF@ N#N^r v` wa5yh+d];vDUVdQdڜ͍FMg1fQ5`;y]g@ 0`߄"B6I)vr8$} &jl#V\pGRpKpQ&YqExrUw("܉iU:)Bd@M`C6h6pC7x7>!8znzqLN接nM Yz71u||:}d}}=$*jbĪw33H8U3焁5۴X!\?rMQ{Y%K];e{ iq;Ŷu}D4a;{;{;{;{ɻ;{;! !,+I`#2@<2Z 4_' F &7Q؇9"7_0C;`=JK&02$7&]6r? H*\Ȱ!)h0 vl (80*: ᨖKD b4HLB$b2:@9s%>P8"Xjʵׯ2t("CO.'lcm'J Tҩ_l8 r 4 p٥j.Ł 6 ӿL^+6~,ZPQ7O(9 /0+%$o|N5yrLob-DFL_Q)$lbg'PL5\Bl?pAUH6@/D 鬳; 1='`$qőF9h8fYt v`p&Ba-@Hr'@HB/V  PҎ\v`)C9 40lp)tix|矀*蠄j衈&袌6裐F*餔VjRH"">1橨ꪬ Hp@9 ' "I;'<`6F1h i <O>IF I I* ')+|Jjd,T т (艓,ko]1VE0|p],B9Ůn,̫iL16߬4h!`2b:Qp r'0G 8lXg5l`-dmhlp-tC+V|֭|[]:ȧ/i@ 8H*I Gr 2A1CJTHߠ.z~EJ@" C0U$Cl!iV@ 4 <@F @Wow|wO #OI`WhqC@p C4';/x/,l P600 Ud d"zp CLT A?C 1O0 : t5a# 2!ƀ|23O( 4ˣN@F @Ez#=?h1"vuAY@!FvM5@L-|Pz0#  ~p ~ )8A…s'BFDgLMy}lB}$HgeQ@$6 bFydD0oNP/7 AD!QHB Lpu@`SNtJAtF'sj{z@p8|'! " %@8/dD (@)4osf Ã5PO`PGh=| $'RqwI:qs.%tQKA {q/_HBCH0szDd?$@爞_]AOx"iA&Ͽ80 pJB 1@ (˳0? Kp0+?p"(9iVm55S( 0UEqg=P'o6'`^B'Y3R,%umPAB?/0j6;bZ1Sg6s7q`(m]TEC4<2D+B3]@(quH672!3b_0I ;0"]5$~"x=U.rZS_SpxM&!0T xҋʸ،8A5#I]`pi!*p XW7K98' 'bTՍPmk`昐4cWwpS<Cow> @o@(1Y?4yt;Zt/E@Z$?36&D<'DAsD %"DB&$WijGp Ky}ȅ9<ғ=\ lk5c*>DF4FD{( 8kxYExJr~J7HhJFFoqg{zę$Ϋ Dk ɚɜE `)h)PV< C0[#X9RT@E) )6?iAT 2'pauhnkb#+VO}! i99AMyR0BcbpemC;0Rࠅ\\?jv= 0^7O}- 1-6?ZPw]WUڡTRs^׸xm ]1 6= "@iǣ+~qۧntDgƇ|P'؝ڽޭ77s(tTKGmOB:mJ0ʊЩ,Ty !Xt<l]2 (s}8PUc.=#|Q ק(('Bn߹DQ+z8dhi]Mݹ=1EC(}eZ0v dPxG^/_5":J5^/ ஛}*8ɬ ̇xNם^~舞芾)4ԛ^"+"HS cmlNqI-A@%(Exȓrwr` r(gKvdkJ'g71C쇒؈BĹ[?H< q 򊱸| un]ʌP&7ɩʫb$#Lo (~ޝ!N# +1p/(1.X=4|!$-3M(MO4zT8刧@-Ju)!weV~n[ǂbu.vɑ_ȟP #eAV9;Ωչ3"XjMl}rXPrs+cs8#\D5mmE-;4RH2XJ`:;@')6 CBT7Ă_@9, HP0azGL4chF2$2Ab !8i Q׾0cʜI8%JrJt/_$@ T dT;naChGN44Ct=ʝKݻx[ %g.È+^̸ǐ#KL˘3k̹ϠCMӨSBװqh ʱC yPױ4!$ pa L# ;vņ˟O~N %^ Wο` -@BC #`F`B =CF$'$h";%"#(t_0d[APDT)a#L=ۉL6ʊNe@Cc㖽F@ &`F %2rHxn2e [X堹 =,tCS}SN @a{'秠*ꨙ$ꪬ꫰*무j뭸뮼tB @vl܂ Gܠe7xK3ECvkk-t _$ *,B "sI@# 1 7D[ 8 Ks aD聁W9pCK! 2A1D6t1 (@1oai8 WD3ֵn E_?QEH+ _'0&$C$; C` hDC]5)P7 p!CPp-qC7R7VamG)?P0Pn:*ҋ[eC(P#.L#"`C$M!B'` $F[DD &lP3x9!:B47DU2QW0.{:T<:{DhfPt$4j6n7rC7Ux7U7ZV S8s82GsC9T69$9؎2!:s: ;@s}Ëw@<{=Cv#<3=s=S=Wc>>2b\ WWw8*@`5@A  ԋ*Z0ȈZdAAAk#6sB)4i.C2[BT57C(vtD4[wDA%"ETdEO+Z&8@MaJdDg1"^z7GPGwG{HGŖlgHHlFyE^fdX^YJEJdJ"y !zEKMaizd9LAP|@ ?I9PNpNTd ;yAOOt%d˗A %T QE13eB )#UR'R+R/uef~ɇSA%WeGe7C[@";TQ` yUU]Ya5V!ٟ|"W vW|WbWl~XXXYYIDKA " @x1ZuZE[A%\e\ȥ\\ǃB`l ]̦.F^dž^^jz %{Em:__`ڨ~&aP|abkR :QbgHc&cFb!i-j lZj!@#ɮ<NⰪ(}&pllUmgڃ [mܶ n&02;4[6/R oxkppFWP0p p(qgqy\Gfqir١$w^ TBarEsX6ss:sI ~tWSp~[0z_``,Y'u $Ƞ Wu`" v%h|$**5K?dwZy6cs xCzk"K*0`GHWyc#E;ڵ;[{%W,tPSF|[.V8}ޡ}Wa; LxA&7 R, ꒶!仿뷏`;i#8b0#$̭H$ 0$b¡@dS퇂b#+x&.&1orrb#LO)B}b2)浄M)O)<ĠQPCa'z&IdP#5øW5Xebx;i6m6qZh7֘7ǨÍ3獈8x19 ɭ#B+x grxÃWik )=c=x%᳢YY%U+ ׄ?/"ОD༖Fi! AēT?4 +@BEBm-B14$8RC:%qѣE>)bYEgYX iE/k|!eIindh*|vty 6PH4HIc 4z9)H登9E`мA^t]v}xz|~׀؂=؄]؆}؈؊،؎H&{{wƇFx-׮gii%`&|p &pO4Y׹Qڜ}מzIY^o)f~@&R*uʜCG'`{ۦ'5TEuI5SiˠZ`xjU-:v]޷m0+aߜaxW7;@ w7XX5X:DAJ0+LjZZZ-4e@إU\hY'U]xo]Ed慧^xݧU5 _IPR>` aг ْMFT N(QmQF,:FQ=?BfM7+heTf7ŚeȪͬc]9*yFK⺑M RwCPC¿gZjj&; NTAQ^M0+;lxNѱWA!dd ]) (v ++~'bDڳ b>ߥ.@ȴW8qG SqkcWzNݮims;'>(tc#jp?/wۑCoӞT7-*[zw}[Y NInAM y;yWyyū><ױr?t_vxxὺW-1ۜϷD(}QW~K0Gwl$ P'Ϧ)܀#, |7V"[)ׂimb3XO_"Z*A2ķhHĕr)ģR?RRW,"jȆf,h j\| oL&fXW;$C;*$'">1*$I6DH#&%F&RG7'FC0DQK;&;`=9"7B2?E1;H6]80(P>;@ HAUp%q>5| `(YB+&B~H$!D -1 p+PbF 7@ Ι5]BIqM\d$Adg>H@F=0$nz-MH1߿ LÈ#T ^t @#d< (~HD!#aC V(9 Xbٵ!DItB!~ەvw!4pO_4l(Kn j颈 0LP;QA" @cK !C "5: ]E<(!h mD G`Wk;Mv`3`d3far #88"nb&C̕ba)0p@ `@Z4Q6l HD0'4$J>8Qr40 7P MGp L pĠ:)k"FJ&ܚk28E9P8av+|1m 4(.-$kʃn,l' 7G,WlyB B߶tޅf0ǜ4t 2.@p,.?CJxW 8c *XmȬ\w ((D 5&1&CniC'@=?\E!:MsY`8^G.AEmL-4]E]hU>(A .[<. /~e|r,n|f-"06!M@ A!RJ 7HaNNC<AB!`csV"!+LPM,L\ P8jpHzDL["pЋ:h7 `\$t+0 D w@X !X9lȔ8ZKCXvJPe` ִȭ/ЀLȁ6pH:x̣F+Al] Z`A( /شKuk7(ڱJZK@@lALǁD Cl#D1X 7fk 0^2a8'Y ;Ji!Vb`ihPTpI7_܏N,r+O,&R&2{JƱ]/ KӅrIB /%P;PpTLLe%V&4|gihP/ ߊпj$ieN *1v)V*Ȫ[I+\P9LJժV\P`k5<,[岪XJֲhMZֶp\ 3<+{'AK(\KXKpxX[vWaC:6%(c9šv :Ħ J.,j di/ _撕d'd`Qvm2v\m@`=RV0; V!0)xr;XѾAw]W\n8 hE;^ H$CLT`X?Bbů5@_// ! լj%(%E 3t:UO%DTV.HN&;PL5@s:-XEx *S H-+" P&h@+o>I@(ȡhN%@u$dɌ pj:Ѽ zPQ#"g@W@=@,io1(B#WY̭V+l^"Fu;2شZH 8K]8T:fm}IOW݂V0:"DS[eBj) x\+;'N[&C:`Bk`SRF:_][ /Ns8&d!yHK *H%.MYv-] YB/ `3j @71r*xs8" DANb"Dr{OA krKip3Ur_D E)LSTřJw,f-.^z02 `o93*~N, 5[u8_v2>)q<6Nu$#<> ^mOOn6kJPpgB+CD(,:o$)RB 2B#rq";#?LB$;q$IB;E`Q~d%[[2~K5j&n$'A'FPCR+'(D7(Sg(JwvC;(P)H T)=XT c=p**bB++Db+#b<,Zruw>oUd8._"d 2zG~8XG532ڒ &*cH14c38À3)Dc4H4L4d6S?6s19dK6`6ppp7y7}7czC:+!&-3Ը09:Qa8:X!W;;ɸ~_/gT^Rad2=O}ڃ|==s!CL>>3?3%RP0(H_/@ @`tA?AA!8.\ (B,B0$CgȅPcufLy<9SNEG> TAX$$(%맒:QBc sm~o‚s!/x7E,7(=(BHB)u))NR1}U3ē^Se8C2Ck'm&t$.rYĻڇX\^`FuuWN, ^+ ` XưC73璜pXJhG4㐊c5f׊|Y dYȘK g7ZĨ7|7#8qqz8ݢfyH۸A::r3]%[E <HHʔ,909c=߇>a_t( >#?5@?*I([^c #AA a 5B-4 9M5lX$%։Qʝ uiR6+U8K@ T=G՟?5 7Ж‚s⠮-ҁ!<,7 {{:*LXN0ŋ3jȱǏ CIɓ(S\YQ AF E!-<d0=:(PC*OBK5ЄAC XnlH'Z52:TP̓Sb زg rP(i !x6A"9D@P I**(C!"uB`ГS^ͺװc% !R`څX4Ҩ!)Fb,o<G䐑T7 6(E#_vAMO*BI' vOZ!1$$R= Q'Qw ZFgr0@Z,E t' `Vr I'T(%L6PAYM7ubNA4E̥5"bCnSVPS#RQ@d! h i~{glxc7}J%DZpHVyj `@pH$٧ut@5jꤷzjf$ w6@6""l.l'@(i[4DA`Qv+t2$Cf {!* R+G0m "\T.yNCA,1 ]v_vaf[wx-H#AlDzP ,;kWT!lQ3"(K ?$ !`-d]IluBpփ$|"tlHtoo$70w$5$PAWαA8K"5՞V`)(N:*ԥ"}[$ I! ŵzѲt&S\I$0@(3iʄl|$ܑfǏdȗ7 w4'N8bCLqfsקY1 h5 Ķgx6&!HP@&^~ u $ IBL"F:򑐌$'IJZ̤&7Nz (GIRL*WV򕰌,gIZ̥.wKOr 0IbL2f:Ќ4IjZ̦6nz 8IrsH:v~ @JЂMBІ:D'JъZͨF7юz H)|_؃:NS|H @r@I?qO#!7ͩ>}xb <*hubt:;@G'OYu;P>QtTgZU@ ?ΧH=հ)l X9ְEb7%$ ,C'[f,f'ZϊtP5W' V6m:6p-\ޡ_C^AvV FN6wI؀D6 X<-;#axJ<`a;^x́5 ,;SA݃]Rx3h*v90n^p`,P7@a n@U)~ R"w wS^@aD~v| ʛd ߁Ɛ(A |̐[2X\C@i4c@D/zjA0I/u@ .\(&rGdӪ5' jY?Y66`dW`>/:00P > { H Xrxx nqe'_` \n{{K`0n` IXÌՉlu8V؁t[΂;@ R9En1݀iF@Ade:kxӉ*.]VM WMG{s3a@̠ N'pK"P8`9 c@Q|P I`D&I^ dE{W@E,&@)P?@ :%8ekBtkH p2{{*}PܿLu:[W l ,@+ $ \&4&/02@7D'` 'C&!7@d Cp< (] 'H  [Tp!Ѿƈ$n <X1q|z\wDC6!T ȂLȆezȇ,\ȗ,[ 6 1Vp9,5iV X\FR(p^P<ثH%\P2ln0l<̓9`ekF`E@*`ټEp ˼J0 ˿L ,\,\!*. ,I.0&p?Pg5p$\m>>6p$`OWQ#45}' _\Ԁ4+*7HmJMQS |?'3[^}(R |+cժK K1uP6Ke;n. 0-4 ?0}`Ԗ}L"P٘=V%@Jѝ]ڦ}ڨڪڬڮڰ!AQ!\Ɗ]+-2˲'}-[ɝ;A{AB볬aIrK۴O]$Ӷ$܂˺;;P`6 2`;=$~ +֎{˹+۹[a~KqݺV]s8ܻ]Ǜa;e; m1-;7%|?79 g )q;屑< +i>l]"$I/Qì:> BLFZM=FٜdlƝ L0-=ͼ\ꬡrtlxLɲ8|~\먑ɏ\Q<œnɐ,Ɍ ƎŮJ1\,IAaʨ ʡ +:L|˹|Kd9Q>U~!ாAΊmX<\, < ,@0б+ -m!^LsU \4=}l&70;p}<;>+1PLMN -j}K[^lf imdqao1q-@)~D|׀-Jp\ҿPӏ'1mMOK$}=ڗ?__D;ܬ?/m"?;K9K-.7pX~]@'q"I`'PP}:ƋQOo޷ #~ N9D܀A .dCbE:(E!E&$!D0Fp`9d.d,'9dI1ĕ(J($`*zQ`7N<0v`5„"HP 5P ETQF#s@5/*AFL5SP-uRLMш3λznOJ'"S&@K&@L8B@9l ;4\tUw]]J fs7FP/2w %{q˗ ~ †(_6av8 >'v5ZPU))h* kOȁ#r"y RqYNP h98;]zj 3뫻k{l6lV{mvm{nn{o" ܡ6p2HhsaRq.+@G/@E'}UGsVO ma" xv! %-7q͇,=|9|#H|!*[ߣ B+Jm~ @" }@%9IJV/dNHyR UJVҕćM9蕃LaE+ 1 Z–:{;a6S`7?8"  + `&y0ѓ"ᫎpQ4 ӑRp AdM<қ^uSHwH]#*jRe^5>5z6 (:s](#ٵQK? GHO $4 %Nܤ<%5U VWj=X Y7\5^:_a2]:(9]@%|n'u*}B'oywCvRB}b7z~{#ҷ%#a 8}R8ٹ$\B@\)ZD+D9k9c*:=: hE*0L$h0OХAD*$)ص=#<Lτ l H RPlPAUjTbU˺V%E%%a%\Ab 7O34*Q B"]y7 άVQ!|(uh ,*1p5f2%@( Pjt:(B)$7*-TTQ |Z72m70l01 (Y)CC777rC288rȁ?$ %Ge H ;H?N4OP*iBE,EQ+Q=VUrms-Wu]WvmWw}WxWyWz$F>!-{Er\֢GWrkxt t ň< 0B3%ҁ }鲮¶}śDZ=s=I=ܯ/50UJAe0H| kVXh J0ih&-02j &$ 8[#19sٗ\$z2 :M C?ՄM"[2?3J<@6(PNڳ&` V =c[04_J۹}-PL \Py, WA5A_:6\Hl# hQ4YCE,BpKGqB-R5SxB1B7 2ۤ%\S5`S8,39d㴊!/$` @ٟ( d%=_]՚^YUEF_9^VHbV>ZJڰDTh;S,k`Z0n غ(BbIb-b0c1c2.c3>c4X8hDR^KX:c.vdXury@~>؋* :J E]Jh4H ȑ`ibd;IJ٤dU۽Oʢ`$Z5@Ze c\`>J>:<)CK x̳ ۱ g3Yۻ"Ml2M[M1D|7{\63-:S4S_Z5|mqOV@ꁝz瑋]4EPI]]RT]UP ]>%Qj229,~h2^#uQxYL[j^jĔ痆lK_/]s.}BuS=1k5]6]Si8-4Ln7%S>Xi(lN :`HTpp:T &)W>e,~9CV\eD`^mb cmnfbZhŧ +S:A)q}m /nnoo.o>Xhc}k#&<=ƜW=.E>XBpCfBpZ ܰj3m n&ݫ83xg$@ P# ]{>|.Mg٬ h<;/;<\hťӐHt3ȕh\;f@P8.gipiļT4;%@]sEiKi4HNݕМvP^?5  ejujյn^jdjjhF௞f{xgb8#w4A hssuqkw7.DSB|_} ݷ ;5f=ugoȾɶVfMmͶ퉗{LMQDTo!jYw_famvĚܾaLLV"/xV6iVVEnhbȺຘz{/{?{O{  G 8.ipm\dr-?L5~p Lgeg4/W}h?\,h „ AF*h@Hh@0$n&0q H҅L3k,9s $ '`d I % 0K0pڥ*A$2bQFSMlРZw(W[1y&1Ȓ'Sl2̚7sC & =G#,i>4MkԪY&"zB!@l(Pd`ׯa{we8 .=ځ& !V% oc]P`ҁ=AԐvJd&xQJE<A =(`($`Q4%wP" 2hqu=#A 9$PD1YG&iB$`tN*$VB)%Y q@хJTdLa0@e$U8j# DIh(YRlؓIn0 !"pK'РG@B_} 0Ga L@_pj}  y*e)(JkiA=D r`J]p‰8V$z- D $ =is 'Ju/Jt#\鬙!`9 4d)pֲGj9RKNBWA'K0LA0DR, t8 $tpfжG"]sb"Xi{K`bhFyT+t 8 Bj!?|Y S _?D  >pk?Hf FbD8R*d!W eB&1E%@sLD4"~ vVTbj-c96LjL.)`Mʮ0"GB:& iM*Ғ|d$^AIawҫ +PI>4 NtrmD$(C棪JEf73@xA:І(ao mvj'g>yx6= n}38g>>|Ȅ= Y^̧>kOA'@*Ц02iF&r+\yP+-KZJjSaIMjըOmձjRUwjB"?E&PjO/Sֿ>5%/H Xa/5@O?ã,3-l⟻AF@XXY^9PPA MϕhFmYY Yu vٚA ɜP Y] @ Y퐓)Q_@]]逃]@d~aZ9M!C([Z&IR#aRR!xZ)]d+Aђ-./m1=x4ST_FN!( 9>݆Mѓr8+s@E.)e4CMDMTEEɄF_tGJ@TTZy"8eP!]9"T]UAh;b]<*Wy ݣS!A[IԴ=YZq[\\]Q^ ]apM܌|8d8^h iA^j^nk^kLz^l=}^ٳV %drrqs9uMemWwdAB }$VfeB _pV*U}WY%ZZ%[[%\>ND$DX\fN]Q9&cTde` OD^R(uOe5@,X$KuJZ@P`e}`o`` Y  `o ZDBԑP!&)$t@@" A H4bDNfQ馀ZĬh!%-a'%.5[? F!!"1/Q4R1zr3[,I0S7}S8 (>(Ɔ)h**,F+>)JP/%$V0BTEa2rTxT_霼FKUЋ}ҏTNhD2:];jݠcc#YH)jV#@*?vH?d dZU[UBC)Jh^uOiwQT^ l2em]Vf*&IIdJ^^$)LdK^ڤLBNzЪPq%rR/IRZ<%wITW}]%fxM+z+kZ%%+,\$zf%D ,E_lZ &a g`߆E戹d,Q&dhEp~&F(,B(OlgX1v' i6E@Q @Ŋ$o  v gt"'e fsn ^Ug mdlgw$y>!~”!~X~@S Lᰄh%ҦeZbhNha!kڡhućJ޲Ĉ a nڕ#{J"ZӗRAޏrSXԸ xlS.Yi)Ɣ2i@Ei-2.b]. TT"wRFҮc]TlC֨BAAT\4J)/e9RQ^0ӹT.xYA*\UŪ>auK뉬o(JI&.KFTvN dq  Y$%bF= a p ` Fٰs I&Xױ11ETBL_rlbzlfulablRbfȦ&ҰlE,O8,@B d < !N!r\6m Vg2*qvmsFs0ˠՊmg -ufuF  wxێ@4f HIpڶ.%n-[6.!Ⴊ3B(bghJ(>W. vF)b* b+(ޚ ".Ӌ>!ʙ8; z;:4ޢZ0kh4"jd|Ԯ&c&.@@^Ͻ8?$CܚPĞt[/ɡ#W306wuFU!0> ~'tdjA+d;F R8e c c5\0N[^;O+2>+ZddN":p{QR ;r1~d4˫bԼ166'm6pp7qqwE2BLT,r"g@rfTuWrc^vwʎ^%{rntr*_s_+r @R Ow2<.{/3s.#31+Y33c Ug6+!yʭ*7Dot93q~H³=sJ3b3?{FAt5.64BDE^dtmCv4±xb8L;}yFLV9"WoCi2yQ?#ń"Y֯*:;+7:OzskXpsY]@֌j^52cAA]Eea SaB 6tbD)VxcF9vdH8l)(JADr1Ȇ+O˘2$?qϞ% JQJtJUՠX!@0TQ 찡_$@%;Lcw\ e(DO@q@2 t^khѣI6}ujիYkܺfسiFHb4xpÉ7~yr˙7wztөW~{v۹w|xIyDE@F!h0#x0~ѵA9("4LHA D+|@*$B M۰ SC (:%x"iv v|xÆ$z %*L! :h.A( ǔ,p !41 3!7A@SM6s *A hs<*TPB4O3ԀRH!P"7ƺk |HB / %H &`(y0  0!j„RBM.d0@ho 0@8BLBtUpjW݄}7^%С"l]u7 >}855b5!Fk{."N(TNaL`"$n @BD@`oV蠃6 l:AD) %YN*nDܴ^{#uIa܆FH#FHΛ'a l [%~+ 7g+ ?<5!W -WB Z: h7aZjvjjqEZ鑡A!փTCl@bFbp"h/7T0 4,`};b^?p^AH_Ss45"!':P lj3J!XqzȜ9OsNe$E+jыbPF@*,I8OEGPf 0*])KA59Q)NgJӚ'3N$S((E1{Xԡ@Ŕ*3jt(\d>EȉeJUJ0`b5Z 1A " ae `hd&UAH A05l^ٕu^WjkJú,4] 1ubj4v,jTTLf4ti!gAV`'EH>"taZAJWB|ܷ̌4WvTor 솷Mwo,î߬[9>p&87r]y}r: %9]V׺nv^K=-j Vd5;^doJv{sIKяZh>x}c]7X`*;,AWsȬ-pd`GXpy,ta`Րx'} %dЂPL@9C5Ɗ!Jg^%.3: :!!qފ߸hLO(T'rq \/z_'FAdcC hk_'׬ jTRVlg?і]mk_ۥf>+BLe> qڹnmd=2_(ٖEh5pĝԐ:C΁gBK4OܵUHF$&UO4IP?aTKR'Ё!K5 }PD/;@`!Ȁ/ 呏0@,G-THQ:R;t'K )]oiM{G=5=0OTy9d` P6E,`'BALUH "\,e13A[uW1C0 rhy )8Mm%Yri l5AϞu;d_u`Uؾ.?_6{re/Wl͘9dЦ"sw(^? ӛ 9h߉mc z+wjXu% !F!(Nf 4_' L !z&k$g"iip]fZfPof')*4'ƫt΋ SczKt(bޯĦ d p h~`/ ,̂N|W:ô{0et`R`B j@\fyd|.l,w\F div~b,Zl~8GGnjlz @Rjy0¢"H #) '5 F`P bpKrf( J+ϰI ,"CD1HIM!1GL~` " 3qMB  -)& % m!3 564,<-),"I'M cR q!hM)M5`@2B!M!!v {2d25'(()R)))*b$(n @@ -*6 A -,d n4.CڒC8N"E\T&BFi' #nB頠bR2%% BNRr2BDh*QQ̎LŽ4249-H6-"JuU\E`hGh|v \x刪/&:Oaho2:SNC>C)V6OKTfrfgzdkhhkݨ,,9O`9 Z| 2#:+opByPp4T rPP)0лpsPD9sk k#+??h@ ,h0`s`& >F`DB46I[gL1PQ`с},LOi񧼔LLdL*bDL(UHˆ4fA!zl%q&BRC H(2)rS)"ҮB r(R#i" )U͑Z-\-pUB''#XJ(OcX20UYYYZUZZ< /+. "҃!R`B"2+Z,Ru,U-N22_0/i/%"[r'^LkB/ *;)U\.f1obB+.]33S4EBBӦFXsNce]4,0"leUTe7j ׮ zFeXO!r&"? >:G:9c2S;䰾EjG+e3iQkfj?[ @cK`Pu⦸`bN&"F ! TBkk28 C=4E0DGD0qNsUsXV5FtfujԿ`Gvpv y'vˎWNit* zQI5sJGqKeŴeqLW1Ŕn|o1#rn <yqZHO ""NmJ%h 3B-Cuj6{rR-S-(D"9u"=SRSIULP#dUEXR$)քW!C2i!,3&W=8;48)&3؉X؊%ZC=J "U+r]2߰-^-E#_N82"V/iFFnd8톤H$I7Sr21w3c-3UeMd/Y5Y8d[6eybfeZ3# y9vcTp$zv07*8&WJWrOheYbzH`Z466kkllkV=/~>'>M8]ghfiRwjF0wb-7\)ipsC}CCQDE[tUwн`uEA'FotrFLGGuxo yOIJ(|T}T|S}˴KKȔBȈ,MzMxNY"ˈJxȇQ4eHHo+P2bm(/8:! - B@!TGUSYcC-F L-xV!0lar#K5`R';۴OS[W[۵dۼ! -"k_2-m^xX^8-Ύع8"[ҋ EI j J(ʢ17m9S-Y3GddA4]KSQ3c4J4jq"tV)gUme' T rwJKmO|;ovEB<הnnoK+?o9pypKxpK' qK(1wĭUsu!:uOuK4v%zD) OE0kt"hwExTxik\ [<ê!9˙ {Z:{WZMy"%}qQvMW귪 O7w{̼L la BїMREHS]"C?T " >cu){. +nM]+"Eݍrם])c"d@&!ݸ! ڍx߽2xR#8ꘜ^[5888! #.n4<@2Uel$N nGy:'^;2G6dR{ebe>}ʔa5Ͱ/B\5<DHO?O/VoYYn€ez ȏ걣K9lAŹ9ǵ @+7Or!PIqw7?G0MQG q;9oZsyDDUg7Z8!Ö oБp (~ A $c$*Fx1B=\rG3za 9ؑ–sVy2t@^*PR덞Bjh#EGF) K S0 >8Ō;~ 9ɔ+S&Q$]`l ,3УK -{5-c̮=T nEMxؾ+?˘$n g(TۅLj_fr$ `2r49p@+}$ACg"H/ Jw,i@  7PP$N?\CPZ;_dJ.dN D$DID*0|HbIXjɥPJ? `&n'IY񹦟w 92B:H_"BQ.)dSMc@<aWk lO ,l.l> mNKm^mnm~ nKn枋nn$aar` ŭozdPPE%i05E0,0Vݹd\@+1Y2'';cAA =( EQiA&@\ @  P|ZoZoC_8T e`P˗7$Cm7Qq r @ݪy>*Ц9p066fJr0Q(EH >@F @W0 ؁ XQSp0\?}%SD=*`ч|If@o߽c`D!@`秿~MoO3L0;=h_Cp!W0!It@p?I:0Hv! @ޝw aH(В Z՜' q @0h*p@7] ̅"7 mGz"]mmƷ"q\uO%&(Zs/] RЍgAkֽ.v!vX|@|">. &O>1o-ZGqo`@9_QcxO x.-ل)g؃۝Pp^rd8@QZ*gC&2 ?lϘXt6E&:H3<+򙌀6F,jhLt FUq~-IHC"R#kIVR 4A ܒoN :A>L\j4hP/dg;g8B"|Sj6N%EgBԥS@lekܫ DDQ3= y8TEzEQܣ2{ %_E1LkzIJ{gF6Jd0G &~ ĩåu]NҪajk}lo}twU0{MXR^xtAV ,ixJVbh1$bceQy1^UJp08An:`I 6H"!_Kf<uۆݷQ7~ۦ{8׻o6}Zw}?~rhӠRpkuJ۰p&d(T!95 5``KF<cɳ<3|܂bc+f>.bX>?=vcc@ ?Hbdd@DMKa4AuACASAVFee-T; I4/X`;04ey6gvh<$g[-~&hDxEahiFb$[ƆgDfG&GbiwDlfGd3VHjFj HFHjCXL&paTaQdgVl!Jsƅh-FmF@KmLmmmHngn$ѡnt$oM$NNNo6_C '#L)db"tp'P񀢈BrP"(&WQ.7R*&2'R)Q'Hs%rLAb({u2ESwpAt8cBX=2vHd"?c!<~-dAPHRATBWea?5EkaG чJi_G== gȜ^XA`gmHzvErwFhhȡpF1if$yizԇ&HZC&8B&@Y> P щ dmxHmƴmaXnxnn1Q8kXNoNKpi <#;82AGxy9B8&!r8s0rHH!թ((678g" s )t qESH7CUHҢ+bÒ*DivaJjNJɪʬ/66/t!@wbuUXVxXFYHɮe$OYY'(Y,ڭcI$03~&A'ty7<| EG!h"Ch[>23qٚ;4Js%M#{Oe%ѥ|wR: }]^Y}|ҷNҘ9i~G#kP`,EYP!;P5U*de`8XaY"6KC`0pF@h`PPoA1)pk HaPc'g7`{*<“slk7{V ciܙቝ6c[?&dQNRMj@˸Q se&4by1Z m8t/`TQ-`1zfPFq8g#tC-A^[VZEhs;Qlt& ($*1jAb*<Ć#dQ1YtfbA]*gkItajc5K^*f8[ÔX>8X,('FQ1d L,~zڪ Tyq 2!\a!~E !" (7"#32TAO3[(hIV:Q':ʏ-w&xȥi7Rs2r) )A5*Ow*+Rvk͜ulULl׌٬ؼwA&H&pݼʔ MZ*2S,|Zy`Z;374Vc4/42;&P9KY|?ki( C{E8$=OsG_S+xi~y:#-c;;;sã%x'ї,.)*-?=#Ⱥ;;կqLKa|iUo>J1ӨVp2Z/ɿt:BE%,]O-$ *Ȍ.Nn-,wz5}e5|vϖ,JwϟwZ+cϖwuz_Zo/m[/j"V[puĵ ~(q;Ηх9A<^OҴ'_ҡgA0}5ӫ)`Bc`A[aSad~>A]ZvG i=LmV)՛nc)nջd!֞FAB6*#*fVf?\GlfWEsͭXlׁ=f샆E \دqؑVSܢ>6Iǭ‚pkFaþvcTĴ ȥ]iZĭMdNosvT[t[pp7(WڝNgMqlM5ʟ) C-Q QuWY[Ҽ+ ~]cOeogi!2Qlxku/0{10ׯKÎ-;ZK̻@#AlCh5lt $`$qaÏ @!m 0pv 5d KQcH($@fխ_Ǟ]vْ(Èś(BBO,exۡD^*P>K?@˯;B?ra^A+ 7zH)'!z`N3z;+ nCM!b$& ~H(2Pa:-hࠇr 8;3D3M5dS;-H+䲁Ta{39Ϫ<ܫO28a1 †(PDFNM;I;I A/88'(vA( a؁9la",K$d*%^j[]6[m[oeK5\sif=]w߅7^y祷^{7_}_8`&`F8a>#& &҅0Z &d2h)sasejY٪+@<矃:;vgzPnb:R(bH`ϒ ` VX@v.lc$F<9q释q9|r<1E#Ol/+" n1LJ WDһ=v98AԦ3fU7VMw5·$ʊB&("ƏP!¼0C 0b@vc<8"f; )Ѐ  D T@<`'X 60K?'BlG vrC }Pd"#Lhv0 !H H@F$~@u`7@iIa 1Yd~)@既`<I0 ЏT\_ڲFvJT %.gIZGD.4$%ҝFn;a71Xe.t3 MI3(|6p}ȇRD_bאAA 9̓=>zÞXs9}Y5@Oys'A$'; yF;`OD$2T"HF4q4 |@p <(RV"IE:v XDHM4`}Ο$(=e N1TS>iS S8tQP IyڎHeQT d:yUfU[j$EFbu6I R\-ֵ\:WU^oE^튯td]k`;XְElbX6ֱld%;Y> ?9M< A#t (g5Wn lf{EpiM;u~4gLpƓ%]#Pn `; Ǥ@ldK솷KV#tHxD!MSQXBv Tvd+ {CBlPgKD9u:nv[;uL.TPu<&R~M], LӞKn)>(8 IP/CRKl"B 0%X`Fx&n0/3чPH DpAIЛpHhB7HB1E0" R(L'#ѼpAP 1i :2 D9%/'%7HӀ%0`JUJjKX?(Z2@W"c5TN9)}jg˧(tSM%Z~nGUEOT]U')X®Ȃs Z+3 #+$4DTdtA5q zJך<1zޒP઎&=#\゚hBmYB =類h- H; ١0 C0Î ωi181Aڲ,t $:BO*Ԏ+-N 9Nd ^Ĕ8\SA9ITљC 0{D{ QQCFԎC숰Iܿ-)QQO< 2R ,dzٳʓ)6s" odFE]ӚFS ћ BFj9uFW#CV;E]klԵm䵮!# S6E+"v$!wҔ Б7 0)Iq#rۙ~LD1R\7DۯP, m%Ѫ5"R]"MR@.tR1[RMt80CP(;0S\ #aE+U0ڵ@/j SZC5BUaFm~TvTpaIuPQʫOPU>wo3#4 5:* #Uj(U뀴bhbV1.VVV`cÉ7 qm%rYc\ڥ^Z:&(ckeJWDmd[NFH~o('KoJ~JXƋ*J~l&YBeTzɖR(* !)0La^o4ffVc.qkg?iZjZ[f͜&pYrٰraQehW3gg %*+,-N 0܉#:*GI b.'-u]Bi&]]ݓ&M?ߖݕ4"\.뮚D&jP/D/8A2/R0C޵F0c07\ k:mj~=_BLfDVDag߭vͱ~ҜR'2#+u%c2'Rj *2,Ӳ2 ES36s38C93<3`fYC D3`FY4.4KUZu .F>llDelǮwCTlm^R cKbc64{h#U6m+nCoӷ6A7uc7w7ycU7|7cb 8X=8ZJP-?֊m,6vH2z3⮊NcN K 7:m#=(: 82n 躨K CI ӺO_뺲|UXm#xsew~i'ddd直ԎJp'ω<.C{) "فճ(\pp*99OP09hqZ~>/LM9qG?GKZuqZ|qhf]qlvfqp!p!Æ S #'&%E 1!E+<&:<Ö._ &͚634iآ,n"Mt)ӦNB*u*ժVbͪզ̭Kz +v,ٲfϢMv-۶n+w.ݺvͫw/߾~,x0†#Nx1ƎCnHKHdDE1D-z4Z@tt?(j]Ö6+ @X,o-;xZ^F=y4$c I $lHHF@q! ? ryȠn%1ᗃ7@z""hbvaZ'ƨ  !G9 -pI@(Dy祷]MPD }' A dnp H! rqB+t@w 2pB"}245)`gp&ʩJ^iih  #@ !ك= (Pm0&0B7&&H@ qIa B$( lyY EOv I|W$0CC#X/ ;L06+ Wgq,V$kqZ,H> NSCXډP @Є 4ڝ୼ R. A E50Ǜk0k Pdmý!IT&A @;]| WA~zQJn?.PWn7ŸƎ y KDC&CAp O~1¤( =E :1٠dFE(/Y IF шhF 'Zn~@Rb$g))(yB,iK^ w{ 5 `ֵ@XÓ3TPuH UTIҭjUUNMيU`RY%:Kvի_kX:VfҢ&5[W!`|VІMP]T$j4EA 1F`4`|,5ld~;l%XtUb=cU -]T@te |FVIkӜFHj▔*Pv۝C4:hP/ui&>B[,unYs6G9zs-λt /pu!uus뚚.|e  cBp@ ) !*|a@I;8“p5\R`%G >j6*3Ķܹka"L=:Ђ4 mC#:ъ^4hØ%n JOҤY@q!y wS?ԉĊ%IG.9NMobX?.I&Nz< .JtKlA(9X6ϧ sA7) [n|7ŹzG: :s囼Kr`-djgiKާІ 3$ʫ R%Uҩ:SGj)lJ7ʥiNg*TSzSҊ2QSTiԿHy/ jP^+[XVŵӮ6 @tèM[iƂXM޺2 Į&G9׈-X_/vؽceM' wAVtflzvʲh]>/AkOqJA"+PB:-U!khǽl$dw@hHb^B `KDl$A @ĺ]HXQv) NlO˄UZ$]P&_e9Q:Rl^&effLTJ^hdS^Dm (d("eB -VPe̥s2D׈@`VZ@B9 fQ^rfb^~Wa&$`jbr9u^~E~RLh8ہ2 @ď`Dfئ@'I(D@5ws`oM1Dx֠pOQEbopo&qy`.'"*'Fs S@DoFlHD 6 e|EN ZQEp p p (eĄf@X( ev/Vh芢 ҅ !R Kx3{i|`d造[)tJH,[)//U*0Ӡ2Su.I2S6c4%? UIIBىN~cܶf(k!\k*dBݩj1L!EJ8V]X#V k̞̋ ~2(bJ O2N-%R*bf% S:Y@-T:.S:Ei]VVAMlYdf~M(sِdJR.%_&t*U&:t}1D/Yсd*m3Yc< RtB@4GsA2 /1/oOWZHg0n{PvZYwr RcK'N_XYgKXu[[u\\5iDD`ZVqQC0p5 1V6&"qNcQ*qd(SP1'Yq^)U<9PВ"R(qtaZq*,v.Uo/pSWD-<9#ܓ4:2սeT=B)C9DIEZFV.sT'm)v>Jy+)c+@7)$~k*M0/[dUF sGZc;Y9DZ,[ [i^\B3C3AQ"8Nmg8wQ7Z3ZDgM%;7;Gx!&rd&Lm%k.c`dihlp,(c|@ ,ip(ШT<جWU,x(+z=J7~ D|0 H !,*E] dih84m,t˶x;BlP ପu{ K Ly=:|N~!! ,!z_;4fl@Θ{2d߮{_uf_zu3`h8#E*\ȰÇ#JHŋ3jȱǏ C(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]T$h@QJ&px Muhp۷t݌P8yeJt"1v$ > 6lyQ*%L!TPa"#0rMJ!7x`h \eږ^d ̣c!J[xaI4RċFPcu:쐂wІp2pĞg߅0DC €`VR(RU `+4X 1#0@'U 4(qKfQL Ff\F(0@Sihlp)s`gѩ|矀*蠄ڔ&袌6裐FiUJ$R~'YǒYꪨpCy9p$a;pQ(JX0F&kU Vk6C[p E&0 ?PI:|@phƅ 7{RB`B,pNYE@ 'QJ-D17I,$^Ђ'yQJk.$,aS܃(|lH"ax)ApUpQ,X3N'+|1mlv|S9mx|߀.nx7Đ˻(8 1Wհgw5tCJAMTK $+$pp>=`1] c;P/jv'uR66ۨ*aC;Dܐ4@`!$qC*0q!C ;Cww9$#l` _n@24P!:K,NOcpv&؀0@B tGr@Z'鉠6\L a$xS  @帟7ojp @A? ^%$!PMpId40@3@Ѣ@a@@bZAvq@ S p;n8v`@ [h0,NW<D 8'X9C*I.1 &LrRf:Ќ4IjZ̦6nz 8Ir)Y7v`DS0fo{\~D= 概φ:t9' Ɍ)2a C7Q!@A H RhGWҏP!i/se5828ͩےyc^ORNJԢHMRԦ:Z!S,V* T~P `(wc-JOx+-pޢPA@ )N@o^ JnsP b0Yիf7-d̯PJC$c0 iHXtEMif9KjBpA/H!Tj4AoM+tK"^Ϊb d'=y20%/ M=(R fd O}LLN""IĔ"nt-a!L;Xխ` @P,]pe)E $d] BR0*p H<@2;WJ$Y%kYޥeW #[ILaMFO|LMjSS8X JꙖ'Qۿ5Q̹%/PԧN[ jʂq4{LG^"b]aR:`xu${H0g@D+|Pzq׬HSUoAŠeuxJ0f!0فq,BAՊ޻C5awAyUH bO~10!VLC`F-݊ PH {/} T>xܰŒ&.$2WpA/@Osoy%6@h~`FB~rJ$Z(q0Zv TAF0Q-`+4W8%23EZ1w'0^G|EQ(w8K0$˕,SD2  /" 7(q5 HGO"]5z_4/R B90G`\ab3! > ;H ؀$9@_xtIH?7,O"H2!dr4=@s;ɦd69^?l]u{I8<7i_.SQҋʸ،ҨZˀW؍< 3;O&$F)QWؓ.;RW'bcE>#AX?Iʹ WX82a2Z5tC˹CVP@ӇȵF5I 80#\dIdKIJ~*2ty ڠ:9p]3w5m프  Uy1&#<Cz)ѡkogd6p#Ɨ)Q60RY{3l$\(ѡEX'05 \ ]DQ63:ғ֓+J:BJa_F"&j cf8dHH4a9uA핧IJpvl/*J8WQ9`Cl+]X*,8 mB_x ګ:fЏ4)#vWyw2Q $@W)g+@Kw6->z#ZK#xz鎫9 V', \8`9=]"D% X:Xu8 Z&{Qq)q]JX1)}糛ۤT' !e鰅] " =IZ(Gk ]Oǃ'!t-BY 3B*D\kghR{a@ @c: [4\xz4c\\鉕CJi֡ /I*Y^ek'AE{KgP3R_4> nj(][0kڊf0^l9*!t$dJ ɻdtvQ6s y) Ĩ;x*;6U1 ba!=J*mdG@isa5)G 4@xz2-r'm'1y=/yӎu{"tOB@ , *PC|wY\ }Q‘@%=O A"X ECցg=1(q'ժ )w4 8u."Msr^O+a__m? y蔃0(01V1\w?oI X*.=<&ICgB#@xf$L|Ll~~<9\L!I7D4#=B=&E=8dW \')p/"56-BT78M640Q͏EהחweyLXb"Ŏ8F)3qG3-85ࡃF/4B##X/͛8sɳϟ@{@t<;0cG8%DHBK DEpJ8ACţ/`q0ʝKݻxݻ35(Yev N |#KL˘3k̹ϠCMӨS^ͺװc˞:H78 ע ȓ+_ U  lL(c 'Dxc# R08H 9DY m zm5t< P4D R0$ !C !p 2$߇ (5Am#;t@ !X(K;726FH&䒩|D,'O+#ka2`RHA& 1talܠD}I`%[ JE iAzIq0{m՛F*餔R J`Dܦv駠*ꨤjꩨꪬ꫰* hh V< 6m 758&첏Ъb[1(+\)a=@Rbhpc]d6N6q##pC LI@`1CJl&·P^m,RhDqƍL/sosDU2М !$PT7 ]|<7&G:h2;-t׍#CXLS8&E#I3nr >@A''cJ `-L8mzv0$C0QE$$z tĸYf5&L ' #nqw&;`THEU`-E6XMRCe\XFE)R":'H :k,-zfu0YlI#^~)n/6Bp`, A!T.YQ$&@- H8,?H /}RN2aKԂFЇ)QODp\C2XʻÝ !6 `(DQ< Ƚ0"Y(D"BR0l+GP@X`2PL`JT i& $ ^C;[` 4@CB [&-PH iatHB@|pp70A5 Rp2ȲARSd#IϠhӠ\g;QG LM[LNLBEP͚  nw5l#`%.@Ӡ `Pb7O6{d7C^ƀr0ONf;ЎVtu3ߵE^%N۰N5qOԹX/p]Ya%D dBؕ$h]Ÿt EBH -l,GKZFƉ$XZ!98sre`-B~e4cYp@خgZ-O-` )SCM"FSn$%9IJ"ltJO;{ UTD7˯!G1hQkH `ߛ&YcO[ϼ7{?,&܊ xY,|DX8X`T:ȎƼ<;z8S>OxD 6'n! يCR7|@ X"!FюnzVDoaMsnSR%2Y%6%`"&@@&Zj_&*`ur'y<'N5|((`:.0284X6x7+2nlCnb6p,~LR-۶,B ./..0.0w@/bpdJ؄lhU0|so|'1c1ć1 &$߄"C2s2)2`q33dKkfiֆ(AGM"eP#5PNM$s]5BdS6p6"Ewt8x7|s@'8CsT;9#9c99T3hWfFsب:3;Y#h; Q?Iq`<ȣ C=M1=6P=SVW=6A>>> ?C?#bo ӏIIF  "9$y(Aʢb-F#PB'dF;z!goCB3n%W0IR *@EIDMDs{SG$"E[T#Ipa d$FjFWtI=0GuxG7dddD@ypO3tIIh9IWEtJJK ԤKTfWDLƄLd̄qMDM}MNd f$ }dxypOO~45P `PQUeQ7.U @tn# R$eR(R,S2s6#SbBސ *Q~Y H_Ra2& u6p'5^ X(Bb|%$L%*,.”AЃ @,C`HاÝւ-RA4D XH.Bpa(/cX/>@yoXm1&cv% K`:[܂]y84pRN75rP e E^6pcs6تǕ{+H177 V=p6˸20=Ǟ,y;{ XkRgUHɳ<*BSH\kklyy>u\`?3t9̓) =]} =]}IRPml ,,'Mʩ0y 2c=yly0Mqf9duDKDRDETiBcteCgtEa)d)|hsiG&}EVHsYkӆo4I}F`y| pI\ J7o) Z YLǔLLGK4M} MMDYTgiǛIz^pr1P1in{ p YR'RН93708e%?~YTjmxYYUy`)tNuphV|Ykڊ˼l0 XZXXqƢ]iG}ۭ<*۬mvCEz(JZ[뤖͠+`DEIW*]]!q^h^ I\:s_r壖첦úq)㭷T~XZ塢7فl`0\>U8$`cᠪb=H QFprlk{؇YvȿgN* d(zgjm#+pPlp&|^JL;ȍo~r\%W˘P3b d}<^tж;P0U;Q;z} [_Gbw LjZ Y![;ww w^+x,J Z\^zbz`OGY{ԑmGἈry|JC~k}!*5dZ*-Wg @:!+% ޷ݘ߭A C`'<}u_"P?Q6ܻaB2dĤ0qę] 0ahw n@H0' d& a` `@GAwZä@ өN J_a*L Y(:BTEeBP 'cvX*ZX U.z` H2hLc*1@`>1#IPBp+P-a!:7NFoEpb јp +`Ba݀Y0v<^2S4x= x+OA j$ ̦61)( Ax9C39*Xl'}LEB= qBs ! G!I.IъZbDx\ HGJҒ(MJWҖ0s@`!QB`f49_D`t"MA4\.-B M#& 1 @ʰ8eg"-N@pO C FO$%j:1B!B& 2GDE0eE(n5T1BC6-(PB &btd%Y| ۬%khOcF6:$&AJpRV2e ~Ds3XIIfy'F-qbN /Y|!ac.#ʠz*<>!{Nޓ6 o|CC9XNsT:yo2{c XPAԏmSPaK~/Ss:8yp Q@%~%CR$GQ0$$ZU%WVnE`B cR& &n&Rcw'{'b]g((bB8Q)_B*t**8$ ǂ++,B,b+,rsb-آ--BtB."5/ r/K/LJC0ȃ0xU_:321\f1e1 mpv>a32/S133(evcRMA34Es4I4M3P#5U;u&I\50ZlR@O 1?3'&>g?c{0_?@0@DCd@ikA= AdA6T^A 5B%jx8"C4C7^:@AC@4^D6}DDku FN0[R9TYVyXSr_0&QmhYQ*QHHH4lQ|OQJJ԰L0s(K:RK^k}9tLJMZ?YAK*Z0=DN:N#Np%0#QH%P1&P5 ?H6YӅ}Q S9YyGneF  Au FbIT蹟V}SSuY &5!_VGV`V]Vvy9Y^wuevC,~/etXXИIq0UmY術UZqZ9UD DZ75axm1oy~5+g\ȥ\\ERp^!I^t^UqeV_8vꗓ_FCMyZzJeE"Q&Ш)T(b-(c4V'VU=cő:#P/Щ dddo!eT \֪"(pfifĊoVrFgwgP!o{Vj 7@0>Phʎh2hti Biٺ* 0w 1jvj*A0jF;FJ){ ۰Kl *Vmm%iDpynY*#a2FoVo`Wp[o:p8V&q!rb"+(rWr2W, :p<{@|%FG|awd`2W,|[ `^vA s[;Q]KkY%w+Q/8@Ew\gTMɛ{m}[MSWiP>z o{1{)ҹֹ |^U|q|ɡ||.*}{ ؙջ۽3UShw %xJ wmپ7p OU2BB$F>K$H'V&C&["X%hx'+.I2(x^XɃ<*?c=9v8K+⌺:"VHK+꘹a:r-ٲ-bBr/jH//drKw](ܗ|X1dp1.8-(ùSB35B3'4Dc4$4㉟Sv5af5z_\W;Hc8jFhdօ]>`09?!y?A ?đ @7ɓVTA Ԝ Ĭ68C;A= ?D ^YD:ֵDMK)EّI]} kaKY@a f,kOҞPbW4p)Ir)uII%ſ> BFd JHlJZzYD?bFfiMB{| hFh4NdNl< O^`ўjt5"P ]ר1ׄ ; 9 Յρ!, T3t+cuhc jf3w V#ln(M,My ?k4u4X cJ ́!,~    VcˇM"|wKbJ)4*hM|I_fwky ,3Ř!,  CАr+  4 !! ,H*\ȰaA HHŊ3jȱǏ CIɓ(S̈q˗0cʜI͛198pOJѣH*HqӧPJJu  J1UÊKYMϪ]˶۔4ɕׯowľ ѡnǐ#Kf `˘3CMӨr`װc˞M۸sͻ Nȓ+_|8c 4NسkνË\Bӫ_Ͼ˟= Ͽ(z@ 6F(!pffv ($h(,0(4h8<@)DiH&Lb6 l T Tb`Y6Q1%`ihlp)tixnb8R| uX !?pVp`{X¥R` lGp0F꫰*무҉"`lC G+kQYyz$AVlyb tB X$mk[覫춫&JaE @(MMȰòXҰjHeR*B`lAR2gK" MaH0h#~@0gDL L@pp@RL%E9"qD(Qm@4sX`xwW*vB #{׃!TaH9 pA:#PBVAt( 0/ru@ ΰ7{ GLn^XAs-EnkT;& *c8 ;`뽦8D "Hdи"20D<5ˣ屎}4Y @五̲񏃜dP2E\y"4]EdG`IW .yϋեv3p9ӷ |^A HpUlOL}8A$ >pa]`b^=y6 c[smo79I`p1;8Pg`;pW!`08AvPm|6}LYuK8i6&ث(*^i@/olfWu]~gV+rp}{nD"tR{i JjuS aڋsB"Wk&UBTV1^D#v>`2CޮX7qPh`}T24)1mo~$hﶕ̄$_ߪWyؾMfXUۏorv@!wU#^M>;x6tmLȁ rwҟ^`Z ^}D@DB${f3"yl'C&{gW`~y&|׀F= xUyk7>G~WG7g(}WPуW-B(HGOvx0WxfvBtGC%rAWvA8]vE_FEFfFeZJ&hdGa$H;]PA]J:[dxcaH/F0CeC\bAmM`86\`BoA]Fp(Dw{d;؉UQ-iZmwFGm`RmPHJp;hȊxud wu.G˓G l"P6e?xdǨ?f~(TH85S]]F֏h uGturV~Gor2fZJ$@s4cmIЕ\TJJ]TJ=KxDB|wJnXPA]W8u~yV^TG@<@C&7SV@)A\OI̦{Wg{PP"0A2JΕed~ uޕ< l TiLAإ]j7?:@R?AAy?PgBI & AY 6A,D}p]aJЛtiYi\5eI)/Bd+A ;bl5[TT_MK_DNs}t$ VOA`7@H0;`Uu`9ןT55;`;o1D%\O * ;ֆg`$ψmE?4@o2psC_0I70;pPڬ:Z/b,\4PVcS3;cfuid^AP)L<8hI=4iWEis=ui#Y7E;`]0sp'[V nΘrDIcn ;AdvR(5E:A<wD(0FwEjHRPAig};E\Sh$@yWB{DPv$@S\h(cxGG4 $P%C`Z 8N&;Ǝw7(v/I )]!p/6DIݩhxm yX;IIk9V{V+";j_y*tiN:]) l*_@DK:5t6`UrZu K*hZ Ua%@Jp[Ve[ <\| "<  @@5hR#;1Fz6h=gdr[acefa+g9fHe1@N P:ST<£+zFIfS]B*R*\&R ZU|*cUSuHrii =p*u KiNg%duj {=dStUr*s';TEs$Qt +kMF?rp?r7wi$0;0*,O#Ir2`ʷVEWUWenUJrU$m0 <=q<TAG "u X&pQ=<pt|?uB, 貲WPT9˂ ɂE{'{;Cс DW TI0͟D_h&0ywIɂzz26|gd3F9TdEڭ]_kOG(^z=ڮ]Ee}m\w0!ۙA@=`}wܧA/R X C;GPA%ġX(Z FAqF}[~(C08i!BFu(K)=iŸc+l4y۶KhXL˘{G3,6(pL4^ҡxFa8؉18I1=X*^{ؿF'FH4FJ֊v+q4a>^D{+XrmE0de罨j 7K+䨸0X+0C`[ѹ,\2)4I\#*G4irMŻ9u©Y#$ -);A0},n`Hʣ=~=20v~ka|-ꎓl ؜PIDA:)Ltu^[`k$^X0^G2 #_Zܱ;m'O\E^Ô& /Y4p!)⹪[ Ly8M\^zM+N1)cL0SlKNJonJ JIkDmV ^܍L rOʥ&['ɬp|7N9`[@=dO\36PVo gߟ.XJ5D Jdʳ; 6h]Eѿt*_ߤO:#*! ]5}\R 6nP@!*4FCF 4nG!E$YI)UdK1eÆ J~F0Ab  NZUxbk׭_ŎꕬYYÊE+C!Υ+G]'&zݿs*,ACə}1cȑ%O\e̕IZbСE&]iԩUfkرeϦ]mܹuo'^qɕ/gsѥOD /:t b**A FQc5|dBbA#pB !+pC;Cz`= R 0#[ bh~H&j2X"aN'8@'v(A20 J%LAn0!8" %KZS%A h#KsC 8aPp!!4U8p:M4ȁ18SPbJ!qXb5((cufpT( x3^ ;`TA(jdRx8PTՏ(8 P6$^}HTȡ8eyd!@2td@ b*:x*O>8a:(+^& 4o8X娧„( %G~RJAs|=XL:b&&@Plhwq  #+3vo8Jo*T0? ?~ЅoyhP}r Pv@1g>*8`? xƃZA``o3yA9 QxD$bN!C'ؠf4qdP H tE40H5(!j9<|8QaG(4=q8^0I3BP @Ж\r4A @~;?<2cJ @ $RyS, Lml{c Q$(Ḵ - Y!B/DpS0S Mt*?x?Ƀln3uqjJ < *pB&$0|$H=8@2AK.:N F#S fҗA(D 08Wi jQےaWC&r5j[zU.#nd\~Yϫ^0aS *`L@ZUH H)&Z$  P),h9|,tyTR)ZhwZf5f8|Yիfu'9%=]N8EY#Ad;Ľ5 OS@NOy-:E)j6 ?Fx!hCBcA `Ё)nvC@  nm$swƂφ^x gx%6QbapE[GN`` '.jF8ʑvF1̓61 \@@Y|2(hsgL 5pcaB.9rߜ&)9:h: x~v! YOh擛E'G~ϏLvO.d }c=ъ*pݨBO_UBG$ kJ/Ke-Pd_dP0laAy8M] SyP{ I#%{eqY@*җh@&@~bE%~_g~__ 9 꺑 7P!58$@5.0Ph[ @cAUcA`QjC *<+I<&QB(2[A =/!!'{@ ,/\2"8 *3A8C `C(AX(1>BpoQAI$dYƘDU:\2cD(r1tqe--;6|/9y2k.,0eA725M ).K$X Y,_3X< 3e6A@95:ܚV LSY&iFu)"4);Թ؁80LG"αl$\cׁُŜ`H c+d06gk6h[d(QQ˟~DɎ6 G6fS6X85!n G;jJ! rhяtJL |s}7,ʘD$"*!8'l"0r:R!S\6*&89%W9#5<7E;Kib9<"L[<ġF? L8C 79@Zz3E¥ëvƢy).:S}2}G,˻DT/ÀxjӴ'PN3~b `"1#0<8= C=Oz‹Z1,śd,Ȃ:**`<@ P,HO=j"RE/SBP* S,x>ڬI$ H ꫊ !?ZQ$MR ?|R(R)R*R+R,R-R.R/R0 S1S2u "$HI.(9͉ TR?S@t/  ((x. 2,$Q\TA1ND Kĩ`DAP?#5rHT1lѕ*P= T]U^ MD&'sDQ,8tQ+0 T8F.skF19A3+wP;TRnMѴFIr,N04DF1dmU|W]5HYKH[C\S׉Dq}MC!+]Ƴ[؍kQC e(R^8R-^=^`Rp2m^}^^^^^^^^R i<i$ b$:.  _A Apxя-/;K-0MC"MĎCН2 aN_eUaEcNR$-48АInYFmF u$ض~b(H~]WZSHaHu^)2т/!e؜ BLiS𱑞LKb?cYٷ8K-";M;m;NZ`+:<<\*P] HenfVŲݡQܕ ᝜v ogz>;孊x^}g~gghh.h>hNh[JTCvŕ@9E`HѨ_ Q-*̪H! VXC gSC`/P/Iu`/0#1#Cy8d`ZB(`DT1=< ,Ȱ PB 0`9 Fd:h1|-N̖O$F +˲"6-ajaf1Vhd FoGx"{YG:F^V3{4VDIFKS!#  J3*F:S&p\d,!|<:5".F_$dX=䌓KEK#̪O.PDᄺ o2$D*L$[E:LhjMT˫ZdsC8:&'֔KLsجN LFq>?Ye}N];u.軿huV( [ZoiwXNwgwwxx/x?xOx73uA@A > +0d|_y/.]Ω<.JK}U-00:%k] j!iG0)_ {gy^Hǁ}HȚ<x]oloXy| R{XYpIڗ'= (|wmqD&ZE6Z4xҁ.ڕڭMN%MNS Dk=|S2 )v1!Ĉ1 "ƌ7r#Ȑ"G,i$ʔ*Wl%̘2gҬi&Μ:;HÐ&85AO(&H,1GCHD(,ڴjx KhP " m* eBء8`'v6.$4<,9p5 @ =8λ@b(94~ $ʗQk,3hѤ0ci8ʗ3o9ҧ焲Æ }9|MSq1쎫@=|ǗO?/: 8 x *h W J$Zx!j!z!!8"%x")"-"18#5x#9#=#A 9$Ey$I*$MΘA H -P ؉זhQ hy)@ Dg{kBa '}' gJdq"#@h$IPqpF-f |Q0 qj;hU $`B6fª*++=j+eYp "C).;/5[FBXDAnP FBPE\t.@D&\PpEՖ@FL la:k ;,2&2l =P!p'`4@`\ȐD*% 5T/]{5a͜7@EKX@%MpF}J&87j@Y @P6ЅCr8eO^9?Deڠ 1w-(A'N`ؽ; n7B JaDA \i" +t GFPl=^T RM-/}˰~?Sx0E+"D3j@!A 3֌0 r gBH6D%R ×d$52@lp+h8r0UH@NpC Q%*SU@l 0\ Ӹs McL&,iDJYౢh%2SL+fq[\2wC!cW,9YOv1У(1p=H@Q~<$TISj{"=!'qӞ4C-QԦ>5SUծ~5c-YӺֶ5dJTR,WZ!4S}b,VK1`>48{(HIʜ@'9YhAX%t (mOK^V-Pu08ʅ A8+DA 4s͙iMr+_'~Ԡq`YEjlܫ\jJU]5̢j"$*@e \P U[͜\SݜW\Yѹ lUyXd.A[ E"1#mAT"ߜ 8DҼf]hVko m](82 s k!MH =#q|5x|Ş~aH؀鞄!9D^Y4C/6ؚ0#J*FN*Vb[@ڮ=Q6*0i-"ɥꤚ D\an&i!_mQTeю-ي>GZxWٶ۾-ƭ-֭mteɖp*E .g@dXS:ƇgG]ԅ.eӳ5$ DqDdB:jS;@ɌԵ H%Z,oz9Q)C4&o[C C0xKg@TzFkZ`Ԣd> * 0eDBx+*bhe`  kEk01uA$}[@poL <|k\>̹"$ (lLnJ&nb'F @AA'U5ɉYADS_ԀHUsYqAq;* Xq꜅lJ>h=D%04bqK$'X@'_ 1 @YUHMx"݌Xi2dBXAԥkaE0&Wq..#PNAA -6+(sM]/$\xsP@ 9S1LX0|AB(NgQP <0RZ436ƀ"F`vA( t>B xŎ Le 0D8(AtI/NƮ$L۹HY2 pAppv9nY4D8,<3QXRA$A ,V,8U\^$QJdA t3LΕlco$~,l3^ BNl*;-'A6U83DO%?%߹deEf-X%- L4-JlqncCvkivN,/y,?Et4Z@Pk7TnAT,  r/JtS3Ԁ0 vVkk75${E @KDmcN-N^mEI&Xp C@6Ťp6`Y"BIe(qZFi&EF7(c(zTQ7y8_YCg/d* W ZJGWp׆C@zyN`FRIz 0]~(::/zzW_:go:wzgꦆL$G|$Snls x sw`*Ѽ@ GN ` [/L{2ZpCo3պh`J,AF^n.r K@HJԌw-B$r ;!K# d;?<)yCH3A^HsZM  ABfA0EgtA#BlEoOʳK#9<'v \CzElcR $Gh@xAngd=nGCܬ<^<ǽ& z4Fy Ҍ*-Ӛ @@r{vki) 9 N=_M*}A\@J\HE$D: >7S>??'/?7??GO?O?7DJDcn*N G?'IYຆz&#L 6TTK_衹ED /T@ 6tbD)VxcF9vdH#I4yeJ+Yt'e]XN8l %ń6:"n~1"&'Ԑb2:@9#)$R q#68L`V7[a%MW:Lqbŋ7vrdɓ)WqfM H³MΞƝ9L^@M-O8bڴ'б9NmeN$iab0g /w|xɗ7r  ۿ7p (~n a/ xK #zPa 󭬳ZkK9좆昮)(j8bC]|exP+܃. vsc9P c(@IP2Tء/ N!Z!r#l a(8!jܓ>@U h&8a"(̅&H! $s ;CP蔮OCݡ3]V]}XkZm\uݕ^}`b=d]f}hjlݖnpr=t]v}x块z8!!PH 0%&x"X UvAp(PaH|(@ *La2,묵ޚ0)z)(<*JK8":HȊ++B|P6$$(6  0A")ɟbq !2 >U_G'R[mm9a - #؋ #  ᚰ (" ҷ>/.:Y<6o?]SV0QBP YaP E0# Y @05G $+š*SCATɍr$B^4A} D3ExF.} taAZ2@Pa袄-=XB(-\y4P B*Qjԣ"5&RҔy@0!VXPHO~졽HYJST*YJW,iYK[.yK_f :@0QW U{)P5 6MocQBl@0(!S1)`e7hf3iPn%4E48u)NiD)꒶M2~ &o_ 0 pK C70!- @2P[Z<[PZԋ(i(PB ńxo-yϋJ>8!CE`ێHЗON|hPV54f`zd(SB]6φ,g?6ԠpZ)1EV-lDRe!- j3uEyIKņ]b:Ӛ4;uJO:c/ˮ d:!N5=>z$ Lj"OyzZȓc:9c}uz:}`VkQ>ّȟ˕ykxfD{0- j)=le]k[D -H=A>{`$O0r`y->٢IMi t[tLo]ns"!GF2 qwD\L:XUvr]z)< ^a Wp?)^q_9qS r001*aAx navjbjQ$?P,;y H_۬qn  )}q _A3͘ό4}I]*&`xswU9z|jŒլ3tZLnÿs4'i?1MWl1צ6#DuSXj@'duO.k>>rMzп&R>)Z0gL"[f:voPqcP+&QRRm!捒, 4)-NS)--)nCPSJOSPW[_cPgko[LE &_H1Ңt%ƪDF 0Ph lNXP@0~b7^Ii^fbkiL * \ ]dtFNm)0`:@( B7ӱk3lR8&qqX "JdL ZkL϶b(,R@ AR&= *$+;ٛg;ْzigu`lg.h-$r!]mWWdyɽ5TzW ^^| 2@A +_ c{}^Z@p#_'+)~[Kn*+4_K_$ !1R~OB[ ]M1dcbyCA[E{⢲@{_3!_8гJd }_ϟ";oغ^Y޺!zOI <0… :|1ĉ+Z1ƍ@):6F7F8"&v@zDL%=pQ=|ӤԩTZ5֭\z 6رd˚55ڵi`ܹtڽ7޽| 8 >8Ō;~ 9ɔ+[9͜;{ :c p mfȎ1e3 Ԉq;` <ċ?g!C8pV(wpF8`č(vq۷ۿ?]!78dy  LgC'@ '8qW^ׁ2tE~&b*OG8=e8L'OQS P`?DO87d=ÇWD8|HeV^d0 M%p A4TEGSPq h1uIeJhg) d  TѠ-@xO S 8)j2棔P5 jgjk lKll.l>[hHt6lAAn枋n%'GHUue]w߅7^yO[ep_ tF\%`(!I@Q!Jn\ r˪#HBF\ӎ>DSK@+\N? u[vQhAWVf&n ՜u١ _\(ur- WNZ饙B) 7( y=pOyz袏Nz馟zꪯzhA@Е=.΍k{tڷmEi 1G^WNw2oZ]0 |N|k 'a&dEAoA d]cꉆb6 s>§o$ t;L$!@d,DCz"lQG (HI"Д$ t\jq@5A $ uH@ Sհ=kgJӚ7'tSHvt` >xA.JrAB!0 ~P[$ I ?h!7 S~K8LmhTz%L@a6d$A;SuH0@ 2+OTr抉N%sKS(V鬧=|s? Ѐ t-AЄ*t mC шJtE/ьjtG? Ґtzr@a1jYk5 n-(t =W; *]A =, A~4%#k=m@>A-Y3!q S(:8AL `2Ƞ[ `IЇ *"U'bY/5HAZr$&`}Mˋc u*G)f7{@d(ˬq뙫+GTA16Ё@@  k'WX!RHWv=鰅"w @3L׭]tK5as@Akô,q>j A, idb?w,^ R@(r #9RO.PPX|sG6k YBܨ^?2`E D~p08AvPE:N54-ӡ\WЫ6[^sǮx+_ AUA8)Hps!@ &@ `.4&U )A&`BTu6 7M;ݷֵ@%i9 '0-`Z9 ,( :ů5G2NpHK:Ё6 -Pr\ "?#J~|7onu.#K9.]׀p5Be V铡zp@HgG p2,`'E#>Q]r*N Oi!a5V(Y(,ǧ2xp5n8hCDYi1Aȅh(AЄ>@Dz[qDU!WXY>aɑĆnrXGGhryJ}_ k,_gؑ7Lb=4|zI?h?8lHY8 ȊxHY[ɕ]_ a)$9fnf͸SQ5uIȣ<=>_0ـ>ؙᨦo."aQ م( -LK Gqa '0+Eek9  T y?:*b2a*JYWAxjO,m"WY[˵]Qg e[R ]:oiѮmp+ax7 4>!jKȹ9=M%k1!6 @d4Ȳ{- 2{J{6XDDa> I1rJucx1@h@VG'겤6/YE|$ 8ZE{JKlY[sZ a,cLel֒R+uSV0mQgx% } rLT)9@ۅJ%=M+v #k? @DUX:m| i11UaJu6b*]b0`2܁!ЀSV@ 84hK\|5M`F,epDLE![. @#4kX`w`!6pLȜ+kNq̣> IBL"Ȣ$ # :Ё9``C \vPL*{rHcD!Jx@0HD\n#YHNЃ P(Pс)gnzi+%iND9@2OP 2P#l &\z@ @`0 y`.ڤ 87юDdY"%) n$ts'd @ 1@:.nB\bd?@B \GJUUp.[Vo`d FELxpɀ+@@p # # CP!۔MU'KYD@ RV*.s7XiKX.?Q$ ^Q#dHA p-ZHjM`.G8H/ u%)f( <ӂ` Qzބ|Kͯ~0nHA @.l5oh@)KRͰXΒ4~/p^cDl39j^3͆wc~uL:3/\bˀ0 rԠU(C QRԢ8pLf%u8%%Iw9$Z)A"c%D a*vLPz5KmAؔѐ&Uw)V~5-YaC Xr@)^ZHb6ёεitVdL4 Y\)(kj5u[ַ.q+]{ۂa. N;z*98%y;^̀~NOn ##IO ˞L@=R OǤPyiK,v@`LgBSԄLDp !6p~ pp!;}>#ԏ۹t"fM5Wfww`;;P\ n/{<p M:[?鉺fY,3L\;OI+TJeA~`? ;*X1q<Ԥ5;Vcz>ZiP԰l[UWՄ5,b/Tಣ*ZS!<M_~I=gٱV60վ|ڶ%nu{ n@+"#BPnE]tݷ}J"n]f]nݥ[ŀ XG!X&x(*,؂.02H'IVqv$mсq1Fx2RKtgЕb_2`>@]I`Ed$06 T>uB54@IB5tYn0@LťxAS?0RFe?y'CpXh6j!Pp0E0s$X tgwDdpNzH4EdZg6yjI"P6Z?K/E7/PzpQV4EFpW^x8'j7 F@wS# t?PŋEЈP`Ps@hpWxhz9V~l@rІ7n]Whw6@@KP]DcrؐeEH(1 Ѓ-$祒6y8:<ٓ>@:Y`vWGQM2 TƘSpq6Pe3x!Qrqr#`'&1[4G)> T;UK`]6Z9iZ)Sd4dtuHFQaOD8eV9/P&4&`f;PbLIZ'05 D@I1-tYy\GRr35~Fe)LtgvIN{X`QSpaY zk{j5gqj;SXl2XvєUG@`x& r[fk-%H?]mʜO2UFLgQ@`JK TЯwyG{|pzxgP طfVi!pp4c+1[: 5$jWXA֚9wX4<%1jf|P[}ʋ~O > ;W0p'[,p#wiw7kU+&vͅnصp4@L@ oh{GQۺ;{_55p0W`RQU12@LVU!fgFs2V9,4ԗ%;y"Q]`r¼K<]w`L&PYva}&x7B K1ºKqp !eLH 'PpZ.T ;dp*/Ej?|Nn 5J22 |F)[J@w[[յ:ʣ>EЖk'G\ƍĒ.y;6@arGyt}ɣsyN8B\ U` HߓAata!0# X0.kƨM&`MߵB#-Ĕ?efC>3a]4-@Ab"+0c59|Jk5tNGkW甶\WY/hn&@6(Oq9;p1&PW=ʷm<r~ƍ}'/}Mn7u%9P -ݽ&~^ZӍFp@ˠnmJVzKp]uN^{nnE^܇}>_ $Wѻaœ 3̥e]$0黾WJ\{N>fN=pSXAt Lֿ~HSp.n7WAZ]% ^}J/ Le[!)AZC\K ~T@^UP|ja|2j\>vOx-OosDQQ;ȕA] Nh ʁ"O (,^ZO[@C_p> o?nh?gnp$Z_\/Q*Vj/@q@$XA .dC%NXE d YI)U (HvqJvr3 ?n:vdSQXUYnWaŎ%[Y_!)BLyFM_&\aĉ/fcȑ%O\e̙5ogСE&]iԩUf$3bTF2! '>qɕ/gnL܈bxӖ FrF syTg{wq$Of/~ @@oAthx#(*[zɍ.2H20AKT BSTqE")KÂ@R4H$t )q$&hI!LPI.K0Z-~cAK4 sM6tM8sN:NO@ $0hτH017+va43-IPN;ԱN.F΄0 QAQE8|HB ab-)hҶ!`0,Rv04Ov[B5%v*%w'&s`r4UUC4`TrVzH i&Nvb"a49R!PZMydC!RhU$^ .]PF|U# HP: IKD "+2@aZ,ymێhV*n ,nthh@cJ`47&0i D@ɍ@AcM;Mc}xPg鶛.:Ƚn9y.0@/&&yPv nܛ7o8wߝ`DD(AI2 "`*g@AFBlw,9 @}BLhO}"ᮡXy OuvH$ D^B 1IX -!9wITseP@q_,QZI,($&Vm#bcXFVle-{YfVlg=YІV%miM,hҢI¦V  aXEj4ɸm$}$Ij vA_Z.2`.ZҢVA$\A 'YIpd!SF+f0Kr!`4bI_$`:SWf5a(Y`_~S|u ܖ%. lb#'qXCfB]5ԇU ȀC2ZLҕ s0 l 43A04T 9T: c8KDsI#뎨khZ"``fV | $< // BtOWI}SFM}jU|x^*@PZ T.NAu}[&v}ld'[fvlhG[Ӧv(GF6vM%o3_[^zU5wEr_=OSD&xt|ͧ>C0 rp 񫿬3BƄ OlpAB(#^\ +ZuKy}AE1RRGoX3Z@F^ Isg5λOBG$^$@#v(Z{4&LS{w^'| x'K&@o=*mm̻HZWx^I "<)$u"(zm_B _tޏ2WAA\I4?WX3q;ܵ}AȢn`~T}Q^s80j69R[_"d@L/ǿ%(I3Y:{3TځR# Ts 1")#c#B@ lAS&! lscAA B!B",B#9`1D5IDNY2) ++RĦ D0OdMNESA@+ h-Ȟ8 ZԗW YLFeص,\FjFkFlFmFnFo %b!0` @>#٢5 &”Fz59# %ðX 'h$ - 4BG9F0GU6e""(~d*UL V+H$2@>XP((/' 6K {MYI԰ RT3 T~ I[Eȡ*x DG}A4HLN@ʓ&$5R<]D>-&ΗɒΛL J\ H-e<}T`ϢZTtJ+8 O85  8NHMU0P%*E^4K|и  J; o;UUUb}FЂC,Vg}VhViVjVhQܞPд̩QylVk=W8RIeb8e9WU^ԝ aa!Ye/^>[%&:(Y!|O\*x2fHФ=EU6P7& gs8dEְL}hh.h>hAyQ`EvWEh %M?\DzWZ9OvM ^Q.ӣ\1%Ӱ\NXZ[VN,{O^ӍbI]Tf]˿] K (*Uof"jaArΊ3f4~g^yƓХjGV֯񹋸kkkŰB(xhR #Bh ̦n6T)0N, cA !2) 7N@J 0* (l D6< +8a]SrE%U;~m$Xy`HV&x=(E&ucF h(qj>n$!%Κ&x1 Po Qhs2ҥ1(OLHg2q#  )h-b<vg4 Y5hpN}4ȴ#mi  =˸ !r-(P>A:s;ss?s@tAtVq6@쒘hesU$m NhOjf}/tIր=I+eT&F e8-j X ?@aHQ/]\V5fbw V:vMvj5ZZuv"'J c['um2/ B7SUuw{w|w}TCo"B1Pt`tlx8dwHt|D`=-ي>'Swx vuuu& s/Gu yjBEfv v 9fe' wvhi'f~Tn7!%w$+ຟGv'wRyO{_{o{~8 ϝLHOGQ>tNm&ͯ{xUWYF weQzOQ' x{ԭocj81l?ѡ)f,o}zzoU"*w4BKw{8sg~~~~ x v;.:Оx#tĿx/{gG܄y` #"Lp!Æ q% !J"G"j l4b".Œ)s&͚6o̩s'Ϟ> *t(ѢF"Mt)ӦN„0 'ZcG^*PF/CH'~8@utfK,x0†#Nx1Ǝ! ,JQ 6nPJCϠ'H0e]Dp_KVZ1޾.|8Ə#G%a 9'Ϯ};޿/~<ϣO~=Ï/>ϯ?'BhP pEtՖA HArءJpCBn1p O U-%aspKZBEaG"À;ƍ2ԠSDPXj~ 7$RpE_-Yw'wMHQ/SM4dF.}H C旞rک:%U$ ` xXdj\rUE= )̹["dM"0iS#iԢ&jZlD )碛2d9dqDutۯ\# 3ܰ[ 5 ~n#P )ۈcBxKH4D/;s'PJ9[veWIhfm1q_-̓V^35m~5q ~dk9\ּz!prP9UTk@sw>s>9|c#nC;<"9Knr/5耒Cq:(wɥ#s3_EwpojSٓJ5F! w|]|)w4ґ!EBlJU}onrVmM.=(򊓪nّ5&Í= Ac6HɓAr v_uV!@^z)k޼g͹Ό3@+4R^N9H69ЛG|# ޕr׼|5] kWɚ{C< 4^HݜW)uW gn%@-EYfE!\ۻqIl 0Y[tVlH [ I_ \eXQQ k ```]]GsYs5Qu`& r @URx5J՗ر{͈ԵW%؂5X@~]XqP!AAJHNAPO!PZQ]YɘX=YMYُe 4^,F p $(b.&j` .ZbRޠ^GY-D46 G ] L^9-cm4Uـ@H"Gȍ p Xޑ @EGIY7۰%}YF6FXHA; Ny02T>Z@jp2`%`BE d̊*6G*bI(:`"@cqm -eXWeYYeZZe[[e\\e]]e^^e__f` `faa"fb*b2fc:cBfdJdRfeZebffjdo%AXqآK ]w!2 @AJ؀ $bio&"b"2 #:"$E^GpS`'Rh( Am e)R |K[pSTTUbJjetWi*iBY~J&ay&mavA p '>Er&!*"i#>b$6)GVbv(GU޹D&zBk`ȧ/֧/ c1#JJFQ (Gp- 8ZrkрL蠄:ņ xhIУ=B iY@hAEK@H ~+lRiId$JNŔ`):A@KqV,<©iV)=EG ЀCZbmjrmzׂm؊ؒmٚ٢mڪnPȳ:KQm^Y(k'ttmބ.|s"tIB+ij pkzSr)ĸg.k'Z\"EٴZT^YqaClDlŽJĦ :)h[boB;#$~*&VF,fo6ж)*sVU"p\Bko0M#p+3p;CpKSp[cpLTED,oj0RQДEg'tR.6[@pS'R+6vDRzLYeϑ G!, N;23 c3k jh f{z1tb ?y3cLEx J8X0́! , B hCsc8(+O}+ b(2b\ Lm8ج6zxL.yƆ! , %0@i\WXJ)[i (BM!, ) @id"\kVb k ۅo`edXb! ,H*\Ȱ!Aఢŋ3jȱǏ CIɓ(S\ɲ˗0c\ gɳϟ@ JѣH"PJJիXjQ7KٳhӪ]KѡʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μУKNuaË]w5,c0"C@玃ug`~`X !?pVp`{X…ܥzt c04JŨ#waбyz$AVwbp 3lpB (8@k$F;)x5ifr78y(]20dz4챁JwJ8 {皈"z梌%|$Q AF"i wat ^)06j뭶jJO6(F X!VqVh@h0覫+kJ&@Pt`DfBl'?,p- ;02ܫƐQC1/X|p;X EAE YlH\C"  @ 0T;P5  !CQ(] _v^?qP2I@( >$;p wACЁ +t-}@5Ql@DbY(q0jQ* VkP+/e;<Gl9% xv9؀$P~4-'ˉLgalh@ ~ @JЂMBІ:D'JъZͨF7юz HGJҒ#׾^Ё7Po b'94H@ *L<2r(S agx3 h0Ҕ4AMjYL 0@0Plf#L`'vo P$q@'@H P"DuP\;ivKB,9׺AEˌ-ottūnwe^|;$H>ɯ(P`f'2@p c6 P4R<- u SB1a o? 'aC?x)b6pb.~1$#Ѩ,A~;@@g8&@L"GF %'`W2g(GYʂl&a)KKAxU-pN7V&3ghNS ռf69M$w$8ohΈNIi1w'MJ[Ҙδ7N{ӠGMRԨNW0G`]6d85: T&K,c,.XEa6 =e6wJln$ @2ƞՕ.XuA fvTMц!j}:r,Y*'3t=3@{թ-iKkZ˾Mmb@Dp@$ `Ҷɪ j@lEAa'BW H0Ú|0K'5pS;[N$hC0I;o08AvPȮxϺ^߼&@ݰN6Wt]N ]z l)m9g+!/yNN4fwU;|%{}giU^GQUn7/>VǕpnśtS\ʌR/fjYn+]N7u%G<W[`d'05 %[(W593;1I`/9(5V_t=4D8;#52L,V;{(>?1)2Yw@0:;;0FZxmJL*cHV8SXĂ27Rp^_PyA4P:F#RuL<Vs=6(2jh$D_sK7xdAtI`xX<\Z(5bx3EWd0=4NctME\:}[S8\#>H&>8]q?]@U@q4!^ޕA<2@8`?g]J:^@4?`so6E 0b1_C<2DC_`Y dUSx9F5 P2"I$9u&Q-V];m" Hb-^7-E-tU:5:Xw=|cA:m0 e \CP Ԕ+Ih5@Y(Ɇ:!b+v0 >* FIb^sÝIa)aIaT HR)E02v;G)c,*d?Xd)ItU0[OSFJ'W6KJJKGiTl6p50Z*=pf8W7f>t*Lt0Y}5axW ^ޑ39[VjǕ!\gtY;TĿEyY{H\<0ď2/x A^0ilӕq,rĸp(@Hi:v0CRfpxnY ~i3u/`D 0F\Ρ>DSy}=D@閎UW0BI;]s^uЭ0 iCY.@7"._ٔC+C+0qR% DXf$06ƛG9 ֪Lj.z09Gh/96zܚEVl1MB JGz4 SQ3oGĽl% [@CjÞ-zB xb-OʝVDGD9:)H9C>'oj #`HOV] U_GO:*Z0R^oCc@?p(_5IQ=@kjd&FWKOwZJ-l[F'4պ _t-e[w<9ggܡT k:$@\JZ9Oj&0yJ9=X[`z:6_8H`?]g=f5:oD鏪_+M_0+D J0a)J@bc ~LPqB'x C*X [رǐ/_$pcĎ#Alܠ0/98I 9pAR2iĩOB9QJ `bBiծe[qΥ[]y_s찡_$@%;Lcڊ;B8gСE0A1顦Q>Ъ_ˆ ۨa( QoG \4C'M|` J0?N7ٵowŏObhҭg{ϧ_}p@ 4@TpAtA#pB +B 3pC;BZ:Z XM 4^X@q4Qdb CS'b؊@J,rK.+rL24s j h)ICᄁxC!d(,Xr@@a $j2H( aN0M kzءHZUSQ}L%LAn0!" %mH{сrbMuFWBZ=S^ I>v8X\M"S |HB%L 6-vaa!t$Dz_Hwɵ&("*1Xd< гrݸ8P\`(8DK$ H" dT$c"rP!{^Ak`"$na #!F(3kL羽{@k:ԁn{g (ls g\QHHAHoZLxi&`2z#6xwy:q!@0avuҍXz@A,d>Hㆁ " TІO+%$HhҧIVA54؍vH=E! 5Rp`t0$y:p XHǁ&~7D  4^ BOsw:Q뉠6h[:@)J("j9<;pr 8BnW.0TT  w&dBVq4 jp<ń]Xt 2_ /TJ`1[I^L8 %}l#'C Oy&ON]9kY!;GFTk0LT% P?(tЅ~Vi«@IÒpsKԠ*B'QRv1&3@ €p 'w&GF؛ H`A oA~,09i-t `ȫyc~UYt.[Xkfsfl 7 j`e̊;fvIqݢ 'z;L IPA5e0A@1A @$XZ8j FӚLRǐҘ#6-vsrfd'[f6͗K! / A~cͯ~["#, Z2t@til40&FƂk ." /d pO=F: NBPov=q<<䍄 *= JQҔpYGÒܳ60h> lbOV17)-Ak ` &3@|CYf1Ќ["g{t 0H| >6MNMrDQZ(1½rC8PB*/7# vpeA:s9_vUa:J,hE3[~{^ pc@_ '_g~|G_ӧ~}g_~}o)D?R<#ڤo]O`D%6/WTJn#&?@.k(?ӥ?@ B2 ,ɹ r)bK =DO4!4CDixEKF˞A@95-Do[5!Dzɸ, [\S5KᙌI#CtT9t=QF۞`a$(Ĝ`lm+#6p;Gr9#*qɟy8(ș9HUjYxK(!t`""<ImQ Kyki"O):l;#>@B:$H$lG$Cr!GS;ɶ5лSqS99TjKÝq%^('ș %(%phDiƵ<.AbC)Z!GsJ> Krͷ(L`L:T)`)"0/;;x Z:< h<s^ {)+AcF1S* H,xBZ ,"X0|OP씼؈t#p ٴ<e;2-8 0­߳ /$ `.PQc.3QQQQ R!R"-R#=Rf#I0 [qР?h CDR0 S1 *0( B+KAC31AN_iáC3<2tB(LB) :&ؗL CSIT+!XSxĜZĹ\O_C`˵F{<EYU,ԑR;U߉FRMJ-Vc} ĒTHm#$Ʌ|ȎDKDJq7*I>}?1> -A8\$TK*B?M A?1cӭ !lW 2.,K|! ?#-I>.f3< ®ANIT=UQD@b4F{UiP${t _ TD筵̱JtgS€ЁC5"V}! 4gdJ"{#G (6Ecjc+D8__iIjI27puWπ."2pu q&I. ʶbɢi #ϐhXYyx+|IHi-T(Hwh=S9W H6ص9! `DŽݴ \b%]&̑'@K0XS`` {P;:& Et'/٫Ȼ kֽ;X;Y&O;O)Oz脂CO;mH$Ի)NCIo ԫYP*9@nNbnmQ% ߲ѡ؍/> (P hp p pppq@A3; ))c(0шlrqѐq'VаJr0ChB+1r-nrhP r9g|Y OC3Q4],A+USFKs^WCDމA]"pg+ښsQx$!=VN3TqIm_z7q57uq]"2f(Qv͜Nb `uk mبE/6|9Ôw#z\c0\3yg>%9, d&\#|^r!}33o e7dM:FqodI) FCs@7x<;, Z@F@x$B!hHE:RF"PI>VR+&#fLPjЁK>|P  hR%S{;P'OJQ&U)\)G ,ɪXl08AvPEAABlp= QPBS)^%0 !bH T Jx-bY XAT`,d-70ִ4k˘@- ,]Hfy^];eu`g: dBTd ' /ibpPz-/&=)JBO#F:݀dFb ,$37c824rsf5#΄VenwTa5)i[٨ kS*WUAMjbZö6tm(Z$M! <řuoL)bإdVDPta% RenuCF (AGJѭ%@.s%:AtUH,;t]lG"]pA UJ+b+^ !0ggXEHPRGxtzZZ 8K' Qd'Onךo0,ސ _B##=Bk3ٟǫ ;6$ x@L.|s^^fCBFf>3Ӭ5n~3,9ӹv3=~3-AІ>4E3ю~4#-ISwFL(c3Īn 8RجتPEub]j|ֶ=&(LpV(G@x@&t~8(Erգ>IV򒙬v#S2eV0MXuyӻ@1}d|8Psig8A`FA0qҢ:-}3'>vςsTsUπ^4MP03yRջ>gJ[*4)Nu٢[(I!P#AKR+TEuhςz l%[Yױ7`j[6ָm57,ڧF.8m?;!B[[1r.(膆|'AvZ4%0xd[9ةx-m*wuqkwucuHZk w\/M^@ _T :J P5_`4|{ 7 x1R0G}.s4) a 9Y{-d v&Vǘ Ơ ֠   &H A@ h @eخSDLHͅ(n}Z=!]5dH] @@̙) Iɳ " R[4a_ ɚ,!fG$#2#։!'v[ 2)S4 4Ei7S 橒DQ9Ʊqx\;u]b.PlNc:!22cy6n ]L?!]NcOYohQy e]S ׉ V#ռl=rQ $LΜ$A$BF>q#Gvd dUeeVlV*:HAG tIH\ˀukAN͖$4 Q a4Q# TS2S$<1GvWz){a@}EQWA4p(Suq|_____v<!X_ Y^ߌbA2&Wn&grYYƑ%ْm"U|\fGg&mMn&oo&pp'qq'r&r.'s6s>% 4UBaRUj=ImyB @2 !A R|"WiL r&.ǞP]\S6A32chܵLǁ=#9BA 0UAM@62Ψ8H l P=B#TY}p]V\Ņ;fD d WXIl$f @ U hiPQ>^mAmY@pDLl%Hl`i'^)_A&rfkTrp@B *VlfЪ)^ƪ*֪*檮**@@jŨAQxZav|ZiPɴ.굎M_E k~| X|"HhķAht@h諻Ia\ (NHH(A|*g৴~ K1I숄QF{7zz7{{7|Ƿ|ېvd tk+G̷s{e +wlc<(lZob)AZ]vJQ L>D܉9nTO0A8Hht|YqEرxX@ԸߖD^txgyKw,q AxS,;)y7|a]ay&ꢚ @w$"@dϵ] 4;ṞW3E lE,`\JZ ::::tx& H 4l!Ĥz:Y\x[("5Q{EәDo&- w8^Nc?kѱP;_s<#8mw@\d&ǁQι+ɤ oMd~iV%LQEM4iN%q@x]RhX_d0{\v_2o'T;߼zS `@<<] <='/=7=%0 EJzz HQtw(Y48t6!H0Ŗ /%=Pnk4G|;ﺨ8$AsҔAU>Pql,8dw/MI h[]P2#Dd s? $y^ps\ܜ AuWˀhc<^A6Yc@=Ah6VP6k~>D 4xaB 6tbD)VxcF9v/4h0@J+Yt+6XygN;yhPC5ziRK6ujTSVzkV[vlXcɖ5{mZkٶu۵@^t0,: !#f`81 s&7vrdT!dF0da 9 P;  Bd0# Rf)G)H~{v۳ ! Ѓ'Ԑb2:@9#Ç%2s9A&(pvÈ68`&X  @XBOEz@ARa xB 0tH0 0B@# (b82CGXLL0LV2.3 dܩjG3a#F # !^tʕ "BCT8z025ݔN=-@ FSѐ xbAh2 0p[Ip/0U%89l9d}nA6lݖ[G*$XI[V%tTW&z|ݗ~ >) hA %._* ^JlE( 3\BӚc5dͶ_U ߂碛kK^G<+@^[# \@d B #p%=L[`Ud1 _ ᇞh1!(R$l'dxx%ƛ=4#> B8/✳;3> tBFtr* -tυxCԔ|a#U+ax5Yk5]{9`-XeYhk_$ZwWrxSbtW& X@ T@>0eM2F/^IX‚,%ѐ4Q ^6Mπ&8QNH'S&T! FgǞNz^'?JP" '9C2jwoX.Hv;^J'Ujz8`+\Wҡe,dd|zVej2є4 p͏\ |T?O 5YNsT:Nw Z@hv#X/\K8E"BM?Xfsą0aZSÛ{oz ;"Pt1XAT'pFA)j͊]ӏظQmiS65Rsk)LZU @0#F\q\\ 6%2r!e,uKV^R ^\RNܣمvk(Uf9{ `*zU/ {ȷ93}ny)kʏ%+LQ})go\>ѕt[]^'> $aA$vLL(v^<4MFPf3@GmvÜ ?STЄH4hu+SB /֨+'`b[HʤmhۨYX*$LxFd-YӪ8 ҭ+\)wU(rt X#Tq$DMSSJMuavgC[,( ϋt)2{ $|̄n'f?Y(W6\x~^.hG?ґ)]iK5 2E) <;HL@/UZƓ PQFYILM4:v;jWOu%(`C—lsU[j#~,~ЅS(% hC}nT(`:!vNж/TJ6q'ָKq@..,yjh[$6x@.aA"C7^sWcysAЉ^fz"xo.*oyCDG+A v`tJ0'5DSғ_Q'=O@{O1zJlFa ?g-g5l_<8eyL1>DB &pWx?! 3{Jb@4(@x;=daej~bL@К&'_~UGOBً CA(0 2H [AF~uOH%lܢnnWN l@Vh"^v ׶b h P p" zOb\@h~ %djMn %cd`9P:nA̘&bCWN`A- 06 ~ J|)[x& bR3 J 8Hҋ% Pe:?CQGKOSQW[_cQgkosQw{QQQaQ : R)̫J d6; n|~8z`;d>sgW2hCu?Iuf7isV%R')kjk%tkwk{BSi-˼x϶&,DVEMZ.7FvF_P:@m~aVp`THH3SbI!^6Rx?8(6GK؄OSJ7*a9bMW.uUXi3B:AvO7T 3d3ej7XmXigV(y3z{Vz=z[zG?K5yÃ[7(ȷAB7WחW*Y"E؋lmSYEU/'ɍXU8(]'xqIO%H33xr`'y!D/3Y7;[, bN+&n<9fQW`p$4'v XTnN`f(%p# "D%tzHb&R" : bu' 32%~,;P ֏C%?wVSn$S /Y`#Cc(?B39V1À%f 9  bk0;KڤOSZ'‚R81%:FzUUk638O W xyg|%$p5v{zX() 88q=b3{4ҩTov`#w|7:Yk ZU'@ LEOyXN-J*Ztz@D6{It%ffHٱ{?:B΀I[۵_c[U[^ڻ U8ÕeNSofzy<+zn [L3' yz%J{mK:A<^' :*Y  tlT 2[Rn:` |L#{41/;weh F%܆MP;5C\GK|,Ȧq:b@Du[nAb0@)o&0@͙qӏ!qEg]w{=_2#=$7*qV aӹӣeS@E8 l@ 2jP}Ʌ$ lWj%H*8qO= ܓN;R'uˑ =zN`Yj%ΦAX Bn0NрuU='0 #ޒaOj: J|O ]-[Ǡ V](tNE @YM>w >gUK.\J E@n]P ' 52٥6YU%pn1hB_( kSY lir< Ro N.0d (8n#QT 0IK` @ I, @ %- BZUn ֩cg߹M B DĚ/hP:%J8%A A A:8<1ĉZ1ƍ;z2ȑ$K<2ʕ,[| 3̙4kڼ3LChA6:@hb 0=hHPb*`L`/t:7BphӡC"$b!U 9 dBIdFdJ.dN> eRNIeV^eZne^~ fbIfffjfn &@/4Q!AсiBDОA-> iNJiD ЃhbR ](5 Mw0CJQT 0Dبl.l) @@z([MPD aB*P qYLfCVM dB^ G޿5& /p? FDӞ DIܠ/F qw`A,L&A6q5 %4PApJ/tN?O>M;TQG%TS=w x.+xBλ'g!B bpP?I pBq$), R@ X o&q=UpĮ:.&LngbGF 7@YjF;DNd.Gɱ} mAA F! E 8!1x; w8ĥ Fٛ wȨstу /iyɴ? PzԤ.OTzլ? 3(*| Cd(%o lg2 M3FqH y}B Fȋ+e3>uJ E!HԪAhne$9#Vq1csm]o赎|pqȖh/'vQ4YIVj64,9@iBڶ{[kswR]HKzwпpW t>ہ3}tO}{_}| ~/yP A6|^J j"> J`9Emj[]Ȟ{~Ie fjDg8A,ss%n_lمGZhOgo0+ 4}!DrYIPrUIbr:Ph@1J3Jts@,g7(7tLCLsLW^5hdȤT*V\Xh79p:H#Hu7vNƒv#Odzv+Vkcf;UIuk 6.R۶+kG+.A/,'o)P``QG7tDd_"wqW!($p,- # D"fњpCEu0G( P'L7=P+(p0Y"/tbT J'*\*q@uyaIxwPh[u'"0!H8j b}a\H-褗hVPt"(D"UG2͙ ^@喏I nG/gPK ]I[k}@!m  Raujb 0 Y  k"B*(=0 *fÌ<z ӜŴ "L W(-̈́DA! gHj̅JPdhat(HL"1"ňJ8(&z̉>EYcX H2+_X}23p\J7ƞ1x̣'2GՑ'wܣ i>" $!(`c#'I2>`M%7IGW'GI@. b*X&GXZ!; R Nefi[ .VY R/1jZso!f gєe(9xrsiA/VSN&pxi*̧v'8 ܥ xKs'ԧBzKJ1dD'z@RͨF7юz HG-v(Mi ?JgJS90iJ"@EK7lz^3;?@ {@6 ~JgPJV̰ ?`$̀j vP1@ xkw KY`/)C = A`P%  ȀS^Mj5/ j@`1`h(mN ;Р w Z;j\4:$Ȱ :[z3uVqk䞴T1ЃLcY0`cLAfXޘBt򍰄2[=M7a:1GLxhWbM~i2m;PqT3qCVld= <kx@+l$">@"

q4y3q'nb|Rw;hCpd]  lʬݙӅd}qO|?ÝQ񐇣x6Fd+oG{?OzSE-(qԛ &p26a e`2P-Z(CX1Lt٥O>C Hl;#H lQLȀ-DBM"Äs_ F02!__ efoe,c @ d~?!~@ Pt֧ Pt!0{ۧ ` X]q 8DB'p P~ S P  @ ~EBB P  ` h   p{Š p `sy4d@W/"Xjx7gH/ip4m8/ov1s(/ux|H0!  & Pp( (x|}L2$ 7 rq dxsAC p&  8&1( ( x@5X0!#(( p@( 082=P&p08ѐ!5 hE7D(I""y6b%..9.$.&4)T$D 0 @ ,A 0 >YQ `F,IK5Y2Ai@A)A *_[cI `ɕxgpD$$ A B gi PYДNq2?)Ā Ѐ З1 9;ym~Y9l 0e)$VL"PZ)ᕻ)@ a 'Roܹ#IMùiyY^ԑW4i.-9ٞ91.1&lߙ|Id)\qWF cVH3c  Op EppOM+nI|qJWѣ*#Z IJJ OP%P $  ॣLO =J *z ١p`GPɒɨ*Z@qꪞʪ z:ZZZJ:j_o "A+*ܘJ *[1lUL Tʥ$f } E ` xJ9> *NjAKz; Eۤ NaKWѰ FAaڱ$+[#*{ DEZAݤJ'jOP3 &pc="RKS'˱U!K\k :VRѲS{" *kf۵b,[/K#6DwG:kjc:璆-1Zz4;^ ma22,|A =Z!S  &&p @1 d; 0 д҆, @ =K!c` PJ ` 0 o 2$佺;  JN2{u;[t0_@ k 0 Ǜx"|k[0!`@ >8 7 :p'@\+a » ` 0xP@L4 ĝ!ú^ ƛ!BƝ#Xf|hlV FiXs\uFwPXzǡ tp P &p vȍ 8v q`7lT^V~XV8c8 =0 P@29 5z:5& 218@h;ϝ 纭`=#=09pp>D},@d@@"N  ݚ'>-?td>* Jo~h҂E).E  & = '>;3u"p^404Y$`= RP9p I "!) ӐǑmCP>@*n*PC !s @ P '>^A`˙Љ"#9^91E42:PI'O^NC:?Qk#^PM'<A.@ P_AZ@"(*A`7`o KY$ p)RГ&@ N P\ASX@뤟ݴG덷?,?Yrߞ,D?_ȟʿ ?_؟ڿ'=ZB ` PQ*#ZPJ*0 $p&0+ N@.dC%NXE5nG!E$YIPX(,d 2H0 ( @ď$(z(R 1`tQO(tC (nWa;rذCIp$D !#Ƌ2L D v.$[aĉ/fcȑ%O\e̙5ogСE7&\,C •KW.'Ȝ1Tȡ"GBzH{жmCW]uٵow4^` g9rHd(LC  ;0=k : hA P'P +~b@[tE1 +d!F$TrI&trqA8b~( rzӄӋ xPI!@@D!!dC"8l &w_RH10P(cCJ@E9909C0$YAE!Fh{tx<9 dzn1?|ƅ"@Ĉ^0©2 t믟X!IV?d,B'Dq< jBWVfx@lf?u9`$b جTDjF @"}R$+h}<L@):Q,9kCI@!v0'zgE)RTTƈ4@y?$#Q7ծ|' N(aP=$c! QJ 't5L !&6S'VK/+-ۤ - 0A"! -,#ݶ8@;#NK!_I q$-(FLl"f5a_$n׾4rNvYW:yu3#g?'V N+t`s@ /  D΂. B&UFY p. ,E)Tb~$*i͢&Xݨ.p" XV@h+b'"&`E+6: L P(B UU5k.0 d \5R^*Q"N(T3]!E,І'<aňY >dEEjEK^dmHjZ[^6moYYZ*lt:!m]>r״Vĵ 2kRtmB`=.6:܇P/}Pbe[6X^azB\@(hE]\ [充MܯZOxb +$ Q,aE֨ ؐ 渍# ؍66nx# #Ƃ0Kwl6aT0eЄHX@pbu Hd@SO is(0;dU0Dax`{ŅDL7:[J;ER,P0(4\flȀ609Fg\Q!pЁG0=Ⱦ@񾿣@ QG)G qy) ؐxFTH?T-Xx CD<(YSdDcDcJ]d?`hWx7\dK\:s x;aDHY7sU`EJ#Ơ2 xȁ9ˆ7#hl(CHK(G:, K%\ R=)9P%  и.+8T,ْ.421p4Y6y8AMq.I5=> [SY3XTBSuRC ^Ucm)Ԑ(Dk8)tP@#8fz&#Q9`99LQTXTm;S{ =U;[{<̫ <<uS[֣… c<H%sV `W +؁ྦྷ֦GED\U5IpTALBdՅAAtX +7LB!Lh'nepm6X ( 8A)01YС&#@ D!T:XM9dtLjuGkKnSpGqrDIudHG+ W|%U=KZuCȊHHC,XZJK4Kܵl˷ڹlLT}z|͗; ,`?MqbcWYFuAHBA ‘M#T]+To   䗭 Y]fٛ CYY Z0>H!ȂhڡyZ[uWZdTFftƬgjU5[tGv [-y[]  ɾg$l ۀ[-H͗H8eq\`}i*]]݅`K]],M\UaL &+s93@j-],^=K>^|X ~eeei쭘-_`!pPP e _y_@ ֆ_eQg!0^N> V`l *"`lοn 5(ޖ b~@b^'non-F'o5 %[nd-.UbQUVW՗;I-o/z9ck]:>Vs<^=~>͋_VB.C Lˊ 賕dK6WtUW7ynQ}[WSE'/OY؈5ي]^_Ya&YcةNم@70oYaCIYYt&g\q&Z|1Z=gM!7X#t~ZiZ6hFXhhsD[Qۉf.'dž͔sHݺۼ[g5ܙ]p@gt#\+\,˳$\]`q:A]bNEfM6=]]&ޕ]wݑ|Im^Vc\/P`^>ߛnA_l5_T!L'uFnזm `,m~VwnNaHnYny=/ooyy/!z+bF␰y c!^z/^=pc3<;FV_V =ju gGdKQYWW#QcNFG98I^d1?NeeR[Tq5{"Go-A%e&W\X^o*Ï fr$rg7eOs/8"2g3l n2gstY<ϖv>wg?Z[E.tFDwFEڃvqKs<[D :@$2 $ l `Qf!FH"jC6EHhbƍ.K@7NhhƗRRj*֬TQtyakh-k,ڴY9vڸrҭk.޼z/TKF < c Ō_FqCH:GHXKJH&B Ek]'m@-4TʄpC 615HM%'C#r6*@_  W0Ǚky֞0D RP'S@TlMgKL H@A tPW,nQ=λ O񭽖< vuץB3A=7G&| G}z{HoB^с@g"g0ȔqW{ #+kE(B f%6 ~0#R`€?pB*P YBdSdBV>QPRA tKiKȮ+  #l (@B,WIf<82!He.Ýt{`p~6ym58(WLP#,.RYzPP*30c|+k 'AT{)A0# Jqo}c@Ay% Ʒ8% po]Z<8aS\g{+gTQal)̤&%^-xc᜜bpݹv@h @&)y%$c h$x#7O*T8É[/ ?\倱|5`Gg{2)(Rk~ d&A ~:HÄFgݟIW\nI g/PuifLfRo[4P0eq;dz;e >W|' x}S卯<y eCgLoOl}+Ӿ=s=/?>3죯KkY}R'G7~K~K_}xs} f^".` A \A.^n\ 4 j] M2xIDO @ @A ^!!& >T @,EԐp[`Ha m }!ΡpS@tp˜"!"6""#J5 "$N<"%$^&.%n"e'`Xh@hT (t"B8!,D$0uE(UH'/0j(!B,fE320ZEB!B/7D'D@:5bdU"#U,t'@'0#0b3VE)B$ D=J5҈:E/=BH+V@Ԣ^(Fd_X.B<?ƣ'+!|# B('G0`h#t.2<($$$DB' B##'$$1.jg$$@;F2B?dM%4@tB'0<2%@'O (B(UJ¤dOFB:B:IOZ:,F"$$XH$( @'0LF(|_G"HB?*XVcddPFBB#3@$-R'hABd^@D&^P$g !@@+v1ZePfob`L!,@$HB'."WN?fE11&$'@.',vsbwb(h"bm& 'zp9!'c|R["sv^ N ]2chZ'vfe_c1.Be(g<~VmZT!tgn@瘡(Zh("$bR@o$hBgk*&lR2"$ @h$""<@#_('x2,'4,"2f' %j 6z:0MiWp'VGQ07opCi[mB0 +0. f 0 G ϰɰ {b 0_N-p 1Y!6.0"OqqZ(Vw1>T 4Y@P@@AXT `+MthqpX܅ñw 'Yg$" g'g@@#[\pqDE(1&D+q>xILr k۴HDHPA  N`./hQCWT7E5_H93: 47:3sMC2R 973^4=GD-2(µOG8TO @ pT sa@U4Ȁ @[a؀,^\-uS?uTO5]MdAVCTSu\pK5 WU@9 Q^VSu|Gcy&K}yoL@A$ ,oDA |v XGEPdGTU, (A [q@ATGelm\Nl<\dA0>y6tO4@]\1*.6>du6n bk((wDLDESkm`J A dH)RUසd[%ArE8Sx X8E*A@D~쇈7AZ5xmFN;4ws a^8 P `t{L>M@HyPCSm F䓑ԏ A[A [XUhyO\TD@Aع@yy?q9y?WʠA\QTDž@m_^0 8w?7YȺ_tY:#Ll%r1k˯ _K'!;K˲?1UrY2ATA td18e@gIA,w*\x;2ҁL{-E@ z ߻^[,7\@ @4(\r-c;_p; <^ 5@`<6K2Cې@03X1'273H35[36k3tQ7_.#Am߼]\b ALD\=s WX=GtZ〽أ(A?\pB34sKt,^3}Ct|D`\DʿHtI@IIJsKtLtMM4@4\UxHW Lt0 p|uA|^]~]܀ (^ ǁS5W@KO@\5Z<]_^_3@1mE0bD9T0 9vdH#I4yeJ+YtfL/7H& 0r`NHd J&.r%PDH R% @DjtTN@TKhckA,z 0ZRċ@%lb"{xAa,y 1Rʎ%K%g^ @)"i$KR@%o?iɚ3w|xɗ7z1bG5 } 䲪 #bΎ/A[bxa*XR XPHA0;KNÝt!N(ho"Ǒz :H( "^hb֞D F@  L AR2qC x`2)B &B7 s:[F}H%# LaRb !050h $&(TQq8 ,"ȀȁSHUDUYi %l8*h[sA`PBcB`\q5$D؁w 4h ~"%gLYdB-csA=]uH |~ AT0=.65S6xMDmu>Rg)蝍>ڻmV%Eꨥcꬵޚk첯~h=^I.IѶ垛s޻Ip  ')n)Kz x 6LsFPb+2r-@ QWuGr@![:A-Uh q9Ki'!ǻ>A? 域Mw%L '0g* 6 z H0(Yy80hN%QqLP#@DZ Ue$*xV$IR0!p7B-@(I38d4!e,kU~(pwE)[_>y'-LAn ͏ iep@,[ZMfG`E  ZtrqxB"0P@+<@p!$HIb9K L^>:HI/" ndFA0 ]$!<L SS Qfp+%e+_ypPIeV d@Qe3ykZFespf;gjln^0`:щYhy7iA ө*6 LkӜtEiR{ԡF5O=jUӰ.5_Xz֠5w\׫_Fe^n]dS֎vmoC]nrvvMlΚ$$ /Xow\10 ءpc$xOx9c%߱!E^T<#7Lr%(8ig#DTs?:Fv=AG:ҋ <Qԩ^u_Yֹua^viW^(}Cozd=so|w\|q>xgq7c|'x_^p|-yMwVOЂ)ņzl9Ѭ!DCc]e{]Y}h;: &7Ivٟ)NC^"# 0#-U2NAU}S*K f;rR FA'+T[~Oj pJ4Fد&E/0*P;<2CKPFW&M_PagbsPjP"P P m P .{P  P ǐ  P א Pon@ "d@q@ ZI1y8pnF"J g$ R`b@~ P`` @',R8DKHhGTҨcvJ78@.BiSH``ʓ8 bݮP1a1"0@ L hL@dh%o N` "aQQ R  !R!T엺ri(VKqL2~`(` 1`q"bP ..S /Oj:ϪD!n `ʪDb= HK'o$%8)u* >/-O N ,x!d:SE & Aq -,ma"*Hhd ;F$ L1M '5 3a3W@(4a*OFS%R5! 5K5cf6Q36oSXsr*GHLJG"'5u@@aL" :!3 A$ A*`B";"9 9`> $,3"3$D>1>?s?#9  & : d BAE)#$!B="0! TB%"B >AA"64@Q53%jOTh$"^I9L9A!H3BaJ:E=a3>DųBB ?` AB" ;'HT S>CDBI BAMMABSL!KTTO"@DeP1bN4EWB :`B%HC%z@$"SD=ISRCBS"TG@C??a4z V#bHRuS;<#jsudJ"` N24H'B\d4`4 OL'u.D!$aLA N9`T;^ Oӫft]uaA6O 4_q ACC`Hb36E L6A_!A_@;5v%(DBLU#bbuZNBJ;{LO)L ^'$ATZ3Y >3%9[usA"Wy{ BEw@v"&Y7M/wdt15` :/ :soɕ /] bN5^C ^TJ!>#Ɠ]1V 4rr `KCT#D;bJXu" dvB;Ԅq5~>)wkX_'wt7 NM4$ ft%4SS6 q]UԔHHۀ$A5=+iqu3a_r4^EvCAqAgZ{ b , v@Sdw o >PJt3\ !B sd [Ieu5y%L@Y TcYyE@>$"IEdWB"#9OfyS?3[=,GBDuv&9"̤!cGZ$;}Ґ[7ڒ,u2$:zoz>ڧ&7驧ߒ$9ף ZA2! r Zƚ$]trA f8"xA!uw \ :Mun+y=x(Z vA"4#  x XxA̓$ 2;"( t!,za/ ssEuӪsaHbA"L@O {ᶝRۮ |!% V{s .!Bx h tz[ za;⩟;ޢ;$6üC{a9" { *{YQg-!;#{z ` H w dSmsțzEe#Xaھ:{ћ%v:O[ D#"X z!O`Z;g@ȏ\$|6ף {%w vY!OuM 躶yÿ:9:_Q\9 Ћk$Jl?BUs駧]ڧګگ۳]۷ۻۿ]ǝӝ 9؇݋:e\]ߝ;C姧 ၐ}] &j!!n!~^!#R"`AA"P%a! B3!P^R!s>"am!l!R @ ~ P@H@Ѐv .@n `^>.vJ 6 d ~ n=53mz>> b`A"!B^V$ AAG0-Gc #bAS4Ra'BT?Ӯo Ѐ. ? Ѐ隀 0 g€ր س<,bdx6lâ {Ç+h6<2ʕ,[ܐd&cΔĒ/mN)Aٰ`@XceCN#bSXaՓF*etKZm9< nBª >8;~ 9ɔ+[9͜;{v̸p2g)3Q8XƩ`!N,UeɒN̘$Hː%m¶W_F\K3ar-tĈR ;ժdƒzph [Db1 f0ps"[jг yuk@Fkp` V @C_̰c! Ek| 6~28Vaܡو6A4jc;ޘAΨVt0 aбyQ[E~ ` 6!w0$RR9I_9f(Y|x &F(&aY> iNJi7oP-$f",- %*ٲfؤ"2$gX2ELuȈ++$BR]"Wz=;3`D1yF0F\q"'QVa( [d`D~kIj x  vLt'ZtpPb ٰUpECwذyyA2ХZcB)规~b( 3vq#L1\Ewl((K2Ֆ^uZouF0$j c&P\ahjpjfGvݪ+jmC+d2$N6f b0)^atD3Gn 1ЄP,$ C6(HBz3!AI18ACTl}w!i so埯?fXdDje%f0`44ڏE P#0'6&K`vm,l _8Y1\;"Dc&jQ7@-ni(*(C;UbVq #iTq5U4)E t2g3i`M0V#t``8a0kJ`0h8 > ~: |PCNم SLT%NTZ+ r)F2UfJ3tBQd2/&=N]˻%%SfTtsL':'vF Z{Pd'҂O2a_,AZP3ɠ?ACrzE/P4=yȐt$-IOҔ5XK_ Әt4MoӜt`P a\Lnr(Cs`=Lu10m P)` F @30& A p \fEL җN6`0N4`d3V4hHK3A)BЁ 4F0:@TP!Z3tG)WZ֒2h# ArZlk{n]a\~;Ĝ6 5;Ё6as$5WM#6Ln~G|(H `@ ]،G`.@ (B"!xG^H<3K0k Tշ CA &0hL P hV3bڼ6?{k90Pn- v غOpɍG~!Arn*%0 Ѓ=chx?zzƬ#elz͎@$K*xK?!7[0D2e۫]$L'cCX! _Bl $8vZږd{00B^G [A`7 ,* ]#Y=,x!kcz>vdBV_`d'uJT7}A(QqC\YN(W5GYV[_aUaih]m6)ToHuhTfyf\I a l@xxWsT`@}Z@5Xf"gPW\XYYUuEZ[`[eE[%)X\r<&pQ_)0C@&PFp]TThE}uv4_e]إ]]XQ 0P[6_c;qb(qeW;PXV4``xN aYt0aabIb&:)b-YaBc66q\wd&g&flfLIpkni;hy;68WQYP!pZx(gvk`[pj5dB|VG@<nSZ[|Tj~mexgyWyGyfʢiylz{'wzzz{qG')iڧ7)Q̶皍\?0a]Z؀}X3*lU0`"*~G~V:,-d6)h3zs-F40Pjp&aӺz *Ȃhȁ"b%x)hh )"c49ڃ̷:KùN_@49PKVP( KIɆ+N #KTK';[Dž-&1;*K,B֘8+;BH1p5BHdYHYPk5x[ZXȋ];.4mD;ijsB荄X_^\x^ogp^B2&I"W 9A{/)aa &b(V%b "))1cz^5Yd4;6KǫmKٔe[p>(V)fdi]\){t֞Lp)DpI@d Z=*ej(_Yjjj9lp9)mӦAa,$!NVO20 i{) mPwm LK> dh6ÉkAYs 'AW*r.ןWt JB:BDGsttNĊ!LQ7n@e"jlFMwKڤO }BEоpkgy7Q{@0zxzwNz'{j{0{uʇ ˿'ר7w|lq s5q\OPUVX&  :Wۇʫz8~ט%`'@s`Wю:&ǀՊ\ϘJ㺁򚮅a(() cQ‹5d5*O PpH{KMX$څ&5S EݹkIB"5Pd5†1VSԊ[ BaM[E-䈏AeT(]$\u> XB;4`ⴗƇe}ȼO|틺B@ zB֎nTp rMuvKy M׷_;H̸^: }˹d* dɭ˽ד Yc[$ њ1ݷ˒{c»3C WNi ! Zi0`Vy\MǽbI\g拾˾{+m˘iGi9LklYlܚ,MBqTU]W=&*;0b͜ o4L)9Ío CMחKĊSy^T V<'r8p\ q^̠7"FAWgFJuN:.]s0ǴZAvnf̤N_?lX.ɔ,]ɣɥܦyʸʅ\5,ˀzˆʒ~<4.1ڃ.T.Ҭ]z+m2 [} lιZz~abG,>Q %1N6- Ӄ!ӆA6 g9eWHy֗!+t?/N+l]CN>NHSTEOT,YdzQ bT%_f_m6u BƉ׆؍1أQˊ]{Rؠu]}kKh[)[~hQdOThoҚMJ(HhۇێۑܖG}b-OcY)cɺ!9mލ?Q 73*͔ݼ+׌Gԋglkg{黾v KV1 /x$AQDxC=JqD"lqH QfG@Trb̐#KL9T)B7s. Lx1B!8!q"Zm"LJmܷuFtᔻ}X-_yF,AGY@ҁ (E _9b( FDFptЦD! 8IOX'^F9e +AԭcK 1n~t}. (R"in<;L>C lH !jɬLk9 7C?1DG|a"2!@# &0` B,xRءrc~#0"#HvH zK0qHV0dTͷA;%s>.X(s O=07 Ed` + 7 뺐ˏVYE-VUH.xG>y#8Ad3@I :A2}u?Vkܥ_!?w-@ sKr<py_H$#!Z ?o_`Y7; O_2?z1 $ ԤR{g,H>s7O}wADD0qCCpAdA  G#Vn`laAQp@ *!`Z>d JNv dW/v`!@ VIJ񒙴3 A`Y`S`3 IɨZ FC+ rAieDB4{=+vӛTvP7&( I5H[0t`%(.)IFhZ&I z*AGTi$#lCbQ`#vIQP&ui Nt(TKHM2R)Uo1P}?"xs&:EhB!~-`n 8z҃ LLgt;+R0BD$)̨Fy|4#iHEK@*6JSjC.FRNʍәҴ6Ne{" {ӟ5(T>RA(pr#Mu*+q{sxƵ]nډZUg"?"KL`=!ǵcMRC`l\~:`P-+btI0" t@v 7Dwa OE-`.CJURuDrr55B`n+~Wշ2(PE1#Fqqc2ﱏ yDv|~IKbdD~GE*e-SV2<%BjyKG4%b~LW~GN4BruCeP{Gdlz*PޠU(((@@XR Xxx Z  D0P >70|KX! ˆ7Ɠ T #y# ʶ,r+ 2 2 P p ,)%Ax+ >d0,ؒR(2a--qܺQ3S.0!!0.1."1@bĂ)7/ӯ:/0iF70; ?9@BLIE0Hi ˰L0OSFH<WyB <1T뵿Lj@~Ļ9Ah+nA ,k/oq!sѣ3sx6|ї뛳*;IC)48!14F@4yDdڴY+šX |9}1T;[y&R 8; : U:; a= !;OxQKTR%,5>;åx6& &cc&gKzQ8T; t8vҞ0+0GaԌk@:z B srpU*AZU)ǞQlB҉Ҭ\T(„lοFE8*ذ CvE ;hD C"} J-`DD CDJX "PD:Td]ԏYkW(LEHPxوF%1ևc/2Yh$0C0ncG1G@GmTp|u;GQcG9mmOQH"HcãgЂ@B=J?ɿ`\!?;J̙,4䙨\ʅ9 JվLK&KhJԵ([m;[{i[1-2ZKMU̐ФNd5e^EUhŝ)NԷb Y5e8eQdHxȌ1"eNݔЃ1 HЉ5PЫ!z:  ./C u!n;__ȗ_KhλC%X   9 (`#;£s% R*{09$5mC6%<%=>8=0>;[S%SU?;T؏Ј0""W r d0"P||'7?HKE̔ 0a)UYUZ|]@՛ A0AJedӎlYKVN`?s¶2mQ>J( 3ME{ο:tW f=0X2:|B D?WX9XD,XymDzbXעD%hMLN䭅-Q9!:I.gsip3œMYI6(Y̠ /P6z2Yx/]%M%h|~FMGeZ r0lQ%X(ƣ:&5"[1F 4>>L3\5ʷ@ʫܦ U\۶\ܝҽJKTdC%yÖq_X)P3LVv.Y'I0P%~p PP:к`뽷`уPaza®qjL%6Uz&&-HIdHc) 33 5"9q9c69v:dc`Ss@Une*> 9:;<=>?@A'B7CGDWEgFs"F #-U e~:80坲2`Z cfX8VjfUWf[u)uj~՚u`f%ְdmUgCtXRiO, msĻ(w>ϺKhmI4DKMXXwTW.Ki2jN8P)TpTͯ9 ko#yg4y=lFFvڬ}kkںy )NaǝEd'_0hll^/r)4#@`33mkm}\&4>4N4dv]ĴNݫs{ݡ^L$zG| g|9ƇYȧy| k[7`W(}& p ma/Fѭ (gim(l?꧈"qUBPYBqC&~^^s$>brLr/71?>{S/%=1=Es=YC7xH\~THzvpԾ 8>Bu] DeUnz@x@fPfXTg^Z݉[^_ՅUa)bob"hX~DXfvrvsP:$h%Ew8p G% ~~t FwCs7QRlwUDxGؒVH{XOT ȁq~bZUdń_x(EY m! Pϒyfm^j6.jik?GNZgXq0_ZG&P%s2…W0[Ǿ ؁#zV@n#:mnIA;'n\㶾^]~| ռ|~O~|~O~|~O~|~O~|~O~G8l(h „ 2l!Ĉ'Rh"ƌ7r#Ȑ9($ʔ*Wl%̘2gҬi&Μ:w'РB|!,8H*|ѡ&ZŋZ@tpc 5:PУɓ(S\ɲ˗0cʜI͛8sɳϟ@ JQ*^tTF!_ׯ`ÊKٳhӪ],+!VtPC FѶǐ#KL˘O^EnJb`cI0AY:0۸sͻo*8hb PKL%"9PLHËO~2O"/AI7X(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬs p c뮾͠,l0|&kк ܡV;Ynp XimP5< E.6QGk,pP x`M54&THrA #pQm,'İr0ršx4+ k2s<@-DmHV3hR3 ;'m5:2L1,-}W L+RK1 Cbͨ& 0g;xjhu"T: L-NG.Wngo&(C # ؛^&"%(S鰛)1lB>f&&$b@\2HI0( bK02_0@4 ' !@#A!/ l(L W0! i@C81@ \bȡ#$hHaЀ.0&2?". &:!!H*X cG\23IT p ֈ!:Nrx $HBL"F:򑐌$|%PJ4c'eJHzr,*W21L%*IZr'ɛ'$ -IbȜ)?L3rĄe3Wvr$5wHY2 g$sIpz'P "FP@cLkcX>7NKMK~9dOӖsP]Z.Y4 YMN^?fNvJ\3}ZQZ\IG-K .JWMw IJԼ?M5ɦ"ZH^ՖVU~5Kdȧu0td":Ҳ颙u*ISZ͒t%5=r'Dm(dKMK\5m'rre,tKꊳDB*1 K`}u񚷯|8q!qCxmP GN(OW0gN8Ϲw@ЇNHOҗ;PԧN[XϺַ{`NhOpNxϻw l^߭fAGNp[M -@ O4th %L~GOқOWֻgOϽwOO;ЏO[Ͼ{>sG_D wA6aG_nIo~!<Ai'S  H6!XSK%e$X&x(*,؂.0284X6x8:<؃>@B8DXFxHJL؄NPR8TXVxXZ\؅^`b8dXfxhjl؆n"` >6;2U1X H0"pzX#~D6`: E`BP>p3C6P]#@(0J"A@C?0A`7@?}֋<2_8Xxؘڸ؍8Xx蘎긎؎8Xx؏9Yy ِ9Yyّ "9$Y&y2 $ / =k3 :2) E `q>ٔA2y& f^`3?)p mbi& plp mijr  wI &! 9  c)T W  Pp9Yyyd d隲)!y  BI )ЛŹcΩYqd)ٌ99G㙞_ÞՁé0x I]N@gZ9ɂiF ZWY% Z;U~1Й{*j *O** ~ZF ,M ':G5ڢ8JL#*;*we9:ԣa9 k=ANH/JQ eJ}B\%GH꣮w_#\Z^zZַ1z5f4TʦGsԡě7_\ ~:^f5VǧS<7^ʚj]:kt) kj^v:j}jHŔеH*9I:ZKʚIzʠrQ4 2A$_Ӫ!IعժHzHZ):[z{Ztz ?B df"JЊHFmٯٰR ı*e7 [H ˨zޚHفHȮfMG3{ X@;G*gz~/ 凡+ _# kYgjY[]ۧ_;GZp;Ŷ&[Hn+pHT;zJ˳M~RK6tkڪ[N;GH[HZLB Rj乎?ǛHdjH _iֺdv[.t%;gdI{52YzH˻:J:灎HH1 +z[6 {Z$:; >gdhLڬKCk~JھJe4T) ^KH"  tڹi$Z8K>; oʛvHKS}ʪr!4=\{#\׼d \1B" Pdr H 10B7=0`-ĵxa:DX-@ArPq5Ё%{]Nc/:؆~ @nFPo֥7 A_ V@` ; cz0* +ݥAt@ xPG(7LH; pr@(B@* ZB)yvLoZb p3`ᑢD&RъX #B @ " _ <8̱|A TָǹJr_qC$9 ElDWT`L;T Ģt\GUu_R'wp +$ x0/|a D%_qW9M T.3.(<7]tW#R5NwzP/+_8%B։ D^ :V!Eޙ EE H)JWRH:0Lҙ8MMMsӞ*;PJTHMRrԥ:Em*TJ՛X*gծz2%XǚVhYֶgn\o׹: ^WԵ S*6(\%b2hX#Kޅͬfgz>,hGKڂiSZîkcK[:ֲms[%lkKܶȭq\.ЍjgK]N5u]N6 oKޖ5s^묷}{K_̷ }_췿L`ל7-р LLͅ3l vCLb|(>ʉS<80ЋcLc͸8NЍs~@QWRB"HN&;WL*[Xβ.{`L1?̕`$ڒ N$pN#‚GXBu徲Gpi&B ;oLLB&#&MJ[Ҙδ7N{ӠGMRԨNWVOZ,g%2 JĝbG&>kB4=[k2ihy&4! y͙0KAk;,DX]ngcb#2 06m J@aθX2`'`1v{} `Oij3J$$,JzkBހ6g= (ίy: Kr8+Drs8!=BsADq$:!.tVFUS `A"%00X`. .X+H_!X0[?6@rkdv7`g"PByh@;1ȏ_fWp-w;HBRPBx Y :!gȍ1 n<zG!t$4MPG> 3?D3$D&+菱w?D5`8y:ɓ> D$hJ,HiBYz5m .d c[c>a$JPJ*#GK`1a7id )@WuN3rGN䂉əȘ_1 h-!/)? }f/R, uQuqzD=9ɹmQ45t) ^!!,b_t01XȰÇBPŋxȱXBxy1ɓ(S\ɲ˗0cʜI͛8*AdG%o  ` *ؐ#(Q;`0ϳh]˶۷ppF&AkرeȀ-'@"CN,sFB(&r9A&p0hS˺װc@Fx{1hҦ1@$,X\""in0q#I@J|l@̪[;_G1/5lt< Q5<@`dq#A9ןE^|v > x@pxE 0L ``m '.TT6G-@0|鐆ꅨ\vc]*h_]CHI% >ȐXQY=уy矀*蠄j衈&袌6裐F*!v@W|я gbQjꩨڄE@ 5ZtUYMj ;d 0@ &aC&PǑI(_b qYFXkvfGG&ĞqCf*F C bDJ1Zi6p+q15Eugѝ T܀~ @QJP:8b8Z#(f'G? +n&r aF} E6,[!7+) s Fcy03 HL ;0Z0 <9edG.chTũG, .褗n騧ꬷzPt`E7BuЃ_.SEAŀ 1@|PKpEJtcp6Xo?Ds` Q(L/|`8= ( 80# (2 & 7@(`~  Z3,A^2nHfaaE =ta9 t(ah h &CaVB#pVB!^E3#=BЃ"`MA`) =$h7@M)nG>B`^򆀁RL E.h4 `6f&%' p`]Hv,I~%~00.8n.*Lc@5MLh@&'L:v&2/^ ;ukˤ7/ jzQI]EHD'S,`đG(` 'xia"d]kHx%> ӆhPzy/!Aw/ҮЇ?β'-{`L22C5fI`Dh(xfT>*]~`@.AЈNF;{A@$Db447+@!9dgN'T`PsĄҩg->QF  jThQ‰G`N$ζn{MrNvMzη~7O;#ـ7P[ϸ7oGN(D+v wmapז-lqp|,OЇN:җ;8`N[E!,+H*\ȰÇ#JHŋ3jȱǏ CIɓ(SԃE=*cʜI͛8sɳϟ@B4fH*]ʴӧPJ4 ?fʵׯ`ÊKR# ,c۷pʝK.,`c߿ L8 ^̸ǐ#KL˘3k̹ϠCMӨS^ͺɶ۸s/ NxG6μXC{HË{5ɫ_Ͼ˟OϿ(h `0L-632LzfᆍSo r($3("A,XPh8<@)DiHG-* o&i#` %M/Pd!\*4)p9 nR%bV)|֧ 2(¥6f& *bL-&Ԃ o*j饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+kl=@#6E@VPI[v{Pz+=@40y֕4 {ꂻP9 宻!,K\W1oyf| (b\2˿|0lG.NK C$3+1;l2'1Xg5[-`1Q{\&< @0tI}j.K+䂴<}<؄ 8/^0r@YM0WpAx_>đǔz{.X<r/p-<\</"mTw=)[ϛ%35c{|׃3gxdϟ^> @@>7z F)*~ңADyʼ=a 3HF > k{r0sY fB,g3aW @ i!kbqP G:EX̢;ybA ߲Eh$\ Ϙ6,}nHG]r>Z}&&Q L")uȏ|#IJZrw ǩLJ KL*CxD%YT6%.w^b\&٦IrД%*AHK)ՓLBr8߲LR&6a T?f#)q̧NBGG~N @zz1z>$Bcx=[F2x1bc(͒C) c$h1YQns MNh#x 1 A44#F-`8eb[ZF՟ cTb+t)X V+նlNY6Lx8„T͉ $g"x _/42@}O0R1%XB xDhW [E*A0Væ pKMr:ЍtKZͮvz rAm@51W.؆K߶H-}! LN;'L [ΰ7{ GL(NW0gL8αw@L"HN&;PL*[Xβ.{`L2hN3d3HAR8/\@ 73 )4r@LKѐ'MJ[Ҙδ7N{ӠGMRԨNWVհgMZָεw^MbNf;ЎMj7MA= an[9md܏nȷýq+Em7m~lSp`2+vHAM8AbQ8Ip[ϸ7{ GN(OW0gN8Ϲw@ЇNHOҗ;PԧN[XϺַ{`NhOpNxϻOO;񐏼'O[ϼ7{GOқOWֻgO{|:7ywOO;ЏO?Îhqw8,I?7?5\Ia$p=/Z ypp@%@5@` 5 pp!(&ȁӂ*x &-8T"s>2a$ 0    ؀6\ ' 6sr'dȃ p& 0fo Zp}BuM`SvG0 0px 'x-Ȇ3 r H7x3xH@Hp`PH1.،Z`a`&(1X@hR޷~W   x 1 ؆@~v hy(&ȂوhsyҐ(ُ8؃ 6I,y IYЊ )@py `((  `6 =Ђ PwZlp0@ 1> @tih3xdyQZ pȗ[ cF ~ Є` Y IӁЁkh3 Љ7  ؁}H 0 cXYu08V 1Yai){Y6ӟ GĠzXCf RM< N yr(  6b*:;ʡq7`b2/ N A zsc7/ < DJ%NO  \ l . 6eaYzx[4%*@b  B;N E PyZz{0@g 'j0 6 [=  P zz嗩 pG66x)`SZzIzOy2qaӺܚFպ`:Zz蚮꺮ڮ:Zzگ:4P{ ۰;[{۱ G"{(*,۲.0 K p . r (Ű y _"_L ( {FPky b{ I[g[dV08JrK{2jд(`{uJf`}(0"h@;4Je ˠ EZb `( [&P 6&г LR `aP8{6k0`@]{VF@k |F`h|@c+f 2  `;P[cjk"$`)P۾H0` Vkb| " 33й `V`3`˰J[pXp R   =[   'E 'HPjLa0PM |pp{`]Kt  P Z]z<h| `,f{lMVp` {?` ʞ # ] y@aP{[ hF Ŝ}MҮ- -;c0b k`fpML{```w@#k[  p & L2 +,0,Qʫm$` @|ڋhE,PEjū)z`;fgk.mr K6> \kZlPUݗ +('& \k ӽn/K,[p^ F|~>^ح*P$D@y9sE2;fG0wP?@%)6 7@,S pꩾP 봎A2Fx%? rX$2G#p14@+Hh9 7 )sپN5>T#?(8`9P%;LLix%.@bX2C`00,d:*PCp+CDbQlW /T.o05=P=@va; g%O 0bSi2`'F0v gEPE7`D C60o?\`/d7cq?uO5p6N#}WBEF;o&P$`:),P=<2r(^P<OL0/pP.FP0M?1`]N$/oD*#+#Jp߬K0,?QA`7*RC.dÆ8l@Ï!5nl(s YR =8.|K1e΄jJ4uOA%ZQI.eQSQNZժ>8eWaŎ% Uiծe[k[]y_*Uظ/fq⹂%O\e̙5oHgСE&92gԩUfk\xliܹuioj!CCs@qƏ)M~ > ((,`v=| ؕ-B۾n@ 4ЪTp~r H`(P!,*DDL(=JȂCET!Z|/~LXd rsL2d,A3m:8h!69P>f,k#`X t@"H8#tP:(+:S4pO@=MEu/8A<)b"$na #Xt*R15vX$X$ RY"(0.@¹4nؐe'a l9p0Oڢ2 R!@on%Yuu/!j&l9ءY38Xc7X-aʉyd A6afP [@T/*At4vb*=`9\Eݠ!@j8"lu pn:{o$zSJ(z " C@.+(# †(J >rsd`в*#&> '  h7]{n~4&x޲+ؚm䣗~Nsz~{^n74W}wϗ~~G ~$`UWч!YNsEL'>vSG< !O]"HPP/1#lG @(V!BPY8"0:QrC%HF4|ءHzA`  ^0` %ZYa xKC4:Oz5( ucIԢHM*pcT}遜zp%&TBEe|$'*)zVէMj[Usk&u+k||k29Б ޅOI e U䕧{ki96~E-n^(CbBĐKьjt#Q}-ԋ%ʑVet F8JNtY YGD@P2]GRwʓ!ȗj/,?KJZR٪FjZW& !`X] !XLX[E׸utWJaR`z1L0BCxf 1`8&1o nj͛,8PNt'ЄF4!-$'R7A$ 2&R pZqw#QrphY4z:}TrFLD,:rsnV)[j h>bZ^h!lf!50J@iP;5&uMO0T9u2`z̫uum Zfu}\ӤZmk!Cw*$dCe&`+¼l[3RbcO̺8z>QF"r;*duj;\Z䢡t%wũwi7.K7TcyEE*? RzCj/e#;J*zKV˽˚ݙ)F^a+J97]sm?wOe4StM8g͙r&iQgӳ/.t^bZC%:L\2'm7UtA@\ ۋ $9ቜ8Íhi[kl  ,:A3 ԫ( ԋd@@J lzˡ{2}"ܢ3C$8j"~ "S/ #&\ýaB6.9"9=2/*Z$K=L*/뽤h?Ć* s K I;6), +8=#H"DGGǍɁGI|tA8ȰdY#>4@J@J  E l%Q +ĝ::DPjtHDK`JKːJKKL,skȳlAC-R܊Ԍ,J>h舁#x @1Hͯ2 | Ǫ f I@Np PA:tė܋R̄LH LزDLt!`HjJpOsL%<ȸ`0pM%xË7$,ڌ.PxiJ80I!'$PPP229Nx’BB77PB})ʋ1<2FtL)]Ƞ&0-tY88%.82H ؁806 `pH (PS6mzR../0(Гs78b/:D£T9İB\uD`ĵĉIT$JUPD?b䈷χՍDa $ DDb%MH,&@%h%P.؏,#PkSSk8hl PSx͆M:pX(Nx{0WE :[0fɺƌ0bD0dX(;)Y܈P"wUT 2!xeS>׀؂-D]S]vԧq 'H3xFñjԱk&FƬpG=z;[v|UڄG #HDXߩD: ;OʴDȰX>I8 #/UTSP=2 /!]#8]e) d37գ@sN[ "TR&sĻ\\]c@V??Ȕ\Ae8d (1Q=P.A} PI m=ua@.U TT "Ȱ..{F81B+ uV%mR4tT84nhGہ"p8S25SZuS89;m>? T"B=Ԯ]ThTԅTJ^7CNuC# K/9BD9V/W$XUZ%bcex+V$,P^ŋU^bP]=i P#ЂZ|EPWvuׄWz{5|WWg XFX䅐dr؅X印X[ŏŐF;cL&d\1uY) ڢZUZ9}ڨSZVlZe)۲=[S[u[[5ŻnL'G$''#{2C\'sȏ)_\ m`bF^ ̠]ܽ -fe^i^^}_1_Hl_xH+qmԳc_`o^LooGcB& ^>~tfa.o >s4KLs6ol'bպDm/#e=lsAtBϘ@/tDOtܨcsLGOAPdFnXplltTqdP 6SNgxtNE FHHIXfnQٻfՒj>gpPf _ fQ55v]Qv"w# P{|±h{ug-&g*$Rh"qK]/xhie1-3h8i-N%6TDmvH IT=$LmNCPi>Z>,բTUEjRjDdu3xkz(.VVNV%M nWz{ ig!l.؃rO$VʞXnlE:\:%wE#maċ=Ն~Y?|m&ڪZ?nþڰmitffFNm۷[۹ [ <. ӻPG)[oooB| _ZpL-p !$q[A2ڨBRv& d8`d^CT!Eq-@D$ ê֚}Ä(DڐT B 6twb '`CvkRȤb$0XD;`1\Exn1  Pw,R/  l0iORDЄ 4;t2˕\7㜳;U #x 0LBCD\b fU D H 50 VcFtYyޠ xԲ'PQ$:T)/9<3aB$`'n/,Á]yVD(E<(b# ZZ`[W| @6G0׀=0!<_磟D~`4"=XI^2}PD|@6 {x}CRP1OBh EZ8)(!Wa`lY$OF *@,c4Y0L= X 6V@Ƞ2O 1 >v)n$knЃ 2aJJ` Ć>A &C"2\$#Z0$%+y>Xr_p$';O2%)KiS2\%+[W2%-ki[2%/{_3BАRЂ2– y<6+Rͭ 3y?Ge юxfvgr9E<P,,'M>5wJ&%ڔBgd!(F5A")Iy&HK0MjXx$IR U !;iC㘎|yu/G1d!ԒdQ hA Z{Hbr! ,~wBf Hp` =T@As"6&^ dGe @laLA! ,h@*\ȰÇ#JHE/jȱǏ C8Pɓ(SDɲˈ4(d͛8sRJ@NУH*]:OPYJ0bͨXj:)ׯA)`Ӫ]˶[(h ۻx{2\N LÈ+^̸ǐ#KL˘3+ϠCMӨS?,wװc˞MЬ@ͻ GZBȓ+_μ(8سg@ݮËW꼼Ͼ˟OϿFDG ]l1`p CzJ4f̀ lph(,0r8 8bl;а l C x("y_VVwl YnA!`lCd"_e'p` Fd A5n' fh衈&3(|0fc1abNF  SHV"aAaܱcX "1 6"Ka cvbP# _{Ƞ dpk攇 4AI 2tpeT0?b=6q h8 6zp6 40(nM[dž{|qXyrPsuԋ Daǿ BQёyp ua5"Ax`8 "lkx"FtD+ùn p6^Qz1Vq._g]Px}S,TCe ~kbhV 0(G#5:c 5;Y7i0M䧢 sxGj!` HL1/h~3$/@ Р*P @0#,!f@V @3`T@L@@Z|FpPP3'3  (! Jx@0\H8 hD HtJ 0`T&(xȁA d.2XY+Z?؁ `)JX ` eB`T`+@CdP 1=V88* v0 Ӵep`7(v刃 &$A-`Fxfe(PXhBY2\A8[& 7@X NW(!| A%-P5 ؠ)lL2@ # :&|;񐏼'O[ki[jWCvc2DѤʁUrvXzCa`pWzRte.gY[Nk63! d0Ѓ6x C|@TѯE3ю~!R$e4 FF#URFn15SS"mAmPglooqWuUJx%}eKR\~X4GXwEWp1*:ׁ|q\ɵ\%]$Ex]Ul]_w{:\^8{X_C`ɗ$t{a!#%_(b0b.cavxxz|؇~y3TCC@ ivJ`T/aBcHH&n[d8QVv~g)xq4Gl0|}*{mkaQQ'T;0R!HJpB U@ "^&%TTxt(Y Auy XnƦ70"j)ӕWtlZH?H ]<@@&JEjE Y'Y@z/9YJaZ-qs+),YE\jB\ ڟI]e`C aa"Bbp#G6pEVĆ& ]\va b[u=RZ ِ/wB4TP_thX'jXmxb)fqb/H9ZzzihCeђH-2)#ѨV6d$3;iX> M$nAaaV$8 {gGrDGvGkTBhh$ZFo$^v)fyԗ`)WdvDkEY4Y+GN&mQ5F鮷IA ՛5QGOdឳ*n>Tc$oxTl $U>oƆNIVt՟Z5R-:M"7Y%wYY-ZF'jZr0j4Q6\8]:ʠJأZ jZumueg'[B:>Fv#wIaЦepxj1"fyZbrاth۸ꩣa(gXaMZx9'I R/0fjq ZFg*hj*HA+H"ڔ4I\Aii}Iʭ)GSr4zk߄,WNĮ/!@R aF~P7W;h@ ۰F;hEɘB`p6'Jy+-+J{+8YEY&)g6.1[>$,.=C=pQ;EXţ@ڐŏxۦ5e{[ k iG: >w Fkxo1&|ȈȊȌ@+AfEeJGN*q6 I- Hw{aDDA)aviڻ'p;|§a6j;ɚ$(|zɗQGF$J+}{Gl@,!kD@TpJeLX/pB6)\lrK 0fV%'|WW'JXc!k:@Dd<B4W/%`j(ps&`EMV[J[90E\j͏QSkDKxJGx'[!we9.I"@m{۷qa|tGaj|u LȕȮڰ۲=۴ yE,G1/Ѩ'Mlʱ<Fd\J4H˨+lEXD.v Wz@PЭ`=Ȗ/qpgz{QHJI͍a}Mkm}s<ޮ~MJM)kAr+VeEϤ PUp {CO< "~x F𝻱S-,}+;-#[Ӑq.MUTIӌr(,0؂#0s7Z7J90#H:-J̃$S#֐־E1 O崍DGX];x%g)af̥Wd$ބd\qduzE漵IRa iǃͧ']@1p!-\O:C>DcFEq{tg罫1"{VgOtIN4K5;kkkٳq/9l2OO&P!LTQ7n:lT$}qFneWN̠CMӨS^ͺװc˞M۸sͻ NclX˖C"=N?M@O.AֶcOTK˟Oz$,7a-(I$wՄGF(`T&5&7 ($h(,0(4hnh3$#ϘpD ʎY˒ #TVikc"Y:L-R^)dd" +<3^2eti'_&Dm& üR̜wjX-Yɞ&DI(Vj饘f馜v駠*ꨤjꄶ ˩)ꬴ"*lR뮼 %*C&/ &0+Vkfv+.C ͤ㦫nk4 +h Le=\4Í,'p_IB( G,WlgwI1 4H(o&L#.),CR@ [̬ A!@,PC;LX!~PG-5 4[ $>=Ts-dP`pfxkހ7݁n8s׭7㐃w;>8ߋG3nԟmY+Or@ %zc>8Sg>>ߍ_N/᫧]eK.7 C)j W?xW69}ڏo}/>֣O?}ϟMx+J5|)\Տ#a+ ~ ЊX82A+(\$' !aA1j+| u!㒘$_F%ƱsD/N-~]1HB{wLdx@=ɞ"';D&7N&,4"$ IRHL%Vx,gI/rpia\@s&(QV$bwfJNΌ4Y[P 2T"ȄLINfUe0EOӧ+\݂$(@Nm[ ,HU֯MbKQ7ed q$CTql ˶zv-P ~`0^a֎hɠkgU"-`u 8 pK :7EKh@@@u xmChzgsNb|Kͯ~LN;'L [ΰ7{ GL(NW0gL8αw@L"HN&;PL*[Xβ.{`L2hN6ͻDH gFsu{yB g@Wv`g zn'MJ[Ҙδ7N{ӠGMRԨNWVհgMZָεw^MbNf;ЎMj[ڤ<j< Z}$_F+r{it7A366CuE>1785gݻ, pj)փp g ?d c-HS[eiE@^k/+~pOk]AP 4A}NHOҗ;PԧN[XϺַ{`NhOpNxϻOO;G G&xA:0#0P'@9Jx@0dp,g4D&}γ d<hY2G( 0 LPc m@ 1 `ہ xx ! 7>T ъz'y00n@`G&0`G5}I{28H=W8}0284X6x8:<؃>@B8DXFxHJL؄NPR8TXVxXZ\؅^`b8dXfxhjl؆npr8tXvxxz|؇~8Xxr  qrv@p RLj& ;* 9"!t&$ y;PoGI@FV Pt(P*7w4~@{B"p|F9)``FQ=P>pq t,/a~') 6P10@`PE8`?X0(PA; :e pH ^P< āSM"**Ё J҇>@CA`7Uڅl3_"PC)J)5WKGoӫ٪IpQq/:5ͺWQ,-Es6:s"P񔋷R@'tz7*:MJ:5ڮL5ʅ5zK5ʯ*u1`oߪTqYR- 8)2lS[RE0ذf6;ˊX#E!47;G/KPD۴RPz㰳dNLFHKtV7X+KZԵG˳Tۄ$ 8"[K*fK*ne+Qka7cEih{; O{ui ` ӷG 5TzyCNض㹐#T y;Ou{ê㰐{7k8{; Nʨ5J7W[b6۸qļ4[I(k85 sCT꽰3M* 8 W˽K 9+7{kÿ'ۿD{7]mY_CλlCc_ 6 _k rvKwþ;l`<<095.x$|‘ۻ&\#´xŴc-DP1pXo53{Go8Y  5Ʀw52jIfԷm u(Wz8O8S,wt8Z\_<ĀԼg;elL *P`8e{8KI`D-d8`P#&$` &pQ2: 3:)03[2J|`({̈v[@%GЏ ;P'C&DdV@צ&@LIpH~M/02+ͤN Ձ7@,л0@g}(B7Ӫcr8+I\8[377E,ܟ]};1`Ӻđ+W\0s5]vˏ"P~]60heP[j t*6@0,ҧ{gmց 0Ks]@Ii"Cۚ7@09s8V}?Pg0{Gш Ϡ'F؁5p$ه(K*4݆JpazuC` -\ cmf켬\p],Rc|8˼ #+m8P\pPCR4Щ "8>ЁZڬ;({pp5ngj) $xɂRCPQ ST~n8 λ7 5 |MLuK5_m Jt*[ԫ82|;pGեf6=d<{B߆n8ʚBbit-W@ y|;&``ˊ "ꦑ p\syG\鍞›,˴`c酳yS.~D.mŢ*ȴ9P1I}.Ԍ%.10|;>{C:"I}8`9Q|Kl.4 {ӍGD@ 04P35= f4Z8A0C8( =AYplz_,-&pQ t>;xe}8tAM(=(ނBGI Z@92O*N?\ z|8Ma8C@" ؄-BG/pZ+eJ9>gA>gAn0s}= ʽ#@Z)j^>Z9\;0)9P$ٟ.,00?s?i{<5{Lꊮ芮@Ef| `lR` koɒLɤǣ%wȵzGzeD)08(`W&`|@2z,_5Q@g'N{{ظסϸg{estޣexEF@:`]~8o2?5+Q/_}cz]7 }ea4(` ag';m" ؄ p|Ryv -{exOێz}Yj~e #0u>d`P5s;ȭ/ ֑aCPCC{Hߧ8> tHyhe;0)|1G`$Z'n%޷O@PG>|K#X Aj-芮.SPV@51pWyn5vyTyyWWrϸ5\vzt-jGh[p P|B)R#Ц|jYL)=NS[0hj=0U0KJWUߓ]hH&|qG)\@:=ނ! ,~33;  ) 'Tdž'4>? XH*@ $!.,H&qC #JHŋ3jȱǏ CIdEv Gp&$A@7 A J$jԤӧPJJՈjʵׯ^rذAV:у$n0k# 'v aCWTrIn&\ǐ#KL˘3k̹ϠCM4hVE}̖pСr"j] Is@4`'~УKkZ7r`8=L F@N(p <GHo(]BS`]a2d %ACa DQG) h(E Vu`+(4Sx<*(@iHZ%dTD&PFYu!9%A5!D"!l9Z 2 XfsJQdIf$x@'nIt*'$`&tBAA(]b)! '12%1!D*Y&$ %0ڪA ISrЉ$p@'@A) #P 5'Ѓ9a ɖ J$@Df,bh$ ϊZ"м~j ʩ g3JN'P#"@'HJʈ 'm&"~!Z+IzQH!Zln(}oEP4t 'ك YwBm!&H&Hi$*އzn&4 @@NTRpH (@'lQ'A^pۈ~-(&D@D!Adj!HR+3Q( A}P3D#7F nI HO)D\$QVhC$E/!  (6Y|d gXRJX `j2I ^pG-JdBQ1`B2 _ X , lK߷~(5Lf(_<-rZδFs91rɕ8$z 1Z:ϰEY1SޜvP#3Yf# /@BQLv*}p,P@ :-/"T )rJ3)JcI.Z'CEJSB9SԦN !H!()s5hٞ"3D6JjPB^YHD<"ʨU<ـT,I#DTp.K ]S,Ohv&w<[$ڛv#} e_K9ulo6$5nKwq$mt $ͮvdݑ`w o+MyCbY/H WI;rVEL`#.,0!=@5Aq8a-A@p"&^`B 1XЁ2A0@FHlHVF\a+>Db5ز@RPVƲI2@уҜer;+Q@a- nUt2`f9B]$h1 & .& P(B p(PAAa "(! s lE{ HwJ?:$(tF dC)F=d+$Ⱦ hA 6H8AOث\W@쭒#Ȁ0 r{1A} H ؂Ƞpd^2V-1~d%Ysh"@/N L3:9IdPIrs85sU@ot .ᛓ0 ^`y" {́t2Bnv@  Kw Pf o|L&_y}1lp"7N؁ hS PDx;EOz4$ ^^sJz w>7;8/@@«!R}SDn.x9iU`U` &0L&Ip/܇jGQ~z@o(sѦz\n wA`{'Ç wɷ Z`>3aghg\A&JvjaE`0I6-dPj!F\@D"gvFaxfhd@!=Ak!L}P# e$ h> ;_pHqn$w%@J "Tu``0R!A% hՋW˜$(it7֦_?dgb 0WfCb1pG4 'c416cuf?0=LVBFdP&gFgZe+v_fAf#fQZ`c)l`)ig7`o`,iJ`FhmCipxi3Pf$' >@&pif@u[F28XPakfkk8)mlFme`VXfa%`i!'05 7q:pa?tBpq@f[p 'pChhH@`y1#  f\OGi0X(f!s@wBGt`ttttA%0 G'2)` Ǚ|71xX`wǑ9}hvww8#@((hHɄ(hx<0y!ه9o^@ù,7zwz7wFs(ډ Irz3[x)6P{vqA]Q ֧+02c7Dk?[<ٚPZ\*~hdE@*`Ba7I&0,XcJЁz"H&qp6;h.?: h0~I0jg'0:GipHVsXH"ڏ& B2 &Qֱ;z&QVflj\2Ɗ9XlGdT0ȨwjhQX![`t!@!O9v\Ɍ@ъQ۱˄HTaf1&۲)k+;.[et0a?w`j_(` 1aRb"XW'aq-@(7 qeIxeuF!-ֵk#`yWT{;P{طye@{"`,h<| BK0(x@$Tɒ.d8U@69g<@)3f*pIi[K99Q dm8;l)mɆmbm7i[Y`symѺKk7WmtVFJ|) }a`eCz(Lkl791oY 5E? | 4tvss?OiIY l9t?ao߉Yq" rQGw@t0(@uy4 Іjq' * ZJ΅Aoa|{y{+ Y`2*{5j{8vx=09YG'a{z td?';`ŧQ#*E0Cp}׻g⡦ T200PuyR`PЧ ˾x)}(zag|5 x%lv|vɢ[ڥ IP/+hLMi!cffł*20@Af}*"Ӻ YڄD=0ѵfarXr1"f;m!d\M'Q >ư2kᅱr=t-4x-^Ĩ,~[{}ׄ][g= g18gd7ej+ؼAŎJ7e]vQl+ej&} q; f]n"IhP)}vTmhϋMAs`@0œ]{QKܰVƼ|96,Ӧޛm^&Q}uwIT֘'s$| }!"R^<_)~C7p9!Np$ƹ*,ܜ"NIta]G%?\M|נR. (y ){ 0 *Acwy^Jb .zq0^NJ{|PѢL</z3h|, -*6f*!%&甊 (Ώj`#8' nNngXC VY ]}6 *>@6qUXHgE 79:KzȇYԕHI}:kiC-&p5w)Evp)<9͖4 !:,.- xz-1[CnuCjyqw,z1m>{ods.qo`J:_% x@a̼1]Z}ͥ 4̋.d!ErcPP%EcGv(ÍB < PYsaĉ/fٓI*Y$ڐT2Kh(-£ !,YDDs 8 h@([]y PƕG9\Qé^)Jx$1D/pa 6nP@ N8 T{n[dbU&ɡa5*x Jgs'|u gW8vŏ'_yg>{ϧ__ot":! R:J+ʀTxCLj*P@ ~ڡb@ 2T)Td+@>G' .:ZzC$ #hb;TP F͸M!b p̶$2{Y  Ѿ1  % ȁ18 NPAl!?,p,/ߎipXbPprV:@"D-\u([(YT` h5h`<86YrZk; 0@!t@"7!B]`Ba:a!@0!jB|W;pXazf&BH"h( Ue࠯>k#`b xh#l&Ƒ;(~zX Wf 0XhHbD-:/Ơ" "Ow!@=~'Y.jP 7|R0 hjo!8*뺙&pH`"(0hb*À% , 8~"O Qpi "j@80"x#] 4%x/ 0 ` '` &Xj̄KF9蚏#HР^P^B֮(8E F0 uL# A"PeBW +/ Ep @ּ&ULB0A0Dv(/Iէ=DjdzJ؁ >E9l0e2BaZ(1 d ʼ / g<Ќ4Ij(=7P؂/p2]b}5g=N#Rw9N:Dg;NxGct"IILqФ*56+咗16Q0d L;NA;`9@(ySJ¶Li1X 8p &+ؒ&- ʐXVʋ^*XP-a]u.,Κ]Ů`NxIh9ra6ZӪ~雩:PJv A V3- lhkȸD 4 n{,/ <'53eqE;ZҖv>-jS+Bծԍk^[lE`jc&wkw$DՅ 4h0(=C#*J`[l5;Z*]ڕ_V` K/Wf,$תh! 75tyV;y%0k\09L87(3g.ͰF$,miBe/ۘ $B x/ڙ "H.@ыB0O/Û=10@>SX#?S"ق\ [z( AAgAWB,2xR2q32ɝ/k2y243+9(73)^I {k(z Zt6O5?3#؁LXB4?F DZ0X (W5x4J K3"]CNS>K Q(\C T_t0"ˠ4(57$P%*#86; %JZ#k[XfҋpM$ `?;QGFڞj9m8=D&{Z7UR8x{%k2 8j}&%88X;& w&{8_(^;9K9ɏ{I,J JJ\J'llJJS:XؐAJXʺK@;K$ 45៫=(<C 3( BQ,bA?Q >]1 =ʪ ރbu9)dDwvhK Phɿ\̙@@ |/@M |A X BA-C) 0NFԹ{NxCݑ;(KÅ DiC灞89Ԟ:,*#=P8d D) )-RVlDċ~5  0-HGL]!^$"_d5`l$J)*0,J5.2Rg1"5'"l $u^KF urĬ'3X wc $S4Pvc%W˺hS{%\7귙$Ia8b S"pۍ /`kSI|JTN-US QE$0Ay1I1!̎"i1X aaUc#C5 Z0 ,P' ͋M`Y2 ]:$ H?VĻ@MMD= À%Y,ޅD7Ey1r!f# u!Ŵ_\&³P", (UmF9zF\ċY@Rơ#(Q26d3?k$'hMN~4n`f `{Yn{|؎<}=ɍ#z Tl(T`*IE #0R]'Y%t U|ՙU>ZU"nb'ޱ'&~b*~a+&Vbې(ed %@z!Ƹ3nV;Er0"֦[Ҽ H4y˼ :O: K$ֲ3E9t*:؄]ػʫ.hQ^*}dxeMd͋L[MmYNMАRK-l,|HhJbR,ZZ..2dZ(Ijq6@G&(EegR"瀙!  ۼHOlOdظ@̋kwk褗n鐗-颇9.]9+O 峣;z:7f/{̻{^;Y.< ^e8|_4}Ͽ#M?q ͭ @ $pl_IV/~=x? M~kط\|0 ltQ Fzo"Urs g=صcthdtǻ|8M.IC[b8b;T ¹*qq_)E.DtQO1q(0 #<&"ȼ1RyZ#(;@JRc#&Rk$HFPxV6o\eD83 ܗ@\ %a:V^L2+Fa:sd3Y&+g8RJSӦ.f)*,4ac(SZ*"Z sπMBЈNF;ѐ'MJ[Ҙδ7N{ӠGMRԨNWVհgMZָεw^MbNf;ЎMj[ζn{MrNvMzη~NO;'N[ϸ7{ GN(OW0Oz d63O,{I?'<]ΙؐR )6i.\GH֕+ed{7k1Npv8A춅s +oGJI2"}gKgt -@ӎth6%}ϼ7{GOқOWֻgOϽwOO;ЏO[Ͼ{O Ԡ7@5RƑB+ f14@w_)0@(*PCp ȀDP~v PPi~$@,0*,P=<F8pJ40p>)' H0= ȄM!}aXfxhjl؆npr8tXvxxz|؇~8Xx؈8Xx؉8Xx؊8Xx؋Kh8 >T7ON87PG \` 9   wh(O0xv[ˀ6 -4P*07K& `ɠ g V%p46ex  6 .%5:6k( t L@$ fxW6% DG:xo 6FL> ;@`b9L f07 %6Jq9/ kٖho6/0` `)`/`gfChch9;p~]~G:pw6 @`ؖC08*GQy6Wt?hO)JC Y4@`J7"pr8g( 40HsdDPp67@fA0W gCL ?ٟsß<[ 2x=@)`0`F/HXP>ptC`܉#`8:BphS7 q"fc™ Ht\FJ77=J™B` C6P]8Wts=00+؂s6G=hhz'0E0CVC@Yd:00,ѨI=p!I-9 ( ^P<s"q :Fpv+8 9IPwYg!l0@2NZa 6p!Z*OA4x@8d?U6p`E7슮 (ʝ'VC"0 0@Y33_@ + 4{#z[  ;1pJ zy6PVp`gc pIW< @~[[< 7RǜIHvˉ6Q@%&pQ@4G郳e@{uӑ& iՖ2D8 x[p ;1tSP+0:7(NѢ0؁:P/0X;;- *r92ۭ&$0: YL`#  PѤQgs9y/`|ʂ.2HuI:({)x~;+ k:&``Qɛ\w IR+aa~W=ȎPJ`yL/ˁ ɾ;7Ɖxp :L;Pn@cJHX&@hH@`LIpl/02Kam?[;dQѥ3w\#Sgsiw:Jh6'H6@S>XctVsA؂7 ,=0$pR ЧL 5p$V]-P0jea^pA8?Az8׈'r],#  ;μ&` <@P_0#Z\Uxlx׬}Ͷ ڴ oұ]۾P}=sM" :˳y=G ώsR7EP槭%1Y=OÝ!ެnCzvCs`;c00 QM'A;~ +*@󹠬i9,@= =` F@;)@˻1}t۹%Rث=_KٻS{CS 1A]$1+~l PM;^.Ꭱ0Eoʁڃ<;@JhmZMX?߉<!OyS:8=hD2z$GG <;K W8pؼƤlxW`^sa.RLT#^NZ\^K+%@Jpjhcc 23[ ?73I:#gsCף 7ڸK}oɏ6݈a?us?s f#S"<{>xW 9ζp Z;o#ޡ+ъk3 sȤ/9s>SNjKځ6|6BEm6p:h~Go.ת:F?ltS8O7U?uSg#S#N jA Da'O FC5nG!E$YI)A-0HQ"GK\TO#oTMS?$"FT/Pu`*`z:lف:DPZƽ]w-<ȶ/w"XnVĉ/fcȑ%O\e̙5ogСE&]Tv N `kNd{zk~MumaoսqԪGpO^uٵowŏ'xl[[-Hrp^>^um zOϫˠ!n)8 3 ^ 0Dtw="L;,B[`ɥ7m 9p@Ov%Vbo EeOkop[^9ATxtس937=ۅ-^bq>;S;%0eCv.ǀ^>P#$a MxBPAŶi! +` 7xUpby XC7zؚ)k 60$L I xE,fQ[b D D{H$2.QjSxg$%DGtײ-+ j ?.- #2Q#gF})kd' QqH>RhO B NF`;Pd `@(tA~&ˁn~H` PTIfSf7#ȀDA 8`q02$Tn@ +PI%$)f9+fC'1Ϋh'mXˇhr 4]Ҡq HЫp`%(`y80t6mru |39TSjU'I"P l% uSGgOy<B O삭{*+Wԁ=喈&Gi!L_BMa0Ylp!lI9G}!Wz-In\J,`{͋_FWӥnu{,j;68eGG޻D1a'n{^Wo}GBA2b-ʐ-p@3 D ȀOp@ra ;0H+_ƖS RMKp*[^hB`B &Щ"APijT=碰Q@bP$XNbЎ!S@YΠ :8l0Dp>k@P`!n'Tv%ʁ r` t=p`C zhfqFA00Bpɵ9*(-z'0XSr)Ls.\NɠE 6@'-i:2TUZO T=@ " :L8p'xFҕ`@ts}pS 4ԮtF0,rp jˁ @A?h2OA$gϹZ'>']Q`fv:`+I ,R)-d+7 #`m? |$c?6yd'^k h3,^|-yg^|=yЇ^55^Jt"mVFyʊ٣x÷bPW(Q7  `w@Ct:s1 էෙ7-a؂Fft#(թH|\!@3'&ֻ Q#58!)P"N hR)0@#(!(9 @o!/c;ÊUk5 ui @4ԧz)` z7%"H>H{6(0P$B)t()!86Š}ɚ)C!!Sc;9ø 0D@/7(9Drdc[ SA;lE ҬG#{8؁X;˻*IDAEkP%k:;sEṋ0FqGr,Gs|`-%7{H!Z= (ȼ 2(@ %B3"$9OM GAW @!HZӁ,K9azDJ*kn[LIzC $80KlC3  'F ˈʽ˪[!$LS9L `ŌMUIYܬp93ۺ,+IМ"Xl " Y! <ÓM$oN+ !/,h/*\ȰÇ#JHŋ3jȱǏ C,Hp8!G0@%KLA "n@A\ʴӧPJJ) R@B/F BLB$Ȑ:qĎ! Lȥ𑣿 LÈ+^̸ǐ#KL˘3/~0F &(86A"inaG5lt@v N8'4)pA5#TďgWr\Y*9L6) =,AphIЄ'Vh]v衇~($hR!,xb.(4(r DpȈ@t@RQ!TEE)P5Fਣ "0@$BT>!=<0DCZt   ic$uԓ'$@RryA #B@BYQ_t#h@~*h( '9C:C({B'"+D ZS](jA"T , $@{k (CЉ|B( (xB ĖIuI'} n$  ~ "C=h 'I' z(Ƽz$Ċ$>;э,t!J#=i(:C  h{Z,"4]+$$-PLOTˆ$z”C,r@ʇ@۝|Bi\*:!J 4$я*$LLA隆l%R!,Q#D\&-b ꝲ R:D7~Ԫ ( f 2DQ_j(BqdqOoB[C5w Й P(ֹ0NZD:1 | aBVAX R *& n[WS K Ef=i^R#A ={4imO ơ$':-xN v5jzHK`'`BmSD1Br@0= T$zbZ(!@,jU]DTj$ q;nGqe'ac%O x@Ĵ#NM P<氡` KS$@AQD"t,s%YeE+=@ `LC 9·b( (2% = LHOCu@%KI>a?BI$vp/+׸ΎS"&!5QS&n>h:N"0!6Gwr)CU'ٞ&d#d>0hO%Sԭz`uQWJֲBc=Zᤵp\GֹxH]׾u~ ` L-,bX),ÁZͬf7z hGKҚMjWֺe ͭnw pKMr:ЍtoKGLͮvz tKtA5{# ʗE 0;PBn=r |(-\ JHn27a WíF11 5X`# {d&afAnex zwPjy;P<,"@Ip C\$ -PNe.τX;?泎yV׶H.=A95^A  `%7ʭC/V׼ P0*a V耜o{dcdrk Ƞ >Vۆtw]kg[7$a xD[Ԩ7pp 2Aq0"\07 (0^\{tA܆|%A~lҠ wAo{>I!4VŠ`59AxA.rMty k6X)N<\F!rϳ3ܡ 7Bf]8@ ̆Aۢ ||r?d  ?6/σK &fo6@x-$W5l`j?Ce} Yf`ûjXgV0sfrP@aV^`q\vwf޷}˥fv]xwehw%~=F}օ^h ~8:30R]~B\%[FxHJLY;` ؄R8TxZ%YX 6^`.bV@512!!pX;pG{GPd0$ 9sEx#p'X !QXHH=*PP*@;=  g*>p9;P]`r &;~UG 0!? &HrX$8Q|(8oXgBA帏H"Ia9ULq<P0@@7[&k*qp2;WC`0=I('K*}p1@9,@8?JyLIPk: E{qa@KdiKP$p!P!;P@W\F; 9@!- a0`|EFp/D29e`r'I iIF0vP'mDC6`8Q\ٜKa6pXٚ;CCK$4 qtٱd94i8:) Y)Ip/AE;5AjE@*`ȠYHa࡜@(pA!j8,#pȗ~1uNq0Z@Gp71 p#G'ӸWR g0`F!2I0#`ѦPq0&` 8um_ *ptz*"!tZ Q y@ 5YjUQګ*:APPJ|(ъ ϩx8)ъXȇ"! 0! [pPWZ1>Jō8 Y 鸎 iHkY" *j0hz_x=@fn107$@=PXn)> Fa9N)P)Tn r : mAei2q1xM,sIuIw{ٗa$ jֈѳ'4 $ `E*긪ɚ{iٛvpŒ'ʊYҙkI۝L9i9_,@*aؑs@CA!IXj۠Zˡ +=г. 2*469*ۣwCj H[ G`$? $06ov}Jhp !3t:—J*ꐟ:ڲ*z0`Y!P4g:"} AR<T|jXź!NѬ QZ*h ʮm s ᮧe@LZ8( Vkذ討(Iq&˱ #ܱ *K, P/ s:{kyd2 IyA;E{VK;nIp;LSY۶[۵3bkhۖko;c+?JDzb]~++Ǭ-`&F` ċ W; Ȓki;ӹm)Ұ{Ҳ iqx4l|k{5@ldI ?W ;ڻ57Z+狽<b $1lM?]E*+ [`(1-d[ڥG  q%̦!|l,$~Z 5 !  :Q?ZLC\Y!pPGĂ RQľ=X(}݌eؽ݃/ L'c apJ9Wb<d -hMX< !B`4ؙIV}L۩,]Kң{˜)m꫋$A5}8=8pmP`I^& <&B רγ#0(e5 Zz֫jO_ \ {q~voa=u[B6ЇO'PYX$ )WY0 V̱u *-8ka%(joړ!<ۘ7<P`Yw5Pݽ`hahlkU'/Lj]XƤ}wlߵ{L X?KK0 D!q0pQ5!Y! 5~7HaʋKNDN:I>ܐTV߲Q/9_v"B?@o5PPR;O W춀~`p[|~$rxR.4F XA  @冈6:@ 0B!E$YI)9ˆ-_(cHJ1!Ξ<aI`L#p@ IshA<'ErxR#J:50kO^ۆ p &="qCsG2txG30Q#/x(QgtH` IHr $xl&PajY j_2n(b,pQAhv=P.o#2`8l0 #'$` †(oAB zaakTa$ڲ8@?[*28 :0A!dE1/B!BFA.K0D/'BL4|5tM8sN:?۲N3;tPB 5P;z2 -:ሃ*=2ȯ,) SV- `H*-@ j5xUGGH!0t @b vh?SfmT9C?RTHb T&Ea\ ~H5NTS<%H^"B \bv,s B'Б a$2#`@ aN#M釛2 0F/ hZ/Hp:}-7淾7>\\3[z๊$T@Oh80"zr4 L"1 Np!|@<:pC R?6\r xݬKei#W>5X t@M"(u#kg7 |}"ޏę&h `@130dTCYnyD'UVԢ FQ:4/$GʨOmH:i٘䤴EiJ(;ACiN0`@ 15(2yIo+ZWU{+JWV_ {X&V] :` ZU,BV)ɾ*V=ɵ ,^J,f r,\+[gJΨYE* 5HS v@%A|%ܤJeN.bMn|p! ) "T6$4 n3Јf4nvmiԌz"YX/1m;@c60`4R8PSpA=鵅w|K_Tq?/1 ')ys8 `` a6@OM:Ё6/!w"44De缼T" hPA$;.LL:YV(7q-a U2iQjsJ4FXQt$A[I 9sFAd $#C v r0BKfs@s_ak`c1Mo~Lo8f[ `:t&ip5D(v/ ! ;<h'g{1C@G dị6BtP4C:B4""tNT:FHjk ՜H jPmUҙb0AÍHHPuIg=K^ٸvi_W~vPfW{v8s{14ZtA!A@zl2 +Yųm~EZ ˴AmlmB˵V}d-5ٖ$n^9DË]cPvh  X]\^]Wbż8Ih\|VoKկϦ-AbR (}p%(*+x"c@88뫫+{!ٞi$a&22ƙɲ (s"2K3=V+ Rº@P .肉.< !S3>B-쁗PbH PJ 48514n#Hء./bT9:‹W#Y[Z"!/0$ p6hC028m.mJ>B H2P68T4AҶ`Jn#&p qe*f&t&vSw7qlst7cԷ(9B2G8&!@&A@:Rx8C؁# /3~b:,٨8P|<;٫B93"9K?$)! *#! wĿ53+I ;.;IJ4+JLJ\J|ʹ; S3 7 -SA +WC>@.>ۏy1\,l79<ɾIQ/ ///Xۚ)TÄIkr, '$@44ى A$E8W0Sk17)AAiZ*A,˟%A.*CBFE2n!&Ԃ(((4+-!/04Į;dCP/$+Q%E8$!@Ԋ;Ԣ<Bec4aͯqMK;Mp+N/M+[㴿˪cΙT3-,||@|}@@$ D1N $212PDN$B4Bt \ (,т8тHQ-.0ыP" R%414SS33YQQm69R9LR% +jKҤ)*+%(%`8RSH$Xߧ{J؜TiUO gSʠSXASz3REE a8EX,X\Eb3څ`TaP=q[ZeThZOOXUkmfp}3UYՁ#\GUz _GrWGV ՄȮ2H88㇌7V㎕kɔCr婠KIu W9$V@W'#xIǍɦܱכXe=eXV~eXnWeZe.e[e] }f@Y0+x˼ z,ɫϺYBZxY$4.ZGAJĚeU[[Mh WyUIn0N&HfJ"Ue9IIWeoo ooop?pOp_poppp p p p p pppqOG!2,H&qC #JHŋ3jȱǏ CIdEv Gp&$A@7 A J$jԤӧPJJՈjʵׯ^rذAV:у$n0k# 'v aCWTrIn&\ǐ#KL˘3k̹ϠCM4hVE}̖pСr"j] Is@4`'~УKkZ7r`8=L F@N(p <GHo(]BS`]a2d %ACa DQG) h(E Vu`+(4Sx<*(@iHZ%dTD&PFYu(A5!D"!l9Z 2 XfsJQdIf$x@'nIt*'$`&tBAA(]$PR@:d$J[Ī*'NA'p DeA) #P 5'Ѓ9 ɖ J$@Dy)B''b!4jrAx@'ٮŒ iH'y2$!R(2-I {@FH!jJ zQH!Zln(}oEP$4P'4(c B]@Pb ,B &,BwA,$ l! MG!@o30k2+F|jx&+luc!H(WdBAi>_f*v'<HkIqyꏨ )Ki%UBf x`(M Yi:. @UeDf{Bp+fzAQJ eE"o(vVAf# $HboiREYS-tiN>YDlIZ\o"ٍ4)mlgK[)nwې$pK\(pMrےwЍgKJ}uGbz=ڮH 7E y' Y{K_%Yͯ~_򭯀\3f 0`׎I0rL s:0h j l` kT ISĆZA25g ?Z̑tG(\2HHg +>D2#5@R,NI|,;,؀̰Y F P#,&AV,JQr1p;!n;.`J,1:PQw`!@7K@@%Z HXԻ9t thL1ĀvA%e/mġ? 8Г-Xö52#  H/IȽ6;_Ñ|,# oKbq `\gf67oP-YmKe9I ` Ź :Ё6Ko M_ 4pF8 ͩo=&e0@]KO C c^7psᲯj/ ֵ.w}H3Yf`7w '(1O\xNO}jj)k?n0z.. Co @ :A 0 ()Ap$`8*8(%ZHzhk"l( #!J[ 4)0F04iO4&Pw&J \0Z879p wp@)B Wo7qLpJo"q#!(l(WVGȥ7PQ:QQF "]]|TױF08vz~wvivəwwysw?י˦ n*ѐi{kr Y /1d#@eIGY˜{9|w|} ѝG~z 陬۞4PҡC4P&Z?@!";@`,-dЕJGK$ khH,*.!.H'û62l=J%_@49pJ G:Hx]Y[]黾+]\AYtu!Z=hdzاRFeZfL8l9xhQp蹔g%`Lz*&@J>򁍾/ xSzwjhiVkkF%jNVI`y Tpz'Q*7Ad ()pH誮*Ѯp0*QZx CIqFI&g ˯P)G/c0p]k.#k&KY$_QKA)XS1<`'vI볁ǘ 蘁)EcGwֳI6U)L{Z'@hp`b{@PgKE5Pa[j˶*ae'r)v{y X(|g|;i}y{}ǞH_"lH;a۝)<6-]Y{zK#5h+;5=A_ˣԁYK$1RQPQj=׵5!tװze K8?;+JWim( \w&S܉ \$!OXlJyZ@Ӵ;Lٜp]ƏB 8ACzIRXxT[[ ż*ŷF W lM\\\`^<858BpQq-D|\ܳ|00nvIPiU*.$LqKɖ\ߌ "̬9KA9͗^Q|*aAͷA7`j*Y$\q:̚1 ugwdKDˆ0}My+0%m1& d'H7PswzT$=Ϲ }я|W=}6 C@dI"@PJ`F?MGwh'`v6@@v'zPC}{t7ZE2YL}#MYָr#-l|9~?[v}x=#c'\c-!]^͡9 d |d^Mzڊzm`#;`J WJ!!i=Kz]MGMKqQLZ=5 Y)$(@(+3Hje i2 }]NG^ z_;~&UXXRHkj|c/=+7k9cIM͒OX^#\iTKdY0p߬qn~]N-z| њ~;OM2k! _ !ZПCk'P8l@ Pc%NQ_P 0T$IR A2~1JΔx1 NxXThp@ʕDN ΥQ r0TEWaŎ%[و-y[KƭujUy_ka/fc e̙5oK 3 >Fq'g| 2$6TtV<V|s3*ΛfK6vU˷d''b\37Jq\;߂s]C Un^?j4/FXhrpX1fZ(n',L-SR5N%i;VvtR:l=uR*x b#?Hd2=x r1:#Hp,y L,rѷ ;A/Y=}O-LQUvjmT*ܶ*#Ɇ+KFq+,ږ lY=Ps!@ I x("Iru0hWNR8H:ȸ/= ZB/p ۙy%H@+Ct@  ٱc++. 舂"2%@뛂*‚@AA& '+ٝy*22*Ğ)3B5+-t30$55%J"B;4Ђ!  شNC #YG?2P>#?E ܌R{),ԣ[b5"/5 (3C\8ҵI#6\~iC8(09; wD 6Z@ wЂuR'83G LasC*6a=mČlB`}S888zBcǛ'@s H{|w-:9`H$J9X9, c I.ؼ ʺ X{ÈPL [6AQ !zȲ=A=DaK=Ha-ߣ=UOȦ Td~"㰿 +/a ?$c:??4:E|wΈ\^1M @0@@ i< T0 Υ0 [00+#%dN,p:\NAй#3;Qغܸ&əu1Jh)A %+5'B)Þ+4,6벢#U5432D&=C0\Cʒ$(3n394 eՊs孂Ċބ[ܕ+ܰ?"N[L1RO-3.]Έ?%DkcA?3ϷOOO 0 L gQ`(43^V,= e C75 52vJࡔVxBm*JMQ]L}XNT[\b^\,nWk/vU@(H|.Ȉq V $ <9CV||׬Xdqr؁Td8L~cdN+a X(,VPHo(oo oVPo塚o?_&eop Gp p p p pppqq/q?qOq_qoqqqqq瀀! ,h/*\ȰÇ#JHŋ3jȱǏ C,Hp8!G0@%KLA "n@A\ʴӧPJJ) R@B/F BLB$Ȑ:qĎ! Lȥ𑣿 LÈ+^̸ǐ#KL˘3/~0F &(86A"inaG5lt@v N8'4)pA5#TďgWr\Y*9L6) =,AphIЄ'Vh]v衇~($hR!,xb.(4(r DpȈ@t@RQ!TEE)P5Fਣ "0@$BT>!=<0DCZt   ic$uԓ'$@RryA #B@BYQ_t#h@~*h( '6ZH!6='xbH ,@I$ U>e .J @HК2(' 'kl PZ.qzGF &엛J(>ԃ:qptʭj%K\U.1c䔈 giUTƔ6Iq'4zNSg- bQ*cJQsg iH*O,L"Z8Sn ` X]ձhPYֶu8k}\Jבĵxͫ^%r׽z+`KX MS:VF}d'Kpಘͬf7z hGKҚMjWֺlgY$gͭnw pKMr:ЍtKͮvz xK!]67Xo{(MH 쀼0q9 $a6pȀ+ n#=As |(-] oJHrr ήQͽa`{`0` ypaV 27 0vf5@Kh.\y5 ԀY2 rZcs6 e*9̀tv\F?:| {efy`fpj^HmVXvJ:0#4ARo` l @:|a<8`jka[lk 6@]':P@j3ƀ :4S "Ï1!+_@,lb;w bc#[(ȃ @0෯ v-hЄ;Jp *@ab]:Ƞ {֠?8rYr6ֽ2=AR] JH K `oۜ_A^v}o{vm[c1 |}ּyBfpԁt+y< *Vj 5l fC<`<0 M;4  w @|z+;5~޻_݁ǰֿ>Mx{ {`kwu]fYzYwЀcw`V\f0ebY6j$Pd{*\7i&ׂ,Peupf u%f@bVd\:|[hiEFHbQ8jFxY (ju| h]5htxxXf30k]\E[XxY;`FZEY tY.W`q1RH`p'Qx Qlp<Uǘe@*HZ?0P#pp'X  !wP8!@DTӈK &a7gP2q$@C*>IF"Iqq@%c%`:!;@ `<9!? &hrX$<9Qx|E Gɋ@+B9R A[ٕKq)96Б;WA ~gE?0F9-EYI![_P`xA  Sd gp4 ɘT٘ QI(p񛡉}p#4`U)>pI`FAq1W@KQיK$p!Pi;{ɗ1gAoFFp/ap6BYQ !zCQy0*-CZ]jDe`I 0>I8:<X:vP'710@`6ѡQAF`\O:Q:L`y =0U0=P#0q0^)F:)@4QT)j!Ip:ډ900Fp@hpIZ]*Ip/AE5ajE@*`PyFZH*!1ʥ,P$Y&Оa1XEryR! )9p*ّJ"x6@%)9/pPT++@H +29Ӹs0&` Y %n +0$+rI Z@z3!H"@ U{ `{еcb{j$lp؊ 5 PA@5 m帍)ȍءA8) !C (qYP ِ[U`Y"y-$yp٪Hpx40˓y; *;> 9-?0 ۽-)D)0' ;!>Y@)GKٔOeyiɻkCbiNS"( ˴0w})APBpY1) 2Pʪ&5L[`dA=Pk^aAp>@N Zi00)qTɛy)A*`ș9*oo|ʝ{AvxLL,7̞ *)T9#|@50GQgʠ籦:&fZ/@C:kImPX1A˫,B0$P/ a4`\<,4<;ڣ?C \ߨPb*Tʡqܢ cJKahʕCmjx*tj| _9Psʨz '0ꪄٱ415]Z:sc\¡+J*ܪz4j)ٖ:њNJvٺVݭ*,pŮ pJ@D:'1 RIk"Ck 1_C1!:s`< {ګ Y\ mAwM!k=>, -I4Dk:;<+%A9KuO|5!B 0Y!}} 꽶n >~q;x t+g}ۤ(L a . Ꮫ-(hhᘋ +7(^(+ ɐ'+ ɑM!k6)9{ٛ7T.˽ .黾e?;^˔NI ѻܖ |@1;<1<! Y' ˙/l-4|69遙= D\GK,[jqTlVZPa|f<h,jIn !twLB #QL*"<Ϝ[P  ?- ̕|NZoMiվ š׺!oM"m\ָ =9 =בw]R|{ ؂Mtͯ-]-PK`mz=ڥ'MO@~۹M=ݱG=lΝr }&; ! $X8l@Ï!%N,(B ZhpAqG&UdR/.MBA ,qQ3A82%ZԨ>GYTSQFZUYnWS%[YiՒ[qΥk%VވB ^ H7få?CA~+tGG ~] Hj!CA֮ssQGFܩ!Y` Ncݻpŏ%(TJTcI&nD) a *7!;&F>@d@,b4ZX&"("h38R9B@A~Q^`(PQ ,*ĢlGǀH$ A r!<2*'@ʪP#8nhN  R=U$Td0  0aBOaLJM_N;{!TW(p!z0A"E00 HXb10*48`h h9Ţ@B,#C g l0B(|m1趃o]u٥jNI!mԄT%92;T l)2m`T,* `cE Jn#m@r v eHC1`^02 n(iIFH.@¶Hz zbӀ@jv*֛^]E&9Pa*衈{`/ Xt- p v 8}Qj8h ]FvsQ7$xaH("w\~M(  ,(@ (.S񏁴 "2]$#GB2N-fSHyJT$)[1e*]9JWRe-K[R%*qK`S]򲗾l 28be09h@#jq`6Ks㴍QG8!qs9T7P-H9t @><< Bĥ0 AH+A7 N$(!8BU,bl^E=9CFH2p=LJpU3"$"=IJ2$Q")U WҖX/AO >?"L>&70IEvJ+U-R X+_L` H@BAU ֔beb!h٨Vp`XK˦"ŖQu|=Qu]񲣶j/oU8E`:AW7` F {ֈ fKA&A(66tmH@Fbb2@ @PЅlfeimaJsx"mnL#J:7ip# w!K`hO _HxUı. M}G)7H@!,9HHJbH269bd۵IϧxHkuk˶m#N,6$7eq#7W7׭II-XM*JmX%}XX`QJ%KC60Аk3 pJ8$9t ؠč'. p9Y FꎡC:(#0%/y AFڪ{3 ́躕*(+⼏ȏ4-+9"r;!dԼ͡ZHMkl\Ã-N ?<=sjZF<(;Dؓ xU<>+b -.>,Y]pP`^(0A@9H d4ӝ?$ -rm-}?E`@ "PЂۉ`@Ğ Q З"ę$1J.̞4a QQѻ R 3#E¯YR&tB!B R%IQ,@5X31` A4聁AZ8Ty=7ԝ8yDX2=dIRJ1{(Q<1CDD79^TM\1ODPlF-E9H5 UHU]TY\3:2ŁٿFH`4XZ#Fl i,h \ƅ]MYoܡc4MrOSV_Wg^t<;H,[ ie#IG6$ȅVeHȽVsȁ@65Vtn6pLb d5ؑ *IXɟ0m~X Csh覉Xh hhX؍`8 @R8'~kYf* V8H9h'Y5˚S 9K(Z=ZTZuZe::pL\-[*`yH;KjU,.܇T-/Mr\ߤ\C*e|f7 I"]?Mhκ_r_L5s_?T>MI`X.-L `x+σڹ?#⮂0Q lA5Qޞ/ Ѱ²/p(,#"B&EVg$tb>/ +b-bXK)675C;>5-TI)#MqpmE|S)DAL , -2~`dGġd-eTIUdPe5{QR~SV~}XYV$Fge_>"kTaVl"{%e._`DZ[5ȴvk9sfHs|WVrƣX;g^Kg`WlEzgTuH{ޤ4%~vn ʕ h8]hwhwz' yw|ww}wGp9 8s>Pjʗn&i% >6ĸ%y:j.\i ˃R(Łq:P%`̮uN  8nél 6<l1hnvuoDV塚޳*j{6e`@` Qp0S6-Ow"R"bqšw$R0;Rϫb1(ˀ_C`S78NS~=1?@897:J9ԩd>d0K @_D? eCERtS?.>T]UB+7tG$[K0nd \OGVa9VP5fu֦8`aH:VsVWTfk?WiOW\v {6m$z5 prXw xX~w~w~wXٴ|Q7GAG7~ٲ|Lh%5z٫K:oy@Jywk'zbL9zTl@咂VMzZl\\Aܧ *TΰR[?| 0J/|*<&|$O>ZY7Ǘnoi)O|Su/}BPVPo` }@BW 7ĩ~&#~)|)e# 0TI#@#'!F'~_[~s#NIJLH3P6t[$eA7R3>MU%rxIOwD!p4U]tL`V\c%PcVgmvj#mš0guHu^lvstex l6@W[㼐{ q+7uwzzzzzG,h „ 2l!Ĉ'Rh"ƌ7r#ȃ!, +H*\ȰÇ#JHŋ3jȱǏ CIɓ(SV܃cG0cʜI͛8sɳϟ@PУH*]ʴӧPJ a Sjʵׯ`Ê=*M cӪ]˶۷pゼ r˷߿E1È+^̸ǐ#KL˘3k̹ϠCMӨ9` @5ժ ۸sY;j^ӞȓK!χ+NhË8ױi]_DϿ(h& 6F(!e s>#vaj&< ۇ(e a1Ȉ4ֈ3H@)[xL1I4Pf5[-&d&=3L\v`)dihl|(c& 2| (cL",3܉}&hb%Ȭb %.j`K",c%uZR)z$R2P2(&Ugꬴ1PY 2PY+k&64#-7Vk-eP,õ^0,  ^&4s@Fo[@@"{u, @G,Wlgw1D\#PH#(L1@4K˳A@5A7Ӧ?2E@CFG] V=jh@ .h 1RV-hv.Pmmmtmw[TS{rV7{yn{@7 NWnW-9C.xw.x٧8Dž^O쇂O[޻'|[-ߞ.mB=ov//QP~}>n _/~_db $p~m=P ]Vx#^T)."D8ݹ0o ^ #785yv'DU0a\DІ< S8C7Al"&ECBSH^-!C$qr{WDSb"0Ib Džn-9dԣMᱛ 8i,S T3bL<* m̧>~LLh6GpbZ NZ45[(z iiZK(M)cWR3.01 _9{N/s 3+|BB1 "O6E -ۇԪJPU4P Ք6V $DX]-RQƓ޵Tpu3*aQ݉[s׾H@e M@*&0*lQU#c70#&XF"l!rY2@ [El a02lAՁE*n`CoTSȈ*Zͮvz$-48D^|bD{E }bd peE\@N;pq^VxJk16aa {8,_Fy?L@qW l@ke6谍w@L"HN&;PL*[Xβ.{`L2hN6pL:xγ>9/zg Sul-4u ^B?vB,ЋBǐp.X^8;ŁAMRԨNWVհgMZָεw^MbNf;ЎMj[ζn{MrNv Z@Dۣ(8]t@F) %PppA)h'N[ϸ7{ GN,'ra8!/ߊQRsޛ9TC@ B%l#d Aqޖ?#LόM'[:-Xf=qΧp)ERҹhXںp6 z_h0O;񐏼'O[ϼ7{GOқOWֻgOϽwOO;ЏO1HP Ԡ7@ 05mRsI/ nC` G7X0#@T~NW_) ]@~,d0:E0Br  p}Y`g\UWPip$$*Z0&#@7~(# ,P=<у6Ѕ\]pJ2pK`Z&rsxxz|؇~8Xx؈8Xx؉8Xx؊8Xx؋8{Zp1sb h?8nKp(2JX p2D01Ua$U莤Q9E0Cp #x4Ѕ2Pِ5#vN  N V' p20BNБ 0i NJap3 @6tO  b7 1j OZ\ٕƗ ɐ a P%à &^h T R ɰEzI!   U 9YyY65igMB y9)ٚvً~s `ñ}#ٛtFW4EO0U3ǛٜY1ڢK`$00@&pQ]0g28BpU(lR7y7?@1= =` (2+Xq8CY4avM`4`nw0(;J+0 E_5p$7=jjX3eD Y`a@t3;P%`ڝ>XpAZĥ%(Fdpwjz$]J'D:#vV#|ը;#d5ZJ:z(JU:DMj5|ꩧʋ$T:Y LCp7ڪ:JD ɚO ZY:jG:ݪUSԭߚ)8Us } rïꯡɯ J:7Z䰌4 Hsp(<'~u(W~I`HzV IѰje39J< 8Qѱ{Eo 17F94V`FE ;98+w3CPC:)`@SWv7S{%Nr::rsiUÅ]xi)l8nHqȶ>]hRC@V) 8,7-U+F |v(vk9+7UIP|ŖSų4 8Jā'yVo ѱ#T?FLvߊ9u\6zB L ÀA%ot7r<LJRUSz\6\ğǍ:N|Ȋ}In9Y֔rӈqsdMw~9oΙ5ʝͤ!,H&qC #JHŋ3jȱǏ CIdEv Gp&$A@7 A J$jԤӧPJJՈjʵׯ^rذAV:у$n0k# 'v aCWTrIn&\ǐ#KL˘3k̹ϠCM4hVE}̖pСr"j] Is@4`'~УKkZ7r`8=L F@N(p <GHo(]BS`]a2d %ACa DQG) h(E Vu`+(4Sx<*(@iHZ%dTD&PFYu(A5!D"!l9Z 2 XfsJQdIf$x@'nIt*'$`&tBAA(]$PR@:d$J[Ī*'NA'p DeA) #P 5'Ѓ9 ɖ J$@D bof,bh$ ЊZ"м~jJ ʩ g 3JN +#"@'HJʈ 'm&"~!Z $'tA;EgW$uACM|rH2fT+dd*! "`"v"@[ {"t$FA |PIT t8kut 'IP: @FD!dj!Hbџ3Q(JA}X3D#4}=,": hԟ:qotM@&"INP  OC088nnsVw!4 qx2n6>I O!@ +dZT'FB<0XD% j51&`>  DAvE  ܏$+0zO|n xmWgfhdd{ $?`a!#XR&[ЂA"F:q!!$06%'Wu<o1^+؂/k@@d?kz!P{PH(2W[hagvah(v#`S5`~X`v (:G؈8Xx؉8؊8h7Mrc2Fc6c`a-ksF]sgad;F2gdQyee* y4u|0lgm6Hf8쨎"aFpf6pr0 qaHX ivTPmKY!3 .!v9P0' Χl]198j!jU$vkH[8Јmvm@1Vn6jAvmm&p77'05  F@:pTwou+*rIEpg00am˘7`H@;ԖrIFv;!vY$)*q4$'R)r-'Es1Qt7njsqBWytߦ] X`fv0&oWpun9pAx0`[`46]20IbGbaF2w+zw~7xF1$ 0zWџz'egvfZz 7vqAPQ|{|CPT0(w#07* &:}2(Y  4j|fF~QXw$8J~~~~X}`ဌJ0) Kll zyz)^e;P`]6H(J($h&(@_D"~1qj19Y4 $ɩ੉:ef#1Wx$*h=ӹkTi\8^IʂCg˺%цctX[#}@ZTe10:Z y{j=c_pa(e ccH=&/ %wi8p42px&ܨe_db&gf=vk֎oƲvV(vi= Fkh m8pN،iڑI1%yp I;16v 8PΦqTa=?iCIEl͖iW9OmSmVٔު 4װqy9mioi[@L {(~ 'xYhɘ0Iw?Wq&p|P'@&pu2&@2 鈛q'WtrsqoF'<7oDw5ފI);̛uXJs80,@Qɝ k)|Q`ɞ# IFiI&püqTPu {azax ELyyڞ Ţ'Xh|pP`!^~U+*:|-0* (\6ҙ;ڣ?JDi&H Q͋a}5 ^űq []~l7ejXjrJxצH~c4z),,Rua!\ ~#։iŀeġx^DܠjnyaL[$az) ZP.N`*݌,{rCP|||~ ށ,P 42ac'!8,|@4`@"ه &KH"j!J&T DH#FXwHȉF{ 6c ;sFFBYjf.w){& ;&p 0"@rHF8b (b nzqLꂌ.Psc9P {^ :C(NHʡ|pC :D`* 7d8/*A "rx&[2T0>t!&@88cMC <O=SA;AEՄ(='E 9P0 zXTՔP0p.n v% H ,"fa RȢ:rH m6BsՇ`5̆t+/78}p]ߢ H ETPb3^8f!N ~쇇>7˰vV4c8@YfZ#fg9h6>0zhNg}ijjzk{lvk6{mv"oKH;N !&I :0"pL@v`@ 2TUȄ%tԁ[p+@A^@Nti=3wRUO-&t,¡X5M! T ѷ;<Ǹ$@@rР8 $OEA,״(Pa0zj *,a'^W * cS?@&gH80iYK[Wԅ4z!v@0DǘJ6hG;Mj34B 6,t 2\7 "& 8OxSxeǜ tsn8M>Bπl/@ DOH)R zS]I )6Ht<Lp 4 ## 6ћFSшB'#5By}b J0਄2T8E5LhN ~j@ȪCUS+IsQ.PjT£Wʣ+_Zɢ`ƒ]9Z2^}Aw cmuu/RsK`#O#m_he]^ ̴.ی Rp2.J1`μjN4P.{]M@iM.v=׻%oy4Meo{^go}{_ 0!;جEg7oCFLp?+*؁9Ds쎗xn̙e'y{eU!wKӌmu{ux%$2VPxJ=9.lk3JH/hP0!IAr V~G0j!(\Ed(BP`F!ȑzr@. ,ʠx@K@! pHK!z(`5p)%H+}#-qFd$(IT^, s͕%e)PA+IIgr9DBdt-PzKŋ$ H!H9 F1q %C3ጕA(ai,f^  6`A ` #R#x tNЖy<(Oj>(?:z7K/i 1).:HBAJD@F1Q JѨ]+ӋQM+<3`/HzP|’RR{A (H${i%,{З/4QC+(5ICØ8$)C;EEH-J$KTV KTMTWTEyTN UQDO%PUTMU DRExѦ >˰_8tlLZ̎{1q$CpǙ{NrLV1IyVuU"R }l0HQ\Hǃi ]RHK4[6Ԑ3:W(h<hȇ@B?CO,t-am꨻!( 445ZU㠜trJ)b[\3^3=DqV+'JKx!$CBS>rtSJh,K78K!9"78R&Z" K$P٣ 3ȴ$T9M͘-۪LLDM0ZL:cZqJ !KhLj̺)5]MեhӐ"hljfdEUAEU9Y%`39Vnjs/lmlVFhV;4l1yVD!ɀh$,sW x Rhn|e37~:<4MXΨs2h؇]H4P'ôD[4Xi+<"(ٖYT;YʎթyYٔ%"5M"&Kq6̣= ] ]=0=t`q7eKi7Ȣ}D*kC(06@8UZ8$808k9ftKWLEL%49cΎ\ĥť\єǍ=4a\< +xD;$lM>_ !] = EMͲs)}m-6;;[-ifZ%K^ݼ04A_L 4׋(Ykۣ̽=_ ܻW.>`վШ**^ in<7~> (?ρ9hF-> ~QaSpa"abn++ASA$H&pzub*͚mA/:AA \a\)6~c5f&B@s+DE[B#H=iCC:-;ES=:䚹BmMIfTo\~ZVFĴr(etQeuHd~vhf\vkv5helvo%\6Yc_ PF\Mxh,gk,d=1fwh1oGVVz~m|6GR)x#O޲0zu33T$ SI>d1ITIm/.Y IEjv_kJ\;o!JuP6fv6LR>Ik}~ *kKKKKKŋ(14mg|цܛ=%S"sm9OF=n܄5nSt 8NHNX _{oNpuV-;5J>uEuO^7UnvhGvQvXv'6oowooWwooWqgrնȀđYw[lw`GhFwwJgXg} ~e GxVƙgުxuiMwx?HIH LӒ<ɂPyQ#5 ʘw޵IYy6-ʠY jڏA\E܂4zdKKJ#4ooOoLg$7ܤL̼vܽ7ܾܿNf:Oӭe :! EM~ݸ/5Nq ӄ&;,#nM cf1i3M̬0ao̿!+,80H*1@HQHE 8X(#I Hɓ(S\ɲ˗0cʜI͛8sɳϟ@ Jѣ;!lJ HX±jGe>ZU(5QFnKٳhӪ]˶۷pʝKݻx˷߿~Ӂ1Pֱ !6˘3k̹ϠCM3"5 4@Z]$-YjҸsͻ  ,\+1ʐEF c|^Oӫ_Ϟ"Jr(O}"4P ` ށ& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼ꫩk,|06,| Vkmz4Au\aI +kB6+P X Pg|/H`q5 k,Tc#,0,4L c&h }Eq@"yb\xB+G< Y.T4QHHdHƙ1dJxDMD1A+ra F&r= @.bND$.q$-4fL_"I0yDp'l&3()&7T&@9Nf%4f;X̹ %L ;?`w[(@Re|GObҐY$K* G/2ы57C) L/Ÿ䒤 L9:,)JWjg&$&9- (ҕOc. Mӡj%#Y@Uc9)iVAU#e*WԢ\5dMvӮկp5P:t&I%RTs&f_OnƳUH4'eJֳƼfgGKFg͖@ ignwA6 I]Ido{[2}tK]֌=kIYJ\ =xl[G'@ $6MC@`}=jG8( =,EDu׹zηM( hHA m`b8Ԑ6pqi 7@h@qqЌv+44 &'SHĘFcX+1z@HOҗ;PԧN[XϺַ{`NhOpNxϻ '̂ '$^vc'^[KVzBAOқOWֻgOϽwOO;ЏO[Ͼ{O~@ ^X%p @k ;B" ؀8Xxx!GwQ'$nq0HႵfTXE3X?8+8AX25EȁNSNЄ1wXj1WSx!]x0a(;B$hl؆npr8tXvxxz|؇~8Xx؈8Xx؉8Xx؊8 V~>0?a(%?CH09 70oOMG @`FQW`b$H 010@`PE0]`$$P9`Ў@^P<K"6@@6p5Wd 9% ّ"9$Y&y(*,ْ.0294Y6y8:<ٓ>@B9DYFyHJLٔNPR9TYVyXZ\ٕ^`b9dYfyhjlٖnpr9tYv& vt y5XxwaG y ~xNsI N NOP٘ aPpP9|&9O zyc9bFj p %@5~f0 gsC m `W@)0Ɋؙh)9i]2PP7@C` $ `\ $` 0x i# [B' '@Y aj#p J%> ;@0P,ڢ.02:4Z"DQD5Z9 ;5"! D"NGE_jw=y2@7070p$0 "Ip4p\]RA$0;0*6p z! 6$ɳB[!8˄:vQ xH˓-_?MۓPK]4TW뵵5صU˒c++`[j;Z) i\kJK[u r+t^4c{{%};v[];[pۉg[&˹'qc{[O++{`+{ ;Z4vIf,GwPɰHo5ѻ+;AC,!.ZI$aJG#p!84@ٞ%+ C`00ŋfE0ZnQ7/+8,<\ ^kgw/1>Aٻ@;^U<-{' ϢLg B1;W8QM:Qۖk9n}ZLDiM.vm~~ϩ] ΫRnj4̖n)K`$0`&pQ]0`K9a!7(H= ݊ 坾EM݉ *6@]H`B @9ûPG@<0 厩 O8뭾'3fZ~00z.at*!(,h/*\ȰÇ#JHŋ3jȱǏ C,Hp8!G0@%KLA "n@A\ʴӧPJJ) R@B/F BLB$Ȑ:qĎ! Lȥ𑣿 LÈ+^̸ǐ#KL˘3/~0F &(86A"inaG5lt@v N8'4)pA5#TďgWr\Y*9L6) =,AphIЄ'Vh]v衇~($hR!,xb.(4(r DpȈ@t@RQ!TEE)P5Fਣ "0@$BT>!=<0DCZt   ic$uԓ'$@RryA #B@BYQ_t#h@~*h( 'N='xbH ,@I$ U>e .J @HК2(' '+l @!P, qzGF {엛J(>ԃ:qptjPH(Jiݨ"@*r쐅26B".E A $I'K T65t0"ɦ]+0c!hv'P0VJ4Ѐ |` ~ (SwF!ZwIT`ȶK4r]9 es`B3{9潲 R;D7~Ԫaiwb@(4H4q^Tw6@]:;AjSV/OE"$b,z@H g\@.ML(ڪ .".'II4ݎKPj!B%1*;Jxp rmG*@>( bˋ" "(b*M0_A1Pc 851t P"AvPdJ@z@&L' 1'n!:;$_A'iz$|"kF+\br)<¨) l]f7NufpZFAPB[[w@oǰ1 ~D!;nہ (" @Qc.h:$af7PfX v b ,Xg$a m<_i<]=H3 ~AlƛT7daCo~f_CЄ{s*<'WڼXH cσ @0zܝ:1Ƞ {M0M lD.\8 8a#}?yApUw_8j(Yab)@0aw`fK0YƀmyGtח}#VVEroc\]tg)gJg8~<`_y_~uz@f&z{p7E\bg`~V][gc(zdxq6kl[zbxfpfqrgrcfb_`w3`}x4`G[Ȉ{v;8o f||zv`y`M u08wtk@kЈy40k[hw2]xP2`y;a\m}y@jhguc`~xx`zhJ &{Ufl]_H];@cp2wfzQM*wl[܅fjph7,`dUz\|`Vsfhbh_ 7Y`E"I1h0ff0% x` qeyf<#[Ϸjj)]MPg`Yķ&][iHcV gӥ9nmun%dw`j%gh bc0%Fp6pW] gkMg]kua_)\_6 9\b^E]9Yƹٜ]@1i#qI)䲝u/0& DP1 K!@J/XGye@*H'R" ?`E:w) z>ɞP !`p9`#`Z$/0`$:j1p4=Z"'hJC`%`&X0*U"I] B`q\5I;PQezg CpDapYZVqZ!x L8X$:Q|NzCQ Hp^Oa7g1P%AoWQI0x*0 $p&p91L2 qL2D vqz=*IPnsq&@&Б* \ _jY@+:IP9`xA :3F9 ^`<ZnQ;X#4p*>oت`FQбW80zhP'TB@FAJIjZ056' &`i F@:[J 0qqp  5AG-g @7 *%1w[V`'J$˹QpAF ak<Xk#`p+;ѶoC6`:QѳZQ\,YL48;DƺQ;dp:4;@E~I*p&B+d9 ;:!j0l1I,Le:)Q)Ip/R`б5AFE@*`µ[Hѹa(`#пIj(n:, D` AAjء<8A 0}*8DY\p"Yp Zc 70;pz'ɚ|JY 5+QVR1@@ɫ a#pa00&` |ddo± 2ʺg2p& [tZ.;7z2 1ap2~<!HA$@O1a -}$ `aG0 Pp& 0J)ʻa /ʱ)@ѡ#7 9=k?XA"Q@̡p h jd*\G11]9&X*sP+T8P쨐*z0:Bҫ qٟ:@ejɺ͊" KGS=pZ-&!P X% 1{S "=E*/1KR+8|1N ]$QW!]a@כQ0qG6`H j0%;=Z kѫ*fz1KaK۽k:n"1QvO>L=0U0qe Z=IBɽ7;!,*,0,:p9:>?&IL :RE0Ci콏lLn P x\ozt|@YDpJQQǝ5  np1XƬֵ,˺,͊[,;Ar L֌ z_Co  , LR ߾ @& (-ӥa-Q2 8:J ! EG=I L]-&zAP u0=qN_=bM֤ցإn {svx|X:؆Z !߻AΩOzJz\VXrwO$ ʬ=L+ ݥ+{` ,-wmX } ,@AUM읳ʳp¹n_1SVZ+ bK Q  AKo*PA P0r⅑vHУGDHc ).e"1 "5pHDĉg 9ɔC&rЄMlЀa.R|ǐ*Cz R (1a{b@!c{aďg5AF#dcȑ%?cG G3/VL!vM Hs En *iEr@5 : zCl#@$mc|8g{Pq# v?d-` 0 D!&90r@oDKL %  B@!HA. aAF@bK ,%hb< ~ f0 A  4!Ӑ)ă Na@b<RTtQFuQH#҂&RL3%1QM;SPCuTRKUSSSUuUV[uEQuVZkV\ ( X :!Caec=Xa C?I#9,m@8b;j(W_@W]NhKF0]w wj@&@6+@^hw b{k +~(0KGB!qXb6`v* $JMjf=bv՘g>H#l"m#|`a(HT(b 3zw( ,A@#&;K>|OxgHA0< LX@@5^dl@ s`BpldA/Gt0p@#iA " ,@9 I<탟C?"v#pi2 DhBED}!J&Nьj4r G;"ڃ$%HiJҐҤ'?)DdȀt)FY4 57}10 B5 < v 9NGR?O2~BXQVJ[ժ*YUsk]WU{+WV#UtβJ54gA Խk$&K%-\"e;&0$H @аjɬMVZA :-inZBQ #dHfXA8m8{zV!IFCZ([9QԪ6ie\f7 c[L'yp@Hld2&M!XXHs`"QAsJEXƀ%xGM%vrGJw5rKވA͏GAHa,(x4DhO<-;T#xx䠚=ldL P₸., "Cp@- D^,.Ѥ#F@nBFj"/EB:%D{ILl'>Ѵ>}01"フC+aKYXPu^Ż3bh3̈t Ќf2'._v智oft9dscmtgg.pmF=a{).>1LC<(hA5hpP qBC&QB{D5(ā0tF6‘xғɳ'JԔR@Kdz.=L6虮j#WIpjUAP^TYj\yu+,5OE[zYu]c~vݸb;؋aɲmֳf-Gf,g5*ר'cvUl`$k&\ l0AZz-DpC6mEp\r@6l9!|]oWGG{wIAFz72u|&@xE٘F< H_ќ9ss{B Zz7T\:w1g\ E$M0牞(yY-{22+38ꣁ$p 3"E13 J3 Z ,830=jBҙ!B34B!?`BHK-ɘ8K"4+4"6TX(5C zP[Y>8[S5H5pik? cd%)Sz6Ľh lm;ZZ 7o%u&0zXh 耚hӸD7RT}~{48|*8~B`*Ӑ:(Ci9F#)ZX#i%5i<.Ơ+(l91:> +#Fz{GҘG}G$,~GH H=A.@g隯> >0q># @>$I1ﳰð ?,<(X??f3 㢄JA0#K@%# A+Ь 1+3a/4C5ˠt36<.A@%x=A3ڡRMaԳB1!؁($4Դ'\C0BR,QC3<##3j)Z4̵\Di 88 bCOBPZ6>t~6kO,Dm+&^-F 7_`"Il0EuKLt7ND4EQB|#6fru*T7yV{"8Dy#ŌX!PL8\T(cӐ_`Ƌ(:R #)F, 7nPpq,)F)S:vGJHQ{t|DUU]i1HV}UXWUZFYz);; ѬSI1-ËD}|VI" λɂN@Y]uȝD>ȈKrWDS`KӁx؁߸ ۰KU83À0#L06H(& 2 (P3P 1%< Ԝ E=IM&3()ڌ tGY@ $ᜠd3 %=[N*JA`θAsk6x Y0=9HsOd) 0b]T4W3POO)ݠh"UR;  4L$mE& E&{ @\}" y؂蘎|ў\XqJ&#%HQQi{;!1M7EŝP})yxܧ.rš8(!/$ 9@:)0)@}+Ԕr >(1| i|BTEnTBE9sltT nǥPU!F:/`!֊*F9UZU*b.~ -b0cb1.0Ie3 HT؏HUS$hj=lWVߪINjo5h9מnUdGYJ<ԻֳJy5=KҐX`/%/X/ɯKY ]ٽMEqY0Y͂ڻCM Q˔:i͔1`V;3C9/C[جT[<g% 26KTU" 5-ܳN*4~$u `-(>5BP1)i8ݨ5]$%@f뤽E%TDj6E1c긎uD)<&JmMZ@% k8UR6B#Ⴀ PaS^| (`Gk"S>2aaB5Cᷔr9FŹ@aq l!>:vwtP5cQbFX%cm[mWmQE(b ld9,!H. @.AVN4 CK4}B# (p"(O*,OOC55O<52t j1oDZkжxѧ&Qe@Ѫ Aެ ]fq#kuv_v_$xk-U77zWҾr*Æ8Ӌkl}|lcɞaCPnю.2m ~rTT=-MuN#+VbG^܆Uw}|w~wǿމe:oY. (zV~Rb~@@0l@pv吃 =D} T؇ xxa Uw[D7Ċ- xDA=$]vC'XJ`BK0 1AW )#y&i&mԇMEuyDw'}' j_z(*(w(J:):Zj)R:*'#**:+z+++ ;,ŲH@!,H&qC #JHŋ3jȱǏ CIdEv Gp&$A@7 A J$jԤӧPJJՈjʵׯ^rذAV:у$n0k# 'v aCWTrIn&\ǐ#KL˘3k̹ϠCM4hVE}̖pСr"j] Is@4`'~УKkZ7r`8=L F@N(p <GHo(]BS`]a2d %ACa DQG) h(E Vu`+(4Sx<*(@iHZ%dTD&PFYu!9%A5!D"!l9Z 2 XfsJQdIf$x@'nIt*'$`&tBAA(]b)! '12%1!D*Y&$ %0ڪA ISrЉ$p@'@A) #P 5'Ѓ9a ɖ J$@Df,bh$ ϊZ"м~j ʩ g3JN+#"@'HJʈ 'mYH! "~!Z+IzQH!Zln(}oEP4t 'ك YwBm!&H&Hi$*އzn&4 @@NTRpH (@'lQ'A^pۈ~-hDdBk(Nˆ$қ9#% 4PHB8D,9{d"T Q$tIepNsZ 'N5ASu HSKj iX@GMv*Ê1O&w7N Ӣ:1)"-Op 0MwQ0 t@>( It`.]pGYiKߖ5}("Jw:!J!s2ہi"TBR EEQU(!:`4лqC@= uwmu9aMЂǹD''U'&hM>AdňOmSAdIn4D EQDZ@.3:ءYHOfT[CN L44!2AF 0r,عM T2O)r*jHL`ECPӫiEA(-kD題 !XC퇍,Ȓ4" II첤Х9EeqjzG%jA=/*Z)g7ا@vlZvͭnCR[v ph noK:].I ZI u("ٮwK7$-z$썯|!woU=C҃8 j nT~A:0`Gd  D hxN6-=g ?(q:bIF2A0@Gv\a+>Dr#5ز@R@V Z@,u @0g$h=hXSL$0 ,"AA0Hw@ oY !6l0.VAwX9 3R_! JtA1@)J)O4%( ad'AI" ᎰX Y n&!(F= AUl#h#QB e0P: iS p@ZwAബЈV4Z^a 4F 8@X2^`*vr!@ )L x(e/9gf(,36 C p7d>P~Ę 9 `Η%[nas HGdNs^X=Җ^0;Bx"`F _#CGpd2D0IG *@ ^`ΥH:- V.yAsH88:B`%ҧ~PP'Y|,( :XNqEf7BC#tGp @ dff"bFPj]PǑ&a}&Dp}i0xgeZ!10@`G1d1~F0v &EP51 ]@{@gA87q/P}!G6[Ǘjhi@L|Dp$P9o8P;qA0jm1u'n5w?BBXA0[nᖁ3"\kl0{2 Tove,v6f/gfgzg=gz\ȉIn ,`Fcj0DbLɱl,ʤh% Rwݪ,\,f<~vlf,`1qq %< {4KV(26wY&E|-$@x|؉-<\|-M ВŷyS"ѧьx{|Ɗ^{pN0((`M0xn\\Oh&@r1* ?E}++Q݂WV-/i]B9+奄W̓3ֺ{fpM0;`y'ٛ7 .S$0+ψϋ  \ۋv0a茺j]bC@ucj3mnM`kcMɖ&M&Pfq@ݳ[=PMagl  L٘9 N1.#\.N^o߿QH` V$Xr 0 8afȍ BMX@!,K1e΄cu͂5( 0D P1S#: )P0b*`N;jt2N3;PRp/ \J(Cv 4`EP Õ7DL1dHå80Y2$ Д/ 'D(dԫ_ 0L&^xAL,8R`9!Pe/!1y I"n@lBsD8!P, ēx@@Jnk`($< $c)"BÀz@~+b2a:N3#<4VBL`"$n1G^A@XB(zq,hd4K/ !@8B#t;(+cq3`TH Z7㜳ΐ4!HE: (!n *8RAݤ 2h4:EVA +@8:G hW @1tDu=V" l=H[p(ÀJb(n ;#1x>sU]܅\w5A XaFC0-:Bł&7Q9HlzpC x@ՅT`/;aRF8b:RGn3 &x9%luښon_^T "dfoc$xaH("#;FD8mfDA!0_n#YHu&!%|$x c&a%$V`( `d! fgh8L 3|>UDuOZ?w|!%ȗ, `4l ~x? llU7=C?B<pO NuD3!Bor>t7#O\BPęfP [C QC$b!GdbD(F%=TbʤxE,fQ[Cu2%\SVՁ"hYd g8.gt:g=D$#iiLr,3B&d.Lb #VR'6PtL` R0HTj4HIAR,,p` >IժZ5;+u(PB  `j4XjkCfD WcX*j]+[*s\J׺V$0ʐ/0 UUUd)K.&[ه bSbH8@4nd1Y[Qv̜8:@4@qv3yhhE;Z $1M[[׃!Ta=Nӵsb̆6Ttv`)DFڞA| Zt/}+w9)1 M^;x6Ejoj ` s66n 6A)k(,#R҄gt~A+;TXXMN )Ap H9PAjĩ3P;$ C#ZMe+eqy#jTT*TI =jdK0qJը&L5b)JA蘐|eWW\UWu-Y9ɼ.iW[cUZVf.`]"ISZx8*.}!"|ykmEz\,hosxDWuMݭa_ {[{GַɘrM!3=,wL*ԉ!`؁#!#Z Su!1)Ec@ 9$1Rٱnc "2,;2-% H$3,B[A%l&34[(>KB(B+B3B,B/B-3.B2,COB;/0? H P4!p8|L;MCN3C7: 05oQUSAp5P `%Z(5ص^@6 0J4b#@%UR$@1XԨ޳"{S pqZ xbs[+cCy^,o~3r7q k2[%]GT/y80؁!ȽK;Ys0-8p9 泹BE :p)[ǓcCX9B:#*RI: ;㠨yAQ:ǂ*0PHy;6,&) {K;ëµ"=ŋh 8ː#-j Ӽy;:ҫAG}:J#q-ǁ|7=>x j(xx C#%.þ- 8>b "3:S?+?S?-$y t8a\L]-  ̝1?`I+1*԰ID kA2*2TGY !ܲ2(j{DB5C &|'$0> R%]R1;gIR&R)"'u(R,#bCҰ2#72DK?@R#p`Ё0H 3* SEX Lx)!9D_+s.c$WEⰶY^6k761\ (X+'F((Q,FlU7qJ/stv280VO'cs/IRXʀImIɮ:LX)YHɛ$ wJdTi閬$A0-2<8h.@+٪t$2&K[K{KY<=, Lq;1<xLֺ)K=<< ӭRM˿[WjW:%283P6J/ܯ!餉;\M/+<̯ݛ<0l ! ԰P2m)A$2puA*|4 1[)љ`D eQ$Qwr&u1u1 Q.+]RzJ(PeS1R)/R2C `!`N{_V`~` E$ ƊBh: +?C =S#D|CSȀ0 `?CE^5P59GaHM![fC&O]&v Z*c7e&rsFB7BQU7kl`%I p\~'ft$_șj}G)8>ǀ"\H8$MDH.I XO`($ّ9H¹+T6{)*]ؙt:؃2 gsخ+J$!iJ$X;ZʩJX"mi +D.مH,Ʊ>䤌?\\BM?͝-R ÿ-ꉃODNӝ氺1QmP@@  A,t @"PIԷE*=Š"5Bm=Q^l+^lʮl$ lllXj`ml @$ 7*aZS6C.^ba?EԨae #$C=7#&X[du d e$ c$F+Lc_\ 6&y9~ h-<.'eMds% ^*kEeUd$yJ_No 먍,e|=Teb$lyJg* o+p~˼Br s,pvvgLz.L |}hDg>>pƎMO,iNΚcfNȥɭii?iŊ"Cţt,WU%UkpPk4T&AD kAA.l=erm3lgyq>d1l\v8`a?,%ldoVv + aiY 0<2a(*NNmmTPpHnM48% 4 0zwxW hcZ0;&w1AT0rB~xsYZgcX~ՅyN![d pl _ʙ " 8؁8i%tP8 SdX9)8qɪ; ~ע/GPyhgܱ +vvň7,Iq,羺 ?!C Ã$Z`t"§;)r[T~9O/G~h4 zAN  Q zA>>7OΖ9\NN<7B_??N\}-i߃.A?K,h Br q ’*<6rpG%4\q$E4 7? 8 x * : J8!Z ! ,)9H Ç#Jtaŋ9fdž,?`1f×=( l1Ь᱁ &1AOˉ@iC+ J~уLşi$ 8l 9١G sb+}X 4083ktΥ;pÄ'ǐ#KLˏitG?(2 #h)d 2H܈ )HW Inb ,}F-MlЀ]x4’fd/k)q׻!€_1dQc(!,+H*\ȰÇ#JHŋ3jȱǏ CIɓ(S0ʗ0cʜI͛8sɳϛpѣH*]ʴӧPwYhԫXjʵׯ`q@SuCسhӪ]˶۷;(  ܻx˷_KÈ+^̸ǐ#KL˘3k̹ϠCM[=df װc5fͻMMdKTУK_,!j٪iνao{0ӫ_Ͼ˟OϿh3ј&f3ü ,h.&f($0xa%\}(<# =+&̎?6PF)TViXf\v}U""*,c ˀ6H 24h %B %p~*-`%`矌6`%ؒH-b覜 %H@2h&%v)-0%lb%뮼+k&,4s *2 0KZE@3J-*` V Fe- LH]n\ I 3lgw ,} 1H1 4T@0; ,n8<4L3,9KK"lA# J+ 4NCaum!@@3hlpǽ .m˭|3uu- 8]'G^ԭg朇ky;^wnC׫z^Zy懋;޾. oX}%:ٹ3Dnv͆vx%h̀ZͨF7QWr#G8@&.IrCL哈LTJ L9Ӟ@L0]ԢH5 T:z1  clVb01Qbch̪""@ŠXJWxȫz7 paXc aF-/M4qgǀ,zP !/ hGKҚMjd$#yfJR8pdh%h:ЍtKZNFw{  z'T덯cp-b CL . &QC pWL0 ImlV,mlcRа2 `YQgCVLLc =5Q@L"HN&;PL*[Xβ.{`L2hN6pL:xγ>πMBЈNF;ѐ'MJ[Ҙδ7N{ӠGMRԨNWVհgMZָεw^MbNf;ЎMj[ζn{MrNv=bk-m(Z~K!@5PC}|v4cL@,O3m(i7a*>^J>{(  ycV/.꿄,lriL:;G ti j~ϝ<)Ap"h ! ($00rP0*SG5.id-7Y 毮9&E&4&!7/02Krm#ר3F9 ~i`"[ ͅ}ԛ3ґMM`4pYcr ޵m:`'F3 +02X15p$X12-C`}my:h)c  N!9<PJ-Ju( ؂v2⸩#J/8!8,h/*\ȰÇ#JHŋ3jȱǏ C,Hp8!G0@%KLA "n@A\ʴӧPJJ) R@B/F BLB$Ȑ:qĎ! Lȥ𑣿 LÈ+^̸ǐ#KL˘3/~0F &(86A"inaG5lt@v N8'4)pA5#TďgWr\Y*9L6) =,AphIЄ'Vh]v衇~($hR!,xb.(4(r DpȈ@t@RQ!TEE)P5Fਣ "0@$BT>!=<0DCZt   ic$uԓ'$@RryA #B@BYQ_t#h@~*h( 'N='xbH ,@I$ U>e .J @Hh!lꤣ q@'JF @' [&C>% h@"Fb,b+H*40&N6@'0!b# +hD7jбJ0MPh"CCI҉tMm (>!Hn0L؅6@!$ C,rʇ@A۝|BT*:!J4я*$MLd%R!,y \&-b R;rR:ttNjf"^cH'? J(֓M@+-=$>&D@!CӮP @^ ŭ=l )%0bg ['@["A:=jE(1v y`)H1R>Bp*_EN5.9/m(Rxyڦ x{Xۓ. PTHOXk ĝ aCm $tv'+Ԧ=dAK(, x $ c!B%@PG*!2VOTu!>HJo&v݅[xL* '<L{?ba Ecc^D PP@$E<\TVG'i1$ E9wPD9cP"AwPdJ@z@&=' 1jܗ|~! H)q _`6p#DL?C8ˢC$e5M |; Qu9cE`C|RSP=LMSGr<}BaR˧^ X"hMֶ̪a+\J׺Dvͫ^*ݫ_K¶uMb:2j,d'KY%ͬf7z hGKҚMjWֺlgK 9ȭnw pKMr:ЍtKvz xKb)Bn/d=;P|@ V p@6 (oGЁ=Ar1@ ư;b (@n17`ݎ8%ÉS]﷾Xh]+0'CyI؀D0l`u /8#8yo 0ql(06ުA7 ԀZ| hF;W"@I ss: a`An`=b3i>˳@06ժn.@I`sPe#̀v-vs݆AծC/(a V A{ =fHD/a l >d,C2p- 06t@Z~x-~;cxCV0a8X\wnt@Vy h0 5>vnoA Yio׹sk1Ƞ { pa7 ?  A@`]7<hPƀ+@P;~t@0tg`r^I;`̷aև}Srx`z0 u~4iy@h\W~ufeu\{gx}؇r*\;c0^fw|`nwv]fYzYwPq `Ņ^H\hh|VQu@l3(0U'jV@tfv\h_e %Zwg^j|[fj\hbֵux|` 5lFhYVl^tl0RVwjuua0_ȇ8n"^HH\U[U8X`渎؎]OXu(䲏qPV ;GM?s@5  Ie@*HY q`p9Yq p#p0'P ѐ!k&@zL!a`#`?YP9'jQ@QGW00JJCp40בd!?(@F8`9&$X&pQp|9!ci qp8Xl#1C'`(4aP`Бۑj<A 00 @YD J|w'1 > ; Q5"Yp 5ax8 1okX?Ya/0q; 0&1u2 = "9`#a1w0C&` y7; _P; [g 7pE71 1м&> )}$@O1a曾 ⫾T;{C$)DP1 7"!ّX' +ْ Q7p9c K 5q[q9=_;Md0~ik\@q0Ps⼄+ [{˽}@仏2>ɍ4~8~6<=,&y `Cp1p@MymX%)0 >=  5l{\;KNV Д!x~oB|(`)0CL|S,93Q+]`rp՚4P{zn#Ǯ tlH!gAT^ɹF,슉ɷӝ I85=?'70[~L ,AJfa\|X֬ Ȭa,Lna }7;@ !z `H! *[ڥcZ  TYL2_Ө1Q )VX4ݲڐ җ=oҟ,*EҰ񪱪ӷ:gʩ94j#?%/A[á\݊<_9%`ɇyL&1=Aa.٨MI:=+a#ؑ=ٕͲ1ڢ-8ӎɱ ?;l=@@ TMm_{pJ/0дc'Snwy4 'lju  @` CpH+ P##D$IRTppH=РRC6,ᏆAlܠpaz |`!OF!NCV`e$7z@%;Ld\0|H1Gf&\aĉ/fxqF'|\eƀ1ogСE&]ڰfөUfk؞QǦ]mܹu  ;:8D‰ 4j8¡ +V^ !nb- :dx~}s>Ȉ;5 L{گ3@N#:4^ b j2 8`pi;ڰÇFa9B@~R JF BhRI&UKDA+GԒKL4-CK(|K%撁L+PPp#`pçF d(0a zh qUub xHB1dr@,X31WHT*b l0z|b186Y̦ZlM- CxM402^070B ^.zɺ 6: X!2 ]IZ~FH#.@b4*"$ b~焍-9饛L haCvla*R T #֡ B8- R3޸?;&hv$xaH("?sM( PY(7$#Bp l%V;փ&2 ծz]OJ ,2}8 F(Ђb[x}`(&}t򑐌$1[IK^"AI:Yp E1dI,@^-ja K/sK_/P h&ÏC$bxDKdb%>QSb C&@b zUY6yxCH0 800 ρ=@N t@h`! aCy+y1$'9~fEARci$Hc$pR`JUZ%)L5I$5MpB 2!y'A>p2"HɌj- 8*0AL0`Cs r4լj?iAWJL XWą,eY΂sa▷eq%2,J)zd0R_ ppb.& l)&)"v)R2l!(@@3QMdWЄFekZ!FTZeԦ8[Xz1'+ v` 25x u¡&Mq\*wms n@KV<ɎvA^v׻J+eJ<@&,IM8E300); AJMN' PҤ,"L%*)c2^&=IPR񦤂&$Shdǁ6_ I&2=\(>Xm"\a gXâ=a+0qt#IL,XdwPC9z xs1fZA|S(ȏHUL"!DHǘ"s@MVO UD'RgN%/АLp((ajmzz"(Ѓ&PO!HcZv!)IYRJŴ%& "FgSJ˜Qd`A˷4L)DbS`0BY+rK:`#:6"#` 0B+@YPP| ?* $%˽nq׊􄈬he+".Y*x} Qte U).qZFh!t]׼up n:~'WLDPPV@ Â+jAMj $}`P!R4hH@z3VVЊVLriN;- \J̳ihZ쭭l# `6()lf xȕ3 0? pNÑe| Phk{.P.OPĐA v@h0h%.Ln+ؒCCD*鲤R/.  / ! J/XR H.H HZ ĮXh! $¡B`0p0"tKB&l[B'B)0(B+B5 xh""7A; P)ܱ(C89겇C3()@B1u/ ئHE@t[+ (51B63E'{8~C73 8Ȉr=7oI q2-d@qIPvIG7z|8zkC@F!(@394Q7B{C;):[[ "䀶S ʂ`k ,# i^;.Qۗ/Ыhsz 0-0"=X> JHЖ|H+\,L؋ٳ =bb{Ѳ>܁KMK k-+"ȐӬ A>ͳ.?ڈ-2 H@<pDE\<O Ю /9: t D// Y :;zh[sLt AB # $QB!-R#!"=R%]HR&}R(DҢ!Ȁ[,6,.UR9$5 -3*ã#K CZ2@"/(aQD`D-D' NTR\3D @؁Vgj9F}Tг(X`$'(ԇp5c44\bF4QC`zE0P]kX5sg5>5?vP< GXC  Hi3itnC5&Ȇ57|J ~tV(\(k{(j8;7\ hI̧}ɍԗdxLL0E6h)I9)[ӹl¯tr5D׈::˪KʰR5K[L ;ܻ̅Mx@jEM{<ѓ2˫MֻM/,K с,)#4-C##=s4 [ ;??ti" 8O[(~MʯEsu@J+f.-/QK hQ ܉ V! t(e ]B^e ^^%^^בֿkS5SS(1 51?E?]pS=28 D&_/ TR_+Ŭ-(A_0Gp5[ U¸TH=N$J )OCOLGX].0ONh\O͵AL]+]6  : L¸P= ]xĀܩƘ\r  ݌ijj.iNj =ED! c%_ 2UJa")4%P{UURW0N&fȘLM4>M_W,!bCb|[`:wIyX6dHr =_ hFoS)9d@YdBd$eԺQ~˘nRecXK [;P+e{M^܁kh@mmh]jk&[m gd,緍[ľbN+gך[غ֑BH܊Q1ɢ](E % ו]~m>"/ ݯD@jt%8'^ƌ^^)r/.r170s3)ECK@DՈjF>L- ְxj_S66DRS>;T:e`t& (Ծ>`)F ?HaY?k4TQ kFaa؆@YmtUY 33UlɆ~!VG_3bd}dRA,PppseɐpﬥVl6Mn|0.YsHXW.(4{5I=-~zM8c^c#$v.ށ0R CP*~G9Z0ntpK!96 *RKSN*ٯK8Y,+GeeǼ]Nk);V#ˤ5muf z c6\nN[`fpF<4xZ#άy{.\gdh -Ř8Tb qhNupr3 ghq#P 5AE;qAߵ^ŰAi!^@x3ߎ,-2~o~B~?O0p!%,H&qC #JHŋ3jȱǏ CIdEv Gp&$A@7 A J$jԤӧPJJՈjʵׯ^rذAV:у$n0k# 'v aCWTrIn&\ǐ#KL˘3k̹ϠCM4hVE}̖pСr"j] Is@4`'~УKkZ7r`8=L F@N(p <GHo(]BS`]a2d %ACa DQG) h(E Vu`+(4Sx<*(@iHZ%dTD&PFYu!9%A5!D"!l9Z 2 XfsJQdIf$x@'nIt*'$`&tBAA(]b)! '12%1!D*Y&$ %0ڪA ISrЉ$p@'@A) #P 5'Ѓ9a ɖ J$@Df,bh$ ϊZ"м~j ʩ g3JN'P#"@'HJʈ 'm&"~!Z+IzQH!Zln(}oEP4t 'ك YwBm!&H&Hi$*އzn&4 @@NTRpH (@'lQ'A^pۈ~-(&D@D!Adj!HR+3Q( A}P3D#7F nI HO)D\$QVhC$E/!  (6Y|d gXRJX `j2I ^pG-JdBQ1`B2 _ X , lK߷~(5Lf(_<-rZδFs91rɕ8$z 1Z:ϰEY1SޜvP#3Yf# /@BQLv*}p,P@ :-/"T )rJ3)JcI.Z'CEJSB9SԦN !H!()s5hٞ"3D6JjPB^YHD<"ʨU<ـT,I#DTp.K ]S,Ohv&w<[$ڛv#} e_K9ulo6$5nKwq$mt $ͮvdݑ`w o+MyCbY/H WI;rVEL`#.,0!=@5Aq8a-A@p"&^`B Р*0`2A0@FHl02g #C ,!$Vl&Zqd%*Hc# 2 aи &4~pf ,Gk3$ 3w8 `E*@ 1hP&CP@f$AAak^wdҎ5 $x'A;0( h J6!(;#=+ "xJz^ز@#Ȁ0 r1A} H ؂Ƞpd^2 j ' $h :#0`# `82|,,f{n[ցAtv57A@ot 0a0 ^`y" {́t2Bnv@ 7^@^` uL`3ca^WDxb0 (Eo0 ȝ#@Ц"&)EOz;vt˞^O@ >=7;8/@@^}9Ow" _nw_O{~І2C(@:8g+}P0(p a~{&!m:@~,P=1yh h}/h W'n e0vvfa\D&JfjGEuPd0@f! xGH> ; /jP0gj! )g t2d?g!N1TF" "VhvPh)P[$w%@J "Tu``0a% hWƘ$(i7fBf'a+fef0*Gp@d16cnHc٥c'@BwDgttJtN7P/~uu rvi Yu7"]J:~~wɑӇvmzw79 YL;0Iтهi-hy<0%xe8$ "9zwzz1zzsg%|{(ى g|3y`B`{7vqA]A 2~ 8qAQ7Jyk ١Ņ~hgE@*`h.& 1J $({'+q4cXw91'0:Gi8LD Pi2 = "dSX;`;pjTIge2ɺ9xlK؆keT0 w8![Q@!8\ @@XG";$[% h̨Taf,;/k1{4et0a?w`j_(` aRb"︎x];f/cxqX[lpRdaY&o+ij#`9yZ{ba;PhyѸaVk2JcjQ D"n2IJK`hPxi3?CYG٪KٔqU eKPv!mfm%f1+fyC0Vnndd=, }aeIz(R[l791qv))is AL ?p  | ls.IutRwiҝi |Yt?qo\ Y@v) Phiw@t0(py'vl **_|uy)zA|Qw{Av\pG,Iqy|\;2@K`zpV0Y|+8*V8Cp}ٷ}~Ѧ V*I2`0ĥ:ԧH6,`:Q,l \ ׁ|/j(ʩ}ڗ}J!v@ɚz`z;EP  \`h2fz`k Z,8 I!FhjwJ"bU@[ުs"0`GP=pZs!: a8MH':=UMK|8˳Aepr:v-^Ȩ2{|[y{ׂ][=BZh(8bw-)fIgpaa&a\iFRTtf e+֐ yc?fh@KF=qVtn=xEFVB&)YJJ8}>)mi! (`;]\*a׭XIFnzYv  ƊhqnHI cZ`IT[Ed"wx-:vD6uqan)q@%uA&ssJl,A#n?ctAWw;7s*0NE,!B=Lb .dC%NX"Gdp J Xp90,< 8.X(@!$0 2T3#}PH:h;jރ1KYbApBs9a,V-KH IjzxJ98A&("@T!8BƅL(b!btk$HA LF2~:˭w[q ~p-ǜIHp *pl_W' !D 4~d0  0!nSktB VZI& *Z*|҉hh-[DW a[i4HZa:@)@ZLhFS :CZ t27qPQci'-sN C0ʁX*U㹔C;d{ & aJ8 W ?hC5X2*P6!D vHih(Js 7|]""QM^9  l1"RYppcQvFkqP`:TE*R Y ,mEV ըJu\%ɪ V2e7.OW h3RBƹdg;`K[g=yO|^DZg>Os,dA;p?*H}  BjЁ(\U0F!=Be(d;X.%h RHf2\V= _@мJ Ճx1h_LJev.@ȾR  V-i*j/I0ЦpTJ80< hv`fjWZW&\0"7U!#V,pp,8ș34`CYāA \.NN hP0!I r # d7cIDKvç:):qi` Tr  >RD$A&םHDBE{ dgo~ PBo}k_2s^I…Ɨ`,UR S ơ`r ma4HA6*D 9l}9 ;9H=4aC &M 6C3#/0n,h lB*G 71=ӟ/:RWI4y@^(fB opҮ4Vh3эr=AB$\N"٢ )=R ۤIPV `G QSZ^"p$cʉNKi#;5& 4pKf,r,\gSXl٪YdB~MiVLLX9\` ҡ~B%{@),m=T?v}Zl~w=Wbw5B> a :{T5,&X0 $$C $fsˀgB,R*3]oze/iTk&T=`4A ,4a!^Ёhl"KARᗄ.e\&x <_;=d_A8X(6n n_2ͭ9f؁Z7*(Iljlqت Q5ɭݚ%xi+h>ኵHɁSWzؗ*7S"/yfEI; SH8( +C P1k* $< iA#6Jc$XJ,2.S-43  0iŠx1/K3CI @{3%3/$'G!0!^$2@ Ek4 Œ#@%!itDS#5%8Wq6a#ꢧ/H#(jDI" e3g  /AB/ -@e,C0+0YMÁ=]PjбP T7a)ѰС@Hc@ɂD+@,%*uQl"4p.)_!B.BI_R*ElIH190Q0,X 38-9C;݊BC ь ޻!2$1D-C;S_ĄQT3Ե@M +OU^tj<`>VEF]4bY݊FUH\^ !bl$ `PC,wpZ]S]p}VVZ-"Vo;puq-s9+עW#`W4ICr"̰II/B"$lI9SaʕؗZJp ܁X Y%YȔuٯTKA@QcRڞu$JՌjYM[p^L}ogu^ge;Zvgy'wtg|gxNS=K=Qa=ܽڿ*]I[ܕi\dh%Oٌe|L݌(hXI $ }MMݳ Q9Q ^}^ׂQEݎ^nھS'P1`.ګ"ҭ ` .v p 6%8C@ScSn澫*،06va!nb!#*?cbI+(,Ulk~]I 5-6?@B&Iv7Ydpq`W~WK>"~SzZ,N2L] e ( .Y( fWn[*桛Tef6Y- dnl/`w?)gO ngou>gopo?p;D̀㊛hb!h:Έp:N[)> _#.TkCqhJ O]Ź(i?x0r}C?iP0d=-\Q%jtYLjmQ8o`IR @;rX` _,%(Fu/`|jk8t*8k sɰ?`~.S@tS?MyZ;z C,P0CKuaX,c|PEnSF&F%n@3le "ZU{ nb6d}(d CVMӴ x60QDk偕/hG|JA6WdCfcwmymIQ픬f_yduKẄeOHez):Lgn{nt#퀗b>ъ..|vve=>e7mEO6/A+~~0P_p'm}'}%)@ؾyDw `W!KVޏ "<`Ӳ <=PfVȅ/}$xSD !lZ-7<1wK|;Qp{$R+6Qyu+@.C*;)JOȅ z $S7A d(>1wQ4#~Y1P D['/9Fk| )78֑s+HZ)*. F.9}#2fqD08?3"rL8Ir3w!DU4%Nlb0$oFҕu dE|Tm0&,!J(J}MͪVU߸` XJֲvLJ搀@ ME=1zZ x-S] >#m&>8&X9C߈F4nL=>x@֤ҚMjWֺx-RT`Çͭ~nXtK,#Eu+:7=H+(!![Pkv Z#PriK|K׭@$`x @ :qo~#C(` cHXÕp IH!CSz@:Ax8^L'qPHLJDz IHN&;P 4 @cE$.p&(5iHC bFӶ:CbԐ԰e;)6^5-@NQL LI-賢'MJ[Ҙδ7N{ӠGMRԨNWVհgMZָεw^MbNf;ЎMj[ζn{MrNvMzη~NO;'N[ϸ7{ GN(OW0gN8Ϲw@ЇNHOi'4ЇVr#@:\nq!ROHu|5- BS}#o׉x Qʖ8A@B8DXFx N u L LCj /#$Z O P - )Nix`%l  rX C sp( ]4O G`P &0V D@)C=e= =.C0O`׉a B@@H \ ձ lH4hBWȌ(j 4xP,ɀe%߸4P*I#4=Z` >"?PVpxde` `% Ȑ( 'P 况HC1Wa7H0x XPH9 7ITPV@LCː +` P'`"%#5:ՁVZ6`:PE/P>pIQ0ɏbU4i%6 ) &]&ȓP 6=/@Kّ/PC6PKi?] _X =٘  ];Y]0Y j'#@/}(PJP0U0wX€\P Ie ^q6> ;_C@C?"A`7@ID];h#ӸٟhCp1R@57@BΡ `%/0Aj%1 j% 5]0wP)80@`%- @j o)0CKY ? p-o #?K`%@*A`:C  C0#8%4i dD#V7@-APW0m p2 :"2x]M|$0FL@#7Y`%ʩ )  T9aUj I 02ӃJPMëz4aJ,v@Z8GLӬpp60'P#0P9hfAEF/Ց'0\_F ^Z [ZFpv\ 8+02SՑ EMP@Zt00pH2AjoF* WA/!2pѱՑ''8D 0P/PGd lZ%8yKy1\+#MWу0 CGЬ4p1#n鸎VBj(-/9 u(l`)`/اX򵉸:k>zC K#4yNGezՑ#@T88P>j(ke9&PFI@<@GnD u F'!i+-2PLcH 9#`ڪE0C8P/0c͛FaYL2i0ZѬաYL;0Rl1%|:2u J1'F0 Z E 8( Ij9[ B`C뗀Yf ˰ZD?Qi5͡Jc\^PiH)[=<87Ўc>:xl@h`I0V\%vP (Fk C2 'qRG' @ CKN|G 9K`@e8iX$ `˹6ܵF7֬!xkAP7h NY~Lߌkڲ_9ekpJ~ ͟ZR-7 }=#vs<("M.4&ѷ w ty.Mk]5}z u[sNLRO#R}D 9 xB]vQRfmX[m^-G=:w-7 ȅH4X Չ؂g؈ـ-"5؄}:R0[u׾ڌѬmُӸ6]7sMԼ{VBܞc܊ڿm% 8ϝ֡]r-mͭ#ѭ;g}N4ucҽM]Uޜ.ԫ8M߭87'߲O߉ς'L: N]r#=75 yt3ߤq.y]Th-w*HMD˰&𔯉6% j-`I-8n%$7Rδ(i";M4&׽h.KW6лTG+o IK '@]0Œ`1}W[JKr0:@L 38'C&pCPR `80꥾GY/LIpD@= =`).0ipqӥ?Au8 6 8^UNLLuxY9s_2l-8"P6J:B\0 &i 6@08#pA<^ E +rn P0@3q?Pg+5~&`)4Cn5p$:@Þ^ $1ZdG⧝9}f_]_k،mcRv{#P];`R[~ID`ˑ6piNJ*=̿ 9[V <;"a0.]1P#1 ! )3[[ugoi5]"oBq/ܗCOxz/}9ܔ#~o>;G9^m?7mRԽͿ>+>Z*sq=n Z=nѷGm?Ռmm9Պ?7mRԽͿ>-aFbH la@D-JL  pBJȸE0  5męSN=}B<%E>iRrpÈ(^hUXe͞EVZmݾ wiA2 )P `Z4H M In Ƌ2zX"#CJQb M#0r`sm1Uܽ}\Up6>\8qkO<:q赓K\r伇w]T׆B Rc`  ! .{a Cp 4*2 A (0.@" G$DOD1EI@ N8 r`AE]n 6^y祷^{7_}_8`t`e"ج8ZxMsb[&a29nWOF9eWfe_9fgy`oƙ\*n~7>Z眗&_-@ `Än)κ.h!djr@8Aȕ흞+@Jd:pt]uu3hQ4\iq60&R)%h00 P4aoPv.Oh,ߏG>yQ[8Ω`B%"z&lzµߌ50H8Ȃ'`£EkmĀs@K vDh87KHsӅA&&R |n} 4daT0 &!a8D"E:@4@0C'N G#$C:E 曕bd"ELd & IL;2 Q{b\#eQG]^8&r n@~`L &_ȁG_f/.yWXG%5!BK,$djGFR\x|!Godn AJsLf6әτf49MjʅܘDM0b™ ddNvӝg<9Oz֊7D9\R f>$ զID6oR[lSOSܧ|Y Q  eSN'6 *X &P|.  PiiOSEvr(= ^!+^8U=4y+DA7CN! Ȑ`o\z8!tk?"yR>ݩl>MV^7i P*p ؠ % (m[iQpCA{CFָǍf ,- uahHdA/gHF@2Ȯw VgLHCaEn~[]&dI`+GQ J- 4Z2@S#Gة'VEDD*~Ubۤ4Px)8-quc?rvCYn.e.F hh_y9eE '-٤ zAF}@vƳ!v*D+тGRmM5aij0diC*ִ90X  Xm|gF/ έs;#F1AtpC,5&1,{yGkb1P-Sn^#ՁiOĆ(sKXv[*j+k"P@q$u !,.-#Pj 0:J!/ؿT5b7툸3!K8.x@y!b!0Rc") < =4CAOI%h%Eڎ +KX{SKP0/!H  3y":/KSb `k 0[3i f !d,h/*\ȰÇ#JHŋ3jȱǏ C,Hp8!G0@%KLA "n@A\ʴӧPJJ) R@B/F BLB$Ȑ:qĎ! Lȥ𑣿 LÈ+^̸ǐ#KL˘3/~0F &(86A"inaG5lt@v N8'4)pA5#TďgWr\Y*9L6) =,AphIЄ'Vh]v衇~($hR!,xb.(4(r DpȈ@t@RQ!TEE)P5Fਣ "0@$BT>!=<0DCZt   ic$uԓ'$@RryA #B@BYQ_t#h@~*h( 'N='xbH ,@I$ U>e .J @HJ (CЉ|B( (xB (–y.D]Rj t-l$z"ĪBZ_njB(P t "(>zC*INthzȱHl$ E `{Z,4]~+$ -PKGT³ˆ$j”|r!hv'P0SJ|t ~ %SжĹ&!WwIT`ȶKM^9 es`B0{ 捲 R:D7~Ԫ=CXJVhMZ/tֵpN[J׺u$s^W䵯 ,_*֭=b2c#Kʒ(9Ȭf7z hGKҚMjWֺlgKjـnw pKMr:ЍtKZw}uz xKZ7tHA\#w0{] z}[2 pnp%v _0q#4ֹⓋ4lso;A{30V^F\e[JL؄NPY;`VxXZeY\ Ӆ6bX@.f(W@512!!pPX;GGPd0( 9sEx#p'X !XHQ=*PP1*@;=  g*>p9;P]`r &;ЇUG 0!?` &rX$8Q|h8sXgB!ЍAI"Ia98YKq(<Pp@@7[&k*qp2;XC`0A9I(+O*}pqD9,@x?NyPIk: E{q@K1hKT$p!Pa;BW\F; y@!- ࡇ0EFp/Dr9e`v+I 1iF0vP'țq(D@C6`8Q)\ٜK6X:CK$14`uxHٱd98<铅:)` )Ip/AE?5jE@*`YHޡ@(A%809#pqNq0Z@XGp71 p#G0'׸!XR k0F!2I4#q0&` xyZmc jpxzj"!x UJ@ u]U*:zAPJ(h( AXөx8)X"a pa [P1W@ Z1>Jோx8 X )HQ "j0¨~_ |=@fn107$@=PYriBIJɔeyRiTiXrIv :`mAii6ږq1|ʵQ;,Pwy{ٗѡ( nڈ'04 $ .* ߩ雬v'Ί)Y֙ILA9詞y_,DjaؑsC!M Y Zڡ "Jkˣ= ۢ2J6*8::Z=*{YG Lڞ_ G`$? $06EAsZѩzʧlZp1Ja3tz›J.*zj~0Y!P4gи:"} :EV|QXǪ\ž!N Ԛ؈؈jZ  ѰqLwL!eLѲZ8(HKV +رh* 'I.0IP/`w˳>{yd@6H}E{I WO;r9MYt{PYW]_7flos{gkCHbѷ]P̂++ˬ-`&Fɇ ďKW;KȖ̩;ۛ;!)YҴҶ;Qx4lk{5̬dJ ?[W[J?ʑ!:9;Z+˽@:P!fM$qpMCI*k [,q -d_GPL Lue % l"lQ(Z 9< !$ A>C^LGY!QKĆMRQ1:}\hؽݐ݇/L'@c atJyWf<h|j؊NnLpQǣsA]\WPACa?l !.`]@Ypgeɷ 9-9\,#Nq@ΐE,˽ TB$,3IPAHR sP.*V,ݼ߬x)Y[ bU̖YY|ψ̳~τ)5;,#BK-lM@KaB`4VYL0;ҧ4 -ꯋ 6 8};ݻ퉈OA&FH-dnf.`Y /t@;stVWݠY[^`=;+拾k];Qgnݾk޿0`2| >@Ȝ3t%0ߔsN:N<-N=O@tЇ$PDUtQF'Bh2^ w# ҔΩ"308S) ӂ^- `h)-@ r5WGIH1| @d!+jIsh9?T#THb TrC)E\Qh $F`#U;!*T8%v0a002n !dxv@"P !^vY 69B@![~)|LC abpK*i~Xc`z_}]*GBе)Jyh HBیLn(NaL*!! Vk-1(2qH X>:("$8o$ܐbO M A0 1rS*{Ʊ_HT(b$ l0c'ޏ,NEa{d:/};@AvV0 2-jy˨Jx1Bu>ȑ($&x!$ì$" ҂hRLE8~d '`xJ'I Ql0-9 Up+ĩ]r-N)a\X2,_#f*A R*Lǀ@*UHXFw1uSհ59ب@"de.D;E!mHs/$Q*YLZn ml7MpP9as< :Y%w#M&eNyΓg<@*@bdõm/@h)JR@^ eH'0 N?Oĥ A @   .Rhd6A  z<",QVt+(F3@twhDMѠiϒ(Mk@6)| ?XrK\fDB &p͌ⵜlj?@F4!)JcA:ele2z lM~;dҠ5TRW)fJL^yR&` F vB2P`BpA8@,b(,ga`0 $@*LMzty=x|N_ΗQ5&";څOrwå`N&+xDhC3AB xAl@ " diQDc( OO\(YOūde+] "10\3> L w CXk,<:YM0 #  591!LM5Mm .77SjvȚt'|&SzTDDQZV=@꣦DE:dUc fE6 h-UBQRA^ULvEv]z~w۩y{Fv 7pJ ȥHAJkfcYZ ,%h5,RXjggՖZ=C[o a-oEGx[p` D5,K BwcYs}Y|Qwr^ L.[~ߣu-`/Ԥ_p~\=5 +b (94%H,+#q$(88-I&(#23ǹѲ2+ * sB3Rp=:(/ $h%( .(C >@>c#y/LH̓Iؽy뭀I2)?/ c/ҽŤI><6p&Td@p@0A "NLXc9.(O݉(H2̹ٹ{KI"ɢȫRIc u2Ҁ:'ѽ?(ѓIʕغ(G/.yaMZ YSs.Ź>m #/?M/T#NͯNL}mW7qil@/|@ O NL1ҁK]l: A#K4B.U]B ,c2/+ N3384B: \KD.1uēQ]X%"R#^CcM3[iQuY9Y&-E MK).r5,M'5.-/0D89*Y#[5յ!V8SDEUd;Ռ<5Z$[̷0WEG X_%`T:IabKL6hvCUqx l V7p4~S`UsBGu +Z՞sZ@V^_ V|*h%ȕ$}dHQ 9c YɅl|~ljH:֘ ɘЩrHt}y: Οפ8I~I:|I͓uTU0IXYXWYe[Xe]ee^e`.hAZHY0+KX ;5 ͳY"#]-U=b=N]rv:?𠗢I@ eͬ[ۤM$0ܘ`~ %\k@ɵ=!Ȃ`](^BxI2T ~;}A!(2A] hPAPy Y^/ }E“.H6ҰDQ"@R_H%;J_,D0-DI<1J`Tu`v&J8L5c.NX E(ޙvD$$ | bqK "dRFO'7sS G GR5-F'F/ƺ0&"}($:d3dDHssekqeW"Wr:O6{UQ}:⫗`X~eopo/p'OpD_^ppp ep p p pppqq/q?qOq_qoqqqG!6,5H*\ȰÇ#JHŋ3jȱǏ CIɓ(Qf[i͛8sɳϟ@ J(&dVKr̢PJJիXj Ճl-_ƜɵٳhӪ]˶[<Қӷx˷߿5zHn5Mr^̸ǐ#KH8ݖN̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟O~VbZ Y-(/8EF(c&Ȭb %N %Ya,"U$L%P &I=<&`@-&Ԃ L6PF)TViXf\%,\pA3rl C4#$@|d^@v& ,0&&#,z̧>~ hjg@z+<}(Њ (Ljю*J&14Zxl!Q #: @4LҚf)}C3a4Ϧ@ PJԢHMRZE-VQ8223aeH9)V dp(1HֶG`ja YխxU,Rq `X+ּπMBЈNF- 3MTH :Lx@B8DXFxH+p N& p:N!@JV LX]V & O](Opo`0{ :l@'  `:u= | FC0 kg H 7L} ȊPp(@?P  po~S6 n~s R׸؍C ɐ B €D3 u V @ ` & a5 p  `W(p P 0{% `" P   5 !- *%  '    1 &p &` ) 2A Š| Ia 2 ` pP2!` B{9Yyh1DcgUiLro)YCym0A21)y9i隲  0)y0Yqi9)ٜEgK)0 i09 hK橞AY9Y0 Io%&I 8ڗ︅8 |v Ӗ0"I Jڢio*h0250Iz9:.6ӡ) s-c J P3Bvv3a㥎T\*cʢQJ`*30J}0n:q1HJM;:NJ g8:u1bqzz1Zw;y*0= 8*1ʦ 3#c d[J1iy2Cyɪso:hI0 c*-v.֫ cJ1:0꫹#ۚ0ʚ2ڛ*CgN 0:0:06*99[ # 1l}63V:;%*CJp1|1)ۆ0#{0)0Kz1,:1; +k:*?H;0O0-[J/1003˰zV06**Izrj1"jdl0b1򪵇ƣ :֚9+1kv 8<+|k1cz K;0J6[4xh pl۪Sٵ cf* 9Sm481JH1˭3{8ӳŻ5볽#%[Z cK뤐ԽNj9NKak5+X ok k>ۋ0+_3Sz l1J֫J컷 sk 04̿\+û2,tӽ9kn`+CˬPDsV$60d,0rK :lZl#ڼqIn&sܷ0cxz|p\s@ \ɖ|ɘɚɜɞɠʢ<ʤ\iVJEii#?w4x8W0P@p"KI}Cp;'I@0i1=*D@0|'\pd`H@!7p;0 7L@d @@B&j2,N*zH 26@0 5`mP$ Vj 4P^v5s3G0\QG@GGNv'@Jt4(BL2t(D' KR>7Qh )Z>*ҒVŨJҕ4-}L+ә45NYӝ4PCғE=Rԥ:ATթZ7UVqխz56]XYֱU9==Zsԧum}\׹ڕEe]^׽)}`(=b{:'}dgR׻ZvDf9zBhњ@]IjWֺlgKvYͭnw pKMrG8lD[2D0yDX0K ²Gp&B~zLLB%#LN;'L W,%2 JwbG&KGhnWaMX"*6qX-.ք^d,G6z]Jxn&IdbÏ#({-A%(XcĉSn/Iq&f\ |hs%P MF|A^j&'!E[56A9LZ@MjԨ>YDV&jWۚ/5" AMp^ N[lCDb,VM-`0,ўғlo@栧SMr=qq7睖e7-a O҃t~lڄ@,,Ya X\bWP%` W2%L$\TNqdj>p8Rl0\ Q+&0[80N+50AT!,HT ؠjqĺ۠>ީW@֍uzjgb'I8b%bL-˝]ǡ 3Q®r!@ 'K/DK;ț!_*@BA)Ppizw!z>=aodyY`p &nR=C4AA%A85`74VM*_@c@w`vg"P@r 9C{-r Ȁ8vF1p"5`;BR:,j1'&)}_H5+2xanWWAp?ȣ<>* ?>~P`{$@=$7 4Kce8.]HC'bHfh8}+'fa'4'pm,4F_]{_Y0sPv4@v'0$;WtJBW?7q8fwsd )@W@Cw'3E?գs(E_bQH2hߒ4P5? %X5#'hw`"Jq?t}pm|s%@Jg!rAF%N!r,H@- :dpŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͚?1D 8>BͣH*]ʴӧPJJU @G[>!ճhӪ]˶۷pMɕ "5 LÈ+^|DF¬/@rϠCMZ46Bcgn(Q۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)difUI(aÙlFltI8쀂|閜K砄R$ 4@6Va0f馜v駠*ꨤ ٤jꪡP Xv ټV뮙V*6 @6&k՘`F+Vkf0H3H{i(9ȎFcpC`(Kz>|$OJ\3RSTu|GK8p)ӑs1A.zX3 jN;ʑZ3Dt85X[Cn4+ /S(Y IR԰Ns$bIOi5JY6u@Q+z6eN.EgWY-(<ĩi~0JjQl9ȅ"mz[Út1$0[K ؍ u]GdL5-0;K<"zJTBD"4qw)x#_LXF4cKbPJL!I4 QC҃h\H7VLccPP0"^R@L"HN&;PL*[Xβ&E!:- z0>13 c@$N9`!D JC@!gC9ѐ'MJ[!8B8mlcRi7` mEJF֮Kk:4Ek6B}_7LkbLe98 iHA n{MrNvMzη~NO;'N[ϸ7{ GN(OW0gN8Ϲw@ЇNHOҗ;PԧN[XϺַ{`^@ ^I7@Φt? & LD NO;񐏼'O#N@J1эt^y[ҿD+e25_!b=%/w'lޯiH|_&ύMr{Lu/IbJϾ{OOOϿ8Xx ؀8Xx؁ &p-p=@5)`/) зY!1W@+H<lH9 7j3XE?2P)`1`FSTW@ONh4`/@?B`'C6P]iH$pR`!pC=y`^P<Xq> ;@08d?@aS1A`7p=M1_؋8XxȘʸ،8Xxؘڸ؍8Xx蘎긎؎8Xx؏9Yy ِ ep{0Bo O 1" $ɑn1N @a09* e NÓ>k7 O E9E> P{UuD\ٕ^ i1cc hy gi Va | T! Ơ P`P ΐ H 4A ΰyٙfQ06!/Dwٚ!NF)y| ٛY9Yɛɹɒ1YֹS#ŝ99By:Bɕ\i9K 9\1 OBM [IB[ʌδ  z)B:BjJYISZz癡wQ٠JB1i<JϷvB(zE%BGj\EѣN Hȹ#eD*X-d^EQA*߶B:3Pt4Ħn ,X@Ydn'j>T4$~Z9C%t Izz?4Rze}BCCZWjBZS:JE*zVBjڧ:CBy:ZW$*4童E5z?zC: :JBZCZB)ZWZjʨ D*B牝zCyiqڦ1t:BL ݪ:Eʞ:ZCjBVBvB "$&;%"ˋqڦ5zCgJ3j͊6-UB1TJ7!bAB8+C\C4Bte(B*6#겹cB1;3Ku?[C:πMBЈNF;ѐ'MJ[Ҙδ7N{ӠGMRԨNWVհgMZָεw^MbNf;OQʠhO냝p6k+ek!#"n{{>7\qՕ/m;7R-z d )LDtSx.8p)6JGp0r JGb4ϸ7{ GN(OW0gN8Ϲw@ЇNHOҗ;PԧN[XϺַ{`N:ZA2+>P@y,0 #@Dp禬d"`FW;x`1lA80K˧90B*%h!~0̝AA zh_O[Ͼ{OOOϿ8Xx ؀8Xt5؁ "8$X&x(*,؂.0284X6bd.?փ:ȃ>b@OHJL(:BMR8TXOhUZ\(LWbG؅b8dX~+>*=Ɔ)<(&;F'f:&9Ƈ%8$fx%8b((b8XMxB=Ppqqx9ԉ&Dh x7H<O2HoqxȘQӋ 2hXxK; ԈxJC PqN}axhaVX` Qy ِ9Yyّ i(i Tq(*,ْ.0294Y6y8:<ٓ>@B#&9HJLٔNPREP   h aH)SْF1yFp I)9uYdV0:8J){2x('M9>I`'?٘Hyk9UYP` pWR*2 d V h2aP /*A 6ItS:>L`%dL PCN\ehO?5IT2'b5*U*TJL5(SyvX XֺRC 8) r!b$ \SbI%nXiraijE{a&sN` @Hnk8F@-Uࠃ v ~P 09dPVIAѴLڴSD$T$SbkVz!e]o JMcq-׮si^ٞõ3BZd 7oW\>ʞ#|r3|s;s |tK7tSWr;!֪ +0-^KnJۇ]]T<:+g~z꫷Yo}{{_t7|G_{#!kV}m6-ZXE+D.BR(]x4҅$ Tfp!;GFX# *Zd`!/a~0谅j2^  !@t>8b#AM}Ÿ׆ ]re_B  L`*x$X4` p! `ЃDG"0%@!B6 @d.p"A@R]B+ .;0-?M~BLX DaE BF0asB58IV򙻌4pӛ& 4?DOطE|Sg?="$AxJTB Bz HQ,|"A0XU4b Zd#7Hh0!ID8n|HD0J A8,!@M εt"ɠ" ck!*HD"DID(b'U5$#)hJVҒd&!M %$xš+YRל5+[ˤvc\@ G(' DC JxӅQn6iBu.TFA`@X6m`p޸7 qڦ9Бu§;߱e;;0g&΢2NDW%oy!#B')j  "rjPL(l@H{@ 4Qk+t)iK^*KØ2)MkM8!Nvbԧ?P)8l̨wRi ^FHYfL0֏=QQ**'sњ3*/872M_cpB3FC4pTrPDך|Z\5V9 [X1Q[K61N >YVֲݹ,ٓp39gXІVU!IVK'_M#Yn V( ˄u'•6qvmp; w}ntuZۍ;S&}Zo\'x ~Q gx>`߯1L{Ƕđ̹>(!Ig\r-ňbps 9B^,STHmCʼnPd_3**!Ll}t JWެmIKu(V\G礀t yD.t6YKfMH;2@,DBl[{ |%/)̵3K/2L@S/A7IkSA8>&evxzՍ|zA8YG /hЈ`).;ԬIg2,`F<0! RxA{C$Q** ة *0** zz9 ?$@ *>JY+(Sq`l} (-3Z;bȚ,r. Dӯ;(B,Ќ@(B%H-б3CK:K H\GvlG ᲏x@v A"3yH304739:I0<P#H:HGr&lH8B؁,F{40I#ô[P9Q4X&"N{O450'3tGLJtřj 6ٶJJ4JK,K?>r?3B?b)O(J!ДZҾLL2@\lbd*p*@ ª t A?T+HAR)؂.X"QЅBڬ,1}2ܣC1RԢ,zy04mS&<9Cڒȍ6l?@$<, B\.8TC'yC9RP U+@8]R!DP,EZF0_dUE(X0#˔^0Y0ռ0cT;d$1U{8]RhùRȺՀŒHS-?U<-BC.P;D.=,H-SJMTJ=|T .⫓X 8% V D\$1#ֈabFK0VsT(VFfLW-A)W7G Nǣ4bA68z%tIA3G ]iļdH&j.ƈ(ɏUI"4NsəP[ْɝYSn5'qٛǜO AeGL{LfHZaYZ !, \7ldF90!B$@"DXA&:,Q ,y[>ʜs2Ө8x"a"X1S! , a7̰"Fv0bŊpchh *cvl 0,tS:{33A!, ,`0CYJC蠲JmuTj(DRi :diC !, M#u"@A8\8@A#Jlċ<1 xcFBf @l!D6sF\hO7 ! , J 0 @`P\0X0%$-bH(ZTǏh1$7 @@ @I2Z֤O!,H*\ȰÇ#JHB TȱǏ CIɓ(S$РA!*cʜI͛8s4!@ Jѣx ӧPJRʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹gJ|aC'E 8H'JRփ@(alp Nȓ+_A6B0AFҧq!sDGc "6>$1Ӝ8;C +hZ!`lC_`'p` F Ap}h(7aq6t(Gs x0Пy,Hq `" 1C `P$"AaܡJaEfrk 36`F jt4|⢌6(a'aKс(fajupo(alX y!.C=) M Ma: m q0 { 6[ср m# %+$qp<Fl'[~ܢ`Ds0B7PtDg?A *i'z-FtDQn{(Dh pj?x;Xw&\ zL0C%g|p@+p@(Fc̰qGo`yyf  І%{h?tx@h hmI/f1fqcs[ B:2Tde~gzrj {aoR 槯EVdC B U :Ё9 4 :(>05?$1h hЁA 4HR(F`ܡ5xatW d%dA o\H'I@`"@ā r0E %2g8@pp+.aH"ʀd#B#9D`&P%,0 n`R҂:` P Bbp(@A 8$Re]'@`c&s!! 3 8d : D$ `h60B19YC 8Ct p`LAn- :Da /%XM,=@bp CA2"A)Sؠ[FApfw0)BM3C JCtD8;pZf 9.0p`P!R;H `0P zD2 e'A΀Rb20L@;^ at{=MldV!ހcQriP0BP#sku Ȁ@]GN$!+>9"xu5ҀHǼ| D z D_-  AB^*aQ -Ȗy&bT@)pgv@L0+4(j1@&1HA!b|)dL>&;7 p }A grRn`;pkN=o5@|DQcVhE )0{{ G2i\c߈ xug H8n੫@ȮzO<3 xGB D́n@_!"Adtk7:Q`< dr $(EWR6Gì\BG$қ:Ҥ5Ms Jo1W-KZb F@VϬa(ၻbR |e.qA8AЅ6(E-QoLZ=JMrӜT3@>@B8DXFxHJL؄NPR8TXVxXZ\؅^tdd?u-Xevc@ D;hcp&98VkJzj]EnP` )[p;'k8uJzgmJdJ~@4KEo6EÄq6Dd`;=C p&P%Q+wQ5u!EYdZQ!u-RnQG]'c\wYw|]vWZ$ҕGXH?8Ehx8\5]Gٷ}%^u_D8@_C`(H*b,HJ.J0Hc'986`\!294Y6y8@< `CA@g>v=`@T)qC:))0CCER8@QF`8Fjh&pQ(1`jOOGDNVYvn贏uhyP֖(QA DB v7 P>TvS`.xZq^V'@rZ57w 5e#hՙ)| f^x!W8_W*"s4@L@G)ڹٝ`#7t@\YA@om $@O J&f1gcVZAvB^q\ji88 [`J9`-@8` $vD()=`mWJ@Pk! yU' )Z~Qg&Sɖ!lf( lrmJMY=COŇB V@Mr?@]p WnY/yhٔo9m mM4:C:r[ы(r%.@NZp8[ EQS5I0ZBETdV{WH@Eluas8T pn`ק%Qe8JeuM0uT(7xzPp!)pc fQ[z]ZRCgY}VG{(y20PJ0IM:G|TeՇT@ yu [d XIP1e`e0'yI d~- !K)yeł$)H-20F|*D[F{HJi!id&xT T /@yuS?Es@[[H{N ګj\h5m5JJWWW@Uζ{5ydPԤYr DEn̪teх44w=0 \>ƅ\\9}y}] ` 7tԢ b' #G'@kI_` ts`ŕ7D 4.{w $be7K!-f>+)/YCCĴ\ʦ|ʨʪbKB&T AQh[ZAK9"Qq`fXl;nq@U bַE\3ɵa5pinT!3JZ)|臡;T:;mȉmNN rupW0lJU0}ԋdpMZ6RPH ڽTaz' LLT·w+JP%"S J3-ѴrmN*HSAWw į[y\}-̘&Sބӕ%Y2Y :{`Ćͪ7wLU UJ}|FaЛ(Vcl);8T-~^;[օ)ȇɟF5[9;#=?+H |۸ۺۼOB@ؾB bGsԞ\64VAM>Cl{n#w_!Mr5;oEUPU$f iQ[+(Dos:zD-}cм9~J5|Qs'}$dVUibEVzwVR}qţ #0jygEG08ԕspuE4^yvY7pWя8GDf\•/NrU\|䯞W݁ b;0)~j|J G`$)9=ǩ=6k6(f|Gb2(%)) - ?_/~c? bوT(܇ӽF|fifTYUΒUNne;ȈK0m 0Cj,>6^|^T'!QnfITFk~qX sP-O MD[RP0YeH@YCPR`{T$?} pgqO Rr %˘5d;@XVTd?`ּ X`PL5z?|?;.{AMDwBmuX|ZPT=؎uƽEZgdoI]'b F:K<ZE %z®'E53y <*0A`TQ'qrF\AzOڙ.68۵-D??1^ ƭA,Hc@IQ&,B0>`FDCCd84@ iƕzGAOj^~HH_Qv{ !ZE4UD&RVMMAOq 4?OtOoQ>JRYLP?S:gSf<tLCO TN&KVK_.^L+yaD_ڙ.Sx?1@B=gʥƭAba! ˆ! Oj@FDCC b{i^͜i\wPhlxD+VX !ZE7GK{Y?nݔP1M~?Bνd'WҎ?YLK(_nFaSAU1t,H-ZK}y'x5ՋDDJԪ\&ħNyY*Z /zryV7/a$YAw_.^)LOQ}6mm̳ڜ. ?! , G;`AhO (ɡ! 4p0J H DzT J P̐"#ĩp`@!,~D @@ZA$1tؐD^ȱǏ CIdH&7h,ST@21M7dtƧjf$S@:B@#@6Juc@PA +!FLր! ,+nH*\ȰÇ#JHŋ3jȱǏ CIɓ(S̃c0cʜI͛8sɳϟAٰУH*]ʴӧPJdjʵׯ`ÊF;6]˶۷pʍ燙$˷߿ 6A =zb3ǐ#KL˘3k̹ϠCMӨS^ͺזɶ۸st Nq6μX{HË/{5ӫ_Ͼ˟OϿ:3&PF(oCw,4o+xg7^r@F A9o9NQ<뒋 ;GRϾ:A{rX oR4vG qv, 1lrGTO5'#1B0fd\0_pVOu؛*V9 "`kG(# '-&E.)̀DC?MP} _wHA0a(dY Xb3D ׷Rc;'Jт8(.z+ 0Uܹ494p#5(-trct>Q;FBBLd L\[&G|2Z"70r (ɧɍ9rT<⏰ob.:rGD%E^h|IL=☯,2f:Ќ4IMf M-gDF5ilM1Y @`h,OZ1`ac@`f?c$H1$MzΌbF1}f(MJWҖ0)P0_R8] a c4@= zӠ54!Q*TMbeTE#TbJSͪVծz` X!Ĉ1'@qֶ8J׹@ ^Q{ ,Y$HUMb:e4RZ(.q7ȁgGiⰤMH`ZP` ZPlOBmlͭnw pKMr:ЍtKZͮvz xKMz|Kͯ~LN;'L [ΰ7{x#b\%ƨn,x8~`AJ;L"HN&;PL*[Xβ.{`L21A Hd4o 'p0@b^< ̮ NF;ѐ'MJ[Ҙδ7iR sBLD'} '~_03q ( V*8%gP 0?aC` (! _`GЁ aVƏc @~P& `]jB .|Ma` q~0c`w,P6P<`)0$p|+:"H@ p} b| ȇ '@|c-f@K0#(@f"whAb ` Bΐ ,w3|3`3'Ƿ|?P4ZW_0 )ljb)@= } pI },xPH^/x,P|hp`0tƇMxX` p!AH.MaV0u-8,0pV0J9юgȁYf,DP1pp1R;fl 鲑7APbRI@FV b>p.?1I钐  - /1/ }E]0wP?^2J*PK`gQW.bYO[0Z)(I<1@pbY9"p10ZɕSIZIrIv1W0@c=rp.1^tfg$[F6`:E)P>p꒙q"CL Dy. C`z#dp^] W\M4zg.SyYА7B`' C6P]P1❕yg1П 2,З[=00vu )*Z0&P#0J7h%z&5(<@z!)C=@Й(J@1*ʢ0(𘒒E00z;p`*`G`,PY.8|\@\$hq!p8:pJ@4@p8d?0A`7 ) /m0@Q10`G2'%qvr1a6 2_pAn3Zr*p-v.zK!vF6/04Pw"P2c4𔉺wrZ. 4l`4=ZГ?2 %#`L}*I㢙GIRJ9sy"Q@.gG0Э7@sYx|92&PFZ28P9+^ 9I)2xP2P49 tY p2DLЛ9234V`~2P/ @v.Z1⢒'Fp.z=/@"#  s˳7$Z2[i/pO+.]Y ^k)pc:'',CPCpQ Q$P9HLP*2:4`&z.s ;>0(כ +"Jc*z.*"s"@|D@= "[i骜ꩠ*#&i C 4?)ܫT.W\FUY][BƜ+h_Z>Ʒ'n<Ǹ!ůĿCzx.ll{,}q<Ł|ȤabƆȎ| 8ɑ| Ì]#řX/T1\m\zTzyXFcjl]p/:^1N213&bf0\#3Ψ M2>21)0C2#;0"I0h/ 2`>f5={165M[p~lֲ}Tݚp=&!-21[j֚.[^ty<a~IcUd2o,C[nU 'YL]I2}.+6 jPFMpӯm1{[A = p&%TW+Am;,ʔL3!F^oį<" MvglR ae۝M$7"|:|c8`c>˞η6~T_mj[_3_?^3b?e/g鞬ISq_CTC`j^]2 d$"S oχ2scu5nBQ_1O<^/ Im50z-j dB .d H ei!!E$YI)UdK%9aFGL9uHCM\ "n@"``lI'N<Ő!/gR%Yn^uٵowW:с %^,~.Bv9c D! 23L! bxaPB oDISLx@E]J.fTKpk hJǦpKH!G;jR/(qJ܊ǧ|˭ @Hp@LSD("l(0"@H:&l$B^ ! !QFc;@`MaX!2TTSUuUV[NB@!h`.jU/+ 8#K 984ύBxtQ/*A IC m]5%N\>Xe5]")2(B'/:k*߷"xaK,Ì-b pc.!PMd"CHp X9o7Ra5 l> ݮz袏wjبQ.&x}wb2kxnRX!k`Cx+W{qwq#|r+r3gv I,ra;Q˱!&$_!K\حt|x7xW~ywyU||ܞkz}|v+x[!#> ( i⨪P*zzA@d9PM D@Tej_1m)JBg |)K`}iq@0 `vE"4Mvs "Il؁ EG@0Nbx 0&!܀Y x8GĀ-BI=@ (`@ܡ2Pt7A l`h^Z]XEtfB2L<%XT6eUz: 6!)UB#p'(! JX*җ#@@q @ dg;M`| ` < F"Y`,W9OnrX #%0ZrpR:Z*Ma\ܶBVIA O@c *O(ȀH_@NKlpQUN7XdJjR˕\˜rkrSj_WV%la'[KW6Pab-԰lg=YІV/{ZѕpSj]kׇUICI(|S %"%5@QH[rPB0J@ eBRr}mwZm3.[W7BUO=':zlc@ 0=`'Aܒ@OU0z (tV7 "Ta1 ӀxBiB"A2Uب 9j  :pE$61T]K^Sr-oU;[f5f@ 0. _*`%x JC()5UBrv f2s n79` YiFgHG: (h!ԻB.%8L@ ?5@ c>B)jFJ[Ӛ5y Q%WuQnTf6R~0@"P+UǾ`GP v `pkr2>ўvwctPif\L ~p'\ gxpG\x-~q710m6Hob Vp!3n ΅q' Y{;"P/YFD"2`07qTNap)&drr~g(%;tI]YP BA W!4y 79 $b1(0(0B<΂*n8Es:s A*0 cBXI؁ H,HR$#ȶ?;!(4?! кI*a!,- dihA⪱L+ʼn@@$0 LZ$J! , / 4h0"\져)exΊ A0`!(Z!M, Y333bk 10  9n_ Y;!΢ƛӆ!,7@*\h#JHŋ3jȱǏ CIɓ(7:dȲ˗0cʜI͛8sɳϟ@krXѣH*]ʴӧBBJիXjM:t`ÊKٳhӪ]˶۷pʝKݻx;+߿ LÈǐ#KL2ʘ3k̹g]MӨiNͺװc\-۸sS/-KOμ@CN?kνxOţ_ϾjßOϿ(`&|.r`Vhc^a (bZh!,FX 1 2C d#G;`b]I1CB̑sP[8uB |swX) M0'6~)'vW) VX^'`h}8,1jv0DEH&p0CJYK@"pÓapCS0Ĭb) 8֪cA8|.]`a4PAI~ujh Y._;hg.|k*Kxh@,?젬 pl0@ &YٕU A|%F=)5߼V6`FP0A@CDI -X8L9a xEZeW;]v\4ی,t@W: E q]T0!LA /k}7ye}3vf54$`ijsJt la:~C¡KFA;[ eEx@ DWc]6ciu64lk?1\Ai]X(B,|~_~s8ņE Y@q`]Xh`UB0!@9쁳v!b ~yC($ t, xq_ L=-@p2) m|\An x`zPj > `?c t@J%;d4B j.4`( W̢ aK 2@XObA/B)(az`LdC|9/|aI lmdA̾ $9PAFp* 3xXWpxγnaX7toJ"f/E M2PAZυ",ArO"H [@di.AN0ZcӃ&pS2HvYH,_ /'HZ:,*V `ߑuJֲGfMZךp+T*׺<+^׾2D~ ` j-,b;26}d'[Վe3Rf hYʚ jWޔV^+)nwjKMr:ri.tK]ָnA n+ʖMjѫN/b[ڗJE~K |K&p.~#LN63a0 /}CLb(ځ;b欸0cL㲾8͍s@f͏Ld7H퉓-PАLθX͔l`VʗL梌həf<9pЛLg͹x.НgπOWRBBЈNF;aX'MJ[Ҙδ7N{ӠGM?ԕ`$ڒ N$԰.#‚GXbwʾGp&B [LL~İj[ζn{MrNv˩mmLh6%nGĬkM`دMMXb wXX[, ׄ(Ug,@&T`AInIdޏ#(\ޚи%(YaĿ'f%L𢛠τS][}@%q]e6-s``}X};%`溛"E)fH x0"[^.2a!&/_m $, CES>/LN{ݗtw~X~">&OYd&ΏY.%+{ItɵB:I6 Bp,+HX_E ~`ai$w_~)`!`_`W?%Oo`G/2P_2c0wh5`=Rg1Ȓ`"L*M2%x`9.#K5hFe!(HILOX1$YL2`> .$&-LbdH0 '05 |7 ;˒(;0<6= =2 PbA8da.B6HR(1#0QCQxx~?lˆd:,;0 `07'h#ihC_dq0J:PA#Csc2_Tc@`g"PBR3)X$pٸ4Ѝ@F1p#5`;BR Y@j5؋x1X:/VKA0HSKv(.G>Њzn$D $戎(TJd'*/ 駓f!(4'pm@FTi>';E . (iڷvH4XF*dC4 N4eP؄`R29sd Et.@8={iSu HOL_QE$h1%!0=I@SNz83,v_,5՗9(ЙD=9nQ4Vy)_!q,+H*\ȰÇ#JHŋ3jȱǏ CIɓ(S0f0cʜI͛8sɳϟ@1cH*]ʴӧPJŗ0(Pʵׯ`ÊK6(&)˶۷pʝKW =I˷߿ .yĞ+^̸ǐ#KL˘3k̹ϠCMӨS^-Cl\gsaC5XͻoTISj^μM Zlгk]&d3Zӫ_> oW=r5U\"֘]& 6F(Vhfvᇝ=#3 ("k343DL1H+6)䐍Hw30Dx!ChA }L,"(: Hv La,"" GL(NWc,\LmX8vǶу-x"e۸81؍L*[Xβ.{`L2hN6pL:xγ>πMBЈNF;ѐ'MJ[Ҙδ7N{ӠGMRԨNWVհgMZָεw^MbNf;ЎMj[ζn{MrNvMzη~NOpb?I 9>FnNIƙBqt|)wK9E ǃm9RL^#EdyX{ :PN9zN^) qz[>XϺַ{`NhOpNxϻOO;񐏼'O[ϼ7{GOқw8:h j@kz+ X,g4D bς!<:@TP!`ZBA?$@ v" \EH Рc{~.=<F@N[&*p0H=ɇW4} "8$X&x(*,؂.0284X6x8:<؃>@B8DXFxHJL؄NPR8TXVxXZ\؅^`b8dXfxhjl؆npr8tXvxx N Pp,ó "EPga} h4hh 3X@Gcp Wx H&Q4e؋(v  F p `2/0F57Z` >@4?Rxf `40%`2JCP4P80?81@`|#9 7WTg P Fh22 W4_)0G @`FQ=P>pNSgD X4 'B2=JFD@{$C6P]pt Š! 0$}@,$P9` @. ^P<^Igp ` !p 2*798`Dd?PA`7 1_p9YKu1Rp4HPVx- %P {L)K`4&PFT@%7G|y|DA`4gpY$)7YEhЕ#P}ٷ}gPE-Y4G4 Fz9~~׈E0|E:4;=0U0= ;@7 Fˉ0(xSj4}2@LK~їD  {Y2X|Kڤg4h5tRr 'LʤqjF`pUjja7~:i48tDj JE󨲨t+:A0^pDcjOQJ?}aPQzD"AZ#Z4hCP / pZ,*D")42p{1*7J8)0Czy;58pȥ9"I}Q {2 Z ;1yv$TB[cg<*>P|Gz1# &@ j49۫,Z P`.p`J"~!Gj>Kgp:00,557-p&0=!>!=&ж/Э64DcI8 Y:0`G5!`*'`A! rJ[O:D[<ʳ4@LЙv;JۻҺi);pK74P*4J4ݺy*$ۘ"'zC+:ÝzG ᡾/{ W@ d[p;hBQ$я(?a[J00  ; L _Cڪ#a7'}~Ì0&> # <˼m4]NMξk40OT$ @@gŭyzSC.U4}<:]P91]QCĻ}y=ZHR05էs|>Q8ψ5P00IY0' ק (@L{a O:x9Tmm=lߋ5e nz\'CҸβ=MٱE4VZ-فZD-dV7!) Zp8 i}5l{"P6C@YUsdbSY-mp!)pDWc#p}= 1dp?P#0G7͑6"@k|t]5!>>Z4X =5)^ԓDy+@A4p᱀Y,7{4Е;0)@ ުaC0 5#=%~4'>Pc,;. 72ntAF#碬ҷQ3t/*Ci7'~~vy'4 -4N5kh^eKQcSKl4N>[5nmQCGړ4.5V`^5X#Z.ܺ^oHC맊TSOälnƓu.8US%_R3-6 M0.^454λ 45P55~ mNo55bJRH[%eC3O5,/N̾4^!_v4>ZSn51LEӳ5=OOSMǼ4H5bLX-}Sd OsLLC_v9-OtO4.4<~<(o?=4>o[Cu}vBd#5J^k_u/.4.lC/-gph/P#aeio5G?=Gnw4^o~?:7<0?5olOW?OQonֻp[lgo4nֻpK׿45VHHO̦*jWt#h/9ͧ/iMH3AEQ @)Wяf(od I}R 20e)SP3UD[Jg Gei$IK9"ԡtiyUQ4yXsa@dj,QZ:&.dLyԦ^8ZwIנT.NiRTgnu/+XT*RWf JVu*h6m"TFu&8Iφ l OڤD9lЊ`wKM*&L K.GLDUnjߪz*VbҹnR@%lՄ{%2J {_L"诀S wN;V-50_5hM 7 !N1`Gh"V= ϸ7hƅQVM<@N&;PL*[Xβ.{`Lf&# Iܳ6"aPT@ I޼gB`3"f7"QP0(( &4!NԨNWV ۈCic@U\wK H -d;ЎMj[ζn{MrNvMzη~NO;'N[ϸ7{ GN(OW0gN8Ϲw@ЇNHOҗ;PԧN[=E!~-,4 8@?K 1V0@"`xϻO^X %^9KI_ӈ$rMCyd>B?NIG?cy8Sx9z'g =1yOO;ЏO[Ͼ{OOOϿ8Xx<7YAPЀ%#`#p5[LPu[0PY#_1&84@ $Q vd_)h8d :E0NqFB1 F`v PE7Falv_9+(#Ѕ,P=<⁆C2!w79p5(R}`؉8Xx؊8Xx؋8XxȘʸ،8Xxؘڸ؍8Xx蘎긎؎ GpO =  %掞Qw?NPNQP  p? h@ Op p C I Q  d f &0 Џ- " b N@L + {EzyL (0  Ʀ  DٕAsIxz. Pp `  %w,7 *g` P ˀ @ 8# 0\y, 8Xr$ ɰ ɰ ` ! P И1+%Q ư iii br )p 𙚀 i Y ٚR#0r  B 0P PP  rɒB2 ?z,ڢ.r !$Es-Rs`!$aG!g)JZH$e";Pn=2 Ћi"4FZp8(1PaԆ#B7 F!Aodor ax*!" @40I0¨J#SШz-Uo1:AbA&!QcwS+Qog &:zZцo7QUoFJ9ʪڬZ" gzbߊz:!Zz"ůtX{(1K:;{^͡'˱x @p^ʮ$;*uTo$k( ڲ <{\2"r z\ KD[Z=۴TIArqǕ:{\IꚱR   `Cy(Zm"z%PVP x&6um UąѵH_k<CJ6Ah!?(Pn[I$&$@ETP$!Up"Gz6VX/'qۥ_j=&pR``ƺC"[q"Y_0F (15GK;Q۸P{mFGj 6O j@$ka'[Iۅ_oF{G7PJЛ p,+<.(oCCPCм a"*ky{'5V[O\ J(kL|Vl& qzE@tW"@OiL;:L Ap{{tl)o (FĆ[JU|ũEŐB;GK%!(ᱯ籒lECKP[ɖ[ʜ,s+K)ʼn,1qPDʮj0y:* qr$w0%!Y $$fk: "1y !lɌKľ D|37!pRt1J9`0@Pv0;=PmWJ@9 7sG(, = <;P4Q1Kp:H[@%?-G*Yz;0 ` @Q@8`4p֋&@`lLIpHpP>pf# gր#I%!$R98[/Aʸ*ʦg:q쫳EOĠl,q(JM E5`8P `-M`4HB DM=(DK"Sp@ 'l7@0]0V}?PgGpճ]h)VG@<JkB`l1 t #Kž z @q2Q14M:+?eAa Ba\;h\ [rAR4@8pP`b M#;`<06p12} WS^#עK!AJ&T720S]aty&p^%A _Zz^6,a.QٓM6Q,0*!w=Cq=%6AKأːo8on,Ÿ^3Q|\ ^N+Q2/Qɮ콬~0u+7KDמ>.~*o21: ^'ꬬMJ靾o%!~o(̗UV;vN텽R$>K~%6wQ}4 '".$0ϻu:*P5o /J.S&a;AG[}nTg᪚Moɬ1Qv|~>=ϵ%2?;mu:_˾ﴃ;a~0jO@أO $QW `I>[*. zu@0m T20AFɞVj饘f馜v駠*ꨤjꩨꪬxJ8j2H @(JzV'+PHK!D IP` V0⃰td9XQH= I> @dj+epŨÎD`A 4@ PQم!5RUY?b puEA /pǸ SL$ d Fr qɱ hQ2qjF4lfιv ]LԮtYo(60@5Wi='q&ǟ\m, X˅a\7Jy+L A1 p d>V6"%T@[vix\0#"l 8@F=Cn'7G/Wo*B=a`ẍ @\ t@@"Iڞ!'OOZP9 "`K@>ok. B~=O}׽0}ib *ȁ:P\!  M*X1` c=4#GLRW@ "C@ T pkĥTFƸD 8<3BQBиF< r/TJZH*vωR4#5HPh~O @*HO7(@#`0j4R%&EiJBH җ4E%HAnz 8IrM*t$޺RSMhD'$DE~LJyGA:E39 +NLUuI*:դ`<}MjWֺlgKͭnw pKMr:ЍtKZͮvz`%ӣMz/z9n@ͯ~ }Nl^q@Px')21eIEx TUKp}O S/fgLU}q@>0y"HNr%! ,bhDjĸF RH8qŋAD vxIɓ(S\ t H2*` i1ž odJѣFhA@R^t0@ # S@T:رA. :`<_4ᕢ\vekW2(ɢ*vXR $6&$6ra S^#:b8' cD-RPfY\XiP11,~"!W:+%88pHT = D&pC`f60AGBA^C7~µQ;W=t2FXDD:XBC~շQ)6OT0!ne9Bf@WDxGR0QP TBp%Cj$Q` /1a@XfG⦜@CsFl7 JH`ZQC&9 qp,@ؠ z,0zFMCPC$;p p` ?p :!V2bȁ;2CgjbkE g- Xǀ6Ulf 7@;/i< mT$^MlpYf &ah Y 8Pcz HGJҒ(MJWJ@-fSbN2 ` T|"}[JS%~ nԮ7YVJH (Ct扡cp!эV$~FEF^ZĚ(Nk:r"lM 1i*@(IOu H֊JUf|$(+'R,1V -췴.41'-cL Lu1&@ʹm @ h4Ȃͯ~V~v V SlR#L&@HAnz\ 9pQ% z4L+3<DШFUT@F#|hJUA=Ϛ6T?)l'@Q_ÁJ;\ٱy30 *f &f0 =`Kat){,5=H8AC#MRԨNWV/q),]3H)P_;D5*W׻-6+Ng܄k@7 xG!Uln4ڇInv;3  bpnutmq>jb-vJ}yg۫);!=2ZC(<]v(- ^ݸ@{{Kӹ;0gN89b}zj溆0sȋ Ra gBP2Eѐ4JK&&H4&L!I7H2M640=5G$<J;Ƈ!,+H*\ȰÇ#JHŋ3jȱǏ CIɓ(S0f0cʜI͛8sɳϟ7ѣH*]ʴӧPd% Xjʵׯ`dC:bӪ]˶۷pbcCO:r˷߿5nbOÈ+^̸ǐ#KL˘3k̹ϠCMӨSjƒ5c˞MvjTͶ _C6k_μH^Zlkν;b=xܚӫC5]OϿ(h& R< 83Dh‚f!f3 S3üB0n,&H̄ւb8c[@1Lh3M%>Xfh0hihlp)tixE-矀h1衈n@~&2 餔 2(R馜ҷ-騤jꩨꪬ꫰*+Ԋʘ,5Ռ,\ I&Vn4Ђ%Ju,b+k覫(1׸k#/@c' BK.@1.Hmv ,$l(,0,4l8♌..[0"Dn%L7@ .XgU!]{@\udr=p-/q睷 W7lύ߄lV +zY{|^ǔӽ8ˇ/ߨǍkJ.rk;ķ!>3TSE.C|QGOrA7}O@8cK-AПOL~HyoudHB ]Az @(( E+B5m"J'/gBV9.{ },BD\ZD#xʐ8ć )kb}IC}c [xŨ Oh.]0 eFCZfqg`Fر5l8@Bц4 QE)!^DiƓ%,]HTzt ?Q .M U 0I0fSc,Ќl&:fZSd=6MnVӗc38G%&&Q L&ļpǒߣ6N`&PRY":+ }ZͨF7Lv#(` JLb M,QK<BҚ x&6a T6 PJԢHMRhT (pXRծ.)7@jղ(D@AS5A3+qxͫ^׾ `KMb:d'KZͬf7z hGKҚMjWֺ_VQ16a[) 66p\L`4Z'Eoz xKMz|Kͯ~LN;'L [ΰ7{ GL(NW0gL8αw@L"HN&;PL*[Xβ.{`L2hN6pL:xγ>πMBЈNF;ѐb88{w=H7J@إĬԘ޴QKc:tXZDruONMwlԒ f:!SPW fcdʈ=)n{MrNvMzη~NO;'N[ϸ7{ GN(WN 4 R V|ЫM|A\4 `!7Hr @`?'@5R` 60rSu 0B@ B > (Bnp`tu n #@!8Ah> Pvx : <10UA(ItSWuWg2C18dw*Ӊ ct C0ֈ +W zAXrs1_i0sewviWzmvq7w(c ) +S1{F@u8Б@oJ7y aDF :@Ys xGxIxה(c Gsy. [=0(du9&ЗyۡIJ<_9٘%(y7Wzz&0(+EJ)r;x;Fpv)!k)Wxȩ)ќQ7Y"M{{i$Ӳ d2ٛ_GU' !q"|4ɦ2eip2}Eh 9Ҡ1*|ze SlgK1[f\&ɸ:qWZɕŊj3ZVp:W&J{QJ!m =k"@96!;j{F۽kfՄ1N{%ic` u+rPZ @zeUYEe8`|Z"<&pQ uA7tVXט ldF'`W ,'u[u01 n8`Zp |HgqpwyZ(Ld@(7YRp9^WyqF<1ufe+T@{JIW?azG/LwAޛӫɠk<,Uv +u{ -"tRhAG8*:ɿ1ʛVM<,uj.YȌM[dĚ+i1 驼\T¹5kBF> ğYscflsy^&$'YqŊ)tǩ1Q"M<2z\ћjȱEUW'iD}O #=T+  DNIɘe POը!mqq=ڇ\&g:^˿\Z^ו"hlC̻hL긐vJ i{Djr13\è]$`0 ׮ڟι RP&ݫ(tRLcHfsʙ;Б &[p,vmM" #v|+֯HZMޫի7w()M.&]7kiMޖ 3Ƴ 7T-o6"&7JQ1 ~6i^L5c(Ҝf'31j cԴ+Y`p&p@zs4>tD--j8~6F1HkB ͜q"C*_YPLtFX &QzqJvfשj-L2*!m73ԝ3 ⪽à3nܛ+-E )&o۽Ҫ7xWIdb9o>nWy*#ߝ3>o.,)s9+ 3].F1#^ɛp2/+-DPAzC{.^2~6J22Q3}~2Nf'./&.$l2nwѦ5S;?2A61>ɩ>=/gn2^1#"s2++eo!l5%Ӷp.av#_oO2}1vx$3Q`MhOᄯ7懏2_2r_SUofJO225?2 R~lldM!Cm/2-3IkkLM2M湑O2~Kp?`7Oy/Q8&AJ!2_%2ٯn%o3m;*o.?2ɶ2C/S,CF}O3O-FO3wj&2_23{MAϯ7?aB,c,?3$zfO#?B7O!Mf~Qp8C]]?a~Qp8C]]10]Տ57DOݾQ1E]1E!^ZOſ9oOo/FE!^ZOſ9oOoI`PmE!^OFM2?ҡO''PmE]PPN! , ,@P)r`Cf$+B"d{d[g~X-I]? !,  30*$= K2-**XP@$BpjZV((Gs@ԧBx4@"a Y%@f#/jH84@" p@lpn1HVlH4 ,1m&0j (GIRL*WOZMCDA nHJH55f6$@ m KtIWv N0I&MCمgS BRe LZq(ݨ .*`l4>Gёt,'Iҙ2E\JL2`v FluG!Ài@t@)0]/{k uJ<!"$N-F 0H@F*IgB HA B24- KT`!]1?` , '9ͅn5(8hβ^&4}9`  (X0Ѓ  Q"[YL"l$"NK+)\af\v`34Vi[\e&]P7P̎v< "HAsf?&,dK8V9`d@y-2n{5NI^lpPIN;/iLd@#&LKpmJJx wp ndyVwk v!MxN]BYH$ D.@%61~ (| rMxN+g:3;'h-oMo3KqL;ei4(MbHL`3dYs֣g] ޞzjXI%ZjZ5sB Re%ԓ1]Bz)kY 2ZV@L$vZ$`iRmj%[0"[% }h]я6iG5u!}T0aTPQZ6w#&np\I O@8iO_ ŮvCLz+JLkZyI۴T[,:V\[X];d+_[hjnj[[P`z5:`p+m Ч:NK Ӏ $K `ګs &p( :$px $Hʢu b @bZ @ k۹`;A[ګj=P@ `+k`lê* m:@ !` , jlZ ;0 Z߻P J,{ڐ𢕰zP ۷0;J1ϫ#&Kx z8 k l@JkL0 @:&P[ KPv[?j"L kݐ0#Qƕ0 R `U ŚzK , &&\ǠJl kjLp0 P , p"am ̹lǶX+ xŷ| {4;۶l<|Jغ¢h<"|ζaiNj@ # SЩpz,{Õ"ePEɛ1\1u"~$A "hA dABϠCcIICp;Rn3'@M6T%`0@.LYʎ[Ћ1#*LQV x AT=䮢ljC@!0Z A4]uxaIo@@ 9x8 Šp n@,ax1$ȠS&ZWf@u`v'bbif:Ќ4IjZ̦66-n`] ɧ\<9r$p t+hPlZPáR@I֐r!+[тk(42ZJf3}uRxt582&Ɓ]IϞ& 5%IH*el?@vL n,$DʥgjU#4uC('>ܠ3:AHa#{hP,# h gOY$lt*6ȀD@24d-uCj\Drb ,G;BveP,GX؅(V$e)@Hd6:f0KL(Tae ᄖl-oe'ʥym'b hUYRgok-Au@ xu @uJb:=B9Qw414 L\ 3V<ۚY2%뒘 8p./ dJS1'hiW ܰmH"2-*+4?W6e8d\،/"aPVm::[ MJ[Ҙδ7N{ӛE j%t hJ<>tPZ85qТi+K3:I-S R<cL + H^>CN21KrkC z.eŲU[!-p ;("pH4,\K CC{<7t]hJˁ$@ BDpr^OTʡAls & G F}gVn \P{%1s: d>pA3]aeGLfe2Gz*!>jH z$ʫ:+zDe:[z0nʰ +ˢz@O;$[ұF9S!k.0+([4X-8:3K42p;;Dk=;45 +E۴NkG+4*KB< O{X[V^f{/*hl{j۶pMr[vt{z|˯~[:˱-;0[r۹K;<˭z@5⺰;n"{bp;+{kȻ;kkz؛ڻ۽!,& / ?=p-B=,!,* 609"7>W8?]^ܴQs=$(>. _#DA.; ɚg̵ЄsVZa9 מkz,[ / 9f!%:Q';sj* 2!JL=OoڳD;- `JT"D-IRD0(B'Җ035 IT7=h%KS8`ћH#Z FTGMTJժZXͪVծ'8ƃ1 EիhaW\xΚֺV8+bTZԮPѣh`D k`; x#8F1FXE3ڃZAPlfGKҚMjWւ TPަ01`b 0 :<qTsH3(Q aU4UhpF2L d\7 0jΨ~AN;%@"C"Z' {x3&`((܉@@'@31>BşċwL! It"eۘ-lt@JC%Ҙ,N{ӠGMRԨNWVհgMZָεw^MbNf;ЎMj[ζn{MrNvMzη~NO;'N[ϸ7{ GN(OW0gN8Ϲw@ЇNHOҗ;Pԧ˦JA X3yĎsf`Oکv}$Nz@D\l/bOO;񐏼'O[ϼ7{GOқOWֻgOϽwOO;(!B bp$ Fp$@~TT(8n `7#@T~2TB} ]~,d:E0'@W\,} 0,F~v P0E7C`%0#*p001n@`P+  >( h3p HI% Cd pq q7 >D D3qCg7Ɏ=34EJf OY3EI&& f(}7 Ȥ; P4l0$!W1APL f0@5)`/`}}ASgI3_Y2  4}4әxWX[0\ư @3 q  Pa 2J~8iwX1Bhr~[~MC0'W@I<1@9"p3ȩInH扞3g3)8D\&P[  2 *W  Y   ,g"yC`0@3gpW`M7}2P)`/6`:EP+P>p?(:q"`H4 4ӥ?#Pd\\P J3u\ & Lf^bH#X`d3q'/0[05(Y) $) 6 10@`PE8`?0=cI30ppZD6[=02Hi%؅ ~ ~ j  A^ p@hE0CA:::4;@,0I'p=!pPC=I ^P<=s5(E}I63G8'hG`[p e} a ]&7 ؊ @[H\@7R0`ݴzKۅ790p">@6pP3N0 dn A3n)P ۞"p0b4 Yh83_ kٖ}/0[PVP3G4pK ٘L4=Z4 '~YEn J:Q4KQ@M'˟i4#Zp48P΋):n+ڢ͒2 A Mі2DGK MFII`?h[4P/PHx↨(1ċKW3;0R/$L 0jC/[ؿjI]Ђ/H3֮)0p[:ZCPC-Q$P9 [4L4~?Is;>Mx >$P5UdIfRKV\H";6{rKv4X CLU˞h 63{ܹw!@][1p(my4(ܷI#tI3̈qqYǛ4 \Z盾W:i4 !? )]k>@a7 mgW/qWN"|S>#}3_Q5C Zt9}U l @PIO3_?=%t׷9 WZN%ABpCZN3ON,K?%ޫ6pjz~PVS|Pȏ  ( Z1߶\_RbYN"Pj;m?^o7<[M7< _#3OLqyIf) }}G%OnQ[(.A?AiY'#=cK~ SA:3\o_1_1O_h3A5:}/dO^,hĝ:kۢpʯ5CXT[޶ޢC_3_F?<lb_r`+OK_S جNoC_3_F?<lb_侯z鷏3Dq79؛~aE9(75N43/OcC3Pcv6|~9q-`#X">~(ߗ+oZ9(75N43/OcC3Pcv6|AY{%s-8 C G\ԣEL\%7Ín1U/9}I-44( 5Ҩ//m"4-ZΞ蹶^3Pc/u63ɟ4R/O#Ic0Q#O/_VJg3_1_[44_43=EsR_?Lw\JS8S[5_8w/Ot6#9#443l=<#0NO/6/4 <K4HOf33G@#;C&33///kB#34/@#O4u>ε_40_34例%3=_[_>4\ASFS46D39vEC3oo3/40@#k#OOO3 B#9#06?60n;#3iW4?(6#B#46¯$?/43Ÿ !`c s4صu5sGs:S=SEsس3?6u⻯OeI7s_u\666'^#&4_34035;#^#P#O#l5lG5@ !=#^#35Ѯ54ؾr~csLSsEs:SQSNs0o3}LS43s($o4o364O5#/1%I &O/F#6#`I#_3S4*R10ZQ4esCSO9sSε_4SS1/S1%O=i#9#0O>#o/4S1%O=i#9#0O>#o/4$0"`S1&40SZOt_Ru4Oo%_upv0SoaH `=SoA0S"0S"*\HO?<!,< 80<2>]6r& qg=F'<!,A  gr#[.\Ӳ?ى!,E *@P)r`Cf$3 T@5ePvZLg24!,{(F Rt h!CGjHЄ/Iɓ(S\ɲ˗(f<Ə?(B%OӧPJ@)%00N )|kE[mzb妏SՋ%Qd HbA P^I@'|$Q"%&DAGӨS>mF),&y8|`Ah9~LxqxD 4AJJƆC_]wC-Ra-1.Ҹ{bQ`90D=0A=!$qJ@0wfi8 EiLEuH;(F-x]hBd4 Pd~c4Xp I|6aZ{3vٔaFAy&qFQ 0B6CF(CjhCBI; ibC4[x)qn Y\^Aif1z776E0= Q=C $Ҧig!`E Glá춛#xAUL:Q\*PT@ 7Ha&, 0 FC@'JJL1A ! !ðq )ye q<<_  s`0TW"p= 9}uLp7V`ˠ؆vC=,Q]J>wMM4[A?eܔÍI_@9T砇.{$1騧ꬷ.ng;QC J7ȓD M8  5BdPw5VQKA;ځҞ /@}fh PBT*/aX;#F Wh!HIDpyK H̃yU*>l74 -k|"%ջF5(M `IK )º:P|%C$InWK!د!lt}Fء%pk)@ID4 Y>@o6?Hl`iD~ $A 9p >*iX`B` , ʃ+-W`d-+ tK|9` x!8A7 -CP(%\ E*ė8Sv `;XBxatt(s| @9"7 K П"Q68BCt'vОCԢHMRԦ:PT*;l}xQyd2g'_=]9y M)&=L+`a2mlcUe`+sH #@bi S:΂%xc$#%wz@%J@ 1h#gZmDF= ZTSﲥۈ83NvХ l җwv(;m QABQ7w M G U'm'H'L [ΰ7{ nJDГUWUvM,- Sڂ.M"$qLK#T5 rBC8ЀxAU R fbG<]Bm\E UbFO2ͪQ% B`@JA %)ui?i U`X3^%Ikl*#hM*n!1rV&]"c ]JӚ&0Q`]ttSЯfa1)Mi$"s̺UMs= ɺTk)r 6i;6V[ʅR%8`ɳmFM4`gNk LNMzη)@@.wL0N_c%F̌cAİm t d4%,k,ىIҹs ZP^"F2d3`!H@(d8>AjUYC/鳋ِΘ`2]6F'CN@P4!rReL!ph۷̘, d  ȀN ^p/p]#R=Kʵ,w=0u:%Oٚ p'y [Ǐ-I(3ή{pi8`$GZzL٥$k1mX[2F6lv~$aZ}YE\r Gi$wlfYEE\YL"JրG|V\e^@YNT:0-:$\eX%^]cUS138Cm6f `BL؄NPR8T8oGcs4d#b~q C#130QXo:YX~u(sIW(geᡁ1;-d8`]c>@8=qQ92B%4!`szTHBo[sVX@xKD}S. -r;0 `q6g8`4#8`b."!H\E`xvWoN$cC-s 0@WMUH+\V+"PX6\dX8x|'H@BI.Vx 0>g][}ItXKT–7]aQ '`tF%Z!kcG.M6B.^g :L|4gHEm& Qd rN4QLv7x5_McW4Q!y։yrj5_Ԗ'&춑U9Yy٘9YyٙQh ڀ . / V9YY5)Р ` !y  Ʃ>) afpؙڹٝ9Yy虞깞ٞI @ @0 #a& `0 "1ڠ аy ʟ@ @ڠש p ":$Z0 @d%A zm #3Z P@&zHJJP` Ġ 9@ Y   p 0 0*i 9P Ip Пuz^Iʤڨy.0P3fzzE:ZZ᩠ڪ.E*UzZU$|"`:* U&4ZzOu@ ؚ*N2-ͪ:LʭMիZڮ:Z:5cگ;{9 [`װ :9Т [ @8:!KiӀ 圀j0 `Tڰ`3;44P =P $@ P&`8K9= ۱^뮧TJ K[ &)0  i&  :\u{)0 @   9z P 0v  Ѐ_ͩ Y A*.ٶjCz  i*n3k 6#&Ч *ۮj ݀hW0 0} qij+0 jھDf%eۻĀjQ& P N;\ *@ & {İ+ЛڛA:\`竜#i +@~W0 P 0"a ` 7ɏ<Ŋ,A + Kd<묮[j nKzpg?VC|dD DEgo vF *ȅkgLz#Gbl{w=)-a[_1~@Ors` O<8=:D-g*HLt.P\EX̢y uKH0y1]\bF apH:P`g%Ĉz -LdBD%0|#IJZ #GƝ W LXbDWL42pe&Y U_iDK Є%(1WʻD%&AD_501hLz N!gJQSFٝZܳ Uc$F-` j@hDE)Ӟ@ PJԢHP0n DJU& >X2a aD5U k X0Tbɪ-(ֶڕE0&`"u`E.;R`:d'KZUf!Il:$>qς-Ժv@4hmw pKDq- ̍ngL@Kؽk0 fq,m 1 |Kͯ~LN;'L [ΰ7{ GL(NW0gL8αw@L"HN&;PL*[Xβ.{`L2hN6pL:xγ>πMBЈNF;ѐ Z@IE(8t@, %Ppj@)hgMZָεw^Mb,M'P0VP0+(B8'k%`M6eS>S}l[ a+'8!lOOOϿ8Xx ؀8Xx؁ "8$X&x(*,؂.0284X6x8: j2 N PiEcw80!1h\UH<1@w8"p0Hև/s.F 8w U {`  `\}WApp}=p;0 `=&@7c9Y"4F9[I2k ._ɘF6`:E-P>pq"PCL ! i80GU W ɰ `ihP^ Uf00W\C-s5` ` 4"d'Zp80we`o19X?B`C6&E0.0p0j,,gz\   ]9P$P G< )ѧC`E0CТM?= "=`'p痀)f'F\>;0g+1SZ@,ЄGwr8)(^P< sYZvE.yl9186wfG`4{0\& PXx `P ` ` _ p pX84 .:" 4xE ̇ #J|vT@4Yi@1:7|@x8dA`7ЎS/p 0@?6 5)'7}ՕR*96{8;%x/04P (`r@٨ZȨ2H&P{=Z]2bGvfvj[e)YoPCW@ TPvqgjJogA3y81&PF04Z022tgwxgvN S9I2  5 ҖA!i(@ɚIcKI`˛(sxx'Rɢ*=J}$PB8: ;0RK 0)sg1[њ)yzWgQsʪ p=!p ו=0U0"?{^IAE0Q1: 4P)C{{/{il3\ *> ;"2@ K'I抐Ѱ2K`_\:0||+yyFL17Dtpǀl*v1+\1 hCX`@$('RZpsYج1@H)0C0v9l&pQ #1'|ˬa( w|1[\mz7Pi){<s"k9lCQF=~RH%MDRJ-]SL5męSN=}TPEETRMyzԅS:q*U]~VXPS4huBdݾuW\uśW^}X`… L8۬V|Yda.(2/LhҥMF7b?{lڵ^y֝_ZpōG\r͝?wYm\k[vf{=KŪ@rW\ݿ_|ǟn+g]"~%j#=M,@HA pүC?싿v p-_AtM! )DP 1H!$H#D2I% F ʱ +$J`=J|A)c!+<%߄3N9礳N;TRD,ꑪE&{{?|'|G?}g}߯o$M(a|Jp_ȄGL0%& -w'@2NMYY5d- EgsypC\kWq e8CІ6|&4! . T@LL"{D&AYpzW$M oE.vы_Lwh J@v_G2@& 9`%0Kpn@% >"¨>t\$ ׺)2nGEJqwg Ègo#8@n1rY!%W:2k-7I,IRf090ZpXf49ٰ74 e3*j5%- e2@<7NzӞ &2ٗvޓ,?:e#0 Y,u9tdY@Pv Ge¬FQrh%F@*ht)iN}.0 0TGE@TkyILRNc@r P"FjXZL.Zx#uokWxjV.hָկ4f]~E,\:X Pm3;Yc)YztmN4YҖ֞ mji2ZӶֵDje־ֶclg[ַUny;ܒEK\ĸɅntVnvD]voxVEoz-B2o|7|ۻ׿#S_#6e #]` 5/1 o>;ꂘĕ/~U])^qbO21ni\c8?ny8Ȝ?&7Or/WGې4h?"?I(I6Dޘ8692&>$ܔ*^2) )\D #8% X2*LbF B!p ࠢljC@Xْčp!FH*}6JJ: 4X #:ҁ H,9ˆQP Dj)&5lt( P3(/pJQK.8ƤgD14;Re!=^aďg^4(28L+\cH!=K4j 2a%p@z= "֟HG G`fq1 !@ _l1d#jf(v ($h(,0ƈ,FaAA-Iܘ@d0I" RJ@pCA aRR\&I5[vO4Ӽ$8Oaf#2pN$ d?yJc I矌' LP 4 ddr&@0|Dx GB95h-.V&*r J+aj,U3xz+Vkfv20C 1#貄8uhqwԠAeC \+0K (`Q@SU'$1aǂ'801 AJe@h@0 #Zíּ$rZuzCή[jZ4+`4 <ɶ Rkp6 ) i|߀.ݒn[ hM7Tm!o(!eD s9S=cUn4P|6) E(piXkDM8ZoA %^ΊSd#L7J1oqz ]؅^|}KEkG( >*5f5{Ml`BF7=I4#A"@.&(" + :g=}?& IBNfOF:򑐌$'IEnF%7Nzc e(1IC r)  \% ą!#R@\撏a:nIU-`YLQ:Ќ4H ̦6n~2r8I|!,\ 5I6D';C "56 '?gI4]!,` 70JK&&L!I7M6405G$<;!,e 3p&;;);qF;8! ,i 20?;&6A'>B4A<@7=!,n J0$'">8W@&H4&n'0H2=59sJG6$ć! ,w 3WQJ]H?1H2BW<Q! ,{ 20?;&6A'>B4A<@7=!,!5H*\ȰÇ#JHŋ3jȱǏ CIɓ(GzȖ-Qʗ0cʜI͛8sɳϟTf-?*]ʴӧPJJ A$Vׯ`ÊKY4yZgʝKݻxR4A-ѷLÈ+hm`5/L˘3k̹ϠCMӨS^ͺװc˞Mnͻoiȓ34"УK@gĩkνbNfa˟OϿ($\2 fB0$V&Dhv&!h`920Ƹ &`"8<@)DiH&$Yp# 4ӌ,,i $OʂX)&p @2pgZLx=pكu^)9%|y6裐F*餔Vj饘f馜 4l騤Nj^&:jkYA*BsRe.{+d%44l.kfvk .\k覫.zBV+oz@;/l'߻[Wl^;/1,rf,olu<O#q 53D,;E742A#=ᄚJ.+u\u,릭D`5K.^d0}wL }Q0PwkxkN?w5I>$1K߀7xPѥ;@;yw y[ |3y~eO.첋k7|B]J,P Ҋ t'tZ7B54B{[oR~;Q>lt{ ?u[;? ^Z6n؅ r AP} ƧOB_֯}LHa 䡼yU0վY/ o7Su. EHFQ 9;mqkHǡ.Meq\IHЋ}LdnF:򑐼HCTwg 2 lIR΋L*WI$2ɭN# ˴q'{I?jyViGV&IX"{M`D .IrL:v Q <#(0~~yɽdb3ԢDDdo @1ONF1bl4(u@!i"Ш D8ͩNwӞ@ P["8j2 [HD* c,CH1! c C`% R*~ֶ (0uR=JCp^#`$B@-`a #C{M,~(q_XgFqF-$ J(ͬf7z -rL$jQ<:!@&G8z B nq4ߊŖpkX!"Z6!H\ xKm4R74@K_Xg9~5#h@!@. 5&'L [ΰ7{ GL(NW0gL8αw@L"HN&;PL*[Xβ.{`L2hN6pL:xγ>πMBЈNF;ѐ'MJ[Ҙδ7N{ӠGMRԨNWVհgMZָεw^MbN8i*Cg':aVm߹Dj? A7NMq7ˎ~ܭfd K"M@8AfIoyO;'N[ϸ7{ GN(OW0gN8Ϲw@ЇNHOҗ;PԧN )H+dM!* :v1`$9 Y$pl`X@|p N:@68އE .xB8E C@b*%ܞB0(uL S  ?HVlp?EʚOϿ8Xx ؀8Xx؁ "8$X&x(*,؂.0284X6x8:<؃>@B8DX N  N Fh_+A ZXo O@x NpMhXoof8|؇~  d rTp P ,`YY fhgwA4V `U`-ư ɰ@W ,p .|Go@zCw{wx:.6WЈ" POwM%j#7Y p2D0ywyyW-&"` ,P P `Wy6pH 0z{G{G.UP  $  و  aWP+02AEFz@`|g|bd @ `Ќ h &S  6D 08`D}'~gS9d˲ raꗔ|ٗ~ ,o0/oɘ of1401ə9_Q 9ab9aqw1R`$DP1p`wȉPZ 0wPjg,9<}ewH}K`$*Pa7h(F%qg1Hrw瘎D@da(i$W\w9v p`v4cE0CCCp0^> '&,^ؙ04`2`$8`y٧&6'pJjgj0lԑh `u_Mu#Y˂z H::tv `Q@7sw;,qw#Y2%&PFШVxTB}F9=by-gpnz-: :z,,Fp/`\[CPC'*w:)#6r@hB0:VJw*_jGRO#Uj:kֱؚ֡ +/ErZ K9!۲ *%+{:˯{uGী |zJ7p--z:58;ڳLjjqw*rש;U`-8НN#Z@X ,NVp|v r\;CVts+AGz8`8,JA/PszwSƮ z9J,>yi|{˒ J6;5뼴Tk0U} #Lञ[CЖQv¼ ckJћ,4ի9" 㠎G),ٸ 1"j.i ?{B?Cu QIAPwǫ#D[uOS"|F̱8tzjk[詞_$1wQswXiI@_)Q ${+ÖѷGaǰ0? 0rl1*kz_[J@0b:b,@&˺i;_9=#;;]0 Iɲ3#6F| 3xF;[79~[:2rG_˾ʽL!,8c ;5u 3\İ W윈,/}Gl"{4/M+KnS\N>dGFpڍm H be~xClN16{nF`]S\Rn jy>ڕNջLpt 2 naPqw`>u!", @*\h#JHŋ3jȱǏ CIɓ(7:dȲ˗0cʜI͛8sɳϟ@k>ZѣH*]ʴӧBBJիXjM:`ÊKٳhӪ]˶۷pʝKݻx;+߿ LÈǐ#KL2ʘ3k̹g] 5 -!vPLk @We?1JI (%`(.QM|5pO_-8B>)l/:x~4{1!YSi'bTbH(_Qp_lii (q"#h'" kiH'1$!R(1ڄjp!T"!Z'I{y`Xu< fB(Va}& '!p 'o!Gi``\ 65FJ!,rE!|uҥ~|-A $Vl Ʀ"0"In}* Jv $&H(takPk*VcY.&H&/sJF' /[uApj$TL@lu2˦@,Ҟ'Ζ&sq&AK"I' X@!է-rM-bsv!o2`(y ,_i@ /SY6[y{ܒi}ùnx{%i t[ ͑P6b@$.W p nC" #F' = "nAkY;=$P '$@4Yji\Ykq)WY>@#f5-xBV X5 M@P XHB $#,FC5{ @7QXwciD͑t.⨂hi #$@J`@nЅT\CP 3H<#_"G=`Tѩ@paWP8J16 !NfVz`GO@c[3+٣䩂[aHXƷJba) E$]sQcq .w^CIb.f:\&4IjZ2Ҽ6nf 8INdL:yuL;Iz0>O0 @JЂMBІ:D'JъZͨF7р1HGJҒ(MJWҖ0LgJӚ8ͩNwӞPJԢHMRԞ+C R(AJv@ (! _`NgFP)Yͪ<`J ؀ հaA@4Xa>u+\7%$ "ݫQ9 $_@ D&bUZ u,dk% $mkK{>Vhh`n_ >+V@Bj ` fkq 8`@ ``hv\33)acHkuǀ5AԵ.I @ XP[: a )`#AI؀D@)`.ư_w}. G!6i7b o )@`=/X`# ؃@`=t@#& Bʇ 8Hƻ+l@l. qR$t $03Cְ5;c=  T cBH,R0z@8PT;tAl5ғ~R,ZS=Af5&婧I g*9]X5ihp $6 +o`V` ,5$a ЁzA0 s|OPXa Hr}7ހ{xH6G* pt |4;Ԋ "n Jt-!h vAM0< ^ź% 8ݰI7, xC n:T9ys<,fCRhc00B Ahu~6<%K5@d1 x7FSUA |SDXr'6\j^,pa>u4 Pe3f `aBeYV@_3Y475lpb?(RKF]F fGS\d(g\5qcuAiMamlPp=we#PJ&Pg"$0Hvk C*PU>8З{a7)1W@s({!@ XH9 7PE|p0QX `&PF00x9|4?2&2@7`rIWJ90baP&II`D8(:K":`N$aa`gb$402LIpz&1# =`2 p2)W}0& 2PI`FПy&P>p|1F9#@_(P Ф ``gpII]ZP7SZF_86' F@:7?@BHdE`)'C&\pHpZY% L$`1`q H*<0$ <X/@2e`k10@`႕8`?|'F0v @%EP1Mu-U8)ĺM)6pI! J0]0( ZHP#*5` _ѭTp`J9"JJ&gRG@< *P$P9:&P$#U4K'8g+0 (^PV)\n*@`t@hU)O{lI0q4<&'+$kJ<naAJ $`;#'pi`[p&K_ږ霪 Pz ki'ʞ_!>u*#|_"З@8əA`7 |!J]P_) ]hkt[Ct ʪ?p=]rzP&ph Y`;LI@0@PGp@P,O4_}½g4@L+,<>\B<D|H,Nb9Iif Y+a`p{ё)7 %yƫUܒ 195y9 )Ы__q- u(r̙vAȈѕWIZ\imAkGAfimq)v};kTɘ)c8ᙠ I髭9 #@Tc(y :9yݼf~s9ycls & &+){K{a#ZAdA0* -_Q:ʣ>@*DjH J}ʮyA;Pn ,xCZGJez rڦo:uzyЧ; J󯍚ɩz_@D*T:a_e ZƊʺ\;YRipzA4޺ viکjۯJj KP \lK 0в{13CPF:˳> @#0pIݴ RKV Z˵^ _<w=7 ʚJނ}Y굃ѷ[!{͸k0;ۗ۹#gڣ[jճ˚ |ᵛËǛk4PՉԻٿK̮,K`y%w4k Pl~ l_b1|  P#ܚ&*F0LAfa8rNx肾Ms>~T舾.O MONܐi`Zc\bfl(n l8əȗx}dž~놁qaȍkj1AAgylp̗͝~ ua˥잋٘Kp,˚xaʩX,Lw` >.S͛i)iΟ;!)ɟUZmz: Mm1$O=AZ2MK'}/7}4E/9> rJv >E-|<ԁ:z \Jn՚՟բ֮:tm&*{֊rm\ĊqjZJ m): ىח:j٧} =[1+0myA2ȭ=;E0?i֭L[{;_QW_^/mxq~ ߅+{߸K$[7 lG `C%F<v`A0q1c0@F1eΤ "e\Y=F YԨAexR+a 9Zu͜d8`7(X%{P*8t8`KhP){06qPi"ZuM`~qc#MdHWxb $$@ dL9@03#'^qF'|IOsѥO/4wŏ'_yg{χ}߿p@*2 ^̩L<-@ ra@"$2P"+@o@8b;jZ 6L"QG},C 8 *, $pL2+J4ܨ%N04_@)`0!Z|# % !?cX 81n@:8:+ Nݚ+9J0HFC MhROMUSL5s2HcB.r` b5(N Pm+Xb[Lx4# 20  0Xނbxa@Xbtb"t,8z 0$sb l0 xn#`X t@8aV@POfigl`A2t$~@aϊ2g}80nA u7^'ރN$nTBؐa & dFHc:cp(!Ӝ†\#Nx-:,H䶰pWi߽߃0#/@om:: 喝#D&b*\ tЋ!Ӿ^UhCPF, hE-zQ,(0&Rx\DXC"ɄH&HъVٜHF4ex(H %I9ӥ+DKRr-l2MǢS>I[X|YN(L^~%,cN4imc92 rEbClefgd4f9WӚf\;9weTg{9qWğ5v"q\#EI~r<&Wy]rjUBGdBHB(=J3-UG1PSA'Lio( Q pT%1]MTxVdUʹUZ\"]Ӛ7s򪝘V9|mC!Tɮ5WT;xRUIS`VZ< +yaXSfŬ; ZҢVfn E՞+]B>l2_◿  ctFF܃b.b"p YÄK2M-3oӶ 5g,@N/;ӸUmZ׾F_Яs/ゾy`=aLs0ƁA $0 9K"+8RQ A cI2쩱YȂ`1/1&;V[%y 2آ T2;4@B>߂L: !J"IZ Bˡ:""(#CQJ B! "C4D$05553|#`@z;¯X#TDA"$C][5 !06L$POb gå@6hl3"`6nkȥ qx+@7<0w xFid?騦{C|7'rC'['h'8%6G88~T(0 HLH|[H|HaJ+ϋX+ŃQ_ R,(])J،^`&ѳ,C,kcY Ժ=rsٓ=`CDA(7@@>":>I>Y>"A>?IX?K/AKX&Ӿ0 ;?ʿ| -q3D.BxNhš#84  +롱s< A)""81ЂL!AH#L?d@tB CLKR<â @tLI##RUq5Q#RD9TD$'mŁx)_Y (V C eEd$\d6]%舶Xjb<.`͊TNdN{N*NC?e< ^? ^hZ<Ϭ?UOOR˛|@"x`kBu p#v([0QA!1l_) H_MhZ#CERh'#*+-+( ȁ . Rpk 64 >)BL|腃USEӈ6393RSB5T;EXS@D DHsH5K[DA-HV(@GO#R7J\74D@DVP#N\>E\SQeE_%XWUlDf60tC{{[XB^l ֽ‹bIF^̊fY_*׶%VFm\&nhl%aBq|sշt5~cWv'Vsׅz'X ii.WWȎ0iiiiii鑮ijj.j>j^jnȎͩ8I)[kYEYI:YYY=2*$ɺnMڲjZJ:;G K;K;U9"?2ĮCT?M2_DMOڿ\`c abP[  P1[HA}Q{A^ Q~bbձ1! 2(FQb1 uB/vN c%-&e(*UR48cM2$SS @8C(jCh8 IFCKfCEd>J ?4Hle?D'[TU ^6_`s[C\[^;UIhNxUd\ %TUsvȁ`V VXzk +dgfFo|.&j]7f2Qz+w$ tuvhshKG .j~DPN vfEnvhvivjvkvlvmvnvoiۛR|98)&YCkU|kُeeZ=}ڙ` S4xxl )n6KS˻cK໊ɖKEӗ*ܑKf,^!ўҮj[Ͻ˳y֞ѭLӕmN]0`.]m7!9!Qwo!7xR1n߭j$>2rބnL{JΏ.n輮8OL其]` } |ǟh.4HΈ"+"`Q4G@ P ='cq#!.a#*e$,$DbvM}".k5,P0ǔ.R (1a 2lС Fz0Ab HdPqx1B0P4,'/F$ CR~P6@.It*p PK@E \ܠDLgB "B8b<7pr\Wt0 1&\Q(J @t)Cq”a@ ;@ T*$ACy'y'}' :(9ABbׇ:(J:)Zz)j)z):*z***J)5p;t*'[*jP/kAiB4l90E46k G@V ]h15 @ 홻+@ԃZ. IP` [B'@v:d@_HLqY ±U&f P 7D!,Iݵ "0F.q*(CiK>` vW Bs½ @1,BHl7@`` m⊊#ࡅ@ݬ %0 T潷DW8 $`WDD9p0F &$Fr0*G!Zz*tECC5,(E] DI<.Q*-4=*`чڎ ^CbO6UuPm}# 鐐 0 H7@hbi}N!|߶ls A@#A (4 @&'@`pLBx($@ (p./u.`:vP84 ,Vؐ,t `A fьY P? D#Zb P4YG ^M+Z %'x[flJ'h@l jY6D05)ȳ'ia&XL8̼EHE2|$$CNJV&WIO~ⴴ\) !ilW"1myK\Rh2Nn\JaZ0 d*snƲ h\ (A l(7Apm^c!EB ` &n;\x p;xc ="g?xZd9( bѶ UІSDpQD [Vsa7 /" I#R(JuB`@JR 4&pARղ,jKҶT)K@0!w !F ,(z\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗ɬTqL-ټDH9@$6!#hPP@YKٳhӪ]˶۷p}D#K(LtGѴ!L6%Ds!I$Lʔ(^:T#GtHT q#6qb&:qEE!'0 o ?+_μУKNسkνËOӫ_Ͼʼk)&J&SK0 LIh'#&PIc%$Xr Y$$L P! :4P @?tAi@6Ì5@)DiH&#h"^{CSfR%c ևXɒu@=у  A ?p^T@p v J6裐F*餔V NZB tUP&B#,(&fb_mN` "pApG% %ACa V\)єZjfv+$3IP]и%P2Y-d n PYag,lp%$G,WlE_w q$l(qrH$R"EB=tr!̳ϒ2- Ckщ't }H0  `r_$m@Vcˈ̇@=PoG$IE&7m7C"'rBr"88C31h@8E4$4C7(wK~3,u$ tRx^C J ( S@!܋.tB4@A("I(7#?㮻S,$Q w$D>ԆB$ H ChwkA(V;!Ɂ  зN >1CjAj`Ք R@ $3가.D0  D.oFz@ L C(Q 8'Gu bz1r@?D ]\\fataFHo"#^XQ iyͣJ~ qM6qO@LdC!+^BP<;J՞Ze ,œe2 X~+$"Wq92h$Q `GH ]G3Q2 8:nt!P+IW+Z~)&ХS>ˡB,`KPlt h*ݭk]1 WG2@Ӟp 1C#IB zD( (BNʖr;* il%[_e&b!: 0jd _u*BB AMR&У!SEP;)[;^3j @m9kt6؝:[ I&niA*K'5E;ѐ'ݒFSҘδ7hKsӠG 0OԨNWSհg\ָεU]vz-bf;FZ6Mj[%n{MrNvMzη~KH;'N[ϸ7{ GN(OW0np!|8Ϲw@ЇNH80A``@Q% lv@_|86#Hbz(zHl`2P;ŭu 8CȀ+ @g7%$ ;-$A Pp 4a:)2y3< J^{4a y;_ƍ( /|]5Kl`| 6p cl {^AV؀f P|;P 7fGvcjpW} 7v,2  p3~ gF pI"OG  ~cp ~ ~ }ڷ.l<؀0pC } M~ ͇,`V0{R(|VP}3`0Ew@  OV3~ yl;A}p@pdpa{{ y'8ubVpV|K~,_`V0_xJ01 mzdps4(pu`(y|a@xh|wu"׊PwuǘG$ Ǎft]Wwyph84Ph6`)8'pzVG(E$wG_0h,"_@hvw bt|Op'_`4ڨxrx&p_lvwpHMptpKc׊ pl WE8{yooM ; H2{yyJPb)u#p))0cY h"pzih;P)O(| b0|``vFH}c+|Lַ(}f7{t'5p7ufuh؈3Ѕ wMh@0`Ixfd'|$0;`xژY2 4+x` {'yu?uguy84b y@aph| 'xzәٍvW{w Gz?]fyiy`l+lAX`wD8'2:MdIatM`v+$۶W+)Ș fy׊1|oz`kKU*!9^jh&HmjXf%؊wyVpuwڀWh7 g`d㗞 g1HFڀM8{PX~|`#8{y+8*tt R'3?\+ y4tИںjȭ:Z1'N!Fp:Zzگ5ƇV{ Җ ۰km`0p ZC1pG4Hb;(*{-Z`KDP1p9sE)K 4P*Pd02 o>0&[)yG0wPU )PZ \k-H&I@FQ;آh!`#AP=`x;,K$c7` CC0/g p$IP0$+"]~/"$0]J¸&B*U>81W@s(еb[@KV)q0QЇ!a!)VXp8VFжK)'p,D070K;~;|&r WJ,P1вn128@X+@Bpqk[p GbpDŽ4&0aæ/02(2%W}  !^`<K|$L`FP">2F9#@Eq)P/Pq<ǖF1e\)D@ [2L ɸ`y&@nAPǑl,LH 9H<ٕM):4C=ؕ4P^0:0&'z E{r60!t۹'{b(RZJ"?(VnF@+0$W2 *p$脞i^n2;=rܷ@А*[5;PV0<@ q1RJP RKrY]~L-zs)h-z#^.$o`"JY R@0'P0߯ +KPͻ ",LK);[۽(Q`y#Zp𐒽ۛRO,Q0lR +,2~m+щ7|L$\?L7 1PG_ Q<œb A]%f\h (lp,Mmǯ6)P 4GdlƎoM}-4ɔ|ۗl&ɜ+OL ԭHʱ~vXb5v6`*%ӕcvZjZlv[n[pw\r5\t[uu]xw^zU$AH( 6L  +( "BXat +@x E. `[) @XݡjN r/Θi=YpoyU: j Z&ՄW7D„0A7 Рh|*~/p & ,pHqx̗#jVqcA6#:! B '%FÅ]vSN"!n1%D 8TWzQʇ$ oB &("s}e<;\a8 Tb&`Bp~%,,Rɀ2BH&>k\1BHA<a3(T:PԨ[C0 rd( " O}$!aZ q" B`CA4&&Ad {"80 t H@@?$0 ~@u zzM @ 1B +Q\)HIuAxP@A\$&X8K 9ܲ 8(-V28@<&9yܢN#$)r P4h3fV7)M+ 88.p;J#_ "q'F4ʏd$dVr3 Z Ot4LZX"\>ZS,["%/{ a31acU\&33gWӤf5yMlLڭ8)D#"GAs3G;|s1Wq|U?$R~4ĠP%*H!CPF!F++`AG:"ā HGJBIJTԭ<-hO[t.6m0q8zIbRE(C!JQr&)JYjXo?\J*BU`WժJtWw݆j^oyKҐ8dYnM^Wo}.Wo_&p |` _W3e;X*6Y8]41~,d#3Hu[^ ":q9MgeGA (`48jZFmkTC 5-mmny7hypU-1 ,lfB4t@T:nx 4  kБN 2>Izz= +|vޓ>i}ꇫo 8 nТ !)-\s E„@*Dv 7X7{E!F\P CA].,IMP=:i#G9w1,!Hr$MW#' j#!!NUa㰴,k .]F[%9qs\LĦ6.{"I@NqZg;+Bxv=3cyFF,Ih#;J4'+ 8ԖrS(6bOP/NO:T/|KyB}1yLp:Lh3́FF }]秚.JGgvկ'"{f/um+h+$b%$p5UPD$}-Ra>ëp>º>>>Ђ ?"m1?!y5P?,ۖ3+?pk3?n+($@s)@Z HiDFY\@ .F#\P"x1APLXP PPm PQ- QMQ]Q/h))BQ*\WS0Bp10 C2d SÂ`CrqB81)(wC8a%Bba35E2/GI4DUQij+;@SEX|n9Dp4HqEWDK[L_\bܞPLQFLfLEV-wo4 _KG4 GkS6`v'Bmz6Gnۡo Hs nvCHqLȆ727428ȀHr=>H; #`$U-՗4ɒ3%TII[t&hR^:kIJ(9eXojl \qJS7+˲;K3:;zK<[K) I^b>zNc??ӭ, Nqd2IOq1?sI]-ODr@M@۵@@W2]^cqPxP^P eV^^kAQ^ _U_=_M_EBQ3!QhN̖5Ss ! " 2/ %}2(}.qIHh튜0,Ŗ:./X\S/ A5M %5E8՛FS1+JS7PTfC=T 4mThT*}),\\bV4LR M#O3P5R3GDg\5iVU]r6[Ua- X\]^=_d[f xCxteMklV~ܖo#p9H&*Gmd.ׂ}C׊8vm厌W@I_ɇVU98%m9Q:XL렇-lJ2ʅ8dJ,'k*p`,x r::ʺy:Ε0;pˏYZ[YăH̻ȍЖcZJ^ڛZĴZ{(h[A+*0 ۉ͖s=uM~6Y=<>UÅ97^M\ʭ,N%NmN;)]\=9uTn8ܙ ]m]^^Je_%Pú.RĔU_/_yle Nm^ml~m؎m"tmٮm۾mhx_!Vhj!0 +ap߂R;Dd0fn1F-`+CƖ$QR.F 0`3+hS3S,~k!"1!XDy H`"26(K'b4+AbDUE -~CmQSӹfHE/*^M|I]n0ִaO=F45.flcgT5Pi|-Y݂(7M\ \:Nܙ{6mA=뺿Q p9 '\:3P.{k&];mI]c]"pݨO׍OZ|Nnl-^Euw^_^Ӧ_}o|׏}ٟw}ڿ}}mY}R#mߖ0unn1҃nCv~Rf`wlqho|m`'&SPntoKLD^93;%3<B,8Hl!Ĉ'Rh#jǜ(~X,i$ʈ HF!:wlQ(0 ` *=2*"ЦZF+Qb8A@P$Adȍ0Nu ʒ&vY+]ۖJDI ^"1vn8hʐ #0r`Q β+` )@B &!ܨ}@#dDAqCU`CS:CT~أ-^ Hl!|\y~jBd Ptq Whڀf!DPwj 1L"&P I` D8h)7 $\zQgA-)HN (1 bG'0lJx"D! yp&Hfϖ(3M&B!FAR^*@ G-&3dPRDJ\re/}p`L@RWBe.R5j |LDm'k`#G$l7͐3,9ϙa|#p;8Ar`=kuC 7$ (A j +%lISg2HThEjsdD#mhPEMrɌjlDL1^IMĥ-Ӛb"^85vK 梓0'=D|B*c/4>[2Rzz*U 5^UU`)h>BWD<֠,gmZUϖy $e -PB%WNU/U@BVN,7 s`Vb0n w&`g%;Y^X !'/ibf/q~RڪFڗHM-0 )P3+LlE,Ҷ6tntA dBbDؚ Ǒ\.saLfMuKZG:% ']- $]@@yK7CUWzk7|D^ ^CυĦ? 4 (#4 "!$Hn`;8 Lh#(/P!pkq8#.'83sQR|@Y$d!FgthG J@ C^TJCsOk RI:ٺ%.sN]sj0_Q=p5O+7mCUu9orײ~Džz}HNjq%b隟z 寅T`ĄT Z`@_EV XVm֍LfU 0Β]E Y `PL@H II|rɞؐ  P"[D oOcZP[@q[}uLQж]Jn tu-P Q\!OPE"Q.%S6S>}TN%UVU^H%Vn%WvW~%$U*)@ d ]$_D !ϱRE:+$Pi]CRR끝'Nʨ۹]/[M@]_XGzDLq(aU="sx\YG9Uw5C p@_b5V"_ ^@.\1V\h9 F `g5h@d ~2 Dݖ |b *q x Eb`s t$B`DB)t!y=!z{]!|PK 6~IPada2!y!˺"h ^"FbQ"g$%ebPҸL L @(:)^"r" **z*+ޢ+v $ /"0bݢ 1<31Pc,96JT7fDL9:<Ҏ<ܣ>.$Z eO)d ]OD ׄGNG1$ Y Pd$8JvKK$L^L$:PVʲP2P,vQRRd,R\,-,-&%^[ٜC٥-CD_  ԲMԑDE .Ufg^fҊfe~MhNJgo 789S;=nޓCo"^pq"Ters63 @`v.!.iIu]ml"F={R{ 'rAX)(`m~^zP CXoG1(`PaAZܟ< eHv ^`(h( BɎFiF ěגމ VW6JDdTFzNyba|)Cl! d}Ϙל"KXX ˁAjqKj7bب!ZjoLq` j%%&*'jb*0&p,PA,bE j0M0J1.8+'׍Rkd#`Rn0 k++F멱+vZ#ٮ?Zث@2$&dîSF>8^G qLdE <0;lFfHz[ņZJ.t8d;ΤM lVs>3JDԬA4B'XB7C?4B34DO4EWt6ɥ ChZbm%ƥ%mm u!%&%$%%ed-a-ezZ-=fjLrUDH!@f 9n߅&l.Kl.qfC.mu.q C. 1TTU$'H'y" r'TfN:D t / QU]~/eYѯ[yhU?U` < 6d'JV`8@ogc C-@0 &W2 CRW c0WW1%!I ߡ2*%X L%N3"q>kjs&@$2 r*2+z"Y4fb][2>+k2~r)(C#)[c6fkR]ԣ r:~cP=2>k00ӫ1;@@k37dfI4+Fb,ĆvI3j:;9ȾȂ<[NެE/zE3@KA?w_:gUJw3:ae d) TgHG[IeJJ7F3L &MM-NN_]! ./tP[R/SS ) A&:=UKkRnlnuYwmrnyBnC@@5耖ohWh<L 8(j (kƶPPm qWgVwH&Rr8Ƨ>iHvp "v:xKה{tɖz* 7p{ v}˩ 2T ! x+ `@@@$Vq~1Ĥ<$±{̎Y"x8x98 ̉O!!C"o͌+i' (4k4)#N5^ZcN8څ@@Ȁ,Ry;Zrky? $#2# 4xaB JQ ND`%40dȃ@8$D EtC++´y *()@]|2$IС8RQ =pVMe >9@%;Lc%w\I?#{p` pb}7vrdɓ %g(̫shѣI6}ujիYvgسi׶}wnݻyRoÉ7~yr(đ:m Lw,/2T>Ez_^ ʐQk @a AARb ;*"07GP9%%(L-:Y(\ # x- o- I|k |D`0(T 3,p7" zbP@175 A MFhHޮ8"(! "2FG8$l bv"W`j vPSsIV5,%! %(+P Sт( q#`dx3#*+L@L`"$n@W]bxaza ;yNn`TCy[ H/ !( l0B|aoa?2ݨ`B a4D,;p6Wn9"h(aNa(i& ! v*ԈJy뽁2LbMk Xb )0EA @{KwT&l"I-S`@7,|0 ^ b¢ou~XUʵs!("caѽA tw#axD렍"/!BYŠ[ܲ$Sqpuh #z0* b:2P3k]$һ<%(p ө,,t @Qlb&P`uI8 Vnv@ B/TJǂ $LS ~-`  B hp@m<hP/b0 ~P3;>(lABr@CFM,ڰE RဋJb0D JLR YXYx "@PyW D([ݫr\7 tՅ 0n|y+2pKPlp 4H4RG(%P=8qΉX8:OB Lq T`E+=WEŕh[ F9p1HE?h3 IYR1Ls-9NyԧAPZT!΁t#쀀B'h7IF `G Ot3 @ " 5DsNQEьj`uG4)@d)QJXgiLe:4+z&6 NA:ySo4@ PBUS dR#0S qL5]lzUfU_F!W^㕯N뗢E\I!gA Ң'W:lmK B"Oa/k׿֛̇SjK ؂0` wcMJvELhDh+Щ$0,҄c4 8iKk65HZ mYZ׾fҌlºZe-nH[F_yh$#lp/ED,9"hsD\ZX8ysI]p.7wY)RZR qO8tKgH.5ȗ3k4"c؃L@; 8 %E.(؄(Tnh4!yxaQ< [!ш'Fq)h#E1F"Z /9 T X;q}c BL"H*܃ %1,z4MpIÄnjIH Z~K2FM5)jlM\8e 404_37̇DF:R%*pɒD]gQ6)y.(jO3te9KZ^>QZ4*R _x|t!5*$3u)_y_5y?*E_zӟ7R3 ?rosV *{U>ŏ~ƭpE@hH wj u Q`q-BiK~$`މSI,5*]X.O+&}ĵMkNNtf~kR PœvHERBn7(Q>%T,ºȸF8KXbdVTVKWKDüRX+YųYeZO2 [E2Hx-7] L^^ `f7 fa7llb*bTI7c@FdHdI7l `T`fI7DK ^gl 8ik|jLȸk&5&k@fmHTʲńovz$Č@&,*rlZΔ{GpPGulިvv74zx7D 8Y$mzgft8E"`$>FuN ̜?o/@K LO fnkBw|C++NJ K70K+Q[GmZX`PhW($X8otнz0~qeH 8`q4_I,  ì`7lb07NL07T4"fLOCs,OQlU F&Ry.91,7hE׬XULULuzw6b qttU{y8,z~C1MY?-ZMUZLdm[ѱ['4µU!r -3.Y6r^p-b ̍!v``1"v67(aYc %/&5⬘d+n'QV|eA.(_HcfT甕 zCg_g2h+hr7}n, jw,V;jVuŽ/nnn)123ms$3o/7צo#po HyZorZgکQ/8b׭ D;J uCu⫘wv9 b e:i6l7OtB..vW89y3ʏykO#8ܷ, {Et:O@4~ϷA՗V+E3ECC77.e 8J׀YtU(VXл^0vK+G-8ۋK;2K5kI7]R Յ`dx¸O l8ЇI, ߰yfrfHPH O8j1PӆQ)U%Z0c'8Z=Չ =:ӭsZ~c8:$5y/7DKS7@|I+7*;` BS8{?k(K_7SX[c[EX}[m;FX}4nTnEG1x}-3̐4H <[ [ ix"[J Lϐt Mw }&7xOu { 51l/ V',b"T%G0\7'U9|U="pTo5{Y?bܑ%7"ӈsY-Y9S~Z=yA |Ք.Hʩ]_h5aGUMݚ^Q͡y#ČЈ3s΅C9ЉtA@CSh0`E9eZA me?@/@ Ce yV '# 15Z2 y'ɣhPTAA =HJMQXZl@ZjPep0g`?b{"+XSBy!l fa@ 4I[]#P+Ꭻ»p%rJ q0R-``v~l /ū >$ZpEJ7A1=t_p+LA /ʢ qPJ1D&0B7310 =K.)p5yD*`P.a 9`P AxaM`qP W`,t@B:[C"n-7{7:AC^gyCP0&P IAokE@ODBH@^;% 85 T<(tq3;'tBP6Po<$0BC#X"F \e`(O![1SP H~3P@^0i| q=0Q,6 :Ё6a-LBmhV Yh{w=M4…,ԃl+_BX)ހZ,qHDƒ0*i2`?$xh*08l+$ /X@G Z(h*H+)! 7 <^(I T+G'+#Р^YF6ґ32G^DbHE.rK_~$$#)IRD&Nz@ 9f6,S xb!YbF=&.sQJ]2&0V*a=&2e07iJ&7Zhh#ဇIrL:Ɏ"WHps{i8JG0L?CBdg45.iOڋw5pmk]{Mm7nnycя#8 p|?j":nt;] ]fgaoPUb@ {)m{uJG?n}ͯ~˟Ap :,S!p h2^,oF]P}T y9C 0IxfK{0(";%RM tQ@ <DA M2 L47E#G>qp!pD.)iILj|e(GY:C( Et=- `JddIK[jDa LaNCƴFv36$]4MM '^{{8E)V8~E*,YQ3(Ki0GA 2̋,z?T5.T@u(aiT(s:2iPюJG0EzYSǻ*Z_{HBcTIB r _+7KQ H 0<@ѻJ)(k_q(Ue:S}(VN.r, @575Z*7#!)*:e%G%/2C_*"\A\g\1%\*\Ƃ,,-E- y-R/1^u.RM^^^'O4 C)S_e)_UQaDP`#0K` `p &`q11'a$c2 '[ycBpA;Po|4BgGo34P#5cd 8<5z6cuhC6X5G8Jv7_}fC8*`8"5=2Pće1)e#cv9f9h9vf:C!r:xgg ;gh[fs$1hփ=mSiiiAb6j"HC2iF@`@8j@fkA/<74/@\6ll$rl #˖BB/s6m8dmmghmiKDnNRFnhpd?+020'f*4VFF2F+Rp;pG*p}Gp&I(HHqqI4Ts$Jfr/E]vr1gW77Ktt=KIwC1LRtȄtot&M11RVlDNK.uVuaW\gOv27tv"4w vw0{Yp~wqQ e.N"4x2x)yzqy!yy`ySGShGS5{?R{թ1{T2Iiχɞթ)IVח}uV'@~6~UW~~%7&"5"()Ҁg(iRZe Bh!':[GH1\eu\+(-.Ure[;X!^r=Ax^@/^,r/EY/[؅ 0C b[1mxa"V@!6b/Ycc4Xc"u5dfEH8tӉL|eRVȨd*fuvffC:f:t拃g7<7Cd>;">j@(BIAk3# IBBtl)C9tm=đ6iYgLLDzM:pWn<Ò.Yp2)F+QJo}o)ғ?IGApp$3)W*,J74WqXiJ۔JfYi#8ɔKnspIm!Rk tytNWFuӉ "yNNc OaZ"dDvwM@"UP|r 嵪x0bd+##RQ'RYRlj!Gy,Qz2ySEi!#鸓{i˹k}鹡+K`T 'W@Ya-$k%~YG7̃~rXn'G'z{b##" Y7=bL!R!)r![5(**)R+*\&䂲]R/ڣ4x]D q-Ń0.CC"WPH# <3/t[ #``hQ1&aˆ2jaqhk+21e)ox4cc*Av6isjdʉd+RQ6eXelӨȩ:JfghgXsnBfj;g#C+>ɳ[t:DGFGxFz)}Ymzua`x:1M"NN`Ni$vw_ۙ4yUil;M9B9bywRۜ3zщSmʺ9S: a 8EmGKM͞JQ-S }WG@d}"| q~k& JX,  ](K H*`"cgwMؑ½Mrޫ![@a_BJPh$(ȥ\Kɢſ6J Dڃ|IZ^BI"*@%U@"ZEX_VZ2rgi 2"1$|&)̦jAqh'2 z"7b/ÅFÌccTdXlQ0rЇ%ēfa } egi lgo >_YL=J .x!Hxii͊ ł"? kzkf݃ lFilI^l,mz;,D ٗ: r@ "¬ofoƬI eMe:>Ř9>iVmv:gyk܌n\y,l0/\ӘG+șv|:N &E@VnKɎ|#3 Dm53 ,LFg>i<Qb*`L` 4;<QD-^8#= Ą $2<8BƎb! i2ęS'EEry ?M!NMBcG Pq#8yX1H(t:u, pw =R-ÍMoǕQ VLQL-Tnģ00Gϡ@'n( E\ G>@$"aDQwN&W. @`>/@l !xh@"rP0B)j!"@(n&O:8a p<G,i2hP%$hb/" ) Q 80I& )>氁ܻN/E3-N?%PCE4Q&Rp4RI'RHhP7E4TQG%TSOE5UUWeU@u5VYgV[o5W]UuW_6Xa%Xc̈́5 06|v#83\U.1hnu2ssaZi'B  ]U]+"?kax-Po-U o j :( TnYXo#:Ha!8x9fVnDa>b$<b?j9|c1L(jcV!$6AFrqGY@5l[%$`XIr\)ETP?" %X>W68rU<*h&BH]$AVie@@,`O>3N0 x2V#zG:P }CX2,oOt?H )u<=|cg?~*Aڗz$j@VED")'E+jQt+:Q"):# JINҖt,)K_ Ә^(4 mrl@B';;c6CXEmj-(bAJ<3eMuPmnu[ַMi;\׸Enr+#\6׹υntKdeY j" @INnykeWnկt+r$]U0Rb `X 0RV-2 1VeBSBFdyG2Ɍf.Uh+b8P4-iJXZк4#E Ssۮ!ok_sU U6 nnd8!#\gA<{H E.U\&aNs[BWCҙNRCG!1zLx۠&hCS_@]! ^/~S#ѨE5n28Gh܎xc%ʼn$4F>2A$RMٓ2-A[DBTܔĕ+a b4E(.[*Ì,L(<"Oٳ&62|%$INTw!orl+_ K 0.sIC'QLTVhV0RP )FT4yIYR*}oTcS4i`T` vTzBU>Xm@ "W*V =YZɭQd5X$5Gav" @ِZk6\Y5I7,ђ7y,0i1ɚʒ@@͚:>(#暮t`aqR&-O1;H B`!4#D$TB*%t'(BR.fq1Z3*/rqZvyx0zb 0iX\q0Xh> [ `0D0YDq4J!193 C 21D3isTV2"- q2D)2+)Dқ6* %Ȃ+5c.S_t\4;ۜ>cC4j3B׉;ڹh4~HcjC Xh6Q7TUӟX{5aY5q56#Xde Y &kCl6nC 6!bR0wۡ|~!*#77j鹟c qiak&g833s$8J:;ʣXI$Aʍc9G$99U:OX`ˢKK K%kDE:j::䈦C&8H+=| 5ȻtR{'b>B)BB? ?W1JYV+1V:?j?3|\@bb7 l,  ?,“-v}"MQ#e&u'Ҍh(*+)-.RުBȩkQ 9r1p\aJX/ʗ7ܯ2?;d\9]AD[H܉ G0ʈ6m( əT-:,ĦPk;Ey"sE$śY&KYE]Բ`!FUt\8s3p̹pF>+n4oTAkrDs\4uܝ%uGa sѣpP}45l HAHZ[\ۂ]VHa+ \ɖH#a^+ԕ6\7&,qC7\7!xI J{5$R"'~ -7)88l|46z츍TL#20tH$#+NcKh\15B[Q::Zr:\:륪$:Lh"%-`L׻ s;bMpMyMz"<8|J2$̓ N- ` Xoz/@S?T!0t çYSS4VSB7^UAT@eCTC,T[AHSB!T¨Ѧ-]qTTI.KXq1ććT6 U!0!a5$@ځnնyV<2XՈ(ZbUg^dd /#_V3q,Hc@VUYc-0V[kF<hi=H:+l=4sTt̝oEJ-6ky|rsMS!{ 8Ш؁8(Vٟz=YSȕ{eX`#bR؎ |Gb TcVHnvXrIIuHɄnאJ|+Y&:Yp54-hx٘Tif`2A $YKsZTKZFr˗k=*̺Z{-Q*%]xCeML [Aۯ:LeQMD[ 4 4 k(8聿o<{Z̻͇ ̀ ݟM\ Ш(Ukjjԕ]XVC)u*;e; ޒNn8@Fm^^?}zPVP}nY (,]/4^UF \Qzߡ _E_Q9_  pF`R`77 FgBwA/v:waa&㝨Vas/: [È(S>=OCE<{($+WDcD!HsIB:Ne%Q2Ui9a>NϜns%o#ɟRnon=f:Y)T V*됿^n6o fZI_@u_ZAypp?qG/ PoO.o/7q).9rC-C9=rVyalyr~S? "Lp!ÆBpGGFܩq` ? )!(ZJFq$͚!Q^̸&Ϟ=yQSGF!FBAFqtjGV LDq7@ eն!IH52d#hP8l G&vvq&t|V,8H0 Me;'O+6 X "aC o'aD& ~7q8ʘK%xfS^.9H:Pzj ?pFF#~e; Q C!``{P# H$\?hV,P%zB KA`>T0'zK`DЩf>;!5g<9ÄHA _VHȁ0`0 2pIlp T I 8Ё .N 5:[z 2qģJ _a,Z| @!%sA\X!!L 1%-'PHZ>%/{E4PB-x_"3\&3gB6&5ikb3fqo3'9y f"i;A h`hyB(HTx#jgB: #N&R# *h}ZA 1-q"td*aI=A  &GuL %jJRo W,gOw(>Ʌ@K^җ ֐0A?y*1 f¨f4iUYȆ6}S|? t-A*t `CPG-S* P#̨F|UK Q #2*!Җ0LgJ+%*!Qvrm؜΢92KuBFEcc)O*S"P?m zgU[jWaݠXƴJ,<+ZӪֵԞ[bӋekNzB@ƛ%`8Ŏx3Ld.e9/Yh=`F4%LXU hR׀ lAڎ6Ҽq[3힂#M<1q8ґ(w6ڮ B7yxXRͮƝx;z<ږQo%+_}c?A#? ֺ>`>0#. ǃ TƔ-|aS C 94j9XCAG&Qnhn,jq۸G3kK0G"X"Bp=ʛ iHD*$"cJwUd9Orda*3B6'k-[6S69ϏL2Pϋn#=JO7C=R4Ic=ZߺiOv jr% }>O滨B.P ":ъT(B\#V> wbFz=Ѓ2:6V@'=%_/FSc4e?ӝt+]ʹ Y :,| S]|WV+sLw3 ! VÛ Nl0@3A\X+hV,*ZLP#ł?Xzbb4ozdȀ ȢeЩi}FB\ ~kŖHVVQp)  rsxyLVQp @XhdiTIh xU }iy}JJ  |]J}ъ4:8 jpK }lW؈T)D!L &؋I X̉XȌ $ @ H!*ȇQX,h\͔ )`- u|ٷ𗲍Y VYYQi@#,NVL pN) =Ѥ=LĥOxZkcMD .5d@ N ώۭ5 OѤ)P0]]A BU! ĀIEݑ^TŜKK)l|QށQڱJ@VAxgHH¬M=^OўVLGg@XRptSѐ`Hc,jlyU)\_WZ_9B@B$@JM@@BF1dtNDVڲmFnd|ϫUdNL xdm#ddInJ߈@>LҚPN$鏸OQ.SiZTB (A`[Vr i[WX֐XZePȀ\.&eqQ^QM`fI_rBakb%YIc~ NejKȯDh&jvy$IY&ɥ&(ʵf˭aߓpgy2p٦5fKCNpks0-pp7 p 0:g@ {vŧۭNj }&K~&~E(& ,LD,0Eа'0.hHh۬+LOЀ]ߐRBF5Wch@UzZI $;^1rE%R`iaAK.`d%*e)URʦ`  fn*uylږ唪 >W&Dj1ɬ&~.׭V&ʯrUj< -H6?.i5Wa}{) WWk+ "Ǽ b۩#ؾJUben",+nl),˦qF")AgA0t h̘.5,EcRm3b6z}8'1`@Dm<_NX!!??w4A3X ث75h^ I| ~v"I+,G?lÀĊ*~b¾~4̢m| "HVش4 3tG+JPcPmQ-8&5 ^uBTK__pn<:p ,ܒZ5JXõ\--E5V@:-bghZeǏc$dlKef#y6 hid@Qkj9Oy+~cG=]o %qu[6櫇e^%__ioo.v yّyq_&w"yAx\yykz;H7w2ww7s{vB҅8]䥶ّ 8KDRb q~øE$V,@dQCE$!F8bE1f e8 5:(;JƔQGL܈2 8P*5:iӉ#hP ( %&L;LpBEIgM `îS}109> 1cthsBјsCb!9D܀ЙuǑGD!iP֭sѻ }A<4rhȐ;`  ;`У9CJWIAܺ&x2!! $:˼0$ Im0B |ݠX而t@ 1\s/1sL=)tH*SL@#TC 4D eH", c#"@X+=4H H+pCNԉHو  XbM]e4n: hR""$dxF\sKK^h):P "wX" zBThk- D)}'a lઈ /(-(Yi`bY{~HArb-Ӗ:蠍"\*ݡa! ޶o%P]sw)T"rP F@A2n-T$p( j8NLd Q#kn ݲ"HP]aY'S$xaI2=%CO/*A I"u `hw'~0 ׾$h zԄ ?pw`B$B!oǃ0V$~ІՔ&0 ",Łt!|طX dJ%%, z6 \# Ad6?5i9PAFbD Jؚ,0@-ĭ?@f܀`H6 % sFd4I@ |/94`,@g_CC 5($`6@|8"r'f6F6Z/Is$} 1i-#%1]*մ5Mmn՜f7Nq49YAtt;OyJIO+75ʪ5/i0W]})cl0=]o )#!3aLcP6dӪ0w0)hIOC6cFY$呤hHִ+LjTfk\[Am0 t{L+#dxi Bsîv4`:Nuu=uv/< x믙<=dm;g2Y}Cn'?!}N>ps4yA!$ IJ8@ID8`rw\ɃDR'πG%6O#0jGE"jdc0S.G:J1+fd m:Wf90:$5YKf2$(IQԤ WWZJF-%=Oݍ&7vϽ<Ĉ3v}o7Xw!ylħ>G#y`.FXA=PSG#H HKs_^PeOT4g9T6ךGIRT8#Tu“(X5=n I[5?_8.bV**+cO 7h4Rߒ+H$O0@㰮 D #;6p+T+,X+:,bjK># ^tWbr@@d8 |LpC`DFFDpԒFr@` P0KI$L"~0ۋKpdQJf,N+OưHOi ̚,R~l2<` b&@vP Ё],'  8hئ`pMxmuuN@t ٌזGܞ'zw0-}և p-T %-m( fFL`B @HPBNGL)-R4Drb.d`ȉH|)!rkBnfl.~ ,.~Ih.˚ÔP: >`fb*Yɕ2fI6ne&3)tc[ 38`1ϟ'`vq$ ,qeca A <\v (d≷A,0(4h8<@)DiH&L6PF)TVis\\eEYn9ddi&Pblp)tix|矀*蠄j(i ~xC H*jBeAiB F*`Zi@ 8J'Cnk:[0К,nJj-JvhqCmE:t@;pFvE0DAkQpC(ПNt` gGC>pF #t,$l(,0,s t0̧%(uQC 7P(05,aۂ/Ԣ1RU` X(<͵vBA2 [ Jj{˰A((ބ,3w\Jb*]-] @.XJk*p&C\PM0\B.+CpQ )7w/oA # Xk $ :=h @ Y:7BV-Jp)`b#b `z@/p aHpAK t@4HlA`.-@pJY/x omj `~]`0`#@ѶF t\@o#?HP`r1d  ,gIZ̥.w˓O _A^*d~=ĔgfU r*Faљg+\aE)ֱ*X,hSe`VYmqY'.Z4M@Gwꑏ&; 4}W'e Q (>3ɁMcfFҖ0LgJӚw0#h6]zӢ ,@*UeH[ڎpįU.FA] *d  ` \o6mgv־mI\(]@+p[.Y s61: 8p@;pGS"LaNng%g#!)KmxRPB񞗠mWcck±쐉A8 -A`70~Be7ϊi畕=TIzy-0ozR!ΥkUrSgMZָεw^cav~ml2/~oݡhSζn{d-M͞}AqQAիִ4{ hsw&(b>H QPB0"Ġ M/Cg 'vGqk'@`& 7 vHX؁!܀ylhz)p}O" @]jV ؠh h(ǹSy !%LPgPҕ$Lp H5'Đ0v 8:H7m6&v`N+!A_@h0qsx\ag${U hOO;ЏO[Ͼ{OOOϿTF93pTZcR,K:` pK4V2T?T35oqJ߄o(yUS#p64$:+Eq37pWY02"ud7NEdVh# 83o!RyzE8$OE7VĄCtF0:JH2y::R9pX,vԴGvٱYYhZ)@;02$p\ X@B9DYFyHB%nI(f0x؋x̕U֔C0REbX4%WǕsEȎef0OBH Rgqx'P0QZvI$i(|RBy'EғYy9_G'HB#`H{Ucø%%RY6Θe蛿%R?8qwd,fFCԜE,ԏYpX:e7%9iiIN(;6Ȓ;nr%P?f=' ڠ3a邀6uTJ(/o/%5Z(M-IS6ygRH)wGfxqȜƴ1txj216E\(ZFzHJL4P*0`9SK8ISEVBW@֑5bԛh6ED 5Y:c8KM7戄.Ңv$XeuCSq1D:p >*'6jP!pg|VSў?;I'AJ"i*`SfLIM:ZzS3:RS,44`aiԵTVȒbȨдGBTU3H7Tc(Nwc @#b,Obh?]Fq)E[FYZ\:,hIFJB55RX60@iV2$z8:<۳>B5x4]j*]Y56UcVӦǹхTS'KZ8n*#t٧8 93VJ'sZZS:*~;SPYSDꀊx\$Xس?۸;ϵf6$QTt\b4Qoj\ˉdp'd7Y:,q+e 4Ux뇸;B[ 0c!@t{Q(;Zb9&yj2i5ղ4Dyj;[{ۿJ1,T֣L><  |<\|3h25 %'<*,.02<4\6_)|9; =?|JAaVBLNPR S뷅)蟌H:*, L,"(Sy+v[S5ȥS}!չI' L%O{i ^54@؛d{Uudd6rC7LgNf{׀ :XC8DtY][׽4.t~vEE3$;/pkm/_(S!N!}[=<b'Ωؗ ٗ"{>Y)J.}I!!,(GnXˍ81H7&j!@$lLL&Zp"12Rl8sɳϟ@ JѣH*]ʴӧPJJիXj5C=Jağ2 (aD$A$p,@e8LTb-EL܈rsǐ#KL˘3k̹sN6@ 4@0+`У~b"#289s.A&bXA/baسkνËOӫ_Ͼ˟O?(%P P/M BDvd^ t]|}8y,0(}D$:t@;LTC@(T#p A*p\Npf>@0^|矀(e;( 4@)OܠDp_61 D^%!P@[0;@a뮼zc%J&6"lTfv#zTDA+覫Dkʻ@5ݴQGvp[d^G,qV!(p,R! # D"Ie*Ƙo% ?<@T=$J$"Sƴŋ$@( Fnb 9`<$sl=(,AO; rԝP@'0",wM0' `3ܘg-(dLCщ(" +SVxF9e:I \o|fC) Nk|@!m  R@w}+)R(J@0D/WU1R "Ud"jSDQL /CF 3HBK̤ G ] NHx1 ˑԤ*WY N D)'^\+wKUL,fi[+2 h0i cҒd63~؅(كa:A d2vs[Pa 454a*]YA:V&_԰$X bH ЀY`1`(ȬI7bâ 02l<+ Ё־,3`;r[ oT1ЃBX086;= kn5Q>㰜ǻ La1'L#8 ΰY ް1GLgY @07?18٬fxΈdʄƒetgNb8aTZ$@Nda!ʛ.=MOS҅cwS嵰zqzVfud;{31aDc&x^ <#0!MLxF1pKώ$eh fwMmn*n3^ap pDV }[2Q DOsƆ<0jkm[\ېmbLp3j!r,@wa (0Lm <*~1 xV~b+.s}HǸH^tM ׽Nw).3Z:XܻNx=?dEk&3 [آM 8C20dB_,Q8{Ȓ=+ Hl;#H lqeL@0F"~.'ò +F|PBȄ:{l KV'aT} k֐AᏉ D} 7p @ wPa z{g|l!&HA z ` g  ӦA_j/ʨ񷮊ۧMۆSJP;xo۸IU9[OYU1 k`   P 0 xɭT:S)y۵8{SS` `p{ɻ 0 1;Pۺ;` 0 [ 7۽pa+ k๖[Q$`~ ¢雼;0 zث P` p pjm ,\> ((7B L ° ɽq0ķ-Ŋ _a܆, ]yǒs1141`1 5S rS4̣4L Rso&`P%  A">$^&~(*%tc7x7 =0 (  S/:7& 1"߁( Ent<<: Z& Y?$0aZ *sM,t[sĎ,;D)}S# `& = `'&@ ^\9)=}!nC"pIӏBģ &\ ОI nZ1 \0 N 1qAP>)nUM6E0~Q10  Y ΕRz!38`?.w9FE2Q1.Z'N@^# i1&eb;P$ <!~Qjّ>۠ZS):*b>6pF̣۬0 N&@ N @ 4 gid*ZIoR܃kŠߛ+_y#,?_ݚ?_?1hz?-df+Eн2x2@7`>p"2~M_׏02#?(;P0]* G  LXE5nG!E$YI)Ua4X᠅I$7@l1BFG#d@BSQNZUYnWaŎ%[Yiծ%̊PXLsgO sb&zpP#D(,&/` R)[СE&]T_G&6haG@@"cbBL$^qɕ/gsAnh ע܉g׾#"j D$-p^a'']Sm5Z J(d!@ 3pC;C 312!0BvaFNx1F/*A TrI&:(@LJ$&A-IP _hL4TsM6?@()7rKl2PDPna#-S A98O tSN|Ҹ tTRK5T%$Q$PuUXXkV\sH8uW`75Xd :euYXhjyv[na5 0F@ ::X 2Tjw^zGF9($ӊ0^5bB!Hhzd?5(@#:#.`SV{(SP eHI:|) DY4#QL%Q&q)paqwE8 r xHbx{P4N \>OH߅CLd ;q Sqh4` p:MXĄ)R@"Ha#Nx0Kwy{'CBQ@wy%ݿe)xt">CA\dUe#F9@t gx N&? f#қUNT ǽP$@PP\ 0tQ! '1 EC!H8rwc @)(!LB.C0ʏಿOL(fD$Cg>!7O rԝDfG&1X&CaEBZX!Fl'*ֻQ&UF8!HnEHxUēf-PƲLdK`eyObXd&ib6ST洦yMcp& ]&.M'p+.p#|BfN8.b"`'@'"OV=p+.ntA V4xc6= Kc~%iYO'\I'"+r!VĂOhGLVs '&.Oq jOa\"Ԧ>^F˒V H%iIE.P rbEًX8 OH'/xJňM!Ћw^*/zዃNhj,e{aYF}[ZjN>[.֜y*mo{\dI,EzAJ㚠S:'@ gzz#]\STml)׊mI/Ћ`8WO)/k#x('w"|HY_NvBѵ+X;R!0!",a)MVeǸC"M\OX"@L/>nꑄ:A9D|!L䝹H0:/PVHj= l f,Kd2fs^Yĉ+ut{vR5g@;Zs 7sdЇfVFG8Ȣ%-iK"ջtUBidӆ,RqZ(c"06q$3lja|DH3,^kն1VY%[,"Nű$c"NF-6? pptUSР_HȐp"d@@^ I%A&VZ0-MB˰1V^`؈Anai* S.}}mJ yk"&O1W"!m 6F@* Wճ^ a vL&뤄% QP~+ I XQб aOq`CY7+}`&e^K2 LO iA҃9@ pP0-lp"w ԎxC=X2T ^KFzZbW lTO+V c6Z[FU[H:!)P"It@ؘ*H$P ` $  ((۸q+#Xv{70TA 8"A0=8» 4 P p Ȑ ()_xqS>?k+{Ë(MYaHcXMTd5J(a8d@D0DD|5g?d[aKK _H:K>g3M3<3%"HEZȀ68hZԎ< !Ё20ƍ)!@FYƉΛdD}+ 8Pp-y 2-k$6|-8\ ZFCcCJPd`WX6\dK[8a X:aDHL|6sU`0EJ蹨[ō @ȁ9\J7#h_ h JT X"9J :9%  .P ၿS‹Ka4p!Lcy.I|K|8|C`oDpZ990[pg DD ,UjS˹_8UMf+@5gJX;T=TM(P%:8T:ȁ@!/$P; tO;;Ì K+A Я2P$Ȃ Nj /ȁV=B9DYFy$Qdق-ˊP eCSl>QUC<;OV (:)U*}bLRY R[`70m>/2812MQ;SXS7]-96KӊS͕;M5䏆;tţ40#|ۥhuQ8K7=>?p;:sO;3;S;;нCUmPC$d.y [ѽ=GEǶ%sܖ ȉ:#U`sN\lʧ\J ]®,\UF5ɥȬ\\]K!n4<;xϵ-=]|ͷ}JKn]-MeRi^(%_d}ވ^,!P0K^Q!5`  ߊMl-1ޥ@_J}v)W-8__m፠`m]`^ mVfm>3&^n^kznijnn>iah(ݏVfTG-&֛IT08@8Mr?n4.60c1~U345U7ƻ=3l$<$ЏAdiUc=ڳ=זXe=CF; Wc.~nݺVdl!W>uo7oҷׇTW>BmX[.Xep) HkgXY,4A؍؏ YlfEY[inmy] 3DCnq9UQۡ%eƋfZZx\%MvfGȈA[%[ۋhnq!ȒFH89s>\åjǍM]rǍjӍm[ܩ[`fqP]ޖe(M4MWS F^㭈m^^^ k l8^rWw xGeKN.~,9mm.QnDҤwvm+ yRgo_nwyy?G8(#ang,Mt'Lྗ.oV%gP#p cw@λ gqI=bFvF9AB~(FV΃d5Jht5>MfMyze|qRq L V.WNXYFrT7r$pr"28{5/88Of` rh ijNYR.smn o4ts[rΏR;wvEgyJ?@OƱdFgC7B]F@ @ B${C &QF:)BMl@)qCv W'РB-j@]^pxHRjQZ^݀+ذbǒ-k,ڴjײmPZ#*1F޽?bȒz30#$xKJHѴ& g=]@ ?t]8=,Aa -ؠO90 C|ILG) ( W@a  9t #R(@d|4"%h Z)1# d@1c"$Ova +C%ACr sذ(b  `o*m"dX}}:(J:)XTPlEQji*:(V**e]+zkXv++j,{V,:[J;-Wj_j-΅)Z h V``vED 1@Ԃ'0 =tV +þaC@"\QfD;L ;p‡?K Pi?$(_#PL*_0,dG6㜑 7DO>'aC<I(QSLrp><```g7 ]g T@ p C rk0U3|8: C E q7?DI L,PSDI܀@pnq饝3G:.;}vuqp!m d@ &!ѽ o{E-?Sn +qɦ8ob! * d?Db0$ ^`K aHgދ(Ʊ 0Azp!CPǻ|$$T! MpP[Wܷ.F؂OPn* 7_Hf9aLEټ3hD#F8kL3N4d5!G97tt36ANv`(mL@B3R0BtC7L[UDURV)P#AHB$Ѕ2}t>eR(F3fi1ړ0TL!M8ҜV0LfPM=rNuS-l`+\A6D*H)V$J)J(-Fυ~@b(D#πJͧQiэr[(HUѢh4&=i>ҕ"n>1)MkzSԦ>ͩOqӝ4#;HQ:ԟ4<@UjRUNU}TuՠZUTjW}ꓨ@*WVEa*X*ץUdq+RԌt}Vֿ*- vЁJ$QDh`!V,Kd`RD"qcKRҳm-l:5u*askV ,p:Vծ?ym_V굷_˂W|enu[bװ ~aķ5F^ZMd'P/&P k[jR(]/_|Q-Ab1»҃{Vu0CLa 'ATy)A0# JK{qag5X{[F"x-(S@uPWR:™mZ昢n1@ڬf3y1 3f;ykٜf>rf%g:ЍflTG')  hBR)-PЫe("qrT'[m":p#ÆB`gk)x$2ZehBϰh @$W:|~cО;zl2~@=EE6ַNPoe!"# 6b "$NELhP (t "~8!LE)fD$0uLE(bQH' D,b-"(!(/-EB!+D4D'D7@2b,#Q"LP,t'@',*c0%B$d9E27+@:BE(@"ZH"%dZ K+B8B<''!8#Ԣ B('h"0\h#tB+28($$$DB' Bݜ#'$G"-"c$$7FB/B@eT*eX,LF>/@L)R'h>fY$A&Ybp !@@'v.@Nne$f|"m[!b)@$HB'@+"@X&Ub<Nbk&|`|B/B'gSVQ,'fvvx@d!'y Xp.gsh@/^&s:S7֥("gMm'4%}Bd~EzU&g.fP'{RنZ!0„A'&@nSJBcn"i+}ˀ."|$ @h ~""<@Z'($(yxbFxBP"<+Q|.$dB'jrq0~uB"P@;&WNJ*"r\BA''"D’*&rrr>~B.V@ i64W)#9֢Rj'#|d-6)rK(AB#!<' '".'@ *2B4or' g.j'g/".i}bN$,Bb$lb/B'6egSjbMl"'s2$h8'XfķҦXnkH`J!,&ΫFBN+Ǝ>BPb#R#\U!HB!,+nl,]&@b:k **_xLt~cCj.F„}>eI̴j1&[ X$Mf-FB$P,BB9N!,•BOҭ\8IQ ec1ޤH^iUB0gVRM­QDB0-6#B$8cI2/$t*ṋ]vb-hqx`mQcuڭdnX$'j.Rf'tXf6j"U?@xml,}ٝEEDZ`o4 +Pb/YPHOTo@:v Z>CT'p"0?p:SWR0o0AjkQ$0 0# O 0!0  0Co 0?0/ Ga@PQPUht t؋Q`q~D́l@Y|qqqqX mq-1X(V sOssZMO,gD dAS}FE{H"(5Dx:vErLyǐ*CA ~z>FA(7`(nk#+X(HR2C6| B8M(& ,FJ`<$4T0`7BLAN@AY+smۖK8圓: 5N!NحWB `0e}6DءkKɨ ~b[GVdb&WsAd͍Z3PzX**6.h_-uyc37ܘ=Exd^,]~]7quޙ}袍f7^馝~:gꪙN6ޚ뮽Z8~M^ Fp!0Nn`Ä-Pa;jKbp(2\r-" 0Š-Mu)]~vܾo8Gݵv2` Bt HOAza@q(wIsQ>u/M&`,PnRm ^*8%n8@0 ^pMWR a0 0;A 1 ϺMFx9 8 AFՁ}pXB;J qf{ɸQҡ$ uY" Aq8 %šzBР HЃ^ƁACPnt[DKbRd(r%zjvI0`#`7BB@*B!929#:&IjyK(g¶ EYHCtrG&yCB pg'; ~಄NKI#IR|&4NTN2-+]nٽ *9 `v`RS01Tc8`sy?BrqI%H;tvQd% ٸ|:I4 "1diK#FE5/@OJQЂP E0IKjғDU*Y8b\ ͛)-Ȥ&WrC0Uvpq@o‘H` X6S&THuI_A0bR/uC@K !]{#&i_SQ 1 d\coqycAqc!r,["/oe e&_U[r\F"w0g.>r̶3xy3ּg?o-3T 0ѩ* D+ь~t%hJ;ґ4/=iM{Ѡ4?PzԐ>5WTw՛vaWִEVךױ]\vlgڻ]mj_uMw׾$$ /XnwשЈ/,0`o9{F Gp|z'o_|NW9ow9umC^?)oȳr/9d4~0yyeAЉ^tIWҙt?Qԩ^u_Yֹu_#;>v#Ygy.g{^bsc{ws\8>_p7lc|FP>(inA=Ȑ9MEҿMp؛<{súi!ۼygeB['G7TH F tuL[k?K'H]-ͪwjZ'\a_Obhc P #/0N&{7C?pOK0OB_SInZdfkosPw{  F  P  P  P ǐ epB2`prT y,' }v 0I &Y DP%8DDh`gQFbZF8 4@:hP``j8 _ܰ6{1'0@ L hLdheo v`jqQבQQo &h P,إnK )b, <(PB$`JDl "#;}`hQ`ܰ %ρȇ"'u* n@>K&O N PKX(,&_&p%QE ~& ``%%q %,"-6XOWF,,/l,1Cn/'"7`@,3C3/F2?3*49.4W4;&0r51.4sBgtdop @ l52AaL":1 7Ba:#.:s@3BS :";;o@3)> $&3'7S8{@Nb9=#!@o:C@H)`7BS`j4'*B {~B+ AF;:D=-^#4@ Nt3>Ds& !sA4&4<@A;!A)BaQC O524::` B ABDAtKJo-4D#= A T.4==}Hs:)P EB!R3V&BuT ??aƳL J'S@YW6YgEKq#5" .fG}+HQD54`4}H3V;ݧD6̓E`=#D>A;ٳ8&<>B'D!"`YB8 WC(V8` $<`AaE`ic^Y} A`9{8vBA;^!bUUtcYf aɴD&$jM@LV%aQb!JSn=m8>;Cn6nv=i#5I"/N];#]7,l\3M]_+`W #@8ٳFtt#`B=j3:C!>^c@$TvwU oWVBg6C:5!lqv_m?aQ֑_tpu-$0J*&y%yQ:ْ;#4" v`\ńI^e eS 8MzG@ VKpoCSSd'uTOgB]T 8@U d`MӚU`o"@Y)..P2CEY;: (F?8=ә8"!>v/d7?V]6 !$ZA+9=ԋ)pVO{WO}'{kZv/X&{#u7c;c?69.rc'z@ds":7O.\d4Zryy5z7Zz6zrڮ i}Oz t .@)X z!> ;'.uX!' x0;"!xa"J)r', xtw \!57Lzza v(B r"s rx! 6o¸ "X((@BBL)u՚zEKx6 ;f!Uu! |{f z}|c _c`[#;'txo¼@ .`|rڬ'zaēb &'v b;C؅`iðg"+Y /z]$M9_S{X(`Kbz@ r Μ3z@wE}L `QVYaЛ|$ƥ;m7.ܨ k|۳!c2|@[ZcyM`;Coy=\5#̟Ư|04 zM^#^'+/3^7;?C^ǀ=Q~][_c^?Ǩg{g]7r2R!(A\&тnVarb(7a>!^)^AA@sm!l!RlR nd@ v6@ np6@:u0NJ n v@  `d2 6~ p  NR @d@0`7KX ؠ?m_"_ € 6`@ ~ ݟ_ h`bȄ :Dq ƍ;n1ȑ$K<2ʕ,[| 3L 3&sD2c2.1e42V14ݪuX[4*KDL1٫zr,TBQX-ٲ6h QF+hx3l6D +p+l@ =y@`YsifDQ9ve`6C ƠPG%7l = >:Hf1s#b?8aplأc6T!݅Lb=C)H4@mu,6Cv1Yzt t@|l@nhXt0>"0x6Ea`3 IdFdJ.`7eD8H\&%G7) ,Ɉ3W1$rU-hJ Wa+Wq&3o&3) G,#6FNɤ_&X_  !@aȠC3ap=H_0g _pj)1( _(} P (`ЄoAGyy᭵ap@H[?umK.t6Jvkm(@#okhYj (!c`"IA"|n< u|1ulPV!I4䣐.dJ/tN/$NLU#%1Fa)h-`! Sc cJؤ"2vڄ'IM% "`DF&" [NhP@iF2nknC0ޑ  ˆqD6@ՆQa"@VC?˾yzoЄ ;О|dn94 dQO8}?|Cۀ ?f˿֮; ЄtZ)2HB  .MAB$`<4 ZE>m,l _ @2R%H * )4tXn_ M@fX E-%hLЃ:HSGjW0LXňC+U9Jq-qC n:u*թR5pHVfC )+`00B 7< Ā`=$;B1)@ rlh``=Mr17Axdv2{=GS _ $jfeTyV^*:0mn&8IN] M F:Ҁ@,eC {s_hdƙ , L=y4dBt$-H oO:B["#Ƹ^ d= 2ČH`ZQ+UP+l P¦PRzSHL`ƮXm@ LFpA LZֶfyEsAtMj 4{au k *kwȰ?cb:A cAp U3 @P1aFhbn66qe%~:A-0" uŇҮ4uݫuØ=hAD48`dC3Jf4\ tߧbJe Y5R*x n) g P@ v Jxbs0p@G\x,K[gRiox< yD.Lg)  (KyTq^B,x\2eجa.,gn3 R-yt>3뼴1W |Ҭτ Q\D+ڤw^t(t h&- :t` j3/@v@UsKg3" 7H]$% #舩Q]2H8;k4, #56R@@z2AL@@Z6dn 0 ͤ%}A% HɡahG+|FJ8aiWS:pXgDPB`1h$4/p"A! &`>򍨠U7B9R!(v.rXHGiLLP##JNv$] ?RL0p<0 n`ɛ QPBr "|#ry 6 p@avxW:+ /#x#` P Bv0"@A x@= R$&`B?/ z)29r0XW$8`}I$`F{PWp$}0F(`zjf2q'w4hHg6xFbApy~[`dGxHPr= =PtEpzENx;0 ` 'P=A2>@qwb|gw/DGAqv/ylK=J$u(1~qHM@B?rWcCD@ 0Hi$舯Ws 'C6 y]p$~#`\Zl0v[/wȋF"(oB`'xڈ$B74;lg!5z"P60H7PFw4u)y$tCPCp}:)lj7'''s&`WG@< ~x'P zx$$P9yt8&P$$0^v'Ip/?@(p^P<mǑ)`\n*@`Ђ1@h4j+i$yC=HBA@`P3Y莔XVR@6I ;v*i.׎2gysw s?0wzxW=0v$?pa-IB0pzG,?pz6p#i$s) ]`Ds_C7Hs@ NM7+&s6-zwp+Y`;*ʢ I@0@VwGp, &WYJ/\e9_@49 q&mꦿo*sN@{ʧ]} jvejeʨtvhVlAPpZ P2azڨ* WV"i)ra- uC"kjjLl lHr1Rl&EoHmmޖZ$* u(mDK"po)Qz'gTgu̹Uw%UwuUڛ: wZWq&H$;7k.s2Gs6s:r6@'tD7HGqNuZ$͆Ωg[uHv#xfvjW gqwr74@ j(wznI4{\ywyWyWY8W'{g{Q{?6'7Yo{[FF%+67Y~&p~~~gg$XKQ9h xG>hF7Pp@ ;$o{+w0$8$+$A8؅K؄ RxUxM`(dhXk؆o 9o GbxySk1YL(+20fwȜvXIb(ݨwHI_ɋ(FBFɸYiPDIz.,+ʸ$蘉Xqλyi P@!`=lk@w6>P0e|w-/Ǔ0FBYixIHR#0QɗW[]9` bdihّkٖo@lg_,wl6wؖLҘY2yFI̙))\9Y~U<FpJDspV,Y&}?s8ڹ@ 9/z$4p7sz%jE E KFWC+,$>*y@H@:7:ʣ4ݢ7PGJ{פkh&lՈWb^ Z]$d*fjifi-YmWƦ'!AombwkL+{ pMj}S΅GGi٬Z#1zk*ƪllݬ4:Q=nFMs-o'Q%q)qνUͭhtTqqq)r/s3WstCw3ݯtQo9w+u*8kv7eų#=$&+|wmoLgyyXyǵ"Ϋzzdg{j ~e9m6}G[/!Ȏ~0N(Ȗ{ x$й;xgʻ*лF22HKR4K˄NXS_ka8exlpxs|&Q'.|x8@$XxFHhCN½h;Ef3<$טL"N\ČH(M̅O6SU |Zq t0$-DCnJɔG2ɕLƺZɕ |c~8Ej˶$ l]0XẸ̪ɚ; i"$܋;f|Dթ9C5 YE'V@Z$=b=v]]{H+ >Z/ʡ%z$i ~)z?x7ӎ5=JE}HKOJYi9OX0t =Ɛ<|dJ-]SL5męSΖ%:J"_tH1dH-Rน/vp"|PĄT/B@ 0LĐB[&nDq K@!!12I"n@)HQTn g9{͓ ;ޚV, $nnJ%]rp!mA@D@eQE? _|ǟ_~7%(؂n`84HHAB$h&BH#d%d #d;> !/ !Wlh""i#`X而t@A"8!'ء7 ٨&'Ml$hA2t$~52`K:8hRA d)4rVeUW_5V+H,:`*@tAN$P hHKX 1tk&8H@"o,Ȁ%¡ ҩkc(@" (0.@hT+" 7܂$ _mW_~%n>! .eaPcLBE=fVlwQ 0BzoԘJ5ifibRo@ؚLPB2k8GB:ow"2Yj. l,apHVnP(ҋ xP"3vH_.X(7g㤀PE'ݿCvh Lmyy89e7 -% O~(]RByy=QkB U ZeRz:~?h}/j Bj0kzFpфSHvt,9`IΒ dDtQ#B bp$!0/hb4VJz:@V@~0#@ 2AcIB`N|v5a Х``T'+mKSjD^E^u'B s*OȬ/j*8hP+ rXTrl+_ Xj-nY̮`&/{XҔ&1<^P2L63܈4` A Md'=Kq.9ωtR' -a*{U׸#,GP BV8mP0!ymo#E@f4/DA Q~d^!)"HRt(MJWʒ ֛I[M>IO|%5Bj RTHMJk6թO|'2 LB}<.,iܪSD9N&0)r` JK2*Y2"h@Z"l[BRs]2j׻E.zK'ۗ&&0,' ^|6W1V cQ.> !-{YeF3,#;ۘπ&4SQrEͯy`kG'L`Z&D6xld7M'u@6o \қp Oi"lYs<:ڕtQ]FlRA@ϟs嶍 p>VDX=oj^=G(7: U5㑤䪣O0H8W5> K a`#,^IEr1ЁuZA\0yBP'(?a  `Cp=Z817Y!dP{I>,`rbHF33XlF8cǐQ ! <#qKOS 2pE>?>񏟙h+sgߟ?~j8A xhP 55oF!|ry9Ӎ< x160b((J<(`z j((҉ )" t)" |'-@*p̏z h%[@%@??#?󿂘B+ )#0Ě  H:+ + 8D;+𧜰 ,0, AƊ ,ò"׈ ʪ KŶ;-8p-6- -. 11"V.+dTFH.9pj첐\s]+i2(5y(qق򑝐F"X$Y&9K,.щq.:F34 79= 3E1HJNP!Si9,${&{>xɇ(>ﳱ䛿1 =*!-7Tl3hb9h8-C/+_ 87305h3@9 Ahʁ82@ɘ(HD{s4pCI_|xZhW;e$DRӂ!P.@QkZ[ 5 `{!6fq׬ɜ6 7 7Q$i7ۙܝ5z {˷y葷8ў̄+%R T+ q C+@Σ%| uЛk8u"9ႁ&/B [9B z O/:z " C B;ϳ: "":$,0Ѷ`(ں`,-"/0j 3J#E8S0<$ᒪ+ m< @% u T5c ̄*de3fS՞`%]IEӕ+Pk$ Tlpm s1?1즨q({2!H?% (W T(*x@"Bd,$P( AǒH|y)XG!t:°%|ie A_z m˜mWCumVu}T8 w妨!DJ& >d+<|=+]Gd+0J܌kChDbH4Ǻ įE$D-4ۣ!E2@0REV4Y|E JEنCh%Pi/@"1QٕFlԮ F r,{4gtCvx4ǃ}0~j!Ȃ0  tKH cW͏="@B)&O9099ӉvQŠX*ʺ-h#:W)QҚg" 0RRR9+2;5r\XSsS>S0@BS3,'[fp}fHuF֝ u %lYBnvtŰȂDDp4LȅȾVՈ[݉ow r%^uW2_:~@냀x  ptB ) lr/{3ᤜLa4sxY˶4:#ҭ{3>Kw ߳>[-)>YVxY(n.ȜLMLmA7/`5WC̈́  H"HY3VtفBPB.ct!NIEnMGVΜ6ȶtozQ 9ctsyIDO҉V㩷Z[W8_>8$zQꧮ nRphJ} nFPUP pV nFg R3CHR_;'5"(U"&Pk!h /eiӒ @papa;JvF-`2A" "E=r&͚ e̩UR hMB4RKB*uRUbͪVYh+Mv-۶nmNhvu"4 ,Vy#Nx1Ǝ42ʖ/cά`[ MvZ:fN(muS~>*묫s\{8Ə#ΟC.ݮ֯cϮ=r;:8" #/ljb6Bgyu(] GhB`B $e@;9a8w͔xRA 0 ֆX>,]#15hP @uC HAC=E3^; 1U4`SVKuGt0 }RY%^n_|cQp~KY[uQPQA@0 'h@@ "`&8 ! ZK X [!)0G(DCX Ek#@i4p0Z;lc>]Q]jj 2p ^] %CkP@8HF!:4 a 9`Qf'iUgŔЁ d=$HB "A&0B t / C ,!C[4*`DZle1.[xaI\}D7` A>\B% PC4$=Za7s 4eKd H@A=у hx~C`\Prp̅ I/fM)a{gl[j]o}lt-r0$0 oW>/t a5M؀ _Y*%-K84 i` G-+`@AE#kF`.@ * P4@-XhK$\.BpI @z;Yd%x6AB fWE%R0EhLl)00#z#x`UЈ (!U*F0gA۔ <Ӡ&($dlA"RE ,\n+\% /X(Y"(*%R. 7< `W0!@e b0e6.4`(HɃnpK()Lg&yp ʑZOq*HA BGp~(G;'LF%! d _Wx@HJ2-Tڂ@yC)rElB7!X  Ɩ X`P-L%DT`[" 8 /lU zT"+&`S AHSH"G<I$cJJZ<1ǣ-i)Ң6'qyL]R{/ g5ۺ6ݭPN7ZyTp+"M.s{\FŸΝ.ub7.T5O:0yFHDJK"椽2\}JkQfHjyђhd^G:B~Ԗ$X/P#8+ bdd[S'b]15@ ~A<-vS*uL)aS:TGץWB`%x&7pMXRI?H.h ӪZbDX pasp n]Wk/|_Z3<$a IM̡**mKc:Ӛ4;O:Ԣ5KmS:ժ^5[Wz )Q/Pxִ FCҘ&ɧEmjUk۴6pks5M1fAP ur{@fp# 5"HY(Gnz%sB7usŶt;iqw+c%^@ T,rA%B_NM@ (A`Yy:)IA Y՟uՐP Q[ <x U=V~UX-`ZŦ\ V _E`a . DC`NZVHDfHam铢taE6*llQVתꮢ/ꯖ"벦2볢BfRbb:`ڷk븒k빢k+#kkkkl l"l*>B@!,7@*\h#JHŋ3jȱǏ CIɓ(7:dȲ˗0cʜI͛8sɳϟ@krXѣH*]ʴӧBBJիXjM:t`ÊKٳhӪ]˶۷pʝKݻx;+߿ LÈǐ#KL2ʘ3k̹g]MӨiNͺװc\-۸sS/-KOμ@CN?kνxOţ_ϾjßOϿ(`&|.r`Vhc^a (bZh!,FX 5p7y`/h IaZAc90Ebee HX>aI10pD IP` j&\[6ri\_Xh]'`\Ye |mcQPQW2D*Ye^I;p0)  ( B" $ |0)C8TW)0G(CX|Ĝ9p|pCs*B|/b:+eX#s ?쀭 &, 2p 2pEJtcp mX-_ @6x (@1FFbew0=$Cx=` ) DIܼv10 =D|p x EX1g`gCl<$ Fpe09E)WU:[[0q .7pX;Oȓ|\6qBHpw la:|?P`oBmX^q4柰 '6_ٟ %@k`X`++H^ Wk h - " Pư" XH`"H-A 0$` AZeLA `@lE,ĵp, D +.GXȁ1Qg= r0aAHX, j6TQ5A +pA HC҃!Tam- E,fm$X 8$+7@Ah2 T6PQ|I*0jWcP`:/TJ F@<٫`!`9bNtE&XD" f,\V0 I`C`Ps.4`(ģAZJ+np_X()(.yp 0ǾM0ڦIk(@pT.`( zXHg\6աZ¤j4 V3+rL|y*bLRs`Э T떼`JT"@ !r@`)a"WfR $C,W!Z_WN;4 nЃ l[54^aQ&,`P-pIl%Klk '`,XE*$`,oc"y/ЀLAQK_ ys/LFN 30O, [ 07a k 1?,x:$>W\0ncLg6α7bǷ1LKHN2l&;)L~(SX͑.;11<.3f2opsN,:wv3>7~4-BІNtF;-~'m 5SҘ'#ӠCMԨ6SհΫcMkD:Ӹnsk3kM ЮͳMmL>͵m:Mn^ѶnMܼ>ʽɿN5Gp-#NqM/PWR{ GNQcW0gN8Ϲww@[&іLp">OcL<$M<71J<+@:Mdb$;YpNxϻOb- MP%NG&k ;2yk׼(my&4! H0K >,ޛGP!ZdO{KP Lǒg>nG\?*qL,2K_ǂJ@auP|Y7 0v_Wp61j0THZvJR$G$CR$yS4qHraR6! J`,",T,ǒ3<,E-Bu_aV%?]`r S#//pUE,Q8bV?b14@95P4g3&;@,2^x,8t@3=u8K`]WEG{Kq3Ktc7x778#6 6m%s:C4Psb2uQHcE??7)q)ٳ=YH&c/HRqa  pcAYxA2G~* B0Bca\-4=).DJ8ߨ*&2-E;H~H|)@/c'G'&%(p0KDKmCRɊ؉pRD6B@:@KTK(b<SdPS7eK3Q9909GM 9I ,D%]0GXU\VcՕIhK8VUS3Y*p?U'0aAci9K8]K;Cy6@{\~[FY9 &^ H xoٚYIxٛvr'Ișʹya#9i$"'XgIV`c!_ g&0^pՙ;da_0ƹ6Vo`ԉj4[ /!TH3A34DH=C?f1ʒDA ,_4J\wBM!(BFn1P1$L1¢_%_@#et j'05 8Vd>FCWEPSS4,E"ӌzQ'4Jc>ed1:?07@S?H3_v*d@HCQ,pX`Џ;7`:VMP-s^c 5c"PQG$-ʪ⪰_QgW`/HxBRi2(j4:/P@H5@IA$B,:QDRy phaQj13Et>JiR %g*4FS?ӱ7ð R*Y4<Y(&;٠6Ƙ^֢\ 5\CJ[%Yd )@)5=г)%\2 K۴GU\KoB>9UKMW+_1'! -H@I=j};lQ48u+ڑ!,+H*\ȰÇ#JHŋ3jȱǏ CIɓ(Sje 0cʜI͛8sɳϟ@aHУH*]ʴӧPJeaXjʵׯ`2سhӪ]˶۷&|Sg@0p˷߿K@x@M+^̸ǐ#KL˘3k̹ϠCMӨS^ͺeK۸s#o N<ؚ+_μn4y漺9N=Aӫ_Ͼ˟OϿb<hm&<+`rVhᅑ%0` eB48 !^1X,(4h8<@)Qr %8c2\1&,CTh %HJ@P*XV)b %`r*P"pI@q-&b oi %`R% %{b-H2\ 駠*ꨤjꩨꪬ"K3  tdlI@P 뮼첁L3=Hr2k{ފ,{ 2,@ ˷V4# ^ I쾫,lt 4@#@T_d.2@T`4  4l,1K"Ш C7 346 m4BH qC-uPWmXDCGg-d5lvD}vo hۭ޻ |.܅߀'㐻sGns3w9ngwn៫lyn>8}﷧^;'?5c RN}GoP\}\qo}?unA3I?y#ukڗr$v7AD|[ (πMBЈNF;ѐ'MJ[Ҙδ7N{ӠGMRԨNWVհgMZָεw^Mbt?1vNhXlP;mHoI)X]Nm#N n{~o;qoLMN;'N[ϸ7{ GN(OW0gN8Ϲw@ЇNHOҗ;PԧN[X_@Ё ڼW@ A 4@ppt"ʮ @ E .0!Ar`L /TJ<؀ ~0`WA JGh_;ЏO[Ͼ{OOOϿ8Xx ؀8Xx%`0wDP1pp"a7s/UZ)E35sWz=EC>\Zp6xP#C7(_T?@a\@40w#pvxxz)C&pP46 aN & P4Oሌx l+@GH0 ON{EÈX C ? l&`O 2(2ʸHq@ `  w/ {f,/0!H5rX討g|7wP)vl`4=Zvb9h)`/@c>f̐ &@ pp;+2JJjvp/1*ȂFv*y9Q0w04@c%`#Zvo9@) I<`zneaˀ  pC`0@L )2xP2PEӖoy]0HС(*PCps' 4V7xcLizSIa &p Ћ',^0 =J=/@?=+)I#`\3XPi-lxgỷB`yzy6 ;*ė''0a^`yh)Л\n@P@h/zI0:B3P !J6pĹI> ;Q7(Z9H+`>9K`_@00{Ӥ@y8Sʊٌb:dZ#p1` ؍%&hxb X;!`H8t*Es`_v)8+ ʨii!9.p8\ '80I%;ٓ| dpR8Ŋ,R0QYiaAh!d)@ZB4`tz hy:99E ) P#7YP4:*xpIi+*Wa4ja8JЫ:bq YPz0 Y8{40pڙ8GF+۲v[\hE0Cw]z%C`e(۟CIyn j7H^%IPxG8+02a k۶e{9Ox3pʆ4@!ɰh,z9@WAthZn8w= *FG =7//+0@!C"p{Iw÷+65ePc 7g,1KWESѻ˛{4NmO!vf0%Fc'bjZ4zۛ ݋nC-Yr<\Z/77@ۭ!;Pn+;0RyF¾;oЁp۪rA&iZQ8ƾ|I`ȴ.ĨA7 FB2 *뎄{ f O݋, 00@2]h.ӂc_NXlo>7W<q"a MWZ{Z7;.5N;d]G 7^0Nln4m4/ێt۟ȢԎDQcus6*>{,jj[4߭Cl3<\IOP/8^3󙕜PV 0?߾ko}!az Q{e+h"BD?d5m z8W<]Q@~<zl~ RPvA%2û/l¸٥aD蓮 (Fc?56pD .OL" f7O8}A_ `A]Ё؉67cMb=0U0=LWVZ}֣aCPC>Z[MN"Fǐ_oMIC_\bn48@ІD Ljr\{Ѥ@ІD[~Ȳǐ_oMIC_\bn48W4:?1'ޯ48"O ꎓ?8>BV`#?5@1 7}Ǖ`nގj:eE6RSN|M^{/8~\18 ~;pS1?_8诽?ԪO걳 _E6O4}!O6^~ld^_4 ^mSOӗTnc59;kG_O#6_7oƨ>4b޻R=Ȃ{6o;o4寿]x[SkbCgC 0Il /.%L0 = Ȱ h1ė.&^T/,4Z_wb54dfyqPAt)JN` C p *!WD0v-@Fi1 58JN 2$kP 0 p"!@8CK!@? atHApChW@ p% N>%IA# AύTQBR$*I h50!^4 8̡wC@ H"HL&:PHţ/hBئs@hP*Uq'h¦g,뢼P!_TL@@ZVxGX+ZI\5nH !;W#ayI0M0Apx58t /(_-zT]IOQPvV5a `4׹U @]@9M/'{> 0Zz:KAKҚMjWֺl0)(k #O;;2)TH`UHj>TZRVAk%0a#i Z! X pPWR9%cRTz0/`Hp/[[XUK kiLaC"A8F2^  @dg E")BTŁ#GZJB6yn6p-!@e,cmLYIpZ#=ovR `ԧ2<@>DmjUKB.lfSsjۊuUr[@#TWu\`Kd2K|-Wxf%>mM!ٚ;IvMzgU C4V#^["+'b!p11'12r131zȰ<Id+D*4 X@/ь@@1ݴyFbDƙ>Q-UC4l^hXD/LRjpGG1WL^W.XjSk4Ov2lp ! Xyh@^pv`9пϽw?D Cخ+s qsס)EIմ/߻o3\B0M)v~ nr/t@QdCH/0>$@_04twTMgJJ=!H&@p@H2.IC--,҅/eO"qRgss/uh6& 0~$.o0jwB@f+Xq476jxUhw343yvGpt(jn0 8&׀8W q<[ ;W0|yW{#I":qW #Z+B8Xxxo'\{mDyojrAwqageJ~"vwHfG}G$F2 XX#VbW/8y;c(/F,-_7{Xp{uE 0L茸wN37RXO{D%ei|L/㐷wy= Q l#{zyze;@)X$:<ٓ>@B9Dӗ '|ww}G]{gQK)|wwU0KK{NǀwW$GBNTGv_^G,ТU"gt{lgx,je#ZE\ej${6X@nzis3@CmYٚ9Yyٛ9Yyșʹٜ9YyٓC(՝9YCٞ9깞ٟɞ9{b kǠZ(uEʡ":$Z&zz*,ڢ2:4Z'! ,+H*\ȰÇ#JHŋ3jȱǏ CIɓ(S܃cG0cʜI͛8sɳϟ@#PУH*]ʴӧPJ}:Xjʵׯ`>&سhӪ]˶۷)41cp˷߿Q1B^̸ǐ#KL˘3k̹ϠCMӨS^ͺXs!۸s^j"[6 v Nqժ>μ5yسNËO/ӫ_Ͼ˟OϿH-833&w^ 6 kc\v`)dih&eԒ 2hxZ "1Lyjh'2XB F*i(P%N92C %b■*|&4 v뮼+k&D4F ,*Jk5# -`p@3k^rk] ,.L3y RL @! M&@El2B&L12Ȭ,3=L31x|3wB@wsR䜢&H1t?PG-~ M;-4\wu_udtlvpǝhx|k(|]}nm 7^8a-W~ӱ_, +OD+Z#d57Q.~'LG$> 4 A0w Ǧ]rcw?y~,6Po]^ˡ(R _'d"6nuƳBt(KT""Aq7+2/r;#4PQy[lR;5." G@ZAPg;@2/x\؅OhG(:rXE=^~πMBЈNF;ѐ'MJ[Ҙδ7N{ӠGMRԨNWVհgX qMP#Z= | j v >yh[ζn{MrNvMzη~- TU :KxL`(8TC h GN(OW0g' QCpN> ys|:J~3R!:NNA" : 1td`x>LheS+_>GaϻOO;񐏼'O[ϼ7{GOқOWֻgOϽwOO[P<6@3 Fp@A)򭤂 { R0!p%G (@,azK_2>K> ">o)tUjWZ30PP@ghI޽;y ,ߘ59rZ n `b M;@Mp6Nll z;660`4 nͭ˫̫>|Aut; ).JͶ{yM ;"pw佌(`MS   ` l p϶`n@3p,P|@>8V?`4Ȍ*al`dI@Q=fBOFq5;`Gj6_?u+P?y@ah?.Lu?Шmu ̓kb@z -/;c2f a/`w뽼-%  _pmP'P Omr p;h|OlRR hh|Vu3(0h6 $XA .dC9Lcf"=ؤ=f`qʼn7bOȑ%#A@6 l0ӁC` ӤA5 2φ̀0rh;{%1v8NCu `1C(3lе;62 0$&RhTv @p 0MP!n}i"0F+:(+䭻mن Nј!@2t0%)xr+ܰ ˆ^(  6: 6u}S`# Xb40A& x" k @};A5 "Ҹa^" !bxvѩ{oBHh@TAAr d`]4L FtZ,S )f{]hwBʂ¶ 8H^G9]C$P@;` ǂ  D`P6x-j2q޼lfKJ{ᠮFY Oڑ*8@0r!Yٻ̵K p@5 \ )FQZ<4Ä́ ؠ3lжe@ 3~3gwޠHDž#AGHUz^(tȼlp+./}c$#`w8XF%#  GP)\glg;wΆ#,H&8 pxâ `Fׯ-|ab8Q | B$B'VR!РcFuAшO ]%v Gp;,[iHG;q)}f?9YjDFM&2ȋL@UvguhդVt]SS%ХK^vۻr0b3Q 9iJwR[& d7 &}@yI2O0>΃0;Nv}J&iOSFZ:mȧ;yR7QOo>{'b/~@ME*\g#a}v~͏"_g$ߕ_*HcDrHo=j#JC$8Z"Q?.ÓE1:4YIa+9q| 4,:Ђ,$@A٩\y?%?c%?Kc1j3zI yxѥK-Zr-鯗+$-h[B c!}Jzѯ{袦G)}4IPAC9|At [y1#!#ERa5`!ȂI9aʖ$33+o; ˰1󁗉Z\3#09 )9I92-蘏Dl<oL*a,393a9SKc93CR$1DH!QH') 9Mj)4I6$h%i\Z+/=4Ag٤Z{G[ƨ9!#4NS1P3fÞ"XCyID؜HDQ1YI{ i#X~rHLK ø-X #0+#Py:^_47t"!KC۞7¡,ڡ +"3 4b8tqIY#02JbI Qy04!l97::4@$;J,#Ȝk!D"T2<P E<'؁#o{=5:uRSY \;^z㤉b[&@P!>%QR)RyR+G"9D1H<8Rо(?*(/mS7(]S9(7S<)-E< ҕ T?C6(+Ĩ@,I) $ J GTGADҕlԕ -\yսMR<Q"+MT%)D]V$aF(\%PDP&@(8-A%pOK",ЧZ"P0;%(+(9D1l46 nm80D!\C:8AtBlCLe-X]XBD0N,_V]k=GSR f4.8(F 0PM #!2x0(c4F-e4fTgēh4\FFw̱m0ptqTjjH˴z G~G5k23=}říRh4E3 ӆ\#@Ȁ8>?#]#@$xP.p]7IIJI9kG JR+~J YsI.}N`IJ K6eY-* DHTó52(s79tq_t  ȁ9:,VL>%ά's f=NZN3˥  IaW9-AcQ5[# خ#E<&1 P Q@<ucPKզ OC*& i8.]>-^hshVbj'j%1T/w\Vfgm>&~ :::<~ϰZLd<!nr7sgIvw}bʈvjwzfv|_0yw~P+5Gw[Gzf&9svÝ(2oGqD GTǢp5|%!;5+ LGai#|UU$`U[ \+\tPz|j_} u,/x!BW-x'3rOGu` Xn!J/%sWxFfҢQش~&|^.RaX?I{Kx(#X,`7֕DQĈq|}}w [ 2Ay2m&p? F vI~R& ^1\T\E۞l1n؞fGi۸\UB] nE->z BN$lpAT'R"Ta(ǐ"G䨑$ʔ*U\9eɕ-WfHK1oތ9J?ij(BGK` #Y@c ()Ab "jP,:@z)Tq |R1B <aIpvH &E0-g-_ egB& 9r={ȂHǓ/o<׳o=ӯo>}YT҃; DepBpB(y% Y qPp` ?pFV PH !(7 FlQ-0 A0/W@wA ` ϱP@n E p0^Tz hY 4t0LEC<aF@ Gv%( AP E0*@91@bJ:*jJӨbd**Eޚ|ʐzDH `a% I;TER, $Anr,6`>X+l@?  ]@,2\ " =^;@=,A|Kdp]b  7$&|"&Ճ k"? FX;, HL0 C TjХi< @A}4uOZu:v@ ~h7 WcO'n)~;8K>9[~yz}+9{9/uy ՇQK4 RNTP;J;4·+<;8K?=[=ߧ{=3BMRޫRv)⇔  fv`Q)2%uN $%" f/r yH?HBY;8p(Q{(F3эr!  *ApͽgRX 2p3uP#$RpldBPd0/@RB*&2)2# ad (MEDު,0@kY10t@Ŋ0IN%l`2P(vWu}%[X2?#;D)Jw(R~4`#@`(^1iM{!JAw£xХ/`CWH/!͝ȑJ3hp#H/[Ll%5Iꓓ-΢ud&49Jҋ =ehCUhQ0ԦkJ(BGl5u&j\%ISȳP$#H`'p$R4Uhd8Np0Դd aIq`#^0Ɏ b#"P,泍c쌷Kv e..1º6fŁr) ͗h Q6|Ȭ?~R ?Nj[m J zyF?:ғtpoN:ԣ6%ëzq:.$e׃"ؽ%Z[DhnHї.ӽJo++FjX}"O=&[ɣl C!(`AT'.!4`" sqU\#_̸.Eb{4N/A)' u懏p{νLK ko9iV3)`|3g9r? $`<%X\C DmjFM dHTX\ZVp@@c_YZ^dDP@ $Е]_``1MdVb-w9dIR^֋Pfg f Qٱ .Dىzpy$@T_iXA蠋xbMDGr@OxyFwIX Ĉ \mƂF()^X\hӊ%V "//^U L 쀎_ `$Gh؈Hx F܉셤!q(ڙ :٣#8Sgi !iݔQ#EJTUAJ_MyZG4 ڻH! CGKK ݄)@䌽1[%ܾ \PO¥P̋$Ij iAA1E:$L$nDT1F 0[N"]֥]%^"]A%__yaX%a n^&dFdN&eVeNc^fn&gjfm #WeށaOh" t@@ _%^ D ĞQb gՁ^@dIh^_ tfB|dxXi]j/19(<] Ep d *؀ĉzH3P5-A8"@PP@=Y=!4IlE~ ghpT^l` ̒ {^)fzS,!N%L K HrX 4MO A PXF^xZO!E\Aa]ZVjT!caadL^dlgc@p@XAp@^@@U@$RQ!RdDDH)I(jM D5x0$^TyX_JXnN6Ma\&$)mTUXnW'bf(FiM"qdalIq@@vb @Ȣ^L3Yyw,&I` 8i@v JUR5677r296:^ɠ#8>ƣ@,=zrxEP@@ I^ʐeYyeYL(ndn$\q`V8> 4ZIQ(lbDKLLDM.L^AdRR%P4%Qӿ4 RR X<^MF,UL[J d-׶FfƮ%.df.//&./6wo _vBDD$El.F@T'psQqzq2QrҞkrgs^ttqvj'rT'1@z>/7p0Rd^  pb^HgP_6@Vn,Ao1G`_L  @^V@@ 0D^D*&MjFa~j!OI}"^&F:* jQv1*rB|qa@|YŴaYD ^LU@d1R'((+*Ɔ*^4 XrAkBG#Ո1sJ@Tqy;s1Ǎ@R Tl ̦ 1Dl6ƙҙ7ZξE19S:caI;YɘDM{;tO.o<]n:GrN@ dy#xp}CF/TFr$Mn. .Znڐ3M#MY[]$^7\[Rv$s<6Vdd#o@!,7@*\h#JHŋ3jȱǏ CIɓ(7:dȲ˗0cʜI͛8sɳϟ@krXѣH*]ʴӧBBJիXjM:t`ÊKٳhӪ]˶۷pʝKݻx;+߿ LÈǐ#KL2ʘ3k̹g]MӨiNͺװc\-۸sS/-KOμ@CN?kνxOţ_ϾjßOϿ(`&|.r`Vhc^a (bZh!,FX 1 2C d#G;`b]4ڈc_ `?@oM9 -PC[ҵc#Q`^? UxyDke(1e@Xn\@Cnty 2#_*1 t`[@p\VցmClACLjtĬJ. la:,~Ye`QJ'`$0瞳B_ @tF$` M@ DAuye`cFlAsm޹#Q1  sy?t=[=`kqC/?aQWjwNq`] ,)`UB0!@v!` Ru]B($ + %#\3T`m@Ĥ`( n xx(: %Pъ|!nNڟ8@0^Ѐ4$``ba r6q@ D'" <!$s;d%1IP`nݻTЃX-<~O!4&\Q 4qř ~0 A (@kdK2@ [I΂=8PȈ+H@AM  ;|4`Bn ha&e&MiG:׉Lg 8ijlӞP)PJԢDFMR2P5SJժtVLV`` kqPҲUB c;5 ~sZZ {8E*%>X)-~۸'5qXC=]!EA> %;?]IL*[Xβ.wSOL2hN6p:W-hK&890 &a P`W6N<΃X(A<46ISdqGMRԨNWVհgMZָεwkQ΄D&4A sBdٓHD2;0%Jl;خDKNLDխhǞthhZؓ@ vLt@EOh7,GItb^bԷ@bCE& 8Bv/!"1pal W MxCw;>X~"ʷE&Y0O%Y"I Wֻ:E _B2 Bp,.HYx_~bd@? 8PR8Nò/` O7׸(-)WAN5`=Og1`"@DKR( $  x\s,IJ0EId>,.:B4(H0'05 a36 9&::T= =P1c.bqNd!-B4HR)1#|Q ;@;@Xa>^HiC&CpdCn$0B $ȋti(H'Is|ĐfA)4'pr)2? &v>C+fٔ$||.@p铙[D=|99mQ4*y)\!,b/M ?f ,D517 1'- @;GBQ;Z  I`#ed*0HV>2W2JY*/U8e*ۤ!;&!NA$6# IHp&$a$E^#. # ]*C eLI&nD96' QD}N jI*9jʵmVl.`0p !z$S/ %^uG (>$Q&Ѐ`;0W]EpƎ"n ! PRr r#  b*_.I6mۘpbGkË; 6`Ωs7BTj w+ p! KB eؐSTR A "B 6tP$Fn!Q` /F\ Jd F'$;.(ctS #<9yTViexR06 ذPRx.L$ Z R@Cc&4THd''PCJ(@ 9|R Gp:P pEp"*J^@CgY$*#6ƚp6M%Gyك7c_'0 \{s 2Gn=tKO8mt 3Zr $CFѐ$/#^G| :Kq'۰$?E@@Q0lZ+{)¿jUo-4оLH'L7PG-TWmXg\w`-dm$ 6j7'Y2<@mwӬ (YIY._C/Mp39p0['T# .6` 6֋eP4*IB&Uꅳi@Rn"І" })\A&4R+p̠5~` z GH(L Wbn $>IĂ<Br1%!6sz ~8;*^2b:d w)aE"d8H 쀇=QKX+` XƉ1QF01 I la\<1͎.Md&c& 7ȁ r  2H`89y.ѝĠ(f]АuFW\fwLt"lq4YG>r.$h``"Qd;wů1i\ 7aX'xLa;@ _Bl^ˇuscA{~{(I_[/5aܼ9TId(IP̬1Ąoh>0@i(~+N Uz]iIXLܖiM߄GN0w׃j̢j*jj 67kCP~E0CpyCo*R)Q!elЂ`l@Q`QQQ %R=,,e=*RVgl5Tp4C:3C1]@0U`u'G`__ TtVE1'U[]Ua5V<=;,=sW5aStvt%ZNw.P7!@v؈8 Rv yfCkvR 5uBd wBy\i\`@P)~$69x%ygyH]1#Flts "g`nj6pfUYzt9sa*zgH|aT{ ="2{{@n&p}wǗ|L23#%Ed|VV Qd'05 %J\}1KqAfQf⧄2Ƅ+v~ p3~~_ `B9iΨ&6J:pN;5 d B(P5Pcrf&X (P*2B) (h*-1S:e BrVu`Qo9)5A1u BFPƕ-(-NT@IR+EWS0p4aadWze Ea6@V!l/sbX Gp_g5un<s+tBD3.h(OgXP}9Yy虞uYj Ioq x5( B[B"EHY&PFHx2g xgyXyx9x/VEZzl5uTz)aG+HW/ՠ GaW;8J||\6|єII]ʏ5&iK)~gvLyɤ{'f)I;Bz [i ŔN)M)B$NB U3_QO@j/#^bP]8p ⰖҖ&)؃,)95l9);8}p8nQsid?5RRoSH($C5Sxʙަo*D41^9e ZȆĩP\egXr"*r593BйXt%uڙD ";$[&{(*,۲.02;4[6{8:<۳>@B;D[F{HJL۴NPRKBptXZ\K4`];d[f{al۶nʼnj S[1# `|,8{۷[% {a'z ;[k V۹Z! ,XG4?1; G7'F2@B H2Q;GZ Ȥg$C;*!"0$'">*$I6D"?I(H#GR;ҭ7ě@Q0 =r! 'p(`B;d(c ̎ѳ!&@ȱɳϟ@c{gFܼ5|R`i:J1^a &bhĎ! Lࠢ)"=CGxrba&456,'EF@v(J"Dn$Cn@FJ='tjAo&lkͻmIQ/Vn'!DȀGzX2d>5ltP"(9b! Q*F!J&7*Td%!B`H&4H*voo =P :ر`)?D!@W1QqJ# ֝= 1ң)ϕ)!L$5@N>)MyQJXt=mTtG+M *r%o$,6裼tp+l҃ ""pJx -`H%EaO(ZQ6@A"qFN pE*Kީ(E:SQ,DヒL[é8I 4($"-G,Wlgw ,$lɷ QST$Єs"d:)ĐCIDEG$I&.K.d|o [UW Xd)[ne4O\u`yVZ1&0rLVemgVi\X}Gl 6]u$}x.r!'"|ه~_իy Y!A{f8J0(䐆C h>UB0ܖ505 d2SԔ)7{tWb~ EA 7lQ TNXx@nsWj`E YcQ–e|+\:Щf*Zъʙ1SlSX"v2hL6pȱ ԠA @ 鑏t !- 2>El8%C ;%#N B aEf|'Wc|9OF0|ll.w @ GQd1aL2f:Ќ4IjZsv#2@xj˨Q hB 5D(įgg!F](!+4ҴQ#j 1- 8GulbK:m"qPfd$%9IJ ڒĘddPCrمe,epהtlҗf0b' H2 "0'N41b'h({`V7-~gm;<ZAḐ߳>^ KԠC)B,Y i m#^%HlJt@IIJ $@+Т_t@F R`AtPͮ/ `!U MBo#+b5CP4Õ!lx& X!%-{qBlm[Ny5:bʢjłY" ;{ GLbevvqJ8],^b!X',Yq|>hCРc &=ֵ:B1аA$@6Mʵ,strY;=zOhm%a՝ml?CLۅ[& DrM {O.=X}N6 14CVp'tpb^B%/"p"_R_Cqr,`E$-v-Dޢ` G.@+as1G0350(84X6x8҃:<؃>@B8DXFxHJL؄NPR8TXVxXZ\؅^sc+,Xfxhjl؆nP{oXvxxz|#r8`WYphV(9sЈH&@G(#0(2)؇؊8XxH d!, *@9Cg$gӉL-dthbֳ4:,!, 50"?I(=*=Cp=p=&"'! , O0]dKPJK&E'L!I7`[M640d]5G$<$_9;!$,+H*\ȰÇ#JHŋ3jȱǏ CIɓ(S#Pʗ0cʜI͛8sɳO lQѣH*]ʴӧPT2J Rjʵׯ`ÊI{ƪ]˶۷pň燙$3˷߿kܠFÈ+^̸ǐ#KL˘3k̹ϠCMӨSk5հc˞MjTͻfZȓ+/ MٖKN:v nj xӫ_Ͼ˟OϿ&<3 h3k6+Vh~E@"` L"(0(4h8<@*ؒH&&& CPF hXf&hJ1.j)I&`Blg2tix|矀*(4cp, ˠF$^p4#$ v*ꪬE6$h*U=*+&k,R=P* p pVkfv"y 4@#4"Eː l4 4FL @0Mc@3 >lkVq 0,s ܲ3m,DslML熳MG-Iw,O\wW5Xh68 p]Xm5&;t҈-ލ3=wcGnMSzӍ砛vˣ䋛ΝGObB+1иK,.t5|3\:||. t;?C=c?2\$jPʋCϿOOY&r;h{ rA=q OE+v׊q9U {R(pr^ZP>'5zc1Af˙-"gC!x&uJ(, 3Bŧ&x0g!"m!;BiFD#ⱈr\[VBb8$jin#ID mFFFv𔨴<=򕰌,a?r~w,wIZҗˡwTө/f:s\\B!"%0Agzv8IrmުkND&6zf)4>~t=c |6pE& J3Q7-Q M4ͨF7юz HGJҒk@2J-c8ϨJgh<#d4)bP`aNcCDMRԦ:PT ["X-jRIae$˜ޘ /lQ cxxM"aײڢkͫ`Q#`u(+q:64/ PL}f7z hGKBiWkc^+9!+ Mr:<6A Z+u jL /T( 9?6բπMBЈN@`42[IR7@,mN & D NVհgMZָεw^͍+Ahd tNIBl4[)nK faٕVȱ?7t(϶H[k4k/qpq¹s"L7[-z{NO;'N[ϸ7{ GN(OW0gN8Ϲw@ЇNHOҗ;AAR-#C ~`O/0+ XrCiT{ ΂!7:@TP!@sP'X@@p'>_BXw \`Az0?O@ 9 p'rӃ%}/P;ЏO[Ͼ{OOOϿ8Xx ؀8Xx؁ "8$Xt1N@N 1O & O@b*O8N 01!9mV2>   \ + R8m d101 uXN C l}8 puXA`Un[@= g P  oBsO&@A=@؄ȄCxfUXeYF ZU 1$ofC4P* v/ JHje*I# 5E1ٸKQ`jbEV h*à &01P X p @lC0p48PڨGWv&PF '&pQSJ&${9cwiCp"9 7$0+s4QFC{I`D"I xow;_G6{Q;`^Vq S P P   ɖ`"k7В2PP/C`0@L gp!D!7pzK '=`\bH@`P>pAu-B4P/02?@P'p;0 `=*gx\BwG7\ Ik{e `Q31@P @Y˘ u   `z $(IFp/ {sRp! 286@c`*pT`H i?`nס8`*X  I& 5`0+yypwg: 04J7kuX p rU &p &` @v)PU x'7@0>P;{00W4#Ah*5p$PwinPq:>p!+^P<y4P^ 2JPP"0?Pg`zpP{թة3 Lk5Y` Ċ  _ "A'J{gG0'c _'Rwު5w6p32DyH{W5;0EIyww|[_9G| 1@۱ ";9BZCkaS,v-R#\AHA+>V:+P?[1HFH7PpDA1UQ{MO\ 2˘_k:[=kse۵j0Si|Y;W] CsS hxOm4p9s;eTs[tD0+ Sk?UMȸ Dk*kn{7+6ȳsӺI3:Kk2ۀBDi÷vcW}_X{1ū6ݫ xû_cp۶_˶nKp+p{75k* G۾g2{v769u|t 2;5 !li\ӿBӺ5;IQcº;765(3*8-<42Y,t4 <5 K:ӫ5l^ VRz [v6DK4QBCh4lL9\Z4mK_KKbb,uL4&k̤4L;vȵ2|ﻳ xvLB,-4\nl:4p>LS\ɢLɹQʩlʙx6ɑ,Lf5. ״q#x 6:=N)3Z\3׉M`dͿ[Ԉו[خ;|^cm}fR=LUlX-j6V:[ik :-5ywU Ϋk{3Z 01zc^.|NboF^܇p>}YNw{^b>mSFv6V}y~ 9^}]>2zz>=끮:a;n9Qg~!C, :0)@>X&:(E=n#H}!,bƪѦ H)\#J83jܘȜCH(Ser˗0[I͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸s{+ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vh"r[il "$‰"(c,"̨c58b;`8 idDx&"P cm!q! ,!zHp V#8тċ:ȱǏ CIɓ(S\ɲ˗0cʜI͛8s,J HX2F:tӧPJJիXjŸ 2rG7?J%۵۷pʝKݻx~ k`IR40d߼+^̸ǐ#1ʐEF 0 )FzTg@@dM f GH°0% A0! !HA /\ ,Z]xB+D<iԡm.z1;" / "F/хmcW(DA]E) [H|$#%Xp$@Qո>Le*bt& (-ILp d*ʖtq)IJR$*L63,H1 VH!hE,pV r`Iέԣ. @C&OXI0$eQLS S3dh-s!QD(P|#@?A"”f V$Uh_RGS xL/pRP$JuOs;()h ]?UT@]=A"ў5 FzR]-i9:RҔ(5kYrM$2=Ժx+ruԫ`'Q⵰<*/GWeOKZmay*ԚxD&L6MjWC6,GZ6nGXbpi% IX&4:W*n%0Zͮvz<Q $&81 .D4 ^3w 8F1N`"ɰYk eeF0RQ7 wewaeCu-V1N0gLw8>DBq9 PDV`$d&`"c Oʃ(l0 E|@I,"e6xγ>SH@L-${N  DoӀ׃ila M{ӠGMRԨNWVհgMZָεw^MbNf;ЎMj[ζn{MrNvMzη~NO;'N[ϸ7{ GN;- M&n :xlL`(yB HOҗ;PԧN[XL;._W&;F+%){<gZqL)ﬤ >2pkf$C6P ] $P9`b(JB@a6p/Sg/x.DXFxHJL؄NPR8TXVxXZ\؅^`b8dXfxhjl؆npr8tXvxxz|؇~8Xx؈8Xx&1  N D=  cC7DMÉJP M =XH=H Op NO0N0 811wS G P4`C ȍ04IDX8N(.AODN8"9^>%6ɀb>-ɑ$Yc̐ % @ `  +# ˀ 6 ` ? P H bӔ̐;i`ВRi [i  p  ` ebc Y `0/ym2J97ki ` =S/ yQdٙ82B9 Bwɚ 2,1 Yx1aᚪɛI>ũ MCZ)Aҹ )P ͹yyӝߩ)G㙏剝ى dhdm%GԞf %FʜeYx)H)GuEZ@ɠfCz"T$ s뙢5٢ /F*CEPğ A Z;tFJB,ڣ?/D靟Clj(jc%qO:BQ* 7$% E] 5ʦӤRhEK=0䡂*gdCʤMG2}>jz7PJeBbʉOjpC=T!꣩XԩY@t>*GDZBiC| CA>Ǻ0ԫZT$*Zg4ĪZA*w3_ʖL&Dc/vAگ*ߙ7ڟzkACj˚ZjΪr$! 11ABٰ?_z[A$kWu ?*)ZB4+A4G7&U fY-˭1EF!Դ)m8ԳRAPk&+d cwfjڵ *$8Dp EBsAA*`;+E궘յT+B;ڳ_JW_D"BV۪1D`DY;N:5ۣ۠2+; Tz|gٞŚ;J 3Q@f[3!~?w[Bkȫ͛ԫhG{k: lU=ԞQ* *KBj1(K+C[v" EaA A;B;iһ; ˿)䛻E{EJ>IVZ ¦ʽ*.+A91x"A[EK ę5 B${a ;l=z&)d#DZLab˝NF+wTgHJ\t̉H,OAqLx"v4/Ы,B, f΢+μ,찹k ܌ϙϪ6! , 90; GGCF09F'/F:;)RJ!, +=P&?FI!9,! Y045*/s1W4Jo 25:22x= /$?=(J1=!''>";*IȐӆ! ,&  'r`[q'2lӈ ! ,5jH*\ȰÇ#JHŋ3jȱǏ CIɓ(Qf[i-˗0cʜI͛8sɳgI&注ѣH*]ʴӧPz2իXjʵׯ ٳhӪ]˶[<$*+ۻx˷_sKÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسk]a2[”]dBY-chKO}$Ȗ-c(I &&hBF(PH*h"L" # ȑ2$,0(4h8<,4s>isPЌ ePfm&T@$Pd @@3_@ f)iԗ0|矀*蠄j衈&Q@3".Ĉ碘f )ZzLKe꫰@F:kLR1Bk&6F+Vkf쮲A3P覫+͂k櫯R+gt/,"0W\qR,mq! s0#nsl,PYY|AZQ'.UA ͚ȷlqЂڳ,UA6+|#$Ăg?%m~+ !CG}/v;;8]. G&::\ ZX̢?GhuuӢLqK|Θ'ѠH:Y&@C ]yDZxBbc8ă%J"P LD2# L挐^1 K򔘒$HY TRQD%FZ̥.w^ 0Ya 2s$c8Ϩ29h<&bP y6 c3L:v<O[">3eh RNID0І"G*JPfE7юz HGJҒ(MJWҖ0LgJӚ8ͩNwSLC PRF n6rԦErTBwTjlcXJֲhMZֶp\J׺xͫ^׾ `KMb:d'KZͬf7z hGKҚMjWֺlgKͭnw pKMr:ЍtKZͮvz xKMz|Kͯ~_u BXBp^ h0/W0@»$B`{ GL(NW0i&T=D,NHɌC㢈*oQ%*slSM;:VcK!-K G(?13v'o"S03W 6cD(nȌ)bγ>πMBЈNF;ѐ'MJ[Ҙδ7N{ӠGMRԨNWVհgMZָεw^MbNf;ЎMj[ζn{MrNvMzη~NO;'N[ϸ7{ GN(OeY!`N`zWD\,3C.F;!(Ns ^L(s8֋ b(+ЋsB1ϫ /Xع^ !x`.ؾ^<᪱xz!]pV[({^\@ /LByB@f'\`=P}+.Ǟ׋iMA!*g - Q- MX@*_T3X_?WI3 X 0jbl(~j! MV~Ƞ~ P | !#   ΰ } &p &` ` BA ŠpQa B g  ` &8 W~  'i!*`JPR8TXVmi-WYJ[Ag^d(]xdZXGqe6j!fnvHl-wy,{g +#BAx'W1mH,X;vȈ}3V؉L!BPbB艨ɲ[ysbEy֒DKiXH' n)4m,i)pY-s9-H)99^ר y,eb,ȉ,˙,؜Y2yA,͉YY,Ź4-i1-ً\ٛ"h2ɏ,Y,ixyr-똟'Ɋa))uiÙ}Ay ,,#*% - X+#O)-ʡ!rMrȠAʣ㹃xdIG *ɤIO-rHS*JCYJ΢ F[Wʓre7F-bRjzڍeF8- hXi .XuDpdrbꂧ-0zs} *u]zm~fd-i풪Ђ8Z+ Eͧ=ZIn D QZ-jYꍙyRfJGǚ I?Ѭi*\r8ԚjHʖѢ.J,zyY*[ ɓ:JŠJ [Z;ʊǢi2j~!K[*ga:,;\ */h湎ʜc:'[z,,B;{:ɱiuIX?,AkFT[买3E )y=0d&P:-03[4;Nj sKLpax|KSJ=n۱J[ɮPQ[Fy35͗y7W;XMkH!{@} K2Uʹ2o˺Fƶk*z[ѻjF1e ۼ!,! :0;1G/F[' YL8D%&2!%,& -W6d,!+,* 2025!=4c0!,, +H*\ȰÇ#JHŋ3jȱǏ CIɓ(SVe 0cʜI͛8sɳϟ@aHУH*]ʴӧPJEG@2Sjʵׯ`ÊKhӪ]˶۷pC `˷߿Dá,^̸ǐ#KL˘3k̹ϠCMӨS^ͺղU ![6<4@kTC^͸УKQlnN{7=9ky_Ͼ{K0Q{nϟ5&p߁& 6F(Vhfv!g sh3$0V0,h8JF3Ԙ@W"+SH&WղPF)TViXf\v`Ia"#hV&ؒp& &@ĩ(2砄zH*%6ꨄl@>j饘f馜v駠*ꨤj@4*7e@@ë @,  kl\Q,ywЮ%,F]!Ќ$I 覫+ 4LPz y2D<4 . P4Q 0 ̱i!,y'0,ˬ|t!C'VN Y 0A,L7('H! bir! 5rBeQ(\ˈ/iL\Bc\ gw9!^FA'G%$}sl̤&7Nl}UR-~+6~ 'IZFr̥.w^ hM] ?[8n8Llb$K_Zf; t1bL<&0aI`㌧*sZ"3)O׀h&2asb%(1iq#IX8g&(JAgrVPGlb@%(Җ0LgJӚ80r(8FO$d Rԃc$XTo$o$BD!Tj"gXJֲhMZ @,R`80X4Tc02'*RWbhfce$@f1͚6:z5&b8#&2j68tM`a'gB`mKMr:ЍtKZͮvz x{&iMX^15w+C._`[8)ĸ.P"yp`"= 8Ё /8Xx ؀8Xx؁ "8$X&x(*,؂.0284X6x8:<؃>@B8DXFxHJL؄H Px; G`4P*8PWxG p/A%0F9 #5:]`'0=/@?q4cv8!pA[~R0`> ;P_8Xx voq ?N@ 0 SO100h@ 1&  ֌a&@ Ǎa`E @a8 W 2$ V1@WEq ` p 1 1p$@W 2 N °W Π u! ё C$@XY`*ؐp  -"ZP> ɐQ [w2[>a&a Xlٖnpr9t"UqxK|/0pgU!!ÀJ1}g Sx!2 Gh1w k(d !'&iDvaiV&dMϙ 2לYֹK8v 逊CP8 ny繞9hӞiӝ1ٟ95yZed䁞 0F'd *[9R⣟ßIWu2 9n).Zm'ꑫ@#/%up4tE9 2FjM$ڣӶ Q3p+GZRƤM*5P6RʢVJ*u?z8Aӝg8C!Sb:'eJOӥaztdyZ{ڢ\ʝ C1:zwl pb3ڦJ9 ?~#i:l*Uhs_ _6 4n|K\͝Jȍ̬l\5üKΓL=Y!?,vp*\@ BDXpGGZx#Cd "!20n̈pf2*` P Ex.9NSTphP+ @8*CNzhVc&$iǔja>TAĐT 'DK@DA$#pp)/%SÉ# @%;LC"n@H(DF N(c 6}05.ɕB0' ^1v9>(v( b18pd=`ˎkd 7b gCjOi8Q <vU$B / H jxC`BЃAE008vc` h`3"Pp. IČqCA qH!dR@&` )XЏ:"'^ja$$hXZ{Bdc*1G1(`4b%i5hv)~A0H !LVθRP K6dp]J 5lcT@Rq F@B,@A+-Q$т N{7T8p[/-d R0{RǒA' "1H8a@s^J 1<4EiM<\RBPD1  \kPe2*;s7kP6])kQhAF# @Dƹ8J3^ ?pFp`(*;٣ABgD@Q}#] mۃ3lwom$ K-<:v8$q +EB9tpnB$`v A@AcіmkC6[jZk">c2BE 9蘃~q泔 ‰G]ID_}9 l+1 z-5A (78\ p-n92 ?0@AwԂD!r D-+T:Kpst2;]!b XLtf*FA b yqj ) p6lx̣W4 IBL"F:򑐌$'IJZ򒘬$jzDb2ʐ$ `XTM.r9-9 Bf%UFXyp,eAUr%iS" ,veYf a l(@E/|i_rc"Ht1 (m3LHiDC&5r~f/ۘ7o#9YR5l:ׁv(g<α@:p>yZ4?fJWԥF{'΀W VЁ2CB>58(EPҋblQsۓd$$E.AVHJ@ԥ/LfB79UNt2ڞ#Oq9T r($Jiq&GAJR8"Vͪk%XLX`USn{Uz=[5^?P2U@45+AtvՄLL\2i]%ӆ/~pXV9Ėsث&&1mEb+6ֱ,d#Ke/Xf3gRWѷhFC҆P Q C0A &0ѽJlZڭ&kC6 lg2L8̈yW9iNζ'If*nq Vӥ.-ӳXgvjAP;Ox&%.2~-Wh؛L=\؋v_ a}~п/p, v ǂc|`HAX =B`%3 3څ đ1<C |!jj4mmŪe9t ØH1c">8.DtLmI>QMrNv!p7`R)HKU, MF*1K%QBMV*+464;Us"UIHXB` ߼p8r%/`Y> hOT&'FS5hl\" o309ZE=vQ렜',|#Pw9Jy襑iynTٽ@y n orC+T:PdBꐊt$UNYZ`\ϔ5ɧӜldOTZ;UVQq,&ENvU3˨6TFGroD6iXmjkʙ1}z7\*׹U\v ^W.8zS0,q000F]~a1 312"C2c__0H3~;%~_ՁD3fI#3M3_9P.E0C@ua[s9A&bIXd:L&0K&;c;Γ;C Xf6SXb=ev\v=if3aޣ}7 @pRgCxg}hh],Bqhwh/@@&lViA!i$g'>*/D FC6j;k=KcQE6kRhiAe'ǶEE'FdSnDmoVGmH޶FX긎؎8XxTo4PF`Jp Qp6qtpqK pp-Q"qa8aqiqqqrfr%g!'g4#Mr0Nq4o>W'2PuxxL+%THEyTey=sY|[y^%UGVK2zi|VVqzteWWg!g'7*{Yw)Ƿ)|W*X*Z2Zyٷ}5 $q~2~0h[[~~ZpB\7\u\.=#c]2]hÀ](^%^_$4+^_H^)̕%4(+([V`2H,SsXa>H<(ak<=@+( 7Hh7F)70 3fy\38scc\8#^9:bHdSHvJLdlCepxeC~xfs8_ֆo(=Wjh5 > ;vwg'?EsT@hd@hiqinĊBvjQ^j8;VDDȘl(AĆkFSl8nXHhm چrgT:ZzȚʺZH 0"  B*]j $&Jw'TcrqQq ڮ$ M\qiM-3Q5aD9st? dCyOGIKONǔ>QQPZP]P BdוfQ.v v wf)'S@AqwvBgZxB%!7YIT7WV3@]yKR7%g8i^^zR&7W'WrK|w{yXכW))|Zkzlś@ч|I}fחV(L{a4I[Y~ֹ.i-I# 5ĵ.\3\E']ԕEٕi^Y>X% ^ *"`.hq4c+0Aڃ 66%:ʣӅ/QqM(,VRY;4꣚?F-J:Gzdţäjd\*V&UjC=`7:_{HfR:bJf}A,ng +sgEc|@~thJ lAi"&d/S~Jj*kJИkG$KkE@ D⪁l >Lj4mn vԬ^~ ^ȇl (4תIܞݚeT1 p抒芐zq$)Lq7r'ꯩ<|,Q[suqs N:sWTtEÎLWlx V'p]6v=9ׄaKY` IH%6*οcZ=و :idkxڳ0]!g,Tޝ0Lx߇*ݮH,jK<ޑĕ:7D _?_?_?_ȟʿ?_؟ڿ?_/F0 $XA .dC%NXE5nx!E$YI:dK1eΤ9#J9uTYOA%Z!,?`I @Xl@CcGH%.]"φFŎ%[ٟxl#c{6۸AlqUOAƀrm[d\eh9ùQТg `@E $Y3d=D19qɕ/ Pp%tWc#7|E <ρTb}U 0~Æ  c;Σ< c1dXC~s̿6*J4D9 `:ފQ X,76 nCXt1ǻHLqI&tJD +2i 6TI0334L4TsM69hL8( ! , @*\h#JHŋ3jȱǏ CIɓ(7:dȲ˗0cʜI͛8sɳϟ@k>ZѣH*]ʴӧBBJիXjM:`ÊKٳhӪ]˶۷pʝKݻx;+߿ LÈǐ#KL2ʘ3k̹g]PH t3H5* }b $:QKEz<RVK'O:}E5Z #wWJ7B~HX `կŭ?.# yc VhI@$ tbp!|E#fZ ! [(# "|7 (ea(ۇhF~2j'=DB w,B ^(%%~ ,8hB(V ֖]&I' xt Fii @ [''`CnRj)g!T( (Tp0" Ix܅Hi_"!H# {h bg~2}$|➗Ʀz!vj! h ('\l7[k''jIbZ(__e޲#!I!Bb1AosЌ<_k j ,{!6!{~IfǪ^;N(Fx;=$PZmy20[P' Elbͳ$F1]Lx^_תױO.,DB% 45$BٝN)Bdm=(  -ٝ`>K[2tPof )*:uKE14v|7 "-9vj,% C/FF 4j1[DQQQtԟΒOd{=#Ȗ(p+yj,Cbr`I@"ʰkт{ùR0.w^0Ib/<2fj&Ό4IM@̦6 kr /)r!':v"F,fQ# pӦjZUa``Clx`UY@<@=x4iwP XuZ֯7l`\ 0:  Ȑ^fֺ H` xoTդI؀D/Xzf]ꂴ5 Ԁ:X@.\Q+Wf\ aX@M[`qalk0) kSA4T91!Hl cXC%)L4l8p02e}W$`~:Lb Z)sFPjp`1~v~;|3n\Fo&oFS_'u:5z`l0dOh _e`uZ5we]f\]lcY0dŁ'Q{`V(0W1j*X`x#}G%[h4&S:5[z`0ef3QJH3*  ff 0c3ex@Ef=@[CGo#ŅZMES V"Edn5Rwpd2g(X,u%1 0y(SQxȨP5، 0@XxS؍,)Xx蘎h]@mk@`cPPEH a;0B ;`G  GPd0sa?00s1G0wP?1b >-(,3Y72hZ yюE!KYp6 ?(PPJ&@p"XQ@%2pD C)^ $0=p&pQ]E04@b`];D": pg>J@X9iGaQ9!p r rX$@#P_q,ECĉ#9 7DrћQٜĹSY" %fz.dP'0s@7= LIp&4@2(__I2D4P`'zAВ-@zH= =`*PC an )ki7$@=P =g1F9aN^`<tAZX9R# / aZJ`F_QYn)cezsZa= 1# &@K[`4iv:J ]: EP`I$5Po?`X4n7p E:Y'`J I7@ /`a1fAFp/`aJ8P0qaj)i0:#`\8Ҫ7o10@`P&)jگ; 1*CPАJ#0( -ڲYG@<2l4C% $P9@t`<PnТ@@ `9QZ!EjvT9j_1)Ip/sK F`E@*`t{,P= ɵF@iѱv ^P<۸|ANIڢ4˨jCIda 0*A19Y0VYcɻ^aO;ٜDЖ_A!v9vb Wh_@=)[Ie@O,y'@s`kO*R /蹛@1;D tjRiHYg?6pp |1¢ORIViJbSde4@L``dą1ܫOaOX\NZ`b\fL+ kH5 3ٴIJ )iq1"I&);Ixoܓ|!6CYhp:IN 7Lɕ~)dijXnɝv|闀)YV艘 阐)z\ٙW(I)ɚIIqys)@ɜ)ijyIy鹞gZٟ) ʠ:pyqJ *m(,0 \7J9=J?CZZMUzYzJ`ѥ_~zӀjhj:;Ӆڹx zʧbJԁ{Atڹ{ۨ [Oƚʩ!+_Qګw \@:zoqW˭٬_ + *j_eQ:ʮpj˯Z{ݱ { k= k]<M. 0+ۺ&P>  C`'G;K@L]Yk[۵ Dc[g imۢH*q+͌[z˷~+ {;)ฐ+_񹡋 ~@y]faI ‹98OyW 2+ ɋ̾ +Ky64`l L,k\/|ћb$l`*|g$2\l_ôġKT<HOy<LPR,O>V|ƍAƘK^ꦞem~5s؏peAzlaQ( )~%IÍI <͑\@ß,wƪMQά_ټ<ױl|݋ܗ˃YܘȌ̻̞lLlٌیɛLsY?"ߩ;V>m} vE.낌+ (. (;I@Xj@8$PE- `8pAE= ra(#F )"GX|qՕ)1Z4@G=ԶOA!&(~Hnl 4Xx DBAHoS]3n]ߢP88ْ; lBL!d͇$(TsQٝ8BҋL`P ?|עA,pXCNA8Dh;yB^-n@Ğ;<:饧NL900pQ)S2m6"6Ch뭇8!L@# Jxїd>BEz!B$~ iR!  7K|P&$H r xHBDQ!Ƣ:LXPH=:=uV:(z"W~E&΋t%m Hʶ .AUf8[@l@X"E wȑ m5(#<σ p~PUt"!EN4A$N(` )b[2b J!/BNB:E-zZX(D1mfol&HG&q|+(!V̈-0PS{CLI$d7A`Ƒ_(*Yy/ŗ<! aE &`-H9HBHD'Q"BZ$`#iEob2V;iddA.|"9%GZ0io#'kQ^0] K2U`KY8 R,*#aZ9 9Ϧ1΄4BM(ĔDvnb,IʙKϤ&7Z;NY~\Dh>pܟ? `B ESDɘȢɨg@Ӯ"0nG:J"9KR'A˹{M9Td;7|[dEڣ1OU1$V(*~ "BTV]TkmO#\7Jl`dW$z-EپJ>g/[|'_w\|G_5r}WV\h}-j+~MRx)Tݭ:[3JVr킠\{j)ZT{ 쒽..qJrx{;/b:YՉ;01r9SL ; Q1{ [1'|'#q @豹R-1؁"p( )*$gӲ2Y1١Q7|39SqC=3>y4a IE@ɟTL+0C>4  7)B !7#X[z![۵[۸a 6bK%J6Xl"0 P$!6ms#B6C6:"!m#k#7#s{ t6/bDw{x$I7KJ< $8P64%38KA8Yj )0;^8`8VƎ:"f2g&HjR`J nR) 9r9K'맞`:xRy:s A:~0'yx CȺ@4$ #" s陼 [һ(ʩˎ[K"*Mq2< 1<A=; 1%A/T=S+`+ؓ]1=ݳ>)!>,M NLNeI JK4CNODZGTAB3OEKFQ]AJe7E^Hf̂`W]XRFZM5jU؁h:ۑh5_\a#V}cFeG(*@"jMGj w|F5stG;*p-s3yH{l7wx]HzmH} " 8~KȃU( եa*ɈEIdXKؑsIhؓ3]X9I{ݹ%xR&٧4:J~J7YQM >,LڲCK%xZP,ڸZ ̻K)5 TcL`p[4|˓[+۱z<+$,\Cd貼궙/i cNV(j>kNk6Xk~kkkkfkkkkkl.l>l^ Nl(XW95]^<;^H^XNPNU`x%^j 7QP@Pe5k_ѨA]QiQ\0$` 4`Ǭ02Q%RBC[R^0a1jHWa K622U2ƃB62!".#c1S]3IJ̉AB3,VT-fVTW$E?1TETFqy'aqP "\nacRlA|PyGF5zd\]Vpo6d rnVNVVPj۰kTVd2v%YFWu]weWyJZr>Y Иb8\5ؤ PE?f&n8oF#- g'ɎMmhgq爫桤gFʠ[uxh|٤3ʀY}Je E(Չck"QZЦ㨌8T iMZEPli#>eƴ۸Lʋv SjTp.x\fNϑx/lOy_yoyyyyyyO٭]H0(Wc (+ ̭ۺ9ޔ^'g0ϊ?oO޺.c^FVj( nP:饛~:ꩫN :>;~;_; ?>UAP $! 1^M,YAs%zj"ĢeэY/HC*ґx -&96QRpK:⑥*+vNoӜ{I)}[3Bꮊ:rkNDjRT4)OJT2ySVLƢ)ouE(WC;?\}J+ILs_-n\" |]G _@p ~1H!_ld%cmCf2s/̤c=xgh#[Ӓ@k ղֿpkO΢v3l Y-ødH߂x$|ܕƙq :b9=Gyޝ皧E3x)4T-ISw!!,+H*\ȰÇ#JHŋ3jȱǏ CIɓ(SB1*cʜI͛8sɳϟ@oFУH*]ʴӧPJ ԫXjʵׯ`yn81#ٳhӪ]˶یذAx˷߿74A@ 0+^̸ǐ#KL˘3k̹ϠCMӨS^ͺuSٲ%Jۃ۸sM@5լMm УKny%PνwI lӫ_jfOϿ(h& RD3 < bJVi?=eZ>+& dihlp)ti_*w瑫砄h%cI6Z-PbK"Vj)(s6F^Q+jꩨꪬ꫰*무x@3A$ ,jza`-" Vk, `'m3vV" =h,J^pk<(1@b4G,1B&B 1 1Rl @.7K,OL24 "7R02 MLDmH'L7PG-TWmXg\S8'#ό#lp-t׍M|] `m{{`Ҍ׍;SՕKy䘇޶G.ۑO@秷㤻.sW~U,"#+OD+_J.@\p~,{ﭜ/{_NxH' [ZAg7Ё9p\HA 20ibvDBy1 Cu+@+.;b* x.xq'$[wi{M#Vbah R-[tCH3QixHDpc@:IN*x\.FL+FG r#i#|<7R#.;$C7Uq1sHN͒+ $fIQ2ld3nBԠ@lIr3s19:sv-fY=e ^қ dP΂[e) =M_1A&0Gp_!(B7юbNd4~e&, T#,a<xeYh/6@"n LH%TQ/IH@DR:D4xVEծz` XJֲh !cΈ35G&pk q-F1JP1!b(-&bDzMkd7{ g N4j q2 M0PKͭnw6@HF2(߱j c"ȍvT8t!%.w{`b-R!Aq-VQS ͯ~A鄌`,B8W'l@pd -|"c. C(NW06 4 _ن p x+݀."_`0)l’QTβ.{`L2hN6pL:xγ>πMBЈNF;ѐ'MJ[Ҙδ7N{ӠGMRԨNWVհgMZָεw^MbNf;ЎMj[ζn{MrNvM`Y&E S *KY@&-FC4"H'N[ϸ7{ GNǚQ5EkyT Dy_ Ys+> x N(* d(z^@=#U?:>բhOpNxϻOO;񐏼'O[ϼ7{GOқOWֻgO:X ~O/@ A5>@pt"}} @ E .BEF(@~J( 6@@CćA`7pe%52_ &,؂.0284X6x8:<؃>@B8DXFxHJL؄NPR8TXVxXZ\؅^`b8dXfxhjl؆npr8tXvxxz|؇~8. N pN0 $0 (<̅ %v&pS4 艟pED p>@s EOЁaO@E،p@ `  E  `p!Z22 ʰ\0 ʐ @4  &0P45 o p  ΐ V ㈐xQSPSp I $Y&y(*,ْ.0291t46y:_HuB6 #lCLI5E)tYS>9SДVyM O35x^b9O #Ji4rcCYpaK^IaU |)ZI4\tWÖPٗYPsy4gn9Vqmٳd:4QPsCI$\*hznV444Z4j5p:Z9@7~4*#uz54 }*@\cTms#ElɧE KMSRâڞ2*5VPzJ#QCWZV# nmӜ)#iPКy:Jyw*# 6xJCiJmi9ݖ5j )SSD mY51{*f݉)ʲFR65I14Fz4;ˮ$+nʗۚJʊtgZ{4yd uO+cT[VɤLI+95Q*z. *&wQuwK{+}{5kR#p{nGZ ŹQS>*::htBz#[Y[Nʯ:0*Qy5溪 ۡJM{ ʛo˺֭۹նHýnڋ8 D3K&KN*[ozCiF).rH U_ Z##(ܗ! TJ3d w|HvD|"Wz-PC"'qGBrNAfL4ЃN  J$(DL4D'b"PbytGyi0! (;_|(N@tz[^G2~{O_!R dv$D"GBCh| hwp!S3Au8D>1nyȦ,V֖NďZ8D^ 3LBk]L0@  &yn8DF+<[qOdH' >ojСH߁oCX=AEFHiY2- pEHb{uh@8s$$%)D^WPjH\H(.B&"(D¨ -!@4"}a\5,?<3k bsCPH74D3G9!e)9 D`a8ٸ=-EMrY΁ܓ (D2ײ0Cxg<΀vb(<<5z=D:!GB yHIjRH p!)$ Et&]\ة@l)PDn'  lnTwYWDF|;D";ť(CSZ\AΠ6 @WBB3^ mx;XFM\_߲MPhPݞjY먗eG-N@`R s lOrh'[diڳA-PU[nr7]&Teq& ѺFP.j%frlFd7m,e` A@IګD!< ˗4#(g ?G!4h,)PptA,` qZ]^ Yq Bp /;l\&ݵ<ˌd5p*,=MЦ̳<+%|֚'聜YAReF;!#{'MJ[Z7N{:`GMR.>WV:#~gMZ{:ֶεw j\Ne;Ў6L-j[X`n{MrNvMzη~N{Ri;'N[ϸ7{ GN(OW0gNs#C w@ЇNHOm0(! _@9d@(\N18p $87{@6 K``OC>g'$A PFPptU^zcfؠ;@! 0` OAaV>o}_>65 _{̠c>~2_W? @+`'|`uH}w} ;PcjpȀ}(X3| VzF 8} "H~%x) `"w8p|{|%~'tz؇g|V 3f0s!K|ApM;0{0)6iH0kkK}; g c@g@ Gtp}hPX,p" qI3"w@(dVvcP:xf`V"_@v$pGLjЄ 'H`H{o)}t8h`'hبx8xPapz @z'hrHtOz'P `zym)saȉpM 8P3"4(p}@*+o׌y4w`85<xpLђ+-c`uA9k: 'J4@ljvy9q`Zpt8 W{0h j9z+; _v2ytvxpzɗsI6Yvt M; )옔P"%ɔzF&I~F0( I`0@zd Wufw807狢}fpM0@apxf}c7{GƹPW49 h| ך؊ypdI$ xt) I0;`ן 7ПJy u?@yFPjp  j  ʎ84  ʩ׏)taɕFțsax *hR7z`l0З+h wG} f}e{|~^)K w0 u*`hhh?0 +wtfphfkXz}Xfpy (}MZZpf8تzlp;Vg驦HBg}&Q:ɊGVʧȊM.'AGd/pweZJqy ڮEfpZZn5pگ;[ٖ Ö17 p-Ud`K)PVZ@U:Q2@Q "??0 J"DkH$J~ GaS);PG0wP\-O72!$F(!:)02(P_A"ZTP!W?&Ҳ/ '0{Q]7XQ-`Ȳ`+: {i>D1pqQ&B rX$(+6UkƋ˼;1@#0UqJҼכkk"㫽G#b){"kvl۸KB|뷢K"clAEdP'0zs',q&4NE!+;, p2D4N1V&\Hp= orAHRpx8|I@d "m#5|R1gX(k*o$q6`%r 6zQǃLǎ2F9#𱐒+l1#  ,:L|h@( PGʞl|Iss "`[`4($2"L7#KQ01L8L@Q0FѬ#]`#8#Ԭ#65'``(B7@ /,D# L<<XrН; 10@`\/#]0,J"%яBFp/`#`=(<7 6; 7[pθE0C!ѱd0#0(0m&Յr(<2@n&CP4@E0K(׼<&2( p`[JM!b&NĈtm2,m&P$(s]מ ڢMڨ (}'% ۲'JPۄrۑ:)P(jʣ<ئ|"蛆~!c1PR@5̚Lo+#k阾?˲. q9K<#JL[G(>B۴* R{U+N5Lf 0ܶG188ݲZ zނK[+ݼx-۹qحkM+?Ҽ Ǜ՛?ꋽkT[ݛ$k  )T9пX.K}{ ݍ+=|(<,֩\(,/ Foq<> B D 7`J\N|RL$`XD^ bpAv(xƃ\nȇȁhL~ I{ ɍ"ɔlɘ,ܢݤ&n1O?s@Q7Vʑƌ\"?-> G{W Δ;嬿,L#^,-=@aMbX?] ?-}FO)0-4 v A .dÇHd` @ G! 8Tntaɔ70jB#aGz" Zi.dtf$VS8B =1T)](*tPEH, -C'ʪ_pa&H,11(U JׯB}Z:$]#6b LϦZܺ_ǦCPE *%F$@' /raXІ$0A th"P0/*D&@M0 `a Hh"ءh <氁9A&)h4(AV<4kQ ݄S928 †(O50CUtt#JB @2ՎAN7$Eu(2 +UU)1J#]E@_ảX R-vZjv[m[pXq5\tUw]vu]xU\y^|w_~]zx` 6`V8Sr3)BJ?J j ҋҊ(YA! \Iy raTvZg}nhX^fi{^zwxi;(cv-((ify/^B,R4;$P)#^NhQ T2p!P8L lkJNjP!d8ч$p|'45,pwwZ߃⇈  sm ^w硗^ފ`#wOM5?vZ+%Nu4'bB04+*E 9G(K$h*d"J0jrx$hL" !TAPɬJ@ $d>At%\-| BFb zͨqr#l`A-(Ԯ:1{HI{6-zo}|``UͺT, d3k\nk  a˃`&(V?@ ^Q4 }=a*hD$*qtN" HE+bQ\b1hT.7"6Ȟҏm )tC Ɖ"HZY^ $g#MRݣ %(RZO ,6-[[TL9=s]x2'hN fܰM  8GS"|iO^A~; ѿW-ʨS/|BRT WJ-S[/ mLd;B4@0@U*fRiYҲ܀CzՓ%dL*<&ge2~FXk`Wݸw++ ,bpT@X,p@ĺ 7wɬ Ϫj'#-2-k1#Z]*:TQ/5a a.VQ&q0)+,"“ړj-lBv/IzɯIq{/O!3T9Z`a(ْʁ[ɛ\$T"۰b01gAhY2KdLDND 2O EQER,ES, ;EU\EVlEW1P|EYEZE[try(+G{`d)QYp4863EKi9+@A3 <>#9kk4[r9(+x4鴿a51)8JCT#eqW 5|S75﹵'5^sڹp)i6Q6ck{l66,j܈ 7+*<=L7iNҟ"yy7U}ķ;!ǡ r8Ӌ7c!88Ӥ#J;l' )+",ڢ."89pɹع9"2ҹ8Ĺ:=>:,$,$ÄT$Fr$H$JB2J#O꺯SMRڊ$JE\b)3+<;['h&;ڪꁨ곪Jc?*3ňrɨ?"" @B@vQָLd@Q @Ҽ-0CAKP #=BA0Aݲz?"!D{.&<BB/B2Bp CB5*T@6LZ37TT9/NCP3E7CLBmYBܴ KD-5;!cDaqDHDIJD~UY E\U^U_OM`Vb-VcE]=Ve]Vfm ť1Lxa\-;xCjL3vf83Fmm36#7WsA[uWp}͚t|zuw?@U61T7F,CH/IuT8\T6/o8/K0;NMO@|0B0C,/n S`aՆxUJCg [dQdeS>eTNz)eUneW~eXMTeZe[e|2VijגѦ1+sZh vFn31yƒFr3srqDGCD떂`6rAPI*G؞؅m5UXWYY N)ѡHQ赌5|Y4IZu蜥Yg{Iɶ[hɡDZQZtZ$z;, B :%ʯK8],#![ K˓K˖{91 LCR̛/MC\˕̠M΄:la̺E#J= SbS=z@&eٕ;]HaʻQW ^dN6`X?-%(tEm%t1_ܻ[xi|_zM6@/* 3Ӗ:N ]%}5#Vanf2GRF ,'nl(a " #_T='A1ĭ*4}C%.2B!:]B12)t*T1arCG5T.cB]r>Ir9lTJ: 0C4OPu0QdRS2KLVfăU\vPΗ;s=w Vs?s@o>tB/tC'A?tE_tFE]xfdBbQ!nȀ;` - **JXo nﯪ`o`ou+Q} pWdaJ~^Ȳa Ǥp)!"#$0o kYMb|3hךcdq&Qa, m^`S" $|ɾ;&re@Fq~3}BQ/4h0ۑD`ҲgӮm[/w7‡/gʗ3o9ҧSn:vȳs;Ǔ/o|׳o=ϩ ^4|dM)B tUC`Qu q5 f ^݈z"*"V76cy=ޘ#y;t#QÎ pީuhKE @E?$BP&uDboBS+9ĝCHHGkIF0 WDD9p0`@! ħ@ ;CJ)(`Ԥs?G)Xwª㫴ڊw@ #7@Q6l[qX# -yoƉ^9 ilE Q,!jWD)=|KB ^E\0A !|+pL DI`4@`„( QA!)DB[C2T |?P@lB` E GH!ŷnJ@P-ߐ d0ҭܲGcEʂ7vJ߱ FQ_wP=y7ww7{,A a 9`0~DZ&2@,qBܻSP IX|'XGux]&А ?p7a;4a keQ(z2 LPCoTI8ZntqO!CPD''<]Jt!n; ~Yt{A#(p# %Hz/C P?0w*A&DwTF8 0;Z(&BOl"ހy[- xgF`,(OP!7`(00VG 8& v`!SS]S#Ȃ5я#Ji*0xTy=q|e,k VBx`Ȓ%G)\Ҙv(Ρ#r)% ldIF3*8@8aqLc D5q Ghֹ7+]׽nv|+`+MY2},dR,f3Yd5P:`.Y&UB;Z1Jpj$sHX5F/2Q7#A}Rw#EBFWK7;D8ҁ! KN@}ia['fnVjQ/.px[j pk4w׸yr+59ρY4l:2.uh|=wnk/ <' xC^SI[3lHrD9`5i 6 ©D)\1g6D[ל 2Ё` 9Ҫit C8–a I^5aC j[=b;{bGEo@NЁiĸ2ؠ<'"0;\5#'A(@{FNۯ)s (҆g]I#tVcG)Ke-YJXSWqf~ ݻS˜-SӚ .E9$9^My((p#%x,"*jD*)L ( -)?ZY y#80 CBli96)JBS" NyPIQDRREy!FgyV[܈(UxWMpHhqDAtuQVIGIsVGHsorWvPLs I .x\0Y wVxx@ ˶ח@Y ||՘ D} @IRXaG@ HU؅aa1GJJ s3fصU&TDGLKX_Gl qWy- %KaT)NBiUP1 : 6V#\Un~ _sAH ~Ma`{)`5)jh**&*6>*A Wz m HG!$Zڄ.rHHW@W! 2Wbu"fW#:zuǷ 1f Gߘ(XQ s)iH) vĜB]=| d)"/2#7#բ>$O2%Wr*%g&o2'SerL d*N kHt*Gdk+ũG$D*ǫzʪwra/뮆G s"j{8"qVhԉmb)j+}@߂+k","*,G/RɫqXޫqq?i8*&,6.!lGE,#ZRƭVp>1 P "DjՌ~_G 9]MaMixU's1Ukq.G`KՐYU5s >)XUƙq R 21Hv2x2zYD29y˹繞#99*  svH0G2j^E,DrGVq.srȭj b132'2k}8p@wl*b?C4'j b7c7%*~ua::;34<ǫ0޳1I2.G@Kc644:svB{A{BB;vSNl#\t(gd..:ivhh.8-9Ggr L@ Ln^)wm9^A_A,uWzGNgj'xo$/rzw{{U~30"pv(0#G4 {Zӂ&S={2sTw1!E8l  (d  9 ;BJQ+ .!wsgGNBC 6nP @( $'PAFwDdmZkٮeh mɡǶ{mH! obŋ @Ï!~\ڔqflCL2SIyriե]TCճ3BL rMt \,(Cj #鏠W0HX[3O[h7}z'|Yi{׷ө <\Ak% - 5Ц9EM<ſBn"7qw\pK vXF {ņYfzdH"klOuny$~J KF002@.&l&$dC^0 `*aCʵ lbwxJBL& | 4PHI)hA ``M80>& 'L [Єb0;P Nyk2 ~7#` ңh<#0* a#las@A\ص58 x3\nÏL@,Qt&xf(jhP/J4F"!RNNJ*0ZJV,'TKP(*B0YcJȗ08p~滐36n)'B R$N:Q\ԏ0$"Dg(D0G!yHD&b`D#bY"&$+iKb2ğ9Wpa1 <ȀY; /zPKC1:g u1LOESRBkb! o# AnPŋIj3VU@)ZVUEǃ\ZWy+iBW` ;UbX®FA I닣ڲ#" 7xJBR`6)H%l,x0L{Jȴ'.LeodCYNp2n{ JP:5;ER\6)XP)P!"(թ8*%J"RckZʪdESECbU`b `[ \–䥯{k\v]0a{x05u%;5>jC0vK0M5$c)W&22w.#ldg>i+Ls @!%hS)C( 8tAN .覹B|hIpK܏.G%rn9 }i#]N4MNvtwwQV{% n0MzZ+y|"yݥd5(#$aQd-L@[Cb%E 'X NH$:xn&D!ah[fo}A14l N)7byb f(H 9lfv4$GnNK0=ojCJ 4FP@$gS&t%,eIK:2SLfƴzץ aݙcWR٩iMl@zq猢$#8gD(!TA Qr"E2T$LC&ݕH`(!"oЃ.[AM_Zp)LcԠ&OM" T\3 '*W ȅ-cɿVГW7sXPE\:b0p$bG$n`&Z&^b|+$ Bp&${KKD䄹klй0PJed4E @.8żBWV%\VLc&*%N@i  VNŒKeľ1l%BĄ\e>,0qưPjF b|b,f7lc:\Dd@b 2 XFʊz krfg:-hF.H&$ 6\@)m¢ͮMά[Eo(-rLn(GL,g&d1BҚ&F'u^ qQjԈxTMxȾd\x k{Mḍ{-||b-$(٢%< xmph h-ڍ4M$ p(PTrXr\TxHB R.p&NJ%F`B$LXnH|)8xb'p6&|wu.OėpIx Nr2B ̮Ď/2_t I#i|-)q ڌ.":rA!jT"/J P$HBBH8@F\Ϡ`ONz/t$䨎10;(`l, j#J9k >#D>S??@T@/@A?SAABC` .s*q-fk-v$DHE\d}E$&-Z-$~CXpրKM`LZFKB OFepqBx}DǮ'C&p rJ 2&HTP Vpl%2DEy,XkB"e'+`C %BP]L O-_F &aQ#b&1#*QcdQ@)(^ WJxfTY1PhfjjrgkklFՆCqqМn7QҸQ+Zmqq"<CG9MR2Q1fn'LqBͮ Hu Uyz|ר !nyB}D~S* :` N,*h(+_.zVl)Okv*钺Il8ɓPN.n/,rvn03o 30Br2B.][4?236ӝR )87P 5',ptC(d&à6 ,<tJRBd9mr:|/;y*43w;]6B#AD}@}W~~A~WW@XO(T ^ FKCDcdFD@lEEY9)8VCd(rTID]F+doIwTBzPP@2CIb iG ";eSK & M[L tlٔ<YưNIO045IlPPQUlPx`\la+%UI$|LSS炀 @f6EUO[ugkj,WWXlvmGDY MZMS[TZѨB0\7-2Qgf]]w]Qf&X ^`oumg`MLg~~r(VJcC€@p?R@dWFBde[OeS6fBvfg(v@z6r6,><)R``[ȶ*Q*ɶ`Nksn)/٤4N)P&3m;|E$..v0Vnovp6/pq)DqW,4lrC2w|`9BT3! H76S8o4Ww\w3Jv;ꣲInWtDz3B;yӣ!:W RSBb{s8ӠsTBS |ٗCLS[3W[۵_YgkAe۶s[w'8+#hH*!xbGX15 =x>dkIDN3`JXA/DGYBlSCTU Ԉ ًǖ8kmb0, lWP)A&OT8Q7<ᘍ Q &{#.)c6uګO9WfUQ_UuVu|NfJ,Ռ}",ώYYY]9sV9<̵5uUӒAqq9+Qe}G^E+Ȝ9$X`bXAp `w  q-mٚ-"y+ڲ-#g#Dz Z(^/2zBi3+jhjՐJkcN9涖,[R2WRȖ.nRnyn Zs޽p3"9$Z(Չu*?Ě}@v@*Y3ڠ(/:$69vwGN/а^b/E[:ww 9w7$OBz6T|(U?8*|;{|ŏ5q[뿾Ǟ^D|BO²*7 mbGD8:еC5ADQ0e8kWp4P%8@vkwXtP |V < +͐0O+O/LOŸ;u/A+QxRw,UyTwܠ2z`ɚ eV'Yhun lrʋnΪDNb <0… 8"#G`Í;zXQ"Ft ,@>|| eH"#KLe̝<άiС}*Lx1B!8! Do`2t!Sڶ[N@a$?( G ,@ -82.`0l1A#6L@ʖ4A$2)@" X~I$TxygC$GZ%[*vx4’xܷ{E0 i?_}ܗ~׹|G'`v @^Qg]r7@G"&vEfe FE0[Ia\don0 uyb[ GT2ԃPDi~= Q=T @p P&,X<ZqQBr@aץ&A _*颍> Po(E<(r Jj=mکPq)HX :)]!*)g7yd0J@4pAk804hd,L90A Y hC 㖛CJp'AN .DAA $J`B =kn6q;q =+2L$Dr-D2a ܌3so?=43hN$AgM nn 4GKmM6fqEmZ-NwNN$\'x?NtߐONy_yoy1Iy袏Nz馟zꃃz뮿{N{}RpB CEV %JBZA}~?a#_/` @ϖ__?r;CFpt Yb1o [S,`gػ~o Pu  a(P6ޚsAs_+= y,@x"s E`Q\l\ p5Ɂnȝ1kDBjWЁ+Z }Y,DDa L &/A$B MAA3 *`\9N*{K\$RXt0Rq- cZ8 xAN[OQ L(\$#&AB2Np9'$ JT’34iM੓DZ&3 RXUV¤ܐWT [R/ Pi_G@F#Pk$6ZB 0qr+ KaPt! e8ꐇcD!gh, 0x̻q B4vΝWHd8s8;p4gƅh)mA!H 9$e-ɱXl$(\a " 8ž/z8{M\꒗SJ 3)"msjiDB(8ݥ.hP8)A9s$,'=iqt'N 3';=b)#U;KBs-OQ/.8 6I7#4/U[m:"M\AQ/mQ@x::^M5zWXSi@V%kV+ׯJ! Yέ}UWE+Jky(G & ,d+;%U]5e&$NWC#>Br[jqZgPY]:@&ewv[[)3%u3\@**U(e\~T+2!U9eP]"^wE^&-^0+D 6C_I.&_EV//F`Qc'Q'-o'@`: v2328aHbb)4cQÈb4SX5cHf6hc,BdoC_smK7xddew&eSwgȋ苿`HhLj3Ȍfg#|~k@ƈ@kk@I:(+vnCltlɶA86hl$t_DfHڶCa2F&6DEtDAcSIBOTpcozTVtG}q G]ppDIqW97HqTdH$ Ir)D)IĆU2sPsJ$/stuKwtCELY)M5M,YMהMW7[b:j'qGNyvvrvQON|瘔 x6rw4OiOtIw]4@PAyUQQsgWR#5QLyL|9vZYքMI[$)p'NiOwo ٙ}8z'T 9ܵ* x9Q)yUyNQ$enXRR9z17S;0BtS˩SSjTBiT։!ީݹ}UžɻbyV ~Y9W+29^Y^"RjEzNX $zr%%Z!*'!ZEX'Z[b+\9X([,ia2\+U7*"]B8F,HZ¤EX#a= "JV06k0m`DrZataFC览Z2!2yją*/.h79SiB2JdJ7z7hc9loLp,sLu8jy{=} ȁ,Ȁ쫺>hs8Ȏ~SCj=xjۊ>|XjɏJ89Z9zʡ2|Zl 6nK^[m{m!#˾ADpD{Jp9i_8uEiFGI ܲ3q5qcQԯtĸP}RyiR_y'9gS= mQ9r|t-y׳;}]8{mV}V!2λ~л"WMxٚ j$* =;Z %5hs۽ȍ(1:̣L7@q DXU,m^܅^./(O-JTHå5x5 Sn`Ħ߂ .}JT-6QJc[_>f*oad.fiqVsO5f/O9oɯ˟8;@5\ Iɢ3SY^ *c\vh2j^mq1\@B >QD]X#K q@ď$(,bR@$8C!8pP( (TJ(@GU 1^ &N.ņ~VLA aXvXpW.XgӚe\}bMHF!L0bŌ_ `̝a !@tH@F :_hȉ ( CF=8!^ In@Bp(P(vhNb(H("() NA8+N #dTdQ,8 E`lߛFQÑ l0; aO r"BRI&|(42KԆ00.63!Faa4# @(@$DO9;o$~;N: XF-@xu 002@ <&l5$L<Lk( ~0" =9^4QB>ݢx[$ V[";kvۅ6q%" b( u?kW[x^w߱w^^0b; tafm^N-U-T V8aQKur!B B@ˢ.rc9PShj8!P:C&!zj -½ ZZ'G,h(a7I AN: ?q/(^P0ҋ xPB3߼s'\n$.[W$݄3iܨb+MV9颏y_怃eA|ahha RȂDhsP*8|$66kB lмG*?AiĞc>"8i9" Ă6 { :dв)7@ MBP`!\C6)DK"%F ε6d`m@44G0spED{BI3(Z}0cո,M l8G:юYG>яd <ҐDd"HF6etd$%9IJVҒĤCw@ G 6f< XRI B;-$ `8L4 9v E1c{T2Аdf ?ÑLf^ǙДi@& ɡo&Iܡ,ˆR{p/t1$#)oTd&v2WJV*->% b'<#lcEa 1Jޱ\%.!>\y^pLMblĘ?)2mT{U27ydl3D8v8Ǎg\!A>r'GEr/y#r7yuMvR @4o#"H+_KdlPf^.(Dۑ i3)~}!a&ers7 s]T:wRA|g JxC4J GIЖġIO`eTVȵS]cNS0.:iӤR7S{ZːOMxTƪ $Y-8W;(c=NAjE:25lu4ʧq2^]>krt(3qX:E,Ҭ(в#R2b jY-Ɠ!2*-,! -+-%51)3#ڴ4ӓ.@.*:N#PE!?*SU€/J2-o3/*:B ʒ10Hb# k  !2, 3T%B s171cy51ۘq9CU"21+Z2i2Y)5*ɲ!@01U)E4#5c38q383 H@;S4=) CTΦNܠ㣴*˳و>{A+K;YZ+.Xhx?6 EҿKj$M#:a# |@t-ւ}@B|Q ʝSy(AAy'P. A/\#|$ZGM //Ә.D0 C#5D3Cm0w0=C>C9 C9SCs?t1΃1!D"]< [#JϩR>L,c'- ??!++5m+qKIȲ 2!)߅%K5"Qd͑2aނ-A@-5*ABL=As..DiL,J2b%9!T1VZJփ2Mޝ8x,P0-]0_%4#9eC4<SoB}>CB=>4 TQ#?l1aTAtTTñQӱQ1*ԶԮQĦHģIUR2V<;"-庲, ԭ  4h)4Rf4l?3VdEklfFjFmI^pb%WNWt%suQ3P$걞xmyG \~||6X5"V0ɤ l#cxe 8ޭ# YXvYəT鍽IdI 5:#J ʖUuAJ]Jm8v-9< (8`摁/`H̫$#>&6VfkN붆븖]R2%lkK);&^H[XP' ([I[m\yM;\Ϥ,ܹ\qlK#T\ @*ӵTϵ]^ߌ::!x$!ہOXE"^]ܳNbt^^L$2EOh%^OOO&5(7DKl-+se}9 Ŷh<ppw.2Dt pQ=aMaQRAs!]a$-%Ej/ěuRx[DfGB)v/%b[,vB(H0.rPI)[?AcVβe#Nf8fW4g$EjifVhNbjfkVlViku`g54q,g!:gQgPcgJmGSgTgHJG5wP8Yh,} JzQh|@HowâU7FiؔFɑF钮ɐm~!u4ٞiޝ^ixx"nʇ{ʜ9j:zx뙷yy'zLR:ݔml)lžhk[ɾ֦=;ʞ̯LlDC$m1Bޮ\\bχm@1]c\]h]]N=nn^nnШϧ攮Zo _& q_o(PO}(E<_`p5 A f_ rq=qFWq p4RAA f!1B  8"Ŋ/b̨q.`0l1A#6t1Ahb HdP,b"5.^)oBB1In,0d(u+׮^X!Ey4’,۶]͒Zv^c .x/` # Vq_ɖb=;@h,+ҰAL;Nʍ[dĖ%*mG# !n@DYWLAU.du3b 'Äwj!z<HwZ aBE` ADBE} 1q(ug؇FP *!w#%F^T3X]V6#>9Z|$wC NN}10 0SaɑF[{FvGpebTq  C0`6"D'X_;LB`C'0hS@?Dܠĥprp ) AP(Z,Fʪ =jaBD8 E-a p-|r䚋nny J%5 l%*?蠫~A@aMi_1l^ W@S ! 40U#3O̒|;ܳwC]G#K34DA;SS]Wc]A_c]6AA GAs0n yV)EVPV6f#d`܁=yi^Fkx@ѸJ>:CtzҩQYc eUC=QJX:d[I<."|T$g $ v$DCܰ ' CCJͽ'?؁ ?J z;Ng`W?TR D>U4 Zt =H4!l"{`S"1 kB.}ASĔ4QKr1(Lw(T@#BOp((2 p@OxAǭE7t"p t<뎰aBp?$ (Ro`  &h& : @O"M` <%BHrsH;aH H0>hLDc&hĀ "ا6j^3оiMQҒ :!R\{ 2kwJAdA|S.P@ +D&(P  Qd'GBĂMLfR@'>df31B6a"PEHP@&4 NpCʟ G9 .KZR4!g( 0]lULjd5bπfigv&6m"iv`N %q 9as}'<)yD=O} CBhHR.QJAElꔧN0GKXPhk`KudyK(n"PdE&rnіt#"GQu"aH=.Ѭ>AIJT<;;O "n$fM~ ;FIOQA =O:pe)ilRÔ$)P Tꕦ=`;!$&0@B\\4tSpnEw6 )>hb]+׹eqI^W_:"x0$j"baYYT8tuq\)YkN/Y#> `Yϊ6VήEC:W˳+mKc:Ӛ(O:Ԣ5GR:ժ^5[M% BgNp b)Xdv5E:gqk=I[tk`:u;۪c]f7j}N17P(D|&vdRKH"r^a'p8"`PxnF33r ?ġer(5aqD QÕh09;V>E+ Oע/IJ^r4 tKce{Tl%R Hm:/IYDATt~<%*LbADOgB_5ϙRqrS'B m^/=:vi4{yO'@ѠU +AeFЌB<mDX%-PQR[gZ{LNpF) `ê\Ja?W:6>c?>c@ @dAb @dB*B2dCjڬe[e@;D ܀ŞVF\DFn]1A}AT۳x$m[ ؎dE|dτћrнN(A @p$?'A%Ci_C(I _P!ujLIUJ]aUEQ`J @@@$A I,PXfUՅxՋL`.f<`hD`Qj] *  z &H]f nnOiT @ܖh\銞}lWXb!!ttȡ "I6uaJw9*gWa̗{We !"""B)4`bmea&Ҙ'JXKƊE$ kEAb(cТ9.ʹb.#˶jY1r8"B#ѕMX5.`lU7v 8Chk l "l6d*l:B?n]RlZZAd[DrKޚ UvQbDHUPJ~lX ̲$O~KNΒҘ 螻MR[P2jUleyOÕQ@-Tx- < fE ^F-f_m fιb%:Ȝ&MQ4~1ffQggvh (EDf}~Rmn{]nrj]UP} HgJPv^wf1Qyz'AϘa/'Ҹ';g{|I~^ o_:D:%P~IU(QD^E&ՄtFV`A(hTi "`ZqpVƏ&` ie)\)6) UHoDpd)H )K i`fݠ~V]O *Gޠ`* R"jt}^jWI±a>nrͧ*j!m"",r#"V1*%N)Y&bkjΫV&.Dh7,٢nYr2k26㗡+Kk0H#VLټ6k7ҙ*8~9bllt6F@3Ll9s:spsEhDښ@@\ȘlFTENۼ L]$lLdvJ4MNllOdJ htA KeG .% A-܆̿ie&sm}%-e'[Z\%ce %޾\cz- M\Y?[=ndFM+^T&3妯mnM^hiBov& knl"m]Au2&p 'qƀq"i/g6sb>0]^ҶzvmW/oф/M@|'j5#0>>HOT_DQEQ舖艦(h Mi~p/vψ"ZF (H`]pr g ow`"c7OwaqGp{41}>{Dqg)E V$EЩi iinsB*yMq_!j;jac*1#_Nw\xqsK I!"32">2"BDDj&$'"Q-3R AIJf#lhF+`,k˶?/3#0 rb٧+<1'M@s2W.d@6J"7VYA77 o#{C+{;+$CS{cBǬUoƵݼ4\E;ErNcHSLF[I̾{J#J#ǴmMkN OO#e .%pQbe V&Au؆UZ-UlMYџ_޼ XVDd 6݂PZXֵb5^%eZ.fb.h.Yao*. Q0nlͮݡni&t+4E~̖) A HR($GA#luv޶v⯧y^opogoWpMqƽ/n:ww0@0F/EmFz_q|EQ0S_O!(JQDTLEUpVm0vpVwpY 0Y `Z18g@8d87^)OxyI8@ )Fzpб#ŏ(Z00bE1fԸb2]:p3b!8 8B $2zt3Q-CL"9X zv<`L@`bŰkNl +AV$Ġ`?*ĸ2dCCLBdDJDܤ"E`DFw$(ĵcW~p0KƄz+|pK%Ԍ ՒNT˳İP# % 82%H - 7S>%TD E Ѱ p# p pFq  gąĐ L h@d%`^ @`\8B3B_"&\ 1,aVl"LLcNWRZqWt j,J&;Nad,Yz fdF[fqT"8QW hCvL ީm( (kV&ˮyLmf".#n|F-foogp p[ -ds> ss~euj\" 4M ; =GvBmF-w }G PT֢֚gzN װz⠱.B\z) @0U} ڐ@$B#z~n Ԯ(g2H:胺(b~^dNn..⾲~0nX4&fLRH&_dNB.v`Ò2"Xv(J \iH$(f S$BiΔP2gʕ`I\`3n r 6Y"O2aJ*3i 0th v! "JT& &DNZ~O'&" <@@1'¥Abb&x`毦n*0/0jAj(.4ooVj>ANT*3$<plz=l`d +P@$I&+;0k?g koDk}kOaKCKvKJvPLLLpL-M(>"E K %Q`T qPO%UP 5QEQQ!Q5R)R-RpR1uS9S=Z@>>Q( 3-7U;q_e"HQ^qQcPZusƌu1pZ`%e1ՌUэQ @hmnꑢ#k1wQ[u""kHdO@`b` q} )` 9Ma!v RԐ".՘8<$2;rVf-[Mڨ 'u'JE>& @\vx`ڍдeߴ*Nj2,g,Nⶶ6hrrR:V222PzXv:Xs23Ng"74'• x hdh7c5AWD6{7N7nS|EZ8ʼn3 9'/Ui: X1J`FSj,Zbsz?yV;"V%t* b"x~ R*[TBC!T|jBB /̏|Ūl'DaD۶7t`8oExd<HfGH!PH%HJI)+h=H^C~FôMKDTMuKX͔eMX N5 _EOO e PK6 k k$J 4S /xX4y $ 9yy-BbHTcUT^"-91jnWsWcWI\zXoXUXXLau&XZ['B[#n\]LL mqtd+" C\@=9aB>Bx)~BH;*'0Ի7ႧԨ;)4 W xCm[S=#w}rdCk~2BwXہT۬EE鉴囃EE8dT#T"tGiFPܛ| L-\xKK3ÓM8NI1CtSOaO=pǗEǗ?_[?ɿXaT@.-Q]\ eWΜmqX}΃_oe<Ё9Лɲ Ȓb 8l G]X%&Hp8!X>(ᣌ+~bǗIl0bΌd`0pC /*]ʴӧPJ˗UA`Ê}Ǭ[~˶Բ1 I͢Gݻ\vEʷ^s +[HQ\LF>BPac8pA#x8js!hJ%]H}K5AT|,x7.ȉ ( CF=8Q In@Bl(P(b‰1;  1@ hȐO@A>4݅W\RE5a("KmR8g:|TZn-bb8]; )F#ЁDFb^{0 }@B[Pj :XK &%i7?PLH5G ,~(`u&А ?cKl@6Ѐ2TD@TRzI0T @E- « 7JCnT$,`!,{N2F-1  PH[vm;z-E'`vG%+U+j v~^@@B9V#U )IEEn0 kn 6Z$ t4t0G0rJCgE "wu CxQJLԨ&A E t 궊fT{+8g}xTaq)[ R>`%M憗 -û4qJpFg3i\G0t_}El ~]9XF=ImI"ɴT4G9G Ca xbB3m!9OI'l/@1Ё)G,f S8i3 Y @}if$j^q7+HVbόl#O":Q l r",KR4QXYVZ*"0w1 axӁ4/LLff—τf4fjzbvimnc.hq8$ҏsTB>K攁 Ѭޥ<+  r0358&~V$ Q'/dGhs07>!12Z*@!xXjS(/LN*lGǹxϻOxOO叁-HFB0߰)?eCʤ,S8|5Wr- ]2q_LaޗȼLݓQRSϏ,( (7?Y0AEmp4BazťA}1WS)}quSvV8%:RWDTdVTI'v"UaUUD>V,_5VeW5[jW!WtFW]E%{%2Xȵ$^]q%^E0EwF4Va[M([_؂E\?R#c(Ve#@2\"T\V$W\F:ZBu.RU&Ip&~&'UyB^r^ oղy10__"`w(C/ ng]+eEF-6^cM)-8V-:.6dccbEXd0VddUb e:bm3)W1aeex3bFf!hjngr6W?SU64EciJ+2f9XDF*ec@Zgko#kD j%j}#lTkkæ8kņ9lSl3϶"m:Cgrmx'ݦ;t";Fn"o%g7Vu&o#qG@@!DUyB)tEGׁ@4C50O>:D=SDUXm8w]xy8pFwwٙE9YyٚF9Yv9Yyșʹٜ9Yyؙڹٝ9Yy虞! ,0=@*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ%B]ʜI͛8sɳϟ@ MӑѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷LKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻF"NS"ȓ+_ܯ\Y@a$7=(xM)I'86eD#DʟOϿA0YbI&P{Lg `%hAi yQhႚXdLͥ,#h"AuB7UaA"&dr#<ҞA0]PF)em0h %P Ġe"!8ap^2$aPIx(N)t$U"A%шA|z^x%ٝ 8q dvF*餔&d_0p)v駠t)_l`ꪬ^ꬴ 0@P 6dp t0;԰AjV 娝H*@;LB"  ܒ@6?$AH@  ao,lZ6 ,A1V 10 & A&d ;  =pBA3| a4 x7Ӭz"dڐ ?iJ#!AW?+B 6tpT@3 L@ J4A6 '٨,b4Dn @#,ͺJ~Bg GءCPDF$ !ML+n/6 9|/ˁ>v4t1:A8ċ I${AkJ|aP BC}/N* `e'! E'8RG,z GHB(LO, ͦfH8̡^U)H"BP *Z#:;@@ k#4 2Az,7^hޘ!(gD8Fj4O86_f0|؀`a|a2HE` GIƩ0`k` θ0`Ap0` ;@2v]Q%An˥җ f\X! 306Fڀ *I+ X~ӝ WʊZtAqRArX2 UȂ 7AHL^  0I B)oe/Iҕե0%LӞ Ͼ@% , x3ТLS 4 ;(tV9 p l)GU JP .-mk2_=\`$dy[ hlT N0>Vm,e-Ri-ڬr TUpSTc A sUB`_Tu`kQu$Hy

IJ@JK&$'">?;&8WDY)'&;;8mL [Fd:$d= PL!IH4&6A'>Pn(0s);qFmmE;]0 /M64H2B$ٶ 2A#1N;wĊ&tШu,B^( s^~t@` !ː$"AJ]Z> 9SRL0ǎ!1!ͼrO9@<A(Ghh& 6F(Vhfv ($h(,\0(4h8<˽H@i$F&L6PF)TViXf\veH~)dihlp)tix|矀*蠄j衈&袌z_~nVziR`sD&n0ě@< xc=D rZ*D,ZBTa:To>aVkfv!,!9P"C$JlXȰÇ#JHŋ|A!Ǐ CIɓ(S\ɲ˗0cʜI͛!l1f@[6&ѣH*]ʴӧPJ:q؁S Ĝ㵬ٳhӪ]˶۩6X%|ޜaC z LÈGK{H(nYǘɘ3k̹bصBf^ͺװc˞M۸sͻ Nȓ+_μЗ@$`F~ѡC`I͋w!t ` Qho8DCQPQx $aq8ؐ ] }c4hBi xxQ < Ex 76qqhƇl#HB [((~IJd;\Yi !lуؗṩ馂ɩL?D!@0^6U CRBuAei6lY>R2?pAQB2!$ 6~$pC9xb*l0gw 7G,Wlgw vjce lD wMp|2pxjz 0P&` l@1D%a;zZs')= 0pi!Ct`w>/)&$FFdE '(θ p!C&DtPWܤ\ ^яUA]DQCk|9} B 6tAI`C(7Ѕ˚=oL@*:t@;|D,jw58{^r9/T` m,[ۚ  g Pr o "Y$A@ -mA (@28g@ H"HL1AjH1h$ 4ԪBqT!>0>8 6 (H .\ !v0 `3J(G! <2 0vP7@pC*ґpcs ؂mM 9J=  .e! *tC|V$LfB)IN8Ёa){(X'w5N#РAFkz'\rޱD(Bt EUI;H`Yf~Q4tBy0T u3j' n)Nz5-"ǥ-"@;48")(a= rq>/ \i H@[: %X ahxrHEf7+1+[Vhr)+<jWֺlgK6@N cv#L:W@3B/+'OzNv < I@9ʄ^%QMOBIt5Gj1B@<5*cQi )H\3?%-U\xR,@X@jU3% 5 @RQL鉐bPZ4x`Px!d[zz뱑ͤܵLh5|ʂ 4jK0h@&`%Mj[ζnMrNvMzη~NO;'N[ϸ7{ GN(OW0gN8Ϲw@ЇNHOҗ;PԧN[XϺַ{`NhOpNxϻOO;񐏼'O[ϼ7{GOқOWֻgOϽwOO;ЏO[Ͼ{OOOϿ8Xx ؀8Xx؁ "8$X&x(*,؂.0284X6x8:<؃>@B8DXFxHJL؄NPR8TXVxXZ\؅^`b8dXfxhjl؆npr8tXvxxz|؇~8Xx؈8Xx؉8Xx؊8Xx؋8XxȘʸ،8Xxؘڸ؍8Xx蘎긎؎8Xx؏9Yy ِ9Yyّ "9$Y&y(*,ْ.0294Y6y8:<ٓ>@B9DYFyHJLٔNPR9TYVyXZ\ٕ^`b9dYfyhjlٖnpr9tYvyxz|ٗ~9Yy٘9Yyٙ9Yyٚ9Yyٛ9Yyș)9Yyiy\ٝn9Fn噞ٞ9Yyٟ:Zz ڠ:Zzڡ ":|Y&z(*,ڢ.02:4Z6z8:<ڣ>@B:DZFzHJLڤNPR:TZVzXZ\ڥ^ p5f%dZvnFfJ(Gp6=z:Dq%2PC@t0YO'`U5z@`"YLQ400mz 7q D$Z:@&0$J3vi oaji!L,!( ͆1;XȰÇ#JHŋǏ CIɓ(S\ɲ˗0cʜI͛!8džB*]ʴӧPJJU˜a%թGJٳhӪ]˶,ph L7߿ L,cCO5Y$Ș3k̹gBԹ3I391ͺװc˞M۸sͻ Nȓ+_μУ'a!1na"r?z 0ʎB.ο,i@ 8BU_n"@&00`!WDD9p000 T((_6tP"p2`I(a?$L6C=t]Qv Ve p !!$qC?d@B` EP%wH!@B %E I@F @*0'Ofiq\祧[:& L Q6]aEakї_'ZJܗ7C B-p ! a PDFdP G?pP;@{k$`8[XlEp9gvǦQAfrh\4T Dː>0 lF(.4rG@6@dh`4DN+p-tmx|߀.u Hq4(2 Z5DUÕD2d~ .aq{ݵbA[^] a%8T82h9AYInF9eAl:@ B=@qng&oƹxzC}0B(HIR2S8` |iLx~`$*V s%mg$rV%-jY!ro+?09qr]]\,E$l'`3AFÅ a)f1iN"x2 @4& _4 6kg=:45hH ҚDmjUZhLedAmj#BzZ̥.w^ 0/hD>j3" v&ٜD:w8X1IΧ%0vbΝhBrGWB;Lx :^fTHG<t!IĮF:uR B`P/gC&"o}hd~pyt<.~x L|T&UKmP֤N#Y.TUD`@(B|pӢvp!2tu.Y.ᴪ1 lI.G4@0 U܀xK{b`\P2 xX)lg`C68cLhnmTt/s7[x/a˜I1N>I5a\xype`В|Kͯ~_t :`xfQ&FR\6ѼpRD0.D Fݎ3El\>񄐄pY@C OED0:BF೭kA}Oі#G";.(K^H"h H.@1_L@ C:@@F,#/sYI7ES#'pSc\눭|ڭXLH^H (rejڡ:T䔡Ư毈XkWl K (=#%;k!#%ˋ@h68O1{6k9?>K x{IKD8'YJDgRT 5kW{,ː_ la;lsiKl n /#02I`x+z u[wׁ KkΌNYP]˸"@(ֹg PgikiPnGzԘkP{\Dۛd I3fn$pŗ;ܙYkY  ߻ȥPLGþgyY0QNqg6glf@LdLq@9#! 1S dQ?r8s:'.ztZ!B1S7AJN,vSb\y{;7Pj dwwsSǁ yGdžǦdfJ vYȾ7lrڣي0zz' C i1\X稇~\ YBh˸hFT(ȪqRQԒɼͬռ|٬D؜~zEئ鬭[^]K6LA uhAl`%VZhگ ݈8Tix+.$;,͊825mѲx>]m܈ qVE\7ENݎ/MI-Z0S;\D8d嵿FZVQNpnp}:zׄm}l1{:؊+D[ـr5Ѿv;ڏD ApY#ې4޴헖]nn;mݺ̫]ĭk՛ !-]ܝvNH=kޢ+MY6 vߑA~@5fQQqGT!j!'W@(( 9E2@)d N Q!ÍXd "F%̌Kv9D܀2;'paqB;d%(Dc FŎ%[֬aA i69> q]yǺ]Vmܹu&\8!1LD O\b\ϗ7]G#hdCyFp2J9w"T%Nsɒb‰+QXQ}o׋ȉ ( CF=8=%In@BBr(XrbF &(zH%4.dH' 0"nH"న!n 7Ƞ> J@8B[Hc& 4"Y2%"(# I4&ܲK `,sHM'X !:^AcQ.VC0B9o9z @E§-L!~\ T  h X*^Xa5 `!*Il(hj@ho`2Z qh:A ^rWؕK= E@%,׵f^شc(p87݉O#" ,XcE7d*8cMK-bvM_ շؒUvH {٥uo-Vm^D1z!$3ɍ@RH4j8ܰHkadm5 8#(jo:B xP¨{@6#FБW!zkH("cwJuM( @0[}u#d=CBK-^xމx+|/zîf.Xv0ADo\ f;ifl?A c_ 9R `pr#@E?)(6/ H4 -A,IAvP0#Ih 0jYd .tu8 D"=]h<&Rx+)lUb8/'bYrF,aAHͦ6LH@6d!s?\ !(K hõ]$e)u6/0Te+]JXRe-myK\Re/}K`S$f1yLd&Sdf3i@ K%vI+X$ ``R: $U&rgĢDA_:9J}%?Sfʀ DadЅe|%D*x iwE{yPԥ%$b@ afB<'1qҐGLp(0i$%HY̤&7qvғe(a R@E*T Vӯ u[CV%|9`L)82SMZ3U2+i^5ԩ ;v7DSM`S G9qtCxYtϥȃ6'RϟL 1AP.D M DajR(F3э#(xY2TNS2WJUtKi&.yIMlStᤥ즉ݽwKIO|iG(*}!M&GQJ~Ԧ:PaiKS\+YdiծzJ֝ٲhMZֶuǑc\,2xsc~a%Y?ldC؍M鲓ml+K2 d2^YaL<ho߂j=ޖ|e;[|[62mpƢu #BQwpCg8ANrɛ^UM9s.FG7t޸vծv]r;Qz ,Q7zb:!$4:|S׾pih 쇿 ° #%@B*P"!bDTp19$9p"xBFqV a(8KvCJFD7O]щŭJg\"X2ѕtlC-VrdHXp6DIor,pg$8IO(yJ^"KgzӝtG]Szխ~ug][z׽u]_W h Io37`YY)w, ^Bj 4;3 x<әƳ3(̻|B<#=K(Z+΃NXΆz%%ӣͼHP7|==нșCc*[C哪狾>ؾ+\+ KPQQP;QX?WڿAB˘i, @"$zH@#X@TЪъ D- c[i--zA ɯ.T\AAQI)aB)Z#T%'Ԯ()|A>.\/0Aas3DEYz8@%PkC90A_)D-:Db1E0GH0J41{{N\1|D+E#1"#bTh%ld3m39:W<+4 ?%BGB{HȜ|p۱Xؑ؋X لEYHi#c Y uYCg47t""\UZm;Z%yw3!9mʧ}ZĹ#:lۯ[Ģ6K۴[4jpKiujtuMMmZ\0LEOMtZ\[kkkkkkll.l]M 'Wݱp &cc) Nm,%u^d;}z^O^ʻN=[- f|,НO4 ]^cQP!Pm[P` & ?&`%5~Qna<@Qr"fH b b #: F&~-Y!d"0cy/"%855W&c7&39q,-tBB`CT&E}aAN5CDTdS]p`D$fOΰ?{i1 / UU b%XnEcedձe6^6ekuV_8V's%mFd*s9Fre|fϡfrdtWx%yEz ;ÛlNg9O5 g#1/  H/[gM55OX[_5%%Y vKvcRI?YbSDPpQh V2Biv6T !9 nP1%"{[8%U˨6XjJ.vL+LMk4lѴkZy/y?yOy_yoyyyF;Mc;va&P4xp;@^].(#m%ۊ[0Ċ)r BƎ!h%̚36~ybgʖ1o.]:CPM?j֮a!qn-a FN02ZS'U" Z(r#0oa_#@$ Q0]sC=QIP$`W=4D*p@[CT1DUC[D$ P&  ADm7dQ.QUđ&A  H*YPJ9%uU[[(D]2)Qgm :s\0֝Q(tcn@FgJBz 7h |nqAܠDрM@B_)dћ CJ`hMrE2\S_T2@ <ĦkpCڅ 'X[j!6@D*++/v/0a <[#š,T&]iAGFB BW*) E5dY\a" QC}4IWT @QC7TEVHd"$])F^>QamkBT4z97oYn:E֯` 0Q_ێ{C 15v"sQE#f QR:dm+IPP'`<n¿h"5Q H0;[_~+A\r~PD Ti̓A(Bf̈́C @7\C"6a 7Bdk 9BF03|dRp` ->%Lp|TF QPpnR,@Awd7Jr0!I@"_@4@[zĀ-`F6 |G iS CTr@XuM%faLEP |eM%0IL_` 9C!D! zHDב$&AH :D&4 Nz%\#R➧DAV!%';9KZҖs]pgJ>б 5Le.5f2)iFݼ&6IsӚ70L8:u;FH(܀=̔|# t#6Kț Y &! B=P()D#*-(F3эrI(Hm"Ԥ'EikҚTXi5aS5}ɱn$]ӞlVKB$pjQbꤘj S?ThSVճ͊6UvE2 XڕM-dPE-ka▷\rm5/jW˵AyK|0I [oƼ1A2d^[.讕ehv\Ixgr4!h0ô8&>1S.~1c,Ӹ61s>^'0 l`-֬gl %q\Ro8b܂H(.vy"[kwOx3;;^׼m2E|e` J`$_ ~C%ϋSx?,b@io2a&@p}I$0v0f) s(Dc,Ě(7TTv8m^;ٖ׎%MPDقhE` -F2h4`(P0 'kܱ=%H$Dp%Q @42 A@(&hPT)AlYe,isUr8ΉKg9Z3ee"=CSנ)MjZ]&AN{Gpb y:9̤{ek-0Ki ?Bb%] H8 V*-ٲr: @CB1)Jo FZ[Ly㛗~>ٍK5t9OTWBCks|RʩpϔUzt` ' wX#4ҞU"n% & X[ԫ|7BNT fcKf)XkɰmӛIfߑTVg] d tהiW%ʢk)ɖWqU< lMp]ث@PqM 0Wt5[TDpA lJ[ڮ v <ڸWK|K{5 zW؞}Q~}ab nXLA˰@IXpL f؆Ř zMM!""&"."#6#>"$F$N"%V%^"&f&nb@@XiEDXE"DlDt]DMİMęUM/юϟ}a 0# 0M0K,ZE*.Zo,(_\˫,\ZQϨ@PeZS? TXQEG!GPiMDEd X^`hhg\HfհnmBFNyNOM )1XEA HVW=XM\Du{#__AVΟ!`ZI% XVFc%( hAP`_^j VlaJu tKcjM  Jp%W 6D `nBh!$ &FBHazU!b j|~}M :wBiBװX JءaAP "'ip੝))**&.y"(bd ԀcQ(F$Σ:MN\DdDlN`q c11Ι]@BYY45:*6})##(+8yj*)9ЂEPŚBB>d:F~EJeq$Q[VdG~G*QHHIa`JEK[LMd@N\e % QNl( I# $QUfRpR]x'RȕRpWYe+Y6өͥe\S[YH^V^~lY`j9_ץة7aJ=% kո>I&Oe]AMbZ[\]d^lE]h&Fڸ&jd^pk֦穔鱔'㦞lggOErz sVtt]vjg`@8Hx$Q`'\mk؈W__П`MZB("(f=(&fon j^t~ mo(մ *WXቦ(z(\בjW\KLx׹MRfiZ𔎡fi^qpiǴ!ȼ $ZZX2*i0011'/z˜@ <[XE$wi\ jĩ*//bY*qЪ2>&cHUkkf0p@8~g9>+ ZDKzgZ.MK \P۠$ޫ$4$[MͫR$F,k*C$y$ߕvJ6,K6d@A` t@~u5!%3"5#E$}&M'( &Ͳ͒Y%]eWlYZ"-V33e%%i RV-ץ$9i`]׎@@ @c&dƝ?mVlXpGOḘBmC=J_F1.l.睔mFpRRSZ.`.mntv|퍇btS{ވ^gBH}':쎧UY_`]_fЕ&U< byoac g5b/c:fEv V֔/2цj< :ŽL" W Z!u= NwwWLT8)[a~)IRiztc)uwprH0a) )2${7}׷}7~~77wbH Q"_*W*BW,,J-ꚗE.Jk1"8ريYb0Z 0bvZAJ%[<_飭Z9a)3U$rr2ʲ.k/H>0W cm1!*\ Ha,6!77b51e}T?V ʡV<ے4-l=AA'mXϢ%%e[ _/D/6fHl:]a6HKDI-sNfݩe%fn}Ah.P&=]uI)nJ g6uN&S{ROnM{o6q\enqrznWX?XaSm6'uRZ.zN|:57ݧ~MaKb_M+6Y:B(^oedcjvy>4hz|yhmv V/rv;a i NfW rs{)-1wr_pv^?wuotw wwаy i ){ w(>7?>GO>W_>gxbK+[ ^1Q ; 'cxYOqS6r7I"W"y#G#Ok$#d\m'yOMkSMOM,ЙgWMK迲 >B 9rp B)Vx#' e]XȄ dI1ĕ(JH 0"cPC %Y`!q#=8q#In@B:PH,!qGMgT(bchD,"Өl9kq(rdAʗU`3brh7clgУY.M #:CWZ:ڷs}2pٴ7<FPy^b R{!Vs$1I+e: 1X"X;.` hl !# h8 j+ت7$:`p!$Rj?_域ߟt@ 03:#c&8A$X!ҁ "kC`0RA~ZA2@0?C4p"?{( D8h#&KDHD%oP*ί[OvX KH (ht4O?H -ZKB38jq"B?*  ` H79K~?d&"JXNgJR2qT%+! @ T-K2&lK]O*G'IM 1#IHJrq%/Lt*Ê}"+X%1Z w2`O2ȅ.v^Ȫ0ϷpF5(Pәh5YppތO9!qLJ2|БucF;TcLlyO|S4%?brԐ $!](C ␇@"h#P&rE/ S#\*G;ҐPI)ID0$PJz]R=9c*ĺt>;IO|S/ꪊ:YJMʴ,2Uՙy T2#:'A2dOgU*W E(h!(GRYb(8`-li[Vc^"wUuw|W ldػ0W K_.cJSle-x3̬f7:MhDãҐEmj8Td kYZ6li[[ۚ]8xb9#_rC.Vəa2霌:nt胝h>nͳ7;&<Cs2 =(փ ug?Ё ]hCщVhG?ґ  `XmjNc/@v80uD؊%0#.D w 0C!l-!p>58Y1L<(eq]pRD֐A N<ꑏAJx|F2 $%-InT' ?[2\%3S*kf1uLet1{KK\߯YM/ R[HCBu}< &AhqoGu oy2 %WIx+Abи`.Tj#1GwEѦv4. ESQ_F*MIҐ9s/IRt:չNp<&'{3T ><'~cBK 9UMYފBm>K(P )bV.F!JGY]iM?J}^WᏯlJd/Y:Mm^o;)cE_g  RKvSԧvB`^`{ҊŕdvEXKlfkZZx+[[ꇼj _g`Gƽ&e֫Ї0O|L&ORL`F LizĀ& lÖ>,rGĒL\$I&|lmԆm8mnitloN|ǎL˚t u,B',vˮ)v>ply8w,zQL.Q{L~4;?CQGKOSQW[_+€0G@8>".HuBVRX"׈׆pM{٦͈|ȋ &&"cۺ-@ɶLwh))֨ވqm*)mL ~n&di Q6n:n8B<<"GR\ɳ1 hX^bNf%hpt.L8 M&ϞNpʟ$B'-../"* }N1Σ~n{nヌ-3#j.D|dӨ#,?j"$ *FLO" @L!PXEdofĭnBr2G}~/HodOd{ﱤﯜOM粰OdD&S:&t*>/V`d F8 [Oze*KТ&PY+P6G\+]HPN0AE0@b`PcȪ|hpxdn@e#eFh&{`šF Újj g$"p3` g  y t|q0pHlp,9t Itt |L;vX,zgxxq"y&qzcQN'NOTOOOPUPP PQj12jĈrₚʚ:XTH-Y}11غlt-G }^ } f(4 h`H'-mMt g S=KH& !m!!!~$r"E2IG\72:2%K2$%#$#i%M%&F&1_`.$Ҝt'ypjbl )2b麣))^e-n*Jrl$0Ɏ~IJ4Β0,F-fd|C0 TF^z&"9uoJxDHc-*4gh 5'D}\Jb6nS7Ooqo79χ>kky9O3Da+I{OϷ/n:` HŹ0>k S?9@Ӽ@ԾTY7x|^п$|(/B `r:T'C4HD`/Uy0͜0Lp "FŲP^ e nn0oΐ~ܰHKFI,g1Jʤ\ˇKgKO U dՔyؔht4QcN'O[؅_cXgk؆osXg+M0'b(ڱ` 7@WČZ@"N"XO"}HT[zxUqSٔ-Vku|p}8\2y(BԊ!Q 1rYQJ ]@ b-踏ZȠ/L\`4Hv`}\)]A"Õ#n{&^ٕ|+$_{by䤉%/|U&V rn6)(/c Y)$nh $,th@* v }T,R{f9{⒥v.gV-גa|V{ B0#0J.115/ : p2$kADH2b 8)I .PKD˥@B4I@9n%6*o  omo'+pop7Z6zN 8$qgq qG W$W1TsM-U>7E^~ _Znf#ZYb U]+,1 07 "/֡BCT1DE0_UP1(%alj Gx2׃i̱ ^e&sUGgF䧥 :P?@B8$M;u&A tVb g6cSwǝ7{w7/:¼\)c 2a 70&0(\4hC5W_)da["9(C>Fَ! BH`{TLP`D  D@`CȐchD䰝*?@tJ@*?`Ilp 4Ё)hA jpLy`'HBHA :Q::y[_w'LƗ!%A7+2W(JrR+jq\0qd,ψ4qll8qt<)A TXa"7t`B2@EPIT)DA nGh@RFYڒ"*MWS|eHLd[%.Auї:PܡLc+v4P-@ .btD oW]6f7@b(!D*rM*xAv?xMW Jl3)Q8ʇ1.g W2E,jE/""H3|-ra7T2]ԧ HӠF`G? ֦ o|@r{:Nd BI28NaYvJ znBJd]W0UCV 'et 8j "J@Ft*}E&PC, Qd %+ \՝,e+v\!@f4㜗(hAk 0يRAx,kB(`Ap2R&`-')춹mxs\(6NoD8>q;t™0E'U%,isc8`)$4D;$Cw߆z DB^- ?)C@:,1* j!&3PzR<@'D.+¼Mo~sq-|a 훊f"_!v!w/P2>ӥxO꾉iaHQ rhS[&Gvlv@V"H7,-RUWe[i_XbV!Vn[%sUW:IAXU\XsJX#(E!ʁ#Y-X/Ȣ'Y\DUY[䞵mbd5@aH]u'yB`ubB]Յ9PfI^V5W,Q_*2nև-,Hv86.X8`(v/;!V%&Ob b;Q6e!p1)7=c8d*Udd9p(*UBXeNe`&fd>q6ggl gᘎʫH7戎iڎ88hi8S[F:J`:d&V"aƆlyƔT³k)@D@FlOvm6nCG2 o붓V Pד!okE BFE }:C%9qVYsX#k%wr)'GcT39;˳=? A+CKEkGCHGKgė9I4v,lis9IKvvwKzǙ8EELiF.x}/IB$g@ '% 7=Cp;'#EPTùOdUPWpv&sm ik'܉RϧR.E}AyܗS~1~T~P%U~ Xd'VuVMO7%P`m`;cd#W|廣W:o6[Ӧd/!؁5 $24 -0E7JVD7h>ʏBqrEx8Dž/b8PIR\Ņإ,!cIEr$^/@:;SS=0"x,zc<{jik $ &D}+-p-NI# GGs8=!?m;!P4gXFHEo!/#O%o'\ w^ wfRR9h6X+HJ1x ze g+MיiJkmox4xukx8mqyqa)JO5NGN}/񹥷dOc[k0QeAtqβm[;\@hqRȟAp;N $AD~9-5oa$Aǎ;A! Z` .U݌  #Hz0P.b w(>+쪬 $:@MЁ E2Pv㌽#$ 4T0H)<I%t)<2̀ ؒ. s2L359*N)c7.XhN"%^ArȍL)vC /@x"BB򔃒k"&H!Ps@OO PbHpVG V=}ա`@/" ` 4_9xTpM!Nu956Du(DA׶G @`T >ل ~&>m,ƘӍ;dD&'e+(:xؐD8_^iTJ:YkE95+x8zh#8Z +F V5IF;4'Bv;n离n;oo1`#@| |-C.o%4`b`,\PeC$2HB,w^ QCZdR0D )Һ;8 OЂ(G!DF#)96h+‒t(FA^3MB#Q ԻE0 e7BI^FՄ5a?c$_ ଺FpQ-PT9ЩuCt.yTIvmRqAz``HCxJ1yړtD`4 @Ph<ԵnWh[T,=)J|S$mN` &4J^S~drħfפ.DT\V:4GA*;T+3MuS┧@%2XقU[jWՊU , *>(2 δډ%bip:+ cS?Q M#@8@HȬjPDCњ2Pժ#( g#2RIA0.-.Ϝꪁ 0<'  4#|R%$BB$!& *A,0+,B7ů-\X\N"ë9: ۭ {9vQ>?DsS91jiDܧiD)x%2$A; c pp9L|QLEMUWaEՑY;#V`5VXYE1d 84]L^d4@iFI5cKLs q/`p5fDxuyz{|}~؀؁q$(UXڱz1U فX$7ӠHGsX Yl4ſQY,H|7I)Dl "f2(](蠸S |l>zI 1r*B.`ˣY'ʨ9(rʰt :9ˮ95ˢ+ˣ;K#í5:$Z (#/ ^BZLlǼ\Lp!ЕbRadrLZ Иh4T"@(ӣMش͛ڼ✨*}^e= TD=H餩Ι=>4 u53*㬥rϧO_XǓ,N*B+7։MY*(4p6apZPP e,`?տ?2_ -  <"!C1 9#-A=#.%%.b=E .V}4m%S+ $dS96~S7.04C۷}ꛛ[jʽ%[ܿI5\Bܸd\{\ KA-8K =\ݷ;;n&jM$>L͙bM^˼U;MMԋ^͇^,mݼ^;><\D2_mL= Ȃ`θROJQhP+n#8,ݾ<\ll %P#0ж    Q,,lQ&-@᳸l %4b"Eb#e%ή%]#D(. +.-R/S12#,3M:S9n,c(|3S.=>^=c) #dhCMAd8TdL>1DT?M3;Ý1S TUeMWUUZ}[DQee\eee9)E]>t1eqVi]D3lEg~Q[0WN+ױAWueu^ƶ15UGVwWXYZ[\X31Xv(~^ eG  5΀踱vlOQ臎YdHٷȏ^N3 Xd8ni y'Ȭxڮ5ܱ-aꩤ9U*t[x۪˫yjL@KI/AjK+kFR\fͺdk ; X U]*`! wA̼\c;م̸SKd]~^NfNl(NN&؞=&kڞK'Ί !Oe<*p雪؂߬4`~*^v`ʉsoPoկr}.a<-_ 3p@ƎGb)VRpM Oo ؒ-gN0Wc7rq3cP l Q~T΢N!U2 lCE«onu쪳k-$dug5'4Vyw s~xz)L&ő?CgTKGtɅ:dQE?$P`'(ʩIf*kT\B>$i: >`Z/ +d.C@G @l[K4[{a cס~jreQWDD~Sy aB]F6'&OE0QK=p@1B7D2Bfe `fP5mDPnPqB q$P+7+*`.7nxc`: TIl/B.9r^44#5fu (B IL-I8}s @b$0 sq F<`` 4d6P~.u4a a1U9G_}xB{ F@ $ ^зM@!A#APD(hA n0z PJ? 806*da\X{3F-Ԩ~.)C;@ON5'Fg>#HP z0* jI%)JqZz$(HpӨE.Zk$BР^c`@`^ F6bj @F(hR2/Zy6Q+R[Re/k)5p#4If:%w N8Zr\ =)b FDya ⒫e{_3*DfcH%Zw r`\~@9ؠ3}k6'F Eu:qNB0J39O4!}9m>3Q,>0@LJ@%aG*0#R5Z*Wկ5b+Yjֳ5j]+[ַ5r$(I !wE ZX#^ЄiOBZ6Mq;MVOZ*ԢN:D 2R,gkԨ#<*Ri.YzUT!dVK]x-XJe,ls7יXz!% ,U v>`a*uE/vaG4^x9 b"E_e|_%_bis5\y duu-oq'q\yjƦLXS!I֬v=ZxSשnԢhp@ҳL*).)Jx,F1f$G POy DQ՚Թ~GXS>=ko>={?_M]W1I!F.vYŦ_,B0qIkYΎ8F?ԠH(Z Jʿg*ԧۂn r׭䔴b(s9B Fy%vYuev=waxWVal z}9 ר~)L} B$ `X89uwELLؘqBP!B@ >ߞ%XԨa mMt \L% X%5=Y4 F ▉`! 3NՙVOHaQ Y@Q̏tpBũڪګњDZ q4*[ MEA[17Z3 PeĵшжQuȷ]O5-*ۻQ &`5ݾᑿI tJQE55ќ0eǑ+},EZdɝA\0i\J\\͡\!SF(ӌܜuyх6-]'nS88SbX \S;-`JK&7<=;E-0dP&';C &1P)'& 2I@=>W= R&&H4&L!I7=599*9:A$ fQFQ0!!#~t1 $25AFŇ$BB d(Xr%? @r^*P;j!# 8z $5G b$VChCP8rظAP`0hqTܑ?pcĎ#8A9L`c^B+CѨS !,! ӡ!LP6।'*fCIFB0*/b_#F 6jP `A `[R#(A=JXɭ | @8EME:BG<:YYx &&9) Bx 5g5[ `CUZھLs^0 % Z6k )DπMBЈNF;ѐ'MJ[Ҙδ7N{ӠGMRԨNWVհgMZָεw^MbNf;ЎMj[ζn{MrNvMzη~NO;'N[ϸ7{ GN(OW0gN8Ϲw@ЇNHOҗ;PԧN[XϺַ{`NhOpNxϻOO;񐏼'O[ϼ7{GOқOWֻgOϽwOO;ЏO[Ͼ{OOOϿ8Xx ؀8Xx؁ "8$X&x(*,؂.0284X6x8:<؃>@B8DXFxHJL؄NPR8TXVxXZ\؅^`b8dXfxhjl؆npr8tXvxxz|؇~8Xx؈8Xx؉8Xx؊8Xx؋8XxȘʸ،8Xxؘڸ؍8Xx蘎7j`8Xx&pĎ` y`Q F ِ9Yyّ "9$Y&y(*,ْ.0294Y6y8:<ٓ>@↏DYFyHJLٔNPR9TYVyXZ\ٕ^`b9dYfyhjlٖnpr9tYvyxz|ٗ@&KBia1Y&~مS 1pW`p,d1[2P)6@t0E'0Z0[5Y/YL0]x40 Yy* D0Y9&e1[)I*Y`I!^,!#O/;hXȰÇ#JHŋHǏ CIɓ(S\ɲ˗0cʜIMl`&'@S dCУH*]ʴӧPJJU0lذGFU[JٳhӪ]˶mU6"E[\˷߿ , ="x~Sgf7~L˘3k&<h8YdѥS^ͺװc˞M۸sͻ Nȓ+_μ:@@=wn8CV_H="͋+(;  g[P?CHTKÃ^]Ag00 T^6t? ;CJ$I0?'DPpPC G1B7-%H@A  D&PDRp $J@PBWސ d=pBia䣐F7Ǥ5t% L Q6]9EjxԹ:_'YJ77C  F[7@C$6T$|&<@`Dz' N`[l!`(lG,qiT0 J$6Q.C(W WEPZ&h,'0 <#'(7P_h4 `-dmhlp{lB mu )Q GM7Ю'? %r|~WgP#/D}!Zar!HCH,.b3xcF#'g9L%}jB&e_9 e0nqtډ| (j(bTP?[PzkRiPЅMxC~`$TJ[%y ԡp]JuVd-!:w ;P &o :0 p`He|鋅WV,a k68ԉPu]z, p, !BV6.X,subփݮ!6{r3gAZю41퍠 (35X!XQ򕰌,gIZ̥.wKt hz ЄF4Ksnw RVM"ZCZMr:Ѝ.`~L CXOzP`;:K8HEd5'MݬN 0;Wqc. \:wz=A$"Tw\# /AaX* )DnCd%"`4|+g}1ߚJ*?~y@\?o$`FWljhaI )*&!NW B]*Te!_{ʰRXLg7F8FLY֐R0BZq`թ+ª]3X +5l*䮌 g?2 #$F[ҾIu$k9Z2դm4|N6_-$$tMj[ζn{۹&h pT/] CG}pZ2L7"煏|y;9p[ [N\HAp3d{8"ޗ#C 0~3,C@ ,`vԣCHAı NW:\oAu^]lڭ)ڧ*<#9Tx+Yrp0nA y{}h?@7ݗ=]^x!Bt>?WP#F9l+ IC`0?NHg$ R@E,8H6>2+SK׿Jb }]ߐ?{Y?l`,IGp8~1F9#n~Q|g1# |;/ 2‡,*8(bl{-/P)&@?`wt' t At̓, qwǜN!:O7uwOUuuO#P阵3= "0{cYYt2 2HIQZY l\IUkh9nAHIn K~)zXҗYm! H51Cy3@36  \Y#\]9[{蛾껾d w7n:oF#%Qٝk q)q| 'rI ^|1s5 vtBJ@tI t2{H**`SOHߧOJaza_7P J"zq$uG(**Jw'6w8:kQzw'[ <*>*yBCjFJHzJZz '!ǟ&v2Q!\:_ʶa:ķ|VVbr*!Wcw}zjRR#~R3dQqP-樉 ʀ|%کZa# NZ/8:7GK 4=XBɺ Ą AVh_cʭbژUfHq*?򪇇v̯= =x谤HL!q{܊E ]n-iv`Z%W')K0/=Lvz9+iXiVF44idE M[O{KK}P_ې[X Z UW+ac;f'۪!iXs'Lշ1PqpI,lʵLlڀ (˫~N̨:̊֯0n/+̄v9(oǚܼKOx)6^^z9s6͐=/e*dž mZЎX||a  Np]ft^#,@-ւ-m+=.ah Z0= `C=&4@''IA@ NQTMU=^͵`>oEZ-[:fw|nqMCs..1#k|~CT]IW 2$P[J ?p=F~E[ߖ۬ڳ+ک[k?ˋY) .MqNg{ޞR 9 Yw $XA .$؅L%:p"9CP (Yb"|–Uʸ eP0F$H̱D 1jc Kt!GCYn:QC~ B,8HteV+ٰcM] e$#qB^xxpÉ%w]dm98aD3z2"`(͘Iaш%OBŌD&VEIeȀAfO/ȉ ( CF=8a"In@Bo(~BsDC-Z"B`Вl++3nî@8B CU8GpSTq6#tjoq rH"_Gn#`X!)c=bxa O~R .dHB843@ ~HPPOX.` hl1.8JtՐ0"sگ#p a5B*IbK6>=TIa=FHcĔEv iuZĤa l"2K[nW\r nM#Nx-MӣAҲĪ߁vv^aAQH,aʡ.zrc9P03Hj8ؓܘXbvꉠhAo x 34yCs-d-Bl A*ˆ;voPҋ xPn`|p±pnn|+t!|`AɳҹG1|974Yp)vb2RWnY~0r58&Xv ,H۱>:G@B nPBh ዂ@H\xN`0{!/⿙D` h@ X~0 ` Vv ;h RP,'L",D~Z hyA-?!  'FQStGEX[bE0Qc$cxF4QkdcF8QscxG.F%8k`#U7agoPajEhҰWzTrELŞBE AjתWjgt+E XiEcMZϊse5Nnqw+Eb^—E{Lbo.Zډd*@rmXlf p9 (وf4)-NڂV5aMk\Z8 mjca,ѭQ|7Np6c E+wmnd!D:! u\=v lp@;- G$&/~Cɛݮz ݎ@̇>}:B?;ohD @9ޥM0$BF3"WEP)sXd>"gH<#:KEc'[ѢlhG[Ӧv}mlg[vmp[&w}>1'hMD1 wBvK\4 N~!%s9KSfeSO$/a&3Sx2f>sfxeTrEKԄ")9݌$*eKZNYd?"gPR|2~MiH \1:KHPF44GщntzOur3 y~른T&MԜ<-WtvP7\+"YhGOy=R̲G ZPW d3VdPb[h2] $/l^W6JT<앲%.6K,5-[nwRS='a+a=s===Լ+ 4*1>Js,щC>:,˓=>[s1MQݪ-W?ʿʕ@4# l ̮kc@ v O Ptz@Ԑ4AAB/ʘ;&E'\* š"ܙ (SBk|)މ¨91+,t-|"/7/102[[N"=r?HA1*OV9.Õi^ϋ<<L@O- <l}qP,AܯY.kAKE0qC BŰ!% 'B+d<1,R$%C3)M2:DC;<2*m%#C(-.2S-0@S!3=ڹ܉9D;ųKܳP? P!EE;ťU$"VL#ZTPIU X br`FI-T+5=b\UX#2UZD!j"UlT"&g^3.c5^c6nc7~c8c9c:c;c<hM b&IPdp$~ }'7N:A.u%#vuzJ8zI}8WԸd~ؐI5dl1kB؋XeZ9+J=J'IXё[1٦ʪ]/ZYXc!fg>5KBˏYY"$ZZ; UZ⴬Ż˽̩x!@FSL,M¼**Yhӻ_3՜[lŽ 轍sMM%dR?\\Aì,,>CL$L??Z¿x]C[4᝖d@/5P]6^$xQe^|^ޞޥ^ ^ uA$X zb0mU ;"|Qф0& oB߷5UR#M3d44``~7RF\U/eA`2. ISSD"$a"2at3/Z6?@%QL4Sd4MT^I;^OE(JHNubNT^P)B*>)JU!hUsyU_U!U1.6j<4op/p?pOp_popw=B: m={+ qedTꉄKWeLWl8}WdG%Oו OqRNɏ X2RehaeK1Hإpr吸X 2 f~"bcdJ nsY2fomf[ˠmˡeq^nט;dZuv)Z%*:<|}v<~n̯< ( ݼ>[Jۄ,=-q.趒萮ۊ. |sᛢ=>! 3m>9<ȍ -)@-NPJG]ݵϪ&P -v 4k@"%2류^ Su0!D_ 1Xi_md61B.˞߫lvR9D`&%)֜vD_7B2mD3^F$5c3H,9=:%" Hn@aT~CnT&GnK5M5{FOb&Fo)RoetZbV^Ft1|?|O|_|o||ȏǟpp}o^ɹ G֍#q;OqWdՇ|RՏMVn #W؂fءmr]X(X'H .@$(H%07Wy`/1ʘuf96SK!1 „ 2l!D0"J7rq! 'D!A6r0ʏ2e8H(KvB&(:yPHN\K588X"a 2d@S@ Yf-gP1č{pPM&!0tD4w@=xCPzDF>`t RC_P*.'~m"#28I{ ,}F.n7oߺ 'nGD00R5@ Fԭ`{w~}=|CȁaO:p / \rЃ=_G5@l2$\HX k5?Ph/Uā((1AGh`m]&А ?PCA2@6Ѐ2 TD0 4@AB Y%DJ `TťB8xgFD <4bx~'~ɧz06P@)CcZzVz*xu#Z Ž `xI Bna7 7epB= Q=1M+L CrS1(`x  Y G_2Pփ?DNBZ `e@C</;f!`E D%4[P  E`'c E+53P\9L  yQJ M8@-3=ufQC r”]Fn(uQ2s0R"N +Bq M@B_)eT" !qHԃ "p 8\)pe)gsCN'8, d@m*wE@Dv}Gҳ^=yO?HAAp})(%MqAP8`&<(i}`G8$ h̩6!2/p&;!(!F<"%2N|"()RV"-r^"t G^ ◁@ AAn$6>7 ;:`bb2Dv 9DF*2!|d$3DJ G!rғKP(C F EMfAv:>2tXR, w% )Ky`~, [BDB ^Np$~Jٛ`3@r k?0drOX䀸|g@{8P ["<ą ADYOⓡ-D*rc1$#)ҒPgNz򓠰HQ S#l A@t˒` S /r˼b / a BŬDLv0 PH N VF( vS=-JG9ig8y]tS!v;=BT}#^5@jBmS9䡁dL peij*X5uF5x ٖHFBӤ'El' #ؠQHB LBXr܁!NeTT C"T bDu)M`荔F^1"lc5Z1WndaAnʲ۳-D \`)rlM%C/y^1ů$+`+X̴-?(19nTOE3̢41͘ ĭQ iJcZsHe XjXnrԌVe#~-l"[fٵ(Lo{Z܊eݺYo#ޛ Qġ HqVsc P:p"/9 IJL_"6Bzq{3g uoBbkV~$p& "7Ul4= MD0'b msP6-q>7ӭu~7-yӻ7CF3Dkl#'*3cD8*$1c9iDbRL")IP<,/NE8+#!w"-҄ \&7 L,ԡ \f3q MH3im 1O@3x҅N!QМp<ϞէA ЉT{BsHц^4hG+P {RdEC\:J.{h/eg5kj.)OYOu X>F.w!CZPվXQv ө|2WŌf$&ָ61z5‡rv<1z$DFDN$A&'Y$Fbܖ ,5NEH:RDč\m!q$B\I\Lj\&MƙRʽ\P\,UM)DIr @BATv EHT=4U5eIqS(j哫-BSS:;q[ᝯ!]iTaa>TbG%"a5۞K4R>q&`ySV^镘T^U FalEW THdPZUYUZ [) _IU_E'odgbY_am}DQVIbpy߆&}" k.` .I􀊰HyE NsAt1W/v:J}_ |ht |} Q~ `p &dXo !(شhb@x )@iXlFEMp!B-՘X eAYaπ͡ "fmY2 "q#^$ { %Ι%YI2ϥfA`,*bXb6N\# qelZ#Ӯm0mj*Yc7֚6k 4^c}# P8N)^,J9 :v#<]+<^LE^Lٔ3fcاjP ivS[ЦQ^j&B'X^flFg|FhFiFnkTl(sV't^Q]xfbAn`.sʮwIVP)*fV--%gMhgJwgj݄ ߡ>ր֐ p!cXw (P`II "Iv`&ʇ2J oJ `~ S>͎Y6 .$鑆GEL@OHI.̛)BaLL,ftǠȔɰ©ѡ>Y) v!!☁T/ ̣a6 &@nX*`'꡹#*+Ȏ&-J+. b]2#S$k5+%+5>#7fr6*%3+=+mY+ͪmuk D= Pbѹ*Q021132'2/3373?34G4_Ѿr @q'@ lG4%Cѿ*H$$L*,;mO֤~j=Ql ClU$LR Y&Y2ӽ,8m՝n]Q$m,m4lB|UL#_]ڶbMߐښc-OGbmcEmIe8r&K/hޭh-kJAdA TPtT5nnfUOW!UUj憉ij^BF&QV6cծawnx.6vjgMV#no'Z\h%}ɉAjO0Zohoi&$/L`TBIn&(/ /}IwZ ֠297Q() iٷ!#z0%0m^%fi  HeL~ wq0bpǀLAߩ2qϩi)i!~xQ)b1hf;z.gO  )1= L 'K,:Z+Jk.H"'4A6$+' 'O2~&46+)R*#+3+qQ-[~.C2>4'0#ѤG_:go:w::tT3ƙ@ @N Rdz g@(5LdΤNMzv>g,);ȥ\QR A/B_m@E8DOE ]Xbѕ%6]\A9::Ŕ]eQkLwm^`eM/f"j;f;خ-V&ISSB5NΎQXNx@Nxul⚵mZuVQ[&`gXYp-'xJ 6s.e._U6⣠w0 bwC hwV0\p2|a LuK꯾~:K _aias |o8BiX)ҚxaC1g%68ސW ]?lq%*{M#qgI^+9""K1 Gq D 6 F;|(1J#'hG7(84yeJ+Yt2B\CEH`̹̂hR.cH E\zæON-XdVJB{v%0Ё#Z>Ip$@lm(߹KSD q@QRd`͛thѣI>;iPvvlٳi׶}wnݻyxpÉ7~yr˙7wztөW~{vIC&Z,JA9a&j.dzHALj/*%~#"3 TA0+ܫ PC897ln@8b;j0; m##L(na⊂ ?[B,R2$PxX„NC,*I| HX(`MXbvrLi6*Ta ]Q! K3ݴ>T;2jr91ԋr`f07^† ߧ?zw>엣^0b;A6/@pͨ"mp7Ǹ#HPب z0* ¨$2tunP6!lAajp^2PX-t` !X*xA8CP,,KDA:/Tx Ch#I&( T`tq"`HF3C v,q#E-'Cs8 ~\`疓C k[[W6dQ  d:P,|T0D/)Ȕ]ʂQ cr0%uv!b<.qIC$|$$# "80ccDHANYBi&$9 '9ja[`WE c|e`D#3#;X3R

4D!ZQ^F9Q~!HIZR)UJYR>;9z4LEE yҳ,O{)FGEPx(Ԡghc"DP ш`H9)ZQ^4(҆l^lHP{#IEUH MHU+eiK{җā1)JbP(.LA-$ "($`(<Ա*U9QqD*Ny PXE*؂*U4Y>g_v+&` kJ'XVQZ*x'p )6t]"e/|_VX2)jAN$d `$|YCbg'Kivݤ mgX lh>#Д9 jRKpr5lbC+Ζոm Op 2#4I[N:\׸Or49oL7vI `% -Z鼆 /z;8zR>'tPoot&!ƌ^ r,,:nLyt|y |LbϠ1ćϨЌ}~јm% 7* 8I>M <d2#`@JLh `gnxȇH$!ؐM٘ 0h(ٞ-X肰)-m%M͏Fƍ΍8m)ꭑ%k͒j4n@ibn  BB[dI0t>!)rZP/T\ 0T`dlNIn&L.z0ꖮ) 2Ni-#-?JBi3.LJ$Zn:t7{78S8889S99s8#У 2j@b w*OjNO`BJ: wf@$*ғ=S<~tON>?$?9Jʊ@/6oJ%O ST "\6$JOK L r&p$in``N_N08˳*+&p&CN3 ШRR,HGH)T_qk"еR33sBKj  FtL%+нI;M bd*ahQ@ }-R T Tg fΐ0 G / J Z5iQ ƖrfmQcn&pH`*c^[ѧ LRs Sˎ8v2 JgvZ冑}2$l,x@T,'`Ф1||qQ|Qı~Ѵ'^)(q:́8?N`J~(RX o !um! %[] L@h G .2" tTu8NR&q2Ɩr&͊nrmmwl (m(cŌ2jM)M6dwRL8 ܒ|@vp+6kRR2 `$ +n! c8F%v? j)HJlc0ynS11n2yy"3cE36F3J 5юVS,`B6_}B6_@x3:~X ؀X:U:j>c> S?N9v?*90:6 Tr%4D%a LoC3?8dXooϬpÇKUBJ8_J4[7*uϮ*ڄ( NNहOzꍕ4DTW%JJJȟٷ8pK=4{5YXM'9ִM1Ywܠa#qEdMQ !b$bajc١Wu|YTVP8UәYWQ,?<8ok9LKٛy͍Y9\k*G>Y#m[[/1OBZQ]]vdguZgvG_Zx `%Zb,=:9v}FZ9JZNc- dWzFqRvfo2E `Wܧu үgB-`ߚv0)Ha%:ھJ^nmAmZ&M(ފ)cCp1pRR /ۚrois%<7i+K!$.!Iw0#@1joY;z2y[zk#0s{Kˋ;|~|4%S3؛9#_'+/3:ܻ;9+?NྣjH哅\]"\?gs9pXÁ%F$B\[.CoAG4ű& wT،ϊX8Fț~6൑;<F vMx1BSzuh<{.s8tbY/ ]_Ola  0Dp4a !!AE oHBmTсA$$AzWAbݘPF(C-@D >Ӌ1Hi@ Pi%Zr1  PDKꙉl sVi e'`vpBIN`{nhP;DB9RqC-nzC l!!7^@U A! 4t0qU*TF]s`_yp'l5AZW}FąEAEC</d E5PC&4[ĥŒFP *q-+pý=g(4E<(aNq!15|\M;`(,so~^|AK)j{au[>mQRSiA#4 |H" BFvH@B A!&qwpC\)_sCC, d@1sxK6T|襻}^dpCf 7P@{p{OSf;.oJD}eA_z 4sCl_^ǂPT- 5|4`Bt*pBp/ jp?p$, Op,l _p4aȒ@V0HhPHA @ ԠVe5 ʉ%j A-Hɘ!mˈ7qm`=#95c 86C nD > K@D,A%9 $HPƁX ^T7IBNpL1\.wٽtA P:tr(Q;pz X~=(H;0b!t|gy|ӂ %' zЄ.4 ?i :9BFp0oA4M|D<Z|$1 JT't4XrlHA*$ *RUҝ WxY$4(K:0Hk+]|җD&! dp &nL T+*=HV (`%4aKj>Až6]M3&v5!+6g7ls4T:`w̺'h|$'@f@?P`%Tl T ]hR:B4.gWxB|2EAb .: ;˒L" :%y=D5$@͞#1m=A:N o4?٩!,a P5KT&H-WC{)O8T"Մ~]U"`rT/BVSYѺ R=- +eР^xZ3 ]rV8CR/V+2`#0n`ˀ1y sYJv7/Ў.eFCaّ mhEKZ0dP-NԪFe v) n-l_7nw^Vqa1i D>i׸}.!C\d#@48C;!/_$*""^&S٥nw^F^5]Q:6bF\`V`W%XAy`f%`'`'V'fR(ab:&Vj)\"*.f*%*2cU1c@F0Z +s4LcdIv4L6VRע00Agqe.∐(/0fnve\ffBfrQ3jFi30vAg1GAh(3iYi.c2290AV3Af{33bGjF56& ZskcT= " DF7i66>v6o0`G 6mH@_{䔒mJ9m 6CM7<;6oTow);tvV؍Q6e9dTj-X-b+G±يr,e]@ȚhgِN"hEK1Gh ipƴ&VAQ>i6sE"q.j022i4#b449nѓ8#5J;k'lIi7QY8y5WI`+r^ bdgLBĸmou:ۗIpI9p< 9=y=y9AyoSLq l rC1P;̋54#Kk׋٫˽ +KIyEٝ:HWuO4'@DkEE3Gnws Կwvd~7xtן4Hx+!I/Q ѡyzGNg8{t {CP5 SĤ2TPE}B*D}H:~W~~M~KB~PQR:)Yj+3aSXUZ7 fEuTFTOt?%(9rEW1)pjWzCjfjZEAEPHWYɗ5Ņ A_i(-EghSPk rX\ ɪ\G)]h([u_Q-` "``Cn:&%&*βدܼx鬋tfT"F%zF㰜/&Ҳrgc[d!,fNv-8-,aex5fY" 96r&i#C1c$KMh!ɑ$]OۑV yiX[{A,3a:dkj4ijh8)58l5>k@"$ȌF$J!f:έX,蜋a܋ak#cð!b26X(+&9Q0t*KV=UVҵ)b..-"/b/N6/gd:'MhQS 7-/m$ԟED3f[qjjN]IFPكlO]-.bm߅s8sm8scl5ø!tv sݹ z x {Z,Zzq ٿ+ٟ)?$ؾ?T@$[a/cOeogikmB-HR%<R m½f4܆o x4YM y ={nwm8%<)+z[i{%:^+:| Ԕ||H ?El'R\۷JNőYR!RU0a&"7%ڦmh="#HSi 1ȣ+Hac=8AF@p9A&In\H$*@9#H%MDR%JGdp 2KX4\SNg”M=Ft\,#@> ŚХM:Ue*eZCȁadj &b!č^7N0␋$]yP1 1.y%0jkx (~x bH8o Z#bCvСM-P0"_"y+G<$Ha,FH#@IB@"T/'a l;0K<1EWD/D.@F Ȱ@ΡR2 @n8n(L-xH)! T@!LSL(b C!B&wa838s d.P$&#8a3h 4 !^n(!s-!& `^M( .a}vYbE6Y]yPʋ xPBi{ H[n5kp=ݻ8az]kQ ЋP ߑ:) =D_>28 (怋+c")I& !/ra цPV9(v$0db#: /H<Ȁ"$h@f;hS$@!.lW{>zn꾛,o<28a0 †(8qgq%r_qϑBэnCgVN(:Wgn+x}` C0Ic/Oy~ 辬'|G?}g}߇?~秿~?`8@ЀKBZS`+\$|bY'I @Ԋ phI\``Q cf7t+>7"1c`UwĹ92$QLp(4D/@XQ6AJlpPz΃KAR0Ɍf?H -g_3"xkdJ5d͡dL7ADpP#J)A `)K*T,ME:!$e.k9] e)ѧ}9BF@:g'H$d7p` #ɞ +DA ("QQ.`6=@ f<9  c$@/|Yvy^Xݎ  1B Nс@3I0 XJ M>NG(5 MdAZE}BUK.{h_%*128%Cn5 hhFSPt5kb#HJOdXI9qp/딤َz($&l{@D`-A(; ]}4j#nE ->ڈ}9>"q'DH \$0JumiLe:qԦ7 N7A0"}SUIE( QzNU3RjBUQA"P|{\",j=Xo[O]"}_]ւLu]탗e/7\ja`Sb݈mb02([]plx4َuƳC.SZƎ4dk@ 4e&g-9oD e |@9mnj\4w-wnqfJw:}{]F/oCQeY8^XMҗiLwӟuE=jRԧFuUjVկue=kZ0 lo-A ZRxA@>U'aT=yHC0}~Mhm!Buv-'.qNGp㏋Y}0lьhT#7^8w<3 i%R f"/3@˲ :`eTDN.M>!Zyf*kJWr9CxK+9f1әTz2if4m뾈@7s/ӜDiv}{-P Bhւj=BՈ-/,Qhdx&NAT-A<$"y-9[+1JNM3]=LxJT4}HiQmԝUo\>OՠW gՓ3b%iN_j}9 r7}ۀ{, f mxng= |0RG? ) ,ڬ, 9--:ւ@"2q--#-TbC* ./ 墓 `*:Dїx-/”۔wP/AQSIUiWZ0pi1dq0s17|/4 c )BӮ 111J)Y1yA$1#X!Fə@;423#xѝNLųIXyY2A`Tb631Ffd3-h3a>9kFD2O;8G3䡈SpZk5Nǁ$Ȃ4ȃDȄTȅdȆtȇȈȉȊȋȌȍȎȏɐɑ$ɒ4ɓDɔTɕdɖtɗɘəɚɛɜɝɞɟʠʡ$ʢ4ʣDʤTʥdʦtʧʨʩʪʫʬʭʮʯ˰˱$˲4˳D˴T˵d˶t˷˸˹˺˻˼˽˾˿$4DTdtDŽȔɤʴ$4DTdtׄؔ٤ڴ$4DTdt$4DTdt%5EUeu %}O@Q1mU pM Q9ځER8#$U7x$R@ъ: <*+5Ӕ P@x/1X3ӑ / Q R2=%TQF)=BuTDG}TIMNOPQ%R5SETUUeVuWXYZ[\]^X !,!9P"C$JlXȰÇ#JHŋ|A!Ǐ CIɓ(S\ɲ˗0cʜI͛!l1f p U Ɇ0u*]ʴӧPJJի7! (NẢpU1A)k̹Ϡs =C`hjհc˞M۸sͻ Nȓ+_μУKN:1 &3?J+& Oy%h^O -<A (0!e(8̡w@ 9$4 Numkf'v1@^ 9"zPِ+iJ{̦ij S@[ v0@$ #>$&{F`̤&7ȠH6# A IJ8ˁ` F 5&q'  +4(۸$ Y3iM̦6e2P$bG#FAЎOp;by)PO@֕sxO#8М 2IR6ڦD'A Bp|XR%)VICT- ف}#8,D4, Opb]T1@@;$x")(= `nqa>/ ![i 0HEZ; )W a|r@8DhFb/t+CVdn<ef7z hGKҚ1"v#4'k  ˬH󠇋MiC1`i:P7 q)8ő!b|H)ZQ)X!!z ]zp>Q)H7xfYSntci/*sodR-`$`A2| 'B Jy2,Wsa#B`Nty'TϑшQ|&$ ,( BeP#(AP/,@ԥ&H-lT)f>mU#Oe`9 FE*$AXs3@%61Z\{z 8RぁdcAp ZSc믁L쀻|.͂ Je#g]B 0h@&`MbNlЎMj[ζn{MrNvMzη~NO;'N[ϸ7{ GN(OW0gN8Ϲw@ЇNHOҗ;PԧN[XϺַ{`NhOpNxϻOO;񐏼'O[ϼ7{GOқOWֻgOϽwOO;ЏO[Ͼ{OOOϿ8Xx ؀8Xx؁ "8$X&x(*,؂.0284X6x8:<؃>@B8DXFxHJL؄NPR8TXVxXZ\؅^`b8dXfxhjl؆npr8tXvxxz|؇~8Xx؈8Xx؉8Xx؊8Xx؋8XxȘʸ،8Xxؘڸ؍8Xx蘎긎؎8Xx؏9Yy ِ9Yyّ "9$Y&y(*,ْ.0294Y6y8:<ٓ>@B9DYFyHJLٔNPR9TYVyXZ\ٕ^`b9dYfyhjlٖnpr9tYvyxz|ٗ~9Yy٘9Yyٙ9Yyٚɑ9Yyٛ9Yyșʹٜ9Yyؙڹٝ9Yy虞깞ٞ9Yyٟ:Zz ڠ:Zzڡ ":$Z&z(*,ڢ.02:4Z6z8:<ڣ>@B:DZFzHJLڤNPR:TZVzXZ\ڥ^`b:dZfzhjlڦnpr:tZvzxz|ڧ~:Z`.w%ڨwr7ꨁ1pW`P3ڢ%1&@t0N'Th5'*2u=@cZJ D]&&`$hJ:d,'*!],!d/(DXȰÇ#JHŋǏ CIɓ(S\ɲ˗0cʜI͛!; :84& B*]ʴӧPJJU]0yF#bӪ]˶۷pʵd3t;zKÈ+^8=7l1q,`cϠC8+ $Mr Y˞M۸sͻ Nȓ+_μУKNÌ`E _D 0"G"a\TY\x.0D( L =D8Q(E @Η ]@, ;CJ(I0?hH&P@B{ȁp !!$qC?\z@B` E<8%H!@B % I@F @ = F*t0 ̹\$0DM@ntqJ_BhƩW~gF(~T@B  06+\ zɑPDF` Q G?pPK@sj$L8[4 Epf&¬A0pD6QC(ױ WŔ_'^[r'@p A| $a C)H'ҠAa39F LаLg\w`-dmhSwCh]=X^ЁCj.BJaeQm7/C4)wmv GE nx =# 99J] G7<xª$>[Qx t@P-@m,@$6qY:q8GzKNS F @s_ Ifa5w tР!J<]E/8d|V HDA ACz0* 3_b}cd?< J@ht R V{8@*pHlF _'gP < Qr-̤&7Nz (GIRL*Wio~KZR)7\8,.bCV\V  Ք(np"x`w) Fx[3!LJaJ8$`|;_>,~+aU? 褉A~ ]DA ^L4;mAlIb%t-lBb8pӬ(Fў$;  EsDA1r^xPEq`_ pֳ[h ;\6 R-՛-BT Bh#m@$(iKj"5kZ'KY#C$[z hGKҚMR2@ q[t`x4VRJ !B bp#h`M"AKP2,6kCT;!ୈ jPO<ғ B|׽]ͯ~T,AP*oڕ`G/ؐ+ 0x{tk*TdXp 5 Q' ظ> `|PVmylFHN&;PL1 Z@d@RB :P+[i-üH) o; j!v@~[%x6?V|ъfBMH/1f>PJQՐ5O(.#W,AR0/h@B!= Mnv#+uIB!TJZrr9 2uMN,@s1"ovr ~ o~8}߆Gp2<ADP)qD"8TDziۜ8)<"Pɷpnxd8 }0P0CVue @PH(cw!&PTv0 PH N@v?XI0Ձٷs@Xw/x8ا}+D(#F)@, (:|_n0sc[.<0um&n0iGb]&MD q?PgPP AvlJ-\"h&P$8h@p8(yH-‰XHsF5.,~z]jPA[/ׅ_xy^$8mT@~J`5R"4I;0) _&4D#I528ϵ&@FζGYI@^-3A`7e1|lH9(HɎy=}d@$\ 9m s!X)*sq6Sqf#2) 0Sk8IqV2'}Peb1D)HJLٔNP)ZG6&h l`bFfWajfu[vg%1gh g{g} ᖄjpai&TXhviv$7}3z!L$T L~o&PkfrFX$Vlwȶ%]GVm6m+m]npnnpƛpWyno9péGk*Iq͘ Wr0mdz*':rv1u$7%YxÈ0UttawNWtuguu^"vvewvivmgows[x7wxjy z'yyZyWyqqygt`zza&77wtI{Ӟ ȤD,|5w}ٷ}7C ~V9EpA=@`~7wG3$&H O {}ʀ{ʉ"ȁvhH*}7147PrCCX?FTChRH_Icą^(nRr(= a8sXw{~8gȊ.x8XxrH(ZzXDžJ0R',( Ӷ"VcٸX<鍞 丒ԖIquH9lw[5 +"ɑz09 E Q![>)iȒک 23y69kQGiEYjl۶nprKVK ZՕe[Zeb di[E\&! ApgXٖi}y|9i~yg1iqN~\ &˅3Ti?Ilbli4]Fܕ mFinr  ̙ppyqFl-ݙM+7l+w$ء7^s5*t7s?tʟT'XV^ܺ'bǠfvjj{ ) x視,xw&'<ßעw+J:\|zܣUlүB DFE (/_|j7syڥ'*'dj`צgluzǞ"x*#(N ¨\~<j+X/x355O/zTqHZF(ica8*.: aܪbZ0Aʇ˪pӺohߚJ쭘ډj<w>ڋjM!<,ǘWH16c;[XW6s+f]#ː84E4"+˵;j8!:16۳q4+*X".w0\-DP;\w*J><( (2y@LzBDzH =$\$|'4xl,h2hjJNɢꥢDHʷ+ <'v?+-[h˻˴fe)M% \Y /0S5/9l܂ZͧJټΊ*\Glq(LnϏްm3\nGNn4F}ߘ۱}"K4'sXaڊ3@C*>{3-dیa D;'m7 GF/=2& [[;6iJ]@ Nc342SS5eSILNPR?U\ug^f k amfցד[{h]is/|K_c/}U٧j8` Gkٽ+'=-0Cp;<-NʻYw4ۻC*PI{o/ל =Ͻ/Wi-/q!Klrݻ+ =_&;O%ݟ%wM *v F@o`4LC"t7F$Q а U 5nGAHƑ%U`30K1e6Li%I+[ٳgM"lѰH S8-hҥMn T(Qa1#,: $4 b 7BpCHn8A.2t!SpAyN@a$?(h啂](P Y@ܶ  [LȀ uMlЀ F!r&I@H|9 ԡC"[`DD X%u.hy oݟt2p" h@@Tpc( p0.&A,PC=QD+0CE,.@"Fk@ @-l!A؂6|d@.b*@/RP X8'ƺ΍@A2z:xKz`( "r8Lm$n/Szg8b5n%޻yC-Dž@В @ @rM?9v J/` 4WըGa @N hBw51[M^u`T<\%m']KgzӝtG]Szխ~ug][z׽u]c'{~v]kg!6, H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(Rh8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXg\w`-dmhlp-tmx|߀.n'7G.Wngw砇.褗n騧ꬷ.n/o'7G/Wogw/o觯/o HL:'H Z̠7z GH(L W0 gH8̡w@ H"HL&:PH*ZX̢.z` H2hL6pH:x̣> IBL"F:򑐌$'IJZ̤&7Nz (GIRL*WV򕰌,gIZ̥.w^ 0IbL2f:Ќ4IjZ̦6nz 8IrL:v~ @JЂMBІ:D'JъZͨF7юz HGJҒ(MJWҖ0LgJӚ8ͩNwӞ@ PJԢHMRԦ:PTJժZXͪVծz` XJֲhMZֶp\J׺xͫ^׾ `KMb:Nd'KY@J8:ЃI@@  % ^e;(`DAЁny5j&@@tV@mo;ܠ0@ !H | Ad`UȂZ@ B]@;%:@l@J؁) ( |0/z@1t Ё38J|`Bgkc@0H}K{ =zXvб I*d0@X3y2.{{.(A_h`]ByCX&% 4r2ŭ'm@!B,apH*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXarʵׯ`ÊKٳhӪ]6&0le pC2w 4lJ]2hd* M2h S2cvكiCI30aǾ9{C۹wK6n5EDPEy@ 1;||L44v f=;$/i "X V1Ax;t݆9Y/P' ,!  a0 j!1 c(!ƍա#> Dg=r}Nj  epMpp\Qh!,ᡙAƒ0UU)raV3yl@BΠV8EcX aA uA"1 y<[41 ut𝔼҄KI@q2a5ݯ2E([qjcB e1!yQ&vfm߆;.rjm0Y$ ( CZFD&^~ 6pB Xt)_A jpbpztV61ȀN_05qh H(;arLϘ d1AwC`B 8ʍCjXV(,3AFRAOD_[Ґ8t01(3iFSzRk^KpF `nn”/fbDq@LRD7w?!s.T>!oΛG|i&_v3'Z|g*I$zcHK~ @JЂMBJ8D'JъZͨF7юz HGJҒ(MJWҖ0LgJӚ8ͩNwӞ@ PJԢHME nH5 :QX/@vpQhU)VQI?C։u B :puu8 >xkQ5R MCػ5fڅܡUj'A\ UU hGeښ@<ڂ`I?5  a% U`l@L$ D(a &nwC @$ L^.D ] 8}ߋ݈B` /lCA"9 08BRҀ0-a sXC]`A O t 9'Az$D`p'CYK؁ v w8C@0 @B(d=A  P Pw8pCoWcM# $H@ !H `2AdRK4%ARVG0`#En +Z֒A8嵯-lb(`  Zpd!67@ڿV*hPA;0 06-` j70@( &*ȁA@({Ŵj;K@hJZ@l@1`Ɜ 594zj^s$ s t~C@!A`*OW:u^1XЃAp`vzJ8Xb[]Q0C*ؠ/@P?Beq$:<ZײziޜB`^ = [WN?5[#4%~v$Pl}r?_BX`$(B|vE ^7(5P\U~}gG`ww,@gJ70(P7IP/T:@0&p?PgGy6z[['Sa6U90wz?y7@wgPi|:402tu 55g^Z^@Zv}Ft2pm0@g#0]{XvJXWF-?0ZA`7@^Lj9y4T@dEȉJŇq3 hEPPX{wFjVINdC_0IpmGPeZCS*@8G`$f(c;p#Gw\WZ8Q`Q؏9Yy ِ9YyRLTZnZGw4ZEeVa5VeU2YWru`G?5`6I[XWz<PZ `ZejH&@YYu}[6X1_Q.)T\`Cd4cwUfrE^`]^U^^Vu^5_2R1Q6fr_aQ@% Qt9f b>vaaaaFbbXe(Sc~7`&PFIpbEbd]dOe70eUXe\e4TE~f>JZzflEdS6ftvn@h`[p\!Iַv||vii)}6jRPv1*jaQiPkZ_tFm0la koaP/]1:#n7`tYmV6odapooRhqI`pSDIHɸx!F4;`[؎ZFs`(vWU*9([XU4'k;[{ۻTeUWWiXYwPPU{[yW}WXP(aJٕeչNZSUUR=Z!Fsg[*Sdi)TU]]Y X4;`*ku%_9c%VFdn#@ب7!L_#m:`U â閜i93å)]-a8x;XucxyWSa%l sMSE{, FXiT(|+ S7@|Sa؈^E>K$`AVP^+Vx=%<d%(:Eh- ">$^&~(*,.%JvQUR 5uWBٽ[n TYp|d ŗډ4P1Ùz@ ĺ=cF}>ĩX=Q >0',?>Yԉgfk;%BXYjHu7Ф&h, Qڡʟʩ 릌˦˼#jjn.$0ևB=zo@CZל:)P,bTa-(66ۧAm]+uըvjч*_~#mj%})mVsρ\T7:M{Ӧ=ZS *@xa@&)W~u]_6d9Xw= |~-y*茝&Y!wZM|@!;kQ~e@&nD@ɛ 0–ULXE5n81 4^$ 'D(d!_# `OA%ZIU9Nj1 6}WGH qXC*,{6ڶoy5k'&0h.!#pr4L!7vs(Kv/™iD|#$M^d"1v У)36Hl$@B &!=@#dv/8"n`,(HH@ D1#a"bxB 5 :P$@/Lq!! F`2nd 8v68`&\! րM?"@Hɶ=n O;$~BA%i : l7a@+Ha,Ҹ*+S@uԡ24!a"&6cU(W'UVZmU]^pY#Nx-%* *Ll:hrͅ@!Lp+ PQlBe:A !! 2,! v#% #H `Xuc"hTq Ab!"6oڹ矃zk~/ы xPiiתQ:뭹Έh{(aP`2Ĩ6[\vH![.Xnt/{҄~(6]WdAgKa8d n0nJO>%r{"t$v@[Z-w'& Lv{=t+Ta$uAzݫ>{m= ~ᆊ˯oI"h `S_E28 !. Acl ?P؁  Rp3 l0' s@P;a4 0#@bxD#%8D(FQSbxE,fQ[bE0Qc$cxF4QkdUPtu`iaONЂ2bJ1>1EZA2`(t X)󺈗HҐ@Pg#=dTX(JVR|N IMzΔMg嬐+d)+F c 8Ci(n[>sJg\FWXԅ ,K.?;.k!”28Zb/y{"?3zQ[Q"! 2ps!  ( k c+1B& +#B;!Û"ӡ# 2&Ku)'{y2ʱ %k- /;A:)֑41  $ I[4P#4 46ˁGD4Q͢> 0:6J sKk 8h"pH9l@NS?S@%7x W ȎȌr{<8IU$äSݫI@YN$00HjyG T9fF0& ' {. `9im;IKI'[V̊seIບ(|WכlzzȀð:=&l&P,UV3)3vzh)kJʚ΢R,hK9*H(Ĥ,ˤHpcǃc8o3xKjZлKZ-´=9*H#ژ=' R.1ٗ鋓Xз0ʯ`Y2\-\ҭzϹMlE.-.@@#`g`"-0- >I!0@i@09T/wACz}q½@/ "(p*/3- 7!P-^o0B%^LlOBB&[15ݪ#: Z ,/L7l2<͏ ^<&?.dC>dDNdE^dFndG~dH(B=+OˡaM]uK]$T#8Le#PՊ S:Ђx 9X暏[Oy$ց(HօWgVi';{l\3"W0שפ+gv=gܺzIw% xY(+@,l 4V ];h;ؒbcpۀJ})oJ;ّ͂([8 2AYeٝP A0Q"ښḲmڸ g̽!;*Úe,LLhݬ@}hY\ۿ\#xѢv0"Hya\zܿMl|L[l1$}F]LNM M ] ] ~/AE}^eV.P-5^-]"U ߆*Ae_O$|n1*|B%Peu 2%.v _ Ə Vo Q!aڱFaa!cp(e!h p!Xoc bAsK44M""4BEbK3q0hBQ7V![D\\c]+%,7:No@ђd cbr%g#wA~r*r+r,r-r.r/)8C#I٣P`PT$RE8sTGU~ere̡L8T\5\n]~sef^ab=kᦑp'M7L#cg|ezzjWtIzn癜gSW)~:gB;X  pֻ}hHGZmʪ4O0YkXKwi!lii=eiwLY"0A6f۱}ꎖ>̉oO?U@Apwo쇻 j8mTp&}80%6 <6P؁ 4z7lШ JM@ F<"3& Kl"(EX!%\7-r^"(1f<#Ө5n|#(9ұqA @ (t yDrp&n\CƎ:я9J$%3AR|"rV@*21@XLdsD$B&$!ɏ'SR̖'V" ᬂ)OTbT+^#C-q Yl!U 6e3~6-iS֦ P fM4FzD !JJQ3$)#9{ :x(WrD7,}me2SfDzI̎saIJ(b=3MpnL K ] 6΁H (P# a9z39?1St'ML^J0h)j7N׍4Ԭ)׭sҔv.Oy!t =M"9`gfP յjb}'"퉕AjʣlHB"XwSdA h5 nVK*=jⓛ$'Y2 KT@ 3AVAdw0)`pmyK*S67!ҭLi*Z-D_+{w[ou[mvmMR- dr >WD@@̾˿\vYzx`QpxeyqLẍW{9t@@hWxEHטXˈԆX؂ lXM`xXݠ ָ XսXE hNNWm Ί@] DȀhhJ1OSxu b9Y\-@ٛi"% 1%R(pM TPDWL iP PZ " 㪵Z"U5NɮIQ6^#7ů)DiQ7#99#::#;;#<ƣYu prahl]㐡Nmo}/1"U\YWu b:O> &0&@$:pVp+jOdx@-r0lup#Z y _3p4ZO10uZcv7xx7yy7zz>̮ vw#~7+Ej+G_*GzdϷkFlqIZD w 2MAe9 V8@+%;R>k>arSU2A)ƻneW~rݢY]-klZrYȪ7]1% 36ʶluKj( D P̅ԀN5H1-d-e:g*gj3Z,̶,i&gMծ=`>V?f> ^&cp^B3tXJY6tt VGb,ztvnGӊ 4IG.⢧JHZh|}ts!JWgbWPwWV6g.545 <5B Mj @AEm j5~oZoݔu2"![{ Ԩjgu5o6k ).)o/U`)/o"Y;c9n d\@Ũ pp(R)6`ԻO~f700rd/sEw[~O7a޻=>'/>7C[Ml[Aɶ@ Tqı7o3kB:kA178WͶ.8*qH~@PdL8IV2km8 wDMYd<ѫ#MJ2xZԸ;+LrQ',S%(&4S++_]X?o/-elĐ8,1# vpx%.&c`H#I4y2$!K@ +:@ygN!M@0# )"In Ƌ2zX"cgV[v5#28(r>+u+فJv[_`ÈEv(^ZxpÉW*Pa"GX4G@r!F`Ptj8(`;h.ݽM"#@&Ist dBJ 1trscI,^ϐ'4# h!Z>+& =" SPBP®,PC8 !a"6*qS\cEb@0"-z܊#Nx%tʢAD^蠃62L&q+ p@ /5w)`/ b*  GK`)rx*d2XE"h#JT0@֯hu6_jX$o  xPٮJEj(m rQEUaZB+Y(ܓ8a7߮t/&~(64Sae3$BQ#>#RMucHp5hM. + 8"BAIafہeh. b"|z6HpHF@j6+됶hiB(nt~;F o#T8`P@)|hI  /Ht"#ӂcl]7BZ9lH"v"=_oΝ襟^ F>+ߞhPd?_域ߟP'hLĎ4@` 5@%:A@V@~0z#,aIBpz2ܠ@yaxC * -@IA (P RLV"{J@AbAHFt0`NJ  ;t%d 1*Ѐ A6cĉI@rv:@B*>HL))B9RN$0$$"AL!̲¥.y9=OǏY,Lv0\RA ܞf%<;t(,!i;lɉpқ\HC2G<̤&! ^9DNTP!LA8Hp%]KpK21Z4.vKKט\0 l J1s(RS4 jP Vn܆:}o3l8Irn H'RL4<)yғ%-4xCg#B4! 6i 6&`ɻT :JEtWMo!PFYHE,* a$#GՑk7Tꕯ[@ 0%5ip ^ވER &1=LuRŖӣ8ͩ ' +"QRɥ2(P5a[H"S&C eзp5JWd)Y޷Uk[ari+գ½^ ,1VM a kt?61*beO61 Yd< Le Ҷ2Mj<pB3^HE(V{$pN@I.)?mf {z.@Ζ?ooop[H7%ok4F2j:*/ [Xyw]Nu].S5Gohȋgclg|7]mk_mo]nsޔ. M޵aP'W,n )\a _$ C`#z j1;P"ȹ$a%X統+fP1_r,(ay JH 䐉"(@R췿EKSs3$%> z/QMaسo]r!89ʛ nt xA4ʹ~'_N嬳 :%<(O8"E2|$K(A :@CD/jBTCE1Qz)IMJT$hai*̤`)d^Tʸt,~idtbB TƆs {>視jo~9ʹZ5;n#=6jjqP@ #@ kb"k²&d| B&,$ G:DTvLkMKN"dOP n@ e20 NF I  xgeĊ%WY$Le]L7l;l\XzV0 NZ4n:b_]8qIhyz`^ɄaʤlM00Fc8Lblʪ,TleGˮ(u:8Ҭxvl଑L:,EB 8kmz*m prжѮ&nѤ-z*D`ZFQR8e8 ffqrwX uTuX-diAn-Vuzx'q;#'$?$#Pbʧ$W%[%_&cR&g&k&o'sR'wr$Nn%~$dP"ڤnjL@ NB)%r pHzph*"+h \*{H,Bh) 0& @ D.s1_i(`0;)3 .4gn&.ގd5mi`|&s{ n@j) fc)iS ̃5\2cRj /_PeB()P%**#ų=V*/x*b /3.j>3 o?{V5^c':ϫ8⏬4 ڊ;o0K #JILHBg k @n& A#]T>FPaCBEQдggx䴀Tei 4D{0 +M^Q(ߤD+8 $ eTI>Qr`L`_Y ϋ|Q}K?LBo 8W t=Q]l"Y2Qz@uSR-<1TgNIuLu{4UxWVbTVGJWy1˲Wէ)8>!]mv:2[Qmk(clu]q\8]]{u hup;Y$ w!-`a7-Ldw2bէ($,+ْ/3Y7;ٓ?Cn -}x?MfKfs-Ee2fuV-yVt,y9mvڲ6`.onߞlpf` j[ 264EXG l@^Yݼ6֕6lmٮ6y6n֝eng7o}o,pp9qIqqFb [1x @ rk`! 9F7Jw>k7.RwW@f@@k`?qw;wMwq/8VyoyjS y\ϒru{ t{{I\}=~;$ :~c}HgKHWJTͧo7X X@ MK+K` 8W{,duGSGHشcKL%[;/5Xͧ;QEee\VʒxbzqSjP{&q0 Y N T m[uX\͘l8!]X۽1zu1G^7G︠lŏu`94D$$(Y/3\7;?C\FAb9f,gȖgk~gòg}g'h~6Vn`:Bws0|z钦 l9u``%96߹,<575n9mny31 Z1M5 Neg3jv`$|@ %CWRɂ!y*]diu ?uyv'w:s(|WUWs \I*4 .Ċ' է!t}$ 5Z d%ww~IyT~kЭQ~ԯfn :{ h PVgG@c$&Rr;U[RcVR#޶5Յ;3~3yTu{ṫe[e⽲L F`PaקY"|u$p` |%ؼz5y{x^gΧx΃%\_OA->)bR #Y8d h į-^ _+ +P\ŽCo(c\fyjgGgKGbȥJ&{|3ݡuz$ɣ|Â\4l[Ǽ667g_:Wg=Y<<=V( M!gEyCzZ$  <0… :|1bDGdp bEX2Ȃ/fȁǑ,[2,I #:CW\ S&M8ueЙ5:9F0V&Ѐ`"Ƌ2H!@!=LluyD#@p "r5v 0 A!ې[Zu82D$2 )$J7I05)#,`DɎ)Е ;6ҋ$@L0H6FXȎv{^< 6(B]Mӫ[׊ȮO02ZG6 m6j{;L ]`}umAC(`eC4ڄu%N4YP@ ApAN:FB9Cu=hB$`. >QI*(DДU>yrZrI`9XjɦKC qBqcuVZ'Rdtes!K@O$pApN)CgsCæ, d@i.`FS = KZ*dp~? 7P@mpmlKP߆됵.DR( t Wf"|& 9 iv 90,0A Y\f~,rP ̩ _@98r2Ϝ_8s> tBMtFtJ/tN? uROMuV_uZou2w@$/ sB(-$OiBD90GwxVCA 4N=G8;}w`҇\3H@qpv*˚t!ZWͺBȰ $ ]pBr}]r\K}zH|7@s秿~>iсhFP> Db9 % K( /`9 BR0\! JΎpdh*(df3u!BrD@ nA8s! *$A *<$Gv6ED%WRⷢ$X4bSn1b%1aϢ2\a!)%A?@Mx(B$8!Bm&Pqnx#KG;uvK;Q|_|hD>dJ/ bIhBa`0!I vU@e pCHpgPgWFh4 gfF(^dP38R*XR@e"\ HEI0` E+s&؀Aen I:!|1cYW򕘞1)LӯvELR4yУg Αfk4@*P6 TG%z$HUrq(fr d)}D=fIPGmq$4nNa\@bi6SG雧B4q,)jܢbYu+g bY5ָN z}׹bd'O_=rHs,RVbc,4p]|LWjK}Tկk}\׿}dVhP a{CR$qU@|^ QȐAdj=5t\]7 ny՛]m59ρiߑ{ ) 4 u2V?H `KrW$ƻ zvAATgPnD0IPX `Z |\ur >p|a k?&p txg 'c0_Tc!$|T"50'7HTzNƢgr1dEfn_5E  qZPxA-aFg&dn ia< J%PDGDdCP08դ+U&eVDelDE)Yvg&f^[vFbDfedfn3j&GmR^g6gkoh:~!H{~H,#:$y=k[` DMQh>TzRiEJ5Po%?`In0 Ni0hpp: p6DRāKfvKơjǔjKK9&3jL1kPMzk҇d!#=!ppv%'p%l}mPFG፩'(NnҦb<2#5S("CH(d,VQRRRHQޖmI!n榐v&&'bRzroqS8S;oh:5pRp$> ;aA3t\Y)1p/ W,h5.7{A9iIXGTWL|dC*32‘+mr"r0oV#G3rpWfrvr*G.27XRsssӔ{YA7Y7iY ctŔbb2$+2SQvLuFsə陟 )Ii `2x]x\yry9]my9Iyyyy|HGc71~<27QuL}_u@ǝP ;cǓ<<5>a} 3C7a~?~3!&@3C|,ybAHcwcE%8UE[`d2Lpv!'U `AH4PaIDKtPc[FEMXfZS6PFce2fC*=ZfRfsf`G0od:GhX|ƆHb ;@m^$5`?B4adJ5[xiKZvD3Ljj؋k36HbkMx،*#0^ ETyi^7B'PJgh:@#d"1PUN%IImNJnƐynn9R٬oR=oT:g2U(Jp(V7g7lҎ>3aD_0hr+2t\)9;+Ju\U`ebU[b דkq pirrr$sur`EZ&]FJJQx`ԤqfK3UGZk(HAqv47wjAhT^ZHm:NŘ5~i$樰(hI33kA=c6=# :!jCp3'""-49%S& ,"[SzQךm2#nn*j'*( 9JwS;dJ*#**@x#qKRq<=LZR<;5 eInqKq.w[2sx){X Y @Dz鲙yq;<5Bs -Mm-U5Z 5\^;\L^ р|*4fxxsmvs83)<=gFӷ` X&pPK[s[T陸>;@p{q$%}ƳԼ;0C ~G`+a /)~iM?k$&۠l:*chЫ$as wtًœd8QBrQ盾+@L&(KI&X,9%7J4˄X?ʣ H`\fE3GOyG<lggg\Hg,Bp% E';0,EQ‰QHJ=@4@܊4ĚVKAGljOHK #AC@GQ nF3)EoO,gT@@ D0%R@ʍ.dt(!8p3b $22*DR%8J5m$RI?n" Zhpq=Р`ON=CnqIht)8D/9rqG(r8QlLMA`„q "PPc•-tqǐ%Srf2~ c`7(mqҧSn:nM%3UpWr99 !b&gnNg>8޺GNe{nwLHE.ݿ%廬O>}0@+@dA0B 'B /0C 7C?1DG$DOD1EWdE_1FgF'L^hLH%@!("Sc2(, raQ,ܲ/$3+@~,Q5|D9t:0:%x&%#4(b\Dܢ "wvɜN.l8vhR ,RCd\w5  WaUvb!b[@bM;Wj(4Yoď`>2qV8.F˚%0$@U$B &("Ka**B+*" < 0/ 20  08ΐ!0B P8HWh@,JDzhqj l0B㐥譻:l7Qk.q#`X而cل^A?AL_v!0_F `bX(.J݂3~xk]mC脗5yzj-&^y r~" 䥧a lBqxW>??ٟ}K^0b;NTƕ6jj%!XAA l44 fFw 0  P &KY#^CW!H,#bVa,g;Y !=crxDۡeF0AHM 8* CXш=c(2ċg @M  Wo!H!$!B808Cjp𠈇\w!ujKDi k\/d&F9KvJ2Q&3$q9\Lc]Ld"N 3gS<37#j&FD G9%e%L|A_l(%2 ZsAvG ԠIPzP6T4LI hH:ԢhF5QvԣiHE:RԤ'EiJUR(GQ;A 9#T b"%Bѩz;I C攧ۘL%ў@hA^8 }(R w"y';3!.?HВ pTHiX+b Y ~HZߺխeA6\'=Xth]zY2/^NEa h[\KO! ) 0nEpRC7 '0X]H`PPddN9Qr ؂ȠpA)*JKF]-j!@lD8CnCۗ667&7~^IVA>h= D8 9ts ֙')r QO `/ -@p;~7YyB'>1['Îc/G p8B;pF&: ."A@ JxBH%Q@ Y "`p8#!)IJ;TvC^qN<hF&~:41m$51Ѝ =[;O.H74A q)Be0$#sB ^S'< PV"s.wK<˧zH@ `@(^1eFE &ulN7M 4j\mL'9}8KDh;h*s7yus?zЅ>xl26_rEGAMɴ3(PJɩiQv1'k 9A+[ơ2,{D+2 2%)<2 3Yij  1=@A#4CC4E S#B4L;#.5825-J5*\Zc#[85WU.5;£_`ax)kB:DZFzHJ$ $NҬQڣxжuk789D7}#&{JL&~C87kZNOčPQTa8& '+0'[tZvz''r{1Y 9R;s93(FIcdƕ((jijklmnopG0#FyEC'⩭):㐧8!;8G=qDYYu|;43∿= B@=2 '[9>پKþ//#LQǙȱ?isH40rZAPE{A3/1\)  422@%{2 ,1kA?1 !2-! 0-G;2AbKy6!""+d'5)0BT0lZ+#3C4$C0P9R^[A89$$CB$Eb$IJ@ܤ `%t˧q p 0YXjc)Mz8͘K҂řl2kł[h8o88Ed[d'wxڋyE|%M '& qܹeTBԟ{FƊ:FuGHIJKL1qDžJ,Q=r(IǬGUժdt쐁 ֨*HIHYHsHPUPc<9%0$=:ũ-s=l'R1RIL3FD$u P$@#u xX99- 9@9qcDwˊ&}[L|҄RR, nz8E8-'5Euj\79%oE} F<=V1O@d5@T25DME !>[[͹YGU,ɩ\Ua ֐,;*;* Yֆ; X؋ꫴ zX[ j9wWxu,y㗴{<B%J`}NyXX޲"R$P1 svKR9K[Y\/eCL%06$ˤ?X1% (X+4V7ۈ̥[9@\A2,{>,%e2{AN ufܱ"!O+ 28‡@]ι]UK^$]UiU^ ^ ^B`^5t^`%=;TQ=4}Q'%7f'kmc`__ɹRQ4dRN6씢aņȖɦʶV#>(+%.'m9(.ZU*(fm~b$0>Hb)㸣gm4^(D7F 89& !らʔ9>vzW=vɚW~UN?ti{d#-JV=ddePn1eT"s"W̑K˝mZ٢ [Zd槍L-flؖLLY go6u.9w|g!翥2ׁNNg5. h0N2[ɅAUS[|LOh!D2hDi :4CiB–f] W@7^BG^>CPΣ*7CU$mjjĠpkQwR9R&`6.5EĴ+k&U$S 6SNSZT6k8Ž`k l)6nvjxo'r7sGtWugvwwl) US݃ A WmR|*m]./V{ 9;cB91nh*8 lEq#=WrRqnAən?,6d AIVM|oJJfQvLFyv>=F/V(Y큕}|YYM {^ސaL5fWdnev@={f^L:{mMn)V$R[1ˍ[D#g&1"}}vr%Grir-rNN.r6O)s-J M]e]Ah -]s4W?i>/5?^iD4Gia[|Jj0 &N(p&@#$x($@"#?@ r$ɒ&OL)2pE%͚6o 0!.6N8ѲCJv(+<DBd]@qG-,{@"HL"9ϢMv-M6qE["9Tv/ߑuEʥn޾%#ظA0e78ʞm^fyM)J`P ҮUh$@! ۯBaCE%-z(Rsl<]ʡӨ?8{;0bH>ϣO~={G>>WOw4,X" 2ؠBRXbrء#X'xC HD a;DH ؔPt`iB90G6Jh$$9LFdV#iwXje_f%;t#QC%RЃhӌl@  7"E!:C(C]m]WTTcw?, Bc\*X@*I +N1 1B9pCH:l&lJ(,fAGt0BTb "`9d)*y&VQJ`CJ,hS1_ A[ d`>(AuWD DIH10 H@H2pH3s}(K!6z:\`"U0ׄG'NC-T+F#fD&l!x0o'0&0B7@F TD(@CT{,!Dm;\uqH"#ۂ8@HS]qt/Ǽ]$0IC#XA!ﺏ4 O06e#@7|tQo};q F` h! KCXѾ"`C44~r'!k#A О"`rM  cd-m;7C@j皈"\ph*0|ëB$ℌ=j^f"P΃hE 9qR>.`vʈ ·I 0 YHC$#G7Pn0 aY8 8n0ND]NJ25BSRh` &3Lr@bD!ӠF5Pl80uѲyW}3'9VWs:yS*Ѐ ywf>#' |Sܷɏ~< Q. t { (Рc *nL=R^$Jr.a )j0AbH[Zbx.VҝcE/F(@ U3Cltc}k¹ю!A8"BW5'4[}!Lnxll|"K%RY&\fJ[/0^[4]7PW]Y .mf]m~Ip9E ipV#㴫kX\vr<gH.?(*gP<29kn<:9{ܢ7h tGQѷ,`v&U"5\  RII; gQ3PUG@2@ƣSV^W`e˯w":2~am5.fN6`@QXR#%D@GY wPnO0sszP,DWAU T fLE2ȍ @ A9HXL $A!ƀ uwvmxy`xz1 ּv|oiMpXׄؔ YqW@f!_A⇅_hT d @ՏHpJ PɎ@Q$A!jAH!XNA"XQthYb!ٓT(2*Y+b$QaxK\ a#n$ևAHpݙ l5ZqeD8j섣$cPu&Ex́<:Ф1YP鐧ZCjѪ}yEzZOѠPEHȑTc`7E1d# 8#}(-M<[L@ dXeA[09ӸRKً|Qte8--VNR%]RT 8t^KO ][ɛY[[]g^S-f%IG lX%O:&X$Pb%USL\IS:S5e֎}iifjjfkkfllfmmfnnfoogp pgqq"gr*r2gs:sBgtJtRguZubgvjvrgwzwgxxgyygzzg{{g||g}}g~~gh a|GL(h:qH$bhr\Nh.h:JM\^臊=hh0Zhh⨍ĉhh*h(RivHh>iJ2ir)ZiL((uF:ii`雎iN)izbr)Iܨ2*JǁBijrjz꧂jꨒjꩢjꪲjjj⪂!(,!H*\ȰÇ#JHEJ|1AF=CIɓ(S\ɲ˗0cʜI͛8#0Æ?l0#"ѣH*]ʴӧPJJ`KP'=_lTKٳhӪ]˶m_)HGF=;˷߿  B })A45A HF8HJ: tD(p@FDbxiKÁ>qKq|nP%}_@ <Ȃ t?Hp_,#(8t#qoCޙK wYa(CTpN 0)Hv 4؊F"D}AD,0ڎs@v-4NdR2Ć,T(LP#pG`VAhHE 8 [8ԁ4L&d$r [`2P BP_[隅%xk9,m)tn %`FAyF-C N:<*R9C,0 :զȨĘcrV ad]Zw  >4 & xuHU `x60a68*AЁ i :0.] o%a聘ЁB5 T(X$ǃ";-"% <pyA  ieUE@|@ MrNvnn%ǛFm-u~M?_%p< &=hA࢝|L46g//8!z!$$X(RQp@QiBv5 c 2w^mZ!MB9ay@0`*x~S@@ sX 6VN7 Gh@ JŔեJK{\ 4H`bϋ4( kxg`B$<i׋2-wyS\ *X xA P!9:ĕ ,*qF_%~L6:$ ^T}eVpuHkCO}X?YE0CFv@hgwP fEh0`hnPx07N'.y7GgR~+&4~~61:@D/0m0;׃hq43GD2&.SM9TpD6kCEF3V4%8ur$3?G#&t eht1Â,94mu93=3]0_C0RI l>Ix\r8Xx؉&%W@oppap_a!WqZS"krZPtX4bs2E6xZQArqZVhgT$h$yX!0x[`d@Jh1׸xb)f8-6./&D(~)"9m|P#`-f- bVYCf1# .e-؂w&Z;Ii PIS&rǓv`69Xx4oԆ.jjס{H"X#XZ\ٕ^`b9dYAW@@fՕ cYskIeZ" u8P ]8Bҵ^dҕVeapVu1I]ɕSɄe k&-Ӓkh•Fi'cY,Y ӆ\T+&yșʹٜx;c<;)1pEP;AXU6pg5Iwq9hY=teZ[>>D?:!eRW5!-e@@@AIMI8uU9w?cr^&zuZC>FC/q8i^ODxUtEYE]_OBhZ`fbܨ7z莚YGIv#VbUUHI u:Mq&U}gA(締4M ~G9K{"ea[M4M2Z0QLM"&tNDNH.4h0.%( wSΕ'&jcVj[URQh:T\pj)e2h,s.Sj(4eSJt4 ֓Uȥfj&感m6:Zz͉RK`q ԓ['[<#aY]zMih`M1p`2_eb(a\IA p4Ec?,,`ٙ ⲚxMeJ/&0g0NYiBj#W1W0l34uVf_6qsl۶npr;t[X:Rp9qc55ʳ:|"$i]>9e+.54mƅ\&gSZ]9OW1K V$L^hVE3gw,^k8ڕ4$O+sac\g4˔h\ЕI@K.)IzV5PMUfhN(#窒h_Fk6Hʕ"[QݒilD El =йw]`6~'r1 ;/P'4{ss^p!!ZNRGuVTGw;9wCPR1@v'RgYzN@Gw]wPڍS~_jKħ9J:'B` mbgdʐp땳~ ʨeŪ9B(0jF=lȈܾq9* oO[ɀJJ\TGlG9#oj'Glcdr90"#"z5[.}B&=mYZ*'z"HOU*x& `y!b |AzIa<fM6(/nc f|YM:ieʔe+8Cs0!؄QTzx(CQ薲I*` STCEo%ͪk&4܌NI6^]2Ip,ۼ۾=ܕqjW a5}jI˳B >95?:YLU($00]]38u`0k#[tUP 2râ ^#`5nPw'P&I`!nzXSGd 8PrɤvKDJbБ^zmQ a.?gt~)⻾˂9jK#^n؋/B7' S0N~=|Gδ9këv`naCT:3>aޅxEi|d\U9.jZйĝ难>i<=fqG[ 뙙Ahm޸[-h (]1s[)q2WKN-@Q'_T-`('o)Y@Z^IƩ흓h|g-0=@+F0R\f).lbrnt=vgf2.bMQfa2IMR._n{#@X;))ncY:yj CFߢ=MvIڄ~-d~?[^ظm87-fhjl؝:ܞM7Zݑ{.׷MDސH#u#9r;`vh@ @.YrHY߲?Ǖ%5|( GD_*ȃ<$PBHu ~:C] ʤcg8c-1W_䗒)oO9O]n&JG5D!.pz $&G!E$YI)Ud˕=TM9u*8hb)dҴ SQN0`8  q Yiծe6xPr apɄdT27 Z-48q#vte̙5r͡E& g.Rt|HiرeϦ];uo'^qɕ/gsѥO^uٵowŏ'_e0#aB$lL_21n٠ v#T7nB=%J0b3Ԑ%^:pD8Ht4ԓA(.|qG~qȝPrH&"aбI, @K.%P^0bL6o`/ P(t4vhs" ÎOB騤U$@$ZE+uST8 BOK5TTSUuUV[uUXcuVZkV\suW^{=s>8 |UC  O@@)h=|KB M80q%¡hD/-b, 'gMء78Rb4^b귇8؂$ !) fy,D^H~ᴂ8)O13JXMRbE0Qc$cxF4Qk, b)$sKxG;@eڢʰ'/h,&H=u @0;@DN%\$c'=$ g@@>(&Q+}QA`@J ~%L"4!XXxaܷ^D!1@2OFShaW|G 4 $ܠ F ` IH!)qGŽ 'Kb#bfA #,aAР/M ` $ X$@ H;pBfHW"`HG`hPzrל6eБgQEb@;ŦB v0*`²$:/qeiL@=R00}X *@E= ' Y(BBDPt@Xm DEL:gNse<@=S0tuU/jS޽0LF?QCe9Ru4i6 mVDYsSrks ʛ"=~}I 0/|aIX"XͲ.K뜪P,qָ>9PȰ /Vfwnx[=mva nCzV}sB<4{NsIt7p& A $% `H 6i`:^;ٝf`{X$ [9lfҥ"A(6 P)q8gEc7fcLVcyf7%70`q7B哃2 ՛foXg5ZϮwKU@_RzLgJ{< CIh  vY:;2jVZRjv-i[/9_=2}. ӘT>2[6h[ji6S m{n[4 pë srs/7@ AA,A<ͺ8@DAa2éI`X:.PA(h @([9A¦ @lA+%0}Z(1ܛ#,H )(< 8HpP@. CB!2Ó5ăųA.$:KD @9ãI \>KH;0*9իZTDR-֟hN|,bTg<5=JE 0n 9G= H(ȁ9kM~7 Ub5VzՉLV}O~TH$B^pHH0U" 9 5-m8W 5IcɑəԮ"QYYYYY ZZ-Z=کʆY-I+%0VSHS|Z]韣DpxO0 <ǰ o5J~U)[%2ɡۃHj~\\*B;V+QhɁү\\]=]M]]]m$4Je3 ;1L>S>B Tt p]4+%Ё6q; 2 ۹955^ڪ¾څ[+S?&55+S HxLIVGVLЁ0w *`E[HKۮk LTL~`\L +J4^4̃N("*[7x # 7⼥<5.^(rE?=XaE  ߡHŝ[+==_ت=b[\0N\2p܂0" O(@w:6B84ЌU?]ť$+m(ιzN,Z ϥ à߶ hIй0]M^>6] ɐTeflfmfnfoRfn/EH5̎ߕ;c'.K lưCH# 7X1&0$È&(D2g}&.Ei+B/ 39(K貴6?Fȍށ2#PhJ;c on }VM"ɾ$ d[#b39S6@/ŋhjp٫$6 j>kNk^k-il0~^^>nIj}VX^V@'= QI婎owhpq/q?qՑډk!] &5Fo\8^< 8iJq/OUKNB(Æf! 澅hr$g큉*mOqla( m4n}V`m׆۳L^m19o7$ 7: LFnS綒FF?cqYr,t4mI'F]P"sObF7/`!Nλ5 PoiossM= ?Ɲde%=0E_tY7 %\e vQg8 LeȐ#S:h;j w?xOx_x~Whq#.(Ou-no0"g@&/7lƸ^0_bo\x> l#9V9v9%-[/2ѾU4@s;:T7m;CGtۆmkm;1@dy JLEJ?rKL<$Xd2e#.ƼKn(u$0oNo.`gd^o[LvuV>*Oy)˫F|vG؃߁wl\SO39p,Y p owg] X/]~o~~~%$C*M1 u]q6(, R#>R]9@1?(%B9!,h 2l!Ĉ'Rh"ƌ7r#Ȑ"G,i$ʔ*Wlpx10 " (YbG%1wppB;Ra"¨RRja2ENP7Bp MHLsFFq ԁ#28J%Ċ3n1Ȓ'S\i%Cم^ @$_ 18#5x#D p@ G=FO `.j@9a fC $! ;# A9q#z(*z(;ؠJINJ6RrT\z*IgP/.*:+_U%Р+ ;,{,*,:,J;-Z['`fz 1}k۵{.Fā  P_8ēO0 8BqV{0 +lEC =xhF\@F@\pU 2-H`uw_~]| .)4M;-XRCE8= YI.sЁ@*aO6mt&w|lre):饛~:ꙏ 3%:BU`뾻AA =(MEE) 1>#pC-k:L2 TMSPC.CH) Q8X}?i}g>єFb xRذЊ"~;2A>} @TȀ Ԟ VPP@`^1e;я5#!IILP!0ȎRl Cu-rQ]zT&UKejS$BBQQ1n,(vv ]䦢+^ݱ~# )A<$"ywP9m(HJ%$JEQp@" zаch8PoW]rt!AI-qc:X | ˁ rAkfY ^0 A/)N`RAv aj9;13$@ @&W98*P Z@ԹNC&@ddBB7X 6 ЁL D).o~Q6  n0d dShiKEF=jI@0!M B*T*թRV*VխrzA:06 @Т@! H `fvE|<6ǻbב6,c -sC^4*dx,h_R أ$y t6XH]Af7i bAN0!LhWm|XQs@d5ZHPVr9b[3ĝ"%@x!!w& v|E'[ D! Đd`3嵍G[4E3ю~4#-ISҖ43 hk2PiJ%+Sj47K`}2 `  6/m[5 LaMv!YCs$p=6tmOKow >h)f}`LM!L~-y+#TĢCsvkII41}nz3\؇sBR΃BC#ӟ"񆓼䆒T(g.9c.Ӽ6'iXҤJ\wsܼl5* ѳTH ׺.A6^$0zȐH֮2|6A^qwhk( nw];io|`U! Bxm$Bɮ]q\)4q)R4^(ʉ?>3_9jLtl>%&Uqa"2×;dC2j[<T- aC ؟6Pq^ 6> FN V^`To1Z[]Ua '@R)v+!, PA.a@hӕ^ psZ1} 2)3D?=4֡|F)CAD]\TF GQa5YaHYY8^!$"KN)SK^M NO2 @(`D*PA(SU*"-֢-"..yVYZVX  tTZ/6cFb@A F 1 ҡ3cP@ 4ZVlEW|EXEYEZL \]H^E_#C t=nopG!@ ASs A=ƿHS g@)+.D|I1ߵL['A߾FlĂ]YdqAȊ,f ]Tem0=,̾kЖ^^m\~ -!DMmn-v~-؆. ZU%QY!DJYj&e։ n*j%BdUD٦# lVVݞ/U-}jLA4~Wq rdB~l;w*zj4HhSE dH"Ke%8-B N`= hl c[ƠA88P5A PEHCpr`_!XNu)C=F N,fc0  ! .D pfiO ۰R'xF`.@ m0!@ @ t`/4k*58 x`O|BCʓ'A<H%Ǵ/~ܤK C0왃Q j @P0Sx ѮOU0׹զn3,br@;Hq$Q&d(aobRǧ#}@Kt(34pm6p,a42-wTQpk+`/,Jd ;p@RF7k_ \2a0% ީ0tu77Nl_ȴGMRԨNWVհgMZZg-|!]~P(=PK4~4B4A  E)RQ6@4;;  .#$?dv^DF Vw@h/!1)o]aDLg^'7ҍp,7?y~6c->2{.=Q B"VuEp¥)p 21{yɹjCWXY"\6%m@xlvӼaPh&HlJ oX9p!0/@0, FzUO0K0 Źp.L@ K{ o6s ?0WH= o"_H^0Sхl)M" *Ƞ O[Ͼ{O?@hPQ>6 FьEx5;c0׎e~83A $mESTEL[E_}Hw4o MHo`'IT$6{ I<y_e76vJ@V3iF6pLϴphEtMٴM~K2P/vr)wXtP ePCPRQmGvXP$&GFPSDOD@KUP^jKrGPR"A!Ճ8Nr-rsVhEJTNU%䄀$P $gVWIWzX`%XB`WW_V4Q"dWЉjtOWBȇUUu[w[[D\U\%B{^'ruxD5_^A0`eF DH_exUS5^:@UPޘjzw~W=&xr`-صxx4,vFb16c5ƌzB> ;pw{yDIe;e`MwU<:t4tefƐ{Wf-CI{&|VE4idiք9=?`IٔNPR9TYVyXZ\iqCm 'VBWҤh]eYZ0^F8n 7fID>JGGIiЂ{4;0yI@p"-8"]8&郚|yC( Mڴ 8Ps7iB$@U P7`JUPiH@`)PJ\@bIMn@Mdyg>uXA#OUbHIqFA7ě)BkUNF( _Ki?`Uif>OȞaIȵZtiy7}7yO QT+U^d"E#@Y Z'P0,:/c$ZߓIzLtMZWA2GNf|DJf9P( dj.Jp$B-dpFq8&>Z{ѥvFIQk!S-:Zzک*&V$tDp og'UX$H QDD;'`;n&:zaBF=jE^M`P 2L;F o.egz^i1# QEPtDH$ 8m &Z T pX䯬 zDFXKePumn *o*6ZSM+jsF)Ph֒ C_0I;g9J;o{pƜɄ ,:j˿H)-DƋ,BȒҌ?@Pu&DރY 1%s{9Tiˮr غ+ 5VpAzWYIDXD$o$ >q+LJ|5cˈH1,VÅxòe_)ƀwa5y l2V\ pl\jx\:~ÀLȜ)B=IWdtѹ|fyBG=̵}^ڶ~7D nD)'BF5MmBAj)B}D$5{=!U*%DKQ:PK"I+ )tK :N'_$Y0 mAH6Z@Q /ֹKf45>!:Kj-}-Mf0}c/ l[ < :rLՉA D[8kn 4>H; M53H=NjZMlގć&@ 4|=Fi&fc{OWVn دN~TN`(9JR3CΞط؋-ĺC8,ǁK!j"$@gNG"dIcʐ,fOf5>-zif7<V^FD_@4@A0 z_jY~?_ FDKF$$W44C+ mJ&.B(^S,EA}!=Ёf4HDI7$Okmԫ@a=ǿ MKx9ͬu-0.ӻDR5z^[B=]S']-~J؊u>Z5H .dC%NTTNj7~$YI)UdI2$"lM9uOCȁad.eNHh@0$n&%{#@p "g׶u 0,ZE"a(&%`t@(Z;P  [l±Y6E԰d&0I7Iݼ'^'`wR0r⅑v"ݻwa&!CiTn| _y[hd@ͅT@! 9 c( !^A'(  H+hC =#lr#,PN3( 6n1}rH"dI +=&@RȎ  hʥaB+R0A{DnR@?<sϝHS RN CzX*a- H6+x 1<+ @QFMa"pf[sW` ~HOdoB MO SOR#Nt+w[&H! :,(@0a_x` 6Bxava#xb+b3xc;cCydK6dS.2:l^}'#mxc-@ Ze5:zJZX( |LBZs4D߰! FUKolBH+@% )oQ!dHoO ACWS/t8 U'rl58Ӱy:(H-"%"&8!^ ޙj*lS,'W%\uT(bb(G|ZhLxyB ף D >DZ$c]o̤&<Xde+]ߩ-n\Ve/ B @ p=AM9Le.clƈ: ` 44M1M (=H@k$rر9xsL8qZDl?CC) @ -MA B5P6ԡy~[PPG p! Bb$)J 02 hcc1qL))$-$BȄ,ә8mMnӜY'@ z$te`B"TN (V5Rs$ܫudR;{& F#p<p1=E@,c-ӵeDzUcTsq rN_ʗ')#%jQzTBDaIejSTFUSjUzUfU[jWj$L9p x7lliEѾ*ǥ5iQK]9R5 8YR*R25cنǶvqq[8ISp~`NsAXp-2`Uy8- 7.c2[uCp\Xz"OmJ1tNb 0xHƂi.' o\qC)96mtbM\0\ uD-Jwh4{'hCkڊ STB5.eJ\$\0jj,GAz\;!Jmե*WLEܮ]Wӷ˧=ݗ ~p) gxpG\x-~qg\zA@;>A4c(`'zL՗k,X^7eP|=mJƮrxˁn0 &,8I 솫UVtĆ[ܤ+GݴD{wsygXQ Bzyw>A & >K&:@ZLFx`%Fa 'B!QC%~ \1S$@@=H,J70>䛍ZĤG^$2`2/#1C)9;EXc?#YX4* @?OqRFrC֋&t9[ L)JΑD{-<*=lH]:G+A{Ƀ# $I,J03% mjxvllj ͍)72tmG2?J3AҁC2Gy )0ƌF峒]"SQP^ԕr\]60==ZS遭@@&{d|TVc@hȓFu)cȈA&п-[ޯUU}*I(HA`#8Lɕ<*m_X%ؒj7 `Na^ana~aaa6=<ҳKhˡKձZ& D=E[["%Hz͸eD1mL!"Wa<$;6MD\Pl؜44<59[Jb,*íb@Ymu5b@lN ,,e[kOxO3%0Q-MP" uP/P9݃)ݰnNn^nnna)X@1 E9 4d*)Fl,jrC0&̖CLB}údۛhdFKDJe-ξ\VS_܃Mѵ戡f fµ2n0-ΆIgxQ#ѳ]j >+=2nH^. .q k lAiS@k?\~4 7pEjꇱjiRsjj`fE <` ]t q셹.BVq',a8۾tLtMtNtOtPuQoEբ nΫJ$>hXhbxb).oî  0> c3v4@dc+1άcМ@=N>NcaBCNlDMp.[@;İG\MfLO~7Pή-IFrV`teZ Zee `. -f0Pd^}Pq&WT'$m q.1(~ [݁8РQCzgcO3%QR"5~vR.%UR-MUU >vo#v.SќST]3<=M-r8)Tb<ԙTFsFr$TmK MťRPjFUVuU1)X%Ak|G.7UӡNՙ&0Dk`vַ΂^VA'Vfk;N3fWt'Plwmly7zƔlEDn-؅M v`6Lq,'SD 733ТG |$uDEp D #& lP/@!8l f080 'Db;v0& 2k_09O,>Q1$@g~v>  1cp`k^t )_E@p 7=  $xh4@`q!C ;aA:%MZ2pA)%UjWr@6C\9: #Ȑ- у e-!Da?xGAp !CD WDŒw% L jE*1  b ؀z8@dt^Tp"@K8iDA7>$ Eۻ; 껯F)+ɯ8.nZKt*ABp7  7PshAuqCv( r 80.mLD=+B}tB?@?K .g1B5]R]=6e}6i6m6q=7u}7y7}7|Kz MC: wcEiPP4K$N 9衋 #B%Y0W I| q(-ܙzp .|0 WDDJ4P= ;CJ4=:F @>'Y ;1%  'D' 9X+!S$i䎔%1|^" P@N#,a ?z0'CK)F P]I \|Ep(H 3ZX؏d(\*z 4 X*ӞvIHMM^8|4K2Rd#,f3r,hC+ђ=-jSղ}-lc+ٶ.&xA:GD01 b\G;e2[1@}8ɱs#] NBC3➧u=/z@2 N yQ.'&G;ZHT#Ep=07:(PB F(C 2Q XT\!Ԧ:U<*&>ۊu,d:jk$2 r &,!s-buRAz1td%;wW65Ȍf6YA\z"s^E撰f>3Ӭ5n~3,9ӹbjXɟiR cb4 {)m9;Ss0nv~v7(P/x@ykT!QjaO{%(>[_ )6Mq`yx:`=!/Ő3Ix`!D"|KlE)RъX"U.r.Y%)m= ʏ$NQrؑ"c BIKbRTd@)J \%\IXʒ˼e.AK69 BOS&"Fu`={%?^򆙠M2ЇEhE/:'"Xe9Mq֝j̩A2Al<)mJeh#R\&U#W959ekbѓ=1lWK¤A$[Ӿ=s=gpKe[m&m Z@SKb%a9yL0:ivdz\!xȋJJ4x? 6@*\a0A ԒeA\}aK~yCȏt  Dߣ п@ CtUHQ rʡ0aB`)= HlA N!^A hԀ t,1]S6mСUҘaؘdpӥU! "C@L} ,;IE-C@Q] OmL|8Y@1BxGǕ "+" (0UUZ$rMYAY+#2^D.D ЀA2F4N#5V5^#6f# `DI`iTDpDĤi#=Y  8Gю[wy@ĪLNEի@QeO%Ԯ[O=$RP[YbHжP и [ [ !QBm۾Mї[` \9T~1JEayLUtIo]Rxʼn-RɕɱRBܣxH3R/T%@8r: 9%$Ĺ aL$:?9b@%yBBC9D%$]`_&&MٝߑMR-TbP]UVZAXWXY.~k^Hq)Lda'yy'zz'{{͞YL'"i\_yGj"8KF8ᗌ\`d@(zv [ * ⠊NZ5JAl(!\ʇ5#vir]anx!!ϐ&Ҁ0U &fK%Sacx)Z!"M@".b#iJBP"4s х-' ( ʌ"&̜bUW\b,b--b/h cL#A-#M43ڪ++&.+6>+FN+V @` 7'koa t,rH Mv+ 1I +dE $˲+`+>-LLk:,fn,v~,ȆȎ,ɖCdk|7>``D}: WcҀ,rMn_DDs_Uxa(`HDN-|ఙB`kNۈH!d`Fmh ! 6bl$)U1 :QRX]NiTfik- j v!ȍ\a 4lȡaҡLBD`@Hm **"#j梊$V"AHl&n6ɄzUP̌GB^ȀȢ/V "-r-⫦Ub0.+vDLk#^/00'/07?pX'NcL8F:1d#2  Qt} d VeBRe(yD\$hfdЯu ` ?1H |Ao\XPqJ \[Lv[vܖMJ NNڐKQQWRSz1G.8Y%9\ UXl%R\=T.fYv&e(%)ɥ[\\,%̹/1*_",1fэEH%d >5fb-A}&qؑfٝaڥ4KB&Tlm*ޔP}oQ&SpJqZ%Vss>'MgmZ4ۜa%xžA>A4B'B/4CK t`KVCpL'nW44,~(`Kaњaw-wX(y8 'VxZ b-Zډ~mb@HC׶vVt-i ) ,("4rb)Y\<L5UO抩i!:L֟B,.;u0&??cgǺ:׺:FuwF'ٖ:+z4~nD;w8 @`@C9# A{DΛ;zA8zDH:;<<‹J@ cMPK8ß!A }΄yWe+݄&\ ,{ ˷N}0eHb4^LR4tcAx( @ ϸOx_hhk;߀8mlQ` @A V )%AFK,&A9֗ PЊ>U>\"we#_Q@@盻R0 5DA >2ez!e/; xWBJj t,#&:)&ӻsQ{poKo#BA jXߒ% 2΅6U&Hp$1ȁ%0P"W,a@]P$(AlܠʖNď+`F7}zGW;>PrlРn00ɩ :ALa"'*J(M<UL8Ё &m "\ 80B "(@ R!#>dW2 ^~%-5ޘ=]8@0OoUVNZ; v#npIKL@P餕~kgze/!rqn Ha$p*%v}0 ;01n#:h鏒b\I a$2$`@A) EΩp̆́æ _dp]O`#V&BH.'sr#  \OaLN|)!$qG ! "5`x@ Rp28JH"A J@>t$OxsG& w! 0 ( ԧ M (R4DjzH(`+@`U6J@Шp x" HhE4BтPF7"m.ZIh.0*[@ 7X,O  Uas@AGUG HJֲE;H@r`1PytV@U^8THB 2#8`r7{x],>2Z $EK\9R`*W/|1!A`d"Gp$$#)JK^& z (GI;$R Ѕ3 }]TșkzKJCf/Q c4ZS.9NySAPZTIURT>QTZU^YVU~abpi5j~Nuh b`$y+d@iDCh@RL6 QB+f9Ya 'ᗰ<(HC*ґGFWVRϤҾ'8ny[dLnk:)O,䓟@+V%v1@f5[~w ‡,\]UjguXČmtbiEy5 O&\*M.ˠ5Hl0zK!WL8F!kaT/#VYb1i\c $Pe5[SN U 8YHY%h !HlYJ8 KS5Mlեmmk(XC#RKƳo Pg&s gUr\>:-_:˧k'hŁB :S^[f#1u{&_ g>}櫠pZc@L 0mG}I`/P )\a ʐѽn0$-(.O<yE0iіbS8FDZ2qǑOtq糖<'Aqxͬ"4jna,9E`%8$Ȅߩ/yrQ@Fّ? )HuPs)% 5O"DcJE/zvӏPhz@QQ HK nQP1VnP,IZVޫxJdKX؈ B  ŢI^C0,_  Ѥ[$&Q Qmj¬\ B $Lgg/#XM/lO`.# FvҌ@֬Lmsܦ ofoGmG&O",sdPFRgu! nh` .O"΋̈6 /*5`NNTn>"\" gNZ tnUx 5) C` 锎iЕn(siz)&gŽ01%DndN1sh.!T )6Os@J) "p6 L%T* 1o' B7$TbLJO/h/lBh7sC::;S;;, jF @2.1ɦjbƏ!C0@+ ;z~:S&juO0+L>B}+LQ=7)h٘I$+4BS&"H&^PO`fpFQkb EUTH   10 0}NJ  JoHoHp] J w + e+L"dQTOOOPUPզzs< @tj&/*SpfFhHq/LPC.TR?n? hQ*l =AAkEn SЌ1p-h͓1ҨsUT5.q 1u>mUnBsB88_cemynvnKLAQ} 3@~!!M" "Z.2R6<܎$X\QXx`#*%gS&GV>'n舀'H(NfR<hb* @RbH4I`&qdb,,"-eK ">)F).e.. fHD.0) 3h,dj\D de#33.*BSbWI;NsoX35 *6ch>(pnOw,~sw\33S99#1v#zuw72wxWxxxyWyyyz %ēξC| +7e8}f@ ѨB!cC}*<!52bDi\u| X@sx}ȠHDڈB@b_T5F;ع2GKYrdoVXo\%IpcI"gI{ffC:ؽTWhC6Yqj8` BQL ,qBL]fc tMl O"W vT sX bl¡x#fW:ς9חY٘YٙzLF!BSՊ:rT{0 XXq n``8KFYE&t&s-2TGb e_ 6 j-P`NDdNxQzf :ڠvF!@]ӣHTUJ.Y6?  RZCL () 0& `,h {` yjZǚڬϚX`U2#@q9@@2E ϦqUu" 8` lqVC+{2 \-7_`%|@ tr@r`UNP0,? @ҙ<@ ;`hh,SS,{.V$2( r ` r \| bK9ۼߢ638* ;r F`x `h NN\#ab *=\?+N8.˶*@ dHTNUc+ zK#@` tEƃ+ !&=]PĢ a\ȣ\*T8@ \|ǁ\ʣ\Lq!ਧ Mm"` &@Wf8\] ]#]'+/3]7;?C]G]*!6S]WՁw^}gk֋cw{ץ*3ԇ,ؓ,6 ]ٟ,5 ګ/ԋڭ]ۭ,]=]!l!,!9 a]6l!*Hŋ3j܈NJX$b/{JVc$˗0cʜI͛8oCIΟ@ٳb>*]ʴӧPJ]/9P" VDL;$z0|A"#ٷpʭA `PbK ްqn/o''QC G?/o~Q7?~㫿>kB? S+xz b`jZ0(&AD8B>(_vP1Ar @IP찃BHPL(:]1ĐF {`;v9n1h(P(d#8>:0# н:ˁ r@=`bW zN $L 4 $JMpJ䒙4,e )AVe<ɀ*P3jB J ]x :@k%$@#F zHh@=8|FHp`t2 pT PI|{M `P#( K=$\IL H N49 Gx\vjM P0F1*NE LtC& @ $(B0`%JL0e<J^.&b5\j%sKki:LcP!` [@\`A"* 8P68=gH`;b  ljEPGD(I܁ *Lv >w "r7P!+/HGꢊD .@2jN h;'L [ΰ7{ésU" N>/&)$M`{B/oGbP>@)HB;_ o50F`(8\,{Ch@P@yD~/xD<Wg"!6B\ PAa}$m˗h z$VЁhdԥi" A<N!A/ ~VK.Xݱx T( ~!@#/A8@ &0d=l\QB fvū@ z0qS@xXȦ4|@s<%{Iz=@^&G%}+w` d@ `@4'ጮkܠ H1Ο^[]5?B@'|p}k;ЏO[Ͼ}OOOϿ8Xx ؀8Xx؁ "8$X&x(*,؂.0284X6x8:<؃>@B8DXFxHJL؄NPR8TXVxXZ\؅^`b8dXfxhjl؆npr8tXvxxz|؇~8Xx؈8Xx؉8Xx؊8Xx؋8XxȘʸ،8Xxؘڸ؍8Xx蘎긎؎8Xx؏9Yy ِ9Yyّ "9$Y&y(*,ْ.0294Y6y8:<ٓ>@B9DYFyHJLٔNPR9TYVyXZ\ٕ^`b9dYfyhjlٖnpr9tYvyxz|ٗ~9Yy٘9Yyٙ9Yyٚ9Yyٛ9Yyșʹٜ9Yyؙڹٝ9Yy虞깞ٞ9Yyٟ:Zz ڠ:Zzڡ ":$Z&z(*,ڢ.02:4Z6z8:<ڣ>@B:DZFzHJLڤNPR:TZVzXZ\ڥ^`b:dZfzhjlڦnpr:tZvzxz|ڧ~:Zzڨ:Zzک:Zzڪ:Zzګ:ZzȚʺڬ:Zꀉ#ݷڭ:Zz*@;z|,ӮZO:T8Hگ;[{ ۰;[{۱ ";$[&{(*,۲.0˘4[6{8:<۳>@B;D[F{HJL۴NPR;T[V{XZ\۵^`b;d[f{hjl۶npr;t[v{xz|JB2m@K{V~ѷRC:ĸ {!J`ѹ[+iV۸ۺE\+dG[CJ! ,!y8;J3;Mz_;4$wF#ȳ>JIfԠJa_h,Vb8l `;ufl@VcVـĞ y@`HĂ)> X@{"Dwt'͜ɓ(SڠF *cʜIft aϟNla;-\ʔ1V:BG {dljRV`;5up@ΗKXa >aqGAzAGhNM#KIgz&kYӨcހHqjDXf˥.tM&wlI/u6{Ӧ(IpGBԆA~I IBL"F:򑐌$'IJZ̤&7Nz (GIRL*WV򕰌,gIZ̥.w^ 0IbL2f:Ќ4IjZ̦6nz 8IrL:v~ @JЂMBІ:D'JъZͨF7юz HGJҒ(MJWҖ0LgJӚ8ͩNwӞ@ PJԢHMRԦ:PTJժZXͪVծz` XJֲhMZֶp\J׺xͫ^׾ `KMb:d'KZͬf7z hGKҚMjWֺlgKͭnw pKMr:ЍtKZͮvz xKMz|Kͯ~LN;'L [ΰ7{ GL(NW0gL8αw@L"HN&;PL*[Xβ.{`L2hN6pL:xγ>πMBЈNF;ҴtYҘ42M{ӠCMRm^4 % ՊB:/h h[# 58 xCZ ;x5&rhkЎ6iTzζo!!, 5I6D';C "56 '?gI4]!, H*\p!!PċDbpGCIɐ=Z@HTN7vxϟe1'F "I@ J5$Q*M<4ׯS|z"Nhӎdt!f%)iڻ$]Q,Y0~ꊷȘ + i!,1*а˘3k̙a Z,"X$3'L$ zH#AMć@!kڌBi ApE AɐPDe4jH *̇g#-"~Dؖ䞦Q]LIC(~rm h@I ЂІ:vJ{@6 z )@9 $MH @4Xa"Lczъ@ I0C@;:Ӟ$5)MRjКn9eT P% h`Ā6@UT O;=`T`d5G1PV6`axY l`,`A ` 3 ac@U?AZwPv;P<M ; %m0 Vo :Wŀa 4{uoOKZW 60hu{.«&pk` h`ZaQa@|: V^j A N6A|80 u +4؃ 64AV60^5"Ak|;@%G0+t Umr02p@bC/MȭPT,N@8jfj_ :`^!T5Yп赢 u]S )شOPXa p 6WbAk`YA:V~bPB ha2xE@ P (ejҠ wϝ=}.L &asPwL٭n CE7) )d/;3% pKu_Y@2$ 7L+6HBZ0`C7pskSԽ5zXc# Mly`y`;42F-06`AAv0q?01`V ~;xiQ%w ^{uPC=Q@A]|C?ϛzV>у.] f(.mkO{7 \G?jg@6$a׽à]:EXXZekY^eFWFz'Wrez`pwP\, PiU eL cPfł TVPl8P.0hCQ5b`:5{` IP_ `mh|Hz_y`m'pt ZX'3? a|emV0Ʌs4o'N E]U8XvR؈|RP_utJ5`m8Xx؊8Xx؋8XxȘʸ،8Xxؘڸ؍8Xx蘎긎؎8Xx؏9Yy ِ9Yyّ "9$Y&y(*,ْ.0294Y6y8:<ٓ>@B9DYFyHJLٔNPR9TYVyXZ\ٕ^`b9dYfyhjlٖnpr9tYvyxz|ٗ~9Yy٘9Yyٙ9Yyٚ9Yyٛ9Yyșʹٜ9Yyؙڹٝ9Yy虞깞ٞ9Yyٟ:Zz ڠ:Zzڡ ":$Z&z(*,ڢ.02:4Z6z8:<ڣ>@B:DZFzHJLڤNPR:TZVzXZ\ڥ^`b:dZfzhjlڦnpr:tZvzxz|ڧ~:Zzڨ:Zzک:Zzڪ:Zzګ:ZzȚʺڬ:Zzؚںڭ:Zz蚮꺮ڮ:Zzگ;[{ ۰;[{۱ ";$[&{(*,۲.02;4[6{8:<۳>@B;D[F{HJL۴NPR;T[V{XZ\۵^`b;d[f{hjl۶npr;t[v{xz|۷~;[{۸;[{;G;[{;к;[{;2ۻ;ċ4[țʻۼk;[{ثћ۽[{蛾k仾k;{ ,7;| <@ ܹt|`…!# !l%̹@,02<4\6|8: J >@|;&QFLH[C!2,H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(tpB&X DC%0 h|F-` CE@4@* 9Լ&$3 "p0LP Yp0PtA8C(h56I@9p:@94;nA9p0OouA'Ѕ@|+uC.^pCv IJ@B  0;_ Tm *; > A>\BC=P HL: Ѐ_烂@=PF"Р#g}6@Bpm V t0!T0HЁ!jDA0 @DPt80"A;A @6?DwCDØ5ь d uCtc!x!y$X '0щPHP*m|$.I p$i?( @ @x! &-mi7r *QO/qKLO\,pf8 x0=;P0/|aI(H { MoJN0Ds6s`PKݎ PJ+R8 kd7ъR S$8pZ5!M魛N+LԞ զG)Qy-JMMjP:jA[NUU 0lVD,h*V/V$Q+[;@FCZz4$C 2P(t A@p"7XJV /A"Ls 68ٕ$An6lU[]]W/yD]+a(m>VD@ hȸU  M4vƁ" +DA 32`ɵ DB &ptSp@nf! "AkK@ra,!]Br]v)g s@BŌcL:u}{ uUH)ɐ*Vn#`o˻wDžy3A ^0`Bp Wu 0ٜġhc!`7Q?@ 6>$A v 2sО@LG$Ip3L 9` nk Xdx 6ی7/oL32 &OϜ1 ^t&;:Xn|ނêD[SNJ `Q*4HÊD^ۭ @`B,d p<# N=l/浡O `%pŸAL@ UC-dԥAr4xE,:9|.P!r|i21j\x.HZ+C+, {"p,\r ʻo|uexWyk#rmHH`KaMJHH2ssg|\ZJAI.iGF0ęR $[)`iKtLIWaR;) #cNNA7~/H1Yu;Z4&rF,4#Yx[ Bh76M~ >N;@P-)Zld`\yA&569eQ QݕΥ`#^;H %Ow6@RWQHYO7R/NPPRDR̵5CӣDJXdMG6 xv hxJ7ReX*PP:!pm1R>F9E0=0`PO#` &&wLUjv)a;ʢˆ"BbтƢ‰"Bb͂¢Š"Bbɂ‹ Y 2.#CEhFa5XVQ5:bh,X%09;wu*%C貝)`Lʦh@;]Lf:@u6i^6HzIKYYQ?`a*]۬ɬ4Fjņq/; cژ鑺Øwʦ<Ƃ;ͱ#ehs.1,KjYׅޫOmQ- _x|Т"ŨBŝbŧŜŦŕMiҧ3J*ʵJsXu#?Zl\ !2xPH:6sǏ{(_R7쿫8 7H:JOS'dkɯ(*OHOW#j,:=r[<< ᔉX${kI)|ѕN%:+Cp`pQ$)ɑjjw8jN✓Ѽj 5ws VZťƔQ7|lMR73^P1x<Ca M*)'=*))+-*-})/*1m)3 *5 9ά1MxMAG`0F69v%7)9 |tfDZ/s ) E&0 _)acC`zp%@@n%a јS&!CIP@A)JWd*c?M__0 ߎah,@t c/f@PU8$` gft8.s3?f yb{a|IAy3P{/4uPQl;kYa{V;@3pcӃfwx30(?1q^o>-&L?֊Z_V/z{;)Ϯ"Ac`ł>^ Lm+Yg6XWeW&'o)c/U9oFt$q-]00ؐIw=Oï 8 !"/v d*(H8|`8D -(6$YI)UdK1el)M9uOA%ZtI.eSQ9UYnڕ%RaŎ%[ժgծe[`Υ[ݞi_r&\ذS/fܸ`Ǒ%OVe̙C箖A&]ԩUfkرeϦ]mܹuo'iɕ/gsѥO^uٵowŏ'_yկg{ϧ_}p@ 4@TpAtA#pB +B 3pC;CCqDK4DSTqE[tEcqFkFsqG{G rH"4H$TrI&tI(rJ*J,rK.K0sL24L4TsM6tM8sN:NO@tPB 5PDUtQF QH#)J%ҙ(SN;EI*tQAݔTT-5T[]tG]5QS uV\ `4W]AvXA}%XdUvYfuYhvZjZlv[n[pw\r5\tUw]vu]xw^z^|w_~_x` 6`Vxava#xb+b3xc;cCydK6dSVye[vecyfkfsyg{gzh6hVzivizjnjzkk{l6lV{mvm{nn{oo|p 7pW|qwq#|r+r3|s;sC}tK7tSW}*!,T$9H7(\ȰÇ#JN. $!Q ,((Ǘ@a 3`ȆCJl9Ҧ3'8@B#Mfn`&4v܀A/t`AtÉuvlP q @fφ0`H3J鰴iVȃbO>XI1vfQFaMV83@ 3f6gÌSODȺ5kc˞M۸sӆv & VqCuJ XdKQ a~+([ YL@; 4hF0@xnCPC4I@BCT1D+L wէC8hCpA0w ld T 1nDi䑰!,J$t)]?a8y_?_3 h3Y?JMVhC :(XqM v03P:!Z t8D-@H4iS^ͺװc @Hy=~Xw+ @J Z@81a{ޟqߣ-&nh  <G "@L _l6ZP@pp,pU #xC!`0D C AAEDvVР@D P|/7;ؠd0!l;d۔TViel!,"$9HaX`Ç#JÆ3jx"4"`E@:l@!-2dC:$Ha&C:2t s̅89*te /c^aCW|*jVΈ#;XGƌ{aNith-D f03p` TvG ̙‹CM ]#o`áC$`FBBG:#l@,NA7_h|90t:Fpl`/j1[B$5P :,$= Q=p)Wh<(!XH M`#x!\h)Yذ*P C P=!8,(z\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗ɬTqL-ټDH9@$6!#hPP@YKٳhӪ]˶۷p}D#K(LtGѴ!L6%Ds!I$Lʔ(^:T#GtHT q#6qb&:qEE!'0 o ?+_μУKNسkνËOӫ_Ͼʼk)&JSK#&P2& TQIc%$Xr ]Y$$L P! :4P @?tAi@6Ì5@)DiH&#h"^{CSfR%c@c Xb&L %i|$Pp`k@C<q<@`5AB䣐F*餔Vj饘פPP& B #,(&fb_j$ "pApG% %ACa V\)єfv+$3IP]й%P2Y-d n WIaͧl'p%$ WlgEo ,$q(,qrH$R"ĬEB=tr! Е 31 Gkщ't= }H4  `"s_$m@Zsˈ͇P=PsG$IE&87C"'v9Br"88C?1h@c  J$(Dޖ4P'bH퓂wN净@'ܺ@$Pǥ# "@'HJл'< z" I"')1dփP0 wCR2 p@'! |b1^M!D:)%UPh;!c$qC#QC@뛑9ǷL! IQR=}`"@O h@"peE@CH@2k O!ND M"ê}qF A8iAHbfPHsR C ] &8D Ȍj&XJES8F7:sX'Far GΣX"8N,#ۤDQB1vӄTC$$ !Pf%p" JY;H%Ӡ Q@S+'ώ|`Hy޲|&04?Tܥ@BQHÜKCX>yͣJƸqM6yO@ANq"#F Hsh!yV)U`- йNV$Q9E}D&xU #ȍh${:%@Pj4?bA3Mu$f<NZyN1._ v`[@hCd@W.o ^EQk9qL Ѵ!bHH*{712оݎ C̑=H[|w?B 8G ڮB90g`7CP msp-5?IwƔ h; ( iw=R$vg Pp `/y+! _@ a<;=l`8p̀8>ӥJ 6ذ l _~UoaV=6> x X,8?}f؃@dы/;PcjpIf  703 zKpu3~ Vu `b` OWv  W}Gg| w00z;p}ȁ6pM}{,`V}'|3`0EwupFpHuW}W tc@cds|p~yM |ehgt|gAt)jhptxfgu{ f@3yh|<`,t?6_`wxלc0 gXcEכpzVxYi84lHJ0(p` {PA8ͧ-I guI(ȗ0t ל  G$9z9 -fyP4`X60ֹ9wDGZW4j>zٹj@l3atw',u0Ѕ`}@:۷~7~gk058V!}G-{_fhilçpg#X ȂXg!ɦnY* g'fxcp:Nȥx@|h*NBBG,*,ʠt:jf}bI_)KGڮsǀZz!Z!Fp;[{ ۰5v Ҷ km$[&k#{*,j)۲02i/;6{8+25<۳>0;B;D{)A[HJ+$GNPkMT[V;S{Z\+Y۵`[fd{j=lp۲nt[;vzKmx~ַ;k[fk۸[l;4˸{o۹[1;{f2ۺ[;${nK[(1ƛȻѼ;0[؛%!۽˽ [K曾۾˾ [Kۿ˿z \qKj aZ \QKJC< "\3K&,*%. 2\K6ӆ:>Đ{B\U FĆKJHNūR\ŤFVşZŘ^ƕb\+ f,j%n r\Cvz@~Ⱦǂ\BȆȊȕȎɐɒ\[EƖɣFɚ>ɞʽ Ȣ\ʋʦsAʪ(ʮ*˲\ʶC˺˾\^Ɯ̇̋͏ \͓L֜͗<0͓Bκ@: >q,~!N'"$^-}(*3.n09=46~?:.K]FHQLNNWRT^]}XZc^n`i=df~oj.lupr>{]vx災|N~肮؄^}يnِ=ٖ~韝.ڜ頎ژ<;^㨞ANG벮^M~庾SnY>~_.eЎ>k^؞qNw^}~n>~.?^ OŢ^K$ *i,0h2?.S6#b A'P*!tZIQ$(Z߹4jȁNP~" У!dH,^EU Ңͽ*RI@Ev`@( E V!-" C(`|%wJxC ,P0 v vdf"}2J  R'E@,Ŗ|.!C,r@#tJxEZ,2]rmhd`€h$@'pMThF-bB*#'1b@$e۞Fms8(W#sIVLj@CO-|@P6 X69I$9׾P.r]➷dBn+5-Bz'Q JGZws/ILX!w\?|RRy2 ovM'=^c&D!N9y2:'H Z̠7z GH(L W0 gH8̡w@ H"HL&:PH*ZX̢.z` H2hL6pH:x̣> IBL"F:򑐌$'IJZ̤&7Nz (GIRL*WV򕰌,gIZ̥.w^ 0IbL2f:Ќ4IjZ̦6nz 8IrL:v~ @JЂMBІ:D'JъZͨF7юz HGJҒ(MJWҖ0LgJӚ8ͩNwӞ@ PJԢHMRԦ:PTJժZXͪVծz` XJֲhMZֶp\J׺xͫ^׾ `KMb:d'KZͬf7z hGKҚMjWֺlgKͭnw pKMr:ЍtKZͮvz xKMz|Kͯ~LN;'L [ΰ7{ GL(NW0gL8αw@L"HN&;PL*[Xβ.{`L2hN6pL:xγ>πMBЈNF;ѐ'MJ[Ҙδ7N{ӠGMRԨNWVհgMZָεw^MbNf;ЎMj[ζn{MrNvMzη~NO;'N[ϸ7{ GN(OW0gN8Ϲw@ЇNHOҗ;PԧN[XϺַ{`NŎHpNxϻOO;񐏼^R/yo~W5GD2DPD'&a Lb#8~D&&0D&O[Ͼ{g{ALO{KdB#6A0%&GD]?_~v4 @z|HQ|H7 `~ 09 h ~g Gzw &02spzP ǀgF{|'gg~ 7|'0\b8bu`*"pI@KI`DauBP>p$@=P!7p;0 fu ]@0 M`4"P6 PQ b^P<$P!PPG@04a)u40(1I7`: 4C)9o e@ZXF ١ 8P* l$d9X(Jp!0k:0nKiTР7p&UjKzMZP*TjIycZi`[0!P0q s:mzYږڧalC@ 70;pȨ4I$)kq]\BI'@id A260pZɪI`w*ʫq )Cp\A&u(D9JڑIy4CVsz:_@4ZJ{k!2,apH*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXarʵׯ`ÊKٳhӪ]6&0le pC2۷-8hBHw0_!9Bs1{P tO~}(Ibfk@aoM6|cϮg lAQ(0(GQ\g/{#V/3~Ǝ``b 3Գ}G$E`7'p_`,Xa V``BvAu/|tcpp ,LVL|c'ڴ}H/FQcM7֑=BCT<6iS|1a 54qd|`Dgf kUfȵ{XBmoΰ  B8y<'WY[a{&JaEq]n:n3Fk (!cPoPx0w5Vҥ2u z@W3E([) S)8䁆b-ނ+.ʚmt)qBa ,uR/_a f03PVu)_A jpb'1z~ @JЂ BІ:D'JъZͨF7юz HGJҒ(MJWҖ0LgJӚ8ͩNwӞ@ PJԢJ4 `A!  j&^(`YU+LfL5~0ajUt9`[Ѳv~zy@RS B k؈ժ Mv`.5leI0iDvUQVu@ z [Zԫc5 ! @Bpp }h@\$ D(a &nuC @$ L`C`h  8Hot#@؂_ |c `AHPjDp88(K0< a S:*8C?7K78ǰ= P&Dp`p#8 K؁ vz Ri$Ap QP'P|8PBo`AWj& A `$&`Bp>Y/ zP"TGXJ `rC/p iMcFЁBpWX5C)P w5XϺַIP:3 :@ BCm!"@e]"Рr v0a `ºmp!0S•sJ5y7h:P 0N 1C ` x :@l@r80Z ʃF`! f4PL55y΋`@ߺ\CGA|8{X6hѓ;9Zq Z-\n(9p@HWztrU5A^Ё<*Xuv&yI`^p -D)#OPm` =;$o'<=% %Ar`'tH] &~3@3 @  ԫC@~)^pgG`jv,P70(P7IP/gѥ4P^=`'pmPx+(zgUo8I0%x0x{<|:p{2mb>@!8@cgeurܦm@g`[p ||%| Ghhh6ivir EL ?jF~Pi؜D0nk䧟VCkT73zCwFlFn9gnƛnoơvoIoYS]*ph$pp ` pq@eu.s2pPi|1RRW'p!y&|(r,WY7st9tP; D7uJWL_E7yuMt'u plns[ٔXum:t|wpygxxx}SWyGr0@7zPzz`~w_}8?Z!`Xywe|Yw|%Gd*~g}9CP<}DJ~~ ~|*@sGEik 8t:Щhj!8=*Ȃ.X?(Z::ȃ&(18CXEh।I@UP= 5 e2`a= "Uō`(h{pXF eG@xH~@@=0k9Ȉdz೟^o^\>`IȋHi:˘S][ט8EE!Ir;htzP8Q{;[{۸; [&镒OU58k uY7F K~> ezP2ZʪG,)L~%׬C'G}ªkϊt7g痭WլZ:Z ($?؂zJ9zK`KE?Űeq*KqW>@ڨP9Z* W`1oȲCˉ @{=ֳ+=-}Rմ舋e;]H)xB=dhhj;^]XXZַf}hjlnpr=t]vR+YKi{jLwĸPbXP[Q\S TWz(y Uk[=y;fTP%z}a{ZQV[v[[Tл_6}&`+va4;`*{Z[^k| eR#@T09pu SP⛾jP;`ߗ9tc\˵T8xgۿN p E8U{ڧ{^FrX[yPr DžJ Ez6 k铎Y/u %Ȋ|rP]:꺆\Go v.mBlqG/pɝyJZϫSlyj &˛}jz>̰}w4~w@hG7pȧ (+QԝP$TqM1tPa"Gj#Oĉ!5(2k vpm)&L@0ҘI$7(&}38KC<~+ßa}0* L@"$@d 0XhH @ qr`: #. 8 M @ hd8ʭyH 9(L C$~`AIVSh^ ᶄX0LD B 0t4n !LNvLa!8O8"&h5"JqSSM2N? 5Q3a lp0V ^uZoUW Xhx}ؤ(0.@Ђ]HA;x(\ ?w!9TQ!G.e:A p`/ b*N M~(! x@#nnB>t/r# "r0"!z( ؘ*&.J„~zP::.l"eK`uK,X$vHa[.X(lƹe6Uwe݅5$W!0Hqeγ$3$v6G|a`OJN CzX 'aʔ8,xTHHCG~UJHgzm~=9O .b3 lѤ~_׿$rC_ @(!RPA'i&sze_º\тW'(%t!t\g}ʡ+1&\au%8:P! ^ 1F,s{>9`?w{MhG>n>?IqӟBI{@EK &H#Ez \i`Bw]Xa _k¤6 Uwx;}&4Dc27al})nv]kCdev}nt[fwnx[w}o|[1dP )I3 FԤM@"l"wim^2bėT 8+5JX2!-q)rR&hAHhЁA '?fIL7i͝[7oNL Yg.'?y@]/CE/ hCgE2%/1;B)J4*lE`PiJWrk!i[0=%aƄjP~U41Щe&JpGކƌgM+vnz`#@.=o]kՋwl^z5BşxFxD""_EƺF2,w$TGARe}IhձvKzMm$[&K8Ա3 02.ATBR.U>Sr^.a" dYfyh,Jl!rG/ʗZ|iw/j/E.#K{{R0"1H0؋ٓ(S1#14*I:i141 k;[ k3ћL. %[#)c1{,ˉ&K0*2)3s 47 :3?iB34D(E: Js44JFsHKM+25_5NK93J bXCZk#B\^s!aJ16FeSEf+#J"&7vl:GwG8 73G}G~GG HH,H>6rL`L $ s=ҊӢܘ[7I#PK/jD@#@RRt,C @_Y#\ni5贁җ+L eY " P*X4BB37BӱIQ8C927Tc#?|؄؛=M yD1D1 0KTLUD!3Z+@1hFKPR؂1b JQcS_4FWk#T),=*pF]e""s|6uɁG|7yH}TJM{tGTMTNTOTP UQUR-US=UT~E{KMX 丛\Տ,DIcTD9F͢c8;c.j$: HkybZ[ בI):p ʧ"z'|:*;<'Wɣʁb(:;"Xʃ%K;Ի,˸ûb*Z;< X&$Em11K'b)JDMZ,[C3פ ,jrځ"p6!0 Hì۬ ޤ<+NȔLpI*Rd* D zڨ=ĥ-PDOR!O®]" th"ׂ-t2 8tJrvJ$ϽD50j)B% P"0:'EJeTNeU^XU+XK#tZ su_M%U.ePe;Ii-ZbN*_ &L#|8iR$IKuUv L;u¼z'rx'b}2hxʲk؉υ5XpX؈ʄXJ)J4B£FࡼWƓٛ"dZe\)ZӬ[ehZiCⴿ?| ߫*խ\:e2z-ki=A`]vNK l.@]*DkYAbA$.^k T%BMY1ۢ_'<2k_-3H&2_f!D虡anp#3`qQ3UC2j?,(K+s^ĭ!UaְJKP**GDeDb"np*N4h (a&TgU+,-4,S2VS`'rا'v: WT̀RXc؀>#P_ʃ~XXK;R)X*hiYFtِבּY~*U8=H=ͮ*| [5D ,Sd/ڈ>*bF!j-km)qbkɭي-$@\@ "gluAl5A᝖*OOZ~Am,ˑmz!S UQFP&!XE;+\I@b$8ᣀ%&}B*Ha".Q&BD>` 3DN,QfΞA^(m@@B6ZN:mm7rH[A%g#~ÈөspFv&Adȍ0N(O$@%;LC _} CJDWTWDDxCW=Y2qYXazeFg )`4@`!$q& #K KD{ a6}gWt%J2Db`:TD~W~%[veciWNJ 9pJ50w'\DP㝰 L,ڨ p!CDxNM 2@}w >xQJ$lxW~D{mt<^ !:驯4TTpF'{,T C!`0ßuQ*P@& `O1(btkCAفU+jыb4#HG<-&iIpBTɬmD"Lo+&QNSF> P%*F9 Rc+uL jTAZXJXXBE,Fx( c!!Y:s۠UiQ tF"1 I~k^˹Е 0.cm,ՑcsJF7ӭu; ` 0`)&hj K!ԊRg tbD2g¤&1@m嚅,Hbqb)!72\eCQ.y'_Ӟs1ZG49TzBL:NmN59QsVLEH- Cj"T[|ؼڣdMF"z! QR[5doz굔W6MpTnE&#t O`:)ENGHJY*B*Xѵr>>, >k8eniUr==rĹ | T L׻4WFqՀ @ dtyxU y!͈ ɘ {̗fW~~ M @A@ L@8VU鈅%hJMn QX6~ La @ϐN!D5 l 5"]dϗM|A _(a켙PYЙ?Y卟!A1РYZQAXPqU\l0P1Y@OcY bJuѫyeuZ89[q@DZ>K<">#RCX A$B&B.$C6C>$DFDN$EVEQ EѬR c xļI.K$ASEBl$d21$Qp$5-!h3dHܕUFJä-Fd(y+W$J㍄KL\P%ddՑB[@ FM ɵOơ-5e%HX8U99mxef"͵EZte~ZϽe\B\>]^&&bi5CU`rdbE9Gd2&F-TYf܁ٵfTgiyLTTހ*fQ^ o&pr~H/lq.Z4g(tJ'uZgfv~jXXY10'|\%p#O @:_TaP*f5=VA(e9b| -tVmltƢVAаZ֟(hŎnj RaA\NuA)/)R)Zia @rx]Yep 霪z{ U|1 ܗꗶn !B0 )*2BLj^j/pzX!*X^XQa¡jڪQ <Ұ]$ - !$JO" O2".$^RX"&nˈx+Ėz~ʬ«k]+l0;=cb]jZ32,f1sĢzcx"(Acˎclˆ}[̖=lPJ-I?I4mRA4LǴL4M״M4NN4O["*A"FAAQȤI .-S1AuNDTέOdV-r56Svu)G0.`%~V;1  ANycHl&AnHF)f.e.vdr];VhfQ]ߩloPQ- 8UZ_]ĩdgAAgU_ @ @|B8 r}Ƨs7sѭ h(uppda߄px _ {(mA <_mѠ-m71nKBh+6{1 U1?Km7 Ʊֶi{Iח1Zܩ&22h؁퀈9 AW 4k i2(琐w9 *22-בرN!Rs,b'H+3gY@sj"5׊B{:AFcx49^=-慣e\lx.j3?##{,)6F8"ZxTeQ;n4lHAtO3RJѭDzC:;;'KN:DC:N&[u܂5ō4 mO%e#=;5I[e$ƼnpЉݽ_^aeGLc.{]c;`fJ>?@ j{T_g=gt<{t*F wbr'Z /BdϧvS7^qӧugr/pHWɀJ#PZgipRc (MAzh KGi}/uIxoqWÄ`nM.L‰$ GA#zV?G!/kSr׳ sFyH s\jZ%D3:+S,s2&/J: Q1Zcz%0D 6tbD)B$!D F_8xxeʅPvP@ /&H̱#;?T6ujT'zkV[v䄙`f[mZkٶu6% KPrn^{p` 6|qbŋ7vrdɓ)W|sf͛9wthюo!e.dQDS8 yND qcNכ{fXwᚋLA7}zhХđwjPO-qy 5:͋Qv0Fq0$$2&~Hl "7lH"va.l6~"`h H,DAKABx>0 8'6:~p!!a z04!Add#H0?Ű%0 Ml'@ b(<辱T1g(M.wXF3iTF7qXG;y܍iqr3\rH9Nu y E;w#DA 9HSc%,A;KXɐ(O8 0HD$2QT4h1D$#(}3T$AKg%)Ɇ’v%0 @Yf PhN"d!8tt K e MGqCC|C\dTŐV3JurTXbtūjFV"-VI+. 4΂et[V%Ĩ3S ?E 9 _4:nPh-SHڐA'hA61$f*cjF2u2[fg? ]4}DJ#_5jY е}(lAB@P]8XYuh 4 ~@ \(@@Ȃ^PYL[UxF`Sȴ.s]@N#2ӺN!q@7]s +^Ր<0OJ^S;)T%,Yas@i Cj47,o5 `*@"8da@ kX-|! BA#dExb 1HA8[ H(G8z 'KA@ P-PdЀ 9+-b]\f3iVf7q\g;ߙH`{\E*I$$ F2B@9hDr+/eDt:KTf%@y\Xʒ mR7%/KcEf #LSH8&$j H 'EiJRtXOsx mJ3`Ԭ͖ P` )J! }hD' hBeрc!%pe҄Ô,=ifRp4ZӪVhpڼB/P>:ZT?QvIPT0[kSUҤ&^`11!_ X rȔt.ݯx=Z`ٺ4iL]VبMj VX%q1P}3Ymifthhu^VB‡(0q}ms[/5SxWޛꅷ^^V}ߺ#FMȀP`U"!=I?3 n# W0;| gP3&![}(vaA#CװJyN&G&r\O%3 %}("ʬ ˴L(̨P'+/3P7;?CPG<@C>̄!!P& L "n.0,͑i*&i4)͒B<<41 2IFfc>B!.#s 8 Pd`'H`v`T -lюtx-׊C͙M.٪陈ז)پJnLMǺK0pۺMܩ\$􉟴N08 C`lm@E 0gNRq`C T6}:Υ@E^J"X&3*nP-306Ny-xpE1PʨP.xꩢ*1< MȊY `@d`f lF.fN+i82*$3 kn +(4 ak䎴0V`< SfQMrr``@( .$/(OuFt&u8,sǻkwwR+y^zfjO ޫ& pvKxr0R fH !#`0pH32,%A,C´O(5? 2CH,Lb \,` oh<zI ~9ЉD,""K2"P;Ǔ<<=S=ד==>S>Z׺HR 8|- wc -p$30 (/0s4Bшdzpـdא>KE )\taP- 9,q005<@V^^EBFxQC) 1t1T ᪱LNLY.Y28 11HMtZa0X nm&(R0/c"N##jR-$#IR-S®%?`n10&9 N'β &`P-(3W*r2r2,.A-u-Co..=#3u/O Sp #V+50'I GD43Zӂ^O66wsR6^,3܏8 ztǔH9/:/ɪɮs>?235DdKdOeSVeWe[e_fcVfg12jIGB)bg#" bB'"h? 7@yPA0A tAj6,#BhC - +F?tHl A41Mx"F~ddh!6z nCGD+0Wq-g2 jroIG!GG+qmHiHōC Cj Oѩ+Q Jot A* Tpz_p7^n brhN$KM/CWLt4nl5ƕB4nOP0Hj;#VM@H+&Y5V Q #y"ejp~ d qMka$"*34R9xjS$;X#NTQ3TTT=#U# 1\&.hm0 Nt0hpp~{ Yq'oX!("yشĵX@`X,-w0/U.O/SZX-3u[;[JU15n0|@vr=cNsN1']&9^@¸o_ w#H!69xub}@!66<7v`Y,asyv97 VayLv8k b5Bbyȇ| Ȟs5v8V׳fIV4fYǙٜYי" Gpε +% `XWՆYg5'{X1F .;E/ gPt* rB+RrR-,XZX{Zeҏ ;\i0 01#)8 >4 BZ lh% 3+!NsRB-d9g6`y7m8qS7 a=a9"6y9b9csc+/0;1"\$|%L›Ac˳˿\ǜ\ͻsj s"J".t8 8%[%i! 2 }j!: ScBU#á! chbR!>BDiDNp?@@%BqsqqSu=Fezs}szzةtHzmW0z!7-!4WM 7xzPpQRrU%ܚ2{zZ|:|{3;NQ[9 0};~Ev  J4ln!H;St-XՂ!Fb(&5Ub㪵e#)WAҶ)SX}#Y3\U_rώ <=k箹㹣 `Zb˼BXqiŖp{{]*YUϸ.;ݒ-_Zw 90_5 ]0 y^oX9G _b)61YHq=o6ugܗk<{uYDž{3~ Q'ȅ,|c70)\IY_ן_?s=܌\":)N ((@!:tD #NcN";z2H),Q#Ǒ,[|Y2 |2ΝcάyС.}ҴI4҇;:82N KZ'i؅ֱ#M܈2"-}"|@Dp4ol$8UxqAt}Ď (Ybac"#/庞A{Đ p{?-vlܺy>>@ D6[WyS{HQΛG0Ⱁ#1wɕWDD^a~Dd'\]i)`x H 6qIFCC' Q*1DW17%x )WL ŋ1r@ IH K6S2PYEDyėdXjb`: TDq^5gwn'~YUv":F#ЁXje10 $zڥ\ȐDXEt*: 0?Pp i8DUHȰA+_ `Ai8i;e ;0p0A5a ,CT8 n$P.AC#XQP;\P06PJ8Å pWloS<F#Z.NKC /sBɳ8cz *z̒J3R-tX].1(<p7(,Awc aU dPz@F-]Kd$f$-@؃ B w!*`p 2 ihC#;$~0 6HDH D(>G="%G@Wؑ?B"<ԱAR+=h,G> k'|"[2PI\2'? Pr,)OTrl+_ Xr-o\rZI2! H)d%ILN" d#|&APj(@I'+~329'LYAb/-)03/$HiS@FI@AvP34IbA#?HȀ .І&6^LprJ*G8!NJ )l':өLI;7rƣNG=qO'FG?Y޹ %AQ"4 `@ ^pJfD(R\ͨF?ڊVc s ;J5WueT"rDU. LӛTH5Me,5<`O}$fTt$Exfr*+ZU*|UveL]',Y@5j]+tE!JADPt-@,,_D&0`/^~c%Mߐe~;2 f2(f(gޣLiLsZz7&5݀C8z,Mld3[C6 nی&Td_gE*T^9ʡNu$M'eyʆ4^fW˼;<<2_wuz^ ؍yϻwעO}k7-8%_ЀT F;F#8Zsl9T@ NA/RgXVr05uMI.VM|bH$6K0gT7:6돁$/HE$ݏ }MR𮷽|{ |/+| ǐ/&@T&HPm!s@zSkbHJINh^$"8ɗ{3ɉ+NHlƂPĠJ@ Zli9Q(x:2p@! Np Y)nҖ8hDOZ:NMӜ<-dLɡ=a\T>2(9ptJ5&PuPB@b? L))=L +pm :@mB I}l%?VӢzFm5/ʤi#5Jyc}l0"󌐗Q_@Qv!@pAX@^D41H ,2!ہ,=<%3u&/0UH0_^2}_uC15`,_.I 2``8:C`3~%^p/0@Gw>MAR`*!* 9YI~£zq8s{w$I2We reeceeCeSH^?(6pm9l|S4Z-%ur bFkgQFk&D>kAkE4xlklθDŶ،$m@FfIF1ۆ2P6J>A76 83q }FoHVhQ4EV  )IiɑK7'o"$grTH(MsP$sԘI1yzTsI9N5iJ/Y0tQEL~vxvzO ay RWQkBy0=&0&n.v_pR~7w2Swwkyw=tf1xFemIxmxY,PU R V!y[U,Qnh4VzeV$0 tUC|WZ$7[`dB@&{'|5&}YwY|uI%YZ~5~Bbuf~E2+[[++$,4^:Hɵ\G3D8^G-*. ""&/E0Z`/(` EY+s 63ܙ0փ5fghaMShC"F#bbcS6Yd8dE7sNbq8h҆Y:[fhTt}Hyfcveezȅ>ff=w=GY,{&CCGV>8ha>ky?jOA(8x!X00@PPr '&2DC88EHlYӸ$FI؍ՆO;{)o"GtvGzGd9얄;JIJ jʫ꫿ *JJp 4avJJK9Ē+wr69ђ,rjs0I49N܊;NZtBGtFtW0DC0eI9Q{{SDi?evq'kז?;EZwuǖwBeEEwئxթx ySiBuy&VY" DY}aYךǚ9EśW}כ>KI}‰Z7gwFX4~sיg7{Nw),b֝rVɞ)9h4Y_)h:D{˟i`4I6`1S*:@(GGF.HRx)T(#Bbwd,VOQSS֣Pnxph8~XAhpNZ!Zʹ18H.*-5#aKsYɯJd9kXHkKlبjXE(FHm߈x$c'HڒI*4olL9K ,#L%l')+- E\II픶r$*Mj&qMZ+y$4'HINŒCWt76L3Dy@IV)Qi:Q}9G4Iuv{v$Ra[byo{LpwmWIG[ܗ4ӱGU( z,! yYIa>PsUWw%;WcQg+%|?|'LK˳l|G E+}ٴZE~kHZx(DŽM)ʰi#=_eMH1FpBb7w+%(.ȷ+-x2`8 Ja4jU۪KOQ8Q0Ibh`[#)c9WS [1j(l(Xƣ#uػiIzDD<ˤ8Pڈw(hˢxkҡ8b= "_wJ@>,piƩk>c ";8VED{T8S鸎6 ܦL4\_@4nD$Sڧݑ  ̐-۳M۵m۷۹ۻ۽ I9L'Z9&)w>*Sl?KGN=D1NsQJm*UX,̽tgJIkL,&9%{(Ppvpv,h)ig)y} w؛C [DExx˗ xL]z9$A(ѓ{̈́NaT3`4*8{&*#+*ac89fk\Vs<Ժ C-gABuqV_NQm0UͼY8K^R* P$u`w#;lnrjhJׂ֡[+ˌˬe؜J3}>hn #aھ I6O9?A/COEoG}1zA|HKG彿MZNI\/)T+l쵗Yb[dͦbKIQOnkY>[(:><~2]nF~+?1} DPB >\DFA #!@R$!Vrx@D  4A SH@b!vt!ePDF>U ^6A& xrci Pz)iTO:%[EH0V^o K.^1H(4RÕ"Vqȓ-y1h#9ؑb., Єb!ča"v[Ia? P c˚ dĞ?@>q ^}4Th )%$!0d sPNt=%$B$: l?D/G ĂNLq@#cBTࠃv( A8/`I"bS/H Pb pv"@~ɠ>3O=|h-O@%PCNJA 4RI'RK/4SM7SO?5TQG%TSOE5UUWeUW_5VJo) Y ꉡUI "~(P= hmg= @7E6mpԟ@ZDzPBbH a((=ALPȏ`J8HPAێE&OQ"XA{gsdeԊ`|D!%́1<dQ*(n}+PB =cK%nHB?8 $H ]?HrTA,\P;#+ OI7uYwSO'u#`X而RgnmA% v! _;4`M*:AHH DA#Pq`@" p ,"/r1pЃ Q/0jBRzF)AEhB O0Q hD%:QVԢhF5QvԣiHE:RԤPT^1dp!ZL"WZO-j9SB5ȴeTOk[銑%TN%:Kסe/|K$8ETTQA`9Lp![% b&M.("@L;8P`l`>hQAP2 H tfN F{YiJ%599(Qd_bKO^f1`mm ' $Ux8p">Of== ' v6}\0mue[ÝQf: |7v]~!xM$׼*z-~OqP.̗/OsnN58EkA`"oS K\ҫ( dc@V d`@LYQNGAr /p-4 cȚʆHF0Iz@e+?  iaz7R] Ft]QuthX9KAHEhLAn,G rղf ck?:eֈDjXQ96V$;\Kb9aN;I렸K,P) +y&0a Ą33M2ޠ6Z Ʀ"†yfzU3T˜fkpeT 4[pڶIO⚡҉%-buWWgR*TUhuڐ NH-Ru-c!K9 կ6u^u];z| $`7Z!T0zV(4"APЃ/Qy\:VcSBVYy*lXLElkZGkUS8?[@aF1NɅ\(T ؂Ƞ@ (Xr"0‘nA bR| v/j+I0)|0K? 0Qb0つdcAA0걞۞1!.S=1z[)8J00)BPx3D2%[& +2a 20[!.c/B3B1B2 B4S3j3 D; r+"@"? @s"</`.P >ԞxE% 1"5"a59ZNTX\$5< ][ 6E6$ c@I*J:f{6M6I$0Q6% Q @ X9]b 1؁#('[ {&~7` 8dzc &#c&jv\fr8[&$I9㓑[{'+3y5ɧ;/`ddHUȌH>: $ɒ4ɓDɔTɕdɖtɗɘə.@2c ,;a! cNAJ 8Գ9<$*B<40F1$.` >M[ON0㔁\NQ+#DWDU8MC]#EP5Q2D\c EEPEdEG A@L6Nj"6=ٶ 0/g" Z9#KU Gǃ8Ou N8 FlxUl|䦍3ǏFCd'w7ut{r;IpWeiklmnopq%Whkɝ|Lpq+xJhʷ[RclJT* 몿ە{+v;MYȂ!8*,֛Z=٣= >L"|驭[̜5 %]&! +<70VN0޼(11sCp?[  (!&ΫN˵NAl@T@ O[ KZ|CZHÑ9x\B1xeQP  @Q: 9dP#%(7`%"^(4𺇨P(P) Q'ղ-P%u3ZQ6kQQy436,艰H^Ƌ(-hE_@ݐH#49@LDaEcD+ /E^ħE$  x,--ETRU+YCE^3SS 4%5]Em7}GC )`"tF AQArʁFMVJMݥt8 f-`Mֆ XE(}Br\u,Gv|ՂdKNvLjKzGVGu5UX,Q8PpZr2'DIycEeL,pnUVU:r}gEgfhijklmnok0Vv"S_Y~M*}]Js紃g}M؃ʇz!<,J!aaቈIM께kIT̤EL-ڥ=Z4CMQڋᓭZLМVd Bá\xI ˩j-5~ܯP@ "1ljkcOÓ`>;6Iy}Bƾ `3%^r3e`CqC<"94l]"}"E+ (c0*B;4I1Ld(V#n+>S*S6b2eMVֈSץc]0EK2gM>?6aTbW_VH\roQRsT8T8UoVFUU=XWZTeD'+!v29D[Z9G.֬맆cHfS)ϺLDwJٺ#=VJunWk;̀gK竤ʁLQ*S<;+&K&Y3x්+KJdd7,K:Z,SZtڔChfRin̓.i̜ZZѴcMɾbQE..12/ \bҘ%<@N4]j $O6OUknϷOn1t2fO1u_`2E2 5. ŎUl .lMBPl mQ5^H9 Km"Zm;d@{( rWoG4O4`LM Im~5.V3ODn)Tlb4n57uEb/ney=ShiPr^)ٶxpƼ< {{˷a6H AG#P^eO^wp7eQGXG8UՄp$և\I#W 8qfSq`GWgwׇؗ}ںhSw]rjy*X~wxg;~{f~ R)s<9s>RUPݐ˼X+sAg+B'Ci-YD"Lp!Æ$!1RɈ9D܀q$ɒ&Jh=yr&͚SV&Ϟ&98aD@}"M"| 9rpaҮS)E$6(d ILa(JP$Ic!~&HC zpP#. a21^t0x3 *X{޺8sƉ`aDG"=t(Jq>۽.:ȸwo &NF !Chw 4%Y'0&0B7@F @Xd7C,q Jfbs@q^'DVJ@i.XP b2 Dup\hn$0ASVC#X%bXZ)%TN%^f CaCZEPex镚lY 'u*ug"F'`vp"v$`u)DCXXP @Є 4@T wA''#1r@=>dAb?c@ A2dC"BBޣCRdE"DnBj@NEzzG~"FrH$HI^H@dKK¤#dKdLMNLF$NO.J:GeQcH$M2eS:SBeTJTReUZUbeVjVreWzWeXXeYYeZZe[2e@!2, H*\`!IHE (X$`ȢǏ CIɓ(S\9ǡC5C sܩpѡN&Db`G,5eRHʕDbڵ,KF IՑ>5V-ۉ_z߿ lOP>xǐ#GBy2$ E&2 )R'=i˺׮AM 5o&( {H1'@!)N2oLQ"\}tbE^9YJѫ݃xwEͧR}Wy^t€j`!"gHf6d!Q(2M_(bB H'ТĶ|qIWF+wt6!CMFD@!H `ApxH(Hc(x`~rHhGAE' 9mJ-A \ז $b_Bܒx-^|LP,d$^'&DG<Ȓh<6[z)AR"@xQ&IE4TpA7 eƊV% BR(HRxw~Sj'ْ)Dt}:2k)TJ' 'I}6T$P MGSVtQ 'aU2%IqJ‘PoE5m{.@3Q"!OAOQP =>b5Ê:D # H!VD#H3Sʝ!c|B[DA@7#agj{uj¡I>"HL&:PH*ZX̢.z` H2hL6pH:x̣> IBL"F:򑐌$'IJZ̤&7Nz (GIRL*WV򕰌,gI˕@ V p@6l 0IbL2f:Ll`0/d@r:)1ǰ1؀ Ig;P|$@O}ӟBy|\DNun~Df2j`0;=@_Ёp ,0L`ay67SDtHMRjN33PT*l` 8@s<&`0 `` (PPa;f ܪցr]7 蕯}_:׺&V`%6%p @N X*3|K+Lu<?@/;_.UD̠aXl`3@ "X6XcZC@10`v@KЃȀ&`יH& dy1XcxRP A2~V&_FxZpn1Lp V0HVb5CLkҠ_"m `87x?.]Eσt3lA zh%x6@@CM  F6@3tcHhPKny[A`GAMlʪj[f(s~ !v 2 , L۬Ń tL~``nK#pXw7<W­p\>&]V=3ԻfCpjd5Mbzԥ. fx 40],۱5Ò4A VO7b l3Njv/^6@U3bPj }z j[=a g)*wx;Nowz1 `3QYͼv+xʁ]x)&u=;2(gOf8틙Z5OO;Dv0Dg"WH B :p`(߁>On `0I@FS~~ ZC#p5~M8@`Hrd@,u PI475"IgD38}6 &$L%?BA)0CN/U`\>8Q81@"pͣ?8P`7H4mq8ux0ZȅQW00QYsA?0@NCGpJ9@#8_? 6pC[रub@ bpJrJNK2[:rx0`b58aG0:W6ڨPS"YY`;6A"0@Hx'KA} E4_`"&"4@Lڬ:Zz+W}'QAW!DPVG4n = 7MuwXi,.';8r<@lZw,oZsulǸ-*ɦZr9ΙhL<ѩ?\^ J>^~~7AI8vX ;WMt̗8 g~f07Ȃ=Z@s+kI9@ 8`ѱ$PYkWJ A! Nzi݄UDL,/=5A+-r4XjK#Z@2> ![Zbш ;P!M8`4P8$m*ɒ7?@kȺ1Ʃӑ˄eD2M}kӂ˸[AmCԇBA@I` D텋ԛԫT}W YHU߅[}Q\02Y[fLɻ;qsk) /D@^:[ؤ4KŎdQ]"}VX hKEVd\ˋ:@9U@W$I:0lwGЧ>q} kZO+ $eo{ނH|{_2g `?x^X&p |`'X fp`GXpFJM!ocsE'BU #BL|cH,1ILċVDẖMyJT(, dd.L)YO&&=|eP )r`3rVIlR2%\ zY81r:5C'@ -l`@#T& B@9Gq X4ByНy8iT{vGUd$unNI@T+eiK`獤iM~9O䓟%(o Md6*m2Pé;킀# rZTW-%BuRgi5o ZVov\CEJ]>*C_C nxt/ wɶL)Zqg<,5e^P n׾@ǻ_?.^_U ϫ]G~_r^g}]z^}m{^@ z&>D9,A|p *V)cl>>Ycz!َ١0n(/yLaC.PA8 f+C̤t |7Ϥ3Yˌ("@å(Bc8_E;0+jҝ27sP O (H- Ju:'Wr5Vc^{0Aۧac'd b&d2gSl# 8&ʰ @r q\Y7 7j7_-.8#+r=Bbj($Tx4&ʺ%b9B+9J+ëSD Dlq:NJ:8ɺ,:  ;:3=@r)-J<*EC-Klz<튼 ;,#/ C=yEm =Fn Gq ;l=tLGu\GvlGw|GxGyGzG{Ǡ8"(G,[>*j 6ⱚر Ih@䳱0!`05b >~4 B:$&+@]J К&k$0c3p3?56?P 0џ(H6. J!),h ZA$]24_D p&hr T6s8x# "e '\Uc5L#E 5-YA  *QpHy"ta4\6BB0(rC(6D L2#ڋ+/|)ÀNNh:x#7 *ܷ"*"@, KC\Cyi Ek˪Ō:!҉IŌ˯Ha9ClD9I9¹؁(;:  ġkbb$, kƂ::,QĬہ::̮9 D%]́=Zܺ;+^!F-aLS`l.%XR3F b TtMet<'u,ԚV\:GHGTITLMGsGOTP UQUR-US=UTMUU]UG/챃HSHȆ"Ze3#4Ʉd^܈X ;@?%GRICR%@;% I+%$̳J*J?\J4lʩ /KUJ˫|%w3\DK0Aefzh:(  L  #ۃL'45TXLZ+ Ys )x'z&`'d(-(gMkÇ{{Ѩ*O*0!؜{N=tB+$|7)|c -OJYϝ)/ڟj=$*3*͗h;PPP*82  XPE|ٳе PD|D=DGQb9 ). ,HdDzǢO:PS0E,\R2-,9П(C1E3}2]3]^7Z.h.0B-T삼< /F-/k#'s*?^L/ 8J|53xeW?D3S*ʫ<3\ʧTJ8@{K˖T@ 4Iۘ;4#XV)IRLt*<9:nv́Ē5<Mce66%c"ܶnS,Lې"!tRKod2Z. ODUOzKہKF8|t88L0 R<Ը8KCK#9M^ ? ȝIHfM :&@Q} U:+NLӝԵ[afQT0e,gUR@e Y PŁ;RSkF^T^a^m"S:-k9XC^h F%`N { ~nN_Jiiiiii(vՄH`&#{@H 6HB+a$4Z# &a [^n<vᗜ')F.hbtbvMW"V aze{ hOk[Wغ FeL3>QѴ> 6@zc@M ;LǓ zaz CDKed߄6H.kdmLl6O>uN5尅ծܳ 3dۍeEEΞ[Dc9▞fΉgHqQBffHdDɽ\loνB"хYDvҩg"ݺΩg|KNΉ.h\LhfS4m ;8^}.^^f. i#ߟi biH"?ri r&or'r(r)r*r+WǠ0@r H(>1 xj\"ꨦ]>fjq"CI.떼VL[ ]yk /33NJ=k8G4V V%v%V,vKņK>bEc&cʦ36&t' T(FY2AL ֖͖':.d͛mtfsh힕dĶ6ud1CZjZ,TN&e0ۮen)Bv7O;[UfdobؙPm\fmHgDԽ*}gg }p;;Ɂ'SN޿gqqNhC^JTF+!W2{Qrz?{O{_{o{{',G-TKj=Q[5V:jcs 2$x&I5G;"$VCk#Wsut+⻞$ Z*0ָ%4KlG>ĮPQ%D{l?oUu\oLsJ/ 8?1 -c Buh#QC6;sC}s}qԝVh"' @" H dH 9ΣdP @CF8hm-8! kXp= QLtb ņX+VbCE/q%3UΘ蚋KY9+ucWBE+v-SR=@ HCe.MvȓLٍV0FX1d(s3L]GYzgl+EZƮJ:bM^kٿ~CLxGȄ2{k;SB@0OY   g CNtrC Hd"sEC|QlII HF4u("\!#E|m\A;P`__(P]DPC%5]Ś`dZE1D\O ёqZQ% `% !q$5EjU']SSu U-ܸ0Q G245bn]۷ֲ[9ӿQZш•TL|hPDEIWIʕԛ\E& 'Ii9VTNO!F "Q)h ]#/")W0"1bDX363>#4F4N#5V5^#6f6nZ@\D#)CcAm=:f^ enY8H  ٍ9"ʐ$-DW1MVa$УOV_]aPHJ` @-%d 2AXX`)e2 VUH: A HY Q]AZ @Mb@Npuԙ1 ڢѠ٠e`*Wɠ^$erR=]1 PMV%ud]J|aa4!!5f!WfVV:[;i&<R'Ɉ ڕᄠD@@LC98$f\G"̱(&jgqvv)jU)fEbPE],be]S]!1'~.0~p #D(#7(&.(6>(FNhI@Cxc E8X*ߑcCEݒ&MY`VͣmA ?b@@ <ȍ^| W,t.d=XMX]df $IO=ҞPCQʘ%E%-S6=1jVƨ meyaY֕eCo~޴ЄP f_!f VfE-erd7S /^h"3&>!fjj&4ͦ~ۘJm n=f S]10qd%{⡌stX'wwΜ''Ȇw`^zBY{b|R(vK%˝', ]-&.-6>-FN-#~(>B֊£h:h<#;j]F|daCމ$ HT`|CL@D-~28CB$Gz]nd:iDm\A(T( xDőUp|O͓PjN٢)s){XnD`.D-mWMwߐr>-F.BA@v%fF3kiEriㆩGjH2D`r.{(U..By3k..3*QQ*o@/e o2U9/ݭ-R/y)`/,mo~o2Ɩ!sjCj/r\C܅^/>Z /&7?D02RCp 1^kXpe!K1uL+>p=J ðfuY tÈq1o AGE5D, [1 WIubߔȚqɮ+EqEJŽsxhߊH C1 r"׶m 3ϖX#s2oo6pp7qq7r ̌BmK H (D 0ڍc֖#N)摉*uCȲOxA@'}@d tdbr!)>)FnjE^s>nr61Exvn0}nGn9.գG0 @ %A.!H@)Vjs&@7%B/OTe`14VDNoREk/p^A.m/Dx4 /JDK/ t/Ntnb7{p wDyRLj^>88k@ N*nW S f 5u [ǫs\z]_3z^ 6,N($K  h @X,Is3nl{'Nvv{(dw6z1iq1jA%X\m߻#.rVvr;<<]w6vnvmxWؒ**2+wOz;-^pG0*23K+BO3[cj3 :皶.?^}W)G9nQ9ACtj}/?tDt_oG1FoyU%!hKtLkoM`t OGW#RU\Ckx [ 00_uk^e{G17vPp;e1elg[GbO?go?w?D_o@]`hE`ơFu[DF`Z@tȐE6tbD)N$h |4QdH#^̐qcGItI$J/iS#;yhPC5ziR"a SVzT 1d!D@ >vRvī F %DY08!Bd@"1v ` 0P@A@(f}wn<1ao M.  ]3/.@]uo~dyww7SDQ- d~ 1b(z" bxaL@L80vz00`D n040А H;  ;(+ 8`x@ )2&HHa<M@8B&ZM.N&1@4I%D/O"OLrPBԓO?G 4L5/B  prV75l A X:^ !d5 `* Xa!"LvX!hS̀RsH\*v)Uxݵ,ՀI@,ҠT<'a lXpHw]b1f]u=/>Δ-yi+hq}'\AڽA  pZN^J[Ϙ I9a2Sy~DH%6J!l pwzF0`"r`v܄"HPZ&ΝsIEtL^G}#VoTeXm?>) ! U,8[y^X@ %F%( {yU>(L * †(x#NL ~?/5ҳlb8=L8@d ( !*bG  g!R%)! #B lz)wW@hH!H h3<$^MŖ,ыYbXF3iTF7qXG;yG? YHCTd\!&ABHF$%M rۤD09Q>p󔨬UU Nk@ {Z җ%"d!8AdvSENp|S$+v'9#`&!/Y7T@3[ M)KO3nnQoӥ~{QU* 0(AڪQSK c!sonU+[s0ă؆H̰KcƎ$d5*'!hߺ3 h/po^p 7ܛ @AV.@euEl4ڨAo?|TIta9b;u }O8BM;Hrɷc}S[fHO0VA^(la|!vpN 9_ȁ2U M|' 5WPc$ g~/L'oV)CL̍̈LΠ,lBl#P.3P7;?CPGKOSU,"b&!HƭZc m -!-$M` #d΋Ғm^:nDH!L T\ ͟ ? om7Aߢ!:L@y1H"ޥ!HeIdLJn8C_q8ls N MQOMnMF'TTEQ l!ȱw!8̭ U v\mnc RK +Ȯ̮$"OUdR!2"#ceT"82<'@n̈$Nn%%%&&K o$Uw&np"\T<6)ς>F+M]R+]2,Ll5"~'W/2//1.O2).1F !O$2s@u73:Z DsHsoBi4eSeWe@tH 66u37lhP8i788ijVjjjkVkk <+^$$>#eM<1"= "ѼӒ>Ӕ`V>1=nU^!h@C,?' @ 8 3X i0PE"0DiD E\4u#Et`,%BWVdF%BP5X .wPխ1~OTT@0F:Jd'nq)YOXD$L-NAnNG۴1|Nk7"27wJ]K,JD|@ lg Ҁ\|^ʲhb+ ?T?= Ԣ?b5ZcAw0dIԈ1CJDauEGut9ϋF$G ds&GtHMKt~7J @t{+MMI|1͗ץKѠ+bOCe1-eU !Z_`^*3T'TW[n"9U/2)Wn>B_ X5%Zf zX{5p\=/*U^]UX]_^5iu5bFg+ XCJofCeOeeTX%x gwkP7w%,۹ɖiۺ[ۻی" : ۹2P/V==>!Yo['!wp pA"ql? # ہ.DpueEU7Fg]5 W #'(K% jxƭ4'dZTD =G{-M[NWISaz|7Nkz}!~K2:G7zWH, l-w<"(8! %UڒQCVź7`_%gحKkd`x̫u۱յU, [,ϻl~&׸-* NRYzX;,IM'ٶ!Ob5s-ٶ#!4y8ٓ9q"ӳKPYYY]ܕ]<;"z9]]nW$ij1ħ"Ҷ= ny==[+¿ p[b̝4Nj4v`A\&2d\$(Cx;7/>C7FwmEu[7EeW3lqWO0Rxabx' \Q4J KńLp)D殗Dw5L-.ȍYțqȫ̦C$ęĢ헯JWꛚdh^!ON lO~m8Y 1PT΂<7X;漄C"ϥ<Ũ=Иo4[wBL>l/0-29Y7=B]@YFۿK c/\!{f//?3MSkWV <0‚8l@Ï! +ZaÇ'2ȑ$K<2ʕ,[('8p&$@ dLaBGN"˩TZZ %g2.ūرd˚=6ڵlۺ\`ڽ7޽|VlQ Lr`=8Ō;~ 9ɔ+[9͜;{ :ѤK>:լ[~ ;ٴk۾;ݼ{}2p(A"),,R@8p- :d({s@>6w+ @(Yػ/~OK}>hgE'`W x ;P$C_KԅM*=T !1LZ Pr$Q@`1c9pH^$NB LYe9DOYfbl-E&4> (%@"@"pC@B Ctn ; BO!\Ȑ =L DP уE00cu2p@r}hB F ЫtPWб.lF;-Y,bvQ!'*)&hz`*% &@P XY`7*M@ Q:P9AG'@|$0A*C#XarA/O@1Tݜ=A !+3L+Dt(v5TH#0,K\;]M*2IptUPBHZ$ x! M E@AY Es`85.藗κ` {씫fJHA &@a^K1zk{ EG&!<]6eRL@q:|# 2m$tk#9PAF#_lp (C @ rD"@AA&2Mp򾞔O(DSҔp *" "aH]< Qh?Ah$*qhrBCpT,jq\0qd,ψ4q\DB"X:bdC!"Ҏ1 12%O|%P(TW2`DFG2Ȑ YR455mi`bdy.IJ.4_0oH;%Cy4PAN "$A Ib5Z,Ä̱` Kw%-3[iz*Z1EEīR^6~+ d|Bҳd@s39 f2Ԫf'i@Ly&S+ьxӓ"Z@-llt2[ҶI <B( s̉: r%ePûluƻ܅vz٥nuueZ\cĿS w`y̫kS[:D:"bWߥI1 CկM4*f3sth=lӢtJCT}4f7MbPKj– E ՃR9ժ^5[*? Ɖ #B/? 5UsfBg;U{]o'5x5ہWDx3'ГdgYM2gіImP൱El @VЁԐv=o=2Ĥ' B"E}1@B|<΍ }~Y/B+E+}LoӟK}TկJ81r(>=j |0TC at=ȁBɌ0$HC} T4K,)GE/e|v:Džz%9^Ed#>Ze0/NMTg:Pܲ(=*9 @$zb>UV8hIx8 ?|]u[履h! z5 /EϋD%*I LC-3XrzmFY>kuG8yjxR2iF>j:5k&Sk@jVkDk]kTeClO66Inc'7@7fz77os88aEmV}vWjmmoWwnWBotncD&{ Aouo<<6YF==H=;>0GEs쳃)4yC?2r??pEf7@W[\A#W\e4 gr$\)+gBeBrx]2DCuC6FC,CpAtltB芯hFwHuhȋ苿(pr2@!~2a`]iay{$aSa;טawHBHI#570p7E;@p"o`I0`'[9{B#16cϸfg?Jz\RzHvKGz&7z$DM~$fLQf{LVMe&p<`H@@7CPR`!@-Wi7|OWV}}ҀBg|fg}z}MgO}E QhhP*impC4 ]FX`,;(6,?R=G#Cf4Ocj.4vS5?5D QTT(lMhӂdih)Ym`%/)ʳXA[@0H<{)Lj۶VJVWXsn&nzUلXY脾хXXY3s4_Crȇ S/*0Z@\|!D@[wAG؟q'AC\\(/Bֵ>]g\ʡG*# AĈ)+ʢ-/ 1*3J7$aV)dg ،IiDШw(Fv5vwpWwƍIw$b\MG24@" #Ih%#0{"I*]`rFyycJKzE dKAd"4x"M%H1-*./02`X2qpodf ZD)~F gH}~NUYg4J~vǨfPP^I`/b9QdPi01>YACNd0 |)=R9Yy;嘊SFB.Q&5&6Y֙$4@:sp*94D8 IhmnnTh(inќoa!GGP@b AibV\79kvvGQrפt\xQ;$@Ca*#8>wbvZ>YJK52c!ȏ7B <-!菧CJ zzZc{QA"FK'#U* 294! U~B9('B+7`4R|1)p)7ɔ7ǒ7c 1i:ickv}s~y7|~svQRLbW<Q?@M"|zR:6(`7ܺ i})"E27@c8Q-`tɁRlF6k OӮ,uj𪁌֯܁㲯B$ZMr4s,pn\#QTP:; VF0‰7V)`Z%b{ڲ7=;Vch9Ivr"{F:&˄R8Yl/1ojk3GQ̰d˸yRA+90)$:]`NU˘Z2-bG+4B(rq]IZsPax([a뵉@d*DikA2a'GkC@ץt{0!7yyՒӷ a-cMemgikE!7 ЖBGa@Ij2K wvݍH[<x^'fIHbJdd s':<֧Kk5ԲlԾґ4X{tMٴMݴQ4Nf;s+ ,gܻQl2D GQai϶i}dٗ2<-Y h3R6aQHfUEUZU^mAE0C5v㜛%53"2Kψl9o;o= p9p?YY%ZFpMRqĵ= ڈe[3gkؠ q[s3Ts+[-LSc 1moq.sNunwaQ!v t ״w$yW؁G.PxBqx$b""]"i:J@٢7;Ƨ y}ryhSN{ )WFH:)B|7)*͇**WCjIONL~O I~\٬.ީtLT:X1H઀-CjȜL T+Fk,1( syQ\1僈SAhOB᷃,ۛ ^&3< DZ7)1N3~YpjntX1v?K[?AD0]E.yJnLH:=UΠ8s8@Cm/Oأ8&>u]Rw ӈ]qKRk,戎xؾx8!4D#ٳnڴE M'Mem않ltI<ܒC,'@6Iެ(ٓa^nB&Ky*ݫ@@ DP‚ @ #:\ĘQF=~RH%M2C!L$D'v ad#p$>@(aRRMlӡC"[сHdĢ; < @UXR^}>X`#1<aIWd']8 BYd˘5sh|KgZ6i"/.[nzp @4`a_Wn#Jvƞ]pԩU{G.^#@. ǝ,"#-ִ#@C"!4T0@@ z&:@?%.$1C6p?E$BQl1F 01P@ )H(@x8|.hYDLQ P z.k^0,6yLdN%5 x6vccl8\2#=(3$le)! N{_'/aLe:#zV`ȃ n~o52M>4q`D7'iR~vvGq Ȋu=OpS:Lg>tRꪩ,uʮE2PGehDeO]sGl!zwUatjC+70:s>$᩹`$D[*Py{ \>E?zҗG}Uzַ}e?{wL%4 B f !}x?u |5abXm??lfC[m6i)b?0 @p.tw஦)*@B"z|//Z<Ɂ b1?qys'' (p}"; !z!*+ 2*+B-3'23 2S0D4cUZ2 0q#(1!!1 ("<#G@-Ɓ"+x#<$lTsEcDƙB)+\S#E S< _36asd`CE^Kʣ4kk$WK5~c$zDH/4  H{ˁ9ă;'%h i E)X8Xw%9`R]GC`Ǎ MC !)#7l)n0SqFP`'+ %@Y1p?L[DK||+>¾ڣ[%<ܬ; T?2Md.P JۢH.=)9dAיN@1 y@@/ =@AdK:AbTjKDA (N8$%?, "0Ƒ (C.B2/TC."=34$Cq1K2\B30Rd SH;ȇ=$աK{Ѣ8 CDˍD)Y"N5Tb(E_{FHULVT[C#]E:5;ZG}EI55E]^ ` FFA"c4$NLEf@Gi2QHџ"ط&=ei: sF,hz4Y8 wVxǁdk}VyV2H,=C.դe&b%ir&&+H -U$'Q1uR)K !7Pʛg͔lJJI;JU; J(лY*ȪDʏJXI:< ((X'*#pE ة]%ڬ44*l)۱%۲5۴U۵e[A۶۸۹Ս{&8Np+M)\ބ>NڧNz\\MΟb{+U X7. 5<OeِO۩O]@4P $1^Y0ϛ٫\O  eA  DQ*`!=j1a3 !R_ '0.3*JR)5{EҜ3+ R'U`(m6+]'=H&CY;SA?,S%4ŕO@/X5QC U5AEamC-D}T35!Ed7#$%MգUT(a`ܼRS-$DC<ŏe$fUFdjaЦ(y]s5Ugaʈ x?{W}ԥq|8oEG\*HF,8L-evR׉&jH|H~DX8/:41;6qBʪE>5(EYJBY\Yٔ}٘%Y)J;'v^JJ ڒK-Kj}Z_fguYzvsڂZ!}~&6hC&R["yM+UNi\º#$ɵ> \ U2K 9mlj] OD^ POOM@^́XT_̒݁"pݣ K!Xqä'`](T#^~ 5 ^12`&~*l_L`wD+nDxQd3X&ROm)z,ڢt & .bGeE%>(FHUK]E(n)V6AEQ@bB:UM$e|2NC)ȤI$rQ N"Rb6 d{VrVi mnGsddоu~g䊬k偛RFS9r2S'1wrXy,| `Ia6Jb6Y_fdNJ暋Jf!iF&$gPfmYo^ApZq.Zrn`gr.1z&{>4W5g6w789:'sZ0rhs0+@#7`3D+EB΀kxtJh=_>M\N>Q羟*j<?h>0y"-bA=?y+c-10(PE:.8Ϳ.)djϩOlw9^ojyU:%}PS/X'j0dו yn6(3k ? lJ9s!+KxKm23s_!#2#C@_BȆ ,tQ!`l1xʮy yltCwϯ7x3q+x:Hk:`Xrpf]6]X6II?BBYc fc~J cFJRgh曥fnq(G랙I|_ƳYG1?t<2L1?гs!, D:t*\Ç#J( )ЉB4Iɓ(Sك C #2xHK'O:@aNV C?1JIƎCz(&hʵׯ`Ê+6eO!I[**Vо;1CMPO J#1EZҚRNp(c (P 9} )mP˘z ۸)BF 3R`F IאF>ZR 2 QgW s˟MCZ٦P)ԞpZIH'g5)t_~'8(0T{!uy Mu ܄o-$%Y5-B'$.X(4&uA,r!' "AlE@$2)AJ IBL"F:򑐌$'IJZ̤&7Nz (GIRL*WV򕰌,gIZq̥.w^ 0K( hb:Ќ4IjZv@ @4 hv vЄ 3|&+$A PK ӝM(.(a>PB̠ЊV`@EE(@-˱D`4t0 =XcGySP@ PL343PXl` 8@5Ke*Vf6`` $e piԪp6: a`\K2 C` `bqa3C֠ )P:, V`D.M-0 \U"XD@eȀ +5%{mb@ (Y9&%` H bb8A€U^]ڠA݀  0A7Kt_k|AwhX L`5e5 &aAR (bPB |alҠ w/:00U1˕d6 lH;3pLL3<QҁzAdvff6 {0lg  @\IP&9P+18a yA:0/>½3#6 C@ 05PAR1B}5@w}O{UG{u"@[;B2]?H 4@20H ޷% TBs 8}@%`CB`Ow ! "Do~ D?N*P/UgpwC0N d|~=n[Ez{g7==p;0 `= u&@7҇8—TB}`~8Ap7|!2xBH>G @`FQW{~!| ]@w,dp:z*PC`%t!poi0F~80m?'7Y ) [ ZpT}F9\q-""P6m6j $ is>J~?w$C6v4k(z[f(wY`tgEPEGBW\;0R!=00sG,1)R`,]= s?Pg .2Hw28CP;*&P${E0CP<'@*Y'3Y-DEXy\^P<{;'y-s0\np@_Z0αQFpvp? =7|IPEG͘A4@z9Hz6"P_4EP_0@{I@ @@k'c6p9`#|G%I=N@u6p6{K`Y_D`~= Rt'=GB8@k)*p~"p0PvsD  /P|ٞ0@I?uI}J#.w ڠ:#GW*bdx^tvxe@-)"J(aTxwءdgv72z4* a ;ߵ70ڤg}X8}JvwYu!x]7{O}耲Xw|$ Dd`;=5LФj}Ux A80 ^`<0)qJ)1 nrHLtThXM)IJ­ڎ{-$vKҪ*z{sۋY*jo+V=i[" RG@!SJnpr>t^v~x &VspnzTtQ'D]a)QՍ'x&'k>j¹#=h丳ۜI7{[?ͬͬN*!Aǫ} Kk2}{k8(`9k~ \9o8w&pZтR`mAp>_ & QڰFH=%Qܼ¾0,Ò۝:uHJsZ,w@sJLY☝ OH|~۝ݝvcvL{Ja{w0/œ>x\A@+hR)jP<,n{A}Ȟ|7o'~-nz7NЎȬe_?%( @~_K2p#G t7 _'AGkHNJN2J*!C{YtР9{oGh?-?_$&(J)907<`/@`@sC%NX @HyheȨ)UdK1eΤYM''xdĝ?QI##H @RG ?*5i0#itG>&m\yVp"n@pF!D@ >ؐ#Ce̙5o(!P),8HpfT 8ZVeNBoWzmzÈ( "p *Q),) ijɗO'č(b!lulFr~O X Ċd0  08ΰ,@;+" *m,Cz)/ ! qG{I!! F t@ˣV:2pX REiH #t0 L % (TC² tQI$ LFHRִAІ`XB (+SUuUᔢ^0b;" "8SPJDm?咀 ZoV/1^(XЁ '0Ԑ\~"rPa*T0_z73'XR (0-3^Xa7VCydah傅zpC x``a1XfWֵf  "$8[.M07CKX †46LklK%vmpDd-9BF0 navv!4TIvqB T(%\-q`1R/a0 A\/[ ~`u~x[xǩw3壗~z꫷z~{{|7|W}w}~~f#Ed!1B6'!zX"M'W&6 "`E+",C> P T607"dg'ȡnD$,tk E13mL~є4YM C5'=MnrAAΠϵ0x8-V pggI`  Х4L[$'i@_$ Рn`J'A`C6/D#bbCN0HCDUqL.dLILr8-u > 1%H$i^%nA lЁ! ngC4YsB F RSmSxMU VT*&esd2gjW 9+ h^4_>AR?(aI.W&{`ԦX0`0v*& a cfȁUbFC81M{&CX2ɬD̕&`Bp5,Id)h֌H L5%5I3t3'FKMlr/SuF'` `@\@V!”ZHҹqTcW╯JIM[JX-Od @c:ө$O?Ϫj]ڰ1@0!@X\5e~m#N{^SC--z a@mb{xYĴx&jPhPar]7͵05$V^WnsPny;;wɿp`3.^;y}s]C'zэ~t']KgzӝtG{T@Tr tr`PAL^D:`O`(h]ఇUZpHM p,1`죳.<)X<.c &(0׾w q2r#(e*wY'$R+ؔkʌ%@`\^9 H9 &g_F36)5YD$:Yde9X0*NڠNhQ-ts)Z-p%&]9z\\*Nۦx փ|71Zlm6@78t wx E5h%u+ <p8 q8#x{y;.+!(<{ ̋/` C4)KZC8C9C:C;CC?C@ )!V97 +{ @(ö) ; k!jsۢhyH$xE *ꚕ7IHأ1131@C%;k2<RhA@Лț<X VF@3$E\L # "2` {@a 5ný%3C ѽk>8f $Ek曡ޛ(7Ѝ+I#%p 2ޘ4Ǖh (Ik M?<(SS(/cÊb(YDB_7aɣ7JkGCxd—T H,G ls *7CZ7AQ-P{ | X=)p|V K$Kк`*_Ԍ!ly+%}{gC*;m.. 3 -Ap֔DNAd6NNNN OO,O@H]H&E S@*4,&!h{J|*2;cQRI5;t#ʿã,)SZ 俠LJu-  (Jz2=6@9-Di3@ᶋQ7#Cs4 S\M 2Lu(xO4'|ӆ4`b yJ$h2O<>4S5JSd(=S>mWE(cJ^]?elBֹBo-9p=NqV0WHW:cXxc>c?c@dAdB.dC>dDNdE^d证FXFG  [?튓0P+{䖅QI]E݁FzI1EFSFZv9FFV>[*FNA[(@>$h́؁80e\7+p &.bB][+ /]]`m]TP@P488?qSSm=m Y?TCD?N!G_XB2XW:n.ՅQ%aSvCW}a x̽a#z,8e٘!-"Zgٔ-1fjU.h4qM WJ@άK= XkkkkllFG.X GvۈX06F0sDNJdGOHOCUиٹ+m:UYٗٙ5]1Zf2sJn(P.Q'4FF+x_Sne%d4`=gf2ѴQg&Bb[ 1[Nz"x/3a3X*3 & $ 2䃼 7H9!)(*!"g'JuvHogH-zF{r_(~(5 'm\P2L.8 0_S(+_JBy'4Lp%.|Rljh_S&_i3#m _m?|_*%M4UoU6f;VSK767`*Uwn j qQ:Zi,Sir3t) jjae]a.E!A(1bcFn%&V nK"~!w:-Q'6/.h歲>Fk9^nBc5DYwn.yOy_yoyyyy_~0X]S klp4(0Jعϊdd mMŠPPN=@"RFPLGIeYYm q,Gѓ6>s`1aDU_ffسμ.jo/Rk|rCJ jۻ[[jFp \} ɑ<,$XI0MC\G/]|g^J]!x)r%|sgു܅rB^>/^'J8.?V/?sAP93u`_Y_-_ tEgBmt,h „ 2l8/7*0 "G$ @b@#d@"̔@N(p@8=L@C`s`!Hd0"#$(:hT%hxY-ܸr$.5Q tAǎV8G3/V=i2̚7s3ТGs8EE., p#n ӆe!@:]tվK!qG #ǎ!XC׸̝HBC'x p Hu/4.`GƟUŞ{xp $ =$0@ZG@0Dex")epy t0ބ TX@?#f$`}ro=|Ds%1d#@X䭎} @aw rca-'*1x1dl8 P@a#C/ 5Ay4}F6^Cpy|7\6#逕@96`Q߀|FpPEqCX*@KBMP/a @ $d`َ;`FI4O^$kR;"ISdFМ;L JZUzBT@n$}Bt,S}Q@a "F;F y]8 1aPFcϻ 7c5 Ql~OESP۹ t.8$e '<vЕIA`P! O/}^"l$"]tH;ѷ P/"' Ir#5=W_# A<$"E2|$$#)IR$&3Mr$(C)Qɬ 2>b4#`2?s.YdvP+aQ;ς&A(H#JP4ImYNy q:TP6qnSF7toy\()8CoBRfe9es @:K :lt+eiv;pwG ybO}ZQ/#E^6'~/|E2ՊjK'FQHSPWҪ(: @m:p1|Ld&S~q`k^B?P7& Us2P/D SCaH/!ڀF$ZH&'Bq=btE@!li1IfQ uqP-vU@)MzIX.>03~0#, S03 sVpK,˗0 ,c#3á@SY4e(i]G=I[`0$ $&!1vj=0 b@)3@F̡! C*R$  ;d  8Xqur+*SɦyN^2k$MP g>!N#ԧ*P+alnІt EA l76 L9zNjX['л/"{_RWmӡy bW v{+M>Ůq5SY׺< ~ZYb;N=`j&Ƶ`l+v7:pI g<0yG/t/zNmwZHXБ^ #/_5KN&Y zy!l3N:ԣ.SV:ֳs^Gkh*(V! ;+1 Bv( ;})}02X^߅>⁔XU'&1I+[XWH[xLcOt %y17ZUC'.yD %z +Rne;TK(A-܄~00@v pgO.dy~J 3Od'[Ї˹f`Т&I9H@@$)JN,1A$ ܇  @ Ab4E<̝AHLUNͥ`uO`P !U,Ω JMNb}TX @ 쑇h!|asD X@|ڮD| E$۲՞ P`i앸pSaEbbYpHZMOs|@TVpEA KW͢EZȢ@ DO߭Zj%1?lQP9bq%c]o=PM !ǎ q@v;eL<  ]a $r=L\˱ M@l`w|V@h?ZxW~Ex!Wy\DЅrWї{}G`Ve)Q.%S6S>%TFTN%UVU^%VfVneԡ F W…X~$/0I Ċ1K2RF KQ^4XU% YZ\A(^XyXd2 9ńeDYB_ʰ˸ПAfߡ i4@`"P@|``dpͤX@`hZ#zx:I)!SE'Yk lZZ [A|6F'h vO!6"&L[幘s $ϸMb`U]ndM,$R\0 #z~1&i'IX#E6VuiLl5sj9åc m㡜Gz Q~X$F:DJJK܇d8z&{d|V€ @~:R~))))ƩWJQrਫ਼>Q~ZeY/Jڱ[.DdIlA ԁ̘8j塴Gz ` Y߶@@(z8[ L_id>u_r"%枨Td*kIhwaDAj y@HF M$A H @ [ Nhp r`duQ\o dtJIi+e+ К!A (taB) XKxyZ@*U "[[kgŠ#iVUYc$d$ r"* fku*2Q@@E` Bc=Vzh->c, ^-cĈ 'Iܤ quٗ)/ތ)fn/v~//֩ B&DZI*neo~fZ@Qӎ0-Σz4 DfWtA_B+H+YUfouff!T2T_ܰjfDH %  c0X@HVlL M ¢(B'^,Qu.hQIwz`FAl561lKDǢ4-l%ϲ2[\E\92ъq\J`([%o\Ȣ_ƻ_KXE$).(*V-6-k#.I㶣pEn SftKE|s]!nuRy/PT)\F&1$B0Po `@4B'B/4C7C?4DGD;4JlE7Dyʙ//GL\j*l,p lll 螔@491<(Aad@ jdbpЪejٰbfjf0;߲jkjMI \T57ͿV- y񻂔^C1s|gAt@@i1 ,rTX?a/d춂Ta=H@ 2 į@j@u]"|6r}6$Ue#%O^Z('+RɂJ"d MDD)cQ"P_3iYtmA@ۺ26y8J&2#0/1:بB4vhGs4G7C@g~G@ꮮQw9k7:w;SNbi4mpq@ ЀNt4'/97?9GO9FEIDF3)Aoo]\tHIX%Je L%]Dp\N;uꍀJ}@AGg9 |F@z@`*`)x$Ze o5?1Ro&Xj5iipDƂe\#A]C^^ !7T`_@N-FH嫿!0I}llic'rO'$!ھcFi[ zj!k q8l E$Xov @ AUЬ D5W;lDLho wN"FirO&2w97`"mJIue`7LDvw/#xw@T7A LlYEP$ AH4z{׊-Z<2w1}S沿hwpI1& I.YFG=f e$x7@c? Ap8ɴG.Sp iLvʙxK<ϻu4;sOO kC ~Q2~U9a9w????/ioA9ClH%P9Z 4xaB "đ#!tdH#I4yeJ+QnLHȈ;5~ LeN;yCV@iR/!ƜYs)G-VSď$(Wpa =v) JܹcPAb z 'D(d nt!GU͛9w'!A!$<a˞TSyo;@,GРҢYŏ'Ϟw{pPу# `&r1CW9 (L#$L@L`"$n>8#!! rF 0$ }1hq: R!c1#t!1(H, K( r $ZP .BN: 2BP !6;l2zÜ4LIa,ŔFHR(0hRš  XeR5u;A (4 M'a l [u^Yzc>h ja5 rc>2%bu p!A%Ax0]@Pj"r8u~؄"HP@R`88]i8e 8U&~Y f5=i%z38X+T^ a†(/r[؃ 3-h #NP%x >²x`ppDdB4 ))P?>րa^X/:qzX9ȓR28s׭"]ӟw`xi{? g祟ꭿߞ?_域ߟyT>)}ɉR3HIV@n'A P2WTL&`q._&W`B"(e:1S4#/$ v0@[Lc$pVdF YLp(4p KW"0@&-dE|%,N0Ԩ5qvhfG#pc :y?!T:Tq (D *$A1xd`:G E# +ꁁhi=h@@Cyҁ!܀$ C@LHJ&:ˆT",QK3zQn@ {B疌$%Icdk"DK\BHrσO6@n  k`@l[%$tQ2=)H 0*7I %Ch /x)"\jT&EU+Cg:,hWoi-k>%tT~$W@ UP_u Ė +FZVDdd +Z UOs*vehnu&dG;>9/x#B"@ gx)9/zI\b)VYb1i\c9 [n D@~+lbA R4\/G%l us.G1 Qx:y[! G$HȞHNUbAI$[7 2y3~CċW#BR0h MrOHq5Mm ˼!l*HXs)ٝ0͜$(EIJSJ(PXe+MX*H77] O@#&5@! 6 |j !3 搂āgI6rnЦz%ꬑ>N&9Rv޺3]@ jP*O u(]( L܊66tm(ll8Rr1 dJIMb,J=ETW*8Sӏګ_kXtjXVUZ'z^vn &pwSrD e,/ <ags@-@Ye1T] l %%HC-to=6YulM4vD7IJHtCr>@s/ ! H^>޿MѾe z ^Rj@ [%=\{J%}ӳdtUǺEff w4 'o!6 * +p @ : lit1" 4@-nԊΏLJpո㐔d g,j f̫b`N\IcB -h #(/N`j@ |@  B$ވiP2IpPH.I$ndẄZȠDʣh^V#J_ Od>B8SN ~JNU.`NYeqONҪ=Ī;B`j &_eX0O&.K>oDdHdVO\/`Ohh)f6J,`Ft ڌn涾O8 8IiX ,yZOPrg+)' п+ 0.3 h "3gE73?4CS4G4K4O5SS5W5[5Qr ؀B6 B @ 7Lej89(3Y.%I&>ʠ) Пl˞Uvpb}oˉ=J&"=kͦdJ }=q" @ ?B ,=`j"M@A" H!P>-5B 1r`-iE<c`8F4 N>wdSFHM`gHAOC8$ =vICj ,!1GɛmĩF- 'ѝ2I ̔XrNchQ %3<cSBNͱb?bNW Pt 4R=R# rApxJUb!S4 X#B%a+1"C'F3C$2~F:`6VM${iX$tr5 xZ[p @ 0 |R(b:RdDTfn)Yk.2^R f20>֫pb7`w+iF,ѳOxx2`O 63R TcA1 !2@] Ssg1QC"%&RvBiy5QiciVjjjkVkkk͇nj= 0)iBmBi:@ʲ3)09<Ǔ;|, Jd rQ Cq >67 1c0z@/m ȑ<-7t+CBTCDmD$:hp, d9i\ɗnr3,Ȩ+> N y dADADR!޺tILiQM.+gձ&nPJ7$GyUj6 ZP%O\|BS =5T.TDMYb5U)R,*#pjYӮQZUMETv߷`U 뚊UU2VZxk땣Lã$LTWJ! w`֪9C7=c]5XQ%I*Wzh/k&1,i,Yڸ*`ki]e/46g6fAgERA$Xy5`1ۺ[ۻG un!`,3YnI3 v< o=D [ǝ9-湞H+PY`!Wr`X*ZCk8(یw/1;Ut}Հ@9Iq:Z>@MiMW) `5)\KQf:}?~ .ቧ~MIc\ͫ:+{M[h yPQUmS?xC8!?Q"WqJa+{P^;z$A:j>zaʯ#&޼*-K5k](Xi'4{Sk3x<8ی㴁gT{v`Lkl@"0=*neossN!R0urVgf!7lۿ;i]םMl D6o?\.O^Ī9n̾pʐoVpy;: 7?xqs !|+>BrLr} º+N͢,lY[;ԠIDkO;RoH]]tgxrm{Q2 Xz?@.LT.=#8iYɉ1ck{sZˡq}|^]3 n.N x9_QH.+NF?d ̭|ܫq'="zUUeE:vXW.8$I %G~zZ[R5\9=](A]I O*VE%jFayO{+&@yOq.Ֆ&4T ;vP1ƍ;z2ȑ$KnaBW$CEHLڼ3% ءpgB@L:} 5ԩTZ5ԤB xaM=Р4Z/ڹtKv!lݽ|ͩ5 >8ŌV8ɔ9͜;{ :ѤK>:լ[~ ;ٴk۾;ݼ{ <ċ?<$` *OC飵Au9~Pd h_ 0ƒ ?~菌S@cܞ w_~pCR\ C] t~ B">`Qqes~IcUc#D agMw"1$ 9dn,Cbgx(et'*a&*`G a 9`vb<$URz9 (xUz)&`eA^)[]ЃDgfkIb<4EQ` /C.TR:\xDTD7LW1  e>kDV#x50GB?pp-bj6PDkB$`:\„$Bg=pS\CȐ'@`WPA&T*#mzSé@OR hC Q %P/` +h,WN1BB l) #] !;ȜHA!D~dk[YKhDXMVU~%F˒6A/ [KZԲ5t 1.YPYr]]Qƥ) g/  T H4%z`$@8 px(ha&( `@49e lV,`Ky~  9^@eD"sIA`PkUU^$%It $ R;JG?Wd-!x [b*g *dp  ŬYfͲg? Њv-iOԪvmmkWg')=AR!r-gB1V2rŮt^$ب!bԮvՌml p{.ύtܰU @4V$ȼ1Rn?n:W I HW!38@pd5PAz-\@鮙&PB , v&2"\=zr]ՆoF"Ⱦ4z`~xp_V:R3%z(A(‡8O :MKS~g`)LІL M| z |$ yɫB'+Nq3ʘ?\GWXAT0GfяmD j2$ Ž5Ki<4LJᘨR~`$hCDiR`@B 'GפB=jVjƲ-eam`N -pff$#  P, LDM$w/@?@/Xsf1gem.0/wR`a}wCPχOd9E2&2H&&PDmhh5@30Q 1#3%i$Q`|!P0(RR6SQh=!ppE,qE0XPky_0U_sp#GPkh!0Xmf4HkgZSW\MFYvX"0 AXAu6"tVZ%@J6nWmHhLjɨȌ87&%&@|o&qną:uUK g3]b]Br]< "z]DQAIGI>(@!HenNP@%#eu8_pu 6A_'XQ`Pb&'u@֏/0a2y:WD2;bRS{wn"$&F)''.Ƅ#i5)zp4mǡc| "H^ 2d@qf#=(~&srO'p: Hn7%+Y[,eՎZ68L2h6@j2m"o&.!Xu(x9i;nOdydqO&0Eȗ[xn@0f0VQv;&$#(Qj-i2Ssj!&X ш xW'𐛔&kVZ48ƉIW\#`bC!mH~1#S ʠ$) *Jjʡ !*#J%j'6;:7= Q .:%@S\呎鱎(q H >ڵ *MACI)>C4>LRe=-dPa&,ٹ^^AiYi"uTu6礏R v')s)i+ d%"M!"U*04&0xPqGqFr`z6vD§-2@4PP>EN z_'=VYF gz6vE1ҩ1Oa#уV5J2| v$@FP&2Qp qw9~%EBeڭVetm- .L@MY&NnPΙ&P$vOŚ9 R05uNOY:D6:@jgjYPDF1Qym!+9AjQi)jzg3CR9D"(cXW"8W'ϔJ9y A jQ[Yk4+lSdW9qX9+;È뻿 +KkNjɛ* "Qo:q[q3Ejp\K[8 ǘA"&W&;1'PyX~#]Uw`ja *Ah`^OSk]=Gv4`8*SבW%Yġ !JHeO jG)`"7Y@$0z ,*þjWGD%9C]|Ƭ2CPibS'U'2\IccB=6ch "'Jz`p"}0 ,'b%4I IT[dsbKt#+%Ki&K9.Tf"%>8{љ  35g&0ͪB&PM[|/Y  O,lk^Sgh8Xh sL<&EѶlX&r+V7+Ƿ)Kq;Dpqx;jTy{hɿD -)C&?x8K5(|lclalY6ZY 60X!qVûM-SMUmWY[]=6!o AmoX1ևӾO9RJ]iP+|yh)[ϸ 2$(25[G MG*c}?ѥ\n0k2ki6-̺B<=WK,QJ_a.cNengikmotce˨Gz\h;h}z|ʚf¥!o``cAtFc0 .dyQn–=%#A-A9LU,1|&'05 HRZ)e [`d?@@mk\b ,VvxQe!ʽ3n}ey9,mfߨQ#8\t/0.mܛ^N!SϢ!NGxW4DМxN@KOnB.4FlHNlMWO5QSe?Y]oOuowy{}rAP0M礳爤:7co׊>B_#r#kAT(2_Z 6Դ`(9Aw4fq7w,\ԍɡłSQi.ܚ3F.9>V̝ʁG|ǭ_0 H.0_Q⮻8#? 8wExnhDFJP=UmŤA?>dl~yS!C3mq/tܣt 㻉o|>ixM'f#U))jbuz0ҡYAB# V6I@LPL,4H5nG!E$YI)I8",]gJ9u1#8nz1#I.eSQNZէ9y0E2 uȐ:ծ% {pxh _[ PÉs` I@o3$@Lz4FX|f /nD G@rbo|;\@hPEh]#7lcI+ !r̭..#!!}4b&Zb"B@"@sAO"fa +4T0 8a& : !3^Xa7bqFIDcH DHA ,„@#0Sʌ~0\n/HXЂ0sO>?"?AF@OäP2^/$ `;rr28 -EZ*5P辳KJ=UFerW^up2a5XduYfu>vZjZlv[n[pw\r5\tUw]vu]xw^"vc8I_ʠh!!qb0b FbRz72 ra% . `XԤg[vSF>b;j+t; bWfmӄ]}U !v@DN/MPD!p@I:kn2bL AH'("p(ڇ5uXta.E,pt\* qzvyF"X%7tmwiZ"*P!F$hMzL@0 n04 #|PH > ~kP A78J <@@  &Ť%/QLjpO##Q;0+8aB\2y l`_)̞.# 6 @KH$ؠ`B PhjH{pF1B Ih 8P:~ё:hAf:@)p1|#̤0#!& F5rFJypJ!q`9Б" 6`ߣ.ͧ> 7d}?(`@JI fWe)n 5 @ x҅N]h hOvN%юr@`%A(RARilƕei9rR\/c + pre/I% tSH[=B~9#袠 h6Bhf!y(QH&T6ȣ)^ғ+)GXFpOV+#kTTʨlmVD8kZ!p%`# &XsM{uעm{KvT*X1Mdp#IfB xīaxG^|-yg^|=ykMIk+FnyCނUIĿFÙ%ޟ]0: FK73$3}H> CCnQ`4r;#94(ȴpٴ#JuY"5 4 73ALZ5jh@defKghKS K m7ɵ ()rSs{B1Q7vI'38=A898#`({(p9G[’;9-!qv9.ؑ=9v9 8`:(!3/ 7T*C);rAZ;Li>C ە:jvEL= EaX,FqaLFe\FflFg|FhFiFjFk=b2 ~j80eʈ%@.h(Z4pI/30Fƛ//s>I,iٚI9x E>0Gt7x?:2x% ?!MC?Hlc(EpaKDtfw&HC . 2.8¸ڸ;Cb2@z#Đ%tDEdĕZ!)) .Ѡ0IO|҈9S/>3KDRS+qQEbE ,#,0,*\ܻ]ȺFR5 dDS7}S8S9S:S;S{L~D;5 2=tQH=.vS >Ȱ IM:ǁʼn HɄñpi#KҜxcJpoJJ"V'Hrq ʂoJ35c32|˂ͻ ڠk*H <'BqIFcfͨǬL4 mu0( =$9љ,๐:Mͨy$aX` 4|łeYB[:abyQhz'0Cط.(Ќ |WJ''W|C:t[8ÊҞըg(AЖ 5DE9"qu*%WUI:$&!" \ _e#tRR*UiES¸Ũ--ZR ;sC,SJ݂mS!t,!eH*\ȰÇ#JHŋ3J Ə CIɓ(S\ɲ˗0cʜIa 8eɳϟ@ JѣH1&AAŒIJJիXj 3kpKٳhӪ]+tC=XKݻx { LÈ+^̸ǐ#KL˘3k̹ϠCM#h^M2 ^4 HB + @@#K9DM܈d7 b89D܀{!@tH0Rx )q`E(`; L8!q8 ` 06P@Ch#[?D!X*0 16=D ^T>vV= _ 6 hD@? @a )蠄jvL6裐F*餔Vj饘feq @ p sb 5kegFC=pݪJ,$a@8؁ &@``A$kQ(AgzM'q! kxWfd) 1Dqxh!y^BP ;  8XA&ĂL H@x >@p22B`;CF $` IX4EPD5ClAL\62 D3G*jMz $bā݈oRDVD1 ?pFsG\lr.X$@Yn 0si%'tbqKB@ p;DnE'A8H hRI*øE{EZ]>CCɁ _x w HL:X ZU\:#d-ZO5 "0Z▷p9 MAī!Y~ `塡c12ldmf&0*C0 r'2 t *0kFЁFMLޜF`#WHL q^L`/*$j (`) VHPQJTd7-i _'NbGEʬY蟞$YV򕰌,gIZ̥.@K.6`@ aF7NK@D4")0A po>"+L7AzJ@ iN, +=Ӂ9A `I1sπ e EiBG;q nxep &`-,ț :@4 3a#3Be/;CَnhI@!`*(HpT`B5x @XXDHSk3v nyb@)M0ywwҷ&]( IPhf$dѝ.$fz3A rCR[7F7@eb1PHo"Р1 ;P"4SvpNyyv`w3 (\G74ݚUD"h05~JTۓ6*Lǻ9|;:{}^tA<V1* AŸJ\0:}`X@\ vA40f7PesR'W'OcK[..Kiywgyz+e?ƞ? T[V{X$CU*bc?=ԣ/@`̳UL|c[`ApBz_w6n $/U^tkbKj.{#A"hDbKA@H!Py 188|7$06}MB'ѳbKeAm(y{țʻVCiA2kp%'ͫvlF~vmehMTrq1AW'=P212QCP{p p¦&qP `E'5g;311)p2˞Ou@Uwu"H2^ (txTRVQ-`0|5mY83xT y&@@`kxEr$ lFġ+9} |C}ދ&|I}h}؁|k&![U}UBt~!f=p^\24}Ȃ<Ȅ\Ȇ|*1kN*DФp=0<\2;3k*HCp:99H)q`Dʡ,'(h4u?-F]Qzg(x#0(@I61˳J=Yxl)w6;p-<]͎{ٖf<\|Vo\l(YNkB`'mq=.kIۡ2)Pܙ\uze])D] F@l| PP2'pgx$~qrʩl͵؉_a`jddFE*E'!e.UǸP< B#Vb"mxg;Ṡ9Co[^+AIe)lsIr6^Բ =G};}8(FΜ~}P@ 1ժD٪ڬڮڰ۲=۴]۶}۸ۺۼ۾=]}ȝʽ=]}؝ڽ=]}=]}>^~ >^~ ">$^&~(*,.02>4^6~8:<>@B>D^F~HJLNPR>T^V~XZ\^`bh{!`wDCc@1pFuZgllH]QX=B'N3-s1lo-g\qſ 5-46#.O 7@ -d@51|,u.BuwuӺ4Ȍ:Pudc6o~^R@wk*ytb4{,R֙iv]0gL`b.]}Z?kRd=;)2J"n(jU]E MfA֋Ƥ**Je&*N OCl$k#p Xlx\ ;Ҙ0#"<]¤!?2_N1~ 25`KϾ'cW r"I=gceo2Ǖ;UF7(<E`IrPL?3?@"pdgq_K!sQnyaxG6%*o FaY ޮ*J36|;=&_hn%B= "/*lϡĻtF&=43_C寻Fk FР @á 1`L?0c]lȑ7@5męSN|TPEETRM>UTU^ŚUV]~VloL ~6Hr! +R†d]sj)⁚g>t=hBI @ 2‰it@8@q&@`a@b1.[bF ;[P"=AiFd+؍j6t̽#tgP8I ;!B6ҍ0),-./C CЈhP&w2 0D$- Vs4&o.Ii~{(67L ,kZȆMcKG9}$͏Pt#2+ 0xo1sX tp, MQDѼg,*-#ER%ȼ3)\ ^ "EpJˉ3! 1ӫΓH':%N%'x?Վ I EeFuGH5yD H ɤLcO Sd{ X DEMWZ 򁄫@p|2N7h?e RK¸9sV8#(HPP?do2SH КWMIUVpW@# KR$l!0 Qׅc؇؈؉24l9BXllHX˰-D@ݾ7$1=$ߌI9t'2(Pˑ岶*ݾw uZ$p){$]O# H $ o4-G>,P0? [wt ֢V՘[L%[I*$*GJR qҾ݁.۔V\%/e[4:2PҹѨ7YW2$U]܉܇}" >B[CL;eCiTS5>|5(MPBK4흉 7stt]^A+Lt nL9(jUE* `G#;D;( Ҍ xuL ='SPrVBRL>#~5]?L;Z=i 3klm&ՒaIU\H '?^I %Ȃ_(.I+F#\$2:("2"p񋚐 à*cȰc4_p2 NE?#dC7 C,jzȚ,.-*Yך11 c8-l4 $1bz..IF5< &?@3aJ.0&r6sFtV9[hЈJC1#hC$ b\ w 4KŴC-':DTD IMGa'SD-MQ{ !ؿI%@'1ƀx( !QYY@(hh#j`$bŃv[,O]4aMiŚJZR_cj_9_dHj = \Z5j#ƴƓÏS"taGgkB{-وi牞x(H0+* r"ښ5<)\) _=VL;PHn]\DImÏ)PEW؂- PUQk \A$ve<;m [BzTӨ !׬ᛛ:ٚ`؈֨#` j/HļΣ|KUTD ﻉX'7G p& 蛀x^-Mb CqV%Bh$3rcV ڡhY-NpMQ*Ȧiu601f^U-bE5۶j[#F"j{bgzki_dTKCkY&9o`ASG \ɦl%>t,=~\ө[Ckm K9: 7P>nQwR*;  <C+t%.~3'n0J]S]څ]/!a&0>0 'K7_"TPqWgwOqqe/ #5(Q/#8# sT/y8y#9h  }?@Eb{ ' \qUvfdpO?L$b\MSXp y[z-p'Wgwwh/0 ЁFh0xÍ 1ÄNĨlD6K&X{P1:U1B]N_l~ ŘI,@ڼر2\E)4.ku`'xlz,N(7j-~d( )k-Bf,j>ɽ`u^ ط;|/0Q2{-B~"XR1w|Х`373خ3B44Hʈ?(ғ>'xx1YkG it2ER,l+ڰ|L,HBI7Q«'ְ+ZS  QgAPZ FH٪-SkZ QG3! lp$.,p$ph 89ӧ? wEEHZcpDXʈH MG#BlDhېX}6`MeLśBW 4V FtmD#KVA·y @u dI~hm4. R 13nTpwkv+13=<'%جLf #L(MP`-g?OXaV3!b)&5 (0Ɖْΐ''6UpK!ـc&ڸdFo@Odt-Z)B7V Nj KO)Gn"WAwpOytu-[Va>3QgT6U%:`n;Auí `RwvlGI^(bNJiK]p Mgph.LzԻf6ѭh xOK4/01>x$*0?my !/,!eH*\ȰÇ#JHŋ3J  CIɓ(S\ɲ˗0cʜIfJ0ɳϟ@ JѣHj܀2JJJիXj:G`ÊKٳhOڷpʝKݠl9`˷߿ LÈ+^̸ǐ#KL˘3k̹Y @4Qآ^Fwpc5j"5b6=D Ug[n!C8_2l@gNu}@Z,$ˇIċҿpHq7iHL0MЁ @pŁcjfx ]8(`#HB]/Z^ZpcF7>9`]?D!ZK%L0 A !ߕX"hN087(]= WR"PAn袌6裐F*餔Vj饘f馜v駠qjhRꪬڞ~c*무Jb 뮃$+[p9&6F+Vkfv+k覫+k Xwu"Wl1VSVw|z,$l(,2I4l8F 7D1shڶ&C( |" C w 4 h @61;pЃx @tGt -A5CY7^y4p0ZXMsg-촯DIܐ 9hA>\%p{&@`DJm ;  6q<019C4$6^݄ 4D J .@(7# A l6;y؅Q'xc5VxQh=n@txˡkV#d@P(A ja5O A<hĤq@;@0!@ Ջ%^@=axģA (#G6|@ӁS/=p 1%HAD @B1/H#hmwj jZN=]j Dr:[B*6(z` `z xTmHP` Xh y@WьT:@ѯ0$D<StH0얶8@LH{³g('Sn+]iw5Mz_Nڌ;v5 ^[j@G- @ |6"d!P.A8(F\0L}2X֙~;0bMZG M b*mD 0CA(jQ`E;1jܠ#` F @@(aqi~g1}/|0**?gDu\PE'Fkf?(S{$ZOp`]x צCh1W ^e]S hՁF0-HF@A 5*}9L7̋%- +cPW,cC0Z8q^mke*'zjeHA \ - #؀(/&|[7!2pm x_ nT:G?m(OW0V k,#ge&eIqsL $dSe,dO[Ͼ:M&gwG/S H@![|rE߄4dc6&L!W_wV!P28K89s7g& u21-YWI1R2`H@`#XhFeqw(TBgG`wDR̃f1)ph"2ٳ='iwx+c6phRtUBsXX4Cx8OD yU3Q-`cUAA~ryg):4Q]+(R.(#@mT4mVzQC7"'':XU(WEEG&122#G{[ƀQGpG0`NSd |[6'\G$9D~B|2;}؍8h068_hK~~C'`$W4G0wPw30HT`avT8;S7VZ~q9nԀacX76…HPE0'dP6;v;FfB~A{KzwI##`<2vvjYE7`hTB0L5j"]~aK~y@Yq\9v !< ;xa̷]} M+LĪTִxɝO IĪH0AvN*kJMe߬ SHTA۞z9a*ޛ<۟4 8&Pb(9OtfzWUz@^zLߐ҄ZcRKPLeK; ,x3>c:Bpþ 9R'"@ᚗQ<0xciZhVC7_ 7.+M P0U0=pZ&~&Zn|V0 ǰ5lU !v@DNIQZHm,bUlj-܇.L:= Ĥp'`EP m(1a'lnh l*+<20`#PYd9QNjY^Ƴ 0Z*sFHN3dk! 2 3Icu @ 2 7PA''L eRjAV6;Jt}̖&tmx4QLA45_R B_g%QE`A} '%$S-,ἕ AMCs6EGk })% T#%iIMzRT+eiK]Rnwipt^xƻp.4&C%j=O| .EkZ{_5'ZLIQx d( Z0]=A p)X4zXĊ " MBjxÍebhs P@AHepv@gAy4(Ki pzJlqK9Ql:Q-yT h@dI0 [#lI5Fh "waUo{ L0 iP.u oKTR +YJ`#^Y_-nP0lALj)&%e!PS=Ow  omus\*8u͝ @ā0R AhXf&D n( `$$=YΧE{ )Aa΃&t }hD'Zыft蓒Io,pj2t=(oy%Nu.կȁnկfKJWɀKM=¥jvrN>}ldɈ=`|B5()@|p2׮5H[ܕ vi7q8ClxǻBŖΜg480_ lfZ ZM]qMolZxōXa @ 2n E^kUSMY؃l&Xw'nq/dҸREq08܀mN\tKa |N-qH M]ɨQB@s=}v]s{~wDZpULz'<秄,$]ߧ @R孪+[CM&pAP=/v*g i'VݲE.}D(fe+|sGp6E#ېni#iC{'?N٥Baf=Q0犙LO|zFȑ?,SI@gK#\5׿~.i(@1+@<@L@\@l@Ļ ])༿<|@<1'*I*S *p (P p5,.A<:@%Ĥ"jZ!!"*`# b*كsB-H=­%C*J4Zh# ;Y i ڮ"8)HjـHIÝBACRdKU,W%ۉ]{>hDрD{&YULg 8 0<,Eg#'S''!~j"X*% [ $ /?tX3u,q,`Q|F|13d s{GLH\HlH|H=&)-8 I];s#Y""Eg 6k@m"蒄M%@'0!EiqH曇YU&¨!}2@=l蓏@ZN]d*!Q:oh"|L)I'P(U&!X'"`D@,_C,rPjșx @@d՛2j5"za! h  bS=(j* `fuF $ &92B$r% $a@!h-zho䚐&>ș.!\Wd_zX' (=e>(əI@eh 2DWF! 0q'_ܯ$&(oPt" t]*tWͿ̡$bBh#l]bX"))d 0R\_ݳMJf$b)AZ0zF$SNNUK E Iz? 8 #HHl? 7iExZ꒔$P\D"I!D'<[~b'[ 7`,;m/0.*~ @JЂMBІ:D'JъZͨF7юz HGJҒtzhv p@IЃLi@ PJԢnJfPTJժZXͪVҕAu)L@4Xa[MQ鐂.u ;P` @xNk%$ >AG5*[ݺ zր6P;=``Ьh{VU |= O ;C6`vmVAX 8#wVb n 0pz݀liڟζv]A f jC{"a`AOTA oj=$H` ,`g i<<`|hqK|vVA8c|T+ ,8_5h1MZ`" wH锫<]u " fP0A6R tX1'*7 2` |*ʂ/z@8ncxR@0a8lKgz$V$iNs̓Ri^| @pڨ*@ `ND k63xP?ÔM &aAomn(8=w90<,}'u;BjPt=0P90a @AATx{<jn 2+r}|,@0{Sn n ]AN)[]îw{` <k-fl f-@+=ls '[ yo7aֺ;z> :0 dŃ Mua?nP05«AQ݋PYzH;x{Λy@3y7!V>|ڄ Wv[4A '7_~ezSjz0zJxwHVuh|Vҵ3SI|"(qSlP^jhbrXpEbwpbz`k`_ʷG >e p` B8@5z006|`bII%؂`bdy@pv0%s0u;v]7w[]0]^Xb˅NqTw0c2oNXx8Tfp'E4ЈJ5@pXX؉8XMI#nq1R@57PB(;G7ԋU"Z?0PAPpƈ8<>0?I']a&%#`#p5@0̘YdCM8)8h4!HB@uG &pQnKY$Dh Y!?(I`D#i92`>@arX@9%31g2Р9I9# ü 790=P$$9i? 6pL.2mɥK0`'kgpG 6lps*_@9_Cxy+6P\& -d['ΩB Gp@6+w|PVh:p(?!tLp8>kʓ ?+?4n;˾[&Ij>=dLp< "\<<#),?,0I#l8HQO>R]LQS\;>^~ꨞꪾ>^D슰hH.菙8pz94ylq\?H`5ȟR`=ZpΞ]9).q!$)(pi32+78`$=&pQih6 ㌖ȾތL9ͣX_cYQ ̊Z,I,, =ݚ"0]2ܛ)MQ`*y0jB^ DdV@zgͥH ʠ$1# q?Pл6<;퟈/j1_x4V@-hB^I:`I0d}\m}MSq=mJB EP\#n/4H {vY 0Oک*51ݩZ]?<==ڥQy4{m 1A .dCQp 6:СM!@@ dr%L1 !;@hM=4Y ,ttfӨ.n]i%J'~8đ(dp2F@#$x 1 <!/ X0Wȑ%OLD@wt"$T\7E G5M@:@àc%u'^qɕ/gܹd2@"-w~6ۻ_F/9L0!lݗ%zRkSP" 00Ϭ#F-d%r8h .P?Ȑ"Hp (Tp7! z()(†(B!FyH @tI(" `( +b `BN:|8tQNA Q/HSz<0?J†8EnRZ!) Z5XdUvYfo/vZjPgvʄr h`"k5\tUw]vu]xw^z^|w_~_x` 6`Vxava#xb+FN :@JXcn);Lu>!"j~"`>Hdy}N5㍭⅁Viz馫^I 4,>08ZTaPe!a3PAv 8`;ln۬I R*p J4z\+!b, Bbr.tIOgdLQ$#;1APIU80X]]W%w]{{w^'| x'^g|-3iX,l`ATOճ8kD\봷S%i+6lhJ%d ppe"ҥ٥ m.'^;_ԩuKv$x|`|KYzF2S`!!ܱ7*.3jYR# 2x@@  "?>222$0Ā 6\P27"33914/:2 J[.K6 LP3=#;4BC@ʣST+$b5ܓY6Lb *̑1_ RS2T:&Q/An3}.|xcgr7 1zئ7C= EB Ő76`z8wokND'L8: !( İ 》b#- SYE爺Ga? 3&6:"*]a9s*;7o|ȼs;yٿ؁"sAQK@က@끸Iڐ>)ˎ2>ǁKLI? ?B-ސ <q̷L90K{Z0 @I)B.Ɂ`+頶" L'@# L$22뼲l2$נ!/C031+3B\3!"#Z%3 4js wª 6$h%؛CJ$( H`˒i! b5,/4 ,56814>zUK5,GQT$[aäеt"ѰDQ ab DD6E$(* @GԚb$("(5bd ⠁ 8 iR -XwaQRSW&}Chs%X{ciT8q:3("Ptbu{3c8mçDh* hԚ؁#&I׼ 8 U)^S1"u:g5pG*AwU:@EA:vV M::9KVO<$_ .nTȴCXHfXH4ͻLDL20LM%,0՜W\j_ۿ? t| L5 3A@ 2p1(]M6:[ANO*[A+KIa\MAOO!PϪ 6#3&z(=҂P. @YM2.>d 0 1?tr"aB6|^`QP`N5$×58,Q̚قQ<R!ҹŵL]cRqҚB4#*Udc%iC)8D2]6e⅃n;^KՂo`7>?Mz(T8TWEMOyHŎmA 8#!ƈ'S% 'QUV8H8 2;\U=ɩݑAؑPƔ?M59sWVr3d3LCm,.\NR^ҥ5!6")=ሶHDa279KĊSH%2fe9>}ch 6SCED<EgK@{STtTBFp.`L=cMTO5 uzdQFI6FJFT͸}Kp%jeف H,`XWDA @(( "?i5jht9f Ǐ q}fst WD#!( f[ʕx]o St[sƸK_v(ygfvRΰ2hkvlvmvnvovpwq?+ZYhҚuhXYh7hFNʝ]Jك"-h9Z6ilb[nj lܮzwj\YkF/;k4ܓԾB,ę\lBA`WO^mmm,n?wفA܉Rb4sdf3"#$DS(o~F3 4`ߊ60R7QÓ|pNy p/#͵s 'D7DGb'k߁7c1Tpñ`$rE'o:fJݍ*cT@O5V&C'7Wd5s{dR-OFLָPdD]6r@# 'Rh"ƌ7r#Ȑ( 9Qc2gJı )W|&А$cظA!ԨRRj*֬ZrMPÉje-zt-\'hIeĽ8V =2(' vP@zh +'6 Wn5زgӮ-{—w7ݶ/nh_h`#8ҧSn:ڷs;Ǔ/o<׳o=ӯo>? 8u/tt@q!фF!iBPEV FD *ч!`>H#uh1wԠԍ(" $MJL2AeF'`H x0&R\VDƤ?$^6D' - > 'VÖkN%$8hD*`YEE8ZiDCJm'pAާ)Z @.5`'Cܰ i%'Q,`` dZM[0QYY"pT2qY؋oGD=p ;  L !@P,p D`G_QD&\! FQuPWȊ+ ѱ LSD , ?܆A05 p!C&bfADI bJ@PU=wۆDE0"`CT;;FR{n$0AEC#XQbSB0꤆>z Cae+&d] m_8qZ0}8L?FW.Tx6H@5a 0xAr8`fVe Ƞ%1 a1 N0a Ի`lHPk0*0̢!hƃW W ^0<ǂudu@ x1KІqO @baJ l`(a158 x~lx+ w ` = "!$ rtM^g0! &Y34,q L|eD' K@R(Ha!gXrHo\rE0}K`8S$zLd&sqK0 Ӥ&&8Nв\':鸌,91'<)yҳ'>}'@*Ё=(B:% HZjЁ+CPҩQ)9~HPM LFppP$4! IU6y E4 )9Cac= peugiIV"1 }IeF4n#̋ #HAB _I1s$$"I6s7O$dItb+X|RE!l`A -qb%X/1sj4%Cj3Ion81LNr':1N\8C.򑓼&?9S򕳼.9c.1 LĠ-_hFҼcLS;L|"y "(Tΐbd$$) 메~z,mXE Әʴ` %8bUUYӹZ QP*HMDZ5QZW꾉p+^IÚ7{Fkֶ(Fy\;hŤk^AM~n@.tcn5x.wE\gϦky 0@ҤF럷jW[m5lgS}YMn݆ 5@8`I@-@pXE(*XEċ FO$8O|ِW9@YXYDЏi 0ZHAY!P!QIY9PP . ٘否V!n),ZROU€mQt1ʪ=QݚZ$hJ!&J۲%iaH['D][&rү[Ox[RR,ɡn..|ۼ _5- ƿ=d4]F56%6D76n7M.7\] [8#::#;;#<ƣ<#=֣=#>rGC%a#lD$]H-(c1@CJ}co܂4H@,IKaPQ} !UGE^N<L&JݵK QKWXB…1eD J!穊^M_idWD`^ dAJ8,0qF,=K] `g Ğhўi^D^D @HDlAPVQEyWsU @e*=IWhWdAD @@, ty}z_֤_׼b|ť_~&MIIrXe) X8 @qE&PPY`XMpxr؏ &W` d` `Ԡ``Ruag`Oa%EW@!PYew!(Pa!!|f ʉVZM^Q Zb)@#AZUA`AA% @]%\(Z(J)hPNDiC,Z,[bmbBD 0&0%1ӽ[2 F-c3JISeHc eS\#j4j=zcn8Fspܩ*ƪ*֪*檮>ޜXHGdE$fDCJME<JUd^dսTrGv$TNa$H ٱQFdB|Xvm V T*SVKRJRKIRUYBUR޶^`YbJU B[NVIeuKD_]~ȞV @`inaF!b֖b-k،LweNm Eτf^E^pwgVVl mf}b Lg& ^'jDzQXVF푍 Qh蠸$PPм.auh9Pc Ϫ^u@ h5T}(eᧅ ))oRI"##Z$.%F%:HLM"A$Ax9TR+R*ީI [©N/5D٢(/QO0#222c6IۦZa#0 Vpw0jE#011'/17?x?v@T6 Ab0E4볪ԸJ+pш1]F1 4(Hv]IJ؉٭G(WS)AU`aN 松~UXR,ND!(1,+^ DA\eXrU&e詥Ǝ~K,l^^TfeD`v%bVFBN2J5wUj_K 0(Ejfk`{y-)- ޤU,'g:A6Z*NzDm.'{.{p&q}.O~ʉGc.( rz.mA(U@1A2fz=sXb! /oa Iu8ڌ@ ؎E'h5 Z!z!Z9Q)JP"U`[Ȝl%'6R"]ϲ)b)ͯ&pz0EĞq3D4 9PR{0p11>*6cp4bF^f#70 q S'7tGtO7uWu_7vgvo7www \6DݵDw?$g+1RO|Cf] VB 7)F]€ P \ŮYɁrYJ0&[r'fW,h#'.Dp7ͥ]2Oi ^A,8'l0SŮR󬅌 t DWό7_y30lL@ 9.&s~_?t  {~Op!DqG{yyx` JC䄓ιV aNxA[Ů - :V#Vu5u~bt.y.^K)oNўX1G; cX ๮)I<0-b6J xe-Np.qRϺ{sf!𰹖!eo_op5 w *Y!r7rw<47Ѯ9*7)9hHJ:ԙD7ϷؼF7&ݷKrR!@e^t XLz*x78?xRd'+['c8s瘽$=8;&8g]0@dg*@@E Aߪ+[f6\>g~g_㰕SscG? 'g"'f1#A (|̠|cEW'ygO&: X>z[7U:tbzM?~O"9 M!€A)VxcF LȱÈI4I#CtBA/x( pgN;yhPCre˓K6KSj4DF/F q#nzzE Ja5qG3@A@!Zrc-ZAFZɒGYQ9A0ƈG8Ď8&׶}wn6qn"9T$n޾N8䷅ ?$qQɗ7^g٧vAsB6rA v\"4!`  `<1EM<E&]|Km & "<$\&|(*,ܒ.0̒2)\M (z3~"SΉO=+@~F=PC2CS+@$a2-H6+E! 8B&("|HBX$XAϠ^,p !IaHYbEIe, BDGܛ(Z)A;A pr` 5崃+P"!PU A_~xW!v@(h:`+{8"h(27V P(v/8M)Ƣʒte\Vf)O:(+=yh(Yʫh ,+NPc({z" @B$,Rà( ڡNse@`,Hq%r)'B a4Aq0.>u*\Y]J liY d/vwh=*찆B!(K*rڀ@"BLɣr$GH}#BjII&lJ Iԓ7@']%+iZX5+q+8Nd *xVJ@0 tV%< :cJQH0|b~8Ja1Iaw Q %*+4~~I2pș\ r!JC)! .@ g sG?hER eGCT"HG>$)YIK^&9IO. l0'IyB NT9r2R&,Btt&YViS$cJJ BXQ0@z"TDfU[媔|c%WUlVtZVpYF+]z'u`Ee`k_`S&r J21d N\Qtc!YMf9SK[v,f3z`hEPc=ɨQCԪv0pk&&6 lbQd 97N$G0ZDwõ49k!I2#+Hg:>=$;%o4Ývj%w<$oy D:E4 /3Au/!r@777#)7~uUm&5vS@uQWJM(ET3  @x%wJ'@ Y#P#W1a o 9taG"pFF,4^)hh42)73 >i#GI d'?Q\e+_Ye/HB|#EL`@ hE.挜R"+JTiϿ$R/mdC мtv%AOÜL?-nq&\$ o6BXHȀ @,`'l;IHI>-R d/nL!#&ER'&{'(R((()R))hJ$$pBn )d*0`",#dHֲ-mHmQvhIrKpp",>J]ACM,%R*{2@?2S&v 0z'B,iT՜C|`8 , o { pب.* d9 1 ^P1|"d8ਦdl pb` 0&@U>10V Rӷ*4⊆"V c@F/ H!QF`C DݒӞIXIʳInǐ81< mZj"HHè$NKy x QQ%"^औJo =%4 Zpbt)~lxҪ 6q uuBG|QEqiPksGI T 0 NĂ`_q/k;w zsvtU-LD`U t&5kok|'`T3$Q% IEKOF. K r"|@v|lLUo!< @ `_c 0!m $!r-5"'",1&doh3nSRd""7e0Rd5R8r>LI`vIPVҋ%/drf`o&)VHj~4 UI"\ dM6vS =HD78H[ <)TR::Pۮs S'IڠbDd B n70|dSv/,IC4K/ϥgMYgHkk|t)t$\2vܑz\}ȇ__hnL$֙$bc)[pÝ8Ńֽ7dj;9d!C!j>= DQ2LװxMbȎ *,YBPۃDh /s0CE:q%bݿ_Qj݄ $4 810 ri)R Z1A҂$pOP0@F. `!_ 0I3T0$g9)AZɨC0 rk)?PD7PN %iF5:T$HB-%LQ)Q Vf:QS .h15@"!ʚ%@aF@/@iOt #| *;Y0 ^ʙ*V\Db*Ucuū[, uT"r-e襒rK+)NU " :V { `% 0*X<@6Q:TG fA*%t,vY;՘fޭI̓`Sz&pnow`#j*Euo5))&GY EYQ`BtKW *f)z/O^s|^%>}K+%Rʠ`1 , (@ `@x'XW0lgBx{/ЀLD+zьn HKzҔ/LkzӜxP9%8F2LdSGՒ\5%GyOM%I)gS2KS \Jte<:f ; |%P ~gend8<&uYJ|W#=Ke>6%S7&(B0>9΁t$'V2<_` 0d(Prq9OW"uLH#;ys'hSMWӁ0y?PP:3`DO*ŕVv :Ё6@ 4 x_TYtw[g8(\Gcxz +U,ܕxuQV8HI e5aJVIghn` } ^i-]`ko~Vټa/(Ft#bAiq0 cP˜<\[4[v*n@Q2/|aI l0=ޅD.Ηd?J6P?%?ȧ#TJ_WOY&S @AA)Al/B!heA7+ȂDg xD73H5h79;ȃ=?A(CHEh>dc))PVЂwkj&ls kHIIGVJhxg[XJJdKC0|#~ɔA'lmgvQ@%Pvnpno$oDoCo}8'SO5PfPU' A %7Ј|4qaq{,@{:Aac1r)RsFbS3':TJsEEAJGO}E]VUUU`3\0VT'j&iVOuwuvqD:wBwvweYYww,Dxxk4kxx2^UICv[a[a%\y&20Q!=T5U03{_\^^.|H|cS6s6C||nSl.}y#UW` `36ava4r3a 4~99>`<fs=+Xhd(cwdB@RNVGxBVgM\^f;dgfrlVpւ}If6qM!hfh)Iiɚ隯 DG4qtRA3MJG#DӅ_HkSY8kl8j|:Ɯ}pXR1q䑛kmvP14%Q79A'Ҵ9C9xƈVNĉF$ )&P׃jPPPY|r~(mACEHf׃L& Hz?ė&i$a~cVffy<gV4u/)5Yh3˳=? A+CKEkGIˀgJthGPKGiaH`jbkjkFuVJpuhJ;Z;WU{JA e¤4Mԟdn ZAFFO&kZmˡ2 eG3 ڕ4p$܈tge=wUH3#9 S"r-E>>J07ьsM*B$QZteTzjqadgE_=J4WGe[K[w*(w2[]'YyXk~ZYt7ugs-C++jMꐘB[z\AGeRQ a<БF] ^%ѫ'|7\tc|<|@i:z` NYīGa7j *P䷝Lw ( l.Q~ MCܖ ;u:w)SJBd2_ֱf~ov#!$4JA,Qᲊ˵$G<3hLlnjɬ ,Lͤv1RЅ r{T6i[&h[ke;fB<^GucqKd8F<n&(~}`Vm|n۹nodtG єoȺk4 PAskdAm$grP'0n š8;ЧAsHŨ@j廌IT(aYG(,Ekdw؋nWmePd7/>˷ќ눞[f*d}ұҰ.2}MJ7%<}q?fD%(\.ISCԌ8Gs໤YMVZ}PRSZJ`b-e]jJo58ת]בׅ>.؁:؋bxǎJZ™B/ٞzٞR(|$ڤmP#o5ŸM×>ŗ=|_Ż+\ JǭOjݖC3!T|d}}~ߴ7Qaޑ k) dCHߏ5S[GY㬅dH8:><޶켶poltJv+Q*GQJ~{2&Q/!hl|D-4OprO*]s3-W ,ĻfmȫȼUڎAֻ{;'NBBP RhIcdM-g.kjRKWN/l,o DPB >QD8!b'h%ME%vF"M,rB!@l(P ?TPEETRMI&LUּYUI$2 r † UV$50R 0D԰B  @*7 Q`C e! Dq0ĉ$!`7vP :hTRM(0 ōIH;PD* Wsӫ_ǮU;.%Oݿ_|ˇGnyMt]-FB (; Lˆd4:b2Hm -V89vXqv6%V$hx ^ 85T( `~X1 R-l  Ta$,0L"LsM6+r28,+ †(PCE<έ,G"aE%A*!(t,lV4&}0Ȁb< Vd!PwE:hwE6YeeV"c6ZiEYk4[q%\sE7]ue]w߅7^y祷^{7_}_8`F@":pm^&P!+ 2@satWdRdQWe6gw.Jfmnox /N/vhM` hwv!v|xÆ$ 8F94%l,L! 76:H H p¯q!b,&(ngG?r5o7g3r` P, RU3b B~#OW)ShY1-:Кh`!jF V z, >Ł?#d W> _W.60oW ]%0 uO@:XB xeE_$;L.C= %@1 "]m@4R,( dp荥,Ckrb\2QGZ2q 2Y#21 '?`+cV5Eŋ̥.w^0YLc  KA*8b/39Xxg8f$xƝ;e/ ~`@=c4LBeTX7zP&T ͆:<4JD'*X(!\0$*4X*ŁKPтV#HHҕKr NdԜФrY4NG+ vg^xP]H`߃'υxmI" !tYdf%;ëZ%ȟ?5.頚;Uf - An70)G*#0,Iy]2/m{[֛lA6B.Ŷ$d)`/7ir.}Ў׻y9υn|Sżᯫ){;xuW%x@$8c=Hp(70(*H5$'@-ܛ!0 #4 (X |2(HAJz XA7!rӟ'KA"[2 1 b2tq2(C̩ k747 AyvQ3Ű @4)@H (380 $*0`D$hYʢH ;c')S "!404FD{[t D: 4u9Fu!M;8w+WĻ5CD`FB,T<W^;=(pM5t6A؁sG("yc€ mC`R"jT'2(76^z&&%kȸm[n+Ƨ7kuDCI7y#X5rF3GtFзr!|IVy;xn;2"9!;*H(A98*3c۸8qQKbˑ 29 ɃjC1K" KFH#bhIFty@e4NsOsPNT+KBVk Qw  P}́9SXHZ$SHgH6f6c^ȎmkhIuI,rKYpv#0'w_7ɷ (w#9(0U<ɸ 7W3W˺;D˗.P"xɹk,Єؖ׏] Xoȳٕeٖuٜٗ٘ٙٚٛٝٞ @v<g^h&xaqzkl7wVbaY31ʻ%ȄaU'!@y%:K19~|Փ@4b(u t tXR99НX Z\1^Va-[?ΙNESFTVUfVvWXYeRH"qѢu>ZţZszA[uQMR>|u⑾Yk">]\m\lg@z }eMNb51 ]*]QU B^q%< 1%3^)l)'M6Ð~V)/2!1[S!PK$R"&&VF+b-f%=-E;l 0TFTFa##\Lh 4}Fx ~R$TU Z H# %0XGVx(f[a`ala]ba!.֏e%6.&nZI(V). bz;md`vɧ}'"J4(R(0V7[c<);֨<=n>gts)9dwy؝ScG*H>cIإj NgR>S'7GBL^*3f+}-}pۭïگ賽؈ܩ{fs˩wf?c>-?mo/y0%[9]*| ̰!ذmڵPC!%[ P>ei=BB2.e= }52]4-»uQ6{B3p;y=3jQEk)CC`HfTNk^&~ I4A%[5;0  bՓ>쉌fwa ?F E&ai'wx+n'ւb-2A8CʹSnvznc>/)D)EF.cd$=oWFDz.ogw"i5;{k7mӿ[~d.f $/`eZ?C7 q0,iCJ$"#=K sY>T>>Т~ar)?'?\gP~r#r\:5+?k=w>h?ϣ C  A^#ADAdA4x -3vT _ B#D.[B "Lp!Æ8"'gÎ?"HѢD7LH"lAH `'Ϟ> *t(ѢF"M˘+B]̨V@B/F q#=0qu*tt@B 1x"ݯ2~D.2$r+BNi62Ql))XHAKR0r⅑$ @HKCߦ`8 r'wt!4cQS$by4’<} ڇ/>z"'06su 2ؠd_WA HGg Cơu !7Ye,eX(Z ։EQ[_`e%C>f(TUC6 C 7EYP iNir2QA?mcD#N&C2 Epr= E>U;P f)*yjaIНyBzTv*[+[MXbEVjG0E_H*)'BTpEWq 90ė!$puI ܖCA4p  pt@DejoAp{4L p WPˁ;p﷌`CE 01 =8G8Ts23>w4@QlqSS]J3M"Oa+'lC}_CE ; 2.N~'@RLC[[JIPBsshe P #D\ '|s+BP6B]r$"g#*h=!]'VcPH"HJP u {Z7K&=A8H@ nx )0' Lj2:u-! F4M "9%77l&7 KiJ|*Ke鲲Xe9 P"|QRLAT.@AjPh$@ (AACAH.`'(x Ό$'>ٜ9 g2FO)OF""Q1Yi M ``|GRS(<r <£B6` @+qGx$'R5uTMASKajXUWKJE"Qs54Xc-tPH`@5H8d&`-D7n97 `$}ir$MS4 gE+lg\לVQ`5bgMWZ҅ V^ӶemP8z#7.'&а[, p].s95B7 j.u!܅|4`^7/yk7]/{7-a@XtQpY8I?0OxS>e@|㜃 a qam 12l:숀2B ˚c젘ph5pT@+[$[b?e*a _I +r%1oC,,+'B_~"ʁ)V1]Câ:/ ZXz sZGq ( f,:D $;v_fJ1M'DA8BK!ѐJ2yߒpsni%Qɒ* Ntb_;\afAKKw\d<ic&lbPЅF<1bPL49 uO4N^ UN3w}sB'mt ']@ uͳЇF QE/jޠcq(IS,3ZVk݌< *cYUQSPT<u>JsPmz#%:%%XWVUd5+Z5Ln+A-Vt,̍w%pKp |24PڸX\%,4{u|JXB=E9-8/Ԯl{bvϸWvߞ 1('C>*$C?ҟ>oc?> c]B! v-<]8{=o$0NOD% M@H p@؜ }1`iM qٕiN F1Q `!j-YQQbN\[D  A HI ĺ([aƮ= &%QIMDR$biűQU<E/}18AiNt@4vhG(s@ 8!ǿ;[0S-<4\gb LYCid\uEYFɔ |T)b*.[Mi؉qIM(LO}TEc@]JQIR5cISQ]N<",\VuWXYIIZ]M | Ax Ȥ"@eD]eKAd?.dT^1^RnXgULh=y\%耞]詎E([^?e}AU%% _B(w_f` `faa"fb*b2כŔN]8 X&caS߃_i]lX:ċAh$ԅ %ْ @@1F؀^=Y Q . YYx l{~^ٰ%QYmpE^. ]$n ʝ ^a?&'!cEb-"E*[$$ꙴ]b&r"]"2} ]A(LJЕ]#rpf2rۻ/~z c:<\h\Z44>x^dc177n t9jT @ b]*V#І>j?PMi*T9YD~D*dEJafp}؅dٹTIJ\aM,Aqƌ^MNYݥu%S"d=gY+faRVxMZVzVҧk}lіX^YJY*+%qWecvk n^"D_2*2l:BlJRlZlԗ@ez:-XA`GDX15iB(OC툦i_ihm~жm[AlTf~Np L XE@tٓIOœG N,1p^ 0`ib,@ΒΈf@,"AlmnC q<ТFA*fvt8ˊx)1ǘSG?>hi5Ȋˆ`f\A\ @hPE~1NTZX*y ɦ-Zc5$ Zc =Nr*Bzj! !jjChjL2Xdf,KUTu^.Wgi*-!%6ag Z L8Z !o"(#mNFfjү!Nu)/ *=($v.Ro0vXǨ[谬qa67kx`0.vi=)v)1#NC\*Tb7IT8&ǟEvv*HI@J6I.$\$"&!P)]ԧ.ry#$v)Uķ\(άzd؍H w\rjAcU_a)YzAQcFaVsSvk6osw)3gMVXX^"ֽpkWC bh²ѣ|Ac$HJJիXj:pC fD|c%\Ӫ]{rw6``A <̤a{wröI35x+°ǐ#KLj0wYG (*m A=1Cg*+Cj364ȸ *+_μhgf340C>~+M'E(IA=_Hþ( F8Am  `dn ,G3%NX{0AGP=#1C(4H X A3 Ǝ6Yq`d\1[_=A; &ThA8y`)d*ٙ5Vlp)tix|矀*蠄jhTPtQC 7JfV,j,t -P 駠hT(*@8z% Jd&ꮼf.zEJ;F+W,0, o`ݦ0DC@ h1 o@$ k[DW$ F`Cw ,$l(,0,3ɎB @`(f@C Afl 2j\'$} @8lRWmXg\w׋jBFB pbl5tjm |]tc&P@1pE}M9pP[ ==PK``TCpEJt`U5C`K4 oBŪ<g=_h i:SP P:Dv͞ Q,F$ ?@z *{#ȀD8 hੌmĀ _L [?JDrʘP/ !5 F#nQpfE M `YIpxHFa X1gêq1lP1{ V#B/{#n@  : +D'A< A "E*JH.np`gI9p`0(疹`V9ZN` 鐇 ?0R@;hcd f4B>S 7(pixTw 2IЂMc4 q TڨY  7bTHGJҒ(MJWҖ0Lg pf!188@p4i(wk1[ϔC):$R]VܡF=xf-^J8l{HeghS:.4(u]~l.QCs +Y W=db`#5-YXVhPٕ@g($n,,< @rՃ0*G: 7`!X NdC_CjZ$uh3?b B:G@^D@9ZfL8m`e\$0lB@ lx]|ޥ\. Yp@,b"R\d@D0HVm`pLn25tU+s]7dtxe$Qs%qղS^JɁmZ"( lX2 [#RKtϹ[,'0P0x R@/k;}JԨNWVհgMZ1p.($5Q8Y&jQimdMUJ%0!Wa3r\89cI:n :s @a A%'pNH^*Y˕&7>G-t/Vf@BU$@ ܽo~_p`o xF`2@t @%BV4HB>*k|,_Th`%2+̸\1[tuvnQ*8~;k2*z*E 0bAY]idg^σTJ{Hh:$&%v,rdDWU?@dW]"e*u-BI]JYu=6CB4PґVi?\@v)j(hb7G`2`v/`Cw"UV%4vaa7ydy8p*6 PqPJUdwkbBrDzi $FIyzBMU&R/CpLzȇZ(-:@5&JSTEW&lM* r7 Qh}gh4i@11HrX5-gJ`$_}CUOOLT9YyYh9%Xz/XPUg6U]U Yq3X#8ꨖeXWXYWp<YZUC(r֗IFtǕ\=9su ADk g7v67pܵ֔R``S`aFE9ab#I(õ{R\EzH\dN6KwZHfiaA43v~:)h@hF Wh 5Q(i֝^ک:Zz0)‹i*fշW_;k>4ʟ域挷mm%ʼnq@J<J$nòg]'NA*>6  [:^țʻۼы6C$r,P:XشFU8ޖI#H`WS&B+YpNj8pFC Ek={*+pz*c;5eb4z6VIKV>EkI8C31D]k' e.B95`NJ`aFxTy% xHT^V. S z(%Rr̒S~,]m SrViTWnD)0:& gy@PtكUX Rxz PՏrqZf%Z&r+7[u6( s?(n)0PSآȵ B6,AV^^ъv2Tn&@x~k8wl(v  8"쳶Mt/`αaÈb*bZPR.c4Mi#0|5s(M|y.knCd&қR^ff[%}p6PvY8xF)G`$c:ᛳ\ J0αpf&&d~PR?T_Ve}*nR{(Ú?UAJzz&n&RƏˢˊ9t('9âkR9͝­^W[v+[Q^͕]i*=Hjy7q  ʢϷp@/)k)cċ?_ȟʯZSְO$XA .dC%NX"C#@$ƖF䖋)UdK1el .tDA%Zt8hAK!@liUY*0 N@7[q-o0]/p#K8 U%O,aHBu 8l\iAbReφI/[BÏ!Ti'^qɕ/gsѥO^uٵowŏ'_yկ_o Ajt G8p@CA,Pٓ%-@ 3 &@/@"$(0 S t@*L! hsqG&("&ح` pp'&" % n I%AE0@#HP'-Hi!24 :P/8HA4x4:D4A"13 @T$~ :(+(Ot ^% &诇8"#0VbWbphD=t.+ ("z0$ET̀\w#,N  O'B N!lhQ`'*aPXK] T s=2@^/*A Yf5ӆ$;&` #q iBOnP"3Ak/ PЩ`a$TxN<+">n`j C vl+qpȟ+%Έr3|s;sC}tK7tSW}u[wuc}vkvs}w{w~x7xW~ywy裗~z꫷z~{ uB 8D4?&*ϖh :[@CSRi'HؾJ$oā1p 6 6A/ T(Ah@w8 g4 Z K؁ v piլ`JW;A>z,gxDC|pf9Z *xG>i58=9sBI }\8/|aI u#H gxT;iO}SUC%jQzT e8?FUבz`IK_o q0AZ(LUk}NV UY J(+@$l%laVbR 4.v'lgOs1fQXD< df2XVsLf Ȳ, V-@FWӥnu{]fWnзD:҅wNs(~b yۦJadCp"AwF N6ub`8 PA$ "旊%5u@"0B@9xLR8MC)* 8#ȅԵ$ꤑ)n$KHpPl@@ ׬a"ykV͌[v!1N.IA kB2PRE3.M@fj$(GYr()&[ iJ e:łL[&4 zhg2Ab`=vp98fv (36hZj q/&P͍K 4Fnx[w}o|[wo\'x ~p'\ gxpG\x-ElH>HxqWڎE2VQm~J6%e;آA=C^ ,? h.tG]{upԽuLr$a~v]kg{vvx$~wߙT~е =w@roЪm|ke2TA(\O ]: d*\HPs2 LAo_:aA9S":Ֆ?{N:t$0Hkٝd{>6[Dg}c~  ?fB 3 ?,@<@L@\@<2y/0+`%!> @*$/1 ܉$4(=B . ,H 8eA D!ë&;05JqR9+@7vB9 B2L,+I2+<&9*z!! @x2C Y /;-R3ȁ9`"' (4s,dCyq4@ (;-6x#5‒J0#Ty3Q<z1Fd|FhFiFjFkFp"CFptq!" *,opG=a8?J&-z4Q!$GyGcąӥ3$M*y+1'U&.zӒȁH?a8_!(ŻE,>h8IIII  !l #@D/)@f (؁F +/`T0ЯsTH$:ǐ5KxJа#! ,G"!"AA $ȨF *Hx3)}4+&#؜0@2(Ռ(HX|ԫ+DxΘB=-2=Ӥ1 Lh mB8/x< JRW3F9 8*0`(H0TɊ@5 $Խ1{NDxK4 7Ϯ҄& 0Ё\uH(`xZ5'L:L1&u'#GjϘgxL8]ˁ92@-]3)+q?u )Pz5S:+k[PЉ7=I)|v:$m-,J'-Թ ()y?@ȀCTJTKTLTM ɀM(8!2+<20!V XAAUBP"vb+ ՛%4Ř64Ų04k VC-$)zBˊH;Jl}BvjoW'&8z%sm lDC5HRj UDSܖN W|N(C)0 Ժ96`C-Y-V|EFbƊYPF!pFYYY ڞdJԑY=F@݌"L-WUKWE<kEFIMc4gjZdH,0ۥ"u5kuP -E&4SJ>b[`[@\  R^;ɑjc?d{\M ]-]=]M]E*0.ƻݑ*0t'i˸%Џ *ҷl7(( ͣmX-GBjXoH5pa:^k:aȸ"ݰ"-LbH,P0ЁzU)JĘ $ͧS5 }MQ0E1/m<铕 (S_%ᗠYJb".b#>b$N 譺3]k9L%ή* 2p ^j[ uG-%ԉt\4=⯪0X-?~c/bb`G+/GR>#< C_ӈx,P㼂R mOV&Z1<[ݱE.FP\`&$MMd_ [Q._;.`ӉuFk^.·$OO>4L85suJEL.Ӛ] ћ Ff`N\Jc-rfhu8АQOx؁ړՂ^΁; Ncs ˥) ͽcܹh"0>յ>=+RMT`TG=Vj;9kk. Y @2)EJ4cp/Jk=|.PǢ +@&ё&͒7̭6/ؕ:YN9vjjj+YOukcOve_vf7b0R8ՉmvL!3&84<[EA ,\n?NּW&"Hv/@&V8h zCH݃tgpb?ݠc鐂)WEY<o#V >0xoyyyJ$k쾙?;YtS:$=,L)GrlGAB);bvwb_i1$N3 ׎mzixt۽n61rf?#Uun{٘r! >5S-&N/gC-InJ|ۚ98XO@:LOјzj'SIԯIڷ}}}P*d9H ,@yH6Ӥ(?%xz$s9!¦ c @<{?i8;0p"#8p`" "4 CHbF Vl%̘2gҬi&Μ:w'РB-j(ҤJ2m)R{P!֬Zr)p`!D԰rDMlЀ"B @ȉF2n1Ȓ'Sl2̚B. '.m4B$H#eMQ֏=еb#$xQA7!q)6Sn:ڷs=P5wabJFėhUp *0BR(wZx!j!ziP'CWGpMŇ-"18#5x#9#=#A 9$Ey$I*$M:ZABG@%]ze?CI&mwY@Jp'}y$0%؟*(~PD tZz)&) Dj:*z***:+z++EV7,]A{J;-QPQ³ cRtHd`C~8!1 7D{/b- >@F @Ɓ0  dD^/k|1itD H\ VXn<35;VRC2\@<PԐ*F#HA}&U[}uP@i]c =0 8~8+8;8sHD 1pX-j}W),-۬䩫 /l{cZxDq wKׅx Jvc4.: x}Alϩ%A"!CA$EaG$>/=yECc/Yfծ[7wEҗh!AT' >Iħ?5܋MfSF+1o8Y 5P6,Å =p|CGw♀BA)b VbƸ""$k+&BQiV1f<#Ө5n|#Pid0`+p# - vn`?r@bp"lpAbw $*S0h,W @f5{7Vb>U2!^ t 0ەh c% Jsv)u. @ ɯ6PӚ\`%5PaǕtP5tX:٩Ѕ7P)噭!| CH~PȠiap0R })LT(7Ê)Nsӝ>)P*ԡZLɤ ``_AOg1VmhЁ/9 r"2C )$hG%Hl d+^j*X/q0WgyJ]k]W@%( ʺ!aq | pdO*`c tn4$bK|%(Bf#!! wWB@த,gAl2N-x" AҲ%0B^rhЮ)-H\ZD1wJ l`(Vq%%0zlBgA hYZ2f"ȓ`0DJpX-cBDk' 莣>R'y 4r1f>3ӬM2zr9FZRt K_Bdsk> aX 8A8**  "p%-K>YR@ =+[=dDpE,$%i.t h]P%cikHBRc[45i`%;(HiĀ-#A.wiv{ vZgM`wJ @4 w ! n:P\!+tyLk`a {XKQ6~@ 19}xϻ%v ްgB4F!laE0V G($&: ʼn ?XA!meMw*WAݥ;Jgz|S .:XB D `ϹH% #CωN \M nPx<r8p w~+vr/%* Y5)nDe+ Q/ueفl]$ a-FڰT=N{ RG $~ۧ )^]$ GtLTV@ | Ơ ֠ pVKm@ 6e &! `WpPOK8_`)!Apvſ$9LoIHLA CaWߘ (ݹx!l!"IH "pX  K"v" #n؈ ٘ڰMܽM Iq@'֢Wp֡-/"00#1c (tXVd6T,#VҌyV@V O"An=HLIcjW-eiYEnTa =FH"?SHWZE[E\̅y1P`8PD@h ?j $Y rWML&K @#Jԇ# QK-QX"!XʊHHS~%[[%\ƥ\%J5AFn4~1ѥ`n=(lH"-R#D$U%e&(q)`v&vC @`2RY̒ݒ/aac12=gfuGT"=U5mSy889$n>geDQhdo>!?@A1!t'e"^REaUGTČe"f*J '(&.H HR-U ih!?2eVuUEcN svYUd[Ջ9K@e^}D,CI$\:AE0L@ dq& 4t0+L 1p)tn@4ٌ0 t *0A)ЀOܠDpX2*0PD~^XFJ،::!BzꪬZ W^g뮼뉲kTE&6b:KTD*fmhk覛j&.I1 tAQ*`,r "EzHv`v" sF[(g0=3a:{Ѓրb~U<% vQ//J; ][’T[C {E+]F6b4lx1)hlDx@7HML+d1}cxȆ&j٨\!˘=@R\c X+Ɠ':2:UQ~yf'`՜k8Ȓ-#+Ɇd$/FVt,c9ÌIEcHDh8& tcg!9uFCl[OQ(`;Vc&[nQɮa<F4mgϐ3Qt{31 g\}3DF3mpJ1bh~8d"D4c΂JÄPX'E ̀@ Zh @ I# gx:pfvMY#  c( a( Z ?F#wX0х_3vs7a؈e Ch[.[ȅ|8Pσqgh P`r'-phpupaN䘈_X"BExďCAHɂˢ z.0 @ p 0 Ñ0 ) Ѐ @ MG~ْ.i`) */  `".yEE0@`7 PJ;g:?! ?|BѩZJDZ&JH;ڢ @X`BK +ʢ \  VjD  !z"Zڜڭjۙ ! SѮJ#j ZZJj޺$z+Z k[NjJ"HHΤIOP`@݄$&˭ pZCVa8<@;ڰ8ʯjj7L;NN˰?1H % [ۭ)2R=49:.:zKw[A~z-}+&f,h ;,Aʵ3;HR  й&&p }ۺ P &0 . jCTD{]Qa+ `p1` ๖0 [ ǻk'Y˺@; 3 (Dq.+* k [Q +k 0 ˾,  [ pvQG& 0ت"p>>iֽIj'7 B P`Ƞ~x>E@.=cTڦ-ڸiIȫ=+.0 0s703n 5̕33A Hsќ& 1 $`qQ9i6m4 =0 ǃ3 b/W a `& = &Ѐ%ԀĐcy(-(@2`29 7@a -(4oK#`=0> R09p )I a普KY\0 O9ԢV38P>('}*PC  @  ix> 0Ҡ.E A8 08`?E Pik s îP`Z1P0(;^P=^;@nD)^=m> Ӡ{iР"$8 >6pMGI=ɞ0 nR&@ hN P0Xq`>9~*?JnGLڼNPHR?\XY*V2#}hjlnpbxz|~?3ez?,d'q>LQ{)#ZPJ&2@7` o>p"p\o8(B"I=EP9c0s艞"4Z^!7[`d1# &4@1@vsO?`xaدo#\'Ȝ1Tȡ"G=0$ 7 hD> )UdK1eΤYM9uO,IZؠ] I`1AWaŎ%[Yiծe[qΥ[]m7 K> FD԰8$PRr֋/X?%]iԩUf+/Q&8B1^aj&`]qɕ/gܹ׽$_Km]@1G3P$$AyQx'R?맼b `%v0 $A(Lz? 3pC;L ЫA`  a4:F3c ltI(rͮ J,r(C.øsL2ЭTsM6tS-/|sN:DLsO>/N?tPPDUtQeQH3 0F@ ::خ 2TX#5TTtE%. :a( IV9C@+HZ:9 3M! KxHu[nCHbE CB!)EN"^;AF]wD q4 ^[#QL%QKy)OCqt;8 r xHRveyfeQQ> Cd- 1IE!҂=O@F #ׄEL 9$M"12 x 7|-q}Q$E6PD"\I>))n1wX h`"Pp=1WX•/Fot!8MyJťN* `|P 0ѿ$' [i'tC q=HT@޶>B l@HA  T.kIID>:+h萀`JDZ60[pg , DjD@lUkE._`6UKA>3gJX2ttÒpP%ȹ#͊+(/!H>͜CkʋH%q8䬸! 0$PȂ /:1Tq;鼑ّ!O#>IgUGҰ0PPDAՏf ה}MuQcͲM% R*=PxAN3P@#3Ӓ껾{;Vh;+p t?N!H-(TT6`V (Vߠ@@(wWi=*`! 38XpUU%GC:bD@ICQDFLG јJ eO,+ţT[|%.e IIpXJD@(V0V|ЂE$ M@q|ȈȊȧHHIeJTl֯ɛlTԱHB,   u$[= `R4pU0۷գm<}=PM$9!I-,9D%aMTN, OȊNLhJtU-x\TӵP89`Ь]!Q9aPQ_m^(jR_]}_c_ _Ւ__6_-__. `pROG% ) ':xA*R, --]3?g4ES^ qQӜ;U:;ոKS# ?59@]9hNCa9F:I}`x $$+@,P`rJLT3T 7%U;.^Hớ%Y%KPVfDp?i?3V\V;:o?S  Hb-8W=NumWWy=z[|Ex5},F!5X}Є}c\v:+~.R55&naFԒ<8K9bBλ#4bC x,~b"xcT"T=--cST GiՒ!IZ c#n2kVbdc>cjdl=dhh4$p)x .fKOfWkGr5WtUWvuWTW/{cQ^Gdm\?p#QjY% %=įXZgYi&ْr5=HX[rns.t٦ewÚy>xcLƒ#?rvȘ$hH@h5f&AhfBʱMuˮⓋ۹ڱY0F瓞ۺ}JȕfH\D6?$ps@O5jDj\uꈀjj~ֵnNd؁ ^}NIaoHejkr\^^$h^[?m\?p. M|΋~%Fxw>x6x7ofxxʖxPո Clm@fRW\6_ FGxl~So"^na=}>MNnA nDu)NNPmbI⼃oLTNab cc3Fd5sy̎aep:vpcf>?VAFHt)Z+  Oe ( 73L6NƾeW9q,| XZm{kR`>a.搔rHh pgx~u6Zgn!y3oٗ C8Y9w󟝓z~ h#}5h׮ZƵEf<  <pzvt >"Ajh` D!CbA^ʈ "ΙeNpG3m:thSDt sN2Ĭc ][j,ڴjײmc|0d8]I*dd+*"QJ9%UZyc;%]zN"&ey&izm&buy'yr&z'z(e ȨhaCeI1PJJ)d[)5pbjT ̝&5(`z+joؐF#WyD;L ;pn?,K ?$ZagaWp-zxyd Q:T@NCJ  LH=ßU/p!?\A8‰|3z2z5HBC@'CDI QLDYHDI܀@pMqqtVic5^-6tvG m@ d7D& ;pEQa! zEQnX *3Usέ:b:@PD eC(0SNiԂYڄ 4A8~:4T;j<;}sW}h}nQ"`C/v v)0{K? 0E7[ p3չu 3$FAFV0#`4BP•| YH$Bn#E2R 7dݦF@`^r)P U"xP+ X8Dq@ C0A)!o:ޓ+ ł#󸙝ͧ:YMk~6 >G8Yθ3?,k04F"G9̹t„!;)U!H | URЧp`.!YN@슎le>OhJPGb&6b̵ 3&6q-TK7˩uL|g6ϙt³; sOx@' -(A*P& 5(@ F:hGF iIQz҆+@?`/K S2Ƥ:N}*TLCjБu9ujP*էNug[$yJZǖ`!>mdRDpCY?U}MDԖZU_oӢ6Ulc*X̔15Mc3 ՞VձldRVL*jZv) `EOP "GP ޶`:n6"`SXsu,y:faXrj`iM- Ċ(iw+_81A8rtxK`!9Y2Wp p 4b-#pF:@ (e(Px (WP@PX:т{ J1\K F&rl';23d!kMf3KgٲZŕAAX-܀X ;&O\b  90p@;G W[# NYuũIYx$(H9+t!(F—x(6ӽ(g& F#;$ S)  +RK ]GDq찺!!P|LDnU)&?2tZ-%pM1crt#9Ѓ^+v _3}b:ԗtEVӯuM[zU ";3.Ifoz>mv;~;/?<3wi&甿_xTrs{ýӾ{> &B& PaGaf:f[_S %H|d?D lԗŀ-B  &. ]_E }ݲ_E_pf[!QF@ l h }  ` qa D&|٠&ᕬ 6!2 F!=!^L!nˆ~uf0hY (|tsh"‹8!zD$0P@'_$|F b!_(!a[H"QbZ$!!GGtBpb """)"hA'xtB$b'bZ!DGYpboxb"!$Y̡&jDN5V @B-1ڢ'!# B('!0fh#t2@-($$$DB' Bc"'$;&"!8Ƅ=Bb$@"c>#C£[0jD'tDtF!F4Zڣ@FB')e$$AdZF"8cJa:#( @'!%>F(QR$cDd.$.f`,AF3b$&F#R'h3dT5%dd 4!@@v"Gdte!bf`!@$HB'"%Jb"1"2"# &$'@'@"i@fdj(h"_& l*!'nj%yUenGh]Fd$%hHdE&%."gBb'm&xsoJvfkfrjDpL|!0yAB&xHJ:cc2^Fd%4b 2<"D@1$nR4,VeV?fn>b(xE"g 6b[|C#=(ʨaH(o~@j"P@Ԩ0i&LL׊J"cv(exBA'BF"Dޡ$p&LRzfv$$4bJjD"@Rdz"0R"w&##"R2^J(HF`2Sj*Bg!4bb~bj!#4@@&f|&eztҤ'l&$bu"rGF!B!T@mjvj%HKu@2bBaޡ"heZh2$h&Mjzĭ"$@l^$aZk$xdj%n:(rfv'`!HB!DD &j[&@W7U.xAib8j"Fy}36e>梸*&e MBIBFB$P!B.!,D*mxb+uѶe.bBڣd(hh$,ѲE$bήb0R(DB("&cF"AZ@*e'|elf!\%ծ00&.=>2F|BFjB:f'\cLǎ<_B4@ЬPl!~I*bF^jDe.)n종YnDc@bZP.5>(.NVJa/v/<.n/8Vjo?4AsAkDBsBC#HD s?s`;cPʋtPAc=P#HP>Q @i.DR3@ޛOO4`dPQ]U.7 ;\tD[<Q+}뉓U_Vs5xuqX'Y7 qu1~&X-z= XM>YF]~I  c;a3n)L*/(:b $0AiC @H+ʠ ꬷ 93Hh=+j[#8am.;ˮ¦MtpojT.cEokf,r\&LXAz؁ q8/I\9 N/ Rpf~|RbL! /Cbvt" 4GD#'/T( H7:# !H @wPAP8AA\5!hN #<-=BzZ`p5t`>vB|zlGE0ʥg %%  q ! [P }0]`#|rŐ DZĮF-THFgM .,MyJ3$@ 4B%l)lGg}ޕEl1 ZFR+ 4IL&R7Β* ?.ZgV P겐!,IY.җr%19ҾdtF$DVQ~_ T2_C7 @ ¾&KlC"7PQ/i@6:==9БNj9ёO:yĞ@ "(Xt5A'R),G@'P(!H [XÖbsB$'] 1ڲ NP`GZz֗96iY}yzI&º!K&HBNpPb;GE*.Ew/lKCXU"gEK *-t+lR:-dAuڂ`ԧ>a^ƈb|wDо4nQp6 `?…Y)`p*'aXy\Ƞ 9)V1+ x!f9ֱ:c|$`$A 8L7 A2fIŖSUx\,f0gsɼ-m37˙tγǬ;|BςshC׹рF iKWӌ3MiNӡMjIէVWiVxri}1?I8 V Z7u}  \b?ڝkqm}msLns{Vu;3nVػ##o-w b7Q6Pq_9q!I^r)WYr1<%uls3|?:}>Iwoѕo7 ezt_SǺuN_v^ ZPǥri.M{&!gv@CM^8># k r$$3IP!iI2^P&! P-,п\T6Cws]ɾ}/׌yíQ"Pb*y_!XMv?\?~ {v~f_rXOKpbP#P'+0 3P7;?GKOSPW[_cPgkosP]ԠBlF* v0Cuv 0A & RD ۨ%HN@|ȃ0juDeQ _*n D-bhzI 性v'+/{ hR H8 *<. N`@d w{QQQlh@h +lh P)\%` +L#b7DcHaXDl ]=Qo `8h F`P``ޱ#t4#vPQt* Ҥ!O N @&A! N`HdI`vgR %N1 '`VtD  9h@Z$e# R*5,!,*גR-Eo-y/./0w- ~&hp2i qb@P1a*AaL"6: - A*`4SS V"3 @39`> $A"P l&z\#<:A " :B83:"6 !"<;!<"> < B>7s/whz2/s23<#0;:a=8B*6{ B 8` A @ !:D7{ @B@!*@G@GM4C JS@s:5#@@:Ec8)4i7) @4<b'/E#D3DBC MFm8B!&z N3O:NHA3< M36t=5 `?yT*S b <"bB)#0sUl4`4 v48lM z9Dbjt 8S X!7M%U Yݫ[}XH $J>< Va7`R4];SOZ1X9b< B+@"u&\v: ZVm>S8<)l \V]:A V " V@ a" ZqCC$\CDmm<#[T LN!?G;=D\Af!7vNF4n;e "ZO3>>gw& VYwsnB1>$D0ijk `rj%{jH79B 4YSJ7w(bXU 4mV[CU <~W 0B^O!k_yWlڀ$7Ar;$<~F7Db#U/Ba Z3$ 8/U C;?ZV(O>GaXdpf;S `;W oC1Xhr8@wEZZkI^zOGDjw,|O64owZ|Q: O(3@D!BFs87ߋMCO5tsT"IlOF%(`K;9<3tb"a&“aN">piZ "a-ovSIz %Ho&8z@C:T/-PuEW y5. c?0 |x /jX;?NB y0.{-Zm=7::Z.B2QzFͤB Gz t .`&X z.y ~ fZr! r.\A ~Z xa‰&rƐ Zjzƚ04]Z/oEx(Z ` B[ tA! ;XZ XaIjz [X ZM 5:"sk:saTb#. tAgA z!v|c B}z / Bx{ |[ .[ [^-b/}x#X!qz : bᮝzU(:.hzZA 4ۺiB / Pzٻ;}`ڮ$ (@ ƭ:Z[{ڪs T[*zw X D`XX12cqHq ͜;o9ѤK>:լ[~ ;lѠ3's8l"U*Mm!**.&,Q2 `PKb!D2^e~usvfړrmo*do\dVz|VtH{0ka b!_бV0|$%X2H#IF8!Ua'D _()#~ PB6bJ1TV z| E9eWf e!_pЁ 4)!chb" y,Del^inirm %%1g8 22˕@tP L0M*'y敖& H2lgl"Yn_hE~!C{@Cw؀Fd\A%Êذ  6 g /\.`DI0(ɓq@SudqtȻ B(J0K41W4J+r3< EJwC`(!# @% F4!VVkm wrMwݞ%P oq&A0ز2/83}(t[1jB ouV* ,xL-&h"mmftD3B| 8Ax`FR7z/lKI<柿0? V}«(6!L)+A /UJC`XAe;`7d4 =Ay̳B  ?8k Є-|@`Dmaݞ(Jq * 2Jf`7q S).3XFW`N Wȹn! =ÐAcU˨pL-MJ@Ҿ.Á;xz`P5@0%*Kˠa|@+!Cafph@1)PD@=a БIFJ+H ؃4iM̀Gb+Y%ZdV*"#SfO tg89rN3& C(pN4d |0@k0e"K 4č,qq"OҔ&$W:\4ő;2HbM Ԡu P@ U$J]S:RٴTUbժ2@ ְud-YAYulm[ ׸utmk`d u_ ֬QI*Z]lJo9vlTv0ea[XΊvMhK;7fFmkvY m<+vi{)rP`' " 7 b) Af@PZPLFЙF dP 23AAnEXMleaw4 XV8. :@% _Xt7cr0M7Cb`BOa:p*42 @/Uw8~ 6 l] D6HcMQ/g90nMla8pfAFi  GZU,`ъ 3N˙WkCu[`1P%,0 n``{46 h&#!3 Mn'@йr;8ic nL`$A6̝R0,ߩ0 dȌ" 6W\7h肃)nqk wg>8@ P B3v!!"7Wc @ľ B` F ufK*׿ؙfF02.df ڠhA 95 32®A\XH}0( 'xF` k@ؐ4x@dƠ=`zԓ); C \Â|w[`Aڃ`f& }@L^M0Z`"`w `nB &p?Pgmv`2{0^oeIp/ab&@,$f_@:)P{,P=<E&F 0p9@EIP$6|ma^ |%a(|Fpv}AA@`PPG@<}wyA 00l%kp+[3D`v8J\@QdQ!4x4`r8L fd6~>0ph?pa/]Sh0wWDvwJ9n#^!'0`Kjm'f^^= qƘniaEF!dPdAs!Dw0k7n`kw^@2pu7)(%vV*6#Iiv%) Z"/u3i7f,D.=*U?)C)Z6]u@MÓD zd;~e\]R@`&K @5ە!wq'(2xQ_ؔ e^Zaq^5_{}_cf)q b">b)2&[kfp]_-`緕`ZT4SpQF`9wv4` l9a\e-P5mmKk;<fWJ90~q >? `~zg~hykh9CjEt7hUw jkFvl&lVx!a{2+ڛ1*-mm'n0di('isBEnf @QPq]1ov2&@ XwHj= $:xB9!7YpvG eqp pah:qW+sJ6sQ{*qG)E:tKסNuRGuVǥI#  PYLJ32*)Ot{: [ wY/@ Ew wؙ|wG͕~Udt~yIYE$7yy7zEPzznJ|l{io?`rAzӧ)tʮǧ)ޚط{~'XZ!D0dW"-0z)ѕ= =@m;?б'aQwN<@)0`ׇͅ<ݚnP4V+02!$P9k'+؂ΦM<ahۅ@`(0^P<p[M)wKcڳq8u6(mi2|{+YKt㈐XH1lۖ> ;AR[FX1d8f8JkWƻ~RD ㇋H8hÄ'cA`7EqeUyxlKlI0 :U(91 7Ai?ّp3_#|L' ]'-])5 "l;&?,8: ĉU˛E5:+Gba60_jɖ]ו]%eIMgI_ġ9aeIz)īƙ5†Ľuěȉ|)dFFJzfTfeXeeh)fh)iiiǨ1 g *6zj * l8xz)il)k: l䙱, t'q2xPAFwnoo* &7>x*x}*qJʨLIB{sP/@%wr~z)tƥSWuWשZ14-ӦAwP(1@n˝w1ߚvwwԊ:zxzgF0z{կ[|WkV/@ϼ֖] {'ٷ}07X۲/5hUiy=mmpPB܀{W`b 1C8!P,nltv{᷀m4d`zk)7cJȄm)+txÇ-D]Z\FIוK{60*ЊkaxxػM kۿ߾m2hۏJx] ;{"~)[0~؍{y7BU{Aβ5j䉸|!Qn4,U>@nRDaV[.҆ac\iVqm)Jt3^͵Wu]owYxQʈ`6r|JƯ9asbu|)S\\u5ȇ~)onZZ.qcqF>Swd*ιйe Nd8`qgI扞xgw&נcfgsVԯ̴ ܟ%i˭a¬MfX ͚̓#P^XYp=N[{m`ڭaiFMJ8`4Pq X^ # 0j3o= uZ)zjg& q=2_ѱqQp8R_T)(=+.u!A)]~p/bx7yŽFx`RbS˴;Q 7 mTiՔ֭qdΖ{gv0]R{}V}4oUC ) 0][?変7vݕb*1p9Oo͵Ma19kAB D ;RÅEn BIɱ1 QKJ:D 1@% cH#KEF@L@1@#$x䰣 U0Ȁ1Gt&}iZmݾW\tS[W^}U[QAf9pBc-0$^,$$d`ұ$У&@7(L0z8,Vk1B`A:8OD1E W1Fqo1GwL'G!c,2I%dI'F(J+IJ"*1K/$.RL3eL5dM7r.ߤN;DHO?1#%UVkBL(h@8ZIRJ!ȀTHdb%5bA2P¸ U~"bu;jR] Jb/gVOakNUD4((a!L^^R;b00`v@vќפa9B@![~HXr#A6#(hc@bDQVgl ]m \}8k2͂r`"ܰOl $j`() v6̚ U {l !/ ࡴ( b#2'{: P!~+r"0|r1МLG]li.- C귰;zĔLע2k^070B .xz;25|:hc ug3e0GD ay,!.$O@aEHç (p`h.495$9_p 6 yeAՒ?&6щlISP!!! +&CBpRu=/]@' 8H^ E\ZMP\ yHD&RddocQHb%.9C|2D(eRL*WVq[F%9Kꊋw(u.T0u& ! Yp"؁ϐϘ5[8ZYI@N2'.,zٞ3AO~C$4| 4A Y!\(C 吇^ Xe- \>%{E|" t/]:S.5iNӵ\T^]w" @PM6թ[)dTVJ7jV&`IUʧ[t)gLzkBl'< qEQE220)) 'rpZUI3Z-B8_p ,l[*\j&ua%[YB-qH8O zEih ^ܶ5VbnAj5G! A'LB4 7$ ݌ rFd8%.(Mp(,b˻⅐} #+蕲(f.O\6٬ 9zPMppj0Ԕ#I2 p Ί\"L5ȀpA&H_={$ & Ҭi.qtpB6Y-A]ЍN.Kк..lcdsz uNiZ^񎗼Lx=@hV5[[$-Sx2TV7rE*Ld" 8 `xef-@؋kALU,@5AdlcPizj Kr`b v HhB.HZ: x:MR$k$:$:L '~Oҋ;c+%cUĎM:E3qŎ0EZ,ETd 5*@WP bBJ %/ H=XF/) '彏 J؁8v:>'p[j>qBPX6жP<8 P`PP^P$Lĩ<%Fݚ!tH*EUFMpKʹTTAX5 ԡ*=eE[T@K0դPU+51ATIUT,^֬a5V փE&Ğ1,>uR.`bhE :MnV;I hO1#W7t 6)<4=>BvBDlҕFڋ5+uJDGd *5XKDqArYVh|QVM+VjV\ oU*Ia엓0*9hGKp Q.9׼F/mD K;310G'ݘtT1qǶ(3H xyǴ] -xG| GGǩ4=}TlȕÀR'&k\,+ׁ"Xx3$03457 7hܖ˵Iٳ?;9@+A5] IɠԂ|8CJ⍋JKYJiN͑Š˩ʿԭ\˴ܵOEWdKY,񚺬C:M_l(86(B{큍לBLPLƬݮL7" x̂b`|S)(`4Md շҬOԄ ,ˊ YEbbE23dl@pH/(ҕӕ`] :,D)R:@4d$Cϳ# l:($(9\7^v`;RzS;;SKո*<#qE ?j1X]哛=ڍ<EQ@׋ܘRQ@2 ҽs ]6Rz$kR}0 *+m!ҵf" QyR SB2А5X+@-BTVYj]W劶R Y+)$~C5Dd=PƒV~6R=M*y:*E[鲬ߟ:v^^eꨶA>bHy Rh 'i2kk0d$C + DA `P@|X8Cpn ? XCDCMX܃CĖ0ǖTY/h5бvTY~SQF2 (e(H=ܪFZAn+pq\9ǷǴeGU`0F0f6 K#Ai1Kɕ +9%qӪL-ɛ m6 (}33d d-]H H5])o6hHو_v﾿R~MhlfkJpjfwW^/`y5xi Aǒny^'&Ggy9ЫZCK1W!Q4XZ}l Î]LL؎Z덭؅ʶX8!v{`KZ+𶈂%;0 Pfသou10nn%l4&?]nnm ^ǵݰ0 _\!ܨ1 7GWgwׇؗ٧ڷPޓ0Ǎ?HMp#2e{KH0{9q#/~$Iބp ޭpwp䕋^-I 4%wJaJHY~c8*0@Płqp O~Kikn6ƦD7'w+s,_76F!.jM+d䈁J`9d('~c & +79NtNHu@dTcV:W筶$ E߁Ind]佸d3%䂶A{VQ幐#8 0؁#l 9P+DZww{fm+zpwo|R}w;gzww:g0(1hZ $T9B GjX_ŏJ~C' z},ݕHC-ɦ-PīwlX׊lWm₰{Ůxy۸%ۺ' c/ 阚G?f8Z >17_L-'C/+1rD&[K+Ol I?  ӱ^+ 47 ͂ΉLR 32޻ !*wp` 7^G:)ۂ_s4ލ4K^~dG ̌E%b^+x&7CPZ!6/ X{ut6hfY!6*oclyq+7L~s~2La{cs(6ط%7L,_M MM8*Dru OH(HB>dEmX%2/dPY,0cΛc4uNtNHu@j:@;~wm`]pf3h-t vx]=}7%ķu I<;]znyЕgE}8 7ޡn:Ӆo={>̂qi\T A =2NP3G=6;dvgO2#?~@0w/m>/=>ԋ& |<+`g< | t>wlUVx 1MNuo֦=z|SCT9o; ixLcS! ](>8]y@7ՐhNT!Fĸ,yW5+p!$a 8r2B1z膞cB.g Dq@hLJ,?V2nDHQ^$@8EΏFq-Leɝ+% Yy:VrO# HYMbw5@R+w&&Gؠ{ ͯ~LN;'L [ΰ7{ GL(NW0gL8αw@L"HN&;PL*[Xβ.{`L2hN6pL:xγ>πMBЈNF;ѐ'MJ[Ҙδ7N{ӠGMRԨNWVհ6zq ')C5Cn y#vB2[5О lQ;!͎]$'8~My*v }Gya/Mzη~NO;'N[ϸ7{ GN(OW0gN8Ϲw@Лt @ؒ2C !< "r20`#CE` +|R; @0 6@!];C";:^8@?Xlp4:ϽwOO;ЏO[Ͼ{OOOϿ8Xx ؀H1=oX NR -N %#H + 9ЁF 8:B8Dmp  V˰1/ l( Ut]8J>I`Y(YlX&Tư @Tɠ S V/3MaPV<0 u3 P`` `bІxa ` /0bpyІHp(c`0o)Ut8hȆf M& % uS8FI'0^4w`{yccM ;ɘ` b P E.uUAt@k0xf@P`hFPj0&VЄQa ""0faz1j0FYhEfpA)CJA57 "R;!H1-18pX12@u;7;@G1&$ oQtG1tfMaHtL1g4>P u(#p50@ItMzC/UZ)W)@3J9`-d8`#&$`Њ=PiWJx`'v`z"Pua7vky4y1(pHSWu&1)0CNVuZu^32JəIXQ4yuYuIdW@y=P/P A ;P'C&DdV@dz`;!7?@X7wu7^p!1# 2J`vwF3F9+*gv17@NjvnwrGwC4=Iyi%4XvmwySdW\!Zp8]tjB"P~Z6`8P^+!M`4H0B`!a韂 jxJEs'1,/w|W2jwxWxxBsIi\ 4*yG{?C7(7@ךBcQ'pUw =jzTG@<y7^BA;ڣyyZ4;Q0(x'PN'ygyh$jz\4y:. : 80\@4Љ: 4d )0I@ >IJПziyXz;4RYΙty<7z)wz [k?KPx6 &)4qKz7oj.1;Y&{ʔ,&Vk"ze3=/!9&30`o 205`w0p'p.1\MF32P EMۻ35UcS![Ր[cNm2LԄ8 ֎ߪ93FW>+,FMmnq3w ؆vm3]`'h$p4P*3xh5ᗑіgw`\4ڏQ@%!LXw4I뛭70tS'r< HuVFwIJĔ'5p9 ,^{XQpA3F@oZ` yª/@=3 ym0ɍɺg=0U0a $pR`!L'6sv *=.s}q (+Uۊ3I!]x> ;`3 _0=qDI@>#~hmDn|}3fI `C@ ћk*I^GWR3g%q>y@љF7`uw ͗a7>m` 9aU*7Y ~4V# =PPaz] a^+A#3k~tj;sbF P`o.\FP>%zy.,YYFiES/p_Pl`[#%L.߶3-D:t!D mF럾F,m< In~̱70424OD6_@49?S__4p?3?mn?ls:{3^?4}o:-mZ_AQ^4zz>tcVٺ4aڙR)o93/49n33-ëkB#) C@& P/ ] ?`=Tguaamhu!`ti.4. 99@yB* &&7<jAp>@]Zwvjd)N}39n%3FVr>pc8aC%>lb $-hG%P"Fh@D  BOA%ZQI @ KNZj-7p\WaŎ%[Yiծe/~Dт!Ċ 2HN;<„ <M)&N(p !37O4PDUtQFuQH#tRJ+2FM1DCN>FrlS>iH"ڂ+ڡXLhKba"`* 0 C @~p۴05SVՅ R7TZUօ\-Sڊr*!N\RɄ -" 6 8dSV٨0b@`TXᅮ( LY JmY而NP먖Lꬍ&H:pxcǝuyD`8ל6p@P+da ]B0Ebv6:uMV8 Em}:%6;FSqyS FC=G[bE0Qc\ fp:kK)h=ũc8ǰQcp ?R XOD$IgI 20ȮK0 d QlzvI&5ZP!/IpA~5A0efP0%^_O'' [iKd ^B` F myz06}nop#SUS +{CLo~[CAP0h`01/j)!.E`t$0(uW!P)tBednk #4{Ps_v311{;@`%hј `TG0 `Ymp>L/H-ꬠ ӄPA&,Y=H. !(_1 &t@ &0y@{翘"'}Mzԧ^g}]z^}c) NZ\8nt5hkX%@*~%oc {)CF;>9w&t4h`ȼ< jgXw !@)? Qc!pȂZ'bA-&2 5^ja0sJbm6 (54@YJ)"hy Q5 CA)y{ضx,([[8k.8#`8B1%(a+I02#,P;7,DQ9(؁ᑝ9:Y ȁ98낓K5C"!R ,CՑ&X{8;S/1;_% ف;뻿 b  ӿcF_ .4 A;yDEhBnGJyG{G|G}G~GG HȠ=&#+è%C|(Q=HCc`4l3A3:{?yRxC#E;t4HyH @D 1[_5a˵]5䉄::L 2 (p ,+6S"c; ec6r,Jܒ*\x5C 1$8C*2!K `80iˉЪ+KΜD XDH::D3M 9(uPy ML4PQ#;Q::?Lt`al;l;@FNS\iFh, ##<0DG1'@+ou`_lФ1V:9<:سk.7 Rɘ5xlY婕ױmq h#x4(1 F߂ fD MAF8a E0R44q {pg(f7"<KPmQ/PN Q}a@(hDTF4lcai`Ȱ*ntf3pd&Q?G3=1DSf@%{4AWy fQGUlY fjl &dH4笴D¤hXfI!CF+Vfv+&n@覫Bkn+EV@,t@D 1 1 &p&X D70k-Havp5tpC,B0 H0p :B MX]pG ?L%+JdUp K$v'h<@@'LoB" $ kg1&`ٍ @ CJ^64@ H@"AfaD^'|0 1QA]^A1ѻ A &Hq/ C ,u⋣x k A ` F0@|pUbFp@&i + :_dg `RmI^N0>ɠ&P` /;7! 1; !l" Azg, i 4ч c(Ƃ- 4-HC Z 0! lS%H8"MF>A0Hth؁vTIM @ 2Kp@;Hˆ@CP(v$&Y2 EXw=`}͉N+d$ - d!Lj~'Ņ@J@6.HA #|@`@alpK&Ο τ _kK k4QW'8EwZЮz` XC6nhMZֶp\õ9xͫ^׾y Mb۪2d`W> 挰2*2K v=`u'&hAᴣ]qVat vFCZL A (հUfg+ܯZc- 6] ~ A& v p %̑uKTQFauL! ayB@:ӡNu$(i'6 XnB H +¼S[t[@ ^9غvUH8 ;L"D 8 p6p|;$ ?$HA_1h ep S :2@vq&EA3O0]KЫx/K 7 @GGj.: "p63T'564A* &Q_\g]k8Ѣ L9eld?pU HH47͞hg2PAP@:]P714M/ Q ~P3hG6>#\n߫H^lf9Jv 퐠900y^8 M}ad&bnsa]MȟMNG\ X -NDu)foA )(\hR\W ;7ӚwRS`pޑ#o.Tʔ6 hOO P-pW鞻+!OdͼioGOzOWևu gO۾'-\OmO>aMO.A:M?HB7O9 k{? /Xazs@=Msp|r6  Y~"jAh`67~'yjS=&oVsGGp2`p*X{yjSrN2"0)h4usw٧uI@X'FxFHzL؄NP8TXVWJZR0$+Z`%|{I|F`: 0ll:$c2[5\Y~/0=9z4|}ǃ}h7n90*HDS6Vb"1hhCYL i9†EI308a.tQ0Vix6E5q#M^9Ce%Xp[@0^Kяc7*^$LK?tsT|& dt%E43:(hWxÈT1 >H?0)aQDEgm+ؓR>uRŅ>P9T)|yXZt\`ZbYfybu/"5G[ `CX= {g6jX/2@Xr-`Iz(\WӇ"H[< `\.hh|8}u<9+艪8bc?veJ0 $h) <Rg-bt9 C<'3׋MBC #=+RSn3B.6'`3&Tfe F@:0qXR׸ιH&H ֝;E)m6.0j9] g54I<&b֒o 9 9I3QS $(Sc67OBA@`P> p$jY02pN4)DpxGBC7411yv@6h9: [81r6$f*hawcxMU킛72=v#k&> )ltEzک.d:jXZVR@2n 5!Gs39ӗz%@H0n=Z[ sS~:s]٦38y}6}w\(]@x;hO#Zb} *3j%yeXHdz۷~-;[zEp)@5T|x/zA||t[{E[B583P32[9\&s4_}Y} }jb /;K:bb#5pL<*7h:!hs3J=A@ A D{({ ?/@(43x h!n6*HpetF~d[LIZrL' ķɁp:*=j(:gw/z+NqL<7{@'w/> ;anYK7x9xJyxwJuTh *R.5N|[R<`T|XLL\엋۸$ϛ|;n\3]d3ZwuD~,fZ 1/33S3·4@Ȧ2ܿvi K^= c^Dȹ8aGT8K9 8\:SW#|{L4኎ XE0ܞ?iQfɗC={f*OY/T@בK1]8[=@k{4cju9(jm\~ :k]E78a4FTdEӎlFh4nG c 93R@6RJiӥ'ex^S9'  pդ@S?ǔLr"7B:I*hKFJILM/Lq3Y`;P8_u0*@ c]=\v=\?'%8sWw3@PtE|}Ēł=ظGY|؈V،؟ńBhZΕ{}s|pr ʻٜ陲Hj߻pb9 ʽ<Ʋ86Z糾ȝ'@κ|h  mqB&@=09#2}ƭ9? @o,MA82 W=ðTsʵ9`sۑ9`UႽ؎ ^X$^+hg9:31 "0 'k-]01|Kǜcʘ89 ÚX&ˮA-Jۼ~ξg4ٵfHe<-㡽{c0Iڷ[ۮ7ۻa:m.eXi~0~m?74=\I)F~(۽ XXh[WPw8*O~9HK@h58ߵ ^;!/n``lV^! ,(z\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗ɬTqL-ټDH9@$6!#hPP@YKٳhӪ]˶۷p}D#K(LtGѴ!L6%Ds!I$Lʔ(^:T#GtHT q#6qb&:qEE!'0 o ?+_μУKNسkνËOӫ_Ͼʼk)&J&SK0 LIh'#&PIc%$Xr Y$$L P! :4P @?tAi@6Ì5@)DiH&#h"^{CSfR%c ևXɒu@=у  A ?p^T@p v J6裐F*餔V NZB tUP&B#,(&fb_mN` "pApG% %ACa V\)єZjfv+$3IP]и%P2Y-d n PYag,lp%$G,WlE_w q$l(qrH$R"EB=trYHRQ  `2- E'I;f9p(< # I/m(ܗ! '12F2"!TI7Z M@wP$IjM]u!N-me\6ЃN  J$(Dfi>t A(" ,I?CI' L# 8 sS@!tRv޻$T ߌ'oGR5|"(B t yЉg@"-Ā$ChY(6T T dMIp7ClsD]LHP VEoZH2-,@NH+h:A@ zWD,H4,q! 1rj0#$8A}+@ 7B!Hc8 Q@s #H%7׃EY>qx \DL EP?` B!νcy!M F1  K.2`eٮ 01-O:|8%6M,Bx"w+S}VD Qtj(~'C$tt!c$@ !@ â=ivErEAP(&$ͩҧ Ap!0)"`E͓sZnIM&BA9n, ]M~B zRj-H' %BK#@цHЎvU"n7!Xn^s &8Irp`WElXH&h!F+c P{4H]Dl3bk%<2N|,exǯQ=s$go!}I4$ ؝=3[j(-D8А."MJ[Ҙ3N{Ӡ>ئCMRԨҨSVհȪcMZ֨5w^ZeMb,NlF!ЎmgSζ50MrNvMzη~NT8;'N[ϸ7{ GN(OW0gN o@ЇNHOҗt;r#w0շu;PĿ=9 $lw{Ȁ+ d38\T0h󾁽 < Pt {8ӥJ 0A cPֿ 0֐L ,f`ЀO1ovP1@ xPz6`@|ݗA뗠t? 3+lb>E)h80;~~g~{{wz | p}x{SV~G wl;/gzpy8hcPpy7kpkKV(2`'6|RpJ0Th(@;tuw_pa8_`(xJWW tЃ8؁Gwd2} "tncryz|臘g;gx`lpykk0˧$74P_0Exj kt" uWr2HSWyM ;z80Z7ŸF}2F0juSRHMp6ި\GG2{Ȏ5P?G'ybbE ) {J {b)@Jg{yiyXJ`з}S0 ujz߸juظ}W1tu@gu<@BIxCfpM0FMxɇ?`$\9;`wxt84~-pgw2t`}@P`~njC9HזW0t M$I[ix'Y7%ؔehXk@f~?6POj@l(|3pzt>ufzgv 7y+,~fŧ}uDv`z`kxt-؀lz ,I* @wĩt}g8t ɛ\ןfuǀ yYyt *+|9j ~~,I؛ h י8:zO9޷@`)mo{٤PR:TZVzXZ\ڥWV*Vfz(cmABhڦn1I#0 Cp1R@56l &/QQppZ>?0P>|`RPd0r0%>0?0$*:%0wP*)nᧀ] J ڪrh!*AP=:zc7uC0a8*pUIС$+"]/"$0] ? 0 !>8r!KA80!k"1@uJV#"۲[Y#382Ղ J ?C0?n1 Ad`R1'p,ѨD;!M``hnѲ;k>WJ,P1*128Pq 1qap„4&0Ł/02 20G  A%0X#3^`<>K% $ۡ2,d :Pk! C`Tٻn!7Y ) FмlA4P qm+ Pmg;p> l!K  H<ۻ 00p 1(q{#9°0 <0[K@A(Íi#)Zp8`e`A 10@`\F##M|Y@(#`ъ3EPJA#, q=0k G` p\Q*"/E-"T`# $C`8+"8#$ p2L"/HR@¸#Wq[#0Z0$&[(l KAEr4>P$*0E&g+ ֌͇ '# L(y|n F,,FpvjLn@\ĘEMPϓ:@&'zL0'l#mI N.]ʌ(\ܺ(mb)1?+atL"8mt ~+H&q;.z'm'`q񂰻ÙJ} 7^:$@~Ⱥ*$jyR=ZrO(3#.a^Zm""j%`.(^ӊ-d=12$nw;U+ bNk:N۸pGp҂Y*#CK~r!"봎$]`QAfRjmr!_[Q-_{۷[\g_{' P3G.;Pl @Q@A"  km2+»aF+?#'krAۼE/˽-;KIZp,o[$B|n$ pԜ/N M~.uw E .NF!"6#ȼ_#: "/BFAoF< v/(*!TD [r n#%5ML/տȫooLr$(v09sM櫏9lov0P8FCni9H+RL3tӎ&ӞuTRK5ID N5IҐ(V\suW^{W`Qa3$[UvYfuYhVYb=dv[n[p$=:@EA0c:#89(ۏPD@I`U8%-]w j~"L-\2 C:$au]4WzA8b;j7 tA:fuE RH#^XyUx"ԈK"-5(!gBB;^ ߎ4Q~H¨$"d2!N|na;5*p ;+h#^?l87nT`ˈ<2,@\M(Ouo2&!n ov8K}`#`AEEHEm[y)02D'4( ˙YB@I0Jc*"LK< $  Ps~`e/D &|eDnYpH!sH@@#j` V51 `+_A#AJ3/ g lЧ)?ިv0 "A4BAȗ$@xe筶 9 @j;olD6S& #o5+sLfl@`{9'Rz@ FL%+ J4ArR 9=gBHDӄP_/!,0Ntb*(FTOЁ4)2k;\T9YҲT7AdK::7$a_q՘Df2f8CZЈ4rUjVӚנ6 :ٛ0U8V8ʈ2b,D"TkEՏa90!Ec ntFur T.2 XQH)F 2Օ$wzS7@.ILdꂙФ&M)U O Ԡ u(*t_$QW3%*XHX*Zq|d$'Yj1^L/YSr|4WOIe0Yc.25"\uDd ).A,602; e:`Tb\l 4ؑ@d$S/2,W1YnNY@A Kk( ; j=$[v.%rc8Qnf <+vlpi.ϻB}CZsUp+ .б{jwiw&U~B;e5{޲%5r|[oЧ>)}Ix_I9 ?c72'`T_J Gp% T(ONWJFC*AMP#x|b8*Y3F,ьZB:- V Ku-rыcȝR2ܹ F>T$iKfA'?Q2Ȩйz%` t=V89$̈03B̐*̈́4)t\FH7y*[#gRNڱVygBzg?πTe 7>~ KH=ʙԏT4&JUZ~B0)hjӊt|T\g,̚`L6 B9*!p(B+(xu ( R J,S@C ,^-pъ(R6=3sJyд@ј304)X)G#5IÕS4S!H0P5, `VQyX5H5%Ȃ*6}fda6CQj{˶ɜR% ˔st{v7ٝM{ -7C7ʂٞ 3M9s۸ 99aLsK Ȉ P9àĹ92+ ãl눣ۡU򈥃=k:*z;,;#1;Y); XPcrM:#];?: zhЋBw>k>^?€2-?(dSq?L?@?F!@YJZ+*9r+\лO@X @RѢܫQYh " D d )@ Ծ!A3E#t$-&4'Z-SBZں-̒<$:yHO! 79̮TE8LEh]$^DDYL5UtudeLt}F1iCs1tW|W},W'W~ XXsܕt,X]XuRxDvyy G; ~lX>4SYCDsVݔJPKӣ號HlJ#I`1I!PNQI՚t5]+g sJN%欤 꼻JNOj0%ӈ|A_tڋ tOD&c&tt=S Ѝ=:'%>xJ;c>' S] Z SiPbb;QM])}B+W4 !*ѱӔ,Rz@RR aR _`Rҷ-A4.UA%0, S;A8\RA-, >+3вBj b(R!T8bDBEF-!T3̈BXdI@;T®:UCB@U@\AL/S1DX݈ޘUk3M[H/SL)KSa{< V c0menEo5p#W4dh&u vf׏ʵקfofpޱՕgs>gtqΕrNgw~gxj!Y)Hz|EF oPPވX,p~`&.яJ?@]jcu܊fAhb@ r*ܜ "m>R.&ug(6Q`+,-~D,1&  c3^*#,P6]ABѺB9 :.(Kc>=B.?*WC$VJU.aMCOd>g=gLVM&DROPpFGܯIefDV[P!CVW<eMegE]v^>7`a1E_I4YzhvwMhfɓXږXJiaj_6 g͈dvX(`ܶtTx Y}%j"9ڶ 5pꊃ^VJ Q%,6gR[ \t뚏ťky\kkUlpjL91ވN##δ 8^+#큵o{$Ѿ1J|l  MSP%N"& %mM|[4:f:.ڼ.};<$+$U$QG^PB,aT%%f;fu@cςȈ.(yђ"P9bb!hO& GwU&#lNiV'ᛀV=~oo甂|o@Ya-2l!Ĉ#R0rN#ȇQp46:СM+!@@B r&Q 0HPsGR|r}B#@E N) qC\H!am4҅Lj! rð& & ďgxC m5ذIzG(BBK!uc!HrŊic(t,,}ZpShdQW~F1>A-CLFyךx8 :P&&Z.4h5dC!`0ăbXc<&"-aUVCxW`͈W= @C8@čs^eaP`dBpC9& L T0$^'LiCea @4 7P4$ HBvBB# 1OR(/l6 &>` XC !@` l[yY R+$UP hfƂpM @Z7:IK/AP QPBn&Pn@>Ad #0vP7O`+ERffF`C EL`g5pP Ї`9lFx"҃p` ^00<60wPt>@dX" Xb v$9ɒZPx6eL%AP$:9+fD#B ]l Pc4"(PB *r#@wFrA iCبw51ݫ# @0!A## H2`rCBnmAVь$!RL(R@lqFRȄ% ?52($L=kڬUqH,dYHT.ȴ<;F0 A.̉un7x@~stW`G;6G=a䥋x>+21APhPDJY "'bcVl(F5=Lq R$dG]!kHT^.B%4w^#-Q[Xr-* XB5RUyz', ՟+)&H8Y‴ԅj]+[FaU\ um]0|*g)k..h cYjGbƒb؂21%37Ɋ\'SV2,(LG2,1M{Z\2ݱl+s6e@nt{ bEڋ}y .qZ9B BA F>'in.{XV:$vˢp7 ɤ/7z;P^<"փL҇OsJΧl= DjH=C?` C8., T}WA NՁ :b$BPz)\a _x|!'arxAbs$.9o83iZOӒiL9qr/clUǂ>,Aȇ1ґ\$PKl%(EIJS:? `=,]9Z%~raӘr2kvGsռfMoSKT9-3Wos!\ʋO{twyC: D!fk;d( y&9J)jT!ELi/蕽C҅t$sZDejĀ"G5)KiJU2RM+~ +h؁f-A)wP[Ԋk,l^j̋l9np< }؇`%$s Vt,bcuiD`AGee=L Ax_vHVh] i5HПjkND lH VoWq (BȀLa LT ى$ұuDŽ `08TzM^{I|},I   SaHaKpɆ9=XQ!˻K|i(܍L"*Mep(Z*"-֢-bW⋅"./"01#2&㎝ԨMǝe2.42$mC8M8̢LjZ,2@lΨ#餞ZHج y4zM1@val8䳁@d[CNBn ݛdBFEMLr̹US S`0P>ܐP`a'dt\ p@\He}Q˝_`q$I="e#ER-&}a@E]LP@ @^++%b 3R/[]1]3AI5Y`uWi9C^x1/FD@SP^@y A%lC9MØ_Fu&T@Fà@HMTILgPDAQ`N9PHT]S@UVxlW@X L eo>Z[_\D]rn؆ .s4<`ccM Z```zh {8{ćtNh Fd ɬiHjօl > nHaVHqBPJxA,NBHuYvaa z!yaV a.D"ΊF pEn!(1)D"NbnTa&tbƢ)L))jDb*ɪ*+D #.+6LIEaɭ]c6:ttB|܄cAC`E :)caʣY ?#~ 4A'## A@T |ZO䪽GLy[=$D$DE%F m$rGb HOdϷOK[LNO\$iځc$ PQRSS&m EeYѯX%LKYr0fde]:]Q^6 9;``$Q%@(5f)= 0 efĜtlfÝgh]injkT]l@8"1t(DfpL?-W0g9gDAJ}CdA0Fu:TvvvgzxΔİpN(PA o؀d _!L<߼=ZU Vu.vnDLh[[oH|(o `GsbcvHw|0ez`yFLq$`@@ i&) 2k=DiS^neoH!ia&ŖDJiiv]!xĜW ,Q[|9|;~)K \!̋Ɣ &Q:"JI]bdb˩p 0p2xj*+"F*bk,.rȨ2/03r31'2/@8xћoDd62ٞM0CT A7 #c ,.6NxZDHd EFN0쌔,Bì$̶KHäNu@ў4,6>QӲԖNP! ZUz- ȅt5mYʩ%ۺ\1s=9W%]U{n*YfB 5]] lB5bn⎝-q&jzfڑ0-L[j]6.l~d"C3Gn>SS Tr23n>DP`iIKyoL/`Jm/{|o}nA'?ZUgҮn@Aa"oV;W90[(uo(3kpFG.hpb9 0 f` C X8邰m1kŠ>0;qnAqN1(K{K 3t1u92rLz6Eҗqq"rBi " ##J"b$"\j%oKa&cyz%(o*E(7/+ ,2D2x˹9ώ.5:kܟG/:3{3T&zC`36j{8sCHz: :s#sP:Yvb+)@.@3A=Vz?DƞP^O13G7[HjJlCIÐ̦4Hld$I 2D dAwՆP3-R"\Q{; UT6uU^T9CP5A[gBVzuZmw^ĭJY-^b&&[e"`"2]&acBeNSAnX(evuf=52&֬nefa6mvvC-mBtړ㝶|NZ^k/k[Pl/l[Cvuncoo=x7i%C@z pT/.QMR}'vcO#xWHzǘZm{{ch|27_BT h )o\~x}<  鄫` *ik!}*xF`w#ɏfuD1θz,23yq1!Ny}~lqazP )VxcF(ač#I4   .C|LQ'e-9@%;Lcw\S F>2lZ'7n\sֵ{o^{Ro`}6|qbņI|Y3Ϣ]lȷ9wthѣI6}uj+.yf׳i׶}wnݻyܺ7l}7~yr˙7 F R$T^ZxFQ1睷{E9~P V2P$N+@rM?FHנТ +-#D07%x!-2D-:Y<) @!C@A"@Hhh@ü 8xP@&Is͵L  4: I[s"OX(n:`Ꜩh((a"+PHt5G!$`-X@ӎb"Z2*%(3 %2*+P Aǽ( "0XVI68zTuM`ݒqUNr"!n / #t:(+xX而tR"(5NGP_y5%eo#zmc p_ ! vbӈ"&BHXR0 ֬ր%F%&`r5#U#ڠ@lQa$pM *o"(00H !!*4UK[u#F ("Tә$ yW#_(p'(|ʅ ڊn&lƐdoC >@ 9 F09x] &0@Pq 0v@Cz` U[ Gi*64AH4J;xL@;AƆ (Dﱠ=pD4=B/``t /66:AL(bgI'>S$'3M$($ RϦT*T V4,~˵v4ɘ!H')UiZLfG-ҕ9NySꆦeOZTI=OsTTQTZUb:ҡu@F?` "AztU H>\}|gYD;Y)A"~LD! aHCBeJȱQjgͨF+"J8ã/(Hhp'A+E)QJXt0LfrnU5)NsZ= 5&r($jQHU)xFS:;Su6 ְ+YъXծze_w"ʱ6YњVlL5cԊ']貈/y^Za '`Q8WM" 8%R h3igF ˈ%mi08jXPlfC6muSL'/ v0)XLZm7MqC0$`mº7ӡNusE'/ͮyW,x.W=/z =pxmG>ISP O+6ǪSO.G4Ѐ@-S>0FBp Z`v?7!!tW Bv_ |(:8"RЂKlM)VYb(F2Q#ݸ;α/@vv"aH<2| pLn$4ߘ2(H%| @!"X kjm_r哟r[ fq1-SA;鑉Ts"|6oH!9t~2i9">^2)2Mps; = CОG*WV8Еb!L7Ht?"& J!_Ҵt#xTܘugWYzқ6i_{^YΆ:ª>4*[كڍ+ES䇰1^ ZP&BVDAj^Gg:b F`Dd\F7 g/Ye7XD ΄𤋮^k"JdKZ rK0zMD"H ฼4kP ŹQ kL tGJ \Umv6мfwWj4+Xže Z8[`"80@dDC\]̏l&,(012,a[aP /HJDdLex dfh 5 B: u@ "E 36FilȢɮ&kF GFHQfm@(nFb2˶@P@ ϊ$,g[m.'s0 lx-&h4MwрGxH(my,yGzT uQ4QlԞ|PM^M~dj~ZMz- (ph&&"j 4d D*\hܠ1mr(v~3͉(٤Hwm"fҋmP5oؠMBSP.4h(h gCȏ6."ΐ8 DŽN$H0IbB8/\d @4pvNR%i"4꜇L~@Ω>),T.Vb!FDb*ګ4Ρ*oϢ/21s9$7(O9"0O#4l#S;;16;Ǔ<<WlA2Z qնYO#Sz1@CJ# [3>2/ w56tD&bTj B+B8EH(@4/ndL0o TH!څYUk$dpn4LrTGH4L['pI}EIK4tt",KCX SKu _%LVPWTԔX N )"tY-cv܀u/  -PH1dkwQQ[It [PlW]e<T15NNScUuU?֨ȤFVMq04nLWcq wqY'BpdGy-orZq|p1t15|'3qww"4{g3 5F 5iRb~`)`~am""\vXH wP;v$'.d_蕣d%M&MF &{b_rf'k6px(hO!`LN+֎6ij ,V,9jij5N-DnkIkOm1"6v nNnRno3 &l2npn:@qEqi @rێr6xtis8*<773xHW buyzvuv r#v׋y#['yU#+[7S#;[G7">ѣNJ7j{SW@4"w:~!k75V[z:@ ~ WCB-KDx 0$T~Orjk+ut|KtGET,…aO3H ņ4v4}[8`@ tOk4Aw 3ɫX4 t .+(^pOt?qeP(LǷ7,b*=FAFCS 4&9QTN8 h 9X6<1Ț&l  lX]l`HnP @AmlqjYΪw[yϼu];5q49/Y{hpϵug_m͛W aM`%`m9yamؼo 2DW7cEc)SRz ZbݪK O$zt2hfHW|֣]4BzGe/U6rieVK,mj2rҿK"۝sIQ#y4eNe. ^ݵe|ɣ*w@Oc}}CAۘI#{)OC7$47vE?DŽ%dH3iԃqI8|넅4T/cؽfxOI4,_4"ЉpKCIuUN<'ōX\IcƁPgPu\55؏40YLG((2 :|1Ć; F@fȑ$G1# K| S FC@8Ξ&@ =b:uJsaI$7H ) A!CnxG , aH 'nQυ-(,jl :Ѥ#r BSOKңqxn8Btk1@8 3#'^a-\$͍i`d $:fN>sO:8DBQ -gCX]BЄ 4@ YU2 ~sC@p e9 LMD`Ia=Tp` ?p I !5 eZGB9!u E[^T6AA=HB 8$q +I`Dxe$q)`W @@FXJK::w¤ x!$$mHLx20D0$C:Mp ܦd'I@Nxz<8J}PEhJ.QD%, @ BQ ͔9h+p@ 2%@\o6 @tzz?W)JТ2X%YJWt-ja[%YMrГGXH .Z&THtܚS#S'`2δ0 ̊)CdH, DQ `6.Ĕ *U`.B*Q%]~;&/LhRS!U8 dS4JP( IR”f0 D@pN㨁`F?SC C UB0E+&ݪ╂glX:¼f= lᱜyM0"7R|;&!8/!!FF6Njt8u'SXFO)pfMd2hd3+uVZfA6C~:hB¼`T [(nM뒑g2Al$M%۴հ|ukas#9Shls۷7-oƖk(b= rSpqn"U</ox84|$81|,o_.;QO ~ "Ahˉ0\뗿o9B`CXQGz`ǻ4auЂmsSz4@:t7D,O\M\"4@2  f ~K&!θH_[6DVQ #HR LMv(gvrZX.'Cj0o@Lc& dgS3a֬|Yonz$zpFt$BJE<= gUL(M7140QW!5RSR*Q(,R3SM%5eQ%4 SamCL /X9ZU|]`EcKfVTUl%Qo2WimgW!.*!!emG71Z13QHa[te[[յ[ߡYe8,t8sh]ŷ]]rf b8KY!:!\pU'Ec;P#7„3'$D"$GgN%RB%Vl]h8'&&',&A( c&`cz"4:fҡX$Xf#Ur%z%*&)V&gr/X8V2("?Fb*d8)Œ!&4Uvees8ۈhefhFkF,f(gЂrgghNHhQ;AH//Y4 0jklji-mÑk0Jö4fm{4#2 fV;n=6?Iif7H8)o 9qɱWK:RI:TщY9[T8V۵gi1Ack q+h۶sylRs1=~i'wy{ ) tٙ\7})YuuvwZ2B7Ěu>DsךE}ZwvwnzAkb Qɟ̉gy Ay)zfHR*II7TH)|w9G{2Kx||T ҴCZ}ؔ }WP{ǣC+!Ja)j+j.jRA38JS;j3J X'S-K.URz3x6(8X[Wd@hWCȕc1FyAorZxYhl*a(ZQi(DZרJ~(Ilө8b^5(!^^xv*"/Rһ h$HRZ<+.Z)"e=֭(ب bG<Ӯ⪍e*df˕n֍ gk.b!.<>2y/nD 0I!3%2I4Жk!ɳ6&5+;4Jc3 7557Yn:Y6<|%n?ko4EYoN{oo u8\ Z9\ ]o[-/=?8 5m7:2m84=?m8}3u61ͻsKuyt ?繁8uA+e-2DCI0bv p'4Y28WzО;04*71>Ƽ׹۝ችʽKCJֹ4C70任Fz|ǟ{+} Gև}Tנ+2 8ڦr $H \lܢ=§xS#S&@QcJֆiU3>8,a0(V5LYXJ= W>u%*Wjz% h9PRT8!Uw=ͧ}ŎJbdцqX0u\E3Ca{ ]NjX>N^l:_Eȼm&!ĸÏ<ԍlzӠL*fZ0\'c,b@CFTJFdUp,YeL0,f:U(yJgjgΜk<\j6[5W~<;?} L0|DB2,,vlklAئm1901m㆓bCI+L[OoQMO"9$ w^%:5< n.l`5G@ƶ=fϫL-tNQ tk 1&XA@n#gM53 ?l]C;0pt=3v-xwd%bJ)0CZB؊ JfYӏG'ٞM +vٷzdݫ)G߫ejq4BK]sYL } Է}͠$E 'b0u~ G.uܭ AK+}9"S.|uZ2P SUW5Rߔ9/HdEV=ZZ]zBbbHZq:sJuyZc#ϏAb*hp8vB^$2Aw3@@ D #'^a- -^Ę`9 /:thSD$IBP`5mfbǐ#;@hb 0y"$2сU]}@T4;Ha 2v8Aڛ.r`)&.&N(p.]$n;B-l?Yd FL!@etX:V;p$9biʝ:zC mʦQG,@7 4:!ĉi l_t4*xa_gڜL7ӗ1ek`H" A>x@( [„ l "D0 *,ˢ"aHfsPh1I%\r AF@IP"0a-kr28 †(8S#.RvR:k(Da.sЄ%eT@ !b${, Q 8SN=TT(@ dk+U@xS@eEbZk6[mImm[q%ɊY̽Hڄ^{7_}_YE^F8afaV~ >`/8c7c1 6::; B0Af0?9#]. ra7*((( `r["ej\Nr:U o j ;(v>S`J  iLlc.hh@f$VKD(YDH9ŏr\,p@۸؍RaPZYaLřj4nU;Aո:~@8ۡ>_M7'I`رXow|yU#8@+DA @b '7 d'] r@EHe/~―N!%,apy9H }hԷ`A8/H7GK )mkEXhe5*(.-)RъHF|"OV6eLأ AP$3\J,t!B s PxH߰ul ހƬ .D &DrArJA +Qti4j"{XҖ%4|!nf3e ؀WH~@>m]!ȡ"!&iN{"8$(QOZS\9IA )h٤S"2+[Wn #,f -2.yK_#1P cٳj3` hD#@5w9 x|6Mo~4葈rdS[OMwܫ=|fzΔ?0E !HAnmЃ"LVB. #1(M'JQT #"H5rPF#ӏ)6JS"QTmQ _h(ԑuJӚiN⢔pZ?]O\ek[=^է*;RGP*mVrwի_ X ,.+x |VYWcW;_]Q8D}R o<`⯾[p%<$8_ 05aw8X((t 1A PwitL%g50 hGKʘFĀ.Qi6q ^m*.& _P~z۲F&gQhT\ tW!~9yϘjc{eً$K8X= a{CB'l}/zH|-C__߹/}k'?UWx4_=+%"@Gb8H&1p XJXgPH$ BH06a 9MrIGؠP" 1B(6VE8qehlh/;hdnI%ے%1YMvozEl8j -lӚArˁ',&ɺc&3OiRӚ yA )ysJ>9%u3[gE0zs[Y ?vVDDIrДspI D1Eʄ)'% 0/@ CJ0 @ zԥ@Kr6^,ߖ!NʣgB3ƨ9f6nxsEdr3+byj'Aj[S'ۢ끮ozBE,TH`@p#"@K @$SWDz?y4jz.+o1-*r8:.-?A@|!HQMɮ\Y.R1ʂUiWI$l`bcAeat/'Bh/ȯv,/01 /$4T5dC 3{A69:L1(31CS1kC+6;!Am@2*[z2!s)3 kh$0O,;/| oA)3K5P,P36C&D<ӳ)?@;EdC#D!F# I{k)5LamĝOc)QCmy33C3),HTúaGy.sWcg9ZAqĵ3H^3_ Ga3*bS@`HXfy6"=t!j\s!Ö~+ y,m1{7.v7:2JqyH*`!x@P4ʫ##?88CB$q8GHJ$Ȥ$-LH{,%]^:cB&\j"SB%o§fҺ@'Zæ'+qˁ`, Ӵb 7;;J⏨T2>Lb˼lcPs뻫Ï"p++c9#b? q??{%M()S„B=EeFuxC{)GJKHINOC<$1ˌ92Q픙XU`DGoDGKT2lD'3W1Qe3T\(kEOV-EkXĈ\]a%XVW36ٳ1Hhi\Zk\H4mt)o4p4!G9MSG5aQy9!|LJu HA) q`;\ =Ⱦd bW*ɓܶWXEIv Iz)77Է# 8T#rYJ7Lۻ;Jʉkڱ8|99Mb K(d9Ȃ`P#pW%T"L0LT(,&3i̩ |fj:l'* ۺtʤ];ԴqAd؜Ͷ ܄3 ; m(#N0NHN[Ë\ " ؑJ3 ]? ="=dݚH*;=OO( H>|<т!0k<(]`kqP6M+> >…?ѽuuQ2""DE-%@Q# ` S"@81oY!)U/ukS3]lS\c":<-=9'VT~E~BEC=DSHLTxMPedsQFTVzUEH11$d)Z[\ZUU6[\HԖ^D1i2ĥaE@ֳiz1VlmlMqmxb{rWeWfW4UWׁlFpqrԴt XmLjlAuE: zY5t5AYiH޵_ =mJIJDY$YIpZTڣZukI6&r&Ɩ$ܷۡlI8][4j( [7zjd8=܈%$>Eb$[ |ƍ˹8 ZMpeЂS]dع_:ݝ[LMjPvݥ$ͨ m+M;+^'u޷#(޴^޼#މ^(ݨ,_ EPCe$g&sV=J*pڼY*sOb`:>a n &EжZaj*+++MQ+%- wf0$ޕMe(~zR/ -NkbNb' 12XbA({)S?XIXsDqX5rGsA5Y!Y" Ȏ>HZ iRh^Ci,M  ($ii6fnsM.j\7u7 ۃ+[-"J/J6eNx,#ԸxV\$9>9FA.@w˴1r/=lMNݢ[.t:Ŧlݳ˧ ͮӤnJPѾݤ^e(ږ; fΎw߮}yCpnn ؛$`dΖ[\ lN􍋹>ra;ᵪ o0?wx?(0EoyqW#~pʊp%p&^e )pJA5a&-3&0-sqTc5A.Ɣ>֮S"$/$t(r3T%&zrrs p "Lp! 9p`(q"Ŋ/b̨q#ǎ? )r$ɒ&OLr%˖._z|$̒Bs'Ϟ> *t(ѢF"]9f҉7l*u*ժVbͪu+שK&3b hPAF2t!ӄQC yv T  6E{ \eȨhV@1 S@B`E`\OR&jj[yQkAjtrQjFp*W@ tFTH X$60^ِ2 10A>`ÂGEtD!`\QF8XX9pHuQ,FHEAo;&TBݘ#Q56U'Ѕ@TCܰ 'Q, ;=E9f)fJ,`J]VNPD ؝@8EA /D$C  [rZ=ȅdp*pC`R@ !Dؠ/&u*`чwF a 9`PPzaI `DA>\qTb0 !P`&57pEAhXi.Cˬ^E x%D0p  CgQDDI@Bk u%*X(t(/@ Aw%B0P ̨46D!j*J<4EGQ` /ag@sE=A Ca<?XiTo1^Ai/AGp@ Yĭ8u8ܢ7~UD_\SAm:B@[;܍V4a 0Cʝ22{d4̕7]` C@1+ + B*` ?pƧJko2tkD `V*MP4V6@}I^00n{‡P-/TJ`Eǂ  @`UBV0@VR0BxrBT «§80 m-јQ``VkphL <0 LA [PD"(hе H;H B I"ͧdLx efV("_O/ Z&-`MGlptr`D9`fz03&2I͸ɂLҔ(G2u)I<Je"MJ%)Mkjӛ44V`:4B*QjԣZdԧB5R*Ufx71A Ԧw{A pЅ2!Ԩ &(L0!e*⑋#@x4i"[(TǺ.vnjvg<)s٥HL`(!| eէyQ&L \ЂѰpЃ l8FXp` EDdf6"Ġ06h+|8uw!ŌhT#г7Q ,~;A PB:RtEx_>SQoIҕu?#UjV/?_Pȏ??o%G1C<9b !lZUZ1qFa[9`\9dHeąf4a_ i@Th|U ^gas$gIfYhu{  i% (Alі@~ V(HpqadH{?@͉%"2C N#iN=_HgznD)x[qzg}}ZUx|ghRg"h&[yNcUQB [ \1EDe` fhQ `TeGEc=VZd ŋG VEs@ DNJk@Gy(DHrYhn%!>!rhGXaqmᇼU|atALWZ)w@|Wy vy@zWoWj Ua!nW " I9EbЋ i8 Ȁ @,Vx (V)™S N*G"_cP,BbQ䢏b 0K3&Y RHY|Ⱦ 3bU3W4Xc!6B7Y88˘ : (A ,fb#<DZ>ZMi G M!FB֍D8@E,ET[[o PxdZ$Ԍ$QK% OL۸d[A@@d䜿X T.,GL%5e%rW~Wf\X[  V\ɭ !EZOB@rVEɥUD]f,%aJՙ1H!3Rkjf.qfm&ݍvif߽_2@Rl/Emg1nEq>a^R|dDf"A3^2I '@)g^ssS QYgAiugD!IUoOgWD#{&{v|'p 0U#p+ppUCpKQXl$Pt5FXyhM DLbD@eAbx"(J"`-*!򋽢@-c"b"K0bkQ./#0szٹ6Lٸbcv 37Ι8kk^2d@t@BDDl>"l?Ѩ@A!A`B1{mdhlIdQdF X6[>[Ž̚䵥dS$΂ݤ֩BЍ[*N@.e\=DVe]%-]nuږeۆZҐ.95\6QΥIne09_B.U-!ZvjdVS: RXeqA.y&낒ݰ^+& EkލffpS6B&]pp.qjqa1gѓv"&']fB/D_/h|Qvp/Drp@̟"ʫpKtcE( a70U4u{wu_NvOEwwzKu@=WHgK7j0w \QiXe(cT1 t;`0ooD{I E Q3G@zw_r2~tq1rqz!XxO!u+\)H'2akU+D.!!a~b6mX#c*I2>7O~̳l(8)w)()tβA9.3!2!3.1&Uhk2@D~Y764k\c_~+#9n9']@BZ4(GB=l<,?nM>w,BM=8@>tA A(4fZFt}H (TKvIάDG[4ՀtL,f0ɫ@} dL0t4S~NpUmđm¯WjX25YTnܪeUQ- a\z]j%YzQ%ZOa֑[+&Wrcv.Rm"6M;yh4 i&DHp2 P0s8ҀC@">4nRK1T֚H5TTU(54|(X6XwׅBad h$re:A " +@t!/ȁ( ˒Zhzz0 8õtͤdlڏA."rHtF.ل"HPͷ 7R!3^XfR~@=%~fI]Y(7 9hnOkt/\Pbhd'\gcĦaH" mxyI r +6  9(@ %%r RB^(̆ 0@ JBU]wԆk߁ a>݉ȁhzspx!0gi؈`H"" l9b>%d{?WJJ/`E)C@-e%Gh0Aa6_90E ^!l0p`WJ(aGr[H:ΐ5!&0;Xo4P".0!2 E)NU2!NF1e4xC.)agtG9Αka)Z`RZp>t1 g5 22)d2cBҩ:Q @$OsXUydR(TL!}`-#C Viy%r^r4TbL6-5@ zh$ ӻLp(lDNK(I-)4e-) W-q _r1pz!Nˈ@>3DQ̏aT'F:򑦍T(tIAb2".u!MUbS&%TbTbn+_ a<- ]]09 d 3n@n$ C;h2[2= WqOy=pl-Pz@^"C6 35}ڲOޫ(` ] ՐQЂ`9ApC%dhHaFӒ4MN^d@A^SoW. J2ll=*WgĄ%ƊmRlM q_ [8qƆƐ%]E^L]_`Ȏ OLF"vd0nlpxBdeM_fLgxg͸FъhiL_Fj" i ,х mpF/4 oo1Ԕp0qNmnT@Z`mC !=tDthM{!| 6hXؐMv hmVp $یH۾ fmzzέi{m||-} &f''(0H $m*nBBHH%1No2%ٲJ·N-[R!Zp:n-//s芎v10 031k0g01!32%SNj" E hT8OAs!3%잲!o!n2} ~Vdg t |I ~'8~o$O>qZ /&P,o4/1$* h »RV b j$O͡ ld'vO$@jbpbr^B#OD*((/)t~f`>jV/."?ϫR oѐJLBj_B,=00=QDP%&2p37PfC,4d $F C;8f<H.o-T4./^/bTX ~y_ &ƮN`j@ Ҕk(p&sѸM)! f4!b TMDK)kLLS+&VTwٵekCqkC~EBO0PP :Q! X@E tU5 `@L` % %Qf]qKb~[U%! ` 7O WTzuY~&J_^h.';lWe]?tYQY&W5eZkZ0[\``(\5&_l!BSj* .m,Dc4S 5o"lUF` K&qa7رb&`PYB{`SbBGgN&Me \`v0| gAl@*!6`iRvZxs"5%:Bj-sj "d`k߾~6(( msB'D2G߆2vh@o *7(+Od}%o.o),/np)w/`!7.rbr8朻όtvHǦxs]|zD4 @ ?nH j' ,zx9p |j?9x399_ ۾@ r|?%w|wW:}S}ST%gD h sE E]x& R[cDby/'.~e/d xbt"t@QbB[&^d0 r< fܘP @?%n8/*oC/O+nOSVJ50%G;@dX[m NQ6h#v Pʭ48!8 gTLC+x;T~&Њ \'7c$}+^w:Ez47FYKypƺqRrR&+g}J8`$iv()p@`"! bG:T| 3& /9X8HC N Hp8!Grdȼ5֭\zCE)$B70'o2 X"tq;&FР/-rZAșKn9ZiFFF "CnAR6Kv-:n,1#;8E Eb@,cF=:pزVtP!CEP!K @=8F@;?I Ga%|R aāą .1@ 9SL$QK!8„Jbs!| CQD 4ŠьhDJs|C9S)B\M6D%/I%MC&? P%h/) P><d%s%Xr-o\~el_r,1d*%0H.sԬ5l*vP Rb$FbI4LHC mR @=Os,1P*T*,@/Gj lf/h#``Qr̛ B:PeI bQ6Ŷ  *#7ґ{PBT*.z&^Oaae0~fg(ϒ&-kiX5/{^ 1BPw0qxBb)0К,&(xJO}]ArfSQocGǵ_s:vsYG6XW_)H5$`/])KAN`w`a v?JL^U]LCqAR *iҔ4^. L{ܣ$ BK0!܀Y|wӦ&LOuS'?JP +ԡCcF9 RTx)Ny~Ju*` |+EI%!,~ $.xy \XCu] ] p` γF01'o,XE~lW* HRjyX ɢ2Se0jvRg?#, 7iKSez4DmjUC !rrysdG; <zw`m%?5ep]\Rɩ\Ѝt_U׻nvD'e-ґ\bL@%a聾eOy{Ke'>/}@ާ98*!l`W+> X8iqښ3`2'{=p-¼=!8!zQ!DżE02%3c(2))IKV{MdhiU[4c.V2j,FϢ8|gos. cg?jsh2hYhshhh ]نϢ1S-3B:sS(3v=17Fk@#4DGklP#5Tc5X5\S0sq6iClc:o7sS7wze}㐞nv888o9lI8vpob oS#pAps,5M:=0U>0;<)B!<$G>s2Er֓0+==#7>3sScmy?:!=?)J@dtH׉Jg =q'uWAdMaA )7c1.w1WYs7-#s)x'@ktOtVV+Zu`wBBӹ/h7C Ev3yBDwwDwk1iDP")). Faedyzz/WG砳'D!|-:*Ĥ0`@2=?6 CLEl#GKM\N Q,SILWYl]_ a,cLelgikmo q,sLulwy{} ȁ,ȃLȅlc!,+4H*\ȰÇ#JHŋ36| )@Dȓ(SZđwj@38sɳB.> JѣHR&J1*RtVXhA%YhӪ]˶۷pRa"c܆gNLW#0r`:PPQd :JE˔3kެ' ni`oxad. (R"in@ƹsCߧ N[0&YGhvAǎ( M < 3)OϾi6{RX̡ Hd[ݧ 6ՇVhfv ($h(, QC 7h8#{*@;)DMWt`L`Pf pq`=eAZn Cfq]~lzp^tix|矀*蠄j衈&j t0GAZA*%Xqe_7f%Z #K.$Y*A?eTPj\#9pCj#VZq x@K2p@Db CPl-`i1j- LP)Ln]lhZkŶn4eA$x[dCT1D16I0e'Wuؽľ8p- ! pPp'PG-TWmXg\wAfPX5tPXJY~E&@¾NY@ŏo[-,kGW_pVK޷O 4/2"^ŒC֯Q pGH9>zCp=0(~"ߠDGM4F4BGP"  `N#`&t4ͫ^!M&`#O#T@ x t &/Z]@A\z&N%Bcb0 ؀CAN.AW?0w^(Hz%q37AL.MƍI0 R D Liv ٟI*&F# 'eÁA rl%9gA EZy #|k7S_ 1@$XaLr$ɹ ^65:ꞈ&3yD#oBnOm44=P@NLt0xNMSp_mK3 'y6 ]/{91#/ CHb[8αw{*Ha~ @L~2>3g:haz+@6)&O@4$ mnJ")`nRn@aioj;++ %x]"؛ӃOpTЃ` 0A` X8 `Aۚ7#p snHkvzR|x@ ڀ$A lO6Ёm*|n aΜ7^H"0-$.8 )7{i CLp@v5{({7N ̀i>uq7qNLH"Pj9{@7i"c@Ҝs%_<"dCC|2[SIdXϺַ{`BbOIOө2O;3Ҭ*y iOI\euOtk %lv˷VO҂k%'Qwp.ÙT$%ʏ2TSyhЬfԦz54I%bpAŭ׈҃e;Џ![N/_gv+ed}nq uUTMB= U(vO$lkf+Bz1~$TC;CD mQywQ_LD1RA%P @XEG!FedT Ddqz2mnq`e`@TBG&ǃ rpUkQgTNg1|}H!3X=Vb!Wpr8tXvxxYo7aSSU_` ]PTf!7a8pq%?TZ~(yv7|q@+B?&p`p8vC87gQ^vv-9 7 `cA4\[u7!dxi jE3E6'X!7`;XVFCjnj&WJI4QiCu'%iƹ ,xBw!x9LS2]]aQ^.1P_) F'o)8iEV"B21F0oqz!pNDxfryօ4ׂn{蓆HUWZ&z(*,ZYYǤ^-%~3d RZe*9ĜX[cf 4ƥƒP~Fy .9P@]žt;_W0؜L>_!0f({Vnao Ja>2&y!jtfE Q|+hrg;/X:Z>/(ez7j3^f1qA(Ajתhf(G(R-:gJ:>HlfVWa^Y*jym ՠ6oi!#!j!XQrvɮhᮔԅ*j>i4Z;[{!d2{}1LZ]!ef w>4N\!Yʂ+ xsCV- QEQ 2A Q){"9S:-"Fʴ +$w;&VdeV!,3k SIkH+X*;[cF&;w>KG@FLd19+a>hMY2Nd1)]+lSO%e~uJyxK4PP_VSY;c'K w&śyTH)eSmۓ& MuˆH{{X2[{蛾껾J}wk>CY3b[*{>M}OD8k+NfCt}bQD@/_-kAxRR{ "A5ʋ,`e/[/<tark>@B<_o%7g&);JģOb84hӿQc)lŐ"lD pQC!D3$"2rFpDaaw!TCwFo#s\Ȇ|ȈȊbĿL{(,HK5TM4w;ASRL\@TcU[ܥ|'b\/)R y99A),6cP@U'6Oƃ<x,|LjEt{z)96<\˪ۇ > ;b@(LȺ3wwX^AB<κ㳅x!#XG9|#\V$`S:X!x<;;|`Ƭ+Vh#!̓ZcsbzCnW=~rt}qyBgo6٦tgyfgvt쳿A͸,ۂV-Zivj(kfԕ:5\ Myl[Aѵ 򶁔r|3WsGlEݼקL,.I܇PR>T.(ML(e)4}>Z(H=brf#Nz\4KbPIR` ^E (d1.H[$8_cbV?EU[Vׇ y[aN(!'Wb؇瓆{bc~[庾}s9?gE>M 5gA@dy>Uwƍ_ܶ8+8V`S9+(E.A־ܨ鏤U\sdr`czpmש!NA4&:OKa!T,@Ma9qI' >=1يC^k>:4:ڏq-!{09Dv7Uf] &4&/D@@*hȏ@;KUh \DyW/xq`wa1P3v,Ql4 ]`l@N{SR#%!&+4$D:pJK?H g4P^@V1fį~Tx $XA .4Q`Q #paQ G!E$YI)UDDh&9u`0|p"$aS ЙOP&z,A@7($[YiծeLnΥ[nY 691!/[BÏ! /f’=dS NgСE&]iԩUfkرeϦ]mܹuo'^qɕ/gs@ FtMxk_4@-(@S}b  4L!t0+v / 8PA@8B, STQ9\qE*=`pBi/@`#4qI&ukI|  -vMJV@"M8Y`/ LTa65AK 6IoKZtaJS$h/fg=EDLQp#%1`Ff훭 "h/08 cN|Sg?OT%hAWpQ"NmWQ|h@0-x1eR83>1CkmAsD GE 3V*4xC(SJM݌i,k^g 7z`&4Lm"&mih@ښ 'LUWX8ćU%la {X&Velci(W7Dd-K[ۆ D[*eYu)MB膁t*JA;Ӳx:^xӌ+i nyVU!YZw#UQ5bR &0،gUrf4FlU['"Ռ&lWWo_X&p |`'X fp^¬p-| *p=aX#&qM|bX+fq]bj1쌩XiɱU}YC&r|d$'YKfrd(GYSLe]6Z b/6av|f4Ykfsf8Yss|gϬ4}hD'ZыfthHGZғt-}b:~5XO7)ԟ&uM}jTZիfu]jXZֳnըi-+[w&b o P_&9u\lc'[fvlhG[Ӧvlk vsm&w}nt[fwnx3:7q蝞{qUo}\'x ~p'\ gx>o xVq`Gx=q\#'yM~h'崒rj\;y}s]C':?s^t6ї*'wӭ~ug][z׽u<"ySR{p~]s{~w]{Nl <x'^g|=6nQ:S4z@JaM9g EhKً6Fg@v#d>6~ҍ BAmhB!$;8)_acV~#tvZx|ן1AF~οEmvK=0At:@$;ep#ɑc؞!P*#0 x?( @d= 0x#.ɫ@:ʪ> A Ћ?p$5JA)l ЁH :'BpK# P/`{ I+B<\)P $?B,DC >聤ȿÓ֢#)h ?0끏;`\<)a@"d!* # t=KƂ+nD(< پ6۝aL?, 0(!$I@Ā*+pАHФT$Gl˳3 nG  G#-` 7(4,C[lڍ+.XҐ]*΁*+L~AJ*h?  O< L+D+W Ђ!'@$ ʈm@$BCL L #-=((|R$/?|Q1ɛ0ư-]0؀/8(=S4MS5]S6mS7}S8ScʼMS [!3ܬ(ODɠyQd̏@Ӆ 95I>تԡ ˾(LHK-S$ e?# Rݜ߰䭄VMOQ Q@ DA?폓\G AMDV0O̴0A 3^e(8B+8O!P+WۀjnHI9 R[@ K$X*v #+!MY;J1RDE0ʰlŽeLTu4 ;|NQYY@LŤ| WD H8g܁.X/肪8Ր(Py͆[]:V=/Riہp8?eM=\݀]md+i `5؁!6 `؁8  x$7 $ @+3H\cZQ1$0ݭ ?ai %Lw4ux6(#0=BAĴJ,P02ZkG "_ͽ^׈ mH R86E^!0.-`Hp^}6,&d? 땁m#$a؊4|с$./!HƂ_NɅ0[ĐdR8.SIQbQi x5.F[xI<,XU,9dJdKdLdMd !,  D$1ӯ_ГD H6X 1KwF R|1-]RT拞:8ِukǐ#KL˘3k66Ec<1V`& P52 ͻfla1#ZznPch1A؉/Hu3xʆҧ4|L <Vpp|Qg]Dnl #gwl遰ه ($(QQAc԰8k`Ka (!c AhH&YLr% f\Jv8Azz@YzS_T%dC`(AnRk-|DG )J@C +)F 3A{"Td aP;G0&1FqǍ{ıN IH'aJAmPp2Q_a(Fa'Ӈd:v3\5U|0u\,YZu_ZX1 yCh4Ƿ}vzj6ll0TCDz?p}n{C)5CĶ mj1uW{jl b@A1z>/k ]{f9f} lÁ!k%" , @5kUA]SeFHΎ#hA i gH$fp -"@ HbH4b``DH*ZX̢Ń` &*cL6pH:x̣> IBL";ьh$'IJZ̤&7Nz\ b)r1 E!f\y 0]̥. e@;La b/; >8yܡ?&dFH1R$!$ D. @A&nFo?`%EC!zЊ.R ,S~B |6AѢ @ pR0ƀ-B@ЃI0h 7A3 ; ӮΘ2 8# cYϊV`0@$kEX2Je bȀ7C19 |q+pp`8+$p[%&\I F8 F nf[ 6ow;;pZ+>vhk)\aC]SIVRe TA!^PժX*W͐9nCu6p<XǍ]9rzJX"V_tCc\= PK-$}o<9@ ;0R'A@w62ȕ)(% M~2qڀ8&8_g\c9j]*nL:/3>π4(BЈNoF;ѐ'MJ[z"HLEO.ڊiڙ ~K6r373o%>F7EsSJO ]P8P0@&jatZ}go]uyҖ43kl5 K_t9 BR0D=8MBKm p$ncV Pr~$iױb1mA:׺jՁmj ae-A ?ڤ`n6^q08x%q׶X\̧/gXfˮ}`Yp wz+- (݁؃Ģ @ Y}8lAI9xXpCXjYGNH@ {WԍP0 @0!ww]Eh7Xx! ؀8Xx8HkUTH(DLDLKj`kjVnEG&PFЁ(Ek&l56mbTlǖlPP EDR>dmQ-x|v}nh2~fnXh&ofosFgp9fVr&0p7tERd '05 zF p1qXUGV'DVfVhBGWF`W]Hyzy%V1r.s2476sq[fFVE@Wv_bD./JvFteNGuB$ua$uHBVw\FǷu%ec^Q`'icQwhjgv7vvp'wF:bY;(E{wxF55{FwxUMdp.x&0`WD cyW'aHuWX$bDyzw[zzzFKjdEk$06q*F0@O|GDQ~Li;Чe\֑Tg}oj6}PG~_`~d~~7FwbGUzo8|9 +Y 9Y<sVFJ/0FF(cgm$ "#EdƔ%rjM3ٍ/(ieF5G\hS44@\6lHb$. XUdWJ)c$0;0*d<lS(DQV8m "ZmZ]fb}rkv~ug;F*PC f%D7X&[ w00jTHPU*p_U QqduiF!W y*-G/rXrh7_tF}AEu8_mEb? Djhxt@K(Ow[[ץXǢ]]]V^鸎w+)D@U=Z&gL ʍ&FPT5s:n@[fI 67zaBha82S&9옒ǎ,zI]QK8{└FE@,0pQG`$@T*;0(Oz`JCDaj}ӧF,e֞1hb~W~f~qFĥz~iQg []۱d-@~s4EkJzt YDj*jjrxy*GStQwc1N촆ym! q櫉ƞgn4UwUnnm8o l%{; FHJLI^UT4j=kG/+GP*ډjh. )gn88,Dt6@.YAYUzz_udHƦv&(vWmvz%0#Эi;DkG@>y^xLX`i7֪!iR"'5(yzYF,w;DW$ucb~*xN|N&лXIƕW}iJzSږ㋿4|{P|2 "<$\&|i@5CF/F)FVPzjaJo!ƲCԚa,SdMD ; mBl&O;iLcINJeob!`vnEc}5FMR|A~;ٓcL,gDҸh e}W)}YSQ9,a6f `(ƾw55l H}Iq(6Fvy ="lP>~ VitE hF,DH FJ L4F@o@,bԈdpZ_A4P*FFʡ:TAT&H~h ϵܸ:nYDX[P%S"P=oFXwZJK9e9D[k?Zmz԰hJ]L͎x Չ>fBP>Ƥx'p4P^АKZUHƼB~}Na/K٢G b-K$R0D_0HFǹlI`RYʭO{d]= ޿=Z,jh^j޻~i$G+F}_D 4'H5GhGVV'.bvd7*Xkj>@HLtZFJ{N䧴9 @*nNݚWVGXudA~Ev%.[x[y/SLnfnPlS &.NW 3Z|hp'FCUTxSA9{LlCP_/U{iUt{rʼn-pUO܊ݣ/_t1YBOLEƸҕbE:_p@"a,J05nG!E$YI)9r B1e` #3uO#Yce)IpP @ WaŎ%[Zr  [ֶŚq (~p a*8hbbS& @# YV5#b4.dt覇b{y}G37I#NNJH#&;cGѥO8rGY{;،c!čT6l{P"2¶WϽq>@/~0p8..%T~K 82Tء%h(D!F`X @фvA$ l "%cB(J$28s90`iTS>83s^1d( ,ĥ̟bA\@tRJ+RL3tS$C?uTRK5TTSUuJCeUXcuVZkVuW^{W`vXb5XdUvYfuYh 6 0R 2KS8/+k4^ ܁] N"uL-@ Qw#ֵקv @{#i!мJWn"E(,M#09C|8 vpQ4yOu5@dv'p\yУ`W.@*(MT&T  C2 <$D[4b;ـ5+r7PANo#v2:zҧ&yv\\O`Smk@7YN@2ddNedP2c*Y(FQh|`T#%iIM*O'eiK]Rt9+iMmzSԥ4iO}S@ \YZ%s\dIE%NGOɋ^U%UկŧK(2$L*CQY)iccR6,eXZ䕻@?H 4 oIpZ#FHȀ 4["lFUrjWڝZNv+c+Xm44m{ *ci՛n8+@ ^~qJ,rHg:ԩuuЃ ys}p  # ?ŸA /zkЍvFDmFgMaO{G=7M_+uNg_˿%`8.="5 V:Ad Arx0!P2>P!:~ȊO+q6I7D e5TrlqQv^<РcQ'G@F2 fQ4ѳ?]ژ9d`ܠu?yM]ϼ93Ilj*tJeTY$+hq=[T p;2-6c&21fvC!f"y":k+Am#1=4mv$K3P':}vK ~0PB'jCM%ԙaQHi4(}p'\)pG\7-~qgkx=q [-ԲLj^Xq^(ZwǫuJVO /7y K՜縟8AшM8Cj  "85!' lz6Ai?Q)7 -us؊77?3t>@|At2AAAADA B! iT=t;Wف9&D+'*78+RHm꘏Q;1p%@((T9;,c*쩵-5,ܺzA X7;$ۀr{28-02CT<sE<c00,D ;Ȱ  [xJ$10&5 ؁.h ZCY$q 哲?̩*",-ų[  123d#`g|339#0QDZ$.H+H:GR4'HS C\??TDz`5[z55Z3^_ 9tR@ h ('a T0ʐH~Zǜ"Akk#ɲ7A}T(8 Dh+BD8( s?QK 5)RS% hLebJJ_ ePpQdOs,,=Ⓩ Q U R"-RWR#MR%A$]R'}Ү,8QpPO0 *(eǤKl*˜9RJy (`6,Z +%:ي/ ׌KD;1O\ wI7UK,*SDE8<%Ȉ/!VBpyțD T KEN*Ŕ Q0%x!!"tGG[ΦQ\ T Kбr)x,V{( Ēfۙ 0-职A[/7˿p40o 5מ^Q[1I|@ :m;g@k@Ŷ @"X؞ьYѮ*-ye@&^iA]Z3mZZkRZ)ZZZZ [[@Lx9W1ҁH@ , Rw= #ӽڛ;*%[RvL%x KSJ@0iC@Tܬژ*T=!ۓ̷|T<Ly DDLc@?dB.YdCNdE&`[}E\}93X;n[*9:C:4CIC3TxJވFK]K};$6=U "HU$i P^;7e}KBgNʭ(4i̥j|n e~KjSWP(/\*f?XeUaMXSPJn) I Mg^vg+!e͡QsI.X㦤fbт<(LKciDiiiiJij%{G& #jd,l4=jX*(RST>1VκY~]Õf)\niZ6aF9f"P桴UN뚎ff6)kNbjh+fpq.ÞE^gl&)xNWxg^*l%g}g2Xh~J~طvlԿ N Xʓm%h-QeҐIhyn^dKBiuι6 jojo^ooM!V[[:.jEjH ^TQr50:\ AхƒӵND^k Iٚk+`膞]<m.UZ M^æDVdlfTfӻpRU!B߆x=rC$. uU sManHF sQaD C{am׆mCn$nΧN1wj\QiG%&v⪘?bb,6>;6q2oeAc㰰cxov=tivvkvvmv  p2+%:R \MrONUp 89:m<==RqjiOKQ={"T$U0UTUU/i9X^ǃ$E:2 XG)h^zR!+jVz E!'g+P?5H>41jA(A&А ?Z TP6ݞDVOE5A F$@F7/= a<E~YF('T@Bt@U#PB$(ĒR,>FF0y%a7Q r…@d KHH^`(DG zh# ȉN,$U1h"` vg"aAy`6Hf+y GNKY(AДYZrC23}*'4X6_Yʀv"B >ScPOЀ J эr8Beё&=)Gҕ.}iHa*әҴEc Pt6iuA*NԩVa)C" 0@p^`, pNQ]J(aYXQbƥW*ofͰB;0MNp3V+\Ѱt5i$i`9::(twtgTB( ) "]2pإvmQ[N*I1H,/-*ھH4r! Bx%1"pMT0؊RjK!A&T)"[!N P[qu->7 o9 bA:U^GSb6 0%-1sKI<1,d!tF>2|"+N~rGȬjV@r-}blqsu7EF.M,՗NL: \"~U=1(P[ 8$,v0Tdmmsuxu؜O[,\.B49YV7AHϤB[Vf; '|pCVRh/쮔 IW+J&`fGl]K#nEPt?eWZ;\.LH7W;V{Tn_+ Z@;Ff2& xdbE$nO4(rŽ7fGL6UDg!0}@cy (<8zrA'-G2)-9~aDUEN9"(b">()bN"*"+*","Lm`rɘJuޙn^"^52DԀqז"L @*䢤a@y U%|\U OTbÀZ4B\4Z=Q"`%aX#k_N\k4D@MFe\FjpuAND["6 j#E@lI#udH B(D5DXMZtHD󸠇G r ZJrphASО ua5vtX_FC>$\-Fc\ERe`FiQNxaWmpdUz ~A%姠Kea⁐vhwRGt|yT=|Ї!%WʥR (݉&,"|uL_A2V|g֦m+ަn&&o&po'qgQš0'ncVLVTϱbJܛrc#T,uƸNV8r:[!JJSgERM0Y e lK| @M 9K + I֠<yT?U'gɈʉw }&T rrA LL jeVՈp x ؜٨ _ۤN͹MސA NNdTKX$ȎqyW> $(ؾQTHE| [Ooo^RR>pjnPujaY%=OhDd|isX&@Y)D)(VxuQq%!az-N%ڥJ &6Rn$X1Ұvt2bAR81Sؕe/0 Y M%63aER^S6 7y88--#;檶{ԓ?j?+AيA>1Ի>zDVlEaEFBHI.-FL=V՚^nmk+sT?A@UrM'6NuL pպWXՇ˄@@Aۮ\̆ ha&Eb5V@nQZV ianDjɚR`ŤdؖLV֘%jE@Punޮjzk.|wxyW68! ΄Fo:mHIYbX2*A'. @* kݩQ#aŌ)GUm/00/pq6>|^EhiE.Vmپ֠xތR/D>3??3@4[dH 4TYi4bE?ؒm0pg2朰6U\Cí`잻j@p0p`Artw(7Itl0(4IO7D_qiD_pHiF.-0àHFOSsTm pcS/)`E|P V`# GrNF7%V`@ =v]w*2BH!]uIJ\X/-?Y.&/;vP ـu!a5,! N!*4S[s,$&vps%%DQт93x3<7yYyz˄@{7|Ƿ|7}׷}'A;d y2 Nl+/N0Ggv'G~w|(d6K89ڀ]::4"0qP'(uHQn<5B*$C(KYbEE5HZZw5\e/DBTWKLDJdXeH#P8PU*.8QGvX/k_a$Z"Z+j}96PmR7+cvdڡzeG}47x<7XEawWl-|zՎ:7:Ǻ:H~KQJ{ESttI@Ɯg`EWwwEp{Pv|ҊZ(~~_ 2dlJPSJ^ޞK;?~_|Ɍ̊vnQoum:P(aT6i8pn*i4铚M@&X`u^  ( GeNG:7~9MNB 6r0t9l׹}(0.'$ 7 (((3r -p!bxaH!z̻p<@`Ţ#)0>^H(P"1|Ox(29#  ˠԡ؁"r0̣t/;b2~ 0I,5N?{JP0KȍuУ%TFZ S89li XPb]V8PC5.NfEmr=ܟ]v},z|]~ >>.l$d88bJ<L0=:e +@ёZf2-l3<94A058(0 (Tv4 xm+<3H[ݸ X碛];8(hgJOz(38XZc&BH←L !-zp8vl Dd[PB m,#Ĵv 9DI4EOyp8-L&lA؏N|=rQl>z#$dJ%q|)Lc$4iPBp)Dd0#hG @9S} ~P3AA`BByQiӛ6Po)* +H!'V[&՘eez̀I3OgT`*M(0P(:I fhjWHvgm@SU]|s"yAsP0= @ls>PJ 9PA<<#LD6(A=&ӝ<Ee1S̃b6Y]A> a8ӌFPB$@ ( %zD~KʩOɅ*'(UwK@UkR01(T M0lC?y)6PZ\CdpkEY/%vSRr) \h-Q$L@jU"Xt27k3@dp;~$Xk?'?$be{N: _m{|4`BƂ)_o \`4 V`?0HtJ}dUa 2s'e&H4c6W_9oildR8 %@!"ZT퀁\-P*gC0(v%3Z\$$Qrs3V F7 @|pu 2mpr)A4&;m.x#s~*rS5^ڕ'] q` C0ȰbJF3ȭ\@5 eݫ8iv_, @w^p炄L }-e hBP9C {"-"Xklw}b[J{287A (Pd`f .-)8Gq^+_˼`N[oe{ Yrf/iΠ9a&sAЉ>ˆ c8*$Vo),؄J@U*by3wL+qGp ^Lzd!3v N3ՒqqxDW@>ms4Ao|vA $dmΙNȆ6;;QPϜ[yK ࣠SQxXA"Q*0AKtNf2y(0 `q*mٽ@VA# * `4lTP!ęna@ T??@^ pnb*-0ͥ,^$>@ **oX-Fh P G0Ǽ|HDNj~G s  2̫}cPHp.PKlOb0Lb TAp@D٘cmLَ(FH"DQO/$ W~0T `G˱ OPqjδP-yj͖M HP ] #LE lL' v`R  r6zWK;o:>B Bb $S??@O.&@ @A4+f Г9Wb>b0f"Dc>B'$P̙D4Ʈ=%R``R%hr̈jkklĆl̦DI+T=c:l/B :&$`*r&{U]׵W?]^?^u]_U__8F_B*iCvM!b(3K;&TXykFϜIXIp˞KG tb!H[QpSCB/@O4<T¥Th#dgMa!jENsNõ)uF`+K?O # Š% P~6!"n5(.)~ k+ +T 4Se Uau8sn݋V+jdӉf!z@D56~ъk빈UI#sb2i. ,&'~w6`<ɃB2hGҭH3[։|'U1;6ZŅb6${FCbPQ }:sfRS3+)<ٖMS̓@ȳMSGTbh^P{]Da"s8.k"5$dXUZpԽ!6%R~o pE\/_#_4d0(V*]_.DUQ(]٦bKB#ϛBFHdyd e]51|n'QiV시P(6>JG*hzhWrVJcu.0# %U4`sbBsl?F  @"E -*Z1ƍ;z2ȑ$Kȁ N|/3Ν<{^LrB!@l<ԧҥL1@(A:ҭ[z͹b7htル> r%&&@8=L nR1Ƌ2.F R`9IagtH1:L=0HkYja^Ō' H0S䴋LɄ"' /'T0!rWx`8lq?hOJ$`Ɵ}X5w`"P\}9 w"h4Ć U$c2Hc6ވc:c>dBIdFdJ.dN> eRNIeV B "W/; GEq&Z '@PjBܸCG hXD8 G]Ѧ7@4a``AԩI "Ѕ '`;(p L&rHk^:*icxhhBAT0!>*apoT& D^r@n4@`q!C ;a@:EHp PFM˛ &܊Opp@鴇?ZUV!j tO%C<;AV 9D%,$P,(M6 tUA PeVJdXc,h^TЭE;׷Yn dY&􏮅iM7ݹɰb@ Ƣ1 iLb6@AmEZ)uoQȁ!C;|Ww g4 xȆzӾb{#IO|/|;GuOO}_}o}~O~柏~g%ZvAƴ's6zP`6+Fe!aF'~=pէ@"[! bɚ_,`D$~KB@`UZ%- s3&BЅb+9# ؠ ɢa,&A&<B]q1!eaz`  dB:)j@n@f$ WL`rLAn̫^\үrSSL-@.oP 3 0 " nA(%nkPA(:H`38)T6lkBx 2H(Bl ="R1@z¦`d?@dP lM ,"A&Pa6?0B(j両 7@E#7Aih2J8B2;J ЉL8)DtYJEPS N;  q怂EkM @T!"id*W $Q r!Lc BF@L0͹B)iH-o٧IUeM XPVBҵnX08!4"`)ȂM"77 BGptDυ`fn)q VJ{E`'9 H0$U;p@Q(C$Q5`PpEd ~=DIFqztEq| qYxaI܄ @A /8Ц`ǝ6m `a`:TD^!Qƛ#@: E _LZP aDsvZMfQ[PV)Ķ  #wCs DE\z ;  6J= $?PPaC0aIv ctf @ Co*P6\ЅX2][16  ][\i@R 06Pn7SO'dAv^APD^ĵ-,0 e8ppX MH7W P,\V 5D R(#!HGJҒ(MJWҖ0LgJӚ8ͩNwӞ@ PJԢHMRԦ:PTJժnXͪVծz` XJֲhMZֶp\J׺xͫ^׾*KجΠMb:d'KVa,Ud`* JY:Zκtvʖ{@6 r@IЃV" Vdo[[(! fjo]K\=` (@V12w΅.l \bW-gӻ=3PV 0z c 5 ,8!eA Ȓ 40 Xֲ +B:duP IBL"F:򑐌$'IJZ̤&7Nz (GIRL*WV򕰌,gIZ̥.w^ 0IbL2f:Ќ4IjZ̦6nz 8IrL:v~ @JЂMBІ:D'JъZͨF7юz HGJҒ(MJWҖ0LgJӚ8ͩNwӞ@ PJԢHMRԦ:PTJժZXͪVծz` XJֲhMZֶp\J׺xͫ^׾ `KMb:d'KZͬf7z hGKҚMjWֺlgKkͭnw pKMr:ЍtKZͮvz xKMz|Kͯ~nm@!,b+ Ṵ"&,`pAh3 h"Fj@O Jp1栂"(VpA (9!,c) `3Vb|~uh1t3h4c %V3 B,FFV$`cF,h nhuhM4>G'c6 ށ!,d'(A"1ƈ 7HX5ffL(VhG {rbO Lij> 0GY61"Q>H1 5fcbK#zPAfЩʟЁ ˗`@! ,k!H*\ȰÇ#JHb1@H)h CI2"?^dIit(G \$8ԦѣH*]* K 8U?1$F X^" YBPipGK `Œ56L Le 1蠂 @ #:^)CWԂd(4X2f͜=&]U_XV /@2 b b@" qoMڥuk̝C: vI_Ͼ="#%X"S$Q$u E<(ahEe|]x`}Q(ucrq CA!‡(. D@? a E_([/8P6HZ[CPF)唸MA Ji%Mq%4$t@h暄mux s |j衈gs HF*Ha,t fpa*Yc1@)q* 0t +,w4{i"ܰF+m,VX4ƴ+.S~ V+k,l'o@!,apH*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXarʵׯ`ÊKٳhӪ]6&0]j;F[Tϗ46( ;l(Be+~9L0AF<8v(CI30=\Ï5ؔ>meAb(̆Q iӨ!(`eOO yvPEVˆ1a 0! +F`4wށda@lp7 -aVm ) ce`u 1 'Z  +17cYvSl` ePu{(ƒbYhp zс Rm'V'F:rL8c԰u>ƕklVB2y6aDSd`(`XJfZG! dlUcXogtLhjA@F),lЊk1}A;2t\YI@/!Q?(](k;Y lPFk̐$0 @C_̰ijt"$ ut`T%!&LMȰw8 W3o`0``LIdE4nLJ9ECwذy1Zmsg9{a-noKsutm)% 䑂zf*4!|qea(|` 0>yjkQiTVLF" <[-qGDpaƨ"\f\ 7PԝW!>u>ㅑqx׽rYƺcQB0>dy;KƇ±A[tXBޱ 0.0X|/C~.lS# =```lK0~h` 62!  p*=e h%\t`EA 5k{p4KR< O 6 i,z|If1MfX n%- ~ Ŵ b8 Lra#Yh=`@À8ȰOLx| 6mdcy2iJXd8x0~H/=mO($j`:heq dƜ AIr,Kc:vev9BlD% @d @JЂMBІD'JъZͨF7юzT @?+ђ(MJWҖ0LgJӚ8ͩNwӞ@ P?R CMRԦ:PTJժZ7pՒƀ2D@T5CWVj~[;`(BU #TG(T$Puq|0#C +bVBVG*ZA4 ;Haq@$WU@dfp"A`((HQ@ͮv`.@ `$*pTtCPZ_$ " XD Ѐ UVpg\@0(l!֮x` 6 \$A bz(( @b۝ A, &z`" &@ `& 7ȁ ^0A62' g }/U`峟1 U30P*HT@|p=#`A Q*(N#yэ1iN6[6A ^0!Xp{`wn1N!_ @)~@v`7N P[`HD7Yd)Te &؀ut` _]7r&=рBJ#lhf'!3&-  Ou-@Ҡnn-ʍr\H`wg 8rV5 o=A\iF0VL V*5Ykp @A ЂHd)PsM9|ě$PԫD{NpS$+jٌsBx[,(@ Q Pr`ygNYֹx]$!Bmg~x?\'`` B!n-> ˁ/w& F#@e;WR5bs&(f=0EUR)E6!^@,6UZA`7TH6-K`V!؁m+azb#of[P6/F@v56m:;pچ`?Ie`b8dSnelaEQ%@J}mXvxxz|؇L!,!H*\00"J(3jȱǏ CIɓءJ{P Md$C1"dX0ѣH*]ԧ _Pͫ _$`C:*$ӳhӪ]˶۷0"fL c# 5y@`#3pq1ǐ#Ku&ZްjPdK!w Ec.Z$$hØ67cF2 kސУK>G4{؀wlX ydsb˟Oߦ1V:x??dpPHuq_LT_؀BUEQ'- 2t0i6!w RB {_`Y(4A2"am 0 F PE*6䓔6(Tf߆PbD MD_9f E_D5)[bbB)ܥ]b( IДU-u;I]裐RhDj|_qGGD{E4bꪬbf) ; e8AqwZq21,6T46' yFDh4n`ki@vyP뜳Rf̕jLA$` Paf_m~ZW)OXazkAl,$ıip`m0o/G],)[n@]22H'L'ZMG-TOAXg\w`bmhl{Mvp-tmlI1CRQC 77G.9L @;Lnc d褗n騧ꬷ8XxP;& -4gpyF`>,`8xgt15L_ 4 DO(&)8$KP@UNrI8p} IB7tAx00AGHJ;$3 gw NCءG @7 !@0q.$ 0 |82 $hF14($؀ xhG5Fa ;0m8؛n < Bhpq&` $@K%WVcHG6 'ac *d")0@qEA +2t#`'& 5#'p +9A@('@"M )AᐈT$8,! n`A؁}ZXpƑGNTFj`hCZWTH6 98P CD(֊B.pxQ `0 eX4@p x$(BߎzIBxWFvTck#ء_eAĺ @ʛ$M8RRР^@808C ,ڴHa I8 $Z@%na`x(+'i0>!4LLX$pN .!'xG@#| @lp 2D )a ?0Rx(V"Ta8AM~Xᨂ HB/ ! ypj ަF;J[R N{ӠGMRԨvcGTհgMZ֔\ʊ^Mmoԧ!18YiV:{ @йZn.Q;]9 c;.4 @M'?(^ڧ-jwzw&P=R_Ph?(pfbKo_qͶr p@|"A DMFSaK2p`XMKrWBՇ D'BQ/&:0*#btZXAeސF{c ǩ1wG@ |1|@ A> QP'Pt; f1ՉN0Ҧ[8B@ҾrHz@8ۯ zPR B@@rH▮8 BZ7N5`$1Xiv\>-7a ՁzUP!և}|3ZzKL~FO4GS|_OQ5X.ZDSdOhLIHd{PI?@HcD7?TCVPYL#  @aֆ{|8858|Rt6L@j}҇t(b޷8$0=MgwZ58lTNu@Q5U<'FU`XEb[( VFS6qFTJERVq9MxWyWt &XkcC`a%WM`4$f +Jl4 uX\9e=,Q79&9{B M`g_GG@# FW}ZҤ]GE@*>/fX^ E_xIp//\Z]E]0&~;z(^=@@7Bc[\i__``c0!% 5p$Ւ)HemvEfmFa& R2 uVsSD6O"@$|$hT9ZA'ayۈt3F$je7|#ofa);pIr}Eg8SVe0&JfbCm|K wflq)jdd7Fgvxg]g~h9h6jEP'uHh8Yu]cj*vlTv]zvqv{8p/r~(,ǵ*U7q#rãtavUtE 984`89ss@GB7Eʫo:u+V)xZ)Z@fE:o8qŨ`FʨZjn7j7zΜxW*yZ霥y!y^ZKAPĹƘ|0||r|̭Ì#I}xZ)g~0֮~ڊZz b`;S ] Xư*T5bK'9![>#S5PXgUsC8K aAMIN[V`Xw8ZppiG@tAKUkxaU}1VUFhXhpŷL}u;iǝ ո X3ܐY)p]R86-<]8(Ļ%G-(}|ȵx•ikI0޻载^;j0 {b+ْ/ɾ79=hGXaڕVa;8}BBaW`Á^閞难>E.V@[-jʣ>>:ӥ˨ɍq|+ӡ梿,VnC˄s+8*q6լSuaޭk3̄:sE6_\#ϋtuR8AzzrDJi'mÓ<8Ѝڧ/ł݌xx ytu!yzҪʥgzO72x`$HEڥ\e̙5?KW@Qcͩi b[a I32~1jk ~c *3NK l<$n阋ON8|4TPKC|0(ֲyʠ(@!0?@ @H/CqDK4D5EcqFS#1JA jË@qH"4H$TrI&tIHH(J,rK.˒J04L4TsM6L^i: !ŤLP5@IPBT3-@  r"! 6L( `@F;}hC%wXb-V&eV[aR 4Bj($z`ْH"n";%(t, w># E!  vm1LE6]A ((!.`#Qa L(H! 7r\Fo݇D#U8UQbr_2=r6aC(hp00?"=>]+ɔuB]B &("BqN !n G?'`NMh 8(¥Juq0ܢce>K2 $:0Ɋs l0B(|!! F`2PW"0+W2ዯJ"h(t`6Қ 0a$ ?}!H #@E(. j 5"- ؠf l;@ \ F`Yx,IXDAť U> ,6PPbH0 ^`pZHH P4zCH lQIT"E'E9Eq>!X#`F: Ȋ f2IIPz =LRJP#B\>+90Cv N) T`#aC0ꥃk8H^#Jt p/TJ8F8Ő  K#!G C0ν%ɜHH%MpWC 4*SUz>!KТL"Q[ʌ" `& 1,d \6 hJ#ٖW6o##-婜C3#0\` R0I`}S T>a?W3Ğ&hA ""4!TBcဆR2elV5V-"sa Q,e=YІV%I6Vemk].mmm{[rMqIbR[D=PInn*HEDRۉlS*թUUŚհpG$M!&hhЁA d,d Kת $j$ںHq,,Jt]"/zً.z\/9JK!0xHf!D$c>"@R'3 EJX Q`Ռ Y94Ah4+jS]5*?i Rؒ 6 qlgKM .p,=D\ف"#]䶊u;Rkww#g<)-+kjt@4HrovZxޓ0|/A_M/~F_L&>_ WY&3 C`C H x ѵCW2CnC$Az"<u'!L,-E#YTcF, @`*d$9!PH>~ yD.|dX|"IJZp0S:DJTtEK[I%0ILc"H$eBfMx!g97O@t'<a 7g>P<5IN&r Hm'J`E+\ѨRe-&}%?(@s)X2'246$Dk)#4 I"4&ݩM3e5с!#ɛm\l5'5i@۵`sD)6QG^Tg3:67V-9Y, 677#rC!@a$|k7!*s !""!R"~7(! I"<;z2:\s#-&ɸĪ#8 N+9BHS$X9iH&OQ&f! @SJUEYB[a: q+cڻ:ؤNںkʦ"%;'q"'9;|Zh$${BsDR(W2(K(c#a< 먇绎xY̝@ k=x=htK)Ƚ!*{b ;G>h>{C,몯%I>D3k+ ?2"+Oث+ ? ),=tM˒ @̺P]PmP+IPP P =P P @ԕhRH;}) A'*쒈.RATqHJ‡B%_# կ+/#B'% ,<1C…wэ +KDCSC[ѓpC[8L1#aB#&?D@2QĝSG|2DϢ J\K-DI35+E6CEQAȇh,؁"pl٪3U155bFCxsx-xJ;!X4kl5 5Qs$Ԃ$)Gnmt̵u4^w6Kz{ܟ|l6" DP 4U #Q $7H]%Uw`#D"l"hIk/ #$23L5J8:0#HneJ!CB$d˃Ⱥ%)0tM  :UY\KxxK+kz遮jKdn&3L#̴SvzIzzL|LL'<͂*Y@YdT9٪Γ9(ڹ9; 9Yuڳ$A>:_Zz Zfˮ#c۰s´\Ŵ[L{}ۿ<,\8ܤtѬ((#,x ǐ]aFߕ(N]c]**> >}*+^!kΰ~N(ݡϼ2OM]O%OϾr?4,r-l"_0NhŎlɞ3!lʾl$ll>]%AF}u%LP`\``]$$€kZ0&f"Aa*.5a1S2̰34 7<7)C٘+fZYcũU_B_DcTXQFa0VOFVڙFfKdjeN6:3H&4@ ML6Gp-ev͠TsGz<Ǒe}G[G\W^6`WlpHd.eHgw)f!k6aɷAgug=l\@Ȃ^II Jvn;zgEJ?"AY{Y|ٍK+ʀhfhZZZh˭˨諃&i&̷%龣[Trc- `Ap[z=Su4f\p܋Y܏ Ԧs8=Ѕj]ףjjž $b뱞N6kD@=^ #>MkndO;=l+Il,Ʀ!MzzΞzzz.}:Q/z0bQ;H_֖+.QUmTRfRV$Ҡ0nYV])=i 9]-Mn{p=q{X(T o(By)2U}71b((9(@daoɎ%2,'SCY!uyAř/.>p*&Y*sp1M4 Gc  O8GHU|yZfPd!8䄏.d$D&v1P +AE >qb&:qEw'РB-j(R @Ҧ*!F`U/x$jhTl!G6 +,:Ct-̓B "Jhװ]-(˘m8p$L\d$g" 84̋I ) A!Cniu) 7lMwPC԰!P 0pZ@pR $B{@?tAi`ZHS$0GnC#XqYq F|EeXy8A CaRŘ(1\Ep?^B dw\!d"F"PA` AmQ1af&5HF'G~ vrH|;t@@0$$Iz ^PDR`J @HEd5ABu2v =$q<@Z E@e EצM./`.PߪX#*A/PB,ЃE;-?@CcPC@Z aB C5,I! s>!B<"%2fJ́?X jZ)'F @:%ct"d`'jdc~PQXHA@ 2A0(F+>h#5Hd `@" GBpL$EW B :D{bD*J|rqoNA@D$& bO1[8>#T|`SsG!(%پ  AUr Ttf t*8M``- P ~GiئTęOOsߜ]iH)i>H]! J12R l0;2ՆƑB߀e6&xV 3@LTvGzlA,dXҖĥ&Y9zLi83ka)ѐPYMk^Ȇ6\tÛ&&& c%9Бu2(!b2Bx %u 0 D@RtKn4^:D MD"2kyE/r7/GT2)IRą$Z2hRo4E9*gd5%(P D-QԤ*E, UjK2.G%LYed@^閧ep\2`\/}YϢ]C0IZØLlI.&25EY(b݉ς64/i pY {K8*[jH 5XI+ 5huA! hvӻ7CqV7.&83\TP"6t3bl 5f s bǝ\|# 3'rB"# I' ‹qA 4?dqI**UQ@e-ˍ`@B8Ә2̲KmԴf9A=yj 8NkNѝ'O$@FPPE .7۴O,ڲŏя%۵y؁#IJPJ$M֤Mda$N$OONP%QED\t4ǑQPLQZS \EG<ҥy D$En&iR[%5]) D*+O`-m@I 7#RdO1)217V5]eН7ݝ8&Q^bzs>uUHD @IެZ0B5T`fBE lTG=HT쑞 YIU p@\ -NMj&fRwUDO\e]\VlFb_t%Caag^gIgeюFd9`q@r0iQ`j]j@kSPTBn oH IՈp`|y s͠ }Hbs`wI_fzIWH {9i4iTa\a~eaIa!scBL؊QxXTE_V˜(iN$>@D$Y%yL+v"̒bH̔]iY+z,آ͌ Lʛ$ǜ%8vg44Z ecr#ߡ8ZZceN:Yc#У@eNcYljtc!d=BREv=d6FdTDEZ`F PGr}[iNPP^+RIzPJV,QOݡƆȎ,ɚĖ,ʦʮU,˾,,} Tzl]d@lue@8J YvkϜeY- [. 4ͥC!ť@ Q<ԹPXP&݁f]^zўBAfMf4U&mQh&"qf}^LR&f(j.?DfM^\ݦCUq̌- Tj.PEp 'ao>sZSݔt@4wΧ*+ }SoDyzy2VD{*{nY1N }UUꕀ`0~Nhքl /MUqhE N jY` &/m1fO * ( x NdA0Au9 `x9iy1 z% @@}-G TD.rh)_ߙbi.X%I@Eb)",'T}X!-o ׋!","' t %f%d(ҎM @j!1K .,vjجo*00jj1FMY:cm0mV#bcM4U Ec茎L "Zd& Ы9s9BV[CDD.Ud8+KOqGvE-sR\le,>7NJ$3AA=B/4CWB74DGD͊\IOLVMVQґ,N\AӚ%I%vϷ "-tJ%'ujuPOmb|] /c]dSP4Y48uW9a2.r:n=S:YSk@lb.٤ 6".oJ*gJHLrSK9LA2FZ GRX5/CGXQYG`vng\ܕ__uOhU ̯@onjjdYbn,`gFVVNw$tr NVp W fptȏ((pkwJa&ϾV 0w Is)~qrIaؚB1YF@]smm tq&؜$q{2@gT:2$_ ""Rr*.Lb ''0RY3U멠,_cGrղ7ZAq+3 :~1+%2c3+45d6@7#c.8+9얛3ºnG.H>s?sOtLv1:=:;lE4Kj{LH4PXH ߐWtG$KRLt 5t\!eւ[njT-ʰ%)_{`Sa-@\5JJqy5C5bN.@I5&ju D dyȸ&yk`; b5ȮJnKٮd]g6~v vZ/yVy6 BUkNlgN6o6ҎTdP6)Vr c1wNVbws v,/&G@o/{s%xuw!" GDO D k PaÄ -/P):R醿)[ѩfАa8ӯ3ؓC۩S*[&>3Ør!wb\YsY'crӪty%yD 48pXDD"I4yeJ+7Xe0& Iht G9xeRK6ujTS`)D9TjؤRxbDI|1DlܔVAlܠ pIUpKhP dE"?*)jz(|> } *(eg!_ AgGtjX(;lv6n08;*"]7ezw/%Lɗ7}z'^{׷ٕ%h(9s*V <\|P%% 5ܐ=0% E<U\]@B :Zh$%QB!)"|Izı'saܡ2+)K( ` '| r;jh3 +$C "7 @ㅨdS j M(L ,N@4N@ O$(&D! vhU L&}mJTOK VW9ح iP(`g@bD!=t[V"mGhL((A"+Ps@q=C|$2`I`X¹T9RN" %|!-e :PAe 4$6g{PNaLY naY _v)$Y,,!! LJj l0B| A`: C"dU!LS{o; b.&`bsAB$L$Lv*It$(2Sl)U) It0L2Ħ@eiPr'=O~Ri4 MJQ= %)D5R.Ԧ:u-\g Vȫb5+ "!k S:V,J"њ- h[,{K]!E'/zA0Ki 0$`Cְtbv4]%cB6,eGXdPDFkr3g@ь&G:ViQ뮄Vi|JҲMm j>97n]Zp $8 ˔Ht46Jw:i&u4pfW L'} x ~HgXf=`O"⑬7Q|;ΐo~_L¼ -8 Nc!_Є Wp{ kxCeC@<\h`!шH昸`)Sb?̽ =$0>cט8lLi eŢIHC˔`DIV&;P*[Xh%g~J!R4y)Lb\fb.Ju5o sd`&A "No;"9Ehk]"x5>FS~@p+=B"uMDEA*f>Lj4$D(I .ELic}t7N4ωzkR^VCW5?=i_{gty{}_|F2k%"(fWA"D{^ ,ID%+i&11%hiZDB A$ur ԿJz ߶4bQ"e"Vb%E JeRv@Vd%aj%l(+[$"K D%]$b]A`IKxK #_^`t, b0F 4:fÎHeLd@CZf^gbfhniӣHǶFA$F@ nnol@pH @eP' @#r. C>'vtP' $^lw@@wwψxP@ %Ne(zgM-|,˃GHN1G\Hf A,2h:AX "! 'MB`H٘͆(ڦc d- ێ#mM) L+% |j͎hv )/Β0i4*N".. 8#odB1EPCT9ӡC%*69;;SC<Ǔ<;&@ү؏R P$B>b>A!}RNE"\0 0?s@38V.reWF?k$\4٫ [r@v^H"L@4 pJ TBK Laa c ϴ-lcĐD M @ D1eBPgPdb%&~*jD,h+1eLRm'"1Q1 px!& $ OqC'GBZ4<'M#_Qz΀1zg(gk&Ѩ1ټ|*|")@Q}ڱ d mu$F >浄Xȅ2[mL"R[+R۔ۜ#2l'bڍS%TZud\&o2r%j~R→Rf)Y)aIA2) C r+2J)ArraoN-ހ...҉R5-b2C>gT00o"'s&v4R) A*S"֡B33N">3wP4NAֶp $5=b3r; W6/ rsr#pj8GW8C:!zSb$@A $D ϢCW6[/b^8tAC) QCE*'ՖE! tZ%j.kPGG7HbHUAL}-(p IeL@ zL^pA4L3M f ;MYX¸ 4 5N=LO%e(^]FcY0iPJRDRط: SfS;@u!rT/T7Q b&VlBlUX9GWgtjk$XlXilwϖό@% BݒZ@Ҭ1|[y%1$J\G>Z^-(^U^QAh@D( D`A qH!M[a$"bGb/b5b#?h`M@/ry&OdY2lM6&mzWVZvt2A ` "Rf#p(uzv'7Nh]h1@qgO jY.b,2 dڒ,k.l)v!` 4&׆V6D6EttMxSu}@ZW_WvJPr|w5w;7%x_Y3[7E?C{9[K۴7L(B1ԕw%9H jG0 M$d=8|q. }d$M$LίLWL~Q B>${@`~@SCA)8AJ]bUqZT2H -HI^ ]G|` -L3%}t Y$t#lTIt@tYf"FEaKP3|@8 XM' + /,< djlX7H$ܦ(-@$0@  bH{Tu=߸u>$l$QTT$q@ 8ݘlAFP5#V D9̒daQqjU__V"[HK$b2@+^qMyʕH$u 2w %" : p^sQ٧ Z-U3@2a`,2͝ 'ZZR viU}t"Ҁ'%.Cj{Z)i_6b(1@&nwrlyzll … o7#"s ~6#`8 1Q (N|H"H%634U *,ĺzкArE. dmM 8"pYS38s/AjsqNn*>0vSv;/@a3$W(%,{qos5<[{?)x/?)t{7E%7o@IB}7~GA>t/$¼X)֛|۽KK!$89p P 4 vLCIPHb ఑ >H$<2ʕ,[| 3̙47sɚD_<ҁQFEĢTW,8!dQ0" AJٹhil_ tqXFP *3:=;/ DR(XDO . @@"t]~4TvLrg.0p@e0$C|3p <\ܹ$F|TeDp07($EJE"TY1KG pN}^&RCx# ѳJ wAa Fd@Ta ?>*pЁ|;K``#@&HH=-h( _Hb/ ASZP-4l r%ܕ6C9N' A~wqLl35>}Ū%%fD$&DY,ψ4qllcqt<тp@ r,!c`O1 b#`%vЇ$(C)Y%@E*=3hVҕ%>R3E.:Ce@Z. 8Hdwl3HS5k6Mox+$E 1jjt$;ucRNR5gP. i;эNU[!%hd#ή4.})Lc*әҴ6)Nsb%l Y%WBF@PHMj'jk?)Z)TTU֧+^.ŭe5Yњv0)Җw\2uskHg:a@usb'9N 9087,xJsTt|`@̧Ȁ}뙢 (Z$-Wd `mDĐEH0+4\C 2yh} Fsz.WXv{[\Ixn{ p{-+|'xpK|'K"LRH-&+[R@*{hR%-\3`[<}>'&Yƿs%xΪ{ "w nχLe"AM?;i62(OP4ͣSHD'UYYT+n "!H+!\-s_<8uϰ8) M5Q]j&g9 J{^XUG<= N35z^J!a␾(#%} b,$- -/k[BW+&2@ueg r.|'8'(r%#r%"0EW-U*B*_٥[[+]^0+-u_,"-MeA0^.`9(f9 6Y"yas0f$0#12V17@0F'+_a2,.80f3i3cDF4J4(6A65E@dX5\I6L&N6v8f_FeZae=5hDbe\6df:v8AfE9W*r9bxv:E:gg;C;ϲ;!!h#,`V<<<sh/F?3kCIxlk>CfDll6Cl#ċB/lm7t&߆TDAnF6n6E&)FNd )I pɑ !)eq?INLy)y$I+#!*GrsDTs-9Wt<8HLQL`qMPoa?G-HɒutttM01u*Qu@L&'v(dv"AkGv6w@!w(Hw[){QQ'x R/Q@UN%8CxEw,ey'OSSYfGTQzqzz[pUY+NXn \;b8VgV5VV{)q'Ww}|}WXַ`}},3! h)+gYc~~%pV.g&ZhN7'4[ H_[!G(5h\iH]I-#e_)7‚%z^1,3^9Y*4Z*:__>`@8`fF3 60L0ON~vaSa#VbP5e[ʀa{,29cl:1sc5yF҈K6rMv6Pqu3=0U0@=P(dV*HShk&9g9u6S:&:hҊCnl <+6COd  o+K;˱ !KGH&rުKf(%''3a9r9 sK A&`sAsCs^q@5?+;U9Wt’Nԕ1t[e&PGcPC0 /$vTvdi5})Wwz)Hd{4xxxw%xhix ?\5QEiToѸ:[=2Qy8y)yzFUJ&u4R!bbIdb{e{{ω*!9As|Ikک/WE-}e{!54kW*kD)yM~KGZ= ZZZn[p(GÁzRr;F X(X\G\õxU+#j^B[*'P,+.:^%3EU.{$02ۣ?AjCZ=EY"`E/G` 0Q*aV&:1h^1c$8"b;-4)qcrZ dB |xd(486P787/Zȅ]e''#:_]*`cf詜ȟtfwfzggHC>0_8Ƴ<_ jsvjjZS\l>3"c!ʆ2pخfBEm*,*j9=$n8DG 8nD ǰ(lt,MT&I}7K1kr$ 9J:ɳ2G*,Ds{ MJMEytTM/ѵc)ukh{xUD`rIvtu~++uvwQIki|+ISU 'T1T{GӛqY'V)~\W{!VO%} X'X#}*ҽ͝g=[~Br~$ Z9R\rǿl [P' Z* U))\\J'')V$7-(|(ºb=B_9܃;`AMքHQ1iZQILXlelja,=VxB脧H|e3tZDŽzWȧd\féEq&ɨɬVhGJ<ʫLhϰ=¢<,̍ - 8ϼXA\BhB&d< ֯VKmD'1Y}Nny燮7ަ(R94tJ(k=6ҳU=Dt!m=W)4-RKVH;D/1-3-Na+MJ[:x(cGtOw|ԋekTya~xlE-ՏԢNP{ e)Dg}֭֗ThM׭{y}>} 2xP%ӻց{{ k)ϻ H.,띚 "3R)}Y~;ZGYRm& O8(Y'l+Ľݡ" ])*޵݂x_m53Wp[q)2oQÚb]`K>=KxTzH%Tc5PD!o)!nkZc ptexƫ~d>U?]:;*)<'~fl.2oyf{fɱ:&@i 8l@G >QD-^ĘQF=R4H+ CPc-;JQB !.}f =8 bM+$CV6채]#ȁah8@Rz ۪pRÍG\yo2+r-֦]vݽ^xc^yݿ_|wMOq}0@/ 0 nrz B o&B?$D BQ~"ۡ(( ``W|p5jq;jP2 "d#2>%x#.b05DL! *@+H4#.T.C64 n#`z考-0 l0B|()衋hHGU(bzh ="h(xK> &`oAB$Lɼ#d!H c(pJ(еpK+`f !h-ي@há jaqC@ kf~P"Har~" (0Hp( c< ~Ж;7b;A т@ osy=@PA T`P3+^l@4Da:AdֈRF|9X] &0h,A *":Z>&ɀ&8 0e P!$(BgŠQ&( T`a` z2* gx F!U(P(wl 74<CH=c "Z80,j mE~AcZ\w```=Xe+iY#hHp$Ѓ?h0@J@HDG ŮcA 0HD r FFB433(IRre& Ԓ;AJQ,;rUf}D1hy :'/ `C Ɲq ӮX3| ig>4@jVPL(>N9T2/8)NQT"Б|:=r2ժWjVUv]kX:Vu@S`UͺVխo8=s ꠵!B}ȈҺCů;ZHLУ;UR+hKQBx+4Zg'q=jShc&4MLd2Z)8!ǯR+D&DQU S:{gTJr'ȊVUv+*Xbձe݉J+ orUk'[ַ5.][Km5%x%X$We_ Bq+ZC.g6bX=dKY2,Cx8;(6C&'9;mZ"q;H`/ra`i9e}Wן\w Р*@] S=wa Kb:uba$#5G;,Y#ia.i)*-*3)9`P-31J0و6Uѕ+Ћ0jEiG劧Krخ.SA*WخhY$`*/ȯ0(,5/Ӗx.prsI=x=k0  ˗~ 1D#1VAQA {.1ɱ8 ۙ#"@Iiz({ɚmI-;/ 0,؁"p4P,4󸛼3y39;iC3i3HP9I4 i {>4K6Ѵ D 5F ))}51Pc"_Ň+x@YhH:g oX6[ʶ*m!Z"q۳r!%B&v.8-(#nRGF~"a8I0{ ہ68#8=:ʋ$Aڤ뤎Óc$Gz8H"I$@X#B9ꀷI:SB%U*-9Y2k%;%ʣ+c*d‰%h&K; ߘ>(;k'('䍶'ۧێ(R˨(b{(‹(~(" P 젼/#<)3)@Г0һ 3OŘ)ջ)p=",܋U8 >Oeuu P\ PҾ=cyJ6 U¢)Q)QƢ?,?,٬ղ|eU1ڎ  ,-*B@ɓJi9AaAT߉.QQ?!B$d/j(T)΃K,. /|B/(wrIyQ3l050vyFxLz ӗ;0=D]TQ[,'Jč7q.ڱAӌĞ+kEX2h2RST2`.Sd^ExEF3+bd=s3Hd: Ucıj4l4B GH\p}lՠbAyGtMC{,֎ǿRGA[5ٹW#HU15[S\c @EKX`HtYHdkth3IL̕<+ȣHRڴzY? U?u?!J!m(@#ՎR@R ..qR,:zA5| S1SSJmzXL#\A[J`ci$0l80R-3dyTuUw089:<VF۔G pmU_ű1J$>VIVN|ME h}d(k]HײnYvD*\&5׾e,fL3}lm44ErGہ@ v|EGz\em~dٔ;G$YFYCY\ǏH-9HYf#36UIJnoIq#57Z-I;հ[Ze0" ^[Ju7ۣY8$D۵QK"ܞ8$=LR*eL|"\\]\U:+]ͨSݫ0` ؋͎vU'%;xݴOp,Zކh;މ^;:<iF^5tڶ=Q >i]q݆sDƪaR.`ңоc'%R0b(b-$+NPLƷ4}.6./^(Rc ,;>5?mc%l/&pC:NxPH K]BUT2CCsy0BnO7)[VV.C^kV_<f`bƝcd;sitWjk 4BkNXX#(q@%4iږܡ45gEgz4ngxH^|g5hH.G.]I]6 rhlhඡpɋ6ݛ!ڽ ʆȀ(LgA"L+?[6˄[8JK#3˟Vː[KgX܍ >i\U}ܚ[L̼\L^fL9̥̯>ݙ]=ԜMt밃kw]K] k} <?8l/:ő[MN~ަTN l}OE=)֓_)Nv&mms{zg>38F@n{趈ė?Q{nV+ Β|x \--=ЯPian4u5bJqA.i$|c,_q=Bfpp<>KC w5,dqqS]dWUGH>$_S1 P`RL =ND$n )r$ɒ&OLr%˖._qD" eT>]1#Bnp$?Y #:CW-t(,:E+WT"Tkr,QhIF8Qb&0Y<IL5pX" 8=X &! A $R@BCn0t` %qL Sn@%6[ \@D >V`*!~~=,k2w>~sq/Fe~.7A Ca?tq`KgvpQ  m- !]wAmw'fFcKCXaB~ׄ 4@ 0lH@;t@#P QZ@ĵ2@B9dt'MgRE V ` ?pFBF#`JRZ$ى@;T&A \Z:l '8$q +:(\D#j,Ѓy ҭFR)+b'@C^$ц@F(fC!`*Z$`' \CcaXM&Ȁ N@WndMzJIE8O cq%AC sp%6>P 7?2|19847K/ W0g0P6@FAq M4PU_3IE_ء- 4}@] C87QpD\ZfB yA߆aCn;8!0Y}Ҟ&#M!q~(@򾺩3߼CsORcs߽߃@"磟볯^`DD 1 فLA/ t HG iXB >/!`r9f`IHg2A0(+>#5ha T7P{a g;%!1/qׁBTI8 =QAbp}gRVP pc|*Hh u"Aؒ Xd`4"&>@>/AW "p[Bm '9 vH,qȻ$FM";+n@H(c#1s :]! Jf W_"Fm ޟ4!ȟ.tēz9"f 8ɹܬ.wUVҕm~I Җm[ J^'ѳPv)@r$<&24e,w3)hVjԨ5ljM0W̋ D 7Ay,>*T AHBYQc!D&[Yr记(H;"$1I],)fK]R2A@nZ  = Rp+Z"igBkQqT)#5rﵜ@%*RZXUBXXfbx%_,f9 Zۚ.f+vV&0D+-ґmK^{s/~ d0)a`c@ 1 35ؒ$,L6Sm2̀۽ L7ZfipO4?nkmVÚָMnc+% {pLm݃ݍr|7©p[\MNoSƜ89džntZ6]$oGrsj9I7޽G3 mC#:рGC:ҒL3Ic:Ӛ4ͯ~_bpb4H(0pޝ  ^06{aBp[8L :ʐlٰu;dpwJ ofD$N{%M4 ؖ*^1{7hF.)"Q kl#2mnN$AHAҐmEGB`HIl|(BJS"^lZvL4pzΗ 05n c іR2L4CSԴ&6ý~6:d1:IPF!!M=yn|LFk )Z3v.ŊV}/e[д/4vqFj!MK//GKDJsԬ)mlԍψ 8dtL Vcdn_-iX'`uMRT~Ep>ZVC!QN?vQ;z@*}l7Vlhv]`$ZҚ,Pя$;qK.6=AWɧʨhW,[#= Wu v KrWw%˲8Mxv\r <_L~ WKmV- q DX@Ĝґ^Il8Fɜ LȈUU@\\\RQ,ŎR.DI0!^ȡ\J23q@Mr\Pi7 Q@լeQ@j:5(%A =iDὔV FC$Klt@ݰ@M^H=DaTfNɎߍIUJ5a(^kTl PqAQU ED@8ba|@dUyc_QUcFYmYMPRՃG_y"_`)_^5__ Xֹ(֐d?FT= eMIaFgv]VT-U%a%0i%1WXڜX]Z"eӢ ]%*%^r^_M `bIe޻fbbc T\8Stlg6AT]v뤮Hc&Anag,^NafopQ@qoA!'sBUM@\@lg^ggeYZ=_sD_\,g$^1^_' ֍\dr_c=D)erg_hqhgi `(D_k8.ˋ2hq- r-iBsitYuJ6 wLy { `Ơ`~ j b": $X(@FIiΞl*JY +RjXꌥԸaXꑩM"/*N ""U+bٌn!$kȬr^,4k,r//0s1G0s2+2{ iD@ @rЀ2ľȎ9k*9W ::c =[l,]>[>F,Ks@2ARQʞhDm\ A\YѬj$,ϒʱҜJ$"m(my%"6_O:e%T&eI…-+m̕ UlV2btTH%Кgޢ% h geӁD^J@_eEg=ɦ>&pbndj.hEf2gE&׊]hjήmnJKfLd.nFu-' tW Hi4F\ouju/|ﺄ/xry''V g:qo'pb p}@!(Eɂ^Chg=0R@A`@@@hA|[tK؈,@ k / h 6pב^(7^ 2k W>qח`i s~ ̌ @7KqӼ1Gq(ߪ1Njإ갠+YjI!=2Ž&*!ʪ'j(/9b)G⯢*k&ʴ,3:H*3zϟ;zKO+[G0BAXT35&V Is2w:@@ $,>;= D֍q 4M{hj?yJ ,BF DX{,̽ P ;ʽ[ FJ*ʘxm1t,2PZ- eKo-RvV Z FhOeQ-H̑M=T\U@W 04e A HAb PLpab}1?@asH@`fjgR=Y6` t @}fD9.IђkRZeKmmTgg߆ovj ܴUa4ÀU@1evL1' D,nw[sGsߌ 0Sws[h߀~Gnpxx+pfփz7 |ߨh<)dMn@ g D8@8`A&T8DF:zCBA&cGv(Í@ < @ 9/@rPb4^E"ŚG YdIFF/zp`ďgtЦHׯr =U#I Cn5{@#$x4 %&@ GpdD|#rA1 .NQTPt0xXP@i֯C'Wys8l( ʒ1Rb@ecwХAlܠ>*x*88K DH/=K0)P@ ;!8L/HӢ8.ib+iۭ氁vl+12ÑѤ)R-˸&8K3LSMHohP5g;S=? TACMTEmG!H)K1TM̠@LhA#8>3@`/'e2(򒂃]Aj% ;w3>2T5}+@ԳYM=-V]u:@sMTh=[@@C3:օ  7Ah,ƌ 3b$%9~ $P0atg~Xf ԣ_p cnjXnxiGi9:FZd%xc+P^DF(4dK"!n.%| 81u <̇$XeB&("z考-v( 0XB5 ׆u&0 U(bmH!.i"W Bz,!! \S0Y܇  :伎InXyZn'܋ih+ hPy5; 0. @$Ago@/4B =aH !$]-4x;@,L&#@HEH["`dhV>A2$'4 [px Y 25En53pj$TOT5`{dh#xrOQAX(ؠ/ YLe-H䝆`%s@l@ikA9f@ = RP=)< `k)BH"0yILhz z`uoCd`UKH+9$ `8H^:5!HE.tLAJXP2M(\@y{t {U,ebͩ.vVUF0aƘ 4P|!@۸pJXpD 謥,Bږ\ε!G Dx }ІCP;q^#QML,4nD>RVԢ F3Ң#DoHP#vIMb (7^UU&Η!4'Bw 0pS}`n/b</ v!&k01?y TzW)dq8Tdn9hkPb4lk 2u$A}!1T`-:x[d4r+]׼@@e/|amL;|/& bHI؝ְl&SH.fL _iⅠX!U@]&0l1\^Q+D 6c'hGKҚ& =v;Mz]6iG@ڄ"5 Ak@v89y[ϴNS5C#N c Ur:9Ft3]gQ:ֹvxXgͻ ~zг* F 8 =O:1<&D+$Մ- XN#}\MdNr+4 c:|H' 16-4"D'BQT".~1bcPiVg (`́<!k bt"H: Zd&FCNIISNRtق'9$.\:h"N2-MfROS-lA͠$'̉Ŭ Tf|d$[0xz h#WJ . ;hэv! 0/9] 0Sillz$ < Bp@r3AIN#LDJ Q !bj0p E})*Nn"'&Щ,POO@ nMV,`ު ®tG# B ,2 ` pD >r@; i+ !C2€ Fp>^K ܔNж@tk=AQQ?$( kqG N㻈 RPNeQDPHqVBkPb-q5XuXuB BbŠuYY$~5YuZZݫO`T>U3" f%X(zZ Bq ^:`A+M eQO^ _$Zʒl@^_ibפ,b<"]b 5f LR#5eV\fb7fp֕]!c%=Rh@F B1%Gm%M ^Ђh& p igpNNDxJ$$i4)(#r04Ҷm* +m+_+-,h UNK\r'"zz{8@{7U//1Ͳ ԍ03Ƈ6N :6?sG1q @DN~>FlSsL:.4?JLR\sbs6ΖN ܎″C=rVgssS7 b;<'3x Uxs x>?jԚp@Iz@@J:jK `4\?" h &"j0ZKTRtԤP eTԄFu#I{Ԉ$&@' ((NTt`Ѡ$`0MbJɪ.X/bp KbrLgK$ Ї=b +˱B9ZOgôᲰ`O?ND5C0hP=#B.QȔ 4p M"+TkDTTK+UpYV Vݹu!xpyٹ::y ZCU[agTM4RqsNu _]-VL v.Y iFL1τc1c!Dvc yWK dRTж"I"1x\|6$3mHr Rh i[2`ijm$ F!om'i:gD(mm-)-n)V*۬tr6vݞ1,{) !O,q'R Cŏ .Zss/? ~ SMӄHuS$N(^2S 4hL2sxW4nyI 9M3z6{6rSF xs|#-QӀn9".:W)7S; p;oKi2yiq*"C!`0DL` ?pTu鴒p[;$a 7P _<Z0[m;v\gӂU`'B#̥JHB'=dpr)oA*@zd~Q?E@Hځ$ B v`@ BSh"j6u`w (a8̡S2*; OB3JxH&:PH*J1ˢ.z` H2hL6pH:x̣>f܀ IBL"yt0򑐌$'IJZ̤&7Nz (GIRL*WJTrt$,gIZ̥.w^ &.90A``@Q% lv@_R3 ذ aܦ0IS!]0d29`23i&$bE 0`;P|$a, vЄ 3XhCY`1 5(Bq)MjrA ` |(e4r-@`I#A{ `04ޤel`| 6pn 5r VA0`y1z 0K10rx`HJTYզr0 d,! ꀄU`kc `v&YARtc@e/n`%V7UBu$؀c斗)@dp t e*g @Vh 0p` ,աjڰt 8(@S À=$AΠa Xa|ʂ'x_hf ^$Y\=~o!Ŋ/0+t` oQ@ h8/@6|A]~{ ҿ,nvX4`@H)/td6ແ(@ȹ `>uȰ l` _ +Hy5` _Ây!0C~ZS'~T~f" wh ~OZ lb>dǀ ՅhZ" A`= `h&`pe^ms{Ooۡ67iW+{bH Ȋ!yDpȅ |Mn]wv ~g [0|T|TSmkNsK} =r@7`A` Aջ!-`` /IЄ〼V+``xCb^?kˠ}U@ԁ;A{H/3uS#A zN{` 4luۅ($$Ih4$1C!44q {DDm0(DbLʖn 3`qGfhhdE1fAZ:k&6F+:UafvPk覫nm+ Aсf@C *?+ClP  \DWlgwkBl/KRЋn5tpC- V GpG ,3UQPQ1p W`I@oؐ#@E06'T I/&MC9p@keSan_0QO$pD#KBTN 5pL4·mT'0&0D RP @8  p &@`D0B7AC#-D&HOo,_,yC0 r #``P -`Fb`,lp`j= H0<@bA D,( :@p$@& ` 8ÛmX"GL`#p`X¸J-@5 8hcc,F`.@ NccS0*  " : pıAh#L\(@|58 xT rD? 3B (Ev @K0#0̋53 (0k6"Dj,62`=XE7qu @`Jn; hqMh97юkk<+%IA i+ *wj 7PB4 u4b'MBBQq0RԦ:YzTJժZu@QVծz)? XJֲhMZea[ (34@B% 5(5Mp_B}bʕu @49Y~Y)87ҙ ,UkF88΍?l0S (0vpX,FV,c\"*j[{%,pvkĵԭj:-n#A\=~70h D0 (? ' nW=Hp,Z7,'npŠҝ*R0lG8Jz`P 0X@ @" :wŁm ! @a9^_0,_,7I0ú$@~( r-ރ3VrU{ c?5N S̪VX;?t*C`St odb oJPKDyywziD#1j$I jNceH&NOUkfnnFc.,(b6pt5QeuV!J]w7AȊXExI&CTQS2cȅfo^yhj .]nv*p9tنVxz|ٗ~xp=rrW%.U4p2Sk/<3@#4DsV@slnI0F/PZ>TB]Y/I1c[d3P&\ƅ\6j8 PE"CtY#0X^:eVvc%`I<@yKUxt7M^&`6=` `6aDAh0#<ATA2Aga[FP@A:Tb)W\r1yd'dUdNe3eU9Y60C(..fwGGiuW-c&6P=qTiF!Z0cɂ1fh C6Jh&iFkI斕MjgVi#ΔC=hMBk1}\3lvlFl&Fm8WiR(%]&V DS6nbo=VWX(0P8<5u٫:ZzȚ*U qtZ:sqXȋyhP)v(. @b8YS3Pst8AZC`vxMW8u$X]uY0)0eP9]%wmib.HT{2:xyS y, KP/ #7%{d6掾fȢ|PG}ɋ;ڣn]YaYpF9Wzi7)AhK' hd%kp ) yny<3&85(>I EY,9R؃?HQzuDhSZjnZ ZPi>F; {Trۺlԛ;[{;Vz|sx,0)XiX92 )-XR`=W@lj%.t›[[ř7Ǚɵ\̙ )t 밾^u8xLBc_6`Wȟp` #aVix{{~5{֛ȳG|G_0*Kddo'ej,bgTkiX[gq"ܘvhdj3hhijض jɁ<÷+X~kkCkjrCL1:SQ˶mY*rRo)nBٹj#|~zǂ>d\<^ сJW)idk xiKT4IkgF;Uk\8 \!+|\1kkNPR=T]V}X-qIGۚQ!ǃ%hՈU@֡iZFŮKRu˯h 3&:gU՝͝^՞U9!x;; &͍G?<Ѳ/ 0fA"Vw{c"J{L24n[MW7Cb= Q쨼Rs1p:~z]싣:T7Y'̇( SqN;@@8LMΫmpc' [ %c7~nGsWK1|DFHK]ģLYLEyly+:9G^fmtXߊRH@Si_3`9S%$۔@hBM.ǏoiF15M^f܎>Փ<^~5cElmWce3&) 4f[hװV;NWM9tE$U.PwZeEr>^nC h%pRf@l_(s>V ~(.67@1۸AhU {xB,5)0.tKMe,DNtV$gf,[Q+|e&~:T聥.wzK";O$KiV$7j{,vNgb*jOb$NEdErL)f줕'>Vxco~NȸH2W#r(<^pgu)КFYU y9Rmj[)ISq%Ogo^U2jp E x #H5nG!Cr!8猌eΜ)M9uϞKх .eSGl9F+`a MaŎ%[@)`kTq !(Ġh`\ȴQ#xI6e̙5{JqS?&]rLpxCk!@l]̺wbD6LOC 2vPȈ!3*YvReH:G e unpC`"vA?2R! h$ nlذ x,k' F="BzrHLȠ-a28aB E|H.K0sL24L4 M6tM8sN77NS tPB 5PDUtQFuQH#tRJ+A30+(x$3PAsV3wX2V^uZU@X-Pa;jbՌ!5Ye{e"$L`% HQw Pb ƕp&-H} p(c%+P(!5 J:P3ʢǕe7h""h(`^Av#2&BHNo#`ȁ-:` N! Jxaa8R޺w /@@"^-+ dZa'&l!ȴ #Nx!2`yڿ$ 8.@kPS-X8|ε&[9J`s#3ݲt/r޹d\}y!zH 3n1|X8ga"ڏ/z0 M(1y/ݓ A쵃|ON*g ӏ0B- p&H 8p,FE`@ v'BP3!5;a}CP,#bxD$&#B ˈDD(FQSbxE,fQUN*$ 8{A@_jLL $%RV Lx8z/19hXK&q/|Ql\C1 +L"2Ʊ0<h@H'y\]슕CR -WbsGE) N0lrLp3*0AyIe6҄1Mz@@Eo8@$aCҘFv.mC:O?)T ܢ.oͤ3g‚ck4 ( ib@y qcEF([ ILi.|Z7$g@`^ `0`owٜEÒ@"QhΫ^FUyP C0Wұu㛢:@4X3eI첰"l`?( (! *& e!8 3Oa|7)Nrp`˄i` D8m t9ٷ+mB+_.ծ0Q*2\f`RAs H` )pdC u 4J֯TjU1zJ(l%CAm$PEK) 6@0+4$#eu`m*;c-}'Z.=N3b)8c =J8ȒN+lͼv mo[}ntM~nnx[ˑM`#Tcn*afR g>в*s3%iH;@dDKO+t#vKpo8ycCf6Ä{zq ]_"lX|</2Kj9# j0׍/NGv\^T%?e#6LEcOdn_|g]oG_ӧ~N7TFo)ɪC _Az뭋od Sòq Ǐ3>c!8&1 K1ӈ? 99: ?Q:!>&;b?)@»Z;;@i;;;;Ak8!:AAQ+5?{%V= ?+zi==kg3-tC;CC?C@ DAD>;8; `/{R{?Q&02Aj9(CID $` 0DK܁"p'Iy0XxX A"(A2&x҂A1Y h pWtg ð3< B]<#4<#J dfXlG0,W ÌSLiU<) DȹCkG\Il-II6yIII J0O @89JD7d )#2NO&%xYāZ ?5Ȩ$Z%0)9]:R|kr@ T<KB')BF(,C雿X2.A:#R{dǸS%&lL(dtM@<6IjN!Ê$ QG/3t[CcNAe3!A[!OOOOOOD$E<51NzD̉8;Lt$ERK*T$Eif>Z+:.9\_ Bz29ƓH e$e >j9 Fc%rs|Ș (ň:>“~*"%HWTBRsHғWN9 TUѰҌ I𔽓: IC}THԦIIIKTITOTP UQ5Di$e1QPoQ4ui4ܠOWj% Q_(QQCLnR̠sB ,4[>L ;HRo9{G`N`q7/وUBeXWf1Ԉ2:3Y;  1kʈT Q #gc4a3ۍ$P۾)r%KV!3H 0\0с؁!RTbLibܫ*'p`3#uRƠ2-DObz"43H81I%&8?>B*^.`ցY>f53|߬H0EO:>4H%ʺ{U`^e_e`fafb./a/MP]- Jݞ-P?#$3Zfe @Y0[<!*^d(>1Q5\]lw ؊)KCErt5RvZ&f䫜 OxGp |Hz^^h5O3ѯ.W*"5tNS* D$Y5fkf.k3k9NUnk~k> $XP P4()lLZtv<+\ll[&j\&,gV@7ʳq*&~bRNmf1mn)@¸$7%#hj2v;\+xbk1% #6~cffơ#6_ [)oo0ÌG<-If>7 GsH HE~ 0~(򾨁 h!" 0->i-\_ë=uY1TٺRQB%K_U.<+D?+2s;o,[=_FUV^kK)PF/`HkWʡW2.Zۮu^u_kL. >\W Obxұp-l`.홨vAtDf[fQ!Ն )fnz$bbTBƉvВ&|/%HE& HنgV! ~6$i 1 wm#o !a^**z|!sZăq'9m1qʁ+" 4)(6$o^Rpzn(n7:@m18MP3/(bp8Q~:h"hpyW1u*$h%0. Hܠ/06Ho=?}9q)p7 ?$h~ ? 3h =r]zM{":KiqNd%<ϟ "b/xm2Q*zp`B  !ܘ``9hď6QLB@x@0 aU㳂QڅuAK 3CY9I"$m#da[; ?<<+<; p+ TE\B%]R*0A"Hl n!YΰApk!ЌX%Hs2% . @ J F2I!6AUeTt_7Fs$|1BU**i2 <(Dя$,$!.ѣPm6J2iH L@8sApD(\23QDa<&2e2|&4)iR,R>e}hP~2KR,ťzЂ=}A0i%0AJ @V[u)03~0Tw%# b)Tr*EèR3I,QIπ6Q ­ :hwyU_X@h`B%t5K|N  ${r1p t y Fs((=`g\҃ p)X,˝U\gjWJB:R&U@0+ w)Tk^  45XhB $ 0@@r!@ H0:Z!1p`$XDM=W_NfeWTl(ZuB 80 4KF`@̓R0@ >%F [" _x!DTӜ*R[*$v<v0BGYʘ$@.y^%o;d"P !mu`hbl+i _.  K`(-22B8]a[|mjzc;6xY^rxnw!uq=ǝćNw|}9T+6׼qS<Ђ|> (;w0{w3eo P"CPTor>V OS>O8ҿ>H}'>/'R}h1ߡ uoq o4 _a?ʭxTJq-Յ_`__`$֤N`E,qozTZ`_ ̙, B z @ܘ` X_`Y{ ! $ ].` IZȘb!t@ы|Zu@@l@ @r@`PF DA!) L|I%#Oqay-2mHFLȳnz!BP$DP26 Ԁ !{$2&G@<cBb\)Z:fQ /t,b\k@nAhϵyPdT DJxD< pAȀDPI OKB@ Ȁ 2;R]d@ TJ<$Rm$y9qp_bxH An@&wPGlFms4q ~WNB@G|bL9]*!aGL y9%eB9@+Vg~9h&i2O&j\k&lƦl&m:XIAgXr9ljH< n% p-Н&z: p٤[ut*ZNզ1˴Ya"MH wGtlٹ'xUJPZRV<e'j xRaEsp'n)vv))| bir"DO Et$D%݈ٵXzZٵrVgBf .YA @p y jxftɡ0j`ZMȪgJixHPRҡP tɷۀA(~1(PH6I|D #Bc T㛐 j}hIk~h,]Ϙ: vAr$FPfjj ޙVd ^Ŏo@re~A(X*ޅRxzEd&լl8,-^IiH x Fi)J(b@*,ٯ8)` \Pxjqam^JI)yy׫n Ȫ@ @Q įif-Q伥\쌀rRJ%Ĺd-cǹk-}uRU)ث݉ t FJRFz]E..ږn )zI@ǽЅ@pbLnNF//Ư/֯_%ƩPA[6Np,ʼSi=F:ن'헸H1!ޱĶ/>瞩&rdGJ$ق.Z=cPOj ^""c YbqmԤUEɬJ%Uk`+Yrh讋5ڣD o.X"tр[|ͪT͇rٜh++"b$쒸IQ1E؈2ۨA&d!\LNؼ2E߱rRJZ^"/=kJ2&TG(=Q%pA*UȅtȂ+fQns7s&83fm3::3;`Xр+9' ퟚ{ 0!.uQQpPDT/3`؀ClYhAuh0|UnU8{ ^[OD>A@ &A'r4QqnI7fnb}}( @-gsU,/|1W?+ѻ{îÚDV '4#PhOW)חϩҝAl @|Ru oŅ`~)t 2'Q6hihiciij;k6lǶlӞp&o|F>D W@!i j_`qp"0 3gF_H  lgpGqveaITaH7w Zm Bg+M#D,8+"*b0Aค) %&A0IӚ@$P7H"%TIm(qz űR\#Bd6X>K=r >)@UG8J(xwS2PXu+I'8yt]O7yEDP^On]ש}?Bvyd.l3vH^{0bP:~ |$yW]r0D@%EWSIGC˱bϺWG_j+m7?;GߛjSut9_l{0tM`7ݮ wjytFxwy7yfDTwym~,7 .M]H"Gbd"@Ǩ)B CD @A @ m|xMʸ"X!_XAd>w>S״>׾>HEIzhH՚W{s/IEh zw j$Yw j o'? ?#زFI#Nw#ňD =0a:q%@D)VxcF9vdH#I4iq90tfL3iִyGHh@0$n0 K6ujTS0 /@P]Q;-"In@@"v) 0 X 6|X"#'^Ardɓ)`wY6t1^I^bKLbtbEWpQnwݮ5P!/x(ztpбzzv۹w߸SBC5tzLb)bk8-h`! \ꋈxB ې_B <Mt `lB辪uܑ}H o "<$\!|(*\,ܒ.02<4\6tӄH(2 M;Ҋ M|c*ƄDeE}é-P]0Q LQhRT*r` '`8vT.00@p肁<juTB atEj ;ݖ[ȐUV_UDhiW`XL(@%v mg:P#d:` [J" 0 ⋑2h6(vLb\h@2tc5(Ȇ Nd=Vj 馝)g28j@HdH.:[ fi!yh}j+& aԩ4J!;М|(Bké0bh L"p1sER1L_4;77>W߂\rj`x?Nj^#(j; x#~@{ 9Ź~7|~8h n.}*_LJ|NIH>uG A-o~c|\D`Np̼` %B!| CHBv7]cO~&BBV zгn`]ISħp@L +sP4Rp؃`^WxB9H-DI*ntXGQ㔜dG?da8HCT$VHG>$)YIK^d椅: `AHS@Ӝ)[Y-F=K*5 M-S]UJ@9 "AZ %@^¦6ҽI3%4Tc\V [ں>ILT.ό4Yɀ ``&DLbM92e- qȂzLd'=IPd"lg OsC0pAI  B X"TnhZҐXR+\[ൄdqbj ͿFP'E0tW #;R JD!ovQX]*TƒCPә,,9]CVv!r xÔ%A,n$;me&[t+|xVSvM?drMm=r0F¥"w2PgwHQ [_4Ut3Ҿ з V`?)\pNv jcz)<ʌFCGE RnbOD|/;! 4i9 e6 @V9A~FQp\0/Q>b(5-yP a2uv b C)BXQZD\gD1x(`C .L{jѮ:uA܈@ $^9ԃĞyG8Ah8#L#5A 0iUupVQU/b;= pg 5`@@\p0"?(B:a7:}{K*9$q;`u`$`LNI¯L@UKYq`5o!_FB%5Yr1i^s9MaOjx49V*J`|,< /LEsV,O `!1F@-F/֮(ol) r8@2 *bB ' @ ⻮d` n`fjFƣg~zTo"1F`\)/rJ"$i䦘*G: .~ry`z* L Db`r4s^,JdP!FBɏ,$IT`L5T'd4Rk:.`y^"}P&<8^:d0h1 X 5/p@ pB8 ĪkCHü &6H- k=(@^ 9P ɀ % ٲ8qSp4f.:;s;Ӷ;S=(&`H#@I )w4@C4rr;)2#+2,%3>v5P sNIjL7~#Pu.1#"1P"q1)2#<<<,߀`4 S:&ABĻ @JG1H_Ј炳;ΐ"F8#199`9wLZտ<]U^^H^_uuړ__`V`=s)Bi:u:LC_ ?/B/t);I8. IZveKV0b1*x]_HlHCaavtpr*DeK $ŔgMQuMgX"uش$isPQ5QCt3vRR/5S;`KmTK6'^1!!iWR X9HX) oý<@ӥRVpo[\ kEfFUFֵP7tgvo vkwsG"Kw{wOd`WxxxK V>7öFB?sM~w#"43z1S,CqL<;̃G u9׃z5bFeo4s4x$}@}?8^wZ_D~tclL2hoM( \i(l ȶ~/biiS˴\-0'|B9qG&M'@MԜ9o 'J R%Dx+ly.mu12׊ gج3⠉Dv(٢Ma#MJpqAU)d@ Ƀ9 qlj"fqV2W[xXkkW$X asT]].p"˃ts8s~qW E8Pb4@٘yٙY1 ! ,n/ n XC8pf@C(4q@ CP1$ȑ Lb1 bAA`P|P t*@@T9c@#IFP0@I6`k!,p1u( ;4hI &= R&&F mgE0<  '  /e ] ! ,w9 F Q4  Kc2qcg!L 8! ,r9 \ hdA\Ç#` a *6 @p *#! Q#OJe3 1  @0)Ӈ!,($H*\Ç#JHŋ3jȱǏ CIɓ(S\ɲˍ^ʜI͛8sɳϟ@Ҍ)ѣH*]ʴӧGf܈B 1n$Zф/Dٱ,ZpA,:c"?3tD App‡Xc&Zq)P0b2/ ^v2N 9RP7. HS e9CƑC\+č(TS  KT2!ۂI@AoNQ@׿!`B\Go>`f>i@ 8CC:i1!AU"O(چC(Ph4@+b3$^1x" 1QTQ Vt ]I@V;`cZF&VwI([{]aNPD 癄U@AtEcmdA&@`&& A&0B7:/ C ,!C$ }@SpGQP L8A+-`agpOЁ N)@[+ӥ [F( 7pEA ; B)@D @ ; Bd"2$'vDb6 d E")v'=:Ч+4qAtBH @6_R$cK|UP(("`PZ܀ô$0A(t-tۭ~06O,bD=A嗧 6*θA.Q `ptDT.z9EAoP F#P!5|-6 t ;t@'A03_#  h1Ā:HpT 58 x @Z F|9\l& E ӓ (H #da :0p:Ya 8L c^< :tG$ =(D")@<# L@l bF4&/hz-8C?|rb$!'G@ !3?hCL򃒅0 #hP2d\؉$ƒ9=|8@% nDRA` h)`Pkf3'8&6~Ÿ`S"8$u<]J@`t5Xa$î|IPBɾ@&0 _4&6+( )H0Tsp+(JnyY2PjO&@RRUXIǐ@ jD*ֲhMZת6p\J׺xͫ^׾ `KMb:d'KZͬf7z hGKҚMjWֺlgKͭnw pKMr:ЍtKZͮvz xKMz0|Kͯ~LN;'L [p}7{ G,t(NW0gL8αw@Ld s861&;PL*[X2ac؁604az °!@ QVrՀ@S0‰̀xZoC =A92=t8 J@4XaX.7%$ )=` (@0pfA+mV›, (" @c]2k@J}Aw_؃-A0<3l 0lk66 Xa6CG=àgA9 o>~;@,`A8l4` Ԁ,'afASj=*߀đ00@S`xɍ0f,<[X 1@BsKݚ@06/t8p X`oҶnk70 x]Shu;ߍ ھ7 Yw 80Cd@hj Nwr:6tyS@`=7A|€06a TJha$rp=I@bȅ]+cxR0a^F2耬A~ӧ>ƿ<'(`A?GBl}7hzfwFpuz`6`)_0'P `k`pqez@(PkwG3l`,"_@gw bhcG" pguqzFz_vR&g zJ m'J4t 1`&m{`p4w`)Wf@lWF2{rPE@gecX{yphtTpy__Rhin:=|`LjHe@XJ{p臀8h9awl%c%0|h`gFqVnᶊ(P2|?0j0gn=>z {z,C,0n$}&bjhp3M88{Y{{pxfq'mt@kVh@FxR{w2Yge؏uubu sy@lȎYgxvgr*Ie6 mȑ9hfyPH\y`lP2wfxxe,`~uLr?fwj@l.Xz3pʸzz?onpawx(obzI8b{`vu{fqw`Yag,`xFn%zVFxvh{nh5wers 4e rrfVp)U)x)m7'enh0qFgV!Zh%xu|h )sٙ%UF,ډgpjVounHr5Y ldy"נ:Z$>_va_*',z(*,ڢ.02:45ТJ @B:DVp PLڤNPJ]KVzXZZF[`b:dzhjY!,?\H*\ᆇ!!C F"Θ $Iɓ(S\)Rϗ4X# <y(D̟@ J r@DPB°a6ԼDl|(Ibٳh}Xã0X`\25`=@×j+^ؠ64F ՈV63B7>|`9C @hCe `@ 0 V N0n3J&"Qd 3xlaM5hQQy{d$s~z\CBsYwlA @ VJNee$00[}t"bhcC{|!YAՍD hWCm@>$I#{ y`hDVhНs3D'(pcdݑ u A"`$ *騅(Fhm9)` pM@zG_Łu'ְ_u3frv M*V+$v[CuXК (,bA+1|1+kFj,P̮' 7J@lg K|$lP A f Mf_~ps 2I4cXp&@K3<+f 4tЃZX!Bmh}ZAUWT %a;,JdQ 4t@";]K 4jfGt3 '$͹) 1矇N#@`w& qI2|A qT0!p}34010 )0B0~40y| _x0-`F@=Nп/ @l[X` TOpгS@К`8?OB# _ @h`Z1s &HL @NЁ/!,A`CRР^g>${B2x;HAP N@!2N AzRhjd# E > (!= m4BSpr;'OILHDt<YLW;㾀7 ]')4YDHf3%)qL:լ~Ge,s: 16 Nw :`rֈ 0hD+1&6@S> vvApGAܩ `apI6ژ(P;5MMը ;v(LiR,<0@ <A8Hp|q8 N!@ib$/qUp&:#l xujA p?tV`7![n(!PԀ4%TdX tg. `MVTS .S1HF3+ vP"`x  կ `P3,Uh0|)pgT!XPdIf`0 ﬐\e+_ "4 z@D **@`4J$;ƍ"`&f6-<CÁXβ.{`L2h@[I (0}-hMs2@ЅY%q%)A (P1} }`vD/9Xk7I̩PE%81q&('QZ@ pꔀZb`9+ @fXuu Vʵ_Wo}Klԃp` > !  ͂Tغ,f%?ɛ4`E^۪ m- 9NpZk$^Ro%@k|%%OܸðyG =@0{pc@fEA_QL[p 6|#P9 AXbdj>f#2cfǣrKTCJn#*`I'wmqN;P߮]#?2*)GO҇Fm4Wz`^t1ϽwO2ҁ@ftfhv a;zLz6y 34Mp(|p=k0}Ulp G@*u&}:zW7:l7~SVgEwX@LD38=3=Y=hSe3=@5*PCP:tI @3{sx,%1EL0Bk3BpB'gE0c[T}4XKD8\\p(Y]uJsv?W`0^nG^C'P6g6=`@>Zȅ]H4{ Hi7laS;ytcD4x'}Q6v'!My7zBc['1wS9PSSM($(4 ?ӌXxexڸL8Xx蘎=il3}0tG/@%4ܘ3Z4p3P5pi6psR6o3:c~FRcSAiöU7H(4(v(+؂/9D )L9!6iagsqPD]C'$kk>m?oU;טH"XVqnXuQ`@!U(v(u!@uTJ6GaVAw{cd;c\ M9H8ٔ= "KߓgN$1(eTfe(zٝ?)p9y19噞)0穎9YiE9R+7Ҟig(e'}&hbu/<Q5Y7&Yj}K&Ke*'kGh$D%px[֡FRm>G>e[?Qgnօ7OQ S9VxGE^HbHpwhqj7q4dCIe\Xم/B~sy}9*rWbPF`aaistyDJG$H%eF2uU}FIbWBN\dj#Jtjx7H]69%i7&9#Zƚ0zʺ'zZzؚںfÎɷʇz6sZ|&ɀc[#6?7z3V;~h9G9庮'ђ+z:_H+><=jQZBz݆>>Y>Ytb],T`i_Aq2W)צv]瘖r:;{P g0iʯ& Lb@e9cG|J%K~;S [lVnPesWzu__eXuj1`W@rq`Z7KoBZC`H!3<[\븳}D^q:wFiFWR`֣3U_ʛ_u_vwjKTT#3-b Eu3Vc)b7|dY\2\6<ïw:l3κ@ =3?F fsP6j6pzz~Z|PW5*OJS#Iw#G,:oWNoSc#O=s`!hEd:lfڳiNצ,&rI{s(2|iJ$1P:_8lYKz EkWXito:O*flE|t;DzzĦy@yyxHW4[<\#'@|JU\;{8zԢk9~<礫.܊a FBͲ}ũ\jlnprN[s%X|fsNŚcN y'KrL6:}mN 㤉%>>p,]L0pqi4ӀY4EJy{֍9l_vfdLXLo훋\eݥm؝nqj:]}ޏ8gM׻}6kEߋXR8Q35 +R ~F7vSS c$lTH5 ޅ&i<Q74Vmn8*1\!By[yW} \XC3-.}nSZWzҦ?Σ#ZChZ?Z"צL[|r[ Q~wgzY^~GD mZ]a+^cTFM(l_3_y.P`*F<~=6I$x{ |^'88.ʫ1wleXeg^bF붞j9Soq[6QW1R4cD*':2ym#\TTn{ኋU6elX2*CG:NO?2_U΋셫;zx3|ǭCP~B幵 \O%a\!sCBd'Jrd'{leg`Pu<YW\˘{[(, &2|(yz˛ i7g=jnr_|N|K3dFh5]5a AEn~ ?f;k lN:3;69O66ϼ6f?JX6"={Vr-8U@ayˡp'W[wB$: 5a Oq._ϼ Lw{Լj?{[]F/,aԶs$XA .\Ǎp<$G!C2$YI)UdK'p̚1uO@D :SQ>ASƗ-EcPaŎ%@Yiծe[qΥ[]9_&\aĉ/fcȑ%O\e̙5ofD vtqE?dQCg$2x '@igM q6q^t$+4`g!$GРIl7=(J>PT(!n!(p#A Jʞ0XװK0]&Ȣ&p_ 6*6 %"Ҹ#8Nl #:Q>,`4GP%.Q/M`;iQA8$ l`u gJӘKJEى 7@B P.]0&؀Fe̯Ϭ٩O,W@(CAQⓟmN&KB LCG`LGHE.t9Jrg.n1K jGT 0uS  ~G$"h&iNMPSt X9 zo!JYɰ 2j ,Y=CLP8FCz/y`xcAtzpQ.|mJniIu5#aOfP{ukN`G n@  9p@樌q "P#0̎`ᷫEj.T%S&` #=P  8wC\ , JQ8M &p+|햴U)D3 |`p fp`GXp-|a g ;`Ǹ sNq4| oE1Z>BwI;Aek Q#mT!][|䰘F`1"+ 1 ;0& )[bb<#sj@%''g8QNhHa,RY%c /0 ͋Z&3'( zFF5gV{tR`3(iXDjk F:Nb5D/ȸB>jD(DXd`f%)Ku}nt[fwnx[wa႐tI/k7o ,T$' pqVt:$<+N=> EuЏ)gS +`Ջ |8x ^_+9/s']KgzsG]ԭ~W[z׽u]c'{W){:c\i f*X k\G)HB_<=u^񎗼yA8x8DE`1Νov6RJ4Ј v:xDc2C`/*RQ$6 |Dq8 Fl-ш6t9FGlKkrsɵu0irJrX7i㔎0S 0#,Q+Z@>3>[59 ;!ڑ}Ipx@;hdЯ!;/؊ #B/ً/C2 Y2LC534;7|C8C9C:C;C᰼1@ +6"XC(󰏸;.12B@dZz ix6 ЏGqDVL+2(2@X+=e;=F!,#ő.; 8$U̽ p"@$EzI:*6aHE (#GA%Ԋ TSA; hm8"y?+-ϸj'i0F'g*b$ 'iɏx@M?UG)P֐PUs'铛V'T8_@z3$@TRɟa+r)KӐ2'©H5@ &تj+{#4? ɑˊXgaH X|t8 4Wz[B 7' T}bQz-ЂI:ޒ 5.NhQ. u!2ҧ x5,BPϗYCTۦ;C[} \-ܱ\MܔCG)8PԔй(5K E9\OEhā%R-6 =Pb\R 2S])C+<*N%PvtF?؁8 VRr-8<3I5Q" H^c-IRUŧ4Rm ݈rR ˍN1KDŽ̕ټ畁^`=vř{RYVaY˚ &6˲ճ hC`݁P`-Ԇs[Cm9` bmsY!.b#8">b%bD9_̋j&]/X n-]=dVJ\KفZ* ˁ-X`>0\RøL1fcI^LN0;> ؜͉CC/7N_r޼[.hX1hϠYhn*hhh'Ibbb3&Š2g^X\;PHP9۝Oi҂c8E}F28$Zc_EnhФjRa Wd@2`GKN\֦N RލCճj}eH39E(CM@ըe@ʆ}8RU:@9_O `detDŽUc5p.ciOf|\Έvl; VnY66s2tQgh[ hgZU#؎[ 7agklmo5o>/|n^ono~&OVܐfX?^b8"CXݯhܡidcoii]i< Ո"i7SܨFb!():VnC;^8hW S-$"Yb<*3ߓ:>^r_k& l qrZ$W+. 4s4HW((IוHK(T[j!Aؑ5?`k׍K -,5#:k4'ڬa,#)nkv[X\FoeW0\vggvU|vi:okvlvmvoυqi.J뻨 . o EviR-2յc6sXoݧ 92QC"8*Pd8MyץO8^ H}KU LPFT#PTl8XךGDW) Qw ju.7hAw8g(`tZqyE.9uVgo4K=Z$@y{uŐnW»{i-Lvyv/|?|vuvc;՟9֐HC88]h: p#+7@ `E!AM J]ʷP5a\$q 9Z }: wA#okzdN6 ` C5i1}Gǀt SGpG =ܢdB FUkR#$Ô(`29p0a9 ;p; R*r$D+C; G0uĈ!=AUWxXh\# v(mz>| 9 sqPrp!V$} E qi ؁C '0m9@2 F 8>A թƒKKEmGe;L2ѤI:CxoBUKA@D TY`EVV[o5W]w`Q&@E-@s>f&ѿ?A"mѐ&EI9Zta_BX,KV'=iOL7s BzL9ÉoסG6QCHz!q$0}jt<-kK( !+VGJҒFM) URԥ/L@˓a9ccGH }~VE5# @(e)CdS)*2QU-MrM>)Q b(OU#c)YҲ%.sHЋXLX"AR1YL+9hR(Yż0 @9+k޴p Br(( oR@g@7.U,j=(ΖHq+n, z :3o~ `2 +  5!!A(5(,@|p~ O:-$3 MV )[X;qNP,;HH=gy-V$l}kh*[dJiaPAQd~U 3WXhSyoA0|u'bj&rgOa_>#?z14 += B! d*NQ@R a|ԀhUJ@F@0՟t9N]LTA ,A*JVYAd@۔(лm|4chb@Q2ʸ | j Vހryb@e]H\"шu^\\ƉHȁȀa TlUW1ٿa~GbüzA VRϴ_q%WEUM@ީHIx,n ny . l R$:X(r)'4N#5V5^#6f6n#7v7~cxe^Ad F,@eC;D Ȟd=BHAXF=  $ȂtH K@V @ @dG: P`N D;JLf[=V2 KXR:HO! Za`@ߟK E 5`d̜H$  ([$^&BM"%j&_J ؀ @K9Hkn\JD ɚhfj@p"T2.#)6))AJq>'tHD'uVtMufvU~uw~'xx'#AK JJMHI4vi0RLLȗ{"cZ_@  hY;Mĕ]_Xfp#ҧDmMR،,9 B HhUKIUzBm ^蜀_ ]Z VNE`FpGLR~i@@L@t OΩ""=aJ( eR)Rpҝi脜&W驹!   ` )@"H ^ZáPi *~hg-RP ꧖*MKh Ȁif@ gղ6/J!(ɜ4i vN0* 8J,A"S,)+:è P+"% +kIl,y,&.,~//ކĆDeL,'ttcUIX`,d і@huA,6( U^DDpnH,Ax0"HQ &IEѤ# (f_K 6SSQm)atXidIad:@VqGmܞ])i`_^3J..HHy͹޿e..ꤚ*h"+`M`]HfwDٖjy] #1ɹ+BN+k/Ư/֯/"BAX;3D)a$H /FhFBdm_;CClj  D e$pc&؊-ڦ O %Ϯ% k-P%r8ˏg15pT_gab ].‰U`q+i"ݮئ(|(EԁuE$176f#G$O2%W%_2&g&#/HlL@ Iil)oW0H^EBF:A)Qv/$Ts2r \HWa2gpq`y1B""VcO"h3;1'/F63?v3@@4AA4B]'# 2Km$4EwFDM*[> A@]E4UGcL$H_Irۤ*JPj-pЄ8)4KWtPW uu#uQ(4QH%UJ@flҹ0,\%GS7uBuX30 Y!]\zP^%Pء/O#@Y58\5[dM@bV3v=; fivIs ^(>J7iZk4J]P!lj6p q7r'r/w$/Cg 4l,S|\4Y˽&sr[Qů>*_J0-cwxo4Xʠt{: TAwg*ȘKĚ2, 1 d F}Epwf4mۅU@ 8,a 0faCDM0da⍍$O< ~ d D^A+L,N.B C芏z考-,S!;;pāv6:L@2t8a F"n8 QF@ / $h^!BE5 )ҢI ("֒A!(:x(&*Mv %!©pCz SUYmu4!7 xBD-MR  8#;6Yp 8E5OI+Ё @iQK.]Wy5lLvDSMڄ^á#.#ȠYRs"(!`@bPaSjt&ma +NB矁Z裑NZ%3駡Zꩣr꫱Zk83ȀD5dK v[ 24C tsk3v.,!p38V% 8!6g~HX +Pv(3a"b8 ۛbA-p;1<@$DpXo z`_7{@.`!r耦)xvT3iM:׿W / ׅ 6C (r+tq[PR $@ ՝j@ Dx퐇V+@W`@` 'pٺ`=|$`v\.HdB› 8duڽE@/ Zap:@;eN0(|JshM Y]:H}! 1A p&+QM~еH @KY>mf5%!v#'%Ka41Le.t3MiMQn0ATm1b72MqӘJxC %D'>]$(m9 toS?{(@A,c$$d0 zEWHp*~ (z% X%)$`Hq`tFQtkʊ0!2"׷r0!*%\48 'Oէ@@$9Ȁ*l@ `6`Ilp X#VͩVWĥ{_X5aX.ռ&ؠ:ϜU}IYĜ2A YʠG=&ضm 6A~s-B^hbD!@ Z2=XzOjTI B~>%$"QUY:rFO%^)؏F5eD%ڥ+͝bC:-|VB Tj*BHIʦP:lXF qj/Y ֧' ѰIAM?h G&`FDKLh[Q&͉`@p̺kd7Ɗ&" 3xla hQ!piУWFu%c$_O>DY| .dpA 6o@سڽ(ŦD 4l@D B$ai!C{찑x"BHQQ{qyD+ɡqBq̀F|,ÒcFwk -G tDk4x VT9 GeFllQ?I碯A]kqk`A[o\ 3eEh1jkI @լjElp ꯮ʁѵy(VkfvAhk覛+KvW/tdI W w0'  #X! EVL 5ԡ pG ?@-t#r))&L,Jd0MǴUpEL5q"A4t2 4 ] I 7DQ\7QPQ1MYa X_.8/"[P=2zkCsapLA>\A ܂$,`4@`q7؟41Wlo+ 5pC ) 9/S,z M 8Ѐ[ :(q؟ʃ-lC0Z= QžVcGl{S` $A 8$9@P~Vx) `d`.;AD4Ph؂`:!8 t@ x1xd`$Գ  :C(QĜrԜ@~$h08؀'$Ll#Ăpl@lp*@DEHJ xbވa(*( HDvRN&H sHz3h 3%Ef^^L:v ~MyX#u:a Z$GhȀЊ&5@l3(BApb~,Ӣ _;HuhSܶ^rnx<!krXRT@|\Fp9?iȊ{cVP0Ի x^<4Г^ZUT`ΊPv HA7X㊁ʾbt/@(`o (X bPZ@7u,XIL@Hd @`af ֺ#СtaJG*&qM,FО`}S/qex6; HN&;PL*[X.@F018-XvI8dyQ^M&gE( :=h wQ/af -־ Ad 5Q- 2@-C Ѐ I1v9ijUItb4 &'9MAh4CZ:F@*(i J ۃ Fе\5} LB0V$-Z d{S7@G3 F쉶 'vp܋ڸ0Bi(fk xpo!$ p8@8G  F[6f nyWL#!@) @Ӛ{ &L V0z{`/yO & ^g: Ѐ$ =wR{&jL6И9,ԩ[ H  !4,/|d"C"𒔦܁6 ?Q OϿ8/E0y& 0d6'QI ZW q4BTj0+R;RSL4VSElC8TSbC6fA6DTKH7{4(SU~Xe:BvbEV^%$mjEpAq\;SW#C|h?yXom-*4:vWz}5mTdx\+B>>=WIA\%@DZ$$)eTAՈ[\W_".C֑]ɐ='`$H@_)(^X_x_rd$tH(otoᔟaz4Jצ$XbxK阃dA"M<6jaڮj-:sz!#گ;]#y*> b12* q181a{ghY,#I')\k#GX'} ">$^By79%"%, |;Rq\3k+"LYGKYE9a 0|[UDd>q@k+ϮDzP=Y`nNBZs׍lkC8rx]ZLيItݛ<1' ɺ`Nxmqn\t~MfDF>~04붞eJ~.e44>^~U u7Quvgy5@#˰Qw8~3]Fh)AKFaqPmRÕ`+V_ׁ϶b`2c=3343oP9n9DpIZ91eסͭq}}N:1"$P&c?Or1@7>-9}uYF\I31>ԧeI&8wr4sFϿY;-Q.tXy zUMINɷ| ^^_1`o14 :m~S[y=}ݗL?G Dd?BBP P?=&RVMB1oAc{B+gqUe)Y8 7v $te]]A\[x "Op%Wi@`C%N8G[@0!Ft`K1eΤYM9k@,pIȉFt.e4& 6tg47@SaŎ%[Yh"U[q:1B 9h -S& Q IƒBlcs5ovH Aǎ7C-,1&Wչu۩iԾ'^G-B, ^a!P Q$߁F&e O ᆒLȀSؓem8m  8a?t`xpB wAT8$T5*h!l | Fy G{G rH"4RTrI&tI(2$J,rK.tJ/sL24SKb*jPɨL:ܡO)s#8`Ä@i` q҇H7^BQ% ALa8(@%L ,p @#L v JBRjuMhuHXݮULqZ60  81F![~r0ɡ2@@ bMx :(߀1@H!M HaIS%D* hcy[+)̺z /,qg#l۟P!(PJs"h❷^j8v{3Rk ;~ 4v[9[Z:G{vkPpV_eyl]s"ϥO 3l52KD2]%LCc i}aJϘ}cH(!LH.F5jC0HF/: sSEv˦ rqh4\h_yT: qm!iPZԣ&uM}jTZիfu-Lj!nW}>0~IZAnko@_bP#` j;W.ixZM;"$2d/w%gM  j>Lz#7@/ q ^_Mp'\ pp{lxxf\x=qܒvI9koG8udqΛe.֖9,|`_ӣDY#*UU*߂SZ3pVh'?#Ps2}A,0x0{sL2q63.wa0LdZݛuw)[_L"%Z="A m<i%21$ z8߃>x.y-kN>~R^վ,tDJn? _L T~;RI/\ړ. `/ ?%A9[%]Z&+/HB/ / @I$0&b_/',1&o,q-s%dSP6HK0P1e1 ;cbq2_@{0r !ȂD{(( %^)2OS1zQs::ѱj@ (kR*2Cd(52ɋ %%%Jɠʝt++X 0+0:+s{A(Ȏh?6{3dD",H,"iS Ň,-"^5z 4ILk "%GՉq'<1ptH H HLH0RH|H`€H4.&3x ]S>@@Hd;#4#x& <Sz%%ȂH<Ϫr3-!AO+؁~:,PC.t((E1ܨ JN ;*;땲*`! 8DX6'+7#ŷ#cq{+S]A`G5,9, *`ɓ` >7yuY` nLV.a>aNh֖@I®œ[> IK肊ynem Xzȍ45j9L%O!ttAt;~ʦX10Y;X`+:.`XAt7&8W$`EI4m &Pm%Q%Q ٖXK8ic1\)[^۬ȡȣ.k$hz9F4s3{.SRF2=Sb,>,3ʈuIh2 %.٫]]k計╽͟tMs΂v]8F m7 TCuP3FFby^HWёe c@q؁# H/x׆m> #>aINmQdP؁bn]FMT>G0UǐоQ4VuWG8v`ʊNoUopVa?pOp7V<D9$/O%@ܫ,du:8 FS:i6`;O Dt*e;:(7`Mqeu" ΂:3}(g;! qZۂOjjLkyǃo,IIN&7nY`>s,CLխu\NZuHu\#+u`vaC#PIFv#?PlvW#^?,6AL^ʆdi &\PrjP.5)pKIٽo D;BE!7dr3jxL/.*)KX'D!Y$\UltʴH:;m]>"\4T[zߍpTrTDG@˂`!!Θ0Y?zGz\]zwzG._'vzz cc.h#8&I)a$tկzZ'EPqTq*B9FbB't4& =SQ_,WfB^(cWhZArzV0U&eJw2$ËÓhQFRߪ%Wfm&琩fWK2x/~&ΕRE}6FsR Œ|34ݫœc~6(! 2lC"%|7f8PƐ"G,i$J!8猌? YÔB-j(ҤJ2m':8j*֬ZޠaH2CCt-\Fx@ZԲ/D4*xЃ:yСM= HA %9FH3[Bq#39tq$4l7‡CĎŗ3o|$-08{7d88!ۻo {/_; Gx ŹT : J8!Zx!jz!!8"%x"n"-"18#)n 9#=#A 9$Ey$I* pDB t M7/^5i -PkfsPt`EBZrYF` J @ZwԀ%n)^]f$MCSnt !%D$pp>@9p0- ]jgF6]0\1^( ZG a0*KEn1XEo4(`(4|Ui61 ;QD;H[IA /xL)1a{| 'BCxԃ=`;0D R t @8CDI`.{u`B-u\mUB*D F`6þ qY,t@F AC#$^'0m7Cn\ȐØELBg[B ,3EQp(a:@tn0 -$Ԅ 4L3F/P X=Ri+:YBZ6$vp+ū 1j`1E!@HcW`) 'XAfj9<1A'P0BfL`,ي!< x)F QF|"Jz0* `YΒE Yd*t$/XP/@01 b34ƀ!@ r 5 H``(2`ݩ|*(!@6 f@|!W 9T+@ a<4H%@U R0XH)s\;wHhItLpb#|C?Ov @DRV%<':өuS)t `yҳ'>SΆ''@*Po!a#BЅ2}(D#&=)J4IGĀ:~r\/z@Qť<)`JJLS0 8 f<U6A""AH'W@7$DŽ`EX#Vի./_Xcz$ HECp@AZ &&VBzԤnJ6 ̚TL=tiUpӌ E6`MlHX% ` <]Pv2FP:P\s9Bfr%s.q ,n"=-qa4Ӹbg ȁtx:0B>l`HnKn 7pS(_0NPV. +0Ḁ.L젖pozeA*F!dtL0>쎂fB@pa! X4 3hDe 1! eBK}-lrdc sZs}NBy"(TA (u6!vp >43isUi$\ d Uu6 $nO`FxҬ}pM|Z7!A~IMYσ.N@/:ғoh}:ԣ.SV:P( DK:Ψ FNɎyne@#]Z;SKyДME !"ׄ?lstw8/8X<#WF`=XH2;H Z TdwXT#O#t[=2`xrL 4`g £+wzwsf1(!Zɯ~YiNvBʘHr!@"XMGŞ ^FߋL F`Q[IFAF1[=gDtRĆВ, Y~G[7uޏt  &.!6>!FN!6JA TɕdɖHtT( Ta T b͠H@  h@pBp |zLDȻ0dTmTIv(ȸ^Fg@ pFFΘsBLd&Ot%FBO6ۄtAĜGEBy0&BO2_1[ t P@AE$@#IֈţQ`bX -m\DB$ / a@".ML%M#"0i$'J\epSMZ$S>%TFTN%UVU^%VfVn&^IfZ ؉L PK)D6fpT;%aLaN!#,T w@# Q x%\JubQ(^d)!PFb+z ȈU,H @ @QU/J4{XsYef-c$Q3.4 56&6 K`HQ=dB8ϖ)%`ofnng#^ P >nD?c@Ve݀tښC C6[Ђr'G}QeIΤ$`_ALC(\[adRR^{,(qX( bS`R~G9(("(-)6>)FWfX! JYY~(@4rlTGX04ʣX!0B^'H dH^|)Cnw~VPT(AlJX ݼ˽!}fZ)z&9XF "^jsTsP}yD6IVMN֍M Bf 'jr.'|s*Y[ؘ\NA0ۊ:d2-HMB\Qzyz1 @|dAB@LROl+YՄAXL ¦K5GQj U(](J@ EqZƹ3Qڬ@t 03yQ zp25P ~Q퍖.&6HMN.V^.\صɺؑeVH6 @&%@~J!E^ ee A`bM()؀EJЕ]bj\b&!fR^bY*gjh*بM]O _"Wz)oB+1>k3 gAaoV_L_m#HZ1D^|M,Šүf,zvl_@}@hATP/ CF0/,+FFԆ Iv(*  O ؀tp -\ WRQm"%111f01PJBjƘPB!!\M%Ħ"c1V bN@q|$\,` Ԇ!@mRMȱ @-bP &AMMYP܄*4ٺ߼V zdYAppsvjqΕ)0 %M !O= ,~Ύl`@P0C3ڡ}ѫِ?N3FW ݪ-@Mdt`Q%(^ի$YƝ'mąR3цm@F4n ,1O5QQ5R'R/5S?XA tGڛ1DCOASw=*OP$?$J%ar j2(r씕  dWu;IjkH-&.2B3ED ^_6:=r li6k|h8;='FAWc6nRVE C>-d(B8<AA YކuIhI+Wx%-6tC۫mAJ_|?η}7~~7뒝,BԮC XzQ&2ofˉ x2([)*(wA%'2NS=ՃxJtlZ zMHs..D2.k?ov Ms\߉&:3;\X9[qLټxy`d@E_Z4Xip;gF-Z-y0Ms_xMK7e\t% \Z:[( B:׺ߺQsnr U?VT66 U:{ jn"YK2%%[ff2Cj""̴'ˇ8 ^O͸-%kBp"G]]M5D2 oÈѲar2b2,vyIc⍧`  e_V_E/aDbC|ě_wNj8{vmjs9U.Zy@w;i^6~vu|S,=ikYHmvB_e+%G@AI03pjq#){B@ sKDW7 '7u7Dݽ}~aFxx(J3 6ϤD: v>^4k7zG>QadwJJ+DS~JktOK}~W/4O?W_?1`[?DdJh6h'ob:U*Dܴx2(,1A >4ItQ(KvpFBdtlx%J+YtfL3iִygN;yhPC5ziқ&v 2P,bC J8"=8p5bG#@B&Int(X(&%c &b! "'0 `&L@ĐR}EF"4 Ŕuvlٳi׶}whղۙ]a%bKi hաN_DFC MlЀ|C*F:ĢBP%՚;\|p;pI("آ5am-B@ xP"% ;,.:#H0R%@QőA*BI $R*,ܒKHdS\ X!.!#x(n%9BC HP|2Tء02@SƦ9؝Æ3h"%W@l@CH7U^97ҪA"B8w9713-"T(bX0i8Pnaxhvš^*7CHwZkxfHㆩ{†l`#8Tlim=VB C 94 B8>.f裫!9`FZᠭ N3ϝdI2]TLHAtuOl#l 8/yYƴ4K"$TVUzW:>)XA ^9A~!Ix/o ;@ +DyJXCf'au[Pf0bGRL?aD&Ґa7 gmdH3ض%J$I(-A6 pn)*A렐q!BjאԈ%ٌֆeM Z[@FD w>Q;B E|M `B%( Ih`\ݠ!}6'rbP%2VR#%4oKmC !B z%2!eB Doj(HK^:@"HY Tf3dS4'8˦Nv&Mb1 %`;8B Ј)}'#I]0ܯHbJY,Jx)F3M-Ny_A5T*jRT1e@ ]3\M|NJf]NXQÆ@*x,uYD(B(ɀ D+%SKb+2z M$RO"#!܀YY~&4DRZ$A 9H ҃<$v,q d@#A7~@H 'mIry p#SK%\n7>/<m$pBZ {3ua< r[_<op Z V0oA#*8A B4G?r !v @+#P28"WzG)5}DR;#: a5"b';y1il:Ye/a\f3CVh ҥx5D hXdO!\Uzg?& TiD-YaYkS=Prr1p{`gO5 `ͼjFfa;uﵱ݅Ak_E9 ŭ zX< 8&aݓ C vTW,0Ax#չFgC܀M RP{$?)aY_hUMDzk0dƉS!I^r)WЬf,0t(ln!΁AG uHDb2I|#qVe3yK]ti4ղ&w6A lp=*y d0ۍkH`VOY:K^T6 5AoE(!J`(5I{J@H@B](聁'uСa(cC{|!BtYՌ@ hWCm>$I#{ܱ yT(@VhrF̀F|DÙc\AbxtNhz1@`з z$СdJ؁a$A֡5aj[ Q?$j*y=}mVa[]w^}աJa V*php`,46cpp kpJ@M&`k^Flca|\+k.dl,p0' 7lPG,Wl/ 5D Pn&?`^W, G+4UGlB $\3`7AC=衅PG-QdI1p l@P&\2D@C  e( T@0['pD-p̊כC44p0Zt nem@$C 'MB @Q+AC# #Ȑq!$0 ⱇF-cBO $owI6a;2hÙ 8@- x J"` -VK}5^o @ BP'xX7-/B7 HD%h!B0t @ t"@0@ ]G G4=Qz58 xĖIR@`#@`z GD @H"z$D@JvA TPmI3fRP b7>T,@r/ C VPfB8lKkQ̦6M 8IrL:v38<@ 7m{f+PSF=@ Uѐ4i(2$/ٵml A,!Q,[jQvrh[Y:.& T(AKk3*x@.zt#FYRxt gWB6a:/AN A ` Ԏ 5B X A[8hP!OSu&Wu#@:peG@ fT"J+@S5Fը3rhk˙+ B Gl$9Am0H*ZZ & #E nZ =mYz0* [nw q#PH:R˵n<: )&;Pw3H8pD=MK$-m Ł ûLbh,.@4LGrpev2N&;PL*[Xβiύul<A ^T{Y@l ԓl>ɘ f] u @0;@x>_DC y}WՓMrPzPwvÛ 7 qF턺$.T 24 (@ ܫc=ZL|ǾۂUdMzzj:BIblf%x8>5؂q67]9z ]КjSB&D!%- ɤ.qIZݦ.qȌo1oD\i\M=qxzVR }i~C8t.!9WrEKXDqts[,0SP#]FTP4v`rW/ݍg O[Iۣ{_қ雇ֻgO}$=g$ {Jf~iNޡ78Jph (HE:H\7BԶ20K~:TkwMo.ŸO rֲFf6WUfn;G+;sl%!#52-P9E0C@77s>W0WnRn;cuY5H"A jCAo25n:Pi1EwC2qD\5]xT0Yt=#Fb]UsuBWP8&<Q(‘H_Z`}u@1IhGI`VD.h@gv,F?`,aPJ9v7SpK@kGp8ĴvGcxCxQ0#d-Ud˴Q[8(_HXʸ2FzWG{Xxؘڸ؍޸2e3h5woZ0E%#T#`hب5 W5&2g!4kVkMds80~gB0`Y:~3F8j:3m6<(> (lX ؂)8(45؁#H%X Xt3nxm&@4-;#fB0S*f=<:NIע3tW9\Uʀ^\"ap#ԥ w&a'\tq,8r=`Jׂ^Ovg ?2zzu捉VGÚ$J@wc g:wԴ#Ѫ̇؊ٳh;t[v{xz|۷~ ]VZH-PF7ROOpVz*Rrp֮jĐ&SM#SS˷R/ez Gq4EGV>*(jVWeWxu˸hez?3 WZ40T-ÎZZZ[Zgӥ rYE]Ԉn%F@<:G,S^絻EW'^U| ^YzQ amb3K4Ϛ[t¹'H)iv= ׷=U֢#,mV˿wWI+نJʤAl* 1J;eYUüEqbȦU'ثZ?,N˽mepkco6U~5\%;A[EWn]Q Ԉe^yTr(!`$> laǶS]'\tyתJewеCƋG]ݤe^Ne꬞n*z2V-Oޒ޷|5%28Dum{xXk@z& N7%; J56W'и'cF-^K#V%^r⿻v0X2ܤ]{Mٺ])E~P(GZ뽲u\$ke#W0tm{ͳ";QKFat[rَs[v&TlrHm{)ɶʩaƢ\Nb/i0`J:Y{ǭ2^T]bNa?fNej!Wi P@,So_ev8p]}4I4)N:>SIo >Mv_0j&k䞍9:+INf"%+߻)M>4}zvq=He?VʓoG'J[?h09=5D7u_~N^޻hӭizMOG;L`/e7 JobNhT @D :C%NX" d|Rp? YI)UdK1eΤY͓pOA%ZQI.eSQ0UYnWaŎ%[Yiծe[qΥ[]yj!byhP%Ę '@وcСOhABhԩU!peCWhF764Ad*L'A!Lp8aW(`B;QDpбU O_>YGdp bdf*1j`77!jB"`(Zk:Ct(!n!(p#A JoG0XxrH"&Ȣ&k _ 62 %"Ҹ#8Ml #: !.RhFRPb" @0tQF"ra :ȴH N3聃 L0 #F|\I%5; 6|-uQh_ F@!Zl]椓͂l8D!չ 2Tء%` , S"/NH·V(xw`]a98 0^yȈ ոDHacCy-u%3d!*%b h`"kfs^d`AgzhyVziv%(ejzkk{l6lV{m l0L0:`hꊴ 2$!ˢ{4v( 0M\.(:A:@%ˀ$)h=|`Z6Z{-:P@oHv0(DXXC۔3ww ]O 會㪿N| }D!kM(QBvu(HNo*8ePH6 Z 4h&?@ ok`El@;<n r@|p!LAƔ= ^. 7QN+EP6GXAbXK1A p+<Vdw`1"DdqxF#2H9QpW9)'Н,#d&J&9R0 ^`?B,-L8PO@d3ia0@h:Y`) +ϛƉ:@4AAkZ) -t ָJdht %[ΡnGk4zJC@-&HBhbG[Ӧv}mlg[vmp&>W3n$̂mBoxY7M?H%Uo'%hnINMTxOYqZpVUp)DaC+Er 'QC` |A<^m~s\V}sC'y{t']KgzӝtG]twIMm0t"#sE1Qes$/x]9|u얶{w;\ ]-*Mwܥ*!nƝ"$aO4DV!(; pT:A ;R" tsY6HN0АN~2&5IOh ǁ Tg1`f 9{CRR,S@6Bmt ]ƭ((0٣==:SM+529I!P( p*/+h0< hJ|r9, k0/ kB+$+B.l. C1/:31 8P/\ !x8/ !*)QqV8$0`"'r#8ⳝ))øj;>>,(kGHD+78tY5Q qBG1I'c;  ?IQ=`"(:$D8kx'ɰ?;>}r+Eț8 \V8LY<) *pw|Q)`y `{D UL=L;LG#"!+[ (Ķz5Ɯ5c#\+;<Ɋjʭ/hEiwIzP-͢.55Ј",$B#5Įp6|CNΉN4I@O ,O9 (@Ьp A0tOXD ü (q؁^JJ9 M\'HniPRѵ4@̐Qz{1QK"PA7ہ Pp'F @PG=)#280"-*Sɂq4 8ˣ",x"[?2Ёx>==Z1Mu @8R~[!H;q{'= 8ϫኑ%] Ԧpd٨iiې0?l=cp:('i8D3:b}R VeɆxVTSR?&$ 4*!*2d)Ӈ詚j&(<5` @%*0# < XY1XE}Xw/rU8 `7!l: f:ϬYɪ,Еzؠ2)͈zцQx `%Q дb²,Hp]ϝէCT[B[ [ ܤ[-\CC)LЬQ'E G5\Kcā%HR)* U^\Nd13%U FrYqR K%pEq$GCŗ;؁8 VÕR-PT5R2H}N"@ 8ޭiRR&U+O]oUO}tΦ<̒ޯ蚋敁^Rs"H1YVX3Yߌ ݁0݊=T~+aU×e%9`a@ b"V !.b$.b8\b&nb'~b(b)bt8$H\)@;q(t=LQ#ķpD$.̋2%p PEV/Q%t*F] kc29o}$bު.0hGPӤlCm HF/G6 "гH6)_ ^򥪭.Uuk-Z}RNJh\eْ4P5dyL"U ,c/a3Bc3ٞEM'8/b0-gޣ|h5^ EWh9eFD!Ӡm5 H6oč x. q< #Pbuj0)42Pjx=#I}8#m2UeɃ딝O94D (d& ehvfÄJpNUqOfwlMŰ >5`9gIl x |!MMY "n[c654j\b3a.1$oN-nno~o%vO0ĸ\>FbN8"uJ\hDСY{cӍFlŁ&ȵv,)ojS̨1(^: 7i̠B+ޮ8$K(kj R#Iv<#'ގL.^rǗRlqנ֍Zr$lǻ |@ ˳=V<r-ށh 4K375$f5tMЂ!TNB/`r+&na*F5Ma,6GN8.`̼Yn:l.aЮ8\VofO,lvhhQvj':olvmvno͕qi-JNl"/PjW6]3]:kom|CqDfvwƗ( H~G#GH KPT#|8hrGVV%)!xVFs9o 7_y*i(g(uL.8M:]mT/^N6سv|u¼l{^v|v?|O|vU>Y UAiևHÚq784\hW 6[HŁghp]˿ }P0X34q$u %4OQ@Vͥ-rȏdP }v;jf?X`.EGʈ{԰,h „ 2l!Ĉ'Rhq#0r`#Ȑ"G$ D00̘2gҬi&Μ2n0E2:-JLx1B!8! Zr7l!x$ZEj„SD ^tЦ R1!&$ 7ua"@,J4ag2В.m4 )9ˆزg^ 17]a -/ 1/A zRQ*H4kSg?G ? ioq>L SYUs@ Axw!jHb:†!8B$gqv-Ł) x#NHNA%UauT0L8@x㑘PK@s/T%%| n_|1D&찃b)]B'\@ ;@a]pOz(%ID:(jJPʴh*p t*n*L[7 *Ⱥ++ ;, *,:,ђZ{-j--;.{.骻.#lD PYA]9SNv;;tpLD0iB` Q 15 %!TM0e] T\7 f0L]baYKҼ B\UF,ƄuV{@H8D a1P\YhT "j6psί{ 'kf6*1D1P`3^U& ALXdR(3E '|v_OT{GnJ*8SPR8CbE ce5 4sV\O^z`f[ wAI`B`]; LÖnxikf9@c36Lv H՞a=#|O|Su3LW!PޤQ >l>T ^31P&DQ8HyQa%JA(MJW*ߺ/iLe:Sd OkLvp1űFA8HFkHsZ.%ř,J "eR*ndURȇJ$(C)QZ(<%*SUj˔|%,c)Y>)%.s]򲗾@Š-&h p,@l9Y+Ԙ5i5@dg T Tʄ ~d iyZ pG1Bq) @4s @E52[p%WOK7@`r``86d[0tAЊnFR]*9n+aHE ae@2Ix *ɵt t$H lx]UPz"v,Tl.0BWD7ZB'M)}jL۴lU@  +(I=-sR󱨬1qڅ&؀0P6\tV<|6]ϭ{A]>fVmo[ܘ!7LJ`X PNm패=|,Bυ3,.$KhY`A9-UX.GHMղgM@/VU"Hz$&Y*/ILd#Mc: t32jV` rnc*V#>/s 'ꤻh3Zo/S<3sAQ1KztA(E9xh!Z6=aR2:^Dq0 کt&GC` P$) 6Hx_ `Md@z['hhAAf]AXOUd`R%^J@ԀK@ J@4ٛqʨş| \`LDk~^At<̾ufpXA DAya[ Ɨ6"a @WA:lVgI8`eTQAF}iăDȂ4z@xAXUha|Hga m&! I0s!bПv]L@2}A,ğ|J dW 4!h|abo5sP4n#7v7~#88#99#:D@ TN L PTNN@:J]-^A @؀(M ,؈$b$N25ͤX$Fl(P_A@ ˄T @d XZdN jZ`xdjS" b  |ANV䷽^eWO^`Dj!]fS@UA@ 0NN$TNP $1fPFVid"hZ'ȌbAK&b愠  Dm&Ih$@ӜߜhFu-5I#55b<8'vf(vvww~x,y'zz'{:̤ D؄'ML\-i x}ݧ@UWʗ @ڈX Mpip]b@٘ . ҅>Mhӆz%$A'm N@F i. p Zuj` (JKْ)):i0Xd@L@t‰HO$:[an@ rݒ(rҟ >X 껸! > p<Q6L"vıj-*g)ъh@RP멶jNj k¦@ ̧մV+2n( b*IP]Iw!2R`-U#-I+Z pk# #+Љ. l{>,FN,1E0Մh@1,gXSfVM|(`,d DB(͑u۱(ZH((iaXF%pnLPzD"HU\ʐ i>ZJ)Oۭ` 2ʩ鑶 TULHʊFF^&XhT*TAGinb*v a`a*r*Z霐 rݒ +n(@lqk  B / [lGnVٽ26c񪛽+Ɩ`k///8^,t\X#L(PMx3QeĿĎg\lPL$CaߍSDLlҴP]-*T PBܥOTbjaS­ gް^"Z0XU!XEtTG$^, \ A HS& 6/ODZ)f1(AlAobh] sF%\&o2'w'2((2ÄEЄ)qedFhط0 pUP` PfK%]0OVL{f25sՔaqHj k],2$ IL+Vof4m6" mLC!n/wj r37tGtO7uW%Eǧ HVs& uzDp@FjX 4zDt |0 wV`TA3k xR6˼˃Ĝ2 PHa7 xX\twɄ~(6VmUBfjB*$a Zt%xdi  Rn3(*h3*/J++ߝ N CP@2#NȪý餕^!8 *[y>'ꬵޚiS^mn[%@!2uA 8A> D%M>VKa!t+h#Щ% 8!lqj~HX +Pv(J A$,uv,襏F|[H@VmɬA'&BHa aFuz@C @ SҁO 0];T2G{1T@t]y``E~0 2X [IR8% @B ``]!; @@@U6h Dp!*fgBp v؃@.&nP:q] HA3HbȬY c4eA xvݜ`PPKLn)J5P~ 9 R`GZe)ZѸ@C&cݰM< H@@R8KLi@ $,n) RB]SQN20"`ḾE @ -}S)UiP`<6; p$ ܀b! [ W>Dd)[Y^f9Y~[g;  yFtTM&ق2A pZP&&( .}ELA0!hN A$2mcD,F5Jv7c*zYe~&55]aҏKe_)DpKKe'&e2=fo- W㾫 ٹUCXɊvڰVmq\0Kc'ѰL_MD ^A0XU*([Vtv3hZ0/~™+(,7\ /}OKρ ]hCщVhG?#w@ޘ Pg@Z#@dkښr żM@Ȏv(C ؀A)+  7ЧwhЃN;CD[Bލ n@c4ATz$A :} CWf"!7׀ p}F(NJuW]ډ!pԤF IGE8P'0Y $ E'&{X %ϺAƜyyAWx2s )^[;hhʦݘ<[!,v> l7A3cg0 Bk(P;2BD4H4fģ@6hR=34AR,XR@1;hyBD2X@APB]ԫVjʵՀ! ,u< f9tA30p5`pDjЩ(&"@B@CCI Cad!KTPΌ?MhИ!dn PիV!,t< U3bk 1 5tF5 %k xxitF$ep'1%"hh1|5"da$0Ӂ! ,r< cfh33 cu) jhw z ;7 F?z8k {(u$I$ pt kb0'" ف!,?\H*\2ll؀ċȱǏ CIɓˏd$1hɳϟ@dYpØbZ9cG ~AƇ$f8f\ʵׯ?XQ ̎@#,6j߿ZACi`I61Ð#K9pA>0NSI0 asb{n^ͺuAhYcb|l<6 F{T6캹sHx>N;zpLb /aP؅ 3: {$l%&)аAt uDAz߄~Ai!C{w("BaHOQ~{Ay~#Xq1MDaA,ёy!m4XQP{thVye3Ih{D`c6sVkeqZWAi!eߡ`Z˅*ꨤ^ڦQ\{ǪQQ|A(*k&"F+Vk"vkk覛l H -PnuB@Jߡ,`9jI<Ƞ}%/Bсg@C *ܛ/uh#Q0<k1%i@ 8@ Y( 3rs\Q7@. ]0@'C60ld QPL8lTp Q`4CX(G2'o z`7H=t; 2@G_ΚE0=`9wPWAC2 Bg=%F.C  ,t@GBkq4mD((7׽ሿ FX gt! 8  Ah=`G(y_$A7$(@30| 6x) ` M^;Al/f؂! t@ xd`DFd7LA3Ճ!Ta@NЁ s) >&neЃ5 4l@@`~SA`0CA]@CM 6N@x lb;|PJ2P@8@k XL~L&d\,IjZ 4nz 8IrL:үw &h $Gi2 30ZA2# B : ,e+SDgO3'8ӎP4AMjTղ}-lc+f<@@F8Kt5x@GMFq`kt^6Wȇ /0 r4u=dG;Ś+$"ﭛR퍠{S` b#Xӷ}, & Y*(@ A K% @0jp摅-,Y#@hzNMI\b(JVDE?!Ar`fo`DiVϹ#TXI1%4i2l'C9Rd \^ؕ93+ @ f1Y8l20gL8αwxZ턗ս0(Hd `Q؁c@U& s4@+%(@l f,3ς6, UiH e# a)F@*8;"&p;L%$Ҁр#,Yߒf7IV#O& XFL@C@ p0kR8S-*0A,ÀUh60^L!܀Yp[uX~ @cJf޻ "B 4U'.rdip`C #p`o- c16@qu.˘Z D,` 4pm¡K^!ɋQ &Y*凃9H`2uN M0ЃvH N|$ AGuL@hPSߐ>2Deu!P ` @|` &96dqΏ[dϽ{OW)/ _R20Shžxo}q 6#CfQQ203=gb6pS&5SS5RZCJ.J1e6h6/S}vUG#CY0nTNT'HAFU&G30_:3;s;V<]#HpG%+Xh5QX\X%\`?up*8w?=8%@0@vU@@@ @cZM脭և]@9DU\ FhCDw\ɅvtХDLD]5EUtEYV\4L2zh}7fcgFozv\)_`xH_W7IyTr`K &J[cJ/JJk8!0[P`LD1=]qbGb,&8xXa4؎a86~x؏G.BO$Y//dNeBFh1rz3Qip8yƀEjx4IC7KVhhh4WiiY<9-? %vT'FIsn;<HqlmFmfC٦&v=&<4Yhu~\xXk#X[PgXpM3HqqqrbyG?g9-D~[0Cg\AԈqP'u$|W@Yu]:`mކGQ0`w_B%3ȣՋ/Cyy7?yFigz֙DD2b+f~明5x虞80I-MYi,ٟ:dPX5PR/nCGc#CW$P(2%g?I88E%4RV55J2ި^-X7W@HTT-zv<3$qK⦜1:Z:VbEVExVl]2&5"S==ܓX ZrEZ>s"DZp>:2QkYoYrxGebg9"Bc[Ɏ^F@E^f'69]DQٕ_c#rDGzmxgJnĝxID v a(c #K4"FzqȺJ,ڬhZ:!ںڭ[~ = Hft0@z7$3&fcVfg1s0@dfg89zQ'TvG$Y(8Sj$vؗNSkujjk(y0&+jXk90&{{Ֆa5Z!7A}RHo!n/o1`oFNn^~epq#BPNhʡʱlM8) !’zh)8TU M9hJT$^vP\e>,0WAM''Y9hz0όy~KѷDH՝&Rٞ9\|9s/Y$ټQũmaSh~-Le*Fi㐎| 3^c-~霎c3>^~ꨞT4iP[ec%/#۫z6w0n2:FPgz8Ђ&* FKsok2Yyg^Tc $NQ͔ͻ0Ȏ1DC>28.02PP9lv8DpIp8miqϫ p8^NiZ#pc.9UqW@7pc넓EMLs=qݝcёu*8vVq(&.=D5 xMx2-8L{=@?0BO0T8R;zW |Ƨz8 2s_-&ccO:OtO/,cR sV~MA b0cyBKoE)H7<'zd|q.34OU\}! Pi0tA#pB +/pC;C"n jPAAcp@8 jBF:~` 6LAHF|S8 +DpNaD8̈́vX„, nࡅRN@c:$@+m sr҇<H2ޮSOR60 H .F!(S^r:`^9 `PDm14Ƞt[~ k4̮@x$s(ph(@78 8a)mDnX BH!n' x`#¸zN!(lq"hbւj8Bֹj0|9Dʢءk2gy2z Da42s4lS8wk 5ˮS9^.;砓N(~.q&7CW|qq#|r+r3|s;sCo):0E\§ޜTtsaGs-2(PD5L7tOs @%}BV]YVZmW]z=~1ntׅ-.݊k^p/~/0[@J'>:Ѓ!TaJ|3Kl3&aVBq3׀0dN ȦmJP[ U KdzĈ4QSbXE,fQ E0nc$cxF4QkdcF8zSL7"Ex 8?TCn 3Z`V`rp+Ajh;ߙP&LAEg`92 ܡd-QEK!H  1C$`ˊ2S[弧mY'XܐTAN&O dp Df -aE$A[l$`Ff;#OpaK[\ub& i!6&P?6F0n`1/pdG!"Ҏ]l!\C @HSZ8`<Aq?(\/%EzNږ,$)SUT!dr;D*o%p& ^#%9OzpaXFVHd-{YfVlg=YRv4\t`8d"C+Y|-MFT"A (2)p fvIaD(%8C%LZ[Ƣ@:حɖ|g`^ `F=*R{f4'>V'wt`E C<'`izقZ *$H I$~s%`:!cH0x )N{S *&&`#@_2! OO w:M/zVRI`_9X# 2M sK.IhC``5`p)s|g%fC;pHv]%;O xǿ^lϖxZ2mp[܁}AfwVXx[w}o|#vc;IӁQBH;u-2UB>|K0]JvR]D6 NrɒK;ox2H-Vrvɩ)$!K?̌6MJfUverck~P9ŮYEFs׋~!},0]:~bԥ0kjA7)gs &0hLcXA `q>J5*[~Vڳ:ح`!mdyo"y^M,׬^k{>|?g~|G_NQKgoq&'C"m۞.eGq%Ζ'~ @RtspLakUb%W%%9\zP3QBI/99.?bi/!Ȃ{҈o:2'tR'vO(y;gQ0k(J/2 H#'~ZCjڨQ)5;3.X180CFҟ(R ,؁2P`*rO*p6 8 ʓ#!#Q *ƹ "3F,@p+j%++L4zn36ۋ1kX0* sDB>oT;noGrprLGusu|G>G28hG?547#@?1<hh?8'/.@R,x G]UR\@YrcԢ@.u6ms @3؂Ӑ=znށ!(,m̳#NJN,JMuTO])OD8$XxM!HDT6(pS ۭm%%(z% y P" vuOmbȎ!8 oHݢH?COG /95Pm /uզJ!HPؓ(.`,n(`,Qn .$Ye Q&e偌\eL]e3$$(HfS"=J:99UQاe cK" $h%(0. Zy0l{g݊[".(ڳK$hh*8/r3730 f38:$]Rݱ3 z2u u%.ؓ =X6]Eu=tŭe\8/j)-84ͼ8r6aɑ]PMַg 8  /ȁ1P^0/˞ 8  `#pSb!ޑS7%`$ݶW8ӈhdCHٓ6cԏxl(_moT>_3o^On~ooT\ QV&NDc]kl+55sQ&Ƕ`2 7!mǴjvDu%IeoPg5 uRT*/uT3FoVouWuX$-@8ܶuU VT_>NɆc` dOHA|5(i&3:z.eщV4ZX=|+Nc0 o.f怐#nߞz0rJR A2R' \f16zrNZ 'C4G:YΓCmR_|%5lw)+⌞6(. {3ZB g L.,h B2l!Ĉ'Rh"ƌ7r#B$ʔ*Wlc| R@$C01HB-J/hAOFR @ ^0ĉδСMc@@zX[Є  P㡊$Bpi8Q?na#.6NFs3}QX4ԪW?d C40_1ʫ_,c3Gp-48`m^r׳o=ӯo>~? 8 * : JxYx!j!z!!8"%x")C1!5B 1 E.W]'`ĄEiB $F:X!P;D/X48T\YsP(05TJT]rdC22t!cB$pp>@0 TF6vEJd֩`l=pp@&(ʨOJ @YT8, 0p լ@JCXkv 5St&aCܰ KQ, ;y$ QoC亮 o`H np *1x=у \A C ?Pl#*P ؁ =$aL &8 =+tAA3* 4,A`a`:t7p yQp0Bd\}40@4uCp0& I;WYt(toD,e@MhBH CPDp@?!Jl+[Ђ@M@l'}{j' 1 g#ty((,I@\E@n B 6t@YEo>mh1Ԑ 0L{# q~7ɀ.5`@Tp R k+h(.&0.E< `yÔ`#@CZҐ"=BЃ/';Oҽ`22<{\`A(h+^Xb {\B"5 ^4q8؀sYBMdPP'WPI$"HC,IJr!Nڀ#&7bMDF 1A T yNt80X;L񐧓  |&4)M$ 04mrެH5 o<':΂|'<)yҳX") ``jGQک;EN/H'76R CI'=&AئT)1I~8&D?H(QtxӶ5 Q48Pu((`(̪QԷ  gHV] == BSaJ 'UGC uf.sK]j׻5z^p6\C0 r-gV@fݑX +̓PKTo]-Qݤ8 @3tcۛu0#ARk F R&䲍=jAX cVlnԂ*mO%/zFn^[tZO" /({ ^@q9gdd&~(w+[Ht Də @ v e 8C.$h&?9S.9q|Ҽ69s(|𔣅h@l䠙2Ah<"$U\'ν*Vj^-C.!N +"Â@_X *h*r20OMp*vW:-|-Yo^[7&4Do|G[c< @?[9OƓ9Ȏv7ɓ-!U~w-τ Arp*ѴeySԃFZ}EXSﴶEMc&[<#)߂P fE,t4/]Gv    Ơ ֠  ]ITk G@DeEɔHE˜`օH\aC@   G@pޥd UqR ~^D ]]K VNH9K PGEl@ F}qƘlq; )NdA ꉏWn^ߔ<"C@(/Z|t|"`YuI** bEL_PeZC@@# !tAPȊ u ) [ H5~ZeCۡRq}L|AaU]l4'a*q9wG J֤M$NN$OO$PP"6aHHĴȲ,@Z}8őDRUYgo0)^H@IMd etY@Q`;]!f_)ba}Hb.b&AdFBI^2u ^)Jc QW Af(ل1^،MٸSiNijkȧ¦l^,fl}LYg*6+-BdA18ѼJQsOtJD]g`g9# @W>ƇQǀکК+HM E(T,}姕gT(C8$[\ }uv,ppkFuɀ,ђGl,ՒJ~/I$ӦںQھ-Fȡ--ݎ-mod%"!RB |A]U"DN:٭ iU< ZF"ĩ@alUWUVAb eaj"2զVHk oӄѥz (sA.t* .,f|" ^0@M#4Łјe B z s,L& xDDEe#r @R߬lB'(hвK ]0Q y$lo :-\fm$1Ml?1GO1W_1gqf6E)pQLP8@j8@@i1\@+Y LJ%l wprf(,/(@EhX qEZb 0HO_7 J6_@1W*N@A*fwO?SHoBZ;љWߏ*I†s 'MFs6q\\ i ASyGR |GQ\hHw@|:z8nEQ#QgjHjmA 5Gc_UW( ]D^ښUJdY=;';W匳s]JbC%^''(u)M_3.'8tq 5(8@ ƵdiJC{P({sK<<+C/[-(seeX3vg 7IX <2$SF6rCWC>}=AT>p\O@'m^q3t7; ?:WupoN'nzF#;zq|5[XTM @!M:;C|/_ A-c| oW@DI  $c &b! "'0 G&L@遑fCjHY#I(0"7PҚOF:jUWfպkW_;lYgѦUmW jĶb1%ws @ .~$.| J9(  [4AJ0: @FKen[)`߿>xqǑ'O.aÈ3v|*"9 ׷AIE Tࡤierd.8B|L/ t/ vN ) 1P3H<20[vPJ @ȁ̠P4#{ &52׆lj(CIJiN3Xĥ.yiKS2L ׹ 7?Ȝ$HLX K+l!$xO!5P: ܝ!QNTzE1ѴJGKQ% ju fæf)QoleR ^* N[L̈́¤/Ti2`j '-0UKT+DA uY j\+EH ]?B0]1a kMrR@(@)\` F #$1HgA:玣#`+ K934Kv ]xlO02Adѐ&3`Bf6.a1%"S馕R0`!TҌY @ or (q5b{~St!m}{k$!q D8,7zfi;PlW $_) 5(B)6t'acϘ5qc= :`/'2ʬ.H2@̖*ݞZ ߑZȣ}41ɲ4s%䶺k^&'QOH6 8n(@oF0Gs >Ld@ RFe)0 4P@8 EF" 08(XuFyJv@JC8^@Z`/ITT ycPg | P^p!,r= Cfh33 ck j5j <b }tXy32GG _!,r7  6`!@$q(2P pc4()D6A3$)WT 2I; :t!!MkcDĀ%$:'AJb 4ٓ43XB fƥݻx! ,t. |1 ^R4;  H&F' GVa$8'*0<Քۇ$x,3,,k4{*ߔ{!,(apH*\a#JHŋ3jȱǏ CIɓ(S\ɲ 0cʜI͛8sLϟ@ JѣH*]ʴӧPJJիXjaS^ÊKٳhӪ]˶۷f9 aJQ =_v` v 4l`$p#Kfǎ3|A!b dG<3hiQPCI31aK٪yfaE 6o6 Xp"6H (ֆQCfCrn;|CQOb;(b>|`b@S 4 a u9!Za0d(ul@L F co) C2aCxZ=n#3`"bՁoXǕ00Pn %aA2ŸAul`Pj`0@ nbVLxd FX]Y Vk@qV愸 nlpU]Ӧ0ήw4PGaEcX,!! RZ1 nPc2a'HƯn^cX1ѱ¹k)oLg_tl`8c0 <|S{LkR dV(^L(PBfy@C`) 'k[z9 Z"6vbȹnMk]0p?@UM`(yȪ0Mlv6h$1 Ft c`m!44q ӀjιYyj4!4l.mAv0Qn)`!yZfDGS6O;Zt(( d@z¹!'cd*v~ .!]߼Y2Z>Š ܀uU'aְuP :`6 @ǹ-#4`L;V5@"~`-= CАeE\SuPܲ#"#aU,4QD5 7pz0ZU0=tATTP MAlT$T;,-,`HjRMPؐup\,X` uir ygP7d QԆN$pcZs-b`b7z01p@D}6U:!WZMtӈT%& 1i~ŗhQ7aMH h &Ҳ nh6PP޹%E!>{j S< k @ҁ7˜~`*csQh>PT ?XͪV%cm&]X8 UⒶzc2Pxͫ^׾ `Z׽Mb:d'KZͬf7z hGKҚMjWֺlgKͭnw pKMr:ЍtKZͮvz xKMz|Kͯ~LN;7 [ΰ7{ GL(NW0gLS8αw@L"91&;PL*39N -  eAzd 5x^)gCV@~0ȗ|O dP @=w@Υ|%'#C : a4Ǹf.{Z@B= Y4@LoJ@ 8,S95@ za_9Bq(8Ϡm@PBaC=P"L9'N !(8 T(p,@D׬`,$x!@/  :ym9恸?x$aBZLUe;0 1Lp&\ Io@vDFd~hLIp$@=Py?@ Z.7oF,/*#  PKcm`qeE7B`60}@=f{$W{7d`'`dpe`&d\10@`owh g?0ufj8v mEJȄG~@405I6d748MgxdQ "PCmP8$TЄ;E6V mM`4$7l'pAZb=pz('F%0#qQ!q^FnFi@7yr<GA@`z~p&zc$P9;0u=0U0=P$r:7+0Ip/Duk^P< ɐ,P=Xd9h^6z>cטsK4P^~Vh'pmؔO06EI@KIg5p$%Hr?*bT@Wo`"y= "Ba>vw=o?phWo&q9cx`2}@@@z#@iD&J@8xD (f@k7dy.?`p6p8dI Pǘ67d9DpnGczy_?89GutR7_C|9u0wڦIGB;`)uoFs`.nW0 qaC:d Vzc(a%@J0za `0!z(*,ڢS!,+\H*\0 4l`dŋ7<Ǐ CIɓ(S\N.9P"hLÛ8sTČM(Bu*]ʴӧPJ fXjʵׯJt8frbO-+3h&`ɷ߿ 6i ;Ydc z@,踳Ϡ&^!ӨS:N5X>e/ȓ+_Gwi1FXCË"ӫ_Ͼ?(.} ·e%q@b0g& {u`idձmPC?^ E !(hZof 3X@_qG t` QDidtD3G  ,ԁ lJ`ȰGh9=%lfCfAm_o'~eu3 Gj血Ɂt5މrB)~*ꨤNHꪬꫥj뭸Z+K&6RZAt@ppCA G ?覫.( Bk,Pt` pb` o4Ԡ³uhw &F #>P<@XC\| q^/ h; I@6a6 &@B\w`oTP/e(, 7D1p . [ B-8&`DIqEQp ! d [ m;gG& =1@B` n'/RP j.o+C yC80Bd(χ`b`oT$0‹n0# О mHW ;4~(A2P=y ԅ.@D@K~*8\B(-,0}Bb0 M!Ar``2x ʇ."QBPsKusz 8'A7F x̣z0*  :0#҃-Hܕ 郋n8dA/th;00"z)K[@$dP@UhuTiW 4-Hm  rp' vHT*|e3ik &1q2 m.~ %ЂMhІ:>IъZͨF7юzA t JzyȀ»@-u-pzwHd3*a do% z|QoIcs)Bp%@`  gU &%O[e `@(šv ph %3"Rn=lbˉT oʶf9Wqp`xBjы~Z I׺ܪ< !L"D 8 '<`@$ ?@:P\u ^VWWr&]Lm\lK$E F`mb`bj% Dp8@ED2|v  c+`  ʅ=MBp@EAFQv9 _BXIPy~e(|8k6ͱ`vkp2Bx1jW1M#k,0d&AGSDW pPFJ,k25-hy%X ]@_ K^dB f̻ @LhjU7090Ǿ milm@ !̨Jv FA~h7NO;)6uj#D8(۵p^Ňz<<#ֵԨN:VV/xkUijMDsWAִAլW|+<ڧ&be-OՎ[E[{ uaM`4#gW-7pcu)kuDjAcsY A rV0I#lB\3K1 +lD7Qzo\M~)cYhǴW5~Oa_"B_\JnnQho "8$X&x(*,؂.x& 0<sR$i- Ao&'t7qQ0"M%RBD.`-RrRu-$l6T8C\̷gtC4N5Gtt5YtKH6f'rs…rC)\Z8v(w02@KxF'p84.|sG;uwcy RB9DYFyHJ R13Xւ-O hI/@(0%؄F$S)11Q7sOW0J3uoY(*IXBteJhtj5Rx""B5u7|[cQv4Wcp9Sp "¥.q^CwhէwH#f.Hl7l$>Q`ɚ=0".qnyrShzA$=J`C(85tCYQC/H?S~3h2=0F%}B؇bRG'r|6dgIyj~~O YEŐI*"&Lkȑ:"2kɏN'lQ&@:<ڣ>@B:DZFJ1M9E5>B*҃YIvKȕ'Ҕr5ل[#/'%ؖYAY)"FtEttv8k6*$Z]UxXyfZ凎!h陲.%g!;hw7csVY/U։+*xZ)ĦF(y6 bH7<`6i, iNvwڸ/i w}fqׇgv"ꩉhZ0(@~u檳hRm~ّKxM3[.G ʰu;,Ky۱M'\å"V/S 0[i0{"Q39d7fف+xs}8Ч'!w4yIoڗs8 v&ZWs937b<Fh?.@Zw5Y{mrxSZɛ F.ȌW ӈZ*7@Y@*yyk{{5YqCC6{Z~+8|ɭ[i8}iڟh& ͪG(n)|"*'z#zȯmJ9N2 ۼ;ԫ+[؛۽GZJ1:HmSMiP(5q>UZ̫"A4njp.it_Cd.<=fW)SE;];Hcʍ]C)$/w? +z{HaIlI 8<#,/y Z=H,"]l^SZ-J+&LĻ Xl9<ZB(prȵ]uו]]@a;UI^Q!g̳3iXh_hx $̽l$@-K.v/H@)c}V-Fb_^@$?Pi@r7|&YlyYDKQ|~nNzYE]!nkNJ $`HAD]0l|gWWSǞ@ %<r|8n4Y|>@g6(KQm0OjKda.Y`;ix75_lxlT.mF=PZ.rnlƠM[j0tt2.2?4_6l@HsݹX3yoB5;UgPdZ[fC4J~IK2&Q㓙HdheO/*_[},nn󙊸qP#츱WI*¸6#&= 9U{葔 8߷k70!Hj('S쓮g?ծ:J0mK*e<&0j4Jo )j9 _r<&r@B/SjG#$XA .dC%NpGGhtG | IGܩK(eΤYӠQFP!&J1*1m.=I 8 G )T8l ÄLծe[]s.%q۷"G:0`yסQL YeawʐO3'&T)&C=N$n/g|iA*u$V8h`ÈկgF@F}vIhѮ6Jڪ A 5vRCC\$ꪬDTqE(0Ƌa lpoG{tF#F E`/, t T/ƐL8z~m6L8F-sN-aN<ς8afFMqQFP!`#8xi jA,La* DhbT ! S{18`XPB/u2QjU6W+;5=d3Eow\r5\t1]vu]xu^|w_~!_x` 6`Vxava#xbN^蠃9 4~jen6.f}I:@y*"X2QI'|1~i*H +꩖",*M2oF{ް !Ʉf0$,˷'Ҭ>HBZDVs-0mM7|rsrC*\ۥKnӻG>Swhp,L  AKP + p'u"~EM,rv1^%$ JV@H("#r|)Lc*ә67 N{_§< $~t n10ԤGr_ )MqS re+ǕR‪2ŁV*VaĆ+]t&$"BuL"r+ [{)hKێE0QcxF4Qj4F81pUcxGYݎ 6G+J6Y4mj\qt# ?i4_?tjPe*MUƸO @<:0*y+SY%W>U^ys-XkP) M~v]kg{v]s{ݝSꑕ-,'VumMNh'6PUnh"RּKggk~cnஸ8"``P$[.7yy; =T aW.%U_3o!zCxzgwo|!MT`#@{ u&}TXyO7X>IGZDYqz!< úk(,:@ @ Z4@|QA,Ax)A-i瓐81:A 9=#(8( x=i+H :9A!2! )@C!9:3 V$?)eFjFkFlFmFnFo$C:<P.R\i5Ĺo3]sC^k`[KkW> A9iB[<)hkG06PPnC Z 8D_=ru=\@DL뷣23kع6бI%SE4蓞9Ɇ8>B,99J)"D?qR'k)93ʄ PK PE#Z?K+f"b(@!F;:e$Kٺ#b_ ( L|LȼLʬLL̃PALL M|pT$xGGaT\ߚLDP;"_ a +Hu HfBͳLTDi2 7okҳ4m>-XS%`h#)m Z+{PPiƞ8,l8Ę=jSN%/*;^) "HH@p" &$(!(mۜÁ 룔O["L8Z8ObH*(&(4M.MJ>zq$DC\P#ւ?+%H"@x!d$01\7/8 /Xmߚ{Ŗ= D#8 %XкsJى 3ԥ%N" Ʃ݁X mkFhgq,ң%;`;Q]b&nb'~b(b)b*-'z͎*M+LryABYMY7NF:E;TH ,tCUcqOTI%N84v0cI?AUI7QYdI,818:9V"1DF #îi1aUo !SKRVF .y-`V{+D}+?9X-*foffqpgsLgu^gvngw֛+M4/R[/lS0G|SL T9n(S^dKBC8AvOPu5Ϯ$O7L0ClNþ-+fRΏ}~ T.;b Bn~>}5hh<<%.- 2TAmWT0TFETn, E.7$yMӺ騎Ԣd)泩iNV%nƎZe1}mұ # ) K-U.NZfngn =OV|3?ba>WǙVyn"o`K:6kAºbfp~qq2q*qqzl/=,UɆR8qbqY޼ȶ-nQmb&ʴ͊4Ai8 m8nOKix KZ|㦎NN_ix(oGv,.Jxo~ @ uU9/bʜyv8N@4XC[wQ9|cж~Iwi=1|cd㚫vp?mǗgs(7sPOxKex^f9}yRL ג2[Ͽοo᳂`h,뭋u_-}G3R(qqq?RJUttC̶P: R# I3CJa`ĝ?`̨q#ǎ?? Hr%˖._Œ)s&͚6e%a*U Cdt)M@Ď .# 6D90Զn72+w.ݺvH&J1w0†V@;2i,OGDQv3g{;`1x&-'@ȐO!78d1w6!p0ࠢljC@>čOq3w/#0r`xD/7؂@%"dYya0BէFYt=D 69mdBFeU l!6PZmX7F'`F[CY p2 Y8\ŌWz#FHI fMP Q=@jdp+L b!H׃l׃ 'P guE$CkXrȁ;Hu'J h1 d B ]Pfd) fT@8&Ȇ I`D0 V95Nə EeŬ֮[JFKC\AkB=0jr;) LpG2,C WS\c?|#\u<+ܲ/)G\7㜳;ܳ?C]P5tP -B `NJF(PQPq=2 _#IQkMc Ac@bY?TTYV\ycZl8m)cR_pЁ T0!E-)\őr=]^vY5[^17@ _3EX7H*b$"F$`"EȢ0ػ 7T*_C%L0 *L¦:zSq;APNu.(/ _xzPd`@ g ufo@.Uї@y{) _Bqn@b49I,T%{I~yVS)5B lTkJS%RҴWY.f+W%Mh E-Đ٢ '$gN,Y&HAzjE5J]*SԦB5RKJիb5VկkO jNHǮT+id^g]sD`$ Z@|Fd"yd_B2(a7\2Ih@iYM Yr-ފMyB̂1F86a=r;n=z;5XG1)uԝ.?Boթ*:24α$E -i[$d=qvtuVp]hK8絭Q.b3<yɸ% wMþ ݵ { W670`#,Ёxpg#dFc ϝx02X'|1lorɇy_ D)ZlCᘎ)9_]J 6Q]:Bm եhݷP]xYUH$ f2!%ZBaJaZ$irazar` bt@d^ n \%GZݕɋAަEZDb9ݖdPPVfD}ᄒE=ۤ^kɋmڶ bTnyBDE lHb8op1λQ3iפ KOVq{H$rA}XNݐ9 :H)TZ~Qe5H~u?5퀔aD(A}#<`t5T=\&m xe`]Ϩ_$H5ڟ|v F-nH ]P-qԤK٥pPeQ"eRjQ*eS:%dJTReUZUbT_aH`IaG!%>(,Fw@$ɖfP[F %b%fe"qJR[АBe& d(E `4#bk"m1Tbb2-_C @ R9& @jpbTWT T $ghH7^±c#}9&;-fQbo&DfbxgXAx'eIJIF>F[ &P.śCgQy@xtM&}sٰGYX䚩 `KnM8@ *S|A |edȉЀhQTL2iS:iJii@Zjрfriz闂iH DK,MӨpe`Z6)b\rG]$)KčeA%XtRabhm뭅[D(@~H&FPebmfg~fhB'ϔ|xNxmkGs 0-lN/f&6)2>jfpbp2'L!-gsgzjjWK(O dm9mO:#;Q!c.;*ȤFj{b(||RA}'\$QaPjB(5)4n+@RkA%NJ)W耪 d̍biii$lgVi⬔*lmОDi}vW"ޛinL & $ܤS%Qrz&:*6Ld~Ee^ffEz&h_..i†lFkzFb$Z*R̭ 'qq&g:'zӎSuNHĖwFk9~'/kR.tz{k %6OI )#,&G܅v@XI Y 7\,ֵhž䜽NoÝe, " B")lpQ+&;pJSp[# B@gJV`eLF FpւDPNˋ挞f"*z^ӂ(hN @F(k`pJ\A(Au SJbT1z.|jl+n) FJ('Dd48!PmAPN.>GN!{+5jHQvZ@qFc'!'ͰҮ$V2no0,-pΤkF ?&A)CD*kIFt@ 4zJZrE”xߌŽYIB]I 4H7k4k J\)FpJ=2Po:($[B-τLEta4ItܭtKôő4tMMiZѺa~aGp@D +LG0ЈpL0cHR~mG1@ᨚF@tL11@oqDr1T/Nj[* )g-zrFtfWrjFDq20A$ $"#F2^%Ojqj.rsv.4#=&5>̘G*gYcb,sh-@ @82pGh0O0g|3$& D03ق46Fd6w3eJ7FgE3soHllw' =5h%G37g]xAt}f[wfC?4DtrGaEbtЃ/4솣txxSNYU1V5l kRpUg1S8x`)U7)Z0u/;q,K@[ \s{u^q-3S qu@̋c SJPvj ^vfo6# 'wn.v6mhf}1v*+rF6Lwpwqa;Nn8zJo;yT c x5z`i37OT<@zw{sw#}_;sa7 Ftd 8[(@w@A5$LCgyj8)_1KS|[c|kl%"daƀG9q%@ UEEhA偀dwR ^F0ݤ˲ 4=Ep9q\oSAAVli Y,Ai5̑ha9ZtϔjĢ,$ A H I P@rɩP, Pr# >s=9H. $+U:^iNet"6#J|b@@AÀ@| psH~×5x =:{zz.u~${E)k  E8o0> z}3@0#"aC!F8bE1fԸcC ёdIEF `eK/aƔ ,08h1HG&uF/zp`ďgtЦHիr =Um[?8p$.">D#JHB dT豄~ & H\<(d 4T jVuDqI# ٷq ᆒBHCp1DwsٟC+Er!_ IR@GNB{s8}{Ǘ?~}+Ŀ P ,$ LPl!p=( 1P 9A QI,QLQYla :A ZZ ;h3@`(H bP)+FbKլr";Q:@AH1G:A-,Q 4"Ь>  3P3,>4b8ND! La([RֆR"Yy['4E@5P E t]&*$l bv!d01ZLU;h]ǠtJ@DA(a 1U`p8Y-L:vSG< јF5m\# `F9ΑuW<},4!HE.tZhd#3HI)ܧf€~ rJaR} % $)Ky%d5P%1&5MLL ]MoZAsBd@,(lk&8)H UW{VaDp",+\7*rMxJH !X#H y !EPyN!\ ׸8sJ]E7L2 xBK`|@|p) 1xd`$&'^f H ɠAIOZܬ9#dSgܩ_gMjOִƵxa&(!6m` kS ..!*ͨ.(q-S:e= H(ӟ羺JvC!؟v&ػ>/»Z@Yf- =BP(O)P*m@| 0/!nG杀!OZA1HD_UT@+ ]/ArQvĒA-( 9 :b%@;R}"`p$^<!I4D(x.u!qĈR\ Ý1g<]e)OUe-oxrf1Yd|ќf5mvI Yr3 >ې<%t,L-N|&P)GϞMoM,g)]>&tiM(QFD-+(:jA44 9K+җ ,Pi`uӜ? PJ3xdjp`8cYɭ-øUjRiղ);F ƀF8[!n!-Ub{C>A="? @Vsc;QZvny7ox7(vE;HA)\BEht{skaqXX_b<5 D=_ؿQp2Kw\.):RPBX8ʆ; Op xu;XoD&:sd$9/77%8w뻬zl7+lν|1 rD<d~tS(IKjғ>ˊHFھR^tħCn v8n O{B;DiYZQД- h --FS8w@F3bvTU\EJR.)0Y8ZZZ(JxH؆ me]EmfF ڣ -M` pnafa"fb*b26f|`%_E g @_TgyhIR& *NSh h)ҊJJ_``  D0!foopb jr81& @tHgPGgPl xlI‡8@3Zj !iȀ+ЀX v !KY:P\ W\կ#bJu*&K[X!p a 0}!/,eFd"2\K dR>_h tЁ 9xjЦqY:°%8 ax[xyzKcUAgD z!RФQlRھ3iA4Uе( 6Df Mp)_r$ > o3αw@L"HN:t&h(#uoj0)FVSм>3GQG7 *Z]P Шx?n6X=! `E*1/PhntEe.(z\: Dd$5B\NM(葏\,կHGYR@d>XŊܚ ,b"`&*)(g`I*q, $܁η~N 4ec,颭1)IZD}p&P ߎ3W1\Z`xnVw {vt`h60vW#WELi=C n:WZN96a3R`x:S;t^!?'O[ϼ7{2">ЖwFA 3vz`BW]pi%(+ smiȂ8E^J)P44ؚS(k$׺/ `1ec7`qcr@זm7A"3S}gxn[3=c)@o[!*,؂.0284xd[8W885! c p?x;s{Zrrq c"GrPI$?S}\X?Y}rsk7cr:7D&Br~qnV!NWXuwmE7_pfG:vj ndIhIHc(;wx؊TV& %hAq!c9փ8>xg„NN(yX8AhNcam7&EԌ׸Zg,r~;VH )P_HɶlQHH4-VUxP$TzuY(WEfWf.UTd?%tI?'&PPSsS3!,-ȣWQ{g&!"i?'n`< XCFbAp>`E>wusUWVP3~ )h2u*8"ڧc7=ii2#  'E3G(WC;4b ]S/eZ C:;9CPi`s-ٲcG&Rfkk0Qpt!l $5AJ $5 (4<&r39c5 j?fdyy]l$_J<8ȇq;(>ֆk= "4螋6RWy=0M96saO !T!? CJ*&b=_ :ၬ7Vx%4o?\ڥ^`b:dzo=(Vo'* .Q:pz7f!2,m bI!h/Ƈ|O"ajBgxYnؙH ɆuJ'!2X(Og渂֩~*;v ó>5Cɳ4@tFtJ')X{C/!2DC6Be)4 !E\ux'vAɂmFUFgerToHbێ! vuy+"aJTb?*JF*UIaD)FKYfZxy["麹۹; q. w ULc12#$qI{Vu%rƸ(cy6cAK]#s47e) jS$;*XhFtK7eTs =DEB`vb7e8nGHȾ a D`9F1҅bI0wD)) aTw(>x&|(*,.3"/º!cEQ( |5ȻK+r˨USU ̼|;;(=YN K!cR5ؿcP@GLwaccI }Tl4B+lQ M5I!ɒ<ɔ\ɖ|ɘ,!1lz|ü;d7(#ea6f:BLf&„^~LL֋b&eBDX hƌ~jd |bđ8rUƍc kRű*w8j8z0*u(wx̫,FtF7mSP:cU^`b>d^ d-ich2f=sc̸억%>~?L?ƍ%|=*dYkߜkrl?1mF c\f벎w$N,,sz:8z8|&x.n00¾Y 0/̩سEwt뷝l?zn}3{zŚcy۵R 6][ȋ-y>?3YYv !k1nmѷhYt3}=#NcfD!>c5.(4j7ecAM06aQcL 1vY.uLa$Znpr?tX2@@q$5"0Q!~9ܮD"# |dw~=$%FG9!O@*>pbbLG_S;5!{| ;s"Mey{nd;;st,X !)`H@r%XC4Pr9sGYlXk ^ r?M 4 XA .dC%NXbE-7pp Bpp)UJq%;S#!u(@!$!I&6hP$ 8 UYn #'^ԩsWiծe[0dY:0AF-1Q_& c #((Kve̙/E Er\1A 1y-\YH!@-`b!C ^8BrzCkٵoOAǎ>y { 2$8/ aG-0.`  HoA< F vۈPr0% Cl8/ C"C%!ÐNA PbzX*†(H$H %v;CrJ#d/!!3L 8 dG LNO@tPB 5PDUtQFuQH#tRJ+RL3tSN;SPC4:0Ed ?R<CBX5} ~-ZtEsXbڡY PHu1C$P 6ըL@| Mhʄ]KP+PX%Yz& #0M8Bz8a!@1bH$8LSV)*ZU~ &ЕCeAs6'r`ew! YBgjCtj-AXf*SQ&phlF`_(mˈFP"M!L8`dC 8#o`/ Q`6 >0AK;F/`=%N$p8<[v=q7`0 ҆#tbr7Yo{|7|W}w}~~<:n!bF_俈<# QY&@ * 23_Hp ;(~@B6H8AfB+IBb  2YhԬE 2)Ob[8.? AǷрCAƮ2cW:Q{cG@R$d! yHD&RdyHed yEj@`S* e+  d/BL1,l@$f%`FȚNy) $ Le ]8PLb^J7 @&2HDƄU45V@mYyenk_EP3{d $ȯ!(ǁ0Ql!"Hd`ʆV%miM{ZԦVemk]k '+y `|U [mA R[+&(LK2$)\z1׹U%I^rP׺EK{LBHn@*̼y&0)xǽV4v#!pCv-5 @X#DVtЁj@1LN lVVΰ6.E|,RH`?+3eH `[s|d$'YKfrd(GYSN XMʔRI[NZϖbA#7 H#5Thsͼe~l u#Ճj4[g(~},n ~mnd;6Qf`2Zճum}k\Z׻u}YIi .zOS8q*דlf牃v1Y``.yn)4L+  @4#n;Qh^!v#@A9YiIdžD.y~>\Ir=q\#'yM~r\+gy]r\3ym~s\;y}s]C'zэ~t']KgzӝtG]Szխ~ug][z׽u]c'{~v]kg{v]s{~w]{{w^'| x'^g|xG^|-yg^|=yЇ^'}Mzԧ^g}]z^}m{^}}{_'~|'_g~|G_ӧ~}g_~}_'~_g~__ @@,@<@L@\@l@|@@ @ @ @ @ @@@ AA,AP!$"؝% 1,Й S/#@&" fY0"0k}Ӊq.B9]B q) &JۋprDU0C8/:;> 7(sQ!D#X|&Q{jCUk;{# X/ȁ+5  lB1 X[°+ $v{ArGyl9zG 62$ܨ+c xA4M}$%,cI z6B6sB{щm#)Hx  l/CB.x$5=ymRbÌ̞)H7<Ca< Jh(=;bBғoCDEdġH4s(DI-1DE#H! #FI3O $!Vj4>1+T숏1{rzÜ+ f0XEۘŻ44Hx _l 0* c)PQ[,IA1i5"Q}xm"|:Ğ1N\ .OOG~-ĕ$+b$0$i| 3.x!,P&l.(4CI>Y/ !8E$&s%hr)zRDr}= P"0U$LĀq:!! " />H\04E7¦x 'DrL$L @&; #QPLGWM8ď S*S3T٦(bkrW0߬4]ATTx,P #Sm$T9P 1SO?Pl3X*m) 9BVD*0Kug:S#REܳ"JɅʪTM(` x-02hDF5$H/}A[&5&h47&J+͙z xFYE!CՓA4HLIyTߜŽ* ИٮEZ=WUEFTF<]Ep8bٜQ Q./A[DB+ؓgOW#ϻMW|VKq ]э(}6Ȁ ضV `H;a g:}EeW|hu yRd݀^qH]E邘 EG>6mӦj <Yok+$\p ٍ(R K`1&$"?<`ee?͓ .]ړ-K'*0_,P0Ё;\L QX (aݣ uߣ$]7 ,#7L#9YQ͉/V6֢h8P@`?*,ēYԦr,} tI 2PN\dّY\ ?,#s_NʽH@~p=5}Yre]^.) )x-O 0NPDfjfkG9lޏ",F g@ Ug8ЎOg@]cf1_!^{ u=Ђ$$>%@ELhxnA34CAQVf "+nA=܁ihiP_X.3xgYB ai_Քj ,|YPJ ۅ!(XIX] M$P,’% (8Fx<q#7M0i߲ i ,胮- C/0R.ZfZ+HoċAVH 퐸 f&``8 Hk& ` F耷Vܷ|HSyK5Ih ώ8  Zi>qG卐F̶j@S%NE Hk)Y$A4 q-H⚎p " h"aR=+0+bZNܠc)l;8XXlz Ecq h!qmNqHt5<.P 0H3xHd'i&NL7 COk< Aթ='8Puc帘 096r.?cRٌmHNfbp'<6x꡼Ьƪ86qV@ 1l|dcࠐ8> I?x W;&tP[ ô1)"}O뉣 qe.0xd/./!0Edn봶B%ydqE ف+ QQ\Opz{ yO{_Z(PũLv{f{{{{{7|/|?|O|_||ȏ|ɟ|ʯ|ǿ||||з}/}?}OopGh}}؏}ٟ}گ}ۿ}}}W}}~~/~?~O~_~o~~~~~}W}~~~/?O_o!J,+H*\ȰÇ#JHŋ3e Ar@D(S\ɲeC%aѓD H6X !14 ѣH*]ʴӧPJJU60UÊpÝ X1h1l Nc˷߿ L8[AS˜c@&tsӨS^ͺ{IČ׸`At AM'E JQУKNu3_)O G{`qy $zϿl&Ҁez ,|PV ($h"|x,0(4h8<@)D"5pL2 {)T D Ѓh`~_Vi`*xYQPQ™pƩ@0x @6@J,a5չu^]0A1X&Q1yEaPBvꩉD xzyC`!$q d&H@A t0 <|*,R\n6CXy B 6tA6 0"!BC4HC@PCT1D/k0$r0 'Pp

te^7pGMRGoCa@z(QP ,t@OAdOy# ]@Omn LۤЭ0 ;X?K_ `0k0E x :0NV# ; "Wd{ lpAA~00p"LBeȫ*&:PH*ZX̢ý`T:L2U&pT&ፋoc Z@ɑ*] s)! h@ p`qAP>@\a ASȾ [-$,  uhLITAN*V7Ap`t,|%JL :i%= dg MjA~i-liK\贁$5fFy/b^}R^xf 1:zK8a c1Iԍ@F>iЋ }P J*r PAs& * 6P9.`"HHӊԇ!t."UUJֲhMZֶpk(+u`Ib W&& kI;L2H *ה[,Ia=Ѓ(Q8:@ѩ'2JA@k2A ``M~TO-;4> СJPbr @k(Z 1$"! !u]G- (+ X@.`E ap O%/pVg8m`*! dhp=f:;EY\W*|ż@^\t<$ € 0OA z SqbHڂ:' $Y5ANFA z2L▷0.fQ l BwBrM:3 ^ 26x3LyVW>WE JWk@w+\*]h{-X! sNuټhH9=BxR46AI'$p T B`40-ב R1V߀ p`(%s(aLT^ՐA )#RBA^!:W 9 ~܀B5v%4NHOsEp[Ha02hOpoj[O)a#.SüdK[iN+8D)~H.({l!C #pw!O_+RR@2gOQ.G*Р}OObt>E$)IPϖWLm/Y֒,:>\$/~ɧSg {62؀8XxtGe#yұ.&es6\}s |9/(Б:G@oM_8E'9 )Ty},4C`0&c;\T~Twf3zG>Gxv/p``=\10|R(.@[;1?\EG*§U D{}U!J.B8Xx"BGXG{DxԷE|'|3Ps#28v7U(pxGTd[U0$%:nKc~Mܔ~A`9}#<#.h(#P=dpW7EPHNjSmV%YZ!?Zv'AQ 70%S8'G&P'@ $(8BlwUdiVt[4qtU2DCK2pDH"9$Y&y(*,ْ.0294Y6y8:<ٓ>@B9DYFyHJLٔNPR9TYVyXZ\ٕc}7AW$)G|WbI%M6~k9 Kˇ2Lrfԅ_R/~ktKr|"3 $3|(MsYyٙ9Yyٚ9Yyٛ9Yyșʹٜ9Yyؙڹٝ9Yy虞깞ٞ9Yyٟ:Zz ڠ:Zzڡ ":$Z&z(*,ڢ.02:4Z6z8:<ڣ>@B:DZFzHJLڤNPR:TZVzXZ\ڥ^`b:dZfzhjlڦnpr:tZvzxz|ڧ~:Zzڨ:Zzک:Zzڪ:Zzګ:ZzȚʺڬ:Zzؚںڭ:Zz蚮꺮ڮ:Zzگ;[{ ۰;[{۱ ";$[&{(*,۲.02;4[6{8:<۳>@B;D[F{HJL۴NPR;T[V{XZ\۵^ eCf&odH'OSG%KDZY>x/+W@Xl|[6SFT¸I; /\t6xTKז [pL^^XxW(5&a35 *PC@*1@v{LupPfD@7=0Q&p{|uƌ*`dHJd+$xty~q-X`Pi$IB`NS&h0Ni1i6xP/C@'4Q 0A<fl7&wm:@L||E)16/ ;R ~Q3n*=^LG-zqJ%=< 3E0Ca0Ċ{|yI`CWtG?[-sjLlbB+d+YEh)M!xG[D50xYfYiȋzIg/ԷBu^x #0sc$S`4IJn9xl^_#L=dCQ$̫ʨERe_& LB>DdBILIdMFFЄp:;.8T黾'VkPjfƌEWgz=|)B`)V|«nUpˎ5K+VԆ<{R |7I09,>R?7{L7s]rF7uGPTWU(Q?,t2D?t=ֻFw?r 1t-v}P!|~׀؂=؄]؆}؈؊،؎l`ف=ZzZa4IO͂ȗuzOCG$m}xFuʵ渌K;S' $0*"J<=g)o9s͍~Gyj}[+Bϻۻ,'&4~P<͖'K &xɄh==6ȗXX#  ԰N3.־/d.TЩю\?j $i?6?-C4Q`!cme`Ap2$ӪqR\A4E=_s_{\= "pŹ3Bu2r$@S}Pnի,DdMto`>95ZImtz=~JN,?wrC7$c$$E`vکq] lla-(\cT_@BDVJ~ָ8T_bE@*r+(Vm{QYp=X).3^Ik`Mr>g'0$)@FSE adR+Bm¼$jL LagC3~1}9p(@&%`^E($Hv*Q1 @/Boi6LciYsWw1 p4NMiLꪮX EGw\Dv}^'PF$]ӵ0\BBYCe/1\TC`ݙv;Dq<{ G-4m#b-tȸEOF餿Lr mD>Z2.n'@Llz'mMT'ݾEmDʿ߂Pr@iw J-oiE߿b^Yy) ?Md?\C#GM,dS8+Wui|NE6d CwT~BDF!<, h8t(C D%`aF^kbG `Dv//K(Ǎ0# U!@ft$E ,W1R2̤&7Nz (GIRL*WV򕰌,gIZ̥.w^ 0IbL2f:Ќ4IjZ̦6nz 8IrL:v$a B bpZA2tGHBzV (t 1XЁe `y9A (EȝDjAw 4CU(O} E x(@@Z0jS14lt&2zʁ/Ȅ0HW UFVb8#th&h@nIPX %% "8(Ps :3ς6#@Xp,^c `!HhDp *NCo+\kUo)WT 80$ 6 XQXL0`Rh!.8|Mp((oA@9@0{!W() QpFA0aPU=|# @2 LAn%@൜{ nЇ /D Yre-s!Er|#x8[2#3 !܀YA23kDA.l` `hD\A *NA76I@( R AB(Dxba C51 @0#F5&D?hC:І"5/h hA  '%l۴. <&?oF`! b0 K9~@ɛ7or8w(x"A lЁ,8*t^\ Mw%DKr,( :x66wH|&:U#DX;Hӝ4fW($ Kk;+C@P `"lp̬i7KHPp %EAP(Eh73<it- }AÊ *p'Aΐf~079jvYȂ^˜AjVCϠ8 1ρ0RPBZW!0A90/|aIh x%l1fAήǘm[@R0gbf8^9=0-;Had? A`7P5xW#(<& XH\@"V_0^4_Jcf~`DH^v'"{P!V)}W'pi'R;$0%5^l4@Ld`VoX뗇z|؇~8Xx؈8Xx؉8Xx؊8Xx؋8XxȘʨ8Xxؘڸ؍ J ual_0zX V @X(X8(` 4P y8J=f0ُJhV 8i)f_(ЍzY6<2I6_h`d`4xJ,|pf@_ VSxxHj {8eY[ٕ@j(f)y(Ku3n`PzF IH;0)Șɕ^Il㈛8Fp9ɍM*Hs|F`~`X9Vak' |3  0IىF@l3 *)xo *,k {pk@ c@u3p 687XHw()H&c`0o t8h(8$`,_ ]`;ڣڨxu ȥ;SZWyZ)_6`f:3puV$(_u`l`,Pu͸z:"IPɞp?_0٩ (ci b< Z(ZcDګ4w`{yM z>:f ,pM :;Pxȩb3X$)ZK蟢Ȧcfcz  i`@*Fz)ɠəF00m 5 7ufuЩ z yГ:GSjBK+-ω%;`XGH)i`݈?` 䨒FPjhE$3` )e{ɲI8 ɷ+ˍfyPk@fp9˖009 Fp~tz`"0b Iwۓ<@*k{y 16M@wchYЋzɗ9 j9ikp݋;ʏg i zfc&@khOоSz(IhӋh|Yyc덅t9R I=%w9« ~9͘D\F|ElĦLPŦx)d9x\^`b Z#` ˗V4VcU'1-QW\ٕCWwMH̡BX5"IvEa|Q2``u]ZV[UqʼWe[8[\\WɅ̵eWVX#iEA8PPYW M$^&aݼ^Մ,`U_RaTGY5a(Z5_Ykf&fgx7[!PVu+.p+@&$Vw!W8`tFgZSVedn[meSfqfj&fdpvf^Uk;P/W$EMsXh@^#pMhV^vhc3Ԑ&iFP'Mu9c]Ic?VaFFl}Ud9RPlm0-0I !s6Yb}vWpZn՛]'pV6o=o'W݋]v { Yt#PA=qu=r1P);H|(Fm=@um|ֆmt`x'zAQg!`aB@== }b+-fG{.yGxwjG/>xm3yyx>t@nyD87PUc|b,30SAz}G{Wcn|Wipf&.|`gQ#N$grcWvw}P7ն+2p3= "_r~֌ؙmVἃYo8\~@@; Ha2f>x%^=,H+(8[Vie)`tЄrP.ĞAdFeX;Y`;'c%EY40@0~'gNJt8rl?_Nx|7%U@@TȁU/Ǘ?0ɞ85TA#T\Hʭʱ8'U`_FT\ф}^3M_uW*.}2=`5YQk2pxP<X;&MdLmN}7V@DTB eTۊ a-髇'ֵ'J!R_=HXbH7]zAT/]HqqQ !g;H0 AH ] B?!I`^7*- 3P!T a/bFOXӁ O8hG<5~Lȅ B/6J1RSګ QJ]V:.˫{=A-Kg_EbHQRVoX3hF,&BY"lzt2u/ݚTƕ?a`7D  \B{ڟJЉ_bm ,Z^c(F3@nh@)QOR)`d=/IQ`TW)&DU\uUֱ݊zju5bq^́xJ Ž-FXli+%!}jE^Z,'@g|xG^|-yg^׎p] 47 C⽐q!E{6vW!XӚv;/nt.&=hἹľ_82ߍ8rrpp7`3AvP Ł؟+4@ sK+? 0Caza00 *pX-@ 029"Hy)h! 2 #A4CBB8'Qh&,𑋐B+453'=4K233X6{C?˳%>8C>۩ HS<:3"-B."01D4O$PKxRpCPY6o7 0qK%5658Uh%da%al6gL6hd6}DZ$xBIgFa6(b'de o{&(7@kJ7m ( X H$q9  H5Q .Bۀ9a 8(S{b| (X긇H(JɈ/8DpFǎ3I&"9vHjCS)k7J0X:"؁ؓ#n؁#X+E*ؒłsxh1KLDْJ!D**Z,L:T4ɩߨ"ˌ_yKbd,~;B*Kuy$2@l۬M݄cM NN,Nc"= >ˣ==ߣIߓ#/IO-hhO >}픯y iR"#BB!#,H 8#C#S5Q+o+ <  ѶPЛRT%1 cGQ5h͵zAX FkhbGuDP p `s$q3&XGeFwċo 7iU[ )|\ɠ́D H&m'R pJsCX|Q ȁ9Ȅ984ɐ$X[Is{I=I=rUKy"Je2~Ib9lJ{ʅ0xL4鹼L@5<+Ƃ H, ZfӌNK˥KbPCSL|lzJVqb!;μ+\* Ѥ˂eӔ+ެG VܼܔM+]Mם]ڭ]۽]]]]]Nc-鄋iΆP^Ľ~˚1>\d>y^{IO+. }%x /%A?כ - _1@?YE9tBF=b*F@TA,KUTQ~aɕ EY͋0.A ˁ®;H0`XR(P0)U;ؖm ~S`T!n  n빩%f[y>k8.@ۆ7'!-..Q 思Ϯ!xO 2+ibDM#$ 0L0T-p񄰠12>D4Qc6DSDHe?p9!)`}2bH:hoC"^&(HFy}jON(6ɣdBbFieбs]V\eP%e36D)Geu=FWt<&ZW֗ )8o ,P05VGgd 's*fہb+.gZ s {gtppuiȒ|ِS\ozf g}Ѵ)'HgYvfIw~(yZ*ʑo˂,E4o uxYLAh!)HIi+`eY+m[^N̨K&\[/ií`|_iD;L«0fQx+=R8്\֭^zHqzzzzzzzzT=9 nK]ki{ {{`L>0z1߉t{a_n= #P&{:fTa `$3@N[ VanݖȂQ?~.n%tM)}cJ039&wrdx#pS߁8 $WrN{#p?b"2#28g 2l!ĈA@ #:CW$,i$Ł3ncȑ'gҜyCB|4]`сLͤJQҨRQ`'N pjILq*\:LB$QY.'4mJ pE &x ڸ#C @_ B47P1S,X!/:thSFC^8%Fܰ1Y9eإS~{!@l(P$Ck/yo%NDj%vp-xZ em[vqT֖!^ 5a 0XA P)  A0PDyݘ h1 JBgVD,@QCsP ;đ5qopCXmގ=&P= Q=A T, @&5 @x@BK^TҴhF:i&@C\Pa*NF x@bdRkj nZJHA &@aG5Au [ V@raqp߲ua <-a n-A CPc4t1_ 9'Ի1 nB2@Ht "+S9 ` a 9ܮ@ =rnܠ ChFtI'РJ ?i;|qhA傝 ;@qBX8@cjPL qؑK>9[h_.Q{9藻4š:뭻:>;~;;; ?<|IXP4$ JkB090K>CA oE>(?Y|Г hЁA @ƌ#C )%Y3p\$ 8 nD Љeh! AMˁn%A=A`P8 =@\X`$\lUE' @BBpO4#Fqk cHA p0,iĶm]C`$, K[E0!v Qy 0@tKbb"@KPDPVHF4 ;  IRTS&`2 0] B2e`nQg_'?Iβ*թ QTB ۩ȕVS'PTM+(p >PJWm5YZiUZ S(-^}X7Y"a+,h<4 `qdX9Zʲf/yM2Mο"Ԩ&h:Y[`]ZK ]V-jX<'6mj(&8iln7kRYP7q=2νJ~2[Dҝ.uQ2-s^2,1f>3Ӭf)!_` s$=ɝל(-ĀK_'>;tmNc :h `-=u^M6D q9#Ӵ#٣*lNNi lTY(U^ *'0籜^tUYgd]^^A HA_ F亪~m@h ouo (ho_QjV{߉K5BMWuɶhw˸, .AXV锚0h@*~)ܚWB؂հ`֠ JQ )N"NNؑR`jra1pj萱!*11DZ1ױ1O"ARI k" C,&("Zb$C'^#Sa${k%+k9/΄:M 1+xk|,FQc< 0_MUƖ,*R.A2"=#ADv$.iFclfM\JfANQJwi'^~gx2Ӣ}?I!/jhIh`–.k!cG_B !v)W=4Ӵ(W6~/C@ G hS 0  k) Xo rBi !6 K յr)ʲ;PPqZqH!eq;|渎ϷqB1~788+ @^+!J 2Dr#r1&B@h8$ߏ$"[(VNjݢs++)G)*τ[,M.;#,Blr:f2C1S6wtE= g4T~t\H%`%]df\F%nCfBn7YNO&uO5tRB8kBlN52SL_嵊VW'g-X75Hg[Cv*D@p~o^75Q5v/~ hQb39_cCie f?~{90Cp9ۊi'6'`7p@ 1Bhv vowXp) 7  >71w 1G;wFu@2nנ7ayy7z?jaw}rܷ?~>>'/q 12Jb@'S(_cx&눏O?2%8x(V̩Io*8L\Lk)"Lc188ߚ4~P+4r2c0';#?ۓ@6;s2lQd29۬(չy;Bm3m-ۺmi4xaB 6d 2$nP Y((dr@*z8tfL3iִy #28Iq>#pO@5&ҞlQH|\T"Tb+X)xqG[h$A ٫k9޾QiF'v ц L;6QF;$6C"C0RI$7*c81'ǃ[Z0bc>M H+dFPɗۓ ? hyճDO1(p0.>@TpP-⌣/ kjDE* RLl:h_@N J; &l;`z  0BҡA"R!BQ&F"$N5 k$25z>싄"r r{!z( ӥ@-ДUQG!uH@D %6mS> ԂF-Tn13@bU(UI*"7O3ڐeRGel؄(PB l0 #Zx LIa,%L02.dAlj2r@Ⱦ C F";A=Fd 8 #CY'28 †(9w砇y t/!th&N!9x8 /H#8ւ8 vP*Jn Lnef!oz!$@h-&x8s6Er&]emuߝ}?y((: 3@`/пrAAx< GF`ܡ ) ɵfZ} RL Dt#eaA:N"AP60; [ L퍯s?HV"X=&E*"eEy:1 @785p8GA`jUxa #d"#EU;1s_u!`0X%}%`3`X=Ҙ } @' 8pG +@H8)JX ?BrbaOPr3m-o.=&[J)2Si8 L@zɖ9ߙ9 #i d$CƸ6B3!F5yk$6Q.i,`Z8rQҜ^*/ش\샟xP|2=h@;P(b* @!!, p؁ B̥hEQRfT#-]=t")Ioe㤂kJUJF@R-`#(b1vytOJIeHaj:\zdfQ#mfU+eDE*SVPmz wZ)a L`A 0gX0Wc%k&@׳ڪٸ^nVq\Jbswk^ Ad @13B { 94ƁM}œrE{LF3LYAV Z;44ehX+Ҩz%,llpK]%ᭁkasX̆6mp[›o[ pA\N8AaK>׺2:-BNեq\g;yg?Ёc.Cu@'ÀVR6e6UcpOcIl9U \ЪzBY1bY ff !MHx3v*2 @ u+t@|b_"Al Lk_8 R&=FlN,R i i ^jf>ƾ f jjJ#tdž%ņl,m֦@nrcof@lp,GɼlQF+dT'QǑQב=Ɓ|j HbQDr *D <}@ ~ Bmy-\-"W "a s^BGlb ?٢^BH L L bep` ^WHH@r`on(@ k"ଈ & Ƒ$n>n횠*%s vE`4|;fQB,7i "/ObZ`nDZ"(Td() b0,-3.:ӝ>sJ5/gr1&C 3f:Ϯ@O06<6l6No>D T' b@9'S& t>;soBSS<2Ls6fJkJc SDKVF`0BcEh` `O%L0%RRVQRsR YS4XtUx˷ftRj4cns|4sP%kϻDYfм kZҐCK^q#mn84Vd׃f[:Ht&&QfQl bK=$QT,i<OAD>~s6k:'m˄Xl@L12x~@ETɌsXC1!LU[U_VcUVgVkVoWq5u'$\ Q~r!!X'#YmDX%O#;gZkDg$S$]$"%Y*! j•-{`@(^(U$䠌 Ј^+U2+U).,rmL'yR(C-$.9IbngfRmIX'8 7y@@_u'T2Q3'fNL-PgN45qrsDpL׵Mp;AG77k>J8C ֯u:h=O@a" CvB¯; M+X7Xg^;璊9"!fo;qu;{عN+یW~Ra嘫֎:ةu*ܻI`灝ě{!/gbH$Pb"o`|f;{"g)h |hC[3iayiΖ%<5095wC|K|!x7rRW|;#<iAbձCe'nճo{oo;Gp3'y:Ƀ}%m ˷IA`OƼǚ :Otj\͋ͱ^7(:[_av!7ϧߣ<{wQzxYG]34i+һGbF-`@]c?_9b  <0… :|1ĉ%A+/ɡ$KTQ#GA$y2ɔd8 6nP "M8u3RCo.}Z)NTA "`t^HWF0nvc9q60raa!JPrD+[9lѤK>:լ[~ ;ٴk۾;ݼ{ <ċ?<̛;G O0PBV8PEC$2 C1@>|XAF XЀ o ~U CUX7@ ر@ u%b*Hd`CDd'8gԁ0UG80 y 0$Y9D@lqGv eƥ`gsv "UYc5a\] $ ]^0k5$ d\ 0PD,@q CA/&Rp0 0G ;1"p ddΪEq-I-`Q+垛.Vﻻ  #@ !p@B`B"C P@,1`dI2$?,j*4Aʒ]&А ? , LpPKi46PKM5K06P~)u`M:ucVs3d`T-\Wag8N 0 E<(aPCs꫱Zk/@s`,Gj#hFP *|D<#<hpZ]-yϻ2͂y^AYϴ\j I1|-K?dnp?/`Y2+)%Θ@5b\"eYÕĆ0Mvi°DA%]&QI)bF؛(+Z1p-u#]NhN2/l:Gn Kx/ kx? d5'^)d9BX̬&Y'bm%$o暓I>(5"Dz5TmJP蔘r*9v֒*y \B  +x%@L0dEn#P8pcS@R7h%gRg& RIm&4jpZx„?Pa'0_RsCdP7OU0P꺐kFA0`߾hAVh @E*<$:0WN@i$hs$Zn=\m*Jqt5*|kyJK(|1Mh*KCݔ3)<2U!= B+\W#UL5H@#4ԍp`җ$_@Q"H ;@).1QGzANhVU*ܬw^g}zZշj_kVB>[ߢYwBvc '-{\m}.c XߏAs #ؾ4NUcOl\+z+hN"1k mH+Dzћ^h>z{miѪ6`O6ߗYOl(@z> ;&_6Ogsaf"1 Re^qw&( ѵ(Z@^A`04 b0@怗8];TC/DТC%uDDC4I^GH_!_FE'bk_b_b`z1`U``v!Hgruhwy{ȇ}(HIqdGdd!1eJV! eĉTvKZv)&pQ0*s0IQJ}c?$b"#=#A2$ 9iϔjḯL&fM&M۸M v'ckk`ktk$lwf) qq1 F@FdsP!/bApd /E2,r,a(qWR2Q-!yR!%r&q!7RQrRӐ/5?7S3S570T0RUmP8'=^!3M`4ycO9%/`4BC4wa{G5xc4g6jx76GVoxw`5y7UW8%WyW| #`YqI0=*!w$?A'*Y:n;!}%<~՚g~~u~5YW[룛w[17Y?.[\g8G\'@Ca1_C^Hp(ASx=@AAbB,FCECՄNXED:QUt_Z莻х%aXF(Fj  !ɈF'ʢ-/ 1*3J5j79qA5 h]@2"W9Ћٷ} ]`rQvLWhjiktBxkXȎk$4ldlQW`zm=@4Pq1S .FZqSV+ iqpPIQ%"qjQr(ْ#3ɒJr0l2y4RW?9k2S8e1>17S:'r!2MJ@;OBvqvy#T =Nj`bY5~gTE^xm锯hxt9gyu{iy}iy{Ճ8D'9*Z0wg:@c:[&@@=F~:\JZ+ ę5<е_Koʭ'Z7bK[R;EU2zcX#M:Hu ZwwG>~eYdӊkʎ tYө\ Wž [AEdACXԺQhhk BCaլ;0 F^ ep*(H;t^ +EЋWH_ wjGks{hٟٙ ڡ-ڣMڥmڧکڕw2CIjc[G\ }>q&iq?l|ʿ')S "#2gs>P(aQ,Ŷ!tPi`9GW3|o8_$tVGu@@ DPB >1!"$@L HRA3VH"KN1 aG=!9M9wDLID Sȡ&:NU`ˆ&6hQF-PX .!(`DFxe < b {tB>#:Ŏ8kA9WtHXnIɑwM!@ŅnxY:Ten{#koNM\y3!m@ )H(#H 8#F 4 Ⳃ~0#Lj %hDJ qJ<v NBYʐpd,sP!,K/SL2dL(n8;ғO?N;PEbԷŻqJ,s)# ) v+`ђ`  #ND4"h/t6Xa}Wb2XeeلR h`Sg6[m[o7\q%\sE7]ue]w߅7^y祷^ENhO{!"_] "~M`"^.`+@T6b6cfE&kQXr/ֶ t؎Ȟ2(\$P7բp(H|(uS`8$"Q\P,JaV݆[na"2  sNo|;qɱZj*24;" %xLJ?F a&P!%v!\ܡ7@v$\tcп2!Na(q&H ((M49("(U}u_~b'M>ӁKSE@4@8k`'=Ȁ?ѐ%3!L x(ь V$\A"FBx $y'X]-pK^Ё99 r\$Q HŁ$ZPldQ MX6SVr&f+]JXxխ\M8@D\ &ԗ(0-ԈF4Pay}b4EhBgh` ! vљrK_:' |ڬG؂%6=t!]2Ё"7/Գg:4a}O I$UTj|T_XzOn4uI_R|kQ(KEa˦y/nSHe*-he+\9U*BE-k/ye>s7yusxhlE!2mÐ'cYq`SldGZdMɖug\[ViO: yp`+k[;}2"`l8υW@jysAF.۵.y풗t^gM^5\[q|`5F_dw6*=x@xA`5 77NA<# 9 ~_%"?clwfZ곱cñnٱ4 X?J%k8)o[>Y"p:& R0 ?xZ38h;3#2+\ 7 5" p#:8#% 7#gQ3lٳ?? A/(4(B4%Z4h4X:$( k*q68bC> ST^{CDd^]cGČ\k]D_< Mdb;@¥eC$hT 'l#)0}j$x!Q@<[$;9w[7w)7@q27}ǘ)+f!FrFlyP Vtw)P AԪ_Tȇ,;ȋȌȍȎȏɐɑ<+hlQ: %@-ZX{9`IDC!;J,;cJ9oQ;RɄ;PgQ<1$ L{{F'ʭڛȓOtʳ<+׫< =jգg=)k@|佲)g/s - "!@!(,0) 3?9ӟӰ\1??lJ1ӕ oBT@=x@ל@#@.P C `"B*AZ#A3B#,3HP&B$d%5{:2B8&B=[A>,-D.BL% 2G;ÁHC&?4h h{%C,"RE4QEA 3Dc5Eb&HI&HiYD`RasPNQ m1fKEhQWXYZ?laF9"R}알sǃ:ŊF)9k )lƌ{#Gpy+pTtutOuDŽGjtz;(}_lY8`]d$IUg^94l9aEdUeefughia)-ՃIɠ̺J,:ӘyJs׫ yWsfJJ Xl5I$-l?X̳͛4L.X}=fL/ЙLO̢Lt<,>d#$p)Њ"ː+ Id?$1ᑿN?[Z0?ݿӿ S1  @$<d"m$1A#%BP<3(Щ9;\ 3*D\+P,l.@.$'2QMQk 34"!^Z%R2FbSA$%RGEdR/&D#jJSN^[PD6Rt3Eg[5W 7ͶPF 5&9~z}lvƑdT{IFTLvo}TmvdP]w$Y3fA{4S8~t U\8t`Ve+b-cFVfvHl2>B'Wt%ףs̀źW8)ʯWv5JW\⦌JoתL~]Rπ- @XeYiѼػ# L=` cĖ@&b-+sJ%#PI5"tPµ}P9JB f'fɕ\ͳf>-u"CCe-]P5lQ]u](ݞu٥IEU#^WccrR*=ވRR]Ѧl|^du6V^icY4E:Y7/.=km_=G5M%[)GR){A`U`@8 V V f.>k"a0Vfv뷆븖빦kta) yRmɗd,I"Nrןt(,%^צlblz)*ۘעX"K#O4˽sĝB.5K9X7D=>K?cĜcjfddөD\̴~Y#+DM]L[d٬۬M]㛹SvZ?0TvZocίe&m1^~ol[b~ۚDl>wOO$A" Ёf9jfm.g!3m.Bƕgn>t^*e,y{.5]-= QiMXOA !H9nDN'}5Ҋ75ID^hǼs b ,R35S ei^Ui-^S>`hORi99F-FGT6S/j_UGOeǥB꾖tW8`zEO[U >dfWvy9Hgjklmn׹>ه@XI3T6bu: l̮^VxwJӢV,F- 2mg;AK<3eDmg|v9ގc<6]n-ؒ?F@6/ZmI3LH.&軁[>CZiNC o嬭ڨ?/pZ46jpmy.e  4c~Ɩ8"0@A,hQL_XP17\q'gGgȿq w͕0T4}&/ƀCô`Æ%i$AQ.䓥E9Dr@`!Ў ]]cIgf&\ "REpbR=H ZZ%Q00DEDVD!:C…C PP' #`F`BB @p*q4BgXDD$l ! Ĭ*`GIltZeK6svPW d,.kk H J !7keЁ *!$q ;  pqZ$2$pЅ@PD7p\ҽ:PE&PfG RgU8|,kϒA-5`iUO=Wg5QO@ؠ4Qi\vipkx 9 JmH1M@ "`CDFA 7`V1܀ @CQ +E[ B0d: E@^ E5<|ӛV}gW@^TOc=KԧwUy/  TVQ@ R LXG N܅Y#2 ` # z-(5ځ zh(<(QRT X'pe$HI@쒐CrD4@"Qx$%#ȊF/ѡOŚL16Zz=52H lp*WW'gIZ2p@ i6<$#)d2#+iKb2$';O2%)KiS2\ek3(Jd ;,BDDRHcu$ 3SV| UQz&DS;(ٚPjHUH ` LTRtūx͎i&EE`F c],cB NYqd15DI@:0 nq8汿 $Hµiy 5e-]N \2/x_u n*/a+X$+ЫT}W| j2 lb63d r_EnrEH-˝F *`Ó v0Lԭ $@vI) 3sk2r*kTհkFkk乡@>r`7Ɓ\Ol\1 m9\qBB7:I\]@/AiE|4&؜`)xhA|(@|]V,c|!n6i$ÿJ1JY֊=I~kXoteg4ilճv!ՆGX9a̰iti&`4DI'x,S J EԱ 8Z-tW%G?BrG('2!Ĉ=@D"A$W"XŅ&T4 Y.-f>eMϨբ!TL@qJ[W+؂*| .$+>^;n=j_;=r;n;ҕv#"z;_9G1@?fEG>gs@ ZD; s )> +>HD+d.ezS*JQ%*T6 GS|TN2?&PUR-ї:jEoEM ±AN ` Җx b\ WqWpUpW^rVvQtY @v`5( yFn_V p0J!Z_\JAxrnJsa׭$  v  %a"6hgWrJWsIrt^`k@粉,:0֢l gJ XlV &`}H0#lXLY"5~H@Ј0X a.6LRZa>yaUaTސf Nn #xN @h\k֡ bATf- Tb9Db&m)&Z")Zb*b(@y*+2w'l"bQ/D2 L ш^Z̑V%q7Fb8ʩ#i`jȑ<1 ;FQuM*͆?‘a 6$!BZEKrDE!j,kZdFFRRkZbkjrkz뷂+ t@mB@$G+}RMS9x %u]UJ%DZ^k\n$%lh%u%H(~Ik ITL FqTe8^z^T`a_*hd_aVN,c"UF^e%lzVff[_iȀ @gk1kk@wԀֱo"} g`G.FuZouKruQgtR>K2mF׾`g WÐ 'ɸgAWՖkGиq(` }OvFMJa.z.nakF.Nz u 1j7zPHv*:\9c:\<0ّ.*j:MS4kSAAHk{qqqd GQ&r&6A$ ^RӽBS֫z޼6hTLY!/޿Z%#cm$,WD'&ӆtȇQH`Z^Â$"l˪l_._c&.f-lSf,_BT,eQІЪ`ў_h>jifgtlq`ʩ 'm(G-r">`:'h@nsmtɳsv~`(  xn2. :mAh Ɓ  0$ M~ $&G.Nv^(.Knhk o!N(h(ƨ }W7έίK~dozN&ru)Xhct.i/)#=1 kP ' Dd ͐ؐ P0Hp :ք9p k͑Dhc=ߩF>jA?Q@j aop7*mqAtqq+r3ws;sCwtKtSwA SJBP.^L+1DBk+"k F!,xx#7"FXɅ%sS=S>Ӻa@@ȡ%++T6\MhGE]3{lG \,JIT*+&ˊF*&$x0.yh,0۲d1yYmr[%4S@\_s^^USs` p5cEdUalgyzfj >?jak vֽms*:O=W >+'?s{v3ws|gp҆z ֨o ȗ B4q ̔ XX"/H.IYizኑn.qnؘ(gE!Үj3(ZhnKsayr;bM{lh4"ؘ٘٬A@Q p @qSs3/JV/9)nBޯnxV0(VS)WoX{oYX"Ϲ)цQ}Bv\g#gg0hw6gck\evfeڣӛ}qEDo]u{k~~~>]wԀCF{E\wϷSw ~~Be7,F$N׃^Kx4_2_-?_y+jcUcRg>%@N3! H󗵦;7:<;7V'ҳbץ.˦iw|@AA֠A:dwl 4K JK_4"L/hvˆ Ċ:oFP@{A\l !"*b0{+y>hxqDr~~kdN*%B%>Q}>~+7R2"~'rw# e%le+%#々*MA dZn@[\v1 %l8rQìljk_ez'2mABNp kh8 ynoȋWq*z;3.:V'ҳbץ.˦iw|@AA֠Az˼Ll''g~(2/CGHKhIԠJL.t{;al(@h DQN L֩5ȳ&{uo5<}u/(zDq#ϣH*]ʴӧPJJjB58 Ê*KٳhӪ]˖j/H m˷߿ .HC 0ǐ#KLe>DP0CMӨS^ͺװc˞M۸sͻ N$/(Dl<8v()N1;l}È{W.}%Ipѽ˟/Ey@ yJzM,WG ܁;ԡ|0{jؐ؅IHaHہaz`v(#}v0@'b%Na' $Vt0ԱEuGz|`SV9 vaбy1Pt e% ,AucVc*5$"6p4FрF &){QMȰÚx|G y|Vj*?A{t?ᨱaIAPJQ?lFԡƻޚk :j.ņ n+nwfAq{9  t@.o0 A+@!({?I1)$A/|8o~7J7Ԡ]j`潠 G.A8 R0!pH f·>@!~mi CQ_hX" B!c: ;?F1@Gn0 Bb)\ s#ȠpB@ ^Ƕ`dGpD#`#"(<=ZC0B)ɂyT`4X2A+8}K#K qW8`BAA$+ `Ҕ (%C P"L?Iʁ, 80;pZP X9l!=#T-  (s#Ar`ހVAp}4 п!`QI/TJ"IMAu1@O{S &P@LP*УH f& a bv8- /^V`fa:q2p<`lp (/ H z'C;PGb=rBV8va֞欰lgKͭnw pKMr"{V4%P4psnlcFefЁk%"] @@0 U 2pdISV] 6<1/] z$Ѣܲp7G 0!K2" zp & HpgIe$2cB4SS ;@U iG CX3l@ #[6_SGaY@ !>  Z0 \c!|=0 ~P3|Knre`-c)[~N/D|[\Pl(AUgll2̈`X" 0n"YQ@u;G0 $#nA^[hpD˅@5p;'N[ϸ H>>J]?k 7n4%k9iDpDu8U^ `@( J v~q2tȁ=A='Aݣ%%OWRHCIp^K!V'б@@(@Af6&r_hڲw# 2G^<z$SI@龿f>.wq=49xzs؆t R>/= h!2;iRRrTnF;i:! 7l|c56zFkg~7kG m'wa`ak)0Ivm2pp<8tPZU[_0IXwJie8'CbJ03_?6(o9coS6VK4_fedN6CvS:QXeWyDI9bH@`1# xB=j<9fBOAi PVh[g "P0 Cuy "f}S+wB>̀*N]Ѫ+qfܨIY~,);dQ PlwC%D_u( Gm}!jD2 zSvJ@P Ţ S)|IɁOty؃DR#n{% hNJ&pMDFP`7MoXYŁ_C\Ȱ۲=۴]۶}۸ۺm= >?%(7Z<=52Ryq} uu_#݆U8$?8XHF+fCzΌScG6 ͝wxq-a( b<ˎ[`n0 x׉C=pIњy ًqpyqAEe#KsQn8Zp8@kY{tvCtIND=Q̽O6.U[IͱF UGjdcމo1m 18T@7w]٣3Y}<0ϝuqf)pУ^ꪾ.e˚p3s2>h>j(̄MZŘ{XCجd& au_q*(p4yŎѮ9_ݛZuNgSyqHԞ(Ȑ)s[Ai;-4H6D0SXd7c2 nS ^2q)^>=ZiED闭M4`ch3 c2)Y澕_#cZ^fhjlgre :̽gw6{pi.\Qކ[> uG(d(vT.pOspPT[8hAϹ<PЛswx:T)q4pޜH[t=ҹe;]ة G=zOsqȟUd[G-E 6t1 .\C%NXE/1C!E$Yh C!0DF5AH&@9##Ŏ8FNSQNZDFLTլ[%[Y]*1Hq%@۷t[#dCB7=LL۸1 d\&k# #'HDV& H'xرRǹu "9x \pɕ/Z2~\ѧ[w4!DH;G/3f{Lϧ_}p@ 4@TpAtA#pB +B 3pC;CC/@;S4ID2(Qs4FF=PH@J:-H6$I@h7`i aPbL@@8 .:tsO"% F;A[ϼ8C=+#II&B/SRK1@QHb T:` @r=:H h A8BW 4Z6YbY"0DֱhzB1IMb(܅0" S ITWRB`[O5:A `p6"Ha1x* eK@J+Y &Cj,p W0 C ݛF.np #Ne 0J";KTē~ ax`h;N@{;In];A]->< ='GL0xu'/Ri' 88#|˧zW}w}~~P$` x@&P d`@! `I̗F/&H W@v1I1A b@,i s_ =A nLfB^RiNB Pb(D89hԣ@vu*SؔQq 9 ^**Vխ. 9PA92DW`E<_BQZ"!$1ҭo!.o: .{k^zWĥ/~QO![hXL! Z+)`$@ HHҰE /pNֱm,dX1;tΙ L3f΄ʟUsh״ѐʄ0hڊ5LjW02(&<5lfnF=0"u׸xr w8q)qkd4*qr]89djZs^Ήx QǨ@쀊IvGw³-R$^<(O '=5&^dBʒU{VUk]zWU{k_WV%la {X&Velc["'R"̐ x@de`J;GAhOx:;T<`Dp5l$ qHȀ @,`'mP'2(0J*5O.f.%PTtCpd("V_c#सKgl_" RP`(IFɠwXAV"*WLK\^&.1PI_0ā~cth. r3>1rLa[TޣV̦A|Yng@y!+ I@/TJ0׀` 60@NY x= #CӐ-Sd ZKм$vrTpLJ@*b !T ܀' \\9t A|AJa uU*Y.A:g".:7 "2jD/j C $(#0/XI9Ҫڒ#.Ԍ%%Xh'$% s<4Il@c 7 6qßi[mKH bC౿*۝ ec `+[MΔ@N OO,O =PQj.0D!%5M)3460!ؐ=8Y"5.rQ2Fl/3D5B'ǹ@Y!ST$>+x"atQE $H"=…( ܵ90(NZE,Sr;s5S+%#X<]3d\уxH?ͥ]YzaϕK]ImjIL|I5 'O5=PM=PЂ!@Ax zUЧKZ أ(X퉟E([qK =dSKIĉ5.8Zz)r񛀊Hͅ*)W` ׀ z6`W?:NMvcwsNXN.b#=b%^b&nb'~b(b)b*v + .NH*>%A¡ˌV1ZBPhڰۂګU :.0Cc9&$7cW4d%fDO[Hѧ{H#5Ԝ$> S\E\T#&̕](TnNZrX>!)UIe%%4=5M؉݄%u ޭf(VF^ن\kfmmjH,P0*3c`~gԞ^T8M U55%K=ý'FWB6&ɨ!__gJ`gK %8`bW`>5[Lf6$6kM=R2^ju|ռ⽰XX`jkmOkk.k>kNk^knkzO!-0ٽ1TP^kT㠥 %(9VZcY>hjdc!5)Z3DC!Z$[ [^m1QdI U7xO:QV8e2XUe^mܕ=݁\5\_nlf4=SSR]td ff]VQ]jmVLuvf ^]^36^fn?yIҫ{&oՠmxgz >h]ߌPu H ݧWNp^`#i j ՟l_{iֵ Vq;jiif>MqS ~sja#b5 "s8^s:s;ss?k^"%b< AcsIa/,< Fƌ+\*8.97l d'BIet^:ԡUo]7&vLT"Cet駄d*RtE uo'Yiv,e<ңcvP(6k`у"HG$soRT|o?xuB2nȍH`/#@pRU}VwhO&KWHo%3_FKuqҪXR?b k ˩j.̄L^ќM(pfr ~kIz/b"/`t{{{{||t.i"x{ƇN ]0DPm|_br>] c|קV7p-S8@ŏw~}'YQ%U牪S:}~,G l$~F/?O_oo|A0!H x+0@× Hp!Ä 24q#) q#ǎ?T(GN`%˖+BDȐ.o̩s'Ϟ> *t(ѢF"Mt)ӦNB*u*ժV|`P$6 ~$tE qTLxD;~BAE"4 dB7b,y2ʖ/cάy3Ξ5gPׄLB$qb&@p9A@8qYPqڼ>.8,R@!?C.}:֯cϮiB$5~mb 5lt둳,`DɎFxprk`4TN=PCT1DmRXbT(! 6p ۑF 9_T4Y`;q/l p3DRB)LOַZ䀘¢A3iljٛvD$BI}ȯX>Tp],cKnĆ"e+kb6,g;ς6-iKkӢ7'$ v#j|ckkFl۲G%h;c @@BlUUBAppkbW;\$Ul x% A8H@ : )$|Z0P8L7KLsl4:bwq !A&Aַo[D 9#1K zIMNYE@ AB( spJ7S'[C?՞PWT#C38d\ݠ$ xp@W0Wքu8P3b*ԴW5Ns!?B Ί^4YYH4+mKc:Ӛ4;O:Ԣ5_BV!l;+bѲ'u[Ǿq!]Lᚠu s&ly5 n7cb)SǠJ2!m ^ -/~ߦhmz6-{~'̡V[h*Aclw#бAAkZ 2Uz&[ oL fGƔc%ϚeKJ_ejڜvy +t2V/}y SAQZ;31 œfԳ>ү "`*l o}{ؼh|D}ޥ(N ^2O?_ ѵ/x,hx BTICKyALUɭ_j PPmO]\$< @ՎHUUBpW!PJYeHD D^Mՠ!Q`Ga}baGyaaazVA t>5 xDhaGlTA E1( }z"빞yLKBlY  ЌMW MM~-~=_'~0"^}9qpM_MNI(J #18\DEU@A44Htl@"bJ%fT9B&\R`͡ ܀HګO P))$C$a]IJ]P PXaP%1DaR*R2eS:SBeTJTReUQ9deWz%U$LZV^β}eZeSWP@ YZe]%Q tA\]f`Č 昜`2fc`BlaS5feZebffjfrfgzgfhhROM;j6D~@J`cLzp +u0td,+OO% .oB1Cu+Pjqqq`FfGH@lokcX't P,gYp#-+I' .t `Xr'SFtlA~ (퐅5h. 3'Uh pA8N>+ݷ&B.KSѠhț2r2+0Ҳ-Ns;C@Ep "gjf5ʾ|vf< ,is~{Sy+Hӵs24~\Eqƶg.Ws\3=㬔X ]5 ﲇ WFnd@լ]szGGrD庳S{[c{k{gbtVnzQzDF1Z͹km:YjD mu K>)mJ-[[eG"R.01 . aT+<^{1D>M7K&şa8& 2.83˫:dT/`24$.*՟DD/3DCc}؋ؓ}ٛ/F@OBJ;ڃ1_rd"o|FRbdL\+SM˼b̌_Spd^Dຄ+zBy nk 7JD> =N룂J0k qASKÀ Q W501p@^0 `@#v>(h!ؕv aHߋH`E)LoW(rӵ t!8S]`A聀y+L֛ Z@E D TЈ+JOZ BnvĆB D"HP(!c sFYPV DR% e4ј+i8vM,taRb@*ԁ ^D3WȏiH"PAJE Qu-A%&$D_ &܀)!N DD"\˔Fa4b\`2IiA^ T4(`,) 49kt;OyΓ=O}?P5hhi'YRhJE1Q%0 v!\ ?x\u r$P{aţFqSԁd K ' @ J<mMSn] QɑԮ(BrM=S?R@ІGk"}w9ؤh!s02Q?~gA~#n": HhH2h 3e5q\.us]NյuݡdPP4%,LD hxLp%AD]ΗG@`eP( ^(E.Dȏ=ZAN p` }X_ oÖ*E{a9Z2,k8s(j|=r׏XS arb6M_TÚ(t$ڳkX3 d-o40* a@ J˜`JA ̇:A@lh I*p0uO ʒ' O摏H?B-(hQ0b 0 JkYϚֵqk]׽]1 \D+Dmig*8/, .uA&_lJpYiϛ0JAIL09эCFә780֛/t\ @k XPS'[5_ݗU- !h+:ij%\%c$A);?|Up q!_ ҖYTS;BaKP_u7é[}x7}+ Ԡ2N^$%9 |{(oAp%_ !0A|IWBޮ!9 °8|fkY#a -pF!He[&iG@"{SJnUbt+)6Yw&`/V a 1*J4/Z5bÀc07tYLr|d8.9,"90B#o:.%aиc==DB>c?NP&D@Pb MdAA0dB*D4C<DDH b yFGtHDiDҘITJ&K" ݐ̤%DM 0p1q  1&U$^%Vf H2%$L\BXp;uR"Zî`[&\ ieg,^Ňzl__;`Fa Mb(b06cBfdJfRF[eH1ughxfHb[N⪨ &vxGk`hȆjpz@mFvGn&o=gp ~q %$r-6s>gqĴq#unv#sw% X`+zGX\rɬ{|ć|Dž!}~H'$Ll #r&%5H&a~%pBf$fj>C"r3p7hPb(hh~LP$nr+ޮ1ӉRS`Iih| Fd3(2i:I`@I5 `z@XɕJIrx n 9- @SfKFӚe"V$93<3=s=ٳ==3>s>>>R&JZ UDb쇳@ 8 "N*V \jO&ef A5׮j QRʨJʩ"ᯪDBnJ6tFs h j$$j䊮$DEFiHi˞N Rkj B`&`cIpRJ*Vd8Ű5)JtNi4^b@tOE- ! ,;%= dihlp, 1Ã0UJLsu)Q!,?DG dihlp,tmx|T ĢT sU{#mX!,F K  \c 7 E4"< /*D  Â!,*G H` ` cP@ 9@`#+jp Ŋ $3 `Jr̀! ~,(GnXˍ81H7(` *&ވBD3 XtxqpD"5bdJ8sɳϟ@ JѣH*]ʴӧPJJիX*!%@`0O[T 1\1 K&vUEɛCx[{h]̸ǐ#KL˘3kaÆPe%/RLP[58#e@Sk>3УKNسkνËOӫ_ϾtSDaW`D LЅm= ?Pd@^W((DWE ff$h(,"7EX9 ]p !AE0L@ (P ƁC `K6F^p)t֙hd58 44A)АdOܠDp@["%A4 ;^%V: ꪬ꫰.'zƚU뮼)Z+OJ&6묛"lQ5fv+TUk*dl` d ` Q*`׵,r "E{³Z($PD|HH _w@R(!) C` 0J-bfd_ a4uvإ 3O~'hѬ@y 7F]2O4aD"04 až08̡m5CՐ'7ܡH7`?I&:3G$Xu'ZXJ6ŜT1` Eu'_Ɖ1`gHH:b#Eh>QxTBL WsF:"+JZ t. 'B Ň5ILu'8a FiRN%إNB ,eSLzY&)gdZ2Wzq]L-\Ħ:.p] |B'] ^&~r+ԧIЂ6 \0BІ:D'JъJ4F7+p> )ђUJsae0R lz@N39J/@{@6 JjLJy ?`$̀;l,A6jYբxͫU<+|A |HAPhg` p@ 'x+>غzͬf/ j@`1`hJ`^PƲܬnw{0 Ҁy6a$0CT+|ưXaH1:BzP { 9,K kՃր~kW 2W~؆LhE; KL ST-at.nG_vU#ٰƉQlЄx`ƉT\͐@-1Np1w lh10&QX3?3;䁜xPUd8:V14-9]%0N1Xljh̒{\4@|:dy HrwLd$CA[쒱$` k $0b:XO2xVst]Mkbw[+˼62}-` تd0a #63gH8bW3&Y#ܨ 1pHĴ=jk;+Ҧ3 nYցF-ɮgη2m|E1}o{c^TO{&u CV5YᮅU֭ g4{HD1_v1LW Df:ݘjC03jAg;GݭO$;̎Qb;77ڒ; Ą-lQ Jb&֕ [(Y2lD8^X1L}P.wC+:%(ʣD"L` hȠ1X Jlb|xЋy$k/J#a/M(1׆&1xc\b8|4_@OGv1D_ 8C* dp?~aƗ~~H|~'p xp{! @ ·rfi F P  ` g  Ёāp `P a8,؂lwٲ@0P~B'G `[]B_Ge8FR-T؆r;  p& Ppw( & = 4@hqiHHs8.?1 = N~(~( Z ?dc|臜h x(~xȊƸKH^⇩ӈ%u,w89삇y <p &@&h׍Jh@zq`7( PsxHzEY3o8-X., -,&,#,%y,,B 0 @ @>9 Ӱ 6w<  `>I+ْLQ&03!RIVZI W9הf6$ A Ҁ:[Yr [`Ky.tA p)] 07 `ɘ3iyYy9`b p B=0 C@ ` Đ}9x7 .9<FY @ 1?)~יJIT9K),I"ٹ,Yٝ%$ bd㩛陞iJgHCI䙟(U>tD9'yci2WEGFۂ A J"J .v +ڠҙI IZ O bpOL6d !qz F#ڂ!Nj"ڤʡ;Ia%Z'I :Op:Jj@ pm [I$,NPAn\ O Ц~yi٩ʩӪ?1JFjI>ѫzꪽzʊ?1 F1[:jy}IP f26 2 L9zqK d/m pSAdZ o8&Z1JZPʠZ8QHK^ڡ WIz{)k6+&˥k/Qr+@/4[GK.=)H~* O zd`ʭSAakD{CE5 .K#Ziw۲'KPaA۱nkT=Kqj[l+RH Jߩ,)+,zǬUa"ZǺj+Qak"ԺJhD"K,8{k[f# k` Ϋ0 p{wKƛ&j#+ +@ߛ Pɋ 0 + Et՛; 7ݻ:j̾ ʻЃQ ; P` 0 x :ﻁ߻\ut6 #8 T<6B6[}l&`ApN  U{uRn>ڡ șPxpsp |PPr{}+}zݺܭޝ+9޶R͝0 01rs  ! `1ٞn69s<>4p4WaM4\mW6^~k6o#7 =0  7~>!9#7& 1D:= M<`<3ͳftq*Id->R/yN/l# `& = `&Р&PD& m jaB2"ph>040d#N `&npҀ :+*`5@P>(.^5E0a.0 9@ Ď)N>myLF Q8 08`?۞FE3..@y)N^oɖt=+W0(;^P>r@)=ГX1p 0 ?O |+" 3>A`72ϝK0cm# JߙRP&@ N Pk3]vGx2~{G}? "*R#~/ǒ?;Lz,d(>KQT)#ZPJ&2@7`T>p"sFȯ&0"I=EP9c0![IlC .dC%NXE5nG!9rذCIp$D !#Ƌ2L D vp0$YQI.eSQNZUYnWa6]X$C(,)\N9c=8CEza"InQ|\!:e̙5oY*i 0NrdP"uo'^ʞmVԫ[@6:$I %tp8BصCaGϧ_߾pСxrI0sA#pB +O9kN- p@ 8C08 #J,x!R4OG [-aDbD|!K0B 3rh'a` hONv8/820“/n`LH#T"yI3tSN;L 3SRK5JG:uUV[uU@=VZkuT7*V^{ vXbm(Wv5vYf]VVgTc ء C7PvZtU7Sh`dC@NeC7"F).QNRn!N:9B@Asc)le`HŐPd8H NpWa^O(Af7OP"%A:}lCR! 0$:h39c]Q>C - 1I 5EQx٣ >O@F #لEL o!#12 ͋7"հ]$E78PDIdI>Y(v/` hP0=I`H]?F!v$ /XA@>$yZJщ `HH +!>^N!!B/F4w6y8Dp rh֫T4a@ %\ @XkxM]YLg҂$z`Ɍf6;򉘝1KH8D,Rc(LPHHB 0i f-Q늤h&^ I'9-DP Tl*uITRCV*gyKtY.}iG4.Kb&L2+ NpB\ PМC\N`xM^n"|šfAΆ8a. B!'> B\]POӡtyS"hGv:f6 M= aXl"xB+*bVC80.pxfXRmR @BM*S)jXzT%F8:V).rRt E,r^ mx8yQSt C^ ^Ӧ&*Vy _3AEB0ՆbۋFi%mʚҦR uBd 'p|R[ B=`ҋMEO8R0{]/ZN7hU]Iv%@z^'IW6DxKy^tv@X< BU^ R[4AP!"Ml_T:ػ%qċxBLN7!JbN>Ᾱ`Z:A1Bl\!(Ĝ7/ PV$Rm[y㳞E^r 儌XcЉ)rV2Y7h}s7YDb-|gyXbscσULhDth-ytHHWE*<] e(F2RN$p-B- (#pFCdMkM 1F0@TZ!ˠ3q a/Dթu0>d(ɨD'P8 A`bt  "5 0H" '2`N0:^M'E1Wc6*@k,iō1 a7MQ򅘠'xM_(g8h3_T@1Ѿmh@ s:B!`@`p pc \! JA@?H tȀ2 `T;Ll.wCēd  %@Ih0C Hp(@2`E(@80AuAQGM+Dh@ `}Z.iȀrlZF#BkYEr g`!2^ f(kD!O0hrH#2(!H8(l$@И&@`Da@Ș @h 60q#7s[~3< v+ |  <[ tp 00pB&D5ZxHLl:3;CMUaHcXMTd5J(a5d@D9C@45g[_[\KG _:G\:Cc3SM?8"%"H8TEVlȀ67V7 !ЁI2E;$=@@FFK`xې@ 騎Ȏ *DPu.T-`gܢ2D-4HZB\CcxÊcJLd>,: {ae@aqPe05M_Hdj{Hc8gXSf( OCQ ߩJl(p*06\ h,JaܑA)LAh@ː#XlY P) Kvx#…pJ14ipQL^t.IDK48Z8@BQDI-*d]P2<8,M4 Yk(5QR&e^R !> #[IR+U8*M-U8,-J҆S2%-41MD3SXS7+9}616p[40 xh$`8 9}4CIP:+kO::;{ :@BCݜ}S78@Tb(h ըU[]RݺbEձcU=[U=+U׿ <`ᲐBq <հck2~4\eP$cq0=׃(=ccEVeA;DFkciօؽd6o;oҵvWx5؅e|0e TXue~]$p)8 HK8fU+Š fXXff؏uEXfEYB0tYn~[os:YNnZYv]t%G=Zc5frz\|h(FzڭZh[2hH}DžG7C:ʱ\]JxufViziV^LƅeNKÍrAE\% \uϝE ]ӅvhY]D՞STmk߸vϹF^'^^>c]5&wĈp@_Ѳ|QlEl'm mm.pqoۮ'sFSyr?n"yy/yyyv]6pd#6$V&[z*.d+4RVcUl4U_;cpAi(Gq9Phdc.pB.ioEVqZiG^nddW P@ /e~=eU#?${u,o'Wes ( e88a.f de1f=W擸lnٗsn'qtFXunbLZ9t}@hp|6ah5:E Hda&N16:СM0hbȅ&D7Nh%Ŝ:w'РB'^Yc(ԨRR*Ҫr+ذbǒ-k,ڴjײuՉOk9Wg7T:=BJ!TࡄčH{a]vnYsLϑpB D!s eȎsFbN38Sc"!0@ixdt֮rzF1>JLBg$Rto?kVoӯo>?q~\3=,Aa `N90 C|ILE ( W@a  9`t B(;d{0`"!h W)" d@b$Kva 'C%ACb sp$R 4p i$qH!NCqbz W(:(`|QAp?]zU'(Zz**fQ*:WG++g+ K*V{,*+:,T:Z{-JYM٧haYI1NKXi 5p;S .&LN|aC"\RD;L ;p†?TK @)?$q帓p,W2.Qd QܫSI@CJ3  7In֪U 4p`D?\A80BU >8z5HBCL41N?QEH\5 3B7 1A>\q[Czh|~z꫷zf7E8,E'LB3A=7F& /)9vH`oB^DƻT"C`@JX,p~?3KQ,A@/P:APAiN H`5804sq ~" Ġ 2D}ÈF8@P$'J2d&8, up!}`-H8ߠ8QVϯr49 `s$f1wicVC3hx"-FL<@`^pӒGP9qkba:auHq@ C0A)x:(eW<%*S9ùF b@ UBr4D)ZQ^6#fOp *@zπ* T<(\w+2C#z(FьrgGC*hmt&G' pKR3)L'Rԥ9Nk*Sƴ;AMTC=*PiT>UQuRTN$_Nժb^X:Uui}+[oDEjY׸ծ~mZ*X?:0*JxR2X) "8Ё!,>Yi_WuU-^v-noۿu? XuB+mj{+tXYk[ʭu_A$Хͬ{;R>moq8xuQSOQ$:ҁ+o B!ODo δn0t 033wA 0i՜ܹQwf,@xi,Eqv!-EEzσyiZD%x˃: py"'<|G?}gþwR)?~{Cƿ PuGM:QTP ΀ < JY m@$ A Ơ ֠m D L  96`R ɀxz2~aŭND + 2!u$!:!!! !b "6b[<hN (tL"}8!@'RD$0u@E("PH'L*+(!B' E.+DB!B*2D'D50bO"4cO,t'@'"+.D$B$PD80z5vE*8B&DbY0##Z!$p!c7zB`"b0+@(B*z%R#0B'"p#@B@B$th!D:M8B@(x!HX$,)bt$$@6F-B:HEb:ND't|Nt(D!D$P%vJFB55%JbO`'F"S"DJ$( @'+GF((Z)R%$#NJ%8*7eU,KFB=#.D8$(R'hA=R$Y?~* b@%- $`b'"eUV`@&&)/!()~"D$tB , d:/jA*P,bjB|V~-.'QBgP,B&fufwRJcd|8'`>o&grj&JNYbd'Nep,.{d(f7~Qz'j@QN!D%qRjDg~!0ƒAB&&(JB#mv&h(Y P-"h$ @h V~U~"<@hY&$u-"',"- '$In$B%Viz"(嗎'  =2.D"iXtfI)jZ$,F5Z"@A'B&"D‘~$ U''f%$SN"$Rě6"0 #J*Rz"#h+RZjX$0\4Bpb""l~lN"#4@ܦZnz~j'-"r g*Pjb$kk-Bp'(%#PQbL+ieőg&'#Hh@rj%w&gej&$@v$Blk&hDBQ+`~g=p,Zk~E($BC"zJ[~&!$J6g6"b$<'\$8"ŢE:@:r%(HʤZj*i$D"$|#T"jd:Dt#cBD&8Lv>e(qN%dE$"J#:R(DB(t/dJFO8e',njf'~!eHʭO#tnW$'4dCD\-omv}g*- mO>@|p}וEzEND/Zp2D6-Dc_N/ H='&D20/a"FpG!0+_0>Yjw0*q0 c 0 + b p9p00Cq*Ѱ'12q#.1[ OrK 8 EO@D@AXN˼EGGtlpX1w1{ טbq qwEb|q%g@W$lԀL%ױ#S(wG[qr W E@IJϤ fX EHPA  @ ME,ۇ$QAWA527*6w3|s8S۠1D8s3x3s,E 2Lv6@G5LY:L˰E+6UO EN @A lTl@9QLGۇ ` ` @E3PQ#RK p@@Q'RsUEX `AT8 lD| XKRbHOEb^P DjDA Ev XdPA3P} (A ڪ@RE36q@jvk6WKWvUv:߶WdA0A:QvrO4Wȶ rkȫ]P5_۰ @$Sw1d4QCh RC\6 A  H%]Ow~d%ADpzE+x 0swWE&A}? L 7oxUA3x@Hus k!Y ,-ZLty[ௌD9M(9NRhHTS VA 4 UQOH9~L5 C>_DygyW;q@5m7A{ͷM9W  ;}9OM_td<ӳ=w V[>\O ԀM/AQwTw@̓OZT [/\7iEWFG\~_7;a`D& 0r" @$-LpK…1#JDlԈxgĉ*^@diR7Y@&1;\@hY'1O LXr 6g/H6"%@`  6"Xy4’Rfv(B4+#wiTo(^wfY)aPwnݻyxpÉ7~yr#ʎM;Ȭq?8'F(5D$zvErLyǐ*CA ~i^A@JOTa!RXҎ#XHHR2"2 0H4. HL0w+aP? ҄"HP816 8k8"{PBnˆZB) J,u6ܘS8圓:<\MLaRb h`$&(QEq8 f#ȀGTDRM9M48l8*h!OCA`PNWB`Yeu7Dk?+/2,"rPYum%hwXP3P&t{sό5ޘ=9J>%N;^ecbmuޙF蠅ZOsØ褕^C騥Ziݤ묵ޚ눠Fڐ^;H xbA&( 6L(pFv)2o-@ !raۜo@!X:A-XPh0="A9$m+>A};:ˆlߞr  N0`!.lCv)P-.|!n:ʧŁ1p pZ" lPMMQ P ?@A J p! &Ab2Z` $a:Ӓ-D,iN Xf7W u[T C7PF p9%9Ica5 $ а(ȇ>(t,- A{dW3K#*gFt &SD!(A%1IP2Th@A. @ H՞Z[6cP +E1Q w+`;8 d$v0x}1lBm$ 1A Ȇ 2.%>6YQo^8 [Х.̷a"PAD0"+_W_=gbaoe 6h[ƁB<8C&;%52KMi\c9R`\A&'\d.?6򒙜6"7OEfW2,(PJ'waGЁ9DrZٌ/cC22/IZgρo2 nIŢSU8n-iHWїt)Ekҝ5GOӤN'Sլ=ZղFuok[װi lcټ>Mlf?}MmaWֶlnʹ1C I8 V r" ]M_P"`.5O3(pl;q7yJ8"^?ėqp8PyY߸1_e^sg6yis7gfЉ^tIWҙt?Qԩ^u_YֹuXHsB&{e~vk{>w{Xwx{ ?FGwx\񏗼?y{'-QD =>jV΁z{1l8-e4)V^ܠd.D&7s_yь/g/4Z0BYSnꚕ0lԃ'贮mٿm.}t*,߯T؅3L)߆b, sPN'f/*P;P8$kCwK0FWP2l6NgkosPw{n~P ^  P  P  P mn@ 'd n" 4 !v8PnEI g$ R`@~ P Z/HN@|H|nDa:.n D#ȍzQ 怭 l# w{gMshR  I XT N` 'ǑQבQQ荕`oi!6+nL2~ b] PB18" @z'" %"ʨDl "q o `Abfࠑڰ (%"ħ"u* lO N Zb(%D&pWgR VP1'@^1)Id#*h`|Kl$ .01Lr s2G1}h2L23*7Ē3/CS $&3'+z%)<:!"",47#&8: !#@o@A@"B' '4&..S<3g -( ^@Fp37l7"Gl<- BB?! <Г""H" "pT LtBD@$aHuCGBGa3>D@a?!?TJѓ+DM>=}~c4@#a8v4' UDJœCM BD$C55:I?T8T5Jc85@uV)NC5I%= A_(*VUfs;@QSPLh}U<{C;VMN)c4iZj.lPZsBnmk>Ƶ\@ G+&Zu)_ w:^WqFTz@)p`a3?A',7""`vD a"^GC$_CHq;@ V)̕_4"S!C? :Ahq!9;a`G/7)6'x3CG4":qMyuA@'3< .ܖv`Q%"snn[#Lo;B $]SJ!KXj3"8{W VGuXla2"G&'FW|d"qn#@Uq{5">aAXb?#(@"! L)`?TNEYKStM5z`o_CAk<–ߴ;@&@)"T< zB@@@YV<-8H7J8"?Qv;ey5Nߴ'aт!l!RLF d:sBG:#rfu6'"2x3l>'^g7Dor*y7,zW:rCIp"y2 >4FÂ7`1Y8_na~H`: $L2H0RR"T2`SRȬ@2hUKؤ"2e #J2&RĨIAȘ1P&$@` V@=q Fp@ *BAmA B6CF(.Zm0 @ o`<4Eo.!7jʩ/Q#ZPƄ 1  P@8C1: p1ګLB@;t"UL2n "D0$PPIL"-D /2( BUH O(bJX =e eP-o*#d[K*hBXj)PCT1DE0:: EHgYgJ5Azm#xPIa|`@KC6o=wª\P@nɤ4`k E<(!ӁJxm*7 +L ެ2@hlu AbdO|ƻ;*\B2D- Oo-;r"I -* #"A "=/822ZuI0 @&D sDͅ"<!$s~(T9 O2 "`Dȁ z0$l@A#"Q1`v8Ё$1gKfBD?~0 ͫbX $\ -Cce OD' adx /Ljr$R*~I gA@0!l+a҇M %G(9KrM:x_1d*sl3 hJsԬ5ljs7 ce0ωtd0 s=|s? Ѐ t-AЄ*t mC9Ώ%lE/ʊbCH< Ґt$-IOҔhJ\ј4^0)m:J!]g=! J8 $ P ~6+Jg&ܳ AȀ+ zYV؀ Tb (@<1U;P\3 ȸD+_X;@hK'ڒtf;[ h/<Ъxs_LRS DB렆(CPփA{H`d$a A0!6`jpG>xpy  =j xP A [7A|AWk Hp7:ly@á :fw@4` P@ ҏnhnxK`X<c(OLNhŴFJy24U7a=hdy( x<-=Ce5P{;c@] J {C %[ JH J&{A֠x^ :hplvznU<ab63ܡ &s(0 w.DcYoڋJRz n@/(@܂n[}*7嶺ap|p1a ,.Ap@r0WPj|Z_d ` e_hn|&PTeeaFbajlP_W{rdK|/kG5h0&[&z7ȃA(CIt3ᄄIKȄMOQ(YTD[!ą_abbhghS^kȆ.GII!-4F;1pqy{c?m(kHJPV v(hy24P?(''8Ae@*H1aXf?0x#p5F@`ZR"h f4=Z`h18'4<&pQg p3чH_HJQ@GW2JJp) 01W@)Ah@F!?ؑ Cd$&$pHA1!*8C8X"y!#(X #E2h @ H9 72a%`#I)8P!QY<5 !at()wȗ}!jTBЋED2xP2PF5=9Gt;0 1Qs!QbI@/97@A/1ב1l sBX2CP/ Yb i q B‚")8PٞGJ0Y y&2,0P&=J$&A'Q 5` jai(2)r,"8+0+9++",b,0 r-6j( ѢR2b;2( i6hjlC1!_ZLig "t7E88,`mD']z!= A=`'p702)hQq6Ip/1y'P&78C88 08:#s91:5q8>p(J)5:;;S;;48CC=C&h{h*FJLtAoG6P& > ;@'!B;4"ݑ4`,'J~jȉ +@G1aN$DREn'G]E2F~dFʨFlDG{GddF~<ıi? HE0H{HIS,J*:KYjȴK2KO{uOYNF]QuCa_i˶mKJps kKw˶ar!xHkF؊@5r13&YḧHE/[{9@"aI*/0)ѸK*P7(5]p2፩z|!~k+ыH1*fճ=vK02~/%÷ ܛeMD3r"ܮ͵-Ax'Ӎ64ݴV&qݵMJkqx3eCP{#ql`0!@q޳X{߹3Ȼm+ ^ErX@xIݤ 1JKNľh&);,QL+.{'A01Gܔ <܋ SQ~^^)̝,ܖ/VhmKj(`"阐 ēy4ĝψzIlKLMhAUWǹżyĩ"y<!d<ǘNǴ9RK܌(1n^^r.3J: L\CT"z+nڒɲ"+˹GьC`4l,0-{BZ̝,.TJ(lפּکQ!p:ZĀЍ:ЀSqh 179s884ઔc9& JӰҹ:\SBE}ͪԱ.-,Jmq G*#jb-emj[p+zEZ Fy&DC隇MC#:kHm@+ExCLOMoD B >#-F|nRȅH:\J-]SL?Ѐ@6ЁDR*ɤ$=%D +c?Є'D!FЅ/HCІ C^9!b:8Dm)1":JTRphb! @xA@л@=P{!!ICf@X%!D@kI0;Ԡw)bLX$!d iH, QHrE.D ie""1qONIT>8yH+OX5$\)8"+\n'8Q_IPDZ-ȺA2CDf/c83I,ȼ4Ce0NR OΙN#fDED!dd<@7@R6ӡhHHx4T` +!c ȹP%@( Cg?OB8P\A0C!QH:ȧ<)j>6!H ^0G=# hP,[UEWi[NڪA!!]E֓DiJT ^-$/!!rV1j/B `%.ICXG%r%P`Sա|U*JUrUbF hy5[`9U-Z2KY6XW ev5w^7u jR W )z` ` iT "6]LW7A}Lg#UN%?jv]Kd< VeЯ$Y9_Rλ'IdّE!;v٦ 7H$'I}rfҶ( C%c?Lx lpo=X0̍,B~Wbc- <ۍ![bv Nw}7$% ,Y{AIFα ؊FsU*ՅicOm>o>pŠEkyʾX'{%8'+{V>+@ %*,; c?͒ÍҫI{ |6:) (d1@ @@(B0!͛l ypAb) DTBAK#dO) 4Е]lBB(Wr(O0C0PRݷ'6ژ3 /D78CPFYCy  &RjULT <ѓdXgh\#庡P,Q,-S̔]jŖH+⪭Y-Y]tD0% a\XRh&,%MVfFg*T}l$zaͫQ/| 79P!@;{(pɥɁ9 \h}!Gq11/Ft[Fsi0 HHͰ\~"!Is S0(  ضEP``IQ,.ɪݵu &[5͗ U:aVKuJ\1#3{ȂUme″K]U(XM8 y 8^]5K$33=CM3< ǤLDLimLL̗`H3Ф444O 4#͕PiMڨ؜͚QW1p"JkaM}aថaKV v<%^!I^Y[HaY1lO eTՖ P7gF]>ehfjfl;8AJ$Pe S~ rr+CTқK8-"E;(:_jҋ煛RhҖ҇R@b (ә8ӱ3Vh[;x;KBӴT8fEc s.HetduvF;lԢp:WU=[U;UX5*x>i >a+VTX*X֧ '˜Kkmj[o%?vkVcِ MI#؎(l&ׅ0- Z"m } XF /?8A?T쀓A@ZKcM*»YMAPZ'X)޻J!8\f74 n)1, dvϙcۓʂ`緍Jd]D0ʺ&P3&-EmHE.XErP)ͽZ[$нN]-[ԭWFf]hn #. Ʋ<)H}l 5"_G]}a!pHH+I0=I1 ` s4I[ɢi nI8]+N78g "0K#)$Vb43061> 7)3fLpԁLCE+M9M[:v , M>>>3MMS?yEؔKHce9]O\[75_7cWo#jevnIhv|jv+mNqpIV煘tw,-=l9u~nƹ*%K-? ӎG 39wv;~,ͣW~pgnry/ V`m*yx nbhj(+%+?kj:j㳦"\ڦncrZzCؾwS, yׯ~kzpWv\ '7GWg{j-vX l͆)DA*JՏm!6Ar2mA#Tm}|4ɿ# md(Zo oP]~"=\G)-XHAD$XcąR(]ȐBp w♧{٧jh'Z"\NENWqRZb饂Z$)):⚫ګ\QQC7C!۬ϞdP+W pB e@C )A9Dq<r2;Q`W*yRB sPr15,Q @0oVD/wx{ Pzh1#fuhhs ܰPARvd#)G#0D"Г3?%p`BD1p )4Y?_с?uay$pp>ta&mZАId Q7A5_4H"8ܲNEDDyM !^R&8=hYGxhfq5Vh7rn@ &;S;CdCPZݽ+ A>+c Cn,)C UEtgPpD|# HL8ow@<^0so"T`~0,=00t .V=䀐&FɠDI@vCȏ~Sh`( 'И Ä$ ؂Ƞ/){ P /0dM0zܣ@L[ #/ AuU0"- H4$Nzx)pc$BǕi@B9ZHXixGP P=DR%F;sL3GnIh"L$pi hܴT#q/! T4FCMR,+|%P<)!8db@l JL*Р^`LQd@(Sl+` YCd_`\rs4 `2R$np 塴MI6Lhxva7͜$Ʀ@J`T45*ī5n"@j22 8PgM hέ8? WCJ12|ua`#F?bM]䣈 HSі$&]9 +X|%(jT+݇{tg M]SF䭟/y7CP{7yk /IU8ү l`C ^pC8: 0+zZ8V΄7Ӊ81KlR8*^1[821kl8:1{j2l##9J^2'C9R2l+c9Z2/#!,0H , bА((g*#4p=)$`HJ ! ,8G /I%x$eG* +܊ (;  !1!,CG-G dihlp,tmx|`,фL.KM9*TUZb"V!,iS3tH*\ȰÇ#JHŋ3jȱǏ CIɓ(SD؀JLxIph yN7)z3K UtQ Z @J:kj*,@@! ,d7)w dihlp7tmx`MF,>¤rhl H vuts  !!,E,H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ%0cʜI͛8aɳϟ@ JѣH*]ʴӧ@ Xj\@M˚pڵm5Y0@n8m! , Cfh3    tulV~Vk!C,HM@p#)#@ (Q ECIɓ(S\ɲ˗0cʜI͛8sɳϟ@C^(8 (TJEiЫXjʵׯ`ÊKYTYX4F2jpQTƓq˷߿ LE!{xAT)8̹ϠCMtH0&Pd#{`qC!U8evm Na82H^ËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐޹;t饘'FA*c*hF*묃ф<Ъ{a*k&65ʹVkA&Txp`B6k.T2+Tc¼,33 G,+|5L-b1E=$),0,4ל-8'<["T %LD-2-ԲTSgm$hZ-dmhC"K3  l!,}7z^ 4Ӄ$s۝s@ wG&.,on4# _ I.n_4l;.ߟ R$Oп'4 4go_Q8_4h/>|EMT ` /o HLY!7z GH(T = AJ gH8D p9 ޭ"yC~bbXB@p-E-zXA.ZU_AF !Xo'V Z @ʆh*}<ԜObJ'G#(R}#0 44 K8SOo\)([OԣFB͚FP$"L8INa|\8@ rĩRCJ?$AShFLdַ0Y;+Pyբ)Rɦ:0C'[v38)OaLgL1k@ͦ𜟤jW{N[]+R0A%&a LPB-\0ֱ3A&DL"Dt9S Ld6yV0sݾz~#I`D%(,Q =ξLW42;+xc#ΰOzpDbN$D "N1NqgF0gL8m[HFLd CENr4!  YDE*n`@N[Ɛ.{`pLg FiC1JMlagMZָεw^MbNf;ЎMj[ζn{MrNvMzη~NO;'N[ϸ7{ GN(OW0gN8Ϲw@ЇNHOҗ;PԧN[{ECh3X3^}}4K.Ka{HΙe61ٙ nǺ48 v'H}+w㹎ɟy{GOқOWֻgOϽwOO;ЏO[Ͼ{OCZA2+>H [R{,e"pA! p2`F@;P>pu$C6PE]ph!$P9`@J+H!HaDd?00A`77؃2_N8TXVxXZ\؅^`b8dXfxhjl؆npr8tXvxxz|؇~8Xx؈8Xx؉8XxYsQK hpx 5ġ ON08C ia1`ʸ،! > s08u(#p5@)a-@9à &4c `΢o FCva(04@~'B 0w#,2 p7i!QE0`,dP:E0#. LXP )(L>q*Ih\Z% E7 >V O&p p H)E'P.[=1VnP@`~Q0(0>p ;C& ,5GD*0#p! )w7}Y:(J_4J_0IJh9,`blJf29 㙛JP8d9ʩI60)f_IlV60f@w0+f  j`Ӊy;03 `pzF 9y $j/:c`٣Il$PlB{i/Rap9I$ AKә[<9a@y{9L {~)r:`@)(Z;h2:l`G{?"t M;PhY,dyJy2~Zhʪ|PK)0hȚFlj_u07u0h@V@P{Ij$0@P`uju'ٺlz?]Z*=MqB Jp5t;bQq0B u ,{f0{``,z"j:۰~~ȹ`fM`?Gf( \f plpВ[p4x7&PF g+C`008gp.c`GFp/-}1;@hBEpRiIK̢AMȹ;8a?C57Q Y@;8[w#?ci1~789 fA~'/i+h8þ~w!E!&9*P)HQ ?KI0@Pv2`>@;=PlWJH@Eњ3Hg!1qEC0 DH5\#Yp ~x?MRkW@=p[@%| ;P'C&DdV@1i&@;LIpHXm# 0Wi[ A887Q XH?{ 4Ȓ. DЀXѻ#7W\PZp8]"P\ +8PE\M`4H`B'" l( 1> W!8%qSYWC2lkC7(7@0]!?V|?PgG)F ;5p$8% C( /т/X.p1)T 2H6XM @ 7=& 1{[̦Cj98\@40|?d )I@) I>Z-;< Kx1:JJMT8I%A8ExC?HנiIs?-DhhEr?tSsҸC,؝= 9kC ݨ,*ݭ !9ѶGp>ýcޅJ K@8pMQ sqIx# IZ!?+ ;el7Yp @V$KL vol1#1 Y*7 ԙ|ȉL_ZA>6w7GA P`tQF`L^EL!k~9q~`i^]XdW+0Z1@57Q1*71%)jZp&p1?NZY:EA"V9P.Aб}Ѻ9`!0nŮ̔;[#_@4frtx1^^u!0 , D_ObJaA,;##//t.,?=CdK:0F7BD_=5#Z_)4e_`$t&$Vk7EQ)1+T+C_I|-7Xq,@t_Bvx{O )H ? ;p aO^',"?8Z\a7(h -.± 2p&cvӠ_-?!Nryl8΅,"Q>gvq0@`сL-^ĘQFm9 #Hr#dtLQęSM'NvJSP7m ZTRETQU^Ū3U@RZ+ADVmt`C Zn D-ZQFzСw5#>Ydiyʝ=( o! vZE!8I lb  wtɽ{pōG\r;ReHD0 Ǎ(RB Bz\<M{ ߗ ]*8hD >)衷FpD x(#H7~D .)UV'xʬvz1o䱨w1H#"Fz1GuprI*a*J(8  `H/W2 ͆!`$4Ѝdp A =GJN`t#~>a@bQKR)$gI#kH_$r_qXbI+ )lv(-4ۜ[o7\q%\sE7]ue]w+ *I޼^zJ_FFtޜa^]/8c7c?9dG&dĒ(2z\`Y'\2a}*eM)egfje" 0< BR꫱2yܹ8z-(:B"$(0+k'Ϊen2Z,dǛbos޹p{^}6&ZqSbL! +аz@@$lsS| š oG+ *0&i ޗgy*蠄 o<A"rn@!nTtV0@mC@bl)sO$yG}#V'IL ƬeҒFRrH#++ "= pM D9ɖld 0A &"O@|@ JAdU)I]EN0锛͢V'= #Hj#yf΢rFnBL~ӟh@:Pn= {ϫ"2sXSBEF6:x-+UH@H4hJURԥ/iLeZ.L&Od"4,r*%. Rq"8tJlP`$-]ҖfSU0de'<f*6  D(d*{- "ʦ{+pϚ:R'UԧRP}5TLRztnR6xa&r ګ HDpœ`N3@@> V8"LNraNs8ȖpY# +^o΅o|;$+ W;Ԝ.UT \@$/ @q8s$ 7y8ipi+JtGkʼnyoxR-K1ޢz<6<6…0F&V@5 K.r2 !"80ptABZ{Pn@(b"f# m$ugJW\_B\ uYuiM_%[0 . @ :A`<.p)<"sME!N[ D!T_tlHr䕒o4ŝE7*Fmle6(+ 7P2 DLyw;]$6|P{5׹4Y2 ={QCS[ y5lېe#]dq+"Fع3I >tGGzҗ)R̥@?zӅ(_{>vQ>#9u;α@kN~]+誐 5A_ E@ LflR0{G+4m'=9wڨ(u .FZb& f8M/pV'Mj`zz2qW-~E=_^`r :plPN}$$&~EqGكp`  (ȸ 1l@s%$ʋ@P@350   ڸ4;X!&x>\bcÀأ>ʋ2ȴa5WPK?8# IB#T;#"ȁz1$8ӸX؁ha:iMH :~B(EdDAFIJKLMNOPQ :D+:.k Vt@3E++:RŢ;/ !a$Fa"П 8cAe^!#/1SprE,HG2X?H9؞yFJ#c!s1±\ǂ0G 4 ! @ҁH!\G*r4DE[94ɵ# Ȏ0(79H1*#G^6_ijsk;ɥ|)ˋ2(7i8%]*.>eB29 #HtKȜʷ˺˻˼˽˾˿̰3Ep(* ` P${sլzxL.znM8! ,roI8ͻdih $h0(x>t v!lzsJ( v v 1ym4|N~A!,W&  3f   Ȱϣ֒ ߌ~l H*\Ȱd @Q"@-ØQ>=R$=MCr%Ȗ#9ćq&@! ,-D8s`#dihZ2jh $pmNJ(Bod<&FBu   c2:n|No)}'%z$ ""!! ,];-0@kҠ\WXJ)[ib0 [fH,d2! ,+H*\ȰÇ#JHŋ3jȱǏ CIɓ()θAcRʜI͛8sɳϟ@ HgŘcӧPJJիX欃fъ@JٳhӪ]˶M ԘA*q n˷߿C7ੱAǐ#KLrE 0ۤNcˠCMhװc˞M 1Q :`Ó+_μP0 سk~:O|l$ʖC"=pO:?Z"Y~hTMzނ F(V5h5g (bo,(H`B0(4W#&@(S j褔VW9<38*j*U"ڧ"L"3j>:J&0 (k,JH6F+Vkh˶v%ن+.W &㦫ʬb&(-*%˼A+o` "$28CO2g&Dw ,$l(2Mp#x,+3m&"=4ch!K Ҧ25BLWme?ߌ͔@5_-= -='3pݖ,4c3p߀.n'⌛$4I䔇4@.wEK8C 4:A Ans5zjC\ o'? F/Wo^"P dؖ-@gy5P"( ų/"J K'␆D1Cr `3$?$^Ln6IaD$OrΏ IU)Ow~~D =V< S. _6_2zSY=٥pP'%9{/;3:NrzLh9R( KyzSWCO@#aJT/yCd&%. )jRʩ"AͪVza\ k0JxD%61 N'^MHJW`0k&,G`xEW]K0m'ZIex{Ld$Ύ D%! ζIJ: ?2!(hA&C[Z2r(NhA A$$qRԨNWV+. mPC5ZL0 \ֵ_` ؆쪈ؽ.6jK5!tSlh vMzη~NO;'N[ϸ7{ GN(OW0gN8Ϲw@ЇNHOҗ;PԧN[XϺַ{`NhOpNxϻOO;񐏼'O[ϼ7{Ȼ;'Ә?Ezg_Si^dR !x`G>*oK}i$K 8 N`je P?IczAMĿ}$` ޗ|P w 88Xx ؀8Xx؁ "8$X&x(*,؂.0284X6x8:<؃``0I@FV >-Q@%&pQ`HH<1@F"p7"W(8F6`: EWmo|\(6p`8@`PE] CPC0^H81(J`D@d?06p%،x/DP1pPZ 0wP@ʢ/UVXQ0d#@T "Wp@(*PCpx+p v PmE7C`,P=<F0)#|f(8} FyHJLٔNPR9TYVyXZ\ٕ^`b9dYfyhjlٖnpr9tYvyxz|ٗ~9Yy٘9Yyٙ ط71 N NP=  \( } PNBP J ,)@N`O  |C PO iP &0 )944  霰i~)& #B  | Cp ',ڢGʐ ɀ%9qs{ ZBA:Ph~&qa) p @`"_Πb|hUXaCcXgiG ذ ɐ  ` ! \ P "bAG %W*D`x|臀ȣ 76 ̀f6jj W~H$@xP|vpa  ` 6*9j c)&USGE1I=   8Z.P ư2 %d|6@!waD8qj@ \J_p';;1{; (w({!A``1(fdc:k@'UIzba;d7u{` Pwf'KtвE +7cAybz7$=![ck,x>*ӹ0sxd G` Q}1F9 xA䡄':kR;Ax!Jp%);aKK([GONhCP / ,*gAʍ5z^" ;LQC0 7 ?"KW0*' ! 7`Ǻp7@ 7Y@L =Vp@7%*>Pg}#A%P0=<==^ /02`;J]+emJGu=956& QF"áA$]ƥa;Y%ɘ C '`+02*S/p_% =``[PghK7@0>PyAlǀ Lͺ%N00D@6p72/',l[7HAQЊ6C| %l4@Lu;'(/]TBQ%eF:ELa@C&`P\2h9RX'F@!qKXFxx l=K`= h_00mIhp4 Ip; Guݼ Bh8鸎:R=4&Տ&2&׫pB,iQ!7*W)&|hR`'C&`Ap> Ȅ܇;fr¸Rҍ=%F@: c";F#  0Ώl=M`4HJp8Px>&m)\6 JƐ\P74`[y>- ;3p㺉?Z!G@<@@P&Jjf5p )<a]茾ܾGNӔ bmQ7ӉݾBSn>' X_r>?=>lB+dS o*_3SJ]~)/#@b' aC:)B(_s?i"=dnL%"G,Nm\zM#-To6Uz]>"Wm,}eƤ#ZkvTl'[,XlMS}4FwD(N%={zd\2/)/d YL YL~4yuu\A:!9ͤ4P! j!ԣ_S)$y2<@ H`U\D \0!Æ#.H%MDRJ60!K5męSN=sH[`TҒ4!d8V'+& ɓ vbF;7nFcЮ\}r#C%.[C?Ydʕ-_ƜYfΝ=ZhҥMFZj֭]s>6'~ qN|"} O%[ryMz䀧}]vݽ^x͟G^z}}/P_͎M/ .?wL{ 1 0v #HʠЊ= =+"n0$AZ:@ᇃJ\=:Aڏ\\tK+=8p(G13RS'n"E80A +PB(M?4PAH SPGỷqHq"ܰ1(dd2: UL:Vzuk:U<(9WWŵWb \}b?@0$`m @@I@5p qXA  u@@*lZz%\v“-0&E:]p2p@b\L TЃ` 0!M` L?rkR`8 LB8jT0`#`ݰr9]/VAA馗\Sc(VN\a[[hL4`06(pj` -w5h>7.a̅u!&`[ӡՐF EȁP ah$8$II,@N.QsF @ /zT0 tKcF 4R#Knnv荘WuYCf*DA!?i:emkN vSODA [hЅz R|[ n( rKfqlq+> pbUA:S WMr?A* ֶmnu[wr4s ulP379Br[V׺nv-rM(" oX^j&cW1xK PH@,Ut 2$& EseA?ǰF4]ҖTM(`@(~9 @\*$,TxnQH6Q3bBA\_ؠv%ґ4"Y޲IQZ0 XA. pJM'=ñ7tt` >w})(!e,R̯ܕ' N%U*#$9؀JeJޅ}F)yUnz/ye>s7yus?M|Ā1FC҂GRh`$#hX2A}A3 L#0tΌȄxB,`/Q@Pt @: Ȁe}!)O#v"s)T,4NJ%31@`0DYy$& FeڂȠ! ds$]֔2$@%yQ@n`_ V_L@ `G I] ? ātF:Rv`M4@u +Q6 79{6 33Ӷ3)(9*7{h6<{3A@$z~ ؁ H,+"<(8h#軩@ 9óB%:ɪ x8S><`:?A$B4CDDTEdFtGD8{ H@HH܊I=Ђ :QT7̲;( `;;:O*ˡ!SŚ`q-x8bƋF9Bdoٍ#AHS:E 3K5k3 ,a(FH+8Y%@>kǃFĸ+I! ?˵kWG.?f|Fb8ZI$ɘTyn<Ƒ@Tw6q+rLAL3/PII59jHRRɨ˜+<ˑ)8;C8B0B h" .Z,\tеLp은!,c+ ?gXSA>4hP@ : k*Z1C@q@( `ʗ0̀!,H*\ȰÇ#JHŋ32|䨣Ǐ CIɓ(STH˗0cʜI͙ZɳbΞ@ JПFDӧP)EVjʕ(֮` ~ KٳǢݪv۷p u.ݻxj(߾ &w0†+^xTǐ#m,%ʘ3 'ΠC,:&ҨSCO==uKgvݤ_t蟞׼>{ݷO|gxh`FB N y6(S`vH؅q衇"V(6b_/h`y(~6ޕ<[C)^c8!PVgaioZ喸}`"GetdܙХ&ul.ũܜty*gVYU*dF衎-(FMaj銕0vʛNQ#±ꁩz:`ں٬kP%k [eKk¹EZMfuzd4+nfI+ 'k/{k/f,80~ +p..wVKW̤kLpǍqd%!?2*ɉ2F2 ̂|8;x?Ϟ !mtCJKW)I͜TO[gex=m`:veK\lkCs]FpǭmZ&I}'S >xˆxጣ Yg]yBCyZG~kx΂Nz㝓ѫ}:ꣿ>/˲kzӎ;j{L/rҫ}WΏL}}ʷ|}痟tr~D]B2M~Wߏ?oɏ _@[Ł "3R@[   Ȃ`:(Bi;! B0\aU(Ѱ{!bg%@ H"v>L&:PH*ZX̢.z` H2hL6pH:x̣> IBL"F:򑐌$'IJZ̤&7Nz (GIRL*WV򕰌,gIZ̥.w^ 0IbL2f:Ќ4IjZ̦6nz 8IrL:v~ @JЂMBІ:D'JъZͨF7юz HGJҒ(MJWҖ0LgJӚ8ͩNwӞ@ PJԢHMRTnMSJժZXͪVծz` XJֲhMZ֯Jx+Eutk]zW敯{k_#W֯ha{X&ulcXFlezYfֲehgAYΆv5miE{ZEmkWͭnw pKMr:ЍtoNͮvz ot+WMz{B`[3 B bp  sQ%75A H2@0@rr9P 8P6@xnjЁ)H+>`:`}A@0J/ 0s+(PUq @,$H ;8A  4p\gܢCPPeιtp,ЁD-l;PaӀ0k99 \JY -lb -o!Lհ>.~b@@$ ޒ9Em{k\Aۃp7TЃ` 0A`x@80-V :/Ihw `V``,l@Cr()0lA-BЁ yn !"@ӟn\*0A>d:? p ۶LAn- :m]}`[Tz hm[pۄ@5Ay s>-  rxm/Wes˂-o\!h hUs`]GxrCPC0u @C`E0C~5q'Sp=`'pj# FkX0%m(Ip/hn؀E@*d:)0,P=<\_9z]ǀ96p(uJ \-l0m E ef}W\6ZwzFpv ׄEA@`P`SWG@<ȈA 00uo@0D4 j\E 8 iI@wh>r+xzj "`t0 zx2uWp#a%J@6k7Q}F{&zU6p \ FGj?6piu׏&'*(n?p 'nF6n> )e]ؑ5_&yo&*,ْuoW2 X34y6™U;=œAC %GIIiMOɔS U)EYi[_ɕa镲[5[Ze k)mIgiqɖwy s)iIe}ɗu %Iiɘ嘕 )Iiə Xmٚ9YV!,b+ Efh33 ck j jf{z1t0' ! ,e7`6hlp,tmx|pH,l:ШtJZ<$vzxL.zn|N~"@PAB\'B8|✉-jlƏk:zI (Q\I˗X ̛``f!$,ey!I,!+H*\ȰÇ#JHŋ3jȱǏ CIɓ(Oƞ0cʜI͛8sɳϟ@-aHУH*]ʴӧPJGԫXjʵׯ`R'ٳhӪ]˶ۓf3C x˷߿%pE, %aJL<І"{x*Idͨ* cҨH餉L GC:Җix'& ^uNׄJD%óHMRԦ:PRqc CXUR4@įz5FxUJV (ZG!=cp+ P)xͫ^׾ `[E-VAIe$jQ!Y -a v2pCY[(Աja M@}E`+ޖ&]2 vշMr:ЍnLn} $L+.BQQt"Mo_4 C 6E!늗 [Cx ED];,!Bΰ7{ EBmlCd .88x! 8 5qb\HCͱw l?KqLC Ϡ&[&R. _WL2hN6pL:xγ>πMBЈNF;ѐ'MJ[Ҙδ7N{ӠGMRԨNWVհgMZָεw^MbNf;ЎMj[ζn{MrNvMzη~NO;'N[|N`Hq-;xG;PԧN[XϺַ{`NhOpNxϻOO;^ZA2+>hx3b `7Hr |W 60pS8%ٞ @ E  ?"Ar`, v/TJ >؀ ~0l7A (ci_7X$7ywyWTGw2y7zwzzztX"W{{{|f#Ǘ||'}g}}}~~KF~W?$KȄPR8TXVxXZ\؅^`b8dXfxhjl؆npr8tXvxxz|؇~8Xx؈8Xx؉8Xxup"s `>& O pa : ? D؋xaxaOATs= C { 働x,D Ř& DN G npp?ϸEn @ O ;DE=В(3$9.;@ "\r XŰ . 0Is"APpg PAÑ p vUXp Q/&pQzJ[U pp ɱ  " b oY °" '2xP.X3 f P p*@ P("@5 p ⰘP P)٘`*A Šɐ00^ep@,*g ~r$`= p! IUpJ90q. ) ;" F!RЋG~qz8C`0"Bp[`'ݧ3G7P:I+027(pٱ 58'J]E"A40A_ӠfZ&UgKBa^sqɑ⦟""Jl'+2J蒦 |:q7;@*DjP .p6ZZ`*oڪ.Vꪴ*!"5O";C$J qRz}:WcZC*TO]=-@gC1pz`h2`:1ף4yz4=Z`y5ʯp ݚKX_|wC0VٱU6){0Up4b!Х@p"]`rpQ@%3| uyp K&4#Z@z5C[IzQ;U[)qj[p**++p4P/02`H@` gQ:#~nKI`{a;<\"1՛5,/@YLq{]Zg3  ;0R0K/ۂϋ[g %0#1KAEk5= G:@޷}K1CPC/!. ?*5 =pى}z5+P.t:Pc 0ߓ"5(Z것1!h[Z~={<a{Qa2 hk>} C 5V<Da`:EUw z#Z&(Zc||Ȉ<;Sz5-Ȕ\zsMDQV3ɖɠ5bH]cȡL; \iʫ7<"Ȧ ,yzcfId~Hc̥iČ6̬L:3|^^5ެ3Ȫ_Sɬqʳ̇.D؜l΢b  xj&3^-u(#p5Λdѹ!LN ~ "$ je:\e(miKZi.²Ϋz;Pny@/\#|HU" }5Y5΃_} k&3W\0v ־2Q&!; $ $pR`==\5!M<ɝ5M̥$6XϿdd}ç&mq\BZj)Ѥ\6 , bsڼ{ڟaݲ=oH!\ʪ;Q6f՟e܌޹ޅܱv Y3m5j,y Պ]3ϸaݺLۮK$ HyMK ˰ _1}H>8n555: n5y;sm~ ( h"W2rO۵TkƲҧz&h{AL + +Oq |4}ިx57ֈɯک]0{>go-{{g3,a8;Ul+ى&6}&||Sz5:CG~LJE7G~,,\ >8pl~t0`GP/]gLk`\n~=_C튳Mxܾ8ᴼhCm 6Y^@9C qWJb3J9`;-d8`ѷ>@;=PoWJbz.{L _zA>Y.n=M%=})6BP'CKQ@8`4@{LIpH@z'|2Y̷%(|1ٹ!Ԥa55e9 S *A .dPA'NNPbŇ 5nTh GU]$YR@-7pJ 5vQf  @2 T3b ؠ B0@^4Ԫ]L%[YiծemΥ[, W@pk_&\aĉ/fx0!PAØ.'lh%? y{$ C!P@zqRT@!chގ/ ̥}K Z޽U s&B >y">zp<'~b"P=ʓ<! )R $h Ȁ;:`B@ 8%v0  l 8qDFqԑTSI Xb | ( ?<<҃o@ L49JҌˁt H8͜59[p-tPB 5PDUtQFuQH#tRJ+EL$2ړ!MhSPȣ64T;U:KUV;աL V\suW^{W`vXb5v.9coYuv>}Vehv :Ҍ$@.xjA#:VK-@ }ڡ#FzuTئUkX[7VϊV[l'v8n݈-,6=W G 0  $P0ap  ^:D@i`+R8ѝ{ʆZ^00p!V{mJ,܌F,b5 078zHa8x+3-!! db1Kr F`FI쥽eY+&ևn{/SAZuZh舗44n w| 9{w}:]1  ޿H}G hHQ :x(~ d` z Mođf7 NpԊv80$(BP\`ATgp 8|2dbx"@ki2 dЃ%Ll⁕G" ~5J r7N; EF `"JZDQd$ |d%-yILfRd'=IPR$e)MyJTRd%0(udHlZ" 7a:I׿`q@f5eD(g\J-!p;(Br @ Mi4@.9d"H2A\ttZ"*`Wd0 L@-z'M(!W70!IATu>BS}o@ `C l`vQ)K1Z+Ӂ=@N7ԫ00`#GjW`RG4 -P\bK `"NB*G )L7 6МW-{Y#~-`  }js2!=Eod6y{`go0}J*!wlbw{" {#}$ĚȀWUs;bottom-0.9.6/build.rs000066400000000000000000000064611447252316700145210ustar00rootroot00000000000000use std::{ env, fs, io, path::{Path, PathBuf}, }; use clap_complete::{generate_to, shells::Shell}; include!("src/args.rs"); fn create_dir(dir: &Path) -> io::Result<()> { let res = fs::create_dir_all(dir); match &res { Ok(()) => {} Err(err) => { eprintln!("Failed to create a directory at location {dir:?}, encountered error {err:?}. Aborting...",); } } res } fn btm_generate() -> io::Result<()> { const ENV_KEY: &str = "BTM_GENERATE"; match env::var_os(ENV_KEY) { Some(var) if !var.is_empty() => { const COMPLETION_DIR: &str = "./target/tmp/bottom/completion/"; const MANPAGE_DIR: &str = "./target/tmp/bottom/manpage/"; let completion_out_dir = PathBuf::from(COMPLETION_DIR); let manpage_out_dir = PathBuf::from(MANPAGE_DIR); create_dir(&completion_out_dir)?; create_dir(&manpage_out_dir)?; // Generate completions let mut app = build_app(); generate_to(Shell::Bash, &mut app, "btm", &completion_out_dir)?; generate_to(Shell::Zsh, &mut app, "btm", &completion_out_dir)?; generate_to(Shell::Fish, &mut app, "btm", &completion_out_dir)?; generate_to(Shell::PowerShell, &mut app, "btm", &completion_out_dir)?; generate_to(Shell::Elvish, &mut app, "btm", &completion_out_dir)?; // Generate manpage let app = app.name("btm"); let man = clap_mangen::Man::new(app); let mut buffer: Vec = Default::default(); man.render(&mut buffer)?; std::fs::write(manpage_out_dir.join("btm.1"), buffer)?; } _ => {} } println!("cargo:rerun-if-env-changed={ENV_KEY}"); Ok(()) } fn extract_sha(sha: Option<&str>) -> Option<&str> { sha.and_then(|sha: &str| sha.get(0..8)) } fn output_nightly_version(version: &str, git_hash: &str) { println!("cargo:rustc-env=NIGHTLY_VERSION={version}-nightly-{git_hash}"); } fn nightly_version() { const ENV_KEY: &str = "BTM_BUILD_RELEASE_CALLER"; match env::var_os(ENV_KEY) { Some(var) if !var.is_empty() && var == "nightly" => { let version = env!("CARGO_PKG_VERSION"); if let Some(hash) = extract_sha(option_env!("CIRRUS_CHANGE_IN_REPO")) { // May be set if we're building with Cirrus CI. output_nightly_version(version, hash); } else if let Some(hash) = extract_sha(option_env!("GITHUB_SHA")) { // May be set if we're building with GHA. output_nightly_version(version, hash); } else if let Ok(output) = std::process::Command::new("git") .args(["rev-parse", "--short=8", "HEAD"]) .output() { // If we're not building in either, we do the lazy thing and fall back to // manually grabbing info using git as a command. let hash = String::from_utf8(output.stdout).unwrap(); output_nightly_version(version, &hash); } } _ => {} } println!("cargo:rerun-if-env-changed={ENV_KEY}"); println!("cargo:rerun-if-env-changed=CIRRUS_CHANGE_IN_REPO"); } fn main() -> io::Result<()> { btm_generate()?; nightly_version(); Ok(()) } bottom-0.9.6/clippy.toml000066400000000000000000000001461447252316700152430ustar00rootroot00000000000000cognitive-complexity-threshold = 100 type-complexity-threshold = 500 too-many-arguments-threshold = 8 bottom-0.9.6/codecov.yml000066400000000000000000000001531447252316700152110ustar00rootroot00000000000000coverage: status: project: default: target: auto threshold: 30% patch: off bottom-0.9.6/docs/000077500000000000000000000000001447252316700137755ustar00rootroot00000000000000bottom-0.9.6/docs/.gitignore000066400000000000000000000000131447252316700157570ustar00rootroot00000000000000site/ venv/bottom-0.9.6/docs/README.md000066400000000000000000000022211447252316700152510ustar00rootroot00000000000000# Extended Documentation This is where the extended documentation resides, hosted on GitHub Pages. We use [MkDocs](https://www.mkdocs.org/), [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/), and [mike](https://github.com/jimporter/mike). Documentation is currently built using Python 3.11, though it should work fine with older versions. ## Running locally One way is to just run `serve.sh`. Alternatively, the manual steps are: ```bash # Change directories to the documentation. cd docs/ # Create and activate venv. python -m venv venv source venv/bin/activate # Install requirements pip install -r requirements.txt # Run mkdocs venv/bin/mkdocs serve ``` ## Deploying Deploying is done via [mike](https://github.com/jimporter/mike). ### Nightly ```bash cd docs mike deploy nightly --push ``` ### Stable ```bash cd docs # Rename the previous stable version mike retitle --push stable $OLD_STABLE_VERSION # Set the newest version as the most recent stable version mike deploy --push --update-aliases $RELEASE_VERSION stable # Append a "(stable)" string to the end. mike retitle --push $RELEASE_VERSION "$RELEASE_VERSION (stable)" ``` bottom-0.9.6/docs/content/000077500000000000000000000000001447252316700154475ustar00rootroot00000000000000bottom-0.9.6/docs/content/assets/000077500000000000000000000000001447252316700167515ustar00rootroot00000000000000bottom-0.9.6/docs/content/assets/screenshots/000077500000000000000000000000001447252316700213115ustar00rootroot00000000000000bottom-0.9.6/docs/content/assets/screenshots/basic.webp000066400000000000000000005755441447252316700232750ustar00rootroot00000000000000RIFF\WEBPVP8X ICCPlcms@mntrRGB XYZ +acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBVP8 *>1D"! ~7\L??I1|g? j07#gcוxO17/|o/?w}A`e#r;Y???O?gOڿGOpU{_~/?s?iG?_ٽL?QM~o'?u?17ɿJ__`_%?w?bۿnO?`^|WO_"o|m?h77?yUG?Ko?߄ߋW-~q3ogo'~PemR Wh)~0ìP0[>0iR|3F44B9y>X1b}orCUKsBwlm}MQ{Td:005幀Xn`D>Bu03axhAyBY#yNgҭ ʷ3L: sB6DQ DF.:y'*_b`w ìP0o.|J ;b6Z~AE 4([?u-; C0+`N bZ_u:1ITìP0l~/vRT춴TccU ([?Or!qDo (BëB(Ч<@L+/An*bX\lO+~85LЕji `([?HĂ NS%MCJ1VTK|gЦ bVe>j|0 әdobXPk㈟Xn`(X: ,@+wdCgހ?u bW}5MSw{B>Z ˴LZ ˴Q}wқk$Bë|& 'nnU~a4Xv_ Z/xmp-@:\8G=ᣜIs)Xn`g) l#):xhV-aj6fu +c'C8+~49:0UX4LG.NNY$dE}Rxk{T٩Hdt8q7-@: s(WeQU Vs_^Ե,+AGV/sjS>?tP ^ٶE/M?e n*QZ(D3: sߒ{dw@r|@Fco;HwW:@q(p-@:P9q.DyC[EpH]ůz[ V([?u ^ۓc(XǤG2vc9~d2 ~ߠ!3~PG>%7Bz4ѩ`k?.LMڙ4?[h$Hӄl{b$:؂ze[zXn`᪶j 扝_$D:i5<{5Pe!ls85,UF#-1B?u"B?u bXn`zJ`"iXn`([eXn`S3SΉObHIg?u bXn`([?u bXn`|E.>h|.\5U(mML{qy,`JXn檃V([H=h7<-@:,C-aO!K?OgȻϛKPL-?N8bH!ׁ‚?%i@L- gžWjeLX,ٿ[_=%ԖL4Sc('efN\2v).z`-@: 9 tp*XMYn3a[LHJACRq-I8@ ehENކB#O%N`7mZ@}G)싼!q7ٿ`J3Նtl0p-@: sBìP0p-@: sBìP' YKeOUG+Gz5@ò@dE()̽~ TyQ$ 2hFC"L2cen  XTb4֓/Eb Dl*ǹWb_^ܿ%BM#pWn)29/]t^rPq˟|0 >}xLO(SoPCgZM. >TviB;4 4jí/"n>> ϡLI.isڧ۠6&kC X:)&kz%ǎ4-b9tإv\ \* jU7wX=.Ye{_S2GmvS3CB`C\> Q+JCQ ߡìP0og& 4ED3Q1H|;D/lD),!^g?(XC Braw0-| ?jn>\P`a_10Xm:>盃A<*ju9Ľ `}EweΐVצZZIiksB9:H+‚Bo"Q1PBc6&ch,gХPh^g_UBbU=D&fx|0Huw} KBz[uL^@+:[CH'+W^{~NWq@>p@: I\]M]uvk"'s0]^4T77+ЦY 1%1j<Fm?#YY.~&ìPSjDV5ӑta~;UOgu|;R3('QGK5'Fq(w ~̚~&u$)M"~bìP!:.@ q[xꂳ`pT(k|нGl `ݥPٝE_u>WzFxGsE!ba¦,Նb[=:8L@: jLR@q4B+P&ϻǂe  rhBvy&I `} bj'b.{ X}$)6K&|RϡLnxBp}lnh2a,E~ʽ=23Ou c8 W"N˩VU]|_Z$eXŨ=`dO:'@:ao<13([GE} x@;}\+yh30_xSeڴ 埧VrGb߀o::ʼ`*>TP/[98i o3<z2/O00olv PUXm3< 2lV{ryd ֬.-L:# g c>/6z X :$٦g!`% Rjcbֆ'AŻyo>/Y&< r[zz6"~BzìI=;Ss+q5XeيW?b`gXm+!(ƀRëhFk(ʝXn^s#CqʋiNng#k)Ntsx#pm'Zg$o7^CcNo!bWE{`pYY,ƛ: jyhVKX~km |/4ݎL:ĝ_3%JOD;~-f!82HLB]h#0-ɋ R QֲOj ݇f,#B{>Tx~-dQoWvDY14D!MtӐ.Q,Ջ$m3TٺP00b X@4QwFX; [BÙv3RQKJV"~BzìI=;Ss+q5XeيW?b`gXm0 1 ;R J6#5bU8j$uوYpKQYNqy;(p-<=i. )ۘlD}V-ʼ_c|\=ps:j&E:ėef|Gop-AY.bx7v90vʮ৥R+)!kHA<]It_@0j1mZ(cbҶčy)KD߇6/˖g?nۨ y [!yi7IXn([-3Ze6IXn`h:n[)v` `?u}39#Nov!^4Jmejl&$0Lj?JQ٦ h~D=Bܽ?bmiGHR]kTΙyLsw/㡫, [wӱ8?twÒr¸Bf~-zp-6hsaUbuDGqR-ӊHR`$Ѕp0]aRP0nkym;B&{ŏ~(u%ɚ!pbUA޺:[ JBɾ'XnLČ7ݿvKwռ4E)0po3F}Z:i/׊D PM_WXPJUXm=3Qc9sBVRxo {Z]XTo?5jMk`emIdʾ}j#~ʼ(uVyI `8w᧜7Вmp 9i 6hAYZnЦz~7)([Kw5@cB -*0A#MefXeT&9bYD8n0ҫy!ՊiKսZ([LkPČDu"74f4"^h?|7̯Os ϢiyL{4w?Mq3V8z;xh;bYüFY;zw% +$F"/IݯR85urqHiAvз0k 1 &`zKxBMp0pvԦb5r˂S ˖C& Fe&92Rmcb, FS!qְyXG<0FBUB4'0y#QВBa([N&Uʬ~wgQ[;buBu<|[B+ IYXYo8 4ѕf/p+-ko@:um Ah'Yo7|.}Bډ}O}fҾ] M"BX"A`+H<J`Kq|7\8On1=vU([KQߩPji$)WٰpGoKyhBcs.} _0s[@j[7kp<~X\o=ǿp L@ B}d{]A0kj?'J܄BXL[ml:8ģTU?U#4Ц _Q=g`("?t0^)w}S> -8<(B{|f1,rn#>/T4n4@X6R*~km Ԛ>ړɯ} $Evp#@Q8*(}+d d]L0B#åvt_/huRqePMⅹ4a/` Nn` fdIQ ?cUZ0nv/)n`A/w J˘y(1=uKqW >yoM_ᯓ1BvգO)zC^/eq-@|FE2u)XnMq2aIjz"q:3 {`>x "tװa([v;{"ԦֶXeDT-RɾicW`@W^]9-`(sPD s2]0ܿ2բ1#P ; 'x$gХgoLrs7.Rae+TӪFV"-˴ìP6 b7MUpմ-eV iq<>ƘX`VS ?MuZ,V%pmS$U?\Pu_'B{wW  _bHOBp$)Wٰp4OV!o.]?c&"|0]\ :.UKs(q$%BaIcߒv RV-\0R,D?֧) \@W|ƛ_P0oi ([RsNqn gХHuOܺ3K([=HE{`pYY9W0pSlURϡLV~3Rڰ-!& .H䞱zdo*{{#wXn_4 *{ia\Ȩyӏ7Q_uWu%o&bs3 [ M+ ~^3dŸxn^MyI&9bYD8n0ҫy!Պi\I&u_ BUO$ewCUiHCdB ?.I/+)m>)u/ao9u a}p:b&/ǻh[y-E+KHe/V0p7q-@|FE2u)XnMq2aIjz"tao4ovB>݇`_- mV\/ ĥE去 HS#E(V+7NGؽŝF:Pbh'?9c>/Ws{ ! +">лWZq)Gf? X9 r;\I!KwqS:e2|no![0`<`>Jg`BE)'X' KD=dTxP%<ʌH璷i<⢚ptqfJfz6ìP4{ÍAp*;Bz]N yPМG<[Xs7B([Yф|8 r2>ʼn R>n m7?T~ʼ1ӛOd04qjܘtꘛל3O|诿u}D/3ЈFHxNT'(P0C&Ӌ|&%bR,X8! b}̝g@Q,gХqqD$|@:gjA%(\?"Xn^6v#ˉ$)u5*gLO-f4!yN&z-atL,ɲ[Z~E4?+fp$srU"!~*?˓V>gZLڑ 3}\\lۘlD}VˈAB>5?ҴA¸[ϡK+ )<7ۍ=p-.ͬTJ@C}li&0y*)CiQ D)< $yۆnba#}S[ص$wzyE}䍼>/BDLxp7o61([[Fs]야ul$y41z?cRⅹzC4RBPQ5$rMe) zJV([Aq&j{ϫ l吴SIIV?^ 'n`*<^]p:Ҧkyoy?u}on s؋9h#U^=Bj)\*ZG,~ @ymn` u\_'Ru#. N?.Yf*x)]'?̠({eB$  iW?G9OEIjWVm /qŦQL@:cdEbG9>$v!tN: i^P&&Bzz (Ö3R_ez{8"B 3m uvi.EnP/OXZCĒz3^S'Ge ہ}o 4p0-5q6fv͸)2+/~ sHF<0fWX<М1I Ul:č:դgh4Æ'`wHyCŅ+.c/vI `0JC~2-<ӿGHCV([eDXكS@~?2Sx_5{J3EXn_x,j􋙚HRd[TEW"Y即~čE @6]u y;~x9Hh֓u?[ZPC:+!d{5y~%gf莀?iizcyp–+ -ZVz2Yl]bxemmWέh0k-t([Q>iϿLWՑD_|% ?Z>^5.)Tubt(W/j%;31NBXkCحp:=ZTxvJ]gSIupz&p 1T-?ĐO i'Y>o~3&;P{`xc3R^mviV7x~pڜa7{Z7+;ANLi([g|'cfag$o8 F'p'ܺ3K([=HE{`pYY9W0pSlURϡLV~3Rڰ-!&1=$>PQ9qwƨLG2iQCiiSҙ_Np--#Oh8bʼn R3-Og*J^HR`fդH 2<Ϡ@: j.N1m NJ0х|#\}+D,+q˘uRғ}` bJx7ƛRk_s7+jN&ZkF߲ T0p i>>Ɏ?3% ylp+/8݃wwxtrG' c ь!?|Rk+2{5ѷYD8n0ҫy!Պi\I&u_ BUO$ewCUiHMy!` h]ҰCl`8^''zj;]C 3S [ #Lo^?-I.;\:-B ru4mI/V0p7q-@v Ԧ ̓hZ 0oH4~ P@.@O&jmSV힅$}iH#+= sɫ-tM݅4]'nv% ìP/tqpqcBZӉ<^va}2:_@p3߸uig+Ŗe^(W 1[*?u|Oֲn\J+m`ⅵ}nz~nS0?[md{jI _Kп_%D׹=is[hlEk*cq}v #C'whN)>al<RBu:P% X0O~(3ߨÎ ~/fNorp<- wE:]rK0q5PpQ(Fp8AIo%BA?/ ɑ`smx*tezkk(\Ӡëb.!ѼL?޴Y$B#.V^!wrXo?/7xn^ݿ .[Uϳuߦ&f]FfU&rԯq؜,x6m:p W#vgHT|p+SQ[<V8.vzu3V([LAV屢i8ڒ_o@a&/oyE&[8;B]W$שL@д7S ` i60\Z}c힅$iďR ; [;~·0b >'Țr_P9IZ 4v|Bܿ2Ō[} h@ ?N$ zم_tKvZHl'"r} _Ox$B@WDæ| vR0^EȰs!ՊkHwb/Dԭb 5T-@8m?[|ìPD c߸u&]yx}i!IlH=,jb@D [: IJL1?y6^'CpA>/AME󿇩vGBrv;YNB6־ҀOȍ::cIֱjRC-A|e14dhħB?YjZ@&-: iJawKPz|u;T_._^D. c! P{1~Bk _ Ҙ܇_P/tҧb׹za(Wo~yƸpk8/800t8v=X=Cfu~$^-80ĀW{a檭RܿŷQfzs(qU @sKDD^%bT1^'m|"BH; s)RK./Nb i*ܶ4]M'RKm$%;hw sh]:)`yL@ >F߸FQKWт+I) ?a[sşbtfP0hmܼn njy| LeWЪBB҂5f pd:HX ΀?iizc]{@5M:eb 8٬K: cb#xtP[Ba [ ?Em@&zt/{tL,<kX^]k_i@'Fo_^? X)H 224@SX]H- I b0%c`r= ?:^/^\!!Ƥ!$Uo:t/Vx;&x(ۑ'U1YExWoI@ìP0nYqgC3I.XL< /\1) JgIlS[Ř9J1tR?($L@lh |f:]oҥY}*glZ> )V X{E+6o}L Vx~ ȼ]N3"OY(cfGn79?&xvί"Tyi 5s#~F(v FDL8A"&]/hrNJd9wo{8@թqL \1^rޮ-t'DG!Megi"#B굫"2NteNW{Ŧekg5RM 5'us|3?S ;M7?C$7J=VOc?o8]|F \Ck+΄]`~HE(GX-y@= UFp<kM4& -tA=~}?j1+D텖~fօuH7.]W}+JETw5ܘuC⃺1(&S|tѤ'T8']boDH{RBpm{@*<'dlgeEY.750)cW{Ve=yc%9|y?/K}k$E0\D`E23RPR+5)9V6tc[JUQwV~l M}V7_MYƾ: NAJ6shBG`p%nu#]F_´F*"&geIP>$W@ ?5̀r۵r#N`IoJk\/W1)'KCBþl h+W`Ne4acbM+&c=Hj/|G㽯Џ_rbGعoIX x1tPO>$+` 2ق)Eѐm'wK-|VE"jʹjw\ӡf/8@b(& ۷ϵ MFWBaާVe-Anu.R !  `]טBSΈ#v]'3Cr )@jrtqsX>V/>Rw AV|Κ~MW;,ξ@C/MN !$?^Gb?Yo cxrĕQ$nP|40$]vCV)%JS~[v;Vcƴ*GA46%3פz2>\'[E$Ӑ`~M_{`kOVݬ}OJiNᖋi渓43~K43Q#-)Gw>㴞=n"hjP*0ʞ>ZXr_ WcuՑ KydBBln] ms+.uOe$xNDөESC\ۿ&Ͼ :v=<]<|nwjս*nNboe2L nGLXlwr_Q^8L<02ji>q= e\}//]JNɾfXv "yFfEby]$=\~DZy-[ґUQ(vyÆncp=}uphQT(/oHN>B^&k< D; ;/NOAG(jr9M=^Lb@)8- _uԀShiɊoxr1\(U ȻtmcמUTH|BQ;=Ex=u!y3ns?,:Gچ3odǡiyWɎo"(O/45I/{W  9/)?}lG`5-IAX+zn W Qeԏ//*C¦ZxCuJF3Gƪ #ЉS\y%!mY p-UDoۄ&%8uKjX:a߀!>pipd!OKs#Ws&CkR/O΂}/tA@gIB00]Yct?AiH :ƅrP CJ_!8`TK;%٧P*-jI3h-Z B]UT>cU@ goE;ܠbʃ>b/5K%:VٳFhzNX3VH=HXv0 #"_oa5F @!pCtQO\(3Dj~pꮡ <8ZVGg=!:vxƐ-pBFa+1(4$wLͦ&2FxUޔ!u`G*^@ M\%\NoD+A~/²MX Rwy'z&#ECy#bg(&V|xo?K&V5-azzK@Ӵ#ܳB*_1AeecN `Fz[׭ v,bQaRShfHJDXGU:ȸeX ;_J49E95@]H95#&+(sr` 8T哠]Yzaݷ paNl`ϧWpkB ׃:-͗9>2H1񒱏v B$^tT6b("C[&FfJE9ɿlK֤ "֥^)9 N4wןn]/bfQ+6̋,E̸~6'b"UEH$IA,yWaHfsq^wM&Ex*yF񦳏*FX DGFwk[d?c:$cS5 BkzzlYp$L[P_h:J@OKvqk?![6̀+T*>vg)m?o g_@'b`HIZ!l" z~9 B1:6{[M# Nl`DÎպ`1 roo<_PN/C]ƹC4D_;6!#YBB4p|xcEg'\-h,tspQ;^ރ)(O{7,',#͇|ظ~j*cÕ0_Vt-)ylPq6cbK|/Ų[V%)fhvŌ]ܡW9*W/^ߪVc'x"_XW{b@v'd T#՚@P TD罾X'{sʂ"A{6qe[N)@a`slU1T~6J/]ᛦ*󨕏5}BЍ TRzΤ<=U(0WmfxtJyʼnCW@LI@wN~B'[.~ U(3ݗΏL)ddHKza< Wgb;˩9DaIkU :_ π_}Zߣ9k{7cmh;.Mg73ZC"举R ,^—sHJ"CWw*WԓН+ʰtDsq*Go>~ObW{GcWqK}i*1jI5oJ.}uydE9>80~Z>kS35s%TeէwRuO_GJ0( f m9Zrv2E:F&=H=6F^h0{]5rq9xrBLwug]N5δ.Hyi۴ _/4GpߘtcjuB.Ge\J±] .Wn$R8*!(Z `vRᵭ{mi q5ހ7uT$ b Ўbֶ]M;YKs} փnv8u5E{3`` VF!Mr cEn6$IC1:!)[5ݙ\ gWujr E"3ѦɧPg_HF :?K.*|Ep%n-C \Fڽ+΄T4#D|zY˫},`fGAbW͛qpwE"qD;?o3qHU唼rۣO[7k_uyE9Ȟd )j"B.9= wBeIB#B3Ε1(lODpdп6o~w#Daߨ*YlGqhI#K;B/-u).I5w9)욻Z=P;_@q@:7`w<@a/rezܘ N*32m -_,ܠe\H :\=Xؙc /c h|&g&ڲ&mƉ& A1]8`nD/4@Dg+d/s8[)q/>bϷLHpFBBP j'= "ܦCܷ!]gs;;f-o<0A% at[j^2yX ںğnٟJ~\ǿ͍]1Ym-[ZL8>P00R)}'xebJ;d09z{22TV/]`)]>HhG- hd`:+\p@x0SjYa B@mlq1%#qD ;-͛+;Kn>&\071H9n ?bMQzMRx膆7מOnOV0ٗF=P ;acͬ:s$7L֕ X3Ǹ35:O`-ov:ɐv_!ReisV\g3%KtoZK;u yJ;C L[7bh.B+s$}A܋5AMl\u!x._7*L[NY8*IҡGC'GTim׿"T!Du@#_-S9 ұc!G}ʻL|Y(*G)11=mCbj^'_2TM>v!+Z(F&9H&1 r;uʙ CN[a}x%?ڥzR؆iY!S?T@ Op-m` v.o]4C^E^mV/cdnG`FeIV܏՟ᮁTqC [J?҇T$G@2 LU=v/5KfMoS#8KHd1ЩFhb'e.ĎBs)!!x @BPiqOGC5(MQ!/N#\_'œ=\1n$|ɟĊAGPLwBo7T7OhOʣT!W4<FgOdҤ_e8t"Q"Go.mJ!qr =X]QP6wܖH⟿1 wxLv~7o*P_h_PX?l\ͦq=3:XH(~jgw(Cpo$"> Xâ% L絨~GkXOQߗNF#&G$_$Zīiir+Wjh7eLk6?i \[:HW ɭu6YƾhxEe8GP|Xc7g4L|jW[e,:-P{Zi~F(Fe1&Mj RW>+g|-TMg섖 Ñj,W%L֔NY8M4qt.R_J[pq0;yxHT6=f0V< j?HNtC};%Rp "B 'Naoٟ纙뵳S y6f8mH,8sg\^ ETr[[$L~>9Vp-5r"Em:>k \F;Ί3!PC_'i߉k朖azn7F+V$пH1:Ħ|t:4>a1[f@ DQC3,F-jsa7, hW["'#0=pl(|/a*2ôc'›*8߷. e& f4 o$^/8*9Z-qS< \f@"S Z77} 񪣄*Pn.-DPˊ7gAԃ`+YFTb.GMXG/ 2>G!^iȼ&K&( |ޮ_{<lO>Q /5 #B,$iL*z- 2h)պՌ(K]eQ QRT[.ʹIzӟpg;"Ssĩ"]eP];UESU˒ v*kiyR>uܱn5r>,*_CaT&{oDZ)G~.Df!F,2hnh/1w0I$c%N:r_͢aQ2- ՀtJk,q戹|Or@%d_{s^xP^;`gNDE5QVR %P$*6[T H\b~kp4f]^ #6K*-dEn9dNDh2hj`)2ĮQ%OFLip" Lt̍PcGZLo\jj_"I'f,pR}Ǖ J`HN|:V⌍%w IX$AE =@FlzToﰙT–eԬR4X<XLV6-}u˺/\|ˋ=(sзPdQtO詆%ݮl Lt̍PcFFYM\-;mM읇M+Bqx ? O/3P+)F/b,`&@`,bnFeIB&7◌'svt@u ƫCiOPY@ǜ moqM /#Wfsq)%ܱ?tRh<(lM8eXJ~Pٹ2 [yhq4p k+勊/4`%#A^7QTkG&7X V!)a!9R2/ҁH@_Ӻ%3YX#* ˑb"%@Q_M-ɠT>H͂o@Q7 \_ C0n1gX ޴:c|ܙԂQ6ldI1g=K|8rJ1Sf04&tg( ߁sP\qB4G.&X% ϿapWv!F,ϭghnl;S?yuU8iv3 Dyq ;Mgƍ:!`o Ll8rUQ<&xk{n1 Oˀ:cF )3ύkP+Zǹ6fd۵?J;&P&j&I/mGї@n-_Eɡ`l$2˂jKz\m<+ܓe؜x2?껌;qAf<\Pmx,Ct>؞د.(OA*^޵*Yi] ]wXNlW.Cy(` :jjГKYwe $~KL)Ocd+iqCI eA/!\YnQqM)iͳdp|RlDvEeH+Cc{tbL%ȓ?Z;2U@솋3S i=Uhf~kMMN`v'T1bq Ѱ% j9z+g*(~I2tami*z|'6*C B|XTf\F٠HQ]Ļߘ׃>.Ra%aTbpݿr6U3dFQ~=i$[Sα4ioӆkd/> /a(iz̔CQ.eZjYTKM{ujp0Ȧ{ޫ>/7jGdMbd0i%HAh5>l(i4̆v J3jM*}WR*3ŷ Ծ^d_·PvGo$`&W9`{˃{Zz?3Т5 wᗗqx5ìqF~PyU?xӍ[2Ku#7UНOoA'ʑyLzMAD(ׯk\6n\T&hbJDM6X== SF;p~x2MDd~ᦁ%Ŧti}4]ai? 5ezu8M%j& |Gm- ~˂ZL-$b~>;o8a- ^E4+` ?xTgc _[|.>3J=!q PGf;0~FX.oWÃmz,^cHc) 7_)`z.E;{uph̍J Ckma}ZКI]IΜ13ʎ3cԕZ00=7S,Gs[luϵ݁vjҊ:S0致Y>(t3';O[xwTNO,#CU8 wz71{v>ܷoo7.Q+lC=c3-e6y5ѡrfTؓQiF;8(ְѴ՟Ti55F1S;]3PJBޓXb'g1E.7/Tʿ" #9kJb$}{ ǿ;T b&[g%QU q''3M̝q.ͷǜs58T FQ05OphSi%P+w*3XQ=2+DY$v+DWVmFV_ iEFQ!\#3-V|`6{;4st\+H[3yʝ=L( abc̏xg(3$C<'`?Qډ?񐁠__EЃG$<@ft!68:_8<&3[@NćW(n:Yn)daVt I "1M_R97jѐHQ"]HXi/HO[~4+OBf{bB#oy%.;cV,'~NG 7K4]%ŭ)xPeI'`w] M>D{Ϳq&]o,|:jPReEC*UhZu0xd*i`q:p4zo+k!]6#rH0gmĮSlOC-y=NeeY0hJIuNUd9G+tܜ,G^pַ +ڌ6֓FuG?Ҧ ޭo4Dnz,X6A-Mb5LxpوX 4EkDt+W9ߍ6J'|rM;v]Gỵ6mvv4R۶`ERhZCQz(L6?}ڥ*0pSwP/2eX󽖏l38l /:ϊj.̉Iέ|Aڑ8C;jyVYUTv[9vLKyP!i QN2?K%(*gʛ7öJBm9!ķB@pY<*Q~2#cp.R9id . 3PܚvޡXP pC0Ia; C2Y+SaǢU%ߣٜ&Y!ց2-rDj^Y2YSΙq Ҙ8*=YmG"MS'n盰nDLX>4WN.쨵从_.`v |}\T}%)Un":e˟JOAVfeN|G΅eWDWTi$2mmH Y,`"۫F1QlX±rG1@E!3;Xҷ{̧ki*=kCHkx;6E}u[6}f#Kf*QU?*>R)ϩ?RNN@UE꩒63cMHbQuA UQr=]b¶jG`ml0 :C5y~!2eQ Rū6k'd~G*S%[+QzG ¸u*8\:12ĽxV0_ű|cV̾9=\hOHp0k=Vβhz=^8R"!y7D@lD.aE9A<PnδO *&~P+ж0L 'ix Mً7LM!)c1&reX+8/b??{ Υ &1U$Kk u[ 1e)j38%5bq&oբE^fVԤŮ"Z &ۀ(3^L `P(*8=a8bBqy3sUvnt<,%Uy&BԨ[Z .1;g}цNnN> lC (wpؚ#ݺ6mFA"t97K>_W!B -z\m"xY$-n/}U BW']Ӣ"7J :]55ྲM0 P ]VEK$W#GHcLNj*vK}j7]xSX6ԟ)vymqML恳,"p畓M7eSѨ YB5ɚ)ꋀ&%?5)u> V{ST$;v>'P0&pu6ܮ5%7I` m (/Bmy|L)ź)S 8_Qݍ" YsLFj5O`%o&2I#)wᒖ`q,ßf)ΨF Hz>ⓣ91\Pj]:WHX\@Hʝ+S\¨.'DFs75nZ/ۂhUN{APl9 RͳDu:a $ u˧TjZ3E1O@)Hk"#ul`JF:Ns ˤ`N{;:[U~ f*giW:OQ#, R6:BCHI3^籮f}pPG 6(8@jMGHażۨڔ= (s[;QhfS9k+Bm[1OG1nRY&:^>6]iԡC~NbO6@$zY|ZHWjBa*lF &f)5 L5"e]b[ ȜC$o{)s#XBG2?z $HځWHjbZ+!S[mN NB2I4wEuV$?=Yiڱp`+X1 fԑ&].jf<cAC_|eӃ{^1y1pg';X'9)ֺhne؞#l?{M7iy5e&RJw+"'ĹT}%<}j!ޱxB5`bSO߽ǖpGn܃džmڋ!:A=lƽL̚GuJ&hB@GkX ƗAF!}|%n4ZL dYRx"c̓e(סsm+}}q?Q\oO~av Ԉ"@2VOPⱳb5ny܍q'piύymR:7*}V S-jbDWF/Θ Qo V~˴s64Q~js.۴!L>&ϝ`( \ĝzo& ]27zі~MJņhHэ@[qNӌgBA1h~! v~ꡍDCZE4QL3CWv@z>֐Ədr"yFB전<ԃ[DoId>K~7oy/T4v\ ݥQKz{27C{,##dr2\}5mi$n1dg˖#nZPc1;ޟ1;ڋuN` iMbYM6|>X#Ug"Ja۞ p͉/&&qIw6m}zu?)Peua]pWחsiF? [B%7J%_ _u%ƾ4[AyH e6Aiϑ[u1@I I Zr"_[G e1eŖt47%!:Bu[[ ew`U?la-I7cJVz9uXcv-'ݷ}}n_iKR]Rwrc9Xo㺓"mE]/xٻ7=$`qOc]_؟L#G65Lu5 71 %Qǡ0٬v0]YbQ)8 ɍ ֻM58+P^?-*OpMUAU2@=N;F< Lb@Tz.!Z!8#8+ %5/61+'mgfVO [vַUY @p!ig/)^T׊T8;;lvNgbcNg@5̕7q^uMTN_(7&\oz1Yμ^`p(~kI(2 )cNQjDX˛i 842Y;:߀p^1e;иoB)MU韨8t@FrxW"GQ0H,d&iu&M0r|+S##H+Rq--o?x5Zk^F G'+y6 b,APR(,W]eKIUlA3T ~^>VGaF[AikHD^71s9,~kaP8!{S]! :~|2LO0$D"DL>s" Z/SiԵၺ?ӈNY 5/--Je7Of@JIT*Խ8iuy2y.N)[ZEޢXD6ӺN AWd ^Ja呏xb%YaQTU_4FDk? {*X>kߔ o(aC-t*g/V_nOpQaeboUA'vBҁ6=4!GTl뵕$|A Dـ,26~AwPD^\; I3٤,sF=RzEsÔ}MfH~%{ZGQIՍMkLc'=@E>e?&gU!K`S9o"aDNج-ny:OݠVҁKyv)ǏЩt:8+*m>>F.us6OScط-IԔ~_ݥJº??+,jWlܕPQ?ʼf!ez)_(y1Z4 U*b3-u܉X_كSJܣ!7eFw"M޵*MIO7ޓDf, SM:ɫkQ cT@^"(D:!w/y[cs@brv#%-߷(a U/-9<,ey9'׈[J^ƥ3B6 ~nr? Ip?sSy 1Hp#T)JWfl+C ;v϶hf;sDaJC E_:crg2k1@B:O% mH=r5qPlȱPr%ӟx~.T[b=..9&t ՅXnNx5֒FKpK{7>n}n"le$Ҽzk 2Ӈ2{K|8_ -~-gԆU>m\H?}D~罵gK҉Fu$ ( `qJvu?I[ QЄcO)5g '*7(xmg0Ww\J0⋁zV`g6LhDm%;qtRo#gfUΤceD*rz=N*P%@C%NK>ϸb5/,py0TLs>uf.f/? Ik$R#*`{06M)pORNKUCmð`Lj~*[ 7̐_zkރϛȦtW/wX?o 2B#ǰ:/Y}ekA񫰲0qCRv3`v'97$/W(20VcH)wO,T__Y4@z,_2NzGtQ0O|y ,ff(jʸ&$F8r?YWTDXJq1Պ:fD L2_ yRXl-aO8Wb2fO4|.M}+ = +ŠA49þyO~K+T>L~=(15;AWk1p.S}:T3wRQs,mn`UNAG+KsfhH)]ldM`Pv%[ig%vrF=2,} ,/9?9J>s#tCCNP޸֝np^VɖY$+S-N"tXjKA,=!AaS[%7:?_cww#Cu Pݶ iÞ G`.j5tKf60F;q58jp]E)BR[4Y0$-yX+H"Gi_ *$*xTf%ZSyIݘ3XrE_ᗙ:o$'}9JEG~җ~<72ܾD4(鈍lca6v6h(IdX1Zu6s}Z "nM7Vg*EFySO">L߭8|.Q7w(P>:)]ם?.ipc0<}ts'*ySC[ eٴY``Ev%^-/N{5"+~ZtDETDn.~)f ec3`_&b P G8K9Vj~Zmkh.nD\>㉄@NG)9+/.R}ᄭk`iKf3#]QfG3I` ,DVdv*h["($_:M?ZwߒCDUkVL({ȓÑW;IAŧu+15'ݶ&_L;aqBIs>) <ǂ P!0r򦇬?S+yi_mΦ#&6#9"P7#M]1`7;NLÙ3Dl1uC6yapܯUCqBAf]Ga8gi|tY#e:gb?rVKVg3߃{ m^>TinMuzµ1QYl75EOGdxFslZ6fv `hD {bprYQ&Us/ʣ02k=Ouy9+Fq.tvB(h jN\8S?rY+H.M8v"C=p;a0|T`C d.r'2~_Jwgﳤy)JMg @[ K Vrp[mУCB0$§L9x6'g:Kz 5,ДCcحPpZ54jitab<YB@dz4'"5<R;CnNjv8`|bb!xTLksy/z6! 68pC/9}c-"lT4t%kR)RƖ! 4*$ <3ي"EGsKErD9Vl"UXwdLG'"{Zf(a+:~?. omFF9{%1*U"'7#ec;y>SH@S@ya2zcWK;e10 Gik(i`zU{lE{,;Htq<] V<[fw$hbQGi9bOQj Уl(oa-vЌ- 痮u#EVˎPX4oaBժȖ5Fre sď-yxOYL* ]ſ մQeX[֔@5$t Oԯ6!*9*5 s%w..|@4g9SZBd܉m_|QA մ4 cWymI{ջ 2dFL3J9G։6Wmp*#)әc:6H8#E?BBRO}ۀ૩Ƅd kRm6:Z=H6%& EԆqU>;?rµ9KXjhjB+D"o\ji^c32\$(QWkU^ct(XϿ&v(Q~0@Bovm6hH3JTfӭS1LD-ډkƢDž^q.tQ{ +W ^9^8x1ޡuզ.Vb>ܺ9͓uR3j͸+`C|S7'ĞOS4Bi: JAc|3̻iT!{ =d$Yϊ7vB^#CICS 0nD 4v<сTf XE[ߒsnH 6{r^OS@`i>۞̀ջTH>]ɜFwzgm[pI2s?-n쳥.5* \ۊ!WuG'nk!q/~8{YpY~3}m j2B,ɖ8"v&p:3~g R{S0RbW,8,`7ѷc4D6'5HB"OKK;߈P&4=V' *0mu\w 1Y^e:eb%$o9,rڴBuͮGopۑ~wtvkgdŞT?Zctw'en cy淔yaevљ@P#r)@og##Ȱ8M2!C`םh4&0iUK!Q[28ͻ[pKA/s&rLqa<,EDsu?R:T ΍tX@ohvwCt W[S)4^s9y3V)|/31F kpo0)N_ e,Mʩ1`)_<\4o~D]N0KgXUiZcl*"Ʊ\D\9*!".ֹp%iaʐnri7?{'*i9$_%g- BpֲbMOOA9q7Cb SX $P%S^x5Lk/V O{Jg4cc =@Y~RQhpбǯgui<]7m΅ e70 bfWBmH@!lJxhw2l[(q$L w+惝B|: E2x(}&.`k*nW7>Yy>8_%`TAwSH7p7".}qq _#%5>:IQ&gB̈́)ꑣhxJ}xĹvR&. Rf.еz:C$0bB$54# JCŬea'aX5©! [Q_P/k #O9tnez(~Cձ+nmJ"s'eI@%h ia^r #٘7 ]Vdzo4a([?c˝HʏwQHIUe?r:c?,Lm>92c5%utpDNqE+0n+m|>qJ:k+spXwl|',g}<62_ L$g#iC?9aЍ vm$N㈜-v@/ -jp5hؗG-Xuyy??Z2a=txWUF7e_ZRY}O;C14-1 jc&-Hyp iMwx>;]~ӵEo,|N[$6 Hn,;bSV摑(~$3H>m?j!/L1smhݬUPl;Y૮:H{)r̍N@QnX 18{@zzF]*S >䑮OVzvV rT ew帽Ƒ5Sp|٣i%sBfA.I<-0 [98 m\h'$5(2"cbM| r9$o1:zg " D7 5q~RPP/0?~&i4D `6'f&ӌ.ʒ]bqoGL`.ʓu{c٭+R׺EF64H?YOo2$ƜjW/ 0%ȋg\q0|i'%grcD!RjTIгa khf1Z$%8^1.]|CH-CD:I.L9w 5 HDaVۿHxX̰u=$,=U;#A2+*rUd6#c'E-"v }l-X\osn7UV&tx);/M2@+@VSLTGmF O:;NiUgR=yu=e6#;__^,{<NiNri߈fϟW F~ <ׄ1Ǝ|.N[jI=ʵۃdΓhZ\%ӭZlUBTd[F{?v3#]QfG3DM,Z刀dS?CMiukr Sd5$jÚ'{z$~uInJ}4&f 5,gxN3G^)"vx+ !gg; ّ׋%VjAy-4ϡS]ًyhqOC ͉)>9ag]^ JSjhH3J'̠q( Dݺ4V8v2q)ZߤAՀ:13juŏ ! ! F]Qp/J o[~u_ϜoNC*4D-7Mkǧ]% pV )b8`2;̧i_4~E6 %>i7 BGTЉW נlN"AFͤ 8׉J}}D @T-X 6Z+`|Hk3J=ǫ8M# ȕRGg2W_ެ!k'?/@M$ OWϱapD}!zگd#A7%_ ,C U έ8 ݎe ?H`̥J E($=O3z-*p./Y^Pt y g,l+pcV?sbD97)Eٕ4JjL7oR>&/j`<5jN@5J!L඘`&a1m nKgN#C@ 4r_Y3A>Ų;~E쌔|m.iG9fp \3GPJu۽1U  %bʌ4Eyj4f65{v1 soV@&OF+  T0$ٿ43ѥ_.?Y\̎H'gK-7m4u*ngդ RG,\S1!sdC K!Q[2:~b:=># VP̞qv>yS0e GZJ6ZuɤW]`s{+?*eQS?8&k8Knk-CfoBܑjśkMme;8̛崖 c HD{Oc9ջ2ǭ%ģwף%d6 ܘJ>s?a`]BhUd"8:Ċ)g{u9|/`4X6QeIF7 ,a!=0ݘ7w Afj!˰!+(0cYdi\0fYN[(LU4- t8h 5N\5==<5 ~aCT_(rioQ|MtzSJ1_0`@7"$a89o0l6۴JcR*-'ws`>E<XyErJͰT~I1\bTJKJfйcmןZqC%6! geV:xA zif.ȤfMZP䫽:+dL;YL*Ak(Aa.ddmWFPX%#5՞5/vb7 2sX4)7; ,E84{Y@7h$!ϥǘx_[F?-)6&|CI܇źȳ KVJlUG9VS32uMr!y6 :04*ꈋ28 "ib,D$p#&*  6>\ևKߕ*4ֿ["(wk9سTqX ǟQҥ>/m?eY%jY:j$^neG Ոt(ܒsP{W1<]7m΅ jHs:KB5^s} >\Zbi#'Q%L硑Le?M$)I(;,;9d:/},^oi'enE~h(yt+f?$.Jʰ $.09OڲoOS%[Xj .ґS͝ /=FYb9o l)v|#T4Fc##gض@vZҢYj;`HqZ>7d3UYyF 9a$`Y MW Jtmߘ7:_;!-X4]LpZ"hDP% 9>E;|+dЁ;iEͭE& l5f0Ė\6doFEU i,NÚ Ѹ^tI(lc5OFP0/'yrv8[fʐ}:R÷0Ct cU9ȁOc/у@?jf)jmvvPT9hZC|BL58|Etq8]XNqmf9ϥ*U{Sڥ߹"+i(3q ߑS N3xH}% Wrhaiץ>#gBaziU{%oɍK?M(r-t[KԫvÅȈhiD}Iݘ7 OPIPn!)Q"bWFۍ3ջ 2dFL3J9I)*!ʟ}ޜ] ozG7ʛ iq}+٤|뽄2`d筓Gf_TA>B ﮮf^jI(m4*ꈋ28 WaD\iMhJG㽰1WvJ'W;{T[$CsWE#~ fNNWM ;^Ϡa\q;Y -84,ؤ7|V8UQB(|MZGIHɏs"ps.Yu>^ +oΫEE"R΢a+1\n6}֊px}^y5d_'o֬@PKd{%\T8!}koבIe? X}'W*ѱul 2#x`y|eghhMD̶ s,ւ(>7M.k(h\Eb@@}*Yp.: 'gz8G ZBfH?,ɦ׬K+ {4}"sSasـɬ6Ju۽1[AI||otGI'TҎGtچU9x)ɏnTíf}t$69VpUiDt1 }a[h*ZݦE-# mg J.|H,ZŊC75$^-7G,(+NR,nfLcq>fREMW5-vTGN=0#mJJԂhBAa-J6Y"E3ՕK2k7y (gQ)zL|۽jm܈:䶾vI$jpjg'SB*w.Y.96N)m/U7џO$b,ӞJ>$WJ2R<X14lSUZqYRoܥ)WS  muqzmJMD+:5 㮪|w/? -U(\ZiwoMZă6S;lt.O: pR֟iM(2”C@Ք3宯ha©˵{T[$Cs 3iֈE)NMxZ茢vD5VcQCn/8bn((fD@p&n*W/Ehs%FyȺooԡ"W5:VЭ8,;(mf;$ ^ZD: IH({=IQO/(Cū2tZO*™r%] ң0H*Lt FhYە2z*wH 6;a^5}"a&oÎ:Ȧ=`i$9Mm"}#R]|aʭajX},,$\ekI/MNٚXU[5O<3 N 8`4nr*(6'FPUUq8U5֛#s)Q;d/Cl|C1}?iK L*Zcj̹ADE2]YX>3fbmgucٺ3cw=~`Xv.dx<0F]Vʵ*PpqZ(S,(†m{ QaN )d* A^5֚Dz*Ll^Y@ @ ,Ztfz Χ Ba֘-wpe#x"wA[KZ~5EFl  \›t?n-i\2D5bqBlA+eZ]Q®b1 7 "~,GL}_6ZlzF(f px7:7I\'Mxx!ng "yz&ӌ.ʒFCR{u+|F)Ve/$7J~ +`$&*B/p^op!"lFs2z0ŧOz/dd3is A~JOr?gN E j"j—4)2"J*1%q&"fz*i8A#; `!iW{m*lT씦t͹}D>NPX|= u[eP7Mˉ"`/"Vg*Ȱf3 UG iH=WWil!ڽF+^sަ=²Ar|{_YQ!$ ^ ;]#*ac@rrH`C& vLոO%fViz}6t's"> t֎0r vANCѷ ru^;nW}*p ~W, Hx\zϭìhY7;e[H6/uUU)6Qˀ:ӞdzmMQ7i9jɥj0>4%n1*Q;(o:k=|9JSDn>V!҂y!f|V\,f"e/)A;+}SZUH m4ROu@br4jdCmAU 4[9It:8(/^ϛH_u&Rbi9l-1TDC2\߲53~ V-IbKPOS0DAQv~n[Sk70Z8ZrH|bUD)"0Nf]FZC {dC =ȣXٷB% Έi*mw:ь;/2ٕe#Vk>4,imdrcK}‚Z{A% }.Qܜ5˺ʛ iq}+٤|;׺EF64^qBSީEoI<|~ oB#@+%o?!ƃýQ7)#<#)Pr7;f^qbN* 1x2vBXRU2:[@ʌ\%@\LCnQT0$t%Z";06ɠ?f}Ōz _F2z7OPlO=YO0 >ZYY+K-i\2D5bȐ[XSw<ٚFY!e=[3g\&}MN5 p!(ë"ps.Yu>^ +oΫW ^9^8x[悈^t x ѐJb},SܝG:xXA"ՍKwdi~ 4љfm.tR_z6 OwL &oxaxC8ŪǙy ڦe(ơ2+ӦZ3覰$P .QVqsdhؗG-Xuyy??Z2a=txWUF7e_ZRY}O;C14-1 j!_mȗN~ew չXv8u8 NO-YhӅܧ3f|eMJp}]`S V7xh]D)hh/\ mÂ*,^sH' 5| BȺ2&iZMY) PeTlgF? YڹX2(5PhȲdvc@E帽Ƒ5S hh[r[= q8a2->>{#%9KR Rx >p>6f(LfprKHS30z>ΘYv,Y?7XRb#Ws%v < ;&ݬ~0gk0m)<[[Q{==Ks8nl]۝L%FeM@HfǡF |&Y^) \=&VGtY 7ƶWdƐ{RZs}5*:,5 ?Wu*55q1(dNbT?L÷p++IfUM.ea&hD(|D]PZbpYš6Hmy\9I]VHX9DkK؅4"QE2&@=j$j#S#/dq ޠ}!oü:w` Nɻ ]|aAe֊ ɴ`g2L/Hk+ 4>>u=MtT՞xۜh3Ɲn)T [. Un 6",f+,ZzI3( {- `]PX p)CE$[T -'#F6?S9{EQo!yAKv<_g<@z~RSM?~: M5T9\M6GҸ.{>;j.+X:TgEl$K'[V̨WzN{Eg A%r0L`;tY$i%tiRR"=_JZ`Cc7/"bR{+@IDZsǟn$S§{K']G+jdDW !OjԼoXfG2~mFʓj29Y;R$354;sC A],a;P28⍿U έ);<߁ϤChwv޴NBIzi#|;[D<0W' q0x!>tu(ɮ+s*Z0ΑxȶTU㡊~W s-@RUB(J ?ش }X@tܸ$_'_,2h͡ K"ݑS8e%~1?OzGӐHadBa@yC=aB, OU`~޽AHS;244 Yb`MmFd&J4]F?؏3ID"n-n$d!14W1HX>EESI2oΟHUi Xȩ^9Xȩ5wD:8"'8^7YH0O KuS=Y:ljn3!PVO4or;T$YKjrB5a^"oltc+r)z"oBS%@5dEj~Zmkh.nD\>㉄>Xƺ e#Y -s"5*Aej&q'w졋-Xa9ؔA:{3UKqHU(ι-G@?&2:ۈp7J|2wmؕѷ6x% వnH>̣Y ҎdlDJEk5ҍ4e콒 ԏN?eި䕄4wsu2r?e᎛@\~-$ek<"{WY8몟Z*Fω^\3#]QfGV9\'/'? ] VH (Aб`;5we5A\ڥ߹"+B/#>\^ 2t}o2rlp]=} LbU0E.g)l_af!k­jqC6Zog@׏N0<?*J@FNo_=g|pܝP}j O4!.^qr9z uJ=(w;tD V GI'׏d+WtQ!~XžcZ'K-A/AlqR|U^E%۔#3Ib߅k\OF֦l,o쎬Eb{cBD̥J E(.'@.Xj .ґS͝ ܔ$L̎ |6_4nr*(6-`,?<yn1l\AͽT~%n hR"$ymU2E :(e+jrv5>WwElS)YxYd5噛C׿ܬ_H)`C"OOſ+]:-o@O֝|4ޕ&$}TAՊKuw\<}dy ؀D8r@lm&W"x~ GZ#/zfIϏ_j7~οm071Ӳ|@hܥjk/:5%c%ֻ\|Lz(7."ӊylu6&a͖[9ؙJGy"^HO^]!8lTNQsxŵSqaY{LW2F)ĹN)u!*.>V"YQΓ_xX*Zj֎$ĤZ9g\tGjDEx}d6?M.6("_ '|* z$$a|@m2N[ /uΤ)@5%ʐsfJLÆqW];0gE@ /- 5Jv|Opr@95Tgw zuF^~{!m~Ͻ1(SXl(2A^M)Bv-Y僳@e)O\(E5T&ծ0'NPwѸ;})3X&>nvy ܹb_a6(vi~&EAL ݍFƚ5.vl7Ķ,}A14\˞7A*8=f&1j1c6bXY߫zTx`3>L|݁f :3|Hֈrr(l,GFv+ꦎ?sG&*^,&)E8BKf{K.[/Lov< Ks*9Tj-Kj~s4F~Ae1 &8"y  b]6:rhaj>#7*D&=e4RnID݀䡼t'*ߠҷA"})>}3/PVo}e7atc<Eձ94*!M)(1M"Ak0玃- *tQPlщZLAE7" c&f{!iBOr.vƦz33%OX1]UvY7C!_wٮ /4cfh_*ۥvhH3JTfӭS1LD-ډkƢDž^q.tQ&*Qd&LݢTaP-_!!K t)'9 O/!SVi G D)Ѷ$uDMhOv~? މ2[>sHkL}eM["9Q.l`ԃ,TݏD0>C/v%.V8^cO֩Lp&Dr8^!pQ|sWֶy_nSM% C~pZ<\ AvS]hߴ@|D['y@ӺS.m ٖ@!e@zD~ܚ=ov'1Cxe71o5JVة=oE]xLfFcLͧdVh2XT:&ԣ\&̩h:F|Uǁb/f+O "DSkcaAiѴ93Y k$ 7tJ븋H8 ̆}v?x l(\E +O+Kpw 5[P?W׻(#nT8RUVY4h@ ?M*ϋ#Z l57pb<0oG@3Ѱ@ǚyў_CeT+Fy6ؽMҴ)| WAoa/n&BdN$ox#]hq xi{0M(||T{L"O@k7ׇ3qv q S+2hhtbb> 5zVzk-Ҧ hʽUVJQc 5F+^Um{Eg . D.2wK-:]x~Xza5%MMɤHC@EOaWL:n6/fG>o0NcIHeRĨB 1𛿃%d2Ex}d.7գR J1mn)0!$a1BN>[qڤ!H0I5$&,1oXHX9DkK6 QOW4MVΕ7}Bs=b&6{W0 1=` SGH ΄iFO`o)"&Ϥ7+2:ϩ(V>m-#}s@^XcCA dK5sc\1yƴꖅw4fHǮp@a?G}=bsȝS~R5߯-x㺶 +o?>[o,B ֩7o^x{9.]PfI,cPDoY 1>C ,>m= (g4򀼋W6ͻ& ZNymsdQ")Jl6@+rE-֏P\HߍTy+0F2&~M(>$kK4 #%Lh~JNo m40 IUs j_ S%AА.|Ble$Ҽzk+2m?/%+LhsNeO2㰑ֹp%iaʐnri7?{'*i9$_%eH0Tjo_3G[Wu}1J0p%Ƃ7ge17(|oap%|#\54Ty(o>W zZ-Ĵ9h,Ƣ\ZڳUǶ5G3<$+X"ps.Yu>4`3I 8mh;05atx~T3pWQ;Sxu՚e!88nPL\UHo9}kU}pJ`Z!>ٝk͵ s&br.‡ourݴ`+K{8+fR2Xٙ*~s[qAɕ[S@qsB߲,*毟&r~mɷ7>f 2G+}Ba 'Ӷ)>оh'lHX4)7; ,A.Jh˰U /eGWBE'y 6XA2yw̨B۪Ϭm-B [Hc@0\5ԗ߯8,-[0R(VDd4;_dqpK5EF@߉T•k"T?/IA)eTE}^"NJ_$Ǻ =3#]QfGV9 Jm9Qul=NC{ʢoSeF)Jya FSHn4w(-潹 H T4bj&Pb`0t<ՉbK1Ho\ji^c32\$(QWkU^ctN|+:FwEpea5k9Bن:7d~ݪZ-!Ҹe(k,2؃.Vʴ>5X/72Å]cnE,tYO8%S1Om̴g# F]Qp/J o[~u_ϜoNC*4D-7Mkǧ]% pV ;Sרh_ In%@VHL7+GUڄ^AI0)B,D،EimHp6y' k%F>侢Ld|Gq@PKd{+ynE~h(yt+f?$<l̽tJ$&}=v}QQT0XQlԲF˄h=Jk/yd8wJ'=UbG@qa04iC&$YzA{lQzgɋmuFg"di.6g]q@vOlĀ(-Mx8ndh(Zpri֫6WJ`,$r~ӵrdP x7kёdq.q{"j&JÑM 0&9& mv->>{#%9KR Rx >p>6f(L(SQX;V?IVQ.Ћ ^7R.;ĩL.3z=UD|ZxtWw7őp<)hDzKNV1V"`>|+p{Y+^( .ixYJV* O=]my~ÃDaz,ZW-?N-e< UKҶSYn6 ,?aD8fHLqX")jpP*1N~aoA7ai $V:`oӞQL1zABPi3V Wĉ)30a'>5uŮky +ֿg o#_|XWq. ^SÇHQUWoA la_WhωLmoՅA ibn*~e쫴j{+6|TٳFREm/ i>/ʞ[@N#,!-.i̶stpQ^c7QMt|vr?h)FZb1>d_e@jfZwĖ1!3h`Ƃ7ge17(|oap%|#\54Ty(o>W zZ-Ĵ9h,Ƣ\ZڳUǶ5EbF]Qp/JɚMh Dxلt x ٹR}~(#qpK5ERD` +\^Ȇ{%C8+FoKS$U*,ۦuw3_e=+J(Fp|i2Y_A(4״xZ">᙮zC.kDǬcMPX4oaBի)8]HkH%3phOVC[sWϊLJ9?6d@3 QjqfFzÕe-7daf$x`yXw8LN1Q}[a2Lv*%ƪSL'Wz>O[s?jԂ;wT5V-._Imf;l54XhHp6y' k%F>侢Ld|Gq@PKd{XOcrlq$5%VΜG LJ)d I?/eVKE&VKY@+ 0u"}{Ðڈ =mW !oi՝ ?$=n+[#LIeӢŬkz"jr00Ů\Y*$*xTf%ZSvE^CxIz-q%7nxKf›KKɺ5 PQ<[shOBNaKK?y"sq&ѨY1D@dtUa?)-򝬏([hHܮt-==ȰrW|ΛYe2RW/񈽣{n\Œl'KwPê*tؔ% z䛒: He^}\H2c-z2]Uy) (@IiݫYu 0q) lG$B[1 ZT"fz*i8A#+h5Vjo x."7}+>;eo m =(-3H{\Q[Ҥ|ä H:Inۀ\qY5,EocBe*h؆w{՘XܢnQ}]I4 XtR:~]OGA{|DA qwz_{_D\ ҳ8}hfD@p&n*-HxU, j7rjfU筠 J,z@;<)sDs&br.‡ou B WRʉ7[:l!MpT,+ld香TP"Y6iC53e0wGij'Qv0r){化2)-a(ELc 1d*vCx(jK0kQN0>$"dcϵcz)|PҸٗ_b~T$YK^&L*1I*4-V4`K\)"E =3#]QfGV9 Jm9Qul=NC{ʢoSeF)Jya_gKTFKH,#'ng֦Gx BKqEm/ i>wk9سTqX ǟQҥ>/m?eY%jY:j$^neG Ոt(ܒs,LR-8O: +9Z`ߴ$M^+JV-B41i tR;~U7X.:M$^=P˞KSzӈ2iPE,vz){Z.Iw(fTĜqFߪPivgV-jMu7QCK5:ai{jQI֗X7puҭF˽ \Ȉzh&V+҈"aUg( Jvyi2/^)m nKgN#C@ 4r_Y3A>ŧNⳤy)N"c3#Kf3hB"t]LrM5 j)u#{ T*dzQ)];w7 SI1%%*odoF:LL F1j[<Ԓ2r nȄȇH ^vW-ЛPB[a/"c;/ȲNJ0"ք4@O"9ŻAbWjDpuk V!p'V ~iDx&r)y%Nj1?bV=x?`Iܒ;+Z؆y@&,z00Z#(E&s,Ixg{N P;ˀ-MN%sk5&g6A#J~?2I%F}c'VʣQjRg9.dEhOF=Lwf/]kj`:fϑo-Tq ZBO>X1Zu6s}5lmI!O츬v)[kr*yLYby fh3嫂>*4 DJvu?Ϲ2*x,WNV6*MlQ(f p~ ?TboNÌy"Հ+|7I)AaڜXWț\z^jД j ~yڟZ ˛>ϸa *(|FYHBKz\HlJto&ɥ9a(b }bk)+XNyj%:;NiUgR=n5J3KkmɅ̰ ҟ L/E@(z%|/m͸ x8,-[0R(VDd4;4"lta7E{/du#ӏw9%a^~d:z~ֳʑ3WWTDY djc B %C@WBU?/,3 cm,X$l ](lMPW#56hH3J*FWA̝[̜&#\pvc@swzLc [phYHo{pZF#P&ӌ.ʒSu+\87'nEڃbF˗\-23<^mDROJÎ?p)=$I)J}1j ,!GXnJۏӍWֶy_nSM%~ޡur=ZNn):Wϱay 2a( (7C΅z\23Y}׹1h-Q,\y,kڜ;q3.8MQ%4ױz[ p>7__`ʃXymU20^Vj<4'e@${CE^(ty!Xe+3U(p&ޕrut@Bz%\n)$ţ,xKA"p`}F oJsEO>*pu %nqƮmdx>2<l@|c"t9 6 y\Bo+C ?#XSHW|z~b$0w%1D7R4~~)6rpyw{_s"X FSxTu=YO'6yS ;SSU:rZ-i[ZY1- bALpDSlu&.!!|GoTD;Oׇ~ʍWiKyGB WSy*Z"?DN4z$`ό3hf/}7:1JoV7) !qkxbaTpe-(o'Lz -Z"ɨ#4\~~ǍQQPg'Y,;qv09ȷ%^M7#m^61k. [jK؜ޘ)ٔx"2aQ ?FbO!| EpR3 }gg_ -2n~饈y)ʋcrh<;U|B/21JSPb2E.qaAo5.Z@T袠 ٣W`02*nE"@)kMV @B2h]M4 ׬ffKcܺ*x1*R nC.5"]_h0!пU)K#Roܑf&?9Z!: b7k2[x9YE @]LTɚMh D^ [P!CC̖"SOs^B<#nR٣lH61OLj МK=f&1j1cg6~YG '1d 閤)>I˥P0 NjFECG>Z' j{W:qF@-3#*P%$d./=XC,O~_ (IZ.ӷ"^;`$ ~wGl-?54$ݬ| QK_:,ZƷ!֫Ii/IS R/u俪l+V"6:>&veK|Nܸ=RQ1}Jv[\^^wi r_l{3-Z rJn:ksڽŹK.1%!*v[nvp IK̀fe>^CWB=XT8 >|ɼ5 JUc30f\ghMYy},kobqPbd4r20gk3ZŚj4Myff+z\CÈܨ`Nos&?Q]SSl^@bI vz)"]16%К 2ttIdwIRY h}N6RauLX4Sv,Bĩ)Ef5p%" WHvqF1\tF//c3'-E"h=/z9͎>"p!Rv WIyb=#{ĥmi0xhÏg0lM!f``_PS\2#)SHu5Ǹ0{ AD@WEN-mXhx&>>hͷrr҈ԭv ɝ)7"Qpl0 %?Ww z剉nBIaU78 " zn9JY-|@^3,JQo1'ZhN|j݆(c "Mz{+8uM+脡+H XS7y< fARdu4lG|2ocgЌXǩkJ 5d?% og9.e{a#rJÕ $,Qn~BOTrIK9Аajf'?|Zc8` KFn coQmO:5hJjFki!/Q4&|x'C2|%N;d[ehr>RY.1D ŵfl>?kzfxHVXD\ ҳ8}hfD@p&n)2vak^=8<)f0%ܮ?v 41BppѬ]:O^ swP֫wg|R B };Sכk[Dsr"L!V5]'hW(V'~s(qV']̥ d 3TG@47+18'!HÌ9=[e XoU_>*M1(%o'$n} -EśeVO)۷mO3S}} [Nuæ"g~#hSnn w%SŁGRYX<\;1az_ ʏƮO߭m M@d*"/ُP:UXZ(>Ɓ`6jo-/s_bpXZz`SfQ⬈ɆiG2vWkjީ+R׺EF64^qBSީEH%ue{,5fF "̎#Ps$rzĎRAˠh5P[{sAA:(6h-k &LŊ(`?A(y[% b73S#D!%ю޸OPzfdI1Q}˪׃5 蝬tWtȋ n:-jeklr1 4t/s oT[$CpP8Ye \iw|j$^neG Ոt($$Y*貟p91ןK]~b6ۙi]F:8"'8^7Y?8%p5〇Uh(Zog@׏N0<?*J@IԬw\QYо7P*K-,n VƒʒaySyX/tJ06qUV 3<M 8Q9C'HeWL 'lgMaH]-21~l?٣-~=ǫ8M# ȕRGg2W_ެ!k'?/@M$ OۑDh|f,nh!'Z2dc# ?ՉbQ[1X׭voƊt5)D&[FBaQVȩ)Ez]Ұt K+3/̌S/̮kx)2`hӄ|15- 2Y7a`[?e&jL)S_" I^<ܼ- @}?iKu{=J#ѡ8V8V x]?S\i)V5=4.|LwYnjz T88BC9mM Їk!"q>.] jC8[8n7؄i" NWȓt8>6Ul9r.tb=6QzGTukWKRk.$Cy=o0*E= /W'Rf#X$@0  #Dzt9-2#emNY.ƶc_*mխ.mPɢk36_F.A,\|eUwuJ&ϏOhxC&O^ll-G8K;e1qq ~XQWGD\ ҳ8}hfD@p&n)2vak^=8<)zvnT_1H\*Ryc'3-!=ײ!xP QlD 4Ǖj6黝jhOlҊ25rLWJ4691%A-=1Ofkcbc 8+1c+V#a~XP5jN1ev|&7 L:ջPŀ\O͢Y6rFZYQ^oY~ McY:^/^n7]T_Ec i)! 2|!sOڵ |KRO` m,]y䆃>b}m P<0X?bT>O(N^MJazʕ`>tm k"T?/IA)eTE}^"NJ_ɷV>?YWTDY djdNT][SAyRXB(9tƳ ynx81rEř;!GIwgwB-} eFQ.J}.&!s(~*Qxa@PpuX mP4XDJJ vIVښ_C@BW0,۵KErD9W >ee@n$T$r?fh}Oʼn$nc>&YXr8Yba89pU+˂)Nk q>N&GV0IRLQ Fvjy5a+13hg_`13Tп,2tXztRv}$ej*NG4s}sd29Y;RFO_Մ<-qghIzS{&{d+z7ۜժjBd{ -آaxeYU.Pu6ՍzWfhCR4Bek.&j@UlDW%+@̤[k(};LN&zp8>[\K&;bg ЗI69AՓuJk@S_x!//G*(aF EMQQb[g $~S [};YP5"_ݝ(նAʍ%6+W/18mXVi% fvf7S fBXW&y3OL9-z;+!@pNcTM_Ր1D|nT+=2~_Jwh BVAHiuxDE]Nf(0O *eJZHjp0uそC 0vPD4 V| &#7yDD1KX<ؑ "J*KGP?ڜ֐-vWI]#&DdE#kx#QgO{i7T\J[wh2́04P̼67 8hA-ĠhG|qmRwe1y4nKv<_2$ݖT- tQ|VQ@6P>JöU"ztŝ7ndaqp q3F,cWvbZ5t%ͫ. gerbfRbi9l-1TD8޸i"ў^x5Lk H[HK" xM%j7`*=(o ʻEODI(ë"ps.Yu>4`3I 8mhǁUZNw5ԛ9i dz[ VP*DsAO= \܈}|9UtaC7̋|+eD 6{FcCtB@L*(]^ I,\dW{dtWșvU;#Q 5̨X\y}\9o=KV0"N1?p2X;!X~%5zws}21ڱj{ ܾi\l˯?@*nSեTfclK^ڤ zM YkC+O%"@ oB#@+%o?!ƃýQ7)#Z' j{W:qF@-3#*P%"ʴ<]tI4O̮q+H^vYгC⾀K4$ݬ| QK_a))f$f ] b[٬%Ma14Y yVcc+ VDQXSn\N ekg^g2")aie|G3tg{*12Ӎ>bqIԄ0`6ʨAh72*:vTRX|1utw"Ao.}Ks1i.tk|mcn[xP}<-W^XZϘ Ա~QijQ}0Q.X Y2C6 RF.i"Lp唦.JƸĒ.i̶sMXTcWvbZ5܀F\Ʀ !cl M'ɿ:~!U$%__!6 VԐR Zݶvˮ1NTEV#Z0\h +oF rJg_ ¢N?L %0=Z\_xJi07=HhAˠh5P[{sAA1nU8몟Z*Fω^\3#]QfGV9KX̗ =`< /uTUbUfDHY~6b[UKVIp{!;n;uf. q6GK 'BI  Џ`WK3$ sAkJFsl; >~met86~S/]%Lj=%l]@"gh&c~%?@n%({u ]\Zz{_h^Gw [_r@w\uHS,jS~g"MNCU-|I7٥TMpuwPXK"im3v /arތcO](1V/Ԥ49XQ3wKX  WZXړT x+j k _TsM٭Gh |MCEJys-~y|. Wn`ْ!ɹcLNk#V/.4XGoa*Jb0'0@[+741.Ւd&T6Ue\~\Ȃ$BKk@~>QTf: .:uTzhS!=5=A1]p Ef;8Bo<"ض7;ɣ$)^=B8"+'g~xN5KErD9V֣VLKf| Q5T5NoƣG6Kp3J|G83.쨘\ Π{)[79+ J ؓj\x_#jf5iz±VYUBK?E}Tw M-O MRke:%G I=ʵۃ7uj~qOX,Nւ˳[{ZBЛ[D^'35Y1w1ќmiF@(Se'2˻w< F'NPLrtǨUr-kJ\ :JSL'WxL{9uûc  3{)!mUD]Sr6쯾^ihjC٫E}aj邐}MG#&f$Og=W#0yOyj-ﬦ,7[ߧlA*!M)(1M"Ak0玃- *tQPlщZLAI ^V?gxN3G^)"vx+;/sב<qZ4ri_}5k9Bن:7d~ݪZ-!ҹ4D"pAS&<-twͥCWCn/8bn(FI!-󟢾;ey&e[1u¶_lt9GxRD^[B||8x3 嵚쓛@3uz7FPjKA,=5E+Jq(Ah{bpI27okq+^!G1Vʇ0@`܉E~h(yt+f?$<l̽tJ$&}=ض&/|[o-VR;\*c7ęoH%Ob@XP F䓛 3IEXD:i- 1 *`aCQ5XJX#eM}*$^XbD̩p_icq/~8{YpPƝm+ lJz u=rMA`˦x*gL)74{~e,Fu6lP\H{l(`TbXY_ 3Ϫm=F=cH?ou|v;xi͊QVt\ִxz`13 $,j$o6%z?n+WɇG .(P}}pF|?+எLEZXF5 ElukmUS|Vc_l2 '^:,x*BePK[0DCe%tpˈݙTB Sau@1xL/=R8"zs&c3PN>ӣ=>"). MFA@v v4Ǹ15uY-QX$'H|7M@ Kb7An%==e.<-mn+@pC;ʼn\WIN;8r(a{3/Ґ2GJ͏-rI-*4WJ2 6Nͽsd gTfS^d %3OK"A-bفhNѵ 2aҡ3Wr-&:ڏm,J⿱ƀ+3'3eRkm"*B(wrMAa:Z[knhGrcK?,z.7!J6CؙWkyţ*:@їcwE:d% wIyV:υ@e&W6bHʏwQHIJDW5Dž^q.tQ_M@[I&Zj ]dT2jOpcҖ_NZbYmv!|=˧C=Zʹ4]6܊t6}^GWSR|NHTwڀە; F5DX񌰤N&dcTz|UB]sPSAAab1qP\g#D^kC`ct<ڶ ^pf1Q|\h4(I5'W+.@dr .Ec++c%wp/MIvOڃ xby?ݪ;Ц*gb0~ uQaYw Hdw!],*Q/ƲД!my޿qħ `s8wA'vq25Q}oZԾ2d[^w5t(nP2.c)Rs, A*"}ZiWbHݲJkM#{T;}JOڠB?>+F?73uN_PA#oZHTͳ_ E(Xbx&zyLhF07h:}f|`\sE_ȓmޞ|G%q]S9oF1J%(,Cpvd"G<#1`+1|o-:fC`CTWmZt4[9It:8(/^ϛH_u&Rbi9l-1TDC2\߲53~ V-IbKPOS0G<ˈ@H\njyWRB kΟSG[lKtArI 1O>: !,*,Ztfz Χj椉=(|\AIMX7ЛC.[̛"w*Sq\ޖi5^ <#U='pPL\UHo9}kU}pJ`[yZz(Z1s=%S2jwƜ%3MlL}{IoPKOge/;ؘ6Lz4 ՈF_V)Zieݟ 5 " kSO~Uq#Q8]ɭ/xxbڃKxT=*rUd6#c'E-"v }l-X\osn7UV&tx);/M2@+@VSLTGmF O:;NiUgR=n5½D?)v:Y0y<$ҜSrtɵ wNizAx! 3w9%a0z5kAɝ'qд˫8&XK8#8І#gį.[ oB#@+%o?!ƃýQ7)#<#)Pr7;f^qbN* 1T'q c&f{!iBOr.vƦz33%OX1]UvYZ}k7c˯Eu/E}R)Cw\_LYr4d`ĶkdkI.T[$CpP8Y"An`UNAG+Ksfif8ݔL|X1RF13juŏ !Ltv :<1!N-/ s*;ey&lu\-O MRke<@ JHg5gQYоOS*Xڤz&G1@ E'{ JMxyԍ+#XhHp6y' k%F>侢Ld|Gq@PKd{XWWdI,*ŏk:+`w& Nuz5Tl+|U^E%۔#3IbdLy#*Y9r?6I@ٳjlDk9d& \ 55D"-ςQnBIcj 5?5"oMʂepǰ&O [-H^4< 5n( lR.R5 A ö弰8"^qC 1sORkJNLgE?rM]xPWG:ي=U2)~ Uyӿ4&֢3s3/Xh+=!~T tPV@tD,vS[+b - fqZ8S0\VSAĶ5_"BM@:5%>MM(H}qK"JMk/7<(&W|a H@G^>9=2CcUF)0}U7p+d%e/+Oxk;Jb=Lwf/]BPYڸrj xYq&/Lk(+AJ2M4ClMp72):=<5 ~aCT_(āմ ,pP7tVvߒОܫXD:8"'8^7YF 4"0vP xjEXŤgpcP}I3P{5mE 2H=mȄDA8V& {pW!gJ\w<ebu=<|{Lpm=[e XoU_>*M1(%o'$n} P7ТY{Jf4"Y*Js3;>?Cs'eI@%h i |Ty1kP^\s$#!ayv=,c5Lyb +îRw!qn2,RՒ[pzՔ̱hdh\X}/5p6Xkx̌uDEFXH)+}Eձ94*!M)BLx>!4 .-4hA JE㝶{UC fNNWM ;^ϦŚn<>*ֱfAAԜckvp9Z\3H4>d` .=u D(`ߴ$M^+JV-B41i tR;~U7X.9y]Lz=I9!SjknT@2?NN!ܸAߌEZcc*jع|G>Z' j{W:qF@-3#*P%"ʴ<]tI4O̮q+H^vYгC⾀K4$ݬ| QK_a))f$f ] b[&' D]&C9!F?7:1JoV7) 2"?-yA7".}qq,AUc]P|‘ؕEd M5S Js}8ÓջPŀ\,RVJuw R=pΥl(Ӟ~BO57 jFz3vSh_`]p鈤t.J/abтE/5f[z7[U_SkEl5)α"Yە2z*wHu860-ywR"G+%G1^Q-T ˺VG{s_JnglGvy&ZƲ/-R*H"SVz,9% 7.S0] \ة=oE^Uجϥv剘@ 90Vٲ y ˴o?ły.b _9=ʜ'@i){m%o].YY[lyQh B?~}D̓WIթxI94ÎIe~cB|2O|ޢ/xbo#풟8x?.^wi PO7eK4&Pi2 `b9WBqq}KĢ.DUwk!BS:=E dG>Bh\Zr*1\wJ}C6..0-p-j a4 Ed$oCll2K\?1ؗ4x tsÿ?U1 &7rF[A =D s;)Q{)T|*FVJ&'ϼY7"ʪW.z\i lA;Ik./&ȼ;%%D;*R;sツc^xblFΓ|3%tK W`yAֳ1pr1$0`Vhᅥ(CuEa6`-op=.$d ߑg6zsmHDg](ALs;ބH} kwe9ՀDZwMAFQKĄy. D1ƌ*rBH)k9dNbw^0W0u"2ǐ.H  ۹7Ɣ,NkۗsTCx=ODo8Sg H~'y׉#ڏ=40viH5.2PZiOy\KE UkYI~sg‚)1>O~@ lr(KѺ(4hs Exh4ɯ޸XZ ^/V,#\P>C+>oQYhoYϵ eie5mt 2}mLkg2ː'l&+T[$Cmj5dĶksX˫JST>O~Ahj4|Sd s;}32ʉ%N ǽsԠʋ6%X6cY(Ɨ뽞+jOW$sWGp̯9)pBؔd&PPzOѬ]:O^ swP֫wg|R mh(5- UE}3\#{]^XƛZ4h …1VRq-,!qkxbaTpe-(o'Lz -Z"ɨ#4\~~ǍQQPg'Y,;qv09ȷ%^M7#m^61k. [jK؜ޘ)ٔx"2aQ ?FbO!| EpR3 }gg_ -2n~_Ž~!FDyRXB(9tƳ ynx81rE}ɔTй%aSwm4u*ng{=y8w襭>G-Pe.Z~Xgߓ_fc(эaCXSnGڥ߹"+MQ~sNB)O t2oG|T>%x? L6<-v&뢎d9+꣸fWBmfZeZ+kk]?Oyu(kkHMN+w퇊#0[Y97W|#zVFgp 0m ^ƼORTmK!-J}1j ,!G1Vʇ0@`܉E~h(yt+f?$<l̽tJ$&}=ض&/|[o-VR;\*c7ęoH%Ob@XP樹;Zhqʹ>WDe.q5da$D<}0:Ht+$y^Yz}t*h͙\,&Q.uҕɝ+4z?}` tyZO l}kJ濗FڕT-RO0^Ng!lƧ%!6f(L%K_0  =o= [O z1uq ~Bw;5a!xcP `;G{'\/q2^;~nXe+3Usoo46vx $|qdB6&RܚהU? RrC?v[ ﷱKY#; RY0pZ>}9zW7k {ՉV?SH#5kURF}oSژnc6~aB(*-#12F REa]Z\^:T%Z / gucٺׄA>n?`ڙ)a{Z4N)5ECK*??"~bu25AQ{{|ֵpjEzfΆp~R+$ɢL5y 2XRFOMw{+is ̿Pgc˯Eu/E}R'B?^Tkԑn?NI 4[9It+/.; kV&!fs }LE\0Q>FU4x<wZ߱ģO'gqI rU#HAP㢕y8}{C oIs:o."\i9]&"ާWy%XeC±VYU[2f1<]7m΅ e70 bfWBmH@!lJxhw2l[(q$L w+惝B|: E2x(}&.`k*nW7>Yy>8_%`TAwSH7p7".}qq,AUc]P|QB{rirz\w<ebu=<|y_PK3:\OtkcN( Sy2s|3 p![n%!bo20xbaTpe-(ĨTf':ۈp7J|2wmؕѷ6x%Welan9A D e4@pKvl0SsFVu.c8C]PT:䶾v\>+,]y䆃>b}m P<0X?bT>O(Mg1Ǝ|.N[jI=ʵۃdΓhZ[bkix,D%cDx\hF{?v3#]QfGV9 Jm9Qul=NC{ʢoSeF)Jya FSHn4w(-潹 H T4bj&Pb`0t<ՉbK1Ho\ji^c32\$(QWkU^ctN|+:FwEpea5k9Bن:7d~ݪZ-!Ҹe(k,2؃.Vʴ>5X/72Å]cnEGR+M~!uqhK7]|iPVl6iEIWA-LnZ hb.e,Ӗa[]x_r?6Okփm0 ;M7"3 ~㗑ǣԟx1]N рj61OLj޹H?Eg;8Krcyã~2i i=bV< J%퐗eJh5f`ָHi4K\#q<R0MpC᪣fX2m),ܧK&*dVIHpȗN~ew չXv8u8 NO-YdǢR/tz#{탞v$ysIrX\_SR!!JY"ע/Dy:ap.dLh,yCL%3RaMPudR((Hxix_ J^%dz0IG4TB5&x {꺾\ѯ؏$W}MD'GOp IK̀fe>^CWB=XT8 {a }/*ͮbkTcƶ(] $՞7"{ 0u[ g(q ڸk+X_ǟ[7$s#rhVV}6>%0&6.ǚٻdANuYT1Q.ʠj`҉.KyZpwaHB-ʛXR[^|Q4 ʷY:*0c15 b(yrO{ /~ EbLt##v=j%*!?Cji傿>c HUXGt4F>ħL4bDž !v1. UPuvxkD< qR_6[{s:! og'^\6ԲXrWɝ%|Q**)Ud\`)yV2/p2 _̫WS 08Bw[9,Lu8g}ޔ'4 dȬ 2jn+i2B\?XE{ #(OYEoO)kWmԲt  H-q`FQ6fï1.^ ^e\NWxIy_o e7Vg*堬{0xըVu?_m PE_5$IG#j Nn`Up̯9)pBؔd&PIW>ʟk;Ni r?bFv=?z@3yCZߥwVK.*C#@ь;/2ٕe#Vk>4,imdrcK}‚Z{^ ¡P/k $yq?,EiSglZ}X+qH7I~`i"Zb8%;j6pb~)׹܂uHf#M«:Uw!4!YLõɇ&&n MS pK| g=xI~˽Q+ hdvѬ]:OFL;pF]\(Ƒ7N"]1aƄ1#>%ypzkx̌uDEFXH)+}Eձ94*!M)(1M"Ak0玃- *tQPlъ^.O>sA5[45! H{tc54/^.zx_rꨫĪH/2\Gq]}Ϫ+z+ꔼ)JGZ2kg2ː'#%_P|%c\bIpڥ߹"+_2ƲP7y vp9Z\3H4>d` 71FS~,xnp2d#k0M}YйIgBvi~[UA3+o6g !lJxhw2l[(qJTC9/0#=z̶}80Wj%Y29ǰV);ضZVhiYtfF牴3ZLyͪh_Q‰j:C,b:e;c>kEl5nq_'f#9>KSzӈ2iPE,vz)#'qq}b~\$n=s)==@j5tKQC02*IS:]KH_YjƽnxF4SHĚ!2r5G~ rEOO+fR\^-ֵڔ `X֧u=8LCCRo-lC%v 1URhKf›KKɺ5 PQ)<[shOBNaKK?y"sq&ѨY1D@dtUa?)-򝬏(qʏΥa8VgFx*AH>YE]v5;qs 3W-CӫbSЖS7 n zC,x(mCɏnTíf}tN9 Z|Bmn>x=ua+uXJCMh&-w;5K=bd,6J4}W(IW~ǁPdL|BWG X%MuMN { b" &&Y۳nꄤtC环$.k.Dw=Q5p~^CgޞNO O YgzKRl s єra@X#l>@Dm)CY(li1aj 9DvWí^9^F"B`{ihgIɻ2ۇ@+=*h#, ~'jQL?zK/鍝 0 mƥ_<4Qg7.juNYpUdpw!FJFlyu>请RhY\غ*Xx ->}^AJ2M4ClMp72):=<5 ~aCT_(āմ ,pP7tVvߒОܫXD:8"'8^7YF 4"0vP xjEXŤgpcP}I3P{5mE 2H=mȄDA8V& {pW!gJ\w<ebu=<|{Lpm=[e XoU_>*M1(%o'$n} P7ТY{Jf4"Y*Js3;>?Cs'eI@%h i |Ty1kP^\s$#!ayv=,c5Lyb +îRw!qn2,RՒ[pzՔ̱hdh\X}/5p6Xkx̌uDEFXH)+}Eձ94*!M)BLx>!4 .-4hA JE㝶{UC fNNWM ;^ϦŚn<>*ֱfAAԜckvp9Z\3H4>d` .=u D(`ߴ$M^+JV-B41i tR;~U7X.9y]Lz=I9!SjknT@2=rρ_~Cr>+EmdzW>qWڹ 4s}sd29Y;R*C/EDD r;kpTPE輻i՝ ?$=n+[#LIeQ"jFb%x·ם Ys&w-…%EUݲT{9>:Ş^{x)9cDQ6H_83=2GpSQ{g\wʳ3QW|S%,r8R4/e#rG! < Eޖ%呲Q ݜ׵n'W=L v, v5iesy9ȚtLݻxp3QK]3%R@'&ҏ w=y /xHiTc,TCUˌAi@$17v G6GŜo(MsksDLÜ&|/6SλR-' |wKW=CvwϹfpワ d]G-|iΧ! KF1eVmhr]yJ@+{Q"mCϥ̏_o+WEF}~8_a9Ovo%IIAI? ,%ivCA.8]0a,ڂKR 'g&OIM[;UF_bZP< H"22m EfZt4[9It&,CF*z1`+1|o-@|#]d cS6|yo芦dߝ?oyI//fgFׅdcjH) ~eqK;e1qq ~ћI58| ($FFdUT\-̗"N50|R.d@9Bj椉=(|\AI䆛t~-a#ksfl} N0mIRn;S c{c^kVKd{Td:;l NBEϳ.8C9ʬk /R5ޗ8R#[6[ɿAaiNorz~XŊA ZNG1nYԺEsU FAm\U&`~yNݽ;jyҟ> Zݶvˮ1NTEV#Z0\h +oF rJg_ ¢N?L %0=Z\_xJi07=HhAˠh5P[{sAA1nU8몟Z*Fω^\3#]QfGV9KX̗ =`< /uTUbUfDHY~6bqmۨ7vOb>zXg?L<`hD {bprY$p_PL/g7ģ\:TDV3eTk+ PV֭}m#!I}~ߪ_ s&p)Pt7l));CA8:}rR(f tHSf>ALxvJ5MçaN84R : TM_S)y$fl" ш|[96:."ksBɭD`FfT{=#\>줠{=FvXisp^: `nj"'孔W;B5Z毭onx;%Vy}5!ۈdOm$P#_}g&R+K̆0ãWH/Pl>5r{쟶#_ jP[V%#b'Ja^ajg0{dCQf!S=` d(#;2tm"lMH2(nCT{Y %iu>huhڶr\\bxvX%J2 ;(@Z\C">k9fQd僱-xtmf| &afYN rszR7VGTbc(D.Ԧ̭С A $ZI{?O^=hRj:Mz^BK=a Q@A2s4C94ܫ0L@f*e!FNhѿ bn%rCnpCc$)Lҫ`#+7H]'0FN/dX<,YKi \;#Q 2?0svžA|F mr-h-݄nKQ谘^o/97vOKvXоYRWp<|G6زT5e0^翺 (;Woվf8 -2n~_Ž~!FDyRXB(9tƳ ynx81rE}ɔTй%aSwm4u*ng{=y8w襭>G-Pe.Z~Xgߓ_fc(эaCXSnGڥ߹"+MQ~sNB)O t2oG|T>%x? L6<-v&뢎d9+꣸fWBmfZeZ+kk]?Oyu(kkHMN+w퇊#0[Y97W|#|er!o TRw!7 +9A|"Kd{(ci|IĎ2[TV$~%kBiI9X@4;tXoDCV^5Q6^TWҭoElu }Lʗ^S7#qh{W@gbY4},m旻nN!~ㅼFsO&$KݡSD#*+TEW0ݣ,E`aEHi!Cqե õMתsP!\x8+&p)Pj)+G6ׅ"C_C#fpe'3,,E[jCGp;m| ܨ֯U?,W܁Z,97m)fF,"pMCP`5CL;$B$!1z>|jq>㊆A<:1۫bV9(L`RxǦtw bz0Vt\3\$@i@ D92Mi#uN}Bfl_\S4DzJ; + UmAa*{8APpJշӔ lr{{Qs ;J@IfcpAKjVV}ygT~<B_}3`}jc^NM.Yk(_}[hl ˦wtE ɣb^zZII蕟ERI#>%_Бin \F)B]2Hpklqn[G۽!bU\6`l*E WTP 5 ס_)yW ]Ԅ2 u#!4.-O9wfU #PY\^`RH7 zQuIX-ä#c#8F)Jyb 4Wt$&D{ 1#R㞾kzM÷$zHQ *ƧсL9ӬߌUE+SV1.&#U!}ԚJ; $LӀOz_bEWLlUZ'bTMb겨$v8`U ;E1AqcxIo!>ׂDzj9XUSr"VeH.ĎHaqX'^#FOYYMTD-yCh -CBM~ $FowC $fdSfsa%"| M3k7J*U0Erw1&E?L@ so311m~9a Y &V6j}Olu`4 `nָMP7{'?I*½70F%d <`h*miwȨeI# >r4\!*FU4x<wZ߱ģO'gqI rU#HAP㢕y8}{C oIs:o."\i9]&"ާWy%XeC±VYU[2f1<]7m΅ e70 bfWBmH@!lJxhw2l[(q$L w+惝B|: E2x(}&.`k*nW7>Yy>8_%`TAwSH7p7".}qq,AUc]P|QB{rirz\w<ebu=<|y_PK3:\OtkcN( Sone'2˻ p![n%!bo21wT`\Uevp$bkAZ.xE$ ˠlZ}X+qdrXllQ0zwU/0{MȫXNyj$p%.AGWuc%^Eƶ&(MFܶ٪ Lq6]Q`6jZf0,0>-/U7џO$$w9%a0z5kAɝ'qд˫8&XK8""~5fF "̎#Ps$rzĎRAˠh5P[{sAA:(6h-k &LŊ(`?A(y[% b73S#D!%ю޸OPzfdI1Q}˪׃5 蝬tWtȋ n:-jeklr1 4t/s oT[$CpP8Ye \iw|j$^neG Ոt($$R"W^Cn/8bn(|&@l~΋$-5{ *ZZܵ @]1KXX/-1u¶_l׭f`w.PnEi:g>/#G>'$*c@ mʝ@lb/s7ރ/ lQ>| ˶MޓBIS{[oZ%2=<Է }ZD 4v<сTf XE[ߒsnH 6{r^OS@`i>۞l[ yE.=ŒD:WQP1Lw~$vڧ ,C*(IX*0bZea6$omAeA0\8|P'O?+J`gY .pjM| 4Lvڐ5DND!0Pl{'9GƐZ[_;g oFPMƭa 0eNw;$ҌGeTcFyiѴ93Y3h3Gd'jbj '2S񴹅 %'|[1x D5S2"֯jȠ`t9H:evuwOP?|Ά;x*>i1cvZh3 WJpMU#RPxCrHL$@.'! 'ֲZϊ Ү@6* M ZAtxhЛNmC@R񏾊Dr@^0,pp[V_MngBԥƵ'~kR1ywƨPFӮV>͋Hl;DmoTpyo,m&ʋ}L<XWVF#c ̌Ha4ثZO60BC3eg;?be42\$ Xƃ&:.)`]WD}C0u%9bv*L3bZ9P8ʱ`FFϲ6?,F ē@'j"Yyd}*_<;]Qy,!ZcF Ks-示ywsj/])G_1] Qi!tO.WP~]1%e }Hp#]eV Q$H.j7y5TZvጦUPw M-O MRke;oKSP*(}&.`k*nW7>Yy>8_%`T⭄(%2 sxbLatg_z&=clbj|ѣ/+  ݫKn򵩧*c(gZ|nxXIwU@]< eS!xFOI>vGfbN כ}#Du*t<}1ۇy`i"Zb8%;j6pb~#(p J?wss[pSwN$"dcϵcz)|PҸٗ_bpXZz`SfQ⬈ɆiG3 gTrJx;ǹ򀺙9nݨ}&.`k*nѓ:NioW=)qMmpGXq Fω^\3#]QfGV9 Jm9Qul=NC{ʢoSeF)Jya FSHn4w(-潹 H T4b9yy?SO@)kMV @B2h]M4 ׬ffKcܺ*x1*R ̴oǗ_s^z/)Rֹp-L ̲"hl/"X\6hH3J'̠q( Dݺ4V8v2q)>bbgѤ3_.B !1AkGt.xcRCНZ_UPw MA1[̛"x 4k ^-|'tN ?U9InVLbqN--VG>> נlN"AFͤ 8׉J}}D @T-X 6Z?V/XU '6uWL8G9n/8jپV9 [~K/)Ghf&žɊ'*GU7rmB$f<rL@j jD['y@ӺgЫwC΅z\-y$c_ib5ZKH9zLH T{Ko__ޥVpnN(>' 6"=_JZ/6=#IE'U='pPL]R\mRi= Zo_w}8{fVQYӒdQiJ[ouٍ2Ö-p+8葃>04I0n4u'w졋-"2xcѯ:6(f,⍤@i eD]ރϛȦtW/y2ZxȤ 2s~{$94ib[L`^`QJbMYb:C&-uw ֋dd3L/7Nf ,W!5Sxu՚N>-ԔEj[V b9Zq93 kC+O%"@ oB#@+%o?!ƃýQ7)#wk9سTqX ǟS8(:,mn`UNAG+Ksfif8ݔL|X1REǮHul`;tY$i%tiRR"=_JZ`Cc7/"bR{+/#G>'$*c@ mʝ@݀sHkL}eM["9rhD߁-OqN#Hdr%AwU9V"^;Ɖ.3Vcv©Qӫ:~HzWr0F䓛 3I:6E1, ,K~G-;FL>[LLIQhFy%9E1(SXl(2AOHc%ZL.?6EEaVPbM%yM{2@a`{ ԢZ}t|Kyx=2Vڐyl_(=#*:*Uz@0(Ǫn^JmV̱.^W@_o!<[<]NO&CcAGO`Ž`9hY>IȴjCeײY^h*)?RSģԺDŽ8!Kd X dܙ1_ǻJ̀WBZnX8Ab)<}uuҚK.,b`LkAI#ǃ\ͨD`Ԛ J}-xy$ίi湈4KTwmPcԪ5JqUUqE]9Y9 _ϔf2s5!Ezfm\v &PDgrЋ61z4u-R} =j8UXCa O2; R*<қ^`2G% 4[9It&,CF*z1`+1|o-@|#]d cS6|yo芦dߝ?oyI//fgFׅdcjH) ~eqK;e1qq ~ћI58| ($FFdUT\-̗"N50|R.d@9Bj椉=(|\AI䆛t~-a#ksfl} N0mIRn;S c{c^kVKd{Td:;l NBEϳ.8C9ʬk /R5zý;!Fa<^nʞ}hՄ]v 7"B疯bGQAxp9yk5Qk!oʌRf 'Ӷ)>оh'lI.5D\l^=?ţƊ_ko+ Īyj*.D*nSեTf#Ԇi ƎY׷qmۨ7vOb>zXg?L<`hD {bprY$p_PL/g7Ě1*)?UV#o)y&Dʥ&jP' 7)wOIOeUp1iwggq[`=ݤIoJF;:Lm)R8MO.:HԷjYccW<3Vif~sw B"kE{޺'P *a"qöA[x^u2z̿{-hPvFh 42$rMKQ-Q, “y~.+PfO\g$8O ?o- .DY8h8P,/E4^k~l,BQCc.!AZZB+{+}Q}p](D%JT,loX[Qo_JNǵaPSԲ>c[jS%OKI/bGn[DUĠ2<~Y+~,7Teu[~B5v|) !wHao(ʹB_Jьp݊ Z^ߣg! nRv-܋n2-J#RRM$֏N=̟A{5p׌F&5AS]Vd65*J f+2c{mb9+A'MI,yխR$GGM| RA۪],G8=AA3eDѓ6[TMZ-!Ҷb[5Re|)s|T' D5>)[^S>nIugeDĒW^uOcJٹ^NHjPeEDěP,sIS1ߔcKtfz Χ_9+꣸fWBmH@!lJxhw2l[(q(E='pPL\UHo9}kU}pJ`ZtV]B*Z">᙮zC.kDǬcMPX4oaB[|I{\ۜ;S*0D.t2h;g 815ƠI; (KwcW7cƨz`H)5݀71o7D=`wQ}Bd܋Z k/7a/cz,&Mݧhp3]ǖ'/bT>O(M, ui $WJ2o(E L|ߺgƗqo~HQ8w&6^dbe4]Gq‚k۞:2 \E@AF&k_xa2e,U&.IyXT}m:|8x4^^DjǸz)kOm|Kٮ /4cfh_*ۥvhH3JTfӭS1L6^¿9 @]裩$~7ЛCٖnֳ C{O~9~xyJ%{Sm ûa/kNm_ޕA#A>D/HqԕdA0 ia: Z'K-A/AlU)7"Qoߚ ;h*3,pY97@`$f=_/]'Ҡgy04 mf6-~<@U(JMq&@[;;`mSX!|9y$c_ib5ZKH9zLH PMF.{%Sa_J13*\?-{O<vš_Ґ=IWrDR0xix_ J^$2A1m| d 0M@u}Px,/c3j*{Ez D9\syT90<bYe2RW/񈽣{n\Œ8kV5#_Bk‘V/|$%yI|^C0uDN]>-=ΤM)?K+ڊi{VʑՃ%lC|B`dT [t<Q\f TD l/1H&b}@t2O,ф"{jD; I6dMiE \Tp/D:u6Bxc3 lM䏊oR43f ? {q9̌lH/+U+z2c {;?UT՞ }[Dt0f  !}[[>#euJ\Q n-uPÓ%;}h7"d}CAwReduBvW2$cgWH^;E|mҦ$(+8&fR7p Ԅ~OU@=Q Q-a9w86L@^p}& &M,''7#EduM+o,qQG~>7Ulf[Q_P" )(Eq rpX `h@h\LQ oa^$Bk.f2kſ5s`!6_)&Ϩ[RM+ְ.|*-8y0*#Rg9.e{a#rJÕ $,Qn~BOTrIK9Аajf'?|Zc8` T.""AsQQ}]I4 XtR:~]OGhrm.zGME]ˍ'+$]W]Y_veZzP f󛺇ֵ[K8' \U.P}NBEϳ.8C9ʬk /6(OvтP.OKP,N߇+J8`fgKli m̤ZYw`."CWB0m<,ZX:3 bNbʌ * 1Y±=CqM+E~3/H`dutmX\osn7UUK !VU.⪲es)QYk -^Ďo5( !αluYCZBd܈[;ɷۖ;5A:f˪5_׫A1Wť@3iD$Y.G$'q{( ڇbFv==3=usآD 8vQ0WQ^4݆WTDY djdNT][SAyRXB(9tƳ ynx81rE}ɔX% '%5bXd4RR2q}jdw$1iX̗ =`< /uTUbUf8n|2Α]u;-\%Yl@sX~M}P#F6abaMYj~s4|"|18̡6 ˕.ύV̨WzQTDJ5|~_km\xZME5hհ[ yde`vAKS+[H:Y})k 4.Vb>ܺ9͓LNj ȭ'L>g߸uu1'L~{=AS`3ZS"f"OYNN!ܸAߌEZcc*jعpt;d%d|$MY5Mn1'TL8G9n/8jپV9 [~K/)Ghf&žɊ'*GUR/hx2%蓼h]qB5nV=gmn&eoӴVg?E蹩q(`睆8>y*:iDIQOPäJ,m+eK=\"%qs 3WLS)ZSW ȏm} EZܾxEr"?'ajq |ms\{m| ܨ֯U?,W܁Z,97m)fF,"?U$~8Im( 's';3}n>럁ǰrZrZQүaY^7Bkl[pS^: `nj"'ohY«ĕGۀƠ[dnw*۳Da$T"((iO#e^,gϩn&Y~[EXh1D 6SK\mƓ+.ﻍ_ 2 &+q&6zP Ȩ|tYbۏi\I_Vr5.njWᵎ[C#ίooTC|ɖXl+G" `?`KaU/.(r޼5(JI"Lc +v*VҫEb]gYEĜjWX %gĨBv-BJ^`&g#yC Gg̀d_?d3:8DH mԈ݆p1e42EGQ<r4fAmt1 HQ SEH"_LcՂAY '7Xہ ANPGO,+[CkOE9Y9V61pݺnNOY^UZ7ezna̍JɎ&x+M#dT"-=,)VOꕶey|gQCR~h k:X^Dѵeb'n vw5; iɒ芵zs-gzd9@Yھ v6OcI(l[D[0e?bW$+L @Xπvz,0uxtsv1X> YD9fy%Kv=1$[/RuэqgzX=Byԉg# {o<i-.tIioZыStՒY4Sčb[$, FBM`kf ͝vōd"zn}Lڸ"ddq4JO-NWd9T4^KVуRg9.gG9u JQWm'-e*hsKToa*ũ;ߗIjCR>~#>vgqI rU#HAP㢕y8}{C oIs:o."\i9]&"ާWy%XeC±VYU}-A|ԑ'e)8c)kT2hz@ bSCdT@;%_?*}+;$qʼG I=ʵۃ7uj~qOX,a+X]F3g{fVQYӒdQiɏi- iE}3\#{]^XƛZ4h …1j!;&AjiʠX3y 'pV<0u>]Uq(`dOyGYFp?|ѓR@Oن5cxeH18E]m0ʦ"5ELlvj4dbV pڍJ6\0R/r\i9XޅJn_46e؜ޘ)ٔx"2aQD1Ǝ|.N[jI=ʵۃdΓhZ[bkix,D%chC3WWTDY djdNT][SAyRXB(9tƳ ynx81rEe^^O81ZUCP=Z'F;zSM=B'ǁE.^ JԂ->wީKbDu\ S/&s,2r0b[5ȲV5$ Z-!Ҹe(k, w n* y#9]4@C}&F,O#si5:dž q&HLb:yocŝ Ԑt'iꅹkT2h{yn`.L|bħs&ȩ5w yH $3B3רh_ 'Ӄ)~fmR[U#\{ojni&jE;M66S\_+gN#DR}ˎBh3iYbj '2S񴹅 %'|[1x D5S29LӅs:-r]Kb(a/`V #M'CҲIwgn ]A%m?ޕ}o:TutxS}7 S.3e|6ySlٿAbǬylHZP%%գYONkHyj+4ԓ ouH;XS1ӯ|{YۺO\,*#Eɤ$l/X=Byԉ[H'x5z⎰9,UuTOppsiq=q[ ,@A'*FE/M~I`i!Ŷ&MVME~?0e/^Xb@jERY8Nźi+Uw QCxOnU,|r"IF]Qp/JɚMh D< "Wp VX1>M^=RTB$s}MdBN@W m8~+pnqt.k C:~>@=& Jf6߲,*氈|I` $F 6XA2ywkkz>o "]\MXj"ߺ2TY Tѥ;m1yDq*[a7dRDe{,5fF "̎#Ps$rzĎR!&nKSzӈ2iPE,vz)NUȗN~ew չXvE("C΅z\-y$c_e_PL/g7Ĥ&D(7+XgB]*2Pr8ӹ1m04:/c?D0Xfx8 wJ&Jvvvwn""0b+Bi(_&}^ĽgDfٖĽw6kbNH}K\k(fڵY@Sd֢^]]R 0#}M@g%Q P]E&WSP2 _ ?kM3(HA@!'b25""JE!nFdq5{s%FyȺ PE_5$IG#j N$4ݻSn5l 3X67`]bqoGL`.ʓuڜXWț\z^%ڣ!1d7=PLfH7p7".}qq,AUc]P|О5 zSwTDēFH="0Q '<{8 ԣ p+?Yt#\ ~Tg0o?eeEhOF=Lwf/]=cՖWN?If<78\%'Tuh": yPue'<}12ڴ|\QYоOS* 8dj:C,b:e;c>kEl5)α"Yە2z*wH*C/q÷));CA8:}rIYqz6sCecED?Α{CݒS?fsf[ E)G~pa- 7[`K5NlD[ⲏhr Z=.ݯFuo&#S7ƣ ˯Qo(-%m S;D`=`tO9GWݝΔ~mUUw閜]ej̎ [R%vJ\éĊ!άOq@z=2/?<=jɧK)J6QSXn͆):x<;풁6 d Ժ X#VSئZQ1OqmJᾎBЗ$g bc;슽^hѿ bn%rCnpCc$)Lҫ`#+7H]'0FN/dX<,YKi \;#Q 2?0svžA|F mr-h-݄nKQ谘^o/97vOKvXоYRWp<|G6زT5e0^翺 (;Woվf8 -2n~_Ž~!FDyRXB(9tƳ ynx81rE}ɔTй%aSwm4u*ng{=y8w襭>G-Pe.Z~Xgߓ_fc(эaCXSnGڥ߹"+_2ƲN t2oG|T>%x?Iݵ6<-v&뢎d9+꣸fWBmfZeZ+kk]?Oyu(kkHMN+w퇊#0[Y97W|#|er!o TRw!7 +9A|"Kd{(ci|IĎ2[TV$~%kBiI9X@4;tXoDCV^5Q6^TWҭoElu }Lʗ^S7#qh{W@gbY4},m旻nN!~ㅼFsO&$KݡSD#*+TEW0ݣ,E`aEHi!Cqե õMתsP!\x8+&p)Pj)+G6ׅ"C_C&rZ <$>/o!Tf^.ŀR&tnc%mE4=eHr!>hxRE)mJ4`B5ٻuOQqt>"AGIqOq%N}n;/k@3_ol͇ۻF d:]N-HJhCeiL%QxE{ w;],J`C#\IMif>޷8\y4;׾xS̏K~j묒G !$0檍coYA AK)G $.IXpIQQTb_1ePzRmnQV jڳƭ BKk?YhLJT.K^2|󿚾}*ٖC~26>V{1^ie^j"VTWRW)yLRz,N.X]FIsNeO2㰑ֹp%iaʐnri7?{'*i9$_%eH0Tjo_3G[Wu}1J0p*vyXD (P>:)]ם?.״9D=#".Ɠb.}uBYMUYʴ9h+ 뽞+jOXS&c5؃{&>,\Ss*;ey&Kħs&ȩ5wrKrh9ڟ+îS/ ;wbFv=?z@3yCZߥwVK.*(Au>x' !Isr"L!V5]'hW(V'~s(qV']̥ d 3TG@46Rq-,I`%3phOVC[sXD>d$ۣ^tmPba?W.uC2~!'2wX>;vwsJ|ϴ/Akv .tR=,_ENx XG~5o!y$hU= ek( HDtap3t|}K Nd~F"Y8 ,0>-/U7џO$$w9%a0z5kAɝ'qд˫8&XK8""~5fF "̎#Ps$rzĎRAˠh5P[{sAA:(6h-k &LŊ(`?A(y[% b73S#D!%ю޸OPzfdI1Q}˪׃5 蝬tWtȋ n:-jeklr1 4t/s oT[$CpP8Ye \iw|j$^neG Ոt($$R"W^Cn/8bn(|&@l~΋$-5{ *ZZܵ @]1KXX/-1u¶_l׭f`w.PnEi:g>/#G>'$*c@ mʝ@lb/s7ރ/ lQ>| ˶MޓBIS{[oZ%2=<Է }ZD 4v<сTf XE[ߒsnH 6{r^OS@`i>۞l[ yE.=ŒD:WQP1Lw~$vڧ ,C*+f5N#h`]L6ԁ:?%>[UKVIp{&|X e׍toe&L zp8>[\K&;bg ЗI69AՓuJk@$%JוC+/S%,r8V(ϑ^3LjQO\/">9&)jr#IewĊDāJaÑsq\F?rZfTDi\T>{rjQ.Z0#OG{GLԃkvxzL9)܄ ЮЩ >\A<@@;®pԅh0 p5XhVg #` ;q| n%OUm( R=֞!g~B3 8:v#r-vo#{V8ox?(S2K5eb=EۺGN}iVm1dyo4ӆrk*,o喆r/*s\Dh7 nsi4_[*>{q×igy[H~73\KcP>2=}ԯ ^"#JV* -6&ة\IE= R|(yx76.Ett,C7`(|*QWi0ERXud{#68KVDAwt4%YBfb[<'*}-{* (,Q?l; WoWm"ظ.ե; e%'=E^ +^?'*y,KJ?'wqrBuswQ!50gI0۱ \H2g -$>lޅu]bJ)T& ه#txeܞZסt8akٟB1cѮ(,m\d9v5EvڗeAisNeO3{TRk(+AJ2M4D9%*S70bԝ˿$ t?;Cp ̸ $F9Fu$ ( `qJvu?}@>$7Dw.4tSbn r2UAYO]aXPjHٲGU15^s} = R)ɲ*Ml~}>jvU8^#weZzP f󛺇ֵ[K8' \UGbw3_e=+J(Fp|i2Y_A(4״xZ">᙮zC.kDǬcMPX4oaB[|I{\۝P V4P~x,~w<8+O:V .*K2'J~D8>h) 'PIzt2pb.eSN瀢Ϧ6;p5@ M2@+@VSLTGmF Op%.AGWuc?wN$"dcϵcz)|PҸٗ_bpXZz`SfQ⬈ɆiG3H|zHzV8=ϔvC1sYVptw K|QMc"oDlc:Íb0F|J4*ꈋ28 B̐RViʋcrh<;U|B/21JSPb2E.qaAo5.Z@T袠 ٣L\1|9KXjhjB+D"o\ji^c32\$(QWkU^eָ}6ee@n$T$r?fh}Oʼn$nc>&YXr8 d GO2)u#j$4 6ȤO3BbP\TB"Y<#:>]Vt,?;ao@3'7k?fsNuZAb@T§ߝr]gp|Q-kOw {q M% ĔY{g/! m-.r&HAG?nB__C͢U0>>Lg893dތv\V.a.MSߟqlMfUX!na (ګcDGPW|OviU_Մ‡˚D@ l `[5RU[Q[~v6Eќ6T,bWMʼ.2F)ۃG_z~XAXOe "%!^\y?x,=9^8Orͧ]`#6@$<+jPk|m=9 ăpmzNO%1X׆/(Ok{[cRiX; "6Ttc\mYV$O4-ο~asH^>WoW$2G5/% kŭB2 ȋ lcCZF}{`D|$TOfWN)/2ٕe#Vk>4,iny6coq| N4z$`ό3 `cn I(b }bk̄6Atk΍ *iij'NA0r){化2)-a(EL_ENx XG~Gws}21ڱj{ ܾi\l˯W7v WO(C:u%9fثs֬gNeC#FƓ y$HP[d`Ы",25 2AI[*.qyTM l)O,2f? iIqiݽ5kG bR-Oz:\^ 2t}o2rlp]=}0v,,\V'qT~37B KSw<ٚFY!e>#_'TqR&@[I&Zj ]dT2jOpcҖ zȘqcO< .{P[rb`wq Fe\(n{SVȎkm\9>KSzӈ2iPE,vz)NUȗN~ew չXvE("a43H_5&(Ld 暏rk ~me܉(Kkc:V`eޅdD>Οm1ǚO8X&ݼFCmaPoθsu+Mq$֕/ *Z _;!=UGCPa8(s3BKv ZޭW@K_0  =;@m|}t[⑸V !rԗG£x2SL1DT(V@iY*ǫG#mY'EbۛkOM? xKMVm}o4!x`?Lo (+Pó9j6gmEzWg{Ň>xfvd\.?Xq,/پ*r_wxƔޠ[GpO cM.i[ nyQJ5{H @h.a9sgoGvӾp7o/!x1d=nnȽAZ0I8bcrƬxU s0[ V:jU'C&3‘2Pw$§"VEո)x5z#Zf&mcR'Cߍ&k*Pҿ6*{OUl]/&s,nrmZX)4_Kmwr~# =Ϋ#NQ_ 8g?ȭtj@$:x1B"RK5z}A"_M4YM$<^m<|X4<+B='%?iبѡN;k(`"4Mi7Rt2Kᴢ,{M?{&ͬљ.w6pf 7-i47-J $01JJR1%.i̶sMXTcWvbZ5܀F\Ʀ !cl M'ɿ:~!U$%__!6 VԐR_#{k*'zvCzy=1$ђC;oBE k -^Ďo5( r{j<  C ߨ-O)۷mO3S}} [Nuæ"h59n4 w)TmG8"O8'A.G$'q{( fdhA[&A2͵?}n uOQg#gį.[ oB#@+m% ׬ffKcܺ*x1*R p"$l ^RqtJR1%KErD9W >eeEhOF=Lwf/]=cՖWN?If<78\%'Tuh": yPue'<}12ڴ|\QYоOS*)F2+ӦZ3覰$P .QB<,=_/]'Ҡgy04 mf6-~(%k/-c[UĀ Dba)`_6[{saA;2׾T'm~\Z)(YBi{6JT]keH|, ;gݛ\> 8;dXUyi"7w X[W3Ce28(CY7P6$!>5sE`'Hnl̐tD'1}Q4xnL Ц!qd"5a9P#:;5x.,G ct yTU "d?t'a|E`J"c'GP^79`/W_{~rj;H2yMgeXs>/cP>X+L w:Ē?T@r=ػ2r6=|ɰ/t#d f6TZ!Uh7 :dm1 ݛ{if5Q!EfL/LXow?nTMeGѐl,^̶Cý%:4)n* S%>n8mv|?!s`8*+) $unZM`T\?6PxNgLLf]$ =X8I$[ dn@RNRsԶ^мs!KHiIlI:.F։y($k5!)_<\4o~D]N0Kgж3d›t?l2zK^yqH\H 79 4fP4b/2A$x5E7گI୏+־%y ڇL !J}A<-Kq:is''В\ "Tx]?|c>m廐}DFQ"aF5Z4,A99qxкr֠jHٲGU15^s} = R)ɲ*Ml\0%ܮ?v 41BppѬ]:O^ swP֫wg|R ]O ?R\܈}|9UtaC7F 0Us_Je{~)Cg,sp?Q98McK.a7 L:ջPŀ\ Zݶvˮ1p ?g@,QSF,%ĩm$ߵ[e%^`1U|(":îOFzox:䶾v\>+,]y䆃>'_z{h 0-K| gI|]IXOGx>PS'-۵eZzz2gI{4--E54"q<`4@h oB#@+%o?!ƃýQ7)#<#)Pr7;f^qbN* 15v Z (1bJ:OJjıVpidQItc54/^.zx_rꨫĪH/1'k>pe#x"wA[KZ~5EFl  \›t?n-i\2D5bqBlA+eZ]Q®b1 7 "Tj&vאۺ %؛>k_ (`ߴ$M^+JV-B41i tR iL]k0<}ts'Aٶ˦ZN}ϿqcO< .{P[rbfE\DC%qѿ_4۞Tձr+s%vK H2%M4Ih0k\ l$4v%.V8^cO֩Lp&Dr8^!pQ|sWֶy_nSM%}2NU䏌$8^dKu'x?2jܬz;vL:ߧi'ϲ~gcsR)Q=U M =; y9$ȹ{Ze,`.VUwtDDR ʐ%,`kOsyu"[6Ul9r.tb=6QzGTukWL* +n@J?EFoה#OcrRpQzmvnI0;z!ː"}Ն./?肫l%:CvME +2&*hRst 1.fˎό÷ɀPUBSh8%.,JqP\g#D^kC`ct<ڶ ^pf1Q|\h4(I9ȃK ehn2َ v!5$IQ>gjX4Sv,Bĩz股~%iL=6QyR_trwN˻0ֵCnp $Odj޵}UXdȶeR]OS&Rl"5t@C"vcQ*pP !&!'_ f+K g'Lx~)$h$7Dw.4tSbn r2UAYO]aXPjHٲGU15^s} = R)ɲ*Ml~}>jvU8^#weZzP f󛺇ֵ[K8' \UGbw3_e=+J(Fp|i2Y_A(4״xZ">᙮zC.kDǬcMPX4oaB[|I{\۝P V4P~x,~w<8+O:V .*K2'J~D8>h) 'PIzt2pb.eSN瀢Ϧ6;p5@ M2@+@VSLTGmF Op%.AGWuc?wN$"dcϵcz)|PҸٗ_bpXZz`SfQ⬈ɆiG3H|zHzV8=ϔvC1sYVptw K|QMc"oDlc:Íb0F|J4*ꈋ28 B̐RViʋcrh<;U|B/21JSPb2E.qaAo5.Z@T袠 ٣L\1|9KXjhjB+D"o\ji^c32\$(QWkU^eָ}6ee@n$T$r?fh}Oʼn$nc>&YXr8 d GO[\K&;bg ЗI69AՓuJk@S_x!//G*(aF EMQQb[g $~S [};YP5پqRɎrΌj ^eFi+ϗnK G+g43;D3)nu!,QGRᙧٖĽ]ED uQ '1sG|&|Oׂ"pԉy7* ?Wp/nȴ!z+ %b>#Cqly8 fTú؂U 9(ɽɕE ^b$F ^>f zt/({HT]lJn7ul yBMEO ff_Y,ٯD&S[f8wNz@2.#ƾ.DΎ{H6i {;;Pd=I2%$$TJUUAI"@ysp 4`3I 8mhǁUZNw5ԛ9i dz[ VP*Dsяi,@ 4D35mR`х}|?}n .~s(qV']$7 L:ջPŀ\ $"dcϵcz)|PҸٗ_coKSPuyJs"5-Y+kW YN8ΜֆF5k~!'W HCleWTDY djdNT][SAyRXd$ R@Kzj֎$ĤZ9g\t9ڸ"ddq4Jໃ{`YXNckfnI̖6n* y#9]4@C}&F,O"PM: aO:,L4jekr)CvK/-S!_1p)=㗑ǣԟx1]N )lqy{^:l'7#⺤Vܮ 6Gs|G>Z' j{W:qF@-3#*P%"ʴ<]tI4O̮q+H^vYгC⾀K4$ݬ| QK_a))f$f ] b[;+:ֱu$ z0(V7f/U Ɔne 7T,?`0sSM\-]>_xTkF0m8Sƙ ڑ0SʵWY$S ƚXsksLge8ƵbNK[a&+Z 1 ꐊ0?Y2vI(Zd:NF-~Y%wCR!W:c ޚTk mX|:( ͭ +?cpL=9T^80mzNO%1X׆;N=tt|1$Ks-示ya!=0ݘ7w >W1HX>EESI2oΟHUi Z„v##[**\TRfKjSW)2X^N TgJеURD͔r>ZvCMۺU?Ja\Fа5kٳy6 >'mtz$7Xz LՅz1ь5W|芲\2SCsdx' !Isr"L!V5])ʽ ޝ#^g}pE7OzLI4d.;cБH!ZsW#(p J?ws5O57 jFz3vSh_`]p鈥2Z d[ .]cDU#D{:SE54Āmr)6Ɛ~˽Q+ hd4=zY0Z2PjɣDmrOBu[j?2guS?`TpkYH+˃[d`Ы",25 1z}B'ǁE.^ JԂ7HI+:W]#ԌGmRoܑf/O@Yf&b1SяS]ًyhqOCeӏjuŏ !|EII-r&i ԅ ,n݂b>ܺ9͓ ;}.-jOZHΡ)^`~2T=a{ O6;LL61)Ve/ʿCN"NNj@NϢ@,[ E dHl̽tJ$&}=ض&/{Z %Ob@X-D]w•ؾ%>[UKVIp{!gs ULʫ*8 +$ J%3Q̊fcBIbG:q-8DN .pjAͳTO)+Yz&}FNۊ!|,RG ¨kZJʥr/t_[BЋ57#3.%1's 0ܯI̟ҷEYmDڼO$ϼ Hy_Z>jvlc_ (u,>Qװyh0?C_#43q,|Q= ɢvt2B𐠁?Ẋy#.c:Dw*͐S0^n],Iw#Fg%t8 T:{IH}3i,n:r_ܝ,cʏǓ@hB+︂&l:OLkIɥrK-e oW'+rwf~A8뜟lr IϐI 䣶XOvĮRM`i)Deƅd vX*\a0KX'|̆YxjI? jWYSDhN%8K Qfe>O][Nj귋|}xivg.l(0W1KqF,K_v~V 9~ahuSZJ+h |$y[7 Y5< <{ib4} 6MB"\1nVO0lj*V44rEE<' pOQ泥@:˂<t׫1wfLu|~ˀ Y0dkB«\/xÐm3)3{$?M -qjlf{Ұ&]`|4CvpqL 4}`R_)FfHb0X[OB ]fEɚ$P"5`C"!M!Rxygr1!T[$Cmj5dĶksX˫JST>O~Ahj4|Sd s;}@ȵ \ Π{)[79+ J ؓj\x_#jf5iz±VYU~fD@p&n)2vak^=8<)e(E='pPL\UHo9}kU}pJ`ZtV]B*Z">᙮zC.kDǬcMPX4oaB[|I{\ۜ;S*0D.t2h;g 815ƠI; (KwcW7cƨz`H)5݀71o7D=`wQ}Bd܋Z k/7a/cz,&Mݧhp3]ǖ'/bT>O(M, ui $WJ2o(E L|ߺgƗqo~HQ8w&6^dbe4]Gq‚k۞:2 \E@AF&k_xa2e,U&.IyXT}m:|8x4^^DjǸz)kOm|Kٮ /4cfh_*ۥvhH3J'̠q1L6^kmy @]裩$~7ЛCٖnֳ C{O~9~xyJ%{Sm ûa/kNm_/A-\p[*]ġyt!$|PD)HzZO*™r%] ң0H*Lt FhYە2z*wHI+^AjUPJ>$vBz->>{#%9KR RxeHہU0C( .i-|;7VT`45tϠ1on?`ڙ)a{Z4N)5ECK*ebT-M8@u;˪.)`p? O HG|86;Tgl !#T܆ wNoZ3dO՞Dž请RhY\غ*z1!g9.e{a#rJÕ $,Qn~BOTrIK9Аajf'?|Zc8` &7j)02* xd-!L5̟ [LBIs<7PIttF݌w)vfAk(!Dk7hб6BgZ*"Of9-W;PRpSs*;ey&Kħs&ȩ5wrKrh9ڟ+îS/ ;wbFv=?z@3yCZߥwVK.*(Au>x' !Isr"L!V5]'hW(V'~s(qV']̥ d 3TG@46Rq-,I`%3phOVC[sXD>d$ۣ^tmPba?W.uC2~!'2wX>;vwsJ|ϴ/Akv .tR=,_ENx XG~5o!y$hU= ek( HDtap3t|}K Nd~F"Y8 ,0>-/U7џO$$w9%a0z5kAɝ'qд˫8&XK8""~5fF "̎#Ps$rzĎRAˠh5P[{sAA:(6h-k &LŊ(`?A(y[% b73S#D!%ю޸OPzfdI1Q}˪׃5 蝬tWtȋ n:-jeklr1 4t/s oT[$CpP8Ye \iw|j$^neG Ոt($$R"W^Cn/8bn(|&@l~΋$-5{ *ZZܵ @]1KXX/-1u¶_l׭f`w.PnEi:g>/#G>'$*c@ mʝ@lb/s7ރ/ lQ>| ˶MޓBIS{[oZ%2=<Է }ZD 4v<сTf XE[ߒsnH 6{r^OS@`i>۞l[ yE.=ŒD:WQP1Lw~$vڧ ,C*+f5N#h`]L6ԁ:?%>[UKVIp{&|X e׍toe&L zp8>[\K&;bg ЗI69AՓuJk@$"2k'eH|~e.%PM(Hg-): >e{6Ytk2s S#?)3z1u/3O\bxF,H[)AT ##dCtad?7422?8WEqpЭ,HR&ӛbO>?#c]2L{KkOF I f %,)t&iCܙ:AL7<2BWDksmjGu,xe ;]cL NډF}vj;5#\\ݾNy(:a$% nI,JIE`L(Nw]L7MX 31_ǻJ̀)C 9T^8N%?'1 M]VKT(qV GR SO, .apiT\ciL[ pgV\Ʊ 2҉7@x ԅ}j !ߕfyFJk9TWҭoEl* {ⱯvFg0RQ1~ Zk5H+YEY%=?E㹅柳 ,_jobWQA<0-z]NFMߝ˼vh_\xIQ}loM7ssgeIN5~:PsYIƷ~&4hl&08}F| 8Tf]勁F?(8Ǔ%8)n!gQ.d!w5p|GC^pzSJ1_0`lehr>RY.1D m Z;K~$ 5pc5؃{&>,\Ss*;ey&Kħs&ȩ5wJ~T\W7v WO(HxI>0z5kA@+nZn,㼟/*XqVV֌gI1̭()]$e}Lo#^[hfhѿ bp?2ZH&AjiʠX3y 'pV<0u>]Uq(`dOyGYFp?|ѓR@Oن5cxeH18E]m0ʦ"5ELlvj4dbV pw@FAId~`}!5I5*DtYŔ4XgVV9RLΙ-{TcjG%7T(9e=,ꑑhѤQpK6404*ꈋ28 B̐RViʋcrh<;U|B/21JSPb2E.qaAo5.Z@T袠 ٣L\1|9KXjhjB+D"o\ji^c32\$(QWkU^eָ}6ee@n$T$r?fh}Oʼn$nc>&YXr8 d GO2)u#j$4 6ȤO3BbP\TB"Y<#:>]Vt,?;ao@3'7k?fsNuZAb@T§ߝr]gp|Q-kOw {q M% ĔY{g/! m-.r&HAG?nB__C͢U_icq/|2ڱ礭ӸK@oħԄEMJfsf[w!vWGCD$6-? c^R&ܨ&W{d]." mz`)p|<%?"NJn\p 69o%re+}W7{;M c a>p{_D\ ҳ8}hfD@p&n*-HxU, j7rjfU筣yc|@Yh 5zgj{o}N $09])KP,N߇tI0n4u'w졋-"2xcѯ:6(f,T_ާETX:|e)P<3'`MvR/O z7S aM:Dk>ü0i4ĭYM1Ppr՝t|}K \yglqCšisbj 41}[)̋0Էd\$se8:s,gZ4-V4`K\)"E =3#]QfGV9 Jm9Qul=NC{ʢoSeF)Jya7)gOHkMKM.Z8fjxmqj"Yyd}+׹s郱fb8?ŏ3qPu'2Xݺ4V8v2q)>b]B4 -wJwTw )G9!|<Έa~Jvvvw Lst`V*4دI^|p/h^HпyRi ҶewĊDāJaÑsq\F?rZ41#W ]&aV*(S 66^4\$-2.^ - LÇ^N/[`qỳ"c-d( "< !Lj08$dM)8ƻ J M3xT TvEӧJY{ rMm}9,AȻ[gWgj2ӝO/B–b39ì+Id6@֔V1<Pxk]d~MĴ uZs3ևQvYPk[Rq!P\X26CffZuoVl~]Yo,9=mܺ9͓ ;}.-jOZHΡ)^`~2T=a{ O6;LL61)Ve/ʿJd-d 閤)>I˥PO:ċ!fnWItL Bgsٍa"h[2[TV$~BdKu'|)]S5_Ļ`W#}6۷Q&ol|D*$RxyЈAYy12Hྠ4^1o+_Ft? ;Qhg?ЩW@nﮁɨ2[XxVi% fvf7S fBXWw\޻΅vwp 5$|5Q,T7B*L֥7z3%-S[s}L}Kff7ܷXƍ.ÉNi̎C&`va^2J! &#oپ}ji#df 0?#G ?5W y9:h~ZJI5s4,Uj$lt nOᅵFD2q S-$]zk1\|6tyrH5upfNO|Y+8y;_[|7170N5 =K?.m`H{5mc|o@OIUwr&xҦ3}?{Q“zT$u8<cۓ+T ռl QqIIP6^uHwE](F{( -cB#kX=`.xx=TUv7s)ѓ=混Ò6X٤o`dU,8QJYy>8_%`T:[Z +.mj! Bmlc-xp=g!FqWc1(VG7L@fKU68AbNbʌ * 1Y±=CqM+E~jdB,H*shŝĶ*9*5 M`#7` [ !X>`Ko\ڻ%E k&ZMi h fڒ;'w A6e*Ȍfs'sjc5jZ@&Kn PrzY{##>_VhTa/Tq/ ۀ૩Ƅd kRm6:Z=H6$xD!Uh ZLAI ^V?gxN3G^)"vx+;/sב<qZ4ri_}5k9Bن:7d~ݪZ-!Ҹe(k,!pAS&<-twͥCW^Cn/8bn(pVrpJbiYn!CC̖"SOs^B<#n׫,Q4',g}<62_ L$*šksBd@@:M~k̖r aèUoZ%2=1T92J-AGcF`_% 4U'? гg+e:T &y!3Ű܏Ǒ4Q{yj61 S $ ~wGl-?54$ݬ| QK_:,ZƷ!֫Ii/IS R/u俪l+V"6:>&veK|Nܸ=RQ1}k>–6sKݷ'Xme]|XEf&f[ (t6۵{s]bJC}9@}hƲLi6!}`Z$/47BP0Pk  G+g43;D3)nu!,QG߻p` >zo^) M)@@lf~;ѝc͛)5!Ğ7@ r8~WGKvCeB1ݠhUE@ D92Mi#uNRaav^EJڝ"f[f''mPRLئX-՞3q_5 nY\k3\@+. lKů!(Rtd́,p}ܸǖwT2#8B h#څ- fۧΟ|-yjsZ cƊSf7,UJcP-i7;|٢BM4#xk\XF!f"xX3r-$V1!@bS2JK 'R$ z}pM֚,o a_#egU3kLtŇ՟Fj)o}HHXw#yӫ»FdƵ x"JOԓ~2r7sJZgVX!iW{q34sPKv K_gw&ts[;>FHf4(,o_saEh%:*y:no°,U-~@Li\Q$_bGFO#cшPiQy;ݷh:3eO)O]CAl4ܸHta?$lڎl6$ ԶeK{f?ֳʷY:*~3arVj|Ϯrj;H20^15$1:pb{h©x-Xڐ]K$PĘw Xˣr}'=Y;!.p)n.9'3zn7TQ|4"^K:31{^aWTqE6:Hr[Yqx$cJ5MC4--Y(QcghIŋADZ-s]TpđYOMt.5QcAv'V'nC>FgY2'+U@((HjVw\l?F&"ȡS@M9d>T֙_⨢%q)'-Cv/:>9\M6GҥSSnn4`Թ2zK^yqH\H 79 4fP4b/2A$x5E7گI୏+־%y U_Ag-e!GԐ@5E+?y$nGU"ov̪&G% =Wh)|(#^T.:gb"Ԡìng@J&ِ(f pxуd&LݢSd:ּzqyRR xWQ;Sxu՚e!88nPL\UHo9}kU}pJ`Z.|o).nD\>㉄>Xƺ \bm* x%2zxYvft ƜP@rјj9jf S1n1`W5CBOLq 5F i rT3'y'u7SoNڞgw4ϼBmLE#Y Tѥ;m1yDq*[a7ezo ˋG^9-IlѴ 5w0ȑEk+ӥyLuF٫h= <W F~ <Dw?eި䕄4wsu2rݻPL\U&tǸ#B.{SXHb'.# @4 F4*ꈋ28 B̐RViʋcrh<;U|B/21JSPb2E.qaAo5.Z@T袠 ٣W`02+Kl*YFN8ϭLF;zSM=B'ǁE.^ JԂv ^Y7".t%넵-kɯ]_h0!пU)K#Roܑf/O@Yf'&rU߹|y*V#Уp*8 H^kmy @] [?SʚS-Lͥ /=Dm6"=_JZ| 9if؇.sdh;6ӹtڃr+I?9y]Lz=I9!SjknT@2= ֣cxȹ}뙾Vd.67|:7+@֘sʚ.Ens]? zY&-Vf k@ļ9jc~)[ :N6oqC*߯"~obIʼd  z.$'Wx\P[Y[nɃYaÀ}$ՙOli|rA3l ʙ5 N]# ѕXܳxh]D)hh/\ my kFC!Ѷ`%T N*s1Ə !\w-ڍt[kO`ʜ'@i)wIå ʩތӣi%sBfgmgĎO@QŧOz/dd3is A~JO cSAp3je*E_Ց@`-s#7+\xkң^'\Jel/̖]AJ&}+.kvYM#x)"K./]G* F@&i '9V$O4ȬVIRcrM:y- o4a1pKt(=Gۈ BSFXGla=Ub#,JD{;N|</g+qo+z+ꔼ)=Zy,r.^cqrHd2zKGyz=|FB5ҔuI`i"D~JjNZPԇzϝ' ݝ p:پxd-!L5̟"N}k87NCiA>+{-G8K;e10 Gioo b:yocŝ n`Up̯9)pBؔd&PIW>ʟk;Ni r?bFv=?z@3yCZߥwVK.*C#@ь;/2ٕe#Vk>4,imdrcK}‚Z{bbgѤ3_.B ,B:8"'8^7Y?8%p5〇Uh(Zog@׏N0<?*J@IԬ'pR=p-s'u:i܆ 4X "D(S3F,9f#~ц`9m f;yx3jpsNNj@NϢ@,[ E[?Wوf|Ot=4ZfG"TK'}JH\\_q~{+z:X,- 5ۏ\op$l~P254;sC A],a;P/ k;JjÎRVcZ[jR1&L܍pߤmHSS5_Ļ`Wuv};wGi5cON18Զk p7d݇yLUl0(:nM~t3y%9E1(SXl(2AOHcIj*!LQ+~zz,UXcDd o٪'^bǎl=&Xyn̍A!)c{n &&b.iaRrj|aFGWR5S_CI|H{RmWW<711¯/ Qp/JɚMh D< "Wp VX1>M^=RTB$s}MdBN@W m8~+pnqt.k C:~>@=& Jf6߲,*氈|I` $F PC[?~gzQ` (@̟ɂ66H<5O/l1U4x ,ccT D e4@pKy7Vu ,~Hh3q+aѲl# i͉+îRw!qn2,RՒ[pzՔ̱hdh\X}/5p6Xkx̌uDEFXH)+}Eձ94*!M)BLx>!4 .-4hA JE㝶{UC fNNWM ;^ϦŚn<>*ֱfAAԜckvp9Z\3H4>d` .=u D(`ߴ$M^+JV-B41i tR;~U7X.9y]Lz=I9!SjknT@2=rρ_~Cr>+EmdzW>qWڹ 4s}sd29Y;R*C/EDD r;kpTPE輻i՝ ?$=n+[#LIeQ"jFb%x·ם Ys&w-q&Dp$Gʨta %<<cmHw_#{k*'zvCzy=1$ђC;oBE k -^Ďo5( !αluYBݽr[_;h~L.Fetnez(~Cձ+nmKaj邐}MG#&٤eO׾k|i,{$_~˽Q+ hd4=zY0Z2PjɣDmrOBu[%gW@=R.!00[ũцWTDY djcqr%6\z[u*ل1̛wZ+ca/NRT[$CpP8YXTcWvbZ5w~=Yetfkcs@8RR}3dH !q­j%w`"w.sdGKZGVR(`spj̕@XF^~͎*-MAuzm ;pa2ӈF2+ӦZ3覰$P .QB<,=_/]'Ҡgy04 mf6-~[ujނ"%\`,s2K۶[OOmXT C yFmC_Q{lqYs \ uXtuzi}Bw);[ Z݁b9tG]\(]U[I/-ŎP\uϮ,k#S{6!|kA6#BC32L˚um7(]gr+X5SIoiuz̘N8nUAp|PTxygr1!T[$Cmj5dĶkoQªP|8i& F}@MpgLCe739m䡼t'*ߠҷPAYO]aXPS T`3I 8mh;05atx~T2l"(}&.`k*nW7>Yy>8_%`T:[Z +.mj! Bmlc-xp=g!FqWc1(VG7L@fKU68AbNbʌ * 1Y±=CqM+E~jdB,H*shŝĶ*9*5 M`#7` [ !X>`Ko\ڻ%E k&ZMi h fڒ;'w A6e*Ȍfs'sjc5jZ@&Kn PrzY{##>_VhTa/Tq/ ۀ૩Ƅd kRm6:Z=H6$xD!Uh ZLAI ^V?gxN3G^)"vx+;/sב<qZ4ri_}5k9Bن:7d~ݪZ-!Ҹe(k,!pAS&<-twͥCW^Cn/8bn(pVrpJbiYn!CC̖"SOs^B<#n׫,Q4',g}<62_ L$["nF牴3ZLyͪh_Q‰j:C,b:e;c>kEl5;LpPϖZΜG LJ)d I?/eVKE&qMۮyIAѿiځO>󎁧t7ZV̟=:  K)D6}^;(a)=x?r&stЀ]0peG, ??(ۦwy?C˺q-@Vlu 6[%-Z6kA1"^ &8%PX⠧b*/yb-z/WRG I /dGк=A 8D|x8+&p)Pj)+G6ׅ"C_C RIjKl$4aS 뉚zۿ|Z<{H#S~ ѹW1"?J؇I2+!Kog}m~ e MSPwd"M*Y;r x+t/@ ~-K@֊.a|21,/I$v8`HtZ9y:WntxmFD֜`ѬPKg 4J sS{/NBkGƹ|al[At dX9iҘ=<%+8٪+s/Ťզj5wbz,MQ`P !(^3U/&e+F n1M 7x0z;uvD%?GR*1B¯J5)X.S6L`e"f\_;;vwD>;(`%sOٱ_0cxHHgYdwLjg><]{Y'AՄ.M5!YWHp6J%aKn@(}TE}&q ^h s;P>_Ն%PMX4jPnMUBYcK1M[j/(]pKtdH$2ˏ2#)} c@';+HYW#F6e!Ъ)Z_J#OQ%qT͌J3R߆nT6`+1|o-:fC`CTWmZt4[9It+/.; kV&!fs }LE\0Q>FU4x<wZ߱ģO63}(, 4sh8t;^t$-PNٕD݀䡼t'*/6ekʃY,RUx7TuݘliDڠ2a89o0l6۴JwG@׏N0<?*J@/]#j|CL' I=ʵۃ7uj~qOX,P]/ 0%ȋg\q0sXAv>_#{lP\Z\5YXwO W26q.Η7SӊۛB3 G-@ Jf6߲,*氈|I` $F A8]dC@O4d}vSh_`]p鈤{YPK=b4gq-0/0(%Kl1&Q/C ?qv0܇:ű -6XA1CY=(0E}zta8.0\5^dǖ`[Y^g1Ǝ|.N[jI=ʵۃdΓhZ[bkix,D%cDx\hF{?v3#]QfGV9 Jm9Qul=NC{ʢoSeF)Jya FSHn4w(-潹 H T4bj&Pb`0t<ՉbK1Ho\ji^c32\$(QWkU^ctN|+:FwEpea5k9Bن:7d~ݪZ-!Ҹe(k,2؃.Vʴ>5X/72Å]cnEGR+M~!uqhK7]wg*ySC[ eٴ؁eq綹W]1KXX/-1u¶_l׭f`w.PnEi:g>/#G>'$*c@ mʝ@lb/s7ރ/ lQ>| ˶MޓBIS{[oZ%2=<Է }ZD 4v<сTf XE[ߒsnH 6{r^OS@`i>۞l[ yE.=ŒD:WQP1Lw~$vڧ ,C*+f5N#h`]L6ԁ:?%>[UKVIp{&|X e׍toe&L zp8>[\K&;bg ЗI69AՓuJk@$"2k'eH|~$^UL:Dؾ"_YLb/h^[0;>Ezd2 Eލ8qYy&OVe Tw&k/UkBxH(t͊iuY>MQJ1A LеL,5Q&YяWX $Z<:)пSҽ;ݷ,=iģ5W"qÎIe~o=hwv޴NBmgO~5W­XEH)3mp%Q1Jv!Xr& SpÙD[ɤjq_"l Q"ҨK] T2| adז` &揊\auPE c#鍉?mYIByRX@K==ɫ#DPuxhB/h؆|:()#{AI')9JDr󽞼rsq&D{BC*J:~Y>mƹLY5HwKƑ(i q8Ds ;,)sD՛jO$&%P<^6w Bmx2Zry}mHƒQض- -$ap˺)1O~ĮIV.97iY`!b`}ArJzbI&_<9j]%z駏4@\+:kb^rvNpw/̒iKi|{M="G6G] \Ֆ^虶@X9}DŜYκY$/ 7"T?f}Ōz _FYqj_Ŗ"9s]<Ύ ;׹s5RIN[(LU4:'̗+ L߀URww.2>8}F| 8Tf]勁F?(8Ǔ%8)n!gQ.d!w5p|GC^pzSJ1_0`lehr>RY.1D m Z;K~$ 5pc5؃{&>,\Ss*;ey&Kħs&ȩ5wJ~T\W7v WO(HxI>0z5kA@+nZn,㼟/*XqVV֌gI1̭()]$e}Lo#^[hfhѿ bp?2ZH&AjiʠX3y 'pV<0u>]Uq(`dOyGYFp?|ѓR@Oن5cxeH18E]m0ʦ"5ELlvj4dbV pw@FAId~`}!5I5*DtYŔ4XgVV9RLΙ-{TcjG%7T(9e=,ꑑhѤQpK6404*ꈋ28 B̐RViʋcrh<;U|B/21JSPb2E.qaAo5.Z@T袠 ٣L\1|9KXjhjB+D"o\ji^c32\$(QWkU^eָ}6ee@n$T$r?fh}Oʼn$nc>&YXr8Yba89pU+˂)Nk q>N&GV0IRLQ Fvjy5a+1#ugp 0m ^ƼORTmK!-J}1j ,!GuyA¨LX92 'ra=txWUF7e_ZRY}O;C14-LT9W>2)u#j$4 6ȤO3BbP\TB"Y<#:>]~ AZq'A~J0A\QHz+f[3 TO\^?3:*`XVA+F*^©HIPB=П"1_m!1Z>?cA7 .08NRTJ3{@ASY94m$hL@Z8m ?ش E쌔|m.aH/Ijr^"#nbT oQGLEAqYQߠ @Q:+nĩyNwJLZ8nR*Fo_6?P"3 $y,Q V vhnC2vyfkf ;/MoH 8ҊT,'5 r]f{ɚnjI^7:,)׾=o,o'|z6OsbIk:iϚ%YO} ngDX&Cő{a%k Kto˨؋R>!Q6XYa@&f;Y~_hnu]PW3I䲩eVp_!47V`h!xc.QN!]"VTWRW)yLRz,N.X]F¬iX斟|>E/M~I`i!Ŷ!uflіc Qx rE*Lq"[K:@=b Ӈ3Pt11¯/ Qp/JɚMh D< "Wp VX1>M^=RTB$s}MdBN@W m8~+pnqt.k C:~>@=& Jf6߲,*氈|I` $F PC[?~gzQ` (@̟ɂ66H<5O/l1U4x ,ccT D e4@pKy7Vu ,~Hh3q+aѲl# i͉+îRw!qn2,RՒ[pzՔ̱hdh\X}/5p6Xkx̌uDEFXH)+}Eձ94*!M)BLx>!4 .-4hA JE㝶{UC fNNWM ;^ϦŚn<>*ֱfAAԜckvp9Z\3H4>d` .=u D(`ߴ$M^+JV-B41i tR;~U7X.9y]Lz=I9!SjknT@2?NN!ܸAߌEZcc*jع|G>Z' j{W:qF@-3#*P%"ʴ<]tI4O̮q+H^vYгC⾀KN<3byL~!bfF)Ww^5ѼfM04if>G -:Ӂ1sT:'*ó/FcX$PSg('= g:s5ܮt-==ȰrW|ΛYe2RW/񈽣{ R~ك Ө#: ]x`-sq*}ʊ+O(CsMlO zaVrӨчfX.{ݞS&qAZ|[fACJpp)Zo4n`pXV&bWi<5Q/U@;fN! e4h=ؘ6)B࢟- +˄ ΢:لu RXA 10"an]v[;m= b49J: Cm)YНMfUTjM# 3>o>u ~y6mYP"ڔy=t4[J9AvPe Ya]<"mfEc՚Q\eEH I 6sr3hQ^)8pXm0FKs-示ya!=0ݘ7w >W1HX>EESI2oΟHUi ㉄>Xƺ e#YW<;Ӳk_w&zXE'l`z)+XNyj$p%.AGWucDtap3,=t/ G{_ sn7^0 VLlPS'-١ɂђWM$ek<"~)(: 4p!p A-N5fF "̎#Ps4苍#)ۭ VH (Adc[Ztڥ߹"+_2ƲM4bѮ̞ +3_.B[$LA kTX+/<}ts'>v]ZlD*:CCSPXdz:2H@lv>QjmZU>cSרh_ 'Ӄ)~Ʉ[#Pc-H SX|(KaLuB͞ܯP3A϶r?DEw2 AdH >ȗNR2)D6}^;(UVt,?;aHyStBuE3N1ɡ$Ա#Ra?DW*wVϳ"t1 su L[FB.7zJ;D 8]K:~ȚM|*;%;K;;<E2JB V|)$9%;[CݒS?fsf[ E*RMd,^@S: ڇXC 1sORkc7.Z4N,L˔BcFdp#K[μ&T+4{֘ڑ(%_&}Wt>-j8i3@li#~.Ci& Y}>jnԡ Fn_3tIs` |}\Kxm; I}1SJ1yHh*RZ%A t5xJ x+$wsbcӒC6hH3Jjɉl!J2dU+MS='q#M-"&1= Z᙮zC.kDǬcMPX4oaB\̖<2lq܃@ĝ)":Ul}cbz cPVY Tѥ;m1y+TTs=0|Tj$Gn"Co};>޹-wYJqLQV5_-%wN VLlfREMW/bwV_"x5=hJ %O klr1 4t/s oT[$CpP8YBNMxZJįW5Dž^q.tQᆭ7I\'Mxx!tXB+@K,/'*3EЧHX3{<%?PyNF;ZݯW~Y'hOXϜ.xleRB$IHUC 1;0ȁtXb-@QM"Kd{(ci|IĎ2[TV$~%k˂ם;xgPŠN6ԕ:[ms󒍒dQG J1W.$f:' \Z)(M5aKxD9ۓdi߁.xo,"ѳ\ hT71.;UL7h{nu4C~fgz8ZHbt_\uiH0@7oAu(Hg-):N.aFv|ɜ5e+Txyͯ5HPɜO3I8f1@נ ţDZ`9ԉ20=esQM?R#܁dĤOޚbDW+W V!68F/ڲNŷ7dvvUl+1MҎJ 3#?a/|lܹhD8hX2.Q 'D'@{ #W r(J=Kjp͜xKcLI42ݟu/T%$K:nwI43޺>Zx àԌGKs-示yˁ+KTsMFa >SI&".C(BATS}W]Y_veZzP f󛺇ֵ[K8' \U.P}NBEϳ.8C9ʬk /6(OvтP.OKP,N߇+J8`fgKli m!}!UR-f,c1'~JeFΕ[_ma,XF&?q{$]02@:l̺N6E.7Հ⹷**I%g*qUY2K"EfmF~g%X1][l{[ >*+y3gv$5]!amyaizAx ~˽Q+ hdvѬ]:OFL;pF]\(Ƒ7N"]1GƁha20hUdpc ӕV8xw&6^dbe4]Gq‚k۞:2 \E@AF&k_xa2e,V CI CX*. TqZ*! .vƦz33%OX1]UvY7Dg o~D]N0Kq kV[/_fc(эaCXSnGڥ߹"+_2ƲN3(M2lKsU"s*<8UެF;F!$Tp* _wWyĻuHv⧕4=e Z[-J}_7{kU{lE{,rZ+kk]?zvmrVAr:zrB? ܩ؀dz0F)r3}''z'n\lo toW"1籕5l\8 DR Sv>MZ&[ &݉yrՎ7WǓS& Nuz5Tl+|U^E%۔#3IbdLy#*)<]tI4O̮q+ݓÇI3쟢\ԸEOUdxS|O~PLgWZfU?/ ?YL !sE(IT_p,n'$N"3/Ґ2K =,v,H8Ȧi94$$sW6.Jy¥*.a2 $޿!I_~d$*cX%PX⠧b*ݸHKyPQMEm%*"N*`?\}*&"Wgl_P_,JY1q/|ӋQ"`2g bJ"^D|skMxR*>?CňF/˔y8+ WChVß"F.޸k~GV~2`Ҹ| ԣd\aɼFkmyHm7yWǑa%7h6a?e @Į ?5XM4ͥn+ @tß+z% &T:f^Ć09Kimó 2T/GƫHieaBeIs<; uƍ +@ 8L؍ȵ۹,XㅿrlL3_de/i2,㓠5nDv!XdaV+ :&vv-9bxϱFfCaŋϏI$|^(4MǶ>U|cM*ObMC?F6Y@ጤ?e5ud=}f]>\$+thtr!LzB \*m]D7@`\$`nIvGXk8d_e@jfZwĖ1!3h`Ƃ7ge,\6oA<-Kq:is'@=b Ӈ3Pt11fx,KC:qj L.lb[A$9y6qgB2UA3+o6 \ %<4;6EIUϳ⹽-NӰjyBGzOѬ]:O^ swP֫wg|R P>c?zKeiEH՚9&K+%f~pD^'35Y1w1ќmiF@(S+zG_ 5 " kSO~Uq#Q8ხ`«D"x:4CC挟}1ĝ/ 7K.G*/l1U4x ,ccT D e4@pK`*5 M`#7` [ :MѩV#,]y䆃>b}m P<0X?bT>O(N^MJazʕ`>tm k"T?/IA)eTE}^"NJ_ɷV>?YWTDY djdNT][SAyRXB(9tƳ ynx81rEe^^O81ZUCP=Z'F;zSM=B'ǁE.^ JԂ->wީKbDu\ S/&s,2r0b[5ȲV5$ Z-!Ҹe(k, w n* y#9]4@C}&F,O#si5:dž q(f px7:7I\'Mxx!ng "yz&ӌ.ʒFCR{u+\Oru \cpΚp7?!M*bJ0;T?36Ѭ aY߾3 &oxaxC8ŪǙy ڦe(ơ2+ӦZ3覰$P .QVOvb"<]tIT"+8ϻ8qHvBgrzƭY=ęvxU%2nvbP1T_Ry&04/1(^jYlf(`^ Jmom;`n I֕U ;`+°" z`PzKljU!߿Yku!;CZ\"ð}dCQ|ʓk?=v*Ėc<\E>i އӪ㤙@hƥ10/RxT]|s7Ѽ]u;-LkBϿolbU;/:ˀ.ۋ؃|dQߛ>&&b.iaRrj|aFGWR5S_CI|H{RmWW<711¯/ Qp/JɚMh D< "Wp VX1>M^=RTB$s}MdBN@W m8~+pnqt.k C:~>@=& Jf6߲,*氈|I` $F PC[?~gzQ` (@̟ɂ66H<5O/l1U4x ,ccT D e4@pKy7Vu ,~Hh3q+aѲl# i͉+îRw!qn2,RՒ[pzՔ̱hdh\X}/5p6Xkx̌uDEFXH)+}Eձ94*!M)BLx>!4 .-4hA JE㝶{UC fNNWM ;^ϦŚn<>*ֱfAAԜckvp9Z\3H4>d` .=u D(`ߴ$M^+JV-B41i tR;~U7X.9y]Lz=I9!SjknT@2=rρ_~Cr>+EmdzW>qWڹ 4s}sd29Y;R*C/EDD r;kpTPE_PivgV-jMu7QCK5:ai{jQI֗X7puҭF˽ \ȉN})>c59qJMo;x1)vÅ¡Eߝp'VI+^AjUPJ>$vBz->>q Pf8lLW-vIL7ٝSB,1rz_$6&n@`D+BR`]0 ;ܺu}Gi"x*}YW ۱Ƹ=̀ %y"9ZE5Xު7Q;j,ؿSҽ;ݷ,=iĢ]55):F;9=gfU^yJ}i} 3'U~v:"a*5?iHE(lW`P1=so`KZ BnOf@<ț  TI: ~9pIpoæwr lWw@=%QIʱȚ}ɢCB$,`uW,+\:Llц m{S{X|[(WHQ-usVPқAjGif7{ /~ƫ\db! luI{Hǜ7)ab:Pأ깒4EӇsOHfE ޛU473 !*n֚i%AiLϻ{b.7>|$ɃeIVavI}0&4G:UMFvn7hX1Zu6s}5lmI!O츬v)[kr*J :6tfiDZ3Ddk{6E^EKʊB܌r-T_ j!K t)ZjHٲGU1HiwJR0k:0fmw;6o>&' D]&C9!F?7:1JoVKa 5yڟZ ˛>ϸa *(|FYHUO={)*{"bI$Vtv (ބA Z FˆjQßCb뀲z䶾v\>n!)Q"bWFۍ3ջ 2dFL3J9I)*!ʟ}J6tYH'R>8zV8=ϔvhz2`d筓Gf>_J=ί€z=H\ CkP``S oB#@+m :"HJm,BU?/,3 cm7Vz"_Ŗ"hH3J'̠q{ ǩk'tz5:dž q"|g94AjBZ7FJKD1k]?c[' PP/0?V*'&TZVO+2wI e_lC'HeWL 'lgMaH]-2y$Y 6{r^OS@`i>۞l[ yEp-vڧ ,C"^;Jձ N<@ M)bѭ&R/tz#{JOyF`x)>&:p?DW*9lks^mf*AΉX\*ˆȈȡN-5S20^Vj<4 oOwtoq^aMvQE` ra]A^+z ҟ/r-e=*`]&LWyڀ~cvUcsLkW}]Dw̙ijXfEȪnVt--V>WpE= tmԽZ- ˶U,E]#QgO{i7T[Fbdऊº,uu$0NQ)/Q| k2(n,#Sz2Ѐ6JB;a01얍 |`&*|gʙ BНSISW'h姎/˧/k,re=bQ c P8ӖKrt6BذN&HE z]xO=YO05A\ڥ߹"+kQ&%_P|(}OT5NoƣO4Hb0#t%hBm ??gZ/i o% =Wh n&b~ǭZ :zg ǀ=ZgSURɚMh Dxلt x dC1sYVpt V;+iQYvkokQZochfhѿ bp?2ZH!r wT`\Uevp$bkAZ.w#S'?g@,QSF,%oǍQQPRk9nbHo z[z䶾vg*( o3Y2mD? [Hc@0\5ԗ߯8,-[0R(VDd4;P+R׺EF64^qBSީF z# 1xU0/n]N4#'cX/fߟ43i "FY'C!׵ @_]־d XM\;tq:I7{^hY| ;pR֟iM(2-?,3ɯ]_h0!пU)K#Roܑf/O@Yf' : b7km* _wWyĻuG 8%p5〇SMbqR.d@9B"}c\B9kv\CdO>Ic>s᱕JZa$wz0!Ts$ VET<7Eg4uū` +6?:@k--5}?ܗY30IE$V㦹>ݫ[tR0 D@5g3M>q !u|nQ-as־'ncY 2;?I;V A 7 8@n%(| V]6 !S?9?VMöp 4GGS' {A%-hFae|$tCAɔQ0 unbYaȩK0^ȕŊd_(#8r!o"M $[u1*U7 A[e [g5Ը ubkjlfdS&΅0reqsvKznjGu,xe ;]cL NډF}vj;5#\\+&,X*K72Ǟ2B.'@D~N +؊ޕ--oU@E^Oʼnr^ven̛vϨʰ#%m]|^4Ǹ15uY-QX$'H|7MSI&".C(BATS}W]Y_veZzP f󛺇ֵ[K8' \U.P}NBEϳ.8C9ʬk /6(OvтP.OKP,N߇+J8`fgKli m!}!UR-f,c1'~JeFΕ[_ma,XF&?q{$]02@:l̺N6E.7Հ⹷**I%g*qUY2K"EfmF~g%X1][l{[ >*+y3gv$5]!amyaizAx ~˽Q+ hdvѬ]:OFL;pF]\(Ƒ7N"]1GƁha20hUdpc ӕV8xw&6^dbe4]Gq‚k۞:2 \E@AF&k_xa2e,V CI CX*. TqZ*! .vƦz33%OX1]UvY7Dg o~D]N0Kq kV[/_fc(эaCXSnGڥ߹"+_2ƲN3(M2lKsU"s*<8UެF;F!$Tp* _wWyĻuHv⧕4=e Z[-J}_7{kU{lE{,rZ+kk]?zvmrVAr:zrB? ܩ؀dz0F)r3}0|3̻iT!{ =d$Yϊ7vB^#^#Kp̗դJ-AGcF`_% 4U'? гg+e:T &y!3Ű܏Ǒ4Q{)CY(CzNe S $ ~wGl-?!bcZ[jR1&Mw:U*5Y|T[/zJ+t1*1A`yR -z)b.K~G-;FL>[~L?${^C5&Z\VM)Αؐl\(JT]keH|~$^UL:Dؾ"_YLb/h^[0;>Ezd2 E\%@dGQRp!}j+ggx`yì *a|m򶻍"FV*Y *46zr_XvtιR=̱/"L||=)KnJКŦ]@z;݌;O}3'PF!ն~u:8%섚mMQf@N~+<=<&C4^V[ tOUd?WQq)ѯIOw>aͿ`WXDi鮞lFذMSm ^hx s݆#1`+1|o-:fC`CTWmZt4[9It:8(/^ϛH_u&Rbi9l-1TDC2\߲53~ V-IbKPOS0DAQvÖ.A7Lॸ?IFIϠ xGҙ}M(:|}}<%GIgl5&ax1h- GO#_'TL4fkcs@8aeBQWGD\ ҳ8}¼VߝWrpJ3?KMZGIH!)=. X:t1gM8|[&K1DH%R٪srh0wo(r;D: IH({=IQO/(Cū2t+UK a1c?p~ΠX4ɇhG-Ӆ^ U78!}koבIe? X1S$^HʼN\ͨD`6lڼ"<Y  AsMQyd8wLtnvYгC⾀KN<3byL~'WnJjr ~69z"jFb%x·ם Ys&w-g @A`g/! m-.r&HAG?nB__C͢U9=2CcUG>ᆞȸ?Cd9[$(+-YZ|YQrSQ+T8 cʨ> +G÷6P#^КWAryYP0GŤSVK^x"*rGj"Yyd}*_<;]Q(0cYdi\0fYN[(LU4- s0ej8H/Td࣌\Y<;ׄpn=)҃|W0'xyxk@⋁zV`g6LhDm%@1ebjŝA&ZmB•0ʢ#c,oh ""w LM[o`-)a_D4x=ۃs)s_Je{0f S1n1`W5CBOLq 5F ŕ*߹ ;誋XoE*dL.E@p}Q}[a2HsQgw & X+)*\5.@oIcCAK1[ 𾶍([aSM.lMT!^>uf"u%9fثs֬gNeC#FƓ y$HP[d`Ы",25 2AI[*.qyTM l)O,2f? iIqiݽ5kG bR-Oz:\^ 2t}o2rlp]=}0v,,\V'qT~37B KSw<ٚFY!e>#_'TqR&@[I&Zj ]dT2jOpcҖ zȘqcO< .{P[rb`wq Fe\(n{SVȎkm\9>KSzӈ2iPE,vz)NUȗN~ew չXvE("C΅z\0 pDiCdf>Cq20AL27lɁON18Զk p7%-}oN?kHQmlA̾E,$l 3\GY;*Q3l:#Ʉ %)]܀1Yт[d̨PbM%yM{0:#B9R7I$@Jd^)*pV*?EΌ]ǽq2Hʎj ҈l}M">Q!"HFBer05Z'>ez2'8`b0SV~o8lui#~f5:ݬ"+IWgS2p5.IM.X@`p(u*8ZrR[ר X\f4e#-}P55x͵?S뻂jl:n}ܼ✧@'eW*w0UBl1KԽf{9/-I_x+3٬) FRMfߎVBpwMZcK ^\9sNeO2P>Į9*wbsBC>dޚ %:R6"\yk=,x]E6wIefffffffffffff_lgW'S:\T(2 >P:lViʹժ ˠnIeZ5q`{ 3!dh xM'J*pWg|@eOOpU2\Rtv>B@3OXsNY  3p#IRl<JV|ȑ$)ӝŵoKbɑ$Y{wu~&/:ն=IC1-}b 'o]HGqI-#(#)ȡ>"fj,O9-I̔$Sѱ`L& e¼R\ [o؈J0ӌIlK#샬Y~#b @]3,TfWxO8@x'^2'ȘlN,XZIh!.ɣUN5ImFP;4J2|p;tJ0V2bTb˽Ѣݐ\s(cDRbl]e ʜ4j-n9?1v0pπqT_ bZ9ws*Đ# ovp'vay@th dHG,65 Ӳ"Ý#:\HOÀOW:h#(Qȕ }TPOѮaPE*a\L!*[?ئZ]Dmd1J ^aCu!@ ԃ̖ 蒴=yM_H͂ݮ3dh 5mH@qeTys;L7bB!7 T:c335`уi/v!9ӴOg$b,D;f! ɜ(i>᪦ɫl(ױww ӼǞ9bnuO&v(3f /؅rhİcQI&gC\`4W_x#{qw[*I"Joֺ=}b9\J)qM^;RJhCrt:0MЮE0  ]{ u|Eo"N%Qo|HJZQztD50aLFC$XЍxw!$muEZMg|;l\0Zc69b\Tydߞ:>cQ^V{xR_*pJ|xkjooЦCDJ"aF IOks-998^.^E*ݜCdDх"AZnT D{Vl+M?+qn#.ЫqIQhWNY@>RiG1r6FY瞻"Qg_a^bZ3% "jѶ'P gEaP حxtS]?|.ʼnڢM Ck?w|$$V(0Q.)%6=`6l+%)Bk_+حܙs<)tw|[]$&ɕ)Ǚ2'4$[ic[O~>T;Jd L,k?، ˝뇀Wqh gb3g_@W'=!q<`I7JsHUfD HRg/xȢ]k0I;;]C"ź`# tm"%'*LY_-^HO tCΟ3qvxVfEnRd?Bȥ`rWoX!ch+ -mgyb7'ÔE3+Rb`I_Eyw:L\J~fӖ%)^Qs /;JvlkpY@d};| @?ZaM9n- \zbM;dE6a}TZG=ilٳKcNrc濊Y%0CX̯m:E{C[+.(ӛ v~b9Ysb2+vGuZ,sl6kd-e$wsX}Ibz]ǰx@ @W ;*<0W(-avS cuxH|eb}?78Ddʸw7\ߣ=ƨ=6tpRJٴ:M_qi+'\koȈvD Y\> WZ }FeWۓ琏G0qbP]+DeUwϋ0v?V ]KR;_f˩3X :('Lx|ԂxA;F>+"9"*< ׂ).Qޒyk+ >}eCr==-0Z\s΢͕Oz9?@}ço 5EC`o,~Oa05=wΉS&H 8c6>>6vIpf'qX :ƞ:ف z30v4x.Y_gEru!N5vUTx@F^e-DPN8}EN5b%QQH;r&wV}u[Eh<`ʹ= p afIcX&7x.l:&vUPm9in-;Ҭ~A?k6Yp,pΕ'KQ|,`f!MDXd۝. nq}1?2,7c >o#XYH\׸ֈԗao}tYNlj7}ʬ )Yh,ELo/{]_o fp,)\YpY"eʩC8ҭL-.u fBgVy/KREu9:\xzi8W˴vi4q|+%222K%i^6a%h#9ҫLR`0if.d< ExiA@5\=ڄ´,Ja1i~eijei xO8pYaٴGX-28ҫLb`\)r#jBًu TiAkp=coNSܯ@ћ˴vZ9&]2.9܎@s6:Az~6L MT/]S^d*U4l:N?3 ԴUn8^&4CϦWԽ,r0if/ W#q-781'8VmK.Kx6:lv #mAM"IDA,$NZ5dAA9CH|f`Kb,W8hKJ%h4+V:Rw~.1FۂM!& U{$Қֺzd aZ´Y.}>#^tD=o_ciKzs#eJC}nv[i: F.Bcxi:!{tF ! a&\l0p%l> zLNxFz ~h =O֩:Zc yZR$ZDvfwhU7xzFX@+()riR˂x:~xfwfIGs'Hrpr:ۍ}DPX͒!1)s'`K98wB9֌qp`wfImݺjkʬW!?{MaΝPNu齃YR?]<Ҟ;b)8wB1'PX͒!/Riϝ<98wB)־ Cc5Kxa(]f0ۤ]bX4e2uOT1[H! o3}hj>XI xƺQmc4~?vC9g@F 1j##u*è#˱7d_ؿCEb&L݋/Q?_h,'bK}O~*( "oؿiߥ .ț2v/Gd_¡&L݋/Q?_h,'bK}O~*zJNv|Oǟjl̒FQ-'3ҧv*O~(L݋/UʤNߺ"8?4ؒsI6^3bؿiߥ -}=UA\Avp@LCBhae>'bK}O~([[Ȅcx+<so=s,O~(L݋/P 01/wsWEY}O~(L݋/T4S "oؿ(!\409(:=j ( "o!ׯZwV#B1p Z6"i!2Ƥ67t)-^hb!; 5TwCILs ~)\"kUh{? ĒI'OzJ(0((((((:Am! djKNp(6Bs@C0>@29l4(AEPEPEPEPV/jV/jqRن)\"kUj֡)\"kUh{~QE!Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Z넿-Z넿-qKf|pEUZ|pEUPQEQEQEQEQEQEQEQEQEQEQEQEQEQEkO趪kO趧-j/Vj/VGAERQEQEQEQEQEQEQEQEQEQEQEQEQEU?>_Kڪխ?>_KڜwaZZZZQHaEPEPEPEPEPEPEPEPEPEPEPEPEPV/jV/jqRن)\"kUj֡)\"kUh{~QE!Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Z넿-Z넿-qKf|pEUZ|pEUPQEQEQEQEQEQEQEQEQEQEQEQEQEQEkO趪kO趧-j/Vk[!BbRpoAI?_ٰWJ4Tiߥ >'bKhS}O~(L݋/QjCEM?_2v/F 7d_ؿ4Tiߥ >'bKhS}O~(L݋/QjCEM?_2v/F 7d_ؿ4Tiߥ >'bKhS}O~(L݋/QjCEM?_2v/F 7d_ؿ4Tiߥ >'bKhS}O~(L݋/QjCV/j2v/JrvjJ$Dކ`ՏXMP bottom-0.9.6/docs/content/assets/screenshots/config/000077500000000000000000000000001447252316700225565ustar00rootroot00000000000000bottom-0.9.6/docs/content/assets/screenshots/config/disk-filtering/000077500000000000000000000000001447252316700254715ustar00rootroot00000000000000bottom-0.9.6/docs/content/assets/screenshots/config/disk-filtering/disk_name_filter.webp000066400000000000000000000333521447252316700316550ustar00rootroot00000000000000RIFF6WEBPVP8X ,vICCPlcms0mntrRGB XYZ (acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBVP8L"/vC$56Jf ̜|ϭs"{*۠Yex2ӍȲ:`2%qt5L|Aɻ0ḿR13^e -t{ Քnk5%;F;9EWʅhko.2333o5]:@4T,J܍d ɖ$1x.X$x$kF V!V>S|`*Xvbۛ[T2b)/UJG)50*}6 񗠤8c *3Qwџa2e/u7w]Kw,kkQ"PZ^辅Kv^;,CaorBknWE$гr-E'Z3-0t(ʠ\2=~^oЪkpr5)0Pֈ-ݬJ<.+Qa﮿mK\xTD 2Ycb5k.YbXS!( M_]ջ2ɸ[fv<λcdž ( @SSؙ;i/aebEs@ /{Oȼ3PϺ?CS_+%#*v.oenk:3sWVH$ o;l,%2]o<2l ] %%A&*Q'CD""Yb{SV'>2E=g- ƙ̱o á,19ޝ(+9~~~@eW.*߫Abw㳞TGS[wֱDKE*>w hxu\׷jw{  ]̙ffYkzhJC/"OյED 㲻SߧU/hv4 jjҏt9Ń jvt~Rmg%ZO@实CLC5G,dxp3/ D)#6F*sz t_;jMfrВ9hnJ@KwvDmܖݱ 6:uji0FfR 7l`Egrlp|PZ3.`g4&EۼM6{Y~.~C<ѷ}R t\_91|9fP?f{*|AgPX%/V4̼{tSgΊJf4?ЇU7gq2~A+7WZ#s&Vn=yٷ > ץ"v T:)QjVأDZMN ?jڥ!=yE3ªˏ ! 6phkpZJyrėucHmKNj+9d$F4 1b㕚+ }앓d]3r3'[V_{^RuOxid2I-)r]<>c9vin0ֹtUX%Viur,o}Kb20Wr;dk5<[N%mX%p5p1(vo3wռmC_;sh[f-tUڣ;ȗq_y*Yt;aT c \.ʛH$h,2.y2ެ: ZLaocYKH]?=:#dQE3Ol>A3Dq&ȢMps>:Fo$}nU|ck풚e[_KSǺK;VǘjsǞ鷺 Mܛf r`گU,oj:>=Bwgްn(:h!V1Ä^x5.Krw,4}0~c}V2ZxމL֫Cm6Z*,;;/!q̅d 9Dw Pս쒱*y٤R7m񼤧tCTWu$ | Fڙ]S1yySW{dl|2>Ai7ֺiY7k0s^sS2,Lͼ\g3QKd2/T:Dot^%r&iWaǞ0r>S3t zGɧg,rP љ?#GͼB풫*"5j`ZOYG퓝T^yS:܏AV1es'38IuC!BxYi7y.bodS- -~5VMMg$Q#ȗ<ʱ\RX;»y'ՅuZw'cYDD!6oMKm.anY荦oDu;;OyC]2Wp&ś.q' s֪.J*E`,.X1%{q͞*+jٚWN{6ECM50nYey,sj}F*5B~mVXrwчԺWtw~l"&rhHdi.̤^P/.pۖ($ Z5Z;;So' j9u)C4&N$ePSA L_K.eNH$"GqN2;s2 g܌-.7ۗtz܀#_rO˙zSu.H|<GHѰʚfVyc|Vf<4U47X?-R)@" ѽYM->U,5 D&ӛxu@HO0%hk4-R@Su"]YEٰ@TeL@dF:l Ej@MXp*Y3{jf,l 2pFa]m}/ª$Pʟ?,w`덦oDu۰Ot!{Y͛HK- ujg&l R5a TssA$w(@›||r[qP aRiP H my=fw@|ìVyheI9,1T"jnߩeWmcVX \~__tZ{["^j)@ꒅC(`,哀 K#okcf_DPy . o5ưߥf;W(kh}h4ĺ#QztZiP HMp*' M3G? ;WnK   iQc`ԅ;Y\#8cr7+EЙͪnYFne3v.EXIFR II* w(1 2iCreated with GIMP)[)[GIMP 2.10.242021:06:21 22:44:30Created with GIMP*z JFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222*" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?"٥i hd:Aܡ)sUFKF57SLw矑8jq T cֺ$ m R`*in>?ET-ByBR9Qo&T1&y*h:E 8_oq5!ߧ?e(4(PX'h#:sCcQ?}n!R ] N0򉷶cw!>y穦q5m2 sO Qiu TW pP].}Ii\j% gv gSM4*.Px=qZ9֠8 /$dcNiӾϭ/Gϭ/U(rQqZ*]' (cbUԎ7 1U:uYNu.y >=~hO-vƳX7Z]/#4)wmvc-q rŻV5^ƣܷiu RCSp9IBDJcn8>k3QrQed)ec!p7^ԓlY'Ol~5^.*%Sy$HhOk`q`D#O~0=.bDoWsUi3U,sQpQ. Ì+1Bmf7fU]}GzVSAh{V;}F58whΑtyi5yMA~!q\Aqn&T =꡹%Je!㌃hsm^HF_ix V0[~ywv i|[QhZ!ƣpe"S<~Խ!Z?z𯇋L>L~[j!4̚ckRņ =Yx"BxZ_3?M_xd'^IW!bM$ #coix"j|Q?Uc|/)ϧNU*=?j|]?UUš 㒤\8JMN${@-1cӷI׏/5?=$x?$lTc|#b OJ~ȅZ_3eAK$' WA;3'-}kX]$ pqG^A? N aj|J?Uc|(..ZX+cT4? ?ggiŚg$?5VKsFnɜ9.JT0Rz}N0ݻO@GI׏/5?= xq2X~ATc|-l sҪQ_U?=w ϚCUXxS@:=>|꼮RxcOF;dcqC_k S~?zD~ZG|C1>iWL^XQE|Z_3?UPO 7t'WUoQ bottom-0.9.6/docs/content/assets/screenshots/config/disk-filtering/disk_name_mount_filter.webp000066400000000000000000000365621447252316700331050ustar00rootroot00000000000000RIFFj=WEBPVP8X ,zICCPlcms0mntrRGB XYZ (acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBVP8L/z,5aFJh=m݁ 7,qwR?uﺐ;'UR4s&9]Q:nGVt%1X::Cnᬟ{ kyVIg5N[ pօ)dNJIݳ,Kdκf* Phۮ ;ݥ8eġml,myҤ&fOmsЉZz/%@d8@ P6X"*L"%͒,˱E4F&-}LɣOًG͞c?eKv4̀ͤg{4M8>~NxcҴ8u%)qBq;7vw@uзmo\i%ȿNZa*Ґk,2X2t4S iLUvx7Rs<̡.jU7%2FǦ壏=oǺ>>>@*?u ];'d iڶkD]!& ȥm]ߎ3qmmH8b"q+3F;cbnf MqL$QT4H\[ڶ7Yw0~/Ѱ[>^\3H$ yP6BMj?[j#+?L 9lE3d&>0"lWV`o54.,#?~hjաf %.YNa,-kuJ*g+%˶n>s`n[[6?M{& r#RY8ҹSĕ&WMYh)21`P)oL<[t28i:_3w giu>W|)8u7pPxwe]m@2eIi{^yu2s ..0 ۄ^p8{g?,k1C<ۯ'F,KS}.qJ(|O.R]a>w='}3W:8Iw'\%tk~y} PΌh+nؔ$,`SxEqP'm%rR6qw$5l^hR<MӾHq;⾞x z 6icch▯\/N<$d^I˼s㳻 ؎7m{ pBI}u {g o~lH5pMtڣ̗q;9@Ko E%;&JVRʝm0ۺZ8N+"=^ykkx . t;LAƫ"3ϟrwo>Yu-̬ SEނ"9kO51f qEf|# BiImAT\|opFo͐taJ)Gdpa"tfׇ|:27ӱ;.5w%0c igR>L:+YsgTZ`>w-! RS!Bi!{rNe9xON5#ѐO *DW]';Youaʐ+w;-KWV1tg :'Vyop$VHJ>c|ɓzFD|ύYB5##e .Lz>;3}?8C GG9 [2|eKNgLQ^Ed@@V6!kpF*<|pa.N{f /fnt "WS`^17bg@!@'@}15v=!Ҩ_mӗ}+[3,dpa.-7g t%kDAI)b\uѷ'}gHd熫O4 a}Y >\*#ye4+`S7GMsiϬ!B%}:Be"g@,W>8Rc0_O|˞]ܒ .L*bNaأҘ]òKZ.`7ˀg %t'/a Td TR ˾meud8pSc8EnhdX0$A\dLǫnI5 2\-Ǫ3y>3ô@p5 @R^0BjũKK)umx."rw"_֜wtsPYs:g55' ֜~N>/W +Q+Ehm6sи*&QF:a2(Bg0vPhoZ[V>:@4'!Z8# 4AjDbIGAc4n6EΙW^Mx5g,B(gP* F=6[>׿@v(덑qW<(f,4lMh-ٚ"m #1< @R_$ dK~mQ^h) bܨ…6MQsVNt x֡=<(/Ck)g V'r= iT ̋exGx Izt4Ņ&)I R0MQs@L邺֏Ǩ*ik6~M_#&ʓ"*& f3q0i ,fee:`@UV E)I-d]C L6gM (krڷJ9Vܞ'J[CLS :BDxM<)¾R:mV3t 7:?_W/#Bhwp\i;'SM͸:a-F{ר(5j+Gg|d'#Icxز5B@(F+y A_#vZ.YHmfj'Zw %}흂V^ o0{+ɖAYcy0]X1" Ze DB+MB3#NL#1Tg?f~DTTyRUMdC0z~ײӘ$dհ"7 tZhm-iAO+v=SO@A=`eo5KqOm6Մ61i߮)?j0"$½k3ϦyԬxvɫ0<"nϴ5Jk83Heooj@Wԩ+kXo~omD;zll,;&m=un+h }RZNa[srыu2l˛ܺ5|r9&Mp8?\~[ޟdnra~-ybL)#HQWA@k½K1NM#G(SDoݒP>AcK oG]en˶rHc`<]: (K5tdiBnX_f| Z&>w tfB(iG~ _JQr6xm)=RN6]vk^je4RVv凩r3UKۢnFoAJ9le/.KudN6)tjkXn^ɮVÑzRʰ5#vװКdkJ4;ncʑ[-כJyB}6}n? ~w)/)=o0-WG Fh8 5_HSFnvk|+mѵPk;[ʗD*:YC& HY*bغ9 Y8RQdȗ}e ӄ^G"^(iG~@dk3Cs,@xP38;í-/QRCcIi{$yrޖ9DsfMR<߃N"C_ᛛZOѲg2יWTW4ݼ?.\}ۻ뵝=P$WN(ղm8bӛ񒷔(iG~5@dk3`gii gR1,o,2ýSIyԒvJ)it,} ƷCdH[ R?H)W%%@VK3Z]RkW+++H(a6H+v!ow#} X.x OsY(rsqo/q@O-dW|ZNxRIB*6z)=Vy9m(vho~Vg>sLr$-.!Ye᪒^2&o<߅W|&7W[a'uN{~B㑭~V+#ЯIĵ&I+EJztnNtH)w8H/>>|#wm iG~Y`kS}|'-=7_񛤤1_p~))e`Yȗ'q)4}bߖ2o<;!q\Ƕ[/'W:.[֟qdhǃH1KYOk!l}Z>A<Ҏ??D&6 د_BglԼv;#zp"Om|פ[tBCն X2 aԡ8F.&H=e3_ eƔRJb6},>"k^2R{/9 yZ'/>?!?\zO[7/g/D#BO 5Yh=Pr ǧ1奔;?+sH))m/mgUCpU{Ws0c-,}f]Ϭ%ʿ_|Hf87Y!nɦrގPx+:%9JRݷL}=D#^ j.fc˸ڃgMlp׎U!8yLcš8M^Js2nš+9%j+؅-9IDZy&}B* RׅX;x?>􆏫_9L&0TOcu15uNDB}hV id z#r_bRп̪ RE]^1šh#ВGI4KB L2T(}]ap~5D)ӢF^1a,BlSn{ Uh#Pd;̃P7EiXI8(mDr?fgy,xPZ;3q$J_&0ZX`EMeRdPaU#tO cajBTIUDHAuS$3o 6 9E]9%5 T٪X;17"jE]^1(WE#A `ajBW9@B J^04GZnŃlB}]Џ8&0Tcu1L%#uQ,Bl6Kk 'vϔ'P1EZid T ׅX;!$|REe^A,BE`xF`*QD US.6~YVAd2-ډ3J#QʴlCk1h_CU1X_5E(Ů3W  Rp$Ԉ)R6~)UEH2-7:L&0Du15cuQQY?x׹x7POj5-C9ąֻ=2y!EA5ֻ\ť( TUX;q]jGiQbԾ.f.j*"u5/xh@(ulN`PF@Nn*"t_~ogQU8L&0|u15",ܾ.f.G)Z!';Rĝu15u1&hK;ogZtEfP# c ltpO#J&g)RDƉg# # BGLR&@τ!GL1F>я80HM!2' Sn 2" dPF!i D?d|"*yg# .l?E2DJ e8O#N&g)#g`2 Cj&jpQN!'B ~Ʉ,EDD΄BB4F]7y7y"$M2zGLR(qޙ0THf¨Kɣu"$2bGLRćY@8L"L3a%b " F!i D?dˆ}"*H!Ɓg f .t?<â(O)@F #Y"m0 Ǐj&3^Q'B ~ʄ,E`OMʄ9۝2al(Ɖ(Ɩ"i>j&8883EXIFlII* {(1 2iHHGIMP 2.10.242021:06:21 22:44:2626</ JFIFC    $.' ",#(7),01444'9=82<.342C  2!!222222222222222222222222222222222222222222222222222" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Ck?dimFdl.6@==*dRTg \41ݑ:JkȤR#_99]Ke.q%SO26x aa^?W_ ]TEY-zw]2tyzw]2uRw >/N_./N_.dYIݎǷRr1qOB_7b?/N_./N_.gܷuuJ(Y-zw]2tyzw]2uR/}~^?W_ ]^?W_ ]Km,c >~?*s:ѕcp KuuJmZ9Y&Wvb ޅnԖߡ_ӿӿI^XXUF +;~<;~eѶ >nn=Ve6I)cN 暱/m;~<;~E+gܷu4vNۛuO,#ڡzY;t&*Orp[IsK2f <sa뎿J;7A6,A1JP+G֡,eB s9~ uߵGshC(b1gX?%u]:ؽ-ȴ5[`2GS? z$ңGoc`( w$xw\Ҵbv8l98`H\mnVW+H/z|D,:*r3ONmJe aGNz9Oʻ}.|v|{SGM =́ .x<Њ~Y><崕X\)O1~U_{~Q χ?a֪Ϸ|+˒cP@\?U"9Csl~gFhrq MF|a\ wzK_#'We27^tslBlS ~?J~ŸUGoWkc>|(h1׸[pyvSp_~[q*<~U_{~Q χŸ֪Ϸ|4LPV9#lΩI $:תI}>\go' qӑjA}׺}ÃRTa_#|~U<.1U{~Ui-?֪Ϸ|8H(IvU9Мƨ.4o5GGQA|Ieng x%OU>oafc @RTax_#<~Uf\$p:רsMoiWdY`|$: 8&BP2^|<Ú=DZ}z/vFCI χ ?>W}y/oʦ?%u])eP0ҩQJŅQ@g~>ȏ0`~x?\xwH< 3x~sX8xq@-wKmxI_tzn*+|mO"R3?0\O@?Jŧ40idyJ,0/A$ qG#^:̓Жz(.[sxlت `l*(Fmٜ*7?5bHIR?LtUQE9'8E:K󦄨vAlየQpP1*bzJ͗&D@ryt(z+) @p|ǐ;d#ֲI${sI@X?%u]V5 ]gfAu&?iQrP((((((((((((((jS.XMP bottom-0.9.6/docs/content/assets/screenshots/config/disk-filtering/disk_no_filter.webp000066400000000000000000000577421447252316700313620ustar00rootroot00000000000000RIFF_WEBPVP8X ,{ICCPlcms0mntrRGB XYZ (acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBVP8L?/{C95 #m#I',#bJE' ȩ8-XV}VnWA x (/;WȃQtqГ& p{Y]>v7mؾYNJ]{q>k?>o6㴧wl6f\@Felg ҙB9bXM.ܾ뻜p++{ ]HC|'dB|eU7jE%aΈ7X/\&}4)bN䃛H2IE*,wbJ( 7jUYX*ћS#X^b*lTl\[RS|:;UN:%;|QɃfc[ f#PAlϝ*:[aS#F-XU[ō]YbKFOfĩ|y BR\1/mUC=/ mBaWX/%; qw[go-5s\!kYX鐣'y5+'쿩;ζv`BQBP(Eeox:!LO:|\]9LF$̩p"O|f @Ԥ9lqBWO;FGK$T]*E4#/ʷt"\Օ ũ1]Xqi˸WOFJ@4TSj1bl]NMtuf/@]/٭q~gV$ju6)>oS | T 'FHj] lG= FG<{Ku/Lo R Bgz*-:@"7gP'ˀ]C'7Η5 DQ[l: MQܞth;זQOGC?NNR;o|4Q揀H/<at0;n؊%'<8V90"qWVUg>;aޞuR} ns76z^ɫx7[CbN;ɿӖS]`DVG7:R+/S|q('1(TIdr&6uq^WiF焒5q6N-%Kok6w-%T;Z PVpbE.5D #us YiFK /zL=TCzosǨ|ḷeFj_Ujuoy$7NcS[~iԌT䯼P#Id:O?%A-YbH6Eĺ| [n,΁?5'㯟~a_~p^c,Ǻ~uuIf&Ť<{0i$oRuSY_?TS|(-b}8#,3'1"}d jHa[- 5[,_M rdLj;uj"WVzg-I5t%Aq6iWvb+g!G4sykGA0hh2 ;猞"3n?d@%3%xpBAk*Ef's\ 4Qw4j*>ݣL;tf#' bdSݙWB `>-yI d4 @)$ mS`5"AΣ?2ğxS3`+S(f 30 ϟ>!01d)$WU2@n0O^4eIk6j[RLw\ 0|袳z  ;֏ tcNu322Y'4 H9 1FXC9S8&;d 6t޿?:'fn59;|߆JoElލS|}UקP>FЍ ;z gz]uLܫ+u"Xk,{I15[74;sw^n|Atn#,aT)$Lx5¯!Wz |/1fjv+>CK+u^!h=}?b)a ZXS~;scmW7k LFh@èGT+e|KD}B]ZȰkK35C(>d\ h nV,̑?jw.MnÊ&&{|%(3%5;Bq0ݑ; q4z@|G;Lj/|Z]Q>uS|Wb7#ײ5S;m7S;g߾7fM{Y"JR|Gj᝛1&vrw1H\;{03jL<9]ŧKt`5~ݸ*GVi VOf+3!/!G Z< %OL}y>"TJ ^,ϪKMZz8$*`]xĉ-2 E&N9y7"NwJdDs-}"wm. vEui VAM Eg+[i6_,L%OegSY*G4K̵f(n6i9e b=Yռ*-mW94 AIL-Y1=N̿4Jv}(Ma =D\9Ջߜ7XYf8? *G4Kj 6ߒB.EN־4 x&C䰲E)#Γm>+R4գ0!~7>gkVgՈ2TY!oa=f[FHhJ݈+ىy>X["`S[8r\1PyG biL b Y 5{)jk%+=bE8^y-AIr10Kccȶ*\K*[8s"jXժlx{ED 5 +%GIu,k"JK)d{e#흄 !Ѓʗ̌Uq/|sVʀ.eArCQHR= ru{{Ax)R•$ze*0gKf{Hzv?Y!;6yrvHxDFBpkX;?n8Gz"+U>+Z=ڛ14YR2#&B(, Ihʒ(ڲS"~̕ߥ8HǏ_:bq9p*~k^q;Y}2boPtMilCv"xgI#8Z3ixqQ9N#޸;\L6Hg4 ƺ1r#Q]Dr-3ҒuXt} =!KTEp*̵~ȇ[ @ )w9\_ӭЁ Wi0؟R{c}ف AċD#VG7sx3ıdL҈1RrЍڇ ۣĈ TjD:# #ΝQ)ֹ*P\]A>pDQ'Z2 \h?T;Cz d"WG 00 FO7%hź;aέCFwl ڡq>p%^lHL F#:u" itp݊|51!v8QjOJ,fӫy[U瀛èa־=14H4bExց84r*aOuBl> q%4[MHƍJ;chmebr+7^ib`PG݊ |3%RnjhrM|<VM O"#*xv靺Cul7K(BfR|y4(v(d`FX#e`}ǥ9:Gc""6TIn\^xM:_ɕߥnNF<;_rg'[aw{٪DH2  3;k FW*tkrY;?KT6٨޶ Yn!}I#g9hf x&$KTgpNsڐf Ջ,ZsX舦 KnzO\H^#$p p7M2LNoamF&0;xȍX(\t4TDZ̩)@wykڡz< j́JdqrxE 0?*[ d-5+bL5I]aѳɋ*sMb.2T1?-t%Й~I0>qh/xx;9'DhzڋPY_b(`+Eq*4rmuX5aulffn뭈4Gſz~:F] 4)?hBңgC/ԺQP]^8[Ϲ1a o矃 ݣ LaO; 9v4P$!@BWK r9 e10r\&Qz#+H1k:·3H!Ƙ`;fZdHtZmI6)h:s D#1/^yxGIU (>$i9}tkY - c<#X X8=LκY!Ct4PD`2増HaQx0rVUw3=^L ? <rZ.2'2kb/!L6AWq Pz,nj `?٥-ԋ)="a5߈ RB =ꎹ*K0u笜C@9,*zF$pb%e.hs%SmNhTD `gF*ջ AL ? y@:xe5 bP{} k3 ˬ9pM FqF0Z F}HV'HM%"&&JJnO,rdS@~C3yŠh^ K_ LFx ڄB@Ta/yru!Kms*Xc0HT*zd%ێe* )u?VyRyrʴQjnY|BXˀD0 NyT:vm3GWD_VD_VC_ݦ!(G2Ŷ҅4Ȱt˾*`57Mp[s7Uck;ޛ |\q8E:׫G|wֶ~w\ZZ%FK_y f 'g"QE;4X%η*OR&,ٳg/n}.Pi{} 9)[A;t6JX9[4q'MQBp;6e"㩖VB!rU[+.0Vp+AT@;\͖#pƱ|j1KA7^+LrBiY|O4Pn;{bp |{m lTE+'E= U4x4n9 mƉa~0}dͽ{%BUC4w\A; Er, E͖ð~[>Ԑ7}0"ͺ W,4}le|u-'[T؂ -.l<[SNe_X_;'ZC$m81CѰdJ P*y1 ^sF ElJ 1H+e+LP(QZFqRmw~Qrt]81fXl}ꤖqaX8@Ɖa?xxg?2BT< ENYiM>T+LA.\|KiIB0FXWa ϊpv gJ꛸૸ +uܶ3;mx"z z h5N P4 $8DTh^+ g, و>/P5Tn({g> paY} h ~2fкWL !lVwӿrz h5N P4| +p V y4'YC/VC#%O6z9lcl#ByML!Cƺ$Cz*ceUQU(t1_m:Cl?}@QVz(jmwhqb<R2E}(N h45N 4v&2Oa,Wg6'kfBFÞ4rfK|l RWU!3=y&-5rP!rνcylHBokcqef{CJrdii.)`T8sThUt& O[ٟLBtPk_Qcr% OKvkؙ3BW5bf1rf"d/nH!uVYԁd/*~9 u7mKrlSz"@) 0$jaS)fx;i<׋-Y/(a;븸1蓓n 1 |nlP59{pjט+)cPuH7hT\koBW4$n\98SF*ݨT`#8*q^/jcNO P7%ix|*hpgnuɓn["@i.IERL MNz!La}Mh(c~k ȔIŪYHbŗ`!F)Z/o@gUcO4 ϢavR):,ہ'f][p~r_3Z%UooS/@rl&4$DB~k%.]fi`wC1 OiZ0Z:[Z1VHx؁ {14!P.}Ree|P*F~¿T택jeՌSTw}-OP !oM ?cnG3lFd5c~N`VMma(.[u^f'FĬo,A)&zzxFF1vd wY+ @v-i9B e4$_fidt-`TC:-ؽmXG/@dcE3;)Aypv6mt1E/(Spf%;bOi*UDpl;raZ$b%IB6@o NaRv#. NS4AEe < ݈Y~{bA`Xia7eK˙H޾T0S63*i@ DKDWT+LE~IuXqFf[0Ͱ"$~p([;t1sz2v.椃vJ@$SBB6 jm 4#K5vsN9I#[y5I0S`jXm^fJ.`ނjVȊmFJ~ c"&iW# 槗ǔhq6: c60̚ 9Ozdk;X-d졧1{/~1yZrf,BFJW\بӌ4urHC%_9P*mڴ3,>>8^\0v=]P ѳhFc/Fjt90jx!#[fi49Bj7Yc9NFY7Ys85du&~V^zAc>ʿMk=\:orv#~}Y:h~:<ZJfjÌyV޲9 (#́oðl喩]v167lIWl#6x)qwA;T2H]r(E-$r:ty'@܌T޸֝sV?;ŇGEyVA@nxux{J(4:ɬ2[83RftKLT|DJu]IAL pY <w0KcgQQ挲Se挲;sW7b{d^YM@LsdntѪ6#!j"&SCdD"eq*$ 9nؼ(rֿ7+4Mj餽$Χ/YFx%lѭ u@#44ĊĨ.PA W>Yhd211Z8rµ8jF2eJޔB㱻Q:%34?P27_12@o<.c,]^~~PB`DNK[ XC0Mb)6C:J< Qe͙cQ\KTjn;{GJH 2IhEnrAgP0C"4'ĝ󔴮[SC[V;աqjLӀ(dOȞ:^옓qh;罰 {|^NY`DuU02m#;TL*اXAešZ2nU V m)'꽄ju斢1L--I8,.ã2{(3RDls퇠7I_k~0KĬ,R0Gč{Dm>g gV2B j2qʵ15j: %'Ğ_GWF/A頗Wؓf-c_\h\PsAm{1;WKT)+;mz,?sz I$8 I*$>[f 7|7~}?-IXuu-_`نp=1J6]Ev_vByP3 uNJ H(ʯK_kӠp5Y%MT.0~c,%Ƶ6Av fc5$X%DɪWϱhE1Z''fNq‰w7K5q#|1!]F !8` w#_f4ŮY^xQo/l k|1=1/'E1,zUlhK*Zc ?F1c@,x,)![ÿp5 aҪfdpU6AcAt1Ԥ<|5N)Rq+W4¶?UBCn_lKt:=t*ub1u:ԥCiו' Xp6bAcEAK|!b]y!{#X+'OIKۊ{\LR#3_HI>q&7O1J$VL cgɺ_(iM8*E3c*3u0P\dˣ]9=bؼ(_OoBdБt{$`FGvH)+szN#mOXDJTfK؂ !],~fNWsvҡ4`;6 &qOm۶F|eDC OGɀJ\(P(t..kHt1)t%)GpŶ!CΦ ?HYaan h7NL pJO8F\<|M)2yi&HEo+bj.9*+P OEsy9P' Ϣ+q uANĘx ɱ.ٔKƛ#GO,"tz 'bSE -Wt8.c$Ig)< N#EO#5^%cYi~:Z[ǎEFX'%$fggCDOpa)5NH\{r:`j戟c:& hl?;g'&Apv%A% {BdJm\;PL02/cc˫Q܍:`,kvŘe>"uoi#*zmc-y|Ļ.}3^;'5rtY|]F+<$ckk9\:>_F,#)+J\D-Gw ';X"*+V3=֮X&yk5'O*L_K VƉ‘>bĨǀPN zbA!PnkNi Q"Qods~H<_SnRK'-բ ss6p Ɣ:Fy}h N+ Ǎ,ru92x(1;4=]wދ\t?5A8'ܞі,qqqpIj薯 !Q^ gʈhp'&3]\K\^[O4RˢWbh/ 9<[Y42.q< 3NL"7MU̙cb:EĄB.sQt钶m*Gnb`B5cG"Zu eNҹQ% qwľ-É[o{(Tx5, ,尔s,&Ak($+zM$?QrpI e2,#Қ-N u¬Ԥ$k6fFI@)`/wnj@85GuLVGg`((lO ; CSiuu` D礉La궠 'MQk3 #Q$NqBlׅ㾚[-jtY 9ދݡVȱ!֢ASalLk[` uD_lLo;LeSRl0YlKwíМ"E"34j25$64y0汨mL]ĘЗYL~͸Ñdl)dlLRJ~G>(=7:@偧E4t k|cWdB浦i;J]1@woHK װ|T6uI0"9bS3sDd -p[!6mMgS%JhP;u̼B/8af=7B ~i *Cbxhk&[%~E18N ^\H*UJj[D۠R,ךFIOF1"wvljvmBnJc (K/_JaAhhh nl`aMYiHNM`0գMdtkWv,3'4OGRRfGZB"Psߕ9+Ռ(E 5(O i$+O^0:X1H)E:ychpl4Qc':S#E'KKZJaR+N b[ {ۉ^4Noi RjbqY3уE/u=u]K3E$/ht,_sh3"bY_2sU^H 'ZPhW薆- ]\ͣ^)pX bUCJR"n➆Ip yI+um!)ѪMWcRVXnFuU&Wbq EY@e‹3 ǭKI؇)"~ِM8 5=W%F/ QDkqg9nI1c݆2z%(3 Gծ/REcwcE&U#Јn0JK&1,ii6gWrLN z9IC1\Nc71{Cn>V:5?oH_!;D Du2I^ݩ@9gZBU$>a:+"ۧV4~^I:-E{k+e3+M?u3fKsHuyT \/fẖx>K#QPCGBj9"! Aj[B;H|Rt'Dmu@{u,,igi>A̼H[]*Zړ%%ƔUE.b"0PȟP u)ʜmap0[S2J.٣2:v[a!ͭ8e]kDSl69hK9Va-9 mK4Z$X3~%5!$$OO[|ǩ]s3}tdfGiY6BȃX`xbVpAV28i)CkU>8d)OXSf˷UI:~!m|;4Tx8 WQ3N ,CTBve5ڶ% pœj{D]=z5U EXIFII* |(1 2iCreated with GIMP)[)[GIMP 2.10.242021:06:21 22:44:23Created with GIMPBzkJFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222B" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?ftדq6p辽mAp#~vgo~oNPcUR-[ǒ0IS] .1#Y#H$yF㱒P{M?W:*nS.yo]J<7}.%Sr癦ϥWl/ӧ2zcp?ҦS 1k 3ܨ=[ ;o]J<7}.%As9v21b3MEJ(W.yo]J<7}.%S癦ϥW:(T\4tyo]Ju֐I$8E6q֝"~!iw+4uNŨ[n!zdҒ}Wiw+輿j[Cv C}u\4tyo]J *20aU6;wħ &bk3Wiw+闗BEq2NVt.yo]J<7}.%ڌ/ga'NZ/ޝm kpe;Vi |޹UʣKDi]OZ@$A>]n\K- &IaE4y+qS3I+xH^pO mI4%|wΤqszz _ x|[Ja~\!mƙ421nrcVbqNmMб NH߭5|-0R48!#W fYL KBp:eŸ-Ιf?dP=qQ/T3>ޣN%k ϘW朏ܻB.3{sMW/'?=m`@^U; ϘW[吹v\u+FI44s);PHq'oLJ>S~?z7!~1 ϘWު%2BG'ZoAZ_3 Uo|*Qj|]/?T*(E|?g2cWIǞX<l߿#Wilf"M1ON{`Ԙ4ESnycUmO8<ו־Yrz-vqG^ȿ-|%$v(<4?Z/?U^]E~$ec-n7v3wst*E||[xqQ@{UPxSD'?٘g?^go1|qݞzcҷXпvy0$|cޝPTt -. ?o_֍c e#kw>ՕMW/'?=R: Gi{TmON>88kѥ8}1|uǾ{ ;@m[WI_#אȥ_!Z=C ϘQ_Ȩ ?g=N I3?oLx;ÒD ?.B.~Q{j{J7!`HF?J??gfKg8tR}Mpw0,YCqW,C&l%BpjNm^Nm"[D=i$, )`㏨֫L 6`vT6뼙?Lxu8bGU7<9[ k!,XaNqj|Hs)?#߮@RdCsfО5 s#8''9cƨSZ]C[yG2`tp}}Qg[C1O_z,cctaIa~dO`~OKsJzYhӯN_Xuj4iV$upTv< G['H!g3ڹڐhf;qׯ=8Z2[e-u2\kjңHeH܀s\A %$Gn#;]2~#?/ጃo(?~=_$O,g^ī}(c_Aڱr5r%˭0HVu/c>,WȞw-yi:JWKVU- (4% E )(4QFi3@ E&h(QFh)QE1EPF( RњLQ\f VNg,Uɞw6 bottom-0.9.6/docs/content/assets/screenshots/config/layout/000077500000000000000000000000001447252316700240735ustar00rootroot00000000000000bottom-0.9.6/docs/content/assets/screenshots/config/layout/sample_layout.webp000066400000000000000000001022261447252316700276330ustar00rootroot00000000000000RIFFWEBPVP8X ,ICCPlcms0mntrRGB XYZ (acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBVP8L[_/GUڶsAZJ;T0i龦>m[7bJ?\y43fGjTfT 3xxV̼4죲\?"y@& &\Rc$/ <,*ɚ"0{EEJrV%%Ȯa4Y&Y)h%gJ5w 3SN{9af0ciR4FSUSF7073=XhJb#{ ܟ | 9xp9M$҆%J-2! ? ɛi>Z&?…p &!I $ϴ]تX_`mlEeIl6w; C՝%406J6b浅H.]ҡe2$IԞ•J%=8`h!l5Hrn;-m7*E[ $4rHYMT6B>doѭ8dۛS 2IvQ`읬t_~ڬXuoNf2mɡd*XNHՊlաGl[1X#_Ezu/} #$9pVK/A5} UY&GjǬZĔ ,?FL74Q2I" A`ǀ<&އsߤcPłt@1v죅7puSf<|6F>`ɑ'QӀ{ ym4ŤU[9R@0ms i0)fs1xOKt@2'e`X %j<15Ru tmn7k-\:UZ/V J$1EXѾ ,)`XoE71Z*e~Ro?7ze;POKibV)Jxw9 Sї֋ ("UKOMԊtA-?Ӟa4e=\nx-Xm3W&L8˙zis~̀X/?1Vi~EGX?)';6cb2W[dOdu!|P$I&nS6L#i10d$3-zdn'Z=ըwLG#=06`1R Y(V 5?c,v"| xɜ^,dܐn-y^ Rb GOK9dsxe{=0 .!s,2gb /맘ͭ=PKWEb^x*^| Ь?b{%;>ػCl,i:-{}ᰞ_~Þdsl|QKAt3#*,QSwŹ3Hd؝$nPi ,۽XQ9Ej@۲V+}'C"Q[O_I1H^Oe\ն\n⧛6*Wӕ%Lکʊia`71ޭ23`̾wkmlw`4bŰ?ҟ{ȱIB/Z "(W4( Pr m{&^hIߢF^MLsx*VG[}hp_YO צ^Vᄻx{H0fR&~qw^dLGhTjFrDPMZ\}/ o릃rBqP ~Xc[ G)U Bss\7,7,E%/:`C'Li8ޯY#Ƣ Fm+`ڲ+{&N;o L<\/Ե&GwK-;R- RqӪTcN/ZFcg@/WU/yU<,ȫf?i9m0ӡީV(nO8,@HYtNXK\fӟkm}T/{`Ş1&Umi:GqG2i]B/&J[Tq q\ d2 E `XV pOI!;x&s!?]Hr4#/*#M- F1&)>F\d=7qOuy\)^?`Ok1뛸u"[Nr8qA6=k^eM+`|QVPS?M:H {?-%X lA${vphi9D!:2|[~ZEvA6 cp.h}Y̡̩MWb3{8V~UvB.;bp *i*2St(!7{mB߂BwoRZ%h>$<➚lZuI2 UC`FێIQt  {>Uw}DvLKU/=? %!r8vyJ*yecqIx Ľr-[W]7$Mx>Qu/:qOǜ_|*@e&P3,r x/ UD>5JO*h&"F]k cc̚PyO-Z7 pP$чF3l>@-fxAےݾh"(7ؗ;Kr[Rʫ 6eaHU5\+],\1M%K؃V%J4pM>2Thj-eZ`'\z/jBYˊ7fT嵱:Z~\⧕dՒx_vR{1\sٽʥk PW:981Q+n9+'+z<(PVe MgQI \\s.钀1EZ9H 'd(ZˢX!MnT}%7Ts/@7!/6|d@|9RluKSc}OmDpBÿʖee/"orDYը|3P/:v;? d.ė?"v(V(ȒL7 6IZACZPeVA;iLٔVr+wUǑ|q{e*J, *zzl-bEᕸ4(2KuQȒwՕ>VŞY~A#s\}/wp;N_NijA1TyO:Y*4륲)Ll dF0R+CVv]&]c 9J$3ӽWܪCA>"tdKW^M r9hP2ON~ 8ǺO7$?ʰ23_t Zܸ=tJd]7{7ڧ|0$h/hww#֯X?Ֆ#?٪ȷ( 0rjYd\(՘EsN}pU>Q#}j?V;!,Ժ$%]o' cMtdqb{1QMfuydX)+TKb wJdX{Y,8(>1d[٧8#O@2PifbKufQr=\"ݐZ6Amj,RHPxjR-nT!T~=ۚG@MP6ͽzSz?Kb~ jSP_f S7s31>oW&hP7 Ag%QFRTM~%,J"vBJĕOBrcjpG|Cb0ʵBۧa$M V^xܱ9ZX`ʸegFɶ 0mC[%юGpG6FM5f+ߒJ?-0"פbk- ca-+nk;ε,s\E0|nS_{utGU;U2i6 v@Ι\RDTV*3w@NXѤbEvCzw\h`iP0pg l]T^ׄ""͝Y:;VBњw6_Hu3lڡ_BO'!xFik^ur+n; y2}_p' JwJci<'l7-%@}[xc6^kӨ\ULvV5C+jm5ᬏ/4&صC}ڳ-MuZиM/r grQXTlU)xɇQYu"~ˁq*yў`FsU^f}0CXb2(}{=oFwf".!QY!.k0oT; [qB;/Qu҉ENElUϖs{v]R)6Vص]]'qsYvTKqْY8@6Q(||(gisȚq&pOOU m)N"aI(x}JǺs6]QGL!nvN+\y>]C47kyI + ,cZ(aHWj[!1{EwcL+bԊ T{r"Tu hߥ倪/ڑGTDUuBU~+`$$=pl;䑾m0j>OPq:>(kru(Q.npMw?L  miiUZȴ*ږfS&q5T1 /L6Jj)%lb~ٱaMfʼnYh@'Q#}FYp~܃ 'ݚʁ$)d4E:5̷09@dThnwa\Ӭ˜ku-@7QF>42גXBiץr>\λF mW~oLGMu3[ {ur -= ##iH伟R ۔P|(ߴd{B{]r. uznݣs QirDtzM+t7ԩ]|vt5iV{8ÒHJMea᠔qmy p|Sh~;c)25Ж&XkWWdL5)Ն8g^noOUIƕU%VӚ6ral]'/Th~QF5f+;-ˊx"f@L^^Y+>懑gq^u^mmy sb)orٗsk^_cW|^h]_/Lƽ۵YUrL=p]aўk"VTtVs(_M)7d#i 8n`gY#]'fenpj#ZY)bC"ᲑY+ (,/6jf2]z>kl$Ֆ~Rލ} xʘգ_R5k4Mp-nfYH Szǜ⍙$\z>sA\sWssA ) Rrн^4.$&B k,KEwou ]Z-Nc2)\~u-Obnxzӳ~Wщ-ZnZr5MpM!C Zz,@!Wzekfn#P)n=Q[lȀ~5ܱ"Sf $36 zԕ~<нȞ*Pv_)%t1crPqnJ{vvqyCi&ەp7HFMZ:`;OKZy1Į"x_\vMOd#l]dX}Z+65S:f8t[Ҕp".s}ALِY4YpYT$n"ikdrH;lf1X~ڀ =*e'gD{WE޼t:joKGE^Ưl{? HN]d!̣zb$M$ *(9Di-xGJA?Nj|- F6v H3hI1+S:R4B`LF;fb:[ɧsH P1`Qg+X {Fpf< lXx9C5tVdekǥscYF`|Uff;vϒV0+paHckJY3qόp"9C"Kc9 0G/H2$0ǰ+-%EXwu c.@*C"?y-\i&6VT]٬/S+*[Po=puB$ʟr= D~qYm|EΡR͔lif4FZ]0{f+k) k8ZȺC8ѩg׿W@п qYdj;Yk[km}U[E+ZJ);afJ'oVzз#g ?b:/;,X}FR \%GMieuPo+Z8L]!v"aeJCR-e1 A_jN;F UD}cA]آUX>[qoQXaXzgb4OnA4c{jE&Y~ OXG|P\dcM4ތv46 8;~WMAq0rS#<_ۤH7giQ^: XWB٬tpPwu5>=@]6 5 f(G kUTEw뎻ΰI UȿD?Q2wnO8JY',EgtM^뎻F{N,!x8;K"^o.d\Ad/e 3,\w `_]yѯ:wRc8Y^T("t^iOORrڇe\܆NM;q_peC8eN'd1fMu߶V_uǝ1uM"U_psyKpfڔl,x<O͊xIw]nþX`jRNd;w=8j~HϦ#|xhߊ=5Ti_N0h5uw^okk}g2x/=up˵seWh-~:!N={%Z\.߱9Xw߾?Fd;Љ4hA;qov!<@:psݾH䃺nNs7@f5qodp'Ҡc=ۺnsIě0kk lsݮ e)7_bmVoUMG{guwĪ"r4掻L{';Hy3s (n} T~dyVw5 w5m˴w2)[N|wD]*m˵w2(YӅwZy Y~yVwrF; @V92/~%yUwD]"rN kIr T7Aw`r;AHZMk3yT[~dyWw_qN|&0T]Ԭ&;[,PdyWw2P K5ܑ?ɝ(QeӞ,-w3c?RQ찄AD amSAYwD?eTx̗xiTO[TH#w1S~;ϸg˳ uQl0X,ӺV% d=6\PԪ9 yn>U^x;J(w0res՛H.גM+FH-¶]'l4X‹fʸڬrCwKUwƕo=WbnAr ȋyAꅫt"3&WEI'[J843rr6 ۀbЫb_\bHA*-NJr;!+w`/đ&%F'&W$T.@v!TEҕHvh>u80 $!IC X+*$[8#+VlL"ON&C D>cnt ";z*A$ 6-xUC i"v$6bam:'IRV:T/\tLB`E[LN'?#bҮJ+P -IH"8…)JqD Dr{0% Z4nq c$Ili<Ў|~}%<ґ:nHs+IO#Joo9x6q4tk]maUT~H:Ub4|<Y7A^/z>Yl{'s}^)mͷ&'ԙRg֗Q4tyxngSU]c~>?o\qS"^MN?5ΐ~H.jg2~$y;u#gF#r3 }3哾c?,߸wȞ_/7R$l];B<,S3ęR$kv4ƽO}R[bezy>1Vpr221}OH~{y>l~ep؞ONFOH>ctw)\!Qɷ7w>`7/>S<- 9կW*louN=V>aUk^ߞ|/GB+ڿ89m_;WӼpwf4@1{:`U m&Vy =5x/b3LVT%[.,qKI]vX8v)xR>:gbqԋo=׏xld z-aʸ*[HG&/b7!SoVT%fY&t[[9R8&Eꔝ*3r95mIyxU[T?,> kny6-e y-aʸ*NG6B|qLQ_w$K*Ys2 m0.sILB\WuI*ൌ_$%ɏSnsSp#,,1pH Uo&eILMC F.䨺ļN,p=ϕvd x-cE|_QLK9Ut65e(-,yǒ}{QFn&HՅKԾ2y2 d՘ŽHO^G|D&2fY\^|m69^I~E8.| &%"~8~[ w1A~koQΒfqmWwu8WP9.mC?TWeֳXK?N엓C#?TsxE I%Hr0M_erՔ@cLPJ$~ZlMkp;9護^c3Sp1L3Lܠk RaImGIKVm +r9k3;/& {-cuw5uvrypw~>Fޤl_0 #d Usi_xIdj:)2l _U57EmnJ*ku-1OArZ ? ɾ+l0qT UIZd8/tuÃt{K^>3~t_2[Bgw+{12:jɾO}A3 CXo~'*K'g#+Йďv o%)$~4[Zl=}:/O-aU,v \,M>ǔ7+M\nV4kӞf}K7sᆱJ4R%Ҹgv+G$lFw\Br}W6'2a>oI~&dӅgNh3Hej7L.8e%+b3nP<=I8B8˄ȼ&o);3o}); &Pl`R* 6*M|>Iv_O!e¾#yH;!I\B I/dwfHӘ!x,#Uo5ɲ)L6bNh)b3f#\jOwˍ 8BIHjb Jc3f[MJnՂZR{p'¾{~p=Ν$ )!%1ƤԞf]}W5AGW?:T`C9%$ CڛLJN{w~]M!ފul@0`N fmhr eMJwwЌKj&,w3N%ﴚ M39x"ҸgV}d[R "? 6] KȨ0òz4jEY*.CU gw3-rV.fXVɫPm&tg)~LQ)dEKĂ5# )L2HBI%Ȓ_>{滭i9u EⲚtF#d ' V\?Sl9Є$ =ʽJFg<PBdUeE#ﯯ6!ziHRJwSY )ȒYw )Aڴ2rr/IX e5;9rLgCJdqYdDs$ VA{)国hM&ũO+|-ln =$2,+0@Lpq>Ԋ*,1),dpACX=kEqYd}s!Z\?Sxo7Tq =b/Eۍ~ wk[ !+òf2;+np)QG!(_w߄czqRugM8Vw,5_wR=;;+c>qRugp'Xj0Kםf±bc)F8Vw,%_wVx NJ⎥ /X1Pܱ|Ya%K;Vڒp? !?4:M nE }GVԎ;x}GO lXVVɫNASugu|I.1|iEc 0_w!9iS)iEc 0_wALV{8K]i?S@`ʿWR\X >u16-;@`ʿ%9ѤLdSj=C 0_w͌X=~@m'%FmZQ.XLםuvWi>>uzBV;SugUHf DЦ/Y/qmaiYL՝vb iHttc,:\l gbcl m %A⎥Ju'Qԋ %qRug516zBEXp\¨w,^wV?@r/GKp6'0Kםeb ΆFc)򺳜}0"1nlzY2Xrr ]<-Tug^,`v9.]*@/2;\Bw.O YftwQ4M0CZKXhTߴiEYYbuPug~jiӊ@rWugEp"6Ӧul뗻®; DKJhIJa>l i:e%宰-9Xohk'MLҦmtgZBNZF^I~akI6*=̴iEYdUYם#b;Xd5'yiӊ:@QPug»SbaF`YMcb8mZՂZA(溳a` z`6kYM+E B1ם% VҋzySm ^ڴ,A溳$9%JJ,bYPOO6aM+,^՝X]؁ugK  TfEi"4:]֝/-X$*Z\+Ehp4%=, kńWh:K@w[w zDҦ kŒj_MtWugGpF"Jڂlۺd#[bHd-rhlۺd#bHdcxd]֝!y$E,ꞖtWugGČȲ^)Bc%;K; RXtYY ϯ eXYy~Usl\tXY(ϠDpUgIug :'' $i٤;H,4[2RE[0@՝#Ri?1c?1c?ѽHGrNK?1S:Ko0K/mvg"$^$Im $j Z̝5S^l (#QSpnkQh 6587SHR :Yٻ%j z,N|s]{B1h7%j Mw hXu/DMBv1cO+ǟcarmf䚯3sXp8FNbMWvq˖k*mׁ/N%=eaVk]S8}żYX[cd"T| = m[ԟb${]nXma6+]S3ɇ|̞IP=rqg1_lH=>o.\8Tx~y0/nG-/DT+*x5?w$Agxuϯ,]M}zF [Z/H/@-rbMD@@7{;u6'[΃/=Gs齦f{XXѹ#Nwxz9pMbկ;@gp7oqWv8^HPwmoD3+l^kø۠/=Gs:W-t;].d󝷚$ye&:}D3>'Oխk x7&;p+;9_ xAԏW>jˊpXab/&o6e{Bx l3Nv~n9!Cj=7!r[Z>؏pMf臸|{M{x@r]E>ॻxXa*%eLeaIh?0kPÇs\7 !IW綟3{m_׷l+ػP-;}og6_ϗKwgpXQח0I6>Ñ{ɯe_=>`綟T_^%\SvA=vocOy0jI~ݥ3:{Wxh?0{@潑6…X? #>>,/de\S~Rhy_vn{_מχ56wD^;Ê[z?`?0{ 9{,t4yS?>.vޯ$>r&=֐qMz߭lgs'nj7FFZ{qIOw=쾞fݥ3`-tӍG_(wx zض{K|:Kz`Wgw@Qɽ${/" %\ wfȏtpMg{pMs1c?1csJ$_&m^EU1wwQu@ewt.}d \Yytk`;\SH>άh`\ű/Ir jp͌ew:*¾nE X:“נ#lw%F1,msǶ$˭c8n2jV)Wɒ*?tdB$;!{ۭ,v\kj-z'<(ւT\*R hiDFA Zal_MZEJI8P ]T~~ؿIXd OO\ÎؘQ+CT&{ 5T4$jE&wۯ;^G}EYס( ȑC!Vf9>q ;"%':>tMeFe Ղ5V@Dj%c8.r]DM5n6).*?^ dOJJ!OFx8s|vD4KeQvk*Ue Ղ5V@cM*t]G}dA# T~ȃ9Ā]Fd50KZQw߹21h :'IAͥ"Հ< L(SH" T~HFBC<,.>q ;͞l[Qw0QaAD mTd%IQt_@M& j#<:{ :s|v-KZQw,1X ,P J ^je KU4,$5u I.r^m<'G}W-@X5xw hoR'? sY+Cה% I,ZOpmla!@EKRZpܢiRj;bI(Y` /v m@(rMt %G]Sh=4]Z%Ln?ה%th[X3|d*;%55e\ze.T(˄k{{S;K^%Ctں$"Z rV%w22X^% C V]O^/;8Z\wQÒ(XQPw?;ZǙQqɑ}޾(_BLR#tKE՝W;ϠaɔH;) ?ɀ(q;R#O9/X!$hC҉^,%UwEkk.GxzUY*w[*ugy^ r#@ 27Ax>zP5v=tKY՝Em+^;GGY+h"..eIģjA-7 /Xc_5u"RRugګ\Akb%/;ZuX6'k$*G`a|M:ҋګ\AkaɔHh;Kb:,p2ђUHz; 7 /Xc_s<NbDU/!9b%U",?ɀ葚7&G` a2}D'zNYf,N3TwW>;+7_w{/Aҭbޤ0 X:0Z,wlCUsVB #pܱM 7~c8YhwW_=6*dϻ6- D 22 +!X+sbk rΨCtgu &+ڨ=2ڴ),b#+[R?K5;" Zz,;D׀m6 @ k Ml9 tG^۴6 $FedQF;K` bl\ڵ$2ڴD!Rly׸i+ѳ}3@{X#ӝ%_6H\dimJl"tg˟(T¦i+ѳD3 vZ,;+3&6Y%CJdH$DJDfa% 6 h%zhvF벻^; @mdϻĞB2 +!_6 h%zivF벻N;FU鼚p3xe|-#r ;+7_wVَSI;\R~ :p%rYwEbP.y'D Ty'Af* =ǑJa, \N]N,AN(TQ=F:D W@N(w|ﯜm.y'Z]SuPB0"E͞i.edzSȄ͊ DXy4m.y'j®)N(#  DX$6{FMe"6nG$+Y1WSk-GRiTTEMe"C"ҝ/s:u;rM՝wB{ OHԖ3SIWv-\ʀ&R7EXy;K<~Щp 5Uw %$<lrꞖCVU&Y,a,bA.y'Ty'"SI[ m.e@o*!)Sa,bAy'Ty'D"TTs)#ћD8JV"<ӝ/s߼"KkHxF"V`* ZMe"GjLw8+Z\S睐}睐Le+K,27{Nh'`H]w҄_],K[`M:Fَ>lݐ֝„eb&:XHi֝EUG^#e Ƈ纳@*D tXR)ͺqW AluCZw\`@)fYWӢwA,1X@n̞AKIa,&,t`)fYD"z #% ͒3EjHKIa,&,$7Hy4*вQppcEl9qDzoR.'|غ!{;K Mt@%Ҭ;3U1I=c5)X~lݐ=֝„$W':XHe֝5Bs)ΐ3;{R[7dj$W*:X$dpRxa$ K.5Zw+tg'2N%Z"/.@;F#"x a KŅiRugH;KJe8 D#`* XqE@f ’wBBqK֝0ΒR% !P%SIH#qEPdŅiRugdTf$WASIHqEy'$];,BqK֝0ΒQff&HJBG"h0_;!' ,BqK֝TKE@Yr* IASI(+R /Bo2 "ŅiRug9ΒQfGT:t\|z?d%2<_\-%ZwX#,)Y ڂSIH#+q}0d*6Ȩ|q!1Rugb",)Y @GT: p\"üycK$ŅĒKҝU:V;E#1:,7~Iw?1c?1c?1c?1c?1c?1c>Wq Ck?}>TUϵƊO`Xq ?~z UsލF\Os k?}>Ww'}6c?R([fQ16?1cG] &>Xlp|Ic:mul^pKF@k;U8/8ku V PS#󂓾kUS->yIgԵ*,SckU YbmJ?[' Pת@PmJ/d^p#PPmJ/G'^#t k;Uz&?1Zpl0/\Z0f?: EXIFII* (1 2iCreated with GIMP)[)[GIMP 2.10.242021:06:21 22:44:37Created with GIMPzCJFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?;[I2GdȽ}jƬVmn֬? -ܠ_psLkX…j ) 2v/Gd_¡ج'bK}O~*( "oؿiߥ .ț2v/Gd_¡&L݋/Q?_h,'bK}O~*( "oؿiߥ .ț2v/Gd_¡&L݋/Q?_h,'bK}O~*( "ump.y"?Ҭ*ӘjB*ZYwYh z@i+OTh mgu$P2+(\Dmԁ{泙^;Nf'o2}k %2g 0O5QZQO~S*HnQ8"[ʪTV@Oʻ5&oAܕ3 T^9"LJB1R`#<c5kN趠 5gkKcVK+6ݓQHaEPEPEPEPEPEPEPEPEPEPEmStJ Fp9?\k$lb261$gt:%f<2~,Jv4!I®a# [ZoyQY T)&'ZB <ǿW4g&圂==^G dU;>_MڪU;>_Mژˑ$-[%dpL;sPO~VQC"͵̛2 "q S]>݉ ځ#C~ZE_^Ϥ`I DteQ/]cE?^Ϥ`I DteQ/]å`I >y>߳s./ˋ_?,Ùy>߳}}'g*\_DtY2)}'g(O~U츿%#./dSO~Q qKGG\_fȧ ??W?.츿%#9O??G/?®eQ/]qKGEs"/?^Ϥ\̃~!7f3c#C9S??G/?­:AK>:tqKGEs"/?^Ϥ\ˋ_??.0EAcx\qLڭyMK%9ͻ=츿%#./rYmń #A=:2Nv/dYR'|5+Ner><>`↗PV*暻 vq՟=u?r#}<)h;w1YJV  [U=u?r6Yu" 9B2N3\ EK۰).r5řԓo m%fP(b ( ( ( ( (6-#FI@o7ϑIKQ1 *`SA`v'goXP;PZ>,2E=Jl\0|tV γJvib&-+c b[.YVB70\u[`ZS$8'luUcۧqVڽ-dw_jI`0efuΙ[@x 3q]ǚX=<`͹H 7 4VتK+4@>GЃjK }.>7L? 担)Y9mrsRSU$V8Q2QUj7|EN`D@GE>ʖb`@;p;TTU;>_MڪU;>_MځCv_ Yv@J̡QE(((((((t:YϒEVh| SqϦ>rFУ,:#ֳ'd_5HvM_MڪU;>_Mڀ,7ݶ+M7eB(QEQEQEQEQEQEQEd7a#.d#89ֶ.u/(yCLq^9&.H,c`GcHw+\^4!LҫV/c]Aqّ]tbZv?S/.;O_@̺+f8PIret؏?߽6/Lbw`3Ӣ'CQ]4uv_v<Jۢi.7tX#뾍BǑ'ּBr)rqNqza :/.2ޝ/\&mWXĆkd7lX#84Fymw ʐ1 !$d1##"6ݗVeiݶ(@QE ( ( ( ( ( ( )ȅ( ~f$އ'3wQk$BEqϏIY3p3ű 9ֽd` acHLu U&Smg}yz}`,&3,>hַ֘b!"3Ev?֒4ٟ9ǩ- yv+w:g8>)Eip$e]*t03cDnOaf 'E0ojڼv8U@&mA#B .OP=}ոi.eXT;׽G){7"{G1bY ҈cs=j e]/j 6ds2}*6ifBGٸ"OEFiT, s㯽6{6̑V4ecs1P2efvұ#l|aÝ?Jf/\&mVSYO =w|pEXo m%fVno+2(QEQEQEQEQEQEQE]y&l"^"2[_gn~s^ׄ_ֲ)!Z@Cnp~o?V`]Ӕc W kn'J(tb`r21Oi#:"9eCAEOsrNƛT.`TRc{7m9^F]R7ܥHqozG$.T.{(Eprs۵;N趪oN趠 DԑEݝ{y¨Z_^*ʏӒU s09ǠߵI &UyZ_^*ʇRvGڤ??˜yZ_^*PBW1F[cչu+4ZLœ(:Tjߔ QSO~S(T݇PTjߔ >'a)?ڤ??IAEO?ORv@QSO~S(T݇PoN趨'a){2)e*HA= XMP bottom-0.9.6/docs/content/assets/screenshots/cpu.webp000066400000000000000000000551541447252316700227710ustar00rootroot00000000000000RIFFdZWEBPVP8X ,ICCPlcms0mntrRGB XYZ (acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBVP8L:/G5ⶑ1+"&zP.83֒l{aG K! ٝ<àCaQXjۖVJ!swwwwwwwwwwwww^|s9O;d RAC2 ɨ;"Q@nTL!^  r:,۶ IիA=Wٶm۶YQ,#ԶֻS@m[n[b+zƱOVp)??s=m۶m{Ƭm۶OnlfT崶kjm{Z7 XՓNO*Wl}ҋm;9ضŶm;]{CI$ö϶m۶mږ5 ̶͌$).ꢾW"1P{S4;F$)!Gm۱KKUe.W.[]elVv?fw=[m۶m۶m>۶4{bIůmIũmض]Yx;mx(6ƈSmN+6< @(ڶmim۶Z+כ55n"FRƩm{m=۶Y ڰ$YL_{&{a'[&?oWD>sQZD"*EUpSuұa 0&5U-P֐(MPF-Y&m4bACAHg/TkOLm4MPg hQ50S$a"dTk6a\c ق2/oDm:zQ63"yI] J(XYgM "ePm!#(ʕTee hA"j\gܦ1cAH@27,7>DGYi&ަsZQ WH@w+ $Afƪ-Ϭ DG9@khLyɭ`ΠVQV hRwNi/pT!D7( $aaUͦt`/% h0}; PQZ )yȺf!?`ִ1~Qi4cW8Hؾj\Crpgb⡖RH(]:ZbjDd0+` 5THZ`ͦU[) $]qݔ(SWPBXEZq`?IuQ'/ _r ? o-'%b 5ufW2O4,п}P̽k4gL˗5!ըv.vtNv]^J"v2|6J"J߸e( i41q;ڛ(6ZMuR )k]&Z~b_̓7 <ІrPosyg]!SٶX[̯Ęe7t?J[azrJ"lu 4ɘRTrtѐ:fX0./> 2(S2|p6\$p+[[؈"ivNk䰍e^teasfoƛـHe%2|?%WOɢHZ4(MKʦAZhH]))PE6TX*(B/h-TȰ=X5w_Cj6hzA$τF#)! y50X]-g4z4 \V/ҋ|GAK$+ h%{7QVU>zc=+Ӕ—y(֌!*@_0KH>ċSEVRl) )$tsͪ;& OM6BhH뎫Ͽ-̇^pȳmE5 V͘jri!n 헖;Jǥg첗v _YrQ+SP_)2&漈=> d#j%_ij7HB5TPr̔1ӢG!wk& fEEѢ-k̔?ӈ~q#vlW1KHK^f{vM/fH׿z8eg.EP<|.-_! _6P/nDUMGDw%,a T|`۳a%]@t*Dў-R''KuݩC)ȪZ}9ݾB|$zܛ Ib~0&] oK6El -2G.EmY'm~|6"jHw7yCOfӋw>v"^IL+%` L1{ |+>iVat3i_=l+XVN BrƳɨEˆi47`W:җ%m ^GrGW:-Nb ^FA,kRQ/wbN7#Pg7z;.vj&7~;ٝA{uBtK V>Q߻FjD4@ޛ'xc_]K% ' y,l8cL2i.} X!aGJzLicY:}JR|7=G{ԋ kboyT-+o]%K%ߐrE7y Ljy7N1BԸ{6ǯl _D7!; ~WMղH/.ΐz\U~[fôV#T>JI^p{KY;T ]0gѳ!#'{yZ???F&IVZ( je% ዕ1}4A˲g%Y[6=.z2d}wZ m#F-z%ɟfv^z^W%x,DVcǶ$xmUM}UI> 9Զī &w`({s҇7vْs;lnnmYVPwmhi0{-G|OCj!Avn;3{YY\!G%O4Pu"ܳfFXz; ۙY[18p㢡70`;c2گ'`n?D G"?D>8y:]\^p4ۧO~Df;=u{H7R?@s߄='e H[3fBUՒ'nuݪfbyLG /ewl o:+#?MĎy1 ?`U;TXaMȺ ӳvAsAEGiG\lDG*|f]k{l_^ p1xO׫'TUzܨW=wV<^׋d캷o&V*eh$eM@‘TusG 7,p3`rV>ֽ^d8=[ JOrH=Ф#鼦mvt`O"KZ$ѦY{tv:v F%-0%Wmj[>tMop[XÍxT$7@6uJoB km%V[8/Ih(mJ2p6$h'n 6Gi4|GzI-P 4]ܝҮ[/[Za{ op+Y}#IN{<[1romfpGWSP/^4aοKk3aBwDPif c8AxZoڬ'k^sUzQ;Q`7jV7ml'o9 7h<r^^.P,V2mjg2ݐ^wAxU[@6MSԮ+e=j'VZlEl溑4+om(ҸKYL?"dW5;!jPIRj3ܲ#(I04n p^7yl?W0׏tYƩr2kdbLw$}Ia](,Yׇ{աKUi^_V`NSЧm7RWm0n t) 5wVkK6^|oOk8Du}7˶3ޮb}\|8MɵiϾ; ȿNGySofV?QBQ~pcfpB8ߡj6Lj[{zv{r0h&N-,?m_97ֻ7ra];g m4agf^Ov>B+V%r˟4Bݢ>WY^O "kRozS ?hdCuw}km| ֫-o[&)]n7H!iL\SV?~h:Ҍ]#Lv'h\uJX V'@Gj(oi/}P[ateJҍna\raMXgKR kOV+/-Hp3O?Э)J0T<қz'4Eɕ:hj *qڳNkjrȐukrVQ2MRHWF8|N-ܓe|u kM]P+O3kϾ :"?9{`B{k;+-V L74v{v5 1=h\|]IiYV"d7 0HgGu^HH? N$@@%-mqrC@D =G]fecsp _JVU抑!紪mYw/Ҟr{*9[08 TT[2)}N`c|z2\⹠ [wV)}.3@/Wu@|ь8N{e½w^wGqnId~L?F7'eKRz{ں/+SF, Us ]k]x$?zpwθިŏFmp424mw鍍rnYO*Tu0CGҜ\Vrw%)r#KVt$K_Ƒx΋ƘΎ>싀zq?F=Lq|^f'O-ؔC[o ؖ䭽0 % [MGJM'C_hSsHo³iGiޭ}kJ(.e'E3ˀt0Al-K+W~,VpC!DjvAMLOG+SopӵGW;>m e~۳WroP+hhRѤ̝.r8[/\C^n(.8md/r1{eY ^:4ޡ8\K:>jo @ߣJ $]GA 5,00o_oJr˾>% V'HlEzVexT uҫyw!4Sb2gxHNx>K5b-Ц>0iج_!'U 솞7JXptyϐ:X<荒Z#?[g ^hu8|oHwia'}FZp{㏮|HX1'}+3OWG0=<'}fYQ<@a )5 M~^T<;I꺅&}k-hv\=RkM:+EDwjҐ̦ V%}khO5u?x& )%MkWoiI7kH4>kRHePw޹wRb2S&꺽J7)YuP#8bK~m<][y{ܲ* V-4;XBN[Ofab?R`ɿN#)׃-BeHHozGE>WeiRjqVMu+R${ blWբ–Vr^_ŢԬnEq#A4LWmlUdaI-vr@k|Jeϝ$ފY3#L?(xʭTͶu,?@yCe$,­H_PKi[~'ج)U_3O|TLX:~z  =q]Q}03z'4u\FwVBjGV;:k 쫪J5g/HkmTQ۵UD''٭]u[Nw+Msak_Q;MHZida֘k^sL\G$n\Pp9lgUu穠 >=Ow'h"ƈ#=į  x#`kcg{ q'&lߨx^0ܒ7W)Fv^5sxzP$j9NZr۲id%]U(M8DPLb@X؃[WqU MY^wekgm_=qgpQbCF-/_Dg :M7F{vO6ƤExdmy4Vڹ[;]QFm(}V2FGeq mES(؜F=-z(.O}d?/ks,p9ȍ`5x$UІ# /h(/E/|>hY{ |-N_86 26wP Eۖ=3-.)#i.KC#Vtdav% |IxԲU4ݻ ZX4zš(!^bII,)Y&\pQ,a2Xm&Cv))Zq=JP@0isjE }v/Ca@:s3+ !M+^6!S<q$X We@t|6OQlSߌYp浡(H?*"i}UhⅩ/sjH7=={*<⃩2 !E+L9~:dk ?L7d'71oMՅ4<6•lOg,r,Զ= _+TG46!E&#?"7_#BS1ڑ䖥vQ"w\ jF!kK be)CA+S+-gKܾt}W횣'4!V`1Ҳj@Cxhӳ+Lz2T1bD+73SwVNb.400A ˟+ G$ʟ0]E@UV#A31kϝn?8}PTdJCJZ]:[#8Dftd$싳qfa"nkEDs,w` i='7a[,!LΠ:UK . @?dv:% 4møۜAzY8<26eMJ&7ֽjE/ed`T>ІCz:/Ml4)D8aqT6[4FӨ7")wTvRT)Qc^E"?{\GxqG,fB5h#>⇽^pSW污_f5\u 62kZP]Gh1/^=^L7LÐ t8."o>7bX%ހV0w=F+"sU0Xd_ΐ:!M'NURZieL5qϮd? $\fLFyt[0iݔ_z6iHI{(k$;³d Ipn ] 6M>PclNt"2Lf|'az4{ǷGKq/i=(3w/=?Jk¨'LGޛ 3o]]e}P83 Gkp3O3hZky$!ΪEK[IHqG_tʯ_k1̯&p=}.cX5*k;8贑v]Ti4< :D`\mˢ.ʊDxnY1/ Hqaex)5/Ův` MUd弹y) ԰#j?_o?:%qς+g,w>Ša"\Gm.a 72`Zi\ce0w [0~@GJqޛ8/gw)wݡw63Rh}HZm ` Wu-+%(.ջ< mDr㾌ZR4i+5ƥџ添wN4 ,$n;Ѓ;OՀM$X4 ȽD=IbcqN|No@wܧ׀hqU ko_MWހq!рܣIŒ趢F. Ƚ";'${4 Oyfw]kEqOހ=bл;i ="qwO5 w;;u;wIs-TrWlA?M6 B-ض+mmbi\HN7 wi0Zftjk@V;싀$;I3=hlBn Uɩ~TWn:[ }}P9ez 5 Tn ;w7ܿ'Ek@Nyj@)5 L(~UL=`(yH|އh wAav]_6;04h }|C;۳. ^ }}J9ZrMow1`'Dk@e٭w0w_k@k߽1u(Jޙ&SeO~yXKRz.j ;KXGn&`Gk@i_.I}}cbՄh }gLv_:眮Wq~q_0&iF'Dk@-wywܯr_Oրܽvӯ؀x2_qC>_;Ru{hBVX}ǽ3c4!^rT; 'k@a^?O|]-qfk@/@w `XwCݔ/g*xZD}ǽ睦?B@WWq׵pv^H\4)/aC߾ЩnvC#C^d iL;&E귝*$Y7E{h\;+I6>d窕Ɂ}ݞ"br:gKfF;}؀X}].fpg؉^@>g[ok }] ^r_ɕ%n!;j s/_ ,vE׀7Tq/mKxqb/oրܗ>S}ǽ睦?rB 14b2,o _?A;@BI w7!/2/2/7 /2/2/7C ٶ7MR<H??u& C˄7H&ek 'ٖ*9# r449f1,/ ԋ4%QҰfqg>e(x'{̄KÚmoVoJc7 / T/h-H]w2=-ovnR=={C7ضom[ѓH62G9tFm_(ɶ]!##v.>H3߯@s@ĆybQq%8u7$ҀwrćHQiTN|_(i<€vڅIUY#wFb! o`Aϟ Dq)o ? _?A;{H97Rnx/ L2,o:,T,qrHٶ-/ ׎KIl[_ )<9WzRmK =?u )cqOΆ4g\?$FG) #_@EPHQEQEWc_ 9\9'v\ujkb>CȡY7WtDaUevȪTGCZukO趪kO趧ɖ̲v@J̭6ݗVe$PQE(((((-RցEE=dw*=┑$eUG΁؎ ݜqb֟/=(ArJsW==|y,@?h`EP ((?v̭?v}̢) *֟/\%mUj֟/\%mN;[2no+2Cv_ YAEP (((eqSδ8`|3S<ZF#0OcmXm)$gEZ#UO'DNI'!\g֣!އ40["푇JmŠ(AEPZ~!AZ~!A ERU?>_Kڪխ?>_KڜweݗVeiݶ)"]vӷ88%QE :S[ʂ?׭ i]؆fFҟac~zS $4:e}QEQEQEQE=qjeIL||t=: }ŠP H'ڒQ@C!۟+2C!۟)S2(0Z|pEUZ|pE8)l-!/m! P2?v@J̩-2evIr?Pҫ`è9#IvsTT"<}(%zΝ̎G۰GOh1ysS׎?Zc6v`R6*y!|极TG(=jI9<QE ( ( ( ( @,p@Q҇e wk̐)s2?: bottom-0.9.6/docs/content/assets/screenshots/disk.webp000066400000000000000000000643321447252316700231320ustar00rootroot00000000000000RIFFhWEBPVP8X }ICCPlcms@mntrRGB XYZ :-acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBVP8 f1* ~>1D"!)L ugb~g[/ l\US췹/߲s_S/p_?~gosdzO#_7}@=_?οdgo7X_'I;{?o/s?\U/ٿ6|~?W?oAϿ'ȿz=g?gWٿ)'//n?'??g+O?Oȿcw{WbAF-RN/}\9m5\'HɯJdU2kҪ5iUsM~ZU\&-*q_W8ɯJdU2kҪ5iUsM~ZU\&-*q_W8ɯJdU2kҪ5iUsM~ZU\&-*q_W8ɯJdU2kҪ5iUs|~]B0(jd,)k~=LI#R!4hh5/4^vaK,Chbi#fC 7e5eCS6$IЛKЕ+ 7CzL"Dt@itit"B#%\U#]>]1I,yЅҽ+U[IPťMi)5SIH$*d>O6LQX{Y&Pld k `H㸌{"ϋKЛAETN&R ^JA\Q&4gr-?͛4XyaU Jx:x{Td:P|K.T0ç&")V[oidϱoƁS k kO&O::x S7֮kM 6!1XA1"z~2" W#~q HMm"yJ:}M|DKzCe^QUk;$tOX7 GK&gj"wb4!  mY|,`ja} #miUsM~ZU\&-*q_Si dU2kҪ5iUsKMU\&-*q_W8ɯ dU2kҪ5iUsM~ZU\&-*q_SݯJdU2kҪ-6UsM~ZU\&-*q_W8ɯJdU2kҧ/J@euK Ff<a={q1H 8p 1]/fO}4 +O}4 +a'LoNY_: ?}Aۨ8[M$@A)JZV5Y(N*9*ȩ髁7N5ÏG%+TY_/ID: k1=-Y mK,Έ_j۽g !_Ei<CV>i[سMM`㯵?*yW+{7eh >= VT(e2s;xh׼::A16ء baazxdU2kҪ5h&0/eɯJdU2kҪ5iUs`]&GߨA`2q_W8ɯJdaA@}BZ;hk? kM~ZU\&-*q<+Q9@dK^OkҪ5iUs()MR:o,{Ȏj npۖdU2kҪrW98zSoLU4 NrcvdOHɯJdU2kE0]f%C, U&wWQp M~ZU\&-*fHzU/*{$WJQUCDÈ;CU:S$]>m(."IcAAaU;P&H4g$ׯsOL}XQ꽿gkitiX嶢=Ut^KRM1ťzЃ+VXF[4=kVllitq$kJT ywNIšcgK#M(vƌiO'|{itir԰>|4Լfaud۸Tt8n"*it7^!u_|D } z&!'tTMʿ=O\8j澄\<M;1xcit ~]&+Tב5CJ}>><-L4/%^]> %kb͉--%&k jKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛB/&&&&&&&&&&&&&&&&xS_________________tk]>]>]>]>]>]>]>]>]>]>]>]>]>]>]>]>X>-.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bkt-O6O6O6O6O6O6O6O6O6O6O6O6O6O6O6O6O6_=1ťMMMMMMMMMMMMMMMM&->"""""""""""""""""]>]>]>]>]>]>]>]>]>]>]>]>]>]>]>]>[Gm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm&zcgKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKMZ}M|DM|DM|DM|DM|DM|DM|DM|DM|DM|DM|DM|DM|DM|DM|DM|DM|D=yitititititititititititititititititc`} } } } } } } } } } } } } } } } } ж]>]>]>]>]>]>]>]>]>]>]>]>]>]>]>]>]>|LO6O6O6O6O6O6O6O6O6O6O6O6O6O6O6O6L>>>>>>>>>>>>>>>>>{Y&&&&&&&&&&&&&&&&%ititititititititititititititititit[m} } } } } } } } } } } } } } } } } "鍞-.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.7i5}5}5}5}5}5}5}5}5}5}5}5}5}5}5}5}5|IťMMMMMMMMMMMMMMMMK&&&&&&&&&&&&&&&&&B;ititititititititititititititititithE3]>]>]>]>]>]>]>]>]>]>]>]>]>]>]>]2ok k k k k k k k k k k k k k k k k gKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЖ+ťMMMMMMMMMMMMMMMMMnv&&&&&&&&&&&&&&&&&Ћg6x} } } } } } } } } } } } } } } } dAAAAAAAAAAAAAAAAA'O6O6O6O6O6O6O6O6O6O6O6O6O6O6O6O6O,V6KЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKК hMMMMMMMMMMMMMMMMMLlitititititititititititititititititɼ O鯈鯈鯈鯈鯈鯈鯈鯈鯈鯈鯈鯈鯈鯈鯈鯈O5-.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.BXlO6O6O6O6O6O6O6O6O6O6O6O6O6O6O6O6O5KЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛB/&&&&&&&&&&&&&&&&xS_________________tk]>]>]>]>]>]>]>]>]>]>]>]>]>]>]>]>X>-.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bkt-O6O6O6O6O6O6O6O6O6O6O6O6O6O6O6O6O6_=1ťMMMMMMMMMMMMMMMM&->"""""""""""""""""]>]>]>]>]>]>]>]>]>]>]>]>]>]>]>]>[Gm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm&zcgKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKMZ}M|DM|DM|DM|DM|DM|DM|DM|DM|DM|DM|DM|DM|DM|DM|DM|DM|D=yitititititititititititititititititc`} } } } } } } } } } } } } } } } } ж]>]>]>]>]>]>]>]>]>]>]>]>]>]>]>]>]>|LO6O6O6O6O6O6O6O6O6O6O6O6O6O6O6O6L>>>>>>>>>>>>>>>>>{Y&&&&&&&&&&&&&&&&%ititititititititititititititititit[m} } } } } } } } } } } } } } } } } "鍞-.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.Bm.7i5}5}5}5}5}5}5}5}5}5}5}5}5}5}5}5}5|IťMMMMMMMMMMMMMMMMK&&&&&&&&&&&&&&&&&B;ititititititititititititititititithE3]>]>]>]>]>]>]>]>]>]>]>]>]>]>]>]2ok k k k k k k k k k k k k k k k k gKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЖ+ťMMMMMMMMMMMMMMMMMnv&&&&&&&&&&&&&&&&&Ћg6x} } } } } } } } } } } } } } } } dAAAAAAAAAAAAAAAAA'O6O6O6O6O6O6O6O6O6O6O6O6O6O6O6O6O,V6KЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKЛKК hMMMMMMMMMMMMMMMMMLlitititititititititititititititititɼ O鯈鯈鯈鯈鯈鯈鯈鯈鯈鯈鯈鯈鯈鯈鯈鯈AM~ZU\&-*q_W8ɯJdU2kҪ5iUsM~ZU\&-*q_W8ɯJdU2kҪ5iUsM~ZU\&-*q_W8ɯJdU2kҪ5iUsM~ZU\&-*q_W8ɯJdU2kҪWļq_W8ɯJdU2kҪ5iUsM~ZU\&-*q_W8ɯJdU2kҪ5iUsM~ZU\&-*q_W8ɯJdU2kҪ5iUsM~ZU\&-*q_W8ɯJdU2kҪ5iUsM~ZU\&?»)ߕUA hʝ-> J Go3M#̌Z!mp %~F=W ?\r`1Yc4k\+]QwJG2PF(#BI?NBrflx <\c<5ÙS#m 4;G5kDZЈ}323R i[2 Y&yX}: 8d !\X5OQoXyU%RCy)/$3qY#Rz?un!HwKO l^lvͱd2>۔Uo4珖f X5SIiJ9Ax`=;2Wc"\ŐDvL]'_ EN5? dC/o{W&TZ˓"* tve;~mU JW;x֏+@oku O%ƎxK^UmDBR3!h 1X'X=gxY2x4Kble,, ?ӧT%tM4kαS!yE2TfY@jRԋ hۨDwco@u9T|F)0.!0]e*la){ƘFAx#`Tz^L|9*i0 hW],9CfllY)σ$v_%laQF\spA5ܠD9G\Q*n+};eSf 0VF8IwI$]}2[E`h/m""ƙE=P* P?\j@k^-SP-E{j@'*cN/Ԇ)͠a.IsdN[!pлd[3,=(DssR.ZbhFtVkjxJb;30KeMN-z-[M&C;&^+&3#_vK:6K:UBil;ʧ'Tz*!L2&AI70kA?v!Ӌ%wm?wG<6#j^puJAXgŁt-iکFmnR":1/L4: ; VS`PW " 9SؙKu v~1S*v:QhAbcSպք;/ڦhoA9kʉ4ԌNsu7Ns' |X5ִ T3xfa>a; ܳs۟,*{m*W:"/YEi5`O9B#eNh-|ƋNX?{R'9f!Sl|6RJ}6cqK8K0/Xyq[_c/\O*7VH#Ί(LZ[Yq[C,)7%X|b^jM'jC͉^0.M6S H(}2.nfyqޤ;1.ͳrŶ^%|)C%.v&~ ŷ=Bq5eGYE?eA"w鉧(=}{䯑%-t㟳j9eSvQd1{bXt[ p9<8iޏTvApdfkDYe@m,;VٝcA*st1Z"V,j,& )KcMg!R><3;chcF7pؘӫM~P_ ցK01!' 4&NBI47=zkMx&fyDY-=J!} X̪t_OQ gH-(Yy !P#lqhU-t^`"}+">RuU|!Rx8xp w8jO#VvUg˕V䃯Dkw됹mg=-3J8yswBqxr芲{pPinS3R͹ &,/`}w;sk[V)E4-KJ󲥪$ <-JU;ίl5'\!>l'{2WޠHskrpE_Oחk(lAgyQ3ԤјSXb~$|cKçL<ҿo_~(Z5>WP<śs,sط-T8[M@Qo0n~Ľ:`LLkvjtHɁbϰ3ZTZD1\lU3mt$9Z-ϣX\>^P )7,kc~1wb7&2C/J:B#}Ɏ6HKWo7{Ҧ !2iQaU֡Zv*3tEa谤,i"]{\fk=(_֔j=CBd2/b7a`*yxkJ}- YrW8Bt]!Kӑ%C"Qy4 QTVikԅ[qPjqcjF28;[dacNjѝ8A^ mDܜ7mo*S<iv7A|lVCK`R ﴏL[ Pr$2׈" hz^ ?D fgs&YU ^t+} -ۄ"<A)w[‰2\mLs.=.:D2ӯ  S:0fPGS1xdБqwKkJCG}d?o8Ԍ4 E^zQrFiQb9M&:8i[3f"4o^u{*uX2Jʗߊi[AUG/oXchc q6U+CEM*^`{Aıd .6;sl3$%T5"(wKEZ6tZgNÿud_a9Oa)&L"PثÆX3LJ?"yׇDP݆! vA @nXȕ[g<'T7zDF!z4xj< ?a`TiB 8xD 2Ln_nFGt/m"WY/5XִҁAG nJ,db=B&kY$JmMб*Q!dlJs j!@?MgEW Yfkt 2K'5K&h`Wu>ӽ!Nq: O5e##KV: J72mM /[nUdBή+r)'hQ$=kr}=I&t|m`}|r?襶oھshb|N[.BF{69=X I:ѣĎ'HS^Wr]6`-jr9!>KE۫ nڹ +G"Rg%a=bc $NOfE%0eTZ$mr8\FHRnn['4x 7Naߕ#y|" X$3LJJ^2M!@6`au&IMWUJKa`K5ZQ6}#X6a`PYf $:δ~&Deh,{$(XsqY@1!/v"N}m@T$(h[geJb7PgjA6W*;Ǒ,x}"2uFyrq ;(aN_tm<1|9Q8. ҲcbkeU6,  `A09Fz&b-PAri,4@5Hƕ4eiϳ[UFc-~b yآOKz=T0WwD[ÃoU׋Iaڈ'$8,c{wɥyoUiB":C9{ճW?b)$n1H~A\{!G++ΠIA׷ȪidkEd2Vw{w{.8]{w{w{8N`O^xw;{ýxw;uw{w{.x=QfmPdGn<|~q^yapTU܋Lg3 )0~hǵLA,Ն1 $@;@bPF348ŗ(@:>Aon9y^Sw'ݏ!^Qwec_NmG{Ydy^hъq+~bqlж,[SٔI44e!ihݎ6e%QLu*qw)f^_@ɼ((x2jqkXuo&N`A( }D" _Obf(mXkQ~t(분(~ȻţnYbsJ@y}'v]HM=?Kvi]?{B݂uv!Jr APMiIYv$Ԙ:mUՈ 5#8J͟gfwȅ؄3"("7GR+ޥ7:dAH@ʀCq 9fiOI=[86JNr?C!V"7,phؿZF %0SoeGA+ɥ'zԫ4s| aKԾJsu>qBy !*WϺr0)hHmJXmaؤ9VJy~XD f܇&L8Gt1r yw9D(Բi!2Ω}ރg.q*2TnG詸8;ydiοe [6gwЦ}z–CV?M/Khtld^d|?.0 ` !N]O3yY`6<I _EQL!jB2Q ꢫI~}jV鑢o ]T] +*lm P"9ҔDO0O`?}'p+e /STne6v5OV8wZFkݽM>jL Ybr}싻9YrQG* Ď 3R7-W1y|pld0OlsO'~u<:t-=o>:!WR59)8.y98(}+gg~? 5=rtJG1MǓ2EJ[ v^c:Cms0KrS&!imq/p{I|i%CԌ.DAx'ç}KHZ`HgB^7 jP[ޓ2x]#)+p8B3{L8kP!_6AIkϗav3q 0Ob}B;+GGAs4'u::" ]xw苒<@'1`Re!Z/Y-׈E.i#Yk Ÿ\@P̖ HD8Hât 8.tqe#!R~BGB$nh*ԎlCö&zdm:up ).i`5vC3G9߂W$_zOfin;sT(yt t|KXmj}FE$ }|7MjjLC `][GJKi+shuݓyLaC(Va\?38fnK=X/ ȡK3b;BY`,8ק<0M-R ߧngM FLb6eyI&o> ]G:!~adE ?][x_ 曂:0uF ) jb 4$L,O":rJc VE\iO/%CJyy*SPҞ^J m|dX[UBsQiVӻ-nߗpg!E]~OtCD `r8]"ջDy-StQ@tnG^ et~JX <$4G,C}bit|2P9jI@㳱dʰlp(&RF9R ;NNipTm'dƦXY7"@sNzu*qR&-P8(N0b_U%CGϸ%gӷlϭLhFfRx#& _ ?F `r#4j'LO{ dbj67"ǐһ_Ƃ,& iCn}HBD5=Zjpo:{S i>I?vP9oS`V<ە= q`jK_%wd}_H' $SFi׳ۈ'D{9PHѠl,k tt#u(|2b[fd)0MD;Lg8|H6Nf'wʱ2!KZkg ya l` ¶h哗QQPѩݫ%iB~")'Hb>W16BS,égH [3Q:ttDNU4 !a ceKRJv:Kë$2\]3j<٥GmPs<{,+O!lƱ_Q{U%>AA4POJdqDxkav8÷ƂOef.~4ߒ #|MCb51}:d"Lpa Fb<]ua$H)YD 6tzO`Av!V]F7S.ƽ$Ȫ_&la\TRjaA N:݆d%F2\6N2f=g(N$@~ͤ/hEm?!TC&v()&J,|[Cvg$5栟RBiZ_e!0Cp~K3gfi*KسF~2^.DG" {>[w%_;h.֘RZzBRbջ1Ub-+qLM0a"4rDu|=p=ōA͙TܭVnEy>tj.*Fkv^@(vYg<K3яC'$$|,>@ e>-JOsFI$_h?3$YL촖texcq92%hJH Sxtjfv3)ŵIgWev)]0/ܗpŖ+lxgCҞï)VJ'Lic6=|Tϯ9cO3UJj ?PY<8qaaUr9Q$QNޕc (Uht⷟*-qW\ҁVNySbt3{K0j6AfevvyvaN{rhaA"1S\L(rghM:)Mp}Lm{4F*ˮVyea^tp__$Kʐrl I5Cwjx6*c.M.(,,ج>l5)hC.~$íd)=Ɵу>'T/\4dѽ`w?!h҃3pMF8Ζ58`z`}=d]&2R`hƅ`JPut \:-l (Nk+(9hH m<DT1& >1hAwNF]uWXh*Ɨ*)Gc1g0F] ލc7@lLL"HY[ %$YWZ *  B?'~8|SJ,LϢb2@h]㕨cB'YԤ5,_`|[6d5b1b h%PU7`@ne#ϲ '+ /f}"Ѳ/kʊ-),7 _C@*\,! W= rͣO~?n9ry->Ao!G 4Ԯcd;:7zK2Jk2OS2Ky/h0jsfLMK7dT:9vr")G 4z0 MkHB;:oȎoxmcx%nL-1+{MoMu)ZQ_\Pre0kDN[6;꒛,MBVZG$idOAkL=Is=E 7xk?Je^/s}ǯiBwQ' v|";dYiOs|潨qQ)i8F80tƞ01ǁ9k ʵ=kG/T ŹB٭fw!]D +g7}!2ѐfPI 0)zb\aY ֞˲ԼhQ٭RZE@8d!$-X? 9 bx$j3kt̄>;緞+AMfe5!P_I \vH,'H0:PB=„{0~Z(s"uLK+\0(Ѻjzl }uz VC|FdziV0FSv{BՏ=Gߨ_< ~Jj?9Px7rb@H9EUWWtV,HdgG{?2%n.V\*hOGE|vUo.{y[3ʝ*^]46]U03.SspĜGn0H 'y}YRx"Zv(RM87j;ЀyʿV>H8쐌d%bR¥{JO h܆qt$_”il|a'S{2>&l ԧGRVflIS B 31X3hYЦ,"?qQhԠf;E3:n1AxzrX\PYoE ޶#zɥ b RQC;&<@:"dey IG!UEV0.VfW{3Zbd΋9tޭʠsҝ#xRl 8znBTV!Yhݵ;տV}u]/u)LE\B=„{.1q]82`j Cr ft[I0dTONi|Z !#2]zIɼVAŷ[dxq&@0/[G.ڢ%~DO wanC^CXn !RV9* Ơ$xūA(gr_.˘@P `ME([H"dpig?%ZFs7Ok,BJ$Azc㔕|66gL 4 a6x<~I]Poyg|_ p#&f {H= PNcB^΂,N}r8L^>Vܐu$j}Z_FPR/? zL bˆIL7GMXGe2Y6p"m+DZ9vJv5yZ#Mj|Bf^#gMg35㇈go mLU,$la qwJP9{phdd/aa:JL56pt{ՋUd XDujE~OI|n] (Y'jEo F\;oz.`rx6@@:,70w=?@*'XM/FegNg?ԏTsx걥XW`v.Yp .+\TjK{8R=>o(Gg8%" ܠX1YV 9/#Bp>GzfRsԲ?c`zO' SZ(1ꕺ.!Mt ;yF<(KuD ?}^ %"4!ؤsO 1S,f_>R+X~u&яz^v~ChZH {DeQIwq@pE@P3@Q N[c셩ƀcΕg` ,@. 2qi!5p><"a }"  X=UXt0qi2vzUKֵFԩBVhK<.O8|Ŗ^T;Ҿ'NMD4Tj>7m[afMycDb wʁQ='P1i~CK͵[/BUT_Ɍb͔t&hxxɖo2Qè؀|̼?u'&po86آN aM_*q"޾Ei$>evѭjkWC<}wƶt&Y64{#Y+HRss-K7$~SZ;xc&'ӳ̦O~3mfa o95OȌ !x WX6aJ/–D6I6g LgM 4F5ikWa^CGȖ%+AѲ^Kyo<,3ZbԿN g\:,>C[DӨ=QWGoU%? 'nݐFDZvz9h,+C\6m+ԌB{sDJW;D53RnPG)ޙ)ZS)}4~TBW8rBQVF ʴ$-r} Qlp':BI ԇls `gqz2ؽOȬ_W4g2(r<Ȳ81oYk)LǠ̌| ;|& )me:NElS_ogcrxz1*@*?'Tcyu1^i%2@4y<ަ)R;8-y'kZ4['{BPLd<^z 5m)L9&#\@1oiLe&`" ?f[ j񠙤p9Y1̗l>Sjyտ`ВL7ҷzD#^ =!ęA+z"x 1 R.N7PdoC窗n|.c3m"A%F#zl;԰H)}(ġɠ?%mqSBN\ V]qZ`-~cnv=&G&bU7uORߐFֆ3hUPu@7o#[@hlCvfbA\G6< kY֞jQs[1Y |½&rc= H+<9,=A,,iPi/{.C5OWt wt3Wg97/yFS2*%XepR}/!e;ҷDa L^,{nFEz2 QV̧mZ߾}t,RTܳV?,V4=8sS-,ȿAm[¬'$:{(`=q?Oܸڙ&!* _މ7#w_Gv,W0ɋ(){#SOK4h|]Z@qSҹYmWb9.6E*ǿ(#w) CR I3spN?h(ל z _k,䟩yRZB԰̥ ɗ$"}sRE&#ElT@>z!KN@^߽4]WxypcF 'Vec&^Y!ঢ়8qTQt>!D"]$ ]"azj7;6=@mD6w$;X6_ Xg 9 UIwuƆX媆Re[T&oxH":C)-oo~Ȑ X|7F)4{}• kG*5&%ŪD0V>;ڵg5),-V?kmUnLn4#K7R\ulnhSygp sc$ KsOw[Rܿ31;\]nz㮗hZ~2(P]նTx_ {ы9HV, fW { 0C=@"~'>p|I*lNC[Hpt-4? wR+7e.UM:遌{s2GwI Lgo=b )my|5FKS}e aPyT"*e F^󶁶l\2>L"3Qv!G2{#^ZHcܩbFg<|.YqL+'G;̪z8EB Wh|Y -.Y(At1^ťJ<3d͍rK6+XD]ы](X!6ѱ֋"m ^z[s&}NtJJOC: '(KFU5#@N˙*w v[a C딛K<4n"s7i9!,(Co%5n%ca}FcPG:툪WfbHäh=fӜ@M06:c"W!<ߌ{՛9ҴaPAț0-@E&j1Z% s[̇f^(cr<>peJXw矟'7P+ɿ^i@æF[_DQ(J%DQ(J%DQ(J%DQ(J%DQ(J%DQ(J%DQ(J%DQ(J%DQ(J%DQ(J%DQ(J%DQ(J%DQ(J%DQ(J%DQ(J%DQ(J%DQ(J%DQ(J%DQ(J%Dv9FW :Q9 П U6H8==@bottom-0.9.6/docs/content/assets/screenshots/memory.webp000066400000000000000000000343201447252316700235020ustar00rootroot00000000000000RIFF8WEBPVP8X ,ICCPlcms0mntrRGB XYZ (acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBVP8L/GU۶$q1yw$ ?4u[?.sv)nm]mLwn?hss:3d2Vl;9*D{۶mklŶSضuVmce۶Ɗm=j5bu3:s*1xobϬj<ĶսºF'WvXm۶z\,uj(Ii[k>.>۶m۶IhWS5{vm/m۶mIb%{]NmDPBۘ;LD mFLͯܿShbӄ5 8ApLx@Dq0122)"bUSSӋ$I6<|0F\T|Â$UҀt>2ͨ8ukEi@*:YweKkRs+uFh^(=05w,1pޝ 3%5=~L=)/܌,`BG4Q}gל>Iu=6npU C VG@2@'im3ID%9B,ЪȀ‚ 'uĩV]J BVPg[oo{j>;eX!|!Nq˄vgkm:rs?k>[WwwL:f+s@l&-r.~YV6`")vuB@)+jhe? },+#"l -a;BoRhDU #k= Ҍ1w3&k"-P8(~C{!iJ[@+텊l3N<@Wٞn&}6ev4㼠XW5j}-x9N./+ֽB/ҿL$QX}܈nLfCotBУ6ʹFFFqAɉ٥Dj UFExAokӔ߂ע+m3|)-],$,DhUvwt"$N Uk/D:*uUnF@0it);`k&΄6ʖ"hi[yׅ|qu'?rl\2]8K 47z3)B%Iv@?+(MHu-IaP|pD}vuDO%o=~^/lE4z?2{H uN+-61wZγ. {SNTrVhg+}YԝaAyoGMYBn# &0xf/ A%}ghV+L-wHzk]uWg-V'.enmvzTk[=\I]_wgO? ru/KRI^x׫P['&Z˺4Ѱ4/[Vvvxe 2`oΫ+S;qc|wt&(2djxWhUS@"b+x*t O\fUJ@aرkv-DgB󌄱!0 eO0h 7r| bt]\% &]Lyv!4UE게@Ʀ1Mp9Y0nET&Z50E &(`}{~. 2͝22(a,NfPb!K4aB DB\a{/SVڮ<5g|GLܶU %;,c7J24E>+Z b . s1-;=*Z=jwKn.ݥ>#9hNU4ԫ-V)gk2ĩ=y\]*ԲĩDV4|a}R9˭c02Gib*:δA^;&ܑG+*O-R9m6TRAǡ6 KjV$iF"6a FbAmq5]%C9396<ӓS0DjNB n8GdrN|jbDTZX;rL27 IG2FHh+,Mڹi {][^KgWh_3xaRmi -Ѽ>#e|It>]s;?=6Ѱ\=w w*`F\~ Rh10mJDyQ;vV#2OSqdŴc0%?3q|ծdSÛw o?PNtO퀛Ӯ}!`Ɠx- h׭#7-*)2N귪svd, NF[rt-BXAAj9{Ĵ\AL>&*/6?qQ/Lـ* σʹӫW˦~V5g/B"%Ԫ(,)*{ȨYq{oJi'ˌ^u ظ 0^'S$p~%{z_O{ q7WܛӮjgSs !C(`0aoYxW$*($-9҆ڡ>hZ&Mn$g217A~Du c{ V$t%|T.gE%EW@X4ک뿑 Ƚ ~Z:pk= \7,vC>/~r;YBVt֟{;Nŋr_GrI5%; {O&u +vl}nͫ/q)Ktȝh`!vY֒=vtѷ{cD8[<@Lv h6Ltԫ)9JkT2S3J kod)vȇgz0(|-0(dŝӝ,e~si_fKtPݺ@WT?ɾV Y\l{5gq`lG +&e6_SKk̶=Uqכ?翫5{oYuseP}FU՞7h\řZ%VUZmvI[~n[G-d]ѣG%2կvKO,laލ{۲],{[;_}?3y8~}'xmMIGBankX?Ad[j˻>̿!/ &7.*9p ~l.Qwxrt]\̗]vJoKY3ԯѢW}-n}9 f?ܰͧs@]3JoNn&Pwrs*> ݵT]`|UUVnKweo|WǍIbv??NrI/iEօKٿj7a}^IDK +lZ\%z ɳ&Us:qD ޶TUVn)?K$v=m->K;OsqC nLLM|pǨ7yV}6Mq/smj7c[7OW_蘫 vPޑp]maLmx[ '7j/Y={b&O¦um|} uجsd/ltͤͧ-1oqgl?ռ}* +K^<%}q؟L~k::29wi^tWdo6NwF ~C{ρ`i aarCz_$mwpZi}|tk,wTޮ3كPW)|#jH3p`CտlAH?4o~ufz f+ӡ:> W~=sxӷl&dvn;,m-+]]guW&m[M.7ֻ޵ Td -o'ϋ\}^{D(j9fwn7myhN1_ 3Rq1a{k _!J[ &]_G1[e66}L 7)3AqDK/f}du6Ľbsgiml 'ddQa)a[FO==a{/n۪x+ whh\۟j HD1V;8QQV JD3lV8ε* =-\3d) mwFO Dll@fT8/Dd߄(5%'ZMJ'2d]П# W2j5b9A9 6 8+eFOԣдg]h<qVF;ѓP<2~phzQ4n#g_'ڀ,ZEi߱9AN;$*ڀ,2xOAL=7GVp$Kdqt!&zi{>6,~w+EXIFII* (1 2iCreated with GIMP)[)[GIMP 2.10.242021:06:21 22:42:07Created with GIMPz JFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?"Kx qE0Ae\ۇ^Z7 5scVK+6z6d&L݋/Q?_h,'bK}O~*( "oؿiߥ .ț2v/Gd_¡&L݋/Q?_h,'bK}O~*( "oؿiߥ .ț2v/Gd_¡&L݋/Q?_h,'bK}O~*( "oؿiߥ .ț2v/Gd_¡&L݋/Q?_h,}:+v+$<8M˧DT}D`C rH=cw &8.J,qS|TtSI?“RdLS*(O~S(T|LS* (~X⪽\ p~oQǪ (̣T*sQTг*KtϦ{ge؅$hL3K;c7g"!Z|pEBLj(.1Gի9C(S('YsMnLd[ Y1?OY'3s52? !m '.I-JІY'3s4mPЂ\f]d_ѨhCEOۯO]q75 hu~7=~sKۯ5 (uLheIL4Tme3q٣PІY'3s4mPЂ\f]d_ѨhCEOۯO]q75 hu~7=~sKۯ5 (uLheIL4Tme3q٣PІY'3s4mPЂi_.IYIWF ڜot)Z̷H2Zy@=̀"9RUgʒPP8z od_›wV'UyZ_^*ʃ2v/Gd_?WTiߥ >'bKhZ_^*'bKhZ_^*'bKhZ_^*'bKhZ_^*'bKhZ_^*'bKhZ_^*'bKhZ_^*ʷmkj-`킩>[g}Vod_œ/&PB\SpA4+&'vXMP bottom-0.9.6/docs/content/assets/screenshots/network/000077500000000000000000000000001447252316700230025ustar00rootroot00000000000000bottom-0.9.6/docs/content/assets/screenshots/network/network.webp000066400000000000000000001015101447252316700253500ustar00rootroot00000000000000RIFF@WEBPVP8X ICCPlcms0mntrRGB XYZ  acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBVP8 z0*>1D"!( ~0n4?YC87P]{ ?~QO!/_~?YoOWpؿyW?QoG_|/g+??Ww@?{ɗ?_Ͼ|3_W7_Unkx_~k _ ~XϹ3?W!?G@~'/?z_~O}/?|\.3}W sDJLoϸש3(7? 49APƟ c(MOeu1&af2:xCDLe iY̢24l,QSBo~6hs(7? 49-W>ِ4gMOu(~XO2O+;U JRQ%~ 9*KZHMH+:xCDLe iY̢24l,QSBo~6hs(7? 49APƟ c(MOeu1&af2:xCDLc0H@"dT%,XdN6}ʑaa҃ qQ$^=UftRàM-M6ڛSjmM6ڛSjmM6ڛSjmM6ڛSieE83MOu1dG sl lM6ڛSjmM6ڛSjmM6ڛSjmM5(T@A-=1ͣ:Na-5SȞ/c>6n2gx.}`nWNKLEoTH{+DK97Y&ll5d1PtjmM6ڛSjmM6ڛSjmM6ڛSjmMo*(cIx4ukWkYsAo8I`J;BlBXpML<$اІ3Zy(\:n6ڛSjmM6ڛSjmM6ڛSjmM6Է8h*_2Xl|*+Hw (rIec FC-~ +2Ԉhoj[Yem,ڛSjmM6ڛSjmM6ڛSjmM6ڛSjmMpia`˴ ҅æSjmM6ڛSjmM6ڛSjmM6ڛSjmM6ښ"9M6ڛSjmM6ڛSjmM6ڛSjmM6ڛSjmM-1PtjmM6ڛSjmM6ڛSjmM6ڛSjmM6ڛSiŝiJ M֦ڛSjmM6ڛSjmM6ڛSjmM6ڛSjmM6f?rqæSjmM6ڛSjmM6ڛSjmM6ڛSjmM6ڛSjmK|Lie.7ZSjmM6ڛSjmM6ڛSjmM6ڛSjmM6dqgZ{Bu6ڛSjmM6ڛSjmM6ڛSjmM6ڛSjmM#ܜpڛSjmM6ڛSjmM6ڛSjmM6ڛSjmM6ڛR?|a{ M֦ڛSjmM6ڛSjmM6ڛSjmM6ڛSjmM6Y֞dtjmM6ڛSjmM6ڛSjmM6ڛSjmM6ڛSjkc':n6ڛSjmM6ڛSjmM6ڛSjmM6ڛSjmM6ԷƟF^Bu6ڛSjmM6ڛSjmM6ڛSjmM6ڛSjmMGu*.7ZSjmM6ڛSjmM6ڛSjmM6ڛSjmM6ښ"9M6ڛSjmM6ڛSjmM6ڛSjmM6ڛSjmM-Ut\ M6ڛSjmM6ڛSjmK's~O?'~O`jym%J M֦ڛSjmM6ڛSjmM6jmM6ڛSjmM6ښ"9bxe.7ZSjmM6ڛSjmM6<T\:n6ڛSjmM6dqgZ{Bu6ڛSjmM6ڛSjmMcVrJM6ڛSjmM-1PtjmM6ڛSjmM6ڛS^[ZSjmM6ڛSjmM6&42JM6ڛSjmM6ڛSjk|pڛSjmM6ڛSjm28=P!pڛSjmM6ڛSjmM6K0|T\:n6ڛSjmM6ԷƟF^Bu6ڛSjmM6ڛSjmK (T;!{ M֦ڛSjmM6dqgZ{Bu6ڛSjmM6ڛSjmM@3~O?'~O?'m88u6ڛSjmM6ڛSjmM5V\\ ҅æSjmM6ڛR?|a{ M֦ڛSjmM6ڛSjmM,c8"O?'~O?' hM6ڛSjmM6ڛSjmM,QMM6ڛSjmM6ԷƟF^Bu6ڛSjmM6ڛSjmKCK"! u6ڛSjmM6N8tjmM6ڛSjmM6ڛSjmMvxS֦ڛSjmM6ڛSjmK|Lie.7ZSjmM6ڛSjmM6Գ~U&+5xe.7ZSjmM6ڛL,Op2T\:n6ڛSjmM6ڛSjmMA]{ۉ{ M֦ڛSjmM6#: M6ڛSjmM6ڛSjm.RO#@,~O?'~O?'Op2T\:n6ڛSjmM6ڛSjmM6/.T\:n6ڛSjmM6ԷƟF^Bu6ڛSjmM6ڛSjmK(W:n6ڛSjmM6ڛR?|a{ M֦ڛSjmM6ڛSjmM,:O'~O?'~OB^A3-6ڛSjmM6ڛSjmM6אS M6ڛSjmM6ڛL(eJ3{mͤe?kdtjmM6ڛSjmM6ڛS][FQ[ZSjmM6ڛSjmM5Ds0$(\:n6ڛSjmM6ڛSjm,+X `,X 6FpڛSjmM6ڛSjmM6ږY^ɪZSjmM6ڛSjmM5Ds17ZSjmM6ڛSjmM6ڛR/9(aPtjmM6ڛSjm28=P!pڛSjmM6ڛSjmM6y% xfEJ M֦ڛSiju6&42JM6ڛSjmM6ڛSik?|e SjmM6Y({ M֙Y֞dtjmM6ڛSjmM6ڛS^5I{D(7ZSjmM6Q"2O/tp 2PtjmM6ڛSjmM6ڛR˻bu (\:n6԰HX?'[N#|N8tjmM6ڛSjmM6ڛSjmK Z7 ҅æSjkyŞ7ZY܊3~O?'~O?'PO/S Wngh6`uDWB}_?s RVe7tϷz\2 MԡpڛSjmM6ښ/ K3ehmMulaR/tpdGH#-n@$&42FktQs-<V''~O?'~O/CAl7AD(ݲ܄4+L҅æVPteޤښl,xӈ?5L֥=o9ڛSjmKM֦d轗qlZ#x/_# DOVqp n\7JJUg ܂ b ^K(\:n6H(\:9M^s \"a:!Gl`'lV0 Pq"6A,R*uyX2MŞ5H':/4"` `+샮 5HZD\ u* ,B>}Xe/b=8X[Ph@]Aɖ"[iXN ɕR825U |uшȐ5'疖KSYt:bfP ߉XJa1s1;-}]\@h]8N++6'ʜIP F.UM<9pB GyE!mA(ZgDi)m w$ q ޲nmF O#Yt]BcDd0 y߰\֛%3J7Qk bzȗPtM{&H PTUS9 fp+KD8-f߈BHl_EW':48!~F&-6ֵ6$5ˇM֦ڛSjmM6M6`{SjmM6ڛSjmM#_:xCDLe iY̢24l,QSBo~6hs(7? 49APƟ c(MOeu1&af2:xCDLe iY̢1`HV,u%G'6ڛSjmM6ڛSjmM6ڛSjmM6ڛSjmM6ڛS]@4g~[H|3Le iY̢24l,QSBo~6hs(7? 49APƟ c(MOeu1&af2:xCDLe iY̢24l,QS;J)M6ڛSjmM6ڛSjmM6ڛSjmM6ڛSjmM6ڛSi`3R6ɻ?k\gs_N73K8:G `7luX%'Y)vL,^-SVP=^lߥbvZ~kv҇4(CV;C 59S(1GZaRaNFE3|hwM4YOyǯΈw+\g 8WQzJ5,q?ϽhGr$3.館ޑF$A!&H` ʹ^PZ  h޿]uš] iVQq/^Ũu$Dϗ;Ke.ג֪x`\ս k>db"[͎̯;ݖkXu[V 2"CQ G^.nH h|U.Ӣ2v&ߦ03#(RVXVr}zqF }EJtȱqXzv>Fȅ+i|8}K\aSer[S i;Ϝ:n-pT"S'0C6A+\csHꥍ5˺\?H( 1Wn&Cg-pqC9dr:~%0`XEH"6U Trɳ:覔Ω&.z>E F9…_R_T򍼛} hr:>Eua o2=it>TF#s!2 ]1Rl gȅwuMC{.T$:f;+΀]XjxѥJ-n`#WOb[1VO`bW;['/C_*w&AN2Jb0ɽsm#wsƇwU__C$`:ڼ^>K- +PoLIA=IwȉdI ˏ#xp߰V. r3ZrupKP#qRbO0v21{=Ts]v3AT:q,5%;ߊ/oqR>@gLC6y=Z {3^B Z'DQgtPtto̓g 4RE:wydU|y} -ް9M<1"),ۂ砠qpQ.pZ~PIh9e{wCt eXNAjLVP'%lKG%$jP0G\k'./qaQMgwkg9ke(?E=e:&YElk@j6wxJW,OL=}+3X @00`acBv')ǽ̞-gdFU{g1Ov 7fD'6bАU MA|طR5lA϶5r*0 =~AT }RKF Uϋܯj 3h};L O`X`.b%sOz O-:CY?l%Wϝ'V5ߜ*EƑ)R 0=h6b:GtUHH޵"Bu)ջڧv>ř$J CHN-Eq 0Rp#oB[M6?㞯,.&mM|F:\lδ7H~rVASALpHaH%>F 9#ɞ8ZFb!MO/3v^pxJ;[w݋hRMXX9-P@F˵ kc)@?DdikeJt x-wL p[/x&) d$E5M$U0|1/d񦦀 1J MdCN.\?Jk@秇mPQ @/ow;g:݋5y Яӓ{92|i<K.4YUC_gc -T)jc2x[=,%ådI%k9dhiF`F $ #b!I,"<Z)ҥ^;gn_HHdU.sٓ'(^tU]zɽg\H3P,s/b\E|r'HniOCn|#EyT|;nxPk` -%˜ОU QcBovTĬ\,_`}*H4w&W~꒤ vvGԔ@}a}-%ОUJ!r#v3d$5`HjLbCrڒOpVp>·~yHζA~yG ˓ĺ֘@*Bd9o {1)u+-$Z*>´sBk?DzDdWo;gyi~Ugp5xx}NPOg`yB8eRG-pIoڝJTu%ʌ*Nu]NPAɻ|)E{0}8Hs2ד ?U<xQ$Nɍ☲y)i]F./T-24%(]Gjn'+$FHϝ<=yQ[M eg1dRkc N~\^QA@/YbW@=> /Qw˖/Jg YcZCnq:@@-Eܳ(T{~[VNR}k[`-ScXPp?j^\}Ao=S+]%c/t P/.^TVwNMlKI@y.*:Ly :1*OBn7}6r!jq/RLFTtxP*Y<{ȷ.T+r^~~4ΰ56L\Ĩcw3 9$ -kgDDQ"YkML?YM L?)ET& KYe6RT`oaߏs0<ȗ049(}41c5[I rgZMEaiyچ|^;'ehn񯓽\ӳDnA ;PVi6B^I>BYDp2\)f򯀟qG8Ⓢ|΃sE&ȘLݩfA _yz+%?92CY×~f+uCY{^ *~TzXÌE Rn̅eb9enXN}; Ĩ2c=^hL^aƑ1_PfĜߡ]zp^ڟn{6GRc3V\OQ@]oڤFA(e,MH? /R-$0NDW^\BMY"?GI,N8-\B݇p0sZg^rQX֚xBߢ]R}rD 8,lO)1-5.<?e?c?Ӱ8 h1[_پĔˆC+FmkN8A2 ;溷o-%ОUJ!yXv ^n L$GYnU;T%쥜U9ۿJ:.8H!ok:pɴLJNR%F/-As<ҍP.:1QHu^U `TY[$nA4\#T)L$GQa"_^>B [pLً݈B,ihzgB(sI n==[$nIM՟a+n@^n@yiC+zhoCCލNьWvm^ j,@ᇦk~''+A4d_?"XK˩_q霛:eMl=JicӨF&6)k3>k[ŻݮE}Dž=<_R:)nW\rET%z:X}QާP-4` V) o>UQ h ,rn_qݹv:- w/V_?ihXeT=0 tMgN6\(@Tg,=UԺԡY8Md߲mdlv+6<)F ߨ#&hW)p /j^^o=Q`&O%Ky{A-_¼]ې7c)iGJKqPC 쀄 $(@%øl#AMYE.E0d㡴"\ˍך1mn}:e<ݪ9Y(2$]n'Fs*tPc!X |`u -0go$^ 7Sh3jDO PɳwjN"B3pG}e26m4TFU8r%/ƺƼW3L<`dLvoțv{UK5NJ*;%tPc!X U%X ,aE ;{^ESEZg˪i6;_S_z-Z]CjkۜwJ0ɕ,l>CMw%;u8Hs~9Y(2(W"{9@' Np"XBqRgChyS],O nXT+sy@ aӽxOudq7r~t ExoJPzva<y )OnH;lR (2&ݞ?yF0U"tc?~%^a4ETcާ*=su0L8yeJ*I %ٹs j0OUi@@NN[^"+yp(]U.EpE 2zºѓyX&QR=F{zyXFp)Ovo ҉m}2C ENX$MVɍ2B0]Y8YN~Dž=gK] ,ky¡6e^kTIGS  ,QUMLz$&ɛp98 z$&n* sp|ݠۜ@\&U-)a)/9疶(֡\QNjtRB #Oo^go?t^CJ{MknqatPcT5`e<͍TzgvWVA j郡HuӨ(2w. S0GAdDtdFNl}~(4> ?y-Aa"ՖSe(t+npM@Jv YY8yjg=sHjg=ۢT>%asϙn%X ܰԲkJBkA(c{8As cXo^&MtW 46K '섾hz;uף+IN#N?50$ט:ify \`)ZbHwLa"GP6a%pu tw'?UR9N_0% bN\jp?=B8Qvw@C~ډC$^ 0Xkq7 *M0yNFՋ\`z;V4st?p^ك׸c/.^TK)@MO xasO{58_ (4K[`KxI6;[6}tXfTm0ė>H`VхnXÌE Rn9L!),isǿ)8R!Ù{C*9LĒM`UjrhbD;& :־-2&ݟ'اWrBNECW:%e\;| YTC栶ԺYT4#B5 w2 dʙN_544L%0ҧ3D՗n%3/#ߴ7/ȡn|[DX&D@>\!FT5'VV ;M"mï3 ^5yx*NG}N9&2xQ/.^TK)@MnVٔ }j1NuN1QY8'YZigr"zh&Ja/eJ*!oB7AB}uc ?}:霛:ewCBA1R~Ld/ؑ6=!\3U&\"0wĈ6s.Hx&zo\[){~X|""jFghJ.Bg` ל6|ԫfOڜ3!tR[\wyC#ĉ poO zH98b E0 @\@9I`t(Աw{%*X^ZRSM$Qq$*jqNF AO! tP"l(j;ś7Wts >2\ŐWljY<4;Z^{9o ff #r7.qYǧ okX9-eGc 5ZM0|5EePۣ|†A Rn11vZQ-Cy՗v\EZZ~z3^%_{79v`HjLb}ۨzheP|?6SiS_or d= zh f=}|ߴ4-ϔ3G!BG(ٕ&:ԭypz򢄧]6{bx=FczFzZ D b19 J;)}s149eOⵝ8dڎPoP *x!|՘j2k GiEPylkJbv: V8Wu.&_4,哹isM8B=C+ 9􎅆MC$5łS Q?gi"7QLqG E%oJx(9fX_Վ8tRMV 8D!_IeG?a? $ؔ>Dy_{7p.QiCq^Xo;V-RGܠ0 INK~xH(q賝qښH{Z賝qڳʝ ?Ui"Ci0# #mUϏ":Ӿq7~eZLo ZQ]I {pR:\[^AaezPER\$HJ/FmV(V½PUrr? *:6ԒЈM)<=yPiS_FUleZ=ȃ7SCC)XwWFGTX{2="eV8ӌ+npMΐkNTX,ފPF_Lx@?Hs !=r^++V/H`^AQ㢰ii 1WX}b4Q.+# *3Ld<}A_fD۳Znt'اVZ vJ'K7|V JC`6-@Wo0W%?XY0DIg<:A2 D)fHzx Lڑ !TMsUЗD_J"88lgSaB^A$Gc1쑊cmc5jz&Z½o(ᴀZWR,a!)3Em{]4L%0Ye6Rΐ5uHx3`zDt'اS1)~jRz 57%wC2[*`IՔH˳j'ŴKW^GK0!Ae3v9XqT :s&yuA-&*NQ#½k0hZyYFtH!_@޼O/+AErEnmCֱ}Ch&0Jb4L%0Ye6R jeC!6Lث1Y{KfVr Ը0NaBL"&Ƹ_Gi ovЕyc(CYkgǠnd/=)}!h&Ja/eJ*S݃>޼c0sxe~Oآ笀nCX]?wqo;W`o_ێK3L˃ej@xb5]U1Nøl#AMY]g-X>؞3JƑf̆>18*zK;񨌊Mxtq$*8Ⓢuu bHHE*Bv$9wۅiDV]<$iXV"ts,QUNI(}Đ%E $mXVYM7E*(ԮZSnNy7N_#:GmC4W+?LPA snٹlm]m\0%Hx^6Ո+CZK~-[=bnU;8(=7InoNkr-{ޯ vy#g;Z-f4'*v]S_zN ÿ́XYO^{ԖΣ a]zV "|h瀅#6 *x=D]rQJ!u!FxQQ-\1uz0*ӹ/M;,j],縓?09$X*(,JzU lG D;v=ĻorΣE]Zqw\tFڊTz:fʭqX/ʧP>a8kX} !=sQS nH h˂uni>:Zq"h0 *Y ]t OA<ЦǾ4p0N\#(DG! Z S+p[8m y\{[s&$kxS-WyR"KHu"V@UMۛ:sPsBzIw˖/F7NɍSL{/Eq>ijܖ5C} <3bb´[_B vܞ7N_@ ] USǴldyx8Qjη N*:<4DDbs>.3]} Y&AtKʔ4~QާP,? c%w21$0NDD|WyOl:s{]}c07(зK*~[)uaW(ONRPW*I* 8I E)Kխ&>@(lmHTh2ߵF&v1̉g9"+!ʙ=gG=&h?U^_tnLgϘ):´DR1NN!O Û/^.x /1[%6s* [CwGzBx?8k`tUe?(·7".^a4ETcާ*=s{7ԇFq)ogcR7"ã*yGyEdnHQqnkN%EY'sz<=f?YZigr"bYZiɿ8J7(k|,7 *MDzAqYVyW8ԕCT,C0d=xzF_wM:޽qro}~",_Zc76 ]\bjilwee(H-1ͪxɽmխ&;p. kTDތNa\ZToIBbc'EDB4|Wڸl<;[#zďqS'Z=.T(9bH-?8f7: SN'q)N&0J[ ~=[@ fΣOEDȝNgА3{M ,=[BM c~" }5BAyEtdX?S3[ {k;;L\Ĩ+xQ#WM=Z]p-oKh[4d)$Ać譂Q$4]\bjFfg Hڀއ~M fI6nLW5a2ym&mH`6oYM6CS 6ԂN.B I 6)U7nЯE V"WbdVJ PI^!",&-i`)ՖSe(6p(Ѓ!ݽi66T]h3`S?*?HeBf QN1;Àʾ[^ 9f/*YW~q:M>AAsfȑE>43@_AtQ9pZploc~*E(QJf ? L_Bf0ZxE*0L_j)UC|LL]VKkAއS`t (dq1%zE unѝa׏󋮇wAl [ȕUY7&%pDMxJs. &pwL*6̉g@fh,1omm7ة4~IC54fi$Iӱw $YMRd!QY6#&o|]2)0g;{~({~(?UMM{x|#sD(a[" 0U{(qL緝Ol:M(8dF%K0 խ&;p.%fƏ<7)wEφk~[N5Y l4`~3?<( ϰ /] Q(½(|NÛ/^.7ۅiQ"\jZűU:\h0RIsTnN$dum+ oxmU;rwYƪA4l3ߑФ:cyi:|١ Mx{owc,_Zoڝq|F6Yo_7 cNok2 AEC?:/<s~=]Šl;>?I(MNf=~u4ffkI~0t?_&3In$ D;xpW{l08{8/F{t'ا[8 CgFEG@5Rˣ}oߧ'eHWOcJ>Eϵ" %_ǷA4e[BM cmxk11cx[rO,Qd׭FV izqAFӪ*Q)N$>ElH_s'LN p2\)f~a8 /PUOeHu#)=qhE[Iw턁I$mkm|۽^k#3E !2V={ht1 )",J rMC$*/FmV!i{DBqw,½d%rbϓT\{~8{dMB02[jUw%V,V葀X{qcqނ *:+A?]6gvi0Rt7ۅi=fbD9LڑQu̓!5`~Hp(HaЗΝ@=Q¼Mߨ3 +/0Gbkj=i:L7Xkq ᜍ5Cz梧n@ݎgl:F9DX=cdb`n" 75Jrw_t6 IpʩD:j1 DdRRǴͦ*E>"S`-Nw˖/:JN|e('c(ON#:'.$~ )8k.;񨌊粠z-s>x~Xq hk#"&0 O׸$qf`,V=OlPA H"˴@U`Pm/3/2K=صJ=ƿZ T"gdLѪ/<(2Q)椱M!2fbD1̉hH3,5}~ː5QG^jtJqudSVaM9Yt흤͙y} O)Kcyņ~FU^q*: C<[ᮒսxMf{+ r_xxP~Zh&JaڐAxIB-ub܇ԦcbwkoțvqLoCF9ڳ^U;RQRo?3}@ GzmP(-ZζE}__(Q[2|GmCʌkV`>\ȼ !Gx C-, ^ޭgjU5݈N܁S-WyO=h E4eB|ڵݫAJF&v(v˃O3!6!=g7Vs o5 3HQp0;ܩg4^;0'3߯uEC!j%vO|vrrPAB&yD=uR_1W#6M;b]$_ $Ϸ<(*ۀh5A4f;ⵝ8dٟB&z(F4n jZ ] <5M>+Ijy Վ8uNSEExBR,ג*ɦut8㒕 Xq(ᴂ _WDH ,=|18AFWu<Û/%#jzUMZ&R*r"ŔJ*26q#wj-,eﰜӨ´01;Oo{=|b#jvLlUeq]5{~ ׻.}=>-('J!#Էqp8˗y`VхrMiSic37=(;ogD׷ҪX|H%8:*1}Sj8hc֬5;jSPNJ,5~,Yi&:Ԫr8{4S]dkVT'OkäPGJKɈ`8K&k-gη_g޹՘?(j6 RRmMƏyM'>;SCx}i-P7ۅiDjtȻ(Rgq,ll]YfLbYt'ا[h2+^M0"v7xՁ]嘧FIgG:>?]_a_aAѶQ02; BVqnk}y~U:@Cwh瀅#|3Rʣ500WY7(SvHcSY,6qdS'"2hc,k:rjpTΦg;8D2SԂN?y5Y֪ɤ@/N5C~'[a2埠+ɅJ3ZB]FE f%w4c\8~׮ʐ&Ct"?AU (׆\¢"NkjhVtĀI3{0PNz) - (}6eqJ5FUPPܭmb) K8֬P m ͍[3td>ui[) H3%r@Se(*jH$9OfM J &[s[)CԹķDd]􈐢zt"$ E` ְl[_?3(jhɻ̩OːׄYV) %i+sPÍT$`[ B֗FDdԛ@ɛR%1h X[R<&6o[nTC)AZ D``] aɿ@:{)@eH -e Come#ho]pt܂]Fg>4!R@lRYy[Q(Opo7h[43y{'D(rTX>Ι>ky d"'m A)8LmG$Wt☉vI.?~'e= +ri7~/;9 6(ѶS.L{,R~ 7~>@wyŖ0z]<ŊP>|`ܝÉoL &e#Ϩ=54LUT2U&&CB(t/֟~K.)7@_N=;7BxO|vX=HlP\G_t6 Ip%{_oAF54]R7Ə/|Y #& wЌw".N+an!FOJO_a{YA_*tۮ&2|iGW&Ʀ.øl$ \VFG|ծ^f`yIjinuf4ДiЛo46[J¹]&$vɭ*g 4K 튈ƚ'19Si.!M:?h&Jaøl#`oh5`b{c7sml {Bس 2'x?-{g$ RIϚr_kr!F>$[$Q dƠ5LW'HbBk$]\Pk_%b ~ډC$QlsЉ _-,Rz7|3HQڐAxIB֨``mgb`PtM|ދyTcQxNV]!Ʀ6^ID)aIr' dŦ 9UdPIHSÝ:PC%A#nML?:9.aZ4vCrb%DM0f5TReѿ{WĄ_v]r`z%| k%: ~o=Q`;s'7W^u`[3LV~&jJqP Z5Bq&~d  `b>s&`xQ,3/ %Q!OA`Qy:I)4+|NI^DOhH=ę9vQE;'1H_C/MiB3mDS pdpXg_i.G]t QEpn[Y-(٥(_ڐAxIBcyņ`p5F|Я9cG dj1W |[S\u051lE?q C&zO Xoȏ"BUPclJq#r]<ŊP>|`-|f)d5QlH'n048?~b* '(2&ݠSMCi ns2WyPK٤W Qȇ`Dnk̵HVg~$_*{J*XT]o K+A{®G0@dϠ,笟Df'^A[7]?۬jQ*ij ZϒNr nj|^PvЯp?eb[RaPaJzPFJ1'0FFwwo=Q`' I"5'lud7mn, YIom-ehKGzNgԾ&/.TџL3& QX]XX GcaY=]h?2ہk+pSԭ`"Δc{3%FDC59=")?.6$S"=D-nf^ a:ʃąپ̕NwbU`| 2 %He;4 [+瞪4}BEق$ҳE^9Sw~M%Smya)5#a_(a4B3/E'^@b>//!a^WdwWW-7S1Zr6??˅8s  {wyIpL l|ċltR\0V(o0 sJSqB:؞ڿ֥E`H$3R◝ir刺DP6RkˑaT 4E.a-]4 vߡK=Y"M Ȗk45nD؉}'K$W4ycf;=H/1C!X ~3UcR/7?gxs:7o=~ os_z=;P??n}oCG_~]/G?r/??W?_[!S_;?`s7ߵ?|?_?oooy~Md7?߿g}/?m o?g]Z/?o-/BoAO~)W??Mo߰?q/?_j/>~9? _yW/گ_>?[@JVB_ arD s]6`ndlQ`W !!BeRVO6G~Q&c/1<ڌyE'Q#(j1wmF<MǑߔ_bx ;SquFMǑߔ_bx kk㴩̇?wQn|C_ѵ/uq8^hoE -E/YӒ9dp#,2Lt@&\:rG .~e9$Ռ BHvGץiq:̋CLB9dp#,2Lt@&\:rG .~e9#I?2Δ$8^aͼ'c:i{0-9ǀA#4@x}S9dp#,2Lt@&\:rG .~e9#I+?!"I@`z>45, @2MR7tْ8 gNHe̳$r2GYӒ9dp#,vF`zJ+@+`:rE~3H9áW-&8OAya<:av,2.6Kz"ۑBt:GK#,.{m gdy`6C$zoam,wjV|iFJ &Dhvumsg6o*VB {^gNC[J L7U[}!:5(@J'X|C$ˁ [o``ɢr6}lPֱAaEkK$7u*4Ǒߔ_bx ;LO6G~Q0&c/ڌvE'#(ekdwlmF<Mm_~a^vbBq{v:HOk6>K7%;kenȇo#(j1wmF<MǑߔ_bx ;LO6G~Q&c/1<ڌyE'Q#(Lx~4z5ʛg@W.Lafb!@E.d=͌dLgNHe̳$r2GYӒ9dp#,2Lt:9dMN%)hSa o`6U1垚.{ 8O@~hk)Fnm e(mxm~O 5qTᶆn6<6RP?'Q۪CYJ7u@hk)FnNjJ[)Fnm e(yS^:51NP5ǹjmᏤ1<ڌyE'Q#(j1wmF<MǑߔ_bx ϾT/n!F@Yi8צ[# =L.%>ڡrTc6G~Q&c/1<ڌyE'[ϱWcp.H=Ǣ Me S1z_z[Ybs˩˘/-!~O 5;+2@j8ƻmNV|# q"T9ew.sG,r[EO5_dRgs,2Lt@&\7_o*ث*nz 2X. 7Nъ =占Ej^2Lt@&[J"?vqX$r2ΛNadLgNHe̳$r2 ^@\~* ڪ ;RjsXH!ΎɡڅW%4y u4Rϰ!VP)nMFHA$r2GYӒ9dq:rG &!b2Lt@&\:rG ]4Zp/0 0z' Nnov 4tS@;eq2*gNHe̳MVڪ VM\j GYӒ8 gNHe̳$r2GYӒ9dp#,Ⱦ墟I"|zp*3Ξ  mwx`0)sl]ݻo[O=oق{V_V^_8߁*zzP"Kn!!E^K&8j'p٨Ycnjl̳$rV'\'@1-C€ْ9dmMǧ0_2&̳$r2GYӒ9dp#,2K"O&]< LfIkmlyҔlWŕ&Pa'2vioè~%ݒMlql/ `,4AH;E2Gʘ;t@%9dp#,2Lt@&\:rG$# ,hW-N>@gަ,C)R_o pux'%ZX#oHawJt TkwdUp|9SAJyE'O<7%A qTᶆt 2GYӒ9dp#,2Lt@&[N-iW"iZ6RP?$D8۪CYJ7u@hk)Fnm e(n52Lt@&\:rG .~e9#o5~7eN6Q۪CYJ7u@hk)Fnm e(mxmwQKD9t@&\:rG .~e9#Ico}w]K-х*g8sHgϧ2Y+ lz:s刜!ǀ ,/ Ma G*XX,6ݹcQ;yV tGDyt@&\:rG .~e9#I?2Δ>2LỉuB}heKD9t@&\:rG .~e9#IcB½ap tr?oqh腴tE:[(I#~NK=_sz :t-Vk⭼%YRQFwi5`&_J@}؈v`XoysùGKBe$Hv/=˒4ٲk4d4D JV$ឦXc/NV[;uhc`}Eœ!G>2 8&BdDV{-zq%yi5Գ1:Gt< wSħer0HC@-.jw~jz̳$r2GYӒ9dp#,2L q R#5@gAOLx&Aq5re "-|t=O=i]UgoVn\lUL 5s0!o& 80GqÝ7fpceQ aR]򮂰KD9t@&\:rG .~e9#Icm??Z% <0Y R,L.LG/L9xaeqac;V|W Bw~ s8iZ4H&xaཝoӱHǹ~xͳmjaP"JZ,2Lt@&\:rG .~e8@ d PdX݋.T@>r᤯|v k>XC(}1r[vF͗j| r6w=3Kɑ S] EFAqG|6N*{Y^!F 2[lҼ IpǏQIhrpIC|9)H]\^A*h q'Z%^jz;]025d>,yImjfUW2;c-l-wmF<MǑߔ_bx ;LO6G~Q&c/3hė3(OlFXBS_7]hf7Ā'"a-pVFs{`ݝш0oQW9}W pQ@ӨȰ8t\NavDuqE)LG^ Ҵ}Ϡ>7mrU888TS~ y¢̉s,2Lt@&\:rG]v6I(2Μ$ˁgNH2GY҅+,wW <6RP?'Q۪CYJ7u@hk)Fnm e(mxmM4H~O 5qTᶆn6<6RP?'Q۪:Å]GYӒ9dp#,2Lt@&\:rG .~e9#I?2Μ$ˁfS Af*`&c/1<ڌyE'Q#(j1wmF<}nCsښ#x*`&c/1<ڌyE'Q#(j1wmF/Vy]"f5_>DH (VhHnm e(mxm~O 5qTᶆn6<6+4;5W ҝǹNp< zx;tE8q%v g-wmF3NzN{9#]V<2u$ 4@ffpIFe 6n~G%| rOʓ8M ڬԜ*cߪl%MoPpdLgNHe̳$r2GYӒ8~ '{TaNvVXDmlG2pxuCY4\MNHdX՜ri>YnPi<2 HV8@|d0DYq]Pgܼ*BdK&xx{]-:tva@]M-}(%YJHb'(Ӫ Xj dTR0e9#I?2Μ$ˁM&̳$r2>S ֘2άۏ!agWVx?zrG .~e9#I?2Μ$ˁ ̅'t.krG5ة/Ƭ){SO>OjjQˊ8U%SY6 `Nd={swY[ZVA1N0D&@j[NJy>i\(F}߹Z;E<˜* N(Ιg.T&~:]$R0 z¬$Wbu-;va:oua'%}H2~>{(Q򀯚{wO_s\*nx &/ϱ vly^biѺ]\*q 瀐:Osv)l>"aPADA`% NA)y0by5.-kQ/6OT1B%q~B+ܽY+mTR/ʪE^Hseq.1kˋ˹MT֯}`@P>)!ճbW <`4'݃零hT)am|5'RNNdYT9Iǧ,05_R >#weM!U\[hؐ= NnV_v#ۢ⩝<+a`%#dω2=/E/ȡ\gJ(*$Kre;I]%y)iNPR‚QI hz~4fNB~"qږyĉ?\8Q&c/1<ڌyE'Q#(j1wh1k@>JjjڸtDe^Z6.Y}7;_Eq}䝦LooD3BSTtSyT#jNvҖ=];xP 87oڄy&GX:(w1,: <#Êl>R\gz`WĜ?ZDɂK "J|W۹K9"PM_l" 1DˠV_X6ʇ/$٢GBe,]&XWYe:ʏj1wmF<MǑߔ_bx ;LO6G~Qk!iZX4t6~34AiJ,ҍ04MVDBG")|Ș_/mʇ9CnDX#dӌчf(5d}F+$V_XFE7C5zQ0e("yC݀Aˌ=9үh ǔ(k,Y6TT>Xw3*)|ȕd'p2?fCkJ90@/`u[!R-=<C񧕻7l$.]F6#%Ed=O)(*)|r8B_ʀ;gJң%p~x!ʹ0e7䲚W\87~lcdE(ߣIcOyfRXk g3wҀ#7DV×uHd:)+[ZN+0"=HӝcaFg=<%DA~'^c]^7AZ6J#vpu A`*j><#Դ7 >Qr]Ғ9IYKXPd ޟ6prƢǕ'nKN븣]K҉̳$T İ꠺_QjE]9dm֠^J`0i( ' ?g\D ,0'8yzdp#$&4{^\)e@%J|*ՈƓ Gi *Fy<\#_r^=҆U:I"uvKD9t@&\:rG .~e9ܰ%>($ RpE /A'sV+~-8m%YY#u!9b:ky2FjL-$]:ovS4ip Dm]yk"ey+/beCڗl#2d w,p +~ G weG~y?H;LO6G~Q&c/1<ڌyE'Q#(Gz׍T~;cyE'QZ[c+[klcll ?խv4bʜϺm"\{f.\Thrނ*e̳$r2GYӒ9dp#,p9o5G!L\cQQ32Lz}RBaGj4.W\e6A]nMт8&d&%zkzA91a+ Ki㦗B#O '-i~xz[RJf5̵`W tlq 1}^ޱs3,8LJ`t̐H5;$U|:6k?JIYKnJ,nQmO_ (T<MӫS| KVHuoQnGYӝ(n:b/~-l_$KTUBacz|w#e GvВ,4q'0xBĔ UPAa{ !7*eg$Bװjԩ$gs2s;;s9H_"}U%IfJ,& 3kOLLjY|9V꠬$F߳6+!e9R_*R1yJ fDz>(T;^ %_ɎzOd$gkGI~h*n TW6ߣm!!E gejf|r{ɊjT@::<8sJm(wwi͵t^~j<:~>6՜ɠ#! y;EuKem.sgi.(L(ΛƼ#RK`D )#}7R|E")])D* IBݸϩi#?2~_9_ZnҖ]'b_!Mlb / V߃4pPeD6(׷*xxf)'\#/t3 ynHc!vy)K PA}C=:aN@0 }hd9hb6"OW#GߍتvW,;R qjev8%;S$ %A vW𙟜O?rIF \W[n/uV4*r)R7x;*x.Y7#zxW?`B0A"_q@Ŋ9uv!PĖяݛS a}hMRkOSIBs c`}Q2磱\O zU3YǖYG94K":z1&CH*IQ]^qbpiCJ9 PHp6-l\è J9%{bP e,pFQI)žtQ[$ݥͬt\fqֶ"a5I$puWcA(EZv#S $;D:%8dH*K yK*(1`G g/T-!  _uA@\ .7qN&*ӤCioe j0H% 0O'`xɫ7r:޽99\`nk;< ZY?Kpj Lj ;}*E,ȼwj߇ a|GW=V4C~O$zHY REoo mwss־쌘M`R th.x ;musU YךQ ] -]'%I3zq ?@GY% gsjyj9u5TUV598RiJ5`hGa*ޱ%/q & ߰c[1%;(лPTBa^'\Un9v?k[: 3c-l3ks&'4pƌ}Fo'%M20_,K/nbvxR6ҡ mN Hjj\ۧIgT ϡ(8: #w|8X-MkvH+,ntދgE=Y׈>wY/&pxB2hpNyyXĉ,¹ckooo7¦-n"*&8?N*aVݡL)t}R-uGl)#ϱ]")g-uk ybPArp8:q5~ & ?NWÆg߈}GJaT<'gMY~~6E-N-*ג 3~JW<>"mM<s.> f͋Oq?ͱ|j1{0͋ T,NF!g]d@kI~ZsOǒ͇y?T3nK=w{B +[1iufN)D{EkOdLrr{(ObF==w' x? sgiR㧟nznLbxо=hO<~6YvH Re[]#klUN<8PekA3|b0LBOgXLk3BÆ՞A3lZ%#,~ ғ B 2)_׀N?sy}mKUg-h%z.|_Vdy9No?,%\@D6"Cpk8 Az%q+ZŰ|GruF_'o!X9,I};nˏ\3^Tϒmi!csNux˳ec\D^ ˸=I7m2X)9aN>L[ejY4JPeZs9R² S;q<8&Nz~ӼQj88T͇$+ w'PذdD=djיZ >⸙_WbO/_p${LaAr[ﱰ-+5C k₱#_…ò}"$ѳcl/}bqPU! +#)Y/e# >CR|Zh\I\"$X> q>gHC&T/ѷu)t#m0ng\:i0Xb`FiwW\XF ))8F7leĬHx(=p %ows<]\h^~m(t~i Lo+['HD{cڇmDx ͵QЊ2ǹG|>~xGY %abh|[5Ʊ1ِiW0%WbfZf[t ǶT<[ZȀ8l8]WvgWt@CeS`>eeO2x6/=0['J첇f=y̪ߣE` yPՖ79 ra(Cl6P/QŞ UAe?$*I Mdr PeSu0%H|N &CeDj491Jvt}{N@K7aaM'd85cy]v?1i3cءh(_Ȫ\]G`%rr ;Ϙ[G[ϽC]T{0퉑se'6djˇ8M)QU'@Cx(5f9IˡnS avL?(*) J"“'x ZuD5/ ΚFuQ.JJ$`3ʭ4"JއЏ4O#-#Az3  ܙQX4 r ݼ"u.;c@]@0@Fb5I:H[Vc LnNvcD\ycAYӾ Vm<9ևASsǜ}aV2VFE)>RВ:f;v/U],$X69_}&QZ~OV/ySTΤBhfuPVmuU$lhGV4^,Ri@4v KPxYuؾ6PhEɿn0`|%UkFNW* yd}D2`$H`1TkH?mU^5p 8.9Y %unI'%O;>`lٍfv''yVETqٺ~,˿ O׾/Yܛ}-i5Eazz7G͋R"1o"@zw_ .] X:PFX%쇀9 kN$rXVC]$xY W6&@kJOUm tkMgnlXLc<LaK IC{۷P$ӂO$Nt r(3R 6ٵ*sqZ[6.a[]`._ss/B#SA ^bE.a BrF6c([ \{5")ڨUm ܪ;(H`1ơK}V(Ͷae&]F(eOKM􀜱!X@ Ϸ×"4r^(6([ȪAiR=NAL6;ijzJ vt3v |͠o &2-~tL2+>aDRUWMy9y 8k(qA Ǎ-ФdȪ}PJ,Gm[]zqT%쇀8A{7aDO]bi9?+^U[temdR'4ZHw+K^T,zdl9?]:&=ft7 ]꬜H 줫8!`xO mDĞ2)9׈ lfCu6$^N0_ z0Y-?+S1Ҁh )q ϞX܊?J!uWbKZBg,1 g Ysc=p)f`f.VbáMd砹F|"%"-1"bbV9w^wLjOoAƎ:GJ` 'DK*KNtKjJ>1 WFvnZ=^_ ܚzhWBto ŏqShsg"t- ­#QOMxwxEYJ _]M)qwOoc$,(Ϊ*n (J4ܟJLG042K|{va{B>5dO,s(qDiDi; j9|^:P'Y,-ԓ_ pݒjy)*RA)ϨaHy }Z+_TP9%<*/P^hh?0:Lp Hzzd7i|~V*/Ump% $\12p”s@/BQ -kT 6Z/MTCTBNFeqޟ>K )q zvKiqP:iFa_'ѷa'?\]WL<[m|V!OX$9l;3#؆5b!ġQ%6DZUp:8+uG/Vd,9qa0@cbQ4v낯Q ?ڧY+ǐ 7\,7u [̕d퍬.`4.!o]v1۲B Y(3!EOYnBbn:D\@.>, j S#6ͷ3#8zGNuZ.lc5/=ߧy:EdrǗ@N(crV@MlCj[mAlڛMcҪTpT媳^ɤڃ9${Xt6ՔD-іg!]a(I]?Lw )X޺qVꂤ\/=4 ڀ (]Ǫ i.s5:%ufz_y5JB߆)tSg@B)Ic6%ȉm;fR;5<1F=j8}73ߜ5M&D;,22'|v@8s_S/ƶy*|!N?>$v 8w,Yx)qd רD0㹻W~0XQOJ7MϠ" >@Xt^,Ꝿ@F['e(¦]*!i(E`wG+C-̶lz//IYh KgaƛM2+.@Gl,|f}uI#6!%ˡ P`7X pIԩ΂udNr@.o,t!S"\]Oaze ڤv8Xi?ꭠ!NilƖSFo%Qhc|(i'wR: Yu|䳌L^Xo4eV/s#ٗ6 Z\z輸¼;] Z^0fsFsJ:>ި68! ?YQ]}WYRtGpMOLYvXCR7#}>g=vgE}$3=]=ۙ;F" h2 8*)ԷגR(3R_ @fN[@X.KI XJbdGb [j2K]sg\ ۪3u[EK5+5sUd(gLf>LTi3{0oha\^ u=>"z"ҿ^~8|[YJψgAyI|r}שÜ/xA87Eve-d@5آLJK[!'뾀;$dy,eqiƮȈL^: 7ۈLEXSE0aѤr;o f$8]V^n>c- j@l.8v 迨2V9 вsk pa݈M7TRl:;Űfp&چ \+9?~IdNw䜓46弾lRf[e1fЙi(7[LL_SoҋəO -ޕxw&zJkzJ J;Gy}A_ìo>n熇rTNU:pF8(Gey=䑰!4$",#$tUWoy@Buŋ|Bt]mt"z֒ͣ\oQl˿2Ag- A=yзt4ZmDIxihxG;qߴe}>IB{H#dr.l>"c esj{1@׼LðA͢%<߽X[v𴗧0KeaDdL)ERi R+K_zހIG:h $'$࣎P4<&.O)Ў+i_]Ku"_/V,^? /Iر ӚDXԴFž*ݶ5p`i.- ^¢ֿlV}͏yb#h|ט">G,zϺm}k }d_(;F5g8_tG P}'P_V@u3Z]pC r<ꭨ-"##jEeSYi\Kݲ_@MA?OSe=|޿dO6 J #!(D!8 +O9]_WH|$3x)F~s>z Oqrh\G} VU 8lREN hbWΗx~!}_վpLBSkM=s(hpapCZB# Q2;vg]ٖ>ApPy0׏9[DGGNGumMWnk"=!,vMoX&׷bc'Zk?yHhӕ Nʈ' ԩjeϱ5?dXU> hDeKWАOS$F-vtA&Y2?!9`JJ6*'샺9X1+C7,{\ _cq (jμPf?\.u ;se.*z R-Us<3XKO!Xtc~a4 x3,ܫ"ǣQ w"x0Ab?WKPzNz8Є֚(c7x qmYEE4(k7P.$>\@YoSY/VxrV*?WzVLrC0wp^E6_o JݢDf. n\NRa<GV"z 9uM7L1Rsqߜ5Mop^E6_o I'qz&0!aCXp'6Hk2=xW)W5ВrYf(sHO` I#Zu2EwͥǗ@N.A%k%kKJy\};s`5vWʮ٭ot#%3axG+*9) 2_8w,Y|H3ANĒg-4N,[:rQR~ɘ g^ku#Az3s2Id@XGRi]JʍRh -r%E":{~~)V$XRdvQZ~Rcl˖j4[Hl(nMDIWiΚFuQ.JJ$`3ʭ4:g@DS~ZJTܿv˙YZlKf->߃z FjC,6SӠȗ܋ZA# =194/l />vɬ|mx?p#BR MlA8 La[9%8Nh=Y@=ʒH>] cp0nRrbF\Y3M(>!I6ʗ&)oHdX-O"3SZZ:O$(f Um~Lonҹ!OI (̷94 *^ ֦Nr ;غ`p -5srP,Wi#Uhq %fq7VP2n/C n I vj(s)Οk0 JC @ڹ&աɟJbCfag  2Oa@tFx,Ӏg^D(3R 6ٳNTA`З(JS5,b=ƒ/42V& yol1X9n/Y۲q%"Uzd}\:5Cmr5xXs$Fj{ >QA ȯ /"asç}Kٿ#ME{i-l0{8XqFJJH&hZ|f݆۫r !*H[Uhz7 򊅏P. X*1nUH3l稪=R'>ʶt k#[ %NcAz3ET.'5 b&&1w#ci8CY.{Prd;Kϟ0{^Lz6C3 `2 (NӢsqVꂏV̶l~eʸm)TaTҮ)*}!Zٙ`9r-  ^(SK VIQ0o|XQw"ܸvs蛫vbY i@=%FXZ=>"Eҧ&Q+з2iVo Ͽ&i#;iq.LG 1OBq!yCk24%{"NCgB*ф, _=QVxվJ-:]=ې(LݙSy9y 0lc4v؛iO@gM]*>ل|LݙRdr2> QAyǒ!H _- p♩i6N3/53!ʆw^T1ß6z8փ˕x#\G>YKK0fsftWO>M|Pf@F o,hS2!%ˡ P`Z}2BZk%a|_?IU]JƸW'U)қ5;o{撨j)^ñqb}`gf(r!o#/$I}D]4|)ޢlR_2#8 I5"JR[]nxg 3NRX6g= _B 񴃽,^ctP uu hVIlЂ/ql7nv@^dU..ذhF j ײ ,8%0a?zOrPqNI|f~Y11D3ʭ4вsk =ɀ ǁH-G3uRE1_Ykk{2%ذh3#gp)܈ w;aOy3\F)v~uST΢%@I]{UƐUzNmy&a]v&OJ~iP6â S9{PGlî\t,¢'41 $%; jzQ#K숹Kw{Y9_/ݸ2VV8ݡDcp޵B 4ܬ^3N?LD%bA> n6WY*SngƷ;'숱̶lY @H2qf^v˷6)Ӓb~jZvD?A|c:]kg;~5#rJ)#x DQ-mW?9{޵ښܖ M~@^qFJJH"xSpU#+LqFc |QޝO6=^Zp :W?: : Tm1黆Ph+ǐ 7Ȕ K䝦a $]la?o/hDMdd0]wu)!|e"XX4$O =TPڙ^b葎U΃RsڮQyT cy0[L5? ;X1]~6y'0fs%*jDܘ?L|prc/nH+op^E6_o ȇxP@SX#(q{d@6o_V<3{1#1dx |Ѓj Fg5 t~<p' ۏl%2PU91R"ډ퇃*J#/<d+fOzd4etf{&`P(;Fpvk {3 >2Z{cSjZ5/JDSi+`?. ׁĿm'3 V#cݔJ~>vh,^J\ZV1bBz7Xd-PհsZQBhL&W2cBi`gs((; /p9r 6:;\ƶS_ݡJEcŽ-\1^Bd>؛ 2&2]2x'Tvg\:y -7JmK r'.QI8GG2^@^ǯ4YCNm`/B'UhQqtEKtV @BQs>[3x͛#2P u=xEմGԨnο, >+(+`H8}.Cow*~ȞAW&)t ->?rg ßy"z;*< OdžQ\ހly4Q@IJՏ9|&1w{aZX,FLʏ|^s&NnzӶp陣ji U4nR#?Ot1\ O(22:;Ԯ?55@\*\ 4HgZi?r+zHƮ1 s;YP%@]ll6/^<W>β+a@p3džu0j 9g4C! |1,IE꭮:ΚFuQ.JJA)ϑtj8Ɩ ÔQڵmF%ickfrdFQ:< ߢ뵖zr/JԒOQq|'gC-~8ZtcqsW`HCsrۃ.eehCY.{͘6N·~8YДzT"q\tEn~e@ ewnhUtLh#Ġr'>ʶt k W!4K@G{d9ևAT}Y9_\ȍu?hޔ|X:q7d@ 6w9l{Ы"! aJ!9 P Ѵ7owJЎlS7S%$ZiMOK{. suP#?`b*_M}Xo WBߚ';CѸWT,zqH T3?FeDw6sVdϱ!d |pތ,-$} magkLԂ ;:&=f8'OѶN0doPAzNX:Yx8"HiMMP#W:%%v0eV@bfM_lbo9&6;ў(0W @oȖbKF)iAQxwziugZ̯Uyqc.7 ,> 0:99ڲFRr#oX0>m;8z@fkJxh8@Fx^<7{23p"41#6)~PG&ժdV߻r\(?vj "!Dh/@s  =+v<}5r-gXHFL=ăPks2Iڌh8@Fx^<Xtlе&>p3ړ;[P"v2nKek?k<^Y􍅂vEsm6vETKfI 2C >,HXn k\Iom6}l:l8C^<7{"Z=.A!< 1񴬜'AE J[K c4CJ;=&|-ܘF"60:B:;$eX`˙YZlKgeG`mA`~I$}J-Lk,# 8h/"nxd8(qk>8B{W1]^: gu޻Yi*=081:WPmǺaѹ` ʙ}jx֡w;WHr&5-2@6}$&p-ʦKD+&EkdrAvcIbC@ EDPUҫP_$3`M5W9tw ю8Џ&ܺ)uKu(?vyd@ 6ѬuBtdv:`|7 a/ ;DA. qebz (OõMH5< K䝨ƃgZ7gK'/?[Uѵ;RqvqsAUg f%όuBtdv:(w=u,>5@>K swL7 9xT13 Y9_\ȍu?<5F9lmuyƳ0;P\|NNW狙2wwլKt5srP,WhqM%ܺ6G D ;qtT&@;Lõ&SeUms?ṅۿaC莉*.=ZĿiMMP#W: \nS+;b~` {FO*lnH@ư5_$F4 w=7q'IBL!% Ú-hqGޅ^i-L*?'SMnƤr߼}ʮ)GI2mhz7 򊅏P. Gܜ F|Ovxt!58^h/'4ZH*nb}]c_S!n֮sn^V<BU䐷櫉n \@.=/{m|o/U2Z4!< k(&v c侒);ў&01D_#")LTo"ẑ~@,A(9;lRTH~|5F9l\ɓ.]yо{ޣrNT\aGCf@q[t`*3D2CVnaP,lbvaW).#$VZ證&ݮ;@>iM9{2#lO,Q[%Tc@tdn.WOzttev:#bK%4wSQU'@CxIP;sA"*Y lQX<ʃϻޅ^i-L*?'SR$WO x@8 @|(iFd-!G\]/57wbJ6 ӚZk%aN ߴP`^䦐wR: M|Pf?\qG *b$F sÈn}o{[p3mUH4/&^ _$]'>]SX*a ˀʲnlEhp|/@t)*p1BS 4ePP CS3nMXǜ}fǜJdEBh跫.=tA/`4әxz/Ump$3>4@:yl4>a2('LiV swLiu=ɑ!=]WiuT;s<ñWk4j~PX1j3A mtˋ,+5wAm**3ٗ҄ 9a͙&@NaW_G-@:*c^uVp1C:vL\XTda(j=s-Ф>^T$5j8>q >6-Ԍq)i;+;'YEWka1_IX hZ=7ݢ1%|^!l(ӲC}FQ:r !*H[Uhz7 AKi[ nym :nhiMMP#W:%%v0eV@Qˊjh3_H S4*?'Sc_W>43%Ě_|R#ND .߃*=.K`aOETF cX[ -j~`gNh*u5X]꬜HsPmǺaѹXn QGӣLCwήN, ˏ/&$j^_M{%_E;vlRk-צs9st&mDkGOj]UF*a`]zw3 /ӣLCk7u z 9?&$j^_MEP)@,"#6@Oz.7bwF DX[6}ځݹ+b] Z@$>]^⚜Bz +b`^nb6-ʆq~_UR]ͭ/@s.YYs| ϐЗ4X@ U^i-LhDGO`ȣ4 }䉔d_ i̹F|ZlJޒ!HrBے? 4V!!?@| l?}?zNmyn \KɷV@ѥM`^vU*˳SobFfwx17745 *ihBCGkk fZػD|D 8`n 6W2ngfлhDkIl(>J[jx}R4/ʝUZ(cs&E岛ge2U b3a^gb],|J[+*8[ A`j'zwT~8$otYh-'1ߌ!aC ,,Md\_+,_(IeZ;a:2l$8<$If$ѳc =gՔ&:_nLaíh.*V58a|Ur:c-Jj}8B*{Qs'SQR$_?,DCjkf\ v̀ :jPqhcNr9T]C\ft%ͫDmcSη \sQ:_+{:PR9fF(SFVEZ@Xi ^nLq+`-& k}jgyj:1HI;|rRz9ߦ *,XW<Ɣ#DP HTkU [}<@Ve ^2q3zфE V1*l^1\)-ɐ)m?5y}ؘRŶ$ ˃0hu]\0]CcӔe-o̠xәnxq\_.~ 36¤*̯-.V͉ݓ4Ŗ=N><^w"f6ENEq*G;JA%;/qP}twUmh 'eR;, .Ԭ-,I QesfN'w0Hrd ̙pQMq cK7Iv;;?W9׃d iIA&K>bcʃ vNqg kޘ/"yFhs!N3!Yń}kx#҆}+7s4ECV&ͦ O,YαVaz=-B-c:Y7gZ_sgAK˒yVo #ge*c7tl)DyH;߰%w 5_B_hGĉN\O$ !0 g[w.-Θ{`ψ70aDfgOha<#CBI k]t ڵR#&Cd݄Ρ4 : NA]V@XEk+j$0E7#Jܡ@2) W}xwUL^';kST7k?]ZLXgHOᲑ?ppңΔ)X| VHRep=p0j\ڋZBpϊdt}1[pO'dTeM!{^m6Lk)"%7[/S&/js16GE5 9'W6ɄzUQM%'KrIvB:4#-GK/x`g Ii/k]t`# đW*.~v2F cLޒ~\a+^J6C=j"BoOBsz?;qs!z 2ڶ~I{՗abbpp\;.lpէʨ܏F&Q9hIN)FϭW/hQ2:C'%HŽb6?dBEHSD`g۠$=_# Lv/3AѕT@M2IdV*ߔ4B dd1-_ŝ"U(A O9u'?1UXWlqϓ6p2 }KV"Tи:D,,*s ;{uKztS)e2LS)e2LS)e2LS)e-va>]4֖(ƲYUq"z<h\TJ ~΢$7UtRup/;Sy`E HIQjɑAAF7Tp/lM: 'Ur1=]z8!侵DCcβI1/":㛹| Z^R|`Li.1XW?JF9~^Q}XcjJgZ~X%b..pvO.BRb,[dx3S}@"@RlC-/ /d$))Afz5e9lt;Ҷ_#+d7! 9cfu"ӯQuyk«@NeOOqIÐ"f$AUjKfVjnaRp0K|ig9F{̾?yk+I{(cyG1ɔ1udԵxmlue#>ݹ+H#>b+Ե :iPEU1`ԋ7ymX*- fC.m)o#FigV žطt馣.1n{@̦ )Kv1,Nw}lC`Gy;KQ/\JVN6ehwhH:'rU+<2@g_ xZ5Ţ*E|=)tIC3*5MބD閨EB9[i/&ŝ(^J0g-[eϴȐɡ|pÌ>ʩi4/w˴a`3E0 ء犦IU"19U׻bN.T!6` =c-GlqԹo53gZ1;F5k ;_-ڋdkb L x6!ƍ3EG.ujy E8E5'R1SK[2%ᾀx,`bW!yΤBˠLz&1s K}QsV&^N~-񞡰 zf;KGи,7 '*"\?>7<GT iI7nbh=(B$4Fw| MDUdm-?\A/cr$1~'VCOu.XK׭wm),3.%l-UӄvqNetql˩qR}-&"8y3m#$uA'; f9f% r&UW醎Q!K\8@;S$8Gv~ G#R;8.s-mi[XWh3\Y&&q]v{PgNVp]C5aĚ֧ƫI}%HDh_5&sfX*p`WM"Ohmޖ|uv]BG=͆q} F)k J5%ɘ}= j v@TJnR睌r` CKN51lQpāXQB+nYѤ j8PA s>&@ w#?j+L5˩t" buDxz H%(/R*^kBGqG&GYMjP}Lq4s@xn(=L')=:֠:I%9R'f L7]`!BdGmn 0W jj/5{H6dy4`Ւ;{./FS8cZNCp#liKqVܼ?v(q a_a^}-Ѹ}t1ى_n&JIumӑO=D_}?ng_T୼i#0|VkV [5! ˠ01:uKhsS"l4לa׹tk!YHqDf{<2r?#yRO4]:Zt{ѳ㷝Zzq q;.ⵝq_$ $\A_wGHgЗ4-zM.A#`PtQv*.j[EVtX0"֤ b%oiVfA.ɟ6r kDpp !qthbk`P[h~y4>e̞Lͣj4htn~C}[a֓Ic>C̄t{mZލ2ԸЄ֎KB2h|'rU_ 䑴a!V&'!v(=>f l:bMp_riD!N݁o?C.ZŔvAӬ@N#f"ڲʓ> RMվy ^-SҤ>G9ST7v^3x=r*ZH7Uoˍ̜Aӡ8?|4o:{[PL2.W?ZJcdeRFi ixX#YtgU}A4do "Q>MӡSpM[ۥ:l"$C0+wX.&y91r"t3UND-_{':xxU"<9%CVM9gd?g~VDaCNbCߤ`I[$+e-_aC FJ>a3Dpʷ/q(LɼyBG|wT迣YDM?Zp< !f.3sMdQP9҄ qP1 U׃ ʡ^E*<(ȉ$WX<{UnFF v͌d`&(J}Ep,OH}(֙>U~ ŴHڊjDe8d$eNTF[jCbm$B#~UaP: mLߤwMP(* bvXڳg Y`$y9OJr%'΂}#?$H rV:_&D,ZK=Į,]p##šqY#L)~nI%2FK+V'ycǣ7ҡo9j\MaLx<ZUw`n6^!)9]I0਺*KC 0bO#S .GXC|qsN /:$rV>\"DKXnEv ʤĘg1U}meJhƬ&Z|+!ۜ0fy딿4n4,kBwi_dl\v_%m+`V=}}Sc, njl&X== gO鷔`c 5$.%/y*B.LsW; hbkh[1cx١O)vbD*ًP pݜlK׾6rrLg<$601Hf!˞]|a5= .g~ !#-=eK١2BvfbzUi%'vv!=(`l1aը5|\.{hD0Q{3~c7!yRJhOT޵Ӛr3ma&XFPwȷ^[E-XxGw`GWo FD~zMLe0f@w"49ƑVMfq_@~WywP.#aC 9jHK]1]RN@L^% C 7P\) oRb-$w-ޡINVݿX`6s;#+(N-.]nE=}w oݦk7f,ʊH*gF˩mC'=iM[Y=̉EwiȨaL`g}8/8 GV]?x6rk}jO 28hJ]j5EE- Y}lZWS2IMsh_2VOv}&*{{Wÿ"‹qXMtydWBLc#{bXZƗ!z=* M@gKԷ:;al$ej}Ipi|3W q:u빇sX?} .kM}kr8HЎڇQFԀ)sCNj㑵HU˻L"Ls>ڊn05"VO_ 7UP~gNcҷc ]KA!E6nKOwFߡILRUFrKgRN~ Ju79j ]a) t1Oy~­W|z$G%WbZ]sZݱؔFHMoxGYE NT/>#$L%3XBŝz<(\r`2DnfU_!C2 pd]ؒK}NU4=$q田PbFnNЀbb>1Ij| rI/3ơ[DzWَgݩnrD\c:<rHxU6qJߑ+8+h|?%̲$p$k=.`^Rq!_mTS~SQ2hp4?m _?Kv{|VL Js8Bo@ދR|vˮ8i>^'Sdމ1SǎAUՋ-vbziu~Z?-Bq?RKxR?GxPsȹaSu&X֚-8VU5{#^ܽjv4+Eo"?@-o`Y4~Pl86êCMLENknɰlc$F_76NQ6CyrӃ(I&=j"y3fbf qB@b.ViXUwN6^p|R5Aˠm lݰRT be(ՃNXL QN.WF(0$[K'N wV^˫j-ohoD!Tvbϵ춴/基~iKQŃ)Ȅݻ 4a{= 6C/:cl= y࿯S,^(ЦߩfEƻ՚g\zri ](f!i'0cQeu3Ǥ@@+}gKmnuUzGC}$drC\[EΧ*yL: ITg4,hVI]VO5*-^0=}HՇ}U榔 vm> -  Ȑ/ P Xk'NG$-d*HkK4Ԯ{h~Ǟd #5U i .C[2#IHm7VpzlQ*|Ht)t ֎RUu8=y弐~ݤ[w׾!|!eB2;ASy^rz: 9f$1'[贉ߑElkCX|e' 1a컾5eEG7Rq74 /!&2}O)_huد MLDjnxМnAGE;LB"zRy;0QBdˍ pO!YlLӒuj \a(H"-zcfS{V;-oRC)O[H%?qT vTaLBi?v +=n 5 -:`e<7l}D؁hd(/T, \ H5^[\ML'ȭp#l6 WnHP`v·sWUeF?wdŒAp*[iyj:jfhd!HB, n|.hEnFW7ȗF@Ljv"#ۄ3Hؐ5> 5Jt O5݋ )&8"ocK 2)EL?'o RHik"7*+XvD*w+Bi*:yi-Icz~>4]`n-N6]'|A4EadI +DEq1 Q'%EB~Q =_w1 nrG{nDQr(HG)''mf*\:sv*6Թ {U$ 鈪cSz:Nǔ 4 &#߽!Uϭd_,9~pdig=<:2rxo.b3X%jwҾyl)ݒ&f 1-68,R=.۬~|:`*]bTP~0QoP cu=[11kv*Ҽ;*3d"=˅S/kO]dމ %C@H K_WkH䱹գwxK's|S P-#oXnCL 4s 3 z%OBDy& 29iBS8Z/<@yP`$$d Kd‹d؄)ĺ)߹£3g, D4u@`{)8 F6̮޳5_CƐ.h/ZXZo,@qXc7|b.N2`)C/Qn%cSXkU]:tG>zzF,Zh-FQ,W0x4En1J$$^єhUĹt1ϕw0o;%QIWxUk̒{ 7ưWGUldWw5VVn-=e.P۲cyE@G [~C\ e $~)5<0tBR9 W9bExa%Xd!>#)k~-q,Qr?&"O\eV f#sjߴ$̈́WhXyI Ҋ2Uw]07A_/"Щ|gTPn"$6 "z4SXt~yݸWI? L/VDd7ژg&*1e+{p*F&;laT&)Dk"xQhy3tt0\HH+?#U lжAI$9:v A1HPimtk{OSK A,s&;kɔڥ8"z)K裟\oQ魲ΥG(Fcj|G1DS7/w_f!^H%0XyΩoo_Vky`$lǞ=4ŕ ~gy8ѽq/-O]GaS'tc ^觚eł\7tXl'ivK.Lu 34X鲔$|OYW34W+f}r:B1[˺&-mT! 2hT{5~~JV|OX_[fP}|^1"t(eOzH?obE -W@m֔:̫ 㡻*>q!xr؞ h^v򄬁(kzm󲟪eQ]V*G*+WnY? m9,&N$hJƶ"nyx(| ?Y?48|I ^=Y+({Gc\۵ixi3!RX (r2^aQ~y/(H^B77A*p v$]r^mп`qVJ͗k4ȲAnTH?cc:E竳wY˸6-DhZ"=?sA|>4YshޢOaZjghC'͡,[hASxDV^iwywXf Z8yC9O"̃p%?l@QkQ T!CSȪzK');h1Yr?W,[o2e5&H3L ͯ νp3vApcgB5(XȐڠks˱S`?fܮL>#cni(7!:f؀ώ{Wqwh{yQ, QrCa3?kvH+)~o#qjG!R_,+ٌ`ߴ} hu;Q-q*rvLۑ]FN%BZEf'2I-+ftcٰ䏭>+Tq|S_4wC\[Cq2p`b my;&]Αz \۱~P !{{Pk {]7\}@?3W+ӜPYdV/#WN:5|J_c?l#WQ?37ҿnҥ1g31N _ixie LUʪk/:)y&?^ h.0uP6;-rVVXw+ߋmUoEZf^Ī0'uUf5{'wzA} lI{ȁzA Ì1qrt:7 DK)J+{)̍[6|6uG7yw`9h]9r咅 ]K4['UzPP0q#M{E9{W(9TH kX V%P8QjG|c Y>rgpY1oo F↓0MЅ?Oi OByĠp^XŸU ag5`R7T$x&1p &7T TG!c0dۦyh 4Kk;A0,BQiʒ/"Tkt KKZH{lKm׀ۻx*)Кls7ͬu{ِ_Z;]ȏpNGjakO4izoNm6h]l g.iұMe)HfiGȻ iAQ?~*[D+ib6IB.@vEOW]|WکgX_mkyNU5y\ƺ X+ {nnw 4Co3<=CAжf`EHq+q5tـPz-(0Cj l%KQK۟U7 g#9HBeΦr1rpiĒ0k#X&4J<:aG#b 6&xQyGG$0^j,ѽ UW`?P:iw.MZy28Ee8Fl$t,m:£'pqW(8֪1-|E*}ͣVnjn󚯑?Bs`#z 8hCV_OG嘠 cSVUCVO?kEK㗁{t~</,Vh#Q/fײ mu&t]S 9!eU+4E_~_usb{x "gM3/ {:ߢ@#H8ĔlFhӶDu"qZ>G4ڨ՗m I 1Ղvc0+Oe-dKjzQܵ6K$ڑ!. DL Y_8eZ6*}VI;AVd|;UiXGg[dl_[a[OwO]k2tS? wH!бl55F ?7;S{xRAM"ˋ+.2/bm^z8Gv %r1Xp~1GZj s}b1+߭F@ XJOϴstzR327IϺt&wkC`Nn Yl0=8,WFye9a3w GLF! )F`SL7]Ó3v3=nu^:=iqH`H4Qim/M@&"<Ά# \H|B&C <]ߞu{K.VlooD1X \o/T]U*V&>#fRL* wb귐Iv0r8wJomz`0 (. {Plʯ,2TaQd1nW3Z e<~Saֽ?wB?gxXeoW`u?52nrdCjBF*o7Sj}LS&͛c?pe\7Ǝ4Swc ЩHД0a%j6tCYdvyu7F fݼD[vJ4 joyx[[b4/cT!E*l&ҽuKLHl=2.GV";WP-}8` ?zg=m0[k9YkTt6.p^ƹ CFHuy\nQ5m߸=`? ni3K K ł#vӤsdʾFr7=;gOk|Lef ~<Q qv `STM/U90IGJă$s[<Zhs~ao#]4Dir<%x P'vo(6?j&X `1ܘa>Cy9p-?HJհ4̟q?(pJȂA!7[,56IMJo L<_Oe}>HM& Rw\1@sqx^D,v2ũP6?0ybiA)M}Gm >?_;΅e9y{j?ܰ %8t]߾3Evf47yHGvæy3ZI`>9Yp$Ar?ow >,*K mCr^6.}\T5 ֑ޟ{'6fjߟ<'∣scn?ķgnqr0'>c1!>*_!vN cqhv%%PUⓛLd*W7 jKQ/֒mSzsgwQn b%RY3yA#ayM$ 6Vͮ.]ŽZtR3DFy~0Č&A`?6deC򚈃pFw$d3 9_cqmi V޽K(isu-,n)=RShf:M5X6Ul.5A|x3@}Ԋ42$!Y7BOt>pu0OP\tia+:9[j*:vHQcҐc;)_]5M?s91b cP6u՗zˁuG/'U}w툮To|K;DtC:AE튙l g1XaM# E Yk6K|{u{O]\Ǒ9m ӣ]fD|v3 n_crGZ kCWՁ(^M.hY4ɝ˻hi6鈩v*},goNW"JXȗz?Icy# YΗPh&&9iza;xAzY.[N@JS#b0_[؉9jӲ{9d"w1D; HG8Nܭ]\Kqbpg:%1 ܢ3_;Ъk{N0v UB/4 )&_ 6 h1WYY P 2^[\K kC)e Qb 0 f/ؐ!m`HR}"4ÌFX0f*ɾ}" Oǃ}w?SZAYUb~^?s̀ |tp0"@qɴ:< EQmg:F*+Y.ZzA70ѻ#nms~"k%*[~mOªRρq/aSٍU'ȭpD9vF4w YyݿXǤ-mCP[I2zz]0;m4zM&[3x!!t{YAomLo; "aA7(&f ,&n4=//r4ǶL.Wt6<1k<Ve^ےАǏ ^o>@(ys Ih˽sw&oC.$tFC$od߄ `wb_$uo8tɚ担D3z+|Џ`j}lLNrP>o,(VHЭg s^GjE̐Э@Tnu/`TPNp'7+'TWG!!{G/VVN[ok sD yy:.Gؼ/aMvG'XaMD ֝c(f3$㛒P= ñmIN{T*UL ѼDjt1r`Nfx8Kg]@DdQ^7 _CXT\KbW?K R{7a)@Jy׹1g/Xu)* 9hW1e&.<ΟsJG2%["&2*y9,{涔-5TZ@+ǿ6.62CbmuY m:4+̅k8R/ uY$'fBvж¬<%vC#~بo6äʹ-5)osURP"ѡp@u}Ι?p_ZCKO8~/݊,) PTr+ $Gul' x"uVӄJ7m[:h~܎T;(Ua 6#9 e.,5>;߭ )i,>Q{7Uay!6piA\H|dY{jhG29kSv,E D;\E&4WU 뉮*Gj)bWj&پ3W%(vC3ZEe8M IOTXeĒ͈n)BeqI퍓˰wdT˽\[5/>n(w!2̴5roxC%:G)utg_gH"ax[_HW˴CiU50Tbc9RY]#m"pvSNB.8Ј%1ԄB`t%K+4w!Alj> \Rٍh͌BTDτ;\vp&m3~׭׶@ J4jt0/=uFn刟c E?l3)žF*\|*{hn.CBM5^’JG '!~)DwO'En7+@(ȏ:|;|C֊C}KtO{6aC4Go uVGZ|e 8F0!=wZS5ˌD)@ڤzgĤG}=@io$ιtL<R([dnuP>I#zQi7*i~@& +"41u" )e'6"JDX;{[Sg ufsrhX?ߴs+rJLLQTܳy0 qϵO1fڮcZveulZO1P\mcݢdoHUk_ᳫCvOzyD=O_7#Aao$"jYm|U Ƨv0!Do0Nƹ*e{ubAeh-)-7(z w9rT_\=秼Ѓ\4C}"^ )e4;G"" @l!B i_ rx뫫fHNa@>z92C{Hёv__`y:Qۻ49kiabl噻r4$ {ǎc_$u!=9X끛% 1 Y%c5Ph_@"?U;v 07Zw錯Pz揠kU 4f᪭q 2{VŦ)#U{Ϟ'L bW{CPVa~h.sU) JN}-;oqm&.Ag`0_ޒ\oJ|s>RdW]O5 >X H6 :ok&kbOEpAjWI?Z@CoC3aЌz硍gN:vÄPh%*V,kJ#!"M_Aϴ>@'~dwr-J]NE6?o؞RLvlk)gcԹۃ.vXLp"⥂5FSվaHRt+ y "mbSWNGxfOsC8<&z58zF._C\xپb^`ҩ._F|w>(w8l"g#1q*rF +՝g1 Ng=aHXɢf^,WVjI5=KL[ v@dMfiG >Q 7ɱ#g0(q)Pv9N!ݱ1r eZRK.Lc][;)I3xZo5]CkViW;Ɓ*= [Pлaw=BKsA/ǐ98kB~2adԩ΂lsh.}N˭(ܓPVUi4$\w|d>FcjPtSs/&$j^_M BAkDi8̿$> X,fϻP:{۷2+vY qΩ݀? ƪPmǺ᭵oH}1?5=2@6},H%< g MFJ=Pa]'>]SX*٭.;9:ٺ6 oK9oП^3`>j8}73ߜ5MJ?9Wh܊bauIx;c7|56*%+8AWvS40ilv~*,0;vg\J6<&0KfHgBAwb rk+uA!3mU2ds vZZaW[qWF B@q5 yXi?ꭠ!N|`hI: 1;-|ի>'_OM8HԼ0lŤ[B։Lp%WH2|YY͟vutGneV =ÃS >~Tۏu7[kdb~jzel6Y.JyKZ^]zݫN}95"UZ] vruul@ޗ r5?f}uOqng8kmlҔ~rF<@wF njlU-h J5zWutqv!9*iNaRD5j I%UrXav:psZl 5W"ySeL8`"(̐z@)ͬ /VBg̪d,@촴®⮍I(j[@B)W5Г1puAcw)[W0}C!#_LOM< pxa~7H'u J2d)`->@n$-d@6{]:*v#T|7An;ɾ.%"5SlA"\'`0/퟼56*%+8AWvsTkQuM`Dff؁.kB~2%x̀ 3-~p7(]x: Wr)ց%4تZj_EBsNT Ҝ¥jK) ˌٞur*jDܘ 4#RoOUn Z& 3I^e9 Ref[6}ځݹI[ZȀ8l>uLT.Fn5Pn=='diC3)W5І607`:~p7վ\e!xA#F{ʨ)^9rUlEk]rNy%KAXC39rz 9I x{Y[Z40C8eS&H-9`gFTJOUm t& n!]M;{qY{@17KݤQAjE10$fѱ~KZ^]zݫN})ʁST6 ZIxe;?\Ayq3ή\%\֛BMUȞT{3$3ޡ o\ՐXA_KATɒ#}X6 dZv P|ԣВ5 yXi?ꭠ!N|`hI: 0.: Όl}2X!Fy}> 4#RoOUn VU'6Ȼ}}[؅ lS6b 8=յ6eFo,\#<?J6<&=Y^a^F$=w=gCJ{L!G4=eftdzQXm ,ŞrPEbnHlG0`e2ɉwOݲ+qZ2H5$WX<{UKB!n"_u吅[qU+DlsJ ;v;iohbfTD͗u~xou8]|T6_CS[rI+tBٻ0RuLaߊƧIE=~ Ga3'S޵L8Y%O5T^d֜7e>4WgVJZݙ4c77q]>80?(WdPrgy.%Yr\"R"M~Uh_٫5Mlw헅Y^ܜ{lQ&5.r\)-bRŢ3e)'_? 7f"RrS:o&a圕0 : ߷d7# ]#^z,HP&I7-(L$r hXkς(I%:K.ߥzj04/):79s/80mqw?wRh^βAߪ G5.f0^ A2es\fׇ:0|DHN3vySu $Lgm$`Cx8 )GNT}XlMKڌ &R4 :A m8q26#A m|SUxy=ȸ--%=VDЉKcnpKgmnsˡTȐHjXsǴ1\_vW D1Wz 6'LNHz ǬG7 #J\FN# ԝ)Sp;M"_KjhSZk0oQq'=nġ5hfۈJx0Dx#ʿo)G#/G||N;ޓtz\1z)4YJQ`7jcIɮP1e:enq$Sq8L(5Q撃UJVCc= k%߬5-ҷܱ L3&q2?yWu)s usK6a?1㈚NjF5bz?&Ne唆5H⓽-ǭ!IfHr-峺畑6Ӈg6/GSh:55-5'xz\8ڦHqZ\(i|?Z k%+n؊l1KVgXad~P(yk㆟+{8Ơ#]crjIP}꯼j\_ATIbbtvf;WLϚPNZQ^xm ,nHLUWCHAâK{>#?_gr<;Ԩ> [ #A0_Aϴ>@'<)o/k;H$Eý&o!B WX8[m&2Zl $xuh E(0hW': Gev ~iJ?GY+ NdpM 8ĠM@6 9ĝ1D09;1342_ղB hBuBJ- _ N2Y̐(3g^ǰMb٧Sq-{;8Ͼ r_6!@( _Z $nzNDv"وzE/*hJB>82n 9x=>$(\ǓEYM{kK{ϰ؜z(ɇ,x96sn}*]⸔J\}'7 %S`r&G;i %n Q+d Ssnl9Лp4l+ſ*lG*/?|w[ H'dyV.`wN"1iц+8&z*y ߫lNT|ẅ́h% L8o:$:wmi'cڬfMr؊!:k6b mJor%NU׵R ̔b#A_,jxWvK3]v4~ `Q(DvEex1C23i%y z|@d$!YBVޡ53!F.oENnR<2mazNmcxg6]ثGD8N~ A)&:8 ;8X'd- Xȯ;7eĤAv^ZEߛW>*wYIvtUr#}" m|6&R3Z0-J&ӇJ2+>T/[yRIiFF;>3@BUZ3T߱k@k|+ypB"5^o0Ph$$-FGU5*ū%ॗWZ!<N+'l~VTTEDO!m8GwTvʼ~f`cabBR@:z ozR3wXBoXȖDוi"!k'nHb bEOF*T7=(߆P^VBxE9nEn Co+ޙoyjX Y*ulO?[ ڙ/ ae]mHxw.MqJܶ@$oI\YW_?+w6Ra*ɐފ@Ѕ߰$4E3ƃ%R/K8•}U0!? ,':7;崊[ IoxƯe@ 4[[O+@u$2 IM'ȒB4-׭2Љu|U?>^@娳VbL!+p{Qh#֥._i!AD:Erfe¯M.DVHyhTErL ){{ XDCg2%ƙyvq>iH0S?4xģoϤuR;ƍjPX`V`Q!Dtu5mM8^lox7pң'L4V=A焀n'`OκBe-낚2zN aV ໙)&fHA!re#1[JVBD):@U7z Xu &TixBlO@ k 8м;7a.Ob`3iʐk1{=ey7%m'K7fM|mwìs{5osEֱze\ް9 #֢C]J;Z$IN#>?<|7;k6e$",Fw z񉦕pR2-Yd}LBId?ĔVHpwVZs xVnI盥- LOtlB 1 G=WJe紷N>.?jcCxou;DV'+:s]󹰳rZF]S%^ԩ8mɸ\xO,KtDnaHxI OX]ݜ z ^_bV \uzZ0m5Jutw]̈́cr>슫WϬc[Hy;}:پ.a!oӂ0ѻBp6(.~ռZvr'q9XHq:b*UHSUSHLݱLHSJސLGX-z+rz$DB)|M[Fgyc~#oW]0|B>[\NǵYH"l@4 B̺h+Gt<18J)LEoYQ;><ڛ&@υ}a+3)IPe,2 հ,ʫRﶉ2[ aF߯9xP)W s sY8[:"Gp1k7{ %m1YzJzp`$ jgKex8o jF[wDXQzm5s gmaBnܪc9&o0HBџI%RHzp/S)mTPM܉%/0%+JӺ#z& Kl]MLƾHd̜ew҇9uӀz L^@ Gުxt-[呈b)$#*X O?'5 ՝R'RkKGp+f`a(/F%JHe4mH*hd8k may$:U!/ *J-dןbZ:F%]`ۢ5/ ;Zj?m5i酟尖!qPVs%KsQb[+7lTxozU,cD틿 át2ۂ?z `ɠz[}Adazjr҃fU\Bp@Hy=o"w`#,"?U[o)z(}0<*+=GN"5ۢ zcnk=^aެx~+ƚR+{(ˏ6 H:j S K(|O-(~om`~dkɆB§MOKQl>\,6s&FxNgah s#5tA{s)o:4AUӐBzmihx_4#hQ~ < " uI#< OP_&IG7b՟yp] NxPƺ9lcf=A2S j1sg1WWIrai3x-\W6ڛN$O׏XA ǦaC')$-/GRu5hWdPޖ #lZ@ ˌv ,h[ 1ʜoXL#D2p|S0Cg]CBQ{=N^Mx&YQ9 =lHm)R??#TcIDtT rA:d-h@*'ͮ7d;}~uDkٮffyXoԇ3,Ga/@q`d:Mu (?OR Cg#A߁\@ZU 2q.Q7ȱ[ԙ.i*b.45N&3d zkQȀt*jL7;"YL>h+ Q\ݪWaT86M>jtdqworԛu_5ӁB"zн2mWZ=0Џ*pΪy8#6N]{:^}9R'ݘ z`h} zM(]k:pu?u>t~u<&lr~]/ImI&2Z5-k?Kː0 RaƮA XyrcPe/>)a{]2Ockɕr}˗SU!HF*Lke S:Ur6atOU4x}#X`RGCPpT R,L"SLUX8>>]}^hc"+g;zszP. 5HJa#ƷBo|H3)6 !֘W3hS̙'YS8}H㗭ÝlSEMɡj|\R\uWzC%,Ȱ/lc=;gJw{er)\)P,qpMEH0jA`;WW|ƁYrv*ź)!}KOJ,flfzy/I\i靖kjG/JR7ik?ԇblJp.M,E9 Qғ;}j(4w 8ǨR·g%ڗ>%-8 cmks).,2HA=N dP!Жu!ЀT--(a 7yf~2, 1rƥ>`je 0bY pV \#;Ǽv.W=>Oz}s랟\=>Oz}s랟\=>Oz}s랟\=>Oz}s'U @{ЄIv(:H4{ҚǯB\l+5JN XPVK[}G:mVZ tė-d+uC[h|Y=쯃qksΨn:S<򍎄bPCbX-ZD{@}~_V .$>:uYg!2*+N=srFv)j?5-}zmգ2(&ZXV>$>[ے_ϻpE g=WSLiD@ 30McV $ub"`Ig鹸H&ܸr:Gx `)3Y Ԧ0"R, _ ˏCRYn;+Tm =_A#%;׭uzh^R(4*Ͷ @W@/a[I5&|6Jd"C" 4e_'03mS0~A®>6?@zqt2PKZבps E9آb(jPݐz;6( p~xVdPa(1Zpg  Fr\ K;6-E,tM *Ԯ'sswo~:4 gᖿ_ "eItJKn0*Ri0nexV2߇OPlWX]>rAJiy6~hZϭ\NTe+{wuYtsPmރ*b){O*#F1b Y֟LP{imL9)|^Y,fC#F`Lf\. D1[qwPBBiAB=Ҙw^DZzyfl 1らe"wQ ʮoE|Ec Pw4 1F2.S/q! Ơ˝+^>P^LdEAo!AVA79rj93WJ+ ǔ)o;=5^ZZwJ}uețlG)DP<$TՒ$SpOjr]FFs9es'%q %OW!1S E+6"΃극SMOS"3GG V_~kG&̇&TCt:mF{n>0w3޷ɩaލ \:{X:\r]㰪Ǒ/Rtzp C2Gƭ7vjO^cXlx?kjcPZOr &7x:HqsϩRh|/H<"j :'>f ^f(K.h"| JEݣ}Dkӵ),wlfMr؊itq ̸@?Q84׊騥Sډ1sB;Us:[ }2OnS'>gb^ v^V\-:X6:ɀWxHBE"cёf(>xa{ߠt F*7!hڜNx^!KhXIp"A,0vEex1DF+i`NS+=l^"Hc(ЦWc&G!j [|>֬\iDo'7(:zabAKkd(_-H t켶#Qmm=mm]ÔRj]M\_:RX!ϓ=^@ZRz'z/)PJ_b??呈b)$#*7ʒydR\;HߤvCa$.U%DxcԴ{CzY_\F>P5D`YRt0b!l n?À)}\"ڑ{MȈc'DwI$1$Z!O0+,*?'Kb&UPҢl>Ob6MAJ6KEXiS` }Фe;;z0wn=s5Ѽm%=VDЉKcn9@8 !J-jkxHo$pG3}Pz Q%i b/C%nZ(yKKYWO.k=K ` Xx/Ixr A_R߁󏣞 TC*_V_,SX؝-`;Kujʯv#JY2ppN-u1>S>'j9"[l$h눔+ܤ܀j߾jlIEٛxtu2A+G pMnzu =t p 5g̶BpM3xyJC \ L3|dz &¦^dD6@OږɩK r#{ &$p<*G}dslL?ULJ(bcKFof SiI)%̵reE&d;n7OEHWfHXO$/=}:PhQHaJ.@︖:?Jե]Ack,6*znO{w oDpiҺRZ Z4\MB̂@CƃX,o8Cj/ 6W?o-l:]S_G1äsv8X4S pJiɬ$T0FGH^?%v )WOTF&ˉ[ w"ˏF E( 2AHl}UDO:h(؛Fޒ?}'mt 'aQK] g^~*۸bCjƔ:ll>w)nfNi) *HGf+TΉ}d.T˽ p-w!!BbpSAs)Gɯ,H^B5g9$TϷd\6$#D7_͎Puբ0/Ӯ?D~YY:pb(s } cUZNS+=l^VtTKvx"]v^RnL}X XG[q?+<#_'@bj:ga.j >opF4a"0 Q|7w G\4k8:$ɓ2W(՟6De֪EqI@a[CwAAX0] =KY(+dZ[Jq(cz{ݙz>JkڤLql0c?97{}=}Mv1ȡ"09lYA\qMLptl 'a㪃q]Xn+YU,y>}45i|+wIr,o!_iaUH h-gf8+6cs+EE` nwѶ/8*LLb? h׻GU4-DD)HHTaԦS)e2LS)e2M ~p3/Yi'82q\J qz;v.6< *Pܪ.OPyr~ +˓8T^\d!)C-Hhj7hˠ~OiM2۹EϦj5KUm  a!zZb]MzBK sGj&pm-7|-"0Œ EĘFz7ݵ+^j;bIP,T}]yo: vo;9暽7&4Hz;47mR8b%YGR~<|ʎ.q.:UȖq+/ "lEۑX}X?*8J"}pMh8j 3tME`w͂(K ?Xd` N4E:Ɂ<ȸPp+Fc"M elSR9;@ S^Cbq'!{6һB[ald jʔ"{9s26*=yHm]G xT(K48ϨκOŽ[e>N-roZHCaXBG!1]?崪ڭ"3 :V%L,Z>׸6b֓چ۠1Kr3N۴zVXX/ŔDAHDG QXU-e\( #⩠)PswV-?47gڽ4 ¬ GPx΄ɞȀU} 0zaZ Z4Q>&Q>jb$fఃqv}QRh&K&?$x8olBwq\V?f4xqc]w9kS$>(U:`u$+'Ȧ0>G|/L=P$l4]յ-ƫhzZD7Wd E-.mN'"}:*qG! I{cuwVClXߓђuUt+Dr w9nܻ o?)t彴=4'`&s~t4MG*n"M1ҸP'WjSy 7 O%Ǎ81t"?g$IOc#e1hT E*rk/e)_-ZxK8fg>ۂǼ6Uǘk=-'fGk{U"𝅇8=P{,Bjx|zUspqm|͒ ykI wXzt!j!q S9[k@5 v։~$yYo`}s\c>׀mҒ^_JtƓ=~"!5_"7 S|kp.Q){Rٽ'.IpWDrpa@y^AE4N 8H9{tG]8즗Ԁx,`4#2zk0.HJS̈m-~3'F? L7. bS9LP+^ڬ@_? u}R ԅ&3`t]DtkRONxhX}N' G"f9-o uF} Ogl_|L="(8KZ8p[2ۈ aA{hkq1Z0}2T&{&ϴ< 0X0=! 1C;MC 9W2ÈP5SdÉ;eO]2 T{+jʠ1% EIŐ-j8(I/T:k-bn\u>T~c<҉Rdіb8e{ܮS\-=tz"!SއcRz 0yGIE71A}VrV'!2E'0Q`mxP*%\; #7'SצpQ fJQ#a;lij|@ojb{'aF Z(!KpΫÕИ`DRMw3. y@ޏ 7|fDGTMc>˷/4$Mw!ZrLOQ$ ɖLvxF*fSiaTlaB\9> 9wJdc}NLw}l)oh?~Ǐ}酕4 /;X&XtvAhh%'@G P%nŝ7[2UWܡ50›Z@v"3D_b^J 'o?{5.}r*3nH woz d$| ?"QR0E{H%95!z$S8Gdt?m}/{ )ݳ, )F=bi be k+R؍ n`k|KDЀc 7>W~#㗁 1]^<5U+ud-dG zmv V(5ciP׿N.(n7dԓW,@~ˍ XĈc 'GSR#Xu}1>)ޡ1B Js¼T!? G~\qe*b`/ Qϙ@dOζ!&0u0)Z~. ] ˺԰}{87V`2c'_}5JEjd1/=VL=_(- e(y莝]!tF (g ܜQɬJb!R<'ekrˮ! Y̯ĆoHo$|t_o=a#T 5TPC F;qS6&ˤƵ) {hn.8x3[2+~[#C11fzd=^e]o/m>GOV})zڟ9G[{dv 3RYB9e7)8[PSnl훬Ljqd]4 ;/ |keK/UCY=L%βM1cD8< Q6;JzXTA<띚-إ1Zje<{.~. u-}ŋ[4:V?SfBWAuGE5|gp1̜HZMwf2nt0xܖ-Ixš\b>9&Y;+i9>^d-JG0eT'{X΢~h1CY3.PXua=b@3aB'h{TޕlOc (`k Fޓ)kPcOD$k)UAz!pj‡ŕxa vt&vtI;[\{ð: u#aˮi14Ϣ\9e&ˤ\[.bS350zUA&Mxs@*WksF Ҵӹne3 $aMAjTSj܍ fLL6]l77%*oK}QUwOh;`OY,Zŗ^wTr@Z+dD# mF*ʨpE)I4_].O9e7y& ٩ݟL?&F|g\+A_!27|/%NDmB%mmk<đT%mɅd,׭ 4|ޞ|sG3gRkHEf@P9\OQZm}L)L1˩Xzp/tlTE55Xś&ewmi:@5Bߚq_G Sx#mT- WYOE3PQ9dU_Ńj$%-,/Xa{pJtNl.(7xIo s+VuG2Ioc s(0.r`p,dC=hVt G@wP9]F̷jqr LC+R'/zN%0qĪYGWL}bsFkutnjBo[7pB#?PhpA\g'BV\H;YsKo,{IM!RRܑ!fB8i0(L+YTbNU7!@ \b~w6 hAlZnFya|TۂkQ8Y^~ *nz;p{G&YjH+c"Y(c2\of㠦nF'cbc4NYɪ*0mUAi$zvEDc9Sj7;~#x9ވ i9o_=^e]B\1nƎz6)/$#K؂CZ\YGΩO>%ơ}#s \; `FXtXfXn6ܝ Fr~}J ?E'8 }-1+vuJ;^TvK^G\\ "/ĭFįT.jKP l8 )bw*Z `w_j}ʿF%*1…K7`Ho5.3 9KϐaN,"SГW%I`0N'ywuGBЩ͛Ox#{ Y.ֵ&,3B_Zt͢PܰѩKsF348#ؔ3{*7S9t-v3l>2o_&vpN9EIL5_e$xJ 5;^;#׵䮦1^_X,|mFo#k i?S.fA~WL%_%'m6_ӤUk`Xbݞp!~/eH|Mۨ:CT`xH `8 ])!fj5`p@B&bϠx _@„Mz~Mrٯ= f0޿Nt4xa tsv3~ x+{ՑH$Uw1p8;hej v{w OɊJ+-$ x57@]3㛌·?4dD_%ɻ>.M FS 1BMH٘ޑt̥twAtPFZ ^Umk;67B{k(#MtO}մ,Ի) ߄ SCE2ݞ!.' 2PH8f9cXmp{D/]e*&M:OҔ(:zabAKkd(_-H t켶N}Y.ұ,1LFOC 3'oz"_C0N_~R~;~ ;IE#S1HFU򣶰iԝ n+;`N6殈SWy1Hvt%` H}4 %*Kfm0&"1XD 4y+pYOb No7csoW mB φؚj83G,g 3\&So>j@. 5 S,{ʥ?Fqto>Mr-#Y'r訳T6263$+R'g SᄈR,9ynΉ,֤:L6/;dowuccOeu|Bta2^-剳 ֐I}d v\ǧvi7k)۪st Bwf֡Yh򖴞Tn_`HB0'!:H4 zeFt(0C Yو;r ONIXF7FFd%!*u#rd/!20YF -;chsqϵbm|FzSٗ}{:dV\4Y LhIQߎ%#[HG$wq{J,'\\ڦiJ$;23lߺ@]n%F>r#01Sbѻj̿}UafCs81f3`dOC*&/RכTv`"o _F4H:|$,gAimK(n>51wzTY*tW ܙs[z pe^ Y;kWF1^.9#įUnZ ZilZ~eTʆǩ>Bq20ZH+\Ak_a bDZӤǒ}=!Tn:׏H3-pb*6MܚȵiEqR[ އ%+f/?Н}kV+`{/aa"_ e3_Rǟa'դ/m dL [X0Ʊ(v~/pB+뵵H<ʇLjdw-(ˬ0oAQ qgۺRT[3[dveI4ޒ2L[~ɰy/Yg+ll&aU"9+oTЁ} \R8A]!^9z vw9Im @:s&WX[$Bld8z;oI,z Zƻ>D`S)p,1$ɕ3mѮ`iie{zs]Z( +tfuJqMd`&&WM0Î?#va‡ ϡ7M"|Y3KZh0 n2\f*B 0o;ev8#vtk J#OL8!x-AzkZapxb#,*ܯV#ooqRW-Hr L3f3 -TYf>z<:̷ILq9{ʇ:oupq1l *oѲl^[0" F7n-42qx8XuSGAsUx- /!&$/Bsi oLiI9`dR}+$V琉vĈ%3ѿsqj|Ҫ}bDԔp S_HLBf_#wUF 4 AKa@Gkm0BZTCx&Id̿[u,_29fV3C᡺7O{ڌЦx_-ðSx= b=tOE #F \PFC5AK~Ȍf ޢlR_2#8`ٜĎyvEl*R D>+w&<7MZ=~!QiNcG~p z5g[u#d8YPnz1Hx53Sy)?M:|LJy\P>يf IsHVjvEl*4WT7R҃ @NX iJ8E`n-x;cHh".Rii:ˠߢۓފO!j,HY=* yf2DDOڷц͋r"E'l i;ٽfXjđΜ ?"^lY 9gmyba؂-v "5H_̡t&*خ S^f&SM2?x .bgoTK߬F_ &_A2a iDY>qx8uϤ|ލeʬCzVޔ3-6ZB-ydq|Ի:"x^1BF9ׯNTq[A+,y$Sx3,ƤB,|m l}21]S&Fefz~团L}ڔ|53*^UO~nҮ %s?A7Lg# _1$7'|LFˠhjr]+%fyΗkZk[Z0V 6 "(w7-[7=P >/`>s;'u32[ 9^@@T ##VOa[]!{rz7p ;Za·Hli0uְ/ZMI}eMFPKO {SrB[N!d9 ;&z$* Z.PK5.imx0z4L_=[.IŠ{T].s&$Nt71GcU8=3VZf(W \Ç jNf 7{u[Ig*\x=u|s=L~iu,^@a0I)?G|5e,2 }mg]<Ѭ'jz4-PgkA6"s*Eo^pbQS|ʮ!1>j(Zf,hcsK2LB`}v]O.K+U6̇<51z"qёZjE:ǹOQ} ǡ=3{Jj Srz/&9/(m7 0 5 ֕eCgS>zpEPAR'U~!st2A^o#/$CFp)Цx4`*oŲ `8#9p|ٶR_!-TL/@-- 3.Ez#1/:+>aDU# LC 8w,Y)dgNg8E ցہ4QVL}(ZVUvgK8lסqI5g[0<͐]IS}N]턂Ѽ7xF٤,:chp=MpuR. -2&C{a1'WԞAlVyc^ipAZѕiW؜LFG;qY{ܳ'hVvhkuY~.r f6uYqȁ9(`|- 6n_WIMGahGQ}cNB=YOېt~+zu< BQQf~ڼd',h<+1'PGgۮCC<(ˢ!%ˡ ֜H3j3$ Q[]3 ?Me. GK'GO~8HJfrou{ Z[TTo9_iUu>_bUjr Q@X Ϛo!@x:Ӭs8.eƾaV辪hs!0ʸ#Mnk18W]o_yah)T7N]t%O;y1´\02"0 l{Y՛JK1聏}l*kk:%SrzO˲ɱ1^YF4f*`R o7m >Wopz曕==x]}oEFRl+m-[%R~0ۑr;y'5hųEώyr86m]@?]> |P4T@r:2KK#N2tVy) M0ޤ8h}]E|[XcTR2&̾a `g4mQ|] X- /xV2^|!Q[~-.}09ݱ_;H:k5-e |4RxxD8A&&vc64'1Y|1iBP l>ƒ@ `&_P=DMOtyőMrYZnw)K܇f1 ~VX-V\6J#~ص9p DWς^x0iЇGn7!_h&MCN }nkQ; fOdQF X5z zc-3RrU vm+Pfx6 Z %. @_YY\s*h{Dࡵn'8-#\4Y]('i\k J {ZSZ|dU<&!%H7ȳ=&R畕Y:R`qCʪr8:~Ls4CiQ#*tkکB/\pԀ7oF SԖMSݛooͽhI&bnh~۶|\Q@M6is#'̼U. C(17}A"˔*5Uvbp(\B^f 㚘ȭ5"cE'(ՃNZdA,שR Va;m~ &J#ѨR5B ~.Gu&&v\+l`(Ξp7/>1F)'hj>:u< |koցk>oaf1 jNSaX\BZ˝_פ٫13_M/bD|RKV]j/l+{G&LȡA& .ɕ rgaWϓ\Hw$!I=C>H-V:5zD+:Qe닄Ω!=>rL3fakcB]8čFח%ŤL_cZPO%6gry|PSO営㡭IFZ; @D"Zu{1+#bݨa^|1 ׄFL#'#2WOGz쫮f+~_ yM;Q2E33 unĖ8ZXHreFI PKeBT&lEP4g`+[{dJ24T ʽh{A@Ϥ] exP\uv( !#=Ƹ_~XޱA+MH^8"Ri*H75"S[N.u&}5S(+>aD;*"$&д ܣw׼ܲfXYbrnM%{Md]X}LB4g mo'Y+,ё^/_Sx֛KӢs* Q*ރT1.6xRs;Ks<aհ _IixYʐ{# [F ;!&Apz;jk+Ҥ= heq|D*]E]:,gWʼ@VZj#-B +Kb9׊1zT$)u;N5p\l[~JEMyԕِ=[DD6R#wMG єj&K8mS%w K,$E n+<ގޅ x3D6eϱAb?WK7Jx;cG6(vY?Td6$&2nߏ57m: hsC n U"aDjaBb*Y,u8\jGEgA&8:wlXK>br= ?] (qQ-%azd7m<7ZS&;Ǫ =ھB?=d5%ӶR+uHd !v@AP!}}MC&T>j/rʤO*lɃ>plŤ[Cp_+  WWeǓ"z Y vt]qhҦI^T5h՛2ry59RxXerB}Sũ ᡺7O{6.54fr;"qVkL`aq㆑]8wDeQ;3P*d@6V(Ǖ겫kg8eeDs8< R&~vou wW"0(̷93!-}wߒtvQ nsgz/v<;c~c6%\S%vIQ3n)1HH P"g W3clMU=RNs/]侵;{v48m*R~$$|d zosGȧ)r +Fϥt+H]rJ?H[-dy,)PX7|88-³vkϒ *Bl0~DlnElzQ+ %ZC.-px .DR TLG꛵!c DaIةԍNGӸrٴY_N*/ {4B/Y>@+ݜaprG<Q{W6'3`9u.u{Sѥ-ys`B@27 ~s%a<ݨU:wÂm?K'ϻ4J$vj3ẛ&[h ozȺpsF2Zeu 9;tKPiE ) =v[AR~I͚DӿFm1~0dpxf>?maYCKoCu{=-Ň(XMf(*g˯w~IQ^pm{d5=ǏR$MH K$LHFO"K:L7@8[~l0Zoq)0C`Pb^"xkD>޴QB0>P,U v _e_B.R+Q^bd6#kxg=h^xd{rjEX2 .[pb|ܞA~I׿')A GH1z-H5 (P%5nޗ$&~O  2ց`Ƽ/9̐V=4|Sڦ#!)T;;ncwOH&;D4NtxV4iٍ ׼HP*yl 8*2_%~qZ ; O/izBA]VrF -|Kkәk,~Oxi(i@I͌M^+;"%Jl[̈q{>;dwȚ|`:on$&4@j!0(-nb9|Jf4u \Ζe aɪi\O=`M wbr2H}D6P=b;?C޽ĻYv]BbvСE<'k0r {DQ>cǹK_$a}@)KV1uAFLKނu&J*۵"12Smƌ$dž]P-soZ;:椻 worԛu׫%ڗ>%-8'/H%cmks9/>S crS:yܼƓv wQ"a q I%@6@]W֎x.UXd̬:My}AF̴_o3(H!aV,q2gz-d^b\Ej&sdEo‰ll!#Czi&kIC5f$מ\;,klYwTIH p_stAdVWF 0=+ʅyTd+5uLIvi1fk6s !tj"$cynΉ,֤:L6/;dowuUdVzrK|1W;1-?E 1kd eQ~Y&<}9ƒ|0Y-,3Ր]nSww<䃣DN"SwǴ uk ̇ɉ._(ӆQj?8 9u o7QHYOt9&SޫFM=Rv KqfTC'J2L) !c*WDp&1_ǯ$0t b'V6B` M)7-#lgHX\^6O5P@I>%mcH:>.EVo1/SDlP 2! Gdޮ)k0ng(2zq# xl> Kή3/IpE T X?K}[wrvk2!qڎKZoEuŁ&{E<ü[PsX 3;Zj?m5x*Amޟ1 aKZO* 7n0 sr 3S-^ںCA#[+%TcQSm ,+h1+\Ϙ|\x>m8-„)cF;$!c=:3$I'?LXI4$idJmO *KK"gJ^%Y)xQ쬛:]/{g"k^x8hΎ,M>*6zcMrV?Y`ƽ DP0G݈'V+ՐU%Q0ipeb_ս)ڥ!s:,g5@ {Ǎ|>}h?q %>mд$kKm4{1@#q3—8a7Ǖ겫kgMH1^!OIEoNIrү+۷cqWyLۑM7 vww> V(>3yc1B>Y^bE.+/p;mFO S{/"\ ydݠ :N96QݍL7jWOt{vXMЎ)q;ot#& \`Ҳf)_@3*^?ޝO66ՔCf[CZob_-4gY}2QVLK8lסpu'(@af%b@Y'%;# n L)i=5} di'2{8@q$]ƴHl:iDC?ܔ$8bǘ2!MmOEw5Yc;vJ΀?BPz(<JƊ{yTP,>قxd8zWѦo;/ǰúD֔:$I%iQ 7Ap*!~c̀&?v":T)Y< :9z8*BCK?!0E|||}coHoK2W[$O!VYáPI%"ڒ+s{, @0x|hB;6 MVjM$(C7=[@n'%3̿ԻG|oýSȮuuބ8MD\@|UD%w$oRL *m16J [C4kBC^GtA`㪏IKãћtz* -vMZHiӿnMq[i#zZ?QvoAԕ hq{[O"'va1195'Vƈ áQBnNXFX6^yXBF,Gg0ջ8y`|[׺k.ް_!òLB0:2xEQ4:#AjY|6d>BW8ǿ59癃xy!`8&;[癭޽lnsJ!Kz򥓹5XS Y2xRO1["5GOM9²tXe7D6ؐQ*`BLy(כ@n ~9&G~oq[qLtDf$d2ط& `;EA}GGqNp"; ޺jE9`D?̊/{!Wn.z5[k_[Lk7nK9cN(jꅍYnSc?i FU݊j_I %5#)49J'̲x0Mߘ4KihOkG1m`p%ڌ]Y&. ˄bp!AnG~y;ha7RC*@j%>NA@I봶귪QkT`杪,Ăi~RYLn$M<Ď`[D-пR!*uvho9K'3=YdIK(.Ǿھ,qt7Ĉ+d_^K!Uyʮe4a7Ccp`hrq$R-r6S8~3N U:: hg՟ֶ'4RuHAj.RN`xۃvϨ93,߰ b̡ @Em֦,Z:ʙ!Wds7_MSfW[0"I |ͦ) Gc f6urmuծ4iSXl Yvg/Wt_ xƁ%KØ-`j2mXgJn3͚#Ia=7r٩+! "+tcqm7r_'S  l4H{@dwɜTYيf$( pP|fbHm+f8s8u!ʆwB>gw_Һ .={ܳU=3|=v)[‹1̓aӻD-JaASaG~JcjlԖJYv|.=KɷYg: B1k|4`eXWdz!ùFm^ 2ODmVn|J|s(ɬEb$5k㔳߲f2xgB◚ƌ5xGGϸ/ޝO6M3=S/{e/6έ뼼njڈW-B8 P=ly^Ȍk}N$5[rAucXvES/}K#/#8Jz|#V񄅧X ZF#o{A?GDCA)kt=<=T/Sz_Sv<Ht~+zu<7,LYN7ڰ+]qX"JRCh%)Ѫ$ V(>3yc1BǕ겫kgc^u4D\ ^_!U!FaxP F !e&vs~I| עE@QNRz&1rhN w!?9NqM @'>ת[7 !\5Yߏ חTNey*?7I/٨=GeG5Az n9|[ |cXQg"Gw3Hx1F.St<1`ǎ1I^;?pʃr`e{)v)IJ !Gٺʉ!-)$ɢʚ$OH{ptˌY)K*h Ӣ lq T'08e~_g: J-l3q\OW|ښ%)sͼޔq.)lk FR S/k,Gm){mU)IMA|MW^/1m4 (6J wC OрJx>!<%r<&$|ݍa-G>D`S)p,1$n[S྅D Ϟ}B-zAuot`3$T6ekdQF X5z zc-3RrU:f7ȱ,X/h8t[p?Ԡ; H∱4qsr3Y!~_7L|5)7oF SdkеBݟIt%&˟Yo H51F"gnk(1ln#mz\cohM$` a.Jd5snsT\[MO&[G<43bKb&hy>0ѽUE<9`  _[X!E*oj@_ӧeo;lmlRsRj׺p|vv֚')|} _ғ;}JR7(%,F#O!VT͓"F &x<{яEW@c%]Lnw<7*|y|Ce'Ai| / %֐ɳܜޥK5C?#"̥萨Q? B{F Βc{9DHJS+( 3^ z Ng=aHX` L횽jmf_X%.52VŦ)& v|ޛQ&OyPa2*< +ܒTb/&(cƷdqٙH4jjI[G2;4qCdBE5JȰgN}%eHRBhUZ1{Q?HcK! h/凌7CXЌ6w(:%o_uyLz%!MRuʂ?I7&3%7Mkω62K#H4114'<4744%)#Ⱥd}]v1^ǭ8+b&ʰi uW¹m #ƎH\u۩ތ)N]~Fn5 Hy dAU|w'Y!-"|z<_wn6D] QKfͶyvd}ukTeZ2I6k4/*Qu%c)aƀ+@¡'/:ѻVb>ܿ571fVKvbRU*e+jK]IVE VKfڤ~iY> 6&6f#0yD(Jti>[2ưt7ORIb.h3Q&!*eDe\.fE λSO29_[ ?=" OYe5ø[E"9pa`ȁCwjnרF>)[aw)Ԓ<׊_:Hm6`--;&7,0{\1fDO^Gܞ61.Ҡ>,oɯ&;挧$sSw]|@G$Y75cH8~,L<1/,붙G[A2[#l[\\pF2o$,!5o@/33*v#"'w E*΀U-0K ocMe|<|}>_@L7gC3zj@}4]Ԡ!FF,&sAƮ?apc*pG`k0V[g䷱)&[fț8mWG_Ȟ&?E]VwG, PABm um ;l29Ht_snO]Xy($Ķ!jSX3?xJɭlS~jU`v' =-u.IMp#.%xe]i]r ;n-Xz7rغP9c皗4G |M xE9Ln_G!&ztь8t :Ğ?$ F?b9=)>O2]g* I0}nBRCEis3M%H}Weg,w VC^H'}4䓄? hn}~,˦p,VT+[~XEú ܙZrA4yhު𢇞0 酉9JKXh3YE巙৩n`| 2_F]ÔRJgO8uz{LRfa^)~=m-Fvvv8 RAy,:dh0n=x/Cg_y``KCi(bQĚ˟G -vM~&ԫFٻ{L]QF)4")\Gu,lǼo,<,,P. 5S9P)/iJXm$'VƃITa\cwFo?vN&/r/"8LUYJ[ q CWoqBNu8]mꚑ:6OLsA$]Lr8t jZ^O8y<̄^@b/-R_-T)S2;MX5 T8nv I'=> *}抴6 +':yCO ThF;dϸT o>g]-B&lEVRó{ל'O#SUʤns_XTcLFOpJMGfRZ.qd@|*hkhTt.IiNcew #fZbvFf6S;Zu(O>Ѱ{hR#!/n}! &CK yZmo*R]L<kQ;ߤ'xI;IZt~*YX # ܑؗ,es Oؔ1_':a#nÿii'i@(x3e.;X)8 ? y=B䡛VU vIv&|_qSi{h5E9p?>V&;訨TN2_tw_^_.knSo1eVC$.s{Ks-N\g[^t9?Ԙq[V-0~d3$)L^pnP2ޙ7_͸[dJDl)GsUe[B#ݸڄt'X[5U+P%=:=.| 層ƿ0ygeJl_svM |@\JhLR"w'$mm*g|^a'{\;'zJvvRH3 H)bVBQ0s)}{\A$7jSc!PdN F40w,Y&>z!"@WB]ڶƮ$"WV"q4F@OQ]rSc"r{I _XԎ'Hd(|V&:Ew5KwԿCw;ވ &/jsvdqX[,PaNP 㟧4ۼiIf#Y=y.uwT7U !M5lܵd4V ɲcg#+"i˴q{ػN9+|*؈z:|H=7~ $ -YAײ -݅ȑ3,|Dj 9/=0*NpLwmgVMXq&Q38peOtikDzX!{U"OE NqFDVu=Tɪ{u:DM|џ;vϋ" 84Rdw e#pV'[Y{8[l]cRY i:_׏LYn}O&Wŏ0dB]p P1頸8+F%3+naOQd-⹳KEʧYq +#3uЪށD4!7ڪ_1=g5>&0,5`tM@:͞QńR>57@az탟7ܰp5d').dgKED5:Gb'6fqAcg 3#N|(ɔ(?`ٹ2wL=S yki؂?$< 5Dz{>'F^RH`^J;P,qp0$<}٧C0l~RH9Cz`临 v`=J $FO>_O#vޜt5 (+CE^[ʃ QXvX>-P%%MCԮ fU1k OL&'XO+%e2`/ˢJn@"l#L=]$L#G|&RWxx|$uؒ@?V+)L/$V>dFdFd;@0Ìtq]*O kG?,/ߪp\j=ىvM{*\PO5P@I>%mcH:>.EV|b}Uj)U캶|;߷<39J(9V?ѝ\2MaMnw*Rndė\ R U@5Jn/#Ob\\qS+AW)^ ֎Mnrm;@]ԙ_gI6o=I`$ѫ"OF{x^`"\_.Eܪ'T.Or\P=ʠ9r{@r*U˓ܪ'T.;` jfMy!7)vOíj40蹨/иUq$N/Sz;Aq gLeB-[w[KU)ݦhlfPhhVA9n}%Ds'l jPBaxM`ao7w\wd5*XJlY7j6,cfBYA^DM[C>cxaY::wڃViKC^9*7&ʾ"/Ϯ?z(̢rFِˏsߐqH~0VmڜP.{U9c ݸhWz;1I><:;3;*d{*b+X;Ͳ2-$f֩v$dqa9g&$C`,GeiIJpUhWsTVxbl99j^ߟdEUx@\d?оWG4ZSfGh#Je*JMDtbwZ{Srߚui7H+ Ke5|dw젝xDa$HR:BLXNDŽ壟|{W;Dl['b&! Kw7lHݦm )HYY-vl\[^zk{+rտ[Dv*5(/?Q6bLv{B֥Pջ,SmǪlF_FHOVH~F+&Wd];p}kX1 Gʠ.4nXj$bX.99 F"^sR<"VDլ`!mqCM:#|Mq,ræ:N XMuq(x\*P%WK>YhwN|!: "N ;)Q\;%YY.`u/-gr$ @NSZ|dU<+T'}](Xf}}{,jSDŽ#dh*(GfR4l2YnAľM]mD=}&$# |Əz6="fYKa7q'=@$-ؓ6R7 H"eD|oh@%I=<"Vwi g', ֚GjR<)Za'CǚY:rk,2[H}ިp Pn Y5>},{|FRR.!Ǯe0">bB-ÅD]b/|n %2~tgdU>=čgjwESCݚ{ |8g͜]-G!f^[Kpdy0 g=+s C|3#1TL=B U辳@9cN(jꅍYh>0'$~AUFtƴ OH Z?Bc%YyT_IN}k~'>&VKo2d7L)sud!E[D9 ӽ21%Z(`!bv<^o,ば|-eU.@]`nj;\:a5ʾ)>NA@I봶귪QkT`杪,Ăi~RYoľ=BX b2Q }x|3y-d;@0Ìtq]*\ kG?,/ߪp\j=ىvM{*\PO5P@I>%mcH:>.EVu$Zw@nLG/aIk@ pb݈_/wC)lP wy2CSfj,&B* #"ʻ6һ?V9z.f"7䱅_XG\XgS;Z 19([v{՘b$g OW׻{!Ɂ|jMopP282Y`u;k4D`R޻yĩ⻇K7g~! e| %R-fe a㕎J0zm '=8{A\ȥ!J zJl_zn~3.enZ >=DoIw5gW@^s5ѐS‡<*x~ XA<(´BW[-?Jv"Pǔ+TW!@!5#~'U2+%[j kiN_}^5VvuY8E֪q7åc{$AJ zAAlnjl&X\F,CZ3$ PIUhtD&?E)0;{iW.9)FL3n?#I:Ԅ./c&F9ht^!6j_;95Ri1@1@r,)ɇF ?kpn9LCcC=6,tEze?5O "XgZ /ӱ9OE@ѮZ> o&@E5V$s /)b|>qeW=U`$vlZ_Z# yΖ@bM_gt:Y_FF@O+1ǃK9LoNq@I}>>/+Gh 9+nkRjc7:54i8kZ|ƚƞ܀@P< =& Ew#|Mq,ræ:N XMuq(x\*P%Y:`[2lkv0x79҈LD^Ta-.B1Ѱsyx4,<˟qa{mhԺEfs| ;&kIi߷j&ƸxڭŽ -}ۻKcРJ4L齭0HØI+^D zaШ7yv',#,D/<̬}M!#e#hݜ<]>h^ KoX/aU&![LZV"ܨ`dܠ5C rڎ`E2Rl?ŹK'ح?TKvξXQw@Dw|͔QI= lH=%?v!DSn0h>hCOW>K?.|K[s|Px@>IyW^bazHe)x!^Bd`ͺiX{];bh #Kz򥓹5XS Y2xRO1["5GOM9²tXe7D6ؐQ*`BLy(כ@n ~9&G~oq[qLtDf$d2ط& `;EA}GGqNp"; ޺jE9`D?̊/{!Wn.z5[k_[Lk7nK9cN(jꅍYnSc?i FU݊j_I %5#)49J'̲x0Mߘ4KihOkG1m`p%ڊD.s'D(˾.egXFoF uMv^>YRC*@j%>NA@I봶귪QkT`杪,Ăi~RYLn$M<Ď`[D-пR!*u7)G)ĉ;(P= 2o0GF^{M0%rk&n+-׹Fb}ry;1 #jMX\\G3z.K\x4-VN Y߄!eX]k(DbLjvȮ2}F2kȗ$TZ&z3x-#X I~!"LLd%ZzR&~dB̍Sߔ^[vo4C:Ʝ*43T pߌ1LytxzB;Ք._ t]"W -NО^O!s(X 5qOR=bT<)BXy5dLOa!9˘͡:BǶ < `@*tTŚɰ=Yh-K>ԟ3X ~#$%z).ym@:y<ޅ]s( LC=-{-HzXٛdVhGHK0ݰR_GV %7#F)D _bO@muw[> תCG-# F\9VP@2S9R`3>\v8AdyV⠬~V`p4S1gX,پmtvb_1\p$d&>[+"ͧ /hec[gτ9"ܘ%٘+:c;Zz }^79LE8uy|ȪktK?ٍ+ o"X>r7 qkݬ2^nT4+ Ywpm =Ʌz"5Ǣ93fܦf֩v$dqaNf_ T1\0ȻM~*?A<kE>JgQ:vT!iQ:Nw=8e|ͅ~:p/'܁6UcGu{̆>f]4d hz%J%oQeFo1јѦx Gvg\$j@GtơA`BV->:{0t)#Xd;r \LcGxJ@ѭcJ7sg] '#?ּ"̒MZ4KKAY^np(1B3< 7qk)]30qC Wiq ad RHU?k[ܩ&x(E5gω{1t^LrQȢpw}I ֫7t7%`E &ht?\&_ﷰ5d I8Q[j/Bq'p4V;*l2MQt[nɬk8(j®,SEMϐ]w@Nb@K,ygV^dNŎ)V~ f% s@=Em-"8}2)t"emaBW!One ,eqwvT/w%KDXPsÉ+o " 5&s̄^ACWRNR=y!FmB!"%dX3h']J2L) !c*A-QhE8j3`Cz1^|Xp} {IjDOPbefI @"}}x|3yaG608g2+E{EΏˑ}p:} WPr:Pq@sN&s!Tw EtPNYjnM,ChH4vzGO㮘NcHrZ7wMBF:"jkYJtHW0{"u.Aǡvcd>}Q3#6 ; > -)4{ dfOVPc;PD}8<+f91[~YXj32 S$Tj\)Ei11+oEav>Ts2#î_g]4 q}D 2={B~<;,}o%Iٶ+~棔@͗3K=Np0*W ,T 忛PEn!"Zc!&k pLc^ ̖P^}aXO$2j5#'z>HIEuc}XZSZVQ3+ŝ1 #84"6eS[ eA\j+uw9Re ˰̜H@?$2pzfڊBؠK-d{ڰaH4@>)ؘ7O$K_!>g_52>5x;yA>m? yeyP,2\"=0!t1qP2ԣN"+W Sv4PxӖ7AvqoSP>&ZfYE35>q]c V?PX5"t,`(Uf9~T6b_`߅Pemقn J.Q‰BBBeJiޘG Fs'ds.4yΒJHE_|t<'(èU ^ʸkA13-z$ ߶n$vmG2~l!\F*Wpa)JQ s-,ln-%`[UF{.U?2HC¡'5ʣgV*fz;(}0#"K8e6{)Fl#YNb>Z@PmV!ۉɣXihl!<䉥hEX5#ϴf=]-Ѕf.b>jGA'n&2-Zb~"c#&.z(sF%̷)u&uYf$|FX͋Қ,T1'1jK]c7z)Ԫ9?4 fGX$"9([uF Vh1隖 OW쐄mXt, kB)ә5'dB?9*4EhtsGI5 % EBt?jJ *=M xE'CG\5W]z,wxǶt*_lQ<% 窒4/3Qi!0w7Ӧ+NG0wvW)''VTK&I9F!Ԧl(ꏑVC^H'}4䓆 볽\Ζe a@. 2]lHA?;M-tRHX'bFS8ݹU&*Q20M &aToQx>i.N8HVAyW7|\ȆňTKvx"]v^RnL}X X&,a^76Al.6w^X8&vZJa1&KCv}Fy4&I5*DQno9WicttbJnWEޥK۵ Q#-]ZaXXUł}(9ɺ8f`fLX81hS?( 3^ {j2(6Gz#E|ϭq ^2;j8nZE_#遯G [l +=B@E9Ėp1];_/ EQDqJRپ X@{\E"K O+6 M$.ʇtz!.*n+>dٰ.ƙ(Z{МNٮmb =cT9vҍ0BO$6-y5 XQ A%eKbATAAlQK`cmqx0?hʎqT;cgroS:7qRdYPGi@i”W|َT,얙\v֍bSQAPJ9N(Ak Ag>YF"d swg<*qto1fhWM]B#~!{\95º _yz]7#,jț< gZV'PŃK1}N'Ω{A&~Zr Ϫ47@disM$75pM]@"Ģy>-Tx=ZyS&">$4آ||KGHg#Cvoc`YGY@ W>y)(:+}rEWb2abf nz= &BPh/!fgJ<O\x:ē u" #Rsq쀬A-˂3Ć[zc*d|&2q}2ԗwAێ8Mޓ>c*,4Wa{E?x. U*Sp@d$~B ZzDg;w6M;4zvt2M0&zPU`e zP Τ.XuYJE~lŹBqT'm3 Ek%LIKy1!dGXPhLc{brB[N7,uY9BȚ3D=M(iDa %NSZ|ctsGI5 % EBt?jJӔq/-}6b3#F<"وi,*(';~Bf?C#G!A9Miy3<_yTl%Pta π  A:jbE2(]]ӂԄUiİzW.i3M:P|~H^tdsB%;e"zq%Ht۫vp@v.#\s |P+IIRk%Jꇆ[Y{8[l]cRY i:_׏LYn}O&Wŏ0dB]p P1頸8+F%3+naOfh]]Gz\)vχA82p3>ۍlMu_'}pvouR$SmZYƒk:ƵDdbhvܰ@ :yn \oPⅴ -b)M|i|gʹc,E䂮q鉶Efe։Ƴՙ؃[G8K0K xIdmY*#fp4{&.0eїo'4]C 2$(6)")!Wf 8K8wik :7(w^_L\0a}iA?(ٝBD`r9N?Zӎ$h|HÀxyPa2+񤷄z_Lӊ4spIYDYַ~/ "A㺼y_u6rLr8sBLA-˂3ŒEyUC_ *}/&FNGcxdjW]W8A",(#w΢e)X9~iggAZ݉,p4bBEcOiDfC 8nGG%ҨNa$q1l *oѲlEơݘo q7EkoTZUɚ4Vܶ4i_~l\wgY"rt(`T#Kj2UgoW XCd)~mb>]ʥᔛ"3f;/q%BeP4 `R ,SXɎ3l SC` <ʑZN:ݻ{@ƾaڪ%iۙ?0ö3-GwCAk_?TJX% L~'2s45J3aY trS`S5Q+(k'8%K' ְwt~DzF~<3qV1_h~y4?;pL`,3/9b3trǡPl,Y+ 󼭵ZAȧbg)CIz4- /3j5I_Z%̵?a4q;`^]BbvСE<^VhiÚ]Y )31gWce2FľiCwX$o]Im i GRo}\,c(>) h͒Lxl٥ IUdVzrK|1W;1-?E 1kd eQ~Y&<}9ƒ|0Y-,3Ր]nSww<䃣DN"SwǴ uk ̇ɉۨzD0QصFyVړiwѹ1pp_K*Ot9&SޫFM=Rv KqfTC'J2L) !c*WDp&1_ǯ$0t}s)L[ʛl(~qo`f%u6Ms@>֨B2f&-"Z|ߩ[<ǨMmC(Ȅ2Z[Qr;z-dTPKP%%{ҲE݃g] 5>jI>u#2 _XG\XgS;Z 19Db<떀 H |DLp^QAװ$3c+$DId%Y.rsK\,9dܒ-%,9d%Y.rsK\,9d%Y$Hq ilʄ@ΓjO=Bj|tI9~8,rlppppiƘElŸI;L:.LFgbottom-0.9.6/docs/content/assets/screenshots/process/000077500000000000000000000000001447252316700227675ustar00rootroot00000000000000bottom-0.9.6/docs/content/assets/screenshots/process/process_default.webp000066400000000000000000001117621447252316700270400ustar00rootroot00000000000000RIFFWEBPVP8X ,ICCPlcms0mntrRGB XYZ (acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBVP8L8f/GU6U/"&#WP%*Ds̫` `'PL*fMr:A+79Silftoա~QJ#OvI8.#f]}99yy `";53Strh"U 13ͽU=U7R=wb\<%L30clGb͘qn'S)TəǙ@0,`1f Tef;RoB.f&Cİf;fL]Xa! .ـ\G TMضM_7cG(a`ۨ$I$IU73_F~O affffffffffff~DyںiqW(V0X+f!i"'Kב-EKv2ѧx;bZ+J*6:Cڹr x.wKQE/DZ$e#Yq,g{ґ,3uߝ# QUj:FLm5*Bhy2sm%7YKyI^MN!Sn}-U2DZ̉mD qRZ:]Ղ-+K[feĻBeJFJIXeD,ErVA$ٴug۶mga`x[6Odm@A{6)YGwW_uY&Nbȼ(o)- A!*cKbHJ-VHUQD(-4(E *@ "Gƙd/At> i֠TGZ`)Z/O%`ibd-uDAd+UvRCc|DOrVT P'ѼA F 2q}epWjPŀa!@$җh^PD`;}+PrpfH (T;1ݟ@D;U@.R90@xډvV(@KID&-@)%Z"O`Z` T0_ Un\FbE$Ij^)K"c!}*Pr%X1&BIM:d,$Jjܢvqs`F T wph&BI7ich̶`Q9lVoLjbܱB-1Zc:3IN/U<({G: ]1~?1'ҋ !@6RݺˍtU.{3UGڭm+9-gf _ׁXspt%^WA${ezX?o_?/w#}>![koOsYn4P("i=: y^-Pcn/ʵ<۝4@+K@dfms>TsYFbv6<|/1|޻}U>)?B*S>{GR}͎ޚ? yE|~?y,X#E*yN2)RA4[y|4t?"svP3۞|ϑzu_#ߖ5GK\Kkȟ诤a꣉%m\|n }TqǼux! tsDJ'UHe0n Ն4{ĹMu]^XKgr|]h"txOV2-Tq ƕnV׷ruKgĿ e[wNb뇕 oprxR{5< {*$0[~.(T|_^w}N(Uޛڡvث\?kv_u-(vOm|L9D|^_ ^Qswn|h'T9uflaJ0^w~cm<]^'jv[2X6P>Kqy!ʚ{[sң?.{偂ݪ!5?_,OƴKY5>zer~*V5缃, ')/ȑީ,ܞi9ڶLObۧپ]"cd vv]7dgg1u8i@Sih3t h;oNQrz4Z`p)a"PǑ}hrE']YWgwr۪N.ϋh(<Ʒnx//ۇ@ޗC5}m[Td{:s@dyW9GYxDGC՞yD%s~wUJխC)%jfcx(^_({;~k6Zy}K0$;aDNؓˍNA[ήʠ, ')/p(Te[wx;| kf{YM)vPWAG0vdyCKK Iin/Rn%BteAʥ3 jzyHCm9m>كa凐`H&$wDDNuOA[n e0 ċ?Ißw;#9= l@G9[f[/H?oޖWu$^e˂a%S^lY-y]'pI~{\ְoQG}D;!¯h^ 0Dq_mׁG!|%;[@m<]9}h [)@Hi97Z }]4YNkf@c\!];ur=qIEz '$')9;w<'/uW5Ph%4^t{&p?/)krzw !+yj,ל n`1ֲXo} 7*B'ᡁR1C~`5f cf ۱W3`H&;a$d=5'SpBr |GNe@v/g{u_:Gu[_6Kgx^ݞx qKνx(fȹG^B#0Di{.~)|HoeOz=|%R scp%Z J) ~_ z0;vu3(5Ҋf$Cr%;aDNx2ڛ4sA8.)S,|NAORБS9ǝo{8^^w9E8!_7s~֌k5v_L`MȇeW|9#jFDےs~' !o|<ۈsm._Y\@yvCZG'VE~AaR)e/5 mhnv]9=346#ާC~&w.FUsG)eq5gĸ@B<0v9W8rw*?w.>b;Up94І(C 0TJ{[}F'9\`x5HC;<!ѯ|nRiלK[dA$Оd24DaJl*{W_uW_nǍtuP/!;TmX,S'|QcQif[4\wm4T>Ưmn(IB% uX=h=$2}Ձ*eq8o8, !pcBʝF1bPo W:R<r¾Rصiw`e!;uqoyٻXG BS1j茡ŻK*dDk%c[NC{'.5| j06o;~|U8au@yM$Tjitټ4Zy8"W6也]W`Q>&\B5t[7%Kt?R<rgd|V||Hw+p"~.sJ=CF~zk=|ܑƋϪ582E: ^&PfUky)xZ8+T-eރNJz822!P䜏,FT )C YzSvSut9i{u]:H d "A@Q{Џ6.{se8}&0fir$Jɔճ:ݷy\.i9>x:ǫ=¾)54Fc)d& mv⛆g)*ΊU= Ivm0 (Pe R5-soWJp 9я"rl_L'/']o &:kkv~da2m[Wfqs."R~߻-1P^qF\.QI?vRr@\j=+^q`l|X\Xy(p%dD"ڙusePEڛ])s΋8烚_Kh%ihwfn7ޥ'_&?#C<Ä{-aoycV2~ ⩹1DX3>CH`VSh7N(10#XezT”~Gg>Ч?Ƙ[!M?ҥ/5=)9/e<+V9fxkt~NV0dݶo1 y |yΈsvq!c`]pޘ\M>w)JdO@{$XD bip.92DukWE ŇXv+utRӢs=>˽%iVkN?2g\FJb'x 5s͏s2`G٘vZ™G~7}oscf8|ȇp/9μ%CrR~7}{@!T"dx n֐`)rk9N8wtoCnEIjAؾ%\˧xUw LߖbRz*TD(ICyu@f x5+kcoFcB_#?3 y yјbG㜧ky"/\B< y]p)I8k2؜) Ixnj[PI/;[{?b)7)^#ŨB+CzA;+{͏c s/jm['(vjgDX)ۉ7`TK}8זwF=wCfHԔEM?=l+ʳ: P8AsrՖ3Ĵ&b,cMHD#?@fR\znlO<@Kr1$} iT )C7%ƐTm2Dл&yjPE2/3"ϪNKDn/+d@XB0݌3Qf|j|VǻALf*%uidS\ q~Sg"6Ð~PlA_~}BZp1jPE2.3ЎtgΠ+0͐Rylq 3@| <] $3fxt>x (a+BD;f` 1ZyRQP%< Z[0k@D:V'/!FA *HF%Z~N^uO}xv{ \Y G0FDNSdڻ:Rȧp_Ed6Wi$96K Yr ]0TR)*%'ʵYc.fU.ԈԚ%aAL-a2L PjT݁ 7ξtBtֆyE!Sut־!Kl#)vc1@@ K&K~⧜ew 2TMi&睲2ΆjX ^Y<ҋW L 8::BR!daq^&?D0bQ 1 90UF\~Ȉy~?>7IԘT2'FYE΃'XcR\OB!!cض92QL0 fEϦQwn}9Ae^Ĩ$ir@D#R Sc0>AV|)#}AVpQH))9a? 1ϯ"A(sw~xc%2㧆J rV#b{w$&ҩL-a)C@ vta(5qH(O^7 K8*InWC8R?S5)9,$y~G ܦ 41bQc4LDg(,gXk#R-cP:"a'FԀ!/TR@6IpIRjM< ?uٺ" G%)AO89 Y¥;m$ϴ LS, I WzG GF*aB睒$3Zff((X<Ȋi3sXO ouS*OX!19Q&5U!(*"J"D+O\X^ݩ81*ID'ۛ<*u&_ Ml$]rBY.y7#iOLg„߈QSEi(.bDY+ x0 4JϾ6`V\ js nB0MXLq+E!pV3c9QI8%B,rug č8VY2u#)~.;F !Cp[p X6O;12 !;'6O` !C}C7D՛|`29ɵ"9ܑiL~ "oZoƷs9Tu(٫+j3K΢U񮤅%Sٶ_;+#eقp֙g1J }J%MdnpeVffpg ` ґEGD~o&"*DkEr0}K96`㑒dG=KLmw=::| ;,WǻL(xg~;kpX}+w$弒yI\Y0Ya٬iHy%F12 $Z ;+T\9Jm蜗D@"DEJ#=6@\p"J S6FPUu(mT6 ,4:wH=ޕdAR.P)I*ak{0XlHy%dnpeVffpgF(Y+yۛ<0CI Q)%z@~¢bq>D$R8M۫ T,a JMkk]YD>ޕ70K,uWIu8Zvɸ$s JΫ,\Y0YØI{!+`.=T$-@KF" K"9FKUmsX"k6, ȝEbeӺ 1ٸ>wQD+ÂCVA+@v:l@ }JX27{effpgwh7,XM F#b 끘--T&׊pG07㢾~pK̺܂BHI&t bxQ?ϝ%,W*ޕAa^\rg&_vT嬣qcrH胤WIʬr`xD"qw%md`T&cm`t:ВM9 t ʟI+ʐ`0dݮ_ KU:7 Spa(WIʬrE `C} %/;=ŘAhrCrթ6%C-B"iEȲE+;!@F\rge` ^QY:nI9d YeZ'HB,R9Xi# 0R{!Ҽq1QL6wI1 D&׊pGMLYNLBj~*ȡBB5tdwst*̝EQٴl\y%ϝE]aC %w|;-lFv8L $ &s(伒{I\Y,Ye|I/qKE ӂKlA =B[_9r(fu9MŽ& :ÕDJ2m&fрuA8މA6*֏,}-|peVffpg"z g%`!6n5 ǭ?wڠƻZH< zFD2 ECqE`X-b Dka_ng3/4a, آlϼ168^;99t4,x <"w4],*R&f:.$g".TYWU}R;6wrUe;K yXY J4wU/lQ6rJđԀT !3YLQgQYsg!WU}RBpY5eVƝePSf5Y> : wV_mY#Aw4eBHDrwB) ѪQY,E M;}!Q$Lf^˚;+ Q")-,t9 ŝ] Ըا) F2DaBi銔XOIYqg\HlV d.ibY($I($RfQDbJ~BH;+r$B3Z5;+WaHE"bQщ̝(wf/V,Ő Mw,d"IDD,mDJBH;\D@qFFqgtE4A߱OSun*)Po˚;+ Q")/,r]! ŝ] 4}:G9$Ibz}eYsg>!J$ŝe]K"8UY"AXC8a$J,kEƝ58y'QY""i2;Vpqg%NX&\Eqg%;VI1Uy'\pYkV( WQYI))cz丳RHy'PY r;VpV);MJw,="U5N X_U( WQY E!wV}Ǫy'dίY~6gnϏ;ʏJ;,kU"V::*'߱ceMF ?+u{]qgAQ)u@A%b w,88w;!-+nc;WzjaYZY߱cʜwu|kw5ZwX`E2a(vDֲκPw1Dke;a 8e)}JzѯwP~TPUS`D2e(vDR΂|ʏ!Z+s ;Xo;˖RwXPnXɤB""'Jw,:8mݹgu9*DP@?Kl&sò@Q$SXrgNt,Y,[ZTw1Dk];a_<ֿDc+,*?*P4tIirgٚ"߱c֪w4ENY@Uzmo5bWYT~TJaY( + TE@NXC޿7:>X.?eGYT~TRaPɄ%AUPfZ; N+;hy'LSÜd',Vc=97 wTwXdT"ք%Aٮ7 YZQE'C6y'<[߼o >wֆ_y;KJ9tdRcEYz ObآNX[p>F+ҫXpw,:w,@b;am9&;V\߱(͐X*9߱Hl!iI ([w:KcQ!߱ Utc]sW%і+v Xns߱,Z5P|Dz'TeB T؉oq-YnK߱H,wV]+eO"E坰qgȺOrE8v;VH6Ϊciw,:w,Bby'LTa'nwH?+kX;P;!E坰qgY˭v;VT߱PNrآNXǸؖ+[#Xn{߱,JGin|Ǣ|DzHlqy'cYl˕v,ڹXqu^#|Ǣ43c Urc$ʗwBweV;7;V_mkLM;ڍ%Y,wj _ʐXKWM; R,J;_"ZY%[q}ʉR;!؍X*w6%̝߱l]+5)wZ19wٍ%X(w2,xYĶT1!K2;pghYd7`IVY XeQYNx!Rb[Y٘%[}JMk,+lIVYx]XeQY!dZےDŽXX X;ΐ;+V'$KR:~m>UF,2Cc[Y%ZūPEh:Y'zqe&ʝ(Ibń,w*#n8hY'ԕ (wȮ2(,BfRƄ,w,^e{,K$+M,{ǰ("x! ĶX1!KWt{DZq0J;"K΂E02 )ZJl;+d;V;ϝW_x1(r舨|R+Mh~jM͝U; .iQ?(>jy',-S::y'%͝U\0$&;GeEɝŔ>"#sU6,ݩ[M^ >WRqpgU=;^Kã2bJb2Y&sky' qg NIb^Z\iargU=; .Q~Qrg10A \u ;+\m^1~ ~jT?cL.Lwv%1Q߱<<*/J߱';a\y ;+\H5q_l ~ЍϼfZY`uFPcIyxT_c(}'Sijy'YB%#mԴnA8O9ΪH}{@Pc)yx_c(}lOZ1NhJt?a·L~ ;",9BiQ~Irg(} ˄Q.c>T;,@i(V}M<`8w`p;Ge%ɝ@evwB;,iN_v/-|DI=s&wVE;XG`pILw,)K;)}L2֮NHu%UMXӗIM =jK;,apILw,)Y;kVԛ;+:W9YE⦯YuWu.DJww(ѺsWV"a;;VNlݹ++p]+}%VwJ$y'\}J_՝ l Wf߱Vu箬D:wuwZݹ++pU+JܕHXiN*UwJ$y'\}ʁҪ;wi%Vڼɾc@i՝ +m 7'cu}rqAS;,.3Z7J`%~EVRZ;ѺU}+C(ܰ6wҒpʝ _Ͻ+ܰ6wAxR }WVk.;rêY~@dԩ3W w}rêY(2]5;PV*7z͝0d;u;HV*7Z͝b(wFwVUnXu;kx1p;u;PV*7͝%$w;u;",EVRZ;ѺU}+C(ܰY=jI$eA$eܓN|{~07*c}k;eVew'?S.*d`m|ǒಆ`qOP.?7y'P{X&%eɝ}vzz?ļBo95HjW;X$߱T,ԩ3SzNKz*0!v,C*c}k;<=}ȼy7LH0G*c}k;Б t➎Kwn9^L6w, .uɯ*ߊXw~G}7P2㜠^igkWX \he1󒰞 `BsZy'H2wcϹK0o?Nݥ~{zvӯcqguWC"KU5e=W٫&th{ƝCJ2_32YXUSP\ҷ  7!YuHC,)(.<|Z &;+WcHT߼.Q6@0EN@BE'0Mづ|"3"I04h +,ee+sv(YTh^.2$Qp!nr@XUSP\ h1hD%@w /#RCְRvY&4[,;,(4/ iZsL6 % U5`BB4[W;0QpjxUDCְRvY yPм ʴ %#$O\USSVPoL;M[Y/CͿwYpCɋ ͋"!L=~LF^Ƀk)*TXY7 ( {@dB  rݡ+d K~~#Doj{"G.%͒DC^ʏ1iE\I (4/eE.<(lq'**, S$a !(uNY! ΒwY@fJAyHӖo~q@,[USP\ +IAHXJ]`DyCְΒwY@fJQyҴ/j_d Yuef9b=Z mtY=<ȏsgAݹFGG0qg9ThB?%aݹgIyZ wc=·*YIVb c Kh}uvoOƇ;{]OWXXR" !ZI?H~j=Y7IYXODHABr?'VÝ)Ks*Ab'_,?֭!#pgHIX5Q}vX~j5=YwD%Ymo%AK1tM~|jz iJKKZJ}9W~?<>Zmw{_HVb c)KP1ߟ;@N&rgYӌMqAGңw¨.&SurZoLrgEu1_WȝΊ2X#&ځ_`\#wֺwg;+`%eaSYTX;SX8F YQfwֺwg{'`%iaSYPX `g HCzVYŝ.qgAM%.BnB` ;űAb~=w_=Ò,hVqg}}eґ m Ip"c"ŲL_p{YeƝ*9R\JG*&$ Y)63hnz@Qfw֪wgIQ]+ =@D)ؙp&x\*3ոwVTJJ*)Ȣ"ŲY;ƨlYQfw֪w;+`%ma(Ȣ"ŲY;hDY1fwwϝIgwַWa5*{cWXXvf; q c]YX*3:oR "0w:ɓ6n ֊ǝRTYD2UF8.VbYZX;5;˺q*#'wֽ6v+ ,4Bch5Dus;g&V`W72qg']ۭ4chmkkkwLM;v2qgY,m`Ah5Dts;g"9qe0{Y4iV,a55d}M♩}gtdݸHxf; &v+ ,dXM!֠kM♩}gtt1^eR"ΐeb5}M♩}gtN$U\r`;KKح4E XMvE!iYvf*BiUZvf;KKح4D XM0F`ʂ4,{,EU;k:BOտIɝ5foZM0 '~wVϝpkrX&?DeZ#$wʍb72;ډʴFy'LG 4ap5;e: VY^@DP`\Fy'LGSY0TWQ -ӑ\RHPG4hNLGBsJ;#1"9;!0 +ip$ôcGy'#`%͝pv/kNhoBsJ;+;0T0z6Fy'0\2őx 62u; ;Zesg#j7YYbh:[_XnFF;<6?YVX _]4 +wr״|ǺBwрTe(Ll$B)݄,漓w7)YVZcAOqW JT@e@ t;X伓w7)YٻVZcAOqe,aL JnBp wT&;+{jE w@W^J,2  ">N7!AJ; M2akB_bvY^1e-,DE ymP2tCKw, ASf2Har wT;+jwmF2˔ FbN7!EA*; MakE;Qi&*# 睄&հMZx-0߱}w!Sr7 ν,;;qlݹYurgnԝ{k˝YPw-wfٺson7֝{s˝YPw-wfAݹY!ܬ_Y}#wV_;w(7wdv{ZXD9Y՚̝^wTnNUY|u~ͅûPO"%(D^k{ݹCV Љ~ VwXxun͝Sˌ>0Eh];!]xݹ RE'KX=\n?x$E= &;/ܡS~izZ9X"i%Oh,_O,ՋswB=/MP'wEoݹw:Ym?wPf_n?@&\F.NOPae{zF:y;!eVV:| e{TRHT!XA^04PfQ)e)xE } "eh-;,Jݕ&-L)+U+RѶPfA)en S $ @V0P@P&LMOae-7V0(@DW;eůr*Q){Mv(L)+R,,7°ԡL,[nJkCaJ^BdQh*xEДPfrsOV^ S}GˍP+&ܒú>\Kq3}71k%h nXc-::.`attV'QZc=кˍ0cxUQ*{ !ˍ0_2K ;|DzBp)y, e}B"\Bw!Z lHf;|Թ. |""\Bw!Z AHmuǝUc|qgeC'wTE\Bb2y'h1H@Ʃ-wV!o/; ]~J;eq["JnDUFH; I8*߱N=Q+yPXDEC( izzqgXn.?%ΝpY܍%xw *8*NΗ?]!q, cY"H.!Tƻ,B.Ʃwֲ=LCY.|DzTEmekڅCHEvۂ5J=ocuZ}jS nYw}i,nYwyڍ{ĝ|V%; w,ݸOYg5;YݸOY>,qg3Sĝ%,?`OYY:rwiN> winLqojnݸNYg57YnܻY}wV_>βS; f; Xj~}β|Vsŝ7k,Y;Yw6OYg5;Yp?%ljn~JCpgu︳?wYN 64OYg5;YO',g5;YOZ)ypgA?mh,pgA?mh,pgA?mhjn64OYg53YO',೚, wYwӆ։; |E;ջYg5;YF',೚,h w峚,F',g5CY\8Pĝef; hCĝef; hCĝ|V;ц։; wIĝE|V;ц։;f'FZ>΂6 qg\jHDY5gfj2+؀̌_\Xw 6 lIQ IβYԀsQwXھS]݁gj,eV,Ē2 Vkĝe)'-ĢCS3:Nqa5FY@E =y/ 1+T\XmwV2_n:1B+T\XmwQfArOY%;eo3HŅqg!em@;,e)c iS\Xw䞏2 efIkj&vSm蹳EzbQG;qQ_βVҊ t|rgŅhqgЭɝ%Vŝe+Y;O̝Ņ|qgtqg +YP\X-wV.,;,sgQqauY;ϝCt3Zbqa\Y9D :%VŝCt+-0y].,[wXy΂jla; βug,w,'̝Ņtqgٺ3wVŝEue,*.;+Y0wV;/sgQbeJJ48j -*kΠVTX@R 3Rx,k#ÝUĠVPXYAMa 茣+ˌ\VTX٨;,J4k팣%e.:w&AsFaVAg%(i,S8}@rQwX8f:`OG-NqZF@Dq4u+|B48}@2PwXAY 쌣uɯ);je +u2AGiWQwXhAGI+캹`9}o;,J4k팣ev\Z> ֠U;N.` ZxM5hEja_LGLlI}noj ƂlϺ),2!؍ٞ>mwe¿y]ٮlt}vy/βV`7Vٮlt$Zq{>e BIT }'Ǣ[Xg ;hE&2 H"oo;9G.ڍz}+p#@` OH>oR>Sp/اނ76@vc^ʆO)@wp }qRn6=澓CVn])$Z^Or fHbogڍz}+>}&a/' VÝ]m5DY%ъLqgeD+32H9ͳIY&1yJ:R7*s~AM $&1H ;+;DŝܑF]5Zb"8;.#G1o^l@S2C|MgVwksG@&==#oҏ9EɝC}N,D<w V;r+q JLSQ9E;V~ \;rf$g6y',uNغ/,)Jz^"Moϵ; ΚBkrgHiP;eMcw,8kwȝU$}AI V"O|ӕYpX ;HNABz|tNTSX!do.8Q7)R߱"wVq%I DS`(:AMa 1X8Q7)R߱!wVy,%I DS`(BkbŪYpX ;DNAEO)0=%cCBCwǝU"}AM>AOf(ڍw^c-?; Rz,xMMg ~an.ϨgM j$-$Ck0U5)T߱!wVy!PXlDaY7\Q5;Κ2qguNCg4tW;i>w<\A;v;k.KNĽΚsO|XNĽIΚs員aS \dw"m"wt;pYEv'(rgMಌDE2TO `Z _Q.S D^i'( 6X5Enw-#)2O `k` qHjZ_uW_YWC}ŸqoUYW_*CO 7Տ~nuW_uW_)7[_:`weꆢ'۾V7.᮶C&b:QzUι87̫бMZ='N+fVt\IDSz7 F}O>ι:[ dY1+fDžgpA3/RtEf޷D.ɚa; ?F#:*?Rk軝spԍyiCShw˚(fzYoŷDҤD=89^p(v3jpQrR;4mw(~Ƨ.= GH( ć0zf`&qf:E)(&K NI?d|GQ󈆣ѩ}ΕvhPfkթ< K@)7K=TNl>_Idߪ,'#r^`Qw5jpԲ~9|Gx; 1ٸ.= GXA|x leY 1bYbĈ'r)D#̏j,/p'S'MF #2V//7phPfZĘ̀ۊo%BxI,,,)r HN$U٨aDQG|X#ݡLt0"3AӤgO|x FހwQ_R 3$:w;5h8o .CYV?@k#{!Ҽq1%BBhi.+8%B!6x;љ.")RIđԀ E'N1Y0"3=Фݡ̏,L7kh8Nop~e}»q\j }jsޖtԏn)] Y>9oM~R;c8rG5iy{}uW_uWqEXIFDII* (1 2iCreated with GIMP)[)[GIMP 2.10.242021:06:21 22:43:40Created with GIMPzJFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?"yCnRY%q$n AUC&\ X< ,;*Rm8"M& {5>+S/8OtY$06d}~lwwyIHFw^Sӿז~<9t1'?'T `#hc`QWskO7.linX>J/灶ldZv߃5_Q}O~(L݋/Wa 4i.X7>zG?_2v/],W| 4r>qiߥ bh2F݀V]O,W|ի ?l9"Z ~*iRG!=@*4bU'!Cu_ZwN*E!9J~(]B5iߥ 񹵊)HLދ`Pi_*~(#Z727X峃 ptOvvv fsq@S6*èaM (m91'd־z!?2zLhȩmqzQT@|3Ҙ kj˂1#O=NMg֎$Uy;c+}I注@kiZrL%˓rxJ 6KϨ#'7񎔺wB|b)sGֲ+[YP/̽!)>ZzDM;O*eYf_q+KKVh OO,A#bRHRRJeL}Jl<~a3ҝp`ʘvFgc9a3};Wr<| G@zd]JPq/D>T@jhYn0\)<E&ydMYyXsēKt3+wJBk8 nH[McY|ޞC9r"a%Ӱ$J [UYv=KaH>SO趪lw e58<Ӽ<3ut0m_3ک?wãugݩ.-r7M6LS.sq\jj$F0 oPr2sҲ"g&X)XDd7c$cgzTvnv`0z#0==jͪKg|sU>$3NI$U!K5!p}OZLAEP }5x b~dVΖ֧ 0эRڌ8רQT7p[F؊6 FWdֶGl_zBS?}iZZHK,~Dhy1mhM >Ylp{mCܾ#d`*8Fgc9a3})I'$&g,8sϧzH~`1Ħ<|ɬ껪]JPq/D>T@jhYn0\)<E&j ?>_Kڪ;eQ赫\)\!kW|;wt3vd:-vPբd]M99$Y"b67[vrɭ->i*X>`k6wc;x݌Fֆ%+T+3SC֮x{?jی©?s'.-nbV`ny<'꿫Fc1{;?Pli S܂oR_g,х`Nm=KcڣSt|/$|pyV넿-ެa%Ӱ$J [UGtLb?s77@ zvTOZ񛛱sjzR][2 a wQTG1zk>uEyP6MgPfʀGޅcv9 Kq3[YBDPb`.xw˂1n~t<0CO!qm::> *Imt2G#?GLAEP[dl0"}XFjppb,~tяR 9u3ҢmnL ڢؔ ")ܜeiRbP.wrsY 5-mvB&seč9ɭ97Z[ӓul_xŻZFgc9a3};)rÌgOQ赫slFGnԗ@̟R2XJ0xinx?`WK}弬m z"#yM*\f}AW*]ILє:zU13k) CYPxmnzl)E@Ly3eSQEVƙ=# 9q=liڜ"0Ü&4cԶ7p]z[a@.F{S椅 %@~/\JέM nJ^Y 5-mvB&seč9ɭ--sw'yi戸 gӓul_xŻZ$2W};T`aKg,8sϧze>XqNkUR8^}&UUJRz&GlBSHMp6.A<ѪydFPs=?I4K-w 3HՐ'g=`h?I4C24|5y:H8:ҐjSC֮xxf`WleTc-aw!I\GDᬀ==:ROT9-%+p#8JӚ롐$THc*ַ*N>tӰߟT. $Rje34~$kop">2 oc,zr\21+wJBk8 o츿%#>Gt͸l *j˶9x];RA|pEh]$ F ps'^Ahd}ˑ@kP:R=@lvWR$WCТA2+Y6CM[RcPd~T0Ldg8( X pE%Nn'%aqORv@QSO~S(T݇PTjߔ >'a)?ڤ??IAEO?ORv@QSO~S(T݇PTjߔ >'a)?ڤ??IAEO?ORv@QSO~S(T݇PTjߔ >'a)(b*H>T݇Q?O9,s뚵`Rnbs6'a){2)e*HA= XMP bottom-0.9.6/docs/content/assets/screenshots/process/process_full.webp000066400000000000000000001211301447252316700263440ustar00rootroot00000000000000RIFFPWEBPVP8X ,ICCPlcms0mntrRGB XYZ (acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBVP8LAt/GU㶑?왵}Wtw@u9\f11/94Z6L)/qbLa]:%ßn"t~}X` ˑ!UE3!c2&ǩH.lJF>ma :2b@\@Ds']P@k^ ۑv"@I(n ]#4ئqQ괎^.mrOjٷ:tM:z34|M}wu!F@_C(mZewElOUM>ݛ!śBDӫ%].jR߀J]e꿕G M cRv {EaG J@ yF\@kUK 2m>R).ey>MIMI+9ܒ<6>G:ۆ5_Nv l h\`)KPrPEAN>"Ifg3E  4ؔ ףqxdo@|Rf& 8d&B12S'lk%(l@ N䨈>1co|~ !0E2G Ir݄ߏ hŀs6E$d$+G ̔,ᚣ4%Z[S)Qܬz÷# !Go#cݢ-_]~ G$ŬJ]VC\T5n $ɝf9N&:b:wi6$PEj^$,@O~V"]It@x$9.zݭ,_q]G/,Žn$ . J]_AE| !f$3 %M3*]*۽ԑy׷^WYSǎ+tV1U&c9p R2>*5w)r_ (_`SƱd?mF{nr`9o a{Si8  gh*mg5{_ncn1ЌI>+zyp4Dc=7>CMǙ/֥XVm ϳdXgFLj/ΩSW'4:K4m hZBDFwn83xPc l$tgY 7]̂izB%[Hƅь@@ 認O٣&%3ULHh4qhVYV`~E$C婹SXI^8ٲƵ?+uo ?<0p7X ,tΈEi)Jsa#2'bWepۃͳK᧘M1V9ʰ_ e O~/s!uzC3:ߓl<+L"O>t^-am>!SKuHZ[e9 ?y8XsmL YJĬ.2[&[Cu~OJ OE} o^S:' ֦V#d "c\'R`0RXb 5#5D8ƿyƛ~F#h-rб֌4xde/Pwi`(l#I~.ճW>A䢺V:y#H@[>)f InD1  Xj ~ NLT l|'͖t[N>V#doVO֫{#RaF.[&pn 0RXb 5#5D_ǽ?ݓkj]I֒ZS"=J%p]1{>GϖG힁6 RΨ!Hh2nuv*I!5KIbZ tݗ>vL"W_4^@Ft1t|8~B|őįϱnޮ_\8>k acaXA;k.GzMC"u}(kBfp~yE(G>9$D&mB灒c% {G,%IbVCoAlKǙȾ7 OEߗh2^lh=.֯_IX+Iy7򄹨F߻9l ia6ӜwS}˔7RZb 5#=DGiXpw:) O>u($YXu$}Ye>:qOM B>!-+ 删Y +00Wc o4/9As{c>Hkl!07tO, kv:ېD\$q}H:"2f-݆XOuM |n*E< YJf|(",`pw "删|~{l74L+1&YY!~*4J d MUHأ•ZcWosZUH_a N[oC"-k͆+Rk}B<"͒ 3Vaeǧ@Bx,ar]0Ȓbb R9_VM"B'BƐ80KF´ZZI}~(߲@IdF[@(MjQXRSEv0#ʰ1А*ed9_do}#~_^ T&1ZuO, 킫3jXŵXCU, u81ߺ ;m 4Jǩ|3ηۀWpm T6rhc%fy,پ%)7/Кay4TF2.$b!ȜkWqJ%+dAL?3|awZmY2NTT}oPںֽxT%#s9_8*%9v.Z:hRWH2 O gȫ(xP;Ē 3VFIۗо+D̋W #RsAT#_,U*@FC q&ŒƆBj In${s-%=Lro@muf8dfiK+IŐoD0<mLchH1b@y;,ƿ"Y7v0 j +'R?F҂@@roHչ .`,P>ci%"mR` S=4}O@Ckq{NK2o&򷥊gF}lĉm,InFv]\)<@ͫҼ%1Z(qwس̡?w,sg)D[,"YR*cYl,CbV$Zrg4wBIR(#Y;K$Zrgk,ƝE`|HwY% nYT+ΝKܸxWf;+Dkϝ5rg 5Yi5}[K-rgc=}@]I5rgEcPY/Xe# xyǚ7Jlf;ɒƝun%(xҐª;w|f;_"w0,rgRxJ@>U#wV;.O>ʸSȝe0y"0Y Y@;˾鸹C^ޱa;sOsg/X 2ŶՇ1Y~;s%; zyBLk湳w #`湳A/Xf sgc^ޱ'\ sgc^ޱ,7Y~;VPi/f湳}%XwH;k9;,D5rg"FxwXȝE(QY.Xȝ%۸ȝ%)qgQJ"wƝE)QYwDrgEcQJT#wV;,YJޱY  w_sw,h@ֹw,h@ֹxw,h@ֹxw,0u,p? :w j;xyǂd5Νcםxyǂj; ܏wyֹpw,h@ֹ}%Xw@;k9z俿Sa yyz7wV;֏=1GnWY/XpT#wV;ָC]QYm;εv#wƝ5eGkWY_wu"@IۚZΒݸ&_"^ޱG[g]5rgc ,_נ;K;;k`+a$,Ν0'E pLu?ERX;a7˜Ilq"w\)Y&;([ωLtP$i eƸ\H2Y2=}W&$IC)[\8ÝՈ,SʝY(% pq wV+pL'wPfĆRX;n q,QDZ..VjDn"ʬpu JAIbC)\\Ɲ0W n"ʬ[m((Il ¸J2YHۿ II(%x8Ý)(]q#w|!wV_sϝyh;&+qg%wIh{pFsgAr"w.b<,w?m,L.VΚ@m,CΪ7cy(B<uJўD5l;︳$^2$MsgwTAϖ xYnl;+ǝqsg90w_',7F jYda7 jYta'd5,rc>wƝEzv;KH@VP΢ʍE$ +qgqF ,%YA;Ӎe7Npg) jYn,v;KI@V\΂tcF dwM7=nJ& +rgiKTCޱD9.KUOޱ Ya;?yǂd Y;kb,n~pgqgvj;XnX;˶Vu'vÊwYݰβ5tpg`ῆ 9[f\7[;?V+n"w,h(ǝz6͊wq^u}#wq^uu,XQ; 9ຉ:w?V;!s^Yƹ] o=6w?V;a -sg%+s^usж?VJ2?4w,XQwVk#h7wn"ΝEϊry+n"ΝE rYyn"(ǝEWpDn; ҟ塈vhX}~P4w4Z;wHVb+ֹ(Y!;+yTyDzrQ8w4Z΂g8,漢&rY6Y1.XyEMƹ YAw;k9w@;;`ǝՏ{G츳qh wV7 ~ƽ񸳺qhwV7 ~ƽ܏wYw4;pϝ5 Y sDy N`N΢<_{YpF9,s9,7/:w#us ֹa; tpo;Ƹb:w#ru'L֭G߾cIwiŴy{Y0qgqzޱa<_uýu,bG8tpg`ῆ :YSZmQNKBsw8@>mw#;,)q-7;tٿ0q7g6:ŵiz>OwB~gZdK;ѯ2!H;P`Hh)mndػk64s~="k;'Hx;,AJF[t;+"9?ې_KBL< Gr$>u W~T#HmVmL)į$6~qGGGKħòb5/8Q 6m;So馷w))>U@28\p5N0y#pL9$R|b@@AY=ɠ/{m6R1b팫;aR|R, F,ƞ;;ڻ̯|!z& ]Lh;YUm!;z&B&w|U6k#h7we7s}A!ɗ+=w ?CyO2sˤ@&{C@sG@5//W(q:4Qn5ŗ =w^8b-H]&Un,6[[=f =wU7/VN?˔8 ip,sGXxb{Ofʍ%E\K{w^,%PRHV&Xq݂@Zn,8'"sG\;7 _)' =w҅hޱb឵xAg$ A;,ACP *wR( e[J`:{h=FIʍ5Ί>kNhy{kNhy{9-~G7o\@6Iޱ.NFt}@ #wŧQ.>q;Uټc(>՝0*t'~r"l-QNޱS U^@w,bG9yǒ~q4*d/ X=;/7c=;tq'd{Oޱ#c9vwo\@w,`kG6Xw[s4C0ZQfޱd 99.;֩EټcB;!cV>Nʴ4RYUL؆<ܯࢇu0%KF$J/ģ 6$D8_魎U,QQ+f,kQ`?W0f;.m@A̕Lq>%NRN;)5vTNh-VTgoF+F y&>0m8~ VA Q3L.s2X %/03 #0眊%Gjܚx%ZFF6C1W ˏTED:J[V?+Ǝ` Mxz'ۊQwzXh6|e5`/|Tl-QqG=#'lvir' .ʕV:Vrrâ܇{SpRYؖui\#``spk6 )#0kwb݊=QKf,0D9GyQOE ~|~ЁPKhsKVpk^o!.4}QC^"F㝼,YѮˑR'Xp)~m1kY;^!&by"uʊ=*@wd/r.M0 ڜd-ئ\`fL+N}Դ%aldvkƂմ}OCiGy ܱ{o~|,iѽhB`&Xhۀ9Inѣ]ˑ:J;L!lETޏʲ*JVeb+Z;,嗟WkF  SV@ ;K)ᝧ?rsqq١ӲZ\@%]11eKi[?jNv$%VI^rܧͳ5|S`\a@/Y5A3̺6~Y I 8&-VB]:z]d Vl2gFRޏҲ*RlBВo~Jkͨ;a5y,`ʒmRM o$/k9ge?많4A4[AX`@~о]dzi=BO@@ 8 "@/ ׬m@ܓZ/yKZXD3CK`{DK`+BGjܚd"lhw1]ӧ45([pVz?(t(1vy)=+`9R'X g,~ZVƎ©-Ųq@!Z+NXOޱ -ؖ)!qFel)e(H+ae;/M ʕV:V54{r|9/]  mi@/ ׬m@ܓZO-??a]D3c0dP, #rk$'o VƊ>gxpb 5([~ -}ЁP h6mt`WrHpPv~b)ކ1gY; n~[B&kCPJ>KPia$hTt>rgN5vI1#/4w_)Y4F-wAըMjm`tvK֔sYqg)TABl-tC}b;gǝ%aP5j@#Z㌭^lNjr<$ڋΒ05 ZZޡdX&3L"9984j@ZI# ->ZMΝgDX{hY E"l-dvOv]yjSozugǝ%aP5j@ Zeww;;'V/EvaqgITR>lNJr<3wAը-j.l-td+}b;4ำ$ F hVv)akF [v';GU_n?u9w}ta/;K jԀiIn`ddX?yz3sg$ 5YᆭIQ6 V%zy{@b]1D~4V \rɼQ]vYY-?)/Կ4AβpGם5}_u*r:{m VC{@bR$ނ\J^={.+vYYD8b@@$RYwv ٺД/"r%mS"SrѓCtƕǪ]- &N;rߐ&RY/v JJK$DR*ůETN&"W6eZq0 &#k&QdB'O d2#`?-Ĕe#GIyr]9(Cm.l)w~Q#B|H(BxNVRZ" R)~-r1W(zWN zj2Ғ_I{D+X`# IeF-~Xh) #ϒFeg{w1X¤%R#"ʑM0 T6w 5]w&@T3>_ע9 rS6FgZ8уP#5a$L:wt?"{)>٘p.\S‘KGϒvYs鴻27/)oc^٪^wB,"-? M^`kI(W$YD.K#^&Q HvMdRR"$>Z 1'#4L) PY,+ݕ9!6vWl];!}Gk[ dj,jl)ZH(QǒrAr,Q@jc$2i)Z ~ bNF@a #&Ȳ>fK%#|L H%NgQ£h"Aw4Qu'l dJJ$I"rR+O=w$+j+tM`R(lBs΄-5g)N`?,4 BvMż~`yEݕSS,afHgQ#~ڿCHe;6XB"HR!~-r \mV'(HpM`RTCx@`$R 0e#`94%oT <䵻)V쇘'B]vYTrNwC$RYwt ^,!P(HP9QD.6hԊI 5\SV B,Ov#  eFb]h) e۠Iybaz.IBCRL] n΂"7~ʏY;sߴ\xN=(osn:S;MUw1WyY%wcR%YtY p$fI8rv6Y)~}iŨ;Vp9sn\M$Wq ڴYu)Vj#|A)DZNJFXMjtV*#|AR)DZNyi;Pp=Ԏ;>(c-#NIYIUS=.u'L\Ϊ) %)v(rgQ.~{oZ3N.jÝURYkX ^֌& pgUE4Sh ZK*S7u'L\Ϊ)J N%J֪HoKE SC퀸*DJ%DZpSrKVU;'dUE|JVHﰆ+(ᦖ Y,0T~1Vmg*K/~ݪaF.|lG6]܍PyFD.KZ6 VY[fU2VXD|-NU#~)k_&B!YJ:w,;4 VYԜ@& _De$_u1fm%Vtv+`"T2%$ CyҸLwN;DT)|VPyc9#΃`e*Z\W_V!OF,ZB/_GbI֜uI") {8s|zjr,4+j>ȑ8X/vsk|tեcYWYd$VI|VP9c9#΃`e*YJJ)H-LAm`1VrvDJ.OvNuI") HyeЅTBv„du)XwU_H ɡrrJ_GJA;/,{Vb]3+DD ݏXY/oGb8%_+k^e$D@WNgrzj|,+Z%0{Z+nޱ&R=!;aBw4wU_H 9EX^rH`Et8P¼0RՒ%X62N9Ų{I4?؞Z^8-Ċl G7aV޼ciL|) RޱYV}"iY)J_U+H38O=N#΃X,gCj% P>Y7B:}:$ "|-eԵ.SMm^Wg= p S!\Ƒ;K)`<#g"KH@J3w6֩u~]Z [޺n}t@šY,@9W/j5~bKջrgIMef]3wVH;V}\saῂLrgufMXE߹]f.Z֊s7t=֣֊sO=~'أV ~leEr6=H$pXwVD; %I Rq9h̥%vN;a-PvNI aX fPkE߹]r4أVJfΗ3,>֊sUTbZ`b) :1\m]g6m Ųt=ԫ+Rle[J&zwΗDLu;!! Q-@Z'DfnwMHf[ Ekvq酠AdW񰅌p|_iVYZJH I&Vp/Z!cF-p NU"VӀtlɠI>;<V+}ZMhE-'0VM% fRouKWc^']1ٗ+!wTՑI&Vp/Z!cF-Eݫvm酠Qd|vH{ 3ܗVS:tuVԂ}*9I׭nKrKB6:5;Kzo=/^םP8<6`tSnwͦQ+}V=XMӱ A9)'$ZQ Obkr.VtQ5%}i:rg*ѹՏtDXsNva/b!cIVYjнm^ αY% kՔ]V$ fRotKaOkȰm%ztcەq9RjWS9tuZQ |M% fR~뱿^R' Co)}qgQ/^;! $ʓS"R@k&QfX*X"VԀtlB 2;G[-}:Y>ҦJ-]>` Xa֜sC$_Eܙ%ԃJY- m7wW'3tK'ש=c͐|~>x2It+h}sg 5Yp=], 1;+q=G\tzYt=],8.w@a; ˝Es΢yϝ5rg 5wɝXwB/eN~ٽ]kֹrg?yXwD}!7w}\aee ViGf*sR;al/P0@;;ܥwIamƺ9p}u_`w=wܝ@9N;wX~f VJGu;~Nh֛~;ܕj;+SbN;wXo;Ϳ@o%=; #@H-XwBZK=^pg%5J;awNuj Bn.,3.!hiJ߹w.4pT?#$طNdYO-?Нs֐]u`PǾ~1w>Yιwa#.\5d+оֹ;P >JτvddX ~A`o>Qug~ 8XRqx?n2`̧rwkӂ yxN~Y͝%W@5 g,3&=pLhޏ$!%lZw;qIiwbt'_TV,!?Ã,I}oF +8aBE>(ۖ RY%T֣D&aSOZ jy˅lh$j0* nxoAY)T#7~GZu0YAΒe@%*2S%WQLh#0O9 2 &٬ GԤH&QRAT1(F^mKHyg$SY0mC;#;! \%1u"l/Ze瀝MglR 8XnX(*GFl:W d{ʧM 6ĝYƂvêDe{#v6իtU*6Fi6uhvêIJǽ,tPWQ+cdV`΂,cAaUȝe{JM,@" r+ `ӊLYs.[nX5rgqoa PA_{9`dVT|[s?BwQ#TٴFIYaH ;;6 w[,(ޙmo{gjJ-wVb܌S[ĸ}ۯYo?}詭玐~o$>ؼZY";h eT`\0}.y{%&I ]{.ZY";h'h;?5>oD!ԑ: FV2A6Ȯ~d'bĒ. ,wm?w{$>ϧ6gB%A֟JE&+;q3Po"4,&p`v;8M"IpB+ K@dWqq3 o"e~ !vvWm?w{$ٴJ&o<>wo"eDcuAW9zLnVsGH7qB谧ک%di7;g;B>o/~o$Ѓ@Qd{Fds}1nFN*$h.,ED+ۿ֍?l?w&OR$RRE&+;t"`/&@vp4xk#qi*$P$AMRE&+;pJ, %1;hy; sGHˢDYv+qoWTIik;kQw_)w+&2ВXE+9ǡ5h ˤ:dH2}^H-(L>ŧ&ɪ..}iOTv+}l7tBx?Żl tį|6 N>xG7L ` L[^yFlmO]fYdcWMd4ݒX;9sCY* UW'eO<%OvX]Ą# =gu Su2o툅.YY.m;^ ߥ#t~UC` nnyGzה[l; l3w ` h9$Vseɶ?'pں07Kq.w ,Hc2o.YO`WiL٫UֶOorXSI5^ds+=vߐ%J ɏ l2w ` h9$VsJWd2RLJS2#$jˆ|sQ8"#aDŽ" Áu(ˑ+#$e}˼Y#d(}."#6.MG(i 4Z96dm{aԃ@F&%[^yF$]#l0¨|4.w,e`)9B-U\Rٯ+,ccH1 ZܷC_+NًhJW\}WP@MKꬣ m501!D#%z003w +0 K%WxBxl'eKbm4u;@@>-ru"n )%6U $lnyޓ%RfK5fT7,w-ٮe`IsKbU6+h[wHvV-ʰGil"m_g9!*?%$0 %"#N%zv`g:+,!.5<>'k/Mg$nys#ic!+V97dž,iCV $lnyGTn)3%Ye3_F>6΢%ۭ,Z.-U\ŕ06HI$;KMe#$hwe]GY΂(vd.ljALMl=Yg"Z]A\||y"Х&AŃ~q 1wOAl66,q;P@>-#|,dJy0=mPjKcA!X&A@(bIֻF 鬅&2df }taOKbU<qqeWF$U2#$jˆBr)SJKn`ɭ."9b7 ;RB`$D{# #gW# ѳ*7pB}O־'_uZ$G6( pQ>bqem{645=i3#XQ65@:koc{ .n:S;שSlSjul>\Y}V[jcs\PcX+H>i?Xaq*>؁7wiϽ![_cTP|=cNCo :;U{q(Ǧx؁Ww]iν`#7+;lB8kr^YiPO; ; ݹw4Xl$vUY\a^z4{y;sh0H ث8xkrE2Ҡ:v;Qk%qQauc4X'vF*grq*%&h|=c2D;@7G_ T:v;Uk4wrh`>+]IRȯ*7 W(+ c^uޱvAs?3CI8˛+3 W ox*8̩J3>_rBR8̼RR+O$Fzs dEya Bj Μ:6cW$ @X^X WKHHIIEya Bj Μ:僀)̼:%!v+[V!Uy*kی],9t#R8ؙyeFJCskݘA-RnX;&8쬩]AdɅJR@3JH•24GgmX za RaW`va\I7H,yVIWJhf^S@RUn}`-}6Վvwܾ;n߰ r]ۨ}.[5 q#Tƍ{.VShzվ*[퐴}ϝbw?ܷQEV@l5iۜ; goJ j8Ӷ9w7RF@X;;msgqmTqY+O[Y|<+}Uf+MYq.mTqY+l ;7JF"b+N[Yvܸ }U^ae-w;w־:u>aEs'+Gd}4;ϙ(LgڽzU r6v(wm,%Գ[]1s0L|[ *֙;,\Yܽx߹+f)*eAP({<^M8qV,h|q;K ,Vs̮!4d )m$+%)%Y+} 1N*'C;!ms.]1sЀ(¸YD)_qyqtCg ;6W߹Ks}箘]Ch =7# ~ű$q䡇N4wms.]2sА($ύv9<`A1N\w_;wb^>w BR0n<`Ac`X×uэ[.r}+kU=YǾ.MǟMyΑÖ:)Zy uŝ^,Y՗1hzZE-*v^M}^uanbߤ~xj]gfuK>dտV"oK3Ge.=L(n8>ۚ+ㆵY+kМ!)kgq#ž+?gV髯:5&}[q:B^8PвDp8+^pD,0)SFJӖ6|pmOctɳ@Dv{,i1@09kͦhMRWQׁW,)s؜}qґjVFN8Q%,gos !me/o0=c;Ҝs¯v=|Ս m ͹vQד׮r?!ssճ$lw^Ϳ9,N׉|/!nnf)i19Wqzk}Xt|S }~rz ,H7´}m%CG9O<8B^8@в7.͍pD-0)O/ˎk/d]<2_/ff _#8 da~,%oZY0ޚ؏#g˯yGW@ +$?F5qoPjRFN8qȋK\H 2۔2~ cP[ifۿE-6GBt໎kkև%miWRRbB))s-4\E21}[ W\q (/]z|E!(I];/߇)16r_p|pB*Zv;zxmAYɀ*B‘dIBn|p6ăcP`Cd}Ā/O._E$g!zr֚m"&%Oڟ6`479|Œ}Ws?k+qGwHE, 7vZQ:o/P6RO+:KZHׁ,so@y3/}PPư>¾P'#'NV"Am FL dn+xsOPIJzHmܒޝpӉUjj_uzXe8!HI_'KEY 4پiHq `Gae?kxҢ`YD,*eu̶]84ß%F2 !~V# Xτ.Ȭ(LjoE"҇`vM]~c5QQqF0Pڈ'8 {Bəs'Hql'!v RR0[9᯹<-}k?7K&!~f!A\~*H: 7zd0^@^H*췋RDua,MFr_ p`&/$Qjdxbk߂j R#_6(zp1tb ; \*bI'kUƓBjů'kwIF ~}-,-(Za?յ_+nGВj8+ZijažU$g6^#$pXe$777ʑ_ >_z$kR@#^~XDp}K8ZNd0 }~2O+9{1Hb=t@Lj]E-*+F␋ܲz4u6>d__[ENM|9MGjf< k'hm~W.HI?-nw",P'}Y"߿{gF]8Ood!m| X֗&IM{]`)+cġzM"+dEgHطOW{-09 fI`4O h%߿I-KraVk.+1{sojfB 0%ri ?ʷۜߛ{/1jkK$Z6>v]H#>p-zcFM`Fv]=?Y|$P~nד>zB]߼ 5_cEWV} 5_ 5׮CEXIFII* (1 2iCreated with GIMP)[)[GIMP 2.10.242021:06:21 22:43:35Created with GIMPzJFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?>R1l'rr& "F`O󫚔?0#Oo\{U >5g q ݵsmə;nО3UZ"+ZƎHm{gR2?ߠXOʻ1G5ơb/ؿiߥ .ț2v/Gd_¡&L݋/Q?_h,'bK}O~*( "oؿiߥ .ț2v/Gd_¡&L݋/Q?_h,'bK}O~*( "oؿiߥ .ț2v/NഀHbD=X@*X]Cg<9Q9 8*~+/jqTJp_sXx@ӥ%ADwyu?z9WYc&@F?)2Ei9 p=q%%#m~[^܌UhQh#iBGQ>T6K1: ?OyDӯLcU&E_A4_j#O=I4)y$6yD3JkX&_.FPF#=),Z%+$t,E [SN6W454@l/?twӷRA32XG@*,ϙ6Õ¯|U=0qSy5/v\vFR7Hp?|{V^ObR1sZFJ7<JžvP()!*(((((((((.x+U͂m ׂ TRC T}}~bHeo(Ds?9\§sFF+y@~#$9qϵ IFkk# c.O=F*KY`?N ս%0.A<.ud\g393@Vw! &JV=G9?jMUJܶ@!^ީ]6*=9@hN3Y銇O趩Bt)` ^OoLT:|pETw&[5`vA;Um,p`'?!byjHб1DF99:X&~N~B:'uB /!տ>6J8`uc`N[8W?q˒ y"QLAEPEPEPEPEPEPEPEPVluchnȪfw^6]ݏlK)Yʅ*xM?Z$di9HsU}QJT.aSm9Չ##M?uϒGڐ 51'#R%άp0P'?jޒט F \{`UH:.3BМ uU+r;ې{Kzt@`&n[ g{rrioT`Hls֠4'B @,C [Tѡ:ϰ`J/'g*?>_Kڪ;-ؒC `#?"j |0_N~Ba\ ܖQ9?*U-58Lݗ9aSDp3sՆw*U^>b ڒPGI끊Ϟ?"M,u n\sOe*>En 4R4@"\/SA_+Y2=F3S6|8-8UV8?Pz*}6]>1i7pqEV>{3\񁊄Z\o)O8*ӯcztKyY;$ch*YI<%˾ŅH^.x+L6VvunUbxne߻htp=8TRC T}}~bHeo(Ds?9\§sFF+y@~#$9qϵ IFkk# c.O=F*KY`?N ս%0.A<.ud\g393@Vw! &JV=G9?jMUJܶ@!^ީ]6*=9@hN3Y銇O趩Bt)` ^OoLT:|pETw&[׀cSkTl߷Vf 6); h_.,g}0v gi^2v[4qX PIz{mwNm߀3XhJZ88- #\>^X`$:'#wjJKP ky9ˈgx{unzzz\Z8;%J6Dq{ceBKrc֘ethPo?d}9{ScBA=z9'86wsQaH$[B3:?5mXuu %@3m? kjm2F3d5r3[} ?>?ՏLgpp? ԿVdƋز%#?sQ-߻i;8=9Ub~ d6?Ho>k+{`._$LwqIݹgWۂejqKll9uǵD.MxO88ijD;viQ}guUTi!haT=5˥\iDϸD uNŌgNq-yɧEE&N̤QN]RifUP~<i6HkTh\>bH- `qVFvH{g˫6 17^ {dP\§sFF+y@~#$9qϵWB<&_sX24[Q$~9}J3[^`)\ry1U"\ȸg /Bsf(myar eTs"9 ' UR-3W5-Qd4!1"~srvU+r;ې{Wh HoRSus8 1:ϰ`J/'g*?>_KڬZƯC҈s*@{*E0V#[`;/WI&$ hv YnM-v՗NrF8=}*XqtOv8P ;I 8}sQΰ+FfDA\2m'Tq\b5y''ߚQ(|nR42$8_E;!/6G9fQExٟZn?5Fv6 17^ {dUj`cCuǶEK)Yʅ*xM?ZDOjϒGڠB<&_sXt#M`*"OG9}J3[^`)\ry1U"\ȸg /Bsf(myar eTs"9 ' UR-3W5py-T/q&*#;B#+BVʎEct$}*|AdeR{sۯ׭IFͺyAbr[I Qj*!8ϯIg.r29; <Lfx8+99?ڠ+koll!eb=c&YRxU)nInzzlG HmeD 1PM0(QVZ2cn=;ձݔe.L [r@H>'݈@ŭ˩oǯV кX>hvn14Jϲ۹'Կ}ӑg>J2?p>ԣPپiv^J%񱲵3>4?7/0YG$??sf ^&aToYk?YG|# ??*@M@?MgWk?ϟw_xQUgIJMgW؎3C/0"u]4icaueIJMgWMxD0i#x}\5#;[6 E:",@;3ް$Gn??$#q}Rן?/ܲvmc@ c0 )z'm9|&lev9>#O]FsMg7MxRX$Xӂ+#ZHˉS$V&:j3TI?3T~/ۃZfc3~;z bottom-0.9.6/docs/content/assets/screenshots/process/process_grouped.webp000066400000000000000000000661041447252316700270600ustar00rootroot00000000000000RIFFζj.I$Dv`_2W'(w \@\R5]X?o&=Xd qiX)`ħ';!G};yˡS^sv lT.;v lz8>k6t }aօAFh~sd [>%m?N$EX0u=e#θڤ9=۹lOJHJBQz ʒ5{mV?2f :m _uwԃ-`,uJB#IdiSn/=emkɕEGv6i߃괯Q{:9.)=ʽ+;>=$<"%C~2HJY:_3RH^$JiJ}.PU/+\%HҢ?wˊcOYw-mɓ_Q K6[lmKI3Zŗ 8|ч<_w<+q@㧏9COP35i'[?wy9ٖҪ <=]"P.DtJl[O{O7b]M|nUm_j~⪵Q#9y2 TsdHNåA?2 uȽ)^9LumO)[;;ta.H+lJrH}#Y6r"_i/X{6̵QڨϝBODENG8{OsW Nty R#[_RI4YrR&ˆ\rwuj-_zo iDPF-l'2G ƩM;m_ԨF?t&Kh <>?d 1"Y tzrTͮ[Wa!dG\FeeA{]qDk_ $ dOmUs4#[փԒu6(LT-z@2F BQg҉ AoQ1.- OfNp khF#e̼|"cytRL4ʲai˿7T7.w"]k^ϳ䘾Ѹɍa>W[ᾉ||;n.3ɾF@tR;z;X0Z䐣> T[ûe&?UV6Q1.- OIa:nqw& {H(#|(ҭYjh]i>9}TCw^xb"BxQz~mzVBCs'wR>+Nu0' g3O@<:~bCpZn -'s9dâHR vpgg,ӴjL^b_ZTp5.'Ҍ=G$^>F {@ _zhj>y.>Jx58l:~!^x?y_W(2=Gkk4#Uz #@ǸUf귬[Fc9T,՗& B&ygOv8zw2_%'W=\b?Ƀ~m zD"@,_VlPgZ}).+sd^pvEӞb=NY<=Aب;^"VF ~r'7KkK4dG<#&U7!'/dͽeŭN㳂{TV;  Zڅ'GOGܭ;x;z.֎Jw E<Bt@1gΨeH+qFOfΞ5H08阚$ = s8g_lmgN\šk{8n;Ys_6Ot8tڱJ+Mg77k¬{;:m`l?}> E-!~60ˆӁ%/|:`~);'70âiU!Vƞ @л0P羸md@h@鳴_ Ƙa;{ 'Oρ2'a9uc`Q]T*_h/v T[;apW RdJw[g]H=*ƞF@ \@¶Q^@>yn+YE-h4=6:S5et sL|FvxitԽn#^yٍ>ϻdi|vǾl+l6(esI2K)TtI]OM%1${羠mL(spiu4\UgтFcoGzF5!_ <(ek m1Tp&YnrKWH'.\u%fT z x6sHVgU'w},B*+;95Q'iH,6#ɬ'YlQo4K10J+}*tWwyMngYW+\z㡰>mc "7NV1?f1=P"(w5Ren2!_( hqu~D? U8aGJ|Gxo0kJfeɁF_`y|(l}QؠS_)T z]%r90=N&F܇[Y796)sTvO&im1u|n<;7\f=3wkjm{k; Xrgp}f&]Ldܱ| l+y+wVUnJ>+xQecX^(vĬ2̩  i02wV/JQ.%tT̐;t{ӋYXy*`ǪwV;V?p|?Q03ˑ`,TIr$wTo/鱀'JkI3_NGβA#w,=v;˃谀'Jy=yvS{L`,T9r>vhc9=ȉ h{M7K oiPgOaC}iWu4^XXc c=Z ,\ʉD,S ڊ&;Ac!FhXdF@C,YZ}3I7+uԳϪCw M{2A#w,T c=W;-fiʹ[f#+i.iQ UܱũXhN@C,\ڃǻLMYQ(Z4fݱPcm) E\Tw,j'!,QwH2w) MYqjXca<얨c%\ he-YXP[[0T=+rgϞ”2\BXw,*GX`6,Tu9[,yO4fi;=-;ܭ;V`/q|pX/-o}Oasv*[ r*c2;i\crgyݕV#fa᜝ s)l62,t,3FY+w]R; {2QpN HF؏6K_,~QʝjtWԭރ̾xlŻ/sؒYWT̝%,JM+ؽ<ق;_em 0+xslW{ge,bq}0ME;HAL~ܪ mJK(S\[c2FUa]ZXJ&!mBHHiǗ eKsCD5RY\^N+ӗSiΤ& s맘ӖFg# 0Y3Y9.@!ĶڇZ_=ss! QcgɄvχ(c A[51)9|FD4A0TV(II)< e oXAb/4JV]X(VE]CWf`I[FZVuEۜT:k&¢i;}^(eܹ5O40Wvt$NsbBʱk{%_HMzpVMdOi[2 (8!:owN~(Ndetӊ׭bB-Vtmjw&89Q-a}hxe:;«Kz^udL$I κNvEIJ1`$݁I,%!ܮaAh^ú"bwZsw >a"ԲC[*4)=yNG>.䖃]NIk]j$-[[dV;eyC_wP8%JUXR21@՟,^ q$[w62]L ŸP ;ªdh+IL{]՜n& X4(,fC!Bl8".|.db\aW.;G IK{'%ؘDyx 禐5[l+84 ٽuGG{s;6  90 gP}6@q!B4@V9%א@r+"yN_/_dn }P <"\ХP ;JSXLߢ"sS쨂ϔB4@] *@ wlV)sS(∸CB%juG5:rнBuKd 1n, g:"/d6gg q$^wMEzVwc8eн. Dۉ&,xF.˜BlRPGT:# 9]P 6; X8ܱz ?N|g?k~>͎E)FssOTwo`v/@Br@*(ffl1K%Y\w h%u֦צNAӠC"#$H@+;,j$ľ ˳ wbuGy)ZM5 ~4YE\|&PzhfOY"o5Y睅+Brm)k@; H;B,& KujСzguGHVZwXkPȉ[zƄˮ5D,ndv4;kl?Qj[P-V;qcY>_;Ĭ&6>e~;Kwpʰf.wϗ@e&FUY4I;LdLR_Ûw:L{gi?ԷW;^w#6TwD5Wvև΢*TCwDj蚩!,<ۡ-5> ygMbX[fC1fj;-5>yg,x´l-#J=I=twgZn޼QbVtjHZHvORϲ1Vۇ7,+˲]iOIc@Z.mwkYS;Yܟi%[j}xJ,JN[ 3nM])w?-5>ygQbQ#W+!O[ c#.mw;;Yܟ05Xj}hβDE/V:m5~RLi[Sϊ,O,5>ygY2\0m5PkA?)=FpʢvOR21㝕'Uۇ7,KXh-'1S{#,hz;+9۱ 5>yg-V?K)w0m5X)YKհ'njR{gP'Y/{;ATƝ`fi&jq'|uw.1{3Q8;!`%6M@ Ѐnq',hI i# uwˆ8&y_d26$6Ҭ#NoIk#28 Ddfq'L]2-`m$]8;!`qK"PD ?N(cy7Y;,ۻma=!;Y\NWd6aCvJI *E9]%YX&XiK`MMENƢRr7,RjUr,(,h e !,jd7/a"T”<+ 0܄t>Y)n,D,"E()YlC1L%ԥ@XN4ƂJ1,❵OWהּL%(e,IqcALPNWl <(,h$čE)B1*F9]eVR&Xؒpb:X4n,°HjwVA-^uv%)&tiXTJEP8V{gP'jᬖ@4wcSUߩ;3M}wLxgy6u_ Que+ $Pǝбj;,[`AH"w:6u_ ^u]e?YA Z0];_SUwXX8XAV*^<:6u_Z 4L;xg96u_ Que, $:`$w,Ǧ EY 4yL;xg96u_ Tue(,2J%a$w,ϦRwXw{gP~|uwL٭X_4;`uom`6S`c XYSf{y2kJh$Be w_,á_©ܱ*F PT"ܡ~,f~ rL4 Yr V-K8ΚB^wdf6-@9XX 6ob=47ΚB^wdfу`\reW sy)u DP ('D,(7 t; E{+;h<Ϊ{g wE[P΂-ozgƋD֩n Y ],nX ܱ]| ; U],|zgU;k?QβpŅY;ÝTzg ή9/"Y}G?rMqaw4VdMI;@zgeLNю K$LdMI;Hzg oVGŅY}GCcV7Ņ%Y}GCcV7Ņ%Y24TSOAEXIFII* (1 2iCreated with GIMP)[)[GIMP 2.10.242021:06:21 22:43:31Created with GIMPzRJFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?&$ch %%#>OtA s'cV1 d}OOҳwv&L݋/T!o>X1elNtIEx+cTeT~H^d_¬<[" #6z*#3UDiߥ >'bK ]7d_ؿCEadM?_yXelNPZ.r2YcP|csٔ~ud_›p60sڣQ:ܱ`D<%N?Jlt`M¨F88hP"(.EnRL݋/Q?_h,K81ng>Ou=d_´4s1`.z2Y4\9Q7d_i9 p=qSZo  W#z.t_buJod_®jrBQqҳhTM?_𩡙,6nztu7*p*2y(rV}tc}O~*( "+Eoc:ia1Cp\s6lLcTuevD'ɷy={6xRU{QhH0Cs^<o.Gb;Ji_RZ2mWvLŀO붏 XZ 2 h|r:Q 5,:1U*? -4 c/ϡiYķȺ5xZ(K'  TLvv4epMRE۷LuF2w Fenp=.J],W| 4rSo=oN&t,1 34ro%p q߀{JEv_ZwG,W|߀{Jtem;K#unnFj/jBY~^zUOX@-;O8}nWgzbhİ_1nT8~*'r1ˀ*z`]׎de. ]DFqPi R~'[Z|ɤbY_ ~lniX>8,h3lbw)7 _N aԕi_ZwO~*'s4M"\aA y9ֳcHd7.pi?wxIm=~UlrjX@-;O8 [WY 4hڭ͑l'#_pSQI~u*歟2$XվOf'vAW, ayjhQgmQ-\4l(c9>78&CsZ2\X pp?pq3TcgkQ gUHS2$-U~QH=pI桢`QE P`Xo^ e7P`Xo^ e7..ewQԗ2cx;vrÌg`D'<>=;P`#<c4Q@֪N|F̒?#Tj_6с$qzkO趪kO趧ɖ̛Vϙi,X}hj-2AE>Zϡ^t68FiV;I>a>޿"(tftp,cG~۸F$tϕ:Ƶ^6xm߭c߂/_a&V)(+OIBUax1+OIBUax14Pcs1ӵGR\ \19ڣ3$Lhq>3.7yX, (T* %3<~FU'JmfIL4 *֟/\%mUj֟/\%mN;-62$XճZd0:|C# f~eFώUpGD]m/@V %cl<_β$䜚۽0мDvڲ@O^L -ܺ_~IzR@S)(+OIBUax1+OIBUax14Pcs1ӵGR\ \19ڣ3Icw~UBTcu9F > n2(]ӽXTd nBMPlBɪ Б1̸c?{Zkm$*Cf`g^EP"_6с$qzjWʹ`l)|޹5FZ넿-Z넿-re&ճZd0:|Z|LbO{vAW&cbr9XT*9#LHDeydL.zYLbs# ׮ oOl{Lm v9eQLAEPZzJ, fZzJ, f1̣Þ1:bQaN>XqN#-G"2{s+6XqN#-$#+GN 2袊b5iv3=pGYF[Nf$;?*ȡ *{1`ȣwgNOf7_[`ހ,jVw! &UUJܶ@!^ hps.7'q<1Yա"cCq~g(`gEjWʹ`l)|޹5FZ:Um2Jg7xQaV/jV/jqܙlɵl Ō-gֆ2$XU-s~GHײT*|cY3t)2mC:;ߏGc+1o.V@FV'd r;H1999=i aESQEVzc/ٽfVzc/ٽ hp1s(0cjcs1ӵG@fx3c9ӽhm (.YЌrÌg_Kڪխ?>_Kڜw&[2m[>eH?cYg̴,`tk>GdL]?ɻgU .Yt)2wovp YO8X}(@0ޕI ((.XV׃~+2.XV׃~(cE F1GTF[hIEwFW|J΄fx3c9ӽhm (.H (}:2s6G%AVEkіәo\@­i_Vi_2ٓj-2AE>Zϫ {3QE0Jod_‡kV!bM??H"}O~)VU9_,h(z4+ YޤVUNד7% Oؿ4Tiߥ >'bKh-Hh'bK}O~(5!=% U_{?_/% 4..ewQj _ؿ!1yZ:2BJ(˿"2{Uؿ+^L{?X)Y7d_ؿ=F[Nf$;?*ȩ|“2v/FԆ̊0WvyI?_]H@FgUR-3W5Bk\弲}LKiߥ 4 HkBDƇ2w?LU_ؿ/ڥ1=< 4 H('bK}O~(Z-T* %3<~FP0Q/?'d_ Z넿-?ؿ*ʹ*T0{zjɉݫXMP bottom-0.9.6/docs/content/assets/screenshots/process/process_kill_linux.webp000066400000000000000000000177601447252316700275710ustar00rootroot00000000000000RIFFWEBPVP8X 7ICCPlcms@mntrRGB XYZ 7acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBVP8L"/ U㶍y/+"& Jق1DV'uoƬ8+ps|떆eC_[nUg^5tW7ϖ@̏UBW6#~'+-M be*&ҸQlއ{)IT!eԲ/%i߷2jM`]'Z~˶LG (٤VŻN^ft_fĨ%e,wK34k]u5CwgQKTa>45:FbZ+[5bZZ `%r'lA|NLZUH6:&B ВTOETbEV 6@dk"+W)֑O$7q@ūBLfJW 7q꾳xb+}Ћ(˗]DrkZWd>_$Fk%h-7}eJJpՃgy_ |~ojLY2V?eeUWiV5Kf`jDŽ*CDY: _aQUF+#\wkSVm-=2_wV6?tMI!0$E5eA_4 dtĝ,{^=?}WloI_M B._&\}g5 G]ё2 \}gVp~DWfPvmwrTMNz.ܱg|()c x^|}g|j4;*gq攷;4͏BoIEt%>DMjt9ܱNr>534D}݇~]JW_q AeP+'#T=_qi/~85«rUl uE\glgH@Uʖ''S5]}Ӧ"R^0Q)}1>Г;jdZ _46sza+[23 }} D ^^nXMRMVbA,ˬ0kbb̯Lj ]eMkzX*ʅڨ.,f~%j9΢b5`7+TT˴Nzny΢R̯ym΢ R|9} {Hziֽ͢Lpn󖒂!bՖ_-MdY԰g父T޿mTY0aJ SJ2}g =Tߤ?wn}qTɎL&h7"M _8\Pf fn31eV).TY'jLZoi@;,7frdc0\cfk6:m[|- iֺ4,ra.\X4YOOo^=2!Xwm4y[pn,&=nԍrmKSU(WfB2]{m鐅9΢,zXjxi!Y&$wvT . xBAd`7\( 3_6T-uYz;?,rǾVzpnn9{nNt76nMy=7g9[Sm"|Ya{nmug9ƕ&rrydȞc^DN̞c]DN̞c`No2l1^玻 ssD-@= ;r sڧ N(*UQ;r U%ʱ5j@sg42C;\XO ]}І NvA3*6C;Qr ]}А N;Qr bkԀhL;!mk4w^D?W;Kt fYRZjUn0MI8cnxhr{9z%(2wVdi/+ ?K(1EϾ"ȝh7b[ohQS}ᜅgʗvhrBF93"NE;a3s1rB@*QfNHNZCDIY=[Qf$_>ZU?}nz>E;m# ԅc;n ]@}"'qX1NEwvRF@=>2_w V+l%ȽcՊfrX.p>x V+psubFᎫjET+Za=9wX_O:ܫ;V jT+t%ȽcՊfrXD+' wῺYr P.| XgY.|@!f/Q" a^¨rT&d% = P.DOkO!^-A,or?X!w, 0yܟC("/ugE{KMV^w9ߤ}݄+=?gUI^wְ}T7&q esY{vyY2c+;^8vo4r.r ,XGg|~@X;V' #I{La)nݱ:&;݀@X J=*|/~*%À^w ݭ;[8X?k@Xbc5' nK_Ϧj;8Ap mGv9lK?JXGէw)-%+)1] tó}7q~SBK~ ^z<}msLw*ufuxKkc0KB?b9]V6|;˫߯7lvRL6 NRJkJ)!Pa{3g:8Nd*#&m.oƳ' li⸑u/y B锒~g#ow{wYM8\zUJ~{UƳ?d&P(%1hջu. sxh[Y@56x'p68P 椔˫cG^E[=:cՆVT*uM޲o_8uӷ9Hi//IӍo~~vn/ iOn]v򈛮Z#{t;._?jBm{r~.'Gk $wW)ㅗ~ y0' X.wI *>CE;Vd冥ݍMX$w[Ywr=0snOlwf.%=rݹ;d$5P9dG;wڟeCJ{ԺswHjلe>E2I *̧rWq3Z"F{ԺsIb# w7e:D eX1fioVj?k?Q?Cqk3o????????????????????W bottom-0.9.6/docs/content/assets/screenshots/process/process_kill_simple.webp000066400000000000000000000111321447252316700277060ustar00rootroot00000000000000RIFFRWEBPVP8X 7ICCPlcms@mntrRGB XYZ 7acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBVP8L/ U۶$zDU%) ~ɶ8!s9sr*Ps9jZbCXk؈pM*Г/h  &*$ryれ1<*J\-T` FHdZװm۶ $) ~;F$Vtk ّ_#g;`ffffffffffffܗ9{HYǴfGɠԡV`H9r*JnvCހR1DChE  ü٤]&*Lhf 3""ASV "^{8b&S;tUlgٺf-`3W^żQ*/{JAK^wmv?,H+9 \"ۭ,|؛l2tHΏv@색[ ʐ۸1cXX֦0l쪞cX"03ndžbny؝_S>3/'9N5ka T!{DSmvכ3nzW^ye.? |4R7wz0s_wR3wy#ysU)S \VVT;P? liZkCNϽvq.?iu͝}уvqa1!۽Xp4uyK;riaWFa$J͜-\ \tlXErb`»;`F"iqJ#EHlQ`:ی0*+iI ,>] fZI >Yrt_SSp{ݮ0Ο8afyfqlA`r'í$[VÑj':@" %ƸԔRj= !0f`V|o-d^is03ʁF.*ۼF3fQ? `\ V!3³AYpкQ020'( j I8A4%VZdΜsF lo8ﰧ[V֞/vg9@}z%e|$Q̈ϖ Z@i69'5s&u gsٮr.$u,{v ZlfM6(vwƯs+H.)(`-Yp- `"@O0x>RCfg dgn +Y8e)~)f羟naG{C>>h DǪ(5pr[SW.lb>l{"@뎃H΢x>R<+Bc-Zg-7?u(,*y&J]MhB&ФڐS*dsZAԜ13Xo<0vHu&nzE 0#96ƔGQ0{ H0kg؇?㿃 qVrNbQgRf_ze]ʶ2Lh!jL,&7$!d?iu~YȒۇ0jg >`l֍8'#n1]4UBrYɜ3ul))hЭl+ɛ8=5VTyѵycYzB +ʡn?h+Lmoj*=︦HD#^QɥdΙ:lp*%ʶz ɖ/`yG.sс1+&S}<3CWk"^zjli8|fqVtqa/KgWǖ_Mcv9AhiXV;W\D]_UǗժl\X,NG82`&GqO W3}Ѵ{.cOs+*rhk)m&\8 *'gh{ulUT;x(O=US953YJ: _MS\ĢIf.~ȟ*۲cxec|>08S \֌ '^g%v[j/m eU:[ԕkxQqVt /]8 F[ިlVS=<^\4Z3y-g>FV/M:m'Ъl˒o,9/cu7`M3{E?mn@KB-4VF-W!M:|C"RyVVOu+*rasUw:rHE >#pikT;Ѫlˡx]u퓤-5xnciɾhr¸(XDeMmīʺjbRYʰȯ7z»evo>:5- L\y#~ ѿ\ZWpf{hHi+:Ίf~8Y'tO=~RuZ n<]\4-p#c]᢮TK9qUG3jOYRWdSxяqpvmp6P-"We*7mjy9\dC6=@^e݊ltnnSЩ}Ǣ#SFΒ r͐?_gYhO>g٪cK_MK ԙ(GKx jګQWejVuni|tC0r~6jU_bE/hD$m–uf#^|Y @@!΃Lf]yeɭ^w\'ޱ"ansi8)N+P*tDr+wz?[u*D½cUI<Ֆ:-p[ A{ؿ0EN韴JܽceVUxS.5ٞc}|']l&<]׿k`XՏ7[e6)3Sڭ-S`X*.!09$=i_8رS}ˍ+]]'YڷПً`X**OwGǧoNl冭:Uݪw ۴놛|H鉔R>H.4'_VUٟ{RJkN5/UM;zUbUE>߽{SM|wj6s\u]pbuU7,r Z`???????????????????????????????????????????????????????????????????????????????????????????????????????????????Cbottom-0.9.6/docs/content/assets/screenshots/process/process_sort_menu.webp000066400000000000000000001051261447252316700274240ustar00rootroot00000000000000RIFFNWEBPVP8X ,ICCPlcms0mntrRGB XYZ (acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBVP8L^/GU㶑IRYo7wψRZ: "` , f[ڨ6.rypHV@N:gӽY7C sچ+nvjV7*rIΝl8Yfffffffffffffk:oNN3u*L Gj׮ծ Qq`׹Unk/⸸qR/!n r/k\8vmYtض ȶۆŭ ânT8Qn [M}C.. } T̨Vjn.aԺqڎj.ƍ;uՒwĶm]FTP◜H/$GbxfOU]1g?x{Idw?u.<+mTB6䄊&7 OL艶F̬* ; `9j٩@)f #ݐDW@Jx*V _­M(S:$aP 4"Z8%xӅ̛l oK9lmR=$K$ے Ȟz!&nes$fpR_R%w4tK ?8r4iy *[#RH,UL*q[hK,5wET.֒UY% xr9Z G RɥdVT9m,g-j&Kh`U`KG,IIٲÎJr!8rYuX2Z~tȪv0Z*/FٶM[x}ۈяlk/I$IxgqU13c%m#I}^+Tj C__uu_:uCh[^l]sO:1)XEӆ)7ζe54'Jy&'־'";eXh:Ka7l}1V `gSpziFz0HcŽw8gx{Qi4ĝUVMOمXu=* s >n}`ݧ ^A{8D:msJ8_Xv%+{⟤- q|5e_`9oi.};KԴ`-`~du=b\VW}x^].U.tk[v̩i~>JL^ٔ؝O;ZՆe"[.pV݊Z@E@ bؽ0ˡN*γ|<%l`XyH,}>}Uniݙ=y[ڋ~=};O]ͽ:&)$ק|@{b4wG̣m5=Xvj@/e]dg*ڠz݃ķ ~~I>*z0bdA8sw*>B.{1Ǻ}Jaq Ӂ+X=m6Oz PYf*?'J_ݚqQnRdGFUgMj~1\l 5'[BtHBISotY=T̆%ZJVG Tm@ ww[Lm3>7Mm)޷9#LH|)p+xY>pЋ\|%~NgNe@_qx5nN/mq:;@avcѸ*&Xvg ٕMަ| f.Kŝbz_0jc-(-hjGYg̸%lhKdž'莇{ 绹`w<߲9""T#O'}Q'9;n1s%ac1d>MØ~\E{co촿55Zx;="mAX؃nw]0+4l 4U Y)Ci;k:O^P\値ְdce8=fmjOMRV :zv?rS놌yؤ Py $'} w)Ko8`cø@DĩGNxs*J$ 9;o<2G͑] I)9w$\pxf}oZ@Xd%| {_a&WVʞ-6lXK GN5-XO= @H@q,Gfqq>plSReӂ~ZbK机@hloE&2vmbz3sr BG YkW{ sgrw7ݑo8HH& lH}鄱/~Ne+8sw*S;yk@w9`n߉~CmmK+o 6dnfىu.%Vj@2+cdY? Q=CP/wq^/}lW]l邝*yDWWnT]*_߻Ծl%1O)=Ly6}O7oWJb5Y$5@4jlQ;!yZ B#KvxSMlЫЧ*yW+Ů~q`HyZ[a/}+nCn'Kڍ˨iJ6KV;=0Nabo֦ *$g\I:/Glj@2x&QVixV:uВ;񞁁s@8` {˚D2Oi< tJD:/a߶y`%Qh~/7.3 p[CEoyfp@~0PG- R6U UR^mb5[m[!ߠ9[#mcnmfFQ(#4KENJGNX@BJ6vPB"&t>̊ߍȩDF$B kxǥLT9DT}5g ~4)%˒R !B63#}O$F]f-%m[5H7 r+$@jQOꚣl/}JS@!:^%˾~?jN}'DE(:I呢1ND"" \(ያ=PYq mxKt*{J*7''+2*G,Ω'Ix(^*pJQԍmN>&>-j:cX.$GL T6\0"FCáWD ))~ghբ2fsYM)NiGI"\(ϻm5hkcht}Kt'tBcCBB4Rj{ꡲ_11\2YE\C1Y >Ֆ}#\"!lA r4, -s m(Bem9mDžf!9qޝ@?i`^YWe!%w*ުUS- iբM,5d| ҈s@\T6Sg5MZ=>c}kMGz0`pUM/Ze}^SIw@0*9QkǴ0Ȓf*t,IϹ"nhdQxIo;Рz Z7a@"U\ q-< pJ?2/Fmž7W]#w{^$"`OaTVof$%kPBVw@?yځSE|P-~1 =a_d2UrHypVKUw~nQ0NF hO D2y8\SBM@ ږ ^^]p9)<~"?2C|`R6Q$}+ /HKy&h "nܗW]C;P&J #_?1mu@Ju NXYTF 4w8H?L&h v<wV.;KB`sguWMDV!' ,o$T7X iMMrSč㝅fL;KΊ*tϘ & hR߼c51uʫ:YhT6J %dǦBH4qޱ,55uʑnT䝅fL;K*1,BIf:IHZ 8O/Biݬ]=j>J gX&; IkAM:[kGE$U"YhT>J ,gXX&5;5IArWxPz?工*,4c*YJ%2w?x}(NI4pޱN yh,Ôvw1 ,};_W%Ѥy/;/!i9ﻊκrid;KdOr/[8')@I4pޱZo>,"xWlTf*;+>("ǠoVrl5eyǚh)HZ SOc0E$DpgKTJ ,$N^.̿j$eyǚh)HZ So3}?JHBβfL;+sg;˖z^ӁugX|L3`N>hd3T3Oם.cgwITP*$pUcpgOg.<; \""(XIx͂)K*_, >Pwu:#ugXYE.|0 a$m %YEe˝%"Oguq,p8ȅX7SY !DKIGP)YTYcU_pg3O:8^wEE\wr2eOBlm5xq "hSsgC/әgA<;˺EE\w,اLC0^ph[sgBTV]pgѧ3O:x^wu8ɅXg*ǃkE?95wV.D@ewҳ ם.cg< 7 UjDkPY*ۓJ:8^wٍe9 [Ϩ>Dk;S4hrgeڕJ:8^wO(s2BCc5xA %YE[;+7}'TpguY=wWb͆JۥH&$ДN30|6:1>Gŝ"y+DKsu|kcJbvC˙7 N'݄$w__а%P Vi >Gŝ"y+Dk/rgV#)E;tRM8uˡB}sU+FYۥ 9*,,x_%Z{[;˗&Ŧ@zb5f,DAݡnŜNZ |(ԣNYRtжz;aHl.Y~!IF\Lp0טLk?UnSj&E;,V:hk];š;,-52Y[;ˏCٲ|I[P27O݄^ 頍;ֆi ~ kD$6e|J ΝH5tkKSS2<Ԥ.;F;\&-#'I\P"6 9*Rؔ)i68woJhtBz,=lnDp'nBz3V՜=_,Qaj2X>%Ar{w:Gy#Ыx`&{%jMa(6Xk`6|ʊ;KEbS˧9YΔ$71uec9X9.56L!餴\rN)]wXtk`.}ʊ;KDx_%.dmn,gQv׵-_^_[-]c_T>69tMH.c\ɞSH 1Xk`&} ;KDbs=WK0YʝumXVNA:&;˟NcE1tMw?Mpk[Q dCuuUYJh .*(R_.@,wB ߱J; \Nr>SЖRZ-Lkĝ]&T:Qh'ݳE5*LURZY8pd',m_٫.`q(A,IMx3˄B' i}ʭwB)ciwO<Ic@SWtՅZ-L• 'fwPD!L ";+С5R_IjMJYS&|*)sxd½ABT )+BtC rgq&J2ЉBDw EwV#wxRCjI[;kL%URPs.%NrhP]PYI0AǼ.;QκU' *ԧ/y,A0wQA͝@2F'9ʫЁd~W](pJr9p7Aɜ.*(ItwPDzDPY%X;K=;*'4(vE|+Z2«.`tJr9p%`đ9]&T:QHl"A}RswVdOrØ$А_uktJr9p%bď9]&T:QHκՍW8ܹ+,X$GM6G_uktJr9p%bč9]&:QH*n%Ts,rʆX).,ry{dZf"湽v̯W]µCIΝ;= W"&HeB4"8,;+r?B&& &YL ߱R\Y4Im+嗮p vio;X6Wɽyz^xsOĝDw-(ʅ!Z@ U\Yds} L l!;ĂItb\*/,0@̻W \ʾcra5,;KDw-ʐX@ UVYG>_)'p]Y2ag;g ,el wV6PBw5@̽W \c9Q; ag;g,*l wV6PBw5@̽W \cyV݀{H{pם{JՂIt#Y8 @ UbY1>_O2˵ƈaCv3eX$l wV&’w`{|M >lXw40[A°dĝ%+.߱|TkAY볝Zw40[A°dŝņq+> w,z?񣔥>Y?pg%JG4[APŝE+> w,7 F6K$,}Y-;+Q>b\*2߱<|'r}'rW_ϝ_·Y"wBH}'$5 2VAsg)cyŗX"w#cR r.R5A /wH;!PеW|Յ_Y 'n r>"KjAY +Nh)+/mYD7Y9%w 15߱"r.«.J;6%Kp)YT%cER -]]{EW]|͝v"+5$\ w(H| 嚽K;+DV0β ߱b@f/.b'YrWKXwB\@^U^~qsgYD7)9%w,)H|NJ嚽 ; "1HX ,pgOA;V(0^٫.zsguW5/X^"#%wlqg2|͂(ssadqH,h/,WXfwVvD;w&͚Pe; p{yggA̹MBܬnj`A`KhIY5Ͻ3N7Iw:7PIq;/$f%f wV~DΜ; $q;B,Ky ,tU$cehAs玫PL/"#%wHY9J h)nP ksUF(qO]w%O?ִ|ΚT wV~Dam1wUF(q""#%w sŗ4RVb]pggAsΫPwqYDy$4wtB΂(.ΝWt{DZi|u\nQIE %$$`%)4sTMΝ{wVwVhYuUNj)}TFZ7eQs ]K8Wʲ\E;֎; Z[;+A`neAs *`*PϝUЖbJC!ͲpYPINw#אb*.w wS#22єzTYt% o6 OF\ENr8.kpg10A @XGpYPSAgKu2ԧ[7! B;k˝Nqh 8bK,c1Ow4Xǒm%!eA%^EI%- zp1Fh viP{7[wȦ FOĩHqur$uxgo )ahk4b;Nf]\; AQ0nXϝ챴e> WXfM|*QOA+!,7BHP7wVNCvDd2Y JD]&\:>\4ЧH 2{`!r NN|87 wS#tPp8B,˲%t*R:Fٷ~Hˍ&A`ޱiP[b`pg5 u. YL$3jI.cYs \ܳprM+_3rg \WA? ϺgB[;+c3rg \3Pw&;2w^Mg )Jub+TW˪j*1`\n%!*H߱^xؗC@l?fT,BKrI4HX#48C0Y bk7};k=VLqN.Y5DW7~ʕ$aY C|YY+"".Y.VJفP@1ưh@0DRw̝""b+˝e p@]b(%vILaaaØ,K%iݕVDDleL>@]bxKw?j:g.P0bU(|`6wVrgtOZqgA;.1Yt%]$3sY(#[i"/!Cɸ2;{2w֚}@lEY.$.M#{ѕve)"n hq&X֒Y@>; Pw|Sm1xguR>ZWyguW[]T pMskqgj`]!rB _m sYX 0繃a'ڨLU0sZr`%N}'\bYe;XW9<ɿ*fDK,;aLV7Li`_nIB_w 3Ec"N rk18!2Ww|hTB}' b/B,сbp )U}'̊;X)JA;X@1 5wĮ:!2Ww¬hN{aB,PO?2Ww¬hɹJ;X$;XBc'R&N-9w$ *=w#,B 1Z _v ; P;ask;2,+dk2Wwau9ȝQ* +6 C(xC; آ$H"*ar*-jRR)0JC(|C;8))Yz!BY!͝EE@ wV0w':: i,,`Yez!܁`HsggP(6JC(ì""%b;H;;: i,,jwVwEwu>xYrgp b;p;βlQT%Vlpg}0c9sg57kt}RF+j}ǪHI2GHbŬXwAxF+h}Ǫ)#cUY )#cUY))#cTYI)#cWY e$w; ĊY߱+,>F+h}sga;ǝ%eSCrgaEXJ65-wVQVdSCrgaXJ65,wVQVdSCrgaXJ65,wVQVdSCrgaEXJ65-wVQVdSCrgaXJ65D-wVQV%eSCrgauY`sC_;H6c7 `$k߱fVEv$߱fV@Fwc Q~͵X +} mX +}b(IwYc1d{m;֬qÊp߱FҽkָaX\#^5kܰw,.tm|ǚ3nX?wV_$ಠ j|*\V;CNCsg)pYJ j&##߁K8ɝ%RINCsgIpY Ey+wX˝Β಄vCdr^ ZҺxgi`,.k" pԁ$r 0!m;. ֕ ;CNCsgH8FK")B2fǪxgi`, .$t, yI>E`Bv\@4zxg|ǒದr %} VwJw,.+nBgK8KwB2u=2 9 X \nBw*A;/L2 ~;CNCrg)pYR M:/LH܎x^SX#;P;^RH2|IY6Yiz|GJ,))uT3ϸrh$m:XwLq]_]0dΨ !I :# U!Yټ22+{թ-)D,!Q,I(F˔;+s!;"TxߏˢB[<e3_/ "B!R" Kh_x ^%hrg4dGJȌ)l%dh7/IO˖Ua&2U%J!R" /=RD/ mLb?w#B%D)?JО߇bU+) YRQ͛J44H42rԔ2;+$T«0{YpШHiBVJSz4,>2!;a=2qg)Vbg2 Y QdR}FiY|d":wF)ÂpUFC,J,aBTh>+4,{d":wF)-ȝX%V܉YU͝wǘ@{w=fȝfk4,wV;k)B'U5jSsg#r,P3@'$:0!Sn4tHOQ 'LG r':ЃqUswǿm%%; pt 8ZZ#9wTbE8L:VQ -ӑ=sgq%oZӑ]sgq%Ftt5G}'#aI JW20YQ ȝ\sg+#tYwBtDNF8L:a 86F}'0A4wW28L:AOpk/W:HY=3舢dT0 +K铹~4?wVw,QeN/ MwV;xG!;|Ǻ1DPf`JR ;Xly'n\pgZ-jQ2T@c@ v;XP伓pzRw}ǂ(eb,F,Z@("%睄jRw.!Fɨ뱼b,,~d݄N)9$-k]uXc|E#cyŔYvLA2 $Bеc%d4i@O1e,d9L`ANBH5'YV1FedTZn>EYfLt ,*RqI:;+jA[w,%r#t*WJ&Dwly'!,^ ;V?w`W_퀖hsom7 νb,;wm-wfܹYsrgn̝{s˝Yvܛ[,Ͳsrgn̝{k˝Y0w-wV 7OwV;;w7wPuT݊;>_462Ynŝ}/sNn72Ynŝ~/s~-N,_pw;,|h;w7wOPmpȩE}aܽn@e)370ЎwB|;w1\n@epp-:_rE}]2 ];>_4TFwNDKӮ}/sk*# ;pgyFܹø T`YjOrݼsrg)kt2pL~D1NnW‹Fh2 ݿYtÚRf7?:6}й jPf;S)A*+P+^_ maeOAʸ`0HT!W4%Z",eܽrgY"">P@)"mKȯg2 ݩ eܭ`J!^DB J}i g2ˎwL)+J%Q?RV2+ϝR S  *ˍ0-`L,a}rgC )AUW4%ڞ,aܝrg +nן%W$4!ù:(} ڟbKws C-NUAX[};uuIϔvKOdd<}Y[w,ra~P͚;4NxP$%"cϔ,\ ls i2ޅjH.%dޫ=m;L9; w,*%x"-pκWzY%;x0%|*[;!UEqfk<Kyp͝ex-U5H*#$L$,0^qgX3{C8nSeI2΢{ǝUc)ϔι.ˎQ0NI%J:β^w>΂hf; pjm1ګQ",Z,# 6JY|VÝ5ƘMB,Z,RĝeqjmV;fzpg*qgY,Z,Rĝ7 BZ,44JYeև;62>wV;>uƽ}>Uƽ}>5K; V;ƍ{ĝ5ƘjƟ_{sĝZ%qnk@ĝhHkĝu֗6PY2q@qgpgQܸNYg6Y7>wV;>u&wYw7qo|Dz|V%M',gVYϽ>qgY>uκ',g:Y7qo,pgĽy">Uk+',gBY7qojmho:qgpgĽϝՇqgu5Yg:}'Kwʀ#HZ.f;(p*UYŢwVF;ˢ[e;K.; Эɝ%VŝB'w8\XMw;sg=jŝ5ڛ̝Å|qg+t[`/GtG`Z/˷4Yc+.a; ΢2w VŝEse,.?wV;{ǝsg*錖8\X-wVѭhÅhqgJsFK.;W̝Åtqgٹ3w Vŝe+Y0\XMw;r³kdd`+@A6G I+9\Zq_kЮĝ_:eIY{#qgΠ#zxvcd>j ƂlϺ),2!؍ٞyqqfwe^>ʆO@wpi^On"+Oϳoh,؍}>ە _4Dk^On"+Oϳoh;9 >ʆ/=H5c/اm77Gtn,ٮl$Z^On"+/DJv%~t{>U̬澓Vn,ٮlt`/7O-Vwrڍ}>ە _2@$)`fdN w[Ygg}l̩.r"hͺh!.֬K΁DʝW_gћ?=clt/YGw~J9hpgchL Ê*1*<ӗw\##ll@֘sc%>YŝE~QzUe lbJ|9cLY=#oя9Eɝ5Ƙ;1ܑB&6/;obw,Ewy 3qg)PdPfIЏū}9;r/_|?ZJ;KQw#i;Kڀ"2KUYJ 9`pg)PdPf>}B);+?ŝ>sGuY=l7F(@L_pYU}',U}',uNغ,Ij,~x,X;DrAi L"}64/ċX)S߱6 wVNADsï΂OM$w_~N4SX!do.8Y)R߱6"wVqNA@Ҳ >N0SXS !=&Nw|jwmȝUwȳ ") sb; >5E;*i;HZ쁡13m."; *S߱wVNA$ @PtwW.2kqgH4HKCK~cn.Ϩ΂OM $wF@rP3"$ !ssyFw|j wMȝU w& M\uf pY)S߱;; iD7Me3plIeQ,Qj7a.iv"(wfA Lz.{+ʝŸYnB)NĽϝqgu5ca%N$ ʝE@eՔX4N$ ʝ@eXvݕ(2mIb;ScJ(2lIb;Yerm' [Xβ@ewVywrL%N$ ʝev J(2lIB;hk*q7;Qdؒ4D,w֧^'JCh*E?YTVI;Qd-Rl*J;Qd-RϝufbX6 ˝e?GwXEYd4|V+,n^,JYJ,Xwd4zsT+qgדl@F;>GwVJ۟l@F;>GwXYd4r_)qgXl@F#;+1YwXYd4tx$,fIQĝEVbn],uH̝r}uWS"n,C'a) RvGڤ?? 'T݇TFYcjҨ֮{pLq'ލkP/$RңK.JDp>-u##z]킒qvFjڤ??¬ybEB ʦJȑen"PrP*MR(J>4yz A [Rxf]"յ[-kT ;H?4 ,j]\4N'ޱ &5هGTZ8ꗾAm!&=Y\ϦSEd|x >c,[Js^@˥Lq)> su:cOeأ`/v݃ *M褰\Cխ1٘9aO?ҳ 51wR$( (m9e~|==d־ּ?wޓ2*[a@^=**&u޽ҘEP6o,y$U mP>2IB!Aܓ r9bF1ҵ4-mvB&seč9X#G)dβKZl^\ ʱ`'<fЀԲawpS>ydMYyXsēKer<|L &PfV;U3q*A*ҐjWN趫Z{SE֮xf`Td/|jD pmQG''j/ayq<}}+EgOƬ68af`@[5f&A4Uh)-'Jco!~qճڭ_dryosC1&皭EB (kkL}"f& eёR B8gERڂnJ`\G=P~ S#>+:)oFWg,8sϧz]JPq/D>Tu)AphMRx0 #o&sЏ"1] {ҭYn0\)<E&GlHq%9P>y !"X0䡉?  [T )AaK I9Tw|pEMC>SE֯xs?n1ϥQ??_-jonIdv{¾DºD•}IG,Q: !3GO~NzVm$[5茖;nr9 {~&Y͸Z:szNζT 'gW']1`.>},od2H@$|ďҢnFKۃQS(Vƙ=# 9q=liڜ"0Ü&4cԶ7p]z[a@.F{S!%Hw'5Zzؔ ")ܜe m! []nI1Yrq#qOZB!Aܓ r9bF1җPZe~e Nc( /HJv>02kGMRmo\9c#oךέ='Q HR<9$iЌrÌg_Mڎ&)\"kW|< ~'dvZ|pE]M'`Vd/|5us*cdz2k>5u)s DcMgԢ͝%7GHwAV0n$~jL 7 j2 w%۷ #4QEQ!EP[dl0"}XFjppb,~tяR 9u3ҢmnL ڢؔ ")ܜeiRbP.wrsY 5-mvB&seč9ɭ97Z[ӓul_xŻZFgc9a3};)rÌgݰEIi(+cLX4Na EΓ1[a@.F{TU- c^=){TBsE;̭-M lJ*݈w9B[HBd(8ےa.G>V\Hc:VPq$\}A8'tֶGl_zBS?}k&;e#L ӓul_xŻZέ.0Q'Qr |#31>$1 c#,#31>֪u)AphMRԥM5JBF?r1u0mcjGp1m8؏ZQ2F$'ޗP(ޔ7X2 7cvTʱ+kLX3 ǐ?)!Ո nJANzcw|pEOb\䓞A [Q??_-j7w IR??_-jA7 ɀF}*z'M.Sƫɭ97Z[͊HɅ߾F߯403rÌg֪u)AphMRԥM5J $Rje34~$]K-w 3HՐ'g=`h?I4C2t-ڬoO!R aV;U3q*A+˶9x];RAw|pEZ՗l0svUt7j:|pE]~s ,gܭ[A1)8Ũ\@XcRQrQҭ؄6oE\4)/_`|{9V~>͹oTߵIB,6?1~6J6˜ $RLkGI\S( *Ijߔ `AEO?ORv@Vƙ=# 9qwڤ??”^h/PR 9u3ҝ?O]BqO z2lY6)rsY9bGڤ??€/ZrL%˓rxJofLz$ O mf2@2cI)~'Sii OI]ԲawpS>ydMYyXsēUt/눔gLxD~RwJBk8 Oڤ??œTƣ9G? { bottom-0.9.6/docs/content/assets/screenshots/process/process_tree.webp000066400000000000000000001123401447252316700263440ustar00rootroot00000000000000RIFFؔWEBPVP8X ,ICCPlcms0mntrRGB XYZ (acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBVP8Ld/GUⶑH D#YQ!UTeDchJm7i@D$P(cI1‰>8ȯu{?)Cfffff&̌aa~~eɚdiQ!*%T0QmT)ز婜R$:g)COS<3.jj2*9<Y*3S2e+OJVܡr{23XORܥ#9ˌr${=yb[Z㣅XCVSnᒵ̼gy/tU3 ςgy{J.zyʎw#9*25P;^PnV+޵ {$R?\xzY) ]`,UI*RM*iVdV_XtrXPL?mA߱X9Ԕ$ًK{(LܱfY72{cs_ڷd7Qt>XR:aRijE19!(r Uf9.$6-ژS ;q 'L7 T!w ,M a!{q<CSPe(6BI]|c#pl[?BxrGs,CFBM;[qvAݣi柟;/7_eYځgŨ)/XٽflD/I?2$Z^dp-[@BI}cg;`'oɰ!^U1plm:PrTܒBU~yͷ0e55lJF{$~[}7ߐiEX P%-Ѕ]]L 8" xEP"/*ϳ4vj{V];dkY7T߼{/;3ՕЂ$%7Y T|M'7fV]ڽIw|;`XN`1TA ?ա_ B1ߥ#C\?; ys`33^k۟GR%%<\q,KoVx?"SkH8ߧǜtV:Z3}g$n([L^Niu45ڜݘ\<|@ pOEFjcL к nx7}17d38n |,8 B2 Fj??3?_Ug\߂Ĩ){YTÇ+ j ΠB/_.̘s}?ƌcg(9[C?K㟎- ZϪ6ıԵ*#جX?^5|8~SK+ ᩌ |((৖M\\P;g )\blkfHgQFuLsm:H?U@.]Z8Ϸ>'{>2Oulid}H q.ucWt|| c7+s?Kb-K|w d_XX#oٲDC ?/Jd4ռJᩤ!?} SG%XOTP|40+!K~[1P1cU3hwP)r"Ϸ ¿krxd Y0xF qO2u_~ R>G ђh> ZaCԱ+bQS9F6꽽FgPC(`#ۨdsηr( ?-!8SO5b7H?cNUt=QTAC% R߼b~ws:]rC/Fp{!BSA}k Sz ew(!*.xGId^ߓ`Smԋ|8ٓ ]Avp&,\g > ?B'J*w|NP%1{miEQO'%;TsZOExǘc{׻Y|!_ o濿ڈ"U`Áoric3Dѐ Վj**p#Gq؊|0ĿSrCۨ?㭐$j3Ipߖ$ɈT3a8OFx`[g9HZOT%}߭yJ{G=c~7z t*!^H?bmkd2?$H q+=>έo^WJmq 㑮D$S B!khH yM0`_'(>{;%=?_Q/ }F c#SA}>S!_#v|]Z\/rARPANo.$!{4 q~Js *Sk g}j]xּ! )̀7:Zڳ_sX#ڧl]X#ڧc/~Js ymg3g3gORWgj'}JnDY@qDhĔ)B `1/i)$6.0xEiZt{qh0fT S.yI%bLML0J kav [U6}u(a`* 4t`IJq!3J%Փ! f 6%JBQ dx4|1;։H(a`˷ưr 2%LMu: oUV8l|r%YbXJ*@:^ .]Pvaf^Xn8>%DƋ!" ]9"Y[ F5xM2"vJ  ĘH\F9nXpger4\Ӵ ^1vy?C +tuV8/AʲZ)ыYVj jÇG݅lCXBG81<i(iY϶uw/xmD4Tύ$#R.q`t+$ĘH\#K(+͕H=e D :vұ !J[aa[H%dƸ0LA\qcp5xG8GYe`"h(vm6Mғ5f qsJbU,* DlF6ȿ4Ɉ cAȦxz HR\P0K~#r#z -OB_?L[ERfJc\ǩ -V8[eHѴʔLZ-)&? 4b h0F&?QLF$,"[ T)JkP7E') cAےFJF£Ν5ͩ]eJuBs-bC/ r 1f`ƏY 0v"v 2V@ ͕j8mB=@:ƅM8wVMd3MFI]dzC @d|nfxċ>{MJq .)RkRfɯu] u uݘZH[>%bVBuq~1QdJ+ɔkxRG4Z Phz+0֐&?%dDvhV>=%k&}"D w S]JD5E*O2qk@@ʋD!$u$ IǸ$FÆu=xDNߜVE xo/iVߤ2fi>/dD~~[FCl4AQ^1$vMJoqu5z!?1}Gc%Wj`}Q+/AۺF?ѬFcOEmCnb6SQ埌eal濟{Gus5Imcv7g|;+ΫL* =Nd`c3?e(-Yqn0| D|=`QZ2PZxg DGҺ E|wqRB7;,t*-Yqn2 ]vl #ieZ]4C!9*t*-Yqn{<ʴ!.У!E U*W<@!$SHǭ❅;6X k" ' zFҺoMҒMd Pj:RTұxgǹE7O!/v*=z*A}oֱH(+Yqn)l9\ÎEBE'*/E|t*+Yqn w9HZ 0c̝i>V0_Ȍ1w9HZ5Mrg!Q9-l^V?7T/-80KthG5j~եe1d7ګ5 %b[EQtIi}SVӺ瓟WƋ! LjRK7kW|W&-+>|ua rYΒi}KUbYFX45ɒ"{V;r-.T@m˲YՓ)K*̷@%y&EJxn}bgVuaq8Gh݋KBƊfb??#{{1yz_ltf+qM\뫬VGn1<ss9OU{C)ٲw;sa+%]%|gY\l~{LRIZUp=RIْZGzڕ(Y`vy5}ϩ/G;nu>qj׹>?ɼ7_4mG[ޭ-{QX*zW|W46 Y!K'෹d7{5eG$RIZ旛yɼEڭ+Sҵ]^{Wh1DxA ծ}0jZk_:.F0]9PJ%񜖯Bc>u|t{ 6ۮ z;Q-82R^cQ5.$%**_\"(\O4o(U3~ccBl9=>]g`ƏԺ,e\bcD Y~"x%97?Z{cB@?v̲۝ qţw阓!["PXtVwA{`?OBDž$g$J-sF|qeJԴ.oFk?gGd,%|Jw-HD8$Ӯs}0jßwLqǁtجu~E ZA{֩OSu,Y*]<~v2̭7_XVLkJ΍]"]clH\w&g$B;X*֝s"߳r3If2Z Pgi_Pݮ}0Â佽1/=tF[ <1_=a~/(z'6+u_2)hjZGcJj-hZme+szZ?mJvOrCsRBVH5d{?ރ%gBTó$3%S5sXϟHsy'5{\ 4bX,9{w̜duvVxX7җyɑ?1!|WN#8ﭩ~ۭ1O'xج,ƲN)%RWY Xڋc)4w(SHVK1"҆੽aܱl/,=d!)Rh37NWC|w,p 8AtK&\%q;! x@澏kBܱ /,$=[R!G!NBsq'i~{N߱ i)ҤLT彮(tik۞Y)ӕ27wߧ5Ίl_Y٤LD+9y'\ Jhͼ3;%Ih+H1thK:{6^. (lͼ❕gJ%e&Z;!!DΞ (ń 7@ 6,xgqR #;ꙩCD+Yy'$EL$fk1! ¦;ˮ=?1y',tHh%+ ?ј=4`ʷsNL]keߞ޺6"Be1˝W >L_]Pf/w,%hmqsg"d "0˝[ mY"A !,$M1'BIV"B: Qag) AD`";k=?*R睕!KJu,\NO D;J6gĜol4d "0˝?;?X>gH% !DB'n%Nh;K@By /=rg$'0=\eIIKޑ:9'>~LR;QfTyxgɜ+iy:,3XI/wYfg,:p "Z%-OI8;I$4h<9eqYﬡwV9;fY]wX^#wV{~ygAaεsU? Βue8sKeyeֹ#tؚB{J=%3&Dɏ gG;睵Yf;BG(3=+I 1,R=%tjV;ˬsGVO8xh!E'uʞ}Y;B>ngJ(!z~C Xf ,R=Y)Y s;˴sGGpKN(Q"``hN{Y;B> % =1,R=Ryggw]C_F*BR"5%4tYAe׹#`ãHr)hٚIE4tYAﬡw־7m cI,#+:%>; tl;蔴z ,nN2z ,2lSVH7˄òMI[",6%~;t>]iVY}L%~; t%~; t%~;uL%w(;j3GqǢNet0⎅+40⎅+y0C7bPW/BZޘ;܋;v"/u~!XU #̽ca'²*:tB kZpoQa ;=PѡCR:+բy+z33s8Eczs/X؉PHaV m#cNeίt"U #̽cNeJ/B`ZpoO;k3g>wŠ;k=?#>ww>Y9e#74Y3;˰c5 yşBޟ;ܚ;,β5KQSQ(J,2b-`A/:ʏBTzggwiqk n8L wV{~xgYw,5>귌;+=?L;X^0CU?:zggw]qk `C$;+=?;XQț (QwV{&Q7Y?y;Ou+4YcH?seֹ#t ,@D Bǧ;K~cyGXeAe(lYn ⎥no?}ɤ$C9r~ۇcyGKϋZoe7|MV9r~ۇcyGHK}Om Jd69!Cܱ#~s$! |-|MV!>K};|94ۮ8tpWB8Q*%}]Cw,[(PO\BAf'FH wM);ڇcʂBA=x}A|MVQbڇcyGd ?<\_]^ؼs>K;B/HHF vmr*>H^ؼs}KWqkw?swT%5'hˇi;V᝕#lyاmu\L;V $Ξ߄&ںrw;ג2݇SdYВ2")F[ի(κ`XU#}H:eA -),"kơi+ZZBܱcl >GdBA2N7B"k¡HcrZZBܱq'wzJ3,vNYdBA2N7B"kM4h֮Vw&;+4-Jqt3) z~9gՊUDxgq֦bSdPВ2IhKHzbc5YxWR!rʒY$LA"іYhj* qj!o~ȃg,u",iEfAK \E:-ՊUyg9}.}.yg5 տ՝;)n|Z5jӽ]ʾseGf;+Νvؿ" _'YYILWҳPDABC(B%`;kIʕC8khXXwB&e>Pԉ\AWn"B%" 'ˤb&t "+N;'ˤ{2=wpDf{(D5 z,t#e J!P'  ;ܫ;w5>Pu"r   7y\Ap5 7y\bYM?;K%Gz:>VVp\Fuw s!݊wdygђd4dT#B`կxg9Iw-IKAF5>B,&Z݊w,,wL]]AF>B􊤉VE$;Hb8,UU+&Fw@@y$|0cTدxgNn $ Zh>1*_lκtκtf5gOS{}ps~+?#ܥ J*zf wqZQ@,7&9#dow>5wlLD]kY%WAξ޷ԝ{ ({ps+Wc}>GSpEG;Cd*q CcV"uA޷ԝsGF<&xP t*qMǬ+ gq[=9/!$Q||>,Prs""(1Sh:fDJi{Rw@ psGECܥ J X}ǽk;0Pxg& 'M@;kV2n$)j;y䐦2w,_xygqI;c^hX)t߱|mE͢ɼZvB2%w*2;E%2+XFHJ"b&RO۸7w4n\RޡpW7BPTȢb& eQjh)iW|;<=΅LdoǍ@QELRX~PCKw,O۸77c`ILeq#E%GB@. Kw,O۸7fSܱlIfW3rΉBZʸcyݽi4ξNd*YM rYHKw,O۸7wM&]y'pW7BRT@R @Kw,O۸7fwV,)ewBwq#E%2PCKw;aG>;.,βrheuygQ _4EC5<ǽ=y[_4WY_4WY.lwh诼,wh讼Lc~ayg6w4/:,,掆EC靵B`uY+ VwꝵB`s} j7ÂIdV;FT^_Za],RL"i!Z~LLUNo; -4uEȨ->w6Yˏ)"4ʴ:b.=wNh&Q 4hCK;L;,:P*3KlKՕj $﬛QL"1bH@Hu?ВW>Lrg1E2WQwX 4S i=wN &Q Q5hZv i;KSD,Syi~u`uI3sBUwX4Fn5(GVM*΂cHe*WQwXf[ VW?sGâId> As?ڸ3LDB,8T`~uj`u";'uȨ}PmW<1Qȝ\ϊRviu$;'4uȨyP~% Ҝ&΂cHUf?H+sBSwX05@Lq%o7f; )"!ͯ4ͶTZ]Ipkw}3ΒP3}V>"}9<߇.X;K;BpgJ .V" w~L?TygsGHLI&TxfhG'S`*,yXfi$JȮs2ȝEmOz9d&Jro]#$w&[Y B uN'3f$]JwL|WTygsGHg'0FB,D7̝)~d&?8'`*,yZf?f(@'3,Dy؏.XwVNYY"I#C5: ?Gxgyxg᭻#ub @UY (L7@w>; o͊4Yb׽ u 㭂78o,uwnV{Uoigg: 2^H@lAeX{g [wGfE,^ΚsZDhJΛ;o +*TY _^9PY΂[wt4Ȋ U6wV 4Q Jf-Mŷfigmh,H@axԸ z٪Aewa7>[;K޺;k`ׄ?k;{gђE( p/?[5}PFyg΢;uw@7+dўV –;+SY!-wVBF [~=l3GY \Dy'LG,&`iƯEW*XBN8]4,TPNo|*wW"RwC";aASo}K=~e-2*UqǒEwtyl7򾃥_cN%N8y&|ъw4W"Rw,.wBsǔxMU`)ƯeW*X \y'LzhU;X+kU;A Ӈ4ZfҘ_p0Yt4ZjZd~U⎅EwdAA^zh5;X+kUNkwAkܱ2}3GJ>:z wBwV叵]4PheE; ƶW 5Y?fR;CtsP6NΊ6wTVQt4wbJs|Xy'=W)=Xs7;4j (h:;VԛF wm{cm )%&MGs$ؗ/Y6NU叵D%cKM_Ay YX;ƶW 56w֜'wsKU8ml{0_MwJt4hwgic,v^y'xg^X;k.;ZhzQv4w)m%6X 5Y?zknI F5s wt^y'xg^X;k{_}}c.?s !<?`aYw- !TR*7,+⎵5$^wX>eEܱwl@ IFFxaiVي;ւf3;Pk)!PnX,XH^S$ukkuPnX,XH_z6N R4:^wX>U'\ԍl?@acI$j?@ac)NmgѴ:^wXBeFܱ6wc^M#uåTnXwܱFq}>;MhEa+-㎵N;R&4`٘qLy'TV1΂tQwX90l̸cmjygQ _4e`ܱS 5uU̼8݄6L%;<;b%Mh1Աc{?O*fYn3ML;ůz}ygA 3k_Zw,uKUuU̼ ݄IL;캥*eYnB;tc+SE㗃Jw+ݘ4l¸cmj{g]:zg]:zg]:3J3g'gfAǧ f jϬe|=s1 f p,󼱘`XL^,cCUqh;XAyw,w5CRJ+wىF[ϾW}˲{Y>V]ḃ Vw3`xDVZN4`;X;ϋ݇dk:\A'm0VP{~^,սlWqVN%e6}˔=wgܱ iQB.O,}gTlnOz3qo>hk 1\䪤r!{VEBTsUΨOnðÝ.gŨ\HX Ъ^&tNJygW } V;YU`|=k1 @p ٹ#,YaurUsǨS  cPC s#*2m%Y gphPM!;w;+=?ʰ;F,*M0\4hZ dsGX<; nJ͝27pѠi%X~Ua s2,hyuLz;ҙzge)Mw֥35gO;̢ MYze;35Y2 M!cy'4Bˬ?tDЎxr; -2nAZ #)iFɾo/XՃwgJZf s;˶}HZͼfw;UDj0׼ XVVwlΒq2:u|Jzg7X9M+靕޸c4w-okϰ~!%c5n$4n;w 9!Y]ȝ;Õ1w"7Y]ȝ;FKp"xg9w"wWKp"xg)vw?w"cN;wN1w"/wΊv?w"cEOy;wN;ܫpܱb;BlZK떶sG;cvݺp{߹ctws;w w XoJX; ,3_P;V9Β,MIl:X;K XV]`>Œоt߱ʚw<, n}%]}Cg6w5?J"@Ib>ҟ2Dc5﬋_PҧXϠоY2N;VIκ:m>R5|? Ec3NKQeBX; ,#M]KU2L(yge$7إOTNcN;Va2x~!oYmw7pY2={Y1XYP S+U% Q귕{YL2f̢j^V1΢sD˚EnQhU,XLIawBh$U̼dݹG܀}ᢁZ(4*AMM;!*fYܡaEolU҆&SR& h3,;wh@XF;%(;L]wBlR@yg9Frn;a΅FEΚއL)UμܡaAlUdJ [r}Z;-,.ue&SR(P*eYTwaAnQM"`m2%B e} wx;g{gɺsw&XM@;oA?oٚYYLVO@ -wV7f7DslN,,w&;O~aZ,nA?oBkszgg!Y yA@KY=9ܙ Y yI.KY" @07~̽E2 3ٜYҳz炁HY y?U"xgpj@sl͸cg󽁙 @reO7Yf4`֌;,ɑSewVug=1E@HH$[8K3? 4`ƌ;;wtg,7?$,n7&{0yg-:XcBC띵xLhzg }sG΢]Ւ'^%-&?4]XkZ]Ӓ'%Y/uKTܱ zwMKj_B;wvRw֋%5JZdLerTWawah]7⎕C9ZRþD[&Gs%V{us.XYܑlq%5{|JZgg\T29+N;d~En+;rtHv"ZRþG}} \Iu!$+u-Xܑdq%5{JZˊ(-!PBΝ-XܑdqW_IKʔU{ͯ bw\zY6kZRCD[&Gq%{a~%wݬ;V=w,@5-!x P"c"-C8nQ;VJZ]wVJZ]wVJZwV c,MD.59XT& ygin"dxgFҥ6睥S/\Yt yg)n"zg)mrȼh^Q;F&&Z%;Kq;KhCEK*w2݄Dygo"zgmrHWTQ;,iU47at69`^+sǨ;,2*xY0yYGs^Q};F w&"LwBd^+Yt†\47a469d^D.~`C.yY0}YGJd" `m&yΓY 0,۵܃; ˢri,;,Xay'ܬur UH%sL΂ÂXw­Zwϝ}'P.yd*w ey'ܪur Mj;Tj,;,(@,NQ>[I.֦iR ;K$J%ͅk%V;$E ˖w.AnZ5; Ho"e;Kœb~Y2َ(NX (x[(MuBMaiTvӪY2َ(NXT (x[(MuʚRdU%ɭwN-FH-i֦g*YiHy'lF&F2g-i֦geMa)TwӪYu|C6{ cE$JeOF%ku7 u?ߐ͞wXQ>қI-i&’5RZM6zg$hNX4OfBKi@),JnZ;k;͝} Q坰tyg)DS$4 kܳTSX ݴw&Q!w}3Β׳kW?w%wB3w LLRҪNNAΚ~cVm; f_ YhnBD,@wBxV5{r s! VHCo!VzwB)dp'@l! !|W:a16#˯x2w@Rw}EAhap!>/*IJwB~CJsL@HCNovӠyy\vϴZy!>/+IJwB~C s!)BDeAhjB|^P4By @wB|3VK⳾$+j )fgWHCNov~y\vϴZTԼR̞;]o¯LW Ǩ C!3 p!>Kҽ材ߐbAwHCNǨpIiP=<+.ĝ yQIWԼ7=wjZriHX .i7 !\vlk7碒ty'?90nЏ_mBwVn0j3Y s9g-w~7w˶ɨ7,s焹\5M;XMF]yg);'RM1wlD]yg);',Ah8\2ϝ},Q+oY wAp ~p6eV;X .V޼ϝ6╀kݡ̪sg˶AʛwsoAp ~ YfUe(b;9aJ Jᇚ/.ˬF`C6Xyr>wN؈#W"]_4̪sgʶQʛwsFTAr%֦j>!ۆyg;'D$%>r ֦j>lc;P4Gܱwvce?gzگ.k? LEXIF II* (1 2iCreated with GIMP)[)[GIMP 2.10.242021:06:21 22:43:24Created with GIMPzJFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?>R1l'rr&s.A5?mVdV( [ 3T?xWS7NUZVr_z1]ȚH\p[ʖicLy3G'WWCemj'iocxU< YH6e2QS_ҖG!?_2v/]" U,C^>xR^Ejfݝ:.=:4rTh2}O~(L݋/V ^&aToGًQe2v/Gd_·7/0=N=_z0~'bKra*noNOdV}3<T{:{j?̾d4n|ٵQjd_ºsƑ3%E H<~UW/0|{ZK/&>T-I<ʛ|"#۪UZx+]ɸӡp?tn9F}* < G=0bJ,`c䩷+Cߙ}'bK,"dLW=+g/0y^[kED{;{RهG'?_cZ72I8u;=oζ7v~ ֠X09*.=ގ[2v/J,X'^?Jox+pO<T| 8It#V 奍#w4{:{j?̾c4K,'ٔdiߥ g/I"A+,j' })xSu;0Uhe#ʥcBz5];Aἕt~ קhϧ##x =9xQQэb?ճTop/ y*2=zWOi}n$V#l:1=s8%ghܡbTcn%NkG~eL݋/Uy-3|s _ҵ7 ?jmB]pqQQ}֓KG&, L6q]z԰~*ƨrwz- +V+oJރ OMZ8C^ݡA,)9bޭAKoV? (}Ò=z/!Ɵw,8LYFgc9a3};${ږm +~U3Rj]Qm%eߑ_=s+.7: +Uef>gw=qT5Yne_+#g}gUKjW,0&uLo ^CW_[㿧jg9#mV'ƣtV»s9>KoV?Ѫ)V6@ 9)>cM59rڅە$=a;SgEQKoX7UM% vv,b^F#uJ#8rG߷_lq\U3QԦOc$8V;U3q*A]B=z pjJǃ22Fr=T5)(3M{FZ#Ue[9+(uSfćb #?ӭ]wGl2HH?,f^C% dda:P$}~Kq~tgZ> -r$NtL )?!` m1Q@>XqN|#31>#-$#+GNe֦В2Ȍ9BiiC;>hsqTn.ewWffڪ~ucѽPcs1ӵ.G[ze,% )ĭ^2q}ސ{] J 6KϨ#ZB!Aܓ r9b˓rxJn2(]ӽE'7-}n0dQϧz`q+t\wPTq+t\wPPQJ@RMϹPk\3n{sBKKM?bώ<~5V0/(81Rk+ },cW#S۶;vwJBk8 nH[McY|ޞC9r"a%Ӱ$J [UYv=KaH>SO趪lOz.Ƃ<jXX[&L1WZ#4wO$gua2FCWK09 jP!bKrXf݀sJ̜0Ҡ?+F k;91csMEP (3)8'tlqs"ݞ};_[㿧j_[㿧j/Urͺm}j_Zu  zRy\ ߔDϞFHrčW#=pzU,f;,cWYTp1ӷҗP") iv/g TXU!m5ezy uʐh`{_Kڪ;e6.|LB6ϒO;gs)ωD;.+a,QqcC0;c $`@#uXqN ԋhIT XYu#-G"2{s+* T`Xy0c/ٻ*̣Þ1JUUx2޾JbQaNԺm񔳌c$xYJz@S?t01+[HBd(8ےa.G>VMkiZrL%#.N$n1*K@ZɑG##zN$n1)yG2:mH&qrzoβ_]Myj !1" "uRF&sέ-QBfXC&1cݺVm M!7|&|G?֛FBI<$Ӵu,].GϞ"V@V#)$ Ґj\%F:~5$m2{0L䞘46TOw1QjOR1*XrNzu:wJBk8 nH[McY|ޞC9r"a%Ӱ$J [UYv=KaH>SO趪l[XA!y.3XK IcX9@@1pyȍ؊OvQn[j 1?ZXw6(-F01׎qβ]GXDAyv  O+Ma4ɉ`m{&]7)"0Ej]Grţ;2DA;{ʳ䶸?2HdT'HEQEFgc9a3};)rÌgq#qOO]p2(duR9n{hiBFzZͭf71]3y; p:bЁE*ֹfH6>5BoM/ cXH^>gBoK0r L؎ϭ7VS"24yIhYn0\)<E&=i-cq{At0&N[9ϯ~Jtx4!0O) ɢ=Q+G"NO*P(AOfx3c9ӽ2g,8sϧzhm (.Yu#-$#+GNeЁzJ, fBbQaNIBUax1\ \19ڗP#^2q}ސ{]bVޯK8@>H v=G%kiZrL%ɭm! []nI1Ceč9n`ȣduLrxJ}#d^#04upEf8vݑ1۩s&8d\DQ9'VMTRkmԀossT*Z ۩&PԲawpS>ydMYyXsēKer<|L &PfV;U3q*A*ҐjSO趫z{'bKipWJ_׸ѱի/:x,'I9o,` uPr`<`:{ p!9װJa#N*jS88}#*.cy:wZ7ӕ*Y 5O~( ɾi0唱Qn*:2v/Gd_ž 7d_ؿ R|#31>iߥ >'bKh=Kڢ2BJ(˿"2{V]Nד7% Oؿ(gvBGnp*̣Þ1E>HJoڤ?_dޯK8@>H v=G'bK{3 1CAvWm! []nI1Yiߥ U3눗(iRq#qORYq1qҏؿiߥ zRš9i0dV㓁eb0|=< OؿgTRkmԀossT*sw+cwp03?*OؿK-w 3HՐ'g=`h?I5Qof@B=qVYĿJ.+wJBk8 Gd_œUFs*Av]՗l0svU4/jk_Nd`9ƧR-ܫZI(8#XMP bottom-0.9.6/docs/content/assets/screenshots/process/search/000077500000000000000000000000001447252316700242345ustar00rootroot00000000000000bottom-0.9.6/docs/content/assets/screenshots/process/search/cpu.webp000066400000000000000000000455761447252316700257230ustar00rootroot00000000000000RIFFvKWEBPVP8X ,ICCPlcms0mntrRGB XYZ (acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBVP8L-/GUi~}HO!LN!X椘|9NׯҲ"0Dj擅(=0cIQcte5Wܰcp;hBɥWqMѬ YR)ͬ+5XI0HhKI Eg]\ۉj6Uj(:]-%b8yjC~izubJ(A++- k lh eZJ`rZ L&pCe-[a$a\G/? @r-%Y~\'j:b4zC1bTZgrm! RE 25k~`V( T% e Q,8ŵ>dָ@ 3ƚwh eSqb݋3܋M;CM%YpڣaAԂ<#H|C +Q `O DlF4PDZJ4?7N n 9*q@/n;z}]AWOBub{MJ*=IFSҟl>'-g鴰tb*.r ^FMMf1&u iad04B+lwXZ䪹a`;">.A5`k#+-^C}- dW[d0_mw{:I^ 擼26Iy<#sEuXq^nvl;$q|nЮP>Q)6WR2vb};/==I)cA7ފ3 o'7>Sk@Ch׀,DD;>%I'@_s5lsSڥFnvkM4A* Y4gȻi5+wplɱ}|>>>P@,N*"4 y@O^Db)j6WdSw U>zRw7I9t\(bUrăϯ2z&\ʕD}Ew-;PY AK8 I*_o߇K|63f>>-qʼn5!4jyc $B{<- Y~H7/?-!4ҸU076Y~oSf@( T DF>b{ߜʥÕMYkW*yC;\f3&U[1Ϻg:5 M*T T&`HOZ/C?~n|->KmQ*/*T:`wB!8F$5eڥu:x1o~:Y~ UG}:۴ɔ5@lĮk'/k@2Fʔ D MZ#ݽw|r)jr~ƧuՔt5=$c);;_C`d2|d `qoW݉W~48`m!8A-4 FO&"෬"8+v+ӊUf9=É~\5&׀rP*ҡ/6dVF,N*14&Xxq#xwO'z<}lA;>=0 BLOfGʪ/hqƵ?`ia}jT,鯕ASB޾,~o,RqIeR]y -IWPnԮz.2}탈Sʨũ Df-D,E-Uv׵bH+WcD ~~P0¥*GS';~Ч:q_ELoqNgfoڅ/CŸȶǼ{p)8E-4 VMNfln3&Yꐢ:R>>DVF,N""4 uHjfʋH-E U~\53jaRŌl D|q^pVxHg)|5[0ivئlnؑPgLOIm)/@2 /cʮgYen{|/q:+bISTCk@P̅ot SYdt9MA4&]"5:]TPvoH6Y^!] (7OwmeTB&K )6q:6wl#rbHg1=@[zEN^2;}xNWQW/J8[0cz-7ۛ m翻Uۤ@F0͘)="Fdh+ s+,!c?Յ<;$1AqZu8*l[A:8OCkM2bK€ȳ!d` c ۳69JZYbB[C+0A)gBԔ]j+[QФx= \6VvSѻp*ڡa&]r'ih*QpD|-c"=)-Qn,DޒM/5*:YC#v9 {3(ӓ M[7RޢsύiGFm~m p~M" p@n *>,6Sv~ Ŝ/Vk5 ہ9lK$%{&d'@Cm`CV< B^cWKܮ:ɿJ0DT M˙3"=9|URLOy!-%7Fm~y *-ɓZKVTAڈIB2SL[(sƽյTN^]{| %"@C~69}q#է =c=wHlK24Fn'4e4T M˙7<>1rcz!U[4شXY"hƐp2/a)RBfalcfƒTI7 $}0TPHT7zH)FGD.öOd)M4'ԮR:!NДtR;71rWRL@z#&ES<ؖ #~}GCVd,S169~$ʶV ?z ?V 38,%!,nĕtֿO5Se ]rH"״x0ol P:y>efl7 'ws;4O̮.g&'>*:QC#v9 ,M¨G2Lqa-ܴU!JAtIΑ^CVdRDI9,&-x o=dLm@Dx;8dIQ a\M"?q)Đ&Ly `HFF3Ρ!ud-Sԅn3>̆bD+Sa%L&+aFp}TtFr"=)5$GNLA\-ܴU,!uMՒY{Yr<'152Өw4%9 ?C*]Cu~qaG]hJه6ꂙJךse=d,PB7=5Nf\k;4Ǣ,F.`狾&֭ȽLr9oEP>H/v%9mŀ}y8}g44j;_5nؐFYTEMOmtNd'L|X59z r<Βkhw־$غbC6WD}gQ=5=7ZCzpaɿGh@Swyz rYr M1[Rl,ZSZ@e,,$羳r;c5Y6%0O\c%1*+M1L-ic,,$羳$r;c5- hɋzݢ,Q^iM!Q&GkΒjhw־״4%/fkwd^ܩƖ& YUf5H}gI54v;KkkZВ3,wQ=J*Rz1˔TOYJf5H}gI54b;_5- hɋzr;K"{Cٍ){Jt%3@e%zRe^$wLCEY^^V*{yzr;K]()ӕT'QS Nm"DOYkΒhhv;KckkJe6K\}g ׾kkYf5;@!ʾsRFDL0N-{@5(z^yn%E/iG,'shNV'E,ܱڈȒi>p\75$ֺ$w̡9:Y9;򔨈vs"j#N"K"z`4Nf[ipI}g,iG,shNV(E,ܱڈJ$c# &"m-ixB+֭bRYҎDYN8Y9;qJTʾsǢjSV"6TD5DW%9֎<ʲ,RYҎDYNܱSR%*Ĺcn@lʻ)Bʯu+% E.iG,th9+gsbc?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c1Kaw?wC褰6u -3y{k7F(n|Ŗ~Y+f \fq4=,-I׈s/5tq?+^) 0j(DEm*yblfФ {?9,z'ʱ}|xj'{=(@FNg o{r\ƉHQ/7r(l}@2~HDH6r"ܰ\ʕ"n$ڥy|Z_hU6wz{@@FM$Bz@!^3˾WkFMi8Gh2μޝ=Pwq,%2WdL|i,R}_<,~=Ι~hU,0ҋ_=K_{WYd,CFN ,\G=yXޭ/qapϝ2"/q:5O<}\҇YߥHs)W㙉E`Y!~o {&Ɵ뻛Yn1 Q (O%(R8}K*^5l"kCYX &;7?^ϝL뚜XC2,'O1ň6kc]ߕ&fl}_f};$/׀വ#WwS/f)]{|/Wd?fR>w@064٣a2R遙GsM3gz<=Y-%ƃ*4_^P3—K1:2+˶DiMNx ݃DTSG*!u*nĵ>d$xG^>oN7_;+rDD>DѮ@UK3fc/Ԍ@4b'ɗM?ywLm onjS$=#9G(U7Π &9I390 y:IoQ>AA ! 41`ƦHv(sO2ǓQ֜ ٨j)- O5TtKj6DX YDst@nn_п)\mxڒU]AF&ن(BO>x D5jiq'6{s::j晈j?={6bj$VyA['VqXBe sOs4.!GMo@Hs | ZHuy.^70y]wjI!`3@ιm&V`hH}6gi<ݞ-S0%XSeg"-yhX?'U|縼J 6,E\f'w;a< !إ^%.|w>k}Yq>wƦQHtጱ]"ZPVK+llU#Ͻd e5$6DX%stO}%<٦r"kcd<,E耺Cg,IBx[ץ`0a¿ (FbfX:9{6@Y-)"D0!jFr2*&+Q#*6DXrsEst=K64Gq5ln];wT4Ӷ(I8ZV)H;gV;w?c?K-9o$$Ley~`661 jFLQu{;32וּ^{yyy]TrNs#ߙIە٫Ƥ'|-5FԌsK^iP1>wONgW{,&q5Q!T32וּHv5Lʡ\!ҝ5{;svH׭8)+ɋ;&&)3݄fnf)?}T_2/QOH_g'bs:`WQ5=#q֚U>=x=T5~bQt_u[%):ɯ#;Jڧof!!iuD<`2pfzclT(~e q,*p;5ʑ 1/y!j )cQάx^Gc{yi9v~gQgm7f=nM}0_ܪSYi=']A=^`mFZ+}k>Sfdo2e ČLIoJ aŤRqX`w-WW{>hWcDKKRXg$ZzfeQ"4}wD뻛._IӲ"*`ۨzo:qhz@!fdr,-^ jYn4j`.F浾&SJeJ*ʋCp9,+3O JWB51#ŬbcdG"-?3>cZi9.+Yܘ|mtA  [y=8ϸsk ,?cuaakXQb0A/(D0&$_Ee"6?Vk`|ԍr٠DrFgYǺe>7־/-]Uu;3:Y'{LY/Z=$?~s(;+rFw/Qң.w~>ۗwM<,pnip Q?yz"s*'1Rܳ0#Ŭ^z>)7gzݨdq73hK٥/jE~q~?S_4Nc)ߐ!gԣZ+(뜯Z2ڤU.܁u>0se g 8|e/bfmS1~;^)Z[Ӥ뀠6H.ʭ_ʨ֖n*4d#K={ѰnWb6:}O~S)b\Ij$O~ V t0TOFKmI6kʩ.">=a !PeNJWލp"#0 }O~S* (^<^&3jڤ??­AZأAv|Yhē]I'a)$F&l A^R DJ1)-#JT݇Q?O(e=~ϻ̋ٓ}qE?O xo0§|ܒz?Ҳ(?ڤ??¤;+E"_fyChi3nN8b5F'Amp}:Tjߔ BqP' *M&!-Ġ8qXFRG$A<~ZM54VmMծIiQ0G\<ّ!?,\:ޥoĊr(*_H}V߉<2[$#b3pzTu;M#%JI>)>'bK4Tiߥ >'bKhS}O~(L݋/QjCEM?_2v/F 7d_ؿ4Tiߥ >'bKhS}O~(L݋/QjCEM?_2v/F 7d_ؿ4Tiߥ >'bKhS}O~(L݋/QjCJ SH>L݋/Q?_@Ԉ>V,r)6'bKw*oRDJi&V?XMP bottom-0.9.6/docs/content/assets/screenshots/process/search/or.webp000066400000000000000000000533121447252316700255370ustar00rootroot00000000000000RIFFVWEBPVP8X ,ICCPlcms0mntrRGB XYZ (acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBVP8L5/GU۶$?w:#"&TƂv[K{l̃A+A==Ϧ~HK5V@la3333329e~}}R VlL C#5%;xaHF.-[,Žπ}JhKRYb,K^Y"lɥU%rOi Yv1a:ų.*8۱stծ3< *+[:ZeX J s2ghUҎSњn=e7UN< \8\TI1+Uӓ 3زj;hɩ,ݑBmts7b۶n=r ` Z7SNJ$In$h[ߥNtwkdM#;4y~~ݲ;m9Y4$pMs ˓&[%;T&#; nUwDڸKu؍zI;]wԝYN"DHzz6^94%8y$f'$ƍ`;b۶bmkbH⤁cf{`$ɒ$ɶ؁2fn=Q5wnQayN%1Ԅ*RWJ+EP3_`Z+* ĵG+R(Q`IPH(kԌE02GY[P)Xp 4`1L@ kQ! תP 6(TiEĭh5@ īu|ڌ(EM2$6`(dm $uC XҠSU)˜i\o(jA?XE'XJCoZfL6Pa  "V`h*d?qpF0;-7HHxIA+Ijt\JZ(IL9"iTf dA%&A#6*Oĭ) W}s@&#-餋%JJeY~. @R$3N$`F "TDGҊ+:@& B{v5 $2',oBpL$@oZmU͈+RV%fʳ4ڑY&iL]N !Z@ VMIs{?O+(-0}8N[CH{*RȌ&\(9x-_}+IˑoQgJi9ŏ1A{wb:0dA=Qt<-ZfiIh;C+vFٽW-*#tUܓ'C?_`d^ 2cӁ`7^wĵ8twn1uZjenƸN<793)cnFE'oN=Ԉ'$K]W@aȌ>{F'r^=ϫIzq qg QruFTflA/Y5йiàĤNis'r}nj,6"[0֋'=j7r;_oT ]i>u`dde<|xf,OYM2&x>g_奖dk[(>yigiI1&cK" #0'/AAXTfߺv\ZrS,+ԫQ> ,U{1U Ea%9 T]̡-:Kjs?9zf3E7F< 7=|oL>& Z\czȞM4Ϊ;ScYdHi)g(6G;j5N_i_[%g, NPWsQmY䷉ Uӎ͜xZ xf:'z:Ю/]ڦbکo(CY3?آ(V7"{,  I3|=FKQ56s_*$tĬ>KE:Xf簤*R{, 1QWfmDN6+br46swG}ICF= znf0őY㒚r>wdvɹN-5Df~E-%gEH+vx:$~c=>dV_6K&_A6YFۘ3Fṭ4CQu]Wekkh_lPhg &6c`PTkdl9ao``kB3%$ }IfZ 漗d]jb<1 @e-6[ o˙/:Gݤ?sASSq`x1bn "V{lwvUy2{6_u&rJiT_cӀ1s||X̾ ;q_`P$ -;@WڙN2 --7^ҳ}`(Pkl`WRz}E) o0P5ZArq$D$ͦ+v5.?4eN݈r)^3?[nݕGvTV2Zz̯l댤Cu#X>0>mϞcZNichc.gywbgh>*y>Q+U k\;pgu.2`$ dh>]i ww`7-nzv PY!fS8{Yr *x-~5VjV&'LH2if]fT}Uj]cGo5%،_ҍᰋT6_jv:V{r$gmXkE=06rr;ck3{%0〴)%{u/1ؗX)6 iߥ]Q(׀:bsh~+/i[X(!ɤv  ^i-|㴝ݱw[n;d=ֺs:6Xɑ̞eC,2Qog xZ#2K{Źjs`ЫO,RqDZ<`6V|yEW^b_/ҙ )\7׀:Ю+`NQuF:Xzbj}:f^79we9㈴)F[V7=ܺc 9N}*ZXu ցvu-]tn`|f|5VbҶ28AB@ b] yVFZan-EŴMr- f=MQX`? C(Y#6㨢(.xMXy -N4.׈' FKQ1Nʹ;5vs.5l^Hdi?l !?lܼ}Q^<=a{E-"K{\C[?YkNҚK1:%-iB􀩆+i, !{-C?G?PEn Kh3)$2GZM(8‰&5Hb.$Fd˖r] c!*(-(($@-GITYI $@[,+Ţ4s%lHN-.`IbO(4?#+4#wvi5{cTd Rو$P5#hrjCm?lA'[u JV<&ؘLPjp;ACO\f.ZZ^c`S]"mTlΕPQZQkBpN$ UCW.H%KQHqTD6"!T&}qz%W.RrQ &lB٨6$F& "C0Ŗ)J],K3:W=Bx8]IBfY h)rDYl6(#1:`lDc,"W$ z!!!ꧡ5`O&$W^')H$zAp@X-lTO#R01e3[SdJP @2(-ԣ_CI4R ".GZ[K~Qq&fY^YZn 1+PJO(h4XC8j>HtDe&\RY(1^~q5Y nYV$VU~~13*ې=ITc 2\{siSs%LNdɗ4O[KDHD l)U OTBZfx.2@1|n$v+/OPJbX QذcI_jMb J)(dqKww234 ihuqI9 5x%qU afb~\zN RPhVﺧ٥i=mCOdu(p3r$Bt`F:T_l 0r% KǧXa ꧭVXU'`GAmsm7Ğ|#)ݻ41+XCud@f&S)a?\ Kfb vv{uinlڐSPQlR'$6@FOp !$ -vnsqBZK+Tw2m * ʨ%6=7HF%lrz*t`D/~I|䅣 3 RLbkҨF]hQ]ۚ+aeG.A) :n 8\.V~ :k k ###Mɨ-I^Kو$a'Wqgucۂu% Ib8QI9 +6T11iG *,="4y+A}L2H $B t[ #ʓfLqrEEpk.[8@v`ZJcxx{#IL"**gtкU UV/.WEtp,E<0+dZ U.-ɤHLL_|?%@ Σsi[s%"U: N${!h¿q76$Wp'$j]^ #ns>ؔX&^~괮)P/HY-Ơ䏬 &XmP #˓IÑ4՘ς9?Ȋ!:ϥ\  kuAR'Rޝ[/hخ ܮOGA_X#8e8>6sһЗ|<T_Z ?Q`ugQI"FU.k=K4u:YZXnYV]t{MZ༤ՕYerJBLK]VpzgqX3Qx< $f *Y%ϓL=ҭ4\;?ڣ㮃%s>R,St89䙻򹯀Z9&] ugIf *YB%mhtºtTiegPo:a-Ը2KLNis I+ N, d-KṞ{<," gY¨ʅwgdE?pt+4Wn.K+ Kc[ZR]Vpzgq8O*^]Q\xt81*A`ם"AY@LxgYN_S[iw,m+Xʷ&5yk5kF Ne<(vY tݬ' U,6VW)V`zg b' ɣ+2 [~I=QrougHn*Y,!uB8WjRu+4Wr. ڸL $ M;ixF|Epa-",1 >*;˅5dmZ{ҕNpͺ_  YwV x}ӺO{8`}Ҹ!,|ݱwҸ!,|ݱwҸ!,|ݱw2 )xgdTnHQ; -8_w8%sC"YhcE!,Te,RB 8+yg!,R ΂cXQ; fiܐbwuNJBY@7KEuNJAY@7KEuǢY;K_w;a8{gWyge ^eÕf~){θ]8ܢ$-RygwqwV`& PU:\m!g*XE*,I@{gxgf ^eÕ!{θaeJZBwVgkxgf ^eUgkG{HIg(XE*,I0{gxgf ^eU͢dqWْP$읅f\IC7(zWh[@{HY:ݳeKZB}' g,9㚺ce ^eզZ Rd771iq; 0`a4u ʤ B{HIg[v5Y֤),wpΒ_cdRn(P*;!ɞ3nbΚHNY`u ͤ N+<`)ILq2'-RygɾwqwV`& bUv:\{Hig⌛Sۻw֤吼>f;+[Ϊ p: EתF^W!,0\2=v^5(cl ;kѫ=R)fr x><[L*`%BKڻvM5(klխ =wXJ=Qw,˩Z7h-Lً)Y{],!a%ShRycYssu»u6b2DKӀ˜i[^W!Ԑ:[!l6q fB!3x},U2aH oMm~q4-Mbw5BUȪ(%$Y! a m4iK $%}PlH@k3;ܶp:=wBۺA}xqW^LΊ,=%Aֺ ZɐQgMJƆuխIwBiZ7h }xlTً)Yh@ֺ YIuYJ*s͛neJ=wB˩Z7h-(o1U"wBVE $ad-8>kRJNjV2S;wt.U֞PbEp#XzZW!"RpBY`sMmm2aa=Qw,XY/U-QbE,mkԺ Yɐ>Zr rYGv.؁V;,5ꎅv9M-pt8wWe/xg70UsFݱ.iݠ#0d/OEUoкc/8;wX ;Vn $@>wX+w”ܽsy;3c7N(CBnH}+wBtC s9+wBtC s9+{gqg]& =[띥Du,MZ~; E"c ^,M$,SΒ@mHY&-%#A%kKYHY&-%"I-Azgi"Qxgٚܦw& _,M$ ,[ΒDβ5iyN﬚F;!;K;֤9Jal@‘(lMZ;kKRwDekYHPlT읅#Qxgٚ4Ua,Eqj(Y^M<ꝥx5xgZ4wP7ekѴrYPC$V{ܧwI=I;KjβhZO, ;֢i>4/ᝥ!靥x5D,L;KjYNC;KjYNΪw΢8νΝ{q; ;w:wE],t Y0®w8w],p Yܹvs/zgwo΢pY' @* ;,p;8p[y  @*;,pC;ptqﬢ=  M* ;,p;(ptpfl=Ľ?wX;Y<;#Y ʍ%Vx-;V.w8eXXaT\{K:e!,pʰ@*YytʂY:rcHsGhwV%Rꎕ X sGhwVV1Xrꝕ`Atirc sGhwVtEʍ|;B[r,)L 2,zU@\Y .>%DV`gn)O; =J)|q,X@#d8_P}bIVB)wB/+Tv;֞Shgsf_~ ql;Z(; =JR!#4;lXG {ʌe'HУDt8ϊY-WzbB2P[ տto)YQ"NYOmޙ;+, B=1y!DVޭ_V:J$EثwC?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?EڡLwXC1BEde6twoUUU(f2dvV6&/vO>'IQK h}[nz~)ӁKK>܋!"o1Ղ@7xeXRSΧ^Uur/9Q6c`PCuݻߤ>;b[F6zVlN1vHd @z~v< y!068dtԄBZ7)[ۦj ?kY*džc;e~M/%sc_bmjJ;3h |u 3xV󡬏iw )uul}c>{>Yf_.ƕo< yk zJjov+TyQ&ż3wu㨍W02'ԼE'A.W.H?nAtH"(০?y=Vd6vI0lDz:83R`VڶRb@YІQg5 k-EZ(jN`/lF?}iGbI$I0Z$ۣ: :a} i\EAɴ7+ǓI4P3 _Kݿ0Tfm=,7vo1J,:ʕVxE{Tݮì| nG9FE:[]U?FcU}D5lPwGLb:j].@Ĭk xɟ8@j!hyqmJga&9#D…W vy>9N`D٦PdFM/(}p)itLpMKw]mɍ];}c[ݞ{_9϶;hI-H^* pX l -v<IYۖ`F PƠbp( )ܰY*\iŌJYāT!XX  ߐskiI 9l @oZm62RshiDcM5lUҘe ~ҙǃܴa뚚L3rrpn82Q'ߟ;M;C?K" ֖[''p͘t Iܱ^0AD;r6 &hČJ;j2Z鹹 0zz7Ҝ#Z&'g(6͝,v у-(5fOʬ0!s2ƇRQ(P`x'g("w"Vtx\ČJ;j֓gٰ'8yn>U;}' y"#2E!ao&*8*J8G6jl&# @& m@H5 "\2܉ZOK2-ǝQE(9j5YU(6 zr}q_t-,DƸ4H7M-ᓕ`cܖ7PF״㑡gTWJl^IAprYWr/]GXc˽ )ƌO$g"1O"¸YneQ*fxDQg‡zDĞ2{3 !SZi$OR] z ̄ b~F2&3$,e֣>wc j{c/rF{UreQk o4ݘR{E2`Yҭl)ӟR%('_OU_L>;bK7 [Y5QrYklmrSxF'Ə[/+,$WJjXyjEsn^dcx{ˤUIc a„ Čd K a\qK.ckߝ`TӁ|tz?#H[H,6L. QQ#JZMh{[4#bF_eQbG+|bEQ'L"nQ9SddUR^bXUbImsB-$趼OڹiP^`e,aYH w̋###)Q94$ =z?B}qpn)qTܨĨ\i!1c2.#bx{^zřLMG[NG&[^^d1;#KS-z=mmK(qgҘ;\{ 8J]ƺgM )J--r._<UG(9 I|2_5`YE۾[dYINa*W%+/cswлk׽^;󏊗񛿆=Wڜ:̈ˤOg ͘e,;WaY.]6L@Z W\t)x2UqQEQ%G-5ndgDݐ(M9("D\QzO` o,ٽE4Gy"o{5XzOv*L|߱vCy*oq.※Xrv˦65AߴGwU:`K^ED|]!%"ڭ,*fxDQgaWyS/7lkCil_kQ܏mA;㴾"Ig1JAzg<1wkWDQ|k/l˷Panzo4phkt ,9Im"ÆČ&dd9; o" %ΨԣVH:ӟ7}7unQ\S˼#D^DO6ҘyPI2(!b6mzLcs'Sryjkŋ1 #}A(CH )0(gXmݘDQ'_Xfc峺3Hf|=1 r33Fg{ܛRvRA8w"g%A:OJWt[VUo4e(9nJ3 B O~S+CR#,gz˳G+";3 elNO8GUrmyOҡ*V"~h#9 hVQ){^qE³Gڤ??§Jȑen"PrP*[ӿ-l#F?fȼ0\Ht`u+13#X&|[箔F1 dUe6&bx_CYu`ڡ֤[ْf>Y\I׊:EP#Nm*ʌ5ZEnHV]l+nyZLl`C%96g۽:ĭ17a^DgY~#(#j zKM#,;`V"wԵ̸ ts-tZiCa/xn?8=V7jV7j`lNc-% l^x9? ZVR $jLxԱ <ݭS+OOT'ہ 19r0=0458v8,d $ͧd+} @ٍE+,E4섕b88 =JH<DP@ɌnXRI9$I@::OrkB6HpPl<}E-rT8y+1"oRo5OZVOZ@Q@(((((((((((((oRo 5OZVOZ@Q@(((((((((((((oRo 5OZVOZ@Q@(((((((((((((oRo 5OZVOZ@Q@(((((((((((((oRo 5OZ[uJPRaH[0Ä gGmKGW]̺+S6ڗ9Gm/rtVm/roj_?auˢ?mf{R( ]mKG6ڗ9E]w2Ooj_?ٶԿ,빗Ejf{R(Ͷ#Qf]̺+S6ڗ9Gm/r0eZٶԿ?mYs.Ͷ#QmKG.tVm/roj_?auˢ?mf{R( ]mKG6ڗ9E]w2Ooj_?ٶԿ,빗Ejf{R(͵M@g%.uoN趩͍u/?{-̒vE jI(îa M i#[ņ(H8Aj:<۬pm8LsTf!ڡFc^!(xSz]+vWVGt<2*!`LM^z{iI֘/QPk}rA%2:-Ž kru}Nnm-VHX̋=VO@o}<χ[ԭXxNUPK A{;ks'>xdH%]Fg8 wGg-K}zR}O~+= Uh'bK}O~(5!L݋/Q?_@Ԇ2v/Gd_R*oؿiߥ 4 Hh'bK}O~(5!L݋/Q?_@Ԇ2v/Gd_R*oؿiߥ 4 Hh'bK}O~(5!L݋/Q?_@Ԇ }EK?_2v/Fv'%}sVY19SmQ}O~)VU-IRM\M6XMP bottom-0.9.6/docs/content/assets/screenshots/process/search/quotes.webp000066400000000000000000001010241447252316700264310ustar00rootroot00000000000000RIFF WEBPVP8X ,ICCPlcms0mntrRGB XYZ (acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBVP8L!V/GU㶑?g1h455eVYfFea!g64̪=W˦j>[5˿|gn>37)ޛ=6O! s 1Iys)`Uv,d3X- 3x95!H).sLK!vXE^nWE) Ԧ^UKj0hU&c*V$lf"9J6p zZujpL q{]iѣ-h'!O\2|6܍~zuwo*i 9>1Ba0IPgUmLjHz59Y@]՜zb6Z}` h4z<2.Pӝn.lNɭ(R;ow nz'(ƀ jqwz29!ڞ:^:^/vVz Q辫M(tPUMxAQ6iߌS: NN)'z=qr=vtm:99€ h⤞IKQm*Kھ8YS 0ߚ\>Bel SO,|{ 7+AQ%{n`:D` 8*t,^6(0 )cxzn,c?I'2NQk 9OَMht"xp΃M(tUyiQSߝn0'>VT QSAN41T9'MWy\T奨Wn6Py2|,Ga"𫿪'}RG6z${ RnN~9׎Rz:Q ǎٜtwyf)_2>_^ #45WM(tU%DՉdT7TAQC2~p QKQm\Gl{IW>{9~TFS[~T*Ҍ#% FiSRIsQ2>8 - ,{ :(нoB:)÷ 6m܏^Նbdew M k/|US_S exQ*eaEX\_o:xd= _r]~PQ4 k>`ٟ=B)8 o6Op:)'_p^AƳ dE zS(Зg-h5ÌRDo _T[Mp| 𥃪*xh!n`:f#FQDdzWoyR|[-OR-%O6x搜nJǻ(WQx_z|o[|_" ^w_\Sh,uHq_m~|JJ wTâ/>J)t徭n= ʇhЯܲc}L:n!Xt dJ4>&_|頪 N4,ъL=ԩ6'`rJ'88992z(2bp 5|bSIKQmwƻ8cͅ; U?Q >VG~xƺh4-~'9HxrΐyKzS3sUudsJn"UU_ 8hkB{>. 7TQyI<A?B4{zOAU؜? VdꙗI)}$RpN*\(Q =ަTʨ B&ws{BGM3 j;-j%2z:ShLy;?GVUş_]GTPp ͑4_ek3iܥ7~H:Qm0 J2'EC-~'?uW_2^PP+`UQe9Ő/^ 1+:\Ӵ~0@L!Fe4\=$@ Zоk! OU XA7RT&Gjǒ` Q<*bsuy0 ,&{5h/f7P7 u`%DC&f].Bi,Ei[#4CYCh8 VIsx([K Fl DwYt{֔Ah"8UF!II GEhds,3Ao>WOWZ2%ZA!)֦kˈTю P58 A'1XeDt! f6 m*/QrhlrQk~2/U' "l_sԦ!Qj!,[N|\e4]cr6?]h1yD[S6q ^ -㶖1b22lyT4FT9=ffBꉑ˻V"Ys|zPDHDYuC vY&x Pc/r) KbDv\% z6U3@5`;P^+ۚȐ"JXVn@E|Lt]yzZ.FR!2<]'k{@̣yU41]|:x3x%ZAh=nhNV08*hE` *2 (LS1x K@ s7R-ZtH"`T1ĦW.+@%c}a$ZLv R4eCEkwp(̣yU4C8b/#J+FDE[(QgVԊD튪@x"Gث[Pz U ͖qkpbQ!3tYCD 1u}#8D7ăh@%ƷtD()RjV%2@13@ͣyU41&qsՊ("TDH>dDSE[j>B+2l%*8M.i K<p?Ml2eFTm퉏"$u-8<Xъ4C!Će4\|t""Zyg@k'A "c vlmJJ4 -Mdgﮜ5@2Qќ*Q(x[.#e%J"B1zъ5#J4_1%IJO5nSMDEm{Am(bW?>2apDIhhcETc  U>XA|fu0ذGCj}03@Dwi5$h$hm=jDYm5Ms->Z5Tш*GA'īi}&+D P=."wF=|x,ы_6(E5U4 ^ʋRO3U"*zі *g/PIL?ГtDمR6=Ujx(ǵnd ,F]R{Mx֭^m \m;Plz*:x(r˫(y&`wHE.|g&빴H鐴Z ',*̝m2gf\c,Q!.$IF焅2xE:$0.2E;+sg%mwZcIޱD%cH@ئ6Wu,JY|Ie-""̘fw,%*ƅd:Alh\&h+!i-û|g̝ŗYj"""Vw,qgA2 6D(;n"k- hw.U;/i+ӢEDD1W$X%2 bH[U(A&ʻ I+̔][1R6;<-ZDDDIpgu;V_!n)!S*&YDY5Νeݽz!",YSB(^uᄋlՐgI qgUyҚ:wuŔ;KfaM 9Vѭ4HJOZ#2^rgI,)^RepnDrgUz9w4XqsԔWCi@YYUDD"*=i-;{w,5%bUNj,PnVѭ4HJOZKβ^vR\ԫtpYͪ!&Ϊ5u,Ջ'wV8ɚҺjnTZ }rg J1'wʀX&kɝ2 V3;V{l'wʀXm#X?j"Y'wƀX&kɝ2 j;sgMsgܸοk&Y]S;p;wMmcU~>}箪 ΝUuG86|̈́;Nj;w]mZ w{[6e5,GsԆpg3tF#P߹kj÷sgU~?}箨 "ΝUuG86|-$X|w&:lYE;KDju;*7͆&wju;*7͆&wj5;:7͆&wV:Xp{VDDlqɝE!`^|yFY VaUi66 $ VwX^$ͼc%B- wX{|EƜyǒ!Qoj.|+Ɯy!aoZMaw,Ձ4YY]8_wB; nwn 4xݺR^ӭ;!vN}֝Nۭ;![wB; ^wK YY]8_wBneFX/-23TwB neFX1-23TwBdDw,r#iq[4dfL1{m5&;`ִ-ZffL3{m5&;4ˍnmn23ckKu'1IޱVXnޢEfTזNHG򎅷2r#M^[;!pgFŷ2r#э23TwB+q+,7 3ckKu'1IޱVˍ}nѐ1쵥J1IޱFˍ}]ޢ!3csgƹ?wk;fNnƾ|lHЉܭwrﰴ}=wܙ Iv"w+o;,\r}ِ 3g;,\r}=5#+;,u_{'Y +;,u__5X%dƾ|ɾθYcq@dqgܬYٱ8 a);B#;,u_ӕW$ِhZc|sguKY K2eawV!Pbhku' BʝV,J@^5*Yx!@B㍺; EY:hLY xNhVwe-Y`%,h4CκLɈڢc,If"kWwBͱFP.k"+a~Mfү-wVI3AƑSmU%\ n"BpY 'wY +=w;Td-wקb6FLdNwfpKdf7 l%+a%lrgp4OIu9AZ \ BʝEVbm>Quk߅т:Qy՝0[K )wY ;P}~l~_ L BG +,p̌k!"+a1SSn\Օ;sުf Կ|?9 Yc4@œ; LY{dKNk׹q| Yc4@!?wV;\(XeHщ!%Y{k0x'I"J۰D;X)`;H7fUY00^6)} Z4lyǚM7fU5H J׉_t riPNMU'WB F<&!!{iJ7شE{ʳB(U'r{ PPc-t#7# N[ ⇦Mv4Ce➈L@V"a)`;VbOy]G(U'r_5m(Lr)X[[꠬JUHSS@H' l hh `%&i c JӉOZц"H~G,)⦽^^`i%PDl!fɡO `%&i 6cv8TENtJ|m<*&RBuMy;FĉP, ~J= i cv񔛘HӉɒ@PO>rEMI"B/_ה?g^~PyH%[h,{4lytcf!U卂kENI%+B$)./&GCI!d !Q ܣsgHF=MSe`ޱ tY< ^;Pŝ8W Dz 7[G(W'Tkk<wVpϝ@rcSZ CcjxYuÝYrgSD~wVp%w V,c)܊5ْaoqlZ;+ݾΒP)wFe,[ft{=#v"Ҁ;+bFY} %Uc,eKVmG$`'i5*u/ w̝EYNJ]|!`'i55*u,@*sg(k~>hȦָ}Y tX~r?87 DB?@6ƝU=ϝǍ;XUp,2ƭX?@9Z djuYuÝ?ww̝Xe,[v84H$a|΂n\FKc@rg$8)MoHPqiHZYK-n\JKрʝ)!JBaH*_; eDޱ4t)w)N Hc龷;aՔ;K֔P' ETEH#^; =MޱYS2Y4iΝLh{EW!})jZ!;!ZsgC|}YRX\}U&4 m3f1SE Ѳ;kU#P5SL5YUaZT 2XP7%RT'8.jaSޱ4OĥpƻYKXa J}H,= !;wYeB @Ӏ!ɂU ($bz۵ӹ &ƭ:# q)n!wwX₲%?Md$4{$CUwPeB$5TBĂU(dH)LfDjaGg9ox7;k;,Wx4H`3HTs8 ,i@ U`",i)Jja3"'.x kL7! & |%jQs֛l@U`JPf}:lf*Aa#㖚ΈyJ:L1ﰒ@~ANKbi{,Xex2+ng/tF)'x rg@|x >*(/E]KӀk!`*ËB S63@jV Ȳ;k;,?Zz- f>E )Ur /$bM}e3S (XYtFI'R8#B1ﰰ*0ƝN,72;D-Niϝ%aiYʝ5xpgY?@Q^rgO:Lw֓~Q^rg 1?щXZL @[~?5΢3e_Y˝;n縟ַ%"5Ϊ\ޱ TGz81iϝEYe)w7VFY;VaYʝ_;VƲY;Vf)wpTNsgr#,;; 4-zY+@-rg <Pl% cΝEߎlo f ݿ:gc,h% cΝߎ csg%zhz,vϰ8XsgoGB۹.RO}/mB1+EޱΊDe۶O@Af,mQ,wV-;Y4w&qI¢? d&rgURcΝJsgɁ2YT>!]Z}׼cURc̝Q; BqEUw}bfRp/@֡>Af,m,wVϝ}cYΝ4eRS3? 2oih*e9w;M5X\wD* ;Yw,˝5wJr\v"Ya_\*+e w֐gpg)e 'bw,\pg)e 'bYȝaV2eA`p)XфeN(e '[ȝaV2eiMXFc*e 'ǝ4"K ԝP)BNt7;Kg7wV2eiDLy'PwB衠e"wn~"LeqGu'Ԯ?ܓNt7;+=(ɔ%N5hBou'ԮuNIJ;K3-0eI#R ԝ0f$]t"yYhJ#R /'ʝURG{@7ɝ5bZNRh;SrvCZwÝ94b9 ,ŞYuG8wF?=#f@,Sr7KgΨ9 93 )9Ψ9Yr>m@,SrhqaČΒ2 Srhq*!,7pgX\uG(e w(ju't Y=%azJÝʅw wrOܬ#YÝE9pb,힒#qTΨ)Y7 {Jҭ;B;pg%6 k/Xu5)6sg ~;` wVY͝5:;kx( Y%d5w PJj1pgY+@c* WBU@Vsg ;3;kx(t Yew&sg SYN; ^[+v4r)Y0q,K⾯ `Kh2wV\ w}Kh2wV8YSYU+z};I;NlI9rg uؒr,;(Gi-)R, u*hU f@ bqsʝ\mJ 솥Ђ@΢4DۡΊ-54c K1FТ@~4cwV)bQw6F-EvR등?[R]Y UDOvF>; %ʝ+e7,%&m)NlrgW ݰ4c-S" 2a)Z˃rgX}ULwX4ǝ5h [;,X< w0ed-LwX;K2eQnv ˿pg%Nua"wXwX;K2eA$Naaa, B(|wX; Yd7w;}X|f^d7w|wX; Yd7w|wXޅ; Yd7wK}σay~ -LwXKY,̝5ɤϝUq#h6@*WUq#hpgl7 6rg .Zd#w֊j@Xn;di;kE5 ,7U4ȝ*nlZQ  pgl7 6rgJVTYMY+a9rg ; l@Xސ;k%6 ;(u}gITF6QC(1#4YsMjR,p5j2Ys8T,dk:wvZ<g<,?;w͙""}Ynw3e:ҍEEwrg ߹Bsge)"";w ݀F\XⰃJn;hXr|Y3 V&5h@Mjt;&x , IHlwQfi|`NH,;w.%\Us9sW2Y;]<0 <.\.D,; 'N8w,%sG]Y ]4]AՒF幣.,Xs.wX.ӠjIV;. \4dѭ;ǝu a)L%v; rr|2 4jչ98tUK5@5W8VVm;rT-iԨsG\HwX}ѴQ $8RuEKsG]Y@p|2 4|Y sgM=pguׄ[.NÅYwXerga9\ȝ{|Upn wVÅYwXErga8\[ȝ{|Upn"wVF,;2 w\. rqkwXu5$՚"u';ԝPsgyj!ԝt,OSwB͚"\Nx {j!ԝt,OSwB͚"ΝhNZSPwBӹM UkNh:w;jMB M3u'T)B;Y^5E(Nh=w;a?Xwy %qSN<6ƀrgRqSNaڀrgRPn; 2Pw™O"gw,*N;Rt;Jm8z%ND|j n(wpu't}K֝ʀrgŖ;;XPwBh.R*[˝EN1sK nw` ~`ܡK n&wpu't} .<BHvrgq J )u'(%Y ɝť6;a;k;&nN"fQx"7u'T@?=ArԝPsE6T^ySwBI8,y7u'JDMz6םP:Ɲ%_#b'wȼbI.,`E8;)ewx.ԝPqEaqgN՝pIE?X2N/kk\e wf!4y)ungRm\68nhl\68nhJl^:Gw ;X vqgJ;,8j } 7VB <ՀN }M׎p Dq`Jp DqJXwB\wBw܍;Xrc%e}wɾcuׄd ;e,8s/|1;νS@,;N܉) d w{sYweϝ2&rg9߹=wȝp|^)c$w{sYwϝ2qg8߹w}>y;˓Iyڗ`,6OW_uĈXy63MVjv|J)g1f6aҾEM s5 H-|Qs!P~uMbڒm L bSe\or\́+ NK8%{[gd:+^*3c} y2<=juyI)>] \*k7tU;Ϳ! %cぴ$zp/O?J_$!H RZ 1=鵭&ؽ--#rly(C47ϟڇ~\ΧT4iZST*h64#ºI˰3.6Ov\J(v ђm|@SER$6/oymWx(L L%\$+?H%'9'.3}lJ;S7HR_eGg]uo)+uJ/wQF Rs xA*x[RL^'=Na&6?S  c}vVъTѯՐbGJJc&{k/6QfGV )es|WcOU[N-TX10݃ LC|C.},΅9t83޹[𿐐}Eeh:U*z/@%Aګ_?ݍE1QfG%;JSb~񻧻`t#'-x"ɉFF" cn] ,Gmwב6:`S#)Q2Y *_HԾ2}XV)CE#V_%\L"|Nn,G4;ܽvX"MwuK rGK%3לo6Cc>qcqX5hvjݣ6;=(e5z)e,g)ufRi5 {w[ޖ'w{(^]7 _ zgSuZ8!!Ki/c7P V`#F -uqNvRzk ߨaDbZ$Pw}d(GJ)Nv-rc~ǚ?뷆l}%I!Pe۞c)n*ﭾyꟑ-otG  VKeQ_HRX'3P0/+C]#%;5G :ߣңVH:7t{.)WՒEsS~()dOtS?*[RvqTguqq:zSNO*y }۳#6_:F.%;4ʭ_ʨ֖n*4d#K={ѰnWb6:}O~S)b\Ij$O~ V t0TOFKmI6kʩ.">=a !PeNJWލp"#0 }O~S* (^<^&3jڤ??­AZأAv|Yhē]I'a)$F&l A^R DJ1)-#JT݇Q?O(e=~ϻ̋ٓ}qE?O xo0§|ܒz?Ҳ(?ڤ??¤;+E"_fyChi3nN8b5F'Amp}:Tjߔ BqP' fH c >II܉(>*]#YnYUBpї+#.y3b?O Jز./[pDK-}:Q<^)WɶUӥI%G"p:swkHR HDH_Mځ;X/b{;W?2D[k]6.Z ^_n+pz;R@kSO_`vg]i)6z1} 6SkF79\1OPQve'Vu qs"ݞ};խIH%@}|ܓVn2(]ӽYԐ(1"2ܓu>(F- C r*ʭ;+`3?^=26w]&&+Ȁ?u۲{V=kp([.m٤_~u۲{V=i6R<p645Lj̡4tu-s. w օmx42[ǎ+?GR2)Pq h]  H%xzoRoמ+o(N6O°g* rT};WAqe-Ckx -Wk<Xq@VDqgk[MMօr8Ԋln8BwRHq 2l}O><`m={vn? sǧZE{rgy$3(ж3$g8Z%exQBY_tI"P2jޝ/\&mU*ޝ/\&mL [kh eRq`Ȯ.-'-oC^s`MO t0sҒ2h[ w#HSuo/??8܎u"\H&BP7`[9>aqL0Prc9 O(M>97+f[i9pJ\@M͛,'` ٗSRBd\ǜrN~SB3袊b5(YHa _^3vԣ)fO!D%}xOڲ)!17a^DgY~[qbo, ¼#(`cElǝI?ұf<~OI ^Rt06d>o\WT* %3<~FQ@֪N|F̒?#Tj_6с$qzwLq#g#"U0f?s<ތ^J=MqҠF/%¸PP)78ٿ%ale~n$&7<ĽcR-,ۺ~K5oN趪oN趦hs5dK{ sȄU$[ij|LYN9 ”(9up`IZjn-;VMkiз@GM-Țp1#9SlLJ#)Bd#9Ӱ4a1ʛfd?OX-@qȷ}c`x:Ԍ2B׶12:e>ᘖAY_tI"I'O,/`EXԣ f+u6$RM[ӿ-[ӿ-{{&9 CzJݷ͵Wq' 0Һ+kk3D[Fr($UM>MȨێUz/=$ ekiз@GY5B^x~qE68~tň.DO7Oḻ҅@2 Y ~u#+Ml#kvOӿ>_RBd\ǜrN~TGԢ2y#<ϵE![{2P.cDesӹ'?^)Ϣ)ԣ)fO!D%}xOڲ+_R>X_9?jȤ¶.+XyGg1V=l]WI3 #o\l 4QE/Z:Um2Jg7xQ֪N|F̒?#ThU0f?s_MڪU;>_Mژry[.khF~mzk wb\ǿ=kjQ մ!B!w%cGqc[$Ib? 1s#*h[ w#Hf{R*[ǰGzva/ 0]/N6 eJ+ F0I LDbi_2Sk3 iY2P #F#Tz%;rvQ׀oAHo=J1z~TޮWJŭ2۰0uךIΞzL_Z/QPk}rA%2:-•vkWj@AWmϧYzko)ʪ#?#?Zޛ3KyU$lQsJ{ɤvw٘䱉I'ץ'd_³\2v/Gd_R*oؿiߥ 4 Hh'bK}O~(5!L݋/Q?_@Ԇ2v/Gd_R*oؿiߥ 4 Hh'bK}O~(5!L݋/Q?_@Ԇ2v/Gd_R*oؿiߥ 4 HiA*r Tiߥ >'bKhbrX5jř_se bottom-0.9.6/docs/content/assets/screenshots/process/search/regex.webp000066400000000000000000000437001447252316700262310ustar00rootroot00000000000000RIFFGWEBPVP8X ,ICCPlcms0mntrRGB XYZ (acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBVP8Lw)/GUi~O!̌e33333s.t9y+#+򔹍4sKQ)d{qT2cN2|+%+K1)8ѷ{K肯nYEJCQW=Y4 D9ր{uɲc)]i:s켋|%m&YSntJ̫\2B CKV\eہWiua< V|VvHYet4`'!w, ȑÑr=U\e֖=EKΕAD۶M7#vRŶm9 iEI;]}Ѷ]ml[3cAH2_筵`?wN3مLsXc6:eTލl jʎWԭnvezd ^/fFѧU4m"S4 Aéh0ZdRV W >ANŤ!-dѡU5jU;%z4C(I3DC ]AdWf ġ6"@ i"&PdZAeLW! S9AaهQQ *`c 8O Z@Wv@ !hhԡѶX.@OIv4/lDWK@0-^m1n QPō;Gл%[;J@U Z'Zf6 j$^hD(@OIvf$\NkLzS6@]g$ STÑ "IguaYz1@r['xnq3=A tdi,SQlū"5 jr%6~f1 ^D0R}di=?}Eea?׾p@PưP cw{۽Ve}{uT99pn']wֺvc,?=iY:[aWb{饮%7C#MWQt\}-tdc!]OuWcLF,ʎ}[E+vZ,rcұ,F_XYYz + ?~YMeUeݘ졓ĺMwWY mmҶ0P-p׵_bca\vf4gOF` #]OduZ,?=IW u}<{hb3m#7c633ۯ{dcc#wmtbhB |sj߿>_/AKũ(8یMcuƌ=` ydg54S;J5[r>0OW1ۤ`ec@X\<<2>ZgE+)EOONvxSᦈ@X͆%chvy:][`ã!WgAshqsXBY]z]47\egs`Vq5݊u`mP> Y|O.,}1v5-!]aDz;r-F_TzMMU#Ul8-JONz-G@c3,[q_nK2FnN1=k2gƗr6ѯviycrmtP^qjh=* itt[Eci.b]3g,Yt&uiUԩ[-L#G;w?af۽Q0;mC7> ڜD Dh2iQu-{2.ؠ|yl:@Pq=S6|&]YCoql]b$?2ݥD(_c^qpp)pA8A+4F"U A\ 0ݦT,Gc|ԘKGhйGTK? 1^ZG9@$6f5ފխcx zg/f@-xE iC 'eS>qiz^?,^e*siwՠP8E+4];c$|hZWx{=IW~zT/ ]DQFmNu 2װ,og;5b+YVyk fɋ t694|f-E;8oALJOVw| sP┩;;q"9gRs3h\~h_Ywa.,= ~l)H?lU5N embF?%^>F;8}HG.>IᲳ6uw:sc#ӓӸ4Q@Y_ OϗqbnxKb:Rΐ_+Ƶ.^qfh4q6ޯʼ0h俤A=Os"G/n 콡#4z/ꣃ:U+Čd‡ j*aqޡuQSF0+0Y"[QDz5w:o'3/="F[2;݇{ Eg+eotes+b!C{Y+ܟRӮnn2eӊs+b%C{_{_gu?c?lS_s$&MGYsH8%ae"jEt+ߖI-3QѫxXX1Ў{8m=PԩZ;[K&5MsPZbAeD[%LMCOaT4'&asu &F2`©ɦ4$1YIn\Z1U j0mLU$7?+N]p} r_bK1U8DS C+8tI!=PP4S'p7W|\)㬶/FL=$CsF\F5S<>v s^@鍭> ġ-@VifE g. \W)%@L2-\@9/U] IRChՖˆƴlxB"г%ݨ,s&:Фj7}TUCSrKQ F-1gΜ99 ӣn"$b&!hЖ^Ȋ, xrFOvq$/8%j'X}?b.Zx)&J)?H%?%^C} `HFFI_<*&XZF{6j@<@-tȫ`2sq}Th@_V\ d4hFr"=)bt{'ӭvWUB72#9Ë8)C[C"eʟd!:" H%R(2OK w0j@ڱ3+%J]Ȓ8D>R!;U $Nj ?BB# TcBow.5Rl2"ThK'4i _AqQ&漛:LQ"G4E}hk7k~E%mz&=Y$\4 miY?+½DD>W|h N~*IJ}Ae'[iu&EPnj@K[wJںv+βCss wC^р[wJdں ݊lܜµEPDWD5-;KO%RmJ@o`,947'p,}giPDWD6u'Pؾ}gD[nEYvh܊u7!dZ;KO%RmJnEYsh"p2}g(RF5E}ST[R#6wU8&( TZ*6pYz*jVv3βCvd%s^--wJ[ch feSp3 wCՀv;Du+9Fl`,:4p+ wC^р[wY֭d݊lp3 wC^-(,}[I04b}gΡ[w7wg|ȞLq\~2;JT &dcEdF2ؠ}gO,Of}gYؼ 6fYNw;|T]fO${h^(DwNv;k$\ w9z".* ȶQ}PuJ|ժM\v;Kk'7ۊ^]˲1΢:')|j~V}g%Gk V)Rga>Ƒz'U=΂,=V\w9i &Xp!۾~[$z@ΉL%,mEO7䆳YvaE?uNN;3x7vJi j04.B],VDCPYYʹ4gI` P [BW0+26bY:;G[lоΉ61G(,+ĭ > 6eYp}gI݇ѐlӾΉ)+/,%׾~|Ϸ7P| 8KUr/y!c߉"6fYNv7;K=Qu˲AR?uNtOYyCsYL}g-h~{$3VJ1g>y!T{wJ6fYNv7;K=Qb^b?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c{B̞v?c/#M/2[l-0t e$ƻ k5ƨf}>5i&p0ǷMZ8I˜k0qS{&LERTiLEe.5vtC xZsVD9L``;˕ޏ@ $9I~dK_5߿!˘A7 =C 9UhBFNt0Vawq22 i?/@+F{BBFM$D1c|&.^7aMkiGh=?Ϻޟ1y痖#g!Tk&r?O`v}w?6bgfe*_r+ A,2i`:.KFN-R^'݂u}ޭ/qsaPϓwN:C~ W~~EdTK]=#(CǴC|oOFb]U]bC8N1|ay]+9"V^ :ּʵ\)Q4cf>|d<Ӈؗ}m#7!^x8[<#POEIDi.Qw>  8Obr gb Nz>f?C妅dѸqqyPùs-]B{,9kbI`8?Ԋ(i&EAk"A22utW9 +шYwzgdѬ} yZg˚z  +P(4w ˣjF#ZߵO]nBք2/5:- 6~WrDEs"f'LqYwzg$Z !\!l飩hwii8]\"(r]n.uEtO.~,ֵ"V՛@›МH*{iԂK<6֬mcaڃS?Nk^VCknCǹh%T;_e7UFh7`{]3w׵ONxwA=`rW=SL4g!)Xǭ4Y5&RT$_4ӡZbm=%̚8k?a87zrBؙ5=#q֖XXզ6z{j:b_mFOn7B$Wmf&WwxEvfol2ÓtZfXhQ@Hil[Ϩ;ȑsb`D@YJUap5~ul{=/͠Ӎ~=>Px*akYv<#݌񴆱a\q4 gmq= [5d%՝tG4mfQba6Ў0rA!f8R!{ j047ֳ巒 ^*u3gNZΜ51UhGI*p(@tV {&f^deQ9#?#?qƸ=0F3!(^.|HtkY b3 g.cgx ] '{pBg Yw xx]'>%ڬ"GT3^O.jGnpT4*1ou 2sWNjy#?7ܯtك?+ď]wcT3 |ٰ@1 B܍#PE8{v',c}rOw{Ԥ XWѫ7ŅN|ᢈVfMH%ڃ˯roۺx4rx[0 +1yyk=fJ`S?uQyzG޵B=# S;-Ao'O։U{}/\e{[x*bn8ECg>w""/֫x? qIP^Hҙr4P(̚8kK,:{ca+2om{̟AV2=qy78™a<qoZT)^D=#}ϻ-(dVJٛegHj)l1F |?2lFи_ϵIY`!@Kp uX[.*|8Z2[nMɳ\UNw `y7PZwr"۞֍}JL?jߔ iZ?OWT s>ǏjΣF$O?O$5(3`eM zu]*'UINnFy?\wPڤ??IAE.y}d^o>̘Nj/Ih[y?{6@'a)$7 Z(׹T !Oʍ<[~ZkO$۪t'a)n KݾέHy3E)9>̫ҟa<ŒI\Tϙ=,{T݇TNșq~έҪU5K d%dato! S~'a)oQ68,U`(G\Xq[pDK-}:Q<^)WɶUӥI%G"p:swkHR HDH_Mځ3Rh ?vN?RNYG8@d+} EAҖ''IEQE80bFsiQ@.7ti(( `14Q@(bQIEQE(bQIERU`⒊RI9$IEvCbA;ϗi_5n8 *ޝ/\&mU*ޝ/\&m@)\!kU*ޣ)\!kU((QEQEQEQEQEQEQEQEQEQEQEQEQEU;>_MڪU;>_Mځ)\!kU*ޣ)\!kU((QEQEQEQEQEQEQEQEQEQEQEQEQEU;>_MڪU;>_Mځ)\!kU*ޣ)\!kU((QEQEQEQEQEQEQEQEQEQEQEQEQEU;>_MڪU;>_Mځ)\!kU*ޣ)\!kU((QEQEQEQEQEQEQEQEQEQEQEQEQEU;>_MڪU;>_Mځ)\!kU*ޣ)\!kU((QEQEQEQEQEQEQEQEQEQEQEQEQEU;>_MڪU;>_Mځ)\!kU+b[X.Xj L1 fpd#mY빗Ejf{R(Ͷ#Ss.Ͷ#QmKG.tVm/roj_?auˢ?mf{R( ]mKG6ڗ9E]w2Ooj_?ٶԿ,빗Ejf{R(Ͷ#Qf]̺+S6ڗ9Gm/r0eZٶԿ?mYs.Ͷ#QmKG.tVm/roj_?auˢ?mf{R( ]mKG6ڗ9E]w2Ooj_?ٶɨ d߼Ys.o9.0v%qR@TB%ux;Q\ -xdH%]Fg8 wGg-K}zR}O~+= Uh'bK}O~(5!L݋/Q?_@Ԇ2v/Gd_R*oؿiߥ 4 Hh'bK}O~(5!L݋/Q?_@Ԇ2v/Gd_R*oؿiߥ 4 Hh'bK}O~(5!L݋/Q?_@Ԇ }EK?_2v/Fv'%}sVY19SmQ}O~)VU-IRM\M6XMP bottom-0.9.6/docs/content/assets/screenshots/process/search/search.webp000066400000000000000000000454241447252316700263710ustar00rootroot00000000000000RIFF KWEBPVP8X ,ICCPlcms0mntrRGB XYZ (acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBVP8L&,/GU~8O9 adݏƍuG˼,-G}"MMVry7VGBb$3HB}ԁG.c);Qh" ewХ(R1eLqSr3e8eewTYN YHmg)7p9-ERKg]摗B\̪ Q̼/=*,̳TF4eF/zyO"%*JRB"y.=RsTJouP:*8}fyȳ4/HQPR$oWu00% 4AdPD;eJ4"Qt3~e= QZ/ d6 &B}\%1Ÿ.C"hFLDdeIe R[$ T+PS7]ش <A V &C P5H   X).n2f"Q-L9 #DQ3OAb̛QB-E `q@'s@ ceX)ɍS*-Q 70quCIguQ7pG:A[D X\DJr9b4lD <:_b@s"R7Q)(+%GZ?u’R-{oK ""R,"uZwgK;׫5cK)0}j MqCR\xri5{e4 _s< 0vȦn.S'W9@3n0zW3kT̾:,$9,yYX.]TYYzCq?e^MiU? Zo􋍭c;[x5o)٥\ɗetH&*FasAQuY|ؤ.kpܓr2=W+*:C:],)5@he,(=7MnQ&(gU-G̸"Qv^McX})束^Z.mʸ.+~+kԛki\t|Eƺ6vyZˆ'n^G&dbpX/e>̿DCq^/曛RqӛM>X}^0GcFQ-^z&ZAoVCS;k[e}^bs3kur]'q^gًݧJ%j[\Bdk:~5'ȳ윯z2`$< S]ǚmn9cXmWW^x~tPͱ:m(eyGd Z5n 2=؃l矝dzhO/M~VB5y!iqj G.u hCًbm&iv_т3Wu^46B֥jW痛2}=.Xk9c:CD̰ӈ::0@-N""4 ̱'Ѱ-MuzTyP&;/̣8Υ<@Qr› ,-xb rC3 U^H/3^{HW[Ȕ&e/L`;vo5=E{4fP,=`e.}Ddz4`|X+Ͽ2Y!^+\qƩ5`!=jyk@]oqiV{Ҥ ~r>a՗7f-j%idiBheq jWA%k^.X2a9 =4:ΔiѩLf3eN !BӐ'v&{逜Db)ZV [%0-`*Le\XJxCVީꋍ[6#.4`|9G4`{LsX Z`Z0ѡJ:u^mJ-{HLwfh$I.qb XHZX7ǏV"Wgv>6tzq_?4 bWA̽8caCPN6#*F]PI 4Xś >$iկ+boһ`M㓛GU*y5BF տT=>++YaѾ64R?~JzAtl ,{f]?qǼ%S}N9U~3:Fݲ1Q>?yW;zWٟAo 1gt-T>+}_aiNY\A*|S\m}1(,!c=͸8@д5ѣ!i,^|9IE#Wᴖ[fN=Ábhky!M{Z)GdqYz;QVt }s7g!oi%4ʓ^ƭU hBDԻ3Өi Dgp򯌈heZ ƸPU]O58Z׎Mni a)v+,w^MG\B-w\r"JǸ[h3!Sܐc7tƦk`@#3N1KςM oٸ ՞W^vy-~Lu\n!WFA*x⒭:E7YS|҃GLCy'ϔkO$"FlO#'\}?эH-E Ӫmfw^ap>ܐaLʖAю9LL[m:eb>廧S6GQzX;o7{:xɧ' tP0󓯋Jg21KoWiS:,{/:ʓNFD2=5ڝ1"=NtuƉmz#x蟭FϮ2TzI~Mlee ҧE> Q~0UkqI˔0FW#^BxMq bȥ1=1<ɒX/.uH׋mZ*Y +4z&֦3K 瑟FxGsϏ1~#VtGӢSW瓝cڏHOS&uZ|2GW3nuO^8Q1^gN#"ɋ)L{.4ʊ][6ՎoϠqdJD?"Zqj btJ9Dy1Tf}|/S'zmtj5=)R^Vb5o?ʊ-f_$TjWOrU IS4"igQ.=1- '5<.b,I5jCM]8B᝟i _ Dd'CY/* !Eֹ?xnĈ~gD^>.A\IOKS&.~Dyb CKO'6 25 }IrNK ݅yJ#ң!櫔XD|-abP=DDR[߈7UNmڴ-"2Z?y!"<җ M`y[ʊ*⼛>'nwTD:4{Mh3oD6<}DV0aZ[V}BMBȒDvwh ѝ4I1q͵/JAHQ5E_ ߝ}JLrV4on:u%=-M:}*v] o6ZDmTWn|X])$ ؁HBDd:1ZL¦ޯ-)׳ʋnڴߚADBdEp9j*W nD[?w\Ґ[_-$]KLXH_ϳ^Tw\a3nCFAĸFEBvVD{yd4.DD'v[GLlޢ Ħ"mVL бԒS쀲v͇J*v%k:%ۭ#M`)s|..gt݄V:/B1BDߟ-{bjW_!3\KOGSo4dV7w'" hQ1*:ucEcyw9Ң:|Nbzq^kp2ES>{.6- Y:E$JZsXh̹sb}%9XDͮwo9/ҋ$\?hMU+X:u˄EXX6_.ބOZc x\95E:}^G\5ū8sWpZ5(?5=ѕ44ݕ0BDBS}뻇}jZqbb3pʓ(DDZo6A9կ+u ~3|&ݰM1n&ߥdW# s(n!+ۏt7[ѫ<% A[V}?kD倯Րe=_A O~E e>lMaC"Wټ9"[]|~tj};qz\K߹yOקݳRIVwN.NDlL}ʹU|c¯ۛgܸQ17|ʓ(ƈ8ŎYƾjC=k_"#("hq6Я?Pw13z+Y~o8|:fUUxW _y6kMB*~ lǽJGwM>Jhȟ3^̀<#pUmurPW^N1\˕ݘ'Y`ۍ9-ڴ&GxfJZ%eq%\DYG-`*=-¶ pe0K#LbMYZ,۶;KqgJ?K6+I#YmaVqKѧ)!O8̀RP&e h@8ǩOBqغ(+{ 6Y@#YdA `t6R,X`3'vҪIHmQΡi:+m~*AR YYqnu1ФDL8AYVm,Qun Th @nb@4Y :7 J@|3FJ@xj1nOFw3[j&HSs; Σ(h5+N"/ ENjbsK(iφ/-i̝H2LUdEķxS!W0Q5Il[Ovtn_J<SP𙇆0nkYPl ͫizLԉ8iAUues$Ʀ [dȚ' <%KZ"͚b6 8CfUIE!Q촁M; #qޥK4ddM3&C$q^@ mTׄ="0Г>%4}CCO ]HB}2_A -[9[ trF#*}KӥtydLN(şYv7*d 4/Ft*OeϞ=;ΩU 4B9hd'93dRw,Ia}h-=b04<Z8'yEZJ'>dr7m}=P Y$9}ɒCh̍@ᆩƓ:3)sρC'~>NTɔJ>߶xdAQyem`E5"C46vU{dy$mBcQ HOd9:C@YyyF[& hq6Ѷ~Jgg?'xuhm%GҮwm)C3Գ Ə wWVh=IKLCVi5'MqdQÞ8wRۃ>FvNa+]Ɍ.L` h; \JXTzZ -m@ y%zJ>b)rESixK,уx{ x.Y&{3Ck}$9qJ:hZ/-<|-ꂝOuU-> :߄:8?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?c?ߚ#N;܂c̈s,9.mgp1TF ۧ/i"]ĎNlu. Q$PI#7,_%wQ{8QCGr:^/a.{h1a D6c%1}w51uC%7b {A1 C69Ydmd# Od~-B'v@ m77,# .l44k.,a„m̽dgZ[-j`c;ceag/;5תܧ=`,Ҁj`[t{` :X訛~L q}$2EF[& j#( 2p['u:åoD9;?Yd,2F7njG#nc1.,¶X]z>A!"= ̆A t Lk2CӶmi=wm|R=TmIh*=e7 v^b$m^O;۲"Ƽ=xTU{9ilcW~siQ>z̞]F.qJܸQ>9+ nzy{ zR=m[ʷӿ10{r>>D1}oL$S+wi||^o*Ij3y=[*4>A@Q7LB6 `ȶsd4֣bO|={>{?c?d|_fK~Ō.9e? #ӈk5۶6fQBbGJnzMDwC\\v_6 %DؽU9~vm#k>].P ,Cֻ5HD;MR-xcy"WtG.uԹț9ݑڵq:Zown>}C=E; 54`ݭZTt8tdq|rnv`8w5ݑڵK .9ws6VBZ~9ݑڵR٠1Τ4w؃ChQݦ}(>3e,J 6.Bka:>Ay;Rv3',Lv_PpYeԮ$Ft1ٷ`ڵݴƧO c1 y#?El>bD<}1-8 DԮ-,a€9[],2jedG-T+8XzyL$ϟFg]zuO uMtdڪ[+#_9L2q׆,>H݋u lvppp5<00â/0B-"uMtv…T#6i G$|"dQϻ6tDd6ȍ8zX# "KtGj׮\}@v@7k|k#k;NQ0eWSG!k:S{0`^ގ8Jw&8ꏳji0̈zEԮ]˸_KATBZ~5ّk߻uaݤGҠ~x-B ;Tގ>Jw|#vgc9;)zu:2t fZ\m&7VBZ~ӵԮK~ac+C/]v4{ ߞ?[de]w 2>՚X&w)osޙ7}zMXÌִ2w?fҸ`ncrEXIFxII* (1 2iCreated with GIMP)[)[GIMP 2.10.242021:06:21 22:43:47Created with GIMPz JFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?>R1l'rr&KtzTs]um;K6݊CxG^hoEs(~a]5:h;2v/S,Nxl>̭ʺX@-;RtNHzJ-}'(ϴؿv!lCN2yhӿ9a߀'J+4^@TH>.)*叧u+I=xGQ'CL19UOod_ؿv_ZwG,W|~>se3c=֩O~+DZF7ǦX1 oG 4%*~('bK,J#qƒ?+CUO_d_ؿv_ZwG,W|Qy}d~o>θNj/ؿvPMv"gkӟS&Uo9'G2v/RC8wW5D u_ZwK ;VQȘ)pr9)DH1MJ2v/],W| 4a߀'R i"{ձbyR0LJNw*eF}*9#=LONOlweɢo5]?r?iߥ ܉%A:OJb椋3J\d0>a߀sUOlf'AѼ1ML݋/Wm'7Eag;Z Ρӿ9a߀'R ܉%A>)'QH\g&WN䝶ͥ[ R2mdB5Z1sUߓG?_dt#+HFG z]W,W|'j6GIK~eO=N)\"kUj֡)\"kUkQHaEPEPEPEPEPEPEPEPEPEPEPEPEPV/jV/jqRن)\"kUj֡)\"kUh{~QE!Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Z넿-Z넿-qKf|pEUZ|pEUPQEQEQEQEQEQEQEQEQEQEQEQEQEQEkO趪kO趧-j/Vj/VGAERQEQEQEQEQEQEQEQEQEQEQEQEQEU?>_Kڪխ?>_KڜwaZZZZQHaEPEPEPEPEPEPEPEPEPEPEPEPEPV/jV/jqRن)\"kUj֡)\"kUh{~QE!Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Z넿-Z넿-qKf|pEUy,))1F0aA283./鵨eZqKGG\_ҰEjeQ/]qKGEtV\_DtX9EjeQ/]qKGEtV\_DtX9EjeQ/]qKGEtV\_DtX9EjeQ/]qKGEtV\_DtX9EjeQ/]qKGEtV\_DtX9EjeQ/]qKGEtV\_DtX9EjeQ/]ِdڂ0;g`F]Z넿-%1㏿*E s7"֠)%ux~ZWhdK1"hp pѬc1E#ӯ^: CBƧ ނ3?/OʠRw"e6rv0/Q:)ž6;+cGo+QIU Ŭ[)U1aJ2?* &23yKjvRU8"7rQ?O('a)}O~S( *Ijߔ RvGڤ??€ T݇Q?O('a)}O~S( *Ijߔ RvGڤ??€ T݇Q?O('a)}O~S( *Ijߔ 1S$QS}O~S(T݇PE؜9Zvk719brT_jߔ Uwm򔲕$DބXMP bottom-0.9.6/docs/content/assets/screenshots/temperature.webp000066400000000000000000001424041447252316700245320ustar00rootroot00000000000000RIFFWEBPVP8X ICCPlcms@mntrRGB XYZ +acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBVP8 6*>1D"!xL ~8W<>??3u'g`[zv_`"Q;7߻_~|~}ߣO#?r7???q+ᇞ+>poOo~@GW/>~?l?zG?ُ<_?7 ?H_?J+Js??q_ܿ޿џߵ?AK@Q&'3  ttշ7hٛP`2 ig{ۯ <1}n⋳+Ɩ} .̬.A/F_{(fW,{u]^G4א\Qveui6$6 o*A=dKz;R8$뷼AOr [d&$GWV˧tyX#.o+e`yGPjq{ZE7&,CAq22F]=|vOrTܬO72F]VAcHXx:3X9o3UPQ+џDEaN/o@:(%HtyX#.o+e`yꉵ3^e?Jl X#.o+e`yO7qI^:#7)1\wQ' SϻV,:B尥FRo'? Ng?E\bχju'5\,QѺip:rF]$JW^ykžH^\Y*#vMQ<2jM@9\==cd'6!VF]%ċv )GQD6uo`:ֈ?̕'AuSD 2v^q˧tyX#.o+e`y׽HBIEde`yO72F]{͊Z~U:g[ 4R.+e`yO72F@-Ɍ>׀} bQ.o+e`yO72OG|nlv`]Џ$B1k*C#NqБ`t5o?' uSDqJ+ }UHShteԦnV˧tyX#.o+e_H!Js0o"ބDV`yO72F]s?tyX#.o+e`yO5/6!޻NYI@gEl5x;3m;` ͊C%UwH0yLyO72F]XN,V#bnV˧tyX#.o+e_/4J;>]2F]Y{16BziR$kLTPJ^<(mEc^F F] AUkO&ۋC(LM.OM0y/,-ڙ3,/\| SrIJ!/rDJ"kLBt۳;:󇁹ޥOT&>K XﳈkKY2Y@謗͇|v2zTii %ɩqcIx*r68h~|\ht0'W0gTq 3K7K`!0eo:yHz29` -)8r3b jZ0cH"A3,dϿFdm^=1(b*IK=X4l{ E‚GSp(;ǞMr3 $8^Vq9֒* t4`Ύ0r&L2qeRoE%}.ڳNYqG<-||ƫ>%J# F+#V֛#)a4ITlv&VB%S3sd2.  _Gh9VYT(uk=? ǯN^=D;3C#]hjV9~3I3`OS[&@GM?Ê) ޜ`nN/[ykCi x圕3USC O6L8[?^9dcB6[?[RWPo1|YJzo$:Xd[O=zb,%ef ֓{8mŊ%Mc*h3L  Bd57Izg弖k,<GhA,wM{ߔIX u>2zfR {;|+gW>8"Q8RV[Ynj/|9p"t~h|i$CpԆEۃ[閰;K02J Yv8DhC8Qv:d4ǡo{5f<SWyh&5"Y;-?~FeYm%NEjfa)1LK ' dɾUТb GQeǭ.:Є^4h(ooJs34FrWHyWiXlZc hyz|p+cG ޥz#'tC4#襣wtbeX:nRy%Ti+sኬS*;? [1@׵*D^Kͥ픫8>RY=>RE_&P/lˬıL}Ι"PZ$ I8|2053#|LV箤4=FlL!*1ET--KG ` Bھ+"+I1LWȸ Tk~!q8S޸;l6vϐ(4FKr)R(ufZ=G8'.ɑ%_YczC+]p87,O©Vk*jYcBި1v!%;H?u8!qj1p`>Q=[<| mqӣՌ!Z.BqLI35 ~\-U-;;Rex0~BGof$HHddYz֩I,P5Uw'Mfg ֈ`V/Sf[M޻>^]p2ogr-c !W V#uW.!V4PMl^]7fU0t׋bcL*f83OgD`~;58ޭ|'*JE H+PLaXͳRݮ4VSZ;Vl-uqm 2LkyGKhh< vp%8XeDo8 F'Z[#DK_('+ j5_>.˭I&fN ԕ:Ϭ!ĐHĨ>=y"~j'/)`I<#Fw_*Lc *L#T WѶju~漇إ9lvI8|e* 'pO,+7&X0r B^ȚZ IGv]r!~;f/!{ 9EJMA1LXX\U, {~zp$\,*}V|}(ċz)IR .hvOb"_as"?D 0C/Ҧ&H%wx|؉*wj[@ wx%҈a M8HB&הBFѫcrħ)¹hh_ːfcp~X994ldM|pa+_rgS|Gt=u6 bL^9}s3i36]o4=%W'~Db~Ki>sScҤΛ8-RgC]7)h"tM@37VeHO5@Fa%Tw/M\Bqo]% Ҫd&)wMs QgFXC"Y :9%\K01~ :w0^ڷ'۽`?礩|!Ѽ!XFrr'wGr_(zMҰځS2cbGυ"8`}~[p| kbg 3;Rh 639ڑaC ]nn#;'܀/x]Z"]ϖ$2BC^!DOA[i4E*Lt #ݾy_KZ(<,9{5{fNܗPJ1蛽; i}ecH(SPp׆px@ߋJh\Z6Iw= 95s4O N{71j]cGy >6{$:U]&=*Lv"/kjIĘOMD'^_%Mn'8u"7.w[V@.:)hf˭R+}Q{fm& [$$ zI@uti2ˈQ!I筠,D>?I`[esZNVF;Pc|*%o$ʼXT\a*[~s:u?ME^ S66ar>w5loC:U}u? N[7fh+Ȁrq> 2f#X aR720y| fK]V qsL726{)g^Wdnǀ!ٕhTqiG9;DF_SD\![>YczF`C,G͒5C |`UgyCdӇ9C6(&X$e50s4D\M}%b,= Pv3]Ȗ ӬWϦJ9Zː5Fâ4/̓?ڌXK9 6!ue'n%b(pt{޺_o|R%Zg)T&%Ũߪc~n[b\Ss( zJCu6sgإISg¬ߤ[U 2 9(ӝR9JѶVVɟ4o[=]hdcHo薥j" 깏WTp9Rz'/N iy vON V, ö AV@k(2,Ecsͳl_8"}hU{%͆2^JT,þeOE<q4SvWVtOOmՎ& wa]HegZPou9|!>>Ϟ q1Po{l`/-N  IYfHqӫu-Rhh`Vz#ScE aZSI |9m.er֘Q] ;&l Mޤ?l8]`4;\r& gV#*ԭE>~R2ۥэݴL~jc;Sf|<i"_0]oCXB|Gԟma3T,BUp_EW, ׹؆_>caƠS `C, 9tX| dU^ʡ-f#([v mK*ħGu_$uNJ0AQ_2 !1*'jj&q]<ՈմQٞ ^w\+:ik~[MnDܘ쒸WrcJ"nLvI\DMɎ+1%q7&;$"&dDܘ쒸WrcJ"nLvI\DMɎ+1볂gÛA]z6ӳF2%N.v( dF(B-M{vdT7C1wიr"\PDQUIO BE OHf\ˇ f=>a003|S~7_yԀ %nx dY7w@nօa*xx Ѧ\-5+R̮"&dDܘ쒸WrcJ"nLvI\DMɎ+1%q7&;$"&dDܘ쒸WrcJ"nLvI\DML\BZ%*Iq(1F3{hS'+ Dۦ.[R|S{GRp$)hZ, {=G H.PTS Mj:>lnŠ~ 㭩\ð9:LSDl9Ca$ڴ㎴Eo:xzN3ei *ئWf^s:TFD%юuI.˜_xT0:hyH@s)C!bAd3;|KY)`Crt%Hm=<~P`R(PdNj I}::T*uYvEh8K%, 2A ekUZONyMHR”oY,UOjGPw>i ukՍXam$vIÉqHF߁MZukQqI_@=*, _jB?<:v%;ouüh"Jz u0UpJb5,ncT?f5D\4UE4 )2tdE {y eʽSe{TR<e:2bN*h-\fJ0u@e> Հ49k{94'NwՐJQO; )QOim{rOp鄷iۣrxCoJ=2d+o*YW?MCSZܨ1^(qbQD3]XEr"Y+rxIع36U%ܷ&/B~=;F7tl"Hfqo]Y?Q6xgn'EU/WyiE'46m8k<# Ҹ}2 ?RbYVzJ#b59tyK3+쵪yxH{\l"~ ao(DMJT؅5>,%ޭ͍)s)t\^0[cwsJaPy ''OȞNr ܛs!6m10OuۂBTr%J  ~Nn~AK/á/햵 I0*I`xl,=A_Ǣ ȉy#`B"29U!L Aڋ70 "¬FyJcш5DՙG4L-7`iy#2AvRXK6dH +&74X: !{)K';r:/+w, Sʼ&6XYYYRkRƗ7ȪɊvmFʏ1{@vmٞTIy^(+«`_,SWA4 r]a1Q)&(eN1v0n}A2 u6頢.  fGy#m4-^?ZoD1A(m<V4e=|8<[LhTd.W\>c /~1';3A7[S&T=u@ް/}fhl"Q!bh͵|]-Ԩ#[d}tFژY%q=OJ3e0fI26:T$=I + cR.KA`}SwiqF-_k_þT=P4hʖ12T re9;S)P.xmxDGN?Y"0FW iyڭ]7_&q2 Wi؋ww*3~j3OSȬ!jny6Ip(zae 4\#_]C#hU-[c x!͠\kV՝0*0 1uݑ}}&LRk ; q0"0}1L>&ZOT` hS'+ Dۦ.[R|S{GRp aG;!gR"ڱͿ;+;\m/JD'NȽWSݕ5V{yB3K-?  gQaOƍ6\:dboEdt M?!1Z&VvB^q{#[un g*¼)):h&\vu?>{}T& @]YҿI eF(w}wK҇ɝ;7 #Έre16ޝqZ;oVxi̠U(96Ψs(œʜ|}ФsJV sġCQQ)&(eN1v5KkILmgG70dOPY!rÿp(C|6]ѥB>C; "un'$Jݪ 4h(GɌ#R'SveCV3&چJ/k >OO,%?U8#͔a[e3-űykM_}RwQ^Ugjر#,K idp'st'b0bt%~^8c4a.C*j+G~D'5mxW;caԇSyT8`{5n&uu ifVXVmEEcUg^T}P;t qf3l{yVDԠ\7kbv4)g)qSG(n+p*#wC8F,h[*a2y2QO aH;(ށV#}.n9 MUie/C "?:`Uv,bֈu>85@6ڦ+¥zr )ޓʕ`B -)>)L8W #^_γ) mXߝdL̶"o^k+ D.\N)Wϩŗv/A|ä,f++|b2&>˶O:0FvCaE'%iG`e~[8i^^ ޿wL'5\4aSc:[Tuͪfd] $?6:50Qԁnatߝ[I:D_ ͂saqKE!n>,Vlj[ Tuj/<Ǝ&SNIG^A!6@?lš7ܕBAbLNcRr+#يZ |/OGClʺ4 >r`?1i5FjߊgA5vob1{Sy$Y\@%cq(Webmk6h޽qC?*D#W?0eTY uE߃!@-mZ Tn 6CZ3^ؿV!٥:\^ ͐Pb]@!@[ /@r#;)i9 >lv} ,'Lx8:w~PwUCcIAu}fڀ(.V'.v/2qN;0Uj#QPa0v7vOՄztUI;eDm>Vi'H=-rF ,:sTņtndz=*;<ݧ ";}{;TdaQwAN,s%s`)\ _(J iGpmq#f%N-2Mt&}BJ˖Q_ڒ(%2tU($r@ح)SU)zn95ΛQxq`,wY,6mxcŠQ!={-W&CTI!\G4foQ/O 1#s/ bKI?|NRR]#('hK$ Q$ٍw]y"V)x̦E?݁hb_8k]sMS m)djLrC^Yf8nLj$7Yq֧~z\3j+SY\@ZqKCAǵF^܂2k't.CEw)1:y|녿U}|sLD̨qH Wk55.<[ƜL?ߟgXzt :SWڀXWIح:QaetS ր钚,Bv[ન$u%k׫4 ҄^Z<.y/H~Pj'`[rk َ /ºD3UuC9tu?qˠQ%?:[T?`zfUKkǀ5q-`88%@3 |N}O(זy(àGS>8r)D &X,9R<[IP  ]Û"6daHsx|lHWۻҧ.2Е[zdg·ug[JJ>E/hG;vK: CIO)g+m@G,+LlV(~2{JVk@t4˒UR۩&~dMK"B'i?Q*5\Ã#_y45]ܰA/W͘McJ/@S`9/ ^u&k>s[X t&9[C9vfU]SR۸l(.9{t.f$@ѿYN`J}EFaTu>2JȀܷJ3u'ml8@\.ZR ot4Scj؅+7PP:wj$b%=t+-/oA1$C Qo x9*\b nIĹ5p v~G=&ϬS8ASf z!L!'_5@ZXVVΊ>MaV(K/Q5J2}?LjjT(}Yς8l$ď܈ϑ9tu,Q\OSC|9NcU<>cOj^s^O29a*uPh(gyX6PҖz~G8(a=}9ƼC$ꙻnI-רhKUevLJf_B |tA;BRi%4 o 2'C@BߥoP\U͸0 y.Y< }TP x0K0+9~Rި.rv\GO$sg kT?Bd D6|rJOcݗ{Đ)%Q+Q4Y%ݹh ڰR"ڱd D~"|4IX3YbǬ&Y̐5ךI5]J!"Y0#fc (:, (fhu㉪^^)c&4(w= tه?(y uKwIa=yn E-NK\0(ry8wz(-Z _McKx@92oBPT $::7/2|; ٯTݤoibU}>},32  .We MX"VkC)C=$ Y,Vw:ޏ2s~1#j]f ΅ua-YK\2g0*>%x.J _>Ũ E}E^ ׀,D X`[h"2iw}RXO&AV8TF~xW>މrǐ˃4ӷ\m2 0@Ruy$e̖ {GFy)J h64l'*npڍUuרU=V&LQ\;ܦYI:EȒN96OfD\acޞKuʕˢ*_-QЊk"[Mew ґRJd6DK*|iI_eXGۮbaw@/'/yk Dȼ3Iig‹ 0J#$-YnS,֌zBc,fZ(SKeXw`KYnHmc #ף P:UfJ%mvpd]F)i h8~-]P ~V`P!FNB~;Aҳ&ÎFi7g[;~>mb.(2cR̴-RkEX 㤐 (x. R/r;@ p+-Fݺ㷺a܅X`Ξ(1tCwk-щYXVS ' 24 =SyD -u݌ gN<ø0F~9+grU c ;סpׂ@:Y%Q-~ LD4) ㅳ T; ^\{1H;/E:zD3)(m4#DKIMJ0 vX4ӡpLD,B60ɗWr:D5`=2­tu/`Jߕ`CKUX?X&i{n$f&$f`9h;y'1J .NpG k<4ԢZ&џ'; ُagwQZAjItTӶM^wiHg?̮`b=s”b+&v3@`ZLP~N3 8xW;hC?bP3D:AG:aX(oh~ )αo0Bl({팎<:v%Vi i&եu,3x伔a#v)-<S+:Ch`1%90/rGcd1ݪR>76L#KOy]IhberX|NĂP:'`?7& :.\N0$IB{*DЕmCǨ~-!JgLؙ A~T2,f-:NC*v?<֟cm2VW;.We I™$EfdgYn_om뛝vQe=.xQr''#c$NG7G:ZN%.K]o܆87QFMej@4W/g3Ao5 R{ʅn6 {ݜox13Dt*Gw"Zh7&fYqs0cO#jby=oU X!%1AA4gcr/ Yuݪ") ۖs0h@S@t2|$b[`Lf@5&ҷ1'h64l'*npڍUuСT.Ƀxdhg@ 8+FPa皘NhpG'q4!<- S`kIZ?zɔƾbP7P' $N))! 9aVH"6UaAEɰZ%dK)lejbv=jP"x x v hYSճt*Y оoڟ +:Zn.Zˏv@(^wSyIJn,тfcz/(6{soK?ΚSo8G&p[KHI*ILl&̈́dW^lg$b}З!atjf^+ށUͅDx}%^rю:s?ƿ>J4ur^JWaˬbֹn:DyMi:R C6"ZgR̝pŴdpT2&~t鵮wƟĄ僚I :)c1p9Q'PMC(&}muu@*Fख़h[$WxN/[E hRƗ7/*\F2d;~>l,\Wy\'#8T!an8hqEFY2:~P@حMSVS#&/⦏Q"Hu+=j">`V@v#(9m)(CYӏ[B|k0`g@X`.`|Fl3ǿO9YIxBݡ\qZoә*x$(G|p@wp`\OPh#)L™;eN@?m3ؿRE[u;`Xd] 2]X%#ҽ;#ҤoE !2#賈VmsTjJ0'Ks=]+6m]1=tDt3hDj \Ã.5=D`QR;\h0U _ϟg^S&G"Xk5+<±uc >^K !9U+,Tz.0k˰C_JA@F^}8ɤo$(::sm<7L$)(~ ^7X췋h-Q݉V`s՗X3TlGh&4 u'}GnU8>*a13$ď۹ ?#6K*pj7^)s ~%.0V\iت$ffߚdl й?J֜GiGك`K{typCyE͎q{'Oy;G9a42""!yE`mXC[|Bkpx:Q;d0Éx !!kR_Fm6l|Q/sqR'VL+'$@^Bb%oW+ {7zhjY~Ջ!C5KH̄v{ 1#̟뵼CHm 8;==T!v2u<:X_uD[ T}ui'7qA =vu"v Y0}J*&,!J Vm6`!Q3@8Ry`kk2đ~GޜۆR+ZfXHW?F&ԍx%Ӭٚ_nV]Dx{#v/uq YޖV9d\lrQ~(KF&ݧs8T{d?cXnVl?\ZIT+RE[u;`Xd] 2]X%#FasnUO q嗏IF7ї2 5S->/2`FsN]6NMy/@12!teWPݘH+l P)Ҍ<\ȣSR6-ohMHae|yڵ]g8*'x@ AY` m3!Ss;$FZn)Dgs @|nܱ=[XaL`pYqzCU?W TYK?ЧBr~b|+BN~6߼5|P(]ΣИeATge%O %gJu{bZо5򘗿apTP@aS~]$^Pj\V&et`+*y8¥zw@`Ƶ5ޟ1/|]^^ &ExXH HNC>^ `w5AbTR;/4~Ӆ<ƦMjmbXF,m_|jd<֫K)"%G:4OvÔ3LbRPuYR(":}~"6Њ 'wȻ eC!K|Gq2>(:ܫc.ːW{vΨMgC-W63pm,o<͛.U"&"Pz)मz~=UMM]w-j` 8ߊ?73?]. R?)7"6^" hgL^ x']J/N6`vXC0L>rm,pZ§HUI1} TskàU^V>=>hD[P =aj.1@>PNl.]?\(2{H.N}hmKaq-smBxZ? '}Xp-4%_? e2O  y,M[YHlǰ,I'S#y#"Ų~8̌E~~x[8:rj;'j>Ksc T ]_&_E0)@4{x|ve#BۙY\yޜc{_-aAGUry <{'@=MO{Hg =zl)j68ُ^{Dp _͖ ܎ƢpqE0A'%Kkh@Nq^3N<2 EyoRoAqyngajiژ{Eo4jކ3B=Y/(g9QJ8MŻ9&9::T*uW_V5luכ 0{o(d?v9;Ex(21},A|$=u[;nO]nzD&p0>꘵w-T:r!I3doڈ$V:DyM`E [ފ:ZUry }KKD `!9t k݇Y9!@-Q4̀T?FWf9FyYzqej`,~NH ٖ(<;qzgxӨ,YJUkBJHҋo.%mFe{x4W.٤lM.cdy5a=J\_#פݯ7s~1#j]`x}, 1b8几 4w M;\^D|Â@ 8ٲQ~WܹN&YSaRlGm(]yB6ncަS7P3dZM_ȎCyqera”F0IAZ5ܦY5څS3XQL< ʱ- %.5 !]Pdǿख़h[;֋)αI gQx\E{ ^&J;Yj6n-`+t@cYlM·i8Q_`/{ ikek:qǡ4^~\XLWMs4$ ,H UKO P0ŀn-d/Ni1΁ְ0ҤSdںpX`q>U`XPQrs8EdUY<ƥ6<\u&{ .F&kކt!2o/ fjEydj=0F,Jaa.&[i-D幈fz9V uz&q|e+ nyrH'#<63$~N)ld#"V칎] ^DUkbݨM$kb}N4kG2m@"?ܑ]q.!^gީЭ~86d wjP& 6z"Sf0zU' åd=P(@%x?NG:ʷOfN2f[s-%O9; uMdyv@X>Fc"V(M:Uf=_<"#/#`8RÕm0UoEe^n`|g]ۿTy 8i}:#TRIi%I)4$ٰp̘~͟䖗:W,.L؅{*2:DCZ1ߵ\vx'FμKJ#uзLZ-HO)'JUfKBlUXnCsJ^5΃6Q/1]6sS 'OنFY;+ waOJ{< $%=r*LizD)OeǷC[ %N$xpJ~ZRq8]ܰ) (W@|^ 4:cDH/cF܇tB2pg9;ى@HUZ,Q@aabFS0;aA7H 3Iig‹ 0_g#⠻.U b,Ecsͫp#bd=BǷ](">#ϱ6oJUa?ųuFa-GA~'XzQaH:jםA3KlsW}z7,B؜uM#@Ēv!z,2(Wm@(NT_nMR4)yPw:(+_ۓ)V(CDm)׺/P~^ f'y蛀i UnIIH[-i3YWQA&&̊-J$4gY825-/2dEhu:[fy/n{UyΝ{~vyШIwbm n"\p2Eggto{#Sp'?perAgNjKs ^E. T+v4Y X` :T'ɷ=4\nϦx"/K 2U"W ܡ]2/Y|iI_e]aw6Q ,pC l9 Bk涴/!)˕C*lHey7b.:rIG,?N/  zC6FS P'At]BsՖ-;{l($lbRUtZ|}{$Rsk*csc<0\kk%,鼝k|/aw@Ƒ?&`*/~[TN^{3kT(3lĊzy2eJAu ȨdPT!B>;!' pZ*+/qouDZ|:+ ' 9$s"dy} X|V 8⼝M(_~{s@҃reLN4Ri?O Ҿ8%[N;zokqUm?V4!\O-~(Wc_i_ w,TLK7Hgp%jǠ3P5;O|haΦRPl ѧڸ~-Mj |Qixs,}Eٖ=BԤB54z/y7}YB> _v eiYK&b/bjrq:Ad6V?#lq}8xx YB2=hޔ1]+䊐v ÀsrE(쁏<`Ѥ&JTgBri$=3*o&ܻ sA[ڙg6/ۥҘ݄%*pZb"a6Oi }=7V zVqTs~>kW0\{If|=GHZm:-zjsy+s$] $*E7okJSx3I|I[;cU1'0(bnzmcH3ԹpZ>"|y~_$ؔSFCr)&j 6iRh#w1zxN))cxk:7Xԁza_ }T`pJ"?=- w"hGUqb7 >wW`#ōk8zHNz 5ksfGTO^oe1bY4qr Ggbm5^L. YNh+w"eNk FXW152f/]#O|nz?'-\Me4NPMhU_t;ⶨ3œdY2iV!u]w}^Fdkc\&wkQvq5~mpN=`;g8 ׺| Sv[1B \=,ԪiX2$޿PW? \c1O9|ġD Jy΁_=AQ': \ZϬ٪ ѼI,0[`{ji,O 3wyY]V-uӺ9hc:)F+\!aF3 a $N*h0U!Lnwğ5B_;ΣeAlvh9UKjFA3D\˗٬ 㒐gJ٦ 6wm$y `-m;Bdl N'6%C;{S!Lc9WЦ4ql/qSZ7lcl8ֳsFYo-EI֏Os L|rM?m&;!oK;$*E7okJSx3IchPT~ɕ28끳RusZRkإMe6-!4\|i%#J@/`Q˹qMQKZdYuUrXH(bvn'kvP<"$G(-58%, _*]m;Oɘ0\Jb$YgQbʚ+dzb$GI]7gnơ#]9fUH@ʉR$7 сh^vhx>چcv=0PĮ-UWzȑςr)ܬݭG=>I3it#<@=,PJ`LkB(,&^uh#ȴ3ɾmeJBQؖ~8y8A2~)OTĨDT*|ōia0TRSȔaR,PVޫK$=\[/@AsCG=0r jc%T~Rbm~3H`V`!W ONhjrN'\[_` cj@VP9{Y.|o|@ӪRm'Gg\)goRvZ!ԇWe 3vPeάW~"?(Ctj/: `8U[ޚonE>uձwnk<"/0FVvXRnx{@nh ]E".%<Oդ54\ij2iVNXUg I |ı f SmҵrEOٌgt%W <903?M> I*GUqFn tad֔h9-w3C.i؂|Nș$ B^_ݎJR!w0 .u8 ƺKFPE]/| vf; 3ϔu]h8;*{`#W`v tCtF VWFJɢcFv ̕ģT^]wOn \{ouҖ0\lߨc?ėbǝ:q+۠s0ByoC,_mzD2N$aYho,B؜uGRܶ\vE\+9|d\_ g_y1#`[sHk0Sk'rNdlKނ[MYn ɭ.n31חxCΙk_(q!VmSf|,Do(n;]hl>2dO+mE#07D4ǹgx BS+W3 B|ǺGmz~IocO#N~Pg/q6 znZW ) ;Z Z۶b${m6q}he *H98)@ƱrFh:i9tfSNqjߏI-JR- Y:ȖoN"$lН 61CPmUd8V3^jJT62lG+r#&I9/R@; Dy9l{\7%DꮎN]JR\ /"B =KmsQF|a8#aBRoD ؎qΣ'$,i_fz `mP0#K OR$„FGt=>7݅Y>#+D ? Est`qLћ?K<׎$+&+LڲKX}f ryorm8hؿᯙȟXP+A >jGo 40L`HY3v8ɓ_f-Y5$K ŖbsR~ Ԃ'y L/7셄"6>pDNnRzzne^"]fMawB`H5[/{_Qb:3mI^0 ̋Hmʊ6vY= |W3XïEHvksyXo\"۽P~a\]󵴮~!~)&;wCj~O.շzagFS.R _EUejNB'^NN#{wp>d@քP^{tk2]lLM?ҵ.U7oS6EbDIX1M}? Ն+f^D3x U`ng4N%4_2CDKh16)2t";!ڍfFD)pz={J=)khi$o&2po@ 0?I,AZl-q=b~1sMsPuϸ6=hdMBJv,5DO'ʾ-xj4oB`B[Q]ֶsTro̦ v 0#MYqrU-ҰxPՀT1?Wa,Ng]"1.P!˿ˮ% Yqʌ\u"UdVK6?诽XGm'ʗt wQ}̟"@kR/Cj[`\`P܊zIL=-|31H@)WSo(L"Z[:Ur~w֒ Z5xH-|>9_N7Vi;tBy=3{Kx%D1]u şU m?`r9zABt}-Ԃ5ZL.1G@k/zݒFa<=X埩֧i 9µlyiRYPL[DL Br{ғĭNIqck#'HjJs+p>og)`RqSɜtW sGHW(Ls" օ Ύj fL̈mz^xd!Xap$ a^hXC2Y\Hysqcx Z`6jニ-o vpK屽nW EF5r<]Ph_[)xOҚ΂`t]Vi^gvc!eq eHBAv `xSRMHI /W!.3hL@`sG}$ w&*NT^D*hc1icpG}Dӊ -9_m`{>Ɋ\o$iOvZ-rv]8SB~^MdxGK|Ns|"ݜ8br7P(ܽf((\49fDP}j_[6'1!銮XUaPO:%P z!6זn 3agL1u阚uLz'%p-F뮝x?nP8;+ :jמ notvV DdP:H;ܶ3&F4+C {)Z\xGIщ`t1wqYvm :"︁#k2[q$ԝnaogњ5m9M~.i*vpJC _.neg E0[ OÄS gv)ͭ{7G>_ޮ.6)/#cv  Dxφϩiaxr'y,N"GkOLGLЌaS59 "6A]|w]knjZ-r008mv`|aG7ΐ f)2E4!;5u }!cVA!$Y 9t#{Rf`9\Tۊ¥zE\*JJq؞4ѬP1` iD8 ޤrTX{G=lpxSspsnGج'd.6tֈ[̌W/d,!pFBHO}K? mB6Ѩ:Ϗ?'Dև=1'Tђz}u_#-xĴVHTt*aV!DQi֍TNLr2h0x#6wBNM #kQ>>QA L_3'X|Au? آL֬L wnltЅBKq.Ǯ&߹[r mt77B`&MZe ܬz{ fU!m_!9FJC6P sğcEppapĜu9cN =zT"1xo"Xnϰ+>G3ii?4@ e F)|RF$d2.Zc}U{ ϰ YJu泥6y^SZvW҃/* J)7?zhQxqd bSe^ƭϧ"B`PΑxt *^ z)Gn#Wq.?t:3NKg :!}BBzi6gKEhHԅAAZ rfn4\oYͳ[\:?v8){.̃+unI6@aC8W !G{$ПRv00Lih!BA)RsC9^aS1@b&yEM+b`o( 7>!&w3c| kXoH4OP6lJTOS{JN0> )ZB/N@хۑ0X6A|m)(4v*|EuR7k~9+]o P]Gp>qef]S#<6TB84Sxtzi?'nmB&"o-g4 ^{z|ƚ ,@H񅬬)7{~Zts@{_N&fִm, msY2M~ˮqj@ ǃ P>+:''( Rʠ,2|f(>nsS/})n ) $|жhsht8xx& s1ð{Ƥo8Rŵ5 Ǹ2 /1ZnYaK]Vi(#Cѡd~`; r9"GSk*&NRTuEJ 3#8ֲPi)(#yŮaM .`i1Ȝ Ad>˳G)Pt>. DUgkFolQʦ#H:f=3@L C@#챞ǥH/ QՃPT,m?4[7>xڀy2*H;SC7ަ)Ե/9s8rEhD"u:DN'QD"u:DN'QD"u:DN'QD"u:DN'QD"u:DN'QD"u:DN'QD"u:DN'QD"u:DN'QD!ǔ-Cp+ ܜUGbottom-0.9.6/docs/content/assets/screenshots/troubleshooting/000077500000000000000000000000001447252316700245405ustar00rootroot00000000000000bottom-0.9.6/docs/content/assets/screenshots/troubleshooting/cmd_prompt_font.webp000066400000000000000000000606061447252316700306210ustar00rootroot00000000000000RIFF~aWEBPVP8X ~ICCPlcms0mntrRGB XYZ acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBVP8 ^*>1C!, ~5'IMwտ-o5=uG:wGg`u}?~w _CLo?{1y'7p??~||-oA_?ޯw~&TwouWGgUW'/ֿ?!=C/7G/N>%/?m~4};Wg_PP\Ck`_>_?! c_?gG??~A?_cWƟb/?C 9vkɆxtk1cf$ /3LxCrB8u:;b[@g]{0jSXXSۙ~OxvFZ*ziL#}4#ܠP+-?&4{hbG^%quG֣VEmeni]UBR _P:|(gfjxy+ufUX6+'L9.T޹썌ܝhL  YH ۹D6Z^R ذÀ>4$ll 0߃૒ћ Y`Y\+m'#+z/N", W7̔Hah ۺm5Hs/G]2f*khSٵ 6Cv(w}IO3ZVоiŒr& RbvykvxRmFeJsU0;4kc;em v_wL!mY@Dq)^??D[{H'G ~.e oҮ*r. +'L*N +tdPD#VAY)p)Xd͞rDžd_ -.{C:%#3g&e]2}ݤs ƒJ}фG2a[2U.z}UȂs3h7QǎZ2X@*'`CNf] M5 <:S%Q zp}EH&(ac𔷽lL=|PKh@[ Bj<U3 \ߘshpRXyA@^ِ Rc^yGZ'?mI1Qi Vɤ•9jkYeÇH=4%nt!KMz[^cSoռ2^NoD@Ro2(scmYęX]3hc]ԉsQ綟fk%NzNGZJQji;)ٝ팑 1 $mN]$?עǾI5 .jD5f~]w6}֌1j|퇇`o]p=cR :36-+=?I*H$\ĿiRb'LWzK2Zhւ٩ TiGJdXVT4N̨J6i! ؅Zk1Bw ΐ\5&B)-`@fGv\JO ޓR’0M{҆f{PT݄U?ҸQ.ϥڰ;ba%~KgN63EŒ _'r֗!-SXjYtTQ.r#eJ}_;cm\/2MNSa?ME6nț mAa Ӯ5)fȭ7dG˙t$0^J#wb;S Y(0CrhO_GCATcD< */y0ӋCѵb巻#d=;YGD/rb%Tdl $IqO4(Ʌ>`މֳr}{,bNS5t G7^X̻.ɉt6I̲t.NN!j0LXhʧħU[hmLrpZutzpb@LK)aZPПe]gU?Fr^F^E 9Zw! ]mPZNYx&ee$~)DϜ= AC1:| ~+ 9T8 VJ 1#mih4NtpG:um3۷r!1˻#bsZdVcgeDJ9n@hi({UML}O]бig*KFhd6-eL2=FXhUZLaסn;[g9k/3%e%Ndpoh!:+ǑR" ?r+.B A;7 wneiIawؖ}"ĹFE8TVQUu6dMUE¼}=X,$*YԖQ̓9w}' ?FNDMPU'@Ԇm6Hԟ_T7i;*[Ki5®Ѥ.M"{iQB#*$T݁Nx!zy;8;(MRK6&.t8wVlN= 7cJFt2pnZW QGiSM#v_֭b`˂8hInTY*d~I"LIZ4c(B_Ve-ZR i';>M-[zAq*# +$Iʅ73m0N 12B!]~6j]sCb%_df]0cͺ?H\v"i2ZPrT.i"B3޺~ԌDW2qJ, 1ۗ:i,bhH,7ԇ=˶jztr 䃷{goob;":+|(MtT+L2EuRn\FhZ'uY5BSxM=V+ATG{'kb&_ڞIx 8T3qV=hr"| ;r%TSBt'% ;3*M2Pi 8ILsgME؏fx[R~T Z&:k;Vak/«s7VѪE %-(۟֠U %g8/ G5U3ʮQ.8c2W\D~-Ԛ#gI&Z"LkD4)P1P+sX1濳ՌH&HʲӉ[BܖbHPb =)bUG&szTl_~F먍oA]DVn3#sOgm|-b9S:[I;݁ǜرn1RՒFV8FB+<[i^`B#CBi=Mvz~10kJ,rWOvv)4"Jr$S>ɶ~Zt6F`#"5Fj,/ΔWnw/eEaI'e&ޔ_pWnbEEYܣq^CcH8lQV^E& /تkOt@Y%|Mfp#Dz,}jxn0L)L9#2JH~ȁ1%$q 7HrtJ+=8^@ePG`@WP:(NU \Xv%q  R<0qD`is׸K&+}+Zן?ұc(q u~lyqalq 5I6 $IhΝT%<'+x޽g@Z0*W o͉R 򱢌wUJ[|['HG'oY]5_|f"%NZ:F!fb%COI8 "ks $ AӤ)E Foina04n߱`,>\ gUbʆ&x00ш4:x~s,OiJN7>G>i_1XL22Z܁oAz2*CFQWj0* ݶ}x0<]"7y.@E?QOdV>쩏\wT#I+Rd[!NvUtB.hC=0~gc 쎲tKP|WE7D%8+1j{9Ok>H)~Rw1/*O X4~JFb^.ųXA < ,F3:3ǜ37DvES}}ۖc=LQW*٘ üɫߥ5*pMh`vPCc99t4{)܍ BGSdAvRG8HA:0P*'6gARB:BP ]R1]uPqF&ܒ?S:yMiwҕN$PV ~48?վ$nd?&4(Qu+K-+_X?T(yY!`t0J`K~V4uXd``VCmPRmMWS?.51뙭?@:9~\PrQ\:ֆ=21ꊿ3W*NE > }%Ϟ43 @=|rը~!i#9sTjl*D뗷GƑ@ zEʁ A˃;Szc.;oPQtNV8Eg"-ҎSӜ5X}rD;tkbair]'+ZxiLE5ǒӀ{"hA ({=s )]0OVӵ\ h,zGgj %BfAZcy| j8#K^ gh^Q`B?N@{Hs7O-|[Wᥖg; "anp W%E Dא ӵ@0ġa*[Vx>z܁US^ŴGAqCĪ፬)<:e3^:t5EDDpҽ(!&x/OJ.''p8_qYmuT_ц1] 7bR+I1{Zr˥QOG,'8Ip/t[f@!z`c?™6u6̸y1nWV?sPt)K ]s7bU}7lRʫg9 \oC0F0+xcJi|_秐+{iyFP*:A>T3e9;\Бac)мCTuy8+pfyͦ5n_/^qŲPl>~q+2 [(0<5xBp5 ;7HliJ؋a6@Kcә7%ZE ;#Y_.

";C!75hċx/6_6Fiu${ Vh؊Kjx~n4{{uL&@:q2Ǫ V?铕)<,QiXݲ\ƒKXK&N]{K愻9,v x͂Z&?*`+,s˗,w -eJ,őxc:y vBD CH+fpgk 8 2TM ;V>/ $ܘij$C=F-&/cUrξnv_d&#.9xk˴=SCU&I2sC&]~wVrAC9sgqՠ ]*쐹{BS6vwCzIYn Rߧc$1{/>'1W*iuS@6nGcTwp@d4&q#X1L0=5`kpG !s7wldluF$͑ AYy0{)P4|Q]D=1^O$T*ſ4"Y/sf\]`"5ݜx@P|)7-s݁em~xʒ*ZJ SgK"m=U52$, aK~ P ruIB>;)#wu}PI3`}\bD9fX4Hn*pF$4EhK _9剨>J"hmyLC(Aٛyu2"VIz2)c 9щ6Rȵ<"'0D ƀn (z餝p#=Qi{TeSKwPZrh.ܦ~Zw ֺ z%(J3Η\Fu%Tj(0fK;S<qԛ1~#S!;c*JjqmK^Mó:%*eTRNӼ?`{Q+nN,3R+W 8|TPӪe˽ȍ~8Cs]OdѼdl' W2,I2ϩ7PI;0 j}xF L۵\'ʬm:78v ˋޚT< (ӟ,۟GF̹3Gp] !8LJTjphWRKsM,mp'4l#`.mJŜh *>Ooٱu8I-M$3TPi #*FL6>Cdh{5H$?u L_<2^[%ӹ֟*&^\erquw2c-`B0W'G ZNyqѨR!b c9] ^2+mU%d+o(}G|ig9%/); [J8g+ؒ[_W_=b i4Э[L/z7@xӜP匙;HuܔgnkDg~cy2IEgas5&ip ĵ #+ui`),O (1lv)Bܿ֎}qJh|-II*u;2n sS7[tJ;3˥$Q] f3?\$ؤKF-Цe@i]T+E ;R'RPMpυJ,cZ|PU?WNA?]:ǎi~Zr# D}72:u`E_\mU"ׄK>7s!( 'ALԖ "hFp{<:& Y[? @sEPGrk%C('q=E/628j.h@SGgo9?W5FYBk^>B0#oc ?e%JO)`zG @\\a]5"klmp Đ*ۙCFVYl7Lќ1o q(vq +ÖY1<*Q5;W^P91+}"x6N[qƈbgHf3C{tSJ C0?Oҷm-Ȑ}I=7`xy`A{4yN@=};Pϻ__u@9a:NFVY0faGWyLո'8rOP[ceϕDo.m4 Li߆$[x$E3R@ _x}?3!jB\M(l*~f~f۟ D. tVF.P` [+8qBufbH}'~U>űؾl @^LxT2فwD6¶I:zPNeKnYl#a(頋pK'/oAu߉#w^b/clPz+isSZZ4mϤ5#G^Ӱh1]Jf4DOA<ɣPܼ]Mn4oH;PW|5 ʚhԕΌӰ`ɭO9 R}U^BkO'n>9T+.񐦞ӯ(V!2vx#h'#yF#η*o$u5d4!5P#Ui`ȃEiF e$ɩ+Di0j-8z^+VveC+'HHbsnj("HlB/MJ=eh2­V n2>,ԉR e۲ۅtz֞ VhLe+ eR-j;z _ɅA6 q-^0Dd'G[h5rD}$k~ymjwg;T+,T?BPfhC )A"'\fA)?25.E7X6uCh:nn~>0J!tbT6ݒ_68+/I:]p~$pCWʻ€<=wi?Un"t)cQ _/գ*w"IS_W :J&%R. 4ty)xz4g~^@G/L|ձ›١EƷJYNG7Lcyu?m֛y,kmjSzCn fWm:%kl[ӟ ,SYRYgg 17Fl'; /Fr 5\:WFI~+M4&0*=kv*$R]Sg?C_BZL/ WCkO^翜b*dYF q7 S5~5OlpBj8駆*F0><8<+}(互 1޿ -Q!޵ֆJ.;(P"K .HuVn0{|bK.TjaE [% 9XDJөە-Dd=?rn6э!?yT%+v$BEO>62("1;2S1F* Ng=+-تo&nExTLcr\B=Aa73l77(1qq"PY6F/ o>R%祡iD gx;sb @EL$:vЯ\Me!(aD@X|iYj͒ItaȚto֯$?pN.4Z@|iWqV೩.I|%>32\!dJ ^.F(7Q#3X7" .RCoI{?;& tIqec]5XYl 8PYR[(TVݒsU:m6#xB0m/Lq.! 6_FS<ԏBxoKsk }⏟z]>seUܟe,=>&I˱\'ܱWi`mBb!=nQAyFEgSkɘLRv#sg BVB( 8 Agk7Gѷ#;jwd:2 @T&g^S^kȸ{r |c$t1$ cY@hn)sq7:|mXCwZ(*(roTYAߙ_l]>Lf^R8Ercl>&(`dz͋$ymC REk/ɡzLA1`uӠ:|H'[^T9pQ%گO,] aCO moX8|5ʼdUPoʀn2U\Sun'd S,X.C1;ӽt+wш_,LvQR>Ψg‚D"S\ tʞz]DîEc [zCWӂ~r_vt[_/S6evP-_3()cZȱSlvK25oMh$[N-Zs#C[`zd[<[2}=p)3;*%.̈Wpy N3nGlz+^6vQJ Ř7-Uّef %!s . oP5ߞj,8ÿʗ?cEHS6Hw{PM52_^+6bzS&VC(۬[0ıӛ9 iZkh!tiܰa}_JBpgŋ4- T`kB-`!#7~)oӰ+C5[$29kEJU9D548"1V#Y{7b:0T(ᤁm:(!;&̀)Zӡ!b#T$r<9^ѣ1̚H C^Ȯ0tj,pww hi׬ # X{u(/yBCcgK\#}$ s.oYvq\}+uAH^Y z|q?*zKfrƳkYu9 Zyuf%x'%Ic;$-AywxSSwa:^` Bg˶G˙Ă9{ N1Dcr+Y.v |aeD͗cC(<:̬; "ǦxYZWA oAZ)ƙN)d&K%FO}تm3$$cNM5γcU|`8u:'2CmS5bU_VA>_`^6g݆*峭͓nAʀnT 'f`bH_T:M6=ՄAMI H(ܙVs{ ͜ $9&Ni$-[VrNXسbfx]j7ۄbfx]0`cd9OC_8RbOUG{ի^X?|#XʖV1_[̂jta`BSyYl@gGB#e M B*(#i`)MvEK%,",7)_ @c'[HU 9@Uњq~XbDQzf úR5_b ICja7 @[pgᖴ#ow9fj%0JWeJ8 >&TH ^BDP?+If$RCխn Er7UW:i$j2A/ :};9㏄ _c;d+t8j{b#ȡ* Y $:Wi:ضJ q)p_)LO"YJ>]tbB5R,%~ŠgcK,n>eUMTd"9hAlhB|)FrYrX!WD(MrC| u|Wm<tAᦱz3pf3=aN.h2l=/Wwu(ċrb8:g:N ^L^82~߆)Ft b'gNņz2, PUy@?0@g1nc^kQ[D Npې9-fwx痛Scz'ϰcTV 8{_,!W'듽.8x{;F(4\j^kQsߠڧ֪s'C*1P '"j.t4XRGhD Y-A<̿il’/ 3މCӄb\34- n%Uuq8z;3KYYu&Jj2pg aKf\pU;ߐ2}xo߻MD12IMIp4Z;*w74)@!׼̀[RqNY+TQ (sǘo kE%@Rj K>Xd{7!{KD75=²?HjsHe7s@Ϲ,:k*&@T^qjnpA>?V @lwc䍪$054\cRy)d]QM ơҟ7` n%mvBDr޹Avc]2W[qQUĬg* H8N&迄gDhewP&oA&%NypeJ0[C6!^Y5Ʃ/)wc U3{0JҋV΂ 00$|`\r`١}(HRX:*+m,:C(.nj:=eTFzj3Bh"t+g`?z*j?úxo Ftvm͡>i ^!0e.A|Ԁ%Kܞ|zc x>/:WץS@:ꀑMW1Í[鰊uIv[O: (2 Új+.1)Sv ޓK"pآa\MܲA|Xi)#PWCm*(Kp_XNTw?A}]zo{0b/$:ROvuu']f\DUbҁ.Nry9Hn0XeE%f!k`^;BuV/0(mp>83ynr5w_.mɯ3wƊ=Ѱ#gQQt&^p Ow-sUuVK\YA<>k{n{qJܵ,cʎފdnL|#sNI](Ljgh]dGݭ뛩Hbf=S_eҖkK3._.)oݏo۸gN͡Iͩ&MNf(}B+3s6`Zflqidžbs5tdžYJOz_ <=f;BEsҾmETԾ Ţ0Z@F',r+􏮺@ %2Qs--m`f5,<nOX a/'Y+_ 3ߨч>FDHEMq4hB!7L3]>TʥsTi$K[Fg9t/='G- Xj YЏ>s ˨(`% 3= -+>B;4nO^4BQ1(? ~55h`n'me;79q(jcUlo?u!+K[*[Y-j}K[-%C¾͌kG/1XsoPd[%mmq]U}qp4A Nix%!>3\tb?>s_e;.~6,oEGDtNOz 6hh\ Ӳᠿ#3ylu'?` Cuaв!Y9'?˷l5]/zߛjjWî*ݏޟFs9Z/g9b?Ix#"}u HR ZX? "TI)_;>$K_kyT:/Mu#3<ƒ&Y1]?vD~db/SM*>V^L )𯒁+z{_07Q43V_ܝ԰6}p<*e^>;?2g:Chs7v};/+63GT >6dxABӣjL~:CMN'Z:]>l8vcJ\Y}[\$6_*[,y$Uer~4 {RxX+0gHQT]XЖOnJ#%MSgV{W2i:mIOg"3]gatb H2wV)ܗs}SBz~3T+SWB`DJu~}0)!~tҚ&C*9!9$$ڞ3!0&- DS=jcgR_Z2ACWSAr,$ߣ-2/վ/Xzߘ]|7GۣQ>탠,L.l&p#}~Gs-U œ&.34mY߃>tϋW"8qI 㐕5me$pI)v\6[+` >Hd[~·u7$îZi!i$veH5䍚R\m'kRXlDxD皱L|6YN*Dݍ|]~ٷD(ΟO"O$k6Ъr@#}" /jqǑr6dț'٢TgbpLTjh}6~(bottom-0.9.6/docs/content/assets/screenshots/troubleshooting/cmd_prompt_props.webp000066400000000000000000000315401447252316700310110ustar00rootroot00000000000000RIFFX3WEBPVP8X PICCPlcms0mntrRGB XYZ acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBVP8 0*Q>1D"!y pV̕9B_zT,.s?`<cO=__ss eO_2?Fgg՟;_/y۽}~!a ({?pl5 O+S+dH=x3eUXmS; 5i3|ab y/mAGY (,dz]B3S}>F1D* =x_>\qnȱCO$8ڭ~OT:t*T23KBNM}U&'g RYJEݙ:yp:uBLYU`zvWA%8 8Ԡl(~ m<8Zj~UsxpWA T#/\P;5U 9>j2αe6|Z%~פ4U rS WaA*r|zϝA@f/l 1+CׁNִ-T1]T_L\R]&$'(w"1ut-P!3n> s(,-:x !rU~&ޝӷS.qlbL<_&FKz,B<,xRRpxQQ!!o# |`(gʬυY OZ_v)Bo6EԦ3eVg'/"aU {L5hu\O"3eVgʬυf[tʈȵoxPυY *>UfpO-:Uf|,YU3eVgʬυY *>Uf|,YU3eVgʬυY *5ŝSO4@^3e;ֆT =v,K$gd5xo",V=dCD^ږp6s]+A'4wE܍Z1wGe/ &ey XS Bיbw9m4{;-: zI@$}ۯ'65tٰdޠ!Ra#ۼzkVCU ̾abLXÛrA$zI4<]X4` Re>Y,bgٺtbÍ`Tݟfl`?0őRkULU_3y'kj4V4ͥv~7&0!pƪiY`RQ xڭMqpj^] 6L:|ROڛmށAIE{Vx5yC ~߬z}%O IIpaW]nQUV7WvvgCApRUnÞӀ:IF1ey 9AB&nxoToV3 JݩBXʤyDRQ |Q=? bvF.f$Y^0YԆerm2hk6kr~]2dLzoHC)"y4}p2h[(PL\͹^"UDł[UyeƪՍ~U+$0 [Z-$:IxbdԎ,T_D8e o;NԞ˒/ C c|3x-We y!n;#_U( %YX$CqKu9ɭo=[lE WW & +8ķr;hhBX”[oHHO R1TR]Gy OPMfVTdq}ܞ>3BWՈ4c,s{נ7Lgp~'%xld'1gj21ҧ/>zye&hm7E|ؤPobY$cD\up|UնwcgᴧlYqv R1GujȁS(eH(ӏQ{|jZ2B{pWd<$CZK`aEf;P*R.SٿE9·eLB| #,8pJMM IF˾%ƞ/j!973QW<‚@KV CDuty=D ^2ap#@$>%# S>1(o@震nd?r}tKh-ibrU&&69F^V!QY3'?-@u-wvVX^đ><< J7hbcIEK{M񅫒l|8ھLft!31eOڙ-92i}3X+sb\ۿy'H AqogEתNx̾yfyucc@Ou_H*$f7R`{Op>;4 S6S1}]‡Džx~SxfZJn;: RQװWػ=N2 VdZ߼L4ň0{b̏K*1dydDJwy:+.^ylY=So E\ A3#%zkTCdU-V. |m}{?#(n+i $W}7Q31LcUN/sY[v'/k$'xz,mKl:TQLP{Ia;5sz=8pM9fԥϚ͒J);t/o+`P/#GZCI u~*I̿֌!JCO5b]3/}`8{뀗]c"&ާ!UPWA*%/ցvG#=H~ٴ%-$-c"TNlJ⭣UWN)at,$#isw(,x9=Xh;ՇytU0RSjѭ1"@H{l%ةc)4 1X3( HuaZj v ]w&ND)veƴ{Y2wh]z4mtmvĉrQj{@!s*8BU(LDN2Ct{ Dd]#0t#/^b͞unzΊKZJۆ,ܛBQ?]POM}01/rpK>T`bXqgc3qĒ0( $,Rl cJpM`L4mN;7/9xQ͊5~nPB˩\Oy`5 em|}[p|m"1E<ꖌ-5o$ +:lk="~ʼt,;3mNeQu$z a-I צLp$v6cvfD1,ڡ} j}Z!)ubR/'ˆmdr}1T3([py -ASx9K9ݚ;>ǥm)C,`vcyF$oIq5úsavBbkd/-nšU c͠OUyi3oI Vۦ!цջ~.&/)Ǚ=KmGmEբ`j@);LCUHTB%xTtO*z e>0qd\7ZzY `QjYS`4;ҟ ixzEM-5^Ƃ.ZIՠˬ,0x6ia!了|O^Z}.|Sswycuu%FFO"G3\CUHReۛM\e疿T7ep/ҽdxu3Es XC,p4CÆWKu3:oD]˅aѤ[}]Ҿbi%(߾%ɧ%]`;\[U\{+"`_a(c@oU2[?0S~`r<€f"NkUC-~%'K4pȗegOkBN;@0 \_L6g b1  LJN[ *8sNB\a/X:ae|OKm%@9Qg}ˮ:.M[ ?²DҽeюW!Q93gr>_U %5Mc 2Tn`MRonE}C\ϏuҽDoe#7PM4#Mj6ѱ\AM4"uziy0˓'4j4q)X6^My^b|Ni{PNi8Fj+fHbto LIK{T,H ҷ^G / ߟtlҵL9y-Mȟm뢈3\5Q$ȲFЭxoW&swZ'sūy;*b-LFn\>yR ORZĢ Z-X9Qs퓸d-oc$_%,+a:' 5Gs"ErIﵕ\Fзc w zh Tݫ,D< C/n/IN z^e< ٹƹ|0jy3fWdG.Z1ΠԬ7!Bt9(4!jrd<"1u'&&VGEД?-<:_hext8 ZWJ8b7Mny>/9kH $ cWo2=}t Yh5]PZ5Ež $ ΗtH"&}BLR_( ڦRb KPR| pM GҐu\({vog<1S`y :U}:=2,^6Wr+0i;G޳~ %&?QӠ"D4<&GN!<wX%X_*ǻ0t$EWVq,۳4佔G%|rWK4 rǛ(E0WqV^5 z M% ?lq?FɁ f(_pAXZ]#T WbU'u:eQVҔ,P z\(Nt`LpSn xW`Z|5^_|}GDeH/@`RYk2ԴRy0wqIrῥ+2=&LAˎ n|oP5zn r<8;&_h¥R_f$A҂Q:(Xa(^F t]/#v!xN*#P>99IC( ,, H8~f[BCG~g9oD\7f:՞٣=YJcphyU-}A!' Qe\dT8.}bhBW"s&A qrfI<Ԫ@at$ZQJv #/QšHuU4$h(D0>]{ Z*CCcZ ;RFifTZE>8Vt뤷R2'/+p_!}7DGeI[1!G*ɭ'%*#6Qk|Ccf_xA2^雯ނ ;]O<(Ѫ`>rW7`=\rg+m26u+9<8O783#'jr1X2G {YRB?L6Gg8Vl=?%`3UPu](QRK+y=!Yڬ "wJli ?W(qpzB!5г[y y3#7Pή7K.d:C*q=Yz!#ri@h>~{Aǟ 0CP٭;tf!9Ĝ-Q/ )5/XZGtG ⺺Yŝx>};"h@)fT(SbjvL2f710j/)~ω8RXXQSag@(Q]LOV@ddR)K55`kdh .44:A)u/`DKVJw.fmDr0B~`^X*6xVi"O_0Q{Y "c>77.|:)VG Z+k)u%`Hz [b?NQ=[{W 䢠Ѕ!OXʡҋj DLM֑0GQQSsM=pS]<lxkd!^@$ Al_&3oҢ]wT&E7s[200ԑ 5C DLu|.B=}Oe놠޿rWfeȴƭRg['] Oi#*/텛Y٤z|Z䪞3f35ުд`̖ex;d(|+EȉX fwAT{PBv!~gow<LjGH3Pg/-ˎCVi@# aJL_+e.Sm^̝3A%m1:F'dV~Hg=Nq"4:M~>Ȫɼ^UvLr*-m=z.ߔ*U֘5W© Coa}*^)t [F3}ɛggI h}l+y1~lo~4$l@O vl\JN[y6wӄ@C3BǺwSء[U=Jja8FVD;Y=Vk_}Ώ[#eǷ3ZIe'H$UIB90FYcrFxd[bd<1~qCG,c;^8 \gSJۇ =UƻCq tş 6thtdEY'GG!^OJv:@VNF#z: nXk#ȮLT}ng%:W$=u4VPQh>K  Gl޽/ b̨G T1'mgѭL+Yt Sp)Ig{M*ˬ&M K4V{Ni%Es, mWJ11 X{gкs:ta]z^nW~M̫)Ll GEc~AB.{ZAJYWt?}7g.r@~Qf Զ = [F_t]7IôBgU_!7\0׋e.sVEοsc~LaA'sT'7Sv7\e-FFQi _pmbc/O.%eHDX:>795 }Dn@{\8Zg'L/@U+A!(6qrkO\P5[39]+yi:U((e\g3b7iqH[ hGiucFjMkQ{譧Lz7 !]qD9(8m Ƞ8[>YSۖ߿{ပPSKc[aK"C37kKGɞ_5=}%]=IJ1:k)Vvu^=JH @ ncS82x'LZI9? J1?.^r.qut>Θm)[:@"1KUaP8I%8PLG 166*lm.d9!IS^v0#"W3fci ^ZMjk j0jbhݖб̌b/ܨgy>{7~gq/Rd6pz" %ZѴx(+3p6}&Fgq@'B]Z2B< Y$5\-:ʯnzC*ᾙ/ρ l?jspD)k<PtZҬ^1"SpL Uw)3)6*)@lc\&G%2~JJ Uc9M5a.ӄ4AzEm3~T Q _ɢڞQb8>"$$%4 qN43žI;77t ,i 䉵 EVEksړ`h f|U"P/@4' _bNE590tq.W ii״Ah,}T0$nh车j A=s\ FQ ՝>^! En RwZF/ %CRiלĹ~\5iZ7`<>2e^8|RAG;– CP}fA2N˻5S>RK$y wGGT?eNR. lzVG˂27=0:93X`wlAoLP:h~u|߬oM&mO)T `$6~єk;k}o( aFܐce\e֗f v۠Ew`8ɏgBFm.8H;z݈H]vOI_mZCM"&t$b'&ơ+Q\vG0Ppl0!tӳHKPnU!s3OT*V-4?o'?8uIQ}C #"ߙ<$*0ZFax4սؤt;og ܅$r Qlp[t[^(- vǩ?cīqpQlQ9#mpqRyIZC]bC5GңkHhSo2dC+s< 4G}G m̝za\Ĥ$NRhW #7_l%yQv[/T̔k8RW\{ΚTNl}m@ɗq:%t7~fRcJ`u3c/ HX7\P"MJg`(鑐aR1'HbOfx8 .p|q9ٓM5աLrJUV.{ γ STz v8Zu_Tt'HI mㆳ?H]=@|z#!ө6g4)CTu; cqf*l& -p,;)|XMʳ,oAQie 6wG'3ɖjۡj$\?䙭Mya) ?QKk82+_;I|"!cw ^Lj:,w3ݠ:ʈEg+3S\]`@n@|an/S6/DDO'UM7Z(co _[wQ!o &CԲu[/Ko%;I{mRAL.*?fj[afJfc-HO?ȵGW;\YUP둠 ¢;L *\<0G*$kD ' 3uTn̤Ì2ȥp<fR8ylYq*XI soG0s%Jx  005TG?̑aj hft@u03kPv5eHQIŞ0ǞK*"쯡C81 et\ 3Ǽv 귨f6Baөuf{֭l۶kʶT3}:DQmܡD $$ܷsWw;w# PR]@d~asz[rΆb\p=9,vt+ky;:eqk>\ieWFZ@faNhyLuф|U; {u:P#sVLjt#-NSM`DH jI#S-YYHe6Z[S ?~:Ҝ`e\ɶM[۶1\kd[U^}qwwFI%I$IzX ^D"u11IX^緥_?N2\D+D^6Yb2 33`1pXA@(D S92 sii13isr ސ!M L<DZe`E%c,BH`mیJDB0 `3\ a”=cɄ" z=!@WB@F`ml!],^ ЬkC|(3d찜k$D[,j( '),aX0ڧbEL%@f!b-d0<_#Y&6!\֬kC|1dM-h1SQAZB h< R)CVC 9\S!*F,:ϐ]Y׆ Y0X9'gQQX hya&i"qBu),:̔0}08`'wb hX '$=/5/heI(gXVAB"6T>0`8=lP!}@ڬm1F"k_w#= z- N`QwGu`r(2dPHN, >nIg6!1D4VpLbZhD^3vY Q@eSx iEuX 4XBVr"c,@ 8J$`Y%o*D6yγyޟBnݛyH#-3R66:Ͱ~,9`yՆ2h 9m@0& `y>@p!'V !dAsLMEb8ќ12Š˚JJD8태aayΆԘLފR,Ʉ!CHb*Ec ʐ%Ȁ?y-R/Oʧwer]}X~xf!ô#|~‘l͒z}R26vɔז*BXV]ĺ"Q|0]m7uK`Q4tw0.i&mZtiN2B6d0S_A[Q+x3*x\wIӻb|B^SA2LTB=d !N,Wi`(-&zܫK ՓӪL'T<+Ӛ,` 3(A/a%m.s|v զ>Kh75V4 p˚Ъ?Wh&IB'F'9.y_EYMH6j1UMu1== r yvu%[em^\^9+z[:u`FX4#mMͦ^R/Dcf"T,I ] iʪ}+|ڬ.OOJI.$-TFbY"W%i-qa4B >=Z_:qOnA(eZ}! [dIEӈm6<2. GTQwݕ 5ú;-3fi1a?oLk^t LA\8:_i[~uJH7nG̼3M7iq-6@LcS!Lw bXt6kR$FPǡ2&UQG1v"$eUj~=#I'O?F2^@KD{%ͤ&h$.VuDm&"UwINbE@vMubP"c+7sB9Eġ^:iu݇'O?_?܆2{ %na Nb÷K ΗQXe-UY+Uֲ\exPm8>?hoU"Uɸ V\; :*fOmGTپbVVi!f\Ψ2l_2^0)70?q9a{jh&,Y'G?;Je+= 룖7-ɴ`WE2m~?o?ھ/?=;7-3vۨ"׭{®mKs ^Qsl_zC{F:rfFF=sq<Ƿ:xxŮ2frob /\qTCtka,ƾH(\ը"AkN8_f=<ػ4oweÍiSLֆ9@pRGަsВşh|$?ׇ-~CYw݇l;mV0N7'!YsR2#X.K9\zsp{ [m+UL'U>$hWXv|`3o ,3VٟqryD<:o*6l=2'%crut3m$YY-JD'k7ϤM- ˋ 9[y{i7Bse2ɠˬ|n^_pf"#/Om9Yu6{7z\_vku޸(~m~Ijq)iL-:[zLNNńvVE*aIAWG.@[Yu.%Ð?B굖U,ƀtfW˲ᗫk $[g_"շ:MYuSa뵳*R"qr%0߭"@&WrӠS| <g1v!%6Vor \CʪHec@c߼o \[R w6UA\^/||#Y:re~H޹yrp#+Vy-&ldKn֡^bSK)f)b-Ri3cuaw#zYu]퇪q }!~܆--{Ջ7i3o{f};|"WUǸsD uJϻw:Zvue׊ѼVMh=Eݷ ^w ogl\mH7][FW@v 61q;~Hr;gNر|,AKj^CR~Ҹ&L>3~YJriͱ֢7'xp>L=i"1߱i;2V%GT߿.:\CT^׬A]M(FZzT,C6q| [ך Oa-"Qd==ZctySrr~g ՗GaEt rDž{@>{mKd4+d'@+>yB̴Ѿ+ ,EzXՍQ~ۏ:]Yt,NFB6;zBz*loͻ9l$%q 4^R6!ʀ% OhhZuB:K"^*|,ngr=p.Vpߢ6m8 xPKX| z&<k_X&[R󾰺P|Ը#M$BŦjj.[.xMܴo*Or멗YXvvQZ˭yކo#gadvMN;iy[= 7*o͔Zu,ԸBT)iMn[%4"Pk ybpiX-OvU_RD1bc=]w)'O8dX孲lo^2 Qm2~ڼx&BMkZ6v+?$ ]urgVX^Wb e#76in 'wRu _+%\-cnf=nԞUl/50$OOyM>}yu6exXjf=$Λ0VճF`f {]z" vRE٨U?.䇓w載V R)47BO1Bj3GVMU.RRYZndmż@ l [aY 'Qg{Ga.M #,SOy7b^TrQ \0 gk.EY^a ;4I|.N9V?"7yҗ/em _d^)x{/yw}&;?\QZ+ @cSލ-r(BܵR:;ۢ]6 qgp;mSё[,ڞy"*ʹ v6^R/+b@n掺Mų28{--h}.d */+Z35xͲ~b~wK-`#ÕQgC]t b'OwLʭX٭_nf<6ٮNt[m>wM z =fwV[Rdg收,W7+vػ!duiE76+p FtU.z'S1s{!)6߬Vic6{='t7X6ؿݑJ Öaz,E]W:?-tKvXMMn|e^ 9?7[ 5zE(ÿ),7,8/5MF6Cy =#T>$LXޗ0^JĄj/=LS: ǏVB =MCԻ]Lg?Lrj$a򾔄UUHm%&\/m훷Oڃ89d&\Kf-%d\YI„}) 㥫JV;3/0vR/ x?>`anU+oRz`!}$LXޗ0^J .zE_R{X{H~RWuwث( =`Ï-.q#$)@{F){?'ٿ +p^Ip0U\qFդ1;%Ο@M|}eX-sԹ $qVx ŶhQK^URwN^{n}]̛(> E4`i[e%UХwWɴ˛$C͋F,m}Rw+w#ɟo$et;dcG׿fTѱeVw+c{^h:P{@-0-*+w۲{]CpEm5puXrQVǞ| yNχm/usD\~-۠]dv7Cfy13m 0W ˫s͡y~j̀w9|n"Q3 U9gδ >n~7;;TL7?meB.`NH]ߏZȶer^oa#YJBGyBE[q7@;Y2 onXcfbBo4?HOCV CS{_Sq݃o{z3ڙ4*Tp!*Twz~(b.6, Nɠ_7mw @KkjCn(?_[-VѾ ʖmm!;ғxdPO-OaZa>ʠW޷*0־|KF?]V7.Xw)'O愶Hq$CQRN_%onٖY{D˅|ϛ0m\)[G8(2c]Yv*Z8eE5_<^[b!e#RwmLE3]^+]-qm70G}Pnj* Y+Œ )QU9AV\A5T1>VHqٞ*af;Nݳ*ox\ȏ2Mo#D3}zH@o)h7kTI^zϲ"w]Ab~|=[R`ZNSQwܭTBU:ݖʙjغ"+~U~E7 Y"Yw\I|Fy8Zn…C#-;V*\YnG2/:ʶnfL91D~{⥂oNjsͤ`bb;N]2Rwh*ꎻJj>WVrY)}+1 V 7Cسp5Nvkc2ٸI+ w+Sd[seu-w+^* 7or6rK8[k ]l1 lȌB<n!rsxl?:oxRM4x$m k'%7޲ۑ·mN,ef,6A 7BbR&D &@JH+Ƈ<=J1C}Sw eU^UU\G]d'hu"ߨnm5la£kUzקkw Zji%sM"'+7>^>eJs%Le(y2 x+?Fzs 2av#VٱQJ)#K~%^E2]_ńc10Q$AQ$twFIŘN.$m98 ܈3r-,y~eUO}?'.+SyjhaweX4yok@ۙÅ3ZU,}v˯!|?3ٗsJJK\Kgp;ؾz/Hdr,&`e9jd@z "M|4I{a akX彜"Iۈ,[;ncrVR_,+,p 9c>\cT"GBKPYpJwx]rEUjtFν1jcCl!cpx,! _"1,LkXL6Mr eWۻ=##:=W;în Q̈2;b5gZ;Is(47vUBa("0DsEdlX-Hr s"%;k)"`FjlG,V^'w\A Gמ2SB"}[8<0mwR/O?J)4w4id'OEP0fN{)r ̾c5y;^żޜ 1A`Tu^=dnEv[O WsjCxTcsu%]df662<1lj '޸&hsVn˫Y$zc r&09>elvs f{G褻e|v'1?v>. 4;јyLS6G4sPAXD.$UnjϢ@qM-Y[`77ĔOamPgT TRe^=U0f@D 6X3Lb4Ҭ(`h I )޸&LQT` y#f@ۀ2U]cL8칁(kv87fBjprfQhq RIBo7 RO;<0If167ƖkkTH6bPH@*5ّ'9j&FmzAcW X$&SP $= s'׳cW ߸0篪'X4IOʥp}_UX  +Ut7hLRh=[9)J~8 R:g\ÊH^|̺u>0I*2`(×1Cۀ(b]nj_E"%#33]TXي[bbwA$vq3_r6: n3kp .QcM%@sH?j@S`".-n/*@}zx;eR,TH`ҦPp(jVsS&u σpy㷟xi0b g+? 0):cvƁGpߋwIHd,ѹ| K>pBk@ƶ'19|u* LbETnnrƶ:s8wKko'I`4}CJ;w$;+~ CQم:d!7vߠs5,Ҧ^3{?d܅Sq!YuFxm[|P_%8kK ֎pq*Ըh .)> [62 +seUvJiQq<ϝ2:|U>t!Q )c.|i2o)8pӨ#z[\>F@xyX`r\w[ma:x)VX]yۗƱF2S&uflGP ڊKp.# >͏p(hSD;3;5N~\PΆk)gdu#3 ޔTSȄ &aKejϥ|9XVJҜii/#,lbXBcs!$V9yʲV$(Vg Rrڳ 1D)9,"("{K=@x@Tɘ&~A@8,عr=* %Pgiڳ)!9@ѹx;Oi@|4)JBI40]3-̷ 30+!JʘbӀMh7mr|dL\ Z<S Y3/$ϵpuqIy la2"2b1sG ̀X_f]m{q7A҉L.$bLf WOȪAD)GKhڢOy%fcpqZ -Zy d͙dBeɈOqsttK/peT +30y!Kў*X% +[aEr W Nl-'\[G-p2K@ȑ1yo5ހ.ZyHisٽj߬Tvኯ)D`QJ&%]Hn.Df5 T-ubf9j[X\OA o]kWhK:kMT:[K\%ZSܑckϒTa{?𸺋M b.qVWw- D~2CUpTz"[^}3ubf=P`M@|U0'*Ն@eHdJ\'TtKSg`rۼnݳ6+3"N^t\ql[+VuT\` %vNlN%&7x <8 !Qc.Q c^zЦpયxBy2c QR0?04uv6n` 8{lV{ugQL#:ufIM6byPvH*tb'?﬽ګͤGU2Gcհ2QG~=VrCFE(*1(vD, k~:Չ%"ߛoqhqb6Y d:ƠubF`b;;D͙7fb95yAG~)L;}, J;y߸ŋi T"۬;խ]ϳo(6KsCY:΢7bl]c{Eh4L۩A/ò eFwVMuv[ceXATJ ՝KȒ;_[[Y?TMk^t+Z0Q69?X=N@9K0?'&2g6J^%DV2,+:DL%ʔ[Y )Ȓsz3O#{K{ڮE=J2:ntqݒ U ˊ DyTUUwL ,$. Ycz7wZʽ±2V yυL<Aku!=;^g$b@Bd+òbtSr2;+G0?(yh_wVh±j jD;U}ZΪ)AJ%+⸫eIr NJeI NJ7jD;d±⍻Z*px㮖A$%+⸫eIr NJ8jD;\±}eɨp? !B4;̋w8 hjk1sTug]XmZmc C6ˣMwUUw-couUMw;]ڿ.2 .bGBV .X_tW߱ /"F]<+CV-XY>O?)*uMw+;ʵm{:o+@V;.Xu3M`G| BV-X:o[C3*i⎥^omqUMUw6?%4;k%Y\–_ܱ ̝LwV/X}X}0dq [~qc/9 |z%_\[ܱ_(bg˾c-kU=7GK8[%lˤb g˿cX/.a;.X @/pKz;(b˾c@/2KƋ;քu2;$V͛G꺳S? ,_e4\˴ig9w4] ~jMmӦ5jFElw_s"5nMVtuvצG;vY XZ(K*Ѣbq3լ+}DTڴ"wſ8 ,A,i-hqz&1o3>l ^Ӵi}%UȽi,A,l%Z^ êz"Y6%ӦcƓܸMugbk#^, \#NzMkeZ䛝v7N,=bҋ VSmZ;vsNsYftZ^,Â,X+d!@B/mZ3ئw=,`b% 3|DSvi"A6?,SXRPbI*FKGx>m(!k6-_3k:;+RG]'AR/O?#ǣI)#d'O sdLft;#]̛ǥg/c% @m0]?ܬC5)XoA]=l5)yP7VmsL̃:V@c%x323CsC5)1_q鞑R1%RqHf֊p.]ᐴ!-k+YS4w-T<&mI*Q^µ97Ũy]v_kB_bϦ.{4Ҽ:]Kܭտ~DÍ{S:Dß;lrDz3>ݧ i)\yu'8`?0o~ksLݯ hw/!~]*8!1${& µ;Zː+{\?T ڌsµ{'O?I`$k h#!_o@ |>H%dg+ulGFCC~/L^;",? {GCO)џzvKUzC|tZ ǵ4{zlGFC[0Xyn{/?fp)ܡ#dë|R>&#tZ ǵ4G<6?# 荆tv5%>Uu*¡p<cUucOU-vDZ ǵ4mSiَr\ PUO5 ;2 4hi-ښ Fk%ۮݮʾp+ܑ#C_6Qq ;b0[]OZtLq;lG9~ϐ>ar]Z 2RJvUաs(n^Gt\č R9r (@\ÎHѵd3Zf;l9~z l9.MBX 4"81Q)/c˯*¡pGazKKc[/_pvD%&@R&6Z9ΙYE,D&D}ւ)(7N%sN^h՘vZgCN}S h@ }qnd0װ#lp-Y"\K8rs}>I $lMAzwsY!\NLJw꒙ ¡pG3GUb{*6a aG\u+ϵ8-qδc'= 0$lMAC/k[TInө. ¡pG\iUu="ߠ+'װ#ly-ٵ"]KrPU톜i=$lH Z5%7dnѴ;똔x;|9 Rw{1zZ_~O }p\ d׊t-YbmUUAZr#^ #MHkhҊl>}K3qCĠKo~z?la&fkɪAZsa+w2{<@;W>ג%CVj@YbQ̘7QK͌ځ2cb)\k#7%ugIU^/,ED:,bU\w^3b֝e~a-h"DU+%םe^D\wEĵ:,b@PVd]w֭whs^GPwxa-hN֭62X, k"d,ւpho.BU}XtYR{C6;B)+Yw`-hG8!hs*Βګ@y 67u5 В'l.BTetYd$*ם\ Bd&\`纳*'p^EHx]ѺkAC8 nzC Vr; hr5\;˗:,Y Q.OU\w^k)+Zw/uX4 \ `s*םq՝5Zh_w;VƆêri*UN8o;ˍmtTuȿڻ `ircQ Zd~o Gִtg >q 6X DSڴ)aˢٯ2,,m R7p.GpePUgH׀m4ygi!R\ip7a!eikjv9av,T5`4}pڴ&]!Yڰ7~5.m 40.""ӝ%F\hUH!Rl5.m 4]EXE;KO"leqJ[; f@g=; <h5+㌱Nr AgU; TuYdGd…3HQ k/ TwfNVLw 3 Pl@-hN D+mXÅ_/=՝"VCNwͫRӝܙ'vfL Z'F ;+ODnIXtgM&08ʯQA WR&cYfJܺ"KkuHw5w$$$p%eb9֝ż@nX;!VtgsLJ;YJ`9LeUpdb9^wBWhX;aZ-ҝE̝2),B0KI3,6aUbX֝{O1Vjםq VtgsL;"R0MXUw>@&/YBP q U j,)Κt'\JPl` ꘿;S ˗,![RcZ-ҝ̝2 ,'d$*Wr) CeUj#UUrFCZtg*5VN"Y)"$<PKIfhIX'YJkHw3w$  OH ª2v-.X6aU HIwx}REZҝE͝2 ,B0KIk` @L,o f[wBd pNCw# DX$ 5U\ڄUU@ W@&7Yr;!|RmKw,Ց+OI,4y?# 0v!& 83֝„ebuf@ Gpܱ5`5e 07 ug0a!UDt|`(;5\t -&ѝ,&,$t~ PQ͋;V;KUl 7ŜA,`;UF1!ѝ,&,4qf;S (+8֝ nKDz #%f1gE  !Qbjptg; I"G;VDкV9lA,n,.:X7DܱEjΒa‚gw,_g2 yT㎥Z}Fww?ę;HcTC;gY(LXHrw,_gf J4Fl,;MspB% 9S=3@nzpǢtQ,F3eGi8 U`x,&ԉwF)3/4fQnFDCP̠ :C ܱME?~ Q9^_x55(nZIW+M_oO 89ab [37ω*(%+%KpG?#WG+GSZm:3怞(0 ۍ 3[5ZH2}U@\KkI4fI/%pH8#(yEc3MF\wӎ1B-2RОƶW0jF0ky Q+9J^莐6DžVz7:899,tc*H`TG:B~B}ȍ$BU^Y Hz/B~B}'}5D8؅WM}p`TG:B~J!ԍ.{'ΝSč$_ /WwbUpԧL PҚP)4HXJNDV411qFy,Q}ҵ| c2qԯ0^l8D$$tBH>AnAu!4[9W^1PMAmÍ63_L&&Iפ Q)9ՕNT&Nad9Ґ*4 -LIE79ۖ:܄Ӥp8@4PҚ$Q\exF#DdsWmQ#S<q8Qb 'Ґ$o".>MxW>Z(MW HZWTZ$q!RrbAo Ȳ2qnn=RHqoBw)'O&=›I[%TMLV3GlNl#0Ǣ`ꏉ;ϧW 1/7T~L{ (OոG 1n4ԕ:UV;;RN9߸V0I5vO<Yw)KƕLL*Շ SI`bJh=ؠx3yZ`8ݘxl >;̀5N;!og2PK7SMh_1Qfc1Zz1w$>V;`YO( Qe2Ur_Rō OIAQqEYlo@}9U3?ͻ9Pȍ$0IC#:G!rfzVgܦFd*U Jh-ؠx3#rG±8̄&%ZK\ɄA=5,C*mزKz;_sl"%\ZiD9@kU_wwp_+ry]5Z0ICG _6PT]`WiH JrJh-ؠp3#rG?E ;t;sd7±mMyTI7eZ?lEୌ3Z)?/|"7nBPc^cz#7ku}Ur2C^Rpo*T&ihBp=ʂ>5gH{Oa*ɕWO~%WTlQPF#A <BlVjQU,UC˚UHKoRX>*e%r-`}Cqw@*c2mV=_!M`Uh̴5y^ u_UZJm$@5PQwι([7sվ1QJr 1SE!5_-[c(WcaEG6`+}5XQz?`9UV7+ 0Ԫcr  ; j^ގ- 54Υ0D]Ҟ-]FxP8Ѽօ:T+7 ~((Y%`4ʠ)-( xdQWH >r.ڔn>v[ 9pSU}7ҼKرY\.;sE6bӀuH44m|XLNSPu[AP`XhD`JW{ucHeBu$W@NT>Ua+:`eՇ7 =*[jrDU/x9rYؕtOMGtּͅAǽ@f*`5WVАڷ 5P;֜t/% 5wsdBy-7펧3/B>U:CUuoBUU U9 p_ V# o,z0$.KXGtjfnIld x:8,ڗN46ۯ 묳\4oB up=&5WRa8UCl?ذJr TDSEtn0\`V›yl @<"VjQUUn80*/{Y^lK֊:vj hZ۾T=BtQQHd>ݫ m gWy1wڪkB3nO2pds]`v_ M :5hb6Q )H"%xfPވT%u#~ U%F0ESUm @<"VjQUU-\*WY{mN߰Nоv藯sigћ֌%mXGt5 gfk-}U 1W|_[$26>z>d@2΃4Y11⒛3Z oDA\PD}o;e&+TFc|)hLnAr,[*r_M˹hW?w'SE ёhSECwp;V=gda+ Sً?X t* z0eaĕ):W_M+[2R XXF\DQg7[cPr:WY'K0cqYa%a ?n0ZmAeYiBE 5Aw( ,[lUVds{ ÈQua ?Zʲ(Pӄ 5j,Pr:JY y'+C a}0-Sٝ`,*. . @e(ugc4n=>hY);eQ | @e0ug:19fy@l~ׇѰ,CLR% ?k" \SwXwۯ^7x} 8qUTͅ ,eQ'VG;K&~LMzoaYuTILmaeYi*µԝwp5fKwS/H~Qa4, Lbj ,"5M1%$uXZԝwk½R󋪚7!{y1wOh|tg%[;+%[;+q'O &˰Rܡ睅gHUL\Gr-J =%(oRugQMf`\ug )(UMzYyTe |6)Q4:j Ͼ(>:bY_8T5yѝgHUL\V|%^f6N(@=Y|Sx F~tAԁ:RDwzTejͮWcJMP3S&,)i6eRtgM!t,)c HU6Lwx!UA2qYq5^j#m E4BLɞDP 1ʘcQM!qΒ2TUn3tgR$bvY,"@!DQ*Y &lIq;r m5005^;# cѬ8bt04'!;o,e,̱`߳^_AYh AܱhVtgqԭr]Nw,O Z_(c9&sּ6eBBk^D";Q!5dHwV-ۡn @՝tK‘gdp:P `{Ti>h(+F[?|gﺳuu'w^,ƚCyn΢t:O$g]}P`N-~xoϞug$N+Xug15(Нt)Q &9{U=g I,ם5Vz΢kNJ&4XzG5]tQg0#ې6k?+S~\ugph$םpxӋETc!ݣcptWU0m3h_A'2?X:ʻҋ `Y]u'A Cɋ1Talƽ;?X:ʻҋ0_Yu'T%3&l/tVu UI6pPug;N"Dȶ(X^ kQ;^Z0="e56ռz; ,pDs aȶ(X^ kQ;R =ݣ ON (:نi{+S-НEO֝;!k/=Xs( YN'X䤫ێ3QQnGڴn@')ߺuu'Dw^,׺ƚxkgqFӹLܱ%@Vםb2ڽ T6Gw\z^ԋNa%&qǂ%Z^wZ;h*ԝTS6GUOqp+5ѝe;\BDNXtg13^9w1Sz;Zw3Y,;i RUu',07Y>9^]5XRa1q=zB;!w,/6-_IyE XKQ՝N5astϥ/?!Ћ&w,i xs.TwVNxOZj>Iԋκfugetge{r#RApj^ VӝstgRb;v#2Apj` Vӝstg9Rb;v#2ApjbKV#ӝel7ϕ;+"[ۏ SwX$,Sy,CJCtg p\?J;ˍ,{$ȼq*9b) Qӝo$%8F;ˍ,{$ȼÒqǒtrdy,CJCtg ppDwYVHytgv/YZ2&DwYVHyBtg!`ҝxHi,k` sӝb/Y ZL5ﰐr',n;3Y`#R׸2 Da; hr=4dugetgez՝D;;2bv"a}֝杻5HXuguy.oM,f'fY{޹GF:_5ΖDw k=ܣ#ɍm{cgK;ىuYwV'w1ƶ=Wrͱ%ѝED;;vrc[rْbv"am;Vwbv"am;VwӼ΢v"a}֝;0i^ug1;F^{_wVVMwV?#IJ40НIÁ<&F[wV8q+֝e[eAܩh #9n`%ºlL5:8Y>QMdugw UaYU,',44LĂqcY!y.FRG'߿Q@*@w}M@S U;+=Нێ7~rFp;oMiF;ˉ&)04iYx ,w0Ꞁy8,L7:88ҝFM;bfR;+ก-Нk#߾buO|i Q8֝ڎ&֛L9:8HY5!MYoTF}~@<V2;2 c>ԝJ_ԔXb0Fug7aY|iQBM*hAD,1#ʺXYSY |ZYwXvTʒ;'ya[  nL**IwYY6wX֝UYYFwwXCtgYz^՝mCyUfY,X%ҝŬnylswXtgQYz.մ¶*w,ҒGO0ݘ;s~RHoMw V;h?gI֝P^n btcW,.KA#ˏ7Y6wX[wVxn u!^Mۼ0ޘ;s~2HoOwV ם YwBbu#ia[  oL*ҝes] FzS%(jںBgů&ea[ kƤ"YTC5U ẳx)Yru# &ea[ kDWZ޹SYz.B*Zw,ƣH«)=B'aan1ptgQYz.*:w,ƣH«)<'aa[ kd+;+C;+Ol"4rUFEcpC *֨cղӀȡH#_-JnVw, wTY18dT%UqǪcu,R#|BYHܱyr5Cd;i"`;V; fA}MwŘ i{,sgtg `!ReZ/B`(Iw:Vw4ȗ,._w @jDqGNH΂ C,^`QIrԕcձn Gtgtb9X :PMue,X!xP66P$#JܱXi7ԋN'Y(]+=XM7HnH\wBBwTHE{H%$/5%X4Œڛ,._!IJi2)YCv1!іȒ䎨'qǪgu,@/Xq#zfcNӶrHcEk;+6øcx;i\5JIM QK7qk_sU_~X"@Ix+heSwоms(n`DO}\C]{׻iEr{~\Uˮ`Ek } l-.{#zq?Q}ACnU֫u'\23qDz;XZwpcnp`kA#>j# KUUѨ.A u' F0Xvu+ZN~k>r?F<,%tbVӧo@Hx+heUwоms[w&_uz0'F>&ݰC5";+6cj]wdϝ6,JsJ} ?dIhdνC'oK?dqEXIFII* (1 2iCreated with GIMP)[)[GIMP 2.10.242021:06:21 22:43:11Created with GIMPzJFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?;b-d#z6x랝Md@قܬ2tqvm!/mY7@gm LcHl̥a0pw9>^MX)qL >'a)}O~S* (Ijߔ RvGڤ?? 'T݇Q?O( 'a)}O~S* (Ijߔ RvGڤ?? 'T݇Q?O( 'a)}O~S* (Ijߔ RvGڤ?? 'T݇Vw"^B8yZo jZMgj(_nª)s9r_iߥ ùQ8"[ʶ7ؘ\FOR_z0lNg>O>WI2Tj9rU(G=偊8%jeSL^֕ݗVr. : w?k%jl[ }ѱk-: 257bypDs>Wڠ)4BFIwq׏S89iTʖi(|yEG.NKۯJENa#ɤU\!!yPS>(V1c=z* VmHP:TLV>Rܱ ;.~~s@詙-À^?Z+#2# o^ cɁc$ ]?Y-À^?ZB3,L?𨏖KY<ɣ8g:8 ;|cRܱ ; c˵ߟ\Y-À^?ZRܱ ;.~~s@dad7{z*12@uj2q,Q + qWFI3\].︓V]rG??ғr$хRjܸѹp#'#AW4gp]ߐrGRjkmSQy"X r30?nUZ넿-= qΦxGH DkET? ?Ѝ4{{v$X $Dݸuovek3BϕϑQj5_RvGڤ??€,yZMV>GGU'a)}O~S(ǕϑQj5_RvGڤ??€,yZMV>GGU'a)}O~S(ǕϑQj5_RvGڤ??€,yZMV>GGU'a)}O~S(ǕϑQj5z4ﵱlyl|m rrҚaX<5ȋMqZj4yZM_`)n*;tN-*As8P?=+P#?(kWU.o's[L$6O: Ț{wC-[? ?GGU'a)}O~S(ǕϑQj5_RvGڤ??€.%E!{vWm_6yF\Ymgşsjߔ bV5F1M%D_R?Ϭ՛+ks%#恛=*ܲ'a) 7>w>߳V,n"H%E˖d j?O$7r$E|[b9 /mA%o m%fVno+2((QEQEQEQEQEX+qyA´j$y#R?«Q@K\&vK8 ?T:D,+,Z!g6HV[o' (ٴ'3Wt:YϒEVh| SqϦ>(e9ydC+che x0iA^cBA :˭]xU ;8t4 $іYe8玃LӸK pѳ\*f9=)FSnxkY r,{RțBb%t }IEc8P(<c"$ouV"LAWB$y&-: #.H^}H񡌩r6L`};TU-v wzw|pETzw|pEXo m%fVno*ܪ7١l ~ ߳}}'g*_+K_9Gy>߳}}'g*_+K_9Gy>߳}}'g*_+K_9Gy>߳}}'g*_+K_9Gy>߳}}'g*_+K_9Gy>߳}}'g*_+K_9Gy>߳}}'g*_+K_9RtK=ěnN=:GʱV[r}Z2,m;w{ӧɒwN|9qF3U$hF-ڤe ǻ8f~<ڴxO<a22{dUϷX$>_iiF8Z'F-Mas*7݈>Q<~=K?՞<"`r21hN.n!ԏ@*}TM#qV#K2B>ǎ?Lr*s&tqpT.@ѕ9L-?ww@3Uє<_#Zv1t%{zk.jqphj9$簵\ȵ8\9A,h"0/qP?oڤ??IAJ㞄3ژ}O~S(T݇TPjߔ >'a)?ڤ??IAEO?OlO,J*|hُ]i$ypDIunTzLx[۝3%qOd+o$+) :lY9E֖OM3Wqڛ4TkpfH [%qΛ\˸YQS5ʰV1 嘪XuEAfCEO>ΛFV =CG2d4TirUm,:"7{7}7ygs.fAEX{9bfgi֒;;g7{@QtdKQqg֧V]J0 y :J du$LkgH,]flY#YRqwN:.`2`gg?ҵ#\6,~ϒ~bqNqXrXxsI˻)VD6yaeqV{WepCC5 lmkvzqֲekN,H8F};SB#))i)WξQ_ Ӣn6ry([:ӽC|;t]j]F^RtrP IHBd(8ےa.G>Qs 5*6|WB!Aܓ r9bVv?)B޽iuU+v뷲}I)4ݪơPlZ]UJ݀z{RJ:BɁ$}g!קnsLXD-!78 ciii17o7ga[˷pyh+5 vB~M6ۜ͟Lg>̙5` bottom-0.9.6/docs/content/assets/screenshots/troubleshooting/no_braille.webp000066400000000000000000003020421447252316700275260ustar00rootroot00000000000000RIFFWEBPVP8X , ICCPlcms0mntrRGB XYZ (acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBVP8LX]/I`P$In#Mf*B,/vJtP-.} 3}K0--g fApo$fp/G|^\߀!p{U)/#`R`~-7c XK%@ @bں4莽Ьm,@@F XcI'Oe9cikĀW;slluO FGlwnl{KL48/c~€Zr S :ޥpƼkqtíyl4|XtF_:2g|ISŨ _vSq#hǁwX>ѩGQ7iYf1`Lǧxpr#MƑCZ 9t={IXb/S v AHb^$ `w@ :!K$$?lP1 -UQ-Ye*"+tVE튴pUD_UGVl(meD |#]Q+UѤʑ[Ffe8UdkdUYps*1c e>UUUeF.j2*GU*hMFWfDf^iۑ2*=3ӮeEDkn۬t ]dQ# \.Jo: 9mV2ۗG(0)|,ϯQBT TbЄr6lPvUvUF=X餎vu$T i+yߢPsV' ;;ZdW󴈈%vvq`hXdg#vD(Υb7ivvzCDhƾ.݁Ӻ# B/f\:%"Wh5'1uPB!s-`6!Z^V6+t1F"]ݘ܋M%JڕYmJ,' kV2B.`ͦP ePb-!&>DUEE QBD2")MGQ%Qw& ij/CDs!" ͆ P(T[BiSh e;eB/m Vw UDUtK`$hWFD  D4ЈPzDy2M~Q~ThBm#?(MM=ԟj:Q/PBP3"@h(gE3o! @DHf0 Cdr `@À0 g.(@\ dq$CH,[v"9_{>,"bH"F@`"C Fz}\G>SAd y.) * 0%P2'9yC3\PA^dc 84PP2e596ndcL9!SLTc@]֌9&ȃ$d5438TFafh*MU4(жP;iNq B3mrq~>={zӥzZ-CWMG.esUjՒtj3K=S5uz홮q@TτSGVfj|#}}]ld82m,TAn yB3#:t̘4\iO1v-QqZT[ʈc\W$5 -9$H$Sr*pJlPAm$Gkoe"#y%rDDrbt6Cqe]Y#of4{w6/{i.[rAc4wX,SbXn@ny!3D7evb)ܾXn?X?Ww C:n)醩9nsbtS3F)7 K,Q(-+Ρ1̷p-n[Ҷm$I #m۳3m[VJgvEDF22}km$}}"PmV۶_6ʶmF쌨0}ݻI$)jEZz̮V{q,Y޹'rHBHHLKp WOfjgk Pѿnp!hA .ns`цM?8_?ZN$MZ6$ zlh?tТ_*ZCmEӠmCpA `χaHX!H?ɉeA:04ßmjE;1mH$%rp+mH $Y$IVJF̪f H=նm$I^54?A焽}yzQ販 &!(ZxQƞU_ ȯ|ࡉ)J*4~O@SA۶Iz#nۄ I`J(|i\_reqA2fBB g5IGß T[Py3{%z`y1>K!C&GJ#dry 9xYJ-"]]x3e ̇ qJJn'UC nxCXX?r Q[r8謻9o~fnqwjyQ)zJ#-ņ&@J/t_u0Ox狳=XP}d+yP ¼_s̼G԰ow2 ]>}K%>A(Gԏ$O(tYCN=/؆Ъ$]&_B,zChq5{hǍmHxc*)&[Z**<yT/ud[?`YZ4]g/qVAqϙ!GF*5+7b^3/]{3QBX tI 5ZKR`l_>sX8bWY\K&H,s|lkى$> }\5ٰPeˇ#TқѪ{XG㙈ܖ G q8 ;η߿:՗UT_F莜¼E.p^͋Aj>>fƺT/Fc4+=^b?6^?Vpv:pjmo680Qezע=e  vKEZCarkMkZ b%B6}OfB?:H7\,B%7iZ qB}$ "o{ »/!HQt0up)3I`pm WZJ0ft?f{? 0.RNB@ jr5 ^?ܰk 390mZXo$q>BKBRIZIsk=p6ƍVG[uJw$&&g1t&L7R7ȗ˙!~/?*f\8AuIy^~6:I%;]-ߖ?q ٹ|"01[ߗ vp些(mt}̐( ZGP!RSQAqw@%XUepħj;'fjҢ\Ѻ-(&hv 8t9P{ 6 m@^xU9C55*U#0{q+H5[I|lIӇ͏r:qRj81?)lN#&a Af{coXX9>!;[֗c!n)#R(3lT!M= WiW&"gQpkjEH$Z,€t-ChxfCIPZ%"rkI"NwKĚ#E5ʭ@ze$c+cJf&J;VGsTMR !V2Ļ٨o=WK8L7_AicZc [Ite㾡5C8Br2g LA%ۜ vҘiOHp4x^ iKXt( @I4W:}uΣ&EG=[Ur;%lc<Yo[9o2Xᙌ 'p?wb%gĮ6iqmR'8sZ\ӞfDDgxJ2WQse都i4zb}VUYU)Yg{ lkLW\iGӪ܇ŚxTcco1_,KLX/WnȘ{Bi*oqu\R2b AbX/ծMsGӨ;L1_bSX wuf;7vITL i;rE 4x/M+x8% Tv頮f~2OaʴKt5$({L?WV8kM d&ߒæ:%MoR%)u|)24yec]ī<S) zI.˟R8n!j@l7=b01"r+S:k u5wŞ.>?˓z#^u\~ +^rm4=nM=narɵ @kwCHqsq85$ca{1fKrER#dآ>Wй3 lyH@ CE$/R-Isn@perM${[;$CRH";M~7|⺈в%)$<[Dtٛ4t(š{O)ì;9q8Q*W-E]:ϋeQXʵ'k8xs=1 |]#Cv']D`_6eXȁBU~P&3 Q  t# 5C2R(4G :a6KedxK0!afu]0ugwF ˌ3i2M|΄uR;{6dc_4~ ˝6]#D41@Wa=I>]@4Ob LWv$o_e0Ov, Ҋa|; &3_n/3-)DdI` |As@d_8@`Iǹ(uRզUtiK/R@R  /,),Vcp1,cwl Xw /("T3Kx'eI>UVc0FIPjf6t*+8f`Iq?3ìNkkAT[@'XXnjܥ˹Rk}>UZ,TBJd؅r鹘@'q[+C\ Gd:iyy f~~R]3qLIɭЖR2IȄz +99G\APai$+t#)b%Jcc% 8L(zX放7y,*>|g!X0pWLcR RDӿ'M23@_ B+2Bl O0^]?OWh̏:vH#|4UdeO*Y)y">=LN]: 5 VKbU$C0n:$'R+}1;-iXD>`h"$.WEZ6 8"r> aH YUlS]yj+!Zd#,V*g#usYU#j=q6= ׀ n7VPlO8^ɰ 2\-!6NvV2XqGli-rUWw츯jU|jq.TAׂfKcYךą0rf]俀 eY1]c͉p8^aA*ܭ,]C)1 '.]07mUсzYu2Zo^bg>ȟXU W;@NbvB}RȋRͮ0-^.|r:"oOTe/ FYB@@n *wХUν- R-r`$7E,pjT~FG¼ZtӜfCu 1/u"aǷl1mf S%?0UT8`#̝\PlalJ Wp;8^ҩYWܮ $lg!'a;aĔ^..Ь+]D ;A ^`'(Evu8݄?_wL;&1 # ͻiV%*7ŀf,Ƴ.7;xfU>ǣ0&׀w }r7!2πѽA<@3,ۛa@ (XY7ΕXGK-|ȲP s[0fizz&56w¼%A $ m#ΰV!|v3(1^Jsԥ7߰2ׂ;ҹDds\= dž$ L(7{24XPeZ=7DDPr+srkHD:so "s1pp׳"DgP,8AP$ -VĠvMi&-XHk؂H^jZJf~@CXڷ x7jMq4s^{|(},h􄁿ֶ҃XL:K@eT N4]DFKTÉ}.3ثeNSXn/o=*+P}jC_5Sflp8To |c9΃<ݯCX:~fקX=?%؄_Whܷ =`7|4d 8&Ȧ)-I{'pζL[{c1ĵ;$_Dfr9Ld?pa=06j]oL'='7p'S`z߃&xe>isK:no:\oHMͨ ӟu27sKFV}-@ȵ =:wh(56p#C-ГA_$Z /ul澊[b?] 9=zKxζJ=R %d_G)Grm5dy%bY\>l8;-;h446|-n8_tߑZhkgjU{NћJk m Ϡ 7V1kp Vz.;UZGi3[M ʷ{Rl^`kNm䦵,% ,i%[y:eRB--w1f"gqʈuXԸYSXLTi"&-N; zK)meT 3p u?{4wKҧR7ijd$ݞ-G7>'\[8pyu\+!ء GsKlo]T$+WMͤ8FNx7t3N_zo2Bqr4 Mʊ@ 6s,Vz$LW8 G+- _7 m-_ge"dyĔg3Z2f~R.IK-/H#9T,;DcK J(Sֱ&q˪Cĭ}5iI݈~ߖOhͺc@i#UȗpD[pjs لSfw`rCw /L-`R8 {I]W%vmE&ul~A8 Ey䩲Ml!XE4V|ba\wM(0>9ÓHFvBz$2欂kt2iBS! hSP1Єc%6K U$S C3$;Lj)Cgx&DJOJ[,,3pk8EM 3y'Uj4R*c'{mhXA ,e@[%*õriߚ5dz^cʀC;<'JB$Q*oˠP҂q61yW|!-_o-g^3qx@LCybX2- zz0d!Y=~V~Q0drQk3|0 U`gvqSYE\_40E1҃Vf#׸-=A<9tQ)+ZM8?$zI7 iբ<1ڀʨN5jW{:y4ƺ5z/Ys^ɚRbeՖᣴ>,'a%s6F V˩$Jj8|b߽v]bt]qe˸|%'?ze80J!k^{>5;aT.??wL%wEL1Rbäbo`)}rBvZHcvb$åXe]gպ/چm}Y`C܆HD\g {#}i&Aa]_(-~>+ǃMQbv0s?+QB?c7]02l2>[4q QDc2~kcp O!AK7 4(.LRU(j;{_aduk,赪C N1*wLfÏy [ڃE6`>/3F]M\a~YK:lv}Gxnś3C2 mr Qο330FnQF>OgoŢQ+7 c;4*?b귡?pva#܅[C66̆D@ypoSćla>qT|1hV-zݿ}s\-7Δ Y^ ?殞-T'V3x~>o4}{&9vR?cM\aNc(Kɩtb14'L$Şu2y'F-J4=OfavtÜ?xo[s61IX)o_RbO@ ?9],Nr=\;Ơc玱sǠqAs)TN ү]hC 1%ƈ(HJ2cpEbp ((3F W 1%U$)ci GI%0&NV?GI=l#$Gi̭UcC+@ W K#c16Ǩv1E-mycD"vOƈERp/ERm(۩Hjml4ERm3ܝv#w;+盘o4c1:`pg8g1:`pgTR1L }dPVQI0)BFaV1Bqh؎J>21F( QIGe!ְ}d.{ߦ(Mi[ Ï>2( >j[}dV;cZSSVsW Z\cpLTTLʒzNN!נpɫv xhbLf|PȘ=Ъ2c0CcF6Bưd <]#v xobL 9a1{s܎MIA='ɔƏ1M4#w`I&/(Q*U!sՂ&E5WXJҭI(.{ǁѦbVo*_w;cy1P*Rk6Ϥ%͈!\3Lk6) 7!66#Tw̡,Rl2~1cjF-YW*q_3bhIuǼ6L EB|͈%L)3[ cȮhfN,3*5#漫E[/ LWjFel.<c1厹h}13=c|~.sX= &{Le%ukآCI_P1Q•7vKGl=+7`1TVuvtrdAY>jPלL=UϏS,Uj(kNoѫΎfdAY>ꫫcE%Iɸ#zS,Uj(kNfoѭΎ^}e2s2xKFuvt@)YP:*?Oicow]玹o ~ ps/w +g hSˋ1)(ҩ`SwL ʩt*TepSPPE T0:XF4T0:XFVNh(J ч;_K_`4;c1rN ԛ:ky[^(_ps L1׀hu@^ts?o5a<: /9&kJCy1&^3<,Oy1&^3s6bǼDȋvI7񚨾~ď/;x&^1;ƭ5i 4FwCt'1A4RIw#TM#Y D0ɔթh )$i| d= rݐ/$ךVK@I =?w 4R8i$́;Fs`c0+́;Fs`c3FFX~1?w @X8/2P7>b28 iCahtK R[_ 9)1sCwA1R;J> ȡwdcFc9wrQɥwdcr)%j\yGI8F0Mb]F®L1̢Cr!%29%?';(i;3(QcmYs Oeqh/,l ;&hy׸G7clO.vkI0%X%(!G;;0FŴb bjSB & jȃME#d2af鸭k7UfcNopE09MYɂ*ͻu_]eGf`n0m..!*Yi5Uǵ ; F\ݳ T[cp_rcrh?4;C3{7`}N?;˙~1介9f.m}Y 0/HaHgWS.skcl_cM_Dr>Lv #ƍ/B ) 9@EP!OПNÈ9 E] d_bX7qn޽ۻKK JTxGo7-Xq#(1AhXL|vn6F3Ɏz%hNt\K)buzgY'HH$xsү4sNcG&oM-گ$t9݇#"R#4#aSpƸmvH |edmwB,эD3+&GǎLn]}'yE;grћraC),Y Lf|3pJ4VxZHgtO=N~1{ǯ>4{clKm?D-4OF;)>cMEGMs3~v:˻FnO` 4 1̩g.=HDnj.D4ޅ|~`6eAB{m;F';fdܟI/ۓy &u !^8RyLv?Afea:9g/=: +ilXDq@h&jYX;#R!:GT8y8( dzwvu]XRQdf`c4j\ eYzbd c?ť54LbXTw2`/L .{@.h!W[jj(@vIYi!a"'/wj^kPcޑ?,AW?3eLDsbs<:sЭ:?\wx#t! ,Ū~gBhǝ~P/+Py 3Q5c]Ky~b05R긡z-NTEzpF‡" u??> a 7Zo}!$e5 3OhfQvwPb-yչz=Rƈ@|zT߀w+!wP Wiyh%85eq" on̼ʼlDd3kÞ=4j̳"yssB#yNZ !S^,Ov%F3<68 =U[m8;Pk89]a}Ӄ*x݈uiUa.,-α#J?A.x.9 ^JY.ĸ\t*,?o{x+jيMgAd,n[֗ײ>Qꀸ i͢־5A@=#Adj 'Bw&QZ?vEO9>s{͹Wa~8_ 'd]W 3D4'5OWI@AN@E8K8`#eRVp<o޲Slk\ ^YtVQ܍w1RMa5 _I9CdfAӋ+/.,%lQiR1*F|^fbmߴMLUf߈~'hޓ,Ϣ3⺥~1%6YᐜFkyA- fiY׌'w㊑ ͓raOV4-v>~ܮC4obW:?,ẘ5p{ɜ% 6FRX3&VAMW+J `m'u^|҄P; 3y$MpW~U3ib ([xcJs̺=M3tÛΰoOߜsG{T gpl,8 ڒ;by=+ǖ~ٽ`lUrbvzu-8lo6aL֘ꝝ SE!i\r'Pu&^#f7ySquyqhqRkN;vMCqiaYdسYp`Ùb7bN[s}ښ 0_; gk|IvJ,#ͣ1y uk߸#_;ER}/3hz/XJ"RŹ2ftz 8(Fa,\=3*@8|~Wң^Bۦ]_\x;naDnJi RRvL"wKڷ?rģ}ȝCE3Mw!_}fx˰BG u7LX~}Rm6 "V~i,D֒|͐*6`ko&*|@1aD)Kq֘&*}o쿎:ҽbj1eTD`CD8bGҕXa~VO;Ne㨷Ыe4c.YAq7&1N ^j.J-ֶ~w'EkSnj.vsi͎z&vOs!場fcOn-^QqaO2C- ?=ō.CJn_Qgs𧧼 #^#`1xEr$&wߪzbxV9M& TG)e륗>czAK*9vmFLY(`K_M2<;}Qԇ\em/u)'@bϤi~OE>hR?)}6`'2Ojma7v4u0=#L{6 T>*U^* h Gi";tLZ:h1ү]\|u{0{O嚭I]YA֞>{<.Nߜ:KߑToI doVdLp9]Sح=\+~G'սĪ l y|[FKM$Cii?vtwH_ 9TP7냙.QC?0Qdh\C\[K~Hi0hx4]':D"/sAM-Eϟ] 0h= 2v[ey7u.h.vXpյpoU?)7a%yDucH{ spayDE vQkeR峋٪ \ l31[1vcGdTg& ) 3m G~VnhVLL^%jW d'B>Y`MJ_.TFUHm˃<ݚgWĕ~ZBqF@4ٸ4+Zo$A6%17\Lvڞmۜː l\,V3P=RPmtƗSПsjG4$U| h Vgb|Bq[ LH;P:Bh`Ph%KÈ~# 5=hk5^&Mc+1VLq.3T W^P(ŪU8R~$ZHPb$nLs >obvHnqĹVH0eϲKhrs!y. ̛e0 ~SF|yPaP ?J]Ǹj\bH(ִ&_G =jlΔ>슪 Op+TMe0mΌ/0Aq=sk!I_G"- u\UQANs[6-u~˯~=)\}c.hkY{~Y(N`V%ھ0&{ B,՘ȧE* OoXxWKDвloE jj\텬*f ]zv բ')ؓ7 U{"/OC`bbA: XABsݳHD9Bo`jj"),4bc,T 㲊pV1l29B hPx(#>0\{FR0PUpwC4CFRhA!uG#]/ƫqKzV5]f,RѲlL*FO^$ًx!TÞWmsZkFgo1Zx8յN*Wyˮ![V/y }P {A.?Wh2RCTt4'PTutqc)`Ոs.y S oN( W'+BZJh(񢵀V5v+mwzYpӃ N-,pV3Օ|G(g0ypMZBf.d,sLR/ ;HKh(T$TkCJRG3s݉1Ln3 7g{{v ,\2ȆUܔ\#ٕsY5d[^~}^Pjcx=Zcμ{~k,)F]D =Lmakɔ:9RyD*c~L1etN\ɼcb δ'tp=`K!_`3IwLT\ɼcbX(;;c䎱_bX^?w9;/_bXczc1@X/?_`i厱sǘcbX(;;c䎱_bX^?w9;/_bXczc1@X/?_`i厱sǘcbX(;;c䎱_bX^?w9;/_bXczc1@X/?_`i厱sǘcbX(;;c㎱ ,.Dw؝=e_r/sDC6?wL#f3F f=F{ y119k_eƾ4(^XIš{qi43^ISܑ)Hh1%vA4l//ʌtwOsJ=҃H WP#2?;vj=TףWɮIo Rb@7X^JB5%*K%7P5.eU/MPq}|8n>([+'%bⰸ.llV+Pħh +xXFQj+aߐ%67^ uJ̫UҔQO5a0+MumX]ڳӵ.h)r BNkD?O8U뇭O**$ VǷ0*#jWzBk%b\6*c7(]G3 1?R P[ߜ=/gkF̛;j^.D@Z% QjB1ve-l̛CX G+ݾNyPu\⮯/C ƭO GgVR)**ɍ:xT 3*ݦr>S\̛OV/F -+C!.Э98sZ#Kڬ)qi`Ɂ~[?73|nQ#E~;RvN3WrqjfHAaXjn+wJاy9!bfFiqM`([Z}vmY_%~Rt[EL6|=sP[r|" 9]{us7a= %Igw,~̜!&-o<)Z5q uW׭߆Ka:(tv -D~ǵb%>"f/`TCXq憫{r ę,R8WWFyd%{~ĺG~Fr`t,Mehnˁ3~g6PchtZ#p50_\`kX8ED*)1uKgM_O֗lQ0>;Q}q9Cm@o/=n P"9Z#{)?4&Sl|"~hBP@" %` pK/.Q$*›hȗ]Ļ|W)TO(wԢb9I][HٿoݕzJa/aƃ:qj77(tbLi)졵{HxqYN _xuT"W"D@Z%7]Py0(mXwtˑcjkvբ!*Pc4e3 gTԾ5M-'j,gjTi5uH d1w Ѳ,hܢɞUJzvBobJ30C8G2SehOoǸd6Q ў'!nd&frC5LQpd)d h n jScɎ&d'rXc1gb&lyXůmVq8- l{3/bJ:3 ,F$Wȑy]d"p&an2"k\5Ns5=}p^5Lb:qep-X 6G x!jDC4H׼ȋ2NQtrR-X9_en.H֜V[ ]:XBˉ22L0$6B2U&Se> o4Wc'hLX&ݑsJE48&v?lY = 7w:QziXl\ґFHɻw) %=8޹;\ZR)B?:&+(cǫyLr Q6LZ*DN+٧J5RSG70:jq1K)g?PtV8-)˃O$O tgPn]XגwF\!l#T,/bzt2E@y~SX8Wuwo޽dQDPb"/[&ƎSNivnr-`p_*MCz&f =猻篘ҙIt\';s6'IδF , :&l0J'ʧrH1yY$ ~88&bVp`[!\2rB0ds C#'!#T/_>2-&yn)+ nIlHW^Ž*Jbykir}+Ml\kurR,A)Z;J%Lrn*c|͵Wc~" iD_N*ńN_Tyr֙6YNiM4|8?-ɳ0"Sm3+r/sqdd?wQ5ݸmǨP@)?=X Nur!$4IZbQ+C 1L]hN9 b/9T:vN eE`s.E=iUt<WԤWW \INe=>wU_wpvc)eNZQ-*ƒnnR-i2T9niN"a=fbAOƿ$TC<,p71ж3uN4^{~ؤ(tix/|NPN ΎM7?k ATcwzjN!B PHwI ~I2vt_/")gB:xiVjxLkc.ʴ=D(‗>ڇ|I1=WlnA{Ml4>Mr' eC^XlWpzsF("˖nAkҜwW<Ղ|[*U~fO7c"q`Z&*.^\2C&o+81K'=$g:}ot2!M*?B8Y lo:llb$srt9<, ePZI\Ԫr0x^sډ+L(ng3m(]-HOFRraK]wJ7퍝Gb*Ai2Ot=~P)&Swi-Цo:Z7:t &bBʷ}׊E1)J*[2xnٻ-iJ::*QvwyI LC&ۣ.R }_|ĸ?*9O:$:<:A~1dB%&9Ir@ ~`l`)Y0<<}DJe+ׂ͹>HZ7vc&6=ui3W\꘲S??9 TX/cw r|>& /rmeݾ{,2'դ\[@j Oў 0Kcvȝ?bVdwT"Y'er׷%ɩm^̏~'I2:IV4綟HrNlwQ`2ֻc7hBPpSJ B8\@#SMܓbrx@>19m.H`ȣ8ׂ=K-Ѓ]^!-y}쿐 }eMWKk,? Smn|CS,tkc˜g-K Ňht]a~b xNƔ*'z2تVF"iou%َѰ=\W hNyNk=,$fϚb1 BɠL#>?\}!K.eZ;v9[tM"*SPm ]NkiN-l2E@ʩ@u5fZ7x]ɜ "}_iR&鿕zb_f_s w%;/_sXcv1@X/?_`sXc16[kTBN#G\ M4"paϟ&)!~WiP?r^VK=~a qaʂmț[f\mb5ԓa[Pv_=uY`/ez]ԇ҄ S `HpNC=})iFk9w Ќ^ANC=0%-%?>Xh'*&Bt^=D6*k z̉QmTT;ѡzͣڨhw"<7ǎhwvGLXWNNaHyCoH5;& Bg`wQ.A'XKqć!,DC^F=bL;dܑiX/_bX//H)Q]pUB2mVѳ%2fgIEBnaKZnws>`iTnt(6p9br`J*3Xrޓ`U~yײsYZzQHJ(]IL$̪32O~Hp->7o︬H2~\z'qP Y8}>{?gR9qd[)) ~ڵi{sZwj+WERB|wjƒ272w1q(zsǰCSJnGp6 x"wn*Fo{ ŕ) mڏvȡEW)H9X&+}ɐ8ZE@!ߴCRHTbxXCH"Q9>#Tg. 6\TLM W;\[/u>)vr`rlG`}r0Q2Qqiy|I2Ζ@X\jd-#$o}+_fq$@E8KJ]Iu-9+|&KR%2}PT@S켹 Vr5Lo44 nݕ4_]AS- bUxvuWo?[>$:+9YX+胫 Y6pr^h8ku$"-\k]cȽ%>;q^bZ:Bn> ŋ9IC}\2s=SDa XNI; :`X3z H԰E6h;rgw\FetR>#"@ɼ(-wg~,q&O<787 K~-?Zv/}j5Uak~ѕӋX/+ҹ]|ꞔfp4DJ$-3;]P4<6o6X_.+':s,'rsuH q7`BLʐ(U>.kWjq'AP`{zmmLh3 RXZ:g\wJ$'qH}, Wg/8~|Ly tA-kQ;%fok{[mqjaxFsL|,<+߳S6Y._*ǯ^\A>6> ٟYX D(&QjOw": n}3δ3Hz9uxN)x>#əꙒ݌7?}8^}Jʹb\Yc }T, vG%~tSTQ:^2p5S@eIȊW>>v6+׆/Pht#!|{^_%ǝRO$gW9v=w*ɀCkг-Eb1sqG" 󎶓 7 W;qGVי/kWZK ȃy.z&O:E|˙@%/sb0j2z*r?O NSlkPK,qj<`ՓZѴXĿWfFaGQcgi0g:-j'NSjcËk8u~w@-FQ`Qj}Z/ ^I581Ecu\35iMoOk;%h) ,͹ek~^Vֶfq_Yk3/PZVbe04 g1QCe{4I@VE}xTK֖;Ho~ؤ:1_XT-+NIٴ \F%{L"Z5Dj@g,v{R=A#\e7,9/aQ >O'Q|b4i3L A' fa[Ru}`Amo*]TT/(<˄p:YjF>#f_5m4/!mk_Sq=պst_lI`O!zROs"]Pw6 ټ3+;Q͒ܲ3hN2O ?W4RfrЫfxG#1egbǼ;js >֤ u U#Q &f3\zIsL|KAjx J|R121Y]8kX,uF}[tDziW+;S{WxR%P@/>k|I] ufȨ AMWm#0G0^2W_5a/5i{eg(t/"P(d#AM" 5.][%¾^ֽHcOa%@ dUsv18c9q4;&nP?&"&բ>$)DI0N9ԏɱHjQyDC$_gbM i2D]fuES'gVEdn-vlC@,z eV/Jg 3I2br|}>vbq#6MQW`.w v5>::jZG`c)&:5ZZ̷*΍޻O:Gbү]nu#4u )FAd’|BgXu ֬w{{谰!/n̓n۬db^uFij_L"ilZ+jofj-tLh*;yɓU~\\""XW2N<2^27r2VeI&@Kp<XrR04,kc<`#έ%3}Bj5`-Zt?7. vCq7QnF=SfgCC&=lk;visizY1vө4$uJ}ΑN1t굽 /!n.}_Q PtڞCeǻOȎM#riQ0>9C^YpɊo|O.Vÿa\+S:5bw[mE)2 R}55T(bQm$)4hTOT{WʽCx&zN8hI7ju]VI< >;l$efc>%M"Wku3Z$Fau{bFvcuZuU\WB/^-c4?Xv`B2Hn`"Kr<7Jn f8Lݖ"Whൺ{֕L &n`DU͋S y~+tlz1# >J>Q+ü`e\b =TJ ݯsWv;ʆPF- )@1ns(O@#\ D!A4OXVMpBVה}|W޻`CH$w)'j}zy,2֓JaG&3D7H^hƓV~K?\8x Ru๻jK)?X9#"^]U16T~+$>O5=&1ry\}d *bdjP tU BZ.X3_ȹHgӵZΩ{2{WoDfZS*9*f%}%PrMt=v{VRu{xu3z3|#Ա?u,Su5:̮n{`,'tȩ1 UT(#zv&X2.)x,B]y`C#T.}݌dCCZꥺ'CP>}@e(ۛ:Х9Eۙé,t1-sǘcHw=zϼc[v霼?N,r} b+ߒQ]ٽL4o!BTǴlO?L8ylNA!s|(㎡[_k S$Uq1t% ;[ެr?F6Cg NdN"!;n}:@w0u8MR7a@Wء>^R;h"8 )u㭐Z6j8m%";FrVj1/stW_)c"\)zkr b9D>q@A{ď)ʝ'2NSȌlݺࢊ5cf^uOLö0e8𭑨Ҹc"dgG\KlH;i:a!HfsPp$N`#^9N`CwĆQC $ s0÷)@+L@qhc@WhN@sl>#tI~ l*ZUa8 J5KWa[2i3W䎉F>c]B)cNަIw@%^ 'V`"-CB? //Ժ7uJtrG4Rqrc ?D5÷>N=;K,5#ѽ{oS;@9gAl*&CXNyg2e* %r2zad"Qur(h+s2&c5L;LrR>PƔ1ܥc _aXc1لj(l.W?Rv30"eh`͗N(;wXW!1!;0SϨ);H(qʪ2'i["bo25#u8}pۍ<#xM8is!CE,!w1;NBK$Q;R w4G*Ld@Dyc&MI M w{4rCyUw C}%'rl9*g$VMď\_Kreʇ#cV 1z 1t Nҳݫup(M Cޓ^gm4R֐R?Ui%rREU"!QWin1Ow=>plA$aޑ"IebVH5!(_ȹcxǏR~$(4)#rǨ '0 4sл?=;5yYP*ahyDΙloUpt01^1FT1"I2^4)rǨc5g:eSpgJ#YhK/]BǺ<)* !1;_u_}jf7G;&c~w05ZH m4dw_~VG <a5:l0Gtώ'{Fa.l3Ksc梬"2o=CkC# ŁaSگ` cγ~1VmwME~C}_~O9[0cqp`{/LG`T3I%/vHomTF<`)[~,͝2Prhs˟f@(gGS1vkdF<`T)lz{l!1k1O͒N㊙`\Ov)4_nnQͧk5s']mw0T8x irs@Qiǘibd7&$&CcC]]i42y:3w#NABSؼH5\!gI9Sa]pB0]zm91\$z[=>"{Xq>Fa21w;F["\?w;9e;&mB4cp5FAB42aS$)һw 2ca2w ԭf~AԹޑt{?E'd(00mQ12ɴ]h1Ә s' ]H=E͟w0 @q8梤2d@viTst"W;?Pşw 4Gs\q8#1uCa;&) awGKps.h5Z,#;_H᎑8 ч;Fii(9`O:6Kfcw3w t玉 $r5* 2q-(K a|;RV;c㎉p;HXC5dR~ .|{poc%!O#uԒ<*ct;pM|\|ƽ9* ]a;FݷxI2"cKDMrJHI7Ä}Ʊ#1!1CVkF 6VNBjRcB!w LPGC 1ny5K^'ncw$j&m )rHŠI3ޑ&B;w wۯu10Q/zGҏ;&%1!;|0w:w w[6d,DCmn1B 1w_vֹc$nw˺ź~ ݩ *ĘSTwWh!)sȚˉ{EM8<ԪčM#?j@cB wdWH9:TvڹcLƂ#lѮ=M80==F1G`$v*aB0wLF ´zkwH.w̝FN1=}ќCoc;FCh=vq< 1THnTsǨu8Ѷ ㄣMaYN!sF;w cmH-vQM8JTrbC~#;5wbr cmH-v>(i&'G1a(aBw )0'%[ﳜ8 !)4cT`a`mH,v0({ ˉlb펺 phr\&%>N=q0m@j &j)Iz>w owa4YH w8F!:_HV`?xwU@!!ppoJ憺;0'qeZL7 PHڵ;`"" I3ppG 2B w$6\`ªH7݅Wu|Ȅ2?vYzGiappV E:!4 8G!s4PH7;F`" ~$y} LS`)dS<׀;F`*/C]HYvf{#OY*̙kV!E7c cw5;^=rPFF [H# 2arCBLICb35096X\9( ca350:rǐ$i1H`nfk~+= CjH2-2&(Lc{#08~1H9cٮmƚlj=Е;2-ʘcwySTM5V!mFԭT Xc 1?w!}_43gǫl1^^?w6C~;)wN1zs?^-O fQ~f0;qǜݏW7%#v~7㎀;fϻg;Fs =AU!]XQgc\z?w;S?_#Nѳ߁qXC{T/]w`U\rNcT3x{_]K7mqF{/h!%k2 opH9*~ǫiPw6K"iw:qǨqu;lkRIiPw7^M>1j? _s(T_f}P58\~F5ӠǚɑI%61jYww7r*BAa;&k4w~uS ޽vGo u?"c_w~.&61^^Xv3r^ IY~F68\U4};v:~ʇF15Ifg3p6B,kAf.5b玡ZCw!Yc41~ƮDZ?Q58j ܏+PL;NalpJmL}Y~&[HGv?^}c&tɠo9)t.&:c#SFXowH&)w߁I^~qo0z#wyr#3ma! trO1=>1'ѥ.?./>#Parkj< &;0j~&S{ݏC7-ɶE|owHN7G߁IރO_3tźSDF3EnwHwB9LRGWF1Oi莡Q; vzz߁reVN11ʉ185O}75 |ȰI0;B';fw?w;&n1FD;IN"h1lnj1bz䐐sץt0LfW ?,'o}d;K8: D58jx}G=nj>~#EKdX39w|܅f9Id7k08*b-{0D5 !%$1zz!0=W53)1K:qh 粜3HCoj5w9MdW׻w9Deo w.(g?4p@(w΍1)hX%(dwvp.C'#f1FjzSۦ͸(!G;RA5 !Q-|Ʉ,@Hw]n&&aF", Lѭe9yx#g1ꑆXz;7"VH&c!㎀N8ڵ;jzlF",F!c->?ji;M>㎣-fӵ#[.a!+U~ @ėaBwl=qGIqѰKQdVrbuH;; d6㎣-*p2ɨKqp#_ *ɧa2 wch;JapK:pǴ,euOqxiMƈaҺ!J QcCaڶ;jZ7;+ rXTci厱W8@ipݸcdϏtܠCA0zR60 GyZy_;n0ڎzCD\+ ~{Ws#Px:I"1'w7 ۻ$R;HD<+)$hK8;I5~ ő)%a/AyE:IJv"+iwg#%0rg긣AU'I4^$$A#%;J-Ve!pT6Ch$IQ{2RQ $" iwHg#0~Ww4+IUI߁)<:hwj#6oY>psxl#I_u$8CazR60Q GJ xZbz/IKX$ɓ!1sph@ow0dw#Y 9;` @`rȹc=ARc;;F_!$;Ӹ#wR|imw Gv - )01#ɷQG_+IqGCKC:?1I-M:ZH;li nwԑ G|pBc0&vGIwqG@s$'a:ep$rH)mK wLOssXcBwe0m{;UeN)܏7eDmwȧaRFҟYC:ni0Yv58L2$ +5$qǤd#cyM'U3ӎa1QL!LO}Ѥ虤N# 2kHI3vJrD1cʣo.&Rf ~䎉by7 ccҍa1L! wL9Dz }u*AQ3fe;|zQ;L;& 3n•- PbLf Y*Ìa1{>wآ,u80vB_Ɂq&RD7c,Pj{.t!VCFwhgw[0bZvve:1dD K੢2u䎉d4R2j\/*2~ha8q?I`Z"ox_Ƒ2cHy4C[~**n)&;#5c5k_fqL끐̪i1z`0*~PaZp) $}Oc篢tc91CY0~'q󖍩1Yb4'TGsYjr1Ё;!ELcrͿH3ַqWӜX.ciCrDOc߅n3Z0qQswwK ':1!e#(p@u*&xt`U2 .ј;N>É;&)AL= JAgFowHY~&2 \HgT^]-yU0s`28jsIrrdv䎉bxf-_|ҹ3w~1J) 5]-yU¹39wLowHYG(p@K2jAsqLf) ˏ;w&b m}J-2DR[E4;0r70cld0~45I񧽪$ ; t!߁ɑwPaO{? |CFc푖HB2oCw0Iaa0IB]mx:nCpbG~dBLh &vFy-*8NOPRO]a~8(E[iHѪnP1G@Ĩ 4Ո4IT{t܀H[(zz;8/mFvFúe2u/FnSM "&+S_NI}@H5w$%t!lܡV68ꅭp{}$ȼXYϏl>R{&!;ZA&vFf_/Wt auEL 8HIQWzlr ]w 4&AQ UDB$$̖1&vFӞY~*8N}bǞq7a>G$)᏷~kuь.kCzX;#RY'-8~J/{QE!#Q夂+{"ϞA)vi;$0%~r\>ȅ);?S 8~0$2O}B0Pi(=mwT0~Öxs1qIW)DRR8`R 4BzɳtMN^G!G}c$80"CTL_̥z'pWClX*z1!;L;F#23J:Ŗ$&0>HcjASLҐ1zIATϤ1$ JcU1_>T Ôa1s2^ǰ6KT2,l.$ 1ё B3ັKdpf$ j壐V1*i=2-8iF8ÆE(dNp0J ;L2R(IcʷM&iG12Zi=yͼe6D`>S0 g4q0qǘP2[D,̸8ej`.EަzGr'*me2^anЩwJ voHCv˺߸ ;fKe;/ϟ}HQfD*u%uuL1}w;3^}|d}/`ϻxHQfD*>/?;xx?()-T-^y~;,;ogu_;ڎ׿[^}.a!!_WVȗ_w0}n啇tF}!}+;^??w_d竧;f/\CH Fjȗ?(L߫iY)w0;+p??}2}1[*:c6=^}r9:<$z㎒S?鋑̾4wx/@;GccvEaW!o_6R_w$r:?|',G;7)q;_O_;_G#[~_}q|n9fD"?7}E?&1s^CW{2? Ǿǥ .ox·?xj?1| b\vV.'WXW kŘv]YU:`Z):bt SUQL2.@]0Nl0,p:@ R5&,]1t \ܨ9(@@͸/&`UrK!LyEHi"rH;ژ;w; )HSGIWS'O ̣ܽw1(sƚͻ}47zWn p S*[e:)Mm\Uon]VԸ8 +3;kyCו܍zvsUۯ`?1Wq?wrW}ݭ+]AVw¤7 U;FӇ۸[WwyK?ۊw; nW5mw}Dr+ܿΏ}8SEn,rwe}up߂w#wj~]+DK>:n;~;V;l qzwAnwv-C:FW+Y;2?d7+KWuo8Nyo+wz*zEй{ VY.ᝮwJn!GSNǻ]7U2{;hIdaw&}>߮6b"ͽ遝^>|}Β=;Ir?ީ3q~:w/,Oď3^nBs{&~NH!o )*wuu.:|1wץw_S϶ab];㑼۠2-0a.XWw.IhKwJ-SIw/3y&I{']L;X/d քl#n:ΚlܡU0Mh3>֡w$PȘߧ4iG09 ̡n47e|,&B#!|M7o8 Q i6:pX)Rt;Ğ;U1pn- p)t_H\8x: LH;=S .p#͋N4c̎tP&s1䮠sf~[psՍ&5x{ yafѻ7C:cQ4v9Et9 u܃=CTrgw=dd-c;Svy]]_ܧbY.ԛ3zVz,s+{K=J*sUz'YPΧwoG],Hz?wYsWx).n_۞"wV#xw nܣ~U-Os*:ww5&u}˽4˓/E΅`~xBx1npnyKܭw`xwݻx'?w$e؝-swY8.s "84q{r7n99N˽ZEͻʺh|vDo>[.o- %Cԝκ{KSieRhi-HQfB{IPQG1c5 X&'wv(G_L1f1X tV).d!jSpTfrY\}Wcb ;[)j&U3DK]pLhMp̻,JDZx%I-ɽyBWP=i1y Sp]=@%sVu"dۀ{L1Y}׍aRlVx({ pTwޭH}/_%|q7$. wmgsI"s;g{wm_NZQ$".I.o9nns`;EG}/"csG;:w4NM\ yesGpsay$s}}{ u̻aits-yH ;*w̱\`be DdeUIOo#sW%F?T-ALT9B+)-ǀm(řuis~]ф0 Fx ۄp,C|pZBg= ؅O4 7wS7H*pmá8$ {LvI42OBbH ej͹.9TPRT-j́-]oz*}esgq}3w=}MY-Ror[ zn-%Tny?W,xW흨q[f=wkuy}IOίZs:5>mk-E*s'޹cLܩ>_>c]TcB:{'f"w$Rֻ[INs[c 9 Ts7$;H%ۻ݄hsj1n\ջJx+/{/s]+w}^O̽zWG=i=_niGKwbї;A{몹 ȒE;0{ݙͽio) SwQ.wwX~zXHwߝju׼LEn lw9Ew]/Hm]ik~[Uki\rC͜q~ n!LL HS;N4w8d)WMwz[znw"wJ =/k}cww(Vz'D 6Лټ;Μ$CJ[wWлwoxw{wР-p+)ֹ}UֻTswG%ûnv{';w|`y[wP3s7h @%W{^";SqN}'w}{v}%1+_$RrΡUv3p/0zU;~@s_Lg#w޷QwӱEVrwλrw]85;Rw#y0yLӠ ;~pIm9+wOu]WݹoI JLϬ) }6 -S=uqr%#[؎ҕ O$UcBZ@x IUMϙ@- ic ]":4s$0e[3 x+iK6vɽ"-lɡw@"\? g$؃v$ N]Mfy꒼t<$)M(2/Iuv~}dk}; {@;8RzwֺGhjطg&5AtܫTYIvt+wpl E%pw2w4Cޕr_{w]KC_-&Bd',;.Tro $#x7t+*rSjZݪ\. '*sWTy;%w^'lGk"3|({S;!^g]w2z9ꯏ{zw>mѻx7ñݢvGYw$n߮q_ޚ)Ur-\;q-{7Tg P<쳱;` v/qɱһx@9T݉]wR=J.;Km)%{<9yv(;+BxwR;n9sNΥfs'wW[$=KNc#ǻnbw>C80:Ox5s|L7b GD}ni{Lj=Ja#Mm|C8GnI~@6|w4ܝ@M߹*wm;2덻ڂMlZI#szgzl{P9桜.3!sZ({gdb.2ĎE!\ +3HcQfBhE(A͜Z"Ё9. ch=Νfs]ɺn#!I 3ˑvn`yYyᅧ |kQ(23]P*Ԉn(* } (u"aC(waXga8d25wqּ7rN7%֨]wIExS{gNBbD!0B)䞧0 ;H`־=[vA_Xmiai7ueF~f7=Mݻ"Cg`!w~codq- E5vwq1{%F}4sݻZˠoSp%3l}ݓ;1Lf^V`x?[͟Ɲ##N=sLա*,܏mwbC/ NMtgwtAi΍W R65{tg$p`)>_뽄Yɴ}ƾK fP+HK="X}ˢ)*,XHXϘq?.#MWd :"a?4tA,tGc@pGb9v$1IzxYAY˝0uN#l.#BTew^szuh׹v%ؗ͹-wI$8b<"2O:I҅DzO[,]>RGnPD䐒;B^B`w 8uP&Lh&AYaiŻ&Y {cG{ zlMΰfw{Y70m;@=pBőNBҘQ'o(Q!7X9~Dxv;eWi!#t2]DA lAAb]+܃0"-F O4`8r W~pSю"2qYݶm}ݪnyCD:8=9w*wSLKb qr 0f={ΥwKvdSi-2. kO:)%cs]ŻZzYpjSFP Kمisl.{ ;79ޙXޥv[~ zq&9ל|;J 'ީ QUDR9KD~ީGx0*4I++ܝnԉ:D]^Iܠv8jn>9䴝tKN?AΗXˁ)5wo6}DiۻKm?б.!pbwr7o9[waN.oθ+͙?yzC\`>^c:wުH̦{F ݲHw4RNq=_8hr;,vnfj,NĠt CZ] ]wL6Y5=I]ۗ7>Ԉ06wlЦ Q4X61Y< AhVف^ SΟF߷?N_k^F3p` PNB!l bsdЈ'!\$H/]8T~*{wuCSP@_3`2Sdr(ƻ{w 83=56}w+=p+ƊpI&P60h#%9 SAœrO'Ab2'4eF92[K*.7=7s=o~vQeGXA] !QBXUΥϲϵwϵgϻ <:?m>~i0~*KIn qDf8\vYCr&Vy nL5Eo } -J5Ώ H@N+8xt6[[aD؟Dw+̎Is؜rÝ{6=4ջ;锈rRi칣$ll{xlK!MwM2y2xGZZd?(:1 -U˝\n"]]ƀܧ{JzkQκ6.CP9[޹!8ޑۖۻ%ʼnf5v Z= WDmDpviBA.;+wmCY<Eoc`eYf s! Ki$r&w+ۻķlRqW"z-(;}낷Ygw߶?gWy A"ǁwpϊ;4 cwM!J^Nm}fD}`yjz;>cw]L+5lKΦgzϝB{v\ʠ{a:ԝ5樌]o8%ws j_˝BڐzxWpZ<";,\ޙީXr?DzxGw= =S<όN-T:{;w@w:wC&ҳrW-` %^H+,TǗkZ5='wYgb4w1ϻ#8Zv/ލܫqJS4Z|wM#}Oop-wdǝ SwwS n -Z.Zp6זw椓I8?C8)nV߁Gؙw՘x7E5+S^n &8-;wt:^P]pq?co3nbi.F!Iz6;ҸhB»w[Ewv.!',vvdVLz1dr^n~tt`䐲D;wک䎧d涃7KOܳ}86& cwA 熦S̟CyiI;RܲKri0^s0}3[[撒``EYۢ5?wMċH EE7{[ۢf'2| "F:{PY\QpzO|.LZRM}^䮯Ap#{2vE-Hݩv@-mKxq( ;0Ggz,iA2 ҏ+\M`C:83m}ؔHN |`tSAGsлD|g'iX>1UNl7Gv˿z}W>w=pcqo\7.=9~飏_|G'/~3' OU8Wnh ͏}i(3 zHPpة OgKeK% `uI2Jj'W0%Ssf͹U<i^zwwI53. 5טzGZ@ؗ n#S^Lb/gʽ8Yu嬂,b"oVyt7fH[te^9+wq`񰦇ZW]*.uAQ]`)I[_n {V윇 ;2EFAR-HM0;9LP׏ =K\ޝe {1x7'pJ[έX.7)CKXDbh>ܛt?$wn+@𮻢 J&5 qnh -`|CS 7gTw5ӂrA%6/*s2)G\X%F gw,hX}fC$e>4_lUXsd3 ;"Zڹ z2w 9qei B M8by ,W?)\)s;;~I|DPww2{@ HT'@Ktrr{GyՆq._87 ZRvڻzwGhΪwxhѻX){Fj۸;`.P$w>l;[4N;_>ǀyπ˷:u#_POc9k7$<;T=p]kQwG.C)䪏`ZW{-Ҡ0hhR "*@kKڟw8.9߮Ub}ghS^HYuʢ / /T ^.>^ 0ς.6ji;%fmV~>VlLtY>䪨]Ħ]\Ǭ-o KSneM\K7UNqȥ/uןEm-74a_dVpfK"L@luJ-L^c )#P]N&c|%{Z:98a1*ݑ@3Ƣi.52rm}^p;̄"&>m c%Z OYE d|"ֱΰ p81vㆧtIд8(/2S7$U2FaU?}sgϩ򑟉hBPfW9 f(pPKc/>E1"Kdvb]vx6*%%%J&n|j&'KIL8oZ"t w57a1E6w]&]|7Rg N'W@2z{/C_x LyLοc$Kw(F7,F#wh+~'f1w5\SP2 Tw-Hkϵtli5;n# غuqZp9_ LKfj`MP,`.fkčОnGVV7tvTaJwɾ+$-P)JzoʯKT{bZ+v@؉p?"GA "g9H;sݺjm}ֳ{G]v0V1 [.63mHGѳgE 9!V 0(`hPAp<|Q)r<=%u`C _X\--Fl+/ gx#k=8eNt"N^9ʰ;bLL,E2ƾ￷PGYntz`'.!IǒT,T1AE(ڢ/{O2;a 0ExT,){ż,[mAeCwJ[-;g03+'sHeM;;vɛ>lWwTrگ`7$4F&'`_}KF M:}Q7!I_IT 4.Ƣ1h&ĝQ_Dٸ7r'M"bikp \i-76vH[J/go4OFRE.$Yt-\:b.2:[xUNEcj_lb:jfQsn2c)3K[#=[ s ,v,Zއ8+o~X;$,r {ʃnp*-(9_zGtɠs xI[ d2m ]S]îwVK 1. X&lX[cvCv jF g?AVrm7,=z+(=$@1UR /gNJ'Gkf5pėL)98 |ArjS&-[?Sb AC #U!#cEVDǝ׃&O˷^nҶ[EnN!$e %p^<֚oPEy{S1qSfμ4wRzG*ȍr! 2_ŸHjt7 ZI#J R} }vVF.;&(;(Rl{r}{rr 'bi_Yn*=9p</%gQfV,{ -\)o N}4VKSԽKhq qDø]ѐw»eeK@?I>wi븟]Y~`ǽļ|P;ȝ4ǃW *a9Â{S&.z7פw$3ˎTAl 2źy@(rAqd/w=-d͘[`TsU)[ T=746og;Fj"Gx$zJ)>u 0sSxgΣ(FC[aE3wd#"iPM.Bwp1w{]Q"޶Xӻ b䮪9ʽl:byw W`A NB8 Ar_G2gPEC&U͜w9jB+gqg>;F&E77w! * $͛CǕZ;J޻~m_xĪ㬽9~ڵQ(.[8vMaF'Xx!Pd5c#P+ARpiB?-TagGGPᅴYiw{.DAu'L$5 |h5;P$![iDnvRh+;,&#Ϧ'ZXx^bULv=Om".{WzNX?2i(V1*&o%A\m`0W\}(r1çpAm, 6gge>Xa؄3ƓBq@U;A0d-hs|-._wj|IO}Av%^-6W";qքnqr^e[>9) ~b÷%8L-v1((= U#@e>vŶ4I~)W}?8?<%:H};: OpD !88-5^ͫ>IN~+4>5;jպQ-ο߹H'Ktq)DkUKJK\ ( (SVM<EJpwfl]z gr9+,܃xwؽ R Վ6ܽ»@ )[ǠKe*%w1;Æ"qIŁd:l3ϰA^ȼT/b3?]ќ<>j!j➛e)̂qD#rUs\HQUu#r*M\i @@Χ}`ݻ$ӱV.]6FVwK,,=UkZΨrwp,zpksLhm\Pޥs%5{P>\8>: gɢw+m7?w=Md$g*86q8.eƝ;է?'cyO3mǣ}y%\)zB,ɶ?L#(ewh{g:ztљJV%i{X &{Qܓ[Q"˻},n;%wgĽ]jp;U[^>) |a9-:̔wk~=wG]E+ױ_r'̘Psp؝Dv7XI wo 9_y}.|w>go\X/2`ﺊu#` WZ5@)͜s-H"'V8]3#ܫ&wN\ӿ%^%%gFrV3w*uJvM/:EO-b{lV_ y>p[_ڪ7aE#,ذL護6O''^ݳm̞zZ}6ͯt% XQHgZ4&>@2zq8rm])NB*1Y|whe #`lVSڛx1^6@vS™!vsv|C[fvh\Nq?[ \ 9---x[~75@~+US+'^^ܼܻaq:\ b1G@m k:DD _|z7W)SXpЉKDH.x]mrS%Cwʦr#nyΈ~sMkU?v}U {;&_k?k K8#,j,B`ꀢwAF74 vdټ_zG _UYǢ+a3R,H:+%r՘2hΐ4t(xbh$y;:qbTu9Kkx3Ew$<w).)K v˴XLq1LNҵI7z T&5vp(A\GP '(TI: [;.Mm$xքIKXNkm)^]*1tP@K6zV+08_~XX$xw8޽MaL.P| &AǢ0QL{jxwK 6:ܿ=#?OͻE[fꝗ[4ܧh=pNxzŁ٪ޑa\]b1 ţ ѹۚe.#wi4IGĨu0F &w؝MZpn?n݀N{z靈 x{S/L. w̨qI;h;8HyȬw{S$w pwLrAJ; {W-A8 &;v1sw_Y i ;g>ɅlH _E[s3)[_+mױs(. UVTu~mK _\ >8m݉%B,0TE.Y''䎪ܝ5RP>Mt% Z锈~zaev[kgsNaѰ`B|{[2ZC&s2ŒbA,quF;9 /d(a]2!M:rrw[8qYk&q! i;ֵ0&r暸ɸvŽf{-̳) m?&joRvvbVZƑ#nc\NDR3UiH( sG5.vIB2f}Ͳww$xWۦLbfCJ޷;-UpT\!hBEf!)N»%$AdH_K)@oB y 8;!{z`.]׻%uOmgK$nCۊw&0Cq=;{޹)qNy%zgyGzS{GNݭ!NckRWQoA.ӻ("w9 ٛ2{w7(Q95IpM w*w_gqݭ)yq9DvZpK{$ܧ+ל]sZZ-$zWs_IrMwiU&ϝp1ynݩ-kw/818eM*ܟkh'^T٣_3!~Wr j@}R<%Ş@& Zw0%?u*.#"BbB&wnnN+ýH!s)h_Ŕ6m H'gNUPd*G-.X{|b+7,I^>[а 5=w6[6ꜗ|+ ɳ@G (15'g$n"Ó%+/XaSQ?m@;\haJX$A?a$%lMSߎi2 d5VCV|k{L uM3BPvd$.vy9(a`=TxFw̏P4Zp\G6gVv,6Թmqxqia@fCⷞ1#8 ]ת}Ga+٘o?:;v6qjgIGJ}K5Yޘ^asu01nB"A@I|Bu'{pMl[4Ms-/+U E330=1[u!{Wؒngә҅9KL myYC_nK->.Hi7&z̮k`uC[ p)JR!;wg2kgV$^ObRc Lhzے7dPJ-ЩƾPK)F9#EIbNp\\]EimcavQ:/_-諛 8<ä0晸+sܠwSJ*dX‡ELJv65C]:MJzs##wY&8([+56s2  a::]z7; VB iH~Χu*@ݕ؛=ܿ$~^ݦ{"»pX0%OEt&I#΍wazE&v?oܮ癦xw;w#0pl.eLP# exA;zp^!Hl(,@,(q]D]ܕnջ#ػ G>N첼+қ] Zek⾦{6ȻJ. fx-'_qcpڝL;U;E.a,y%2`yޚBoH)\A=X ?% '~f88૔p' kWX?L7e1`!s/ykC8;qxw Sƨ]79~槾21 cs`##KݿB1d,Bi]C;Z 3n%_ܝPޝw6Dwpܙ;"nrvGr?{$Cj)i7ST8WXlSx bC7X%əP,u\51_V O$} !!^I }s,4b;ґ)f\FMr2|usGpF*‹UZc67 $[r hQӇW+;\VZ@6ok[M BjܼZ ['-o%}mPWVOG#g^t2.جsF}UơŖt?1"+Xbv`hab|/"WslIU>|QVXȅӷP=(? .b' Zi!b 6ŽD՛Y7w:q]1AAg]*9uM`Q{˗o`˧l+->kpG&>1$[;Tl)Pժ{^z7M| UtSYlN –2I2/HG"W䞉Ӓ[ϹmqKy5 ȧk w(x~[U[5חFUos ?խ~Əp}n':u;ؐPVx(C YlH$L(IhiSnjn+z my Da#ɚ|iqsܢ>U2:ry½ŮܯqC"/30TMYfo\.*P)@z\)-$N'gF9+e q ;iNET'z#w]pzg ٻI.%ww}NswDтtR%ͽX,םlqѪzM?ڜIj Ni߶j5;Izg/ݻޝGy:wȝbv*%wօ>Bk/G?}G>u۽,ߩ vV3⎖H9FDѤRR -<ǶwK  *e{9#['7;CI4$isH#[[%by+ˌPn_]wbat% ve]1 u 8꬀$ 3Gfsa  Bd=-Z"Pi8ƲfYl1W|s'ZF: 7wzN^vwȐW%.M_w&)Yf_`ٯT3\j%vUXۡ]yln;P-d%]aev<.=O?<{k01ikdj(P8ݞk6է,^:zGp\ۃt[3;+`{h=g_\/NĝqH3!#c=P!(|U/I](o~^[|_lrkS9sSi]sh-+ҫCIpT(}HP'P&\a 2ro>\fe//Z5<pa#{"th۾# 5-1I7p ?z{|쒋gظ, 9S%7%FVqgG I ^?zK+Hw//tMEKW4c8hHKH_~ݣz 3JGPeB罾dYĴuZfmQib22'^S, ً9t#SS|.ʍ;3Mwd|_19r 0BZ4"VLoI"k8n s-orSZê}X>)׸hM3%_SǣY?Th]dxz\t2=Qp]Nz羈bՊ]^UfBfp8 NVN(,zYtm~x'9s!wDEL1q't:oHF֜!wʘH\ bc(ǐr=Ctq`Bqzײ5D~ Å. {<"vnZvޝӒJn\tܿ>WYK.|m(i`;<4N(vGV $w;zw+0wnzwp쫔$-}"GDw'kAg߱ܩ&ܝ$udVelݻ"_7ٝ#e~vJz@ѽjwYZ{vSݻ5@.b_}}]+cfۿ ^ ' p$PBr+CC!qic|$O?wOzOkȟ0 @C*+pp(v;ks;mHWA#YkQY|ٱǦ+]n<ᆡp)twqGpwZi_~[Mw (zv8#Y2W+/-*!ɳ=koS O(E}qcv.vxʫ[~7z^L-~v:yӝࣻRg(Oa%rÍXgK-R°(p'LDsnOx\L u=n}1\5'>-n.:u{;F,J@PF?;`g#3]&0gkGۙL_>aki"QbL^ '^+@\Y6\;6j s_ph)xon==1ۥ[toPyAp- <]xGˍgplW 6dݺ#L;xGl\yBq<{מ_Y5{(tWq%r@OFk_?\Xܰ37gz8M]̹Kta$.M=Q ޞw)6B9f9P9x5)`v8Fye E<9NRcXvkSY-_twL#x ^Ru"2$ɻX]4;fhp;k=f}1r j(v֜ H $.0)3gVY]sdb{c'2+ܷEH"0F{Aq<0ɁN]3xwAR *|wFd7 aKE=Np_jMEReGnjld&xR` wYvmްy׶UĂbB5SzAjW,qsKrq) `YN%w!wsr'jP-.h Qݼ;sxg@LwV"6). NI[nbފw{g4%;v^2ʜ`NtŝZC߿,eɔI= wx 3{';L/;]! ˝UxD+qcu8.<Na$;j3"OtwwU^N;Xrv7Kw&4\G<ajխ_urzmzkw4`]Hy?]!tJfugÙ+.s~Q\7P;qxYd2>_3egA{G!8ΊpKM͔'BO^kM3"aэS ? [763p% r8c@?`N\^1}yNiXYdǍ;UVUNqt⌦ё ㅀtGƸ 8aŜِ<)PS (b@3 ĄGYxЯ"9KH [ds $+Gwt Jv}MZ|[7 Pxӻ0*%ČLT/1xMlYrc;Xj>% jٸN)zW(|zKW-xQt7Z5ʷy6i3M&ҀuWhߺՀvglCu uDȍ!w~[GmGwt *Xۃp"gщo ػeR?zQ~x]Sm_٧@gOq4zkKK8{fHsmF'Q1ŋ R@|*;w0,ڮ˩.qֹ14TbDCQsZS>E aw ?XyQ]5n-qJQfJuvnmK?V\rMQ&rsT .$cZ!. XVL(8v&qȸTo9ʎH{"|( /*]#׊@ȏU&ÕH?+CpHztheAg±׹Ǣ]Zlo%Q^i2ZYlݶuiT5hfma@11I Ψw'-OA|3"Ρ}]J@֠l,K+X/HIZ b$>|Ppse^:nuuP1d5$Φզˆן\R-^0؉ۉ]IJbvf[ʯT Q1Z-9;YYc-_ml[*`Pec2xauW 9c56z/=d+<.iC %SM@G%傻OmrPC F]M.PmiV](P)wq j|!jgz ^v`йaw"RQjH%.7ۇC0*nRര/}sHH^,k[pXX1%q(u fxNq\1I?TSj]\%!~\Q ݜzw7N!AVM,SsQqMew QslVr_eC&i4XLs2FGy 7}c^xbGq\<ѫ+7C]-;xW^cwӓAXѻYzG#RܿɽE w2OKfGXo+! bܗ+ܥ.wOxBnuf.pۏϪ朰jR4=ru3@K] G_ugEU2O0lS&ڐ3Kafи}!+PZ턓iM"[ӫ`^gۯIw4ZX"jo [}Klf̖cE>ѻrIynL(n;xZnOZczM..cfn"RD{ xRoxR%FFCo iV N8gJe: ȌN2ָᕰ詥'5&~hlo@&z38Aϙ̙sG )IBE@aKTع8>LiCfYLF)y&pZD2=-6{_5 k{쭉uuJ JUC.fٍ+lVuvD]"wb`ɊB4=ֽcf_%-FݠIѰҸχ3sս[Y~P]H۠L*|E;;Wm1HX۠abg!COc7,e> W rȝh=ŋW N91JQ0,$ UrqjNuDsހwG9óK$,ikƑ70,kQBKVFn^B0Ҹ~bNؓwՁڠ*, d #%𱋷<,\$SQٜosΒ=u]$# MoS$@%hegI:Xў'sw#MwD37t TӍ"-̠ҩD+-g2-guY3:ZI@Tm.|c'@(Diouns$2M5#s&;)"@ulM'SE|S4;qq/E"Cټ{w$d &G l2!`wtΰ|3B̤LNP\b&-"dQlQrJ[s'bp>*nńԗCr )sƦ׻:TݶrW VQ 2K)s{)?'ya/\'.k*E (э4C7ƕlqwr/-W 3;.r_Ȋw\FRf.T/Z;ѻԽ;U۞%wz.)yp&"w=>µ; .I|+%.N>2N ф4wde*޽.{ly!LwGX>b^?JKȟOy#* 6UW%w@; 3R.2zG*wIrGH|%gw^S v_;C IG=}zr-5!'4{΂MNMq\Hh"E̲wfoh5^"wcwvg51r7ܕ#+e%srGٻnHnwy.ӒLksCJ}i"QɹR=E @m]>%Fu4^Ϙ=JuOǐ~9\+ۓNll}R/>PbDަKJa..rYw,{MFȤ7 l︿".DgյĽ린 ׎Y`ctpf! rr@'Li+gD_H'쇩j[fAߓq;?CJ7?Qiđ=R*{#)DSH `/~k;&.ncc![bbwf?8Hnўj;=x]/=OT(f>E 4?f~wINd!rAφa$ºxPS$\HhpgB( jwuIъ4{zl*aj>HF-{&hAGům҇} h&CܢI2Ҹ%JHVKH}n=cwyw@1s^PR4nP:Wot{tR}ب ;1ݍ6IZDx#U ='U܇XP;0 0nt8& {4byZ.E@w*mI6 VD< s^sggGq^;r;;1/!&mIr/ruܻ- HeS>Kw>/;~n &#Ej 7ޙ0w\UsgnK1ATF{`P04MG?}S?'TŻ鸟 SK»5Z't;Α(FF ܏4w\wP#!pW{+p'zm͝ p?a[wL}:qK7aUp'N;z֘#w`@yg,YClwi\dp ^|ك]-0z7lLay7 [Mb"z\w>;,0ب ( ج':TG3{%GtDMZDk7%y`PA|+Ξ #CP\0kn_qS,wGsT={/cBfvH66"55!h R(T0j.. y1 </qY~q~ӻ*uI:8,W>?_˖sѢkEZ@H iAh "d%Ȃ*iSźmo3WB|kvIg8Sc\3' §E7W2VE tg4IoAoJ6rR3"S`6`6;}Hƒ 8ܙ#@Oc&Pܟ'I$ <,t,.;!E7١=3gVm[ӲP صZ%x@ؚ֋.d:A8r7=Iٌ;(d]|-RpnEeJd;wE =-[{@:^_LȄ6te@{f̒bHɖjV"A;6|!Qnnh2D\^Z<=M36rG${k=%quVIeT9$L ]Yp!Z.?ػ9C9gMfk5C7 3xgq߿;6<87CDƶ>R,x]wL+y°`L7ݫSRymmT4t5w;CH4DxgQO xO%nŻfS-S*D1ɢw׀ ar@;ϦB|Ӎl!nƩ\w< U2jN/thNNy2y 3w7$={P?WZ#]zݻN=wq ZsL#;īvn;v;?W;=wܝU΃Nw;WI׉ |u$#w}Q]oq[݃5l# 8"hwk1Qr#tM _N2Vжq&d]VM!ydݡRL ںڮD!OzVi.*wA=YV`U:q9Kbi$L=feeSj4A`):UB-*oi@o[J򩒥:*ү<=]9:F™C9iTj2Cf=Pj2Sglےz[y>蚿ƞӅ-!M`a:!ߑZ#Gߴ#p7 ^Btb,jf4Ƥk&ɤ}ÂiI'yєI1=O: II!.D7@23U N3 טyVwp qnɕppN0%U+iٞBr"3qE"6N܃YxG]CD;&ݟz+G(2OKu W#z'v4sxA?ܱQ"v 2Lb_LCO 2=h.ahEt;ה]Owl iE芮p<m¡3W] I& 3pnw;oϢw8BlIXTPfr[ UMͦ38PxwEؠP2fSVzG1i<ӯk=@}]] \싍M76is+m)U޵\ ?<:&&n!\H}rrlQn@*Ry'wлCwR+;Yϊ;24ջSc}wk"&wO.{ך;]h3ܫɽw[߾C;c!Qcw;-/ wipJɽy.+Ol%U}3u\Qa| wWˠIFhwQQ'3E[[KhJ{Iq$;@6MT+ F(3 ռWE?(S͎N(VPtgEٰG8Cي ;OQxw4Eqm.Y= NxnC^ r(ʳӍb4&1 ڃEeŧ>T&TMCf'gΙzbHZ7wL4 (tkPBıdWXĠX.ǀ͹H`.2rܰ6F5Qb!x7n{P39Qd^ٻ7AGvnݍ10g8PywNs'ŤL~c (;YX`(RS0Jd)8ID$P{mY݂!D<:on}0,ʝ[Dd%grnM ܠ2l|ʼl;[ EO [FH.0l»"wSs:$}X`;f0p(ŪθOn9_%3;Yߍ»g3=p*'ŋ!gD;P2;0ܛ};YYr,Z?2)(KZ@Mػ荤jwjS:[p G^nbϒ$ 2 |;)1wUP7 `}"9S3Q$,T13`xgytR?}c%wȯ˼&rO']xaFe@yމpwޑᝆ󻠄w<-V"Խ-@-[hýލh}'{8z$Lk^uСA~eл޸; / -jwrSlLf`xgy$;q| ]!gs{z6=މ;ˋ9;1L"b2wywLH [׵!%9gk1Ԅ)7sTͶ۾y{Uӻ}c&@,εZ a=+#z@coQ;"!E 72c`rEYd҅н ?1 h4uhd'EՐWr ,d:)cD@]Ѯ"B[eso*3,rAbbro ?9͍ERu`382IP6N3D҉ u7f#?Rb)7p &yC.e" 2aR$ޞ.&xM/&]w6; p]"q>.E.So hmGUshI+E&σ:zT5uV?usC>%{Pf:Ըcr,3@'!Q|&{G;ܹN0;ܵ[EP7w;AJw1;=wg]Xw/w)S(bKGZcN_sܝY^joQxw$wgIJ7gU {5aR] S)tj1miKL꒻Q XQRW*(Aw=LL8:t.+$I#QC{8ǿGGjw5֝4CM,+B`;5T&t~ND>1g0p;;AA[^2XJepd$8CT! e )0'͌eZb]6m cXŀۀ8$H(10%NGܧw0̙;Rv;>g!`F>1L3ΉŴTxRh7Kr=O4$PM.4֜ΐq萉0n=p2D4{#p&dkCǻL2bPl/RMl4\錺w-@ .cR2r?d'}iTO VDP-LjC{2\{3Oݹl&p%ͻؓ]=]&v/n,Q9BQ R^.F7!7"s7Ǜipsz_3iraV|EҺPwm7r*o̮դX5ׂq/O5 qɑ+@SYΓRP.;.9/'9̒;Z=ܩHD2"!Y[ۮw{gܱ;1. L?+/Β ];co``ZY~(WbPjݶPk= 4\eft}`݈\,Oe(r7ryabw@^pwbd%v xǙ! r;wrs*4ob Lc~cgas)g>Uۻ'ʕI]LlrTޣ/_л~]jso;];ڝsWU3#~3z72w~.ҍkw).a@0X$ 3ys$wþMjΝȡ`g`]\BEd6w90vuvXz4Utje˸9K怡zh:J98fdO)S`l![l Ő\!%p5JY0˄Z3"ɬ\7H9D*DlGdq:a s1wgwUgltZgXw AF3?0#NOP"H.\ ()@L'ޅU RB,s' Dc/19bQRE+6(p8 %'XitJx~#C2#<#c`@&>|2p HELc]S2mQD(BO{iN.J,a}{*oqwZyѢ-wuuHKc1c4zZ{WX.ᚰw*~MmqG;w ٠\3TrOQz+rһz'oܻ)k&rəm왿&SǦݦ#rGzuKzw~%ޅĥ,_D0z؝㝡^My'sw7GٻݟXh;Y];;ܗ4wI тޭu/}uV"I~ȠCe; |+gÍYbѥw|N림S \$9_H3wGTzE@@){׿O6آzoqA\+݋h]hwMW@- pwbvrl.Q!=kѭ]SevrJ'HǬDKr70re:#{4!{zYOzͷn >"j@HQ8: gR80?ʖtE|Ya`PĚ !,I9irIr)Q'}]WrW8 xXâ>Q.+ؕE( H(< ! yQ06 Df)& w*7s6Q,^ z#S T3F"SY3;gK0ʤ|-=w-]? %_nGB+:fZrrNNYaJF2LboGVD!䩖kҋ! *.)ޭipr"jKb+A=Y! 0F72Fn eqxtF?Y pS0.60c dD`uwZfp@r.׼wh{r5tٕIP>&%CEʛEŻc];Usm1w ]zBc|aŶ1)qdϐYn Ɛɀ$@(l7[oE78A1{G~qONŨ@$}羍 Z-cSݻ qw! r; ΅BBًbbڑwRnWR;;N`QR>S;sw8O͓*]坜ݱ=x^%^@F<敃ݑA>Z9 wq>ki;$w͓"EB(Vw NX !⦙K;˛΁I>DzVFX){){ź%ҟKdcD3D 'PzGY{k{QҤ{Cu7XbD_뒝oJ*U d'~uZzuZh ";v!ofst?>NuSp)]VR7g4^p4':RH{[,]F!5!N$\K #\t$0-'.aAG0r@#Q I=-}~dSiuE j=suz:4odyRIđɁod^$i f" "Pk}DF$  +J %9El@(*ӎ<(r '5 e'1RmRc~nqI{6"g `QH2jDNyGmx@8*H;uw"qw)xŽؓb K@~"a5$7u.{zr2j'Yޙq7.`k_KFo۴Cg@Ifci9NMdɸ\ge*b\CyZmVuƲw:c_a-c j?IJILNJ\#eNJixyAx #Dz>@pw!ϻr]8;}~whH&OMGӢ;Yr.{(/"ZF#w@& ީ܅>wM+ѻVIp͝p'tLFk7ܫPC.I"'%~ ڝ@d䮀l:-w3y'Rs7kʺI(L jf .B~16Qp$mI˜$URA.%>oLgiuQjv7IFw\ xLŪ#44>ͱ,l 2Zơgga])KP6>:31ha쑉 ho 0Hln0qoqLB.J !E>ptuR5:lza`j##=#"pXq2RC y2%`87[÷Z܏jIVoR7cNΝv[DA;iC6hmVD Ya&ӧCq]'Ã܇c̖p84T4Ï]Jpru0A"_rՕr}oAMӣG@ޱxwHsx[n"-϶QN]mN?0; ,iˀ$4KDvǕ|_"2"Ja F\ﰀ˕PpCŻ?oAT$t5ws AaN#'iИN!?lqpջ!Jo;I?{w枂gݽsD"զnp_m{2Ճ\ҟ2\jY-!eh"ջ2wS܉aw;_GӻuQޝs;)4ս8w XݭwtY 'T!4Ӟ4to0NsݧD}]wAn8FF<&pgt\gȝLwl@Nuw݁`P'Dnл=w%|\ Ww!0h\5;帵2w$sA( *iqoXH[x8 $"V~6XgKǺCMTӋ̳jL!$B*<ߔt#Ҙ1ӎ$rC3NtIb6\̰YFӼ"ۈ7}<"=1WJ 𥳐tdH?7dCFwŬAUHxw4{ˌtiIf0ӭߪ@3ϝDsrwdIf09_5Tͻܽ""EEPQt]_F侞׸;2BhR\X\$[W6+ޝfo!zeB7ޛ mJ.z~XvXs&Izcwzhl&+| _^mEW= _G/ߏy{ }Ϲ?|_e~?כQG= _G/ߏy{ }Ϲ?|_e~?כQG= _G/ߏy{ }Ϲ?|_e~?כQG= _G/ߏy{ }Ϲ?|_e~?כQG= _G/ߏy{ }Ϲ?|_e~?כQG= _G/ߏy{ }ϹntƅfԳ|crm +L"kκMGĺ݌E:@pT*('d{'.;o?O_3a~YW )7?­qn? c{PE} SmkwO; LhGq @T}?JQK1ɫ6$@9R[z繩{`VAHR^Emڻjs\$D?ըNzk7 ]B%- ESI Ml'}A5WkJ&uʧ񣟻E͡味(;~Oo}օ5Bň=: <o}Ox'Ə o}Ox'Ə tOſG?Пߩ?'Əx=>OdB~hПߩ=D'<[t}-_ B~ho}Ox'Ə tOſG?Пߩinb)=hCOx'<[u,;,7.W9xk?j_}wo}OxhȑHtUcQ)hlrgRbVOo}Ox'Ə D'<[u< #5li;C?S4hO]ڕ`s`rIp]Jdo'JB~i-$6{t>F$l6p2+?[Ѹƙ? DW}OG$UZBv iGMr_lWg+ߑNy?ZVy?ZW (AEPEPEPEPEPEPEP*X~ҫ[QE((((+M%O?k7M?  OG)uJuJHQEB ( ( ( ( ( |p3m7TLbm?ʓj?ϽK[oQ[oTHw{,͆1U??o #uBlm.:c_𤔬<;Oּ&D9%?ҏk݌jlyk v "i?*h;_,3s=t7ۗԫpGN?੮_`Om>_ I2EW[J&uSn)uJָs;)PyUqG5/Mb?_;/Mb?_Ab**_#}QX.TTG5T]|kGMb WmJ&X>dz|<8œ ݲyާ<"P$a³>?5n fM)!s5U-i{}>?5VB%LO缟٨ ~?4}'j*(_=i{},3y?Ggf %LOֽ_d͙w&^;âQegsL{Ag/˥O [ܖeV9\/'w֢Tr屢fyCsѣxI&BǮzbF۷GbKd և;vd7^j`Ibe(ZYC Z:췑F̫-HfQ׊̞{ĥ#U9Ukj)BƝʼnfrO#^\Gu,>cjU3,c?yӧ4} ܼp;]yuϵS{!2H98G"2Y^?yק-K!7JV Tϥ\ &['Z[ `_VzvgxqS3FOgf5_:UF3cYU pT8T$JّKK<U9s31vxԾs3BZ=闋}@* ޶>,; ?P]_w3R|&A5mӕlՎRoW_zZ7wS[̒α̡0՝]1aEU(((((+[BQU'Y5FkӾF[ rQ?WI.=SW|,2/2|K/3g}mݻ].l*_cQ//<@v,I?SY^4Orw?r EvZ©{Vv,g>zt( ]9զs5oN$xkQu* >pӧғȯpl?O{̭O:۾P6#5g$8.=~cY$Z6S{H5Dw`GkvˍGcJ_Q4&F\BrztZ>Dr6q0VvH|w@G^O<S~*h 9' {np=)uhַH,y&%v_Lkgk?a~#??=Ow}֥)mYK &uiNEx~s/dk_yW<S~(?ߧ 4Bqm3I!(x*![btXccZKY6gzU)@=O<S~*R{=O<S~* AIG֐{y?TiFT=)+G*{*a _#lj x1XT?Ya{4Oj V\=4SV)ؗEk`hL[A^O'8}'h zTl[a* w =ƚĥ=}N8΀c0@7gL a?z{ bottom-0.9.6/docs/content/assets/screenshots/troubleshooting/regedit_fonts.webp000066400000000000000000000251641447252316700302630ustar00rootroot00000000000000RIFFl*WEBPVP8X ICCPlcms0mntrRGB XYZ acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBVP8 'u*>1C! p ?*rWT~>zn^`?VVпMo؏ z{s?[#?????o=_;NxO[֯_j}ѿ~ Oo꿐/_;7/}GO_?qO4/s/7_i?S_l-g_+G8jXA T` )zD-"DELpD` ;"D%Q05>M/kPP\3X~l~Ă|g.N.LߪUQRn6}m)+K]z|+ ߺRWWN~\˶⃼Gr=Ah}g_1`E(_2t[k*QF<~/U;Sb m!ʾ/Ǩ:p_grcV$ TnV'pK_Z=6:ǝG챘6K>x{?8F7 0iQ/L:i\ jVȾ+dg:Ŭ)OC:L~mu0uq.IrF0"Od/tk8ӻP}^vE,Q;OVNn[@s?zāL'rFA_C7$="%=æPuAֺo&?itr(Mķ2gSWА[YpKg@ORyi=DH"$N@Hi*Ho&TT )Z|=%rgKmqyx1mM\g>mm3J9䥽G%^PӴ,nP k؊ABF'`2y _`щ`u6u5|A~M>wes a_72Iz=|:B}lnC^p,9DdGApRWwgSDC/n |˰kbb$K9tn*I]yWrOV-G/WVj1z/5~eK<@ l# *Xk ũ&#MxdX^?ٜ.f2?T :!-xGYF0Xiq[9Y=җ/fP2/YCCΣ,#^ml].Q\IG`lͼGbO%C"?͖D'>j^EIЙv7w^K1 d3`P1RY/Lⳟʢ秶 v_6Ʀ5cjȿ-L;<t6tZ㙲rRMsؙ{H8 asPr$q>3Ll~wphqwvُxk)ds);1;V"uI{xR DTF b^%JdĻΐXcyBH߳}rT>?}عV6 pY=>,x6h6 ߇۴绪`t½ [ ؈ktu z5q&gL#5p% dqW,PIYuaUFAJ8 a@=.9۞ "+nƑā6)6/Ա &h-du?J>rN5o6hoI߿('Ldpp<ΐɂ5k !'Gvh!oe3[$jlyF3T#`f^F5? d$Ƒ gO0/%i/PUT*Lw!\{s+[m}R@jw/)J֏!_w9$)6Ҥ,їh*w=1ј*pl*%8݈-Qa#ىP"YLQ8T4zीvtz`?WUCcJy3?n5|B|'/~&`d>pcǎq1̈́.ϰyGv7ژ _FY\xB$ؕZu!F-٪`GjNIp Fmy1"4pU}(1bp$?Ų73ha5Z &4+ !W#YT r}1#o%R>;\[A6, i#޳>z/&9B7{W-"h4#C.x|]CH3zWê264ѼYdbx݅8}4E*mXUc鐐àk;:2>}-փ 0W=&?gMƋdQ,46 D7G r(p`R] lTy?݊7;./xFD}-Og+9.o ofO7]T-Ζ 3{':vgnD`蒬$;RA+Hhj$2f n|4|q$|nuoFv"x+z \Y CⰜj';t\Sx>V߫X&ۼDΖo80 3&]|8qk !Ҁb Pw tP0J]Bpr y ZQΉmBKmM}졫8zmB@+?g~j?x(dQŀ#8"0(VS5G_U-82?ےԞOj)qF*o[g@y>88 aTVbŦ4.o@t YC 阀%hOj&lE =]ΈT{7cYrlqg#t"0U5[:2y̽dؚFdFJ"?꛴~SÅg |=/)noԸRv&\jC&Sj{".cy΋?OP'tl6g[gl۽SX<00b7Co8[L CdϲKXSdȪfnBr%2i[G'^U4~+t=N' zWR h+L_g$X%o(S0kU1||s :&Z7]E(yXQ\b+ɒ={7)V2"+5$>iZ )8f:::Y4Y?T1aY"nv ]ZvgĸT0\dJdƢ̤@V1䁨 *!c-Նxh8"zZ|=@ @?aJu!O ڂQjv/ &hzW0(Qq Զ_IiP.曪VqM&Tl[kOr{ 5i@ud-G%KøGk@b<ہΦ5C{{;Qd*#Tj6CƓ-;GGRݞJ]tQяCi T &Ip ~8s ] }r5TQLF,੩ I_Wrbޭ~z hp5!&;̙9a߹Xf{cA20b& ǃ!x`<Ո)ճY'W†W<0 G⦆>oZk#λAOD<*MYa^?"D,UM[i-؂a-}ʵyVkHJzJ`Rdٚ+yrMBrk㒾ÈkeWDdA x(bkEsZx^Wsɸt1SL{>Rtg~O Kis_,o\֦O !CD(ãnw`Eni۴eTОLh{TJ׈@Q孁 =6Aj+iɢW1m(f`GY EZyaybQKa%zY)%Jt{(K].Ȳ\'}89&]hnG(n0ӝ‚;ؾ\"tm]s6cyAD s]WDaz"o] 3TNӁdMwtЍcޫMk2o`8sŘ{(k8s#{*=1{-IWg)+KkB)z.a?~h#N/7<6o-t09 b8nC~{ uWෂ$)h3|< /fb` -$S}HRBl#=l>% Ѐc-)CrqbMdn@ozyhG4J@!PFE1ؾٱ2>W}Q9x).ls%* (ny_}i3y(?vH4s|Ix\W:MSr8GxG+#lYsNCG,U/ 1pv5Q][8WיeqϮu|Օ[,Bt:"30ũu:me&OgjP DǥjLyCR^7/*-Bs38FomTk v_GY'b.ڇe7(Y4+ڍ+@(<=zp8z/=ƟQJ"Hbf gKJ yH F"d"pM%:30Cync+> H@?ڐ,wnO%jf3?qK{=˜ST7sEɑ,&]b'l%TyG{MfُPm`;FW:0NDɻ&yyyA75,5XPo{!!P k׽2"|oLQ" 2"8LL'Φ,BZ)Fhr/&kE 5[1[}m +tE$PPOڗXB͂z=-LnH]9L񴷀U?l@x,&M,y2D; ½pr&ο~0K;VcBI/hz]Zk8jl g}NZ+sVaK <ɤH.3NYKq~%$((ZiDN%bEU]Ҳ [ 9յr= 8FEdxǘgB%?ۺbn"a<6!U?g::6)h49z1,ŗh92Z/T[+L7C-2 LM|0҅E [ <ﳞ Ql/b,~OVEJlQhlm'L~q8w%2?nܚ]=Ljj}o÷tKۍ oPfk$uh6y+ l?W%<4 SϹ_Oa/ MxVBjSCce~EZ[;iX 7?4C~K,1LUu0PPVYώCo JNX99l8(ZL޳%l+ 9t֏(Zp; 1s #$: T}4em 7Eq<]jD6_[N=R]_V'==ȼNNF#QS뀯_A]$La>]n(U{¹i#2ؠQW2N{r]a@90W}XXe>;8)e>0z mp}J04v:DŽ_5(U\4 %K7|eGk2'Zp^0$H"#we, Y+Gf&FqPvfʐI2W5w(ƃ55>FhU{qN~t`789QӔ(pp%C)`btjq"(BߧW6B 07[E: ƈ=TYzӮ\&R T$ݎ+O-| ցxvZu91#yY!}zw *b.ihy ry=i&?:#s  Zb.] y lQ҅U>_(@pYsߟ^d}߿(`K ( xw"z͋C,BBLyjҖ 3 |ե(It``Cb%aD_?qyjg (\c(HEjH٤_|V(ּ Qi>>b/jkQ!ed=~z2d&bottom-0.9.6/docs/content/configuration/000077500000000000000000000000001447252316700203165ustar00rootroot00000000000000bottom-0.9.6/docs/content/configuration/command-line-flags.md000066400000000000000000000115511447252316700243000ustar00rootroot00000000000000# Command-line Flags The following flags can be provided to bottom in the command line to change the behaviour of the program. You can also see information on these flags by running `btm -h`, or run `btm --help` to display more detailed information on each flag: | Flag | Behaviour | | ----------------------------------- | --------------------------------------------------------------------- | | --autohide_time | Temporarily shows the time scale in graphs. | | -b, --basic | Hides graphs and uses a more basic look. | | --battery | Shows the battery widget. | | -S, --case_sensitive | Enables case sensitivity by default. | | -c, --celsius | Sets the temperature type to Celsius. | | --color | Use a color scheme, use --help for info. | | -C, --config | Sets the location of the config file. | | -u, --current_usage | Sets process CPU% to be based on current CPU%. | | -t, --default_time_value

README.md or CHANGELOG.md

For changes to [`README.md`](https://github.com/ClementTsang/bottom/blob/master/README.md) and [`CHANGELOG.md`](https://github.com/ClementTsang/bottom/blob/master/CHANGELOG.md), just follow the formatting provided and use any editor. Generally, changes to [`CHANGELOG.md`](https://github.com/ClementTsang/bottom/blob/master/CHANGELOG.md) will be handled by a maintainer, and changes should follow the [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) format, as well as link to the relevant PR or issue.

Help menu

For changes to the help menu, try to refer to the existing code within `src/constants.rs` on how the help menu is generated.

Extended documentation

For changes to the extended documentation, you'll probably want Python 3.11 (older versions should be fine though), [MkDocs](https://www.mkdocs.org/), [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/), `mdx_truly_sane_lists`, and optionally [Mike](https://github.com/jimporter/mike) installed to provide live reloading and preview for your changes. They aren't needed but it'll help with validating your changes. You can do so through `pip` or your system's package managers. If you use `pip`, you can use venv to cleanly install the documentation dependencies: ```bash # Change directories to the documentation. cd docs/ # Create and activate venv. python -m venv venv source venv/bin/activate # Install requirements pip install -r requirements.txt # Run mkdocs venv/bin/mkdocs serve ``` This will serve a local version of the docs that you can open on your browser. It will update as you make changes. 3. Once you have your documentation changes done, submit it as a pull request. For more information regarding that, refer to [Issues, Pull Requests, and Discussions](../issues-and-pull-requests/). bottom-0.9.6/docs/content/contribution/issues-and-pull-requests.md000066400000000000000000000040731447252316700254120ustar00rootroot00000000000000# Issues, Pull Requests, and Discussions ## Discussions Discussions are open [in the repo](https://github.com/ClementTsang/bottom/discussions). As for the difference between discussions and issues: - Open an issue if what you have enough information to properly fill out any details needed for a report or request. - Open a discussion otherwise (e.g. asking a question). ## Opening an issue ### Bug reports When filing a bug report, please use the [bug report template](https://github.com/ClementTsang/bottom/issues/new?assignees=&labels=bug&template=bug_report.md&title=) and fill in as much as you can. It is _incredibly_ difficult for a maintainer to fix a bug when it cannot be reproduced, and giving as much detail as possible generally helps to make it easier to reproduce the problem! ### Feature requests Please use the [feature request template](https://github.com/ClementTsang/bottom/issues/new?assignees=&labels=feature&template=feature_request.md&title=) and fill it out. Remember to give details about what the feature is along with why you think this suggestion will be useful. Also please check whether or not an existing issue has covered your specific feature request! ## Pull requests The expected workflow for a pull request is: 1. Fork the project. 2. Make your changes. 3. Make any documentation changes if necessary - if you add a new feature, it'll probably need documentation changes. See [here](./documentation.md) for tips on documentation. 4. Commit and create a pull request to merge into the `master` branch. **Please fill out the pull request template**. 5. Ask a maintainer to review your pull request. - Check if the CI workflow passes. These consist of clippy lints, rustfmt checks, and basic tests. If you are a first-time contributor, you may need to wait for a maintainer to let CI run. - If changes are suggested or any comments are made, they should probably be addressed. 6. Once it looks good, it'll be merged! Note that _generally_, PRs are squashed to maintain repo cleanliness, though feel free to ask otherwise if that isn't preferable. bottom-0.9.6/docs/content/contribution/packaging-and-distribution.md000066400000000000000000000055441447252316700257210ustar00rootroot00000000000000# Packaging and Distribution Package maintainers are always welcome and appreciated! Here's some info on how one can help with package distribution and bottom. ## Pre-built binaries The latest stable release can be found [here](https://github.com/ClementTsang/bottom/releases/latest), where you ca find pre-built binaries in either a `tar.gz` or `zip` format. Binaries here also include automatically generated shell completion files for zsh, bash, fish, and Powershell, which you may want to also install during the packaging process. You can also find a nightly build in the [releases page](https://github.com/ClementTsang/bottom/releases), built every day at 00:00 UTC off of the master branch. In both cases, we use a combination of GitHub Actions and CirrusCI (mainly for FreeBSD and macOS M1) to create our release binaries. [`build_releases.yml`](https://github.com/ClementTsang/bottom/blob/master/.github/workflows/build_releases.yml) contains the GitHub Action workflow used to do both of these, if reference is needed. ## Building manually If you want to manually build bottom rather than distributing a pre-built binary, you'll need the most recent version of stable Rust, which you can get with: ```bash rustup update stable ``` You'll then want to build with: ```bash cargo build --release --locked ``` ### Manpage and completion generation bottom uses a [`build.rs`](https://github.com/ClementTsang/bottom/blob/master/build.rs) script to automatically generate a manpage and shell completions for the following shells: - Bash - Zsh - Fish - Powershell - Elvish If you want to generate manpages and/or completion files, set the `BTM_GENERATE` env var to a non-empty value. For example, run something like this: ```bash BTM_GENERATE=true cargo build --release --locked ``` This will automatically generate completion and manpage files in `target/tmp/bottom/`. If you wish to regenerate the files, modify/delete either these files or set `BTM_GENERATE` to some other non-empty value to retrigger the build script. For more information, you may want to look at either the [`build.rs`](https://github.com/ClementTsang/bottom/blob/master/build.rs) file or the [binary build CI workflow](https://github.com/ClementTsang/bottom/blob/master/.github/workflows/build_releases.yml). ## Adding an installation source Once you've finished your installation source, if you want to mention it in the main bottom repo, fork the repo and add the installation method and any details to the [`README.md`](https://github.com/ClementTsang/bottom/blob/master/README.md) file under the [Installation](https://github.com/ClementTsang/bottom#installation) section, as well as a corresponding table of contents entry. Once that's done, open a pull request - these will usually be approved of very quickly. You can find more info on the contribution process [here](../issues-and-pull-requests/#pull-requests). bottom-0.9.6/docs/content/index.md000066400000000000000000000031631447252316700171030ustar00rootroot00000000000000--- title: Home --- # `bottom` A customizable cross-platform graphical process/system monitor for the terminal, supporting Linux, macOS, and Windows. Inspired by other tools like [gtop](https://github.com/aksakalli/gtop), [gotop](https://github.com/xxxserxxx/gotop), and [htop](https://github.com/htop-dev/htop). --- This site serves as extended documentation for bottom alongside the [`README.md`](https://github.com/ClementTsang/bottom#readme). !!! Warning Some areas of this site are still in progress and may be missing details. Feel free to suggest/contribute changes! ## Installation !!! Tip It is a good idea to first check out the [Support](./support/official) page to see if your system is officially supported! !!! Tip If you're facing some issues during/after installation, check out the [Troubleshooting](./troubleshooting) page for some common problems and solutions. To install bottom, refer to [the installation section of the `README.md`](https://github.com/ClementTsang/bottom#installation), which contains a list of all the installation methods. ## Usage and configuration You can refer to the [usage](./usage/general-usage/) pages on how to use bottom (e.g. keybinds, some features, a general overview of what each widget does). To configure bottom, refer to the [configuration](./configuration/command-line-flags/) pages (e.g. how it behaves, how it looks). ## Contribution New contributors are always welcome! See the [contribution](./contribution/issues-and-pull-requests/) section for how to contribute to bottom, whether it be filing issues, writing documentation, creating pull requests, etc. bottom-0.9.6/docs/content/overrides/000077500000000000000000000000001447252316700174515ustar00rootroot00000000000000bottom-0.9.6/docs/content/overrides/main.html000066400000000000000000000000321447252316700212560ustar00rootroot00000000000000{% extends "base.html" %} bottom-0.9.6/docs/content/stylesheets/000077500000000000000000000000001447252316700200235ustar00rootroot00000000000000bottom-0.9.6/docs/content/stylesheets/extra.css000066400000000000000000000002561447252316700216630ustar00rootroot00000000000000:root { --md-primary-fg-color: #268bd2; --md-accent-fg-color: #81a1c1; } .md-typeset__table { min-width: 100%; } .md-typeset table:not([class]) { display: table; } bottom-0.9.6/docs/content/support/000077500000000000000000000000001447252316700171635ustar00rootroot00000000000000bottom-0.9.6/docs/content/support/official.md000066400000000000000000000025351447252316700212660ustar00rootroot00000000000000# Official support bottom _officially_ supports the following operating systems and corresponding architectures: - macOS (`x86_64`, `aarch64`) - Linux (`x86_64`, `i686`, `aarch64`) - Windows (`x86_64`, `i686`) These platforms are tested to work (with caveats, see below) and issues on these platforms will be fixed if possible. Furthermore, binaries are expected to be built and tested using the most recent version of stable Rust - if you are manually building bottom from the repo/source, then please try that as well. ## Known problems ### Linux - If you're using Linux via WSL or WSL2: - You may have issues with getting memory data. - Temperature sensors may not be correctly reported. - WSL2 will not match Windows' own Task Manager in terms of data. ### Windows - The temperature widget seems to require admin privileges in some cases to get data. - The battery widget seems to have issues with dual battery systems, like some Thinkpads. - If you are using WSL or WSL2: - You may have issues with getting memory data. - Temperature sensors may not be correctly reported. - WSL2 will not match Windows' own Task Manager in terms of data. ### macOS - The process widget may require elevated access (ex: `sudo btm`) to gather all data in some cases. _Please note that you should be certain that you trust any software you grant root privileges._ bottom-0.9.6/docs/content/support/unofficial.md000066400000000000000000000016641447252316700216330ustar00rootroot00000000000000# Unofficial support Systems and architectures that aren't officially supported may still work, but there are no guarantees on how much will work. For example, it might only compile, or it might run with bugs/broken features. Furthermore, while it will depend on the problem at the end of the day, _issues on unsupported platforms are likely to go unfixed_. Unofficially supported platforms known to compile/work: - FreeBSD - Linux on ARMv7 and ARMv6 (tested to compile in [CI](https://github.com/ClementTsang/bottom/blob/master/.github/workflows/ci.yml)) - Linux on PowerPC 64 LE (tested to compile in [CI](https://github.com/ClementTsang/bottom/blob/master/.github/workflows/ci.yml)) - Linux on an RISC-V (tested to compile in [CI](https://github.com/ClementTsang/bottom/blob/master/.github/workflows/ci.yml), tested to run on an [Allwinner D1 Nezha](https://github.com/ClementTsang/bottom/issues/564)) ## Known problems None at the moment. bottom-0.9.6/docs/content/troubleshooting.md000066400000000000000000000157461447252316700212350ustar00rootroot00000000000000# Troubleshooting ## The graph points look broken/strange It's possible that your graphs won't look great out of the box due to the reliance on braille fonts to draw them. One example of this is seeing a bunch of missing font characters, caused when the terminal isn't configured properly to render braille fonts.
Example of a terminal with no braille font.
An example of missing braille fonts in Powershell
One alternative is to use the `--dot_marker` option to render graph charts using dots instead of the braille characters, which generally seems better supported out of the box, at the expense of looking less intricate:
Example of running bottom with the dot marker flag
Example using btm --dot_marker
Another (better) alternative is to install a font that supports braille fonts, and configure your terminal emulator to use it. For example, installing something like [UBraille](https://yudit.org/download/fonts/UBraille/) or [Iosevka](https://github.com/be5invis/Iosevka) and ensuring your terminal uses it should work. ### Braille font issues on Linux/macOS/Unix-like Generally, the problem comes down to you either not having a font that supports the braille markers, or your terminal emulator is not using the correct font for the braille markers. See [here](https://github.com/cjbassi/gotop/issues/18) for possible fixes if you're having font issues on Linux, which may also be helpful for macOS or other Unix-like systems. If you're still having issues, feel free to open a [discussion](https://github.com/ClementTsang/bottom/discussions/new/) question about it. ### Installing fonts for Windows Command Prompt/PowerShell **Note: I would advise backing up your registry beforehand if you aren't sure what you are doing!** Let's say you're installing [Iosevka](https://github.com/be5invis/Iosevka). The steps you can take are: 1. Install the font itself. 2. Open the registry editor, which you can do either by `Win+R` and opening `regedit`, or just opening it from the Start Menu. 3. In the registry editor, go to ``` HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont ``` 4. Here, add a new `String value`, and set the `Name` to a bunch of 0's (e.g. `000` - make sure the name isn't already used), then set the `Data` to the font name (e.g. `Iosevka`).
Regedit menu showing how to add a new font for Command Prompt/PowerShell
The last entry is the new entry for Iosevka
1. Then, open the Command Prompt/PowerShell, and right click on the top bar, and open "Properties":
Opening the properties menu in Command Prompt/PowerShell
1. From here, go to "Font", and set the font to your new font (so in this example, Iosevka):
Setting a new font in Command Prompt/PowerShell
## Why can't I see all my temperature sensors on Windows? This is a [known limitation](./support/official.md#windows), some sensors may require admin privileges to get sensor data. ## Why don't I see dual batteries on Windows reported separately? (e.g. Thinkpads) This is a [known limitation](./support/official.md#windows) which seems to be with how batteries are being detected on Windows. ## Why can't I see all my temperature sensors on WSL? This is a [known limitation](./support/official.md#windows) with WSL. Due to how it works, hosts may not expose their temperature sensors and therefore, temperature sensors might be missing. ## Why does WSL2 not match Task Manager? This is a [known limitation](./support/official.md#windows) with WSL2. Due to how WSL2 works, the two might not match up in terms of reported data. ## Why can't I see all my processes/process data on macOS? This is a [known limitation](./support/official.md#macos), and you may have to run the program with elevated privileges to work around it - for example: ```bash sudo btm ``` **Please note that you should be certain that you trust any software you grant root privileges.** There are measures taken to try to maximize the amount of information obtained without elevated privileges. For example, one can modify the instructions found on the [htop wiki](https://github.com/hishamhm/htop/wiki/macOS:-run-without-sudo) on how to run htop without sudo for bottom. However **please** understand the potential security risks before doing so! ## My configuration file isn't working If your configuration files aren't working, here are a few things to try: ### Check the formatting It may be handy to refer to the automatically generated config files or the [sample configuration files](https://github.com/ClementTsang/bottom/tree/master/sample_configs). The config files also follow the [TOML](https://toml.io/en/) format. Also make sure your config options are under the right table - for example, to set your temperature type, you must set it under the `[flags]` table: ```toml [flags] temperature_type = "f" ``` Meanwhile, if you want to set a custom color scheme, it would be under the `[colors]` table: ```toml [colors] table_header_color="LightBlue" ``` ### Check the configuration file location Make sure bottom is reading the right configuration file. By default, bottom looks for config files at these locations: | OS | Default Config Location | | ------- | -------------------------------------------------------------------------------------------------------------------------------------- | | macOS | `$HOME/Library/Application Support/bottom/bottom.toml`
`~/.config/bottom/bottom.toml`
`$XDG_CONFIG_HOME/bottom/bottom.toml` | | Linux | `~/.config/bottom/bottom.toml`
`$XDG_CONFIG_HOME/bottom/bottom.toml` | | Windows | `C:\Users\\AppData\Roaming\bottom\bottom.toml` | If you want to use a config file in another location, use the `--config` or `-C` flags along with the path to the configuration file, like so: ```bash btm -C path_to_config ``` ## My installation through snap has some widgets that are blank/show no data Make sure bottom is given the correct permissions in order to collect data. [Snapcraft](https://snapcraft.io/docs/interface-management) explains how to do so, but the TL;DR is: ```bash sudo snap connect bottom:mount-observe sudo snap connect bottom:hardware-observe sudo snap connect bottom:system-observe sudo snap connect bottom:process-control ``` bottom-0.9.6/docs/content/usage/000077500000000000000000000000001447252316700165535ustar00rootroot00000000000000bottom-0.9.6/docs/content/usage/basic-mode.md000066400000000000000000000020271447252316700211010ustar00rootroot00000000000000# Basic Mode Basic mode is a special layout that removes all of the graphs and provides an interface that resembles (a very stripped-down version of) htop.
A picture of bottom's basic mode.
Basic mode can be enabled either through a command line flag: ```bash btm -b # or btm --basic ``` or through the config: ```toml [flags] basic = true ``` ## Notes In this mode, widgets that use tables (temperatures, processes, disks, and batteries) are only shown one at a time. One can switch between these widgets either by clicking the arrow buttons or by using the general widget selection shortcuts (for example, ++ctrl+left++ or ++H++) to switch which widget is shown. Also note that in this mode, widget expansion and custom layouts are disabled. ## Key bindings Basic mode follows the same key bindings as normal, barring widget expansion being disabled, and that the ++"%"++ key while selecting the memory widget toggles between total usage and percentage. bottom-0.9.6/docs/content/usage/general-usage.md000066400000000000000000000101741447252316700216170ustar00rootroot00000000000000# General Usage You can run bottom with: ```bash btm ``` For help regarding the command-line flags, use: ```bash # For a simple overview of flags btm -h # For more details btm --help ``` You can also see keybinds and basic usage details in bottom by pressing ++question++, which will open a help menu. ## Features ### Expansion By default, bottom is somewhat like a dashboard - a bunch of different widgets, all showing different things, and they all cram together to fit into one terminal. If you instead just want to see _one_ widget - maybe you want to look at a graph in more detail, for example - you can "expand" the currently selected widget using the ++e++ key, which will hide all other widgets and make that widget take up all available terminal space. You can leave this state by either pressing ++e++ again or pressing ++esc++. ### Widget selection To allow for widget-specific keybindings and expansion, there is the idea of _widget selection_ in bottom, where you can focus on a specific widget to work with it. This can be done with the mouse (just click on the widget of interest) or keyboard (ex: ++ctrl+"Direction"++, see [Key bindings](#key-bindings) for alternatives). ## Key bindings These are global or common keyboard shortcuts for the application, which you can see in-app through the ++question++ shortcut. Note that key bindings are generally case-sensitive. | Binding | Action | | ------------------------------------------------------------ | ------------------------------------------------------------ | | ++q++ , ++ctrl+c++ | Quit | | ++esc++ | Close dialog windows, search, widgets, or exit expanded mode | | ++ctrl+r++ | Reset display and any collected data | | ++f++ | Freeze/unfreeze updating with new data | | ++question++ | Open help menu | | ++e++ | Toggle expanding the currently selected widget | | ++ctrl+up++
++shift+up++
++K++
++W++ | Select the widget above | | ++ctrl+down++
++shift+down++
++J++
++S++ | Select the widget below | | ++ctrl+left++
++shift+left++
++H++
++A++ | Select the widget on the left | | ++ctrl+right++
++shift+right++
++L++
++D++ | Select the widget on the right | | ++up++ , ++k++ | Move up within a widget | | ++down++ , ++j++ | Move down within a widget | | ++left++
++h++
++alt+h++ | Move left within a widget | | ++right++
++l++
++alt+l++ | Move right within a widget | | ++g+g++ , ++home++ | Jump to the first entry | | ++G++ , ++end++ | Jump to the last entry | | ++page-up++ , ++page-down++ | Scroll up/down a table by a page | | ++ctrl+u++ | Scroll up a table by half a page | | ++ctrl+d++ | Scroll down a table by half a page | ## Mouse bindings | Binding | Action | | ----------- | ------------------ | | ++lbutton++ | Selects the widget | bottom-0.9.6/docs/content/usage/widgets/000077500000000000000000000000001447252316700202215ustar00rootroot00000000000000bottom-0.9.6/docs/content/usage/widgets/battery.md000066400000000000000000000027231447252316700222210ustar00rootroot00000000000000# Battery Widget !!! Warning The battery features are unavailable if the binary is compiled with the `battery` feature disabled or if there are no batteries on the system! The battery widget provides information about batteries on the system.
A picture of an expanded battery widget.
The battery widget can be enabled through either the `--battery` flag, the `battery = true` option in a config file, or specifying the widget in a custom layout. ## Features The following data is displayed for batteries: - Charge percent - Consumption rate - Charging state - Time to empty/charge, based on the current state - Battery health percent The battery widget also supports devices with multiple batteries, and you can switch between them using the keyboard or the mouse. ## Key bindings Note that key bindings are generally case-sensitive. | Binding | Action | | ------------------------------------- | ---------------------------------------------------------- | | ++left++
++h++
++alt+h++ | Moves to the battery entry to the left of the current one | | ++right++
++l++
++alt+l++ | Moves to the battery entry to the right of the current one | ## Mouse bindings | Binding | Action | | ----------- | ----------------------- | | ++lbutton++ | Selects a battery entry | bottom-0.9.6/docs/content/usage/widgets/cpu.md000066400000000000000000000043121447252316700213320ustar00rootroot00000000000000# CPU Widget The CPU widget displays a visual representation of CPU usage over a time range.
A picture of an expanded CPU widget showing average CPU usage.
## Features The CPU widget is composed of two parts: the graph and the legend: - The graph displays the usage data for the currently selected entry as a percentage - The legend displays all available entries that can be displayed on the graph along with their last recorded use percentage (except for the "All" option) Users can scroll through the legend using either the keyboard or mouse to select which entry to display on the graph. The "All" option shows every entry at the same time, though this may get a bit hard to follow if you have a large number of cores/threads. One can also adjust the displayed time range through either the keyboard or mouse, with a range of 30s to 600s. ## Key bindings Note that key bindings are generally case-sensitive. ### Graph | Binding | Action | | --------- | --------------------------------------- | | ++plus++ | Zoom in on chart (decrease time range) | | ++minus++ | Zoom out on chart (increase time range) | | ++equal++ | Reset zoom | ### Legend | Binding | Action | | ------------------ | ------------------------------------- | | ++up++ , ++k++ | Move up within a widget | | ++down++ , ++j++ | Move down within a widget | | ++g+g++ , ++home++ | Jump to the first entry in the legend | | ++G++ , ++end++ | Jump to the last entry in the legend | ## Mouse bindings ### Graph | Binding | Action | | ------------ | -------------------------------------------------------------- | | ++"Scroll"++ | Scrolling up or down zooms in or out of the graph respectively | ### Legend | Binding | Action | | ------------ | ------------------------------------------------- | | ++"Scroll"++ | Scroll through options to display in the graph | | ++lbutton++ | Selects a CPU thread/average to show in the graph | bottom-0.9.6/docs/content/usage/widgets/disk.md000066400000000000000000000037431447252316700215040ustar00rootroot00000000000000# Disk Widget The disk widget provides a table of useful disk and partition information, like I/O per second and total usage.
A picture of an expanded disk widget.
## Features The disk widget provides the following information: - Disk name - Disk mount location - Amount of space used - Amount of space left - Total amount of space - Percentage of space used - Read per second - Write per second ## Key bindings Note that key bindings are generally case-sensitive. | Binding | Action | | ------------------ | ------------------------------------------------------------------- | | ++up++ , ++k++ | Move up within a widget | | ++down++ , ++j++ | Move down within a widget | | ++g+g++ , ++home++ | Jump to the first entry in the table | | ++G++ , ++end++ | Jump to the last entry in the table | | ++d++ | Sort by disk, press again to reverse sorting order | | ++m++ | Sort by mount, press again to reverse sorting order | | ++u++ | Sort by amount used, press again to reverse sorting order | | ++n++ | Sort by amount free, press again to reverse sorting order | | ++t++ | Sort by total space available, press again to reverse sorting order | | ++p++ | Sort by percentage used, press again to reverse sorting order | | ++r++ | Sort by read rate, press again to reverse sorting order | | ++w++ | Sort by write rate, press again to reverse sorting order | ## Mouse bindings | Binding | Action | | ----------- | ----------------------------- | | ++lbutton++ | Selects an entry in the table | bottom-0.9.6/docs/content/usage/widgets/memory.md000066400000000000000000000034551447252316700220620ustar00rootroot00000000000000# Memory Widget The memory widget provides a visual representation of RAM and swap usage over time.
A picture of an expanded memory widget.
## Features The legend displays the current usage in terms of percentage and actual usage in binary units (KiB, MiB, GiB, etc.). If the total RAM or swap available is 0, then it is automatically hidden from the legend and graph. One can also adjust the displayed time range through either the keyboard or mouse, with a range of 30s to 600s. This widget can also be configured to display Nvidia GPU memory usage (`--enable_gpu_memory`) or cache memory usage (`--enable_cache_memory`). ## Key bindings Note that key bindings are generally case-sensitive. | Binding | Action | | --------- | --------------------------------------- | | ++plus++ | Zoom in on chart (decrease time range) | | ++minus++ | Zoom out on chart (increase time range) | | ++equal++ | Reset zoom | ## Mouse bindings | Binding | Action | | ------------ | -------------------------------------------------------------- | | ++"Scroll"++ | Scrolling up or down zooms in or out of the graph respectively | ## Calculations Memory usage is calculated using the following formula based on values from `/proc/meminfo` (based on [htop's implementation](https://github.com/htop-dev/htop/blob/976c6123f41492aaf613b9d172eef1842fb7b0a3/linux/LinuxProcessList.c#L1584)): ``` MemTotal - MemFree - Buffers - (Cached + SReclaimable - Shmem) ``` You can find more info on `/proc/meminfo` and its fields [here](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/deployment_guide/s2-proc-meminfo). bottom-0.9.6/docs/content/usage/widgets/network.md000066400000000000000000000030061447252316700222330ustar00rootroot00000000000000# Network Widget The network widget provides a visual representation of network input and output per second, as well as noting the total amount received and transmitted.
A picture of an expanded network widget.
## Features The legend displays the current reads and writes per second in bits, as well as the total amount read/written. The y-axis automatically scales based on shown read/write values, and by default, is a linear scale based on base-10 units (e.x. kilobit, gigabit, etc.). Through [configuration](../../../configuration/command-line-flags/), the read/write per second unit can be changed to bytes, while the y-axis can be changed to a log scale and/or use base-2 units (e.x. kibibit, gibibit, etc.). One can also adjust the displayed time range through either the keyboard or mouse, with a range of 30s to 600s. ## Key bindings Note that key bindings are generally case-sensitive. | Binding | Action | | --------- | --------------------------------------- | | ++plus++ | Zoom in on chart (decrease time range) | | ++minus++ | Zoom out on chart (increase time range) | | ++equal++ | Reset zoom | ## Mouse bindings | Binding | Action | | ------------ | -------------------------------------------------------------- | | ++"Scroll"++ | Scrolling up or down zooms in or out of the graph respectively | bottom-0.9.6/docs/content/usage/widgets/process.md000066400000000000000000000333151447252316700222260ustar00rootroot00000000000000# Process Widget The process widget displays a table containing information regarding a running process, along with sorting, searching, and process control features.
A picture of an expanded process widget by default.
## Features The process widget has three main components: - The main process table - The search sub-widget (opened with ++ctrl+f++ or ++slash++) - The sort menu sub-widget (opened with ++s++ or ++f6++) By default, the main process table displays the following information for each process: - PID - Name of the process - CPU use percentage (note this is averaged out per available thread by default) - Memory use percentage - Reads per second - Writes per second - Total amount read - Total amount written - User - Process state It can also additionally display the following columns: - Process running time See [the processes configuration page](../../configuration/config-file/processes.md) on how to customize which columns are shown. ### Sorting The table can be sorted by clicking on the table headers, which will either sort the table by that column, or if already sorting by that column, reverse the sorting order. Alternatively, one can sort using the sort menu sub-widget, which is brought up using ++s++ or ++f6++, and can be controlled by arrow keys or the mouse.
A picture of an expanded process widget with the sort menu open.
### Grouping Pressing ++tab++ in the table will group entries with the same name together. The PID column will be replaced with the number of entries in each group, and usage is added together when displayed.
A picture of grouped mode in a process widget.
Note that the process state and user columns are disabled in this mode. ### Process termination Pressing ++d+d++ or ++f9++ will allow you to terminate the currently selected process/process group. On Unix-like operating systems, you are also able to control which specific signals to send (e.g. `SIGKILL`, `SIGTERM`).
A picture of the process kill menu on Linux.
The process termination menu on Linux
If you're on Windows, or if the `disable_advanced_kill` flag is set in the options or command-line, then a simpler termination screen will be shown to confirm whether you want to kill that process/process group.
A picture of the process kill menu on Windows.
The process termination menu on Windows
### Tree mode Pressing ++t++ or ++f5++ in the table toggles tree mode in the process widget, displaying processes in regards to their parent-child process relationships.
A picture of tree mode in a process widget.
A process in tree mode can also be "collapsed", hiding its children and any descendants, using either the ++minus++ or ++plus++ keys, or double clicking on an entry. Lastly, note that in tree mode, processes cannot be grouped together due to the behaviour of the two modes somewhat clashing. ### Full command You can show the full command instead of just the process name by pressing ++P++.
A picture of a process widget using full commands.
### Search Pressing ++slash++ or ++ctrl+f++ will open up the search sub-widget. By default, just typing in something will search by the process name.
A picture of searching for a process with a simple search.
This search can be further enhanced by matching by case, matching the entire word, or by regex.
A picture of searching for a process with a search condition that uses regex.
We are able to also search for multiple things/conditions.
A picture of searching for a process with a search condition that uses the or operator.
And if our search uses a keyword, we need to use quotation marks around the term to properly search it.
A picture of searching for a process with a search condition that needs quotation marks.
Lastly, we can refine our search even further based on the other columns, like PID, CPU usage, etc., as well as grouping together conditions.
A picture of searching for a process with a search condition that uses the CPU keyword.
You can also paste search queries (e.g. ++shift+insert++, ++ctrl+shift+v++). #### Keywords Note all keywords are case-insensitive. To search for a process/command that collides with a keyword, surround the term with quotes (e.x. `"cpu"`). | Keywords | Example | Description | | ------------------------------- | ------------------------------------- | ------------------------------------------------------------------------------- | | | `btm` | Matches by process or command name; supports regex | | `pid` | `pid=1044` | Matches by PID; supports regex | | `cpu`
`cpu%` | `cpu > 0.5` | Matches the CPU column; supports comparison operators | | `memb` | `memb > 1000 b` | Matches the memory column in terms of bytes; supports comparison operators | | `mem`
`mem%` | `mem < 0.5` | Matches the memory column in terms of percent; supports comparison operators | | `read`
`r/s`
`rps` | `read = 1 mb` | Matches the read/s column in terms of bytes; supports comparison operators | | `write`
`w/s`
`wps` | `write >= 1 kb` | Matches the write/s column in terms of bytes; supports comparison operators | | `tread`
`t.read` | `tread <= 1024 gb` | Matches he total read column in terms of bytes; supports comparison operators | | `twrite`
`t.write` | `twrite > 1024 tb` | Matches the total write column in terms of bytes; supports comparison operators | | `user` | `user=root` | Matches by user; supports regex | | `state` | `state=running` | Matches by state; supports regex | | `()` | `( AND ) OR ` | Group together a condition | #### Comparison operators | Keywords | Description | | -------- | -------------------------------------------------------------- | | `=` | Checks if the values are equal | | `>` | Checks if the left value is strictly greater than the right | | `<` | Checks if the left value is strictly less than the right | | `>=` | Checks if the left value is greater than or equal to the right | | `<=` | Checks if the left value is less than or equal to the right | #### Logical operators Note all operators are case-insensitive, and the `and` operator takes precedence over the `or` operator. | Keywords | Usage | Description | | ------------------------------------ | ------------------------------------------------------------------------------ | --------------------------------------------------- | | `and`
`&&`
`` | ` and `
` && `
` ` | Requires both conditions to be true to match | | `or`
|| | ` or `
` || ` | Requires at least one condition to be true to match | #### Units All units are case-insensitive. | Keywords | Description | | -------- | ----------- | | `B` | Bytes | | `KB` | Kilobytes | | `MB` | Megabytes | | `GB` | Gigabytes | | `TB` | Terabytes | | `KiB` | Kibibytes | | `MiB` | Mebibytes | | `GiB` | Gibibytes | | `TiB` | Tebibytes | ## Key bindings Note that key bindings are generally case-sensitive. ### Process table | Binding | Action | | ---------------------- | ---------------------------------------------------------------- | | ++up++ , ++k++ | Move up within a widget | | ++down++ , ++j++ | Move down within a widget | | ++g+g++ , ++home++ | Jump to the first entry in the table | | ++G++ , ++end++ | Jump to the last entry in the table | | ++d+d++ , ++f9++ | Send a kill signal to the selected process | | ++c++ | Sort by CPU usage, press again to reverse sorting order | | ++m++ | Sort by memory usage, press again to reverse sorting order | | ++p++ | Sort by PID name, press again to reverse sorting order | | ++n++ | Sort by process name, press again to reverse sorting order | | ++tab++ | Toggle grouping processes with the same name | | ++P++ | Toggle between showing the full command or just the process name | | ++ctrl+f++ , ++slash++ | Toggle showing the search sub-widget | | ++s++ , ++f6++ | Toggle showing the sort sub-widget | | ++I++ | Invert the current sort | | ++"%"++ | Toggle between values and percentages for memory usage | | ++t++ , ++f5++ | Toggle tree mode | ### Sort sub-widget | Binding | Action | | ------------------ | ------------------------------------- | | ++up++ , ++k++ | Move up within a widget | | ++down++ , ++j++ | Move down within a widget | | ++g+g++ , ++home++ | Jump to the first entry in the table | | ++G++ , ++end++ | Jump to the last entry in the table | | ++esc++ | Close the sort sub-widget | | ++enter++ | Sorts the corresponding process table | ### Search sub-widget | Binding | Action | | ------------------------------------- | -------------------------------------------- | | ++left++
++h++
++alt+h++ | Moves the cursor left | | ++right++
++l++
++alt+l++ | Moves the cursor right | | ++esc++ | Close the search widget (retains the filter) | | ++ctrl+a++ | Skip to the start of the search query | | ++ctrl+e++ | Skip to the end of the search query | | ++ctrl+u++ | Clear the current search query | | ++ctrl+w++ | Delete a word behind the cursor | | ++ctrl+h++ | Delete the character behind the cursor | | ++backspace++ | Delete the character behind the cursor | | ++delete++ | Delete the character at the cursor | | ++alt+c++ , ++f1++ | Toggle matching case | | ++alt+w++ , ++f2++ | Toggle matching the entire word | | ++alt+r++ , ++f3++ | Toggle using regex | ## Mouse bindings ### Process table | Binding | Action | | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ++"Scroll"++ | Selects a CPU thread/average to show in the graph | | ++lbutton++ | Table header: Sorts/reverse sorts the table by the column
Table entry: Selects an entry in the table, if in tree mode, collapses/expands the entry's children | ### Sort sub-widget | Binding | Action | | ----------- | ----------------------------- | | ++lbutton++ | Selects an entry in the table | bottom-0.9.6/docs/content/usage/widgets/temperature.md000066400000000000000000000023371447252316700231050ustar00rootroot00000000000000# Temperature Widget The temperature widget provides a table of temperature sensors and their current temperature.
A picture of an expanded temperature widget.
## Features The temperature widget provides the sensor name as well as its current temperature. ## Key bindings Note that key bindings are generally case-sensitive. | Binding | Action | | ------------------ | --------------------------------------------------------- | | ++up++ , ++k++ | Move up within a widget | | ++down++ , ++j++ | Move down within a widget | | ++g+g++ , ++home++ | Jump to the first entry in the table | | ++G++ , ++end++ | Jump to the last entry in the table | | ++t++ | Sort by temperature, press again to reverse sorting order | | ++s++ | Sort by sensor name, press again to reverse sorting order | ## Mouse bindings | Binding | Action | | ----------- | ----------------------------- | | ++lbutton++ | Selects an entry in the table | bottom-0.9.6/docs/mkdocs.yml000066400000000000000000000105241447252316700160020ustar00rootroot00000000000000# Site information site_name: bottom site_author: Clement Tsang site_url: https://clementtsang.github.io/bottom site_description: >- A customizable cross-platform graphical process/system monitor for the terminal. Supports Linux, macOS, and Windows. docs_dir: "content/" # Project information repo_name: ClementTsang/bottom repo_url: https://github.com/ClementTsang/bottom edit_uri: "edit/master/docs/content/" # Theming theme: name: material features: - navigation.tabs - navigation.top - navigation.expand - navigation.instant - navigation.sections - toc.integrate - search.suggest - search.highlight palette: # Light mode - media: "(prefers-color-scheme: light)" scheme: default toggle: icon: material/weather-night name: Switch to dark mode # Dark mode - media: "(prefers-color-scheme: dark)" scheme: slate toggle: icon: material/weather-sunny name: Switch to light mode custom_dir: "content/overrides" extra_css: - stylesheets/extra.css # Extensions markdown_extensions: - admonition - attr_list - toc: anchorlink: true - pymdownx.inlinehilite - pymdownx.keys: # Override to make it case-sensitive key_map: { "a": "a", "b": "b", "c": "c", "d": "d", "e": "e", "f": "f", "g": "g", "h": "h", "i": "i", "j": "j", "k": "k", "l": "l", "m": "m", "n": "n", "o": "o", "p": "p", "q": "q", "r": "r", "s": "s", "t": "t", "u": "u", "v": "v", "w": "w", "x": "x", "y": "y", "z": "z", "A": "A", "B": "B", "C": "C", "D": "D", "E": "E", "F": "F", "G": "G", "H": "H", "I": "I", "J": "J", "K": "K", "L": "L", "M": "M", "N": "N", "O": "O", "P": "P", "Q": "Q", "R": "R", "S": "S", "T": "T", "U": "U", "V": "V", "W": "W", "X": "X", "Y": "Y", "Z": "Z", } - pymdownx.details - pymdownx.highlight - pymdownx.superfences - mdx_truly_sane_lists # See https://github.com/mkdocs/mkdocs/issues/545#issuecomment-522196661 - pymdownx.tabbed: alternate_style: true plugins: - tags - search extra: # Versioning version: provider: mike default: stable # Navigation nav: - "Home": index.md - "Support": - "Official Support": support/official.md - "Unofficial Support": support/unofficial.md - "Usage": - "General Usage": usage/general-usage.md - "Basic Mode": usage/basic-mode.md - "Widgets": - "CPU Widget": usage/widgets/cpu.md - "Memory Widget": usage/widgets/memory.md - "Network Widget": usage/widgets/network.md - "Process Widget": usage/widgets/process.md - "Disk Widget": usage/widgets/disk.md - "Temperature Widget": usage/widgets/temperature.md - "Battery Widget": usage/widgets/battery.md - "Configuration": - "Command-line Flags": configuration/command-line-flags.md - "Config File": - "Default Config": configuration/config-file/default-config.md - "Flags": configuration/config-file/flags.md - "Theming": configuration/config-file/theming.md - "Layout": configuration/config-file/layout.md - "Data Filtering": configuration/config-file/data-filtering.md - "Processes": configuration/config-file/processes.md - "Contribution": - "Issues, Pull Requests, and Discussions": contribution/issues-and-pull-requests.md - "Documentation": contribution/documentation.md - "Packaging and Distribution": contribution/packaging-and-distribution.md - "Development": - "Development Environment": contribution/development/dev_env.md - "Testing": contribution/development/testing.md - "Logging": contribution/development/logging.md - "Build Process": contribution/development/build_process.md - "Deploy Process": contribution/development/deploy_process.md - "Troubleshooting": troubleshooting.md bottom-0.9.6/docs/requirements.txt000066400000000000000000000001711447252316700172600ustar00rootroot00000000000000mkdocs == 1.5.1 mkdocs-material == 9.1.21 mkdocs-material-extensions == 1.1.1 mdx_truly_sane_lists == 1.3 mike == 1.1.2 bottom-0.9.6/docs/serve.sh000077500000000000000000000006631447252316700154650ustar00rootroot00000000000000#!/bin/bash set -e VENV_PATH="./venv/" PYTHON_CMD=${1:-python} if [ ! -d $VENV_PATH ]; then echo "venv not found, creating one using the command '${PYTHON_CMD}'..."; $PYTHON_CMD -m venv venv; source ./venv/bin/activate; pip install --upgrade pip; pip install -r requirements.txt; ./venv/bin/mkdocs serve; else echo "venv already found."; source ./venv/bin/activate; ./venv/bin/mkdocs serve; fi; bottom-0.9.6/rustfmt.toml000066400000000000000000000004551447252316700154520ustar00rootroot00000000000000reorder_imports = true reorder_modules = true merge_derives = true fn_params_layout = "Compressed" use_field_init_shorthand = true tab_spaces = 4 max_width = 100 # Unstable options, disabled by default. # group_imports = "StdExternalCrate" # wrap_comments = true # format_code_in_doc_comments = true bottom-0.9.6/sample_configs/000077500000000000000000000000001447252316700160365ustar00rootroot00000000000000bottom-0.9.6/sample_configs/default_config.toml000066400000000000000000000146711447252316700217150ustar00rootroot00000000000000# This is a default config file for bottom. All of the settings are commented # out by default; if you wish to change them uncomment and modify as you see # fit. # This group of options represents a command-line flag/option. Flags explicitly # added when running (ie: btm -a) will override this config file if an option # is also set here. [flags] # Whether to hide the average cpu entry. #hide_avg_cpu = false # Whether to use dot markers rather than braille. #dot_marker = false # The update rate of the application. #rate = "1s" # Whether to put the CPU legend to the left. #left_legend = false # Whether to set CPU% on a process to be based on the total CPU or just current usage. #current_usage = false # Whether to set CPU% on a process to be based on the total CPU or per-core CPU% (not divided by the number of cpus). #unnormalized_cpu = false # Whether to group processes with the same name together by default. #group_processes = false # Whether to make process searching case sensitive by default. #case_sensitive = false # Whether to make process searching look for matching the entire word by default. #whole_word = false # Whether to make process searching use regex by default. #regex = false # Defaults to Celsius. Temperature is one of: #temperature_type = "k" #temperature_type = "f" #temperature_type = "c" #temperature_type = "kelvin" #temperature_type = "fahrenheit" #temperature_type = "celsius" # The default time interval (in milliseconds). #default_time_value = "60s" # The time delta on each zoom in/out action (in milliseconds). #time_delta = 15000 # Hides the time scale. #hide_time = false # Override layout default widget #default_widget_type = "proc" #default_widget_count = 1 # Expand selected widget upon starting the app #expanded_on_startup = true # Use basic mode #basic = false # Use the old network legend style #use_old_network_legend = false # Remove space in tables #hide_table_gap = false # Show the battery widgets #battery = false # Disable mouse clicks #disable_click = false # Built-in themes. Valid values are "default", "default-light", "gruvbox", "gruvbox-light", "nord", "nord-light" #color = "default" # Show memory values in the processes widget as values by default #mem_as_value = false # Show tree mode by default in the processes widget. #tree = false # Shows an indicator in table widgets tracking where in the list you are. #show_table_scroll_position = false # Show processes as their commands by default in the process widget. #process_command = false # Displays the network widget with binary prefixes. #network_use_binary_prefix = false # Displays the network widget using bytes. #network_use_bytes = false # Displays the network widget with a log scale. #network_use_log = false # Hides advanced options to stop a process on Unix-like systems. #disable_advanced_kill = false # Shows GPU(s) memory #enable_gpu_memory = false # Shows cache and buffer memory #enable_cache_memory = false # How much data is stored at once in terms of time. #retention = "10m" # These are flags around the process widget. #[processes] #columns = ["PID", "Name", "CPU%", "Mem%", "R/s", "W/s", "T.Read", "T.Write", "User", "State"] # These are all the components that support custom theming. Note that colour support # will depend on terminal support. #[colors] # Uncomment if you want to use custom colors # Represents the colour of table headers (processes, CPU, disks, temperature). #table_header_color="LightBlue" # Represents the colour of the label each widget has. #widget_title_color="Gray" # Represents the average CPU color. #avg_cpu_color="Red" # Represents the colour the core will use in the CPU legend and graph. #cpu_core_colors=["LightMagenta", "LightYellow", "LightCyan", "LightGreen", "LightBlue", "LightRed", "Cyan", "Green", "Blue", "Red"] # Represents the colour RAM will use in the memory legend and graph. #ram_color="LightMagenta" # Represents the colour SWAP will use in the memory legend and graph. #swap_color="LightYellow" # Represents the colour ARC will use in the memory legend and graph. #arc_color="LightCyan" # Represents the colour the GPU will use in the memory legend and graph. #gpu_core_colors=["LightGreen", "LightBlue", "LightRed", "Cyan", "Green", "Blue", "Red"] # Represents the colour rx will use in the network legend and graph. #rx_color="LightCyan" # Represents the colour tx will use in the network legend and graph. #tx_color="LightGreen" # Represents the colour of the border of unselected widgets. #border_color="Gray" # Represents the colour of the border of selected widgets. #highlighted_border_color="LightBlue" # Represents the colour of most text. #text_color="Gray" # Represents the colour of text that is selected. #selected_text_color="Black" # Represents the background colour of text that is selected. #selected_bg_color="LightBlue" # Represents the colour of the lines and text of the graph. #graph_color="Gray" # Represents the colours of the battery based on charge #high_battery_color="green" #medium_battery_color="yellow" #low_battery_color="red" # Layout - layouts follow a pattern like this: # [[row]] represents a row in the application. # [[row.child]] represents either a widget or a column. # [[row.child.child]] represents a widget. # # All widgets must have the type value set to one of ["cpu", "mem", "proc", "net", "temp", "disk", "empty"]. # All layout components have a ratio value - if this is not set, then it defaults to 1. # The default widget layout: #[[row]] # ratio=30 # [[row.child]] # type="cpu" #[[row]] # ratio=40 # [[row.child]] # ratio=4 # type="mem" # [[row.child]] # ratio=3 # [[row.child.child]] # type="temp" # [[row.child.child]] # type="disk" #[[row]] # ratio=30 # [[row.child]] # type="net" # [[row.child]] # type="proc" # default=true # Filters - you can hide specific temperature sensors, network interfaces, and disks using filters. This is admittedly # a bit hard to use as of now, and there is a planned in-app interface for managing this in the future: #[disk_filter] #is_list_ignored = true #list = ["/dev/sda\\d+", "/dev/nvme0n1p2"] #regex = true #case_sensitive = false #whole_word = false #[mount_filter] #is_list_ignored = true #list = ["/mnt/.*", "/boot"] #regex = true #case_sensitive = false #whole_word = false #[temp_filter] #is_list_ignored = true #list = ["cpu", "wifi"] #regex = false #case_sensitive = false #whole_word = false #[net_filter] #is_list_ignored = true #list = ["virbr0.*"] #regex = true #case_sensitive = false #whole_word = false bottom-0.9.6/sample_configs/demo_config.toml000066400000000000000000000004031447252316700212010ustar00rootroot00000000000000[flags] avg_cpu = true # Temperature is one of: temperature_type = "c" rate = 1000 left_legend = false current_usage = false group_processes = false case_sensitive = false whole_word = false regex = true default_widget_type = "cpu" default_widget_count = 1 bottom-0.9.6/scripts/000077500000000000000000000000001447252316700145345ustar00rootroot00000000000000bottom-0.9.6/scripts/cirrus/000077500000000000000000000000001447252316700160435ustar00rootroot00000000000000bottom-0.9.6/scripts/cirrus/build.py000066400000000000000000000153551447252316700175250ustar00rootroot00000000000000#!/bin/python3 # A simple script to trigger Cirrus CI builds and download the release artifacts # through Cirrus CI's GraphQL interface. # # Expects the Cirrus CI API key to be set in the CIRRUS_KEY environment variable. import os import json import sys import traceback from textwrap import dedent from time import sleep, time from pathlib import Path from typing import Optional from urllib.request import Request, urlopen, urlretrieve URL = "https://api.cirrus-ci.com/graphql" TASKS = [ ("freebsd_12_3_build", "bottom_x86_64-unknown-freebsd-12-3.tar.gz"), ("freebsd_13_1_build", "bottom_x86_64-unknown-freebsd-13-1.tar.gz"), ("macos_build", "bottom_aarch64-apple-darwin.tar.gz"), ] DL_URL_TEMPLATE = "https://api.cirrus-ci.com/v1/artifact/build/%s/%s/binaries/%s" def make_query_request(key: str, branch: str, build_type: str): print("Creating query request.") mutation_id = "Cirrus CI Build {}-{}-{}".format(build_type, branch, int(time())) # Dumb but if it works... config_override = ( Path(".cirrus.yml") .read_text() .replace("# -PLACEHOLDER FOR CI-", 'BTM_BUILD_RELEASE_CALLER: "nightly"') ) query = """ mutation CreateCirrusCIBuild ( $repo: ID!, $branch: String!, $mutation_id: String!, $config_override: String, ) { createBuild( input: { repositoryId: $repo, branch: $branch, clientMutationId: $mutation_id, configOverride: $config_override } ) { build { id, status } } } """ params = { "repo": "6646638922956800", "branch": branch, "mutation_id": mutation_id, "config_override": dedent(config_override), } data = {"query": dedent(query), "variables": params} data = json.dumps(data).encode() request = Request(URL, data=data, method="POST") request.add_header("Authorization", "Bearer {}".format(key)) return request def check_build_status(key: str, id: str) -> Optional[str]: query = """ query BuildStatus($id: ID!) { build(id: $id) { status } } """ params = { "id": id, } data = {"query": dedent(query), "variables": params} data = json.dumps(data).encode() request = Request(URL, data=data, method="POST") request.add_header("Authorization", "Bearer {}".format(key)) with urlopen(request) as response: response = json.load(response) if response.get("errors") is not None: print("There was an error in the returned response.") return None try: status = response["data"]["build"]["status"] return status except KeyError: print("There was an issue with creating a build job.") return None def try_download(build_id: str, dl_path: Path): for task, file in TASKS: url = DL_URL_TEMPLATE % (build_id, task, file) out = dl_path / file print("Downloading {} to {}".format(file, out)) urlretrieve(url, out) def main(): args = sys.argv env = os.environ key = env["CIRRUS_KEY"] branch = args[1] dl_path = args[2] if len(args) >= 3 else "" dl_path = Path(dl_path) build_type = args[3] if len(args) >= 4 else "build" build_id = args[4] if len(args) >= 5 else None print(f"Running Cirrus script with branch '{branch}'") # Check if this build has already been completed before. if build_id is not None: print("Previous build ID was provided, checking if complete.") status = check_build_status(key, build_id) if status.startswith("COMPLETE"): print("Starting download of previous build ID") try_download(build_id, dl_path) else: # Try up to three times MAX_ATTEMPTS = 5 success = False for i in range(MAX_ATTEMPTS): if success: break print("Attempt {}:".format(i + 1)) with urlopen(make_query_request(key, branch, build_type)) as response: response = json.load(response) if response.get("errors") is not None: print("There was an error in the returned response.") continue try: build_id = response["data"]["createBuild"]["build"]["id"] print("Created build job {}.".format(build_id)) except KeyError: print("There was an issue with creating a build job.") continue # First, sleep 4 minutes, as it's unlikely it'll finish before then. SLEEP_MINUTES = 4 print("Sleeping for {} minutes.".format(SLEEP_MINUTES)) sleep(60 * SLEEP_MINUTES) print("Mandatory nap over. Starting to check for completion.") MINUTES = 10 SLEEP_SEC = 30 TRIES = int(MINUTES * (60 / SLEEP_SEC)) # Works out to 20 tries. for attempt in range(TRIES): print("Checking...") try: status = check_build_status(key, build_id) if status.startswith("COMPLETE"): print("Build complete. Downloading artifact files.") sleep(5) try_download(build_id, dl_path) success = True break else: print("Build status: {}".format(status or "unknown")) if status == "ABORTED": print("Build aborted, bailing.") break elif status.lower().startswith("fail"): print("Build failed, bailing.") break elif attempt + 1 < TRIES: sleep(SLEEP_SEC) except Exception as ex: print("Unexpected error:") print(ex) print(traceback.format_exc()) # Sleep for a minute if something went wrong, just in case. sleep(60) else: print( "Build failed to complete after {} minutes, bailing.".format( MINUTES ) ) if not success: exit(2) if __name__ == "__main__": main() bottom-0.9.6/scripts/clear_cache.py000066400000000000000000000071551447252316700173270ustar00rootroot00000000000000#!/bin/python3 # A simple script to clean caches matching a PR ID. # # Expects a GitHub token in the environment variables as GITHUB_TOKEN. import json import os import sys import time from urllib.error import HTTPError, URLError from urllib.request import Request, urlopen URL = "https://api.github.com/repos/ClementTsang/bottom/actions/caches" def cache_list_request(key): request = Request(URL, method="GET") request.add_header("Accept", "application/vnd.github+json") request.add_header("Authorization", "Bearer {}".format(key)) return request def delete_cache_request(key, id): request = Request("{}/{}".format(URL, id), method="DELETE") request.add_header("Accept", "application/vnd.github+json") request.add_header("Authorization", "Bearer {}".format(key)) return request def main(): args = sys.argv env = os.environ key = env["GITHUB_TOKEN"] if args[1].isnumeric(): pr_id = int(args[1]) ref = "refs/pull/{}/merge".format(pr_id) print("Clearing any caches generated by PR {}".format(pr_id)) with urlopen(cache_list_request(key)) as response: response = json.load(response) caches = response["actions_caches"] for cache in caches: if cache["ref"] == ref: id = cache["id"] try: print("Deleting ID {}...".format(id)) urlopen(delete_cache_request(key, id)) except HTTPError as e: print("HTTPError with delete, error code {}.".format(e.code)) except URLError as _: print("URLError with delete.") else: print("Successfully deleted cache ID {}!".format(id)) time.sleep(0.1) elif args[1] == "keep-main" or args[1] == "keep-master": print("Clearing all but default branch cache.") with urlopen(cache_list_request(key)) as response: response = json.load(response) caches = response["actions_caches"] for cache in caches: if not ("master" in cache["ref"] or "main" in cache["ref"]): id = cache["id"] try: print("Deleting ID {}...".format(id)) urlopen(delete_cache_request(key, id)) except HTTPError as e: print("HTTPError with delete, error code {}.".format(e.code)) except URLError as _: print("URLError with delete.") else: print("Successfully deleted cache ID {}!".format(id)) time.sleep(0.1) elif args[1] == "main" or args[1] == "master" or args[1] == "all": print("Clearing all caches.") with urlopen(cache_list_request(key)) as response: response = json.load(response) caches = response["actions_caches"] for cache in caches: id = cache["id"] try: print("Deleting ID {}...".format(id)) urlopen(delete_cache_request(key, id)) except HTTPError as e: print("HTTPError with delete, error code {}.".format(e.code)) except URLError as _: print("URLError with delete.") else: print("Successfully deleted cache ID {}!".format(id)) time.sleep(0.1) else: print(f"Skipping, given argument {args[1]}.") if __name__ == "__main__": main() bottom-0.9.6/scripts/packager.py000066400000000000000000000052551447252316700166720ustar00rootroot00000000000000import hashlib import sys from string import Template args = sys.argv version = args[1] template_file_path = args[2] generated_file_path = args[3] # SHA512, SHA256, or SHA1 hash_type = args[4] # Deployment files deployment_file_path_1 = args[5] deployment_file_path_2 = args[6] if len(args) > 6 else None deployment_file_path_3 = args[7] if len(args) > 7 else None print("Generating package for file: %s" % deployment_file_path_1) if deployment_file_path_2 is not None: print("and for file: %s" % deployment_file_path_2) if deployment_file_path_3 is not None: print("and for file: %s" % deployment_file_path_3) print(" VERSION: %s" % version) print(" TEMPLATE PATH: %s" % template_file_path) print(" SAVING AT: %s" % generated_file_path) print(" USING HASH TYPE: %s" % hash_type) def get_hash(deployment_file): if str.lower(hash_type) == "sha512": deployment_hash = hashlib.sha512(deployment_file.read()).hexdigest() elif str.lower(hash_type) == "sha256": deployment_hash = hashlib.sha256(deployment_file.read()).hexdigest() elif str.lower(hash_type) == "sha1": deployment_hash = hashlib.sha1(deployment_file.read()).hexdigest() else: print( 'Unsupported hash format "%s". Please use SHA512, SHA256, or SHA1.', hash_type, ) exit(1) print("Generated hash: %s" % str(deployment_hash)) return deployment_hash with open(deployment_file_path_1, "rb") as deployment_file_1: deployment_hash_1 = get_hash(deployment_file_1) deployment_hash_2 = None if deployment_file_path_2 is not None: with open(deployment_file_path_2, "rb") as deployment_file_2: deployment_hash_2 = get_hash(deployment_file_2) deployment_hash_3 = None if deployment_file_path_3 is not None: with open(deployment_file_path_3, "rb") as deployment_file_3: deployment_hash_3 = get_hash(deployment_file_3) with open(template_file_path, "r") as template_file: template = Template(template_file.read()) substitutes = dict() substitutes["version"] = version substitutes["hash1"] = deployment_hash_1 if deployment_hash_2 is not None: substitutes["hash2"] = deployment_hash_2 if deployment_hash_3 is not None: substitutes["hash3"] = deployment_hash_3 substitute = template.safe_substitute(substitutes) print("\n================== Generated package file ==================\n") print(substitute) print("\n============================================================\n") with open(generated_file_path, "w") as generated_file: generated_file.write(substitute) bottom-0.9.6/scripts/windows/000077500000000000000000000000001447252316700162265ustar00rootroot00000000000000bottom-0.9.6/scripts/windows/choco/000077500000000000000000000000001447252316700173215ustar00rootroot00000000000000bottom-0.9.6/scripts/windows/choco/bottom.nuspec.template000066400000000000000000000073131447252316700236620ustar00rootroot00000000000000 bottom $version bottom Clement Tsang https://github.com/ClementTsang/bottom https://github.com/ClementTsang/bottom/blob/master/LICENSE true https://github.com/ClementTsang/bottom https://github.com/ClementTsang/choco-bottom https://clementtsang.github.io/bottom/stable https://github.com/ClementTsang/bottom/issues cli cross-platform terminal top tui monitoring bottom btm A customizable cross-platform graphical process/system monitor for the terminal. A customizable cross-platform graphical process/system monitor for the terminal. Supports Linux, macOS, and Windows. Inspired by [gtop](https://github.com/aksakalli/gtop), [gotop](https://github.com/xxxserxxx/gotop) and [htop](https://github.com/htop-dev/htop). **Usage** To use, run `btm` in a terminal. For more [documentation and usage](https://github.com/ClementTsang/bottom/blob/master/README.md), see the [official repo](https://github.com/ClementTsang/bottom). Please report any issues with the Chocolatey package [here](https://github.com/ClementTsang/choco-bottom). **Note** This package currently depends on Visual C++ Redistributable for Visual Studio 2015 https://chocolatey.org/packages/vcredist2015. https://github.com/ClementTsang/bottom/releases/tag/$version/ bottom-0.9.6/scripts/windows/choco/choco_packager.py000066400000000000000000000036731447252316700226340ustar00rootroot00000000000000# Because choco is a special case and I'm too lazy to make my # packaging script robust enough, so whatever, hard-code time. import hashlib import sys from string import Template import os args = sys.argv deployment_file_path_64 = args[1] version = args[2] nuspec_template = args[3] ps1_template = args[4] generated_nuspec = args[5] generated_ps1 = args[6] generated_ps1_dir = args[7] print("Generating Chocolatey package for:") print(" 64-bit: %s" % deployment_file_path_64) print(" VERSION: %s" % version) print(" NUSPEC TEMPLATE: %s" % nuspec_template) print(" PS1 TEMPLATE: %s" % ps1_template) print(" GENERATED NUSPEC: %s" % generated_nuspec) print(" GENERATED PS1: %s" % generated_ps1) print(" GENERATED PS1 DIR: %s" % generated_ps1_dir) with open(deployment_file_path_64, "rb") as deployment_file_64: hash_64 = hashlib.sha1(deployment_file_64.read()).hexdigest() print("Generated hash for 64-bit program: %s" % str(hash_64)) with open(nuspec_template, "r") as template_file: template = Template(template_file.read()) substitute = template.safe_substitute(version=version) print("\n================== Generated nuspec file ==================\n") print(substitute) print("\n============================================================\n") with open(generated_nuspec, "w") as generated_file: generated_file.write(substitute) os.makedirs(generated_ps1_dir) with open(ps1_template, "r") as template_file: template = Template(template_file.read()) substitute = template.safe_substitute(version=version, hash_64=hash_64) print( "\n================== Generated chocolatey-install file ==================\n" ) print(substitute) print("\n============================================================\n") with open(generated_ps1, "w") as generated_file: generated_file.write(substitute) bottom-0.9.6/scripts/windows/choco/chocolateyinstall.ps1.template000066400000000000000000000007471447252316700253110ustar00rootroot00000000000000$ErrorActionPreference = 'Stop'; $toolsDir = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)" $url = 'https://github.com/ClementTsang/bottom/releases/download/$version/bottom_x86_64-pc-windows-msvc.zip' $packageArgs = @{ packageName = $env:ChocolateyPackageName softwareName = 'bottom' unzipLocation = $toolsDir fileType = 'exe' url = $url checksum = '$hash_64' checksumType = 'sha1' } Install-ChocolateyZipPackage @packageArgs bottom-0.9.6/src/000077500000000000000000000000001447252316700136345ustar00rootroot00000000000000bottom-0.9.6/src/app.rs000066400000000000000000003575111447252316700147760ustar00rootroot00000000000000use std::{ cmp::{max, min}, time::Instant, }; use concat_string::concat_string; use data_farmer::*; use data_harvester::temperature; use filter::*; use hashbrown::HashMap; use layout_manager::*; pub use states::*; use unicode_segmentation::{GraphemeCursor, UnicodeSegmentation}; use crate::{ constants, data_conversion::ConvertedData, utils::error::{BottomError, Result}, Pid, }; use crate::{ utils::data_units::DataUnit, widgets::{ProcWidgetColumn, ProcWidgetMode}, }; pub mod data_farmer; pub mod data_harvester; pub mod filter; pub mod frozen_state; pub mod layout_manager; mod process_killer; pub mod query; pub mod states; use frozen_state::FrozenState; #[derive(Debug, Clone, Eq, PartialEq, Default)] pub enum AxisScaling { #[default] Log, Linear, } /// AppConfigFields is meant to cover basic fields that would normally be set /// by config files or launch options. #[derive(Debug, Default, Eq, PartialEq)] pub struct AppConfigFields { pub update_rate: u64, pub temperature_type: temperature::TemperatureType, pub use_dot: bool, pub left_legend: bool, pub show_average_cpu: bool, pub use_current_cpu_total: bool, pub unnormalized_cpu: bool, pub use_basic_mode: bool, pub default_time_value: u64, pub time_interval: u64, pub hide_time: bool, pub autohide_time: bool, pub use_old_network_legend: bool, pub table_gap: u16, pub disable_click: bool, pub enable_gpu_memory: bool, pub enable_cache_memory: bool, pub show_table_scroll_position: bool, pub is_advanced_kill: bool, // TODO: Remove these, move network details state-side. pub network_unit_type: DataUnit, pub network_scale_type: AxisScaling, pub network_use_binary_prefix: bool, pub retention_ms: u64, } /// For filtering out information #[derive(Debug, Clone)] pub struct DataFilters { pub disk_filter: Option, pub mount_filter: Option, pub temp_filter: Option, pub net_filter: Option, } cfg_if::cfg_if! { if #[cfg(target_os = "linux")] { /// The max signal we can send to a process on Linux. pub const MAX_PROCESS_SIGNAL: usize = 64; } else if #[cfg(target_os = "macos")] { /// The max signal we can send to a process on macOS. pub const MAX_PROCESS_SIGNAL: usize = 31; } else if #[cfg(target_os = "freebsd")] { /// The max signal we can send to a process on FreeBSD. /// See [https://www.freebsd.org/cgi/man.cgi?query=signal&apropos=0&sektion=3&manpath=FreeBSD+13.1-RELEASE+and+Ports&arch=default&format=html] /// for more details. pub const MAX_PROCESS_SIGNAL: usize = 33; } else if #[cfg(target_os = "windows")] { /// The max signal we can send to a process. For Windows, we only have support for one signal (kill). pub const MAX_PROCESS_SIGNAL: usize = 1; } else { /// The max signal we can send to a process. As a fallback, we only support one signal (kill). pub const MAX_PROCESS_SIGNAL: usize = 1; } } pub struct App { awaiting_second_char: bool, second_char: Option, pub dd_err: Option, // FIXME: The way we do deletes is really gross. to_delete_process_list: Option<(String, Vec)>, pub frozen_state: FrozenState, last_key_press: Instant, pub converted_data: ConvertedData, pub data_collection: DataCollection, pub delete_dialog_state: AppDeleteDialogState, pub help_dialog_state: AppHelpDialogState, pub is_expanded: bool, pub is_force_redraw: bool, pub is_determining_widget_boundary: bool, pub basic_mode_use_percent: bool, #[cfg(target_family = "unix")] pub user_table: data_harvester::processes::UserTable, pub states: AppWidgetStates, pub app_config_fields: AppConfigFields, pub widget_map: HashMap, pub current_widget: BottomWidget, pub used_widgets: UsedWidgets, pub filters: DataFilters, } impl App { pub fn new( app_config_fields: AppConfigFields, states: AppWidgetStates, widget_map: HashMap, current_widget: BottomWidget, used_widgets: UsedWidgets, filters: DataFilters, is_expanded: bool, ) -> Self { Self { awaiting_second_char: false, second_char: None, dd_err: None, to_delete_process_list: None, frozen_state: FrozenState::default(), last_key_press: Instant::now(), converted_data: ConvertedData::default(), data_collection: DataCollection::default(), delete_dialog_state: AppDeleteDialogState::default(), help_dialog_state: AppHelpDialogState::default(), is_expanded, is_force_redraw: false, is_determining_widget_boundary: false, basic_mode_use_percent: false, #[cfg(target_family = "unix")] user_table: data_harvester::processes::UserTable::default(), states, app_config_fields, widget_map, current_widget, used_widgets, filters, } } pub fn reset(&mut self) { // Reset multi self.reset_multi_tap_keys(); // Reset dialog state self.help_dialog_state.is_showing_help = false; self.delete_dialog_state.is_showing_dd = false; // Close all searches and reset it self.states .proc_state .widget_states .values_mut() .for_each(|state| { state.proc_search.search_state.reset(); }); // Clear current delete list self.to_delete_process_list = None; self.dd_err = None; // Unfreeze. self.frozen_state.thaw(); // Reset zoom self.reset_cpu_zoom(); self.reset_mem_zoom(); self.reset_net_zoom(); // Reset data self.data_collection.reset(); } pub fn should_get_widget_bounds(&self) -> bool { self.is_force_redraw || self.is_determining_widget_boundary } fn close_dd(&mut self) { self.delete_dialog_state.is_showing_dd = false; self.delete_dialog_state.selected_signal = KillSignal::default(); self.delete_dialog_state.scroll_pos = 0; self.to_delete_process_list = None; self.dd_err = None; } pub fn on_esc(&mut self) { self.reset_multi_tap_keys(); if self.is_in_dialog() { if self.help_dialog_state.is_showing_help { self.help_dialog_state.is_showing_help = false; self.help_dialog_state.scroll_state.current_scroll_index = 0; } else { self.close_dd(); } self.is_force_redraw = true; } else { match self.current_widget.widget_type { BottomWidgetType::Proc => { if let Some(pws) = self .states .proc_state .get_mut_widget_state(self.current_widget.widget_id) { if pws.is_search_enabled() || pws.is_sort_open { pws.proc_search.search_state.is_enabled = false; pws.is_sort_open = false; self.is_force_redraw = true; return; } } } BottomWidgetType::ProcSearch => { if let Some(pws) = self .states .proc_state .get_mut_widget_state(self.current_widget.widget_id - 1) { if pws.is_search_enabled() { pws.proc_search.search_state.is_enabled = false; self.move_widget_selection(&WidgetDirection::Up); self.is_force_redraw = true; return; } } } BottomWidgetType::ProcSort => { if let Some(pws) = self .states .proc_state .get_mut_widget_state(self.current_widget.widget_id - 2) { if pws.is_sort_open { pws.is_sort_open = false; self.move_widget_selection(&WidgetDirection::Right); self.is_force_redraw = true; return; } } } _ => {} } if self.is_expanded { self.is_expanded = false; self.is_force_redraw = true; } } } pub fn is_in_search_widget(&self) -> bool { matches!( self.current_widget.widget_type, BottomWidgetType::ProcSearch ) } fn reset_multi_tap_keys(&mut self) { self.awaiting_second_char = false; self.second_char = None; } fn is_in_dialog(&self) -> bool { self.help_dialog_state.is_showing_help || self.delete_dialog_state.is_showing_dd } fn ignore_normal_keybinds(&self) -> bool { self.is_in_dialog() } pub fn on_tab(&mut self) { // Allow usage whilst only in processes if !self.ignore_normal_keybinds() { if let BottomWidgetType::Proc = self.current_widget.widget_type { if let Some(proc_widget_state) = self .states .proc_state .get_mut_widget_state(self.current_widget.widget_id) { proc_widget_state.toggle_tab(); } } } } pub fn on_slash(&mut self) { if !self.ignore_normal_keybinds() { match &self.current_widget.widget_type { BottomWidgetType::Proc | BottomWidgetType::ProcSort => { // Toggle on if let Some(proc_widget_state) = self.states.proc_state.get_mut_widget_state( self.current_widget.widget_id - match &self.current_widget.widget_type { BottomWidgetType::ProcSort => 2, _ => 0, }, ) { proc_widget_state.proc_search.search_state.is_enabled = true; self.move_widget_selection(&WidgetDirection::Down); self.is_force_redraw = true; } } _ => {} } } } pub fn toggle_sort_menu(&mut self) { let widget_id = self.current_widget.widget_id - match &self.current_widget.widget_type { BottomWidgetType::Proc => 0, BottomWidgetType::ProcSort => 2, _ => 0, }; if let Some(pws) = self.states.proc_state.get_mut_widget_state(widget_id) { pws.is_sort_open = !pws.is_sort_open; pws.force_rerender = true; // If the sort is now open, move left. Otherwise, if the proc sort was selected, force move right. if pws.is_sort_open { pws.sort_table.set_position(pws.table.sort_index()); self.move_widget_selection(&WidgetDirection::Left); } else if let BottomWidgetType::ProcSort = self.current_widget.widget_type { self.move_widget_selection(&WidgetDirection::Right); } self.is_force_redraw = true; } } pub fn invert_sort(&mut self) { match &self.current_widget.widget_type { BottomWidgetType::Proc | BottomWidgetType::ProcSort => { let widget_id = self.current_widget.widget_id - match &self.current_widget.widget_type { BottomWidgetType::Proc => 0, BottomWidgetType::ProcSort => 2, _ => 0, }; if let Some(pws) = self.states.proc_state.get_mut_widget_state(widget_id) { pws.table.toggle_order(); pws.force_data_update(); } } _ => {} } } pub fn toggle_percentages(&mut self) { match &self.current_widget.widget_type { BottomWidgetType::BasicMem => { self.basic_mode_use_percent = !self.basic_mode_use_percent; // Oh god this is so lazy. } BottomWidgetType::Proc => { if let Some(proc_widget_state) = self .states .proc_state .widget_states .get_mut(&self.current_widget.widget_id) { proc_widget_state.toggle_mem_percentage(); } } _ => {} } } pub fn toggle_ignore_case(&mut self) { let is_in_search_widget = self.is_in_search_widget(); if let Some(proc_widget_state) = self .states .proc_state .widget_states .get_mut(&(self.current_widget.widget_id - 1)) { if is_in_search_widget && proc_widget_state.is_search_enabled() { proc_widget_state.proc_search.search_toggle_ignore_case(); proc_widget_state.update_query(); } } } pub fn toggle_search_whole_word(&mut self) { let is_in_search_widget = self.is_in_search_widget(); if let Some(proc_widget_state) = self .states .proc_state .widget_states .get_mut(&(self.current_widget.widget_id - 1)) { if is_in_search_widget && proc_widget_state.is_search_enabled() { proc_widget_state.proc_search.search_toggle_whole_word(); proc_widget_state.update_query(); } } } pub fn toggle_search_regex(&mut self) { let is_in_search_widget = self.is_in_search_widget(); if let Some(proc_widget_state) = self .states .proc_state .widget_states .get_mut(&(self.current_widget.widget_id - 1)) { if is_in_search_widget && proc_widget_state.is_search_enabled() { proc_widget_state.proc_search.search_toggle_regex(); proc_widget_state.update_query(); } } } pub fn toggle_tree_mode(&mut self) { if let Some(proc_widget_state) = self .states .proc_state .widget_states .get_mut(&(self.current_widget.widget_id)) { match proc_widget_state.mode { ProcWidgetMode::Tree { .. } => { proc_widget_state.mode = ProcWidgetMode::Normal; proc_widget_state.force_rerender_and_update(); } ProcWidgetMode::Normal => { proc_widget_state.mode = ProcWidgetMode::Tree { collapsed_pids: Default::default(), }; proc_widget_state.force_rerender_and_update(); } ProcWidgetMode::Grouped => {} } } } /// One of two functions allowed to run while in a dialog... pub fn on_enter(&mut self) { if self.delete_dialog_state.is_showing_dd { if self.dd_err.is_some() { self.close_dd(); } else if self.delete_dialog_state.selected_signal != KillSignal::Cancel { // If within dd... if self.dd_err.is_none() { // Also ensure that we didn't just fail a dd... let dd_result = self.kill_highlighted_process(); self.delete_dialog_state.scroll_pos = 0; self.delete_dialog_state.selected_signal = KillSignal::default(); // Check if there was an issue... if so, inform the user. if let Err(dd_err) = dd_result { self.dd_err = Some(dd_err.to_string()); } else { self.delete_dialog_state.is_showing_dd = false; } } } else { self.delete_dialog_state.scroll_pos = 0; self.delete_dialog_state.selected_signal = KillSignal::default(); self.delete_dialog_state.is_showing_dd = false; } self.is_force_redraw = true; } else if !self.is_in_dialog() { if let BottomWidgetType::ProcSort = self.current_widget.widget_type { if let Some(proc_widget_state) = self .states .proc_state .widget_states .get_mut(&(self.current_widget.widget_id - 2)) { proc_widget_state.use_sort_table_value(); self.move_widget_selection(&WidgetDirection::Right); self.is_force_redraw = true; } } } } pub fn on_delete(&mut self) { if let BottomWidgetType::ProcSearch = self.current_widget.widget_type { let is_in_search_widget = self.is_in_search_widget(); if let Some(proc_widget_state) = self .states .proc_state .widget_states .get_mut(&(self.current_widget.widget_id - 1)) { if is_in_search_widget { if proc_widget_state.proc_search.search_state.is_enabled && proc_widget_state.cursor_char_index() < proc_widget_state .proc_search .search_state .current_search_query .len() { let current_cursor = proc_widget_state.cursor_char_index(); proc_widget_state.search_walk_forward(); let _ = proc_widget_state .proc_search .search_state .current_search_query .drain(current_cursor..proc_widget_state.cursor_char_index()); proc_widget_state.proc_search.search_state.grapheme_cursor = GraphemeCursor::new( current_cursor, proc_widget_state .proc_search .search_state .current_search_query .len(), true, ); proc_widget_state.update_query(); } } else { self.start_killing_process() } } } } pub fn on_backspace(&mut self) { if let BottomWidgetType::ProcSearch = self.current_widget.widget_type { let is_in_search_widget = self.is_in_search_widget(); if let Some(proc_widget_state) = self .states .proc_state .widget_states .get_mut(&(self.current_widget.widget_id - 1)) { if is_in_search_widget && proc_widget_state.proc_search.search_state.is_enabled && proc_widget_state.cursor_char_index() > 0 { let current_cursor = proc_widget_state.cursor_char_index(); proc_widget_state.search_walk_back(); // Remove the indices in between. let _ = proc_widget_state .proc_search .search_state .current_search_query .drain(proc_widget_state.cursor_char_index()..current_cursor); proc_widget_state.proc_search.search_state.grapheme_cursor = GraphemeCursor::new( proc_widget_state.cursor_char_index(), proc_widget_state .proc_search .search_state .current_search_query .len(), true, ); proc_widget_state.proc_search.search_state.cursor_direction = CursorDirection::Left; proc_widget_state.update_query(); } } } } pub fn get_process_filter(&self, widget_id: u64) -> &Option { if let Some(process_widget_state) = self.states.proc_state.widget_states.get(&widget_id) { &process_widget_state.proc_search.search_state.query } else { &None } } #[cfg(target_family = "unix")] pub fn on_number(&mut self, number_char: char) { if self.delete_dialog_state.is_showing_dd { if self .delete_dialog_state .last_number_press .map_or(100, |ins| ins.elapsed().as_millis()) >= 400 { self.delete_dialog_state.keyboard_signal_select = 0; } let mut kbd_signal = self.delete_dialog_state.keyboard_signal_select * 10; kbd_signal += number_char.to_digit(10).unwrap() as usize; if kbd_signal > 64 { kbd_signal %= 100; } #[cfg(target_os = "linux")] if kbd_signal > 64 || kbd_signal == 32 || kbd_signal == 33 { kbd_signal %= 10; } #[cfg(target_os = "macos")] if kbd_signal > 31 { kbd_signal %= 10; } self.delete_dialog_state.selected_signal = KillSignal::Kill(kbd_signal); if kbd_signal < 10 { self.delete_dialog_state.keyboard_signal_select = kbd_signal; } else { self.delete_dialog_state.keyboard_signal_select = 0; } self.delete_dialog_state.last_number_press = Some(Instant::now()); } } pub fn on_up_key(&mut self) { if !self.is_in_dialog() { self.decrement_position_count(); } else if self.help_dialog_state.is_showing_help { self.help_scroll_up(); } else if self.delete_dialog_state.is_showing_dd { #[cfg(target_os = "windows")] self.on_right_key(); #[cfg(target_family = "unix")] { if self.app_config_fields.is_advanced_kill { self.on_left_key(); } else { self.on_right_key(); } } return; } self.reset_multi_tap_keys(); } pub fn on_down_key(&mut self) { if !self.is_in_dialog() { self.increment_position_count(); } else if self.help_dialog_state.is_showing_help { self.help_scroll_down(); } else if self.delete_dialog_state.is_showing_dd { #[cfg(target_os = "windows")] self.on_left_key(); #[cfg(target_family = "unix")] { if self.app_config_fields.is_advanced_kill { self.on_right_key(); } else { self.on_left_key(); } } return; } self.reset_multi_tap_keys(); } pub fn on_left_key(&mut self) { if !self.is_in_dialog() { match self.current_widget.widget_type { BottomWidgetType::ProcSearch => { let is_in_search_widget = self.is_in_search_widget(); if let Some(proc_widget_state) = self .states .proc_state .get_mut_widget_state(self.current_widget.widget_id - 1) { if is_in_search_widget { let prev_cursor = proc_widget_state.cursor_char_index(); proc_widget_state.search_walk_back(); if proc_widget_state.cursor_char_index() < prev_cursor { proc_widget_state.proc_search.search_state.cursor_direction = CursorDirection::Left; } } } } BottomWidgetType::Battery => { if self.converted_data.battery_data.len() > 1 { if let Some(battery_widget_state) = self .states .battery_state .get_mut_widget_state(self.current_widget.widget_id) { if battery_widget_state.currently_selected_battery_index > 0 { battery_widget_state.currently_selected_battery_index -= 1; } } } } _ => {} } } else if self.delete_dialog_state.is_showing_dd { #[cfg(target_family = "unix")] { if self.app_config_fields.is_advanced_kill { match self.delete_dialog_state.selected_signal { KillSignal::Kill(prev_signal) => { self.delete_dialog_state.selected_signal = match prev_signal - 1 { 0 => KillSignal::Cancel, // 32 + 33 are skipped 33 => KillSignal::Kill(31), signal => KillSignal::Kill(signal), }; } KillSignal::Cancel => {} }; } else { self.delete_dialog_state.selected_signal = KillSignal::default(); } } #[cfg(target_os = "windows")] { self.delete_dialog_state.selected_signal = KillSignal::Kill(1); } } } pub fn on_right_key(&mut self) { if !self.is_in_dialog() { match self.current_widget.widget_type { BottomWidgetType::ProcSearch => { let is_in_search_widget = self.is_in_search_widget(); if let Some(proc_widget_state) = self .states .proc_state .get_mut_widget_state(self.current_widget.widget_id - 1) { if is_in_search_widget { let prev_cursor = proc_widget_state.cursor_char_index(); proc_widget_state.search_walk_forward(); if proc_widget_state.cursor_char_index() > prev_cursor { proc_widget_state.proc_search.search_state.cursor_direction = CursorDirection::Right; } } } } BottomWidgetType::Battery => { if self.converted_data.battery_data.len() > 1 { let battery_count = self.converted_data.battery_data.len(); if let Some(battery_widget_state) = self .states .battery_state .get_mut_widget_state(self.current_widget.widget_id) { if battery_widget_state.currently_selected_battery_index < battery_count - 1 { battery_widget_state.currently_selected_battery_index += 1; } } } } _ => {} } } else if self.delete_dialog_state.is_showing_dd { #[cfg(target_family = "unix")] { if self.app_config_fields.is_advanced_kill { let new_signal = match self.delete_dialog_state.selected_signal { KillSignal::Cancel => 1, // 32+33 are skipped #[cfg(target_os = "linux")] KillSignal::Kill(31) => 34, #[cfg(target_os = "macos")] KillSignal::Kill(31) => 31, KillSignal::Kill(64) => 64, KillSignal::Kill(signal) => signal + 1, }; self.delete_dialog_state.selected_signal = KillSignal::Kill(new_signal); } else { self.delete_dialog_state.selected_signal = KillSignal::Cancel; } } #[cfg(target_os = "windows")] { self.delete_dialog_state.selected_signal = KillSignal::Cancel; } } } pub fn on_page_up(&mut self) { if self.delete_dialog_state.is_showing_dd { let mut new_signal = match self.delete_dialog_state.selected_signal { KillSignal::Cancel => 0, KillSignal::Kill(signal) => max(signal, 8) - 8, }; if new_signal > 23 && new_signal < 33 { new_signal -= 2; } self.delete_dialog_state.selected_signal = match new_signal { 0 => KillSignal::Cancel, sig => KillSignal::Kill(sig), }; } else if self.help_dialog_state.is_showing_help { let current = &mut self.help_dialog_state.scroll_state.current_scroll_index; let amount = self.help_dialog_state.height; *current = current.saturating_sub(amount); } else if self.current_widget.widget_type.is_widget_table() { if let (Some((_tlc_x, tlc_y)), Some((_brc_x, brc_y))) = ( &self.current_widget.top_left_corner, &self.current_widget.bottom_right_corner, ) { let border_offset = u16::from(self.is_drawing_border()); let header_offset = self.header_offset(&self.current_widget); let height = brc_y - tlc_y - 2 * border_offset - header_offset; self.change_position_count(-(height as i64)); } } } pub fn on_page_down(&mut self) { if self.delete_dialog_state.is_showing_dd { let mut new_signal = match self.delete_dialog_state.selected_signal { KillSignal::Cancel => 8, KillSignal::Kill(signal) => min(signal + 8, MAX_PROCESS_SIGNAL), }; if new_signal > 31 && new_signal < 42 { new_signal += 2; } self.delete_dialog_state.selected_signal = KillSignal::Kill(new_signal); } else if self.help_dialog_state.is_showing_help { let current = self.help_dialog_state.scroll_state.current_scroll_index; let amount = self.help_dialog_state.height; self.help_scroll_to_or_max(current + amount); } else if self.current_widget.widget_type.is_widget_table() { if let (Some((_tlc_x, tlc_y)), Some((_brc_x, brc_y))) = ( &self.current_widget.top_left_corner, &self.current_widget.bottom_right_corner, ) { let border_offset = u16::from(self.is_drawing_border()); let header_offset = self.header_offset(&self.current_widget); let height = brc_y - tlc_y - 2 * border_offset - header_offset; self.change_position_count(height as i64); } } } pub fn scroll_half_page_up(&mut self) { if self.help_dialog_state.is_showing_help { let current = &mut self.help_dialog_state.scroll_state.current_scroll_index; let amount = self.help_dialog_state.height / 2; *current = current.saturating_sub(amount); } else if self.current_widget.widget_type.is_widget_table() { if let (Some((_tlc_x, tlc_y)), Some((_brc_x, brc_y))) = ( &self.current_widget.top_left_corner, &self.current_widget.bottom_right_corner, ) { let border_offset = u16::from(self.is_drawing_border()); let header_offset = self.header_offset(&self.current_widget); let height = brc_y - tlc_y - 2 * border_offset - header_offset; self.change_position_count(-(height as i64) / 2); } } } pub fn scroll_half_page_down(&mut self) { if self.help_dialog_state.is_showing_help { let current = self.help_dialog_state.scroll_state.current_scroll_index; let amount = self.help_dialog_state.height / 2; self.help_scroll_to_or_max(current + amount); } else if self.current_widget.widget_type.is_widget_table() { if let (Some((_tlc_x, tlc_y)), Some((_brc_x, brc_y))) = ( &self.current_widget.top_left_corner, &self.current_widget.bottom_right_corner, ) { let border_offset = u16::from(self.is_drawing_border()); let header_offset = self.header_offset(&self.current_widget); let height = brc_y - tlc_y - 2 * border_offset - header_offset; self.change_position_count(height as i64 / 2); } } } pub fn skip_cursor_beginning(&mut self) { if !self.ignore_normal_keybinds() { if let BottomWidgetType::ProcSearch = self.current_widget.widget_type { let is_in_search_widget = self.is_in_search_widget(); if let Some(proc_widget_state) = self .states .proc_state .widget_states .get_mut(&(self.current_widget.widget_id - 1)) { if is_in_search_widget { proc_widget_state.proc_search.search_state.grapheme_cursor = GraphemeCursor::new( 0, proc_widget_state .proc_search .search_state .current_search_query .len(), true, ); proc_widget_state.proc_search.search_state.cursor_direction = CursorDirection::Left; } } } } } pub fn skip_cursor_end(&mut self) { if !self.ignore_normal_keybinds() { if let BottomWidgetType::ProcSearch = self.current_widget.widget_type { let is_in_search_widget = self.is_in_search_widget(); if let Some(proc_widget_state) = self .states .proc_state .widget_states .get_mut(&(self.current_widget.widget_id - 1)) { if is_in_search_widget { let query_len = proc_widget_state .proc_search .search_state .current_search_query .len(); proc_widget_state.proc_search.search_state.grapheme_cursor = GraphemeCursor::new(query_len, query_len, true); proc_widget_state.proc_search.search_state.cursor_direction = CursorDirection::Right; } } } } } pub fn clear_search(&mut self) { if let BottomWidgetType::ProcSearch = self.current_widget.widget_type { if let Some(proc_widget_state) = self .states .proc_state .widget_states .get_mut(&(self.current_widget.widget_id - 1)) { proc_widget_state.clear_search(); } } } pub fn clear_previous_word(&mut self) { if let BottomWidgetType::ProcSearch = self.current_widget.widget_type { if let Some(proc_widget_state) = self .states .proc_state .widget_states .get_mut(&(self.current_widget.widget_id - 1)) { // Traverse backwards from the current cursor location until you hit non-whitespace characters, // then continue to traverse (and delete) backwards until you hit a whitespace character. Halt. // So... first, let's get our current cursor position in terms of char indices. let end_index = proc_widget_state.cursor_char_index(); // Then, let's crawl backwards until we hit our location, and store the "head"... let query = proc_widget_state.current_search_query(); let mut start_index = 0; let mut saw_non_whitespace = false; for (itx, c) in query .chars() .rev() .enumerate() .skip(query.len() - end_index) { if c.is_whitespace() { if saw_non_whitespace { start_index = query.len() - itx; break; } } else { saw_non_whitespace = true; } } let _ = proc_widget_state .proc_search .search_state .current_search_query .drain(start_index..end_index); proc_widget_state.proc_search.search_state.grapheme_cursor = GraphemeCursor::new( start_index, proc_widget_state .proc_search .search_state .current_search_query .len(), true, ); proc_widget_state.proc_search.search_state.cursor_direction = CursorDirection::Left; proc_widget_state.update_query(); } } } pub fn start_killing_process(&mut self) { self.reset_multi_tap_keys(); if let Some(pws) = self .states .proc_state .widget_states .get(&self.current_widget.widget_id) { if let Some(current) = pws.table.current_item() { let id = current.id.to_string(); if let Some(pids) = pws .id_pid_map .get(&id) .cloned() .or_else(|| Some(vec![current.pid])) { let current_process = (id, pids); self.to_delete_process_list = Some(current_process); self.delete_dialog_state.is_showing_dd = true; self.is_determining_widget_boundary = true; } } } // FIXME: This should handle errors. } pub fn on_char_key(&mut self, caught_char: char) { // Skip control code chars if caught_char.is_control() { return; } // Forbid any char key presses when showing a dialog box... if !self.ignore_normal_keybinds() { let current_key_press_inst = Instant::now(); if current_key_press_inst .duration_since(self.last_key_press) .as_millis() > constants::MAX_KEY_TIMEOUT_IN_MILLISECONDS.into() { self.reset_multi_tap_keys(); } self.last_key_press = current_key_press_inst; if let BottomWidgetType::ProcSearch = self.current_widget.widget_type { let is_in_search_widget = self.is_in_search_widget(); if let Some(proc_widget_state) = self .states .proc_state .widget_states .get_mut(&(self.current_widget.widget_id - 1)) { if is_in_search_widget && proc_widget_state.is_search_enabled() { proc_widget_state .proc_search .search_state .current_search_query .insert(proc_widget_state.cursor_char_index(), caught_char); proc_widget_state.proc_search.search_state.grapheme_cursor = GraphemeCursor::new( proc_widget_state.cursor_char_index(), proc_widget_state .proc_search .search_state .current_search_query .len(), true, ); proc_widget_state.search_walk_forward(); proc_widget_state.update_query(); proc_widget_state.proc_search.search_state.cursor_direction = CursorDirection::Right; return; } } } self.handle_char(caught_char); } else if self.help_dialog_state.is_showing_help { match caught_char { '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' => { let potential_index = caught_char.to_digit(10); if let Some(potential_index) = potential_index { let potential_index = potential_index as usize; if (potential_index) < self.help_dialog_state.index_shortcuts.len() { self.help_scroll_to_or_max( self.help_dialog_state.index_shortcuts[potential_index], ); } } } 'j' | 'k' | 'g' | 'G' => self.handle_char(caught_char), _ => {} } } else if self.delete_dialog_state.is_showing_dd { match caught_char { 'h' => self.on_left_key(), 'j' => self.on_down_key(), 'k' => self.on_up_key(), 'l' => self.on_right_key(), #[cfg(target_family = "unix")] '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' => { self.on_number(caught_char) } 'g' => { let mut is_first_g = true; if let Some(second_char) = self.second_char { if self.awaiting_second_char && second_char == 'g' { is_first_g = false; self.awaiting_second_char = false; self.second_char = None; self.skip_to_first(); } } if is_first_g { self.awaiting_second_char = true; self.second_char = Some('g'); } } 'G' => self.skip_to_last(), _ => {} } } } // FIXME: Refactor this system... fn handle_char(&mut self, caught_char: char) { match caught_char { '/' => { self.on_slash(); } 'd' => { if let BottomWidgetType::Proc = self.current_widget.widget_type { let mut is_first_d = true; if let Some(second_char) = self.second_char { if self.awaiting_second_char && second_char == 'd' { is_first_d = false; self.awaiting_second_char = false; self.second_char = None; self.start_killing_process(); } } if is_first_d { self.awaiting_second_char = true; self.second_char = Some('d'); } } else if let Some(disk) = self .states .disk_state .get_mut_widget_state(self.current_widget.widget_id) { disk.set_index(0); } } 'g' => { let mut is_first_g = true; if let Some(second_char) = self.second_char { if self.awaiting_second_char && second_char == 'g' { is_first_g = false; self.awaiting_second_char = false; self.second_char = None; self.skip_to_first(); } } if is_first_g { self.awaiting_second_char = true; self.second_char = Some('g'); } } 'G' => self.skip_to_last(), 'k' => self.on_up_key(), 'j' => self.on_down_key(), 'f' => { self.frozen_state.toggle(&self.data_collection); // TODO: Thawing should force a full data refresh and redraw immediately. } 'c' => { if let BottomWidgetType::Proc = self.current_widget.widget_type { if let Some(proc_widget_state) = self .states .proc_state .get_mut_widget_state(self.current_widget.widget_id) { proc_widget_state.select_column(ProcWidgetColumn::Cpu); } } } 'm' => { if let BottomWidgetType::Proc = self.current_widget.widget_type { if let Some(proc_widget_state) = self .states .proc_state .get_mut_widget_state(self.current_widget.widget_id) { proc_widget_state.select_column(ProcWidgetColumn::Mem); } } else if let Some(disk) = self .states .disk_state .get_mut_widget_state(self.current_widget.widget_id) { disk.set_index(1); } } 'p' => { if let BottomWidgetType::Proc = self.current_widget.widget_type { if let Some(proc_widget_state) = self .states .proc_state .get_mut_widget_state(self.current_widget.widget_id) { proc_widget_state.select_column(ProcWidgetColumn::PidOrCount); } } else if let Some(disk) = self .states .disk_state .get_mut_widget_state(self.current_widget.widget_id) { disk.set_index(5); } } 'P' => { if let BottomWidgetType::Proc = self.current_widget.widget_type { if let Some(proc_widget_state) = self .states .proc_state .get_mut_widget_state(self.current_widget.widget_id) { proc_widget_state.toggle_command(); } } } 'n' => { if let BottomWidgetType::Proc = self.current_widget.widget_type { if let Some(proc_widget_state) = self .states .proc_state .get_mut_widget_state(self.current_widget.widget_id) { proc_widget_state.select_column(ProcWidgetColumn::ProcNameOrCommand); } } else if let Some(disk) = self .states .disk_state .get_mut_widget_state(self.current_widget.widget_id) { disk.set_index(3); } } '?' => { self.help_dialog_state.is_showing_help = true; self.is_force_redraw = true; } 'H' | 'A' => self.move_widget_selection(&WidgetDirection::Left), 'L' | 'D' => self.move_widget_selection(&WidgetDirection::Right), 'K' | 'W' => self.move_widget_selection(&WidgetDirection::Up), 'J' | 'S' => self.move_widget_selection(&WidgetDirection::Down), 't' => { if let BottomWidgetType::Proc = self.current_widget.widget_type { self.toggle_tree_mode() } else if let Some(temp) = self .states .temp_state .get_mut_widget_state(self.current_widget.widget_id) { temp.table.set_sort_index(1); temp.force_data_update(); } else if let Some(disk) = self .states .disk_state .get_mut_widget_state(self.current_widget.widget_id) { disk.set_index(4); } } '+' => self.on_plus(), '-' => self.on_minus(), '=' => self.reset_zoom(), 'e' => self.toggle_expand_widget(), 's' => { if let BottomWidgetType::Proc = self.current_widget.widget_type { self.toggle_sort_menu() } else if let Some(temp) = self .states .temp_state .get_mut_widget_state(self.current_widget.widget_id) { temp.table.set_sort_index(0); temp.force_data_update(); self.is_force_redraw = true; } } 'u' => { if let Some(disk) = self .states .disk_state .get_mut_widget_state(self.current_widget.widget_id) { disk.set_index(2); } } 'r' => { if let Some(disk) = self .states .disk_state .get_mut_widget_state(self.current_widget.widget_id) { disk.set_index(6); } } 'w' => { if let Some(disk) = self .states .disk_state .get_mut_widget_state(self.current_widget.widget_id) { disk.set_index(7); } } 'I' => self.invert_sort(), '%' => self.toggle_percentages(), _ => {} } if let Some(second_char) = self.second_char { if self.awaiting_second_char && caught_char != second_char { self.awaiting_second_char = false; } } } pub fn kill_highlighted_process(&mut self) -> Result<()> { if let BottomWidgetType::Proc = self.current_widget.widget_type { if let Some((_, pids)) = &self.to_delete_process_list { #[cfg(target_family = "unix")] let signal = match self.delete_dialog_state.selected_signal { KillSignal::Kill(sig) => sig, KillSignal::Cancel => 15, // should never happen, so just TERM }; for pid in pids { #[cfg(target_family = "unix")] { process_killer::kill_process_given_pid(*pid, signal)?; } #[cfg(target_os = "windows")] { process_killer::kill_process_given_pid(*pid)?; } } } self.to_delete_process_list = None; Ok(()) } else { Err(BottomError::GenericError( "Cannot kill processes if the current widget is not the Process widget!" .to_string(), )) } } pub fn get_to_delete_processes(&self) -> Option<(String, Vec)> { self.to_delete_process_list.clone() } fn toggle_expand_widget(&mut self) { if self.is_expanded { self.is_expanded = false; self.is_force_redraw = true; } else { self.expand_widget(); } } fn expand_widget(&mut self) { // TODO: [BASIC] Expansion in basic mode. if !self.ignore_normal_keybinds() && !self.app_config_fields.use_basic_mode { // Pop-out mode. We ignore if in process search. match self.current_widget.widget_type { BottomWidgetType::ProcSearch => {} _ => { self.is_expanded = true; self.is_force_redraw = true; } } } } pub fn move_widget_selection(&mut self, direction: &WidgetDirection) { // Since we only want to call reset once, we do it like this to avoid // redundant calls on recursion. self.move_widget_selection_logic(direction); self.reset_multi_tap_keys(); } fn move_widget_selection_logic(&mut self, direction: &WidgetDirection) { /* The actual logic for widget movement. We follow these following steps: 1. Send a movement signal in `direction`. 2. Check if this new widget we've landed on is hidden. If not, halt. 3. If it hidden, loop and either send: - A signal equal to the current direction, if it is opposite of the reflection. - Reflection direction. */ if !self.ignore_normal_keybinds() && !self.is_expanded { if let Some(new_widget_id) = &(match direction { WidgetDirection::Left => self.current_widget.left_neighbour, WidgetDirection::Right => self.current_widget.right_neighbour, WidgetDirection::Up => self.current_widget.up_neighbour, WidgetDirection::Down => self.current_widget.down_neighbour, }) { if let Some(new_widget) = self.widget_map.get(new_widget_id) { match &new_widget.widget_type { BottomWidgetType::Temp | BottomWidgetType::Proc | BottomWidgetType::ProcSort | BottomWidgetType::Disk | BottomWidgetType::Battery if self.states.basic_table_widget_state.is_some() && (*direction == WidgetDirection::Left || *direction == WidgetDirection::Right) => { // Gotta do this for the sort widget if let BottomWidgetType::ProcSort = new_widget.widget_type { if let Some(proc_widget_state) = self .states .proc_state .widget_states .get(&(new_widget_id - 2)) { if proc_widget_state.is_sort_open { self.current_widget = new_widget.clone(); } else if let Some(next_new_widget_id) = match direction { WidgetDirection::Left => new_widget.left_neighbour, _ => new_widget.right_neighbour, } { if let Some(next_new_widget) = self.widget_map.get(&next_new_widget_id) { self.current_widget = next_new_widget.clone(); } } } } else { self.current_widget = new_widget.clone(); } if let Some(basic_table_widget_state) = &mut self.states.basic_table_widget_state { basic_table_widget_state.currently_displayed_widget_id = self.current_widget.widget_id; basic_table_widget_state.currently_displayed_widget_type = self.current_widget.widget_type.clone(); } // And let's not forget: self.is_determining_widget_boundary = true; } BottomWidgetType::BasicTables => { match &direction { WidgetDirection::Up => { // Note this case would fail if it moved up into a hidden // widget, but it's for basic so whatever, it's all hard-coded // right now anyways... if let Some(next_new_widget_id) = new_widget.up_neighbour { if let Some(next_new_widget) = self.widget_map.get(&next_new_widget_id) { self.current_widget = next_new_widget.clone(); } } } WidgetDirection::Down => { // Assuming we're in basic mode (BasicTables), then // we want to move DOWN to the currently shown widget. if let Some(basic_table_widget_state) = &mut self.states.basic_table_widget_state { // We also want to move towards Proc if we had set it to ProcSort. if let BottomWidgetType::ProcSort = basic_table_widget_state.currently_displayed_widget_type { basic_table_widget_state .currently_displayed_widget_type = BottomWidgetType::Proc; basic_table_widget_state .currently_displayed_widget_id -= 2; } if let Some(next_new_widget) = self.widget_map.get( &basic_table_widget_state.currently_displayed_widget_id, ) { self.current_widget = next_new_widget.clone(); } } } _ => self.current_widget = new_widget.clone(), } } _ if new_widget.parent_reflector.is_some() => { // It may be hidden... if let Some((parent_direction, offset)) = &new_widget.parent_reflector { if direction.is_opposite(parent_direction) { // Keep going in the current direction if hidden... // unless we hit a wall of sorts. let option_next_neighbour_id = match &direction { WidgetDirection::Left => new_widget.left_neighbour, WidgetDirection::Right => new_widget.right_neighbour, WidgetDirection::Up => new_widget.up_neighbour, WidgetDirection::Down => new_widget.down_neighbour, }; match &new_widget.widget_type { BottomWidgetType::CpuLegend => { if let Some(cpu_widget_state) = self .states .cpu_state .widget_states .get(&(new_widget_id - *offset)) { if cpu_widget_state.is_legend_hidden { if let Some(next_neighbour_id) = option_next_neighbour_id { if let Some(next_neighbour_widget) = self.widget_map.get(&next_neighbour_id) { self.current_widget = next_neighbour_widget.clone(); } } } else { self.current_widget = new_widget.clone(); } } } BottomWidgetType::ProcSearch | BottomWidgetType::ProcSort => { if let Some(proc_widget_state) = self .states .proc_state .widget_states .get(&(new_widget_id - *offset)) { match &new_widget.widget_type { BottomWidgetType::ProcSearch => { if !proc_widget_state.is_search_enabled() { if let Some(next_neighbour_id) = option_next_neighbour_id { if let Some(next_neighbour_widget) = self.widget_map .get(&next_neighbour_id) { self.current_widget = next_neighbour_widget .clone(); } } } else { self.current_widget = new_widget.clone(); } } BottomWidgetType::ProcSort => { if !proc_widget_state.is_sort_open { if let Some(next_neighbour_id) = option_next_neighbour_id { if let Some(next_neighbour_widget) = self.widget_map .get(&next_neighbour_id) { self.current_widget = next_neighbour_widget .clone(); } } } else { self.current_widget = new_widget.clone(); } } _ => { self.current_widget = new_widget.clone(); } } } } _ => { self.current_widget = new_widget.clone(); } } } else { // Reflect match &new_widget.widget_type { BottomWidgetType::CpuLegend => { if let Some(cpu_widget_state) = self .states .cpu_state .widget_states .get(&(new_widget_id - *offset)) { if cpu_widget_state.is_legend_hidden { if let Some(parent_cpu_widget) = self .widget_map .get(&(new_widget_id - *offset)) { self.current_widget = parent_cpu_widget.clone(); } } else { self.current_widget = new_widget.clone(); } } } BottomWidgetType::ProcSearch | BottomWidgetType::ProcSort => { if let Some(proc_widget_state) = self .states .proc_state .widget_states .get(&(new_widget_id - *offset)) { match &new_widget.widget_type { BottomWidgetType::ProcSearch => { if !proc_widget_state.is_search_enabled() { if let Some(parent_proc_widget) = self .widget_map .get(&(new_widget_id - *offset)) { self.current_widget = parent_proc_widget.clone(); } } else { self.current_widget = new_widget.clone(); } } BottomWidgetType::ProcSort => { if !proc_widget_state.is_sort_open { if let Some(parent_proc_widget) = self .widget_map .get(&(new_widget_id - *offset)) { self.current_widget = parent_proc_widget.clone(); } } else { self.current_widget = new_widget.clone(); } } _ => { self.current_widget = new_widget.clone(); } } } } _ => { self.current_widget = new_widget.clone(); } } } } } _ => { // Cannot be hidden, does not special treatment. self.current_widget = new_widget.clone(); } } let mut reflection_dir: Option = None; if let Some((parent_direction, offset)) = &self.current_widget.parent_reflector { match &self.current_widget.widget_type { BottomWidgetType::CpuLegend => { if let Some(cpu_widget_state) = self .states .cpu_state .widget_states .get(&(self.current_widget.widget_id - *offset)) { if cpu_widget_state.is_legend_hidden { reflection_dir = Some(parent_direction.clone()); } } } BottomWidgetType::ProcSearch | BottomWidgetType::ProcSort => { if let Some(proc_widget_state) = self .states .proc_state .widget_states .get(&(self.current_widget.widget_id - *offset)) { match &self.current_widget.widget_type { BottomWidgetType::ProcSearch => { if !proc_widget_state.is_search_enabled() { reflection_dir = Some(parent_direction.clone()); } } BottomWidgetType::ProcSort => { if !proc_widget_state.is_sort_open { reflection_dir = Some(parent_direction.clone()); } } _ => {} } } } _ => {} } } if let Some(ref_dir) = &reflection_dir { self.move_widget_selection_logic(ref_dir); } } } } else { match direction { WidgetDirection::Left => self.handle_left_expanded_movement(), WidgetDirection::Right => self.handle_right_expanded_movement(), WidgetDirection::Up => { if let BottomWidgetType::ProcSearch = self.current_widget.widget_type { if let Some(current_widget) = self.widget_map.get(&self.current_widget.widget_id) { if let Some(new_widget_id) = current_widget.up_neighbour { if let Some(new_widget) = self.widget_map.get(&new_widget_id) { self.current_widget = new_widget.clone(); } } } } } WidgetDirection::Down => match &self.current_widget.widget_type { BottomWidgetType::Proc | BottomWidgetType::ProcSort => { let widget_id = self.current_widget.widget_id - match &self.current_widget.widget_type { BottomWidgetType::ProcSort => 2, _ => 0, }; if let Some(current_widget) = self.widget_map.get(&widget_id) { if let Some(new_widget_id) = current_widget.down_neighbour { if let Some(new_widget) = self.widget_map.get(&new_widget_id) { if let Some(proc_widget_state) = self.states.proc_state.get_widget_state(widget_id) { if proc_widget_state.is_search_enabled() { self.current_widget = new_widget.clone(); } } } } } } _ => {} }, } } } fn handle_left_expanded_movement(&mut self) { if let BottomWidgetType::Proc = self.current_widget.widget_type { if let Some(new_widget_id) = self.current_widget.left_neighbour { if let Some(proc_widget_state) = self .states .proc_state .widget_states .get(&self.current_widget.widget_id) { if proc_widget_state.is_sort_open { if let Some(proc_sort_widget) = self.widget_map.get(&new_widget_id) { self.current_widget = proc_sort_widget.clone(); // TODO: Could I remove this clone w/ static references? } } } } } else if self.app_config_fields.left_legend { if let BottomWidgetType::Cpu = self.current_widget.widget_type { if let Some(current_widget) = self.widget_map.get(&self.current_widget.widget_id) { if let Some(cpu_widget_state) = self .states .cpu_state .widget_states .get(&self.current_widget.widget_id) { if !cpu_widget_state.is_legend_hidden { if let Some(new_widget_id) = current_widget.left_neighbour { if let Some(new_widget) = self.widget_map.get(&new_widget_id) { self.current_widget = new_widget.clone(); } } } } } } } else if let BottomWidgetType::CpuLegend = self.current_widget.widget_type { if let Some(current_widget) = self.widget_map.get(&self.current_widget.widget_id) { if let Some(new_widget_id) = current_widget.left_neighbour { if let Some(new_widget) = self.widget_map.get(&new_widget_id) { self.current_widget = new_widget.clone(); } } } } } fn handle_right_expanded_movement(&mut self) { if let BottomWidgetType::ProcSort = self.current_widget.widget_type { if let Some(new_widget_id) = self.current_widget.right_neighbour { if let Some(proc_sort_widget) = self.widget_map.get(&new_widget_id) { self.current_widget = proc_sort_widget.clone(); } } } else if self.app_config_fields.left_legend { if let BottomWidgetType::CpuLegend = self.current_widget.widget_type { if let Some(current_widget) = self.widget_map.get(&self.current_widget.widget_id) { if let Some(new_widget_id) = current_widget.right_neighbour { if let Some(new_widget) = self.widget_map.get(&new_widget_id) { self.current_widget = new_widget.clone(); } } } } } else if let BottomWidgetType::Cpu = self.current_widget.widget_type { if let Some(current_widget) = self.widget_map.get(&self.current_widget.widget_id) { if let Some(cpu_widget_state) = self .states .cpu_state .widget_states .get(&self.current_widget.widget_id) { if !cpu_widget_state.is_legend_hidden { if let Some(new_widget_id) = current_widget.right_neighbour { if let Some(new_widget) = self.widget_map.get(&new_widget_id) { self.current_widget = new_widget.clone(); } } } } } } } pub fn skip_to_first(&mut self) { if !self.ignore_normal_keybinds() { match self.current_widget.widget_type { BottomWidgetType::Proc => { if let Some(proc_widget_state) = self .states .proc_state .get_mut_widget_state(self.current_widget.widget_id) { proc_widget_state.table.set_first(); } } BottomWidgetType::ProcSort => { if let Some(proc_widget_state) = self .states .proc_state .get_mut_widget_state(self.current_widget.widget_id - 2) { proc_widget_state.sort_table.set_first(); } } BottomWidgetType::Temp => { if let Some(temp_widget_state) = self .states .temp_state .get_mut_widget_state(self.current_widget.widget_id) { temp_widget_state.table.set_first(); } } BottomWidgetType::Disk => { if let Some(disk_widget_state) = self .states .disk_state .get_mut_widget_state(self.current_widget.widget_id) { disk_widget_state.table.set_first(); } } BottomWidgetType::CpuLegend => { if let Some(cpu_widget_state) = self .states .cpu_state .get_mut_widget_state(self.current_widget.widget_id - 1) { cpu_widget_state.table.set_first(); } } _ => {} } self.reset_multi_tap_keys(); } else if self.help_dialog_state.is_showing_help { self.help_dialog_state.scroll_state.current_scroll_index = 0; } else if self.delete_dialog_state.is_showing_dd { self.delete_dialog_state.selected_signal = KillSignal::Cancel; } } pub fn skip_to_last(&mut self) { if !self.ignore_normal_keybinds() { match self.current_widget.widget_type { BottomWidgetType::Proc => { if let Some(proc_widget_state) = self .states .proc_state .get_mut_widget_state(self.current_widget.widget_id) { proc_widget_state.table.set_last(); } } BottomWidgetType::ProcSort => { if let Some(proc_widget_state) = self .states .proc_state .get_mut_widget_state(self.current_widget.widget_id - 2) { proc_widget_state.sort_table.set_last(); } } BottomWidgetType::Temp => { if let Some(temp_widget_state) = self .states .temp_state .get_mut_widget_state(self.current_widget.widget_id) { temp_widget_state.table.set_last(); } } BottomWidgetType::Disk => { if let Some(disk_widget_state) = self .states .disk_state .get_mut_widget_state(self.current_widget.widget_id) { if !self.converted_data.disk_data.is_empty() { disk_widget_state.table.set_last(); } } } BottomWidgetType::CpuLegend => { if let Some(cpu_widget_state) = self .states .cpu_state .get_mut_widget_state(self.current_widget.widget_id - 1) { cpu_widget_state.table.set_last(); } } _ => {} } self.reset_multi_tap_keys(); } else if self.help_dialog_state.is_showing_help { self.help_dialog_state.scroll_state.current_scroll_index = self.help_dialog_state.scroll_state.max_scroll_index; } else if self.delete_dialog_state.is_showing_dd { self.delete_dialog_state.selected_signal = KillSignal::Kill(MAX_PROCESS_SIGNAL); } } pub fn decrement_position_count(&mut self) { self.change_position_count(-1); } pub fn increment_position_count(&mut self) { self.change_position_count(1); } fn change_position_count(&mut self, amount: i64) { if !self.ignore_normal_keybinds() { match self.current_widget.widget_type { BottomWidgetType::Proc => { self.change_process_position(amount); } BottomWidgetType::ProcSort => self.change_process_sort_position(amount), BottomWidgetType::Temp => self.change_temp_position(amount), BottomWidgetType::Disk => self.change_disk_position(amount), BottomWidgetType::CpuLegend => self.change_cpu_legend_position(amount), _ => {} } } } fn change_process_sort_position(&mut self, num_to_change_by: i64) { if let Some(proc_widget_state) = self .states .proc_state .get_mut_widget_state(self.current_widget.widget_id - 2) { proc_widget_state .sort_table .increment_position(num_to_change_by); } } fn change_cpu_legend_position(&mut self, num_to_change_by: i64) { if let Some(cpu_widget_state) = self .states .cpu_state .widget_states .get_mut(&(self.current_widget.widget_id - 1)) { cpu_widget_state.table.increment_position(num_to_change_by); } } /// Returns the new position. fn change_process_position(&mut self, num_to_change_by: i64) -> Option { if let Some(proc_widget_state) = self .states .proc_state .get_mut_widget_state(self.current_widget.widget_id) { proc_widget_state.table.increment_position(num_to_change_by) } else { None } } fn change_temp_position(&mut self, num_to_change_by: i64) { if let Some(temp_widget_state) = self .states .temp_state .widget_states .get_mut(&self.current_widget.widget_id) { temp_widget_state.table.increment_position(num_to_change_by); } } fn change_disk_position(&mut self, num_to_change_by: i64) { if let Some(disk_widget_state) = self .states .disk_state .widget_states .get_mut(&self.current_widget.widget_id) { disk_widget_state.table.increment_position(num_to_change_by); } } fn help_scroll_up(&mut self) { if self.help_dialog_state.scroll_state.current_scroll_index > 0 { self.help_dialog_state.scroll_state.current_scroll_index -= 1; } } fn help_scroll_down(&mut self) { if self.help_dialog_state.scroll_state.current_scroll_index < self.help_dialog_state.scroll_state.max_scroll_index { self.help_dialog_state.scroll_state.current_scroll_index += 1; } } fn help_scroll_to_or_max(&mut self, new_position: u16) { if new_position <= self.help_dialog_state.scroll_state.max_scroll_index { self.help_dialog_state.scroll_state.current_scroll_index = new_position; } else { self.help_dialog_state.scroll_state.current_scroll_index = self.help_dialog_state.scroll_state.max_scroll_index; } } pub fn handle_scroll_up(&mut self) { if self.delete_dialog_state.is_showing_dd { #[cfg(target_family = "unix")] { self.on_up_key(); return; } } if self.help_dialog_state.is_showing_help { self.help_scroll_up(); } else if self.current_widget.widget_type.is_widget_graph() { self.zoom_in(); } else if self.current_widget.widget_type.is_widget_table() { self.decrement_position_count(); } } pub fn handle_scroll_down(&mut self) { if self.delete_dialog_state.is_showing_dd { #[cfg(target_family = "unix")] { self.on_down_key(); return; } } if self.help_dialog_state.is_showing_help { self.help_scroll_down(); } else if self.current_widget.widget_type.is_widget_graph() { self.zoom_out(); } else if self.current_widget.widget_type.is_widget_table() { self.increment_position_count(); } } fn on_plus(&mut self) { if let BottomWidgetType::Proc = self.current_widget.widget_type { // Toggle collapsing if tree self.toggle_collapsing_process_branch(); } else { self.zoom_in(); } } fn on_minus(&mut self) { if let BottomWidgetType::Proc = self.current_widget.widget_type { // Toggle collapsing if tree self.toggle_collapsing_process_branch(); } else { self.zoom_out(); } } fn toggle_collapsing_process_branch(&mut self) { if let Some(pws) = self .states .proc_state .widget_states .get_mut(&self.current_widget.widget_id) { pws.toggle_current_tree_branch_entry(); } } fn zoom_out(&mut self) { match self.current_widget.widget_type { BottomWidgetType::Cpu => { if let Some(cpu_widget_state) = self .states .cpu_state .widget_states .get_mut(&self.current_widget.widget_id) { let new_time = cpu_widget_state .current_display_time .saturating_add(self.app_config_fields.time_interval); if new_time <= self.app_config_fields.retention_ms { cpu_widget_state.current_display_time = new_time; self.states.cpu_state.force_update = Some(self.current_widget.widget_id); if self.app_config_fields.autohide_time { cpu_widget_state.autohide_timer = Some(Instant::now()); } } else if cpu_widget_state.current_display_time != self.app_config_fields.retention_ms { cpu_widget_state.current_display_time = self.app_config_fields.retention_ms; self.states.cpu_state.force_update = Some(self.current_widget.widget_id); if self.app_config_fields.autohide_time { cpu_widget_state.autohide_timer = Some(Instant::now()); } } } } BottomWidgetType::Mem => { if let Some(mem_widget_state) = self .states .mem_state .widget_states .get_mut(&self.current_widget.widget_id) { let new_time = mem_widget_state .current_display_time .saturating_add(self.app_config_fields.time_interval); if new_time <= self.app_config_fields.retention_ms { mem_widget_state.current_display_time = new_time; self.states.mem_state.force_update = Some(self.current_widget.widget_id); if self.app_config_fields.autohide_time { mem_widget_state.autohide_timer = Some(Instant::now()); } } else if mem_widget_state.current_display_time != self.app_config_fields.retention_ms { mem_widget_state.current_display_time = self.app_config_fields.retention_ms; self.states.mem_state.force_update = Some(self.current_widget.widget_id); if self.app_config_fields.autohide_time { mem_widget_state.autohide_timer = Some(Instant::now()); } } } } BottomWidgetType::Net => { if let Some(net_widget_state) = self .states .net_state .widget_states .get_mut(&self.current_widget.widget_id) { let new_time = net_widget_state .current_display_time .saturating_add(self.app_config_fields.time_interval); if new_time <= self.app_config_fields.retention_ms { net_widget_state.current_display_time = new_time; self.states.net_state.force_update = Some(self.current_widget.widget_id); if self.app_config_fields.autohide_time { net_widget_state.autohide_timer = Some(Instant::now()); } } else if net_widget_state.current_display_time != self.app_config_fields.retention_ms { net_widget_state.current_display_time = self.app_config_fields.retention_ms; self.states.net_state.force_update = Some(self.current_widget.widget_id); if self.app_config_fields.autohide_time { net_widget_state.autohide_timer = Some(Instant::now()); } } } } _ => {} } } fn zoom_in(&mut self) { match self.current_widget.widget_type { BottomWidgetType::Cpu => { if let Some(cpu_widget_state) = self .states .cpu_state .widget_states .get_mut(&self.current_widget.widget_id) { let new_time = cpu_widget_state .current_display_time .saturating_sub(self.app_config_fields.time_interval); if new_time >= constants::STALE_MIN_MILLISECONDS { cpu_widget_state.current_display_time = new_time; self.states.cpu_state.force_update = Some(self.current_widget.widget_id); if self.app_config_fields.autohide_time { cpu_widget_state.autohide_timer = Some(Instant::now()); } } else if cpu_widget_state.current_display_time != constants::STALE_MIN_MILLISECONDS { cpu_widget_state.current_display_time = constants::STALE_MIN_MILLISECONDS; self.states.cpu_state.force_update = Some(self.current_widget.widget_id); if self.app_config_fields.autohide_time { cpu_widget_state.autohide_timer = Some(Instant::now()); } } } } BottomWidgetType::Mem => { if let Some(mem_widget_state) = self .states .mem_state .widget_states .get_mut(&self.current_widget.widget_id) { let new_time = mem_widget_state .current_display_time .saturating_sub(self.app_config_fields.time_interval); if new_time >= constants::STALE_MIN_MILLISECONDS { mem_widget_state.current_display_time = new_time; self.states.mem_state.force_update = Some(self.current_widget.widget_id); if self.app_config_fields.autohide_time { mem_widget_state.autohide_timer = Some(Instant::now()); } } else if mem_widget_state.current_display_time != constants::STALE_MIN_MILLISECONDS { mem_widget_state.current_display_time = constants::STALE_MIN_MILLISECONDS; self.states.mem_state.force_update = Some(self.current_widget.widget_id); if self.app_config_fields.autohide_time { mem_widget_state.autohide_timer = Some(Instant::now()); } } } } BottomWidgetType::Net => { if let Some(net_widget_state) = self .states .net_state .widget_states .get_mut(&self.current_widget.widget_id) { let new_time = net_widget_state .current_display_time .saturating_sub(self.app_config_fields.time_interval); if new_time >= constants::STALE_MIN_MILLISECONDS { net_widget_state.current_display_time = new_time; self.states.net_state.force_update = Some(self.current_widget.widget_id); if self.app_config_fields.autohide_time { net_widget_state.autohide_timer = Some(Instant::now()); } } else if net_widget_state.current_display_time != constants::STALE_MIN_MILLISECONDS { net_widget_state.current_display_time = constants::STALE_MIN_MILLISECONDS; self.states.net_state.force_update = Some(self.current_widget.widget_id); if self.app_config_fields.autohide_time { net_widget_state.autohide_timer = Some(Instant::now()); } } } } _ => {} } } fn reset_cpu_zoom(&mut self) { if let Some(cpu_widget_state) = self .states .cpu_state .widget_states .get_mut(&self.current_widget.widget_id) { cpu_widget_state.current_display_time = self.app_config_fields.default_time_value; self.states.cpu_state.force_update = Some(self.current_widget.widget_id); if self.app_config_fields.autohide_time { cpu_widget_state.autohide_timer = Some(Instant::now()); } } } fn reset_mem_zoom(&mut self) { if let Some(mem_widget_state) = self .states .mem_state .widget_states .get_mut(&self.current_widget.widget_id) { mem_widget_state.current_display_time = self.app_config_fields.default_time_value; self.states.mem_state.force_update = Some(self.current_widget.widget_id); if self.app_config_fields.autohide_time { mem_widget_state.autohide_timer = Some(Instant::now()); } } } fn reset_net_zoom(&mut self) { if let Some(net_widget_state) = self .states .net_state .widget_states .get_mut(&self.current_widget.widget_id) { net_widget_state.current_display_time = self.app_config_fields.default_time_value; self.states.net_state.force_update = Some(self.current_widget.widget_id); if self.app_config_fields.autohide_time { net_widget_state.autohide_timer = Some(Instant::now()); } } } fn reset_zoom(&mut self) { match self.current_widget.widget_type { BottomWidgetType::Cpu => self.reset_cpu_zoom(), BottomWidgetType::Mem => self.reset_mem_zoom(), BottomWidgetType::Net => self.reset_net_zoom(), _ => {} } } /// Moves the mouse to the widget that was clicked on, then propagates the click down to be /// handled by the widget specifically. pub fn on_left_mouse_up(&mut self, x: u16, y: u16) { // Pretty dead simple - iterate through the widget map and go to the widget where the click // is within. // TODO: [REFACTOR] might want to refactor this, it's really ugly. // TODO: [REFACTOR] Might wanna refactor ALL state things in general, currently everything // is grouped up as an app state. We should separate stuff like event state and gui state and etc. // TODO: [MOUSE] double click functionality...? We would do this above all other actions and SC if needed. // Short circuit if we're in basic table... we might have to handle the basic table arrow // case here... if let Some(bt) = &mut self.states.basic_table_widget_state { if let ( Some((left_tlc_x, left_tlc_y)), Some((left_brc_x, left_brc_y)), Some((right_tlc_x, right_tlc_y)), Some((right_brc_x, right_brc_y)), ) = (bt.left_tlc, bt.left_brc, bt.right_tlc, bt.right_brc) { if (x >= left_tlc_x && y >= left_tlc_y) && (x < left_brc_x && y < left_brc_y) { // Case for the left "button" in the simple arrow. if let Some(new_widget) = self.widget_map.get(&(bt.currently_displayed_widget_id)) { // We have to move to the current table widget first... self.current_widget = new_widget.clone(); if let BottomWidgetType::Proc = &new_widget.widget_type { if let Some(proc_widget_state) = self .states .proc_state .get_widget_state(new_widget.widget_id) { if proc_widget_state.is_sort_open { self.move_widget_selection(&WidgetDirection::Left); } } } self.move_widget_selection(&WidgetDirection::Left); return; } } else if (x >= right_tlc_x && y >= right_tlc_y) && (x < right_brc_x && y < right_brc_y) { // Case for the right "button" in the simple arrow. if let Some(new_widget) = self.widget_map.get(&(bt.currently_displayed_widget_id)) { // We have to move to the current table widget first... self.current_widget = new_widget.clone(); if let BottomWidgetType::ProcSort = &new_widget.widget_type { if let Some(proc_widget_state) = self .states .proc_state .get_widget_state(new_widget.widget_id - 2) { if proc_widget_state.is_sort_open { self.move_widget_selection(&WidgetDirection::Right); } } } } self.move_widget_selection(&WidgetDirection::Right); // Bit extra logic to ensure you always land on a proc widget, not the sort if let BottomWidgetType::ProcSort = &self.current_widget.widget_type { self.move_widget_selection(&WidgetDirection::Right); } return; } } } // Second short circuit --- are we in the dd dialog state? If so, only check yes/no/signals // and bail after. if self.is_in_dialog() { match self.delete_dialog_state.button_positions.iter().find( |(tl_x, tl_y, br_x, br_y, _idx)| { (x >= *tl_x && y >= *tl_y) && (x <= *br_x && y <= *br_y) }, ) { Some((_, _, _, _, 0)) => { self.delete_dialog_state.selected_signal = KillSignal::Cancel } Some((_, _, _, _, idx)) => { if *idx > 31 { self.delete_dialog_state.selected_signal = KillSignal::Kill(*idx + 2) } else { self.delete_dialog_state.selected_signal = KillSignal::Kill(*idx) } } _ => {} } return; } let mut failed_to_get = true; for (new_widget_id, widget) in &self.widget_map { if let (Some((tlc_x, tlc_y)), Some((brc_x, brc_y))) = (widget.top_left_corner, widget.bottom_right_corner) { if (x >= tlc_x && y >= tlc_y) && (x < brc_x && y < brc_y) { if let Some(new_widget) = self.widget_map.get(new_widget_id) { self.current_widget = new_widget.clone(); match &self.current_widget.widget_type { BottomWidgetType::Temp | BottomWidgetType::Proc | BottomWidgetType::ProcSort | BottomWidgetType::Disk | BottomWidgetType::Battery => { if let Some(basic_table_widget_state) = &mut self.states.basic_table_widget_state { basic_table_widget_state.currently_displayed_widget_id = self.current_widget.widget_id; basic_table_widget_state.currently_displayed_widget_type = self.current_widget.widget_type.clone(); } } _ => {} } failed_to_get = false; break; } } } } if failed_to_get { return; } // Now handle click propagation down to widget. if let (Some((_tlc_x, tlc_y)), Some((_brc_x, brc_y))) = ( &self.current_widget.top_left_corner, &self.current_widget.bottom_right_corner, ) { let border_offset = u16::from(self.is_drawing_border()); // This check ensures the click isn't actually just clicking on the bottom border. if y < (brc_y - border_offset) { match &self.current_widget.widget_type { BottomWidgetType::Proc | BottomWidgetType::ProcSort | BottomWidgetType::CpuLegend | BottomWidgetType::Temp | BottomWidgetType::Disk => { // Get our index... let clicked_entry = y - *tlc_y; let header_offset = self.header_offset(&self.current_widget); let offset = border_offset + header_offset; if clicked_entry >= offset { let offset_clicked_entry = clicked_entry - offset; match &self.current_widget.widget_type { BottomWidgetType::Proc => { if let Some(proc_widget_state) = self .states .proc_state .get_widget_state(self.current_widget.widget_id) { if let Some(visual_index) = proc_widget_state.table.tui_selected() { let is_tree_mode = matches!( proc_widget_state.mode, ProcWidgetMode::Tree { .. } ); let change = offset_clicked_entry as i64 - visual_index as i64; self.change_process_position(change); // If in tree mode, also check to see if this click is on // the same entry as the already selected one - if it is, // then we minimize. if is_tree_mode && change == 0 { self.toggle_collapsing_process_branch(); } } } } BottomWidgetType::ProcSort => { // TODO: [Feature] This could sort if you double click! if let Some(proc_widget_state) = self .states .proc_state .get_widget_state(self.current_widget.widget_id - 2) { if let Some(visual_index) = proc_widget_state.sort_table.tui_selected() { self.change_process_sort_position( offset_clicked_entry as i64 - visual_index as i64, ); } } } BottomWidgetType::CpuLegend => { if let Some(cpu_widget_state) = self .states .cpu_state .get_widget_state(self.current_widget.widget_id - 1) { if let Some(visual_index) = cpu_widget_state.table.tui_selected() { self.change_cpu_legend_position( offset_clicked_entry as i64 - visual_index as i64, ); } } } BottomWidgetType::Temp => { if let Some(temp_widget_state) = self .states .temp_state .get_widget_state(self.current_widget.widget_id) { if let Some(visual_index) = temp_widget_state.table.tui_selected() { self.change_temp_position( offset_clicked_entry as i64 - visual_index as i64, ); } } } BottomWidgetType::Disk => { if let Some(disk_widget_state) = self .states .disk_state .get_widget_state(self.current_widget.widget_id) { if let Some(visual_index) = disk_widget_state.table.tui_selected() { self.change_disk_position( offset_clicked_entry as i64 - visual_index as i64, ); } } } _ => {} } } else { // We might have clicked on a header! Check if we only exceeded the table + border offset, and // it's implied we exceeded the gap offset. if clicked_entry == border_offset { match &self.current_widget.widget_type { BottomWidgetType::Proc => { if let Some(state) = self .states .proc_state .get_mut_widget_state(self.current_widget.widget_id) { if state.table.try_select_location(x, y).is_some() { state.force_data_update(); } } } BottomWidgetType::Temp => { if let Some(temp) = self .states .temp_state .get_mut_widget_state(self.current_widget.widget_id) { if temp.table.try_select_location(x, y).is_some() { temp.force_data_update(); } } } BottomWidgetType::Disk => { if let Some(disk) = self .states .disk_state .get_mut_widget_state(self.current_widget.widget_id) { if disk.table.try_select_location(x, y).is_some() { disk.force_data_update(); } } } _ => (), } } } } BottomWidgetType::Battery => { if let Some(battery_widget_state) = self .states .battery_state .get_mut_widget_state(self.current_widget.widget_id) { if let Some(tab_spacing) = &battery_widget_state.tab_click_locs { for (itx, ((tlc_x, tlc_y), (brc_x, brc_y))) in tab_spacing.iter().enumerate() { if (x >= *tlc_x && y >= *tlc_y) && (x <= *brc_x && y <= *brc_y) { battery_widget_state.currently_selected_battery_index = itx; break; } } } } } _ => {} } } } } fn is_drawing_border(&self) -> bool { self.is_expanded || !self.app_config_fields.use_basic_mode } fn header_offset(&self, widget: &BottomWidget) -> u16 { if let (Some((_tlc_x, tlc_y)), Some((_brc_x, brc_y))) = (widget.top_left_corner, widget.bottom_right_corner) { let height_diff = brc_y - tlc_y; if height_diff >= constants::TABLE_GAP_HEIGHT_LIMIT { 1 + self.app_config_fields.table_gap } else { let min_height_for_header = if self.is_drawing_border() { 3 } else { 1 }; u16::from(height_diff > min_height_for_header) } } else { 1 + self.app_config_fields.table_gap } } /// A quick and dirty way to handle paste events. pub fn handle_paste(&mut self, paste: String) { // Partially copy-pasted from the single-char variant; should probably clean up this process in the future. // In particular, encapsulate this entire logic and add some tests to make it less potentially error-prone. let is_in_search_widget = self.is_in_search_widget(); if let Some(proc_widget_state) = self .states .proc_state .widget_states .get_mut(&(self.current_widget.widget_id - 1)) { let num_runes = UnicodeSegmentation::graphemes(paste.as_str(), true).count(); if is_in_search_widget && proc_widget_state.is_search_enabled() { let left_bound = proc_widget_state.cursor_char_index(); let curr_query = &mut proc_widget_state .proc_search .search_state .current_search_query; let (left, right) = curr_query.split_at(left_bound); *curr_query = concat_string!(left, paste, right); proc_widget_state.proc_search.search_state.grapheme_cursor = GraphemeCursor::new(left_bound, curr_query.len(), true); for _ in 0..num_runes { proc_widget_state.search_walk_forward(); } proc_widget_state.update_query(); proc_widget_state.proc_search.search_state.cursor_direction = CursorDirection::Right; } } } } bottom-0.9.6/src/app/000077500000000000000000000000001447252316700144145ustar00rootroot00000000000000bottom-0.9.6/src/app/data_farmer.rs000066400000000000000000000416551447252316700172420ustar00rootroot00000000000000//! In charge of cleaning, processing, and managing data. I couldn't think of //! a better name for the file. Since I called data collection "harvesting", //! then this is the farmer I guess. //! //! Essentially the main goal is to shift the initial calculation and distribution //! of joiner points and data to one central location that will only do it //! *once* upon receiving the data --- as opposed to doing it on canvas draw, //! which will be a costly process. //! //! This will also handle the *cleaning* of stale data. That should be done //! in some manner (timer on another thread, some loop) that will occasionally //! call the purging function. Failure to do so *will* result in a growing //! memory usage and higher CPU usage - you will be trying to process more and //! more points as this is used! use std::{collections::BTreeMap, time::Instant, vec::Vec}; use hashbrown::HashMap; #[cfg(feature = "battery")] use crate::data_harvester::batteries; use crate::{ data_harvester::{cpu, disks, memory, network, processes::ProcessHarvest, temperature, Data}, utils::gen_util::{get_decimal_bytes, GIGA_LIMIT}, Pid, }; pub type TimeOffset = f64; pub type Value = f64; #[derive(Debug, Default, Clone)] pub struct TimedData { pub rx_data: Value, pub tx_data: Value, pub cpu_data: Vec, pub load_avg_data: [f32; 3], pub mem_data: Option, #[cfg(not(target_os = "windows"))] pub cache_data: Option, pub swap_data: Option, #[cfg(feature = "zfs")] pub arc_data: Option, #[cfg(feature = "gpu")] pub gpu_data: Vec>, } #[derive(Clone, Debug, Default)] pub struct ProcessData { /// A PID to process data map. pub process_harvest: BTreeMap, /// A mapping between a process PID to any children process PIDs. pub process_parent_mapping: HashMap>, /// PIDs corresponding to processes that have no parents. pub orphan_pids: Vec, } impl ProcessData { fn ingest(&mut self, list_of_processes: Vec) { self.process_parent_mapping.clear(); // Reverse as otherwise the pid mappings are in the wrong order. list_of_processes.iter().rev().for_each(|process_harvest| { if let Some(parent_pid) = process_harvest.parent_pid { if let Some(entry) = self.process_parent_mapping.get_mut(&parent_pid) { entry.push(process_harvest.pid); } else { self.process_parent_mapping .insert(parent_pid, vec![process_harvest.pid]); } } }); self.process_parent_mapping.shrink_to_fit(); let process_pid_map = list_of_processes .into_iter() .map(|process| (process.pid, process)) .collect(); self.process_harvest = process_pid_map; // We collect all processes that either: // - Do not have a parent PID (that is, they are orphan processes) // - Have a parent PID but we don't have the parent (we promote them as orphans) self.orphan_pids = self .process_harvest .iter() .filter_map(|(pid, process_harvest)| match process_harvest.parent_pid { Some(parent_pid) if self.process_harvest.contains_key(&parent_pid) => None, _ => Some(*pid), }) .collect(); } } /// AppCollection represents the pooled data stored within the main app /// thread. Basically stores a (occasionally cleaned) record of the data /// collected, and what is needed to convert into a displayable form. /// /// If the app is *frozen* - that is, we do not want to *display* any changing /// data, keep updating this. As of 2021-09-08, we just clone the current collection /// when it freezes to have a snapshot floating around. /// /// Note that with this method, the *app* thread is responsible for cleaning - /// not the data collector. #[derive(Debug, Clone)] pub struct DataCollection { pub current_instant: Instant, pub timed_data_vec: Vec<(Instant, TimedData)>, pub network_harvest: network::NetworkHarvest, pub memory_harvest: memory::MemHarvest, #[cfg(not(target_os = "windows"))] pub cache_harvest: memory::MemHarvest, pub swap_harvest: memory::MemHarvest, pub cpu_harvest: cpu::CpuHarvest, pub load_avg_harvest: cpu::LoadAvgHarvest, pub process_data: ProcessData, pub disk_harvest: Vec, pub io_harvest: disks::IoHarvest, pub io_labels_and_prev: Vec<((u64, u64), (u64, u64))>, pub io_labels: Vec<(String, String)>, pub temp_harvest: Vec, #[cfg(feature = "battery")] pub battery_harvest: Vec, #[cfg(feature = "zfs")] pub arc_harvest: memory::MemHarvest, #[cfg(feature = "gpu")] pub gpu_harvest: Vec<(String, memory::MemHarvest)>, } impl Default for DataCollection { fn default() -> Self { DataCollection { current_instant: Instant::now(), timed_data_vec: Vec::default(), network_harvest: network::NetworkHarvest::default(), memory_harvest: memory::MemHarvest::default(), #[cfg(not(target_os = "windows"))] cache_harvest: memory::MemHarvest::default(), swap_harvest: memory::MemHarvest::default(), cpu_harvest: cpu::CpuHarvest::default(), load_avg_harvest: cpu::LoadAvgHarvest::default(), process_data: Default::default(), disk_harvest: Vec::default(), io_harvest: disks::IoHarvest::default(), io_labels_and_prev: Vec::default(), io_labels: Vec::default(), temp_harvest: Vec::default(), #[cfg(feature = "battery")] battery_harvest: Vec::default(), #[cfg(feature = "zfs")] arc_harvest: memory::MemHarvest::default(), #[cfg(feature = "gpu")] gpu_harvest: Vec::default(), } } } impl DataCollection { pub fn reset(&mut self) { self.timed_data_vec = Vec::default(); self.network_harvest = network::NetworkHarvest::default(); self.memory_harvest = memory::MemHarvest::default(); self.swap_harvest = memory::MemHarvest::default(); self.cpu_harvest = cpu::CpuHarvest::default(); self.process_data = Default::default(); self.disk_harvest = Vec::default(); self.io_harvest = disks::IoHarvest::default(); self.io_labels_and_prev = Vec::default(); self.temp_harvest = Vec::default(); #[cfg(feature = "battery")] { self.battery_harvest = Vec::default(); } #[cfg(feature = "zfs")] { self.arc_harvest = memory::MemHarvest::default(); } #[cfg(feature = "gpu")] { self.gpu_harvest = Vec::default(); } } pub fn clean_data(&mut self, max_time_millis: u64) { let current_time = Instant::now(); let remove_index = match self .timed_data_vec .binary_search_by(|(instant, _timed_data)| { current_time .duration_since(*instant) .as_millis() .cmp(&(max_time_millis.into())) .reverse() }) { Ok(index) => index, Err(index) => index, }; self.timed_data_vec.drain(0..remove_index); self.timed_data_vec.shrink_to_fit(); } pub fn eat_data(&mut self, harvested_data: Box) { let harvested_time = harvested_data.collection_time; let mut new_entry = TimedData::default(); // Network if let Some(network) = harvested_data.network { self.eat_network(network, &mut new_entry); } // Memory, Swap if let (Some(memory), Some(swap)) = (harvested_data.memory, harvested_data.swap) { self.eat_memory_and_swap(memory, swap, &mut new_entry); } // Cache memory #[cfg(not(target_os = "windows"))] if let Some(cache) = harvested_data.cache { self.eat_cache(cache, &mut new_entry); } #[cfg(feature = "zfs")] if let Some(arc) = harvested_data.arc { self.eat_arc(arc, &mut new_entry); } #[cfg(feature = "gpu")] if let Some(gpu) = harvested_data.gpu { self.eat_gpu(gpu, &mut new_entry); } // CPU if let Some(cpu) = harvested_data.cpu { self.eat_cpu(cpu, &mut new_entry); } // Load average if let Some(load_avg) = harvested_data.load_avg { self.eat_load_avg(load_avg, &mut new_entry); } // Temp if let Some(temperature_sensors) = harvested_data.temperature_sensors { self.eat_temp(temperature_sensors); } // Disks if let Some(disks) = harvested_data.disks { if let Some(io) = harvested_data.io { self.eat_disks(disks, io, harvested_time); } } // Processes if let Some(list_of_processes) = harvested_data.list_of_processes { self.eat_proc(list_of_processes); } #[cfg(feature = "battery")] { // Battery if let Some(list_of_batteries) = harvested_data.list_of_batteries { self.eat_battery(list_of_batteries); } } // And we're done eating. Update time and push the new entry! self.current_instant = harvested_time; self.timed_data_vec.push((harvested_time, new_entry)); } fn eat_memory_and_swap( &mut self, memory: memory::MemHarvest, swap: memory::MemHarvest, new_entry: &mut TimedData, ) { // Memory new_entry.mem_data = memory.use_percent; // Swap new_entry.swap_data = swap.use_percent; // In addition copy over latest data for easy reference self.memory_harvest = memory; self.swap_harvest = swap; } #[cfg(not(target_os = "windows"))] fn eat_cache(&mut self, cache: memory::MemHarvest, new_entry: &mut TimedData) { // Cache and buffer memory new_entry.cache_data = cache.use_percent; // In addition copy over latest data for easy reference self.cache_harvest = cache; } fn eat_network(&mut self, network: network::NetworkHarvest, new_entry: &mut TimedData) { // RX if network.rx > 0 { new_entry.rx_data = network.rx as f64; } // TX if network.tx > 0 { new_entry.tx_data = network.tx as f64; } // In addition copy over latest data for easy reference self.network_harvest = network; } fn eat_cpu(&mut self, cpu: Vec, new_entry: &mut TimedData) { // Note this only pre-calculates the data points - the names will be // within the local copy of cpu_harvest. Since it's all sequential // it probably doesn't matter anyways. cpu.iter() .for_each(|cpu| new_entry.cpu_data.push(cpu.cpu_usage)); self.cpu_harvest = cpu; } fn eat_load_avg(&mut self, load_avg: cpu::LoadAvgHarvest, new_entry: &mut TimedData) { new_entry.load_avg_data = load_avg; self.load_avg_harvest = load_avg; } fn eat_temp(&mut self, temperature_sensors: Vec) { self.temp_harvest = temperature_sensors; } fn eat_disks( &mut self, disks: Vec, io: disks::IoHarvest, harvested_time: Instant, ) { let time_since_last_harvest = harvested_time .duration_since(self.current_instant) .as_secs_f64(); for (itx, device) in disks.iter().enumerate() { let checked_name = { cfg_if::cfg_if! { if #[cfg(target_os = "windows")] { match &device.volume_name { Some(volume_name) => Some(volume_name.as_str()), None => device.name.split('/').last(), } } else { #[cfg(feature = "zfs")] if ! device.name.starts_with('/'){ Some(device.name.as_str()) // use the whole zfs dataset name } else { device.name.split('/').last() } #[cfg(not(feature = "zfs"))] device.name.split('/').last() } } }; if let Some(checked_name) = checked_name { let io_device = { cfg_if::cfg_if! { if #[cfg(target_os = "macos")] { use once_cell::sync::Lazy; use regex::Regex; // Must trim one level further for macOS! static DISK_REGEX: Lazy = Lazy::new(|| Regex::new(r"disk\d+").unwrap()); if let Some(new_name) = DISK_REGEX.find(checked_name) { io.get(new_name.as_str()) } else { None } } else { io.get(checked_name) } } }; if let Some(io_device) = io_device { let (io_r_pt, io_w_pt) = if let Some(io) = io_device { (io.read_bytes, io.write_bytes) } else { (0, 0) }; if self.io_labels.len() <= itx { self.io_labels.push((String::default(), String::default())); } if self.io_labels_and_prev.len() <= itx { self.io_labels_and_prev.push(((0, 0), (io_r_pt, io_w_pt))); } if let Some((io_curr, io_prev)) = self.io_labels_and_prev.get_mut(itx) { let r_rate = ((io_r_pt.saturating_sub(io_prev.0)) as f64 / time_since_last_harvest) .round() as u64; let w_rate = ((io_w_pt.saturating_sub(io_prev.1)) as f64 / time_since_last_harvest) .round() as u64; *io_curr = (r_rate, w_rate); *io_prev = (io_r_pt, io_w_pt); if let Some(io_labels) = self.io_labels.get_mut(itx) { let converted_read = get_decimal_bytes(r_rate); let converted_write = get_decimal_bytes(w_rate); *io_labels = ( if r_rate >= GIGA_LIMIT { format!("{:.*}{}/s", 1, converted_read.0, converted_read.1) } else { format!("{:.*}{}/s", 0, converted_read.0, converted_read.1) }, if w_rate >= GIGA_LIMIT { format!("{:.*}{}/s", 1, converted_write.0, converted_write.1) } else { format!("{:.*}{}/s", 0, converted_write.0, converted_write.1) }, ); } } } else { if self.io_labels.len() <= itx { self.io_labels.push((String::default(), String::default())); } if let Some(io_labels) = self.io_labels.get_mut(itx) { *io_labels = ("N/A".to_string(), "N/A".to_string()); } } } } self.disk_harvest = disks; self.io_harvest = io; } fn eat_proc(&mut self, list_of_processes: Vec) { self.process_data.ingest(list_of_processes); } #[cfg(feature = "battery")] fn eat_battery(&mut self, list_of_batteries: Vec) { self.battery_harvest = list_of_batteries; } #[cfg(feature = "zfs")] fn eat_arc(&mut self, arc: memory::MemHarvest, new_entry: &mut TimedData) { new_entry.arc_data = arc.use_percent; self.arc_harvest = arc; } #[cfg(feature = "gpu")] fn eat_gpu(&mut self, gpu: Vec<(String, memory::MemHarvest)>, new_entry: &mut TimedData) { // Note this only pre-calculates the data points - the names will be // within the local copy of gpu_harvest. Since it's all sequential // it probably doesn't matter anyways. gpu.iter().for_each(|data| { new_entry.gpu_data.push(data.1.use_percent); }); self.gpu_harvest = gpu; } } bottom-0.9.6/src/app/data_harvester.rs000066400000000000000000000345351447252316700177700ustar00rootroot00000000000000//! This is the main file to house data collection functions. use std::time::{Duration, Instant}; #[cfg(target_os = "linux")] use hashbrown::HashMap; #[cfg(feature = "battery")] use starship_battery::{Battery, Manager}; use sysinfo::{System, SystemExt}; use self::temperature::TemperatureType; use super::DataFilters; use crate::app::layout_manager::UsedWidgets; #[cfg(feature = "nvidia")] pub mod nvidia; #[cfg(feature = "battery")] pub mod batteries; pub mod cpu; pub mod disks; pub mod memory; pub mod network; pub mod processes; pub mod temperature; #[derive(Clone, Debug)] pub struct Data { pub collection_time: Instant, pub cpu: Option, pub load_avg: Option, pub memory: Option, #[cfg(not(target_os = "windows"))] pub cache: Option, pub swap: Option, pub temperature_sensors: Option>, pub network: Option, pub list_of_processes: Option>, pub disks: Option>, pub io: Option, #[cfg(feature = "battery")] pub list_of_batteries: Option>, #[cfg(feature = "zfs")] pub arc: Option, #[cfg(feature = "gpu")] pub gpu: Option>, } impl Default for Data { fn default() -> Self { Data { collection_time: Instant::now(), cpu: None, load_avg: None, memory: None, #[cfg(not(target_os = "windows"))] cache: None, swap: None, temperature_sensors: None, list_of_processes: None, disks: None, io: None, network: None, #[cfg(feature = "battery")] list_of_batteries: None, #[cfg(feature = "zfs")] arc: None, #[cfg(feature = "gpu")] gpu: None, } } } impl Data { pub fn cleanup(&mut self) { self.io = None; self.temperature_sensors = None; self.list_of_processes = None; self.disks = None; self.memory = None; self.swap = None; self.cpu = None; self.load_avg = None; if let Some(network) = &mut self.network { network.first_run_cleanup(); } #[cfg(feature = "zfs")] { self.arc = None; } #[cfg(feature = "gpu")] { self.gpu = None; } } } #[derive(Debug)] pub struct DataCollector { pub data: Data, sys: System, temperature_type: TemperatureType, use_current_cpu_total: bool, unnormalized_cpu: bool, last_collection_time: Instant, total_rx: u64, total_tx: u64, show_average_cpu: bool, widgets_to_harvest: UsedWidgets, filters: DataFilters, #[cfg(target_os = "linux")] pid_mapping: HashMap, #[cfg(target_os = "linux")] prev_idle: f64, #[cfg(target_os = "linux")] prev_non_idle: f64, #[cfg(feature = "battery")] battery_manager: Option, #[cfg(feature = "battery")] battery_list: Option>, #[cfg(target_family = "unix")] user_table: self::processes::UserTable, } impl DataCollector { pub fn new(filters: DataFilters) -> Self { DataCollector { data: Data::default(), sys: System::new_with_specifics(sysinfo::RefreshKind::new()), #[cfg(target_os = "linux")] pid_mapping: HashMap::default(), #[cfg(target_os = "linux")] prev_idle: 0_f64, #[cfg(target_os = "linux")] prev_non_idle: 0_f64, temperature_type: TemperatureType::Celsius, use_current_cpu_total: false, unnormalized_cpu: false, last_collection_time: Instant::now(), total_rx: 0, total_tx: 0, show_average_cpu: false, widgets_to_harvest: UsedWidgets::default(), #[cfg(feature = "battery")] battery_manager: None, #[cfg(feature = "battery")] battery_list: None, filters, #[cfg(target_family = "unix")] user_table: Default::default(), } } pub fn init(&mut self) { #[cfg(feature = "battery")] { if self.widgets_to_harvest.use_battery { if let Ok(battery_manager) = Manager::new() { if let Ok(batteries) = battery_manager.batteries() { let battery_list: Vec = batteries.filter_map(Result::ok).collect(); if !battery_list.is_empty() { self.battery_list = Some(battery_list); self.battery_manager = Some(battery_manager); } } } } } // Sysinfo-related list refreshing. if self.widgets_to_harvest.use_net { self.sys.refresh_networks_list(); } if self.widgets_to_harvest.use_temp { self.sys.refresh_components_list(); } #[cfg(target_os = "windows")] { if self.widgets_to_harvest.use_proc { self.sys.refresh_users_list(); } if self.widgets_to_harvest.use_disk { self.sys.refresh_disks_list(); } } self.update_data(); // Sleep a few seconds to avoid potentially weird data. const SLEEP: Duration = get_sleep_duration(); std::thread::sleep(SLEEP); self.data.cleanup(); } pub fn set_data_collection(&mut self, used_widgets: UsedWidgets) { self.widgets_to_harvest = used_widgets; } pub fn set_temperature_type(&mut self, temperature_type: TemperatureType) { self.temperature_type = temperature_type; } pub fn set_use_current_cpu_total(&mut self, use_current_cpu_total: bool) { self.use_current_cpu_total = use_current_cpu_total; } pub fn set_unnormalized_cpu(&mut self, unnormalized_cpu: bool) { self.unnormalized_cpu = unnormalized_cpu; } pub fn set_show_average_cpu(&mut self, show_average_cpu: bool) { self.show_average_cpu = show_average_cpu; } /// Refresh sysinfo data. We use sysinfo for the following data: /// - CPU usage /// - Memory usage /// - Network usage /// - Processes (non-Linux) /// - Disk (Windows) /// - Temperatures (non-Linux) fn refresh_sysinfo_data(&mut self) { // Refresh once every minute. If it's too frequent it can cause segfaults. const LIST_REFRESH_TIME: Duration = Duration::from_secs(60); let refresh_start = Instant::now(); if self.widgets_to_harvest.use_cpu || self.widgets_to_harvest.use_proc { self.sys.refresh_cpu(); } if self.widgets_to_harvest.use_mem || self.widgets_to_harvest.use_proc { self.sys.refresh_memory(); } if self.widgets_to_harvest.use_net { if refresh_start.duration_since(self.last_collection_time) > LIST_REFRESH_TIME { self.sys.refresh_networks_list(); } self.sys.refresh_networks(); } // sysinfo is used on non-Linux systems for the following: // - Processes (users list as well for Windows) // - Disks (Windows only) // - Temperatures and temperature components list. #[cfg(not(target_os = "linux"))] { if self.widgets_to_harvest.use_proc { // For Windows, sysinfo also handles the users list. #[cfg(target_os = "windows")] if refresh_start.duration_since(self.last_collection_time) > LIST_REFRESH_TIME { self.sys.refresh_users_list(); } self.sys.refresh_processes(); } if self.widgets_to_harvest.use_temp { if refresh_start.duration_since(self.last_collection_time) > LIST_REFRESH_TIME { self.sys.refresh_components_list(); } self.sys.refresh_components(); } } #[cfg(target_os = "windows")] if self.widgets_to_harvest.use_disk { if refresh_start.duration_since(self.last_collection_time) > LIST_REFRESH_TIME { self.sys.refresh_disks_list(); } self.sys.refresh_disks(); } } pub fn update_data(&mut self) { self.refresh_sysinfo_data(); self.data.collection_time = Instant::now(); self.update_cpu_usage(); self.update_memory_usage(); self.update_processes(); self.update_temps(); self.update_network_usage(); self.update_disks(); #[cfg(feature = "battery")] self.update_batteries(); // Update times for future reference. self.last_collection_time = self.data.collection_time; } #[inline] fn update_cpu_usage(&mut self) { if self.widgets_to_harvest.use_cpu { self.data.cpu = cpu::get_cpu_data_list(&self.sys, self.show_average_cpu).ok(); #[cfg(target_family = "unix")] { self.data.load_avg = cpu::get_load_avg().ok(); } } } #[inline] fn update_processes(&mut self) { if self.widgets_to_harvest.use_proc { if let Ok(mut process_list) = self.get_processes() { // NB: To avoid duplicate sorts on rerenders/events, we sort the processes by PID here. // We also want to avoid re-sorting *again* later on if we're sorting by PID, since we already // did it here! process_list.sort_unstable_by_key(|p| p.pid); self.data.list_of_processes = Some(process_list); } } } #[inline] fn update_temps(&mut self) { if self.widgets_to_harvest.use_temp { #[cfg(not(target_os = "linux"))] if let Ok(data) = temperature::get_temperature_data( &self.sys, &self.temperature_type, &self.filters.temp_filter, ) { self.data.temperature_sensors = data; } #[cfg(target_os = "linux")] if let Ok(data) = temperature::get_temperature_data(&self.temperature_type, &self.filters.temp_filter) { self.data.temperature_sensors = data; } } } #[inline] fn update_memory_usage(&mut self) { if self.widgets_to_harvest.use_mem { self.data.memory = memory::get_ram_usage(&self.sys); #[cfg(not(target_os = "windows"))] if self.widgets_to_harvest.use_cache { self.data.cache = memory::get_cache_usage(&self.sys); } self.data.swap = memory::get_swap_usage( #[cfg(not(target_os = "windows"))] &self.sys, ); #[cfg(feature = "zfs")] { self.data.arc = memory::arc::get_arc_usage(); } #[cfg(feature = "gpu")] if self.widgets_to_harvest.use_gpu { self.data.gpu = memory::gpu::get_gpu_mem_usage(); } } } #[inline] fn update_network_usage(&mut self) { let current_instant = self.data.collection_time; if self.widgets_to_harvest.use_net { let net_data = network::get_network_data( &self.sys, self.last_collection_time, &mut self.total_rx, &mut self.total_tx, current_instant, &self.filters.net_filter, ); self.total_rx = net_data.total_rx; self.total_tx = net_data.total_tx; self.data.network = Some(net_data); } } #[inline] #[cfg(feature = "battery")] fn update_batteries(&mut self) { if let Some(battery_manager) = &self.battery_manager { if let Some(battery_list) = &mut self.battery_list { self.data.list_of_batteries = Some(batteries::refresh_batteries(battery_manager, battery_list)); } } } #[inline] fn update_disks(&mut self) { if self.widgets_to_harvest.use_disk { self.data.disks = disks::get_disk_usage(self).ok(); self.data.io = disks::get_io_usage().ok(); } } /// Returns the total memory of the system. #[inline] fn total_memory(&self) -> u64 { if let Some(memory) = &self.data.memory { memory.total_bytes } else { self.sys.total_memory() } } } /// We set a sleep duration between 10ms and 250ms, ideally sysinfo's [`System::MINIMUM_CPU_UPDATE_INTERVAL`] + 1. /// /// We bound the upper end to avoid waiting too long (e.g. FreeBSD is 1s, which I'm fine with losing /// accuracy on for the first refresh), and we bound the lower end just to avoid the off-chance that /// refreshing too quickly causes problems. This second case should only happen on unsupported /// systems via sysinfo, in which case [`System::MINIMUM_CPU_UPDATE_INTERVAL`] is defined as 0. /// /// We also do `INTERVAL + 1` for some wiggle room, just in case. const fn get_sleep_duration() -> Duration { const MIN_SLEEP: u64 = 10; const MAX_SLEEP: u64 = 250; const INTERVAL: u64 = System::MINIMUM_CPU_UPDATE_INTERVAL.as_millis() as u64; if INTERVAL < MIN_SLEEP { Duration::from_millis(MIN_SLEEP) } else if INTERVAL > MAX_SLEEP { Duration::from_millis(MAX_SLEEP) } else { Duration::from_millis(INTERVAL + 1) } } #[cfg(target_os = "freebsd")] /// Deserialize [libxo](https://www.freebsd.org/cgi/man.cgi?query=libxo&apropos=0&sektion=0&manpath=FreeBSD+13.1-RELEASE+and+Ports&arch=default&format=html) JSON data fn deserialize_xo(key: &str, data: &[u8]) -> Result where T: serde::de::DeserializeOwned, { let mut value: serde_json::Value = serde_json::from_slice(data)?; value .as_object_mut() .and_then(|map| map.remove(key)) .ok_or_else(|| std::io::Error::new(std::io::ErrorKind::Other, "key not found")) .and_then(|val| serde_json::from_value(val).map_err(|err| err.into())) } bottom-0.9.6/src/app/data_harvester/000077500000000000000000000000001447252316700174105ustar00rootroot00000000000000bottom-0.9.6/src/app/data_harvester/batteries.rs000066400000000000000000000005701447252316700217420ustar00rootroot00000000000000//! Data collection for batteries. //! //! For Linux, macOS, Windows, FreeBSD, Dragonfly, and iOS, this is handled by the battery crate. cfg_if::cfg_if! { if #[cfg(any(target_os = "windows", target_os = "macos", target_os = "linux", target_os = "freebsd", target_os = "dragonfly", target_os = "ios"))] { pub mod battery; pub use self::battery::*; } } bottom-0.9.6/src/app/data_harvester/batteries/000077500000000000000000000000001447252316700213725ustar00rootroot00000000000000bottom-0.9.6/src/app/data_harvester/batteries/battery.rs000066400000000000000000000033721447252316700234170ustar00rootroot00000000000000//! Uses the battery crate from svartalf. //! Covers battery usage for: //! - Linux 2.6.39+ //! - MacOS 10.10+ //! - iOS //! - Windows 7+ //! - FreeBSD //! - DragonFlyBSD //! //! For more information, refer to the [starship_battery](https://github.com/starship/rust-battery) repo/docs. use starship_battery::{ units::{power::watt, ratio::percent, time::second}, Battery, Manager, State, }; #[derive(Debug, Clone)] pub struct BatteryHarvest { pub charge_percent: f64, pub secs_until_full: Option, pub secs_until_empty: Option, pub power_consumption_rate_watts: f64, pub health_percent: f64, pub state: State, } pub fn refresh_batteries(manager: &Manager, batteries: &mut [Battery]) -> Vec { batteries .iter_mut() .filter_map(|battery| { if manager.refresh(battery).is_ok() { Some(BatteryHarvest { secs_until_full: { let optional_time = battery.time_to_full(); optional_time.map(|time| f64::from(time.get::()) as i64) }, secs_until_empty: { let optional_time = battery.time_to_empty(); optional_time.map(|time| f64::from(time.get::()) as i64) }, charge_percent: f64::from(battery.state_of_charge().get::()), power_consumption_rate_watts: f64::from(battery.energy_rate().get::()), health_percent: f64::from(battery.state_of_health().get::()), state: battery.state(), }) } else { None } }) .collect::>() } bottom-0.9.6/src/app/data_harvester/cpu.rs000066400000000000000000000011211447252316700205400ustar00rootroot00000000000000//! Data collection for CPU usage and load average. //! //! For CPU usage, Linux, macOS, and Windows are handled by Heim, FreeBSD by sysinfo. //! //! For load average, macOS and Linux are supported through Heim, FreeBSD by sysinfo. pub mod sysinfo; pub use self::sysinfo::*; pub type LoadAvgHarvest = [f32; 3]; #[derive(Debug, Clone, Copy)] pub enum CpuDataType { Avg, Cpu(usize), } #[derive(Debug, Clone)] pub struct CpuData { pub data_type: CpuDataType, pub cpu_usage: f64, } pub type CpuHarvest = Vec; pub type PastCpuWork = f64; pub type PastCpuTotal = f64; bottom-0.9.6/src/app/data_harvester/cpu/000077500000000000000000000000001447252316700201775ustar00rootroot00000000000000bottom-0.9.6/src/app/data_harvester/cpu/sysinfo.rs000066400000000000000000000020441447252316700222370ustar00rootroot00000000000000//! CPU stats through sysinfo. //! Supports FreeBSD. use std::collections::VecDeque; use sysinfo::{CpuExt, LoadAvg, System, SystemExt}; use super::{CpuData, CpuDataType, CpuHarvest}; use crate::app::data_harvester::cpu::LoadAvgHarvest; pub fn get_cpu_data_list( sys: &sysinfo::System, show_average_cpu: bool, ) -> crate::error::Result { let mut cpu_deque: VecDeque<_> = sys .cpus() .iter() .enumerate() .map(|(i, cpu)| CpuData { data_type: CpuDataType::Cpu(i), cpu_usage: cpu.cpu_usage() as f64, }) .collect(); if show_average_cpu { let cpu = sys.global_cpu_info(); cpu_deque.push_front(CpuData { data_type: CpuDataType::Avg, cpu_usage: cpu.cpu_usage() as f64, }) } Ok(Vec::from(cpu_deque)) } pub fn get_load_avg() -> crate::error::Result { let sys = System::new(); let LoadAvg { one, five, fifteen } = sys.load_average(); Ok([one as f32, five as f32, fifteen as f32]) } bottom-0.9.6/src/app/data_harvester/disks.rs000066400000000000000000000137431447252316700211030ustar00rootroot00000000000000//! Data collection about disks (e.g. I/O, usage, space). use cfg_if::cfg_if; use hashbrown::HashMap; use crate::app::filter::Filter; cfg_if! { if #[cfg(target_os = "freebsd")] { mod freebsd; #[cfg(feature = "zfs")] mod io_counters; #[cfg(feature = "zfs")] mod zfs_io_counters; #[cfg(feature = "zfs")] pub use io_counters::IoCounters; pub(crate) use self::freebsd::*; } else if #[cfg(target_os = "windows")] { mod windows; pub(crate) use self::windows::*; } else if #[cfg(target_os = "linux")] { mod unix; #[cfg(feature = "zfs")] mod zfs_io_counters; pub(crate) use self::unix::*; } else if #[cfg(target_os = "macos")] { mod unix; pub(crate) use self::unix::*; } else { mod other; pub(crate) use self::other::*; } } #[derive(Clone, Debug, Default)] pub struct DiskHarvest { pub name: String, pub mount_point: String, /// Windows also contains an additional volume name field. #[cfg(target_os = "windows")] pub volume_name: Option, // TODO: Maybe unify all these? pub free_space: Option, pub used_space: Option, pub total_space: Option, } #[derive(Clone, Debug)] pub struct IoData { pub read_bytes: u64, pub write_bytes: u64, } pub type IoHarvest = HashMap>; cfg_if! { if #[cfg(any(target_os = "linux", target_os = "macos", target_os = "windows"))] { mod io_counters; pub use io_counters::IoCounters; /// Returns the I/O usage of certain mount points. pub fn get_io_usage() -> anyhow::Result { let mut io_hash: HashMap> = HashMap::new(); // TODO: Maybe rewrite this to not do a result of vec of result... for io in io_stats()?.into_iter() { let mount_point = io.device_name().to_string_lossy(); io_hash.insert( mount_point.to_string(), Some(IoData { read_bytes: io.read_bytes(), write_bytes: io.write_bytes(), }), ); } Ok(io_hash) } } else if #[cfg(not(target_os = "freebsd"))] { pub fn get_io_usage() -> anyhow::Result { anyhow::bail!("Unsupported OS"); } } } /// Whether to keep the current disk entry given the filters, disk name, and disk mount. /// Precedence ordering in the case where name and mount filters disagree, "allow" /// takes precedence over "deny". /// /// For implementation, we do this as follows: /// /// 1. Is the entry allowed through any filter? That is, does it match an entry in a /// filter where `is_list_ignored` is `false`? If so, we always keep this entry. /// 2. Is the entry denied through any filter? That is, does it match an entry in a /// filter where `is_list_ignored` is `true`? If so, we always deny this entry. /// 3. Anything else is allowed. pub fn keep_disk_entry( disk_name: &str, mount_point: &str, disk_filter: &Option, mount_filter: &Option, ) -> bool { match (disk_filter, mount_filter) { (Some(d), Some(m)) => match (d.is_list_ignored, m.is_list_ignored) { (true, true) => !(d.has_match(disk_name) || m.has_match(mount_point)), (true, false) => { if m.has_match(mount_point) { true } else { d.keep_entry(disk_name) } } (false, true) => { if d.has_match(disk_name) { true } else { m.keep_entry(mount_point) } } (false, false) => d.has_match(disk_name) || m.has_match(mount_point), }, (Some(d), None) => d.keep_entry(disk_name), (None, Some(m)) => m.keep_entry(mount_point), (None, None) => true, } } #[cfg(test)] mod test { use regex::Regex; use super::keep_disk_entry; use crate::app::filter::Filter; fn run_filter(disk_filter: &Option, mount_filter: &Option) -> Vec { let targets = [ ("/dev/nvme0n1p1", "/boot"), ("/dev/nvme0n1p2", "/"), ("/dev/nvme0n1p3", "/home"), ("/dev/sda1", "/mnt/test"), ("/dev/sda2", "/mnt/boot"), ]; targets .into_iter() .enumerate() .filter_map(|(itx, (name, mount))| { if keep_disk_entry(name, mount, disk_filter, mount_filter) { Some(itx) } else { None } }) .collect() } #[test] fn test_keeping_disk_entry() { let disk_ignore = Some(Filter { is_list_ignored: true, list: vec![Regex::new("nvme").unwrap()], }); let disk_keep = Some(Filter { is_list_ignored: false, list: vec![Regex::new("nvme").unwrap()], }); let mount_ignore = Some(Filter { is_list_ignored: true, list: vec![Regex::new("boot").unwrap()], }); let mount_keep = Some(Filter { is_list_ignored: false, list: vec![Regex::new("boot").unwrap()], }); assert_eq!(run_filter(&None, &None), vec![0, 1, 2, 3, 4]); assert_eq!(run_filter(&disk_ignore, &None), vec![3, 4]); assert_eq!(run_filter(&disk_keep, &None), vec![0, 1, 2]); assert_eq!(run_filter(&None, &mount_ignore), vec![1, 2, 3]); assert_eq!(run_filter(&None, &mount_keep), vec![0, 4]); assert_eq!(run_filter(&disk_ignore, &mount_ignore), vec![3]); assert_eq!(run_filter(&disk_keep, &mount_ignore), vec![0, 1, 2, 3]); assert_eq!(run_filter(&disk_ignore, &mount_keep), vec![0, 3, 4]); assert_eq!(run_filter(&disk_keep, &mount_keep), vec![0, 1, 2, 4]); } } bottom-0.9.6/src/app/data_harvester/disks/000077500000000000000000000000001447252316700205255ustar00rootroot00000000000000bottom-0.9.6/src/app/data_harvester/disks/freebsd.rs000066400000000000000000000057361447252316700225200ustar00rootroot00000000000000//! Disk stats for FreeBSD. use std::io; use serde::Deserialize; use super::{keep_disk_entry, DiskHarvest, IoHarvest}; use crate::{ app::data_harvester::DataCollector, data_harvester::deserialize_xo, data_harvester::disks::IoData, utils::error, }; use hashbrown::HashMap; #[derive(Deserialize, Debug, Default)] #[serde(rename_all = "kebab-case")] struct StorageSystemInformation { filesystem: Vec, } #[derive(Deserialize, Debug)] #[serde(rename_all = "kebab-case")] struct FileSystem { name: String, total_blocks: u64, used_blocks: u64, available_blocks: u64, mounted_on: String, } pub fn get_io_usage() -> error::Result { // TODO: Should this (and other I/O collectors) fail fast? In general, should collection ever fail fast? #[allow(unused_mut)] let mut io_harvest: HashMap> = get_disk_info().map(|storage_system_information| { storage_system_information .filesystem .into_iter() .map(|disk| (disk.name, None)) .collect() })?; #[cfg(feature = "zfs")] { use crate::app::data_harvester::disks::zfs_io_counters; if let Ok(zfs_io) = zfs_io_counters::zfs_io_stats() { for io in zfs_io.into_iter() { let mount_point = io.device_name().to_string_lossy(); io_harvest.insert( mount_point.to_string(), Some(IoData { read_bytes: io.read_bytes(), write_bytes: io.write_bytes(), }), ); } } } Ok(io_harvest) } pub fn get_disk_usage(collector: &DataCollector) -> error::Result> { let disk_filter = &collector.filters.disk_filter; let mount_filter = &collector.filters.mount_filter; let vec_disks: Vec = get_disk_info().map(|storage_system_information| { storage_system_information .filesystem .into_iter() .filter_map(|disk| { if keep_disk_entry(&disk.name, &disk.mounted_on, disk_filter, mount_filter) { Some(DiskHarvest { free_space: Some(disk.available_blocks * 1024), used_space: Some(disk.used_blocks * 1024), total_space: Some(disk.total_blocks * 1024), mount_point: disk.mounted_on, name: disk.name, }) } else { None } }) .collect() })?; Ok(vec_disks) } fn get_disk_info() -> io::Result { // TODO: Ideally we don't have to shell out to a new program. let output = std::process::Command::new("df") .args(["--libxo", "json", "-k", "-t", "ufs,msdosfs,zfs"]) .output()?; deserialize_xo("storage-system-information", &output.stdout) } bottom-0.9.6/src/app/data_harvester/disks/io_counters.rs000066400000000000000000000010711447252316700234230ustar00rootroot00000000000000use std::ffi::OsStr; #[derive(Debug, Default)] pub struct IoCounters { name: String, read_bytes: u64, write_bytes: u64, } impl IoCounters { pub fn new(name: String, read_bytes: u64, write_bytes: u64) -> Self { Self { name, read_bytes, write_bytes, } } pub(crate) fn device_name(&self) -> &OsStr { OsStr::new(&self.name) } pub(crate) fn read_bytes(&self) -> u64 { self.read_bytes } pub(crate) fn write_bytes(&self) -> u64 { self.write_bytes } } bottom-0.9.6/src/app/data_harvester/disks/other.rs000066400000000000000000000031771447252316700222240ustar00rootroot00000000000000//! Fallback disk info using sysinfo. use sysinfo::{DiskExt, SystemExt}; use crate::app::data_harvester::DataCollector; use super::{keep_disk_entry, DiskHarvest}; pub(crate) fn get_disk_usage(collector: &DataCollector) -> anyhow::Result> { let disks = collector.sys.disks(); let disk_filter = &collector.filters.disk_filter; let mount_filter = &collector.filters.mount_filter; Ok(disks .iter() .filter_map(|disk| { let name = { let name = disk.name(); if name.is_empty() { "No Name".to_string() } else { name.to_os_string() .into_string() .unwrap_or_else(|_| "Name Unavailable".to_string()) } }; let mount_point = disk .mount_point() .as_os_str() .to_os_string() .into_string() .unwrap_or_else(|_| "Mount Unavailable".to_string()); if keep_disk_entry(&name, &mount_point, disk_filter, mount_filter) { let free_space = disk.available_space(); let total_space = disk.total_space(); let used_space = total_space - free_space; Some(DiskHarvest { name, mount_point, free_space: Some(free_space), used_space: Some(used_space), total_space: Some(total_space), }) } else { None } }) .collect()) } bottom-0.9.6/src/app/data_harvester/disks/unix.rs000066400000000000000000000050471447252316700220640ustar00rootroot00000000000000//! Disk stats for Unix-like systems that aren't supported through other means. Officially, //! for now, this means Linux and macOS. mod file_systems; use file_systems::*; mod usage; use usage::*; cfg_if::cfg_if! { if #[cfg(target_os = "linux")] { mod linux; pub use linux::*; } else if #[cfg(target_os = "macos")] { mod other; use other::*; mod macos; pub use macos::*; } else { mod other; use other::*; } } use super::{keep_disk_entry, DiskHarvest}; use crate::app::data_harvester::DataCollector; /// Returns the disk usage of the mounted (and for now, physical) disks. pub fn get_disk_usage(collector: &DataCollector) -> anyhow::Result> { let disk_filter = &collector.filters.disk_filter; let mount_filter = &collector.filters.mount_filter; let mut vec_disks: Vec = Vec::new(); for partition in physical_partitions()? { let name = partition.get_device_name(); let mount_point = partition.mount_point().to_string_lossy().to_string(); // Precedence ordering in the case where name and mount filters disagree, "allow" takes precedence over "deny". // // For implementation, we do this as follows: // 1. Is the entry allowed through any filter? That is, does it match an entry in a filter where `is_list_ignored` is `false`? If so, we always keep this entry. // 2. Is the entry denied through any filter? That is, does it match an entry in a filter where `is_list_ignored` is `true`? If so, we always deny this entry. // 3. Anything else is allowed. if keep_disk_entry(&name, &mount_point, disk_filter, mount_filter) { // The usage line can fail in some cases (for example, if you use Void Linux + LUKS, // see https://github.com/ClementTsang/bottom/issues/419 for details). if let Ok(usage) = partition.usage() { let total = usage.total(); vec_disks.push(DiskHarvest { free_space: Some(usage.free()), used_space: Some(total - usage.available()), total_space: Some(total), mount_point, name, }); } else { vec_disks.push(DiskHarvest { free_space: None, used_space: None, total_space: None, mount_point, name, }); } } } Ok(vec_disks) } bottom-0.9.6/src/app/data_harvester/disks/unix/000077500000000000000000000000001447252316700215105ustar00rootroot00000000000000bottom-0.9.6/src/app/data_harvester/disks/unix/file_systems.rs000066400000000000000000000111451447252316700245660ustar00rootroot00000000000000use std::str::FromStr; /// Known filesystems. From [heim](https://github.com/heim-rs/heim/blob/master/heim-disk/src/filesystem.rs). /// /// All physical filesystems should have their own enum element and all virtual filesystems will go into /// the [`FileSystem::Other`] element. #[derive(Debug, Eq, PartialEq, Hash, Clone)] #[non_exhaustive] pub enum FileSystem { /// ext2 (https://en.wikipedia.org/wiki/Ext2) Ext2, /// ext3 (https://en.wikipedia.org/wiki/Ext3) Ext3, /// ext4 (https://en.wikipedia.org/wiki/Ext4) Ext4, /// FAT (https://en.wikipedia.org/wiki/File_Allocation_Table) VFat, /// exFAT (https://en.wikipedia.org/wiki/ExFAT) ExFat, /// F2FS (https://en.wikipedia.org/wiki/F2FS) F2fs, /// NTFS (https://en.wikipedia.org/wiki/NTFS) Ntfs, /// ZFS (https://en.wikipedia.org/wiki/ZFS) Zfs, /// HFS (https://en.wikipedia.org/wiki/Hierarchical_File_System) Hfs, /// HFS+ (https://en.wikipedia.org/wiki/HFS_Plus) HfsPlus, /// JFS (https://en.wikipedia.org/wiki/JFS_(file_system)) Jfs, /// ReiserFS 3 (https://en.wikipedia.org/wiki/ReiserFS) Reiser3, /// ReiserFS 4 (https://en.wikipedia.org/wiki/Reiser4) Reiser4, /// Btrfs (https://en.wikipedia.org/wiki/Btrfs) Btrfs, /// MINIX FS (https://en.wikipedia.org/wiki/MINIX_file_system) Minix, /// NILFS (https://en.wikipedia.org/wiki/NILFS) Nilfs, /// XFS (https://en.wikipedia.org/wiki/XFS) Xfs, /// APFS (https://en.wikipedia.org/wiki/Apple_File_System) Apfs, /// FUSE (https://en.wikipedia.org/wiki/Filesystem_in_Userspace) FuseBlk, /// Some unspecified filesystem. Other(String), } impl FileSystem { /// Checks if filesystem is used for a physical devices. #[inline] pub fn is_physical(&self) -> bool { !self.is_virtual() } /// Checks if filesystem is used for a virtual devices (such as `tmpfs` or `smb` mounts). #[inline] pub fn is_virtual(&self) -> bool { matches!(self, FileSystem::Other(..)) } #[allow(dead_code)] /// Returns a string identifying this filesystem. pub fn as_str(&self) -> &str { match self { FileSystem::Ext2 => "ext2", FileSystem::Ext3 => "ext3", FileSystem::Ext4 => "ext4", FileSystem::VFat => "vfat", FileSystem::Ntfs => "ntfs", FileSystem::Zfs => "zfs", FileSystem::Hfs => "hfs", FileSystem::Reiser3 => "reiserfs", FileSystem::Reiser4 => "reiser4", FileSystem::FuseBlk => "fuseblk", FileSystem::ExFat => "exfat", FileSystem::F2fs => "f2fs", FileSystem::HfsPlus => "hfs+", FileSystem::Jfs => "jfs", FileSystem::Btrfs => "btrfs", FileSystem::Minix => "minix", FileSystem::Nilfs => "nilfs", FileSystem::Xfs => "xfs", FileSystem::Apfs => "apfs", FileSystem::Other(string) => string.as_str(), } } } impl FromStr for FileSystem { type Err = anyhow::Error; fn from_str(s: &str) -> anyhow::Result { match () { _ if s.eq_ignore_ascii_case("ext2") => Ok(FileSystem::Ext2), _ if s.eq_ignore_ascii_case("ext3") => Ok(FileSystem::Ext3), _ if s.eq_ignore_ascii_case("ext4") => Ok(FileSystem::Ext4), _ if s.eq_ignore_ascii_case("vfat") => Ok(FileSystem::VFat), _ if s == "ntfs3" || s.eq_ignore_ascii_case("ntfs") => Ok(FileSystem::Ntfs), _ if s.eq_ignore_ascii_case("zfs") => Ok(FileSystem::Zfs), _ if s.eq_ignore_ascii_case("hfs") => Ok(FileSystem::Hfs), _ if s.eq_ignore_ascii_case("reiserfs") => Ok(FileSystem::Reiser3), _ if s.eq_ignore_ascii_case("reiser4") => Ok(FileSystem::Reiser4), _ if s.eq_ignore_ascii_case("exfat") => Ok(FileSystem::ExFat), _ if s.eq_ignore_ascii_case("f2fs") => Ok(FileSystem::F2fs), _ if s.eq_ignore_ascii_case("hfsplus") => Ok(FileSystem::HfsPlus), _ if s.eq_ignore_ascii_case("jfs") => Ok(FileSystem::Jfs), _ if s.eq_ignore_ascii_case("btrfs") => Ok(FileSystem::Btrfs), _ if s.eq_ignore_ascii_case("minix") => Ok(FileSystem::Minix), _ if s.eq_ignore_ascii_case("nilfs") => Ok(FileSystem::Nilfs), _ if s.eq_ignore_ascii_case("xfs") => Ok(FileSystem::Xfs), _ if s.eq_ignore_ascii_case("apfs") => Ok(FileSystem::Apfs), _ if s.eq_ignore_ascii_case("fuseblk") => Ok(FileSystem::FuseBlk), _ => Ok(FileSystem::Other(s.to_string())), } } } bottom-0.9.6/src/app/data_harvester/disks/unix/linux/000077500000000000000000000000001447252316700226475ustar00rootroot00000000000000bottom-0.9.6/src/app/data_harvester/disks/unix/linux/counters.rs000066400000000000000000000065231447252316700250650ustar00rootroot00000000000000//! Based on [heim's implementation](https://github.com/heim-rs/heim/blob/master/heim-disk/src/sys/linux/counters.rs). use std::{ fs::File, io::{self, BufRead, BufReader}, num::ParseIntError, str::FromStr, }; use crate::app::data_harvester::disks::IoCounters; /// Copied from the `psutil` sources: /// /// "man iostat" states that sectors are equivalent with blocks and have /// a size of 512 bytes. Despite this value can be queried at runtime /// via /sys/block/{DISK}/queue/hw_sector_size and results may vary /// between 1k, 2k, or 4k... 512 appears to be a magic constant used /// throughout Linux source code: /// * /// * /// * /// * /// * const DISK_SECTOR_SIZE: u64 = 512; impl FromStr for IoCounters { type Err = anyhow::Error; /// Converts a `&str` to an [`IoCounters`]. /// /// Follows the format used in Linux 2.6+. Note that this completely ignores the following stats: /// - Discard stats from 4.18+ /// - Flush stats from 5.5+ /// /// /// fn from_str(s: &str) -> anyhow::Result { fn next_part<'a>(iter: &mut impl Iterator) -> Result<&'a str, io::Error> { iter.next() .ok_or_else(|| io::Error::from(io::ErrorKind::InvalidData)) } fn next_part_to_u64<'a>(iter: &mut impl Iterator) -> anyhow::Result { next_part(iter)? .parse() .map_err(|err: ParseIntError| err.into()) } // Skip the major and minor numbers. let mut parts = s.split_whitespace().skip(2); let name = next_part(&mut parts)?.to_string(); // Skip read count, read merged count. let mut parts = parts.skip(2); let read_bytes = next_part_to_u64(&mut parts)? * DISK_SECTOR_SIZE; // Skip read time seconds, write count, and write merged count. let mut parts = parts.skip(3); let write_bytes = next_part_to_u64(&mut parts)? * DISK_SECTOR_SIZE; Ok(IoCounters::new(name, read_bytes, write_bytes)) } } /// Returns an iterator of disk I/O stats. Pulls data from `/proc/diskstats`. pub fn io_stats() -> anyhow::Result> { const PROC_DISKSTATS: &str = "/proc/diskstats"; let mut results = vec![]; let mut reader = BufReader::new(File::open(PROC_DISKSTATS)?); let mut line = String::new(); // This saves us from doing a string allocation on each iteration compared to `lines()`. while let Ok(bytes) = reader.read_line(&mut line) { if bytes > 0 { if let Ok(counters) = IoCounters::from_str(&line) { results.push(counters); } line.clear(); } else { break; } } #[cfg(feature = "zfs")] { use crate::app::data_harvester::disks::zfs_io_counters; if let Ok(mut zfs_io) = zfs_io_counters::zfs_io_stats() { results.append(&mut zfs_io); } } Ok(results) } bottom-0.9.6/src/app/data_harvester/disks/unix/linux/mod.rs000066400000000000000000000001201447252316700237650ustar00rootroot00000000000000mod partition; pub(crate) use partition::*; mod counters; pub use counters::*; bottom-0.9.6/src/app/data_harvester/disks/unix/linux/partition.rs000066400000000000000000000140661447252316700252350ustar00rootroot00000000000000//! Implementation based on [heim's](https://github.com/heim-rs/heim) //! Unix disk usage. use std::{ ffi::CString, fs::File, io::{self, BufRead, BufReader}, mem, path::{Path, PathBuf}, str::FromStr, }; use anyhow::bail; use crate::app::data_harvester::disks::unix::{FileSystem, Usage}; /// Representation of partition details. Based on [`heim`](https://github.com/heim-rs/heim/tree/master). pub(crate) struct Partition { device: Option, mount_point: PathBuf, fs_type: FileSystem, } impl Partition { /// Returns the device name, if there is one. #[inline] pub fn device(&self) -> Option<&str> { self.device.as_deref() } /// Returns the mount point for this partition. #[inline] pub fn mount_point(&self) -> &Path { self.mount_point.as_path() } /// Returns the [`FileSystem`] of this partition. #[inline] pub fn fs_type(&self) -> &FileSystem { &self.fs_type } /// Returns the device name for the partition. pub fn get_device_name(&self) -> String { if let Some(device) = self.device() { // See if this disk is actually mounted elsewhere on Linux. This is a workaround properly map I/O // in some cases (i.e. disk encryption, https://github.com/ClementTsang/bottom/issues/419). if let Ok(path) = std::fs::read_link(device) { if path.is_absolute() { path.into_os_string() .into_string() .unwrap_or_else(|_| "Name Unavailable".to_string()) } else { let mut combined_path = std::path::PathBuf::new(); combined_path.push(device); combined_path.pop(); // Pop the current file... combined_path.push(path); if let Ok(canon_path) = std::fs::canonicalize(combined_path) { // Resolve the local path into an absolute one... canon_path .into_os_string() .into_string() .unwrap_or_else(|_| "Name Unavailable".to_string()) } else { device.to_owned() } } } else { device.to_owned() } } else { "Name Unavailable".to_string() } } /// Returns the usage stats for this partition. pub fn usage(&self) -> anyhow::Result { let path = self .mount_point .to_str() .ok_or_else(|| io::Error::from(io::ErrorKind::InvalidInput)) .and_then(|string| { CString::new(string).map_err(|_| io::Error::from(io::ErrorKind::InvalidInput)) }) .map_err(|e| anyhow::anyhow!("invalid path: {e:?}"))?; let mut vfs = mem::MaybeUninit::::uninit(); // SAFETY: libc call, `path` is a valid C string and buf is a valid pointer to write to. let result = unsafe { libc::statvfs(path.as_ptr(), vfs.as_mut_ptr()) }; if result == 0 { // SAFETY: If result is 0, it succeeded, and vfs should be non-null. let vfs = unsafe { vfs.assume_init() }; Ok(Usage::new(vfs)) } else { Err(anyhow::anyhow!( "statvfs had an issue getting info from {path:?}" )) } } } impl FromStr for Partition { type Err = anyhow::Error; fn from_str(line: &str) -> anyhow::Result { // Example: `/dev/sda3 /home ext4 rw,relatime,data=ordered 0 0` let mut parts = line.splitn(5, ' '); let device = match parts.next() { Some(device) if device == "none" => None, Some(device) => Some(device.to_string()), None => { bail!("missing device"); } }; let mount_point = match parts.next() { Some(point) => PathBuf::from(point), None => { bail!("missing mount point"); } }; let fs_type = match parts.next() { Some(fs) => FileSystem::from_str(fs)?, _ => { bail!("missing filesystem type"); } }; // let options = match parts.next() { // Some(opts) => opts.to_string(), // None => { // bail!("missing options"); // } // }; Ok(Partition { device, mount_point, fs_type, }) } } #[allow(dead_code)] /// Returns a [`Vec`] containing all partitions. pub(crate) fn partitions() -> anyhow::Result> { const PROC_MOUNTS: &str = "/proc/mounts"; let mut results = vec![]; let mut reader = BufReader::new(File::open(PROC_MOUNTS)?); let mut line = String::new(); // This saves us from doing a string allocation on each iteration compared to `lines()`. while let Ok(bytes) = reader.read_line(&mut line) { if bytes > 0 { if let Ok(partition) = Partition::from_str(&line) { results.push(partition); } line.clear(); } else { break; } } Ok(results) } /// Returns a [`Vec`] containing all *physical* partitions. This is defined by /// [`FileSystem::is_physical()`]. pub(crate) fn physical_partitions() -> anyhow::Result> { const PROC_MOUNTS: &str = "/proc/mounts"; let mut results = vec![]; let mut reader = BufReader::new(File::open(PROC_MOUNTS)?); let mut line = String::new(); // This saves us from doing a string allocation on each iteration compared to `lines()`. while let Ok(bytes) = reader.read_line(&mut line) { if bytes > 0 { if let Ok(partition) = Partition::from_str(&line) { if partition.fs_type().is_physical() { results.push(partition); } } line.clear(); } else { break; } } Ok(results) } bottom-0.9.6/src/app/data_harvester/disks/unix/macos/000077500000000000000000000000001447252316700226125ustar00rootroot00000000000000bottom-0.9.6/src/app/data_harvester/disks/unix/macos/counters.rs000066400000000000000000000044301447252316700250230ustar00rootroot00000000000000//! Based on [heim's implementation](https://github.com/heim-rs/heim/blob/master/heim-disk/src/sys/macos/counters.rs). use super::io_kit::{self, get_dict, get_disks, get_i64, get_string}; use crate::app::data_harvester::disks::IoCounters; fn get_device_io(device: io_kit::IoObject) -> anyhow::Result { let parent = device.service_parent()?; // XXX: Re: Conform check being disabled. // // Okay, so this is weird. // // The problem is that if I have this check - this is what sources like psutil use, for // example (see https://github.com/giampaolo/psutil/blob/7eadee31db2f038763a3a6f978db1ea76bbc4674/psutil/_psutil_osx.c#LL1422C20-L1422C20) // then this will only return stuff like disk0. // // The problem with this is that there is *never* a disk0 *disk* entry to correspond to this, // so there will be entries like disk1 or whatnot. Someone's done some digging on the gopsutil // repo (https://github.com/shirou/gopsutil/issues/855#issuecomment-610016435), and it seems // like this is a consequence of how Apple does logical volumes. // // So with all that said, what I've found is that I *can* still get a mapping - but I have // to disable the conform check, which... is weird. I'm not sure if this is valid at all. But // it *does* seem to match Activity Monitor with regards to disk activity, so... I guess we // can leave this for now...? // if !parent.conforms_to_block_storage_driver() { // anyhow::bail!("{parent:?}, the parent of {device:?} does not conform to IOBlockStorageDriver") // } let disk_props = device.properties()?; let parent_props = parent.properties()?; let name = get_string(&disk_props, "BSD Name")?; let stats = get_dict(&parent_props, "Statistics")?; let read_bytes = get_i64(&stats, "Bytes (Read)")? as u64; let write_bytes = get_i64(&stats, "Bytes (Write)")? as u64; // let read_count = stats.get_i64("Operations (Read)")? as u64; // let write_count = stats.get_i64("Operations (Write)")? as u64; Ok(IoCounters::new(name, read_bytes, write_bytes)) } /// Returns an iterator of disk I/O stats. Pulls data through IOKit. pub fn io_stats() -> anyhow::Result> { Ok(get_disks()?.filter_map(|d| get_device_io(d).ok()).collect()) } bottom-0.9.6/src/app/data_harvester/disks/unix/macos/io_kit.rs000066400000000000000000000002121447252316700244310ustar00rootroot00000000000000mod bindings; mod io_iterator; pub use io_iterator::*; mod io_object; pub use io_object::*; mod io_disks; pub use io_disks::get_disks; bottom-0.9.6/src/app/data_harvester/disks/unix/macos/io_kit/000077500000000000000000000000001447252316700240705ustar00rootroot00000000000000bottom-0.9.6/src/app/data_harvester/disks/unix/macos/io_kit/bindings.rs000066400000000000000000000041321447252316700262330ustar00rootroot00000000000000//! C FFI bindings for [IOKit](https://developer.apple.com/documentation/iokit/). //! //! Based on [heim](https://github.com/heim-rs/heim/blob/master/heim-common/src/sys/macos/iokit/io_master_port.rs) //! and [sysinfo's implementation](https://github.com/GuillaumeGomez/sysinfo/blob/master/src/apple/macos/ffi.rs). //! //! Ideally, we can remove this if sysinfo ever gains disk I/O capabilities. use core_foundation::base::{mach_port_t, CFAllocatorRef}; use core_foundation::dictionary::CFMutableDictionaryRef; use libc::c_char; use mach2::kern_return::kern_return_t; use mach2::port::MACH_PORT_NULL; #[allow(non_camel_case_types)] pub type io_object_t = mach_port_t; #[allow(non_camel_case_types)] pub type io_iterator_t = io_object_t; #[allow(non_camel_case_types)] pub type io_registry_entry_t = io_object_t; pub type IOOptionBits = u32; /// See https://github.com/1kc/librazermacos/pull/27#issuecomment-1042368531. #[allow(non_upper_case_globals)] pub const kIOMasterPortDefault: mach_port_t = MACH_PORT_NULL; #[allow(non_upper_case_globals)] pub const kIOServicePlane: &str = "IOService\0"; #[allow(non_upper_case_globals)] pub const kIOMediaClass: &str = "IOMedia\0"; // See [here](https://developer.apple.com/documentation/iokit) for more details. extern "C" { pub fn IOServiceGetMatchingServices( mainPort: mach_port_t, matching: CFMutableDictionaryRef, existing: *mut io_iterator_t, ) -> kern_return_t; pub fn IOServiceMatching(name: *const c_char) -> CFMutableDictionaryRef; pub fn IOIteratorNext(iterator: io_iterator_t) -> io_object_t; pub fn IOObjectRelease(obj: io_object_t) -> kern_return_t; pub fn IORegistryEntryGetParentEntry( entry: io_registry_entry_t, plane: *const libc::c_char, parent: *mut io_registry_entry_t, ) -> kern_return_t; // pub fn IOObjectConformsTo(object: io_object_t, className: *const libc::c_char) -> mach2::boolean::boolean_t; pub fn IORegistryEntryCreateCFProperties( entry: io_registry_entry_t, properties: *mut CFMutableDictionaryRef, allocator: CFAllocatorRef, options: IOOptionBits, ) -> kern_return_t; } bottom-0.9.6/src/app/data_harvester/disks/unix/macos/io_kit/io_disks.rs000066400000000000000000000011761447252316700262470ustar00rootroot00000000000000use anyhow::bail; use mach2::kern_return; use super::{bindings::*, IoIterator}; pub fn get_disks() -> anyhow::Result { let mut media_iter: io_iterator_t = 0; // SAFETY: This is a safe syscall via IOKit, all the arguments should be safe. let result = unsafe { IOServiceGetMatchingServices( kIOMasterPortDefault, IOServiceMatching(kIOMediaClass.as_ptr().cast()), &mut media_iter, ) }; if result == kern_return::KERN_SUCCESS { Ok(media_iter.into()) } else { bail!("IOServiceGetMatchingServices failed, error code {result}"); } } bottom-0.9.6/src/app/data_harvester/disks/unix/macos/io_kit/io_iterator.rs000066400000000000000000000025451447252316700267640ustar00rootroot00000000000000//! Based on [heim's](https://github.com/heim-rs/heim/blob/master/heim-common/src/sys/macos/iokit/io_iterator.rs). //! implementation. use std::ops::{Deref, DerefMut}; use mach2::kern_return; use super::{bindings::*, io_object::IoObject}; /// Safe wrapper around the IOKit `io_iterator_t` type. #[derive(Debug)] pub struct IoIterator(io_iterator_t); impl From for IoIterator { fn from(iter: io_iterator_t) -> IoIterator { IoIterator(iter) } } impl Deref for IoIterator { type Target = io_iterator_t; fn deref(&self) -> &Self::Target { &self.0 } } impl DerefMut for IoIterator { fn deref_mut(&mut self) -> &mut Self::Target { &mut self.0 } } impl Iterator for IoIterator { type Item = IoObject; fn next(&mut self) -> Option { // Basically, we just stop when we hit 0. // SAFETY: IOKit call, the passed argument (an `io_iterator_t`) is what is expected. match unsafe { IOIteratorNext(self.0) } { 0 => None, io_object => Some(IoObject::from(io_object)), } } } impl Drop for IoIterator { fn drop(&mut self) { // SAFETY: IOKit call, the passed argument (an `io_iterator_t`) is what is expected. let result = unsafe { IOObjectRelease(self.0) }; assert_eq!(result, kern_return::KERN_SUCCESS); } } bottom-0.9.6/src/app/data_harvester/disks/unix/macos/io_kit/io_object.rs000066400000000000000000000113641447252316700264000ustar00rootroot00000000000000//! Based on [heim's](https://github.com/heim-rs/heim/blob/master/heim-common/src/sys/macos/iokit/io_object.rs) //! implementation. use std::mem; use anyhow::{anyhow, bail}; use core_foundation::base::{kCFAllocatorDefault, CFType, TCFType, ToVoid}; use core_foundation::dictionary::{ CFDictionary, CFDictionaryGetTypeID, CFDictionaryRef, CFMutableDictionary, CFMutableDictionaryRef, }; use core_foundation::number::{CFNumber, CFNumberGetTypeID}; use core_foundation::string::{CFString, CFStringGetTypeID}; use mach2::kern_return; use super::bindings::*; /// Safe wrapper around the IOKit `io_object_t` type. #[derive(Debug)] pub struct IoObject(io_object_t); impl IoObject { /// Returns a typed dictionary with this object's properties. pub fn properties(&self) -> anyhow::Result> { // SAFETY: The IOKit call should be fine, the arguments are safe. The `assume_init` should also be fine, as // we guard against it with a check against `result` to ensure it succeeded. unsafe { let mut props = mem::MaybeUninit::::uninit(); let result = IORegistryEntryCreateCFProperties( self.0, props.as_mut_ptr(), kCFAllocatorDefault, 0, ); if result != kern_return::KERN_SUCCESS { bail!("IORegistryEntryCreateCFProperties failed, error code {result}.") } else { let props = props.assume_init(); Ok(CFMutableDictionary::wrap_under_create_rule(props).to_immutable()) } } } /// Gets the [`kIOServicePlane`] parent [`io_object_t`] for this [`io_object_t`], if there /// is one. pub fn service_parent(&self) -> anyhow::Result { let mut parent: io_registry_entry_t = 0; // SAFETY: IOKit call, the arguments should be safe. let result = unsafe { IORegistryEntryGetParentEntry(self.0, kIOServicePlane.as_ptr().cast(), &mut parent) }; if result != kern_return::KERN_SUCCESS { bail!("IORegistryEntryGetParentEntry failed, error code {result}.") } else { Ok(parent.into()) } } // pub fn conforms_to_block_storage_driver(&self) -> bool { // // SAFETY: IOKit call, the arguments should be safe. // let result = // unsafe { IOObjectConformsTo(self.0, "IOBlockStorageDriver\0".as_ptr().cast()) }; // result != 0 // } } impl From for IoObject { fn from(obj: io_object_t) -> IoObject { IoObject(obj) } } impl Drop for IoObject { fn drop(&mut self) { // SAFETY: IOKit call, the argument here (an `io_object_t`) should be safe and expected. let result = unsafe { IOObjectRelease(self.0) }; assert_eq!(result, kern_return::KERN_SUCCESS); } } pub fn get_dict( dict: &CFDictionary, raw_key: &'static str, ) -> anyhow::Result> { let key = CFString::from_static_string(raw_key); dict.find(&key) .map(|value_ref| { // SAFETY: Only used for debug asserts, system API call that should be safe. unsafe { debug_assert!(value_ref.type_of() == CFDictionaryGetTypeID()); } // "Casting" `CFDictionary<*const void, *const void>` into a needed dict type let ptr = value_ref.to_void() as CFDictionaryRef; // SAFETY: System API call, it should be safe? unsafe { CFDictionary::wrap_under_get_rule(ptr) } }) .ok_or_else(|| anyhow!("missing key")) } pub fn get_i64( dict: &CFDictionary, raw_key: &'static str, ) -> anyhow::Result { let key = CFString::from_static_string(raw_key); dict.find(&key) .and_then(|value_ref| { // SAFETY: Only used for debug asserts, system API call that should be safe. unsafe { debug_assert!(value_ref.type_of() == CFNumberGetTypeID()); } value_ref.downcast::() }) .and_then(|number| number.to_i64()) .ok_or_else(|| anyhow!("missing key")) } pub fn get_string( dict: &CFDictionary, raw_key: &'static str, ) -> anyhow::Result { let key = CFString::from_static_string(raw_key); dict.find(&key) .and_then(|value_ref| { // SAFETY: Only used for debug asserts, system API call that should be safe. unsafe { debug_assert!(value_ref.type_of() == CFStringGetTypeID()); } value_ref.downcast::() }) .map(|cf_string| cf_string.to_string()) .ok_or_else(|| anyhow!("missing key")) } bottom-0.9.6/src/app/data_harvester/disks/unix/macos/mod.rs000066400000000000000000000000601447252316700237330ustar00rootroot00000000000000mod counters; pub use counters::*; mod io_kit; bottom-0.9.6/src/app/data_harvester/disks/unix/other/000077500000000000000000000000001447252316700226315ustar00rootroot00000000000000bottom-0.9.6/src/app/data_harvester/disks/unix/other/bindings.rs000066400000000000000000000031111447252316700247700ustar00rootroot00000000000000//! Based on [heim's](https://github.com/heim-rs/heim/blob/master/heim-disk/src/sys/unix/bindings/mod.rs) //! implementation. use std::io::Error; const MNT_NOWAIT: libc::c_int = 2; extern "C" { fn getfsstat64(buf: *mut libc::statfs, bufsize: libc::c_int, flags: libc::c_int) -> libc::c_int; } /// Returns all the mounts on the system at the moment. pub(crate) fn mounts() -> anyhow::Result> { // SAFETY: System API FFI call, arguments should be correct. let expected_len = unsafe { getfsstat64(std::ptr::null_mut(), 0, MNT_NOWAIT) }; let mut mounts: Vec = Vec::with_capacity(expected_len as usize); // SAFETY: System API FFI call, arguments should be correct. let result = unsafe { getfsstat64( mounts.as_mut_ptr(), std::mem::size_of::() as libc::c_int * expected_len, MNT_NOWAIT, ) }; if result == -1 { Err(anyhow::Error::from(Error::last_os_error()).context("getfsstat64")) } else { debug_assert_eq!( expected_len, result, "Expected {expected_len} statfs entries, but instead got {result} entries", ); // SAFETY: We have a debug assert check, and if `result` is not correct (-1), we check against it. // Otherwise, getfsstat64 should return the number of statfs structures if it succeeded. // // Source: https://man.freebsd.org/cgi/man.cgi?query=getfsstat&sektion=2&format=html unsafe { mounts.set_len(result as usize); } Ok(mounts) } } bottom-0.9.6/src/app/data_harvester/disks/unix/other/mod.rs000066400000000000000000000000731447252316700237560ustar00rootroot00000000000000mod bindings; mod partition; pub(crate) use partition::*; bottom-0.9.6/src/app/data_harvester/disks/unix/other/partition.rs000066400000000000000000000056371447252316700252230ustar00rootroot00000000000000use std::{ ffi::{CStr, CString}, os::unix::prelude::OsStrExt, path::{Path, PathBuf}, str::FromStr, }; use anyhow::bail; use super::bindings; use crate::app::data_harvester::disks::unix::{FileSystem, Usage}; pub(crate) struct Partition { device: String, mount_point: PathBuf, fs_type: FileSystem, } impl Partition { /// Returns the mount point for this partition. #[inline] pub fn mount_point(&self) -> &Path { self.mount_point.as_path() } /// Returns the [`FileSystem`] of this partition. #[inline] pub fn fs_type(&self) -> &FileSystem { &self.fs_type } /// Returns the usage stats for this partition. pub fn usage(&self) -> anyhow::Result { let path = CString::new(self.mount_point().as_os_str().as_bytes())?; let mut vfs = std::mem::MaybeUninit::::uninit(); // SAFETY: System API call. Arguments should be correct. let result = unsafe { libc::statvfs(path.as_ptr(), vfs.as_mut_ptr()) }; if result == 0 { // SAFETY: We check that it succeeded (result is 0), which means vfs should be populated. Ok(Usage::new(unsafe { vfs.assume_init() })) } else { bail!("statvfs failed to get the disk usage for disk {path:?}") } } /// Returns the device name. #[inline] pub fn get_device_name(&self) -> String { self.device.clone() } } fn partitions_iter() -> anyhow::Result> { let mounts = bindings::mounts()?; unsafe fn ptr_to_cow<'a>(ptr: *const i8) -> std::borrow::Cow<'a, str> { CStr::from_ptr(ptr).to_string_lossy() } Ok(mounts.into_iter().map(|stat| { // SAFETY: Should be a non-null pointer. let device = unsafe { ptr_to_cow(stat.f_mntfromname.as_ptr()).to_string() }; let fs_type = { // SAFETY: Should be a non-null pointer. let fs_type_str = unsafe { ptr_to_cow(stat.f_fstypename.as_ptr()) }; FileSystem::from_str(&fs_type_str).unwrap_or(FileSystem::Other(fs_type_str.to_string())) }; let mount_point = { // SAFETY: Should be a non-null pointer. let path_str = unsafe { ptr_to_cow(stat.f_mntonname.as_ptr()).to_string() }; PathBuf::from(path_str) }; Partition { device, mount_point, fs_type, } })) } #[allow(dead_code)] /// Returns a [`Vec`] containing all partitions. pub(crate) fn partitions() -> anyhow::Result> { partitions_iter().map(|iter| iter.collect()) } /// Returns a [`Vec`] containing all *physical* partitions. This is defined by /// [`FileSystem::is_physical()`]. pub(crate) fn physical_partitions() -> anyhow::Result> { partitions_iter().map(|iter| { iter.filter(|partition| partition.fs_type().is_physical()) .collect() }) } bottom-0.9.6/src/app/data_harvester/disks/unix/usage.rs000066400000000000000000000021471447252316700231660ustar00rootroot00000000000000pub struct Usage(libc::statvfs); // Note that x86 returns `u32` values while x86-64 returns `u64`s, so we convert everything // to `u64` for consistency. #[allow(clippy::useless_conversion)] impl Usage { pub(crate) fn new(vfs: libc::statvfs) -> Self { Self(vfs) } /// Returns the total number of bytes available. pub fn total(&self) -> u64 { u64::from(self.0.f_blocks) * u64::from(self.0.f_frsize) } /// Returns the available number of bytes used. Note this is not necessarily the same as [`free`]. pub fn available(&self) -> u64 { u64::from(self.0.f_bfree) * u64::from(self.0.f_frsize) } #[allow(dead_code)] /// Returns the total number of bytes used. Equal to `total - available` on Unix. pub fn used(&self) -> u64 { let avail_to_root = u64::from(self.0.f_bfree) * u64::from(self.0.f_frsize); self.total() - avail_to_root } /// Returns the total number of bytes free. Note this is not necessarily the same as [`available`]. pub fn free(&self) -> u64 { u64::from(self.0.f_bavail) * u64::from(self.0.f_frsize) } } bottom-0.9.6/src/app/data_harvester/disks/windows.rs000066400000000000000000000044311447252316700225670ustar00rootroot00000000000000//! Disk stats via sysinfo. use itertools::Itertools; use sysinfo::{DiskExt, SystemExt}; use super::{keep_disk_entry, DiskHarvest}; use crate::app::data_harvester::{disks::IoCounters, DataCollector}; mod bindings; use bindings::*; /// Returns I/O stats. pub(crate) fn io_stats() -> anyhow::Result> { let volume_io = all_volume_io()?; Ok(volume_io .into_iter() .map_ok(|(performance, volume_name)| { let name = volume_name; let read_bytes = performance.BytesRead as u64; let write_bytes = performance.BytesWritten as u64; IoCounters::new(name, read_bytes, write_bytes) }) .flatten() .collect::>()) } pub(crate) fn get_disk_usage(collector: &DataCollector) -> anyhow::Result> { let disks = collector.sys.disks(); let disk_filter = &collector.filters.disk_filter; let mount_filter = &collector.filters.mount_filter; Ok(disks .iter() .filter_map(|disk| { let name = { let name = disk.name(); if name.is_empty() { "No Name".to_string() } else { name.to_os_string() .into_string() .unwrap_or_else(|_| "Name Unavailable".to_string()) } }; let mount_point = disk .mount_point() .as_os_str() .to_os_string() .into_string() .unwrap_or_else(|_| "Mount Unavailable".to_string()); let volume_name = volume_name_from_mount(&mount_point).ok(); if keep_disk_entry(&name, &mount_point, disk_filter, mount_filter) { let free_space = disk.available_space(); let total_space = disk.total_space(); let used_space = total_space - free_space; Some(DiskHarvest { name, mount_point, volume_name, free_space: Some(free_space), used_space: Some(used_space), total_space: Some(total_space), }) } else { None } }) .collect()) } bottom-0.9.6/src/app/data_harvester/disks/windows/000077500000000000000000000000001447252316700222175ustar00rootroot00000000000000bottom-0.9.6/src/app/data_harvester/disks/windows/bindings.rs000066400000000000000000000137331447252316700243710ustar00rootroot00000000000000//! Windows bindings to get disk I/O counters. use std::{ ffi::OsString, io, mem, os::windows::prelude::{OsStrExt, OsStringExt}, path::{Path, PathBuf}, }; use anyhow::bail; use windows::Win32::{ Foundation::{self, CloseHandle, HANDLE}, Storage::FileSystem::{ CreateFileW, FindFirstVolumeW, FindNextVolumeW, FindVolumeClose, GetVolumeNameForVolumeMountPointW, FILE_FLAGS_AND_ATTRIBUTES, FILE_SHARE_READ, FILE_SHARE_WRITE, OPEN_EXISTING, }, System::{ Ioctl::{DISK_PERFORMANCE, IOCTL_DISK_PERFORMANCE}, IO::DeviceIoControl, }, }; /// Returns the I/O for a given volume. /// /// Based on [psutil's implementation](https://github.com/giampaolo/psutil/blob/52fe5517f716dedf9c9918e56325e49a49146130/psutil/arch/windows/disk.c#L78-L83) /// and [heim's implementation](https://github.com/heim-rs/heim/blob/master/heim-disk/src/sys/windows/bindings/perf.rs). fn volume_io(volume: &Path) -> anyhow::Result { if volume.is_file() { // We assume the volume is a directory, so bail ASAP if it isn't. bail!("Expects a directory to be passed in."); } let volume = { let mut wide_path = volume.as_os_str().encode_wide().collect::>(); // We replace the trailing backslash and replace it with a \0. wide_path.pop(); wide_path.push(0x0000); wide_path }; // SAFETY: API call, arguments should be correct. We must also check after the call to ensure it is valid. let h_device = unsafe { CreateFileW( windows::core::PCWSTR(volume.as_ptr()), 0, FILE_SHARE_READ | FILE_SHARE_WRITE, None, OPEN_EXISTING, FILE_FLAGS_AND_ATTRIBUTES(0), Foundation::HANDLE::default(), )? }; if h_device.is_invalid() { bail!("Invalid handle value: {:?}", io::Error::last_os_error()); } let mut disk_performance = DISK_PERFORMANCE::default(); let mut bytes_returned = 0; // SAFETY: This should be safe, we'll manually check the results and the arguments should be valid. let ret = unsafe { DeviceIoControl( h_device, IOCTL_DISK_PERFORMANCE, None, 0, Some(&mut disk_performance as *mut _ as _), mem::size_of::() as u32, Some(&mut bytes_returned), None, ) }; // SAFETY: This should be safe, we will check the result as well. let handle_result = unsafe { CloseHandle(h_device) }; if let Err(err) = handle_result { bail!("Handle error: {err:?}"); } if let Err(err) = ret { bail!("Device I/O error: {err:?}"); } else { Ok(disk_performance) } } fn current_volume(buffer: &[u16]) -> PathBuf { let first_null = buffer.iter().position(|byte| *byte == 0x00).unwrap_or(0); let path_string = OsString::from_wide(&buffer[..first_null]); PathBuf::from(path_string) } fn close_find_handle(handle: HANDLE) -> anyhow::Result<()> { // Clean up the handle. // SAFETY: This should be safe, we will check the result as well. let res = unsafe { FindVolumeClose(handle) }; Ok(res?) } /// Returns the I/O for all volumes. /// /// Based on [psutil's implementation](https://github.com/giampaolo/psutil/blob/52fe5517f716dedf9c9918e56325e49a49146130/psutil/arch/windows/disk.c#L78-L83) /// and [heim's implementation](https://github.com/heim-rs/heim/blob/master/heim-disk/src/sys/windows/bindings/perf.rs). pub(crate) fn all_volume_io() -> anyhow::Result>> { const ERROR_NO_MORE_FILES: i32 = Foundation::ERROR_NO_MORE_FILES.0 as i32; let mut ret = vec![]; let mut buffer = [0_u16; Foundation::MAX_PATH as usize]; // Get the first volume and add the stats needed. // SAFETY: We must verify the handle is correct. If no volume is found, it will be set to `INVALID_HANDLE_VALUE`. let handle = unsafe { FindFirstVolumeW(&mut buffer) }?; if handle.is_invalid() { bail!("Invalid handle value: {:?}", io::Error::last_os_error()); } { let volume = current_volume(&buffer); ret.push(volume_io(&volume).map(|res| (res, volume.to_string_lossy().to_string()))); } // Now iterate until there are no more volumes. while unsafe { FindNextVolumeW(handle, &mut buffer) }.is_ok() { let volume = current_volume(&buffer); ret.push(volume_io(&volume).map(|res| (res, volume.to_string_lossy().to_string()))); } let err = io::Error::last_os_error(); match err.raw_os_error() { Some(ERROR_NO_MORE_FILES) => { // Iteration completed successfully, continue on. } _ => { // Some error occured. close_find_handle(handle)?; bail!("Error while iterating over volumes: {err:?}"); } } close_find_handle(handle)?; Ok(ret) } /// Returns the volume name from a mount name if possible. pub(crate) fn volume_name_from_mount(mount: &str) -> anyhow::Result { // According to winapi docs 50 is a reasonable length to accomodate the volume path // https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getvolumenameforvolumemountpointw const VOLUME_MAX_LEN: usize = 50; let mount = { let mount_path = Path::new(mount); let mut wide_path = mount_path.as_os_str().encode_wide().collect::>(); // Always push on a \0 character, without this it will occasionally break. wide_path.push(0x0000); wide_path }; let mut buffer = [0_u16; VOLUME_MAX_LEN]; // SAFETY: API call, we must check the result for validating safety. let result = unsafe { GetVolumeNameForVolumeMountPointW(windows::core::PCWSTR(mount.as_ptr()), &mut buffer) }; if let Err(err) = result { bail!("Could not get volume name for mount point: {err:?}"); } else { Ok(current_volume(&buffer).to_string_lossy().to_string()) } } bottom-0.9.6/src/app/data_harvester/disks/zfs_io_counters.rs000066400000000000000000000144541447252316700243160ustar00rootroot00000000000000use crate::app::data_harvester::disks::IoCounters; /// Returns zpool I/O stats. Pulls data from `sysctl kstat.zfs.{POOL}.dataset.{objset-*}` #[cfg(target_os = "freebsd")] pub fn zfs_io_stats() -> anyhow::Result> { use sysctl::Sysctl; let zfs_ctls: Vec<_> = sysctl::Ctl::new("kstat.zfs.")? .into_iter() .filter_map(|e| { e.ok().and_then(|ctl| { let name = ctl.name(); if let Ok(name) = name { if name.contains("objset-") && (name.contains("dataset_name") || name.contains("nwritten") || name.contains("nread")) { Some(ctl) } else { None } } else { None } }) }) .collect(); use itertools::Itertools; let results: Vec = zfs_ctls .iter() .chunks(3) .into_iter() .filter_map(|chunk| { let mut nread = 0; let mut nwrite = 0; let mut ds_name = String::new(); for ctl in chunk { if let Ok(name) = ctl.name() { if name.contains("dataset_name") { ds_name = ctl.value_string().ok()?; } else if name.contains("nread") { if let Ok(sysctl::CtlValue::U64(val)) = ctl.value() { nread = val; } } else if name.contains("nwritten") { if let Ok(sysctl::CtlValue::U64(val)) = ctl.value() { nwrite = val; } } } } Some(IoCounters::new(ds_name, nread, nwrite)) }) .collect(); Ok(results) } /// Returns zpool I/O stats. Pulls data from `/proc/spl/kstat/zfs/*/objset-*`. #[cfg(target_os = "linux")] pub fn zfs_io_stats() -> anyhow::Result> { if let Ok(zpools) = std::fs::read_dir("/proc/spl/kstat/zfs") { let zpools_vec: Vec = zpools .filter_map(|e| { e.ok().and_then(|d| { let p = d.path(); if p.is_dir() { Some(p) } else { None } }) }) .collect(); let results = zpools_vec .iter() .filter_map(|zpool| { // go through each pool if let Ok(datasets) = std::fs::read_dir(zpool) { let datasets_vec: Vec = datasets // go through dataset .filter_map(|e| { e.ok().and_then(|d| { let p = d.path(); if p.is_file() && p.to_str()?.contains("objset-") { Some(p) } else { None } }) }) .collect(); let io_counters: Vec = datasets_vec .iter() .filter_map(|ds| { // get io-counter from each dataset if let Ok(contents) = std::fs::read_to_string(ds) { let mut read = 0; let mut write = 0; let mut name = ""; contents.lines().for_each(|line| { if let Some((label, value)) = line.split_once(' ') { match label { "dataset_name" => { if let Some((_type, val)) = value.trim_start().rsplit_once(' ') { name = val; } } "nwritten" => { if let Some((_type, val)) = value.trim_start().rsplit_once(' ') { if let Ok(number) = val.parse::() { write = number; } } } "nread" => { if let Some((_type, val)) = value.trim_start().rsplit_once(' ') { if let Ok(number) = val.parse::() { read = number; } } } _ => {} } } }); let counter = IoCounters::new(name.to_owned(), read, write); Some(counter) } else { None } }) .collect(); Some(io_counters) } else { None } }) .flatten() .collect(); // combine io-counters Ok(results) } else { Err(anyhow::anyhow!("Unable to open zfs proc directory")) } } bottom-0.9.6/src/app/data_harvester/memory.rs000066400000000000000000000012551447252316700212710ustar00rootroot00000000000000//! Memory data collection. #[cfg(not(target_os = "windows"))] pub(crate) use self::sysinfo::get_cache_usage; pub(crate) use self::sysinfo::get_ram_usage; pub mod sysinfo; cfg_if::cfg_if! { if #[cfg(target_os = "windows")] { pub mod windows; pub(crate) use self::windows::get_swap_usage; } else { pub(crate) use self::sysinfo::get_swap_usage; } } #[cfg(feature = "gpu")] pub mod gpu; #[cfg(feature = "zfs")] pub mod arc; #[derive(Debug, Clone, Default)] pub struct MemHarvest { pub used_bytes: u64, pub total_bytes: u64, pub use_percent: Option, // TODO: Might be find to just make this an f64, and any consumer checks NaN. } bottom-0.9.6/src/app/data_harvester/memory/000077500000000000000000000000001447252316700207205ustar00rootroot00000000000000bottom-0.9.6/src/app/data_harvester/memory/arc.rs000066400000000000000000000055111447252316700220350ustar00rootroot00000000000000use super::MemHarvest; /// Return ARC usage. #[cfg(feature = "zfs")] pub(crate) fn get_arc_usage() -> Option { let (mem_total, mem_used) = { cfg_if::cfg_if! { if #[cfg(target_os = "linux")] { // TODO: [OPT] is this efficient? use std::fs::read_to_string; if let Ok(arc_stats) = read_to_string("/proc/spl/kstat/zfs/arcstats") { let mut mem_arc = 0; let mut mem_total = 0; let mut zfs_keys_read: u8 = 0; const ZFS_KEYS_NEEDED: u8 = 2; for line in arc_stats.lines() { if let Some((label, value)) = line.split_once(' ') { let to_write = match label { "size" => &mut mem_arc, "c_max" => &mut mem_total, _ => { continue; } }; if let Some((_type, number)) = value.trim_start().rsplit_once(' ') { // Parse the value, remember it's in bytes! if let Ok(number) = number.parse::() { *to_write = number; // We only need a few keys, so we can bail early. zfs_keys_read += 1; if zfs_keys_read == ZFS_KEYS_NEEDED { break; } } } } } (mem_total, mem_arc) } else { (0, 0) } } else if #[cfg(target_os = "freebsd")] { use sysctl::Sysctl; if let (Ok(mem_arc_value), Ok(mem_sys_value)) = ( sysctl::Ctl::new("kstat.zfs.misc.arcstats.size"), sysctl::Ctl::new("kstat.zfs.misc.arcstats.c_max"), ) { if let (Ok(sysctl::CtlValue::U64(arc)), Ok(sysctl::CtlValue::Ulong(mem))) = (mem_arc_value.value(), mem_sys_value.value()) { (mem, arc) } else { (0, 0) } } else { (0, 0) } } else { (0, 0) } } }; Some(MemHarvest { total_bytes: mem_total, used_bytes: mem_used, use_percent: if mem_total == 0 { None } else { Some(mem_used as f64 / mem_total as f64 * 100.0) }, }) } bottom-0.9.6/src/app/data_harvester/memory/gpu.rs000066400000000000000000000030301447252316700220550ustar00rootroot00000000000000use super::MemHarvest; /// Return GPU memory usage. #[cfg(feature = "gpu")] pub(crate) fn get_gpu_mem_usage() -> Option> { // As we add more support, expand on this. #[cfg(feature = "nvidia")] get_nvidia_mem_usage() } /// Returns the memory usage of NVIDIA cards. #[inline] #[cfg(feature = "nvidia")] fn get_nvidia_mem_usage() -> Option> { use crate::data_harvester::nvidia::NVML_DATA; if let Ok(nvml) = &*NVML_DATA { if let Ok(num_gpu) = nvml.device_count() { let mut results = Vec::with_capacity(num_gpu as usize); for i in 0..num_gpu { if let Ok(device) = nvml.device_by_index(i) { if let (Ok(name), Ok(mem)) = (device.name(), device.memory_info()) { // add device memory in bytes results.push(( name, MemHarvest { total_bytes: mem.total, used_bytes: mem.used, use_percent: if mem.total == 0 { None } else { Some(mem.used as f64 / mem.total as f64 * 100.0) }, }, )); } } } Some(results) } else { None } } else { None } } bottom-0.9.6/src/app/data_harvester/memory/sysinfo.rs000066400000000000000000000040511447252316700227600ustar00rootroot00000000000000//! Collecting memory data using sysinfo. use sysinfo::{System, SystemExt}; use crate::data_harvester::memory::MemHarvest; /// Returns RAM usage. pub(crate) fn get_ram_usage(sys: &System) -> Option { let mem_used = sys.used_memory(); let mem_total = sys.total_memory(); Some(MemHarvest { used_bytes: mem_used, total_bytes: mem_total, use_percent: if mem_total == 0 { None } else { Some(mem_used as f64 / mem_total as f64 * 100.0) }, }) } /// Returns SWAP usage. #[cfg(not(target_os = "windows"))] pub(crate) fn get_swap_usage(sys: &System) -> Option { let mem_used = sys.used_swap(); let mem_total = sys.total_swap(); Some(MemHarvest { used_bytes: mem_used, total_bytes: mem_total, use_percent: if mem_total == 0 { None } else { Some(mem_used as f64 / mem_total as f64 * 100.0) }, }) } /// Returns cache usage. sysinfo has no way to do this directly but it should equal the difference /// between the available and free memory. Free memory is defined as memory not containing any data, /// which means cache and buffer memory are not "free". Available memory is defined as memory able /// to be allocated by processes, which includes cache and buffer memory. On Windows, this will /// always be 0. For more information, see [docs](https://docs.rs/sysinfo/0.28.4/sysinfo/trait.SystemExt.html#tymethod.available_memory) /// and [memory explanation](https://askubuntu.com/questions/867068/what-is-available-memory-while-using-free-command) #[cfg(not(target_os = "windows"))] pub(crate) fn get_cache_usage(sys: &System) -> Option { let mem_used = sys.available_memory().saturating_sub(sys.free_memory()); let mem_total = sys.total_memory(); Some(MemHarvest { total_bytes: mem_total, used_bytes: mem_used, use_percent: if mem_total == 0 { None } else { Some(mem_used as f64 / mem_total as f64 * 100.0) }, }) } bottom-0.9.6/src/app/data_harvester/memory/windows.rs000066400000000000000000000025561447252316700227700ustar00rootroot00000000000000use std::mem::{size_of, zeroed}; use windows::Win32::System::ProcessStatus::{GetPerformanceInfo, PERFORMANCE_INFORMATION}; use crate::data_harvester::memory::MemHarvest; // TODO: Note this actually calculates the total *committed* usage. Rename and change label for accuracy! /// Get the committed memory usage. /// /// Code based on [sysinfo's](https://github.com/GuillaumeGomez/sysinfo/blob/6f8178495adcf3ca4696a9ec548586cf6a621bc8/src/windows/system.rs#L169). pub(crate) fn get_swap_usage() -> Option { // SAFETY: The safety invariant is that we only touch what's in `perf_info` if it succeeds, and that // the bindings are "safe" to use with how we call them. unsafe { let mut perf_info: PERFORMANCE_INFORMATION = zeroed(); if GetPerformanceInfo(&mut perf_info, size_of::() as u32).is_ok() { // Saturating sub by perf_info.PhysicalTotal for what sysinfo does. let swap_total = perf_info.PageSize.saturating_mul(perf_info.CommitLimit) as u64; let swap_used = perf_info.PageSize.saturating_mul(perf_info.CommitTotal) as u64; Some(MemHarvest { used_bytes: swap_used, total_bytes: swap_total, use_percent: Some(swap_used as f64 / swap_total as f64 * 100.0), }) } else { None } } } bottom-0.9.6/src/app/data_harvester/network.rs000066400000000000000000000005601447252316700214500ustar00rootroot00000000000000//! Data collection for network usage/IO. pub mod sysinfo; pub use self::sysinfo::*; #[derive(Default, Clone, Debug)] /// All units in bits. pub struct NetworkHarvest { pub rx: u64, pub tx: u64, pub total_rx: u64, pub total_tx: u64, } impl NetworkHarvest { pub fn first_run_cleanup(&mut self) { self.rx = 0; self.tx = 0; } } bottom-0.9.6/src/app/data_harvester/network/000077500000000000000000000000001447252316700211015ustar00rootroot00000000000000bottom-0.9.6/src/app/data_harvester/network/sysinfo.rs000066400000000000000000000025641447252316700231500ustar00rootroot00000000000000//! Gets network data via sysinfo. use std::time::Instant; use super::NetworkHarvest; use crate::app::Filter; // TODO: Eventually make it so that this thing also takes individual usage into account, so we can show per-interface! pub fn get_network_data( sys: &sysinfo::System, prev_net_access_time: Instant, prev_net_rx: &mut u64, prev_net_tx: &mut u64, curr_time: Instant, filter: &Option, ) -> NetworkHarvest { use sysinfo::{NetworkExt, SystemExt}; let mut total_rx: u64 = 0; let mut total_tx: u64 = 0; let networks = sys.networks(); for (name, network) in networks { let to_keep = if let Some(filter) = filter { filter.keep_entry(name) } else { true }; if to_keep { total_rx += network.total_received() * 8; total_tx += network.total_transmitted() * 8; } } let elapsed_time = curr_time.duration_since(prev_net_access_time).as_secs_f64(); let (rx, tx) = if elapsed_time == 0.0 { (0, 0) } else { ( ((total_rx.saturating_sub(*prev_net_rx)) as f64 / elapsed_time) as u64, ((total_tx.saturating_sub(*prev_net_tx)) as f64 / elapsed_time) as u64, ) }; *prev_net_rx = total_rx; *prev_net_tx = total_tx; NetworkHarvest { rx, tx, total_rx, total_tx, } } bottom-0.9.6/src/app/data_harvester/nvidia.rs000066400000000000000000000002251447252316700212270ustar00rootroot00000000000000use nvml_wrapper::{error::NvmlError, Nvml}; use once_cell::sync::Lazy; pub static NVML_DATA: Lazy> = Lazy::new(Nvml::init); bottom-0.9.6/src/app/data_harvester/processes.rs000066400000000000000000000070401447252316700217650ustar00rootroot00000000000000//! Data collection for processes. //! //! For Linux, this is handled by a custom set of functions. //! For Windows, macOS, FreeBSD, Android, and Linux, this is handled by sysinfo. use cfg_if::cfg_if; use std::{borrow::Cow, time::Duration}; use super::DataCollector; use crate::{utils::error, Pid}; cfg_if! { if #[cfg(target_os = "linux")] { pub mod linux; pub use self::linux::*; } else if #[cfg(target_os = "macos")] { pub mod macos; pub(crate) use self::macos::*; } else if #[cfg(target_os = "windows")] { pub mod windows; pub use self::windows::*; } else if #[cfg(target_os = "freebsd")] { pub mod freebsd; pub(crate) use self::freebsd::*; } else if #[cfg(target_family = "unix")] { pub(crate) struct GenericProcessExt; impl UnixProcessExt for GenericProcessExt {} } } cfg_if! { if #[cfg(target_family = "unix")] { pub mod unix; pub use self::unix::*; } } #[derive(Debug, Clone, Default)] pub struct ProcessHarvest { /// The pid of the process. pub pid: Pid, /// The parent PID of the process. A `parent_pid` of 0 is usually the root. pub parent_pid: Option, /// CPU usage as a percentage. pub cpu_usage_percent: f32, /// Memory usage as a percentage. pub mem_usage_percent: f32, /// Memory usage as bytes. pub mem_usage_bytes: u64, /// The name of the process. pub name: String, /// The exact command for the process. pub command: String, /// Bytes read per second. pub read_bytes_per_sec: u64, /// Bytes written per second. pub write_bytes_per_sec: u64, /// The total number of bytes read by the process. pub total_read_bytes: u64, /// The total number of bytes written by the process. pub total_write_bytes: u64, /// The current state of the process (e.g. zombie, asleep). pub process_state: (String, char), /// Cumulative total CPU time used. pub time: Duration, /// This is the *effective* user ID of the process. This is only used on Unix platforms. #[cfg(target_family = "unix")] pub uid: Option, /// This is the process' user. pub user: Cow<'static, str>, // TODO: Additional fields // pub rss_kb: u64, // pub virt_kb: u64, } impl ProcessHarvest { pub(crate) fn add(&mut self, rhs: &ProcessHarvest) { self.cpu_usage_percent += rhs.cpu_usage_percent; self.mem_usage_bytes += rhs.mem_usage_bytes; self.mem_usage_percent += rhs.mem_usage_percent; self.read_bytes_per_sec += rhs.read_bytes_per_sec; self.write_bytes_per_sec += rhs.write_bytes_per_sec; self.total_read_bytes += rhs.total_read_bytes; self.total_write_bytes += rhs.total_write_bytes; self.time += rhs.time; } } impl DataCollector { pub(crate) fn get_processes(&mut self) -> error::Result> { cfg_if! { if #[cfg(target_os = "linux")] { let time_diff = self.data.collection_time .duration_since(self.last_collection_time) .as_secs(); linux_process_data( self, time_diff, ) } else if #[cfg(any(target_os = "freebsd", target_os = "macos", target_os = "windows", target_os = "android", target_os = "ios"))] { sysinfo_process_data(self) } else { Err(error::BottomError::GenericError("Unsupported OS".to_string())) } } } } bottom-0.9.6/src/app/data_harvester/processes/000077500000000000000000000000001447252316700214165ustar00rootroot00000000000000bottom-0.9.6/src/app/data_harvester/processes/freebsd.rs000066400000000000000000000034151447252316700234010ustar00rootroot00000000000000//! Process data collection for FreeBSD. Uses sysinfo. use std::io; use std::process::Command; use hashbrown::HashMap; use serde::{Deserialize, Deserializer}; use crate::data_harvester::{deserialize_xo, processes::UnixProcessExt}; use crate::Pid; #[derive(Deserialize, Debug, Default)] #[serde(rename_all = "kebab-case")] struct ProcessInformation { process: Vec, } #[derive(Deserialize, Debug)] #[serde(rename_all = "kebab-case")] struct ProcessRow { #[serde(deserialize_with = "pid")] pid: i32, #[serde(deserialize_with = "percent_cpu")] percent_cpu: f64, } pub(crate) struct FreeBSDProcessExt; impl UnixProcessExt for FreeBSDProcessExt { #[inline] fn has_backup_proc_cpu_fn() -> bool { true } fn backup_proc_cpu(pids: &[Pid]) -> io::Result> { if pids.is_empty() { return Ok(HashMap::new()); } let output = Command::new("ps") .args(["--libxo", "json", "-o", "pid,pcpu", "-p"]) .args(pids.iter().map(i32::to_string)) .output()?; deserialize_xo("process-information", &output.stdout).map( |process_info: ProcessInformation| { process_info .process .into_iter() .map(|row| (row.pid, row.percent_cpu)) .collect() }, ) } } fn pid<'de, D>(deserializer: D) -> Result where D: Deserializer<'de>, { let s = String::deserialize(deserializer)?; s.parse().map_err(serde::de::Error::custom) } fn percent_cpu<'de, D>(deserializer: D) -> Result where D: Deserializer<'de>, { let s = String::deserialize(deserializer)?; s.parse().map_err(serde::de::Error::custom) } bottom-0.9.6/src/app/data_harvester/processes/linux.rs000066400000000000000000000312141447252316700231240ustar00rootroot00000000000000//! Process data collection for Linux. mod process; use process::*; use std::fs::{self, File}; use std::io::{BufRead, BufReader}; use std::time::Duration; use hashbrown::HashSet; use sysinfo::ProcessStatus; use super::{ProcessHarvest, UserTable}; use crate::app::data_harvester::DataCollector; use crate::utils::error::{self, BottomError}; use crate::Pid; /// Maximum character length of a /proc//stat process name. /// If it's equal or greater, then we instead refer to the command for the name. const MAX_STAT_NAME_LEN: usize = 15; #[derive(Debug, Clone, Default)] pub struct PrevProcDetails { total_read_bytes: u64, total_write_bytes: u64, cpu_time: u64, } /// Given `/proc/stat` file contents, determine the idle and non-idle values of the CPU /// used to calculate CPU usage. fn fetch_cpu_usage(line: &str) -> (f64, f64) { /// Converts a `Option<&str>` value to an f64. If it fails to parse or is `None`, it /// will return `0_f64`. fn str_to_f64(val: Option<&str>) -> f64 { val.and_then(|v| v.parse::().ok()).unwrap_or(0_f64) } let mut val = line.split_whitespace(); let user = str_to_f64(val.next()); let nice: f64 = str_to_f64(val.next()); let system: f64 = str_to_f64(val.next()); let idle: f64 = str_to_f64(val.next()); let iowait: f64 = str_to_f64(val.next()); let irq: f64 = str_to_f64(val.next()); let softirq: f64 = str_to_f64(val.next()); let steal: f64 = str_to_f64(val.next()); // Note we do not get guest/guest_nice, as they are calculated as part of user/nice respectively // See https://github.com/htop-dev/htop/blob/main/linux/LinuxProcessList.c let idle = idle + iowait; let non_idle = user + nice + system + irq + softirq + steal; (idle, non_idle) } struct CpuUsage { /// Difference between the total delta and the idle delta. cpu_usage: f64, /// Overall CPU usage as a fraction. cpu_fraction: f64, } fn cpu_usage_calculation(prev_idle: &mut f64, prev_non_idle: &mut f64) -> error::Result { let (idle, non_idle) = { // From SO answer: https://stackoverflow.com/a/23376195 let first_line = { // We just need a single line from this file. Read it and return it. let mut reader = BufReader::new(File::open("/proc/stat")?); let mut buffer = String::new(); reader.read_line(&mut buffer)?; buffer }; fetch_cpu_usage(&first_line) }; let total = idle + non_idle; let prev_total = *prev_idle + *prev_non_idle; let total_delta = total - prev_total; let idle_delta = idle - *prev_idle; *prev_idle = idle; *prev_non_idle = non_idle; // TODO: Should these return errors instead? let cpu_usage = if total_delta - idle_delta != 0.0 { total_delta - idle_delta } else { 1.0 }; let cpu_fraction = if total_delta != 0.0 { cpu_usage / total_delta } else { 0.0 }; Ok(CpuUsage { cpu_usage, cpu_fraction, }) } /// Returns the usage and a new set of process times. /// /// NB: cpu_fraction should be represented WITHOUT the x100 factor! fn get_linux_cpu_usage( stat: &Stat, cpu_usage: f64, cpu_fraction: f64, prev_proc_times: u64, use_current_cpu_total: bool, ) -> (f32, u64) { // Based heavily on https://stackoverflow.com/a/23376195 and https://stackoverflow.com/a/1424556 let new_proc_times = stat.utime + stat.stime; let diff = (new_proc_times - prev_proc_times) as f64; // No try_from for u64 -> f64... oh well. if cpu_usage == 0.0 { (0.0, new_proc_times) } else if use_current_cpu_total { (((diff / cpu_usage) * 100.0) as f32, new_proc_times) } else { ( ((diff / cpu_usage) * 100.0 * cpu_fraction) as f32, new_proc_times, ) } } fn read_proc( prev_proc: &PrevProcDetails, process: Process, cpu_usage: f64, cpu_fraction: f64, use_current_cpu_total: bool, time_difference_in_secs: u64, total_memory: u64, user_table: &mut UserTable, ) -> error::Result<(ProcessHarvest, u64)> { let Process { pid: _, uid, stat, io, cmdline, } = process; let (command, name) = { let truncated_name = stat.comm.as_str(); if let Ok(cmdline) = cmdline { if cmdline.is_empty() { (format!("[{}]", truncated_name), truncated_name.to_string()) } else { ( cmdline.join(" "), if truncated_name.len() >= MAX_STAT_NAME_LEN { if let Some(first_part) = cmdline.first() { // We're only interested in the executable part... not the file path. // That's for command. first_part .rsplit_once('/') .map(|(_prefix, suffix)| suffix) .unwrap_or(truncated_name) .to_string() } else { truncated_name.to_string() } } else { truncated_name.to_string() }, ) } } else { (truncated_name.to_string(), truncated_name.to_string()) } }; let process_state_char = stat.state; let process_state = ( ProcessStatus::from(process_state_char).to_string(), process_state_char, ); let (cpu_usage_percent, new_process_times) = get_linux_cpu_usage( &stat, cpu_usage, cpu_fraction, prev_proc.cpu_time, use_current_cpu_total, ); let parent_pid = Some(stat.ppid); let mem_usage_bytes = stat.rss_bytes(); let mem_usage_percent = (mem_usage_bytes as f64 / total_memory as f64 * 100.0) as f32; // This can fail if permission is denied! let (total_read_bytes, total_write_bytes, read_bytes_per_sec, write_bytes_per_sec) = if let Ok(io) = io { let total_read_bytes = io.read_bytes; let total_write_bytes = io.write_bytes; let prev_total_read_bytes = prev_proc.total_read_bytes; let prev_total_write_bytes = prev_proc.total_write_bytes; let read_bytes_per_sec = total_read_bytes .saturating_sub(prev_total_read_bytes) .checked_div(time_difference_in_secs) .unwrap_or(0); let write_bytes_per_sec = total_write_bytes .saturating_sub(prev_total_write_bytes) .checked_div(time_difference_in_secs) .unwrap_or(0); ( total_read_bytes, total_write_bytes, read_bytes_per_sec, write_bytes_per_sec, ) } else { (0, 0, 0, 0) }; let user = uid .and_then(|uid| { user_table .get_uid_to_username_mapping(uid) .map(Into::into) .ok() }) .unwrap_or_else(|| "N/A".into()); let time = if let Ok(ticks_per_sec) = u32::try_from(rustix::param::clock_ticks_per_second()) { if ticks_per_sec == 0 { Duration::ZERO } else { Duration::from_secs(stat.utime + stat.stime) / ticks_per_sec } } else { Duration::ZERO }; Ok(( ProcessHarvest { pid: process.pid, parent_pid, cpu_usage_percent, mem_usage_percent, mem_usage_bytes, name, command, read_bytes_per_sec, write_bytes_per_sec, total_read_bytes, total_write_bytes, process_state, uid, user, time, }, new_process_times, )) } pub(crate) struct PrevProc<'a> { pub prev_idle: &'a mut f64, pub prev_non_idle: &'a mut f64, } pub(crate) struct ProcHarvestOptions { pub use_current_cpu_total: bool, pub unnormalized_cpu: bool, } fn is_str_numeric(s: &str) -> bool { s.chars().all(|c| c.is_ascii_digit()) } pub(crate) fn linux_process_data( collector: &mut DataCollector, time_difference_in_secs: u64, ) -> error::Result> { let total_memory = collector.total_memory(); let prev_proc = PrevProc { prev_idle: &mut collector.prev_idle, prev_non_idle: &mut collector.prev_non_idle, }; let proc_harvest_options = ProcHarvestOptions { use_current_cpu_total: collector.use_current_cpu_total, unnormalized_cpu: collector.unnormalized_cpu, }; let pid_mapping = &mut collector.pid_mapping; let user_table = &mut collector.user_table; let ProcHarvestOptions { use_current_cpu_total, unnormalized_cpu, } = proc_harvest_options; let PrevProc { prev_idle, prev_non_idle, } = prev_proc; // TODO: [PROC THREADS] Add threads if let Ok(CpuUsage { mut cpu_usage, cpu_fraction, }) = cpu_usage_calculation(prev_idle, prev_non_idle) { if unnormalized_cpu { use sysinfo::SystemExt; let num_processors = collector.sys.cpus().len() as f64; // Note we *divide* here because the later calculation divides `cpu_usage` - in effect, // multiplying over the number of cores. cpu_usage /= num_processors; } let mut pids_to_clear: HashSet = pid_mapping.keys().cloned().collect(); let pids = fs::read_dir("/proc")?.flatten().filter_map(|dir| { if is_str_numeric(dir.file_name().to_string_lossy().trim()) { Some(dir.path()) } else { None } }); let process_vector: Vec = pids .filter_map(|pid_path| { if let Ok(process) = Process::from_path(pid_path) { let pid = process.pid; let prev_proc_details = pid_mapping.entry(pid).or_default(); if let Ok((process_harvest, new_process_times)) = read_proc( prev_proc_details, process, cpu_usage, cpu_fraction, use_current_cpu_total, time_difference_in_secs, total_memory, user_table, ) { prev_proc_details.cpu_time = new_process_times; prev_proc_details.total_read_bytes = process_harvest.total_read_bytes; prev_proc_details.total_write_bytes = process_harvest.total_write_bytes; pids_to_clear.remove(&pid); return Some(process_harvest); } } None }) .collect(); pids_to_clear.iter().for_each(|pid| { pid_mapping.remove(pid); }); Ok(process_vector) } else { Err(BottomError::GenericError( "Could not calculate CPU usage.".to_string(), )) } } #[cfg(test)] mod tests { use super::*; #[test] fn test_proc_cpu_parse() { assert_eq!( (100_f64, 200_f64), fetch_cpu_usage("100 0 100 100"), "Failed to properly calculate idle/non-idle for /proc/stat CPU with 4 values" ); assert_eq!( (120_f64, 200_f64), fetch_cpu_usage("100 0 100 100 20"), "Failed to properly calculate idle/non-idle for /proc/stat CPU with 5 values" ); assert_eq!( (120_f64, 230_f64), fetch_cpu_usage("100 0 100 100 20 30"), "Failed to properly calculate idle/non-idle for /proc/stat CPU with 6 values" ); assert_eq!( (120_f64, 270_f64), fetch_cpu_usage("100 0 100 100 20 30 40"), "Failed to properly calculate idle/non-idle for /proc/stat CPU with 7 values" ); assert_eq!( (120_f64, 320_f64), fetch_cpu_usage("100 0 100 100 20 30 40 50"), "Failed to properly calculate idle/non-idle for /proc/stat CPU with 8 values" ); assert_eq!( (120_f64, 320_f64), fetch_cpu_usage("100 0 100 100 20 30 40 50 100"), "Failed to properly calculate idle/non-idle for /proc/stat CPU with 9 values" ); assert_eq!( (120_f64, 320_f64), fetch_cpu_usage("100 0 100 100 20 30 40 50 100 200"), "Failed to properly calculate idle/non-idle for /proc/stat CPU with 10 values" ); } } bottom-0.9.6/src/app/data_harvester/processes/linux/000077500000000000000000000000001447252316700225555ustar00rootroot00000000000000bottom-0.9.6/src/app/data_harvester/processes/linux/process.rs000066400000000000000000000216601447252316700246060ustar00rootroot00000000000000//! Linux process code for getting process data via `/proc/`. //! Based on the [procfs](https://github.com/eminence/procfs) crate. use std::{ fs::File, io::{self, BufRead, BufReader, Read}, path::PathBuf, }; use anyhow::anyhow; use libc::uid_t; use once_cell::sync::Lazy; use rustix::{ fd::OwnedFd, fs::{Mode, OFlags}, path::Arg, }; use crate::Pid; static PAGESIZE: Lazy = Lazy::new(|| rustix::param::page_size() as u64); #[inline] fn next_part<'a>(iter: &mut impl Iterator) -> Result<&'a str, io::Error> { iter.next() .ok_or_else(|| io::Error::from(io::ErrorKind::InvalidData)) } /// A wrapper around the data in `/proc//stat`. For documentation, see [here](https://man7.org/linux/man-pages/man5/proc.5.html). /// /// Note this does not necessarily get all fields, only the ones we use in bottom. pub(crate) struct Stat { /// The filename of the executable without parentheses. pub comm: String, /// The current process state, represented by a char. pub state: char, /// The parent process PID. pub ppid: Pid, /// The amount of time this process has been scheduled in user mode in clock ticks. pub utime: u64, /// The amount of time this process has been scheduled in kernel mode in clock ticks. pub stime: u64, /// The resident set size, or the number of pages the process has in real memory. pub rss: u64, } impl Stat { #[inline] fn from_file(mut f: File, buffer: &mut String) -> anyhow::Result { // Since this is just one line, we can read it all at once. However, since it might have non-utf8 characters, // we can't just use read_to_string. f.read_to_end(unsafe { buffer.as_mut_vec() })?; let line = buffer.to_string_lossy(); let line = line.trim(); let (comm, rest) = { let start_paren = line .find('(') .ok_or_else(|| anyhow!("start paren missing"))?; let end_paren = line.find(')').ok_or_else(|| anyhow!("end paren missing"))?; ( line[start_paren + 1..end_paren].to_string(), &line[end_paren + 2..], ) }; let mut rest = rest.split(' '); let state = next_part(&mut rest)? .chars() .next() .ok_or_else(|| anyhow!("missing state"))?; let ppid: Pid = next_part(&mut rest)?.parse()?; // Skip 9 fields until utime (pgrp, session, tty_nr, tpgid, flags, minflt, cminflt, majflt, cmajflt). let mut rest = rest.skip(9); let utime: u64 = next_part(&mut rest)?.parse()?; let stime: u64 = next_part(&mut rest)?.parse()?; // Skip 8 fields until rss (cutime, cstime, priority, nice, num_threads, itrealvalue, starttime, vsize). let mut rest = rest.skip(8); let rss: u64 = next_part(&mut rest)?.parse()?; Ok(Stat { comm, state, ppid, utime, stime, rss, }) } /// Returns the Resident Set Size in bytes. #[inline] pub fn rss_bytes(&self) -> u64 { self.rss * *PAGESIZE } } /// A wrapper around the data in `/proc//io`. /// /// Note this does not necessarily get all fields, only the ones we use in bottom. pub(crate) struct Io { pub read_bytes: u64, pub write_bytes: u64, } impl Io { #[inline] fn from_file(f: File, buffer: &mut String) -> anyhow::Result { const NUM_FIELDS: u16 = 0; // Make sure to update this if you want more fields! enum Fields { ReadBytes, WriteBytes, } let mut read_fields = 0; let mut reader = BufReader::new(f); let mut read_bytes = 0; let mut write_bytes = 0; // This saves us from doing a string allocation on each iteration compared to `lines()`. while let Ok(bytes) = reader.read_line(buffer) { if bytes > 0 { if buffer.is_empty() { // Empty, no need to clear. continue; } let mut parts = buffer.split_whitespace(); if let Some(field) = parts.next() { let curr_field = match field { "read_bytes:" => Fields::ReadBytes, "write_bytes:" => Fields::WriteBytes, _ => { buffer.clear(); continue; } }; if let Some(value) = parts.next() { let value = value.parse::()?; match curr_field { Fields::ReadBytes => { read_bytes = value; read_fields += 1; } Fields::WriteBytes => { write_bytes = value; read_fields += 1; } } } } // Quick short circuit if we have already read all the required fields. if read_fields == NUM_FIELDS { break; } buffer.clear(); } else { break; } } Ok(Io { read_bytes, write_bytes, }) } } /// A wrapper around a Linux process operations in `/proc/`. /// /// Core documentation based on [proc's manpages](https://man7.org/linux/man-pages/man5/proc.5.html). pub(crate) struct Process { pub pid: Pid, pub uid: Option, pub stat: Stat, pub io: anyhow::Result, pub cmdline: anyhow::Result>, } #[inline] fn reset(root: &mut PathBuf, buffer: &mut String) { root.pop(); buffer.clear(); } impl Process { /// Creates a new [`Process`] given a `/proc/` path. This may fail if the process /// no longer exists or there are permissions issues. /// /// Note that this pre-allocates fields on **creation**! As such, some data might end /// up "outdated" depending on when you call some of the methods. Therefore, this struct /// is only useful for either fields that are unlikely to change, or are short-lived and /// will be discarded quickly. pub(crate) fn from_path(pid_path: PathBuf) -> anyhow::Result { // TODO: Pass in a buffer vec/string to share? let fd = rustix::fs::openat( rustix::fs::CWD, &pid_path, OFlags::PATH | OFlags::DIRECTORY | OFlags::CLOEXEC, Mode::empty(), )?; let pid = pid_path .as_path() .components() .last() .and_then(|s| s.to_string_lossy().parse::().ok()) .or_else(|| { rustix::fs::readlinkat(rustix::fs::CWD, &pid_path, vec![]) .ok() .and_then(|s| s.to_string_lossy().parse::().ok()) }) .ok_or_else(|| anyhow!("PID for {pid_path:?} was not found"))?; let uid = { let metadata = rustix::fs::fstat(&fd); match metadata { Ok(md) => Some(md.st_uid), Err(_) => None, } }; let mut root = pid_path; let mut buffer = String::new(); // NB: Whenever you add a new stat, make sure to pop the root and clear the buffer! let stat = open_at(&mut root, "stat", &fd).and_then(|file| Stat::from_file(file, &mut buffer))?; reset(&mut root, &mut buffer); let cmdline = cmdline(&mut root, &fd, &mut buffer); reset(&mut root, &mut buffer); let io = open_at(&mut root, "io", &fd).and_then(|file| Io::from_file(file, &mut buffer)); Ok(Process { pid, uid, stat, io, cmdline, }) } } #[inline] fn cmdline(root: &mut PathBuf, fd: &OwnedFd, buffer: &mut String) -> anyhow::Result> { open_at(root, "cmdline", fd) .map(|mut file| file.read_to_string(buffer)) .map(|_| { buffer .split('\0') .filter_map(|s| { if !s.is_empty() { Some(s.to_string()) } else { None } }) .collect::>() }) .map_err(Into::into) } /// Opens a path. Note that this function takes in a mutable root - this will mutate it to avoid allocations. You /// probably will want to pop the most recent child after if you need to use the buffer again. #[inline] fn open_at(root: &mut PathBuf, child: &str, fd: &OwnedFd) -> anyhow::Result { root.push(child); let new_fd = rustix::fs::openat(fd, &*root, OFlags::RDONLY | OFlags::CLOEXEC, Mode::empty())?; Ok(File::from(new_fd)) } bottom-0.9.6/src/app/data_harvester/processes/macos.rs000066400000000000000000000035331447252316700230720ustar00rootroot00000000000000//! Process data collection for macOS. Uses sysinfo and custom bindings. use std::io; use std::process::Command; use hashbrown::HashMap; use itertools::Itertools; use sysinfo::{PidExt, ProcessExt}; use super::UnixProcessExt; use crate::Pid; mod sysctl_bindings; pub(crate) struct MacOSProcessExt; impl UnixProcessExt for MacOSProcessExt { #[inline] fn has_backup_proc_cpu_fn() -> bool { true } fn backup_proc_cpu(pids: &[Pid]) -> io::Result> { let output = Command::new("ps") .args(["-o", "pid=,pcpu=", "-p"]) .arg( // Has to look like this since otherwise, it you hit a `unstable_name_collisions` warning. Itertools::intersperse(pids.iter().map(i32::to_string), ",".to_string()) .collect::(), ) .output()?; let mut result = HashMap::new(); String::from_utf8_lossy(&output.stdout) .split_whitespace() .chunks(2) .into_iter() .for_each(|chunk| { let chunk: Vec<&str> = chunk.collect(); if chunk.len() != 2 { panic!("Unexpected `ps` output"); } let pid = chunk[0].parse(); let usage = chunk[1].parse(); if let (Ok(pid), Ok(usage)) = (pid, usage) { result.insert(pid, usage); } }); Ok(result) } fn parent_pid(process_val: &sysinfo::Process) -> Option { process_val .parent() .map(|p| p.as_u32() as _) .or_else(|| fallback_macos_ppid(process_val.pid().as_u32() as _)) } } fn fallback_macos_ppid(pid: Pid) -> Option { sysctl_bindings::kinfo_process(pid) .map(|kinfo| kinfo.kp_eproc.e_ppid) .ok() } bottom-0.9.6/src/app/data_harvester/processes/macos/000077500000000000000000000000001447252316700225205ustar00rootroot00000000000000bottom-0.9.6/src/app/data_harvester/processes/macos/sysctl_bindings.rs000066400000000000000000000175571447252316700263030ustar00rootroot00000000000000//! Partial bindings from Apple's open source code for getting process information. //! Some of this is based on [heim's binding implementation](https://github.com/heim-rs/heim/blob/master/heim-process/src/sys/macos/bindings/process.rs). use std::mem; use anyhow::{bail, Result}; use libc::{ boolean_t, c_char, c_long, c_short, c_uchar, c_ushort, c_void, dev_t, gid_t, itimerval, pid_t, rusage, sigset_t, timeval, uid_t, xucred, CTL_KERN, KERN_PROC, KERN_PROC_PID, MAXCOMLEN, }; use mach2::vm_types::user_addr_t; use crate::Pid; #[allow(non_camel_case_types)] #[repr(C)] pub(crate) struct kinfo_proc { pub kp_proc: extern_proc, pub kp_eproc: eproc, } #[allow(non_camel_case_types)] #[repr(C)] #[derive(Copy, Clone)] pub struct p_st1 { /// Doubly-linked run/sleep queue. p_forw: user_addr_t, p_back: user_addr_t, } #[allow(non_camel_case_types)] #[repr(C)] pub union p_un { pub p_st1: p_st1, /// process start time pub p_starttime: timeval, } /// Exported fields for kern sysctl. See /// [`proc.h`](https://opensource.apple.com/source/xnu/xnu-201/bsd/sys/proc.h) #[allow(non_camel_case_types)] #[repr(C)] pub(crate) struct extern_proc { pub p_un: p_un, /// Address space. pub p_vmspace: *mut vmspace, /// Signal actions, state (PROC ONLY). Should point to /// a `sigacts` but we don't really seem to need this. pub p_sigacts: user_addr_t, /// P_* flags. pub p_flag: i32, /// S* process status. pub p_stat: c_char, /// Process identifier. pub p_pid: pid_t, /// Save parent pid during ptrace. pub p_oppid: pid_t, /// Sideways return value from fdopen. pub p_dupfd: i32, /// where user stack was allocated pub user_stack: caddr_t, /// Which thread is exiting? pub exit_thread: *mut c_void, /// allow to debug pub p_debugger: i32, /// indication to suspend pub sigwait: boolean_t, /// Time averaged value of p_cpticks. pub p_estcpu: u32, /// Ticks of cpu time. pub p_cpticks: i32, /// %cpu for this process during p_swtime pub p_pctcpu: fixpt_t, /// Sleep address. pub p_wchan: *mut c_void, /// Reason for sleep. pub p_wmesg: *mut c_char, /// Time swapped in or out. pub p_swtime: u32, /// Time since last blocked. pub p_slptime: u32, /// Alarm timer. pub p_realtimer: itimerval, /// Real time. pub p_rtime: timeval, /// Statclock hit in user mode. pub p_uticks: u64, /// Statclock hits in system mode. pub p_sticks: u64, /// Statclock hits processing intr. pub p_iticks: u64, /// Kernel trace points. pub p_traceflag: i32, /// Trace to vnode. Originally a pointer to a struct of vnode. pub p_tracep: *mut c_void, /// DEPRECATED. pub p_siglist: i32, /// Vnode of executable. Originally a pointer to a struct of vnode. pub p_textvp: *mut c_void, /// If non-zero, don't swap. pub p_holdcnt: i32, /// DEPRECATED. pub p_sigmask: sigset_t, /// Signals being ignored. pub p_sigignore: sigset_t, /// Signals being caught by user. pub p_sigcatch: sigset_t, /// Process priority. pub p_priority: c_uchar, /// User-priority based on p_cpu and p_nice. pub p_usrpri: c_uchar, /// Process "nice" value. pub p_nice: c_char, pub p_comm: [c_char; MAXCOMLEN + 1], /// Pointer to process group. Originally a pointer to a `pgrp`. pub p_pgrp: *mut c_void, /// Kernel virtual addr of u-area (PROC ONLY). Originally a pointer to a `user`. pub p_addr: *mut c_void, /// Exit status for wait; also stop signal. pub p_xstat: c_ushort, /// Accounting flags. pub p_acflag: c_ushort, /// Exit information. XXX pub p_ru: *mut rusage, } const WMESGLEN: usize = 7; const COMAPT_MAXLOGNAME: usize = 12; /// See `_caddr_t.h`. #[allow(non_camel_case_types)] type caddr_t = *const libc::c_char; /// See `types.h`. #[allow(non_camel_case_types)] type segsz_t = i32; /// See `types.h`. #[allow(non_camel_case_types)] type fixpt_t = u32; /// See [`proc.h`](https://opensource.apple.com/source/xnu/xnu-201/bsd/sys/proc.h) #[allow(non_camel_case_types)] #[repr(C)] pub(crate) struct pcred { pub pc_lock: [c_char; 72], pub pc_ucred: *mut xucred, pub p_ruid: uid_t, pub p_svuid: uid_t, pub p_rgid: gid_t, pub p_svgid: gid_t, pub p_refcnt: i32, } /// See `vm.h`. #[allow(non_camel_case_types)] #[repr(C)] pub(crate) struct vmspace { pub dummy: i32, pub dummy2: caddr_t, pub dummy3: [i32; 5], pub dummy4: [caddr_t; 3], } /// See [`sysctl.h`](https://opensource.apple.com/source/xnu/xnu-344/bsd/sys/sysctl.h). #[allow(non_camel_case_types)] #[repr(C)] pub(crate) struct eproc { /// Address of proc. We just cheat and use a c_void pointer since we aren't using this. pub e_paddr: *mut c_void, /// Session pointer. We just cheat and use a c_void pointer since we aren't using this. pub e_sess: *mut c_void, /// Process credentials pub e_pcred: pcred, /// Current credentials pub e_ucred: xucred, /// Address space pub e_vm: vmspace, /// Parent process ID pub e_ppid: pid_t, /// Process group ID pub e_pgid: pid_t, /// Job control counter pub e_jobc: c_short, /// Controlling tty dev pub e_tdev: dev_t, /// tty process group id pub e_tpgid: pid_t, /// tty session pointer. We just cheat and use a c_void pointer since we aren't using this. pub e_tsess: *mut c_void, /// wchan message pub e_wmesg: [c_char; WMESGLEN + 1], /// text size pub e_xsize: segsz_t, /// text rss pub e_xrssize: c_short, /// text references pub e_xccount: c_short, pub e_xswrss: c_short, pub e_flag: c_long, /// short setlogin() name pub e_login: [c_char; COMAPT_MAXLOGNAME], pub e_spare: [c_long; 4], } /// Obtains the [`kinfo_proc`] given a process PID. /// /// Based on the implementation from [heim](https://github.com/heim-rs/heim/blob/master/heim-process/src/sys/macos/bindings/process.rs#L235). pub(crate) fn kinfo_process(pid: Pid) -> Result { let mut name: [i32; 4] = [CTL_KERN, KERN_PROC, KERN_PROC_PID, pid]; let mut size = mem::size_of::(); let mut info = mem::MaybeUninit::::uninit(); // SAFETY: libc binding, we assume all arguments are valid. let result = unsafe { libc::sysctl( name.as_mut_ptr(), 4, info.as_mut_ptr() as *mut libc::c_void, &mut size, std::ptr::null_mut(), 0, ) }; if result < 0 { bail!("failed to get process for pid {pid}"); } // sysctl succeeds but size is zero, happens when process has gone away if size == 0 { bail!("failed to get process for pid {pid}"); } // SAFETY: info is initialized if result succeeded and returned a non-negative result. If sysctl failed, it returns // -1 with errno set. // // Source: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man3/sysctl.3.html unsafe { Ok(info.assume_init()) } } #[cfg(test)] mod test { use std::mem; use super::*; /// A quick test to ensure that things are sized correctly. #[test] fn test_struct_sizes() { assert_eq!(mem::size_of::(), 16); assert_eq!(mem::align_of::(), 8); assert_eq!(mem::size_of::(), 104); assert_eq!(mem::align_of::(), 8); assert_eq!(mem::size_of::(), 64); assert_eq!(mem::align_of::(), 8); assert_eq!(mem::size_of::(), 296); assert_eq!(mem::align_of::(), 8); assert_eq!(mem::size_of::(), 376); assert_eq!(mem::align_of::(), 8); assert_eq!(mem::size_of::(), 672); assert_eq!(mem::align_of::(), 8); } } bottom-0.9.6/src/app/data_harvester/processes/unix.rs000066400000000000000000000025551447252316700227560ustar00rootroot00000000000000//! Unix-specific parts of process collection. mod user_table; use cfg_if::cfg_if; pub use user_table::*; cfg_if! { if #[cfg(all(target_family = "unix", not(target_os = "linux")))] { mod process_ext; pub(crate) use process_ext::*; use super::ProcessHarvest; use crate::app::data_harvester::{DataCollector, processes::*}; use crate::utils::error; pub fn sysinfo_process_data(collector: &mut DataCollector) -> error::Result> { let sys = &collector.sys; let use_current_cpu_total = collector.use_current_cpu_total; let unnormalized_cpu = collector.unnormalized_cpu; let total_memory = collector.total_memory(); let user_table = &mut collector.user_table; cfg_if! { if #[cfg(target_os = "macos")] { MacOSProcessExt::sysinfo_process_data(sys, use_current_cpu_total, unnormalized_cpu, total_memory, user_table) } else if #[cfg(target_os = "freebsd")] { FreeBSDProcessExt::sysinfo_process_data(sys, use_current_cpu_total, unnormalized_cpu, total_memory, user_table) } else { GenericProcessExt::sysinfo_process_data(sys, use_current_cpu_total, unnormalized_cpu, total_memory, user_table) } } } } } bottom-0.9.6/src/app/data_harvester/processes/unix/000077500000000000000000000000001447252316700224015ustar00rootroot00000000000000bottom-0.9.6/src/app/data_harvester/processes/unix/process_ext.rs000066400000000000000000000124321447252316700253070ustar00rootroot00000000000000//! Shared process data harvesting code from macOS and FreeBSD via sysinfo. use std::io; use std::time::Duration; use hashbrown::HashMap; use sysinfo::{CpuExt, PidExt, ProcessExt, ProcessStatus, System, SystemExt}; use super::ProcessHarvest; use crate::{data_harvester::processes::UserTable, utils::error, Pid}; pub(crate) trait UnixProcessExt { fn sysinfo_process_data( sys: &System, use_current_cpu_total: bool, unnormalized_cpu: bool, total_memory: u64, user_table: &mut UserTable, ) -> error::Result> { let mut process_vector: Vec = Vec::new(); let process_hashmap = sys.processes(); let cpu_usage = sys.global_cpu_info().cpu_usage() as f64 / 100.0; let num_processors = sys.cpus().len() as f64; for process_val in process_hashmap.values() { let name = if process_val.name().is_empty() { let process_cmd = process_val.cmd(); if process_cmd.len() > 1 { process_cmd[0].clone() } else { let process_exe = process_val.exe().file_stem(); if let Some(exe) = process_exe { let process_exe_opt = exe.to_str(); if let Some(exe_name) = process_exe_opt { exe_name.to_string() } else { "".to_string() } } else { "".to_string() } } } else { process_val.name().to_string() }; let command = { let command = process_val.cmd().join(" "); if command.is_empty() { name.to_string() } else { command } }; let pcu = { let usage = process_val.cpu_usage() as f64; if unnormalized_cpu || num_processors == 0.0 { usage } else { usage / num_processors } }; let process_cpu_usage = if use_current_cpu_total && cpu_usage > 0.0 { pcu / cpu_usage } else { pcu } as f32; let disk_usage = process_val.disk_usage(); let process_state = { let ps = process_val.status(); (ps.to_string(), convert_process_status_to_char(ps)) }; let uid = process_val.user_id().map(|u| **u); let pid = process_val.pid().as_u32() as Pid; process_vector.push(ProcessHarvest { pid, parent_pid: Self::parent_pid(process_val), name, command, mem_usage_percent: if total_memory > 0 { (process_val.memory() as f64 * 100.0 / total_memory as f64) as f32 } else { 0.0 }, mem_usage_bytes: process_val.memory(), cpu_usage_percent: process_cpu_usage, read_bytes_per_sec: disk_usage.read_bytes, write_bytes_per_sec: disk_usage.written_bytes, total_read_bytes: disk_usage.total_read_bytes, total_write_bytes: disk_usage.total_written_bytes, process_state, uid, user: uid .and_then(|uid| { user_table .get_uid_to_username_mapping(uid) .map(Into::into) .ok() }) .unwrap_or_else(|| "N/A".into()), time: Duration::from_secs(process_val.run_time()), }); } if Self::has_backup_proc_cpu_fn() { let unknown_state = ProcessStatus::Unknown(0).to_string(); let cpu_usage_unknown_pids: Vec = process_vector .iter() .filter(|process| process.process_state.0 == unknown_state) .map(|process| process.pid) .collect(); let cpu_usages = Self::backup_proc_cpu(&cpu_usage_unknown_pids)?; for process in &mut process_vector { if cpu_usages.contains_key(&process.pid) { process.cpu_usage_percent = if unnormalized_cpu || num_processors == 0.0 { *cpu_usages.get(&process.pid).unwrap() } else { *cpu_usages.get(&process.pid).unwrap() / num_processors } as f32; } } } Ok(process_vector) } #[inline] fn has_backup_proc_cpu_fn() -> bool { false } fn backup_proc_cpu(_pids: &[Pid]) -> io::Result> { Ok(HashMap::default()) } fn parent_pid(process_val: &sysinfo::Process) -> Option { process_val.parent().map(|p| p.as_u32() as _) } } fn convert_process_status_to_char(status: ProcessStatus) -> char { match status { ProcessStatus::Run => 'R', ProcessStatus::Sleep => 'S', ProcessStatus::Idle => 'D', ProcessStatus::Zombie => 'Z', _ => '?', } } bottom-0.9.6/src/app/data_harvester/processes/unix/user_table.rs000066400000000000000000000017601447252316700251000ustar00rootroot00000000000000use hashbrown::HashMap; use crate::utils::error; #[derive(Debug, Default)] pub struct UserTable { pub uid_user_mapping: HashMap, } impl UserTable { pub fn get_uid_to_username_mapping(&mut self, uid: libc::uid_t) -> error::Result { if let Some(user) = self.uid_user_mapping.get(&uid) { Ok(user.clone()) } else { // SAFETY: getpwuid returns a null pointer if no passwd entry is found for the uid let passwd = unsafe { libc::getpwuid(uid) }; if passwd.is_null() { Err(error::BottomError::QueryError("Missing passwd".into())) } else { // SAFETY: We return early if passwd is null. let username = unsafe { std::ffi::CStr::from_ptr((*passwd).pw_name) } .to_str()? .to_string(); self.uid_user_mapping.insert(uid, username.clone()); Ok(username) } } } } bottom-0.9.6/src/app/data_harvester/processes/windows.rs000066400000000000000000000071501447252316700234610ustar00rootroot00000000000000//! Process data collection for Windows. Uses sysinfo. use std::time::Duration; use sysinfo::{CpuExt, PidExt, ProcessExt, SystemExt, UserExt}; use super::ProcessHarvest; use crate::data_harvester::DataCollector; pub fn sysinfo_process_data( collector: &mut DataCollector, ) -> crate::utils::error::Result> { let sys = &collector.sys; let use_current_cpu_total = collector.use_current_cpu_total; let unnormalized_cpu = collector.unnormalized_cpu; let total_memory = collector.total_memory(); let mut process_vector: Vec = Vec::new(); let process_hashmap = sys.processes(); let cpu_usage = sys.global_cpu_info().cpu_usage() as f64 / 100.0; let num_processors = sys.cpus().len(); for process_val in process_hashmap.values() { let name = if process_val.name().is_empty() { let process_cmd = process_val.cmd(); if process_cmd.len() > 1 { process_cmd[0].clone() } else { let process_exe = process_val.exe().file_stem(); if let Some(exe) = process_exe { let process_exe_opt = exe.to_str(); if let Some(exe_name) = process_exe_opt { exe_name.to_string() } else { "".to_string() } } else { "".to_string() } } } else { process_val.name().to_string() }; let command = { let command = process_val.cmd().join(" "); if command.is_empty() { name.to_string() } else { command } }; let pcu = { let usage = process_val.cpu_usage() as f64; if unnormalized_cpu || num_processors == 0 { usage } else { usage / (num_processors as f64) } }; let process_cpu_usage = if use_current_cpu_total && cpu_usage > 0.0 { pcu / cpu_usage } else { pcu } as f32; let disk_usage = process_val.disk_usage(); let process_state = (process_val.status().to_string(), 'R'); process_vector.push(ProcessHarvest { pid: process_val.pid().as_u32() as _, parent_pid: process_val.parent().map(|p| p.as_u32() as _), name, command, mem_usage_percent: if total_memory > 0 { process_val.memory() as f64 * 100.0 / total_memory as f64 } else { 0.0 } as f32, mem_usage_bytes: process_val.memory(), cpu_usage_percent: process_cpu_usage, read_bytes_per_sec: disk_usage.read_bytes, write_bytes_per_sec: disk_usage.written_bytes, total_read_bytes: disk_usage.total_read_bytes, total_write_bytes: disk_usage.total_written_bytes, process_state, user: process_val .user_id() .and_then(|uid| sys.get_user_by_id(uid)) .map_or_else(|| "N/A".into(), |user| user.name().to_owned().into()), time: if process_val.start_time() == 0 { // Workaround for Windows occasionally returning a start time equal to UNIX epoch, giving a run time // in the range of 50+ years. We just return a time of zero in this case for simplicity. Duration::ZERO } else { Duration::from_secs(process_val.run_time()) }, }); } Ok(process_vector) } bottom-0.9.6/src/app/data_harvester/temperature.rs000066400000000000000000000024261447252316700223170ustar00rootroot00000000000000//! Data collection for temperature metrics. //! //! For Linux and macOS, this is handled by Heim. //! For Windows, this is handled by sysinfo. cfg_if::cfg_if! { if #[cfg(target_os = "linux")] { pub mod linux; pub use self::linux::*; } else if #[cfg(any(target_os = "freebsd", target_os = "macos", target_os = "windows", target_os = "android", target_os = "ios"))] { pub mod sysinfo; pub use self::sysinfo::*; } } #[cfg(feature = "nvidia")] pub mod nvidia; use crate::app::Filter; #[derive(Default, Debug, Clone)] pub struct TempHarvest { pub name: String, pub temperature: f32, } #[derive(Clone, Debug, Copy, PartialEq, Eq, Default)] pub enum TemperatureType { #[default] Celsius, Kelvin, Fahrenheit, } fn convert_celsius_to_kelvin(celsius: f32) -> f32 { celsius + 273.15 } fn convert_celsius_to_fahrenheit(celsius: f32) -> f32 { (celsius * (9.0 / 5.0)) + 32.0 } fn is_temp_filtered(filter: &Option, text: &str) -> bool { if let Some(filter) = filter { let mut ret = filter.is_list_ignored; for r in &filter.list { if r.is_match(text) { ret = !filter.is_list_ignored; break; } } ret } else { true } } bottom-0.9.6/src/app/data_harvester/temperature/000077500000000000000000000000001447252316700217455ustar00rootroot00000000000000bottom-0.9.6/src/app/data_harvester/temperature/linux.rs000066400000000000000000000411711447252316700234560ustar00rootroot00000000000000//! Gets temperature sensor data for Linux platforms. use std::{ fs, path::{Path, PathBuf}, }; use anyhow::Result; use hashbrown::{HashMap, HashSet}; use super::{is_temp_filtered, TempHarvest, TemperatureType}; use crate::app::{ data_harvester::temperature::{convert_celsius_to_fahrenheit, convert_celsius_to_kelvin}, Filter, }; const EMPTY_NAME: &str = "Unknown"; /// Returned results from grabbing hwmon/coretemp temperature sensor values/names. struct HwmonResults { temperatures: Vec, num_hwmon: usize, } /// Parses and reads temperatures that were in millidegree Celsius, and if successful, returns a temperature in Celsius. fn read_temp(path: &Path) -> Result { Ok(fs::read_to_string(path)? .trim_end() .parse::() .map_err(|e| crate::utils::error::BottomError::ConversionError(e.to_string()))? / 1_000.0) } fn convert_temp_unit(temp: f32, temp_type: &TemperatureType) -> f32 { match temp_type { TemperatureType::Celsius => temp, TemperatureType::Kelvin => convert_celsius_to_kelvin(temp), TemperatureType::Fahrenheit => convert_celsius_to_fahrenheit(temp), } } /// Get all candidates from hwmon and coretemp. It will also return the number of entries from hwmon. fn get_hwmon_candidates() -> (HashSet, usize) { let mut dirs = HashSet::default(); if let Ok(read_dir) = Path::new("/sys/class/hwmon").read_dir() { for entry in read_dir.flatten() { let mut path = entry.path(); // hwmon includes many sensors, we only want ones with at least one temperature sensor // Reading this file will wake the device, but we're only checking existence, so it should be fine. if !path.join("temp1_input").exists() { // Note we also check for a `device` subdirectory (e.g. `/sys/class/hwmon/hwmon*/device/`). // This is needed for CentOS, which adds this extra `/device` directory. See: // - https://github.com/nicolargo/glances/issues/1060 // - https://github.com/giampaolo/psutil/issues/971 // - https://github.com/giampaolo/psutil/blob/642438375e685403b4cd60b0c0e25b80dd5a813d/psutil/_pslinux.py#L1316 // // If it does match, then add the `device/` directory to the path. if path.join("device/temp1_input").exists() { path.push("device"); } } dirs.insert(path); } } let num_hwmon = dirs.len(); if let Ok(read_dir) = Path::new("/sys/devices/platform").read_dir() { for entry in read_dir.flatten() { if entry.file_name().to_string_lossy().starts_with("coretemp.") { if let Ok(read_dir) = entry.path().join("hwmon").read_dir() { for entry in read_dir.flatten() { let path = entry.path(); if path.join("temp1_input").exists() { // It's possible that there are dupes (represented by symlinks) - the easy // way is to just substitute the parent directory and check if the hwmon // variant exists already in a set. // // For more info, see https://github.com/giampaolo/psutil/pull/1822/files if let Some(child) = path.file_name() { let to_check_path = Path::new("/sys/class/hwmon").join(child); if !dirs.contains(&to_check_path) { dirs.insert(path); } } } } } } } } (dirs, num_hwmon) } #[inline] fn read_to_string_lossy>(path: P) -> Option { fs::read(path) .map(|v| String::from_utf8_lossy(&v).trim().to_string()) .ok() } #[inline] fn humanize_name(name: String, sensor_name: Option<&String>) -> String { match sensor_name { Some(ty) => format!("{name} ({ty})"), None => name, } } #[inline] fn counted_name(seen_names: &mut HashMap, name: String) -> String { let name = if name.is_empty() { EMPTY_NAME.to_string() } else { name }; if let Some(count) = seen_names.get_mut(&name) { *count += 1; format!("{name} ({})", *count) } else { seen_names.insert(name.clone(), 0); name } } #[inline] fn finalize_name( hwmon_name: Option, sensor_label: Option, fallback_sensor_name: &Option, seen_names: &mut HashMap, ) -> String { let candidate_name = match (hwmon_name, sensor_label) { (Some(name), Some(label)) => format!("{name}: {label}"), (None, Some(label)) => match &fallback_sensor_name { Some(sensor_name) => format!("{sensor_name}: {label}"), None => label, }, (Some(name), None) => name, (None, None) => match &fallback_sensor_name { Some(sensor_name) => sensor_name.clone(), None => EMPTY_NAME.to_string(), }, }; counted_name(seen_names, candidate_name) } /// Get temperature sensors from the linux sysfs interface `/sys/class/hwmon` and /// `/sys/devices/platform/coretemp.*`. It returns all found temperature sensors, and the number /// of checked hwmon directories (not coretemp directories). /// /// For more details, see the relevant Linux kernel documentation: /// - [`/sys/class/hwmon`](https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-hwmon) /// - [`/sys/devices/platform/coretemp.*`](https://www.kernel.org/doc/html/v5.14/hwmon/coretemp.html) /// /// This method will return `0` as the temperature for devices, such as GPUs, /// that support power management features that have powered themselves off. /// Specifically, in laptops with iGPUs and dGPUs, if the dGPU is capable of /// entering ACPI D3cold, reading the temperature sensors will wake it, /// and keep it awake, wasting power. /// /// For such devices, this method will only query the sensors *only* if /// the device is already in ACPI D0. This has the notable issue that /// once this happens, the device will be *kept* on through the sensor /// reading, and not be able to re-enter ACPI D3cold. fn hwmon_temperatures(temp_type: &TemperatureType, filter: &Option) -> HwmonResults { let mut temperatures: Vec = vec![]; let mut seen_names: HashMap = HashMap::new(); let (dirs, num_hwmon) = get_hwmon_candidates(); // Note that none of this is async if we ever go back to it, but sysfs is in // memory, so in theory none of this should block if we're slightly careful. // Of note is that reading the temperature sensors of a device that has // `/sys/class/hwmon/hwmon*/device/power_state` == `D3cold` will // wake the device up, and will block until it initializes. // // Reading the `hwmon*/device/power_state` or `hwmon*/temp*_label` properties // will not wake the device, and thus not block, // and meaning no sensors have to be hidden depending on `power_state` // // It would probably be more ideal to use a proper async runtime; this would also allow easy cancellation/timeouts. for file_path in dirs { let sensor_name = read_to_string_lossy(file_path.join("name")); // Whether the temperature should *actually* be read during enumeration. // Set to false if the device is in ACPI D3cold. // // If it is false, then the temperature will be set to 0.0 later down the line. let should_read_temp = { // Documented at https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-devices-power_state let device = file_path.join("device"); let power_state = device.join("power_state"); if power_state.exists() { if let Ok(state) = fs::read_to_string(power_state) { let state = state.trim(); // The zenpower3 kernel module (incorrectly?) reports "unknown", causing this check // to fail and temperatures to appear as zero instead of having the file not exist. // // Their self-hosted git instance has disabled sign up, so this bug cant be reported either. state == "D0" || state == "unknown" } else { true } } else { true } }; if let Ok(dir_entries) = file_path.read_dir() { // Enumerate the devices temperature sensors for file in dir_entries.flatten() { let name = file.file_name(); let name = name.to_string_lossy(); // We only want temperature sensors, skip others early if !(name.starts_with("temp") && name.ends_with("input")) { continue; } let temp_path = file.path(); let sensor_label_path = file_path.join(name.replace("input", "label")); let sensor_label = read_to_string_lossy(sensor_label_path); // Do some messing around to get a more sensible name for sensors: // - For GPUs, this will use the kernel device name, ex `card0` // - For nvme drives, this will also use the kernel name, ex `nvme0`. // This is found differently than for GPUs // - For whatever acpitz is, on my machine this is now `thermal_zone0`. // - For k10temp, this will still be k10temp, but it has to be handled special. let hwmon_name = { let device = file_path.join("device"); // This will exist for GPUs but not others, this is how we find their kernel name. let drm = device.join("drm"); if drm.exists() { // This should never actually be empty. If it is though, we'll fall back to the sensor name // later on. let mut gpu = None; if let Ok(cards) = drm.read_dir() { for card in cards.flatten() { if let Some(name) = card.file_name().to_str() { if name.starts_with("card") { gpu = Some(humanize_name( name.trim().to_string(), sensor_name.as_ref(), )); break; } } } } gpu } else { // This little mess is to account for stuff like k10temp. This is needed because the // `device` symlink points to `nvme*` for nvme drives, but to PCI buses for anything // else. If the first character is alphabetic, it's an actual name like k10temp or // nvme0, not a PCI bus. fs::read_link(device).ok().and_then(|link| { let link = link .file_name() .and_then(|f| f.to_str()) .map(|s| s.trim().to_owned()); match link { Some(link) if link.as_bytes()[0].is_ascii_alphabetic() => { Some(humanize_name(link, sensor_name.as_ref())) } _ => None, } }) } }; let name = finalize_name(hwmon_name, sensor_label, &sensor_name, &mut seen_names); if is_temp_filtered(filter, &name) { let temp = if should_read_temp { if let Ok(temp) = read_temp(&temp_path) { temp } else { continue; } } else { 0.0 }; temperatures.push(TempHarvest { name, temperature: convert_temp_unit(temp, temp_type), }); } } } } HwmonResults { temperatures, num_hwmon, } } /// Gets data from `/sys/class/thermal/thermal_zone*`. This should only be used if /// [`hwmon_temperatures`] doesn't return anything. /// /// See [the Linux kernel documentation](https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-thermal) /// for more details. fn add_thermal_zone_temperatures( temperatures: &mut Vec, temp_type: &TemperatureType, filter: &Option, ) { let path = Path::new("/sys/class/thermal"); let Ok(read_dir) = path.read_dir() else { return; }; let mut seen_names: HashMap = HashMap::new(); for entry in read_dir.flatten() { if entry .file_name() .to_string_lossy() .starts_with("thermal_zone") { let file_path = entry.path(); let name_path = file_path.join("type"); if let Some(name) = read_to_string_lossy(name_path) { if is_temp_filtered(filter, &name) { let temp_path = file_path.join("temp"); if let Ok(temp) = read_temp(&temp_path) { let name = counted_name(&mut seen_names, name); temperatures.push(TempHarvest { name, temperature: convert_temp_unit(temp, temp_type), }); } } } } } } /// Gets temperature sensors and data. pub fn get_temperature_data( temp_type: &TemperatureType, filter: &Option, ) -> Result>> { let mut results = hwmon_temperatures(temp_type, filter); if results.num_hwmon == 0 { add_thermal_zone_temperatures(&mut results.temperatures, temp_type, filter); } #[cfg(feature = "nvidia")] { super::nvidia::add_nvidia_data(&mut results.temperatures, temp_type, filter)?; } Ok(Some(results.temperatures)) } #[cfg(test)] mod tests { use hashbrown::HashMap; use super::finalize_name; #[test] fn test_finalize_name() { let mut seen_names = HashMap::new(); assert_eq!( finalize_name( Some("hwmon".to_string()), Some("sensor".to_string()), &Some("test".to_string()), &mut seen_names ), "hwmon: sensor" ); assert_eq!( finalize_name( Some("hwmon".to_string()), None, &Some("test".to_string()), &mut seen_names ), "hwmon" ); assert_eq!( finalize_name( None, Some("sensor".to_string()), &Some("test".to_string()), &mut seen_names ), "test: sensor" ); assert_eq!( finalize_name( Some("hwmon".to_string()), Some("sensor".to_string()), &Some("test".to_string()), &mut seen_names ), "hwmon: sensor (1)" ); assert_eq!( finalize_name(None, None, &Some("test".to_string()), &mut seen_names), "test" ); assert_eq!(finalize_name(None, None, &None, &mut seen_names), "Unknown"); assert_eq!( finalize_name(None, None, &Some("test".to_string()), &mut seen_names), "test (1)" ); assert_eq!( finalize_name(None, None, &None, &mut seen_names), "Unknown (1)" ); assert_eq!( finalize_name(Some(String::default()), None, &None, &mut seen_names), "Unknown (2)" ); assert_eq!( finalize_name(None, Some(String::default()), &None, &mut seen_names), "Unknown (3)" ); assert_eq!( finalize_name(None, None, &Some(String::default()), &mut seen_names), "Unknown (4)" ); } } bottom-0.9.6/src/app/data_harvester/temperature/nvidia.rs000066400000000000000000000030141447252316700235630ustar00rootroot00000000000000use nvml_wrapper::enum_wrappers::device::TemperatureSensor; use super::{ convert_celsius_to_fahrenheit, convert_celsius_to_kelvin, is_temp_filtered, TempHarvest, TemperatureType, }; use crate::app::Filter; use crate::data_harvester::nvidia::NVML_DATA; use crate::utils::error; pub fn add_nvidia_data( temperature_vec: &mut Vec, temp_type: &TemperatureType, filter: &Option, ) -> error::Result<()> { if let Ok(nvml) = &*NVML_DATA { if let Ok(gpu_num) = nvml.device_count() { for i in 0..gpu_num { if let Ok(device) = nvml.device_by_index(i) { if let (Ok(name), Ok(temperature)) = (device.name(), device.temperature(TemperatureSensor::Gpu)) { if is_temp_filtered(filter, &name) { let temperature = temperature as f32; let temperature = match temp_type { TemperatureType::Celsius => temperature, TemperatureType::Kelvin => convert_celsius_to_kelvin(temperature), TemperatureType::Fahrenheit => { convert_celsius_to_fahrenheit(temperature) } }; temperature_vec.push(TempHarvest { name, temperature }); } } } } } } Ok(()) } bottom-0.9.6/src/app/data_harvester/temperature/sysinfo.rs000066400000000000000000000044331447252316700240110ustar00rootroot00000000000000//! Gets temperature data via sysinfo. use anyhow::Result; use super::{ convert_celsius_to_fahrenheit, convert_celsius_to_kelvin, is_temp_filtered, TempHarvest, TemperatureType, }; use crate::app::Filter; pub fn get_temperature_data( sys: &sysinfo::System, temp_type: &TemperatureType, filter: &Option, ) -> Result>> { use sysinfo::{ComponentExt, SystemExt}; let mut temperature_vec: Vec = Vec::new(); let sensor_data = sys.components(); for component in sensor_data { let name = component.label().to_string(); if is_temp_filtered(filter, &name) { temperature_vec.push(TempHarvest { name, temperature: match temp_type { TemperatureType::Celsius => component.temperature(), TemperatureType::Kelvin => convert_celsius_to_kelvin(component.temperature()), TemperatureType::Fahrenheit => { convert_celsius_to_fahrenheit(component.temperature()) } }, }); } } #[cfg(feature = "nvidia")] { super::nvidia::add_nvidia_data(&mut temperature_vec, temp_type, filter)?; } // For RockPro64 boards on FreeBSD, they apparently use "hw.temperature" for sensors. #[cfg(target_os = "freebsd")] { use sysctl::Sysctl; const KEY: &str = "hw.temperature"; if let Ok(root) = sysctl::Ctl::new(KEY) { for ctl in sysctl::CtlIter::below(root).flatten() { if let (Ok(name), Ok(temp)) = (ctl.name(), ctl.value()) { if let Some(temp) = temp.as_temperature() { temperature_vec.push(TempHarvest { name, temperature: match temp_type { TemperatureType::Celsius => temp.celsius(), TemperatureType::Kelvin => temp.kelvin(), TemperatureType::Fahrenheit => temp.fahrenheit(), }, }); } } } } } // TODO: Should we instead use a hashmap -> vec to skip dupes? Ok(Some(temperature_vec)) } bottom-0.9.6/src/app/filter.rs000066400000000000000000000054341447252316700162550ustar00rootroot00000000000000#[derive(Debug, Clone)] pub struct Filter { // TODO: Maybe change to "ignore_matches"? pub is_list_ignored: bool, pub list: Vec, } impl Filter { /// Whether the filter should keep the entry or reject it. #[inline] pub(crate) fn keep_entry(&self, value: &str) -> bool { if self.has_match(value) { // If a match is found, then if we wanted to ignore if we match, return false. If we want // to keep if we match, return true. Thus, return the inverse of `is_list_ignored`. !self.is_list_ignored } else { self.is_list_ignored } } /// Whether there is a filter that matches the result. #[inline] pub(crate) fn has_match(&self, value: &str) -> bool { self.list.iter().any(|regex| regex.is_match(value)) } } #[cfg(test)] mod test { use regex::Regex; use super::*; /// Test based on the issue in . #[test] fn filter_is_list_ignored() { let results = [ "CPU socket temperature", "wifi_0", "motherboard temperature", "amd gpu", ]; let ignore_true = Filter { is_list_ignored: true, list: vec![Regex::new("temperature").unwrap()], }; assert_eq!( results .into_iter() .filter(|r| ignore_true.keep_entry(r)) .collect::>(), vec!["wifi_0", "amd gpu"] ); let ignore_false = Filter { is_list_ignored: false, list: vec![Regex::new("temperature").unwrap()], }; assert_eq!( results .into_iter() .filter(|r| ignore_false.keep_entry(r)) .collect::>(), vec!["CPU socket temperature", "motherboard temperature"] ); let multi_true = Filter { is_list_ignored: true, list: vec![ Regex::new("socket").unwrap(), Regex::new("temperature").unwrap(), ], }; assert_eq!( results .into_iter() .filter(|r| multi_true.keep_entry(r)) .collect::>(), vec!["wifi_0", "amd gpu"] ); let multi_false = Filter { is_list_ignored: false, list: vec![ Regex::new("socket").unwrap(), Regex::new("temperature").unwrap(), ], }; assert_eq!( results .into_iter() .filter(|r| multi_false.keep_entry(r)) .collect::>(), vec!["CPU socket temperature", "motherboard temperature"] ); } } bottom-0.9.6/src/app/frozen_state.rs000066400000000000000000000022611447252316700174660ustar00rootroot00000000000000use super::DataCollection; /// The [`FrozenState`] indicates whether the application state should be frozen. It is either not frozen or /// frozen and containing a copy of the state at the time. pub enum FrozenState { NotFrozen, Frozen(Box), } impl Default for FrozenState { fn default() -> Self { Self::NotFrozen } } pub type IsFrozen = bool; impl FrozenState { /// Checks whether the [`FrozenState`] is currently frozen. pub fn is_frozen(&self) -> IsFrozen { matches!(self, FrozenState::Frozen(_)) } /// Freezes the [`FrozenState`]. pub fn freeze(&mut self, data: Box) { *self = FrozenState::Frozen(data); } /// Unfreezes the [`FrozenState`]. pub fn thaw(&mut self) { *self = FrozenState::NotFrozen; } /// Toggles the [`FrozenState`] and returns whether it is now frozen. pub fn toggle(&mut self, data: &DataCollection) -> IsFrozen { if self.is_frozen() { self.thaw(); false } else { // Could we use an Arc instead? Is it worth it? self.freeze(Box::new(data.clone())); true } } } bottom-0.9.6/src/app/layout_manager.rs000066400000000000000000001350231447252316700177750ustar00rootroot00000000000000use std::collections::BTreeMap; use crate::constants::DEFAULT_WIDGET_ID; use crate::error::{BottomError, Result}; /// Represents a more usable representation of the layout, derived from the /// config. #[derive(Clone, Debug)] pub struct BottomLayout { pub rows: Vec, pub total_row_height_ratio: u32, } // Represents a start and end coordinate in some dimension. type LineSegment = (u32, u32); type WidgetMappings = (u32, BTreeMap); type ColumnRowMappings = (u32, BTreeMap); type ColumnMappings = (u32, BTreeMap); impl BottomLayout { pub fn get_movement_mappings(&mut self) { #[allow(clippy::suspicious_operation_groupings)] // Have to enable this, clippy really doesn't like me doing this with tuples... fn is_intersecting(a: LineSegment, b: LineSegment) -> bool { a.0 >= b.0 && a.1 <= b.1 || a.1 >= b.1 && a.0 <= b.0 || a.0 <= b.0 && a.1 >= b.0 || a.0 >= b.0 && a.0 < b.1 && a.1 >= b.1 } fn get_distance(target: LineSegment, candidate: LineSegment) -> u32 { if candidate.0 < target.0 { candidate.1 - target.0 } else if candidate.1 < target.1 { candidate.1 - candidate.0 } else { target.1 - candidate.0 } } // Now we need to create the correct mapping for moving from a specific // widget to another let mut layout_mapping: BTreeMap = BTreeMap::new(); let mut total_height = 0; for row in &self.rows { let mut row_width = 0; let mut row_mapping: BTreeMap = BTreeMap::new(); let mut is_valid_row = false; for col in &row.children { let mut col_row_height = 0; let mut col_mapping: BTreeMap = BTreeMap::new(); let mut is_valid_col = false; for col_row in &col.children { let mut widget_width = 0; let mut col_row_mapping: BTreeMap = BTreeMap::new(); let mut is_valid_col_row = false; for widget in &col_row.children { match widget.widget_type { BottomWidgetType::Empty => {} _ => { is_valid_col_row = true; col_row_mapping.insert( ( widget_width * 100 / col_row.total_widget_ratio, (widget_width + widget.width_ratio) * 100 / col_row.total_widget_ratio, ), widget.widget_id, ); } } widget_width += widget.width_ratio; } if is_valid_col_row { col_mapping.insert( ( col_row_height * 100 / col.total_col_row_ratio, (col_row_height + col_row.col_row_height_ratio) * 100 / col.total_col_row_ratio, ), (col.total_col_row_ratio, col_row_mapping), ); is_valid_col = true; } col_row_height += col_row.col_row_height_ratio; } if is_valid_col { row_mapping.insert( ( row_width * 100 / row.total_col_ratio, (row_width + col.col_width_ratio) * 100 / row.total_col_ratio, ), (row.total_col_ratio, col_mapping), ); is_valid_row = true; } row_width += col.col_width_ratio; } if is_valid_row { layout_mapping.insert( ( total_height * 100 / self.total_row_height_ratio, (total_height + row.row_height_ratio) * 100 / self.total_row_height_ratio, ), (self.total_row_height_ratio, row_mapping), ); } total_height += row.row_height_ratio; } // Now pass through a second time; this time we want to build up // our neighbour profile. let mut height_cursor = 0; for row in &mut self.rows { let mut col_cursor = 0; let row_height_percentage_start = height_cursor * 100 / self.total_row_height_ratio; let row_height_percentage_end = (height_cursor + row.row_height_ratio) * 100 / self.total_row_height_ratio; for col in &mut row.children { let mut col_row_cursor = 0; let col_width_percentage_start = col_cursor * 100 / row.total_col_ratio; let col_width_percentage_end = (col_cursor + col.col_width_ratio) * 100 / row.total_col_ratio; for col_row in &mut col.children { let mut widget_cursor = 0; let col_row_height_percentage_start = col_row_cursor * 100 / col.total_col_row_ratio; let col_row_height_percentage_end = (col_row_cursor + col_row.col_row_height_ratio) * 100 / col.total_col_row_ratio; let col_row_children_len = col_row.children.len(); for widget in &mut col_row.children { // Bail if empty. if let BottomWidgetType::Empty = widget.widget_type { continue; } let widget_width_percentage_start = widget_cursor * 100 / col_row.total_widget_ratio; let widget_width_percentage_end = (widget_cursor + widget.width_ratio) * 100 / col_row.total_widget_ratio; if let Some(current_row) = layout_mapping .get(&(row_height_percentage_start, row_height_percentage_end)) { // First check for within the same col_row for left and right if let Some(current_col) = current_row .1 .get(&(col_width_percentage_start, col_width_percentage_end)) { if let Some(current_col_row) = current_col.1.get(&( col_row_height_percentage_start, col_row_height_percentage_end, )) { if let Some(to_left_widget) = current_col_row .1 .range( ..( widget_width_percentage_start, widget_width_percentage_start, ), ) .next_back() { widget.left_neighbour = Some(*to_left_widget.1); } // Right if let Some(to_right_neighbour) = current_col_row .1 .range( ( widget_width_percentage_end, widget_width_percentage_end, ).., ) .next() { widget.right_neighbour = Some(*to_right_neighbour.1); } } } if widget.left_neighbour.is_none() { if let Some(to_left_col) = current_row .1 .range( ..(col_width_percentage_start, col_width_percentage_start), ) .next_back() { // Check left in same row let mut current_best_distance = 0; let mut current_best_widget_id = widget.widget_id; for widget_position in &(to_left_col.1).1 { let candidate_start = (widget_position.0).0; let candidate_end = (widget_position.0).1; if is_intersecting( ( col_row_height_percentage_start, col_row_height_percentage_end, ), (candidate_start, candidate_end), ) { let candidate_distance = get_distance( ( col_row_height_percentage_start, col_row_height_percentage_end, ), (candidate_start, candidate_end), ); if current_best_distance < candidate_distance { if let Some(new_best_widget) = (widget_position.1).1.iter().next_back() { current_best_distance = candidate_distance + 1; current_best_widget_id = *(new_best_widget.1); } } } } if current_best_distance > 0 { widget.left_neighbour = Some(current_best_widget_id); } } } if widget.right_neighbour.is_none() { if let Some(to_right_col) = current_row .1 .range((col_width_percentage_end, col_width_percentage_end)..) .next() { // Check right in same row let mut current_best_distance = 0; let mut current_best_widget_id = widget.widget_id; for widget_position in &(to_right_col.1).1 { let candidate_start = (widget_position.0).0; let candidate_end = (widget_position.0).1; if is_intersecting( ( col_row_height_percentage_start, col_row_height_percentage_end, ), (candidate_start, candidate_end), ) { let candidate_distance = get_distance( ( col_row_height_percentage_start, col_row_height_percentage_end, ), (candidate_start, candidate_end), ); if current_best_distance < candidate_distance { if let Some(new_best_widget) = (widget_position.1).1.iter().next() { current_best_distance = candidate_distance + 1; current_best_widget_id = *(new_best_widget.1); } } } } if current_best_distance > 0 { widget.right_neighbour = Some(current_best_widget_id); } } } // Check up/down within same row; // else check up/down with other rows if let Some(current_col) = current_row .1 .get(&(col_width_percentage_start, col_width_percentage_end)) { if let Some(to_up) = current_col .1 .range( ..( col_row_height_percentage_start, col_row_height_percentage_start, ), ) .next_back() { // Now check each widget_width and pick the best for candidate_widget in &(to_up.1).1 { let mut current_best_distance = 0; let mut current_best_widget_id = widget.widget_id; if is_intersecting( ( widget_width_percentage_start, widget_width_percentage_end, ), ((candidate_widget.0).0, (candidate_widget.0).1), ) { let candidate_best_distance = get_distance( ( widget_width_percentage_start, widget_width_percentage_end, ), ((candidate_widget.0).0, (candidate_widget.0).1), ); if current_best_distance < candidate_best_distance { current_best_distance = candidate_best_distance + 1; current_best_widget_id = *candidate_widget.1; } } if current_best_distance > 0 { widget.up_neighbour = Some(current_best_widget_id); } } } else { for next_row_up in layout_mapping .range( ..( row_height_percentage_start, row_height_percentage_start, ), ) .rev() { let mut current_best_distance = 0; let mut current_best_widget_id = widget.widget_id; let (target_start_width, target_end_width) = if col_row_children_len > 1 { ( col_width_percentage_start + widget_width_percentage_start * (col_width_percentage_end - col_width_percentage_start) / 100, col_width_percentage_start + widget_width_percentage_end * (col_width_percentage_end - col_width_percentage_start) / 100, ) } else { ( col_width_percentage_start, col_width_percentage_end, ) }; for col_position in &(next_row_up.1).1 { if let Some(next_col_row) = (col_position.1).1.iter().next_back() { let (candidate_col_start, candidate_col_end) = ((col_position.0).0, (col_position.0).1); let candidate_difference = candidate_col_end - candidate_col_start; for candidate_widget in &(next_col_row.1).1 { let candidate_start = candidate_col_start + (candidate_widget.0).0 * candidate_difference / 100; let candidate_end = candidate_col_start + (candidate_widget.0).1 * candidate_difference / 100; if is_intersecting( (target_start_width, target_end_width), (candidate_start, candidate_end), ) { let candidate_distance = get_distance( (target_start_width, target_end_width), (candidate_start, candidate_end), ); if current_best_distance < candidate_distance { current_best_distance = candidate_distance + 1; current_best_widget_id = *(candidate_widget.1); } } } } } if current_best_distance > 0 { widget.up_neighbour = Some(current_best_widget_id); break; } } } if let Some(to_down) = current_col .1 .range( ( col_row_height_percentage_start + 1, col_row_height_percentage_start + 1, ).., ) .next() { for candidate_widget in &(to_down.1).1 { let mut current_best_distance = 0; let mut current_best_widget_id = widget.widget_id; if is_intersecting( ( widget_width_percentage_start, widget_width_percentage_end, ), ((candidate_widget.0).0, (candidate_widget.0).1), ) { let candidate_best_distance = get_distance( ( widget_width_percentage_start, widget_width_percentage_end, ), ((candidate_widget.0).0, (candidate_widget.0).1), ); if current_best_distance < candidate_best_distance { current_best_distance = candidate_best_distance + 1; current_best_widget_id = *candidate_widget.1; } } if current_best_distance > 0 { widget.down_neighbour = Some(current_best_widget_id); } } } else { for next_row_down in layout_mapping.range( ( row_height_percentage_start + 1, row_height_percentage_start + 1, ).., ) { let mut current_best_distance = 0; let mut current_best_widget_id = widget.widget_id; let (target_start_width, target_end_width) = if col_row_children_len > 1 { ( col_width_percentage_start + widget_width_percentage_start * (col_width_percentage_end - col_width_percentage_start) / 100, col_width_percentage_start + widget_width_percentage_end * (col_width_percentage_end - col_width_percentage_start) / 100, ) } else { ( col_width_percentage_start, col_width_percentage_end, ) }; for col_position in &(next_row_down.1).1 { if let Some(next_col_row) = (col_position.1).1.iter().next() { let (candidate_col_start, candidate_col_end) = ((col_position.0).0, (col_position.0).1); let candidate_difference = candidate_col_end - candidate_col_start; for candidate_widget in &(next_col_row.1).1 { let candidate_start = candidate_col_start + (candidate_widget.0).0 * candidate_difference / 100; let candidate_end = candidate_col_start + (candidate_widget.0).1 * candidate_difference / 100; if is_intersecting( (target_start_width, target_end_width), (candidate_start, candidate_end), ) { let candidate_distance = get_distance( (target_start_width, target_end_width), (candidate_start, candidate_end), ); if current_best_distance < candidate_distance { current_best_distance = candidate_distance + 1; current_best_widget_id = *(candidate_widget.1); } } } } } if current_best_distance > 0 { widget.down_neighbour = Some(current_best_widget_id); break; } } } } } widget_cursor += widget.width_ratio; } col_row_cursor += col_row.col_row_height_ratio; } col_cursor += col.col_width_ratio; } height_cursor += row.row_height_ratio; } } pub fn init_basic_default(use_battery: bool) -> Self { let table_widgets = if use_battery { let disk_widget = BottomWidget::new(BottomWidgetType::Disk, 4) .canvas_handle_width(true) .up_neighbour(Some(100)) .left_neighbour(Some(8)) .right_neighbour(Some(DEFAULT_WIDGET_ID + 2)); let proc_sort = BottomWidget::new(BottomWidgetType::ProcSort, DEFAULT_WIDGET_ID + 2) .canvas_handle_width(true) .up_neighbour(Some(100)) .down_neighbour(Some(DEFAULT_WIDGET_ID + 1)) .left_neighbour(Some(4)) .right_neighbour(Some(DEFAULT_WIDGET_ID)) .width_ratio(1) .parent_reflector(Some((WidgetDirection::Right, 2))); let proc = BottomWidget::new(BottomWidgetType::Proc, DEFAULT_WIDGET_ID) .canvas_handle_width(true) .up_neighbour(Some(100)) .down_neighbour(Some(DEFAULT_WIDGET_ID + 1)) .left_neighbour(Some(DEFAULT_WIDGET_ID + 2)) .right_neighbour(Some(7)) .width_ratio(2); let proc_search = BottomWidget::new(BottomWidgetType::ProcSearch, DEFAULT_WIDGET_ID + 1) .canvas_handle_width(true) .up_neighbour(Some(DEFAULT_WIDGET_ID)) .left_neighbour(Some(4)) .right_neighbour(Some(7)) .parent_reflector(Some((WidgetDirection::Up, 1))); let temp = BottomWidget::new(BottomWidgetType::Temp, 7) .canvas_handle_width(true) .up_neighbour(Some(100)) .left_neighbour(Some(DEFAULT_WIDGET_ID)) .right_neighbour(Some(8)); let battery = BottomWidget::new(BottomWidgetType::Battery, 8) .canvas_handle_width(true) .up_neighbour(Some(100)) .left_neighbour(Some(7)) .right_neighbour(Some(4)); vec![ BottomCol::new(vec![ BottomColRow::new(vec![disk_widget]).canvas_handle_height(true) ]) .canvas_handle_width(true), BottomCol::new(vec![ BottomColRow::new(vec![proc_sort, proc]) .canvas_handle_height(true) .total_widget_ratio(3), BottomColRow::new(vec![proc_search]).canvas_handle_height(true), ]) .canvas_handle_width(true), BottomCol::new(vec![ BottomColRow::new(vec![temp]).canvas_handle_height(true) ]) .canvas_handle_width(true), BottomCol::new(vec![ BottomColRow::new(vec![battery]).canvas_handle_height(true) ]) .canvas_handle_width(true), ] } else { let disk = BottomWidget::new(BottomWidgetType::Disk, 4) .canvas_handle_width(true) .up_neighbour(Some(100)) .left_neighbour(Some(7)) .right_neighbour(Some(DEFAULT_WIDGET_ID + 2)); let proc_sort = BottomWidget::new(BottomWidgetType::ProcSort, DEFAULT_WIDGET_ID + 2) .canvas_handle_width(true) .up_neighbour(Some(100)) .down_neighbour(Some(DEFAULT_WIDGET_ID + 1)) .left_neighbour(Some(4)) .right_neighbour(Some(DEFAULT_WIDGET_ID)) .parent_reflector(Some((WidgetDirection::Right, 2))); let proc = BottomWidget::new(BottomWidgetType::Proc, DEFAULT_WIDGET_ID) .canvas_handle_width(true) .up_neighbour(Some(100)) .down_neighbour(Some(DEFAULT_WIDGET_ID + 1)) .left_neighbour(Some(DEFAULT_WIDGET_ID + 2)) .right_neighbour(Some(7)); let proc_search = BottomWidget::new(BottomWidgetType::ProcSearch, DEFAULT_WIDGET_ID + 1) .canvas_handle_width(true) .up_neighbour(Some(DEFAULT_WIDGET_ID)) .left_neighbour(Some(4)) .right_neighbour(Some(7)) .parent_reflector(Some((WidgetDirection::Up, 1))); let temp = BottomWidget::new(BottomWidgetType::Temp, 7) .canvas_handle_width(true) .up_neighbour(Some(100)) .left_neighbour(Some(DEFAULT_WIDGET_ID)) .right_neighbour(Some(4)); vec![ BottomCol::new(vec![ BottomColRow::new(vec![disk]).canvas_handle_height(true) ]) .canvas_handle_width(true), BottomCol::new(vec![ BottomColRow::new(vec![proc_sort, proc]).canvas_handle_height(true), BottomColRow::new(vec![proc_search]).canvas_handle_height(true), ]) .canvas_handle_width(true), BottomCol::new(vec![ BottomColRow::new(vec![temp]).canvas_handle_height(true) ]) .canvas_handle_width(true), ] }; let cpu = BottomWidget::new(BottomWidgetType::BasicCpu, 1) .canvas_handle_width(true) .down_neighbour(Some(2)); let mem = BottomWidget::new(BottomWidgetType::BasicMem, 2) .canvas_handle_width(true) .up_neighbour(Some(1)) .down_neighbour(Some(100)) .right_neighbour(Some(3)); let net = BottomWidget::new(BottomWidgetType::BasicNet, 3) .canvas_handle_width(true) .up_neighbour(Some(1)) .down_neighbour(Some(100)) .left_neighbour(Some(2)); let table = BottomWidget::new(BottomWidgetType::BasicTables, 100) .canvas_handle_width(true) .up_neighbour(Some(2)); BottomLayout { total_row_height_ratio: 3, rows: vec![ BottomRow::new(vec![BottomCol::new(vec![ BottomColRow::new(vec![cpu]).canvas_handle_height(true) ]) .canvas_handle_width(true)]) .canvas_handle_height(true), BottomRow::new(vec![BottomCol::new(vec![BottomColRow::new(vec![ mem, net, ]) .canvas_handle_height(true)]) .canvas_handle_width(true)]) .canvas_handle_height(true), BottomRow::new(vec![BottomCol::new(vec![ BottomColRow::new(vec![table]).canvas_handle_height(true) ]) .canvas_handle_width(true)]) .canvas_handle_height(true), BottomRow::new(table_widgets).canvas_handle_height(true), ], } } } // pub enum BottomLayoutNode { // Container(BottomContainer), // Widget(BottomWidget), // } // pub struct BottomContainer { // children: Vec, // root_ratio: u32, // growth_type: BottomLayoutNodeSizing, // } // pub enum BottomContainerType { // Row, // Col, // } // pub enum BottomLayoutNodeSizing { // Ratio(u32), // CanvasHandles, // FlexGrow, // } /// Represents a single row in the layout. #[derive(Clone, Debug)] pub struct BottomRow { pub children: Vec, pub total_col_ratio: u32, pub row_height_ratio: u32, pub canvas_handle_height: bool, pub flex_grow: bool, } impl BottomRow { pub fn new(children: Vec) -> Self { Self { children, total_col_ratio: 1, row_height_ratio: 1, canvas_handle_height: false, flex_grow: false, } } pub fn total_col_ratio(mut self, total_col_ratio: u32) -> Self { self.total_col_ratio = total_col_ratio; self } pub fn row_height_ratio(mut self, row_height_ratio: u32) -> Self { self.row_height_ratio = row_height_ratio; self } pub fn canvas_handle_height(mut self, canvas_handle_height: bool) -> Self { self.canvas_handle_height = canvas_handle_height; self } pub fn flex_grow(mut self, flex_grow: bool) -> Self { self.flex_grow = flex_grow; self } } /// Represents a single column in the layout. We assume that even if the column /// contains only ONE element, it is still a column (rather than either a col or /// a widget, as per the config, for simplicity's sake). #[derive(Clone, Debug)] pub struct BottomCol { pub children: Vec, pub total_col_row_ratio: u32, pub col_width_ratio: u32, pub canvas_handle_width: bool, pub flex_grow: bool, } impl BottomCol { pub fn new(children: Vec) -> Self { Self { children, total_col_row_ratio: 1, col_width_ratio: 1, canvas_handle_width: false, flex_grow: false, } } pub fn total_col_row_ratio(mut self, total_col_row_ratio: u32) -> Self { self.total_col_row_ratio = total_col_row_ratio; self } pub fn col_width_ratio(mut self, col_width_ratio: u32) -> Self { self.col_width_ratio = col_width_ratio; self } pub fn canvas_handle_width(mut self, canvas_handle_width: bool) -> Self { self.canvas_handle_width = canvas_handle_width; self } pub fn flex_grow(mut self, flex_grow: bool) -> Self { self.flex_grow = flex_grow; self } } #[derive(Clone, Default, Debug)] pub struct BottomColRow { pub children: Vec, pub total_widget_ratio: u32, pub col_row_height_ratio: u32, pub canvas_handle_height: bool, pub flex_grow: bool, } impl BottomColRow { pub(crate) fn new(children: Vec) -> Self { Self { children, total_widget_ratio: 1, col_row_height_ratio: 1, canvas_handle_height: false, flex_grow: false, } } pub(crate) fn total_widget_ratio(mut self, total_widget_ratio: u32) -> Self { self.total_widget_ratio = total_widget_ratio; self } pub(crate) fn col_row_height_ratio(mut self, col_row_height_ratio: u32) -> Self { self.col_row_height_ratio = col_row_height_ratio; self } pub(crate) fn canvas_handle_height(mut self, canvas_handle_height: bool) -> Self { self.canvas_handle_height = canvas_handle_height; self } pub(crate) fn flex_grow(mut self, flex_grow: bool) -> Self { self.flex_grow = flex_grow; self } } #[derive(Debug, Clone, Eq, PartialEq)] pub enum WidgetDirection { Left, Right, Up, Down, } impl WidgetDirection { pub fn is_opposite(&self, other_direction: &WidgetDirection) -> bool { let to_compare = match &self { WidgetDirection::Left => WidgetDirection::Right, WidgetDirection::Right => WidgetDirection::Left, WidgetDirection::Up => WidgetDirection::Down, WidgetDirection::Down => WidgetDirection::Up, }; *other_direction == to_compare } } /// Represents a single widget. #[derive(Debug, Default, Clone)] pub struct BottomWidget { pub widget_type: BottomWidgetType, pub widget_id: u64, pub width_ratio: u32, pub left_neighbour: Option, pub right_neighbour: Option, pub up_neighbour: Option, pub down_neighbour: Option, /// If set to true, the canvas will override any ratios. pub canvas_handle_width: bool, /// Whether we want this widget to take up all available room (and ignore any ratios). pub flex_grow: bool, /// The value is the direction to bounce, as well as the parent offset. pub parent_reflector: Option<(WidgetDirection, u64)>, /// Top left corner when drawn, for mouse click detection. (x, y) pub top_left_corner: Option<(u16, u16)>, /// Bottom right corner when drawn, for mouse click detection. (x, y) pub bottom_right_corner: Option<(u16, u16)>, } impl BottomWidget { pub(crate) fn new(widget_type: BottomWidgetType, widget_id: u64) -> Self { Self { widget_type, widget_id, width_ratio: 1, left_neighbour: None, right_neighbour: None, up_neighbour: None, down_neighbour: None, canvas_handle_width: false, flex_grow: false, parent_reflector: None, top_left_corner: None, bottom_right_corner: None, } } pub(crate) fn width_ratio(mut self, width_ratio: u32) -> Self { self.width_ratio = width_ratio; self } pub(crate) fn left_neighbour(mut self, left_neighbour: Option) -> Self { self.left_neighbour = left_neighbour; self } pub(crate) fn right_neighbour(mut self, right_neighbour: Option) -> Self { self.right_neighbour = right_neighbour; self } pub(crate) fn up_neighbour(mut self, up_neighbour: Option) -> Self { self.up_neighbour = up_neighbour; self } pub(crate) fn down_neighbour(mut self, down_neighbour: Option) -> Self { self.down_neighbour = down_neighbour; self } pub(crate) fn canvas_handle_width(mut self, canvas_handle_width: bool) -> Self { self.canvas_handle_width = canvas_handle_width; self } pub(crate) fn flex_grow(mut self, flex_grow: bool) -> Self { self.flex_grow = flex_grow; self } pub(crate) fn parent_reflector( mut self, parent_reflector: Option<(WidgetDirection, u64)>, ) -> Self { self.parent_reflector = parent_reflector; self } } #[derive(Debug, Clone, Eq, PartialEq, Hash, Default)] pub enum BottomWidgetType { #[default] Empty, Cpu, CpuLegend, Mem, Net, Proc, ProcSearch, ProcSort, Temp, Disk, BasicCpu, BasicMem, BasicNet, BasicTables, Battery, } impl BottomWidgetType { pub fn is_widget_table(&self) -> bool { use BottomWidgetType::*; matches!(self, Disk | Proc | ProcSort | Temp | CpuLegend) } pub fn is_widget_graph(&self) -> bool { use BottomWidgetType::*; matches!(self, Cpu | Net | Mem) } pub fn get_pretty_name(&self) -> &str { use BottomWidgetType::*; match self { Cpu => "CPU", Mem => "Memory", Net => "Network", Proc => "Processes", Temp => "Temperature", Disk => "Disks", Battery => "Battery", _ => "", } } } impl std::str::FromStr for BottomWidgetType { type Err = BottomError; fn from_str(s: &str) -> Result { let lower_case = s.to_lowercase(); match lower_case.as_str() { "cpu" => Ok(BottomWidgetType::Cpu), "mem" | "memory" => Ok(BottomWidgetType::Mem), "net" | "network" => Ok(BottomWidgetType::Net), "proc" | "process" | "processes" => Ok(BottomWidgetType::Proc), "temp" | "temperature" => Ok(BottomWidgetType::Temp), "disk" => Ok(BottomWidgetType::Disk), "empty" => Ok(BottomWidgetType::Empty), #[cfg(feature = "battery")] "battery" | "batt" => Ok(BottomWidgetType::Battery), _ => { #[cfg(feature = "battery")] { Err(BottomError::ConfigError(format!( "\"{}\" is an invalid widget name. Supported widget names: +--------------------------+ | cpu | +--------------------------+ | mem, memory | +--------------------------+ | net, network | +--------------------------+ | proc, process, processes | +--------------------------+ | temp, temperature | +--------------------------+ | disk | +--------------------------+ | batt, battery | +--------------------------+ ", s ))) } #[cfg(not(feature = "battery"))] { Err(BottomError::ConfigError(format!( "\"{}\" is an invalid widget name. Supported widget names: +--------------------------+ | cpu | +--------------------------+ | mem, memory | +--------------------------+ | net, network | +--------------------------+ | proc, process, processes | +--------------------------+ | temp, temperature | +--------------------------+ | disk | +--------------------------+ ", s ))) } } } } } #[derive(Clone, Default, Debug, Copy)] pub struct UsedWidgets { pub use_cpu: bool, pub use_mem: bool, pub use_cache: bool, pub use_gpu: bool, pub use_net: bool, pub use_proc: bool, pub use_disk: bool, pub use_temp: bool, pub use_battery: bool, } bottom-0.9.6/src/app/process_killer.rs000066400000000000000000000055341447252316700200110ustar00rootroot00000000000000//! This file is meant to house (OS specific) implementations on how to kill processes. #[cfg(target_os = "windows")] use windows::Win32::{ Foundation::{CloseHandle, HANDLE}, System::Threading::{ OpenProcess, TerminateProcess, PROCESS_QUERY_INFORMATION, PROCESS_TERMINATE, }, }; #[cfg(target_family = "unix")] use crate::utils::error::BottomError; use crate::Pid; /// Based from [this SO answer](https://stackoverflow.com/a/55231715). #[cfg(target_os = "windows")] struct Process(HANDLE); #[cfg(target_os = "windows")] impl Process { fn open(pid: u32) -> Result { // SAFETY: Windows API call, tread carefully with the args. match unsafe { OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_TERMINATE, false, pid) } { Ok(process) => Ok(Process(process)), Err(_) => Err("process may have already been terminated.".to_string()), } } fn kill(self) -> Result<(), String> { // SAFETY: Windows API call, this is safe as we are passing in the handle. let result = unsafe { TerminateProcess(self.0, 1) }; if result.is_err() { return Err("process may have already been terminated.".to_string()); } Ok(()) } } #[cfg(target_os = "windows")] impl Drop for Process { fn drop(&mut self) { // SAFETY: Windows API call, this is safe as we are passing in the handle. unsafe { let _ = CloseHandle(self.0); } } } /// Kills a process, given a PID, for windows. #[cfg(target_os = "windows")] pub fn kill_process_given_pid(pid: Pid) -> crate::utils::error::Result<()> { { let process = Process::open(pid as u32)?; process.kill()?; } Ok(()) } /// Kills a process, given a PID, for unix. #[cfg(target_family = "unix")] pub fn kill_process_given_pid(pid: Pid, signal: usize) -> crate::utils::error::Result<()> { // SAFETY: the signal should be valid, and we act properly on an error (exit code not 0). let output = unsafe { libc::kill(pid, signal as i32) }; if output != 0 { // We had an error... let err_code = std::io::Error::last_os_error().raw_os_error(); let err = match err_code { Some(libc::ESRCH) => "the target process did not exist.", Some(libc::EPERM) => "the calling process does not have the permissions to terminate the target process(es).", Some(libc::EINVAL) => "an invalid signal was specified.", _ => "Unknown error occurred." }; return if let Some(err_code) = err_code { Err(BottomError::GenericError(format!( "Error code {} - {}", err_code, err, ))) } else { Err(BottomError::GenericError(format!( "Error code ??? - {}", err, ))) }; } Ok(()) } bottom-0.9.6/src/app/query.rs000066400000000000000000001042161447252316700161330ustar00rootroot00000000000000use std::fmt::Debug; use std::time::Duration; use std::{borrow::Cow, collections::VecDeque}; use humantime::parse_duration; use super::data_harvester::processes::ProcessHarvest; use crate::utils::error::{ BottomError::{self, QueryError}, Result, }; const DELIMITER_LIST: [char; 6] = ['=', '>', '<', '(', ')', '\"']; const COMPARISON_LIST: [&str; 3] = [">", "=", "<"]; const OR_LIST: [&str; 2] = ["or", "||"]; const AND_LIST: [&str; 2] = ["and", "&&"]; /// In charge of parsing the given query. /// We are defining the following language for a query (case-insensitive prefixes): /// /// - Process names: No prefix required, can use regex, match word, or case. /// Enclosing anything, including prefixes, in quotes, means we treat it as an entire process /// rather than a prefix. /// - PIDs: Use prefix `pid`, can use regex or match word (case is irrelevant). /// - CPU: Use prefix `cpu`, cannot use r/m/c (regex, match word, case). Can compare. /// - MEM: Use prefix `mem`, cannot use r/m/c. Can compare. /// - STATE: Use prefix `state`, can use regex, match word, or case. /// - USER: Use prefix `user`, can use regex, match word, or case. /// - Read/s: Use prefix `r`. Can compare. /// - Write/s: Use prefix `w`. Can compare. /// - Total read: Use prefix `read`. Can compare. /// - Total write: Use prefix `write`. Can compare. /// /// For queries, whitespaces are our delimiters. We will merge together any adjacent non-prefixed /// or quoted elements after splitting to treat as process names. /// Furthermore, we want to support boolean joiners like AND and OR, and brackets. pub fn parse_query( search_query: &str, is_searching_whole_word: bool, is_ignoring_case: bool, is_searching_with_regex: bool, ) -> Result { fn process_string_to_filter(query: &mut VecDeque) -> Result { let lhs = process_or(query)?; let mut list_of_ors = vec![lhs]; while query.front().is_some() { list_of_ors.push(process_or(query)?); } Ok(Query { query: list_of_ors }) } fn process_or(query: &mut VecDeque) -> Result { let mut lhs = process_and(query)?; let mut rhs: Option> = None; while let Some(queue_top) = query.front() { // debug!("OR QT: {:?}", queue_top); if OR_LIST.contains(&queue_top.to_lowercase().as_str()) { query.pop_front(); rhs = Some(Box::new(process_and(query)?)); if let Some(queue_next) = query.front() { if OR_LIST.contains(&queue_next.to_lowercase().as_str()) { // Must merge LHS and RHS lhs = And { lhs: Prefix { or: Some(Box::new(Or { lhs, rhs })), regex_prefix: None, compare_prefix: None, }, rhs: None, }; rhs = None; } } else { break; } } else if COMPARISON_LIST.contains(&queue_top.to_lowercase().as_str()) { return Err(QueryError(Cow::Borrowed("Comparison not valid here"))); } else { break; } } Ok(Or { lhs, rhs }) } fn process_and(query: &mut VecDeque) -> Result { let mut lhs = process_prefix(query, false)?; let mut rhs: Option> = None; while let Some(queue_top) = query.front() { // debug!("AND QT: {:?}", queue_top); if AND_LIST.contains(&queue_top.to_lowercase().as_str()) { query.pop_front(); rhs = Some(Box::new(process_prefix(query, false)?)); if let Some(next_queue_top) = query.front() { if AND_LIST.contains(&next_queue_top.to_lowercase().as_str()) { // Must merge LHS and RHS lhs = Prefix { or: Some(Box::new(Or { lhs: And { lhs, rhs }, rhs: None, })), regex_prefix: None, compare_prefix: None, }; rhs = None; } else { break; } } else { break; } } else if COMPARISON_LIST.contains(&queue_top.to_lowercase().as_str()) { return Err(QueryError(Cow::Borrowed("Comparison not valid here"))); } else { break; } } Ok(And { lhs, rhs }) } fn process_prefix(query: &mut VecDeque, inside_quotation: bool) -> Result { if let Some(queue_top) = query.pop_front() { if inside_quotation { if queue_top == "\"" { // This means we hit something like "". Return an empty prefix, and to deal with // the close quote checker, add one to the top of the stack. Ugly fix but whatever. query.push_front("\"".to_string()); return Ok(Prefix { or: None, regex_prefix: Some(( PrefixType::Name, StringQuery::Value(String::default()), )), compare_prefix: None, }); } else { let mut quoted_string = queue_top; while let Some(next_str) = query.front() { if next_str == "\"" { // Stop! break; } else { quoted_string.push_str(next_str); query.pop_front(); } } return Ok(Prefix { or: None, regex_prefix: Some((PrefixType::Name, StringQuery::Value(quoted_string))), compare_prefix: None, }); } } else if queue_top == "(" { if query.is_empty() { return Err(QueryError(Cow::Borrowed("Missing closing parentheses"))); } let mut list_of_ors = VecDeque::new(); while let Some(in_paren_query_top) = query.front() { if in_paren_query_top != ")" { list_of_ors.push_back(process_or(query)?); } else { break; } } // Ensure not empty if list_of_ors.is_empty() { return Err(QueryError("No values within parentheses group".into())); } // Now convert this back to a OR... let initial_or = Or { lhs: And { lhs: Prefix { or: list_of_ors.pop_front().map(Box::new), compare_prefix: None, regex_prefix: None, }, rhs: None, }, rhs: None, }; let returned_or = list_of_ors.into_iter().fold(initial_or, |lhs, rhs| Or { lhs: And { lhs: Prefix { or: Some(Box::new(lhs)), compare_prefix: None, regex_prefix: None, }, rhs: Some(Box::new(Prefix { or: Some(Box::new(rhs)), compare_prefix: None, regex_prefix: None, })), }, rhs: None, }); if let Some(close_paren) = query.pop_front() { if close_paren == ")" { return Ok(Prefix { or: Some(Box::new(returned_or)), regex_prefix: None, compare_prefix: None, }); } else { return Err(QueryError("Missing closing parentheses".into())); } } else { return Err(QueryError("Missing closing parentheses".into())); } } else if queue_top == ")" { return Err(QueryError("Missing opening parentheses".into())); } else if queue_top == "\"" { // Similar to parentheses, trap and check for missing closing quotes. Note, however, that we // will DIRECTLY call another process_prefix call... let prefix = process_prefix(query, true)?; if let Some(close_paren) = query.pop_front() { if close_paren == "\"" { return Ok(prefix); } else { return Err(QueryError("Missing closing quotation".into())); } } else { return Err(QueryError("Missing closing quotation".into())); } } else { // Get prefix type... let prefix_type = queue_top.parse::()?; let content = if let PrefixType::Name = prefix_type { Some(queue_top) } else { query.pop_front() }; if let Some(content) = content { match &prefix_type { PrefixType::Name => { return Ok(Prefix { or: None, regex_prefix: Some((prefix_type, StringQuery::Value(content))), compare_prefix: None, }) } PrefixType::Pid | PrefixType::State | PrefixType::User => { // We have to check if someone put an "="... if content == "=" { // Check next string if possible if let Some(queue_next) = query.pop_front() { // TODO: [Query] Need to consider the following cases: // - (test) // - (test // - test) // These are split into 2 to 3 different strings due to parentheses being // delimiters in our query system. // // Do we want these to be valid? They should, as a string, right? return Ok(Prefix { or: None, regex_prefix: Some(( prefix_type, StringQuery::Value(queue_next), )), compare_prefix: None, }); } } else { return Ok(Prefix { or: None, regex_prefix: Some((prefix_type, StringQuery::Value(content))), compare_prefix: None, }); } } PrefixType::Time => { let mut condition: Option = None; let mut duration_string: Option = None; if content == "=" { condition = Some(QueryComparison::Equal); duration_string = query.pop_front(); } else if content == ">" || content == "<" { if let Some(queue_next) = query.pop_front() { if queue_next == "=" { condition = Some(if content == ">" { QueryComparison::GreaterOrEqual } else { QueryComparison::LessOrEqual }); duration_string = query.pop_front(); } else { condition = Some(if content == ">" { QueryComparison::Greater } else { QueryComparison::Less }); duration_string = Some(queue_next); } } else { return Err(QueryError("Missing value".into())); } } if let Some(condition) = condition { let duration = parse_duration( &duration_string.ok_or(QueryError("Missing value".into()))?, ) .map_err(|err| QueryError(err.to_string().into()))?; return Ok(Prefix { or: None, regex_prefix: None, compare_prefix: Some(( prefix_type, ComparableQuery::Time(TimeQuery { condition, duration, }), )), }); } } _ => { // Assume it's some numerical value. // Now we gotta parse the content... yay. let mut condition: Option = None; let mut value: Option = None; // TODO: Jeez, what the heck did I write here... add some tests and clean this up in the // future. if content == "=" { condition = Some(QueryComparison::Equal); if let Some(queue_next) = query.pop_front() { value = queue_next.parse::().ok(); } else { return Err(QueryError("Missing value".into())); } } else if content == ">" || content == "<" { // We also have to check if the next string is an "="... if let Some(queue_next) = query.pop_front() { if queue_next == "=" { condition = Some(if content == ">" { QueryComparison::GreaterOrEqual } else { QueryComparison::LessOrEqual }); if let Some(queue_next_next) = query.pop_front() { value = queue_next_next.parse::().ok(); } else { return Err(QueryError("Missing value".into())); } } else { condition = Some(if content == ">" { QueryComparison::Greater } else { QueryComparison::Less }); value = queue_next.parse::().ok(); } } else { return Err(QueryError("Missing value".into())); } } if let Some(condition) = condition { if let Some(read_value) = value { // Note that the values *might* have a unit or need to be parsed differently // based on the prefix type! let mut value = read_value; match prefix_type { PrefixType::MemBytes | PrefixType::Rps | PrefixType::Wps | PrefixType::TRead | PrefixType::TWrite => { // If no unit, assume base. // Furthermore, base must be PEEKED at initially, and will // require (likely) prefix_type specific checks // Lastly, if it *is* a unit, remember to POP! if let Some(potential_unit) = query.front() { match potential_unit.to_lowercase().as_str() { "tb" => { value *= 1_000_000_000_000.0; query.pop_front(); } "tib" => { value *= 1_099_511_627_776.0; query.pop_front(); } "gb" => { value *= 1_000_000_000.0; query.pop_front(); } "gib" => { value *= 1_073_741_824.0; query.pop_front(); } "mb" => { value *= 1_000_000.0; query.pop_front(); } "mib" => { value *= 1_048_576.0; query.pop_front(); } "kb" => { value *= 1000.0; query.pop_front(); } "kib" => { value *= 1024.0; query.pop_front(); } "b" => { // Just gotta pop. query.pop_front(); } _ => {} } } } _ => {} } return Ok(Prefix { or: None, regex_prefix: None, compare_prefix: Some(( prefix_type, ComparableQuery::Numerical(NumericalQuery { condition, value, }), )), }); } } } } } else { return Err(QueryError("Missing argument for search prefix".into())); } } } else if inside_quotation { // Uh oh, it's empty with quotes! return Err(QueryError("Missing closing quotation".into())); } Err(QueryError("Invalid query".into())) } let mut split_query = VecDeque::new(); search_query.split_whitespace().for_each(|s| { // From https://stackoverflow.com/a/56923739 in order to get a split but include the parentheses let mut last = 0; for (index, matched) in s.match_indices(|x| DELIMITER_LIST.contains(&x)) { if last != index { split_query.push_back(s[last..index].to_owned()); } split_query.push_back(matched.to_owned()); last = index + matched.len(); } if last < s.len() { split_query.push_back(s[last..].to_owned()); } }); let mut process_filter = process_string_to_filter(&mut split_query)?; process_filter.process_regexes( is_searching_whole_word, is_ignoring_case, is_searching_with_regex, )?; Ok(process_filter) } pub struct Query { /// Remember, AND > OR, but AND must come after OR when we parse. pub query: Vec, } impl Query { pub fn process_regexes( &mut self, is_searching_whole_word: bool, is_ignoring_case: bool, is_searching_with_regex: bool, ) -> Result<()> { for or in &mut self.query { or.process_regexes( is_searching_whole_word, is_ignoring_case, is_searching_with_regex, )?; } Ok(()) } pub fn check(&self, process: &ProcessHarvest, is_using_command: bool) -> bool { self.query .iter() .all(|ok| ok.check(process, is_using_command)) } } impl Debug for Query { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { f.write_fmt(format_args!("{:?}", self.query)) } } #[derive(Default)] pub struct Or { pub lhs: And, pub rhs: Option>, } impl Or { pub fn process_regexes( &mut self, is_searching_whole_word: bool, is_ignoring_case: bool, is_searching_with_regex: bool, ) -> Result<()> { self.lhs.process_regexes( is_searching_whole_word, is_ignoring_case, is_searching_with_regex, )?; if let Some(rhs) = &mut self.rhs { rhs.process_regexes( is_searching_whole_word, is_ignoring_case, is_searching_with_regex, )?; } Ok(()) } pub fn check(&self, process: &ProcessHarvest, is_using_command: bool) -> bool { if let Some(rhs) = &self.rhs { self.lhs.check(process, is_using_command) || rhs.check(process, is_using_command) } else { self.lhs.check(process, is_using_command) } } } impl Debug for Or { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match &self.rhs { Some(rhs) => f.write_fmt(format_args!("({:?} OR {:?})", self.lhs, rhs)), None => f.write_fmt(format_args!("{:?}", self.lhs)), } } } #[derive(Default)] pub struct And { pub lhs: Prefix, pub rhs: Option>, } impl And { pub fn process_regexes( &mut self, is_searching_whole_word: bool, is_ignoring_case: bool, is_searching_with_regex: bool, ) -> Result<()> { self.lhs.process_regexes( is_searching_whole_word, is_ignoring_case, is_searching_with_regex, )?; if let Some(rhs) = &mut self.rhs { rhs.process_regexes( is_searching_whole_word, is_ignoring_case, is_searching_with_regex, )?; } Ok(()) } pub fn check(&self, process: &ProcessHarvest, is_using_command: bool) -> bool { if let Some(rhs) = &self.rhs { self.lhs.check(process, is_using_command) && rhs.check(process, is_using_command) } else { self.lhs.check(process, is_using_command) } } } impl Debug for And { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match &self.rhs { Some(rhs) => f.write_fmt(format_args!("({:?} AND {:?})", self.lhs, rhs)), None => f.write_fmt(format_args!("{:?}", self.lhs)), } } } #[derive(Debug)] pub enum PrefixType { Pid, PCpu, MemBytes, PMem, Rps, Wps, TRead, TWrite, Name, State, User, Time, __Nonexhaustive, } impl std::str::FromStr for PrefixType { type Err = BottomError; fn from_str(s: &str) -> Result { use PrefixType::*; let lower_case = s.to_lowercase(); // Didn't add mem_bytes, total_read, and total_write // for now as it causes help to be clogged. match lower_case.as_str() { "cpu" | "cpu%" => Ok(PCpu), "mem" | "mem%" => Ok(PMem), "memb" => Ok(MemBytes), "read" | "r/s" | "rps" => Ok(Rps), "write" | "w/s" | "wps" => Ok(Wps), "tread" | "t.read" => Ok(TRead), "twrite" | "t.write" => Ok(TWrite), "pid" => Ok(Pid), "state" => Ok(State), "user" => Ok(User), "time" => Ok(Time), _ => Ok(Name), } } } // TODO: This is also jank and could be better represented. Add tests, then clean up! #[derive(Default)] pub struct Prefix { pub or: Option>, pub regex_prefix: Option<(PrefixType, StringQuery)>, pub compare_prefix: Option<(PrefixType, ComparableQuery)>, } impl Prefix { pub fn process_regexes( &mut self, is_searching_whole_word: bool, is_ignoring_case: bool, is_searching_with_regex: bool, ) -> Result<()> { if let Some(or) = &mut self.or { return or.process_regexes( is_searching_whole_word, is_ignoring_case, is_searching_with_regex, ); } else if let Some((prefix_type, StringQuery::Value(regex_string))) = &mut self.regex_prefix { match prefix_type { PrefixType::Pid | PrefixType::Name | PrefixType::State | PrefixType::User => { let escaped_regex: String; let final_regex_string = &format!( "{}{}{}{}", if is_searching_whole_word { "^" } else { "" }, if is_ignoring_case { "(?i)" } else { "" }, if !is_searching_with_regex { escaped_regex = regex::escape(regex_string); &escaped_regex } else { regex_string }, if is_searching_whole_word { "$" } else { "" }, ); let taken_pwc = self.regex_prefix.take(); if let Some((taken_pt, _)) = taken_pwc { self.regex_prefix = Some(( taken_pt, StringQuery::Regex(regex::Regex::new(final_regex_string)?), )); } } _ => {} } } Ok(()) } pub fn check(&self, process: &ProcessHarvest, is_using_command: bool) -> bool { fn matches_condition, J: Into>( condition: &QueryComparison, lhs: I, rhs: J, ) -> bool { let lhs: f64 = lhs.into(); let rhs: f64 = rhs.into(); match condition { QueryComparison::Equal => (lhs - rhs).abs() < std::f64::EPSILON, QueryComparison::Less => lhs < rhs, QueryComparison::Greater => lhs > rhs, QueryComparison::LessOrEqual => lhs <= rhs, QueryComparison::GreaterOrEqual => lhs >= rhs, } } fn matches_duration(condition: &QueryComparison, lhs: Duration, rhs: Duration) -> bool { match condition { QueryComparison::Equal => lhs == rhs, QueryComparison::Less => lhs < rhs, QueryComparison::Greater => lhs > rhs, QueryComparison::LessOrEqual => lhs <= rhs, QueryComparison::GreaterOrEqual => lhs >= rhs, } } if let Some(and) = &self.or { and.check(process, is_using_command) } else if let Some((prefix_type, query_content)) = &self.regex_prefix { if let StringQuery::Regex(r) = query_content { match prefix_type { PrefixType::Name => r.is_match(if is_using_command { process.command.as_str() } else { process.name.as_str() }), PrefixType::Pid => r.is_match(process.pid.to_string().as_str()), PrefixType::State => r.is_match(process.process_state.0.as_str()), PrefixType::User => r.is_match(process.user.as_ref()), _ => true, } } else { true } } else if let Some((prefix_type, comparable_query)) = &self.compare_prefix { match comparable_query { ComparableQuery::Numerical(numerical_query) => match prefix_type { PrefixType::PCpu => matches_condition( &numerical_query.condition, process.cpu_usage_percent, numerical_query.value, ), PrefixType::PMem => matches_condition( &numerical_query.condition, process.mem_usage_percent, numerical_query.value, ), PrefixType::MemBytes => matches_condition( &numerical_query.condition, process.mem_usage_bytes as f64, numerical_query.value, ), PrefixType::Rps => matches_condition( &numerical_query.condition, process.read_bytes_per_sec as f64, numerical_query.value, ), PrefixType::Wps => matches_condition( &numerical_query.condition, process.write_bytes_per_sec as f64, numerical_query.value, ), PrefixType::TRead => matches_condition( &numerical_query.condition, process.total_read_bytes as f64, numerical_query.value, ), PrefixType::TWrite => matches_condition( &numerical_query.condition, process.total_write_bytes as f64, numerical_query.value, ), _ => true, }, ComparableQuery::Time(time_query) => match prefix_type { PrefixType::Time => { matches_duration(&time_query.condition, process.time, time_query.duration) } _ => true, }, } } else { // Somehow we have an empty condition... oh well. Return true. true } } } impl Debug for Prefix { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { if let Some(or) = &self.or { f.write_fmt(format_args!("{:?}", or)) } else if let Some(regex_prefix) = &self.regex_prefix { f.write_fmt(format_args!("{:?}", regex_prefix)) } else if let Some(compare_prefix) = &self.compare_prefix { f.write_fmt(format_args!("{:?}", compare_prefix)) } else { f.write_fmt(format_args!("")) } } } #[derive(Debug)] pub enum QueryComparison { Equal, Less, Greater, LessOrEqual, GreaterOrEqual, } #[derive(Debug)] pub enum StringQuery { Value(String), Regex(regex::Regex), } #[derive(Debug)] pub enum ComparableQuery { Numerical(NumericalQuery), Time(TimeQuery), } #[derive(Debug)] pub struct NumericalQuery { pub condition: QueryComparison, pub value: f64, } #[derive(Debug)] pub struct TimeQuery { pub condition: QueryComparison, pub duration: Duration, } bottom-0.9.6/src/app/states.rs000066400000000000000000000376261447252316700163030ustar00rootroot00000000000000use std::{ops::Range, time::Instant}; use hashbrown::HashMap; use indexmap::IndexMap; use unicode_segmentation::{GraphemeCursor, GraphemeIncomplete, UnicodeSegmentation}; use crate::{ app::{layout_manager::BottomWidgetType, query::*}, constants, utils::gen_util::str_width, widgets::{ BatteryWidgetState, CpuWidgetState, DiskTableWidget, MemWidgetState, NetWidgetState, ProcWidgetState, TempWidgetState, }, }; pub struct AppWidgetStates { pub cpu_state: CpuState, pub mem_state: MemState, pub net_state: NetState, pub proc_state: ProcState, pub temp_state: TempState, pub disk_state: DiskState, pub battery_state: BatteryState, pub basic_table_widget_state: Option, } #[derive(Debug)] pub enum CursorDirection { Left, Right, } #[derive(PartialEq, Eq)] pub enum KillSignal { Cancel, Kill(usize), } impl Default for KillSignal { #[cfg(target_family = "unix")] fn default() -> Self { KillSignal::Kill(15) } #[cfg(target_os = "windows")] fn default() -> Self { KillSignal::Kill(1) } } #[derive(Default)] pub struct AppDeleteDialogState { pub is_showing_dd: bool, pub selected_signal: KillSignal, /// tl x, tl y, br x, br y, index/signal pub button_positions: Vec<(u16, u16, u16, u16, usize)>, pub keyboard_signal_select: usize, pub last_number_press: Option, pub scroll_pos: usize, } pub struct AppHelpDialogState { pub is_showing_help: bool, pub height: u16, pub scroll_state: ParagraphScrollState, pub index_shortcuts: Vec, } impl Default for AppHelpDialogState { fn default() -> Self { AppHelpDialogState { is_showing_help: false, height: 0, scroll_state: ParagraphScrollState::default(), index_shortcuts: vec![0; constants::HELP_TEXT.len()], } } } /// AppSearchState deals with generic searching (I might do this in the future). pub struct AppSearchState { pub is_enabled: bool, pub current_search_query: String, pub is_blank_search: bool, pub is_invalid_search: bool, pub grapheme_cursor: GraphemeCursor, pub cursor_direction: CursorDirection, pub display_start_char_index: usize, pub size_mappings: IndexMap>, /// The query. TODO: Merge this as one enum. pub query: Option, pub error_message: Option, } impl Default for AppSearchState { fn default() -> Self { AppSearchState { is_enabled: false, current_search_query: String::default(), is_invalid_search: false, is_blank_search: true, grapheme_cursor: GraphemeCursor::new(0, 0, true), cursor_direction: CursorDirection::Right, display_start_char_index: 0, size_mappings: IndexMap::default(), query: None, error_message: None, } } } impl AppSearchState { /// Resets the [`AppSearchState`] to its default state, albeit still enabled. pub fn reset(&mut self) { *self = AppSearchState { is_enabled: self.is_enabled, ..AppSearchState::default() } } /// Returns whether the [`AppSearchState`] has an invalid or blank search. pub fn is_invalid_or_blank_search(&self) -> bool { self.is_blank_search || self.is_invalid_search } /// Sets the starting grapheme index to draw from. pub fn get_start_position(&mut self, available_width: usize, is_force_redraw: bool) { // Remember - the number of columns != the number of grapheme slots/sizes, you // cannot use index to determine this reliably! let start_index = if is_force_redraw { 0 } else { self.display_start_char_index }; let cursor_index = self.grapheme_cursor.cur_cursor(); if let Some(start_range) = self.size_mappings.get(&start_index) { let cursor_range = self .size_mappings .get(&cursor_index) .cloned() .unwrap_or_else(|| { self.size_mappings .last() .map(|(_, r)| r.end..(r.end + 1)) .unwrap_or(start_range.end..(start_range.end + 1)) }); // Cases to handle in both cases: // - The current start index can show the cursor's word. // - The current start index cannot show the cursor's word. // // What differs is how we "scroll" based on the cursor movement direction. self.display_start_char_index = match self.cursor_direction { CursorDirection::Right => { if start_range.start + available_width >= cursor_range.end { // Use the current index. start_index } else if cursor_range.end >= available_width { // If the current position is past the last visible element, skip until we see it. let mut index = 0; for i in 0..(cursor_index + 1) { if let Some(r) = self.size_mappings.get(&i) { if r.start + available_width >= cursor_range.end { index = i; break; } } } index } else { 0 } } CursorDirection::Left => { if cursor_range.start < start_range.end { let mut index = 0; for i in cursor_index..(self.current_search_query.len()) { if let Some(r) = self.size_mappings.get(&i) { if r.start + available_width >= cursor_range.end { index = i; break; } } } index } else { start_index } } }; } else { // If we fail here somehow, just reset to 0 index + scroll left. self.display_start_char_index = 0; self.cursor_direction = CursorDirection::Left; }; } pub(crate) fn walk_forward(&mut self) { // TODO: Add tests for this. let start_position = self.grapheme_cursor.cur_cursor(); let chunk = &self.current_search_query[start_position..]; match self.grapheme_cursor.next_boundary(chunk, start_position) { Ok(_) => {} Err(err) => match err { GraphemeIncomplete::PreContext(ctx) => { // Provide the entire string as context. Not efficient but should resolve failures. self.grapheme_cursor .provide_context(&self.current_search_query[0..ctx], 0); self.grapheme_cursor .next_boundary(chunk, start_position) .unwrap(); } _ => panic!("{err:?}"), }, } } pub(crate) fn walk_backward(&mut self) { // TODO: Add tests for this. let start_position = self.grapheme_cursor.cur_cursor(); let chunk = &self.current_search_query[..start_position]; match self.grapheme_cursor.prev_boundary(chunk, 0) { Ok(_) => {} Err(err) => match err { GraphemeIncomplete::PreContext(ctx) => { // Provide the entire string as context. Not efficient but should resolve failures. self.grapheme_cursor .provide_context(&self.current_search_query[0..ctx], 0); self.grapheme_cursor.prev_boundary(chunk, 0).unwrap(); } _ => panic!("{err:?}"), }, } } pub(crate) fn update_sizes(&mut self) { self.size_mappings.clear(); let mut curr_offset = 0; for (index, grapheme) in UnicodeSegmentation::grapheme_indices(self.current_search_query.as_str(), true) { let width = str_width(grapheme); let end = curr_offset + width; self.size_mappings.insert(index, curr_offset..end); curr_offset = end; } self.size_mappings.shrink_to_fit(); } } pub struct ProcState { pub widget_states: HashMap, } impl ProcState { pub fn init(widget_states: HashMap) -> Self { ProcState { widget_states } } pub fn get_mut_widget_state(&mut self, widget_id: u64) -> Option<&mut ProcWidgetState> { self.widget_states.get_mut(&widget_id) } pub fn get_widget_state(&self, widget_id: u64) -> Option<&ProcWidgetState> { self.widget_states.get(&widget_id) } } pub struct NetState { pub force_update: Option, pub widget_states: HashMap, } impl NetState { pub fn init(widget_states: HashMap) -> Self { NetState { force_update: None, widget_states, } } pub fn get_mut_widget_state(&mut self, widget_id: u64) -> Option<&mut NetWidgetState> { self.widget_states.get_mut(&widget_id) } pub fn get_widget_state(&self, widget_id: u64) -> Option<&NetWidgetState> { self.widget_states.get(&widget_id) } } pub struct CpuState { pub force_update: Option, pub widget_states: HashMap, } impl CpuState { pub fn init(widget_states: HashMap) -> Self { CpuState { force_update: None, widget_states, } } pub fn get_mut_widget_state(&mut self, widget_id: u64) -> Option<&mut CpuWidgetState> { self.widget_states.get_mut(&widget_id) } pub fn get_widget_state(&self, widget_id: u64) -> Option<&CpuWidgetState> { self.widget_states.get(&widget_id) } } pub struct MemState { pub force_update: Option, pub widget_states: HashMap, } impl MemState { pub fn init(widget_states: HashMap) -> Self { MemState { force_update: None, widget_states, } } pub fn get_mut_widget_state(&mut self, widget_id: u64) -> Option<&mut MemWidgetState> { self.widget_states.get_mut(&widget_id) } pub fn get_widget_state(&self, widget_id: u64) -> Option<&MemWidgetState> { self.widget_states.get(&widget_id) } } pub struct TempState { pub widget_states: HashMap, } impl TempState { pub fn init(widget_states: HashMap) -> Self { TempState { widget_states } } pub fn get_mut_widget_state(&mut self, widget_id: u64) -> Option<&mut TempWidgetState> { self.widget_states.get_mut(&widget_id) } pub fn get_widget_state(&self, widget_id: u64) -> Option<&TempWidgetState> { self.widget_states.get(&widget_id) } } pub struct DiskState { pub widget_states: HashMap, } impl DiskState { pub fn init(widget_states: HashMap) -> Self { DiskState { widget_states } } pub fn get_mut_widget_state(&mut self, widget_id: u64) -> Option<&mut DiskTableWidget> { self.widget_states.get_mut(&widget_id) } pub fn get_widget_state(&self, widget_id: u64) -> Option<&DiskTableWidget> { self.widget_states.get(&widget_id) } } pub struct BasicTableWidgetState { // Since this is intended (currently) to only be used for ONE widget, that's // how it's going to be written. If we want to allow for multiple of these, // then we can expand outwards with a normal BasicTableState and a hashmap pub currently_displayed_widget_type: BottomWidgetType, pub currently_displayed_widget_id: u64, pub widget_id: i64, pub left_tlc: Option<(u16, u16)>, pub left_brc: Option<(u16, u16)>, pub right_tlc: Option<(u16, u16)>, pub right_brc: Option<(u16, u16)>, } pub struct BatteryState { pub widget_states: HashMap, } impl BatteryState { pub fn init(widget_states: HashMap) -> Self { BatteryState { widget_states } } pub fn get_mut_widget_state(&mut self, widget_id: u64) -> Option<&mut BatteryWidgetState> { self.widget_states.get_mut(&widget_id) } pub fn get_widget_state(&self, widget_id: u64) -> Option<&BatteryWidgetState> { self.widget_states.get(&widget_id) } } #[derive(Default)] pub struct ParagraphScrollState { pub current_scroll_index: u16, pub max_scroll_index: u16, } #[cfg(test)] mod test { use super::*; fn move_right(state: &mut AppSearchState) { state.walk_forward(); state.cursor_direction = CursorDirection::Right; } fn move_left(state: &mut AppSearchState) { state.walk_backward(); state.cursor_direction = CursorDirection::Left; } #[test] fn search_cursor_moves() { let mut state = AppSearchState::default(); state.current_search_query = "Hi, 你好! 🇦🇶".to_string(); state.grapheme_cursor = GraphemeCursor::new(0, state.current_search_query.len(), true); state.update_sizes(); // Moving right. state.get_start_position(4, false); assert_eq!(state.grapheme_cursor.cur_cursor(), 0); assert_eq!(state.display_start_char_index, 0); move_right(&mut state); state.get_start_position(4, false); assert_eq!(state.grapheme_cursor.cur_cursor(), 1); assert_eq!(state.display_start_char_index, 0); move_right(&mut state); state.get_start_position(4, false); assert_eq!(state.grapheme_cursor.cur_cursor(), 2); assert_eq!(state.display_start_char_index, 0); move_right(&mut state); state.get_start_position(4, false); assert_eq!(state.grapheme_cursor.cur_cursor(), 3); assert_eq!(state.display_start_char_index, 0); move_right(&mut state); state.get_start_position(4, false); assert_eq!(state.grapheme_cursor.cur_cursor(), 4); assert_eq!(state.display_start_char_index, 2); move_right(&mut state); state.get_start_position(4, false); assert_eq!(state.grapheme_cursor.cur_cursor(), 7); assert_eq!(state.display_start_char_index, 4); move_right(&mut state); state.get_start_position(4, false); assert_eq!(state.grapheme_cursor.cur_cursor(), 10); assert_eq!(state.display_start_char_index, 7); move_right(&mut state); move_right(&mut state); state.get_start_position(4, false); assert_eq!(state.grapheme_cursor.cur_cursor(), 12); assert_eq!(state.display_start_char_index, 10); // Moving left. move_left(&mut state); state.get_start_position(4, false); assert_eq!(state.grapheme_cursor.cur_cursor(), 11); assert_eq!(state.display_start_char_index, 10); move_left(&mut state); move_left(&mut state); state.get_start_position(4, false); assert_eq!(state.grapheme_cursor.cur_cursor(), 7); assert_eq!(state.display_start_char_index, 7); move_left(&mut state); move_left(&mut state); move_left(&mut state); move_left(&mut state); state.get_start_position(4, false); assert_eq!(state.grapheme_cursor.cur_cursor(), 1); assert_eq!(state.display_start_char_index, 1); move_left(&mut state); state.get_start_position(4, false); assert_eq!(state.grapheme_cursor.cur_cursor(), 0); assert_eq!(state.display_start_char_index, 0); } } bottom-0.9.6/src/args.rs000066400000000000000000000440071447252316700151430ustar00rootroot00000000000000use clap::builder::PossibleValuesParser; use clap::*; const TEMPLATE: &str = "\ {name} {version} {author} {about} {usage-heading} {usage} {all-args}"; const USAGE: &str = "btm [OPTIONS]"; const DEFAULT_WIDGET_TYPE_STR: &str = { #[cfg(feature = "battery")] { "\ Sets which widget type to use as the default widget. For the default layout, this defaults to the 'process' widget. For a custom layout, it defaults to the first widget it sees. For example, suppose we have a layout that looks like: +-------------------+-----------------------+ | CPU (1) | CPU (2) | +---------+---------+-------------+---------+ | Process | CPU (3) | Temperature | CPU (4) | +---------+---------+-------------+---------+ Setting '--default_widget_type Temp' will make the Temperature widget selected by default. Supported widget names: +--------------------------+ | cpu | +--------------------------+ | mem, memory | +--------------------------+ | net, network | +--------------------------+ | proc, process, processes | +--------------------------+ | temp, temperature | +--------------------------+ | disk | +--------------------------+ | batt, battery | +--------------------------+ " } #[cfg(not(feature = "battery"))] { "\ Sets which widget type to use as the default widget. For the default layout, this defaults to the 'process' widget. For a custom layout, it defaults to the first widget it sees. For example, suppose we have a layout that looks like: +-------------------+-----------------------+ | CPU (1) | CPU (2) | +---------+---------+-------------+---------+ | Process | CPU (3) | Temperature | CPU (4) | +---------+---------+-------------+---------+ Setting '--default_widget_type Temp' will make the Temperature widget selected by default. Supported widget names: +--------------------------+ | cpu | +--------------------------+ | mem, memory | +--------------------------+ | net, network | +--------------------------+ | proc, process, processes | +--------------------------+ | temp, temperature | +--------------------------+ | disk | +--------------------------+ " } }; pub fn get_matches() -> clap::ArgMatches { build_app().get_matches() } pub fn build_app() -> Command { // Temps let kelvin = Arg::new("kelvin") .short('k') .long("kelvin") .action(ArgAction::SetTrue) .help("Sets the temperature type to Kelvin.") .long_help("Sets the temperature type to Kelvin."); let fahrenheit = Arg::new("fahrenheit") .short('f') .long("fahrenheit") .action(ArgAction::SetTrue) .help("Sets the temperature type to Fahrenheit.") .long_help("Sets the temperature type to Fahrenheit."); let celsius = Arg::new("celsius") .short('c') .long("celsius") .action(ArgAction::SetTrue) .help("Sets the temperature type to Celsius.") .long_help("Sets the temperature type to Celsius. This is the default option."); // All flags. These are in alphabetical order let autohide_time = Arg::new("autohide_time") .long("autohide_time") .action(ArgAction::SetTrue) .help("Temporarily shows the time scale in graphs.") .long_help( "Automatically hides the time scale in graphs after being shown for \ a brief moment when zoomed in/out. If time is disabled via --hide_time \ then this will have no effect.", ); let basic = Arg::new("basic") .short('b') .long("basic") .action(ArgAction::SetTrue) .help("Hides graphs and uses a more basic look.") .long_help( "Hides graphs and uses a more basic look. Design is largely inspired by htop's.", ); let case_sensitive = Arg::new("case_sensitive") .short('S') .long("case_sensitive") .action(ArgAction::SetTrue) .help("Enables case sensitivity by default.") .long_help("When searching for a process, enables case sensitivity by default."); let current_usage = Arg::new("current_usage") .short('u') .long("current_usage") .action(ArgAction::SetTrue) .help("Sets process CPU% to be based on current CPU%.") .long_help("Sets process CPU% usage to be based on the current system CPU% usage rather than total CPU usage."); let unnormalized_cpu = Arg::new("unnormalized_cpu") .short('n') .long("unnormalized_cpu") .action(ArgAction::SetTrue) .help("Show process CPU% usage without normalizing over the number of cores.") .long_help( "Shows all process CPU% usage without averaging over the number of CPU cores in the system.", ); let disable_click = Arg::new("disable_click") .long("disable_click") .action(ArgAction::SetTrue) .help("Disables mouse clicks.") .long_help("Disables mouse clicks from interacting with the program."); let dot_marker = Arg::new("dot_marker") .short('m') .long("dot_marker") .action(ArgAction::SetTrue) .help("Uses a dot marker for graphs.") .long_help("Uses a dot marker for graphs as opposed to the default braille marker."); let group = Arg::new("group") // TODO: Rename this to something like "group_process", would be "breaking" though. .short('g') .long("group") .action(ArgAction::SetTrue) .help("Groups processes with the same name by default.") .long_help("Groups processes with the same name by default."); let hide_avg_cpu = Arg::new("hide_avg_cpu") .short('a') .long("hide_avg_cpu") .action(ArgAction::SetTrue) .help("Hides the average CPU usage.") .long_help("Hides the average CPU usage from being shown."); let hide_table_gap = Arg::new("hide_table_gap") .long("hide_table_gap") .action(ArgAction::SetTrue) .help("Hides spacing between table headers and entries.") .long_help("Hides the spacing between table headers and entries."); let hide_time = Arg::new("hide_time") .long("hide_time") .action(ArgAction::SetTrue) .help("Hides the time scale.") .long_help("Completely hides the time scale from being shown."); let process_command = Arg::new("process_command") .long("process_command") .action(ArgAction::SetTrue) .help("Show processes as their commands by default.") .long_help("Show processes as their commands by default in the process widget."); let left_legend = Arg::new("left_legend") .short('l') .long("left_legend") .action(ArgAction::SetTrue) .help("Puts the CPU chart legend to the left side.") .long_help("Puts the CPU chart legend to the left side rather than the right side."); let regex = Arg::new("regex") .short('R') .long("regex") .action(ArgAction::SetTrue) .help("Enables regex by default.") .long_help("When searching for a process, enables regex by default."); let disable_advanced_kill = Arg::new("disable_advanced_kill") .long("disable_advanced_kill") .action(ArgAction::SetTrue) .help("Hides advanced process killing.") .long_help("Hides advanced options to stop a process on Unix-like systems. The only option shown is 15 (TERM)."); let show_table_scroll_position = Arg::new("show_table_scroll_position") .long("show_table_scroll_position") .action(ArgAction::SetTrue) .help("Shows the scroll position tracker in table widgets.") .long_help("Shows the list scroll position tracker in the widget title for table widgets."); let use_old_network_legend = Arg::new("use_old_network_legend") .long("use_old_network_legend") .action(ArgAction::SetTrue) .help("DEPRECATED - uses a separate network legend.") .long_help( "DEPRECATED - uses an older (pre-0.4), separate network widget legend. This display is not \ tested anymore and could be broken.", ); let whole_word = Arg::new("whole_word") .short('W') .long("whole_word") .action(ArgAction::SetTrue) .help("Enables whole-word matching by default.") .long_help( "When searching for a process, return results that match the entire query by default.", ); // All options. Again, alphabetical order. let config_location = Arg::new("config_location") .short('C') .long("config") .action(ArgAction::Set) .value_name("CONFIG PATH") .help("Sets the location of the config file.") .long_help( "Sets the location of the config file. Expects a config file in the TOML format. \ If it doesn't exist, one is created.", ) .value_hint(ValueHint::AnyPath); // TODO: File an issue with manpage, it cannot render charts correctly. let color = Arg::new("color") .long("color") .action(ArgAction::Set) .value_name("COLOR SCHEME") .value_parser(PossibleValuesParser::new([ "default", "default-light", "gruvbox", "gruvbox-light", "nord", "nord-light", ])) .hide_possible_values(true) .help("Use a color scheme, use --help for info.") .long_help( "\ Use a pre-defined color scheme. Currently supported values are: +------------------------------------------------------------+ | default | +------------------------------------------------------------+ | default-light (default but for use with light backgrounds) | +------------------------------------------------------------+ | gruvbox (a bright theme with 'retro groove' colors) | +------------------------------------------------------------+ | gruvbox-light (gruvbox but for use with light backgrounds) | +------------------------------------------------------------+ | nord (an arctic, north-bluish color palette) | +------------------------------------------------------------+ | nord-light (nord but for use with light backgrounds) | +------------------------------------------------------------+ Defaults to \"default\". ", ); let mem_as_value = Arg::new("mem_as_value") .long("mem_as_value") .action(ArgAction::SetTrue) .help("Defaults to showing process memory usage by value.") .long_help("Defaults to showing process memory usage by value. Otherwise, it defaults to showing it by percentage."); let default_time_value = Arg::new("default_time_value") .short('t') .long("default_time_value") .action(ArgAction::Set) .value_name("TIME") .help("Default time value for graphs.") .long_help( "Default time value for graphs. Takes a number in milliseconds or a human duration (e.g. 60s). The minimum time is 30s, and the default is 60s.", ); // TODO: Charts are broken in the manpage let default_widget_count = Arg::new("default_widget_count") .long("default_widget_count") .action(ArgAction::Set) .requires_all(["default_widget_type"]) .value_name("INT") .help("Sets the n'th selected widget type as the default.") .long_help( "\ Sets the n'th selected widget type to use as the default widget. Requires 'default_widget_type' to also be set, and defaults to 1. This reads from left to right, top to bottom. For example, suppose we have a layout that looks like: +-------------------+-----------------------+ | CPU (1) | CPU (2) | +---------+---------+-------------+---------+ | Process | CPU (3) | Temperature | CPU (4) | +---------+---------+-------------+---------+ And we set our default widget type to 'CPU'. If we set '--default_widget_count 1', then it would use the CPU (1) as the default widget. If we set '--default_widget_count 3', it would use CPU (3) as the default instead. ", ); let default_widget_type = Arg::new("default_widget_type") .long("default_widget_type") .action(ArgAction::Set) .value_name("WIDGET TYPE") .help("Sets the default widget type, use --help for info.") .long_help(DEFAULT_WIDGET_TYPE_STR); let expanded_on_startup = Arg::new("expanded_on_startup") .short('e') .long("expanded") .action(ArgAction::SetTrue) .help("Expand the default widget upon starting the app.") .long_help("Expand the default widget upon starting the app. Same as pressing \"e\" inside the app. Use with \"default_widget_type\" and \"default_widget_count\" to select desired expanded widget. This flag has no effect in basic mode (--basic)"); let rate = Arg::new("rate") .short('r') .long("rate") .action(ArgAction::Set) .value_name("TIME") .help("Sets the data refresh rate.") .long_help("Sets the data refresh rate. Takes a number in milliseconds or a human duration (e.g. 5s). The minimum is 250ms, and defaults to 1000ms. Smaller values may take more computer resources."); let time_delta = Arg::new("time_delta") .short('d') .long("time_delta") .action(ArgAction::Set) .value_name("TIME") .help("The amount of time changed upon zooming.") .long_help("The amount of time changed when zooming in/out. Takes a number in milliseconds or a human duration (e.g. 30s). The minimum is 1s, and defaults to 15s."); let tree = Arg::new("tree") .short('T') .long("tree") .action(ArgAction::SetTrue) .help("Defaults the process widget be in tree mode.") .long_help("Defaults to showing the process widget in tree mode."); let network_use_bytes = Arg::new("network_use_bytes") .long("network_use_bytes") .action(ArgAction::SetTrue) .help("Displays the network widget using bytes.") .long_help("Displays the network widget using bytes. Defaults to bits."); let network_use_log = Arg::new("network_use_log") .long("network_use_log") .action(ArgAction::SetTrue) .help("Displays the network widget with a log scale.") .long_help("Displays the network widget with a log scale. Defaults to a non-log scale."); let network_use_binary_prefix = Arg::new("network_use_binary_prefix") .long("network_use_binary_prefix") .action(ArgAction::SetTrue) .help("Displays the network widget with binary prefixes.") .long_help( "Displays the network widget with binary prefixes (i.e. kibibits, mebibits) rather than a decimal prefix (i.e. kilobits, megabits). Defaults to decimal prefixes.", ); let retention = Arg::new("retention") .long("retention") .action(ArgAction::Set) .value_name("TIME") .help("The timespan of data stored.") .long_help("How much data is stored at once in terms of time. Takes a number in milliseconds or a human duration (e.g. 20m), with a minimum of 1 minute. Note higher values will take up more memory. Defaults to 10 minutes."); let version = Arg::new("version") .short('V') .long("version") .action(ArgAction::Version) .help("Prints version information."); const VERSION: &str = match option_env!("NIGHTLY_VERSION") { Some(nightly_version) => nightly_version, None => crate_version!(), }; let temperature_group = ArgGroup::new("TEMPERATURE_TYPE").args([ kelvin.get_id(), fahrenheit.get_id(), celsius.get_id(), ]); let mut args = [ version, kelvin, fahrenheit, celsius, autohide_time, basic, case_sensitive, process_command, config_location, color, mem_as_value, default_time_value, default_widget_count, default_widget_type, disable_click, dot_marker, group, hide_avg_cpu, hide_table_gap, hide_time, show_table_scroll_position, left_legend, disable_advanced_kill, rate, regex, time_delta, tree, network_use_bytes, network_use_log, network_use_binary_prefix, current_usage, unnormalized_cpu, use_old_network_legend, whole_word, retention, expanded_on_startup, #[cfg(feature = "battery")] { Arg::new("battery") .long("battery") .action(ArgAction::SetTrue) .help("Shows the battery widget.") .long_help( "Shows the battery widget in default or basic mode. No effect on custom layouts.", ) }, #[cfg(feature = "gpu")] { Arg::new("enable_gpu_memory") .long("enable_gpu_memory") .action(ArgAction::SetTrue) .help("Enable collecting and displaying GPU memory usage.") }, #[cfg(not(target_os = "windows"))] { Arg::new("enable_cache_memory") .long("enable_cache_memory") .action(ArgAction::SetTrue) .help("Enable collecting and displaying cache and buffer memory.") }, ]; // Manually sort the arguments. args.sort_by(|a, b| { let a = a.get_long().unwrap_or(a.get_id().as_str()); let b = b.get_long().unwrap_or(b.get_id().as_str()); a.cmp(b) }); Command::new(crate_name!()) .version(VERSION) .author(crate_authors!()) .about(crate_description!()) .color(ColorChoice::Auto) .override_usage(USAGE) .help_template(TEMPLATE) .disable_version_flag(true) .args(args) .group(temperature_group) } #[cfg(test)] mod test { use super::*; #[test] fn verify_cli() { build_app().debug_assert(); } } bottom-0.9.6/src/bin/000077500000000000000000000000001447252316700144045ustar00rootroot00000000000000bottom-0.9.6/src/bin/main.rs000066400000000000000000000311061447252316700156770ustar00rootroot00000000000000#![deny(rust_2018_idioms)] #![deny(clippy::todo)] #![deny(clippy::unimplemented)] #![deny(clippy::missing_safety_doc)] use std::{ boxed::Box, io::stdout, panic, sync::{mpsc, Arc, Condvar, Mutex}, thread, time::Duration, }; use anyhow::{Context, Result}; use crossterm::{ event::{EnableBracketedPaste, EnableMouseCapture}, execute, terminal::{enable_raw_mode, EnterAlternateScreen}, }; use tui::{backend::CrosstermBackend, Terminal}; use bottom::{ canvas::{self, canvas_styling::CanvasStyling}, data_conversion::*, options::*, *, }; // Used for heap allocation debugging purposes. // #[global_allocator] // static ALLOC: dhat::Alloc = dhat::Alloc; fn main() -> Result<()> { // let _profiler = dhat::Profiler::new_heap(); let matches = args::get_matches(); #[cfg(feature = "logging")] { if let Err(err) = utils::logging::init_logger(log::LevelFilter::Debug, std::ffi::OsStr::new("debug.log")) { println!("Issue initializing logger: {err}"); } } // Read from config file. let config = { let config_path = read_config(matches.get_one::("config_location")) .context("Unable to access the given config file location.")?; create_or_get_config(&config_path) .context("Unable to properly parse or create the config file.")? }; // Get widget layout separately let (widget_layout, default_widget_id, default_widget_type_option) = get_widget_layout(&matches, &config) .context("Found an issue while trying to build the widget layout.")?; // FIXME: Should move this into build app or config let styling = { let colour_scheme = get_color_scheme(&matches, &config)?; CanvasStyling::new(colour_scheme, &config)? }; // Create an "app" struct, which will control most of the program and store settings/state let mut app = build_app( matches, config, &widget_layout, default_widget_id, &default_widget_type_option, &styling, )?; // Create painter and set colours. let mut painter = canvas::Painter::init(widget_layout, styling)?; // Check if the current environment is in a terminal. check_if_terminal(); // Create termination mutex and cvar. We use this setup because we need to sleep at some points in the update // thread, but we want to be able to interrupt the "sleep" if a termination occurs. let termination_lock = Arc::new(Mutex::new(false)); let termination_cvar = Arc::new(Condvar::new()); let (sender, receiver) = mpsc::channel(); // Set up the event loop thread; we set this up early to speed up first-time-to-data. let (collection_thread_ctrl_sender, collection_thread_ctrl_receiver) = mpsc::channel(); let _collection_thread = create_collection_thread( sender.clone(), collection_thread_ctrl_receiver, termination_lock.clone(), termination_cvar.clone(), &app.app_config_fields, app.filters.clone(), app.used_widgets, ); // Set up the input handling loop thread. let _input_thread = create_input_thread(sender.clone(), termination_lock.clone()); // Set up the cleaning loop thread. let _cleaning_thread = { let lock = termination_lock.clone(); let cvar = termination_cvar.clone(); let cleaning_sender = sender.clone(); let offset_wait_time = app.app_config_fields.retention_ms + 60000; thread::spawn(move || { loop { let result = cvar.wait_timeout( lock.lock().unwrap(), Duration::from_millis(offset_wait_time), ); if let Ok(result) = result { if *(result.0) { break; } } if cleaning_sender.send(BottomEvent::Clean).is_err() { // debug!("Failed to send cleaning sender..."); break; } } }) }; // Set up tui and crossterm let mut stdout_val = stdout(); execute!( stdout_val, EnterAlternateScreen, EnableMouseCapture, EnableBracketedPaste )?; enable_raw_mode()?; let mut terminal = Terminal::new(CrosstermBackend::new(stdout_val))?; terminal.clear()?; terminal.hide_cursor()?; #[cfg(target_os = "freebsd")] let _stderr_fd = { // A really ugly band-aid to suppress stderr warnings on FreeBSD due to sysinfo. // For more information, see https://github.com/ClementTsang/bottom/issues/798. use filedescriptor::{FileDescriptor, StdioDescriptor}; use std::fs::OpenOptions; let path = OpenOptions::new().write(true).open("/dev/null")?; FileDescriptor::redirect_stdio(&path, StdioDescriptor::Stderr)? }; // Set panic hook panic::set_hook(Box::new(panic_hook)); // Set termination hook ctrlc::set_handler(move || { let _ = sender.send(BottomEvent::Terminate); })?; let mut first_run = true; // Draw once first to initialize the canvas, so it doesn't feel like it's frozen. try_drawing(&mut terminal, &mut app, &mut painter)?; loop { if let Ok(recv) = receiver.recv() { match recv { BottomEvent::Terminate => { break; } BottomEvent::Resize => { try_drawing(&mut terminal, &mut app, &mut painter)?; } BottomEvent::KeyInput(event) => { if handle_key_event_or_break(event, &mut app, &collection_thread_ctrl_sender) { break; } update_data(&mut app); try_drawing(&mut terminal, &mut app, &mut painter)?; } BottomEvent::MouseInput(event) => { handle_mouse_event(event, &mut app); update_data(&mut app); try_drawing(&mut terminal, &mut app, &mut painter)?; } BottomEvent::PasteEvent(paste) => { app.handle_paste(paste); update_data(&mut app); try_drawing(&mut terminal, &mut app, &mut painter)?; } BottomEvent::Update(data) => { app.data_collection.eat_data(data); // This thing is required as otherwise, some widgets can't draw correctly w/o // some data (or they need to be re-drawn). if first_run { first_run = false; app.is_force_redraw = true; } if !app.frozen_state.is_frozen() { // Convert all data into tui-compliant components // Network if app.used_widgets.use_net { let network_data = convert_network_data_points( &app.data_collection, app.app_config_fields.use_basic_mode || app.app_config_fields.use_old_network_legend, &app.app_config_fields.network_scale_type, &app.app_config_fields.network_unit_type, app.app_config_fields.network_use_binary_prefix, ); app.converted_data.network_data_rx = network_data.rx; app.converted_data.network_data_tx = network_data.tx; app.converted_data.rx_display = network_data.rx_display; app.converted_data.tx_display = network_data.tx_display; if let Some(total_rx_display) = network_data.total_rx_display { app.converted_data.total_rx_display = total_rx_display; } if let Some(total_tx_display) = network_data.total_tx_display { app.converted_data.total_tx_display = total_tx_display; } } // Disk if app.used_widgets.use_disk { app.converted_data.ingest_disk_data(&app.data_collection); for disk in app.states.disk_state.widget_states.values_mut() { disk.force_data_update(); } } // Temperatures if app.used_widgets.use_temp { app.converted_data.ingest_temp_data( &app.data_collection, app.app_config_fields.temperature_type, ); for temp in app.states.temp_state.widget_states.values_mut() { temp.force_data_update(); } } // Memory if app.used_widgets.use_mem { app.converted_data.mem_data = convert_mem_data_points(&app.data_collection); #[cfg(not(target_os = "windows"))] { app.converted_data.cache_data = convert_cache_data_points(&app.data_collection); } app.converted_data.swap_data = convert_swap_data_points(&app.data_collection); #[cfg(feature = "zfs")] { app.converted_data.arc_data = convert_arc_data_points(&app.data_collection); } #[cfg(feature = "gpu")] { app.converted_data.gpu_data = convert_gpu_data(&app.data_collection); } app.converted_data.mem_labels = convert_mem_label(&app.data_collection.memory_harvest); app.converted_data.swap_labels = convert_mem_label(&app.data_collection.swap_harvest); #[cfg(not(target_os = "windows"))] { app.converted_data.cache_labels = convert_mem_label(&app.data_collection.cache_harvest); } #[cfg(feature = "zfs")] { let arc_labels = convert_arc_labels(&app.data_collection); app.converted_data.arc_labels = arc_labels; } } // CPU if app.used_widgets.use_cpu { app.converted_data.ingest_cpu_data(&app.data_collection); app.converted_data.load_avg_data = app.data_collection.load_avg_harvest; } // Processes if app.used_widgets.use_proc { for proc in app.states.proc_state.widget_states.values_mut() { proc.force_data_update(); } } // Battery #[cfg(feature = "battery")] { if app.used_widgets.use_battery { app.converted_data.battery_data = convert_battery_harvest(&app.data_collection); } } update_data(&mut app); try_drawing(&mut terminal, &mut app, &mut painter)?; } } BottomEvent::Clean => { app.data_collection .clean_data(app.app_config_fields.retention_ms); } } } } // I think doing it in this order is safe... *termination_lock.lock().unwrap() = true; termination_cvar.notify_all(); cleanup_terminal(&mut terminal)?; Ok(()) } bottom-0.9.6/src/canvas.rs000066400000000000000000001030421447252316700154550ustar00rootroot00000000000000use std::str::FromStr; use canvas_styling::*; use itertools::izip; use tui::{ backend::Backend, layout::{Constraint, Direction, Layout, Rect}, text::{Line, Span}, widgets::Paragraph, Frame, Terminal, }; use crate::{ app::{ self, layout_manager::{BottomColRow, BottomLayout, BottomWidgetType}, App, }, constants::*, utils::error, utils::error::BottomError, }; pub mod canvas_styling; mod dialogs; mod drawing_utils; mod widgets; #[derive(Debug)] pub enum ColourScheme { Default, DefaultLight, Gruvbox, GruvboxLight, Nord, NordLight, Custom, } impl FromStr for ColourScheme { type Err = BottomError; fn from_str(s: &str) -> error::Result { let lower_case = s.to_lowercase(); match lower_case.as_str() { "default" => Ok(ColourScheme::Default), "default-light" => Ok(ColourScheme::DefaultLight), "gruvbox" => Ok(ColourScheme::Gruvbox), "gruvbox-light" => Ok(ColourScheme::GruvboxLight), "nord" => Ok(ColourScheme::Nord), "nord-light" => Ok(ColourScheme::NordLight), _ => Err(BottomError::ConfigError(format!( "\"{}\" is an invalid built-in color scheme.", s ))), } } } /// Handles the canvas' state. pub struct Painter { pub colours: CanvasStyling, height: u16, width: u16, styled_help_text: Vec>, // TODO: Redo this entire thing. row_constraints: Vec, col_constraints: Vec>, col_row_constraints: Vec>>, layout_constraints: Vec>>>, derived_widget_draw_locs: Vec>>>, widget_layout: BottomLayout, } // Part of a temporary fix for https://github.com/ClementTsang/bottom/issues/896 enum LayoutConstraint { CanvasHandled, Grow, Ratio(u32, u32), } impl Painter { pub fn init(widget_layout: BottomLayout, styling: CanvasStyling) -> anyhow::Result { // Now for modularity; we have to also initialize the base layouts! // We want to do this ONCE and reuse; after this we can just construct // based on the console size. let mut row_constraints = Vec::new(); let mut col_constraints = Vec::new(); let mut col_row_constraints = Vec::new(); let mut layout_constraints = Vec::new(); widget_layout.rows.iter().for_each(|row| { if row.canvas_handle_height { row_constraints.push(LayoutConstraint::CanvasHandled); } else { row_constraints.push(LayoutConstraint::Ratio( row.row_height_ratio, widget_layout.total_row_height_ratio, )); } let mut new_col_constraints = Vec::new(); let mut new_widget_constraints = Vec::new(); let mut new_col_row_constraints = Vec::new(); row.children.iter().for_each(|col| { if col.canvas_handle_width { new_col_constraints.push(LayoutConstraint::CanvasHandled); } else { new_col_constraints.push(LayoutConstraint::Ratio( col.col_width_ratio, row.total_col_ratio, )); } let mut new_new_col_row_constraints = Vec::new(); let mut new_new_widget_constraints = Vec::new(); col.children.iter().for_each(|col_row| { if col_row.canvas_handle_height { new_new_col_row_constraints.push(LayoutConstraint::CanvasHandled); } else if col_row.flex_grow { new_new_col_row_constraints.push(LayoutConstraint::Grow); } else { new_new_col_row_constraints.push(LayoutConstraint::Ratio( col_row.col_row_height_ratio, col.total_col_row_ratio, )); } let mut new_new_new_widget_constraints = Vec::new(); col_row.children.iter().for_each(|widget| { if widget.canvas_handle_width { new_new_new_widget_constraints.push(LayoutConstraint::CanvasHandled); } else if widget.flex_grow { new_new_new_widget_constraints.push(LayoutConstraint::Grow); } else { new_new_new_widget_constraints.push(LayoutConstraint::Ratio( widget.width_ratio, col_row.total_widget_ratio, )); } }); new_new_widget_constraints.push(new_new_new_widget_constraints); }); new_col_row_constraints.push(new_new_col_row_constraints); new_widget_constraints.push(new_new_widget_constraints); }); col_row_constraints.push(new_col_row_constraints); layout_constraints.push(new_widget_constraints); col_constraints.push(new_col_constraints); }); let mut painter = Painter { colours: styling, height: 0, width: 0, styled_help_text: Vec::default(), row_constraints, col_constraints, col_row_constraints, layout_constraints, widget_layout, derived_widget_draw_locs: Vec::default(), }; painter.complete_painter_init(); Ok(painter) } /// Determines the border style. pub fn get_border_style(&self, widget_id: u64, selected_widget_id: u64) -> tui::style::Style { let is_on_widget = widget_id == selected_widget_id; if is_on_widget { self.colours.highlighted_border_style } else { self.colours.border_style } } /// Must be run once before drawing, but after setting colours. /// This is to set some remaining styles and text. fn complete_painter_init(&mut self) { let mut styled_help_spans = Vec::new(); // Init help text: HELP_TEXT.iter().enumerate().for_each(|(itx, section)| { if itx == 0 { styled_help_spans.extend( section .iter() .map(|&text| Span::styled(text, self.colours.text_style)) .collect::>(), ); } else { // Not required check but it runs only a few times... so whatever ig, prevents me from // being dumb and leaving a help text section only one line long. if section.len() > 1 { styled_help_spans.push(Span::raw("")); styled_help_spans .push(Span::styled(section[0], self.colours.table_header_style)); styled_help_spans.extend( section[1..] .iter() .map(|&text| Span::styled(text, self.colours.text_style)) .collect::>(), ); } } }); self.styled_help_text = styled_help_spans.into_iter().map(Line::from).collect(); } fn draw_frozen_indicator(&self, f: &mut Frame<'_, B>, draw_loc: Rect) { f.render_widget( Paragraph::new(Span::styled( "Frozen, press 'f' to unfreeze", self.colours.currently_selected_text_style, )), Layout::default() .horizontal_margin(1) .constraints([Constraint::Length(1)]) .split(draw_loc)[0], ) } pub fn draw_data( &mut self, terminal: &mut Terminal, app_state: &mut app::App, ) -> error::Result<()> { use BottomWidgetType::*; terminal.draw(|f| { let (terminal_size, frozen_draw_loc) = if app_state.frozen_state.is_frozen() { let split_loc = Layout::default() .constraints([Constraint::Min(0), Constraint::Length(1)]) .split(f.size()); (split_loc[0], Some(split_loc[1])) } else { (f.size(), None) }; let terminal_height = terminal_size.height; let terminal_width = terminal_size.width; if (self.height == 0 && self.width == 0) || (self.height != terminal_height || self.width != terminal_width) { app_state.is_force_redraw = true; self.height = terminal_height; self.width = terminal_width; } if app_state.should_get_widget_bounds() { // If we're force drawing, reset ALL mouse boundaries. for widget in app_state.widget_map.values_mut() { widget.top_left_corner = None; widget.bottom_right_corner = None; } // Reset dd_dialog... app_state.delete_dialog_state.button_positions = vec![]; // Reset battery dialog... for battery_widget in app_state.states.battery_state.widget_states.values_mut() { battery_widget.tab_click_locs = None; } } if app_state.help_dialog_state.is_showing_help { let gen_help_len = GENERAL_HELP_TEXT.len() as u16 + 3; let border_len = terminal_height.saturating_sub(gen_help_len) / 2; let vertical_dialog_chunk = Layout::default() .direction(Direction::Vertical) .constraints([ Constraint::Length(border_len), Constraint::Length(gen_help_len), Constraint::Length(border_len), ]) .split(terminal_size); let middle_dialog_chunk = Layout::default() .direction(Direction::Horizontal) .constraints(if terminal_width < 100 { // TODO: [REFACTOR] The point we start changing size at currently hard-coded in. [ Constraint::Percentage(0), Constraint::Percentage(100), Constraint::Percentage(0), ] } else { [ Constraint::Percentage(15), Constraint::Percentage(70), Constraint::Percentage(15), ] }) .split(vertical_dialog_chunk[1]); self.draw_help_dialog(f, app_state, middle_dialog_chunk[1]); } else if app_state.delete_dialog_state.is_showing_dd { let dd_text = self.get_dd_spans(app_state); let text_width = if terminal_width < 100 { terminal_width * 90 / 100 } else { terminal_width * 50 / 100 }; let text_height = if cfg!(target_os = "windows") || !app_state.app_config_fields.is_advanced_kill { 7 } else { 22 }; let vertical_bordering = terminal_height.saturating_sub(text_height) / 2; let vertical_dialog_chunk = Layout::default() .direction(Direction::Vertical) .constraints([ Constraint::Length(vertical_bordering), Constraint::Length(text_height), Constraint::Length(vertical_bordering), ]) .split(terminal_size); let horizontal_bordering = terminal_width.saturating_sub(text_width) / 2; let middle_dialog_chunk = Layout::default() .direction(Direction::Horizontal) .constraints([ Constraint::Length(horizontal_bordering), Constraint::Length(text_width), Constraint::Length(horizontal_bordering), ]) .split(vertical_dialog_chunk[1]); // This is a bit nasty, but it works well... I guess. app_state.delete_dialog_state.is_showing_dd = self.draw_dd_dialog(f, dd_text, app_state, middle_dialog_chunk[1]); } else if app_state.is_expanded { if let Some(frozen_draw_loc) = frozen_draw_loc { self.draw_frozen_indicator(f, frozen_draw_loc); } let rect = Layout::default() .margin(0) .constraints([Constraint::Percentage(100)]) .split(terminal_size); match &app_state.current_widget.widget_type { Cpu => self.draw_cpu(f, app_state, rect[0], app_state.current_widget.widget_id), CpuLegend => self.draw_cpu( f, app_state, rect[0], app_state.current_widget.widget_id - 1, ), Mem | BasicMem => self.draw_memory_graph( f, app_state, rect[0], app_state.current_widget.widget_id, ), Disk => self.draw_disk_table( f, app_state, rect[0], app_state.current_widget.widget_id, ), Temp => self.draw_temp_table( f, app_state, rect[0], app_state.current_widget.widget_id, ), Net => self.draw_network_graph( f, app_state, rect[0], app_state.current_widget.widget_id, false, ), Proc | ProcSearch | ProcSort => { let widget_id = app_state.current_widget.widget_id - match &app_state.current_widget.widget_type { ProcSearch => 1, ProcSort => 2, _ => 0, }; self.draw_process_widget(f, app_state, rect[0], true, widget_id); } Battery => self.draw_battery_display( f, app_state, rect[0], true, app_state.current_widget.widget_id, ), _ => {} } } else if app_state.app_config_fields.use_basic_mode { // Basic mode. This basically removes all graphs but otherwise // the same info. if let Some(frozen_draw_loc) = frozen_draw_loc { self.draw_frozen_indicator(f, frozen_draw_loc); } let actual_cpu_data_len = app_state.converted_data.cpu_data.len().saturating_sub(1); // This fixes #397, apparently if the height is 1, it can't render the CPU bars... let cpu_height = { let c = (actual_cpu_data_len / 4) as u16 + u16::from(actual_cpu_data_len % 4 != 0); if c <= 1 { 1 } else { c } }; let mut mem_rows = 1; if app_state.converted_data.swap_labels.is_some() { mem_rows += 1; // add row for swap } #[cfg(feature = "zfs")] { if app_state.converted_data.arc_labels.is_some() { mem_rows += 1; // add row for arc } } #[cfg(not(target_os = "windows"))] { if app_state.converted_data.cache_labels.is_some() { mem_rows += 1; } } #[cfg(feature = "gpu")] { if let Some(gpu_data) = &app_state.converted_data.gpu_data { mem_rows += gpu_data.len() as u16; // add row(s) for gpu } } if mem_rows == 1 { mem_rows += 1; // need at least 2 rows for RX and TX } let vertical_chunks = Layout::default() .direction(Direction::Vertical) .margin(0) .constraints([ Constraint::Length(cpu_height), Constraint::Length(mem_rows), Constraint::Length(2), Constraint::Min(5), ]) .split(terminal_size); let middle_chunks = Layout::default() .direction(Direction::Horizontal) .constraints([Constraint::Percentage(50), Constraint::Percentage(50)]) .split(vertical_chunks[1]); if vertical_chunks[0].width >= 2 { self.draw_basic_cpu(f, app_state, vertical_chunks[0], 1); } if middle_chunks[0].width >= 2 { self.draw_basic_memory(f, app_state, middle_chunks[0], 2); } if middle_chunks[1].width >= 2 { self.draw_basic_network(f, app_state, middle_chunks[1], 3); } let mut later_widget_id: Option = None; if let Some(basic_table_widget_state) = &app_state.states.basic_table_widget_state { let widget_id = basic_table_widget_state.currently_displayed_widget_id; later_widget_id = Some(widget_id); if vertical_chunks[3].width >= 2 { match basic_table_widget_state.currently_displayed_widget_type { Disk => { self.draw_disk_table(f, app_state, vertical_chunks[3], widget_id) } Proc | ProcSort => { let wid = widget_id - match basic_table_widget_state.currently_displayed_widget_type { ProcSearch => 1, ProcSort => 2, _ => 0, }; self.draw_process_widget( f, app_state, vertical_chunks[3], false, wid, ); } Temp => { self.draw_temp_table(f, app_state, vertical_chunks[3], widget_id) } Battery => self.draw_battery_display( f, app_state, vertical_chunks[3], false, widget_id, ), _ => {} } } } if let Some(widget_id) = later_widget_id { self.draw_basic_table_arrows(f, app_state, vertical_chunks[2], widget_id); } } else { // Draws using the passed in (or default) layout. if let Some(frozen_draw_loc) = frozen_draw_loc { self.draw_frozen_indicator(f, frozen_draw_loc); } if self.derived_widget_draw_locs.is_empty() || app_state.is_force_redraw { fn get_constraints( direction: Direction, constraints: &[LayoutConstraint], area: Rect, ) -> Vec { // Order of operations: // - Ratios first + canvas-handled (which is just zero) // - Then any flex-grows to take up remaining space; divide amongst remaining // hand out any remaining space #[derive(Debug, Default, Clone, Copy)] struct Size { width: u16, height: u16, } impl Size { fn shrink_width(&mut self, amount: u16) { self.width -= amount; } fn shrink_height(&mut self, amount: u16) { self.height -= amount; } } let mut bounds = Size { width: area.width, height: area.height, }; let mut sizes = vec![Size::default(); constraints.len()]; let mut grow = vec![]; let mut num_non_ch = 0; for (itx, (constraint, size)) in constraints.iter().zip(sizes.iter_mut()).enumerate() { match constraint { LayoutConstraint::Ratio(a, b) => { match direction { Direction::Horizontal => { let amount = (((area.width as u32) * (*a)) / (*b)) as u16; bounds.shrink_width(amount); size.width = amount; size.height = area.height; } Direction::Vertical => { let amount = (((area.height as u32) * (*a)) / (*b)) as u16; bounds.shrink_height(amount); size.width = area.width; size.height = amount; } } num_non_ch += 1; } LayoutConstraint::Grow => { // Mark it as grow in the vector and handle in second pass. grow.push(itx); num_non_ch += 1; } LayoutConstraint::CanvasHandled => { // Do nothing in this case. It's already 0. } } } if !grow.is_empty() { match direction { Direction::Horizontal => { let width = bounds.width / grow.len() as u16; bounds.shrink_width(width * grow.len() as u16); for g in grow { sizes[g] = Size { width, height: area.height, }; } } Direction::Vertical => { let height = bounds.height / grow.len() as u16; bounds.shrink_height(height * grow.len() as u16); for g in grow { sizes[g] = Size { width: area.width, height, }; } } } } if num_non_ch > 0 { match direction { Direction::Horizontal => { let per_item = bounds.width / num_non_ch; let mut remaining_width = bounds.width % num_non_ch; for (size, constraint) in sizes.iter_mut().zip(constraints) { match constraint { LayoutConstraint::CanvasHandled => {} LayoutConstraint::Grow | LayoutConstraint::Ratio(_, _) => { if remaining_width > 0 { size.width += per_item + 1; remaining_width -= 1; } else { size.width += per_item; } } } } } Direction::Vertical => { let per_item = bounds.height / num_non_ch; let mut remaining_height = bounds.height % num_non_ch; for (size, constraint) in sizes.iter_mut().zip(constraints) { match constraint { LayoutConstraint::CanvasHandled => {} LayoutConstraint::Grow | LayoutConstraint::Ratio(_, _) => { if remaining_height > 0 { size.height += per_item + 1; remaining_height -= 1; } else { size.height += per_item; } } } } } } } let mut curr_x = area.x; let mut curr_y = area.y; sizes .into_iter() .map(|size| { let rect = Rect::new(curr_x, curr_y, size.width, size.height); match direction { Direction::Horizontal => { curr_x += size.width; } Direction::Vertical => { curr_y += size.height; } } rect }) .collect() } let draw_locs = get_constraints(Direction::Vertical, &self.row_constraints, terminal_size); self.derived_widget_draw_locs = izip!( draw_locs, &self.col_constraints, &self.col_row_constraints, &self.layout_constraints, &self.widget_layout.rows ) .map( |( draw_loc, col_constraint, col_row_constraint, row_constraint_vec, cols, )| { izip!( get_constraints(Direction::Horizontal, col_constraint, draw_loc), col_row_constraint, row_constraint_vec, &cols.children ) .map(|(split_loc, constraint, col_constraint_vec, col_rows)| { izip!( get_constraints( Direction::Vertical, constraint.as_slice(), split_loc ), col_constraint_vec, &col_rows.children ) .map(|(draw_loc, col_row_constraint_vec, widgets)| { // Note that col_row_constraint_vec CONTAINS the widget constraints let widget_draw_locs = get_constraints( Direction::Horizontal, col_row_constraint_vec.as_slice(), draw_loc, ); // Side effect, draw here. self.draw_widgets_with_constraints( f, app_state, widgets, &widget_draw_locs, ); widget_draw_locs }) .collect() }) .collect() }, ) .collect(); } else { self.widget_layout .rows .iter() .flat_map(|row| &row.children) .flat_map(|col| &col.children) .zip(self.derived_widget_draw_locs.iter().flatten().flatten()) .for_each(|(widgets, widget_draw_locs)| { self.draw_widgets_with_constraints( f, app_state, widgets, widget_draw_locs, ); }); } } })?; if let Some(updated_current_widget) = app_state .widget_map .get(&app_state.current_widget.widget_id) { app_state.current_widget = updated_current_widget.clone(); } app_state.is_force_redraw = false; app_state.is_determining_widget_boundary = false; Ok(()) } fn draw_widgets_with_constraints( &self, f: &mut Frame<'_, B>, app_state: &mut App, widgets: &BottomColRow, widget_draw_locs: &[Rect], ) { use BottomWidgetType::*; for (widget, widget_draw_loc) in widgets.children.iter().zip(widget_draw_locs) { if widget_draw_loc.width >= 2 && widget_draw_loc.height >= 2 { match &widget.widget_type { Empty => {} Cpu => self.draw_cpu(f, app_state, *widget_draw_loc, widget.widget_id), Mem => self.draw_memory_graph(f, app_state, *widget_draw_loc, widget.widget_id), Net => self.draw_network(f, app_state, *widget_draw_loc, widget.widget_id), Temp => self.draw_temp_table(f, app_state, *widget_draw_loc, widget.widget_id), Disk => self.draw_disk_table(f, app_state, *widget_draw_loc, widget.widget_id), Proc => self.draw_process_widget( f, app_state, *widget_draw_loc, true, widget.widget_id, ), Battery => self.draw_battery_display( f, app_state, *widget_draw_loc, true, widget.widget_id, ), _ => {} } } } } } bottom-0.9.6/src/canvas/000077500000000000000000000000001447252316700151075ustar00rootroot00000000000000bottom-0.9.6/src/canvas/canvas_styling.rs000066400000000000000000000255561447252316700205160ustar00rootroot00000000000000use anyhow::Context; use colour_utils::*; use tui::style::{Color, Style}; use super::ColourScheme; use crate::{ constants::*, options::{Config, ConfigColours}, utils::error, }; mod colour_utils; pub struct CanvasStyling { pub currently_selected_text_colour: Color, pub currently_selected_bg_colour: Color, pub currently_selected_text_style: Style, pub table_header_style: Style, pub ram_style: Style, #[cfg(not(target_os = "windows"))] pub cache_style: Style, pub swap_style: Style, pub arc_style: Style, pub gpu_colour_styles: Vec