From c6eed34d17408c8cfb4ff9e8d5924572c39a812e Mon Sep 17 00:00:00 2001 From: Nikita Vasilev Date: Sun, 29 Sep 2024 17:01:19 +0700 Subject: [PATCH 01/11] Initial commit --- .github/ISSUE_TEMPLATE/bug_report.md | 41 +++ .github/ISSUE_TEMPLATE/feature_request.md | 11 + .github/PULL_REQUEST_TEMPLATE/bug_template.md | 9 + .../PULL_REQUEST_TEMPLATE/feature_template.md | 12 + .github/dependabot.yml | 34 +++ .github/workflows/ci.yml | 269 ++++++++++++++++++ .github/workflows/danger.yml | 31 ++ .swiftformat | 64 +++++ .swiftlint.yml | 135 +++++++++ CHANGELOG.md | 2 + CODE_OF_CONDUCT.md | 74 +++++ CONTRIBUTING.md | 61 ++++ Dangerfile | 1 + Gemfile | 3 + Makefile | 19 ++ Mintfile | 2 + Package.swift | 23 ++ README.md | 66 ++++- SEQURITY.md | 7 + .../builder-macro/Classes/builder-macro.swift | 6 + .../builder-macroTests.swift | 8 + hooks/pre-commit | 38 +++ 22 files changed, 915 insertions(+), 1 deletion(-) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/PULL_REQUEST_TEMPLATE/bug_template.md create mode 100644 .github/PULL_REQUEST_TEMPLATE/feature_template.md create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/danger.yml create mode 100644 .swiftformat create mode 100644 .swiftlint.yml create mode 100644 CHANGELOG.md create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md create mode 100644 Dangerfile create mode 100644 Gemfile create mode 100644 Makefile create mode 100644 Mintfile create mode 100644 Package.swift create mode 100644 SEQURITY.md create mode 100644 Sources/builder-macro/Classes/builder-macro.swift create mode 100644 Tests/builder-macroTests/builder-macroTests.swift create mode 100644 hooks/pre-commit diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..8dc7e75 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,41 @@ +--- +name: "🐛 Bug Report" +about: Report a reproducible bug or regression. +title: 'Bug: ' +labels: 'bug' + +--- + + + +Application version: + +## Steps To Reproduce + +1. +2. + + + +Link to code example: + + + +## The current behavior + + +## The expected behavior \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..3e6b15f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,11 @@ +--- +name: 🛠 Feature request +about: If you have a feature request for the builder-macro, file it here. +labels: 'type: enhancement' +--- + +**Feature description** +Clearly and concisely describe the feature. + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. \ No newline at end of file diff --git a/.github/PULL_REQUEST_TEMPLATE/bug_template.md b/.github/PULL_REQUEST_TEMPLATE/bug_template.md new file mode 100644 index 0000000..7d6a149 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE/bug_template.md @@ -0,0 +1,9 @@ +## Bug description +Clearly and concisely describe the problem. + +## Solution description +Describe your code changes in detail for reviewers. Explain the technical solution you have provided and how it fixes the issue case. + +## Covered unit test cases +- [x] yes +- [x] no \ No newline at end of file diff --git a/.github/PULL_REQUEST_TEMPLATE/feature_template.md b/.github/PULL_REQUEST_TEMPLATE/feature_template.md new file mode 100644 index 0000000..ab3978b --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE/feature_template.md @@ -0,0 +1,12 @@ +## Feature description +Clearly and concisely describe the feature. + +## Solution description +Describe your code changes in detail for reviewers. + +## Areas affected and ensured +List out the areas affected by your code changes. + +## Covered unit test cases +- [x] yes +- [x] no \ No newline at end of file diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..c3e658c --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,34 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: github-actions + directory: / + open-pull-requests-limit: 10 + schedule: + interval: daily + time: '07:00' + timezone: Europe/Berlin + + assignees: + - nik3212 + reviewers: + - nik3212 + + + - package-ecosystem: swift + directory: / + open-pull-requests-limit: 10 + schedule: + interval: daily + time: '07:00' + timezone: Europe/Berlin + + assignees: + - nik3212 + reviewers: + - nik3212 + \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..1d9be20 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,269 @@ +name: "builder-macro" + +on: + push: + branches: + - main + - dev + pull_request: + paths: + - '.swiftlint.yml' + - ".github/workflows/**" + - "Package.swift" + - "Source/**" + - "Tests/**" + +jobs: + SwiftLint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: GitHub Action for SwiftLint + uses: norio-nomura/action-swiftlint@3.2.1 + with: + args: --strict + env: + + DIFF_BASE: ${{ github.base_ref }} + + + + macOS: + + name: ${{ matrix.name }} + runs-on: ${{ matrix.runsOn }} + + env: + + DEVELOPER_DIR: "/Applications/${{ matrix.xcode }}.app/Contents/Developer" + + timeout-minutes: 20 + strategy: + fail-fast: false + matrix: + include: + - xcode: "Xcode_15.0" + runsOn: macos-13 + name: "macOS 13, Xcode 15.0, Swift 5.9.0" + - xcode: "Xcode_14.3.1" + runsOn: macos-13 + name: "macOS 13, Xcode 14.3.1, Swift 5.8.0" + - xcode: "Xcode_14.2" + runsOn: macOS-12 + name: "macOS 12, Xcode 14.2, Swift 5.7.2" + - xcode: "Xcode_14.1" + runsOn: macOS-12 + name: "macOS 12, Xcode 14.1, Swift 5.7.1" + steps: + - uses: actions/checkout@v3 + + - name: ${{ matrix.name }} + run: xcodebuild test -scheme "{{ cookiecutter.name }}" -destination "platform=macOS" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 + + - name: Upload coverage reports to Codecov + uses: codecov/codecov-action@v3.1.0 + with: + + token: ${{ secrets.CODECOV_TOKEN }} + + xcode: true + + xcode_archive_path: test_output/${{ matrix.name }}.xcresult + + - uses: actions/upload-artifact@v4 + with: + + name: ${{ matrix.name }} + + path: test_output + + + + iOS: + + name: ${{ matrix.name }} + runs-on: ${{ matrix.runsOn }} + + env: + + DEVELOPER_DIR: "/Applications/${{ matrix.xcode }}.app/Contents/Developer" + + timeout-minutes: 20 + strategy: + fail-fast: false + matrix: + include: + - destination: "OS=17.0.1,name=iPhone 14 Pro" + name: "iOS 17.0.1" + xcode: "Xcode_15.0" + runsOn: macos-13 + - destination: "OS=16.4,name=iPhone 14 Pro" + name: "iOS 16.4" + xcode: "Xcode_14.3.1" + runsOn: macos-13 + steps: + - uses: actions/checkout@v3 + + - name: ${{ matrix.name }} + run: xcodebuild test -scheme "{{ cookiecutter.name }}" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 + + - uses: actions/upload-artifact@v4 + with: + + name: ${{ matrix.name }} + path: test_output + + + + + tvOS: + + name: ${{ matrix.name }} + runs-on: ${{ matrix.runsOn }} + + env: + + DEVELOPER_DIR: "/Applications/${{ matrix.xcode }}.app/Contents/Developer" + + timeout-minutes: 20 + strategy: + fail-fast: false + matrix: + include: + - destination: "OS=17.0,name=Apple TV" + name: "tvOS 17.0" + xcode: "Xcode_15.0" + runsOn: macos-13 + - destination: "OS=16.4,name=Apple TV" + name: "tvOS 16.4" + xcode: "Xcode_14.3.1" + runsOn: macos-13 + steps: + - uses: actions/checkout@v3 + + - name: ${{ matrix.name }} + run: xcodebuild test -scheme "{{ cookiecutter.name }}" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 + + - name: Upload coverage reports to Codecov + uses: codecov/codecov-action@v3.1.0 + with: + + token: ${{ secrets.CODECOV_TOKEN }} + + xcode: true + + xcode_archive_path: test_output/${{ matrix.name }}.xcresult + + - uses: actions/upload-artifact@v4 + with: + + name: ${{ matrix.name }} + + path: test_output + + + + watchOS: + + name: ${{ matrix.name }} + runs-on: ${{ matrix.runsOn }} + + env: + + DEVELOPER_DIR: "/Applications/${{ matrix.xcode }}.app/Contents/Developer" + + timeout-minutes: 20 + strategy: + fail-fast: false + matrix: + include: + - destination: "OS=10.0,name=Apple Watch Series 9 (45mm)" + name: "watchOS 10.0" + xcode: "Xcode_15.0" + runsOn: macos-13 + - destination: "OS=9.4,name=Apple Watch Series 8 (45mm)" + name: "watchOS 9.4" + xcode: "Xcode_14.3.1" + runsOn: macos-13 + - destination: "OS=8.5,name=Apple Watch Series 7 (45mm)" + name: "watchOS 8.5" + xcode: "Xcode_14.3.1" + runsOn: macos-13 + steps: + - uses: actions/checkout@v3 + + - name: ${{ matrix.name }} + run: xcodebuild test -scheme "{{ cookiecutter.name }}" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 + + - name: Upload coverage reports to Codecov + uses: codecov/codecov-action@v3.1.0 + with: + + token: ${{ secrets.CODECOV_TOKEN }} + + xcode: true + + xcode_archive_path: test_output/${{ matrix.name }}.xcresult + + - uses: actions/upload-artifact@v4 + with: + + name: ${{ matrix.name }} + + path: test_output + + + spm: + + name: ${{ matrix.name }} + runs-on: ${{ matrix.runsOn }} + + env: + + DEVELOPER_DIR: "/Applications/${{ matrix.xcode }}.app/Contents/Developer" + + timeout-minutes: 20 + strategy: + fail-fast: false + matrix: + include: + - name: "Xcode 15" + xcode: "Xcode_15.0" + runsOn: macos-13 + - name: "Xcode 14" + xcode: "Xcode_14.3.1" + runsOn: macos-13 + steps: + - uses: actions/checkout@v3 + + - name: ${{ matrix.name }} + run: swift build -c release --target "{{ cookiecutter.name }}" + + merge-test-reports: + needs: [iOS, macOS, watchOS, tvOS] + runs-on: macos-13 + steps: + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + path: test_output + - run: xcrun xcresulttool merge test_output/**/*.xcresult --output-path test_output/final/final.xcresult + - name: Upload Merged Artifact + uses: actions/upload-artifact@v4 + with: + name: MergedResult + path: test_output/final + + discover-typos: + name: Discover Typos + runs-on: macOS-12 + env: + DEVELOPER_DIR: /Applications/Xcode_14.1.app/Contents/Developer + steps: + - uses: actions/checkout@v2 + - name: Discover typos + run: | + export PATH="$PATH:/Library/Frameworks/Python.framework/Versions/3.11/bin" + python3 -m pip install --upgrade pip + python3 -m pip install codespell + codespell --ignore-words-list="hart,inout,msdos,sur" --skip="./.build/*,./.git/*" diff --git a/.github/workflows/danger.yml b/.github/workflows/danger.yml new file mode 100644 index 0000000..3f63d38 --- /dev/null +++ b/.github/workflows/danger.yml @@ -0,0 +1,31 @@ +name: Danger + +on: + pull_request: + types: [synchronize, opened, reopened, labeled, unlabeled, edited] + +env: + LC_CTYPE: en_US.UTF-8 + LANG: en_US.UTF-8 + +jobs: + run-danger: + runs-on: ubuntu-latest + steps: + - name: ruby setup + uses: ruby/setup-ruby@v1 + with: + ruby-version: 3.1.4 + bundler-cache: true + - name: Checkout code + uses: actions/checkout@v2 + - name: Setup gems + run: | + gem install bundler + bundle install --clean --path vendor/bundle + - name: danger + env: + + DANGER_GITHUB_API_TOKEN: ${{ secrets.DANGER_GITHUB_API_TOKEN }} + + run: bundle exec danger --verbose \ No newline at end of file diff --git a/.swiftformat b/.swiftformat new file mode 100644 index 0000000..97a3629 --- /dev/null +++ b/.swiftformat @@ -0,0 +1,64 @@ +# Stream rules + +--swiftversion 5.3 + +# Use 'swiftformat --options' to list all of the possible options + +--header "\nbuilder-macro\nCopyright © {created.year} Space Code. All rights reserved.\n//" + +--enable blankLinesBetweenScopes +--enable blankLinesAtStartOfScope +--enable blankLinesAtEndOfScope +--enable blankLinesAroundMark +--enable anyObjectProtocol +--enable consecutiveBlankLines +--enable consecutiveSpaces +--enable duplicateImports +--enable elseOnSameLine +--enable emptyBraces +--enable initCoderUnavailable +--enable leadingDelimiters +--enable numberFormatting +--enable preferKeyPath +--enable redundantBreak +--enable redundantExtensionACL +--enable redundantFileprivate +--enable redundantGet +--enable redundantInit +--enable redundantLet +--enable redundantLetError +--enable redundantNilInit +--enable redundantObjc +--enable redundantParens +--enable redundantPattern +--enable redundantRawValues +--enable redundantReturn +--enable redundantSelf +--enable redundantVoidReturnType +--enable semicolons +--enable sortImports +--enable sortSwitchCases +--enable spaceAroundBraces +--enable spaceAroundBrackets +--enable spaceAroundComments +--enable spaceAroundGenerics +--enable spaceAroundOperators +--enable spaceInsideBraces +--enable spaceInsideBrackets +--enable spaceInsideComments +--enable spaceInsideGenerics +--enable spaceInsideParens +--enable strongOutlets +--enable strongifiedSelf +--enable todos +--enable trailingClosures +--enable unusedArguments +--enable void +--enable markTypes +--enable isEmpty + +# format options + +--wraparguments before-first +--wrapcollections before-first +--maxwidth 140 \ No newline at end of file diff --git a/.swiftlint.yml b/.swiftlint.yml new file mode 100644 index 0000000..89efd09 --- /dev/null +++ b/.swiftlint.yml @@ -0,0 +1,135 @@ +excluded: + - Tests + - Package.swift + - .build + +# Rules + +disabled_rules: + - trailing_comma + - todo + - opening_brace + +opt_in_rules: # some rules are only opt-in + - anyobject_protocol + - array_init + - attributes + - closure_body_length + - closure_end_indentation + - closure_spacing + - collection_alignment + - conditional_returns_on_newline + - contains_over_filter_count + - contains_over_filter_is_empty + - contains_over_first_not_nil + - contains_over_range_nil_comparison + - convenience_type + - discouraged_object_literal + - discouraged_optional_boolean + - empty_collection_literal + - empty_count + - empty_string + - empty_xctest_method + - enum_case_associated_values_count + - explicit_init + - fallthrough + - fatal_error_message + - file_name + - file_types_order + - first_where + - flatmap_over_map_reduce + - force_unwrapping + - ibinspectable_in_extension + - identical_operands + - implicit_return + - inert_defer + - joined_default_parameter + - last_where + - legacy_multiple + - legacy_random + - literal_expression_end_indentation + - lower_acl_than_parent + - multiline_arguments + - multiline_function_chains + - multiline_literal_brackets + - multiline_parameters + - multiline_parameters_brackets + - no_space_in_method_call + - operator_usage_whitespace + - optional_enum_case_matching + - orphaned_doc_comment + - overridden_super_call + - override_in_extension + - pattern_matching_keywords + - prefer_self_type_over_type_of_self + - prefer_zero_over_explicit_init + - prefixed_toplevel_constant + - private_action + - prohibited_super_call + - quick_discouraged_call + - quick_discouraged_focused_test + - quick_discouraged_pending_test + - reduce_into + - redundant_nil_coalescing + - redundant_objc_attribute + - redundant_type_annotation + - required_enum_case + - single_test_class + - sorted_first_last + - sorted_imports + - static_operator + - strict_fileprivate + - switch_case_on_newline + - toggle_bool + - unavailable_function + - unneeded_parentheses_in_closure_argument + - unowned_variable_capture + - untyped_error_in_catch + - vertical_parameter_alignment_on_call + - vertical_whitespace_closing_braces + - vertical_whitespace_opening_braces + - xct_specific_matcher + - yoda_condition + +force_cast: warning +force_try: warning + +identifier_name: + excluded: + - id + - URL + +analyzer_rules: + - unused_import + - unused_declaration + +line_length: + warning: 130 + error: 200 + +type_body_length: + warning: 300 + error: 400 + +file_length: + warning: 500 + error: 1200 + +function_body_length: + warning: 30 + error: 50 + +large_tuple: + error: 3 + +nesting: + type_level: + warning: 2 + statement_level: + warning: 10 + + +type_name: + max_length: + warning: 40 + error: 50 \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..2e9885a --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,2 @@ +# Change Log +All notable changes to this project will be documented in this file. \ No newline at end of file diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..56c1661 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,74 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of experience, +nationality, personal appearance, race, religion, or sexual identity and +orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or +advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting one of the project maintainers https://github.com/orgs/space-code/people. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at [http://contributor-covenant.org/version/1/4][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/4/ \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..1458dc6 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,61 @@ +# Contributing Guidelines + +This document contains information and guidelines about contributing to this project. +Please read it before you start participating. + +**Topics** + +* [Reporting Issues](#reporting-issues) +* [Submitting Pull Requests](#submitting-pull-requests) +* [Developers Certificate of Origin](#developers-certificate-of-origin) +* [Code of Conduct](#code-of-conduct) + +## Reporting Issues + +A great way to contribute to the project is to send a detailed issue when you encounter a problem. We always appreciate a well-written, thorough bug report. + +Check that the project issues database doesn't already include that problem or suggestion before submitting an issue. If you find a match, feel free to vote for the issue by adding a reaction. Doing this helps prioritize the most common problems and requests. + +When reporting issues, please fill out our issue template. The information the template asks for will help us review and fix your issue faster. + +## Submitting Pull Requests + +You can contribute by fixing bugs or adding new features. For larger code changes, we recommend first discussing your ideas on our [GitHub Discussions](https://github.com/space-code/builder-macro/discussions). When submitting a pull request, please add relevant tests and ensure your changes don't break any existing tests. + +## Developer's Certificate of Origin 1.1 + +By making a contribution to this project, I certify that: + +- (a) The contribution was created in whole or in part by me and I + have the right to submit it under the open source license + indicated in the file; or + +- (b) The contribution is based upon previous work that, to the best + of my knowledge, is covered under an appropriate open source + license and I have the right under that license to submit that + work with modifications, whether created in whole or in part + by me, under the same open source license (unless I am + permitted to submit under a different license), as indicated + in the file; or + +- (c) The contribution was provided directly to me by some other + person who certified (a), (b) or (c) and I have not modified + it. + +- (d) I understand and agree that this project and the contribution + are public and that a record of the contribution (including all + personal information I submit with it, including my sign-off) is + maintained indefinitely and may be redistributed consistent with + this project or the open source license(s) involved. + +## Code of Conduct + +The Code of Conduct governs how we behave in public or in private +whenever the project will be judged by our actions. +We expect it to be honored by everyone who contributes to this project. + +See [CODE_OF_CONDUCT.md](https://github.com/space-code/builder-macro/blob/master/CODE_OF_CONDUCT.md) for details. + +--- + +*Some of the ideas and wording for the statements above were based on work by the [Docker](https://github.com/docker/docker/blob/master/CONTRIBUTING.md) and [Linux](https://elinux.org/Developer_Certificate_Of_Origin) communities. We commend them for their efforts to facilitate collaboration in their projects.* \ No newline at end of file diff --git a/Dangerfile b/Dangerfile new file mode 100644 index 0000000..b266982 --- /dev/null +++ b/Dangerfile @@ -0,0 +1 @@ +danger.import_dangerfile(github: 'space-code/dangerfile') \ No newline at end of file diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..20dff64 --- /dev/null +++ b/Gemfile @@ -0,0 +1,3 @@ +source "https://rubygems.org" + +gem 'danger' \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3edc6d6 --- /dev/null +++ b/Makefile @@ -0,0 +1,19 @@ +all: bootstrap + +bootstrap: hook + mint bootstrap + +hook: + ln -sf .git/hooks/pre-commit ../../hooks/pre-commit + chmod +x .git/hooks/pre-commit + +mint: + mint bootstrap + +lint: + mint run swiftlint + +fmt: + mint run swiftformat Sources Tests + +.PHONY: all bootstrap hook mint lint fmt \ No newline at end of file diff --git a/Mintfile b/Mintfile new file mode 100644 index 0000000..e2cdefa --- /dev/null +++ b/Mintfile @@ -0,0 +1,2 @@ +nicklockwood/SwiftFormat@0.52.7 +realm/SwiftLint@0.53.0 \ No newline at end of file diff --git a/Package.swift b/Package.swift new file mode 100644 index 0000000..5d91fbf --- /dev/null +++ b/Package.swift @@ -0,0 +1,23 @@ +// swift-tools-version: 5.10 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "builder-macro", + products: [ + // Products define the executables and libraries a package produces, making them visible to other packages. + .library( + name: "builder-macro", + targets: ["builder-macro"]), + ], + targets: [ + // Targets are the basic building blocks of a package, defining a module or a test suite. + // Targets can depend on other targets in this package and products from dependencies. + .target( + name: "builder-macro"), + .testTarget( + name: "builder-macroTests", + dependencies: ["builder-macro"]), + ] +) diff --git a/README.md b/README.md index 2d3e32f..093ee73 100644 --- a/README.md +++ b/README.md @@ -1 +1,65 @@ -# builder-macro \ No newline at end of file +

builder-macro

+ +

+License +Swift Compatibility +Platform Compatibility +CI + +Number of GitHub contributors +Number of GitHub issues that are open +Number of GitHub closed issues +Number of GitHub stars +Number of GitHub pull requests that are open + +GitHub release; latest by date + +

+ +## Description +`builder-macro` description. + +- [Usage](#usage) +- [Requirements](#requirements) +- [Installation](#installation) +- [Communication](#communication) +- [Contributing](#contributing) +- [Author](#author) +- [License](#license) + +## Usage + +## Requirements + +## Installation +### Swift Package Manager + +The [Swift Package Manager](https://swift.org/package-manager/) is a tool for automating the distribution of Swift code and is integrated into the `swift` compiler. It is in early development, but `builder-macro` does support its use on supported platforms. + +Once you have your Swift package set up, adding `builder-macro` as a dependency is as easy as adding it to the `dependencies` value of your `Package.swift`. + +```swift +dependencies: [ + .package(url: "https://github.com/space-code/builder-macro.git", .upToNextMajor(from: "1.0.0")) +] +``` + +## Communication +- If you **found a bug**, open an issue. +- If you **have a feature request**, open an issue. +- If you **want to contribute**, submit a pull request. + +## Contributing +Bootstrapping development environment + +``` +make bootstrap +``` + +Please feel free to help out with this project! If you see something that could be made better or want a new feature, open up an issue or send a Pull Request! + +## Author +Nikita Vasilev, nv3212@gmail.com + +## License +builder-macro is available under the MIT license. See the LICENSE file for more info. \ No newline at end of file diff --git a/SEQURITY.md b/SEQURITY.md new file mode 100644 index 0000000..20dffca --- /dev/null +++ b/SEQURITY.md @@ -0,0 +1,7 @@ +# Reporting Security Vulnerabilities + +This software is built with security and data privacy in mind to ensure your data is safe. We are grateful for security researchers and users reporting a vulnerability to us, first. To ensure that your request is handled in a timely manner and non-disclosure of vulnerabilities can be assured, please follow the below guideline. + +**Please do not report security vulnerabilities directly on GitHub. GitHub Issues can be publicly seen and therefore would result in a direct disclosure.** + +* Please address questions about data privacy, security concepts, and other media requests to the nv3212@gmail.com mailbox. \ No newline at end of file diff --git a/Sources/builder-macro/Classes/builder-macro.swift b/Sources/builder-macro/Classes/builder-macro.swift new file mode 100644 index 0000000..ab67aa3 --- /dev/null +++ b/Sources/builder-macro/Classes/builder-macro.swift @@ -0,0 +1,6 @@ +// +// builder-macro +// Copyright © 2024 Space Code. All rights reserved. +// + +final class builder - macro {} diff --git a/Tests/builder-macroTests/builder-macroTests.swift b/Tests/builder-macroTests/builder-macroTests.swift new file mode 100644 index 0000000..ebcc391 --- /dev/null +++ b/Tests/builder-macroTests/builder-macroTests.swift @@ -0,0 +1,8 @@ +// +// builder-macro +// Copyright © 2024 Space Code. All rights reserved. +// + +import XCTest + +final class builder - macroTests: XCTestCase {} diff --git a/hooks/pre-commit b/hooks/pre-commit new file mode 100644 index 0000000..956fdcb --- /dev/null +++ b/hooks/pre-commit @@ -0,0 +1,38 @@ +#!/bin/bash +git diff --diff-filter=d --staged --name-only | grep -e '\.swift$' | while read line; do + if [[ $line == *"/Generated"* ]]; then + echo "IGNORING GENERATED FILE: " "$line"; + else + mint run swiftformat swiftformat "${line}"; + git add "$line"; + fi +done + +LINT=$(which mint) +if [[ -e "${LINT}" ]]; then + # Export files in SCRIPT_INPUT_FILE_$count to lint against later + count=0 + while IFS= read -r file_path; do + export SCRIPT_INPUT_FILE_$count="$file_path" + count=$((count + 1)) + done < <(git diff --name-only --cached --diff-filter=d | grep ".swift$") + export SCRIPT_INPUT_FILE_COUNT=$count + + if [ "$count" -eq 0 ]; then + echo "No files to lint!" + exit 0 + fi + + echo "Found $count lintable files! Linting now.." + mint run swiftlint --use-script-input-files --strict --config .swiftlint.yml + RESULT=$? # swiftline exit value is number of errors + + if [ $RESULT -eq 0 ]; then + echo "🎉 Well done. No violation." + fi + exit $RESULT +else + echo "⚠️ WARNING: SwiftLint not found" + echo "⚠️ You might want to edit .git/hooks/pre-commit to locate your swiftlint" + exit 0 +fi \ No newline at end of file From 4a7d87135f39b1983f7ed6ca355f079588857901 Mon Sep 17 00:00:00 2001 From: Nikita Vasilev Date: Sun, 29 Sep 2024 19:43:39 +0700 Subject: [PATCH 02/11] Implement the `builder-macro` package --- .../contents.xcworkspacedata | 7 ++ Makefile | 4 +- Package.resolved | 14 +++ Package.swift | 45 ++++++-- .../BuilderMacro/Classes/BuilderMacro.swift | 10 ++ Sources/BuilderMacroClient/main.swift | 14 +++ Sources/BuilderMacroMacros/BuilderMacro.swift | 100 +++++++++++++++++ .../BuilderMacroPlugin.swift | 18 +++ .../Model/TypedVariable.swift | 37 +++++++ .../builder-macro/Classes/builder-macro.swift | 6 - .../BuilderMacroTests/BuilderMacroTests.swift | 103 ++++++++++++++++++ .../builder-macroTests.swift | 8 -- hooks/pre-commit | 0 13 files changed, 341 insertions(+), 25 deletions(-) create mode 100644 .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata create mode 100644 Package.resolved create mode 100644 Sources/BuilderMacro/Classes/BuilderMacro.swift create mode 100644 Sources/BuilderMacroClient/main.swift create mode 100644 Sources/BuilderMacroMacros/BuilderMacro.swift create mode 100644 Sources/BuilderMacroMacros/BuilderMacroPlugin.swift create mode 100644 Sources/BuilderMacroMacros/Model/TypedVariable.swift delete mode 100644 Sources/builder-macro/Classes/builder-macro.swift create mode 100644 Tests/BuilderMacroTests/BuilderMacroTests.swift delete mode 100644 Tests/builder-macroTests/builder-macroTests.swift mode change 100644 => 100755 hooks/pre-commit diff --git a/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata b/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Makefile b/Makefile index 3edc6d6..de1897f 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ bootstrap: hook mint bootstrap hook: - ln -sf .git/hooks/pre-commit ../../hooks/pre-commit + ln -sf ../../hooks/pre-commit .git/hooks/pre-commit chmod +x .git/hooks/pre-commit mint: @@ -16,4 +16,4 @@ lint: fmt: mint run swiftformat Sources Tests -.PHONY: all bootstrap hook mint lint fmt \ No newline at end of file +.PHONY: all bootstrap hook mint lint fmt diff --git a/Package.resolved b/Package.resolved new file mode 100644 index 0000000..1809cd0 --- /dev/null +++ b/Package.resolved @@ -0,0 +1,14 @@ +{ + "pins" : [ + { + "identity" : "swift-syntax", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-syntax.git", + "state" : { + "revision" : "2bc86522d115234d1f588efe2bcb4ce4be8f8b82", + "version" : "510.0.3" + } + } + ], + "version" : 2 +} diff --git a/Package.swift b/Package.swift index 5d91fbf..ce36c63 100644 --- a/Package.swift +++ b/Package.swift @@ -1,23 +1,50 @@ -// swift-tools-version: 5.10 +// swift-tools-version: 5.9 // The swift-tools-version declares the minimum version of Swift required to build this package. +import CompilerPluginSupport import PackageDescription let package = Package( - name: "builder-macro", + name: "BuilderMacro", + platforms: [.macOS(.v10_15), .iOS(.v13), .tvOS(.v13), .watchOS(.v6), .macCatalyst(.v13)], products: [ - // Products define the executables and libraries a package produces, making them visible to other packages. .library( - name: "builder-macro", - targets: ["builder-macro"]), + name: "BuilderMacro", + targets: ["BuilderMacro"] + ), + .executable( + name: "BuilderMacroClient", + targets: ["BuilderMacroClient"] + ), + ], + dependencies: [ + .package(url: "https://github.com/apple/swift-syntax.git", from: "510.0.0"), ], targets: [ // Targets are the basic building blocks of a package, defining a module or a test suite. // Targets can depend on other targets in this package and products from dependencies. - .target( - name: "builder-macro"), + // Macro implementation that performs the source transformation of a macro. + .macro( + name: "BuilderMacroMacros", + dependencies: [ + .product(name: "SwiftSyntaxMacros", package: "swift-syntax"), + .product(name: "SwiftCompilerPlugin", package: "swift-syntax"), + ] + ), + + // Library that exposes a macro as part of its API, which is used in client programs. + .target(name: "BuilderMacro", dependencies: ["BuilderMacroMacros"]), + + // A client of the library, which is able to use the macro in its own code. + .executableTarget(name: "BuilderMacroClient", dependencies: ["BuilderMacro"]), + + // A test target used to develop the macro implementation. .testTarget( - name: "builder-macroTests", - dependencies: ["builder-macro"]), + name: "BuilderMacroTests", + dependencies: [ + "BuilderMacroMacros", + .product(name: "SwiftSyntaxMacrosTestSupport", package: "swift-syntax"), + ] + ), ] ) diff --git a/Sources/BuilderMacro/Classes/BuilderMacro.swift b/Sources/BuilderMacro/Classes/BuilderMacro.swift new file mode 100644 index 0000000..c46f14d --- /dev/null +++ b/Sources/BuilderMacro/Classes/BuilderMacro.swift @@ -0,0 +1,10 @@ +// +// builder-macro +// Copyright © 2024 Space Code. All rights reserved. +// + +@attached(member, names: arbitrary) +public macro Builder() = #externalMacro( + module: "BuilderMacroMacros", + type: "BuilderMacro" +) diff --git a/Sources/BuilderMacroClient/main.swift b/Sources/BuilderMacroClient/main.swift new file mode 100644 index 0000000..a30d83d --- /dev/null +++ b/Sources/BuilderMacroClient/main.swift @@ -0,0 +1,14 @@ +// +// builder-macro +// Copyright © 2024 Space Code. All rights reserved. +// + +import BuilderMacro +import Foundation + +@Builder +struct Person { + let id: UUID + let name: String + let bday: Date +} diff --git a/Sources/BuilderMacroMacros/BuilderMacro.swift b/Sources/BuilderMacroMacros/BuilderMacro.swift new file mode 100644 index 0000000..71bcce7 --- /dev/null +++ b/Sources/BuilderMacroMacros/BuilderMacro.swift @@ -0,0 +1,100 @@ +// +// builder-macro +// Copyright © 2024 Space Code. All rights reserved. +// + +import SwiftCompilerPlugin +import SwiftSyntax +import SwiftSyntaxBuilder +import SwiftSyntaxMacros + +// MARK: - BuilderMacro + +public struct BuilderMacro: MemberMacro { + enum Error: Swift.Error { + case wrongDeclarationSyntax + } + + // swiftlint:disable:next function_body_length + public static func expansion( + of _: AttributeSyntax, + providingMembersOf declaration: some DeclGroupSyntax, + in _: some MacroExpansionContext + ) throws -> [DeclSyntax] { + guard let structDecl = declaration.as(StructDeclSyntax.self) else { + throw Error.wrongDeclarationSyntax + } + + let name = structDecl.name.text + let builderName = "\(name)Builder" + + var builderProperties: [String] = [] + var builderMethods: [String] = [] + var requiredProperties: [TypedVariable] = [] + + for member in structDecl.memberBlock.members { + if let variableDecl = member.decl.as(VariableDeclSyntax.self), + let firstBuilding = variableDecl.bindings.first, + let pattern = firstBuilding.pattern.as(IdentifierPatternSyntax.self), + let type = firstBuilding.typeAnnotation?.type + { + let propertyName = pattern.identifier.text + let propertyType = type.description.trimmingCharacters(in: .whitespaces) + + let builderProperty = """ + var \(propertyName): \(propertyType)? + """ + + builderProperties.append(builderProperty) + requiredProperties.append(TypedVariable(name: propertyName, type: propertyType)) + + let builderMethod = """ + func \(propertyName)(_ \(propertyName): \(propertyType)) -> Self { + var copy = self + copy.\(propertyName) = \(propertyName) + return copy + } + """ + + builderMethods.append(builderMethod) + } + } + + let buildMethod = """ + enum BuildError: Swift.Error { + case missingRequiredField(description: String) + } + + func build() throws -> \(name) { + \(requiredProperties.guardAssignment) + + return \(name)( + \(requiredProperties.initAssignments) + ) + } + """ + + let builderStruct = """ + struct \(builderName) { + \(builderProperties.joined(separator: "\n")) + + \(builderMethods.joined(separator: "\n\n")) + + \(buildMethod) + } + """ + + return [DeclSyntax(stringLiteral: builderStruct)] + } +} + +// MARK: - BuilderMacro.Error + CustomStringConvertible + +extension BuilderMacro.Error: CustomStringConvertible { + var description: String { + switch self { + case .wrongDeclarationSyntax: + return "Builder Macro supports only structs" + } + } +} diff --git a/Sources/BuilderMacroMacros/BuilderMacroPlugin.swift b/Sources/BuilderMacroMacros/BuilderMacroPlugin.swift new file mode 100644 index 0000000..3a01144 --- /dev/null +++ b/Sources/BuilderMacroMacros/BuilderMacroPlugin.swift @@ -0,0 +1,18 @@ +// +// builder-macro +// Copyright © 2024 Space Code. All rights reserved. +// + +import SwiftCompilerPlugin +import SwiftSyntax +import SwiftSyntaxBuilder +import SwiftSyntaxMacros + +// MARK: - BuilderMacroPlugin + +@main +struct BuilderMacroPlugin: CompilerPlugin { + let providingMacros: [Macro.Type] = [ + BuilderMacro.self, + ] +} diff --git a/Sources/BuilderMacroMacros/Model/TypedVariable.swift b/Sources/BuilderMacroMacros/Model/TypedVariable.swift new file mode 100644 index 0000000..85c1fc5 --- /dev/null +++ b/Sources/BuilderMacroMacros/Model/TypedVariable.swift @@ -0,0 +1,37 @@ +// +// builder-macro +// Copyright © 2024 Space Code. All rights reserved. +// + +import Foundation + +// MARK: - TypedVariable + +struct TypedVariable { + let name: String + let type: String + + var initAssignment: String { + "\(name): \(name)" + } + + var guardAssignment: String { + """ + guard let \(name) = \(name) else { + throw BuildError.missingRequiredField(description: \"\(name)\") + } + """ + } +} + +extension [TypedVariable] { + var initAssignments: String { + map(\.initAssignment) + .joined(separator: ",\n") + } + + var guardAssignment: String { + map(\.guardAssignment) + .joined(separator: "\n\n") + } +} diff --git a/Sources/builder-macro/Classes/builder-macro.swift b/Sources/builder-macro/Classes/builder-macro.swift deleted file mode 100644 index ab67aa3..0000000 --- a/Sources/builder-macro/Classes/builder-macro.swift +++ /dev/null @@ -1,6 +0,0 @@ -// -// builder-macro -// Copyright © 2024 Space Code. All rights reserved. -// - -final class builder - macro {} diff --git a/Tests/BuilderMacroTests/BuilderMacroTests.swift b/Tests/BuilderMacroTests/BuilderMacroTests.swift new file mode 100644 index 0000000..e8b458f --- /dev/null +++ b/Tests/BuilderMacroTests/BuilderMacroTests.swift @@ -0,0 +1,103 @@ +// +// builder-macro +// Copyright © 2024 Space Code. All rights reserved. +// + +import SwiftSyntax +import SwiftSyntaxBuilder +import SwiftSyntaxMacros +import SwiftSyntaxMacrosTestSupport +import XCTest + +#if canImport(BuilderMacroMacros) + import BuilderMacroMacros + + let testMacros: [String: Macro.Type] = [ + "Builder": BuilderMacro.self, + ] +#endif + +// MARK: - BuilderMacroTests + +final class BuilderMacroTests: XCTestCase { + func testBuilderMacro() throws { + #if canImport(BuilderMacroMacros) + assertMacroExpansion(""" + @Builder + struct Person { + let firstName: String + let lastName: String + let birthday: Date + let city: String + } + """, expandedSource: """ + struct Person { + let firstName: String + let lastName: String + let birthday: Date + let city: String + + struct PersonBuilder { + var firstName: String? + var lastName: String? + var birthday: Date? + var city: String? + + func firstName(_ firstName: String) -> Self { + var copy = self + copy.firstName = firstName + return copy + } + + func lastName(_ lastName: String) -> Self { + var copy = self + copy.lastName = lastName + return copy + } + + func birthday(_ birthday: Date) -> Self { + var copy = self + copy.birthday = birthday + return copy + } + + func city(_ city: String) -> Self { + var copy = self + copy.city = city + return copy + } + + enum BuildError: Swift.Error { + case missingRequiredField(description: String) + } + + func build() throws -> Person { + guard let firstName = firstName else { + throw BuildError.missingRequiredField(description: "firstName") + } + + guard let lastName = lastName else { + throw BuildError.missingRequiredField(description: "lastName") + } + + guard let birthday = birthday else { + throw BuildError.missingRequiredField(description: "birthday") + } + + guard let city = city else { + throw BuildError.missingRequiredField(description: "city") + } + + return Person( + firstName: firstName, + lastName: lastName, + birthday: birthday, + city: city + ) + } + } + } + """, macros: testMacros) + #endif + } +} diff --git a/Tests/builder-macroTests/builder-macroTests.swift b/Tests/builder-macroTests/builder-macroTests.swift deleted file mode 100644 index ebcc391..0000000 --- a/Tests/builder-macroTests/builder-macroTests.swift +++ /dev/null @@ -1,8 +0,0 @@ -// -// builder-macro -// Copyright © 2024 Space Code. All rights reserved. -// - -import XCTest - -final class builder - macroTests: XCTestCase {} diff --git a/hooks/pre-commit b/hooks/pre-commit old mode 100644 new mode 100755 From 246c25639b58cf9e958a8556c2cded03bef124ad Mon Sep 17 00:00:00 2001 From: Nikita Vasilev Date: Sun, 29 Sep 2024 20:01:26 +0700 Subject: [PATCH 03/11] Update `ci.yml` --- .github/workflows/ci.yml | 170 +++++++----------- .../xcschemes/BuilderMacro-Package.xcscheme | 102 +++++++++++ .../xcschemes/BuilderMacro.xcscheme | 67 +++++++ .../xcschemes/BuilderMacroClient.xcscheme | 90 ++++++++++ 4 files changed, 320 insertions(+), 109 deletions(-) create mode 100644 .swiftpm/xcode/xcshareddata/xcschemes/BuilderMacro-Package.xcscheme create mode 100644 .swiftpm/xcode/xcshareddata/xcschemes/BuilderMacro.xcscheme create mode 100644 .swiftpm/xcode/xcshareddata/xcschemes/BuilderMacroClient.xcscheme diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1d9be20..5b4650d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,6 @@ on: - "Package.swift" - "Source/**" - "Tests/**" - jobs: SwiftLint: runs-on: ubuntu-latest @@ -23,221 +22,174 @@ jobs: with: args: --strict env: - DIFF_BASE: ${{ github.base_ref }} - - - macOS: - name: ${{ matrix.name }} runs-on: ${{ matrix.runsOn }} - env: - DEVELOPER_DIR: "/Applications/${{ matrix.xcode }}.app/Contents/Developer" - timeout-minutes: 20 strategy: fail-fast: false matrix: include: + - xcode: "Xcode_16.0" + runsOn: macos-14 + name: "macOS 14, Xcode 16.0, Swift 6.0" + - xcode: "Xcode_15.4" + runsOn: macos-14 + name: "macOS 14, Xcode 15.4, Swift 5.10" + - xcode: "Xcode_15.2" + runsOn: macos-13 + name: "macOS 14, Xcode 15.2, Swift 5.9.2" + - xcode: "Xcode_15.1" + runsOn: macOS-13 + name: "macOS 14, Xcode 15.1, Swift 5.9.1" - xcode: "Xcode_15.0" runsOn: macos-13 name: "macOS 13, Xcode 15.0, Swift 5.9.0" - - xcode: "Xcode_14.3.1" - runsOn: macos-13 - name: "macOS 13, Xcode 14.3.1, Swift 5.8.0" - - xcode: "Xcode_14.2" - runsOn: macOS-12 - name: "macOS 12, Xcode 14.2, Swift 5.7.2" - - xcode: "Xcode_14.1" - runsOn: macOS-12 - name: "macOS 12, Xcode 14.1, Swift 5.7.1" steps: - uses: actions/checkout@v3 - - name: ${{ matrix.name }} - run: xcodebuild test -scheme "{{ cookiecutter.name }}" -destination "platform=macOS" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 - + run: xcodebuild test -scheme "BuilderMacroClient" -destination "platform=macOS" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 - name: Upload coverage reports to Codecov uses: codecov/codecov-action@v3.1.0 with: - token: ${{ secrets.CODECOV_TOKEN }} - xcode: true - xcode_archive_path: test_output/${{ matrix.name }}.xcresult - - uses: actions/upload-artifact@v4 with: - name: ${{ matrix.name }} - path: test_output - - - iOS: - name: ${{ matrix.name }} runs-on: ${{ matrix.runsOn }} - env: - DEVELOPER_DIR: "/Applications/${{ matrix.xcode }}.app/Contents/Developer" - timeout-minutes: 20 strategy: fail-fast: false matrix: include: - - destination: "OS=17.0.1,name=iPhone 14 Pro" - name: "iOS 17.0.1" - xcode: "Xcode_15.0" - runsOn: macos-13 - - destination: "OS=16.4,name=iPhone 14 Pro" - name: "iOS 16.4" - xcode: "Xcode_14.3.1" - runsOn: macos-13 + - destination: "OS=17.5,name=iPhone 15 Pro" + name: "iOS 17.5" + xcode: "Xcode_15.4" + runsOn: macOS-14 + - destination: "OS=17.2,name=iPhone 15 Pro" + name: "iOS 17.2" + xcode: "Xcode_15.2" + runsOn: macOS-14 + - destination: "OS=17.0,name=iPhone 15 Pro" + name: "iOS 17.0" + xcode: "Xcode_15.0.1" + runsOn: macOS-14 steps: - uses: actions/checkout@v3 - - name: ${{ matrix.name }} - run: xcodebuild test -scheme "{{ cookiecutter.name }}" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 - + run: xcodebuild test -scheme "BuilderMacroClient" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 - uses: actions/upload-artifact@v4 with: - name: ${{ matrix.name }} path: test_output - - - - tvOS: - name: ${{ matrix.name }} runs-on: ${{ matrix.runsOn }} - env: - DEVELOPER_DIR: "/Applications/${{ matrix.xcode }}.app/Contents/Developer" - timeout-minutes: 20 strategy: fail-fast: false matrix: include: + - destination: "OS=17.5,name=Apple TV" + name: "tvOS 17.5" + xcode: "Xcode_15.4" + runsOn: macOS-14 + - destination: "OS=17.2,name=Apple TV" + name: "tvOS 17.2" + xcode: "Xcode_15.2" + runsOn: macOS-14 - destination: "OS=17.0,name=Apple TV" name: "tvOS 17.0" - xcode: "Xcode_15.0" - runsOn: macos-13 - - destination: "OS=16.4,name=Apple TV" - name: "tvOS 16.4" - xcode: "Xcode_14.3.1" - runsOn: macos-13 + xcode: "Xcode_15.0.1" + runsOn: macOS-14 steps: - uses: actions/checkout@v3 - - name: ${{ matrix.name }} - run: xcodebuild test -scheme "{{ cookiecutter.name }}" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 - + run: xcodebuild test -scheme "BuilderMacroClient" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 - name: Upload coverage reports to Codecov uses: codecov/codecov-action@v3.1.0 with: - token: ${{ secrets.CODECOV_TOKEN }} - xcode: true - xcode_archive_path: test_output/${{ matrix.name }}.xcresult - - uses: actions/upload-artifact@v4 with: - name: ${{ matrix.name }} - path: test_output - - - watchOS: - name: ${{ matrix.name }} runs-on: ${{ matrix.runsOn }} - env: - DEVELOPER_DIR: "/Applications/${{ matrix.xcode }}.app/Contents/Developer" - timeout-minutes: 20 strategy: fail-fast: false matrix: include: + - destination: "OS=10.5,name=Apple Watch Series 9 (45mm)" + name: "watchOS 10.5" + xcode: "Xcode_15.4" + runsOn: macOS-14 + - destination: "OS=10.2,name=Apple Watch Series 9 (45mm)" + name: "watchOS 10.2" + xcode: "Xcode_15.2" + runsOn: macOS-14 - destination: "OS=10.0,name=Apple Watch Series 9 (45mm)" name: "watchOS 10.0" - xcode: "Xcode_15.0" - runsOn: macos-13 - - destination: "OS=9.4,name=Apple Watch Series 8 (45mm)" - name: "watchOS 9.4" - xcode: "Xcode_14.3.1" - runsOn: macos-13 - - destination: "OS=8.5,name=Apple Watch Series 7 (45mm)" - name: "watchOS 8.5" - xcode: "Xcode_14.3.1" - runsOn: macos-13 + xcode: "Xcode_15.0.1" + runsOn: macOS-14 steps: - uses: actions/checkout@v3 - - name: ${{ matrix.name }} - run: xcodebuild test -scheme "{{ cookiecutter.name }}" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 - + run: xcodebuild test -scheme "BuilderMacroClient" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 - name: Upload coverage reports to Codecov uses: codecov/codecov-action@v3.1.0 with: - token: ${{ secrets.CODECOV_TOKEN }} - xcode: true - xcode_archive_path: test_output/${{ matrix.name }}.xcresult - - uses: actions/upload-artifact@v4 with: - name: ${{ matrix.name }} - path: test_output - - spm: - name: ${{ matrix.name }} runs-on: ${{ matrix.runsOn }} - env: - DEVELOPER_DIR: "/Applications/${{ matrix.xcode }}.app/Contents/Developer" - timeout-minutes: 20 strategy: fail-fast: false matrix: include: - - name: "Xcode 15" - xcode: "Xcode_15.0" - runsOn: macos-13 - - name: "Xcode 14" - xcode: "Xcode_14.3.1" - runsOn: macos-13 + - xcode: "Xcode_15.4" + runsOn: macOS-14 + name: "macOS 14, SPM 5.10 Test" + - xcode: "Xcode_15.2" + runsOn: macOS-14 + name: "macOS 14, SPM 5.9.2 Test" + - xcode: "Xcode_15.1" + runsOn: macOS-14 + name: "macOS 14, SPM 5.9.1 Test" + - xcode: "Xcode_15.0.1" + runsOn: macOS-14 + name: "macOS 14, SPM 5.9.0 Test" steps: - uses: actions/checkout@v3 - - name: ${{ matrix.name }} - run: swift build -c release --target "{{ cookiecutter.name }}" + run: swift build -c release --target "BuilderMacro" merge-test-reports: needs: [iOS, macOS, watchOS, tvOS] diff --git a/.swiftpm/xcode/xcshareddata/xcschemes/BuilderMacro-Package.xcscheme b/.swiftpm/xcode/xcshareddata/xcschemes/BuilderMacro-Package.xcscheme new file mode 100644 index 0000000..d370188 --- /dev/null +++ b/.swiftpm/xcode/xcshareddata/xcschemes/BuilderMacro-Package.xcscheme @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.swiftpm/xcode/xcshareddata/xcschemes/BuilderMacro.xcscheme b/.swiftpm/xcode/xcshareddata/xcschemes/BuilderMacro.xcscheme new file mode 100644 index 0000000..b1b7327 --- /dev/null +++ b/.swiftpm/xcode/xcshareddata/xcschemes/BuilderMacro.xcscheme @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.swiftpm/xcode/xcshareddata/xcschemes/BuilderMacroClient.xcscheme b/.swiftpm/xcode/xcshareddata/xcschemes/BuilderMacroClient.xcscheme new file mode 100644 index 0000000..fc65e63 --- /dev/null +++ b/.swiftpm/xcode/xcshareddata/xcschemes/BuilderMacroClient.xcscheme @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 956e9b18b526665d8b71ceac70a0a8d15108fb10 Mon Sep 17 00:00:00 2001 From: Nikita Vasilev Date: Mon, 30 Sep 2024 12:43:31 +0700 Subject: [PATCH 04/11] Bump the `upload-artifact` version from `3.1.0` to `4.5.0` --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5b4650d..6e8bca5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -53,7 +53,7 @@ jobs: - name: ${{ matrix.name }} run: xcodebuild test -scheme "BuilderMacroClient" -destination "platform=macOS" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@v3.1.0 + uses: codecov/codecov-action@v4.5.0 with: token: ${{ secrets.CODECOV_TOKEN }} xcode: true @@ -119,7 +119,7 @@ jobs: - name: ${{ matrix.name }} run: xcodebuild test -scheme "BuilderMacroClient" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@v3.1.0 + uses: codecov/codecov-action@v4.5.0 with: token: ${{ secrets.CODECOV_TOKEN }} xcode: true @@ -155,7 +155,7 @@ jobs: - name: ${{ matrix.name }} run: xcodebuild test -scheme "BuilderMacroClient" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@v3.1.0 + uses: codecov/codecov-action@v4.5.0 with: token: ${{ secrets.CODECOV_TOKEN }} xcode: true From 2976ba7ee2a3dfb0ee567e5e282459ae2a42eb32 Mon Sep 17 00:00:00 2001 From: Nikita Vasilev Date: Mon, 30 Sep 2024 13:01:01 +0700 Subject: [PATCH 05/11] Update `ci.yml` --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6e8bca5..97f544e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -212,10 +212,10 @@ jobs: env: DEVELOPER_DIR: /Applications/Xcode_14.1.app/Contents/Developer steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Discover typos run: | export PATH="$PATH:/Library/Frameworks/Python.framework/Versions/3.11/bin" python3 -m pip install --upgrade pip python3 -m pip install codespell - codespell --ignore-words-list="hart,inout,msdos,sur" --skip="./.build/*,./.git/*" + codespell --ignore-words-list="hart,inout,msdos,sur,commend" --skip="./.build/*,./.git/*" From 33672a9a79311fdc373b92e0e19d711615f5e4d2 Mon Sep 17 00:00:00 2001 From: Nikita Vasilev Date: Mon, 21 Oct 2024 13:01:49 +0900 Subject: [PATCH 06/11] Implement `BuilderMacro` --- Sources/BuilderMacroMacros/BuilderMacro.swift | 64 +----- .../Core/AttributeExtractor.swift | 25 +++ .../BuilderMacroMacros/Core/Generator.swift | 147 ++++++++++++++ .../Model/TypedVariable.swift | 11 +- .../BuilderMacroTests/BuilderMacroTests.swift | 192 +++++++++++++++++- 5 files changed, 372 insertions(+), 67 deletions(-) create mode 100644 Sources/BuilderMacroMacros/Core/AttributeExtractor.swift create mode 100644 Sources/BuilderMacroMacros/Core/Generator.swift diff --git a/Sources/BuilderMacroMacros/BuilderMacro.swift b/Sources/BuilderMacroMacros/BuilderMacro.swift index 71bcce7..04f33e4 100644 --- a/Sources/BuilderMacroMacros/BuilderMacro.swift +++ b/Sources/BuilderMacroMacros/BuilderMacro.swift @@ -15,9 +15,8 @@ public struct BuilderMacro: MemberMacro { case wrongDeclarationSyntax } - // swiftlint:disable:next function_body_length public static func expansion( - of _: AttributeSyntax, + of attribute: AttributeSyntax, providingMembersOf declaration: some DeclGroupSyntax, in _: some MacroExpansionContext ) throws -> [DeclSyntax] { @@ -25,66 +24,7 @@ public struct BuilderMacro: MemberMacro { throw Error.wrongDeclarationSyntax } - let name = structDecl.name.text - let builderName = "\(name)Builder" - - var builderProperties: [String] = [] - var builderMethods: [String] = [] - var requiredProperties: [TypedVariable] = [] - - for member in structDecl.memberBlock.members { - if let variableDecl = member.decl.as(VariableDeclSyntax.self), - let firstBuilding = variableDecl.bindings.first, - let pattern = firstBuilding.pattern.as(IdentifierPatternSyntax.self), - let type = firstBuilding.typeAnnotation?.type - { - let propertyName = pattern.identifier.text - let propertyType = type.description.trimmingCharacters(in: .whitespaces) - - let builderProperty = """ - var \(propertyName): \(propertyType)? - """ - - builderProperties.append(builderProperty) - requiredProperties.append(TypedVariable(name: propertyName, type: propertyType)) - - let builderMethod = """ - func \(propertyName)(_ \(propertyName): \(propertyType)) -> Self { - var copy = self - copy.\(propertyName) = \(propertyName) - return copy - } - """ - - builderMethods.append(builderMethod) - } - } - - let buildMethod = """ - enum BuildError: Swift.Error { - case missingRequiredField(description: String) - } - - func build() throws -> \(name) { - \(requiredProperties.guardAssignment) - - return \(name)( - \(requiredProperties.initAssignments) - ) - } - """ - - let builderStruct = """ - struct \(builderName) { - \(builderProperties.joined(separator: "\n")) - - \(builderMethods.joined(separator: "\n\n")) - - \(buildMethod) - } - """ - - return [DeclSyntax(stringLiteral: builderStruct)] + return try Generator().generate(structDecl, attribute: attribute) } } diff --git a/Sources/BuilderMacroMacros/Core/AttributeExtractor.swift b/Sources/BuilderMacroMacros/Core/AttributeExtractor.swift new file mode 100644 index 0000000..4503ac4 --- /dev/null +++ b/Sources/BuilderMacroMacros/Core/AttributeExtractor.swift @@ -0,0 +1,25 @@ +// +// builder-macro +// Copyright © 2024 Space Code. All rights reserved. +// + +import SwiftCompilerPlugin +import SwiftSyntax +import SwiftSyntaxBuilder +import SwiftSyntaxMacros + +enum AttributeExtractor { + static func extractBool(from attribute: AttributeSyntax, id: String) -> Bool { + guard let argumentList = attribute.arguments?.as(LabeledExprListSyntax.self) else { + return false + } + + for argument in argumentList { + if argument.label?.text == id, let boolExpr = argument.expression.as(BooleanLiteralExprSyntax.self) { + return boolExpr.literal.text == "true" + } + } + + return false + } +} diff --git a/Sources/BuilderMacroMacros/Core/Generator.swift b/Sources/BuilderMacroMacros/Core/Generator.swift new file mode 100644 index 0000000..f66586f --- /dev/null +++ b/Sources/BuilderMacroMacros/Core/Generator.swift @@ -0,0 +1,147 @@ +// +// builder-macro +// Copyright © 2024 Space Code. All rights reserved. +// + +import SwiftCompilerPlugin +import SwiftSyntax +import SwiftSyntaxBuilder +import SwiftSyntaxMacros + +// MARK: - Generator + +struct Generator { + // MARK: Types + + enum Error: Swift.Error { + case wrongDeclarationSyntax + } + + // MARK: Internal + + func generate(_ declaration: some DeclGroupSyntax, attribute: AttributeSyntax) throws -> [DeclSyntax] { + guard let structDecl = declaration.as(StructDeclSyntax.self) else { + throw Error.wrongDeclarationSyntax + } + + let addGuards = AttributeExtractor.extractBool(from: attribute, id: .addGuards) + + let name = structDecl.name.text + + var items: [BodyItem?] = [] + + for member in structDecl.memberBlock.members { + if let variableDecl = member.decl.as(VariableDeclSyntax.self) { + for binding in variableDecl.bindings { + if let pattern = identifierPatternSyntax(from: binding.pattern), + let type = binding.typeAnnotation?.type + { + items.append(generate(pattern: pattern, type: type)) + } + } + } + } + + let builderStruct = generateBuilderMethod(from: items.compactMap { $0 }, name: name, addGuards: addGuards) + return [DeclSyntax(stringLiteral: builderStruct)] + } + + // MARK: Private + + private func identifierPatternSyntax(from patternSyntax: PatternSyntax) -> IdentifierPatternSyntax? { + if let valuePattern = patternSyntax.as(ValueBindingPatternSyntax.self) { + return valuePattern.pattern.as(IdentifierPatternSyntax.self) + } else { + return patternSyntax.as(IdentifierPatternSyntax.self) + } + } + + private func generate(pattern: IdentifierPatternSyntax, type: TypeSyntax) -> BodyItem { + var builderProperty = "" + var requiredProperty: TypedVariable + var isOptional = false + + let propertyName = pattern.identifier.text + let propertyType = type.description.trimmingCharacters(in: .whitespaces) + + if type.as(OptionalTypeSyntax.self) != nil { + builderProperty = """ + var \(propertyName): \(propertyType) + """ + } else { + builderProperty = """ + var \(propertyName): \(propertyType)? + """ + + isOptional = true + } + + requiredProperty = TypedVariable(name: propertyName, type: .init(value: propertyType, isOptional: isOptional)) + + let builderMethod = """ + func \(propertyName)(_ \(propertyName): \(propertyType)) -> Self { + var copy = self + copy.\(propertyName) = \(propertyName) + return copy + } + """ + + return BodyItem( + builderProperty: builderProperty, + builderMethod: builderMethod, + requiredProperty: requiredProperty + ) + } + + private func generateBuilderMethod(from bodyItems: [BodyItem], name: String, addGuards: Bool) -> String { + let builderName = "\(name)Builder" + + let guardAssignment: String + + if addGuards { + guardAssignment = (bodyItems.map(\.requiredProperty).guardAssignment) + } else { + guardAssignment = (bodyItems.map(\.requiredProperty).filter(\.type.isOptional).guardAssignment) + } + + let buildMethod = """ + enum BuildError: Swift.Error { + case missingRequiredField(description: String) + } + + func build() throws -> \(name) { + \(guardAssignment) + + return \(name)( + \(bodyItems.map(\.requiredProperty).initAssignments) + ) + } + """ + + let builderStruct = """ + struct \(builderName) { + \(bodyItems.map(\.builderProperty).joined(separator: "\n")) + + \(bodyItems.map(\.builderMethod).joined(separator: "\n\n")) + + \(buildMethod) + } + """ + + return builderStruct + } +} + +// MARK: Generator.BodyItem + +private extension Generator { + struct BodyItem { + let builderProperty: String + let builderMethod: String + let requiredProperty: TypedVariable + } +} + +private extension String { + static let addGuards = "addGuards" +} diff --git a/Sources/BuilderMacroMacros/Model/TypedVariable.swift b/Sources/BuilderMacroMacros/Model/TypedVariable.swift index 85c1fc5..7bd32ca 100644 --- a/Sources/BuilderMacroMacros/Model/TypedVariable.swift +++ b/Sources/BuilderMacroMacros/Model/TypedVariable.swift @@ -9,7 +9,7 @@ import Foundation struct TypedVariable { let name: String - let type: String + let type: VariableType var initAssignment: String { "\(name): \(name)" @@ -35,3 +35,12 @@ extension [TypedVariable] { .joined(separator: "\n\n") } } + +// MARK: - TypedVariable.VariableType + +extension TypedVariable { + struct VariableType { + let value: String + let isOptional: Bool + } +} diff --git a/Tests/BuilderMacroTests/BuilderMacroTests.swift b/Tests/BuilderMacroTests/BuilderMacroTests.swift index e8b458f..23e4e19 100644 --- a/Tests/BuilderMacroTests/BuilderMacroTests.swift +++ b/Tests/BuilderMacroTests/BuilderMacroTests.swift @@ -20,26 +20,108 @@ import XCTest // MARK: - BuilderMacroTests final class BuilderMacroTests: XCTestCase { + func testBuilderMacroOptionals() throws { + #if canImport(BuilderMacroMacros) + assertMacroExpansion(""" + @Builder + struct Person { + let firstName: String, let lastName: String, let middleName: String + let birthday: Date? + let city: String? + } + """, expandedSource: """ + struct Person { + let firstName: String, let lastName: String, let middleName: String + let birthday: Date? + let city: String? + + struct PersonBuilder { + var firstName: String? + var lastName: String? + var middleName: String? + var birthday: Date? + var city: String? + + func firstName(_ firstName: String) -> Self { + var copy = self + copy.firstName = firstName + return copy + } + + func lastName(_ lastName: String) -> Self { + var copy = self + copy.lastName = lastName + return copy + } + + func middleName(_ middleName: String) -> Self { + var copy = self + copy.middleName = middleName + return copy + } + + func birthday(_ birthday: Date?) -> Self { + var copy = self + copy.birthday = birthday + return copy + } + + func city(_ city: String?) -> Self { + var copy = self + copy.city = city + return copy + } + + enum BuildError: Swift.Error { + case missingRequiredField(description: String) + } + + func build() throws -> Person { + guard let firstName = firstName else { + throw BuildError.missingRequiredField(description: "firstName") + } + + guard let lastName = lastName else { + throw BuildError.missingRequiredField(description: "lastName") + } + + guard let middleName = middleName else { + throw BuildError.missingRequiredField(description: "middleName") + } + + return Person( + firstName: firstName, + lastName: lastName, + middleName: middleName, + birthday: birthday, + city: city + ) + } + } + } + """, macros: testMacros) + #endif + } + func testBuilderMacro() throws { #if canImport(BuilderMacroMacros) assertMacroExpansion(""" @Builder struct Person { - let firstName: String - let lastName: String + let firstName: String, let lastName: String, let middleName: String let birthday: Date let city: String } """, expandedSource: """ struct Person { - let firstName: String - let lastName: String + let firstName: String, let lastName: String, let middleName: String let birthday: Date let city: String struct PersonBuilder { var firstName: String? var lastName: String? + var middleName: String? var birthday: Date? var city: String? @@ -55,6 +137,12 @@ final class BuilderMacroTests: XCTestCase { return copy } + func middleName(_ middleName: String) -> Self { + var copy = self + copy.middleName = middleName + return copy + } + func birthday(_ birthday: Date) -> Self { var copy = self copy.birthday = birthday @@ -80,6 +168,101 @@ final class BuilderMacroTests: XCTestCase { throw BuildError.missingRequiredField(description: "lastName") } + guard let middleName = middleName else { + throw BuildError.missingRequiredField(description: "middleName") + } + + guard let birthday = birthday else { + throw BuildError.missingRequiredField(description: "birthday") + } + + guard let city = city else { + throw BuildError.missingRequiredField(description: "city") + } + + return Person( + firstName: firstName, + lastName: lastName, + middleName: middleName, + birthday: birthday, + city: city + ) + } + } + } + """, macros: testMacros) + #endif + } + + func testBuilderMacroIgnore() throws { + #if canImport(BuilderMacroMacros) + assertMacroExpansion(""" + @Builder(addGuards: true) + struct Person { + let firstName: String, let lastName: String, let middleName: String + let birthday: Date + let city: String + } + """, expandedSource: """ + struct Person { + let firstName: String, let lastName: String, let middleName: String + let birthday: Date + let city: String + + struct PersonBuilder { + var firstName: String? + var lastName: String? + var middleName: String? + var birthday: Date? + var city: String? + + func firstName(_ firstName: String) -> Self { + var copy = self + copy.firstName = firstName + return copy + } + + func lastName(_ lastName: String) -> Self { + var copy = self + copy.lastName = lastName + return copy + } + + func middleName(_ middleName: String) -> Self { + var copy = self + copy.middleName = middleName + return copy + } + + func birthday(_ birthday: Date) -> Self { + var copy = self + copy.birthday = birthday + return copy + } + + func city(_ city: String) -> Self { + var copy = self + copy.city = city + return copy + } + + enum BuildError: Swift.Error { + case missingRequiredField(description: String) + } + + func build() throws -> Person { + guard let firstName = firstName else { + throw BuildError.missingRequiredField(description: "firstName") + } + + guard let lastName = lastName else { + throw BuildError.missingRequiredField(description: "lastName") + } + + guard let middleName = middleName else { + throw BuildError.missingRequiredField(description: "middleName") + } + guard let birthday = birthday else { throw BuildError.missingRequiredField(description: "birthday") } @@ -91,6 +274,7 @@ final class BuilderMacroTests: XCTestCase { return Person( firstName: firstName, lastName: lastName, + middleName: middleName, birthday: birthday, city: city ) From 0a5a2f19ef9d66a79125696528a223c9ec74c8fc Mon Sep 17 00:00:00 2001 From: Nikita Vasilev Date: Mon, 21 Oct 2024 13:56:24 +0900 Subject: [PATCH 07/11] Update `README.md` --- README.md | 118 +++++++++++++++++++++++++++++++++--- Resources/builder-macro.png | Bin 0 -> 290731 bytes 2 files changed, 110 insertions(+), 8 deletions(-) create mode 100644 Resources/builder-macro.png diff --git a/README.md b/README.md index 093ee73..9316dde 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,19 @@ +![BuilderMacro is a macro that implements the Builder design pattern in Swift](https://raw.githubusercontent.com/space-code/builder-macro/dev/Resources/builder-macro.png) +

builder-macro

License Swift Compatibility Platform Compatibility +CodeCov CI - -Number of GitHub contributors -Number of GitHub issues that are open -Number of GitHub closed issues -Number of GitHub stars -Number of GitHub pull requests that are open - GitHub release; latest by date

## Description -`builder-macro` description. +`builder-macro` is a macro that implements the Builder design pattern in Swift. - [Usage](#usage) - [Requirements](#requirements) @@ -28,8 +24,114 @@ - [License](#license) ## Usage +```swift +import BuilderMacro + +@Builder +struct Person { + let id: UUID + let name: String + let bday: Date +} + +// Expanded + +struct Person { + let firstName: String, let lastName: String, let middleName: String + let birthday: Date + let city: String + + struct PersonBuilder { + var firstName: String? + var lastName: String? + var middleName: String? + var birthday: Date? + var city: String? + + func firstName(_ firstName: String) -> Self { + var copy = self + copy.firstName = firstName + return copy + } + + func lastName(_ lastName: String) -> Self { + var copy = self + copy.lastName = lastName + return copy + } + + func middleName(_ middleName: String) -> Self { + var copy = self + copy.middleName = middleName + return copy + } + + func birthday(_ birthday: Date) -> Self { + var copy = self + copy.birthday = birthday + return copy + } + + func city(_ city: String) -> Self { + var copy = self + copy.city = city + return copy + } + + enum BuildError: Swift.Error { + case missingRequiredField(description: String) + } + + func build() throws -> Person { + guard let firstName = firstName else { + throw BuildError.missingRequiredField(description: "firstName") + } + + guard let lastName = lastName else { + throw BuildError.missingRequiredField(description: "lastName") + } + + guard let middleName = middleName else { + throw BuildError.missingRequiredField(description: "middleName") + } + + guard let birthday = birthday else { + throw BuildError.missingRequiredField(description: "birthday") + } + + guard let city = city else { + throw BuildError.missingRequiredField(description: "city") + } + + return Person( + firstName: firstName, + lastName: lastName, + middleName: middleName, + birthday: birthday, + city: city + ) + } + } +} +``` + +If a property type is optional, you can force validation of nil values by passing the addGuards parameter to the builder macro like this:: + +```swift +import BuilderMacro + +@Builder(addGuards: true) +struct Person { + let id: UUID + let name: String + let bday: Date +} +``` ## Requirements +- iOS 13.0+ / macOS 10.15+ / tvOS 13.0+ / watchOS 6.0+ +- Xcode 15.0 +- Swift 5.9 ## Installation ### Swift Package Manager diff --git a/Resources/builder-macro.png b/Resources/builder-macro.png new file mode 100644 index 0000000000000000000000000000000000000000..dd8d9e745feb590e71eb42f6051cf339f66b6b75 GIT binary patch literal 290731 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%0Aas#8@$1mW!zMA+Jvh0vMmf5#_xM z?eAlgzZigIE0ad+=t)B3zx{S87z`*^>?uFlYdf z!upIQ3T^5^){}v){cBnz{M)w?xwdC^ugC!2TnNPaQYpW2y!@v77QoFer-maTr-l(F zCz>EmCnhTO12#xnNqmJs%8;%?K(2Ikp1rBS$E}T@y{es&USr7GWNn_y#Ou1gd`*hYIwaTS(r;4O$Md27@zp={;u3O^+L6 zH*$_o>FeHzf^#wz3x^!fJ(_4IWItxS1|sQn_z}F)FWNfM<+v9$I;Fw+bjwxfwc-#+ zK2wf*W~MG?1}!lt)0|s`B>k2bOl3{)NGrQpk6<-W>d-Y9k<$}xP-sgp60sB2u_&H{ zLIB!6^4G5P#Tw3$HAraLr3dx?@B!HjEFO)HNv{)v#J?-UX8$^F{$Z7P{5&m(q~zqn zl8cJjCZ0*e>!}Rd?pOu#w2){`rh}?8PNqpWt3Avy~;JNNFWM+g?+XzqCxP9P7eU@|xunGTNt` zGwNSHWy>(TFzz=?iuo;neq%NCh-Sl>;~98}9f!KYm)vPq*`M_$7Dl^iS_D(x9j^A0 zzna`rx+#67f%iVj&>;*%R$rtDSU>V~v12mJyNZqXB_{t!FEu$I3R69PA+wV5%WLWBuio1u^Ul^7*l9$mUmMQA4B7H~~tHijv{fB(`rT$<}=>SPGw_ zdsSGDkA`Sv0EM_qYUkZUm1q!kEj?3y;SKCdq+Tj^6hf$DYU;0;K+-6$`7MD9S*d6u z7N{eka)UZ+dV?>lfY315Z^Nr_4BpJqXXsR6^_A~aNP)f|l;ZiuZ{J>75uW3hQz5(n zq0vf3MAE0R-TKp8UH$|z>(BW%j1<3Bk%okOgm`y;a5C+u-SkpgQ$`PMouc+76g?K! zZUTWBD(w_B4lUY0c!!5qD5)e!2W~as@Kg^0GXCf98Wh65mDz9@Z3yG8&n6gOSK8r; zi9VU@D!k%Iil^)p?0~Ta5AeeWt^>C)+Me#|t^`AwQma2qsXTG|{+>~cv*+a|)k8;k zcHRRSI&^{Y{lOGzwaqo?mH!TsRP;(7QS{LqBe&{*o}SRR7LEOg!w^(Nu0lcdAG>=Q z(TxQyhPUXfFS!jQCcbj*2I7YElg!M07eMECv4s_z&0@z$i&J#nA%aRcXl8$7tYnn@ z>Nv6SjPQk$+kh$K_$V!qe*1+=yFhKXc`n)LjzrUj7CyJ9m?P%51}#j~6x^UrBR=a# zo|m1!1Xep#^lq-FLp>&F0d_dXdreH#Kg7pd>JL{DHg2uYg&f{g+g_#tCwcH{i9%`e zsr=sW9)E5gsZ$ln#A%EqFP_dd95hP!3!mYXsIsxhfxCOI)3k%D*tz~nK3DT;e*hhq zCGIDCgrT(v7sWnpUpGTOav4~J8yRktIF|3oYOEt|b7r_5L;N2BpZnUXE4sUVh0j(E%E)#-L zslM?QC2FWwjWfO^6vV!*FUvgFbLw&X-Qz6U+pvKY*mQLy<0hE~lc=ztb_gPhJ)>7E z&T~@5;TP{1CeJ>nUhOkUBzp4T5A{<%vUXrVkmZET5lo`w)DyGu%_GtL4pneF=S~y% z@zxjAKq=wPJwX!Z?rvP;J;{Vm^A3wD<}Z2cm_3D_(4RntNj@FBFUC(IEcuCAj1{o| z1pYUK1!4;Pvns>Ts(&YqfeoqWgtcEkBx1S$1@_3z+%A>t;3MHt_k<~GS`AiPwX$VM zxbJZbv||HQ30-gf^$g|0=1l^**Nj~FnQKp6;+YtO z(7Eev?MDuC0(l`J>4y7(pFF9~CUHqSzw#7o`|UTuOelYC*}o!mo08q&(l0Z8{{vB! zjt~&`()KyE+uWSUdc zs_<{s8mWxo#eFkyj$IPJ|7FLN*}NGmEr;8E12^;btY+((Lm)D)9U(lnA7pgUUC~wf z1y)j=@^6(VjO`LJczLv@5N`j;9%1h@V#pA~N@o6pP=H0|p@fhG*2VFrr<0z@@7ZvM z{=9HTmh0DtE?z!w{xRg>$2(=IrqzDIB46jNN8|2IlL7Vi&9h&!w6Y}|zy&SP?@{CM zPo;0l?$oUM*mU48qTU1R93A|y^TjZ5n8IHECYUmPS8Z7Kg(;e8RB8lHgJp+;-a{2d+OFyMuXHG?d%UM0OceW@~PN|epXur^S_3tVU(3%)uqb{PH_^<7FuM) zmy9s-K`!2=+K}BUy;bOyJc4pvjKx5yOw@ryg9xb{d!+t}#pM z<|sozDwepyZgqN`q1EOU1Np(QC?Jqow`0-WQ1DR?#; zxL#jBJe3-)3*V{%<~HH^+;&`Rf`z{vTU{c+;B{>PPkuvfK?AiZ<_yi!YndWpD9Qzb>Nt8ne{-p+L*{$g6(e&Su znP8N{U#|#41Kh7>g!H&bv9%>c%Umb4WE)_ke{^5j=h_+KX|Lz3aK3xxF^LM|=}q4o z*pdKfdkc%;hViaOA@E)3&asEN1Syde5b%8?HFbrF zNkS8BExwd1Bzm2t)O^e`#RhUC5$)r9?yJfg4sF309>#To&&k1XAmM>VErkEZ#W3j* zWYA6Jpt<>%tI^=kvkpgoLJ&vb4gWl^=t zU#%mwvMx|V{rwc|dk7djQv4C%TAI6re36!G4mCtS*qNmhS7ag&j|#jucuvO)g0ijI z%MmFP8`L>=9y#-B#cr-qTsj&0bR*H+*a+(B6}E{F)w@--#T*UsnA0XF=E@z2vOY9Im5=QsL%)crorFRt^yyC!#6-idF!2y|mT zrnQ3hu;xlw?rWzEj}e0dyD=yDyy*{%J7c)r{JxhY=0Hmp(c3#tTC#|mlSYjTCXhr4 zYNWYnd7?s4L5z{BS1L?PYD%Y%*dZSlarlj3^0gCAY47fy`!MU$3^zBIfr8nxgXsT;`Cmj+wE~n zGapIx<`C5sgq_A%P=w^wCcK*xHb4DN{Cz>(VVU*X1sxKeozjJ!zLWmF9m$kL>5iWZM@RZ^Y!Ps*{hqm$Sj<_$abnHuL7+Ykkp z{pe&j`Fm9v#zbf^t#0HKCP1>b)B($2q^I)TVlv=kFh%SU*B!K@RYpG)aV-@qC;`H5ZEk*W(p^m(Egs0MmtF$F(M)nl{+K3N) ztzYGS3O+J8$!K?t|GpXBy*qh#k%ag~)aIPnIJN@^BZ&kqh#^kSduA{Ew)I*rz zh9zm(p40eHCWPIh<8_oajnskF_n319JMTH-K|usu@-VEjrsn4q<1FfmXTbOqVw?YI zgdTf>P8!}(DecoK%QVa83AV+9@s?-ong|&aVV~FjbCL40kNm5)cc`R0)4sis=W|F! z&l>CWFN*6p)Btd+nG&d)XLbx0nJ%#FN#WRqRvp#yK4jl41HX>p{inf!to$1^0Aw2r zC4lapASe%s(>Nq2#5<(mtt)*syP5pQ3jqAM=x}$3NVQ-0-bfU7@U#MhQyHi6 zZyPuJzV*m~W?h~h^-NIls2Og{%P~t2=?ygT&p(9F-=8F5hUl80L%TbhsYLWHQ%hj5 z+g;?i^^-RfPbgl}45TRP(THZ@5(E%STQF+R++asU;A(qMF1bPG>Sj>*ypTJ3D}pD) zx=wyJbl@u&VB9cjjhqtEgSnjRa(9Ni?|ME{(`a3|sz=CWLFQac3AG6DkKk}`(c=IA z)oh!T*Bfy7=jgw+tP(vRmHvHfEqG zmHpq&G)KDma6yEVY}YlM=OIdDf3=PzheOp0Jk3P449=bCSkMfhV)X|3-N4FpNu|p!jux4Ao(WDiuZ?O`6!I5PBfa2Hzd^_y?m6RR zhZX^K<;x@+m;w5}yU{6QuY z0Zw4D0da~FD<(%J02?y^{s~i-(a}^$)8z}yfR5e8u0dxM{_ou&3W`BVso3(otLqCd zdHUYI;I)yK$1byR9@(U#vnl#KUjD};puB7QOI~wNX^r!P%e71dfinQO_faiKjj47J z8-PHx4~6qVjaC9`gs#!x#{f$fU;?aF{Y02V&%6{lnl4|WGq0kw|Gx2N#OBPmFRdj~ zS;q7%5LbibZ0Ks%Fep?a zr`oa;?)SbuZPhzEjeTt^`};007l;>6yv!2rqK`zoJuesj13z%@=%s6%N}-buwt0iy;o->eQXTH>S2 zROR#z3a=6o7%-dRo6B&3PfQ!ip%v39@>bapIF}s+JZ?SPhjC*H1M@I&aon_$6ohc2Mum2TcTPJspIf?GS81re z?O>*%QSxfTJ#At8?n^TnV#f--Y_(ZKQ{&~J#GLrT6a;8SUm4DlT(*)3ymUzf9Aw~F z2>l)@c6B}4$E8*)RA4oh!i;L13BonV^9>!JlAhrlCh%3OKL*zR?)`p5^#{N-FgZF{ z1_>1tsuSnV9{-5QTR-FNW$b(@4xB zbiO}T;F((gM^lpKWh74iM(f=Y4UEvQpeH4gl@xhXp6MBhJyU%i~*ASEYD5DVbyQSsnbFzCiXmi(T>HTb(|M0#} zP&eJX2LrQ1#uD_Pv&SSo7?Ceb#n1PzHqia`b@O%pZ5;5cQL)rnhVOj6$3TZ)8?7Lj z=)BIyQW7pLa{ENdz=_x6!S@|3dE31%llzixfOx9}+W|u1Y^vMIKFD$Ds7o2MUOX*F z>}uX0{Na}VKmf)Y!j~xI=HEiTy|BX2jEOSudjMVNNYYG(35{Fv4a4dj`;2u4T=~S( zotbFle41xDb*t`*R;cWOV85RE7FT8&>kq;c!xM&Qf88E+3qyI=1$fsKN(@_~n_hT_ z`#jLur$enj)^jQyPU_q%Rd>?VD7!*Y!{NKf@!*@a9A1AqL?3o>?eF@Qr8kG|*^`po zP&?UD6s`N|miC+}U_@svnN)O*u%go`JjeJq1EU?9wj~qH^z%JyJW_b>3GBmOez!qT zFv*A48@-CCW9}4doA@lt%b#VPlm;N(BC}+BR^ST%(j6#1uNz8I*RQssrFP-U9iH9F zAE{ZDfxa>BWhBLWS!J}7zZkQR9O@|kE z2?Byq`l65D?5#g&2Bp5?%ltpZ=%hPzHt-%P9_7%eTK+%CY7d=+57-}Suu-Z(9L{Zi z#bGg_ZFV}FO4RDOWS#&^JZRHdG>pbfnv_Hm=QBhLr0#~LLidtxmzE_RbsA_QFT8(0 z@)?v|&Wml_9&8p{QxAI{e1UT$-=@_SfB>*Ia%#K~L?@Ly*be7{OO&pkQ);uh*5!r=W)^ zyQWKo5_=+!LSj8lD(Oi@YYS|{*3K6j!{uX<>4v7El+mFUH}Kpi`jyGIsneBk$W_sf zqKC+zgWq2MC&s~TNE5nOF+Bh~r;WYShbmp$gO;Nm^Yc+7XG5Q!*_y94-J9^wy#8?b zl->}(qu~!4kJNn0jb@1L+W_-HGm4jQ2>dL>$y2P2Ehp4TCIZEH^)#9 zw4Z~+YTEmvx97s^PvBU61e7I{7oYvyV~~oiw9^)&%OxUaqMO@KHPH0^Zj$0)DW2M1 zK1efXzXe81!YJfE&BA%Vh$}GppIK*MHdV0RrJD_{Uq>Q;CM8_`qlTX{Z(f{fVOdlE zG>a>L9KBcq$zOT)AYn++#~MaqC#)6PPwD+&G6j#0Y5-H?Dn5e9kaSG1+J#~YX|`n2(%?7FUB9{JZ{P}u_klwUllXy##252`XeqB)5qOFgxjt$l3V2s{{0u! zA?2<87pp+Br2i-4AL{bm*CE?M``&b@;G-`~YB1ioetwMLxoZ{W5ARUQ7z7Ru8?ISs z-ZaW|$CAJ3hI}1?a=m3eQ{9TTfKm#6ZTF9egV8a`b)Pw!-RI*ClTMF7qZ*)4rC3B| z*bqA|z+^-?tCOQTT4{O>ye5XJM-{kHyE-(RloDXn9s;N4r2uCbre8pXH>PHqVi-sa z{vba^6Q1;h66}x4L&Y9TF0hdMxHCCTFY@Fe@=zU*8hw-QInI89gcG^bxhY@O*3>o& z8TR>Z3n6pxUvpZO3x`Svxv^3l8ri=B79-sq5-{NF+b($LS=uK1FCeOy>ZgxSCwAmZ zo%fc;3;wr4Qu?}@_AqDjlLYHn$S!jk> zPaPNgg!;*c1Zx~yqrOsf5!A|!OlrbrJhQKVmEO`i&t|6d3?u^DEW$^sJu6bM=&TNr zlR`8wTQ;rvIiNl}pP|1&-<&Rxd_AzM<6whc=zL2<5jz%>L0)5uz#2B8&Heoe^wN(1x?rmD34V!@qHBnjA2lBdlO{r>?{;)IY zm~EJ3UltASkR^95PW$>!uX1n*7uOH2|s2hfaI7 zSR%Vu&UC9>^d+-~&C3kE1(OqcjUL<(E@DAK!0S#q)y-SN1-&Ds++NvZ=6RpTZfI=- zO&T;>Rzy!0#j!|C5x!+qgQfj%>H+;b!ow?s0`Q$X`uTr~+Dahx)BBe;PAt1$BnT#* z3+K+lBnYaWY@c>u5yTA$*KDSW{wjOC%jbo}W+)=nViqZo7zOiZhA&8oF#8=UqdK?rWOJ7TGh=S9I7rU&nbq}HLxL(wl42$LiPigr&~hhbek&jvGf zybL8qx^e_y!RYX88f-HFu%zmXqd3MIj)+m0Q|>E;Gn*z01)IvD$lOdl-!V#L3%Aos zZ3buyN#?q=Vr`an@Pn8eUd%~A`?hiHie$%=hxKF2Ei3c)gYgxaCe6)t$?gXude@#T zDrk7aPt5?ygFvzYu`(aJ!qua69pVZ|R9ydc4ln>AIF_jZaj1)820(gBHCOoAIx3s% zMC8rpSKiavD7msT07~WQb6yJs`y7fxRnC|E6X%*A5}ee?B7s~ZE(@tRZ{yN3Jne^d= zN#vrwu9c!Xn`mDmOA@~oR7;*!0y(kk1n(%r*!aX|2qK7>`=*Q~XongSqrt<~fCrWg z^xcIFkzF~HUUKCe5p&FRlDmB`6LxA)S-0~iHf^D08I^SH>Ye3heDO&QmPl*e5jnqp z7i`j{pD=8@z2QEDKecztAUk3}P=ttRga?gvF@NFq+ilmw@HwCH^H29Z8(R7}KW)tQ zI<>Yo@3<5|%W;08yO7sLv?zFQG|$V>d0FZuWaPL_`Hu$uWRpheM1uysa^q|%#imVm3@jaQT{p+Mp!XZ-I_r&WtRugy9tm2nQbi&Q=@NnR<&IOv! zO?TBZcm5@RVE*>sv&noMb}^V#@k|sD?N9N!mi-ai^x$hYqeE*hHWo}Ck#(qk>{KR| zb#zhi(?2UAlLZ;d<_~c#nv&R%8bV#C! zzt&5KCQ0&2Y(t2PP2`}W{liU31%Ti)(_b$0&Htv_Yxy1H1!^~-_=Y?joc@!NT%=q1 zcSCg&8r3NKSA8xx02>NB3dwse&oU=<@+Y=tK#=DavKAdj4E^UxEQ-k|UdJbD+UgHm z3`0~j16$$SWJlM`Jg=g7Tq<{etvHLtzX;ZaRWA;Lwr$@>^sdX)<-++`AIESd{8KYh zMq$f`qR@dKDXk+tp3*YE%5ff_8}TJ#3!e~XdxN_#U`4U{ULLnN1+G5!_L9HlKkPUF zmD_GU`r2+!>ZW*mo-rf`YheQTIlbH-KUU_AepexWT!|2Xx%AsqSh+R2TaG=86i`KK z2S|7v-060-aJnYdd1GGIyv16-{y<@fT_6@eG45J?KoxhV4VkRlmHB%qckZOp()uy#T4)G3WP*V3T~)A@4$XgePCe8~!J~6(=opTWsO{LsIChUG~qQuL2g~_rHi!Sg%#Q zLHU3_nz7`(X(vLUqBVnh^OlAG{!i|hNs-ZRS6S8 z|8SfKx-*4cei4PFrnj_CgM&7cHDS@1a1c(GCfDTH*rXS?4V9I&Tq5q&sSB@akA7$6 zM5ItW5qoO98fCx8c7&RLQiRQxqA+03^epvNE0#DZ)=CNqa>E`=;s+(I~{}meCI#MMt`%Jk@U$s8rEpB!Z(wQ zl$V-s9*mv5w4Ly83deqoX3YUlx@V=(1g}WaCmHO}Q|L|n2^R!`&$GH-;m*-&K*102 zzC?RxgzZSP&(Gk{4yve-A{5f*AT9PgmJXWH>2%{``LD9VkZx#<`GU+vE;Y+Y*p4ff zYzq0qMSG(z>Dp=;*gtowj4M#IyP~(62vR3=*qKsVViWe9)zp>Y3Oq)m9o-iOpp*vZ z_+iEZ+_nWNS_`qR~ zRipbjk^%N|%Ot!V45|2YjliAJ)+Hv(M1x}foazzI972`}DN$!=f@sAkgdNcP0hNa< zZKI&S_^s2xAfzv11I~gqS>WFB^rpw$n7cr7sBqEN)9R%6ypeFs(~kTnnGo7wXCd@% zwJ5r0|DZ1|1eQJYt9N4F@9R_%2jALlcGxZ@x^6SqP|x2sD_*xiC!%f}Pi@Y39kpma zG0DsP)gU$Hj)pZJ?Tb~h$t~#tqRheFRN)MKYjIL)~X}IZJ%N8D}lexT{+@`qJ zU!3U$Y`=p>YqbmiCPJ@&C;Sx>dTNt*8G7+Ui7mVWD8**xWq-j2Uk8;oUu}L1ZVxCY1Lf&^aJ`*T;OJp9T?-H0@2V3&z ztxs>@xYuwW(GPtn#MjiumZz{@GrJumjaC?0Ima3f56XXj|Kt@}gwe(kn3RhM*Y#JW{nGMAz~7nqq?e`IG0RTv-jOo( zHP`QoUi^jnB_#?D-G5IHbj+IAscx}e9*tL?kt7cN0mz%W`5h9vZ_r2jmUn{>=t3&h zoG1o!oH$kqTsGe>^nST6cmJ=5Y0J&z4f8J8V-j!opUNY#6nGoHg%+PVdvqcFz%~k7 zB24o;eBd+5#F%&PPc=lAY{;Hhow>;Bq!ys{%;ra>s-w=n7Z!rtjs~A)ejSOoQFhtR z4vB5HCpx9T`KU-g0}9ehPuAMCHV;gcs*u zMFpP`ez>lwl>8(=?RuJtUeWfS<$Q-QudEK*f=~Wje?LXKuDLk9Af=J@Me9ka_mCstnNhmSS) zvJzTb8k{lHCSy2wx?0(#d6nbM z%&`s!_InWU!i&6VJ5pjqzeRRUD(6-%z#)9js;^@*q~H7vkf1D6aW9F!yhR5VzGO8d z7wuNW2h5i3#a5h2rmE^zg^X~2@$2JYxCvv z{rb|HZgxX1!JGZI0jI~gIprrOrHwnvNGerqN&n_z>arYf0&17svT~l0zJ*qEA@)tvHGx6!#Tw z=0dbcXEK3%sq!7KWEX_Kxu$0ZwhPHlg^Yd%KL-o+Z1rP!(asD%^gadM&qYFlF($kLR3*}H-w2<}kbEOZlEKUNNS7YC2ZrMw)~^&U+6_ODf|C0zMj z+&dnfBECQVR{{y;@vn4&+H9Bd`zKwlT({1Sd#^;6Gs|t1OPrLgn3lP>wy!K>I(YB4 z@zcVcQ{8fQs7AtPi52Z|5G2C1$xbjBHV9;kqoX; zcX|Ca6M!>CXI>n7!A@JhM_ELTDD({}_?9W9UQTt9{|P8H6`7z*QoH<#{{l8c%jWLf zFd^xe8d;{}u_gW=eBf#Q>gMZ3S2d5w(V;1ExGlB}bo1xeWO3raYtE{xB>8c&$tYLH zyls!3Z4Qi&289Lvg?(d2d!R?q0IRy z>=7asWCbXT?^0hq`Xw$_JFf-0e)(PV2m-F zx<|G9BVmGlt1fP8ynU#|F#|;+vz}&SxV^V3Z&Tb|^7pu#Q>2g$8YJ*BFYee>vigl< z&+gHIeS~VF$|Ydz*@T`8G*t4}IR0O(s3BNAGDlCONvH!yBm4u#$HVnI4}v0a3+%YY zNDNHjNP8{A)n<{W78|-J@DdQX&IoXW07~-wI3S!%wpwMwM06y z9Ac*X;SBAO-@#jrzYjh48vE+!<8!USCBNTEZF1|$|1geI|JT}2{c%Y6Panlh%IkN+ z)(*Y1jC#mI^jmC76_Y2U2=A1mD~BYgIp<#hW%lO8IA@x%V4lgm9(x#u*bgqG*JAA)Y@JV|l18qnb*sNz zYno>VP+A-b<;+-cRWwpsm$A8D7Pv!OP#k$c&=a}BFT;6dJR%p50X`lVlA7Z<54zQD zsGP&Yi(iPG=S0dcOtHss(4C}3OQ+)MOD7wR-!lF*@w~10?7s|NzR3FgXg_|@Up)n08=fCs z7o9)V6`c=FQ=czM$*i&ufy__V;>d#0-G`U{)u*lQ=6N@gubMdVNNJK3>)y;#r~v<( zubK-Va;{bwffpYBK5l5<-75AJrtL?~dQmFqs+c8<>3f1$_2F6qwyj9kD+ zo=+J6_Q{_lL(~H;&z-3sHWm`Fb#rF_4n@>ca}#>o;cVw6559SReD{{^gPqvX)QD+> zXJ$LlnWDs%#dA{$OQp<>%sbb2bw_qmuv;&WqB=?E{uY%2Nx7Fm_oLKK#OlNFY%IJ#YF^^M^f%vaF9C-A-kbv!9=mg4ADho!~D2oI;U6%%e#6*vdaX&aFExTkb$HeqEo;07C1zj7D!!|e5+ zC`q-=gm6f02W*_df$uTh=GSC1n$xE9H9y|f&g6QK9PoHg=BMPRiU4y;h zYqzD(0b2=+M*)c2rLq(oyaH18Rq2-l`bE9J*8B+*q+ZBBktrm!r2%4IkEVh&fme?a zYJoA4hxzf7(GdTbd@WkkgUuD9#9HrhA>Q{!sm04=vu@+@vWjup00GqX=FLg!Oi}kf!(2zNZEwUVM2md3mldr*p@t^it8f z{o<8s#sov{ghheCy#uk$1$d&@Rjg1_t?G&LJ(z8*^AF|wiikEIq~`nk?9V3TA1o=5 z==?(>{@0oHSLkU3K<^3D{$38^YJGtJU0Pm(=Z30W9*VOix%2V!UFTCR^nCGj5}F%D zbu@hfKJTRDbSjPxh2zION>HXPCX;Ailyodj>-8H7y3}dJt~pJT{<=w)doU=0=W)K0 z4-xw+Hr+$~eYL;xq}v`J-l5{lQZ#FA;<_V#%rN{E0HQUb33&+XESBEEzX3rl{ywwz zYC1dT6V*J%r;SvY%>Ozq($MyKo>3SvQo(>Y)!Q6TP$$O&iaj8MypRU4JkUeTiDR`t zB!!*K@CfmnYAt#r$K#-b_v>Td;M#-2r2TE%qjB9dB^Xb%c<2T51^hmUQGYjAyA%3h zw0_y*_8GZ~|K{l6?Uo{}ozKr5_;e6fHB;Vxb+f9>H9?oKwNd1nnoYDFd^pk0&)%mczfUP~5->=%wBkovkwOMWJ z1<48?h}T*oHcb%O6%z#7XrdZov4upG52lWHR2iX5VI4vrFxNHn#ObT(`nQO48LGbP zHU4kze*%#j&pUTvRVj13)7@;prDwiQjLFl zm)~iv`keRuuaKX!UWf*LFqY29TXdvmGyQfT(9Ys#ULBcJ28}R^nd%?c3@WYLt6sHK zO)c6)jUIfe$5-PRzSS_JS>srMDFG%jVXd)jiCM3PAt$XxHm#W`*w!m zC&x@`HOw(IsLRCX`Va*Bb;AX?rflCBntOh~U?4s4a&>Pa$LS0>7{EsB zRd=qoxL}5=TyXtyTrXLAGoxWSO^0TLn`#*u69Ku|M1kR${FlMpEbHm`I?n! z#K38#Ny34{bdw8x1tB4z;RS5h`FjYe8?99jXTvf(RjMr^<84sDWf8L_>Te}wY^th; z6bC+7?N&&Ins7!{&CkS~s4TlnOnG&a&e*JcBmC?-^D%n=ggUbTxO}m_*pp+ge86y( zKUN6=8bY_-FV7PRFOC2b;a|UXwMs8S!E*0?880$0C3}cZIQIS(Pnaa?b$P!ncdt@w zk26V7oT=XXkynWIzLkS0+vxa<1+jMBx;(MeKSnlcztoolRP6T_iI=^XUdVW`|EP&J z{&#Q8NT&}$I|^JbegA*v#xW&7v~3wGc?J4*T?S8U0*GsB(ih7O)qyhf2)c?J%?p6 zC9W9Sow-XS3ro7`D*@zpoc{pNoO(c1PPjERrCO4{adt$ZTJUC+__hL147iB*qK}s&NY? z?YTjDTaLY9(N4afB)x8yzpSKZsU1+9g**W0O_zMEX=Xt8P%I9gnZ4AG*g~3HqVH39 z5xVeTtW~WXSgGfU4WI#jsoq|B;gmNPQ^wixHz`x(vT8CCOe%Na%fk5WqRc9NZ|+$c z)Syw#idp_PqV{n(KN2GOlHyOf$VpUF!7`(32_JlWG+UXMvjHP9;-H&6Ww(U5q@ygNO-3%Nv-lB?2B(cqKfrOZMsR7#{^c}6nfZ&*TsTcKW>tQ04} z^=t{*j5kLoFdg*1a(VaDI%FfE9#$aOAFv!j8#V0P5d+DJE;x^}&|GC_ix%4^rMosr zgja@3M4aiI0WN5qyhm|}zyI|q#W`y5x5?7(3ChAk>6SL9t4hd42!$E0RHu!&^qQIG3SqHs$d}>_m&wFY(v@O)@WE|6&45}qTQU%T4+ovg`}t}$ij^I0 z3gcBkv175d``2`9I6U36%#~C1e7Xpf0x+tSvvSLszPFHgc2Z$U{5cH~mFhhFoHLVi z*Py^uY*+C?run!`66-jvN|+$)E+hRrouYvR@^WcKb5$2q*l~8k@D+KM(4M#Av3HOY zFXL;S+G!WgyF6nxKXf}*R)3-cxJdsG5wymCMifvWeV%u_RJ>o(F?O#oD*F0Ni`r+O zO-JwZLkEdWDtjWR;yq8VeABmZ{agN7I^~cULbrI>Dzfh88o5({t(0nlY*~|osL`ZX z=|hG3>o2`XPbsbqdWeWQ^2$VU?$lCL1W=Cll#vG8egInvV;35E_VY@hl38-UUX2E) z@n;Bo(Fe}rw(lc-MQ{IrSl<|Ju9+ZlfqFGsK*^l%ACOT~DX?ofNvbUl*tK%p^~m>p z_nMM1#oV8Ngs?uIkGp+*-t5V$e747-z1-V(JOFce<-!E|__XEcxqW*bN^Z0P?1ae4 zXKnI5bF~wCFPl<{l0|;g9&kTD)C1#v6(m;d9d$+y`J6z4u_?t__~A zSCHd;Ixp?Ckr?JRYw?oET`(YzR;6JF@3o_tz&uKiCc&ogKv_2RbMj%Z*>ogZtvg!k z7LSdhr8Hg5IvzS(YboKATjiqge(?fWv8DmW`bJ6%Rj%2(H3Tj<1-3@yRf z{qTZBWp;H*@3GB9Vw|XgRQ8EKIuu7`26h5N??ILDf-~d`;M$|}mv4_Pl6eGd>u;`3 z^Y?Z8_wS>?LmnxHn)OB#P4zYt8wtsfBKXt&HQnCFDXqb41T+6_?0YSGFW-5YM?}Ie zhWi}7Uu*Yiw^!<(p+qD~4Gg{SfqxecXd>RJZfpj-dFk~Qf2%vlNh7-tufM^tITJ5f zkC*WBk%cWx`dY$fGyIi+V<`Zw8(+VhE3w;TmMaAA>q$}~Wj&kS@+)$R0%P@ysp*fM z`;eRu+ALL?bu&>HufhKcl{29YazGePKo|HI)!cdw_M`S+2`i{2??6*d+&6)B@% z_L5-YdEXZl<|wQcklH-G>cyIXuKJ!SVeY78|AB9;B(I7D7U?A=$#Lr!7KEz)QYwQQbBKU5wNB@ z;9Q`@gAKoYwuI4b$h_$PfE71dxJ3{4#tcxL(AS~gMryBI-iQ2+ilNP>vdZs_^v5J z9n*I{hqVsA!#V5&e{xnwP~4R8D#i==c%VBk?oxoapJiWolojD)9AiBr+T$@9IfyPt1_nUIf0aEwkj z?vEk(eNO?Gq$bxC$nqHpW=s|S_TLeYPa8EE2bhx-DY=c0Q&OQGXhgp*x4+=e?`O)O zOY1{GV&>fU@~{O>Etf0!4_q7#%O?h(iD3up0Dgserb^+#wn$&y&Ft5X6fi@gmSsq&} z5Q0Pm1QS#UD}1H6pFhZgylTUtV(iQ0#3A+Qp=#F_ppq;rJ8$c;p#-wd5Yelh$nlS) z%GL~6u2|ajysNQ|Tz5hV)Y>v)NinmbY+yll70swUA|#{~8QF2_lkgRJ4uUV9{9x#| zblvUAe1tNqNm6NEb(EN)v9r9sUkLqbS3g~tTrt_b&A`gwmUp9dOs z@ZPo{(WyFr;>QM;TVzusOBmW);A_Z7ou^f?pO<6|1iH~ruU|gf%8rE{$&@8*+F0?S z=GH-ZH}-{WkQ12UEkCab$(Xdbi;U0Q!ILWIhPD0W)x%BM=Tmn$!B28>FTID$Cq-eU zdWh7G+r2GGD5Le?FDS*^e{y;Wc$@J4rYl2Rxo=Q&%+c8*>n3j#-d_o2g{VgMeb1ik zQ+jSi1!jWaY7B&$E9AVjlxdqiO13$`%Uyfq$XNd}30JAh%2r-frXx0pX8TZ{p$NOb zX2hbNo*QA#+9XEVC=)y+sfk(;uXBN;=BjR=BcbLyrJY<1F63q7w;`MrmCJ7LbN-ag zNsPf2yf;S1IlMHeF?t88?P;tbxB{h`ZuV?U%Jb5}OTCz#ixP3; zy5>o|2}~_Gj44exQ&HqCaZ=A;-1YTn#xMHh(3;5daEkv2|{nVq+@?6XN4ZVK+H9s zYOwB_;@DX_S8uLxTA3H%Mjb!$*X>)j@&fJxA;9a@5I7D20%0d60k;@N*Lr;ALdv_a z=Rm>Gblmf2?jK-R5HXp%!_g&t$PUd(-khOva{=WV4k<(HRcQv!^e|b;l0r44F4(EV=4_^*j?bM0={MP9(yu#m zRdt>E3#6Lx)ll%qn=2wEexDKiA?zX%l_WTrSG7*kS;AvK3W>$|;D1+wEd&~HEfQ4@ z3*mP>EZi2k27zHsxND}Ax@*xTf4IuoR1)gg`rw-!(m%-h@L>Uy#N*Cqlf;@gh^2Q4 z#)o5ySjHj;e{8UD9kvGciuX8GKv;W->DjH!w3sL+l_@?q^*)Hj0*l51aGmtLqWaW< z;ch-co^7I`V$FRE(r(6{{y(+ye>BU^>PKA&B-NC3+|FkGKX91ykR(3@)%9xs-m_m$ zopwInvbe81HiDm)@k9L!?R1dQ1d|ZTBBiP$VUA#4nGrL?P*2r{I+o&dS_;++KP*i) z(~}j#lM%bWIU!=(2iXx5Cddrk4Iwf7+Dn^NdRq)FB_|9G|GIdRd-p&ry&vA6LX=u` zwdYyzM5LcTYj8O^xF??!0i0kaIGNlemzXIABt444v;C}o#+UyZ8O{d3>mznJO7%4NNEI)yHit#r^6=iSmyVNrYh zj>Z^_XRx2VA7N{ldlee}P{nfK)~?^S)fBOg9j6V?S`b<747AX;9iHpSjHU z=e<@5sj$*!H`7KfM7CE}&kxnJFJ}SJYoK{V&!c~}!Qj5Qf6uV7H}834$rEqh7=yr+ z5j~Xv!|&)mc%6QB-N-jH#JsIJ*15-#&Y7|nZQmMN=(J}NuyrqjzSy#?GV<4^gyr&F zh}E&vCi$DnlNC4v-HtR@*?v*yjIP3i7XnWWIj-qxWlD>SVS{e^`z}eS^V@fJU$`P? z6&Zmvnvwwt(cfAVR<`d+D|bC_d7a&U@Z5?$EY^UKm?AUp49y6$o`KteM@t&3B(G5G zXyA+X*42@=fLj{Zp!i3PLgEDqQU_)SV*nlpTsz}TJY+$1R@tW#F5wIx2Su9%z4k}5 z>_DwE`H}whpK`WNKNEz%#aFgk@Tqm^U(L;9$yt{cJt98?^I8f7l32xfk_kM1%GN*4 zlf>ru-sHWXzo2y>SbreVDsNC1krnFP-fbt5B70H==zWp3;fSh3Ms=wx9xAx1d2pOK4OSi3WysC$e+Aq$S+Tn&H zT!$k0P8od96t0h&s(iQ67ybDldi}mjy9?jk6|rt@O7wjTl~$6<{U2G|a41{7gC&o$ zfQ(T01q)_+5a-N$DhB%m_;N(!6YI*gec>v~6Axk>V}GTrU{bC(aMk5CP?GihCphI< zZ8Qh%vxT7oq`QZ(0CU2xA}s>&4z0Cu0otBu0v%#x52l8sug0)8HJZnm`6eSSQ%g{k zg=7u0_uR|8)B1Q`peKjTzYsLicJEB9le{m`J<(5TlmMD{84Y`c?5l-USQ(|6B zJIunn`$1=qVFG0d)|#Jjx#ojw2mgq@5)gz_c5jL6d19|(8JrYb>d8ozdDb)*2|yVuumoY>-@K80Y7vqv+V)S zTaHfiaE6S^Ns0ff8GTIieDd7%YkEF9)LFInD>+lBG`SrCh$%kg2C{Y+d1Zz6JCJD#4?qrBDo z2jX=-gKT>}z{7~=)&9r%!v#XRV=blGiN=hn+m2vs<>)4@+9j0mQCf8a4!p0BI4Mzk z(LKw6u8^}OnLQ{&o=L>@)QijNqD%~&CoGe_C+cP)?D77!@wAmrpateLl>R;XXEeHg z#PyEvhFzu9NNb#M_4$lw!(#+k5d;y{4@!zSQ0R1=a?h8=7B-HpL1^w?#O$Bz?3az6 zTLp9UBmEFJ=0PzuQ%eTb{G}@pmT7xRO0Jc|mT{ScRa6x;0q}A^Nhsx%S0Xj%b9^>H z7}w^@_VEvd6K9bqRpMr>me@$ogXN9%N4i73Z{$cCuO3nZv^1b9^YdS2PvYWQk$ZOO zqY4{ytVFi#wx;~p4|FcgP{gd8iCCXoIv(*GEJsU@*&+$&-bw~rw#lr;8;hrGbTasV z0%#ds()p2o$oAu>e=t#fx;uOc=hNjR&&``H>}{u@zs{^bb_Ho4tWZLxV#5X4pNG)4 zxF`w{JNg1h3cO)Nui^H%U9RCe-}i8ceF&6buSCzY|{|TzS9^`cpTJMR!mX@G9uuM?W3Q@cuXK ziSh8HZD)S6-o{+so)^X!r%wcQ{}nPi{tC-0Ny#G}c#yknSLJ-T}HrCs!$ z2ayrsD|ii~V<4$QoF8LWmv5>WIF$ zZ`@VE%QRHOJ!N&sgu3y?N(5+6!hz|P-{vPq%z$K9?)?&rcMlP4u!-|2koVNH*0(1l zdlmA}`yf*8x|(@YicHyhzi0LWEvPyTaZ8;ZC$UrJ%3IxoS0`D0f*{VZ%V*fMT2vOa zM3cc;KrM1i|9L*IEUBrlk}fbar`~eVzx7V`zbq`-)nD&@{|A27c$nUjG5$o39a!9v z4`s?UG_&2l3t=YGdkC}|)n!%vB$yjLW5Gn=FNQke9?nSnoFePPZ(B{Fa2XoJZ?zL@ z3{2^Y|9Jsm(5PvFRlREPS0{GGSt8ll^Jc>O%q$%k-1`k4%2-(#gF{%GHsz()HGb4Q z@K(CVvW)Gg)E4Rqqn-=>l~BRVW@nd~unb8p@ARPrN^Fktgu_0 z!lW#ZlyM5=?P8os6Je*C-;*j-jHpq6Uck@V^PW^Roy9AD(~goI`3z*aXnn02%L{V` zXRzWNay|f{^YFmp6qQjspV)NK=Sj7kOV^s}yLZC2BndiFU*zzU*g3SXb{LGGS;NX> zpzOu2QPYflLb1JnUrZYGGe6N&CX;ZPxlbkSPeW9-CRP=mV+aN>@RajHE@e*Ka;_si zsSq+lALh2E8FBDJJ^O6Kal8VhcR?G5bNye^iN}8h?-z}9bb64CDX^`Zj*6ese`hhcr3N64HRr5DL3juE0iZf-ek<{ zv4!u#GkKke>n6`;{)R0Qtzlbs-FaIZK+}X9^0RlVFL#r>Y8?5=&eq#!fuY1{;PU_awl3>4l~R)yq$FuQImTZiun4~ zM(yGZEeRLu16tR)wa+l#1?U3W?;kEXCKm>s9?4g=rI+G2i5sAC)QG&BV}%5|BtLTB zkx$Z{8b`ES6VJd{Ev5bkDmj1Xkv@7&CWzst#?JsxY{Nn5*&K0=2ZJe7psXf-(gKKg zKRWy@Q?;o6%}{nI9Ih(C2INvVOy%?m>s)jD;N)Yj{&3F52cdsFNH|4NV8want)y+e zfiXP)dro@NzcvLf33|ii)lE`gqH)-^!N(>hMCen9{ksBr7R6Jn3;G=m*kg9R2Ndcl8(HB!D@PEkh z57!hv6l(QCivhWIvjd$^xGO$2r0DwiB5e{sT!<)!;UE1BctNd~ljKtv_o{Jav-kWI zAAysmWQ^V!Z!d=}s68oM_P=x+knW4 z?&v*D>XyID;UUk7Q}i*hMXxp(2VBElRut;9&`243M>1-$G^7+{X~Hol@8ya1Tur;F z`x1-aX=Ig=2Ap_uAby7_>=EyE+;8dS#!kNtOEb;z8cboZXCmG^dBiUeN+rYX(kNrn zoPzFKVN3v8x7ikuUJoP7`1~Loo{&;w%(_W*pEuqqdA3Z1SuXyD9Foj;{t%Fbz zjcrXnS%9VGhxlRWs7c!2duA|90qh&_rPAAnQnZ()?(XVNIsf!G<V z=oaU2a~B8S(tH|S?h$A^_#?kKVc+%J4J}POZmkOoL2~x^S(D*@`$I%C zdd1a0ffW?87Id#KlK6M023&IFM7qMxW!)NBJhTJ9`;6?r z?_8OY5MHK~V9Q`78jJLkE%W1{)`c6)!&$KY2*_8Z>25IpCEdVN|GM*zVv;u4Wsca9 zTm(b#OFr4jB{##!8#KxJyVun|8Z5v!-iAuY8y#^xv<{bLVs16@^rz!}CeG+rBNe<( z8Gv&cJm!h7GEiBKq8AQ$FJAksi+$#96B(h9`ZE%w;PMwYBP!5=f5ML)g3K2E^)x4% z96ALg-VLb>BMIn&4|573N(yuSPac`|TQlF5sTnbU@m@Wq$rHtkfP5bY1sZD8n-GJy zO~@l)Knwh$O~(A#d;E2#?4-&$7riUwCT{IM>?8()>Xc*XmjsP@aXz|sy?2kg6eTGz z7E0P8rYNHu#n3PG#BZE_(j}&NZBEh0|-3V-%`o)Mc~GgiZ9X{Yi(6*M0j#gnZ>@ZP<^3 zcxf8gwT(z>d(i$`6*XTx6dIMeD0(+t%7CW&cqGF~zr3GMG*7rkhqy8&^w8|1a=PHchHc4v`k zgCt35cvqRaY+0m{)vxo=O0M_gwXPtmdFl_zfIhI8jMz6pk52uPcaep0lqXdtr_EQ! z{OtjXiA7W&TFadvQ=<+?U>bZ%z0N#n7B>P{x>1cs1X10a7H zNoFO|FZw542F(NQ)A(o~aC7n>Ai{nzyD1w(+r!$E)I`3%~K!6LEDp;Gr4S zLo2F@eUc>0-vf*|p}JC|nu2Yr*2(OmVWr^Me&sPXKmZVSz~Jo&+=2KA$?Wu-xF|%p zCNuNt7cpT$?#g0I{4XpPRUmsRi?0*>6X_H?`P@c6USrDvUBcy>Uw!Ad<@3r>UkzJ} zNRYm-unMPs$afP(T*DPvC3Ey1=C-5}(INP-GmXVs+R+v>$iB_l)Fk z2e;s5WQ+U6*P(gB$)2BQjjBG>d$jVoQK+untM_snh$-tf1`KT$l0k8rDl8^3LJ6*% z_O#wMU$l&?wNAV#EA(tR7j6Fwv_NkP6r*{$O|OzQ${<<{2Pe<0H*D7EXqden7M=c)hksP*YgvF|Es)N;f;CvC&o zq&Ewu2zY5)y&3ya;|^RkQfgDf_31BSkBm_W8*y^Q)=AI{XbD3IREj#2-l2r;brVC~ zF>ON$jL7sP6qZ&5BjjmC`l+~E�w_S5wIOErztG*#?x%5boV|Rr!tL_I@cAtUl{D)~G?TV^^WtqDXTHK48XlvZDY|Ue1soX4{vD^4LP%a$jN&kiLLX@4-z#B1A(S6jGb2}g3 z+}iTpvrRq$yG_;hR3@&=;xq+24_;?8YPc@59o8)kZj;25C3jdjp1XTB>YE&f;sT#FJ^xaC60Q8|kfAS%JOa&>;?4-erXSALct zNS<-dChGGg;cQ>%VmqlYR$=vt718BnmO@>?Il)xb51GgY6>S$g`wDhm85y`N1kN6L z8D5)QtTXVx!Q}3WrjHuY6Hu;VoEs0t^HNpN%v?gmR9q2^ynRO;T(!N5tonXeAadRA z$3hmr9BqFFLCG$FP3dt(xyW)`kgLT%lnK=j&mbBqUrTfWyaTp)?q02a`ZtX|HEjPS zOrwMF^-%wPKJ9XBGG3n8m}UgcR1kku-VYHW8Fh~4wgJR{6YR?yvrY2CyxvGEc}=^B zf{JoEEL&n;D%ANb_6X!saeAKbeQcmsrsZw>8-s9*LQgQ8Q(El&g$V(t>Yx?1p)Zy# z&9J{|RwKQJ_<-PO{Yqy;lFDpi;Y%W&`7qoCDOHu#Shm3pPJ>4p{rzDWL%>zjRYafd z-gBehQ>P;~z{@m`$@H8eYjIWVg3?e@~k8uibK7+w6(DI%_wnj}1{6Yc428GWdlDDPgV zEOQz`C^sU}sqOk5%nJ!STI4#nO(gR=pJrULO8-o!J_cNYRyh*4-6+ot)ay~@|K{yX zTo#?qed9twNO0XR~S4xLJ zRI{U9V9%@d5JoUHMSzMnbr*om-dN!SMyfgZbMg?ptN`~M@#{y^wGjd~=ZiS0uObfp z5I;kF4?!J2%d9) zH=1*P;_nJlQjz3y-&(bL0;jIDkShHs0Sm!euS43dgpj=I!-?SmFT2D(XRqBRe1Bs# zjm+nW@Hn6|{agjPAMm_cUa0!q^DoWou&evzzeKOqw*G&?Skvhs=w5uollD zMLk$gIc^~~N`uZaN;_n^D>w=zDTU7RN3PO;agpsmPz!%YuQnx#PJj9tZMc8lApM0= z!FD{9oJT8P8($bN%88G%wqb{sr0m2YD_MsM_*#;wX<~{aMVXc0g68D)tL&0QSiBi6m*A{g**31{CSEUCkH+xRrOadv;B!NH&4+#{^Z|-{?&&@k-wR@Z=gAk zeKa!hPQG%xuK~9=H)LzK-#rIUyjo0bF>j_Og+pkkS{CmGt}~*2&+j zn3kMKNk6eZl+X@OQE8lkrYOKUZQrQ6&JeTMiwOaf6^pRd0CY0Dq-O%G)*Pa|H*zv_ z>TWD+-m!ANLrWvn#cV96$z^=EPv#L0modJvJ3`K1))U%W_1S!&2^E073YiLc_L-kC z@OSTNb!awUicMH*SCoEXO;Jgom4je3!2J)EwjH4ZfQ(AzYuemP`J;ol^z(!Jm}q!~ z<-3@91M$fr{D8D2DH?_eIU-*_Sf(FAnNb7{UYSR`YBM@`%V>%)@|fL>idt3*jvimIqJm%O|C*V(WXUVcwR>`sE1P;~rd1Hgi@h^;3a zR75_3W8+7h(ayU>Yi8QX6B681fzGd$Qb%y7_D`L8q@>%s|_s>A6{b~%r z*S}bLUx?3%%EY%_l+{N%*KIyP&-K!kVOf8#r1Qt9N=uT-ol79h@h(jd0Ea`SR_~V> z=6lhFq-h&dry%jtK#mI(cm&`^*+jZ9DJUwgub8Ri2NWbXV7S|9nJw}Xh)c}KeU;?$(EL#NyJS^5^A=aOYpl0W z&7p-^*2$++Jv9yYWmyc#A4*nQ!x$--pxPh%Lp!MxfMNL(kX@#i{+2AtP&UBZfK|jn znH{^CaH$wcQE=7G`N*;Ce$X&^xl;coD_hg><_3htpS#tMLcxOTNy?A%tNoXOAa3jF z-<>Z<$!4Z+v|bPII*To7N&nbx7F-qdd1YcIp#8{c^Sa^|yl$K8+y$24mIerGff3W% z;%{$|7H1y{UXM>y)M)7#&CIwp{dJ66nKf1VWvP-Vk9n6tD2fQRIlsP0vV+R6&`O`0R~36LZRKs@RX#)XIsOy(oxsm_ zjeq5Ivj209L;UGN2mJW9W5#H&0tksOYN#RYYn2URW=r@Lk>h=rY44H;&&H1T-`^Kf z*H2OjD(ccS<)|Uo$CFya`$;96DC=MN)Pbx;)1Q|S)o>^-$Is+TVlD|8(aG_Xzt>?o>qDnJM2&%dhF#jwJ0Q=UAl1@{^=H@5N_icJs|VVq6FXa#=bjIA zVlmKBYSOt*k8$rcn^yLB7)BEk*;G>uzkbO-u)-iBPTD2@CX9n0b7ym13XmY(%tbsiSJ;VdMoJd3)ipX(Gb6Yao~}kQNXOF6Xc>-A?~a`o!Oi4rjC4RzsZ!%;#bn-Lrf@8 zfm;~1@CF5YNv5V<`RuVJiNa21)`w1s`G+UM`$f{j*ag%=&21Hfz>T^^|5E%YCd##i z>V2DEiOq5A^MMytTzXhPdCI8DXQrb8q?ddAaN2U(tYtEByqbJcF1pk-zhH8ZutrUe zO(pYtho0AV=|nHTHvCfPI2T9t&Z(aOV6wCtUs9uUog6l1eW|Ak^tu^Mv6@6-M zA3U14!lSjXy9sJH6TZ&m&1;X>i(%L+BIm{*Rf zU3xr?{hiaf_&=m0iRsw*lWlide(*bUI6$3gtCzt5uTK9>z0Oe4U4$lZ#{O$R@U`Cy zL>l5~5rHm=l#aVpdRIVnr`#%Nx5%&K=o*<=&TDoV`f9t*V5X*{v zlOWgS@H*nhaszv+i=m~bNL9ma0Bu3mC#(-<&N$(UQzqRW2jV(x!8M%h%6M+7qI@gg_-x{0 z0lPq+dNn3=o~fM30Vcun5)69Pqc%Zc7Vx1L%Dbq54UXXrYkJa-h0V#Xx*`R3j<3S@ z&TWGz!nIDb*IDj9w0z(btKY8>`cZ(Mklq~aKPt;fS~E+2PQ6e$ z=>h$D-|Sq()uEq`Dzoqe+}Y%H`D-UD2C56H?LG$JK|)OxVCoN9?3CmDJ{9T( z3EHP)J`8g8Yc2h3KvW9)W*hH(xy|3?QP-)%kHCwPFqhJgs!9v-j8D-r{@NNE;Cu4OgjY zciH+R6J(4z3ixkxU>?5Qpa#x3YC=tU^KAK~?`I1U_O-F5{L~V3fuE5X>~m0E1g*xk z7K=h#-M1^ld}qa!!!jrz@71J%kkNzim!E>kQ3J1LeC1>oIc2@m*6#6-xKQ|;+WfJr zI}nVkUtokMMv&XjOFV1tA)M!ehhLM9pZypaq9x=CcS69`kr~7faTBN(WvZq`P}A(Y=hxxn{wj?sz=L5hT#)z+RQ|fqki8-s7}iVf36j_{mZo0EBzDu95Dxxn2S4n z_J#yO{#Ae1ltq%ye@po7g&qjL1iHGoVFd9|%H+2k3YbaS1m|(dH8g)5nciRPMw1}< zb)De3WuWTtTxmx@f%(&JBWB<;lI_eT05cJJ_=nqHZl0k~{7BZIj~17%yfzmK-)goi z>|S8>1mX_N=K;ElYd^PgwzV@)=X(AW$TBRGZ_4cbDLTE|F}GodVKFd3u(u715HFyb zz4}&fo7YhvlM+w8hw{^F-(+a(-t4j&^aqfSOVwq>fTDH>zqj$Zw4t55yX3r^!g$AzY(T!}b}>W$zs~+A zvwd8*zo*b28#Ws%(*iCbD)@f+>q%3U(2H9Oj0UI`Jb2tO3EoWV(O-Sr>a*8FnLE!T zB8omNjB0uOP8{U!-N)oXT^Pb|J`x_I25O)2O+gSf+3Wg=ycfNWnZS6uZ2d(X2fC4U zmT;$zt+znN-H|EG^OB!uTK&4V!cTR@iU7{G_Z7um#YQmmYVNDLWQ<9I$J!I+2Xf;C zn4@opYDjvo1l^E!k}$2r)PHC2@YG_*_P*S3-Lqk^L#{g^&;lI)JmV-kzT#5uM53ov za0DJ1XJE$`_ASh`Oyu~B1M49l#xYIF&ff1NEWMS=SPqLihZW`OgSLBBo)@$E+2+5x z%m=2J>=9?V*-SL?1w01btgl4803~l7hQKh>pK~`ZMbf|MbY?HGx6twgO=f=GTMH?D zBa%jPp5xRzrqt1sn|LC8Oa>gk#y)47r1J(O!B2uDiJPE%@O<27mFi{|c(I@MtmRD1 zdlDH-4h}W!9T#fCYa{H(VIP3vIAH0I)XV*O-K7QVLsY~?%|sTl{Zg_%i!N4>7X`}Y z$<5ll$8FkPai^%H;&ZnOCKUG{C_z+8BhII8hKW}eWUll0woD)1wwp@1%D|5)(nXa0paMl-^C1z?Rx{gG58}MLire79ttwHG zvC)=9??IqBq0OE*fp@2>@wachYe-sVQlqZ$>@Hh`R$p2_D+iplhF=TMkAVG(Do^EBzWf4zO6oLp<-bX* z?kMUwpsTh^*yzxRr1<$_s`^7s+fm6u-njsO?dKTs+uM2%vE2hsOR#im<>I84(sn zvh0p-lgI)0v~jFWltm0eRlRp09Ao*&H@*EMoZsXe#MpSmypl2yA zLacMvJ!g=g6y2IMhE$L^zj<=3<>1$#P_{6VDGC2Ek*cQeMQ<25?84C_F1oe3qYn(M z(s6J-j94)z*4Y5367EitZl_0g9(hNYiAqzAhW`}57_Fdd$XmV%Se-u4|8K-JP33~B zuk}m?e6mLGaCXCgO#ZU30;VH-T+9ogujqc>`3+PZjJJR=>o-;;bhusYYB^RJc zp);YO$fW*x`(|W~V(_&ey8+UkEIDY;uyFhN68*CYyvn-XbcEEAaFi?!86Tx9eG5S- zA%fz}ok1-MGP5|O5;cZi(on>F`E=#s$4q70Rf5Q~w_OE*Xb2Zb-wi3qrK9`zq`6@e zv#Fxm&Iveqba7O>8j61OndWzkcy(0`RPVL_O~Gx03A|-;y@Z;m3|FymFR-KRiTWjE zmMub3g9}=c>zA}98^!K`(n9RxfJHsR69vo6YwhI08Vkb~6J^tn1L89h!lRT4|C znNj%CZ`76nh4kkyPy25coq#^DB;3qTF{cTg&FUJn(c}6eP8wROu)T~e^s`)|Lg-l&l^lLf90GzjKo0S0J|TF zi{>NHM)AQlkE?9<|3}qZ1w`4k`@=K{NOy;TgrszLhky*--Q6%WC=Jpr(%qnRcb9Z` z=KwRq$Gi9bKkxIM-Upm;&05#`rQ3z&&zSPS(?Hy`mKd|;rap_kXrRuo0efTb!$`W( zvn`|hn}95xvQbYXdR!R1j9_hVG+8j(uiL{;(=m&$*{pywGnoMYU%OTAVGbuEcRanz zvP3Hltn(SKmB8?4{tuXOZP&^ldflxDT#dlCc?qoaAi|P34W*2+ znR@_y7P?r?Ce9$So(1CEgfj5XnUc#{yFM>Q{6u4p%4p=D@S;KOQ}GvNi(!{y^ThG=(lvSR-Q?hVwRbPE!okwECU}GprJd-iryk z9x=M8bdIJ%e|IIL6qdLX)33R)d+)F%tC<6`Fuok^ne0uI#+Ig5CevEjVKhygm~0=) zV|{hg01^p`QU3_Ky~T~|cM-9QH@J^H?d}OU?*M`w&d)brfBVKU!)myiGa7Ce93pSE z#mA6m8vr_CmjLy*vrhRg!`u#>%jw!wj>v>a#>=_m6Z~{UUVGEu9xkER3@aT*-Z6R$ zUmC4{KsBzR;IP7aZxaIK(44dqgXdL!T|V7fY3n?)8)yu-br!(GKsG7yPHGryk;w1whItzE+2t6WaHdDOOuj`KOdYu|7e6-d|e1 zPrCF$x6k+e{`F~(DT(OgOh{Ko#b6IA`x^iLQefdH;E_g z(;bUdvo>y-on+y&yaBxzM(ikUZSN628Zv?))3K+b$l2;_79}{v+|a|8oL-xDG$MqO+>3nD?+=$2d>X zJ`H&1d+(VZ_m}zf>fS5sq|9vQ97BJ6mx(xDf(8z(dRp7UK(I)^MXfhObQmAcs4@H> zmzXqK zli-HC-b!jzH!xFOzEf5v6$bo33%2Zm3e`fF#BNux*UGqbO)t=I#4L|IWOA<`- zmnPR!)5z;&%FdF2D=X2}w*;e>Ya*twYvMl(E7P0!0YK~+)zc{{QN7@s_OV;8^}D;Q zY-@b~$z)CahqLuk)FDk7V_5t28I6l3Tf7qxRJmY#9m`QNnc6rP@miM4hi9Pa;jC_U z{bBAiekTqL_&{jK6WWyPfOLSb6g0KQDikX*7`@DH%eGEsZ#f@KCj)A9b{`uGe(l?;XF@`eIHG9~nD*Tti`^IE*$tjHJ z?b>n*`;KPz&*?H%2Dkf)kT=JP=Ks$(#o!v*;1WOB4?`rkuzDD>Ja3z{kThBC2JrsL z^H%YSW_aT*jR)277qO6)RBnKClTI^6sD$Z@nkBAr_TPMZKN84Mt1WF-<3Yi1t|i@y zelor)+>5{Zf&;qx{%v+ zFTCvZ_eU#}0nZzao@XN(=K-&K$!}nS@a%4t{ITrm+9vue`MWE78(HYZW|xik4|3)g zp4`0c`SMMXFh{j=K90XlQZBKoT=oc+f$cY3@_eGA9#`?g5a>ar5Vo3eHqF8lSD;;t z?N<*TD$kZ&^eRm@ggkUN9ee;n) zNAN9fBDJ~A@m|x0@R6!z_VCb(Aj7dNTKYoIvd%s9s*TlU^jAg^pY^HP4&}r*i;cl= zS|b^LB*){EFrj#<3x3xCIHssof2RQwm=i3W?<&m)_L>aaEIQ#i)F^2sXhIP(=$4>X zhCer#gJqaoM0w#8>U{l*HQ74KHik~E>BHhn_(GF8qVajp-lgQiK4+*}CQY6Hj2ScF zZMWVGFl)Tq&-Wt~dy?P%I5B0oFQeh`p|LNX+?pXy_!fwn7>b`; zeASJ}E}+R-sj6)rp&^9V+n0e_-IqyriWfxhiig2^E1u$N6S^5G+RduJk0N*|C{em4 za9vO~K8dTQl>WpK(c4E!y2y)c-=C+EfXAL>CoMI2r@t((!SfU|=4@idqlaLjS(QPi zY|Gm)N(hAinEi2)==#1V1ymsgi=`CAIQo}(Tlc7ba8P~Q!J)UyS&Ax5yU%l9nOYyI zWE?eC>)L6kG(PCThl)K=64;bsmDKPDuajB#b%*f-a$xOAd}=Ez2}PV+PeHXd6;9yh+UwbTmqfzA#(^XM&BGUv4ac&^HE*-uwuh(A zYSoE{(*}6GrKRgiw6i5(%&UEk1n;fxdU-ZpYiUbCAG`0z(OAZFqFC-HX{Nly+fr>B z5C7&pQC#is2mXv2`>}m?%g)Lo!ZM0*!zKwA?%J*NX-{A*;3O#h1qZu?;3Dd)KAWm? zI|t2Jn#R+9AKo`!U!_>SI?Rou<@Ci-yTvWQp(^N6qSyN7M= zn(A;w9^nvP>B&rfI#FJw>e<#sOJWrkqvt6wmf+yg0?YX^xGsgBd&);Yc^2t)qdTfS zNoz<|cp>m*MsO*b5-_W5)WQ1C<4rO6?X*j!vitMT%qfb)QhrcTIt`MHo`23M1tZ z2y#JJJ0P1TRxD`Ov`SGfsYEgk=o9#nWfNb-;wV8aWiFmdAmE=p&{f;2g^y&Sy<3I_ zaotyod-((nXGD^t3*R#*;9(;k;L^is_y#ixU}fEj>8=)CN|AGlS7Q>!728iv@U8Hs zY^O_mc8BX-6wYxyuP(3kLZaqnF{S5XQ`%$b?C)B%5qm~cwHZkCz$%5c)KvkSuoDCz zd=Lqp##hgo==l9pLk?1#_;Tcw#=d98*@>#XmPtrA880Jxi?z*df>plUmu5vGtvtzha#P#-yKgm#4=jK(BRCY%R>6PmHmv0&86A|8} zv=@r@wH^ZA<(IXH(g}nC&}VSr_ZjoZj{4|8JMmlmfG=_$53J8w`A^2@DzS=GrXG6Z zQH43N!>Z1M0_nLkC7!LnaUoU6@wen|(aJaj5c{ae`Rm=6@AQ)c#BZj4KpJi=M#?Qe{MoA z^Jt1aI`{z|eZa@3$e?VpPnN>LOE}O-&=0znvIsr#`qw@t4-0Ny=l)-Q=YK#^?>gqI zI6>%&7MuLl>`Rj>gJWo;O|^XUbofEqilSC3ktXx)(E4ze$v8 zQUfQAUzO1-a*zg@t4E9PTpmXgrjhzvFWD2PyW0RmyIC-d$X5++EHRcFQ-xVua|8N-qBiSRFnA(kD3pB8&dibxs!( zm8pvH@Ppx#2+LQ;;EbBLlDSs?y5zjJJ4c-Sf??(TFm*p?HHGkd_Y1qew$+ph1>L7g zcE7==+WEF-K~at#<=e0Vrvp`^9gd}0*_cp8tT$mPPGb$44v%2Mmyz-x2g?j1G9I+6 z0@8NzQQr~(UBdbh%Gph@jriB- zSenV|BI9QjfeY2T)L0*nQ!M4INw#&BCMabNQ}IddF8X~8QYAhd;+5+pFBKZt;lZw9 z+STrl!kcPkL>f91q=T5_-wh@x$7IVZZEL9<8of;FAgIUYH&wSq!YiLXb9H-Huh%IL zvA~tBr+D!PTqylHoQ9kae=D2{xFuZK^x0aD%#DSbHt7T@Ccf4ugDqI^aJQcl_duwM6ECeyB}66=P)7p5;rt$81L2sG_fH{BkxHey1@ zrka7EmcTM$-`C{T;|*M6q%Q~39dg@2WtOSw%5~@=AF1voUw(-?aBlaq7j3KS6_sA( zCs})9)9ZiW&z>tDFc>Ib92w=76^9%_;-hP$h zvg3$G6mG=axf59=#6_Xl9!?F^Cyd~vJpzy%WN!=nkTQxR}$HrCfK3V}Fh%Z^~4_6fv3 z?+!xTQcu6P3%Tr|yh)=C&ijv(0p_n2$N%DhJeg_@Vg8nl)c-$DTYXEqN(_Tf&eiY~ z6jnl^jV@R<*NGu*pHhKg+p1+M_%z@70O|vr#?Br};?=y*=S11$iwfq5{CXRlff*td zl4d9yDJFn&(}O{VfPe;fn;fYrqW@FTF2dT3LMdu9+1k>B!fz@DuR)8~ z1|(CXC&S3hkvjocDy7A4&77T2>6OIA(=G{2(8lLESa#IV9&{>{tG0Qysshm`_RoEp zg1UBlV{Dv-07A*sYu2n*Qg7ychjHL4?xJRN1YoN#2*` zS|q(ZV~JCTQJ%n$v|zuM@WQgiucE@9?y%9f2+t|C|o&&mL~K(Ns}8eG^M_tTalP3p$uL z_Vq1b503EFMww!V%^Mis=COoP!fYer2etq6Qund~iKMhAWYxdA4WN5h>uc~2#Hzk! zgYSKC>HFM>HTG}W#BG@vhJiO#68Gt?TBILkeRsDTR&MuI{+=oM_jv(iF?WF&7x1jg zCGt)GF7ir`-PEp;PoAA0gMGxWI86OP5e7+tWNgH%9wpC_FXHsyNg)f!55k!K76A5! zFYuI&)W2)Z&-l<4M3`MQ1)F34X-*ux9mLW!*$7Fz3C2476bi$W$WPSI? z6a5CBXndpdPPa6vl3UVH<>Q<*d>L~WFnwIr=mME!BQm<-#3gqs)^BoY#cR^K-Ju z&Oc9*jC*hiY1_HYHpk|$p#2pv*Xd_5$MR9fV3V|H#Ef|6$a2#{zBArj%4c!0DfN9~ zz2Ff7-Kk6d;+dz%!)$KQ9M$1!4fJ%XY4aHbIhPFt|5;%+e8Is*zZLi+M!jwu1D_gX`UmeFw(VZ)oqTz z7l}M_ZszbXK{I)fMiVAi$VSN_m5MOk` z@;@8DFe|}?Tu49D$W{(e-nJ6}pN8{5)SvR1cY3QaDSA$KT z^|z`k;|>^C#7*$R^Z(t<`kAO#Z1+Mie}xcS*dT0R{)__R5_pm2a(KLSZ)3Bx_{PS> zg1FYL1D(+_+?T6ls+TwDF2nPR1RAZd`t9gGJtH?X|Hokuf>}U*Um5(J$Fs4c7g`XZ zWg(JC%#KcLm}yWFpIaz(VVb@hGoi=nMI{5&c~W27>q!1QiXW@~f`7{dN}XTc>#TIu zQ)Y&k%!LGNYd)e~(}xdx94_LxK({m>* zkoc2&xPy}A?U+VRRfVHY&QCJa%_k`6ru#?0_O8sOi*%n`b&Ms7yr#*Q7 z+W0az(YTfe&WpdtbALx`zgr*)OlJzOsN`svOoe{O2;!?3N%_n$*-WHJDkGEwMOXW1 z#X$}4??W`fnz}FdhKndnD1b)64D(6I>{1Ld}ed>3zQ zx`A*c;gNw8nI|gH+sZ>~m7Cq9l`PEYE#H?c1MK*la+9KLoQD)>Nyb&JQKsjnK0na$ z#zJ$`JpgXQ_{FqCtl)2~0bv_U4HE_&tSkHvuAR9eUL>N|*J^@32S4sRv$G63{!4r^ zURB~>y;=#M-lequ^L#GqzAgA4EzstawYC!(^G$weq%5CtPi4;>CdE(Zicl;z*N>)7 z11H0Db|r@je22@xtCi^U!K}$<;g^#utLifKxoy>8kn_8zu+rC4_KU`Mk-ewP>65JEQvaZ$#Dw!iu2G3<3G^V@75p{?#(O&!?);bAyoy)mS_%$-b zkX72}JEGt^NaW(mom@zN-{TzBUdZn^s98za!wS;ZWfpPZ|BRPUp@Y+o1_aMcVY_O} zVE%0b{=TbkkXsU!Pxos0mWjyje4Ma69(J9{Ot4d$+qWt6R$fHyKUfF4r2q8)vH(7= z{t%|U_n>|h*-dY=Port|P|3nOj1#48P5$c1b4mqUgv1sq-x6-?O-;9`bDc@6!U^&=%7MHd9 z_`2<6_XdTNj_n>-+>iKOzu`0MBG=4brxZVucHaM#*nEP#b($CW;%)B86F0wnu_wlr z(JM0hDgZm&e0KU|C1o?xE`l(4LMC3_*3EktIi|X883!Vj0-Rg%>3Z#|x;^PLuym7B za;aS8S#y?PN=*c#$_3unU?F|Uqe&&Z8s$uoZfdsqurcOT{2`uFbd7@lxiqsuM)h`F zXz4u9t_8RkoY(r=#@cZ84>(wh=ly^RdM(clfR6r`w^!ftQ43-Vx?%(IW4)CD1=MIH zk`4Et@<-}I*ySRnzg-ugVSe!@DAcz1MLDbN!tB!8M`}lL;zUtLGLuHaA$+6>v=V8`d`TVRqC0`Rp&ORryf51Y} zL55yEs_WCLW@=KLmU*&zysrJI>#T<&ttbIWAPWY|=BzXycT$H-yWT3+O@zn(#w+Hx#MT=vqPOx0Dd62L5eLEVMdgXxWySPlO{GZU=fSK<^+Etr zkDeRF7JhPEX{mpCop$#c_z&%eF4gncFuwS_htedcO6h&3#H1Zx0d>b#SFU`j1ix_!uu*l!qk0 z#sizerot4@9m!D}^d+X;()a6hHQ{Xu^9ok*J^z6yuwin%m2vfh!u)%Pq%QYhUf1~h zpbGxl+ac2}E+Sg(4B{{Pf8Oz&+C`As^?O3MR<6+`@exNZaeaAZpGlg|yaXzHe!xC; zbkk4nH}9(Yt-bb#p3mz*PXtEUa|;N6ExqA_Xf!WOzyCSeYNUe$j1;fF|9i^}|FT8y z1)k}u?%KPRk~t(3Im>t0oeo8&vY^o*FXptgJF1mFxFKHDw(!!$a7OQTOVwa_ljvDJ zHo+qwhZbPcTXr=SX9V$sdITZ~_(9w4F5Vw1Z#Y$-zM`w07_>Id1igDn=bX#pwsJ(- ze_rN_H;Xnp6oA7rk1&5Df>e)pvFJrYR>_fK?tTjt!iI*i_t3E|+P3MB9O%<8)j$Rt zNyU=38vcOH2r068@7N|5)+3-|Vj2cOe83N_-XSKgSm7KQblZ9jAm8ZbfOBJY8&L)5 zE$hk|W8%=`H(C~6Iw(>=z9;9BctQTl&aR!gn`%dK9ky8I%`@y#a3d$cKe)R|R1t`9 zXXsnqAOOF-?lp~~3ddrn+`ma*R3;o@=6wFVaoJ8^Cp7GLRo!=f+vOq}xU*I4Ij30j zwXKow&0>T8bu{{2T%cPKhaC-{HS)oH6g%27gbVXyt$aCuH|u7E!3ib=C5R2?Y_+AO z<6(l$uB8iFbPi>sv@N-&Ad!xS#gBS-n&{+w9?X@ScWpmA`oiKH{-HB$g<=QJ?0}^L zOxk&ie~$b*u6LhH*@M>K?725@_S`$eyWy(rH(=*DScBoWJf(DhSRY7mZ_i2A-OGgT zN(e+Ibxs{h4b18DucGVkH zqkVZV{vMS0>eylY$;cXb7;Hu<@Eo#W6#lOx4OIRg3qohP6!ZUD68`gGW^0FY>Vm|B z@4*&E!0jpVQKc#jsX>zo|Dyx$zL(%0lwUJO>4UJg7zQWPGU76P@oqi1Lyt`rSGd#w z@@~J-;X}R};-N2*BK?P%WCL>p9#ORMaP2>h3f2BH+t=UpvXwYh8yH?G@s9GrduF4X#SguAF(|BER>jvG$Tmw*ce^WbuV38(xmVv}4HB`OpvR z8%ZMv*=i%wI9q(4a!pfqtn#{I=n?OhpYvdMDOu=r+17ksOD=OCw6Vv{lG_=1qMH&#_4h3>6!S2M(oxgBTLaPK+~OSie_zurHMg|C#Ccwfw>=DZ zsQ!erW9KpIxY=v)yF;eK?u0-j!>Uetj|dma$QNhB^(t#RErBnRuOnVfke4C9fDbi~ zl<-#g3PzRf{MCPsjsFB02|rA)UnD{tu4G$5h0XOo^6=@>-0FA5csk)Af59T7?YP(` z|4n{UDjv9W#lL?ZRuOQ9Q1!rH#}@jVv@K4QUL>S<>8~Q7=(~W!c!L5n*4%MMgzLQL zdLP_i>!Rw~buP5Ozae0`JEmGa)vwR>St{B5GZ*~sKtbOVZ=luz{U67M>nGisH%kj! z5g_LuJVwY4(G$9P+Yq7q?cZvWCDbeS56J2wpTwneLynXXOK6(zlnM=W=jo8SM>F7E zZ5#T&@Z~0a2~Lj_s;d#cUJe9LLN&LxG08lR3bk`)soLzfr}!u@sL~w$YZ3aw5)~j+ zrM@OXaJWG}hD@70G#vBW&c-S3tul}>GaiOP+t4vF=RoJ)yuib{uh)k~wk}!$%S`Im ztAwW#RAzi-HvJIF zKV0LKZba=~CuF&s79UaX(k!9RKgoQK8ilAG^T>AF?QVV@xvEd37$5Bs$U~wUI7l=m z#h?$$m|!cO;96Dw4RQ;GxsHaHA1^?uche%UI$)UgS)|m$XNJ<{J0K{kSgw>;r;P#( z&Qe$n4G9}*+78k&F$c;dmxN^r%j2JV!xu%MV_r>pVA8JT3+Sg;C?(D#?!8rCGI_$-vuOXWSV`JpGC^R)z<>@Y-T9Ws%l^f7 ze-C{+9BbA^kx(1(fiul}+-K~MVU_vNEQf#0ZbMJ2VW{E3i-Ly(0a%$+|ZG17(4OC_d2 z9G8GK=B-$2puMsMD`pT6t~7IT0ag7LEahcdj<+M!AjM!jXW`c2d@bR3H4?d+6Temr_71*zpXLtx4_CKES_AW%G}V_1w&=?9x`GKS zp~^P7qaOXtJXZ2Sq|yZI$-=U-D@oO!oYTF1bjk*84%^<&u0-|HAzs)&U)Y01RQtPB zh!S_}oHtS=p@MX^m88e0{*_piar++HL;ujgU$RJ966@9~4 zVnsGdlrH#`8-WN+3GZ~6gh_WBc4UOsHs*GhbDn1?va2%mZW!H`C?l#x{nw{B=Z(17 zgl7nl2KjH(CNS>F#ms$-v=wSvH;7`J9mabZy0>s4{9aI$5n)Di4JDHWlh~c^ccB;7 zjG^$_j%G0(Gs#>_gx*&gE$-&oTzZ1ON9He9ucwhKT`zCfOv!aJHSrBC8)pL9>2Cs9 zVr;yNXwfPQ49W>Pigx^JG_LSLvOaXHs`Q~6G(w#2Lxv{ee(uhl>UO2d*U_c+Uy!$w z@s}0Bz{k^QqZ?+zo&!?Bh7#_y@XeQxUO)FHEho=0PA83o2WuxNv@vO)hQ9^Y%OW`V zyOh47AF2lHH$iaeNJ+lZB#n!P5BGI$ETL54my{R#pE!|PJ@nLE#ZHXSPWc(mkcIM* zRa)FQq;Xjcp*QRy(sIdC*DdOgr_-`VGzHzagK|jq<92ugbPZ53@36aJL|{-u|8Itk z6>sYgQT4weLb`kyOu$`Q0C-=t!Dg&m0}nk9{i7BV<@7Wyuc{hel23LMy9_+k5G{gC zpq8FPpBh-V%%i+d+1se zHn3=wusXo_wuUY8_$p@6k#v{ntmL&$R+9%5wvpBIq?|Z zM)Z}2eYr10wJ4gQ*`J3*6S*Y|Kzopi~R^w!UF8`St{U+n(J5b)y#;?W(XuvJ_U zW%1Q?HIfje^Aa=A&Tn_saAxE2HL#xCcTao7?33$jy42ZPi?g|zr0`&RKE0tFB4r?} zv0RtlGbO)!FAlz#v;I>0B)8ZQ3*qkjvQesf;K> zpNZ|KaW})GJO0PT6?~Oi`7&D7X=r**y{s~*eaJnFX~~Cin2$2)9h?+qL`H6GdDdUT zacLm~`1XRZ!Edd7-l9YEycV^+3?2^+bn%eh?ExMqc%sF-*-Ld@55s1`j>Yn14@+7j z)}=y*_$K6B@6wzhRex=uHIj0r@NcQrd6t*)G{x77_Ttaj~Y`*U{ae^q+MS z6v5QpwRc(@WyPs|$_C+o-3o@mMA7CrWY%92hfSNiMui3008KztqYo3eX?WOCtWoL# zK3L;_*N(QA=i(^WBMBui8o5d)00ZU7161;SQ4ji&3N$iVobCCs*XzS1+{P7n#6-O& z^ot(?SA3mJC&aXIsjR4n2PelT?fo%vE?&e?%-Dssvo)fL$U4hi&d0=1J&R=>Z7S6c z{~{&JU`(W!Y9r#qg#Ne`7M!LkxtmC+ia(d6TQDt0VS>#zZz6-EnI z`)?@eva>XDevj1!`mt0txW5AFBC4*kE=eDlc&1>fN;|ttO_N( zv=IfFIoSay+Z8_J$&2E)m2rT&gC?LA*OzTXA393%6_OMWcG$WXC$o1{vlB#Jm}*M6 zQnOrj9hd z&^sdt`MDtQkT;7h16%M~VNkjo>{jEOBgSirFS|jwDhoUw`zfYzXrwl}ji^$U0eay46kEV#xZN*sC-O?qN5itZV-^`X(t)6m*Z81 zy6X>oQ+dmcWNYJ;+aw(|`;Css7b+N!(gCRI_4Bi&y5-`}>o9cOJ$rKVO}_QR6rG;D zjg8=&X85yotETMsDFDBg^`BY%59gAb0r#eqwkn?cuKN#hh*lAV0p}g0$v~Oy&-zmb z8G-X!J3R8Eh}6W&-YFGQTS!myq*gI}1Q{!z(N>ubYVBvAR)2#-_&nXbzEwD~z_)i+ zgi&nK$Aj(?Nn;{DWJLz@{*nTEa#y}?%W8v3H&Z(;Qv)#6dwGqGClV&FV>2sr|HrkBeJHYf3kB^6Z70hb%4Gm z3Sky+uBbJ zk}DC0a80FbVKPQ&kv!Sh?*Xhaxgu5oj0k{@Em8QG=TS}U3}^0HDlab7neSA zv@~o>l_KM4=e7FR?W;l$-wfM#`%7b1X9#hBKli!aO`+)Klzg>mDhU7`b}du19S*np zp_{UF&Udw@g>a5mLH*SCKTKh##K(4trjO?$VXjzI`9BLWEmr1G$*w0m?~SW&vs%Z`5{Y@-G--RQtuSBgY;&7PAZ;`av`1mhO2*UEP?&{^0vusOxDk_T|gaC$don z*hrs!|NRtlg4<7oyS@U~`~tGQoQ1YZ4HYQLFmbf9ZW;H4sw?~_+tV{bwKiH#UuCJ= zl$tk0sIPinKDFHRXn4}QYJR$J9mwmT3xlDeswNK(n%OLEEhjyuWfIvK$L_Atyf z)XaQv6CcTFvLK7w%KD7y4TP0G|9`19Jjf=&N3)erle&F#TI5r>fpPk{#e`%owAnwN*PCL?f3o@4w5@R!*$1upYU?n}pEs)&$i z%-@68?@paX@88_hC)48jCHQg%C$m6!cYF%_3pDt>2+reCa;! ze7(D^z!dYG=Nm?Zedf_}n}Y=9tnbIO9pLm34ewZG$7n#{SXl;tm2)z{?X9?B)o}M! z0G`oewa^EL&(G-sg+qaK*WJmOEhQ>>&J0HrC%%&nLZ|EdfBOB5?*4^RdI#b!gY^b( z_58l-{d1nax!Rc6DSuo^nF}CJ!^UD58b2Om#+!zn!KVmFd_l*wNr+>k>}0nWXdSUp zJSbCBaGfl8f9RrJxQn{5P>{RRF6`x~>UT2@^}NbN^QPVt+6YQV571T+!ZB^G3hEcR z4|{82^JpHm5a_gz9%@jln~&q3cDK@5`-D`XX)Ief!GGuR>77jcl~j(P*{L*^)MG|s z`DA$HC{fMrki?@TVHhJKNt6@T{Cj;kXOp~@x^~zjMWaeBVcZ^HKy`0Wq>xK#Yk}YK zrVBHc537^V{%`b&!QL}i^eZ#PV*FU^bXhf~gpViD92Xf>J_ku{1)?M~IYk#J?1Cu+ zMJMuvR$Qr1k|M5Iqnt{CWmO+`aag_C?c_W4&1kW9aAKNwjACL2`Fi^RWtIC@$(h*n z0kxk)xKWOJw6Cq$2P?yGEyBt1nS~!FjWXg+!HQV*i(*MT6^4tGrg$k2adwt2d7Ua` zqU+GEJh1gkRZB-bWJC0}*>n9pfLS2B(M085ynX~Y_Q!EE3cv6tx1Hx~sT!Ep#5IBSxpy)>$xSn!Zfqn42H;ue@K{Sk_u2O?)v@RLw z^godx2TPZBlrQ^#R?A8znd12-IcONKp)S@Fh<3)37{@u5@j6bf6P;oSRCd=`M1{6f z8L%;&%@q$7F(~Of+G#%bt-on@K>?DjzA%3(O^Y}~MbYMswne+LNEc#|2oV6gTZ?vq0R@3 z<-}c)4TK_dfTm%Cvpt+)*d*OQ%uOkH=XduZlvw73mbwhnOqXv<=8!eb6UV^(7{YJE z))Z%?(&|kg-39Dym58gH+wgAq!#e#K-@J9G!4Oex^0z`}j+DIa%QX zIkwyo9HR&RmIX5j2XlguAYx%wgrV;tAHtn-77IERN$ps?%OpB5wA*sWC1C0URStaf zJjFGXk~bx0{gS?bgOjeoDs9^#2^@q0 zlvJajIj|xGvFzPh!P*Vp()NtXI)65)3zSpH9WTM=Uwp^&*W!%OCWM?(OE-_$T#uS~ zv97-gl|05T;^8@zQu*zg=d8ICM+aaBdG1NET=T+g;O-T8ZaRr>1a7IeH+8&`*%OT% z#q=?VgakTh81!n}RTLO3ZQF07%YSZDaADT0C4+k@(0Je%^eZBvkHk@P_EFoJPH1l>H#!mfRP*i#^Ij-n*uSz^X}@K=Vls43-Wcu;UTD^i(NZO zGJ85GSDvJvRpnT3^(4i_3}Ga-;2p<^pOBj_E+yr0?1~30y;dhK98pm#zS)fCMsDmS zFf-)x^DmU9m1{03fHiFp*>DQa^`SanwH0f4G?mRy<9@~(m^JkJIm&E|h}gpA2Kw7E z(}{FRwCe^-->PHgI79Y_S<;fp97jyDz|tHcztO!p+#=J^)B%yoGL2lq2~yZJ!`JBR ze-CoZ{|vIs<5!P=ROd!na1dh)GL)lA7-R$?(c$5OM2xf(v0!8$B|tW-h_MSsfXp<% z@`?GwOy5CbXm_^Rmab};tG5*HRCHf7H`|U!JOk#X9r9be0`GQ-_=*Su)ieMk9~PSI z?OjuEL1_oVlSJ02U4m`0`cwXNSD`xU(3M;FSE z-aAa4w!~ABDNhr`1N%{g&`uV{znFJhpz|f;4FS0mr<*ImJ64=T+5YXFs8gA35V&*s zQ>pK}_5zyOX|#yLXV_Il2U;sr=ev7Ne8d4dSaaU}p|ntqh*)kjSZ2^{UdKDdL{Cl> z$>(J2{b{Bpx%Ao;)5&c~=v*crdCZu#t%PgIV*x)`xfLEmzh>tNDZ#+md8Q=Lq82Yt z@vI-#guAuohQr~kuSBp%Q(~6?3OVyt?a{WKJymGPaio#M#|c$6lrDZuiIbb>ly7LeFiXS2}(^`5@B~vNbO0 z!%oc(u6qd>nrAgFLT6RKvmV-K`ELN=n4(_{Vf7RNGF!@0P34ZCr~eM%((x^ufkdEdD_xwWKcQ%fO& z2j4eWh0jb80w>E8-Xl-666^8TVx7L<_L<_^zS>_a(XfB$kxild?M*kFvhFwUMlH}p zU)HN`1ZUY8QXaR|D>ku#>Gv&Kx^WPZLw6KO^ZGNc+sJJn*(u|s9L{S--7}*-Uh)B4 znaB0~t;$7!ca^7ryg=~uBh1NZuJ;H_>A>y~Mw4tjnFOhp)~qt8R2o!idZ-zn??AEm zSla!c5mgK(jD_Lh$$AZ`AyuO(lCB4I(ZJ(#HiEXLO4RBu%KTlY`@B4&3ctKDvR)5A*{q1+vhtZnK*fDtiP=Qpfiwwo+s#$=G2dKCyU{aOm zIx1L+`>d(j#Tb{Oaqet-XG-`iRJ3r|)|%@kS`?>0C=KrHe#|O2E7GZ#96?Izb4EiC zB@%ynPZ9Sb31RBK@%M!a@P)Gq)wncquR^t=uGm72|2B<|N8RyLC4(9Z9vWp2I}eC7 zpG*&|=(N8j!6)IcH)c3oR_3b#=XOO0Q@xJupIff@ zM&K3i=B5bb^s&CyHN=vY^D+A9E}EcMiRBP-FLP9Bgnbgt{nV3wRg!nw;EjnDH^b#d zTncmVv9p}1KJyn<(H zS%b#TWkbkwS~I2OnqJo-hD)7K1121nAa@7va-t-|N*CC#EBNsaL>9OMPv)l3OIBbh)^awYR` zx>zVSw5H{@JT|PCi#0^{n_)X*LbjtGJ@$`WRxz~Hg7h8xeogQ&)*yFw4?rB5d7_Py z`>K4sJ*orFi0}}%-Plv5PdngqIWT{@DfD`q*bC@Rq8C_63yP#&1}fu_dIcnY9HuaDr3Q~x!?cVA_OGaZ>Fy&a4(Ois4Z7`& z`koF%M4j%XX4yll3T7K3=C9vt^a$u+!`v73=4o-N;r!FRKjd5I^7U3OTn3aGC$?9xz6tY&_hgc99KXAL2Je2o_ai%F z5Sxxvm?`mtQ9mvW+k=4mTcL3%k$fNo7Fy#DYH(b+S4w%ySyvvIdv?3@Mt$_Rn3nYa{15N?%*KkdT%@jF zCrRdCruVq~>;n|?l&dIfw!cyX3_yL}IhSLLl1><=!_QNJ+B@M>KMfdfE?7 zQkPsvWdyu(LSP8nQ5@yb7(OdiF=(W+B|qB^BWN87?^2V_{ zfRf!jCzr46IB!hmQmdBCy}HPf)E^fV_DJ{#m8O^U0~;|?PHmhcq5-+<_eTCZ9H(Lz z$GHo{Bl~wnxMX`*jaHPyTMDrcF~gmUSmiIJLe1zfbjPop+aMXRQ~8d!JPDM_14-jw z9^VZn4CfwkH$0x5?qSnSNiz3zYdCGK=_QGMNbtZZ%sKSeZe zPPYfgE{D=w^M$8FryfR!)f&L?3BaW!gL)bZvSO9hAg`XFQ<^|7Fu1TK@uUI6(!)V* zWF%T>qq|u8xN6!Y6xT$HyxyBAsK8r_7U(VAvMTpZ*l~%4D(Dx2Xre5-f_e}6WU<=O*)+e?qs7}@8ZklLFFr%R74*#1=euPmi!9ph*alVjX zd{4!Y^el}4d=tk7yLS^QPsAls^v>#nuRdY_D5r9&u*XpGO_n_BTAOmq<$cK;LeWph z2~dQZ#zhqn@4nxdqmkb39&BdDtGu2^OO1_QoIjYx8=`x*Y*V6ubV1S#&K}(lLy3lR zi8KS%=E2p+Qh_o1{?G^Mx+~@g^V-Rsb*C%-_hn`a@NFec=8~9TD-iT4V;D?a3KrL(L=N1vqO1})si=+V53huP^!R_g#cbNg8aH*U{pD>o z#1wdwCX#l2ZJqI!je{@=3l+m3ZK;OyR;5mY>_|@qZ(rJ}X>8r7heS$V1y-9{0)P74 z1QLUpj;lv}4p)ivKLbjDo0=o)yI6;3sW#fdNF2wz&J_L1i&uzMBqFQ0jvPTF;Z zR6Q@`$_G{)W&exkI~1|jtRwFzbzYaB|1SyE(m>b~@m@-7Q)wSf{9>yB=jGT?XUfHW z9!n)8uOu;fA6fX_H8+#lyy38T(}FZUGSN5|F7L%5GRxWV_%j9`9|w&78e$e**^<8B zTJOCIdL~;y3L_+R_eT%&8AhvTY+D1!1`n7E#v)P79O1-)XUQ?>##;r*WJ#91UD5Vp z^V+q;Y(3J(YBR`5qz>gimt25-E_bi;u|9escC-LsC(f-o`WqAUkjDL;C!gv;|43$L zX5_%*FW3{9fpHH7ABlwS-D%!1QM}i8o<1Mm?IozxXlp+JkFg%{To8ARS!b9C5+Y3PK6&2T)AU*_b zgc!0X@l#d-IPwITT$v-FkT)QTR13eQrxwQ6cu z)gM}!D+bi}Kv7ngxnoiOr(*EUj9=bcUJO!GeavVN^`>Yk=Ek@0X~EUcv)_(a&b2D7 zZg1WqWVm1AxIPaGI{HYVpiX6P;&pT8M#|-&Ty4NSvJx9E1{MBgw4-$HT^rpw+6&1NQjFNQ0Gh&MT0O%NrL*|oK=lQEo z_6_w~G;&y$7)DbNn^D*+(VzJQf%?F$P@DqODIWZ39!y=zJ~_T9j2{|Q+3|{q7LzC+ z$c#f>PY%}IuC#1~{`llm34f5@*}_;nvth@}H=A1jGKoZLVWh|Ft(p_*n77obYXc3W zca}ES2^0IATF)Q(9!8W_=U6+5ZglDX)W<$$s1xw@5PU>}z;m2aD>S-fr;Vq1WhZSo z*ZPinD@Ic!w8&`CeC$*G#}74Q_C@=p7=E_}`o`++SRQ^&`~=x~WM#QNcjme5EiSMm z2JjDD%DZYPR{c&=Olw0uD=>#A|8XE!&S_&QM6GH~z15 zm5Vo-#JY+8yNf89n#sn;GdB_fQpX@ybfzvWEm$9bs;#ed>2RZgFwoZA>9o^{blNw) zju>9&4r5Eom+1?-Ua8;zjs7$Ucy=4Rr1c};5&O;2Y=q9H;Dx|y0Tmo9h7u;kGh_?a zrJL0Hq-as5zGx@`w`t=gl`XnCEGr6iIStE+v)cE>wq?&N9{#wO#H4|48l4LH9agzL ziLcAPetgg0A)w<_iLSG*a|#i-V&ve%cdHNzsyDNAIDSY-n*eYOPx{8V`uZPwi`4EZ zXyI@Ee0lD=7-**61&-!=O4fjHB;Zn`uayQL^y2sC z7~LIRIAFtWmH#x%|M-)${iWL$XIuF+_Yc;SV~^^g-{(x^zw=gEfz`F8AQ)|K`w+RL za^=&z-J3y;X!cZGny*3#CsaJ5wWaJRB~!w`@)EX0evDBwCI1qQOuw#IbN9a3>+)XB zAHHiWe5O9I?r*s$J9v}%ZS#pzoWd1EM474hds*s;MjBq29hk>B;SHvLxnb+vcNzRs z{Ek)inH~YS=0LT+Z9?1RmdCYml z*H%K;k->daOM)MimBEYvn4PLPIA59mcvzh^XR%!hUH^@#H>LpE{A%kimd5+mtPIwZ z9rjxtHh{ir{|M!>zZsb$*lpvWU_mp-8!M|DM>mA6fJhgg*=`#xUZ$0ZE^RgFC=*pv z(A9k!N>!)=cQI>8mdYd$giB>71?%?x>3c)c6`czaj%!fD&O1sgOgPwQ*62KgjPL1> znc98-?9flRI@Z-67w~gAHTzn{X0y2Z2{sViYrQttV%t8R!PbdH&3&O7*Ga(Ew~BL=WD**JFeih73&hPQ4I zUBl;5smEYf*R7S1NztU|JJ&=tZ^L5N^|l{Ey%C)E(lEqG*gqe(2ffs!q3Nkc7Blf% zlzwePzh@qfpCT@D9P~!&4bQD|$IQUH)GHU9Qx8 z&UX8@*2Xp={&t{Q*b(~!tRKMx)wGL$(l>craqAodl{~Z6A>)L}e|u}4h2EF6a=27} zzc=Jy`z_E^1T+$V?-uO4A?V@`3H$tUGq zIG5KDQ{9#c7vsq(A^Ch9weU~jN;+p|g=Sr^PoQCyWsFTYpLI@)0M0v?jJ>6%Cyyl0eb0&D z7~enf>`*o_raqgl4f2VOQEB%UF>lrRU5Zp(6EOp5>Gn^Dk<=r36 z3f^VY^5s(&SPd1^{hr|(_F_rVSMo=4#-I$^%qMNJrp{V0o(qWXZMzlI{Z8jPtBx$1 zYSr&0sQ328i?es#7XW|MY)m{Sj0>kF6G#N!8$(6Yc+d%HtD4W)XqfH20w-BwBcSyH z*W2M)G~5?#7QNrhtx1|Mu3hg}W5@Q8HX#C48Bdy@qPtzY>^nCSecFfb0bph1c+@bLjkVy~$lj%BOkFHP<2l z4Yc%mW;5=}c*O>!g268HeIsBHdsxrq?Z#DL@5Up0a;122=OwOtVN)6{UB zj}!eYwzQYjS7 zC)SwaftptPUV^J@PV|yH#m{`j^ZOvu=dDA!GM~=N6WbDSHRdTvE=Ii{=}kH`B}-OH z9+2khWw1<)ryV(~kn_c~NGjs2(nQiyqu<+mO~lyu_!d+Iccp z0ZSAqO2rWx+|2?!?v|oN%@qKWth07hZP9reZN(hHCqmp)fayq#C^U*FR4Q)f& ze2WGIdC@wy4hR2cNM-;75r%6!Gl6*SVsXt0+bu~GF3bDG_6 z@vnJZOjOrzSI)Uyxq)`#SzM+!Y}ZM#lM4rJNJ?JXa8XJXbicd`toCd>vU}z9vso^| z?PIku_rqQHMdPpn{IFY6a!8DIt;Bg)$bVReX4RDV=2k%?pw#*jP=;V*dqToosh8Xp!U(u zr8O|IiI-W1#)Ze(_s?8^C+7cr*VA!MNZzieOMXlF6Zm(yHzI=^igBoX?)wmfamj=~ zjOGX97S-HtrQ(vu4;{)1Qi|WChiuJ^G_MYAB@m4CN62sKiGA9n+~(PL7!4C0{WLPB zCo(gOPNNEVxf7N;K&r2DImSCtVSn_8Hr05xdeCco>T;sK`Bro5iUi%SWl2Ji%=L>C z+b9lSPG4^JIEBZS$jBSrHCIMd*G9jRg(W7RU8nf0t&znnrtqg&o?F_P0!8Utb#4Lz z)oZ*m@a#t~eCEfQ^98FqVerf3gdgv1`bTCDZ4zn>+wH9{C8&FKN$JKqYq38cQTJp6 z@}M(N)Ao&5v=hH3^+&nd8sU_p&lRe_&Xn0fN}6!`=^u3KTtj3oGAxcc$IIoz>lD$kg~9wuhs&C>022T6Mi4XnteU2}>v3}NvhAN z#s){DslLY#(>_yt2)usCgE?~u6}j?9Q0lKC^817SM+MdTvXkgx6`Y^k z0dY`Irz@|mvg>;rXT#KzN?Lw$giI~J_vFref0Q0UXs$NsicGvl7}7M?HgVscvO@6V zhg$XeZxYd)F^Xzxl8yVIRgcWXg+%du7I&k%V!y?rt8K=QCTKJ7d_SqTlT5t8Z-c%( zq;5z4cbuD|-(k_7oAL=Qp7s14?Z80Fv}oB-+hfzfU}PLRVZ*n*ULFkZsMsfE!zoc1 z6N4iQN?S*LND&WdbKXZga<-O)R>S}H0ub2WWI%t*15m}e5NZ1QcDJIkqzHjaBiY<1 z{#9rwn_6-6t$|&Yai@cLIf*niuzHBR(55Mnydl2bwN8d8_-g8zR4W+U=nSv;2&!ZNDhT2G?trDR}` zBwtdwr0H!yy?{XXWvl(YlHN^vYo3Zj5Rjb-*C~vECi6;|#9Q9h5Kw(`;mfH6dg&aw z!~0pr*|jDGWeKB1@ao}VcFx#5DvxM}pd-d@mjj`zw>+G0v{yKFcJiR1v~Y8ZHs^+B zj+}0!_?l%o;|9zl2~qcl-cvm%U-e_mxp>zzHEj0-@S2z2bEh>Uu>n222}*XhcCmFKYcVe4+AM<{ zH0S5iphigfrf;5^#3LQ>oz^;}dvhMWxGlT%gXnkD!c+vkvej8wX+9zY7#k2Obko{h zLP!+k_nCzqgVG9k+erCB@veE*pfu>BYs_G_wu<39)JJNAE?-#2`t4<(T$klaSHrK#`BV!dw>3!2cBmEZX7~k zxq~E191@q4p5%nn<!D+Qk-a6FjSenN!x$0N6~Y z?fb?A!Ra=Cq#R_u%xj%;bpJ&FM zKP1?TaCV$`{62Xcimu3>_4L?!e&-ryFOq-e9=ZHWxhpqaS$|rKaTV8ZA4utcDD`*; zf9`*hJL$B$j^T2{BSB!)o(L$#HL8YMbRnE4*dNqyHTQz+4bkD z=4gbCty_+ihrly=-&1d6<5D*|v>K1no$58l>&Hf}$C!w$r@_vKXN7ETowZG zz!>lQ-z5BNIQ3{2{c9*~7H#)*|L;&bi?a|&T*64neG?dsD+2S08#sw(7l z&UC&s$#>Gs;wRNcoz8|nmur_3&W|pFf@5#|*v41M4JeqL!P3#ZIEMTDK`g^)_CbOo za77+^BK6=ay$+|3mV-4;F*_A;@pGCh^h{~`;6M#9li{KNQYfFhN8#lAjsbFM>jeOn zZ6F|C3>e<5w#gouU$jdN0!fNF4W#u8t{`HF-3SF%_)3LU6qMc(nP|;2DGP&;J84+A+-o~B=~+gdBoodB9hCJnJNa*G|(3S zUGxob`0kuC+OaAFw6U<)4b)topI3g|xg3q_c6q$mxF5M(+_>mi-uxb4d%(q^tIkhI za>p_eX)}-T88)C9N9F%e?XTN?cf>}r|Jn_g5cue@Y(V#`t;*f^u}|s&I6UmX#RrO0 zw5T5YDeOA9WJ&KJHTUws39fsf`Er1-J5KudE_Aq?2{n$oN-+A3j545S^beDZ-e)4A z-1fZ`q=(fUpWcuT;HrqP!&0fKg%S3ba1J}nCclYWZ4}O#3hgLHq?>pJT+30{R=k^Q zu|;+Wk$U!MIJTTLUT@>GWM_NRR7FLvXGP7H|0h?zHQKPS93R;ovtO$d>=bmJYAjy$ zr;WOFp>C~EubT4fci*a{DeDihUf;88B}o|8eH*<^{?GJz`=9CamiQdyzy03-5$7f_ zSl!Www7*o=18N#tk2btWhGHz^DgDDjl)Y4 zPSdLgnOhy`>E*!<=E!FXUPB^Ja8ihHC&ZS%L>PJWTC|Uw=!|8xV+CsoZ_fBSOc9qvbz?I6 z-Or<)c(S%XEIWPt@BkXNI306Y9QgI832@2elG)bCV{&PO>RsIF+;l|(N&4Qk<|jJ( zWe5-@+_V89WxIe+5V-oqvS&5lSg0c!wmpo&Ze--*@nSD3+v>{!fNHIrtJCrE6n;h$ zD+Pu5>z|+9FM;|P#%a)bRHW6Wm@MviJ1*S6(t8;>#o0sMpB64*{-?6T7IDW$G^Yy_ zPEL(BPHk`;(bx_60Nb!StkXnlz2&B<{LPyx#^hwQBew0NCov7Bbn>~VBkZwuWlqmQ z5<{M{GJWX`?^vg`MgQ(Gxom<1s7Zze7wpqV@Ywq~RTpenXuX=-_|jehH;DMw~l$x`2MBVlzVwBqwzn6fG}L|F+1t+RpWyHxM7 zU1#=H5zs`E)5z1ewVQM8Hjccg7WjorqMpas=_RRkrx%EJReu`w$G!E^{~0w+g8s_L zE)>=EH~&r5rxvOaGi-Jd-jP|PFf2+|mAm==l6$8fUR?6CJ_M2%{JsYS)M7QFaqh)i z1qTQ_Mkx1h8Nw)M8P|799JT^*Yqlz&Z*|eGzAr^sX+^{?zHUt`dsbQH*Z^;i#W-`M za{TtDE_dc#g;AS}nk4Ny!dRmmbqAZ&tgbm#C#+1HJ6Ypj0 zMj^!=x@>cU)6uF+9Z%`edS*ni2=h{$38W@oqTg(=pxDsiOnxJ1Wgk=zT3YlU?#YBi zH%)KJkZC2>Hz|yV&-U3c5tFBt$+xr9N|rpon%f#nY{6l$K4h)NI7{NJ*Wj2rbIbzk zbzbq?1^9vQ7pk9YWitGPVK^7E$E9w^kY8VM!_(k)y7?NnpLi`=^acREzqT^)9bxF0rUC8*2$?rn@# z&>cS^zp<+Ju~#-dtEZ1?HaISVf9F&?t=yQNZ^L0~Ajn<53UrO^5*xG$i~$d6$VxHg z&`djo7v+@rk)H(ld{1Y1$9wlOB(i38y7B55nOboI3!4IFniA&GBHlch8T$g+OjgR# zj=D4Ev;qFf*@f4=Q=fls;C=a>&n|L*M`0MQE*zjL^*0=i@Z_ZOV3KL6_e3sXRUOhfKTL$1p|JWQ?j%N6L?;tYtn@L6&iAKj%;bf3#HLm%IsgRZah$ zLm5H(xPu?)OLbt$7KoiZP|H8@&8umf?OSgciMI{C{{@F&m_Z$WQybR&UH--eqy4ea zGJji-j%AYR0=ed*#6^?SEQX}7KKo8yYjnZ+Q|<78a8jp?vpNVads8hm^Rw+TFBG3`m|IM1XcX zcDO$1J8hkH*ih9Z^{6UKWrcYp>bjunsw}}MMJq72)t;nKB%NiNqiZt1)WjNBwoTtK z5cX>G@Ft&CA&&!J3=FZuBr@sHOQ$usX#Idi9&0)@i3c9=t*eV1bm^Xa0 z8kywsg;@LaZBJK1=wV^`H-QgH)Xm>EM2#2PC5`9XCC`?$Z|`7iwPy#`axDvAFyn|f+OP-F(h>3-e?rPWG@Oc2P1bc{Az~GS4aC-ctJrT>X_S_{xHuda`B6L#oX1~e-!Hy~&*ZXd zDjy4_2S@UypSo#oGgLI2O-T9zII4ffJOPl|Wmkil!#~`Zr61>;j3&|ShRl=DBi@Pn z_8biuj-xjL-GHdEy;0bwfNrt5h*#FW*1b%PL(Jzhk&}=Q5rXD=WC>(OGpPvG3-r-O&_ACZY$foh&p@4eZw|n<3L@*(y%oy?hT5UsvX}gx2MkaKOF=uRT^+|v=QfP z7qS}{Wmafs8n7yN%8tmf#FK(QS;m$hMTh>92Umi<*Z;}5|EwuO|H00M+S^x5wr(5+VQR-J#}9Ms5#UHoGDk1FZ%Jb*h9V(+jE5O>$A&&PP92VV&*=H7 z?DLVwA(0PT*=7CQjX$kEpXUwKfB)0A8e1Ds506ab zXp0Q;$u>D|W6X=HhSFEO$xOuhVu22V za$z*xj)tDsZH-MiPp&FS=?8jApdao7Yz}_#L`EuWpR$;2oAXR`3Z%BCddO+_Fsjd( z)b-fPF*~g{w9j})rL7_ks(e)O{r>}CX zzGffBb#1-&_vLy|~7PiBUo##vs+{@*39-<$fsjo^sJ z%_nqf{kn;n92N*PX2zYo>~FtvmY_#yi%`1y!V)Xzg-!j@o!83L=tCo(6tFp{MHSbfvKX%B<&X~ z8(l0H$BzBWGt^O{cWay2f;koKLd&Af%H^WwRZmH8E$-U*2lVgJp6FmCOt2E6B2wq8xW@sUm}U6S!kE;+A`=4LVzk2gO3@LS>)yGGMrxaxTRiBUEUc8 z#pXVQb$j}31C6g4DEGgh zcYmOIM=Sf-n!0`vgtN3jsu~^};f?Rjy_&UB()2E_vAI?+)5!p?@)~*V`U(HEE=|F$ zuMb2X2{e4OmKXV}ZGxYyfsqu@%l z1dJtIq8p$NB)V^R-BjyHmzAutJr0z;%esza6T%2$V;MSzW;W0!O$gPZYe14OqLFSI zif7FRA96+&aOBHRmi^p1O>j`q{g*>+k&?b+$fRootVi~U-gw(78!5frSI|8QLnx8Q zE)wXpI}0lDqa8S!_o;}f?gYAh9gNN=+Y^;g(jUg()iqZG)|zG_R&8|5qXqK4C#WrA z7Zhph?($AKI4F*jLcyPD3`Im5&inJws18khVU4RSfsgQ6ZiHGKin<8dl{*e#dwp*C z0!p*$&#*;>J)Bu>BJs2Zzfc}-hCN8RKK7VEpTR5+Sut#r8A&IgrH5h7tI z@mIyqO}UM9$?BKcgOS+P`@^wFU;luoVPT1eAgB-+8-iU&=hAu-(24qKs$4NiXx>8o@qcM<54`_0YP|EKsxSWwf^P;MBcKyfrri(7%nSb_ zQy>-fi}zo3u0aeTx|3|EV`QclX(unCWV#5%Xqif%k^Dg(%^*E|>!@@NT0k@C!ACP_!F)c7;PF!P4|l$pBQYn(r9j&3@_as5f9P`*zYOu?Sh`LUL$`5Y z&|=uEXw~<(+91%lvu!?(=EMm#OzO9>Tdi|Dk=cZz07fd38NWZA#Vp|aU6t?#sfZxx zx4a3^`<6D9R9M>A<=C%ZbKtN^=+li zk!Xc?DY7mEh+U*7yni4ocGHg@p?O}ba zCE0GbC0ho+gm35oJ{eh6Irgv(B^PP4ZY2uyU`{|Al0-AJTfc$+5!+GAx?MtG`yde z|3>Tz9n{%Vw3cbUzCPA62~E} zZv_<{%eN=dl}2enIwX!eC1n9I^ipIpV1P2ck>4?vUl_MmC}9>5XML&f9;z zoZzlE!gu4i@X55qTPPghwE=$MOf6%SxOd}7kB;b`NrSDu8&%T{*86eirY=bS1 zpB<9HUR2xc(us`|>ciq@A#x}C-}Pvg&b5P?0?Fv=NrmO~J0|{QHY!JAO4S2(>(DI9 z%BB%7c-ZypT~~r;_d-9$p|4=r14bbA`wm0f>dj!FEbz(^*eZRC} z5JcDX{?=7!tQO4hgPL?XJlgwT@84_>56)y-%yRLnxE~HHQQN3_tG=b7?_pW%(h0E; zQmG%JS%XJ1@*@>X7ET+F{BDx#uA2#ZdYa6VnEg}I@MhF7X;g8oR$IrSEH<6*HlSz8 zxAtcnI)mUBjImUvNEdcxR5uL7=jv))q6XHImX#8g2X~VV?CM@K%W{_jc2JbrT{$`` zMyEzr$GKK^S0|5$&;7RehNG%Y7NTgHOPUlT8;o^$){o}))(!X@YkL%HB`gZxqNjG- zO^~0Coguax3;S;&K5HH7#cKXHE_z%|yODPS+l$)s{@$O_Ymp_9w|&egXB@KPgUj^n zZC9Xa^kGDjX(NalAmVjf)IhA?O&^J$_bjD5BJDUG^ujvw}8K|XN1 z_!eio!wGVSTheE6MK2SZD986jqvSA4$z@lIMkB8yyw*}DurLJ8B;nOemE@0lY6{mc zfN4g-UoGczT(V(tdY+KHnti`mCS|W@x|(X~_F(YDcY{PFQu7&W+>lQ*v;^w*+xQoB zzl(ihvpS%5$T7kf(XnE?X_sa~EYE9Y;%QkvWzVTwTZAK~p2;Vu+Z;qjta}3KR^P!J z+&6f+V7LisWlYYIhJm4Kv+{0>5EkFBCz!f*+&(a60i5WNW8~ zFywvk-OTO#2?$T}_>iV^j%TVH!O7jO(Uh8jsuAA_0&b#&VYs~!Y7YiSdfsO={22B| z8C%Y3%Z<Qc@yX|EPP0jhP;Np0BT4=kmzNv^+KRRx}Wc2wybk(r2i;#6{r3u119 z(q)uIr4hi?s+B<2nbpzY8{?52Rf#`Y2P}F$zO{TL~f0sS#M4bDJ z0$gH9PoM}oj!0=*=Y@2b4-QK`?rY(+O<|=`{r zQTdu0S6=(bDQR@)vV_cil!yd221h8l$i#bO85X2SWFkJ&1|{}}U-RSom_6954vlC@ zs2C!=%FW#ue+ALKf=qpK~ua0k8! zW9pOShg#KVazaD;PXkS_`4$gLmd-+tKTzhT=!lB>r!ha}z_`R8GK(*n-SyWh%e}YKZ=BXN zrLwLHlkgu64d7oJu&5y1RRGGWwv)q90h0CUj|yfWK0K_0UA!MC5t=o(Sh5)(mWqW1 zq|=oLvkuNta!TK7(Tjdghn}T#U^;R1p`ED|1^+Bli`6trYHeKyAB2Lu{dR(fb74>R zhF+33SZqGp-xY)H&OrAuCeL>~_3(XrDqz)mMQq{AcPK8OT-x{XlU;xR%1|dk{xLE| zr$7QqpK(YCmBt}4aD>?oa+>_aChtq?VY7&sOd`}lrxj{A#Jc5!=pB(6v|gw|-p{;S zqKMIY!I||3p-{OVIea$NJ1Ac$P|PvY>&$$<{JT~tX5BaZO7Orm@uO}wji5ZBsaF3b zFVgp?BPmk`Y%aN}FQwaTnXMat#(x8={{m);Ku0m!Pcv*D&AD4&Y2cMr3@I!KW0IFwdEZ_WjIqVC zz~8mE*l%<>8_wAewL0ytU9MdZUrNHN87&5IhV)vrlmH8Dw`OPZOk&VYc{NNsq-`=L zonoaqDKnGBPl_nZpR#u7OIlUOL-SY6bq9x1lHGaqSZ9~G3}}TlOi)ZOJjLv+SaWET zN2NMVM54?48_Yv^1zc4QQ#blMXTMJ9Lw*WByifgcOk|Q1_bVyRn{sFdQ!d&S>2oQi zRqYB|0qc6wU7eOHe~+;cvUu)=ya7YazC$y+wz3y{ND_p1ETq37r*P3pHbH#q8)`6v zA>-Rj0+_?fcBmZj>T155+GHuV>Z}0ZQ!RdfC(CZnZ~%!|a~WX&iivUxA8~MYjkF&R zHpY{~z>eAmfE#`KV~}_`cpy^le@u}JY?qXD5{DwfW^+GJAg>R|p=L3ZpPy4y8%g*b zo%=rC!_+UTa0iKf+vv3Z^!UKX^o8PTKH3}Vezxnddh`>7S_#)t8t>2P%7z8tX?r=F z@$3glv}0qEmCWWFLAczL%_Dtq1&Z}X6y#5THyp7A4KV@Ulx0+!6q~m;`(qv5U$uCAAdT1w?gso&Pc2FnCfw^<$Y%F(d*O=5jrIW~id#9GQ81ZZ6OzND z0t~Kg^E~J*{Qvgkj@19`BwQQWm3IH+Yo2INzRdIOO;ZnIFuDS}K5HIW=I%$#RmS3M`k zf>|oJE|WUp)FhpCerALdW|SgC%3HzpS%(BE$yP=BOcD>J1x3MkOpz^SU+?)hHN#mX zvbvoIEma#A7CcdZ{a6kP2DF->WtWa#@IfME141VVW&NM8>K0tzC@I@ui;5dkygjuo z3w^X*amSxm~?{ng*!^VwC>%E0Ffhb_e00ahjn|>FJivHsjk_0SGWhykIPGw$BF+iaj_J@ zoAxV}$^#@^n7=L@)de1^?1!(KQN;Y2J)soEHDq7JlISzok1%imaBHA><|tLZkRS^EK zLqCK5MHHVw4O+1NUXDG4MdJx#DC;aG)ER_b(hH}&_wdotUpWm|xxy@O#aA{rWx_}c zZq33tC511)6M4*F(?q;ZISsPuuo%_5e^2SNfPHJm)bxV#ler~`wkX7tY8}=7i(vtW z)@<}3I!}@R2Ty7Gm(sK1NAEDL{vTs+8P#UHg$-iG-JJq06lie`R-^@rwv^)TR@@;t z!J)XjTae=J#kD{w9^55ZfMj^jn)jUfX3dXT`SD~uKa+dyeP8>MP1Ngsf9-h`eQ^Jk2w1&Nvc>$GJ%4OsmBk?)JW^I@F79QbvMGU32fSEOJry?Ok$z0-&gT z!XsftyPf6M5NcE^&msTi>a8a)=e@Fp)hSkFb+EQOwAw0B&_LGXK!~D+dOxnkcp%k) zh$QS@eae0G_|>T?nOyD1!Kk^$DcM1)r(PNL2fhzbKDUZ);SpZX_GXpSv1vomvx6_x zES2OeR$T(Eyx7yX{`{logs%W7w4&;kuT3Eja8|z@wxA%DyNp$dy<911&$=?*{=*BI ztK>rYIdvO88Vc5Nzt|?ybV2Bes!>qHQyT%W$NvbD&gHXG6MOXMvAVo>2hIO}_V2Lj zW46DWFI+vf1ZYcK)>w};SG48Sxy)LGV%`k&u8d=^In`hVd!0zKyphk3gE|-8O4m>) zf1ZmsowIrADizI=wLEKU7B=@L@f#xbkfq-I75cGkVL23sTdbzhQPH(HBlH{A4_lN} zV?X>H_BO=yYVrDgj~tceB4D$Ao4z-(Y`+0`E=#&r$BSk#lQG*(Mi=XG>HTnX0x2Hj zVn|){u0EV0VPdq3T4;^6aLvziv*t5+l%F`c=KEB1Bw*FELPnIHXkfi6qVBOs@Hbd; zk^uzNGxajYT(ckiBAXw|hF(hI(mCJ`iN4U5+j747j6sf8 z?J3eAfK=KAqYQbCoG~1TG3I5p)lXQO?l}#)CST|gsFLCH0V|BJ`5M5sf|HkbH^PEb zDJ5pS z@J-A7T1AC5U2rwjZ~R41L^eqHVF{V#<2SNsvyYb~Q6D7MB-9m~_+~fLR>1hwumeqr z9nHznbv;Nc4&K|wFW)b%GVi0|TQ=_sD`wNg%Q2*I_!)KHX4uhvu`O9RdjTVx^Q%|& zA+SGJu5mU>O@G+aUW8WN>^GNsGA2)0>9=tmt@9}G{aV(m;zI$i@YWg1J;)(I4I00u zM=r38RaFN_xgyyP@5rkxNpOM;*^(=?76Hb^^i+g7QDk) zWMNn}Ew%CcdWAQ5S!koD{!8dx4(2qHv%$ushfK zuBJ<*+Av>+(-#-FN?;f*Q1G61y*s2ve5zCSH5#?jd+j&?k2;RK{tOsP>9#GfNyE=k zP4z*n62HIh@17D`CkG^^d0ot)!}p@aN%0IuSw6k7-J~3o@bW6&9Q0npq2Cfwi{=PJ zB{AA2%F$|ORu~eWy1J}Mddzt(?g7sN%Kra2mv8APLF#~1twmZJDDsf-BGNEpsLC7P z{TW+~B)ZIwp$9c)%BAQC3>G}?4c@7sTdA*S5!m&rStAVU!|{CH9G9|t!eVTzL;Z)) zk=#b(CRXIC2!^JAqIQYV*~-UVd@ zT;DQ&u?R?Z-F_A6j!x0}TNgB0r4RBVi}N`l@)Lab%3WG%I!jqwR~eOomR$IYm; z5AmhsKsS@>b&!2=?-aVL6;>FfaCP@x7!c=m_s1xycDZ*MpIn2Rwh4P@e++mTKBaP& zI~&Z2)c&f%&|`XeV_Ie9a-Z=k*6OK{oG-_wMrK9q_O5?`{W`LoU*`?cYf!q>*es%| z-Q&Xf^|VxpBcg$w^8jQ6CI33?)-?H`3wj>X2`K71FdHiI4lH-bw(zb~fQyOVMf9`ry8$$-QC+@sNB=B1 z%nhqx?FdgeyNIJ@AN7t4QB2QxDEt3{__4UI!h9<9~}5taT7&RlPL zk`8_>4CSrfj234-y+xDLyB3^4xloI_HT0D3e*6CtHvE5;N>_}-07h0~K;P#3zF^c` zr|&!jZ_fjbYt*U0eg(aesC25mV*@E1Yr8+K>!4C{5Si?Lg2Ie$EK))Vs-NFoczdPm z`-1JoEPNy1-1mYk%5&2!CXDCBHUNXHsccSPIj2Vm6!BdxFru9t^^4ASuSJI`3>Ma3 z%!o>P3SrV^Vw%~2RCE>Qh_d-W)`gg%B%NXoQ1@X1LGh z7jat0Kd^v?z3ZHiYAAD_dW4Y#O=N+EUA2E$+bo+EArfz{&u7~KT`pr7^^qNha-G)X zes|QD@K*AmS+Wa8z(My_641CEF_|y^^E*2q)x#hGO2wB#ufKu2byj zfx!!r%S~-BkEwFXON8k%{AvDpt$tJjb_cx%t_r}kQN!=VD_c{q;CX!J69cDG)<<1Bd5DQmrk2%eC7`B@^%q4H zIXnC7_3m~;!FeFN=|r&aWveDbeZ5EP{|3~z`u}w6+tqh}gZ>pX&=28nYe};bN&MKy z-$p9*829`3qhBUgK15H|HYH6UN1!k+ftsQ67_hP7Sp33_&S6p_NdZpV#>RTlVm^+% z$wb@pi7-Qf#n7{0y@L8QJ?f7D*j8?N&U3FE6|N!^1AT2eSUTnzz1a6WK{vyd$`W1k zg$S>8IqROGKTBS3;NPUX``1CLrQOo9dK$R`ul}e(`UQzSzcN&4&Y-<7^wx5u`g!=p zx1UZx36HUgCqKJWu)`;APC%1$uCdlA`nLGA(d2YC4y8X!L(w9v!J3t`Y1eqS!8D%x zEE(d8rEXE~>(@KG~TIGH^s6Su`maktGF z9~O&FIQ|+_A^0bm22>pscI~4N%XVgTv2Gl;)be0;N3>NckiR?D?e2R7#n=Z+lPzA6 zmV5=JeAk#yo^OC{Iyv6sXk`}#qrE-Q(EUxbSPtLo+8Tk_c3q6cvgQJhJs(GgqdPB$ z+&Yb%j_$7f?=zoY&j^`d3t1M&?#S*dDXJRyUBp0!ubU+}fxGo4qP1lUa7ZQf=bXJx z$nVOAYsL4=i%%5ceS{@iaahgvDPRLF#al5-wI_$bMdJ&yQJV{^eg#BjlZwNWIjUnS zeA4{pRLRo3W=0WfBvCZY-)Xt_L*sMeR}XCTm{ejPC1usAFIL;!PCa*$MTbdLX@~iyo?Q@g ztUElhiV&vwBKI39Qz&N^x-@bGlvKj4DA!R?0%I9PnD?4F;nUrxfVR zJ8kZXfFE~1+nsUDgP-1S8rU?|^u6&M*jpzPCi?0$KYwIQkUCB;*pUBqqLX!M#0n!{ zXAizhU#b~Ile=f!g8>HqUV+5X`k!+7K`!zo5skxhQx_<5A02yDbx*?;wOs#z#Simt zq|utMuepGS>cd=!JJ##Ys@w_&WU^pjG)!zp(uPg`WEhVH6vp#5sq}&z$$@P8cE~!M z**yK+m<0{lWl3?unJQ~AK_%oALI)gyrK5XvLF%p zuC|@Sp+9~4!XxuJAO!MsmWf~y_x*hq`EO->hSRzKfz!D@jmf9~H@FcSpc4ichUv=D zO=~c~Y6~V``%?1YJ07Yrv68+xzn6_=6P7{VyZW)SVnT1SBpMK#XnhG8m6DG&2mHLd zI6x)OAJyit_Y33WXQ{Zyq{k4kV_ESwMe3)R^x52D)7)r-5tbd5`pisei!j?Y_V(15 zJ=9t+oH6Im#5F^MTQ$LJ7wuAOU`cT!PSX(_RU#f{rCf_?@BQ!(oJhT%A8<(0I*GR`1V~DGq)yBJJP+E3NW`KF zPSn}oHh+xS2NTQBEiUg1qTA%OLlaF2zan&L_<{tY`K-S>DaSaIuW|W$irYJn#=NnE z6@9F>KChkeOqWALMbk5;!-7t*T0k*i`fPhx(FK0*gRoZW>l?{KCO6>OuR~>^e`dY z5#ZdZe{(uZ$i1+!43MtF)AG;N$U{Dfj@5e*F)AUiQdC~+H!lt|qk5rDG7m&80TRXT z$$hT*kS`WzKipK%NnSIW8w&8z$8=t{VoC8JWAU-rdr4a}nTK>mqvpky(MhK*$BO>V z7*AsX@`vBg+UCRN-dxH{K)5hgr%|~cj1yCZkoNQdT+bZ5?dxKuf?xXQ||@;dw({{bAd zz>ms;yZx?7o`m5oe!!EL3^AD?J**nWQ(7$~7&yS0VD+uf#>II_aMzcnu9Rl(A|Jf; ze!NH1wj}7cbQnARZ>++UG@MvK3VnlvM=S$;s$1QE3UYMZ2q$XTz}wk69?YgClkg;Q zp>4iai8F*psM0e$9H`PYFFae?vCAAU+7K~0I_2+fi|xNkXE&^W(-7wtKYD9J?rv># z*C+F_V4_YiCKi|e#W>XEga%p5sv1kd;_|u#>Jlt&1O9b-o3zG*%`aj1`@Apl(=`sM zucV|)ZV#i;#;28e!P!<=5u^9gpKwivVzXm=Fsyo=l=b~EwdatpH=+WeC~ju|~Hk%x5t zP`W->e;n17egM6{*)xZ1+Q|Sjd4!T&k7->->sX^K>g9ufUk-#6@G*!A5DX-Tm z<~Avz*GmbP9W=lYG*M2O%vqvc3-3;#lEiT|IAZWbvE@g1jQSCU`g%ymgWuGlB_I0l`DY7Kbn({9%E~?KORn8BZJ$bor{nZc;J#8Xnz&>+NPY_(~ zFe7l)(O$RVN+<4Hm`g8vvgHHU`L6@+6Ej;*(`c2LRTof&AOYI^vexgN>N(aS#)wlD zZJLU6<08;ENGGm4X<1N3CHkwK`Am5}+^6-Y{`CY3$qXEkbK9!Ru>|W2oSJv0NQ@y8~7lydZnhC>gCIx!_7XBi|`)-2<=z8mhx;Vjn=tno2>DwK+{G zI%o9@&2o^s&32ERFy_&jk*K51(r1|cG+-UcIUlc(%7(xLGn(lm!`IXnk#teC{v&@6 zQtU9*GTOd|59|aUb6wapM?~|zEQE5e(%-I+&BqCTB+h;!Q<0H;k~X#$knPCFM}=1D z6dz4@o#l#SxsfhG6);O3&|49d|1f&qi^Gb;&sX2m-UQm}@-uaTz_6BZV-T|L3(8VA z*uw2Razweo-z|YqEPX%StF~qf8!<2XE-8i_PpE={hTmP}I@#HOXNfD8bW2Y0Jkvybu*OfE)_5jO&GZSxVUA1~476&5>HP%&$QzO$BFrPmKLqLP<7Db3kVd31 z?gDJ-(flZX!>^5s2y_#oNSOOmP|M46SISGv8*)3O3WG4wLE3zVkgZDFqi<$C>ZdxI;mCbP+u+8bc+-}D#$@TlJk!87Tx4gAau<4O3 z>`&%;jW-`Dj!1$!?PvB^Vv}0?$xV-xyw3B7(PZEGMN`w*vlee%9<+hr@!GQ+a+O|F z`>F~1LV>s`HHyWu%4I0V9RFqkw2TSt;1vfZ!JPo!AN|*#_bYBqfXx(!uZ#qzWV+GJ zI`0hjE zr5zrsS79VF79a2C64h1j>At#=t=}=v5heBX(!F^Lsf?j<)jzW! z_n~yECMJ|f52egV5GHNrhk$53^aHey<oX$+L(Nr6~L~HF_?0^jSkW8c3)-I$4T0iP)OP@5cw@ zHNeVX3)X4e5)U8mTxUd_rMJ2p^TrAK8+02#!mHX?R(c;jguSLe^smD0za+{(Pfv&c zbm6rwN!``|cHy4=_qjsG=RZ(EME3LJJRk7+erg?Og%QS;PqsO~-`daH7U|9HbLlar z5!*fpj&CuWc@ytqEoxb6nsm&II+HDo-F#9lkfoFh{$VMhyN zEdQJziN(Xy>xxJ~o*lZiixi;Xfwj0l#~{r{3B_4nW6b9Ie(EN{IlOdo6klli5bjcw zv0}@Fx0noA2uRWi^Gliz zd_07cXIbS5|KfF18^xR+$2pUb^7Ud)S!lQICvba74@U)Iu_0wcQ`5p^&R6l^3b&lWZ44T9KK)ugh`RB+(D7?i|v%E@;Q)P2};E&=q~d zt%DaT%>eFvOfh)8n`g^L!4z;awoCg~ulzLooI#_u^mYCz?pNX-2E3-%B>9&@gn2dB zI~R}LV>Jx&oE1kWV-$frckKgfshLAH3QN*$sZM%VNqRZJ7+ zqnPp6L>{@7YrPbbFqm$as9A5D(a0=O=iUP{zTHyEEl<RArC4C+t3XY`eJFx*`jD6IM%o5GrV15~UAXbmoSf zwTi6TwqWz?nc6%quXWE7&GAlIFLxkfq=k`4Q^LD)u|~-#fWxFOI=$hQIe^Ind#xE> zqLRyRIdy@$L+r~3ZV?O6dDw`6R45q0h!o6#(q(6g-Rfr`H#PbpdX8CUDS`N@8jtd* zL1xLiW>4{(TH2@jbE!Bd(Vw?Hb8?{Jp#%iI246gSMeG)kH7 zg=&jx{tu}Zn56S*&lcrc+f1f#x{j(C)^zA%M*87egww<1Gi~?m9|oQ!Pth$p7&L#I zi|W{$OzhAnST4X4wGFei&$HB@lrJ{)a{!EN)BoxCr7xqHIFy^?e%voE`EbWa;DPFX z{qLQw9rgC}e};iG6U$%z2YET6)}cDRQfPZL67lDO1Q_)7js`q8IyRz8I>WOKRHNTO zI>$Xe_!?k8;#Who5pTkThl!{1zwA^{-pmw4Tt~p~^gvlH?Dj7eqzT_o(GFGdNKF1f z&MeO^^2BwLJ;%-fi7>Kuyws`F##-vj_7+ctOSobWE$X1FehX{pFL%`hug&y9zV1Q_UO!I^j7Au< z*x$6QQHfa;n@7}!b8Zk5i{O$|d{QB3r$FOUy=s^W z!}|O|r*uu1+p7Pg*vuQ-&`@DUD+e>e7$nWld^9(*mz!s|g9`vFBqu5zs@(UMCE*MtWFk!Ocp`29+HxwjBfq}xnh!~F$Pc>ELBYBGsgTXVk4C;;{H(} z*ZT%8KgC}Pxf_lv(ctR7wrNMlox-c&s8S*oP1*YFlkNg4KZMqB0tfxKYyoq2nRety zqM^*iHGqWI#cizSTH7lH*jb>k%4JoS3N@Gb**Ctus1J)+iRk#YMfEj-t)aFC(w#$J zTii}_JmT_m#g6GGF9u9iY2&)iet;V8^soQd9Q~F8pHP1JdCoO$|BEg_&8T~mJEdtN z?ZV>WfH@L|r0tM?kN{w1W1ksBMZ3gP3r)p?pbS|uW@rn6V*0iNifY|as!7PI&!K@> zfImL`<-4?bz4~id;AugAfEU(nzRHE5s+@qF4Bw9kXvl++1XN#zq3sNC|rN|+f*Y5LA-2l%R6##GUH zY+!GOFLQxQ;^P-U`r^LIFL9W|U4bN1-DHLx2N9F1el^AS`!@<*qZw2p=5sc6b#pxg zMjJfTU$R`orBa=ha|2WGMJ}KI`cSO|RJgJ5kVr^S&WN4`+=f-+TL*!tZ)esZzvN6nmbzT@ z_D5s))@7qla~gfy&eg*z1Hr2J`ip-d!^--90K@vNL*?_g|9m_#MW;bT5+T#&pg7~h z_#x11om(lalZ#$V!Q06GXo&~z@Nj_GNT8}|IO-8t&^fEmSV2S+uhwa4whBwhz>bAi z*pvTbX6I0&Xc-`xZD%_&_pQiygy1Ge`ICW*r}`axkIsy-s%sFln6%@IM7UdQys7Cl zqNJ&pc85a_a*?>$ipBHP3K>#J>HiIt7i#up6W2&l__6!Rdx3Sy{{I`Cg3v zDM}oBdnz4}P#pt@)jn z;fb|d+@;T%z&^Xl5>;nCsLSiw^m~P{y2Pt!MBn027;mV=(SU(%ebPZdAGQkER8Soz zEdoDnGs^7nE(la2BxBLCc%=Ol7Hva!06&_|utZ!rtWxa^s>Eo+=%tu~Ma<4xXE_L& zFJ4^MFRbLcH?~_|2_{Y2D1C8PL^OUz`dq#fwGTFXjqT*TsSCO zx#Y8m#ko>^-AiP}lLOlaok}JuzyDpyx{m&lns&9D>z@Bx z;`-N+8It;If~Y(uEo2Ah za+0qlRm@(Uo0Ywng8VT)dJWrM%i5;bED}D4N@W_t=h{mk^Osy~-tj}XAekxhD@i`* zmW4|ayW?~<0P-2-;1Pat!1g8J{+_18VSmwBzr*vY#rvtLIPE$7lR=#vTq-5@CH;%2 z*s3JNcHLY+sHZ0C`}WwvABw;4%w`f~c$lbG%NYs?wJ)UebpczmQ8<&Kyrpip1ya(Y}x z%zp`$yn2()b7#4{Eed$EH}%IuSSJ0~*h_B)=t1L~ zbXsg}|Cs_NA&;FtQc7wc!g1DC?XUJ9radu4q<+mI90Sa?x)&yqCGvms$$iZ#)x(4% zM82=JdHLS_o?^&tFY*vP&}Wzgt@ZKU0wNuM4i-~E*4pRiSDI&C99|O6?|bDd)`#-l zb9_*`*86%>ul?bQGjc^Yi{Rp}o;6o=^2h=Er0&1WSgoid!ga&%Hg3M!^}h$v$RhyX zF}@evx8(ui6P926i2sg%uQu2mU)yA|H(5pm(>VVZF8){amFMUnJ%$e94q6c)e@Q19#h(Nwu_&Z#yM%S9+Uj)_Ef$q6!gcl{$0Yj zi85~!`4NRd$xtR2qe6$?j95!PmzY8nuJs zG~;to{fGxW9AhBX*c% zB6!hi_9oK@@-iPlF(tca6GQn)M)+z)3v~R!QopMi2W|=91T%2?-&{i;fKZuXh^hqk zXQ*aEL2~u``Udw;>72mRYsfHs0Zf-_;O!!B2TO!!VkXRTp?K#QjI6-Ow)Td845R=r zVTFHiOpRHhOgHej>E+hf(SFAgQt)-Y`AQx4nNJj&O-cUbTzAzdOtN;HzsX96RdPwO zLhH9ay?N#@CtVfVSnbVIs|sv4JydhiS=WcLm7mIO8Y=+5B*V=GyQ#?1jrO=&-midH zg!*(e;eLYC6qUaRpI9qS5fKCFb|`0c-cO@D|55op9&)U+I^B2sN7_f`V01j3hEJ+~ zUFWN=<_h2MbJ+Ra3{fL?$B>NNVgeh(Lmt64(xV$#wy7LOwKZ0&ufC?d+pc+3zrbbQ@VP$@4tI)*>sR z67jRkBD5V<7=d;h_g|F`hpFIQEZWCi_!9@#KD(P=-Zsn=PX`J-)Rq&Zz5U5=g-1@3 zIu8y#BDjkYa$wK|=ZNO`+&o?^Jw!08@fiwK;V0DdcH)6 zVQiMbJkA7}X0N*muHABI{mr*SHdq`K*_g)^`0SQzN0*UGIGhIFj-kzFh}m^Q39Ua1 zo@{NJ5cnZ6MecR_HJdhmx0b;4HFH4kH`EmXreZEht{am#UHS(#+CK+2X-U>ixQ0um zd$#Wu2pV6VM>kliSz|gH4{L>B@t}jQHLyWEsKlfwxS2 zsy{4n9)he5SlL90#t8Az|AsMB-CHIu>&2Obn{Loi(o~Kv5Y%E0yX^Sor?|x@QatOq zfu|qp+X8i_;Aon}4fjlo|IrcXc^`OQ!ICSOZ-oUW=m|PGruKb|QK;J%9$oaMG9K3@ zFN`m4wOY%rw+G{zLYqy)q ze-r)(ZH0ebAcJ&zy_6aBpqm=GSc59#-fHGZtTYm@FNzXLO&@*^?=ki*sSul(|Li{2 zxtgn*Gz5Iiy0Ki`Wgpj~5ifsGBQ;)7QYnMZP~sad3anW%7jNMr5sU?KsjL)|wz|Ck z6{M=RdG<%J^jF~57hh|Zs#ww7_X3t=+tNI@kAu6cKCD+wJZE|&|9#dLJd0KRRs7El zxLjM~G~|92Hsm7P*@{2!V{C!!B8EtgAGSs_a{s6wL@}vX3I8ID9h6zS?M&~xYhO^?$h-TBDH<66ns$DlVjY*L zbhqeBJcwD*@*vLIkx0)IP?oQ8m0 z!MDn*9;5rcFT6KKbvAe2JTVgnILEvsj{+|3A5}0Ah0XXMUQQlaHTdY&7yf!$*B19E;<_`4Lk#P-Jm-2f^0pg_) zSPRQ;_5`Eik;7)QuHq@3OFrYb(iP?z@q%zzgJmc!^bZ3D1-YI1)u&_uu?mLwBi`hp z9yPSbMlMRS8uWws3stq_!Fg68lX3#to@{Ld&MeAw@E#f9RF%LIH`cm{ucK@bwO^j> zu@*#Ko}rA&;rk1sy+(^G-Q$GH=fkQe&iXn}bU2yA)SYN)gdJvgCM37Z2p{ zzZK%?yFOTn2Zt_(UN&gl&g(A#kPk$tlS&>oN`r>nP@^h+()T&@+~+~ofdaHwqw7y` zoj(b=!{*cFKE8W=>;VfHqZ;zeh}!~Y;$HfFiGmQC8z)D<1M>J>R=m{tTN1@c{@a$D z+R1DcZ2_0rMzQ;z;wjmFo+)Prp`vpa55oDj7ozRN<+m%~Pt>0?li=N?oVsZl<3y(% zr;Nu)E*7|Yn**|tuH+0VpU)j4>y>9OT$I+LjNn~3(|;RSsp%LwWZG9f=I)DMlg6VR zp`TXu*HgIM_QtzLu^SRITl_0~7%d=%wGUMSZp@NmbwMcQK&`oDBGGI z8n@$OFU@_xdNi3mxZ#!-ZS5764}RsscqnNCFpyqZV#)1t4x)%QhJ^wt976YIDwi|RW+Hw3Z zGRYA`?DX6N(=4UevA>_#%g1rkYc$Q9d;Hh?*YC{2lhh^s&KSd^V+ah->2$Si_0*f0 zTzwNMa>4e&vNx#|BD;<_{siU$_^ljGF*3J7s>rB&(;CmC2+TI0mq{zhRuNYLRS*mp z+|}E82lPde(?Qb(snu;tXBK!X5ID7HXh>`5@8+dvkkAMLU>`Ca#CRX+5fA$W`ar9Z zvsl4YW8x37lHxBM+IeutGdS9F?dQzrS6gK?tm*{yfD2`;nu;`TIHJ(z?eGID62aG^ z7rs5BQ-jP^*O@qVJyHUwB`ROjMqla3bryBwB^K~w2;ZUGqo6hf{GcN+-fsfV&x_Dk zC0p46exl!ppAoBAQUyj&|H9FAx<{cUT4G|^i*yKjPwW{K4A$Fj1}2an_##5iR}edA zJO?ofdY+#ot+kiI3+fi_)sn2kvFHJ|?U=qbbT)e?U;??vMwkM&!lny0h1cEB_7I=M z8EQ;)1J9c0f0H4C_TpK~Ai8u);{*H1Uo-%1rE=qXcRchB?({9(%V@*yjToLA$X9bC zNy*45rV}#=Uy7$#DDwFyEXe%R`eqs?(y&xThk<_3%mX|ct`fK==^y>xGC32Fol}Q+ zWE$3#^!0n(g`YtO6XZ;~ur+noP~S8rIj zZ!F|9Bo<*sSWYHfWp3!g)caRtqwqb4g!9*@m@4}0aFu7v+|@$!|NDHf8neAqjD zW^U@pzp?Hi}UBDEY>tqTgI)C!^`6tYlM!~&?_ZPyNFy+{pcD;m#fl$!PpSWdg z>;ql_-Xi#M3*O&@Jfnpet)N`)&X+vT>m=4Y_odC9M2e^c<;yBBDN0rs3?pi<{Wiw- z#MG>-^^gbXC;7Lz4k-p;)wbAH-}fAT)F^gnNW&PECK*v>FzIF79Fyoz6-DIU3Cs1f zHzj02Y2tX{D##J>J)(szI;B^Toy5T-Vq6y6nq}wHvJT)!@}E@LC+}VGKw`FUy<8b! zA~9!56x)*7;7}bz{Q5=wKqn zFpmqD)N6jUNKok>(+%4s+JLR~7@O8)3!j}eL!iz^)H-UiR&X;;>^2iaWuHr37cF1B zQ%GX`VjXSB^*K7~t&Wj%HYz|jB~3*bLkSt|VQZ^&mThX5CK4$%k9~T#wqu7kle#zz zJJCjIT}f0(XIP9ye#f!;cHarTGL`VgTA%SSN2c2m8JV^m6n|2u z8iRwny65e7WITkIX(g3|(+)13w9UGTzWjW(=rpVFM<( zZab|_=F@cyQd4&R^BL;bVQ&K#=8heMP*$wLAcYPa%Ia+WBW) z(N1CEuTLu5wYZkI%1%pk1Fb>FnU>rqG%(g+zieh;xgdphWXCP}`&d9J;`E<%`uM~%5C`Y$2FeX=4_8BW~R;Pi8T@yxYP|ez9bQRyYF4@^QsfE z-OMa8+XPhaIs4xCYYsb{A@(j3fzaPtyX2LxFS=%QD%UESJI!G;*mOLMO0 zy8a*Hm1F!eR9xQgN4J5{OQS;0J!GYioa4&8iN<+JE@w&~dv4W2kO*=%=BUsms1kA8 zCs|A^11+yi@lBRv(;sJgV#uOZL%D*8gqVc+*XqRc#?Oaf)r8+(n9>_fnqTq2RvL(t z8nUX$D56Bl#ee?Joi&y};u1q;J>sS)H45wW^wHg16061Tzt|qRf<$p~#WMKMp8*f( z`KRl=)z-c!t{mXyxvXF8`fZS?U?HtzV!9aC)%?Xz*7};4-1;Go9*{KjKp6y$9^hkSa+ybwY%9AFEG3-kv9n4pFS9VC=J%>PA{;hSM0vPlUIUn3pjRY?6`UZoIG^~ z$`K!I7d~}c9J(w@ZaL0d4v*iea%?=2*h2hBBF>!K5FumV4*GSQtT>;3Yu_5W;o0px zcN^%NQ7=1X3A!u#nCjd(sA&xx0(Xc5Uyn_`>nlKJ?E`CPGwwq)>X#}bKMkZTc683q zc2vI?75v+K1sqigG33f}G=3u{_g5Z;jd6k1_XNMUdvU)<7dE5W4L@&iS_l2NJUxSi z#RgOtolEb-^@{(YSa*zhWPb{IJWgJ2XWN5n2uCl(=j7yHC8Pg`e%`H{jYtTC;O0yUj!cR#WG06 z=Ti7jNym2Z(6SP@9pi$_d6*(H?}(QBt<(^1)u&vUy}YPOmw=h{&H3Zpt>@qsdS4GO z-~4Cm<-A95+Dh60b&=0rRf*|Lkm7(&d7{hS7@C9AhPTKwPA?hI$SXtWYOC?71o18dZtGRyH}PhZRNq6_PMKIkd>E%FfU ze#BZOJ)E7VlU;a*CY0(olmaA@)jiBh$u~q>A;}4u&_75luyJ{XZ!;@VCt}K}DO?Vk zW-(o~0B~=|{|;f?1xNyDySEkE~g4 z@}0KJeCOK$Z0Z5 zTS?@53K$H2kj!^~-JFAy{}n zQ{%_*-jXXnt02jnH=RyKL@Z%Z5bU#d=K*xz8OaSr1aiEb?Qj2kY01d*cCNT};PnG! z>oPt2nbFE4r@9a5eOm0w!6@(jnwbpT7HAmzx|buj6VkxkGmOF5gQw z3&*|v@(^tpxgT`CAQ+T z`T&LkRtlD_8Jo^!nlsT>eOt@w{xHl3DOC<9DG>(<|_0$ngx|FgSl<}3%p0`N)Z zT@?K7mjV*k9l;rA>qlxrKiQf_w2?WWOCBy6t1}8aOC9SI_J?%^gi(NE*F~A)xK_hB zxbS!(&W#kW>soKdaG+c@6^PJMD|-s*7G46uN0H%0hF`OZl*yV1ckdvHAb3rj1B0LC zNz)~Ik%Ytxv#Y)w8T*dZ`i|yx9}|7e!8^a=E2GU?!WNc4OX`N5ns{$?gJ~?kQ&sb+ z$bCX(u!Seo3At@BNWiZzcC&>%{*RqqHBuO-dcoB0SpUzC_&e~g!-@o_fz`{J{EsCp zf2fYR9S;5|qSGtMSjo3fVBte*Sy9C!EDL`3w4bJRk7KjP6^agiYe zL%EMe`iDXMzLBqXN>?_2b!Uy(@YUXM@L3#W2C_Fi%&;zTy4vY>dSA{usW-wdnMFJ; zBSe}tm6Wtp6gMqRkt+4RVO;w)+e&BYdpPMdjT?4vs|TiDLv@!_kCbhMjk0-V4NJu( zgx6#sp)zKq(#(%rkU*`sKJFI3spS)~Uq6G-m{_O9whNL{0G7qrslm}odtn%hv~7#X zbbxlplyy|yG$0p)}q7Mr^JncTqnpVAJMABuX zrF@$LB{miA!L9CbwWc0UvPS|u2P#h%t_hjYJa2N?lXaB1W$;0pgr^3)M_-Gqet`@? zE2)N}CYE;WWkinAAR9#NrW=v|tbVRy4NWutQVFR=&eQ%|A0a(vFV=;mae@^tWKB#2 z#QXq%TlB@c#kw9(;TNkA2HGh5Eyjy?J|ZOobSj9y*r9GF;rb9^)2}zZblu$ZV zlvKLA1ZhSyx+I1o9RmSrMmLNeAu(cvbdAnYgTcf7oag>~KW8s~=j`?OT-Wver2n)+ z3@uDs&Hk~d`IH}f#JIjMW+q*o-r_+tW9%=Zj(lfX!;15|y85L6&zFWlGJfY> z(5LGX7`rkgno_@QEaTl{BvaI8o7pfmJis-sPdm1hluskZ-6gW4>E&>L>DYnx=j3l) zT28tXwQpTsrx1G}@NxDVU2I0FVixL=B5EoEt?!GS@!UQzb&SzGpU!30J%bMM(uIi? zl0V6q_y)k)alxtm6oMk{)(iW#S&fx0_w?J((`2%H!NCV1* zIkB2_Fq76|<5s*BV zqW?!-NVO>()R9{>YWL;7W7{r;cVQ1*d8_I9*;8#@#PJa88#7f5h7DuQU2++ob;yiI z6iq=ZP9b!m!|vD2RF>z6`$IeyOHhYTb$~_+c)H;XIt)aczfBkg62U7EM9WJ3slr(Y z(=%Hvk&6(zN`&+Vo36czquTxlHDhS!0CkPXIc4jv`rEMrpJC^&r#F|&!``C-|JeZ1ZNFQ7{dcsUE@A_j`}gT9PzjOT-Jo=URwQji|3R)w#G9TzsUQw=vlB(5zwM5Wg}HO zw9v)bhL?Qu+t=Hvskh(4xaW(%e6&zoi{^Oe>T?gKKR5T!%J`_B)xjWg)Cuqe`a$R2a$d(!@5b_`mB~0 z__PW1eyot^d|e+!{&(GErC5_QF^u(V4gY-Pt?$x{-`2GuTxUu%Do(Iib+AnY%6CeA zvuCvJ`aO_Rsr5N$7kJhE&X8@pdu7@oefKO1L~$YKHy0z<>0dD<=eQ-!71~WDxhR7J zx=>%4X_hJH;LH}wLj8U0x9I$!R65(^N2%2;aD3KxRzeAOkZ4i$y1U;pM)Ed~a3291 zW5!Ofr_5JB->j2jkFVjM@y@CWF^_JFFU6z*p|C*UY2+G+ynW0|(}Y0bfdba#61FVb zgKT6IME-QXFKB|^+oH*jT>7}2U)sUluF6j0tSi$a9#m4I-~jtB86`)Bme6CDR#IoU zz8Yz30Nou&0}o+Nz5fe?*6noMQtD0bY|Qum_h{N9%g1d%8ME-C)+Dm|70CNOWCN_8 zteO*fMLer_uOP4)(+JHjC}v8g068-LPBkM~-RV?{WW!tkBlx8uK(^>WaH%ZNqauI5rNwa@)B&` zBXi!>8jn6teunRbs-`@|SfKc!&7zBb$dk*XZa-MLVR&9~{2nm;;ojDFzDY!#4afJq zsP)y6BE^TcZ28tyx*@Ou@HePl{9f{J53MQW(_O{4XG0{*-KF z6F-ZzgF?p^F7*lj`ev-rq(j78)qF&zn@h(Va4&EL9M(q-s3ZrFT zx#FC-wgRgm5N4#wc4C+M5h8r%_mtdfG`Tc~A(5t3F{#Z;bgh(8;VtA!aji>zzs=?j zxrddcD*ayr|vG)3=W-151!`A6mq&;-B-3yp9g6WLDWW zw%IdvxOCG7_&pO<_$FN9Omyq%wg2ux1`K+061a6|a}fC4*K!H3<>b4503MlGZYk70 zQJ}tJB-j3xIo%ZCT#C)%xa`Y0X`s0J4B*L`$>C!RzUh;QWMUnPtI;8l7lSB(Q5@$_ zve0>TB~%4bR`Q{M4hJVm@#Tt>Oy$q#MX8gAX2CCsywjqPw8n6H!OAOPsD(K3v79Ss zYtsfC15@NjEwHG^!_XKOO&UC(tgjQ6=SGdmn{E7NbMJJL{Z;4un&|K8U_5yu@cDKp za1bIfggN8NkDr!mAUU)so$iv}GhpN~j^__}HS}nWp2)roF=1`ZFYFRP2L2Qv-3E#v z;>dVY@r*^W*7FYeX0MV9Vfd~*{yaP|rs zfR?%Y1EOeaYMV{^x9k~3lI`&a8Aa;4PX9Mr_8u@5VqBJxyPS@ttKjU%{Z1d@P1`N} z0+&+LTklz@Zk%Ci;#N&LQ$C424z+G5_?35bTA>al50b>P!<=Ms4z(q@k?u`sYlqi9 z=|iqAD5jc7%NQ%td^(|{OxiAr7RhF}!trwd|lo(WCv}~b_bsT?VE_kbgI1~SIs6%4;#ercO5l8i} zHptQM*HUs*^e&ra7Ej41_5#t{i!mL(#luz|njoJaP5#@_?lUG$7J5g5joB_M5xzOQ zLG{JXO?rfQoxzboKNvtdkryq6_CoQg^I4P8rS&_}S7ri%shK#TI@z;|>Q+b*Y2LM= z>ShC|(Qxko+Og=Co9y<3|GT?5GF%Z}#>b2o%P}2BMOB+S+AhQwfrcYIs<0jQIF1zXIE_!*KZCUW~S-lVo|L=IX>YI`FgEk#u+WjE>*U<~^1`4!+ge zSqI2!X9#QSdekO|aa91cp0BWqIgal29&;`Y(LZluiY!rMoF)aH)Q z!Ty<7^A4Uthc}lE>UTbY$CmY0;D0f6756bCppIrw{%tt4 zXiHwx5{jWLWogT-8q>azyHkDTi9{dlX72GQ{3Ox)*0Q%x=4|djBplJERCPE3JjGb-4PuB`L)IlKWR`=Fxvb$6M ztMty)b~~9}Q1_LA06VfYAnKzzZ_{9y%S|JF&NiEb@MPDQgw(%>#U~CmEvC49c6-$R zOW%azXa$E&>htaW50~BJZ{0yhp5SKE*_7#TERdPy+;+h$kuz=CzYAF20KK768%% z0Lnfsbpam?fEI6kAjG%&BIp6u)wBqUa&_LtYzCyo(D78MmHWe zD}S%&z@jqxWueVk@^W+PXL1D>RSp`Nv%WBqu%B<2xC67Upk5S;4;7DltZ=~APURK3 zQHGYny|lx>Nlae8#|%!`_Qch6T__P=W-;H)aJO4}LjHRX{^z@Ue;3|wf){lQN&mv; zV#zLH=G%9j;LzmsMyns)nTp(@i2x(q92NJ&oME zcOMevtsFZgOn!SR5YtG2c@FarcsBOt7zKzBCL9S2u8ID)0pBR3jBEVohPRh9CltIp zMy8tlE_MqAR>dT0m`5yFYAelbn$Fwb=42(AASv{iv8Xy6t!iI}{oM-0OJ!``9@ZS- z&7pnZuv0Q>G?@6uTPfnJ?02)~da91D&kosLf-k~5o2vkaM&RRuA=hw`!jXs2-ItV` zl@j_BrT42Ws^PtIJQ6Ma!%KCXxJ~-(B*Ww&p-BDj3K~_D-ho+Hmi~ekIH|`Gu=N7r2ZJ6k`_(NG{X?kU{Q3{}`DWF6 z@!fypJ@&{LV7wUV1c`>-3>m2}16Hun^i~0$Xl=$*+28Ek0TtMT;*G3}UMw4yoKaMGiJYG%f!TS>w8%CX^?bKmW$=Zog zj)PB~t%Eki_2AZvJmU7J$OD1MuMsICSAb$X;J$=Dk`>XL0*vIa+k!bKYH8)+sL!Kg zkMu+hp_*DhkIdS{|Jf()4Q6+b^bc@ZJ(E1=8H7%PMZ`Qb^^egtEU2>$DAtvhVwr#Q$31%ueFM zEJ$V?)Px3ILnYeL$A2lo8oys_()?))`<8=PwOr-?Bc=GcA-v}F_51vTDn_KxcgEM~ zlE&GX$@_GFM%msn-#C6s#+2z~hHc`jbMbi7){B8-2=tNzbNFi^1q1wN4sIl7oRPuV zWp5p9>HBwH?O@%F-Yyv48;*t^z8B1%5zsSt>7or9C2@8eXnn7~;%}q(3HJ%PR>$mP ztu@QFzOIxScWnaLmLw)s%IiTNC+z6qk@PcjaK<>ML*{0Q@ zyV$dE-%i(EBW!U9p~`yYDT8h7fH$70N3kKI&r(1NyG;#Qx;;>!EyC7D8~c&1Q35=n zySH&l1ADX7F3Kd`DhWJ3ZVQFP0QLv6rF#v0SS-21lT5yI?c^u7?V4T8b}YYVuHrh! zmw7}`k<=j_o0>86=6FDjkwB~mVtWDSyjdUwQzIGnw%rrrOvi^Nxn{3b)_uty&28=Z z(N|$MKny4gi$p(gfP)n_lt-xyW?`Q6iRw`!8#wVC>rDLC8f4AgSyBPmrJt>VgrPrJu z5B#2qcCHu)jcMX?y>9+tm@)yP2rKiWwCj$kpU8kQh$e4{F0EApb+e|YWR%rz;dkPr zw~?$s`c7N^9WLdz_DQcD8T8q!`AmFgW1V-O%ci0}dS&=~uJ1u5*V zmjW&eVv{J>r!*0E<=K|ZM&jHF?MF*3*Go$>?E#l=c(V!y+yQCXg^@=;ik13Sm3Td-1(;asSXSArr7LgVfm% z<)NdLUgM;an53EyiI9+2I&EzdWhXlL2-t3vlJvL1>wCaBtD0KBb7iL$S<8zJ5qU$< zC_RlHLCbmIR!evVpD=~7D10crpfk!h4}C6%dR#xALfc}^=YYc@fAKy;(>#uF+?F}2 zVCHo-XjOqhSE{^MZbY5)67fh>l)(xqcNYqd_OQ=bi~7@<35W>Zkr4LEb{BDyeT$_? zOjJ+w>3i$K-TFRRp4cVv>@h`Aw(d#*k| zP+x|`_*7Iq`+K>G5VE2soalN@9TdMbe^=gqd2Gh%@}(TYKVQmsp@`fZYO7O`7z=q} z?4DL6Ii7fdom5|r3whLY=uaIJ@t%H(I9G4fXh502g@T5{zYBsTu$TkTHQm0OHpQIY zuEI!thyQnO7J@PO2?srk|M+AlEy6|7gDnZUlNcExHgn-0<_{yQ&sf42XMTU5SaqLl zB-eX|J=hVRKvEh4o9j*={P~H`&GRd)BkZByYNzFJIxg57-p_H4P+s>niByzI4Oy^- zU+%p~`cCR+JnX2!RLrqspy#^66ARkf@%FHoR4Q*4k$it0wcS|3df$UUD@CFEG>A*a z6;4KlB@I96JKp!Afzg;si(Q5gc}kuWE*mzkeRQ@w0MfB~J$vwLKfmRsBG(f8=fUx> z3ReV?I-0=!1b1?0nl|>~tq@vyVUYSy4*jD_mQq6jw3A;+iH9DM`YqRxI4jFYI^(1* z9xOpuu~`>`O}R|}{6(q@9nXXPDXXKZ5LWdje?&oM#XBUW@w*X|9?e7gZu(FLB!5M_ zrq!-G6Ane6ZI-d=nu3{1cqS_JC!bN-k5qU4@^Rs4!IZ;-CDQ)uK6G3KzZ<$Na#bC} zA9wakd-e7(DkPf58L9SL%X{3^6|wKmW;7D_4%=Z7@UnG(D6L38#vDMH*8vdoNq6{D zigs@2Myn=D58v);p^OvHER?^cnZC|o)I*khH>~~n3BUPn{5%EKJ@9O?2|%E^9SX@& z#*F95NL`*>Vj2QPv$rLfT40!X9PpfmE~={{-09B(#2h#4LK9j3$QV+^_!K8Yr7%+F zLy6UIc2cjWwbXR3L?7bFI3HrI*6}ogC~#6HFchI92))ec)+Tk}5)2x6?hI?WSZr!i zo%tWoV1Aiwk2x3+YIP`&ZSGc7}2=qG4WTwpGuTQEsZ$CbeKEYFc~oqhB>z}LuPOun^)w(K zE6PA9_@lj$ZHo#PIXdiB87gm<)||KGB(=0@pOf|D%7yIdPm*c=h7=Y-j+D_=>lFA^ z&Wnzg=YY)jTH02#G?zdax>dpuu2z)N?;6TJ3e(x~rmK4Bm#t&<%0S??JI?36x^o8gmpme3;{ zr6VJ1Ck68Ks4XF~=^tWa15OEh!?V{NdRkWxonyuFz!ayuShr>FAw^SwC$H1($2JVO zgJgB4mZr`>lx5ky?}rpr;jmeEqd7utNjTl*lWcrNN^q8{o%Pq2l!`kCSlk{mCpoqEp7RD;&uZNlGJsh&E7mQ zwF(h?7!!N3MEp-*XcZT@T{inAVp?ROvfr1v zRdUD*(pw2%;N6tnlJOO}KPmLv$HSlj)lZgRaFE(c!ELEG`gf;G?41ob$ZfON;RD;h zi#EFjeH%I$idj~9)IMqky7mhl2-Z!lgu=EuR1;+l&s@Y(bzE3Nb01#e;FGkStjgFFWmIjb0kw{cH2E!vsU7Wp@s9v1783B%AdvPEyV1+5O8{F z3dY3TUzjoWh~d5N|4C1|e-;H|TR{o`jm>{lQxV)=PWRORA_972`zq_0C4yf=AfPxm z{lZO~c7?1QoBDzzKrri-(G4AK6)p?smnhpf^JJV$m#C4wEr$#;eTp+W$&2x{8|&u= zFOG4EIrZ7)1P0a;@GU9BlH<~2IXILrOg6!_QyInKl5`qe)khCAJ2YtD+rvOpu611;Z;C#cO!9;=CAM zl{ZvxaUy? za=8>)R??K3!?Q1(8jER^bWGyeZIMEMo)bA>mz8%9d=ips z3J=8YGD2Uo<4n|Hd4jDs`kzONQ$bNWO`-glF219F{=te~EYn++yW)YSGhvQaJAKrJ z)Pp06vMlwZ&ORO6G?-tvhs;D^CHu0gG{|FcgGX)G&N4G#%K3&G({<8GAE-<4-V@C2 z+*^M3CRv42qlub0+qGAN#OW>t&Wd6C)I%G8C}iY$6r zTI}mR^X3}c15y!fQRAJFRmTIJX9<|}P7NbTSH{0ntDJ;6biP>clk^#uzFtm&-QDh) zf*KCn0hT+9;s3yZJ+d4B|3I1OtHrOQ|IVej-40$-`-6pcFG;`KJ@1hmYdS<`gaF-u zcjH=RHl8+&7F~(+raD5oddpt9_eEtybp7^BsawAO2#Y!01yD$V1K}ul%(ic;d@ylSQ z`_(=+@n8A36q3un`&IqUz$~FL?s!_q=N$^4BDo*DDr-hER221S;AO^=D}v*=m~A-? z?GI6<~%FtyQ;wq_% zNKoa=lYAlS+);E3)`y=(ek-?$N)dH~orib?Vy=zP`iQUIA95^_F^(ehMnS;k)9lX_*eE ztZ!asLOh%E_bjyOVT^{rFGeH0g}Vy!*0Y$SxGr@}aUH-9Sv9$CVHkK}${K2ly-nwq z&K0n3kJ;4JqM7xVji4nnuPkmXGdW&w@gDICn3rLa@>vIlvx`1=6i^kOWs4Y(Yev-x zd=%cnH^I(p-{MX~D1IL3WIc@SI58+7Tssqb4;tKkHhC}iC^$yi9dWx zrVRFIrQF^3b7s8PqeDOq=QPqzJ-cl&^Z#EU#SG)6gGA+hrssWSEbJeYIscQ)E~?8b zq;*UN6Zo6?`H8%YqLe#LoDOYS{}OJ>AN{>yv-dEPc0mvG%kC_hYy}@#+-#eZC~z)m z;G;R*#wK0P93IUs*Nrk!toyJdaTe)0$7rynsA#b_{w+LMPq zeY-?@a_i>>0->(uoEF&0gO&9vssIy5yWIx($4!w1N>1NOnj9iKAlApB_N@cvu4zvW z^-^r};182<>iU0HT-yh#t-B3DW(JFLfPs|G7~@8LOMno|OH(M#vAm>7=>s}RdPz{t zakOcw3U;>WZ92)(_o*w*dcxB>`$m(`BJ7PG(1fPX9S~u zVNM7~cTpu6rmubFuX=Dmzi+~qwQy|^E0~F1LO+x+ov;aN8mS}2oc9;WbhskV)>PE1 zN08$TdI4~4S2Dgwulsj=`D#&XUVV5??4tO8^l6$}=ZmBh!52nNJCnIfJ1x=&fp6 z|NrZEfX;WR{^Rsqq$G|a2p(KGEs66jHj47`@f*KTpiwtbW1DUaE{=asF6D2wtRRr# z+O+vKkLg}xfgR3KCP#NV$tdxP;tiSZqbve7DLo-JQK}yVQdgXb#%j#g)W)G4OC#Q0 zf=Ul*OuQlXy!xS?gv8ILQzHNr^2%jOF-C-L@aoSJuQKD5J3L+qJpa8)S0R=kSM5h# z5mbsdVodF)Q-V2O={?>$?mZq*yomQ&Y-c?9q_3&$9$wIi{B_JSLcHGdUS&!pTb3e$ z3IDw+;76P3^kS#%lV*W1LFBe0a4Q40YzL>z^pQ71ic2z-yw8zGKNOE6@AM{SsS}^g z(tYEN#<-6=o7_C4OE=Mm`VbjCX?py$b#Ejst4Q)Pi=naIOfHHVFG5NjQ3HZz%KhVv)Z&Tq)2n0C}iaWUpd7t9bjLYE;wkDbQ# zz?9bH42}O$gZDVtR_Ie>CLsKQgx0x(OgSRlbsH-C#qzr5&F7cpPl*}kFSl-MFp$IB zs0yOm*3}a+VOxxGB<>iGG1{f5(%g*=f&i((NO7k3l?bwFd2D!ZC+|=vX@LV*Yqshi z4#L-YdU5HzvJ_s~SGIKBq*JQ-_iq1Oi&hvJj|jv=;*U$=t=aR<&gf=~dl|P~T$lP> zIxCBRtT5o!_;>?ma(&7_(svC=0AH)>A41O-k3r}PP)oyw-P-Tg&6bgW0Os9avc0>c zqrksajL`p!q;TmLcR?bu*3Qcf(P~)jL>k@Ye?m&Ar0fR9!m$$~1?Y!kSyf;T;BJ=R zufM?wZODJw+trY{GaLr>2!!p-B#m@0QS&3G=qS2>sI64S>oD4!{H^&Vxi)YK!2!GSgJLnqV~BJo(}ettX941L5_&y#ST{YUH8mN#xH&y zN#51vHX~9L>;Q;%vKXAV&_U*`iox3tCt8Uzj7&n7hNe(0t`PKt4zXi1|EtB zxbc|!RjENuY)D_yC9?TgZ_6)u=|;ktqam%v8M}7u%VxeGzjwXL+CORV=N@7Ugf`pn z4?U!qL*brt>;Hm?we7;`kLxQoQCYID^k0 zio+jlxbj5BQf?vb*jsw?ye!!TcL?I-Pf|Bo5#q;uwDKn{GugGjl8ER+ZChy7B)e=s!+uQ9 z#7pqC(XaAtJyXscGFY8*<|9v}!Micsy2bq@kOZ@(ITbb_R?>~*H-Yhqt5hwx_ga%cwo*S&RKo8HSdh=Y5QzhW$U+5RT%O`HSF z-^4<=%&V1B)1xnIQD$&O`lS;pFri+M?puyu{C$XU-bg-c56&sG_0vQ~zw-DE16ySj z>ig!3$DDE?IY;zLz*sXwHhv%2wq5Po26!n&#+=qeo@(jvi zDD37t#LS}|yJR6<6z#fqo+5-b=$*10^=r?+e-D+J)&NwsW1XU(+4$6NY_VtNpOXlF=723nYz!GWmKQ09QT|DV_Rpu_ZDW{1;nx-)kEPqwm07E5-N z#nRxkAeFrx!!ml-o4~|sEzlhs0e>6u>Q6ZBF6s{l70ZnQ*^q3sX;;SasGtD1a!7aR zfC5;#StfZu{c8= z5v59+HiZvMMN(JG<8F0e_?aIq-FA2X+zY&c?PmmvMaoz-Fxgb~i(h9B{3sQuea$*z zL1G(#00WKJxB?xI-2Sw;dv(+d?n)#3gj_tPmOv#ChCG^;Pd^_P<-bDD&ZRfeYf&ck znk^Oz3i&(JyH+^X_^ph5MvRkHWbw~I4z-Lc6a07`v%2m6l z6?_rUQ9`~lgeiq%aK$Bex&h8%oxnvP_(vY?x&#D4Av0qV&aLUa@zml+?_E|xQw^mV zMs*?~sX4$H?8neeNXpW}sBZbknX!8Pm#p!>&IQYBg#$r5qJ1d$=;)qG^A) z#CB@N9gsb~Yu>*O@vgd4)Z>|f{+=lH0y>OTFu+yAEI_t~IxR-?ga@Kaos=Frr0KtT z_+o3t-vs{X?}t+E+TFsxhDW(~Z`o{n21;@GOi+n^qvL=qQhmTY&Tonl&kPifrD z`oSqF?CcA(aJ$e>mwnudP(Wi&4|?{harxAM+5`@=F~79(;Wv713)2KgbG)wq3jg7L z$GAo0K*JF6l4iOQ%>T`P7LhFLFj;l&$V53&ikjyU(^Xdy`tcm=;2rdkiiU6eVKfLo zc9^`oP`TbdNdaS*$!|AQ4P1qn(ki3cw?1=9|I+hu>q3ATq4s}vX%5z1{3(SWv1cef zH#~SZ8ou1+x;$u!f_^17Mw^O4pG^IfQ+S4)RJ)V-xb2NX9Uo`#2YUIRuHn{jwAu?s zzbuuqpb(jHuXya}7$4RvzL+Aa{M^q{M@RVF0WJ!?zW??q6~*@oqK|i%s^2UxUOXQbaQ&=WjG^EFK=_jcjoM$r{+1Dnux+lyzK= zQeIt_d}BF{$o-Ox>NP}*L-9R-kPPJ5>eq{fMz@`e5@q4AFnwA(B`=C;i7S}M-M#v= znlZK265NhCm_7b*f5{DST->aUqt8HH>zN^9I-`^ExB51V zT1+6!+i7NP|>2}zA6K32W~fn3@SEGobxGs4igyf zn|(**kXeq(oks-Q3Vzb`Rn2~@;b)I2Au z*;Ed?1Rq`}NMssGaashuC98FbP`-aAmF|wMUenvc@duh-%pq{0Bo$9Qry&$_FWW|S z$H{xuN@W9sA(d%x`Jl*7fUk0y*)vb!UdA`u$eL$QG33GkZm)ymXu{W@b zbp@961Kw;8f#b=STD<&^f^ThYi0B_jI3;`Y=6Nk3vM(Gg#S~~L4U)gO4LAVy&cA&$ zN`i^42N!CRi#L{aMedk-TQ=<=vl%GTGde4~e@q{VFBJ2Bxr^jmh(m#P^=n11njhfJTg}(%lok=lFe7lc2 z`oPPcr=CJWci`y{#X(OJRob83q@0*R#*%So<89{bZ}jpc;bv11PV!{asXHr=c%Ztr zZ|TsII+t1HLap&rN@*At-|B3E%I4Ktrf6ZxC3^2-VoL>C8RA0IH%Eb06BR%slg4e( zqISb2VIrnz*vz%!_Y%Ib#trh&E@*a zaUtOaCbMhap~$GFkWF!NXyXXgIsh)p6_SBv99cS(Xa6Aoc??=Cp!2OW*|Y4 zRcgjHX8pkYDK0m8%U%)dr>t4Y#_>f3!LM{BY)zv~PDue`d7bp%pW{@N^?73z7$Q5U zWZ#Kkkz78>U7&UQLfX2@-Bz4Q$OG<6CMYZ>pihLGG(H+l(=4F9ocTO^rVA9UV}Nd{ zVBGlX^AC3(J}=v!5*UH2WKWJj7lB9JiEAKJN$G483iE0CF)4e%p0cBhV*P&S=n5F6U^vvREm#E+#PK!kEkU`GD=*U^!5X)s6J)ydoeR-wnA{daS(7(Xgi})T)Zbk1WX|NQclGU_CaV zf{~KERz~@3anwswrAZ)jL$%asa4HYL6=tm2Rk|oD^BZoIq5FsC`t{;@b`I=?5U)>S z(3N~-4PPE_j4EtGFawv@Si0C*@Fezhy_|rv-v00{wS$W5kFTh1k)Ob2ikTO)g?4e#K z@o1Vqs_Ti=PCTjR)rV-pwPHnt;4{}JHmkvOLvjwi?w*X*4NT|eLR~rH8vsYo9aT@F z{zR2+RfU~478*|^>|N{GrV)JltDgdN{U&d1N#@Sf>Y#Alv+)1M<>fK3_ z@_&uSxk}rp5$$E=5n2x8y$TFzIH24cWUz~>*jsV--)aG_Nu*vr*p)VWwRjZ<2*TGA zP!O2q27u!lD6zoQX15*)ts_2fzTmpg62WJ_$NVi~-LL=jW|P#vuUTC_xDD|xx#v^X zXh8Ag_eKQffSe_o(CkME)0Qiq!zA~|-VtZJpFQKV?ZD5ZS)mJ@ewJ0qB(wt`2ThXN zt!GrycE7z$9WuumNm96z|NFCW@skWjEB3Yw5UBIWHp9>ZGT(_bJ2 z(!BcUY_S!yePP~O-+8-QYlD6fTQKSHvHm!H;4>=%zGDz+{S1y*08VG` zx4rYq?IJ3a2%h{%A7Qfso9%=X*`rLC4^ep)_ioMIwUgcgpNB_FPWG6tPtJ zve#t+{z%0Y1{S}L(6Y1OuO7@@4=M#~v9@@3l*)T@8`e}i6rTKTG1PM-vkoTsL{Za` z!qCS(bI5%vuTR(o8Swp&l|=@4(*zuaNlfSeGVc4wnjCa2DG;91$lfxUgqNHD&kzBE zIw|gVqbA^&?R$lP0pEGFNf(9;6~YxiYK0l#0RTCr?^mq zvF3r^SGfN1j8v8Zp{mmRcHI?gr-cz+^WTPVEd3C83%PtJ}_KAszuPND3 zzkQtj_}S<+7v4EZ?AL^z54DFF%Wr$~nX9JKx@GmbOSy0Y>WB6Yn_mO=dq&FIZM zkn#8kU3m3E1DSyTyRfM-NryR0KMHu4V?=0-$6Pp}iJkm(xW z@<|ol;n*a-OD&bzff-9pg4*0ZJ$k8Y@p((PHs`_k>a(uS*$_s3n_d<7<2vm4jd^tG zg?B`>&`QBWBWoDFJLbZC*<phv|RJK9W2y@NS?!Dp$>x36JTZD@5+Y+`KVgA_ zZ!JCz%)>&NNIjEh;|boT5yf?qyOLb&BubN-%D;-k=U}#^HSnoAhLuLBW-=DG5GFK} z-v~wt+H_v1ygauOTqHZ0TrRP9o#zUe<_8IU4;2lw!__r1vg|g(IDoV8Jmgk+|2EzJ z4yUm{*~)ZqqoxoA_f%e-G+B(_z5PKqJ_)w#67Q{1#%QcTn3zoiFHqiOg_)gNvDG~8L6JT&oyZTdZL9Z1#GS%23}q$Uumc|t0H=ibK<4e!ZAJ7CtA#x8 z$RJI%qr^7>ZpAnvi&rI2XhQk(IVwKe72v2de-Ie0QAaF=#qVZ5<5Vf=#QqLhzRz{m zrSLrQ$UozLJc;8~dnj(aA2`NZYg5RBkv25g3HB3qws@wN`Xo9gjQT0b#d5}45*nXv zKRRZyqu6?IymtYRlvA!aW9-D5sCm^Eczc_UX0%EUrrH%H8vcKho1a{s_y~F zi`oA;1_Hs5A)UH^2&9yFPB1C7A64J}bbY&5h!lDSqyPm=QV&vW4YCxnf28|R-c1pq z^F`U_6a5SG#s?|EtV#rL!#QFDi~m-ovbt8d2zqVjK3?_hm`r#}9ce+xz{gwP2h;6; zqB<7F-R}OlGX%Vj-6^~wRD_#|MuNhsaZ>D@HUN5@C;ThCAIZhU*$0Uqn5rcYRwYyC zb4WknjcOh^Ej(<+yRc9C(C0b7MQHiYj=sqP;kia?aGuBMpW_MsK;nEew>S0M*B z2uMUIB9KzX*i<&xXY%tT2cN&wNMX!?H3)2S@3paB%g@VIV{dh@!@8z2^FOY$Sz{e@ zb8yc@yJ9ue&sCk#`()OY)l75l8u)V9We#u@U6r?@3^iSwIjC?EXhkJFwE9bUlilzK z>BtAufY=~u;ro%IlWlyGL4x2%XfpLHk^zMm6W7$20sxXgbfVp=Ld?{5JiAi2NJ@Eh z1AL%@fVi|VjDQ@prkh7{K<)BHRaSV~XLESKwSpDY#(O!tNRvVXs~NJT!+XV{@iBYbO6?~O9TV@6g5Z*(2PsS^gjg@~{d<9= zaqMf_*J9f}LMq=Vddu%)u7bjZ49m0KeP~6#N|pVT!)D4}F-+hxsw{nVDVk1v_fr_%_mdEgN5&LiBWqMtIx@%n5xg>e^l z6L@vDw$|2g$iN(k`rR&y$b|2hXbl60vCt!n`V|M1p9*wF!y=kjAR(ET%bcOnSh6`} zTk&3(0VBNUwBu90!$I`9g=f1Vv^tK`+yyO$=8Y%mg~%q;&dI4--Nt1G-_lFpy5mdr zA(u3%4qhXu?F#YygGT$$hI>sD{AdQskD(i4{%mE~x@1t{yfrD&h~)eW^tJl9zwiN7;|~FX;j~ z@kePyZGX7v6OH8J^C7AG(S{KDX8z|(B};w234LO_7`03{QBqch+8@pX>Uh3pouM)}Xb4fk~NL;C3WR)t8i=xt;Ch--IuTx(zI6B|>2lh;z&zm$LpTb~= zK<^uLx9K+YuEF%pvEluG_3!6!Uwv{vGe__KH-Xq>nrwdMzTIXC0mT7sntK0rf3`D_ z!!hTQo@k9jCjn*P993^ zcS%e2QRDLl_Xt94;`s+PLhjO$?9gETkove*0xc%*r=dIl4^v+m7G=(N> z!&#YHW6WiI|6UO*aP4a~ zyq_0s@KF8e-+t(b*qJH~CjV?ZfU#W02|27$xcdJvg{!LZKKAu60e=e6Qz|D~P8x)T|TyvZ5z^ zRGv<+G;M^$cu`=piyZHy=Y&+H4_W!+pgJZ=J0z-udo8gzJLXL>Y&KRjCeTsRXrqJ-$jaFZ`=brDhY4Mgb>;e1gpfs z1Yi4**K>wEQ(J#Nw}jU{6xjQzqZy_OEHG%6G0!cw{E#Zy%A`qJv#8M>U&^njzWVAw z&t9{wlxvO}&I#32FRf0m$bXB}rfe|@LU6_oc#^aNgAT*J?nvKVNcEJ5(2Qd9hv`8eSpWvv z@&lEG_|qJpKi{ifG7%zun8UfwN}e%EsSHQw*H|zx>jPee_bvsdWUzZ}?q+3kw0(`$ zv@W|+ydwRKTdweRnYfS&(rUUT^4?`8!{uULHc$@$IFWSSobH-Ahid4930K#zy2;7= zBd#6e376aC0M8-Y@*yoDuAcF+8+8f3k=%0p#C&^vwY0H%bj*NLldh(1^5^=%dh8Sz z&Nn-nkDKlxMjqLnh%YsOZo72Rs}b|rr%L77Cry<3^$5`_HCcK@u)}u0R)!f~YGEx( z=11v5*NXM@B1#fJ@ja1JcE-aeZ@)hs?@zy<1MwYcYk>pRi0`LD$F4w}-GM0L8k1v4aMbFx4y8n<$CQhWqH_4L0QwKS^9AbFGa z=unI_Yw_EmM!NF|z3l`NR(P5{6Tr#T@pT=w$S;bg#;Z|xujq?2K=AES<$859DP#SP zY1atMQ!+j^B9JtI>@L6W=->eJME4CL<{ggOkrnNG8)qR$_p^Y%UG+bkL90&V|0E&s z2dL-2R2@sf6-ekA$8Lpw6-ZJ z;)kuyq>Y3C{u!=EYr(_Crh}AFCDfUK0RLv637yPP_sEUH4h4eUv)Hv=G;%4sRrweP zK;Xd(1YmA3kAtW#3&NNo2xrT=hhKsSjc`OCIXgr#+eQPbb>()a5(=s0-uJdsh2i}q z5&=}{{A26n6f>PWi8S|zB$G8v<>fxE>w_mZFVw3h{Ti!Q(y%Aur*nzLzJ)NCLD4(Isk;0n_-4LR1H|ljhft#%W;q#)hYq zkKs$F?Ei5LE$GnNe->e(h_EHg|B<7uDzwLs{O4s+;LDjB^3;Aj{Ba+hS@*2)uwnkM zKPaNBQ_a&Dc{V3j0VeD@rs@7YU(WdLI?1(#(RZ7^1D~ppXx2_DO53+nPMvXtdu(#V zh^9B0VJWx>DIb~fBp!=UZj9{i4(F%!olBmS@y%b0Nt=AE%c4@zRSuzG{kZ!`pGf9_a5 zFP~)7HID~P)a<$y05F!bdGyB5RI_8kulgI+d@rf} zV6W;|BKp!frq8AKM2LYe{!LLm>I(J$lV_anaQAQj9YFc$o=1z*o*|1OIYztv zW`h4+msrK^z4;NZP4L!cHiNNGE-^_in%U;g?DN~ZA7vs)h|KI#xkk#|jZ z`jDKBBis}ld-?>w*jH#^f+5`<+8{@Odb{rEm)-%p)+3(N4{wI2>O5KMbWES4<~v0l zfT@@GSUd>mPR(_y>V^CHGmdCTk5|@`R*udI>F=(+oF400aJRO#;{W2MvFShV?oE|< z6@Guy((2J~^rzpJTl49I-S$qsey$Ksbhk5Vbu(JMrDNSmLrruPuZR1S?suJ` zYBh&wbT?A*$8_p;Ng#GjQ>={yYN?&q*SWigcgWZRC&oHo$e5H=i4{Yf6Y+fA1T#J8 zfu31=m_*|B&!}JA7UF3n@;miDWBO9X>7`p^mq&r7`kt@-{rku!CX=dU78jfH*S5yB zs^&)2nAfVia3!}7`6jnk7wcD8P_J_6(Pk7vmT57tM@jr+pCnMOMj zBbD|S2hBB>@kUQ`5wLqDS(0bVuQPLQe zf}eVVqYZ)4D8IbumwgL^ch)}oyfQubwct(OJ+c`N__=PqRL+QsxJtBkc)t*m765ckVgDG+8XwR7?usGi~*?fup;xvE&+BKl0ZRn5RruwQp zO4YJrI_9Yq?aKkJ<0WP^#_8^YYLq!GUgiL&*H9Du;-1XuJS<6;uPTMVdBmjPmG6Gg zF{ovy`XzR)#P&?No9ydw&4ky0eQyq6A^Jy18uI8R3qGJSOCMx-*&+G3m#v3Q*N6YLa z9nR#kep0r?6#aIWs47wQ_3VAhfKAJbg=(*RX+On}XK0#f9PC(?&|L*eF&|}{O$!ns z8h1?X7qBl>!cNl`90ePWfS8bU2j3$!_CPP%mOEhE`e0&j2ETyGKSWAaag5sQBHf+jw>jV{f>EofEieo-!Tzzd7cB`Pn?@a9TytKEC8 zw;QY@820F-@}@p(Z;1DAlc)p_4x^>JUw*N{X91c9WfQBE!kC)GV-|<@ghjgR{MiJr zLK@k`scMJ%Tkj&5O@o$hesz<6;!Q#SGiNXad2rr=#GsP!Y$Q@Z$1 z2Kx3oZDoB#oV@MuWccl~4)`y3h=w$|U$e`BGxCNopvBMY=B}BXJnLAo=rZ>nmV4i= z7@p<)Phk8f64G#6EigUAaJeY`x|IJfV*c~R6%XzozUCq>g_TM8S1Ab*qnxG_7=+k? zTc)Kn(lCZe2wKHq!T)HX-ItW9e8(f4O#j^gf8h7&&Id{;!OW@|Mvbda1x5XVmCB?5 zY3qel_3|d*hz1ioYRd?+zAvi18e>nlAHA#6?!J>n!_YzS-1X$mMR-g~CxK0ZYJd=V z=?oRRK6eN(yID9)>Z@clh%8ujhS!p_YSR?I;%%TZCE^X(Ur4ti&YHA-B!{#(Pd zQKi26%!k=%sWD}89uKlZz3wNnJA^teCh1Zn2j;PvbLUE5qVxG`%1!TM8qANrQe+z% zESQZ}&q=Qhc@qcD{UqbT-4vqnmqj7~+g!%U?9ytY#;S(Jr-SB*5xY??`m|RNX8$*} zOwWlKwu`^qq$?j#=u#)i!&v$>A`C02dW{uA0%1vTH34|}$1}!X&lk4n)faoJj&v2N zzq+^M&oEP^N^Nx+q};^Ozs}uds=Vqtdt<# zBw&`{_&?&uf6;}$tium= zv!7k~>|fyG1;aIH|Lz%*m6daa=aKt{e|bXLm0Cej=!cDmdyPW*qRxC@seZj+aV>Kt zm5NB{)9E~Y{}z{}k{1Cj9`_lCplUXGO)8^Icbi^EKGo&jFO1m|6NyrgX?(t}-PTR_ zfS{xrk<4?2K+bB+mUVKvx`;U08mucwp(+%R-aoG@h`@WTlU3v3rIkkek}q_@3h|B0 zqotpclvSBdT-1n8V$d^$#-K%y=FvGRvfRYXVOelK*6Qgow>;&jPD^_oJLla~Q@&rU zr#xD7=;K+X#KG-!p@=;n%xO+RX^s>OY- zXFt;tilcu^j_|+K>cjOff|!gBr{0 zdB!18wPj%7K4j9r%=5C@58mHttJZHF^L%iH?WpSmcvqXOcsPGWI+o9uHi3PDXDTGn zzTz;ePcX(qRwG0>|AGk&`O}0^A6q__zL6W|0~z<=$21@}c?>EATv0B) zrc+vZ?37iYLUM2tZGo=~S#206?<)Y$Uzc`Lt8xS~9U8pDT#}VUdGpdy*#3${r@9w% zS(pp%T(MRUHK!JbVFlF##52G537)d1#@J4~&QiIIY-2pI51MT|`HFOa^0vvu0Pu}r zr_qz9KC4Lj!T}d&&}i=J5cT}Gk|@cD54aH+F~pbQ4@CsahKA3S4>|)wOgq}`cQe4Q zTIHJ&&1iQmRoF(rBu2CzBJSAF-Xq6Kv(5ubDBuAoeKl-3AA9)G!=MGm!xg}a`qid0 zH-_DObt0lp0n2 zv7uC~Z1Okcc;X0;BwMIRmVev#^PnPFqj`OOt9zLvVxVKVSY7F9aX;z{)(tp=RKla_ z$u9+!t^SpFveZr5(KoXgfMS2)q_m?~E2wCybGZ(N*xx-x?3ZR*IMR&o>^f@Gzm;Il zP+1Z;XBJehsAEhfAd4wg!Qh}?&$d>Fc~VG%I?XSd{pSmNd+TOQn!R3eCr26x_OWNm z#C%EBTMfcysVIn7mp;WdCJ5iB?G|O7HT~`fRni#nGE@X%*UpTRWk$d&((BEB#0Ei* z{yZMr@*)kqLNw#KQ+E8OE2q6V9-o8_jt`z*9E8C7&Lw~jjx!iacTu=`8j>XFpYNiN zoL|#g+S6@bWE`73p0uUVopu>8TYRV4E@L--Z8q~O`zCRkxPke-Km#KQG zBX2agA~Iq`4z0(tSuH<8VRLvozqjf6YU0?LmcOTg6`p3#uXVQ(M~1>t&yzDrf1f-? zGm0)cvn?$Uz@ihZ_f)No^S<{9fyuG2xvO6B!tzefB~`@COI}bu($gDZo$WnMQ{JA6 z`7-`^Hptf&g`CAYemc>!o4ZeyY|KAS5Mbks&ohA?$RH{$%_*W(2<0(?Oi!hpt|PZW4R%@#-261w;dhZBeW8Bu>K}?ompW2yG3cIEoEw`pwqYB z4|#ll3VU?Ps!W6d{PHOF-=gQY`Bx4V*2ey}ynLoT_k}=380jcfC?MNvIEJn85;9Y^ zcaA>yO8jWEz=%oMI1^I2OA#8|4UX2YjIj%Zd}_4E#U{Ut5&Nz8M&tzj7muB{XEi7E zk}x&y+(rAgJ47T$dv#}WG6W8q?d{8sF2ZTkt2{EVsEoGH3+f&i_X$UKf&ic)e z#)Zur8u&$a;_fSvSn5>YF+edaKbKY#K|ViY6`iW6U0g)LUz!!L?&o{V469dticvl` zzox0x`m^0VS0V3XrJVOn4Sh=@@ly;WjthykLc<)>_}&?_eY`$PW*$SDK(05IPc3H= z%k)STOG(uG8naPp~+v-j1N z@YL6XpD51&&W3#%&1Hlm1d)^&cANGcwb?yA*HqXh=K8l$q6Wj3BSz-sM7fb|{vFo7r5C1tEk`ko&MV&tw9dd>rm^8CNWKC-}3C1=QrJv0O$2Ge0Tc!kBXJ#!tpi zrNCF+r@bMSGvuGy9j9J^0#^5*)i+9uODZ1bDYBaWDFI&4T`}wiOf}EWiQ73e3Z{)Q zw9eF-gEFgKc@71^>>|c2RTUy%e}JqLv7}Yd`Mk7V!ODHZM6DNxdNgegvwyBB+ME%0 zeW3QcoT)qvsJcD43FI@ry^75|L+s>tA31-5{$D%uPuoi_9gHN1$8#oO4*OSZ1Z1IU zBR-Tv&zBhbuM-jGZA_sA8dOSlJetOX>H2$64L43q6rVul4LF|2Lub1Y4eGeL{Y^OHp8gclS2<*@ zRSwW>cezQNK-rb6ra{|3`7{y&bxeH~di#;m;JX;2yYk29Cfe*ekb5TqOHivu{cuew z#b_(_W^`rl>o`QU&e5WXL50yy;GQ`mneXU5inNKX4=*~|5*BKz45MADF~`hcWz!Wg zv9*~l%O@8-QoP^&qVTUjprzXGRCxgIvyJh^v@o`yp^vC@x8LTC0$|M9Pi1R(-zn)Z z=8q%G^T{}7eh`li71{oYu@%q>`ZzIv{DK#Otq#U|7_yc^z-f;At5#N<5D!sB5CtuLF4FC&AN9DYgEwO?)R!OHpx5xw+dPX`MbkNE~1<^`vEJ+1In z@_sikzXL*=Q#XzX#c4Tm1I~$2oYRK)%s`1N)>g}>z!KulQTb~}$;+aCm3smd>fW7O zUD)BivqoqenO<&LdR=G$YsTdM`vye3k%EGmYDQ?mi(mD zUmVHR2}VBH1gukY4}bb!_j~-Cw6XRW6Qn&|AtJ{p#zDXNRenlVyu_^IYQ ziB3JrCSF@AtFH96%>$^IT3h`!zbW}CbWjcIpqk%gj7{hR z%X~BDr=TbU8#RQ2z51+E>3CNO$Voi<>21i~fQuZj_Y#4Ufw@+}hkh$3>N?ewv8dRr za)6^S2kvP1ASL9|pU47!$ph}jD>zrcsRjMjRK49Q zD74~&J{9TD^p>M%UWmZT2(a@jc0MbDszQYZV9vL|u0IW#K_ycYn5(O~N-c6F1JSZa=Mad0+=$hJXiSdz`KHS3|(6 zA$tty&O2uuVdD7oQo{p5G1vNcmeg~-pai--!$*PX^%)GI>z~D-vp@m5F%pPTRd461 z-SFL;Gmxqga_KFZ|24a%9b+F+C2{vYA7P0|h#AJJO(x9BDTQL{iBp($gq-k`U#`nGYi)AR_}Sb3B!*%x z4&-kO=4Ql}HtU7dJYy?9;PI5Cdq=s}Hb`Q(+dJmo(Ul`!vZ_P4>JCv=md1W5*tu%* z8l@PHvCw*ci#lujatNcrIs@EV>=`0H)AII_-S+iGl#tpAe<&dkrhEx%-imyZYC=M` z*N|+UBZllU<6@QjjcDdmXT#S5ooITmdy!^U2+Z@y;-gXE%9A9MT(lj$>!tTay`;=m zsbDxQgd3rh(A$?T-3UlsND@|;$H=KXT^4fS!!O^*q?s732)|ujiO?#qo$au<}7UzSvB@C&|2f49mQC$P3iu8(-&MdoGU73jT_P7 zN$eUerC57BbSjM zRk~7@XJ1tE5}!1HM~h&MtA$1q7pVz$*xDS5=MLg}P13y8^5xsC=P7FM@t50GY|jm> zPBK3NSX?8i!=)W|7s?aooU{%$_Vs<--iRkQPa!c4DTGdY ziV&_#F*qk$b@bTU(EWW<^q4De*54+UOFtNiHo$drKQ{RnK~}BHP>wK~Ty!5J#kV%^^W1npQd1g&I}J82nm z7zPlMxwQ)oI;FzVjQ6y26sls;%Aesfh~bYeeWgLd0FK9^qT?-ZB?D_0o9e)eZQexh zg9YenBA%nmh4Zs4q!TSDMczg^p}d1J75S_BNMM#e&5ymEZM?p}s1Iq71sN{0RO;2o z*RDOq=6-Z_bEBOqC#4~xq&Z~PoxrJ7`l6FgOwZb)*=Fo%dfre zTW4MJFZhQ|sq*Gz{C^??Lt@ zv=KD%30XkR9QAVr7-nT&)`_w^Lx4~AC4@=x?e9{{P?U-dL;~TqR;6hUcf56g5!$CY zYd(xYkOsxn^BfSymj!V=neD|%NL=zqwl9^?D_Mh%eWtBqy4#Ro;~PZ?oJHg=-nZJ* zp&jK^#w}CiZ$s;qjr)ifM#b|rGykeYDm77k4Ez+XbBu6AL?veW=W{jh_(3^Nh#}?6 zVZ(+Ievpl7VPP_Ye_%dCMB)voZQ3zpvgly%1;&=~hIYI9j9#_qP+Cy|1@uXy9G_pZDhi@v2{QS!>JZNP z6Yo5uOfT}4Nq^V}#+Uqc-{Bb}&eLOU*q>76KB=T!9vT^6JZ>4(Sv3}V%ygFTE?a;A zP}7Ta!J1Up$2_(6(HW~u<6Tm@FLRfu#(T7nB-k$Wl)ZIhk(CZcVkHwCDSG(}am29F^cZ-Zvd7KFn43#cr@wWm(?yxz5TflC3kc2R-$! zjMa;I^%4+UF9tdiRunF%AwIbhlDqui>V3RPOpJ>{)-WTW1Aom*^wf-^eqh^Erm3Tk zq;V=)B(0P8wn{*25?f|q3|9PtMtNdk9RvGdum{{tpNVzvl7cqdCo=G-1qrFOD*ppY z9^*qjzVfR6DGQR6hVJX#8JzEbuHg&G-E>8s7XHJvyg6F-Te!Y^`7!|O17XEd+7Swp za`FNu zzT<>UoU;(kxSo9=MUl)MDZS$);sg1*`uWx0-k&+8i21M#Ea_waB7$s&#l7D6SJ3!TiFgx< zbMEwB%+4y0TKExHy2m<(ja##hfUEh8(;kmv|Vn z;3A@!kTpsDT~Fe@O7ik=%J^@Ta)ZupX}|kz2*_uLwVGo0hyS)Q3wu1mwJA7LpPx8= z9c|f09a;4QJRoWqBpLB%G*CjC;Qg~$s?E4;RJU=b1tByHtM^4I++BfnLXKAGNU;RT zX*_zu^9n*RN?yU+=#Dq4D0N4`V5NQGBrT?vx9pPK3qTeijAH+VgfPW|J1{3%r9Z+P z0Q-%a-0h10`o?~`5YqMJdJL;VKwx}yK|VX5(g`vqu?v(_r$O)EtLv-R+69$s(TG=i z9)IbV^L*r5&M`Hj%!p+9ur4RQ}P+Z|7DJ2 zpq7c#J=18ahcEIAwEJ#vSkqtOdUCSZ(HR6{Oa4L9w+%^Y*l`;tP&|t&q8P2p@g(|| zu=VQx=@vh!?Q64WYlqfX6%svZAJGTa{3v~mT7bBY?O}@`F)v;N*C0VJNX_Ug4_JXg z5(>j8SQgLGxx~^hkrHXqd%iTO~zR0ear~bu!q73 zRaseVXf9S6M8hi}BVB#{cv9$7Lb+#V6;3aq%WM*3|mM!T8$SKdb9PGCusedRDP~z$D z2a9XBQyNns(}0)~xSs&4cyyNIIhS_Da|Vogl!nvHG`k8hcs{byiyW&sp5nua4zdA? zg_^CWF?g|NMm;M61C`e(S4v?qBKBs4;9t|#y#$oUjj?AX(E`V-_Hz8;WwKE1;8=a_ zg>vnd@Zkl&!6u{IMnBttLFBO7%|*5t7oOeve~I~j;sKW|?NQ_W&V>c>w`ed*LG!(t zcJS5>BI$oDB7I;(r<p6elxb~~z_p9iaYg8B6+;=uB`(e4J5GXNM>z6`^dy^#IO=5xD+s6+rQ`gnfpo9K)D;fn?VpRTf3Lh zX1xWaV3ZEKzB@P_Wm?8}ZEY=kv@Z&%I=a#b=VKD%!j8;BCHJGzv25*^yl`ze{Eiu$ zOZECm-Bw%a4fQ9vXZdwO>fM>a(;41^%wxPw_(Stp3mJ(5fYf&}**N9N__DH0h<5mo z8X43VYEt_ggGurro4qJMyR$Z2mGRya89Zm)frQe<%T_=EL%Rue*-Q@xNjdR)-8suB zlP;Oz=WT_=D@?t;>MBCcCc>y)y;zrNitL|BTD#tNcR{NgZ&fo=^B<2r^kN-zE)GrU z_FwxRO!^wXj*E*MDUOz%aAvpajmcAdE9k#lYBl*3*sqOmfhfR;5D{% zV*>C4#8_hZ=Pe<5Pez>X`1frV@q6qB*toqFV2!1e-?090ZllrUhE$@>&Q*%P{j-fl zgP~M(R#O;djPc`JKv#`0>Mpl)CVns(3yBuzW^>b++c(`Jb;!S&&MZ8wIlTci#4s*km-W*l&n2@X@tXiQoQiWN{h5qnzc|c z8YxAEP38MlHP>0oaaL^0R=gJ%Czpirr@fU;LR*C~TLDE2y(0_}x!>wVKNJO2Kuczz ze3}b|uiym4&ccCG+5rC>b*0+KA#4kU^+1q+=%997PeeowXN>E<%NlB08^Z(G`vhL z$jzc_A)m>X^wH;W1FB$M8(J0|z-H~fH0g#Ljh8yO4_Raf z5WI3zPTFrBX_vy+u<);aAu{yUh;Ki=7Br)uc8)yq$!f`MTda&-X_7MeRWimOwa|!b zjYfU1|1Na5_^cmkVZY>icmvmg*+(?7TW@ltwazem;6{}3;1d~%sLyo1LGv%l7=ikTvX{p6H#_`nZSor`6< z*_d|Q?;tyW)pWiCZiLl>TkJYzhC)tq%JfTCGyZh;M(rNQ%eYCDKg9pv44S8eT zEszBiMe$n^si9F_d1|`j4>68^NdX9PP(QI=vSz#xAZXvb)qX5%?;bh!N{w^sGg^j9 zjg=>oe{328w1JCCbNZBy!^3!nit=NXXaxCr0Le% zIrnVbv6Qts6v}Ilo7Ehiz)cy8&&x^uW*tx+v1H!9O&M)IfD}vSlp|+gKte?O~Jd|bs(CI6FU}q4>@XekF{#UUR@MLDV@Hx z%zqK+s0W0ELo9^8B#|!E+C#(i_xN^CVfi=1+CEThN$q}BfhK5upJ}7$K!?Q&7dO%8 zk1w^50pGp~a$1G-j#U_x>56<$?zDE>JOjvhv?p=M4Qe>wdl>%O-#zGvpWVX9^TMeV z`64<)R#5tI-(@yB^kI$@wEOsOesQSW{_Q!GFat`^&Zz$cl(_Oa{bf}v)ltti2^=-#VD2+_m@~~k8x|J- zq!!Tc8w1UUW4L$XnYHUM9{)+PuHGB|mTS)5^4CItY+Ailqbm05-s&LH^IVmr`yj={ zCGK5Oai8ak2h-iDTwd-K1G6-cb>V+-9Y~eB)M=WoJ9q1VU$KGu{ZBNd-a=Gqz&@ao zF0*8J;DwQRzmdWePlH}uf#A@xcskNDtNH0Dj~vzw$T;*^{=13 z-aNb4VIT0(*c5cKmWYp%@=ayG|6U^68-!Nh=u;^I4$u{oagIy=kyk}C2f?2HB0#wZ zO`y#b4V`~>Cd|{3iP-+coo`lSyExtXX04yfdlV^jjo0YzW`HWlM~@qEfO-a$HR`vE zVdnT`32!(ZFtkOpY>Y|p^u3Ma3IO|^FmMH|@{&VMNbb=UFX&_|+j2o3tfj~V=w(R< zR>V}obn7=QNpdo(xyMG$Bq%H8uj^X{;?u4^r0b)Nn*ZIg$gd)M>TUyrU7 z`}_R(Jnro_@l9aO7!gnDMbol&9RaY(c0kro+kDHmoh&2{|3$Md3p!w->9b<@?56F@ zSwSYY4q&SuOMm@1jEPm1e{<0yG)ZY|3W$rLP=6jnvPM{w5Jw^}i*D=D!i^oH4}ip< zg`j^7;P>Wd239V>_fbMG38Zl-s2xj7G^Z1MGYPFqo-;W#D^MxZ{D{7Ng1BVy3phGC zJw7=(UDo#z8qoA7pnXuw{TxPF3Qs%!2J~^DBO9JqIOXR1SZU8q9ynK;WcTDkx3CSa zynI2!bLmg;&fHo{aBIs!rK^_iJ%7N5g`?whgUz^cX0IFL#7+Gz zLQjqU?jAqO{Mv{BG81zHr4)gdpwNat9V12bc2}nQ5*`)n-5f)G#HrJI!rFd-I4(2z zEG{w(;-=ggKR5uZKBSB|yNhh7V=Hl@xC}NQfzK8;WV>$h3$$kd-^ zr~thlOc{pHG@G#hl+i}xkaDHm;Iyjif_KC?+2| zgx%|tu-}Ujb-ptIeP#Ah!7z;w$X(-j9#cg|T&cT4-Z!QPk2>T4FfDNrB<@3*ni|>GRq5@-`)y|O{H1G&Ogtd_ElOK#b z<7^oXH1&XWpOxEeE}T@1d}myNKfMvnw11EoCjO@g3*>`j8+h?%YaqNry`O2sJQ@&! zOi2&rf5zZ9i*1DY_rqQ;07>b^c8@B<_p1`PsiwkQbRQ7e*C%hft;CcYrCR8 zp!*LZSNx9`kn8;%s#l*vjFwuOThBUg+V9Sczu((t7g_&(z2qPMAv8WTktFs1g^6|< z)C}HlA(_+O$k^E(A0+PMk+W$h!= z34>?mfiB&ZkPr3{9n6p^%%o3r`6vTNSWMy#0yOZ`P9{$A1DEAlZ3X!7!5i|s0@$TvPP$mCH>#I;`sgnC(}ERz6lXiW`p$ zqUd@G?3e_o^<4VaX}fDP7M(Nz?8lo0Y}9^C>pgY&v5FBZKRUWhjdo0A71mEhXpXHI zJV*Y3AHMfl5ogQ3V72I-Fw2WQT*h9JMPRt84!?0F^{cla!nc3817BTakP6N=Fx{-L zU?diB_iCwZ+`PULFhQYdxmfryti_V5@n^2)QL%g}X&i6~qfebwm-J(~9kA6}qiwBk z!eQw3pW5|@WlmRxnFqan#>AXHcsY-$$AuJsHr$l0J_G63t5{!j|6W`;_Qo0bnp1Xa z9yUOqhF>&Sy;f&uK$)>mhhkV${k_e~!1i8U|-(KWQ_nVax?{FFgYJK-H-Lahr+VkyMr1`!2 z5va^K{XRPPUJssHL$b6F1XNUgH3WRC;y*IT8z3r4$SCd4nSZ(qx;2w8FVh^0W4L23 z4ymI%r&g+WyuznvtEdQr`onI=zlt#V&Kz*`i>801N~R4-d1?h6LS_9nj^1+DDT^EmkO;x=fb{lnWVzP?6RHUNSVyB8Q%m!3iLBd+0Y8WI;z^Nv=XD^6sc= zieM`1@=Ph|iiHnJNj*z`fu>%>UkS2CvE3xpr+VcXtAG^;o$_S^CSF_~_rSL4z%#fW zocBQ#kaNQzFoVL>x0!Z2k|2hF&If{T#J6i=&-Nld(R1Z4KA4G!Z2*Z%<$9ynn{vX~Um@mpQ$*Byuu15PH;wB(Ah1P9=7?5}E!jw;^IKH^28L#sNN?~`Vo zd9IJhXVAwuUY7+*fI$}mo=)=2P7x@20^li6oFB}|=@iHM`K(AY33>myjUgDvu$-rq z&T?}A+*0OK>(P&n{=lXr0L6AOk)dCMOuj&iLF<>%|D=GLbNasj|jGv7)5#p{LUBa zXP&|1UrE!>@aGwRvw^9jZ2c?hiG5p!=$QbYUey^isl5zUy59}W4tYV)9?i7w>3Uw%|4qtI0q z96~Nn1RGX9gNrwoFaT>-SIj5r6IIR>iEnSreDcA~zMG+FXZtU{Q#Pijy@)oKv}nQE zra7;$XuQV-^3^|=j+s1pBgNao5_BWwu5%-^In*E$VF>O6=pJ2u5Zw-9t$;bdNA}_W(n8 z4f&hr`@Yxr`Ca#Qo%09m`|Pv!+Iy{y^01h+V4?VBVHULuObGtK%rX+2B^~LfEP(3E zHND#N>gB+t>aZT?!LZmXlTa;KnvR5CLbuKUS!ApXJN?~s?~Rpo`LtNkh;IBngeobq z!G2Lky!q^*>k(`CWa5n@Y@}i{gHYnsH?-FWdqBmV%Y5^1NpV;3^bc|+j6y=H)8B6B z^^+Im_#gR9?3Z&mx}nq(1!yxM!wIAvy*_9cR!zRNt>6#~(h=yo@v9qNJIt~3wpp@t z@#CAVLMUtHMR6K_e#)d~ER4-uo*@TRR=CesEeei;8X2w94Ggj@@t?YnKcz}n<*5$C zeO{I4X~oW7hQBhsvS|nV8JUT>Se;#zFjR^@t*ytMhG#L8dzLcTFB6U+rZTW&7kL&E z3$^JLj-Wo}%Scb>Y=2zuJl(vPh3Fs#85~)P>^9bnM72cVT?tjgXHu!2`8%IZ94%Br zWXLYDm?ZdxXUxlA4k)$(GYAcLHT%x)@UxBj(Us8p#z#DyoG-)}3!l&4YCWU93*1&+ zOozEz|D4I2*;+?)Qc97b1A<~UZBJ64==#I3s(gFQlO+@Rhn^W_ zEd)PJ%I;i2^wNoppqbsTo^)^e`<;Y(otTg)P*?L&#!v%^WuSdQxb@L2py|x;GNdhZ z1a)f}DQ2zGN%L57%7hU}f`qr|uJ?!c&agJin%&!?07v1;>Yu-nz0|$V%H)+UCqn?ims?5R#m{D!jk+ zzXc>gZj|fWW{{wv?V}URe?NW0ShO?$NOaKDJDo5*(4zZELbZjdSJ zlk$RjnoxE1IUo-7k3b}YT_rlJ^wni~sw)-mN`uR!W$G9#uOKOAR$gD=OKaIJHT?&( zVwnZybk&XV{lW|<$yKY)RIDhf}xYQf@WWN~@_Y-IO$VMB2FMcZ``;^HBtcVH* zpEms19=AJOju!)WGG?aLZa<#;0*Qm12bc!*H(VF_9Qae~iT z<+VfS&X_K5z2uve+hy{q3(sFk`^dH_&8YF!o%y6TQzook$}S4XH#57dQe})|voE}` z3V;WRw9nda09jG4qoK-4Do4K6qSHwk4eY4!*CXa@&-@2SBi!CN52FpJP68w~o-sbq zh+=ExLVvbS7j-(J*4jAOduGn1pjN-+uXn;N@tgx>GjaKoI=*U0;YTdoc#cF=I;S!r zgbGg)U<44ku@v>D!B_3I_Gar_C^_|xQLn@A{67%N^i8nd5&N09xM5Z{{G5_s@{Fvc+{`pK>G>`v#dY9pBfQnKL6tkr~~LmEk4=j!)sF z;i&=HMF-d&x@AHO<7pQtrnjPE-8nXalj#0H3jSkqaTjyJ{SAStt*u$n?j1}-RcR|I z<;z$c8E!7R5I0*sfny+kkIps%;wC(wzGmtL@s8NgplE8HzB(YKqPiQN%>8HmL*?(PLOJt!|p30nUuz-*)1d7sYu z9^q)*`?+FXogdXKz97O5=r%nG$WnRxZIDl*ut+IsQNF(owjCAM-`NOVwYEI;9t-hf zp1IY!!Vl+74jHvaax-|jq}3#uG+^Ak07;n+{RW3`F|66}hU zO-M4B2VthIi6^P#j8wh@(b#7cG$nqtNV(mzMLqYeChP!S#H-isbEMONHn>Su149+O31 zas?7`^z7Y+T5BJ0#Hd7{OZOtDaA^;#G=d^&DV2D8`_s3I(kzxWy&U z4%2u+@vk$1_rq+cr9_)^MP>d42Yq>BEuFp~(8kA^!Ce&tS+z3xnUYA@^JYh^=|3n| zQM~2tp64!}ryHi8@WZIhzQBiUVH63}F-*1bCi7o_&nJLpah#i{u}o{J za8DynD=5}RSi)m{jJ!Q41}1GDYEocW^mDW5MxRcve2;a0+tA>xe#m=Ir>m2|QcSiP zDlszh;^&jVm3BhV(Ojncsx|B9@Z=HYd1@%s~) z0bSO%0i7(1m%v$2E6hL@nV z6hFCIGG-2AWip6ZoSQ7Zv)zZF7Qb0x4HzUZA}mQ4cZVX*Vs%TFi!_A!@F>K;K9TrL z(KF3J+`LSAx#^5|ejZWh^t2)CcJ=#w z@cz?NrP04QKoQfh`JbDR#JPj1bjtH7qta2RauDvHJ7f)GP6&IYylil|6BU zYf0JjhP{9e0N0CTgHz>z#f6415LZ_scqd8=`D=at$Zb^v~7B}O&m2Em8 zx_yqLCGaLR!X5t^69LWHvyT}Ct%B727{#}$eNLICJE`Bh(xe&nj>HKy1?&v^zE3;X zyjnWYN4FhI?|);!2CW*qc|nhu_9lwlPtzB4+NAwvq9R88rm^HldwmPs?)bV zGivX8U8ND-z)=(kl4>Ip(%{xXK=zzlPzneeIn}u(pW5%m8F(A!x7)B9-9A%L<0cs@~(>Hc5IFJZh}qFM)PeOKas%xP}Iu4HZ&0eM=VAei{Ou zCwBA!2vykO#R3F5b1#TAOOY+P-i>=)qkBB7Y3LVmK36{$J;65q_ngZz&i}M4d+btQ z{;d{9@l&n)wQ% z@cQGhf?z~6fHu4M;aemH6Y+xfVb_Lt}JEDZ}KYF0GA1`W5PhekJ#Xah&Ll_JtkA}op zBqUuiC*ay;L2+3^V$Z!yq#7p0;RxHfJ zw%d`@vXzH=)}4}K_zmB$%vXOiKl0!Iaf3|{;YoZ&+l61XiHt(w z=@ND2_$Lep`fpp^qcw+zL&F>_B_nITpy)2lZ-xc*xe0o_aOb26P**X!S9mbjxoI+8 z&lE%IoScqwBq$@0!&tMB$NN47*KVsR9M}Qj6FKnstZL9t)W|V5a}NhNwOGC7GW4_g zT}RAwqwS;%zAu1WDq81Lte;(-M#I;|wC&2sE^qw|nD7OFVdEASc&o2c+ zRr|Tv*LOrdv|Wzo$`JCuqnu8%)G?!;f*+A=y~uk{Y!%HuEDP$0kj@~Jp+(O|2q~Oo zO!64Xuc15uO|_=cwYbxBuf(*ru2MTZucj9u*bOTR;G+bwAV3nDDDLA)`#lgGAA?;= z_iLutXgcNZWVHHfKdU36AMMY-yHAE-v^(r;OM;zt@U28=^^&i{L;rPIJGul24LR%r zbhMe9A)6o10#5vCP$Khdi729663VB(@=>dwK{j59jZ7q{FtlKxQ#6HgKP(iS!I+)! z(T)Fj0lYyB7RndrD1?f*AAc#FzT*{D+>^Es~&yowt#`N0_soo zi3yavt?OfU*tT|{-g4yRb&{OTzoixY?NL2KksBlQhGEfYdhfdFLqb*&3k!r!yrsdX zkW6awma|O=H^oRhsdUVnCCMQ>_2m@#ADsryJ;j4XH98qB? z9y=UV*H1c0xoQ!$MQ?Y?&)yf3ULFuavAKJq(>I!0_qVc$sF{4&@uV?k0~p_ zjvUiQG0pF6uRivXjq0P05)NXO`3TYMrTiHGMtRd4K?4wLZoj*Qw+)1J+Sk6q<-pKdAiN8ieV$g zI7%QLqIbzcyR&7Zm`r)^iSUXAzr+-Ur~;W_of5{Weva?`bGlkJMX0l#%qsz`6U^BQ zfldiaPXmDS!xi0~8{+fI)!3{AjwLhL8S~+W?!msv_o@P(d8=jULHb|zP<^%F&0FL~ znDPAd_kWS2hwIaF@SAzQouT}avjb;G4=bToPb<$;$D*LK-2uf7x_lHR5Y{rR;baz+E=H%^PUDpK7SVZI5+;1&oYWiva z3dm_5GvH4j;J*jj_b`P*VC? zZvTS7;kBp)jwv&kACmwC06ZK@JhDtdfG6`$p&$MR9qBis{trUn(inNd|F_Ykl^@V7 zY~O|>e!$r9?Tg}lM#FM@Yr42^efpo6E-z_;)y+;r4fOrXP9s(*ch*$)fa|*9=vQBI?9rHqWh{$csG<0YIzeUvu&Tp>6{HGRLv)JN5pOe@kjqqv8OsUJZ8TJ5#a2A*={$#r z53xR^8erfAUY=ETub6h7sdKscm6D0m(umdj&=4v@h>DG#OrZlPA6^uBXhnD13a>oj zct0%8K<>QNM)DX7a6=ht~%d$T9*^p%Z`lmGKUc)EY@sW2E(8C5X zg={e1Ido8y0Rkb-Dv#&>_jHhivPCWlN3yJQQ^CLCFX_O2kxUnO@j<81=`Us=Qw((R zTTEY*=$^>eY2i*X^SRAaz&)dO2tmU}7LE(nKMcUR{xM&!lKNJ?v~I=Wq6_8>HpUb? z&uT0T>OHVH4@BUzw2P{;5q`GmD+FJg3NzB~>fN1&MGzY3>~Kg6XhJSh%m#%2UZ1Vw z4^W&k&T?|`wYCiqbk9#mY0&@clgWas)ob9H;R_8qh6C6Kg4sG-k;Z6NsYg$jw!F>J zBhDwb)13sB4oUGyOCLhOvfjh>)cs~y+gqAO4!G+QN-uZp$Cgys>o0kH5ozh5Bbb?l zu?X(a_ph_Ug7$x0$!*v>oGeU_yf&^UVoe!mO~ob213#O7wp`clW!J zrE_30OexWs|0#zbwbeCJAn3DTbD*6*ucwEmO{^uMQ_JSv&%&$vG@O5an*NV#okO(S z964uBCn6p&`6hun>4Le~j3u*^T5O=9gr1r_h&{U6-(BfFP#;PNTK^R2YT))f*o?2V z@QUd5^AS~jAOsOHa+Q9)-M!Lws|9gbMqD804!o_e)IuIZA8%rC0e%lAhxaOj{?nQN z#RoiLJrEwlSj@1tKsNeA;!gqauFKyFZ@uTU=r)%J)^6yzD+k=bBhdV4$S!8D@F%0ik;q%Lx;*`h{ zX(z{3!8{R=(Xj3w_j}g+*SQss_QlkSB_&nsWABos{-6&>yl2hC(20zQ1@p27oKO$$ zryj2+o$dM!ZryCWi|j4Wl6+acDAE_6P_?m;z#Hm>hHt?w&>E%D^7h2+UN_-&FfiWc4MW}cBLti89|h8^6Mfbs{ouMgE>9gofb*ub7LH(2J3z+ zX*K2B-K<{XDkX=}5PJ-_vuPn~jKVN2jDUBfN$OoNgFttacht>0+m0XFO)xqxFtYz&((;++dk&kz?zgc0r1wgn!&@^AA)kdVG z{uxcnpn$Z&Vmx0*qKk66+SaFs*tXaA6P3z|;If#c76HPfv>8I@)trweyrKL3p2cwO z+BZuriO%QjKdUwW)Q;`0($K9TH=?qPnN*%h-Y27eQ)&5@0z%Mu3GX`-jIx|-_7 zhUBq$tp%Ze26wDiL|OF+Aij)ew(;oswHi%W9C@vNnO|fN;b+?kj|t08|K@EV-xGZ? zL{FK+6l*XVq>QI-geCjl6MuT$g8VWRlI=;;_eUIed*lTwPHFjP(3 zWC+UvKTI#;C!U2@qKB(XV9MV>KrBZuEC;tVyXg2*GINuk{QUm7tlGPU(Ui5ZBuUk#sL2*jLA?+7I7h0Y|hX>p2-JSo||%K(z| z)+v^RhhTdJ&|+-0kp+9wePN>4eN|GoNkhMCo^RHFf?jvX!deK%p z?o#&p1@u$3O!$opUe8@A5!H9dGH^Pmt@}!(i74k9q$*U$rKH|~qr>Zhe2SRc0iT^) z6}1g4q_U@;%F5zl_N}}^A<2jRf&z&QQ^ERK2?>ktm7IWeg^?A5Ct_%T^z2f33JL{O7Tt(Ioe$FD2Hls^EW>jhN3N)PZT=TCMvi0DZLT5 zhGhT@bj2UR;z19VMHRpMpi|#9j8s;hIKyv-HwRC~oLz1v#ooJPyT;62KWM4F#UF3( zx1V)lKPZcxp%I5)?`SXeG{!!)Z`h>-c$>gjJycv+`GgDVZG<~-#3+Xd6bU@-)d^7W zE`pSpig5KS#fY&J&AI9d2PvXCYo;-ZgTNr_ib0Jy6Rqe$7K>vbH5vX460zJ&7)>p= zKTn*kvPY!wn7TJC1xs_X)j)yNOe!(p8D17Ot#z*+ZJtx_gx|+_3;#|2IFFN}Q=WIwxWZ0s*2HD7- zIEv3+*f=t2=8dZbl3-%s7D-Jv)i1<9N8^`-Wjaik;d?dp2Nj-tTQw8GxKan$KK#>K ze2ABYq!?CFS};|?(n-9m?o4n9wR1Lade={)&Pv(e()QSK*IkC;EJynJ0q1E#JMVlD zg5jeM>$gmuH7d%VrkV_Lr`Izz*oJ(8?@t&2x1BGTeIGVz8Z@{)6RT`xo)Fn5ILK`l zO^$x|O+lka_nxi(RFBu=srIBCAzwvGIZt@czgPciyQQ+>!YPFA>=oRna)R0+9jSo1 zh4|n4Ki)cfz;3AeeV_jeHmtV1NPaxpZ@EZW{(DjMaWJ>18m02S>#6YCmwLj?38S)3 zzqXYhC3+xX7vj#n2y&w44ELx-8aq($GO2?M!1ba&H|uSM8{ghx+Iga@GcLVPhO-LDX~4gt)Ezw zp+64?99A8LFI^Nh|L&bM2@Q`NbFNS){DCj}xEPd?o{UH4o>BI+u{D!=tDG->!q3i2 zDc}fGeC`%eoz?sYQH=(+NLd^%P? zynY`)z>#@KYBdqXdu0k<;f=TCFPS@A?$=6!`nlJqQ@gK!7aVzcLWbm_PR;n59XM1j z!1OWKAIwrCrm7}g>?hT7-zYu0T-_~RTV<~`raAn;AOZ2CapuqJ7o7ffi?*YALAlne z#^T+yD7v^>=JOTg2EbC1Hhx$u6A|STLxoQgcH@l%Th};D8Nf1pI*yH7<1vywN~vE)YPo=q z&jUvY%f`c!8CPrHKdJiVu7S7ZAc7h#NA&DXrG|B+yU^#cwVqHeBFo3Sdj>`vpN9T> z*_fnI*_cENXy$i1A&t;M5^L0EAlZz5Iabadc&?Z;&7A-J{rCP4!CVgc{jaO=W>o2=d*tGqYJE% z94@guG2862IevQBuXV2cvv%`5I0Q=Vkc&2R4yL~qxIDN2*^eZbtaq9K+v3>{c6_V6 zQxYzf{ROn-G_6$Mrn9@inmmrSJA(FU!Sn8FRax2e(UEJ|Y*1r9;+7IiX6L8bS)2C3 z@wJ&cki(!@OAgt}`L|BH1~V)4LK#*#=zS-l^um_Tt_M5pRD8*%G_AF>mxfFCR9i z(5G`Wnaa!g*SPP}@)zyW=zOY{KUOZ+t`TdcqGqi;sb=_l=x5=OnV55xAn)EGV zCqhoZNtIa>FDsC$S9GM5h6$|ZfD}rW4y83Tmy=06K>Q!ulUk0zHm5LdpR?$96o36S zkitotf9^n=RQgWp-+J=9su8b4&kyFGX#o zPzI7_ek*W(OPuq}eQ&kT*{i3lB*JNGu(?-#$PUv~4G z*DY!3y!aQ?_a$3&J9_@9ztZLB1T|hh{PCE^+OXy!6LFfjb}|SUH9~c+tTxY$5d<+ zYWkrSv#^gwjS-v&CJtNPtTCR3j8mZ<{M1tCe^gPwe)Z3enm zB9dJ{elPOa99`E7F*O#{p{Q`o+6pTzd<5TAs@&j&GBI?A$D2AK9nX#K%TZU<-2dtHD9-=2FW)LLm zT;RF{4;=}12Y-df4{f&|MEV|=0fqGh=wGJ~4-R|vc8+8G`0B{4R6)qo4#`D&k;)u8m886Wrupi#Q}Z{D8d(DVSA7SY z)om{`Vz%Vrpfq>;O~iZ8=le=|q-FNtw0bvtrsKgK&b;YH55=k}%Zb^mT1}t;yZnCN zdTK_wy)KAd?Wu!qoNn>Yvpqm^s6wL~k25bwpl%`Q6C3DC-aVe}R$NJl9S=U^Aa~{S zfI^BHOfXtX@9dX1Q?SsBVH;Qj;-!lTW-YrVcI|6Xuz+5IoVGH5!EtR2cH+&yjapCh5Firp6Gnw!~L z4_j};-Y9i2d`1_Mpm+y54+;BjGH+0Ow9}Uqd~pY6AqY?{j4-*v$*Hc>;osu3D!(1v znY(hwV3WVH(BpXZ1)X#6K&|{whKlmz{d2>;i$vtg-R|#4cge6}&DG<+sLl4>3_5|M z#St(a;c}WUXwdIp27Rl?lbDp-BVo*%zw=|D5_(ug= z)DNu#u)qSm%QpaMB*&kp&fR2LA!q%i#+@AfKN=1YJ}5VHG}V2OUU7+9BjH);7KWX> zv-IXh27Ze-`f5C+^TmFf@JI|H#xd8#%L>Xh<`oPK$!u5OeRm3DhXEdcN<-)`7W4PW1r&sR>>NLbV?{?w5Sg?qh zU6PQe{NgEXCze2QCk+!^H;}JIwCwe^uVVB*69H+4Vqy-PU?@pf$@xrHb*VK+elpLb&VTQoE#hVi0_K`TSv)v%IZt09!UXBJ)hr6N9&8<& z_-aW~x{JQy#VdQW-=9t8XGMGSi~<^pc9T*9ysGV+-dU|?0G(QXewRG%alua}HQil@ zN**QOh`+IMWTY<6C!@b$IymPBHx`t0Q9SGY>Ki-zTeRmHgZr8+S%*!AnY8pzeTfUBO*}Vn@ki*fe((J&ommY9^m%p2l_9T%O1-Po$V=iJ&lkOF3R}f)BklI=5s;p{MQp!q8g3YYP{}Qto7x2skg)p7s4*cg4Zux7{Obc?9g6- z1z+CWgdn|+ED(MxS=RxzcQLA~Mn|cs)3*>Nq}fLGgKNvJm!CPMM&i5iNd+!`{6SG- z@|nV8AXK~Cwpn`V?eD?k1)o=qM2+%?a6*yC8;L30*~Nj9mj|*zaYQLxDXy>i=dVNQb?zI)MF2w$92-0)Kw1%tSI&D010ICe*N=~<8D!Fz z_qhYh&YMG<(Qzxd%82|k5E&WiqhYRTt`W-~C#@MT&EGO;UdEw^j;-36h2x?C~dbjH#DGW^fJ4f)*F z3upZHIq6Hpl$FL=6bsrutG-m&A92aN%4}|D6oyMNMj79_?@9qyt7xKrb|w-|rdQJh zQjuaBQ&x%{_~C zTH>L;xfJ;QlP-K5QK;Uf1g`{W6Vj`;o()*aiZ%FTq$M_DEptN(zostOyV5b-Ho|mK zjE%GeTfe7iGhMMa`AaY12zul#fP`*rf7;6qI{g?@Z+cC62+FdDhLQO2<~%8eVGhk} z5q~<87_?g!!@>@M@6wP!6K^3Vc|OmcP){y+wv*?QNfQvXw$aZuq5BmiGQu#QEbGWYZov}{ls zlgNDS`vwE`K}=PzNeo=>GmC<628qv)*L5~}x5%X2l3{8%3xOEoI4~Sewi_cpH5Gnr zx?h*+sBPCF9Mwc>{g_XEZL4*jbPf8#U8_)@~S+-Ha)!0Vs(qS>L3}M_}%We`{E{~ z{0nbpN(Kx_tNn_r`xBf`v@iPE$fXr|GP^TQB@B}v=V>OzJ%1n=bS6R}!fftT{vv8x zX!4V^;wZD<9p6E70OQSpP=x%D`Ncc3SZyxZyYLc=d5Q66XnQrgx03H{)I0b5Yxfc6 zJdERav`u}KY?Cb;zJ3vAD*9qFky~8U0mA{6h!pRrgqa7)vSF-gaixNYgVwQ653(F` z=v7iri(VQHjr`Wb>vKG*a5c>TW=5m2^yI0u3C0D22EsZ$R};5V)U;8!)OD+?&E zKU6#Ym;o+uc(dg4J$Zrx+L0k}#L@o9;@?Vb*sSgfUl)ND{r^$E%cVe0yCa`zmpthI zIqeB}qw2Y;I#D#k_KZz~@gbx0Cz69%chVA3x%QtcFnIgAJnWnNZo8aaoc%l>xw1H+ zSs#S^bw*I!ABK8io8zAMy6j-0E;wW4&ChXsSyqg0YhLS|`+6M(tmX)9a&)h#%%`8g z`6RdwhNJ7{WGnL{8lft4`DnEv9PcW%g-4bvqJ|h{B}I89Og74>+6t(Wf4&;;>d~GF z254{d+pZs0NP)K8r$f|lcIBNPUN*FUcA%QBb{>G0y8%26=yo~WM=V-CX*dtwBP|Dq zUr>DeGsZXIo@X4P^s4DJ>9$?!b**^&=8K{|SsRN|^wGtOpt)mk)8qG_1bU3jOg&$k z;;OD<2knFUNuulLKuWm^9y&x)jUt@352bvonDa;FH9$$uFaNz!|=xW zE|0_U-jc$}II%P3H~g-+)Dd<*i9Whx9 zw)J!}o#;ad9UQFjYukx0_Dx&NOv({TpJ#hemfQZkV4qy8s7=Ghx}@=TF{1hQKFZ0K zgLf#Hw9;dcaU@sZ1&_XvO-2;hHY5^h^%|lvLMMG}HePMT-&U30!yRE*>xLovPOXRU2%Yo8A=rH@f-Ygi zHyO0lSbcZUe(RoCx!p^6=&cpY7I$A<<|}w0+WntY{LdRc*nyO^!3W2Gr~D1|HO;{L zR0#w`RE+kqpzV~tu{l#-@eK9sLR>s;_kFF zCX2n*$tb!u3srnHiBSGgoi6U-ddFl2U5S1sFdE*sww2uC%3V4fl~->kYRaLI6DIfW zQNc^HWI>%CIV}t5HV{FVqJfPt*}!OQ&aWvSOlOEJsnt5>NfK}+{7e)-_vGgkm~{1( z%_3J!%<7tj`ATya%g`Fx1~Jo5huBORhuPY&W+|~%@#B1x`!OLh_@w%Tpuv6B7E?Nd zIKz)1VDnqpjG<*h6w;J;jRN+?Oz7C{d-;js5SgG4b9T;h^5Aoeo`E`8Q0a6JmN+vL z%1oqG6rrW2XgVKd5l6b1mzXiT*ln~x`gP3hF&Vm3_3s)J=^ww6MK`JAgqDQ?S?z}? z?3A;P!&OmLH*ToRlQRx~Aq}?KP4yPFd|aeE)v2mWa< zuUp~9RqN&_5G*L#?`OK2E*`OM<1>nIUzq@l%e}F+`ArvmFL)^0`|ntD{rm@~as4c} z66SgPf9H7NPr%~`z;F?-OX);V`Gax$f}=urXtGJ1422y7Y(o4rwwZe}suLC;v^l=1 z0D=1F625=9ZnE3jw6zEz%xx=NaeD0G3SOMSRxa`@4WBN|ix#3R6?f*-uA{xrJ133* zsYMjf5Qfr9RHK$OE8y3X*r?F7H%eeOar;!r58zY>K-hY(UpS0XbbO4P9m?`-zDNs* zbYL=+``Os=Vd@N>D1(o?D(gas>ER(V^BHJx2vFhf+9OT9p|_|zqq$5THU_D-Q1!#N z@+t355)7Iap3Dvp*Onq~xvv@k^ArtuzX+QSJxHG5}iYTv|@t~mCipyk8NhYWGE zpl7rA;?`jVPT=x+PDU8=;=>TVxu57G+hk}4FEu!jx7 zmKYDEfkLt5+o0D8?%x(SY9*2F0$CNhQq3=FlY`_W-(&=WYopltzJ=HuPf=fNf8ZH# zwG`#kbDciBrn$FU@l&t7G|?q4ntr9|JM?xWhxV{Wm3JJ0aMXYC=%K7=t!DF^M(GPi zjY7UvJ+tYXrz=XjIH!0u-*}3;%I#8MG-J*76v@fh07ZM3JSq>a?=d($XQ0Tc;3>aJ zIYTI*ezS{fyhr^9(T!z!tW7+g!UL{soWESM5u|G2!C@yna2j_ckkT zkxxW#)>TG&b4@k7DQNh?%%JO7I}XZ~w(#F?m%nGHvyg_Zj+3NoPUZK{PCo5id{M-I z6ZE)&CNewt=1k!tNH_UeQ3G{c?KI7$GkBpV9`%TsKiEyp!;acy&ZRZ^dt35AyNZsZ zK5kFT!8{gfhj@I^g%bNGdThyFc8wOjzK1fKXg+yTkWR?45`efRhp z2zo{1I3jyrgC-v{&%GNlFxBCx{+aV7kK;qv_sxtWA8*8N!?FPZfyaZO8f(f_F)Bas ze=Ds2efoUm`Nw6qYx&0WI3@6ZPwg+%#|%T%D{R)5_+He{qvvBtOa)LXx2Bd>CVua= z&mYC?wy-9y$`?6Z*x9ssdV<(oo*ChyyFZ^h9SrqJz9i+FvEW8u+>2*IqHTtD(!GaM z+uN3rQtfHV?Hl>{xU=ZK3frZ~{g=i3vko>+8X9YFo6KFSD{GGV`Hx{)s%nw^RIgK? z7F-n^>2i)L5PS9i@O>oq(Lt~?yS` zkL4jxW!pZ8bB($!vTH%u@Oz9j_A2qy60XoP@`!KbtsCo6q~r`*f0zs>L?>==a*JYY7odSb{I_Pl^(Qx%Q?H1T!e18f$_X;K2)(!ho%jq zL;GrcO)FAELQ`s6wa+j@!#JAS)j6!=B-f}M%MgC2dcn6pneevgWJIIpcfnKAja1@k zk%uA4toCBtY4O@Y0(MoAK2lG>$ISKkf&*d00|N=h0fg4K5hx{<6lG*iGMJ%tsJomZ$Q*>>U2x#XZft1Jnj(1J2fCq5M7U*ZJ#sWl-r$>iR_1R+38CZ%!8t=9kU%GXyh&1OpND_ z&gJ-iEF+~^!tNiWuo_P=)`R+>BR8+Eu(tM@N865-O$9l+$A3E|)?v`bF)-tBe0f27 zt%x2|AJn@jsh6A~Hx}BPJ1pE*&ehO^5-L=utVmi1c^-mWb6t7=R;k=Ar1TmbNt~Ft z(&%I73F}+>PA0iE8-u6c=+W4E3qIlmT!y9>$-GuuxydXW@sL4e{{MtY#{Uo|w@BCg z|J2Lrv3R406h{yATQ>?~r}h}lPvGVn=XneP!Ca zUxI{Pm^5k(Tlh5;^7wb8G`==5Q`tHlFNDC|mU`={`U|Tyq{ZJ}YM@##K?6>B`|qYu zjk4=ltbUJF3;EmX)?dW@$wSP^X{)DTi#NIW_;pZHhX+#Rhs{Y!>Xqv~E&z}NNN{?W zHN$F6l%CI63uoQJGMGm4@qvE5_eaOwG5F_fsMXD+$$&r=(e7F@bf#3p(D-9uyP<~c zaLq78bIY|K-ZZ{e8=p*>LAT*b!ZnnyRs+KpAqY}>6*Rj*>OX=oNNZ6&$OK!)*f^bt4w1=et2dN6gnE-d+K}@0vi&)Pu6YP4n>}=*Y;CcF+Wk$pST2SQE$oq_M1|EK(QMx<^3CjqAfuE=3o5;YC}K9M>5u{COmr;{Yp zVLcrcpfO%%Pjs$-Y%MtEF}|(*V*EUh)Hm_c8CEY&m5&VC^_Y)<9Q>Reij9p8xqxUT z^{ZrU&lvme63PQ^ldX_z7v*%eAyHq#gF~1?{CfqF&6If#cpzEU!7!O~YN`|$-O}d+ ziiQeo$(+kfJ2KE5bzufhFiU8AX2G{TGSca@H2GHMKUfQrpP>%Q z%LtoKsHvE>n%$FCf2t|3b7`^=W7v);U#tnca{eDzUl|rv+qI1XgGebzmw=#jcMFmN zBGR2hcc*}Ki-0spcX!u-bPwGyGz>j3z&GCScRxPwd(4m7$KF4$<63K-vDS*IxlsgB z3E*h=ISBsnzQpSw*WO@^JoF5T(5qq7t2uFa+-HQ_Y#60}^T<0dzjm4?D;95!lHaJW zSOZaf+{S03EMLj-po#0i?nDzyY2{Dfo|~b;uU>9_fh^Xd-NUqagoVi&?4uuRlG%5q z<*=s%auC7!Ape4Uf6jH&-IU-`V~)eTJSgV%5{>2CtRgTUZIuWA;w_FxoD0&N{Pgvz z`SvqLp~#!(vw04Kf^h(bt>cRJV)*=6)As0$_CwbB(b%)19ljpoM)$qRvocC}*BNM0 z|BC*z7Tj9KrYSae&r5_NhSPh8`1Zf!Zw1Sr_^YqW@^k3w6L0#siy@$yg?GBTD zlt%9S;IE|8^>K$4dnmaM_#CrU3U?K24*4Ss_Myw`eSzD@>M@B*BJR!JH&X>Oy|Rtcxw~IcVLY=KR-*5?)vRn7ItFlu1g?d{-aObq zG@jNewj!^J9OdS*ahkk+$vSOfOV7aQYL?S~uYWLI?;rhh{aC|0e_bA51N{(g$S*~{ z&_uB48axS`>Ne{Qt!%?h1tmoE52bp7`|~ge+cJ~x2Ren@cA-a<@b&J9*Nb-PS#VM%7$N zpj^%Lgw|8J&JO>yNPEEOV2S)IS?JRY4!dBqn}u3 zC9^w9qWb+DVeip5O=Ph)?Kf$a71tokkGIwamAkj%KwJW|Sgm(x$O4Whb+x&&Ws&2* z9KJ>)i4r09eT;G9_(?8yzAZ?VLbNI7}CP=yJS^YHqQ$E5TL7WohQVdFey9Q|{|>S^P$y#IN9dN3fyd)?fiV#Bqd=L$(wz4QrY zR`5S|oM!>}LUTv}%Y$-wFNM9m!CE)R%tUW>7YwV}eYA{yc?TAgl9c=&oMAAf3?|l{ zgV*h>!29nwhy@lx-f)Aa$D8$c5iB^P;E@7l!U4q@Suk_WP_^}>M*hk>RZHfB;Ue)j zr9?e+7`YlDsK0I!S95F18;Dm_PxjZI``+xjK$Jwy*N3*ty=xOU3xBbQ5JLH$F3C z=u5P8p(*SKqhgs@Wgf1_s)n~nBMrh6bSvta`qDM>quFqm*EHVoi7!1WtB$Pgl-GIC zHDac&gK5;tOHo1|kKB%PHwMC6kiekxNJ{l$eb*VoutI*h$tBB5~MxOg&FF=P;+Q5;5%Ecs<^6?nx3Sk@8BTciz<`F^WDrr94Lh0@`*4E-W= z+RRUPT*B+YJAjI~kZ_ftNmD}K5^k0glHvY|4`Wvxv2 z)QZYMj`vl7Itt56(eNc0E z2pOkxnBajV-k&~E+S2Ab=A)^+G7fJ(Y1g0Sc@E;biL14#Jf!AQ#P*8D+glI%CAEoO zet)jwh7wdY7IU$Ee)kc-gkE8wX@pvNOzXW>7_(Cm(Rw{;E;c*gYDnl;(wH#b3_O)e zjThyuo6r2XNp}rwI9N76R_l(PAO*)n+^YJto;q-dZh3FnP!ja3Dqk4h&_^bm|aIse{d8G@3^*- zOl(ShGO@LvpAfm^9dEwOOUDdoAnBd=mXbHMTU$1tbGPS}S3~9VbGP-lmzN&8kI7`F zgx~x=gL|O%=)Zn8d2N`})AyQP9%9-zVrhQ5YNMin?`u(yv{7WGkbt`bbY6f0oZ$ zDoz^4x+tNwT**g0F*)DmGxgO8$!?Q;x~YR&v07)V81ds`pWzwoUuChoo+PkP_$1ZR z6S3c}d_fXPnvM41W4H*7Yh$)Sb7qr2g!3!%^wi2!zYRn%P9pL1KX<}2?ajts(v;+W z!6bLmo?%ic1-Fceya&f5G#{qvBYk|~Ws%dkI4wkB9jF|2h>vmCY4qjgsS(lZ5=&6+ z6v{i8u__9k4da>_AzjT(HuLgeB4JHY7#4+&@*Ps|4%}Gf63JpWgdTma-RbwftKQpz z#DUJ9Z3}lw{ss}(-o!hVw{(fO9519fx_7Q-z&jyng7kMz{BFkv9(T)jOsnt}uOa^j zZBD6WH%ou76VDut&sutwc>|y^_N)KJOblaMb0DaR`8UQa!2jG_Uv;(-HG%J{Kd2=Qu+4QQ1M{GEC=Fpr{KF9H9=z3K>K8bmiq+YIj z3Jh$m7z3>L#qwX#Ah+Ue{Sq;`iI+xfYeBR@fqMi;?H?L`zYL`=)1j5DCQ8M=H7FAJGn zzBmT$FTAkH$w0O@0Z|)F4rcZxL7Q_c9U=g@^)&3j9*i#H(FkgMk09pbH#7g0SB`yQoJ?e zuM+g#OipH!Q6V0E#zV2SdT>XDH^t$6RbNHj>?;wnZp8==ztY0h)}Wwp`@_l!v%c5K z^7dNV%4HROgtAhO41X;K!=-pOm9kHx8httczxnom{vX2ssQC}!y&s`}Bln3Gpjmu6 zO7vkP(>IO_zPy@V5KS_l52bUsLWO2vT(NOZMsk!TCT_fMT?9y6k`FiB_OdOlEq!^V z>=}{CoTP-E$lB&K-+>!}Bd2uGtq9r11g@QSub(aa#_|zsMyQ0p1G#ES#O0NnY&E7A zR4)fzXtN_K>dRgBW$sEDs)TjS~w*D zo?i8(m-}*uL3YVb!aSN=@UL#@10k6{TOK!?y4sn2XG!2no`Mt2rAW3ib)ARg5SzZ3 z>zDd_{S@hKU|o*j&;tlH)qbnC-{N^HsrO9GQQCreC_UtDxl2P$oRS0|?*sA88#Pv5 z$E#bZsTy|cSV92p7Xq+=r;5Bf5}TO>DdsgwnZ!guqqH|sSwJ`y2$aRz!LQnnj!i4U zA^KGhq~u{x%^F`d`3ugybPZDD;aJ;;{yy8eY#9nVKd&e=an}cpEH)&bz@a#ajNpoG z8J1`P^1Su!TkqyCg;a#Bc~h!2Eh|az;r|u0;g+0ik4k6isbjx+{?^P^BVrw)6C+4z zO{$Vk)?6r)Itx6{i-BvtQzgi+K)GB*mYQjdcCk4}ZA~{MvruQ15^zz2T>bwemG@Reww?7t?Ylq-14B3SDZ> zY>_ByCkPZfH+n3(<9{;VJ+TE(r`1n|B2WQ0WA7|F^S8s2o` z2Whx2Dhhtn-U)_hmQywgQXX~G09ZXU>l{tRw`WND)kK<}q=8Vjr=I+Hc{@s2(>}tC zDYN>eW$W|L@7KiHE9GHSUa!r%p1z86UjcQLQI;&?WOt#ymtxz7%cy7S4Lzry&GDVf zsVyV8HTM3UE_dO54e~WW*LM!v+~`_ALoCS|n#sX?2bqhl?3&(gnw>*@U`B|97ZP_V+XXQ%XOAUMU3r{jeH@=^XfOr0!VLg{BjW zHz>Kj(^6t|wed06aB|-E) zA^~G4somEXfsHbmC?5~Q96k*@)N>-NT&vR+g@^$iaemCR5wxuKHU}&tOsdcO-j_M| z*P88@N*CLzbbRJ&Uwfw#I6SM3Qb$lE%RK%i-Gx?OZL~Qp*#_u1+o$U89fYP21%`dy z-XlpFeKKx))Q+TI>$Z#q`N3tQKev7~n`xepI>&a0bB0*H{x;KGPa{dN z3FvIfm`8cK)a*Hg$iGPIWM1+9+ICC2?dLs|Ow#>HKC30)bR@_o>#`pGWYV_>1yfo- z&wrwymdOBXl6t8SoxlEDSakKR1fZy+=ZevuNr_`oAILiqBTCTS)6 z8Hd0jUXJ_y`>omXQ=3&;hf-hae%K;@ zVv{`(Dx{5Z`}(Y@c0aQ%y}s8FgmVrc(Vw>#hgId61W&ZiwvZxov;jUYnrBkzB zm5V^*v~jk7(?!r|ziu8H)JHtz{+*(7e{K*VJ2 zbfa&3`Q-88Y*u|We^|$_JfWETu_LJ0!}l|djyiwrH0@2I1o!{aeg4Ok@nq}V#A4wu z(+p4KT#S7#;#nRYpHr2_fe`RoOzTh*p#>Z zrObqxE842RiVf=XLm`$L!Hh)V+K9aPM$42?&uAT% zNTe|G9c4|d&MZQH(JZG#nzuW?1D8MS^qUQCmUGIEz!H(p} zmVDj9?rB5ntkw_ga2l>w@15iJ&zSSEGdgr>gJOm)z0reL`WE><8%C@2=ze3}^@2Ch z31!7>-P`p327cBHV_)g*psH&XHSROpDLa3*sR32H=_M-qLG#>u3x0F>Q`vayIaB}= z)3`SHK@D_Gf)^*yKfJ){=u5;oyz;ZYUvbq0k;EUuzlkA}pcJ91fBgb=&Vn6BE#AhS zgXM6~J%sOw-S5kI5%UQ}r~M9MzF-JZ7RM_bryHDOdGHeBhrTdt*Mz359^q1*$5Oo~k442MDEYt{v}} zkwl1)-=W|`iKKFjJIKrc3(TT4W=r2+Se^>$snXOL(}79-I6Y50 z?Jbq4uU_Q&t}Tt3kcEPQy$Riyx?u~PxDu|Zs>~IzzLQa5|ItL*Mqm~xZlHIz2s1jK zKorWkOAk7o1VVn5Zmx7_ApF!k5o7Yz?3{0QciE7>*HO;5`>poRlF*l| zUpe>dnxE2@jz*hIPvoD!uAdM8ug1xuR`aEmS4Tj6h_`3mmCfxBrU$XjX3Ed zpx?`LeKT4Q$?&HAguos>&pF#s)+IN(wm`86cirgyh&JXn+24Tt=P6V0kAyImUTpDS z#*D>bBrHbwbt#LO%hP6?wORkjC8kh^)JTdXs86In4hW0$)ZN0n?7kvVzCLIw!9Jo} zCn!h!WgnsjgUGN~aDZtO}B`*dz!*_1N#xC9JsrOe-{~01bJyCK8JB=qVJD% z-+vo>Q6PY)Plvcp6RTqD%dzy!D65Nk9X#u6t4dm+GyqXNm^^ zb6(S!Eyb>Ul_sazt0laKg_-lNuLIRx9{CrIeQN@3~2qsyp8N*{SNa`@n0KW3TZjwD)e z5CqITPg?a&4Q0oE?SNGEal)c)N5>=VJ%C+n{YTDE$2E@NOAPKdht^R?*2pe_Kggo#To$F&qKB*>;#^-91^YsK-w?t3P zxgxDkk9oDNIh=snwin>B=Qgg_M)&!?Gcygor)}Ha>xQ<1E?o?M-coW*rmL#6q9LDD zw11eHc!2R;4LH0wS^v*@a{hCk$%PjGRUZq+J>f=KQv8Mf$p`65xPGMCmLjW!;7b`7 z`WT@?=)(->iW~6bt$$bOI=vMym35EaD!Kf$g>~hz-iI=Ia&~tTGVSbHu>Mqwc)705 z%3}oDP@oc|MO@}yBoYI0g5dHc9SV_kiAm833>}|Mr{;2X`3XcXT<~YcL}kwJ#L>j| zC*p~^?^Kfo0j32-P}8J6Qz6A+R^&#F7{0urRMx?Oui<%ER!JPnpKjE4UGS~c7^eo39Oo9ZYvT@`)-C;%~mug6<@Z&(a)M?b0MaU7RE4 zHW{JZoVxB1Bf=NoIKT=I53kvc0Pf5}tq>c&+!Fur$Ur~PHe)}+0=KGfyWFC!gaLF? zg~b+O$$pvkpb8Y&^OUzCrn+|rRL07RqS2)!{VjL@Jn6IjqwKL6PI>xRk0Cu_G%rC8hyB~V>I9?W7(u1m;)yI8S9 zlv1ddOs3n%x(-L7VG;-)QNnqRwIoIcV0akGa`kWCNw!NXAg#d2zT# ztL0aQ>wxkp5jo~({EIsRJN_rTIA^{fXtQw=o1;sbJD>1ICZqA%0n^PXtPE>~T30BQ z5RZWFbZelWv4T`Dnakx#EYh?a$o7Gn)S=2IK;?X}JAA^W@<8rTR(-V z*av8WowpBc=eoT`r_tV*tn~4*`zgMdWz)Il@0-=3L{bAkOLb(5#T0`5_B_T*XmR>CK}ZUdUgC)qMVX zTrQK-Fn6NL7RV^|+4@zZ#Xbbv2$L}zIi}X|0--sGu!JOzj)Ur(p zqz{=M>0J#eR;pV(5hWUtL6Lk~C3a~Fo-zm^7-f?~<9kT_!Q80c zqTbN-m$^xX?$F^xvqT5!mOJbsr(kI8;cWfvaK4yvfj@l$Q>WR!ajD%?o-+19jPl1r zk=3sip*8)4O&(_2b?x%oDZ&oj5BL=^1Mu?&gqw(5 z3tW>rn+nX+(drj?ylHnQbHW!pHVC2aL z=QYjzdtx;-<(E}-pLV(<@rPAK%O-_Bwjt?Z^v!1;m^l6B7qw#YoSp1}O%_}AUgEjR zhH>3I;qqspZYdsn^w$8rQ_njoJ>`&F48i~i$i!+FWDb4$}v8Q zIfaYdXmb?#9_1RJ`oOO%Jyi$`ld+q8BZFp}P_f6V*9Tv^nUUkoE0bQ?Zxt4rk9^+$qT}Sl3 z=?&_OTZ+Bjcco6gMs7=_$2O&fPOBOg&e65jdQJrM^6YAk0(L8oQodQR(oYP>T0oW( zfsSRlExvH`x5x_7*_$#Ha~zd6l)^Zu80&a$-lfjs@Am?Gw#JzXLnFM>R-LhXG8F2e z*?ALGL3}^-63SfcMz|md=OK67;%18|9I+ql zTr2#;WkLZh+OWXo`)sI?vS68RCg+>!m{ZkLo5eAEw)4Lp@qeQ2&_B_3Xxr}B-<#`8 zLrl~bXh~2zRacb76L9-%u8)Vgel8Chn=iSTHxH@*a7`ONt<6ir^OW~_T|siT-;)ei z=_)sSa-;Nz8i?*nikFOIC7LxMgYPzQkmv@b3ym z5|N#aVY9Vv7{*XpNd+@bhLDbk@5SEPd_;2ty-d11{x1Q08;|2bS>_f=tv4mMbPexZ zP+pL$jQz+(8DQ`luA2B2l!#9u_{__owdiVHe$5wTZA4l#B;u5TdU`Oop)Tq|H!PV5 ze37>GaE5CmMQ$LucRpK#t{2V$CHthE#2P8ryCr0?4y@Y(9R=$*McE5KTK)jG3E6s3 zFZAIB2KyvsaPeS1BoHH8Tof3SC*C$~pQp%wev5RTcFBe2PT4_D9D;eb)|Isqrr;F} z)r__>+INqb!~1B3f{pdoNXe%YO~GV-j+1~EXT`a>wnEapIQ;kE>CWq_AYVZ_$Qz9e zAs6cmTDOO)x;sgy^T82>_5Z#z!`P0)-u}S=7Q6z5)~~?gnsY^*4oWymFyAQgH^brO zZ2QyPGl{CnFU)T|CYo10z%CuUzf;lvwtD;|z9}>NlSZ`>gMj`Oa1dbBgEN*+oVRB3 zTTXU^EAdk3IM4kzTaHrC)b~@=BObam^<~v>c^PV}%UG!E5`b4TmE+y{WX5<%Sc+PP z!QhuIUF=3YhJD5bI@Dyx5m{r?3UQn92$HbF!v!XW2(}YwF^r>*Tm_uz{+kg=NjVsZ zo13GQD6K>hMRMqvePv!=rr;c|EbZD~W+{XEBPC9*nMI-OD`ylCt!-UrX#DP%ZalG% z2b+U^P=kPik;-p$&vtM`oBWH!-b9elujnb@IpA==Z})ozB&q#lw-(VMQ38^v-yv;7 zx<^Di`nXkRI*?hndsA(5t1X{c&s+; zYiBoeuo!y>_18@!(oQf5j5y{ErW45$uQqzWBb8~aCHqo(UG@@hp<&>FF`AGlXlg9!q> z{wiBQFn7J_Lek;L|K{@R|8a)ftorZy{Vj6sV*R;t%wMIENYq+To6j3vGfjW9KcLbL z3VlAeyWmUucUQIh+ll_kOYoNN$Y8X-zS&D=JE*W^8`H?<)(F>Ja9o z%=Nj8+T7lck{?of=uk>}8-t+t>-mL-4v_DCVX6J#Bx%B!3#z?LrZGLCiu{s@PHCs8 zyr3O7(!6^qs*=ij*5Fs)s`GPO90Z>gDH}|)0aC@o>V0^@BUJo%mrk!HznQK23Sed= zW7c?}qq%w?6!YJ3L7~6*xNx44%}2VAC%wYAY8QTgm}eSYk|CRBC$(WCJq&$?7wQyX z`ziX|`nBW%a0=}OF5%=kYe$IBv$lpZvYy`>O*A!nXP0oEbK3POfuOrrzL55}ooSSm zB67OVaJ+|%1)s(QKjUkc-t70#`UI?`0x9Gr+gCPF-f6?gKJ}3@DAshv%!zS^&!ruL z&?WI#RQB}GA&uX_@WI=cf_e)o-s@8@$~P(MX0C1^qv`s`X|4Hg_REex0HZ^CCTrb& zJ=>`rk1J<+ZtWRf^2E)GZA7Y#6lyMepXEntRWH71h`JF~)j^+M7n|(v{BI}B4Zg{r zyUHlDk^A?m&q974dNP^T@KZtnlO3V&KSYVE!qDF{jL1M6(~Zes~hjkY3CYx%ZPWP`@`(;;;(*{v0T{7iUuTp`xn6;&j}( zypq1bcoc>g0KWVcg7uMsD?2=Xo>~{A6|R@GnSP@L&KxuS7wyzqhs3MJiE;32^8$N zBhj{Wo8RsF6XtVA82day)Kw}iRmXKL(g;A)vt8i#VBm3aO8j!T3XM4HxSTwlsXs&- zu_cgdZ!F_LVp5m6NV%dYJ~8hdeTS!7DcP6;{r6-dRa#{SmPT%?VnLB1P~e7%c_u)A zzQJ3ig;AcmubN%Zs*%j?1FJztr?KGPK3|XRcJ$*V9DNM3*t?gOf$0D|_!I@nK&e>^IF5HWjgxtY$7grmVaUa41X zQNq_Y{K?{3Rk@7~wO*_d-&4GA+3b0h3U4cYDo+TB*w_GX=eL5)(H8yZosm2EtPP+U{F4EXV%O!uGlmMxhM7n?_$v%5TE` zdZud|dGbRiK9AQ)yekim`!OWWx}RcLWNeBgdW+bGm}7@o8Pw$D=!#Iay)C_c=pu^0 zI;H&o_Kg3zls7Z~9BRqXw#nZQH+5!T+a*Z84O_flAGb2&CEDd-Gq?75PM02B9Y)3& zV`+~0i%-r;0GCYPLVi6Ky%REkgir4s-T+Fr;?^;M!yA;SB+f3L@F(7 z78}4f8NRMkPOFNA?kO>IPbYa%A}4E3IHg-}t)0yLB4|Vf=XzA(`3huR-==(-62UR1Ex_^`HrzoM@nPJ;Sy3yz+OhhI*2-NMB~u6?tE!Fi zi)nP#>}DC+1QdMkxRkSnOARU77*w905q&j3b}yGNO}kqE3NL@2;3WS5RPHw}pZ}e3 zfq2=>F&-6=QR1^k7vSUic32lxb~@7jybBA>jc(FD_IZ4|qNH6OvAr8lvv_{f%7*wV zrh1M82+-Q@pS7j`o^UCg+YFOvQ7SZc$2xfSH_!o1B^o^os(d3S^mDZ}$1PAta2go6 zq))Muc>G9@p1mM2*or{?678%Tq_T! zTiGJv70;-(ZC7E(7rHbeHXdBQk%kRG-iQlv6>7>{Y|k@M0Q*@T`cE%rj44Cr99#E> z=FNopwc(m6I8`NU8Xr?=ZM}*K0YJY>He8x6=4j#R>ksiivx?FTK0U#nmox1+fT8CZ z*$7qHY#9F@fN7StJ3jCn^B-evd`8LfeUZQ#GE*gIn;K9`g-01^RfZ85N!x|>Qf zw=YU&zT{?eV*d}~{0GNa4g8T=z_HV^{QvoIig=k>f__QMTOrxbGuZ61?fNbC)t=s) zr@Za8y~U{-yUZ1IKbe;YLeqadIcVPC712Hp4&_Pd!D^S{RZ5Y+yFnSwv}}fD#uHH3 z_ifpSH_#s;`#8`NQd`+Fdn+Q3GKVB#BU&h}hWbUlYT<{{I7x(K4s87heXv!;8CJJR zI+W8R?Mt=QB=RO*+{5{(ah$0vzXD5#gN7fx^AuX>1YWJG9uPP1ZCTZa2^x3yQ69 z+9$nH6IJ5lS7nEMM=^6<=d?-uexDBL1adcFv(20MOY6ae^@r--7(esM8m-)v)HxSk+9cJ3!=s*_xT_5XWTd#Bb|*(1(7j&FicLc-!(KXz+W=k?QaPv!o9~Pb z&}uuWzP`fqZj!l=Jl_;XzCXqmA3!XEO4fbS{-?!N`=qnDzuUdXn4Y zY0D4{qowT0svqU2%YLUdR#hac898w5QQ-%lCJ`O)X?h~5^^!G!p6d=(D5sEfb7uPb zDRB2ML9ZW*dHA3|O1Lp_9{cw#kQLdI2tF2mD=NDw#(0U*3>>$qr^*eO0cI1 zQ0Z60;O$-Vd8W+W9uPsRfDxQZ!WWn%64ci=q1Ua^t#8Q;I(Z@;7NCq`Pkn*kN}yJT zxxhQnIq@#r@VlSvf;;R7=DCAN);{KBOUpyb3YO#LFGMR3!V~@*Z(s-E(;(Y(5@*>D zoP;H4TxTx1VdW-%7F^bmkaD?+0ec7-(I%L1eV^~=A~{w4Y3w>j;v-V9In#VEzTfx6VE}%`QCv;G z3tcYFin@-DIEBuW9@So0Xg)t7 zF60q%*ZHyhDh~=HAP^jzt0}@g)}lmGbyn@CkvfV`5!|s zH%o?~c{$q>2<0sv*gB9vaweo$xUqLjd@0?wuv9ZMjg2~U4p_YmX+H4Y{?<Ok)mWv_nJ`CF!#zySmBhy zMnmruO2eJZ+X~aiC?D^$A#74ZJ|#N0X?aAf-Y-O7mcm%BX&%Gu+J~DECu-+&4cL25-(G*ol82Drx_@#Atl_ebX7d_5PSQ(XIXNXd4bY zXP^%ce>&c9z#!_SlarXEpNT42g)uxvT#ZE`>@p~-wp+dV^3?tb`1Vlg5iAOO3)y-6 zly-l|_a8O967r{`?huBR(VzPN3oArxWns{1#j?VPcm~=eh{W1Qw@j}e`uTS6AhsbC^a7R35U62vB5qNvVwY@*J?DNG>XJ-@I|f8 zYKC0#jQEh&EccUzgMUu5ty!T}<48f;ZJ$bcG$TLOGnx7n<0nETDeWxbFA zMjRVZM3OM-wJ&^Svnl-=WnEcHy8-R@{gg0YkI;YF`d5Gmv|4@L;7(!xF9Sh|;H!LL zQ-rs?!4_H*&!-5nPz5j^-ga_PR&TfNHednlk3|i}h_J!~XeO`CnPvrSFl{_vtwiBC zI13dn0xQaDrvMdji?lD1fwXA$r6M}(3t>BYS~ibdM%)WyY_XA-YS?X(Xb_x4Fa4%w zotX$KZ<*Vgw=nph2EYU2abXeu=4zexpKgIdp0_e@i>d98KGzf_vm`i}Teo3yW*iIf^ZQ=fAj~zE{Ak|s>sS2Qt0?6@F4(;7fgdB4^iLiizFKvrA^V82WOxDC6@t`wy z9WCDXZFVeZx0tlHEmpt$0Lp+@(f#@3TDkLeImwV-Rh7QEF>}0c#U=K%b6qOEUThaB z`K#$IXwu2je`$uf15C2R%e|fTzwWZDH^`5Des`3Q8a5%<7R0$WSvvuD7&DS{7r4#q zyDZ6v(xksgvG+2Lx`XesWk6Jb1mGwmBO zCXjJReatv})6=!^b>4nng(N&Z!u@UZ7-EOEPHaW1mvNKp!GJPVy0IvSz1~Q>_FLX0 z@P&^at9ul+bD2Hp%SW&T?~b02XK5k3?wz4Q&U(spT4K!y8F|GcDn{cn*Y)oWa^ZT| zpR*`DRy2aknH=<@VSh>UPX0 zOCDbBH|tx6;O*NZaAL>($z#iq;3`bG?ZzR?a~unt`CwNDBOeNc{i&dXJ7xPDn&^HL$=SjHVx-#N3-R`IPzS{yNrGS%KTfCIy_ z^>J8RsCOOp{~+bFrnhkU`PH_Gg` zDxg_@u>4x|wnizbAO_)ZsE3Ij91I~W4m3XQ=OH+vniL3UQnUnfG` ziR8S{((l>ba^JC`N+D2YvOIP3etksICzoD&<1VYjSzi>h9>~der^Woc&xL-5Cs}wa6pJ#Tb-X7}fnZxaXk3{Dv zf6Ljs%s-<89#%I!y8l&55xP#3Q|7(A%bN!Z9~KgIE`4FE%zR|DJk@MrLNlK`)UQ0J ztqVVr4=4B8WV&sgrF7JmUv$y8w(m0RE|}B~I`sWYr4xUH8QYsd7xwb=1qOZ;XV~`o z*7Noyu&g}fw2zVYuy@J{c@D1>$mkMg&o3bIC4P73tmcnv48GT6!xNd3RFmrObW1qK z8&kom&O(8(7oJX>UBITMrDmRAio=|d?XGiKN~z9lLyO&;Lx-zpUG`I(6_-;aUG|=% z3`*>a5>-Ns`pjm(R}~$6{R~l?7i*ms`toZ}D$k=Vgpjw$FXs+cbGO#7Y<+)*D&*H0 zVzpg|Eh8D-rG3LsB7wnLWvE=Qmo%{#-&godXm7HS8P(`~|FhG(wm8!m`+2or8C5P1 zv3r7QU6s-cz{qx*vfDl6KE5{tJSHx^xCw@WbsWj4)1{>D+e)|+7@1Kn{9=?Q*C;!C z63?B)DSdse7mg4W&(5F+HrobHvU^;^N!pCR1SdxU)f&9uycs#gEX_}KJa%6m zv^+j`c`f#FJhnwAWMVLvO_;(v!sN#%p=o80>HW}o3QwuW8NZ8|iiZp9Od~1Lzc{q- zA8;DskO`sxx2nB*jSNB1Q<)+yr`^Kn*MsK$myG1LBDoW>QsxW5W8Ne19P_r7zbi*7xC~{>zP^o^2Oy zZ&4qF^cL1GI+e3^d!n`5Y)_o8D3#8DTCQT|(_gzkjqCWM*;W@!Ln60myMXr89;QN9 zbYMOi+bcn4re)>k6O1`)dSG{FH1N7JnCNmw`a)al5T%t#Q{7y+zkO8grmXy)GbU4b zV^2tr5{Xwz~WA;=IgH;%dY3SpT?>eTV9Af^0`3CVHeiN98*Z+W6ZulRVZbdXM(F z;RmLAD8%`mA@$(2GSV~K#^t6Sz$0}}*_ofGtnfU0vP_1T2Ak;+fZn?4_d2-U!F-}1 zxuJ?o;pIUCAB`)k?a~(-RII3kfyueWvuFbWTk}?NeYQ^zT+IO@3vdQo3>p^DK)=)_}1)GhDl=+Rno)^ZoPt;jsss1wM-da zuY4iTEd74q_(^4S75ZZw#c&ixBT8OkY`re;uOYY*NcG)8u(bm*4C!n(%4;YAVf{*g z->2yL9bh3=Cg3E>C&frHm%3DnTyIXZ^p*Fs6fcwX&yx7s7CyiwdET_7YgsM6Pbf+7 zx>)>DkQuGIFB0!${8@HmP=Oq?IW85pO_w)_3crC|3! z2aXD_xF;lC4dw0mW2hdD-WR8v+pq}F2Bn!+s}$U9sSAbs+*hjP%&h2Ihwi*88N%6Z zI4h0fS*TXQk>k+RLhBxq@|8OB{9BOkopnL7Eou^ZCIP1O{PstxI?90Q8*ARLt_1qM z!K(^79>HvkLM723&YRP4?eT=j(V?oT;a>J5!H}j zPNps;k?A*2RedmId0Tf?ndZo939}TE6O8?MrbTDH_g*40%y3J}PU5-S*~iwol>bN7 zRYt{`E!!Xg53HJ{#<8%c7h$Lxak>2htVMeS)vFL{g&7-gk7} zS2?!M`w|jPO@;67xQcQ{0(;|MLPzYP%yIl<>xo+fIykB~Xcy?*O zsq*G<$~5~^UUa}^fJ3MX)E9hM=g!T~cIxo1cXyN*k81B_z zbh!3crBUWv6h~72wv0l1Ctj1 zRKDkP;I~g)&!On$@~~wC>&36qMKDt{-6*3_#?Cxn$cD}?XIHN(ywe!Hq9Kn2Hv4Ki zkB84|$8;6md!u$tN1jRHB>@DJYR^Q4EKag{&J*TyI1Nz0o1Lc z>=x5^g;#sU$~VuwS9>z&bpL~C(qWz%NBBu?Gp+s@(nNoiLWYCMVb zah~dB0XOr@UivjP+)EnL@$!1!c>$@WkV(5T%VEKt!)h%x^DC!_xY#Nj9JHjE!FqT% z*fPYa;$mYfJ-&Sd!tst$aI()Aq4Ab4uEfka7X54zSv%eGVVgJmR8)#t8}TJ}CO38X zs0u00rG&Y}er4kUHU%M8@aoarVAn6}*D3oc^%|t1qs~@&jK6GP_0TH`s<>bGdx}?Z zgGbP8D7u_`G|#4Pdd9h!RyMy~-C?;2&Z{T$Ox|TK9<;tFp*HjHK=S#IDd@^l&R<&0 zyF)Le8Kh4yZz`cK`<(8=D)2mPwH9CsKo6%*e5?&{;JIw23R4_GeZIeNNPJxnXfOea z$a*B=-VD2bdh&KZd|nxcj4F-3%t8M1JJ9>PkT}j9!}@c0;D*2tI(^7$A(O1hNyWG3 zw6`X}p$8n-8I`CHdrS_j4ST-@bSJ_D<%-{Tx}>H}02Cw8%a(2`J@XYgxdS*u-VX)N8*Oi`Y6! zs9mP%kLZe0iX_K4%I=#I7UBz^#+y zQ_@|QDgE7j@xC3pFizykl*+ugfy!3@#t_#;_|!Z=ghas2O9+fHJ)`F^mIVi|6I5j0 zIYj9;x875bkzibg*lO!)+~dOM9n54IKFiKRW%0mcVa|ky-m)6Y-5UI z0?6Q&r8J;NLx?3uMX+bOn;%i236FrD38kHETZ`k0l}YxK=g!52+u}9b%n470w+f?| zHY4fb3-d5PT=Ssb)AnqV_xjc!e(o^M6k3@LjL2 z+Md_DvK}|br>Af1QKo+GJ_WW|eqk_kY{XZTMZuq{&Bl*S@kHg|taWIh=M)X^n|NcF z+g<++#lNbO$>IT^mpp?fHQYAQ%MdciY>LicH{=`Tx#-$xl9i*^XEeKEFBZ9Ucz47SJRSn0?Iq zx?gZPQ9#EK$oN{Mzf8c;6Sl-65L3&<-an(=1zZ))dp$P^ z*0^~<_vpe!K{>6C?szcIBz4F+-%nj5!~OK@+bI!=w)#q=oeNi!&EkuV|V*#P?=PRHdk3$e%jKaW`qVWs+_2psf*0KJT<~b9XEfwSQ)rc zlXcv~@&VMyd1HCI19B~O`}wEzOYv%3XbZsXtLUHX&pMmjT%Jyh?z|8N1UWj*iGcy+{ob&NolMT&&=^{t9=dkmeIgVcU z)%y2n({Wu(x@~(s7Tf1j|E=yIQhG*R1uQ=I3<8m6@LsccV$KVKK7_|-gf$Br9C`EOfV#P@&FHF#``N>g;BfF*?Q00UAqn5x4!u2dAV4GDIlwsrwrb{5v=qPphA>7XRQ|47x;JZF;{Pxb>?(-azI48?MVn3ie6{TP)!;o=La4Ib> z)5r*akrx|8;(uP4k{#V(IL9+k)71@OgiJjl&Ura13I^ys@`2vwZ}4M#lVZKXNiUGg zRS7)JyCCo?>PnNns&aWi!h^S8DA@W1aJGm1KAW*w)h%Cb4L6D88}3Yy?*D75%Aj^( zu$SA_%pYwDCRzr~XbB+FWL@fsb9}(g04lkvrA-^KPk+9D>Wh+CYb)WxTLi-iqx`a9 zn7_$+Wr6j|nRhg$t;evp%KDzVF%qU6B9^=(6NYNiqkmew#>w+k7CU{Kq&Ixlx`U#{ zjv1ee*%9tM9u*N7aC5#3r;-`tYjeHAVZ+{x<4zc5mrrv0qC@G!HSpeP=%`+5b2e?inG9LVy_x{_or$&hQEWF& z+%Ey$sfdSY#4|wa?&fL;o%End%qQ%+$PrGAQ97N9hg&Kdj}_Nv`sWJ&0uWH9@6&T0 zpTIWn%DXYuNIUF?w3kCO;Q9kw2+Adm>WgvJxWYcfO)m9!&Uj&x! zSi$665jMKpk!79$mtD8a)?1uAYfHINgo~9{P8-kK30Tw0Oo@|LZ@M*Z9fD zujcQyc+vkns(W!LPWQ8$tRnQ&=ZNzr9w92DsQ?EM1!_(0QsvRu*HnT&;5^TEeKuKF z5}_L<5jWiZ?})Fb!JSumXUN!T`5S_B>jc>L*Y^vgnDYo-!ffNTY4qk#uPmNXZCcwx zO1AP3`M#aooYueR)f;79vOy}>ZfW#5)M`i~Y={~b%5ogLkM@-gN=gLH>gv5LQ|)ph z7CY<*#NBRCMDiIc)dg_l6q60!2p{fPWGk8W1@zSCj_C&>wwi2~(K^tLEZ40%_^1-1 z%fHr7xK@-{g?__09xFWD+evj@FeRuoZuG?ho^L(0b&K%1SgqE4d6A~Efi*U_PeAM& z&Z{3OE?>F!)T?8uH$AasV&%s}XICvjj_N0o{A#whpBN2~aPMQTCHziPh{SOYC725W zaK~dpGFPVrb)q<+5M|-B0_Y}wYh8ZRnW?Kt;kv#*dL-ZQzAZL)Qgc#iZ;eUt7F}x8 z^1#PDt~ee~iqfpya#@pjW%+X|*W`i>S6snw?)2O@6|mz2`PwVh7!rBSi(dPPxR#$Y zc-!LM4J$k#+;1@sU(;~=ZMhy6 zzrw%s{kHO)sCRQ55qXm&XN{)=b4Kp-D~xv`qDQ}9q9ito`xMiv=r!4fr~$U7NS`e> zvwvyHPeWr-UO2PrY4~NtORHDg*1xOKkOP84YEvc_!k2V=qV@&_EERUuAn)q&6%5&v zJM8Vc8R$Yts1lQUR8cc^ zP+&E^5UQ;e%qw~{;5XbKk(~(p`qa@>l!6T}r!gc}>K_5tWof1EuOrz>rryR?RtV3@ zqKwzT9L1EKU1ibJS^5Z2ahUwX_(jNU`Y?g|kU;p;f|a6$i4x7VKu_R2ciw*9Eh%0M z^eWc)4kI}&iA6V$XHNVw14>3$;SC$45#rjKgBYF{{oKWE@{>*Y`2PCZ@!s=cpt zHl-y{tLd4&oU&|IW`R{vL)Q3_@M@lPl{bNPSd#KD>qNg83Hr+SO#>HHAI#PJU-O9S zhhn&{YLPq%h||(~*RgzJ=ZGB0TbO}Igk?EoIe=x|KnVq%L|z2rMu?77gpBpe^E@6k%^!%|Dr zq9X_<24n0O2Vq{E`w-7fg3`#S1OJ+&;Tn08&!9~1_nf`@s!INyzW_l)4nbFo`|4L& zc63B#NnSc%x9cLzP7w$mH8&L+(yKmr@*bG6I(`7%^b1&rpUA4k_G%Wi$5*aYNgRY- z8E_PKwfC*VYm3}_W($DL*8z+yQI!(fm$EU<{K2&W5nFNww4W7Zq=2BjLbp%Q}UcV8z1)FQEk!zr8v$H}^+&gRaqQxj6f{+Mi& z5p|FQ71lPEAJ2RR5o(`*nctorCd~z9*lgPB<|F&wq7n{URWz4qJCCZ=%XzjL1Zqpw zXIHXM_AQ*@SiGMlUPyk2TBMJQmr{=}g3_Yd&6pvMinSmGr*lBu;Ai20!A}!FjJj^{ zIc)SQ?s}^`s_0>U`{#e79~d2W%Cn)`%PW#=>c56`itI#OIYZ7;*Twft!oov9xD7cn zZjZ$UBMJWm=j#T+Nqi&uC}GI7DI#lO7x1wJ2|F&j7C)MtBxhEHfVvzxThz4QIPz$KKc=6@Whut9uEU?$z*?@;(x zzG_4AIQunjwdB3Ic1)OZYBBOHfMO7>ZNVix1PdgTsjymwX|6XIu`k#+!3sQ|50F|2|cKB0YZ56^bkm>aByVuBhveIYD^?x7g!^`tjX6!*ivx$YBNv^_}< z6vR|=8exEjbcOZ$VEo`V_CHRaKj|T+@OZ z$h`>(S$C!vAJm36^2NNs{STJy8mpL@<jqdoC8Pn$JCW~2`dL5Ig|cA5njd7NUMlq-Co>C4bK5FB#@ozHI@3hJ+oQUwGYv`OtQxjos4AfmOpAm0UpKEG~m^bo?mnPdfo78K!AI4U*32ZJg zr&QB=9jR%1TQ%Jt@gVb`EOEelU8u9_*2>L6ao*0>yn!|wEzU9;oy{x`B4|$k%D$am zangH_`Y@DoOy(X=l#p@wz8sR+0F<4b*}mbs=4-r}+)Gs%`}8O8sAnO`TlG2R=|e>lpAYGY`1*CAYbEt;Ko#0Uw5&ww+)6lQ1MiUZ>QPKH0bck4 z1}&Yy=qs8WUnPf~Crp4sR7grXZ@Y4)$7Ykg?P}EkONqJ2TJ{TzN>lg!5DRW{MT|N( zR)N&F72E`RHob%e+LbNgbbYA(LNcG)CcMhswc`0N!P567E+cs)pJS(1-lZx_OR$Y& z^&*i$Y=xy5_UF_Tow(-ZB8e6ru!Y!6hvl*y!YKJH_0nkoz3`!7>9h=Otf^*ELG4|E zZ6K>Fe($f?lZP{hBlJ&&=^d42+O3B_Skg%Cj}+wQorX7rn;z>bsCV=nF=uNl-j_vG z4H`~fL&xJOyY5ca)+%F=xkU>=%Lhw$-6+(*lES%PlU4y+!Q`KeoKKY(+6(sM^(@D- zJRjkZS1r`J%#`?7({=v|QHMw)a`*5KUjGGfA)W5RYv~w%+>t@K0KQ z9(CCfx*`)Ux2GygeNpm@%d?5vagKnm&Os295#-dD`R>4yRkEYXR!q^Dl9EER$guQn zn`11I0#QC5+jKB5{qp^XN&{;VjY@PWfhLdGEL1Tvhy zuVpJ<#&@XwP_x}`pH(Ylr~%^d+{CMT!$yh*zu1dSnv2DUQRE#9HX>m?awrqpCV?_N zVQTVZGQxvksExc;o@MR0cjMi|@Bz%g6^jT+-8cmYzEZ8c?Y7T;T<^BI+87F3@H! zJmXkBO=2g`>}uMI|0kq5g$OHh>ZO=RqHSN~YIi zgw2|viTL$|U=$sM;B%%3TOb%hhsvo$j6*a<->Boo#s(8JFt2>=`2a8v@V$xT56Mt) z1{JvTwsRSE6H8dU=X!aZRkn)R&fl3X3QJS9jsL4HTE7}El)ec=!Bt+-!Af(as3wSX z4(ZjrQ1fHg_iERb?X&ncLZjyuic!h>d{~$Vjoh#XUG>OJPTeb#6|G3ELukJm$)`Q& zD7b_krLO6wQb844YhGKc{^(|Sa2pXi9Iy)%sN8GU_-r}RVkv`-4#Z14d`0(mebH-w3Mtjj#_&bivh-TRG1JvM~9`MV7+7I9r-u& zI*VaJh90iECZ|)?rbyrf=9^#AzKc=x^B0A^qwCQld_VHSfpZfw%nJu946X7T5(|CV_4Cnf)5}1!|T90 z#+4y;>oT;epP==ai{CEUklWUwq+s$PeSxl&P#oI(d~9iAoxln-1pEPa0%)FMO4IQQ zV*SI}7deKV`2TbgqLE5X;qSDvFT+K~`2OUkWNvu=3vf_{hGxpGOCN*o>+PR06#Oa| z8jc(agBVDkqLV&3`>~90`}I-EG6=tWH-BT3sd^W8J7GxIes<71aUO(aXheuM`-e*VWja&Nhe& zCq)I0P~2B+?t}KMNpuzRMz((0lbDrSEfD!QZX(ks-Rb}t>UgLkqWng}k+(Jcm@VI& z-L|NnBUL8?CIdsMqo|Qj!qbRO*5a<+#fBShiNaFh{osUJ+(tsRRhZ{kP#YA`eZb3h z&fUn!uICF* za46m=u{aUzzNj-*Rs(8zJw<;68&ybC>IGRg18s!S(+=DYa?~M;o?@?vHac_20M0aFH=MUe`u_#vTAG-Ud~8>z`6U&DyzU z{)t68WR>Md7T_6qcB-^LmVt*o_CD`^{{Dy`xmtBZE=tZQIS{`5=E5i<&Q0!&OKhX( z?ErpEB<2rQaz($6A|up8TC%xT8eDFsT=oqHKJEp%IdD2a@U}Tn;~Gt-V1bnknsfB_ z4apvAU>7Da3Ic%_pnb_|PNklPWw&Q!eonD3k=LG_1f1yFyMlIhQ4VK(9Csz>%W!Nd zhYL$}Fm7B366nAX!wX zHPBb>3j;6;5A6)emuQ*ELG<>;H{ECr*KNLyaiKpmxW;pv8w_S)@Dxi*>_BJ(eLT)8 zD^Cu|@m@~qRug6#22Wvx4e`i0jMT`tYcHd#_)CVyiw*n!5=<4 zKL%A1M=&#sdJs(nBjHC=6PtWI%IPu0{46P=`C9qyU@Af9ZGu!I=V`^w$b?c31!o;| z-DqM@RIieD!}V@sWPia31DlA_gtjsO12Te#ris3-LwBXRs3eWsAfZbgccMfGmTF8* z%Rmiq$T;Ac$;O`wP3I7NUBtda|~PHj~*sfpgBD z-2|}Q97#Cvv7vb&JK}~r!qwIoIl3xM3h1;Q6DxM=xpKw^>QQyAnXHXYTc|bda1;J8 zhDjn*+Sb`5)(>gSO$BaRe&b*Pd=DCko5Y{$2fiUAd3$|Kb3nY9!$-dE@{G%2wPosI znZEi}z%4}%ew%$HDebsDSNlcJh5eWM7j-;!4{+H|hf{50)0tsLD<2|o zLWPaqZxn??LzGa(R8VbcrwjIvz58nL66^G)7)bKAA!ZL4p(>u$eEsW%!hxeEUGWcK zjz+pb>d{eT9CH5mM26zUK^7U?olT4{G$>FR*HL}&#AH8pf zW~;j46CR2SHlZglF@!&<;kUhr=0mDNmu?6m z*LsNFy3NUg~^8JN}FVK_R812Gsk+09u_T3H#T7wp*|8BI7AnG^q%`PQ-N z`XlNwxQyK~#4b(JN<=6OWg1fox z@C#ATX4NsX4FUkAWMw!Yx@Bm>Gqi71+b;r-Xb3s1H{PyEh2<6V6>NREts~E#Os&(T zUDiu$o@L)pZhx=;7T*Qdf>Gu7Em84TxI63FlKNMprj41uEiU}8Qb?aIrKpmoq+UAw z|BX#(zL)kcQ?guXe-cFJo!DPB{T89AYNFTj3x}p^?g#syGjdCKD&`O5HU#1Hm^2Fm z@2)@o?gz%D_$qPBVHB4&{>F`g{FFa0cKzi%WU%EC_%UWaMMz$~E0Y;x;#Q^hN3v7F zF(l&yk)(ub@w$tXuZ(Z&)eRVp*@1nvHp!jyhjoU}8!MtarbM-`ktB64{vO6QT=plf z>LzSuNNYQhS& zl+h;sCT#;7y_qb^Ww1S-IgHlmC;Pe|M2J^JlRxK}`ECOE%lfuS;beV>j(85rEJ#{{ z*xDeKYF;GLb~J2^GM#Oc>r(Sf4LRuz#=!Y@H&9Al&iQX@K?+#?PIO9M&?f^c7VKYs%G?oVr( zdlt!Z=2hrmf;M`A6AvlxX0Eb-as(`FD@W=F`Ty|=85&qp*QsvY#R}?09-*OGUwC{4 zDlq9g?=^+&+EAf4j^Wlh5m7b7BOf+|v45fl-{UfxwsPq`) zj}W%Id~nKaq*lK_(x!P_U?$BP3-y3>kAlFf^i zid5FuQsW4jp8JAs+ozrnBS?{3#>FqeNeGRYr|0GI8>hMV+cGU=r}bC9>Y_`aDrcPo z=*g|%{%q4ip+@E0%u)Ic!Imm(5lKL{IYpc7=Jy9qcv79k+yQ>WRKFdVE!E_}`QKZ` zoJa9)-@VnpH8ii8T};<&ii6FpJzKMeN<9ZI*+IKiR_FEAT+bsaVonQ$NqQiarb}!W z?1#M)b!^Q5b|;>qx|Pztrnb9F`M19D__jKIhJ+21B$4{z>xounzuTLUpTENQ#$D9w zEO#`w&qg~g0t~1U_Da$5-|-x*_wVF8xO0{KvA|3JKA^L?aX976Y5c#l7kuBS2mdTR z&MI?gw{h(QeYRL%$~#Q1vE1Mfdp3mOQdQ+~xz@*`?YTqsRg7}Sg6u|yOman-0_BU< zKIxDT-=ou7t_l2AcV{;@BTD6E_Y{TvG0GX}+i#1D;SgsENpbNHuG;vgXK>jWgv;fa z40uD?DAizlV6dvX*iQlDntX}M`n8aL`9!Mr)&imh@Ash^;5V=m@D%DFr*E8pzO%Vw@l zM2EQJ*a*MN`Z6r*+E5oh?qA=z)aC>`YutWVYfB(Z2y<~XY4(P#3h%ytLKTcG6yqOUnCwbW--H9e1lTo@ki?PRL6{!P$R5uMX3%QDwd z^rlIFPFo$}N!)jl9SEHdAG4XgkJ-A6;orUP9mLGl^LvlEzMK1qttwLejz4|DH}hIf zax)nI2kJ$x@~7Z81E`NfNg#I59n0uiDp*`IiAkpBWZWGis|6)lf{X~ZoS+T%6+3P1 zmGZbl<|kZ;sTA{U;V$^JTSm)cNHcW0W|I4HCzDG()BU2Ux;CB^?cG{w*jwPiKuEU- zhW*VACJ1i>I75m6A2Q^0e5T|pOb$k<>my_)M5nGJ+Y}t;ziZd5Bd@xm&vdM8tV(?( z?X?=YeuKCt9kz7d>-6D`kkeu27CcrqZdM0~c<#Quc)iGyMV4^{aBS$PjKgltfJ}I@ z2AF*6nJG=%bn^V5kG!!@SWe5a;s8oXBYvJ=9NNbv$Edp0xQ=$R6^616kGp@qac5g? z<4R;pHL(Tl~4}EkJXPg{ zu~2cqyBJQWu$yXdu+U)l6R{#ZC|aTty*bX8|xy8j!v*9~*HW3n^6(MNx^ z29TaNTxDGX&ae7BUwpPECYaU~Bvr5n0dDww@1+%29*y;i9%XppGKxJS8 za4b>h`3}MJ2)9(?y=ptVR{GVQL;}I8)g7NKsblrs<+zpG)=E}#4UhVi+P&Swz|hh6 zTn0R{V1<#dnhYmoL&YMy^9}RLAQ}p(a8xWG+4Cjk z(wU&3tnCl2;7!he+Z&>cFK_e8-yWY(C^gkRi0T&|q0C=!X`nzSiEyD`jD%lVQRh(0 z?K%-y4V=w)>|l@vr1Ms7I=ks4A<@m71`_dm#gqQN!U1Ipf_IjpfdZ0)2-!$EvztIf=br5V0qNzMhsYLQK1qvtwjk-(nZ{} z>x(VY--`3C1{9>Obk^EyL8-%PU?{q8jA!&?UBi-sbt6PoOM+Ef8bW;o6e(pz={xh+ zUT*HH#pCh|E8{FRuGhxf)(&$v_gA*hVhaW~8E~HUdksi5^M{w%TfN(>L#f>XWzd)( zGrwB7xywM#N{PMQ{PGVP5?vD`ue@W}6XTZpX9V>DQ+*MM*JHK2#@qSVk^r;G_I<>c z6fSIWC(hr2r!J=59UCn5XadJPW4WeIz11ZpFw9PSwbTYi5wk0JBFl_bd-% zJGhR)7jHHW4DiQzcfd}{?549+Rqlxo zAcJ-cLcNOFZGFTqktJk5?;hqDwfUTOATqMJ5|~Q|#r7>*9H(_@y-F~KURhP)R9V*s zED)U41z?g&Y*h$OL|iV5dv4jGcJ+nYaB(!S&+0YqJQYKi12lIGNG*=2%Kcxs$8&dn zdhUY|ssb6-z4Qf6TAg{W&Trc0CwGrM7su$M%9k~aw*LT8L2}z>j7~n~#6M2)*JjG+ zm#GH$`H;|5oK?WaucUZ_KrWlpp_|>P4R(=Ch?2ZdHnokJ363X*k14qRJ_(NVNK&n) z;t4S`8HOSF!w($K7^#mSZ5TCLk^60DYM0nT*`kG%R7>7R1MMhGwXrfkAp_E0Q^J*i zkoQOtSUpI)=V5e6flXQ&MqG`@U)?rnK|>(`D#W4}UCz#(??erVWH&V$u0aE*as9&~ zl&wIdu+fsxZx?k19%c29YadH!W>CRw286w&?gMTdKFI(v(dwS*LLd>>XWi-i!d88_ zdyV_0Kv@UEp}yPEt89Qj-^H9!))o_0k_Hv5sJ@AF-^!_7Slc<|(-oBfhI*Uz1k&voa;23h#2_?RLaef8W(+DuDLlYn?2;4y{e2&-=!p zyoZV3lwr?C{gI08sP><|esYEUx!1Kk3Weh=-R6>uzvKLWc21`JIuTb-fjd!&QO`do z87fFeXw=_RIatEGy!(|KF5p-Qu*Gm8;Ljfie_bZ ziuh5^nyqYWYwK*9VmyIwoCuF#kP|BU0i#nS=A~H?gLQR;(F)k?`90{$WFPA-T%uK8 z-(}@+12$&^7u;s!4Z&fn_3=A!-RV~1Qj6yiE0<1R_CgZN!s>r6%$HskZtZ~EU7=9Doo^Ly zE+4+b(OKfmY1ldN`$7lu|8wmhFgYWT)>LVv|1Ehx!eYHNtrxxaoN^}*q6pa> znBRXEGCFj|nq*}Z!gc!bB;<3zr|!Dz=s(K5Du>_;|3h^*;F<{?bc|X~?rpYQ#C1!d zLW&`eP4*Q{2w+$)HPL4tM9{RLrZ>fJq#W=nPdYnKg+fgr-7$mCbbXsGGERLa%Ta|j zQD>x%iPK|E-R)qwW%!ihsvxTRBdi_;ELD>HLU&A_-#8AJ`KoIr!aU3UN*^A{kDKO; zS9227af4V@}6yO z7DF5sql6mm-W4WQ{iDmF?x>E1$B$D@?D9GJbt;Y##`YbpRd()HRjL@b|Bi9~!Ye5v z`k#+|#)!1{xc&eeb#Ek(HCc2$-qh8TDdXC+hE8y>0!$n1c2LhJq>s_;jWugNGYSWT z^1%mMYSai~fNHZ}@SmOSI(8es1G6Ezn~RXfclHxD;I5U7GJAc$!8|H+^A4%9GyyEO z*FUiaG5x_-;I6Ly0WV<-c5=PSc=EQ|$Q|RF@S7nwr}ohlh+*W&?q2_Of~oT%Ag%m7 z7Af5X{$#>muker%U2H$8uIi>r*R+zck;+5QAVYWzJ&S*oE3ZXV5J}tdmU63JZAFLO zdY&$3rX7K-^Ih+6OEJ?T#{(w>DOH4>ifNDRj4E3Mr;-sk@g`D*+^9AoF8@?=CmnR| z&+*jEM>M?>%N|0jkIj_bY4RL8hiXr=W{=qS8m)Wnhz(C^Y^mNag4qAyJw`ZKB^SgC z7X3uBf6}86Rr1b@Ca#5S`hLpAFQKa`xn9RiyM$NpLDlLSwuPoQFx7R=|%z! zVfJsAIk?2d+-a;#LAfwwuj4AsZ-tS2;jZ0^m;11Z_w&cghw*}Rm*gp{mgX)ek3v|k zbjW^_PO<9Qnv!j1UA_0G27Yf6UR&qms9*N&i@}ZG=odzmKqqC4^4^=bzc{JdX43jQ zTgWiOo)faiYw6laG##Xt?7Iy({N5&FRI<7P?0E7#>-3KAxZ1*i?yn%T<=Z3u%o7x=;zFras6fjX?uRjA9!9Q4 zcGKvWsQf2Cbq;?QTq0=GUT2Z}*Mm!q;rTtDO&PUxxlZH6e|P}XBq;QXWh`4}x+mLl z;}seG;IPmK@_uo0$4Sd$OlEpz^Vn7nHRf?Yl&us~zgAG#{(M8XEqVN@M}!3P8*|B6 zD_`R-t1n6DS-vM$v-kP(;xxPkxvkI7U8JKQjo4*DXqHO}cFT_ee@VBtU73czSHJqt ze`MlA(srN0-U6#FtDIo`WPH+`6sSC*m~jd;ePPYD%fCL0h^8NJNb zzFhN}ec^HDEYKPjebmr%!d6Kg=+$%BHNg;U2DW>RJZ;aU9WOTBqyfD?as6o^y@WGY z4UEo=Z~re(w||1?zX5wc;!s5Le=`}nTJtsQNR?qp+;;o=;gsvGZb%x24`gyw%4+JX zSCHs5=d6Dawj68<1$Q(DdbY=;2&i>BIRnDLTN?Oj_cK~ny#8E3JcvalZ>akC74+%kxtRj3vY!` z`~9c%3>#wz+ER6Sp4m1uQ`0QIDrO$Db+duTW=tMB=tfCbn;=%WbE|eE|1)(7=|mRs zxmIM9VXOPceO|8045{_`FssSltM*|^yw9TsOTfx9-Igrk;|79bq-$DX5&Ea#P&@=l z_>E5<#aIEqlies?wOeAe$s5mwjiU5Tk#Wv6Y;u%y%HKwgwu?-rJyB~^+T4)hUOf2Cf z{QF}r6@$0c)$>|r+uCk9roQQPxUfU}ak1mw+-oKw2w)FrX=$CBjPC4u&md?8t&~oA+g|o=G~FB8)$12ub?%a9WuKB-;=1{ z)Uk2<%kcaO#9!gZ$YH(ooN%xPCjK~-AbDjy=FR%O_vKTzqny&o)$i~r-3Cf9%%UO$lG$UGM}Xf2!8ti_1eeyJvm&ZrOD$j8!2T##9>O?p z`54L0xHKf-(^wUmNsB|_MW_z=L>=2|2n3=aPZqFbmMV3u98VJ>PCXXIWivk1R8d*A z;|TLQXuK|s5vKnshS>r-6MJ8`Lm>}gjMb&ky`?eZxcznb{Jfgq=msQf)`3E_9(-qs zZVuj9^2(Wc<>>SY>%iW*7J=sThP{ST{4&Z3gr7^g7yH9-J2-Kgj|-}(vohTn_q_=a zs?~Z3-_D^1tEB0Vf3Lt+j*RJaTezl^7u$x0I58hSc zZf!&}G8n(9{Ep)0?98mHK^;y;Rfsm4!UH!119Zsl$qnQ)y7;B;8$tDIye=H#J7Q)7 zwjZ|SS^dzj>{0%tH4gf_8)D?bh7Xo3`3(DO zt{kd}8~An6ZJ~F+Mj*KU+@B!4iEWF$Y<>H;Hl7)Szm-UxWYG-DZq%`qaQG?Go^JBL zpE)kGlM+LR98d+|-ArCG^wqty^&{m7^Z!Fhj5xlHTkcic=KnN^UecBih5ncO-R|R? zk(TgMw~l3fIzi14!dk)Yi(W*Y*a7Mfg@TdqHsx(*(UmBJKfdFg%%^AkZEXh<4!(*} zq6p?DWPkMST!Vr2ycc@#a4zb-E*P0-4q7DN{+nen~NmE8#na=cNnC_k&Vls;R zBLf%IzyZ&_F&j}s*!&Sr5u3IdO*6vnju*P7m1;k1or}2+JiQ|f z|2iD_9W1FAlyS9@h3DQuyxXH~)lBAtq0C3afq4Ro+=G%+VQ@Ko!f3ncWf`*0!<0Yz znFwaz;-v5IfQ=rtIsY{l3R{V~;IG0T zWmC!iu#6)CYSU5_ZgLP_V!G#=$oc&6>SfR**{o#8w32ms=@EXO$bQ+1-f;kuVOws< zn&Qj?R(%==wpEsLcR)shA|91I7WyA}TeBvkXC3E`bXm=6^BF(~PF6df=$4Oaz|T+_ z_J8kV%pBfieD8pz>0dyu?tt_FCVlK$sdzrNe!O_d8IHoEJ--w;8Hss-dComfPWYOm z>ObHcTcWDkZ^VGwJ+bDGuxl}4F)z|vmi{p|on4$a$C`zE^E=C#5gy{LsKkX>8h;#t zS}2LYhV+DWWtiW zo8Tt9Deb1U4J+fp6-@h!iK-Q$`oEX^IDts%F6&okq0jr!p*%I6UyzuP@Qf^}$QS+H z%bm2Wtci&|JX1qFA>19Rz#ORF84~N90q;Rh0ej#fGJ26Bg!F}@h&mfhXBJYp*dG?S z(K2qEoqX~cbek`IY&OzXo&q&Zl-RO4aMg#BmZpTWPX5mgVIes-NCU}NWmx{bNiYVi zz(b^7lT+S^$AW8W$H&aC0WBRMm^hdi2s(iyK-i0VAj7L!?tRFK3r+}oH7R#t{!9nk zg`i*^t&=GBYs11GMJHz=Gd9%S8%`=%5TTI_&|PZ1BTP?{Y5(GBUC`OA=jVF`wmR*& zs*~)Ge&58LRnW_uId6m}hzb#&{1qm1(B4bEqVH11Bx2wB`FZ>9 zjD|#@b!++iR%o|e<+>ZcjQPV7AWJo82hohN2(dCNlJn`JSt-cqz_hL7B{FiCjE^hS z3K8b=PeUGzhex5eqk+Q@Z?oPN2ex=UB^IFy)dvna1Rh;4U3YfLSLCF#{xj--=@y9~ zl@{^jvIPM1Q~!n2zMb9Ie7yHtVGR!u7R}qIYHfBOT!Ltke8kU)d9m!|abGuU?PlM$ z^*zI{i=clis=Igm7ECZMfijOr^QqUkY>`q?fBU;sApqsJ8tR$XN5IW5L%cVbhTinL zOjge*bKe3F)o8C>Rv-0xa(yS4DBk)wcY{dy*CCew#JLc1^FRW5xcd2^L>B!x|7p6Y z!tmc%r4wIb%}<))b3?~nX0^FNP4E7go&ax4Zc|3Cl!fb99jn}qj(7U`6084dO>Fyy zOjL1Zg!S=GURFy6UssNLCU+dgy?Z2BT`HbNSi0}X$4++h^g(7j7=E`jCYoLQ)}7X%Gcs42{})X-L=zs6bkc$Y#@E>R|sNGRn zPLG9S|HsugN5`FbZ^w4p#!iz4jcub%V>V72+qN4ww$a$OZQB!LV!zY<{&qL}{xv5v zIcMhF&-L@%dzljM@0Z7#_OP~jyl^_Xp0f%I!-&e?%T|`V8mbfbOoh}o-Q|DD*zmmlQjP=CZr%Cu9eMkDPrvYjAZ?v z5!&JT1Q9-Tt>hP=yljjZU$w>`@Kn#PN__M`*7fnoT22r%R&!7MS99%r9vhKG>J)c*QS9H2VG{XTDZZhl3R z&3r*3=)`#joHZ<`dT3mjzd*ycuV3#41F;$Q2b~lcR(|aP#S~dO0JpWzrc5ItT zH`IRSV&M7*$QMqYhMLRv);(uj`5Pn{F@SMD)AN&5(sP6x(ZbWL9ZRp&8-OAo34E3D z+hUC^*PF0MM|QsX$p83-OpwnalJoR;%{Meb(gf=m-^#YD9_5eK$&d=A1a{l)qKIzj zy2j0Yre|fS1}b{|OxTn?)Jf1mwE4P@Lm`Yp6I)4J)az)@a&2*I*{v|e@vKj)%j|B7VA9b_3^WFJV(!nWTd7nu;-i1m2u;U z&YFAxOj)Rp@v<|eY2Uy8#;9|0f4E)P2c7zIS zRGF30)-QBN-Xp(=2{vF8TAkqc9?U0nc0-}u`RoVURLpYIn3R{*N|1E zf%1Tw&UiC7>q+=$1Mo&haG1JHXKRQ?N;B6zTHitbAf5WapQGEihVe2j7iTSYj~V4z zHE;cMA_mmlT-tQ3clxvhl*v8~^xwMx{xPw@4)L?s*>ZJi<_xy2gPRQ(4i0m_AGU;r zzvQAgFn^HoQPaVLlEF^Xj`wo#xD|qOne%AwfBST`9Br1>#q*gH-7Kqb@@K$xRP9kVCL;woSgU@& zbZr02@gRspA07Nl>90phkL2@Boh?CK+rg=Ee=2lYE?D1Y7AFW3J}=FMr+Q0cit~i) z2Jg8cn}o0)j2Zi`)3>qZmKNpdo~+dhFurwRpX2G$h}KNAAg|27>K7sL(4ecZ%@J zKC`d7m?b53<3TuhHj46=mmC?@M$T`C21R9Dp3p{C|D?;5`N$b|`PHV65be@kz4WZl z)BGVC>t-*-D7OmiN2Sw7B;y_9M^j;j5X8;XN|<>H19p zK+81g4QHc-5^Am|ZQAw0XGi1zMlmpauERQlPG4(ZZS%uC#|Fw$DEVazkAHQNa}8P< zu|PZt#9xzpb}N3j+-}+n;fZ~vpj-Lro|6{LP;9XJ#Ay^D#WKWZ@hP|EmnwzrD%~TW z3Q~5>RTrPgmk!fCDNP41GA99;34YIV^`Q;Q}s9#&dyY3-ePGZYr?SJOF z`VR3+_`QYZVohlN>q<53@V2&RQ!01mMy;lOZFuSLpHBg5q-M!CbDVm0f6B6i53-=YdgF7aD>?{Feg2BUj(Iu z?PDL#US2AW6-N&~48V$fDQ~1BhUnDEC3SU=XndrsWz*qo;elw}5*Ozm-t?c4AK0;A zp@KJ{{I6RlhcLqQL2ci*TW3htyjRnAFDn<3*RP?iy#bVqP*Z7N!{(}ftPMnk5-GW0 z6hl+Kh6$m?66&>r6Mqtu=!Ntn?h?@ovC=1$DgteCp2iBvZ806e4amZFLjQ zczn$D8g*kAD^q0`%}xUqvgP77_N$ZvJODm_n?nMNF_zh2t}~;{bqkbe^Nt@Ue4hik zi3(}-g{J40KMXZG_3>rH0#Pqd)$uWbG&K}d8B8W^bHGj3ZgMZ@n!bZj{M46tWD} zF7`_@)rZ4Rq;u}+1cHX1sT_WKM#REH8taVcZ1S=dV_Kxe@11zomkLhNyd~M91E=b7 z1GR4Woq|Ctm$p=Ge{_)_iRiQvdpo(VSoe?a9;R4r;Bav8A16*U&Jtw!T?%tte5yhj zljD_|P<1*_43iHsTwEY-!$0pOIljt-V!P>u-JQ&L{RYK*)<7s;{F9wjWnWO~ zW5kT?TEC{*Ub{c=+1u)4CJt(A)ZU;sTAc?|CZSw zjAT)CBgo0~racWO{3Sq6P$d)$Lp*Q9m9zw1Pg+8mxN)UTpn>ZDyoFjN!|{*0=e z5?yJRa?*jFsG&j*4rE;`ZFo%DbH(Nv&DiY^smV1-9n%$I<3xk5>D>&hF?=|f5z9H{ z`1&^=7{bh@_J+CuTs@PR3}#&30q@P|>FES64Squ|g@z|-uUY$+t{$Tv=#k_R!0mks^QiN!%I#tM`w zK~DD#W0$MY=AlWl!8A@%mv2y@VfMwwM%!u4`goeM_PNLbE>UiUW7&;+{UF#Sn-Vqs ziL8K#cS(x-tM~AMXpRubWAyV8KT0qu-#awLCdP;x8xc|x!?L=MuDO46 z_vj=UV3-n7-ETt7*R(4cntkP*xO=5tXJ2Wy+g#6pZ2W=ncV_ShD(0bwXgP7!3dfiF zw?+}!z!%yeLw$KzXGz{K2%~G#=#ejt26(gh3P33|pP;KzV0>k*QNw-Q@$mYE=67z~ zc1*NA)s9SsluTR|6%7AT8JY4Y5p`z;EAo;)p`sZ6f@;5J7vv-9aA9B~N#Tt>F*Bz( zClKKo&28+QWm6OX3)n>|1J;7dsxz3Lz7#q_m5<=}Bk6lN2Ub}m7QkSB>q{bFP@ z7y7ZjQ*6wzsXU-YSz$)rBr%nOq&>>Sb4B{#=f#74o~?T&p>rT8@RgWFeb*Iz5PzbF zfF-Z;gL!6<{IqyVqxX+6@Q;0-{L;w%&?v4(<|&lHy7TWxXG`@nDHtNOM+Rry9}J;| z&tl1fBI3l`?nFSOTU9KQKV;yF59o>O62)g3`4;45ObXUIaKcU;$t7 zk+?ofNuo++Sr5TNtP1v0toVDn=^TkiMp{pdk*Msb{RH28&*-A43!^UzE-Nk#Eq+ARoW(ygp{p?xlP=u<=&A+{5Aa2~W&ezFxl- z;}{l~)TBEy)Tyj6~d4E(95O}LHq;Ml0RY16Ck%37n4*cZ+GK3OnD7wZ& zpzSctDJ|YH2^_l@`H6@ZH$RD%gJH2IW|8<)yF@);KD6?Gw2l^jJhi{ZE^1 z_hNv|Gy}B46nLLL=-}LGBNqSJ!(}K5TG1ta3R+H;P{8R*ahV79B4dlSO=ZySewH&E z4H$464^Z!ZTi<43e`ikdtMaY0cV>i3Wp+}cr?{_qgCdA*r=%tVk-n;NhgYzisOP-UaDZNBRf4$!@Gp zhi!HA6PclCh#{KaK>498zJOE3)imp!Iw?OaAji_m18zr2njlbTym=%KUIe2EDm zHi=5!xAC(47Ge=Xy%%VAIyp$BwYF@u2pt4~^75Jt}t zhj}t2y#L_eAT5*~>L4*EA$k?`ki= z{L2#goq~PpyI7N2sFi42p>I=TnD2c63W)BjJ|=AVXbt`2L<>Esh4k$c_TXjXe2w+T z55Q>y6B8WBKb@Bid=aq6SKv_@-CuQ1TE=bl7g%(lrUQk*#Em;Qf2Nr}-9+?G6N#{q zwYyqI0e;^B+p*fcFx=>J+&i3m`hJDTkt2ZOsY z{3cLS>ll$@Wz=vClyMBRryt;YKKw)~q5ApdJES~94sIr$1Y4}w-Enfh>rOII4RS zhVG)si$S}tX8e$N@ojn1%3Tpn9YaSpfC){}(~TShsax8va?@O8mKA64^L$8t zs8CSVIlT6#)-&qL3Rk`@R-iZQ(0P0*C8Wm+3zr+ak3f#ruryTG(^NC(1|(@8a9vf5 zkQQCbrI|?Wt5G7Dl&f9M;~k3pg5F5m)@=q=EFG8enTxBo%hOkx_!!D~j`ReOHE_7W z>Bwj~Y&+}*a$8a{S2K?{*T?1EG@M!R^FL{L_buF`Yu5Lg_}U2={Yc&B+gCvbJ^`8i z03px6=`JovLP0o_d8Wi((}r9t9za@=EHwNv~%{&y)T0lep(sQ zZ+n`5z265`!oIw4)33Y&gT{j2I{j1}s3pz$q>Bu#w?2)72G0FywcT!aYHBcp&Ga-S z&f61H)nkTq+Z861C5};LEJcm}H1W#2>qJvR^RChgU56p{j#8=!;!1GK1?gTXd~$8g z&Y$h4_@N|k0!?(3vpCtry5mw;ixFIsVFmE}4%lxqQj0aw z*OgLHA20;(c6YImaY8+QB5i4jRCP=NL5~N42(b8E-+p-d2i?;GNeH%UjeorooG{FNOQD$7A0!!Lz{A%+xhz7GRIgh#}O&gaX-Fn&C(kAjg?+mn%~WF zt_$`;4Hje{=XOF|l^F~7!`66h@Jrnt9Ci`H!}rog-jL zTIrq8`ntd5Y7y~Gv5W4Sp!97kXt_a;(|QjrF$pKm%&N6g!)Z7?Z)AZ; zvdVW=!-4@s_`SPe5C`YR9`YXJ~d&-UY3j*X{~2Xd*S`1!J~n3~*esFHxi z0fGy_^TjByr{qSVOf>RGS1lF8(_s*O8NdjC$?tpwYl@DdiC){~Zee7w{uTAsYW)!y zFe33*pIY4EQfr$_60CmWP`&9ya6=He&Rc0Rw^sp~1H0M55w}w$qI?1%rpbWbJD2#oNIO4IjyTo6^bc85veY)!KXtYklA z;HC(%Vv`H-0va1_+MoS!3xk?X_rMvq@|J?u(|dCJ5+OSw7|D_a{6AeivYl-EqKbKe zjPSy5%FX2uxVLddR&nBc@>CKTP#S7~THwdpKZYs_N+7JY&E6Sa=Nbz&skgq`FnvOb zeJ(jiA_hcbzy@a&UsSN!>ne0-`C*{2M!LSJmbktMM~>wY5fs~}Kk#g&cEQ60+2_Ng zW?n_Fv>gO^@Jq6DP0tsI8|T36jN4~ky_vuOm4zY#PI^YnL1AwQVId%}s6(Q3 zvVZ+L1@-$ixPJMECQ3;166$EfBqRxz3)L30L+&4qxa$Uvf|1eqcD805pKq5rn8KJW z(M+#o2bt?XPR{Wc`h&VOaaQNSPR)r`>WPBCXdKrc3Su7^g!RH>5QVP`Dx zLBuJ#`P9;sV$De|NQM82wE*^(fI9LCKsi*I(_j3Z?N122B4*&`RxfMc-m?w&Sc63^ zwjS0;IC1p8mmt{KDAH9qEVrQl%H_Ey+4ca&q@JiQl?Sfr#WC5cUrH#IU-BeG!M!-4 z1)IrTU5qFCNy01|>4pRLcZlP=w04P_-fU`CX$Fphj>S)0yxw^;p2*is zSfH{`MxI1Qcis!S)W2%q-3zL;IQNx~&n?_%@g(J8$bX*p36HAijABMv+RmdO4*JlW z+}#+4mv-?|of8+AcFWgrjWy<+i}Z$43=)-Zhd+0%9eK4B*}ry(;lu3j9j%ok!*iFi zZsFDcl7Tze=E9OpVpCupH-P!uKqP*^gF!WX41tMOwY1O4XP3#UMm%RR)YuNAB-%&O zbVRjQP#6_LQNb`lFdYdKN5uE3^vA+-!ciAY;J~v1U~Ulf zSb399&r^ZoB>1ISJYK1vqg0SDv#M2Dw?v$Cv2nU7mMEs95uq1`sfxKO3}D6^$tAR}Yxh zPJZ!Kb0uxj_-Ov|c*+S_Vq=XBK?LZ<4adom=t*TZ>2?xiQR0xTC=?cP!^1QYm#5F3 z{pp{1&Bb1N(4%>h)2W9{;T?fkEFA_(^ea{Wx1=_w3U{Nq_r&x$MrGkqg!;q4EC2xy z?WYXigOtl*w9ycd$^H*s+JPv#kv&XLRo@CMV`?|?OS+>g1q4}eVcb}=>9)^Z2D(?f(#Z-p1}KlFV+4&b$J zY;XlBmTUFSMRY2%Cy7x?AZU-h+DfhBb+<|Wn@X6-pcWG7mE1Nj zShhrdtv=bckhXyfpBSNE3`@i+pv3EXr+R;w!KZ~nz@cHV_$O-~gfm~Lsr;+Z{zXGy z{HWB!>xlJb`DJN=?zU1Pm56OY;??*Od?BnfuXSzy=YpftXeOvY(to(jJUr_7L0)aK z=Xa_9lvN5epsSb_6y-mKf!|Lp0;E8QpV+~Z6`S6{Us`=Hs5kii^e}WhqVCwDKfGNq zZ|C~;O~*#(gxLGBg7#lYf(lwUD884|@pVq>;S4P`x^fciPGwH`y|8%8)CpnTcFHad zd=)2R4D$|`BuLj-2DmynNw@k?ScIRu=%w=p6F5{VUOecGq$$>iyvfVGThpn7I(*?h z{-nLYa*b8Ua_k}zof;aP;Fk$-$*%*%Vm1i`(feDSwf%ySHT8&nvWMIPu{8eJ>RKS| za8V)s?oh#Ck&lx64-u?HY@@2U{1f|PcO)_%n>GF7-i2MKVqNTu+&kbDms-KYopTJ-K_>0i%f|H_hOm+M z+AtZAFN#bw=Po*#FY8dpy<_1IBZR^|=B?7?oESmFFv*-)qu7|k%(nO36=$0zWL&I7 zgscbS^WvqQtl%GrYF$Rc&+Ha*9%(*TD81<1VPTxBGBW(o1t@Gb`}BdLZv6+9m9=d z!|{zv>bn|UBm!0Y1GWjAJ{9sAtwd8m{rYQq@xfI6EKB*|1bB79&#}mX_kEw>&@eMO zMQ&CDC;f<@^oT{!*l9})fJGlro}T>oaA?|@sjIEpZhc0zdG*n!Y~C8G8Jy3lvIVk1 z+VB6=Q84It3vPU`KPRVv<9Koor~~)u=iQ?UyUhcZNtw+#wm`%|=xA6sS-mtAF<3D= zYm-kPba8-rUS+3{3@6X0N2Dy=L@)Cr9}A^!&;~h19xV8>tYiC{-n@Zf<5GTjN}K~v zq6TXSvLN>M=$EQsPVn~g1*xX^0fmYPb6D@Y#^beX^FQ38_`H~}X`*bHKGy+Yb*pjn z+Uk}KmwQay+<;{k;toE+O~Pu5dQ_;DV&j_Zw573@{JmuqRMrYq-EGelR(sY{eGBcJ zfGN=m3U^0Rv#lqb%P<`lqV-os%4sLOX|vPrK9PYzdt&R?tZ(gW`AiR(2*;b=$;R2b z0k&4@gGVHxcadkSjd$Z9z=khobIR#Il7sXabh0!fyB&GM%mT&Mzz&&~Yg7QL#oFz7 z81$oMvu^Sc{O4akh;Ps|MX=vL*gvriJEX!DJCaU!DFgck!Z8hrcX3H5f5}h&7{?X* z6+xK6<-x;Xd%P@B7`z{|-l<3`em{e4`YvM~I~s>17o1>8t-HIK@1(nZ$`&uedD`4q zCgXF&d8RzFPHQr@zr#;-FU1HVZY{#+tuo-ssR#b}SJH}fw1p~%td*O?=3y6r)vbx0 z*Y#u3PdwU~u}HQWq)tlI?*5KUiGe1Gq}`%hGT{!?mdJC}MS_7sG_Yld7)8^>)9C~{9w@OD-4AMj){ zoe+c<8sYAyA=Cj;YVa3Sl+XkB5d85Mn$9&(zSSFI^X2*Z*g!<_=}aGGTfjSq;ie)V zQc1={&DiyyLr9jIlsBfl%j>&1Jzwe%zmttZ%t+8S`{cr)E_Mc-lM$gF8IQf;s~&%$ zo!j2sxrnj&q#n`{OUi&d8f#|RR;J;!{LR47F|hi|4(!{yW}AxM?GoX|XF|8q?%tCJ zSi-h-2lu-hfHX@n{7wD>0g<`zD63oZ>C*uU*zWIG9xfqKTF!bOY6OF&8xrF3w$mP|~QQ-;G!Lp!S_vKCzctC}(yvZb% z;Kw^1357uB#}9OY!}WI!ybIL&lM;5(8`#p0 zw7W3(odN9vmEZuxyHOndwX!AqT$>{iB#K@}E2RRXA|69pZGanuEyS0z|o zK~(b$(+nA@u#44zWY7FW{=N{q57d6}cR%b=B<6WL-`yjP`@1U7!iO0^y;57ABE%*+ zL~7TdXH1f+BxTgO8tkIR8>y@{Y`<7|xh}cq=e%t?=A-$XN?RfrCA?+mh-|Qso`;-0 zoV4qe%ol{8G`ajzk2WUl?n&Y-*z0MJ(HmWY7ra`w;zqTaNEI{G4w)`fWab za)fpq{4}BIW!Vz<7%z>82Nnqmxrl;J7q9K%`OwW4Zf(Bm^|^%EZP&!6xOEUTyz18? zo9I+(&vX}ceOK{8{;t&Sz}K4i7(FIFi|gX)T*}nB@uMZHckbp%jbi`M(7wlTg5~`L zh&=ElkTVTo!u3YIOvD6k9j1BuQ`O)4z5-;Q$o9uu_DC^te);&}=f0>}H!7BA_E1d` zI=Vzgpzesybs`34CxBIgV}D2=d0Wdo>@3^*J(B}rd$gl8OxYLWD%mntSEa~`u(P@F zf#OZl7h(#eLEk2sQDJo1Tf5_3^I<;XQq3hvZl;aQA6mogln^Nom*;G?MJ_?w4Qg87 z=^~%+%c>qjj0VF4If_MezL8q51ppG3wH#CyTN(n~d}26uANnm##-SRvDXj#Y^z~op z=u};zxelWW<;+edb;Iqzsk@OhD5bg!Zmu>~qHp=YQ^17(nhQ9F z(CP3A*dWMvaltde6N1gMe-e#Z?LizIQ0*N=jvV1>y>`s;bMg{S|A#L>9occvjF;kB zVjK9@`6>RD-+B2tcsk~XmG$c*Q0^{qBjF~@ty@Op+7StMDQ%6+xZ-)1!N8RIn=+W` zN*9eTHz}XlA`rZazrT0lz5T|{^n(B>YelbErIX@`LR z_`=YS@5mTe{OEKdc|mYH&?Pj~DlU$|Dwij21j${v$Zn2u!mZc_EQpND35t}brw{4) zE~MjVS+?Q~_`Lh4zs;=rxC)H?Jb0k<9GT!be&sfMiy$VqQns!PJaSX^TunJ@l;Sf> zJ(T%Xn5C5h4BFPczVCc4?Itx%PVopQcnJgqAv&Ni#Bp&4uoD#i{`Bp}1B|h+Yq^l0 z7?=NOXHRtQ=B6eNRja}6!ejjoG>qS{FY23U_^+fY_|W&Q4(2E!I6^rtFj)H67(3BV!xs(6@uE9KPN~q{(5m3S>!U|9M4~4XtZ&=(pFe}A zsW{OHx${Rx2!y%WmzxMvK5CFtLWB*Mvd_loAx5yPiLiA#xSPE&V|#WU4!D$$key5| zjgK$LDarH0ebpEynwap>>>_pl{JA`qvK{zi@p_+`?OlwwX*>uN5ZmbbN>5kc0*t7# zxy)}GO9BnZ`d^px4r^w$LXp)_zB|#iKul_AGI!?>PZ|DTdqS7}EhKNrP}20W>!6p+!#zhe#+PYK`<*x%=H;8U^3$RD){uYn=&p~*f#PJ^G z+|cz-)gwsKYs!#>CZVNhmS-Q&F$MHY>`dd1=IFgRP`P`425SPG<+dmnlbST7b$X8dLJ_u zwi61SgxgUQYp--Y$*1=RHMZ8IbfUyd`xV5Z50PRP&B>TS6g#=O%gu!-MY6ve;QKPl z8(OWsDNf`tgU0Gm--E#^%w;WY&kIU=Ne9=Z77ZKUU6pnR?&>7+T?|Yc%&VkR4-XG( zGA&9$fxy@V4Hvb>gZK3b;dpHJMnWZLg|T@V&5j|pSdw-ehaQNGTHHW>1=#CDytkwBK=9C`;_j`Ei zM&Rk7zzFZkl<=$itQ537v#|(u?laU?p->Eb@rPW~;i-&NRmDRATrhjfIA$Xn7tpa1 z8eJ4{KFl4O*MmwBhqIF{y;Nj_mZZXFy3h6qgbib9crr3?&`ma-&9jQl*1I;md}CPg z?q0M%T8ACsl9FZbUkj9=C{*ej=kd>N1tN<&#O0u%-QpR=r|MA*^l* z@5Pa!_n^+=i#@WGqmfgYT}R<>m|0LR`M}u$H7f;fk+OROD|bAlj5SV;Ut3$vxtfW* z>UbUiGO@dPAM@fJNYATCyjvX>YgOX#&KmMIWVC0mhY9>tCdrnFU|E=7s_U=&r2-!}1wq|m~28AyO?e$TI6D0%qL zf~da)`_v0(?-b`%X>0mlskT@{@m;LZyDx*9PMBgpHK!y5j1GE6JJltM^wG_>;N9d$ z9g2%sQ{BmEU~QtTU%+%n>VN-&^w(-dj758=y{`^2GEaV0&9!LFFd_!Je%{UKU(#3= z(m;$vMhRtwlR1sh&v59{2}de=zC`|R=r@%=2GFEQY56%N;xb#djP$VHGc4dVB!}{D zk@)fEIN{6OpDw=6Wf$lo#wGXgJ(hN6-s)@}N2S!VQ2F!b!z~NwTBkIv>5N>%IG6a! z_-1_?QH*bZ)iJxmkCj6G9%>Gu5a+a%xiH4*Df^Y49SN|Hz`XE~mgO`R1mRWJ%0M^s zN-jxyf633-=V80?7yCt{wMAYh$d@b+Gr)__>($%5IZqu~$c^Y*uO`QIX>czv_X5l*}u(pwM)dAshHweG$Z-4|XXS zwVzTMC|e!I%@PhmuA=7h&&W&F?0okmoqPOQ6X4Jo(-s2CS7ku+vTb+HoGx3r#XGF% z9FTB21X?cJth<5BR&>nFHtJ~S;M^s(?^s&Pe_!wJCdILzG=R>pJtvpQ|FhTNf6fk?%-gN)KP@~ET@>4g z==s#Exx1lSMlBH$y(rq3S2qYe%(vJKYMB~hqEFMX-uB0NiFj98vI;PQ{Kp+RINWgA z*M;VO0KD#1}zTCtHO0ca%X%bsfubBc-ru~eFpec9mD{> zmRerJsCYQ^08{$~>p5)G=!}|z49}URO`U_gL15hLlf>fXm7PAq;x{M|;R12FE?)ga zlW3Waqx=+wmiL`@Tfz6&HXL_?uk$CMD+Tvc-8x>Z>oy;(y>y9YgXaoSKAqiqc^TF) z({0V+WLoi!P*wk68er55B<$rw{zxp&RNrPk!D4`&g>=jVCi1Bj!90-}DR;xP1;zH~ zg=gE95d{AuS2xy_hT8q_-6XQJMG&LmNhb@-SLN`n(Vml{Ct9c6lJe%My)7|9Ixb1i z$v}nKR~18mm!6^Gi(~&pQaGkP6GbEzDTcLR1?v{w02gCett0Ao?(0PJL9p}j)>eMS z!|Us!8)o5XRWaAGhnJE{F+dO!H%dSchMQ2Yyhkep6IIfj360!=**}1sLU(di{wtgh zj7BhLq9i8ngh)$Om58#QQK?Qjl#xy!x(-g108HtlxT(|TQ< z-hM7PZG%NYWj?23v_|ui;5k4{uW}#5;uXD3v2@kjdg&?uaB4#&4SHBu-GNrt&mu}| zZQCzt?J961m2R(y>Gj-txb;j`Pgl>Xt#E=va0K_)*Se3_X~MK~>YOeZ9s7?e>qieC zr0;v7L;Lc^l6VL3FLcYRF_<4I6Sga&YftmrUbn-{yy7|Mui8d8fygq=2fz$|l_(Fx z4x~hIW*wLjZyW~53_=*?@$3vjiJX7m1N}p4sE-QID^|Ko4d=r}6tFD6LD^T6+#=Kr zZSjk>hJK$ue)>*b4ZCDILxM4VbY!*`qR*G)Y2D7khk#`&x1W_3bqSHNWU4x8WGlA% zfyKSzeJ8mUSn2$aLp7$~h!-p_3g$mSW)yRo$8Y+#l-fwYs5W9a+R0?_RX+{3d%OZS zQQdQWc~X2HM?2onYt*`5Xx~@u0`CqY?;qRkUgtfu>q*-YoYB1*d!A>Xwb%W4Z~3YY zMLX^;As6j?3<@Bf_f2WX2gKK>oDvkej@?{*J$za^`~*=AvX$(3TIgZMNv zNoRu!_i+cal!f>G5SJQir7orA58c?iL1cP}PlB?SJEc#@jcz4TCCd)jMAA1A#PH$8 z=>;0f8T)eVQdUt)qq#8X!M&L#hYA2>@dbo-Ki!B|D%i#7@dwOTs<5tlzWGVpqkjI% zr^&PD3)}fLr|uJ7m{Uwh*#3ymGB3ZzwbSonDL-EjJ?^L8d(M|?u4DQ8JE3@+G}&zW zdI4VIz}Kvg+WMRX2dna8(4U`^f%`#D*R8&+uVF>rrf7F@k%Ww0iq}4VSOwY;(QqxcaNgJT^$HuyVv<=E{;l%2 z#N>JriwxI^3^>9Tx8H|*ehm+E zu_lF5)d6C}=pNdn zUF3mdw8UwgbJn|^p|E|*+pNQh7ZUI*hjFa9ds_EqPpUKPv9RwLtlF>Zc2U=_#fJ&% zS3?+3nJe@*?nL_&#viNbzZ2dzW{f_jjT-_^co4U{jdo7~Co zdSg1VR@m;p^oy-~t+w0FwWelqW7?W2uI)$mR-L6z_1rA>#S#g$4p&1oH!ScPy>O~Y z(&DEW=h`MlB8uspKBkX19O|5Bvb-ba0Jv>KaWeAN;9I0WU*XX|7A!sdN8!$O7-S=V zqKa9}v%Ix!2^gW7^%mf=*Zp!td^ZsSBi#$`-JCHa1K~OlUOJ}iX?dtRr-rK|cR*s( z3WJ8^ff2eAJA^yTVBrHKS^V9uk)t+w{unZpp1%-_qU28Lvy`+Qd_q8(1bjL*;jM*b-ESR%0uPcW9F94oJPYO zq114bv`wt_PC`b??zkh+tA-yKm!JY8;<*X1eFlj4?v2rI&_Uac;(;~2VNl>61<9Rg8@W^}h6ZrNM>u)^+DV?)5HplYxy5Dqoaq>UG#c%_{ zXrtfirMCbdf4PNo=cOH*y71^dB^6S5Q*CTZ&+i4_UJVG6-cCs=#V|sg zkMv`eliEF}nC}oH@6|Hyarm_scHr@Nn7BYUx=5)5zCswZf0I<1FaGW$-pTUhy(b}! ztzPGNU=^6){3UVUZ}p>L9=VhSr;5i2t^@J$4{nd~gI$la`oQ|#8;(Ya6W z@9HX7_Q5*eb3+cmXsdx>EE6dOfK26k&HS$An6+z%vJw?oL&yswk@TFVP7MdfqbS`S z-GelC9`V+*t%NF0b&)oR_uA!{3My6pU?P9&ApTwHBdA|HS6MKf7T< ztJ>b9)IR?@&c8srj`wBdBLO+-kEf#d@e!j>8Jba1_96xCBhDj}CHpaCap)n-l2< z(4(TV8_ZXY;mHYlXWOrG^80kncaXtWa`dkN-1FtWtt<5?k3VgT$@Ua3c--$!yI+md zakaYKsPLQtQOi!&lKxe(4kVsLq}T~1a+WMVjgSMqssR1bC)+4q`j;rzAhNf5HhraH? zT2=6hpSbazzF!L^P`FhZaiH1q>=MvfUB=0OWIrMBQ+*Ob`)&+&x*tumY1_STv*`6& zjQl}$(~vN8VMar{ZSW&nDzrYSPEQX4UKkwNjy2GHXf7itB=+WDT!O@2X6f*;oq8Qi zsRqMoPd$4zCF8~-q1~Wg-|vmGjdb{pb+q!0^6nEfy_K>CC@JJ|v9}(zXn)E^TX>P1 zu(mk}#rS%i4R$39*-HvNNs=G<6RU0t9^F@v1QSA=7y0IU^llK2pK~6{UOI{vf=6($ zF=UQ>aKdPDEW{6S4b=j^;_XJyw6r0E53=~Q!W-{m&+ly^!WD(hsmJ|NYm8i=`m7v+ zWlME?L$etN#LX`g6#{|7^bo(Waw#QddF}Q_fStD<#`o3yFB`Uz+Wtts<9_e8+}-Ce ziQ0KC5HngdTo3X*NY^x7Qf56W>|VFq!a7{#IvcK$2U1K{UR~&!=pl|giL^V)B1Kon z?Gon}Ro554&@4dwZUZsUPafNW7tfnM#{2I6IdgXqz!f`f>qxtw{(Jf;VYNlucTjT~ zG=<*JKl$q_1Mu$Q$UNMDaaC=W@m`*jn|mp3TYbZP6^_nEZ!?;6SzQ4cN7OjWm7xEK zTnk3)!dLrlYP7RcT{z{@41-<)4hbHW=Fo%5B*vGN@Ma&@^tW3q{PY@lt&Wb762b*D zDtfd2j<7kttKlN!8P0(r%1X4VnPG)bg^DYYm}+mpUX{rQs>TSaugH)V7=~Yo-zU6> zSG@2iPosJ424AKyHHl&^Grej9I@vqdxSu~0eSf)%d@<*AnEwsFJKG)MqYp|JBOh1B zwbHL#GOAM>cF+N*{8mv-0Gs77b-vTKCUDT#x}Cj_sZlB&gNc?NG~?E~%xC+QK4Rqo z7FwR?TbY8Q8!Dt`XV@k8TIY9s+Q_{vMxes#_UH{tVrrn$yYpdg<3H1ZVoi~<4tIY8 z>)2IS!K(G*(Kxz(!hfVA?CoR6H_Hq4V2Aj(OZ+R%8SEI0dA+?5Uvu30D4vp&;D6^R zXXbZ)`P=g2^9h_E5~7^dQ_MH`5lM`X&=U*#WsFdQs`*d03=F^=ca!K583y888RK`K zqN=d+ieGl5;XlMvd2wZ1$7OAgBk!M$)dx4uA~H-`5h;S1Y#5rQIaC4q;u=%C%vR`@ zZr)>wVpr*h*K|9h11I?(_kliMw*|v#_3Km`+C(3a@FTs}4liUpr+_`jU{zIz#Ei|CLkIg*=&F;)J|G==Ug=D(cEst(ie z{owq=41OlOiNd8pE1M~04n?*ecoB7~>$;vs~9>HJ7Ir(pp1 z&P7-vwkmPgM8$l;WMl+McI_@CQl7Rr<*@yjb=>z;?@Wg}5kH!URQ-2OhLS@ujaeM3 zL!A$*0DPTySVO-fHbbI~di~`Xo~`R2%V_T8beRLAY;nH>S*S{Dj+saD!-;_LS{0F9T!!oi68r?of9 z4=6H0;cSrY2v^Y8|9I;KtWjXJZa-VK@23}^^10NgwUJ$Q%4(vQh&N+^(WD8HL-$XB z33HgE{{nx{3m>VQd?os`JfN1_$P+$ch5?oWy6-qtVK5Mla&nljlF@?;69DY6-^VlT(>xT|DSp8{~7qk|25?ThsW;nb@bj`gk!%cXFmv?p0^(!_< zX~RMM=bNCs=q7siinoA!HWW6}$N9d22gn%to$!%UMzzdiq;`03L)Bx25fEOHoHNgq zbJ8MiGUS#IxzQai3n|E`d~0=ls8!_Bmhk_$`l_fn*I-$O!CeCccXtTx8rvIHtB-~4vHP%TOLnfLH_fT6W}rQbeD3lk=RI%z2L zeNcDJ7^^*6oXC;Ql-Gby>+wH99U$mc&wGoXKT?9U{fAkfzU}O9)D)8V+c0`jmxs&B z_6bk5VBxe*GOjP{^uI7AwCL#cQ(MX(B<}n`;bddiVihxyHSSW7RkurJwo5yYghJ_^ zrvDq2Yy+wJ)crSd6$y0eR!EyO?`TTniHjKP9^JDVosNhhf2&9QbJ#bqjKDoRTGO`+ zLGMRB+U(8D;r_W3ct2dY+n35HZ1u81-#xJAL#Lk!LECZE>t2=jD_tnu3nfYOGzH8JsC1Tx8Idu4`?(q|j_Vwh`RG{?X z`OOolE~eU2u}j!2!BKD@Rtx@(5G!7ddJk{!LYmk1GagfHo1~LzYR&BznZaq1D;bGg zskTAm+?w5iZqCuJA+JZdu|L!G!KmU>S1<+9IQ*=Dr#V-5@LCzY$s7&vES10ic*t3q% z-_^#Q@Xha~7|xCZ!gLp~>GCI3Yf4Zfa0l(gjzF`lV_yAcxPWblggNFhAh+q|8D0m+ zGzNOpBdqoHuzZyX{!^qp@7e49M}6*Z z&f?yX)1)A6zem=W*y1lc%;eX8riTeQz(-hw82k$uI`;aaYmUM-93gqK6w!8n0LJei z)qd&$*%NFM@P)|S5)YD{21tI63p2ntL_t(SMhbSTnoxGzpo;=K0FUg;)a2mTm7=lA z>dYHh)fyA&RW!U!lMm<^RT<7!Ily9JLg}B1{xYJwM}Nm&sXgXPS3*2%>%iHHh%=!V zW>Q@~6EME*8uLO~U&z+$uQ_Rx!Be?i+LwFUI`8Yfa3A_J34i|!#I3yXZ^9*$hl9_L zr1x#=Dfy%|E*4)&;nwh+dp5d1R&{fpHv*V=G4$_9P1t^Ms$9d`!r=2ADlDBd`J5`_ zTA5>}ayRwn0Ar&1vnY}3ZP#B8>1TiNcx#zhXlCmiLd7!r?m!veghoEy?n7j&n?~O$ zOt-WPjQUME2K;R#74~v*ZOc9DdP5U_L<0on-ez_VEed35qQ~WDB({u*uUm6Fxnx(Y zL^1 z9)tXi`S3xd%a&y%Wb>m^K0h(5gm8;5({n|&$jeebYdENSJ?WQEd*Gk3x()^-PeE_5 zIdjr)2A_9!9*BZ%)#ByXV!Wn);iwMw$SDXgU8oLjJk^!l&U%Nc98~MC6G)0~Xj@F! zqX;#K0hFjUIen~TsTam4eTuuWq5~WTI(9X`M;%)wK;szP3vD+VQ7t^hlfhjZbSgj3UZ zAFep#DV%VAjgv`*_88BxnKH}CK@5>AEBj24G8qd$yBzKSLgrLGgu^g?9i^nyXGFnA zm0^~)ZxLX!TjGr}!6>U7yHZ0(3%Y1N0mO0(q+@a{a*!->B%(w4LL( zEPwL70{Vv1wQu?^u4ea2ABE2(X!eHn^Nn|UhXtAInZ`Th?X1XvjUrza%vWD9D?WIB zSaU?MfVn6uLMqiZsSHnNdmu@Qw|B{rUqH~kDgz?8K1osBm-UlEN&DeMk(5pa!`z?T+u>- zjI{P_H_FGYfs4rz{pEQd+T(*MQR+i<5S_8jBf66WX5Xtzu|;{g!f+`T$jfPJ8PY46 z{V2#Nw&qD(TvTD$mv@%`Um@4*8-2d>|+X5M%L&v_5X z=sN2BnWFOmEovwx{6aBVT?K>OH4!TSj+uZk8D}Et8pI?SNWN!Uo(geERA&&r7modnWxlrQVc_xw8&=t15Y40T)-iH)BgxV7-JiK2YX6SaAedk^o4|-0rrDm zcOzcoAxQXPZ=@386JZ**Lv0l(Wi|^rfy)#C-xFfI9?%cMSyZnnN}&&-f|{E29bmAT z8}-!)vLl(N{WPBJu^YmEP<0Eubjx^tj5l-x{{)HnxK70!e0u}w;2(i`8dLdK_f&6w z8y|en!Jo$8FE=KO^AQ%C%5{dsvx=w&$z4uATG=ChC1gZ0GP73;gOt z=xSMyo~k`a$r)6p6+W9E(9O=`F^L6hlQBlHAIuj z?%KiPrm`0^`D2zF^Jc~c8=}fV1B+5Z&H>v8NLIWdlylK};)fk{s^?i<58ti0ok@YM zP+3Tmt}naGF!9)$$DgMJuw#_{2l%nbXjVOzb^}&^mM+N5&deBV{CYYI?Io>1DPA>ODf?wSuX>TVkMPvfoxYyF& ze&@Mk>RDdOGBE~H1HQZT_;+9nxU~8M&i9T0k7UAZ*jbUapN(#jMize;@?k?o?)biG z2`VU@<#0}3PQH?40_C2I##X!>&|ADo1_(9e<%6y&-r!9OzUNM~{|zaT{Ra`^qP=a< zV(q;yg@sgTHGV0U7Jb%k^4C%f!|ecS+jk^Q>g7xWSah61;%3}AbGn(zeYh+p%H%7t z1Kl&n1ri!RW6&%F5CoyB1+X4Wq)~b7}swe!ER@WJ*OByQ5@#Yg3@L^)_>$D zT)Glkzh-yA`wq418!F8d*i4|FfiJ&1L#)1+Ec;&iSr-fx;MJT{v&)+Ooc8#_7WH&* z8J^ztcg%5lmAH`P%^TR`1A1z_#izDF{QHZ&r-gYuLzl%W9+~XAPlM-7d*N)lUy1}m zX4snP^e4Tfl`6|Azbi&rpajVc9%q`J=H!!cpxQ(AX>wHEnwrWY4I_+{PlnUWAlLC~ z!_0XN>v=L1B~!XL*Wsa3i{h~o69icY3GHV7&vXS~Q>Nt(Rf~*%+W$AE^F$S3$lh31 zU*T(^6o(te4m2?38m9ij8P)ylS)cu&WoAI2^5n4I z6G#NnnjF`^pnGQcd{}^{@{@gWk7vp${?`b+q`&`ix!=G%Nfp?)YtqM>QHZRmu0Ib% z94N(sbk68|DRXpN!Z8Q1K6P&Hd~|X>&Rkq~I;d-zKz{ok@`AvL=ba+e=+^)3-`Vgz z=cD~k7{%{>4H2sHzcC_gvnMu|%uQ-=$+v|pMX@8-W4V_RNy}19xS95$g{D#-snDh3 zqcu5cV_(T&usR<1J6>Q6?-bh%&9g@GQH()u4Cv#qpwzGX z@uK|u^-~193|%qHIjh^g;z9ma0(?3JB)jp@D14OHJ^A_LYIhlDvAp`_;dN1o0hqv& zQRUBm!R}TeIng3FBL!^(8vrb>+)&s(9p&5vvJ#%5Rjd2GM~=wIUxH97u0Joaamcs&kEOVgxKnky%jp~Ehe!{G| z1$_!Yg~AC;pCbMGX^)P}hD_oHmd&K|P2*v^;pS@N5oQ_qA*KzN*e|$b$XI{{VVN$; z0@XYNEBKKqYN9O=!c%O-)qu2rb?TfCRT=5n$<-L!HWHs{W`DC_0HF){Glj_0t191@ zv~1HegCx}GtZ++ks4aZgAqM;l}E=-n$_6aww}jjmkrw$2p>6XxPA3{K{3{nb8#we|FJH z=9mJs_Ken@gXX|4!#U!XQXeEn|M=AF=G`KWN7@bs~a17dO-`oJ2oUgtH^S`mK@=tb(Pel2ShF5%%-^HGkQ_$|qb z1|;^lDnosDVm~8>w)8jSz&WbP3C=Q2Nxu^zIxeAr3*a5HeqrkRtS7mP%H^_QaEAY< zblem_=Kb1w2jKQ+1R67$hFHKwKJPkHUC-0xnDO}y>*}hJXWp9zo<$JuA@QPLphMaI z4K#3`tFJ$g#q$Y%hPY>cnFwI?%V0Q6gJZl%o;m+TRPm|we2IfrW8~AC3!J)OFk6HU zeX|8W``5DFV!O?-q80I5rNRZ1NajJer+vn0zSW@Cg{ZwRg{jLj@eKwy&>pdy8tnva z-e}cW5W;uhAbnr!Fx8L6{9A5T*WDzpj)x5pSN)?VlxH1ckVK?{0%~@epHQ@j1zYx& zuT6CYAdi}umv*R|SMQ+QAwUEoT2)WP2iJ-*oT;S^xmEg`abGG=CX=1p<~5 zf~9C*sbEp*9xYEkPf3^AAK>#j>kUFCAtlu|hv%G-& z&))>mX_F(cOd9>anF`?ih0^&j*z@F6Ol z+CUDLIEsc_4WW-XGGa0@Q*3@jPO^ke`Iue=suHvduXhvTcOx)0KFOhBJ1v&$Zb*W# zi8`KziN`L~#+vwHO09u?8}G%Y=$O!t4GCZ8lEU}c+UmGBMO7)Um@p&6Vk=JXBN7?+ z271u|P{EdLqM4EHm`iK94ex=-Z`%Jjw(aYFlmeSF(gY^xMz!L;+BVGlU^~1aYW*lH0 zByQao(%0bgr=I9jcV~zKI80$wD38V_D|DSJmC;gDDPnM>?3eC%C|_X<)MrxNy-qCI z#DI5D9agz%MK(B$gu5hMw@T~{mWm9mdhrnk)Jqr^Kk~S763tl9;=KirxoGJHYTMh@ z;$ZO?F>`mcL2A5ax9AsaA(r2`*kqCujjfo9moWM$MSMW1ez9zZd=Z)3(P5g~Ff%2i zT6N~*M%x!CChFWt zUTK@`l>4oxWTP{U_3;>bY+Jr`8XCQcR7Q{q)KunMa%N@13cOf{1D7V)1aL|IV!YUI zqcpM7imYN59#*Fb-NWDsx5~r<1%B*ZyFlT?ZY$|T3vEfAt{u+9(KF>PHjY)LMLqt+ z90qb!ho?iYCRy{}Yymj}w_~EJgmxzt0#(jU|@3VI&HP^C=cS>#xko z!i;VRtJ!A%`S7YC381WT@s9N>{ z1V2AqxBBf&EUxxT8oy~V#(M`ug*T42w8DG}r;lGqVXN#9Wd}@^Xl@(nO zh9#0TICg%jskY|x?C*C-hl?R2aHJCFD`;ki46EmnvxaSzV^n|k?=S4zj zkb*936y&)OvwECCK9A&0v{!8BPA|d;VCd}a`*!4_tj^6UKfn42w&bywY4jnc|*`i;#v^bGnQGK@G( zM5dOJGeu3w@){d|0P+yDE92Ur$W3s^W4=!&>9*o5mZX68eXs1+IM^ zALKg3rV%Png{qDh1#8NPvjl635C#H@y?3#;nBPSai+dAB_TjN-hUaxW$xg^_)rM@G ze{)(@#cI+`KK&>t?K|wuIZ29GO*nWsf`BWsCPqW8ps)h@Bt@eWOyR?5@_3aTaNeFD z9T~ud>;mp9fP%AUNJ$w*GP=s)`YW|pI|PUBlpb#h?cwX6TWwoiC%hn}%va3(E&X1U zVRbt6JZPS$RiTRUX(WCCGbsZk}pG>OfU)2gADRDhW zK2RBP^67i;#XXnnWkk`Be<4CJ?9JKU@#$>QvzX>0sw>|3o6au|@m5SgqP(JW8^C_tEc zIjQWGaRd2=L%42Gs?Rl=xa)pWiHjXHDLs$sNZBfl2g3;;4Tw`au_{2c4JY|kGok2R zZzBzX$gL_zWbRrm;T9+k&40O(=k~%YZK9SUHcH=(^y(G6)X%ohOsnrq@C9o;ZlNdK zJzZg!F3UZ`stl93-s%~;!hQH)G0I)%}gh0TcD_H?ulTAP+j^~7x+M!BkQ28J-vFx zgJcQ^#G;5{l?h$CP)%Z!P*w4B?^*-6@*szIA1oGd?k_|lr|2WbYBF$aLC{gi6bgHc zrbh5uu(@^Tu&cqYw}q67ubVomRp99BTJrMl+Nu0}tcyj+yly7Gf1ZG-HaN2Knm#{Y z-T)53_$RDBch%}?9?)SvKLlbAI1R}Y-g+>=QvHODH)d3=0%X5SRD?tfpfIlFU)Ec6 z@g;~2ls}~Q{i+loScE95sA={ea_={C_m}LbX66_um zeq%q()7hC;hlJAF^%-~(xUfP>vioqeP`{$8n>^2c*&b`ke?YIh|7CGI^G`&RgVt!r zT*Fpu{!39!;0Ai_j34xko!mU{(=cRSXqa$>F5LJks((q6XH6Clstze_?NJqI37V02 z$6=DFc4)a67P3HO>n z{f?M`Rh2D66Nk*^F&gfZqxeK7(QpJex7V9pB%}VD=&BWbrtz8R`vAI0>EJu=kgANB zg8a#AEL(n*s~>G!=wfzIrJs!5YWs|@+HgGs?pMGG(66tPK{S4$=+PO9|Mqf`UGMxJ zYWdm3dIp5b1ND<_hS!B1N*dg|Ec{Z?PAHoL`HH}E*>c6%_Q;g-KsT@W7nGlKr0|6* zPYgG7sWuK3c>%>NHGbGM&tpwd`$^$$BlN$rV<16WJjy=bjWC?R_}hq%|E~w?JVU+b zq94P%hgNbln%Z8inTW!QYP_fcX6gbP-Ir{Q(tmQR;j24TC<_CW&DRF$)$TqB%AYvZ z{8Ze1P~Xm2dixO3(!n9iid+znaZ89ZHH;%E8QTM7n(;B}J>x~DG_C}-lxdyo(Y;PM zty$~TsH|DPHl#vi5Qu~(8D|FCjyIJ(*#GOOG$mZA&CZo1jl0wW9%E?)9S>zTG5|`^ z@T(>(&qfb8i$wC&o%w?l^k`q)Iff|c;TAHsc!UY#e$p7Y@eAKUJU#JmHNc~_470!c z*|`M*76g%}sxd_8R5uuDu(Gi2tm?+|a}ZP0M$iMnI<^v^-ONKaR})RkCud`=^?6P^ z^18E{`jK*BXT{a1nn#h>d)`)jw-d&$+m@sz^>1mW)rLPuLD}+S=3l3`yq=BoeEIBQ zf>mglsEgV@pv!G~MuGgZT8tu~nN+lWWKHfqRhWMpon70k#y6HLyi#i;b$`W-;W0yk zk`zP5&^)C@ze`SwM2}hjSd^-IhA_$<8+(%oH7@sILDM0G(Xs3!TuOP&s%>VL%NfQ8 zN{$*|x)o!a|sZ2Xc_MBpl-@{u=v z$i^W-7gGAd(i|u^VK#&)a7flyfm?$GRoxo=y6xBOw8(;i)vA~}UhXZXQr)Z5-jFvb za8(xP&U&@2U!n*$tyAqX8zMVvsBZT`Bc#yza#AP4LsOQo^BwhCb>4s1@k$iL4W*$m z!DxOpskgWG-jucNG>kDItFQYXqN$t|^hKFt%H|D$w<;jGUm%54ok2Dt^|$l;`5#VI zG?c$JGFWmcNMMAcTN&K99>`}Z25Hh`ebj{N|BO&dzputm3OYvhl(?S`rRYnoEE`iAGX6mZDxt{ z`QA-hGPpRAr;P&XG3OI5{pwO8k#08U#-_*phRs2D1XE8AzrsKyXXNJNy}8Ut-$>ra zL?(V2e3r z36;jayMTEFgBaY>Q(F8>qZrHSNmn*4e~k>8nUaRa@WXgmx4*dr}j2i^lQ#H`j%mi`9;<2 zFbDaOf%K-Z)oeMduwRZ>D;5pwenf(Kqjt9*gVXrli4o9=Z0V~|1*gT0%+(uJxfRcX zv)fw~Y^S8HzzNUj`#CO9p)Tc+=i>nf!Gh0+Z>f1ZAok8tD5C^T71=AL1Jg)jADhGZTJ!=-o!g5=zgyIh-b9ir#7bmb{xx;rvhv~< zdO`72U`)R`tHH5*OK_^+uJ}Y@Nhd94RQo#v@7O|qz(Nm+^LKkmD_<=QY%8dB`G5;_q} zCk4wP>3li^bYI=$GpDFvW2aE~s(=_Wr9aUkY{oc4YQX9XZm1dqoYK3iF6u<~ePMM) z9HbZsQK}#-htO%v^cYo);0t82Lrl)wrgL<{tEKV}QKsGoDLrLDL*iOHPQ>(A$goSL zyUnqTB27N+F9c1wc_9;^D)%qum|dW|BAUw)QiB81oKVwU<*(IOnTwF89+~VPAj5#| z`2YmEe*}*61G9oWQxQYYA@=_|NZ5cAy>>>ogfGv1o74K~I~!wi=%GymhiK!WA?pt- zj~M=mxC`F4vCPai3FlF~fD{CS`%JVDgb}ikQWyQUh$5q1)C=A_3HAVuQ5+{2o5RIY;@0q!eDe@6ElT}FtU_Cugqi{D5L%C3R(xP!`x8N ze*NVyVS`uT9}nTfrXYdh$8^DyS1hD3D@7vM|M|8W`$nPc{{*YUICs3Q-n@jsy0!}; zy!^Jqg|panvMKcGE1mLM<``Sz%vp7t=w3FZ&z}ksYh#$?gWTWgSJd=}E{#`EbGlV% zQT>t&U{+1Xq%24*y{^AmHz~_ZtyCJn1l43TCeKF)y*tzN=Qpx=m6xrjzImvQWur=R zXqkV_T{xub+KKw)+>qP#P`ztpZpbHE#o2V*MN}|)cqMV`=~c8VQ1o3|19b=W!v9F) zF#3tU7?Qz0XZN>Chv4c<(l-~3t}Db#Uzj9hg!)aQh`N-<#c;m&fgtWV_5NmfQ4r}M zkm6dm{My>&(DJb2k|7-Int9-xs?}t6^*qJvq6siPvNU^_?gcRx;?>K$xZX3m$!q`m zcBE~!G5ZrL@1xLLbn699z9!fu;mc;XQFxqPYEdyQpKxr(py!*rCBr zS|w??%^CA|)hij%zr#r)8`fOiR62_~wR6FK$Y6SHsHI?*3R#UxxJiexBx#E82Huk z{L1K{!!TSKV3nJdjA(kih9$Dkn(NjimZk*n{(gV){P;oAGeWLlo^A4jQglj;7Nv)-TL>3W-R`fc`c0YyGv)fu=P zSf)cv=(>2qe!YLGaoeximV$w%PLd0^G()V=4|Y3fZb~50opB73Xn%+BfCz{@IjHLh ziu9HG^g<;n%m6|e1!A?`yq+K<%nUV68+XOj6Dp)>;dL~Rd%%hzz(_ZhS>rdq;jgq* zmmO;$u8NrE%r0;4m%eB|@cn%Rg(~tTwbn8#FqRxDC$Z`;uGl>GZJJiX98f?o~A54VM%W$0aT!{=%5ip|GTh=FhK!fkeeLo%t{U8wlL# zJ0~(@eVnyD2T>lMiCO>6uMtrpO_4xqluvKlkOh>^UCXmq3r-x`I?=*ZGJKNaG~Mc}IVzx_@Nbxl^ncma9N9v};;#tj~!pf>y8Z^cKnE*3ID=?sG{&$^v~69_@C* zrV&rsdt2b1=`&6~Z4zbepoHHDWpjuRg_|!c20rXHc*4*^^?YFV zmTW%{8t*4r2X_^p@Y5SZ#p1pNP}f zo+EycM#9fHqKbW17iW?3fl+Hig?(4VoUi9R9R}@Cv569jQJs=iA{p)qWg=0nd;iJP zOF)mp8J`g2$i6CMFUjNkHyt(-OEUcUY4Q<*Y?KVtLu+B-;CgMw2*dcTVk<4>K<94N z;`&PTT=$5@>R)2zxbI4%1Bsve(}x|NufbA>u8+_q9?t5CODF z!Dhv~1u)`Y@Lqi-nStb?uPqSaeNgX0vy8HVX5CVF;pmugJ7VJO20Gt%C~lFAkro|- zJ-b=Ygt7F@qL3ElXjUyavk(2Ns>a4|G3vR@AtTh-#{gIi)1Wb`zCvx3OJ(ho-ws1o zanO6$^>p2A5!#B=+z=hunS*+|BOB6tn10B`Oc0e+*XA16yOu*ySGyvlWZ_RlD6frgJ#>j@-6VC>NdZ zybUx5ess+i2NW886VDY!QDEmMwbN^1ncZup?Yh!#JLX0jsQY{7u`N2)_S~-hGW4#a z^=(i#I7fT`fc{Kb!?Reu#j&KI#qMk30Fh_*>ioD9Y^o`_5oX1f2nNj7TOm%2@80w( zU}}qWlFk=)-oX_d7jv}-J&jtk8ni`dV&rt2X=F)Tl-q2bRN?$O`?*AO$|rqr&)w(Rdv?z{#`j<8dask9(YTTUjL+AXK;2YM?i$EQZo4Rxa@Jl| z9=7Odjak(czsMDef$}^p1C=oJ&>sA=s^5Ec6IVDyy0LBD2G<*1EKIrJp7DPr+WDrk2q^3$am+y8oA*IKGqm^u>pUL94 zZ&vC?SJVOx1VI;hD;XiaTz4dtA0?7E2sZ!1RR5{QCuC^fzcTZqnbk9cGAmPQ!sPn9 z7i`1XoP@N?V*4A|l@0N==)mc{eY|OjoT>e4t{p5l#(+38zk5vlFGxP0R0u6YK$$emByzg27U>H?!|>;XQU-wfKD&IM}8sr!-t|q9e8(r=l_1 z$_l5no%exXe#3_IvmYAGJ23RPlLir$#9YyrWyKo8)H?(^$(prjjR3$y)n;b1i@zq`JejL6FU37?VesGkcaf{?H*mUw8e0eN8Ki3 z@l(ODReA2u5$&5Q_CF`Ez6jv4%@kV7iM3xFZ)!1{rkLa+W@WI|SCLN6+s&IsOVp?7 z5)i*%(XG}>bY8nH6b!pOQsMiN;SU=t+#WCA{%DU4SUDIWFOwCI#P@>OiVk%$e2#t@ z*N1h%CN5a(CArf5LRsu<3&)2)N=h`wU;CF;X#x*ONj@!2(qZ)y^Al38>gDS0DRayl zXlv;phEw6%1FZu;6bI&2L3f^8nGc>g0K$G)QAvD&`Q;Oz$%b#9Z)09-B=FI>SoSzR zZmVl}H+3wNvFGSv&+#-zqU()G{&oNV18^4m{L5O@(LW*M2G%{)dI(+KU-%fg*6Y@? zPP;#YO5~WrJsGKu&3IL;`8|UXw`g^p!m9LZ zTvz5VEz6^t-ckzZi`%dshIZ0c^Fn(wNqAI$a1=evGu9k-K1(&or`r8_gqj+$fVpk} zx*5t07l2mS#Y5W`}8gIXNNYCueDM} zMFXDVPQD8M6@*_V&U}wA;Pg275tb}62+^sz)1!&cbJv~65F9Og$M&`-MCXPZay^r% z;k+~d7mRpve1~Vzr`F;l?Y^q1Y zj>`P5RAI`$>15!bF!6t@kOEKf`Ss69+5N1%5qfc1a`AYtQjKjg`N^XbC-X~d*(W?i$sdo7<96?>z(W!v({SB+{@k#8#KiaKl1Us7ux5$8= ztH4_XH(@(hr(M6un8=*4+b$F9PAWQfQmkwsaSS&>S@isynnC!;9NNCksYSt4ME)Km zOaq_`SiWnN=*QyjAPICqvA3`(u(#XOEY1tnUy{dQ0azw8KsiUYe3V70)A(96|OI1uOCL-y|mTkYf3N%9sAP2I)&sV z_psD?N9DeUmb{JDC4E?qH(WGf8oNCiFkFWMD%05p{(?lz4OjL%H3~lhyoVXHRyFK_ zk|68s$;yayLALTU1DrpkQs+EIcdJz|)F=OHhT&{L?<{`=p8bV?s{eQ|q0#M%u}3qX zx71Q?qKkmn_CeYuTd48U@b+mOe%_xMzwl?K3%uZ)6r~G~s>d% zjG-b_CF@iUt1~g3SGh2uJvJ2V(Na315#0)()p+B#OG6~jK~SA~8P0&uRGYBM4^!10 z-S+c-;rkl8>-5j}iB(^pAmlaDTa(}5o^SWkRf~H!dd~Z2?%;i*^0W5epAX{0O8b)r zesm8ML}^3tNhcLaWd}g<`h!%)zlr}m1RUM$y_zO)1t&yxh8dbG>6F3hdLDpZnaGyI zsZ>mko%gjq4$o0|LJ!!V?*5rH35F2-NP5DVt{ZUvv{msoAqsKdfAEmFAndo2XhVU39A1v50*i3oi~m zn6!~E*&&+0I_SDG&p+AzMXgpjVcR` zlOh`6Z{=0L^|4`F?{g@uH23?#y{Xa#N=_}zXcBfEzg*#Z3^sTr`0^cxyO9bis2K9+ z%N=-$Ei8B_xT$1PvYD&<=51=YFi-mX%7zudcHsM-W-D(}>OKpiP)X@tt$YN01?Mjr zci}hLwE?G^FXB+${}kzPc;F4p)A{~_;XnU~3|h>GoH$0D#50GFX{vb34=@9GEUnrW zC5q@*~KLceGvRtPobowvE_sU%%M!m(at7Vxqff3QTgBM;A4 z(p2@^LBRK00R7q2u^2THj?{~_q_#Kz>A7qE#rUDqw7Uzj6mwo zpy%u6PUc`r!CC#b(wbfbRxyG^VnVSJsra-}{ql_I#fQ+q>JGW)TETI?<>p%5(|N)7 z`=weC+;>S@4P>#>{WbmleRxM|C0fGd6PTRLe@{14 zMt!a9n4gKu-|4j>9lPN%0{8sfsCwH!z3#0A4jccgP}YOU{NMl8=aCtU4+-(%L*snW z5Iy{@60TpL=VoHte<@|gFOAk`&Duvqh;&2l&xzKyVvgRcAzb9aza%~4H~0zp@F)u? zFlf)cpoxVvp4v#L zIA{NF#=TBM9WC69^v9-4hXmxGwC_gih{o4M0dWtu>2$dbyN+y}jg(wiM`eDaMo@$B zXN)QFc|Nfka9Rudu)BUwZja+*V^PsH=_Ek!$g}B{IAQ_MNp;7z%VO7#e}%Hmp}@Ri zQU}BD#&4-weRvR0=QXjiQ5><4dc@faJFVoR2J%AhW$s6AP#O!dXTuG(pvz=a;K4!Q>kk%&-SH(CblW3PSkM( zeP2(g@4z>q1wql}4&e?0asK|n)KNClmbl1y7;0IQp^u)E{W4ZH(IS|A`!R<3>N#ZC z#o#(l24WJ8F=6iE&oTD(U|KB_Qq}M9`0Y;0_fB)|yGG7Nl4dwWJgdrgngj$@IZ>pp zm-z{mtgAZ__BXn!_JgFJBf^(?4MPtMM5-Rt#M|nl`q9j`}`DKZDTd;7NS@dnKnsHaA z^u|!7f%FO|I1>Q$3f!5{T?W57i)T1WN4JS~i7iOp!v|ykA)*NOTZjg{Lu!o^A^$j0 zH(ntb7&jxS5^*XPzma&hz5-aJ=7< z`pYIR>7l{D8rF{-fZ*f5=7g)bphf>Pfu4<}gCDH}ea|%L@Z`L>2jo!bi9OF@!V(lg zTO39J6<3n@2?N-7+wyWWACk5_Z02IbcDPIkfQ40}_IEK@-=@)>5Q&c(r|6Hr&D|cv zL}XUk8JhG&c3%>u) zC3y5QY@wi-Ha|*=Y5d<&x!&>Ds|+&m%Dj+VypZ0_Zs95g{0w$A1A z)J0c??T|=SaZkiW*EO~5Oj6jAOzhC#k0DNjaziX9S*{jzO_!<_TU0reChz*nBH|Pi zGNE?9ipN7pbQ&d@=9s$J=1ttV+VXoead@^wo!ER`AQfLSd;BqHzEb01N-C+!6Q4(Y zIk0Y|N!_C0IiI^2rkG{truDoi$a`oC6M>SBmkf3X*$3Ck5j;Uoy&}fgFye&vZ5&;^(`(AjC0KBqQjkDk>_B^ zf-r0;zLC3mEfI`!EFULMm?2LA31W4@7C^w%@|o!?qeh!)9UiGKpwG|D9c_9`Emp~2 zr`Z1{)+^?ad)J0M|(c!D$$+trG58n1Kz6k2m5D+9;ZD%&M};oX9z`&?bi5TT#LlO8bJ~$ zVNZaT%+GWbHa56ucB|(Uq5cQg$WXOVfksRLBeUMx)6yUH>CIv7E9n(Jx$L^HH-4V* zvdf!JZ}wjV1^w=0jjw`bx*b!GV&4`=UUY&bKP(Y+^aIL&(!y+Gf;C{#SkTY&p0nX) z45w4wz#%pp`pQ#bNUoGzXHi*1mNg$xE-VvvDG&McWCKspSc28xI%vm_i@6v9pONCu zodQUmYPaWWLMJJ>{L$w(nE~B8h3)gX^j1ctw$g4K|1Pq}!6&+hM$it4qt3QKe1R1Q zn)Z2k*}e#wu9Y{+u!ydE67iQa)YkQ0Q>9ThVnDyr*#@ig-Bp?Y7(9L~FYM+`KXi+G zq|*@VbrtXU7Uu0%U>o!tw~wmA#rO6TYd+siZK1p6#mUzz@&DcZea-nyfS}Ub^^J@m zTHeqxZI#(Gmv2lRv_(nQFY=RsFz<9Kk2W^nh}UrPLx z+Ao{k8Y};FO5jnby!wBqX0ShdkCeKv>PS|Y98p!ltmjftAy$<`+tdgV^v=0dq2jgm zo+-QH{s?<)vSf}Km}7ta@FMpzCoi!!sl%!yg4oLwMm~cP+u2kYQ|I8S`s!Cu^<- z9qN-x@*-3U{!V&nUi_%TdCo7Qb{o6PnxmMV#F0Z->psbpk{>pyrHPq#L<6;_y}}Rr zJ6z|i^p%Xv*){iBp#N&?$f4r_x1p~8c<`Uez7siHV42-NM9`^^WG-&r+gn=>%8Nkecv4LWCP-n06{(v-RBwSk#AT(i#6Pz z>&x{gbhLQ1Kkuo0r{%O+v}i2b6}VePbGLYIF?K34&4pqy^@kFgagE-8j#{m;XJpGh zgwWF)>I(Ibg}+*@&8|7b4!w*hOP>!az?Q*CM@XB*v}#YIaKaE^?)Rmw5~#&23X4kB zmYhcgFX+=gBS^nDcRlO5rm#F2waVO-&g_z>FTr#@ZfqwU5qHa><6TsYtxd=WHF6rq zLF0*0O-uJ^8qH$w=~akKIxb&OmGOthc01R4-#Y=3&-3wlg6(|A`2Ug`*pc4TWH793 zaQr_)Zf|e4^7AI;r2Xkbkd819NeX(oJuUZBaG;Nnbn7|sho~8@e8YWZI>glmG0(`~ z+hqusQoz^sj0`jj5@g&}E^YAwY1gQJZX?5A&D42!017LvUv?C9#0bYer{+g6YXp-a z>^+@2S3D5k^hEAoXhYW2sP%(qe=JQ(r-dPQ&w<12&=lQ?qXOqZpVM#uue~b|hqC?t z_9b3hvNKuAQW}M_4~kI|LQ)tzq0mJ3u|}4eQViJ}k$q|G*|YCujgVc0vCm@WH+{D^ z-v57p_5Arf*K=LxI_G>o=iKMq=e{jfBn*6p9mQ=m2+bxJTRSh?!d1wN+!XOIlS@rY*>SPiH6+8(ta7&o0pSMR8p$W8SA>*tml&VrMDXH=)U&YPlaVSw&Hfx*L49z&b$(`WdJ>@>m=LawEyZp*%HQ1oK#15AMbXA#H z>rhYinQgF{*(g;!MS6}v0ui-~5k(Dw(Cpsh;|NSC7yO%px|`u%ctgE z{et3w3Rx>l=*KMdG)|IJ@_JM-70cqGKsr$u`5SAu5`~+QVrt4FMwqMEHcQlELFmKt z-Flg7t{k|^t)w{YI5hi%kULI`iK4ncFNx0XuaMHB47+s5j-A!5t^NS#SZ)rc}w-yB!SapMgLFES@o*$qfv@EW5a=Z&U zNC`nX-<7Im>p= z$|camq%?uGxIg1$O|Q>9Y2ejayEdCIbGx)H)spJ4Z}9tB;(dTA$zd3Cj8A$RFHn2$ z?8zLhVLQyI$&hX2GYTse5cqiU$+kH2MHQjkmKVOB8Ea}b>3TE~#G-T|^~>7xB6UB5 zM)Y}NxTz#(!PE=39-bx10Iy-B3&-I2m4Jdm-Gu&np0XP&RO3$8++lm$`dVQ*9Z>?( zIce@JJ1i%>2_9-TXSo&5#nm>r_Yv%UN4nn7(7M{>sV}9*gDOI9IJvB!N@((1YDq!i zTQqF#CR9b!BTlhGOyXH>o4F{Dvl$|K<6)mvvf!;dD+1 zH>~w1&hH_RXU*P*?G366n^beoS8Bn+Ff_cyXFNPOwdoJxw&`J zJcleA#@-_(V%e9p3i|*h~TlffYME}8?CDk9J-5cXa2_rEWDl0>rZmgbLI~FS)tZZg-8kST^yG>2sSFe%+ z*VHsV(rn(kUY;J}+rX@2m{K2^BKLSv)Car+Hm7M$Bky)db{KiSOW+8*Km-LzebPfp zvkTb|J0c?(tqLs0(Svf9ficL_%7(N9KM}SFZr*Qh0IB>THF72I+lSym3EwQn#EV{* z?gNTz3rpi{tPOqoQC|#lH29g{tFJYW$QT7&OGtJ3#38_PSMIblp zR4%GnXzlkMd9{%z(0?>IG%`;rQ~Ucj?8|_UF679T>uuCeCwz0cLf;M%Y~D3>!dEbK|Dy$lMVKf z8Mt$J8CJ%UBY| zu%@5TWx~7|dYV=v-jbD#RDh6}jhR+Qrn=h?}?%I3675aHAw@`0-b;DM2xNcVig;gr0 ziTyVWaHBxF+Nb+lA>F@={9KT zLyI;ML(yH{3UB15rcHd{uShW=#|fsnhhJ#qM76AFQ4E@dECyDWL?QlinRQPx1)gh` ze+L$@kqY!WQEizmW0wqC>%Wv(xFy9-F;@`JX(%XKkeW`695A#m;1j0E1CPa#_5rR5 zZZ*Ve1cCe1(mz;GKb4$OZRrbsVK~knG-N~(pMs#!D(rK%&&7Oshd26i?y+D}M>t5L zl|n-iFVfo-Q~Nl7*rwj^eK$1sO6NNuF`h+Mn~`*PlvP5E;=GLPvoXpbp0AI;0dLvC z^Ya>u#<1cdVnpf$;@$Ve3nc`~_A#1%*;4KiLq$wZTa>P6=0_6*bF#(spyc((E$>;{$GQ>JHH> zY~If(ws8r9>wGd)WBxD$A^N1b3<`~vSqDQ*IIS?`5vDS?HXGf!WfPFRp@)%r+bLuK zL9rn=T*`4*b1ia^DaJX^COYMfEO(;fk5;g+%^TZQ@q3^7A8b7$T76KgX#(xO6!Sd> z5mpN7x!glaiYr;i^Cp`a>1li#NyYfkG-7~+W$Rfo1Ts83K(s$OoYOh;d9<6VwSe+9 z$dYfUn`R_2%y%uHE8xWPCVL((YLH|fRBXvM1oD#)BPrH9+tI!Q<8dnpwSFfGM%un= zZ*`sQC8@sNF-b+L6SZ%dZei7Vd?r?67)AR(2^nfCdQRo?1?=`)b_xxP`nzj_Nw-`t07n)Ul`Sv)>^K!X)sPa}1cx>_uVZJ_PQ;qzo|2M7zB&gV%^`aL3{}__Y1U9fXeuKBx(AcoYKd3`wlaL-A9$gM zQ>vsMs}zxY2)uT`+DF^)%gLtU>ZEPH>L5aStLdC^VOY4RJ9eXO_1#7X2z<%4o}2`p3D5_xl&KoW9!159m=I3 zSR-f;qq1l>oQixy36OHx(FMK1E&jZaTiAqw!ZrgOgKq)o3Q2Duu#3fkQ=%}h44>nx zhDP#kd!jg=z9tWIJb2!n+6sVeqS@MDr?26G^PxVB`;zGG1s$5#&-A-Qs=~aZR%LGQ zwu=~OHf@l1jkLZ;vVFA=Ttb&~6-4xUr;C_pSv@%{q|?SL=zYA`K^|GBtd{Hirr@8+ z*7+bom1_5K2yHwA1@qR)r5>D_wpU$~!K6aap3f-&aVR^+pPU+{QOOu*saFzfq)o=!`^ zzl2HAc=^U1O^U+nXyh_$69Bb<^W9dT^Zt|$)pn=(N#)8*DV7N%E@jxI7LQY|c3T!& z-HCt_MwCMF;d(nJ2J@M$Rq@CPtbah3Cv|EST14*z-F)<<21WFm0c!8T08n~7y5 zuO& zY6bZo>Y4iUJoG-EBW})I%petGW`>{IAE(%}bekgco$aKVnuVFM?pgUpWK+5H?JCl zi%?*AQW0}6_gOQ5PrR%pdPu){zB?t7lI|Rw&iI9wb=>tdx1B;L-Isz;&Rq)`^rvj! z)_R*{(gMkCBT#ckVO1fhzsF%4JP`Ludo+|`IJ8v!6tF^*9cURt3uWVE{h@J9W=8dN zX5DgTqyeMWIp0mrYcwy@_;zNm%Sg+gx*sm~w$-WWuWteE(;GgENlz>ImrH9q9Xsl` zKW-D!9MiBVUW?s!?WDF%fWU+buCBcSTLiO@jisQZqG4b=tsX=XTnVxAFx}b%ww?I* zi+_E2Plai$BXz!OP?=(FxiZ^fi}}*eisirUcOxDDp!-h#IsEOD^eB`{Nqv}<|T>4W-mutUhmx_Jg zuARM8;96lJs%s^OaYR^K@N*GL&wx4(_mH%6cn;Inz7SZBZQ14)@-B=m6(@`OADL&Y z7>1M)p`~2;zvTb#%L`PXfLR><)Arb6E%VKI?+lp3VF@UzJCr=!GlHbwAFL#74kS86axzyN#`|GNSD|ETqswDk9^NEXe(mPM`Xe=Gb26^OW=&$`P$ zXIlGcH=Kb=$XUuQaCv$v@~$|&{7omAgGzfVlo&@nw8tqm-&Fh1L&fjjBZK{m4oVt7 zQ|S_#ohkz^=lJL{yxe}he$OEExl?7|a{kX<8hc_QiWcD4W{0u)W;QVu)LAp>{4@8{u=ZXIho$2RD^(rN{`FsHrlg9{JiQ_2`n%d~f*pZ%xJ`uu zHNf}gYVTRn;MM?)g>lxDxHZ(Ex?GIslC(2*psX%;e;at;js`lYl6Q05!F89Hujl@` zSZc+MCsCj4-giy;bWFy~Udj&RG&5|klFReLeuOqso>|kHvqMw>Cp{| zffv#aVNz1?*E`nwRx&vhPy+)15&Yy*IO}SXi@^X@cul%5DnE?nqSFc1#VZ$Xv?k*w zCM10JCcAod3i9iF4eORSyP^lhQf9%r1dfm`@5e%*r9WmmY-Cu~0*of9*C zX6?BUKH(U+p@*P-d-i_@559W-MJ3ba-=tgD2=1OHP2~0}&pC?NdZYPG5nhLz?&!IN zXC1WJ%E7KnBUCZChq#`%pFyXz-VC(qbzc41he?t{OD8V~_)QZ!*6*1raYNgKF01I9 z+`4r56Ru>!Qh3H_TE)uaqT;^Nd9#R1)d@admAZR*VDdN90QlIYdhhQ$>0ONe|01b> z3+JxSh@Ob?`|;MC`G3+G4tK5uEpf0#A-YE?f%OSDm8YW=2EV+=qqwRIwV^= zfV@iR9+6jJliBOFbmHTJwvX#?-_wl#d|u<4A{XGy>yGD-iza^rub4}#n9&P+3i5gk zVJGqhr4KqJ@71P(5OxpuZ?B~xf=#dB)_-7`9E*@FfZtqf@(b0^J9BCEI^5vj&>a|@ zlZM+aHJaEsIB=fC-ld^)to1n1$zlb-yS|jyWDBgyh|Y#%S!^DyC3zP;3}+ANvA)Kf z1TH5Ed<#K1^-;DNo3+3to@?{g3REg=%dPhf>;r$ozm><haoW{5D=z8Y!ix1Zez|M(-UyV$9Wa~1^qS`?1^(4QYk38Vw z)|64NXWze;?$_aQ*zLo0x#r(p9dB;sG3t@7Tjl?ocvH7$9Q8jwemtpCGyHS?k!MSZ zd{J8=gJOlq>#-jZ>vmz>;vy1?LX@qTOnyXr7#1qB^>WT*`{mErN6VG9CY6Fstt63~ z<8a#v_6*l0%)#7Gj{-kcj`-w5naSmLOxxJgEBHsAwkT!axh7Id{q9(6pm^KZZ=vmP z4*NTL{H>_Jk@}m9{buXm-0{!vf3*6?N&cYV4+{RE;13G^px_S*{-EFw3jV)PpwLJ~ ZqDP0wl%J3BX{R7R*R^h4E7G(I`9Ez&|LOn$ literal 0 HcmV?d00001 From ed1245dc2f43f843a2f8b125916550ea37e59d9b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 22 Oct 2024 13:26:37 +0900 Subject: [PATCH 08/11] Bump codecov/codecov-action from 4.5.0 to 4.6.0 (#4) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4.5.0 to 4.6.0. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v4.5.0...v4.6.0) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 97f544e..6823f09 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -53,7 +53,7 @@ jobs: - name: ${{ matrix.name }} run: xcodebuild test -scheme "BuilderMacroClient" -destination "platform=macOS" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@v4.5.0 + uses: codecov/codecov-action@v4.6.0 with: token: ${{ secrets.CODECOV_TOKEN }} xcode: true @@ -119,7 +119,7 @@ jobs: - name: ${{ matrix.name }} run: xcodebuild test -scheme "BuilderMacroClient" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@v4.5.0 + uses: codecov/codecov-action@v4.6.0 with: token: ${{ secrets.CODECOV_TOKEN }} xcode: true @@ -155,7 +155,7 @@ jobs: - name: ${{ matrix.name }} run: xcodebuild test -scheme "BuilderMacroClient" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@v4.5.0 + uses: codecov/codecov-action@v4.6.0 with: token: ${{ secrets.CODECOV_TOKEN }} xcode: true From a15bdd89488729450ccea423a5488eeca1da72a3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 22 Oct 2024 13:27:05 +0900 Subject: [PATCH 09/11] Bump actions/checkout from 2 to 4 (#1) Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci.yml | 12 ++++++------ .github/workflows/danger.yml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6823f09..098dea3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ jobs: SwiftLint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: GitHub Action for SwiftLint uses: norio-nomura/action-swiftlint@3.2.1 with: @@ -49,7 +49,7 @@ jobs: runsOn: macos-13 name: "macOS 13, Xcode 15.0, Swift 5.9.0" steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: ${{ matrix.name }} run: xcodebuild test -scheme "BuilderMacroClient" -destination "platform=macOS" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 - name: Upload coverage reports to Codecov @@ -85,7 +85,7 @@ jobs: xcode: "Xcode_15.0.1" runsOn: macOS-14 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: ${{ matrix.name }} run: xcodebuild test -scheme "BuilderMacroClient" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 - uses: actions/upload-artifact@v4 @@ -115,7 +115,7 @@ jobs: xcode: "Xcode_15.0.1" runsOn: macOS-14 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: ${{ matrix.name }} run: xcodebuild test -scheme "BuilderMacroClient" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 - name: Upload coverage reports to Codecov @@ -151,7 +151,7 @@ jobs: xcode: "Xcode_15.0.1" runsOn: macOS-14 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: ${{ matrix.name }} run: xcodebuild test -scheme "BuilderMacroClient" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 - name: Upload coverage reports to Codecov @@ -187,7 +187,7 @@ jobs: runsOn: macOS-14 name: "macOS 14, SPM 5.9.0 Test" steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: ${{ matrix.name }} run: swift build -c release --target "BuilderMacro" diff --git a/.github/workflows/danger.yml b/.github/workflows/danger.yml index 3f63d38..55a4794 100644 --- a/.github/workflows/danger.yml +++ b/.github/workflows/danger.yml @@ -18,7 +18,7 @@ jobs: ruby-version: 3.1.4 bundler-cache: true - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Setup gems run: | gem install bundler From be38d540d7229dce4801e7ef0060642eb4c05c61 Mon Sep 17 00:00:00 2001 From: Nikita Vasilev Date: Wed, 23 Oct 2024 13:30:29 +0900 Subject: [PATCH 10/11] Add `codecov.yml` --- codecov.yml | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 codecov.yml diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 0000000..8bb858a --- /dev/null +++ b/codecov.yml @@ -0,0 +1,48 @@ +codecov: + # Require CI to pass to show coverage, default yes + require_ci_to_pass: yes + notify: + # Codecov should wait for all CI statuses to complete, default yes + wait_for_ci: yes + +coverage: + # Coverage precision range 0-5, default 2 + precision: 2 + + # Direction to round the coverage value - up, down, nearest, default down + round: nearest + + # Value range for red...green, default 70...100 + range: "70...90" + + status: + # Overall project coverage, compare against pull request base + project: + default: + # The required coverage value + target: 50% + + # The leniency in hitting the target. Allow coverage to drop by X% + threshold: 5% + + # Only measure lines adjusted in the pull request or single commit, if the commit in not in the pr + patch: + default: + # The required coverage value + target: 85% + + # Allow coverage to drop by X% + threshold: 50% + changes: no + +comment: + # Pull request Codecov comment format. + # diff: coverage diff of the pull request + # files: a list of files impacted by the pull request (coverage changes, file is new or removed) + layout: "diff, files" + + # Update Codecov comment, if exists. Otherwise post new + behavior: default + + # If true, only post the Codecov comment if coverage changes + require_changes: false \ No newline at end of file From 15241afc48c49db8b7d906be5b3b7a41aebc61db Mon Sep 17 00:00:00 2001 From: Nikita Vasilev Date: Wed, 23 Oct 2024 14:36:22 +0900 Subject: [PATCH 11/11] Update `ci.yml` --- .github/workflows/ci.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 098dea3..64e6ca9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -51,9 +51,9 @@ jobs: steps: - uses: actions/checkout@v4 - name: ${{ matrix.name }} - run: xcodebuild test -scheme "BuilderMacroClient" -destination "platform=macOS" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 + run: xcodebuild test -scheme "BuilderMacro-Package" -destination "platform=macOS" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@v4.6.0 + uses: codecov/codecov-action@v4.5.0 with: token: ${{ secrets.CODECOV_TOKEN }} xcode: true @@ -87,7 +87,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: ${{ matrix.name }} - run: xcodebuild test -scheme "BuilderMacroClient" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 + run: xcodebuild test -scheme "BuilderMacro-Package" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 - uses: actions/upload-artifact@v4 with: name: ${{ matrix.name }} @@ -117,9 +117,9 @@ jobs: steps: - uses: actions/checkout@v4 - name: ${{ matrix.name }} - run: xcodebuild test -scheme "BuilderMacroClient" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 + run: xcodebuild test -scheme "BuilderMacro-Package" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@v4.6.0 + uses: codecov/codecov-action@v4.5.0 with: token: ${{ secrets.CODECOV_TOKEN }} xcode: true @@ -153,9 +153,9 @@ jobs: steps: - uses: actions/checkout@v4 - name: ${{ matrix.name }} - run: xcodebuild test -scheme "BuilderMacroClient" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 + run: xcodebuild test -scheme "BuilderMacro-Package" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@v4.6.0 + uses: codecov/codecov-action@v4.5.0 with: token: ${{ secrets.CODECOV_TOKEN }} xcode: true